Conoce Acerca de SOA
Definicion de soa
SOA es un concepto, un estilo de desarrollo de aplicaciones con una estructura que soporta servicios débilmente acoplados para permitir la implementación de procesos de negocios en forma flexible de una manera interoperable e independiente de la tecnología que se utilice.
Se trata de servicios que contienen procesos de negocios que permiten crear aplicaciones con una arquitectura novedosa, de manera dinámica y reconfigurable utilizando descripciones de servicios basadas en interfaces. SOA permite descomponer las funcionalidades que una organización requiere en partes que son reutilizables, haciendo más sencillo e independiente su manejo. Un servicio puede contener otros servicios convirtiéndolo en un modelo iterativo.
Un servicio Web puede ser invocado por otro programa que funciona como cliente o consumidor del servicio. No es necesario conocer la lógica interna del servicio, solo se necesita conocer la entrada que requiere, la salida que produce y cómo se invoca para su ejecución. Los servicios Web son invocados basándose en decisiones tomadas por reglas de negocio, cuando cambia la regla de negocio se cambia el servicio web que la contenía, esto genera sistemas con un nivel de flexibilidad importante al no tener que considerar ni cambiar la lógica interna del programa ante cada cambio que se produce en las reglas de negocios, la dinámica actual las empresas y el mercado global obligan a constantes cambios en sus reglas de negocios y SOA posibilita eliminar los sistemas monolíticos que se usaban (y todavía se utilizan en la mayoría de los casos) y remplazarlos por una arquitectura que segmenta los requerimientos en servicios que se integran de manera dinámica. La figura 4 muestra las tecnologías relacionadas con SOA. La seguridad está presente en todo momento mientras que WSDL y SOAP son utilizados en determinado momento. Como se observa XML también está presente en todos los niveles.
Figura 4. Tecnologías relacionadas con SOA
Objetivos de soa
Los objetivos de SOA pueden analizarse desde el punto de vista empresarial y desde el tecnológico:
Desde el punto de vista empresarial:
Permite modularizar las aplicaciones en componentes de negocios intercambiables y de rápida adaptación a las necesidades especificas que se plantean a diario en una organización. Posibilitando una mejora en las prestaciones que brinda, en la relación con los clientes, entre los empleados y produciendo una reducción en el retorno de la inversión, mejorando la rentabilidad de las inversiones tecnológicas.
Desde el punto de vista tecnológico:
Permite combinar datos en tiempo real con otros sistemas capaces de fusionar los procesos de negocio. SOA utiliza tecnologías totalmente estándar como es XML, SOAP, WSDL y Business Process Execution Language (BPEL). Estandarizando el modelo de integración de procesos y la cooperación entre aplicaciones.
Con SOA es posible conectar aplicaciones desarrolladas con tecnologías heterogéneas, produciendo un aumento en la flexibilidad de las mismas y posibilitando una interacción no permanente entre las organizaciones cuando las mismas lo requieran. La curva de aprendizaje de las nuevas tecnologías con esta arquitectura se reduce drásticamente.
Capas de soa
Se distinguen las siguientes capas [8]
Capa 1: Sistemas operacionales. Esta capa contiene todas las aplicaciones existentes tanto ERP, CRM, sistemas orientados a objetos, aplicaciones de inteligencia de negocio, etc, SOA puede reutilizarlos e integrarlos.
Capa 2: Componentes empresariales. Estos componentes realizan la funcionalidad y mantenimiento de la calidad del servicio que se brinda.
Capa 3: Servicios. Los servicios de negocio residen en esta capa. Pueden ser descubiertos o pueden ser enlazados estáticamente y después invocados en servicios compuestos. Esta capa de exposición de servicios también permite tomar componentes que se encuentran en la capa 2.
Capa 4: Composición de procesos de negocio. A partir de los servicios de la capa 3 esta capa define la composición de procesos de negocio. Los servicios, para ejecutar un proceso de negocios son introducidos a través de orquestación y coreografía, conceptos que serán explicados más adelante.
Capa 5: Presentación o acceso. Esta capa se consideraba fuera del ámbito de la SOA, pero estándares como Web Services for Remote Portlets versión 2.0 (OASIS Web Services for Remote Portlets 2003) .
Capa 6: Integración de servicios (ESB). Posibilita la integración de servicios a través de la introducción de un conjunto fiable de capacidades.
Capa 7: Calidad del servicio. Esta capa brinda las capacidades necesarias para monitorizar, gestionar y mantener propiedades de calidad del servicio, como seguridad, ejecución y disponibilidad.
La figura 5 muestra esquemáticamente las capas de SOA
Figura 2. Capas de SOA según Arsanjani, Borges y Holley.
Propiedades de soa
Algunas de las más importantes propiedades de SOA son:
Orientación a la conversación. El foco de atención no está en los nodos sino en los mensajes que se intercambian entre los mismos.
Vista Lógica: El servicio es una abstracción (vista lógica) de los programas, bases de datos, procesos de negocio, etc..
Orientación a Mensajes: El servicio se define formalmente en términos de los mensajes que se intercambian entre agentes proveedores y solicitantes. Esto posibilita que se incorpore un componente “decorando” estos componentes con software de gestión y conversión.
Abstracción del agente. La estructura interna del agente (lenguaje de programación, BD, etc.) se abstrae en SOA, un nodo es una entidad computacional que participa en conversaciones con otros nodos. No es necesario conocer las particularidades del lenguaje de implementación. Esto evita problemas arquitectónicos derivados de la necesidad de conocer determinados sistemas a nivel estructural.
Metadatos. SOA se asocian con metadatos, los mismos son descripciones acerca de la forma y tipo de los elementos que transportan los mensajes, el orden de los mensajes, el significado de los mensajes, etc.
Orientación a la Internet: Los servicios tienden a usarse a través de la red, aunque este no es un requisito absoluto.
Granularidad: Los servicios tienden a usar un pequeño número de operaciones con mensajes complejos.
Neutral a la Plataforma: Los mensajes se envían en un formato estándar y neutral a la plataforma, utilizando XML
Un sistema distribuido [9] es un conjunto de agentes software que colaboran entre si para implementar una determinada funcionalidad. SOA es un tipo de sistema distribuido ya que los agentes rara vez trabajan en el mismo entorno, necesitando alguna forma de comunicación entre ellos. En SOA los agentes son servicios que realizan una operación determinada y que puede ser invocado desde afuera del contexto de una gran aplicación. La figura 6 muestra un diagrama genérico de SOA donde la clave son los mensajes intercambiados, los agentes actúan solicitando los servicios o haciendo de proveedores de los mismos, compartiendo los mecanismos de transporte que permiten el flujo de los mensajes
Figura 3. Diagrama de un SOA genérico
No hay comentarios:
Publicar un comentario