Documentation Lua en PDF


Télécharger Documentation Lua en PDF

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Documentation Lua pour reviser ensemble [Eng]

...

Ce chapitre présente les concepts fondamentaux de LUA, l'interface de programmation d'application LU (unité logique) conventionnelle.

Les sujets abordés dans ce chapitre sont les suivants:

  • Qu'est-ce que LUA?
  • Choix de l'interface à utiliser (RUI ou SLI)

 · LU et sessions

Les verbes LUA

  • Exemple de séquence de communication LUA

Compatible avec LUA

Qu'est-ce que LUA?

LUA (Interface de programmation d'application LU conventionnelle) est une API qui vous permet d'écrire des applications CS / AIX pour communiquer avec des applications hôtes.

L'interface LUA est fournie au niveau de l'unité de demande / réponse (RU), permettant au programmeur de contrôler les messages SNA (Systems Network Architecture) envoyés entre CS / AIX et l'hôte. Il peut être utilisé pour communiquer avec l'un des types de LU 0, 1, 2 ou 3 sur l'hôte; il appartient à l'application d'envoyer les messages SNA appropriés comme requis par l'application hôte.

Par exemple, vous pouvez utiliser LUA pour écrire un programme d'émulation 3270 qui communique avec une application hôte 3270; une version simple de ceci est incluse comme exemple d'application LUA avec CS / AIX, et décrite au Chapitre 6, «Exemple d'application LUA», à la page 147.

AIX, LINUX

Si votre système CS / AIX prend en charge la passerelle SNA pour les communications avec les unités centrales en aval, vous pouvez également écrire une application LUA qui agit en tant que principal SNA pour les communications avec les unités secondaires sur ces unités centrales en aval. Cela vous permet d'émuler une application hôte sur le nœud CS / AIX ou de décharger le traitement d'une application hôte vers le nœud CS / AIX. Cette fonction est décrite comme «RUI primaire»; il est spécifique à CS / AIX et ne peut pas être fourni par d'autres implémentations LUA.

Choisir l'interface à utiliser

LUA inclut deux interfaces de programmation différentes à différents niveaux:

Choisir l'interface à utiliser

  • L'interface RUI (Request Unit Interface) est fournie au niveau de l'unité de demande / réponse (RU), permettant au programmeur de contrôler les messages SNA (Systems Network Architecture) envoyés entre CS / AIX et l'hôte. Il appartient à l'application de générer et d'envoyer les messages SNA appropriés selon les besoins de l'application hôte.

L'interface RUI prend en charge les profils de gestion de fonction SNA 2, 3, 4, 7 et 18 et les profils de services de transmission SNA 2, 3, 4 et 7.

  • L'interface de niveau session (SLI, Session-Level Interface) est une interface de niveau supérieur, permettant au programmeur de travailler à un niveau de message logique plutôt que d'être concerné par le détail de chaque EF. Par exemple:
  • La session peut être établie et terminée avec un seul verbe SLI (plutôt qu'avec une séquence de verbes RUI correspondant aux RU individuelles impliquées dans le démarrage et la fin de la session).
  • La bibliothèque SLI contrôle le chaînage lorsque l'application a besoin d'envoyer ou de recevoir des données plus longues que la longueur RU maximale spécifiée dans le BIND.
  • Pour la plupart des commandes SNA envoyées à l'hôte, la bibliothèque SLI peut créer la RU appropriée à la demande de l'application.

L'interface SLI prend en charge les profils de gestion de fonction SNA 3 et 4 et les profils de services de transmission SNA 3 et 4.

Une application ne peut utiliser qu'une seule de ces interfaces pour chaque session. Par exemple, s'il démarre une session à l'aide du RUI, il ne peut plus émettre de verbes SLI sur cette session.

Vous devez prendre en compte les points suivants avant de décider quelle API utiliser.

  • Le SLI gère certains des détails de chaque EF et de leur contenu, ce qui simplifie le traitement requis dans l'application. L'IUD exige que la demande traite chaque UR individuellement.
  • Le RUI fournit un contrôle sur le contenu détaillé des EF envoyées à l'hôte, et permet l'utilisation d'une large gamme de profils de liaison SNA. Le SLI n'offre pas le même degré de contrôle ou de flexibilité.

AIX, LINUX

  • L'interface RUI inclut le RUI principal (AIX ou Linux uniquement), ce qui vous permet d'écrire une application qui joue le rôle de principal SNA pour les communications avec les PU en aval. L'interface SLI ne fournit pas cette fonction.

Une application LUA utilise une LU de type 0â € "3 qui communique avec le système hôte au moyen du nœud CS / AIX. Il existe trois sessions entre le nœud CS / AIX et le nœud hôte, comme suit:

 · La session du point de contrôle des services de l'unité physique (PU-SSCP), entre l'unité centrale 2.1 et le point de contrôle des services système de l'hôte (SSCP); ceci est utilisé pour contrôler le PU.

  • La session SSCP, entre le CS / AIX LU et le SSCP; Ceci est utilisé pour contrôler le LU.

 · La session LU, entre le LU CS / AIX et le LU hôte; Ceci est utilisé pour le transfert de données entre la LU et l'application hôte.

L'interface de programmation d'application LUA permet aux applications d'envoyer et de recevoir des données sur la session SSCP et sur la session LU. Il ne fournit pas l'accès à la session PU-SSCP. Une application LUA peut envoyer des données sur cette session en utilisant le verbe Services de gestion (MS) TRANSFERÂ? Â € "MSâ €? DATA; Pour plus d'informations, reportez-vous au Communications Server for AIX MS Programmer ™ Guide.

LES FENÊTRES

Pour les systèmes d'exploitation Windows, TRANSFERÂ? MS â € "DATA est fourni dans le cadre de l'API CSV (Common Service Verb); Pour plus d'informations, reportez-vous au Communications Server for AIX CSV Programmer ™ Guide.

AIX, LINUX

La Figure 2, à la page 4, montre les composants SNA utilisés pour les communications LUA utilisant RUI primaire vers une LU en aval.

...

Une application RUI primaire utilise une LU de type 0 â € "3 qui communique avec la LU en aval au moyen du noeud CS / AIX. Du point de la LU en aval, la LU CS / AIX agit en tant que LU hôte, et le nœud CS / AIX agit en tant que SSCP hôte. Les trois sessions entre ces composants et les restrictions sur l'accès à ces sessions sont équivalentes à celles d'une application LUA communiquant avec un hôte.



Chacune des sessions LU fournit deux priorités de messages: normal et accéléré. Les messages de flux accélérés ont la priorité sur les autres messages en attente d'être transmis sur la même session. Il existe quatre flux différents sur lesquels un message peut être envoyé ou reçu:

Session SSCP, flux accéléré

Session LU, flux accéléré

Session SSCP, flux normal

 · session LU, flux normal

Le flux normal de session LU transporte des données d'application; les autres flux sont utilisés pour les messages de contrôle et de démarrage.

L'implémentation CS / AIX de LUA ne permet pas aux applications d'envoyer des données sur le flux accéléré SSCP et ne renvoie pas de données à une application sur ce flux.

Configuration

Chaque LU utilisée par une application LUA doit être configurée à l'aide du programme d'administration Motif, du programme d'administration de ligne de commande ou de l'API NOF (pour plus d'informations, reportez-vous au Guide d'administration de Communications Server pour AIX ou à Communications Server pour AIX NOF Programmer ™ Guide s). En outre, la configuration CS / AIX peut inclure des pools LU. Un pool est un groupe de LU avec des caractéristiques similaires, de sorte qu'une application peut utiliser n'importe quelle LU libre du groupe. Cela peut être utilisé pour allouer les LU selon le principe du premier arrivé, premier servi quand il y a plus d'applications que LU disponibles, ou pour fournir un choix de LUs sur différentes connexions.

Verbes LUA

Une application accède à LUA à travers les verbes LUA. Chaque verbe fournit des paramètres à LUA, qui exécute la fonction désirée et renvoie les paramètres à l'application.

RUI Sommaire des verbes

La liste suivante contient un bref résumé de chacun des verbes LUI RUI (pour une explication détaillée de chaque verbe, voir le chapitre 4, «Verbes RUI», à la page 55):

RUI_BID

Ce verbe permet à l'application de déterminer quand les informations de l'hôte peuvent être lues.

RUI_INIT

Ce verbe configure la session SSCP pour une application LUA.

AIX, LINUX

RUI_INIT_PRIMARY

Ce verbe configure la session SSCP pour une application LUA agissant en tant que SNA principal pour les communications avec une LU en aval.

RUI_PURGE

Ce verbe annule un verbe RUI_READ en cours.

RUI_READ

Ce verbe reçoit des données ou des informations d'état envoyées par l'hôte à la LU de l'application LUA, soit sur la session SSCP, soit sur la session LU.

AIX, LINUX

RUI_REINIT

Ce verbe rétablit la session SSCP pour une application LUA après un échec de session. Il est destiné à être utilisé par une application qui utilisait une LU à partir d'un pool, et doit rétablir la session en utilisant la même LU afin de poursuivre son traitement.

RUI_TERM

Ce verbe termine la session SSCP pour une application LUA. Il fait également tomber la session LU si elle est active.

RUI_WRITE

Ce verbe envoie des données à l'hôte sur la session SSCP ou la session LU.

SLI Sommaire des verbes

La liste suivante contient un bref résumé de chacun des verbes LUA SLI (pour une explication détaillée de chaque verbe, voir Chapitre 5, «Verbes SLI», page 99):

SLI_BID

Ce verbe permet à l'application de déterminer quand les informations de l'hôte peuvent être lues.

SLI_CLOSE

Ce verbe termine la session pour une application LUA.

SLI_OPEN

Ce verbe configure la session pour une application LUA.

SLI_PURGE

Ce verbe annule un verbe SLI_RECEIVE en suspens.

SLI_RECEIVE

Ce verbe reçoit des données ou des informations d'état envoyées par l'hôte à la LU de l'application LUA, soit sur la session SSCP, soit sur la session LU.

SLI_SEND

Ce verbe envoie des données à l'hôte sur la session SSCP ou la session LU.

Sur le verbe SLI_OPEN, l'application peut éventuellement spécifier les adresses de ses propres routines pour traiter les demandes BIND, STSN et SDT de l'hôte. S'il fournit ces routines et qu'une requête du type approprié arrive de l'hôte, LUA envoie un verbe supplémentaire à la routine appropriée fournie par l'application pour lui permettre de traiter la requête, comme suit.

SLI_BIND_ROUTINE

LUA envoie ce verbe à la routine BIND fournie par l'application lorsqu'une requête BIND arrive de l'hôte. L'application peut accepter le BIND, négocier les paramètres BIND, ou rejeter le BIND comme décrit dans "Informations SNA" à la page 34.

Si l'application ne fournit pas de routine BIND, LUA effectue une vérification BIND limitée et répond à l'hôte de manière appropriée.

SLI_STSN_ROUTINE

LUA envoie ce verbe à la routine STSN fournie par l'application lorsqu'une requête STSN arrive de l'hôte. L'application peut répondre au STSN ou le rejeter avec un code de détection SNA approprié, comme décrit dans «Informations SNA» à la page 34.

Si l'application ne fournit pas de routine STSN, LUA renvoie une réponse positive indiquant qu'aucune donnée n'est disponible.

SLI_SDT_ROUTINE

LUA envoie ce verbe à la routine SDT fournie par l'application lorsqu'une requête SDT arrive de l'hôte. L'application peut répondre au SDT ou le rejeter avec un code de détection SNA approprié, tel que décrit dans «Informations SNA» à la page 34.

Si l'application ne fournit pas de routine SDT, LUA renvoie une réponse positive.



Achèvement asynchrone du verbe

Certains verbes LUA se terminent rapidement, après un traitement local (par exemple le verbe RUI_PURGE); Cependant, la plupart des verbes prennent un certain temps, car ils nécessitent l'envoi et la réception de messages depuis le nœud ou depuis l'application hôte. Pour cette raison, LUA est implémenté en tant qu'interface asynchrone;

Le contrôle peut être renvoyé à l'application alors qu'un verbe est toujours en cours, de sorte que l'application est libre de poursuivre le traitement (y compris l'émission d'autres verbes LUA).

AIX, LINUX

Lorsque le verbe se termine, LUA appelle une routine de rappel fournie par l'application. Cette routine peut effectuer un traitement supplémentaire sur les données renvoyées, émettre d'autres verbes LUA, ou simplement agir comme un indicateur que le verbe a terminé.

Les verbes RUI peuvent compléter synchrone ou asynchrone. L'application doit vérifier le code de retour principal dans le VCB pour déterminer quel mode d'achèvement s'applique pour chaque verbe.

Les verbes SLI sont toujours complets de manière asynchrone. Après l'émission du verbe, l'application ne doit pas accéder au VCB tant que sa routine de rappel n'a pas été appelée. Il peut traiter le VCB soit à partir de la routine de rappel, soit à partir du thread d'exécution principal du programme après la fin de la routine de rappel.

LES FENÊTRES

Lorsque le verbe se termine, LUA publie un message dans un descripteur de fenêtre fourni par l'application ou signale un descripteur d'événement fourni par l'application.

Pour plus d'informations, reportez-vous au Chapitre 2, «Conception et écriture d'applications LUA», page 13.

Exemple de séquence de communication LUA

La Figure 3, à la page 9, montre un exemple de séquence de communication LUA utilisant des verbes RUI, et la Figure 4, page 10, montre la séquence équivalente en utilisant les verbes SLI.

Dans l'exemple RUI, l'application effectue les étapes suivantes:

  1. Émets le verbe RUI_INIT pour établir la session SSCP. Le verbe RUI_INIT ne se termine pas tant que CS / AIX n'a ​​pas reçu un message d'activation de l'unité logique (ACTLU) de l'hôte et a envoyé une réponse positive; Toutefois, ces messages sont gérés par CS / AIX et non exposés à l'application LUA.
  2. Envoie un message INITSELF au SSCP, pour demander un BIND et lit la réponse.
  3. Lit un message BIND à partir de l'hôte et écrit la réponse. Ceci établit la session LU.
  4. Lit un message SDT de l'hôte, ce qui indique que l'initialisation est terminée et que le transfert de données peut commencer.
  5. Envoie une chaîne de données composée de trois EF (la dernière indique qu'une réponse définie est requise) et lit la réponse.
  6. Lit une chaîne de données composée de deux EF et écrit la réponse.
  7. Lit un message UNBIND de l'hôte et écrit la réponse. Cela termine la session LU.

. Émets le verbe RUI_TERM pour terminer la session SSCP. (CS / AIX envoie un message NOTIFY à l'hôte et attend une réponse positive, mais ces messages sont traités par CS / AIX et ne sont pas exposés à l'application LUA.)

L'exemple SLI montre la même séquence de messages circulant entre l'hôte et l'application. Les verbes SLI utilisés sont similaires à ceux utilisés dans l'exemple RUI, mais notez les différences suivantes:

SLI_OPEN gère l'initialisation complète de la session; l'application n'a pas besoin de lire et d'écrire chaque RU individuelle dans la séquence d'initialisation, comme dans l'exemple RUI.

LUA utilise les routines BIND et SDT de l'application (spécifiées sur SLI_OPEN) pour permettre à l'application de traiter les messages BIND et SDT de l'hôte. Ces routines doivent retourner de manière synchrone. Tous les autres verbes SLI sont complets de manière asynchrone.

SLI_RECEIVE et SLI_SEND gèrent des chaînes de données complètes, de sorte que l'application n'a besoin que d'un seul verbe pour recevoir ou envoyer les données, même si elle est suffisamment longue pour nécessiter deux ou trois RU. (Dans l'exemple RUI, l'application doit recevoir ou envoyer chaque RU avec un verbe séparé.)

La liste qui suit montre les abréviations utilisées dans la Figure 3 à la page 9et dans la Figure 4 à la page 10.

Session SSCP de la norme SSCP, flux normal

LU LU session normale, flux normal

LU LU LU session, flux accéléré

+ rsp Réponse positive au message indiqué

BC Begin chaîne

MC Milieu de chaîne

Chaîne d'extrémité EC

CD Changer le jeu d'indicateurs de direction

RQD Réponse définie requise

La figure 3, à la page 9, montre les verbes RUI utilisés pour démarrer une session, échanger des données et terminer la session, ainsi que les messages SNA envoyés et reçus. Les flèches indiquent la direction dans laquelle les messages SNA circulent.

Compatibilité LUA

Les verbes RUI_INIT_PRIMARY et RUI_REINIT sont des extensions de la spécification d'interface LUA standard. Ils ne sont pas disponibles sur un client Remote API sur Windows et peuvent ne pas être disponibles dans d'autres implémentations LUA.

  Compatibilité LUA

LES FENÊTRES

L'implémentation de LUA sur le client Remote API sur Windows est conçue pour être compatible avec Windows LUA (tel que défini par la spécification WOSA SNA); les applications écrites pour Windows LUA peuvent être utilisées avec le client Remote API sans modification.



68