The ToolBus - a component interconnection architecture

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 tool interactions in process-oriented \ToolBus scripts" featuring, amongst others, (1) sequential composition, choice and iteration of processes; (2) handshaking (synchronous) communication of messages; (3) asynchronous 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 eecient implementation. We present the ToolBus architecture at ve diierent levels of abstraction: (1) motivation and informal overview; (2) description of the intended meaning of ToolBus scripts using Process Algebra; (3) algebraic speciication (in Asf+Sdf) of a prototype interpreter for ToolBus scripts; (4) examples of ToolBus scripts; (5) experimental C implementation of a ToolBus interpreter. The results of this experiment can be viewed from two diierent angles. The ToolBus architecture itself seems to be one feasible approach to the component interconnection problem, while the method used to arrive at this design has some merits of its own. The orchestrated use of process theory for design, algebraic speciication for rapid prototyping, and C for experimental implementation, leads to a versatile framework for experimentation and implementation at aaordable costs. Note: The systematic use of the iteration operator has been inspired by simultaneous work BBP94] in the context of the ESPRIT Basic Research Action CONFER no. 6454. It may serve as an illustration of the practical value of an iteration operator in Process Algebra.

[1]  Brian N. Bershad,et al.  A Remote Procedure Call Facility for Interconnecting Heterogeneous Computer Systems , 1987, IEEE Transactions on Software Engineering.

[2]  J. W. C. Koorn,et al.  Building an Editor From Existing Components: An Exercise in Software Re-Use , 1993 .

[3]  P.R.H. Hendriks,et al.  Lists and associative functions in algebraic specifications : semantics and implementation , 1989 .

[4]  Frits W. Vaandrager,et al.  Process algebra semantics of POOL , 1992 .

[5]  Paul Klint,et al.  A meta-environment for generating programming environments , 1989, TSEM.

[6]  Jan Friso Groote,et al.  Syntax and semantics of CRL , 1995 .

[7]  Ralph D. Hill,et al.  Supporting concurrency, communication, and synchronization in human-computer interaction—the Sassafras UIMS , 1986, TOGS.

[8]  Mark Green,et al.  A survey of three dialogue models , 1986, TOGS.

[9]  GarlanDavid,et al.  Low-cost, adaptable tool integration policies for integrated environments , 1990 .

[10]  Jan van den Bos,et al.  Abstract interaction tools: a language for user interface management systems , 1988, TOPL.

[11]  Brad A. Myers,et al.  Languages for developing user interfaces , 1992 .

[12]  Deborah Hix,et al.  Human-computer interface development: concepts and systems for its management , 1989, CSUR.

[13]  Paul Klint,et al.  Incremental generation of lexical scanners , 1992, TOPL.

[14]  John K. Ousterhout,et al.  Tcl and the Tk Toolkit , 1994 .

[15]  James M. Purtilo,et al.  The POLYLITH software bus , 1994, TOPL.

[16]  Paul Klint,et al.  The syntax definition formalism SDF—reference manual— , 1989, SIGP.

[17]  Paul Klint,et al.  Incremental generation of parsers , 1989, PLDI '89.

[18]  D. Corkill Blackboard Systems , 1991 .

[19]  S.F.M. van Vlijmen,et al.  Control and Data Transfer in the Distributed Editor of the ASF+SDF Meta-environment , 1994 .

[20]  James M. Purtilo,et al.  Integrating the heterogeneous control properties of software modules , 1992, SDE 5.