• No se han encontrado resultados

Tema 1: Introducción a las tecnologías de integración de aplicaciones

N/A
N/A
Protected

Academic year: 2021

Share "Tema 1: Introducción a las tecnologías de integración de aplicaciones"

Copied!
27
0
0

Texto completo

(1)

Tema 1: Introducción a las tecnologías

de integración de aplicaciones

(2)

Índice

„

Introducción

„

CORBA

„

XML

„

Servicios web

„

Gestión de flujos inter-aplicación

„

Integración de datos

(3)

Ejemplo: Heterogeneidad dentro de la intranet de una corporación (1)

„

Heterogeneidad

„ Máquinas: 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, etc.

„ Aplicaciones en distintos lenguajes: Java, C++, Visual Basic,

Visual C++, Delphi, COBOL, etc.

„ Distintas arquitecturas y esquemas de datos: ficheros, bases

de datos de distintos fabricantes, sitios web internos y externos, aplicaciones propietarias …

(4)

Ejemplo: Heterogeneidad dentro de la intranet de una corporación (2)

„

Razones

„ Decisiones de ingeniería

„ 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 tecnologías más

modernas

„ Es preciso seguir utilizándolas hasta amortizar su coste de

(5)

Ejemplo: Heterogeneidad dentro de la intranet de una corporación (y 3)

„

Ejemplo

Gestión de pedidos

(C++) Gestión de stocks(COBOL)

Aplicación standalone cliente (Delphi) Servidor aplicaciones web (Java) Navegador HTTP

(6)

¿ Qué es CORBA ? (1)

„

Tecnología de objetos distribuidos

„

Permite la invocación de métodos de objetos remotos

sin que importe el lenguaje en el que estén escritos

el llamador y el llamado, ni las plataformas (s.o. y

hw.) y redes de comunicación intermedias

„

Permite integrar aplicaciones heterogéneas con el

paradigma de la orientación a objetos

„ Solución de más alto nivel que tecnologías más primitivas:

sockets, wrappers sobre sockets (ej.: ACE), RPCs (ej.: Sun RPC, DCE)

(7)

¿ Qué es CORBA ? (y 2)

„

Estandarizado por el OMG (

http://www.omg.org

)

„ Consorcio constituido por un gran número de empresas

(Iona, Borland, HP, IBM, Oracle, Sun, etc.)

„ Software COTS (Commercial Off The Shelf)

„ Las APIs están estandarizadas

„ El desarrollador no depende de un fabricante

„

Existen múltiples implementaciones de distintos

fabricantes para las plataformas y lenguajes más

usuales (C++, Java, Ada, COBOL, C, Smalltalk, etc.)

„ Iona „ Borland „ HP „ IBM „ Oracle „ Etc.

(8)

CORBA IDL

„

Los interfaces remotos se especifican en IDL

(Interface Definition Language)

