common object request broker architecture corba computación de objetos distribuidos y corba corba...
Post on 07-Mar-2015
5 Views
Preview:
TRANSCRIPT
Common Object Request Broker Architecture
CORBA
Computación de objetos distribuidos yCORBA
CORBA es una solución para la distribución de objetos
OMG ha definido CORBA: Un modelo de objetos Cómo interaccionan los objetos Una arquitectura del sistema que soporta la
interacción de objetos Un lenguaje para definir las interacciones
entre objetos Servicios básicos para aplicaciones
distribuidas
CORBA: un bus software Todos los componentes en CORBA son
objetos Cada objeto tiene una interfaz y una
identidad única Cada objeto se puede implementar con
un lenguaje de programación distinto, y ejecutarse sobre cualquier plataforma HW y sistema operativo
CORBA define el bus software que permite la interacción de esa diversidad de objetos
IDL: Interface Definition Lang. IDL separa la interfaz de la implementación
Lenguaje de especificación de interfaces públicas, con herencia múltiple y fuertemente tipado
Independiente de cualquier lenguaje de programación
OMG define correspondencias con muchos lenguajes
No es un lenguaje de programación Permite la interoperabilidad Soporta el mecanismo de invocación
dinámica
IDLs
Conceptos y terminología CORBA. Common Object Request Broker Adapter
– Ofrece interfaces de programación independientes de la plataforma y modelos para aplicaciones portables basadas en objetos distribuidos.
ORB (Object Request Broker). Permite la comunicación transparente entre clientes de objetos.
Objeto CORBA: entidad virtual que puede ser localizada por un ORB y que puede aceptar peticiones de clientes.
– Es virtual, se concreta en un determinado lenguaje de programación.
Conceptos y terminología Objeto destino. Objeto CORBA al que se le hace una petición. Cliente. Entidad que hace una petición sobre un objeto CORBA.
– Puede existir en un espacio de direcciones distinto Servidor. Aplicación en la que residen uno o más objetos
CORBA. Petición. Invocación de una operación de un objeto CORBA
realizada por un cliente. Referencia a objeto. Manejador que se usa para identificar,
localizar y dar la dirección de un objeto CORBA. Sirviente. Entidad de un lenguaje de programación que
implementa uno o más objetos CORBA. Los sirvientes encarnan objetos CORBA
Arquitectura CORBA
Componentes de la arquitectura CORBA
Componentes de la arquitectura CORBA
Flujo general de peticiones El cliente realiza una petición usando stubs
estáticos (previamente compilados) o la Interfaz de invocación dinámica (DII) y la dirige a su ORB.
El ORB cliente transmite las peticiones al ORB enlazado con el servidor.
El ORB del servidor redirige la petición al adaptador de objetos que ha creado el objeto destino.
El adaptador de objetos dirige la petición al servidor que implementa el objeto destino. Puede utilizar esqueletos estáticos o la interfaz de esqueleto dinámico.
El servidor devuelve su respuesta.
Invocación de peticiones Para que un cliente envíe un mensaje a un objeto
necesita tener una referencia de dicho objeto. Las operaciones se realizan a través de la referencia
al objeto. Cuando un cliente llama a una operación, el ORB: Localiza al objeto destino. Activa a la aplicación servidor, si no está activa. Transmite los argumentos. Activa un sirviente para el objeto si es necesario. Espera hasta que se complete la operación. Devuelve cualquier parámetro out e inout al cliente. Devuelve una excepción cuando falla la llamada.
Estilos de peticiones Petición síncrona. El cliente se bloquea
esperando la respuesta. Idénticas a las llamadas a procedimientos remotos.
Petición de sentido único (oneway). El cliente no espera respuesta.
También existen peticiones asíncronas.
Componentes de la arquitecturaCORBA
Componentes de la arquitecturaCORBA
Funciones del ORB Entrega las peticiones a los objetos destino (locales o
remotos) y devuelve las respuestas a los clientes que hicieron las peticiones
El ORB se basa en la referencia al objeto destino Transparencias soportadas: Localización de objetos Implementación de objeto Estado de ejecución del objeto Mecanismos de comunicación con el objeto
Entiende IDL y mantiene un Repositorio de Interfaces También mantiene un Repositorio de Implementaciones Puede federar esta información a través de varios sistemas:
UNA WEB DE ORBs INTERCONECTADOS
Adaptadores de Objeto Un adaptador de objeto es un objeto
que adapta la interfaz de un objeto a una interfaz esperada por un usuario.
– Crean referencias de objetos– Aseguran que cada objeto destino esté
encarnado en un sirviente– Reciben las peticiones emitidas por el
ORB del servidor y las redirigen a los sirvientes que encarnan a los objetos destino.
Interoperabilidad en CORBA:GIOP/IIOP
Resumen CORBA es una solución a la computación
de objetos distribuidos. Los elementos básicos de la arquitectura
CORBA son el ORB, stub y skeletons en cliente y servidor respectivamente, el repositorio de interfaces, y las interfaces de invocación y skeleton dinámicas
IDL es el lenguaje que permite especificar interfaces, y el elemento central para soportar la interoperabilidad
Introdución a CORBA
¿Cómo funciona el Cliente / Servidor CORBA?
Client Hello Object
getTime()
The current time is Mon Jun 10 15:41:14 EST 2002
module test { interface Hello {
string getTime(); };};
¿Cómo funciona el Cliente / Servidor CORBA?
Client Hello Object
getTime()
The current time is Mon Jun 10 15:41:14 EST 2002
module test { interface Hello {
string getTime(); };};
CORBA Cliente Servidor
Client Hello Object
GIOP/IIOPORB COREORB CORE
module test { interface Hello {
string getTime(); };};
CORBA Cliente Servidor
Client
GIOP/IIOPORB COREORB CORE
Hello Object
getTime() The current time is Mon Jun 10 15:41:14 EST 2002
module week1 { interface Hello {
string getTime(); };};
CORBA Cliente Servidor
Client Hello Object
Stub
Object Ref
ORB Interface
ORB COREGIOP/IIOP
OS Kernel
OS I/O Sub System
Network Adaptor
OS Kernel
OS I/O Sub System
Network Adaptor
Connection Management
IDL Skeleton
Object Adaptor
getTime()
The current time is Mon Jun 10 15:41:14 EST 2002
getTime()
Construct Request Object
Marshall/Unmarshall
Find the Object
Marshall/Unmarshall
getTime()
module test { interface Hello {
string getTime(); };};
CORBA Cliente Servidor
Client
Stub
Object Ref
ORB Interface
ORB COREGIOP/IIOP
OS Kernel
OS I/O Sub System
Network Adaptor
OS Kernel
OS I/O Sub System
Network Adaptor
Connection Management
IDL Skeleton
Object Adaptor
getTime() Hello Object
The current time is Mon Jun 10 15:41:14 EST 2002 Week1 project completed successfully
module test { interface Hello {
string getTime(); };};
¿Cómo funciona elObject Adapter?
Object Adaptor
Hello CORBA Cliente Servidor
Client
Stub
Object Ref
ORB Interface
ORB COREGIOP/IIOP
OS Kernel
OS I/O Sub System
Network Adaptor
OS Kernel
OS I/O Sub System
Network Adaptor
Connection Management
getTime() Hello Servant
The current time is Mon Jun 10 15:41:14 EST 2002 IDL
Skeleton
Object Adaptor
Invocando getTime()
Client
Stub
Object Ref
ORB Interface
ORB COREGIOP/IIOP
OS Kernel
OS I/O Sub System
Network Adaptor
OS Kernel
OS I/O Sub System
Network Adaptor
Connection Management
getTime()getTime()
Construct Request Object
Marshall/Unmarshall
Find the Object
Marshall/Unmarshall
IDL Skeleton
Object Adaptor
Hello Servant
Incomingrequests
Comportamiento del Object Adapter, luego de recibir la petición
ORB POA Manager POAPOAPOA
ServantServant
Servant
ServantServant
Hello Servant
ServantServant
Servant
Object Adaptor
Ejecutar la llamada getTime() y retornar el resultado
Client
Stub
Object Ref
ORB Interface
ORB COREGIOP/IIOP
OS Kernel
OS I/O Sub System
Network Adaptor
OS Kernel
OS I/O Sub System
Network Adaptor
Connection Management
IDL Skeleton
getTime()
The current time is Mon Jun 10 15:41:14 EST 2002
getTime()
Construct Request Object
Marshall/Unmarshall
Find the Object
Marshall/Unmarshall
getTime()Hello Servant
top related