Persistance et l'externalisation des objets

Persistance

La durée de vie d'un objet peut être supérieure à la durée de vie du programme qui la créé. En ce cas, cet objet est qualifié de persistant. Un objet qui est automatiquement détruit lors de la terminaison du programme est qualifié de volatile.

Les objets persistants sont utiles lorsqu'ils modélisent un client, une facture, etc. L'ensemble de ces objets forment alors une base d'objets. Ils sont conservés dans des entrepôts persistants gérés par des programmes Up ! Server. Généralement, le client exploitant ces objets persistants sont distincts de ces serveurs.

Pour savoir quels serveurs gèrent ces objets, un programme en technologie Up ! Virtual Technical Machine interroge Up ! Object Request Broker en lui spécifiant l'identificateur de cet objet. L'objet étant uniquement déterminé par son identifiant et celui-ci comportant l'identificateur du serveur, Up ! Object Request Broker permet de s'assurer que le fonctionnement est disponible. Au besoin, le serveur est démarré.

Le code de persistance est automatiquement généré par Up ! Compiler si l'option de génération persistance est activée. Celle-ci a pour effet d'ajouter des méthodes de persistance implicites au module généré. Pour qu'un programme ait ses objets de persistants, il est nécessaire que :

Le format des fichiers de persistance est bien sur indépendant de la plate-forme. Cependant, la configuration de Up ! Object Management System ne peut être changée entre deux exécutions du programme.

Externalisation

Quand un objet est mémorisé dans un entrepôt, il n'est pas possible d'en conserver une sauvegarde à moins que l'entrepôt soit persistant et de conserver les fichiers correspondant à l'entrepôt. Cependant, en ce cas, l'objet n'est pas sauvegardé isolément.

Pour réaliser cette tâche, il faut utiliser le service d'externalisation permettant d'enregistrer un ou plusieurs objets dans un flux (objet binaire, fichier, etc.). Cela s'effectue au moyen de la méthode Exporter du type Objet. Si un graphe d'objets est sélectionné, Up ! Object Management System mémorise également les relations entre les objets et fait en sorte de ne pas enregistrer cet objet plusieurs fois.

A l'inverse, il existe une méthode Importer du type Objet permettant d'importer un ou plusieurs objets qui ont été externalisés. Up ! Object Management System se réfère à l'en-tête de l'exportation contenant la description des types nécessaires à la construction des objets afin de savoir si l'importation peut avoir lieu.

Ce principe d'externalisation permet de réaliser automatiquement une fonction de sauvegarde. Un autre usage de ce principe est employé par Up ! Network pour échanger des objets entre deux machines. Le format d'externalisation est bien sur indépendant de la plate-forme.