Platform as a service

From Wikipedia, the free encyclopedia

  (Redirected from PaaS)
Jump to: navigation, search

'Platform as a service' (PaaS) is the delivery of a computing platform and solution stack as a service. It facilitates deployment of applications without the cost and complexity of buying and managing the underlying hardware and software layers[1], providing all of the facilities required to support the complete life cycle of building and delivering web applications and services entirely available from the Internet[2]—with no software downloads or installation for developers, IT managers or end-users. It's also known as cloudware[citation needed].

PaaS offerings include workflow facilities for application design, application development, testing, deployment and hosting as well as application 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 provisioned as an integrated solution over the web.

A second definition of PaaS is more client oriented. PaaS can be defined as the concept to deliver a cost-effective cloud based workspace environment – the platform - to the End-user which integrates work/life environment and facilitates him or/her to work, communicate, interact and play (games) anywhere, anytime, any device in a safe manner based on the roles assigned to the end-user. As such PaaS could also be described as Datacenter Centric Client Based Utility Computing.

Contents

[edit] Key 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 lifecycle. Comprehensive PaaS should provide all service options in an integrated development environment within the actual target delivery platform, with source code control, version control, dynamic (interactive) multiple user testing, roll out and roll back with the ability to audit and track who made what changes when to accomplish what purpose

Web based user interface creation tools

PaaS offerings typically provide some 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. 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 allow interfaces to be defined for different user profiles by function or expertise. PaaS offer improved user experience[citation needed] by incorporating channels for real people feedback through out creation, design, development, testing, rollout, production ... the entire lifecycle through to 'end-of-life" "reincarnation" or "next generation evolution" of the application.

Multi-tenant architecture

PaaS offerings typically attempt to support use of the application by many concurrent users, by providing concurrency management, scalability, failover 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.

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.

Support for development team collaboration

The ability to form and share code with ad-hoc or pre-defined or distributed teams greatly enhances the productivity of PaaS offerings. 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.

Utility-grade instrumentation

PaaS offerings provide developers insight into the inner workings of their applications, and the behavior of their users. Some PaaS offerings use information about user behavior to enable pay-per-use billing. Historical/usage evidence may help:

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

Visualization tools could show usage patterns, exposing functional or correlational relationships between:

  • services &/or user interactions,
  • the value to the user or users, and
  • the cost of alternative service paths such as web and cell phone

just to name a few.

Financial data collection and, possibly, forecasting, are required to determine who pays what to whom and when (how often).

[edit] Types

Add-on development facilities

These facilities allow customization of existing 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.

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.

Application delivery-only environments

Some PaaS offerings lack development, debugging and test capabilities, and provide only hosting-level services such as security and on-demand scalability.

[edit] Factors driving adoption

PaaS is in its early stages, and adoption is driven by many of the same features driving SaaS adoption. Additional, platform-specific factors include

  • The benefits of ad hoc, geographically distributed development teams working together on projects
  • The ability to incorporate web services from multiple sources
  • The cost reductions derived from using built-in infrastructure services for security, scalability, failover etc, rather than obtaining and testing and integrating these separately
  • The cost reductions derived from using higher level programming abstractions for creating services, user interfaces and other application elements.
  • The desire of people (users) to have evolving technology that can be continuously improved to support multi-user interaction to address the complex problems we face
  • To drive the use of technology that has a purpose of making it easier to develop interactive multi-user applications for people not just in development teams, but in any group of people doing things together.

[edit] Factors inhibiting adoption

PaaS offerings provide either proprietary service interfaces or proprietary development languages both of which tie a created application to that provider by raising switching costs[3], relative to the switching costs of conventional hosting. The lack of interoperability and portability between providers creates additional risks for users through a lack of pricing competition and loss of strategic control. An example of these risks can be seen through the history of the now defunct Zimki, one of the earliest PaaS environments launched in 2006[4] but subsequently closed down in 2007. However, three recent developments in 2009 are increasing the adoption rate of PaaS. First, the economic down-turn in 2009 is making companies look to PaaS to save time and money on their development efforts and infrastructure. Second, favorable reports from major technology research companies, such as Forrester Research[5] and publications, such as InfoWorld[6]. Third, the new emerging "Open Platform as a Service" (OPaaS) addresses the traditional shortcomings of PaaS, (e.g., proprietary development environments, a single or proprietary programming language, data portability, etc.) by letting developers use whichever programming languages, development tools, servers/clouds, etc. they choose. An alternate solution is the introduction of open sourced standards and the development of markets based upon such standards.[7][8]

  • Limits on growth

The flexibility of PaaS offerings may not be compatible with the requirements of quickly growing sites, both in terms of scalability for many users, and addition of new complex features that may be difficult to implement on a web-based platform.

[edit] See also

[edit] References