This service is used by components to tell the node the initial
quiescence numbering and to toggle between quiescence and
non-quiescence.
"Quiescence" is partially a node-local concept, where all local
agents have completed processing, and a society-wide concept,
where all inter-agent messages have been delivered. The
EventService is used to report node-local quiescence and
incoming/outgoing message numbers to an external script that
detects society-wide quiescence. Quiescence detection is
primarily an execution-time planning tool used to advance the
execution time (
DemoControlService ) past idle planning
time (e.g. advance a day once all agents have planned the current
day).
Usually blackboard activity is enough to detect quiescence,
but a component that runs in a separate thread or queues work
must often tell the node that the agent is non-quiescent even
though blackboard activity has ceased.
|