interface StockManagement {

typedef long ProductIdentifier; typedef unsigned short Quantity;

unsigned short getQuantity(ProductIdentifier identifier) raises (ProductNotFoundException);

void addQuantity (ProductIdentifier identifier,

Quantity aQuantity) raises (ProductNotFoundException);

// ... };

„

El compilador de IDL permite generar

„ Un Proxy del objeto remoto (cliente)

„ Un Skeleton (Adapter) para implementar el interfaz remoto

(9)

ORB e IIOP

„

ORB e IIOP

Aplicación standalone cliente

(Delphi)

ORB A IIOP ORB B

Gestión de stocks (COBOL)

StockManagement

„ ORB (Object Request Broker)

„ Librería con API estandarizada

„ IIOP (Internet Inter-ORB Protocol)

„ Protocolo estándar de comunicación entre ORBs sobre TCP/IP „ Permite interoperabilidad entre ORBs de distintos fabricantes

(10)

Servicios CORBA

„

El OMG ha estandarizado numerosos servicios CORBA

„ Múltiples implementaciones de distintos fabricantes

„

Exponen su funcionalidad mediante interfaces IDL

„

Útiles para cualquier aplicación

„

Ejemplos

„ Servicio de Nombres

„ Permite asociar un nombre lógico a un objeto y localizarlo por

su nombre

„ Servicio de Seguridad

„ Permite establecer restricciones de seguridad sobre las

operaciones de un interfaz

„ Servicio de Transacciones

„ Permite agrupar un conjunto de invocaciones remotas bajo una

(11)

Ámbito de aplicación de CORBA (1)

„

CORBA ha sido y continúa siendo una buena

tecnología para abordar integraciones complejas en

intranets

„ Eficiente

„ Buen soporte para seguridad, transacciones, comunicación

basada en eventos, etc.

„

Uso en Internet

„ Existen firewalls que no reconocen IIOP

„ Hay fabricantes que venden proxies de IIOP, pero no se puede

esperar que todas las empresas que han adoptado las tecnologías de Microsoft los compren

„ Existen túneles 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 tecnologías de Microsoft usen CORBA

(12)

Ámbito de aplicación de CORBA (2)

„

Uso en Internet (cont)

„ Para abordar integraciones de aplicaciones en Internet es

preciso usar una tecnología que cuente con el apoyo de todos los fabricantes de tecnología (Sun, Oracle, IBM, Microsoft, etc.)

„

Integración B2B (Business To Business)

„ Automatización de la interacción entre una empresa

ensambladora de PCs y sus proveedores

„ Los proveedores disponen de puntos de acceso que permiten,

por ejemplo, hacer pedidos

„ La empresa ensambladora dispone de una aplicación que hace

pedidos automáticamente cuando existen productos cuya cantidad en stock cae por debajo de un determinado umbral

(13)

Ámbito de aplicación de CORBA (3)

„

Integración B2B (cont)

Internet Proveedor-1 Proveedor-2 Proveedor-N Empresa ensambladora de PCs

...

(14)

Ámbito de aplicación de CORBA (y 4)

„ Integración B2B (cont)

„ CORBA está especialmente orientada a interacción RPC (modelo

síncrono)

„ El cliente se queda bloqueado hasta que llega la respuesta del servidor „ Las integraciones B2B suelen requerir interacción basada en

mensajes (modelo asíncrono)

„ E.g. Interacción entre la empresa ensambladora de PCs y sus proveedores

„ Cada proveedor proporciona un servicio con una operación para realizar un pedido

„ Un cliente envía un mensaje para solicitar un pedido a un proveedor „ Un pedido no se puede servir inmediatamente

„ El proveedor puede enviar una respuesta inicial de tipo “petición de pedido recibida”

„ Y una respuesta final (o varias intermedias) cuando el pedido se sirve (total o parcialmente) físicamente (la mercancía sale del proveedor para el destinatario), que puede ocurrir días después de la petición inicial

(15)

XML

„ Lenguaje de tags (similar en sintaxis a HTML)

„ Permite escribir documentos de texto que expresan datos y no

aspecto visual (a diferencia de HTML)

„ Estandarizado por el W3C ( http://www.w3.org) „ Es extensible:

„ XML no impone un conjunto de tags, sino sólo 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 raíz, los tags pueden tener atributos, etc.)

„ Sus campos de aplicación son innumerables

„ Integración de aplicaciones heterogéneas, configuración de

aplicaciones, generación de la capa vista de una aplicación web/WAP, bases de datos, etc.

(16)

XML: Ejemplo (1)

„

La aplicación de la empresa ensambladora podría

enviar el siguiente texto sobre HTTP (o HTTPS) a un

proveedor para realizar un pedido

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

soportan

<?xml version=“1.0”> <OrderManagement>

<makeOrder>

<lineItem item=“3-buttoms-mouse” quantity=“20”/> <lineItem item=“modem-card” quantity=“30”/>

</makeOrder> </OrderManagement>

(17)

XML: Ejemplo (y 2)

„

Cuando un proveedor puede satisfacer total o

parcialmente un pedido, puede contestar con un

mensaje del estilo

<?xml version=“1.0”> <OrderManagement>

<makeOrderResponse>

<lineItem item=“3-buttoms-mouse” quantity=“20”/> <lineItem item=“modem-card” quantity=“25”/>

</makeOrderResponse> </OrderManagement>

(18)

Servicios web

Internet Proveedor-1 Proveedor-2 Proveedor-N Empresa ensambladora de PCs

...

Registro UDDI SOAP SOAP SOAP SOAP SOAP

„ Un servicio web es un servicio ofrecido a través del web que

„ Ofrece un conjunto de operaciones

„ Usa SOAP para recibir y enviar respuestas „ No tiene estado

„ Su interfaz se puede describir en WSDL „ Puede estar registrado en UDDI

(19)

SOAP, WSDL y UDDI (1)

„

SOAP (originalmente “Simple Object Access

Protocol”)

„ Protocolo basado en XML para envío de mensajes

„ Comunicación síncrona y asíncrona

„ Normalmente SOAP funciona sobre HTTP (la alternativa más

frecuente) o SMTP

„ Estandarizado por el W3C

„ Analogía con CORBA: SOAP/IIOP

„

WSDL (Web Services Description Language)

„ Permite especificar en XML las operaciones y tipos de datos

de un servicio web

„ Estandarizado por el W3C

(20)

SOAP, WSDL y UDDI (y 2)

„

UDDI (Universal Description, Discovery and

Integration of Web Services)

„ Protocolo para interaccionar con un servidor (registro UDDI)

que proporciona operaciones (vía SOAP) para registrar y buscar servicios web

„ Cada servicio web se registra dando, su nombre, una

descripción del servicio (ej.: la URL de su WSDL, una descripción textual, etc.), etc.

„ Especificación: http://www.uddi.org

„

http://www.xmethods.net

„ Contiene un registro público con numerosos servicios web „ Se puede acceder mediante interfaz web (navegador) y

diversos protocolos (e.g. UDDI, interfaz propia definida en WSDL, etc.)

(21)

APIs para Servicios web

„

Existen APIs (comerciales y gratuitas) para los

lenguajes más usuales

„

En general, las APIs no son estándares, sin embargo,

no afecta a la interoperabilidad

„ La interoperabilidad es posible porque los protocolos (SOAP,

WSDL, UDDI) están estandarizados

„

En el caso de Java

„ Las APIs son estándares „ Forman parte de J2EE

„ Al igual que en CORBA, podemos cambiar de fabricante sin

que afecte al código fuente

„

En el caso de los lenguajes de Microsoft

(22)

Ámbito de aplicación de servicios web (1)

„

Los servicios web representan una buena tecnología

para abordar integraciones en Internet

„ Todos los firewalls reconocen HTTP

„ Todos los fabricantes de tecnología venden APIs y

herramientas para invocación e implementación de servicios web

„

Integración B2B

„ En el futuro, será la tecnología usada para abordar este tipo

de integraciones

„ Problemas actuales más importantes

„ Seguridad „ Transacciones

„ Existen estándares en marcha (e.g. Security,

(23)

Ámbito de aplicación de servicios web (y 2)

„ Integración de aplicaciones en intranets

„ No son una alternativa tan eficiente y madura como CORBA „ IIOP es más eficiente que SOAP, dado que IIOP es un protocolo

binario, mientras que SOAP envía la información en XML

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

„ Gozan de “industry momentum” y en consecuencia muchas empresas se decantan por su uso

„ En la actualidad

„ La tecnología de servicios web se está aplicando más en intranets,

donde el problema de seguridad no es tan complejo, o en Internet para servicios que no requieren seguridad (e.g. un servicio gratuito de información meteorológica)

„ Se usan más las APIs de comunicación síncrona, pero las

asíncronas ganarán relevancia en un futuro (y el B2B con servicios web será una realidad)

(24)

Flujos inter-aplicación (1)

„ Los procesos de negocio se componen de múltiples

interacciones entre aplicaciones. Ejemplo:

1. Un usuario de una tienda electrónica realiza un pedido de un

producto

2. La tienda electrónica le pregunta a la aplicación del almacén si el

producto está disponible

3. Si lo está

1. Se obtienen los datos del cliente solicitándoselos a la aplicación de CRM

2. Una vez recibidos, se decide un distribuidor mediante la aplicación de una serie de reglas teniendo en cuenta la localización geográfica, el nivel preferencial del cliente, etc.

3. Se contrata el envío del pedido con la aplicación B2B del distribuidor escogido.

4. …

4. Si no lo está

1. Se realizan comunicaciones con los posibles proveedores del producto, para que realicen ofertas que permitan rellenar las existencias del

producto en el almacén.

2. Se decide la mejor oferta recibida en un plazo menor que X, basándose en una serie de reglas predefinidas.

(25)

Flujos inter-aplicación (y 2)

„

Sistemas EAI (Enterprise Application Integration):

„ Lógica de control inter-aplicación declarativa

„ Soporte para envío/recepción de mensajes asíncronos „ Transacciones multi-aplicación

„ Soporte para la creación sencilla de “adaptadores” para las

aplicaciones existentes

„ Hasta ahora, soluciones poco basadas en estándares „ En intranets son una realidad plenamente establecida

„

Evolución:

„ Los sistemas EAI están evolucionando para dar mayor

soporte a comunicaciones B2B

„ Los servicios web jugarán un papel crucial mediante los

estándares emergentes para la orquestación y la coreografía de servicios web: BPEL4WS, BPML, etc

(26)

Integración de datos distribuidos (1)

„ 2000 principales empresas en USA tienen más de 15

plataformas diferentes y de 8 arquitecturas de almacenamiento con esquemas y convenciones semánticas incompatibles

(Gartner Group)

„ WWW y B2B agravan la situación

„ Combinar automáticamente los datos procedentes de diversas

fuentes es difícil: „ Heterogeneidad

„ Información poco estructurada y sin metadatos semánticos

(“legible para humanos”, pero no “legible para máquinas”)

„ En WWW y B2B, las fuentes son autónomas del sistema de

integración

„ Actualidad:

„ Data Warehouse: son una realidad para aplicaciones batch de

generación de informes y análisis de tendencias con datos intra-organización. No soportan:

„ Acceso a datos en tiempo real

(27)

Integración de datos distribuidos (y 2)

„

Enfoques emergentes:

„ EII (Enterprise Information Integration). Pretende

proporcionar acceso unificado en tiempo real a múltiples fuentes de información tanto intra-organización como inter-organización

„ Web Semántica. Pretende transformar la información

Referencias

Documento similar

En nuestra opinión, las cuentas anuales de la Entidad Pública Empresarial Red.es correspondientes al ejercicio 2012 representan en todos los aspectos

Petición de decisión prejudicial — Cour constitutionnelle (Bélgica) — Validez del artículo 5, apartado 2, de la Directiva 2004/113/CE del Consejo, de 13 de diciembre de 2004, por

Cuando se detecten anomalías en el cumplimiento de los procedimientos y criterios de evaluación por parte del profesorado, aún no existiendo reclamaciones de los estudiantes, el

La combinación, de acuerdo con el SEG, de ambos estudios, validez y fiabilidad (esto es, el estudio de los criterios de realidad en la declaración), verificada la

De forma subsidiaria, la regulación general de las condiciones y requisitos de la modalidad semipresencial o a distancia se adecuará a los establecidos en

Las personas solicitantes deberán incluir en la solicitud a un investigador tutor, que deberá formar parte de un grupo de investigación. Se entiende por investigador tutor la

El contar con el financiamiento institucional a través de las cátedras ha significado para los grupos de profesores, el poder centrarse en estudios sobre áreas de interés

© AESA Queda terminantemente prohibida la reproducción total o parcial de este documento, así como su uso indebido y/o su exhibición o comunicación a