|
Scarica la tesi in formato .pdf. Presto disponibile anche in .html Il grosso successo di Java dipende sicuramente dal fatto che la pubblicità’ fattagli lo elegge a linguaggio per eccellenza per lo sviluppo di software per Internet. Lo stesso discorso e’ avvenuto con il protocollo TCP/IP la cui la strabiliante popolarità’ e’ derivata anche in questo caso al suo legame con Internet. Spesso il troppo parlare di certe cose fa nascere dei miti che alcune volte portano ad esagerare sulla vera essenza di una cosa oppure spingono a utilizzare delle parole senza di fatto conoscerne il vero significato. Java e TCP/IP costituiscono due esempi di un caso e dell’ altro. Il primo e’ stato talmente pubblicizzato legato a Internet che sembra quasi che l’ unico problema relativo alla scrittura di software per questa ultima sia quella di installare il compilatore. Una volta poi installato il tutto iniziano le varie “santificazioni” quando ci si accorge che il tutto non era poi cosi semplice in quanto iniziano a sorgere un infinita di “…questo non e’ possibile farlo perché il gestore della sicurezza non permette di …”, “…non e’ permessa la scrittura su host perché…”, “…il protocollo ha problemi se si usano streams di …”, ecc. Il secondo caso invece e’ costituito dal fatto che tutti parlano di TCP/IP ma pochi conoscono bene come questo funziona. Le filosofie orientali legate allo Zen (e all’ arte di programmare) parlano di “medianita’” ovvero della ricerca del punto di equilibrio. Alcuni concetti a volte sono veramente complessi e la loro conoscenza totale porterebbe ad impiegare eccessive forze in relazione agli obbiettivi che ci si prefiggono. Prendiamo ad esempio il protocollo TCP/IP (Transmission Control Protocol/Internet Protocol). La conoscenza globale pretenderebbe uno sforzo notevole in quanto l’ argomentazione e’ veramente complessa soprattutto se si scende a livello di progettazione. In ogni caso una buona conoscenza di alcuni principi di base permette di sopperire ad alcuni problemi che sorgono utilizzando Java in ambiente Internet. Infatti alcune limitazioni relative agli applets sono veramente pesanti quali ad esempio quelle legate all’ impossibilita’ di leggere e scrivere files ecc. Per rinfrescare la memoria riassumiamo qui le principali limitazioni di un applet. 1. Java puo usare solo il proprio codice e non puo’ supportarsi su librerie esterne o utilizzare codice nativo di altra natura quali ad esempio il linguaggio C. 2. Un applet non puo’ leggere o scrivere files. Nel caso della lettura alcuni browser la permettono utilizzando la specifica URL al posto del nome file (vedi a seguito la parte dedicata alle URL). La scrittura di file invece puo’ avvenire mediante tecniche di programmazione client/server tramite l’ utilizzo dei socket (vedi anche in questo caso il capitolo piu’ avanti dedicato ai socket). 3. Una applet non può creare connessioni eccetto che con l’ host da cui proviene. 4. Non puo’ eseguire programmi sull’ host. 5. Non gli e’ permesso richiedere informazioni su alcune proprieta’ del sistema. 6. Una dialog creata da un applet riporta la scritta che avvisa che la finestra e’ di proprieta’ dell’ applet stessa al fine di evitare la simulazione, ad esempio, di maschere in cui vengono richieste password e codici d’ accesso ad insaputa dell’ utente. La conoscenza del funzionamento del protocollo e delle classi di rete permette di aggirare gli ostacoli che si creano a seguito delle precedenti limitazioni. Innanzi tutto : che cosa sono i protocolli ? I protocolli di comunicazione nascono dall’ esigenza di trasmettere dati su delle linee di comunicazione di diversa natura, controllandone la correttezza, in diversi ambienti, con un numero indefinito di partecipanti, con ambienti operativi differenti ecc. Inizialmente la problematica principale nasceva dall’ esigenza di controllare la correttezza dei dati trasmessi tra due sistemi collegati punto a punto. In pratica semplificando si potrebbe dire : “Io ti trasmetto un numero X di dati in sequenza e mano mano che li invio eseguo la loro sommatoria. Finito di trasmetterteli ti invio la somma che ho calcolato. Tu mentre ricevi i dati da me inviati esegui la stessa somma. Se il valore che ti ho comunicato io alla fine e’ uguale a quello che hai calcolato mentre ricevevi dimmi di proseguire nell’ invio dei pacchetti se non avvertimi dell’ errore e fammi ripetere l’ invio degli stessi dati.” Questo era valido nel caso di connessioni fisiche punto a punto. Quando le connessioni iniziarono a riguardare reti con piu’ partecipanti il problema si estese in quanto il pacchetto che prima conteneva soltanto i dati e la somma per la verifica della correttezza dovette essere estesa includendo all’ interno di essa anche i dati relativi all’ indirizzo del mittente quello del destinatario. Questo detto in tono semplicistico per far comprendere il principio di base dei protocolli. Esistono un infinita’ di protocolli destinati a problematiche e ad ambienti differenti. Molti protocolli sono particolari per ambienti LAN (Local Area Network – reti locali), altri per ambienti WAN (Wide Area Network – reti geografiche) mentre altri ancora, come il TCP/IP, sono in grado di offrire ottime prestazioni in ambedue gli ambienti. La forza di TCP/IP e’ dovuta proprio all’ equilibrio che questo ha in ambe due gli ambienti. Inoltre TCP/IP funziona in modo egregio in ambiente multi piattaforma e questo costituisce un altro dei suoi punti di forza. La sua origine, come moltissime altre tecnologie legate al campo del software e dell’ hardware, e’ legata al Ministero della Difesa USA come protocollo per l’ interconnessione di grandi mainframe. Inizialmente la comunicazione tra i vari sistemi della ricerca finanziata dal Pentagono era in funzione di una rete telematica battezzata ARPANET la quale sfruttava il protocollo NCP (Network Control Protocol) per l’ interconnessione dei sistemi. Il passaggio dell’ uso del protocollo da NCP a TCP su ARPANET sancì l’ atto di nascita di Internet (nei primi mesi del 1983). Inizialmente TCP/IP era solo un insieme di protocolli che permettevano la connessione di computer differenti e di trasmettere dati tra di loro. I principi del protocollo TCP/IP erano stati comunque posti verso la meta’ degli anno 70 da Vinton Cerf e Robert Kahn. Una volta sentii dire : “… gli standards sono belli perché ce ne sono tanti … dovrebbe pero’ esserci uno standard per gli standards”. Anche nel caso delle reti si e’ tentato di definire degli standards e per fare questo sono nati degli appositi enti competenti. L’ autorità indiscussa nel campo delle reti e’ l’ ISO la quale ha emanato un modello di riferimento per regolare le comunicazioni tra computer mediante protocolli. Questo modello prende il nome di OSI (Open Systems Interconnection). Il modello OSI e’ stato progettato per aiutare i programmatori a creare applicazioni compatibili con diverse linee di prodotti multivendor e per fare questo prevede sette strati ognuno dei quali si interessa di una determinata tipologia di problematiche. I sette strati OSI sono i seguenti : strato applicazione strato di presentazione strato di sessione strato di trasporto strato di rete strato di collegamento dati strato fisico Esiste un altro modello di riferimento che costituisce in un certo senso la versione condensata del modello OSI che si chiama DoD e che contempla quattro strati anzi che sette. Gli strati del modello DoD sono : strato processo/applicazione strato host-to-host strato internet strato accesso alla rete Diamo un occhiata sommaria ai sette strati del modello OSI.
|