common object request broker architecture corba computación de objetos distribuidos y corba corba...

31
Common Object Request Broker Architecture CORBA

Upload: reynaldo-perales

Post on 07-Mar-2015

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

Common Object Request Broker Architecture

CORBA

Page 2: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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

Page 3: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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

Page 4: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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

Page 5: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

IDLs

Page 6: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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.

Page 7: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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

Page 8: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

Arquitectura CORBA

Page 9: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

Componentes de la arquitectura CORBA

Page 10: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

Componentes de la arquitectura CORBA

Page 11: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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.

Page 12: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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.

Page 13: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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.

Page 14: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

Componentes de la arquitecturaCORBA

Page 15: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

Componentes de la arquitecturaCORBA

Page 16: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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

Page 17: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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.

Page 18: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

Interoperabilidad en CORBA:GIOP/IIOP

Page 19: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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

Page 20: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

Introdución a CORBA

Page 21: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

¿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(); };};

Page 22: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

¿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(); };};

Page 23: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

CORBA Cliente Servidor

Client Hello Object

GIOP/IIOPORB COREORB CORE

module test { interface Hello {

string getTime(); };};

Page 24: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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(); };};

Page 25: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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(); };};

Page 26: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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(); };};

Page 27: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

¿Cómo funciona elObject Adapter?

Page 28: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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

Page 29: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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

Page 30: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

Incomingrequests

Comportamiento del Object Adapter, luego de recibir la petición

ORB POA Manager POAPOAPOA

ServantServant

Servant

ServantServant

Hello Servant

ServantServant

Servant

Page 31: Common Object Request Broker Architecture CORBA Computación de objetos distribuidos y CORBA CORBA es una solución para la distribución de objetos OMG

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