Wednesday, July 29, 2009

On event processing and philosophy




In case you don't know I have a BA in Philosophy, at later phases in life I also studied for MBA, and for Ph.D. in computer science, but I still have a soft spot for philosophy, it was the most fun to study, and I also think that it has been very useful for me to learn clear and exact thinking, this is an important asset I got from these studies. As I moved away, I did not keep much contact with philosophy, although during my Ph.D. studies I took an advanced logic course in the philosophy department with the late Professor Hugues Leblanc, one of the giant scholars I have ever met, one of the leading logicians of our times, and a great person.

Recently I had an Email exchange with an interesting person, Ken Archer from Telogical systems, whom I met in Nashville earlier this month. Ken has participated recently in a tutorial on ontology of events, given by philosophers, I have copied the description he sent me:

These were philosophical ontologists in dialogue with ontology engineers (primary in biomedical domains, where ontologies have found relatively high acceptance). The philosophers’ starting premise was that the top level distinction in ontology is between continuants (entities that endure through time while maintaining their identity) and occurrents (entities that happen, unfold or develop in time). Continuants and occurrents are orthogonal to each other, as continuants participate in occurrents (e.g. surgeons and patients participate in surgery). Following from this premise was the claim that, while continuants have received much attention historically in philosophy, occurrents have not. As a result, we are much more comfortable talking and generalizing about continuants (objects) than we are about occurrents (processes, events), and we often tend to reify occurrents into continuants as a result.

From this starting point, the philosophers embarked on a philosophical ontology of occurrents that they said reflected the best results of current philosophical research. The bulk of what they had to say can be found in the Basic Formal Ontology, beginning on page 59 (the diagram for their occurrent ontology is copied below). I’ve found the Basic Formal Ontology to be very helpful in all of my modeling. As a result, these philosophers would definitely say that we can talk of types of events or processes, as we do in event processing, and argue that the reason we tend not to speak of types of events/processes is this bias for continuants over occurrents. The research project of these ontologists, then, is to provide an upper ontology of occurrents.

I think that while we are constructing our terminology and conceptual models, we can go back to the roots and look at the formal ontology work. I need some free time to digest it, but it looks interesting.

More on this - later.

Tuesday, July 28, 2009

On social networks and event processing


Today I noticed that the number of my LinkedIn contacts is now a round number 0f 600, unfortunately two of these 600, Klaus Ditrtich and Shlomit Zak have passed away, but their LinkedIn records are still alive, I hope that the rest of the 598 are alive and well. I was introduced to LinkedIn 3 or 4 years ago, when I received a LinkedIn invitation from Mark Palmer, who was my first contact, and accumulated the rest of the links over the years. Part of them invited me, and part of them were invited by me, I have there classmates from high school, colleagues from all places I worked in, students I taught or supervised, some friends, and of course, the members of the event processing community. LinkedIn was my first social network, currently I even don't know exactly how many social networks I am member of, but LinkedIn is the only one that I am active in. So I'll take this opportunity to say a few things about how event processing can become part of social network platforms.

There is a lot of buzz recently about Twitter events, which is also one of the Web 2.0 family, but I'll take the LinkedIn example now, since it has some structure, which creates various event types. While there is applications that attempt to use Twitter events to get information about the stock market, in social networks the events are about individuals; some of the interesting event patterns that may be obtained about individuals:
  • A person got more than 3 recommendation during the last week -- probably looking for a job now, this is an information that can be of interest for various people, such as head hunters, or enterprises seeking for employees.
  • A certain amount of contacts joined a certain group -- may be an indication about a group of interest
  • LinkedIn has microblogging of 14o characters like Twitter -- various things can be obtained from this microblogging.
  • Postings that people make on groups may indicate something about a person.
  • Level of activity in groups may also indicate something about that group.
Many other possibilities can be thought on; I foresee that event processing will be embedded in social network platforms, and maybe will be the basis of abilities to offer paid services. Some social networks send me an Email every time that somebody looks at my profile, and offer me to know the identity of this person, if I'll become a paying member, I have never tempted to do it, however, maybe the use of event processing will provide such services that will be worth paying for, but I guess that most people expect to get these kind of services for free... Can be a good exercise for students, to build such a service. That's all for today, almost midnight...

Friday, July 24, 2009

On use of technology and unfairness


