Web Servicesmaterias.fi.uba.ar/sweb/2c-2005/WebServicesResumen.pdf · 2005. 10. 3. · 1: Sistemas...
Transcript of Web Servicesmaterias.fi.uba.ar/sweb/2c-2005/WebServicesResumen.pdf · 2005. 10. 3. · 1: Sistemas...
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 1
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
1
Web ServicesProfs. María Feldgen y Osvaldo Clúa
EGRIET
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
2
1: Sistemas Distribuidos– Introducción.– Sistemas Distribuidos
• Middleware– La Importancia de los Sistemas Distribuidos
• Aplicaciones Cliente-Servidor• CORBA• Java RMI• Microsoft DCOM• Message-Oriented Middleware
– Dificultades de integración de los sistemas distribuidosanteriores.
– J2EE y XML en Sistemas Distribuidos– Web Services
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 2
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
3
Introducción a los Sistemas Distribuidos• Una red de computadoras es la infraestructura que sirve a un
conjunto de computadoras interconectadas por medio deenlaces de comunicaciones sobre distintas topologías y pordistintos medios físicos, que usan un conjunto de protocolosen común.
• Un sistema distribuido, en cambio, es un sistema compuestopor múltiples computadoras que se comunican por medio deuna red de computadoras y que contienen procesos que usanun conjunto común de protocolos distribuidos para asistirlosen la ejecución correcta de las actividades distribuidas.
La frase de LAMPORT de lo que NO DEBE SER un sistema distribuido:
“Un sistema distribuido es aquel que no deja que Vd. trabajepor la falla de una máquina que Vd. no sabía que existía”.
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
4
Evolución de los sistemas distribuidos
• Para compartir recursos de los sistemas de computacióncon las redes de área local.
• Para compartir archivos (file transfer) y acceso a otrasmáquinas usando sesiones remotas (remote login).
• Sistemas de archivos distribuidos• Sistemas de procesamiento distribuido.• Sistemas distribuidos modernos con un conjunto básico de
servicios, los cuales complementan los serviciosespecíficos que dependen del objetivo del sistema.
desde mediados de 1970
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 3
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
5
Servicios Básicos
• Los servicios básicos mas relevantes son:– Servicios de directorio– Servicios de autenticación y autorización– Servicios de archivos– Servicios de red– Servicios de invocación remota– Servicios de gestión o intermediación (Brokers).– Servicios de tiempo– Servicios de administración.
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
6
Definición• Un sistema distribuido es una colección de computadoras
independientes que el usuario ve como un solo sistemacoherente.(la definición de sistemas distribuidos de A. Tanenbaum)
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 4
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
7
Middleware• La definición tiene dos aspectos:
– Hardware: las computadoras son autónomas, heterogéneasy sobre redes diversas.
– Software: el usuario ve un solo sistema– Ambos son esenciales:
• La forma de comunicación entre las máquinas está oculta• La organización interna del sistema distribuido está oculta.• El usuario y la aplicación interactúan con el sistema
distribuido en una forma consistente y uniforme, sin importardonde y cuando tiene lugar esa interacción.
• Visión única del sistema:– una capa intermedia entre la capa de mas alto nivel y las
capas que tratan con el sistema operativo: middleware– Provee una interfase común a todas las aplicaciones y
oculta las diferencias de las redes y sistemas operativossobre los cuales se encuentra.
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
8
Modelos• Modelo Cliente-Servidor
– Sockets– RPC (Remote Procedure Call).
• Modelo simple de documentos distribuidos– WWW.
• Modelo de objetos distribuidos:– Sun Java RMI (Remote Method Invocation)– Microsoft DCOM (Distributed Component Object Model)– OMG CORBA (Common Object Request Broker
Architecture),.• Modelo de aplicaciones distribuidas:
Message-Oriented Middleware (MOM):– Web Services
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 5
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
9
La Importancia de los SistemasDistribuidos
• Ventajas de un ambiente de procesamientodistribuido con respecto a uno tradicional deaplicaciones aisladas:– Mayor performance o rendimiento– Colaboración– Mayor confiabilidad y disponibilidad– Escalabilidad– Extensibilidad– Mayor productividad y menor ciclo de vida de desarrollo– Reuso– Reducción de costos
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
10
Aplicaciones Cliente-Servidor
RequestReply
RequestReply
Request
Reply
Aplicación Cliente Servidorcon Base de Datos en TCP/IP
Características:
• El cliente inicia la conexión (activo)• El servidor espera pasivamente por la conexión con un cliente• Cual de los dos realiza las funciones principales del proceso depende de la aplicación
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 6
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
11
Limitaciones• Procesamiento comercial complejo del lado del cliente• La seguridad es mas compleja de implementar (los
algoritmos y la lógica residen en las máquinas delcliente)
• Requiere alto ancho de banda para acomodar lasnecesidades de múltiples llamadas al servidor(restricciones de escalabilidad)
• El mantenimiento y actualización de las aplicacionesclientes es difícil
Esta arquitectura es muy útil para aplicacionesorientadas a base datos centralizadas o sistemas con
componentes no reusables
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
12
Framework• Software Framework:
– Es una estructura de soporte bien definida paraorganizar y desarrollar otro proyecto de software.
– Ejemplos: Bibliotecas de código, lenguajes descripting, Programas de soporte
– Apache Cocoon, Cocoa, Eclipse, Microsoft .Net• Object Oriented Framework:
– Conjunto de clases cooperantes– Ejemplos: CORBA, AWT, Swing, MFC (Microsoft
Foundation Classes)
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 7
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
13
OMG CORBA(Common Object Request Broker Architecture)
• Es una especificación de un sistema distribuido• es un estándar abierto para múltiples industrias .• Pertenece al Object Management Group (OMG), es un consorcio sin
fines de lucro responsable de la producción y mantenimiento de lasespecificaciones de este framework
• CORBA difiere del modelo tradicional cliente/servidor porque– Provee una solución orientada a objetos– No requiere protocolos propietarios especiales– Se puede usar cualquier lenguajes de programación– Corre sobre cualquier sistema operativo o plataforma de hardware
• Información en http://www.omg.org
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
14
ORB (Object Request Broker)• La arquitectura global de CORBA adhiere a un modelo de
referencia– definido por la OMG en 1997– consiste de 4 grupos de elementos estructurales o de arquitectura
conectados y es lo que se llama el Object Request Broker (ORB)
ORB (Object Request Broker)
Objetos deAplicación
Facilidades verticales(del dominio)
Facilidades Horizontales(propósito gral)
Servicios comunesde objetos
El ORB es la base de toda distribución CORBA: es la parte responsablede la comunicación entre los objetos y sus clientes, ocultando cuestionesrelacionadas con la distribución y heterogeneidad.
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 8
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
15
Modelo de Objetos• Los objetos y los servicios se especifican en la CORBA IDL
(Interface Definition Language)– provee una sintaxis precisa para expresar métodos y parámetros.– Una interfase es una colección de métodos y los objetos especifican
que interfaces implementan.
• Está organizado como una colección de clientes yservidores de objetos:
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
16
Modelo de invocación de objetosToda comunicación tiene lugar al invocar un objeto.• Sincrónica
– El cliente invoca un objeto, le envía un pedido al servidorcorrespondiente y se bloquea hasta que recibe la respuesta
• Asincrónica (One way)– que es un método que no devuelve respuesta
• Deferred synchronous request– El cliente envía el mensaje al servidor y sigue sin esperar la
respuesta y puede luego bloquearse hasta que llegue la respuesta
• Mensajes: invocación asincrónica de métodos.– callback, un cliente provee un objeto que implementa una interfase
conteniendo el método de callback. Estos métodos pueden serllamados por el sistema de comunicaciones para pasar los resultadosde un invocación asincrónica.
– modelo de polling: En este modelo el cliente ofrece una colecciónde operaciones para polear a su ORB por resultados.
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 9
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
17
Ventajas de CORBA sobre el modelocliente/servidor
• Independencia del sistema operativo y de loslenguajes de programación
• Integración de aplicaciones antiguas yactuales.
• Infraestructura de objetos distribuidos.• Transparencia de ubicación.• Transparencia de la red. (IIOP)• Soporte de callback remoto.• Interfase de invocación estática o dinámica.
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
18
Limitaciones• Inversión inicial grande: (inversiones en entrenamiento
e instalación de la arquitectura)• Disponibilidad de los servicios CORBA.• Escalabilidad.
Sin embargo, la comunidad Internet para el desarrollo deaplicaciones Intranet y Extranet ha adoptado CORBA conIIOP y Java como sus herramientas (por ejemplo JDK 1.4
(Java development kit) de Sun )
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 10
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
19
Java RMI• Java RMI fue desarrollado por Sun Microsystems como
un mecanismo estándar para el desarrollo deaplicaciones basada en objetos Java distribuidos, sobreel ambiente Java.
• RMI llama a objetos Java remotos y pasándolos comoargumentos o valores de retorno.
• Usa Java object serialization• Antes de RMI, la única forma de lograr una
comunicación entre procesos en la plataforma Java era:– Usando las bibliotecas estándar de red de Java (java.net APIs)– No resuelven en el procesamiento distribuido.
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
20
Modelo de la arquitectura JAVA RMI
JRMP: Java Remote Method Protocol (Protocolo de comunicaciónentre procesos)
JRMP
ClienteJAVA
ServidorJAVA RMI
RMIStub
Capa de referenciasremotas
RMISkeleton
Capa de referenciasremotas
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 11
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
21
Modelo de comunicaciones• Protocolo de comunicación entre procesos: Java Remote
Method Protocol (JRMP)– invocación de objetos Java viven en diferentes Java Virtual
Machines (VMs)– Invocación de los métodos del otro objeto en forma transparente– VMs en distintas computadoras– Tiene un mecanismo de recoleccion de basura– Tiene un mecanismo orientado a registro (rmiregistry) provee un
servicio de lookup simple no persistente– Actúa como el medio entre los clientes RMI y los objetos remotos– Intercepta los pedidos de los clientes y pasa los argumentos de
invocación, delega los pedidos de invocacion al RMI skeleton, yfinalmente pasa los valores de retorno de la ejecución del métodoal stub del cliente.
– Permite callbacks desde objetos servidores a aplicaciones cliente
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
22
Componentes de la arquitectura
• Cliente RMI.• Stub RMI.• Infraestructure RMI, consiste de 2 capas:
– la capa de referencias remotas (remote referencelayer)
– la capa de transporte.• RMI skeleton.• Servidor RMI.
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 12
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
23
Ventajas sobre Java Sockets• No hay necesidad de diseñar un protocolo• Provee un ambiente orientado a objetos para
comunicación entre procesos.• No se requiere codificar y decodificar mensajes para
el intercambio de los datos.• Permite la administracion distribuida de recursos, el
uso de poder de procesamiento y carga balanceadaen un modelo de aplicación Java.
• Puede interoperar con componentes CORBA (RMI-IIOP (RMI sobre IIOP))
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
24
Limitaciones• Se puede usar solamente sobre una plataforma
Java.• No provee independencia del lenguaje en su modelo
distribuido como CORBA• Es orientado a la conexión (fuertemente acoplado):
problemas de escalabilidad• No provee un soporte específico de administración
de la sesiónA pesar de estas limitaciones, RMI y RMI-IIOP son la base
del modelo de la arquitectura J2EE dado por su granaceptacion en el paradigma de procesamiento distribudio
de Java y sus multiples facilidades.
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 13
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
25
Microsoft DCOM• Microsoft Component Object Model (COM) provee
– una forma para que los componentes de software de Windows secomuniquen entre si
– Define un estándar binario y un estándar de red– Usa sistema operativo Windows.– Es una evolución de OLE (Object Linking and Embedding)– Es un modelo de aplicaciones distribuidas para los componentes de
ActiveX.• Microsoft Distributed Common Object Model (DCOM)
– respuesta al problema de procesamiento distribuido en unaplataforma Microsoft Windows.
– permite que aplicaciones COM se comuniquen entre si usando unmecanismo RPC
– emplea al protocolo DCOM sobre la red.
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
26
Modelo de la arquitectura Microsoft DCOM
ProtocoloDCOM
Cliente ComponenteServidor
COMRuntime
COMRuntime
RPC RPC
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 14
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
27
Modelo de invocación de objetos• Aplica los conceptos de skeleton y stub con una
interfase definida que muestra como los métodos deun objeto COM pueden ser invocados remotamentesobre una red.
• Invocación de métodos de un objeto COM remotoigual que un objeto COM local.
• El stub es un Proxy para el cliente• El servidor registra los objetos por medio de un
registry• Los clientes descubren los objetos usando un
mecanismo de lookup.
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
28
Limitaciones
• DCOM provee soporte para procesamientodistribuido pero:– Limitado al ambiente de aplicaciones Microsoft
solamente.– Cerrado sobre una única plataforma (Windows)– Administración de estado– Problemas de Escalabilidad– Administración de sesión.
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 15
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
29
Características comunes
• Aunque CORBA, RMI y DCOM difieren en suarquitectura básica y ambiente tienen en común:– Usan un modelo de comunicación con sincronismo
(request/response) que es fuertemente acoplado– Se basan en protocolos de comunicación binarios– Tienen una integración estricta con sus capas lógicas
Escalabilidad difícil
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
30
Message-Oriented Middleware(MOM)
• Usa un modelo de comunicación asincrónico conbajo acople
• la aplicación cliente no necesita conocer losreceptores de aplicación o los argumentos de susmétodos.
• las aplicaciones se comunican indirectamenteusando una cola de mensajes:– El cliente de la aplicación envía mensajes a la cola de
mensajes– La aplicación que recibe saca los mensajes de la cola.– La aplicación que envía los mensajes puede continuar
operando sin esperar por la respuesta de la aplicación.
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 16
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
31
Arquitectura Básica(sistema de mensajería por colas)
• Las aplicaciones interactúan con la infraestructura de mensajespor medio de adaptadores, enviando y recibiendo mensajes.
• El despacho de mensajes es confiable y los mensajes sonpersistentes
S.O.
ClienteOrigen
S.O.
ClienteDestino
S.O.
Broker
Capa deencolado
Reglasconversión
Red
Adaptador Adaptador
Infraestructura de mensajes
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
32
Tecnologías basadas en MOM
• MOM:– SunONE Message Queue– IBM MQSeries– TIBCO– SonicMQ– Microsoft Messaging
Queue (MSMQ).
• MOM con JMS:– SunONE– TIBCO– IBM– BEA– Talarian– Sonic– Fiorano– Spiritwave
La plataforma Java provee una Java API (JMS-JavaMessage Service). Es parte de la especificación J2EE 1.3.
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 17
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
33
JMS
• Usa modelos de mensajes punto apunto o Publish/Subscribe con lassiguientes características:– Capacidad transaccional completa– Despacho de mensajes confiable– Seguridad
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
34
Limitaciones de MOM sin JMS
• Problemas de portabilidad (APIs nativas paracomunicación con su infraestructura base)
• El mensaje MOM usa un formato de mensajepropietario sin adherir a ningún estándar
JMS permite un forma estandarizada de comunicarsecon un proveedor MOM son tener que usar una API deun producto especifico. Es un avance hacia los estándarabiertos con mayor flexibilidad para conectar diversasaplicaciones entre si.
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 18
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
35
Dificultades de integración• Mantener de varias versiones de stubs/skeletons• La calidad del servicio ( Quality of Service (QoS))
tiene objetivos tales como Escalabilidad,Performance y Disponibilidad
• La interoperabilidad de aplicaciones sobreplataformas heterogéneas
• No son esquemas amistosos para los firewalls y noson capaces de ser accedidos desde la Internet.
• Cada comunidad de desarrolladores tiende a unaplataforma especifica.
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
36
Aplicaciones comerciales sobre Web• En el modelo de aplicaciones comerciales basado
en Internet se basa en hacer procesamientocomercial complejo con el apoyo de servidorescentralizados:– La primera generación eran servidores Web
• páginas estáticas• por medio del protocolo HTTP (HyperText Transfer Protocol)
– Agregado de tecnologías: server-side scripting (CGI, NSAPIe ISAPI.
• Aplicaciones de empresas para Internet:– modelo de negocio del tipo business-to-business (B2B) que
se llamo business-to-consumer (B2C).
B2B B2C
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 19
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
37
J2EE(Java 2 Platform, Enterprise Edition)
• J2EE es una plataforma de programación paradesarrollar y correr aplicaciones distribuidas, basadasen componentes que corren en un servidor deaplicación.
• Es parte de la plataforma Java• Se considera informalmente como un lenguaje o
estándard porque los productos deben respetarciertos requerimientos.
• Tiene múltiples especificaciones de APIs (JDBC,client-side applets, RPC, CORBA) y define como secoordinan.
• Incluye Enterprise Java Beans, Servlets, JavaServerPages y otras del tipo Web Services.
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
38
Arquitectura J2EE
Applets yAplicaciones
Base deDatos
ClientesInternet
Capa (Tier) depresentación
Capa (Tier) deaplicación
Capa (Tier) deIntegración
HTTPIIOP
Web Container
EJB Container
SQL/JDBC Aplicacionesexistentes
J2EE Server
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 20
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
39
Arquitectura• Tiene tres capas lógicas
– separación clara entre los componentes– define roles y responsabilidades.– la funcionalidad de cada capa o tier es:
• Capa Presentación.– Contiene componentes Web sobre HTTP– Administración de Sesiones– Despacho de contenido independiente del dispositivo– Invocación a componentes de capas de aplicación comerciales.
• Capa de Aplicación. (capa comercial o del negocio)– procesamiento de la parte central de la lógica del negocio– workflow y la automatización.
• Capa de Integración.– conexión y comunicación con grandes Sistemas de información
comerciales (Enterprise Information Systems (EIS)), aplicaciones debase de datos, aplicaciones antiguas o aplicaciones en mainframe.
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
40
XML (eXtensible Markup Language)• Lenguaje de marcado ampliable o extensible desarrollado
por el World Wide Web Consortium (W3C).• Es una versión simple de SGML.• Su objetivo principal es conseguir una página web más
semántica.• Separa la estructura del contenido• Permite el desarrollo de vocabularios modulares• Se uso como estándar para el intercambio de datos entre
diversas aplicaciones o software con lenguajes privados(SOAP)
• Al igual que el HTML, se basa en documentos de textoplano en los que se utilizan etiquetas para delimitar loselementos de un documento.
WEB SERVICES
EGRIET (2005) - Profesores María Feldgen y Osvaldo Clúa 21
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
41
Extensible Markup Language (XML)• permite definir datos portables en un formato
estructurado y auto descriptivo• fue adoptado por la industria como el medio de
comunicación para intercambio electrónico de datos.• mecanismo de intercambio de datos entre
aplicaciones• promueve la interoperabilidad entre aplicaciones• aumenta la posibilidad de escalabilidad
La combinación de la plataforma J2EE con XML ofreceun framework estándar para comunicación entre
aplicaciones B2B sobre redes.
Web Services
EGRIET (2005) Web Services(Profesores María Feldgen y Osvaldo Clúa)
42
Web Services• Es una colección de protocolos y estándares que
sirve para intercambiar datos entre aplicaciones.• Intercambio de datos entre distintas aplicaciones de
software desarrolladas en lenguajes deprogramación diferentes y ejecutadas sobrecualquier plataforma sobre Internet y redes en gral.
• La interoperabilidad se consigue mediante laadopción de estándares abiertos.
• Las organizaciones OASIS y W3C son los comitésresponsables de la arquitectura y reglamentación delos servicios Web.