CORBA
Una arquitectura para integrar ambientes
distribuidos y heterog´eneos
Carlos A. Olarte (
[email protected])
BDII
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Contenido
1 Introducci´on
2 Arquitectura OMA
3 CORBA
4 Object Services
5 Application Object
6 Ejemplo
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Motivaci´on
Un proveedor le ofrece un componente escrito en c++ que
implementa cierta funcionalidad y solamente puede ser
ejecutado en UNIX. Sus aplicaciones Windows escritas en
Java requieren dicha funcionalidad. Como puede integrar
ambas aplicaciones?
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Introducci´on
Complejidad de los sistemas distribuidos
Los datos est´an distribuidos
Diferentes lenguajes
Diferentes formatos
La computaci´on es distribuida
Diferentes servidores (Plataforma y S.O)
Diferentes clientes (Plataforma y S.O)
Los usuarios est´an distribuidos
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
...Continuaci´on
Ventajas de los sistemas distribuidos
Se logra hacer uso de las ventajas de cada proveedor de
plataformas
Los componentes pueden ser desarrollados por diferentes
proveedores
Los componentes bien definidos pueden ser reutilizados
Desventajas:
Se pierde un poco de control
La depuraci´on puede llegar a ser muy compleja
Sin herramientas adecuadas la gesti´on y administraci´on puede
salirse de las manos
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Arquitectura OMA
Una soluci´on al problema
Propuesta por OMG (Object Managment Group)
Soluci´on al problema de los ambientes distribuidos
Intenta promover un est´andar para la comunicaci´on y
construcci´on de componentes distribuidos
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
ORB
Canal de comunicaci´on
Invocaciones est´aticas y din´amicas
Transparencia en el lenguaje
Transparencia local / remota
Sistema autodescribible
Seguridad en las transacciones
Mensajes polim´orficos
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Object Services
Aumento de la funcionalidad del ORB
Los servicios incluyen:
Collection
Query
Concurrency
Transaction
Event
Notification
Externalization
Life Cycle
Licensing
Naming
Property
Trading
Relationship
Security
Time
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Common Facilities
Son colecciones de componentes que proveen servicios para la
construcci´on de aplicaciones:
Vertical Facilities. Servicios para aplicaciones espec´ıficas:
Salud
Comercio Electr´onico
Producci´on, etc
Horizontal Facilities. Servicios de prop´osito general:
GUIs
Administraci´on de la informaci´on
Administraci´on del sistema
Manejo de tareas (WorkFlow)
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Application Objects
Objetos propios de la aplicaci´on
Deben ser componentes bien definidos
Deben poder ser reutilizables
Deben ser distribuibles
Auto describibles
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Arquitectura de un Sistema CORBA
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
ORB
Canal de Comunicaci´on
Cuenta con las caracter´ısticas del ORB de OMA
(transparencia, seguridad, transaccionalidad, etc)
CDRs (Common Data Representation)
Interoperabilidad entre ORBS gracias a los protocolos IIOP,
GIOP y ESIOP
Posibilidad de crear puentes entre ORBs y crear federaciones
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Como se definen componentes?
... por medio de IDL (Interface Definition Language):
Lenguaje puramente declarativo
Debe describir cualquier componente que “viva” en el ORB
Contrato entre el cliente y el servidor
Se puede precompilar para generar clases en un lenguaje de
alto nivel que implemente el componente
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Ejemplo
module C a l c u l o {
e x c e p t i o n D i v C e r o {} ;
t y p e d e f
i n t e r f a c e C a l c u l a d o r a {
s e q u e n c e <d o u b l e > D o u b l e A r r a y ;
d o u b l e suma ( i n d o u b l e A ,
d o u b l e
d o u b l e m u l t i p l i c a c i o n ( i n d o u b l e A ,
d o u b l e d i v i s i o n ( i n d o u b l e A ,
r e s t a ( i n d o u b l e A ,
i n d o u b l e B) ;
i n d o u b l e B) ;
i n d o u b l e B) ;
i n d o u b l e B)
r a i s e s
( D i v C e r o ) ;
d o u b l e p r o m e d i o ( i n D o u b l e A r r a y D) ;
} ;
} ;
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Del lado del Cliente
Invocaciones Est´aticas
Se generan los IDL stubs por medio de un compilador de IDL
al lenguaje de implementaci´on
Se obtienen referencias a los objetos implementados (servidor)
con ayuda del ORB
Se realizan las invocaciones como si fueran objeto locales
Invocaciones Din´amicas
Descubrir los m´etodos provistos por los objetos (Servidor)
Construir una invocaci´on (request) y realizar el llamado a
invoke()
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Del lado del servidor
Se generan los esqueletos a partir del IDL
Se implementan los componentes (servants)
Se instancian los componentes
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Referencias de los Objetos
En CORBA se utilizan IORs (Interoperable Object References)
para representar las referencias a los objetos.
Con los m´etodos object to string y string to object se puede
generar el IOR para una instancia de un objeto y generar una
referencia dado un IOR respectivamente.
Ejemplo:
IOR:000000000000001c49444c3a43616c63756c6f2f43616c6....
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Servicio de Nombres (COSNaming)
Adem´as de los m´etodos object to string y string to object es
posible obtener referencias de objetos remotos mediante el
servicio de nombres
Este servicio organiza los objetos dentro de una jerarqu´ıa de
contextos
C a l c u l a d o r a CObj = new C a l c u l a d o r a S e r v a n t ( ) ;
o r g . omg . CORBA . O b j e c t Obj = o r b . r e s o l v e i n i t i a l
NamingContext N a m i n g C o n t e x t = N a m i n g C o n t e x t H e l p e r . n a r r o w ( Obj ) ;
NameComponent C o m p o n e n t L i s t e n e r = new NameComponent ( ” C a l c u l a d o r a ” , ” ” ) ;
NameComponent p a t h L i s t e n e r [ ] = { C o m p o n e n t L i s t e n e r } ;
N a m i n g C o n t e x t . r e b i n d ( p a t h L i s t e n e r , CObj ) ;
r e f e r e n c e s ( ” N a m e S e r v i c e ” ) ;
o r b = ORB . i n i t (A , n u l l ) ;
o r g . omg . CORBA . O b j e c t
NamingContext n c r e f = N a m i n g C o n t e x t H e l p e r . n a r r o w ( r e f ) ;
NameComponent nc = new NameComponent ( ” C a l c u l a d o r a ” , ” ” ) ;
NameComponent p a t h [ ] = { nc } ;
C r e f = C a l c u l a d o r a H e l p e r . n a r r o w ( n c r e f . r e s o l v e ( p a t h ) ) ;
r e f = o r b . r e s o l v e i n i t i a l
r e f e r e n c e s ( ” N a m e S e r v i c e ” ) ;
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Application Object
Deben ser reutilizables (bien definidos)
Objetos tal cual como se ven en la realidad
Definidos por interfaces IDL
Interacci´on transparente con ayuda de los servicios CORBA
Flexibles (no atados a un sistema monol´ıtico)
Deben ser libres del contexto (utilizables en diferentes
situaciones)
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Modelo de Objetos
Bussiness Objects:
Encapsulan los datos, reglas del negocio (como reaccionar a
eventos)
Definen como cambiar su estado
Bussiness Process Objects:
Encapsulan la l´ogica del negocio a nivel m´as general (procesos)
Implementan procesos que involucran varios objetos
Realizan transacciones
Definen como deben cambiar los objetos de acuerdo al entorno
Presentation Object:
Representaci´on visual de los objetos
Comunicaci´on con los Bussiness Object para extraer y
modificar datos
Algunos no son GUI (interfaces con otros sistemas)
Carlos A. Olarte (
[email protected]) BDII
CORBA Una arquitectura para integrar ambientes distribuidos y heterog´eneos
Ejemplo
idl
module C a l c u l o {
e x c e p t i o n D i v C e r o {} ;
t y p e d e f
i n t e r f a c e C a l c u l a d o r a {
s e q u e n c e<d o u b l e > D o u b l e A r r a y ;
r e s t a ( i n d o u b l e A ,
d o u b l e suma ( i n d o u b l e A ,
d o u b l e
d o u b l e m u l t i p l i c a c i o n ( i n d o u b l e A ,
d o u b l e d i v i s i o n ( i n d o u b l e A ,
d o u b l e p r o m e d i o ( i n D o u b l e A r r a y D) ;
i n d o u b l e B) ;
i n d o u b l e B) ;
i n d o u b l e B )
i n d o u b l e B) ;
r a i s e s
( D i v C e r o ) ;
} ;
Compilaci´on del IDL
/ / J a v a
i d l j − f a l l − o l d I m p l B a s e C a l c u l a d o r a . i d l
/ / C ( O r b i t )
o r b i t−i d l −2−−s k
Comentarios de: CORBA - Una arquitectura para integrar ambientes distribuidos y heterogéneos (0)
No hay comentarios