Publish-subscribe, Event brokers INF 123 – Software architecture [email protected] 1.
-
Upload
oswin-riley -
Category
Documents
-
view
214 -
download
2
Transcript of Publish-subscribe, Event brokers INF 123 – Software architecture [email protected] 1.
- Slide 1
- Publish-subscribe, Event brokers INF 123 Software architecture [email protected] 1
- Slide 2
- Outline Pubsub Event brokers 2
- Slide 3
- PUBSUB 3
- Slide 4
- 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
- Slide 26
- Publish events 26 http://ezide.com/games/writing-games.html
- Slide 27
- Dispatch events 27 http://ezide.com/games/writing-games.html
- Slide 28
- 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