Visión general

Después de instalar InfoSphere Optim pureQuery Runtime, puede desplegar aplicaciones Java™ de pureQuery o habilitadas para pureQuery en entornos de producción. También puede desarrollar aplicaciones DB2 CLI y .NET de Microsoft®.

Características para aplicaciones Java

Para aplicaciones que utilizan la API de pureQuery, InfoSphere Optim pureQuery ofrece estas características:

Proporciona una única API que se puede utilizar para ejecutar sentencias SQL en bases de datos, en colecciones en memoria y en objetos de iterador.

La plataforma Java proporciona multitud de estructuras de datos y API para procesar colecciones en memoria, así como datos externos de distintos orígenes. Cada una de estas características es perfectamente adecuada para resolver un tipo específico de problema. pureQuery también tiene un conjunto de interfaces exclusivas para recuperar y modificar los datos dentro de las colecciones. Por ejemplo, pureQuery proporciona una API para matrices, listas, mapas e iteradores de Java. Cada API consulta y, en algunos casos actualiza, los datos de la colección.

De forma similar, la API JDBC proporciona un medio para utilizar SQL para acceder a objetos relacionales y otros objetos externos de DataSource JDBC. Sin embargo, pureQuery permite que una aplicación acceda a todos estos orígenes de datos, individualmente o en combinación, con un único lenguaje de consulta conocido.

Proporciona un modelo de programación simple para el acceso a datos
pureQuery se ejecuta como una capa fina en la parte superior de JDBC y simplifica las consultas, las actualizaciones, las llamadas a procedimientos almacenados y otras tareas asociadas con el acceso a bases de datos. pureQuery se ejecuta en Java 2 Platform, Standard Edition 5.0 (J2SE 5.0) y en Java Platform, Standard Edition 6 (Java SE 6).
Correlaciona automáticamente datos SQL con tipos de retorno sin apenas intervención del desarrollador, pero permite suministrar código personalizado para correlaciones complejas
pureQuery proporciona correlación automática entre los resultados de la consulta SQL y los objetos devueltos para muchos patrones de objetos Java. Para correlaciones complejas entre los resultados de la consulta y los objetos Java, existe una interfaz de salida que se puede conectar permite correlaciones personalizadas.

Puede crear y anotar beans que devuelven los resultados de consultas SQL que contienen uniones de tabla. Los resultados de la consulta se devuelven como un conjunto de beans que contienen instancias de otros beans. La jerarquía de estos beans refleja las relaciones de uno a uno o de uno a muchos de los resultados de la consulta. Por ejemplo, una consulta contiene una unión entre una tabla de empleados y una tabla de departamentos. La consulta devuelve los empleados que están asignados a diferentes departamentos. Los resultados se devuelven como un conjunto de beans de departamentos, donde cada instancia del bean de departamento representa un departamento. Cada bean de departamento contiene una lista de beans de empleados. Cada instancia de un bean de empleado contiene información de empleado.

Da soporte al desarrollo de aplicaciones SQL mediante métodos anotados y métodos incorporados
Los métodos anotados están soportados para que pueda definir sus propios métodos en interfaces personalizadas. Se pueden crear métodos con definiciones anotadas con sentencias SQL. Se pueden desarrollar aplicaciones conformes al patrón DAO (Data Access Object) creando objetos de acceso a datos con métodos anotados.

Los métodos incorporados están soportados para poder sacar provecho de los métodos definidos en la interfaz Data suministrada por IBM. Los métodos incorporados son útiles para las aplicaciones que necesitan que se construyan sentencias SQL durante el tiempo de ejecución de la aplicación. Con los métodos incorporados, las sentencias SQL se pasan como parámetros en invocaciones de método, lo que es similar al enfoque de JDBC.

Se proporciona soporte para la gestión de sentencias SQL que se ejecutan estáticamente. Puede anotar el código para agrupar las sentencias SQL que se utilizan en una interfaz. Puede controlar el proceso de enlace para los grupos. Puede controlar las opciones de enlace que utiliza el programa de utilidad pureQuery StaticBinder. También puede controlar los nombres que se generan para los paquetes que contienen sentencias SQL.