This is somewhat related to event processing, but the issue is more general. It relates to an article published today in the NYTimes, claiming that high speed traders gain unfair benefit over regular traders. The relationship to event processing is obvious, since typically event processing system run under the cover of the "high speed trading"; however, the point is whether technology progress should be stalled due to fairness consideration. I live in a country which has a socialist root; When I took the matriculation exams in high school, we were forbidden from using calculators, since at that time it was relatively expensive, and not every high school student could purchase it, I actually learned how to use slide rule, which I think can be found only in museums today, which is somewhat equivalent to calculator; it did not take long until calculators were allowed. Another example from the Israeli history, when the TV started in Israel, it was black and white, but programs that were purchased from other countries were in color, so people have started to purchase more expansive TV sets that supported color; the government thought it is not fair that the "rich" people can see movies in color, and the "poor" people can see movies only in black-and-white, and ordered the TV station (at these days it was only one, owned by the government) to erase the colors so nobody will be able to see anything in colors, even if they have color TV. However, Israel is also a high-tech country, and an engineer called Mooly Eden (who is now a senior executive in Intel) developed a device called "anti eraser" that restored the color, by reversing the erase function. At the end, the government gave in, and the "anti eraser" became obsolete. These are two examples where fairness considerations tried to bit technology progress, but not for long.

Technology is not the only issue of fairness, we send our children to private school, since we see that the public schools here are inferior; not really fair towards those who cannot afford it. the same goes for health. This actually goes to every facet of life, citing the immortal phrase from "start trek: the next generation" -- resistance is futile.

Thursday, July 23, 2009

On logical and physical interpretations of EPN and EPA


My youngest daughter Daphna has finished last week her summer course in the Technion in the framework of the program of "science seeking youth". She studied her first programming course using "Microworlds", a variation of the rather old Logo language, this is of course been translated to lower level language when executes in practice, by this fact is totally transparent to those who program in Microworlds. I am using this analogy since there seems to be some terminology discussion going on recently about the terms EPA and EPN. These terms were introduced in the past by David Luckham, who used them to describe a physical operational view of event processing application. Thus, an EPA is mapped in 1-1 fashion to a software module, and the EPN describes the running software modules and connections among them using physical channels, the first version of the EPTS glossary reflects this view.

However, the way I am using the terms EPN and EPA is slightly different, the physical view is of interest to system administrators, but for the users, designers and developers, the logical view is more relevant, thus I am using these term in a logical way and not a physical way. In order to demonstrate the difference, let's look at the following simple example: There are many patterns that relate to the management of a call center, one of them is the frustrated customer detection: if a gold customer complains three times within a single day (possibly on multiple issues), then a supervisor should call this customer immediately.

However, there is a spectrum of ways that this application can be implemented in reality:
  • It is possible to have a centralized implementation with a single software module that executes all the different functions within this applications, and actually the EPN is internal to this module;
  • On the other extreme we can have a software module implements any single function instance, for example, an agent that detect the frustrated customer pattern for Alice, where a different agent detects the frustrated customer pattern for Bob.
  • Another possibility is a context oriented implementation --- all patterns related to the Alice are processed within a single software module
  • Yet another possibility is a functional partition -- there is a single module for detecting the frustrated customer pattern for all customers
  • There can be also some more combination.
Should the user / system designer / developer care about it and build a different EPN for each variation ? In the past when event processing was hard coded in general purpose programming languages, the logical EPN was also the physical EPN, but one of the gains from using dedicated event processing languages are the ability to abstract the implementation out.
The actual mapping of functions to software modules is left to an optimizer, and can be dynamically changed based on change in the system behavior, load balancing etc.. Actually the paper we presented in DEBS 2009 is part of such an optimization scheme. Thus, the way I am using the term EPA is a single logical function and not necessarily a software module. In the EPIA book we are building our entire concept based on a logical level meta-language that can be translated to various implementations, and even programming styles. As said, there is also an interest in the physical realization of EPN, but it is more of interest to system administrators and implementers of event processing products, but it should be transparent to the user of event processing applications. More on this topic - later.

Tuesday, July 21, 2009

On the EPIA chapter about event consumers


Back to writing about the EPIA, the next chapter out, will be the chapter dealing with event consumers. As anyone who has developed an event processing application may realize, the event processing, is just part, and sometimes the small part of the picture, and in order to be useful, the consumers and producers have to be set. A consumer consumes the events (either raw events or derived events created by the event processing system), in this chapter (written by my partner Peter Niblett) there is a classification of event consumers, and plenty of examples. Here is some classification

And here are some cool consumers:


This, believe it or not, is an application that consumes Twitter events. This map following a bus that notifies Twitter anytime that it gets to a station, it reports where the bus is, and how many passengers are on board. You can read more details and even follow this service on Twitter (169 followers, when this Blog is written). The map is an event consumer that consumes the raw Twitter event and displays the bus route and location within a certain time interval.


