Skip to main content

Abstract

Collections are widely used as a basic programming abstraction to store, retrieve and manipulate objects. There are different known types of collections (e.g., sets, bags, queues), offering various semantics for different application purposes. A collection can offer a distributed flavor, that is, it can be accessible from various nodes of a network. The elements of such a collection are thus shared between the different nodes, and a distributed collection can be viewed as a means of exchanging information between components, in a way similar to a shared memory. This chapter presents Distributed Asynchronous Collections (DACs). Roughly spoken, a DAC is capable of calling back an interested party in order to notify for instance the insertion or removal of elements. By viewing the elements of our Distributed Asynchronous Collections (DACs) as events, these collections can be seen as programming abstractions for asynchronous distributed interaction, enabling the loose coupling of components. In that sense, the DACs we present in this chapter marry the two worlds of object-orientation and event-based, so-called “message-oriented”, middleware. DACs are general enough to capture the commonalities of various message-oriented interaction styles, like message queuing and publish/subscribe interaction, and flexible enough to allow the exploitation of the differences between these styles.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 219.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. B. Oki and M. Pfluegl and A. Siegel and D. Skeen. The Information Bus — An Architecture for Extensible Distributed Systems. In 14th ACM Symposium on Operating System Principles, pp. 58–68, 1993.

    Google Scholar 

  2. D. Powell (editor). Group Communications In Communications of the ACM, 39(4), pp. 50–97, 1996.

    Google Scholar 

  3. Talarian Corporation. Everything You need to know about Middleware: Mission-Critical Interprocess Communication (White Paper), http://www.talarian.com, 1999.

    Google Scholar 

  4. TIBCO Inc. http://www.rv.tibco.com/whitepaper.html, 1999.

  5. D. Skeen. Vitria’s Publish-Subscribe Architecture: Publish-Subscribe Overview. http://www.vitria.com, 1999

    Google Scholar 

  6. M. Altherr and M. Erzberger and S. Maffeis. iBus — A Software Bus Middleware for the Java Platform. In Int. Workshop on Reliable Middleware Systems, pp. 43–53, 1999.

    Google Scholar 

  7. B. Blakeley, and H. Harris and J.R.T. Lewis. Messaging and Queuing Using the MQI: Concepts and Analysis, Design and Development McGraw-Hill, 1995.

    Google Scholar 

  8. Digital Equipment Corporation. DECMessageQ: Introduction to Message Queuing, 1994

    Google Scholar 

  9. BEA Systems Inc. Reliable Queuing Using BEA Tuxedo: White Paper. http://www.beasys.com/products/tuxedo/, 2000.

    Google Scholar 

  10. Microsoft Corporation. Microsoft Message Queuing Services, 1997.

    Google Scholar 

  11. D. Schmidt and S. Vinoski. Overcoming Drawbacks in the OMG Event Service. In SIGS C++ Report magazine, 1997.

    Google Scholar 

  12. E. Gamma, R. Helm and  R. Johnson and J. Vlissides. Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

    Google Scholar 

  13. M. Hauswirth and M. Jazayeri. A Component and Communication Model for Push Systems. In ESEC/FSE 99 — Joint 7th European Software Engineering Conference (ESEC) and, 1999.

    Google Scholar 

  14. K.P. Birman. The Process Group Approach to Reliable Distributed Computing. In Communications of the ACM, 36(12), pp. 36–53, 1993.

    Google Scholar 

  15. D. Gelernter. Generative Communication in Linda. In Transactions on Programming Languages and Systems (TOPLAS), ACM, 7(1), pp. 80–112, 1985.

    Google Scholar 

  16. OMG. CORBAservices: Common Object Services Specification. OMG, 1998

    Google Scholar 

  17. ObjectSpace. JGL-Generic Collection Library. http://www.objectspace.com/products/jgl/, 1999.

    Google Scholar 

  18. J.P. Briot and R. Guerraoui and K.P. Lohr. Concurrency, Distribution and Parallelism in Object-Oriented Programming. In ACM Computing Surveys, 30(2), pp. 291–329, 1998.

    Google Scholar 

  19. A. Yonezawa and E. Shibayama and T. Takada and Y. Honda. Modeling and Programming in an Object-Oriented Concurrent Language ABCL/1. In Object-Oriented Concurrent Programming, pp. 55–89, MIT Press, 1993.

    Google Scholar 

  20. D. Caromel. Towards a Method of Object-Oriented Concurrent Programming. In Communications of the ACM, 36, pp. 90–102, 1993.

    Google Scholar 

  21. M. Happner and R. Burridge and R. Sharma. Java Message Service. Sun Microsystems Inc., 1998.

    Google Scholar 

  22. OMG. Notification Service — Joint revised submission. OMG, 1998.

    Google Scholar 

  23. K. Arnold and B. O’Sullivan and R.W. Scheifler and J. Waldo and J. Wollrath. The Jini Specification. Addison-Wesley, 1999.

    Google Scholar 

  24. T. Harrison, and D. Levine and D.C. Schmidt. The Design and Performance of a Real-Time CORBA Event Service. In 12th ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA′97), pp. 184–200, 1997.

    Chapter  Google Scholar 

  25. E. Freeman and S. Hupfer and K. Arnold. JavaSpaces Principles, Patterns, and Practice. Addison-Wesley, 1999.

    Google Scholar 

  26. IBM. MQSeries: Using Java. IBM, 2000.

    Google Scholar 

  27. P. Th. Eugster and R. Guerraoui and J. Sventek. Type-Based Publish/Subscribe. Technical Report 2000-029, Communication Systems Department, Swiss Federal Institute of technology, 2000.

    Google Scholar 

  28. J. Waldo, G. Wyant and A. Wollrath and S. Kendall. A Note on Distributed Computing. Sun Microsystems Inc., 1994.

    Google Scholar 

  29. D. Lea. Design for open systems in Java. In 2nd International Conference on Coordination Models and Languages, 1997.

    Google Scholar 

  30. R. Guerraoui. What object-oriented distributed programming does not have to be and what it may be. In Informatik, 2, 1999.

    Google Scholar 

  31. Microsoft Co. DCOM Technical Overview (White Paper). Microsoft Co., 1999.

    Google Scholar 

  32. Sun Microsystems Inc. Java Remote Method Invocation — Distributed Computing for Java (White Paper). Sun Microsystems Inc., 1999.

    Google Scholar 

  33. OMG. The Common Object Request Broker: Architecture and Specification. OMG, 1999.

    Google Scholar 

  34. P. Koenig. Messages vs. Objects for Application Integration. In Distributed Computing, 2(3), pp. 44–45, 1999.

    Google Scholar 

  35. E. Jul and H. Levy and N. Hutchinson and A. Black. Fine-grained mobility in the Emerald System. In ACM Transactions on Computer Systems, 6(1), pp. 109–133, 1998.

    Google Scholar 

  36. J. Waldo and G. Wyant and A. Wollrath and S. Kendall. Events in an RPC Based Distributed System. Sun Microsystems Laboratories Inc., 1995.

    Google Scholar 

  37. D. Rosenblum and A. Wolf. A Design Framework for Internet-Scale Event Observation and Notification. In 6th European Software Engineering Conference/ACM SIGSOFT 5th Symposium on the Foundations of Software Engineering, 1997.

    Google Scholar 

  38. Sun Microsystems Inc. The Java Platform 1.2 API Specification. Sun Microsystems Inc. http://java.sun.com/products/jdk/l.2/, 1999.

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer Science+Business Media New York

About this chapter

Cite this chapter

Eugster, P.T., Guerraoui, R., Sventek, J. (2002). Loosely Coupled Components. In: Akşit, M. (eds) Software Architectures and Component Technology. The Springer International Series in Engineering and Computer Science, vol 648. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-0883-0_6

Download citation

  • DOI: https://doi.org/10.1007/978-1-4615-0883-0_6

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4613-5286-0

  • Online ISBN: 978-1-4615-0883-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics