De la tecnología SOA
Enviado por alancitus • 1 de Agosto de 2011 • Práctica o problema • 1.532 Palabras (7 Páginas) • 561 Visitas
Introducción
Arquitectura es un concepto indispensable dentro de las aplicaciones hoy en día, se refiere a la combinación e integración de múltiples ambientes o plataformas. Las aplicaciones de negocio no están circunscritas a la base de datos, o el servidor de aplicaciones por ejemplo. Cubren todos los recursos informáticos disponibles en buen funcionamiento en una organización y requieren entonces de una definición de arquitectura.
SOA representa la convergencia de tecnologías disímiles y es un ambiente de integración sin exclusiones. La arquitectura trasciende el concepto de una tecnología en particular, Web services, por ejemplo, y es independiente de ellas. Una arquitectura como SOA está en capacidad de involucrar diferentes tecnologías y representa mejor la integración de las mismas.
En una aplicación construida con SOA, todas las funciones están definidas como servicios independientes con interfases invocables bien definidas. Pueden ser llamados en secuencias definidas para conformar un proceso de negocios. Los componentes de esta definición son:
Todas las funciones son definidas como servicios. Incluye funciones puramente de negocios (Ej. crear una orden), transacciones de negocios compuestas de funciones de más bajo nivel (Ej. obtener historia crediticia) y funciones de servicios del sistema (Ej. validar la identificación).
Todos los servicios son independientes. Operan como “cajas negras.” Los componentes externos no conocen ni les interesa como desempeñan su función, solo que entreguen el resultado esperado.
En el sentido más general, las interfases son invocables, a nivel de la arquitectura es irrelevante si son locales o remotas (externas al sistema). No importa el sistema de interconexión o protocolo utilizado para invocar, o cuales componentes de la arquitectura son utilizados en la conexión.
La Naturaleza del Servicio
Un servicio puede ser una simple capacidad de negocio, (Ej. la cotización de una acción), una transacción más compleja (Ej. comprometa el inventario) o un servicio del sistema (Ej. registro del mensaje entrante).
Las funciones de negocio son, desde el punto de vista de la aplicación, funciones atómicas (indivisibles) diferentes a las del sistema. Pueden parecer una simple función a la aplicación que la invoca, pero pueden implementarse como funciones compuestas cubiertas por su particular contexto transaccional. Pueden involucrar múltiples funciones de más bajo nivel, transparentes para quien las llama.
Las funciones del sistema son funciones generalizadas que pueden abstraerse de la plataforma en particular, tales como Windows® o Linux. Esta puede parecer una diferenciación artificial de los servicios. Puede verificarse desde la perspectiva de la aplicación, todos los servicios son atómicos, sean de negocios o del sistema. La distinción se hace para introducir el importante concepto de granularidad. La descomposición de procesos de negocio en servicios no es solo una abstracción, tiene implicaciones muy prácticas.
Los servicios pueden ser funciones de bajo nivel o complejos de alto nivel (granularidad fina o gruesa), y basados en esta definición existen diferencias muy reales en desempeño, facilidad de mantenimiento y reutilización. El nivel de granularidad es una expresión de la riqueza funcional del servicio. Por ejemplo, entre mayor la granulación, mas riqueza funcional ofrecida.
Los servicios típicamente son funciones de negocio de grano grueso, como abrir la cuenta puesto que la operación puede resultar en la ejecución de múltiples operaciones de grano fino, verificar identificación y crear cuenta.
Este proceso de definir servicios es normalmente una conversación XML realizada por objetos dentro de un alcance mayor, el de la estructura de la aplicación. Este es realmente el trabajo a realizar, el desarrollo de una estructura basada en componentes, en la cual los servicios son definidos como un conjunto de componentes reutilizables los cuales pueden usarse para construir nuevas aplicaciones o integrar programas existentes.
Gráfico de como se relación los servicios
Gráfico de como se comunican los servicios
Definición de SOA
Una Service-Oriented Architecture es una estrategia tecnológica por la cual las aplicaciones hacen uso de los servicios disponibles en una red.
Es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio.
Implementar una arquitectura orientada a servicio comprende el desarrollo de aplicaciones que usen los servicios, aplicaciones disponibles.
Arquitectura Orientada a Servicios (SOA), es un marco conceptual para integrar procesos de negocios soportados en tecnología segura a través de componentes desarrollados bajo estándares internacionales que pueden ser re-utilizados y combinados para adaptarse a los cambios de prioridad del negocio.
SOA es una arquitectura desacoplada de componentes de software que proveen funciones específicas (proveedor) y que pueden ser invocadas por otros componentes (consumidor) independientemente de la plataforma en que se encuentrenambos.
Características
• Visión Lógica: El servicio es una visión abstracta y lógica de los programas, bases de datos, procesos de negocio, entre otros, definido en términos de lo que hace, normalmente ejecutando una operación de negocio.
• Orientación al mensaje: el servicio es formalmente definido en términos de los mensajes intercambiados entre los proveedores y los consumidores. La estructura interna y la implementación son ajenos a propósito. Usando SOA, un usuario no puede y no necesitaría saber
los detalles de la implementación de un servicio.
• Orientación a la descripción: un servicio es descrito por meta-datos procesables por máquinas. Sólo los detalles expuestos al público que son importantes para utilizar el servicio deben ser descritos. La semántica del servicio
...