Il leggendario CGIDEV2 di Giovanni Battista Perotti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il leggendario CGIDEV2 di Giovanni Battista Perotti"

Transcript

1 Il leggendario CGIDEV2 di Giovanni Battista Perotti Per oltre un decennio CGIDEV2 ha insegnato a migliaia di programmatori RPG come fare del buon WEB a bassissimo costo riutilizzando l esperienza esistente. Inoltre, tramite i suoi sorgenti RPG-ILE, CGIDEV2 è diventato per tutti una scuola di programmazione ILE, insegnando come si realizzano prototipi, procedure e programmi di servizio. Questo è il primo di una serie di articoli con i quali mi rivolgo ad una tuttora vasta area di programmatori RPG che non hanno ancora sperimentato l ebbrezza di mandare in onda su Internet un loro programma. CGIDEV2 sarà per loro una esperienza entusiasmante, consentirà l ingresso in un mondo dove ogni giorno si fa una nuova scoperta. Scrivere un programma per il WEB richiede non solo l utilizzo di qualche istruzione nuova, ma richiede un piccolo aggiornamento culturale, in quanto qui valgono leggi e regolamenti con le quali un programmatore tradizionale AS/400 (iseries, System i, chiamatelo come volete) non ha familiarità. In questo primo articolo illustrerò alcuni elementi della panoramica WEB, che vanno al di là di CGIDEV2, ma la cui conoscenza è indispensabile per poter capire poi come CGIDEV2 ad essi si appoggi. Questo può risultare inizialmente tedioso, ma è indispensabile premettere alcune nozioni cui in seguito si dovrà necessariamente fare riferimento. 1- Il servente HTTP ed APACHE Il TCP/IP (Transmission Control Protocol / Internet Protocol), è un insieme di protocolli di comunicazione utilizzati nella rete Internet ed in altre reti (p.es. LAN). I protocolli più noti a livello applicativo sono il TELNET (Terminal NETwork, che consente una comunicazione bidirezionale di testi), l FTP (File Trasfer Protocol, utilizzato per trasferire file), l SMTP (Simple Mail Transfer Protocol, che si occupa della trasmissione della posta elettronica), il POP (Post Office Protocol, che consente di ricevere posta elettronica), l HTTP (HyperText Transfer Protocol). L HTTP serve per comunicare tra WEB browser (web-client) e siti WEB (web-server) attraverso meccanismi standard di domanda-risposta tipici dell ambiente client-server. La risorsa da accedere presso il web-server è generalmente una pagina statica, una pagina dinamica (cioè creata sul momento da un programma), oppure una immagine, un PDF, ecc.. La risorsa viene richiesta dal client per il tramite di una cosiddetta URL (Uniform Resource Locator), che specifica dove la risorsa è localizzata. La sintassi dell URL http è: dove: l indirizzo_servente è l indirizzo IP del sistema web-server che ospita la risorsa (es ) oppure il nome del dominio con cui il webserver è registrato (es. il numero_porta (facoltativo) è il numero dell interfaccia utilizzata sul web-server per colloquiare con uno specifico servente (istanza) http. Se il numero_porta non è specificato, si intende la porta numero 80. il path viene utilizzato per raggiungere una specifica risorsa (es. mmailp/xsearch.pgm ) la query_string contiene dati da passare alla applicazione web, per esempio un programma CGI (es: search=download ) l àncora (facoltativa) viene utilizzata per specificare una località all interno della pagina trasmessa. esempio: Il software utilizzato dal web-server per rispondere alle richieste http dei client, dipende dalla piattaforma. Sull AS/400 è stato inizialmente utilizzato, con il rilascio V4R2, un software proprietario IBM. Quando, con il rilascio V5R1, fu deciso di adottare come web-server il software Apache, il precedente software proprietario fu denominato Original per distinguerlo da Apache. Apache è diventato poi, con il rilascio V5R3, l unico web-server per l AS/400. Solo in tempi relativamente recenti è stato affiancato dal PHP. Per utilizzare CGIDEV2, oggi ci si serve del software web-server di Apache. Apache è, dal 2009, il software web-server più diffuso (oltre 100 milioni di siti). Si tratta di un software open-source gestito dalla Apache Software Foundation. L HTTP consente di avere, per così dire, più fronti di servizio, chiamati istanze. Ciascuna istanza occupa una porta diversa e viene definita tramite apposite istruzioni denominate direttive. Le direttive di una istanza sono generalmente raccolte in un file di flusso IFS. Le istanze http sono documentate nel file QUSRSYS/QATMHINSTC. Si tratta di un file multimembro, un membro per ciascuna istanza http. Ciascun membro contiene un record, nel quale sta scritto quale sia il software web-server, quale sia il file di flusso contenente le direttive dell istanza e se la istanza debba partire automaticamente quando viene eseguito il comando STRTCPSVR SERVER(*HTTP). Per esempio, il membro APACHEDFT del file QUSRSYS/QATMHINSTC contiene questo record: -apache -d /www/apachedft -f conf/httpd.conf AutoStartY dal quale si desume che il software web-server da utilizzare è Apache il file di flusso contenente le direttive è /www/apachedft/conf/httpd.conf

2 la istanza viene avviata automaticamente all avvio dell http. Per avviare manualmente una istanza http, si utilizza il comando STRTCPSVR SERVER(*HTTP) HTTPSVR(nome_della_istanza) Scrivere direttive http Apache non è un compito semplice, anche perché una direttiva sbagliata comporta o il fallimento dell avvio di una istanza o il suo mancato funzionamento per alcune pagine che si intendeva servire. Per questo motivo sull AS/400 esiste una istanza particolare denominata *ADMIN, la quale serve per amministrare il WEB ed in particolare per definire le direttive di una istanza http. Questa istanza si avvia con il comando STRTCPSVR SERVER(*HTTP) HTTPSVR(*ADMIN) e la si utilizza dal PC con un browser WEB tramite la URL All avvio viene richiesto di specificare il nome e la password di un profilo utente con autorità speciale *SECADM. Purtroppo questo strumento è molto complesso e generalmente si commettono con esso molti più errori di quanto non avvenga possedendo un esempio di direttive e provando a modificarlo opportunamente. Per questo motivo, in CGIDEV2 le direttive Apache sono già preparate nel file di flusso /cgidev/conf/httpd.conf. La istanza http che consente l utilizzo di CGIDEV2 si chiama CGIDEV2APA ed ha un suo membro di controllo che va copiato nel file QUSRSYS/QATMHINSTC. A ciò si perviene con il comando CPYF FROMFILE(CGIDEV2/QATMHINSTC) TOFILE(QUSRSYS/QATMHINSTC) FROMMBR(CGIDEV2APA) TOMBR(CGIDEV2APA) MBROPT(*REPLACE) CRTFILE(*YES). La istanza CGIDEV2APA lavora sulla porta 8014 e si avvia con il comando STRTCPSVR SERVER(*http) HTTPSVR(CGIDEV2APA). Alle pagine WEB di documentazione di CGIDEV2 si può quindi accedere localmente con l URL Commenti a spiegazione delle direttive Apache utilizzate per CGIDEV2 si possono reperire alla pagina Le direttive Apache sono documentate nell IBM i and System i Information Center dove occorre fare una ricerca per "Directives for HTTP server". La documentazione dell Apache http server è alla pagina Ritorneremo comunque più tardi sull argomento, quando si tratterà di sviluppare un primo programma WEB con CGIDEV2. 2- Il protocollo CGI CGIDEV2 utilizza il protocollo CGI. Ma che cosa è il CGI? Il Common Gateway Interface (CGI) è uno standard (RFC3875, 1983) per i serventi HTTP. Esso stabilisce il modo in cui una richiesta deve essere trasmessa dal client (Standard Input) ed il modo in cui la risposta deve essere trasmessa al client (Standard Output). Il CGI è uno dei primi protocolli utilizzati nel World Wide Web (WWW) per creare pagine web dinamiche ed è stato la base per la sua crescita esplosiva dal 1995 al 2000 (si pensi per esempio ai siti Amazon ed ebay). Il grande vantaggio del CGI è la sua semplicità: non richiede sovrastrutture software ed è quindi uno dei metodi più agili e con le prestazioni migliori. Il CGI non è un linguaggio di programmazione. Il CGI definisce unicamente il modo in cui la richiesta deve essere trasferita al web-server per essere passata ad un programma ed il modo in cui la risposta del programma (praticamente un buffer) deve essere restituita al web-client. Su AS/400 il programma CGI può essere scritto in REXX, C++, C-ILE, RPG-ILE, o COBOL-ILE. Il programma riceve dal browser del client, tramite una URL, una richiesta specificata dal valore di opportuni parametri e quindi prepara una pagina di risposta in funzione della richiesta fatta (pagina dinamica) che viene rispedita al browser del client. Il browser, tramite opportune testate inserite all inizio della pagina, capisce come deve interpretare la presentazione della stessa. In genere la pagina di risposta è una pagina scritta in HTML (HyperText Markup Language), ma potrebbe anche essere in XML o essere addirittura un file, per esempio un PDF. Come fa un programma CGI a ricevere l input dal web-client? Esistono due modi in cui il client può trasmettere una richiesta CGI al web-server: il metodo GET ed il metodo POST. Quando viene usato il metodo GET, la stringa di input deve essere reperita con l API QtmhGetEnv (Get Environment Variable) specificando la variabile d ambiente QUERY_STRING. Quando viene usato il metodo POST la stringa di input deve essere reperita con l API QtmhRdStIn (Read Standard Input). Successivamente, il programma deve recuperare dalla stringa di input i valori delle singole variabili di input. Questa operazione si chiama parsing e può essere fatta utilizzando l API QzhbCGIParse. Già da qui si capisce che leggere l input dal browser non è una operazione semplice per un programma CGI. Questo non è nulla rispetto alla creazione della risposta (in genere una pagina HTML, ma potrebbe essere anche qualcosa di diverso). La risposta non è altro che un buffer (una stringa) che va inviata al browser tramite l API QtmhWrStOut (write to Stdout). Il fatto è che, per esempio nel caso di una pagina HTML, il programma CGI dovrebbe scrivere nel buffer via via l HTML necessario, intercalandolo con i valori delle variabili di output. In altre parole sarebbe come se un programma interattivo, anziché utilizzare le DDS, scrivesse direttamente i dati (testate e valori dei campi) nel buffer da inviare al terminale 5250.

3 Completamente impensabile. Ed è questo il motivo per cui ben pochi sono riusciti, e con gran fatica, a scrivere programmi CGI sull AS/400 prima della comparsa sulle scene di CGIDEV2. 3- Il paradigma CGI Il programma CGI non ha memoria (ambiente stateless ) - I serventi World-Wide-Web trattano ogni richiesta come una transazione indipendente da ogni precedente richiesta. Questo semplifica la struttura del servente, in quanto non deve allocare memoria per tener conto delle conversazioni in corso, né deve impegnarsi a liberarla se un client a metà conversazione decide di desistere. In altre parole, non esiste la EXFMT (invia ed attendi la risposta). Nel mondo CGI il programma risponde ad una singola richiesta, dopo di che il programma non ricorda più nulla né della richiesta né della risposta data. Questo comporta che, per mantenere il dialogo, una successiva richiesta può dover inviare al programma, non solo i dati della nuova richiesta, ma anche alcuni dati relativi alla richiesta precedente. Questo problema viene comunemente risolto spedendo, nella risposta al browser, delle variabili di input nascoste (hidden) contenenti i valori di cui il programma CGI necessita per riprendere la elaborazione di una successiva richiesta. A dire il vero, il supporto CGI su AS/400 consente di realizzare anche programmi CGI persistenti. Un programma CGI persistente viene mantenuto attivo (con tutte le sue variabili impostate ed il posizionamento sui file intatto) in attesa di una successiva richiesta da parte dello stesso client che lo aveva chiamato. In pratica il job della istanza http resta fermo in attesa di una successiva chiamata. Ma ci sarà una successiva chiamata, e se sì, dopo quanto tempo? Dato che ciò non è prevedibile, va posto un ragionevole limite al numero di job in attesa e va inoltre specificato un tempo di timeout, superato il quale il job deve chiudere. Tali limiti, unitamente alla complicazione della sovrastruttura necessaria per realizzare lo stato di persistenza, rendono poco attraente questo metodo, del quale un programmatore CGI, abituato a gestire la non-persistenza, non sente affatto bisogno. 4- Che cosa è CGIDEV2 CGIDEV2 è una raccolta di procedure ILE che semplificano all estremo la scrittura di programmi CGI in COBOL-ILE o in RPG-ILE. Una prima stesura, denominata CGIDEV, venne creata da Mel Rothman, dell IBM di Rochester (MN), nel Nel 1999 Rothman rilasciò una nuova versione denominata CGIDEV2, potenziata in termini di semplicità e potenza di prestazioni. Rothman continuò ad aggiungere nuove funzioni a CGIDEV2, sino al 2004, quando lasciò IBM. CGIDEV2 si presenta come uno strumentario completo per il programmatore RPG che voglia fare del WEB. CGIDEV2 è compatibile con qualunque nuovo rilascio di OS/400. L unico requisito è almeno una modesta conoscenza dell RPG ILE da parte dello sviluppatore. Si impara in fretta, due/tre giorni di applicazione sono sufficienti per realizzare i primi programmi e la velocità di sviluppo cresce molto velocemente. Ovviamente, per poter presentare delle pagine WEB occorre conoscere l HTML, ma questa non è una impresa, l HTML è immensamente più semplice delle DDS. Nella evoluzione delle conoscenze verranno poi il Cascading Style Sheet (CSS), il Javascript, l HTML DOM ed AJAX. Tutto questo si impara facilmente dai tutorial I programmi CGI scritti in RPG_ILE non sono più difficili dei normali programmi 5250, hanno prestazioni eccellenti e si manutenzionano con la stessa facilità dei programmi tradizionali. La diffusione di CGIDEV2 su scala mondiale è dovuta all opera di Giovanni Battista Perotti. Perotti scoprì CGIDEV nel 1997, quando era in IBM Italia. Il suo primo sito internazionale inteso a diffondere CGIDEV fu messo in onda nel Luglio del Nel Novembre del 1999 AS/400 News U.S. diffuse per via elettronica un articolo dove si annunciava che tramite CGIDEV si potevano creare in RPG splendidi siti WEB. In un sol giorno CGIDEV fu installato da oltre 300 sviluppatori di AS/400. Nel Marzo del 2000 Perotti ottenne il consenso dall IBM di Rochester di poter distribuire CGIDEV2 gratuitamente e completo di sorgenti. Quando, nel Giugno del 2005, Perotti uscì, per anzianità, da IBM chiese ad IBM di ereditare la proprietà di CGIDEV2 per poterne curare la ulteriore crescita e diffusione. Quando IBM rifiutò, Perotti fece pervenire ai responsabili IBM di Rochester centinaia di lettere di protesta da clienti ed IBM fu costretta a dichiarare che avrebbe preso in carico ufficialmente il prodotto, per curarne la manutenzione, la evoluzione ed un eventuale annuncio open-source. In realtà IBM ha fatto ben poco o nulla di quanto promesso. Ad oggi le installazioni di CGIDEV2 sono oltre 4700 e continuano a crescere unicamente grazie all opera di Perotti, che ne diffonde la conoscenza tramite il suo sito il suo forum internazionale ed il suo forum italiano di nuovo conio 5- I paradigmi CGIDEV2 In particolare CGIDEV2, mentre non risolve il problema (stateless) della perdita di memoria del programma CGI, peraltro facilmente superabile, risolve invece brillantemente i problemi della lettura dell input e della scrittura dell output. Mentre la lettura dell input avviene tramite alcune semplici procedure ILE che saranno illustrate più avanti, la creazione dell output merita qualche spiegazione introduttiva. Come si sa, la separazione tra presentazione dei dati e valori dei dati è fondamentale per la produttività di un programma. In un programma interattivo o batch, ciò avviene tramite un file unità esterno (file display o file di stampa) il quale definisce come i dati debbano essere presentati per il tramite di costanti (titoli, testate, messaggi) e di variabili di input o di output. Il tutto organizzato in uno o più tracciati record.

4 Le DDS servono a questo scopo. Il programma si occupa unicamente del processo logico dei dati, di assegnare valori alle variabili di input o di output e di emettere nell ordine opportuno i tracciati record del file display o stampa, in modo da produrre la risposta appropriata per il caso in esecuzione. Con CGIDEV2, per emettere una pagina HTML si fa esattamente la stessa cosa. Si produce un file HTML costituito da tracciati record che qui si chiamano sezioni (section). Una sezione può contenere testo HTML e variabili di input o di output da valorizzare. Il programma CGI in partenza carica in memoria, tramite procedure di CGIDEV2, il file HTML esterno. Via via che l elaborazione procede, il programma CGI assegna valori alle variabili di input e di output ed emette ordinatamente le sezioni necessarie per comporre la risposta. Alla fine comanda la spedizione del buffer di output e va a fine programma. Il grande vantaggio delle applicazioni WEB, rispetto alle applicazioni tradizionali 5250, sta nella estrema flessibilità dell HTML rispetto alle DDS. In termini di presentazione, efficacia, completezza, eleganza, dotazione di accessori, non esiste ovviamente confronto. Si pensi unicamente ai cambiamenti che si possono produrre con semplici variazioni del CSS. Non va poi tralasciato il fatto che non esiste controllo di livello tra programma e file HTML esterno. L unico controllo di livello lo fa CGIDEV2 che, quando il CGI gli chiede di caricare in memoria un file HTML esterno, evita di farlo se il file è già in memoria e non è stato variato. 6- Installare CGIDEV2 Dopo aver compreso un poco che cosa sia CGIDEV2 e come si collochi nel protocollo CGI dell HTTP, veniamo alla sua installazione. CGIDEV2 si scarica dal sito La pagina presenta una colonna di navigazione sul lato sinistro. Si tratta di premere il link denominato Download. La prima volta che lo si preme viene richiesto di registrarsi. Una volta effettuata la registrazione si accede alla pagina di scarico. Nella tabella dei software, si prema CGIDEV2 per raggiungere le istruzioni relative. Si scelga una delle tre versioni disponibili (V5R2, V5R1, V4R5) per far comparire la finestrella di download, quindi si prema il bottone Submit. Si riceva il file cgidev2.zip in una cartella del PC, quindi lo si espanda ad ottenere due file : un readme.txt ed un cgidev2.sav. Quest ultimo è un file di salvataggio che contiene la libreria CGIDEV2. Occorre ora trasportare il file di salvataggio sul System i. Si proceda così: a. Sul System i si esegua il comando CRTSAVF SAVF(QGPL/CGIDEV2) b. Sul PC si apra una finestra DOS per trasferire il file di salvataggio sul System i. Ci si posizioni sulla cartella contenente il file di salvataggio cgidev2.sav, quindi si immettano i comandi seguenti: ftp indirizzo_ip_del_system_i utente password binary quote site namefmt 1 cd /qsys.lib/qgpl.lib put cgidev2.sav cgidev2.savf quit c. Sul System i si immetta il comando RSTLIB SAVLIB(CGIDEV2) DEV(*SAVF) SAVF(QGPL/CGIDEV2) per ripristinare la libreria CGIDEV2. d. CGIDEV2 viene consegnato con i soli sorgenti dei programmi. Per completare la installazione è necessario eseguire una procedura REXX che ricrea i programmi. Si immetta il comando SBMJOB JOB(CGIDEV2) CMD(STRREXPRC SRCMBR(INSTALL1) SRCFILE(CGIDEV2/QREXSRC)) e. Una volta completato questo lavoro, per ripristinare le cartelle IFS /cgidev e /cgidevexthtml, si immetta il comando STRREXPRC SRCMBR(INSTALL2) SRCFILE(CGIDEV2/QREXSRC) f. Alla fine, per creare la istanza HTTP CGIDEV2APA che consente di leggere localmente la documentazione di CGIDEV2 e di eseguirne alcune dimostrazioni, si esegua il comando CPYF FROMFILE(CGIDEV2/QATMHINSTC) TOFILE(QUSRSYS/QATMHINSTC) FROMMBR(CGIDEV2APA) TOMBR(CGIDEV2APA) MBROPT(*REPLACE) CRTFILE(*YES). g. La istanza HTTP CGIDEV2APA si avvia con il comando STRTCPSVR SERVER(*http) HTTPSVR(CGIDEV2APA) Successivamente si immetta il comando WRKACTJOB SBS(QHTTPSVR) JOB(CGIDEV2APA) per constatare che la istanza sia effettivamente partita. Se la partenza ha avuto successo, si vedranno attivi vari job di nome CGIDEV2APA. La istanza lavora sulla porta 8014, quindi per accedere alla prima pagina di CGIDEV2 si utilizzi la URL

5 7- La documentazione dettagliata di CGIDEV2 La documentazione dettagliata di CGIDEV2 è disponibile sul sito Easy400 a partire dalla pagina La lingua ufficiale l inglese, ma la maggior parte delle pagine ha anche una versione in italiano (premere sulla bandierina). Lo stesso materiale è disponibile localmente attraverso la istanza http CGIDEV2APA. Main functions Read input from client browser Map input string into program variables Multiple occurrencies of an input variable Use an externally defined HTML script to write HTML output Other functions Handling cookies Message handling Maintain and retrieve page counts Retrieve environment variables Other environment variables functions Timing functions Check IFS object Uploading PC files CGI DEBUG file Debugging functions o In alto, nella prima pagina, basta premere il bottone cgi tutorial per arrivare alla pagina A circa metà di questa pagina compare un riquadro contenente l indice del tutorial (vedi la figura a lato). o Esiste anche un indice analitico. Premendo il bottone index si arriva alla pagina dell indice analitico Sono inoltre disponibili delle dimostrazioni, con evidenziazione del codice HTML ed RPG, dalle quali è facile imparare alcune delle tecniche basilari. Si prema il bottone basic demos per giungere alla pagina Coding facilities Data conversion functions Execute a command Override a database file Dynastatic pages Write HTML to a stream file Program state support Using user spaces Create a random string Persistent CGI support Get a random integer Assign a Session ID ( handle ) 8- Come si fa il debugging dei programmi CGI Tutti i lavori nel sottositema QHTTPSVR sono lavori batch. Come tutti i lavori batch, se incontrano un errore si fermano e mandano un messaggio alla coda messaggi dell operatore. Questo per una lavoro WEB non va bene. E inutile far aspettare l utente finale per ore o giorni. Occorre che gli arrivi un messaggio di errore, che l errore venga registrato nel log del lavoro e che il lavoro termini (il sistema ne avvierà subito un altro). Per ottenere questo bisogna immettere il comando chgjobd qhttpsvr/qzhbhttp log(4 00 *seclvl) inqmsgrpy(*dft). Per visualizzare i lavori di una istanza http (per esempio quelli della istanza CGIDEV2APA) si utilizza il comando WRKACTJOB SBS(QHTTPSVR) JOB(cgidev2apa) Gestione lavori attivi 30/04/10 16:07:54 CPU %: 11.9 Tempo trascorso: 00:00:23 Lavori attivi: 401 Utente Opz Sottosis/Lav corrente Tipo CPU % Funzione Stato CGIDEV2APA QTMHHTTP BCH.0 PGM-QZHBMAIN SIGW CGIDEV2APA QTMHHTTP BCI.0 PGM-QZSRLOG SIGW CGIDEV2APA QTMHHTTP BCI.0 PGM-QZSRHTTP SIGW CGIDEV2APA QTMHHTP1 BCI.3 PGM-QZSRCGI TIMW CGIDEV2APA QTMHHTP1 BCI.0 PGM-QZSRCGI TIMW CGIDEV2APA QTMHHTTP BCI.0 PGM-QZSRHTTP DEQW CGIDEV2APA QTMHHTP1 BCI.0 PGM-QZSRCGI TIMW CGIDEV2APA QTMHHTP1 BCI.0 PGM-QZSRCGI TIMW I lavori dell istanza che eseguono I programmi CGI sono quelli contrasegnati dal PGM-QZSRCGI. Dato che ne esiste più di uno, non è dato sapere a priori quale di essi eseguirà la prossima richiesta da un web-client. In genere la richiesta in arrivo viene sempre assegnata allo stesso lavoro. Solo se quel lavoro è impegnato la richiesta viene passata ad un altro lavoro.

6 Per sapere quale lavoro prenderà controllo, è sufficiente riazzerare il conteggio CPU% (F10), far immettere una richiesta dal web-client, tornare alla schermata wrkactjob e fare F5. Il lavoro PGM-QZSRCGI che ha preso controllo avrà speso del tempo di CPU. Se il sistema è molto veloce, non sempre è possibile rilevare quale lavoro abbia speso tempo CPU; in questo caso occorre congelare i lavori PGM-QZSRCGI, immettere la richiesta dal web-client, quindi scongelare i lavori uno alla volta, controllando ogni volta se il browser ha ricevuto la risposta. Una volta che si è individuato il lavoro PGM-QZSRCGI addetto a rispondere per primo, se ne visualizzano i dati con la opzione 5: Gestione lavoro Sistema: xxxxxxxx Lavoro: CGIDEV2APA Utente: QTMHHTP1 Numero: Selezionare una delle seguenti: 1. Visualizzazione attributi di stato del lavoro 2. Visualizzazione attributi di definizione del lavoro 3. Visualizzazione attributi di esecuzione del lavoro, se attivo 4. Gestione dei file di spool 10. Visualizz. registrazione lavoro, se attivo, in coda lavori o sospeso 11. Visualizzazione dell'elenco richiami, se attivo 12. Gestione dei vincoli, se attivi 13. Visualizzazione della lista delle librerie, se attivo 14. Visualizzazione file aperti, se attivi 15. Visualizzazione sostituzioni di file, se attive 16. Visualizzazione stato controllo convalida, se attivo Segue... Scelta o comando ===> F3=Fine F4=Richiesta F9=Duplicaz. F12=Ann. Supponiamo che il programma CGI da sottoporre a debug sia il programma PGM1 nella libreria CGI1. Ovviamente bisognerà che i moduli di tale programma siano stati creati con il parametro DBGVIEW(*SRC) o DBGVIEW(*LIST). Per mettere in debug il programma bisognerà immettere i comandi seguenti: STRSRVJOB /QTMHHTP1/CGIDEV2APA STRDBG CGI1/PGM1 UPDPROD(*YES) Dopo di che si provvederà ad assegnare almeno un breakpoint e si farà partire la richiesta dal web-browser per il programma CGI1. Una volta trovato l errore, si tratterà di correggere e ricreare il programma, quindi eventualmente eseguire un nuovo debug, immettendo i comandi ENDDBG STRDBG CGI1/PGM1 UPDPROD(*YES) Se il problema da correggere non è semplice, si reitera in continuazione tra comandi enddbg e strdbg e, se necessario, endsrvjob e strsrvjob. Questa iterazione comporta tempo ed attenzione ed è alquanto defatigante. Per questo motivo in CGIDEV2 è stato creato un comando (che alla installazione viene duplicato nella libreria QGPL), EDBG (Enhanced DEBUG) il quale provvede da solo a lanciare i comandi di end/strsrvjob e di end/strdbg. Il comando richiede che siano specificati solo due parametri: il nome (qualificato) del programma ed il numero del lavoro batch da servire. Nel caso illustrato basterà quindi ripetere ogni volta il comando EDBG CGI1/PGM Creare una prima libreria per i programmi CGI Non ostante che ciò possa apparir comodo, non è conveniente creare propri programmi nella libreria CGIDEV2. E meglio abituarsi ad utilizzare proprie librerie. In questo esempio vogliamo creare la libreria CGI1 e fare in modo da averla pronta per i nostri prossimi programmi CGI. a. Creiamo la libreria: CRTLIB LIB(CGI1) TEXT('Miei primi programmi CGI') AUT(*USE) b. Ora popoliamo la libreria CGI1 con alcuni strumenti di CGIDEV2 che ci serviranno: CGIDEV2/SETCGILIB SRCLIB(CGI1) Questo comando (vedi ) Duplica nella libreria il service program CGISRVPGM2 di CGIDEV2 Crea nella libreria la *BNDDIR TEMPLATE2, che serve per risolvere le chiamate delle procedure CGIDEV2 verso il service program CGISRVPGM2 nella stessa libreria Crea nella libreria i file origine QRPGLESRC, QCLSRC, QDDSSRC, QCMDSRC, QPNLSRC, HTMLSRC (quest ultimo file origine può essere utilizzato per membri contenenti HTML, anche se è largamente preferibile utilizzare per questo scopo file di flusso nella cartella /cgi1/html ) Nel file QRPGLESRC aggiunge i membri HSPECS, HSPECSBND, PROTOTYPEB, VARIABLES3, PROLOG3 che saranno utilizzati via /COPY nei programmi CGI

7 Crea una cartella IFS con lo stesso nome della libreria e vi aggiunge tre sottocartelle: o Una sottocartella /nome_libreria/css dove si possono mettere i file.css che saranno utilizzati dalla applicazione o Una sottocartella /nome_libreria/html dove si possono mettere i file.html (pagine statiche o html esterni per i CGI) che saranno utilizzati dalla applicazione o Una sottocartella /nome_libreria/graphics dove si possono mettere gli oggetti grafici (icone, immagini, ecc.) utilizzati dalla applicazione. Alla fine invia questa schermata Add HTTP Directives for CGI object library CGI1 Type of directives.... _ 1=Original, 2=Apache F3=End Si immetta 2 e si prema Invio per avere un elenco delle istanze HTTP disponibili: Add HTTP Directives for CGI object library CGI1 Type option, press Enter 1=HTTP instance to be updated instance configuration file _ APACHEDFT /www/apachedft/conf/httpd. _ CGIDEV2APA /cgidev/conf/httpd.conf Si immetta 1 per CGIDEV2APA e si dia Invio. In questo modo alle direttive di CGIDEV2APA vengono aggiunte alcune direttive che consentono la esecuzione di programmi CGI nella libreria CGI1. Le nuove direttive vengono automaticamente visualizzate da un comando dspf /cgidev/conf/httpd.conf. Andando alla fine del file di direttive, si vede che le direttive aggiunte sono: #---- CGI1 directives AliasMatch /cgi1h/(.*)\.htm /QSYS.LIB/CGI1.LIB/HTMLSRC.FILE/$1.mbr Alias /cgi1h/ /QSYS.LIB/CGI1.LIB/HTMLSRC.FILE/ Alias /cgi1/ /cgi1/ ScriptAliasMatch /cgi1p/(.*).pgm /qsys.lib/cgi1.lib/$1.pgm <Directory /QSYS.LIB/CGI1.LIB> AllowOverride None Options None order allow,deny allow from all </Directory> <Directory /cgi1> AllowOverride None Options None order allow,deny allow from all </Directory> La prima di queste righe è un commento La seconda riga (AliasMatch /cgi1h/(.*)\.htm ) intende significare che quando in una URL si incontra la dizione /cgi1h/ seguita da qualcosa e poi da.htm, si intende che quel qualcosa sia un membro del file CGI1/HTMLSRC La terza riga (Alias /cgi1h/ ) intende significare che quando in una URL si incontra la dizione /cgi1h/ ci si intende riferire al file /CGI1/HTMLSRC La quarta riga (Alias /cgi1/ ) intende significare che quando in una URL si incontra la dizione /cgi1/ si intende riferirsi proprio alla cartella IFS /cgi1/ La quinta riga (ScriptAliasMatch /cgi1p/(.*).pgm ) intende significare che quando in una URL si incontra la dizione /cgi1p seguita da qualcosa e quindi dalla dizione.pgm, si tratta di un programma CGI nella libreria CGI1. Pertanto, per eseguire il programma PGM1 nella libreria CGI1 basterà utilizzare la URL Il gruppo di direttive che va da <Directory /QSYS.LIB/CGI1.LIB> a </Directory> significa che la libreria CGI1 è accessibile a qualunque richiesta http Il gruppo di direttive che va da <Directory /cgi1> a </Directory> significa che la cartella CGI1 è accessibile a qualunque richiesta http c. Per far ripartire la istanza http CGIDEV2APA in modo tale che tenga conto delle nuove direttive, occorre immettere il comando STRTCPSVR SERVER(*HTTP) RESTART(*HTTP) HTTPSVR(CGIDEV2APA) Nei prossimi articoli incominceremo a scrivere con CGIDEV2 alcuni programmi CGI. Se sei interessato, devi però prepararti, imparando un poco di HTML e di CSS. Su questi argomenti esistono fior di siti. Io raccomando (ma sono in lingua inglese) quelli di W3Sschools

8 per l elenco dei corsi per il corso di HTML per il corso di CSS Si tratta di corsi molto semplici ed anche divertenti, ti fanno respirare ed aprire gli occhi su un altro mondo. Non perdere l occasione di imparare! Se hai domande, puoi contattarmi liberamente, scrivendo al mio indirizzo esposto nella prima pagina del sito

Programmazione CGI Facilitata per WEB AS/400

Programmazione CGI Facilitata per WEB AS/400 Programmazione CGI Facilitata per WEB AS/400 http://www.easy400.ibm.it Giovanni B. Perotti IBM Italia Per far funzionare il programma di esempio: http://www.easy400.ibm.it/cgidevoit/opinion.mbr Per leggere

Dettagli

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

Dettagli

Applicazioni web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications) Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento

