sistemas distribuidos - materias.fi.uba.armaterias.fi.uba.ar/sweb/1c-2006/sisdis06_5.pdf · –el...
TRANSCRIPT
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 1
Sistemas Distribuidos5. Modelos de Sistemas Distribuidos
Prof. María FeldgenCurso 2006
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 2
Índice– Modelos
• Modelo Cliente-Servidor• Framework• CORBA• Java RMI• Microsoft DCOM• Message-Oriented Middleware
– Dificultades de integración de los sistemas distribuidosanteriores.
– J2EE y XML en Sistemas Distribuidos– Web Services
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 2
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 3
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
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 4
Framework
• Software Framework:– Es una estructura de soporte bien definida para organizar
y desarrollar otro proyecto de software.– Ejemplos: Bibliotecas de código, lenguajes de scripting,
Programas de soporte– Apache Cocoon, Cocoa, Eclipse, Microsoft .Net
• Object Oriented Framework:– Conjunto de clases cooperantes– Ejemplos: CORBA, AWT, Swing, MFC (Microsoft Foundation
Classes)
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 3
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 5
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
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 6
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.
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 4
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 7
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 y servidores de
objetos:
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 8
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ón deoperaciones para polear a su ORB por resultados.
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 5
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 9
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.
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 10
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 )
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 6
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 11
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 Javaera:– Usando las bibliotecas estándar de red de Java (java.net APIs)– No resuelven en el procesamiento distribuido.
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 12
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
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 7
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 13
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
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 14
Componentes de la arquitectura
• Cliente RMI.• Stub RMI.• Infraestructure RMI, consiste de 2 capas:
– la capa de referencias remotas (remote reference layer)– la capa de transporte.
• RMI skeleton.• Servidor RMI.
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 8
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 15
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 balanceada en un modelo deaplicación Java.
• Puede interoperar con componentes CORBA (RMI-IIOP (RMIsobre IIOP))
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 16
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.
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 9
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 17
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.
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 18
Modelo de la arquitectura Microsoft DCOM
ProtocoloDCOM
Cliente ComponenteServidor
COMRuntime
COMRuntime
RPC RPC
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 10
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 19
Modelo de invocación de objetos• Aplica los conceptos de skeleton y stub con una interfase
definida que muestra como los métodos de un objeto COMpueden ser invocados remotamente sobre una red.
• Invocación de métodos de un objeto COM remoto igual que unobjeto 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.
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 20
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.
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 11
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 21
Características comunes• Aunque CORBA, RMI y DCOM difieren en su
arquitectura 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
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 22
Message-Oriented Middleware(MOM)
• Usa un modelo de comunicación asincrónico con bajoacople
• la aplicación cliente no necesita conocer losreceptores de aplicación o los argumentos de susmétodos.
• las aplicaciones se comunican indirectamente usandouna 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.
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 12
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 23
Arquitectura Básica(sistema de mensajería por colas)
• Las aplicaciones interactúan con la infraestructura de mensajes pormedio 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
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 24
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.
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 13
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 25
JMS
• Usa modelos de mensajes punto apunto o Publish/Subscribe(publicación-suscripción) con lassiguientes características:– Capacidad transaccional completa– Despacho de mensajes confiable– Seguridad
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 26
Publisher-Subscriber
Bus mensajes yred de datos
Publisher
Publisher
Subscriber
Subscriber
Subscriber
Subscriber
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 14
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 27
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.
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 28
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 yDisponibilidad
• La interoperabilidad de aplicaciones sobre plataformasheterogéneas
• No son esquemas amistosos para los firewalls y no soncapaces de ser accedidos desde la Internet.
• Cada comunidad de desarrolladores tiende a una plataformaespecifica.
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 15
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 29
Aplicaciones comerciales sobre Web• En el modelo de aplicaciones comerciales basado en
Internet se basa en hacer procesamiento comercialcomplejo con el apoyo de servidores centralizados:– 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
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 30
J2EE(Java 2 Platform, Enterprise Edition)• J2EE es una plataforma de programación para
desarrollar 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.
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 16
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 31
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
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 32
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)), aplicacionesde base de datos, aplicaciones antiguas o aplicaciones enmainframe.
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 17
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 33
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.
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 34
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
Sistemas Distribuidos
Prof. María Feldgen - Curso 2006 18
FIUBA-EGRIET 2006 Sistemas Distribuidos (Prof. María Feldgen) 35
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 de programación diferentes yejecutadas sobre cualquier plataforma sobre Internet y redesen gral.
• La interoperabilidad se consigue mediante la adopción deestándares abiertos.
• Las organizaciones OASIS y W3C son los comités responsablesde la arquitectura y reglamentación de los servicios Web.