Agent Repositories

 

Overview

Agent Information Server is a mobile, distributed, agent-oriented repository. It provides a mobile runtime environment and a mobile persistent database. ?Intelligent Agents? infiltrate each location of a distributed application, personalizing and adapting the application to each user's needs. It is no longer necessary to send user data from the client interface back to the server for lengthy processing. Users interact with distributed "info-nimble" application interfaces, which perform in-depth analysis of the user's needs on-site, at the client. With its open and modular architecture, Agent Information Server allows intelligent agents to be easily integrated with Excel, Oracle, Java, as well as with existing in-house applications such as customer service, data warehousing, decision support, sales automation, and help desk.

Multiple concurrent users are supported as well as, transaction rollback with no arbitrary limitation on the size of a transaction, password protected data security with automatic record compression and encryption, data recovery, and a runtime dynamic database schema at each location.

Breeding Autonomous Agents

Thousands of autonomous child agents are created, each second, in an adaptive application. As child agents are born, they are placed into the agent file cabinet. Each child agent has source code, compiled code, and knowledge information, which must be, stored somewhere. Often, there may be too many new agents to keep in memory simultaneously. So, Agent Information Server will move agents from the file cabinet into memory and from memory back into the file cabinet during the course of data analysis.

A Programmable Schema

The Agent Information Server Repository has the ability to store Agents, Agent opinions, Agent knowledge, and Agent data. Unlike many other database systems, Agent Information Server supports no fixed database schema. Instead, the Agents implement the schema for their own data and for each server application. The client examines the interfaces for each agent to determine how to interact with the database. Agent Information Server can be made to look like a relational database, like a text database, like an object database, or all of the above simultaneously (depending upon which Agent is controlling the schema).

Breeding Autonomous Agents

Thousands of autonomous child agents are created, each second, in an adaptive application. As child agents are born, they are placed into the agent file cabinet. Each child agent has source code, compiled code, and knowledge information, which must be, stored somewhere. Often, there may be too many new agents to keep in memory simultaneously. So, Agent Information Server will move agents from the file cabinet into memory and from memory back into the file cabinet during the course of data analysis.

Storing Mutating Behavior

The Agent Information Server analytic database engine supports the storing of mutating behavior in multiple repositories distributed across networks containing different computer architectures. Agent Information Server Virtual Machine Agent objects accomplish this feat, because the Agent Information Server analytic database engine guarantees that a VM Agent will operate identically on any computer where the Agent Information Server engine resides. These stored behaviors are called agents, and they are designed to invoke the analytic components in the Agent Information Server function library to perform complex user defined analyses on the high volumes of data stored in the Agent Information Server object repositories.

Fast agent oriented repository management is a corner stone of the Agent Information Server database engine. The ability to store complex interrelated data structures with complex relationships fast, and to retrieve them fast, is essential to advanced, high volume data analysis. The Agent Information Server object repository supports password protected data security, record compression and encryption, transaction rollback with no arbitrary limitation on the size of a transaction before rollback, automatic data recovery, multiple distributed volumes with a maximum of 2 gigabytes per volume and a maximum of 2 billion volumes supported. Each Agent Information Server object repository supports automatic data recovery with the maximum possible data loss being limited to the object closures saved in the current transaction.

Legacy Data

The Agent Information Server general object repository is used in conjunction with commercial legacy database systems. In a typical ES-DSS application, large quantities of data are extracted from the legacy database and passed to the user defined agents for analysis. These user defined agents may need a FAST temporary archive (the Agent Information Server General Object Repository) for portions of the extracted data. Furthermore, as the agents develop hypotheses and increase their understanding of the extracted data, they may need a FAST persistent local archive for their internal knowledge representation. Often the internal knowledge representation of an agent is not in relational format; but, instead, is a complex network of analytic objects for which the Agent Information Server General Object Repository provides an excellent persistence mechanism.

Record Management

The basic unit of storage, in the Agent Information Server General Object Repository, is the object closure (the original object saved, together with all the objects it reaches). Once saved in the repository, an Object Closure has a Repository Index which remains constant throughout the life of the object in the repository. Agent Information Server places no limits on either the number of objects in an object closure nor on the complexity of their interrelationships. Literally any object closure of any size and complexity may be saved in a Agent Information Server General Object Repository.

Schemas

The ObjectRepository supports a simple associative memory database schema in which an object of any complexity is stored and retrieved using a key of any complexity. In addition to this native schema, Agent Information Server supports programmable database schemas for each Object Repository. Programmable schemas are achieved by attaching a librarian agent to a repository. Once attached, the librarian has complete control of how the other intelligent agents view the repository, and can develop a schema specifically tailored to the needs of the application. The librarian can easily implement an SQL relational style schema, a ODMG object style schema, a multivariate indexed style schema, or even a natural language database schema.

