02 September 2006

Service Oriented Architecture

Service Oriented Architecture (SOA) es un estilo de arquitectura de Tecnología de la Información (TI) que soporta la orientación a servicios. Se basa en la independencia de plataformas de hardware, de sistemas operativos y de lenguajes de programación. Permite fortalecer la reutilización de los sistemas actuales que se construyeron y se utilizaron durante años; y crea un ambiente en el que los negocios y la TI pueden interactuar entre sí.

El Servicio es una tarea repetible que tiene una misma forma y se repite varias veces.

La Orientación a Servicios efectúa una conexión de servicios y resultados asociados. La Arquitectura Orientada a Servicios es un estilo de arquitectura que soporta la integración como servicios vinculados entre sí.

Un verdadero enfoque orientado a servicio se logra cuando las aplicaciones monolíticas son desorganizadas en servicios de negocios auto-contenidos y bien definidos. Toda la funcionalidad de infraestructura es provista mediante servicios. Los procesos de negocio son finalmente replicados como una composición de servicios, coordinada y orquestada por otro servicio.

SOA se fundamenta en: (1) Ejecutar rápido, adaptarse al mercado, ganar ante la competencia, (2) Reutilizar los componentes de los procesos de negocio, (3) Medir los resultados y tomas acciones sobre ellos, (4) Garantizar resultados que sean repetibles y predecibles y (5) Empezar donde sea necesario (área de negocios – área de tecnología).

Es posible tener una percepción distinta del mismo concepto, dependiendo del punto de vista que se emplee. Un “Ejecutivo de negocio” puede ver SOA como un conjunto de servicios de negocio que su organización busca exponer a sus clientes, socios o a otras áreas que la integran. Para un “Arquitecto”, en cambio, SOA será un estilo arquitectónico que va más allá de la implementación, al definir principios de diseño, patrones y criterios que permiten lograr características tales como modularidad, encapsulamiento, bajo acoplamiento, separación de responsabilidades, reutilización, composición, etc. Finalmente, para un “Desarrollador”, SOA es un modelo de programación que provee estándares, herramientas y tecnologías concretas, que le permiten llevar a cabo su tarea diaria.

SOA crea un conjunto de servicios que soportan procesos de negocio. Un negocio flexible permite responder a la velocidad del negocio, a la demanda de los clientes, a las condiciones del mercado y al ambiente competitivo. Un negocio flexible requiere de una infraestructura sensible. SOA brinda flexibilidad sobre sus sistemas actuales.

Las compañías que están comenzando a implementar SOA son aquellas que pueden adaptar sus procesos de negocios a los cambios del mercado, gracias a que su área de tecnología es flexible para aceptar los cambios.

SOA requiere un cambio en la forma de pensar y un cambio de tecnología. Si se analizan las tareas de negocios e identificamos aquellas que se pueden repetir, estas tareas se pueden definir como “Servicios”. Verificar un saldo, abrir una cuenta, comprobar la existencia de stock, son tareas de negocio repetibles que se denominan servicios. Por lo tanto, cualquier negocio, independientemente de su industria, posee servicios.

Existen bloques de construcción que son vistos como servicio y son una tarea de negocio. Se puede tomar cada uno de estos bloques y unirlos de manera flexible. Se puede ensamblarlos varias veces a medida que cambian sus necesidades. Cada bloque equivale a una tarea de negocios dentro de una empresa. Cada persona puede tomar distintos bloques y luego con todos construir algo diferente utilizando los mismos componentes.

Los puntos de entrada a SOA ayudan a las empresas a seguir el camino correcto: aplicando un enfoque basado en proyectos solicitando que cada proyecto entregue el valor empresarial real. Los puntos de entrada de SOA son: (1) Gente, (2) Información, (3) Procesos, (4) Reutilización, y (5) Conectividad. Las personas son la clave para la innovación y la productividad organizacional.

Analistas y Clientes concuerdan en que SOA es crítica para la innovación. La innovación se refiere a la capacidad de realizar cambios de una manera rápida, fácil y económica. La innovación que importa se refiere a todo lo que lo diferencia en su mercado. Reconocer las necesidades del mercado y responder más rápidamente que la competencia, con modelos, productos y servicios empresariales innovadores, es lo que hace que la empresa crezca. SOA ayuda a innovar al asegurar que los sistemas de TI pueden adaptarse veloz, fácil y económicamente para brindar soporte a las necesidades de negocios rápidamente cambiantes.

El ciclo de vida de SOA es: (1) Determinación de los requerimientos, (2) Ensamblado, (3) Integración, (4) Administración y (5) Gobernabilidad.

Las ventajas de SOA son: (1) Reduce el nivel de acoplamiento, (2) Mejora la definición de los roles de desarrollo, (3) Facilita la prueba del software, (4) Mejora la facilidad de mantenimiento, (5) Favorece la reusabilidad y mejora la productividad, (6) Favorece el desarrollo en paralelo, (7) Permite un monitoreo más preciso de los procesos y (8) Permite la interoperabilidad.

Se puede decir que SOA es una arquitectura formada por distintos servicios y que integrados forman un todo unido. Para cada servicio establecido, se puede tener en cuenta la Norma ISO 20000:2005 (Service Management) e ITIL (Information Technology Infrastructure Library), el cual consiste en un conjunto de mejores prácticas que pueden ser consideradas durante la implantación.

Por lo tanto, SOA es un concepto que las empresas están implementando, ya que una de las tendencias de los negocios es la prestación de servicios de TI.