Frank's Blog

BPMN and the Event-based Gateway 

Today I would like to tell you something about BPMN's Event-based Gateway. If you don't remember it by now, maybe you do by taking a closer look:

The shape of the Event-based gateway changed from BPMN 1.0 to BPMN 1.1. Both types of Gateways (Event-based or Exclusive) make a decision, i.e. only one of the outgoing Sequence Flows is taken. Only one of the Gateways, however, is used for joining Sequence Flows. That one is the Exclusive Gateway (please keep this in mind when modeling).

But what are the differences between the two types of Gateways, which make a decision leading to the activation of exactly one of the outgoing Sequence Flows? Here are the golden rules:

1. An Exclusive Gateway is always used when the decision is internally (up to you, based on locally available information).
2. An Event-based Gateway must be used when the decision is externally (up to others, based on distributed events).

Consider for instance a simple business process of getting in touch with a friend:

You could either choose to write a letter or make a phone call. The decision on how to get in touch is made in the Exclusive Gateway numbered with (1). Please note, that the decision on how to get in touch is completely up to you. The Sequence Flows are joined with Exclusive Gateway numbered with (2).

The corresponding business process of your friend, however, can not anticipate how you will get in touch with him. He needs to support both cases, where the decision is triggered externally:

The decision is made in the Event-based Gateway (3), based on the directly following Event that is triggered first. The flows are joined, once again, by an Exclusive Gateway, in (4).

The difference becomes immediately visible when the two business processes are brought together to form a choreography:

It can be clearly seen that the decision is made in the upper Pool, whereas the lower Pool can only react to that decision.

Now, hopefully, I will never see a BPD with a wrong use of the Event-based Gateway anymore (and I've seen way too much).
[ view entry ] ( 3919 views ) permalink $star_image$star_image$star_image$star_image$star_image ( 3 / 4416 )
BizAgi Process Modeler with Frapu Stencils 

The BizAgi Process Modeler now sports an import option for Visio files using the BPMN 1.0 stencils that I offer here.

Thanks to Matthias Weidlich for pointing me to this feature of BizAgi Process Modeler.
[ view entry ] ( 4021 views ) permalink $star_image$star_image$star_image$star_image$star_image ( 3.1 / 91 )
Time Machine with FireWire 800 

A few days ago, my old 2.5" external HDD used for Time Machine died once again. So I decided to replace it with a robust (5 year warranty) My Book Studio Edition 500GB from Western Digital.

I selected this (a bit more expensive) model, since it had a FireWire 800 port. It came preconfigured for the Mac, formated with Mac OS Extended (Journaled) file system. Furthermore, it looks very Mac-stylish, especially with the white LCD-effects in front. It shuts down and powers up with the Mac (also in sleep mode). The device remains cool, but is a little louder than my Alu iMac. It will return to sleep mode, however, if not used for 10 minutes.

The whole thing was installed quickly, and my 80 gigs of stuff were backed up within an hour. This was also a reason why I decided against getting a Time Capsule from Apple. All the boards are full of discussions about slow speeds, blocking the internet access, and quite much heat produced.

Of course, I started up XBench and measured the performance using USB 2.0, FireWire 400, and FireWire 800. The 256K block performance is shown below:

The first two blocks show sequential write and read access with 256k blocks, whereas the last two blocks show random access. The vertical axis denotes the transfer speed in MB per second. As can easily be seen, USB 2.0 is quite close to FireWire 400. What can not be seen, however, is that USB produced much more CPU usage on a Mac. FireWire 800 is a good leap ahead.

The figure above shows the 4K block performance. The sequential writing of 4K blocks seems to be even faster than 256K blocks, with FireWire 800 leading once again. The results are closer for the last three blocks, obviously since the transfer speed is no longer an issue in this kind of benchmark.

[ view entry ] ( 3006 views ) permalink $star_image$star_image$star_image$star_image$star_image ( 3 / 655 )
BPMN Book Review 

The first official book on BPMN (Business Process Modeling Notation) is out in the stores, titled 'BPMN Modeling and Reference Guide', written by Stephen White and Derek Miers. Both have been---and are---deeply involved in the creation and maintenance of the BPMN.

While the book itself aims at business users and process modeling practitioners, it is also quite interesting for people who are already familiar with the notation. The authors decided to split the book into two parts: an introduction and a reference section.

The first chapters fade slowly into the topic, with one short chapter dedicated to the importance of modeling and the BPM setting in general (chapter 2). In chapter 3, the different categories of processes (orchestration, choreography, collaboration) are introduced and chapter 4 discusses complexity issues. Chapter 5 provides a scenario-based BPMN introduction. This is the main chapter of the first part, but is rather short (32 pages).

The main part of the book is the reference section. There are distinct chapters on activities, events, gateways, swimlanes, artifacts, connectors, and advanced features. The reference itself focuses on the core features and explain their use in a precise (but yet very compact) manner.

I personally like the style of writing very much, especially since it's even interesting if you already knew the specification. One reason is the critical viewpoint that the authors bring into discussion every now and then, e.g. 'The first version of BPMN (now 1.1) included some of the concepts that support choreography models' (p.31). Of course the authors don't do that for fun. Instead they always mention that things will be clarified and better in BPMN 2.0---their proposal of BPMN 2.0.

Another thing that I like is the running example in the introduction part. It's a new kind of example that I haven't seen before and it heavily relies on signals. Still, I have some doubts regarding the lifecycle of those signals---how long are events valid (even a signal flare disappears after some time?), do events cross several instances (they should, since otherwise they could not reach different instances in other pools, they shouldn't, because otherwise a 'Bad Credit' signal kills all running instances?). But maybe there will be some clarification in BPMN 2.0.

Yet another nice thing is the reference section that also discusses advanced things like transactions. The authors use some kind of virtual token to depict the suggested execution semantics.

But, the 225-page book is not an extended version of the specification. While the authors mention that there are things like attributes, they never directly discuss them. The BPEL-mapping is not even touched.

Concluding, I can recommend the book to anyone interested in---or working with---BPMN. I have some doubts, however, if that anyone has no BPM knowledge. While it's targeted at business users and practitioners, it's definitely not an introductory book to process modeling.

[ view entry ] ( 2942 views ) permalink $star_image$star_image$star_image$star_image$star_image ( 3 / 5397 )
New Thesis on the Pi-Calculus and BPM 

Today I found some time to provide the Master thesis of Olaf Märker at the BPM spot: A Virtual Machine for Implementing Resources with Dynamic Behavior in the Pi-Calculus (Thesis in German).

Olaf investigated the implementation of a REST-based architecture inside a pi-calculus-based virtual machine. Inside the thesis, you find a neat introduction to Business Process Management (BPM), Service Orientation, Resource Orientation, and the pi-calculus. Afterwards, Olaf married resources and processes and discussed the architecture for a pi-calculus-based resource server. He finally implemented a virtual machine for the pi-calculus based on the ideas introduced earlier.

Olaf also provided the source code written in Ruby, but it requires a lot of additional packages, like Postgresql, plruby, and certain Ruby gems.

So, if you're interested in the future of BPM engines, I highly recommend taking a closer look!
[ view entry ] ( 3701 views ) permalink $star_image$star_image$star_image$star_image$star_image ( 3 / 5145 )

<<First <Back | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Next> Last>>