BPMN Model Interchange

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 (for BPMN 1.2), and XPDL 2.2 (for BPMN 2.0) all purport to deliver this.  In reality, however, BPMN model interchange faces serious – some would say insurmountable – hurdles.  I have been working on a number of tools to overcome these obstacles.

To achieve BPMN model interchange, you need the following:

  1. An explicitly enumerated set of interchangeable model elements and attributes.  The full BPMN 2.0 schema is too open-ended for unrestricted interchange.  Fortunately, we now have such an enumerated list in the Descriptive and Analytic process modeling conformance classes in the BPMN 2.0 spec.
  2. Modeling tools that unambiguously support all the elements and attributes in those conformance classes, meaning the mapping of diagram shapes and labels to the standard is unambiguous.  We have a number of such tools today.  My work has focused on two of them: Process Modeler for Visio by itp commerce, which supports both BPMN 1.2 and 2.0, and native Visio 2010 Premium, which is just BPMN 1.2.
  3. XML export (as BPMN 2.0 or XPDL) from those tools.  Process Modeler exports either BPMN 2.0 or (in the Pro edition) XPDL 2.1 for BPMN 1.2.  There are a couple problems with it in the current build, but I expect those to be fixed shortly.  Visio 2010 Premium has no native XPDL or BPMN export.  (Global 360′s analystView add-in provides XPDL 2.o but does not fully support either the Descriptive or Analytic conformance classes.)  The good news is I have developed a tool that produces either XPDL 2.2 or BPMN 2.0 from Visio 2010 Premium, absent a few BPMN 2.o shapes missing from the palette: non-interrupting events, escalation, CallActivity, etc.
  4. Validation of user-created models to support effective interchange.  Four distinct types of validation are required:
    1. Adherence to the rules of the BPMN spec.  Both itp and Visio 2010 offer this built into the tool.
    2. Adherence to the palettes specified by the Descriptive and Analytic conformance classes.  The purpose is to identify diagram elements that may not be interchangeable.  WfMC provides an online tool to validate against the XPDL 2.1 conformance classes, which are similar to those defined by BPMN 2.0.  I will probably create something similar for BPMN 2.0.
    3. Schema validation of the exported XML, either XPDL or BPMN 2.0.  You might think that tools would always produce schema-valid XML, but they don’t, for two reasons:  First, they either ignore the published xsd or reference an outdated version.  Second, the user-created diagram may be inherently invalid.  For example, if one end of a message flow is drawn dangling in space (or is improperly connected to a flow object), its required sourceRef or targetRef attribute in the XML will be missing.
    4. Adherence to certain conventions that allow unambiguous serialization of the diagram.  These conventions go beyond the requirements in the BPMN spec, and they could be thought of as “style rules.”  Many of them are also important for human readability of the diagrams and are identical to rules I require in my BPMN Method and Style certification exercisesI have created a validation tool that looks at exported BPMN 2.0 and lists violations of both BPMN rules (4.1 above) and these conventions/style rules. I originally built the tool to automate examination of student certification exercises, but it turns out to have broader value.  A fundamental Method and Style principle is that the process logic should be evident from the diagram itself – the shapes and labels, nothing more, no reference to BPMN details with no visual representation.  That is consistent with the information contained in the BPMN 2.0 conformance classes, which explains the alignment of Method and Style conventions with diagram conventions needed for proper serialization.
  5. Process modeling and executable process design tools that can import and edit BPMN 2.0 or XPDL that passes all of the aforementioned validation tests.  This is the biggest gap right now.  The primary need is to export from a business-friendly BPMN tool like itp or Visio 2010 and import into a BPMN 2.0-based BPMS like Oracle BPM11g.  Today you can’t do it, but it’s a requirement of several of my clients (and, I hear, of numerous RFPs on the street).  I’m hoping to work more with Oracle and like-minded BPMS vendors on ways to do this.

