Cloud Computing Platform as a Service(PaaS)
PaaS offers the runtime environment for applications. It also offers development & deployment tools, required to develop applications. PaaS has a feature of point-and-click tools that enables non-developers to create web applications.
Google's App Engine, Force.com are examples of PaaS offering vendors. Developer may log on to these websites and use the built-in API to create web-based applications.
But the disadvantage of using PaaS is that the developer lock-in with a particular vendor. For example, an application written in Python against Google's API using Google's App Engine is likely to work only in that environment. Therefore, the vendor lock-in is the biggest problem in PaaS.
The following diagram shows how PaaS offers an API and development tools to the developers and how it helps the end user to access business applications.
Following are the benefits of PaaS model:
Lower administrative overhead
Consumer need not to bother much about the administration because it's the responsibility of cloud provider.
Lower total cost of ownership
Consumer need not purchase expensive hardware, servers, power and data storage.
It is very easy to scale up or down automatically based on application resource demands.
More current system software
It is the responsibility of the cloud provider to maintain software versions and patch installations.
Like SaaS, PaaS also place significant burdens on consumer's browsers to maintain reliable and secure connections to the provider systems. Therefore, PaaS shares many of the issues of SaaS. However, there are some specific issues associated with PaaS as shown in the following diagram:
Lack of portability between PaaS clouds
Although standard languages are used yet the implementations of platforms services may vary. For example, file, queue, or hash table interfaces of one platform may differ from another, making it difficult to transfer workloads from one platform to another.
Event Based Processor Scheduling
The PaaS applications are event oriented which poses resource constraints on applications, i.e., they have to answer a request in a given interval of time.
Security Engineering of PaaS applications
Since the PaaS applications are dependent on network, PaaS applications must explicitly use cryptography and manage security exposures.
Here are the characteristics of PaaS service model:
PaaS offers browser based development environment. It allows the developer to create database and edit the application code either via Application Programming Interface or point-and-click tools.
PaaS provides built-in security, scalability, and web service interfaces.
PaaS provides built-in tools for defining workflow and approval processes and defining business rules.
It is easy to integrate with other applications on the same platform.
PaaS also provides web services interfaces that allow us to connect the applications outside the platform.
Based on the functions, the PaaS can be classified into four types as shown in the following diagram:
Stand-alone Development Environments
The Stand-alone PaaS works as an independent entity for a specific function. It does not include licensing, technical dependencies on specific SaaS applications.
Application Delivery-Only Environments
The Application Delivery PaaS includes on-demand scaling and application security.
Open Platform as a Service
Open PaaS offers an open source software that helps a PaaS provider to run applications.
Add-on Development Facilities
The Add-on PaaS allows to customize the existing SaaS platform.