Are distributed objects agents?

Michael Schroeder, City University London, msch@cs.city.ac.uk
 

Since OMG's definition of Corba (Common Object Request Broker Architecture) distributed object computing took off. And while agents make the headlines, Corba makes the money, even though Jennings, Sycara, and Wooldridge claim that "objects do it for free; agents do it for money". [2] This slogan captures their view that objects differ from agents because they are not fully autonomous and lack the flexibility of agents. In this statement, we'll discuss aspects of the Corba architecture in the light of agents.

Reactivity

The weak notion of agenthood requires agents to be reactive, autonomous, social, and pro-active [6]. As the name suggests, reactive agents react to changes in their environment. There are two views as this could be achieved. Connectionists like Rodney Brooks avoid high-level symbolic representations and try to implement reactive behaviour by letting different components of an agent architecture access the agent's raw sensor data. In the symbolic camp, reactive is often captured by event-condition-action rules: Given that a certain event occurs in the environment and a condition is met, the agent carries out the specified actions. Both approaches do not always consider all changes in the environment, but restrict themselves to a set of perceptions relevant to the agent. And in this sense, objects react. They perceive requests for method invocations and react accordingly. This pattern could be described as event-action rule, where the action may or may not contain further conditions explicitly.

Autonomy

Concerning autonomy [2] argues that objects are autonomous wrt. their state, but not wrt. their behaviour. A Corba server cannot reject requests deliberately, which an agent can. First of all, it is questionable whether such a property is desirable, because we want to ensure reliability and authorised requests should be carried out. Second, it is a quite narrow view and Jennings, Sycara, and Wooldrige's hasten to point out that a server object may implement autonomy as part of its service. As an example, a bank object would require the correct PIN to carry a withdrawal to restrict access to authorised clients only. The idea of serving only those authorised, is also a build-in security feature of advanced distributed object computing platforms. The Corba security service implements, for example, an authorisation protocol for objects.

Social

While objects may not be social, distributed objects definitely are. How else could they communicate and work together? To be social, they implement a range of protocols. Typically, agents use speech acts [4] for such protocols and so does Corba: The Internet-Inter-ORB Protocol IIOP, which forms also the basis of the recent FIPA agent standard, comprises the seven message tags Request, Reply, Locate Request, Locate Reply, Cancel Request, Close Connection, Message Error and thus forms a rudimentary ACL. The analogy does not stop here. In contrast to many agent platforms, Corba is also very precise about the content language. It is defined and known as Interface and written in IDL, the interface definition language. Such an interface defines what sort of service requests an object "understands" and similar to ontologies in agent research, Corba provides an interface repository, that allows objects to learn about other objects content language at run-time. Thus, objects that never met before (at design time, e.g.) are able to request each others services. Of course, the interface is limited to help with syntactical issues of the content language and does not ensure that a method called, say, sort, actually sorts.

Pro-activeness

The only issue not dealt with by Corba object is pro-activity. However, many agent systems do not involve planning and exhibit goal-driven behaviour.

Naming and Trading

Corba defines further services useful for distributed computing and missing in many agents platforms. To achieve location transparency, Corba provides a naming and trading service. The naming service allows to bind objects to names and look them up. The name space is hierarchical and corresponds to white pages. Similarly, the trading service corresponds to yellow pages. Objects may request services from the trader without bothering , who carries out the service. The trader will also monitor the agreed quality of service and take action if the service provider fails to achieve its target. The idea of trading will change computing dramatically, because it will turn the net into the computer. Corba object search engines Agora [3] and WebTrader [5]

Representation of other agents

An interesting detail of distributed objects is the use of client stubs and server skeletons. They are an object's representation of other objects. The representation of other agents is missing in many practical agent platforms, but is heavily investigated when reasoning is concerned. For objects, reasoning is not essential since the representation is used to know about and request another agent's services.

Mobility

Another aspect tackled by Corba and missing in many agent platforms is mobility. Corba's object lifecycle includes migration.

Summary

To summarise, Corba objects are reactive, autonomous, and social. They use an agent communication language, a content language, and possibly ontologies, and naming and trading services. They are platform independent, open, heterogeneous, and modular [1] and hence it makes sense to treat Corba objects as agents, though they are of course rudimentary, and by no means intelligent. But this is maybe, why they do it for money [2] and actually make money.

Bibliography

1
Michael Fisher, Jörg Müller, Michael Schroeder, Gerd Wagner, and Geof Staniford.

Methodological foundations of agent-based systems.
IEEE Knowledge Engineering Review, 12(3):323-329, 1997.
2
Nick Jennings, Katia Sycara, and Michael Wooldrigde.

A roadmap of agent research and development.
Autonomous Agents and Multi-Agent Systems, 1(1):275-306, 1998.
3
Robert C. Seacord, Scott A. Hissam, and Kurt C. Wallnau.

Agora: A search engine for software components.
Technical report, CMU Software Engineering Institute, 1998.
http://www.sei.cmu.edu/publications/documents/98.reports/98tr011/original.htm.
4
J.R. Searle.

Speech Acts.
Cambridge University Press, Cambridge (UK), 1969.
5
Venu Vasudevan and Tom Bannon.

WebTrader: Discovery and programmed access to web-based services.
Technical report, Object Services and Consulting Inc, 1999.
http://www.objs.com/agility/tech-reports/9812-web-trader-paper/WebTraderPaper.html.
6
M.J. Wooldridge and N.R. Jennings.

Agent theories, architectures and languages: A survey.
In M. Wooldridge and N.R. Jennings, editors, Intelligent Agents I. LNAI 890, Springer-Verlag, 1995.



Position Paper. International Workshop on Agent-Oriented Information Systems (AOIS'99). See  http://www.AOIS.org