Process Is The Main Thing

@ Anatoly Belaychuk’s BPM Blog

Inter-Process Communication Via Data Revisited

Ivo Velitchkov made me pay attention to the difference between BPMN 1.x и BPMN 2.0 in respect to data flow modeling.

Data exchange in BPMN 1.x is modeled with Data Objects:

Fig. 1 Data Objects in BPMN 1.x

BPMN 1.x Data Object is an artifact used to inform what a process does. With the help of Association it may be linked to a Task, Control Flow or Message Flow yet it won’t directly affect any of them.

Data Objects can model a range of physical or electronic objects. We may for example drop a Data Object outside a pool and label it “Orders Database” in order to model interprocess communications via data.

Yet as Ivo rightfully pointed out the diagram depicted above becomes illegal under BPMN 2.0!

The point is that Data Object is associated with a process context in BPMN 2.0: it is drawn within a process (subprocess) boundary and it only exists from a process (subprocess) instance start to end. Therefore it can’t be accessed from the external process.

Persistent data not tied to a process lifecycle are modeled with Data Store, so this element should be used to model interprocess communication via data in BPMN 2.0:

Fig. 2. Data Objects and Data Stores in BPMN 2.0

As a side note, BPMN 2.0 makes a difference between single-item data objects and collections - the latter carry a special marker. It also introduces special markers for Data Inputs and Data Outputs and new elements - Input Sets and Output Sets.

BPMN 2.0 also defines Data Association in addition to the general Association inherited from 1.x. While general Association serves documenting purposes only, the Data Association is “executable”: one may define source, target and optionally transformation at the model attribute level. One may define right at the model the data manipulations that should be performed at activity start and end, message send and receive. Visual representation remains the same: dotted line with V-shaped arrow.

BPMN 2.0 specification is slightly controversial with respect to Data Association:

  • P.221 says that Data Association is used with Data Objects without mention of Data Stores. Since Data Objects always belong to a process, one may conclude that Data Associations should never cross a pool border. This rule would make the second diagram illegal - please refer to Ivo Velitchkov’s comment.
  • Yet p.208 says clearly that Data Store may serve as input or output for a Data Association.

So I believe that the diagram at fig.2 is valid.

Besides, even if you or your tool has objections against using Data Associations with Data Stores then you still can use plain old Associations that look exactly the same.

04/07/11 | Articles | ,    

Comments (3)

  1. Bruce Silver 04/08/11 06:47 AM

    I think your diagram using data store is correct. Data object is an instance variable local to the process level where it is defined. Data store is persisted data. It is a root element in BPMN. What you see in the diagram is actually called Data Store Reference, which is defined as a flow element, i.e. belongs to a process. See p208-209 of the spec. But when you pass data between processes, which process owns the DSRef? The only way out of this that I can see is that each process contains a DSRef, both pointing to the same root dataStore element. And in BPMNDI, the shape points to the root dataStore as well. I agree w/you that p221 is a bug in the spec… one of many, sorry to say.

  2. Denis 06/07/11 05:28 PM

    Вы пишете: “BPMN 2.0 различает единичные объекты данных и коллекции (collection) - последние помечаются специальным маркером. В нем также введены специальные обозначения для данных-входов и данных-выходов (Data Input, Data Output) и новые элементы - наборы входных и выходных данных (Input Sets, Output Sets).
    BPMN 2.0 также определяет ассоциацию по данным (Data Association) в добавок к обычной ассоциации (Association), унаследованной из 1.x.”

    Анатолий! А можете эту тему подробнее осветить: как выглядят новые обозначения, для чего они появились, когда и как их применять и т.д. А то насколько я помню на тренинге Вы про это не упоминали…

    Спасибо!

  3. Anatoly Belychook 06/08/11 01:50 PM

    Денис! Рад, что у Вас в голове улегся весь объем материала, полученного на тренинге, раз Вы просите добавки :)

    Если серьезно, то, во-первых, материала этого и так много. Обо всем не расскажешь. А во-вторых, ни иструментария, ни практики применения для этих конструкций пока толком нет. Может быть со временем…

Comments are closed

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