Dettagli

Server web e protocollo HTTP

Server web e protocollo HTTP Server web e protocollo HTTP Dott. Emiliano Bruni (info@ebruni.it) Argomenti del corso Cenni generali sul web IIS e Apache Il server web Micsosoft Internet Information Server 5.0 Il server web Apache 2.0

Dettagli

Protocolli applicativi: FTP

Protocolli applicativi: FTP Protocolli applicativi: FTP FTP: File Transfer Protocol. Implementa un meccanismo per il trasferimento di file tra due host. Prevede l accesso interattivo al file system remoto; Prevede un autenticazione

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Livello cinque (Livello application)

Livello cinque (Livello application) Cap. VII Livello Application pag. 1 Livello cinque (Livello application) 7. Generalità: In questo livello viene effettivamente svolto il lavoro utile per l'utente, contiene al suo interno diverse tipologie

Dettagli

EUROPEAN COMPUTER DRIVING LICENCE WEB EDITING - Versione 2.0

EUROPEAN COMPUTER DRIVING LICENCE WEB EDITING - Versione 2.0 EUROPEAN COMPUTER DRIVING LICENCE WEB EDITING - Versione 2.0 Copyright 2010 The European Computer Driving Licence Foundation Ltd. Tutti I diritti riservati. Questa pubblicazione non può essere riprodotta

