Newspaper distribution Newspaper companies publish newspapers
Readers (un)subscribe to a company for a newspaper Company sends
newspaper to its subscribers 4
Slide 5
Newspaper distribution 5
Slide 6
Stock exchange Jobs wants to buy AAPL below $30 Gates wants to
buy MSFT below $40 Buffett wants to sell MSFT and AAPL for $35
Traders are intermediaries Publication and subscription are
decoupled Buffett does not know who he sold to Gates does not know
who he bought from 6
Slide 7
Stock exchange 2 NYSE provides feed of stock updates Humongous,
fast Traders are only interested in parts of it Need filtering
7
Slide 8
8 Eugster 2003: The many faces of publish/subscribe
Slide 9
Constraints Subscribers register their interest Interest in a
publisher, an event, or a content Publishers generate events
Sometimes through intermediaries called message broker, or message
bus, or even proxy Usually asynchronous Publishers dont wait for
subscribers to publish Subscribers give a callback to be notified
9
Slide 10
Gains Scalable one-way communication Usually over the network
Well adapted to the loosely coupled nature of distributed
large-scale applications [Eugster03] Can decouple subscribers from
publishers Decoupling Privacy Content filtering 10
Slide 11
Request-reply vs pubsub Request-reply Implies client-server
Medium coupling Pull info Pubsub Less coupled Push info 11
Slide 12
More about pubsub AKA producer-consumer Implies message queues
Pubsub != client-server 12 CriteriaPubsubClient-server Message
passingOne-wayTwo-way Request-replyImpossiblePossible Information
flowPublishers push to subscribers Clients pull from server
Slide 13
Pubsub + space partitioning = scale 13
http://www.cescg.org/CESCG-2000/JKrivanek/
Slide 14
But What if everyone subscribes to one item? BarackObama: 43M
followers on Twitter Bandwidth limits, slower updates Can/should
cache What if everyone subscribes to everything? Then Pubsub is
probably not the right style 14
Slide 15
Apple Push Notifications 15
http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1
Slide 16
Apple Push Notifications Subscription Device token = content of
interest Delivered by APNS, for security why? Notification APNS
intermediary between appServer and appClient For privacy why?
16
Slide 17
17
Slide 18
Zoom-in/out Zoom on a region of the board Useful with a million
small pieces Originally client-side The server sends all piece
movement events Most events that the client receives are not
rendered, and could be ignored Then server-side pubsub Only receive
events near me Client subscription == client view Client model =
subset of server model 18
Slide 19
Near me Current view: x, y, w, h Subscribe to [x: x+w, y: y+h]
Subscribe to [x-d: x+w+d, y-d: y+h+d] Partition the world
statically in cells Subscribe to the cells that my view overlap
with 19 User-oriented software development for real time online
applications, Gorlatch 2008
Slide 20
EVENT BROKERS 20
Slide 21
Event broker vs pubsub Event broker = pubsub With an
intermediary Where subscribers publish And publishers subscribe And
usually with function callbacks rather than over the network
21
Slide 22
Mini-map Receive player position message Change player position
on main screen Change player position on mini-map 22
Slide 23
23
Slide 24
Mini-map Main view and mini-map view Both subscribe to: My
movements Quest markers The main view subscribes to: Other players
movement The mini-map subscribes to: Zoom clicks 24
Slide 25
Widgets GUI widgets N widgets interested in an event A widget
may fire another event in response Enqueue new event? Or dispatch
it right away? 25
If youre interested http://msdn.microsoft.com/en-
us/library/ff650653.aspx http://msdn.microsoft.com/en-
us/library/ff650653.aspx http://ezide.com/games/writing-games.html
The Many Faces of Publish/Subscribe, Eugster et al. 2003
http://code.google.com/p/pubsubhubbub/
http://www.capitalware.com/dl/docs/intro_p ub_sub.pdf
http://www.capitalware.com/dl/docs/intro_p ub_sub.pdf 28