Skip to main content

The ToolBus coordination architecture

  • Regular Papers
  • Conference paper
  • First Online:
Coordination Languages and Models (COORDINATION 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1061))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. R. Allen and D. Garlan. Formal connectors. Technical Report CMU-CS-94-115, School of Computer Science, Carnegie Mellon University, 1994.

    Google Scholar 

  2. 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. Specification of Abstract Syntax Notation One (ASN-1). 1987. ISO 8824.

    Google Scholar 

  4. 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. 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. J. Bertot and I. Jacobs. Sophtalk tutorials. Technical Report 149, INRIA, 1993.

    Google Scholar 

  7. F.M.T. Brazier and D. Johansen. Distributed open systems. IEEE Computer Society Press, 1994.

    Google Scholar 

  8. J.A. Bergstra and J.W. Klop. Process algebra for synchronous communication. Information & Control, 60:82–95, 1984.

    Google Scholar 

  9. 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. J.A. Bergstra and P. Klint. The Discrete Time ToolBus. Technical Report P9502, Programming Research Group, University of Amsterdam, 1995.

    Google Scholar 

  11. D. Bosscher, A. S. Klusener, and J.W.C. Koorn. A simulator for process algebra specifications with the ToolBus. to appear.

    Google Scholar 

  12. E. Black. The Atherton software backplane. In [Dal93], pages 85–96, 1993.

    Google Scholar 

  13. J. Banatre and D.L. Metayer. Programming by multiset transformations. Science of Computer Programming, 15:55–77, 1990.

    Google Scholar 

  14. M. Boasson. Control systems software. IEEE Transactions on Automatic Control, 38(7):1094–1106, 1993.

    Google Scholar 

  15. 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. T. Bullens. private communication, 1994.

    Google Scholar 

  17. J.C.M. Baeten and W.P. Weijland. Process Algebra. Cambridge University Press, 1990.

    Google Scholar 

  18. N. Carriero and D. Gelernter. Linda in context. Communications of the ACM, 32(4):444–458, 1989.

    Google Scholar 

  19. 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. B. Cox. Object-oriented programming: an evolutionary approach. Addison-Wesley, 1986.

    Google Scholar 

  21. L. Cardelli and R. Pike. Squeak: a language for communication with mice. Computer Graphics, 19(3):199–204, 1985.

    Google Scholar 

  22. R. Daley, editor. Integration technology for CASE. Avebury Technical, Ashgate Publishing Company, 1993.

    Google Scholar 

  23. S. Dissoubray. Using Esterel for control integration. In GIPE II: ESPRIT project 2177, Sixth review report. January 1994.

    Google Scholar 

  24. R. Engelmore and T. Morgan, editors. Blackboard systems. Addison-Wesley, 1988.

    Google Scholar 

  25. D. Gelernter and N. Carriero. Coordination languages and their significance. Communications of the ACM, 35(2):97–107, 1992.

    Google Scholar 

  26. 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. 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. P. Gibbons. A stub generator for multilanguage RPC in heterogeneous environments. IEEE Transactions on Software Engineering, SE-13:77–87, 1987.

    Google Scholar 

  29. J.F. Groote and A. Ponse. The syntax and semantics of μCRL. Technical Report CS-R9076, CWI, 1990.

    Google Scholar 

  30. M. Green. A survey of three dialogue models. ACM Transactions on Graphics, 5(3):244–275, 1986.

    Google Scholar 

  31. 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. 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. 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. Open Blueprint Introduction. Technical report, IBM Corporation, December 1993.

    Google Scholar 

  35. P. Klint. A meta-environment for generating programming environments. ACM Transactions on Software Engineering and Methodology, 2(2):176–201, 1993.

    Google Scholar 

  36. 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. J. F. Th. Kamperman and H.R. Walters. ARM, abstract rewriting machine. Technical Report CS-R93-30, CWI, 1993.

    Google Scholar 

  38. T.W. Malone and K. Crowston. The interdisciplinary study of coordination. ACM Computing Surveys, 26(1):87–119, 1994.

    Google Scholar 

  39. S. Mauw and G.J. Veltink. A process specification formalism. Fundamenta Informaticae, pages 85–139, 1990.

    Google Scholar 

  40. 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. B.A. Myers, editor. Languages for developing user interfaces. Jones and Bartlett Publishers, 1992.

    Google Scholar 

  42. P. Olivier. Seal versus the ToolBus. Master's thesis, Programming Research Group, University of Amsterdam, 1994.

    Google Scholar 

  43. Object request broker architecture. Technical Report OMG TC Document 93.7.2, Object Management Group, 1993.

    Google Scholar 

  44. R. Prieto-Diaz and J.M. Neighbors. Module interconnection languages. The Journal of Systems and Software, 6(4):307–334, 1986.

    Google Scholar 

  45. J.M. Purtillo. The Polylith software bus. ACM Transactions on Programming Languages and Systems, 16(1):151–174, 1994.

    Google Scholar 

  46. S. P. Reiss. Connecting tools using message passing in the Field programming environment. IEEE Software, 7(4), July 1990.

    Google Scholar 

  47. R. Snodgrass. The Interface Description Language. Computer Science Press, 1989.

    Google Scholar 

  48. D. Schefström and G. van den Broek, editors. Tool Integration. Wiley, 1993.

    Google Scholar 

  49. Designing and writing a ToolTalk procedural protocol. Technical report, SunSoft, June 1992.

    Google Scholar 

  50. A.S. Tanenbaum and R. van Renesse. Distributed operating systems. ACM Computing Surveys, 17(4):419–470, 1985.

    Google Scholar 

  51. 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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Paolo Ciancarini Chris Hankin

Rights and permissions

Reprints 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

Publish with us

Policies and ethics