Dettagli

Posta Elettronica e Web

Posta Elettronica e Web a.a. 2002/03 Posta Elettronica e Web Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Posta Elettronica

Dettagli

Reti di calcolatori. Reti di calcolatori

Reti di calcolatori. Reti di calcolatori Reti di calcolatori Reti di calcolatori Rete = sistema di collegamento tra vari calcolatori che consente lo scambio di dati e la cooperazione Ogni calcolatore e un nodo, con un suo indirizzo di rete Storia:

Dettagli

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

Le Reti (gli approfondimenti a lezione)

Le Reti (gli approfondimenti a lezione) Le Reti (gli approfondimenti a lezione) Per migliorare la produttività gli utenti collegano i computer tra di loro formando delle reti al fine di condividere risorse hardware e software. 1 Una rete di

Dettagli

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso

Dettagli

Internet Terminologia essenziale

Internet Terminologia essenziale Internet Terminologia essenziale Che cos è Internet? Internet = grande insieme di reti di computer collegate tra loro. Rete di calcolatori = insieme di computer collegati tra loro, tramite cavo UTP cavo

Dettagli

Corso di Informatica Modulo T3 B1 Programmazione web

Corso di Informatica Modulo T3 B1 Programmazione web Corso di Informatica Modulo T3 B1 Programmazione web 1 Prerequisiti Architettura client/server Elementi del linguaggio HTML web server SQL server Concetti generali sulle basi di dati 2 1 Introduzione Lo

