Cloud Computing Service Model
Cloud computing means using IT infrastructure as a service and that service may be anything from renting raw hardware to using third-party APIs. In practice, cloud service providers tend to offer services that can be grouped into three categories: Infrastructure as a Service (IaaS), platform as a Service (PaaS) and Software as a Service (SaaS).
the capability provided to the customer of IaaS is raw storage space, computing, or network resources with which the customer can run and execute an operating system, applications, or any software that they choose. The cloud customer is not able to control the distribution of the software to a specific hardware platform or change parameters of the underlying infrastructure, but the customer can manage the software deployed (generally from the boot level upward). Thus, dynamic scaling, usage-based pricing, reduced costs and access to superior IT resources are some of the benefits of IaaS.
SaaS is one of the service deployment mechanisms which enable user’s access different software from the cloud wherever they are, and whenever they need without installing it on their machine. Instead of installing, maintaining and managing complex software and hardware task, SaaS allows to simply accessing the application through a thin client interface, such as a web browser., the consumer uses an application without having hardware or software to buy, install, maintain, update, and manage the infrastructure on which the applications running. SaaS applications run on a SaaS provider’s servers and the provider manages access to the application, including security, availability, and performances using open standards apply at the application level 13.
Platform as a Service model describes a software environment in which a developer can create and deploy cloud application customized solutions within the context of the development tools that the platform provides. These applications could be for use by the client or accessible as a service to others. Creating applications using PaaS means that they are inherently cloud-enabled and the PaaS provider also provides the service upon which these applications run 14.
In the traditional model of software development applications are written in one environment, tested in another environment and deployed elsewhere 15. PaaS is a combination of a development platform and a solution stack, delivered as a service on demand.
In the case of PaaS, the cloud provider not only provides the hardware, but they also provide a toolkit and a number of supported programming languages to build higher-level services (i.e. software applications that are made available as part of a specific platform). The users of PaaS are typically software developers who host their applications on the platform and provide these applications to the end-users. Programming platforms and tools (such as .NET, java or python) and APIs for building cloud-based applications and services are exposed to developers who can create applications for testing or for commercial purposes for a minute fraction of the cost of provisioning server infrastructure for themselves. The difficulty with PaaS is that it locks the developer and the customer into a solution that is dependent upon the platform vendor. An application written in Python against Google’s API using the Google App Engine is likely to work only in that environment. There is considerable vendor lock-in associated with a PaaS solution.
TABLE 2.1: SERVICE DELIVERY MODELS 16