300 likes | 386 Views
Towards a DecSerFlow mapping to S CIFF. Federico Chesani, Paola Mello, Marco Montali, Sergio Storari. Limits of procedural languages 1/2. Recent trends in the web-services world: WS-BPEL, WS-CDL They are procedural and not very different from classical workflow languages
E N D
Towards a DecSerFlow mapping to SCIFF Federico Chesani, Paola Mello, Marco Montali, Sergio Storari
Limits of procedural languages 1/2 • Recent trends in the web-services world: WS-BPEL, WS-CDL • They are procedural and not very different from classical workflow languages • Van der Aalst’s claim: • Autonomyconstrained freedom Procedural languages do not fit well with the autonomous nature of web services
A How? When? B Limits of procedural languages 2/2 • We want to express the not co-existence between two activities • “A and B could be executed several times, but they exclude each other” • Procedural approach: Over-specification
A B Procedural vs Declarative Approach • Declarative approach • LTL: (A B) • Compact and expressive… • …but difficult to use by non-experts • Solution: a graphicaldeclarative language for the specification of service flows (DecSerFlow)
DecSerFlow 1/2 • Main features: • Declarative • Graphical • Mapping to LTL (inspired from LTL patterns) • Dynamic service monitoring (conformance) • Service enactment • Easy extendible • Support of hard and soft constraints • “Open” perspective • The modeler must explicitly express not only what has to be done, but also what is forbidden
DecSerFlow 2/2 • Main elements: • Activity: an atomic logical unit of work • Constraint: relationship between activities (policy or business rule) • Each constraint is mapped to an LTL template formula 0..1 existence formula relation formula negation formula notify failure 0..1 0..1 successful booking credit card
DecSerFlow Constraints • Three families • Existence formulae • Unary formulae constraining the cardinality of activities (absence, existence, at most…, at least…) • Relation formulae • Binary formulae specifying “what has to be done” • Sub-families: simple relations, alternate relations, chain relations • Sub-sub-families: response, precedence, succession • Negation formulae • Binary formulae specifying “what is forbidden” • They are the negated version of relation formulae
LTL SCIFF Mapping to the SCIFF-framework DecSerFlow • Conformance verification • Enactment • Conformance verification • Enactment extensions
Translation Example 1/3 Absence_N (N=1) 0..1 notify failure 0..1 0..1 successful booking credit card Atomic model for activities An activity A is mapped to an event performed(A)
Translation Example 2/3 Chain response (sequence a là workflow) 0..1 notify failure 0..1 0..1 successful booking credit card Mutual substitution
Translation Example 3/3 Not coexistence 0..1 notify failure 0..1 0..1 successful booking credit card 2x Responded Absence credit card notify failure credit card notify failure
Intensional Formalization 1/3 • Instead of mapping each concrete formula to an integrity constraints… • …we follow van der Aalst’s approach by formalizing template formulae with template ICs • General abductive formalization, valid for all models • Representation of a specific model by simply compiling a knowledge base mapping the diagram structure to a list of facts
Intensional formalization 2/3 • Our aim is to translate template formulae into • a general set of ICs (ICDSF) • + a general KB (KBDSF) valid for all DecSerFlow models • Thus DecSerFlow is mapped to an Abductive Logic Program SDSF< KBDSF , ={E, EN}, ICDSF >
Intensional formalization 3/3 • A specific DecSerFlow diagram is then mapped to an ALP of the form Sspec< KB, ={E, EN}, ICDSF > where KBspec models the diagram structure KB=KBDSFKBspec same as SDSF
Example of diagram description KBspec existence_formula(booking, absence_N(1)). existence_formula(credit_card, absence_N(1)). existence_formula(notify_failure, absence_N(1)). rel_formula(notify_failure, credit_card, mutual_substitution). neg_formula(notify_failure, credit_card, not_coexistence). rel_formula(credit_card, booking, chain_response). 0..1 notify failure 0..1 0..1 successful booking credit card
General Knowledge Base • KBDSF defines knowledge common to all DecSerFlow models • In particular, some DecSerFlow constraints are defined in terms of other ones • These correspondences are modeled inside KBDSF • E.g. the coexistence relation… neg_formula(A,B,responded_absence):- neg_formula(A,B,not_coexistence). neg_formula(B,A,responded_absence):- neg_formula(A,B,not_coexistence).
Template Integrity Constraints 1/2 • The first conjunct of a DecSerFlow integrity constraint is the corresponding template formula representation • Formalization of the responded absence negation formula neg_formula(A,B,responded_absence) H(A,TA) EN(B,TB). • Thanks to the universal quantification of A and B, the rule is replicated for each (concrete) responded absence formula
Template Integrity Constraints 2/2 • Alternate response
Example 1/2 KBDSF neg_formula(A, B, responded_absence):- neg_formula(A, B, not_coexistence). neg_formula(B, A, responded_absence):- neg_formula(A, B, not_coexistence). KBspec neg_formula (credit_card, notify_failure, not_coexistence). ICDSF neg_formula(X, Y, responded_absence) H(X, TA) EN(Y, TB). STEP 1: by unfolding neg_formula(X, Y, not_coexistence)H(X, TA) EN(Y, TB). neg_formula(Y, X, not_coexistence)H(X, TA) EN(Y, TB).
Example 2/2 KBDSF neg_formula(A, B, responded_absence):- neg_formula(A, B, not_coexistence). neg_formula(B, A, responded_absence):- neg_formula(A, B, not_coexistence). KBspec neg_formula (credit_card, notify_failure, not_coexistence). ICDSF neg_formula(X, Y, responded_absence) H(X, TA) EN(Y, TB). STEP 2: by unfolding H(credit_card, TA)EN(notify_failure, TB). H(notify_failure, TA)EN(credit_card, TB).
Constraints equivalence • Some negation formulae are “equivalent”, i.e. express the same interaction pattern • E.g. the responded absence and the not coexistence formulae • We have defined a concept of “equivalence w.r.t. conformance” to capture such a case • And proven that our formalizations satisfy these equivalences
DecSerFlow “extensions” • Composite activities • Conjunction and disjunction of activities in relationships source/target • Van der Aalst et. al have already introduced disjunctions • Explicit temporal constraints and deadlines
Example of Extended Policy • Triggers when both sources happens
Conclusions • We have successfully mapped the basic DecSerFlow template formulae to SCIFF • A first implementation has been developed • And tested on the ACME example • Ongoing implementation for extended constraints (conjunctions and temporal aspects) • Future works • To consider data (!) • Service animation through SCIFF (?)