French

Dernière partie d'une série de quatre articles.

Vers les parties précédentes ->

Adaptation des programmes

Les trois premières parties de cet article décrivaient la conception de la nouvelle base de données et la migration des données. Cette dernière partie décrit comment les applications vont être modifiées pour leur permettre d’accéder à la nouvelle base de données en lieu et place de l’ancienne base de données IMS.

Cette adaptation des programmes doit répondre à deux contraintes :

  • la logique des programmes ne doit pas être modifiée : c’est-à-dire qu’ils doivent fournir les mêmes résultats qu’avant et que les personnes responsables de leur maintenance et de leur évolution doivent « reconnaître » leurs programmes.
  • deuxièmement, cette transformation doit être complètement automatique.

Rever a développé des accesseurs (modules d’accès aux données) qui vont simuler l’ancienne base de données IMS /DLI.

avant-après-migration

Les accesseurs

Les accesseurs sont des programmes qui simulent l’ancien système de gestion des données (IMS /DLI) en utilisant le nouveau système (SQL).

Les accesseurs prennent en charge les conversions de structure. Par exemple, les liens père-fils qui étaient représentés par des pointeurs (cachés au développeur) dans IMS, sont maintenant des contraintes référentielles (foreign key). Les segments (io-area) sont reconstruits à partir des données contenues dans les différentes colonnes (et parfois différentes tables), sans oublier les conversions de format (par exemple, les numériques peuvent être représentés de différentes façons en COBOL – binaire, packed…).

Les accesseurs prennent également en charge les conversions de langage. Comme par exemple la gestion des courants et de l’ordre à la IMS. C’est-à-dire que les segments doivent être ordonnés de la même manière qu’avec IMS  lors de l’exécution d’un GN (Get Next) ou d’un GNP (Get Next within Parent). La conversion de langage implique aussi de produire les mêmes codes d’erreur qu’IMS. Les codes d’erreur sont parfois la simple traduction d’un code d’erreur SQL (SQLCODE), mais peuvent aussi être spécifiques à IMS, comme la vérification que le « proc option » du PSB permet au programme de modifier les données.

Génération des accesseurs

Fidèle à sa philosophie, Rever a développé un générateur d’accesseurs. Celui-ci va générer du code en se basant sur le modèle de la base de données IMS, sur le modèle de la nouvelle base de données et le mapping qui existe entre les deux.

L’automatisation de la génération des accesseurs est particulièrement importante puisqu’elle permet de re-générer aisément les accesseurs lors de chaque évolution du modèle d’une des deux bases de données.

Les accesseurs ont été testés dans différents projets et ont été optimisés en termes de performance (gestion intelligente des requêtes et des curseurs) et en termes de lisibilité du code.

Transformation des programmes

Les accesseurs sont construits de façon à ce que la transformation des programmes soit réduite au strict minimum. Pour ce faire, les accesseurs ont la même API que « CBLTDLI » de DLI. Si les programmes utilisent les appels à « CBLTDLI », aucune transformation n’est nécessaire.


 

 

Lexique des acronymes :

  • IMS = Information Management System
  • IMS/DLI = Data Language Interface, le système de langage utilisé pour accéder aux bases de données IMS
  • Cobol = Common Business-Oriented Language
  • PSB = Program Specification Block
  • API = Application Programming Interface

En savoir plus ? DB-Main est un outil de modélisation et d'architecture de données. Historiquement développé au sein du laboratoire d'ingénierie des bases de données de l'UNamurRever continue à l'améliorer pour aider les développeurs et les analystes dans la plupart des processus d'ingénierie des données.

Mots clés: 

Auteur(s): 

Jean Henrard