2.middleware

52
Curso 5007437 Conceptos y estándares de arquitecturas orientadas a s ervicios Web Curso 2006/2007 Capítulo 2: Middlewa re Pedro Álvarez alv a per@uniza r . es José Ángel Bañares bana r es@uniza r . es http://diis.uniza r . es/ P ost W eb/ Departamento de Informática e Ingeniería de Sistemas

Upload: jorge-baldeon

Post on 29-Nov-2015

73 views

Category:

Documents


0 download

TRANSCRIPT

Índice - Capítulo 2

o Entendiendo el papel de un middlewareÞ Middleware como abstracción de programaciónÞ Middleware como infraestructura

o Una rápida revisión de las plataformas middleware convencionalesÞ RPCÞ TP MonitorsÞ Object brokersÞ Middleware Orientados a Mensajes

o Convergencia MiddlewareÞ La evolución hacia los servicios WebÞ Los Middleware hoy, y la convergencia hacia el “Ideal”Þ Mitos alrededor de los servicios Web

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

2

El papel de un Middleware

Þ Middleware como abstracción de programación

Þ Middleware como infraestructura

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

3

Abstracciones de programación

o Los lenguajes de programación (cualquier forma de sistema software), evoluciona siempre hacia mayores niveles de abstracción:

Þ Ocultando detalles de la plataforma y del hardwareÞ Primitivas más potentes

Þ Ayudando/automatizando en las tareas más pesadas (compiladores, optimizadores, balanceo de la carga, etc.)

Þ Reduciendo el número de errores de programaciónÞ Reduciendo el portabilidad coste de

desarrollo y mantenimiento de las aplicaciones, facilitando la

o Un Middleware es en esencia un conjunto de abstracciones de programación que facilitan el desarrollo de sistemas distribuidos complejosÞ Para comprender una plataforma middleware sólo se precisa conocer

su modelo de programaciónÞ A partir del modelo de programación se puede determinar cual serán

las limitaciones del middleware,Þ El modelo de programación subyacente determinará como evolucionará

la plataforma cuando las nuevas tecnologías evolucionen.

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

4

La genealogía de los MiddlewareApplication

servers

TP-MonitorsObject brokers

Message brokers

Transactional RPC

Object oriented RPC (RMI)

Asynchronous RPC

Formas especializadas de RPC, suelen tener funcionalidad adicional

Remote Procedure CallRemote Procedure Call: oculta detalles de comunicación detrás de llamadas a procedimiento, y ayuda a a cruzar plataformas heterogéneas

sockets:Interface a nivel de sistema operativo sobre los protocolos de comunicación

TCP, UDP:

sockets

TCP, UDP User Datagram Protocol (UDP) transporta paquetes de datos sin garantíasTransmission Control Protocol (TCP) verifica la entrega correcta de los datos

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 5

Internet Protocol (IP) Internet Protocol (IP):Mueve un paquete de datos de un nodo a otro

Middleware como infraestructuraDCE

entorno de desarrollo

IDLcódigo cliente Código servidor

proceso cliente proceso servidor

fuentes IDL

Compilador IDL

específica del lenguaje

Stub del cliente

Llamada al interface

Stub del servidor

Llamada al interfaceespecífica del lenguaje

RPC API RPC API

interfaceheaders

RPC run timelibreria servicios

RPC run timelibrería servicios

Protocolos RPC

Servicio de seguridad

Servicios de celdaServicio de

distribución de ficheros

Servicio procesos

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

6

DCE runtime environment

Infraestructurao Según vamos contando con abstracciones de programación de

más alto nivel, éstas deben estar soportadas por una infraestructura que permita su implementaciónÞ La funcionalidad adicional se consigue casi siempre a través

de capas adicionalesÞ Las capas software adicional incrementan la complejidad y el

tamaño de la infraestructura necesaria

o La infraestructura debe también soportar funcionalidad adicional que (abstracciones adicionales) permita el desarrollo, el mantenimiento y la monitorización más fácil y menos costosaÞ RPC => transaccional RPC => recuperación, modelos

