CURSO PRCTICO DE CORBA EN GNU/LINUX
PRESENTACIN

Bienvenidos a este nuevo curso que se va a impartir desde Linux Actual. En l se va a mostrar como Linux se consolida como plataforma de desarrollo de aplicaciones "middleware" y como los nuevos desarrollo en Linux, como el entorno de ventanas GNOME, se disean utilizando las ltimas tecnologas.

Gracias a este curso el lector va a ir conociendo la arquitectura CORBA, dada vez ms utilizada dentro de los desarrollo software distribuidos y heterogneos (como por ejemplo Internet y el web), arquitectura que bsicamente nos va a permitir olvidarnos de toda la gestin de las comunicaciones (como por ejemplo el uso de sockets).

CORBA es una arquitectura que cada vez se est adoptando con ms fuerza dentro del mundo de las empresas y por lo tanto, cualquier profesional del sector software debe conocer y saber como utilizar.

OBJETIVOS

Los objetivos que se van a perseguir  son:

* Proporcionar al lector una visin global de la arquitectura CORBA 
* Introducir la metodologa de desarrollo CORBA 
* Presentar diferentes herramientas para el desarrollo CORBA 
* Desarrollar ejemplos introductorios basados en CORBA 
* Analizar Linux como plataforma de desarrollo CORBA
* Presentar el uso de CORBA con diferentes lenguajes: Java, C++ y C

Para lograr todas esta metas el curso se va a organizar en cuatro entregas inicialmente, pudiendo ampliar este nmero en el caso de introducirnos en conceptos avanzados de la arquitectura. Para que el lector pueda irse organizando, las entregas del curso van a cubrir los siguientes aspectos:

* Entrega 1: Introduccin al curso. Introduccin a la arquitectura CORBA  
* Entrega 2: Herramientas de desarrollo. Lenguaje OMG/IDL
* Entrega 3: Anlisis y diseo de una aplicacin CORBA 
* Entrega 4: Implementacin de una aplicacin CORBA. Conclusiones 

Con estas cuatro entregas se completara el curso bsico de CORBA que nos fijamos como objetivo primordial.

Qu hace falta para seguir el curso

Para que el lector pueda seguir sin problemas el curso, lo nico que va a necesitar es un equipo con Linux instalado. Adems ser necesario instalar una serie de herramientas para poder desarrollar utilizando CORBA. Todas estas herramientas sern proporcionadas en el CD que acompaa a la revista, y en el caso de que su licencia no permitiera su distribucin, el lector podr obtener de Internet dichas herramientas.

La idea que vamos a buscar es utilizar herramientas a ser posible con licencia GPL, de cara a que el lector pueda obtener de forma gratuita dicha herramienta, pueda consultar el cdigo fuente y pueda redistribuir sin problemas la herramienta. En el caso de que no exista dicha herramienta en al actualidad, se utilizarn herramientas cuyo uso no suponga la compra de licencias, al menos para desarrollos no comerciales como sern los que hagamos aqu en nuestro curso.

Documentacin adicional necesaria

A parte de los artculos de la revista que componen el curso, ser necesario que el lector disponga una copia del estndar que describe CORBA,  ya que es este el que al final deber consultar el lector en caso de dudas. 

Los estndares desarrollador por OMG, el grupo que ha especificado CORBA, son de una lectura sino amena, bastante clara y concisa. De hecho un objetivo ms de este curso sera que el lector pudiera leer el estndar de CORBA sin problemas, entendiendo todo lo que en l se describe.

Junto al estndar se irn recomendado libros de lectura interesante, algunos de ellos centrndose en el desarrollo de CORBA utilizando algn lenguaje en concreto (Java y C++ principalmente).

Qu debe conocer el lector

La programacin con CORBA est basada en la programacin orientada a objetos (POO). Por ello, es necesario que el lector tenga los conceptos de POO claros ya que sern utilizados de forma constante a lo largo de los ejemplos prcticos. En Internet encontramos tutoriales que pueden servir como introduccin a la POO y a los que remitir al lector.

