Working on several different applications of agent technology in manufacturing control, it became soon apparent that agent technology will only be widely adopted in industry if the technology was providing some methodologies for building such kind of systems. Modern manufacturing systems must provide more flexibility in order to meet the challenges of the increasingly competitive markets (see [McFarlane2000]). And agent technology provides just the right tools to achieve the required flexibility (from a control point of view). But every manufacturing process requires a different kind of flexibility. The automotive industry is very different to the food or steel industry, and chipping is quite different to assembly or packaging. As a consequence, there is no one-fits-it-all agent-based control system, but for each application the agent-based system must be designed carefully to meet the individual requirements of the manufacturing process. While this is not surprising if seen from a general software engineering point of view, this insight has the important consequence that when designing a new control application, designing (or customizing) the agents of the control system must be part of the implementation process.
And that is where the problem arises. If agent technology should be adopted widely in industrial control systems, then ordinary control engineers must be able to apply the technology. Even if agents are a key technology for building modern control systems, they still represent only ten or twenty percent of the overall effort for building a control system. Even with agents there will still be classical engineering tasks, such as programming a PLC in order to (physically) control the movements of a robot or a conveyor crossing. Agents can help to decide where the robot should move, but not how to control the actuators in order to achieve the desired movements. Thus, agents will only be widely adopted in industry if they provide methodologies which enable an ordinary engineer to apply agent technology without being an expert in the technology.
To develop such a methodology, I have started my PhD in 1998 with the supervisors Nick Jennings from the University of Southampton and Mike Wooldridge from the University of Liverpool. Since the motivation of the work was to enable an ordinary engineer to design an agent-based control system, the main objective of the PhD work was to provide design methods which fulfill the following two requirements:
Model appropriateness: The models of the methodology should be clearly related to the relevant concepts of the problem domain, i.e., to the domain of manufacturing control. The initial model should be based on domain concepts and any new concepts should be related to those already introduced. This applies in particular to the introduction of agent-oriented concepts.
Method prescriptiveness: The methods of the methodology should be prescriptive in the sense that they prescribe each step the designer has to go through, and for each step clearly identify what the task of the designer is and - at least for any agent-oriented design aspect - explain how the task should be performed.
The models of the methodology should be appropriate in the sense that an engineer is able to understand what the individual components of the model mean and how they relate to the control problem. There is no point in introducing roles or intentions (and it might even be counter-productive) if there is no intuitive explanation of what these concepts mean in terms of the control task. This does not mean that these concepts should not be used in a methodology for control. But if they are used, they should be introduced in terms of existing control concepts or already introduced agent concepts!
Likewise, the methods of the methodology should be prescriptive in the sense that they prescribe each step the engineer has to go through in sufficient detail. This is particularly true for any agent-oriented aspects of the design. For instance, it is not sufficient to simply tell the engineer to identify some agents. A priori, the engineer will not know which agents to identify. Rather, a methodology should explain how the engineer should go about identifying the agents. An engineer with no experience in designing agents needs a set of criteria specifying what kind of requirements an agent needs to fulfill and some guidelines on how to identify entities which could serve as an agent.
A lot of effort during the PhD research was therefore devoted to developing methods which are both appropriate and sufficiently prescriptive for control applications. And the development of such methods can also be seen as the major contribution of this research work in comparison to other methodologies proposed prior the development of DACS (at least from the perspective of control applications).
The DACS methodology consists of three main steps:
Analysis of decision making. The control decisions that are necessary to operate the manufacturing process are identified and analyzed. Furthermore, dependencies between the decisions that may require interaction during the execution are also identified and incorporated into a decision model.
Identification of agents. The system architecture of the agent-based control system is designed. In particular, this step identifies the agents of the control system, the decisions they are responsible for, and the interaction requirements of the agents. That is, when do agents need to interact and what does the interaction need to achieve?
Selection of interaction protocols. Each interaction requirement between different agents is classified and matched against a library of existing (agent-oriented) interaction protocols. The most suitable interaction protocol is selected and adapted to the specific needs of the particular interaction situation.
The first two design steps were first reported in [Bussmann 2001], while the third design step was first reported in [Bussmann 2002]. The whole design methodology, including motivation, state-of-the-art review, and evaluation of the methodology, was published in [Bussmann 2004].
Another important aspect was to verify the methodology. Since a methodology is not a mathematical formula or algorithm, it is not possible to formally "prove" the methodology. It was therefore necessary to conduct "experiments". I asked several engineers and students (with few experience in agent technology) to review or apply the methodology. The feedback was very positive which let me to conclude that the methodology is applicable by engineers with only basic knowledge in agent technology and no experience in designing agents, which was the objective of the PhD. However, to really assess the suitability of the methodology it is necessary to evaluate more applications of the methodology.