A Survey of Event Systems

Adam Rifkin and Rohit Khare


This work-in-progress lists existing and proposed systems and protocols for event notification. Please also see our bibliography of event notification papers. We are hoping to annotate the systems below with short descriptions as soon as possible.

  1. Application Control Architecture (Digital) - see [Patrick, 1993]
  2. Active Software - http://www.activesw.com/
  3. Actors - see [Agha, 1986] and [Agha, 1990] and [Frolund and Agha, 1995] and [Agha, 1997] and http://www-osl.cs.uiuc.edu/
  4. Active Databases - http://liinwww.ira.uka.de/bibliography/Database/adc.html
  5. AFS (Andrew File System) caching and promises - see [Kazar, 1988] and [Macklem, 1994]
  6. AppleEvents - http://developer.apple.com/techpubs/mac/Toolbox/Toolbox-29.html
  7. Amalgame - see [Franchitti and King, 1993]
  8. Atlantis - see [Valetto and Kaiser, 1996] and http://www.psl.cs.columbia.edu/atlantis/atlantis.html
  9. Backweb - http://www.backweb.com/html/communication.html
    Middleware push.
  10. Bart - see [Beach et al., 1992]
    A software bus to support improved control and data integration relative to BMS.
  11. BEA Tuxedo - http://www.beasys.com/
    Middleware transaction processing monitor.
  12. BLIP (Basic Lightweight Information Protocol) - http://www.blip.org/
    Provides application-level message services based on the publish-and-subscribe model; MIME message notifications are delivered in real-time streams, and application-level transaction services are available.
  13. C2 Architectural Style - see [Whitehead et al., 1995] and [Taylor et al., 1996] and http://www.ics.uci.edu/pub/arch/c2.html
  14. CAI (Century Analysis Inc.) - http://www.cainc.com/
    Applications integration middleware with message broker.
  15. CISCO Publish & Subscribe Open Reference Specification - http://www.cisco.com/warp/public/146/standards.html
  16. COM+ (Component Object Model) Events - http://www.microsoft.com/com/complus.htm
  17. COMANDOS - see [Balter et al., 1991]
    Software communication and synchronization through shared objects instead of BMS-style messages.
  18. Consul - http://www.cs.arizona.edu/ftol/consul/
    Communication substrate that allows construction of fault-tolerant programs based on replicated processing. Abstractions include a multicast service, a membership service, and a recovery service.
  19. CORBA (Common Object Request Broker Architecture) Notification RFP - http://www.omg.org/library/schedule/Notification_Service_RFP.htm
  20. CORBA transaction events - http://www.omg.org/corba/sectrans.htm#event
  21. Cricket - see [Gorlick, 1992]
    Message bus scheme with domains for tool integration.
  22. Cronus OS
    Operating system that allows the construction of WAN-based and multi-organisational applications, investigation into the integration of distributed systems and network management systems, and work in high-performance distributed computing.
  23. CrossWorlds - http://www.crossworlds.com/
    Front-end and back-end application integration messaging middleware.
  24. DCE (Distributed Common Environment) - see [Open Software Foundation, 1990] and http://www.opengroup.org/dce/
    Control integration using RPCs.
  25. DEEDS - see [Liang et al., 1994]
  26. Desert - see [Reiss, 1996] and http://www.cs.brown.edu/software/desert/
  27. Design Pattern: Mediator - see [Gamma et al., 1995]
  28. DHCP (Dynamic Host Configuration Protocol) - ftp://ftp.isi.edu/in-notes/rfc2131.txt
  29. DIS (Distributed Interactive Simulation) - see [IEEE, 1995] and http://www.stl.nps.navy.mil/dis-java-vrml/AnnotatedReferences.html
  30. Discrete Event Simulations - http://liinwww.ira.uka.de/bibliography/Misc/Discrete.event.html
  31. DNS (Domain Name System) Notifications - ftp://ftp.isi.edu/in-notes/rfc1996.txt
  32. DRP (Distribution and Replication Protocol over HTTP, by Marimba) - http://www.w3.org/TR/NOTE-drp-19970825
    Middleware push.
  33. DSN (Delivery Status Notifications) - ftp://ftp.isi.edu/in-notes/rfc1894.txt
  34. EBI (Event-Based Integration) - see [Barrett et al., 1996]
  35. e-cast (Lucent) - http://www.bell-labs.com/project/e-cast/rms_aboutrms.html
  36. Elvin - http://www.dstc.edu.au/Elvin/
  37. ENP (Event Notification Protocol) - http://www.ietf.org/internet-drafts/draft-skreddy-enpreq-00.txt / http://www.ietf.org/internet-drafts/draft-reddy-enp-protocol-00.txt
    Uses WebDAV extensions to HTTP in a service allowing users to register interest in resources for later notifications of property and state value changes.
  38. Ensemble - http://simon.cs.cornell.edu/Info/Projects/Ensemble/index.html
  39. Facilitators - see [Tenenbaum et al., 1992]
    Federation architecture for enterprise integration rather than using a central repository of enterprise knowledge.
  40. FIELD - see [Reiss, 1989] and [Reiss, 1990]
    Academic tool integration using a central anonymous broadcast message server (BMS). Can integrate messages tightly into tools (by providing message send and receive calls) or loosely (by invoking command line-oriented tools from scripts that include message send and receive commands).
  41. finger - ftp://ftp.isi.edu/in-notes/rfc1288.txt
  42. FUSE (Digital Equipment Corporation) - see [Digital Equipment Corporation, 1991]
    Commercial broadcast message server based on FIELD. DEC EnCASE wraps tools.
  43. GENA (General Event Notification Architecture) - http://www.ietf.org/internet-drafts/draft-cohen-gena-p-base-01.txt
    HTTP extensions that allow the transmission of notifications between HTTP resources.
  44. Glish - see [Paxson and Saltmarsh, 1993]
    Interpreted language for building distributed systems from modular, event-oriented programs. Centralized communication model where interprocess communication passes through a central interpreter, but also supports point-to-point communication for efficiency.
  45. GtK (Getting to Know) - see [Ramduny, Dix, and Rodden, 1998]
    An experimental notification server that supports impedance matching.
  46. HORUS - http://simon.cs.cornell.edu/Info/Projects/HORUS/
  47. HTTP (HyperText Transfer Protocol) - http://www.ics.uci.edu/pub/ietf/http/ / ftp://ftp.isi.edu/in-notes/rfc2068.txt
  48. HyperWeb - see [Ferrans et al., 1992]
    Control integration based on a FIELD-like message server, data integration using a PCTE-based object management system, plus support of hypermedia and scripting language. Academic.
  49. iBus - http://www.softwired.ch/ibus.htm
    A lightweight publish/subscribe information bus that is standalone and only depends on the standard Java classes. iBus' protocol composition framework borrows from the design of Horus and of the x-kernel.
  50. ICQ - http://www.icq.com/
  51. IDIP (IDentity Infrastructure Protocol) - ftp://ietf.org/internet-drafts/draft-fujimoto-idip-00.txt
    Supports the coordinated communications between online identities.
  52. iFlame - http://www-swiss.ai.mit.edu/~dml/iflame.html
    Extensions to Zephyr with extended security.
  53. Information Bus - see [Skeen, 1992] and [Oki et al., 1993
  54. Infospheres Global Event Model (GEM) - see [Chandy and Rifkin, 1997] and [Chandy et al., 1998] and http://www.infospheres.caltech.edu/
  55. Intermind - http://www.intermind.com/
  56. Iona OrbixTalk - http://www.iona.com/
    Events through an Object Request Broker.
  57. IP Multicast - http://www.stardust.com/ipmulticast/
  58. IPP (Internet Printing Protocol) - http://www.pwg.org/ / http://www.ietf.org/internet-drafts/draft-ietf-ipp-not-01.txt
  59. IRC (Internet Relay Chat) - http://www.irchelp.org/
  60. ISIS - http://simon.cs.cornell.edu/Info/Projects/ISIS/ISIS.html
    Reliable messaging using protocol stacks and virtual synchrony.
  61. Java AWT event model - http://java.sun.com/products/jdk/1.1/docs/guide/awt/designspec/events.html
  62. Java Beans - http://splash.javasoft.com/beans/glasgow.html / http://splash.javasoft.com/ejb/
  63. Java Beans event model for delegation - http://java.sun.com/docs/books/tutorial/ui/components/eventintro.html
  64. Java Distributed Events - http://www.ics.uci.edu/IRUS/wisen/abs_waldo.html / http://www.javasoft.com/products/javaspaces/specs/ev.pdf
  65. Java Foundation Classes Swing event model - http://java.sun.com/products/jfc/swingdoc-static/what_is_swing.html
  66. Java InfoBus - http://java.sun.com/beans/infobus/
  67. Java OS event model - http://www.sun.com/microelectronics/embedded/javaos.html
  68. JavaSpaces - http://java.sun.com/products/javaspaces/ / http://www.javasoft.com/products/javaspaces/whitepapers/jspaper.pdf
  69. Java Transaction Service - http://splash.javasoft.com/jts/jts.html
  70. JEDI (Java Event-based Distributed Infrastructure) - see [Cugola et al., 1998] and http://www.cefriel.it/se/ArchMiddl.html#JEDI
  71. JINI - http://java.sun.com/products/jini/index.html
  72. Keryx (Hewlett Packard) - see [Brandt and Kristensen, 1997] and http://keryxsoft.hpl.hp.com/
  73. LDAP (Lightweight Directory Access Protocol) Change Notification Mechanism using Persistent Search - http://www.ietf.org/internet-drafts/draft-ietf-ldapext-psearch-01.txt
  74. Leases - see [Gray and Cheriton, 1989]
  75. Linda tuple spaces - http://www.cs.yale.edu/HTML/YALE/CS/Linda/linda.html
  76. Logical Clocks - see [Lamport, 1978]
  77. Maisie discrete events - http://may.cs.ucla.edu/projects/maisie/
    Language based on C for parallel programming and simulation.
  78. Majordomo - http://www.greatcircle.com/majordomo/
  79. Mariposa distributed database management system - http://mariposa.cs.berkeley.edu/
  80. Mediators - see Sullivan and Notkin, 1992]
    Tools implicitly invoke mediators that integrate them. Similar to software brokers and facilitators.
  81. Mentat - http://csissun13.ee.virginia.edu/~mentat/homepage.html
    Language based on C++ for parallel programming and simulation.
  82. Message Bus - see [Kaplan et al., 1992] and [Denimal et al., 1993]
    Connects local area network tools such as ConversationBuilder to support collaborative work activities.
  83. MessageQ - http://www.messageQ.com/
    A vendor-independent source for information about message-oriented business process integration.
  84. MFTP (Multicast File Transfer Protocol, from Starburst OmniCast) - http://www.starburst.com/
  85. MMS (Manufacturing Message Specification) - http://litpc13.epfl.ch/MMS/mms_main.htm
  86. MSMQ (Microsoft Message Queue)
    Windows NT operating system feature providing loosely-coupled and reliable network communications services based on message queueing.
  87. MQ*Series (IBM) - http://www.software.ibm.com/ts/mqseries/integrator/
    Messaging software enabling business applications to exchange information across over twenty-five different operating system platforms.
  88. MTP (Multicast Transport Protocols) - http://www.roads.lut.ac.uk/DS-Archive/MTP.html
  89. MTS (Microsoft Transaction Service) - http://www.microsoft.com/com/mts.htm
  90. NNTP (Network News Transfer Protocol) - http://www.academ.com/academ/nntp/ / ftp://ftp.isi.edu/in-notes/rfc977.txt
  91. NSTP (Notification Service Transfer Protocol) - see [Day et al., 1996]
  92. OPC (OLE for Process Control) - http://www.opcfoundation.org/alarmsevents.htm
  93. OpenDoc - http://cil.org/
  94. Ousterhout's event preference to threads - see [Ousterhout, 1996]
  95. Pilgrim - see [DiBella and Bhandaru, 1992]
  96. PIP-DEMO - ftp://ietf.org/internet-drafts/draft-mohr-pip-pipdemo-00.txt
    An interoperable presence information protocol.
  97. PIPR (Presence Information Protocol Requirements) - http://www.ietf.org/internet-drafts/draft-dusseault-pipr-00.txt / http://www.ietf.org/internet-drafts/draft-day-rpim-00.txt / http://egg.microsoft.com/rvp/archive/9805/msg00005.html
  98. PLAN (Programming Language for Active Networks) - http://www.cis.upenn.edu/~switchware/PLAN/
  99. Pointcast - http://www.pointcast.com/
  100. POLYLITH - see [Purtilo, 1994]
    Program units interface directly to the software bus and not to each other. Module interconnection language guides static interface activities such as stub generation and compilation.
  101. Q - see [Maybee, 1993]
    Academic set of matched interfaces that enable interprocess communication between Ada and C programs, with a communication model and a type model.
  102. REXX - see [Cowlishaw, 1985]
    Standard macro language for coordinating operations between applications running within a single operating system.
  103. RIP (Routing Information Protocol) - ftp://ftp.isi.edu/in-notes/rfc1058.txt
  104. RMP (Reliable Multicast Protocol) - http://research.ivv.nasa.gov/RMP/links.html
  105. Rosenblum/Wolf Internet-scale event notifications model - see [Rosenblum and Wolf, 1997]
  106. RPCs (Remote Procedure Calls) - see [Birrell and Nelson, 1984]
  107. RVP (RendezVous Protocol) - http://www.ietf.org/internet-drafts/draft-calsyn-rvp-01.txt / http://egg.microsoft.com/wilma/wilma/rvp
    Loosely based on HTTP, RVP accommodates notifications for people subscribing to other peoples' status information.
  108. Schooner Interconnection System - http://www.cs.arizona.edu/schooner/
    A software interconnection system connects components into a single program in a manner that is transparent to the user, and provides configuration and execution control over the resulting computation.
  109. SDL BMS (Broadcast Message Server) - see [Barrett, 1993]
    Academic message routing service built on top of Q.
  110. SGAP (Simple General Awareness Protocol) - http://www.ietf.org/internet-drafts/draft-day-rpim-00.txt / http://www.ietf.org/internet-drafts/draft-day-sgap-01.txt / http://www.ietf.org/internet-drafts/draft-day-envy-00.txt / http://egg.microsoft.com/rvp/archive/9805/msg00005.html
    Provides notifications of changes that users, groups, or resources of interest are available.
  111. SHADE - see [Gruber et al., 1991]
    Loosely-coupled tools in collaborative environment with a shared design representation.
  112. SIENA (Scalable Internet Event Notification Architecture) - see [Rosenblum, Wolf, and Carzaniga, 1998] and http://www.cs.colorado.edu/users/serl/dot/siena.html
  113. SIMNET - see [Calvin et al., 1993] and http://www.columbia.edu/~rk35/vr/vr.html
  114. SIN (Simple Internet Notifications) - http://www.ietf.org/internet-drafts/draft-nerenberg-sin-00.txt
  115. SIP (Session Invitation Protocol) - http://www.cs.columbia.edu/~hgs/sip/ / http://www.ietf.org/internet-drafts/draft-ietf-mmusic-sip-08.txt
    An application-layer control protocol for creating, modifying, and terminating sessions with one or more participants.
  116. SMTP (Simple Mail Transfer Protocol) - ftp://ftp.isi.edu/in-notes/rfc821.txt
  117. SNMP (Simple Network Management Protocol) Traps - ftp://ftp.isi.edu/in-notes/rfc1157.txt
  118. SoftBench (Hewlett Packard) - see [Cagan, 1990] and [Gerety, 1990] and http://www.hp.com/esy/go/softbench.html
    Commercial broadcast message server based on FIELD. HP Encapsulator wraps tools.
  119. SOFTPEN - see [BSO France SA, 1992]
    Uses common language for tool-to-tool integration.
  120. Software Brokers - see [Arnold et al., 1992]
    Intermediaries to simplify the connection between tools.
  121. Software Bus (Eureka) - see [Verrall, 1991] and [Fernstrom et al., 1992]
    Commercial heterogeneous CASE tool integration.
  122. Sophtalk - see [Jacobs et al., 1993]
    Multicast communication, asynchronous and synchronous I/O, and interprocess communication services.
  123. SRM (Scalable Reliable Multicast) - http://www-nrg.ee.lbl.gov/floyd/srm.html
  124. SWAP (Simple Workflow Access Protocol) - http://www.ics.uci.edu/pub/ietf/swap/ / http://www.ietf.org/internet-drafts/draft-swenson-swap-prot-00.txt
    Uses HTTP to transfer structured work control and monitoring information.
  125. SwitchWare - http://www.cis.upenn.edu/~switchware/
  126. Talarian SmartSockets - http://www.talarian.com/
    Sockets allowing multiple processes to work together over a heterogeneous network (LAN, WAN, or the Internet).
  127. Taligent - http://www.software.ibm.com/ad/taligent/
  128. Talkd - see BSD Unix Manual
  129. Teamwave - http://www.teamwave.com/
  130. Tibco Rendezvous Software Bus - http://www.rv.tibco.com/
    Proprietary subject-based (instead of address-based) public-subscribe interchange of information between applications running on heterogeneous platforms. Real-time and transactional delivery guarantees.
  131. TICKLE - see [Julienne and Holtz, 1994]
    Commercial RPC-based system for tool integration using messages.
  132. Ubique - http://www.ubique.com/
  133. VIE Systems Copernicus
  134. Virtual Worlds - http://www.research.microsoft.com/vwg/
    Online social interaction that supports a sense of history or a memory of what people build, share, and exchange.
  135. Vitria - http://www.vitria.com/
    Realtime application integration using messaging.
  136. VMTP - see [Cheriton and Williamson, 1989]
  137. Waldo's events-over-RPC - see [Waldo et al., 1995]
    A networked point-to-point event notification system implemented over RPCs.
  138. WBEM (Web-Based Enterprise Management) - http://wbem.freerange.com/wbem/standards.htm
  139. Win32 windowing event model - see Charles Petzold, Programming Windows 95
  140. WhoDP (Widely Hosted Object Data Protocol) - http://www.activerse.com/ding/info/whodp.html
  141. X Windows server/client event model - http://www.x.org/
  142. Yahoo Pager - http://pager.yahoo.com/pager/
  143. Yeast (Yet another Event-Action Specification Tool) - see [Krishnamurthy and Rosenblum, 1995]
    Client-server system in which distributed clients register event-action specifications with a centralized server, which performs event detection and specification management.
  144. Zephyr - see [DellaFera et al., 1988] and ftp://athena-dist.mit.edu/ftp/pub/ATHENA/zephyr/OLD/doc/progman.PS

Adam Rifkin, http://www.ifindkarma.com/attic/

Rohit Khare, http://www.ics.uci.edu/~rohit/

Last modified: Sun Jul 12 21:53:24 PDT 1998