Multiagent System Design Based on Object-Oriented Patterns

The relationships between agents and objects, and the role of object oriented analysis in multiagent system development have been discussed in earlier papers; these findings are employed here as a foundation for agent design. Patterns are flexible, reusable, and effective object oriented designs. The role of patterns for multiagent systems is discussed, and individual patterns are proposed to address agent concurrency, collaboration, and reasoning. The paper illustrates how to employ several patterns in concert to yield an architecture for multiagent systems, and clarifies how sets of objects can be employed to design agents, important software abstractions for proactive behavior and distributed problem solving. 1.0 INTRODUCTION The term agent has various meanings in the literature. In this paper, we adopt the definitions of . A weak agent is i) autonomous ii) social iii) reactive and iv) proactive, and a strong agent, in addition to the above, has one or more of the following: v) mentalistic notions (beliefs, goals, plans, and intentions) vi) rationality vii) veracity and viii) adaptability. Within autonomous behavior are the concepts of agent migration and transportability , and a social multiagent system must be open . Agents are being used in a wide range of applications, including user interfaces , enterprise integration , manufacturing , network management , and workflow support . While agents are widely used, a robust and maintainable architecture based on software engineering principles, such as object oriented design patterns, has not yet been formulated. Software reusability, in particular, is still an important problem in agent based systems . Relationships and distinctions between agents and objects are discussed in . An object is a software abstraction with behavior, inheritance, encapsulation, compound properties, state, and identity. A strong agent is an object that is able to reason and to collaborate via structured messages. Agents are also active objects, in that they have their own thread of control, and they are pro-active, which encompasses migration. An agent system aims to be more flexible and adaptive than an object system through autonomous and pro-active behavior. Part of the agent system’s flexibility is in its openness, where agents can enter and/ or exit a society, and in its ability to carry out opportunistic problem solving through various techniques, including constraint based reasoning, plans, negotiation, and reasoning. Several object oriented design patterns relevant to multiagent systems are detailed below. In particular, the design patterns for active objects, brokers, mediators, sensors, adapters, and interpreters address the design problems of agent concurrency, migration, negotiation, objectagent coexistence, and automated reasoning. These patterns and their applicability to multiagent systems are discussed in the following sections. The net result is a robust and maintainable software architecture for multiagent systems based upon proven object oriented designs. 2.0 OBJECT ORIENTED DESIGN PATTERNS FOR AGENTS 2.1 Aspects of Agency Strong agents reason to select a capability or plan that could achieve their stated goal(s). Passive objects or object oriented databases should be used to represent agent knowledge to facilitate knowledge base maintenance . Strong agent capabilities are stored in a plan library. A plan is instantiated when a triggering event occurs and an instantiated plan is an intention. An intention executes in its own thread, and an agent may have several intentions executing concurrently. Agents cooperate and negotiate with each other in conversations, and languages (such as KQML, COOL) , and AgenTalk 10 have been developed to support this. Migrating agents must be able to gain access to and share resources; they must also be able to enter and leave open systems. These aspects of agency are summarized in Figure 1, and they are analogous to those presented elsewhere . An agent is indicated, along with all the aspects of agency discussed above. The agent’s reasoning is within its interpreter, beliefs, and plans. The agent’s declarative knowledge (beliefs) may