Esta vez me gustaría compartir con ustedes una visión del paradigma de los servicios, basada en un seminario en el que se planteó a los servicios como un nuevo lenguaje para los negocios. El desafío actual y la falta de respuesta de los sistemas IT tradicionales dan lugar a:
- SOA (Service Oriented Architecture): como procesos flexibles
- Web 2.0: como desarrollos flexibles
- Cloud Computing: como infraestructura flexible
El uso de servicios no anula el sistema “core” de una compañía sino que intenta darle flexibilidad a ese gran sistema, sacando funcionalidad que necesite compartirse y así hacerla extensible con el uso de uno o más servicios.
Definición de servicio
En particular, me resultó interesante el concepto de "servicio". Pensando que un servicio es tal si es entendible por un usuario, si ofrece una funcionalidad de negocio concreta. Por ejemplo, consultar crédito del cliente, abrir una nueva cuenta son tareas repetibles del negocio y son una funcionalidad concreta. Y más interesante me pareció el contraejemplo: una consulta a una tabla de base de datos es más fácil accederla directamente a la base de datos y no a través de un servicio. Un servicio empieza a tener sentido cuando resuelve una entidad de negocio, y hacerla desde la propia aplicación es un esfuerzo grande, entonces resulta más fácil usar un servicio que lo haga.
Los servicios pueden clasificarse en tipos: de negocio, tecnológico, de información.
Web 2.0
Los servicios pueden hacerse fácilmente disponibles para su uso con interfaces de usuario web 2.0. Se utilizan técnicas SOA para identificar servicios y tecnologías abiertas para consumirlos:
- Rest para representar y acceder a los servicios
- Los datos son codificados en XML y consumidos via feeds (RSS, ATOM), con Interfaces de usuario muy ricas (AJAX)
Cloud Computing
Los procesos de negocios son soportados por aplicaciones SOA, compuestas por servicios SOA tradicionales y servicios con el estilo Web 2.0, accesibles interna o externamente desde redes convencionales o desde las mismas “nubes”.
Poner en marcha un servicio sobre una arquitectura de nubes ayuda a normalizar la capacidad:
- Otros servicios masivos de alta variabilidad pueden aprovechar la nube
- La infraestructura permite mayor elasticidad
- Se puede satisfacer la carga pico sin necesidad de tener capacidad ociosa en otros momentos