Dettagli

Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci

Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci I motori di ricerca in internet: cosa sono e come funzionano Roberto Ricci, Servizio Sistema

Dettagli

Il server web: Apache, IIS e PWS

Il server web: Apache, IIS e PWS IL SERVER WEB Corso WebGIS - Master in Sistemi Informativi Territoriali AA 2005/2006 ISTI- CNR c.renso@isti.cnr.it Il server web: Apache, IIS e PWS...1 Directory di default...2 Alias e cartelle virtuali...3

Dettagli

Web e HTTP. path name. host name Realizzato da Roberto Savino. www.someschool.edu/somedept/pic.gif

Web e HTTP. path name. host name Realizzato da Roberto Savino. www.someschool.edu/somedept/pic.gif Web e HTTP Terminologia Una pagina web consiste di oggetti Un oggetto può essere un file HTML, una immagine JPG, ecc. Una pagina web consiste di un file HTML base che fa riferimento a diversi oggetti al

Dettagli

TCP/IP: INDIRIZZI IP SIMBOLICI

TCP/IP: INDIRIZZI IP SIMBOLICI TCP/IP: INDIRIZZI IP SIMBOLICI DOMAIN NAME SYSTEM: ESEMPIO www.unical.it 160.97.4.100 100 host 160.97.29.5 dominio i di II livelloll dominio di (organizzazione: università) I livello (nazione) www.deis.unical.it

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione La Rete Internet Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Che cos è Internet? Il punto

