Process Is The Main Thing

@ Anatoly Belaychuk’s BPM Blog

BPMN In Outer Space

My friend deals with telecom processes. There is a specificity that I covered before: a lot of coordination between systems and relatively little human participation.

Anyway, he was interested in BPMN and wanted to assess it with a test case. Here is the case as I’ve got it; if you found it incomplete or contradictory, that’s fine and normal for a real-world cases.

A case based on the Star Wars: two space cruisers are on alert to repel a possible aliens attack.

a) Ship paths are plotted centrally and synchronized on the basis of data obtained in real time, aiming at maximum security and full dangerous zones coverage.

b) The appearance of an alien object on the radar is recorded and replicated to the mate ship’s tracking system - this way each target receives its own individual id. When it’s lost by both ships the target obtains lost status - there is no means to differentiate a new target from a target that once has been tracked and then lost.

c) The system that assigns targets to one cruiser or another is centralized and works on the basis of priorities (no matter which ones). The system may transfer a target from one cruiser to another if priorities have changed - that is, each target is marked with 1 or 2, indicating to whom it is assigned at any given time.

d) A command to open fire is displayed on a touch screen display and the operator makes a decision by pressing the button. Even at this moment the system may reassign the target to another cruiser.

e) If the target is hit then the workflow ends, otherwise the failed attempt is logged and the process continues. It’s assumed for simplicity that the laser weapon is used and the outcome of a shot is determine promptly enough.

It’s assumed that the whole process runs continuously.

Rather unusual domain for BPMN, right? So the questions arise:

  • Can the task be solved with a help of BPMN?
  • Is it worth it?
  • Well, the solution itself, if any.

Hope you found the case interesting; I was intrigued.

My version of the BPMN diagram (click to open in a new window):


  1. The tracking system receives discrete signals - dots on a radar screen. Each dot is compared to the targets database. If dot coordinates and characteristics are close enough to those of one of known targets then it’s assumed to be this target, in this case a message containing coordinates is sent to the target tracking process. Otherwise a message produces a new target tracking instance.
  2. Target tracking process awaits either of three events: target coordinates message receive, target destruction message receive and timeout - if there were no detection nor destruction during given timeframe then it’s assumed that the target is lost and the process ends.
  3. Fire control system analyzes the information about all targets in continuous loop. Targets are assigned to either first or second cruiser and some targets are decided to be attacked. The system may also decide to cancel an attack or reassign target to another cruiser - in the latter case two commands are issued: “cancel fire” to original cruiser and “fire” to the new one.
  4. “Fire” message instantiates a new “Shot” process instance. Operator must confirm opening fire - if he does, the cruiser shoots and if it hits the target a message is sent to the target tracking processes which ends that process. As long as the operator makes the decision the system may decide that the target isn’t a threat anymore or that it should be reassigned to another cruiser. In either cases “cancel fire” message interrupts the “Confirm Shot” task and ends the “Shot” process.

Initially I wasn’t sure that it’s doable. But at the end of the day the range of tasks that can be solved by BPMN increased significantly in my view.

The key design question was - how many systems and how many processes are there. Once it was determined, the diagram was drawn “by itself”.

As you can see there is no assumption about the number of cruisers. “Two cruisers” mentioned in the task turned out to be a trap: it’s actually easier to design for N case. There also may be any number of tracking systems and weapons - the diagram will work if there are several radars and guns per cruiser, some of them damaged or out of ammo. The fire control system is single and extending it to N case would be a non-trivial task.

There may be aircraft carriers instead of space cruisers and recon planes they launch as target detectors.

12/29/10 | Articles |    

Comments (8)

  1. AS 12/30/10 09:32 PM
  2. Anatoly Belychook 12/30/10 09:49 PM


    Sorry I can’t see the requirement d) implemented in your diagram.

    Another difference is the absence of target lifecycle in your diagram: one can’t directly analyze e.g. the average time targets have been tracked.

  3. AS 12/31/10 06:17 PM


    Yes, some exception handling is missing.

    Concerning “target lifecycle” - I considered it at the beginning (as the specs insisted) but later I preferred to handle targets ONLY by “CENTER-tracking” process (actually by only ONE instance) for better encapsulation (and elimination of doubles). As the result, a separate target-lifecycle process was not necessary as we can obtain all events.

    Thanks and a Happy New Year.

  4. Scott 01/10/11 05:16 AM

    Kudos for working Star Wars and BPMN into the same post :)

  5. Albertto Manuel 01/10/11 09:59 PM


    Like the approach, but if I was the cruiser’s commander I would like guidance and control algorithms working when the shot misses the target providing feedback target tracking pool.

    This kind of process presentation, and this particular one, provides very clear idea how a process is structured. It was considered that there is few human interaction. But but if there were more, would be possible to draw real time collaboration on a crisis situation? I remembered some utilities processes when there is a supply disruption started by system alarm, or by epidemic phone calls from the customer and these ones are quite difficult to do because there are only a sequence of big steps it can be mapped.

    Nowadays I see BPMN more suited to present the big picture rather that going deeply to the tasks detail.

  6. Anatoly Belychook 01/13/11 07:30 AM


    Of course it’s no more than excercise that leaves plenty of room for improvements/variants/refinements.

    Totally agree with your last point.

    Kind regards

  7. Wahyu 06/11/12 03:30 AM

    The interpreted vs. coeiplmd debate has been going on for a long time now. I think at any given point in time, the compilers have a very good argument because they can find situations where a higher degree of performance is required. Even in the BPM world, if I can imagine a process that executes 10,000 times an hour, you can just imagine that same process at Wal-mart to picture that process running 10,000,000 times an hour! However, the right design decisions for software are not judged by a single point in time, these decisions are judged over time and over time, the interpreters have a lot working in their favor I think having a good representation is actually more important than having the most performant one at any given point in time

  8. Anatoly Belychook 06/11/12 09:06 AM

    Good point, Wahyu

    The key question - is a thing that executes 100000 times per hour a business process? It’s a matter of definition of course, one may get very different answers from a system integrator and a business analyst. The latter would probably say that business is essentially a human thing. Therefore there are good reasons to treat straight-through processes and long-lasting business processes differently and to use different tools tools in particular just like you said.

    As for the article, it was just a fun and pure theoretical challenge, not a solution for realmtask indeed.

Comments are closed

Copyright © 2008-2024 Anatoly Belychook. Thanks to Wordpress and Yahoo.  Content  Comments