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:
- RemoteMessageBox getRemoteMessageBox(AgentID agentID) throw ...,
che restituisce il riferimento all'aggetto remoto RemoteMessageBox dell'agente
agentID;
- void insertRemoteMessageBox(RemoteMessageBox messageBox) throw ...,
che richiede l'inserimento di messageBox presso l'ADSL;
- void removeRemoteMessageBox(AgentID agentID) throw ...,
che richiede la cancellazione dell'oggetto RemoteMessageBox
presente presso l'ADSL di proprietà dell'agente agentID.
Si definisca quindi la classe ADSLImpl che implementa l'interfaccia
remota ADSL e contenente il campo:
- messageBoxes: contenente gli oggetti remoti di tipo RemoteMessageBox.
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: Gestione degli errori
Up: Descrizione dettagliata delle parti
Previous: Sincronizzare gli accessi alla
Matteo Baldoni
2004-03-19