Dettagli

Internet e World Wide Web

Internet e World Wide Web Alfonso Miola Internet e World Wide Web Dispensa C-02 Settembre 2005 1 Nota bene Il presente materiale didattico è derivato dalla dispensa prodotta da Luca Cabibbo Dip. Informatica e Automazione Università

Dettagli

Contenuti. Applicazioni di rete e protocolli applicativi

Contenuti. Applicazioni di rete e protocolli applicativi Contenuti Architettura di Internet Principi di interconnessione e trasmissione World Wide Web Posta elettronica Motori di ricerca Tecnologie delle reti di calcolatori Servizi Internet (come funzionano

Dettagli

Lezione n 1! Introduzione"

Lezione n 1! Introduzione Lezione n 1! Introduzione" Corso sui linguaggi del web" Fondamentali del web" Fondamentali di una gestione FTP" Nomenclatura di base del linguaggio del web" Come funziona la rete internet?" Connessione"

Dettagli

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri.

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri. Il Servizio World Wide Web () Corso di Informatica Generale (Roberto BASILI) Teramo, 20 Gennaio, 2000 Il World Wide Web Storia : obbiettivi : tecnologie Le Applicazioni Scenari Futuri La Storia (1990)

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione INFORMATICA DISTRIBUITA prof. lez 4 Livello applicazione Università degli Studi di Milano Scienze e Tecnologie della Comunicazione Musicale a.a. 2009-2010 applicazioni di rete Processo: programma in esecuzione

Dettagli

La rete Internet. Percorso di Preparazione agli Studi di Ingegneria. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

La rete Internet. Percorso di Preparazione agli Studi di Ingegneria. Università degli Studi di Brescia. Docente: Massimiliano Giacomin La rete Internet Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Che

Dettagli

Reti basate sulla stack di protocolli TCP/IP

Reti basate sulla stack di protocolli TCP/IP Reti basate sulla stack di protocolli TCP/IP Classe V sez. E ITC Pacioli Catanzaro lido 1 Stack TCP/IP Modello TCP/IP e modello OSI Il livello internet corrisponde al livello rete del modello OSI, il suo

Dettagli

Dal protocollo IP ai livelli superiori

Dal protocollo IP ai livelli superiori Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono

Dettagli

Capitolo 16 I servizi Internet

Capitolo 16 I servizi Internet Capitolo 16 I servizi Internet Storia di Internet Il protocollo TCP/IP Indirizzi IP Intranet e indirizzi privati Nomi di dominio World Wide Web Ipertesti URL e HTTP Motori di ricerca Posta elettronica

Dettagli

Seminari Eucip, Esercizio e Supporto di Sistemi Informativi

Seminari Eucip, Esercizio e Supporto di Sistemi Informativi Seminari Eucip, Esercizio e Supporto di Sistemi Informativi Servizi di Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza Sicurezza su Sicurezza della La Globale La rete è inerentemente

Dettagli

Introduzione all elaborazione di database nel Web

Introduzione all elaborazione di database nel Web Introduzione all elaborazione di database nel Web Prof.ssa M. Cesa 1 Concetti base del Web Il Web è formato da computer nella rete Internet connessi fra loro in una modalità particolare che consente un

Dettagli

SVN server, per Florim, è installato su server di test, anche se la sua configurazione può avvenire in qualsiasi ambiente.

SVN server, per Florim, è installato su server di test, anche se la sua configurazione può avvenire in qualsiasi ambiente. Siti FLORIM SVN Subversion Il sistema di versioning viene illustrato nell immagine seguente: Sistema locale dello sviluppatore, si parla di working copy ( copia dei file dal server in produzione) SVN server,

Dettagli

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

Dettagli

Indice PARTE PRIMA L INIZIO 1

Indice PARTE PRIMA L INIZIO 1 Indice Introduzione XIII PARTE PRIMA L INIZIO 1 Capitolo 1 Esplorare il World Wide Web 3 1.1 Come funziona il World Wide Web 3 1.2 Browser Web 10 1.3 Server Web 14 1.4 Uniform Resource Locators 15 1.5

Dettagli

OSOR. Applicazioni di Rete

OSOR. Applicazioni di Rete OSOR Applicazioni di Rete 1 Client-Server in Sistemi Distribuiti Host A Host B Client TCP/UDP IP Network Interface Internet Risultati Server TCP/UDP IP Network Interface Richiesta Applicazioni di Rete

Dettagli

Impianti di Elaborazione. Applicazioni e Servizi

Impianti di Elaborazione. Applicazioni e Servizi Impianti di Elaborazione Applicazioni e Servizi M.G. Fugini COMO IMPIANTI 08-09 Indice dei contenuti Servizi e risorse Internet (Telnet, FTP, Posta elettronica, News, Chat, Videoconferenza, ) World Wide

Dettagli

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

Protocolli per il Web. Impianti Informatici. Protocolli applicativi Protocolli per il Web Protocolli applicativi I protocolli applicativi 2 Applicazioni Socket interface HTTP (WEB) SMTP (E-MAIL) FTP... NFS RPC DNS... Trasporto TCP UDP Rete ICMP RIP OSPF IP ARP RARP Non

Dettagli

Introduzione alle Applicazioni Web

Introduzione alle Applicazioni Web Introduzione alle Applicazioni Web di Mary Ercolini Con il termine Applicazione Web si intende un applicazione risiedente in un Server Web alla quale si accede tramite un browser Internet o un altro programma

Dettagli

Applicazioni delle reti. Dalla posta elettronica al telelavoro

Applicazioni delle reti. Dalla posta elettronica al telelavoro Applicazioni delle reti Dalla posta elettronica al telelavoro Servizi su Internet La presenza di una infrastruttura tecnologica che permette la comunicazione tra computer a distanze geografiche, ha fatto

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 1. Introduzione a Internet e al WWW Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica

Dettagli

Sistemi Informativi di relazione - Internet

Sistemi Informativi di relazione - Internet Sistemi Informativi di relazione - Internet Obiettivi. Presentare i concetti base di Internet. Illustrare l evoluzione storica di Internet. Familiarizzare con gli elementi fondamentali di Internet: Il

Dettagli

MySQL Controllare gli accessi alla base di dati A cura di Silvio Bonechi per http://www.pctrio.com

MySQL Controllare gli accessi alla base di dati A cura di Silvio Bonechi per http://www.pctrio.com MySQL Controllare gli accessi alla base di dati A cura di Silvio Bonechi per http://www.pctrio.com 15.03.2006 Ver. 1.0 Scarica la versione pdf ( MBytes) Nessuno si spaventi! Non voglio fare né un manuale

Dettagli

Introduzione a Internet e al World Wide Web

Introduzione a Internet e al World Wide Web Introduzione a Internet e al World Wide Web Una rete è costituita da due o più computer, o altri dispositivi, collegati tra loro per comunicare l uno con l altro. La più grande rete esistente al mondo,

Dettagli

Rete Internet ALFABETIZZAZIONE INFORMATICA. Prof. Patti Giuseppe

Rete Internet ALFABETIZZAZIONE INFORMATICA. Prof. Patti Giuseppe Rete Internet ALFABETIZZAZIONE INFORMATICA Prof. Patti Giuseppe SERVIZI OFFERTI DA INTERNET INTERNET POSTA ELETTRONICA INTERNET Internet in pratica è una rete vastissima, costituita dall interconnessione

Dettagli

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione Evoluzione del Web Direzioni di sviluppo del web a) Multimedialità b) Dinamicità delle pagine e interattività c) Accessibilità d) Separazione del contenuto dalla forma di visualizzazione e) Web semantico

