knowledge containing its capabilities) to the O/C-
agent (this is done by a specific RECONFIGURE be-
havior). By accumulating all received configuration
data, the O/C-agent can compute optimal solutions.
Currently, the collected data is discarded and an al-
ternate, predefined configuration is transmitted to the
agents. Implementing different algorithms is current
work (right now constraint solvers like ALLOY (Jack-
son, 2000) are under evaluation). As different re-
configuration algorithms do not have an influence on
the implementation of the system (besides the O/C-
agent), we will not go into more detail on computing
Role Allocations.
After a Role Allocation has been computed, the
the new DO knowledges are distributed among the
agents. For the robot this means in most cases that
it “switches its tool and changes the carts from/to
which it takes/gives workpieces”, e.g. from Drill to
Screwdriver. If this happens, it is usually necessary
to reroute the carts to reflect the new order of the
robots. After the exchange is complete all agents re-
set themselves and indicate their ability to continue
normal operation to the O/C-agent (implemented as
READY behavior). As soon as the O/C-agent has re-
ceived acknowledgments from all agents it resumes
the application by sending a “BEGIN-OPERATION”
message. RECONFIGURATION and READY behav-
iors are shared by all agent classes. The O/C-agent
uses one behavior to handle the communication dur-
ing a reconfiguration cycle and one to generate the
new role allocation. The latter behavior is a stub and
can be used to implement the algorithm for this task
in the future.
Summary: The case study showed, that the
generic implementation helps a lot for building Or-
ganic Computing systems. A broad class of sys-
tems can be conveniently designed using the Or-
ganic Design Pattern. The presented architecture
gives a good guideline for implementation. Never-
theless some additional design decisions (like choice
of communication) have to be made during this pro-
cess. On the other hand this allows for more ef-
ficient implementations. Technically, we made the
experience that AgentService is still a very young
framework. In particular, memory leaks appear dur-
ing runtime relatively frequently. As allocation and
de-allocation of knowledges is handled very deeply
within the AgentService runtime, we were not able
to ultimately solve these problems. We are in touch
with the AgentService developers in Genoa and it can
be hoped, that these problems will be solved in the
near future. We also connected the presented control
system to a physical simulation of the adaptive pro-
duction cell (using Microsofts Robotics Studio (Mi-
crosoft, )). This showed, that communication over-
head (introduce by a multi-agent platform) is not an
issue.
6 CONCLUSIONS
Organic Computing systems offer the door to a new
generation of software controlled systems. Their self-
X properties make them interesting for many domains
where dependability is an important aspect. On the
other hand, design, analysis, and construction of such
systems is a difficulttask. A useful aid in these project
stages is the use of guidelines and patterns.
In this paper we presented a design pattern for or-
ganic computing applications and a method for im-
plementation using C# and the multi-agentframework
AgentService. It turned out that a generic implemen-
tation is possible and that it is of great help when
building specific applications. The current state of
work only allows for a centralized controller and is
thus trimmed for medium scale applications, where
the number of agents is limited (<100) and computa-
tion time is not scarce. In future work a decentralized
controller using leader election seems not to difficult
to implement.
When evaluating the implementation of the case
study, some minor technical problems with AgentSer-
vice’s libraries (i.e. memory leaks) were found. For
this reason the implementation of the case study took
longer than expected and some restrictions to func-
tionalities had to be applied. However, there is hoped
that these problems will be solved with the next ver-
sion of AgentService. It is also interesting to see how
efficiently other case studies can be implemented with
this generic implementation. Another open topic is
to compare the presented C# implementation with a
JAVA based generic implementation using the Jadex
framework.
REFERENCES
Boccalatte, A., Gozzi, A., Grosso, A., and Vecchiola, C.
(2004). Agentservice. In Maurer, F. and Ruhe, G.,
editors, SEKE, pages 45–50.
Boccalatte, A., Grosso, A., and Vecchiola, C. (2006). Im-
plementing a mobile agent infrastructure on the .net
framework. 4th International Conference in Central
Europe on .NET Technologies.
Branke, J., Mnif, M., M¨uller-Schloer, C., Prothmann, H.,
Richter, U., Rochner, F., and Schmeck, H. (2006).
Organic Computing – Addressing complexity by con-
trolled self-organization. In Proceedings of the 2nd In-
ternational Symposium on Leveraging Applications of
ENASE 2008 - International Conference on Evaluation of Novel Approaches to Software Engineering
70