|
|
Agent-Based Knowledge Exchange |
In order to accomplish our goals of integrating heterogeneous software within an agile infrastructure and to facilitate interoperation of various programs, we advocate the use of an agent architecture.
An agent is an autonomous software component (a persistent entity) that encapsulates a service (database, applications, software tool). Agents communicate with each other by passing messages in a common language, an agent communication language. Agents can be executing on a different hardware platform, can be written in different programming languages, and can execute under different operating systems. A common agent interface allows the exchange of information.
Currently we are using KQML (Knowledge Query and Manipulation Language) as a protocol for exchanging information, both data and knowledge, across the Internet. We are using the Java Agent Template, a public domain API that creates client agents written in Java which send KQML messages. This agent template can be found at the Agent-Based Engineering Group at Stanford CDR. We will derive manufacturing agents from the Java agent template. Within a KQML message, an inner language, or content language, either procedural or declarative, is used to define the content of the message. The content of the message will refer to terms and definitions appropriate to the application. We intend to use EXPRESS, a language specified as part of PDES/STEP. The third part of the agent communication language is an ontology. An ontology is a vocabulary appropriate to a specific application area. We are going to use the PDES/STEP standards for use in the agile manufacturing cell.
One of the key challenges in agent technology is security. We are working with the Infrastructure and Networking Research Department on manufacturing agent firewalls that allow for secure communication between agents.
The manufacturing components of the agile manufacturing cell are CORBA objects. The details can be found here.