Programación en el entorno GNOME |
---|
El método de comunicación entre las aplicaciones que se seleccione es muy importante, esta decisión puede limitar a los programadores de forma grave durante el desarrollo de las aplicaciones, esto se notará sobre todo cuando las aplicaciones que se construyan alcancen un alto nivel de complejidad.
La solución adoptada por los arquitectos del GNOME recibe el nombre de CORBA (Common Object Request Broker Arquitecture).
CORBA es una especificación del OMG (Object Management Group) que está respaldada por importantes empresas de todos los ámbitos, desde IBM a Telefónica. CORBA permite transparentemente hacer peticiones y recibir respuestas en un entorno distribuido. Es la base para construir aplicaciones distribuidas basadas en objetos y de integrar entornos heterogéneos.
Hay que diferenciar entre una especificación y su implementación el OMG solo define especificaciones, no realiza ninguna implementación de ellas, son las empresas y/o grupos de desarrolladores los que se deben ocupar de esto.
CORBA ha sido usado en GNOME desde los primeros días de su existencia, aunque es ahora, en GNOME 2.0 cuando la introducción de CORBA en el GNOME ha alcanzado su máximo uso.
En principio el GNOME usó una implementación de CORBA denominada MICO, esta implementación también era usada por el proyecto KDE, no obstante, pronto se vieron sus problemas, MICO era muy lento y pesado, así pues, no era una solución viable para un escritorio, se precisaba de una implementación rápida y ligera. La solución fue escribir ORBit, que hoy por hoy es la implementación más rápida de CORBA existente. Lamentablemente el equipo del KDE tomó la decisión de abandonar CORBA por completo e implementar un nuevo sistema de comunicación mucho más limitado que CORBA.
En el GNOME 1.2 y anteriores CORBA se usaba solo para tareas muy sencillas y concretas, por ejemplo para integrar el Panel y los "applets", el Centro de Control y los "capplets", etc. CORBA era usado en sitios puntuales y de forma poco estándar. Para cada aplicación se hacía uso de una biblioteca que encapsulaba el uso de CORBA. Para simplificar el uso de CORBA se creó libGnorba, presente hasta el GNOME 2.0, esta biblioteca hacía poco más que inicializar el sistema CORBA. Desde el principio se tuvo la intención de crear un sistema de componentes sobre el modelo de comunicación que CORBA aportaba, así comenzó el trabajo en Bongo, más tarde se deshecho todo este trabajo y se comenzó a implementar Bonobo (del cual se habla más adelante).
Con la versión 1.4 del GNOME se liberó la primera versión estable de Bonobo así como la primera aplicación que hacía un uso extensivo de este, Nautilus que era el gestor de archivos destinado a sustituir a GMC.
Una vez liberado Bonobo han comenzado a aparecer programas que hacen uso de este sistema: Evolution (el gestor de información personal desarrollado por Ximian), Gnumeric (la hoja de cálculo), Guppi3 (programa de representación de datos), gIDE (el futuro entorno de desarrollo), Gnome-DB (aplicación de acceso a bases de datos), etc.
Con esta liberación y la aparición de estas aplicaciones se comenzaron a detectar problemas importantes en Bonobo, problemas de rendimiento y el aumento del consumo de memoria que suponía su uso, todos estos problemas y otros, han sido solucionados en GNOME 2.0.
Como se puede ver Bonobo es un sistema de componentes que está alcanzando rápidamente su madurez, en GNOME 1.4 era usado en una única aplicación, pero en GNOME 2.0 se usa de forma extensiva, desde el Panel a un conjunto significativo de aplicaciones. No obstante al no ser aún una tecnología del todo madura estará expuesta a modificaciones importantes. Aunque esto no debe asustarnos, pues el interfaz de programación no variará demasiado entre unas versiones y otras.
<< CORBA | El lenguaje IDL >> |