Thursday, February 25, 2010

On spatial relations between events and entities

During the final pass of revisions for the EPIA book, we have re-visited the issue of spatial context, one of the options of spatial context is to group or partition events according to the relationship between event and a certain entity. However, location is not necessarily a point, there are three main type of location: point, line (or poly-line) and area (polygon). This is true for entity, but it is also true for an event, if the event is located using GPS, then a point coordinate is obtained, but if an event is located using the signal sent from a cellular phone, then the location of the event is a cell, i.e. it occurs within an area. We can also say that a vehicle is somewhere on road M1, which is a poly-line. Given these three data types, we can define several relations among the location of the event, and the location of the entity, as shown in the illustration above, such as: contains --- the entity contains the event, disjoint etc... The illustration above shows the various cases between events of various location types and entities of various location types. Some examples of use cases for the various relations will follow in one of the next postings, meanwhile -- you can think about applications yourself

Wednesday, February 24, 2010

Event Processing in Action -- Updated Table of Contents

The upcoming book "Event Processing in Action" has moved from the development phase to production phase, while we still keep improving it. David Luckham has written a foreward for the book, and we also finalized the table of contents - here is the most updated ToC.
The book's website has also been updated.

Event Processing in Action

foreword with David Luckham


Part 1: The Basics

1. 1. Entering the world of event processing

1.1 Event-driven behavior and event-driven computing

1.1.1 What do we mean by events?

1.1.2 Event-driven behavior in daily life

1.1.3 Some examples of computerized event processing

1.1.4 Reasons for using event processing

1.2 Introduction to event processing

1.2.1 What do we mean by event processing?

1.2.2 Event processing and its relationship to the real world

1.2.3 Reasons for using event processing

1.3 Business value of an event processing platform

1.3.1 Effectiveness issues

1.3.2 Efficiency issues

1.3.3 When is it appropriate to use dedicated event processing software?

1.4 Event processing and its connection to related concepts

1.4.1 Event-driven business process management

1.4.2 Business Activity Monitoring (BAM)

1.4.3 Business Intelligence (BI)

1.4.4 Business Rules Management Systems (BRMS)

1.4.5 Network and system management

1.4.6 Message oriented middleware (MOM)

1.4.7 Stream computing

1.5 Fast Flower Delivery: an example that accompanies this book

1.5.1 General description

1.5.2 Skeleton specification

1.6 Utilizing this book’s website

1.7 Summary

2. 2. Principles of event processing

2.1 Events and event-based programming

2.1.1 The background: request-response interactions

2.1.2 Events and the principle of decoupling

2.1.3 Push-style event interactions

2.1.4 Channel-based event distribution

2.1.5 Using request-response interactions to distribute events

2.1.6 Event processing and service oriented architecture

2.2 The main concepts of event processing

2.2.1 Event processing architecture

2.2.2 Event processing networks

2.2.3 Types of intermediary event processing

2.3 Modeling event processing networks

2.3.1 What is a building block?

2.3.2 What information is contained in a definition element?

2.3.3 The seven fundamental building blocks

2.3.4 The event processing agent building blocks

2.4 Summary

Part 2: The Building Blocks

3. Defining the events

3.1 Event types

3.1.1 The logical structure of an event

3.1.2 The event type building block

3.1.3 Event type description attributes

3.2 Header attributes

3.3 Payload attributes

3.3.1 Data types

3.3.2 Attributes with semantic roles

3.3.3 Payload example

3.4 Relations between event types

3.5 Events in the Fast Flower Delivery example

3.5.1 Header attributes

3.5.2 Event type definition elements

3.5.3 Event instance example

3.6 Event representation in practice

3.6.1 Event structure

3.6.2 Defining event types in current event processing platforms

3.6.3 Standards for interchanging event types and event instances

3.7 Summary

4. Producing the events

4.1 Event producer: concept and definition element

4.1.1 The event producer definition element

4.1.2 Event producer details

4.1.3 Output terminal details

4.1.4 Producer relationships

4.2 The various kinds of event producer

4.2.1 Hardware event producers

4.2.2 Software event producers

4.2.3 Human interaction

4.3 Interfacing with an event producer

4.3.1 Interaction patterns

4.3.2 Queriable event producers

4.3.3 Interfacing mechanisms

4.4 Producers in the Fast Flower Delivery application

4.4.1 The four event producers

4.5 Summary

5. Consuming the events

5.1 Event consumer: concept and definition element

5.1.1 Event consumer definition element

5.1.2 Event consumer details

5.1.3 Input terminal details

5.1.4 Consumer relationships

5.2 The various kinds of event consumer

5.2.1 Hardware event consumers

