Siguiente: Arquitectura de GNOME-DB Superior: GNOME-DB Anterior: GNOME-DB |
El proyecto GNOME-DB nace de la mano de Michael Lausch, con la idea de solventar los problemas que se le habían presentado al usar otras arquitecturas de acceso a bases de datos, como por ejemplo ODBC o DAO.
Uno de los principales problemas que presenta ODBC, es que no especifica el protocolo de comunicaciones entre el gestor de conexiones y los distintos 'drivers' de cada una de las bases de datos. Esto provoca una confusión bastante grande y no permite el desarrollo en paralelo y optimizado de los distintos componentes de la arquitectura. Obliga a que cada implementación para cada base de datos soportada tenga que definir su propio protocolo de comunicaciones con el servidor de base de datos en cuestión, lo que lo hace bastante tedioso.
Así, GNOME-DB, mediante el uso de CORBA como protocolo de comunicaciones para la interacción entre los clientes y las distintas bases de datos, intenta solventar este y otros muchos problemas, a la vez que intenta extender el concepto de "arquitectura para acceso a bases de datos" hasta todos los límites imaginables. De esta forma, no sólo permite a los usuarios acceder a distintas bases de datos desde una sola aplicación/interfaz, sino que además incluye una buena cantidad de librerías para que los desarrolladores puedan implementar sus propias soluciones basadas en él, consiguiendo así una transparencia total en cuanto al acceso a datos se refiere. Además, el uso de CORBA en GNOME-DB permite el desarrollo de aplicaciones distribuidas, algo muy útil en desarrollos con una alta demanda de recursos, algo que sí es posible con ODBC o DAO pero mediante el uso de soluciones propietarias.
Así mismo, el API de programación de ODBC no es ni intuitivo ni fácil de usar, lo que aleja a muchos desarrolladores de sus ventajas. En cambio, las librerías suministradas por GNOME-DB son altamente intuitivas y muy sencillas de usar. De hecho, la facilidad de uso de dichas librerías ha sido uno de los puntos que más se han tenido en cuenta a la hora de su desarrollo.
Otro de los problemas más importantes a resolver para ofrecer un acceso universal a bases de datos es el lenguaje de interacción con el servidor de bases de datos. Este lenguaje normalmente es SQL, que si bien está mundialmente aceptado como el estándar para estos menesteres, no se encuentra lo suficientemente estandarizado como para que pueda ser usado sin cambios con distintos servidores, principalmente debido a las extensiones que cada fabricante añade al estándar SQL.
GNOME-DB intenta resolver este problema mediante el uso de peticiones en un formato especial (XML) que permite el envío de comandos a distintos servidores sin necesidad de usar SQL. Por supuesto, este uso es opcional y sólo está incluido como característica extra. El desarrollador/usuario siempre puede usar SQL si le resulta más cómodo o sencillo para su tarea. Pero el uso de dichas peticiones SQL ha permitido, por ejemplo, a los desarrolladores de GNOME-DB, incluir utilidades de importación/exportación que permiten el intercambio de datos entre distintas fuentes de datos totalmente ajenas las unas de las otras.
Otro de los problemas que resuelve GNOME-DB son las diferencias entre las distintas fuentes de datos a las que puede acceder. Es decir, hay SGBDR que permiten transacciones y otros no, algunos permiten subconsultas y otros no, etc. Así, GNOME-DB ofrece una serie de funciones para que los clientes puedan consultar dinámicamente las capacidades de la base de datos que estén usando, para así actuar en consecuencia.
Este sistema se extiende hasta lo que se llama "el diccionario de datos", que es la lista de objetos (tablas, vistas, procedimientos, etc). Puesto que la manera de leer dicho diccionario es dependiente de la fuente de datos que se esté usando, GNOME-DB ofrece un sistema mediante el cual se pueden consultar dichos datos sin necesidad de conocer la manera de hacerlo para la fuente de datos que se esté usando en ese momento. Esto permite construir fácilmente diseñadores de bases de datos y demás, pues el sistema que ofrece GNOME-DB es lo suficientemente flexible como para ser válido para cualquier tipo de base de datos.