Acoplamiento e interoperabilidad



Documentos relacionados
Service Oriented Architecture: Con Biztalk?

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Arquitectura de sistema de alta disponibilidad

Capítulo 5. Cliente-Servidor.

Introducción a SOA (II) Huibert Aalbers Senior Certified Software IT Architect

Mª Luisa Gutiérrez Acebrón División de Informática y Tecnologías de la Información Ministerio de Justicia

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

ARQUITECTURA ORIENTADA A SERVICIOS (SOA) EN LA JUNTA DE ANDALUCÍA

ARQUITECTURAS DE PROCESOS DE NEGOCIOS INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Service Oriented Architecture

ESB. Norberto Fernández Departamento de Ingeniería Telemática Tecnologías de Distribución de Contenidos - UC3M 1

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

SISTEMAS DE INFORMACIÓN III TEORÍA

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

Infraestructura Tecnológica. Sesión 5: Arquitectura cliente-servidor

1 EL SISTEMA R/3 DE SAP AG

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

SISTEMAS DE INFORMACIÓN II TEORÍA

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Una puerta abierta al futuro

RAID 0 : No redundante

4. Programación Paralela

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

Comunicación Indirecta

Título: Optimización de Procesos de Negocio con SOA / BPM Nombre y Apellido: Mario Bolo bolo@ar.ibm.com Fecha: 15/08/2012

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

Tema 6: Comparativa CORBA/Servicios Web

5.1 Introducción a Servicios Web

Asignación de Procesadores

Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking

SAQQARA. Correlación avanzada y seguridad colaborativa_

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

Diseño orientado a los objetos

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

RESUMEN CUADRO DE MANDO

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta

Arquitectura de red distribuida: escalabilidad y equilibrio de cargas en un entorno de seguridad

Ingeniería de Software en SOA

Gestión de Configuración del Software

TOPOLOGÍA. Bus lineal. Topología anillo. Topología doble anillo. Topología estrella. Jerarquía. Malla. Hibridas.

ITIL FOUNDATION V3 2011

QUE ES COMLINE MENSAJES? QUE TIPO DE MENSAJES PROCESA COMLINE MENSAJES?

Enterprise Resource Planning (ERP) SISTEMA DE PLANEACIÓN DE RECURSOS MASTER: ALFREDO CASTRO JIMENEZ

UNIVERSIDAD TECNOLOGICA ECOTEC DIEGO BARRAGAN MATERIA: Sistemas Operativos 1 ENSAYO: Servidores BLADE

ArquitecturaTécnica de TRAVEL OPEN APPS. Breve definición técnica de la plataforma Travel Open Apps

Técnicas de Desarrollo de Programas Ingeniería Informática Curso 2008 / Ejercicios de Patrones de Diseño:

ARC 101 Architecture Overview Diagram

Introducción a FOUNDATION fieldbus

ERPUP (Pequeñas y Medianas Empresas)

Soluciones para Lotería Móvil.

Gestión de la Configuración

TOPICOS IV: ING. YIM APESTEGUI FLORENTINO

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

Estructura de Computadores I Arquitectura de los MMOFPS

Utilidades de la base de datos

servicios públicos establecer un plan director de almacenamiento

Introducción a las arquitecturas SOA e integración con ESB. Víctor Suárez García

1. Introducción 2. Historia 3. Características clave 4. Cuestiones de diseño

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

GESTIÓN DE COMPETENCIAS CLAVE EN LAS ORGANIZACIONES DEL TERCER SECTOR

La Unidad Inmobiliaria del BBVA (ANIDA) gestiona más de 7 millones de registros en menos de un año

CAPÍTULO 3 Servidor de Modelo de Usuario

LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS

E-Government con Web Services

- MANUAL TÉCNICO - Implantación de software de Marketing Online

M.T.I. Arturo López Saldiña

MACROPROCESO GESTIÓN TECNOLÓGICA

IAP ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

OLIMPO Servidor Universal

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

WebSphere Message Broker como Entreprise Service Bus

Elementos requeridos para crearlos (ejemplo: el compilador)

e-commerce vs. e-business

CAPITULO 8. Planeamiento, Arquitectura e Implementación

Sistemas de archivos distribuidos. Alvaro Ospina Sanjuan

App para realizar consultas al Sistema de Información Estadística de Castilla y León

JAVA EE 5. Arquitectura, conceptos y ejemplos.

