The BPSim Specification
The BPSim Specification
Interchange Standard
Denis Gagné,
www.BusinessProcessIncubator.com
Chair BPSWG at WfMC
XPDL Co-Editor at WfMC
BPMN 2.0 FTF Member at OMG
BPMN 2.1 RTF Member at OMG
CMMN Submission at OMG
Business Process Simulation Working Group
BPSWG
www.BPSim.org
BPSim Inception
Q1 2013
2012
Q3 2011
What it is:
A Standardization Effort
What it is not:
A Pure Thought Leadership Effort
Mandate:
Developing, reviewing, promoting BPM Simulation relevant
standard(s)
BPSWG Goal
Separations of Concerns
Multiple perspectives
Reductionist
Divide and conquer
Business
Modeling
Analysts
Technical
Analysis
Developers
Business
Simulation
People
Business
Execution
Partners
Vendors
End Users
“Separations of Concerns”
BPSim Perspectives
Time Control
Process
Resource Cost
Property Priority
BPSim Scenario
Collections of Scenarios containing Collections of Element Parameters
Used to provide complementary information to a BPMN or XPDL
business process model in the context of process analysis, simulation
and optimization (ASO)
“Reductionist”
Some Concepts and Terms
Meta-model Notation
underlying computer- Notational symbols
interpretable and graphical
representation representation
Standard
Abstract Reference Concrete
Syntax Syntax
instance instance
BPMN or Reference
XPDL
Process (Input)
Scenario
Model Reference (Output)
BPSim Interchange Format
Characteristics
Perspectives
TimeParameters
ControlParameters
P ResourceParameters
CostParameters
InstanceParameters
PriorityParameters
class Scenario
ScenarioParameters
Scenario «enumeration»
«interface» +scenarioParameter + start :Parameter TimeUnit
BPSimData
BusinessProcessModel +scenarios + id :String
+ duration :Parameter
+ name :String 1 0..1 + replication :int ms
1 1..* + description :String s
+ seed :long
+ created :DateTime + baseTimeUnit :TimeUnit min
+ modified :DateTime + baseCurrencyUnit :String hour
+result + author :String day
+ vendor :String year
1
+ version :String +vendorExtensions
+inherits VendorExtension
External BPMN or XPDL 1 0..*
Business Process Model + name :String
1
with its elements + value :Object
+vendorExtensions +propertyParameters
1 0..* 0..*
+elementParameter 0..*
«interface»
BusinessProcessModelElement ElementParameters
+elementRef +propertyParameters PropertyParameters
+ id :String
1 0..1 + property :Map<String, Parameter>
1 0..* + elementRef :BusinessProcessModelElement
+ vendorExtensions :VendorExtension
class Element Parameter
«interface»
BusinessProcessModelElement ElementParameters VendorExtension
+elementRef +vendorExtensions
+ id :String + name :String
1 0..* + elementRef :BusinessProcessModelElement 1 0..* + value :Object
+ vendorExtensions :VendorExtension
1 1 1 1 1
1
+timeParameters +priorityParameters
TimeParameters +resourceParameters 0..1
0..1 +controlParameters 0..1 0..1 PriorityParameters
+ transferTime :Parameter ResourceParameters
+ queueTime :Parameter ControlParameters + interruptible :Parameter
+ waitTime :Parameter + availability :Parameter + priority :Parameter
+ setupTime :Parameter + interTriggerTimer :Parameter + quantity :Parameter
+ triggerCount :Parameter
+ processingTime :Parameter + selection :Parameter
+ validationTime :Parameter + probability :Parameter + role :List<Parameter>
+ condition :Parameter
+ reworkTime :Parameter
+propertyParameters 0..1
+costParameters 0..1
PropertyParameters
CostParameters + property :Map<String, Parameter>
+ fixedCost :Parameter
+ unitCost :Parameter
class Parameter
«enumeration» ExpressionParameter
ResultType
+ value :String
min A
max ConstantParameter DistributionParameter
mean
count + value :Object + timeUnit :TimeUnit
sum + currencyUnit :String
+values
1..* 1
EnumParameter
A
Parameter Usage - Constants
Duration IntegerParameter
You can set the duration for the Task to 5 minutes using a You can set the duration for the Task to 5 minutes using an Integer
Duration Parameter. Parameter.
<ElementParameters elementRef="task"> <ElementParameters elementRef="task">
<TimeParameters> <TimeParameters>
<ProcessingTime> <ProcessingTime>
<DurationParameter value="PT5M"/> <IntegerParameter value=“5” timeUnit=“min”/>
</ProcessingTime> </ProcessingTime>
</TimeParameters> </TimeParameters>
</ElementParameters> </ElementParameters>
Parameter Usage - Distributions
User Distribution
You can set the duration for the Task to 5 minutes 90% of the
times and 10 minutes 10% of the times using the processing
Distributions time.
You can set the duration for the Task to be uniformly distributed <ElementParameters elementRef="task">
between 3 and 10 minutes using the processing time. <TimeParameters>
<ElementParameters elementRef="task"> <ProcessingTime>
<TimeParameters> <UserDistribution>
<ProcessingTime> <UserDistributionDataPoint probability=“0.9”>
<UniformDistribution min=“3” max=“10” <DurationParameter value=“PT5M”/>
timeUnit=“min”/> </UserDistributionDataPoint>
</ProcessingTime> <UserDistributionDataPoint probability=“0.1”>
</TimeParameters> <DurationParameter value=“PT10M”/>
</ElementParameters> </UserDistributionDataPoint>
</UserDistribution>
</ProcessingTime>
</TimeParameters>
</ElementParameters>
Parameter Usage - Enumeration
Enumeration
You can set the duration for the Task to 5, 3 and 4 minutes
using the processing time.
<ElementParameters elementRef="task">
<TimeParameters>
<ProcessingTime>
<EnumParameter>
<DurationParameter value=“PT5M”/>
<DurationParameter value=“PT3M”/>
<DurationParameter value=“PT4M”/>
</ EnumParameter >
</ProcessingTime>
</TimeParameters>
</ElementParameters>
Parameter Usage - Expression
Expression
You can set the duration for the Task according to an expression
using the processing time.
<ElementParameters elementRef="task">
<TimeParameters>
<ProcessingTime>
<ExpressionParameter value=
“bpsim:getProperty(‘duration’)” />
</ProcessingTime>
</TimeParameters>
</ElementParameters>
Parameter Usage - Calendar
No
No Stock
Pick Stock
Shipment Outside
SLA
Input Scenario Example
No
No Stock
Pick Stock
Shipment Outside
SLA
Discussions & Questions
www.BPSim.org
BPSim Contributors
BPSim 1.0 was a collaborative effort coordinated by Denis Gagne and Robert Shapiro.
BPSim 1.0 required many hours of work by individuals who had to find time to contribute
while carrying out their normal duties for the company that employs them. We
acknowledge the valuable contribution of the following individual:
Andy Adler (Process Analytica), Francois Bonnet (W4), Justin Brunt (Tibco), Mike
Carpenter (CACI), Peter Denno (NIST), Lloyd Dugan (DCMO), Denis Gagne (Trisotech),
Torben Haag (Open Text), Hanaa Hammad (IBM), Charles Harrell (CACI), Geoff Hook
(Lanner), Jeremy Horgan (Lanner), John Januszczak(SIM4BPM), Alberto Manuel
(Process Sphere), Razvan Radulian (Why What How), Simon Ringuette (Trisotech),
William Rivera (BizAgi), Jesus Sanchez (BizAgi), Redirley Santos (FedEx), Robert
Shapiro (Process Analytica), Frances Sneddon (Simul8), Tim Stephenson (KnowProcess),
Tihomir Surdilovic (Red Hat).