El desarrollo con CORBA, a pesar de poderse realizar en muchos lenguajes, utiliza principalmente los lenguajes Java y C++, en especial Java. De nuevo, el lector deber tener nociones de estos lenguajes para seguir los ejemplos prcticos. De cualquier modo, al ser estos lenguajes utilizados masivamente dentro del mundo de desarrollo, se espera que la mayora de los lectores los conozcan.

Desde estas lneas quiero agradecer a la empresa Future Space [3] la oportunidad que me ha dado de utilizar unos apuntes que he realizado para los cursos de CORBA que se imparten en dicha empresa como base parcial de este curso.

Pasamos a continuacin a desarrollar esta primera entrega del curso, en la que se comenzarn a fijar las bases tericas de CORBA y las causas que han motivado el xito de esta arquitectura.

Qu es CORBA?

Esta es la primera pregunta que debemos contestar al lector. Y lo hacemos por un lado dando la definicin de la arquitectura y por otro, mediante un ejemplo que busca aclarar los conceptos introducidos.

Definicin

CORBA define la infraestructura para la arquitectura OMA (Object Management Arquitecture) de OMG, especificando los estndares necesarios para la invocacin de mtodos sobre objetos en entornos heterogneos. 

Los entornos heterogneos son aquellos en los que las arquitecturas que constituyen el entorno pueden ser sistemas Microsoft Windows, mquinas Unix de diferentes fabricantes (Linux entre otros) e inclusos sistemas como MacOS o OS/2. Y es ms, dentro de la heterogeneidad tambin se incluyen los sistemas de comunicaciones (protocolos de comunicacin como TCP/IP, IPX ...) o los lenguajes de programacin utilizados en las diferentes arquitecturas. Es el mundo informtico en su complejidad ms alta y por tanto slo una arquitectura muy flexible y potente puede cubrir todos estos aspectos.

CORBA define su propio modelo de objetos, basado en la definicin de las interfaces de los objetos mediante el lenguaje IDL. 

De esta forma se logra una abstraccin a la heterogeneidad que permite que el uso de CORBA no sea nada complejo. Como veremos, la forma de desarrollar con CORBA sigue una metodologa concreta y fcil de seguir. 

CORBA ha buscando un entorno heterogneo, el cual constituye una visin abierta del mundo de la informtica y en la cual hay cabida para diferentes sistemas y distintas filosofas, un mundo ms rico que el que se puede lograr con un solo sistema alrededor del cual funciona todas las aplicaciones.

	          Figura 1: La heterogeneidad amenazada (xbill)



CORBA ha logrado parte de su xito a la clara separacin entre la interfaz de los objetos y la implementacin de los mismos. Las interfaces se definen utilizando el lenguaje IDL, cuya principal caracterstica es su alto nivel de abstraccin, lo que le separa de cualquier entorno de desarrollo especfico. Para la implementacin de los objetos se puede utilizar cualquier lenguaje de programacin que proporcione enlaces con el lenguaje IDL. Para que un lenguaje de programacin se pueda utilizar desde CORBA, debe tener definida la forma de enlazarse con IDL.

De esta forma, y a partir de una especificacin de las interfaces en IDL, se generan unos cabos (proxies) en el lenguaje elegido que permiten el acceso a la implementacin de los objetos desde la arquitectura CORBA. 

La implementacin de CORBA es que la que esconde al usuario de la arquitectura toda la complejidad que pueda existir en un entorno concreto (como por ejemplo su sistema AIX de IBM), y permite al programador desarrollar siguiendo la metodologa genrica aprendida.

CORBA es un estndar creado con la idea de una distribucin de los sistemas basada en objetos. Con CORBA se pretende definir una arquitectura que especifique como se crean los objetos y como se accede a sus funcionalidades. El mundo de los objetos se recrea en su mxima expresin y mostrando toda la potencia de esta metodologa de desarrollo, hasta hace pocos aos demasiado costosa para los equipos disponibles.


