Janus (multi-agent and holonic platform)
Encyclopedia
Janus is the name of a multiagent
simulation platform, useful for simulating the interaction of agent
s (social or biological) and their emergent
collective behavior. Janus is innovative because it is able to run, at the same time:
Janus was initially developed in 2004 by the SET multiagent group and the CITAT, and since 2010 has been released under open-source license for academic uses, and non-free license for commercial uses.
ASPECS provides step-by-step guidelines to specify, design, and implement models of complex systems.
One of the major goals of ASPECS is to fill the gap between agent-oriented design and real implementations. Janus is the multiagent platform specifically designed to support the CRIO metamodel.
Multi-agent system
A multi-agent system is a system composed of multiple interacting intelligent agents. Multi-agent systems can be used to solve problems that are difficult or impossible for an individual agent or a monolithic system to solve...
simulation platform, useful for simulating the interaction of agent
Intelligent agent
In artificial intelligence, an intelligent agent is an autonomous entity which observes through sensors and acts upon an environment using actuators and directs its activity towards achieving goals . Intelligent agents may also learn or use knowledge to achieve their goals...
s (social or biological) and their emergent
Emergence
In philosophy, systems theory, science, and art, emergence is the way complex systems and patterns arise out of a multiplicity of relatively simple interactions. Emergence is central to the theories of integrative levels and of complex systems....
collective behavior. Janus is innovative because it is able to run, at the same time:
- agent architecturesAgent architectureAgent architecture in computer science is a blueprint for software agents and intelligent control systems, depicting the arrangement of components...
, - organizational models, and
- holarchiesHolarchyA holarchy, in the terminology of Arthur Koestler, is a connection between holons – where a holon is both a part and a whole. The term was coined in Koestler's 1967 book The Ghost in the Machine...
and holonHolon (philosophy)A holon is something that is simultaneously a whole and a part. The word was coined by Arthur Koestler in his book The Ghost in the Machine . Koestler was compelled by two observations in proposing the notion of the holon...
-based models.
Janus was initially developed in 2004 by the SET multiagent group and the CITAT, and since 2010 has been released under open-source license for academic uses, and non-free license for commercial uses.
From ASPECS to Janus
ASPECS (Agent-Oriented Software Process for Engineering Complex Systems) is a methodology based on the CRIO metamodel (Capacity, Role, Interaction, Organization).ASPECS provides step-by-step guidelines to specify, design, and implement models of complex systems.
One of the major goals of ASPECS is to fill the gap between agent-oriented design and real implementations. Janus is the multiagent platform specifically designed to support the CRIO metamodel.
CRIO: An Organizational Metamodel
Janus is based on the concepts of the CRIO metamodel. These concepts are defined on the ASPECS website as follow:- Organization:
An organization is defined by a collection of roles that take part in systematic institutionalized patterns of interactions with other roles in a common context. This context consists in shared knowledge and social rules/norms, social feelings, etc and is defined according to an ontology. The aim of an organization is to fulfill some requirements.
- Role:
An expected behavior (a set of role tasks ordered by a plan) and a set of rights and obligations in the organization context. The goal of each Role is to contribute to the fulfillment of (a part of) the requirements of the organization within which it is defined. A role can be instantiated either as a Common Role or Boundary Role. A Common Role is a role located inside the designed system and interacting with either Common or Boundary Roles. A Boundary Role is a role located at the boundary between the system and its outside and it is responsible for interactions happening at this border (i.e. GUI, Database, etc).
- Interaction:
A dynamic, not a priori known sequence of events (a specification of some occurrence that may potentially trigger effects on the system) exchanged among roles, or between roles and entities outside the agent system to be designed. Roles may react to the events according to theirs behaviors.
- Capacity:
A specification of a transformation of a part of the designed system or its environment. This transformation guarantees resulting properties if the system before the transformation satisfies a set of constraints. It may be considered as a specification of the pre- and post-conditions of a goal achievement.
Agents and Holons
Agents (and holons) are entities that adopt decisions in order to obtain the satisfaction of one or more of their own goals. They could play roles within various groups. These roles interact each other in the specific context provided by the agents themselves. The entity context is given by the knowledge, the capacities owned by the agents themselves. Agent has individual goals. Holon has collective goals.Janus Kernel Agent
The Janus kernel agent is an agent able to manage several low-level features of the platform.- Life Cycle Manager: kernel agent ensures that the life cycle of agents are respected. The life cycle is defined by the functions activate, live, end (in that order) that are respectively invoked to initialize the agent, run the agent behavior, destroy the agent.
- Message Transport Service: Messages exchanged by agents or by roles are transiting through the message transport service of the kernel agent. This service permits to dispatch the messages in the local agent and role mailboxes, and to forward the message to remote Janus kernels.
- Agent Executor and Scheduler: when running on a platform, an agent may decide to be run in its own thread or not. Janus kernel permits to dynamically change the execution policy of an agent, ie. run on a standalone thread, or schedule in a shared thread through a scheduler.
List of the Major Features
- Platform independent: Linux, Unix, Windows, MacOS, Android
- Holonic systems - recursive agent
- CRIO organizational metamodel, organizations as patterns and dynamic change of roles
- Agent-external world communication (GUI, Database, etc.)
- Agent-to-agent communication
- Role-to-role organizational-based communication
- Event-based intra-agent, agent-to-role, and role-to-agent communications
- Network peer-to-peer communication (JXTA)
- Agent observation toolkit
- Service-oriented agent architecture
- Predefined mental states of agents
- Customizable agent execution model (on thread or not)
- Custom scheduling models and policies
- OSGi support (Felix and Equinox)
- Maven support
- Multi-agent based simulation (MABS) through the Jaak related project.
See also
- Multi-agent systemMulti-agent systemA multi-agent system is a system composed of multiple interacting intelligent agents. Multi-agent systems can be used to solve problems that are difficult or impossible for an individual agent or a monolithic system to solve...
- Systèmes multi-agents
- Agent-based model
- Agent-based social simulationAgent-based social simulationAgent-based social simulation consists in social simulations that are based on Agent-based modeling, and implemented using artificial agent technologies....
- Agent architectureAgent architectureAgent architecture in computer science is a blueprint for software agents and intelligent control systems, depicting the arrangement of components...
- HolarchyHolarchyA holarchy, in the terminology of Arthur Koestler, is a connection between holons – where a holon is both a part and a whole. The term was coined in Koestler's 1967 book The Ghost in the Machine...
- Holon (philosophy)Holon (philosophy)A holon is something that is simultaneously a whole and a part. The word was coined by Arthur Koestler in his book The Ghost in the Machine . Koestler was compelled by two observations in proposing the notion of the holon...
- Comparison of agent-based modeling software
- Swarm (simulation)Swarm (simulation)Swarm is the name of a multi-agent simulation package, useful for simulating the interaction of agents and their emergent collective behaviour. Swarm was initially developed at the Santa Fe Institute in the mid-1990s, and since 1999 has been maintained by the non-profit Swarm Development...
- NetLogoNetLogoNetLogo is a multi-agent programming language and integrated modeling environment.-About:NetLogo was designed in the spirit of the Logo programming language to be "low threshold and no ceiling," that is to enable easy entry by novices and yet meet the needs of high powered users. The NetLogo...