• Non ci sono risultati.

dall’altra parte, sono stati sviluppati approcci innovativi per sfruttare la nozione di “mobilità del codice”

N/A
N/A
Protected

Academic year: 2021

Condividi "dall’altra parte, sono stati sviluppati approcci innovativi per sfruttare la nozione di “mobilità del codice”"

Copied!
3
0
0

Testo completo

(1)

Introduzione

Negli anni Novanta si è assistito a un enorme sviluppo delle reti di calcolatori, sia nelle dimensioni che nel traffico di dati che circolano su di esse.

Lo sviluppo delle reti è stato sostenuto da un altrettanto rapido sviluppo delle tecnologie informatiche e per le telecomunicazioni, che ha portato a una continua ricerca dell’aumento delle prestazioni, necessario per far fronte alla sempre maggiore richiesta di velocità e di larghezza di banda.

Le reti di calcolatori si trovano così a presentare caratteristiche di pervasività e di ubiquità. Con il primo termine si allude al fatto che la connettività di rete è diventata una caratteristica praticamente indispensabile di ogni calcolatore, mentre con il secondo si intende dire che gli utenti delle reti si aspettano di poter usufruire di tale connettività in qualunque luogo si trovino. Si è assistito dunque alla diffusione di tecnologie di rete caratterizzate da una grande facilità d’uso, per essere accessibili anche da utenti non esperti: come esempio si può citare lo stesso World Wide Web.

4

(2)

La disponibilità di queste tecnologie ha determinato la nascita di una vasta serie di nuove applicazioni, e ha causato mutamenti radicali in altre applicazioni che già esistevano. Da una parte, si è cercato di adattare alla nuova realtà modelli e tecnologie già esistenti, presupponendo solitamente un’architettura di base di tipo client-server; dall’altra parte, sono stati sviluppati approcci innovativi per sfruttare la nozione di “mobilità del codice”; dove con questo termine si intende la possibilità di poter muovere programmi, oltre che dati, fra diversi nodi di una rete. I potenziali vantaggi sono, tra gli altri, l’aumento delle prestazioni, la diminuzione del traffico di rete generato, un maggiore disaccoppiamento dei componenti software di un’applicazione.

In questo contesto è nato e si è sviluppato il linguaggio Java.

Originariamente, era stato pensato soprattutto per facilitare la comunicazione fra devices hardware di vario genere, ma in seguito, con lo sviluppo esponenziale di Internet, sono state aggiunte molte altre caratteristiche che praticamente lo hanno reso “il linguaggio della Rete”. Inoltre, Java è risultato particolarmente adatto per la creazione di applicazioni distribuite su larga scala.

Tra le altre, Java possiede anche alcune caratteristiche che supportano la mobilità del codice. Infatti viene fornito un meccanismo programmabile, il class loader, che permette di caricare e collegare le classi di cui si ha bisogno dinamicamente, a runtime (le classi sono le unità fondamentali di un programma scritto in Java). Si può affermare che, Java supporta una weak mobility del codice con meccanismi di fetching di parti di esso. Questi meccanismi possono essere sincroni o asincroni e permettere un’esecuzione immediata o posticipata del codice prelevato.

Per far comunicare nodi diversi di una rete di calcolatori, sfruttando la classica metodologia client-server, il linguaggio Java ha introdotto un meccanismo di comunicazione basato sull’invocazione di metodo remoto (il meccanismo Java RMI).

5

(3)

Organizzazione della tesi

La tesi presentata si propone di fornire un valido documento per comprendere il funzionamento del meccanismo di invocazione remota del linguaggio Java™. L’ esigenza di un tale lavoro nasce, non solo dall’importanza che il linguaggio Java ha acquisito negli ultimi anni, ma soprattutto dalla necessità di una più dettagliata conoscenza dell’API RMI, da considerare come punto di partenza per futuri sviluppi nell’ambito di tecniche per la migrazione del codice e nell’ambito di tecniche di power-saving.

La documentazione prodotta è suddivisa in quattro capitoli. Nel primo capitolo, il lettore viene introdotto alla conoscenza del meccanismo Java RMI, del quale viene presentata l’architettura. Nel secondo e terzo capitolo, invece, vengono descritte le classi e interfacce che compongono i due package java.rmi e sun.rmi; in particolare, la descrizione scende nel dettaglio, in quanto si esamina il codice sorgente dell’API RMI. Infine, nel quarto capitolo viene descritto il funzionamento del meccanismo di invocazione remota (che appare del tutto trasparente al programmatore), descrivendo l’interazione tra le varie classi esaminate nei capitoli precedenti, e il funzionamento del meccanismo di garbage collection distribuita (DGC).

6

Riferimenti

Documenti correlati

Cliente (Client): quando l’applicazione utilizza dei servizi messi a disposizione da altre applicazioni Servente (Server): quando l’applicazione fornisce servizi usati da

z Il client è un qualsiasi programma che invia una richiesta e aspetta una risposta; tipicamente termina dopo avere usato un server un numero finito di volte. z Il server aspetta

n “Thin” client containing only the Presentation Logic subsystem (session, text input, dialog, and display management services). n

L’acquisizione dei dati dall’oscilloscopio avviene tramite l’interfaccia hardware GPIB, mentre il software per l’elaborazione è stato realizzato con il linguaggio di

• Un programma Java puo accedere a files conte- nenti suoni, immagini, testi ed altri programmi Java ovunque situati sulla rete WEB, mediante dei riferimenti basati su indirizzi

• FileOutputStream implementa questi metodi nel caso parti- colare in cui l’output è un file, il cui nome è passato al costrut- tore di FileOutputStream ; in alternativa si

3) Il servitore accetta la richiesta del cliente: con ciò si stabilisce una connezioe e si il server crea una nuova Socket già collegata al cliente, tramite cui i due comunicano.

Se definiamo ascoltatori diversi per eventi diversi il sistema provvederà ad inviare gli eventi solo all'ascoltatore opportuno, e il metodo actionPerformed non deve più