PDF de programación - Introducción a CORBA - Ingeniería del Software II

Imágen de pdf Introducción a CORBA - Ingeniería del Software II

Introducción a CORBA - Ingeniería del Software IIgráfica de visualizaciones

Publicado el 21 de Enero del 2019
504 visualizaciones desde el 21 de Enero del 2019
318,5 KB
59 paginas
Creado hace 15a (11/01/2009)
Introducción a CORBA

CO

d



Ingeniería del Software II

Curso 2008/2009

Sergio Ilarri Artigas
Sergio Ilarri Artigas

[email protected]

Índice (I)

OMG, OMA:

Core Object Model
Reference Model

Conceptos básicos: stub, skeleton, ORB
El ORB
El ORB
Invocaciones entre objetos
El lenguaje de definición de interfaces (IDL)
(IDL)
ió d i t
Interoperabilidad: GIOP, IIOP

j d d fi

El l

i

f

Índice (II)

Adaptadores de objetos: POA

Modelo CORBA:
Modelo CORBA:
Servicios CORBA: servicio de nombres

Comparación con RMI

Resumen de la terminología

Motivación
Queremos computación distribuida:
Entre plataformas hardware distintas
Entre plataformas software distintas
Manteniendo código legado
Con distintos lenguajes de programación
Con distintos lenguajes de programación
Sin depender de un vendedor concreto

Sistemas de objetos distribuidos

( bjt
ti )
(objetos cooperativos)

Solución: CORBA

Common Object Request Broker

Architecture

Introducida por el Object Management

Group(OMG) en 1989

OMG

El mayor consorcio de la industria del software

Más de 800 empresas (año 2000) y organizaciones, incluyendo la

mayoría de vendedores y desarrolladores de tecnologías de objetos
distribuidas y desarrolladores de aplicaciones

) y

p

g

y

(

,

í

í

Promueve la ingeniería de software orientada a objetos

bj t

í d

t d

ft

P

l

i

i

i

Emiten especificaciones (no hay implementación de referencia)

por consenso y de forma gratuita
t it

d f

Propone una arquitectura común para el desarrollo de
apli a iones dist ib idas o ientadas a objetos basada en
aplicaciones distribuidas orientadas a objetos basada en
especificaciones de interfaces

También estandariza el lenguaje de modelado UML
También estandariza el lenguaje de modelado UML

http://www.omg.org/

OMA

Object Management Architecture
Frameworkdonde se encajan el resto

de tecnologías adoptadas por OMG
de tecnologías adoptadas por OMG

Dos partes fundamentales:

Core Object Model
ReferenceModel
Reference Model

OMA: Core Object Model (I)

Terminología común productos OMG
Objetivos:

Portabilidad
Portabilidad
Componentes que no dependen de una

implementación concreta
implementación concreta

Interoperabilidad

i

t

Sin importar

Si
lenguaje de implementación

l
la plataforma,

l t f

l
localización, o



li

OMA: Core Object Model(II)

Es un modelo de objetos clásico:

Objetos: referencia al objeto (identidad)
Operaciones: signaturas, excepciones
Operaciones: signaturas, excepciones
Interfaces
)
Tipos de datos (que no son objetos):

Ti
No especificados por el Core Object Model
Sí por CORBA

bj t

d d t

(

í

Interfaces como modo de agrupamiento de

operaciones (y como “tipos”)

Reflexión

¿Por qué es un modelode
¿ o qué es u odeode
objetosabstracto?

No lo implementa ninguna tecnología
particular (≈ clases abstractas)
)

b t

