Intelligent Software Agents


Another technology that goes hand in hand with P2P are intelligent software agents. In Chapter 14, "Jini and JavaSpaces," and Chapter 22, "Distance Learning," you saw how agent technology can be combined with P2P technology to improve the user experiences in a distance learning scenario. As the P2P model becomes more prevalent, the complexity of the operating environment will increase significantly. Peer nodes will require more intelligence in order to track, handle, and route requests.

The search problem is a great example of this need. Search bots, a type of intelligent agent software, have existed almost since the inception of the Web. Search bots represent users and their queries, using a certain degree of intelligence (mainly in the form of rules) to streamline and optimize their searches. However, agents need not only represent users.

Software Agents

We can categorize the concepts of intelligent software agents several ways. Over the years, several definitions of software agent have evolved amid the discussions of what constitutes intelligence. The two following definitions illustrate the wide spectrum of definitions:

Intelligent agents are software entities that carry out some set of operations on behalf of a user or another program with some degree of independence or autonomy, and in so doing, employ some knowledge or representation of the user's goals or desires. (IBM Intelligent Agent Definition, 1996)

An agent is a computational process that implements the autonomous, communicating functionality of an application. (FIPA and OMG architecture, 1999)

As you can see, the first definition includes the concepts of a user and the user's goals, and considers agents to be extensions of users. The second definition, however, considers agents to be a pure functionality embedded within an application or computer program, with no mention or concept of users. Imagine then, a situation in which instead of the traditional pairing of agents to users, each peer node on the network works in conjunction with its own intelligent software agent. The agent can manage the node's resources by filtering incoming requests for relevance and routing outgoing requests based on their type or other learned criteria.

Security, Identity, and Integrity

An essential set of elements to both the agent and P2P concepts are those of security, identity, and integrity. In other words, how can agents prove who they are, how can they communicate information in a secure fashion, and how can they prove the integrity of the information they are delivering? For P2P applications, platforms like JXTA provide the framework for secure communications. On the other hand, the software agent community has recently started adopting the use of digital signatures for authentication and identity. These two technologies, combining security, identity, and integrity, will eventually work hand in hand in a combined P2P/agent platform.

Agent Communications

This leads us to another important topic agent communications. The important question here is whether agents will use P2P communication protocols, or can agent and peer communications be decoupled? Most of the standards that have emerged in agent communications have come out of DARPA-funded efforts, in this case the DARPA Knowledge Sharing Effort. Traditionally, building knowledge-based systems meant having to construct a new knowledge base from scratch every time. Even if several groups of researchers were working in the same general area, each team has had to develop its own knowledge base. The cost of this duplication of effort has been high, and will only increase as larger and more complex systems are built. The Knowledge Sharing Effort was established by DARPA and other agencies in the early 90s in order to overcome these barriers and advance the state of the art.

Notably, two specifications, one for knowledge representation and the other for knowledge exchange and message passing, have been established:

  • Knowledge Interchange Format (KIF) Used to represent information to be exchanged between agents. KIF is an implementation-independent specification that is a prefix version of first order predicate logic supporting the definition of four types of expressions: terms (objects), sentences (facts), rules (inference), and definitions (constants). KIF knowledge bases are a set of sentences, rules, or definitions that could be used by communicating peers to establish common ground, such as preferences and shared ontologies (http://www.cs.umbc.edu/kif).

  • Knowledge Query and Manipulation Language (KQML) An agent communication language. Whereas KIF is used to represent knowledge, KQML is a message format and message-handling protocol used for sharing information between agents at runtime. This is done through an extensible set of constructs that are called performatives, because their intent is to cause an agent to perform a specific action (http://www.cs.umbc.edu/kqml).

Expressing KIF and KQML in XML for P2P communications should be a relatively straightforward task, and efforts are underway to accomplish that capability.



JavaT P2P Unleashed
JavaT P2P Unleashed
ISBN: N/A
EAN: N/A
Year: 2002
Pages: 209

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net