Les entités Dialogue Serveur et Serveur
Le but de ces entités est de développer et de générer les composants serveur des applications client/serveur graphiques ou textuelles.
Le Dialogue Serveur est une enveloppe logique, fédératrice, qui regroupe les composants serveur d'une application.
Ce Dialogue permet de donner les caractéristiques générales de l'application et de spécifier des variantes et options de génération qui s'appliqueront par défaut à tous les composants serveur rattachés.
- Dans une architecture sans moniteur, les composants client communiquent
directement avec les composants serveur: chaque Composant Applicatif
est appelé directement par le Client ou par le Moniteur Client.
La structure du service ne dépend pas de la présence ou non d'un moniteur.
En revanche, vous devez coder dans chaque Composant Applicatif les traitements propres à la technique de communication ou au système de sécurité.
Les traitements propres à la gestion des bases de données sont spécifiés dans chaque service.
Les traitements de connexion ou d'ouverture des bases sont optionnellement indiqués en début des traitements du Composant Applicatif.
- Dans une architecture avec moniteur, le Moniteur Serveur appelle le service demandé et rend la
main soit au Moniteur Client, soit directement au Client.
Le Moniteur permet de regrouper les informations et les traitements communs (gestion des communications, compactage, trace, COMMIT, ROLLBACK, particularités du site). Pour certaines plates-formes telles que MICRO FOCUS et TUXEDO, il s'agit d'une obligation.
De plus, l'utilisation d'un Moniteur peut être justifiée par des contraintes applicatives (confidentialité, encryptage des données) ou techniques (protocoles de communication). Les options du Moniteur permettent à l'utilisateur de s'interfacer plus facilement avec sa propre méthode de communication et d'insérer ses traitements de sécurité et d'encryptage et de décryptage des données.
Le Composant Applicatif
Un Composant Applicatif fonctionne sur partie serveur de l'application et prend en charge un ensemble de services sur la Vue Logique.
Ces services peuvent être génériques et dédiés à des sélections et des mises à jour sur la Vue Logique ou être spécifiques et supporter des exigences fonctionnelles.
- L'accès aux ressources externes (fichiers, bases),
- Les contrôles et mises à jour,
- Les traitements spécifiques (calculs, méthodes d'extraction par exemple),
- La gestion des erreurs.
Les services génériques sont indépendants du moyen de stockage utilisé pour gérer leur persistance.
Un Composant Applicatif décrit ensuite les relations entre une Vue Logique et les objets de persistance utilisés pour sélectionner ou mettre à jour ses instances.
Le Moniteur Serveur
- Récupération des informations envoyées par le Client par l'intermédiaire de la zone de communication,
- Appel du Serveur correspondant au service demandé par le Client,
- Retour des informations au Moniteur Client.
Le Serveur de Libellés d'erreur
Le Serveur de Libellés d'erreur a pour fonction de gérer l'envoi des libellés associés aux erreurs détectées par les Composants Applicatifs. Ces libellés sont stockés dans un fichier dédié et généré.
Le Composant Applicatif d'Initialisation ou de Terminaison
Le Composant Applicatif d'Initialisation ou de Terminaison est réservé aux applications graphiques. Il permet d'implémenter des traitements spécifiques avant et après l'exécution d'une requête.
Il est appelé avant le premier appel de Composant Applicatif concerné par la requête à traiter et après le dernier Composant Applicatif exécuté.
Il est disponible indifféremment pour un traitement d'initialisation ou de terminaison.
Pour un traitement d'initialisation, seules les données envoyées par le composant client à travers le buffer utilisateur peuvent être traitées en entrée.
Par conséquent, la génération d'un Composant Applicatif d'Initialisation ou de Terminaison contient les fonctions d'accès et les PERFORM correspondant aux services associés aux Composants Applicatifs.
Génération
Pour des explications sur le contenu du code généré, reportez-vous à Structure du COBOL d'un Serveur généré.