Ejemplo de uso 

Para comenzar a explicar esta arquitectura vamos a utilizar un ejemplo, ya que as podremos obtener una idea del funcionamiento global del sistema y de la metodologa a seguir.

Para esta primera parte de explicacin de CORBA, vamos a desarrollar un ejemplo de una sencilla interfaz IDL que describe la funcionalidad que proporciona un determinado objeto.

El ejemplo que utilizaremos ser una implementacin del protocolo de eco entre un cliente y un servidor, es decir, el servidor deber responder al cliente todo lo que este le mande.

En este ejemplo se omitirn detalles que las entregas 3 y 4 del curso sern detallados en profundidad.
La interfaz IDL de nuestro ejemplo sera: 

	module CursoCORBA {
		interface echo {

			// El cliente enva un mensaje al servidor y este se lo devuelve
			string repite (in string mensaje);
		};
	};

La sintaxis del lenguaje IDL es similar a la de C++, as que el lector que conozca dicho lenguaje podr entender sin problemas este cdigo.

A partir de esta interfaz de generan de forma automtica y para un lenguaje concreto el cdigo que "enchufa" a este objeto con CORBA. Una vez enchufado el objeto a CORBA, el uso dentro del cdigo de los clientes es tan sencillo como invocar una operacin sobre un objeto.

 Nuestra labor como desarrollador consiste en implementar del lado del servidor esta interfaz, mientras que del lado del cliente lo nico que hay que hacer es utilizar los cabos (enchufes) generados para acceder a CORBA. 

De momentos no vamos a bajar a ms detalles ya que aqu solo buscamos descubrir CORBA.

Para qu CORBA?

El uso de una nueva tecnologa siempre implica unos esfuerzos de formacin de los desarrolladores, nuevas herramientas, nuevos problemas y nuevas soluciones ...

La adopcin de una nueva tecnologa debe ser llevada a cabo tras un anlisis de los costes y la ventajas que se obtiene ya que en el fondo, es una inversin que debe amortizarse en el futuro.

Vamos a intentar dar al lector los motivos por lo qu creemos que debe utilizarse CORBA.

Con el triunfo de las redes de ordenadores y su implantacin, las aplicaciones distribuidas son las nicas que pueden explotar toda la potencias de este nuevo modelo informtico.

Las aplicaciones distribuidas, aquellas que se caracterizan por su ejecucin coordinada en diferentes mquinas comunicadas, se caracterizan por una alta complejidad en todas las etapas de su desarrollo, debido a la gran cantidad de factores que influyen en su ejecucin, siendo uno de los principales la gestin de las comunicaciones.

Por ejemplo, hay que tener en cuenta que los enlaces entre las mquinas se pueden caer, y prever que hacer en esos casos, y como se detectan dichas cadas. Otro ejemplo sera que contra una mquina A se pueden conectar varias, y debe ser capaz esta mquina A de manejar todas las conexiones. Y las mquinas se tienen que poder encontrar y tienen que poder localizar servicios remotos. Podemos citar tambin que los entornos en red suelen ser heterogneos, hay que comunicar diferentes mquinas con distintas configuraciones software y hardware. 

CORBA abstrae de muchos de estos detalles y hace la distribucin de la aplicacin un proceso mucho menos complejo y costoso.

Se encarga de organizar los servicios que se pueden encontrar en la red a travs de los interfaces IDL. Es independiente de plataforma y del lenguaje de desarrollo lo que facilita el desarrollo en entornos heterogneos. Gestiona las comunicaciones, informando a clientes y servidores de cadas de los canales de comunicacin.

Facilita la integracin de software heredado. Tan slo hay que definir las interfaces IDL de este software para ponerlo disponible en CORBA.

