stringtranslate.com

Db4o

db4o (base de datos para objetos) era una base de datos de objetos de código abierto integrable para desarrolladores de Java y .NET . Fue desarrollado, autorizado comercialmente y respaldado por Actian . En octubre de 2014, Actian se negó a continuar buscando y promoviendo activamente la oferta comercial de productos db4o para nuevos clientes. [1]

Historia

El término sistema de base de datos orientado a objetos se remonta aproximadamente a 1985, aunque los primeros desarrollos de investigación en esta área comenzaron a mediados de la década de 1970. Los primeros sistemas de gestión de bases de datos de objetos comerciales se crearon a principios de los años 1990; estos agregaron el concepto de persistencia impulsada por bases de datos nativas en el campo del desarrollo orientado a objetos.

La segunda ola de crecimiento se observó en la primera década del siglo XXI, cuando aparecieron en el mercado bases de datos orientadas a objetos escritas completamente en un lenguaje orientado a objetos . db4o es uno de los ejemplos de este tipo de sistemas escritos completamente en Java y C#.

El proyecto db4o fue iniciado en 2000 por el arquitecto jefe Carl Rosenberger y se envió en 2001. Se utilizó en aplicaciones empresariales y académicas antes de su anuncio comercial en 2004 por la empresa privada recién creada Db4objects Inc.

En 2008, db4o fue comprado por la corporación Versant , que lo comercializó como software de código abierto con dos licencias: comercial y GNU General Public License (GPL).

Descripción general

db4o representa un modelo de base de datos orientado a objetos . Uno de sus principales objetivos es proporcionar una interfaz sencilla y nativa para la persistencia de lenguajes de programación orientados a objetos . El desarrollo con la base de datos db4o no requiere la creación de un modelo de datos por separado , el modelo de clase de la aplicación define la estructura de los datos. db4o intenta evitar la discrepancia entre la impedancia relacional y el objeto eliminando la capa relacional de un proyecto de software. db4o está escrito en Java y .NET y proporciona las API respectivas. Puede ejecutarse en cualquier sistema operativo que admita Java o .NET. Se ofrece bajo licencias que incluyen GPL, la licencia de compatibilidad de código abierto (dOCL) de db4o y una licencia comercial para su uso en software propietario.

Los desarrolladores que utilizan bases de datos relacionales pueden ver db40 como una herramienta complementaria. El intercambio de datos db4o-RDBMS se puede implementar utilizando db4o Replication System (dRS). dRS también se puede utilizar para la migración entre tecnologías de objetos (db4o) y relacionales ( RDBMS ).

Como base de datos integrada , db4o se puede ejecutar en el proceso de solicitud. Se distribuye como una biblioteca (jar/dll).

Características

Base de datos de una línea de código

db4o contiene una función para almacenar cualquier objeto:

contenedor de objetos . tienda ( nueva SomeClass ()); 

SomeClass aquí no requiere ninguna implementación de interfaz, anotaciones o atributos agregados. Puede ser cualquier clase de aplicación, incluidas clases de terceros contenidas en bibliotecas a las que se hace referencia.

Todos los objetos de campo (incluidas las colecciones) se guardan automáticamente. Los casos especiales se pueden manejar escribiendo controladores de tipos personalizados. [2]

integrable

db4o está diseñado para integrarse en clientes u otros componentes de software invisibles para el usuario final. Por lo tanto, db4o no necesita un mecanismo de instalación independiente, sino que viene como un único archivo de biblioteca con un tamaño de alrededor de 670 kB en la versión .NET y alrededor de 1 MB en la versión Java.

Modo cliente-servidor

La versión cliente/servidor permite que db4o se comunique entre las aplicaciones del lado cliente y del servidor. Utiliza TCP/IP para la comunicación cliente-servidor y permite configurar el número de puerto. La comunicación se implementa a través de mensajes.

Gracias a una característica denominada "Reflexión genérica", db4o puede funcionar sin implementar clases persistentes en el servidor. Sin embargo, este modo tiene limitaciones. [3]

Evolución del esquema dinámico

db4o admite la evolución automática del esquema de objetos para los cambios del modelo de clase básico (eliminación/adición de nombres de campos). Las modificaciones más complejas del modelo de clase, como el cambio de nombre de campo, el cambio de tipo de campo y el movimiento de jerarquía, no se automatizan de forma inmediata, pero se pueden automatizar escribiendo un pequeño programa de actualización de utilidades (consulte la documentación).

