SOA: Qué es realmente
Transcripción
SOA: Qué es realmente
105 SOA SOA: Qué es realmente HAY QUE ENTENDER QUE SOA ES UN CONCEPTO DE DISEÑO DE ARQUITECTURA QUE TRATA DE ALINEAR A LAS TIS CON EL PROPIO NEGOCIO DE LA ORGANIZACIÓN La definición de componentes Óscar Roncero SENIOR SOLUTION ARCHITECT Progress Software utilización estándar y que abstraiga ya que lleva utilizándose a nivel de completamente de la implementación desarrollo desde el comienzo de los interna o tecnología de dicho lenguajes de programación mediante servicio. El objetivo de esto, es que la definición de “funciones” (como en sea muy rápido y sencillo C) o “clases” (como en Java). interconectar servicios Sin embargo en el caso de SOA, los Qué es SOA Antes de nada conviene aclarar qué es realmente SOA, ya que en muchas comprender, y un interfaz de reutilizables no es un concepto nuevo, independientemente de la tecnología componentes reutilizables a crear son con la que se hayan desarrollado y servicios de aplicación con significado de la plataforma en la que se propio, flexibles, débilmente acoplados ejecuten. Así, un servicio Java podría y altamente interoperables sobre ser fácilmente usado por ejemplo por estándares tecnológicos abiertos. El una aplicación Cobol. Otro típico ocasiones se confunde con una error a la hora de pensar en SOA es tecnología o producto software, y pensar siempre en Servicios Web nada más lejos de la realidad. Hay decenas de definiciones distintas de SOA en la Web y aunque la mayoría de ellas son acertadas, unas son más completas que otras. Hay que entender que SOA es un concepto de diseño de arquitectura que trata de alinear a las TI con el propio negocio de la organización. Y para esto, sugiere la creación de servicios y funcionalidades de negocio SOA intenta integrar las TI con el negocio para que las soluciones que aporte sean lo más cercanas a los requisitos de negocio que se intenten cubrir fácilmente reutilizables. Estos como estándar de definición de un servicio, pero esto no es así, ya que por norma general solamente entre el 20 y el 40% de los servicios usarán este interfaz. En definitiva, SOA, a diferencia de otras soluciones de integración como EAI (“Enterprise Application Integration”) no se limita al uso de una herramienta o "plataforma de herramientas" para integrar aplicaciones, sino que sugiere una servicios deben ser flexibles, seguros arquitectura ágil, escalable y y lo más importante de todo, con una hecho de usar estándares facilita el completamente distribuida por toda la arquitectura basada en estándares. uso de los servicios creados y que no organización. En las arquitecturas SOA intenta integrar las TI con el haya que utilizar tecnologías SOA entre otras muchas negocio para que las soluciones que propietarias. Esto es de vital funcionalidades, se integran aporte sean lo más cercanas a los importancia cuando se decide hacer aplicaciones al igual que hacen los requisitos de negocio que se intenten disponibles los servicios a terceros, EAIs, pero no se reduce a la cubrir, y dejen de ser soluciones como es el caso del B2B (“Business to integración de éstas dentro de una departamentales que cubran o Business”) o del B2C (“Business to localización concreta, sino que va mas resuelvan solo parcialmente parte de Consumer”). allá, va a los procesos de las las necesidades existentes sin tener Para comunicarse entre sí, estos organizaciones, a la gobernabilidad, al una visión de la globalidad del servicios deben ofrecer una uso de tecnología estándar, a la proceso. definición formal fácil de integración en entornos distribuidos, … nº 8 marzo 2007 106 SOA Modelo de niveles SOA Qué es un ESB un lado un sistema de mensajería incluyen funcionalidades reutilizables, robusto de alta disponibilidad y accesibles de manera estándar y que altamente escalable que permita pueden formar parte de procesos de SOA y que también conviene aclarar garantizar la comunicación entre los negocio. es el de ESB (Enterprise Service distintos servicios y aplicaciones de la Orquestación de los Servicios Bus). A diferencia de SOA, ESB sí es organización independientemente de previamente creados, mediante la una tecnología o producto software. su localización geográfica, y por otro definición de Procesos que utilizarán Puede definirse un ESB como la lado un mecanismo que permita dichos servicios disponibles en la Infraestructura que sirve como el fácilmente la definición de nuevos organización. backbone de las Arquitecturas procesos o su posterior modificación Construcción de nuevos Orientadas a Servicios (SOA). Un ESB orquestando los servicios existentes servicios según son necesarios para permite a una empresa, conectar, en la organización. Además debe la orquestación de los nuevos mediar, y controlar la interacción proporcionar funcionalidades Procesos y reutilización de los entre diversas aplicaciones y avanzadas como la de enrutamiento Servicios ya existentes en distintos servicios a lo largo de entornos de datos dinámico basado en el Procesos. altamente distribuidos y contenido de estos. Enterprise Service Bus (ESB). Otro concepto muy asociado a heterogéneos. Una vez que el número de procesos SOA de por sí puede aportar una gran potencia y flexibilidad a una orquestados es importante, la Etapas en la evolución a SOA organización sin necesidad de utilizar un ESB, pero sin un ESB es muy organización descubre que es difícil controlarlos y es difícil escalar Una vez que una organización decide procesos existentes, y en ese complicada la gestión y mantenimiento implementar SOA, es muy típico pasar momento es cuando las de los procesos SOA y el escalado de la por todas estas fases en el camino de organizaciones realmente descubren arquitectura en caso de ser necesario. evolución hacia la madurez SOA: que es muy complicado gestionar y Creación de los Servicios dentro escalar una Arquitectura SOA si se de la organización. Estos Servicios carece de un ESB. Normalmente un ESB debe proporcionar a una organización por nº 8 marzo 2007 107 SOA Cuadros de mando de monitorización de servicio web y servidores de aplicaciones Monitorización de los Procesos estructura de datos de una aplicación, en SOA. Además de conocer los en SOA. Una vez se definen los ya que es muy complejo identificar a procesos que están en ejecución, primeros procesos SOA, surge la qué puede afectar dicho cambio, todos surge la necesidad de tener necesidad de tener visibilidad en los cambios a realizar en otras información en tiempo real del quién está utilizando estos servicios, negocio, es decir, cuántos pedidos qué tiempos de respuesta se están estamos recibiendo en este ofreciendo, etc. Este punto será tenido momento, cuántos pagos no se han en cuenta en distintos momentos en el camino hacia la madurez SOA Integración Semántica de Datos. Es la problemática conocida como la del “Año SOA + 1”, ya que es una problemática que habitualmente no se tiene en cuenta a la hora de diseñar SOA y que se descubre cuando se empieza a utilizar. Toda la gestión de Puede definirse un ESB como la Infraestructura que sirve como el backbone de las Arquitecturas Orientadas a Servicios (SOA) realizado y caducan en dos días, si hay retraso en la entrega de algún producto, etc. Una de las principales garantías de éxito para una organización a la hora de abordar una evolución hacia SOA es apoyarse en proveedores que realmente tengan experiencia en este tipo de proyectos, y que sean capaces las transformaciones de datos, en de orientarla para evitar caer en muchas ocasiones se solventan a nivel errores ya vividos en otros proyectos del Orquestador o del BPM o incluso a SOA. Y cuando hablo de experiencia nivel del ESB, implementando en aplicaciones o transformaciones de en proyectos SOA me refiero a muchas ocasiones complicadas datos para gestionar dicho cambio y proyectos SOA que realmente estén transformaciones XSLT incluso para dónde realizarlos. en producción, y no pilotos o puesta formatos no XML. Esto genera Monitorización de negocio en producción de un cierto número de problemas a la hora de cambiar la (BAM) de los procesos en ejecución Servicios Web aislados. nº 8 marzo 2007