Kelly Rosa Braghetto


Ph.D. student at Department of Computer Science
Institute of Mathematics and Statistics
University of São Paulo




Applying Performance Analysis Modeling into Business Processes Management (BPM) Domain

Results of Some Experiments


Applied Formalisms

Correspondent Supporting Tool

Generalized Stochastic Petri Nets (GSPN)   ⇒   Simulation and Markovian Analyzer for Reliability and Timing (SMART)
Performance Evaluation Process Algebra (PEPA)   ⇒   PEPA Plug-in Project
Stochastic Automata Networks (SAN)   ⇒   Performance Evaluation of Parallel Programs (PEPS)

Modeling Scenarios

Each scenario, by means of a simple model example, covers some important aspect in the modeling of business processes and evidences the pros and cons of the studied formalisms.


Scenario 1: Basic Structures

Example of a typical "Order Processing" business process


BPMN Model

BPMN model of a typical order processing

GSPN Model

( Source file of the GSPN model for SMART   ⇒   example1.sm )

GSPN model of the order processing example



Timed transitionsta tb tc td te tf tg th ti tj tk tl tm
Rate 0.330.201.000.500.071.000.500.010.501.000.501.001.00

Immediate transitionsprob(c)prob(d)prob(e)prob(g)prob(k)prob(l)
Probabilities 0.10 0.90 0.25 0.75 0.05 0.95

PEPA Model

Source file of the PEPA model for the PEPA Plug-in Project   ⇒   example1.pepa )
 
// Execution rates associated to each activity
rate_a = 0.33;   rate_b = 0.20;   rate_c = 1.00;
rate_d = 0.50;   rate_e = 0.07;   rate_f = 1.00;
rate_g = 0.50;   rate_h = 0.01;   rate_i = 0.50;
rate_j = 1.00;   rate_k = 0.50;   rate_l = 1.00;
rate_m = 1.00; 

// Routing probabilities associated to the choices
prob_c = 0.1;	prob_d = 1 - prob_c;
prob_e = 0.25;	prob_g = 1 - prob_e;
prob_k = 0.05;	prob_l = 1 - prob_k;

// Number of servers
num_servers = 1;

// Order processing
POrderProcessing = (a, rate_a).((b, prob_c * rate_b).(c, rate_c).POrderProcessing +  
                                (b, prob_d * rate_b).PStock);
PStock           = (d, prob_g * rate_d).PFinalize + 
                   (d, prob_e * rate_d).(e, rate_e).(f, rate_f).PFinalize; 
PFinalize        = (g, rate_g).(h, rate_h).(m, rate_m).POrderProcessing;
PInvoice         = (g, infty).(i, rate_i).PCheck;
PCheck           = (j, prob_l * rate_j).(l, rate_l).(m, infty).PInvoice + 
                   (j, prob_k * rate_j).(k, rate_k).PCheck;

// Whole process
POrderProcessing[num_servers] <g,m> PInvoice[num_servers]
		

SAN Model

( Source file of the SAN model for PEPS   ⇒   example1.san )
SAN model of the order processing example    
EventTypeRate
aloc0.33
b1 locprob(d) * 0.20
b2 locprob(c) * 0.20
c loc1.00
d1 loc prob(e) * 0.50
d2 loc prob(g) * 0.50
e loc0.07
floc 1.00
gsync 0.50
h loc 0.01
i loc 0.50
j1 loc prob(k) * 1.00
j2 loc prob(l) * 1.00
k loc 0.50
l loc 1.00
m sync 1.00



Scenario 2: Advanced Branching / Merging Structures

A simple model of a process to determine the cost of a medical service (based on the french health-care system)


BPMN Model

BPMN model of a french health-care process

GSPN Model

( Source file of the GSPN model for SMART   ⇒   example2.sm )

GSPN model of the french health-care process    
Timed transitionsta tb tc td te
Rate 0.500.200.250.011.00

Immediate transitionsprob(b)1 - prob(b)prob(d) 1 - prob(d)
Probabilities 0.85 0.15 0.73 0.27

PEPA Model

( Source file of the PEPA model for the PEPA Plug-in Project   ⇒   example2.pepa )
 
// Execution rates associated to each activity
r_a = 0.50; r_b = 0.20; r_c = 0.25; r_d = 0.01;
r_e = 1.00; r_immediate = 50.00;

// Routing probabilities associated to the multi-choice
prob_c = 0.85; prob_d = 0.73;

// Medical service cost calculation sub processes
PCalc = (a,r_a).(b,r_b).(e,r_e).PCalc;  
P1    = (b,infty).((c1,prob_c * r_immediate).(c,r_c).(e, infty).P1 +
                   (c2,(1-prob_c) * r_immediate).(e,infty).P1);
P2    = (b,infty).((d1,prob_d * r_immediate).(d,r_d).(e,infty).P2 +
                   (d2,(1-prob_d) * r_immediate).(e,infty).P2);

// Whole process
PCalc <b,e> P1 <b,e> P2
			

SAN Model

( Source file of the SAN model for PEPS   ⇒   example2.san )
SAN model  of the french health-care process    
EventTypeRate
aloc0.50
b sync0.20
c1 locprob(c) * 50
c2 loc(1 - prob(c)) * 50
c loc0.25
d1 loc prob(d) * 50
d2 loc (1 - prob(d)) *50
d loc0.01
e sync1.00



Scenario 3: Functional Dependencies

A simple "producer / packer" process


BPMN Model

BPMN model of the producer / packer process

GSPN Model

( Source file of the GSPN model for SMART   ⇒   example3.sm )

GSPN model of the producer / packer process    
Timed transitionsta tb tc td
Rate 0.020.100.330.12

PEPA Model

( Source file of the PEPA model for the PEPA Plug-in Project   ⇒   example3.pepa )
 
// Execution rates associated to each activity
rate_a = 0.02;  rate_b = 0.1; 
rate_c = 0.33;  rate_d = 0.12;

// Sub processes representing the producer and the packer
PProducer = (a, rate_a).(b, rate_b).PProducer;
PPacker    = (c, rate_c).(d, rate_d).PPacker;

// Sub process representing a stock with max size = 9 
PStock  = (a,infty).(b, infty).PStock1;
PStock1 = (a,infty).(b, infty).PStock2;
PStock2 = (a,infty).(b, infty).PStock3;
PStock3 = (a,infty).(b, infty).PStock4 + (c, infty).PStock;
PStock4 = (a,infty).(b, infty).PStock5 + (c, infty).PStock1;
PStock5 = (a,infty).(b, infty).PStock6 + (c, infty).PStock2;
PStock6 = (a,infty).(b, infty).PStock7 + (c, infty).PStock3;
PStock7 = (a,infty).(b, infty).PStock8 + (c, infty).PStock4;
PStock8 = (a,infty).(b, infty).PStock9 + (c, infty).PStock5;
PStock9 = (c,infty).PStock6;

// Whole process
PProducer <a,b> PStock <c> PPacker 
			

SAN Model

( Source file of the SAN model for PEPS   ⇒   example3.san )
SAN model  of the producer / packer process    
EventTypeRate
alocf
b sync0.10
c syn0.33
d loc0.12
f =
0.00,    if state(A3) == 3_9
0.02,    if state(A3) != 3_9