2012-02-07 33 views
8

Sto cercando di capire le differenze tra la programmazione CICS pseudo-conversazionale e conversazionale. Quali sono i vantaggi e gli svantaggi di ciascun approccio?Quali sono i vantaggi della programmazione CICS pseudo-conversazionale o conversazionale?

+3

Hey downvoters ... questa è una domanda seria. Saresti così veloce a svendere se OP chiedesse cosa ha caratterizzato REST o MVC? – NealB

+0

@NealB - La domanda come originariamente richiesta era un po 'approssimativa, ma ora dovrebbe essere in uno stato molto più pulito. –

+3

Questo dovrebbe essere riaperto. È una domanda perfettamente chiara e legittima. – JackCColeman

risposta

1

La risposta breve è che il codice di Pseudoconversion non contiene una MAPPA DI INVIO EXEC CICS seguita logicamente da una MAPPA DI RICEZIONE EXEC CICS senza un RETURN EXEC CICS intermedio. Pertanto il tuo programma non consuma risorse CICS durante il "tempo di riflessione" dell'utente.

Quando il programma EXEC CICS RETURNs, è possibile salvare le informazioni di stato in una commarea (tradizionale) o un canale con uno o più contenitori (poiché CICS TS 3.1).

Ci sono più dettagli, ma questo è il nudo di esso.

5

Ecco un link comparing conversational and pseudo conversational CICS

La differenza fondamentale è che in conversazione CICS un processo (programma) è "vivo" e tenendo le risorse (ad esempio di memoria, blocchi di database) in attesa di un evento (ad esempio utente dati forniti da una mappa dello schermo). In CICS pseudo-conversazionale, il processo "muore" (CICS RETURN) durante l'attesa di per un evento. Viene avviata una nuova unità di lavoro e le risorse vengono ridistribuite in risposta all'evento di attivazione.

Pseudo-conversazionale CICS viene spesso utilizzato per creare applicazioni interattive in CICS. Questa tecnica è efficiente sotto il profilo delle risorse poiché i blocchi di memoria e di database vengono rilasciati mentre l'utente sta "pensando" - che è la maggior parte delle volte. Il vantaggio netto è un uso più efficiente delle risorse, ma ci vuole un po 'più di sforzo per gestire la coerenza del database dal momento che è fino al programmatore per garantire l'integrità delle transazioni (a causa della perdita di blocchi nel corso della "conversazione").

Questo schema copre solo l'essenza dell'argomento. C'è molto di più rispetto a questo, ma è un inizio.

8

risposta di NealB è una buona, e si dovrebbe leggere

IBM's description

I principali pseudo programmi conversazionali vantaggio è ridotto l'utilizzo delle risorse del computer e non può contenere blocchi di database.

-------------------------------------------------------------- 

ho intenzione di provare ed esprimere la risposta in non IBM-mainframe Termini

Nella programmazione conversazionale, il programma invia uno schermo e attende che l'utente risponda. Il programma tenere su di memoria, risorse di database, ecc

cioè

Send Screen and wait for a users response 
    Evaluate user-response 
    when PF2 
     Do Something 
    when PF3  
     Do Some Thing else 

Pseudo-conversazionale programmazione è fondamentalmente un altro nome per l'evento-Based-programmazione.

  • Un programma pseudo-conversazionale risponde a Azioni utente o Eventi (cioè le chiavi PF).
  • Un programma pseudo-conversazionale viene eseguito solo quando
    1. introduttiva/chiamata da un altro programma
    2. L'utente fa determinate azioni (ad esempio risultati entrano/pk-key). in-tra tims- tutte le risorse vengono rilasciate

Un programma di pseudo-conversazione è un po 'come ActionListener in Java swing (o qualsiasi altro swing, Web, equivalenti SWT)

tendo a CICS struttura come

Initialise and get-screen and user-action 
    Evaluate 
    when initial-entry 
     Initial stuff 
     Send initial screen 

    When PF2 /* Delete Action */ 
     Do Delete 
     Send Response 
    When PF3 /* Insert Action */ 
     ...... 
    end-evaluate 
    exit program 

in Java-swing si potrebbe scrivere quanto sopra come

Class MyScreen implements ActionListener { 

    public MyScreen() { 
     Initial stuff 
     Add this actionlistners to various buttons 
     Display screen 
    } 


    public void actionPerformed(ActionEvent e) { 

     if (e.getSource() == deleteButton) { 
      Do Delete 
      update screen 
     } else if (e.getSource() == insertButton) { 
      ....... 
     } 
    } 
} 

Per quelli non da uno sfondo Mainframe, CICS è un server di applicazioni come qualsiasi server Web, ma invece di inviare pagine Web e ricevere richieste HTML, le mosse di CIC e le schermate del 3270-Terminal e riceve le risposte dal Terminale.

Nota: i CIC possono anche essere utilizzati come server Web.