PDF de programación - Tema 4: Desarrollo de soluciones de SSDD

Imágen de pdf Tema 4: Desarrollo de soluciones de SSDD

Tema 4: Desarrollo de soluciones de SSDDgráfica de visualizaciones

Publicado el 27 de Noviembre del 2020
621 visualizaciones desde el 27 de Noviembre del 2020
1,7 MB
56 paginas
Creado hace 12a (01/03/2012)
Tema 4:
Desarrollo de soluciones de SSDD

Sistemas Distribuidos

Marcos López Sanz
[Curso 2011-2012]



Índice

 Middleware para SSDD

RMI (genérico)
CORBA 2
Java RMI
Enterprise JavaBeans

 Middleware para sistemas Peer-to-Peer
 Ejercicios
 Dudas

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Soluciones de SSDD

 Middleware
 Objetivo:

 Ofrecer una abstracción de programación de alto nivel para el desarrollo

de SSDD y, mediante capas, ocultar la heterogeneidad de la
infraestructura subyacente para mejorar la interoperabilidad y la
portabilidad

 Alternativas

 Middleware de objetos distribuidos

• Modelo de programación OO
• Comunicación por RMI (mayormente)
• Beneficios: encapsulación, abstracción de datos, soluciones flexibles y dinámicas
• Ej.: Java RMI, CORBA

 Middleware de componentes distribuidos

• Retos: evitar dependencias implícitas (referencias en/a interfaces), complejidad

de programación, falta de separación de aspectos distribuidos (seguridad,
gestión de errores, concurrencia…), falta de estrategias de despliegue

• Ej.: EJB, DCOM, Fractal

 Otras alternativas:

• Sistemas Peer-to-Peer
• Servicios Web

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 RMI (Remote Method Invocation)

 Extensión de las RPC (p.ej. Sockets) para un entorno orientado a

objetos

 Reto: que un objeto local sea capaz de invocar un método de un

objeto potencialmente remoto


 Similitudes RPC vs. RMI:

 Programación con interfaces
 Construidos sobre protocolos Request-Reply
 Nivel de transparencia equivalente: misma sintaxis para invocación local

y remota

 Diferencias RPC vs. RMI

 Con RMI se pueden usar técnicas (patrones y metodologías) orientadas a

objetos para su programación

 Semántica de parámetros más “rica”

 posibilidad de usar OIDs como parámetros

• Beneficio en el paso por referencia

 invocación a través del OID remoto en vez de enviar el objeto completo

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 RMI. Cuestiones de diseño

Modelo de objetos

 Conceptos: objeto/clase/métodos/atributos
 Propiedades: encapsulación/abstracción/modularidad
 Referencias de objetos: nombre.método (parámetros)
 Interfaces: definición de las signaturas de los métodos
 Acción: resultado de la invocación de un método (cambio

de estado, instanciación de un nuevo objeto, etc.)

 Excepciones: manejo de errores (throw/catch)
 ‘Recolector de basura’: eliminación de objetos que ya no

se utilizan

 Estado: valores de las variables instanciadas

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 RMI. Cuestiones de diseño

Objetos distribuidos

 Arquitectura tradicional: cliente/servidor
 Servidor: maneja los objetos ‘invocables’
 Comunicación (típica) basada en el paso de mensajes de

invocación y respuesta

• Alternativas: replicación o migración de objetos

 Importante en RMI: encapsulación del estado remoto
• Acceso a los atributos sólo por los métodos  concurrencia
• Ocultación de los tipos de datos internos utilizados



Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 RMI. Cuestiones de diseño

 Modelo de objetos distribuidos

 Premisa: cada proceso contiene una colección de objetos que

pueden recibir invocaciones locales o remotas

 Conceptos básicos:

• Objeto remoto: aquél que puede recibir invocaciones remotas

(aquellos que se ejecutan en procesos diferentes)

• Referencias a objetos remotos: forma de conocer el objeto remoto

al que se puede invocar  OID remoto

• Interfaz remota: describe los métodos que pueden invocarse de

forma remota

» La clase de un método remoto implementa los métodos

publicados en su interfaz

» Lenguaje del interfaz: IDL (en CORBA), Java RMI
» Lenguaje de la implementación del IDL: Java, Python, C++, etc.



Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 RMI. Implementación

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Extraído de Coulouris et al. Distributed Systems: Concepts and Design. 2012

Objetos y Componentes Distribuidos

 RMI. Implementación

 Módulo de comunicación

 Implementan el protocolo de petición-respuesta (p.ej. sobre HTTP o

directamente sobre TCP o UDP)

 Parámetros (tipo Java): messageType, requestId, operationId

 Modulo de referencia remota

 Transforma las referencias a objetos remotos en referencias locales y viceversa

(marshalling/unmarshalling)

 Uso de una tabla interna para almacenamiento de correspondencias

 ‘Servant’: clase en el servidor remoto que ejecuta la petición remota

