Opher Etzion

author
+ Follow
since Aug 04, 2010
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
In last 30 days
0
Forums and Threads

Recent posts by Opher Etzion

Chapter 11 in this book is dedicated to pitfalls - or issues that should be noticed when building event processing applications that are not fully resolved by current products.
The book is implementation neutral, thus, the model described in this book can be implemented either in one of the products on in "roll your own", some have already used the book for design their own implementation. As for languages that have implemented the book's example ---- we issued a call for the community, and in this stage we have six implementation downloadable -- four commercial products which have free development versions: Apama, Streambase, CCL (Coral8 now Sybase) and ruleCore, and two open sources - Esper and Etalis. We expect to have more implementations -- don't have Drools.
14 years ago
The book is implementation neutral, however, there are six implementation that can be downloaded from the website mentioned in the book that have implemented the book's example. Two of the six are open source- Esper and Etalis.
14 years ago
The EPN is a conceptual model, it already have authoring tool that enable population of the model; execution layer that directly implements this model is forthcoming, there are now several examples of using products/open source to implement the use case that accompanies the book based on the modeled example
14 years ago
Hi Will. The focus of the book is on building event processing applications, and not on how to build an event processing engine, this can be another book
The question you are raising is about keeping internal states when the temporal context is of long duration; some of the products in this area use in-memory databases with persistence capabilities, so that states are persisted (in a database, or sometime over the main memory of a cluster of machines in a grid), and are brought to memory when required. There is, of course, a trade-off between pure memory-based state, pure persistent state, and intermediate solutions. In any event, event processing tools typically support also long-term temporal context.

cheers,

Opher
14 years ago
Hi Gian. As you noted one of the meanings of the word "event" is the event that happened in the "real-world domain" and not in the computerized domain (which is a proxy of the former). An approach of DDD can be helpful for many type of event-driven application; One of the common types of application is the one whose goal is to find some events or event patterns that we wish to react to, DDD approach can focus us to the real-world situations to which we wish to react, and then we can map the relationships between them and events, and define the patterns that will be used at run-time to detect that these situations occur. This can evolve based on the business environment evolution, which means that connecting it to the domain knowledge might be very important for such application, and this follows the DDD paradigm.
14 years ago
The principle in event processing is that there are "event producers", "event consumers" and "event processing agents". There is a separation principle here, in the sense that they are independent - an event producer does not know what processing is done with the events it produces, and an event processing agent is totally independent both from the producer and consumer. This total independence of each component has some similarity to the idea of AOP
14 years ago
There are several start-ups whose claim to fame is processing events in clouds. In general, the type of processing is not different; the implication is on -- event producers/consumers in the cloud, and also the event processing itself can be done in the cloud, you can look them up. There is an experience of doing distributed event processing over a grid over the years, in the chapter that describes implementation issues, we have some discussion about distributed event processing in general.
14 years ago
Hi Tariq. There is not an accepted standard yet about how event meta-data is expressed; some of the current implementations indeed use XML representation of events, some also keep the rule representation in XML files. I believe that standards in this area will emerge (it should be more feasible now, since recently the market has moved from start-up dominance to bigger vendor dominance and they are more standard-aware), and standards will indeed be based on XML. In the book we explain the various formats that exist today in commercial products to represent the meta-data and programming artifacts.

cheers,

Opher
14 years ago
Hello Vladimir. The direction we are using in the book is exactly model-driven approach, by which the "event processing network" that contains the flow of events into the different agents that ,for example, detect patterns, is defined in the model level, and this model should be directly compilable into execution. What you mention - static analysis to detect possible deadlocks may be a specific application; there are, of course, a lot more application types that can use such an approach.

cheers,

Opher
14 years ago
The idea is indeed in the spirit of AOP; providing different way to implement certain functions not in conventional programming.
14 years ago
"surveys" means: list the various non-functional properties, the various performance objectives used in different application types, and also various optimization techniques to achieve the performance objectives, there is a brief discussion about each of them with references to further material mainly articles that provides deeper discussion on each topic.

While the main theme of the book is how to model event processing applications, we have dedicated some discussion to implementation issues and to issues that each developer of event processing application should be aware of (where things might go wrong)...

Opher
14 years ago
The book is general and implementation neutral, however it provides a comprehensive use case and shows how it is implemented in different tools, some of them are downloadable versions of commercial tools and some open source. Examples of six different implementations can be found on the book's examples webpage

Chapter 10 of the book surveys topics that relate to non-functional properties, optimization and distributed event processing.
14 years ago
Hi Tariq.

To be honest, I don't know the answer to your question.
The book is about how event are processed; events can get from many sources, and the way the event is created/observed/instrumented is particular to the specific source, so try to address your question to Windows experts.

cheers,

Opher
14 years ago
Hi Paul. The book defines a model-driven implementation-neutral languages, the reason for doing that is that many of the current languages are extension of existing languages (most common SQL extensions) but also rule languages extensions which were aimed at different purposes. We wanted to provide abstractions that isolate the event processing functions from the peculiarities of these languages; as for your question, there are no Java specifications for the main event processing functions. There are several open source event processing frameworks - the most known is ESPER, it is based on Java + extended SQL, there are also others, you can see in chapter 1 of the book, that is available as a sample on thebook's Manning Website in Table 1.1 a list of event processing languages, a list of existing languages, those which are open source, are marked as such.

cheers,

Opher
14 years ago