This is another cool event consumer called "Ambient Orb"; this gadget is actually an event consumer, an event processing application determines the color of the ambient orb, the application can be anything from the state of your favorite stock, the traffic load outside, the security risk, or some key performance indicator - how many purchases have been done through the company's website today. The output is a color (in the picture it is green, meaning that whatever the indication is -- the status is OK).

More about the EPIA book - later.

Sunday, July 19, 2009

On citations and the scope of the languages tutorial


Yesterday, I went with (most of) my family to watch the movie : Harry Potter and the Half-Blood Prince. I have to admit that among other things I am also a Harry Potter fan, and going to new Harry Potter film is for us a family event. The movie took some shortcuts from the book, so that some things remain fuzzy for those who did not read the book, but this is a very thick book, so there is a challenge to present everything in 2.5 hours movie.

Anyway, I am following with some amusement the discussion between Paul Vincent and Tim Bass on the scope of the event processing languages tutorial (0n the linkedin CEP users group). Typically I do not answer Mr. Bass' musings, as I believe in free speech and in the general intelligence of the readers, however, today I would like to deviate from this habit (just for one posting), and sincerely congratulate Tim on the achievement that he mentions -- his paper has been cited by an Australian patent application, Wow -- I am truly impressed !, and as I am a supportive person I want to really congratulate Tim, it is very flattering when one cites you.

There is just a tiny comment, Tim adds, in the height of his self-esteem:

I noticed that the Australian government's patent application did not reference your work a decade ago nor did it reference other "leaders" in the EPTS. (Sorry about that!) The 2008 patent application did not even reference "The Power of Events"... imagine that!

I did not look at the Australian patent application, but I have no reason to doubt the fact written, well.

BTW, I personally have a patent that has been accepted some years ago by the USA patent office, and last time I visited it was cited by 13 patents that were already accepted (not just applications) in USA;

And BTW -- the patent I am talking about won at that year the award for being among the top 5% IBM patents (among several thousands of patents that were accepted for IBM at that year) which brought me not only a financial award but also the title of "IBM Master Inventor";

And BTW -- this was only one of several patents I filed, not to mention around 70 papers I published (typically with other partners) on topics related to event processing over the last 20 years that were published in peer-reviewed journals and conference papers and were cited by hundreds of other papers and patents;

And BTW -- I am only one of 18 well qualified members in the EPTS event processing languages group, and some of them may have even better credentials than me.

This paragraph was not intended, heaven forbid !, to dwarf the achievement of Tim that his (single) paper has being cited, and he has all reasons to be proud and satisfied in his well deserved achievement, but it was just intended to put things in proportion and show that in professional credentials there are some others people who have been cited and recognized by the professional community as well...

And for the discussion issue about the scope of the languages tutorial, thanks to Paul for trying to defend the team, but for me this is a non-issue. The tutorial was not about general purpose languages that people sometimes use to process events, but about event processing languages defined as languages whose main purpose is to process events - very simple definition.

There are people who indeed hard-code event processing applications in C, Java, Perl, Payton, Lisp and other general purpose languages, but the scope of the tutorial was not to discuss general purpose languages, there are conferences on programming languages which deal with such surveys. I assume that there will always be event processing applications that will be written in general purpose languages as there are always programs written in assembly languages, or many systems that use file systems and not DBMS systems to store structured data. However, we observe that the use of dedicated event processing languages is growing, and I believe that in time it will cover substantial amount of the event processing applications. Our challenge in EPTS is to help mature that state-of-the-art to make it happen;
And BTW, we don't really need education about event processing or event processing languages.

As said, this was a one time comment, and I'll not tempt to turn it to a discussion.




Saturday, July 18, 2009

Call for active participation in the 5th EPTS event processing symposium - Trento, September 21-23, 2009



As we are now in the high gear on planning the 5th event processing symposium, here is a call for active participation. It will be phrased in Q&A format:


Question: What is the Event Processing Symposium ?


This is an annual meeting, intended primarily for EPTS members, but open to other invitees up to the capacity limitation. It features some presentations and a lot of panels and discussions in the areas that are geared towards the understanding and advancing the state of the art and state of the practice in event processing. The previous symposium's program can be found on the ep-ts site.

Question: Where will the symposium take place?

The symposium will take place in Trento, Italy. The four previous meetings have been held in the USA, and since there is a big event processing community outside the USA, we thought of having the next one in Europe and call the large EP community in Europe to participate.
Trento university offered to host the meeting, they also host the symposium's website which currently includes information on the venue, and a registration form, and will also contain the program in the future.

Question: Who can participate ?

As said, the meeting is intended for EPTS members, however, other interested persons can apply and ask to participate. Based on the past experience, there will be some slots for non EPTS members. Participation is by invitation only, and requests for invitations can be done using the symposium's website.

