CBKB – FORUMTALK
FORUMTALK IS AN INSTANCE OF THE LO MODEL OF COORDINATION. IT GENERALIZES THE LO NOTION OF “FORUM” INTO A NOTION OF SHARED TUPLE-SPACE (GLOBAL FORUM) WHICH AGENTS CAN JOIN OR LEAVE DYNAMICALLY
ForumTalk agents must register to the forum before interacting through it. As opposed to Linda, the tuple space is (logically) non-persistent and non-competitive. This means that, on one hand, when a token is put to the forum, a separate copy of it is distributed to each of the agents which are already registered (in this sense the forum is non competitive), but, on the other hand, there is no memorization of the token for future registrants (in this sense the forum is non persistent). Furthermore, upon registration, each agent must specify the “type” of the tokens it wishes to import/export from/to the forum. This is used to optimize the dispatching of tokens among the agents.
In the current implementation, the forum and the agents which interact through it are supported by distributed Unix processes running Eclipse-Prolog (called coordinating servers). The register process is centralized, but the communication among coordinating servers is direct and does not assume a central repository for the tokens. Agents can be written directly in Prolog, but are rather specified in high-level specification languages which can then be compiled into Prolog. Currently, two kinds of agents are supported: coordinators (which implement sophisticated synchronized manipulations on tokens: specified in LO) and plugs (which support socket-based communication with client applications: specified in FDL). Compilers are available both for LO and FDL.