( 2 Votes )

PaaS es el acrónimo en inglés para Platform as a Service, es decir Plataforma como Servicio; PaaS es el segundo pilar del Cloud Computing y suele construirse sobre recursos de tipo IaaS.

 

Las empresas que ofrecen PaaS gestionan tanto el Hardware como el sistema operativo así como un stack o "pila de servicio" completa.

Con PaaS todas estas capas computacionales están a disposición del desarrollador de forma transparente lo que facilita enormemente el despliegue de aplicaciones al eliminarse los costes y la complejidad inherentes a la compra y gestión del hardware y software subyacentes.

 

PaaS provee todos los ingredientes necesarios para soportar el ciclo completo de la construcción de aplicaciones SOA (Service Oriented Architecture) y cualquier servicio que se pueda hacer disponible desde internet.

 

En un servicio PaaS todas las opciones de servicio se encuentran en un entorno de desarrollo integrado incluido en la misma plataforma de desarrollo elegida. Control del código fuente, gestión de versiones, sistema de testeo dinámico e interactivo multiusuario y "roll out/roll back" con posibilidades de auditar todos estos procesos suelen ser incluidos en el paquete de servicio.

Cada proveedor PaaS ofrece una combinación diferente de servicios que facilitan el ciclo de desarollo de aplicaciones en su propia plataforma.

 

Algunos ofrecimientos PaaS también incluyen aplicaciones de workflow para desarrollado de aplicaciones, testeo, despliegue y hosting así como entornos de desarrollo colaborativos, integración de servicios web y marshalling, integración con bases de datos, control de seguridad, escalabilidad, almacenamiento, gestión de estados, instrumentación y otras heramientas que facilitan el trabajo de las comunidades de desarrollo. Todos estos servicios adyacentessuelen ofrecerse como un paquete, una solución única completamente disponible a través de Internet.

 

Paas hace sencillo y conveniente mantener sobre una misma estructura todo el ciclo de vida de una aplicación: desarrollo, testeo,despliegue, hosting y mantenimiento.

 

Las actuales ofertas de PaaS suelen incluir "frameworks" y diferentes niveles de soporte que facilitan la creación de interfaces de usuario, ya sea basados en HTML y Javascript u otras tecnologias dinámicas como Adobe Flex. Es posible definir entornos multi-usuario donde las aplicaciones se testean con usuarios finales reales.

 

Características:

 

Arquitectura "Multi-tenant"

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.

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).

 

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.

 

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.