Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Plataformas Software as
Service:¿Modelo,Plataforma o
Servicio?
Recientemente me encontraba impartiendo una clase de Arquitecturas de Software. En un
experimento rápido pregunté si alguien conocía el término Software-as-a-Service (SaaS).
La respuesta fue una rotunda negativa de todos. Luego pregunté si alguien había usado
alguna vez Google Docs y la gran mayoría respondió afirmativamente. Les comuniqué mi
conclusión: aunque no conocían el término, ya habían usado SaaS.
Ahora bien, antes de definir ciertos conceptos en cuanto a este tema,creo que es
importante mencionar algunas tendencias de negocioen este mercado; Gartner predice
que:
Para el 2011, 25% de los nuevos negocios de software usarán el modelo SaaS.
IDC también estima que las empresas gastarán US$14.8 billones en soluciones SaaS y
que dos de cada tres negocios considerarán comprar software con modelos de
subscripción. Estas cifras son verdaderamente importantes, ya que representan un amplio
mercado en la industria del software para los próximos años. Ejemplos de negocios que
usan este enfoque son Salesforce.com, Google Apps, Appian, OpSource, CogHead, entre
otros. Con esta tendencia, es importante también definir la forma en que este tipo de
software es desarrollado y entregado al cliente. Este artículo analizará este aspecto y sus
implicaciones en la metodología tradicional del desarrollo del software.
Conceptos SaaS
Para comenzar, podemos decir que SaaS no es una tecnología ni una metodología.
Tampoco es un modelo de negocio específico. SaaS es un enfoque que consiste en
varios componentes:
El modelo de subscripción debe soportar diferentes tipos de cobro, como son pago por
transacción o periodo de tiempo. Los clientes de SaaS, a diferencia de los modelos ASP
(Application Service Provider), son entidades de negocio y no usuarios finales. La
plataforma SaaS provee soporte para diferentes aplicaciones, tanto las que son
entregadas para los clientes como para aplicaciones propias de los proveedores.
Comúnmente se usa el termino tenant para referirse tanto a los clientes como
proveedores que usan la plataforma para consumir o proveer las aplicaciones SaaS.
La figura 1 muestra la arquitectura de alto nivel de una plataforma SaaS. En el nivel más
alto se encuentran las aplicaciones proporcionadas por los proveedores. La plataforma
expone componentes de
soporte para estas aplicaciones. Otros servicios son de meta-datos y administración de
tenants. Infraestructura de software y hardware también es proporcionada por la
plataforma. Sobre esta arquitectura, las aplicaciones SaaS son desarrolladas,
desplegadas y entregadas a un número considerable de clientes.
Una pregunta importante es cómo el enfoque SaaS afecta a los proveedores de software
y su incentivo a invertir en el desarrollo de productos. Transformar un producto
empaquetado a un modelo SaaS no es una simple cuestión de reescribir código. Estas
compañías necesitan examinar sus modelos de ingeniería y mercadeo para adaptarse a
este nuevo enfoque de negocio y de desarrollo.
Figura 2. Ciclo de vida en aplicaciones SaaS
La figura anterior describe que las actividades son diferentes a un producto tradicional.
Una de las causas principales de estas diferencias, es que las aplicaciones SaaS están
acopladas a una plataforma y en
cada etapa esta plataforma juega un rol importante en el ciclo de vida SaaS. La siguiente
tabla analiza el impacto en cada etapa del desarrollo cuando el software es entregado
como producto y como servicio.
Requerimientos
En el enfoque tradicional, los requerimientos consisten en definir una serie de funciones
que satisfagan las necesidades de un cliente. En el caso de las aplicaciones SaaS, los
desarrollos son meramente basados en un modelo de negocio. Eso es, una aplicación
SaaS debe cumplir con los requerimientos de un mercado meta. Debido a que las
aplicaciones serán consumidas por un gran número de subscriptores (empresas clientes)
y cada uno puede tener potencialmente un número grande de usuarios, entonces más
requerimientos no funcionales son introducidos al proceso, como por ejemplo: soporte
para alta concurrencia, almacenamiento escalable, virtualización/ clustering entre otros.
Las actividades propuestas son:
Análisis
La etapa de análisis debe ser realizada también desde la perspectiva de negocio. Esto es
debido a que cada aplicación tratará de satisfacer las necesidades de un amplio número
de clientes. La definición de los procesos de negocio que soportará cada aplicación es un
paso importante en este tipo de aplicaciones, ya que debe permitir la personalización y
definición de procesos similares para cada cliente.
Diseño
La fase de diseño consiste en desarrollar documentación que soporte la etapa de
construcción.
Implementación
Además de las tareas comunes involucradas en la implementación, dentro del desarrollo
SaaS es necesario considerar a la plataforma que soporta las aplicaciones.
Pruebas
La principal diferencia entre las metodologías tradicionales y la propuesta para SaaS
radica en que las pruebas de integración necesitan validar la integración correcta entre las
aplicaciones y la plataforma.
Otra diferencia importante es en cuanto a las pruebas de rendimiento y métricas de uso.
Conclusión
Nuevas plataformas conocidas como Software-as-a-Service (SaaS) serán un importante
canal de distribución para el software empresarial en un futuro cercano. El proceso de
desarrollo sobre estas plataformas debe considerar diversos factores que no presentan
los métodos actuales de desarrollo de software. Las diferencias entre desarrollar software
como servicio o como producto empaquetado son evidentes y estas diferencias cambian
la manera en que las aplicaciones SaaS son desarrolladas. Dadas estas diferencias, este
trabajo analiza las consideraciones necesarias para cada etapa de desarrollo en este
nuevo tipo de aplicaciones y también presenta una guía para desarrollar aplicaciones en
ambientes de negocio Software-as-a-Service.
Referencias
[ Turner, M.; Budgen, D.; Brereton, P. “Turning software into aservice”. Computer. Volume
36, Issue 10, Octubre 2003. ]
[ Predicts 2007: Software as a Service Provides a Viable DeliveryModel. Gartner Inc.
2006. ]
[ Wolde, Erin Ten. Research Analyst, IDC. Agosto 2007. ]
[ Natis, Yefim V. Introducing SaaS-Enabled Application Platforms: Features, Roles and
Futures. Gartner Inc. 2007. ]
[ Choudhary, V. “Software as a Service: Implications for Investment in Software
Development”. Annual Hawaii International Conference on System Sciences, 2007. ]
[ Olsen, E.R. “Transitioning to Software as a Service: Realigning Software Engineering
Practices with the New Business Model”. Service Operations and Logistics, and
Informatics, 2006. ]
[ Carraro, Gianpaolo; Chong, Fred y Page, Eugenio Pace. “Efficient Software Delivery
Through Service-Delivery Platforms”. The Architecture Journal. Microsoft MSDN
Architecture Center ]
[ Chou, Timothy. The End of Software. Sams Publishing, 2005. ]