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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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.
D. Powell (editor). Group Communications In Communications of the ACM, 39(4), pp. 50–97, 1996.
Talarian Corporation. Everything You need to know about Middleware: Mission-Critical Interprocess Communication (White Paper), http://www.talarian.com, 1999.
TIBCO Inc. http://www.rv.tibco.com/whitepaper.html, 1999.
D. Skeen. Vitria’s Publish-Subscribe Architecture: Publish-Subscribe Overview. http://www.vitria.com, 1999
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.
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.
Digital Equipment Corporation. DECMessageQ: Introduction to Message Queuing, 1994
BEA Systems Inc. Reliable Queuing Using BEA Tuxedo: White Paper. http://www.beasys.com/products/tuxedo/, 2000.
Microsoft Corporation. Microsoft Message Queuing Services, 1997.
D. Schmidt and S. Vinoski. Overcoming Drawbacks in the OMG Event Service. In SIGS C++ Report magazine, 1997.
E. Gamma, R. Helm and R. Johnson and J. Vlissides. Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
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.
K.P. Birman. The Process Group Approach to Reliable Distributed Computing. In Communications of the ACM, 36(12), pp. 36–53, 1993.
D. Gelernter. Generative Communication in Linda. In Transactions on Programming Languages and Systems (TOPLAS), ACM, 7(1), pp. 80–112, 1985.
OMG. CORBAservices: Common Object Services Specification. OMG, 1998
ObjectSpace. JGL-Generic Collection Library. http://www.objectspace.com/products/jgl/, 1999.
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.
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.
D. Caromel. Towards a Method of Object-Oriented Concurrent Programming. In Communications of the ACM, 36, pp. 90–102, 1993.
M. Happner and R. Burridge and R. Sharma. Java Message Service. Sun Microsystems Inc., 1998.
OMG. Notification Service — Joint revised submission. OMG, 1998.
K. Arnold and B. O’Sullivan and R.W. Scheifler and J. Waldo and J. Wollrath. The Jini Specification. Addison-Wesley, 1999.
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.
E. Freeman and S. Hupfer and K. Arnold. JavaSpaces Principles, Patterns, and Practice. Addison-Wesley, 1999.
IBM. MQSeries: Using Java. IBM, 2000.
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.
J. Waldo, G. Wyant and A. Wollrath and S. Kendall. A Note on Distributed Computing. Sun Microsystems Inc., 1994.
D. Lea. Design for open systems in Java. In 2nd International Conference on Coordination Models and Languages, 1997.
R. Guerraoui. What object-oriented distributed programming does not have to be and what it may be. In Informatik, 2, 1999.
Microsoft Co. DCOM Technical Overview (White Paper). Microsoft Co., 1999.
Sun Microsystems Inc. Java Remote Method Invocation — Distributed Computing for Java (White Paper). Sun Microsystems Inc., 1999.
OMG. The Common Object Request Broker: Architecture and Specification. OMG, 1999.
P. Koenig. Messages vs. Objects for Application Integration. In Distributed Computing, 2(3), pp. 44–45, 1999.
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.
J. Waldo and G. Wyant and A. Wollrath and S. Kendall. Events in an RPC Based Distributed System. Sun Microsystems Laboratories Inc., 1995.
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.
Sun Microsystems Inc. The Java Platform 1.2 API Specification. Sun Microsystems Inc. http://java.sun.com/products/jdk/l.2/, 1999.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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