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