Dettagli

url uniform resource locator

url uniform resource locator url uniform resource locator m. patrignani nota di copyright questo insieme di slides è protetto dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente,

Dettagli

I Principali Servizi del Protocollo Applicativo

I Principali Servizi del Protocollo Applicativo 1 I Principali Servizi del Protocollo Applicativo Servizi offerti In questa lezione verranno esaminati i seguenti servizi: FTP DNS HTTP 2 3 File Transfer Protocol Il trasferimento di file consente la trasmissione

Dettagli

Internet Architettura del www

Internet Architettura del www Internet Architettura del www Internet è una rete di computer. Il World Wide Web è l insieme di servizi che si basa sull architettura di internet. In una rete, ogni nodo (detto host) è connesso a tutti

Dettagli

EUROPEAN COMPUTER DRIVING LICENCE. WebEditing. Syllabus

EUROPEAN COMPUTER DRIVING LICENCE. WebEditing. Syllabus EUROPEAN COMPUTER DRIVING LICENCE WebEditing Syllabus Scopo Questo documento presenta il syllabus di ECDL Standard WebEditing. Il syllabus descrive, attraverso i risultati del processo di apprendimento,

Dettagli

Servizi web in LabVIEW

Servizi web in LabVIEW Servizi web in LabVIEW Soluzioni possibili, come si utilizzano. 1 Soluzioni possibili WEB SERVER Dalla versione 5.1 di LabVIEW è possibile implementare un Web server che consente di operare da remoto sul

