> Tech > Améliorer l’architecture applicative avec des solutions base de données

Améliorer l’architecture applicative avec des solutions base de données

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

par Sharon L. Hoffman - Mis en ligne le 04/10/2005 - Publié en Décembre 2004

La segmentation du code en petits composants appelables améliore la modularisation et favorise la réutilisation, tout en réduisant la taille et la complexité de chaque composant de code. On peut appliquer ce principe par diverses techniques de programmation iSeries, comme des appels de programmes et des programmes de service. Mais nous nous intéressons ici à  trois fonctions de base de données iSeries qui facilitent le partitionnement des applications : les déclencheurs, les procédures stockées, et les fonctions définies par l'utilisateur (UDF, user-defined functions).

  • Un déclencheur est lancé (ou activé) par un événement survenant dans la base de
    données, comme l’insertion d’un enregistrement dans un fichier. Il se déclenchera
    dès que l’événement désigné se manifestera.

  • Une procédure stockée est appelée explicitement à  partir de SQL et elle ressemble
    beaucoup à  un appel de programme dans les langages iSeries classiques.

  • Une UDF est invoquée dans une instruction SQL et a le même genre de comportement
    que les fonctions intégrées SQL comme Count ou DayOfWeek.

Ces trois fonctions base de données étendent votre champ de développement
applicatif en donnant aux applications basées sur SQL l’accès au code écrit en langages
évolués, comme RPG, et en fournissant aux applications écrites en langages
évolués l’accès aux fonctionnalités SQL. En choisissant judicieusement entre les déclencheurs,
les procédures stockées et les UDF, vous simplifierez votre code en utilisant
l’outil le plus approprié (SQL ou un
langage évolué) pour chaque tâche. Vous
en tirerez aussi d’autres avantages parce
que toutes ces fonctions base de données
sont utilisables sur de multiples platesformes
et bases de données.
En utilisant des déclencheurs, des procédures
stockées et des UDF pour partitionner
des applications, vous pouvez lancer
le même code par diverses techniques.
Ainsi, vous pouvez appeler une procédure
stockée écrite en RPG en utilisant le SQL imbriqué dans un programme Cobol ou
en utilisant JDBC dans une application Java. Le code qui appelle la procédure stockée
peut tourner sur l’iSeries ou sur une autre plate-forme qui communique avec
l’iSeries via ODBC. De même, le code déclencheur écrit en SQL pourrait s’exécuter
consécutivement à  une mise à  jour dans un programme RPG, une modification
effectuée à  l’aide d’un programme utilitaire comme DFU, ou en réponse à  une transaction initiée par une application
de type navigateur.
Pour les applications en réseau, ces
solutions base de données assureront
fiabilité et sécurité et amélioreront
souvent les performances. Ces avantages
résultent de deux actions : déplacer
le traitement sur la plate-forme où
réside la base de données et réduire le
volume de trafic sur le réseau. Par
exemple, au lieu d’appeler 10 instructions
SQL individuellement en utilisant
JDBC dans une application Java fonctionnant
sur un PC, vous pourriez appeler
une seule procédure stockée qui
exécute les 10 instructions et renvoie
les résultats. Même si la même quantité
de données doit être transférée, on
améliorera la performance en réduisant
le nombre de transactions envoyées
sur le réseau. Dans bien des
cas, on constatera qu’un tel modèle réduit
aussi la quantité totale d’informations
circulant dans les deux sens, ce
qui améliore encore la performance.
Pour les applications à  déployer
sur des plates-formes multiples, ces
fonctions base de données ont un
avantage sur les solutions de partitionnement
d’application spécifiques à 
l’iSeries. Par exemple, si on utilise une
procédure stockée dans une application
iSeries puis qu’on porte ultérieurement
l’application sur une autre
base de données, on pourra probablement
conserver le modèle de l’application
et peut-être aussi le code appelant.
L’utilisation de ces techniques base
de données rend le code plus portable
qu’avec des solutions spécifiques
à  l’iSeries comme des programmes
de service. Mais il y a encore
d’importantes différences dans la manière
dont les déclencheurs, les procédures
stockées et les UDF sont supportés
sur des bases de données et des
plates-formes différentes. Ainsi, si l’on
fait migrer une procédure stockée sur
une autre plate-forme ou base de données,
il faudra probablement réécrire
la procédure stockée elle-même. Par
conséquent, il est important de comprendre
les particularités iSeries en
matière de déclencheurs, de procédures
stockées et d’UDF.

Téléchargez gratuitement cette ressource

IBMi et Cloud : Table ronde Digitale

IBMi et Cloud : Table ronde Digitale

Comment faire évoluer son patrimoine IBMi en le rendant Cloud compatible ? Comment capitaliser sur des bases saines pour un avenir serein ? Faites le point et partagez l'expertise Hardis Group et IBM aux côtés de Florence Devambez, DSI d'Albingia.

Tech - Par iTPro.fr - Publié le 24 juin 2010