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 :
- Up ! Software Development Kit.
- Up ! Virtual Business Machine.
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 :
- L'organisation physique de la distribution est identique.
Pour plus de précisions, merci de consulter la fiche Contenu du produit livré.
- Le paramètrage des modules est quasi identique.
Les seuls modules impactés par la politique de déploiement sont :
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 :
- Up ! Kernel.
- Up ! Modules Manager.
- Up ! Natural Language Support.
- Up ! Object Management System.
- Up ! System.
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 :
- ${UPS_HOME}/ini/${UPS_LANGUAGE}/${MonModule}.ini en mode mono-utilisateur ou ${UPS_HOME}/ini/${UPS_USER}/${MonModule}.ini en mode multi-utilisateur.
S'il en existe un particulier pour cette application.
- ${UPS_HOME}/ini/${UPS_LANGUAGE}/upsaps.ini en mode mono-utilisateur ou ${UPS_HOME}/ini/${UPS_USER}/upsaps.ini en mode multi-utilisateur.
S'il n'existe pas de profil particulier pour cette application i.e. le profil par défaut est utilisé.
Démarrage du module principal
Le cycle de vie de l'exécution de l'application est :
- Créer le sous-système d'exécution.
- Lancer la fonction Principal du module principal.
- Arrêter le sous-système d'exécution.
- Renvoyer le code retour de Principal au système d'exploitation.
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 :
- Quantifier l'usage des ressources.
En particulier le Cpu, les entrées-sorties et la mémoire.
- Partager des ressources.
En particulier des tâches de fond ou des entrepôts de données.
- Rendre les applications plus robustes.
Du fait de l'isolement, en cas de dysfonctionnement dans un sous-système, cela ne perturbe pas les autres.
L'inconvénient du partitionnement des machines en sous-systèmes est :
- Les synchronisations - Partie programmation.
Protéger l'accès aux ressources du poule nécessite normalement du code supplémentaire délicat.
- Les synchronisations - Partie exécution.
Ralentissement des programmes du fait des synchronisations pour les accès exclusifs aux ressources.
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 :
- Se connecter au sous-système d'exécution.
- Lire les références du dictionnaire de données et de traitements.
- Lancer la fonction Principal du module principal.
- Lâcher les références du dictionnaire de données et de traitements.
- Se déconnecter au sous-système d'exécution.
- Renvoyer le code retour de Principal au système d'exploitation.
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
MonServeur : Nul Ou Serveur;
Fichier1 : Fichier;
Fichier2 : Fichier;
Buffer : Caractere;
Taille : Entier;
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
Taille=Fichier1.Lire(Buffer,256);
Fichier2.Ecrire(Buffer);
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 :
- Advanced Business Applications Programming (ABAP).
- Component Object Module (COM).
- Common Object Request Broker Architecture (CORBA).
- Java ou Entreprise Java Beans (EJB).
- Programming Language/Structured Query Language (PL/SQL).
- Simple Object Activation Protocol (SOAP).
Cela s'effectue grâce aux adaptateurs pour l'intégration de services dans le but de soit :
- Consommer des services offerts en une technologie tierce.
Nous parlons d'adaptateur client puisque l'application en Up ! 5GL est un client du serveur en technologie tierce.
- Offrir des services dans une technologie tierce.
Nous parlons d'adaptateur serveur puisque l'application en Up ! 5GL est un serveur pour les clients en technologies tierces.
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 :
- Internet Mail Access Protocol (IMAP), Post Office Protocol (POP) et Simple Mail Transfer Protocol (SMTP).
Courrier électronique.
- File Transfer Protocol (FTP).
Transferts de fichiers.
- HyperText Markup Protocol (HTTP).
Gestion de contenu.
Pour la gestion de contenu, il est possible de :
- Isoler Up ! Virtual Technical Machine du serveur Internet, Intranet ou Extranet de l'entreprise.
L'avantage est d'avoir une meilleure robustesse de l'application et une meilleure sécurité sur l'enchaînement des logiciels.
La communication s'effectue par des relais Http sur des canaux spécifiques nécessitant une ouverture du pare-feu interne pour cela.
- Incorporer Up ! Virtual Technical Machine dans le serveur Internet, Intranet ou Extranet de l'entreprise.
L'avantage est d'avoir une vitesse d'exécution optimale sans devoir ouvrir le pare-feu interne pour réaliser un système d'applications spécifique.