Récapitulatif des fonctions pureQuery Runtime

pureQuery Runtime peut être utilisé avec des applications Java™. pureQuery Runtime peut également être utilisé avec les applications DB2 ODBC/CLI et Microsoft .NET.

Fonctions pour applications API Java pureQuery

En plus des fonctions d'optimisation client, pureQuery Runtime fournit également des fonctions API.

Pour les applications utilisant l'API pureQuery, InfoSphere Optim pureQuery Runtime offre les fonctions suivantes :

Une API unique permettant d'exécuter des instructions SQL sur les bases de données, les collections intégrées à la mémoire et les objets itérateurs

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 de données au sein des 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 à l'aide d'un langage d'interrogation unique et connu, que ce soit de façon indépendante ou combinée.

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. pureQuery simplifie les requêtes, les mises à jour, les appels vers des procédures mémorisées, ainsi que diverses tâches relatives à l'accès aux bases de données. pureQuery s'exécute sur la plateforme Java 2 Standard Edition 5.0 (J2SE 5.0) et sur la 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
pureQuery fournit un mappage automatique entre les résultats de requête SQL et les objets renvoyés 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é.

Prise en charge du développement d'application 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 d'accès qui sont utilisées par l'utilitaire pureQuery StaticBinder et qui contrôlent les noms générés pour les packages contenant les instructions SQL.

Prise en charge des instructions SQL dynamiques et statiques pendant la phase d'exécution
Le code pureQuery peut utiliser une instruction SQL dynamique avec un pilote JDBC standard pour une instruction SQL imbriquée comme pour une instruction SQL ad hoc inconnue jusqu'au moment de l'exécution.
Le code pureQuery peut également utiliser une instruction 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.
  • Entant donné qu'il n'est pas obligatoire de préparer ou de décrire chaque instruction, le trafic réseau existant entre les applications client et les 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 package DB2.
Révision facile des packages
Puisqu'il est possible de créer plusieurs versions de chaque package DB2, vous pouvez redéfinir les accès aux packages sans prendre le risque de perdre vos anciens chemins d'accès prioritaires.
Prise en charge des connexions JDBC de type 2 lors de l'exécution d'applications pureQuery sous z/OS
Le pilote JDBC de type 2 est une combinaison de code Java et de code natif, donc les connexions de type 2 sont généralement plus performantes que celles de type 4.
Prise en charge de plateformes et d'infrastructures préfabriquées pour le développement d'application d'accès aux données
pureQuery Runtime prend en charge les plateformes et infrastructures préfabriquées suivantes :
  • Java
  • Java Persistence API (JPA)
  • Retour automatique
  • Veille prolongée
  • iBatis

Fonctions pour applications Java activées avec optimisation client pureQuery

Les applications qui n'utilisent pas l'API pureQuery peuvent bénéficier de l'optimisation client, laquelle diffère des autres technologies prenant en charge l'exécution statique d'instruction SQL sur une base de données DB2 :
  • L'optimisation client pureQuery n'utilise pas de préprocesseur tandis que le langage de programmation COBOL utilise un préprocesseur pour les instructions SQL imbriquées.
  • 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 la source d'une application.

Plutôt que de recourir à ces composants et ces changements de code, l'optimisation client modifie l'interaction entre un pilote JDBC et une application. L'optimisation client pureQuery offre les fonctions suivantes :

Stockage sécurisé des données pureQuery
Les informations de configuration pureQuery, les données pureQueryXML incluant les données SQL utilisées par pureQuery Runtime et les données SQL capturées peuvent être stockées à un emplacement sécurisé et rester 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 emplacement sécurisé les données SQL capturées à partir d'applications compatibles avec 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 contrôle les informations de registre spécial DB2 utilisées par les instructions SQL. L'optimisation client pureQuery enregistre les valeurs des registres spéciaux qui sont couramment utilisés et 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'option de l'utilitaire de configuration pureQuery nommée optionsFileForBind peut générer un fichier d'options StaticBinder contenant des options de définition d'accès basées sur les informations de registre spécial qui sont enregistrées avec les instructions SQL 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. Lorsque vous associez les packages DB2 contenant les instructions SQL, spécifiez les options de définition d'accès à l'aide de l'utilitaire pureQuery StaticBinder.

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 peut contrôler à quel moment une instruction SQL est émise par une application et mettre à jour cette information dans le fichier pureQueryXML.
  • 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.
  • 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 n'est pas traitée comme une instruction pouvant être liée. L'utilitaire de configuration vous permet de modifier cette instruction pour en faire une instruction valide qui peut être liée ou même de la supprimer.
  • 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 pour applications ODBC/CLI et .NET

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. Les applications .NET incluent des applications écrites dans n'importe lequel des langages basés sur .NET (par exemple, C# ou VB.NET).

Après avoir activé l'optimisation client pureQuery pour une application CLI ou .NET se connectant à 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.

Pour les applications CLI, vous pouvez exécuter et valider les instructions SQL à l'aide de la commande DB2, db2cli. Indiquez que les instructions SQL sont préparées mais non exécutées pour valider les instructions SQL. Vous pouvez capturer les instructions SQL exécutées ou validées dans un fichier pureQueryXML.

Pour plus d'informations sur le développement d'application DB2 à l'aide de .NET, reportez-vous à la page ADO.NET application development (Développement d'une application ADO.NET).

Pour de plus amples informations sur le développement d'application DB2 à l'aide d'une interface CLI, reportez-vous à la page Introduction to DB2 Call Level Interface and ODBC (Introduction à l'interface CLI DB2 et à la connectivité ODBC).


Commentaires