1 / 28

Publish-subscribe, Event brokers

Publish-subscribe, Event brokers. INF 123 – Software architecture tdebeauv@uci.edu. Outline. Pubsub Event brokers. pubsub. Newspaper distribution. Newspaper companies publish newspapers Readers (un)subscribe to a company for a newspaper Company sends newspaper to its subscribers.

deiter
Download Presentation

Publish-subscribe, Event brokers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Outline • Pubsub • Event brokers

  3. pubsub

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

  5. Newspaper distribution

  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

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

  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

  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

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

  12. More about pubsub • AKA producer-consumer • Implies message queues • Pubsub != client-server

  13. Pubsub + space partitioning = scale 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

  15. Apple Push Notifications 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?

  17. 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. “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 User-oriented software development for real time online applications, Gorlatch 2008

  19. Event brokers

  20. 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. Mini-map • Receive player position message • Change player position on main screen • Change player position on mini-map

  22. 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

  23. 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?

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

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

  26. If you’re interested … • 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_pub_sub.pdf

More Related