next up previous
Next: The Idea of Security Up: Security Agent Previous: Security Agent

Software Agent and KQML

Software agent is an emerging system-building paradigm, it is now widely used in information retrieval, distributed systems, database and knowledge base, and many other aspects of AI. Some researchers believe, like expert systems in the middle of 80's and object oriented techniques at he beginning in 90's, agent will also become a revolutionary technology in computer science.
A software agent is a process characterized in the following ways:

  1. Adaption: Agents adapt to their environment and their users, and learn from experience.
  2. Cooperation: Agents use standard languages and protocols to achieve common goals.
  3. Autonomity: Agents act autonomously to pursue their agendas.
  4. Mobility: Mobile agents migrate from machine to machine in a heterogeneous network under their own control.

The properties of agents make them useful in many diffenrent kinds of applications, as well as in security area. As we mentioned above, agents can communicate with each other by their own language, so they can cooperate to fulfil a common goal. There are several kinds of common agent communication language, such as: KQML, KIF (Knowledge Interchange Format), Ontolingua (a language for defining sharable ontologies), Protolingua (a language for defining protocols based on communicative primitives). The most common language is KQML.
KQML is a high level language intended for the run time exchange of information between agents. There are three layers involved in KQML: the content layer, the message layer and the communication layer.
The content layer contains the actual content of the message. The communication layer describes the lower level communication parameters, such as the identity of the sender and the receiver. The message layer forms the core of KQML, and determines the kinds of interactions one agent may have with another.
The syntax of KQML is based on a balanced paranthesis list. The initial element is called the performative, the remaining elements are the performatives arguments (as keyword and value pairs). The following is an example:
tell:
:sender customer
:content (123 456 7890)
:receiver retailer
:in-reply-to credit-card-number
:language LPROLOG
:ontology NYSE-TICKS

In this message, the KQML performative is ``tell''. The content is ``123 456 7890'', this is the content level. The values of the :sender, :receiver, :in-reply-to keywords form the communication layer. The performative, with the contents of :language and :ontology form the message layer. From this example, we can also realize the necessity of a security machanism in agent communication.



next up previous
Next: The Idea of Security Up: Security Agent Previous: Security Agent



Qi He
Wed Feb 11 00:37:07 EST 1998