Post on 23-Jan-2016
Arquitectura Orientada a ServiciosAlicia Maita
Harold MartínezEsteban Reyes
Verónica Betancout- SOA -
Introducción¿ Qué se quiere?
• Forma estándar de representar un componente de TI.
• Construir sistemas a partir de componentes comunes.
¿Qué se necesita?
Antecedentes
• 1980 Corba: Arquitectura común de intermediarios en peticiones a objetos.
• En los 90 DCOM: Modelo de Objetos de Componentes Distribuidos.
• Últimos 5 años SOA: Arquitectura orientada a servicios.
Definiciones previas a SOA
• Servicio
Comportamiento definido y acordado que puede ser implementado y provisto por un componente para ser usado por otro.
• Partes de un Servicio
Definiciones previas a SOA
• Descripción de un Servicio
Consiste en los parámetros técnicos, restricciones y políticas que definen los términos para invocar el servicio.
• Anuncio y descubrimiento del servicio
Un servicio debe comunicar su descripción de manera accesible a posibles consumidores.
Definiciones previas a SOA
• Descubrimiento de un Servicio
Se obtienen los detalles de la especificación del servicio.
• Implementaciones del descubrimiento de un servicio
- Registry/repository: Es un componente donde los usuarios pueden almacenar y manejar los artefactos que requieren.- Directorio de servicios: Es una interfaz que provee información para relacionar artefactos.
Metodología de Anuncio/Descubrimiento de un Servicio
• Metodología de “Pull”
Proveedor de Servicios
Una implementación de la metodología “pull”
Bluetooth incluye su propio protocolo de descubrimiento que localiza servicios ofrecidos por los dispositivos en las proximidades de un usuario del dispositivo Bluetooth.
Metodología de Anuncio/Descubrimiento de un Servicio
• Metodología de “Push”
Proveedor de Servicios
El proveedor del servicio envía un mensaje a un cliente en particular.
Única Fuente
Único destinatario
• Unicast (punto a punto)
Implementaciones de la Metodología de “Push”
Implementaciones de la Metodología de “Push”
• Multicast: El proveedor de servicio envía un mensaje a un grupo de posibles clientes.
Implementaciones de la Metodología de “Push”
• Broadcast: El proveedor realiza una transmisión de la descripción de un servicio a todos los posibles consumidores.
¿Qué es SOA?
• Colección de servicios se que se comunican entre ellos.
Arquitectura Orientada a Servicios
Es un modelo de componente que interrelaciona unidades funcionales
diferentes de una aplicación, denominado servicios, a través de interfaces y
contratos bien definidos entre estos servicios.
Requerimientos Tecnológico para crear SOA
• Servicios: Para crear SOA necesito los servicios de negocios.
¿Cuáles serían los servicios?-Procesar una orden.-Confirmar entrega de paquete.
Requerimientos Tecnológico para crear SOA
• Registros: Es un catálogo que posee todos los servicios presente en la compañía.
¿Registros?-Procesar una orden.-Confirmar entrega de paquete.
PERMITE LA REUTILIZACIÓN
Requerimientos Tecnológico para crear SOA
• Mensajería y Comunicación: -“Bus de Servicio”: Permite a los componentes
comunicarse unos con otros de forma segura y confiable a través de una infraestructura.
-El término “bus de servicio” es una metáfora para representar el puente que debe existir entre dos componentes.
Requerimientos Tecnológico para crear SOA
• Administración: Contar sólo con servicios no es suficiente para una
arquitectura SOA, es necesario tener una administración basada en: monitoreo, control de versiones y seguridad. Esto con el fin de garantizar robustez y confianza para llevar adelante misiones críticas del sistema.
Requerimientos Tecnológico para crear SOA
• Orquestación: Caminos para la construcción de servicios:
- Orquestar los nuevos servicios conectando los
existentes
- Crear aplicaciones compuestas donde se ensamblen
los servicios necesarios además del código adicional
Requerimientos Tecnológico para crear SOA
• Control:También llamado monitoreo o procesamiento complejo de eventos. Es la capacidad de las empresas de medir eventos en tiempo real dentro del sistema en un momento dado
Requerimientos Tecnológico para crear SOA
• Interfaz de usuario eficiente:Según las exigencias de la empresa, ésta puede estar en capacidad de exponer sus servicios y procesos como una aplicación compuesta a través de un portal personalizado
Beneficios de implementar SOA
• Reusabilidad de código, aplicaciones y servicios
Se cuenta con una colección de “partes” existentes que se pueden utilizar para ensamblar nuevos sistemas
Beneficios de implementar SOA
• Reducción en los costos de integración Reduce el número de destrezas y conocimientos requeridos por los desarrolladores del sistema, en consecuencia el costo y tiempo para su entrenamiento también se decrementa.
SOA otorga a las empresas la capacidad de crear componentes estándar a partir de sus sistemas existentes bajo la figura de servicios, que son uniformemente accesibles a través de un protocolo estándar llamado SOAP.
Beneficios de implementar SOA
• Mejor calidad y mayor rapidez de respuesta a la hora de crear aplicaciones
- Brinda a los desarrolladores mayor conocimiento acerca de los
componentes que pueden usar en el ensamblaje y creación de un
sistema
- Los errores sólo se reparan una sola vez (si el componente es
usado gran cantidad de veces)
- Los desarrolladores centran sus esfuerzos en la reusabilidad
Capas de
servicioExponer en un ESB (Enterprise Service
Bus) la funcionalidad y facilidades provistas
por los sistemas corporativos
Capa de servicios de acceso a los datos y información
• Ofrece servicios básicos no son precisamente servicios del negocio
• Se usan para construir los servicios
• Permite la reutilización de los mismos
Capas de
servicioAgregan valor y enriquecen a las
funcionalidades de la capa anterior desde el
punto de vista del negocio
Capa de servicios de negocio compartidos
• Son los servicios, como tal, del negocio
• Deben exponerse al bus de servicios para que sean compartidos
Capas de
servicio
Lógica de presentación del servicio. Ej: Portlets
Capas de
servicio
Servicios para dar soporte a la arquitectura.
Seguridad, soporte. Fundamental cuando la arquitectura escala.
Framework El proveerdor ofrece un
contrato y una descripción de un servicio con un modelo de
datos asociado
Framework
La descripción del servicio se
publica y el consumidor descubre el
servicio
Implementando SOA
• ¿Qué se necesita para implementar SOA?– Un proveedor de bus de servicios que tenga
mesanjería punto a punto– Un servicio de mesanjería compatible– Registro, seguridad, transacciones– Desarrollo de herramientas
Implementando SOA
Bus de servicio de la empresa (Enterprise Service Bus – ESB)
• Provee un soporte para servicios basados en contratos usando directa e indirectamente paradigmas de comunicación usando mensajes de punto a punto o mensajería asíncrona.
Bus de servicio de la empresa (Enterprise Service Bus – ESB)
• Funcionalidades de ESB– Modelado de datos usando un esquema XML– Una interfaz modelada con WSDL– Desarrollo de herramientas cliente – servidor– Comunicación síncrona de punto a punto usando SOAP o HTML.– Mensajería asíncrona usando SOAP para carga útil sobre
protocolos de– Mensajes que soportan mensajes persistentes.– Transformación de mensajes de carga útil usando XSLT.
Servicio de conectividad en e-commerce: Ejemplo del uso de SOA en la empresa• Supongamos:
– Empresa que vende mercancía para regalos de alta calidad.
– La compañía posee su propio canal de ventas.– Quiere aprovechar alianzas con compañías de
terceros.– Le paga comisión a terceros por vender sus
productos.
Servicio de conectividad en e-commerce: Ejemplo del uso de SOA en la empresa• El reto es:
– Conectar el catálogo, manejo de inventario, y manejo de pedidos en el front-end del site del partner.
– Tecnologías diferentes en cada empresa– Uso de comunicación por archivos de textos
Servicio de conectividad en e-commerce: Ejemplo del uso de SOA en la empresa• Solución: Dar un servicio que:
– Java, COM, .Net usan SOAP sobre HTTP– Provea de interfaces SOAP a cada compañía– Usar WebSphere para integrar los servicios– Transformar de WebSphere a SOAP y
viceversa para la comunicación
Servicio de conectividad en e-commerce: Ejemplo del uso de SOA en la empresa• Consecuencias:
– Reuso de las interfaces a la hora de agregar nuevas empresas.
– Transparencia ante la complejidad debajo de las interfaces
– Rapidez en los pedidos porque se ahorra el tiempo de comunicación entre las compañías
¡Gracias!