Architecture d'un processus s'exécutant dans Up ! Virtual Technical Machine
Les programmes en technologie Up ! Virtual Technical Machine sont composés de différentes tâches autonomes. Certaines sont créées par l'utilisateur au moyen du type Tache. D'autres sont créées par les modules de Up ! Virtuel Technical Machine en fonction des options d'exécution et du fonctionnel du programme. Voici la liste de ces dernières :
Tâche Archivage
Elle est créée pour gérer l'archivage des fichiers de persistance des entrepôts et des journaux mémorisant les modifications apportées aux objets de ceux-ci. Cette tâche est uniquement créée si le paramètre archiverfichier de la configuration de Up ! Object Management System est renseigné.
Tâche EnregistrementJournal
Elle est créée pour gérer les fichiers journaux des entrepôts de données. Cette tâche est uniquement créée si le paramètre FichierJournal est renseigné.
Tâche FichierEchange
Elle est créée pour gérer le fichier d'échange d'un entrepôt de données. Cette tâche est uniquement créée pour les entrepôts de mémoire dont le paramètre TacheFichier de la configuration de Up ! Object Management System est actif. En ce cas, toute l'activité du fichier d'échange (lecture-écriture de blocs de mémoire sur disque, mise à jour des statistiques, etc.) est réalisée par cette tâche.
Tâche Moniteur
Elle est créée pour vérifier le bon fonctionnement des autres tâches du processus. Cette tâche est uniquement créée si l'option DelaiMoniteur de la configuration de Up ! Object Management System est renseignée à une valeur différente de zéro.
La tâche Moniteur assure que si une tâche est défaillante :
- Toutes ses ressources sont automatiquement réallouées.
- Tous ses verrous sont relâchés.
- Ses transactions sont invalidées.
- Son éventuelle photographie est relâchée.
Si la tâche défaillante est une des tâches Alarme, Archivage, FichierEchange, FileDAttente, Retasser, Serveur, Scruptateur, Statistiques, alors la tâche Moniteur la relance automatiquement.
Tâche Retasser
Elle est créée pour retasser la mémoire d'un entrepôt compactable. Cette tâche est créée lorsque la mémoire d'un entrepôt est entièrement consommée ou lorsqu'il est temps de compacter la mémoire. Le compactage peut être périodique si le paramètre RetasserMemoire de la configuration de Up ! Object Management System est défini.
Tâches Serveur
Elles sont créées pour servir des demandes émanant d'un programme client. Leur création et leur destruction sont dynamiques en fonction de la demande. Le nombre maximal de serveurs est défini par le paramètre NbServeurs de la configuration de Up ! Object Management System.
Services de données
Cela concerne uniquement les entrepôts de mémoire protégée ou publique.
Ces services localisent et transfèrent les objets demandés par les clients qui ne peuvent accéder directement aux objets de cet entrepôt. Ils réalisent également de petits traitements sur ces objets tels leur dénombrement ou leur destruction.
Services de traitements
Ces services sont uniquement présent en fonctionnement multi-processus, distribué ou en mode serveur.
Pour les objets ne comportant de données correspondant pas à une ressource (un fichier, une socquette, une tâche, etc.), ceux-ci sont directement utilisés par le client le nécessitant.
Pour les objets liés à une ressource, ceux-ci ne peuvent être uniquement utilisés que par le serveur, voire la tâche, l'ayant créé. En ce cas, un client nécessitant une action sur un tel objet ne le possédant pas envoie une demande de traitement au serveur de traitements propriétaire de l'objet.
Tâche Scruptateur
Elle est créée pour chaque programme serveur. Elle est à l'écoute des demandes de session à l'Uniform Resource Identifier (URI) URIServeur de la configuration de Up ! Object Management System.
La session du client à la tâche scruptateur du serveur est réalisée automatiquement. La tâche scruptateur recherche alors le serveur le moins chargé et affecte le nouveau client à celui-ci. Les serveurs sont partagés dans la limite du paramètre NbClients de la configuration de Up ! Object Management System. Au besoin, un nouveau serveur est lancé.
La liaison entre le client et la tâche serveur est maintenue tant que le client nécessite un service du serveur et tant que le serveur reste en activité.
La déconnexion du client au serveur est réalisée automatiquement lorsque le client a terminé son exécution.
Tâche Statistiques
La tâche Statistiques est créée pour servir le serveur Up ! Object Request Broker.
Cette tâche tient à jour les statistiques sur les transactions réalisées par le serveur pour des clients. Un rapport d'activité est envoyé toutes les quinze minutes au processus principal de Up ! Object Request Broker. Ces statistiques permettent à ce dernier de connaître quel est le serveur le moins chargé pouvant offrir tel ou tel service.