corba: un modelo de objetos di stribuidos

32
CORBA: CORBA: Un Un Modelo de Objetos Modelo de Objetos Di Di stribuidos stribuidos Universidad Simón Bolívar Departamento de Computación y T.I Sistemas de operación III CI-4822 Prof. Yudith Cardinale Sep – Dic 2001

Upload: eman

Post on 17-Jan-2016

49 views

Category:

Documents


0 download

DESCRIPTION

Universidad Simón Bolívar Departamento de Computación y T.I Sistemas de operación III CI-4822. CORBA: Un Modelo de Objetos Di stribuidos. Prof. Yudith Cardinale Sep – Dic 2001. Introducción. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CORBA: Un  Modelo de Objetos Di stribuidos

CORBA:CORBA:UnUn Modelo de Objetos Modelo de Objetos DiDistribuidosstribuidos

Universidad Simón BolívarDepartamento de Computación y T.I

Sistemas de operación III

CI-4822

Prof. Yudith CardinaleSep – Dic 2001

Page 2: CORBA: Un  Modelo de Objetos Di stribuidos

IntroducciónIntroducción

CORBA (Common Object Request Broker Architecture) es un estándard para construir objetos distribuidos.

Propuesto por el Object Management Group (OMG)

Page 3: CORBA: Un  Modelo de Objetos Di stribuidos

Object Management Group Object Management Group (OMG)(OMG)

Es un consorcio internacional que promueve el desarrollo de software orientado por objetos

El objetivo del OMG es proveer un marco de arquitectura común para permitir la interacción de objetos en plataformas heterogéneas y distribuidas.

Page 4: CORBA: Un  Modelo de Objetos Di stribuidos

Object Management Group Object Management Group (OMG)(OMG)

Fue fundado en 1989.

Inicialmente estuvo conformado por 8 compañías: 3Com Corpotation, American Airlines, Canon Inc., Data General, Hewlett-Packard, Philips Telecommunications N.V., Sun Microsystems y Unisys Corporation.

Actualmente hay más de 500 miembros

Page 5: CORBA: Un  Modelo de Objetos Di stribuidos

Object Management Group (OMG)Object Management Group (OMG) El OMG no realiza trabajos de desarrollo e

implementación, más bien se basa en la tecnología existente ofrecida por sus miembros.

Propone especificaciones para el desarrollo de computación distribuida basada en objetos: OMA (Object Management Architecture).

Los miembros pueden proponer especificaciones, luego de un proceso de revisión y votación podrán incorporarse al OMA.

Page 6: CORBA: Un  Modelo de Objetos Di stribuidos

Object Management Architecture Object Management Architecture (OMA)(OMA)

Es un modelo conceptual y una arquitectura de referencia sobre la cual se pueden construir aplicaciones.

Define, a un nivel de abstracción alto, varias “facilidades” necesarias para el desarrollo de aplicaciones distribuidas orientadas por objetos.

Consiste de 4 componentes.

Page 7: CORBA: Un  Modelo de Objetos Di stribuidos

Object Management Architecture Object Management Architecture (OMA)(OMA)

APP. Objects Common Facil

Object Request Broquer (ORB)

Object Services

Page 8: CORBA: Un  Modelo de Objetos Di stribuidos

Object Management Architecture Object Management Architecture (OMA)(OMA)

ORB es el bus de comunicación entre objetos. La tecnología del OMG para su ORB es CORBA.

Object Services comprenden un conjunto de interfaces de bajo nivel para la manipulación de objetos: naming, ciclo de vida y transacciones (COSS 1 y 2)

Common Facilities proveen interfaces estandarizadas para aplicaciones comunes (verticales y horizontales)

Application Objects reflejan la necesidad para el desarrollo de aplicaciones independientes.

Page 9: CORBA: Un  Modelo de Objetos Di stribuidos

Enfoque CORBAEnfoque CORBA

Es un enfoque para desarrollar objetos distribuidos sobre múltiples plataformas y lenguajes.

Especifica protocolos básicos (GIOP/IIOP ) usados para tener acceso remoto a los objetos.

CORBA 1.1 (1991) propone implementación específica de ORB

CORBA 2.0 (1994) propone interoperabilidad entre ORBs.

CORBA 3.0 (1997) incrementa interoperabilidad y funcionalidad

Page 10: CORBA: Un  Modelo de Objetos Di stribuidos

Enfoque CORBAEnfoque CORBAComponentes en el modelo de referencia

