Desde hace algún tiempo, las Arquitecturas Orientadas a Servicios (SOA – Service Oriented Architectures) son mencionadas constantemente por gran parte de las publicaciones relacionadas con TI y por las empresas proveedoras de plataformas de aplicaciones. Cabe preguntarse, entonces, ¿a qué se debe el auge de SOA?
Primero que todo, debemos aclarar que el término clave en la expresión “Arquitectura Orientada a Servicios” es justamente servicio, por lo que, en primer lugar, debemos concentrarnos en este concepto.
Desde el punto de vista de las SOA, el término servicio ha sido utilizado tradicionalmente para describir una función de negocio auto-contenida, con una interfaz bien definida y estable y que recibe requerimientos de sus clientes.
El servicio, entonces, no depende del contexto de sus clientes y puede ser consumido por varios sistemas sin que éste sea modificado. Finalmente, los servicios son instalados (o desplegados) una única vez y permanecen disponibles, sin consumir recursos, hasta que son invocados.
En este sentido, SOA es un estilo arquitectónico que propone modelar toda la empresa, como una colección de servicios expuestos en la red, y cambiar la manera en que se concibe la arquitectura, no de un sistema o aplicación aislado, sino de la empresa como un todo. Entre sus ventajas, se destaca la reducción del nivel de acoplamiento (permitiendo que las modificaciones, en la implementación de un servicio, no afecten a sus consumidores). También mejora la definición de los roles del desarrollador; posibilita una delineación de seguridad más clara; facilita el testeo (elevando la calidad del código producido); mejora la mantenibilidad; favorece el reuso (incrementando la productividad); aumenta la escalabilidad y la alta disponibilidad; logra un mapeo más directo entre los procesos de negocio y los sistemas; y permite un monitoreo más preciso de los procesos y la interoperabilidad.
Cambio de paradigma
Así, todo proceso de arquitectura empresarial robusto tiene que responder a las siguientes preguntas: ¿La arquitectura actual está dando soporte y añadiendo valor a la organización? ¿Cómo debería ser modificada la arquitectura para que agregue más valor aún? ¿Podrá la arquitectura actual soportar los objetivos que persigue la organización hacia el futuro?
La adopción gradual de SOA en una organización espera ser una respuesta a estas interrogantes ¿De qué forma? Creando un concepto, una tecnología y un marco de procesos que permita a las empresas desarrollar, interconectar y mantener aplicaciones empresariales y servicios de manera eficiente y económica. SOA se propone eliminar la brecha existente entre los procesos de negocios y las implementaciones de TI, permitiendo la flexibilidad, eficiencia y velocidad de adaptación necesarias para soportar los continuos cambios del mundo de los negocios.
Se trata de un cambio paradigmático -al extremo de compararlo con el paradigma de Orientación a Objetos- en la manera de concebir la implementación de sistemas, donde las aplicaciones abandonan el centro de la escena y su lugar pasa a ser ocupado por los servicios.
Muchos programadores y arquitectos hemos sido inducidos a diseñar y programar bajo los lineamientos de este nuevo paradigma, entusiasmados ante la posibilidad de resolver de una vez y para siempre algunos de los problemas que nos acosan desde hace años: la duplicación de soluciones, la interoperabilidad o la interconexión de aplicaciones.
Sólo el tiempo dirá si SOA es capaz de materializar todas sus promesas. Por el momento, está logrando la masa crítica de adhesión necesaria por parte de los principales proveedores de plataformas de aplicaciones, empresas, arquitectos y programadores de la comunidad de sistemas, como para transformarse, en poco tiempo, en una exigencia para cualquier profesional de TI. Esto es algo que no puede pasar desapercibido y tenerlo en cuenta ayudará a respondernos la interrogante: ¿por qué elegir SOA?