next up previous
Next: Gestione degli errori Up: Descrizione dettagliata delle parti Previous: Sincronizzare gli accessi alla


Parte IV: l'Agent Directory Service Layer

L'ADSL ha lo scopo di ``pubblicare'' i RemoteMessageBox degli agenti presenti nella piattaforma in un dato momento. Rappresenta una sorta di rmiregistry in sui è possibile effettuare operazioni di ricerca ``avanzate''. Un agente quando viene creato deve registrare la propria RemoteMessageBox come oggetto remoto (iscriverlo presso un rmiregistry concordato a priori) e quindi richiedere all'ADSL l'iscrizione presso di esso. Quando un agente A vuole a inviare un messaggio ad un agente B si rivolge all'ADSL specificando l'identificatore dell'agente B, l'ADSL restituisce restituisce il RemoteMessageBox di B, sul quale A può invocare la writeMessage.

Si definisca una interfaccia ``remota'' ADSL contenente i metodi:

Si definisca quindi la classe ADSLImpl che implementa l'interfaccia remota ADSL e contenente il campo:

Si scelga l'implementazione più opportuna per messageBoxes. Si consideri che l'operazione più frequente è la ricerca di un RemoteMessageBox dato un oggetto di tipo AgentID (List? Map? SortedMap?). Si tenga presente che messageBoxes è una risorsa condivisa, più agenti possono richiedere inserimenti/cancellazioni/interrogazioni contemporaneamente. Si realizzino le implementazioni dei metodi get, insert e remove in maniera opportuna.



Subsections
next up previous
Next: Gestione degli errori Up: Descrizione dettagliata delle parti Previous: Sincronizzare gli accessi alla
Matteo Baldoni 2004-03-19