Sunday 15 December 2013

Death of the green screen

As classic mainframe subsystems, such as IMS and CICS, start planning what to do for their 50th birthdays, it comes as a bit of a surprise to not only find that so many green screens are still in use within organizations, but, perhaps even more surprisingly as I found at a recent technical conference, so many sysprogs were saying that they felt happier using green screens. For them, anything else was just a fancy add on. They liked working close to the bare metal (as it were). Well, I have some bad news for them. I predict the death of the green screen in 2014!

Ignoring the fact that many mainframe experts have a 5 or a 6 as the first digit in their age, ignoring the fact that they are completely familiar with the green screens they use, and they have been using them for the greater part of their working life. I believe that mainframe display screens will start to look modern – as though they were designed in 2014 and not 1964 – because that’s what most people will want.

Think about your life style for the moment. You expect to get online and do banking at any time – that’s using a mainframe. You expect to be able to book a flight whenever you want – that’s another mainframe. You simply expect to be able to work at any time that suits you on any device that’s to hand – a laptop, tablet, smartphone. And large organizations want to be able to continue enjoying the benefits of their mainframe. So let’s put those together.

For many people, they simply want to use their browser to ‘see’ what’s going on inside the mainframe. And that browser could be on any of a number of platforms. People just want it to work. It’s got to be platform agnostic, and it would be really be useful if the display took into account the screen size of the device being used to run the browser software.

One way to do that is for the mainframe application to use JSON to send information to an HTML server (also on the mainframe) that then sends out pages to the browser. Using, for example, knockout.js it’s possible to take JSON data and format it with sophisticated client-side interactivity. In other words, it makes it look very modern – and is very useful.

Another solution is to create mobile apps. Software AG has webMethods, which offers, they claim, secure, high-performance communication infrastructure that combines message-queueing capabilities with built-in support for synchronous request/reply and conversational communication. It provides wrapping technology and programming interfaces that can turn existing application functions into business services. Business logic and security functions can be applied to information before it is supplied to a mobile app and before information from the mobile app is applied to the target (core) database.

Software AG suggests that this approach is ideal for managing interactions for tightly-coupled, time-critical user applications. Their examples are a sales representative wanting to check a buyer’s credit or a consumer looking for an insurance quote for their car. Any activity that requires the mobile user to enter information that is sent back to the core application for processing and which then returns a result would benefit from this approach.

Of course, once you go down the app route, you need an app for Android, and app for Windows 8, and app for Blackberry, an app for Apple IOS, etc.

The other reason that I predict the death of green screens is the growth of younger developers who expect a graphical interface. They want programming to be a drag-and-drop activity. It shouldn’t be any harder to use a mainframe than it is to use a games console, or a tablet device, or anything else. It should be intuitive. The software should ‘nudge’ you towards doing whatever task you appear to be doing. That’s where skeuomorphism comes in – making on-screen icons look like real world devices, so using them is more intuitive. And the software should display results in a way that makes drilling down for more information quick and intuitive. And it may be that the software is designed for touch screens.

There’s a very old Star Trek film (Star Trek IV: The Voyage Home) where Scotty sits down in front of a current computer (it was 1986) and talks to it – nothing happens. Someone gives him the mouse to use, and Scotty speaks into the mouse! We’re used to Siri and other voice interfaces. Maybe soon things like Nuance’s Dragon NaturallySpeaking will be available for everyone to use. But, for the moment, I’m simply predicting coloured screens everywhere (and the green screens will be gone).

If you do celebrate Christmas – have a great one. And if you don’t, have a great time anyway!

Sunday 8 December 2013

What’s all the fuss about Bitcoins?

Bitcoins have been hailed as everything between a new international currency and a bubble waiting to burst. You can earn these virtual coins and you can use them to buy real-life items such as cars. But where did they come from? How are they being used? Do you want them? Let’s see whether we can answer any of these questions.

Bitcoins originated in 2009 following a 2008 concept paper that was published on the Internet by a person or persons calling themselves Satoshi Nakamoto. Nothing is really known about this person. Bitcoins address the issue of a third party needing to validate online payments. If I purchase an item from company X using my credit card, bank Y has to validate the security of the exchange and manage any conflicts or irregularities. With Bitcoins, security is entrusted to a global cloud of networked computers that use very sophisticated cryptography – so no third party is involved. This leads to another advantage of Bitcoins – that they are cheaper to transact because there is a much lower cost overhead.

So how do you get Bitcoins? Well, you ‘mine’ them. And that involves solving complex algorithms across an open source network. These algorithms are based on ‘proof of work’ – that means a computer will have to do a lot of work to actually solve the algorithm – it has a 64-digit solution. Tucked away on the Internet are ‘blocks’ that can be ‘mined’ (or in reality, solved) to release their ‘bounty’. Bitcoins come in different units from a Bitcoin itself (1BTC) down to milli-Bitcoins (0.00000001BTC). They are usually stored in a digital wallet, but they can be printed! The printed version comes in two parts – a QR code and a 51 alphanumeric digit private key that begins with a 5. A wallet is a collection of addresses and their associated private keys. It’s been estimated that there are about 3,600 new Bitcoins mined every day and there are currently about 12 million Bitcoins in existence.

How do you spend your Bitcoins? You find a vendor who sets the price for an item in Bitcoins. You would then send the price of the item in Bitcoins through an online wallet to the retailer’s Bitcoin address. (This is a 27-34 alphanumeric string of characters beginning with 1 or 3.) Since there is no registry of these addresses, people can use them to protect their anonymity when making transactions. The addresses are stored in Bitcoin wallets, which are used to manage savings. So, if the data is lost, so are the Bitcoins owned – and that’s what happened to one unlucky individual who threw away a hard drive containing his data a couple of weeks ago!