Proporciona servicios adicionales para, por ejemplo, encontrar objetos y servicios dentro de entornos distribuidos, llegando incluso a definir entornos de trabajo CORBA para diferentes disciplinas: telecomunicacin, medicina, ... 

Dentro del libro publicado por OMG, "CORBA Fundamentals and Programming", de Jon Siegel se citan otra serie de ventajas:

* Los desarrolladores pueden utilizar para sus aplicaciones todo el hardware y software que ya existiera, gracias a la universalidad de CORBA y de su facilidad para integrar desarrollos heredados. La metodologa orientada a objetos es una de las ms adecuadas para lograr un proceso de produccin software en plazos, robusto y que cumpla con lo que se espera. Y adems, este tipos de desarrollo facilita la reutilizacin  de los componentes ya desarrollados, mejorando la productividad.
* Para los usuarios finales y las compaas. CORBA es una excelente inversin, ya que gracias a su estandarizacin,  se pueden obtener componentes CORBA de diferentes vendedores y lograr que todos trabajen entre s.

En definitiva, CORBA presenta unas ventajas enormes en el desarrollo de software distribuido y es una herramienta sin la cual sera muy complicado llevar a cabo un proyecto en unos plazos adecuados y con unos resultados robustos.

Cmo se desarrolla con CORBA?


El desarrollo con CORBA tiene una serie de pasos adicionales a los desarrollos software clsicos, y una serie de factores a tener en cuenta a la hora de desarrollar la aplicacin.
En la fase de anlisis poco cambia respecto a la metodologa que se utiliza en los proyectos software clsicos.

En la fase de diseo si que se pueden optar por unas soluciones basadas en CORBA, ya que CORBA ofrece unas tecnologas que pueden hacer factibles soluciones que de otra forma seran muy complejas de desarrollar.

En la fase de diseo debern generarse las interfaces IDL de los diferentes mdulos del sistema, algo que facilita mucho la transmisin de los resultados del diseo a los desarrolladores.
Ya en la fase de desarrollo, cada equipo de desarrollo de un mdulo recibir la interfaz IDL para que la implemente en el lenguaje que consideren ms adecuados, recibiendo tambin las interfaces IDL de los servicios que vaya a utilizar su mdulo. De nuevo, el uso de estos servicios se puede hacer en el lenguaje que seleccionen los desarrolladores, siendo para ellos transparente en que tipo de hardware y en que lenguaje se desarroll la implementacin de dichos servicios. 

Queda claro que la modularidad que proporciona CORBA facilita mucho los desarrollos paralelos y modulares, algo que en la fase de pruebas tambin se agradecer mucho, ya que ser ms sencillo detectar los fallos y dar respuesta a ellos. 

Quizs cabe aqu resaltar la escalabilidad de esta forma de desarrollo. El insertar un nuevo servicio dentro del sistema es un proceso poco traumtico. Habra que definir su IDL y ponerla disponible para aquellos servicios que ya existen que la quisieran utilizar. 

Los proyectos heredados tambin se pueden integrar en los nuevos sistema definiendo los interfaces IDL que ofrecen, y afectando de forma mnima a la nueva arquitectura CORBA que se desarrolla. Todo el software que ya existe por lo tanto es perfectamente utilizable, y su posible sustitucin se puede realizar de forma progresiva y bajo demanda. 

De la interfaz IDL a la implementacin

El proceso a seguir para implementar una interfaz IDL y poner disponible est funcionalidad en CORBA es el siguiente: 

1. Se disea el servicio y se crea la interfaz IDL 
2. Se elige la plataforma y el lenguaje de implementacin y se busca la herramienta CORBA para esa plataforma y ese lenguaje. 
3. La herramienta CORBA debe tener un compilador IDL que, a partir de la interfaz IDL, generar los cabos que permiten enganchar la implementacin de la interfaz con la arquitectura CORBA. 
4. Implementamos la interfaz IDL en el lenguaje elegido. 
5. Creamos un servidor CORBA que se encargue de registrar la nueva funcionalidad en CORBA, utilizando la implementacin realizada por nosotros y los cabos generados a partir de la interfaz IDL. 
6. Los nuevos servicios ya estn disponibles en CORBA a la espera de la llegada de clientes que los quieran utilizar. 

