Cloud Incursion

Resistance Is Futile ... Soon Cloud Computing Will Envelop the World Wide Web, Forever Altering Software Development Practices

Steve C Orr

October 30, 2009

10 Min Read
ITPro Today logo

ControlFreak

LANGUAGES:VB.NET | C#

ASP.NETVERSIONS: 3.5

 

Cloud Incursion

Resistance Is Futile ... Soon Cloud Computing Will Envelopthe World Wide Web, Forever Altering Software Development Practices

 

By Steve C. Orr

 

While clouds are common over Seattle, a special one formsabove Amazon headquarters and another a short distance away at Microsoft s maincampus. Overcast conditions are less common in Silicon Valley, but that has notdeterred behemoths Google and Yahoo! from the creation of their own uniquecloud formations.

 

Incubation of the Cloud

Procedural Programming once ruled the software developmentworld, bringing order to untamed lines of spaghetti code. As applicationscontinued to grow in size and complexity, Object Oriented Programming (OOP) conceptssurfaced, once again reigning in code mutations. Eventually, distributedapplications struggled to best utilize the rapidly growing Internet, and newsoftware designs took hold in the form of Service Oriented Applications (SOA).

 

More and more Service Oriented Applications were createdover time, and soon there were hundreds of similar systems for such commontasks as authentication, user management, data retrieval, caching, queuing,etc. So many redundant designs were unnecessary and inefficient. SOA developerssoon discovered these and other common design patterns across theirapplications, and this became the fertile ground where cloud computing wasborn.

 

Microsoft s initial attempt at a universal authenticationsystem was a sign of things to come. Microsoft Passport was perhaps a bit aheadof its time. It was met with a healthy dose of skepticism, and its notableversion 1 flaws stunted its growth and contributed to its near death. But thefundamental concepts underlying Microsoft Passport were sound; today, therenamed and revamped technology has been reborn as Microsoft Live ID. If moreproof is needed that the concept was solid, look no further than the plethoraof currently competing technologies. For example, Amazon, Google, and Yahoo!all have comparable authentication mechanisms, and there are notable opensource options, as well (such as OpenID).

 

Common Cloud Formations

The oncoming clouds currently take many forms, and theirfuture is foggy. But have no fear the impending changes all developers willeventually be forced to face are almost certainly for the better. In order todefine the nebulous boundaries of the current crop of cloud services, perhapsit is best to first examine what they all tend to have in common.

 

To use the services provided by any of the cloud creators,it is first necessary to register (for free) and get a token/id/key to beassociated with your account. This token is submitted with each Web servicerequest as the primary form of authentication. It also is used to track yoursite s use of the cloud s services. Currently, most cloud services are in beta,so they are free for now. Amazon s services are the most mature, so they arethe only major player daring to dip their toes extensively into the icy watersof customer billing. Its fees are nominal and are usage based; use theirservices only a bit and you ll pay little or nothing. If your Web site becomesthe next hot thing, you ll likely be able to afford the larger fees thatresult. This seems only fair, because your site would be consuming a largerpercentage of the cloud s resources.

 

More importantly, if your Web site becomes the next hotthing, you don t have to worry much about scalability. The cloud takes care ofthat. The mysterious cloud contains countless servers with a virtually infinitecapacity, all waiting to spring into action at a moment s notice for whichever Websites need them at the time. Therefore, any services provided by the cloud aretheoretically bulletproof in regards to scalability, with automatic loadbalancing built in. If your Web site is entirely hosted in the cloud,scalability concerns are (again, theoretically) a thing of the past.

 

Microsoft and Google are both constructing server farms ofawe-inspiring size near the cheap electricity provided by the dams of theColumbia River (near the Washington/Oregon border). These cutting-edge serverfarms have fat Internet pipelines and provide the foundation of their cloudservices.

 

The cloud services provided by each company tend topromote the offerings of that company. For example, Amazon s Web services makeit easy to query the products provided by Amazon.com, but they provide nodirect support for browsing the product catalogues of its competitors. Likewise,Microsoft s cloud services make it easy to interact with a user s MicrosoftLive Space account data, but offer no way to get at their MySpace data. Selfinterest is a commonality of every company discussed in this article; all theirAPIs tend to favor their own products and services to some extent.

 

Beware: Because each cloud provider has significantlydifferent APIs, once you commit to one, you re pretty much stuck. For example,if you develop a Web application using Google s cloud services and then Googleapplies a new usage price or policy that is undesirable, there is no easy wayto switch to (for example) Microsoft s services. Significant redesign andrecoding would be necessary. Therefore, the following paragraphs are intendedto help you choose the best path for your development needs.

 

Amazonian Clouds

When Service Oriented Applications became hot, Amazon.comwas one of the first companies to release to the developer community a largearray of potentially useful Web services. To this day, the number of Webservices they provide continues to dwarf other major players.

 

As always, Amazon continues to support its many classic Webservices that specialize primarily in querying Amazon.com s vast productcatalog. Amazon s newer developer offerings are grouped into a few differentcloud services. These services provide ways to programmatically store andretrieve data in the cloud and manage content. They also provide ways toprocess queries and other algorithms using cloud resources. A rich messagequeuing service also is provided.

 

Under Amazon s current pricing structure, most Web siteoperators would expect to be paying only pennies a month to use Amazon s manynew services. Only heavily-trafficked sites would be likely to pay a bit more.

 

Amazon provides extensive online documentation for theirservices, as well as sample code, tutorials, and forums. Premium supportoptions also are available.

 

Microsoft s Vision