Soporta SQL tanto estático como dinámico en tiempo de ejecución
El código de pureQuery puede utilizar SQL dinámico con un controlador JDBC estándar tanto para el SQL incluido como el SQL ad hoc no conocido hasta el tiempo de ejecución.
El código de pureQuery también puede utilizar SQL estático cuando el código utiliza el estilo de programación de método anotado y bases de datos de DB2. El SQL estático tiene tres ventajas:
Evitar la caché de sentencia dinámica
La utilización de SQL estático reduce la contienda por la memoria caché de sentencias dinámicas de DB2, con lo que mejora el rendimiento de aplicaciones que utilizan SQL dinámico.
Coherencia de las vías de acceso del acceso
El SQL estático hace que los tiempos de respuesta sean mas predecibles y estables debido al bloqueo de las vías de acceso antes de que se ejecuten las aplicaciones. Por el contrario, las vías de acceso para el SQL dinámico se calculan en tiempo de ejecución.
Potencial para un rendimiento mejorado de sus aplicaciones
El SQL estático puede mejorar el rendimiento de sus aplicaciones.
  • Dado que los planes de acceso se determinan antes del tiempo de ejecución, ya no es necesario preparar las sentencias SQL en el tiempo de ejecución.
  • Puesto que no es necesario preparar y describir cada sentencia, hay menos tráfico de redes entre aplicaciones de clientes y servidores de bases de datos.
  • El SQL estático aplica estrictamente tipos de datos para parámetros o variables de host utilizados en predicados. Esta aplicación estricta garantiza que los datos de entrada coinciden con los tipos de destino de la base de datos.
Seguridad más estricta
Puede otorgar a los usuarios el privilegio EXECUTE en un paquete de DB2, en lugar de otorgar privilegios de usuario sobre objetos de bases de datos.
Facilitar la revisión de los paquetes
La creación de versiones de paquetes de DB2 permite volver a enlazar paquetes sin riesgo de perder las vías de acceso anteriores y mejores.
Soporta conexiones JDBC de tipo 2 cuando ejecuta aplicaciones pureQuery en z/OS
Dado que el controlador JDBC de tipo 2 es una combinación de Java y código nativo, las conexiones de tipo 2 tienen por lo general un mejor rendimiento que las conexiones de tipo 4.
Las aplicaciones que no utilizan la API de pureQuery pueden sacar provecho de la optimización del cliente, que es diferente de otras tecnologías que soportan la ejecución de SQL estáticamente:
  • La optimización de clientes de pureQuery no utiliza un preprocesador, a diferencia del lenguaje de programación COBOL que utiliza un preprocesador para el SQL incorporado.
  • La optimización de cliente de pureQuery no utiliza un traductor ni un personalizador, a diferencia de SQLJ.
  • No necesita sentencias SQL hard-code en la fuente de una aplicación.

En lugar de necesitar estos componentes o cambios en el código, la optimización del cliente cambia la forma en que un controlador JDBC interactúa con una aplicación.

Almacenamiento seguro de los datos de pureQuery
Se pueden almacenar los datos de configuración de pureQuery, los datos de pureQueryXML y los datos de SQL capturados en un lugar seguro y acceder a ellos a través de pureQuery Runtime cuando resulte necesario. pureQuery Runtime se puede configurar para recuperar los datos de pureQuery de las ubicaciones seguras. pureQuery Runtime puede almacenar en una ubicación segura los datos SQL capturados desde aplicaciones habilitadas para pureQuery que utilizan la optimización de cliente pureQuery.
Soporte para registro especial de DB2
Cuando se capturan sentencias SQL desde una aplicación, la optimización de cliente de pureQuery realiza un seguimiento de información de registros especiales. La optimización de cliente de pureQuery registra los valores de los registros especiales que se utilizan normalmente y que pueden afectar al comportamiento de la sentencia SQL. En algunos casos, cuando se emite dos veces la misma sentencia SQL, el comportamiento puede diferir si el valor de un registro especial se cambia entre la primera y la segunda vez que se ejecuta.

El programa de utilidad Configure de pureQuery puede generar opciones de enlace de acuerdo con la información de registro especial que se registra con las sentencias SQL capturadas. Utilice la opción -optionsFileForBind del programa de utilidad Configure para crear un archivo de opciones StaticBinder que contenga las opciones de enlace basadas en los valores de registro especial que se registran cuando se capturan las sentencias. El archivo de opciones contiene también información y avisos sobre los conjuntos de sentencias, las sentencias SQL y la información de registro especial en el archivo pureQueryXML.

La información del archivo ayuda a especificar un conjunto de opciones de enlace para que, cuando la sentencia SQL se ejecute estáticamente, el comportamiento de la sentencia sea similar a cuando se emite desde la aplicación y se ejecuta dinámicamente. Con el programa de utilidad StaticBinder de pureQuery, las opciones de enlace se especifican al vincular los paquetes de DB2 que contienen las sentencias SQL.

pureQuery Runtime Versión 2.2.0.3 y versiones posteriores registran la información de registro especial en un archivo pureQueryXML. Si su archivo pureQueryXML se creó con una versión de pureQuery Runtime anterior a la versión 2.2.0.3, quizás necesite volver a capturar algunas sentencias SQL para registrar la información de registro especial.

