<< В библиотеку

EXTENDING THE GAIA METHODOLOGY FOR THE DESIGN AND DEVELOPMENT OF AGENT-BASED SOFTWARE SYSTEMS

Huang, Wei and El-Darzi, Elia and Jin, Li.

School of Computer Science, University of Westminster
Watford Road, London HA1 3TP, United Kingdom


На сайте представлена часть статьи. Оригинал статьи: http://westminsterresearch.wmin.ac.uk/4368/


Abstract

Over the past decade, agent-based computing has emerged as a new and popular paradigm for design, implementation and analysis of distributed information systems. In this paper, the participant researchers in Health Care Computing Group at University of Westminster concentrate on the agent-oriented methodology for the analysis and design of agent-based systems and identify how methodology can support both the levels of “agent structure” and of “agent society” in the agent-oriented software design and development process. The research reported here takes one leading agent-oriented methodology-Gaia, and then extended it by the creation of innovative design tools which aimed at better supporting application to real-world domains. In discussion section, agent-oriented methodology and AUML approaches are compared and evaluated in great detail; the strengths and weaknesses of the current agent-oriented methodology are explored and discussed; the importance of effectively using methodology to improve agents and their productivity potential also is emphasized. Finally, we draw conclusions from the work presented and the experience gained in this research and look into the future possible improvements on agent -oriented software engineering in the agent technology research field.

Introduction: Gaia Methodology and its Concepts

"A methodology is a recipe that enables an engineer to find a solution to a specified set of problems". In the book [5], Hussmann has highlighted that a methodology should enable a good definition of the problem space to which methodology is applicable, and should provide a set of models, methods, and guidelines which allow developers to follow and to find solutions to the problem faced. Gaia methodology [9] is a practical approach to analysis and design, implementation and management of agent software systems. It aims to provide agents, services, resources, and share agent community/ experience, and to offer practical support to the tasks of system design, development and implementation. Gaia methodology suggests that the whole multi-agent system can be defined in team of agent roles and agent organizations, and an organization can be defined in term of a range of practical designable and reusable models. Later those models are used as the foundation stones for building the system architecture. There are two main phases in Gaia methodology to help system developers to define the agent structure (micro-level) and agent society and organization structure (macro-level). These concepts are presented in two basic stages in Gaia methodology: analysis and design[9].