(

t

ti

l

l

Core Object Model

CORBA Object Model

OMA: Reference Model

4 Categorías de objetos

Objetos de aplicación

Objetos de dominio

Facilidades comunes

j

Objetos CORBA
programados

Áreas de aplicación:
Fabricación, finanzas, telecomunicaciones,
salud, etc.

Objetos de servicios
Objetos de servicios

Útiles para muchas aplicaciones:
i t
intercambio de datos, agentes,
internacionalización, etc.

bi d d t

t

http://www.omg.org/oma/

Para aplicaciones de cualquier dominio:
Servicio de nombres, seguridad, etc.

Reflexión

¿Están los objetos de aplicación
estandarizados?

p

j

N l
No, los define el programador

d fi

d

l

Reflexión

¿Por qué es un modelo de
¿ o qué es u odeode
referencia?

Especificación

OMGdefine los interfaces, la implementación es cosa de los vendedores
O Gde
p e e tac ó es cosa de os e dedo es

te aces, a

e os

Conceptos Básicos

Objeto CORBA:

Una entidad "virtual" que puede ser localizada por

un ORB y recibir invocaciones remotas.

Referencia a un objeto CORBA:

Estructura de datos opaca que identifica un objeto

CORBA.
Servant:

Entidad de un lenguaje de programación que

implementa uno o más objetos CORBA

CORBA

Como RMI, pero independiente del

lenguaje y más completo:

Definición de interfaces

Generación de stubsy skeletons

Definido sobre el CoreObjectModelde la OMA
Definido sobre el Core Object Modelde la OMA

Reflexión

¿Cómo podemos lograr
¿Có o pode os og a
interoperar transparentemente
con implementaciones distintas?

Interfaces

Reflexión

¿Y si las implementaciones
¿ s as
p e e tac o es
están en distintos lenguajes de
programación?

Interfaces en lenguaje neutro (IDL)

Interface Definition Language

Reflexión

¿Cómo podemos lograr
¿Có o pode os og a
la transparencia respecto a la
plataforma hardware y la red?

GIOPy CDR

General Inter-ORB Protocol-> IIOP
(formato de mensajes)

Common Data Representation

Reflexión

q

¿Por qué en RMI no necesitamos
algo del estilo del CDR?

RMI
RMI es Java-Java

J

J

Idea Básica de CORBA

Cliente

Implementación

del
cliente

Invoca un método
implementado por
el objeto remoto

Servant

Implementación

de

objeto

marshalling
marshalling

unmarshalling
unmarshalling

Servidor

Red de comunicaciones

IDL Stub

ORB

Empaqueta la invocación
Empaqueta la invocación,
envía los datos al skeleton

IDL Skeleton

Desempaqueta los datos,
Desempaqueta los datos,
invoca método en objeto,
devuelve resultados/errores

Reflexión

¿Qué hemos introducido con
¿Qué e os
t oduc do co
respecto a RMIen el dibujo
anterior?

ORB

Object Request Broker

ORB(I)

Object Request Broker (Object Bus)
Servicio distribuido que implementa las

peticiones al objeto remoto:
peticiones al objeto remoto:
Localiza al objeto remoto en la red
Comunica la petición a dicho objeto
Espera los resultados y los pasa al cliente

p

p

ó

y

Petición de
servicios a

objetos

distribuidos

Cada máquina
Cada máquina
tiene su ORB

ORB(II)

Proporciona transparencia de

localización
Nada cambia si varía la localización de
Nada cambia si varía la localización de

cliente u objeto remoto

Proporciona independenciadellenguaje
Proporciona independencia del lenguaje
Cliente y objeto CORBAremoto pueden

estar implementados en lenguajes de
programación diferentes

ORB(III)
Funciones principales:
i

t d

E

t

Enrutamiento de peticiones y respuestas

ti

t

i

También llamadas
CORBA object
handles

Transformaciones entre referencias a

objetosremotosy cadenas de caracteres

j

y

Invocación dinámica de objetos remotos
Invocación dinámica de objetos remotos

Activación/desactivación de objetos

ORB(IV)

Elementos importantes:

p

Interface Repository

(no todas las implementaciones ver siguiente transp )
(no todas las implementaciones, ver siguiente transp.)

Implementation Repository

(no todas las implementaciones, ver siguiente transp.)
(no todas las implementaciones ver siguiente transp )

Client Stubs
Server Skeletons
Portable Object Adapter(POA)
)
Dynamic Invocation /Skeleton Interface(DII /DSI)

p (

j

Repositorios

Repositorio de interfaces:
Repositorio de interfaces:

Almacena las definiciones IDL
Permite que los objetos CORBA se auto-

b

l

describan

Repositorio de implementaciones:

Permite al ORB localizar y activar (bajo
Permite al ORB localizar y activar (bajo
demanda) implementaciones de objetos

Invocaciones entre Objetos (I)

Nos centramos en la invocación estática

La usada con mayor frecuencia (también

es posible la invocación dinámica)

Similar al método convencional de

invocación en Java

Se comprueban tipos en tiempo de

compilación
compilación

Las definiciones del interfaz deben estar
disponibles cuando se compila el cliente
disponibles cuando se compila el cliente
(stub)

Invocaciones entre Objetos (II)

Un cliente necesita una referencia al
objeto remoto (IOR: Interoperable
bj
Object Reference):

(IOR I

bl

Es como el número de teléfono del objeto

j

remoto

Identifica unívocamente al servant

independientemente de su localización

p

Reflexión

¿Algún patrón de diseño
¿ gú pat ó de d se o
relacionado con los stubs?

El patrón Proxy

Reflexión

¿Algún patrón de diseño
¿ gú pat ó de d se o
relacionado con los skeletons?

El patrón Adapter
El

t ó Ad t

Reflexión

¿Y cómo conseguimos la
¿ có o co segu os a
referencia al objeto remoto?

Invocaciones entre Objetos (III)

Obtención de la referencia:

ORB.resolve_initial_references(objectNam)

Preguntando a otros objetos CORBA(como

el servicio de nombres))

Usando una stringifiedobjectreference:
Usando una stringified object reference:

object_to_string y string_to_object

en org.omg.CORBA.Object

g g

j

Puede almacenarse, por ejemplo, en disco

Invocaciones entre Objetos (IV)

Máquina del cliente

Máquina del servidor

Objeto
Cliente

S b
Stub

ORB
ORB

Objeto
Remoto

Sk l
Skeleton

ORB
ORB

IDL(I)

Interface Definition Language
Lenguaje declarativo (no sentencias)
Orientado a objetos sintaxis tipo C++
Orientado a objetos, sintaxis tipo C++
Para especificar el
  • Links de descarga
http://lwp-l.com/pdf14931

Comentarios de: Introducción a CORBA - Ingeniería del Software II (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