Télécom (dialogue APPC pgm à pgm via ICFF)

BoTTom |    Changer de couleur
 
        Liaison pgm à pgm. 
 
          ->    Par l'intermédiaire de fichiers ICF.               CRTICFF 
                      (fichiers définis à l'aide du langage SDD)
 
                C'est l'interface entre les pgms et le support
                  de communication.
 
                Ces fichiers sont indépendants du type de support
                                                          (APPC,BSC,...)
 
          ->    A un fichier ICF on va associer X unité-pgm     ADDICFDEVE 
 
 
                   Ces unité-pgm permettent de définir un lieu éloigné.
                   (système cible) représenté par une DEVICE (APPC ou autre)
 
                   Un même fichier ICF peut donc permettre l'accès à  X
                    systèmes cibles.
 
 


|    Changer de couleur
 
 Sur le système source
 
             CRTDEVAPPC DEVD(DEVAPPC) RMTLOCNAME(AUTREAS)
 
             CRTICFF    FILE(FICICF) SRCFILE(QDDSSRC) ACQPGMDEV(*NONE)
 
             ADDICFDEVE FILE(FICICF) PGMDEV(DEV01) RMTLOCNAME(AUTREAS)
 
             PUIS   (RPG)               !   OU  (CBL)
                                        !
     C           'DEV01'   ACQ  FICICF  !   ACQUIRE "DEV01" FOR FICICF
                                        !
            ou  bien
 
             CRTICFF    FILE(FICICF) SRCFILE(QDDSSRC) ACQPGMDEV(DEV01)
 
 
           CECI va provoquer l'établissement d'une session 
 
                (lien logique entre deux systèmes)
 


|    Changer de couleur
 
              système A (source)                Systeme B (cible)
              ----------------------            ----------------------
              !                    !            !                    !
              ! °°°°°°°°           !            !                    !
              ! ° PGM1 °           !            !                    !
 Lien provoqué! °°°°°°°°           !            !                    !
  par OPEN    !   *                !            !                    !
              !   *                !            !                    !
              ! °°°°°°°            !            !                    !
              ! ° ICF °            !                                 !
              ! °°°°°°°            !            !                    !
              !   *                !            !                    !
 Lien provoqué!   * -----  ----- --!            !-- -----  -----     !
  par PGMDEV  !   * ! D !  ! C ! !L!            !L! ! C !  ! D !     !
  + ACQUIRE   !   **! E !**! T !*!I!<*** Z ****>!I!*! T !**! E !     !
              !     ! V !  ! L ! !N!            !N! ! L !  ! V !     !
              !     -----  ----- --!            !-- -----  -----     !
              ----------------------            ----------------------
 
                      ETABLISSEMENT D'UNE SESSION 
 


|    Changer de couleur
 
    Mais cela ne suffit pas (il n'y a pas de pgm actif sur le système cible)
 
    Il faut donc demander sur le système source l'activation d'un pgm sur
     le système cible.
 
    Cela va initialiser une transaction (liaison logique entre deux pgms)
    "à l'intérieur" de la session qui vient d'être établie
 
    On parlera de pgm-source et de pgm-cible pour une transaction.
 
    Un des mots-clés du langage SDD/ICF est EVOKE(nom-pgm)
 
    Lors de l'écriture d'un format contenant ce mot-clé
     (normalement au premier envoi) il y a demande de la
      part du système source d'initialisation automatique de ce
      pgm sur le système cible, ce pgm-cible utilisera lui aussi
      un fichier ICF.
 
   Puis il faudra connecter ce pgm-cible à la session initialement établie
    par l'ordre ACQUIRE.
 


|    Changer de couleur
 
              système A                                      Systeme B
              ----------------------            ----------------------
              !                    !            !                    !
              ! °°°°°°°°           !  PGM       !           °°°°°°°° !
              ! ° PGM1 °           !  activé    !           ° PGM2 ° !
              ! °°°°°°°°           !  par       !           °°°°°°°° !
              !   *                !  EVOKE     !                    !
              !   *                !            !                    !
              ! °°°°°°°            !            !                    !
              ! ° ICF °            !                                 !
              ! °°°°°°°            !            !                    !
              !   *                !            !                    !
              !   * -----  ----- --!            !-- -----  -----     !
              !   * ! D !  ! C ! !L!            !L! ! C !  ! D !     !
              !   **! E !**! T !*!I!<*** Z ****>!I!*! T !**! E !     !
              !     ! V !  ! L ! !N!            !N! ! L !  ! V !     !
              !     -----  ----- --!            !-- -----  -----     !
              ----------------------            ----------------------
 
 
 


|    Changer de couleur
 
Sur le système cible
 
 
             CRTICFF    FILE(FICICF) SRCFILE(QDDSSRC) ACQPGMDEV(*NONE)
 
             ADDICFDEVE FILE(FICICF) PGMDEV(DEV01) RMTLOCNAME(*REQUESTER) 
 
             PUIS   (RPG)               !   OU  (CBL)
                                        !
     C           'DEV01'   ACQ  FICICF  !   ACQUIRE "DEV01" FOR FICICF
 
 
            ou  bien
 
             CRTICFF    FILE(FICICF) SRCFILE(QDDSSRC) ACQPGMDEV(DEV01)
 
 
 
 
 
 


|    Changer de couleur
 
              Système A                                      Système B
              ----------------------            ----------------------
              !                    !            !                    !
              ! °°°°°°°°           !            !           °°°°°°°° !
              ! ° PGM1 °           !            !           ° PGM2 ° !
              ! °°°°°°°°           !            !           °°°°°°°° !
              !   *                ! Lien par --!------------->  *   !
              !   *                !  OPEN      !                *   !
              ! °°°°°°°            !            !            °°°°°°° !
              ! ° ICF °            ! Lien par                ° ICF ° !
              ! °°°°°°°            !  PGMDEV    !            °°°°°°° !
              !   *                !(*REQUESTER)!------------->  *   !
              !   * -----  ----- --!            !-- -----  ----- *   !
              !   * ! D !  ! C ! !L!            !L! ! C !  ! D ! *   !
              !   **! E !**! T !*!I!<*** Z ****>!I!*! T !**! E !**   !
              !     ! V !  ! L ! !N!            !N! ! L !  ! V !     !
              !     -----  ----- --!            !-- -----  -----     !
              ----------------------            ----------------------
 
                      ETABLISSEMENT D'UNE TRANSACTION
 


|    Changer de couleur
 
      Le dialoque entre ces deux pgms par l'intermédiaire des fichiers ICF
       est maintenant possible:
 
                 source                        cible      
           !-> 1 WRITE fmt1 --> (envoi)  2 --> READ  fmt1 (réception) -!
           !--                                                       <-!
 
     un changement du sens de dialogue est possible à l'initiative du pgm
      émetteur(mot-clé ALWWRT ou READ apres WRITE),il devient récepteur
 
     le pgm récepteur va recevoir un ordre de changement de sens (TRNRND)
      et va pouvoir devenir émetteur (WRITE)
 
                 source                        cible      
           !-> 1 WRITE fmt1 --> (envoi)  2 --> READ  fmt1 (réception) -!
           !     (avec ALWWRT)                              +TRNRND    !
           !                                                           !
           !-  4 READ  fmt2 <--          3 <-- WRITE fmt2            <-!
                 (reçoit TRNRND)               (avec ALWWTR)
 
 


|    Changer de couleur
 
   La Transaction peut être interrompue à la demande du pgm-cible
    ou du pgm-source.
 
 
   1/ Implicitement par CLOSE du fichier ICF (cela provoque également la
                                              fin de la session)
 
   2/ Explicitement par le mot-clé DETACH.
 
     Les pgms ne peuvent plus dialoguer,mais la session étant toujours
      active (liaison pgm-cible/SYSTME-source)
     le pgm-cible peut initialiser une autre transaction (avec un autre pgm)
      par EVOKE.
 
     Le pgm-cible peut continuer le traitement en autonome ou s'arrêter
 
 
 
 
 
 


|    Changer de couleur
 
   La session peut être interrompue
 
   1/ à la demande du pgm-source par l'ordre RELEASE
 
      (code opération du langage, inverse de l'acquire)
 
 
     C           'DEV01'   REL  FICICF      DROP "DEV01" FROM FICICF
 
     le pgm-source doit tester un code retour indiquant que la session
      ne peut être interrompue (transfert de données non terminé par ex)
 
  2/ à la demande du pgm-source ou du pgm-cible par le mot-clé EOS
     (END-OF-SESSION), la fin de session étant alors forcée.
                      ==> risque de perte de données.
 
    Le pgm-source peut initialiser une autre session.(ACQUIRE)
                       ou continuer le traitement en autonome ou s'arrêter.
 
    Le pgm-cible peut continuer le traitement en autonome ou s'arrêter.
 


|    Changer de couleur
   ------------------- 1 SESSION / 1 TRANSACTION -----------------------
S  ! 1/ VRYCFG               !***** Z ******! 1/ VRYCFG                ! C
O  !....pgms......  ..ICFF.. !              !                          ! I
U  !:2/ OPEN ICF :===>     : !              ! ..ICFF..                 ! B
R  !:            :  :      : ! Session      ! :      :                 ! L
C  !:3/ ACQUIRE  :=========================>! :      :                 ! E
E  !:            :  :      : ! transaction  ! :      :                 !
   !:4/ EVOKE    :============================:      :===>.pgmc........!
   !:   (pgmc)   :  :      : !              ! :    <=====:  5/ OPEN   :!
   !:            :  :      : !              ! :      :   :            :!
   !:          <=========================================:=>6/ ACQUIRE:!
   !:            :  :      : !              ! :      :   :   *REQUESTER!
   !:7/snd-rcv <=======data=======data========data=======:=>7/snd-rcv :!
   !:            :  :      : !              ! :      :   :            :!
   !:8/ DETACH  ===========================>! == / <=====:= 8/DETACH  :!
   !:  (session  :  :      : !              ! :      :   :  (fin de   :!
   !:   active)  :  :      : !              ! :      :   :   session) :!
   !:9/ RELEASE  :====>    : !              ! :      : <=:/==.CLOSE...:!
   !:  (fin de   :  :      : !              ! :      :                 !
   !:   session) :  :      : !              ! :      :                 !
   !:...CLOSE.==/:=>:......: !              ! :......:                 !
   ---------------------------              ----------------------------


|    Changer de couleur
   ------------------- 1 SESSION / x TRANSACTIONS ----------------------
S  ! 1/ VRYCFG               !***** Z ******! 1/ VRYCFG                ! C
O  !....pgms......  ..ICFF.. !              !                          ! I
U  !:2/ OPEN ICF :===>     : !              ! ..ICFF..                 ! B
R  !:3/ ACQUIRE  :=========================>! :      :                 ! L
C  !:4/ EVOKE    :============================:      :===>.pgmc........! E
E  !:   (pgmc)   :  :      : !              ! :    <=====:= 5/ OPEN   :!
   !:          <=========================================:=>6/ ACQUIRE:!
   !:            :  :      : !              ! :      :   :   *REQUESTER!
   !:7/snd-rcv <=======data=======data========data=======:=>7/snd-rcv :!
   !:8/ DETACH  ===========================>! == / <=====:= 8/DETACH  :!
   !:            :  :      : !              ! :      : <=:/==.CLOSE...:!
   !:            :  :      : !              ! :      :                 !
   !:9/ EVOKE    :============================:      :===>.pgmc2.......!
   !:   (pgmc2)  :  :      : !              ! :    <=====:= 10/OPEN   :!
   !:          <=========================================:=>11/ACQUIRE:!
   !:            :  :      : !              ! :      :   :   *REQUESTER!
   !12/snd-rcv <=======data=======data========data=======:=>  snd-rcv :!
   !13/ DETACH  ===========================>! == / <=====:= 13/DETACH :!
   !14/ RELEASE  :====>    : !              ! :      : <=:/==..CLOSE..:!
   !:...CLOSE.==/:=>:......: !              ! :......:                 !
   ---------------------------              ----------------------------


|    Changer de couleur
   ------------------ x SESSIONS / x TRANSACTIONS ---    -------------------
   ! 1/ VRYCFG       !**** Z *****! 1/ VRYCFG       !*Z**! 1/VRYCFG        !
   !....pgms......   !            !                 !    !                 !
   !:2/ OPEN ICF :===>            !                 !    !                 !
   !:3/ ACQUIRE  :===============>!                 !    !                 !
   !:4/ EVOKE    :===================>.pgmc.........!    !                 !
   !:   (pgmc)   :   !            !<==:= 5/ OPEN   :!    !                 !
   !:          <======================:=>6/ ACQUIRE:!    !                 !
   !:            :   !            !   :   *REQUESTER!    !                 !
   !:7/snd-rcv <=========data=========:=>7/snd-rcv :!    !                 !
   !:            :   !            !   :  8/ACQUIRE======>!                 !
   !:            :   ! session et !   :  9/EVOKE ===========>.pgmz.........!
   !:            :   ! transaction!   :            :!<=======:= 10/OPEN   :!
   !:            :   ! toujours   !   :         <==============>11/ACQUIRE:!
   !:            :   ! activés    !   :            :!    !   :   *REQUESTER!
   !:            :   !            !   :         <=====data=====>  snd-rcv :!
   !:            :   !            !   :            :!<=== / =:= 12/DETACH :!
   !:           <=======================>          :!    ! <=:/==..CLOSE..:!
   !13/ DETACH  =================>!   :            :!    !                 !
   !14/ RELEASE  :==>!            !   :            :!    !                 !
   !:...CLOSE.==/:=> !            !   :............:!    !                 !
   ---------système I-            --------système II-    -------système III-


|    Changer de couleur
 
     Un fichier ICF peut être associé à plusieurs DEVICE telecom
        (dialogue entre un et plusieurs)
 
 
    Un fichier ICF peut être rattaché à une unité INTRA
     cela permet de faire dialoguer deux pgms du même système
     comme s'il étaient en réseau (test de fichiers ICF ,ou travaux
                                    asynchrones)
 
 
    Passe-système, DDM et SNADS utilisent des fichiers ICF.
 
    Il existe une alternative aux fichiers ICF (provoquant le même résultat
     et le même type de dialogue logique), Les CPI de communication.
 
    Les mêmes fonctionnalités sont mises en oeuvre par l'appel de routines
     système. Ces routines sont communes à beaucoup de systemes de la
     gamme IBM (architecture S/370 par ex.) ceci pour un souci de cohérence
     dans le cadre SAA.
 
 





©AF400