Agent-based multithreading application programming interface
First Claim
1. A system for implementing an agent-based application program on a computer, comprising:
- a processor;
an input device coupled to the processor, for accepting input;
an output device coupled to the processor, for providing output;
memory unit coupled to the processor, for storing data and program instructions;
an operating system, stored in the memory and managing a plurality of processes created by execution of program instructions in the memory unit by the processor;
and at least one agency application unit coupled to the processor and managing a plurality of agents stored in the memory unit, and including;
a master dispatcher coupled to the plurality of agents, for receiving from, and sending messages to the agents, and responsive to all agents being inactive, selecting an agent and activating the selected agent;
the plurality of agents, each agent responsive to being activated by the master dispatcher, for executing an application function, each agent comprising;
a message dispatcher for receiving a signal from the master dispatcher activating the agent, and for dispatching at least one message providing for execution of the application function;
at least one message queue, for receiving and storing at least one message from the master dispatcher and from other sources, and operatively coupled to the message dispatcher and responsive to the agent being active, for passing at least one stored message to the message dispatcher for dispatching; and
a message processor operatively coupled to the message dispatcher and receiving a dispatched message, for executing the application function of the received message.
8 Assignments
0 Petitions
Accused Products
Abstract
An application programming interface facilitates development of portable, multithreaded application programs. An application is a collection of instances of agent classes. Agent classes are organized in class hierarchies because new subclass agents may be derived from existing base class agents. Each agent class has its own message dispatching function; this allows the application programmer to alter the message passing framework provided by the application programming interface. Each agent instance within the program is independent because it is a sub-process aware only of its own data and context. Multithreading is provided by the application programming interface which contains a master dispatcher process non-preemptively allocating time to individual agents. Therefore, an application'"'"'s multithreading capability is independent of the platform'"'"'s operating system. In addition, a thread of execution may be split when the currently activated agent activates the master dispatcher. The application programming interface mediates between the system resources and the application, and maps the user interface of the application to the platform'"'"'s chosen user interface. Therefore, the application and its user interface are portable.
-
Citations
19 Claims
-
1. A system for implementing an agent-based application program on a computer, comprising:
-
a processor; an input device coupled to the processor, for accepting input; an output device coupled to the processor, for providing output; memory unit coupled to the processor, for storing data and program instructions; an operating system, stored in the memory and managing a plurality of processes created by execution of program instructions in the memory unit by the processor; and at least one agency application unit coupled to the processor and managing a plurality of agents stored in the memory unit, and including; a master dispatcher coupled to the plurality of agents, for receiving from, and sending messages to the agents, and responsive to all agents being inactive, selecting an agent and activating the selected agent; the plurality of agents, each agent responsive to being activated by the master dispatcher, for executing an application function, each agent comprising; a message dispatcher for receiving a signal from the master dispatcher activating the agent, and for dispatching at least one message providing for execution of the application function; at least one message queue, for receiving and storing at least one message from the master dispatcher and from other sources, and operatively coupled to the message dispatcher and responsive to the agent being active, for passing at least one stored message to the message dispatcher for dispatching; and a message processor operatively coupled to the message dispatcher and receiving a dispatched message, for executing the application function of the received message. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented process for controlling agent operation in an agent-based application program having a plurality of agents, comprising the steps of:
-
responsive to all agents being inactive, performing the substeps of; selecting an agent; and activating the selected agent; responsive to at least one agent being active, the agent performing the operations of; receiving at least one message from a source external to the agent, or from the agent itself, the message providing for the execution of an application function; storing received messages in a message queue coupled to the agent; determining if the message queue contains at least one message; responsive to the message queue containing at least one message, removing a message from the message queue and performing an application function according to the message; and responsive to the message queue being empty, designating the agent as inactive. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
Specification