DataNucleus Parte 5 - Persistence API FAQ

Como complemento a los factores antes mencionados para tener en cuenta a la hora de elegir su API de persistencia, se ha hablado mucho FUD en la web acerca de JDO y JPA, en gran parte perpetrados por los vendedores de RDBMS, y ofrecemos un FAQ que corrige muchos de estos puntos para que pueda basar su decisión sobre lo que es mejor para usted.

Q: ¿Cuál fue la especificación original?

JDO fue la primera especificación java de persistencia, empezando en 1999, y la especificación JDO 1.0  se publico en  Abril 2002. Este proveía la API de persistencia y fue estandarizada como JSR012. En mayo 2006 JDO2 fue liberada. Esta proveía una actualización de la API de persistencia así como una buena definicion de ORM, estandarizada como JSR243. Mas trde en Mayo 2006 JPA1 fue liberado. Este preveía una API de persistencia, y una lmitación de ORM, concetrada solamente en DBMS, y fue estandarizada como JSR220.  

 Q: ¿Por qué se crea JPA cuando ya teníamos JDO para persistencia en JAVA?

Política. Proveedores RDBMS al parecer no le gustaba la idea de tener una tecnología que permitía a los usuarios aprovechar una sola API, y cambiar fácilmente a otro tipo de almacén de datos. Mucha presión se aplicó sobre SUN para proporcionar una especificación diferente, e incluso para tratar de decir que la JPA sustituyera a JDO. 

Q: ¿Está JDO muerto?
No. SUN donó JDO a Apache para desarrollar más la tecnología. Ha habido las siguientes modificaciones a las especificaciones JDO2;

  •  JDO2.1 agregando soporte para annotations, enums, y algunos conceptos JPA.
  • JDO2.2 añadiendo soporte para buscar grupos dinámicos, de aislamiento de transacción y de control de caché.
  • JDO3.0 añadiendo MetaData / Enhancer APIs, así como tiempo de espera de consulta y cancelar consulta, etc.
Además, JDO3.1 está en marcha, añadiendo soporte para más métodos JDOQL, así como el control de posición de una columna, el tamaño de una secuencia, etc.
Q: JPA reemplazará ha JDO ? 
Es muy difícil que suceda ya que JPA no ofrece nada para hacer frente a la persistencia de objetos Java a almacenes de datos  que no sean RDBMS (LDAP, ODBMS, XML, ODF, Excel, etc). Ni siquiera dar una definición completa de ORM, por lo que todavía no puede competir con el manejo de ORM JDO. Incluso en JPA2 (final a finales de 2009) todavía hay conceptos básicos ORM que no son manejados por JPA, todavía JDO estandariza ellos. JDO aún está en desarrollo, y mientras los usuarios requieran esta tecnología va a seguir existiendo. DataNucleus seguirá apoyando a los APIs ya que existe una necesidad en las aplicaciones de las empresas modernas, a pesar de lo que Oracle, IBM, y otros tratan de imponer a usted. 
Q: ¿Qué diferencia hay entre como se desarrolla JDO y como se desarrolla JPA?
JPA se desarrolla en privado por un "grupo de expertos". JDO se desarrolla en público por cualquier persona interesada en la tecnología. Las pruebas para verificar el cumplimiento de JPA sólo están disponibles después de firmar acuerdos de confidencialidad con SUN y este proceso puede tardar hasta 3 meses para obtener la serie de pruebas. Las pruebas para verificar el cumplimiento de JDO son de descarga gratuita y se puede ejecutar por los usuarios o desarrolladores. Esto significa que cualquiera puede comprobar si una aplicación es compatible con JDO, mientras que no es lo mismo en el caso de JPA. DataNucleus ejecuta el JDO3 y JPA1 TCKs a intervalos frecuentes y publicar los resultados en nuestra página web.
 Q: ¿Por qué yo debería usar JDO, sí JPA esta soportada por grandes organizaciones?
Por "las grandes organizaciones" que supuestamente significa que las organizaciones comerciales como Oracle, IBM, RedHat. Y tienen sus propios intereses creados en las tecnologías de RDBMS, o en la venta de servidores de aplicaciones. Usted debe tomar sus propias decisiones. Su solicitud será apoyada por usted, no por ellos. La tecnología que se utiliza debe ser la mejor para el trabajo y con la que se siente más cómodo. Si usted se siente más cómodo con JPA y ofrece todo lo que su aplicación necesita y utiliza, uselo. Del mismo modo, si JDO ofrece lo que usted necesita, entonces usa JDO. Por esta razón DataNucleus ofrece soporte para las dos especificaciones. 
 

Entradas más populares de este blog

Conexion JDBC - JAVA a travès de un archivo Properties

Registrar driver oracle en iReport 3.7.1

Google Cloud Endpoints - Parte 10