Mode de déploiement d'Up ! Virtual Technical Machine

Déploiements classiques d'Up ! Virtual Technical Machine

Si vous utilisez l'une des offres suivantes : alors il est obligatoire de déployer au préalable Up ! Virtual Technical parce qu'elles reposent toutes sur cette dernière.

Quel que soit le mode de déploiement retenu :

Tout programme d'Up ! Application System, livré en standard ou développé en Up ! 5GL, est un assemblage de modules au moment de l'exécution. Les modules minimaux pour créer un sous-système sont : A cela s'ajoute le module principal d'une application. Dans les exemples suivants, il est dénommé MonModule.

Le fichier d'initialisation pour l'exécution du module principale est donnée par le fichier :

Démarrage du module principal

Le cycle de vie de l'exécution de l'application est :

Pour cela, il est nécessaire d'activer un code intermédiaire entre le système d'exploitation et l'application. Il s'agit de l'adaptateur d'Up ! Modules Manager pour le système d'exploitation cible.

Programme exécutable

Quand vous générez avec Up ! Compiler un programme exécutable natif à partir des fichiers sources écrits en Up ! 5GL, l'adaptateur d'Up ! Modules Manager est incorporé à l'exécutable produit.

L'adaptateur d'Up ! Modules Manager pour le système d'exploitation cible est activé automatiquement.

L'application se compile par :

upscmp.exe Source=MonModule Prm=...

L'application se lance par :

MonModule.exe Prm=...

Programme interprété

Quand vous faites interpréter par Up ! Script Engine les fichiers sources d'un programme écrit en Up ! 5GL, l'adaptateur d'Up ! Modules Manager fait partie de l'exécutable d'Up ! Script Engine.

L'adaptateur d'Up ! Modules Manager pour le système d'exploitation cible est activé automatiquement.

L'application se lance par :

upssng.exe Source=MonModule Prm=...

Programme interactif

Quand vous lancez Up ! Shell, vous êtes en interaction directe avec Up ! Virtual Technical Machine et vous pouvez invoquer toutes ses Application Program Interfaces (API) via une commande en Up ! 5GL.

De plus, vous pouvez charger dynamiquement un module écrit en Up ! 5GL dans la machine virtuelle, qu'il soit compilé ou interprété, puis invoquer ses API via une commande en Up ! 5GL.

L'adaptateur d'Up ! Modules Manager pour le système d'exploitation cible est activé automatiquement.

Les modules les plus fréquemment utilisés se déclarent dans ${UPS_HOME}/upssdk/sources/${UPS_LANGUAGE}/upsshl.upl.

L'application se lance par :

upsshl.exe Prm=...

Un module occasionnel se déclare en tapant à la console :

ImporterModule MonModule(<MonModule.upi>, ImporterDefinitions);

Voici quelques commandes :

DateSysteme();
1.0+Cos(Pi);
ChangerRepertoire(/tmp");
ListerFichiers(/tmp");
ListerProcessus();

Module chargé dynamiquement

Quand vous générez avec Up ! Compiler un module dynamique natif à partir des fichiers sources écrits en Up ! 5GL, l'adaptateur d'Up ! Modules Manager n'est pas incorporé aux bibliothèques dynamiques produites.

L'adaptateur d'Up ! Modules Manager pour le système d'exploitation cible doit être activé explicitement.

upssng.exe Source=MonModule Prm=...

L'application se compile par :

upscmp.exe Source=MonModule Prm=...

L'application se lance par :

upsmmr.exe Module=MonModule Prm=...

Sous-système

Un sous-système est un ensemble de processus partageant un poule de ressources. Ces processus sont isolés des autres processus.

L'avantage du partitionnement des machines en sous-systèmes est :

L'inconvénient du partitionnement des machines en sous-systèmes est :

Up ! Object Management System permet un partitionnement automatique en sous-système ainsi que la gestion automatique des synchronisations implicites pour l'accès optimisé aux ressources partagées. Pour les situations les plus particulières, Up ! System propose des synchronisations explicites via le type Synchronisation.

Sous-système isolé

Par défaut, chaque application d'Up ! Application System s'exécute dans leur propre sous-système. C'est le cas d'Up ! Compiler par exemple.

Quand l'application est simple ou quand sa durée d'exécution est relativement courte, ce choix est judicieux.

L'application se lance par :

MonModule.exe Prm=...

Sous-système partagé

Quand l'application est complexe parce qu'elle comporte de nombreuses tâches ou quand il s'agit d'un serveur s'exécutant en continu, il peut être opportun de créer un sous-système spécifique pour partager des tâches ou des ressources. Cela allège d'autant les machines.

Le cycle de vie de l'exécution de l'application devient :

Sauf mention particulière, tous les programmes sont utilisables dans un sous-système partagé.

Le sous-système se lance par :

upssrv.exe Noyau=mon-sous-systeme.ini Serveur=upssrv Prm=...

L'application se lance par :

MonModule.exe Noyau=mon-sous-systeme.ini Serveur=upssrv Prm=...

Architecture orientée services

Up ! Application System est fondé sur le concept de Service-Oriented Architecture.

Bus en technologie Up ! Object Request Broker

Le mécanisme d'appel de services propre à Up ! Virtual Machine est mise en oeuvre par Up ! Object Request Broker. Il est très simple à mettre en oeuvre puisque cela se résume à l'opérateur accès distant :

Voici un petit exemple pour copier un fichier vers un serveur appelé SunSolaris :

Source Composant "Exemple d'accès distant" Version 1.0.0;

Principal
Variable

Debut
MonServeur=Serveur("SunSolaris", "UpsKrn");
/* Localisation du serveur. */
F1=Fichier("c:/autoexec.bat", LectureTexte);
F2=Fichier@MonServeur("/tmp/autoexec.bat", EcritureTexte);
/* Ouverture du fichier à distance. */
Taille=256;
TantQue Taille==256 Faire
Fin TantQue
Fichier1.Fermer();
Fichier2.Fermer();
Fin Principal

L'accès distant s'applique à tout appel (procédure, fonction ou méthode), à tout type et à tout objet (module, entrepôt, exception et variable). La localisation du serveur est effectuée par Up ! Object Request Broker et la communication s'effectue par Up ! Network.

De plus, certaines Application Program Interface (API) d'Up ! Application System supportent l'accès distant dans les valeurs de leurs paramètres. Cela est notamment le cas pour celles manipulant les noms de fichier ou les noms de répertoire. Ainsi, pour copier un fichier d'une machine à une autre, l'exemple précédent n'est pas le plus puissant. Il suffit d'employer CopierFichier du module Up ! System qui supporte l'accès distant dans ses paramètres :

CopierFichier("c:/autoexec.bat", "/tmp/autoexec.bat@SunSolaris");

Bus en technologie tierce

Up ! Application System est également compatible avec les technologies tierces suivantes :

Cela s'effectue grâce aux adaptateurs pour l'intégration de services dans le but de soit :

Ces technologies peuvent être mixées au sein d'une même application.

Pour connaître comment créer un adaptateur client ou serveur pour un module, merci de se référer à la fiche Modules distribués.

Quand l'application est un fournisseur de services, il est généralement possible de soit incorporer Up ! Virtual Technical Machine dans le processus de l'application cliente ou soit de l'isoler. Pour plus de précisions, merci de se référer au manuel de déploiement de chaque technologie.

Serveur Internet, Intranet ou Extranet

Up ! Application System est aussi un serveur pour les technologies Internet, Intranet ou Extranet suivantes :

Pour la gestion de contenu, il est possible de :