de transacción avanzados, etc.Þ La infraestructura debe tener en cuenta los aspectos no funcionales

que no contemplan los modelos de datos y los lenguajes de programación: prestaciones, recuperación, mantenimiento, gestión de recursos, etc.

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

7

Entendiendo el papel del middlewareLos middleware cumplen un doble papel: como infraestructura y como abstracciones de programación

INFRAESTRUCTURAABSTRACCIONES DE PROGRAMACIÓN

o Pretenden ocultar los detalles de bajo

o Recoge todo lo necesario paradesarrollar y ejecutar sistemas

nivel del hardware, redes y distribucióno La evolución es hacia primitivas más

potentes que se basan en el concepto básico de RPC, añadiendo propiedades adicionales o permitiendo un uso más flexible del concepto

distribuidos complejoso La tendencia es hacia arquitecturas

orientadas a servicios a una escala global y a la estandarización de interfaces

o Otra tendencia importante es hacia una única infraestructura para minimizar la complejidad y las interacciones

o La evolución es hacia la integración de plataformas y la flexibilidad en la configuración

o Su “aspecto” viene dictado por laevolución de los lenguajes deprogramación (RPC y C, CORBA yC++, RMI y Java, SOAP-XML yServicios Web)

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

8

Abstracciones

o Las abstracciones de programación son un elemento clave de los middleware, pero no el único:Þ Una abstracción de programación sin una infraestructura que la

soporte no ayuda (p.e., una buena implementación, y un sistema subyacente que la soporte)

o Las abstracciones de programación, aparecen con frecuencia como reacción a cambios en el hardware o la naturaleza de los sistemas que están siendo desarrollados

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

9

Java como abstracción

o Java es un lenguaje de programación que abstrae el hardware subyacente: los programadores solo ven la máquina virtual Java (infraestructura), sin preocuparse del computador sobre el que se ejecuta

Þ Portabilidad de código (no es lo mismo que movilidad de código)Þ El primer paso hacia la estandarización de las abstracciones de un

middleware (puesto que ahora se pueden apoyar sobre un plataforma virtual sobre la que “todos” están de acuerdo)

Þ Pero es una plataforma concreto con un modelo/paradigma de programación concreto. ¡NO TODOS LA COMPARTEN!

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

10

Servicios como abstracción

o La computación Orientada a Servicio se fundamenta en una comunicación que se abstraiga del modelo de comunicación propio del lenguaje de comunicación y de la plataforma de ejecuciónÞ No queremos “saber” si el servicio está programado en Java, Lisp, C, C+

+, Fortran, etc…Þ No quiero saber si tengo que invocar un procedimiento, método,

función, …Þ No quiero saber nada de estructuras de datos en Java, Lisp, C, C++Þ No quiero saber nada de UNIX, Windows,…

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

11

Comunicación en Servicios (Web)

Services aredefined as separation of participants

Service-oriented

exchange of messages between participants. Thisin a exchange is

systems provides

a key to decoupling applications.

hide the internalabstractions that the service such asclasses, objects, methods, or remote procedures.By avoiding any knowledge of the internal structure, it is possible to incorporate any software component or application that can be "wrapped" in message handling code that allows it to adhere to the formal service definition

Web Services ArchitectureW3C Working Group Note 11 February 2004http://www.w3.org/TR/ws-arch/wsa.pdf

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

12

Midleware como infraestructura

o Java (EJB, RMI, CORBA, etc.), .NET, son infraestructuras middleware.Capa software ejecutable que me permite abstraernos de aspectos cotidianos en la programación de sistemas distribuidosÞ Primitivas de comunicación basada en RPC, RMI, …Þ Soporte a transaccionesÞ Gestión del ciclo de vida de los objetos/Procesos Þ Nos facilitan la definición de la lógica de negoció Þ…

o ¡Son plataformas ejecutables con un modelo de programación concreto!

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

13

Servicios Web como infraestructuras

