12:45 PM, Thursday, February 28th, 2002
Room 104, Gates Computer Science Building

Herald: Achieving a Global Event Notification Service

Marvin Theimer
Microsoft Research

Slides: [ PPT ]

About the talk:

This talk will present the design philosophy and initial design decisions of Herald: a highly scalable global event notification system that is being designed and built at Microsoft Research. Herald is a distributed system designed to transparently scale in all respects, including numbers of subscribers and publishers, numbers of event subscription points, and event delivery rates. Event delivery can occur within a single machine, within a local network or Intranet, and throughout the Internet.

Herald tries to take into account the lessons learned from the successes of both the Internet and the Web. Most notably, Herald is being designed, like the Internet, to operate correctly in the presence of numerous broken and disconnected components. The Herald service is being constructed as a set of protocols governing a federation of machines within cooperating but mutually suspicious domains of trust. Like the Web, Herald will try to avoid, to the extent possible, the maintenance of globally consistent state and will make failures part of the client-visible interface.

Recently, we have been investigating the tradeoffs involved in using overlay networks such as Pastry and CAN as a means of implementing event delivery to the subscribers of an event topic. Some preliminary results from these investigations will be presented.

About the speaker:

Marvin Theimer received a PhD in Computer Science from Stanford University in 1986. He then spent two years with the QuickSilver distributed operating system project at IBM's Almaden Research Center. Following that, he spent almost ten years at Xerox's Palo Alto Research Center exploring the topics of ubiquitous computing and weakly-consistent, replicated systems. He is currently a Senior Researcher at Microsoft Research, exploring topics in Internet infrastructure and peer-to-peer computing.