Platform as a service

From Wikipedia, the free encyclopedia

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


[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 technologies. 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 remove developer concerns regarding the use of the application by many concurrent users. This may include providing automatic facilities for concurrency management, scalability, failover and security. Architecture incorporates the ability to define the "trust relationship" between users in security, access, distribution of source code, navigation history, user (people and device) profiles, interaction history, 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

Integrated PaaS offerings provide an opportunity for developers to have much greater insight into the inner workings of their applications and the behavior of their users. Certain PaaS offerings leverage this instrumentation to enable pay-per-use billing models. Comprehensive PaaS would provide for the collection of historical/ usage evidence to determine whether services or interactions are of value to the users/customers (including how much value compared to other services), implementation of rudimentary activity based costing to allow tracking of costs and revenue on a service activity basis. Instrumentation would provide for visualization (beyond rows and columns) of the information to show patterns and allow for insights to be induced or deduced about functional or correlational relationships between provided service interactions, the value to the user or users, the cost of optional service paths (web, cell phone) just to name a few. Financial data collection and the ability to forecast accounting data will be required to develop the emerging business models for who pays what to whom and when (how often). Collection of this data and the presentation/visualization of the data is included in the instrumentation of PaaS.

[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[3][4]

  • 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[5], 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[6] 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[7] and publications, such as InfoWorld[8]. 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.

  • 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

[edit] External links

Personal tools