With the tools I will be providing, we should be able to get through step 4.4, and I’m hoping to begin closer dialog with Oracle (and others) on step 5.  I’m vacationing on Block Island until Labor Day, but working on the tools off and on.  I plan to have some of them available, at least for my clients and students, in the next few weeks.

  1. Falko MengeFalko Menge08-20-2010

    Hi Bruce,

    Let’s not forget the Common Executable conformance sub-class, which provides an enumerated list of model elements and attributes that are commonly required for processes executable in a BPMS.

    Greetings from Berlin,

  2. Adam DeaneAdam Deane08-21-2010

    Hi Bruce,

    My gray hair can testify on how hard it is to import different XML formats (all in BPMN standard) from different BPA software to our BPMS software.
    Each BPA vendor has their own “flavour” of BPMN.

    From time-to-time I get an XML file from a new customer. “Here, we have exported the process design from “XXXX” software. It’s in BPMN so you shouldn’t have a problem, should you?”

    Tools are great, but if I’ve received a “BPMN” file from a third party, I don’t have the time to learn about their special way of connecting business rule elements to connections elements etc..
    It should be quick and simple.

    I’ve never had easy access to the third party’s XML documentation. Export to XML is usually an afterthought in most BPA tools.

    So I find myself building hacking XSLT files for each third party’s XML that I get. Not fun…

    Additional BPMN Grievances from my Blog

    Tools are a great workaround. The correct way is to force vendors to export in one standard format.


  3. Denis GagneDenis Gagne08-22-2010

    Hi Bruce,

    You should have a look at the DO section at the as most of theses services are already available their. As previously mentioned we would very much like your feedback and conrtribution as you seem to now share our vision.


  4. J. Bryan LailJ. Bryan Lail08-23-2010

    Bruce, great work to advance the art. I look forward to a joint engagement with Oracle on pushing for Business-to-Process Execution interoperability, and your translation utility.

  5. Fan YiFan Yi08-25-2010

    The correct way is to force vendors to export in one standard format.

    Well I think that is possible for the level 1 and level 2 BPMN, i.e. the diagrams. I mean it is possible that an xml file exported from a BPMN Modeling tool A, will still display the same diagram when it is imported into another tool B.

    I am not sure if it is possible to force vendors (such as my company) to export in one standard format at the executable BPMN level…. as you have seen, there is long way to go even for the presentation (business) level, which i think is the first step to go.

    Sorry for my terrible English, I have never been good at this great language. :)

    Fan Yi

  6. brucebruce08-25-2010

    Fan Yi,
    I agree with you about executable models. That is why I limited my work to the descriptive and analytic conformance classes, which are not executable. There is a common executable conformance class, but I am not sure how useful it is, given vendor-specific differences in data naming conventions, user task implementation, etc. For descriptive and analytic conformance classes, I stand by my assertion that there should be one and only one serialization per the BPMN 2.0 xsd, using only information visible in the diagram.

  7. Fan YiFan Yi08-25-2010

    there should be one and only one serialization per the BPMN 2.0 xsd, using only information visible in the diagram.

    True. This way Adam will get some of his problems resolved, partly though.

    Fan Yi

  8. metinhoclammetinhoclam09-03-2010

    I cannot find out the documents that specify clearly about which attributes for each activities, gateways, events support the executable models. I’ve read Method and Style book and just understand about data, human task, service and message. But how about the rest things? Which organizations, documents specify clearly these things?

  9. metinhoclammetinhoclam09-03-2010

    Regarding to the diagram interchange, suppose that I have a BPM tool that can export to BPMN2.0 xml with DI as well. The tools was designed by SVG language. BUt the Diagram Interchange that is provided by OMG don’t have enough information to return again the original file(SVG). I mean to import also the BPMNDI xml file from third party’s tool? Any solutions and suggestion are welcome! Thank you,
    OMG, they have changed their spec and schema from 10-05-02 to 10-06-04, it is also beta 2. But it was not changes a lot. Look forward the next changes that support enough execution semantic and DI as well.

  10. Bruce,

    it is even more complex because vendors have specific implementations. They call their diagram type support BPMN, but with their own “flavor” to favour their own tools – understandable. This is the same with XPDL implementations for serialization, as it was already stated out. So you have more dimensions: BPMN and XPDL versions and vendors. A cube complexity.

    To fully support exchange of models (diagrams) between tools, we build the BPM-Xchange EAI middleware to transform and interchange any model and master data with meta data transforamtions between tools that come e.g. from EA, BPA, BPM(S), GRC or CMDB scenarios. You may look at for integration of VISIO with ARIS, ORACLE and other tools. This works not only for BPMN and XPDL, also for all other method types like EPC or Flowcharts.


Leave a Reply

1 × nine =