|
Come funziona il CGI Web
Il concetto a cui siamo stati legati per molti anni nell'utilizzo delle mappa video nel mondo AS400, e' che il programma gestisce il file video all'interno del proprio cicolo RPG e l'interazione con l'utente e' un tutt'uno.
Avvio pgm
Emissione file Video ( EXFMT )
.. attesa dell'utente ...
elaborazione del pgm
uscita o ritorno all'emissione video.
Inoltre il sistema assegna ad ogni utente un Lavoro (JOB) ed una copia del formato Video univoco nel sistema. Questo fa' si che le variabili locali di un job siano diverse fra' loro. Questo vuol dire che il terminale DSP01A ha sul suo video una variabile Locale che non potra' vedere il DSP01B.
Invece per il CGI le cose sono leggermente diverse: un solo programma gestisce tutte le richieste proveniente dal Web ( Anche se poi il Server HTTP ne puo' avviare piu' di uno in caso lo ritenga necessario). La richiesta proveniente dal Browser viene rilevata dal Server HTTP che poi passa al progrmma CGI, il quale elabora la varibili di input, elabora la richiesta, emette una risposta (solitamente un file HTM) e poi esce facendo il percorso inverso.Quindi sta' al programmatore gestire le variabili in ingresso ed in uscita ad ogni singolo ciclo.
Un'idea di cosa fa' il CGIDEV2
Il CGIDEV2 e' alla fine una sola libreria, che contiene file Sorgenti, file Dati, programmi ed altri oggetti comuni al mondo As400. Sfuttando la fantastica programmazione in ILE ( Integrated LAnguage Enviroment ), nei nostri programmi andremo a inserire alcune definizione tramite la sempice /COPY che sono i prototipi del CGIDEV2. Poi la compilazione andra' ad incapsulare i nostri moduli con i nostri Srvpgm e quelli del CGIDEV2. Alla fine avremo un programma idoneo ad interagire con il Browser e che verra' richiamato assieme a tutte le variabili necessarie alla sua funzione. Il CGI in pratica legge il nostro file e le nostre variabili, lo rielabora e lo compone, e lo manda al browser, sostituendo la nostra variabile con il dato, con quella presente nel file HTML.
Scomponiamo una chiamata al nostro programma:
http:// www.toninelli.it/cgi-bin/pub/HCGIP01R.pgm?ACTION=ExeRicerca
&tiporic=RicDescr&badec...
| http:// | Il browser vuole colloquiare con il server, mediante protocollo HTTP |
| www.toninelli.it | Il browser vuole colloquiare con quel server Io ad esempio ho piu' serventi, in quanto un utente Intranet puo' fare una chiamata sulle pagine web pubbliche, piuttosto che quelle riservate, che su altri nostri siti |
| cgi-bin/pub | Lo spieghero' un po' piu' avanti, ma anticipo che questa e' una direttiva di Apache che andiamo a definire noi, nella quale andremo a dire al Server HTTP che una richiesta con quell'indirizzo, corrisponde ad un determinato percorso ovvero una nostra libreria. |
| HCGIP01R.pgm | E' il nostro programma RPG che deve essere chiamato dall'HTTP ed al quale indirizzare le variabili |
| ? | Inizio delle variabili |
| ACTION | Questa e' il nome di fantasia di una variabile che utilizzo nel mio programma |
| ExeRicerca | E' il contenuto della variabile ACTION che trovero' nel mio programma Es: "if ACTION = 'ExeRicerca' " |
| & | Serve al CGI che la variabile precedente e' finita e questa e' una nuova |
| TipoRic badec etc. | sono nomi di fantasia delle mie variabili che conterranno il valore trovato dopo l'uguale ( = ) |
|---|
Sopra abbiamo visto come viene effettuata la chiamata dal Browser verso il CGI-BIN, mediante un URL che contiene le indicazioni di dove, come e quali informazioni debabbano essere processate. Poi ci sono vari modi strade per far intergarire browser e nostro programma e ne vedremo alcuni di quelli che uso.
|