Scambiare Dati tra Computer

Il modello informatico attuale si basa fondamentalmente su un sistema di computer interconnessi tra loro con lo scopo di rendere disponibili i dati strutturati nei modi più diversi. L'informatica moderna si basa su una fusione dell'informatica personale basata su PC, e dell'informatica gestionale, che era appannaggio unico dei grandi mainframe.

In questo contesto è nato il problema di poter disporre di sistemi di scambio dati legati alle applicazioni e con concetti di sicurezza adeguati all'importanza dei dati trattati. Il sistema basato sulle porte seriali ha dovuto cedere il passo a sistemi sempre più complessi, sia per la quantità dei dati trattati, sia per la sicurezza richiesta nello scambio dei dati.

Insieme ai primi PC si è sviluppata una rete di computer basata sullo sfruttamento delle porte seriali rs232, ma con un protocollo molto particolare definito TCP/IP. In realtà questo è l'acronimo di due modelli Trasmission Control Protocol/Internet Protocol.  In realtà il TCP/IP è diventato molto complesso ma fortemente standard e quindi con questa sigla si definisce completamente il sistema di comunicazione più utilizzato.

Quale collegamento

Un collegamento TCP/IP può essere realizzato con qualunque mezzo fisico atto a scambiare dati tra due computer. Quindi indifferentemente è possibile utilizzare una porta parallela, una porta seriale, una scheda di rete ho un collegamento radio ormai sempre più di moda.

Quando è stabilito un collegamento fisico tra due computer, può essere attivato un collegamento logico. Nei computer moderni il collegamento fisico e il collegamento logico sono ben separati e sono gestiti da livelli software ben diversi.

Per semplificare il modello possiamo dire che che i driver software di un dispositivo gestiscono il protocollo fisico, mentre alcune parti del sistema operativo gestiscono il collegamento logico.

Qualcosa di più complesso

In realtà le cose sono diventate un po' più complesse perché lo stesso computer nello stesso momento potrebbe utilizzare lo stesso collegamento per funzioni diverse che potrebbero essere lo scambio di posta, la navigazione su internet, lo scambio di dati tramite FTP e altro.

Quando due computer scambiano dati utilizzando TCP/IP sfruttano le porte che praticamente identificano la particolare applicazione. In questo modo allo stesso indirizzo IP possono rispondere diverse applicazioni locicamente collegate su porte diverse. Ad esempio, in server, il protocollo www è attivo tipicamente sulla porta 80, il protocollo FTP sulla porta 21. Però durante lo scambio dati via FTP, il server può cercare di aprire un altro canale per lo scambio dati, in questo caso il server negozia lo scambio dati su una porta tipicamente compresa tra 1024 e 4096.

Alle porte sono associati i socket. La gestione delle comunicazioni tramite i socket è un sistema ormai standard. Nel mondo unix i socket di Berkeley servivano per scambiare dati su internet, oggi in ambiente Microsoft i socket sono gestiti attraverso varie dll come ad esempio winsock.dll o wsock32.dll. Per la gestione dei socket, sia le dll di Microsoft, sia le librerie di unix o linux,  hanno un insieme praticamente identico di strutture dati e funzioni.

Le applicazioni

Ormai è sempre più importante scambiare dati tra varie applicazioni. I dati potrebbero essere raggruppati in modo strutturato in un file, e questi dati potrebbero essere inviati in modo automatico ad un server specializzato per il trattamento di quei dati specifici.

In questo modo è possibile realizzare applicazione per il trattamento degli ordini, per la tentata vendita o altro. In questo caso per il trattamento dei dati è possibile utilizzare dei semplici protocolli come l'FTP attivo o passivo.

Se però si volesse realizzare un sistema sofisticato ad esempio per la prenotazione dei posti in aereo, si dovrebbero utilizzare sistemi nettamente più complessi con protocolli on-line come ad esempio il Matip.

Gli aspetti legati alla gestione delle comunicazioni possono essere raggruppati in una sola dll molto semplice per le persone che tipicamente si occupano di applicazioni gestionali e di database.  La dll potrebbe essere standardizzata all'interno dell'azienda secondo criteri ben precisi (accessi allo stesso server, indirizzi IP, ecc.).