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) 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 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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
R. Allen and D. Garlan. Formal connectors. Technical Report CMU-CS-94-115, School of Computer Science, Carnegie Mellon University, 1994.
F. Arbab, I. Herman, and P. Spilling. An overview of Manifold and its implementation. Concurrency: Practice and Experience, 5:23–70, 1993.
Specification of Abstract Syntax Notation One (ASN-1). 1987. ISO 8824.
B. Bershad, D. Ching, E. Lazowsky, J. Sanislo, and M. Schwartz. A remote procedure call facility for interconnecting heterogeneous computer systems. IEEE Transactions on Software Engineering, SE-13:880–894, 1987.
J.A. Bergstra, J. Heering, and P. Klint, editors. Algebraic Specification. ACM Press Frontier Series. The ACM Press in co-operation with Addison-Wesley, 1989.
J. Bertot and I. Jacobs. Sophtalk tutorials. Technical Report 149, INRIA, 1993.
F.M.T. Brazier and D. Johansen. Distributed open systems. IEEE Computer Society Press, 1994.
J.A. Bergstra and J.W. Klop. Process algebra for synchronous communication. Information & Control, 60:82–95, 1984.
J.A. Bergstra and P. Klint. The ToolBus—a component interconnection architecture. Technical Report P9408, Programming Research Group, University of Amsterdam, 1994.
J.A. Bergstra and P. Klint. The Discrete Time ToolBus. Technical Report P9502, Programming Research Group, University of Amsterdam, 1995.
D. Bosscher, A. S. Klusener, and J.W.C. Koorn. A simulator for process algebra specifications with the ToolBus. to appear.
E. Black. The Atherton software backplane. In [Dal93], pages 85–96, 1993.
J. Banatre and D.L. Metayer. Programming by multiset transformations. Science of Computer Programming, 15:55–77, 1990.
M. Boasson. Control systems software. IEEE Transactions on Automatic Control, 38(7):1094–1106, 1993.
E. Brinksma, editor. Information processing systems-open systems interconnection-LOTOS-a formal description technique based on the temporal ordering of observational behaviour. 1987. ISO/TC97/SC21.
T. Bullens. private communication, 1994.
J.C.M. Baeten and W.P. Weijland. Process Algebra. Cambridge University Press, 1990.
N. Carriero and D. Gelernter. Linda in context. Communications of the ACM, 32(4):444–458, 1989.
D. Clément. A distributed architecture for programming environments. In Proceedings of the 4th ACM SIGSOFT Symposium on Software Development Environments, pages 11–21, 1990. Sofware Engineering Notes, Volume 15.
B. Cox. Object-oriented programming: an evolutionary approach. Addison-Wesley, 1986.
L. Cardelli and R. Pike. Squeak: a language for communication with mice. Computer Graphics, 19(3):199–204, 1985.
R. Daley, editor. Integration technology for CASE. Avebury Technical, Ashgate Publishing Company, 1993.
S. Dissoubray. Using Esterel for control integration. In GIPE II: ESPRIT project 2177, Sixth review report. January 1994.
R. Engelmore and T. Morgan, editors. Blackboard systems. Addison-Wesley, 1988.
D. Gelernter and N. Carriero. Coordination languages and their significance. Communications of the ACM, 35(2):97–107, 1992.
C. Geretty. HP softbench: a new generation of software development tools. Technical Report SESD-89-25, Hewlett-Packard Software Engineering Systems Division, Fort Collins, Colorado, 1988.
D. Garlan and E. Ilias. Low-cost, adaptable tool integration policies for integrated environments. In Proceedings of the 4th ACM SIGSOFT Symposium on Software Develpment Environments, pages 1–10, 1990. Sofware Engineering Notes, Volume 15.
P. Gibbons. A stub generator for multilanguage RPC in heterogeneous environments. IEEE Transactions on Software Engineering, SE-13:77–87, 1987.
J.F. Groote and A. Ponse. The syntax and semantics of μCRL. Technical Report CS-R9076, CWI, 1990.
M. Green. A survey of three dialogue models. ACM Transactions on Graphics, 5(3):244–275, 1986.
H. R. Hartson and D. Hix. Human-computer interface development: concepts and systems for its management. ACM Computing Surveys, 21(1):5–92, 1989.
J. Heering, P.R.H. Hendriks, P. Klint, and J. Rekers. The syntax definition formalism SDF — reference manual. SIGPLAN Notices, 24(11):43–75, 1989.
R. D. Hill. Supporting concurrency, communication, and synchronization in human-computer interaction—the Sassafras UIMS. ACM Transactions on Graphics, 5(3):179–210, 1986.
Open Blueprint Introduction. Technical report, IBM Corporation, December 1993.
P. Klint. A meta-environment for generating programming environments. ACM Transactions on Software Engineering and Methodology, 2(2):176–201, 1993.
J. W.C. Koorn. Connecting semantic tools to a syntax-directed user-interface. Technical Report P9222, Programming Research Group, University of Amsterdam, 1992.
J. F. Th. Kamperman and H.R. Walters. ARM, abstract rewriting machine. Technical Report CS-R93-30, CWI, 1993.
T.W. Malone and K. Crowston. The interdisciplinary study of coordination. ACM Computing Surveys, 26(1):87–119, 1994.
S. Mauw and G.J. Veltink. A process specification formalism. Fundamenta Informaticae, pages 85–139, 1990.
S. Mauw and G.J. Veltink, editors. Algebraic specification of communication protocols, volume 36 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1993.
B.A. Myers, editor. Languages for developing user interfaces. Jones and Bartlett Publishers, 1992.
P. Olivier. Seal versus the ToolBus. Master's thesis, Programming Research Group, University of Amsterdam, 1994.
Object request broker architecture. Technical Report OMG TC Document 93.7.2, Object Management Group, 1993.
R. Prieto-Diaz and J.M. Neighbors. Module interconnection languages. The Journal of Systems and Software, 6(4):307–334, 1986.
J.M. Purtillo. The Polylith software bus. ACM Transactions on Programming Languages and Systems, 16(1):151–174, 1994.
S. P. Reiss. Connecting tools using message passing in the Field programming environment. IEEE Software, 7(4), July 1990.
R. Snodgrass. The Interface Description Language. Computer Science Press, 1989.
D. Schefström and G. van den Broek, editors. Tool Integration. Wiley, 1993.
Designing and writing a ToolTalk procedural protocol. Technical report, SunSoft, June 1992.
A.S. Tanenbaum and R. van Renesse. Distributed operating systems. ACM Computing Surveys, 17(4):419–470, 1985.
J. van den Bos. Abstract interaction tools: a language for user interface management systems. ACM Transactions on Programming Languages and Systems, 14(2):215–247, 1988.
E. L. White and J. M. Purtilo. Integrating the heterogeneous control properties of software modules. In Proceedings of the 5th ACM SIGSOFT Symposium on Software Development Environments, pages 99–108, 1992. Software Engineering Notes, Volume 17.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bergstra, J.A., Klint, P. (1996). The ToolBus coordination architecture. In: Ciancarini, P., Hankin, C. (eds) Coordination Languages and Models. COORDINATION 1996. Lecture Notes in Computer Science, vol 1061. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61052-9_40
Download citation
DOI: https://doi.org/10.1007/3-540-61052-9_40
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61052-6
Online ISBN: 978-3-540-49936-7
eBook Packages: Springer Book Archive