Ubiquitous Computing Is Not Cloud Computing
I have noticed a trend on blogs and online news sites where they are confusing other concepts with the concept of ubiquitous computing (also known as ubicomp). This is happening more recently as a result of (I'm not saying "because of") Tim O'Reilly's keynote speech at the 2008 Web 2.0 Expo in which he spoke about cloud computing and ubiquitous computing. This apparently served to reinforce the munging, already in progress, of these and other terms.
It is not particularly surprising since, although there are distinctly different concepts involved, they all relate in some way to what happens as we are surrounded by computers and network connections. Fortunately, (and even though nobody asked) I am here to help set the record straight by distinguishing between these major concepts relative to ubiquitous computing:
Cloud Computing
As defined by wikipedia, cloud computing is "simplification of the data center by leveraging virtualization technologies to reduce complexity". The idea is that the user of computer resources is abstracted from the actual hardware underneath. The user's application could be running on a dedicated computer, a shared computer, or across multiple computers. Related terms include mesh computing and virtualization.
Software As A Service
Software As A Service refers to a software delivery or licensing model where a software application or suite of applications is developed on a Web-based platform and hosted on a Web server for use by its customers over the Internet. Examples of this include the many online applications provided by Google such as Gmail, Google Maps and Google Docs, as well as things like the well-known photosharing app Flickr and the project collaboration tools from 37signals. The key point is that these software applications are never installed on the user's local (or company) computer, but instead the user always connects to the Internet to use the app.
Ubiquitous Computing
For the definition of ubiquitous computing I will defer to Mark Weiser who is credited with launching the ubicomp movement with this article. In this Weiser defines the goal as:
"Ubiquitous computing has as its goal the enhancing [of] computer use by making many computers available throughout the physical environment, but making them effectively invisible to the user".
He further adds:
"Unlike virtual reality, ubiquitous computing endeavers to integrate information displays into the everyday physical world."
Other terms include pervasive computing, ambient computing, proximity computing, location-aware computing, and everyware (no wonder there is some confusion). So, the key points here are that:
- Computing will be dispersed in your local physical environment.
- The user will interact with objects in a way that makes the computers seem invisible.
So, while all these terms somehow involve the use of increasingly more pervasive computing resources and network access, they are tackling different problems and evolutionary paths. Cloud computing is more of a focus for the IT community--the way in which users interact with the computers, by definition, should look the same. Cloud computing can be applied to any generation of Web apps including Web 1.0, Web 2.0 or later.
Software as a service is more relevant to what Tim O'Reilly is referring to and is consistent with the definition of Web 2.0, which O'Reilly helped define. With this concept, users are not just connecting up to the Web to browse and search for information, but are now using the Web for applications that traditiionally were installed and run on a local computer such as word processing, spreadsheets and email readers. However, this does not require cloud computing and doesn't have much to do with ubiquitous computing.
With ubiquitous computing, the focus is on interacting with computers that aren't even on the Internet (although there is nothing to prevent some of them from being connected). Instead they are embedded in objects all around us. Further, with ubicomp, the goal is not to be interacting with software applications as we know them, but rather to interact directly with objects which just happen to have computer intelligence (simple, but with some level of awareness) built in.
Now that I have discussed how these concepts are different, I will now suggest how they can work together. Suppose you decide to lose a few pounds by trying out the new Blogger's Diet you read an article about (I don't know if there is one, but might not be the worst idea ever). Back in the day you might have created a MS Excel spreadsheet on your PC to plan your diet and track your progress. But wait, you found this great website, MyBloggersDiet.com, where you can create an account and manage your diet online. This is great because you can log in and access your account even when you are traveling on business. This is an example of software as a service. Lars, the webmaster for MyBloggersDiet.com, wants to make sure the diet web app has a high uptime percentage and also will scale massively in case blogger obesity reaches epidemic proportions. So he arranges to get the application hosted with an ISP providing a cloud computing infrastructure.
If we introduce ubiquitious computing into the mix, then instead of trotting into your study to log onto your computer or the website, you have the option to ask your refridgerator directly to provide a menu for the day. Behind the scene, your fridge has accessed your account at MyBloggersDiet.com via an API, compares possible food options against what you have eaten recently as well as its current contents, and suggests some meal choices. It also informs you that you are running low on alfalfa sprouts and further suggests that maybe you would like to order some low-carb beer. This last interaction suggests the essense and potential of ubicomp, because even though you are still connected to Internet, you can accomplish your goals through different, sometimes more direct or natural, interactions with your environment.
rk
RSS Feed