Dettagli

prof. Mario Dalessandro

prof. Mario Dalessandro INTERNET Internet in pratica è una rete vastissima, costituita dall interconnessione di migliaia di reti pubbliche e private, utilizzata per scopi differenti, ma comunque volta a creare e diffondere informazioni.

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

Flavio De Paoli depaoli@disco.unimib.it

Flavio De Paoli depaoli@disco.unimib.it Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato

Dettagli

CONTROLLO REMOTO DI UNA TELECAMERA IP

CONTROLLO REMOTO DI UNA TELECAMERA IP Scuola Media Pietro Coppo Isola CONTROLLO REMOTO DI UNA TELECAMERA IP Tesi di maturità professionale Indirizzo Tecnico Informatico Alunno: Massimiliano Bevitori Mentore: Maurizio Škerlič Anno Scolastico:

Dettagli

Reti locati e reti globali. Tecnologie: Reti e Protocolli. Topologia reti. Server e client di rete. Server hardware e server software.

Reti locati e reti globali. Tecnologie: Reti e Protocolli. Topologia reti. Server e client di rete. Server hardware e server software. Reti locati e reti globali Tecnologie: Reti e Protocolli Reti locali (LAN, Local Area Networks) Nodi su aree limitate (ufficio, piano, dipartimento) Reti globali (reti metropolitane, reti geografiche,

Dettagli

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi.

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet: la rete delle reti Alberto Ferrari Connessioni

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Parte II Lezione 5

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Parte II Lezione 5 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II Lezione 5 Martedì 18-03-2014 1 Livello di applicazione Architetture

Dettagli

Client - Server. Client Web: il BROWSER

Client - Server. Client Web: il BROWSER Client - Server Client Web: il BROWSER Il client Web è un applicazione software che svolge il ruolo di interfaccia fra l utente ed il WWW, mascherando la complessità di Internet. Funzioni principali Inviare

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione La Rete Internet Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Che cos è Internet? Il punto

Dettagli

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica). Topologia delle reti Una RETE DI COMPUTER è costituita da un insieme di elaboratori (NODI) interconnessi tra loro tramite cavi (o sostituti dei cavi come le connessioni wireless). Rete Point-to-Point:

Dettagli

Internet e Tecnologia Web

Internet e Tecnologia Web INTERNET E TECNOLOGIA WEB Corso WebGis per Master in Sistemi Informativi Territoriali AA 2005/2006 ISTI- CNR c.renso@isti.cnr.it Internet e Tecnologia Web...1 TCP/IP...2 Architettura Client-Server...6

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione La Rete Internet Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Che cos è Internet? Il punto

Dettagli

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 2

Reti di Calcolatori. Master Bio Info Reti e Basi di Dati Lezione 2 Reti di Calcolatori Sommario Software di rete TCP/IP Livello Applicazione Http Livello Trasporto (TCP) Livello Rete (IP, Routing, ICMP) Livello di Collegamento (Data-Link) I Protocolli di comunicazione

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Corso Creare Siti WEB

Corso Creare Siti WEB Corso Creare Siti WEB INTERNET e IL WEB Funzionamento Servizi di base HTML CMS JOOMLA Installazione Aspetto Grafico Template Contenuto Articoli Immagini Menu Estensioni Sito di esempio: Associazione LaMiassociazione

Dettagli

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita Architettura client/ stazioni utente Basi di ati Architetture /Server B locali M BG Architettura centralizzata Un architettura è centralizzata quando i dati e le (programmi) risiedono in un unico Tutta

Dettagli

Internet. Internet. Internet Servizi e Protocolli applicativi. Internet. Organizzazione distribuita

Internet. Internet. Internet Servizi e Protocolli applicativi. Internet. Organizzazione distribuita Organizzazione distribuita Il messaggio viene organizzato in pacchetti dal calcolatore sorgente. Il calcolatore sorgente instrada i pacchetti inviandoli ad un calcolatore a cui è direttamente connesso.

Dettagli

Tecnologie e Programmazione Web

Tecnologie e Programmazione Web Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete

Dettagli

G.mo Direttore del Sistema Informativo

G.mo Direttore del Sistema Informativo Studio Applicazioni Personalizzate di Riggio Caterina & C. Sviluppo Soluzioni Informatiche Palermo li, 20/02/ 2004 Information Technology G.mo Direttore del Sistema Informativo Oggetto: ICARO aggiornamento

Dettagli

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET 18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso ai database

Dettagli

CORSO WEB SERVER, DBMS E SERVER FTP

CORSO WEB SERVER, DBMS E SERVER FTP CORSO WEB SERVER, DBMS E SERVER FTP DISPENSA LEZIONE 1 Autore D. Mondello Transazione di dati in una richiesta di sito web Quando viene effettuata la richiesta di un sito Internet su un browser, tramite

Dettagli

Internet. Servizi applicativi