In the analysis phase, the macro-level aspects are addressed by the interaction model, and the micro-level aspects are addressed by the role model. It focuses on agent organizational aspects both in the team of concepts (such as roles, responsibilities, agent types, protocols) and in teams of organizational domain design (such as services, interactions, acquaintances, activities. In this phrase, the major tasks are to define a collection of roles of agents and define relationships between agents. So, roles can be seen as the basis of agent system design. Each role has four attributes, namely responsibilities, permissions, activities, and protocol, which are used to describe the feature and states of agents.

In the design phase, the above two models will be further refined into three Gaia models: agent model, services model and acquaintance model. The agent model is a refinement of the role model. Although the mapping from roles to agents may not necessarily be a one-to-one correspondence in Gaia, a natural mapping is just to refine one role into one agent. The services model further specifies the functions and services provided by individual agent. The acquaintance model is a refinement of the interaction model, which further defines the communication links between agents.

Agent-oriented Design and Development Process in Gaia Methodology

The Gaia methodology describes a high level outline of design and development processes, identifies important steps to build an agent cooperation environment, and outlines models and plan for designing effective agent architecture. In this research, we divided the Gaia’s two concepts, i.e. Abstract Concepts and Concrete Concepts into a progressive design process; it is illustrated in [Fig1].

Gaia-based Agent Environment Development and Processing Prototype Diagram
Figure 1: Gaia-based Agent Environment Development and Processing Prototype Diagram

The diagram [Figure 1] shows the Gaia model for agent-based system development, from conceptual requirement analysis to the creation of roles and models, then moving to practical architecture design and complex system implementation by using Gaia concrete concepts. In the analysis phase, i.e. abstract concepts level, the aim is to produce agent-oriented abstractions and specifications (roles, Interaction models) for the system under the development. This is an interpretation and decomposition of the complex problem to be solved. The role model is used to clarify function and formalize skills (responsibilities, activities) of agents. In order to share resources, skills, problems, and tasks and to facilitate the design of the solution, the interaction model is used to clarify the relationships between roles and to link the cooperative agents. In the design phase, i.e., concrete concepts level, the aim is to define a solution of the problem. The design process consists of identifying the three models (the agent model, the services model and the acquaintance model), specifying what they are to accomplish, and constructing and organizing all the components into suitable agent architecture. Those design models should provide a clear computational description of the system, which then promises the system’s implementation as a relatively straight-forward refinement of adding details about the implementation platforms, programming language and computational algorithms, without reconsidering the structure of the agent system [4,7].

In this research, we also purpose a flow chart design diagram, which is able to decompose agent-based components and services from agent society level and to design and construct them into the three Concrete models, i.e. agent model, service model and acquaintances model in Gaia methodology.

This design flow chart diagram also shows how a series of instructions guide system developers through the Gaia’s design processing and pathway, i.e. from Abstract concepts to Concrete concepts. Each instruction may perform one of Gaia’s basic functions or procedural abstractions. It begins with the initiation and definition of roles, and then comes a group of roles’ planning for organizing agents’ behaviours, followed by loading particular models (agent type, service and acquaintance) from the agent models library. The use of agent-oriented techniques is to provide a structured way to deal with complexity, so the benefits of modelling and design compound as the application size grows large. Another benefit of structured models such as these is that they enable reuse of agent models and services. Eventually, it is hoped to build up a library of models of agent-based components, each one representing an implementation stored in a library; these could be reused and invoked by developers for multiple agent system design, implementation and maintenance. When another task needs the same functionality, the designer can quickly import its module from the library. In the implementation phase, the developer can just as easily import and organize the agent-based modules into the executable agent-oriented architecture.

Extension: Gaia-based practical design and modelling tools

Jennings[6] states that: "agent-oriented approaches are well suited to developing complex software systems in general and control system in particular". As yet, there are not many agent-oriented software and applications in the market. In part, this is due to the complexity of agent system development, the absence of mature techniques and the shortage of useful software tools. The commonly considered solutions are the development of the component-based software techniques for the integration of components like database software applications into agent systems and the development of the useful structures for collections of agents into teams and groups in agent architectures.. The Gaia methodology is an attempt to define a high-level methodology that is specifically tailored to the analysis and design of multi-agent systems.It offers a high-abstraction level specifications and a range of capable structural models for systems analysis and design. However, there is no given way to go from a Gaia analysis model to a design model. System implementations in most cases are still done through the extension of object- oriented techniques. Furthermore, the superstructure level, i.e. the level of agent domain modelling, is not considered in Gaia methodology; the role model has been emphasized in only textual schema. Therefore, the Gaia methodology provides a high level of abstraction for describing and organizing software agents rather than modelling and implementing them. Obviously, managing complexity issues and creating reliable agent-based software is a very challenging task facing developers of large-scale embedded software systems. In order to cope with the complexity of the models as a whole, it is valuable to have access to multiple graphical views of a system, each from a different perspective, each representing different models and their associated components or elements. The experience gained in the agent system design undertaken for this research is that the absence of such graphical modelling tools is a great obstacle to effective system design and implementation. Therefore, in this research, a Gaia-based graphic modelling tool was developed and exploited. The design philosophy for agent-based system is based on progressive development and decomposition of a system’s intended behaviour, i.e., extending Gaia methodology and adapting some modelling techniques and ideas from object-oriented software engineering (since object-oriented modelling techniques are not directly applicable to agent systems , and agents are more complex than objects ), providing a compositional modelling tool suitable for the verification of agent-based system structure and function. Here, in order to simplify and complete the Gaia methodology, a set of Gaia-based graphic modelling diagrams for addressing domain-level abstractions are introduced and prototyped in the E.U-INCA health care project [2,4] as follows:

The Benefits of Using Gaia Methodology and Extension

The Gaia methodology attempts to be a practical approach to the analysis, design, implementation, and management of agent software systems. It is an easy-to-use agent-oriented software development tool, which provides a range of model for addressing agents, services, resources, and its community. It offers practical support and guidance, which currently only covers the system analysis and design phases, while proving a range of guidelines that are directly relevant to agents in their coordinative working domain. With the proposed extension to Gaia methodology, i.e. Gaia-based modelling tools, the developer could easily put Gaia’s analysis and design from text description into a live graphic design. Here, we suggest using Gaia methodology with supportive extensions: Gaia -based practical design and modelling tools to practical agents and their associated systems’ design and development and system management. The numerous advantages and positive characteristics of applying methodology to agent design can be addressed as follows:

Discussions

Discussion1: Agent-oriented methodology v Agent-based UML(AUML)

In recent years, many researchers have been considering using Agent-based UML(AUML) and adapting UML tools and techniques for agent-based software system[3,7]. From a software development point of view, agent-based UML and agent-oriented organisational methodology both are based on the agent software development process and use their own syntax and notation to achieve the domain tasks and to create rational agent architectures. The most important of these limitations of using AUML are: firstly, AUML mismatches with agent concepts and incompatible with complex agent-based system design, it lacks of consideration for identifying agents and their associated flexible roles; and secondly it short of support and description for agents’ social skills and interactive dynamic behaviours. Therefore, it is emphasized the importance of methodology as a critical initial step in developing and producing agent-based architectures and applications. It aims to present an effective schedule and plan for an agent software development process; for addressing complex agent-based environments, decomposition, abstraction, communication, organization software development process activities characteristics [1,8], whilst reducing the complexity of the complex agent systems’ design and development.

Discussion2: Strengths and Weakness of the current agent-oriented methodology

a) Strengths of the agent-oriented methodology

There are many strengths of the agent-oriented approach for design software systems, which is why it has become so popular. Agent systems have great potential for complex applications such as community care and emergency services domain. The strengths of an applied methodology (such as Gaia) for agent-oriented software design and development are:

Those efforts have resulted in a number of architectures and frameworks for agents, but there still has been relatively little systematic research, which addressed the issues of practical methods for the design of agent-based systems.

b) Weakness of the agent-oriented methodology

Agent -oriented software engineering is a technology still in its early stages of development. The research described here has involved the investigation and extension of the Gaia methodology for description, design and extension of software architectures based on the agent-oriented software engineering approach. It can be considered as a research foundation partly from the many aspects of intelligent agent technology. The agent-orient approach must overcome the challenge of system complexity and to provide vital support to agent-oriented software engineering. Currently, there still are gaps in the functionality of the design methodologies and toolkits. We need more powerful tools and better methods and methodologies to assist us to organize and control the agents and to manage resources, so that all the information and services that we need are accessible to us.


© Зудикова Юлия Владимировна, ДонНТУ, 2010