The ToolBus coordination architecture

  • J. A. Bergstra
  • P. Klint
Regular Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1061)


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.


Control Integration Tool Integration Object Management Group Intelligent Network Interprocess Communication 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AG94]
    R. Allen and D. Garlan. Formal connectors. Technical Report CMU-CS-94-115, School of Computer Science, Carnegie Mellon University, 1994.Google Scholar
  2. [AHS93]
    F. Arbab, I. Herman, and P. Spilling. An overview of Manifold and its implementation. Concurrency: Practice and Experience, 5:23–70, 1993.Google Scholar
  3. [ASN87]
    Specification of Abstract Syntax Notation One (ASN-1). 1987. ISO 8824.Google Scholar
  4. [BCL+87]
    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.Google Scholar
  5. [BHK89]
    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.Google Scholar
  6. [BJ93]
    J. Bertot and I. Jacobs. Sophtalk tutorials. Technical Report 149, INRIA, 1993.Google Scholar
  7. [BJ94]
    F.M.T. Brazier and D. Johansen. Distributed open systems. IEEE Computer Society Press, 1994.Google Scholar
  8. [BK84]
    J.A. Bergstra and J.W. Klop. Process algebra for synchronous communication. Information & Control, 60:82–95, 1984.Google Scholar
  9. [BK94]
    J.A. Bergstra and P. Klint. The ToolBus—a component interconnection architecture. Technical Report P9408, Programming Research Group, University of Amsterdam, 1994.Google Scholar
  10. [BK95]
    J.A. Bergstra and P. Klint. The Discrete Time ToolBus. Technical Report P9502, Programming Research Group, University of Amsterdam, 1995.Google Scholar
  11. [BKK]
    D. Bosscher, A. S. Klusener, and J.W.C. Koorn. A simulator for process algebra specifications with the ToolBus. to appear.Google Scholar
  12. [Bla93]
    E. Black. The Atherton software backplane. In [Dal93], pages 85–96, 1993.Google Scholar
  13. [BM90]
    J. Banatre and D.L. Metayer. Programming by multiset transformations. Science of Computer Programming, 15:55–77, 1990.Google Scholar
  14. [Boa93]
    M. Boasson. Control systems software. IEEE Transactions on Automatic Control, 38(7):1094–1106, 1993.Google Scholar
  15. [Bri87]
    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.Google Scholar
  16. [Bul94]
    T. Bullens. private communication, 1994.Google Scholar
  17. [BW90]
    J.C.M. Baeten and W.P. Weijland. Process Algebra. Cambridge University Press, 1990.Google Scholar
  18. [CG89]
    N. Carriero and D. Gelernter. Linda in context. Communications of the ACM, 32(4):444–458, 1989.Google Scholar
  19. [Clé90]
    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.Google Scholar
  20. [Cox86]
    B. Cox. Object-oriented programming: an evolutionary approach. Addison-Wesley, 1986.Google Scholar
  21. [CP85]
    L. Cardelli and R. Pike. Squeak: a language for communication with mice. Computer Graphics, 19(3):199–204, 1985.Google Scholar
  22. [Dal93]
    R. Daley, editor. Integration technology for CASE. Avebury Technical, Ashgate Publishing Company, 1993.Google Scholar
  23. [Dis94]
    S. Dissoubray. Using Esterel for control integration. In GIPE II: ESPRIT project 2177, Sixth review report. January 1994.Google Scholar
  24. [EM88]
    R. Engelmore and T. Morgan, editors. Blackboard systems. Addison-Wesley, 1988.Google Scholar
  25. [GC92]
    D. Gelernter and N. Carriero. Coordination languages and their significance. Communications of the ACM, 35(2):97–107, 1992.Google Scholar
  26. [Ger88]
    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.Google Scholar
  27. [GI90]
    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.Google Scholar
  28. [Gib87]
    P. Gibbons. A stub generator for multilanguage RPC in heterogeneous environments. IEEE Transactions on Software Engineering, SE-13:77–87, 1987.Google Scholar
  29. [GP90]
    J.F. Groote and A. Ponse. The syntax and semantics of μCRL. Technical Report CS-R9076, CWI, 1990.Google Scholar
  30. [Gre86]
    M. Green. A survey of three dialogue models. ACM Transactions on Graphics, 5(3):244–275, 1986.Google Scholar
  31. [HH89]
    H. R. Hartson and D. Hix. Human-computer interface development: concepts and systems for its management. ACM Computing Surveys, 21(1):5–92, 1989.Google Scholar
  32. [HHKR89]
    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.Google Scholar
  33. [Hil86]
    R. D. Hill. Supporting concurrency, communication, and synchronization in human-computer interaction—the Sassafras UIMS. ACM Transactions on Graphics, 5(3):179–210, 1986.Google Scholar
  34. [IBM93]
    Open Blueprint Introduction. Technical report, IBM Corporation, December 1993.Google Scholar
  35. [Kli93]
    P. Klint. A meta-environment for generating programming environments. ACM Transactions on Software Engineering and Methodology, 2(2):176–201, 1993.Google Scholar
  36. [Koo92]
    J. W.C. Koorn. Connecting semantic tools to a syntax-directed user-interface. Technical Report P9222, Programming Research Group, University of Amsterdam, 1992.Google Scholar
  37. [KW93]
    J. F. Th. Kamperman and H.R. Walters. ARM, abstract rewriting machine. Technical Report CS-R93-30, CWI, 1993.Google Scholar
  38. [MC94]
    T.W. Malone and K. Crowston. The interdisciplinary study of coordination. ACM Computing Surveys, 26(1):87–119, 1994.Google Scholar
  39. [MV90]
    S. Mauw and G.J. Veltink. A process specification formalism. Fundamenta Informaticae, pages 85–139, 1990.Google Scholar
  40. [MV93]
    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.Google Scholar
  41. [Mye92]
    B.A. Myers, editor. Languages for developing user interfaces. Jones and Bartlett Publishers, 1992.Google Scholar
  42. [Oli94]
    P. Olivier. Seal versus the ToolBus. Master's thesis, Programming Research Group, University of Amsterdam, 1994.Google Scholar
  43. [ORB93]
    Object request broker architecture. Technical Report OMG TC Document 93.7.2, Object Management Group, 1993.Google Scholar
  44. [PDN86]
    R. Prieto-Diaz and J.M. Neighbors. Module interconnection languages. The Journal of Systems and Software, 6(4):307–334, 1986.Google Scholar
  45. [Pur94]
    J.M. Purtillo. The Polylith software bus. ACM Transactions on Programming Languages and Systems, 16(1):151–174, 1994.Google Scholar
  46. [Rei90]
    S. P. Reiss. Connecting tools using message passing in the Field programming environment. IEEE Software, 7(4), July 1990.Google Scholar
  47. [Sno89]
    R. Snodgrass. The Interface Description Language. Computer Science Press, 1989.Google Scholar
  48. [SvdB93]
    D. Schefström and G. van den Broek, editors. Tool Integration. Wiley, 1993.Google Scholar
  49. [TOO92]
    Designing and writing a ToolTalk procedural protocol. Technical report, SunSoft, June 1992.Google Scholar
  50. [TvR85]
    A.S. Tanenbaum and R. van Renesse. Distributed operating systems. ACM Computing Surveys, 17(4):419–470, 1985.Google Scholar
  51. [vdB88]
    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.Google Scholar
  52. [WP92]
    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.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • J. A. Bergstra
    • 1
    • 2
  • P. Klint
    • 3
    • 1
  1. 1.Programming Research GroupUniversity of AmsterdamDB AmsterdamThe Netherlands
  2. 2.Department of PhilosophyUtrecht UniversityCS UtrechtThe Netherlands
  3. 3.Department of Software TechnologyCentre for Mathematics and Computer ScienceAB AmsterdamThe Netherlands

Personalised recommendations