BPMN and ITIL
December 7th, 2006
Recently a BPMS Watch reader wrote with some questions about modeling ITIL processes in BPMN. ITIL is an industry standard framework for managing IT services. It describes a number of interrelated business processes, including Change Management and Release Management. These processes are linked, but not in a one-to-one correspondence - one release does not correspond to one change - and it thus provides an interesting real-world example of the 1:N problem in BPMN, which I also call the batching/debatching problem.
In BPMN (or any orchestration language), an instance of the process represents one “thing.” But sometimes that one thing splits into N independent instances of some subprocess, or you may have N instances that are collected at some point into a batch - 1 thing - that continues from there. In the ITIL Change Management process, a request for change (RFC) can represent either a Business RFC or a Technical RFC. A Business RFC is ultimately resolved into a set of Technical RFCs that must be implemented and tested before being deployed in the Release process. In other words, if an instance of the Change Management process represents a Businesss RFC, that instance splits into N instances of the same Change Management process for a Technical RFC. (You could simplify this by saying Change Management for a Business RFC is a different process than for a Technical RFC, but that’s not how ITIL - or perhaps just my correspondent’s company - has modeled it.)
The resulting diagram is shown here. A couple things are worthy of note here. One is the use of paired message events (send and receive) to communicate with both the Release process (not shown here) and other instances of the Change Management process. The pairing is indicated by the label of the event. For example, the trigger for the Change Management process is an RFC event. But note in the ForEach subprocess, each instance of this multi-instance subprocess generates an RFC event, so this model is actually recursive! Also, the end event for the Change Management process is RFC Status, and each instance of the ForEach subprocess waits for the RFC Status event for the Change Management instance that subprocess instance started. It makes your head spin a bit, but it works.
In a choreography diagram, you could actually draw 2 pools of Change Management, I guess, showing the message flows between them represented by these paired events.
The second interesting thing (to me) is the use of the multi-instance subprocess to solve the 1:N problem. In BPMN, an activity (task or subprocess) can optionally be defined as a simple (While) loop, a multi-instance (ForEach) sequential loop, or a multi-instance (ForEach) parallel loop. The last of these is what is indicated here by the parallel bars (VCR “pause” symbol) at the bottom of the activity. It means generate N instances of this subprocess, and the activity is not complete until all N instances complete. In this case each instance represents a Technical RFC generated from a Business RFC, and the subprocess spawns a new instance of Change Management for the Technical RFC and waits for RFC Status.
Note, by convention I only use a message intermediate event in sequence flow to mean “wait for the event” - the BPMN spec also allows it to be used as “send the event”, but I prefer to use a Send task for that. In this diagram, to make the event pairings clearer, the Send task is followed by a message end event in parallel with the continuation sequence flow.
For my BPMN training I am beginning to think of a number of these batching/debatching patterns and how to model them properly in the notation. Now if I can only get my simulation engine to work with it…
Entry Filed under: BPM

4 Comments Add your own
1. marlon_dumas | December 10th, 2006 at 6:36 pm
Bruce,
You have a history of posting BPMN models with all sorts of mistakes. Well, I believe now it’s your turn to step into the dock as there seems to be a bug in your model (although minor). Inside the muti-instance sub-process, after creating the technical RFC, the sub-process sends this technical RFC (to the change management process I assume). But after sending the technical RFC, the process then sends again an RFC (through the ‘end message event’ labelled “RFC”). So the (technical) RFC is sent twice!
2. bruce | December 10th, 2006 at 10:02 pm
Marlon,
I think I see the piece you are objecting to. I tried to explain it in my post, but perhaps it is incorrect. I could have used a message intermediate event to send the Technical RFC, but my convention is to reserve that symbol for a receiving event, and use a Task to indicate the “work” done to create the event and an end event to actually send it (e.g. attach a message flow in choreography diagram), so that the pairing of event labels would be obvious. Maybe that implies that the event is sent twice? That was not my intention. Does the name of the task or the little mail icon on it mean an event is sent? It sounds like my convention may not be best practice, but I don’t think actually incorrect.
3. Integrity Management Solu&hellip | December 18th, 2006 at 1:52 pm
Process Standards and Technology…
When implementing Service Support and Delivery processes it is very important to document the process with process diagrams and textual information. However, when creating the process diagrams the format of the diagram is at the discretion of the autho…
4. kewbss | March 19th, 2007 at 9:47 pm
Bruce,
I came across this post (again) while thinking about Exercise 15 of the training … I was planning to do an ITIL process.
FWIW I think your ‘best practice’ approach is an improvement on the diagram above. Labelling of the message activity clearly shows its purpose … the flow to an End Message event is redundant and adds clutter.
For a novice at least, it takes a conscious effort to realise that this end event does not actually signal the end of the sub-process … arrival of a message at the parallel intermediate message event is the ‘critical path’ as far as process completion is concerned.
Leave a Comment
You must be logged in to post a comment.
Trackback this post | Subscribe to the comments via RSS Feed