Microsoft has traditionally been a leader in the softwaredeveloper community. After all, Windows would never have been such a success ifthey hadn t managed to lure so many third-party developers into creating usefulapplications for it. They accomplished this (in part) by providing many freeand cheap tools and support options for developers. This made it easier todevelop applications for Windows than for competing platforms (at the time).

 

I give Microsoft full credit for continuing this traditionwhen it comes to cloud computing. Other than their aforementioned Windowssuccess, I ve never seen Microsoft put so much money and effort into any otherinitiative. As a result, their cloud services are getting good fast.

 

Microsoft has grouped its offerings into a few differentcategories of cloud services: Microsoft s new .NET Services provide AccessControl functionality (for security and authentication), Service Busfunctionality (for gluing potentially disparate application pieces together),and Workflow Services (to enforce custom business rules).

 

Microsoft SQL Data Services also are provided to assistwith data querying. Live Services provide access to a user s Microsoft Liveaccount data, including their photos, contacts, alerts, etc. Before yourapplication is allowed to access for the first time such data on a user sbehalf, the user is prompted to approve such actions.

 

Microsoft s Azure Services also provide a selection ofpotentially useful services for data management, computations, batchprocessing, and more.

 

Microsoft also has been kind enough to provide VisualStudio integration for many of its services, including project templates andASP.NET Web controls. Figure 1 lists the set of upcoming Web controls (currentas of the November 2008 CTP).

 

Control Name

Description

IDLoginStatus

Enables Windows Live ID authentication.

IDLoginView

Extends the standard ASP.NET LoginView control with Windows Live ID support.

Contacts

Provides a gateway to a user s Windows Live contacts list.

Map

Allows interactive geographic maps to easily be added to an ASP.NET Web page.

MessengerChat

Enables Windows Live Messenger functionality within a Web page.

SilverlightStreamingMediaPlayer

Enables a rich media playing experience.

Figure 1:Microsoft s upcoming service-oriented ASP.NET Web controls.

 

As you d expect from Microsoft, a variety of resources areprovided to help developers get started quickly. Extensive online documentationis available, as are SDKs, training videos and kits, FAQs, code samples, blogs,online forums, etc. (see Figure 2).

 

 ID="id"  DataDesired="data"  Height="height"  PrivacyStatementURL="privacy.aspx"  View="view"  Width="width" /> Figure 2: The ASPXdeclaration for Microsoft s Contacts Web control.  Google s Cloud Formations Google has been a Web development leader nearly since itsconception. When they speak, people listen. Its impressive accomplishments incloud computing thus far suggest that s not going to change anytime soon.   Google s App Engine provides services for managing data,images, mail, users, authentication, and more. Small usage fees are applied tosome of the more resource-hungry services.   Unfortunately, you must use the Python programminglanguage to program with Google s App Engine. At least they provide demovideos, tutorials, and online documentation. Some other common resources also canbe found, such as discussion groups, articles, sample code, and a FAQ.  Yahoo! Clouds! Yahoo! has been struggling for years to regain thedominance it once held on the World Wide Web. Clearly it sees cloud computingas its next best chance to regain that prestigious position, so they are holdingnothing back.   Yahoo! s extensive service library includes APIs formanaging the user s Yahoo! address book, mail, messenger, authentication, andRSS feeds. There also are services that can be used to interact with the manycontent offerings provided by Yahoo!, such as shopping, HotJobs, Finance,Travel, etc. Other services include mapping features, weather, traffic, Flickr(photos), mashups, advertising, and, of course, searching.   Yahoo! s services support a variety of languages,including Microsoft .NET languages (like C# and VB.NET), Java, JavaScript,ColdFusion, Python, Ruby, and Silverlight. Yahoo! also provides onlinediscussion groups, FAQs, code samples in a variety of languages, design patternlibraries, and blogs.  Conclusion The oncoming wave of cloud services cannot be ignored. Whilecloud services may not suit every application, from this day forward theyshould at least be considered as the foundation for any new application youfind yourself designing.   Some companies are understandably hesitant about lettingother companies manage their precious data, especially when that data is beingstored in a mysterious cloud instead of the comfort of physically localcomputers. Some kinds of data may be more suitable for cloud storage, whileother kinds of data may continue to be controlled by traditional companydatabase servers.   Cloud services certainly have a lot to offer when it comesto application development. It can be liberating to offload scalability andload balancing concerns to companies that have nearly unlimited resources tomanage such matters. In the future, your company may be able to retire itsserver farms and save oodles of cash by taking advantage of cheap cloudservices.   Customers prefer using features with which they are alreadyfamiliar. For example, logging in using their existing Microsoft Live IDcredentials is generally preferable to having to memorize yet another user nameand password combination. It can be annoying for users to have a separate photolibrary on every site, when one central photo library accessed by each of thoseapplications would typically be preferable.   By taking advantage of cloud services, you caneconomically give users what they want. Envision creating applications that arefree from the expenses associated with hardware, infrastructure, loadbalancing, and server management. This is just some of what cloud services hasto offer to our collective futures.  Steve C. Orr is anASPInsider, MCSD, Certified ScrumMaster, Microsoft MVP in ASP.NET, and authorof Beginning ASP.NET 2.0 AJAX by Wroxpress. He s been developing software solutions for leading companies in theSeattle area for more than a decade. When he s not busy designing softwaresystems or writing about them, he often can be found loitering at local usergroups and habitually lurking in the ASP.NET newsgroup. Find out more about himat http://SteveOrr.net or e-mail him at mailto:[email protected].  ReferencesMicrosoft s Live Services: http://dev.live.com/Amazon Web Services: http://aws.amazon.com/Google APIs: http://code.google.com/Yahoo! APIs: http://developer.yahoo.com/OpenID: http://openid.net/      

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like