Advanced Publish/Subscribe Communication Services Antonio Carzaniga and Alexander L. Wolf University of Colorado at Boulder Boulder, Colorado USA {carzanig alw}@cs colorado edu {carzanig,alw}@cs.colorado.edu
About the Tutors � Antonio Carzaniga – PhD: Politecnico di Milano, Italy – Previously at CEFRIEL � Alexander L. Wolf – PhD: University of Massachusetts, Amherst USA PhD: University of Massachusetts, Amherst USA – Previously at AT&T Bell Laboratories � General research interests � General research interests – software engineering, distributed systems, security and networking security, and networking – Developers of the Siena pub/sub system
Outline � What is publish/subscribe communication? � Service models � Implementation models � Implementation models � Survey of representative pub/sub systems � Using publish/subscribe communication U i bli h/ b ib i ti � Advanced topics
Outline � What is publish/subscribe communication? � Service models � Implementation models � Implementation models � Survey of representative pub/sub systems � Using publish/subscribe communication U i bli h/ b ib i ti � Advanced topics
Origins of Publish/Subscribe � Database triggers – Ingres client client 2 li t 2 � Message-oriented middleware mailbox – IBM MQSeries mailbox client 1 � Message-based software bus architecture g � – Field client 1 client 2 – Sun ToolTalk Sun ToolTalk bus – DEC Fuse client 3
Common Characteristics � Asynchrony – send and forget � Reactive – computation driven by receipt of message � Location/identity abstraction � Location/identity abstraction – destination determined by receiver, not sender � Loose coupling � Loose coupling – senders/receivers added without reconfiguration – one-to-many, many-to-one, many-to-many
Levels of Deployment � From machines to whole networks – Single machine » call back, signal – LAN » RPC – WAN » client/server, overlay router network � Single machine/LAN solutions are mature � WAN (e.g., the Internet) solutions still require ( g , ) q significant new research advances
Basic Approaches to Publish/Subscribe � Listener model – receivers register with senders – sender/receiver communication is point-to-point � Database trigger model – “senders” update tables senders update tables – “receivers” (or internal code) notified of changes � Broker model � Broker model – receivers register with common message broker – sender/receiver communication is mediated by d / i i ti i di t d b message broker through a middleware service
Publish/Subscribe Middleware Service want United offers subscribe low air fares low air fares DEN MXP DEN-MXP notification to Europe October publish want want notify notify special offers publication by United publish/subscribe publish/subscribe Alitalia offers service service DEN-MXP subscription subscription Nov-Feb want to fly December subscriber DEN MXP DEN-MXP publisher
Sampling of Applications � Gaming � File sharing � Workflow � Sensor grids � Auctioning � News distribution � Intrusion detection � Group communication � Network management � Resource discovery � Application � Software component management integration
General Goals and Objectives � Dynamic integration of heterogeneous computing and information services � Timely information dissemination � Support for loosely-coupled, distributed applications li ti � Scalable deployment
Outline � What is publish/subscribe communication? � Service models � Implementation models � Implementation models � Survey of representative pub/sub systems � Using publish/subscribe communication U i bli h/ b ib i ti � Advanced topics
Basic Elements of a Service Model � Data model – structure – types � Subscription model – filter language filter language – scope – subscription modifications subscription modifications � General challenge – expressiveness versus scalability i l bilit
Data Model Fare Offer United DEN MXP 850 USD string getAirline United DEN MXP 850 USD setAirline getOrigin tO i i list of values setOrigin United Airline <fare-offer> fare offer getDestination DEN Origin <al>United</al> setDestination <orig>DEN</orig> getPrice MXP Destination <dest>MXP</dest> <dest>MXP</dest> setPrice setPrice 850 Price <price>850</price> getCurrency USD Currency <cur>USD</cur> setCurrency </fare-offer> set of named values full type system tree of named values
Subscription Model: Filter Language � Operators are implied by the data model prefix, suffix, substring, regular g g string expression value operators + indexing list value operators + selection named values value operators + structure walk p tree user-defined operators full type
Example: Siena Data Model � A publication is a set of typed attributes attribute ≡ (type,name,value)
Example: Siena Filter Language � A filter is a list of attribute constraints attribute constraint ≡ (type,name,operator,value)
Example: Siena Matching Rules � Matching is defined by covering relations p matches f (or f covers p ) publication p filter f refundable = no airline = United price = 850 price = 850 price < 900 price < 900 destination = MXP price > 300 airline = United destination any y
Scope/Expressiveness of Subscriptions � Channel joinChannel(37) Fare Offer Subject U it d United – channel identifier Ai li Airline channel DEN Origin 37 – equality over channel MXP Destination identifiers identifiers 850 850 Price Price Fare Offer Subject USD � Subject (or topic) Currency United Airline DEN subscribe(“Fare ∗ ”) Origin – designated subject field designated subject field MXP Destination – general filter applied to 850 Price designated field USD Currency Fare Offer Subject � Content United Airline subscribe(“Origin=DEN,Price<900”) DEN Origin – all message fields MXP Destination – general filter applied to 850 Price full message content USD Currency
Multicast vs. Content-Based Pub/Sub Multicast Service Content-Based Service joinGroup( IF , group ) ifconfig( IF , predicate ) leaveGroup( IF , group ) ifconfig( IF , false ) ip_send( datagram ) send( message ) resource=printer resource=printer dest=224.11.22.33 dest=224.11.22.33 resource=printer resource=printer dest=224.11.22.33 dest=224.11.22.33 language=PS language=PS 224.11.22.33 dest=224.11.22.35 dest=224.11.22.35 resource=printer resource=printer 224.11.22.35 language=plc5 language=plc5 224.11.22.34 resource=printer resource=printer status=ready status=ready dest=224.11.22.34 dest=224.11.22.34 maker= HP maker= HP age > 3 age > 3 age 3 age 3 partition arbitrary subsets
Multicast vs. Content-Based Pub/Sub � Special case of content-based pub/sub – joining multicast group g is equivalent to defining a receiver predicate that selects messages addressed to g dd d � Multicast designed for streaming media – relatively stable set of groups and membership – simple channel-based interface � Content-based pub/sub is intended to support unpredictable interaction patterns pp p p – sophisticated content-based interface
Some Filter Language Issues � Negation operator � increased expressiveness � unclear utility set-of( ¬ f) ≡ Χ pub \ set-of(f) � User-defined operator � increased expressiveness increased expressiveness � unpredictable execution md5-hash(signature) = “7dc81ef” � Patterns � Patterns � increased expressiveness � � unclear choice of semantics l h i f ti � unpredictable execution (f 1 • f 2 )* • (f 3 |f 4 )
Example: Siena Filter Pattern � A pattern correlates messages of interest f = f 1 followed by f 2 filter f 1 filter f 2 airline = United airline = United price < 900 price < 900 price < 1200 price < 1200 price ≥ 900 price > 300 destination destination any y any y
Subscription Modifications � Incremental style – effect of each subscription is “additive” – new filter represents logical relation among subscriptions – service must provide an explicit unsubscribe command – client must “remember” subscription history � Subscribe-and-forget style – effect of each subscription is complete p p – no need for unsubscribe nor history
Incremental Subscriptions airline = United airline = United = price < 400 i 400 price < 400 i 400 ⊕ airline = United airline = United airline = United ∨ ∨ = = destination = MXP price < 400 destination = MXP ⊕ airline = United airline = United airline = United ∨ = price < 900 price < 900 destination = MXP ⊕ airline = United airline = United airline = United airline = United airline = United airline = United ∨ = price < 650 price < 900 destination = MXP ⊕ airline = United i li U it d airline = United i li U it d = price < 900 destination = MXP
Recommend
More recommend