BackflipSD Modelo de Diseño

Infraestructura Tecnológica. Sesión 1: Infraestructura de servidores

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Documentación Técnica Conector

Práctica 5. Curso

IDG/Oracle Documento de investigación sobre la arquitectura Service Oriented Architecture (SOA).

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

Una estructura conceptual para medir la efectividad de la administración

Motores de Búsqueda Web Tarea Tema 2

Boletín de Asesoría Gerencial SOA: enfoque técnico orientado a procesos

Manual de Referencia. Apertura

PIDE. Presentación. Proyecto Plataforma de Interoperabilidad del Estado. Preparado por: Equipo de Proyecto PIDE

IAP CONSIDERACIONES PARTICULARES SOBRE LA AUDITORÍA DE LAS EMPRESAS DE REDUCIDA DIMENSIÓN

Transcripción:

Máster Universitario en Ingeniería Informá3ca Acoplamiento e interoperabilidad Sistemas de Información Orientados a Servicios RODRIGO SANTAMARÍA

2 Acoplamiento débil Tipos de acoplamiento Cabalgando el acoplamiento Acoplamiento e Interoperabilidad: ESB interoperabilidad Conectividad Mapeado

Acoplamiento 3 ACOPLAMIENTO DÉBIL COMUNICACIÓN ASÍNCRONA TIPOS HETEROGÉNEOS TIPADO DÉBIL PATRONES DE INTERACCIÓN MEDIADORES COMPENSACIÓN OTROS MÉTODOS DE DESACOPLAMIENTO CABALGANDO EL DESACOPLAMIENTO

Acoplamiento débil 4 Objetivo: mejorar los siguientes aspectos Escalabilidad Flexibilidad Tolerancia a fallos Medio: minimizar dependencias Menos dependencias un fallo o modificación en un sistema afectará menos a otros sistemas El acoplamiento débil es un principio Uno debe decidir el grado y la forma en que se implementará

Tolerancia a fallos 5 El desarrollo software está expuesto a muchos fallos No es posible entregar programas perfectamente diseñados y robustos, sobre todo con las demandas del mercado No obstante, los fallos son costosos En un sistema de reserva de billetes de avión: 100.000 $/h En un sistema de tarjetas de créditos: 300.000$/h En un sistema de intercambio de acciones: 8.000.000$/h Necesidad de minimizar sus efectos y consecuencias

Acoplamiento fuerte y débil en SOA 6 En SOA, la mayoría de los aspectos tendrán un acoplamiento débil Aunque no hay una métrica, se espera que sea así [Josuttis07]

Comunicación asíncrona 7 El envío de mensajes no implica espera por la respuesta No sabemos cuándo (o si) habrá respuesta Hay que tratar con ella cuando llegue Hay que asociarla al mensaje de envío original Hay que procesar la respuesta teniendo en cuenta el estado y contexto asociado al envío original Ventaja: mejora del rendimiento Los sistemas que intercambian el servicio no tienen que estar online al mismo tiempo Desventaja: lógica más compleja en el consumidor Sobre todo si hace falta una respuesta y el envío de mensajes es alto

Tipos de datos heterogéneos 8 En un sistema distribuido de gran escala es muy difícil armonizar los tipos de datos Propietarios diferentes difícil llegar a acuerdos El sistema puede hacerse muy complicado El sistema nunca se completa parálisis por análisis Si se consigue, es muy costoso mantener los sistemas armonizados Acoplamiento fuerte entre sistemas: un cambio en un atributo de un tipo de datos en un sistema debe reflejarse en todos

9 [Josuttis07]

Tipos de datos heterogéneos 10 Un dato tiene distintos tipos en distintos sistemas Se necesita un mapeado que traduzca tipos Añade complejidad Mantiene desacoplados los sistemas

Tipado débil 11 A priori, el tipado fuerte es mejor porque detecta errores en tiempo de compilación en vez de en tiempo de ejecución Pero si un sistema crece, debemos tener en cuenta que el tipado fuerte conlleva tiempo y requiere información P. ej. si nuestros datos están en XML, la infraestructura de comunicación (ESB) debe sincronizar los cambios en los datos con los sistemas que los generan/aceptan. Si Internet tuviera que hacer esto, jamás habría podido escalar De nuevo, qué grado de tipado tenemos depende del problema y de los requisitos

