GNOME-DB/libgda
Rodrigo Moya
Proyecto GNOME (
http://www.gnome.org/)
http://www.gnome-db.org/
(page 1)
Objetivos
Libre. Licencias GPL/LGPL
Librerías LGPL
Binarios GPL
Basado en estándares reconocidos
Acceso universal a todo tipo de fuentes de datos
Servidores de BBDD: PostgreSQL, MySQL, Sybase, etc
"Almacenes" de datos: LDAP, POP3/IMAP, XML, etc
Desarrollo de aplicaciones de acceso a datos
Integración en GNOME
Bonobo, CORBA
GNOME Office (
http://www.gnome.org/gnome-office/)
(page 2)
El modelo GDA
Consiste en una serie de interfaces IDL CORBA
Especifica el "contrato" entre los clientes y los proveedores
Lo más genérico posible para conseguir la "universalidad"
Puede ser implementado, a través del IDL, para otros entornos
Arquitectura distribuida
El uso de CORBA como middleware lo permite
Aplicaciones en "n" niveles
Proveedores
Servidores CORBA que implementan los interfaces IDL
Es necesario uno por cada fuente de datos (PostgreSQL, LDAP...)
Clientes
Aplicaciones que usan los esqueletos generados a partir del IDL
(page 3)
libgda - Arquitectura
Es la implementación del modelo GDA para Linux/UNIX
Encapsula todo el acceso a los interfaces CORBA
Realizada en C, pero con "enlaces" para Python, C++
Orientada a objetos
Totalmente independiente de GNOME (y de X)
libgda-client
Encapsula la parte cliente de los interfaces CORBA
Es la que utilizan los clientes GDA
libgda-server
Encapsula la parte "servidor" de los interfaces CORBA
Facilita la creación de nuevos proveedores
(page 4)
libgda - Arquitectura
(page 5)
libgda - Funcionalidad básica
Oculta el uso de ORBit, OAF y GConf
Comandos XML
Para ejecutar comandos en un formato portable
Soportados por todos los proveedores
gda-config
Acceso a toda la configuración de GDA/libgda
(page 6)
libgda - Clientes
Usan libgda-client
Lenguajes de programación
De momento, el único estable es C
Python y C++ casi a punto
Perl, PHP y Pascal en desarrollo
Pocas dependencias
ORBit, OAF, GConf, libxml, glib
(page 7)
libgda - Proveedores
Usan libgda-server
Oculta completamente el uso de CORBA
gda-buildserver crea el esqueleto básico, que sólo hay que rellenar
Disponibles
ODBC, MySQL, PostgreSQL, Oracle, Sybase
En desarrollo
Interbase, TDS, MDB, LDAP, Mail (libcamel)
(page 8)
libgda - Herramientas
gda-export/gda-import
Para transferir datos entre fuentes de datos totalmente ajenas
Usa XML para volcar la BBDD
gda-report
Motor de generación de informes basado en CORBA
Distribuido (además de GDA)
Añadidos importantes:
Sistema de caché
Conversión a distintos formatos (PDF, HTML, etc)
Basado en XML
La estructura del informe está definida en un formato XML propio
El informe se genera también en XML, para luego ser convertido
gda-run
Para la ejecución de "scripts" SQL
(page 9)
GNOME-DB
El "front-end" de libgda para GNOME
Añade soporte de BBDD al escritorio
Basado en Bonobo
Bonobo, el sistema de componentes del proyecto GNOME
Arquitectura basada en componentes reutilizables
Desarrollo de aplicaciones GNOME de acceso a datos
Permite añadir acceso a datos en pocas líneas
Perfecta integración en GTK+/GNOME
(page 10)
GNOME-DB - Widgets
libgnomedb
Contiene multitud de "widgets" orientados a BBDD:
GnomeDbLoginDialog
GnomeDbErrorDialog
GnomeDbGrid
GnomeDbList
GnomeDbCombo
GnomeDbIconList
GnomeDbBrowser
GnomeDbDesigner
GnomeDbReport
GnomeDbDsnConfig, ...
50% integrados en Glade
http://glade.pn.org/
(page 11)
GNOME-DB - Componentes
Reutilizables
Pueden ser insertados en otras aplicaciones Bonobo
Arquitectura modular
Permite la personalización del entorno
Desarrollo de componentes a medida
Desarrollo rápido de aplicaciones basadas en GNOME-DB
(page 12)
GNOME-DB - gnomedb-fe
Front-end visual
Es un simple contenedor de componentes
Altamente configurable y extensible
Componentes disponibles
Acceso SQL
Visualizador de logs
Diseñador de BBDD
Configuración de todo el entorno
Sistema de ayuda
Exportación/importación de BBDD
(page 13)
Aplicaciones
gASQL (
http://malerba.linuxave.net)
Interfaz de administración de BBDD
Glade/libglade (
http://glade.pn.org)
GNU Enterprise (
http://www.gnue.org)
Sólo usan libgda y ¿gda-report?
Gnumeric
(page 14)
Futuro
libgda
Más proveedores (DB2, mSQL, XML, ...)
Independencia total de X Window (GLib 1.3/2.0)
"Enlaces" para otros lenguajes
gnome-db
Entorno de desarrollo basado en Glade/gnome-devtools
Integración en GNOME Office
Lenguaje de extensión: Guile, Python
(page 15)
Colaboradores
Michael Lausch, fundador
Stephan Heinze, Oracle
Vivien Malerba, PostgreSQL, Comandos XML
Nick Gorham, ODBC
Chris Wiegand, C++
Alvaro del Castillo, MDB, Rolodex
Akira Tagoh, Paquetes Debian, LDAP
Carlos Perelló Marín, gda-report
Holger Thon, TDS/Sybase
Alvaro López, Python
Reinhard Müller, Integración con GLib 1.3/2.0
Rodrigo Moya, ... todo lo demás
y traductores, usuarios
(page 16)
Más información
GNOME-DB:
http://www.gnome-db.org/
GNOME:
http://www.gnome.org/
Bonobo:
http://developer.gnome.org/
Sección "Escritorios" en BarraPunto:
http://barrapunto.com/
Lista de correo
http://mail.gnome.org/mailman/listinfo/gnome-db-list
(page 17)