INTERFACEREPOSITORY

IDL COMPILER IMPLEMENTATION REPOSITORY

In args

ORB CORE

OBJECT ADAPTER

CLIENT OBJECTSOPERATION()

DIIIDL

STUBSORB

INTERFACE

IDLSKELETON

GIOP/IIOP

out args + return value

DSI

Page 11: CORBA: Un  Modelo de Objetos Di stribuidos

Enfoque CORBAEnfoque CORBA: IDL: IDL

IDL: Interface Definition Language Es un lenguaje declarativo Define tipos de objetos especificando sus

interfaces estáticas Provee encapsulamiento en dos niveles:

tipos de datos y objetos. Sintaxis derivada de C++

Page 12: CORBA: Un  Modelo de Objetos Di stribuidos

Enfoque CORBAEnfoque CORBA: IDL: IDL// Ejemplo de especificación de IDL: mybank.idlModule BANK interface BankAccount enum account_kind checking,saving; //types exception account_not_available string reason; //exceptions exception incorrect_pin; readonly attribute float balance; //atributes attribute account_kind what_kind_of_account; //operations void access (in string account, in string pin) raises (account_not_available, incorrect_pin); void deposit (in float f, out float new_balance) raises (account_not_available); void withdraw (in float f, out float new_balance) raises (account_not_available);

Page 13: CORBA: Un  Modelo de Objetos Di stribuidos

Enfoque CORBAEnfoque CORBA

Object Implementation

ORBInterface

ORB Core

IDL Sk

Object Adapter

DSI

Client

ORB Core

DII IDL Stub

REQUEST

Page 14: CORBA: Un  Modelo de Objetos Di stribuidos

Enfoque CORBAEnfoque CORBA

IDL Stubs: Funciones generadas desde la interfaz IDL

para “enlazarlas” a los clientes Provee una interfaz de invocación estática

Dynamic Invocation Interface (DII) Permite especificar y construir

requerimientos en tiempo de corrida. Operaciones: create_request, invoke, send,

get_response

Page 15: CORBA: Un  Modelo de Objetos Di stribuidos

Enfoque CORBAEnfoque CORBA

IDL Skeleton: Funciones generadas desde la interfaz IDL

para “enlazarlas” a las implementaciones de objetos

Dynamic Skeleton Interface (DSI) Análogo al DII del lado de la

implementación de objetos Puede recibir invocaciones estáticas o

dinámicas desde los clientes

Page 16: CORBA: Un  Modelo de Objetos Di stribuidos

Enfoque CORBAEnfoque CORBA

ORB Interface: Provee funciones para acceder directamente al

ORB core desde los clientes y desde las implementaciones de objetos

Su interfaz no depende de la interfaz de los clientes ni de las interfaces de las implementaciones de objetos

Object Adapter: Provee funciones para instanciar objetos, pasar

requerimientos y manipular referencias de objetos Provee inter-operabilidad

Page 17: CORBA: Un  Modelo de Objetos Di stribuidos

Enfoque CORBAEnfoque CORBA

Repositorio de Interfaces (Interface Repository): Provee persistencia de objetos Su información permite que un programa

encuentre un objeto cuya interfaz no conoce en tiempo de compilación

Repositorio de Implementaciones (Implementation Repository): Contiene información que permite al ORB core

localizar y activar implementaciones de objetos

Page 18: CORBA: Un  Modelo de Objetos Di stribuidos

Enfoque CORBAEnfoque CORBA

HTTP ORB

ORB ORB ORB ORB ORB ORB

MPP NOWs Oracle Illustra mSQL

CORBA BUS CORBA BUS

Page 19: CORBA: Un  Modelo de Objetos Di stribuidos

Implementaciones de ORBsImplementaciones de ORBs

Residente en el cliente y en la implementación de objeto

Basado en un Servidor

Basado en el Sistema

Basado en Librerías

Page 20: CORBA: Un  Modelo de Objetos Di stribuidos

Modelos de Interacción de CORBAModelos de Interacción de CORBA

Síncronas: RPC, protocolo at-most-once, soporta invocaciones estáticas y dinámicas

Asíncronas: semánticas de operaciones one-way y best-effort, soporta invocaciones estáticas y dinámicas

Síncrona diferida: protocolo at-most-once, sólo soporta invocaciones dinámicas

Page 21: CORBA: Un  Modelo de Objetos Di stribuidos

Estructura de un Adaptador de Estructura de un Adaptador de ObjetosObjetos

