Cloud-based Software Architecture

WHAT IS A CLOUD-BASED SOFTWARE ARCHITECTURE?

A cloud is a metaphor that is used to depict the notion of “Internet” and everything included in it. It includes websites, web services, protocols, machines, hosts, clients, etc. [4] Cloud computing in simple terms means to “outsource” your computing needs to other hosts or servers residing on the Internet. It is used to access services provided by other servers that can be utilized by your application. This heavily uses the Service-Oriented architecture in which software exports functionality of its components in a universally accessible way. This “sharing” of functionality is possible by means of web services that allow other software / developers to access, utilize and incorporate them in their own applications. [1]

It is important to note that “Cloud Computing” does not restrict itself to software services but it also spans over the concepts of “Platform-” and “Infrastructure-as-a-service” hence offering a comprehensive platform that not only covers functionality and software aspects but also the hardware and physical resources as well. All of these resources can be utilized by other software(s). Cloud based software architecture is an amalgamation of “cloud computing” and “software development.” [1,2,4]

SERVICE ORIENTED ARCHITECTURE

Service oriented architecture (SOA) allows using functionality published by other software or services. In other terms, it is a loosely coupled architecture that distributes functionality and services provided by software as interoperable services. Softwares can be built using these Services or it may be used to distribute existing software over a number of servers. The granularity of these services can range from delivering a small feature to covering a complete business unit / process.

SOFTWARE-AS-A-SERVICE

Software as a Service (SaaS) is a model derived and based on SOA where complete software is provided in the form of a web-based solution. Often these solutions expose their public APIs and hence provide a web-service based gateway for other software.

SOA AND CLOUD

Any software that is built to make use of Internet-based architecture is termed as a “cloud-based software” [2] as it uses a host of services provided over the Internet. Cloud architecture can be seen as a superset that subsumes all internet based services that uses the Services Oriented approach to deliver services (platform, infrastructure, software, etc.).  [4]

The heart of cloud computing lies in using Service-oriented architecture as everything available is rendered, reproduced and made available by means of services.  It must be emphasized and made clear that SOA and Cloud are two different perspectives and are not comparable. SOA is an architectural pattern and a strategy whereas cloud computing is a type of solution. [3] However, SOA plays a vital role in delivering services that constitute the “cloud”.

“Putting this more simply, SOA is all about the process of defining an IT solution or architecture, while cloud computing is an architectural alternative. Thus, SOA can’t be replaced by cloud computing. In fact, most cloud computing solutions are going to be defined through SOA. They don’t compete – they are complementary notions.”  [3]


I did a little research in which I hypothesized that the cloud based software architecture is the next evolutionary step for large-scale (heavy traffic) web applications. Although a lot of people are skeptical about the whole notion of “cloud computing” et al., including Stallman however I explored and presented various practical situations where it becomes evident that something similar to a “cloud architecture” seems like a natural evolution.

I will be publishing the paper sometime soon, perhaps when I actually get time to setup my Computer Science Journal of research.


References:

[1]     “Cloud Computing”; B. Hayes; Communications of the ACM; Vol. 51, No. 7, July 2008; Page 9-11.
[2]    “Platform as a Service enables cloud-based software development and deployment lifecycle approach”; Dana Gardner (ZDNet).
[3]    “SOA and cloud: clearing up the ‘foggy’ relationship”; Joe McKendrick; 19 March 2009; http://blogs.techrepublic.com.com/programming-and-development/?p=1021; Accessed on 19 March 2009.
[4]    “Enterprise Cloud Services: Deriving Business Value from Cloud Computing White Paper” (White Paper); M. Haynie; pp. 13; http://cloudservices.microfocus.com/main/uploaded/doc/MFECS-WP-deriving-business-value.pdf; Accessed on 18 March 2009.

This entry was posted in Old Ramblings, Research & Theory and tagged , , , . Bookmark the permalink.