Patrones de interacción 12 Tipos de datos que se consideran fundamentales y de qué manera se combinan: Definir datos fundamentales (cadenas normalmente) Pero se pueden añadir otros: enteros, reales, booleanos, etc. Limitar valores posibles (p. ej. cierto formato de cadena) Definir la posibilidad de tipos superiores (estructuras, objetos) Definir la posibilidad de tipos secuenciales (arrays, listas, etc.) Definir las relaciones entre tipos (herencia, polimorfismo, etc.) A mayor riqueza de datos Programación a más alto nivel Más problemas con el mapeado

Mediadores 13 Conexión punto a punto El remitente manda una petición a un sistema usando su dirección física Similar a mandar una carta a una dirección postal Qué pasa si el receptor cambia de casa? Qué pasa si el receptor no está en casa, o si la carta se pierde entre todo el correo comercial? Necesidad de un intermediario

Mediadores (tipos) 14 Broker, servidor de nombres La petición se hace mediante un nombre simbólico y el mediador obtiene la dirección física correcta antes del envío Técnicamente, los servicios web son conexiones punto a punto con un broker para resolver direcciones Middleware, ESB La petición se hace mediante un nombre simbólico y el mediador direcciona la petición mediante reglas de enrutado después del envío

Compensación 15 Típicamente, la consistencia en replicación se solventa con un Commit de Dos Fases (2PC) Algoritmo de acuerdo distribuido para cometer una transacción de manera atómica Fases 1. Voto: un proceso coordinador prepara a todos los procesos participantes para cometer o abortar la transacción y votar 2. Cometer: el coordinador decide cometer (si todos los votos son sí) o abortar, y notifica el resultado a los participantes Los participantes llevarán a cabo las operaciones necesarias

Compensación 16 Mecanismo de acuerdo de filosofía inversa a 2PC La transacción se comete en todos los backends Si uno falla, se busca un modo de compensar la inconsistencia Deshacer la transacción en los backends que cometieron con éxito Mandar un error para que un operador lo resuelva manualmente Análisis Ventaja: la transacción no es síncrona menor acoplamiento Desventaja: se requiere una invocación explícita de servicios que reviertan la transacción o resuelvan manualmente el error

Otros métodos de desacoplamiento 17 Control de la lógica de proceso Descentralización para desacoplar y evitar cuellos de botella Desarrollo Permitir actualizaciones de los sistemas en distintos momentos Dependencias de plataforma El uso de soluciones independientes de plataforma contribuye al desacoplamiento

Cabalgando el desacoplamiento 18 Dentro de cada contexto y problema, debemos ser capaces de decidir los aspectos y el grado de desacoplamiento que requerimos en el sistema

19

Ejercicio - contexto 20 Sea un banco (importante, que opera a nivel nacional) que tiene dos departamentos, uno para gestionar cajeros, con servicios web relacionados con los clientes y sus cuentas, y otro para inversiones, con servicios web relacionados con los clientes y sus inversiones. Ambos departamentos comparten una base de datos de clientes que se mantiene de manera común, pero la información de sus cuentas e inversiones está separada. Qué grado de desacoplamiento usarías? Por qué? Comunicación síncrona/asíncrona con la base de datos de clientes y con las bases de datos con información de cuentas e inversiones Tipos de datos. Necesitamos algún tipo de mapeado? Patrones de interacción. Cadenas, o añadiríamos otros datos fundamentales? Limitarías valores en algún caso? Habría necesidad de tipos superiores? Mediadores. Podemos usar comunicaciones punto a punto o queremos algún tipo de mediador? Replicación. Hace falta algún tipo de mecanismo para asegurar la consistencia? Mediante un commit de dos fases o por compensación?

Interoperabilidad 21 ENTERPRISE SERVICE BUS MAPEADO CONECTIVIDAD OTROS VALORES

Enterprise Service Bus (ESB) 22 Infraestructura de SOA que se encarga de la llamada a los servicios que suministran los proveedores Responsabilidades: Conectividad Transformación de datos Direccionamiento (inteligente) Seguridad y Fiabilidad Monitorización y Registro de datos La principal tarea es proveer interoperabilidad

Heterogeneidad en ESB Variabilidad en middleware, protocolos o s. web 23 Conceptualmente, todo es un único ESB. Cualquier sistema puede conectarse con otro. El hecho de tratar con distintos protocolos es sólo una cuestión técnica

