Cloud computing is the up-and-coming computing revolution that will change the way we access applications and data. With the emergence of Web 2.0 technologies and web applications such as Google Apps, Facebook, and eyeOS, the running of applications and storing of data has begun to shift from the personal computer to “the cloud”. Cloud computing allows us to harness the power of the Internet to run applications and store data, paving the way for cheaper computers and the ability to access data from practically anywhere in the world.
What is Cloud Computing?
Even if you were not aware of it, you have probably already used cloud computing. If you have ever used Google Docs to share documents and spreadsheets with others or added a Facebook application to keep track of your class schedule, you have definitely been cloud computing. Cloud computing describes the method of computing in which users interact with web applications and services on remote servers through the Internet as opposed to local boxed software applications on their own computers. The term follows in the footsteps of the buzzword “Web 2.0,” coined to describe the recent emergence of dynamic websites that have enabled web surfers to experience web pages in an entirely new way. Web 2.0 does not refer to any specific technical update; rather, it describes the gradual change in the way users and web developers interact with websites. This new generation of websites embed multimedia such as videos and images, but most importantly, can be customized towards a user’s unique preferences and connect them to other user-generated content. For example, Yahoo! has a “My Yahoo!” page where Yahoo! users can add content that they want to see and arrange the content’s location on the page to their liking. Web 2.0 emphasizes the idea of using the Internet as a platform from which to run your own applications .
The strongest example of the movement towards Web 2.0 is the abundance of social networking sites that give users the ability to create their own presence on the Internet. Millions of Facebook users can attest to this as they spend an average of 19.5 minutes per session updating their own profiles, communicating with friends, viewing and uploading photos, or keeping track of upcoming events in their lives – all tasks done on a single website through a web browser . Facebook alone does away with the need to install software applications such as instant messaging applications, photo organizing applications, or calendar applications. Though seemingly a simple concept, cloud computing completely changes how users interact with applications because it immerses one’s life on the Internet. Want to know how it all works? You’ll be surprised when you find out just how much engineering goes into forming these clouds.
Cloud Formations: A Little History on the Computing Experience
In the 1960s, computer users frequented time-sharing computer facilities that allowed users to interact through terminals connected to large mainframes via telephone lines for computing . When users wanted to run an application or access their data, they would log on to the computer terminals, which granted users access to the applications and information stored on the mainframe. Since the terminals were literally connected to the mainframes through long cables, users were physically restricted from doing any of their computing outside of the time-share facility. All this changed in the 1980s with the rise of the era of personal computing. Users were freed from the ball and chain of computer terminals and their housing facilities as more and more users bought personal home computers with locally stored software applications and data.
Users today have full control of the software applications they purchase and the freedom to customize their computer to their liking. However, this freedom comes with downsides that become obvious when the casual computer user deals with incessant application updates and faces the financially daunting task of periodically upgrading their computers. Cloud computing gives these users some peace of mind in two ways: first, computers that solely utilize web applications require far less computing power and consequently will not need to be replaced or upgraded as often; second, web applications on the Internet are automatically maintained and upgraded by the software companies that create them. Furthermore, there is never any installing or uninstalling of applications in cloud computing because all one has to do to use a web application is simply visit the website where the application is hosted. Ironically, cloud computing brings users back to the old ways of terminal-mainframe computing by moving applications and the user’s data out of personal computers and back into a central “mainframe”. However, this time the “terminals” are far-reaching and extend to the user’s home while “mainframes” can be miles away serving millions of users, as shown in Fig. 1.
The End-User and the Web Browser
A wonderful example of a web application using AJAX is Meebo, a web-based instant messenger application. Meebo allows its visitors to log in using usernames and passwords that are already registered with their favorite instant messenger programs, such as those provided by AOL, Yahoo!, MSN, ICQ, or Google. Users have the option of logging into more than one service at the same time. After the visitor logs in, they are presented with a familiar “buddy list” with accompanying chat windows that look exactly like the typical setup of an instant messaging application on their own computer. Users can even click-and-drag, resize, and minimize or maximize these chat windows, all within the browser window. It’s easy to forget that all of this is still happening within a web browser! Even more impressive, an application called eyeOS simulates an entire operating system, like Microsoft’s Windows or Apple’s Mac OS, entirely within a web browser. EyeOS comes with all the standard productivity applications expected in any operating system: a word processor, spreadsheet maker, e-mail client, games, and much more. Clearly, applications accessed through a web browser provide a powerful computing alternative to the end-user that is limited only by the imaginations of the software developers. But what does this shift from personal computer to cloud computing really mean?
The ubiquitous cloud constantly mentioned thus far is actually just a network of computers and servers that runs the applications accessed on a web browser through the Internet . These computers and servers are physically located in server rooms, usually in a building owned by software companies. Like library stacks, these server rooms can house rows and rows of server towers, where a single tower can consist of several servers and hard disks. To get an idea of the amount of processing power and data storage capability these servers have, consider the fact that the typical personal computer has only one processor and one hard disk, while a server can have multiple processors with terabytes of hard disk space, where a terabyte is one thousand gigabytes. A general setup of a cloud computing system is shown in Fig. 3.
Typically, a web application is run on its own dedicated server because it must be able to handle thousands of user accesses every day. In order for the benefits of cloud computing to be realized, the application must not lag, which requires powerful processing speeds. The cloud must now provide the computing power that was used by the end user’s personal computer to run the various applications.
On top of extremely fast processing speeds, these remote computers must also have immense storage capacity to maintain data for every user. This storage capacity must also take into account the backing up of data in case the remote computers or servers fail. Most reputable web application companies will backup user data periodically, much like how Google’s Gmail archives e-mail even when the user deletes them. To ensure database servers do not fail, the remote computers and servers are kept in temperature-controlled environments to ensure optimal performance and uptime. In order to maintain customer satisfaction, the software companies must take care to ensure that data storage will be reliable and plentiful.
The servers and computers that constitute a web application take on much of the responsibility previously designated to the end-user’s personal computer. However, in order to fully function effectively, the hardware involved in the cloud must be supplemented by software.
The Lightning in the Clouds
The internal processes of the cloud itself dictate much of the activity occurring in the cloud. Software engineers develop software called middleware that is used on the remote computers and servers that host the web applications. This software mediates between the web applications and the end-users and takes into account the possibility of dealing with different operating systems, such as Windows or Mac OS. Middleware follows rules or protocols set by the software engineers to perform certain tasks depending on incoming requests from the end-user. One of the most important functions of these protocols is to control network traffic by spreading the workload evenly among all the available remote computers and servers.
For example, if a user uploads a Word document on Acrobat.com to convert it into a PDF document, the Word document is sent through the network to the remote computer, similarly to the way one would transfer files to a friend over instant messaging programs. Middleware will identify the document using set protocols and direct it to an available remote computer on the server side. The remote computer for Acrobat.com has a PDF converting program and is able to run massive amounts of conversion requests from multiple users at once. The Word document is stored only for as long as it takes to convert into a PDF immediately on the remote computer and upload back to the user through the network. All the while, the user’s web browser is waiting for a sign from the remote computer about whether or not the PDF is ready. Once the PDF is available, the remote computer sends a notification that the PDF document is ready for viewing or for download to the end-user’s screen. Figure 4 shows the workflow of the Word-document-to-PDF conversion through cloud computing.
The Benefits of the Cloud
As mentioned, the major advantages provided by cloud computing stem from the shift from personal computer serviced by the end-user to servers and computers maintained by an external software company.
Because the web applications are accessed through a web browser, the only system resources necessary for the end-user’s computer are those that run the browser. This frees up system resources and allows personal computers to typically run faster. Users with less advanced hardware on their computers often find some software applications too slow and may find it easier and faster to run web applications instead since it uses fewer resources. Since most of these software companies must keep a satisfied user-base to stay successful, they provide regular maintenance, data storage, and updates. This eliminates the end-user’s need to install application updates on their own computer or purchase data backup software applications or additional hard disks to archive their own data. Most major mistakes, or bugs, are fixed in a short matter of time without any action taken on the end-user’s part. If something were to go wrong at any time (for instance, if the end-user’s web browser or web application crashes), the most recently saved session can be retrieved just as a local software application will recover from a crashed session.
In cloud computing, the software engineers and system administrators ensure that the end-user has a seamless computing experience by maintaining the remote computers and servers in the cloud. Eliminating personal maintenance in this way makes the computing experience much simpler and more convenient for the user.
With a growing demand in web applications and the mainstream adoption of cloud computing, one can expect to see a rise in innovative broadband services and capability . Currently, the United States is ranked 15th in broadband ranking in the world based on the average broadband speed . National broadband access, like that available in South Korea and developing in Australia, could soon be available in the United States if government officials seek a more extensive broadband policy  . National broadband access means fast broadband Internet would be available across the country. The development and implementation of WiMAX
technology, also known as Worldwide Interoperability for Microwave Access, which has much longer range than typical wireless Internet, will also help bring Internet access to virtually anywhere in the world. The widespread success of cloud computing is only limited by the availability of broadband Internet access.
As web applications and services become more complex, companies will need to figure out new ways to replace revenue from boxed software. Web applications may begin to implement pay-by-use or monthly subscription charges depending on the type of service . However, since most web applications began as free services, the sudden rise in service charges may turn off users from using web applications. Software companies will have to offer an application or service that surpasses the functionality and appeal of web applications available today if they would like to stay competitive and attract customers.
With the innovative shift focusing on software in cloud computing, consumer computers will need fewer hardware components to operate web applications. This means less expensive computers and laptops that can be smaller and lighter. Extremely affordable laptops from Everex have led the trend in “cloud notebooks” or “netbooks” that are built to utilize web applications to the fullest and carry less hard disk space and processing power because of their reliance on cloud computing. Even Apple’s MacBook Air, although more expensive, is made without CD drives or bulky hardware.
Cloud computing offers several benefits for the typical user that range from easy maintenance, practically infinite safe storage of data, and faster and cheaper computers. Applications no longer need to be installed locally on one’s own computer, updates are no longer a concern since they are all taken care of externally, and data is backed up automatically. The web applications and user data is also available virtually anywhere. The only downside to cloud computing is that none of these benefits can be enjoyed if no Internet is available. If the user cannot connect to the cloud, the web applications and user data will not be reachable. However, once WiMAX is fully developed and national broadband access is made a reality, this will not be a problem. Sprint Nextel and Clearwire together have deployed the first American WiMAX network in Portland, Oregon . Now it is only a matter of time before nationwide broadband speed increases and the benefits of cloud computing are available for everyone.