Question: Are there participation fees ?

All EPTS activities are free of charge. Besides the symposium, there will be a banquet, to be held in
Castel Toblino, a 12th century castle situated in the Toblino lake, in the evening of September 22. The banquet requires pre-registration and payment for the event and transportation. Details can be found in the registration form.
This is the Castle Toblino where the banquet is planned to be held.


Question: What is the notion of "active participation" ?

Unlike conferences where people come to hear presentations and maybe ask the presenters some questions, the notion of symposium is having the participants actively participate, this is done through the various panels that exist, which provide the possibility to present position statement, and discussions held with the audience. There are also some presentation opportunities. Below I am bringing an annotated plan of the symposium's session, annotating the opportunities for active participation, and then summarize the active participation opportunities.

Question: What sessions will be included in this year's program this year?


Here is an annotated list of the sessions. The meetings will last from 8:30AM to 6:45PM in the first and second day, and until 1PM in the third day.

The first day -- September 21 Monday.


Session I: EPTS - current state and further missions

We shall start (and end) the symposium by discussing the role of EPTS, what was achieved so far, and its missions for the future. This is an opportunity for active participation.

Session II:
EPTS Use Case Working Group

This session will report the progress of the EPTS use case working group and will discuss the results and further activities.

Session III: Event Processing customers feedback

In this session we'll have a keynote address by a customer (TBD) and a panel made by customers providing feedback about the state of the practice and further directions from customers' point of view.
This is an opportunity for active participation.


Session IV: Event Processing Research Contributions

In this session we'll hear several contributions from the research community about interesting research projects that are being held, there are already some requests for presentations, but there is a room for a couple of more presentations.
This is an opportunity for active participation

The Second Day - September 22 - Tuesday

Session V: Reaching out – Event Processing and Business Process Management

During this symposium we shall have two sessions dedicating to "reaching out", dealing with the relationships between "event processing" as a discipline to other disciplines. The first of them is for relationships with the BPM area, following recent and planned discussions and meetings about even-driven BPM, the session will feature a keynote address by professor John Mylopoulos, a prominent researcher on the topic of Business Level Monitoring, followed by a panel that consists of people from both communities, and discussion with the audience.
This is an opportunity for active participation

Session VI: EPTS Event Processing Languages Analysis workgroup

This session will report the progress of the EPTS languages analysis working group and will discuss the results and further activities.



Session VII: Reaching out – Event Processing and Network/Systems Management

This will be the second reaching out session for the area of network and system management which is a kind of event processing area that have been restricted to the boundaries of an application so far (see David Luckham's interview with Tom Bishop, the CTO of BMC).
The session will start with a keynote address of Dr. Kristian Stwart, the network availability architect in IBM Tivoli, formerly engineering director of Micromuse Netcool/Omnibus. This will be followed by a panel that consists of people from the two communities.
This is an opportunity for active participation
Session VIII : Glossary and Interoperability session (tentative)

This session will deal with EPTS work groups about glossary and interoperability analysis, its format has not been determined yet.
This is an opportunity for active participation


The Third Day - September 23 – Wednesday

Session IX: Architecture

This session will report the progress of the EPTS reference architecture working group and will discuss the results and further activities.



Session X: Grand Challenges

This is the closing session, it will feature a panel and open brainstorming about the grand challenges that are ahead of the event processing community, and discuss the preparation for the event processing Dagstuhl seminar planned for May 2010.
This is an opportunity for active participation

An EPTS Business Meeting will follow on Thursday afternoon in the same place, but it is not an official part of the symposium.




Question: Can you summarize all the active participation opportunities ?


Here is the list:

  1. Participation in the panel about EPTS missions.
  2. Participation in the panel about customers feedback about the state of the practice.
  3. Providing presentation in the event processing research projects presentation.
  4. Participating in the panel about the relations between event processing and business process management
  5. Participating in the panel about the relations between event processing and network/system management.
  6. Participating in the panel about event processing grand challenges.
In addition, there will be opportunities for participating in open discussions.


Question: What do I need to do in order to participate in any of these activities?

If you are interested to participate in any of the panels or provide a research presentation, please let me know and I'll forward to the appropriate session chair;
A session chair will be assigned soon and will be responsible for posing questions to the panel and participants, prior to the symposium, and moderate the session.

Question: What should I do now ?

If you want to participate, then use the symposium's website in order to register.

If you want to actively participate in any of the panel, then use Email to notify me about it.

If you know of anybody who might be interested to participate, and is not included in any of the notification forums and mailing list, then please forward him/her the link to this call for participation.