...and another thing header

Published: 01/02/2009 | Last Revision: 06/07/2010

The push towards the laptop as a core business platform has caused all sorts of issues to come to a head again. Although of course, in the world of IT, there really is nothing new under the sun – the same old problems rear their ugly heads time and time again, and just get wrapped up with a new naming convention. With the laptop, we have had an interesting journey. Back in the 1980s and 90s, a laptop was a luxury. For the same money, you could have a much higher performance desktop. The screens were poor, the processing power limited, the storage small, and hooking it up to thin Ethernet was a pain. Worse still, the battery life could often be measured in minutes. But that wasn’t the end of the problems. These devices really only worked when hooked up to a local LAN. So they were, at best, transportable devices.

Early Portable Computer
Are our portable applications as cumbersome as our portable computers used to be?

Today, it’s all change. Somewhere in the last ten years, the available horsepower on the desktop exceeded the needs of the majority of users. I’m not sure precisely when this happened with the laptop platform, but Intel’s Core 2 Duo must take some responsibility for it. Today, the laptop is almost unrecognisable compared to that of a decade ago. Dual core is the standard. High resolution screens are the norm, and disk storage runs to hundreds of gigabytes. Even more importantly, we now have wi-fi in a wide scale deployment, and 3G data cards are not the Star Trek wishful thinking of a decade ago. Battery life has improved out of all recognition, especially when taking the processor power into account. So is there really any great surprise that the laptop is taking over as the premiere business platform? In some ways, no it is not a surprise. All the power of a desktop in something you can take on a plane. Unfortunately, this has allowed some bad thinking to get into production. For example, how many people encrypt the hard disk on their laptop? Not enough, it seems from the various reports of massive data leakage. And therein lies a big problem. Today’s top-end laptop has the power of a supercomputer and the storage capacity of Marvin The Paranoid Android. When that middle level executive wanders out of the front door with his work laptop in his briefcase, it can be quite staggering just how much information is going with him on his laptop. In truth, we have been having something of a busman’s holiday with the Web. The big push to HTML presentation has meant that real data has been forced to stay within the confines of the data centre, with only the HTML (or XML and style sheet, if you are being really whizzy) coming over the wire. This has helped a great deal with our roaming users on their laptops. The data requirement for an HTML can easily be much less than a badly written page of data from an HR or ordering system. The end result is that we have forgotten our roots. Back in the old days, when client/server SQL applications were written with the client running on the desktop, it was a matter of imperative that no-one ever did a ‘Select * from Table’ as the result would be that the network, meandering along at a sturdy 10mbit/sec would melt under the data load. You would think that only pushing the HTML webpage to the client would make it lightweight, but today’s expectations mean that pages often have large dynamic elements in them, with whole sections of Web pages including detail that can be collapsed away out of sight. And those long combo lists of textual content all need to be populated too. Worse still, we used to be happy with just the core information, but today we want pictures - or even worse video streams - as well.

Cloud computing and SLAs

There is no doubt that currently developing technologies such as Amazon Web Services or Microsoft’s Azure are offering a mind boggling array of capabilities. It is like being put inside a large toyshop and told that all that you can see is yours to play with. Without doubt there is much here to excite and stimulate new ways of developing applications, but there are some hard business questions which need to be resolved too.

I have been banging on about this since Microsoft’s Professional Developers Conference back in November, and I am only slowly making progress towards solid answers. For example, when asked the question, “Where will my application run and under which jurisdiction?” The answer came back as, “Well, it only runs in the USA at the moment, so that’s easy.”

Well, maybe so, but these companies are offering hosting which will run in data centres around the globe. If I am a business in the UK and I sign up with, for example, Microsoft UK, where will my application be hosted? Can I choose for it not to be in the USA, for example? Maybe (to take a somewhat fanciful example) my application is some sort of e-shop or commerce system and my customers are in places which are not blessed by the USA smiling on them. If my application is running on a Microsoft data centre in the USA, then I can foresee all sorts of problems.

At a slightly more practical level, what will the service level agreement be for these Software as a Service hosting solutions? If I put my own box in a rack in a data centre, than the boundaries and responsibilities are clear. When I put a lump of code into a global server cloud, the edges are far less distinct.

Naturally, none of the players really want to nail down these issues yet. I am assured by Microsoft UK that there are teams of legal people working on it as I type. And I’m sure that the solution which is offered when the service is ready to go live will be just fine – if, that is, you live in Armpit, Idaho and wish to do business with Americans. Things are not so clear from an EU perspective, let alone anywhere else, and this is something we need to monitor most carefully.

So there is no great surprise that some applications which have an ostensibly lightweight HTML front end can end up sucking badly when run across an EDGE GPRS laptop connection from a car parked in the middle of a business park. Because we can run data to laptops, we are now expected to do so as a matter of course, and yet little real testing happens on many projects. This really matters, because we have to balance the amount of data held locally on the machine against the data streamed over the network. Even when using ‘eat all you can’ data plans, the connectivity required to keep a laptop fed can be significant. And things get worse when we start talking about Software as a Service. Not because SAAS has intrinsically higher network connectivity requirements, but because we are talking about a plumbing which most of us are not used to using. Because of this, it is absolutely paramount that proper testing for data connectivity requirements are part of the modern testing of an application. It is not good enough to say “it’s HTML, it’s OK it will work just fine.” If we are to take best advantage of SAAS, and the possibilities for Cloud Computing whereby some of our application is held at our business premises, and other parts are sitting in a data centre somewhere outside the country, then testing needs to become much more sophisticated. The design needs to be much more savvy too. What happens if you cannot connect to the data centre, for example? Is the application simply going to sit there sucking its thumb, waiting for the electrons to flow? No, of course not: a distributed over-the-wire solution requires failure modes that actively takes into account the likelihood of various parts of the infrastructure being available – or not. Are we developing applications with such flexibility in mind? Or are we just quietly whistling a happy tune, in the hope that no-one really notices? I think that some difficult questions need to be asked of the infrastructure of applications designed for laptops connected via dodgy bits of wet string like 3G and GPRS connections. And in the bigger picture, if we deconstruct our large scale applications into services which run on multiple servers, distributed around the globe, do we have the means to monitor and control these things in real time? Will this be an incentive to keep services big and monolithic? Time will tell.

Share and Bookmark  

Comments

Be the first to comment about this article...

Leave a comment

You must login to place comments.