Thoth – A publish/subscribe architecture for peer-to-peer tool integration

Special section on tool-integration applications and frameworks


In experimental, iterative, and incremental development, the ad hoc use, and consequently integration, of heterogeneous tools supporting actual activities is crucial. This article looks at how peer-to-peer technologies may support such integration scenarios and introduces an architecture, Thoth, for peer-to-peer tool integration built on a publish/subscribe communication abstraction. Seen from an execution viewpoint, the Thoth architecture provides a simple platform for integration in which responsibility for integration is located at peers. Seen from a logical perspective, the Thoth architecture provides a set of object-oriented abstractions for an integration protocol. We present Thoth by means of two case studies of integration.


Tool integration Publish/subscribe Peer-to-peer computing  


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Altherr M, Erzberger M, Maffeis S (1999) iBus – a software bus middleware for the Java platform. In: Proceedings of the workshop on reliable middleware systems of IEEE SRDS’99, pp 43–53Google Scholar
  2. 2.
    Anderson DP, Cobb J, Korpela E, Lebofsky M, Werthimer D (2002) SETI@home: an experiment in public-resource computing. Commun ACM 45(11):56–61CrossRefGoogle Scholar
  3. 3.
    Apple Computer (1995) OpenDoc Programmer’s Guide. Addison–esleyGoogle Scholar
  4. 4.
    Awerbuch B, Tutu C (2002) Maintaining database consistency in peer to peer networks. Technical Report CNDS-2002-2, Department of Computer Science, Johns Hopkins University, Baltimore, MDGoogle Scholar
  5. 5.
    Baehni S, Eugster P, Guerraoui R (2002) OS support for P2P programming: a case for TPS. In: Proceedings of the IEEE conference on distributed computing systems (ICDCS), pp 355–362Google Scholar
  6. 6.
    Barrett DJ, Clarke LA, Tarr PL, Wise AE (1996) A framework for event-based software integration. ACM Trans Softw Eng Methodol 5(4):378–421CrossRefGoogle Scholar
  7. 7.
    Bass L, Clements P, Kazman R (2003) Software architecture in practice, 2nd edn. Addison–Wesley, Reading, MAGoogle Scholar
  8. 8.
    Beck K (1999) Extreme programming explained: embrace change. Addison–Wesley, Reading, MAGoogle Scholar
  9. 9.
    Boger M, Jeckle M, Mueller S, Fransson J (2002) Diagram interchange for UML. In: Proceedings of UML. Springer, Berlin Heidelberg New York, pp 398–411Google Scholar
  10. 10.
    Boudier G, Gallo F, Minot R, Thomas I (1988) An overview of PCTE and PCTE+. In: Proceedings of the 3rd ACM SIGSOFT/SIGPLAN software engineering symposium on practical software development environments. ACM Press, New York, pp 248–257Google Scholar
  11. 11.
    Braun V, Margaria T, Weise C (1997) Integrating tools in the ETI platform. Int J Softw Tools Technol Transfer 1(1–2):31–48Google Scholar
  12. 12.
    Brockschmidt K (1995) Inside COM. Microsoft’s Component Object Model. Microsoft Press, Redmond, WAGoogle Scholar
  13. 13.
    Carzaniga A, Rosenblum D, Wolf A (2000) Achieving scalability and expressiveness in an Internet-scale event notification service. In: Proceedings of ACM PODC, pp 219–227Google Scholar
  14. 14.
    Clarke I, Hong T, Sandberg O, Wiley BB (2002) Protecting freedom of information online with Freenet. IEEE Internet Comput 6(1):40–49CrossRefGoogle Scholar
  15. 15.
    Cockburn A (2001) Agile software development: software through people. Addison–Wesley, Reading, MAGoogle Scholar
  16. 16.
    Cugola G, Nitto E, Fuggetta A (1998) Exploiting an event-based infrastructure to develop complex distributed systems. In: Proceedings of ICSE’98, pp 261–270Google Scholar
  17. 17.
    Damm C, Hansen K, Thomsen M (2000) Tool support for object-oriented cooperative design: gesture-based modeling on an electronic whiteboard. In: Proceedings of CHI 2000, ACM conference on human factors in computing systems. CHI Lett 2(1):518–525Google Scholar
  18. 18.
    Damm C, Hansen K, Thomsen M, Tyrsted M (2000) Creative object-oriented modelling: support for creativity, flexibility, and collaboration in CASE tools. In: Proceedings of ECOOP’2000, pp 27–43Google Scholar
  19. 19.
    Damm C, Hansen K, Thomsen M, Tyrsted M (2000) Tool integration: experiences and issues in using XMI and component technology. In: Proceedings of TOOLS Europe’2000, pp 94–107Google Scholar
  20. 20.
    Damm CH (2003) Collaborative software development. design and implementation of tools for object-oriented modelling. PhD thesis, University of Aarhus, DenmarkGoogle Scholar
  21. 21.
    Edwards WK, Newman MW, Sedivy JZ, Smith TF, Balfanz D, Smetters DK, Wong HC, Izadi S (2002) Using Speakeasy for ad hoc peer-to-peer collaboration. In: Proceedings of the 2002 ACM conference on computer supported cooperative work. ACM Press, New York, pp 256–265Google Scholar
  22. 22.
    Eugster P (2001) Type-based publish/subscribe. PhD thesis, EPFL, Lausanne, SwitzerlandGoogle Scholar
  23. 23.
    Eugster P, Guerraoui R, Damm C (2001) On objects and events. In: Proceedings of ACM OOPSLA’2001, pp 254–269Google Scholar
  24. 24.
    Fiege L, Mezini M, Mühl G, Buchmann A (2002) Engineering event-based systems with scopes. In: Proceedings of the ECOOP 2002. Springer, Berlin Heidelberg New York, pp 309–333Google Scholar
  25. 25.
    Fowler M (2003) The new methodology. Scholar
  26. 26.
    Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns. Elements of reusable software. Addison–Wesley, Reading, MAGoogle Scholar
  27. 27.
    Gerety C (1990) HP SoftBench: a new generation of software development tools. Hewlett–Packard J 41(3):48–58Google Scholar
  28. 28.
    Grønbaek K, Gundersen K, Mogensen P, Orbaek P (2001) Interactive room support for complex and distributed design projects. In: Hirose M (ed) Proceedings of Interact’01, IFIP, pp 407–414Google Scholar
  29. 29.
    Grønbaek K, Kyng M, Mogensen P (1997) Toward a cooperative experimental system development approach. In: Kyng M, Mathiassen L (eds) Computers and design in context. MIT Press, Cambridge, MA, pp 201–238Google Scholar
  30. 30.
    Hansen KM, Damm CH (2002) Instant collaboration: using context-aware instant messaging for session management in distributed collaboration tools. In: Proceedings of NordiCHI, pp 279–282Google Scholar
  31. 31.
    Hansen K, Damm C (2004) Building flexible, distributed collaboration tools using type-based publish/subscribe – the Distributed Knight case. In: Proceedings of the IASTED international conference on software engineering, pp 595–600Google Scholar
  32. 32.
    Hofmeister C, Nord R, Soni D (2000) Applied software architecture. Addison–Wesley Object Technology SeriesGoogle Scholar
  33. 33.
    OMG (2000) XML Metadata Interchange 1.0. Technical Report formal/2000-06-01, Object Management GroupGoogle Scholar
  34. 34.
    OMG (2000) XML Metadata Interchange 1.1. Technical Report formal/00-11-02, Object Management GroupGoogle Scholar
  35. 35.
    OMG (2001) Common Warehouse Metamodel specification 1.0. Technical Report ad/01-02-01, Object Management GroupGoogle Scholar
  36. 36.
    OMG (2001) Meta Object Facility 1.3.1. Technical Report formal/01-11-02, Object Management GroupGoogle Scholar
  37. 37.
    OMG (2001) Unified Modeling Language specification 1.4. Technical Report formal/01-09-67, Object Management GroupGoogle Scholar
  38. 38.
    OMG (2002) Common Object Request Broker Architecture: Core specification. Technical Report formal/02-12-06, Object Management GroupGoogle Scholar
  39. 39.
    Oram A (ed) (2001) Peer-to-peer. Harnessing the power of disruptive technologies. O’Reilly, Sebastopol, CAGoogle Scholar
  40. 40.
    Ousterhout J (1994) Tcl and the Tk Toolkit. Addison–WesleyGoogle Scholar
  41. 41.
    Patrick PB (1993) CASE integration using ACA services. DIGITAL Tech J 5(2):84–99Google Scholar
  42. 42.
    Purtilo JM (1994) The POLYLITH software bus. ACM Trans Programm Lang Syst 16(1):151–174CrossRefGoogle Scholar
  43. 43.
    Reiss S (1990) Connecting tools using message passing in the FIELD environment. IEEE Softw 7(7):57–66CrossRefGoogle Scholar
  44. 44.
    Reiss SP (1999) The Desert environment. ACM Trans Softw Eng Methodol 8(4):297–342CrossRefGoogle Scholar
  45. 45.
    Rogerson D (1997) Inside COM. Microsoft’s Component Object Model. Microsoft Press, Redmond, WAGoogle Scholar
  46. 46.
    Rowstron A, Druschel P (2001) Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems. In: IFIP/ACM international conference on distributed systems platforms (Middleware), pp 329–350Google Scholar
  47. 47.
    Stapleton J (1997) DSDM Dynamic Systems Development Method: the method in practice. Addison–Wesley, Reading, MAGoogle Scholar
  48. 48.
    Taylor RN, Dashofy EM (2001) Function follows form: architecture and 21st century software engineering. In: Proceedings of the Vanderbilt workshop on new visions for software design and productivity: research and applicationsGoogle Scholar
  49. 49.
    Thomas I, Nejmeh BA (1992) Definitions of tool integration for environments. IEEE Softw 9(2):29–35CrossRefGoogle Scholar
  50. 50.
    TIBCO (1999) TIB/Rendezvous white paper. Technical Report. Scholar
  51. 51.
    Warmer J, Kleppe A (1999) The Object Constraint Language: precise modeling with UML. Addison–Wesley, Reading, MAGoogle Scholar

Copyright information

© Springer-Verlag 2004

Authors and Affiliations

  1. 1.Computer Science DepartmentUniversity of AarhusAarhus NDenmark

Personalised recommendations