Presentation is loading. Please wait.

Presentation is loading. Please wait.

Publish-subscribe, Event brokers INF 123 – Software architecture 1.

Similar presentations


Presentation on theme: "Publish-subscribe, Event brokers INF 123 – Software architecture 1."— Presentation transcript:

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

2 Outline Pubsub Event brokers 2

3 PUBSUB 3

4 Newspaper distribution Newspaper companies publish newspapers Readers (un)subscribe to a company for a newspaper Company sends newspaper to its subscribers 4

5 Newspaper distribution 5

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

7 Stock exchange 2 NYSE provides feed of stock updates – Humongous, fast Traders are only interested in parts of it – Need filtering 7

8 8 Eugster 2003: The many faces of publish/subscribe

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 don’t wait for subscribers to publish – Subscribers give a callback to be notified 9

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

11 Request-reply vs pubsub Request-reply Implies client-server – Medium coupling Pull info Pubsub Less coupled Push info 11

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

13 Pubsub + space partitioning = scale 13 http://www.cescg.org/CESCG-2000/JKrivanek/

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

15 Apple Push Notifications 15 http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1

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

17 17

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

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

20 EVENT BROKERS 20

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

22 Mini-map Receive player position message Change player position on main screen Change player position on mini-map 22

23 23

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

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

26 Publish events 26 http://ezide.com/games/writing-games.html

27 Dispatch events 27 http://ezide.com/games/writing-games.html

28 If you’re 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


Download ppt "Publish-subscribe, Event brokers INF 123 – Software architecture 1."

Similar presentations


Ads by Google