MAP - Mobile Agent Platform - Università degli Studi di Messina - a cura di Davide Mangano

Pagina creata da Nicolo Melis
 
CONTINUA A LEGGERE
MAP - Mobile Agent Platform - Università degli Studi di Messina - a cura di Davide Mangano
Università degli Studi di Messina

MAP – Mobile Agent Platform

                                 a cura di Davide Mangano
MAP - Mobile Agent Platform - Università degli Studi di Messina - a cura di Davide Mangano
MAP – Mobile Agent Platform                                                            Davide Mangano

MAP – Mobile Agent Platform

La MAP è la piattaforma per agenti mobili realizzata presso l’Istituto di Informatica e
Telecomunicazioni dell’Università di Catania.
Attraverso una semplice interfaccia grafica permette di compiere operazioni elementari sugli agenti
quali creazione, sospensione, recupero, disattivazione, attivazione, migrazione, distruzione.
In particolare la creazione di un agente può essere eseguita anche su di un server MAP remoto nel
quale può anche non essere presente la classe relativa all’agente stesso. Infatti questa classe può
essere rintracciata sulla rete MAP di cui quel server remoto fa parte.
Per informazioni più dettagliate si rimanda all’ampia documentazione relativa.
Di seguito viene riportata la procedura d’installazione.

Installazione di MAP

L’installazione della piattaforma è stata eseguita con successo su sistemi operativi Microsoft
Windows 2000/XP, avendo a disposizione il seguente software:

MAP versione 4a (mapv4a.zip);
Java Development Kit 1.4.1 (j2sdk-1_4_1-windows-i586.exe);
IAIK-JCE 3.12 evaluation version (iaikjce312ev.zip);
ISASILK 3.0 evaluation version (isasilk30ev.exe);
US_export_policy.jar;
local_policy.jar.

A seguire vengono elencati i passi necessari per l’installazione di MAP e del software di supporto
ad essa.

1)     Scompattare il file mapv4a.zip nella directory radice (es. C:\);

2)     Installare le JDK 1.4.1 facendo attenzione alla directory d’installazione scelta (nei passi
successivi bisognerà farvi riferimento);

3)    Andare alla directory \jre\lib\security e fare una copia di
backup dei files US_export_policy.jar e local_policy.jar;

4)    Copiare i files US_export_policy.jar e local_policy.jar presenti nella directory
\mapv4a\Software, nella directory \jre\lib\security;

5)     Scompattare il file iaikjce312ev.zip nella directory radice (es. C:\);

6)      Copiare il file iaik_jce_full3.0signed.jar presente nella directory \mapv4a\Software, nella
directory \lib;

7)     Installare l’ISASILK 3.0 preferendo come directory d’installazione la directory radice, e
selezionando la JVM (Java Virtual Machine) relativa alle JDK 1.4.1;

8)     Fare una copia di backup del file \lib\iaik_ssl.jar;

                                                   2
MAP - Mobile Agent Platform - Università degli Studi di Messina - a cura di Davide Mangano
MAP – Mobile Agent Platform                                                            Davide Mangano

9)     Copiare il file iaik_ssl.jar presente nella directory \mapv4a\Software, nella directory
\lib;

10)  Lanciare l’utility MapConfig col comando java –classpath c:\mapv4a\MapConfig.jar
MapConfig;

11.1) Una volta avviata l’interfaccia grafica, andare alla sezione Security;
      settare la directory home di MAP (es. C:\mapv4a);
      settare la directory home dello IAIK-JCE (es. C:\iaikjce312ev);
      creare il file di policy di Java, ciccando sul pulsante “Create”
      (la posizione del file è immodificabile);

11.2) Andare alla sezione Common Settings;
      11.2.1) settare la directory dei files *.bin di Java (es. C:\j2sdk1.4.1\bin);
      11.2.2) andare alla sottosezione Classpath;
              selezionare la prima riga (MAP home directory) e cliccare sul bottone “Browse…”
              per individuare la directory d’installazione di MAP (es. C:\mapv4a); una volta
              selezionata la directory, automaticamente vengono settati i path nelle tre righe
              sottostanti;
              selezionare la 5a riga (JCE jar file), cliccare su “Browse…” e selezionare il file
              \lib\iaik_jce_full3.0signed.jar;
              selezionare la 6a riga (SSL jar file), cliccare su “Browse...” e selezionare il file
              \lib\iaik_ssl.jar;
              cliccare sul bottone “Check All”, se compare il messaggio “It’s all right!” i path
              sono corretti, altrimenti bisogna rivederli;

                                                  3
MAP - Mobile Agent Platform - Università degli Studi di Messina - a cura di Davide Mangano
MAP – Mobile Agent Platform                                                            Davide Mangano