Esta es la metodologa a aplicar siempre, independientemente del entorno en el que nos movamos. Tanto si es Linux, como Microsoft Windows o Solaris de Sun, los desarrolladores deben de seguir este proceso. 


PROFUNDIZANDO EN CORBA

Pasamos a profundizar un poco ms en CORBA y su arquitectura. Lo que sigue es quizs la seccin ms terica del curso, pero su conocimiento es indispensable para que en los ejemplos prcticos no nos perdamos entre los detalles.

CORBA : Common Object Request Broker Arquitecture

Como ya dijimos en la definicin, CORBA es una herramienta que nos va a facilitar el desarrollo de aplicaciones distribuidas en entornos heterogneos. Y como all dijimos, son estos entornos precisamente los ms complejos a los que se tiene que enfrentar cualquier desarrollador.

Vamos a analizar como CORBA va proporcionando mecanismos y herramientas que nos permiten salvar las grandes barreras que hasta ahora existan en este tipo de entornos. 


Ya citamos que el lenguaje IDL es uno de los pilares de esta solucin, y a este lenguaje dedicaremos gran parte de la segunda entrega de este curso.

No podemos olvidar que en todos los entornos de funcionamiento ya existen aplicaciones que resuelven gran variedad de problemas, aplicaciones que tienen un gran valor para el proceso de produccin de nuestra empresa. Y OMG tuvo esto muy en cuenta, al estar formado por empresas comerciales. De esta forma y gracias de nuevo a IDL, las aplicaciones heredadas son muy fciles de integrar dentro de CORBA. Tan slo hay que desarrollar para ellas un pequeo recubrimiento IDL que exporte la funcionalidad que ofrece este sistema. Y claro, necesitamos que la aplicacin este desarrollada en un lenguaje soportado por CORBA, pero como veremos la mayora de lenguajes importantes estn soportados. Gracias a los cabos que se generan a partir de las interfaces IDL, podemos enchufar estos sistemas heredados a nuestra arquitectura CORBA.

La primera especificacin de CORBA se realiz en 1990, por lo que ya existe un largo desarrollo y una amplia experiencia adquirida. 

Con el impulso que ha significado Internet para los sistemas distribuidos, CORBA ha pasado ha ocupar un papel muy relevante dentro de la industria software y hay grandes intereses en su implantacin en Internet.

Como ya detallaremos en este curso, CORBA ha llegado a ser incluido dentro de los clientes de Netscape y se pretende que llegue a sustituir al protocolo HTTP (con IIOP) en el futuro. 

Un primer  esquema modular de CORBA se puede observar en la siguiente figura :


Ilustracin 1: Arquitectura CORBA 

Ha llegado el momento de explicar esta figura, es decir, de comenzar a detallar la arquitectura CORBA y explicar los diferentes mdulos que nos encontramos en la figura. Este mismo desarrollo se puede encontrar ampliado en el nmero 2 de Linux Actual, y dentro del estndar de CORBA.

El ORB de CORBA

En el siguiente grfico, perteneciente al estndar de CORBA, podemos observar los diferentes elementos de CORBA, entre ellos el ORB.



Ilustracin 2: Arquitectura CORBA 


El ORB es posiblemente la parte ms importante de CORBA. Es lo que se conoce como el bus de los objetos. El ORB se encarga de poner en contacto a los clientes y a los objetos de forma transparente con respecto a la distribucin. 

Sus responsabilidades principales son: 

