Toplink

RECU-0179 (Recurso Referencia)

Descripción

Oracle TopLink, industria que conduce arquitectura Objeto-a-Relacional de la persistencia de Java, proporciona un mecanismo altamente flexible y productivo para almacenar los objetos y Enterprise Java Beans (EJBs) de Java en bases de datos relacionales y para convertir entre los objetos y los documentos de XML (JAXB) de Java. TopLink ofrece a los desarrolladores un funcionamiento excelente y ser una opción, trabajando con cualquier base de datos, cualquier servidor del uso, cualquier conjunto de herramientas y proceso del desarrollo, y cualquier arquitectura de J2EE.

Oracle TopLink es un producto probado que integra el objeto y los mundos relacionados de los datos, permitiendo que el manejo sencillo de los objetos de Java usando bases de datos relacionadas o cualquier otra fuente de datos. Trabaja con:

  • Cualquier base de datos, incluyendo fuentes de datos no-relacionadas
  • Cualquier servidor
  • Cualquier conjunto de herramientas y procesos del desarrollo

Requisitos

  • JDK 1.5
  • Tomcat Version 5.x
  • Oracle Containers for J2EE Version 10.1.3.0.0
  • TopLink JPA 

Características

Al considerar las soluciones para ayudar a la construcción de aplicaciones Java con bases de datos relacionales, es fácil concentrarse en el "mapeo objeto-relacional" y descartar la otra infraestructura que se requiere. La persistencia es más que tratar con la composición y descomposición de los objetos y datos relacionales. Entre Muchas otras consideraciones, las siguientes propiedades son también una clave para una buena persistencia

Coherencia de datos

Con el lanzamiento de Oracle TopLink 11g , Oracle ha introducido una solución que permite la normalización y la simplicidad de desarrollo de aplicaciones utilizando Java Persistence API (JPA), con la escalabilidad y potencia de procesamiento distribuido de la coherencia de datos de Oracle Grid. Los desarrolladores pueden aprovechar su inversión en la JPA y aprovechar la escalabilidad de la coherencia. Las aplicaciones bajo el estándar de la JPA interactuan directamente con su almacén de datos primarios, típicamente una base de datos relacional, pero con TopLink Grid los desarrolladores puede almacenar parte o la totalidad de su modelo de dominio en la red de coherencia de los datos.

Características de TopLink Grid:

  • Configuración sencilla mediante anotaciones que se alinean con el estándar de la JPA
  • Capacidad de elegir qué entidades se almacenan en la red frente a los que se almacenan directamente en el base de datos de respaldo
  • Soporte para las consultas que se ejecutan en la red o bien directamente en la base de datos
  • Soporte para el almacenamiento de entidades

Tratamiento de XML

XML es un formato común para el intercambio de datos. Es portátil por lo que es el formato perfecto para el intercambio de datos entre las aplicaciones que se ejecutan en distintas plataformas (es decir, Web Services).

TopLink 1.0 incluye una aplicación JAXB como parte de su objeto a la compatibilidad con XML, pero con TopLink es capaz de ir más allá de lo que puedes hacer con JAXB. TopLink incluye soporte para la asignación de sus actuales objetos Java a XML. Un editor de mapeo visual llamado TopLink Mapping Workbench que se puede utilizar para crear y personalizar estas asignaciones. TopLink proporciona a los desarrolladores la máxima flexibilidad con la capacidad para controlar su modelo de objetos cómo se asigna a un esquema XML. Hay muchas ventajas a tener control sobre su propio modelo de objetos:

  • Las clases de dominio pueden ser diseñadas específicamente para su aplicación utilizando los patrones y prácticas apropiadas.
  • Puede crear instancias de objetos de una manera que sea apropiada para su aplicación (es decir, utilizando el constructor por defecto).
  • JAXB requiere que los objetos en el modelo de contenido son una instancia mediante una clase generada como factory.
  • Se puede controlar su propio camino hacia las dependencias de la clase.

Una de las ventajas clave de TopLink es que la información del proceso se almacena en el exterior y no requiere ningún cambio en las clases de Java o de esquemas XML. Esto significa que se puede asignar sus objetos de dominio a más de un esquema o si el esquema cambia puede actualizar los metadatos de mapeo en lugar de modificar las clases de dominio.

Los objetos producidos por el compilador JAXB TopLink son esencialmente POJOs, la única diferencia es que se implementen las interfaces necesarias requeridas por la especificación JAXB. El compilador de TopLink JAXB produce meta-datos que permite a las clases generadas y las asignaciones para ser personalizadas con el TopLink Mapping Workbench.

Control de la concurrencia

Para el control de la concurrencia TopLink ofrece dos alternativas:

  • Bloqueo pesimista: Este método consiste en bloquear un registro cuando un usuario decide obtenerlo para su modificación. De esta forma si otro usuario desea realizar alguna operación sobre el registro no se le permitirá, mostrándosele el correspondiente error por pantalla. El principal inconveniente de esta técnica radica en que si un usuario bloquea un registro, otros pueden ver paralizado su trabajo.
  • Bloqueo optimista: Este método consiste en permitir que todos los usuarios accedan a los registros para modificarlos simultáneamente, ahora bien, en caso de que se intente modificar un registro que haya sido modificado por otro usuario en el tiempo transcurrido entre la lectura del registro y su grabación se le muestra un mensaje al usuario informándole del suceso.

Se recomienda el uso del bloqueo optimista, que es el recomendado por Oracle. Dentro de este tipo de bloqueo se tienen las siguientes formas de implementarlo:

  • Basado en campo "Versión": Este método consiste en añadir un campo versión de tipo entero a todas las tablas que se actualiza cada vez que se modifica un registro. Antes de hacer las modificaciones TopLink comprueba si el campo versión se ha modificado desde el momento en que se realizó la lectura; si no se ha modificado se permite realizar la modificación, en caso contrario lanza la correspondiente excepción.
  • Basado en campo "Timestamp": Este método consiste en añadir un campo de marca de tiempo de tipo date a todas las tablas que se actualiza cada vez que se modifica un registro. Antes de hacer las modificaciones TopLink comprueba si el campo de marca de tiempo se ha modificado desde el momento en que se realizó la lectura; si no se ha modificado se permite realizar la modificación, en caso contrario lanza la correspondiente excepción.

Gestión de la cache en consultas

Hay que ser flexibles con las opciones de almacenamiento en caché de forma que los datos utilizados con frecuencia puedan ser compartidos y volverse a utilizar de manera eficiente. Esto conduce a una mejor aplicación y ejecución de la gestión de memoria. Una buena solución de almacenamiento en caché se puede adaptar a las necesidades de la aplicación , y permitiendo el control sobre el volumen y la durabilidad de los objetos almacenados en caché.

Por defecto, cada vez que se ejecuta una consulta, TopLink utiliza la configuración establecida en los descriptores para realizar la operación de lectura. De este modo, TopLink puede acceder a la caché de sesión, al origen de datos o a ambos, para obtener el resultado de la consulta.

Algunas consultas siempre devuelven una misma colección de resultados cuando se ejecutan en intervalos pequeños de tiempo. Para este tipo de consultas, después de la primera ejecución ya no es necesario volver a invocar dicha consulta.

En este tipo de consultas se puede configurar TopLink para que almacene el resultado de la consulta en una caché interna.

Después de la primera ejecución de una consulta con unos determinados parámetros, en posteriores ejecuciones de la misma consulta se devolverá los resultados almacenados en la caché siempre y cuando la consulta sea invocada pasándose los mismos parámetros. Por defecto la caché es capaz de almacenar las últimas 100 consultas lanzadas con unos parámetros específicos.