Après avoir installé InfoSphere Optim pureQuery Runtime, vous pouvez
déployer vos applications pureQuery ou Java activées avec pureQuery vers les environnements de production. Vous pouvez également développer des applications DB2 CLI
et Microsoft .NET.
Fonctions pour les applications Java
Pour
les applications qui utilisent l'API pureQuery, InfoSphere Optim pureQuery
offre les fonctions suivantes :
- Fournit une API unique que vous pouvez utiliser pour exécuter des instructions SQL sur
les bases de données, les collections intégrées à la mémoire et les objets Iterator
La plateforme Java offre
une multitude de structures de données et d'API pour le traitement des collections de données
et des données externes issues de différentes sources. Chacune de ces fonctions convient
parfaitement à la résolution d'un type de problème spécifique. pureQuery
possède également un ensemble unique d'interfaces pour la récupération et la modification des
données dans les collections. Par exemple, pureQuery fournit une API
pour les grappes, listes, cartes et itérateurs
Java. Chaque API interroge et, dans certains cas, met à jour les données
dans la collection.
Parallèlement, l'API de connectivité JDBC permet d'utiliser SQL pour accéder aux objets relationnels et aux autres objets DataSource JDBC externes.
Toutefois, pureQuery permet à une application d'accéder à l'ensemble de ces sources de données, de façon indépendante ou combinée à un langage de requête unique et connu.
- Mise à disposition d'un modèle de programmation simple pour l'accès aux données
- pureQuery fonctionne comme une fine couche supérieure de la connectivité JDBC. Il simplifie les recherches, les mises à jour et les appels vers des procédures stockées ainsi que diverses tâches relatives à l'accès aux bases de données. pureQuery s'exécute sur une plateforme Java 2 Standard Edition 5.0 (J2SE 5.0) et sur une plateforme Java Standard Edition 6 (Java SE 6).
- Mappage automatique des données SQL vers des types de retour avec intervention mineure
du développeur vous permettant toutefois de fournir un code personnalisé pour les mappages complexes
- pureQuery permet un mappage automatique entre les résultats de requêtes SQL et les objets de retour pour de nombreux modèles d'objet Java. Une interface de sortie connectable permettant les mappages personnalisés est disponible pour les mappages complexes entre les résultats de requêtes et les objets Java.
Vous pouvez créer et annoter
des beans qui renvoient les résultats des requêtes SQL qui contiennent des jointures de table.
Les résultats de requête sont renvoyés sous la forme d'un ensemble de beans qui contiennent des instances
d'autres beans. La hiérarchie des beans reflète les relations un à un
et un à plusieurs des résultats de requête. Par exemple, une
requête contient une jointure entre une table d'employé et une table de rayon.
La requête renvoie les employés qui sont affectés aux différents rayons.
Les résultats sont renvoyés sous la forme de beans de rayon, où chaque
instance du bean de rayon représente un département. Chaque bean de
département contient une liste des beans d'employé. Chaque instance d'un bean
d'employé contient des informations sur l'employé.
- Supports développant des applications SQL à l'aide de méthodes annotées et intégrées
- Les méthodes annotées sont prises en charge pour la définition de vos
propres méthodes dans les interfaces personnalisées. Vous créez des méthodes avec des définitions
annotées par des instructions SQL. Vous pouvez développer des applications
qui respectent le modèle DAO (Data Access Object) en créant des objets d'accès aux données
à l'aide des méthodes annotées.
Les méthodes intégrées sont
prises en charge pour que vous puissiez bénéficier des méthodes définies
dans l'interface Data fournie par IBM. Les méthodes intégrées sont utiles pour les applications nécessitant la création
d'instructions SQL lors de leur exécution. Avec les méthodes intégrées, les instructions SQL sont transmises comme des paramètres lors des appels de méthodes. Elles sont similaires à l'approche de la connectivité JDBC.
Une prise
en charge est fournie pour la gestion des instructions SQL qui sont exécutées de façon statique.
Vous pouvez annoter votre code pour regrouper les instructions SQL qui sont utilisées
dans une interface. Vous pouvez contrôler le processus de définition des accès pour les groupes.
Vous pouvez contrôler les options de définition des accès utilisées par l'utilitaire
pureQuery StaticBinder. Vous pouvez également contrôler les noms qui sont générés pour les
modules qui contiennent les instructions SQL.
- Prend en charge l'instruction SQL dynamique et statique lors de l'exécution
- Le code pureQuery peut utiliser un SQL dynamique avec un pilote JDBC standard pour un SQL imbriqué comme pour un SQL ad hoc inconnu jusqu'au moment de l'exécution.
Le code pureQuery peut également utiliser un SQL statique lorsqu'il utilise le style de programmation "méthode annotée" et les bases de données DB2.
Un SQL statique présente trois avantages :
- Suppression d'un cache d'instruction dynamique
- L'utilisation d'un SQL statique réduit le conflit relatif au cache d'instruction dynamique de DB2, améliorant ainsi les performances
des applications utilisant un SQL dynamique.
- Cohérence des chemins d'accès
- Avec les instructions SQL statiques, les chemins d'accès sont verrouillés avant
l'exécution d'une application, d'où des temps de réponse prévisibles et stables. Pour les
instructions SQL dynamiques, en revanche, les chemins d'accès sont calculés au moment
de l'exécution.
- Possibilité d'améliorer les performances de vos applications
- Un SQL statique permet d'améliorer les performances de vos applications.
- Les plans d'accès étant définis avant l'exécution, il n'est plus nécessaire de préparer les instructions SQL au moment de l'exécution.
- Chaque instruction n'ayant pas besoin d'être préparée et décrite,
le trafic du réseau entre applications client et serveurs de la base de données est
réduit.
- Un SQL statique applique de façon rigoureuse les types de données pour les paramètres ou les variables hôte utilisés dans les prédicats. Une telle application permet aux données d'entrée de correspondre aux types de cible de la base de données.
- Sécurité renforcée
- Plutôt que d'accorder aux utilisateurs des privilèges sur les objets de base de données, vous pouvez leur accorder le privilège EXECUTE sur un module DB2.
- Révision facile des modules
- La création de versions des modules DB2 vous permet de redéfinir les accès aux modules sans prendre le risque de perdre vos anciens chemins d'accès prioritaires.
- Prise en charge des connexions JDBC de Type 2 au moment de l'exécution des applications pureQuery sur z/OS
- Le pilote JDBC de Type 2 étant une combinaison de code natif et de code Java, les connexions de Type 2 sont généralement plus performantes que celles de Type 4.
Les applications qui n'utilisent pas l'API pureQuery peuvent bénéficier de l'optimisation du client, laquelle diffère des autres technologies prenant en charge l'exécution d'un SQL statique :
- L'optimisation client pureQuery n'utilise pas de préprocesseur, contrairement
au langage de programmation COBOL qui utilise un préprocesseur pour le SQL
imbriqué.
- L'optimisation client pureQuery n'utilise pas de traducteur ou de personnaliseur contrairement au langage SQL pour Java.
- Il n'est pas nécessaire de coder les instructions SQL dans le source d'une application.
L'optimisation client, plutôt que de recourir à ces composants et ces modifications de code, permet de modifier l'interaction d'un pilote JDBC avec une application.
- Stockage sécurisé des données pureQuery
- Les informations de configuration pureQuery, les données pureQueryXML et les données SQL capturées peuvent être stockées à un emplacement sécurisé et sont accessibles au besoin par pureQuery
Runtime. pureQuery Runtime peut être configuré pour récupérer les données pureQuery à partir d'emplacements sécurisés. pureQuery Runtime peut stocker dans un lieu sécurisé les données SQL capturées à partir d'applications compatibles pureQuery qui utilisent l'optimisation client pureQuery.
- Prise en charge du registre spécial DB2
- Lors de la capture d'instructions SQL à partir d'une application, l'optimisation client pureQuery
client contrôle les informations du registre spécial. L'optimisation
client pureQuery contrôle l'utilisation du registre spécial et enregistre les valeurs du
registre spécial pour les registres spéciaux couramment utilisés et qui pourraient affecter le comportement
de l'instruction SQL. Dans certains cas, si la même instruction SQL est émise deux fois, le comportement de l'instruction peut être différent si une valeur de registre spécial a été modifiée entre sa première et sa deuxième exécution.
L'utilitaire de configuration pureQuery peut générer des options d'association fondées sur les informations du registre spécial enregistrées avec la capture des instructions SQL. Utilisez l'option -optionsFileForBind de l'utilitaire de configuration pour créer un fichier d'options StaticBinder contenant les options d'association fondées sur les paramètres du registre spécial enregistrées lorsque les instructions sont capturées. Le fichier d'options contient également des informations et des avertissements concernant les ensembles d'instructions, les instructions SQL et les informations du registre spécial dans le fichier pureQueryXML.
Les informations contenues dans le fichier vous aident
à spécifier un ensemble d'options d'association, si bien que lorsqu'une instruction SQL est exécutée à des fins statistiques, son comportement est identique à celui qu'elle a lorsqu'elle provient de l'application et s'exécute de façon dynamique. Spécifiez des options d'association avec l'utilitaire pureQuery StaticBinder quand vous associez des modules DB2 contenant les instructions SQL.
pureQuery Runtime versions 2.2.0.3 et ultérieures enregistrent les informations des registres spéciaux dans un fichier pureQueryXML. Si votre fichier pureQueryXML a été créé avec une version de pureQuery Runtime antérieure à la version 2.2.0.3, il faudra peut-être procéder de nouveau à la capture de certaines instructions SQL pour enregistrer les informations des registres spéciaux.
- Gestion facilitée des fichiers pureQueryXML
- Les fonctions suivantes vous aident à gérer les instructions SQL et les ensembles d'instructions SQL dans un fichier pureQueryXML :
- L'utilitaire Configure permet de trier les instructions SQL par texte dans
l'instruction SQL, par exemple par nom de table ou de colonne ou par utilisation du registre
spécial.
- L'utilitaire Configure permet d'effacer les instructions SQL d'un fichier pureQueryXML
si l'instruction n'a pas été émise par l'application pendant un nombre de jours spécifié. pureQuery Runtime met à jour l'heure à laquelle une instruction SQL a été émise à partir d'une application quand l'option captureMode de pureQuery est définie sur ON.
- L'utilitaire Configure permet de définir l'état des ensembles d'instructions avant ou après le traitement des fichiers pureQueryXML. Le statut des ensembles d'instructions
détermine si l'utilitaire de configuration essaie de modifier l'instruction. Si vous utilisez StaticBinder sur le fichier pureQueryXML pour associer des instructions SQL sur une base de données DB2, il faudra associer de nouveau les instructions SQL de l'ensemble d'instructions après modification de cet ensemble.
- L'utilitaire Configure peut change l'emplacement de base de données et les noms de
schéma pour les instructions SQL dans des fichiers pureQueryXML.
- L'utilitaire StaticBinder peut gérer les instructions SQL dans un fichier pureQueryXML
lorsque le processus de liaison renvoie une erreur pour l'instruction. L'utilitaire
peut marquer l'instruction comme non valide ou la supprimer du fichier.
Si une instruction est marquée comme non valide, elle reste dans le fichier
mais est traitée comme si son attribut isBindable était défini sur false.
Vous pouvez utiliser l'utilitaire Configure pour marquer l'instruction comme valide ou
supprimer des instructions qui sont marquées comme non valides.
- Les utilitaires Configure, Merge et StaticBinder permettent de valider les schémas XML sur les fichiers d'entrée pureQueryXML.
- L'utilitaire ManageRepository peut générer un rapport répertoriant les
différences entre deux fichiers pureQueryXML. Vous pouvez facilement voir
les changements apportés à un fichier pureQueryXML mis à jour en le comparant
au fichier original.
Fonctions des applications d'interface de ligne de commande C et C++
L'interface de niveau d'appel (CLI) est une interface de programmation d'application C et C++ pour l'accès aux bases de données relationnelles. CLI utilise les appels de fonction pour transmettre les instructions SQL dynamiques en tant qu'arguments
de fonction.
Une fois l'optimisation client pureQuery activée
pour une application d'interface de ligne de commande qui se connecte à une base de données DB2 ou Informix, vous
pouvez contrôler les instructions SQL émises par l'application. Par exemple,
si l'application se connecte à une base de données DB2, vous pouvez configurer l'application pour exécuter les instructions SQL de manière statique
pour la base de données. Vous pouvez contrôler les instructions SQL autorisées
à s'exécuter pour la base de données.
Les avantages de l'optimisation client pureQuery
incluent :
- Exécution statique des instructions SQL sur les bases de données DB2
- Identification des problèmes à l'aide des instructions SQL avec fonction de traçage
jusqu'au code source de l'application.
- Remplacement des instructions SQL peu performantes par des instructions optimisées.
- Diminution des risques d'attaque par injection SQL grâce à l'exécution d'un ensemble limité d'instructions SQL.
Vous pouvez lancer et valider des instructions SQL avec la commande DB2 db2cli.
Vous pouvez exécuter la commande db2cli à l'aide de l'option exec pour lancer ou valider des instructions SQL dans un fichier. Vous pouvez indiquer que les instructions SQL dans le fichier sont prêtes mais non exécutées pour la validation des instructions SQL. Vous pouvez capturer les instructions SQL exécutées ou validées grâce à la commande db2cli dans un fichier pureQueryXML.
Fonctions pour les applications Microsoft .NET
InfoSphere Optim pureQuery Runtime for Linux, UNIX,
and Windows met à disposition un support
permettant d'améliorer la stabilité, la sécurité et la gérabilité des applications .NET,
y compris celles écrites dans tout langage basé .NET,
dont C# et VB.NET.
Les avantages de pureQuery Runtime incluent :
- Amélioration de la qualité de service pour les applications existantes
- Amélioration des performances
- Verrouillage des plans d'accès
- Précision renforcée de la planification de la capacité
- Augmentation de la valeur obtenue grâce aux investissements existants
- Augmentation du débit de traitement du système
- Résolution d'incident plus rapide
- Sécurité renforcée
- Restriction de l'accès utilisateur
- Réduction des attaques
- Amélioration de la réactivité en cas d'audit
Pour plus d'informations sur l'utilisation de pureQuery Runtime for Linux, UNIX, and Windows avec
.NET, voir http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.swg.im.dbclient.adonet.doc/doc/t0054569.html