The toolbus coordination architecture
Publication date
1996
Authors
Bergstra, J.A.
Klint, P.
Editors
Advisors
Supervisors
DOI
Document Type
Article in proceedings
Metadata
Show full item recordCollections
License
Abstract
Building large, heterogeneous, distributed software systems poses serious problems for
the software engineer; achieving interoperability of software systems is still a major challenge. We
describe an experiment in designing a generic software architecture for solving these problems. To
get control over the possible interactions between software components ("tools") we forbid direct
inter-tool communication. Instead, all interactions are controlled by a "script" that formalizes all the
desired interactions among tools. This leads to a component interconnection architecture resembling
a hardware communication bus, and therefore we will call it a "TooLBus'.
We describe the coordination of tools in process-oriented "T scripts" featuring, amongst others, (1)
sequential composition, choice and iteration of processes; (2) handshaking (synchronous) communication
of messages; (3) esynchronous communication of notes to an arbitrary number of processes;
(4) note subscription; (5) dynamic process creation. Most notably lacking are built-in datatypes:
operations on data can only be performed by tools, giving opportunities for efficient implementation,
In three large case studies, the TooLBus architecture has been used to build editor-interfaces with
user-defined extensions, to study feature interaction in intelligent networks, and to build a simulator
for traffic light control. We give an overview of these case studies and briefly sketch the evolution
of the TooLBUS design that incorporates the lessons we have learned from them.