In the previous article, we started asking “what is cloud computing?” by building an analogy. This article is going to continue that analogy and extend it towards the more technical aspects of cloud computing.
- What about if my friend wanted to play at the same time as me? His computer – powerful though it may be (comparatively speaking) – can’t run two separate variants of Age of Empires at the same time. What we could do with here is some way of doing ‘distributed computing’.
- First, we’ll look for a bigger, better remote infrastructure. Perhaps there’s a company out there offering a bunch of linked – or ‘distributed’ – ‘servers’, specially optimised to run loads of instances of Age of Empires at the same time. They’d probably charge for this service.
- Once we’d found this company, we’ll need to connect to their platform. They’ll probably look after the OS – the ‘Runtime’ layer – and storage of my saved games (in a ‘Database’). To make sure the server knew it was me logging in, and not my friend (and therefore offer us the right saved games), I’d probably need to supply some sort of username and password. The server could check these against a stored ‘Identity’ layer.
- Once I’d logged in, I’d need to boot up Age of Empires. Perhaps this remote infrastructure offers a plethora of other games, too – so I need to select the right one from the ‘application layer’.
What we’ve described in part 2 is the fundamental theory behind ‘cloud computing’. My AST – a puny little device – can connect to somewhere much faster, much bigger and much more powerful to run things it simply cannot. The idea we’ve looked at here is what powers companies like OnLive, who offer a plethora of games pretty much in the manner explained above.
The three layers – Infrastructure, Platform and Software – each have good local analogues (my AST computer, the Windows 95 OS running on it and the applications – like Age of Empires – I enjoy playing on it). In cloud computing, these three are referred to as ‘services’ – typically, paid ones – and they are run on ‘servers’. They have abbreviations (of course) – IaaS (Infrastructure as a Service), PaaS (Platform as a Service) and SaaS (Software as a service).
To connect to them, I need to supply some kind of application optimised for receiving these services. In the past, browsers have been heralded as the best offering here (in fact, Google still firmly believes that browsers are the future, too), but increasingly a trend has been seen towards mobile, custom-interface ‘apps’ that receive data from the SaaS layer, or run directly on the PaaS layer. The future for how we cloud compute is uncertain – but the fact that we definitely will be doing so is clear as day.
What do you think? Reckon that cloud computing is the future? Are machine specs really a big deal anymore? Let us know your opinion by dropping a short comment in the section below.