An application-level technique based on recursive hierarchical state machines for agent execution state capture

https://doi.org/10.1016/j.scico.2011.10.001Get rights and content
Under an Elsevier user license
open archive

Abstract

The capture of the execution state of agents in agent-based and multi-agent systems is a system feature needed to enable agent checkpointing, persistency and strong mobility that are basic mechanisms supporting more complex, distributed policies and algorithms for fault tolerance, load balancing, and transparent migration. Unfortunately, the majority of the currently available platforms for agents, particularly those based on the standard Java Virtual Machine, do not provide this important feature at the system-level. Several system-level and application-level approaches have been to date proposed for agent state execution capture. Although system-level approaches are effective, they modify the underlying virtual machine so endangering compatibility. Conversely, application-level approaches do not modify any system layer but they provide sophisticated agent programming models and/or agent converters that only allow a coarse-grain capture of agent state execution.

In this paper, we propose an application-level technique that allows for a programmable-grain capture of the execution state of agents ranging from a per-instruction to a statement-driven state capture. The technique is based on the Distilled StateCharts Star (DSC*) formalism that offers an agent-oriented type of recursive hierarchical state machines. According to the proposed technique a single-threaded agent program can be translated into a DSC* machine, containing agent data, code and execution state, by preserving the original agent program semantics. The proposed technique can notably be applied to any agent program written through an imperative-style, procedural or object-oriented programming language. Currently, it is implemented in Java and fully integrated into the JADE framework, being JADE one of the most diffused agent platforms. In particular, agents, which are specified through a generic Java-like agent language, can be automatically translated into JADE agents according to the JADE DSCStarBehaviour framework by means of a translator tool. A simple yet effective running example is used to exemplify the proposed technique from modeling to implementation.

Highlights

► A novel technique for application-level capture of the agent execution state based on recursive hierarchical state machines. ► A new formalism for recursive agents named Distilled StateCharts Star (DSC*) formalism. ► A Jade add-on, DSCStarBehaviour framework, and translation tools for the automatic production of JADE-based DSC* agents.

Keywords

Software agents
Distilled StateCharts
Execution state capture
JADE
Strong mobility

Cited by (0)