This section will give a brief overview of the implementation phase. The details of its activities and the set of associated diagrams are described in figure 27. Implementation phase aims at implementing the agent-oriented solution designed in the previous phase. Concepts at the basis of our implementation, and constituting the Solution Domain part of the HMAS meta-model are reported in Figure 28.
|Figure 27: Details of the Implementation Phase |
The objective of the implementation phase is to provide an implementation model of the solution. This part is thus dependent on the chosen implementation and deployment platform. A platform called Janus was built in our lab for this purpose. It is specifically designed to deal with holonic and organisational aspects. The goal of Janus is to provide a full set of facilities for launching, displaying, developing and monitoring holons, roles and organisations.
The two main contributions of Janus are: (i) its native management of holons, and (ii) its implementation of the notion of Role as a concrete implementationlevel entity. In contrast with other platforms such as MadKit , JADE, FIPA-OS, in Janus the concept of Role is considered as a first class entity. It thus allows to directly implement organisational models without making any assumptions on the architecture of the holons that will play the role(s) of this organisation. An organisation is defined by a set of roles and a set of constraints to instantiate these roles (e.g. maximal number of authorized instances). Thus, organisations designed for an application can be easily reused for another. Janus so promotes reusability and modularity, moreover the use of organisational design patterns is strongly encouraged. Each organisation is a singleton and it can be instantiated by several groups. Group is the runtime context of interaction. It contains a set of roles and a set of Holons playing at least one of these roles. In addition to its characteristics and its personal knowledge, each agent/holon has mechanisms to manage the scheduling of its own roles. It can change dynamically its roles during the execution of the application (leave a role and request a new one). The life-cycle of a Janus agent is composed of three main phases: activation, life, termination. The life of an agent consists in consecutively executing its set of roles and capacities. To describe the personal competences of each agent/holon, Janus implements the concept of JCapacity that is an abstract description of a competence; each agent can be natively equipped with an implementation of a JCapacity or can dynamically acquire it (this function is still under development). In addition to the integration of these personal characteristics, a holon provides an execution context for roles and capacities.
Based on Janus, the implementation phase details activities that allow the description of the solution architecture and the production of associated source code and tests. Of course the process described in this phase can also be used with any other platform able to provide a translation of concepts presented in the solution domain of the meta-model.
|Figure 28: The UML diagram of the Solution Domain of the MAS metamodel |