Bonobo

Tabla de contenidos

¿Qué es Bonobo?
CORBA y Bonobo
Implementación de interfaces CORBA con Bonobo
Factorías de componentes
Controles Bonobo
Documentos compuestos
Contenedores (BonoboWindow)
Monikers

Dentro del papel estelar de CORBA en la arquitectura de GNOME, uno de los desarrollos más interesantes que se han hecho dentro del proyecto GNOME es, sin duda, Bonobo, el sistema de componentes.

Bonobo significa, para los desarrolladores originales del proyecto GNOME, la consecución del objetivo inicial del proyecto, que era crear un sistema de componentes para sistemas UNIX/Linux, de forma que una tecnología disponible desde hacía tiempo para otros sistemas, lo estuviera tambien para todos los usuarios de estos sistemas. De hecho, GNOME, la palabra, es un acrónimo, que significa GNU Network Object Model Environment (Entorno de Modelo de Objetos en Red, más o menos), lo cual demuestra claramente qué esa intención de crear un sistema de componentes (modelo de objetos) era totalmente cierta.

Bonobo, además, significa el tener disponible, para todas las aplicaciones GNOME, una arquitectura para el desarrollo de aplicaciones realmente potente, que permite llevar, a nuestros queridos sistemas *IX, el tipo de aplicaciones modernas que pueden verse en otros sistemas operativos.

Como anécdota contar que, siguiendo la nomenclatura basada en nombres de primates que se usa para nombrar algunas partes del proyecto GNOME (GNOME mismamente), el primer nombre que recibió el sistema de componentes de GNOME fue Baboon, que es el nombre, (en inglés) de una especie de monos. Pero luego se pensó que este nombre no era del todo correcto, y se cambió a Bonobo, que es el nombre de otra especie de chimpancés (que, por cierto, está en peligro de extinción) que practican el sexo varias veces al día, y por tanto, su nombre se ajusta más al de un sistema de componentes, en el que unos componentes se "incrustan" dentro de otros.

¿Qué es Bonobo?

Como hemos dicho antes, Bonobo es un sistema de componentes. Y, ¿qué es un sistema de componentes? La respuesta fácil es: un sistema de componentes es una arquitectura que permite la comunicación, tanto visual como no visual, entre aplicaciones, así como la reutilización de software. Esto significa que, mediante el uso de Bonobo, podemos, por ejemplo, insertar en una aplicación la parte visual de otra aplicación, o acceder directamente a las interioridades de otra aplicación, y hacerla funcionar como si se tratara de una extensión de la primera aplicación, o más aún, podemos insertar objetos de otra aplicación en nuestros documentos, algo que se conoce como "documentos compuestos"". Esto es algo que los usuarios de MS Windows conocen perfectamente, pues es lo que hacen cuando insertan, por ejemplo, una hoja de cálculo realizada con el MS Excel en un documento creado con MS Word.

Este sistema abre un campo muy amplio de posibilidades, sobre todo a la hora de desarrollar aplicaciones con interfaz gráfico, pues permite, desde el punto de vista de los desarrolladores, la reutilización de software en el más amplio sentido de la palabra, y, desde el punto de vista de los usuarios, una integración total de todas las aplicaciones que componen el escritorio. Además, permite el desarrollo de aplicaciones a gran escala, pues se pueden reutilizar partes ya existentes, pudiendo los desarrolladores centrarse en añadir nuevas funcionalidades a componentes personalizados.