Recently I learned how to model business processes with BPMN 2.0, the Business Process Modeling Notation. Following, a very, very brief introduction.
Using the BPM standard allows technical and business engineers (and everybody else) to better understand one another by using a process-oriented approach to modeling, while keeping the advantage of having executable (automatable) process models. It is highly recommendend to pre-define certain patterns and guidelines for usage, especially when working cross-departmental and cross-functional or rolling out company wide.
The great thing about BPMN is that it is really simple. This process obviously doesn’t do anything useful, it’s only to show some of the tasks, events etc.:
Now, a problem. Let’s say asynchronous service calls are modeled like like this:
How do you model synchronous service calls? You could do it like this:
But is that really 100% unambiguous? Sure, there would also be notes about the details (and objects used) of the process. But wouldn’t this be better?
There’s been quite some discussion about this; if anybody here has an opinion or best practise advice, let me know.