Circles Diamonds BPMN
Circles Diamonds BPMN
BPMN standards can be confusing, but once you understand their purpose and how to
use them, they can be lifesavers. This paper, based on a webinar by Justin Brunt, provides
a walk-through of the BPMN 1.0 standard, shows how it is implemented within TIBCO
Business Studio™ 2.0 (available as a free download) and how the combination of BPMN and
Business Studio can help you be successful with BPM.
                                   What is a Process?
About the Presenter/
                                   There are many descriptions of business processes, but I particularly like this one in
Author
                                   the context of BPMN. The Workflow Management Coalition defines a process as the
Justin Brunt is Senior Product     representation of a business process in a form that supports automated manipulation,
Manager for TIBCO’s BPM            such as modeling or enactment by a workflow management system. The process definition
product suite, TIBCO               consists of a network of activities and their relationships.
iProcess™ Suite. He’s been
involved with business
process management for
over thirteen years, initially
                                   What is BPMN?
as Director of Development         Simply put, Business Process Management Modeling Notation (BPMN) is a graphical way
for Staffware PLC and              of describing a business process. It’s flowchart-based, so looking at the process definition
as Director of Research.           you should immediately be able to see what the process is all about. It’s basically an
Following the acquisition of
                                   activity network combining various flow objects to describe the process. It’s targeted at
Staffware by TIBCO, Justin
                                   different sorts of people. It’s aimed at the business analyst on one side and the technical
took on his current product
management role. Prior to          person, who may have to implement a business process, on the other side. The process
joining Staffware, Justin held     language was put together so that it would be applicable and understandable to people in
senior software development        different roles.
roles with Logica and
Siemens. During his BPM and
workflow career, Justin’s been
involved in the development
                                   Origins of BPMN
of BPMN-related standards.         BPMN came from an organization called Business Process Management Initiative (BPMI)
Throughout this time he’s          that set about putting together specifications and standards for business process
been involved with the             management. They initially put together a specification called Business Process Modeling
Workflow Management
                                   Language (BPML). Associated with that, they wanted a visualization of a business process.
Coalition or WFMC and
                                   That’s where BPMN came in. It was originally put together by a number of people from
held the position of Vice
Chair Europe of the WFMC’s         different organizations including BPM vendors, academics, and end users. The language
technical committee                itself was derived from different modeling notations – UML, high def, activity decision flow.
between 2002 and 2006,             But the key thing about BPMN is that it really is targeted at describing a business process,
prior to his current position      whereas some of the other modeling notations have a wider scope.
as Vice Chair Europe of the
Steering Committee. He’s           BPMN is very specific to business process management. To date, we’re aware of at
also a fellow of the Workflow      least 44 implementations of BPMN, of which TIBCO Business Studio is one. The original
Management Coalition.
                                   specification came out in 2004 and the BPMI organization was eventually merged into the
Justin also represents TIBCO
in the OMG’s BPM-related           Object Management Group standards group. They adopted BPMN as one of their formal
  BPMN Limitations
  In terms of the language itself, there are some limitations to it.
      •	 And one of the key things the notation doesn’t include is a specification for
         persisting the process definition. There are a number of initiatives that satisfy
         that requirement. One of them is the Workflow Management Coalition’s XDPL
         specification. Another one is a new standard defined by the OMG: Business Process
         Definition Metamodel (BPDM).
