Composing Business Process with ID-Net

1,037 views
937 views

Published on

PNSE’07 Workshop, Juin 25-26, Siedlce, Poland.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,037
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Composing Business Process with ID-Net

  1. 1. Composing Business Process with ID-Net Ang Chen and Didier Buchs System Modeling and Verification Group PNSE’07 Workshop, Juin 25-26, Siedlce, Poland
  2. 2. Outline • Business Process (BP) Modeling • ID-Net: Motivations • ID-Net: Semantics • Model Composition with ID-Net • Example PNSE 2007 Workshop, Siedlce, Poland 2 A.Chen
  3. 3. BP Modeling: Elements Process production schedule receive collect send order payment invoice shipping schedule Each color represents an organization Activity Flow Participant PNSE 2007 Workshop, Siedlce, Poland 3 A.Chen
  4. 4. BP Modeling: Control- Flow production schedule Informal receive collect send description oder payment invoice shipping schedule shipping order schedule A Possible create receive schedule invoice invoice Control-Flow order send invoice collect payment payment production schedule Receive order and collect payment can be parallel or sequential, depending on the interpretation of the informal model. parallel might be more flexible in this case PNSE 2007 Workshop, Siedlce, Poland 4 A.Chen
  5. 5. BP Modeling: Data Model production schedule receive collect send oder payment invoice shipping schedule Data Model 0..* 1 1 0..1 Item Order Shipping 1 1 0..1 0..* Production Payment PNSE 2007 Workshop, Siedlce, Poland 5 A.Chen
  6. 6. BP Modeling: Control-Flow Model Dimensions shipping schedule order create schedule receive invoice invoice order send invoice collect payment ? Executable payment production schedule Workflow ? ? Data Model 0..* 1 1 0..1 Item Order Shipping 1 1 0..1 0..* Production Payment PNSE 2007 Workshop, Siedlce, Poland 6 A.Chen
  7. 7. BP Modeling: Approaches • (Explicit) State-Based Model: Petri Net and its variances, e.g. Workflow Nets, CPN • Service-Oriented: service composition, e.g. BPEL • Metamodel-Based with • Implicit state • Explicit state (combined with State-Based semantics) PNSE 2007 Workshop, Siedlce, Poland 7 A.Chen
  8. 8. The CPN Solution shipping order schedule schedule a c b d payment production schedule The transition schedule uses a and b to produce c and d (c, d)=schedule(a,b) The relations between a,b,c,d should be defined in the PN Forced to use the built-in data modeling mechanism (CPN ML) SE: strong coupling between PN structure and data! PNSE 2007 Workshop, Siedlce, Poland 8 A.Chen
  9. 9. BP Modeling and Development From SE’s point of view: • The data modeling power is enough (e.g. with tuples), but impractical in real BP development • Structure and data of BP are too constrained each other • Built-in, inflexible operational semantics • CPN is designed to analyze and verify models, not for BP development • Same problem for other PN variances PNSE 2007 Workshop, Siedlce, Poland 9 A.Chen
  10. 10. ID-Net: Hook Points T shipping order a c schedule Semantics is production operationally payment b d schedule different with CPN T.before T.after : T.with Hook points (as in AOP) T.before : Select tokens from pre-set places (access the contents of places) T.with : Working with selected resources (access selected tokens) T.after : Working with produced resources (access post-places) T.around : Customized semantics for T PNSE 2007 Workshop, Siedlce, Poland 10 A.Chen
  11. 11. ID-Net: IDs P3: order P1: T shipping Order schedule payment P4: shipping schedule P2: production Payment production schedule schedule Places are typed by the kind of ID PNSE 2007 Workshop, Siedlce, Poland 11 A.Chen
  12. 12. ID-Net: IDs (cont.) P3: order P1: T shipping Order schedule payment P4: shipping schedule P2: production Payment production schedule schedule Tokens are IDs referring to (concrete or not) resources PNSE 2007 Workshop, Siedlce, Poland 12 A.Chen
  13. 13. IDtifier • ID is independent of modeling formalism • Presented in many kinds of applications, e.g. security (keys), Web (e.g. URLs, cookies) • For BP Modeling, ID is the key to: • symbolically represent the resource (modeling phase) • identify a concrete resource (implementation phase) • support data model (e.g. candidate key) PNSE 2007 Workshop, Siedlce, Poland 13 A.Chen
  14. 14. ID-Net 1. Tokens are typed IDs to identify the resources 2. Places are typed “IDs Holder” 3. The ID-Net model controls the visibility of resources using the classical Petri Net semantics 4. Semantics of transitions can be extended by composing other models with ID-Net model 5. External models produce and use the IDs to do specific work PNSE 2007 Workshop, Siedlce, Poland 14 A.Chen
  15. 15. ID-Net + Data Model: Type Mapping shipping order schedule create receive schedule invoice invoice order send invoice collect payment payment production schedule 0..* 1 1 0..1 Item Order Shipping 1 1 0..1 0..* Production Payment PNSE 2007 Workshop, Siedlce, Poland 15 A.Chen
  16. 16. Data Manipulation Operations (DMOs) • DMO’s are derived from the metamodel (implied by the data semantics of metamodel) • In term of DB: CRUD (Create, Read, Update, Delete) operations DMOs Pseudo code: Entity Creation ItemID item_id= Item.Create(name, price); OrderID order_id= Order.Create(); Relationship Creation setRelation(order_id, item_id, “has”) setAttribute(order_id, aDate, ”date”,); Entity Removal Item.Delete(item_id); Relationship Removal RemoveRelation(order_id, item_id, “has”); PNSE 2007 Workshop, Siedlce, Poland 16 A.Chen
  17. 17. DMOs: Motivation • Real-world BPs are constructed on and supported by DB systems • Activities of BPs are composed of data manipulation (in memory)and data persistence(with DBMS) • Data manipulation are relied principally the domain data model • DMOs are services provided by DBMS • ID is the key to access the data PNSE 2007 Workshop, Siedlce, Poland 17 A.Chen
  18. 18. Model Composition • Specify the composition: synchronize the PN transition with the DMOs (similar to service composition) • Using the temporal operators of AOP to compose DMOs with the control-flow: before, after, around • Using synchronization operator // (with) to create atomic actions (from CO-OPN) PNSE 2007 Workshop, Siedlce, Poland 18 A.Chen
  19. 19. Example: ID -> Data Instances P1: T P3: payment order shipping schedule order P2: P4: shipping payment production production schedule 1 0..1 Order Shipping 1 1 IDs refer to 0..1 0..* Production instances of data Payment PNSE 2007 Workshop, Siedlce, Poland 19 A.Chen
  20. 20. Example: Synchronized function P1: T P3: payment payment shipping order P2: P4: shipping production order production synchronized function: M with T P1.take( ); P2.take( ); reserve tokens Executable, composed model payment=getPaymentFromID( ); access resources order=getOrdersFromID( ); M with T uses selected if (payment.clientID != order.clientID) { tokens as inputs P1.release( ); P2.release( ); check firability throws NotFirableException() } PNSE 2007 Workshop, Siedlce, Poland 20 A.Chen
  21. 21. Example: Synchronized function P1: T P3: payment payment shipping order P2: P4: shipping production order production synchronized function: M with T Executable, composed model ... date = estimateDeliveryDate(order); external stuff =Shipping.Create(date, dest); DMOs M uses the IDs to do =Production.Create(date, orderSet); anything it wants, and P1.remove( ); P2.remove( ); produces post-tokens P3.put( ); P4.put( ); produce post-conditions PNSE 2007 Workshop, Siedlce, Poland 21 A.Chen
  22. 22. Composed Semantics P1: payment T P3: payment shipping order P2: P4: shipping production order production synchronized function: M with T P1.take( ); P2.take( ); reserve tokens Executable, composed payment=getPaymentFromID( ); check firability order=getOrdersFromID( ); model if (payment.clientID != order.clientID) throws NotFirableException() {P1.release( ); P2.release( ); } ... date = estimateDeliveryDate(order); external stuff =Shipping.Create(date, dest); =Production.Create(date, orderSet); P1.remove( ); P2.remove( ); produce post-conditions P3.put( ); P4.put( 22); PNSE 2007 Workshop, Siedlce, Poland A.Chen
  23. 23. ID-Net in BP Development ID-Net Data Model Model Model-Based Iterative V1 V1 Development Process V2 V2 Model Reconciliation V3 V3 Model Executable Composition Workflow PNSE 2007 Workshop, Siedlce, Poland 23 A.Chen
  24. 24. Framework Control-Flow Model shipping order schedule create receive schedule invoice invoice order send invoice collect payment payment production schedule Model Executable Composition Composition Workflow specification Data Model 0..* 1 1 0..1 Item Order Shipping 1 1 0..1 0..* Production Payment PNSE 2007 Workshop, Siedlce, Poland 24 A.Chen
  25. 25. Conclusion • ID-Net has flexible and extensible semantics: • it handles the tokens as the classical PN • the external models will produce and interpret the values tokens • the composition specifies the interplay between ID-Net and other models • BPs can be developed in an iterative and flexible way with the framework using ID-Net PNSE 2007 Workshop, Siedlce, Poland 25 A.Chen
  26. 26. Research Perspectives • Relations between the functional dependency of data and dependency of activities in workflow • How the composed external model interprets the properties of an ID-Net • Hiding information during the design of BP service (issues in cross-organizational BPs) PNSE 2007 Workshop, Siedlce, Poland 26 A.Chen
  27. 27. ID-Net Semantics Preliminary operational P1 T P2 semantics A Place is a multi-set which supports the following operations: •take(token): reserve token •release(token): release token (inverse of take) T will be evaluated successfully if each •put(token): put token into the place pre-set place provides at least one token •remove(token): remove token from the place The steps can Firing a transition consists of: be hooked before: [0..1] 1. select tokens in pre-set places 2. reserve pre-condition tokens temporally with: [2..4] 3. evaluate T (if failed, release reserved around: [0..6] tokens) after: >5 4. remove reserved tokens 5. put post-conditions into post-set places PNSE 2007 Workshop, Siedlce, Poland 27 A.Chen

×