o Los Servicios Web (un caso particular de computación orientada a servicios) es un tipo diferente de infraestructura. NO ES UNA INFRAESTRUCTURA EJECUTABLE. ES INDEPENDIENTE de la plataforma de ejecución

o Los servicios Web no son una tecnología complementaria que no reemplaza otras tecnologías

Þ No es un nuevo lenguaje de programaciónÞ No es una “nueva tecnología middleware” en el sentido de J2EE,

CORBA o .NET.o QUEREMOS MANTENER LAS ABSTRACCIONES sobre una infraestructura

COMÚN independiente de la plataforma de ejecución (JAVA, .NET)

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

14

Ideas clave a entender …

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

15

Rápida revisión Tecnologías Middleware

Þ RPCÞ TP MonitorsÞ Object brokersÞ Middleware Orientado a Mensajes

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

16

Middleware básico: RPC

Send

Communication module

o El programador no debe implementar toda la infraestructura para cada sistema distribuido. Se puede utilizar RPC (nuestro primer ejemplo de middleware de bajo nivel)

o ¿Qué nos permite un sistema RPC?Þ Ocultar la distribución detrás

de llamadas a procedimientosÞ Ofrecer un lenguaje de definición

de interfaces (IDL) para describir los servicios

Þ Generar el código necesario para realizar las llamadas remotas y tratar con todos los aspectos de comunicación

Þ Suministrar un “binder“ si se cuenta con un directorio de servicios y nombres

CLIENTELlamada procedimiento remoto

Proceso cliente

stub CLIENTE Bind Marshalling1

Communication module

stub SERVER Unmarshalling

Dispatcher (selecciona

stub)

Return

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

17

SERVIDOR1Marshalling: Organizar los datos en un formato antes de enviarlos Serialization: Transformar el mensaje en una cadena de bytes

Procedimiento remoto Proceso servidor

Binding en RPC

cliente

client process

servidor

Proceso servidor

Llamada procedimiento

Stub cliente

procedure

Stub servidor

dispatcher (selecciona

Módulo comunicación

bindmarshal serialize

Módulo comunicación

unmarshaldeserialize

stub)

send

receive

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

18

Dynamic Binding

clienteLlamada procedimiento

Proceso cliente

servidor

procedimiento

Proceso servidor

client stubbind marshal

server stub0. register unmarshal deserialize7. receive

dispatcher

(selecciona stub)

Módulo comunicación

serialize2. find5. send

Módulo Comunicación

3. Preguta por servidorque implemente el procedimiento

6. Invoca procedimiento

1. Registraservidor y procedimient

4. Dirección del servidor

Servicio de nombres y directorio (binder)

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

19

CLIENTE DEL CONTROL INVENTARIObusca_producto comprueba_inventario IF provisiones_bajo THEN

realiza_orden actualiza_inventario

...

¿Qué puede ir mal?

o RPC es un protocolo punto a punto, en el sentido de que soporta la interacción de dos entidades (el cliente y el servidor)

o Cuando hay más de dos

entidades (un cliente con dos

interactuandoservidores, un cliente con un servidor y el servidor con la base de datos), RPC trata las llamadas de forma independiente. Sin embargo las llamadas no son independientes

o La recuperación de fallos parciales es muy compleja. Por ejemplo, se envió la orden, pero el inventario no ha sido actualizado, o se ha hecho el pago pero no se ha registrado …

o Evitar estos problemas utilizando sólo sistemas RPC es muy costoso

Nuevo_producto busca_producto Borra_producto

Realiza_orden Cancela_orden

actualiza_inventario

Servidor 3 (inventario)Servidor2 (productos)

Actualiza_producto comprueba_inventario

BdD productos

BdD Inventario y ordenes

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

20

RPC Transaccionalo La solución es realizar llamadas

transaccionaleso ¿Qué es un TRPC?

Þ Lo mismo que un RPC más …Þ construcciones del lenguajes

adicionales que soportan manejar varias llamadas RPC como una unidad

