Aglets Based on Mobile Agents with Java: The Aglet API by Danny B. Lange and Mitsuru Oshima
Their Definition of Agent n A software object n Mandatory properties –reactive –autonomous –goal-driven –temporally continous
Seven Good Reasons (I) n Reduce network load through mobility n Overcome network latency n Encapsulate protocols -- dealing with legacy systems n Execute asynchronously and autonomously
Seven Good Reasons (II) n Adapt dynamically n Naturally heterogeneous n Robust and fault-tolerant –can find better hosts –can distribute tasks –work redundantly
Pos. Agent Chars. of Java (I) n Platform independent n Secure execution –no illegal type casting –no pointer arithmetic –byte code is checked before execution n Dynamic class loading n Multithread programming –synchronization primitives
Pos. Agent Chars. of Java (II) n Object serialization n Reflection
Neg. Agent Chars. of Java (I) n No resource control –CPU cycles –memory –GUI handles n No protection of references –access to public methods –proxy
Neg. Agent Chars. of Java (II) n No object ownership of references –garbage collection –memory, GUIs not released –agent kept alive against its will (with reference to agent) n No support for preservation and resumption of execution state –no access to virtual machine, program counter, etc.
Basic Concepts of Aglets n Aglet n Proxy n Context n Message –synchronous and asynchronous n Future reply n Identifier
Basic Operation on Aglets n Create n Clone n Dispatch n Retract n Activate and deactivate n Dispose n Send and receive messages