Rights Contact Login For More Details
- Wiley
More About This Title Publish/Subscribe Systems - Design and Principles
- English
English
This book offers an unified treatment of the problems solved by publish/subscribe, how to design and implement the solutions
In this book, the author provides an insight into the publish/subscribe technology including the design, implementation, and evaluation of new systems based on the technology. The book also addresses the basic design patterns and solutions, and discusses their application in practical application scenarios. Furthermore, the author examines current standards and industry best practices as well as recent research proposals in the area. Finally, necessary content matching, filtering, and aggregation algorithms and data structures are extensively covered as well as the mechanisms needed for realizing distributed publish/subscribe across the Internet.
Key Features:
- Addresses the basic design patterns and solutions
- Covers applications and example cases including; combining Publish/Subscribe with cloud, Twitter, Facebook, mobile push (app store), Service Oriented Architecture (SOA), Internet of Things and multiplayer games
- Examines current standards and industry best practices as well as recent research proposals in the area
- Covers content matching, filtering, and aggregation algorithms and data structures as well as the mechanisms needed for realizing distributed publish/subscribe across the Internet
Publish/Subscribe Systems will be an invaluable guide for graduate/postgraduate students and specialists in the IT industry, distributed systems and enterprise computing, software engineers and programmers working in social computing and mobile computing, researchers. Undergraduate students will also find this book of interest.
- English
English
Professor Sasu Tarkoma, University of Helsinki, Finland
Sasu Tarkoma is a full professor in the Department of Computer Science at the University of Helsinki. He leads the Networking and Services specialization line at the Department. His research interests include publish/subscribe, mobile computing, and Internet technology. He received a PhD in computer science from the University of Helsinki. He has authored two textbooks and over 100 scientific articles.
- English
English
About the Author xiii
Notes on Contributors xv
Preface xvii
1 Introduction 1
1.1 Overview 1
1.2 Components of a Pub/Sub System 4
1.2.1 Basic System 4
1.2.2 Distribution and Overlay Networks 5
1.2.3 Agreements 6
1.2.4 The Event Loop 7
1.2.5 Basic Properties 7
1.3 A Pub/Sub Service Model 9
1.4 Distributed Pub/Sub 10
1.5 Interfaces and Operations 11
1.6 Pub/Sub Semantics for Targeted Delivery 13
1.7 Communication Techniques 15
1.8 Environments 17
1.9 History 18
1.9.1 Research Systems 19
1.9.2 Standards 22
1.9.3 Internet Technology 23
1.9.4 A Taxonomy 24
1.10 Application Areas 26
1.11 Structure of the Book 27
References 29
2 Networking and Messaging 31
2.1 Networking 31
2.1.1 Overview 31
2.1.2 Sockets, Middleware, and Applications 33
2.1.3 Naming and Addressing 34
2.1.4 Organization 35
2.1.5 Firewalls and NATs 35
2.2 Multicast 36
2.2.1 IP (Network Layer) IP-Multicast 36
2.2.2 Application-Layer Multicast 38
2.3 Reverse Path Forwarding and Routing 38
2.4 Causality and Clocks 39
2.4.1 Causal Ordering and Lamport Clocks 39
2.4.2 Vector Clocks 40
2.4.3 Total Ordering 40
2.4.4 Discussion 41
2.5 Message Passing and RPC/RMI 42
2.5.1 Store and Forward 44
2.5.2 Concurrent Message Processing 44
2.5.3 Semantics and QoS 46
2.6 Web Services 46
2.6.1 Overview 47
2.6.2 Asynchronous Processing 48
2.6.3 The Connector Model 49
2.6.4 Web Service Platform 50
2.6.5 Enterprise Service Bus (ESB) 52
2.6.6 Service Composition 52
2.7 Session Initiation Protocol (SIP) 53
2.7.1 SIP Framework 53
2.7.2 Method Types 54
2.7.3 Establishing a Session 55
2.7.4 Extensions 55
2.8 Summary 56
References 56
3 Overlay Networks and Distributed Hash Tables 59
3.1 Overview 59
3.2 Usage 61
3.3 Consistent Hashing 62
3.4 Geometries 63
3.5 DHTs 64
3.5.1 DHT APIs 65
3.5.2 Chord 65
3.5.3 Pastry 67
3.5.4 Discussion 72
3.6 Gossip Systems 73
3.6.1 Overview 73
3.6.2 View Shuffling 75
3.6.3 Gossip for Pub/Sub 76
3.7 Summary 77
References 77
4 Principles and Patterns 79
4.1 Introduction 79
4.2 General Pub/Sub Model 80
4.2.1 Principles and Characteristics 80
4.2.2 Message Service 82
4.2.3 General Patterns 82
4.2.4 Event Notification Patterns 82
4.3 Architectural Patterns 83
4.4 Design Patterns 85
4.4.1 Structural Patterns 85
4.4.2 Behavioural Patterns 86
4.4.3 Concurrency Patterns 86
4.5 Design Patterns for Pub/Sub 86
4.5.1 Broker 86
4.5.2 Observer 87
4.5.3 Model-View-Control (MVC) 89
4.5.4 Rendezvous Point 91
4.5.5 Handoff with Rendezvous 91
4.5.6 Client-Initiated Connection 92
4.5.7 Other Patterns 93
4.6 Event Notifier Pattern 94
4.6.1 Overview 94
4.6.2 Structure 95
4.6.3 Distributed Event Notifier 97
4.6.4 Design Considerations 98
4.7 Enterprise Integration Patterns 101
4.8 Summary 103
References 103
5 Standards and Products 105
5.1 CORBA Event Service 105
5.2 CORBA Notification Service and Channel Management 106
5.3 OMG Data Distribution Service (DDS) 109
5.3.1 Overview 110
5.3.2 QoS Policies 111
5.3.3 Real-Time Communications 111
5.3.4 Applications 112
5.4 SIP Event Framework 113
5.5 Java Delegation Event Model 114
5.6 Java Distributed Event Model 114
5.7 Java Message Service (JMS) 115
5.7.1 Two Communication Models 116
5.7.2 Message Types and Selection 117
5.7.3 JMS Process 118
5.7.4 Message Delivery 120
5.7.5 Transactions 121
5.7.6 Advanced Issues 121
5.7.7 JMS in Java EE and Implementations 121
5.8 TibCo Rendezvous 122
5.9 COM+ and .NET 123
5.10 Websphere MQ 125
5.10.1 Overview 125
5.10.2 Pub/Sub in WebSphere MQ 126
5.11 Advanced Message Queuing Protocol (AMQP) 127
5.12 MQ Telemetry Transport (MQTT) 129
5.13 Summary 130
References 132
6 Web Technology 133
6.1 REST 133
6.2 AJAX 134
6.3 RSS and Atom 135
6.4 SOAP 137
6.5 XMPP 139
6.6 Constrained Application Protocol (CoAP) 140
6.7 W3C DOM Events 141
6.8 WS-Eventing and WS-Notification 142
6.9 Summary 143
References 143
7 Distributed Publish/Subscribe 145
7.1 Overview 145
7.2 Filtering Content 148
7.3 Routing Function 150
7.4 Topic-Based Routing 153
7.4.1 Mechanisms 154
7.4.2 Channelization Problem 154
7.4.3 Distributed Overlay with Many Topics 155
7.4.4 Dynamic Clustering in Topic-Based Pub/Sub 155
7.4.5 Summary 155
7.5 Filter-Based Routing 155
7.6 Content-Based Routing 157
7.6.1 Addressing Model 158
7.6.2 Propagating Routing Information 159
7.6.3 Routing Behaviour: Subscriptions 160
7.6.4 Routing Behaviour: Advertisements 161
7.6.5 Routing Tables 162
7.6.6 Forwarding 163
7.6.7 Performance Issues 164
7.6.8 A Generalized Broker with Advertisements 164
7.7 Rendezvous-Based Routing 166
7.8 Routing Invariants 167
7.8.1 Configurations 167
7.8.2 Pub/Sub Configurations 168
7.8.3 False Positives and Negatives 169
7.8.4 Weakly Valid Routing Configuration 169
7.8.5 Mobility-Safety 170
7.8.6 Stabilization and Eventual Correctness 170
7.8.7 Soft State 171
7.9 Summary 172
References 174
8 Matching Content Against Constraints 177
8.1 Overview 177
8.2 Matching Techniques 178
8.3 Filter Preliminaries 180
8.4 The Counting Algorithm 181
8.4.1 Overview 182
8.4.2 Algorithms 183
8.5 Matching with Posets 186
8.5.1 Poset Preliminaries 187
8.5.2 SIENA Poset 188
8.5.3 Poset-Derived Forest 191
8.5.4 Matching Events 192
8.6 Tree Matcher 193
8.7 XFilter and YFilter 194
8.8 Bloom Filters 196
8.8.1 Definition 197
8.8.2 Summary Subscriptions 198
8.8.3 Multicast Forwarding 198
8.8.4 Content-Based Forwarding 198
8.8.5 Multi-Level Bloom Filters 200
8.9 Summary 200
References 202
9 Research Solutions 205
9.1 Gryphon 205
9.2 The Cambridge Event Architecture (CEA) 207
9.3 Scalable Internet Event Notification Architecture (SIENA) 208
9.3.1 Event Namespace 209
9.3.2 Routing 209
9.3.3 Forwarding 210
9.3.4 Mobility Support 211
9.3.5 CBCB Routing Scheme 211
9.4 Elvin 213
9.4.1 Clustering 213
9.4.2 Federation 214
9.4.3 Quench 214
9.4.4 Mobile Support 214
9.4.5 Nondestructive Notification Receipt 215
9.5 JEDI 215
9.6 PADRES 217
9.6.1 Modular Design 217
9.6.2 Load Balancing 218
9.6.3 Composite Events 218
9.7 REDS 219
9.8 GREEN 220
9.9 Rebeca 220
9.10 XSIENA and StreamMine 221
9.11 Fuego Event Service 222
9.11.1 Fuego Middleware 222
9.11.2 Event Service 223
9.11.3 Filtering 224
9.11.4 Client-Side API 224
9.11.5 Event Router 224
9.11.6 Data Structures for Content-Based Routing 225
9.12 STEAM 227
9.13 ECho and JECho 227
9.14 DHT-Based Systems 228
9.14.1 Scribe 228
9.14.2 Bayeux and Tapestry 230
9.14.3 Hermes 231
9.14.4 Other Systems 233
9.15 Summary 234
References 235
10 IR-Style Document Dissemination in DHTs 239
10.1 Introduction 239
10.2 Data Model and Problem Statement 240
10.2.1 Data Model 240
10.2.2 Problem Statement and Challenges 241
10.3 STAIRS: Threshold-Based Document Filtering in DHTs 242
10.3.1 Overview of DHT-Based P2P Networks 242
10.3.2 Solution Framework 242
10.3.3 Document Forwarding Algorithm 244
10.4 Recent Progress and Discussion 246
10.4.1 Recent Progress 246
10.4.2 Discussion 247
10.5 Summary 248
References 248
11 Advanced Topics 251
11.1 Security 251
11.1.1 Overview 251
11.1.2 Security Threats 252
11.1.3 Security Issues in Pub/Sub Networks 253
11.1.4 EventGuard 254
11.1.5 QUIP 255
11.1.6 Hermes 255
11.1.7 Encrypting Attributes 257
11.1.8 Privacy 257
11.2 Composite Subscriptions 258
11.3 Filter Merging 260
11.4 Load Balancing 263
11.5 Content-Based Channelization 265
11.6 Reconfiguration 266
11.6.1 Middleware Component Reconfiguration 267
11.6.2 Topology Reconfiguration with Failures and Mobile Brokers 267
11.6.3 Self-Organizing Pub/Sub with Clustering 269
11.7 Mobility Support 270
11.7.1 Generic Pub/Sub Mobility 272
11.7.2 Graph Based Mobility with Optimizations 274
11.8 Congestion Control 277
11.8.1 Rate-Control Using Posets 277
11.8.2 Explicit Signalling 279
11.8.3 Rerouting to Avoid Congestion 279
11.9 Evaluation of Pub/Sub Systems 280
11.10 Summary 282
References 283
12 Applications 287
12.1 Cloud Computing 287
12.1.1 Pub/Sub for Cloud 288
12.1.2 The Windows Azure AppFabric Service Bus 288
12.1.3 Amazon Simple Queue Service (SQS) 291
12.1.4 PubNub 291
12.2 SOA and XML Brokering 292
12.3 Facebook Services 294
12.3.1 Facebook Messages 294
12.3.2 Facebook Chat and Messenger 295
12.4 PubSubHubbub 297
12.5 Complex Event Processing (CEP) 299
12.6 Online Advertisement 301
12.7 Online Multiplayer Games 303
12.8 Apple Push Notification Service (APNS) 303
12.9 Internet of Things 304
12.10 Summary 305
References 306
13 Clean-Slate Datacentric Pub/Sub Networking 309
13.1 Datacentric Communication Model 309
13.1.1 Naming of Data 310
13.1.2 Content Security 312
13.2 CCN 314
13.2.1 CCN Node Operation 314
13.2.2 CCN Transport Model 315
13.2.3 Interest Routing 316
13.3 PSIRP/PURSUIT 317
13.4 Internet Interdomain Structure 318
13.4.1 Policy Routing Problem 320
13.4.2 PURSUIT Global Rendezvous 321
13.5 Summary 323
References 325
14 Conclusions 327
Index 333