Indexing

The Agent Information Server Object Repository acts like a disk based associative memory in which data objects of arbitrary complexity are made persistent and associated with index objects also of arbitrary complexity. Storage is accomplished via the standard setq function, with the index object in the role of the key and the data object in the role of the new value to be saved. The setq function also supports various levels of object buffering, which are determined at creation time.

Knowledgebase

The Agent Information Server Object Repository serves as a local scratchpad/blackboard area for multiple intelligent agents during data analysis. Each Agent Information Server agent is a Lisp script, which manages and coordinates a number of other tools and scripts in some specific type of analysis. The difference between an agent and a normal program, script, or procedure is fuzzy; however, the term agent is usually reserved for scripts which coordinate a specific type or style of analysis. An agent might train neural nets to recognize specific patterns in data, or an agent might apply a knowledgebase of rules against the data to prove a theorem or to form a concept about the data. In general agents support a more intelligent interface than normal programs. Often they are capable of receiving and responding to messages, including requests for explanation, help, and even negotiations from other agents in the knowledge system. Agents, during the course of their analysis, form complex opinions and models about the data. These opinions, often very complex networks of interrelated objects, represent the agent?s viewpoint or vote as to the nature of the data. These agent opinions are stored in the Object Repository as a scratchpad/blackboard for other agents, including meta or supervisory agents, to read and digest.

Transactions

The Object Repository supports transaction management with unlimited rollback before commit. Normally each set operation is an individual fully committed transaction; however, using the beginTransaction, commitTransaction, and abortTransaction functions, an agent can cause all set?s back to the previous beginTransaction to be rolled back by using the abortTransaction functions instead of the commitTransaction functions.

Concurrency

The Object Repository supports transparent multiple concurrent agents using the same database archive file, using the stop/go traffic light model. The Object Repository handles all exclusive locking without agent intervention; however, stop/go traffic light repository concurrency is designed for a small number of agents occasionally sharing knowledge and information. There is no intent to handle the volume of concurrent retrieval and update transactions that a transaction database system would support.

Privacy

The Object Repository supports transparent record level compression for all objects saved. Furthermore, each record may be encrypted with an optional numeric key at storage and retrieval time.

Object Closure

The basic unit of storage, in the Agent Information Server General Object Repository, is the object closure (the original object saved, together with all the objects it reaches). Once saved in the repository, an Object Closure has a Repository Index, which remains constant throughout the life of the object in the repository.

There are two parts to the Object Repository: the first is an object archive (a database file on disk) and the second is the Repository Index. The Repository Index is an Agent Information Server Directory object and saved on disk as part of the Object Repository. Each entry in the Repository Index is a binding consisting of a key and the location of the data on disk. Each record in the Object Repository is compressed using the LZW algorithm and then encrypted.

Data Access

The Repository Index is simply a Directory, which is saved on the disk with the Object Repository. The keys in the Repository Index normally map to a value which is a pointer to the location in the disk file. Retrieving or saving a value to the Object Repository is key driven and requires two disk access:

The full range of object types, in the Agent Information Server Data Model, may be saved in the Repository Index, and the full range of object types, in the Agent Information Server Data Model, may be used as keys to index objects saved in a Agent Information Server Object Repository. All agent scripting and modeling languages, available in Agent Information Server, may be saved in the Object Repository. As an optimization feature, values may be optionally stored as immediate data in the object index using the saveImmediate function.

The Object Repository's data archive may contain up to 2 Gigabytes of objects and agents. The Repository Index of an object repository must be entirely contained in memory. Each entry in the Repository Index requires approximately 80 bytes. A one-megabyte data index would support a Repository data archive containing approximately 12000 objects and agents.

The Object Repository?s Repository Index is a Directory. Each entry in the Repository Index is a binding of an object key and its value. The key can be any Analytical Object Of course, the Repository Index initially is very small and grows dynamically with the number of entries stored in the object repository, and can grow to any size limited only by available virtual memory.

When to Use

The Object Repository offers persistent storage for the Agent Information Server programmer. The full range of object types, in the Agent Information Server Data Model, may be stored in the Object Repository, and the full range of object types, in the Agent Information Server Data Model, may be used as keys to index objects saved in a Agent Information Server Object Repository. All agent scripting and modeling languages, available in Agent Information Server, may be saved in the Object Repository.

Agent Information Server also supports programmable database schemas for each Object Repository. Programmable schemas are achieved by attaching a librarian agent to a repository. Once attached, the librarian has complete control of how the other intelligent agents view the repository, and can develop a schema specifically tailored to the needs of the application. The librarian can easily implement an SQL relational style schema, a ODMG object style schema, a multivariate indexed style schema, or even a natural language database schema