Statecharts: A visual formalism for complex systems
Science of Computer Programming
IEEE Transactions on Software Engineering
Persistent execution state of a Java virtual machine
Proceedings of the ACM 2000 conference on Java Grande
Developing multi-agent systems with a FIPA-compliant agent framework
Software—Practice & Experience
Programming and Deploying Java Mobile Agents Aglets
Programming and Deploying Java Mobile Agents Aglets
Design Issues in Mobile-Agent Programming Systems
IEEE Concurrency
Arachne: A Portable Threads System Supporting Migrant Threads on Heterogeneous Network Farms
IEEE Transactions on Parallel and Distributed Systems
Mobile Active Object for Highly Dynamic Distributed Computing
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
COORDINATION '99 Proceedings of the Third International Conference on Coordination Languages and Models
Automatic State Capture of Self-Migrating Computations in MESSENGERS
MA '98 Proceedings of the Second International Workshop on Mobile Agents
Transparent Migration of Java-Based Mobile Agents
MA '98 Proceedings of the Second International Workshop on Mobile Agents
Strong Mobility and Fine-Grained Resource Control in NOMADS
ASA/MA 2000 Proceedings of the Second International Symposium on Agent Systems and Applications and Fourth International Symposium on Mobile Agents
Bytecode Transformation for Portable Thread Migration in Java
ASA/MA 2000 Proceedings of the Second International Symposium on Agent Systems and Applications and Fourth International Symposium on Mobile Agents
Portable Support for Transparent Thread Migration in Java
ASA/MA 2000 Proceedings of the Second International Symposium on Agent Systems and Applications and Fourth International Symposium on Mobile Agents
Translating Strong Mobility into Weak Mobility
MA '01 Proceedings of the 5th International Conference on Mobile Agents
Sumatra: A Language for Resource-Aware Mobile Programs
MOS '96 Selected Presentations and Invited Papers Second International Workshop on Mobile Object Systems - Towards the Programmable Internet
Pickling Threads State in the Java System
TOOLS '00 Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS 33)
Adaptation point analysis for computation migration/checkpointing
Proceedings of the 2005 ACM symposium on Applied computing
Analysis of recursive state machines
ACM Transactions on Programming Languages and Systems (TOPLAS)
Achieving Mobile Agent Systems interoperability through software layering
Information and Software Technology
UML 2.0 state machines: complete formal semantics via core state machines
FMICS'06/PDMC'06 Proceedings of the 11th international workshop, FMICS 2006 and 5th international workshop, PDMC conference on Formal methods: Applications and technology
Using event-driven lightweight DSC-based agents for MAS modelling
International Journal of Agent-Oriented Software Engineering
Statecharts-based JADE agents and tools for engineering multi-agent systems
KES'10 Proceedings of the 14th international conference on Knowledge-based and intelligent information and engineering systems: Part I
Recursive algorithms in computer science courses: Fibonacci numbersand binomial coefficients
IEEE Transactions on Education
An agent-based approach for the design and analysis of content delivery networks
Journal of Network and Computer Applications
Hi-index | 0.00 |
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.