Agent-oriented design has become one of the most active areas in the field of software engineering. The agent concept provides a focal point for accountability and responsibility for coping with the complexity of software systems both during design and execution (Yu, 2001). It is deemed that software engineering challenges in developing large-scale distributed systems can be overcome by an agent-based approach (Paquette, 2001). In this approach, a distributed system can be modeled as a set of autonomous, cooperating agents that communicate intelligently with one another, automate or semi-automate functional operations, and interact with human users at the right time with the right information.
Key Terms in this Chapter
Cluster Computing: A method of parallel computing using a cluster of computers inter-connected by high-speed networks. The computers of a cluster are usually personal computers or workstations and the networks are usually commonly used local area networks (LANs). The advantage of cluster computing is cost-effectiveness. It allows for high-performance computing without using expensive specially designed super-computers.
Distributed Laboratory: A laboratory that utilizes resources on a set of computers inter-connected through the network. To allow the students to access these resources and perform the lab exercises, a distributed laboratory usually has an online interface that is implemented by a client/server model. A distributed laboratory is often used to design lab exercises for parallel computing and grid computing courses.
Multi-Agent Systems: Multi-agent systems (MAS) is a new methodology to address the issues in organizing large-scale software systems. This methodology provides a conceptual model that helps maintaining constraints, a task conventional software engineering is unable to achieve. An agent is a software entity that actively seeks ways to complete its tasks. Intelligent agents have the ability to gain knowledge through their problem-solving processes. Multi-agent systems are often used to model loosely coupled distributed systems with decentralized control and data allocation. In these systems, communicating agents represent distributed expertise for problem solving. The agents have the ability to process local data efficiently and to communicate with other agents when necessary if the tasks that they are facing are beyond their domain knowledge.
Collaborative Agent System Architecture: A model for multi-agent systems that features the collaboration among multiple agents to achieve the works. This model focuses on the conversation among the agents. Conversation is a process in which the agents exchange information to reach a solution to any emerged problem during the transaction. This model classifies agents into five categories, viz., interface agents, task agents, collaboration agents, knowledge management agents, and resource agents.
Gamma Languages: Languages developed to describe computation in the chemical reaction models. In late 1980’s, Banâtre and Le Metayer proposed the original Gamma language. In 1994, Le Metayer proposed a higher-order Gamma language. In 1998, Fradet proposed a structured Gamma language. The newest Gamma formalism is Gamma Calculi, which were proposed by Banatre, Fradet, and Radenac in 2004 and 2005.
Grid Computing: A new distributed system that consists of distributed computing resources over the Internet. A grid allows the sharing of computing power, data, and information in a unified model. The studies of grid computing include how to use the distributed computing resources effectively to provide high-performance computing power, deliver e-services, and allow for information sharing while ensuring security and reliability.
Client/Server Model: A model used to implement services via interaction between a server and clients. The server is a program designed to perform the computation requested by clients and the clients are programs that run on end-users’ platforms and serve as an intermediary between the end users and the server. Client programs usually are featured by user-friendly interfaces and preliminary processing of users’ requests. The server receives requests from the clients, performs the requested computation, and sends the results back to the clients. Client/server model is the dominant method for implementing Internet services.
Chemical Reaction Models: An abstract computing model which describes computation using the chemical reaction metaphor. In these models, data are represented as multi-sets and computation is performed by a series of element combination, that is, one or more elements are selected by the operator, if the selected elements satisfy the reaction condition, the selected elements are consumed and new elements that are produced by the reaction rule are injected back into the multi-sets. Computation terminates when no more reaction can take place. The chemical reactions models are suitable to specify high-level architectural properties of complex systems and are used as a specification tool for software architecture and coordination programming.