Title: Current Events
1Current Events
2Internet-Scale Event Notification Systems
- What are they
- Why are they useful
- What are considerations when designing/using one
- Real-world in-depth example Siena
3Event Systems
- As described to CS1001
- An Invitation To Computer Science
- An algorithm is a well-ordered sequence of
unambiguous, effectively computable operations
that eventually terminates and produces a result - Algorithms no longer always terminate
- Algorithms no longer always produce results
- Modern programs sit around and wait for events
4A Good Solution To A Difficult Problem
- Something has happened that could be of interest
to a number of parties, e.g. a mouse click - Messaging system requires event source to know
the event destination - Event systems free the source of the event from
worrying about who the interested parties are
5Better Than RPCs For Distributed Computing?
- Maybe
- Analogy with web interfaces to databases
- Fewer complaints even with identical underlying
implementation - Because when theyre looking at a browser, people
are used to waiting - RPCs are tricky programmers and programs think
of methods as executing immediately and reliably - Event handlers are written with the assumption
that they can fire at any time in any sequence - Works well with dynamic topology
6How To Scale To 100 Million Hosts?
- Just send every event to every host and let them
ignore what theyre not interested in - Uh, no.
- Each program keeps track of whos interested in
its events and sends them only to those hosts - Nice, but thats called a Messaging System.
Wrong lecture. - Create a middleware layer that keeps track of
publishers and subscribers - Sounds good, but easier said than done
7Terminology
- Object of interest generates events
- Interested party wants to receive events
- Ooi advertises events it can generate
- Ip subscribes to events that interest it
- Ooi publishes (generates) an event
- Ip is notified of the event
- Also unadvertising and unsubscribing
8What Does An Event System Do?
- Keep track of advertisements
- Keep track of subscriptions
- Delivery notifications efficiently
- Phil adds keep track of its own status
9Major Issues
- Event observation
- Mechanism for actually delivering notification
poll or interrupt? - How is information extracted from the event?
- Filtering expressiveness vs. efficiency
- Time ordering, i.e. rewriting TCP
- Accounting
- Reconfiguration
- Oh yeah, theres this little issue named security
10On The Wish List
- API
- Content-based subscription
- Asynchronous, reliable, specific notification
- Anonymous or authenticated publishers and
subscribers - QoS receive event
- At least once
- At most once
- Exactly once (TCP redux)
- Probably want support for idempotence
11Domains
- Internet printing
- large number of subscribers, multiple
notification methods - Satellite Services
- 108-109 events per day
- Aggregation of events
- Financial
- 1,000 notifications to 5-10,000 workstations
- Every second
- Reliable storage
- Conclusion probably no one-size-fits-all solution
12Applications
- Battlefield intelligence, Process control,
Meteorology, Telemetry, Medical, Internet gaming,
Collaboration/Workflow, Retail (recalls,
update/patch availability, special offers), Smart
house - Nice synergy with wireless
- Buzzword of the day Event Mining
13Things that go notify in the night
14Clustering by Application Context
15Clustering by Notification Features
16Evolution
17Taxonomy of ENS Design Space
- Initiation
- Source- (interrupt) vs. Sink-initiated (poll)
- Synchronization
- Synchronous (batched) vs. Asynchronous (deferred)
- Blocking
- Blocking vs. Non-blocking handlers
- Causality
- Ordered vs. unordered, duplicate, and/or missing
- Timing (may be a spectrum)
- Real- (deadlined) to Virtual-time (eventual)
delivery
18Miscellaneous Notes
- Internet-Scale doesnt just mean Internet
Satellite services - Avoid pushing data through event system metadata
only - Plan event semantics early and globally
- Avoid messaging semantics
- Quenching/Vetoing
19SIENA Event Service
financial institution
NASDAQ
Event Service
object of interest
interested party
subscription
advertisement
NEW
subject stock name price
subject stock name MSFT
advertise
subscribe
unadvertise
unsubscribe
notification
Subject stock name MSFT price 123 diff
-1.0
publish
notify
20Filters and Patterns
Pattern
Filter X price time
publish
publish
publish
publish
publish
publish
publish
publish
publish
price2 stockMSFT date7.12.98
currLira qty4321
currLira qty4321 diff10
price3 stockDEC
price12 stockDEC
price1
price10
price2
price7
X
Y
Z
X price XYZ
y
x
y
x
z
z
x
notify
notify
notify
price1
price2
price2 stockMSFT date7.12.98
currLira qty4321
currLira qty4321 diff10
price3 stockDEC
21Optimization
- Multicasting is done downstream(closer to
interested parties)
- Filters and patterns evaluated upstream(closer
to objects of interest)
pattern assembly ABAB
multicast of notification
X
A
advertisement
subscription
advertisements
X
A
AB
X
B
B
subscriptions
AB
AB
A
X
A
AB
22Bibliography
- 1998 Workshop on Internet Scale Event
Notification - http//www.ics.uci.edu/IRUS/twist/wisen98/program.
html - Historical overview from KnowNow.com founders
- http//www.cs.caltech.edu/adam/isen/wacc
- Siena system
- http//www.cs.colorado.edu/carzanig/siena
- Elvin system
- http//elvin.dstc.edu.au/