| 
Note: The information presented
here represents changes that are being made to the specification between
BPMN 0.9.1 R1, which was released to the general public, and BPMN
0.9.1 R2, which will be released to the Working Group at a later date.
Very minor typographical or language changes are not listed.
Use of Keywords
The last version of the specification was
not very thorough in the use of keywords such as "MUST"
and "MAY" when describing the semantics of BPMN elements.
All these types of statements were reviewed and the text was modified
to apply better use of these keywords.
For example:
- "If there is a Start
Event, then there MUST
has
to be at least one End Event."
Most of the paragraphs in which these modifications
were done are bulleted paragraphs using this type of bullet of four
dots in the shape of a diamond or the changes were made in the tables
defining the attributes of a modeling object. There were many changes
and all of the changes are not presented here. A new version of the
specification will be posted at a later date for the members of the
working group to review.
Headers and Footers
Added:
- To right Header: Heading 1
text and Heading 3 text
- To left Header: Heading 2 text
and Heading 3 text
Removed:
- The date from the Header.
Section 2: BPMN Overview
BPMN Scope
Diagram Point of View
Changed:
- In the first paragraph: "At
runtime, the difference between internal
and external activities is important in how a Participant
can view the status of the activities or trouble-shoot any problems."
Section 3: Business Process Diagram Concepts
BPD Core Element Set
Core Element Table
Changed:
- Decision is change to "Gate."
- Description of Decision
removed: "Decisions are locations within a business process
where the flow of control can take two or more alternative paths."
- Description of Gate added:
"A Gate is used to control the divergence and convergence
of multiple Sequence Flow. Thus, it will determine branching,
forking, merging, and joining of paths. Icons within the diamond
shape will indicate the type of behavior."
- Figure changed so that
Name is no longer in center. The figure is blank, but the Gate
will have Icons.
BPD Complete Set
Complete Element Table
- Various changes were made to
the table to reflect the changes to the flow control mechanisms.
Flow Object Connection Rules
Sequence Flow Rules
Changed:
- In the description, the fifth
sentance: "The code letters are: 0 (No Connections); 1 (One
Connection); M (Multiple Connections)
;
and M(E) (Multiple Exclusive Connections)."
- In the Connection Rules Table:
- From Start Event was change
from M (many) to 1-M.
- From Sub-Process was change
from M (many) to 0-M.
- From Task was change from
M (many) to 0-M.
- Decision shape was changed
to a more generic Gateway shape.
- From Gateway was change
from M(E) (many--exclusive) to 0-M.
- From Intermediate Event
was change from M (many) to 1-M.
- To Sub-Process was change
from M (many) to 1-M.
- To Task was change from
M (many) to 0-M.
- To Gateway was change from
M (many) to 0-M.
- To End Event was change
from M (many) to 1-M.
Section 4: Business Process Diagram Graphical
Objects
Start Event
Initial Description
Added:
- After the first sentance of
the fourth paragraph: "The path of Tokens MUST be explicity
traced through the network of Sequence Flow with a Process. There
CANNOT be any implicit flow during the course of normal Sequence
Flow."
- After the first bullet element
describing the semantics of the Start Event: "If a Process
is complex and/or the starting conditions are not obvious, then
a Start Event SHOULD be used."
Removed:
- "A sub-process, which
is a process within a process, if expanded to show its detail, MAY
also have Start Events." [this statement was redundant because
of an earlier semantic definition]
Attributes
Added:
- Id: This is a unique ID that
identifies the Start Event from other objects within the diagram.
Changed:
- Name attribute defined as string.
- Lane from 0 to 1 (?) to 0 to
many (*) to handle a matrix organization of Lanes: "If the
Pool has more than one Lane, then the LaneName must be added. There
MAY be multiple Lanes listed if the Lanes are organized in matrix
or overlap in a non-nested manner."
- Description attribute defined
as string.
Removed:
- Outgoing Sequence Flow
- Incoming Message Flow
- Association
Message Flow Connections
Changed:
- "The trigger attribute
of the Start Event MUST
must
be set to "Message"
or "Multiple"
if there are any incoming Message Flows."
End Event
Initial Description
Added:
- After the
paragraph after Figure 4: "Semantics of the End Event include:"
- "
End Event Results
Added:
- To the End Event Types table:
A new row before "Multiple."
- Name: Terminate
- Description: "This
type of End indicates that there is a fatal error and that all
activities in the Process should be immediately ended. The Process
is ended without compensation or event handling."
- Figure: shows the Terminate
End Event.
Attributes
Added:
- Id (string): This is a unique
ID that identifies the End Event from other objects within the diagram.
Changed:
- Name attribute defined as string.
- Result: a new Result setting
was added: Terminate
- FlowCondition moved to text
level 1
- Complex moved to text level
2
- Lane from 0 to 1 (?) to 0 to
many (*) to handle a matrix organization of Lanes: "If the
Pool has more than one Lane, then the LaneName must be added. There
MAY be multiple Lanes listed if the Lanes are organized in matrix
or overlap in a non-nested manner."
- Description attribute defined
as string.
Removed:
- Incoming Sequence Flow
- Outgoing Message Flow
- Association
Mapping Execution languages
BPEL4WS
Added:
- Before the last mapping (Multiple):
A new mapping "Terminate: this will map to the terminate
element."
BPML
Added:
- Before the last mapping (Multiple):
A new mapping "Terminate: TBD."
Intermediate Event
Intermediate Event Triggers
Changed:
- First sentance: There are eight
seven types of Intermediate
Events in BPMN: Message, Timer, Process Error (exception), Compensate,
Compensation, Rule, Link, and
Multiple.
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Intermediate Event from other objects within
the diagram.
Changed:
- Name attribute defined as string.
- Lane from 0 to 1 (?) to 0 to
many (*) to handle a matrix organization of Lanes: "If the
Pool has more than one Lane, then the LaneName must be added. There
MAY be multiple Lanes listed if the Lanes are organized in matrix
or overlap in a non-nested manner."
- Text for ProcessError: "If
the Trigger is a Process Error, then the error code MAY
can be supplied. If there is
no error code, then any Error SHALL
will trigger the Event.
If there is an error code, then only an Error that matches the
error code SHALL trigger the Event."
- Description attribute defined
as string.
Removed:
- Incoming Sequence Flow
- Outgoing Sequence Flow
- Incoming Message Flow
- Association
Sequence Flow Connections
Changed:
- First Bullet: "If
the Intermediate Event is not attached to the boundary of an activity,
then it
An Intermediate Event
MAY be a target for a Sequence Flow; it can have one incoming Flow."
- New Bullet after first Bullet:
"
Mapping to BPEL4WS
Added:
- For: If the Intermediate Event
follows a Decision (e.g., is part of a pick):
this will map to an onAlarm
element within a pick.
The TimeDate attribute maps to the
until attibute of the onAlarm.
The TimeCycle attribute maps to the
for attibute of the onAlarm.
- For: If the Intermediate Event
is within the normal flow of the Process (but does not follow a
Decision): this will map to a wait.
The TimeDate attribute maps to the
until attibute of the wait.
The
TimeCycle attribute maps to the for
attibute of the wait.
Process
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Process from other objects within the diagram.
Changed:
- Name attribute defined as string.
- Nested (Boolean) to Type (Embedded
| Independent)
- Description attribute defined
as string.
Removed:
- Incoming Message Flow
- Target
- Outgoing Message Flow
- Source
- Association
Sub-Process
Initial Description
Added:
- New paragraph after Figure
10: "Expanded Sub-Process may be used for multiple purposes.
They can be used to “flatten” a hierarchical process so that all
detail can be shown at the same time. They are used to create a
context for exception handling that applies to a group of activities
(Refer to the section entitled “Exception Flow” on page 93 for more
details). Compensations for transactions can be handled the similarly
(Refer to the section entitled “Transaction Compensation Flow” on
page 97 for more details)."
- New paragraph after the above
paragraph: "Expanded Sub-Process may be used as a mechanism
for showing a group of parallel activities in a less-cluttered,
more compact way. In Figure 11, activities “C” and “D” are enclosed
in an unlabeled Expanded Sub-Process. These two activities will
be performed in parallel. Notice that the Expanded Sub-Process does
not include a Start Even or an End Event and the Sequence Flow to/from
these Events. This usage of Expanded Sub-Processes for “parallel
boxes” is the motivation for having Start and End Events being optional
objects."
- New figure after the above
paragraph, which shows a "parallel" box.
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Sub-Process from other objects within the
diagram.
Changed:
- Name attribute defined as string.
- SubProcessType (Nested | Independent)
to Type (Embedded | Reference)
- LoopType decscription: "ForEach
Loops require an expression, which
specifies
will be used to determine the
number of instances."
- LoopFlowCondition description:
"The LoopFlowCondition
, applied only
to Parallel ForEach loops, acts the similarly is
similar to the FlowCondition for the Sub-Process. A Loop
Flow Condition of One means that the Token will continue past the
Task after only on one
of the Sub-Process instances has completed."
- Lane from 0 to 1 (?) to 0 to
many (*) to handle a matrix organization of Lanes: "If the
Pool has more than one Lane, then the LaneName must be added. There
MAY be multiple Lanes listed if the Lanes are organized in matrix
or overlap in a non-nested manner."
- FlowCondition description:
"If there is more than one incoming
Sequence Flow, then a Flow Condition MUST
must be set. ..."
- Description attribute defined
as string.
Removed:
- Incoming Sequence Flow
- Outgoing Sequence Flow
- Incoming Message Flow
- Target
- Outgoing Message Flow
- FlowCondition
- Complex (under FlowCondition)
- Source
- Association
Mapping to BPML
Changed:
- “If the Sub-Process type is
Nested Embedded
…”
Task
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Task from other objects within the diagram.
Changed:
- Name attribute defined as string.
- "None" was added
as another possible setting for the Type attribute. This is for
"dummy" activities.
- FlowCondition moved to text
level 1
- Complex moved to text level
2
- LoopType
decscription: "ForEach Loops require an expression, which
specifies
will be used to determine the
number of instances."
- LoopFlowCondition description:
"The LoopFlowCondition
, applied only
to Parallel ForEach loops, acts the similarly is
similar to the FlowCondition for the Task. A Loop Flow
Condition of One means that the Token will continue past the Task
after only on one
of the Task instances has completed."
- Lane from 0 to 1 (?) to 0 to
many (*) to handle a matrix organization of Lanes: "If the
Pool has more than one Lane, then the LaneName must be added. There
MAY be multiple Lanes listed if the Lanes are organized in matrix
or overlap in a non-nested manner."
- Instantiate description: "...
This attribute MAY be set to true if the Task is the first activity
after the Start Event or a starting activity if there is no Start
Event. Mulitple Tasks MAY have this attribute
set to True."
- FlowCondition description:
"If there is more than one incoming
Sequence Flow, then a Flow Condition MUST
must be set. ..."
- Description attribute defined
as string.
Removed:
- Incoming Sequence Flow
- Outgoing Sequence Flow
- Incoming Message Flow
- Outgoing Message Flow
- Association
Mapping to BPML
Changed:
- “If
the Time is Parallel, then the Task will be wrapped in an
Nested
Embedded Process …”
Gateways
- This section was added to the
chapter and the Decisions section was, as a block, was moved one
level lower (e.g., Heading 2 is now Heading 3).
- A new introduction was added.
- The term "Gateway"
was added throughout the document. It replaced or supplemented previous
descriptions of controlling Sequence Flow.
Decisions (Branching)
- The text "(Branching)"
was added to this heading.
Changed:
- The eighth sentance of the
first paragraph: "Each Decision Alternative is
paired
with a single is a condition
expression found within an outgoing Sequence Flow."
- The last sentance of the first
paragraph: "The Sequence Flows themselves act only as the path
through which the Token travels; they do not have their own conditions
that can determine whether they are traveled or not."
- Figure 14 surrounding text
was moved to the general description section for Gateways.
Removed:
- The last sentance of the first
paragraph: "The Sequence Flows themselves act only as the path
through which the Token travels; they do not have their own conditions
that can determine whether they are traveled or not."
Exclusive General Description
Changed:
- The first sentance: "The
Exclusive Decision has two or more outgoing Sequence
Message Flows".
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Decision from other objects within the diagram.
- Name attribute defined as string
added as a sub-attribute for (Data) Alternative.
- Expression attribute defined
as Expression added as a sub-attribute for (Data) Alternative.
- Name attribute defined as string
added as a sub-attribute for (Data) DefaultAlternative.
Changed:
- Name attribute defined as string.
- Description for DecisionType:
"DecisionType is
an attribute and
is by default Data. Data types
are the typical decision as seen in most flowcharts. Event types
route the flow based on events, usually messages, that arrive from
external sources."
- (Data) Alternative attribute
no longer defined as Expression
- Description for (Event) Alternative
attribute: “The Intermediate Events must be of type Message, Timer,
Process Error, or Link.”
- FlowCondition moved to text
level 1
- Complex moved to text level
2
- Lane from 0 to 1 (?) to 0 to
many (*) in order to handle a matrix organization of Lanes: "If
the Pool has more than one Lane, then the LaneName must be added.
There MAY be multiple Lanes listed if the
Lanes are organized in matrix or overlap in a non-nested manner."
- Description attribute defined
as string.
Removed:
- Incoming Sequence Flow
- Association
Pool
Initial Description
Added:
- A new figure showing “internal”
activities without a Pool boundary and Message Flow to/from an “external”
Pool. The figure is preceded by supporting text, including the definition
that all BPDs contain at least one Pool, even if the boundaries
are not displayed.
Changed:
- To the second paragraph: "BPEL4WS also can
define an abstract process, but from the
point of view of a single participant."
- Name attribute defined as string.
- Owner attribute defined as
string.
- Description attribute defined
as string.
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Pool from other objects within the diagram.
Changed:
- The SourcePool attribute and
the SourceObject attribute were consolidated into a single attribute
named Source, which is defined as ObjectName. The source can be
a Pool or an object within a Pool.
- The TargetPool attribute and
the TargetObject attribute were consolidated into a single attribute
named Target, which is defined as ObjectName. The target can be
a Pool or an object within a Pool.
Removed:
- Incoming Message Flow
- Target
- Outgoing Message Flow
- Source
- Association
Lane
Initial Description
Added:
- A new figure showing “internal”
activities without a Pool boundary and Message Flow to/from an “external”
Pool. The figure is preceded by supporting text, including the definition
that all BPDs contain at least one Pool, even if the boundaries
are not displayed.
Changed:
- To the first paragraph: "... Our examples
place the name as a banner on the left side (for horizontal Pools)
or at the top (for vertical Pools) on the other side of the line
that separates the Pool name, however,
this is not a requirement."
- In the second paragraph: "... In addition,
Lanes can be nested or defined in a matrix."
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Lane from other objects within the diagram.
- ParentLane (LaneName) to allow
nested Lanes: ParentLane is an optional attribute that is used if
the Lane is nested within another Lane. Nesting can be multi-level,
but only the immediate parent is specified.
Changed:
- Name attribute defined as string.
- Description attribute defined
as string.
Removed:
Data Object
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Data Object from other objects within the
diagram.
Changed:
- Name attribute defined as string.
- Description attribute defined
as string.
Removed:
Text Annotation
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Text Annotation from other objects within
the diagram.
Removed:
Section 5: Connecting Objects
Connecting Graphical Objects
Sequence Flow
Added:
- A new paragraph within the
introductory text; after Figure 24: "We have avoided the term
“Control Flow” when referring the lines represented by Sequence
Flow. The control of the starting of an activity is determined not
only be Sequence Flow, but also by Message Flow (e.g., when a message
arrives), in addition to other process factors, such as delays or
timed activities. Thus, we are using a more specific term, “Sequence
Flow,” since these lines do illustrate the sequence that activities
will be performed."
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Sequence Flow from other objects within the
diagram.
Changed:
- Source: from FlowObjectName
to FlowObjectId
- Target: from FlowObjectName
to FlowObjectId
Removed:
Message Flow
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Message Flow from other objects within the
diagram.
Removed:
- SourceObject
- TargetObject
- Association
Changed:
- Source Pool to Source (defined
as ObjectId)
- TargetPool to Target (defined
as ObjectId)
Association
Attributes
Added:
- Id (string): This is a unique
ID that identifies the Association from other objects within the
diagram.
Changed:
- Source: from ObjectName to
ObjectId
- Target: from ObjectName to
ObjectId
*Within quoted text: added text is indicated
by blue underlined text; removed
text is indicated by red strikethrough text.
Section 9: Open Issues
Added:
Removed:
- Inclusive Decisions
- Will Decisions have a mandatory default
alternative?
- Enhanced graphical mechanisms for forking,
joining, and merging.
- Expanding Flow Conditions so that multiple
Tokens can proceed after a join. This is related to the use of a
PassThrough property.
- Using an Intermediate Event without
interrupting an Event Context.
- Spawning and Synchronizing Activities.
|