* Mecanismos para que el cliente encuentre la Implementacin de la Interfaz 
* Preparacin de la Implementacin de la Interfaz para que pueda recibir invocaciones remotas 
* Comunicacin de los datos que hacen posible la peticin (argumentos de la funcin y parmetros de retorno) 

Cuando el cliente quiere hacer una peticin a la Implementacin de la Interfaz puede utilizar dos caminos diferentes: utilizar un cabo OMG IDL tal o utilizar la interfaz de invocacin dinmica (DII). Los detalles sobre estos mdulos se desarrollarn a continuacin. 
Invocaciones remotas desde el cliente

Para que el cliente puede realizar una invocacin sobre un objeto, debe tener una Referencia del Objeto (IOR) y conocer el tipo de objeto y la operacin que desea invocar.

El cliente puede iniciar la peticin a travs de un cabo IDL o bien construyendo la invocacin de forma dinmica utilizando el DII. 

El ORB se encarga de encontrar el cdigo de la implementacin apropiada, transmitir los parmetros y transferir el control a la Implementacin de la Interfaz a travs del esqueleto IDL, o a travs del esqueleto dinmico (DII).
 

Ilustracin 3: Invocacin del cliente 

Las invocaciones pueden producir excepciones de diversa ndole. Por ejemplo la referencia IOR al objeto puede ya no ser vlida, o la interfaz IDL del objeto ha podido cambiar.

El ORB se encargar de informarnos de todas estas posibles excepciones y nuestro cdigo deber de estar preparado para gestionar estas excepciones. 

La interfaz de invocacin dinmica

El DII (Dynamic Invocation Interface) es una interfaz que nos permite la construccin dinmica de invocaciones para un determinado objeto.

Esto nos permite, en vez de utilizar una llamada a una funcin determinada de un objeto en particular, el cliente puede especificar el objeto, la invocacin y los parmetros a pasar a la invocacin a travs de una llamada o conjunto de llamadas. 

De cara al servidor la invocacin es idntica a una que llega a travs de la interfaz esttica, pero dentro del cliente se logran una flexibilidad fundamental en arquitecturas complejas y dinmicas.

Una invocacin dinmica se compone de una referencia al objeto, una operacin y una lista de parmetros. Todos estos datos se obtiene del Repositorio de Interfaces (IR) , un nuevo elemento de la arquitectura que pasamos a detallar. 
El Repositorio de Interfaces (IR)

El Repositorio de Interfaces (IR) es un servicio que ofrece objetos persistentes que representan la informacin IDL de los interfaces disponibles en CORBA, de una forma accesible en tiempo de ejecucin (run-time). 

Esta informacin puede ser utilizada por el ORB para realizar peticiones. Y adems, el programador de aplicaciones puede utilizar esta informacin para acceder a objetos que cuya interfaz no se conoca en tiempo de compilacin, o para determinar que operaciones son vlidas en un objeto. 


La Implementacin de los Objetos

Las implementaciones de los objetos reciben las invocaciones como llamadas hacia arriba (up-call), desde el ORB hacia la Implementacin de la Interfaz. 



Ilustracin 4: Invocacin sobre objeto. 

Esta llamada puede venir de un cliente que ha utilizado los cabos IDL, o bien la DII. 

Los esqueletos de la interfaz IDL son especficos de cada interfaz y del adaptador de objetos que exista en la implementacin de CORBA. Cuando la invocacin ha sido completada, el control y los valores de retorno son devueltos al cliente. 

La Implementacin de la Interfaz puede utilizar los servicios que proporciona el adaptador de objetos e incluso los que proporciona el ORB, mientras procesa la peticin que ha recibido del cliente. 

La Implementacin de la Interfaz puede elegir un Adaptador de Objetos entre un conjunto de ellos, una decisin que estar basada en la clase de servicios que pueda requerir la Implementacin de la Interfaz. 
Inicialmente OMG propuso como adaptador de objetos el BOA, pero debido a sus limitaciones los fabricantes introducan muchas extensiones propietarias. Para solucionarlo en CORBA 2.2 se introdujo POA, el adaptador de objetos estndar dentro de CORBA 2.2.  POA es un mdulo fundamental y se intentar cubrir en profundidad en futuras entregas del curso.

