Automatically exported from https://code.google.com/p/cppagent/
This C++ class library provides a simple framework for developing soft real-time systems using an agent-based programming model. The library is especially geared toward robotics applications.
The library incorporates ideas from flow-based programming, swarm AI, software componentry, and control theory.
In this context, an agent is a software component which:
- processes and manipulates data streams,
- is autonomous, in that it requires no interaction from users or other agents,
- is entirely decoupled from other system components,
- has no interface (black-box view),
- operates in an independent thread of execution.
- like UDP datagrams, are unreliable,
- unlike UDP datagrams, are ordered,
- unlike objects, are not explicitly bound to methods or events.
The agent-based programming model encourages engineers to design complex systems in terms of simple processing components (agents). Agents are entirely unaware of other agents, making the agent-based model inherently component-based. The server-client model is entirely dismissed, preventing any wait-for-response behavior. In fact, since all inter-agent communication is unreliable, it is impractical to implement any hand shaking between agents. This limitation encourages one-way data streams rather than two-way communication or RPC.