Thank you for visiting us. We are currently updating our shopping cart and regret to advise that it will be unavailable until September 1, 2014. We apologise for any inconvenience and look forward to serving you again.

Wiley
Wiley.com
Print this page Share

Publish / Subscribe Systems: Design and Principles

ISBN: 978-1-119-95154-4
360 pages
August 2012
Publish / Subscribe Systems: Design and Principles (1119951542) cover image

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.

See More

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

See More

Related Titles

Back to Top