(instanciación remota)

 Software RMI (middleware):

 Proxy (cliente): ofrece transparencia de acceso (invocación remota como local).

Un proxy por cada objeto remoto invocado. Intermediario

 Dispacher (servidor): recibe las peticiones del módulo de comunicación y las

traslada al ‘skeleton’

 Skeleton: clase que implementa los métodos de la interfaz remota. Se encarga
de hacer de intermediario entre la representación ‘pública’ y el objeto real del
servidor (‘servant’)

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 RMI. Implementación

Generación de proxies, dispatchers y skeletons

 Compilador de interfaces (Orbix en CORBA)

• Genera el código C++ o Java a partir de un interfaz
• Interfaces: IDL o interfaz Java

Elementos adicionales

 Binder: mantiene una tabla de nombres textuales-

referencias a objetos remotos:
• CORBA: CORBA Naming System
• Java RMI: RMIregistry

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 CORBA

 Estándar del OMG (1989)
 Motivación

 Que los programas (distribuidos) se pudieran programar en

cualquier lenguaje

 Premisas:

 Metáfora: ORB (Object Request Broker)  ayudar a un cliente

a invocar un método en un objeto siguiendo las premisas del
estilo RMI

 Fases: localizar el objeto remoto, activar el objeto remoto,
comunicar la petición del objeto cliente al objeto remoto y
devolver su respuesta

 Versiones

 CORBA 2: orientado a objetos
 CORBA 3 (CCM): basado en componentes

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 CORBA 2

Elementos

 Un lenguaje de definición de interfaz: IDL
 Una arquitectura
 Una representación de datos externa (mensajes): CDR
 Una forma estándar de identificar referencias de objetos

remotos

 Un conjunto de servicios genéricos útiles para

aplicaciones distribuidas


Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 CORBA 2. CORBA RMI

 Modelo de objetos de CORBA

 CORBA Object = objeto remoto que:

Implementa una interfaz IDL,


• Tiene una referencia de objeto remoto
• Es capaz de responder a las invocaciones referidas a las operaciones definidas en su interfaz
• Está programado en un lenguaje que no necesariamente es OO

 El concepto de clase no está implementado en IDL, sólo tipos de datos



 CORBA IDL

 Un interfaz IDL especifica un nombre y un conjunto de métodos
 Ofrece facilidades para especificar módulos, tipos, atributos, signaturas de

métodos e interfaces

 La gramática es un subconjunto de ANSI C++



 Otras características de CORBA

 Existen problemas a la hora de hacer los mappings IDLlenguaje de

implementación

 Existe la posibilidad de definir RMI con CORBA de forma asíncrona (llamadas no

bloqueantes)

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 CORBA 2. Ejemplo pizarra compartida

Interfaz IDL



Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 CORBA 2. Arquitectura

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Extraído de Coulouris et al. Distributed Systems: Concepts and Design. 2012

Objetos y Componentes Distribuidos

 CORBA 2. Arquitectura

 ORB Core

 Incluye toda la funcionalidad de comunicación
 Ofrece una interfaz adicional con varias operaciones:

• Parar e iniciar el ORB
• Convertir referencias de objetos remotos y strings
• Listas de argumentos para invocaciones dinámicas

 Adaptador de objetos

 Sirve de puente entre los objetos CORBA con interfaces IDL y los
interfaces de programación de las clases ‘servant’ que realmente
ejecutan el código remoto invocado

 Tareas:

• Crear referencias remotas a objetos CORBA
• Repartir cada petición RMI hecha a un skeleton al ‘servant’ adecuado
• Activar y desactivar ‘servants’

 POA (Portable Object Adapter): permite interconectar aplicaciones y

‘servants’ sobre ORBs de diferentes proveedores

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 CORBA 2. Arquitectura

 Skeletons

 Se generan en el lenguaje del servidor mediante un compilador IDL a

partir de un interfaz IDL

 Deserializa (unmarshall) las peticiones RMI y serializa (marshall) las

excepciones y respuestas

 Stubs cliente (proxy)

 Se generan en el lenguaje del cliente mediante un compilador IDL a

partir de un interfaz IDL

 También serializan/deserializan

• Proxy: para clientes programados en lenguajes OO
• Stub: para clientes programados en otros lenguajes procedurales

 Repositorio de implementación

 Activa y localiza (mapea) servidores registrados correspondientes a los

adaptadores conocidos por el ORB

 Repositorio de interfaces

 Ofrece información acerca de las interfaces IDL registradas en el ORB

Sistemas distribuidos – Curso 2011-2012

www.kybele.es

Objetos y Componentes Distribuidos

 CORBA 2. Servicios

Servicio de nombr
  • Links de descarga
http://lwp-l.com/pdf18490

Comentarios de: Tema 4: Desarrollo de soluciones de SSDD (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad