SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
209NÓMADAS
* Ingeniero de Sistemas y profesor de la Escuela de Ingeniería de la Universidad Central,
Bogotá, coordinador del grupo de computación móvil. Candidato a Magíster en
Teleinformática de la Universidad Distrital Francisco José de Caldas (Bogotá) e inte-
grante del grupo de investigación de agentes de software móviles. Analista de sistemas
y consultor de tecnologías de punta. www.mcrisman.telecomunicaciones.com
TECNOLOGÍA CORBA
(Common Object Request
Broker Architecture)
Crisman Martínez Barrera*
A todos, gracias por sus
pensamientos positivos y
oraciones inconmensurables.
Brachel.
Este artículo pretende introducir al lector en el mundo de
una de las tecnologías de punta contemporáneas, mediante
la presentación de las características del estándar de la plata-
forma Corba, que se ha convertido en soporte a multitud de
aplicaciones abiertas y es un punto de referencia inevitable
para la intercomunicación entre componentes de software
heterogéneos. “CORBA es el proyecto de middleware más
importante y ambiciosos emprendido por la industria hasta el
momento”.
This article introduces the reader to the universe of
CORBA platform, a leading technology that has become
«support for a multitude of open applications» and the
inevitable reference point for the intercommunication
between the components of heterogeneous software.
“CORBA is the most important and ambitious middleware
project that the industry has undertaken up to now. Surf
the Web without missing calls! Get MSN Broadband”.
NÓMADAS210
Introducción
Actualmente las telecomunicaciones son uno
de los sectores más activos y con tasa más alta de
crecimiento, principalmente en los países desarro-
llados. Colombia podría dar un salto tecnológico
pasando directamente a las nuevas tecnologías, si
se implementaran soluciones de hardware y soft-
ware que permitieran la integración de sistemas más
recientes.
El software tiene un nuevo enfoque: el desarrollo
de componentes, que depende de la capacidad de in-
tegración para comunicarse entre ellos según las
interfaces estandarizadas. Las especificaciones de
estandarización son descritas por CORBA, que per-
mite el desarrollo de programas de software fácilmen-
te expansibles, reemplazables y que es el inicio para
“conectar todo lo que hay en el mundo a Internet1
”,
sin poner en riesgo la funcionalidad de los elementos
y las aplicaciones en su totalidad.
Este artículo pretende introducir al lector en el
mundo de una de las tecnologías de punta, mediante la
presentación de las características del estándar de la
plataforma CORBA, que se ha convertido en “soporte
a multitud de aplicaciones abiertas”2
y es un punto de
referencia inevitable para la intercomunicación entre
componentes de software heterogéneos. “CORBA es el
proyecto de middleware más importante y ambicioso em-
prendido por la industria hasta el momento”3
Aproximación a la Tecnología CORBA
Los seres vivos desde su aparición hasta nuestros
días buscan comunicarse con su propia especie. Los
procesos de intercambio de emociones, símbolos, ideas,
ilusiones, creencias, conquistas, temores, avisos o sue-
ños son emitidos al receptor. Cuando emisor y recep-
tor intercambian información se está utilizando un
conjunto de reglas y símbolos preestablecidos, los cua-
les gobiernan la comunicación.
Así, el ser humano modelando el comportamien-
to y los procesos involucrados en la comunicación de
los seres vivos logra que los computadores y otros dis-
positivos puedan intercambiar información en todos
los niveles.
Para lograr comunicar dos dispositivos del mismo
tipo se debe conocer el idioma (sistema operativo)
que manipulan cada uno de ellos. Si el emisor desea
intercambiar símbolos (etc.) con otro ser humano (re-
ceptor) que no habla el mismo idioma tiene dos alter-
nativas de solución:
• Que emisor o receptor aprendan el otro idioma
• Que emisor y receptor utilicen un intermedia-
rio que domine los dos idiomas
Si emisor, receptor o intermediario conocen dos
idiomas, están manipulando perfectamente las reglas
que gobiernan dicha comunicación, lo que se conoce
como estándar de comunicación para los componen-
tes de una red que deseen intercambiar información
de diferente tecnología y diferente proveedor.
CORBA es una arquitectura de comunicaciones
que soporta la construcción e integración de tecnolo-
gías de diferente fabricante independientemente del
tiempo de creación, así como pueden intercambiar
información personas que dominan diferente idioma,
sin importar que no sea usado actualmente.
En el futuro podrán comunicarse diferentes tipos
de seres vivos, así como trasladar todo a Internet.
Qué es CORBA
CORBA provee una infraestructura que permite
la comunicación de objetos independientes de plata-
forma y de implementación. Uno de los componentes
garantiza la portabilidad e interoperabilidad de obje-
tos sobre redes de comunicaciones y sistemas
heterogéneos4
.
Es una especificación definida por el OMG (Object
Management Group) para la creación y uso de objetos
remotos, cuyo objetivo es proporcionar interopera-
bilidad entre aplicaciones en un entorno distribuido y
heterogéneo. Es conocido como un tipo de “middle-
ware”, ya que no efectúa las funciones de bajo nivel
necesarias para ser considerado un sistema operativo.
A pesar de que debe funcionar sobre sistemas
operativos tradicionales, efectúa muchas de las ope-
raciones que tradicionalmente se han considerado del
211NÓMADAS
dominio de los sistemas operativos para entornos
distribuidos5
.
CORBA es “Una arquitectura de negociación de
petición de objetos comunes y que podrían ser utili-
zadas en capas superiores de la Red de Gestión de
Telecomunicaciones (RTG) influidas fuertemente por
las funciones propuestas en la industria de la infor-
mación. La gestión integrada de las redes de teleco-
municación tradicionales y las redes basadas en el IP
son fundamentales para la creación de un marco de
referencia que sirva para la gestión unificada de re-
des de conmutación de circuitos y redes de conmu-
tación de paquetes constitutivos para una misma
estructura”.6
Luis Sierra afirma que CORBA no es una tecno-
logía particular de Java. Es la arquitectura estándar
de OMG para procesamiento distribuido. El funcio-
namiento es parecido a RMI (Remote Method
Invocation)7
.
Desde mi punto de vista, CORBA es una arqui-
tectura de comunicaciones entre sistemas heterogéneos
que soporta construcción e integración de tecnolo-
gías de diferente fabricante. Puede agrupar antiguas y
nuevas aplicaciones de software. Está basada en un
gestor de peticiones a objetos comunes y permite
interoperabilidad entre aplicaciones en máquinas re-
motas en un entorno distribuido. Es una plataforma
que tiene funcionalidad de sistema abierto y que re-
quiere para cada lenguaje soportado una interfaz
estandarizada entre CORBA y la herramienta de
programación.
Para construir componentes que utilicen el entor-
no CORBA se deben seguir los siguientes pasos:
1. Definir la interfaz remota. Se define, en pri-
mer lugar, la interfaz del objeto remoto en IDL.
Dicha interfaz permitirá generar, de manera
automática, el código fuente del stub y el
skeleton así como todo el código necesario para
comunicarse con el ORB. Si sólo se im-
plementa el cliente porque el servidor ya exis-
te, se tendría que proporcionar el fichero IDL
correspondiente a la interfaz que expone el
servidor.
2. Compilar la interfaz remota. El compilador ge-
nera todo el código fuente mencionado en el
paso anterior.
3. Implementar el servidor. A partir de los esque-
letos que genera el compilador idl es sencillo
implementar el servidor. Además de los méto-
dos que implementan la interfaz remota, el có-
digo del servidor crea un mecanismo para
arrancar el ORB y esperar por la invocación de
un cliente.
4. Implementar el cliente. De una manera similar
al servidor, el cliente hace uso de los stubs ge-
nerados en el paso 2. El cliente se basa en el
stub para arrancar su ORB, encontrar el servi-
dor utilizando el servicio de nombrado, obte-
ner una referencia al objeto remoto e invocar
sus métodos.
5. Arrancar los programas. Una vez está todo
implementado, se arranca el servicio de nom-
brado, el servidor y finalmente, el cliente.
1. Arquitectura de Corba
Para que el cliente pueda realizar una invocación
sobre un objeto, se debe tener una referencia del ob-
jeto (IOR) y conocer el tipo de objeto y la operación
que desea invocar. El cliente puede iniciar la petición
a través de una conexión IDL o bien construyendo la
invocación de forma dinámica utilizando el DII. El
ORB se encarga de encontrar el código de la
implementación apropiada, transmitir los parámetros
y transferir el control a la Implementación de la Interfaz
a través del esqueleto IDL, o a través del esqueleto
dinámico (DII) como se explica más adelante.
Las invocaciones pueden producir excepciones de
diversa índole. Por ejemplo la referencia al objeto pue-
de ya no ser válida, o la interfaz IDL del objeto ha podi-
do cambiar. El ORB se encargará de informarnos de
todas estas posibles excepciones y nuestro código de-
berá estar preparado para gestionar estas excepciones.
A continuación se describe cada una de las carac-
terísticas fundamentales de la Arquitectura CORBA
(figura 1):
NÓMADAS212
1.1. Objetos CORBA
Las implementaciones de los objetos reciben las
invocaciones como llamadas hacia arriba (up-call),
desde el ORB hacia la Implementación de la interfaz.
La implementación de la interfaz puede elegir un adap-
tador de objetos entre un conjunto de ellos, una deci-
sión que estará basada en la clase de servicios que
pueda requerir dicha implementación.
Los objetos CORBA se diferencian de los objetos
de los lenguajes habituales de programación en que8 9
:
• Pueden estar localizados en cualquier lugar de
la red.
• Pueden ejecutarse en cualquier plataforma de
hardware y de sistema operativo.
• Pueden estar escritos en cualquier lenguaje.
• Pueden tener la capacidad de detectar el entor-
no, procesar información y además tienen la ca-
pacidad de comunicación.
1.2. ORB object request broker
Componente que permite que clientes y objetos
puedan comunicarse en un ambiente distribuido como
se muestra en la figura 1. Y que contempla cada una
de las interfaces que el ORB manipula (figura 2).
El bus de objetos es el intermediario entre clientes
y servidores que transmite las peticiones cliente-servi-
dor y las respuestas servidor-cliente. Se necesita un
ORB en cada máquina. El ORB soporta cuatro tipos
de interfaces de objetos:
• Object Services: Son interfaces para servicios
generales. Son usadas en cualquier programa
basado en objetos distribuidos.
• Common Facilities: Son interfaces orientadas
al usuario final y que se programan por la apli-
cación específica.
• Domain Interfaces: Son interfaces de dominio
específico para las aplicaciones.
• Application Interfaces: Este tipo de interfaz
acepta interfaces que no sean estandarizadas y
se utilizan en aplicaciones específicas.
1.3. El adaptador de objetos (OA)
El adaptador de objetos (OA) como se muestra en
la figura 1, es el módulo que permite a las implemen-
taciones de los objetos acceder a servicios ofrecidos
por el ORB, éste genera las referencias a los objetos.
El adaptador de objetos exporta una interfaz pública
para su uso por la implementación del objeto y una
interfaz privada para ser usada por el esqueleto del
objeto que depende de la implementación del adap-
tador de objetos (figura 3).
Las funciones que realiza este adaptador son:
• Generación e interpretación de las referencias
a objetos.
Figura 2. El ORB de CORBAFigura 1. Arquitectura CORBA
213NÓMADAS
• Invocación de métodos.
• Seguridad en las interacciones.
• Activación y desactivación de objetos e
implementaciones.
• Traducción de referencias a objetos con sus co-
rrespondientes implementaciones.
• Registro de las implementaciones.
Debido a que las implementaciones de los objetos
dependen del adaptador de objetos, se deben definir
la menor cantidad de adaptadores de objetos.
1.4. IDL (Interface Definition Language)
Para poder especificar los servicios que ofrecen
los objetos que forman parte de un sistema abierto y
distribuido, se necesita contar con algún lenguaje pre-
ciso, bien definido, e independiente de cualquier po-
sible representación de los datos o estructuras que él
define, así como la futura implementación de los ob-
jetos que especifica. La norma ISO/IEC 14750 (ITU-
T X.920) define dicho lenguaje, al que se conoce
como lenguaje de definición de interfaces de ODP, o
ODP IDL por su acrónimo en inglés. Su principal
objetivo es describir la signatura de los objetos que
especifica, en términos de las estructuras de datos
que se manejan y el perfil de las operaciones que
definen sus servicios. De esta forma se consigue la
ocultación necesaria para el desarrollo de aplicacio-
nes abiertas10
.
En IDL, una interfaz es una descripción de un
conjunto de posibles operaciones que un cliente
puede solicitar de un objeto. El objeto satisface una
interfaz si este puede satisfacer una solicitud de otro
objeto. La interfaz provee mecanismos compuestos
que le permiten a tal objeto soportar múltiples
interfaces.
Las operaciones que se realizan denotan servicios
que pueden ser atendidos y ejecutados para cambiar
de valor y adquirir un valor. Una operación es reco-
nocida por un identificador de operación. Una opera-
ción no es un valor.
Los tipos de datos que manipula CORBA en
IDL son:
• Tipos básicos : long, short, ushort, ulong, float,
double char, boolean, enum, string, octect, any
• Tipos compuestos: struct, union, array
• Tipos derivados: sequence <tipo>
• Tipos de objeto: interface, referencia a objetos
Un tipo es una entidad con predicados asocia-
dos y definidos con valores en un objeto. Un valor
satisface un tipo si el predicado es verdadero para
la variable.
Los tipos son usados para restringir los posibles valo-
res, parámetros, o para identificar un posible resultado.
La Interfaz IDL se compone del repositorio de
interfaces y la interoperabilidad de la Interfaz de in-
vocación dinámica:
• El repositorio de interfaces
El repositorio de interfaces (IR) es un servicio que
ofrece objetos persistentes que representan la infor-
mación IDL de las interfaces disponibles en CORBA,
de una forma accesible en tiempo de ejecución (run-
time). Esta información puede ser utilizada por el ORB
para realizar peticiones. Y además, el programador de
aplicaciones puede utilizar esta información para ac-
ceder a objetos cuya interfaz no se conoce en tiempo
de compilación, o para determinar que operaciones
son válidas en un objeto.
• La interfaz de invocación dinámica
El DII (Dynamic Invocation Interface) es una
interfaz que nos permite la construcción dinámica de
invocaciones para un determinado objeto. Ello garan-
tiza que el cliente pueda especificar el objeto, la invo-
cación y los parámetros que se pasan al servidor. La
invocación es idéntica a la que llega a través de la
interfaz estática pero que ya dentro del cliente, logra
una flexibilidad fundamental en arquitecturas com-
plejas y dinámicas.
Una invocación dinámica se compone, de una re-
ferencia al objeto, una operación y una lista de
parámetros. Todos estos datos se obtienen del Reposi-
torio de Interfaces (IR).
NÓMADAS214
1.5. Stub
Es el intermediario entre el cliente y el ORB (figu-
ra 1). El Stub recoge del cliente llamadas a métodos y
las transmite al ORB. Se requiere una clase de stub
por cada clase remota (ver detalles en la figura 3).
Además, es un componente que actúa como servi-
dor, puede estar ejecutándose en cualquier máquina
conectada a la red que recibe peticiones por parte de
clientes que pueden ser locales o remotos. Indistinta-
mente de ello, el cliente siempre tendrá la ilusión de
que la llamada se ejecuta localmente. En otras palabras
el stub logra que el programador no se ocupe de las
instrucciones de programación remotas ya que son ob-
jetos que residen en el cliente y que representan obje-
tos remotos instalados en un servidor. En él se identifica:
Host, puerto e identificador del objeto.
diferente fabricante y que puede integrar aplicaciones
de diferente tecnología (figura 4).
La infraestructura de sistemas de información an-
tiguos que poseen las compañías no son fácilmente
reemplazable, debido al costo de desarrollo y al tiem-
po de implantación, una de las mejores alternativas es
integrar antiguas tecnologías con nuevas para así ob-
tener un completo beneficio.
• Movilidad11
La migración de procesos en sistemas distribuidos
tradicionales es muy útil para mejorar el reparto de
carga de los diferentes computadores. Tiene como fin
garantizan el rendimiento global y ciertas restriccio-
nes de administración o seguridad.
• Eficiencia
- La red lleva menos mensajes.
- El servidor realiza más trabajo.
- Se evita la latencia/inestabilidad de la red en
los procesos.
• Adaptación al cliente
- El cliente puede extender la funcionalidad del
servidor.
- Fácil instalación para el usuario.
1.6. Esqueleto
Es el intermediario entre ORB y los objetos del
servidor (figura 1). Recibe llamadas del ORB y ejecu-
ta los métodos correspondientes en el servidor sobre
el objeto que corresponda. Cuando el cliente estable-
ce un objeto local (con servicio remoto), la petición
se realiza por intermedio del protocolo de comunica-
ciones IIOP a través del ORB. El servidor recibe la
petición, busca el objeto definido (compara el esque-
leto del método en el módulo esqueleto) lo ejecuta y
retorna la respuesta al cliente (figura 3).
2. Ventajas al utilizar CORBA
• Heterogeneidad
Un sistema heterogéneo consiste en conjuntos de
elementos interconectados de hardware y software de
Figura 4. Integración de aplicaciones
Figura 3. Ubicación del Stub
215NÓMADAS
como CORBA. Precisamente, éste es un campo de
investigación actual.
Las redes son indispensables para la comunicación
entre máquinas; sin embargo, pueden plantear pro-
blemas de saturación, embotellamiento, interrupción
o pérdidas de mensajes.
El posible acceso a todo el sistema por parte de los
usuarios plantea el inconveniente de la necesidad de
un sistema de seguridad adecuado y estándar, aunque
CORBA maneja la seguridad.
Conclusiones
CORBA proporciona una infraestructura y un
modelo común desde donde los requisitos expresados
en diferentes lenguajes (las diferentes metodologías de
desarrollo), pueden ser integrados para formar un sis-
tema globalmente consistente.
CORBA ofrece un conjunto de mecanismos muy
útiles a la hora de desarrollar aplicaciones distribui-
das, junto con un soporte tecnológico suficientemen-
te maduro como para construir aplicaciones robustas,
eficientes y competitivas, a la vez que integrables con
otros sistemas que cumplan estos estándares.
Los sistemas que son desarrollados con tecnolo-
gías antiguas pueden ser integrados con las nuevas a
través de CORBA. Esto es, construyendo interfaces
para que intercambien información local o remota a
través de la red para resolver problemas en forma par-
cial e incremental.
Ya, algunas tecnologías incorporan interfaces para
intercambiar información a través de CORBA, así
como desarrollos adicionales que facilitan la integra-
ción de servidores y clientes con filosofía CORBA.
Java como herramienta también integra interope-
rabilidad con CORBA siempre y cuando los objetos
estén usando un ORB compatible con las especifica-
ciones y que se apoyen con IIOP como protocolo de
comunicaciones.
Finalmente, el protocolo de comunicación IIOP,
establecido por la especificación CORBA para la
- No se requiere instalación de servidor.
- No se acuerdan los procedimientos entre los
clientes y los servidores.
- Instalación dinámica de los procedimientos del
cliente en el servidor.
• Tiempo de desempeño
Además, la ejecución asíncrona permite que los
procesos controlen la gestión y terminación de tarea y
que el cliente pueda finalizar o continuar haciendo
otras cosa en su sistema, por otro lado se reduce el
tráfico en la red y la capacidad de cómputo del clien-
te (figura 5).
• Robusto
- Reducción de la dependencia de la disponibili-
dad de la red y del cliente/servidor.
- Los procesos migrados al sistema servidor no se
ven afectados por los fallos del cliente o de la
red.
- Los procesos se ejecutan realizando tareas es-
pecíficas en lugares diferentes.
- Automatización de las tareas distribuidas.
3. Desventajas al utilizar CORBA
El problema fundamental de los sistemas de inte-
gración es el software. Aún no existe mucha expe-
riencia en el diseño, implantación y uso de software
Figura 5. Tiempos en la red utilizando CORBA
NÓMADAS216
interoperabilidad entre distintas plataformas, se ha
convertido en el protocolo por defecto utilizado en
los estándares para asegurar la interoperabilidad
entre todos los sistemas.
4. Glosario
Aplicación
Suministra uno o más programas, es una colección de objetos que
interactúan para realizar un objetivo común.
Estado
Corresponde a la situación previa y actual que determina el comporta-
miento futuro de la información.
IDL(Interface Definition Language)
Lenguaje de programación de forma independiente para especificar
objetos de interfaz.
IIOP (internet-inter-ORB Protocol)
Protocolo de comunicaciones que está diseñado para permitir la
interacción entre ORB.
Interfaz
Descripción de un conjunto de posibles usos de un objeto. Una interfaz
describe un conjunto de respuestas potenciales en el cual un objeto
puede participar. Es el dispositivo o elemento que comunica dos
entornos que operan con diferente lenguaje.
Interoperabilidad:
Habilidad para intercambiar peticiones y respuestas. Un objeto es
interoperable si los métodos ofrecen y/o evalúan servicios de otros.
ITU-T
International Telecommunication Union. Unión Internacional de Te-
lecomunicaciones, también conocida como CCITT.
Método
Código desarrollado en un lenguaje de programación orientado a ob-
jetos que puede ser ejecutado para realizar un objetivo. Componente
de una clase.
Objeto
Combinación de estados y conjunto de métodos que personifican las
características abstractas y el comportamiento de cualquier cosa. Un
objeto es una instancia de una clase.
ODP (Open Distributed Processed)
Procesamiento abierto y distribuido. Modelo de referencia que pro-
porciona normas para el desarrollo de aplicaciones abierta.
ORB(Object Request Broker)
Provee la forma para que cualquier objeto reciba peticiones y ofrezca
respuestas.
Sistema distribuido
Formado por un conjunto de elementos de computador autónomos
unidos por una red de comunicaciones y equipados con software que
soporten el intercambio de componentes.
Sistema operativo
Puede ser definido como aquella parte del sistema que da vida al
hardware. El desarrollo de los sistemas operativos va siempre detrás del
desarrollo del hardware, pero permiten mejorar el rendimiento de este
y en el peor de los casos, ocultarán todas sus particularidades.
Citas
1 Mattern Friedemann. Instituto Federal de Tecnología Suiza. Re-
vista Novotica No. 15. Sept de 2001.
2 Documento 8-S. Unión Internacional de Telecomunicaciones.
Oficina de Desarrollo de las Telecomunicaciones. 14 de noviem-
bre de 2000. Reunión preparatoria regional para la conferencia
mundial de desarrollo de las telecomunicaciones Sofía (Bulgaria),
28-30 de noviembre de 2000.
3 Castells, Pablo. Programación orientada a objetos. E.T.S. Informá-
tica, Universidad Autónoma de Madrid. 23 de mayo de 2002.
4 A Discussion of the Object Management Architecture. Copyrig-
ht 2000, Object Management Group., Inc. (OMG). Año 2000.
5 García Álvarez, Fernando. Objetos distribuidos y agentes móviles.
Universidad de Oviedo Departamento de Informática, junio 2001.
6 Documento 8-S. Unión Internacional de Telecomunicaciones
Oficina de desarrollo de las Telecomunicaciones. 14 de noviem-
bre de 2000. Reunión preparatoria regional para la Conferencia
Mundial de Desarrollo de las Telecomunicaciones Sofía (Bulgaria),
28-30 de noviembre de 2000.
7 Sierra, José Luis. Laboratorio de Programación III. Curso 2001 –
2002
9 García Álvarez, Fernando. Objetos distribuidos y agentes móviles.
Universidad de Oviedo. Departamento de Informática, junio 2001
10 Vallecillo Moreno, Antonio. RM-ODP: El modelo de referencia
de ISO para el Procesamiento abierto y distribuido. Año 2000.
11 García Álvarez, Fernando. Objetos distribuidos y agentes móviles.
Universidad de Oviedo. Departamento de Informática, junio 2001.
Bibliografía
Anónimo. Introducción a las tecnologías e integración de aplicaciones.
Agosto -1999.
H. KILOV, B. Rumpe, I. Simmonds (Eds.). Behavioral Specifications of
Business and Systems. Kluwer Academic Publishers, 1999.
MESTRAS PAVÓN, Juan. Agentes móviles, Departamento de Siste-
mas Informáticos y Programación Universidad Complutense Ma-
drid. 2000.
Normas de estandarización de sistemas e integración de componentes.
ODP-protocol Support for Computational Interactions (ISO/IEC
14752; ITU-T X.931)
ODP-Type Repository Function (ISO/IEC 14769; ITU-T X.960)
217NÓMADAS
ODP-Reference Model: Enterprise Viewpoint (ISO/IEC 15414; ITU-
T X.911)
ODP-Reference Model: Quality of Service (ISO/IEC 15935; ITU-T
X.905)
http://www.cs.wustl.edu/~schmidt/corba-products.html
Productos comerciales de CORBA.
http://adams.patriot.net/~tvalesky/freecorba.html
Productos libres de CORBA.
http://www.itu.int
Unión Internacional de Telecomunicaciones.
NÓMADAS218
AutorretratoenlosAlpesdeCarabaya.Puno,1930

Más contenido relacionado

Destacado

Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Javier Rubiano Quiroga
 
Zabbix
ZabbixZabbix
ZabbixTensor
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Germania Rodriguez
 
Patrones bridge puente
Patrones bridge puentePatrones bridge puente
Patrones bridge puenteMario Cabrera
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 

Destacado (7)

Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1
 
Zabbix
ZabbixZabbix
Zabbix
 
Corba
CorbaCorba
Corba
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3
 
Patrones bridge puente
Patrones bridge puentePatrones bridge puente
Patrones bridge puente
 
Java rmi
Java rmiJava rmi
Java rmi
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 

Similar a Arquitectura Corba

Similar a Arquitectura Corba (20)

Bd distribuidas
Bd distribuidasBd distribuidas
Bd distribuidas
 
Tecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
Tecnologías de Desarrollo de Sistemas Distribuidos basados en ObjetosTecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
Tecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
 
Corba
CorbaCorba
Corba
 
.Net Remoting
.Net Remoting.Net Remoting
.Net Remoting
 
R_QuintoNevarez
R_QuintoNevarezR_QuintoNevarez
R_QuintoNevarez
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Trabajo de programacion
Trabajo de programacionTrabajo de programacion
Trabajo de programacion
 
Ug mvillao
Ug mvillaoUg mvillao
Ug mvillao
 
CORBA
CORBACORBA
CORBA
 
Ug chaguay
Ug chaguayUg chaguay
Ug chaguay
 
Redes Yanalisis
Redes YanalisisRedes Yanalisis
Redes Yanalisis
 
Merchan y mocha
Merchan y mochaMerchan y mocha
Merchan y mocha
 
Ug chica
Ug chicaUg chica
Ug chica
 
Supremo
SupremoSupremo
Supremo
 
PresentacióN1[2][2]
PresentacióN1[2][2]PresentacióN1[2][2]
PresentacióN1[2][2]
 
PresentacióN1[2][2]
PresentacióN1[2][2]PresentacióN1[2][2]
PresentacióN1[2][2]
 
PresentacióN1[2][2]
PresentacióN1[2][2]PresentacióN1[2][2]
PresentacióN1[2][2]
 
005 teoria de-redes
005 teoria de-redes005 teoria de-redes
005 teoria de-redes
 
005 teoria de-redes
005 teoria de-redes005 teoria de-redes
005 teoria de-redes
 
Redes 8
Redes 8 Redes 8
Redes 8
 

Último

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Último (20)

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Arquitectura Corba

  • 1. 209NÓMADAS * Ingeniero de Sistemas y profesor de la Escuela de Ingeniería de la Universidad Central, Bogotá, coordinador del grupo de computación móvil. Candidato a Magíster en Teleinformática de la Universidad Distrital Francisco José de Caldas (Bogotá) e inte- grante del grupo de investigación de agentes de software móviles. Analista de sistemas y consultor de tecnologías de punta. www.mcrisman.telecomunicaciones.com TECNOLOGÍA CORBA (Common Object Request Broker Architecture) Crisman Martínez Barrera* A todos, gracias por sus pensamientos positivos y oraciones inconmensurables. Brachel. Este artículo pretende introducir al lector en el mundo de una de las tecnologías de punta contemporáneas, mediante la presentación de las características del estándar de la plata- forma Corba, que se ha convertido en soporte a multitud de aplicaciones abiertas y es un punto de referencia inevitable para la intercomunicación entre componentes de software heterogéneos. “CORBA es el proyecto de middleware más importante y ambiciosos emprendido por la industria hasta el momento”. This article introduces the reader to the universe of CORBA platform, a leading technology that has become «support for a multitude of open applications» and the inevitable reference point for the intercommunication between the components of heterogeneous software. “CORBA is the most important and ambitious middleware project that the industry has undertaken up to now. Surf the Web without missing calls! Get MSN Broadband”.
  • 2. NÓMADAS210 Introducción Actualmente las telecomunicaciones son uno de los sectores más activos y con tasa más alta de crecimiento, principalmente en los países desarro- llados. Colombia podría dar un salto tecnológico pasando directamente a las nuevas tecnologías, si se implementaran soluciones de hardware y soft- ware que permitieran la integración de sistemas más recientes. El software tiene un nuevo enfoque: el desarrollo de componentes, que depende de la capacidad de in- tegración para comunicarse entre ellos según las interfaces estandarizadas. Las especificaciones de estandarización son descritas por CORBA, que per- mite el desarrollo de programas de software fácilmen- te expansibles, reemplazables y que es el inicio para “conectar todo lo que hay en el mundo a Internet1 ”, sin poner en riesgo la funcionalidad de los elementos y las aplicaciones en su totalidad. Este artículo pretende introducir al lector en el mundo de una de las tecnologías de punta, mediante la presentación de las características del estándar de la plataforma CORBA, que se ha convertido en “soporte a multitud de aplicaciones abiertas”2 y es un punto de referencia inevitable para la intercomunicación entre componentes de software heterogéneos. “CORBA es el proyecto de middleware más importante y ambicioso em- prendido por la industria hasta el momento”3 Aproximación a la Tecnología CORBA Los seres vivos desde su aparición hasta nuestros días buscan comunicarse con su propia especie. Los procesos de intercambio de emociones, símbolos, ideas, ilusiones, creencias, conquistas, temores, avisos o sue- ños son emitidos al receptor. Cuando emisor y recep- tor intercambian información se está utilizando un conjunto de reglas y símbolos preestablecidos, los cua- les gobiernan la comunicación. Así, el ser humano modelando el comportamien- to y los procesos involucrados en la comunicación de los seres vivos logra que los computadores y otros dis- positivos puedan intercambiar información en todos los niveles. Para lograr comunicar dos dispositivos del mismo tipo se debe conocer el idioma (sistema operativo) que manipulan cada uno de ellos. Si el emisor desea intercambiar símbolos (etc.) con otro ser humano (re- ceptor) que no habla el mismo idioma tiene dos alter- nativas de solución: • Que emisor o receptor aprendan el otro idioma • Que emisor y receptor utilicen un intermedia- rio que domine los dos idiomas Si emisor, receptor o intermediario conocen dos idiomas, están manipulando perfectamente las reglas que gobiernan dicha comunicación, lo que se conoce como estándar de comunicación para los componen- tes de una red que deseen intercambiar información de diferente tecnología y diferente proveedor. CORBA es una arquitectura de comunicaciones que soporta la construcción e integración de tecnolo- gías de diferente fabricante independientemente del tiempo de creación, así como pueden intercambiar información personas que dominan diferente idioma, sin importar que no sea usado actualmente. En el futuro podrán comunicarse diferentes tipos de seres vivos, así como trasladar todo a Internet. Qué es CORBA CORBA provee una infraestructura que permite la comunicación de objetos independientes de plata- forma y de implementación. Uno de los componentes garantiza la portabilidad e interoperabilidad de obje- tos sobre redes de comunicaciones y sistemas heterogéneos4 . Es una especificación definida por el OMG (Object Management Group) para la creación y uso de objetos remotos, cuyo objetivo es proporcionar interopera- bilidad entre aplicaciones en un entorno distribuido y heterogéneo. Es conocido como un tipo de “middle- ware”, ya que no efectúa las funciones de bajo nivel necesarias para ser considerado un sistema operativo. A pesar de que debe funcionar sobre sistemas operativos tradicionales, efectúa muchas de las ope- raciones que tradicionalmente se han considerado del
  • 3. 211NÓMADAS dominio de los sistemas operativos para entornos distribuidos5 . CORBA es “Una arquitectura de negociación de petición de objetos comunes y que podrían ser utili- zadas en capas superiores de la Red de Gestión de Telecomunicaciones (RTG) influidas fuertemente por las funciones propuestas en la industria de la infor- mación. La gestión integrada de las redes de teleco- municación tradicionales y las redes basadas en el IP son fundamentales para la creación de un marco de referencia que sirva para la gestión unificada de re- des de conmutación de circuitos y redes de conmu- tación de paquetes constitutivos para una misma estructura”.6 Luis Sierra afirma que CORBA no es una tecno- logía particular de Java. Es la arquitectura estándar de OMG para procesamiento distribuido. El funcio- namiento es parecido a RMI (Remote Method Invocation)7 . Desde mi punto de vista, CORBA es una arqui- tectura de comunicaciones entre sistemas heterogéneos que soporta construcción e integración de tecnolo- gías de diferente fabricante. Puede agrupar antiguas y nuevas aplicaciones de software. Está basada en un gestor de peticiones a objetos comunes y permite interoperabilidad entre aplicaciones en máquinas re- motas en un entorno distribuido. Es una plataforma que tiene funcionalidad de sistema abierto y que re- quiere para cada lenguaje soportado una interfaz estandarizada entre CORBA y la herramienta de programación. Para construir componentes que utilicen el entor- no CORBA se deben seguir los siguientes pasos: 1. Definir la interfaz remota. Se define, en pri- mer lugar, la interfaz del objeto remoto en IDL. Dicha interfaz permitirá generar, de manera automática, el código fuente del stub y el skeleton así como todo el código necesario para comunicarse con el ORB. Si sólo se im- plementa el cliente porque el servidor ya exis- te, se tendría que proporcionar el fichero IDL correspondiente a la interfaz que expone el servidor. 2. Compilar la interfaz remota. El compilador ge- nera todo el código fuente mencionado en el paso anterior. 3. Implementar el servidor. A partir de los esque- letos que genera el compilador idl es sencillo implementar el servidor. Además de los méto- dos que implementan la interfaz remota, el có- digo del servidor crea un mecanismo para arrancar el ORB y esperar por la invocación de un cliente. 4. Implementar el cliente. De una manera similar al servidor, el cliente hace uso de los stubs ge- nerados en el paso 2. El cliente se basa en el stub para arrancar su ORB, encontrar el servi- dor utilizando el servicio de nombrado, obte- ner una referencia al objeto remoto e invocar sus métodos. 5. Arrancar los programas. Una vez está todo implementado, se arranca el servicio de nom- brado, el servidor y finalmente, el cliente. 1. Arquitectura de Corba Para que el cliente pueda realizar una invocación sobre un objeto, se debe tener una referencia del ob- jeto (IOR) y conocer el tipo de objeto y la operación que desea invocar. El cliente puede iniciar la petición a través de una conexión IDL o bien construyendo la invocación de forma dinámica utilizando el DII. El ORB se encarga de encontrar el código de la implementación apropiada, transmitir los parámetros y transferir el control a la Implementación de la Interfaz a través del esqueleto IDL, o a través del esqueleto dinámico (DII) como se explica más adelante. Las invocaciones pueden producir excepciones de diversa índole. Por ejemplo la referencia al objeto pue- de ya no ser válida, o la interfaz IDL del objeto ha podi- do cambiar. El ORB se encargará de informarnos de todas estas posibles excepciones y nuestro código de- berá estar preparado para gestionar estas excepciones. A continuación se describe cada una de las carac- terísticas fundamentales de la Arquitectura CORBA (figura 1):
  • 4. NÓMADAS212 1.1. Objetos CORBA Las implementaciones de los objetos reciben las invocaciones como llamadas hacia arriba (up-call), desde el ORB hacia la Implementación de la interfaz. La implementación de la interfaz puede elegir un adap- tador de objetos entre un conjunto de ellos, una deci- sión que estará basada en la clase de servicios que pueda requerir dicha implementación. Los objetos CORBA se diferencian de los objetos de los lenguajes habituales de programación en que8 9 : • Pueden estar localizados en cualquier lugar de la red. • Pueden ejecutarse en cualquier plataforma de hardware y de sistema operativo. • Pueden estar escritos en cualquier lenguaje. • Pueden tener la capacidad de detectar el entor- no, procesar información y además tienen la ca- pacidad de comunicación. 1.2. ORB object request broker Componente que permite que clientes y objetos puedan comunicarse en un ambiente distribuido como se muestra en la figura 1. Y que contempla cada una de las interfaces que el ORB manipula (figura 2). El bus de objetos es el intermediario entre clientes y servidores que transmite las peticiones cliente-servi- dor y las respuestas servidor-cliente. Se necesita un ORB en cada máquina. El ORB soporta cuatro tipos de interfaces de objetos: • Object Services: Son interfaces para servicios generales. Son usadas en cualquier programa basado en objetos distribuidos. • Common Facilities: Son interfaces orientadas al usuario final y que se programan por la apli- cación específica. • Domain Interfaces: Son interfaces de dominio específico para las aplicaciones. • Application Interfaces: Este tipo de interfaz acepta interfaces que no sean estandarizadas y se utilizan en aplicaciones específicas. 1.3. El adaptador de objetos (OA) El adaptador de objetos (OA) como se muestra en la figura 1, es el módulo que permite a las implemen- taciones de los objetos acceder a servicios ofrecidos por el ORB, éste genera las referencias a los objetos. El adaptador de objetos exporta una interfaz pública para su uso por la implementación del objeto y una interfaz privada para ser usada por el esqueleto del objeto que depende de la implementación del adap- tador de objetos (figura 3). Las funciones que realiza este adaptador son: • Generación e interpretación de las referencias a objetos. Figura 2. El ORB de CORBAFigura 1. Arquitectura CORBA
  • 5. 213NÓMADAS • Invocación de métodos. • Seguridad en las interacciones. • Activación y desactivación de objetos e implementaciones. • Traducción de referencias a objetos con sus co- rrespondientes implementaciones. • Registro de las implementaciones. Debido a que las implementaciones de los objetos dependen del adaptador de objetos, se deben definir la menor cantidad de adaptadores de objetos. 1.4. IDL (Interface Definition Language) Para poder especificar los servicios que ofrecen los objetos que forman parte de un sistema abierto y distribuido, se necesita contar con algún lenguaje pre- ciso, bien definido, e independiente de cualquier po- sible representación de los datos o estructuras que él define, así como la futura implementación de los ob- jetos que especifica. La norma ISO/IEC 14750 (ITU- T X.920) define dicho lenguaje, al que se conoce como lenguaje de definición de interfaces de ODP, o ODP IDL por su acrónimo en inglés. Su principal objetivo es describir la signatura de los objetos que especifica, en términos de las estructuras de datos que se manejan y el perfil de las operaciones que definen sus servicios. De esta forma se consigue la ocultación necesaria para el desarrollo de aplicacio- nes abiertas10 . En IDL, una interfaz es una descripción de un conjunto de posibles operaciones que un cliente puede solicitar de un objeto. El objeto satisface una interfaz si este puede satisfacer una solicitud de otro objeto. La interfaz provee mecanismos compuestos que le permiten a tal objeto soportar múltiples interfaces. Las operaciones que se realizan denotan servicios que pueden ser atendidos y ejecutados para cambiar de valor y adquirir un valor. Una operación es reco- nocida por un identificador de operación. Una opera- ción no es un valor. Los tipos de datos que manipula CORBA en IDL son: • Tipos básicos : long, short, ushort, ulong, float, double char, boolean, enum, string, octect, any • Tipos compuestos: struct, union, array • Tipos derivados: sequence <tipo> • Tipos de objeto: interface, referencia a objetos Un tipo es una entidad con predicados asocia- dos y definidos con valores en un objeto. Un valor satisface un tipo si el predicado es verdadero para la variable. Los tipos son usados para restringir los posibles valo- res, parámetros, o para identificar un posible resultado. La Interfaz IDL se compone del repositorio de interfaces y la interoperabilidad de la Interfaz de in- vocación dinámica: • El repositorio de interfaces El repositorio de interfaces (IR) es un servicio que ofrece objetos persistentes que representan la infor- mación IDL de las interfaces disponibles en CORBA, de una forma accesible en tiempo de ejecución (run- time). Esta información puede ser utilizada por el ORB para realizar peticiones. Y además, el programador de aplicaciones puede utilizar esta información para ac- ceder a objetos cuya interfaz no se conoce en tiempo de compilación, o para determinar que operaciones son válidas en un objeto. • La interfaz de invocación dinámica El DII (Dynamic Invocation Interface) es una interfaz que nos permite la construcción dinámica de invocaciones para un determinado objeto. Ello garan- tiza que el cliente pueda especificar el objeto, la invo- cación y los parámetros que se pasan al servidor. La invocación es idéntica a la que llega a través de la interfaz estática pero que ya dentro del cliente, logra una flexibilidad fundamental en arquitecturas com- plejas y dinámicas. Una invocación dinámica se compone, de una re- ferencia al objeto, una operación y una lista de parámetros. Todos estos datos se obtienen del Reposi- torio de Interfaces (IR).
  • 6. NÓMADAS214 1.5. Stub Es el intermediario entre el cliente y el ORB (figu- ra 1). El Stub recoge del cliente llamadas a métodos y las transmite al ORB. Se requiere una clase de stub por cada clase remota (ver detalles en la figura 3). Además, es un componente que actúa como servi- dor, puede estar ejecutándose en cualquier máquina conectada a la red que recibe peticiones por parte de clientes que pueden ser locales o remotos. Indistinta- mente de ello, el cliente siempre tendrá la ilusión de que la llamada se ejecuta localmente. En otras palabras el stub logra que el programador no se ocupe de las instrucciones de programación remotas ya que son ob- jetos que residen en el cliente y que representan obje- tos remotos instalados en un servidor. En él se identifica: Host, puerto e identificador del objeto. diferente fabricante y que puede integrar aplicaciones de diferente tecnología (figura 4). La infraestructura de sistemas de información an- tiguos que poseen las compañías no son fácilmente reemplazable, debido al costo de desarrollo y al tiem- po de implantación, una de las mejores alternativas es integrar antiguas tecnologías con nuevas para así ob- tener un completo beneficio. • Movilidad11 La migración de procesos en sistemas distribuidos tradicionales es muy útil para mejorar el reparto de carga de los diferentes computadores. Tiene como fin garantizan el rendimiento global y ciertas restriccio- nes de administración o seguridad. • Eficiencia - La red lleva menos mensajes. - El servidor realiza más trabajo. - Se evita la latencia/inestabilidad de la red en los procesos. • Adaptación al cliente - El cliente puede extender la funcionalidad del servidor. - Fácil instalación para el usuario. 1.6. Esqueleto Es el intermediario entre ORB y los objetos del servidor (figura 1). Recibe llamadas del ORB y ejecu- ta los métodos correspondientes en el servidor sobre el objeto que corresponda. Cuando el cliente estable- ce un objeto local (con servicio remoto), la petición se realiza por intermedio del protocolo de comunica- ciones IIOP a través del ORB. El servidor recibe la petición, busca el objeto definido (compara el esque- leto del método en el módulo esqueleto) lo ejecuta y retorna la respuesta al cliente (figura 3). 2. Ventajas al utilizar CORBA • Heterogeneidad Un sistema heterogéneo consiste en conjuntos de elementos interconectados de hardware y software de Figura 4. Integración de aplicaciones Figura 3. Ubicación del Stub
  • 7. 215NÓMADAS como CORBA. Precisamente, éste es un campo de investigación actual. Las redes son indispensables para la comunicación entre máquinas; sin embargo, pueden plantear pro- blemas de saturación, embotellamiento, interrupción o pérdidas de mensajes. El posible acceso a todo el sistema por parte de los usuarios plantea el inconveniente de la necesidad de un sistema de seguridad adecuado y estándar, aunque CORBA maneja la seguridad. Conclusiones CORBA proporciona una infraestructura y un modelo común desde donde los requisitos expresados en diferentes lenguajes (las diferentes metodologías de desarrollo), pueden ser integrados para formar un sis- tema globalmente consistente. CORBA ofrece un conjunto de mecanismos muy útiles a la hora de desarrollar aplicaciones distribui- das, junto con un soporte tecnológico suficientemen- te maduro como para construir aplicaciones robustas, eficientes y competitivas, a la vez que integrables con otros sistemas que cumplan estos estándares. Los sistemas que son desarrollados con tecnolo- gías antiguas pueden ser integrados con las nuevas a través de CORBA. Esto es, construyendo interfaces para que intercambien información local o remota a través de la red para resolver problemas en forma par- cial e incremental. Ya, algunas tecnologías incorporan interfaces para intercambiar información a través de CORBA, así como desarrollos adicionales que facilitan la integra- ción de servidores y clientes con filosofía CORBA. Java como herramienta también integra interope- rabilidad con CORBA siempre y cuando los objetos estén usando un ORB compatible con las especifica- ciones y que se apoyen con IIOP como protocolo de comunicaciones. Finalmente, el protocolo de comunicación IIOP, establecido por la especificación CORBA para la - No se requiere instalación de servidor. - No se acuerdan los procedimientos entre los clientes y los servidores. - Instalación dinámica de los procedimientos del cliente en el servidor. • Tiempo de desempeño Además, la ejecución asíncrona permite que los procesos controlen la gestión y terminación de tarea y que el cliente pueda finalizar o continuar haciendo otras cosa en su sistema, por otro lado se reduce el tráfico en la red y la capacidad de cómputo del clien- te (figura 5). • Robusto - Reducción de la dependencia de la disponibili- dad de la red y del cliente/servidor. - Los procesos migrados al sistema servidor no se ven afectados por los fallos del cliente o de la red. - Los procesos se ejecutan realizando tareas es- pecíficas en lugares diferentes. - Automatización de las tareas distribuidas. 3. Desventajas al utilizar CORBA El problema fundamental de los sistemas de inte- gración es el software. Aún no existe mucha expe- riencia en el diseño, implantación y uso de software Figura 5. Tiempos en la red utilizando CORBA
  • 8. NÓMADAS216 interoperabilidad entre distintas plataformas, se ha convertido en el protocolo por defecto utilizado en los estándares para asegurar la interoperabilidad entre todos los sistemas. 4. Glosario Aplicación Suministra uno o más programas, es una colección de objetos que interactúan para realizar un objetivo común. Estado Corresponde a la situación previa y actual que determina el comporta- miento futuro de la información. IDL(Interface Definition Language) Lenguaje de programación de forma independiente para especificar objetos de interfaz. IIOP (internet-inter-ORB Protocol) Protocolo de comunicaciones que está diseñado para permitir la interacción entre ORB. Interfaz Descripción de un conjunto de posibles usos de un objeto. Una interfaz describe un conjunto de respuestas potenciales en el cual un objeto puede participar. Es el dispositivo o elemento que comunica dos entornos que operan con diferente lenguaje. Interoperabilidad: Habilidad para intercambiar peticiones y respuestas. Un objeto es interoperable si los métodos ofrecen y/o evalúan servicios de otros. ITU-T International Telecommunication Union. Unión Internacional de Te- lecomunicaciones, también conocida como CCITT. Método Código desarrollado en un lenguaje de programación orientado a ob- jetos que puede ser ejecutado para realizar un objetivo. Componente de una clase. Objeto Combinación de estados y conjunto de métodos que personifican las características abstractas y el comportamiento de cualquier cosa. Un objeto es una instancia de una clase. ODP (Open Distributed Processed) Procesamiento abierto y distribuido. Modelo de referencia que pro- porciona normas para el desarrollo de aplicaciones abierta. ORB(Object Request Broker) Provee la forma para que cualquier objeto reciba peticiones y ofrezca respuestas. Sistema distribuido Formado por un conjunto de elementos de computador autónomos unidos por una red de comunicaciones y equipados con software que soporten el intercambio de componentes. Sistema operativo Puede ser definido como aquella parte del sistema que da vida al hardware. El desarrollo de los sistemas operativos va siempre detrás del desarrollo del hardware, pero permiten mejorar el rendimiento de este y en el peor de los casos, ocultarán todas sus particularidades. Citas 1 Mattern Friedemann. Instituto Federal de Tecnología Suiza. Re- vista Novotica No. 15. Sept de 2001. 2 Documento 8-S. Unión Internacional de Telecomunicaciones. Oficina de Desarrollo de las Telecomunicaciones. 14 de noviem- bre de 2000. Reunión preparatoria regional para la conferencia mundial de desarrollo de las telecomunicaciones Sofía (Bulgaria), 28-30 de noviembre de 2000. 3 Castells, Pablo. Programación orientada a objetos. E.T.S. Informá- tica, Universidad Autónoma de Madrid. 23 de mayo de 2002. 4 A Discussion of the Object Management Architecture. Copyrig- ht 2000, Object Management Group., Inc. (OMG). Año 2000. 5 García Álvarez, Fernando. Objetos distribuidos y agentes móviles. Universidad de Oviedo Departamento de Informática, junio 2001. 6 Documento 8-S. Unión Internacional de Telecomunicaciones Oficina de desarrollo de las Telecomunicaciones. 14 de noviem- bre de 2000. Reunión preparatoria regional para la Conferencia Mundial de Desarrollo de las Telecomunicaciones Sofía (Bulgaria), 28-30 de noviembre de 2000. 7 Sierra, José Luis. Laboratorio de Programación III. Curso 2001 – 2002 9 García Álvarez, Fernando. Objetos distribuidos y agentes móviles. Universidad de Oviedo. Departamento de Informática, junio 2001 10 Vallecillo Moreno, Antonio. RM-ODP: El modelo de referencia de ISO para el Procesamiento abierto y distribuido. Año 2000. 11 García Álvarez, Fernando. Objetos distribuidos y agentes móviles. Universidad de Oviedo. Departamento de Informática, junio 2001. Bibliografía Anónimo. Introducción a las tecnologías e integración de aplicaciones. Agosto -1999. H. KILOV, B. Rumpe, I. Simmonds (Eds.). Behavioral Specifications of Business and Systems. Kluwer Academic Publishers, 1999. MESTRAS PAVÓN, Juan. Agentes móviles, Departamento de Siste- mas Informáticos y Programación Universidad Complutense Ma- drid. 2000. Normas de estandarización de sistemas e integración de componentes. ODP-protocol Support for Computational Interactions (ISO/IEC 14752; ITU-T X.931) ODP-Type Repository Function (ISO/IEC 14769; ITU-T X.960)
  • 9. 217NÓMADAS ODP-Reference Model: Enterprise Viewpoint (ISO/IEC 15414; ITU- T X.911) ODP-Reference Model: Quality of Service (ISO/IEC 15935; ITU-T X.905) http://www.cs.wustl.edu/~schmidt/corba-products.html Productos comerciales de CORBA. http://adams.patriot.net/~tvalesky/freecorba.html Productos libres de CORBA. http://www.itu.int Unión Internacional de Telecomunicaciones.