Publish-subscribe, Event brokers INF 123 – Software architecture [email protected] 1.

download Publish-subscribe, Event brokers INF 123 – Software architecture tdebeauv@uci.edu 1.

If you can't read please download the document

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