Archivos pureQueryXML fáciles de gestionar
Las características siguientes ayudan a gestionar sentencias SQL y conjuntos de sentencias en un archivo pureQueryXML:
  • El programa de utilidad Configure puede agrupar sentencias SQL según el texto que contienen, como nombres de tabla o columna, o según el uso de registro especial.
  • El programa de utilidad Configure puede suprimir sentencias SQL de un archivo pureQueryXML si la aplicación no ha emitido la sentencia durante un número de días especificado. pureQuery Runtime actualiza el momento en que se ha emitido la sentencia SQL desde una aplicación mientras la propiedad captureMode de pureQuery está establecida en ON.
  • El programa de utilidad Configure puede definir el estado de un conjunto de sentencias antes o después de procesar los archivos pureQueryXML. El estado de la sentencia controla si el programa de utilidad Configure intenta modificar la sentencia. Si utiliza StaticBinder en el archivo pureQueryXML para enlazar sentencias SQL en una base de datos DB2, debe volver a enlazar las sentencias SQL del conjunto de sentencias después de modificar el conjunto.
  • El programa de utilidad Configure puede cambiar los nombres de ubicación de la base de datos y los nombres de esquema para sentencias SQL en archivos QueryXML.
  • El programa de utilidad StaticBinder puede manejar sentencias SQL en un archivo pureQueryXML cuando el proceso de enlace devuelva un error para la sentencia. El programa de utilidad puede marcar la sentencia como no válida o eliminarla del archivo. Si una sentencia se marca como no válida, permanece en el archivo pero se trata como si su atributo isBindable se estableciera en false. Puede utilizar el programa de utilidad Configure para que la sentencia se incluya en eliminar sentencias que se han marcado como no válidas.
  • Los programas de utilidad Configure, Merge y StaticBinder puede ejecutar la validación de esquemas XML en los archivos pureQueryXML de entrada.
  • El programa de utilidad ManageRepository puede generar un informe que indique las diferencias entre dos archivos pureQueryXML. Puede ver fácilmente los cambios que se han realizado en un archivo pureQueryXML actualizado compartiéndolo con el archivo original.

Funciones para las aplicaciones CLI (Call Level Interface) C y C++

Call level interface (CLI) es una interfaz de programación de aplicaciones C y C++ para acceso a base de datos relacionales. CLI utiliza las llamadas a funciones para pasar sentencias SQL dinámicas como argumentos.

Después deshabilitar la optimización de cliente pureQuery para una aplicación CLI que se conecta con una base de datos DB2 o base de datos Informix, puede controlar las sentencias SQL que la aplicación emite. Por ejemplo, si la aplicación se conecta con una base de datos DB2, se puede configurar la aplicación para ejecutar sentencias SQL estáticamente contra la base de datos. Se pueden controlar las sentencias SQL que están autorizadas a ejecutarse contra la base de datos.

Las ventajas de la optimización de clientes de pureQuery son, entre otras:
  • Ejecutar sentencias SQL de forma estática contra bases de datos DB2.
  • Diagnosticar problemas en las sentencias SQL con recursos que permiten realizar un rastreo y retroceder hasta el código fuente de la aplicación.
  • Sustituir las sentencias SQL de bajo rendimiento por sentencias optimizadas.
  • Reducir el riesgo de ataques de inyección de SQL ejecutando un conjunto restringido de sentencias SQL.

Puede ejecutar sentencias SQL y validar sentencias SQL con el mandato db2cli de DB2. Puede ejecutar el mandato db2cli con la opción exec para ejecutar o validar las sentencias SQL de un archivo. Puede especificar que las sentencias SQL de un archivo estén preparadas, pero que no se ejecuten para validación. Puede capturar las sentencias SQL que se ejecutan o validan con el mandato db2cli en un archivo pureQueryXML.

Características para aplicaciones .NET de Microsoft

InfoSphere Optim pureQuery Runtime for Linux®, UNIX®, y Windows® proporcionan soporte para mejorar la estabilidad, la seguridad y la manejabilidad de aplicaciones .NET, incluidas las aplicaciones que están escritas en cualquier lenguaje basado en .NET, como C# y VB.NET.

Las ventajas de pureQuery Runtime incluyen:
  • Mejorar la calidad del servicio para aplicaciones existentes
    • Mejorar el rendimiento
    • Cerrar planes de acceso
    • Mejorar la precisión de la planificación de capacidades
  • Obtener más valor de las inversiones existentes
    • Aumentar el rendimiento del sistema
    • Acelerar la resolución de problemas
  • Ampliar la seguridad
    • Limitar el acceso de usuarios
    • Minimizar los ataques
    • Mejorar la preparación de auditorías

Para más información sobre como utilizar pureQuery Runtime para Linux, UNIX y Windows con .NET, consulte http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.swg.im.dbclient.adonet.doc/doc/t0054569.html



Comentarios