ABSTRACT
This paper presents linguistic primitives for publish/subscribe programming using events and objects. We integrate our primitives into a strongly typed object-oriented language through four mechnisms: (1) serialization, (2) multiple subtyping, (3)closures, and (4) deferred code evaluation. We illustrate our primitives through Java, showing how we have overcome its respective lacks. A precompiler transforms statements based on our publish/subscribe primitives into calls to specifically generated typed adapters, which resemble the typed stubs and skeletons by the rmic precompiler for remote method invocations in Java
- 1.M. Aguilera, R. Strom, D. Sturman, M. Astley, and T. Chandra. Matching Events in a Content-Based Subscription System. In 18th ACM Symposium on Principles of Distributed Computing, 1999.]] Google ScholarDigital Library
- 2.M. Altherr, M. Erzberger, and S. Maffeis. iBus - a Software Bus Middleware for the Java Platform. In International Workshop on Reliable Middleware Systems of the 13th IEEE Symposium On Reliable Distributed Systems, 1999.]]Google Scholar
- 3.G. Andrews and R. Olsson. The Evolution of the SR Language. Distributed Computing, 1(2), Apr. 1986.]]Google Scholar
- 4.J. Bacon, K. Moody, J. Bates, R. Hayton, C. Ma, A. McNeil, O. Seidel, and M. Spiteri. Generic Support for Distributed Applications. Computer, 33(3):68-76, Mar. 2000.]] Google ScholarDigital Library
- 5.K. Birman, M. Hayden, O.Ozkasap, Z. Xiao, M. Budiu, and Y. Minsky. Bimodal Multicast. ACM Transactions on Computer Systems, 17(2):41-88, May 1999.]] Google ScholarDigital Library
- 6.K. Birman and T. Joseph. Reliable Communication in Presence of Failures. ACM Transactions on Computer Systems, 5(1):47-76, Feb. 1987.]] Google ScholarDigital Library
- 7.A. Birrel and B. Nelson. Implementing Remote Procedure Calls. ACM Transactions on Computer Systems, 2(1):39-59, Feb. 1984.]] Google ScholarDigital Library
- 8.J. Boyland and G. Castagna. Parasitic Methods: Implementation of Multi-Methods for Java. In 12th ACM Conference on Object-Oriented Programming Systems, Languages and Applications, 1997.]] Google ScholarDigital Library
- 9.A. Businger. PORTAL Language Description. Number 198 in LNCS. Springer-Verlag, 1988.]] Google ScholarDigital Library
- 10.L. Cardelli. A Language with Distributed Scope. In 14th ACM Symposium on Principles of Distributed Computing, 1995.]]Google ScholarCross Ref
- 11.L. Cardelli, J. Donahue, M. Jordan, B. Kalsow, and G. Nelson. The Modula-3 Type System. In 16th ACM Symposium on Principles of Programming Languages, 1989.]] Google ScholarDigital Library
- 12.A. Carzaniga. Architectures for an Event Notification Service Scalable to Wide-area Networks. PhD thesis, Politecnico di Milano, Dec. 1998.]]Google Scholar
- 13.M. P. Ch. Nester and B. Haumacher. A More Efficient RMI for Java. In ACM 1999 Conference on Java Grande, 1999.]] Google ScholarDigital Library
- 14.C. Chambers. The Cecil Language Specification and Rationale: Version 2.0. Technical Report UW-CS Technical Report 93-03-05, Department of Computer Science and Engineering, University of Washington, Dec. 1995.]]Google Scholar
- 15.W. Cook, W. Hill, and P. Canning. Inheritance is not Subtyping. In 17th ACM Symposium on Principles of Programming Languages, 1990.]] Google ScholarDigital Library
- 16.T. Corporation. Everything You Need to Know About Middleware: Mission-Critical Interprocess Communication (White Paper). http://www.talarian.com/, 1999.]]Google Scholar
- 17.G. Cugola, E. D. Nitto, and A. Fuggetta. Exploiting an Event-Based Infrastructure to Develop Complex Distributed Systems. In 10th International Conference on Software Engineering, 1998.]] Google ScholarDigital Library
- 18.S. Deering and D. Cheriton. Multicast Routing in Datagram Internetworks and Extended LANs. ACM Trans. on Computer Systems, 8(2):85-110, May 1990.]] Google ScholarDigital Library
- 19.M. Ellis and B. Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, 1992.]] Google ScholarDigital Library
- 20.D. Engler, D. Wallach, and M.F.Kaashoek. Design and Implementation of a Modular, Flexible, and Fast System for Dynamic Protocol Composition. Technical Report TM-552, Massachusetts Institute of Technology, Laboratory for Computer Science, 1996.]]Google Scholar
- 21.P.Th. Eugster, R. Boichat, and R. Guerraoui. Effective Multicast Programming in Large Scale Distributed Systems. Technical Report DSC/2001/003, Swiss Federal Institute of Technology, Lausanne, 2001.]]Google ScholarCross Ref
- 22.P.Th. Eugster and R. Guerraoui. Content-Based Publish/Subscribe with Structural Re ection. In 6th Usenix Conference on Object-Oriented Technologies and Systems, 2001.]] Google ScholarDigital Library
- 23.P.Th. Eugster, R. Guerraoui, S.B. Handurukande, A.-M. Kermarrec, and P. Kouznetsov. Lightweight Probabilistic Broadcast. In IEEE International Conference on Dependable Systems and Networks, 2001.]] Google ScholarDigital Library
- 24.P.Th. Eugster, R. Guerraoui, and J. Sventek. Distributed Asynchronous Collections: Abstractions for Publish/Subscribe Interaction. In 14th European Conference on Object-Oriented Programming, 2000.]] Google ScholarDigital Library
- 25.C. Fetzer. Fail-Aware Publish/Subscribe in Erlang. In 4th International Erlang User Conference, 1998.]]Google Scholar
- 26.S. Floyd, V. Jacobson, S. McCanne, C. G. Liu, and L. Zhang. A Reliable Multicast Framework for Light-Weight Sessions and Application Level Framing. IEEE/ACM Transactions on Networking, Nov. 1996.]] Google ScholarDigital Library
- 27.E. Freeman, S. Hupfer, and K. Arnold. JavaSpaces Principles, Patterns, and Practice. Addison-Wesley, 1999.]] Google ScholarDigital Library
- 28.D. Gelernter. Generative Communication in Linda. ACM Transactions on Programming Languages and Systems, 7(1):80-112, Jan. 1985.]] Google ScholarDigital Library
- 29.J. Gosling, B. Joy, and G. Steele. The Java Language Specification, Second Edition. Addison-Wesley, 2000.]] Google ScholarDigital Library
- 30.M. Haahr, R. Meier, P. Nixon, V. Cahill, and E. Jul. Filtering and Scalability in the ECO Distributed Event Model. In 5th International Symposium on Software Engineering for Parallel and Distributed Systems, 2000.]] Google ScholarDigital Library
- 31.M. Happner, R. Burridge, and R. Sharma. Java Message Service. Technical report, Sun Microsystems Inc., 1998.]]Google Scholar
- 32.C. Hoare. Monitors: An Operating System Structuring Concept. Communications of the ACM, 17(10):549-557, Oct. 1974.]] Google ScholarDigital Library
- 33.H. Holbrook, S. Singhal, and D. Cheriton. Log-Based Receiver-Reliable Multicast for Distributed Interactive Simulation. In 1995 ACM Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication, 1995.]] Google ScholarDigital Library
- 34.D. Ingalls. A Simple Technique for Handling Multiple Polymorphism. In ACM Conference on Object-Oriented Programming Systems, Languages and Applications, 1986.]] Google ScholarDigital Library
- 35.International Organization for Standardization. Ada 95 Reference Manual - The Language - The Standard Libraries, 1995. ANSI/ISO/IEC-8652:1995.]]Google Scholar
- 36.G. S. Jr. CommonLisp the Language. Digital Press, second edition, 1990.]] Google ScholarDigital Library
- 37.T. Kielmann. Object-Oriented Distributed Programming with Objective Linda. In First International Workshop on High Speed Networks and Open Distributed Platforms, 1995.]]Google Scholar
- 38.P. Koenig. Messages vs. Objects for Application Integration. Distributed Computing, 2(3):44-45, Apr. 1999.]]Google Scholar
- 39.L. Lamport. Time, Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM, 21(7):558-565, July 1978.]] Google ScholarDigital Library
- 40.T. Lehman, S. M. Laughry, and P. Wyckoff. Tspaces: The Next Wave. In Hawaii International Conference on System Sciences, 1999.]]Google Scholar
- 41.B. Liskov. Distributed Programming in Argus. Communications of the ACM, 31(3):300-312, Mar. 1988.]] Google ScholarDigital Library
- 42.B. Liskov. A History of CLU. ACM SIGPLAN Notices, 28(3):133-147, Mar. 1993.]] Google ScholarDigital Library
- 43.B. Liskov and L. Shrira. Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems. In ACM Conference on Programming Language Design and Implementation, 1988.]] Google ScholarDigital Library
- 44.A. Mathur, R. Hall, F. Jahanian, A. Prakash, and C. Rasmussen. The Publish/Subscribe Paradigm for Scalable Group Collaboration Systems. Technical Report CSE-TR-270-95, University of Michigan, EECS Department, 1995.]]Google Scholar
- 45.S. Matsuoka and S. Kawai. Using Tuple Space Communication in Distributed Object-Oriented Languages. In 3rd ACM Conference on Object-Oriented Programming Systems, Languages and Applications, 1988.]] Google ScholarDigital Library
- 46.B. Meyer. Eiffel: The Language. Object-Oriented Series. Prentice-Hall, 1992.]] Google ScholarDigital Library
- 47.D. A. Moon. Object-Oriented Programming with Flavors. In ACM Conference on Object-Oriented Programming Systems, Languages and Applications, 1986.]] Google ScholarDigital Library
- 48.F. Nielson and H. Nielson. Two-Level Semantics and Code Generation. Theoretical Computer Science, 56(1):59-133, Jan. 1988.]] Google ScholarDigital Library
- 49.M. Odersky and P. Wadler. Pizza into Java: Translating Theory into Practice. In 24th ACM Symposium on Principles of Programming Languages, 1997.]] Google ScholarDigital Library
- 50.B. Oki, M. P uegl, A. Siegel, and D. Skeen. The Information Bus - an Architecture for Extensible Distributed Systems. In 14th ACM Symposium on Operating System Principles, 1993.]] Google ScholarDigital Library
- 51.OMG. Notification Service Standalone Document. OMG, June 2000.]]Google Scholar
- 52.OMG. The Common Object Request Broker: Architecture and Specification. OMG, February 2001.]]Google Scholar
- 53.OMG. CORBAservices: Common Object Services Specification, Chapter 4: Event Service. OMG, March 2001.]]Google Scholar
- 54.S. Paul, K. Sabnani, J. Lin, and S. Bhattacharyya. Reliable Multicast Transport Protocol (RMTP). IEEE Journal on Selected Areas in Communications, 15(3):407-421, Apr. 1997.]]Google ScholarDigital Library
- 55.A. Polze. Using the Object Space: A Distributed Parallel Make. In 4th IEEE Workshop on Future Trends of Distributed Computing Systems, 1993.]]Google Scholar
- 56.D. Pountain. The Transputer and its Special Language, Occam. Byte Magazine, 9(8):361-366, Aug. 1984.]]Google Scholar
- 57.F. Rivard. Smalltalk : a Re ective Language. In International Conference on Metalevel Architectures and Re ection, 1996.]]Google Scholar
- 58.B. Segall and D. Arnold. Elvin has Left the Building: A Publish/Subscribe Notification Service with Quenching. In Australian UNIX and Open Systems User Group Conference, 1997.]]Google Scholar
- 59.D. Skeen. Vitria's Publish-Subscribe Architecture: Publish-Subscribe Overview. http://www.vitria.com, 1998.]]Google Scholar
- 60.Sun. Java Core Re ection API and Specification, 1999.]]Google Scholar
- 61.Sun. Java Remote Method Invocation - Distributed Computing for Java (White Paper), 1999.]]Google Scholar
- 62.Q. Sun and D. Sturman. A Gossip-Based Reliable Multicast for Large-Scale High-Throughput Applications. In IEEE International Conference on Dependable Systems and Networks, 2000.]] Google ScholarDigital Library
- 63.W. Taha and T. Sheard. Multi-Stage Programming. In ACM International Conference on Functional Programming, 1997.]] Google ScholarDigital Library
- 64.TIBCO. TIB/Rendezvous White Paper. http://www.rv.tibco.com/, 1999.]]Google Scholar
- 65.A. Yonezawa, J. P. Briot, and E. Shibayama. Object-Oriented Concurrent Programming in ABCL/1. ACM Conference on Object-Oriented Programming Systems, Languages and Applications, 1986.]] Google ScholarDigital Library
Index Terms
- On objects and events
Recommendations
On objects and events
This paper presents linguistic primitives for publish/subscribe programming using events and objects. We integrate our primitives into a strongly typed object-oriented language through four mechnisms: (1) serialization, (2) multiple subtyping, (3)...
Simple objects for Standard ML
We propose a new approach to adding objects to Standard ML (SML) based on explicit declarations of object types, object constructors, and subtyping relationships, with a generalization of the SML case statement to a "typecase" on object types. The ...
Comments