Thanks for the Spec. Just finished looking through the stuff. Well, things that first occured to my mind are as follows: so many new objects and features, new processes, over sixty 504 pages, a class diagram on almost every page, 62 events (!!!)… What’s the purpose? The 1.1 and 1.2 still haven’t stayed quiet. Many modeling tools did not even try to catch up with OMG manufacturing process…
Mieszko,
Many people have the same reaction you do. The two main reasons for all the changes are: 1) alignment with OMG’s Model-Driven Architecture. That’s what all the UML metamodel is all about. It would have been much worse if BPDM had won the battle. 2) executable BPMN, driven by the BPEL heavy weights IBM, Oracle, and SAP, who realized that they needed to connect BPMN to a BPEL-like executable design language in order to play in the BPM space. I agree 99% of today’s BPMN users don’t care about either one of these things. A couple of the new things are very useful: non-interrupting events, Escalation event, XML serialization. The book separates the important stuff from the rest of it.
–Bruce
The big question are:
- did BPMN 2.0 pass the june voting?
- why has’nt there been any press coverage about that; OMG’s website is still clueless?
- will BPMN 2.0 be “released” in a similar manner as BPMN 1.2 - i.e. nobody really noticed?
Bruce’s book was ordered as soon as possible on amazon, but only shipped yesterday. Hope to get it by the week’s end.
Bruce,
Thanks for your response. By the way, I ‘ve finished studying your new book today and I must say sth on that issue: you did a good job. It deserves highest respect. Thanks again.
Until version 2.0, OMG provided no standard serialization for BPMN. WfMC picked up the slack with XPDL 2.0 and XPDL 2.1 (for BPMN 1.0 and 1.1/1.2), but it was “unofficial.” You would have to ask OMG why they did not do this? I think I started asking them around 2005.
–Bruce
I have a question relating to Level 3 - executable BPMN - and Data Objects.
I am looking at Chapter 20, an example of a Service Task. On page 200, it shows an assignment from EventOutput/payload to CustomerDataObject. On page 201, it shows an assignment from CustomerDataObject/customer/address to DataInput/customer/address.
It seems to me that there is a step missing. I am assuming that the ‘customer’ is an existing customer whose details are maintained in some DataStore. The EventOutput/payload would typically contain the customer account number. This would then be used to retrieve the customer details, but this step is not shown.
I accept that the examples in the book are simplified, and cannot show every detail. However, what I would like to know is, is it possible within BPMN itself to show the step of retrieving the customer details from the DataStore using the customer account number, or is it necessary to insert a Task, with EventOutput/payload/customernumber as DataInput, and CustomerDataObject as DataOutput?
Of course I may be missing something obvious, in which case please enlighten me.
Frank,
Data Store is like a global variable that is accessible from outside the process and also from the process itself. It just describes the persisted form of the data, not the action of retrieving it. In my example the customer address is passed in via the message event and stored in a data object (internal process variable). In your variant the customer passes in an identifier from which the process looks up the address from a data store. The process would have a service task to look up the customer info, represented by the data store. The dataInputAssociation from the data store to the service task could be used to describe the mapping (if any) from the data store representation to the process’s internal representation. I suspect the particulars of this notation might differ based on the tool, i.e. Oracle might do it differently than IBM. Let’s give it 6 months and see…
Thanks for your response of November 16th. Sorry for taking so long to reply. I was not intending to reply at all, as I was satisfied with your answer, but I have just noticed something in the spec that I think is worth mentioning.
The following is taken from Page 215 of Version 0.9.14 of the spec.
Data Stores
A DataStore provides a mechanism for Activities to retrieve or update stored information that will persist beyond the scope of the Process. The same DataStore can be visualized, through a Data Store Reference, in one (1) or more places in the Process.
The Data Store Reference is an ItemAwareElement and can thus be used as the source or target for a Data Association. When data flows into or out of a Data Store Reference, it is effectively flowing into or out of the DataStore that is being referenced.
If I read this correctly, it seems that you *can* represent both reading from and writing to a Data Store diagrammatically, by using a Data Association between a Data Store and a Data Object, without having to create a Service Task to represent this.
I can understand a Signal that is caught by a Start Event to trigger a new process instance.
I have difficulty understanding a Signal used for communication between parallel paths within the same instance.
The problem is that you may have several instances of the same Process running concurrently. If one of the instances throws a Signal, you would want only that instance to catch it. But according to the spec, *all* Catch Events listening for that Signal must respond to it.
I believe in this case the catching Signal would subscribe only to a Signal thrown by the same process instance. BPMN provides standard methods by which Messages can be correlated to find the right instance. I’m not sure if those apply also to Signal, but for sure any middleware implementation of Signal throw-catch would provide something similar.
–Bruce Silver
I agree that this would be the practical way to handle it, but as far as I can tell the spec provides no mechanism for adding correlation to Signals. This would mean that a middleware product can only provide this by using non-standard methods, which is not ideal.
It is also conceivable that one might want to model a Signal that MUST be caught by all running instances. One would then have to find a way of distinguishing between the two scenarios.
Of course this might have been addressed by the FTF in the latest version of the spec. The version I have is FTF Beta 1 dated August 2009. I am looking forward to the next public release.
In the specification von BPMN 2.0 I can find two different formats to serialize a BPMN Diagram. Can you tell me if the XML-schema (xsd) or the Meta Object Facility (MOF) is going to be the finally BMPN 2.0 Interchange Format?
Thanks,
Adrian
I usually don’t usually post on many Blogs, nevertheless I just has to say thank you… keep up the amazing work. Ok unfortunately its time to get to school.
I mentioned in a previous post I had created a tool that converts BPMN diagrams from Visio Premium 2010 to BPMN 2.0-compliant XML. It was an interesting project because Visio itself does not internally “understand” the structure of a BPMN model. Sure, it can test many of the rules in the BPMN spec, but that [...]
On my summer vacation I’ve been thinking a lot about the XML side of BPMN. While we usually think of BPMN as a diagramming standard, it is also – in principle – a model interchange standard, an XML format than can be exported from tool A and imported into tool B. BPMN 2.0, XPDL 2.1 [...]
Last Friday I had a run-through of my upcoming BPMN Method and Style Level 1 workshop. It was a good thing. I got some helpful feedback on the content, and I learned a few tricks of Microsoft Visio 2010 (having the Visio product manager in attendance didn’t hurt). It was a little rushed to squeeze [...]
The link does not seem to be working.
Sorry. Try it now.
Thanks for the Spec. Just finished looking through the stuff. Well, things that first occured to my mind are as follows: so many new objects and features, new processes, over sixty 504 pages, a class diagram on almost every page, 62 events (!!!)… What’s the purpose? The 1.1 and 1.2 still haven’t stayed quiet. Many modeling tools did not even try to catch up with OMG manufacturing process…
Mieszko,
Many people have the same reaction you do. The two main reasons for all the changes are: 1) alignment with OMG’s Model-Driven Architecture. That’s what all the UML metamodel is all about. It would have been much worse if BPDM had won the battle. 2) executable BPMN, driven by the BPEL heavy weights IBM, Oracle, and SAP, who realized that they needed to connect BPMN to a BPEL-like executable design language in order to play in the BPM space. I agree 99% of today’s BPMN users don’t care about either one of these things. A couple of the new things are very useful: non-interrupting events, Escalation event, XML serialization. The book separates the important stuff from the rest of it.
–Bruce
The big question are:
- did BPMN 2.0 pass the june voting?
- why has’nt there been any press coverage about that; OMG’s website is still clueless?
- will BPMN 2.0 be “released” in a similar manner as BPMN 1.2 - i.e. nobody really noticed?
Bruce’s book was ordered as soon as possible on amazon, but only shipped yesterday. Hope to get it by the week’s end.
Bruce,
Thanks for your response. By the way, I ‘ve finished studying your new book today and I must say sth on that issue: you did a good job. It deserves highest respect. Thanks again.
Why isn`t there an XML Schema for BPMN 1.2 or at least i cannot find it.
Can some help me with this?
Until version 2.0, OMG provided no standard serialization for BPMN. WfMC picked up the slack with XPDL 2.0 and XPDL 2.1 (for BPMN 1.0 and 1.1/1.2), but it was “unofficial.” You would have to ask OMG why they did not do this? I think I started asking them around 2005.
–Bruce
I have a question relating to Level 3 - executable BPMN - and Data Objects.
I am looking at Chapter 20, an example of a Service Task. On page 200, it shows an assignment from EventOutput/payload to CustomerDataObject. On page 201, it shows an assignment from CustomerDataObject/customer/address to DataInput/customer/address.
It seems to me that there is a step missing. I am assuming that the ‘customer’ is an existing customer whose details are maintained in some DataStore. The EventOutput/payload would typically contain the customer account number. This would then be used to retrieve the customer details, but this step is not shown.
I accept that the examples in the book are simplified, and cannot show every detail. However, what I would like to know is, is it possible within BPMN itself to show the step of retrieving the customer details from the DataStore using the customer account number, or is it necessary to insert a Task, with EventOutput/payload/customernumber as DataInput, and CustomerDataObject as DataOutput?
Of course I may be missing something obvious, in which case please enlighten me.
Thanks.
Frank,
Data Store is like a global variable that is accessible from outside the process and also from the process itself. It just describes the persisted form of the data, not the action of retrieving it. In my example the customer address is passed in via the message event and stored in a data object (internal process variable). In your variant the customer passes in an identifier from which the process looks up the address from a data store. The process would have a service task to look up the customer info, represented by the data store. The dataInputAssociation from the data store to the service task could be used to describe the mapping (if any) from the data store representation to the process’s internal representation. I suspect the particulars of this notation might differ based on the tool, i.e. Oracle might do it differently than IBM. Let’s give it 6 months and see…
Hi Bruce
Thanks for your response of November 16th. Sorry for taking so long to reply. I was not intending to reply at all, as I was satisfied with your answer, but I have just noticed something in the spec that I think is worth mentioning.
The following is taken from Page 215 of Version 0.9.14 of the spec.
Data Stores
A DataStore provides a mechanism for Activities to retrieve or update stored information that will persist beyond the scope of the Process. The same DataStore can be visualized, through a Data Store Reference, in one (1) or more places in the Process.
The Data Store Reference is an ItemAwareElement and can thus be used as the source or target for a Data Association. When data flows into or out of a Data Store Reference, it is effectively flowing into or out of the DataStore that is being referenced.
If I read this correctly, it seems that you *can* represent both reading from and writing to a Data Store diagrammatically, by using a Data Association between a Data Store and a Data Object, without having to create a Service Task to represent this.
Would you agree with this interpretation?
Thanks
Frank
I have a question about Signals (pp 96-100).
I can understand a Signal that is caught by a Start Event to trigger a new process instance.
I have difficulty understanding a Signal used for communication between parallel paths within the same instance.
The problem is that you may have several instances of the same Process running concurrently. If one of the instances throws a Signal, you would want only that instance to catch it. But according to the spec, *all* Catch Events listening for that Signal must respond to it.
Can someone explain what I am missing here?
Thanks
Frank Millman
I believe in this case the catching Signal would subscribe only to a Signal thrown by the same process instance. BPMN provides standard methods by which Messages can be correlated to find the right instance. I’m not sure if those apply also to Signal, but for sure any middleware implementation of Signal throw-catch would provide something similar.
–Bruce Silver
I agree that this would be the practical way to handle it, but as far as I can tell the spec provides no mechanism for adding correlation to Signals. This would mean that a middleware product can only provide this by using non-standard methods, which is not ideal.
It is also conceivable that one might want to model a Signal that MUST be caught by all running instances. One would then have to find a way of distinguishing between the two scenarios.
Of course this might have been addressed by the FTF in the latest version of the spec. The version I have is FTF Beta 1 dated August 2009. I am looking forward to the next public release.
Thanks
Frank
[...] 見えてきたBPMN 2.0の全貌 2009年5月14日 Iwata コメントをどうぞ コメントへ OMGが開発を進めているBPMN 2.0標準仕様の採択が本年6月に行われる予定である。その詳細は明らかにされていなかったが、あるWebサイト(ここのページからダウンロード可)に2009年5月11日付けの最新「BPMN 2.0 提案原稿」が公開されていたので改訂ポイントを紹介したい。この仕様書はA4にして487ページと膨大なため精読は不可能に近い。以下に私の興味あるポイントだけを示す。 [...]
In the specification von BPMN 2.0 I can find two different formats to serialize a BPMN Diagram. Can you tell me if the XML-schema (xsd) or the Meta Object Facility (MOF) is going to be the finally BMPN 2.0 Interchange Format?
Thanks,
Adrian
Adrian,
Officially both xsd and MOF/xmi are supported. They are as equivalent as possible.
–Bruce
I usually don’t usually post on many Blogs, nevertheless I just has to say thank you… keep up the amazing work. Ok unfortunately its time to get to school.