Ir al contenido principal

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. 
 

Comentarios

Entradas más populares de este blog

install mysql 5.6 database on ubuntu 20.04

Command List: wget http://launchpadlibrarian.net/418347043/multiarch-support_2.29-0ubuntu2_amd64.deb sudo dpkg -i multiarch-support_2.29-0ubuntu2_amd64.deb sudo dpkg -i mysql-common_5.6.40-1ubuntu14.04_amd64.deb sudo dpkg -i libmysqlclient18_5.6.40-1ubuntu14.04_amd64.deb sudo dpkg -i libmysqlclient-dev_5.6.40-1ubuntu14.04_amd64.deb sudo dpkg -i libmysqld-dev_5.6.40-1ubuntu14.04_amd64.deb sudo apt install  libtinfo5 sudo apt install libncurses5 sudo apt install -f sudo dpkg -i mysql-community-client_5.6.40-1ubuntu14.04_amd64.deb sudo dpkg -i mysql-client_5.6.40-1ubuntu14.04_amd64.deb sudo dpkg -i mysql-community-server_5.6.40-1ubuntu14.04_amd64.deb sudo dpkg -i mysql-community-bench_5.6.40-1ubuntu14.04_amd64.deb sudo dpkg -i mysql-community-source_5.6.40-1ubuntu14.04_amd64.deb sudo dpkg -i mysql-server_5.6.40-1ubuntu14.04_amd64.deb sudo apt install python2 sudo apt install -f sudo dpkg -i mysql-community-test_5.6.40-1ubuntu14.04_amd64.deb sudo dpkg -i mysql-testsuite_5.6.40-1ubuntu1...

create kvm Ubuntu 20.04 with virsh by jofrantoba

wget -bqc https://mirror.freethought-internet.co.uk/ubuntu-releases/20.04/ubuntu-20.04-live-server-amd64.iso qemu-img create -f qcow2 /opt/images/oracle19c-vm.qcow2 200G sudo virt-install --name vm_ubuntu20_freenx --ram 2048 --vcpu 2 --disk path=/opt/images/ubuntu20_freenx-vm.qcow2 --os-type linux --os-variant ubuntu20.04 --network bridge=br2 --graphics vnc,listen=0.0.0.0 --console pty,target_type=serial --cdrom '/opt/iso/ubuntu-20.04-live-server-amd64.iso' Written by @jofrantoba

Configurar SQL Server 2005 para poner a la escucha el puero 1433

Como ustedes ya saben para poder conectarse a una base de datos sql a través de JDBC es necesario que el puerto 1433 se encuentre a la escucha de conexiones, muchos de nosotros hemos tenido este problema, bueno la solución es configurar a  través de la aplicacion "SQL SERVER CONFIGURATION MANAGER", ver figura numero1. fig 01 Luego hacer doble click en el item "Protocols for SQLEXPRESS", ver figura 02 fig 02 Como podemos observar en la figura 02 en la area de contenidos existe un item llamado "TCP/IP" este tiene que estar habilitado o en ingles "enabled" bueno ahora en este item hacemos un doble click para que nos aparezca una ventana como la siguiente, en la cual nos vamos a ubicar en la pestaña "IP ADRESSES", en esta pestaña se tiene que configurar los puertos. fig 03  En la figura 04 se observara que todos los item de TCP Dynamic Ports tienen al cero "0" por valor y TCP port esta ...