|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--SOMA.agent.Agent
Classe astratta che rappresenta un agente.
Per creare un agente e' necessario sottoclassare la classe Agent
ridefinendo i metodi run()
e,
se necessario, putArgument( Object obj )
.
Il place mette a disposizione dell'agente un insieme di risorse,
i cui riferimenti si trovano nel campo agentSystem
.
Il place associa ad ogni agente un worker che permette di mandare in esecuzione l'agente stesso.
AgentSystem
,
AgentWorker
, Serialized FormField Summary | |
AgentSystem |
agentSystem
Interfaccia fra agente e sistema. |
java.lang.String |
start
|
Constructor Summary | |
Agent()
Costruttore vuoto. |
Method Summary | |
AgentID |
getID()
Restituisce l'identificatore dell'agente. |
void |
go(PlaceID destination,
java.lang.String method)
Metodo di migrazione verso un altro place. |
void |
putArgument(java.lang.Object obj)
Permette di definire lo stato iniziale dell'agente. |
abstract void |
run()
Metodo mandato in esecuzione all'avvio di un agente. |
void |
setID(AgentID myID)
Permette di specificare l'ID di un agente. |
java.lang.String |
toString()
Fornisce una rappresentazione in forma di stringa dell'agente. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
Field Detail |
public java.lang.String start
public transient AgentSystem agentSystem
Interfaccia fra agente e sistema.
agentSystem
contiene i riferimenti agli oggetti cui
l'agente ha accesso. In questo modo e' garantita la protezione del sistema da
possibili attacchi di agenti ostili, a cui non verranno forniti riferimenti
a risorse critiche.
Questo campo e' transient
perche' viene asegnato all'agente
dal place in cui si trova.
Constructor Detail |
public Agent()
Method Detail |
public void setID(AgentID myID)
Permette di specificare l'ID di un agente.
L'implementazione permette di specificare l'ID di un agente una sola volta.
Quest'operazione non č fatta dal costruttore per non complicare l'operazione di
creazione di un agente: AgentManager.createAgent( String agentName, Object argument )
.
public AgentID getID()
public void putArgument(java.lang.Object obj)
run()
.obj
- Un oggetto contenente informazioni di inizializzazione.
Ovviamente l'oggetto puņ anche contenere una struttura dati complessa.public abstract void run()
public void go(PlaceID destination, java.lang.String method) throws CantGoException
Metodo di migrazione verso un altro place.
Viene invocato il metodo AgentSystem.go( Agent agent, PlaceID destination )
.
destination
- Il place di destinazione, che puņ appartenere ad un dominio qualsiasi.method
- Il metodo con cui verra' riattivato l'agente, vedi start
Attenzione: se un agente ha il riferimento ad un altro agente puņ chiamarne il metodo di migrazione, come ogni altro metodo. In sostanza ne puņ assumere il controllo completo. E' quindi estremamente opportuno mantenere nascosti ad ogni agente i riferiemnti ad altri agenti.
public java.lang.String toString()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |