Software as a Service
En el primer nivel de madurez, cada cliente cuenta con su propia versión de la aplicación hospedada y ejecuta su propia instancia de la aplicación en los servidores de hospedaje. Migrar una aplicación tradicional no compartida o bajo un esquema de cliente-servidor, a este nivel de SaaS, generalmente requiere menos esfuerzo de desarrollo y reduce los costos de operación al consolidar el hardware de servidores y la administración.
El Segundo nivel de madurez proporciona mayor flexibilidad de programación a través de meta-datos configurables, de manera que varios clientes puedan utilizar instancias separadas del mismo código de la aplicación. Permitiendo al proveedor satisfacer diferentes necesidades a través de opciones de configuración detalladas, simplificándose el mantenimiento y la actualización del código base, el mismo que es común a todos los clientes.
El tercer nivel de madurez agrega el concepto de “multi-tenancy” al segundo nivel, de manera que una sola instancia del programa se ejecuta para todos los clientes. Esto hace que el uso de recursos del servidor sea más eficiente, de tal forma que es completamente transparente para el usuario final. Sin embargo y en el transcurso del tiempo se tropieza con los limites de escalabilidad.
El último nivel de madurez de SaaS, agrega la escalabilidad a través de un arquitectura que soporta una “conjunto”, donde se balancea la carga, de instancias de aplicaciones idénticas, ejecutándose en varios servidores. El proveedor puede incrementar o disminuir la capacidad del sistema a fin de cumplir con la demanda, adicionando o retirando servidores, sin la necesidad de alterar o modificar la arquitectura de las aplicaciones.