• And, although it can show the flow of data, BPMN is not a data flow diagram.
  Uses of BPMN
  So what can you use BPMN for? There are three main types of business processes.
      •	 private process: All of the activities within the process are completely within a
         department or an organization, with no communication from that process to the
         outside world. The process definition would include all of the activities that you see
         being performed within that process.
                                   •	 connectors – things that describe how the different flow objects relate to each
                                      other
                               Under flow objects you have events, activities, and gateways. Under connectors you have
                               sequence flows, message flows, and associations.
                               BPMN elements look very familiar because they are drawn from the flowcharting paradigm.
                               The TIBCO Business Studio palette, which helps you draw the business process, includes
                               all of these BPMN shapes. For instance, under events you’ll see that there are start events,
                               intermediate events, and end events. Using those shapes and others, you can build your
                               business process. Figure 2 shows what is perhaps the simplest of all business processes:
                               start a process, do something, and complete the process.
                                 When you look at a particular shape in TIBCO Business Studio, you are able to see a
                                 properties view for each shape.
                                 ACTIVITIES
                                 In the simple process described above – start, do something, end – we just had a task;
                                 there was no specialization at all. BPMN allows us to have much more specialization than
                                 that. For example, you can have a sub-process. An activity could be looped so it occurs
                                 continuously. An activity could be performed in multiple instances; perhaps an activity is
                                 delivered to more than one person or performed by more than one person. And you can
                                 combine these different activities; so a sub-process might also behave in a looped manner
                                 or in a multiple instance manner, going out to different instantiations.
                         TASKS
                         One interesting thing about BPMN is that the specification allows you to embellish the
                         shapes themselves. When you look at the shape for an activity, it’s fairly bland. It’s just a
                         round-cornered oblong. But to convey more meaning, you can embellish it with colors or
                         icons. You can change the size of the icon.
                         In Business Studio, we allow you to define what kind of activity you want to represent.
                         You might have a User Task, where somebody is sitting at a computer and an activity is
                         delivered to them through a workflow or BPMN system. You might have a Manual Task, that
                         represents a point in a process where somebody needs to do something with some paper
                         – a manual task, but you still want to represent that within the business process. You might
                         have a Service Task, where some kind of automation occurs. For instance, a system may go
                         and do a credit check. Or you might have a Script Task, where an automated script is run to
                         perform some logic that helps with the execution of the process.
                   So you’re allowed to extend BPMN by having these colors and definitions, the only constraint
                   is that you not change the meaning or the semantics of the process specification.
                   SUB-PROCESSES
                   The sub-process activity provides a means to define logic that you wish to separate from
                   the main body of the process. For example, you may want to encapsulate this process logic
                   to enable reuse, so this piece of logic can be used by different processes or within different
                   parts of the same process. Or you want to hide the detail of one part of the process
                   because it detracts from the way the process can be understood by people reading it.
                   There are two different types of sub-processes. One is a separate sub-process where it
                   looks like a complete process definition. (In Business Studio, when you want to investigate
                   the process definition for the sub-process you can click on the object that you see on
                   the screen and the tool would open up a new window where you could see the detail of
                   the sub-process.) The other type is an embedded sub-process, where it’s not separate
                   from the process definition that you’re working with, but surrounds all of the logic you’re
                   interested in within a boundary and it appears as a single task within the process. Within
                   the sub-process there is some more detail, but it isn’t held in a separate place like the
                   other type of sub-processes.
                          EVENTS
                          Events define something that happens during the life of a process.
                              •	 Intermediate Events define things that happen during the process. These can be
                                 part of the flow or associated with different activities.
                          START EVENTS
                          For each of the event types there are further specializations. For instance, a process
                          could be started by the receipt of a message from someone. A process could be started
                          by the receipt or triggering of a timer. For example, a process might start every Monday
                          or once a month. So there are different ways of starting processes, and you can use
                          different event types to specify how those processes will start.
                                  INTERMEDIATE EVENTS
                                  As with Start Events, Intermediate Events can be started by a message. (In fact, a process
                                  could send a message to another process, so you could get this interaction between
                                  different processes.) A process could include some timer-related information. You may
                                  need to wait until a particular time before something else needs to happen. Or you may
                                  use it as part of an escalation capability, where if a particular action doesn’t happen by a
                                  particular time; you can specify some behavior that will occur on the expiry of a timer. An
                                  event could be initiated as a result of a rule or condition. Figure 7 shows how that would
                                  appear in the Business Studio palette. So you can click on Intermediate Event and select
                                  the particular Intermediate Event type you want to use as part of your process.
                         EXAMPLES OF EVENTS
                         Figure 9 shows some examples of how events could be used. For the first one, we’ve got
                         a process that is started by the receipt of a message. For example, you receive a purchase
                         order and that instantiates a process that manages the fulfillment of the order.
                         In the second one we’ve got a timer within the flow. Once an activity is performed, the
                         process needs to wait for a message to be received before it proceeds to the next activity
                         within the process. Perhaps it’s waiting for the receipt of a scanned contract.
                         In the next one we have an event on the boundary of an activity. We’re processing an
                         order, but we’ve got a timer trigger such that after 48 hours if something hasn’t happened,
                         we can escalate to the manager. The manager gets a notification that something is not
                         happening as it should.
                                GATEWAYS
                                Gateways help us specify the flow of the process. There may be points where you need to
                                decide which path to go down through the process. There may be other points where you
                                need to have several things happen in parallel. Different types of gateways allow you to
                                change the way the process flows.
                                The first of these is an exclusive gateway. And there are two different types of these.
                                One is data based, meaning that it makes a decision based on data. For example, if the
                                value of a purchase order is greater than $10,000, proceed down this path, otherwise,
                                proceed down that path. There are two different representations of this gateway in the
                                specification. One is shown here with the cross in the middle. (An empty diamond means
                                exactly the same thing, but in Business Studio we’ve chosen to use the cross symbol
                                for added visualization.) The other type of exclusive gateway is event based, so the
                                determination of which path to go down is determined by the receipt of one type of event
                                or another.
                                Another type of gateway you’ll see and may want to use yourselves is a parallel gateway.
                                Several paths go out from this type of gateway and all will be performed in parallel.
                                The other gateway is an inclusive decision/merge. In this case, you may have conditions
                                associated with the different routes. You may then end up with one or more paths being
                                followed depending on which conditions are met.
                        If none of the above mechanisms satisfies the requirement, tool vendors have the
                        opportunity to use the multiple type. Gateways can be used for splitting into several paths
                        and for joining multiple paths back together. If you have an exclusive decision gateway that
                        then splits into multiple paths, you will see a gateway that joins them back together again.
                        EXCLUSIVE GATEWAY
                        In Figure 11 we have an example of an exclusive gateway where we’ve got conditions: If a
                        loan is greater than this value, go down this path to have the loan approved. If it’s a lower
                        value, we can have a different person approve it. Later you can see that the paths merge.
                        In this particular instance you will only see one of the paths followed through the process.
                        We also have an example of the event-based gateway, where we may be waiting for
                        different things to happen. One might be an acceptance message. The other might be
                        a cancel message. So we would follow a different path depending on the event that was
                        received by the process. Again, we see the joining of the different paths at the end and we
                        see that only one of these paths would be followed through the process.
                                  INCLUSIVE GATEWAY
                                  The inclusive gateway works the other way around, where multiple paths may be followed.
                                  In this example, we have several chapters of a book to edit, and depending on how many
                                  of those chapters are available, we’ll define how many of those paths we go down.
                                PARALLEL GATEWAY
                                Going on to parallel gateways, in Figure 14 we have an example where a process can split
                                into more than one path. In this particular case, we have two different parallel paths that
                                will be followed together. The process will then wait until both of those activities have been
                                performed before proceeding to whatever activities appear after the joining gateway.
                                One of the other things BPMN allows you to do is have very similar logic, but for it to be
                                defined in different ways. So here we have two paths within a process that have exactly
                                the same meaning but different ways of representing them. In the top one we’re using
                                a gateway to say this is how the process splits into two parallel paths. The bottom one
                                allows you to have multiple paths out of the first activity into the secondary activities, and
                                then they join back into the next activity via a parallel gateway. The behavior of those two
                                process fragments is exactly the same, but you can represent them in different ways. It
                                 CONNECTORS
                                 The last set of elements within the specification are connectors – the things that join the
                                 different parts of the process together. Connectors define how the flow objects – the
                                 events, gateways and activities – are joined together, what sequence they appear in. And
                                 again, there are different specializations of those elements.
                                 In Figure 15, we have a normal sequence flow that says that this follows this and this
                                 follows this. The next is a conditional connector and this has the same kind of idea that
                                 we saw in Figure 14 whereby you can choose to use a gateway for splitting into separate
                                 paths, or you can have multiple paths coming out of an activity. The conditional connector
                                 provides you with much the same idea in that you can have an activity, which has multiple
                                 paths coming out of it, and each of them has this connector which has the diamond on
                                 which defines that there is a condition associated with each of these paths. And only if
                                 that condition is met will it go down that particular path onto the next activity. The next
                                 kind of connector is the association. We have a number of different elements within BPMN
                                 that allow us to associate information with the process itself. This dotted line allows us
                          SEQUENCE FLOW
                          Figure 16 shows some examples of the use of the connectors. In the first example, we’ve
                          got one activity following another, using the normal sequence flow connector. In the
                          second example we’ve got conditions and a default path where the flow will go if none of
                          the conditions are met.
                            You can also add a data object. For a purchase order, you could use data objects to
                            indicate that a purchase order has been received, approved, or completely fulfilled. For
                            a job application process, you may want to indicate that the state of the job application
                            changes as it goes through the process. It helps the readability of the process by letting
                            you know what kinds of thing the process is dealing with.
                            GROUPS
                            Groups is a way of surrounding a number of activities within a process or across multiple
                            processes. If you’re dealing with multiple processes within the same diagram, you can
                            associate them by lassoing them with the group element. This has no bearing on the
                            logic of the flow. It simply helps the understanding of the process, helps you categorize
                            and group activities that can be considered part of the same phase of a project or are
                            otherwise related to each other.
                               The specification also allows you to add your own artifacts to the process modeling
                               language, while making sure that you’re not clashing with anything that is specified
                               as part of the core standard. So you could add artifacts to represent a database, an
                               organizational modeling system, things that add to the information about the process.
                                   In Figure 21 we have an example where a process in one pool is interacting with a process
                                   in another pool. You’ll notice that there are no sequence flows between the pools. The
                                   interaction between processes in different pools is facilitated by the flow of messages
                                   between the different activities in the processes. We’ve got this synchronization between
                                   the two processes where one sends out a message to say I’ve sent this order (and you may
                                   want to annotate that with a data object that says this is an order), and the other process
                                   receives the order and then confirms receipt of the order by sending a message back to
                                   the initiator of the process to say we’ve received the order, we’ll now confirm it, and go on
                                   to fulfill the process.
                                   So it’s a powerful way of describing the interactions between different parties that may be
                                   involved in a global or collaborative process.
                                   LANES
                                   In Figure 22 we’ve got a view of different lanes within the same processor. Here we’ve
                                   got a process that’s contained within one pool and that pool is broken up into different
                                   lanes. In this example we’ve got different groups in the organization: we’ve got the order
                                   management organization performing their tasks and interacting with the manufacturing
                     In this example we’ve got one of these events that appears on the edge of an activity
                     that says, if I need to roll back, this is what I do. I associate an activity with that event. The
                                Future of BPMN
                                What I want to do now is to describe where BPMN is now and what’s going to happen in
                                the future. The specification that TIBCO Business Studio satisfies is version 1.0. The Object
                                Management Group has just recently completed the 1.1 version of the specification, which
                                clarifies some of the ambiguities that may have existed in version 1.0 and adds a few
                                features I’ll discuss shortly.
                                The next major step is BPMN 2.0, which will be a combination of BPMN and BPDM, another
                                Object Management Group specification. As I mentioned earlier, BPMN 1.0 doesn’t have
                                a description of how you would save a process definition. An XPDL 2 from the WFMC
                                allows you to do that now, but BPDM is an initiative from the Object Management Group
                                to provide a mechanism whereby you could persist the process definition that you’ve
                                drawn within BPMN and exchange it between different product tools, so between maybe a
                                modeling tool and a process execution engine.
                                One of the other changes is to the BPMN acronym itself. Although it’s got the same letters,
                                the words will change to reflect the merging of these two processes. Instead of Business
                                Process Modeling Notation, it’s Business Processing Model and Notification.
  BPMN 1.1
  What have we got coming in BPMN 1.1? Some changes are purely descriptive. Earlier I
  talked about the XOR Exclusive Gateway and the All Inclusive Gateway. We’ve dropped
  the “XOR” and “All” to make it less of a technical description of the shapes and things that
  appear within the process. We’ve also changed the way one of the shapes is represented.
  The event-based gateway symbol had a star. Now it has a pentagon.
  When we talked about the different events, I mentioned that you could either send a
  message or receive a message as part of the process. In BPMN 1.1 we’re able to visually
  distinguish between the types of events. If it’s a receive, it’s an empty envelope. If it’s a
  send, it’s a full envelope.
  We also have a new event type that appears within the specification itself called a signal.
  It’s similar to the message event, but the message event, needed something to send to. A
  sending message needed to send to something that was going to pick up that message.
  A signal is like a broadcast. The process can send out the signal and it doesn’t know
  who’s listening to it. If there is something listening to it, they will pick up the signal and
  perform whatever needs to be performed following the receipt of that signal. But the
  sender doesn’t rely on having a receiver ready and waiting for the signal. Another change
  relating to events is that, similar to the gateway, there’s a change of shape from a star to a
  pentagon.
                                                                                       BPMN is aimed at both technical and business users. If you cast your mind back to
                                                                                       some of the examples, you could draw a process that didn’t need to have all of the
                                                                                       detail about all the different types of events and activities. You could quite easily
                                                                                       have a very good representation of a process. But if you need the detail, all the
                                                                                       different elements within the language are there for you to add more meaning and
                                                                                       information to it.
                                                                                       Business Studio provides quite a few examples. There are sample processes you
                                                                                       can use as models. You can see how the different process elements are used
                                                                                       and how they relate to each other to give you a good start in defining processes.
                                                                                       There are also process fragments you can use to easily put together a particular
                                                                                       construct, such as a split and a join with some activities in between. You can just
                                                                                       drag those onto the pallet and get your process put together very quickly.
Here are some resources for further information about the BPMN specification.
http://developer.tibco.com http://www.tibco.com/devnet/business_studio/
default.jsp
©2008, TIBCO Software Inc. All rights reserved. TIBCO, the TIBCO logo, The Power of Now, and TIBCO Software are trademarks or registered trademarks of TIBCO Software Inc. in the United States and/or other countries. All other
product and company names and marks mentioned in this document are the property of their respective owners and are mentioned for identification purposes only. 27805.0