Conectividad 24 Punto a punto El consumidor debe conocer la dirección exacta (endpoint) del proveedor Puede fallar si el proveedor no está disponible Mediación ESB resuelve el endpoint a partir de una etiqueta Permite lidiar con modificaciones dinámicas: balanceo de carga, desconexiones, etc

Interceptores 25 Similar al mediador, pero el proveedor no suministra etiquetas Reemplaza la dirección física a la que envía el consumidor por otra según criterios de equilibrio de carga, caídas, etc.

Conexión y servicios web Un servicio web es inherentemente punto a punto Intercambiar servicios implica conocer el punto final del servicio No tiene en cuenta el equilibrio de carga o las caídas 26 Tarde o temprano es necesario incorporar a un ESB basado en servicios web un interceptor o mediador

Mapeado: protocolos y APIs 27 Un ESB puede basarse en protocolos o en APIs Protocolos Los participantes se envían mensajes según un protocolo definido por el ESB y al que los participantes deben mapear API P. ej. SOAP ESB provee una API específica para cada plataforma, que utilizan los participantes para implementar y llamar servicios ESB se encargará del mapeo al protocolo de comunicación P. ej. interfaces Java

Mapeado y desarrollo 28 Basarse en protocolos da más responsabilidad a los desarrolladores y consumidores de servicios Desacopla la infraestructura del desarrollo de servicios Cada desarrollador va a tener que solucionar el mismo problema Suele derivar en una tercera capa de comunicación entre el servicio y el protocolo Ejemplo: Internet Capa de protocolo: HTTP(S) Capa de servicio: Página web/acceso programático Capa de comunicación: Navegadores/APIs

Capas de negocio a protocolo 29 Conexión a un ESB basado en protocolo (mapeo en participante) Conexión a un ESB basado en API (mapeo en ESB) Resultado final frecuente: el participante se adhiere a una API pero internamente también hay un mapeo al protocolo estable

Otros valores añadidos de ESB 30 Mapeado de datos Según las responsabilidades de ESB, puede encargarse del mapeado de tipos o no, o mantener una capa fina de mapeado para direccionamiento Direccionamiento inteligente Diferentes prioridades según proveedor/consumidor Diferente tratamiento según contenido Seguridad y fiabilidad en temas posteriores Monitorización y registro en temas posteriores

Ejercicio 31 Tenemos la siguiente situación (ejemplo real 2006) Una compañía usaba como ESB la tecnología propietaria de un proveedor EAI (Enterprise Application Integration) Lo llamaremos ESB propietario nacional A él se conectan aplicaciones en C, C++ y Java Luego se fusionó con otra compañía de otro país, que usaba la misma tecnología middleware pero que no garantizaba la interoperabilidad Lo llamaremos ESB propietario internacional Se conectan tres aplicaciones de internacionalización (i18n)

Ejercicio 32 El sistema continuó creciendo Los servicios web se convierten en un estándar de facto, y se necesita ampliar la interoperabilidad a estos servicios Por razones de seguridad, queremos dos buses de SW: Uso interno con tres aplicaciones locales Uso B2B (business to business), con dos aplicaciones externas Qué aspecto crees que tiene el ESB de esta empresa tras sufrir todos estos cambios a lo largo del tiempo?

Resumen 33 El acoplamiento débil es un concepto fundamental de SOA que busca reducir dependencias entre sistemas ESB es la infraestructura de SOA, proveyendo de interoperabilidad (conectividad, mapeo y direccionamiento) Hay varias formas de acoplamiento débil: uno debe encontrar la combinación apropiada para cada proyecto y contexto Un ESB suele ser heterogéneo Decidir si nuestro ESB está basado en API o en protocolo es fundamental Toda forma de acoplamiento débil tiene desventajas además de ventajas, así que nunca debe ser un fin en sí mismo La necesidad de mapear datos es, normalmente, una cualidad positiva en sistemas grandes Si ESB define un protocolo, es responsabilidad de los participantes adaptarse a él. Desacoplamiento ESB/ participante pero cualquier cambio en el protocolo afecta a todos los participantes Si ESB provee una API para los participantes, hace transparentes los detalles del protocolo, pero requiere que el ESB genere ese código para los clientes

Referencias 34 [Josuttis07] Nicolai M. Josuttis. SOA in practice. The Art of Distributed System Design. O Reilly, 2007. Ch 4/5.

35