11.3) Andare alla sezione Make;
      alla sottosezione ORB options, settare l’indirizzo IP e la porta sul quale è presente ORB
      (es. 127.0.0.1:5000, 192.168.0.1:5000, etc.),
      {       N.B.: se i server ORB e MAP sono presenti sullo stesso Host (hanno cioè stesso IP
              address) settare per MAP una porta diversa (es. 7000)        }
      cliccare sul bottone “Make ORBd” per creare il batch orbd.bat nella directory di MAP;

       alla sottosezione Registrator options, indicare il nome della regione di pertinenza (es.
       Sicilia), quindi cliccare sul bottone “Make registrator batch file…” per creare il file
       batch regd.bat nella directory di MAP;

                                                  4
MAP - Mobile Agent Platform - Università degli Studi di Messina - a cura di Davide Mangano
MAP – Mobile Agent Platform                                                              Davide Mangano

       alla sottosezione M.A.P. options cliccare il bottone “Make M.A.P. batch file…” (senza
       spuntare la casella filename se si vuole lasciare il nome attrib al file) per salvare il file
       attrib.txt nella directory di MAP (successivamente questo file sarà opportunamente
       modificato);
       alla sottosezione Tools cliccare sui bottoni rispettivamente “Make KeyTool batch file…” e
       “Make PolicyTool batch file…” per creare i file mktool.bat e mptool.bat nella directory di
       MAP;

12)    Dopo aver chiuso il MapConfigTool è necessario correggere dei bug d’installazione nei files
       mapd.bat e regd.bat: quindi inserire la stringa –ORBInitialHost  prima di
       ORBInitialPort come in figura seguente (nessun a capo, e attenzione agli spazi!)

13)    Definire il file di politica proprio di Java (C:\j2sdk1.4.1\jre\lib\security\java.policy)
       aggiungendo alla fine le righe:

                                                   5
MAP - Mobile Agent Platform - Università degli Studi di Messina - a cura di Davide Mangano
MAP – Mobile Agent Platform                                                               Davide Mangano

       grant codeBase "file:/mapv4/-" {
                   permission java.security.AllPermission;
              };

14)    Definire la politica di sicurezza del place mediante il MapPolicyTool (mptool.bat)

15)    Definire il file delle chiavi keystore.key; cliccando “Add user” è possibile inserire i dati
       dell’utente (user-name, password, dati personali, validità del certificato); il primo utente è
       l’amministratore del server MAP (es. ivan)

16)    Definire il file attrib.txt; questo file serve alla piattaforma MAP per essere attivata, infatti:
       tra i tag HOME ci deve essere l’indirizzo e la relativa porta del server MAP da attivare,
       tra i tag OWNER deve essere presente l’user id dell’amministratore del server MAP,
       tra i tag REGION il nome della regione a cui il server appartiene,
       tra i tag KEYSTORE il nome del file keystore da usare,
       tra i tag POLSTORE il nome del file di policy da usare per il server da attivare

                                                    6
MAP - Mobile Agent Platform - Università degli Studi di Messina - a cura di Davide Mangano
MAP – Mobile Agent Platform                                                          Davide Mangano

17)    Lanciare una sola volta e su di un solo computer della stessa rete orbd.bat, detto computer
       fungerà da server ORB

18)    Lanciare una sola volta e su un solo computer della stessa regione regd.bat

19)    Lanciare mapd.bat su ogni computer su cui si desidera un server MAP (ad ognuno di essi
       corrisponderà univocamente un file attrib.txt)

                                                 7
MAP - Mobile Agent Platform - Università degli Studi di Messina - a cura di Davide Mangano
MAP – Mobile Agent Platform                                                               Davide Mangano

       ora è possibile inserire user id e password dell’amministratore del server MAP

Funzionalità di MAP

I bottoni in basso a sinistra consentono il login ed il logout di un qualsiasi utente certificato

                                                    8
MAP - Mobile Agent Platform - Università degli Studi di Messina - a cura di Davide Mangano
MAP – Mobile Agent Platform                                                               Davide Mangano

Una volta loggato, l’utente può, con i pulsanti in alto a sinistra (in ordine): creare un agente,
sospenderlo, recuperarlo, disattivarlo, attivarlo, farlo migrare, distruggerlo.
I pulsanti in alto a destra invece servono a:
1)      recuperare informazioni sugli agenti presenti all’interno di un server MAP (View server
        info); inizialmente è visibile solo il server al quale ci si è loggati; è possibile aggiungere un
        server conoscendo l’URL e l’ID dell’amministratore

       così è possibile vedere gli agenti attivi su quel server e la lista delle classi che possiede

2)     accedere alla lista di tutte le entità registrate all’interno della regione di appartenenza del
       server MAP cui l’interfaccia si riferisce (View register info)

                                                    9
MAP - Mobile Agent Platform - Università degli Studi di Messina - a cura di Davide Mangano
MAP – Mobile Agent Platform                                                         Davide Mangano

Di seguito sono presentati degli esempi di agenti funzionanti su piattaforma MAP.

Agente Vagabondo

Questo agente elementare, non appena avviato, migra direttamente su di un altro server MAP di
indirizzo IP pre-impostato (192.168.0.1:7000).
La classe dell’agente viene lanciata sul server di partenza (192.168.0.133:7000)

dando il seguente output

l’agente arriva sul server MAP remoto dando qui l’output di seguito riportato