Þ con frecuencia, incluyen también interfaces a bases de datos para realizar transacciones utilizando el estándar XA (2 Phase Commit)

Þ y más cosas que puedan ser útiles…

o Simplificando las cosas, se puede decir que TP-Monitors (Transaction Processing Monitors) son sistemas basados en RPC.

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

21

CLIENTE DEL CONTROL INVENTARIObusca_producto comprueba_inventario IF provisiones_bajo THEN

BOTrealiza_orden

actualiza_inventario EOT..

TP-Monitorso El ciclo de diseño un TP-Monitor es muy similar a RPC:

Þ se definen los servicios a implementar y se especifican en IDL

Þ se especifica que servicios son transacciones

Þ Se usa un compilador de IDL paragenerar los stubs del cliente y del servidor

o La ejecución requiere un mayor control :Þ los servicios transaccionales

mantienen el contexto de la información y registran las llamadas para garantizar la atomicidad

Þ los stubs necesitan soportar más información como el id de la transacción y el contexto de la

Nuevo_producto busca_producto Borra_producto

Realiza_orden Cancela_orden

actualiza_inventario

Servidor 3 (inventario)Servidor2 (productos)

Actualiza_producto comprueba_inventario

llamadao Llamadas jerárquicas complejas se

suelen implementar con TP-Monitors y no con RPC plano

BdD productos

BdD Inventario y ordenes

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

22

TP-Light y TP-Heavy = 2 niveles y 3 niveleso Un TP-heavy monitor ofrece:

Þ Un entorno de desarrollo completo (herramientas de programación, servicios, librerías, etc.),

Þ servicios adicionales (colas persistentes, herramientas de comunicación, servicios transaccionales, planificación, etc.),

Þ soporte para la autentificación (de usuarios y derechos de acceso a diferentes servicios),

Þ soluciones propias de comunicación, replicación, balance de carga, gestión de almacenamiento ... (similar a un sistema operativo).

o Su propósito es ofrecer un entorno de ejecución para gestores de recursos (aplicaciones), con una garantía razonable en las prestaciones

o Ejemplos: CICS, Encina, Tuxedo.

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

23

o Un TP-Light es una extensión en la bases de datos:

Þ implementada como hilos, en lugar de procesos,

