Monday, October 1, 2007

What is an edge in event processing network ? - a terminology wondering

Today I'll leave the macro questions about SOA and positioning of event processing discipline, and deal with a micro issue, an issue of terminology, that came up when I have looked at the current draft of the event processing glossary is the following issue: one of the main abstractions of event processing is event processing network. The network is in essence a directed (maybe cyclic) graph, as any graph it consists of nodes and edges, the definition in the glossary is: Event Processing Network (EPN): A set of event processing agents (EPAs) and a set of event channels connecting them. Clearly, EPA is a node - one can also say that producers and consumer are type of nodes (to show the entire picture), the question is what is an edge in this network -- from the definition one may assume that channel is an edge, however unlike an edge in graph, that connect two nodes, a channel may have multiple sources and multiple sinks, thus it is more comfortable to look at the channel as another type of node (and indeed channel has also some functions associated with it), thus channel is not the edge, we can say is that edge is the "pipe" through which a events flow from one node (producer, channel, agent) to another node (channel, agent, consumer). Now we need to determine what it is ? my suggestion is to call such a collection an "event stream", however, the glossary defines it as:
Event stream: a linearly ordered sequence of events. Here we have two issues - one to distinguish between the "pipe" and the collection of events flowing on this "pipe", which is the same type of ambiguity we have when talking about "event" vs. "event message", however, we can tolerate such ambiguity, the second problem is in general the collection of such events may not be totally ordered, thus it does not conform with the definition of stream.

There are two possible solutions --- one to modify the definition of stream to be more general (I am not sure that the word stream inherently mean sequence, it is just happened to be the way it was implemented in a certain academic project), the other possibility is to invent a new name for the edge - like event pipe (or some other creative name). What do you think ?

I am also putting it as a comment on the glossary website.

I am taking this opportunity to suggest that anybody who wishes to make a terminology comment will do it soon, since we would like to close a first version in the next month or so.

More terminology issues - later.


harvey said...

If we say that processing elements (including channels) are nodes, then at a minimum, edges must be the relationships between nodes. This will be useful in order to keep track of dependencies, which in turn is useful for change management.

Relationships can be that of producers, consumers, and in fact a set of edges could be considered as representing a higher-order event processing system.

Is this along the lines you are thinking?

PatternStorm said...

Hi, may I suggest the more neutral term "event flow"? In fact what an edge in a EPN is representing is a flow of events of a certain type between two EPAs. I like the term "event flow" because it is implementation-independent ,i.e., a flow can be implemented with several communications middleware providing different QoS such as "order preserving of events", or other. On the other hand I don't like the term "event stream" because it seems to imply that the order of events is preserved in the flow, which, as I commented, is not necessary true...

Opher Etzion said...

Hello Harvey. This goes into the issue of causality among events and the ability to trace it (lineage), which are both important things, that should further be discussed. In this blog I just looked for a name for the edge in the EPN.


Opher Etzion said...

Event Flow may be a good name... unless something better comes up.

marcel said...

write a letter to a great personnlitie!
i post your letter
marcel of France