tema 1_ introducción a las tecnologías de integración de aplicaciones-tema1

Upload: samuel-mestanza

Post on 18-Oct-2015

13 views

Category:

Documents


0 download

TRANSCRIPT

  • Tema 1: Introduccin a las tecnologas de integracin de aplicaciones

  • ndice

    Introduccin Integracin de Aplicaciones Modelo de referencia

    Integracin de Plataforma Historia: RPC, CORBA, JAVA RMI, DCOM, Servicios Web

    SOAP El enfoque REST

    Integracin de Aplicaciones / Procesos Gestin de flujos inter-aplicacin WS-BPEL (Web Services Business Process Execution

    Language)

    Integracin de datos

  • Introduccin (1)

    Integracin de aplicaciones Hacer colaborar entre s a aplicaciones distribuidas,

    heterogneas y posiblemente autnomas. Distribucin: las diferentes aplicaciones pueden ejecutarse

    en mquinas conectadas a travs de una red: LAN Internet

    Autonoma: El sistema de integracin no puede esperar que la aplicacin cambie su forma de actuar para facilitar la integracin Aplicaciones heredadas Aplicaciones de otros departamentos Aplicaciones de otras empresas (B2B)

  • Introduccin (2)

    Heterogeneidad Mquinas: mainframes, servidores (Sun, IBM, HP, etc.),

    estaciones de trabajo (Compatibles PC, Apple Macintosh, Sun, IBM, HP, etc.)

    Sistemas operativos: Solaris, HP-UX, AIX, Linux, MacOS, MS-Windows (9x, NT, 2000, XP), etc.

    Redes: TCP/IP, Novell Netware, lenguajes .NET (Visual C# .NET, Visual Basic .NET, Visual C++ .NET), etc.

    Aplicaciones en distintos lenguajes: Java, C++, Visual Basic, Visual C++, Delphi, COBOL, etc.

    Distintas arquitecturas de datos: ficheros, bases de datos de distintos modelos y fabricantes, sitios web,

    Distintos esquemas y formatos de datos. Ejemplo: App A: DIRECCION=C\ Alcala, 32, 28080 Madrid. App B: CALLE=Calle Alcal NUM=32, CP=28080,

    CIUDAD=Madrid.

  • Introduccin (y 3)

    Heterogeneidad: Razones Decisiones de ingeniera

    Diferentes personas eligen diferentes soluciones a un mismo problema

    Razones de coste Se compra el tipo de software/hardware que cumpla los

    requisitos y tenga un precio razonable

    Aplicaciones antiguas No es posible desecharlas y rehacerlas con las tecnologas ms

    modernas Es preciso seguir utilizndolas hasta amortizar su coste de

    desarrollo y obtener beneficio

  • Modelo de referencia (1)

    INTEGRACIN DE PLATAFORMA

    INTEGRACIN DE DATOS

    INTEGRACIN DE APLICACIONES Y PROCESOS

    INTEGRACIN B2B

  • Modelo de referencia (2)

    Integracin de Plataforma Comunicacin de aplicaciones en diferentes mquinas. Independencia de localizacin, hardware, SO y lenguaje de

    programacin.

    Integracin de Datos Independencia de arquitectura de almacenamiento. Independencia de heterogeneidades de esquema/formato.

    Integracin de Aplicaciones / Procesos Creacin rpida de aplicaciones basadas en aplicaciones

    existentes. Procesos de negocio modelados como flujos.

    Integracin B2B Qu debemos considerar cuando las aplicaciones que se

    comunican pertenecen a organizaciones diferentes? Seguridad, minimizar acoplamiento, estndares sectoriales,

  • Modelo de referencia (y 3)

    INTEGRACIN DE PLATAFORMA

    INTEGRACIN DE DATOS

    INTEGRACIN DE APLICACIONES Y PROCESOS

    INTEGRACIN B2B

    TEMA 3

    TEMA 5

    TEMA 4

  • Ejemplo (1)

    Una empresa de telecomunicaciones utiliza, entre otras, las siguientes aplicaciones: Aplicacin de Facturacin.

    Tiene informacin sobre las facturas y los pagos de proveedores y clientes.

    Construida enteramente en la organizacin en los 80 utilizando COBOL. Gestiona eficazmente miles de facturas cada mes, pero hay poco

    personal capaz de modificarla.

    Aplicacin de gestin de incidencias. Gestiona las incidencias detectadas por los clientes. Construida utilizando un paquete comercial que expone APIs C++.

    Aplicacin ERP. Entre otras cosas, permite gestionar los recursos de la operadora, los

    costes asociados a su uso, y los mrgenes de rentabilidad en sus actividades.

    Construida utilizando un paquete comercial que expone APIs JAVA.

  • Ejemplo (2)

    CRM Productos. Tiene informacin sobre los clientes de telefona, Internet y voz de la

    operadora. Construido internamente utilizando un paquete comercial que expone

    APIs C++.

    CRM Clientes Hosting / Housing. Tiene informacin sobre empresas clientes de Hosting / Housing. La operadora slo ha empezado a ofrecer estos servicios

    recientemente. Un nuevo departamento se ocupa de ello. Construida utilizando una aplicacin comercial online (e.g.

    Salesforce.com, Sugarcrm.com). La aplicacin no reside en el CPD de la empresa sino en los servidores del

    proveedor. El interfaz de uso para los usuarios humanos es web. La aplicacin ofrece una interfaz Servicio Web SOAP para leer y modificar

    los datos contenidos en la misma. La aplicacin tambin ofrece un API para extender y adaptar su

    comportamiento a las preferencias y necesidades de la empresa. Cuesta muy poco, est lista para ser usada en 10 minutos y no hay que

    depender del Departamento de Informtica para mantenerla !

  • Ejemplo (y 3)

    Aplicacin de Pedidos de Instaladores ACME: La operadora no dispone de personal propio para realizar las

    instalaciones ni las reparaciones que requieran un desplazamiento al hogar/oficina del cliente. En su lugar, subcontrata esta actividad a otras empresas.

    Instaladores ACME es una empresa especializada en este tipo de actuaciones que trabaja habitualmente con la operadora.

    Recientemente, se ha implantado un procedimiento por el cul la operadora puede enviar ordenes de actuacin a Instaladores ACME a travs de un servicio web.

    De esta forma, el proceso puede automatizarse.

  • Integracin de Plataforma (1)

    Historia: 70s: Comunicacin de procesos en red

    Sockets 80s: Tecnologas de invocacin de procedimientos remotos

    Sun RPC (Remote Procedure Call) DCE (Distributed Computing Environment)

    90s: Tecnologas de objetos distribuidos CORBA (Common Object Request Broker Architecture) JAVA RMI (Remote Method Invocation) Microsoft DCOM (Distributed Component Object Model).

    00s: Tecnologas de Servicios Web REST (REpresentional State Transfer) SOAP (Simple Object Access Protocol)

    NOTA: La influencia de cada tecnologa no se cie slo a la dcada mostrada en la transparencia. Ejemplo: CORBA, RMI, DCOM e incluso Sockets siguen en uso.

  • Ejemplo: Integracin de Plataforma

    Ejemplo: para determinar la prioridad de una incidencia de un cliente, quiero saber cunto se le factura al cliente.

    Incidencias(C++)

    Facturacin(COBOL)

    Aplicacin standalonecliente

    (Delphi / VBasic)

    Servidor aplicacionesweb (Java)

    Navegador

    HTTP

  • Integracin de Plataforma (2)

    Comunicacin de procesos en red Procesos en diferentes nodos de la red pueden intercambiar

    datos utilizando APIs de red (e.g. sockets TCP/IP). No importa topologa de la red, plataforma hardware, SO o

    lenguaje de programacin.

    Visin de muy bajo nivel. Utilizar desde un programa servicios proporcionados por programas que se ejecutan en otro nodo es un proceso costoso y poco amigable.

  • Integracin de Plataforma (3)

    Invocacin de procedimientos remotos Un proceso expone una serie de operaciones (procedimientos) que

    pueden ser invocados desde cualquier programa de la red. Las operaciones y sus parmetros se describen en un fichero de

    definicin utilizando un lenguaje especial. Para hacer un programa cliente que invoque a un procedimiento

    remoto, un compilador especial genera un programa llamado stub partiendo del fichero de definicin.

    Con el stub, el programador del cliente puede invocar el procedimiento remoto de forma muy parecida a la de un procedimiento local (transparencia).

    El stub es el que realmente recibe la llamada del cliente, enva un mensaje al servidor y recibe la respuesta del mismo.

    Visin orientada a programacin estructurada (paradigma dominante en los 80), no a programacin OO.

    Tecnologa dominante: SUN RPC.

  • Integracin de Plataforma (4)

    Tecnologas de objetos distribuidos Conceptualmente muy similar a RPC. Cada nodo de la red puede exponer una serie de objetos.

    Permiten la invocacin de mtodos de objetos remotos. Utiliza el paradigma de programacin OO (dominante en los

    90 y hasta la actualidad). JAVA RMI. No proporciona independencia del lenguaje de

    programacin (debe utilizarse JAVA). Por su facilidad de uso gan gran aceptacin en la comunidad

    JAVA. Sigue siendo un building block importante en la arquitectura JEE

    (Java Platform Enterprise Edition).

    DCOM. Solucin propietaria de Microsoft. Muy utilizado en la comunidad Microsoft. Difcil la interoperabilidad con el resto del mundo (JAVA).

  • Integracin de Plataforma (y 5)

    Tecnologas de objetos distribuidos CORBA

    Estandarizado por el OMG (http://www.omg.org). Consorcio constituido por un gran nmero de empresas (Iona, Borland, HP, IBM, Oracle, Sun, etc.)

    Las APIs estn estandarizadas -> El desarrollador no depende de un fabricante.

    Existen mltiples implementaciones de distintos fabricantes para las plataformas y lenguajes ms usuales (C++, Java, Ada, COBOL, C, Smalltalk, etc.).

    El OMG ha estandarizado numerosos servicios CORBA tiles para cualquier aplicacin: Servicio de nombres Seguridad Transacciones

  • mbito de aplicacin de CORBA

    CORBA ha sido y contina siendo una buena tecnologa para abordar integraciones complejas en intranets Eficiente y probado Buen soporte para seguridad, transacciones, comunicacin basada

    en eventos, etc.

    Uso en Internet IIOP: Protocolo para permitir que diferentes sistemas que utilicen

    CORBA se comuniquen a travs de TCP/IP. Existen firewalls que no reconocen IIOP

    Hay fabricantes que venden proxies de IIOP, pero no todas las empresas que han adoptado las tecnologas de Microsoft los tienen

    Existen tneles IIOP sobre HTTP, pero no son ptimos

    Microsoft no fabrica implementaciones de CORBA Hay terceros que s lo hacen (ej.: Iona, Borland, etc.), pero no se

    puede esperar que todas las empresas que han adoptado las tecnologas de Microsoft usen CORBA

  • Servicios Web (1)

    La Web proporciona un mecanismo de transporte universal, eficiente, robusto, escalable y probado tanto en aplicaciones inter-organizacin como intra-organizacin.

    Muchas de las tecnologas comentadas hasta el momento fueron diseadas antes de la emergencia de la Web o no fueron especficamente diseadas para aprovecharse de ella.

  • Servicios Web (2)

    Un Servicio Web expone un conjunto de puntos de acceso (endpoints) que pueden ser invocados por procesos externos.

    Un endpoint puede ser visto normalmente como una operacin que recibe ciertos parmetros y devuelve un resultado, quizs efectuando alguna accin por el camino.

    Estn basados en tecnologas surgidas alrededor de la Web: Tpicamente, los puntos de acceso son accedidos mediante

    HTTP y sus direcciones se expresan mediante URLs. Las invocaciones y las respuestas de las mismas se codifican

    tpicamente mediante XML.

  • Servicios Web (3)

    Suele distinguirse entre dos estilos de servicios web: Servicios web SOAP.

    Aaden un nuevo conjunto de protocolos (SOAP) y lenguajes para permitir RPCs y envo de mensajes entre aplicaciones a travs de la web.

    Estandarizados por el W3C. Suelen utilizar HTTP como mecanismo de transporte, pero no

    obligatoriamente.

    Servicios web REST. No aaden nuevos protocolos ni lenguajes: utilizan solamente

    HTTP 1.1 y formatos como XML para especificar mensajes. Pueden utilizarse para implementar RPCs, pero tambin dan

    soporte a un nuevo estilo arquitectnico para disear aplicaciones distribuidas (Servicios Web REST puros o RESTful Web Services.

  • XML

    Lenguaje de tags (similar en sintaxis a HTML) Permite expresar informacin estructurada y fcilmente

    parseable por una aplicacin Estandarizado por el W3C ( http://www.w3.org) Es extensible:

    XML no impone un conjunto de tags, sino slo unas pocas normas de uso (los tags se abren y se cierran y en medio puede tener otros tags anidados, todos los documentos tienen un tag raz, los tags pueden tener atributos, etc.)

    Sus campos de aplicacin son innumerables Integracin de aplicaciones heterogneas, configuracin de

    aplicaciones, generacin de la capa vista de una aplicacin web/WAP, bases de datos, etc.

  • XML: Ejemplo (1)

    La operadora podra enviar el siguiente texto sobre HTTP (o HTTPS) a Instaladores Acme

    Elegimos HTTP (o HTTPS) porque todos los firewalls lo soportan

    Llamar antes. Mejor por la tarde

  • XML: Ejemplo (y 2)

    Cuando Instaladores Acme acepta realizar la orden de intervencin puede contestar con algo del estilo:

    NOTA: Este es un ejemplo de servicio web REST. En Servicios SOAP XML t bi tili t

  • Servicios Web SOAP (1)

    WSDL (Web Services Description Language) Permite especificar en XML las operaciones, parmetros y

    tipos de datos de un servicio web. La idea es similar al fichero de definicin de RPC.

    SOAP (originalmente Simple Object Access Protocol) Protocolo basado en XML para envo de mensajes

    estructurados (objetos) Normalmente funciona sobre HTTP (tambin SMTP, JMS,). Cuando un cliente invoca una operacin de un servicio,

    enva un mensaje SOAP indicando la operacin a invocar y los valores de los parmetros.

    El servicio devuelve un mensaje SOAP con la respuesta.

  • Servicios Web SOAP (2) Los interfaces ofrecidos por un servicio se expresan

    en WSDL (Web Service Definition Language) Existen compiladores para generar WSDL partiendo

    de interfaces en lenguajes populares (e.g. JAVA)

  • Servicios Web SOAP (3)

    UDDI (Universal Description, Discovery andIntegration of Web Services) Protocolo para interaccionar con un servidor (registro UDDI)

    que proporciona operaciones (va SOAP) para registrar y buscar servicios web

    Cada servicio web se registra dando, su nombre, una descripcin del servicio (ej.: la URL de su WSDL, una descripcin textual, etc.), etc.

    Especificacin: http://www.uddi.org

  • Servicios web SOAP (y 4)

    Instalador-1

    Instalador-N

    Instalador-2

    ...

    SOAP

    SOAP

    SOAP

    Internet

    Registro UDDI

    Operadora

    SOAP

    SOAP

  • APIs para Servicios web SOAP

    Existen APIs (comerciales y gratuitas) para los lenguajes ms usuales.

    Generan WSDL desde el lenguaje deseado. Partiendo del WSDL, generan Stubs y Skeletons. En general, las APIs no son estndares, sin embargo,

    no afecta a la interoperabilidad La interoperabilidad es posible porque los protocolos (SOAP,

    WSDL, UDDI) estn estandarizados En el caso de Java

    Las APIs son estndares Forman parte de JEE Al igual que en CORBA, podemos cambiar de fabricante sin

    que afecte al cdigo fuente En el caso de los lenguajes de Microsoft

    Las APIs forman parte de .NET

  • REST (1) REpresentational State Transfer. Estilo arquitectnico propuesto

    por Roy Fielding en 2000. RPC, CORBA, RMI, DCOM,, incluso SOAP: el mismo perro con

    distinto collar? Mucha gente piensa que la arquitectura de las aplicaciones

    distribuidas no ha cambiado significativamente en 25 aos. La Web es, sin duda, la aplicacin distribuida ms exitosa de la

    historia, y no sigue esa arquitectura. REST: Estilo arquitectnico para construir aplicaciones

    distribuidas inspirado en las caractersticas de la web. Los defensores de REST (RESTafaris) creen que REST es la clave

    para construir aplicaciones distribuidas tan escalables, accesibles, robustas y eficientes como la web.

    Sin embargo, frecuentemente REST se utiliza como sinnimo de servicios web que, en lugar de las tecnologas SOAP, utilizan directamente HTTP y XML (aunque sea al viejo estilo).

    Ejemplo: Invocacin a Instaladores Acme.

  • REST (y 2)

    En el enfoque REST el protocolo de transporte es siempre HTTP SOAP puede utilizar diferentes mecanismos de transporte: HTTP,

    SMTP, JMS pero casi siempre se usa HTTP.

    REST nos obliga a parsear el mensaje XML devuelto. En el enfoque SOAP y el resto de enfoques derivados de RPC,

    manejamos directamente los objetos de nuestro lenguaje de programacin (Java, C++).

    Tener un protocolo por encima de HTTP (SOAP) nos permite tener un lugar donde incluir informacin para manejar aspectos como seguridad, transacciones, Sin embargo, hoy en da, estas funcionalidades an no estn

    disponibles en SOAP.

    Muchas veces se utiliza REST no tanto por sus ventajas arquitectnicas (que, en ocasiones, se ignoran) sino porque:

    Es ms fcil invocar un servicio REST que un servicio SOAP. Hay problemas de interoperabilidad en las implementaciones de SOAP.

    Las tecnologas HTTP / XML son inter-operables universalmente.

  • mbito de aplicacin de servicios web (1)

    Integracin de aplicaciones en intranets Cuando se utilizan, se suele seguir el enfoque SOAP. No son una alternativa tan eficiente y madura como CORBA

    CORBA dispone de numerosos servicios (seguridad, transacciones, etc.)

    Sin embargo Gozan de industry momentum y en consecuencia muchas

    empresas se decantan por su uso Es una tecnologa soportada por todos los fabricantes.

  • mbito de aplicacin (y 2)

    Integracin de aplicaciones en Internet (B2B y Mashups) A pesar de sus inconvenientes frente a CORBA, el enfoque

    de Servicios Web SOAP es ya el ms utilizado en integraciones B2B. CORBA, RMI y DCOM tienen an su espacio.

    Sobre todo fuera del mundo corporativo (Mashups), REST es muy utilizado, aunque SOAP tiene su espacio: Como ya se ha dicho, un servicio REST es ms fcil de invocar

    que SOAP y, actualmente, tiene menos problemas de interoperabilidad -> Mayor accesibilidad.

    Sites como Google, Amazon, ofrecen tambin API REST. En la actualidad, el factor decisivo para su uso no suelen ser

    las novedades en cuanto a patrones arquitectnicos.

  • Flujos inter-aplicacin (1)

    Los procesos de negocio se componen de mltiples interacciones entre aplicaciones. Ejemplo: tratar incidencia1. Se obtienen los datos de la incidencia de la aplicacin de

    incidencias.2. Se consulta a la aplicacin de Facturacin para ver si el cliente

    est al da de los pagos.3. Si lo est:

    1. Se enva los datos de la incidencia a la aplicacin CRM.2. Se invoca a la aplicacin ERP para obtener un recurso que examinar

    la incidencia (invocacin asncrona). 3. Cuando la incidencia ha sido evaluada, si se precisa una intervencin

    remota, se enva un mensaje a la aplicacin B2B del instalador escogido.

    4.

    4. Si no lo est1. La incidencia es rechazada.2.

  • Flujos inter-aplicacin (y 2)

    Sistemas EAI (Enterprise Application Integration): Lgica de control inter-aplicacin declarativa Soporte para envo/recepcin de mensajes sncronos y

    asncronos Transacciones multi-aplicacin Soporte para la creacin sencilla de adaptadores para las

    aplicaciones existentes Hasta ahora, soluciones poco basadas en estndares En intranets son una realidad plenamente establecida

    Evolucin: Los sistemas EAI estn evolucionando para dar mayor

    soporte a comunicaciones B2B Los servicios web jugarn un papel crucial mediante los

    estndares emergentes para la orquestacin y la coreografa de servicios web: WS-BPEL, BPML, etc.

  • Integracin de datos distribuidos

    Combinar automticamente los datos procedentes de diversas fuentes es difcil: Heterogeneidad, Autonoma, Distribucin,

    Actualidad: Data Warehouse: son una realidad para aplicaciones batch

    de generacin de informes y anlisis de tendencias con datos intra-organizacin. No soportan: Acceso a datos en tiempo real Integracin de datos en aplicaciones B2B

    Enfoques emergentes: EII (Enterprise Information Integration). Pretende

    proporcionar acceso unificado en tiempo real a mltiples fuentes de informacin tanto intra-organizacin como inter-organizacin

  • Integracin de datos distribuidos: Ejemplo

    Vista unificada de cliente: Tabla (puede ser virtual) que contenga los datos de los clientes junto con su nmero de incidencias abiertas y su nivel de facturacin Requiere obtener datos de clientes de ambas aplicaciones

    CRM. Deben cruzarse con los datos de los clientes con la

    aplicacin de incidencias y con los de la aplicacin de facturacin.

  • SOA

    SOA (Service Oriented Architecture) Modelar arquitecturas de sistemas como un conjunto de

    servicios poco acoplados (se minimizan las dependencias entre ellos).

    Los servicios definen formalmente sus operaciones mediante un contrato independiente del lenguaje de programacin. De esta forma, los servicios pueden interoperar.

    Para construir aplicaciones que combinen varios servicios se apuesta por flujos inter-aplicacin y/o tecnologas de integracin de datos.

    El punto de vista SOA sobre la reusabilidad es de granularidad gruesa: reusar servicios, no objetos.

    Se hace nfasis en la fcil publicacin y localizacin de componentes reusables.

    Aunque en teora es independiente de la tecnologa, se basa fuertemente en las tecnologas de Servicios Web.