|

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.
-
|