Con questo workshop viene presentato un semplice modulo, sviluppato all'IFAC, per realizzare applicazioni client-server in Python con protocollo proprietario e ne vengono illustrate alcune applicazioni esemplificative.
Sarebbe interessante se questo fosse il primo di una serie di semplici workshop applicativi in cui vengono illustrate applicazioni in Python sviluppate internamente, che possono essere di utilità generale, o per un riutilizzo diretto oppure come spunto di riflessione per approfondire alcuni aspetti del linguaggio. Tra gli argomenti che vengono in mente in proposito: accesso ai database, gestione avanzata di immagini e colori, gestione della strumentazione e rapporti con l'hardware.
Dopo un brevissimo riepilogo di alcuni concetti generali, per il resto questa introduzione si dipanerà attraverso la presentazione e la discussione di alcuni esempi. I sorgenti verranno copiati da questa pagina Web in un editor di testo (o in Idle), eventualmente modificati e lanciati in esecuzione.
Secondo la solita Wikipedia: Un sistema client-server (letteralmente cliente-servente) è un'architettura di rete nella quale un computer client istanzia l'interfaccia utente di un'applicazione connettendosi ad una server application o ad un sistema di database. Più semplicemente, i sistemi client/server sono un'evoluzione dei sistemi basati sulla condivisione semplice delle risorse. La presenza di un server permette ad un certo numero di client di condividere delle risorse, lasciando che sia il server a gestire gli accessi alle risorse per evitare conflitti di utilizzazione tipici dei primi sistemi informatici. [Fine citazione]
Un sistema client-server (letteralmente cliente-servente) è un'architettura di rete nella quale un computer client istanzia l'interfaccia utente di un'applicazione connettendosi ad una server application o ad un sistema di database. Più semplicemente, i sistemi client/server sono un'evoluzione dei sistemi basati sulla condivisione semplice delle risorse. La presenza di un server permette ad un certo numero di client di condividere delle risorse, lasciando che sia il server a gestire gli accessi alle risorse per evitare conflitti di utilizzazione tipici dei primi sistemi informatici.
In altre parole, in una applicazione client-server, l'obiettivo che si vuole raggiungere viene perseguito suddividendo le elaborazioni da svolgere tra due programmi distinti, detti per l'appunto client e server, che si ripartiscono i compiti in modo ottimale e colloquiano tra di loro mediante una connessione di rete. Noi ci occuperemo unicamente di connessioni di rete realizzate mediante il protocollo TCP/IP. Una volta che i due programmi sono collegati, il loro ruolo sulla rete è del tutto paritetico, ma ciò non ostante dal punto di vista dell'applicazione complessiva i ruoli del client e del server sono chiaramente distinti. In linea di massima, il server si occupa di gestire delle risorse mentre il client si occupa di offrire un'interfaccia all'utente. Esempi tipici di applicazioni client-server con protocollo TCP/IP sono la distribuzione della posta elettronica (protocolli SMTP, POP3, IMAP), il trasferimento file (protocollo FTP), la consultazione delle pagine Web (protocollo HTTP). Noi ci occuperemo dello sviluppo di applicazioni client-server con protocollo proprietario.
proprietario
concorrente
pacchetti
umani
iterativo
portato