Generic Software Architecture in Cloud Computing Platforms

January 5, 2012 Off By David
Grazed from Sys Con Media.  Author: Mustafa Kamal.

For the past few weeks I have been reading different articles, publications, blog postings and so one regarding the generic software architectural model for cloud-based applications, and I am very interested in hearing other ideas about this as well.

Through my reading, I have found the following three types of software architecture in use within the current industry  for different types of web-based distributed applications
 

  • MVC – there are a large number of frameworks available based on MVC such as Spring, Struts2, JBoos Seam, JSF, ASP.NET MVC, Ruby-on-Rails, CakePHP, Zend, and Django. Microsoft’s cloud computing platform Azure also provides good integration and migration paths for MVC-based applications in the cloud…
 
  • Three-Tier – the architectural model represents a good separation of different tiers and distributed layers. From the emergence of web-based applications it played a key role in enabling the software architect to design a robust platform for their needs. However, it seems that with the advent of MVC frameworks and their ease of use three-tier architecture is now a second choice for many. Surprisingly, AppEngine, Google’s cloud platform, offers their migration strategies in such a way  that mostly provides a clean separation of "stateless computing tier" and "stateful storage tier" thus supporting the prime base of three-tier based architecture. And I found statements like MS Azure supports general-purpose computing rather than a specific type of application similar to what is supported by GAE.

  • SOA and REST – based applications are now quickly emerging due primarily to mobile computing platforms, service-oriented offerings and similarities with the standard Internet protocols for communication in distributed computing like HTTP, XML, UDDI, WSDL and SOAP. Emerging applications like Facebook, Twitter and other social networking types are mostly using the RESTful architectural model for their mobile platforms and future trends are also showing a stable focus with the enhanced usage of JAX-WS/RS, Jersey, Restlet, RestEeasy, Microsoft’s WCF, Apache CXF and Axis2. Now, if we look at the cloud computing principle, many of the Internet writers are showing how it evolves from SOA and SaaS but it’s not clearly mentioned how these two concepts are integrated and inter-operable with each other. Again, how SOA and SaaS-based applications are able to migrate to cloud platforms is still not fully clear. The phrase "Mobile Cloud Computing" is now seen in many Internet pages but how it actually works in accordance with SaaS and utility-based computing is still unknown from the viewpoint of a software architect.

To this end, we now have three different kind of architectural models that all have some similarities, many differences,and other critical brain reasoning facts but these can be inter-operable and how they can be migrated to the Internet giant’s (like Azure, GAE or AWS) cloud offerings are still not fully apparent and indicates more brainstorming for the passionate in this global community to integrate business and technology together.

It would be great to hear about more examples, comments and explanations as well as criticism 🙂 in this regard as I am just a newbie in this arena and still learning.