Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010103736 | QA76.9.D5 M83 2006 | Open Access Book | Book | Searching... |
Searching... | 30000010150400 | QA76.9.D5 M83 2006 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
In today's world, services and data are integrated in ever new constellations, requiring the easy, flexible and scalable integration of autonomous, heterogeneous components into complex systems at any time.
Event-based architectures inherently decouple system components. Event-based components are not designed to work with specific other components in a traditional request/reply mode, but separate communication from computation through asynchronous communication mechanisms via a dedicated notification service.
Mühl, Fiege, and Pietzuch provide the reader with an in-depth description of event-based systems. They cover the complete spectrum of topics, ranging from a treatment of local event matching and distributed event forwarding algorithms, through a more practical discussion of software engineering issues raised by the event-based style, to a presentation of state-of-the-art research topics in event-based systems, such as composite event detection and security. Their presentation gives researchers a comprehensive overview of the area and lots of hints for future research. In addition, they show the power of event-based architectures in modern system design, thus encouraging professionals to exploit this technique in next generation large-scale distributed applications like information dissemination, network monitoring, enterprise application integration, or mobile systems.
Table of Contents
1 Introduction | p. 1 |
1.1 Networked Computing | p. 1 |
1.2 Middleware | p. 2 |
1.3 Event-Based Systems | p. 3 |
1.4 Application Scenarios | p. 4 |
1.4.1 Information Dissemination | p. 4 |
1.4.2 Network Monitoring | p. 4 |
1.4.3 Enterprise Application Integration | p. 5 |
1.4.4 Mobile Systems | p. 6 |
1.4.5 Ubiquitous systems | p. 6 |
1.5 Putting Event-Based Systems Into Context | p. 7 |
1.6 From Centralized to Internet-Scale Event Systems | p. 8 |
1.7 Structure of the Book | p. 8 |
2 Basics | p. 11 |
2.1 Terminology | p. 11 |
2.1.1 Events and Notifications | p. 11 |
2.1.2 Producers and Consumers | p. 12 |
2.1.3 Subscriptions and Filters | p. 13 |
2.1.4 Event Notification Service | p. 13 |
2.2 Models of Interaction | p. 14 |
2.2.1 Request/Reply | p. 15 |
2.2.2 Anonymous Request/Reply | p. 15 |
2.2.3 Callback | p. 16 |
2.2.4 Event-Based | p. 16 |
2.2.5 Comparison | p. 17 |
2.2.6 Interaction vs. Implementation | p. 17 |
2.3 Notification Filtering Mechanisms | p. 19 |
2.3.1 Channels | p. 19 |
2.3.2 Subject-Based Filtering | p. 19 |
2.3.3 Type-Based Filtering | p. 19 |
2.3.4 Content-Based Filtering | p. 20 |
2.4 A Model Distributed Notification Service | p. 20 |
2.4.1 System Model | p. 20 |
2.4.2 Architecture | p. 21 |
2.4.3 Distributed Notification Routing | p. 22 |
2.5 Specification of Event Systems | p. 23 |
2.5.1 Formal Background | p. 24 |
2.5.2 A Simple Event System | p. 26 |
2.5.3 A Simple Event System With Ordering Requirements | p. 30 |
2.5.4 Simple Event System With Advertisements | p. 31 |
2.6 Further Reading | p. 33 |
3 Content-Based Models and Matching | p. 35 |
3.1 Content-Based Data and Filter Models | p. 35 |
3.1.1 Tuples | p. 35 |
3.1.2 Structured Records | p. 36 |
3.1.3 Semistructured Records | p. 52 |
3.1.4 Objects | p. 56 |
3.2 Matching Algorithms | p. 57 |
3.2.1 Brute Force | p. 59 |
3.2.2 Counting Algorithm | p. 59 |
3.2.3 Decision Trees | p. 60 |
3.2.4 Binary Decision Diagrams | p. 61 |
3.2.5 Efficient XML Matching | p. 63 |
3.3 Further Reading | p. 64 |
4 Distributed Notification Routing | p. 67 |
4.1 System Model | p. 67 |
4.2 Routing Algorithm Framework | p. 69 |
4.2.1 Atomic Steps of the Implementation | p. 69 |
4.2.2 Notification Forwarding and Delivery | p. 72 |
4.2.3 Avoidance of Duplicate and Spurious Notifications | p. 73 |
4.2.4 Routing Table Updates | p. 73 |
4.3 Valid and Monotone Valid Routing Algorithms | p. 74 |
4.3.1 Valid Routing Algorithms | p. 74 |
4.3.2 Monotone Valid Routing Algorithms | p. 76 |
4.4 Valid Framework Instantiations | p. 77 |
4.5 Content-Based Routing Algorithms | p. 80 |
4.5.1 Flooding | p. 81 |
4.5.2 Simple Routing | p. 82 |
4.5.3 Identity-Based Routing | p. 85 |
4.5.4 Covering-Based Routing | p. 91 |
4.5.5 Merging-Based Routing | p. 98 |
4.5.6 Discussion | p. 104 |
4.6 Extensions of the Basic Routing Framework | p. 107 |
4.6.1 Routing With Advertisements | p. 107 |
4.6.2 Hierarchical Routing Algorithms | p. 112 |
4.6.3 Rendezvous-Based Routing | p. 115 |
4.6.4 Topology Changes | p. 117 |
4.6.5 Joining and Leaving Clients | p. 119 |
4.6.6 Routing in Cyclic Topologies | p. 120 |
4.6.7 Exploiting IP Multicast | p. 122 |
4.6.8 Topology Maintenance | p. 123 |
4.7 Further Reading | p. 125 |
5 Engineering of Event-Based Systems | p. 129 |
5.1 Engineering Requirements | p. 129 |
5.1.1 Application Examples | p. 130 |
5.1.2 Requirements | p. 132 |
5.1.3 Existing Support | p. 136 |
5.2 Accessing Publish/Subscribe Functionality | p. 137 |
5.2.1 Generic APIs | p. 137 |
5.2.2 Domain-Specific APIs | p. 139 |
5.3 Using the API | p. 140 |
5.3.1 Patterns and Idioms | p. 141 |
5.3.2 Emitting Notifications | p. 143 |
5.4 Further Reading | p. 147 |
6 Scoping | p. 149 |
6.1 Controlling Cooperation | p. 150 |
6.1.1 Implicit Coordination and Visibility | p. 150 |
6.1.2 Explicit Control of Visibility | p. 151 |
6.1.3 The Role of Administrators | p. 151 |
6.2 Event-Based Systems With Scopes | p. 152 |
6.2.1 Visibility and Scopes | p. 152 |
6.2.2 Specification | p. 153 |
6.2.3 Notification Dissemination | p. 156 |
6.2.4 Duplicate Notifications | p. 158 |
6.2.5 Dynamic Scopes | p. 159 |
6.2.6 Attributes and Abstract Scopes | p. 161 |
6.2.7 A Correct Implementation | p. 161 |
6.3 Event-Based Components | p. 164 |
6.3.1 Component Interfaces | p. 164 |
6.3.2 Scope Interfaces | p. 164 |
6.3.3 Event-Based Components | p. 167 |
6.3.4 Example | p. 167 |
6.4 Notification Mappings | p. 169 |
6.4.1 Specification | p. 169 |
6.4.2 A Correct Implementation | p. 173 |
6.4.3 Example | p. 176 |
6.5 Transmission Policies | p. 176 |
6.5.1 Publishing Policy | p. 177 |
6.5.2 Delivery Policy | p. 179 |
6.5.3 Traverse Policy | p. 180 |
6.5.4 Influencing Notification Dissemination | p. 181 |
6.6 Engineering With Scopes | p. 182 |
6.6.1 Development Process | p. 182 |
6.6.2 Scope Graph Handling | p. 183 |
6.6.3 Scope Graph Language | p. 187 |
6.7 Implementation Strategies for Scoping | p. 196 |
6.7.1 Scope Architectures | p. 197 |
6.7.2 Comparing Architectures | p. 209 |
6.7.3 Implement Scopes as Event Brokers | p. 210 |
6.7.4 Integrate Scoping and Routing | p. 213 |
6.8 Combining Different Implementations | p. 225 |
6.8.1 Architectures and Scope Graphs | p. 226 |
6.8.2 Bridging Architectures | p. 227 |
6.8.3 Integration With Other Notification Services | p. 228 |
6.9 Further Reading | p. 228 |
7 Composite Events | p. 231 |
7.1 Application Scenarios | p. 231 |
7.2 Requirements | p. 234 |
7.3 Composite Events | p. 234 |
7.4 Composite Event Detection | p. 236 |
7.4.1 Composite Event Detectors | p. 236 |
7.4.2 Composite Event Language | p. 238 |
7.5 Detection Architectures | p. 242 |
7.5.1 Centralized Detection | p. 243 |
7.5.2 Distributed Detection | p. 244 |
7.6 Further Reading | p. 250 |
8 Advanced Topics | p. 253 |
8.1 Security | p. 253 |
8.1.1 Application Scenarios | p. 254 |
8.1.2 Requirements | p. 255 |
8.1.3 Access Control Techniques | p. 256 |
8.1.4 Secure Publish/Subscribe Model | p. 258 |
8.1.5 Further Reading | p. 264 |
8.2 Fault Tolerance | p. 264 |
8.2.1 Fault Masking | p. 265 |
8.2.2 Self-Stabilizing Publish/Subscribe Systems | p. 265 |
8.2.3 Self-Stabilizing Content-Based Routing | p. 266 |
8.2.4 Generic Self-Stabilization Through Periodic Rebuild | p. 273 |
8.2.5 Further Reading | p. 276 |
8.3 Congestion Control | p. 276 |
8.3.1 The Congestion Problem | p. 277 |
8.3.2 Requirements | p. 277 |
8.3.3 Congestion Control Algorithms | p. 279 |
8.3.4 Further Reading | p. 285 |
8.4 Mobility | p. 287 |
8.4.1 Mobility Issues in Publish/Subscribe Middleware | p. 289 |
8.4.2 Physical Mobility | p. 290 |
8.4.3 Logical Mobility | p. 295 |
8.4.4 Further Reading | p. 302 |
9 Existing Notification Services | p. 305 |
9.1 Standards | p. 305 |
9.1.1 Corba Event and Notification Service | p. 305 |
9.1.2 Jini | p. 310 |
9.1.3 Java Message Service (JMS) | p. 311 |
9.1.4 Data Distribution for Real-Time Systems (DDS) | p. 313 |
9.1.5 WS Eventing and WS Notification | p. 317 |
9.1.6 The High-Level Architecture (HLA) | p. 317 |
9.2 Commercial Systems | p. 318 |
9.2.1 IBM WebSphere MQ | p. 318 |
9.2.2 TIBCO Rendezvous | p. 320 |
9.2.3 Oracle Streams Advanced Queuing | p. 322 |
9.3 Research Prototypes | p. 324 |
9.3.1 Gryphon | p. 324 |
9.3.2 Siena | p. 326 |
9.3.3 JEDI | p. 329 |
9.3.4 Rebeca | p. 331 |
9.3.5 Hermes | p. 334 |
9.3.6 Cambridge Event Architecture (CEA) | p. 337 |
9.3.7 Elvin | p. 340 |
9.3.8 READY | p. 340 |
9.3.9 Narada Brokering | p. 340 |
10 Outlook | p. 343 |
References | p. 349 |
Index | p. 379 |