Department of Computer Science and Technology

Technical reports

An architecture for the notification, storage and retrieval of events

Mark David Spiteri

July 2000, 165 pages

This technical report is based on a dissertation submitted January 2000 by the author for the degree of Doctor of Philosophy to the University of Cambridge, Darwin College.

DOI: 10.48456/tr-494


Event-driven and messaging infrastructures are emerging as the most flexible and feasible solution to enable rapid and dynamic integration and legacy and monolithic software applications into distributed systems. They also support deployment and enhancement of traditionally difficult-to-build active systems such as large scale collaborative environments and mobility aware architectures. However, complex systems issues like mobility, scalability, fedaration and persistence indicate a requirement for more advanced services within these infrastructures. The event notification paradigm is also applicable in emerging research areas such as modelling of business information flow within organisations, as well as workplace empowering through enchanced awareness of work practices relating to communication and interaction between individuals. In these areas further developments require complex interpretation and correlation of event information, highlighting the need for an event storage and retrieval service that provides the required groundwork.

It is the thesis of this this dissertation that the lack of a generic model for event representation and notification has restricted evolution within event driven applications. Furthermore, in order to empower existing applications and enable novel solutions, a crucial, and so-far-missing, service within event systems is capture, persistent storage, and meaningful retrieval of the messaging information driving these systems.

In order to address these issues, this dissertation defines a generic event model and presents a powerful event notification infrastructure that, amongst other structural contributions, embeds event storage functionality. An event repository architecture will then be presented that can capture and store events, as well as inject them back into distributed application components to simulate replay of sequences of activity. The general-purpose architecture presented is designed on the thesis that events are temporal indexing points for computing activities. Changes in the state of a distributed system can be captured in events, and replayed or reviewed at a later stage, supporting fault-tolerance, systems management, disconnected operation and mobility. The architecture delivers powerful querying of event histories, enabling extraction of simple and composite event patterns. This addresses the business requirements in several industries (such as finance, travel, news, retail and manufacturing) to locate temporal patterns of activity, as well as support applications like memory prosthesis tools and capture of collaboration. The repository offers a selective store-and-forward functionality that enables messaging environments to scale and provide enhanced brokering and federation services.

In addition to enabling novel applications, the general-purpose infrastructure presented provides a more flexible approach to event notification, storage and retrieval, in areas where bespoke solutions had to be provided previously. The theoretical concepts illustrated in this dissertation are demonstrated through a working distributed implementation and deployment in several application scenarios.

Full text

PDF (12.3 MB)

BibTeX record

  author =	 {Spiteri, Mark David},
  title = 	 {{An architecture for the notification, storage and
         	   retrieval of events}},
  year = 	 2000,
  month = 	 jul,
  url = 	 {},
  institution =  {University of Cambridge, Computer Laboratory},
  doi = 	 {10.48456/tr-494},
  number = 	 {UCAM-CL-TR-494}