Design Patterns For Multi-Agent Systems: Degree Project
Design Patterns For Multi-Agent Systems: Degree Project
Design Patterns For Multi-Agent Systems: Degree Project
Design Patterns
for Multi-Agent Systems
Keywords
design patterns, multi-agent systems, classification, guidelines
i
List of Figures
2.1 Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 MAS - associated disciplines . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Multi-agent system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Pattern anatomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 Master-Slave - class diagram . . . . . . . . . . . . . . . . . . . . . . . 9
3.1 SRL process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 ER diagram of the database . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Interface of the application - pattern list view . . . . . . . . . . . . . 15
3.4 Interface of the application - publication view . . . . . . . . . . . . . 15
3.5 CakePHP architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1 Included publications in digital databases/search engines . . . . . . . 17
4.2 Publications and patterns per year . . . . . . . . . . . . . . . . . . . 20
4.3 Popular paragraphs in pattern templates . . . . . . . . . . . . . . . . 21
4.4 Pattern space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.5 Pattern application domains . . . . . . . . . . . . . . . . . . . . . . . 23
4.6 MAS patterns dimensions . . . . . . . . . . . . . . . . . . . . . . . . 24
ii
List of Tables
2.1 Objects vs Agents - comparison . . . . . . . . . . . . . . . . . . . . . 4
3.1 Data collection form . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1 Design patterns for MAS (chronological order) . . . . . . . . . . . . . 17
iii
Contents
1 Introduction 1
1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Purpose and research questions . . . . . . . . . . . . . . . . . . . . . 1
1.3 Significance of the study . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Background 3
2.1 Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Defintion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.2 Agent properties . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.3 Agent vs object . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Multi-agent system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Origins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.2 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Design pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Design pattern for MAS . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.1 Early works . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.2 Short example . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4 Results 17
4.1 Publications overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2 Patterns overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.3 RQ1: How are the patterns documented and what pattern templates
are used? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.4 RQ2: How are the design patterns connected? . . . . . . . . . . . . . 21
4.5 RQ3: For what types of systems have the design patterns been applied? 23
4.6 RQ4: What dimensions of the design patterns exist? . . . . . . . . . 24
Bibliography 28
iv
1 Introduction
Chapter 1 highlights the problem, presents aim and research questions of the thesis.
1.1 Problem
During the last decade, the multi-agent system (MAS) community has put significant
efforts in documenting design patterns. Despite the substantial body of work, design
patterns for MAS have not received the attention they deserve, neither in the agent-
oriented software community, nor among software practitioners. Cruz Torres et al.
(2011) state that:
First aspect of the topic - multi-agent systems, is connected to cloud and smart grid
computing, robotics, manufacturing, traffic control, ecommerce and any other ap-
plication domains that are becoming more important because of the rapid growth of
the big data and need for automatization. Multi-agent systems and agent-oriented
paradigm are more adequate and effective means to model such distributed, au-
tonomous systems than object-oriented paradigm that in past twenty years has been
achieving its peak popularity.
Second aspect of the topic - design patterns is a practice of capturing design
knowledge in the form of patterns. It is a common practice in mainstream soft-
ware engineering (Alur et al., 2003; Gamma et al., 1995; Fowler, 2003; Shaw and
Clements, 2006). Design patterns allow reuse of best practices and avoiding worst.
The usefulness of patterns has been proved empirically (Prechelt et al., 2002; Ng
et al., 2006; Yskout et al., 2012). Design patterns improve software’s quality proper-
ties, like maintainability and re-usability, and speed up the development time. These
factors are crucial in practice, especially for project managers, since improving them
reduces financial costs.
In conclusion, as MAS have features that are widely considered as key to engi-
neering complex distributed applications (Kramer and Magee, 2007; Weyns et al.,
2012), it is important to provide a clear, holistic overview of existing patterns to
make this knowledge accessible to practitioners and unlock the potential.
• How are the patterns documented and what pattern templates are used?
• For what types of systems have the design patterns been applied?
1
1.3 Significance of the study
Since the significance of the problem is dictated by the audience and benefits if the
study is done, it could be claimed that that study is significant on a large scale.
The significance of this study is anchored in the empirical findings, so that it is
potentially useful to every practitioner in the area of multi-agent systems.
1.4 Outline
The thesis is organized by five chapters. Chapter 1 highlights the problem to
the reader. It also presents research questions and goal of the thesis. Chapter
2 presents the theoretical background of agents, multi-agent systems and design
patterns. Chapter 3 contains the description of the research method - systematic
literature review and the review protocol. Chapter 4 focuses on the results and
includes four sections dedicated for each research question. Finally, chapter 5 ends
the thesis with a discussion on the results, guidelines and conclusions.
2
2 Background
This chapter highlights agent, multi-agent systems and design patterns as the cor-
nerstone concepts to this thesis.
2.1 Agent
This subchapter focuses on the agent concept. It gives an overview of different agent
definitions, outlines a number of agent characteristics and presents the comparison
of agent and object as object-oriented paradigm has been dominant in past twenty
years.
2.1.1 Defintion
Several agent definitions have been proposed:
An agent is a computer system that is situated in some environment,
and that is capable of autonomous action in this environment in order
to meet its design objectives.(Wooldridge, 2009)
Agents are the recent links in software engineering evolution from monolithic
systems, following their predecessors - objects, abstract data types, procedures &
3
functions, sub-routines, programming languages, assembly language and machine
code (Wooldridge, 2009).
Other attributes:
• proactive - setting a plan to acheive a goal and working towards the plan,
4
state, for example expressed by their beliefs. Furthermore, objects communicate by
message passing represented by for example method invocations. On the contrary,
agents are more flexible and do not act on every request, but rather decide if it
should be done (Wooldridge, 2009; Odell, 2002).
2.2.1 Origins
Wooldridge (2009) states that multi-agent systems emerged as a new field in com-
puter science from following trends:
• delegation: handing over the control, automating and delegating human tasks
to computers and robots,
• human-orientation: the way we interact with people becomes the way we in-
teract with computers.
Multi-agent systems are also inspired by many other disciplines (as depicted in
Figure 2.2): Artificial Intelligence, Social Sciences, Distributed Computing, Phi-
losophy, Ecology, Game Theory. This multidisciplinary character of MAS brings
well-defined models and methodologies from other fields, but many different per-
spectives as well which makes MAS more complex and difficult to capture as a
whole.
5
2.2.2 Definition
A multi-agent system is a system that consists of several interacting agents (Fig-
ure 2.3). In order to interact in human-like ways, agents must have capability to
negotiate, cooperate, and coordinate. Hence main types of multi-agent systems are
cooperative and competitive. For example, cooperative MAS concerns distributed
problem solving and planning. This type is mainly used in context of track vehi-
cle movements, sensor networks, distributed delivery. Competitive or self-interested
MAS are focused on voting, actions, contract nets and deal with fairness and sta-
bility (Wooldridge, 2009).
6
2.3 Design pattern
The concept of design pattern was introduced in architecture and urban planning
by Alexander in the 1970s Alexander (1979). According to Alexander, building
structures and planning should be supported by design patterns. These patterns
must consist of three layers as shown in Figure 2.4 - A recurring problem arises in
a situation known as a context and has well-known and proven solution.
7
2.4 Design pattern for MAS
This subchapter contains a review of early works in identifying design patterns for
MAS from 1998 and exemplifies one of the first MAS pattern. The main goal of this
subchapter is to expose inadequateness of object- oriented paradigm while modeling
MAS and forming MAS design patterns.
8
code among agent classes”. It is applicable when an agent needs to delegate the
tasks, because it has other parallel tasks or the tasks need to be performed at a
remote destination. The Master agent sends the Slave agent to defined place, where
it should succeed in doing the task and then the slave agent should return to the
source with the results. Finally, the Slave agent destroys itself. The localization and
specification of handing the tasks are supported by using abstract classes - Master
and Slave (as in Figure 2.5)
9
3 Research method and realization
Chapter 3 focuses on the description of the methodology used in this thesis - sys-
tematic literature review and its review protocol. Firstly, an overview of the review
process is presented, followed by research questions’ motivations and review protocol
details - inclusion and exclusion criteria, search strategy, data collection and data
analysis.
3.1 Overview
The research method used in this study is a systematic review of the literature
(SLR). The study aims in providing an appropriate background in order to position
future research, concerning popularization of MAS design patterns in the industry
and standardization. The main benefit of incorporating SLR is that it decreases
likelihood that the results of the literature review will be biased (Kitchenham, 2004).
10
SRL process (Fig. 3.1) started with establishing initial protocol development,
then retrieving and selecting publications, data analysis and report writing. The
harvesting of the publications was divided into four iterations. This approach
was inspired by Agile system development methodologies as their core principles
are: adaptive planning, time-boxed iterations and rapid/flexible response to change
(Martin, 2003). Since systematic literature reviews are more time consuming than
normal literature reviews (Kitchenham, 2004) and the time of the study is relatively
short, it is necessary to adapt these principles as they promote pragmatism and are
effect-oriented.
RQ 1: How are the patterns documented and what pattern templates are used?
RQ 3: For what types of systems have the design patterns been applied?
As the simplicity and intelligibility of a template are crucial factors in reusing pat-
terns by practitioners, the motivation behind RQ1 is to study how pattern templates
are used, find out if they require standardization and what may constitute as a com-
mon and universal vocabulary for a future pattern language. The answer of RQ2
would benefit in enhancing learnability and quicker orientation in the domain of
design patterns for MAS. Visualizing associations between patterns would help in
capturing a holistic picture for learners. RQ3 aims to identify for which applica-
tion domains design patterns have been applied in practice. The answer may reveal
potential domains for future application of design patterns for MAS. RQ4 aims in
identifying dimensions to classify design patterns. Such classification can serve as a
roadmap to search for particular patterns. The coverage for the various dimensions
can help identifying areas that deserve further attention in future work on patterns
for MAS.
11
IC 3: and the abstract and content are written in English.
During the second iteration, the automatic search was continued in other databases:
IEEE Xplore, SpringerLink and GoogleScholar. In the third iteration, after ini-
tal selection and creation of preliminary list with patterns, other search techniques
were incorporated - targeted search, ancestor search in the lists of references and
descendant search aiming in finding early works and locating later articles that cite
them in their references, mainly using CiteSeerX. In the fourth iteration, targeted
searches were performed and other journals searched. The Knowledge Engineering
Review (KER) was searched automatically, Transactions on Autonomous and Adap-
tive Systems (TAAS) and Journal of Autonomous Agents and Multi-Agent Systems
(JAAMAS) were manually searched.
The selection process was split into two phases and done concurrently and re-
cursively during all four phases. Firstly, publications were assessed taking their title
and abstract into consideration. Secondly, the full texts were screened.
12
answering RQ4. Short pattern description (F9) provides a brief overview of a pat-
tern, which helps identifying pattern relations (RQ2) and supports pattern classi-
fication (RQ4). Pattern application domains item (F10) refers to specific field of
application where the pattern was initially applied. Options are:
• industrial applications
(process control and manufacturing, air traffic control, traffic and transporta-
tion),
• commercial applications
(information management, electronic commerce, business process management),
• robotics,
• simulation.
The options were elicited from papers commenting MAS practical applications (Jen-
nings and Wooldridge, 1998; Wooldridge, 2009; Dignum and Dignum, 2010) as there
is no explicit taxonomy of software application domains (Glass and Vessey, 2011).
Pattern associations item (F11) and design pattern name/alias (F7, F8) are needed
to collect all related, referenced patterns from template’s paragraphs such as ’See
also’ or ’Related patterns’ (RQ2). Finally, pattern template details (F12) that con-
sist of text paragraphs and supplied graphical descriptions, are needed in resolving
RQ1.
13
Figure 3.2: ER diagram of the database
14
Figure 3.3: Interface of the application - pattern list view
15
Figure 3.5: CakePHP architecture
The data analysis of patterns incorporated three different methods: meta analysis
for RQ1 and RQ3, cluster analysis based on graph model for RQ2, and data classi-
fication for RQ4. Firstly, meta analysis relied on a qualitative coding schema with
dichotomous parameters. In case of RQ1, if a pattern contained a structured tem-
plate, it was coded as 1, otherwise as 0. As for the specific templates, any contained
paragraph in a template was coded as 1, otherwise 0. Any mentions of pattern
application domain, resulted coding specified option as 1, otherwise as 0. The data
was further analyzed using descriptive statistics. Secondly, graph-based model for
cluster analysis aimed in establishing what groups of patterns were most influential.
Thirdly, the goal of taxonomical organization of design patterns was to create a top-
ical classification that would help learners to find quickly searched pattern without
knowing details. However, the main drawback of this method is that it relies on
subjective categorization.
16
4 Results
Chapter 4 focuses on the results and includes four sections dedicated for each of four
research question.
17
Patterns Author(s) Year
Basic Mobility, Itinerary, Star-shaped
Movement, Branching, Contract net protocol,
Tahara et al. 1999
Cooperation Protocol Pattern, Direct
Interaction, Mediation, Dispatching
Broker, Embassy, Mediator, Monitor, Wrapper Hayden et al.
Metamorphic Architecture Pattern, Mediator,
Task Decomposition Pattern, Virtual
Shu and Norrie
Clustering Pattern, The Partial Cloning
Pattern, The Prototyping Pattern
Direct Coupling Pattern, Proxy Agent
Pattern, Communication Sessions Pattern, Deugo et al.
Badges, Event Dispatcher Pattern
Sentinel Agent Behavior Pattern Chacón et al. 2000
Recepcionist, Session Pattern, Secretary,
Mobile Session, Antenna, Private Session, Silva et al.
Meeting with Moderator
Blackboard, Market Maker, Meeting,
Deugo et al. 2001
Master-Slave, Negotiating Agents
Synchronizer, Environment Mediated
Communication, Updating shared state, Schelfthout et al. 2002
Behavior-based Decision
InteRRaP, Contract net protocol Lind
Agency Guard, Agent Authenticator, Sandbox,
Mouratidis et al. 2003
Access Controller
Role Agent Pattern Cabri et al.
Monitor, Broker, Matchmaker, Mediator,
Kolp et al.
Embassy, Booking, Call-For-Proposal, Bidding
Reflective Blackboard Silva et al.
Organisation schemes, Protocols, Marks,
Influences, BDI architecture, Vertical
architecture, Horizontal architecture, Sauvage 2004
Recursive architecture, Iniquity, Discretisation,
Physical entity
Hybrid Recogniser, Sense-and-Infer, Assisted
Sense and Infer, Ecological Recogniser, Heinze
Assisted Ecological Recogniser, Clairvoyant
Market-organiser, Agent-side
comparison-shopping, Server-side
Nguyen and Yang
comparison-shopping pattern,
Itinerary-balancing pattern
Pipeline Gonzalez-Palacios
and Luck
Agent Society, Agent as Delegate, Agent as
Mediator, Common Vocabulary, User Agent, Weiss
Task Agent, Resource Agent
18
Patterns Author(s) Year
Multi-agent layer pattern, Web usage mining
pattern for adaptive multi-agent systems,
Girardi et al. 2005
WUMA-Interface, WUMA-UserM,
WUMA-Acquirer, WUMA-Miner
Rule Composer, Decision Tree Taylor and
Evans-Greenwood
Service Client Pattern, Service Representative Müller et al.
Initiator, Observer Mohamad et al. 2006
Structure-in-5, Pyramid, Chain of values, The
matrix, Bidding, Joint venture, Arm’s-length, Kolp et al.
Hierarchical contracting, Co-optation
Define Actors, Refine Actor Goals, Means-End
Analysis, Contribution Analysis, AND/OR
Mouratidis and Weiss
Decomposition, Ask for Help, Refine Models,
System-to-Be
Replication, Collective Sort, Evaporation,
Gardelli et al. 2007
Aggregation, Diffusion
Behaviour Helper Pattern Charan Ojha et al.
Gradient Fields, Market-Based Control De Wolf and Holvoet
Agent Interface, SCADA control sequence
agent, Agent optimization, Agent NET-MAP Eichelkraut and
pattern Etzkorn
Virtual Environment, Situated Agent,
Selective Perception, Roles & Situated Weyns 2009
Commitments, Protocol-based Communication
Perception Memory Pattern, Exponential
Klügl and Karlsson
Growth Pattern
Disciplined flood, Propertinerary, Smart
Holvoet et al. 2010
message, Delegate ant MAS, Delegate MAS
Planner, VFHPlanner Pattern, A*Planner,
Persistence agent, Memento agent, Social
agent, Explorer, Sequential-resource share ,
Parallel resource share, Query, Inform,
Chella et al.
Request, Secure Query, Secure Request, Secure
Inform, Contract net protocol,
Publish-subscribe, Information agent, Holonic
society, Supply chain
Selection of Relevant Source Material Cheah et al.
Policy-based Guo et al. 2011
Scheduler Scramble, Context and Projection
Hierarchy, Diffuser, Strategy, Logo World,
North and Macal
Learning, Model-View-Controller, Double
Buffer
Aggregation, Spreading, Gossip Fernandez-Marquez
et al.
Composite DelegateMAS Cruz Torres et al.
19
Figure 4.2 depicts efforts in documenting design patterns over the years. Most
of the papers and identified design patterns are from years: 1998, 1999, 2004 and
2010. There are no selected publications from 2008.
Publications Patterns
Mean 2,79 14,71
Median 3 12,50
Standard 1,25 9,92
Deviation
Variance 1,57 98,37
Minimum 0 0
Maximum 5 32
Total 39 206
Figure 4.2: Publications and patterns per year
4.3 RQ1: How are the patterns documented and what pat-
tern templates are used?
The state of the documentation of the patterns that would indicate the need of
standardization was derived from the pattern template details (F12). Overall, 69%
of all patterns are described using structured templates, out of which 53% contains
some graphical descriptions as diagrams. 73% of visual explanations are modeled
using UML. Six is the average number of paragraphs in a template excluding name
(assuming that every template contains this element).
102 unique paragraphs were identified. This clearly indicates that there are
ambiguities in pattern templates. As pointers to other patterns paragraphs with
names: Related patterns, Associated patterns, See also, References, represent one
thing, so that they can be grouped without further analysis. However, there are
many paragraphs that can have the same semantic meaning, but their grouping is
not obvious as: Context/Applicability, Problem/Intent/Purpose, Examples/Known
Uses or Participants/Entities.
20
Figure 4.3: Popular paragraphs in pattern templates
21
Figure 4.4: Pattern space
Other groups are built, for example around FIPA protocols (Chella et al., 2010;
Lind, 2003; Tahara et al., 1999) or are closed clusters and were not included in the
graph. A closed cluster includes patterns only from one catalog and contains only
relationships within the catalog. It indicates unextended pattern language that
was not connected to existing pattern space. Those patterns are mostly domain
specific - applying to military simulations, e-commerce, intelligent manufacturing,
security (Heinze, 2004; Nguyen and Yang, 2004; Shu and Norrie, 1999; Eichelkraut
and Etzkorn, 2007; Mouratidis et al., 2003).
22
4.5 RQ3: For what types of systems have the design pat-
terns been applied?
Data items: Short pattern description (F9) and Pattern application domain (F10)
were used to extract the data and to answer the third question. To sum up, there
is not dominant type of system for which MAS design patterns have been used. As
depicted in Figure 4.5: 59% of the patterns can be applied in every field, 41% of the
patterns are focused on more specific uses.
For industrial applications, main subdomains are: process control and manu-
facturing (6%) and traffic and transportation (5%), for commercial applications:
information management (4%) and electronic commerce (3%). No patterns were
identified in correlation with entertainment (games, interactive theater and cinema)
domain. Nevertheless, there is a balance and diversity of application domains for
MAS design patterns revealing high potential and attractiveness of MAS patterns
for software practitioners.
23
4.6 RQ4: What dimensions of the design patterns exist?
The objective of classifying design patterns for multi-agent systems is to provide an
intellectual graspable overview of the huge space of existing patterns. The classifi-
cation offers engineers a general picture of the pattern space of multi-agent systems,
and helps those who are not familiar with the domain to get an easy jump-start
to understand the pattern space. Several researchers have proposed classifications
of design patterns for MAS, but these classifications are either bound to a specific
catalog of patterns, or to an development methodology(Aridor and Lange, 1998;
Schelfthout et al., 2002; Chella et al., 2010; Kendall et al., 1998; Tahara et al., 1999;
Oluyomi, 2006).
The data for the classification was derived from Catalog pattern categories (F8)
and Short pattern description (F9). Based on the analysis of the data, four dimen-
sions of patterns for multi-agent systems were identified: inspiration, abstraction,
24
focus, and granularity. Figure 4.6 shows a graphical overview of the dimensions,
illustrated with example patterns.
Inspiration
Metaphors and analogies help in understanding complex systems. The inspira-
tion dimension has four categories that provide intuitive domains from which pat-
terns are derived. Examples of nature-inspired patterns are gradient fields (De Wolf
and Holvoet, 2007) that is inspired by the fields in nature, and delegate ant MAS
(Holvoet et al., 2010) that is inspired by behavior of social insects. Examples of
society-inspired patterns are emergent society (Kendall et al., 1998) and holonic so-
ciety (Chella et al., 2010) that get their inspiration from the way societies emerge and
structure themselves. Examples of human-inspired patterns are receptionist (Silva
et al., 2000) and gossip (Fernandez-Marquez et al., 2011). Finally, locker (Aridor
and Lange, 1998) and blackboard (Deugo et al., 1999) are example of patterns that
get there inspiration from artifacts in our environment.
Abstraction
The abstraction dimension classifies patterns either as conceptual or concrete. Both
these main categories are further refined in subcategories that refer to stages in the
software life cycle where the patterns can be used. Define actors (Mouratidis and
Weiss, 2006) and pyramid (Kolp et al., 2006) are examples of patterns that are useful
in early phases in the life cycle, while broker (Hayden et al., 1999) and synchronizer
(Schelfthout et al., 2002) can be applied in detailed design and the implementation
phase.
Focus
The focus dimension has two categories: structural and behavioral. Structural pat-
terns are useful to deal with the decomposition of a system, while behavior patterns
are useful to deal with interaction aspects. Examples of structural patterns are
reflective blackboard(Silva et al., 2003) and joint venture (Kolp et al., 2006), the
former focusing a particular coordination structure for an agent system, the latter
focusing on the way a community of agents is organized. Examples of behavioral
patterns are market maker (Deugo et al., 1999), negotiating agents (Deugo et al.,
1999), and conversation (Kendall et al., 1998). These patterns provide different
approaches to support interactions among agents.
Granularity
Finally, the granularity dimension refers to the scope of the patterns, i.e., the system
or parts of the system. Hierarchical contracting (Kolp et al., 2006) and emergent
society (Kendall et al., 1998) are examples of patterns that apply to a multi-agent
system as a whole. Messenger (Aridor and Lange, 1998) and virtual environment
(Weyns, 2009) are patterns that apply to parts of a multi-agent system. Intention
(Kendall et al., 1998) and InteRRaP (Lind, 2003) are patterns that support the
design of individual agents.
25
5 Discussion and conclusions
Chapter 5 ends the thesis with a discussion on the method, results, guidelines and
conclusions directing to the future research.
• triangulation of data,
• member checking,
26
The goal of the second research question (subsection: 4.4) was to investigate how
the design patterns for MAS are connected. It was observed that there is a strong
coupling between patterns from the same catalog. However, more effort should be
put in documenting associations between patterns. Moreover, duplicated efforts in
describing the same patterns should be avoided.
The third research question (subsection: 4.5) identified the type of systems and
application domains for which design patterns for MAS have been used. The col-
lected data shows that the patterns have a wide range of applications. Nevertheless,
although MAS are suggested to be primary candidates to design emerging domains
such as cloud computing and smart grids, no applications of patterns for these sys-
tems are reported. Empirical evidence is required that demonstrates the usefulness
of design patterns for MAS in these areas.
Finally, the fourth question (subsection: 4.6) was concerned with classifying
design patterns for MAS. The data collected to answer this question shows that the
space of design patterns for MAS is huge and very diverse. Patterns are related to a
variety of disciplines, including Systems and Organization Theory, Social Sciences,
Biology, Psychology or Ecology. To bring order in this huge space, four dimensions
that allows to classify patterns were identified. This classification allows engineers
to better browse the pattern space and helps those who are new to the field to better
find their way through the myriad of patterns.
3. Building bridges: creating catalogs and pattern languages will help to better
connect patterns, and enhance their combined use,
generalizing domain-specific patterns, linking other disciplines;
Other opportunities for future research could be to report MAS anti-patterns - design
patterns that were unsuccessful (Brown et al., 1998), to evaluate patterns using
frameworks for evaluating design patterns (Petter et al., 2010), to evaluate in the
context of MAS patterns formal specifications of design patterns that are intended
to complement textual descriptions, eliminate ambiguity and facilitate automation
(Khwaja and Alshayeb, 2011; Taibi and Check Ling Ngo, 2003) or to create more
CASE tools allowing to graphically generate agents from patterns as Chella et al.
(2010).
27
Bibliography
Alexander, C. (1979). The Timeless Way of Building. Oxford U.P., New York, NY,
USA.
Alur, D., Crupi, J., and Malks, D. (2003). Core J2EE patterns: best practices and
design strategies. Prentice Hall PTR, Upper Saddle River, NJ, USA, 2 ed. edition.
Aridor, Y. and Lange, D. B. (1998). Agent design patterns: elements of agent appli-
cation design. In Proceedings of the 2nd International Conference on Autonomous
Agents, pages 108–115, New York, NY, USA. ACM. ISBN 0-89791-983-1.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. (1996).
Pattern-oriented software architecture. [Vol. 1], A system of patterns. John Wiley
& Sons, Chichester, UK.
Cabri, G., Ferrari, L., and Leonardi, L. (2003, oct). Role agent pattern: a developer
guideline. In IEEE International Conference on Systems, Man and Cybernetics,
volume 5, pages 4114 – 4119.
Chacón, D., Mccormick, J., Mcgrath, S., and Stoneking, C. (2000). Rapid applica-
tion development using agent itinerary patterns. Technical Report 01, Lockheed
Martin Advanced Technology Laboratories.
Charan Ojha, A., Kumar Pradhan, S., and Ranjan Patra, M. (2007). Pattern-
based design for intelligent mobile agents. In Proceedings of the 4th International
Conference on Innovations in Information Technology, pages 501 –505.
Cheah, W., Sterling, L., and Taveter, K. (2010). Task knowledge patterns reuse
in multi-agent systems development. In Proceedings of the 13th International
Conference on Principles and Practice of Multi-Agent Systems, PRIMA’10, pages
459–474, Berlin. Springer. ISBN 978-3-642-25919-7.
Chella, A., Cossentino, M., Gaglio, S., Sabatucci, L., and Seidita, V. (2010, apr).
Agent-oriented software patterns for rapid and affordable robot programming. J.
Syst. Softw., 83:557–573. ISSN 0164-1212.
Cruz Torres, M., Van Beers, T., and Holvoet, T. (2011). (No) more design pat-
terns for multi-agent systems. In Proceedings of the compilation of the co-located
workshops on DSM’11, TMC’11, AGERE!’11, AOOPES’11, NEAT’11, VMIL’11,
SPLASH ’11 Workshops, pages 213–220, New York, NY, USA. ACM. ISBN 978-
1-4503-1183-0.
28
Deugo, D., Oppacher, F., Kuester, J., and Otte, I. V. (1999). Patterns as a means
for intelligent software engineering. In Proceedings of the 1999 Conference on
Artificial Intelligence, pages 605–611.
Deugo, D., Weiss, M., and Kendall, E. (2001). Reusable patterns for agent coordi-
nation. In Coordination of Internet agents, chapter Reusable patterns for agent
coordination, pages 347–368. Springer-Verlag, London, UK. ISBN 3-540-41613-7.
Dignum, V. and Dignum, F. (2010, nov). Designing agent systems: state of the
practice. Int. J. Agent-Oriented Softw. Eng., 4(3):224–243. ISSN 1746-1375.
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design patterns: ele-
ments of reusable object-oriented software. Addison-Wesley, Reading, MA, USA.
Gardelli, L., Viroli, M., and Omicini, A. (2007). Design patterns for self-organising
systems. In Burkhard, H.-D., Lindemann, G., Verbrugge, R., and Varga, L. Z.,
editors, Multi-Agent Systems and Applications V, volume 4696 of LNCS (LNAI),
pages 123–132, Berlin, Heidelberg, Germany. Springer-Verlag. ISBN 978-3-540-
75253-0.
Girardi, R., Marinho, L. B., and de Oliveira, I. R. (2005, sep). A system of agent-
based software patterns for user modeling based on usage mining. Interact. Com-
put., 17(5):567–591. ISSN 0953-5438.
Glass, R. L. and Vessey, I. (2011, sep). Naivete squared: In search of two taxonomies
and a mapping between them. IEEE Softw., 28(5):14–15. ISSN 0740-7459.
Guo, Y., Mao, X., and Hu, C. (2011). Design pattern for self-organization multi-
agent systems based on policy. In Proceedings of the 10th International Conference
on Trust, Security and Privacy in Computing and Communications (TrustCom),
pages 1572 –1577.
29
Hayden, S. C., Carrick, C., and Yang, Q. (1999). Architectural design patterns for
multiagent coordination. In Proceedings of the 3rd international conference on
autonomous agents.
Holvoet, T., Weyns, D., and Valckenaers, P. (2010). Delegate MAS patterns for
large-scale distributed coordination and control applications. In Proceedings of
the 15th European Conference on Pattern Languages of Programs. ACM.
Kendall, E. A., Murali Krishna, P. V., Pathak, C. V., and Suresh, C. B. (1998).
Patterns of intelligent and mobile agents. In Proceedings of the 2nd International
Conference on Autonomous Agents, pages 92–99. ACM.
Khwaja, S. and Alshayeb, M. (2011, sep). Towards design pattern definition lan-
guage. Softw: Pract. Exper. ISSN 1097-024X.
Kolp, M., Do, T. T., and Pirotte, A. (2003). Social patterns for designing multi-
agent systems. In Proceedings of the 15th International Conference on Software
Engineering & Knowledge Engineering (SEKE’2003), pages 103–110.
Müller, I., Braun, P., and Kowalczyk, R. (2005, sep). Design patterns for agent-based
service composition in the web. In Proceedings of the International Conference on
Quality Software (QSIC 2005), pages 425 – 430.
30
Mohamad, R., Deris, S., and Ammar, H. H. (2006). Agent design patterns framework
for MaSE/POAD methodology. In Proceedings of the ACS/IEEE International
Conference on Computer Systems and Applications, AICCSA ’06, pages 521–528,
Washington, DC, USA. IEEE Computer Society. ISBN 1-4244-0211-5.
Mouratidis, H. and Weiss, M. (2006). Patterns for modelling agent systems with
tropos. In Garcia, A., Choren, R., Lucena, C., Giorgini, P., Holvoet, T., and
Romanovsky, A., editors, Software Engineering for Multi-Agent Systems IV, vol-
ume 3914 of Lecture Notes in Computer Science, pages 207–223. Springer-Verlag.
ISBN 978-3-540-33580-1.
Mouratidis, H., Giorgini, P., and Schumacher, M. (2003). Security patterns for agent
systems. In Proceedings of the 8th European Conference on Pattern Languages of
Programs.
Ng, T. H., Cheung, S. C., Chan, W. K., and Yu, Y. T. (2006). Work experience
versus refactoring to design patterns: a controlled experiment. In Proceedings
of the 14th ACM SIGSOFT international symposium on Foundations of software
engineering, SIGSOFT ’06/FSE-14, pages 12–22, New York, NY, USA. ACM.
ISBN 1-59593-468-5.
Nguyen, A. and Yang, X. (2004). Design patterns for mobile agent-mediated e-
business. In Proceedings of the 10th Australian World Wide Web Conference.
North, M. J. and Macal, C. M. (2011, dec). Product design patterns for agent-based
modeling. In Proceedings of the 2011 Winter Simulation Conference (WSC), pages
3082 –3093.
Odell, J. (2002). Objects and agents compared. Journal of Object Technology, 1(1):
41–53.
Odell, J. (2007). Agent technology: What is it and why do we care? Technical
Report 10(3), Cutter Consortium, Arlington, MA, USA. Enterprise Architecture,
executive report.
Oluyomi, A. (2006). Patterns and protocols for agent oriented software development.
Phd, The University of Melbourne.
Petter, S., Khazanchi, D., and Murphy, J. D. (2010, aug). A design science based
evaluation framework for patterns. SIGMIS Database, 41(3):9–26. ISSN 0095-
0033.
Prechelt, L., Unger-Lamprecht, B., Philippsen, M., and Tichy, W. F. (2002, jun).
Two controlled experiments assessing the usefulness of design pattern documen-
tation in program maintenance. IEEE Trans. Softw. Eng., 28(6):595–606. ISSN
0098-5589.
Sauvage, S. (2004). Design patterns for multiagent systems design. In MICAI 2004:
Advances in Artificial Intelligence, volume 2972 of Lecture Notes in Computer
Science, pages 352–361. Springer Berlin / Heidelberg. ISBN 978-3-540-21459-5.
Schelfthout, K., Coninx, T., Helleboogh, A., Holvoet, T., Steegmans, E., and Weyns,
D. (2002). Agent implementation patterns. In Proceedings of the OOPSLA 2002
Workshop on Agent-Oriented Methodologies, pages 119–130.
31
Schmidt, D. C., Stal, M., Rohnert, H., and Buschmann, F. (2000). Pattern-oriented
software architecture. Vol. 2, Patterns for concurrent and networked objects. John
Wiley & Sons, Chichester, UK. ISBN 0-471-60695-2 ;.
Shaw, M. and Clements, P. (2006, mar). The golden age of software architecture.
IEEE Softw., 23(2):31–39. ISSN 0740-7459.
Silva, I. C., da Silva, A. R., and Meira, N. (2000). A set of agent patterns for a more
expressive approach. In Proceedings of the EuroPLOP 2000, pages 331–346.
Silva, O., Garcia, A., and Lucena, C. (2003). The reflective blackboard pattern:
Architecting large multi-agent systems. In Garcia, A., Lucena, C., Zambonelli,
F., Omicini, A., and Castro, J., editors, Software Engineering for Large-Scale
Multi-Agent Systems, volume 2603 of Lecture Notes in Computer Science, pages
73–93. Springer Berlin, Heidelberg. ISBN 978-3-540-08772-4.
Tahara, Y., Ohsuga, A., and Honiden, S. (1999). Agent system development method
based on agent patterns. In Proceedings of the 21st International Conference on
Software Engineering, ICSE ’99, pages 356–367, New York, NY, USA. ACM. ISBN
1-58113-074-0.
Taibi, T. and Check Ling Ngo, D. (2003, jul-aug). Formal specification of design
patterns - a balanced approach. Journal of Object Technology, 2(4):127–140.
Weiss, M. (2004). A pattern language for motivating the use of agents. In Giorgini,
P., Henderson-Sellers, B., and Winikoff, M., editors, Agent-Oriented Informa-
tion Systems, volume 3030 of Lecture Notes in Computer Science, pages 142–157.
Springer Berlin / Heidelberg. ISBN 978-3-540-22127-2.
Weyns, D., Schmerl, B., Grassi, V., Malek, S., Mirandola, R., Prehofer, C., Wuttke,
J., Andersson, J., Giese, H., and Goschka, K. (2012). Software engineering for
self-adaptive systems ii. chapter On Patterns for Decentralized Control in Self-
Adaptive Systems. Springer-Verlag, Berlin, Heidelberg, Germany.
Yskout, K., Scandariato, R., and Joosen, W. (2012). Does organizing security pat-
terns focus architectural choices? In Proceedings of the 34th international confer-
ence on Software engineering. ACM.
32
SE-391 82 Kalmar / SE-351 95 Växjö
Tel +46 (0)772-28 80 00
[email protected]
Lnu.se/dfm