Funciones: Medio de comunicación entre implementaciones de

objetos y ORB core Generación e interpretación de referencias a objetos Invocación de métodos y seguridad de interacción Registro, activación y desactivación de objetos Demultiplexar requerimientos Pueden ser de propósito específico Administra objetos compartidos Provee Persistencia de objetos Extiende los servicios del ORB core

Page 22: CORBA: Un  Modelo de Objetos Di stribuidos

Estructura de un Adaptador de Estructura de un Adaptador de ObjetosObjetos

Interface Amethods

Object Implementation

Interface Bmethods

DynamicSkeleton

Interface ASkeleton

Interface BSkeleton

Object AdapterInterface

ORB core

Page 23: CORBA: Un  Modelo de Objetos Di stribuidos

Estructura de un Adaptador de Estructura de un Adaptador de ObjetosObjetos

Tiene tres interfaces diferentes:

Una interfaz privada para el IDL skeleton

Una interfaz privada para el ORB core

Una interfaz pública para las implementaciones de objetos

Page 24: CORBA: Un  Modelo de Objetos Di stribuidos

Estructura de un Adaptador de Estructura de un Adaptador de ObjetosObjetos

Políticas de Activación de Objetos: Shared Server: múltiples objetos

implementados en el mismo módulo Unshared Server: un nuevo objeto se inicia

cada vez que un requerimiento es ejecutado

Server-per-Method: un nuevo objeto se inicia cada vez que se invoca un método.

Persistent Server: objeto constantemente activo

Page 25: CORBA: Un  Modelo de Objetos Di stribuidos

Estructura de un Adaptador de Estructura de un Adaptador de ObjetosObjetos

Ejemplos de Adaptadores de Objetos: Basic Object Adapter (BOA): define un adaptaor

de objeto que puede ser usado por muchos ORBs con implementaciones convencionales. Usa políticas shared, unshared y per-method. Poca capacidad de persistencia.

Library Object Adapter: usado por objetos que tienen implementaciones de librerías. Maneja persistencia pero no soporta activación ni autentificación.

Page 26: CORBA: Un  Modelo de Objetos Di stribuidos

Estructura de un Adaptador de Estructura de un Adaptador de ObjetosObjetos

Ejemplos de Adaptadores de Objetos: Object-Oriented Database Adapter: usa

una conexión a una base de datos orientada por objetos. Provee persistencia dentro de la base de datos.

Portable Object Adapter (POA): usado para que objetos con diferentes ORBs puedan interactuar.

Page 27: CORBA: Un  Modelo de Objetos Di stribuidos

Estructura de un Adaptador de Estructura de un Adaptador de ObjetosObjetos

Inter-operabilidad:

Objects “A” Objects “B”

POA Special Adap

ORB core

Objects with another ORB

Gateway

Page 28: CORBA: Un  Modelo de Objetos Di stribuidos

Servicios y FacilidadesServicios y Facilidades

Objetos de aplicaciones: resuelven problemas particulares de usuarios particulares

CORBA Facilities: Servicios de nivel intermedio. Verticales y Horizontales

CORBA Services: Servicios básicos para aplicaiones

CORBA core e interoperabilidad

Page 29: CORBA: Un  Modelo de Objetos Di stribuidos

Servicios y FacilidadesServicios y Facilidades

CORBA Services: Ciclo de vida de los objetos Manejo de nombres Persistencia Notificación de eventos Concurrencia y transacciones Seguridad Servicio de tiempo

Page 30: CORBA: Un  Modelo de Objetos Di stribuidos

Servicios y FacilidadesServicios y Facilidades

CORBA Facilities: Horizontales: facilidades comunes

Interfaz con el usuario Administración de la información Administración del sistema Administración de tareas

Page 31: CORBA: Un  Modelo de Objetos Di stribuidos

Servicios y FacilidadesServicios y Facilidades

CORBA Facilities: Verticales: facilidades particulares

Financieras De telecomunicaciones Audio y video Petroquímica

Page 32: CORBA: Un  Modelo de Objetos Di stribuidos

Servicios y FacilidadesServicios y Facilidades

ORB

Trader Naming………Security Persistence

Standard Interfaces

i.e. Frameworks

Services

WorkFlow

System Management

HPcc?

…………..

Oil &

GasImageryBanking

DMSOModeling

andsimulation

Manufacturing…… ……

HorizontalFacilities

VerticalFacilities