Gestion des versions-révisions pour les objets

Up ! 5GL permet de créer des applications qui équiperont des entreprises pour de nombreuses années. Une fois une application installée et paramétrée, personne ne désire en changer avant un moment, en particulier les utilisateurs (ils n'aiment pas changer leurs habitudes souvent) et le directeur financier (il apprécie les investissements amortis sur une longue période).

Pourtant, la concurrence pousse les éditeurs de progiciels à faire évoluer leurs applications, ce qui motivent périodiquement ses clients : Lorsqu'une entreprise utilise des progiciels basés sur Up ! Application System, le problème de changer de versions d'applications imposent plusieurs problèmes : Ce principe de transition douce est la garantie d'assurer la pérennité des applications et des données des clients de progiciels. Up ! Application System comporte un gestionnaire de versions-révisions permettant cela.

Numérotation en version, révision et correction

Principe de la numérotation

Les objets en technologie Up ! Virtual Technical Machine sont numérotés en version, révision et correction. Les modules Up ! Application System étant des objets particuliers, ils sont aussi numérotés en version, révision et correction. Par convention : Ainsi :

Version d'Up ! Virtual Business Machine

Ce principe de numérotation s'applique aux modules des applications écrites en technologie Up ! Virtual Technical Machine. Ainsi, nous dirons qu'une application Finances est en version-révision 2.0.1 et qu'une seconde application Commerce est en version-révision 3.1.0. En faisant l'hypothèse que le module Commerce utilise le module Finances, les règles de compatibilité sont les suivantes :

ModulesCommerce 3.1.0Commerce 3.2.0
Finances 2.0.1Compatible puisque
compilés avec la
bonne interface.
Compatible puisque
compilés avec la
bonne interface.
Finances 2.1.1Publication de
l'interface 2.0 par
Up ! Virtual Technical Machine.
Publication de
l'interface 2.0 par
Up ! Virtual Technical Machine.

Version d'Up ! Virtual Technical Machine

Ce principe de numérotation s'applique également aux modules de Up ! Virtual Technical Machine et nous avons les mêmes règles de compatibilités :

ModulesCommerce 3.1.0Commerce 3.2.0
Up ! VM 1.0.0Compatible puisque
compilés avec la
bonne interface.
Compatible puisque
compilés avec la
bonne interface.
Up ! VM 1.3.1Publication de
l'interface 2.0 par
Up ! Virtual Technical Machine.
Publication de
l'interface 2.0 par
Up ! Virtual Technical Machine.

Automatismes dus au versionnement

Fichiers de persistance et fichiers de Up ! Objects Files

Lors d'un changement de version-révision de Up ! Virtual Technical Machine, l'utilitaire Up ! Migrate permet de migrer les fichiers de persistance et les fichiers Up ! Objects Files au format de la nouvelle version-révision de Up ! Virtual Machine.

Lors d'un changement de version-révision de l'application Up ! Virtual Technical Machine, l'utilitaire Up ! Migrate permet de migrer les fichiers de persistance. Lors d'un changement de version-révision de l'application, la migration des fichiers Up ! Objects Files est traitée à la volée par la méthode Importer du type Objet.

Fichiers d'exportation d'objets

Lors d'un changement de version-révision de Up ! Virtual Technical Machine, l'utilitaire Up ! Migrate permet de migrer les fichiers d'exportation des objets au format de la nouvelle version-révision de Up ! Virtual Machine.

Lors d'un changement de version-révision de l'application, la migration des fichiers Up ! Object File est traitée à la volée par la méthode Importer du type Objet.

Fichiers journaux

Lors d'un changement de version-révision de Up ! Virtual Technical Machine ou de l'application, l'application est arrêtée proprement, aussi les fichiers de persistance, les fichiers Up ! Objects Files et les fichiers journaux sont synchronisés. Il ne sera donc pas nécessaire de réaliser une opération de reprise faisant intervenir les journaux. Les journaux n'ont donc pas besoin d'être migrés, ils seront écrasés.

Les fichiers journaux sont cependant versionnés pour ne pas tenter d'effectuer une reprise par une version-révision de Up ! Virtual Technical Machine autre que celle ayant créée les les fichiers de persistance, les fichiers Up ! Object File et les fichiers journaux.

Protocole Up ! Network

Le protocole Up ! Virtual Technical Machine est versionné de la sorte à pouvoir gérer une communication entre deux applications ou deux Up ! Virtual Machine de version-révision hétérogène. Cependant, la version-révision du serveur doit être supérieure à la version-révision du client, tant pour l'application que pour Up ! Virtual Machine.

Contrôle de la compatibilité entre les versions-révisions

Up ! Virtual Technical Machine est capable d'interroger un module en vue de lui demander de lui retourner l'interface pour une version-révision donnée.

Si la version-révision demandée est indisponible, alors Up ! Virtual Technical Machine envoie l'exception ModuleInconnu au module demandeur. Up ! Virtual Technical Machine assure ainsi que l'application est constituée de modules compatibles.

Déclaration des versions-révisions dans les sources Up ! 5GL

L'instruction Version employée dans l'en-tête d'un fichier source d'un module ou dans l'en-tête de l'interface d'un module permettent de spécifier respectivement la version, la révision et la correction du module.

L'instruction Version employée dans le corps de l'interface d'un module permettent de déclarer les différences d'interface entre les versions-révisions supportées par le module.

Voici un exemple :

Interface Module "Ceci est mon module" Version 1.2.0 ModuleDynamique;

Entrepot
/******/


Type T1 Defaut
/************/ Fin Type

Version 1.1 Faire Fin Version

Type T4 Defaut
/************/ Fin Type

Variable
/******/
Exception
/*******/
Procedure P1();
Version 1.1 Faire Fin Version