Quick Links

Contact Information

4800 Liberty Ave
Pittsburgh, PA 15224

Open 9:30am-6pm EST
Monday-Friday

Phone: +1 (412) 682-5282

info@cometway.com
sales@cometway.com
support@cometway.com

For more information about Comet Way products and services, please visit our corporate website at

http://www.cometway.com

Agent Programming

The term agent has been widely used by business and academia to describe the active elements of a complex system.

In software engineering, agents have been described and implemented for many different types of applications, performing dedicated tasks as part of a larger formalized process.

Simple agents work alone and are very much like traditional applications that perform a dedicated task. Agents like these run as often as needed and may run continuously. They are oblivious to the presence of other agents and are often run standalone to avoid conflict. Large applications that are built in this manner are called monolithic and can quickly grow in size and complexity as features evolve.

Some agents work in groups dividing up a large task between themselves for processing in parallel.This is sometimes called pooling and is a common technique that allow systems to scale when processing capacity and resources are limited. Agents like these can easily take advantage of multithreaded environments in order to complete a job faster and more efficiently. Parallel designs encourage the use of simpler application architectures and often exploit polymorphic features of object oriented environments like Java™.

Some agents are cooperatve by offering specialized services to other agents through a formalized interface. Improving the performance of any specific agent in a cooperative environment benefits every agent in the system. In addition, new features can be integrated by adding new agents to the system,or by replacing older agents with alternate implementations.

Some agents are autonomous and are able to perform tasks independently from user interaction. These agents are essentially setup once, and continue to function without further intervention. They are most useful in server applications, or in any situation where user-interaction is not a requirement.

Some agents are mobile and are able to move freely, or with some restrictions, between different agent servers. Sometimes only their data is moved, and in other cases their complete state and byte-code are moved. In some applications, mobility is the primary feature necessary to realize the benefits of agent programming.


Anatomy of an Agent Application


The Comet Way Agent Kernel provides a mature foundation for the implementation of these agent types, and provides a versitile environment for supporting the needs of a typical agent. All types of agents running under the Comet Way Agent Kernel can peacefully co-exist with each other, sharing the full benefits of these and other agent types as necessary. Rarely does one specific approach satisfy the needs of all applications.

The Comet Way Agent Kernel supports a methodology known as agent programming which provides a context for componentizing application functionality through the use of agents. Individual agents are dedicated to the performance of a specific task or domain, and provide the basic building block necessary for creating increasingly sophisticated and complex applications. Agent programming is a simple and effective approach for writing component software.

Modularity and reusability is one of the most promised, yet rarely achived, benefits of the Java language. The Comet Way Agent Kernel makes good on this promise by providing a consistent model for writing component software as agents. By taking advantage of proven APIs and platforms, these agents can quickly to extend their effective reach while providing a level of stability and compatibility across various Java technologies.

[Next]

Description: Some background on agent programming tools and methodology.

Updated: Mon May 19 06:24:17 EDT 2008