• Aucun résultat trouvé

The Agent-Based Computing Models

Dans le document DISTRIBUTED NETWORK SYSTEMS (Page 39-44)

Table of Figures

CHAPTER 1 OVERVIEW OF DISTRIBUTED NETWORK SYSTEMS

1.5 The Agent-Based Computing Models

The basic agent-based computing model has many extensions and variations.

However, there are two areas of distinction among these models, which highlight their adaptability and extensibility: one is whether the interactions among components are preconfigured (hard-wired) and the other is where the control for using components or services lies (e.g., requester/client, provider/server, mediator etc.).

Conversational Agent Model

Conversational agent technologies model communication and cooperation among autonomous entities through message exchange based on speech act theory. The best-known foundation technology for developing such systems is the Knowledge Query and Manipulation Language (KQML) [http://www.cs.umbc.edu/kqml/], which is often used in conjunction with the Knowledge Interchange Format (KIF) [http://www.cs.umbc.edu/kqml/]. In these systems, service access control also lies with a client, which requests a service from a service broker or name server, and then initiates peer-to-peer communication with the provider at an address provided by the broker. Although language-enriched interchanges occur, conversational agents suffer from the same restriction as distributed objects in that the interactions among components are hard-coded in the requester, thus making services inflexible and difficult to reuse and extend.

Sun Jini

Sun Microsystems’ Jini [Sun 1999] extends the Java runtime environment from a single virtual machine to a network of virtual machines. In Jini, control for resource access lies with the client who requests a service based on type and attributes from a lookup service that holds a collection of service objects (Java object and methods) and attributes posted by providers. Clients filter responses from the lookup service, downloads the service object for the selected service, and invokes remote methods within the provider to obtain the service. Although the capability of downloading the interface between service requester and provider permits a dynamic and extensible assembly of resources, Jini’s model still places the burden and responsibility for selecting, acquiring, and managing access with the client.

Blackboard, Publish and Subscribe Approaches

Blackboard approaches such as FliPSiDE [Schwartz 1995] or LINDA [Schoenfeldinger 1995] allow multiple processes to communicate by reading and writing requests and information to a global data store. Requesters post requests on the Blackboard and poll for available results; providers poll to obtain service requests, and use the Blackboard to post results. The Blackboard enables team

problem-solving approaches as it can be used for posting problem subcomponents and partial results.

Publish and subscribe approaches such as Talarian [http://www.messageq.com/communications_middleware/talarian_2.html] and Active Web [http://www.pinnaclepublishing.com/AW/AWmag.nsf/home!openform]

use a centralized broker as a clearinghouse for requests and information. Clients issue a request to the broker that broadcasts it to available providers; their responses are reflected through the broker to the client. This approach is well-suited to time-critical problems, as its broadcast model facilitates quick responses.

Common to these approaches is their ability to enable dynamic and flexible composition of distributed components because the interaction among components is not predefined at codetime or tightly bound at runtime. But, with this flexibility comes a potential inherent disadvantage because neither approach provides programmatic control for guiding the operation, and at times this control is needed or desired (e.g., to task a provider that best meets known requirements).

OAA’s Delegated Computing Model

The Open Agent Architecture (OAA) [http://www.ai.sri.com/~oaa/], a framework for building flexible, dynamic communities of distributed software agents, enables a truly cooperative computing style wherein members of an agent community work together to perform computation, retrieve information, and serve user interaction tasks. OAA’s approach to distributed computing shares common characteristics with current distributed computing models, but is distinct in very important ways.

OAA is similar to the above distributed computing models in that it encourages creation of networked applications like Distributed Objects, permits rich and complex interactions like Conversational Agents, and enables building dynamic, flexible, and extensible communities of components like Jini, Blackboard, and Publish and Subscribe.

A key distinguishing feature of OAA is its delegated computing model that enables both human users and software agents to express their requests in terms of what is to be done without requiring specification of who is to do the work or how it should be performed, for example, “When a message for me arrives about security, notify me immediately.” A requester delegates control for meeting a goal to the Facilitator -- a specialized server agent within OAA that coordinates the activities of agents for the purpose of achieving higher-level, often complex problem-solving objectives.

The facilitator meets these objectives by making use of knowledge distributed in four locations in OAA:

The requester, which specifies a goal to the Facilitator and provides advice on how it should be met,

Providers, who register their capabilities with the Facilitator, know what services they can provide, and understand limits on their ability to do so, The Facilitator, which maintains a list of available provider agents and a set of general strategies for meeting goals

Meta-agents, which contain domain- or goal-specific knowledge and strategies that are used as an aid by the Facilitator.

This knowledge is employed to foster cooperation among a set of OAA agents. The Facilitator matches a request to an agent or agents providing that service, delegates the task to them, coordinates their efforts, and delivers the results to the requester.

This style of cooperation among agents can be applied to perform both straightforward and compound, multistep tasks. In addition to delegation, OAA also provides the ability to make direct calls to a specific agent (like distributed objects and conversational agents) and to broadcast requests (like Publish and Subscribe).

OAA’s delegation model relieves human and software agents from the responsibility of interfacing, task planning, and execution monitoring. This has several benefits, including

Reducing complexity for users and agents. Requesters need only specify the work to be done and advise on its execution. Agents then focus on performing their specialized task, not on coordinating execution and results.

Precipitating a more open and dynamically extensible computing style wherein agents written in many languages and styles can work together. New or different agents can be added or replaced on the fly without requiring reprogramming to take advantage of their capabilities.

Encouraging reuse across applications and domains because inter-agent interactions are not pre-defined and their interfaces are not hard-coded.

1.6 Summary

The key purposes of distributed systems can be represented by: resource sharing, openness, concurrency, scalability, fault-tolerance and transparency. Distributed computing systems comprise the three fundamental components: computers, networks, and operating systems and application software. Computer networks were first built in the 1960s and there are mainly two reference models for computer networks, one is the OSI model and the other is the ARPANET model. The current Internet is based on ARPANET, which adopts the four-layer network architecture.

The layered protocols define the services provided by these network layers. Quality of service is a method for providing enhanced services to network traffic. With the development of networks, especially the Internet, network fault-tolerance is becoming more and more important. A key indicator of today’s business systems is the reliability and uptime. Communication network reliability depends on the substainability of both hardware and software.

The client-server model has been a dominent model for distributed computing since the 1980s. It has been used extensively to develop a huge number and variety of applications. However, it is not good enough to describe various components and their activities of a Web-based client-server computing system. The Internet and WWW have influenced distributed computing by the global coverage of the network, Web servers distribution and availability, and architecture of executing

programs. The Web-based client-server computing systems are categorized into four types: the proxy computing model, the code shipping model, the remote computing model and the agent-based computing model, where the agent-based computing model has many extensions and variations.

Exercises

What are the purposes of distributed systems? What are the fundamental components of distributed computing systems? 1.1

When was ARPANET built? When was the Internet invented? 1.2.1 What is the OSI architecture? What is the Internet architecture? 1.2.2

Why should we consider fault-tolerance in a networked world? What techniques are used in network fault-tolerance? 1.2.3

What is the protocol stack? What is the purpose of QoS? 1.3

Why should we use the client-server model? What types of computing model does the Web-based client-server model have? 1.4.1, 1.4.3

What components does a Web-based distributed computing application have?

1.4.2

What variations does the agent-based computing model have? Give examples.

1.5 1.1

1.2 1.3 1.4

1.5 1.6

1.7

1.8

CHAPTER 2 MODELLING FOR

Dans le document DISTRIBUTED NETWORK SYSTEMS (Page 39-44)