Tema 1: Introducción a las tecnologías
de integración de aplicaciones
Índice
Introducción
CORBA
XML
Servicios web
Gestión de flujos inter-aplicación
Integración de datos
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 …
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
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
¿ 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)
¿ 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.
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
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
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
Á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
Á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
Ámbito de aplicación de CORBA (3)
Integración B2B (cont)
Internet Proveedor-1 Proveedor-2 Proveedor-N Empresa ensambladora de PCs...
Á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
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.
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>
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>
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
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
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.)
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
Á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,
Á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)
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.
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
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
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