El Repositorio de Implementaciones (IR)

El Repositorio de Implementaciones contiene informacin que permite al ORB localizar y activar la implementacin de los objetos.

Normalmente, la instalacin de implementaciones y el control de las polticas para la activacin y ejecucin de las implementaciones de los objetos, se realiza a travs de operaciones en el IR. Por ejemplo, los permisos por usuario para acceder e invocar los objetos son especificados aqu.

La introduccin de POA en CORBA 2.2 ha supuesto que la informacin que se almacena en el IR sea menor, ya que por ejemplo, las polticas de activacin y ejecucin se localizan ahora dentro de POA, en el propio cdigo del servidor.


El Adaptador de Objetos

El Adaptador de Objetos (OA) es el mdulo que permite a las implementaciones de los objetos acceder a servicios ofrecidos por el ORB como la generacin de referencias para los objetos.

El adaptador de objetos exporta una interfaz pblica para su uso por la implementacin del objeto, y una interfaz privada para su uso por el esqueleto del objeto, que depende de la implementacin del adaptador de objetos. 

Las funciones que debe realizar el adaptador de objeto son: 

1. Generacin e interpretacin de las referencias a objetos 
2. Invocacin de mtodos 
3. Seguridad en las interacciones 
4. Activacin y desactivacin de objetos e implementaciones 
5. Traduccin de referencias a objetos a sus correspondientes implementaciones 
6. Registro de las implementaciones 

Si bien la invocacin de los mtodos se realiza a travs del esqueleto de la interfaz, implcitamente tambin se utiliza al adaptador de objetos en funciones tales como la activacin de la implementacin o la autenticacin de la invocacin. 

El Adaptador de Objetos define la mayora de los servicios que la implementacin de los objetos pueden obtener del ORB. Segn la implementacin, el ORB podr ofrecer unos servicios u otros. Segn la clase de adaptador que se implemente, se debern ofrecer los servicios asociados a dicha clase. Debido a que las implementaciones de los objetos dependen del Adaptador de Objetos, se deben definir los menos adaptadores de objetos diferentes posibles, teniendo en cuenta que, el Adaptador de Objetos Portable (POA) que est incluido dentro del estndar de CORBA, est diseados para cubrir la funcionalidad necesaria en un amplio rango de implementaciones de objetos. 

Conclusiones

CORBA es una plataforma lo suficientemente madura como para poder ser usada a nivel comercial. 
Es una plataforma basada en un entorno slido de objetos distribuidos. Para acceder a los objetos utilizan referencias a los mismos, las cuales permiten al cliente acceder al conjunto de servicios que proporciona el objeto, a diferencia de esquemas como RPC, donde el acceso es por funcin. 

CORBA est recibiendo el apoyo de la industria, al ser un estndar abierto, y ms an desde la entrada en juego de Java, y la integracin en JDK 1.2 de una implementacin de CORBA, formando un equipo que deber enfrentarse a la plataforma propietaria ActiveX/DCOM de Microsoft. 



Prxima entrega

En la prxima entrega del curso se pasar a describir el lenguaje IDL y comenzaremos a utilizar herramientas para generar los enchufes de nuestros objetos a CORBA. Sern ya entregas mucho ms prcticas donde comenzaremos a disfrutar de la sencillez y potencia de esta arquitectura.

Se va a intentar mantener una pgina con informacin sobre el curso. Puedes consultarla en http://www.angelfire.com/al/acs y enviar tus comentarios.

Referencias
* Pgina del curso: http://www.angelfire.com/al/acs
* Estndar de OMG: http://www.omg.org
* Implementaciones gratuitas de CORBA: http://
* Future Space: http://www.futurespace.es



