Présentation

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



Commentaires