skip to main content
10.1145/504282.504301acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

On objects and events

Authors Info & Claims
Published:01 October 2001Publication History

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

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle Scholar
  3. 3.G. Andrews and R. Olsson. The Evolution of the SR Language. Distributed Computing, 1(2), Apr. 1986.]]Google ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.K. Birman and T. Joseph. Reliable Communication in Presence of Failures. ACM Transactions on Computer Systems, 5(1):47-76, Feb. 1987.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.A. Birrel and B. Nelson. Implementing Remote Procedure Calls. ACM Transactions on Computer Systems, 2(1):39-59, Feb. 1984.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.A. Businger. PORTAL Language Description. Number 198 in LNCS. Springer-Verlag, 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.L. Cardelli. A Language with Distributed Scope. In 14th ACM Symposium on Principles of Distributed Computing, 1995.]]Google ScholarGoogle ScholarCross RefCross Ref
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.A. Carzaniga. Architectures for an Event Notification Service Scalable to Wide-area Networks. PhD thesis, Politecnico di Milano, Dec. 1998.]]Google ScholarGoogle Scholar
  13. 13.M. P. Ch. Nester and B. Haumacher. A More Efficient RMI for Java. In ACM 1999 Conference on Java Grande, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. 15.W. Cook, W. Hill, and P. Canning. Inheritance is not Subtyping. In 17th ACM Symposium on Principles of Programming Languages, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.T. Corporation. Everything You Need to Know About Middleware: Mission-Critical Interprocess Communication (White Paper). http://www.talarian.com/, 1999.]]Google ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.M. Ellis and B. Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarCross RefCross Ref
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.C. Fetzer. Fail-Aware Publish/Subscribe in Erlang. In 4th International Erlang User Conference, 1998.]]Google ScholarGoogle Scholar
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27.E. Freeman, S. Hupfer, and K. Arnold. JavaSpaces Principles, Patterns, and Practice. Addison-Wesley, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28.D. Gelernter. Generative Communication in Linda. ACM Transactions on Programming Languages and Systems, 7(1):80-112, Jan. 1985.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29.J. Gosling, B. Joy, and G. Steele. The Java Language Specification, Second Edition. Addison-Wesley, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31.M. Happner, R. Burridge, and R. Sharma. Java Message Service. Technical report, Sun Microsystems Inc., 1998.]]Google ScholarGoogle Scholar
  32. 32.C. Hoare. Monitors: An Operating System Structuring Concept. Communications of the ACM, 17(10):549-557, Oct. 1974.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 34.D. Ingalls. A Simple Technique for Handling Multiple Polymorphism. In ACM Conference on Object-Oriented Programming Systems, Languages and Applications, 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. 35.International Organization for Standardization. Ada 95 Reference Manual - The Language - The Standard Libraries, 1995. ANSI/ISO/IEC-8652:1995.]]Google ScholarGoogle Scholar
  36. 36.G. S. Jr. CommonLisp the Language. Digital Press, second edition, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. 37.T. Kielmann. Object-Oriented Distributed Programming with Objective Linda. In First International Workshop on High Speed Networks and Open Distributed Platforms, 1995.]]Google ScholarGoogle Scholar
  38. 38.P. Koenig. Messages vs. Objects for Application Integration. Distributed Computing, 2(3):44-45, Apr. 1999.]]Google ScholarGoogle Scholar
  39. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  40. 40.T. Lehman, S. M. Laughry, and P. Wyckoff. Tspaces: The Next Wave. In Hawaii International Conference on System Sciences, 1999.]]Google ScholarGoogle Scholar
  41. 41.B. Liskov. Distributed Programming in Argus. Communications of the ACM, 31(3):300-312, Mar. 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. 42.B. Liskov. A History of CLU. ACM SIGPLAN Notices, 28(3):133-147, Mar. 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  44. 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 ScholarGoogle Scholar
  45. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  46. 46.B. Meyer. Eiffel: The Language. Object-Oriented Series. Prentice-Hall, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. 47.D. A. Moon. Object-Oriented Programming with Flavors. In ACM Conference on Object-Oriented Programming Systems, Languages and Applications, 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. 48.F. Nielson and H. Nielson. Two-Level Semantics and Code Generation. Theoretical Computer Science, 56(1):59-133, Jan. 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. 49.M. Odersky and P. Wadler. Pizza into Java: Translating Theory into Practice. In 24th ACM Symposium on Principles of Programming Languages, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  51. 51.OMG. Notification Service Standalone Document. OMG, June 2000.]]Google ScholarGoogle Scholar
  52. 52.OMG. The Common Object Request Broker: Architecture and Specification. OMG, February 2001.]]Google ScholarGoogle Scholar
  53. 53.OMG. CORBAservices: Common Object Services Specification, Chapter 4: Event Service. OMG, March 2001.]]Google ScholarGoogle Scholar
  54. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  55. 55.A. Polze. Using the Object Space: A Distributed Parallel Make. In 4th IEEE Workshop on Future Trends of Distributed Computing Systems, 1993.]]Google ScholarGoogle Scholar
  56. 56.D. Pountain. The Transputer and its Special Language, Occam. Byte Magazine, 9(8):361-366, Aug. 1984.]]Google ScholarGoogle Scholar
  57. 57.F. Rivard. Smalltalk : a Re ective Language. In International Conference on Metalevel Architectures and Re ection, 1996.]]Google ScholarGoogle Scholar
  58. 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 ScholarGoogle Scholar
  59. 59.D. Skeen. Vitria's Publish-Subscribe Architecture: Publish-Subscribe Overview. http://www.vitria.com, 1998.]]Google ScholarGoogle Scholar
  60. 60.Sun. Java Core Re ection API and Specification, 1999.]]Google ScholarGoogle Scholar
  61. 61.Sun. Java Remote Method Invocation - Distributed Computing for Java (White Paper), 1999.]]Google ScholarGoogle Scholar
  62. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  63. 63.W. Taha and T. Sheard. Multi-Stage Programming. In ACM International Conference on Functional Programming, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. 64.TIBCO. TIB/Rendezvous White Paper. http://www.rv.tibco.com/, 1999.]]Google ScholarGoogle Scholar
  65. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. On objects and events

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
              October 2001
              382 pages
              ISBN:1581133359
              DOI:10.1145/504282

              Copyright © 2001 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 October 2001

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              OOPSLA '01 Paper Acceptance Rate27of145submissions,19%Overall Acceptance Rate268of1,244submissions,22%

              Upcoming Conference

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader