Sunday, May 20, 2012

0. Introduction

Every IT guy has already been taken a glimpse at cloud computing and its service models. Apart from the fact that the cloud computing idea initialized from SaaS, IaaS, PaaS, nowadays the concept of Everything-as-a-service sounds interesting (if not promising).

After the initialization phase of an idea or a technologies, each industry moves forward to its member's role definition. While network administrator, hardware engineers has already gotten their role to start developing something on the cloud, one group has nearly left out: Software Developers.

It is obviously negotiable that Software Developers will now mainly work as SaaS engineers but there is one single issue: different elements between a SaaS and a web application is relatively negligible in most cases. It sounds fairly logical that nearly every subscription-based web application has the potential to be deployed as a SaaS, meaning that software-vise, nothing really new is happening. More precisely, with having sociability potentials aside, SaaS engineering is actually reusing software pasterns which are already been used in SOA and web development alongside agile programming models such as XP.

Figure 1. Scale-able SaaS elements [2]

After all that is being said, there comes an idea that what if the potentials of cloud computing are yet to be realized from software developer's point of view. The terminology "Cloud Software" is now becoming more and more popular amongst IT professionals. There is a discussion that Cloud Software is not basically the same as SaaS: they are either massively scalable applications [4], or the type of application in which user has full control over his data replication or the application is running into or off to organizations own cloud infrastructure [5]. While first definition is not understandable clearly from its definition, latter looks more like to SaaS running on a private or (at least) a hybrid cloud.