5.2.2 Human interaction

5.2.3 Software event consumers

5.3 Interacting with event consumers

5.3.1 Interaction patterns

5.3.2 Interfacing mechanisms

5.4 Consumers in the Fast Flower Delivery example

5.4.1 The three event consumers

5.5 Summary

6. The event processing network

6.1 Event processing networks

6.1.1 The event processing network and its notation

6.1.2 Nested event processing networks

6.1.3 Implementation perspective

6.1.4 Benefits of an event processing network model

6.2 Event processing agents

6.2.1 The functions of an event processing agent

6.2.2 Types of event processing agent

6.2.3 The filter event processing agent

6.2.4 The transformation event processing agent

6.2.5 The pattern detect event processing agent

6.2.6 The event processing agent definition element

6.2.7 Event processing agents in the Fast Flower Delivery application

6.3 Event channels

6.3.1 The event channel notion

6.3.2 Routing schemes

6.3.3 Channels in the Fast Flower Delivery application

6.4 Global state elements

6.5 Event processing networks in practice

6.6 Summary

7. Putting events in context

7.1 The notion of context and its definition element

7.2 Temporal context

7.2.1 Fixed interval

7.2.2 Event interval

7.2.3 Sliding fixed interval

7.2.4 Sliding event interval

7.3 Spatial context

7.3.1 Fixed location

7.3.2 Entity distance location

7.3.3 Event distance location

7.4 State oriented context

7.5 Segmented oriented context

7.6 Context initiator policies

7.7 Composite contexts

7.7.1 The notion of composite context

7.7.2 Priority ordering in context composition

7.8 Contexts in the Fast Flower Delivery example

7.9 Context definitions in practice

7.10 Summary

8. Filtering and transformation

8.1 Filtering in the event processing network

8.1.1 Filtering on an input terminal

8.1.2 Filtering in an event processing agent

8.1.3 Filtering and event processing contexts

8.2 Transformation in depth

8.2.1 Project, translate, and enrich

8.2.2 Split

8.2.3 Aggregate

8.2.4 Compose

8.2.5 Header attributes and validation

8.3 Examples in the Fast Flower Delivery application

8.4 Filtering and transformation in practice

8.5 Summary

9. Detecting event patterns

9.1 Introduction to event patterns

9.1.1 The pattern matching process

9.1.2 Pattern definitions

9.1.3 Event pattern categories and types

9.2 Basic patterns

9.2.1 Logical operator patterns

9.2.2 Threshold patterns

9.2.3 Subset selection patterns

9.2.4 Modal patterns

9.3 Dimensional patterns

9.3.1 The sequence pattern

9.3.2 Trend pattern

9.3.3 Spatial patterns

9.3.4 Spatiotemporal patterns

9.4 Pattern policies

9.4.1 Repeated type policies

9.4.2 Order policies

9.4.3 Cardinality policies

9.4.4 Consumption policies

9.5 Patterns reference table

9.6 The Fast Flower Delivery patterns

9.7 Pattern detection in practice

9.8 Summary

Part 3: The pragmatics

10. Engineering and implementation considerations

10.1 Event processing programming in practice

10.1.1 Stream oriented programming style

10.1.2 Rule oriented languages

10.1.3 Development environments

10.2 Non-functional properties

10.2.1 Scalability

10.2.2 Availability

10.2.3 Security

10.3 Performance objectives

10.4 Optimization types

10.4.1 EPA assignment optimizations

10.4.2 EPA code optimizations

10.4.3 Execution optimizations

10.5 Event processing validation and auditing

10.5.1 Static analysis of event processing networks

10.5.2 Dynamic analysis of event processing networks

10.5.3 Event processing auditing

10.6 Summary

11. Today’s event processing challenges

11.1 The temporal semantics of event processing

11.2 Inexact event processing

11.2.1 Uncertain events and inexact event content

11.2.2 Inexact matching between events and situations

11.2.3 Handling inexact event processing

11.3 Retraction and causality

11.3.1 Event retraction

11.3.2 Event causality

11.4 Summary

12. Emerging directions of event processing

12.1 Event processing trends

12.1.1 Going from narrow to wide

12.1.2 Going from monolithic to diversified

12.1.3 Going from proprietary to standards-based

12.1.4 Going from programming-centered to semi-technical centered

12.1.5 Going from reactive to proactive

12.2 Future directions in event processing technology

12.2.1 Event processing virtual platforms

12.2.2 Event processing optimization

12.2.3 Event processing software engineering

12.2.4 Intelligent event processing

12.3 Epilogue to the book

Appendix A: Definitions

Appendix B: The Fast Flower Delivery Example