Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aplicaciones Distribuidas
?Llamadas a procedimientos remoto
Objetos Distribuidos ?Invocacióna un método remoto (RMI)
CORBA: Un caso de Estudio ?Modelo de programación basado en
eventos
1
Modelo de Objetos
Modelo de Objetos
Distribuidos
? La interfaz define las firmas o signatures de los ? En el modelo C/S, los objetos son administrados
métodos (tipos de sus argumentos, valores por servidores y sus clientes invocan sus métodos
devueltos y excepciones) sin especificar su utilizando una invocación de métodos remota
implementación. (RMI)
? Los sistemas de objetos distribuidos pueden
? Se manejan excepciones
adoptar cualquiera de los modelos arquitectónicos
? Se hace necesario proporcionar mecanismos de conocidos.
liberación del espacio ocupado por aquellos ? Cuando el cliente invoca un método de un objeto
objetos que ya no lo necesitan (compactación remoto, se envía un mensaje al servidor que lo
automática de la memoria) administra.
Invocaciones
Invocación locales Invocación
Remota Remota
C
A B D E
Objeto Remoto
Objeto Remoto
2
Modelo de Objetos
Modelo de Objetos Distribuidos
Distribuidos ? Interfaz remota:
– Cada objeto tiene una interfaz remota que especifica
Existen dos conceptos fundamentales: cuáles de sus métodos pueden invocarse remotamente.
? Referencia de objeto remoto: – El sistema CORBA proporciona un IDL que permite
definir interfaces remotas. Las clases de los objetos
– Otros objetos pueden invocar los métodos de un
remotos y los programas de los clientes pueden
objeto remoto si tienen acceso a su referencia
implementarse en cualquier lenguaje. Los clientes
de objeto remoto. CORBA no tienen que estar en el mismo lenguaje que
– Las referencias a objetos remotos se pueden el objeto remoto.
pasar como argumentos y resultado de las
Invocaciones
invocaciones de métodos remotos. Invocación
Remota
locales Invocación
Remota
C
A B D E
Interfaz Remoto
Interfaz Remoto
Modelo de Objetos
Distribuidos
? La compactación automática de memoria,
distribuida, se logra usualmente mediante la
cooperación entre el compactador de memoria
Corba: un estándar para
local y un módulo adicional que realiza
compactación de memoria distribuida, basado en
construir objetos
un contador de referencias. distribuidos.
? Una invocación a un método remoto debe ser
capaz de lanzar excepciones. CORBA IDL
proporciona una notación para las excepciones.
3
Object Management Group Object Management Group
(OMG) (OMG)
? Esun consorcio internacional que ? Fue fundado en 1989.
promueve el desarrollo de software
orientado por objetos ? Inicialmente estuvo conformado por 8
compañías: 3Com Corpotation, American
Airlines, Canon Inc., Data General, Hewlett-
? Elobjetivo del OMG es proveer un Packard, Philips Telecommunications N.V.,
marco de arquitectura común para Sun Microsystems y Unisys Corporation.
permitir la interacción de objetos en
plataformas heterogéneas y distribuidas. ? Actualmente hay más de 500 miembros
4
Object Management Architecture Object Management Architecture
(OMA) (OMA)
? ORB (intermediario de petición de objetos)
• Posee 4 componentes:
es el bus de comunicación entre objetos.
Common
Application
Interfaces Facilities
Permite o facilita la comunicación entre
objetos. La tecnología adoptada para los
ORBs es lo que se conoce como CORBA.
Application Common
Object Request Broquer (ORB) Interfaces Facilities
Object Services
y sus implementadores.
Object Services
5
Object Management Architecture CORBA
(OMA)
? Common Facilities (CF): son servicios de ? Fue creada en 1991 (Corba 1.1). propone una
más alto nivel orientados a las aplicaciones implementación específica del ORB (IDL)
(accounting, intercambio de información entre ? En 1994 surge CORBA 2.0 (1994), que definió
aplicaciones, correo electrónico o facilidades estándares para permitir la comunicación entre
para imprimir). implementaciones realizadas por
? Application Interfaces: interfaces desarrolladores diferentes. Este estándar se
desarrolladas para aplicaciones en particular. denomina GIOP (General Inter-ORB
Estos objetos hacen uso del resto de los Protocol).
componentes. OMG probablemente no llegue a ? CORBA 3.0 (1997) incrementa
desarrollar estándares de este tipo. interoperabilidad y funcionalidad (POA)
Corba IDL
Modelo de Objetos CORBA
? Los clientes no son necesariamente objetos; un IDL: Interface Definition Language
cliente podr á ser cualquier programa que envía La interfaz especifica un nombre y un conjunto de métodos
mensajes de petición a objetos remotos y reciba que podrán utilizar los clientes.
respuestas.
? El término objeto CORBA se refiere a objetos
? Es un lenguaje declarativo
remotos. ? Define tipos de objetos especificando sus
? Un objeto CORBA implementa una interfaz IDL, interfaces estáticas
tiene asociado una referencia de objeto remoto y
es capaz de responder a las invocaciones de los ? Sintaxis derivada de C++ con palabras
métodos en su interfaz IDL. adicionales
? Se puede implementar un objeto CORBA en un
lenguaje que no sea OO.
6
Enfoque CORBA: IDL
// Ejemplo de especificación de Enfoque CORBA: IDL
IDL: forma.idl y ListaForma.idl
7
Enfoque CORBA: IDL Enfoque CORBA: IDL
Value
Tipos IDL
? Herencia: las interfaces IDL se pueden extender.
Constructed value ? Una interfaz IDL podrá extender de más de una
Object Reference interfaz.
array
Union
? Todas las interfaces IDL heredan del tipo Object.
struct sequence
Basic Values Esto hace posible el definir operaciones IDL que
puedan tomar como argumento o devolver como
Integer Float Point
resultado una referencia a un objeto remoto de
cualquier tipo.
Interface A {};
any
Interface B: A{};
Short Long UshortUlong Float enum
octal Interface C {};
Double boolean
char string Interface Z: B, C {};
CLIENT SERVANTS
Request IDL
IDL ORB SKELETON DSI
DII
STUBS INTERFACE
OBJECT ADAPTER
ORB
8
La Arquitectura de CORBA Enfoque CORBA
Client ?IDL Skeleton (Esqueletos):
REQUEST ?Funciones generadas desde la interfaz IDL para “enlazarlas” a
IDL Stub
las implementaciones de objetos
DII
?Dynamic Skeleton Interface (DSI)
?IDL Stubs (resguardos o proxies): ORB Core ?Análogo al DII del lado de la implementación de objetos
?Funciones generadas desde la interfaz IDL para “enlazarlas”
a los clientes
?Provee una interfaz de invocación estática
?Dynamic Invocation Interface (DII)
Servant
?Permite especificar y construir requerimientos a tiempo de ejecución
?Operaciones: create_request, invoke, send, get_response IDL Sk DSI
?El cliente especifica el objeto, la operación y los parámetros. Se ORB
Interface Object Adapter
obtienen a través del repositorio de interfaz.
ORB Core
9
Funciones de un Adaptador de Estructura de un Adaptador de
Objetos Objetos
? Funciones: ? Tiene tres interfaces diferentes:
? Genera referencias a objetos que se registran en
CORBA. IOR (Interoperate object reference)
? Da a cada objeto CORBA un único nombre que ?Una interfaz privada para el esqueleto
forma parte de su referencia a objeto remoto.
? Medio de comunicación entre implementaciones ?Una interfaz privada para el núcleo
de objetos y el ORB core.
? Despacha cada RMI vía un esqueleto hacia el
sirviente apropiado. ?Una interfaz pública para las
? Activación/Desactivación de sirvientes implementaciones de objetos
Funciones de un Adaptador de
Referencia a Objetos Objetos
? Funciones:
? Genera referencias a objetos que se registran en
Un objeto CORBA puede identificarse, localizarse y direccionarse CORBA. IOR (Interoperate object reference)
por su referencia a objeto. ? Da a cada objeto CORBA un único nombre que
forma parte de su referencia a objeto remoto.
Nombre de tipo Protocolo y dirección Clave del ? Medio de comunicación entre implementaciones
de Interfaz IDL detallada Objeto de objetos (lenguaje de los sirvientes) y el ORB
core (Objetos CORBA).
Identificador Nombre de Número
de repositorio IIOP Dominio Nombre del Nombre ? Despacha cada RMI vía un esqueleto hacia el
de puerto adaptador del objeto
de interfaz del host sirviente apropiado.
? Activación/Desactivación de sirvientes
10
Funciones de un Adaptador de Funciones de un Adaptador de
Objetos Objetos
? El ORB y el OA cooperan para permitir ? Diferentes OAs pueden soportar diferentes
que las aplicaciones clientes invoquen estilos de implementación de sirvientes.
métodos de objetos CORBA y aseguran que Por ejemplo, el Orbix Object Database
cada objeto CORBA se asocie a un Adapter Framework, permite implementar
sirviente. El ORB y el OA cooperan para, objetos usando una base de datos OO. Otro
de forma transparente, localizar e invocar a ejemplo es el Real Time Object Adapter
los sirvientes adecuados, una vez que se (objetos a tiempo real.)
tiene la información en las referencias.
Estructura de un Adaptador de
Funciones de un Adaptador de Objetos
Objetos
? Adaptadores de Objetos adoptados por
Que pasaría si no existiera el adaptador de objetos? el estándar CORBA:
– El core tendría que soportar múltiples tipos o
?Basic Object Adapter (BOA)
estilos de sirvientes lo cual lo haría más grande,
complejo y lento. ?Portable Object Adapter (POA)
– Falta de flexibilidad
Con el OA se pueden soportar diferentes estilos de
programción de los sirvientes. De esta forma el
código del ORB es más pequeño y simple.
11
Estructura de un Adaptador de Estructura de un Adaptador de
Objetos (BOA) Objetos
? Modelos de Activación ? Algunas limitaciones (BOA)
? Unshared Server: servidor que soporta un único
?No especifica cómo deben ser los
objeto CORBA. Si se crea otro objeto (del mismo
tipo) se tiene que crear un nuevo servidor. esqueletos o cómo deben asociarse los
? Shared Server: soporta múltiples objetos sirvientes a los esqueletos.
CORBA, posiblemente de diferentes tipos. ?No especifica cómo se deben registrar los
? Persistent Server: el servidor se inicia cuando se
sirvientes en el OA.
inicia el sistema (boot time).
? Server-per-Method: es una colección de procesos ?No se establece nada respecto a servidores
c/uno implementando una operación de un objeto multithreading.
CORBA.
12
Estructura de un Adaptador de Inter-Operabilidad
Objetos
? Es necesario que inter-operen los
? Activación asociada al objeto, no al servidor: ORB´s de diversos fabricantes.
– Explícita: se usan llamadas directas al POA para activar
a los sirvientes. ? Las barreras no son sólo de
– Por demanda: se registra un manejador de sirvientes. implementación sino relacionadas con
Este manejador lo puede proveer la aplicación y se
encarga de activar el sirviente.
la seguridad.
– Implícita: cierta acción sobre un sirviente ? Dominios: son un conjunto de objetos,
(servant._this) es suficiente para activarlo (objetos
transitorios)
los cuales, por alguna razón de
– Por defecto: se activa un sirviente por defecto para implementación o administrativa están
todos los objetos. separados de otros objetos.
Inter-Operabilidad Inter-Operabilidad
13
Semánticas de Ejecución y
Implementaciones de ORBs
Modelos de interacción
? Semánticas: ? Residenteen el cliente y en la
?At-most-once implementación de objeto
?Best effort (oneway)
? Basado en un Servidor
? Modelos de interacción:
?Con la interfaz estática: Operaciones
síncronas ? Basado en el Sistema
?Con la interfaz dinámica: síncrona
diferida. ? Basado en Librerías
Servicios de CORBA
Bibliografía
? Ciclo de vida de los objetos
? CORBA: A Platform for Distributed Object
? Manejo de nombres
Computing. Zhonghua Yang and Keith Duddy.
? Persistencia ? Objet Interconnections. Object adapters: Concepts
? Notificación de eventos and Terminology. Douglas Schmidt and Steve
Vinosky. SIGS C++ Report magazine 1997.
? Concurrencia y transacciones
? Sistemas Distribuidos Conceptos y Diseño.
? Seguridad Coulouris, Dollimore and Kindberg. Tercera
Edición. Addison Wesley.
14