Esta característica puede verse como una ventaja sobre el modelo relacional, donde cualquier cambio en el esquema da como resultado una revisión y actualización del código principalmente manual para que coincida con los cambios del esquema.

Consultas nativas

En lugar de utilizar API basadas en cadenas (como SQL , OQL , JDOQL, EJB QL y SODA), las consultas nativas (NQ) permiten a los desarrolladores utilizar simplemente el propio lenguaje de programación (por ejemplo, Java, C# o VB.NET) para acceder a la base de datos y así evitar un cambio de contexto constante que reduce la productividad entre el lenguaje de programación y la API de acceso a datos. Las consultas nativas también brindan seguridad de tipos , además de eliminar la necesidad de desinfectar la inyección de código (consulte Inyección SQL ).

LINQ

La compatibilidad con LINQ está totalmente integrada en db4o para .NET versión 3.5. LINQ permite la creación de consultas orientadas a objetos de cualquier complejidad con el beneficio de la verificación en tiempo de compilación, la integración IDE Intellisense y la refactorización automatizada.

Debido a la integración con algunas bibliotecas de código abierto, db4o también permite consultas LINQ optimizadas en Compact Framework.

LINQ se puede utilizar tanto contra el almacenamiento de datos relacionales como de objetos, proporcionando así un puente entre ellos. También se puede utilizar como capa de abstracción, lo que permite cambiar fácilmente la tecnología de base de datos subyacente.

Desventajas

Los inconvenientes y dificultades que enfrentan otras Bases de Datos de Objetos también se aplican a Db4o:

Otras cosas que van en contra de ODBMS parecen ser la falta de interoperabilidad con una gran cantidad de herramientas/características que se dan por sentado con respecto a SQL, incluidas, entre otras, la conectividad estándar de la industria, herramientas de informes, herramientas OLAP y estándares de respaldo y recuperación. [ cita necesaria ] Las bases de datos de objetos también carecen de una base matemática formal, a diferencia del modelo relacional , y esto a su vez conduce a debilidades en su soporte de consultas . Sin embargo, algunos ODBMS son totalmente compatibles con SQL además del acceso de navegación, por ejemplo, Objetividad /SQL++, Matisse e InterSystems CACHÉ. El uso eficaz puede requerir compromisos para mantener ambos paradigmas sincronizados.

Las desventajas específicas de Db4o pueden incluir:

Portabilidad e implementación multiplataforma

db4o admitía JDK de Java 1.1.x hasta 6.0 y se ejecuta en Java EE y Java SE . db4o también se ejecuta con dialectos Java ME que admiten la reflexión, como CDC , Personal Profile , Symbian OS , SavaJe y Zaurus . Dependiendo de la demanda de los clientes, db4o también se ejecutará en dialectos sin reflexión, como CLDC , MIDP , BlackBerry y Palm OS .

db4o fue probado con éxito en JavaFX y Silverlight . db4o se ejecutó en Android .

db4o utiliza una característica personalizada llamada "reflector genérico" para representar información de clase, cuando las definiciones de clase no están disponibles, lo que permite usarlo en un entorno mixto Java-.NET, por ejemplo, cliente Java - servidor .NET y viceversa. [3] El reflector genérico también ayuda a la conversión del proyecto entre entornos, ya que no es necesario convertir la base de datos.

Documentación y soporte

db4o proporciona fuentes de documentación: tutorial, [5] documentación de referencia, [6] documentación de API, [7] paircasts en línea [8] y blogs. [9] La información también se puede recuperar de foros [10] y adiciones de la comunidad [11] (artículos, fuentes de documentación traducidas, proyectos de muestra, etc.).

Para usuarios comerciales, db4o sugiere una suscripción a dDN (red de desarrolladores db4o) con soporte garantizado las 24 horas y sesiones de emparejamiento en vivo con el cliente: Xtreme Connect. [12]

Administrador de objetos

Object Management Enterprise (OME) es una herramienta de exploración de bases de datos db4o, que está disponible como complemento para Eclipse y MS Visual Studio 2005/2008. OME permite la navegación de clases y objetos en la base de datos, la conexión a un servidor de base de datos, la creación de consultas mediante arrastrar y soltar y el uso de estadísticas de la base de datos.

OME proporciona algunas funciones administrativas como indexación, desfragmentación y copia de seguridad. Inicialmente, OME se sugirió a los clientes como un producto comercial sólo disponible para suscriptores de dDN. Desde la versión 7.8 de db4o, OME se incluyó en la distribución estándar de db4o y la fuente se puso a disposición del público en el repositorio db4o svn. [13]

Versiones

db4o lanza desarrollo, producción y compilaciones estables. La versión de desarrollo proporciona las funciones más nuevas y se lanza para pruebas, comentarios y evaluaciones de la comunidad. La versión de producción está diseñada para usarse en un entorno de producción e incluye características que ya han sido evaluadas y probadas a lo largo del tiempo. La versión estable está destinada a utilizarse en el envío del producto final.

db4o también ejecuta una compilación continua, que se activa con cualquier cambio nuevo confirmado en el repositorio de código SVN. Esta compilación está abierta a la comunidad y se puede utilizar para evaluar los últimos cambios y adquirir las funciones más nuevas.

El formato del nombre de compilación de db4o está destinado a proporcionar toda la información necesaria sobre la versión, el tiempo de compilación y la plataforma compatible:

Por ejemplo: db4o-7.2.30.9165-java.zip

db4o – nombre del producto, es decir, motor de base de datos db4o

7.2 – el número de versión

30 – número de iteración, es decir, un número secuencial que identifica una semana de desarrollo

9165: número de revisión SVN, correspondiente a la última confirmación que desencadenó la compilación

java: versión Java de db4o. La versión .NET se identifica con “net” para las versiones .NET 2.0 o “net35” para la versión .NET 3.5. La versión .NET incluye la versión correspondiente de Compact Framework.

El repositorio público SVN de db4o también está disponible para que los desarrolladores obtengan el código fuente y creen versiones localmente con o sin modificaciones personalizadas.

A continuación se muestra un breve resumen de las características principales de las versiones estable, de producción y de desarrollo:

Referencias

  1. ^ ab "Declaración de Actian sobre DB4O". Actiano . Consultado el 17 de marzo de 2015 .
  2. ^ "Manejadores de tipos". Archivado desde el original el 9 de julio de 2011 . Consultado el 26 de agosto de 2010 .
  3. ^ ab "API de reflexión de Db4o". Archivado desde el original el 4 de abril de 2011 . Consultado el 26 de agosto de 2010 .
  4. ^ abc "Copia archivada" (PDF) . Archivado desde el original (PDF) el 6 de julio de 2011 . Consultado el 11 de octubre de 2010 .{{cite web}}: Mantenimiento CS1: copia archivada como título ( enlace )
  5. ^ "Copia archivada". Archivado desde el original el 17 de diciembre de 2010 . Consultado el 26 de agosto de 2010 .{{cite web}}: Mantenimiento CS1: copia archivada como título ( enlace )
  6. ^ "Documentación". Archivado desde el original el 6 de noviembre de 2010 . Consultado el 26 de agosto de 2010 .
  7. ^ "Copia archivada". Archivado desde el original el 18 de marzo de 2011 . Consultado el 26 de agosto de 2010 .{{cite web}}: Mantenimiento CS1: copia archivada como título ( enlace )
  8. ^ "Transmisiones web". Archivado desde el original el 10 de octubre de 2010 . Consultado el 26 de agosto de 2010 .
  9. ^ "Blogs". Archivado desde el original el 22 de septiembre de 2010 . Consultado el 26 de agosto de 2010 .
  10. ^ "Comunidad de desarrolladores de Db4o: foros". Archivado desde el original el 12 de mayo de 2009 . Consultado el 10 de junio de 2009 .
  11. ^ "Comunidad de desarrolladores de Db4o: ProjectSpaces". Archivado desde el original el 25 de febrero de 2009 . Consultado el 10 de junio de 2009 .
  12. ^ "Información del producto". Archivado desde el original el 2 de marzo de 2009 . Consultado el 10 de junio de 2009 .
  13. ^ "Revisión 15856: /Troncal/Enterprise". Archivado desde el original el 9 de julio de 2011 . Consultado el 26 de agosto de 2010 .
  14. ^ ab "Centro de descargas: Db4o 7.4". Archivado desde el original el 8 de febrero de 2009 . Consultado el 10 de junio de 2009 .
  15. ^ "Centro de descargas: Db4o 7.10". Archivado desde el original el 31 de mayo de 2009 . Consultado el 10 de junio de 2009 .

Otras lecturas

enlaces externos