Þ se basa en procedimientos almacenados (“métodos" almacenados en la bases de datos que realizan operaciones) y demonios (triggers),

Þ No es un entorno de desarrollo.

o Los monitores ligeros aparecen según se van haciendo más sofisticadas las bases de datos, integrando parte de la funcionalidad de los TP-Monitor en la base de datos.

o En lugar de escribir preguntas complejas, la pregunta es implementada y almacenada como un procedimiento. El cliente invoca el procedimiento almacenado, en lugar de invocar una pregunta.

o Ejemplos: Transact-SQL de Sybase, PL/SQL de Oracle.

Bases de datos y el modelo de 2 niveleso Las bases de datos se utilizan

tradicionalmente para gestionar datos.o Pero la simple gestión de los datos no

es un fin en si mismo. Se gestionan datos porque se tiene alguna lógica de aplicación en mente. Esto se olvida con frecuencia al considerar las bases de datos.

o Si la lógica de la aplicación es lo importante, ¿Por qué no mover la lógica de la aplicación a la base de datos? Esto es lo que proponen muchos vendedores, proponiendo modelos de 2 niveles, incorporando la base de datos herramientas para implementar la lógica de la aplicación.

o Estas herramientas incluyen triggers, replicación, procedimientos almacenados, interfaces de acceso estándar (ODBC, JDBC), etc.

cliente

Sistema de gestión de base de datos

Entorno de Desarrollo

BdD

aplicación

database

Aplicación externa

Gestor recursos

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 24

CORBA Cliente (objeto CORBA)

Servidor (objeto

CORBA)o CORBA (Common Object Request

Broker Architecture) es parte de laarquitectura de gestión de objetosestándar (Object ManagementArchitecture, OMA), una arquitectura de referencia para el desarrollo basado en componentes

o Las partes clave de CORBA son:

stub cliente (proxy)

stub servidor

(skeleton)

Interfaz Llamadas remotas

Þ El ORB (Object Request Broker): se encarga de la interacción entre

librería CORBABasic

componentesÞ Los servicios CORBA:

Servicios estándar soportadosÞ Un lenguaje IDL estándar para la

publicación de interfacesÞ Protocolos que permiten a los ORB

dialogar entre sí

CORBA Object Adaptor

Marshalling1

serialization2

Object Request Broker (ORB)

o CORBA es un intento de actualizar los RPC integrándolo con el modelo de objetos y desarrollando un estándar servicios

CORBA

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

25

1 Marshalling: es empaquetar datos en un formato de mensaje antes de transmitir el mensaje por el canal de

2 Serializaction: Transforma el mensaje en cadenas de bytes antes de enviar el mensaje por el canal de comunicación

comunicación

Un sistema en capas(Distintos esfuerzos de estandarización)

CORBA facilities

Servicios básicos verticales:

finanzas

telecomunicaciones

Objetos definidos por el usuario

Documentos distribuidos

Gestión información

Gestión sistemas

Gestión tareas

Servicios básicos horizontales:

Object Request Broker

naming

transactions

events

lifecycle

properties

relationships

time

licensing

concurrency

collection

security

trader

externalization

query

startup

persistence

CORBAservices

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

26

CORBA sigue el modelo RPCo CORBA comparte el mismo modelo que o El desarrollo es similar a RPC:

RPC :Þ Intentan resolver el mismo problemaÞ CORBA se implementa con

frecuencia sobre RPC

Þ se definen servicios ofrecidos por el servidor utilizando IDL (define el objeto servidor)

o A diferencia de RPC, CORBA propone una arquitectura completa e identifica partes del sistema en mucho más detalle

Þ Se compila la definición utilizandoun compilador IDL. . El resultado es el stub del cliente (proxy, server proxy, proxy object) y el stub del

que RPC (RPC es un mecanismo decomunicación, mientras que CORBA esuna arquitectura de referencia que incluye un mecanismo de comunicación)

o CORBA propone una arquitectura estándar basada en componentes, pero las ideas no son nuevas

servidor (skeleton). Las signaturas del método (servicios que pueden ser invocados) se almacenan en el repositorio de interfaces.

Þ Se programa el cliente y se enlaza con el stub

Þ Se programa el servidor y se enlaza con el stub

o A diferencia de RPC, los stubs hacen que el cliente y el servidor sean independientes del sistema operativo y del lenguaje

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

27

Desarrollo con CORBA (Modelo RPC)Crea tus

Defininiciones IDL

1

Precompilador2

Skeletons

3

Compila

Añade Implementación Servidor

4

5

Interface Repository

Client IDL Stubs

Server IDL Skeletons

Implementación Objetos

ServidorCliente

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

28

Objetos por todos los lados: IIOP y GIOPo Para que los ORBs sean realmente una

Cliente (objeto

Servidor (objetoarquitectura de componentes

universal, los ORBs deben comunicar entre sí (no se puede tener todos los componentes del “mundo mundial” interactuando en

CORBA) CORBA)

un único ORB)o Con este fin, CORBA ofrece un

protocolo general; EL General Inter-

ORB 1 ORB 2

ORB Protocol (GIOP), queespecificacomo pasar llamadas entre ORBs

o El Internet Inter-ORB Protocol especifica como pasar mensajes GIOP sobre TCP/IP

o Hay protocolos adicionales que permiten comunicar ORBs con otros sistemas

GIOP GIOP

IIOP IIOP

o La idea sonaba bien, pero surgió demasiado tarde y ha sido superada por los servicios Web … o NO!

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

29

Internet (TCP/IP)

Lo mejor de los dos mundos: Object Monitors

Las tecnologías Middleware se deben interpretar como las diferentes etapas de evolución hacia un sistema ideal. Los sistemas actuales no compiten entre sí, más bien se complementan. La competencia surge cuando las infraestructuras que las soportan convergen hacia una única plataforma:

o OBJECT REQUEST BROKERS (ORBs): Reutilización y distribución de componentes mediante un interface orientado a objetos estándar y servicios que añaden semántica a la interacción entre componentes.

o TRANSACTION PROCESSING MONITORS: Un entorno de desarrollo de componentes capaces de interactuar transaccionalmente y herramientas necesarias para mantener las consistencia transaccional

y… Object Transaction Monitors?

Object Monitor = ORB + TP-Monitor

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

30

Middleware Orientada a Mensajes

o RPC soportan comunicaciones síncronas, pero se requieren formas más dinámicas y formas de interacción asíncrona

o La interoperabilidad basada en Mensaje no es nada revolucionarioÞ Ya existen implementaciones de RPC que ofrecen comunicación asíncronaÞ Muchos sistemas TP-Monitors tenían colas de mensajes

o La interoperabilidad basada en mensajes es un paradigma donde clientes y servidores se comunican intercambiando mensajes

o Un mensaje se caracteriza por un TIPO (p.e. tipos XML) y un conjunto de pares atributo-valor <NOMBRE, VALOR>

Message PedirPresupuesto

{ NumeroReferenciaPresupuesto:Integ

er Cliente: String

Producto: String

Cantidad: Integer

FechaEntrega: Timestamp

DireccionEntrega: String

}Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

31

Ejemplos mensajeso Cliente y Servidor deben acordar el tipo de mensajes que intercambiano No existe distinción entre cliente y servidor (es conceptual)

Message : pedirPresupuesto { NumeroReferenciaPresupuesto: 325

Message: presupuesto { NumeroReferenciaPresupuesto: 325FechaEntregraPrevista: Mar 12, 2003 Precio:1200€

}

aplicación cliente

Cliente: Acme,INC Producto:#115 (bilgrafo, blue) Cantidad: 1200FechaEntrega: Marzo 16,2003 DireccionEntrega: Palo Alto, CA

Herramienta presupuestos

}

aplicación cliente

Herramienta presupuestos

Middleware Orientado a Mensajes (MOM)

Middleware Orientado a Mensajes (MOM)

Un cliente envía un mensaje a la aplicación de presupuestos

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

32

La aplicación de presupuestos envía un mensaje al cliente

Colas de mensajesMiddleware Orientado aMensajes (MOM) o Un MOM no aporta ningún

beneficio significativo, pero son la base de desarrollo de conceptos y características útiles.

aplicación cliente

Herramienta presupuestos

MensajesCola

entrant

e

encolados o La abstracción más

importante son las colas de mensajes

Núcleo MOM

Herramienta

Presupuestos 1

Herramienta

Presupuestos 2 Herramient

a Presupuesto

s 3

o Beneficios de las colas de mensajes:- Los destinatarios controlan cuando

Cola entrante

procesar el mensaje- No tienen que estar continuamente a la espera de mensajes, ni tienen porque existir cuando se envía el

Núcleo MOM

compartidamensaje

-Las colas pueden ser compartidas, seles puede asignar prioridades a los

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 3

3

mensajes, etc., etc.

Convergencia Middleware

Þ La evolución hacia los servicios WebÞ Los Middleware hoy, y la convergencia hacia el

“Ideal”Þ Servicios Web como MetaMiddleware, o Middleware

para MiddlewaresÞ Mitos alrededor de los servicios Web

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

34

Resumen Evolución

o El funcionamiento del Web esta basado en el paradigma cliente/servidor

Þ La evolución de la Web ha pasado de ser un medio de publicar y emitir documentos electrónicos a soportar aplicaciones cliente/servidor más interactivas.

Hipertexto Web interactivo Objetos en la Web

Transacciones seguras:•SSL•S-HTTP

Java•Componentes móviles

Objetos distribuidos•Documentos compuestosF

un

ció

n

•Web con texto, gráficos, y enlaces

•ActiveXs•CORBA

•Tablas•imágenes•sonido•vídeo•CGI

•Firewalls •Applets

TiempoCurso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

35

1994 1995 1996 1997

CORBA Y JAVA (Plataforma ubicua)

ServidorHT

TP

2

Descarga HTML + Stub+ Applet+ Orblet

3 Invoca servicio

HTML Stub Applet Orblet

Servidor CORBA

Invoca servicio4

ORBCORBA

Objeto servidor

Muestra Resultados

5

Cliente WebServidor Web

Instala HTML• cliente.html••

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

36

Applet CliApplet.class Stub y Orblet

1

o Modelo Cliente/servidor en tres capas

Middleware + Java + Internet

Documentos HTML

HTPP HTPP

Internet TCP/ IP

CGI

CORBA

Aplicaciones

CORBA IIOP

CORBA IIOP

ObjetosServidor Tradicional

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

37

Cliente WebServidor Web

¿Qué puede ir mal? (1)

o Los protocolos de los middleware no pueden atravesar firewall, salvo...

InternetEntorno servidor

Applet

FirewallEntorno cliente

Entorno de otros servidores

Visible al applet Invisible al applet

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

38

SOAP (RPC sobre HTTP + XML)Servicios

Web

Documentos HTML

HTPP HTPP

SOAP

Internet TCP/ IP

CGIHTPP

CORBA

Aplicaciones

CORBA IIOP

CORBA IIOP

Objetos

Cliente WebServidor TradicionalServidor Web

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

39

¿Qué puede ir mal? (2)Convergencia de los middleware

o En la práctica, siempre se precisa más de un tipo de middleware. Hay que ver que ofrece cada producto.

o Existen implementaciones de una gran variedad de funcionalidades que se solapan: Lo que en CORBA se denominan Servicios CORBA

App. wrappersruntime

platform support

engine

RPCName

services repository

o Existen muchas posibles combinaciones. Algunas funcionan, y otras no.

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

40

Funcionalidad Intercambiable

App

. wra

pper

s

plat

form

su

ppor

t

repo

sito

ryN

ame

serv

ices

runt

ime

engi

ne

RP

C

o Que haya combinaciones posibles, no quiere decir que todas tengan sentidoo En un entorno integrado, la funcionalidad integrada no debería llevarse a cabo incorporando

componentes externos, sino diseñándolo de forma coherente desde el principio. Esto no siempre es posible hoy en día.

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

41

Sistema “Ideal”

gestiónobjetos

gestióntransacciones

gestión procesos

gestióndatos

gestiónmensajes

INFRAESTRUCTURA COMÚN

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

42

¿Qué infraestructura mínima se precisa?(1)

o Primitivas de comunicación (al estilo RPC, CORBA, RMI o un simple intercambio de documentos)Þ Queremos aplicaciones desacopladas

• Primitiva de comunicación asíncronaÞ Una forma de intercambiar mensajes independiente de la plataforma

y que atraviese cortafuegos• Protocolos de Internet: HTTP, STMP• Representación de los mensajes en XML: SOAP.

Þ Descripciones de los interfaces en XML a partir de primitivas de comunicación asíncrona de envío/recepción: WSDL

o Registro de Servicios: UDDI.Þ Único servicio centralizado compartido

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

43

Qué puede¿ir mal? (3)Motivación desde el B2B/EAI

o En interacciones entre organizaciones no hay un lugar obvio donde colocar el middlewareÞ Los middleware tradicionales se sitúan entre las aplicaciones a

integrar. Las aplicaciones están distribuidas, pero el middleware se centraliza y controla por una compañía.

Þ La adopción de la misma solución supone que el cliente, el proveedor y el mayorista acuerdan utilizar una determinada plataforma middleware

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

44

Limitaciones de los Middlewareconvencionales en el B2B

o La solución presentada podría ser posible si hay pocas compañías involucradas

o Si hay varias compañías, hay que tener en cuenta queÞ Las compañías quieren preservar su autonomía y confidencialidad

o Una alternativa sería la comunicación punto-a-puntoÞ Esto quiere decir, que cuando dos compañías quieren comunicar,

acuerdan utilizar cierta infraestructura middleware.Þ Por ejemplo, ambos utilizan sus respectivos broker de mensajes para

intercambiar mensajes (Dos o mas aplicaciones utilizando broker de mensajes distintos, pero homogéneos pueden interaccionar).

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

45

¿Qué infraestructura mínima se precisa?(2)

o Las transacciones o cualquier otro aspecto que antes se hacia mediante un middleware centralizado, ahora hay que llevarlo a cabo mediante protocolos (conversaciones entre los servicios involucrados).

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

46

Tecnología middleware en el presenteo RPC y el modelo RPC son el núcleo de cualquier

plataforma middleware, incluso cuando utilizan interacción asíncrona.

o RPC, ha pasado a ser la infraestructura de bajo nivel, y su uso directo es infrecuente por parte delos desarrolladores

o TP-Monitors son tan importantes como en décadas pasadas, pero se han convertido en componentes de sistemas mayores y están ocultas detrás de capas adicionales que tienen por objeto la integración de aplicaciones y servicios Web. Como los RPC, la funcionalidad de los TP-Monitorsva migrando hacia los niveles más bajos de la infraestructura y resultaninvisibles para el desarrollador.

o CORBA está siendo reemplazado (más bien incoporando en...) por otras plataformas, a pesar de que sus ideas son todavía usadas y

copiadaspor los nuevos sistemas. CORBA ha sufrido tres desarrollos que han cambiado el panorama: la rápida adopción de Java y la máquina virtual Java, Internet y el Web, y la aparición de J2EE y tecnologías relacionadas que se constituyen como el estándar de facto para el middleware (y de esto que dicen los del microsoft...)

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

47

Servicios Web, MetaMiddleware

o Metamiddleware como INFRAESTRUCTURA común para otros middlewares:

• VENTAJASu Representación de datos no propietaria (XML)u Interfaces definidos en XMLu USO de protocolos de Internet

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

48

Vamos a ver un ejemplo ya!

http://webservices.amazon.com/onca/xml?Service=A WSECommerceService&AWSAccessKeyId=1JFWX63WKHTWX3 4G4KG2&Operation=ItemSearch&Keywords=Aragon&Sear chIndex=Books

LIBROS EN AMAZON QUE TRATAN DE ARAGON

ESTILO REST de invocación de servicios WEB, ,

¡¡¡SOLO HTTP y XML!!!

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

49

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

5

0

Conceptos de partida

Arquitectura de servicios web

¿Cuál es el origen de la arquitectura de servicios

Web?¿Evolución o revolución?

¿Cuál es el estilo arquitectural de los servicios Web?

¿Dónde encajan aquí losmiddleware, las EAI?

¿Es la “arquitectura definitiva” para la construcción de sistemas distribuidos?Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios

WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

51

¡Ojo con los SW!

o El correo electrónico utiliza STMP, sin embargo podemos mirar en su contenido para evitar spamÞ PODEMOS MIRAR los mensajes SOAP para que no lleguen a su

destino. PODEMOS PONER BARRERASÞ SOAP sigue el estilo RPC. Esto implica tener miles de interfaces

(APIS) distintos con modelos de datos subyacentes que pueden dar problemas para su uso como Servicio.• HTTP como protocolo de aplicación incluye las siguientes

OPCIONES, GET (recupera documento), POST (adjunta información al recurso), PUT (almacena información), DELETE (borra el recurso indicado). Es un interfaz universal. El servidor ya interpretará que hacer mirando el documento XML.

Þ Se puede hacer el énfasis en SERVICIOS, o en WEB (protocolo HTTP). Se está haciendo el énfasis en SERVICIOS. PORQUE no utilizar otros estilos de intereacción RMI, IORB, JMS. ¡WSDL contempla estos protocolos de transporte!

Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios WebDepartamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)

52