Platform as a service

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Platform as a service (PaaS) is a category of cloud computing services that provide a computing platform and a solution stack as a service. Along with software as a service (SaaS) and infrastructure as a service (IaaS), it is a service model of cloud computing. In this model, the consumer creates the software using tools and/or libraries from the provider. The consumer also controls software deployment and configuration settings. The provider provides the networks, servers, storage and other services.[1]

PaaS offerings facilitate the deployment of applications without the cost and complexity of buying and managing the underlying hardware and software and provisioning hosting capabilities.[2]

There are various types of PaaS vendor; however, all offer application hosting and a deployment environment, along with various integrated services. Services offer varying levels of scalability and maintenance.[3][4]

PaaS offerings may also include facilities for application design, application development, testing and deployment as well as services such as team collaboration, web service integration and marshalling, database integration, security, scalability, storage, persistence, state management, application versioning, application instrumentation and developer community facilitation. These services are generally provisioned as an integrated solution over the web.[citation needed]

Contents

[edit] Types

Add-on development facilities

These facilities allow customization of existing software-as-a-service (SaaS) applications, and in some ways are the equivalent of macro language customization facilities provided with packaged software applications such as Lotus Notes, or Microsoft Word. Often these require PaaS developers and their users to purchase subscriptions to the co-resident SaaS application.[citation needed]

Stand alone development environments

Stand-alone PaaS environments do not include technical, licensing or financial dependencies on specific SaaS applications or web services, and are intended to provide a generalized development environment.[citation needed]

Application delivery-only environments

Delivery-only PaaS offerings do not include development, debugging and test capabilities as part of the service, though they may be supplied offline (via an Eclipse plugin for example[5]). The services provided generally focus on security and on-demand scalability.[citation needed]

Open platform as a service

This type of PaaS does not include hosting as such, rather it provides open source software to allow a PaaS provider to run applications. For example, AppScale allows a user to deploy some applications written for Google App Engine to their own servers, providing datastore access from a standard SQL or NoSQL database. Some open platforms let the developer use any programming language, any database, any operating system, any server, etc. to deploy their applications.[6][7]

[edit] Key characteristics

Multi-tenant architecture

PaaS offerings typically attempt to support use of the application by many concurrent users, by providing concurrency management, scalability, fail-over and security. The architecture enables defining the "trust relationship" between users in security, access, distribution of source code, navigation history, user (people and device) profiles, interaction history, and application usage.[citation needed]

Integration with web services and databases

Support for SOAP and REST interfaces allow PaaS offerings to create compositions of multiple web services, sometimes called "mashups" as well as access databases and re-use services maintained inside private networks. Support for keeping the user/relationships (if multiple users)/device context and profile through the mashup across web services, databases and networks.[citation needed]

[edit] Full development PaaS characteristics

Services to develop, test, deploy, host and maintain applications in the same integrated development environment

Different PaaS offerings provide different combinations of services to support the application development life-cycle. A comprehensive development PaaS might provide service options in an integrated development environment within the actual target delivery platform. It could include source code control, version control, user testing, roll out and roll back with the ability to audit and track who made what changes when and which task they were accomplishing.[citation needed]

Web-based user-interface creation tools

Some PaaS offerings provide a level of support to ease the creation of user interfaces, either based on standards such as HTML and JavaScript or other Rich Internet Application technologies like Adobe Flex, Flash and AIR. This might allow rich, interactive, multi-user environments and scenarios can be defined, tried out by real people (non-programmers), with tools that make it easy to log/single out features that annoy or frustrate either novices or experts. Creation tools might allow interfaces to be defined for different user profiles by function or expertise.[citation needed]

Support for development team collaboration

The ability to form and share code with ad-hoc or pre-defined or distributed teams could potentially enhance the productivity of PaaS offerings. In some cases, schedules, objectives, teams, action items, owners of different areas of responsibilities, roles (designers, developers, tester, QC) can be defined, updated and tracked based on access rights.[citation needed]

Utility-grade instrumentation

PaaS offerings provide developers some insight into the inner workings of their applications, and the behavior of their users. Some PaaS offerings use information about user behaviour to enable pay-per-use billing. Historical usage and logs may help:[citation needed]

  • determine whether services are of value to users/customers
  • compare the value of different services
  • track activity based costs and revenues

Visualization tools could show usage patterns, exposing functional or correlational relationships between:[citation needed]

  • services and/or user interactions
  • the value to the user or users
  • the cost of alternative service paths such as web, mobile browser or mobile applications

[edit] Popular PaaS

[edit] See also

[edit] References

[edit] External links