Internet. Servizi applicativi Internet Internet 1 Servizi applicativi World Wide Web: consultazione interattiva di ipermedia con modalità point-and-click browser e navigazione configurazione e sicurezza i motori di ricerca accesso

Dettagli

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28 Indice 25 184 Introduzione XI Capitolo 1 Impostazione dell ambiente di sviluppo 2 1.1 Introduzione ai siti Web dinamici 2 1.2 Impostazione dell ambiente di sviluppo 4 1.3 Scaricamento di Apache 6 1.4 Installazione

Dettagli

Corso basi di dati Introduzione alle ASP

Corso basi di dati Introduzione alle ASP Corso basi di dati Introduzione alle ASP Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Web statico e Web interattivo In principio il Web era una semplice collezione di pagine

Dettagli

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato SCP: SCHEDULER LAYER a cura di Alberto Boccato PREMESSA: Negli ultimi tre anni la nostra scuola ha portato avanti un progetto al quale ho partecipato chiamato SCP (Scuola di Calcolo Parallelo). Di fatto

Dettagli

Stack protocolli TCP/IP

Stack protocolli TCP/IP Stack protocolli TCP/IP Application Layer Transport Layer Internet Layer Host-to-Nework Layer DNS SMTP Telnet HTTP TCP UDP IP Insieme di eterogenei sistemi di rete... 1 Concetti base Differenza tra i concetti

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

Telematica II 7. Introduzione ai protocolli applicativi

Telematica II 7. Introduzione ai protocolli applicativi Indice Standard ISO/OSI e TCP/IP Telematica II 7. Introduzione ai protocolli applicativi Modello Client / Server I Socket Il World Wide Web Protocollo HTTP Corso di Laurea in Ingegneria Informatica A.A.

Dettagli

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

Guida all uso. Instant Cloud Platform As A Service

Guida all uso. Instant Cloud Platform As A Service Guida all uso Instant Cloud Platform As A Service Prima edizione maggio 2014 Instant Cloud Platform As A Service Sommario Instant Cloud - Platform As A Service... 4 1 Introduzione... 4 2 Instant Cloud...

Dettagli

Lucidi a cura di Andrea Colombari, Carlo Drioli e Barbara Oliboni. Lezione 4

Lucidi a cura di Andrea Colombari, Carlo Drioli e Barbara Oliboni. Lezione 4 Lucidi a cura di Andrea Colombari, Carlo Drioli e Barbara Oliboni Lezione 4 Introduzione alle reti Materiale tratto dai lucidi ufficiali a corredo del testo: D. Sciuto, G. Buonanno e L. Mari Introduzione

Dettagli

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4) Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione

Dettagli

Ipertesto. Reti e Web. Ipertesto. Ipertesto. Ipertestualità e multimedialità

Ipertesto. Reti e Web. Ipertesto. Ipertesto. Ipertestualità e multimedialità Ipertesto Reti e Web Ipertestualità e multimedialità Ipertesto: documento elettronico costituito da diverse parti: nodi parti collegate tra loro: collegamenti Navigazione: percorso tra diversi blocchi

Dettagli

Introduzione all uso di Internet. Ing. Alfredo Garro garro@si.deis.unical.it

Introduzione all uso di Internet. Ing. Alfredo Garro garro@si.deis.unical.it Introduzione all uso di Internet Ing. Alfredo Garro garro@si.deis.unical.it TIPI DI RETI ( dal punto di vista della loro estensione) Rete locale (LAN - Local Area Network): collega due o piu computer in

Dettagli

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

Dettagli

Il Livello delle Applicazioni

Il Livello delle Applicazioni Il Livello delle Applicazioni Il livello Applicazione Nello stack protocollare TCP/IP il livello Applicazione corrisponde agli ultimi tre livelli dello stack OSI. Il livello Applicazione supporta le applicazioni

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

Internet è fatta di sistemi elettrici, elettronici e ottici. Utilizza linee telefoniche, linee dedicate in fibra ottica ecc.

Internet è fatta di sistemi elettrici, elettronici e ottici. Utilizza linee telefoniche, linee dedicate in fibra ottica ecc. INTERNET INTERNET Internet è fatta di sistemi elettrici, elettronici e ottici Utilizza linee telefoniche, linee dedicate in fibra ottica ecc. Internet è una collezione di reti geografiche (WAN, da Wide

Dettagli

Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML

Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML Gianluca Moro gianluca.moro@unibo.it Dipartimento di Elettronica, Informatica e Sistemistica G. Moro - Università di Bologna World

Dettagli

Funzioni di base. Manualino OE6. Outlook Express 6

Funzioni di base. Manualino OE6. Outlook Express 6 Manualino OE6 Microsoft Outlook Express 6 Outlook Express 6 è un programma, incluso nel browser di Microsoft Internet Explorer, che ci permette di inviare e ricevere messaggi di posta elettronica. È gratuito,

Dettagli

INTRODUZIONE AL WEB DINAMICO

INTRODUZIONE AL WEB DINAMICO INTRODUZIONE AL WEB DINAMICO Internet: la rete delle reti Internet rappresenta oggi l espressione del forte bisogno dell uomo di comunicare, al fine, non solo di incrementare le conoscenze, ma anche di

Dettagli

World Wide Web. Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML. Il Successo del Web. Protocolli di accesso

World Wide Web. Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML. Il Successo del Web. Protocolli di accesso Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML Gianluca Moro gmoro@deis.unibo.it Dipartimento di Elettronica, Informatica e Sistemistica Università di Bologna World Wide Web nato

Dettagli

Obiettivi. Unità C2. Connessioni. Internet. Topologia. Tipi di collegamento

Obiettivi. Unità C2. Connessioni. Internet. Topologia. Tipi di collegamento Obiettivi Unità C2 Internet: la rete delle reti Conoscere le principali caratteristiche di Internet Conoscere le caratteristiche dei protocolli di comunicazione Saper analizzare la struttura di un URL

Dettagli

Introduzione alle Reti Informatiche

Introduzione alle Reti Informatiche WWW.ICTIME.ORG Introduzione alle Reti Informatiche Cimini Simonelli - Testa Sommario Breve storia delle reti... 3 Internet... 3 Gli standard... 4 Il modello ISO/OSI... 4 I sette livelli del modello ISO/OSI...

Dettagli

Reti e Internet. Anna F. Leopardi 1 Di 19

Reti e Internet. Anna F. Leopardi 1 Di 19 Reti e Internet Anna F. Leopardi 1 Di 19 Sommario LE RETI INFORMATICHE Lan, Man, Wan INTERNET Breve storia di Internet Servizi Il Web: standard e browser Motori di ricerca E-mail Netiquette Sicurezza Glossario

Dettagli

SERVIZI OFFERTI DA INTERNET INTERNET POSTA ELETTRONICA

SERVIZI OFFERTI DA INTERNET INTERNET POSTA ELETTRONICA Reti Informatiche SERVIZI OFFERTI DA INTERNET INTERNET POSTA ELETTRONICA INTERNET Il prototipo della grande rete si chiamava ARPAnet ed alla fine del 1960 collegava i computer dell UCLA, dello Stanford

Dettagli

Protocolli di Sessione TCP/IP: una panoramica

Protocolli di Sessione TCP/IP: una panoramica Protocolli di Sessione TCP/IP: una panoramica Carlo Perassi carlo@linux.it Un breve documento, utile per la presentazione dei principali protocolli di livello Sessione dello stack TCP/IP e dei principali

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli