Next: Overview of OAA
Up: The Open Agent
Previous: Agent-based Software Engineering
Our approach to distributed computing
shares much in common with the paradigms outlined above.
As with distributed object frameworks,
the primary goal of OAA is to provide a means for integrating
heterogeneous applications in a distributed infrastructure.
However, we have also sought to incorporate some of the dynamism and extensibility
of blackboard approaches, the efficiency associated with mobile objects,
and the rich and complex interactions of communicating agents. Here,
we spell out in greater detail the goals of OAA, which
may be categorized under the general headings of interoperation and cooperation, user interfaces, and software engineering.
Versatile mechanisms of interoperation and cooperation.
Interoperation refers to the ability of distributed software components
- agents - to communicate meaningfully. While every system-building
framework must provide mechanisms of interoperation at some level of
granularity, agent-based frameworks face important new challenges in
this area. This is true primarily because autonomy, the hallmark of individual agents, necessitates greater flexibility in interactions within communities of agents. Coordination refers to the mechanisms by which a community of agents is able to work together productively on some task.
In these areas, the goals for our framework are to
-
Provide flexibility in assembling communities of autonomous service providers
-- both at development time and at runtime. Agents that conform to the linguistic and ontological requirements for effective communication should be able to participate in an agent community, in various combinations, with minimal prerequisite knowledge of the characteristics of the other players. Agents with duplicate and overlapping capabilities should be able to coexist within the same community, with the system making the best possible use of the redundancy.
-
Provide flexibility in structuring cooperative interactions among the members of a community of agents. A framework should provide economical means of setting up a variety of interaction patterns among agents, without requiring an inordinate amount of complexity or infrastructure within the individual agents. The provision of a service should not be dependent upon a particular configuration of agents.
-
Impose the right amount of structure on individual agents.
Different approaches to the construction of multiagent systems impose different requirements on the individual agents. For example,
because KQML is neutral as to the content of messages, it imposes
minimal structural requirements on individual agents. On the other
hand, the BDI paradigm is likely to impose much more demanding requirements,
because it makes assumptions about the nature of the programming
elements that are meaningful to individual agents. OAA falls
somewhere between the two; our goal has been to provide a rich set of
interoperation and coordination, but without precluding any of the
software engineering goals defined below.
-
Include legacy and ``owned-elsewhere'' applications. Whereas
legacy usually implies reuse of an established system fully controlled
by the agent-based system developer, owned-elsewhere refers to
applications to which the developer has partial access, but no control.
Examples of the latter are data sources and services available on the
World Wide Web, via simple form-based interfaces, and applications used cooperatively within a virtual enterprise, which remain the property of separate corporate entities. It must be possible for both classes of application to interoperate, more or less as full-fledged members of the agent community, without requiring an overwhelming integration effort.
Human-oriented user interfaces. Systems composed of multiple
distributed components, and possibly dynamic configurations of
components, require the crafting of intuitive user interfaces to
- Provide conceptually natural means of interacting with
multiple distributed components. When there are numerous
disparate agents, and/or complex tasks implemented by the system, the
user should be able to express requests without having detailed
knowledge of the individual agents. With speech recognition,
handwriting recognition, and natural language technologies becoming
more mature, an agent architecture must be prepared for these
forms of input to play an increased role in the tasking of agent communities.
-
Treat users as privileged members of the agent community. By providing an appropriate level of task specification within software agents, and reusable means of translating between this level and the level of human requests, it should be possible to construct interactions that seamlessly incorporate both types of ``agent''.
-
Support collaboration (simultaneous work over shared data and processing resources) between users and agents.
Realistic software engineering requirements. To be successful, a system-building framework must address the practical concerns of real-world applications, as expressed by these goals:
-
Minimize the effort required to create new agents, and to wrap existing applications.
-
Encourage reuse, both of domain-independent and domain-specific
components. The concept of agent orientation, like that of
object orientation, provides a natural conceptual framework for reuse, so long as mechanisms for encapsulation and interaction are structured appropriately.
-
Support lightweight, mobile platforms. Such platforms should be
able to serve as hosts for agents, without requiring the installation of
a massive environment. It should also be possible to construct individual agents that are relatively small and modest in their processing requirements.
-
Minimize platform and language barriers. Creation of new agents, as well as wrapping of existing applications, should not require the adoption of a new language or environment.
Next: Overview of OAA
Up: The Open Agent
Previous: Agent-based Software Engineering
Adam Cheyer
Mon Oct 19 17:14:26 PDT 1998