Abstract
Well adapted to the loosely coupled nature of distributed interaction in large-scale applications, the publish/subscribe communication paradigm has recently received increasing attention. With systems based on the publish/subscribe interaction scheme, subscribers register their interest in an event, or a pattern of events, and are subsequently asynchronously notified of events generated by publishers. Many variants of the paradigm have recently been proposed, each variant being specifically adapted to some given application or network model. This paper factors out the common denominator underlying these variants: full decoupling of the communicating entities in time, space, and synchronization. We use these three decoupling dimensions to better identify commonalities and divergences with traditional interaction paradigms. The many variations on the theme of publish/subscribe are classified and synthesized. In particular, their respective benefits and shortcomings are discussed both in terms of interfaces and implementations.
- Aguilera, M. K., Strom, R. E., Sturman, D. C., Astley, M., and Chandra, T. D. 1999. Matching events in a content-based subscription system. In Proceedings of the Eighteenth ACM Symposium on Principles of Distributed Computing (PODC '99, Atlanta, GA). ACM Press, New York, NY, 53--61.]] Google Scholar
Digital Library
- Altherr, M., Erzberger, M., and Maffeis, S. 1999. iBus---a software bus middleware for the Java platform. In Proceedings of the International Workshop on Reliable Middleware Systems. 43--53.]]Google Scholar
- Altinel, M. and Franklin, M. 2000. Efficient Filtering of XML documents for selective dissemination of information. In Proceedings of the 26th International Conference on Very Large Data Bases (VLDB '00). 53--64.]] Google Scholar
Digital Library
- Ananda, A., Tay, B., and Koch, K. 1992. A survey of asynchronous remote procedure calls. ACM Operat. Syst. Rev. 26, 2 (July), 92--109.]] Google Scholar
Digital Library
- Bacon, J., Moody, K., Bates, J., R. Hayton, Ma, C., McNeil, A., Seidel, O., and Spiteri, M. 2000. Generic support for distributed applications. IEEE Comput. 33, 3 (Mar.), 68--76.]] Google Scholar
Digital Library
- Banavar, G., Chandra, T., Mukherjee, B., Nagarajarao, J., Strom, R., and Sturman, D. 1999a. An efficient multicast protocol for content-based publish-subscribe systems. In Proceedings of the 19th International Conference on Distributed Computing Systems (ICDCS'99).]] Google Scholar
Digital Library
- Banavar, G., Chandra, T., Strom, R., and Sturman, D. 1999b. A case for message oriented middleware. In Proceedings of the 13th International Symposium on Distributed Computing (DISC 99). 1--18.]] Google Scholar
Digital Library
- Banerjee, S., Bhattacharjee, B., and Kommareddy, C. 2002. Scalable application layer multicast. In Proceedings of ACM SIGCOMM. ACM Press, New York, NY.]] Google Scholar
Digital Library
- Birman, K. 1993. The process group approach to reliable distributed computing. Commun. ACM 36, 12 (Dec.), 36--53.]] Google Scholar
Digital Library
- Birman, K., Cooper, R., Joseph, T., Marzullo, K., Makpangou, M., Kane, K., Schmuck, F., and Wood, M. 1990. The Isis System Manual. Dept. of Computer Science, Cornell University, Ithaca, NY.]]Google Scholar
- Birman, K., Hayden, M., O. Ozkasap, Xiao, Z., Budiu, M., and Minsky, Y. 1999. Bimodal multicast. ACM Trans. Comput. Syst. 17, 2 (May), 41--88.]] Google Scholar
Digital Library
- Birrell, A. D. and Nelson, B. J. 1983. Implementing remote procedure calls. In Proceedings of the ACM Symposium on Operating System Principles (Bretton Woods, NH). ACM Press, New York, NY, 3.]] Google Scholar
Digital Library
- Blakeley, B., Harris, H., and Lewis, J. 1995. Messaging and Queuing Using the MQI. McGraw-Hill, New York, NY.]] Google Scholar
Digital Library
- Campailla, A., Chaki, S., Clarke, E., Jha, S., and Veith, H. 2001. Efficient filtering in publish-subscribe systems using binary decision. In Proceedings of the International Conference on Software Engineering. 443--452.]] Google Scholar
Digital Library
- Caromel, D. 1993. Towards a method of object-oriented concurrent programming. Commun. ACM 36, 90--102.]] Google Scholar
Digital Library
- Carzaniga, A., Rosenblum, D., and Wolf, A. 2000. Achieving scalability and expressiveness in an Internet-scale event notification service. In Proceedings of the Nineteenth ACM Symposium on Principles of Distributed Computing (PODC '00). ACM Press, New York, NY.]] Google Scholar
Digital Library
- Carzaniga, A., Rosenblum, D., and Wolf, A. 2001. Design and evaluation of a wide-area event notification service. ACM Trans. Comput. Syst. 19, 3 (Aug.), 332--383.]] Google Scholar
Digital Library
- Castro, M., Druschel, P., Kermarrec, A.-M., and Rowstron, A. 2002. SCRIBE: A large-scale and decentralized application-level multicast infrastructure. IEEE J. Sel. Areas Commun. 20, 8 (Oct.), 1489--1499.]]Google Scholar
Digital Library
- Chan, C.-Y., Fan, W., Felber, P., Garofalakis, M., and Rastogi, R. 2002a. Tree pattern aggregation for scalable XML data dissemination. In Proceedings of the 28th International Conference on Very Large Data Bases (VLDB '02, Hong Kong, China).]]Google Scholar
- Chan, C.-Y., Felber, P., Garofalakis, M., and Rastogi, R. 2002b. Efficient filtering of XML documents with XPath expressions. In Proceedings of the 18th International Conference on Data Engineering (ICDE '02, San Jose, CA).]] Google Scholar
Digital Library
- Chung, P., Huang, Y., Yajnik, S., Liang, D., Shih, J., Wang, C.-Y., and Wang, Y. 1998. DCOM and CORBA side by side, step by step, and layer by layer. C++ Rep. 10, 1 (Jan.), 18--29.]]Google Scholar
- Cugola, G., Nitto, E. D., and Fugetta, A. 2001. The Jedi event-based infrastructure and its application to the development of the opss wfms. IEEE Trans. Softw. Eng. 27, 9 (Sept.), 827--850.]] Google Scholar
Digital Library
- DEC. 1994. DECMessageQ: Introduction to Message Queuing. Digital Equipment Corporation; now part of Hewlett Packard, Palo Alto, CA.]]Google Scholar
- Deering, S. n. d. Host extension for ip multicast. IETF RFC 1112. Internet Engineering Task Force (Web site: www.ietf.org).]] Google Scholar
Digital Library
- Diao, Y., Fischer, P., Franklin, M., and To, R. 2002. YFilter: Efficient and scalable filtering of XML documents. In Proceedings of the 18th International Conference on Data Engineering (ICDE '02, San Jose, CA).]] Google Scholar
Digital Library
- Eugster, P. and Guerraoui, R. 2001. Content-based publish/subscribe with structural reflection. In Proceedings of the 6th Usenix Conference on Object-Oriented Technologies and Systems (COOTS'01).]] Google Scholar
Digital Library
- Eugster, P., Guerraoui, R., and Damm, C. 2001. On objects and events. In Proceedings of the OOPSLA '01 Conference on Object Oriented Programming Systems Languages and Applications. ACM Press, New York, NY, 254--269.]] Google Scholar
Digital Library
- Eugster, P., Guerraoui, R., and Sventek, J. 2000. Distributed Asynchronous Collections: Abstractions for publish/subscribe interaction. In Proceedings of the 14th European Conference on Object-Oriented Programming (ECOOP'2000).]] Google Scholar
Digital Library
- Fabret, F., Jacobsen, H., Llirbat, F., Pereira, J., Ross, K., and Shasha, D. 2001. Filtering algorithms and implementations for very fast publish/subscribe systems. In Proceedings of ACM SIGMOD (Santa Barbara, CA). 115--126.]] Google Scholar
Digital Library
- Floyd, S., Jacobson, V., liu, C., McCanne, S., and Zhang, L. 1997. A reliable multicast framework for light-weight sessions and application level framing. IEEE/ACM Trans. Netw. 5, 6, 784--803.]] Google Scholar
Digital Library
- Franklin, M. and Zdonik, S. 1997. A framework for scalable dissemination-based systems. In Proceedings of the 12th ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'97). ACM Press, New York, NY, 94--105.]] Google Scholar
Digital Library
- Freeman, E., Hupfer, S., and Arnold, K. 1999. JavaSpaces Principles, Patterns, and Practice. Addison-Wesley, Reading, MA.]] Google Scholar
Digital Library
- Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA.]] Google Scholar
Digital Library
- Garlan, D. and Notkin, D. 1991. Formalizing design spaces: Implicit invocation mechanisms. In VDM '91: Formal Software Development Methods. Lecture Notes in Computer Science, vol. 551. Springer-Verlag, Berlin, Germany, 31--44.]] Google Scholar
Digital Library
- Gelernter, D. 1985. Generative communication in Linda. ACM Trans. Program. Lang. Syst. 7, 80--112.]] Google Scholar
Digital Library
- Hapner, M., Burridge, R., Sharma, R., Fialli, J., and Stout, K. 2002. Java Message Service. Sun Microsystems Inc., Santa Clara, CA.]]Google Scholar
- Harrison, T., Levine, D., and Schmidt, D. 1997. The design and performance of a real-time CORBA event service. In Proceedings of the 12th ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '97). ACM Press, New York, NY, 184--200.]] Google Scholar
Digital Library
- Hauswirth, M. 1999. Internet-scale push systems for information distribution---architecture, components, and communication. Ph.D. dissertation. Technical University of Vienna, Vienna, Austria.]]Google Scholar
- Hauswirth, M. and Jazayeri, M. 1999. A component and communication model for push systems. In Proceedings of Software Engineering---ESEC/FSE'99. 20--28.]] Google Scholar
Digital Library
- Holbrook, H., Singhal, S., and Cheriton, D. 1995. Log-based receiver-reliable multicast for distributed interactive simulation. In Proceedings of ACM SIGCOMM'95.]] Google Scholar
Digital Library
- Horstmann, M. and Kirtland, M. 1997. DCOM architecture. Available online at www.microsoft. com/com/tech/DCOM.asp.]]Google Scholar
- Houston, P. 1998. Building distributed applications with message queuing middleware White paper. Available online at http://msdn.microsoft. com/library/en-us/dnmqqc/html/bldappmq.asp.]]Google Scholar
- Huang, Y. and Garcia-Molina, H. 2001. Publish/subscribe in a mobile enviroment. In Proceedings of MobiDE. 27--34.]] Google Scholar
Digital Library
- IBM Corporation. 1995. MQSeries: An introduction to messaging and queuing. Tech. Rep. GC33-0805-01. IBM Corporation, Yorktown Heights, NY.]]Google Scholar
- Lehman, T., Laughry, S. M., and Wyckoff, P. 1999. Tspaces: The next wave. In Proceedings of the Hawaii International Conference on System Sciences (HICSS-32).]]Google Scholar
- Lewis, R. 1999. Advanced Messaging Applications with MSMQ and MQSeries. QUE.]]Google Scholar
- Li, K. and Hudak, P. 1989. Memory coherence in shared memory systems. ACM Trans. Comput. Syst. 7, 4 (Nov.), 321--359.]] Google Scholar
Digital Library
- Lin, J. and Paul, S. 1996. A reliable multicast transport protocol. In Proceedings of the IEEE INFOCOM'96. IEEE Computer Society Press, Los Alamitos, CA, 1414--1424.]]Google Scholar
- OMG. 2001. CORBA Event Service Specification. Object Management Group, Needham, MA.]]Google Scholar
- OMG. 2002a. The Common Object Request Broker: Core Specification. Object Management Group, Needham, MA.]]Google Scholar
- OMG. 2002b. CORBA Notification Service Specification. Object Management Group, Needham, MA.]]Google Scholar
- Oracle 2002. Oracle9i Application Developer's Guide---Advanced Queuing. Oracle, Redwood Shores, CA.]]Google Scholar
- Papadopoulos, G. and Arbab, F. 1998. Coordination models and languages. In The Engineering of Large Systems. Advances in Computers, vol. 46. Academic Press, New York, NY.]]Google Scholar
- Pereira, J., Fabret, F., Llirbat, F., and Shasha, S. 2000. Efficient matching for Web-based publish/subscribe systems. In Proceedings of CoopIS.]] Google Scholar
Digital Library
- Powell, D. 1996. Group communication. Commun. ACM 39, 4 (Apr.), 50--97.]] Google Scholar
Digital Library
- Ratnasamy, S., Handley, M., Karp, R., and Shenker, S. 2001. Application-level multicast using content-addressable networks. In Proceedings of the Third International Workshop on Networked Group Communication.]] Google Scholar
Digital Library
- Rosenblum, D. and Wolf, A. 1997. A design framework for Internet-scale event observation and notification. In Proceedings of the 6th European Software Engineering Conference/ACM SIGSOFT 5th Symposium on the Foundations of Software Engineering. ACM Press, New York, NY, 344--360.]] Google Scholar
Digital Library
- Rowstron, A. 1998. Wcl: A co-ordination language for geographically distributed agents. World Wide Web 1, 3, 167--179.]] Google Scholar
Digital Library
- Segall, B. and Arnold, D. 1997. Elvin has left the building: A publish/subscribe notification service with quenching. In Proceedings of the Australian UNIX and Open Systems User Group Conference (AUUG'97). Available online at http://www.dtsc.edu.au/.]]Google Scholar
- Segall, B., Arnold, D., Boot, J., Henderson, M., and Phelps, T. 2000. Content based routing with Elvin4. In AUUG2K (Canberra, Australia).]]Google Scholar
- Sessions, R. 1997. COM and DCOM: Microsoft's Vision for Distributed Objects. John Wiley & Sons, New York, NY.]] Google Scholar
Digital Library
- Skeen, D. 1998. Vitria's Publish-Subscribe Architecture: Publish-Subscribe Overview. http://www.vitria.com.]]Google Scholar
- Stoica, I., Adkins, D., Zhuang, S., Shenker, S., and Surana, S. 2002. Internet indirection infrastructure. In Proceedings of ACM SIGCOMM. ACM Press, New York, NY.]] Google Scholar
Digital Library
- Sullivan, K. and Notkin, D. 1990. Reconciling environment integration and component independence. In Proceedings of the Fourth ACM SIGSOFT Symposium on Software Development environments. ACM Press, New York, NY, 22--33.]] Google Scholar
Digital Library
- Sun. 2000. Java Remote Method Invocation Specification. Sun Microsystems, Santa Clara, CA.]]Google Scholar
- Sun. 2002. JavaSpaces Service Specification. Sun Microsystems, Santa Clara, CA.]]Google Scholar
- Tai, S. and Rouvellou, I. 2000. Strategies for integrating messaging and distributed object transactions. In Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms and Open Distributed Processing (Middleware '00). ACM Press, New York, NY, 308--330.]] Google Scholar
Digital Library
- Talarian Corporation. 1999. Everything you need to know about middleware: Mission-critical interprocess communication. White paper. Talarian Corporation, Los Altos, CA (now part of TIBCO, Palo Alto, CA). Available online at http://www.talarian. com/.]]Google Scholar
- Tam, M., Smith, J., and Farber, D. 1990. A taxonomy-based comparison of several distributed shared memory systems. ACM Operat. Syst. Rev. 24, 3 (July), 40--67.]] Google Scholar
Digital Library
- Tay, B. H. and Ananda, A. L. 1990. A survey of remote procedure calls. ACM Operat. Syst. Rev. 24, 3 (July), 68--79.]] Google Scholar
Digital Library
- TIBCO. 1999. TIB/Rendezvous. White paper. TIBCO, Palo Alto, CA.]]Google Scholar
- Wessels, D. 1995. Intelligent caching for world-wide-web objects. In Proceedings of INET'95 (Honolulu, HI).]]Google Scholar
- Yonezawa, A., Shibayama, E., Takada, T., and Honda, Y. 1987. Modeling and programming in an object-oriented concurrent language ABCL/1. In Object-Oriented Concurrent Programming, A. Yonezawa, J.-P. Briot, and E. Shiboyama, Eds. MIT Press, Cambridge, MA, Chap. 4, pp. 55--89.]] Google Scholar
Digital Library
- Zhuang, S., Zhao, B., Joseph, A., Katz, R., and Kubiatowicz, J. 2001. Bayeux: An architecture for scalable and fault-tolerant wide-area data dissemination. In Proceedings of the Eleventh International Workshop on Network and Operating System Support for Digital Audio and Video (NOSSDAV '01).]] Google Scholar
Digital Library
Index Terms
The many faces of publish/subscribe





Comments