Questo semplicissimo esempio evidenzia la capacità autonoma di un agente (non è richiesto un
intervento dell’utente) di migrare verso una destinazione nota a priori.

Agente Send e Agente Receive

Quest’altro semplicissimo esempio mostra una primitiva forma di scambiarsi messaggi da parte di
due agenti distinti.
I messaggi sono pre-impostati.
Prima l’agente Send invia “ciao Ivan” all’agente Receive, per cui quest’ultimo visualizza il
messaggio ricevuto in output.
Poi il Receive manda “Ciao Pippo” al Send e questi lo visualizza.

                                                10
MAP – Mobile Agent Platform                                                            Davide Mangano

Agente Circulate

Questo agente è dotato d’interfaccia grafica con la quale è più user-friendly interagire.
Nell’esempio l’agente viene attivato lanciando la classe ItineraryFrame.class sul server
192.168.0.133:7000

L’interfaccia grafica dell’agente consiste in una serie di controlli a pulsante:
         “Add…” per aggiungere un nuovo indirizzo;
         “Add HOME” per aggiungere l’indirizzo del server MAP su cui si stà eseguendo l’agente;
         “Remove” per rimuovere l’indirizzo selezionato;
         “Up” per spostare l’indirizzo selezionato su nella lista;
         ”Down” per spostare l’indirizzo selezionato giù nella lista;
         “START!” per avviare la migrazione automatica dell’agente Circulate attraverso i server
          MAP presenti nella lista degli indirizzi;
         “Close” per chiudere l’applicazione (il che corrisponde a killare l’agente ItineraryFrame).
Se nella lista degli indirizzi si inserisce l’indirizzo di un MAP server remoto (es: 192.168.0.1:7000)
e si clicca “START!”, viene attivato l’agente Circulate il quale parte dal MAP server locale
(192.168.0.133:7000) lasciando ivi una traccia sull’output

                                                  11
MAP – Mobile Agent Platform                                                           Davide Mangano

a questo punto l’agente Circulate migra verso l’indirizzo specificato nella lista; quindi sul MAP
server remoto viene riportato in output il percorso effettuato, dicendo l’indirizzo di partenza e
quello in cui risiede attualmente

Se si clicca “Add HOME” viene aggiunto alla lista l’indirizzo del MAP server su cui risiede
l’ItineraryFrame (es. 192.168.0.133:7000); quindi facendo “START!” il Circulate Agent parte dal
MAP server locale e vi ritorna riportando in output dove è stato nel frattempo

ovviamente sull’output del MAP server remoto rimane traccia dell’avvenuto passaggio dell’agente
Circulate

                                                 12
MAP – Mobile Agent Platform                                                               Davide Mangano

L’ulteriore esempio mostra cosa succede sul server locale, aggiungendo nuovamente l’indirizzo del
server remoto

e sul server remoto

l’agente Circulate, effettivamente, svolge il percorso indicato nella lista degli indirizzi, dall’alto
verso il basso, stabilendosi sul server indicato per ultimo.

Agente Talk

Questo sistema di agenti permette, sostanzialmente, di instaurare una sessione di Istant Messaging
tra due server MAP.
L’utente che voglia attivare detta sessione deve lanciare l’agente TalkMaster.class dal suo MAP
Server (di locazione 192.168.0.1:7000 nell’esempio seguente)

                                                    13
MAP – Mobile Agent Platform                                                             Davide Mangano

dando l’”OK”, compare la finestra Master, dove in alto è possibile inserire l’URL e la porta del
server MAP con cui si vuole instaurare la sessione di chat;
cliccando quindi su “Talk” si avvia una sorta di handshaking col server remoto: viene fatto migrare
l’agente TalkSlave (nell’esempio, all’indirizzo 192.168.0.133:7000), il quale, dopo essersi lì
attivato, invia un ack al TalkMaster sul server locale; così compare sulla finestra Master il
messaggio di “collegamento effettuato”

Lo screenshot di seguito mostra cosa succede sul server remoto: l’agente TalkSlave arriva, si attiva
e lancia la finestra di dialogo Slave; si nota come è proprio il TalkSlave l’agente mobile, in quanto è

                                                  14
MAP – Mobile Agent Platform                                                            Davide Mangano

esso a portare con se tutte le informazioni di controllo e che permette di effettuare la connessione,
una volta arrivato lo Slave stà in ascolto e consente di comunicare col Master

Ora può avere inizio la conversazione vera e propria

                                                  15
MAP – Mobile Agent Platform                                                            Davide Mangano

Lo Slave visualizza il messaggio di testo inviato dal server locale nella finestra del server remoto

l’utente pippo risponde ai saluti dell’utente ivan

                                                     16
MAP – Mobile Agent Platform                                                            Davide Mangano

Il Daemon del server MAP locale riceve nuovi dati: è la risposta dell’utente pippo

                                                                                        Si ringraziano:

                                                                                     il Prof. Puliafito,
                                                                                          l’Ing. Scarpa,
                                                                                           l’Ing. Villari,
                                                                                         l’Ing. Bruneo.

                                                17
Puoi anche leggere