Recently China has banned its banks from handling transactions involving Bitcoins. Bitcoins were a “virtual good”, had no legal status, and should not be used as a currency, said the People's Bank of China (PBOC). It is also planning to step up its efforts to curb the use of Bitcoins to launder cash. It seems that individuals are still free to trade in Bitcoins, but should be aware of the risks involved, warned the PBOC, adding that it planned to formalize the regulation of exchanges that dealt in digital cash. It’s believed that some Chinese nationals were heavily involved in trading Bitcoins, because it helps them avoid controls on trade in the yuan.

There’s better news from Lamborghini, which has added itself to that list of companies accepting Bitcoins. A Tesla Model S starts from £49,900 in the UK, which is around 81 Bitcoins. So, on that calculation, a Bitcoin would be worth about US$1007 or UK£616. Other sources suggest that Bitcoins reached $1,240, but following the news from China dropped to around $870. Other things you can buy with Bitcoins range from T-shirts to apartments.

One issue for crime prevention and detection agencies is that Bitcoin exchanges are completely private. And so they are the ideal currency for buying drugs and hiring hit men and just about any other criminal activity. Apparently, the FBI has recently closed down a Web site called the Silk Road that was used for such criminal actions. And they seized tens of millions of dollars’ worth of Bitcoins. Using TOR (The Onion Relay) criminals were able to relay messages through at least three different servers – and make it very difficult to track a user’s identity.

Clearly bankers don’t like Bitcoins because they are completely out of their control. This has led various banks to condemn Bitcoins and prophesy that they are like a bubble and the bubble will burst – so anyone buying into Bitcoins will lose all their money. Law enforcement officers don’t like Bitcoins because it’s hard to track transactions and identify the bad guys. But for ordinary people across the globe it’s perhaps the same bet as keeping some notes under the mattress. Most currencies have experienced a run against them at some stage in their life. A Google search will show people asking to be paid in Bitcoins or doing all their Christmas shopping with Bitcoins. It’s a shame we know so little about Satoshi Nakamoto amd the originators of the currency. I imagine we’ll be hearing a lot more about Bitcoins in 2014.

Sunday 1 December 2013

Push technology

Since the beginning of the Web, what you see in your browser window depended on what you clicked on on or entered. It’s all been end-user driven – although the choices of what they can click on are predefined by the Web site designer. This is what they call ‘pull’ technology because the information on the screen is pulled from a Web server. But there are times when it would be useful to have push technology – particularly to mobile phones.

Push technology could keep you informed about the latest football scores and results. It could give you the latest news from international sport events. It could give you stock prices, and highlight rising or plummeting shares. It could tell you when a Web site you follow is updated. There are lots of potential reasons for organizations to want to use push technology.

You may have thought that AJAX (Asynchronous JavaScript and XML) made the Web seem a bit more responsive – but it was still client initiated. Another technique that’s sometimes used is called ‘long-polling’. A client requests information from the server, but if the server does not have anything to send when the poll is received, it holds the request open and waits for response information to become available (instead of sending an empty response). The server then sends an HTTP/S response. Of course, each HTTP request means that headers and cookie data are transferred to the server. If large amount of data are sent, this can lead to increased latency.

Another technique is called streaming, which uses a persistent HTTP connection between the server and client. The browser remains in ‘loading’ mode after the initial page load. Then, from time-to-time, the server sends small bits of JavaScript to update the page. There can be problems with browsers timing out with this technique.

What if it were possible to have a full-duplex communication channel that operates through a single socket over the Web? That’s where HTML5 WebSockets comes in – it makes it possible to have real-time, full-duplex, bidirectional, event-driven Web applications.

How it works is that during their initial handshake, the client and server upgrade from the standard HTTP protocol to the WebSockets protocol. Once established, WebSocket data frames (text and binary frames) can be sent in both directions between the client and the server in full-duplex mode. The data has a two-byte frame. Text frames start with a 0x00 byte, end with a 0xFF byte, and contain UTF-8 data in between. They also use a terminator. Binary frames use a length prefix. There is no polling involved.

Enthusiasts say that WebSockets can make your applications run faster, be more efficient, and more scalable. WebSockets started life as a feature of the HTML5 spec known as TCPConnection. Currently, WebSockets are specified in two places: the Web Sockets API is maintained by HTML5 editor Ian Hickson, while the Web Socket protocol is edited by Ian Fette.

So, if it’s so great, why isn’t it everywhere, why don’t we come across it being used all over the place? Well, it works with Firefox; it works with Chrome; it works with Safari and Opera; and it works with Internet Explorer 10 and above. And that’s pretty much the hold up. Many organizations are still running older version of Explorer – Version 8 in many cases. And figures suggest that just under a quarter of users use Internet Explorer (http://en.wikipedia.org/wiki/Usage_share_of_web_browsers#Wikimedia_.28April_2009_to_April_2013.29), so why would any company cut itself off from a quarter of its potential clients?

The very fact that there have been workarounds, shows that there is a business need for push technology. WebSockets provides a solution to the problem of how to implement push technology. The fly-in-ointment at the moment is that a popular browser (from a well-known manufacturer of games consoles) doesn’t support it. As more-and-more companies upgrade to IE10 and above, the likelihood is that we will see much more push technology in use, and WebSockets will be the way to implement it.