Friday, August 22, 2008

How to model EDA

I got a question of a fellow-blogger, Peter Rajsky, about how to model EDA. He posted about it on his own blog, but he is a bit disappointed that no discussion arose. Perhaps his posting didn't reach the right specialists or nobody gets the clue.

To be honest, I did not spent any effort on this subject either. I promote the event-driven approach, I draw pictures from a conceptual point of view. But I did not (yet) dive into the details of hard core modeling techniques. Which I think I should do, eventually. Not because it's the enterprise architect's task (which I think it isn't), but to learn, to gain deeper insights in the solution design details and to be able to share my deeper insights here on my blog.

Peter puts the following requirements for a modeling technique (extension of UML):

  • To be able to define event taxonomy - using class diagrams would be sufficient
  • Explicit modeling of outbound interface - interface, which produces events (instead of providing operations)
  • To use this outbound interface in sequence and activity diagrams (in the similar way as inbound interface) to be able to model event reactions
Although I cannot mention any tools or techniques around, I published some postings on these aspects before:
If anyone, especially tool-vendors, can contribute to this subject, please do. We are in need.

And Peter, thanks for initiating the awareness.


Paul Vincent said...

EDA modeling and methodology? This is a seriously good qu. For CEP, we are mostly dealing with pre-defined events (/instrumentation), or are modeling the minimum event interactions (choreography) to be efficient (runtime and maintenance time).

As an example, TIBCO BusinessEvents uses state models (for lifecycle of event / process / case), event inheritance (for complex scenarios), and declarative rules (for dynamic process) and queries (for dynamic aggregate facts). Other CEP tools use process diagrams for event streams, or queries. But CEP may just be processing elements within a larger EDA (sharing event consumption with conventional SOA services, for example).

Jack van Hoof said...

Hi Paul,

Perhaps you could refer to some clarifying TIBCO (or other) whitepapers. It could be a starting point for thoughts.


Mickeybr said...

I've been working hard trying to figure out a good way to model EDA (right now using UML). For static diagrams I found that defining and putting Signal classifiers on an interface and then putting the interface in the provider portion of a component that would be the provider and on the required portion of another component for subscribers, that it was pretty easy to communicate with others. The problem came when trying to use behavior diagrams. It was all backwards because of the call call structure assumption. I think a modeling tool could easily fix this by reversing the order in a sequence diagram for signals, probably even without messing with the UML specification.

Rob said...

I'm currently writing on my diploma thesis on EDA and I've come across the same question on how to model EDA (with rather simple event flows). Then I got a hint to try out (Colored) Petri Nets which was quite easy and convincing at a first glimpse.

I know PNs are quite formal but there is currently some work going on, on how to derive UML from (C)PNs and vice versa.

Do you have any experience or suggestions on using PNs for EDA modelling? I just want to discuss if this way is actually an option to take into account.

Maybe I'll find the time to do some research here and write a small article about that.

- Rob

Piotr said...

Hi Rob,

PN seems to be a good way to model business processes.
But as you can see it is only high level diagram, and you can only model interactions between services/events. UML is a language that can describe more aspects of the architecture. So I don't think PN would be enough to model EDA.

Very useful functionality is creating reachability graph (UML doesn't have it:)) that allows you to analyze created model (i.e. detect loops, deadlocks or blind places).

I'm wondering, is there any other usage of colors than modeling different processes?

BTW. I'm also writing a diploma (just started) regarding the same issue, but I would like to use UML to model the EDA. In my opinion PN would be insufficient, but It can be useful to analyze corectness of the model.