Sunday 13 February 2011

origin of BPM standards: Pi-Calculus vs. Petri nets

below we refer to the pi-calculus and petri net influence to major bpm standards. we divide the bpm standards as following:

pi-calculus influence:
- WS-CDL
- WSCI
- BPML
- XLANG

Petri-Net influence:
- BPMN
- YAWL
- WSFL

As a matter of fact, BPEL is a blend inheriting both from pi-calculus and petri nets
this is happening because BPEL has the following relationships:

XLANG---> BPEL <------WSFL

STARTING FROM PI-CALCULUS


Pi-calculus was developed by scottish mathematician Robin Miller in the 1990's and can be described as a formal language for defining concurrent communicating processes, including, but not restricted to business processes. it seems to be an advanced algrebaic system. in pi calculus system each process consists of one or more actions which can be arranged sequentially in parallel or conditional paths, or recursively. When we refer to an action we should also note if we are sending or receiving it on channels. an example will enlighten the description. when writting this language we actually write mathematical equations using predefined symbols.

The following example demonstrates interactions of a customer a travel agent and an airline(Example taken from Essential Business Process Modeling)

1 Customer(Creatorder, customer)=
2 createorder.customer(result)
3 Agent(createorder, agentok, agentfail,airline)=
4 createorder(customer).airline.
5 Agent1(agentok,agentfail,customer)
6 Agent1(agentok,agentfail, customer)=
7 agentok(result).customer+
8 agentfail(result2).customer
9 Airline(airline,agentok,agentfail)=
10 airline(agentok,agentfail).agentok<"conf no 100">
11 End2End=
12 (neworder,cust,ok,fail,air)
13 Customer(corder,cust)| Agent(corder,ok,fail,air)|Airline(air,ok,fail)


p send q on channel p
p(q) receive q on channel p
dot(.) in coding is the sequential operator
(+) conditional operator denotes that exactly one of this actions will



PETRI NETS

the petri network was developed by the mathematician Carl Adam Petri, is a formal graphical process modeling language that can design systems as diverse as train track switches and business processes(Essential Business Process Modeling book). you can easily find information on petrinets and their rules searching the internet. there are tools available to use to draw petri nets. be careful because they may have some similarities with state machine diagrams but they have different functionality and should not be compared.


Giannis Giataganas IS Consultant, BPM Analyst Bsc in Informatics, AUEB MscIS, Athens University of Economic and Business

counter