Up ! Application System permet de faire inter opérer aisément des programme écrits en Up ! 5GL entre eux ou avec des programmes écrits dans un autre langage. Pour cela il existe deux mécanismes : les modules distribués et les accès distants.
La liaison entre les processus, celui exécutant le programme et ceux des serveurs, s'effectuent par une couche logicielle qui peut être Up ! Object Request Broker - Up ! Network, Component Object Module (COM) ou Common Object Request Broker Architecture (CORBA). Pour plus de précisions, veuillez vous référer à la fiche détaillant Les modules distribués.
L'usage d'un module distribué est indépendant de la nature, du type, de l'architecture et de la localisation du serveur de ce module. En effet, la couche logicielle servant de liaison s'occupe de réaliser les transcriptions d'architecture telles le passage 32 bits - 64 bits, les différences entre les processeurs Complex Instruction Set Chip (CISC) et les processeurs Reduce Instruction Set Chip (RISC). D'autre part, la localisation du serveur est effectuée au moment du lancement du programme par l'Orb. Le client n'a pas de choisir son serveur. Cela est fait par l'Orb.
Ce mécanisme peut de faire inter opérer aisément des programme écrits en Up ! 5GL entre eux ou avec des programmes écrits dans un autre langage.
Voici les différences entre ce mécanisme et le précédant :
Source Composant "Exemple d'accès distant" Version 4.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=Fichier1.Lire(Buffer,256);
TantQue Taille==256 Faire
Fichier2.Ecrire(Buffer);
Fin TantQue
Taille=Fichier1.Lire(Buffer,256);
Fichier2.Ecrire(Buffer);
Fichier1.Fermer();
Fichier2.Fermer();
Fin Principal
De plus certaines Application Program Interface (API) de Up ! Application System supportent l'accès distant dans les valeurs de leur paramètre. 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 l'Application Program Interface (API) CopierFichier qui supporte l'accès distant dans ses paramètres :
CopierFichier("c:/autoexec.bat", "/tmp/autoexec.bat@SunSolaris");
Un noeud est caractérisé par une machine (le serveur physique) et une adresse de communication (le protocole de Up ! Net est multi-services). Un même machine peut donc héberger plusieurs noeuds même si cela est déconseillé. Les machines peuvent être homogènes ou hétérogènes (différents plates-formes matérielles, différents systèmes d'exploitation, différents catégories de machine). Une topologie peut comporter au plus 65534 noeuds.
Chaque noeud a son propre serveur Up ! Object Request Broker local. Il existe un noeud maître comportant le serveur Up ! Object Request Broker maître. Les autres serveurs locaux sont des esclaves du serveur maître.
Chaque noeud doit être en mesure de communiquer avec les autres noeuds via les services retenus.
Le serveur maître maintient à jour un modèle de la topologie (noeuds, serveurs disponibles pour un noeud, modules desservis par un serveur). Il est informé des modifications de la topologie par les serveurs esclaves, ces derniers étant informés par les serveurs de traitements et de données. Les serveurs esclaves possèdent une copie du modèle de la topologie.
Les serveurs sont identifiés de manière unique par un numéro. Une topologie peut comporter au plus 65534 serveurs.
Il existe deux types de serveurs de traitements et de données :
Dans l'exemple ci-dessus, la topologie est composée de sept noeuds répartis sur cinq machines (Mars, Jupiter, Pluton, Saturne et Terre). Le noeud maître est sur la machine terre. Les machines Mars et Saturne hébergent deux noeuds distingués par le numéro de port : 1632 et 1633.
Un programme en technologie Up ! Virtual Technical Machine évoluant dans cette topologie pourra travailler avec les serveurs de ces sept noeuds.
Une statistique du nombre de transactions réalisées et du nombre moyen de transactions par minute est rapportée dans le journal de chaque serveur Up ! Object Request Broker local. Cette statistique est détaillée pour chaque serveur.
Pour connaître la configuration de Up ! Object Request Broker, veuillez vous référer à la fiche Paramètres de Up ! Object Request Broker.