web services orchestration evolution: - a merge process ...mosser/old-ws/_media/research/... · 2...
TRANSCRIPT
Web Services Orchestration Evolution:A Merge Process For Behavioral Evolution
Sébastien Mosser Mireille Blay–Fornarino Michel [email protected]
CNRS, I3S Laboratory, Rainbow TeamUniversity of Nice – Sophia Antipolishttp://rainbow.i3s.unice.fr
(published in ECSA’08)October, 27th 2008EPU Polytech’Sophia
2
Intro. Adore In action DrAdore Conclusions
Agenda
1 Web Services, Orchestrations & Evolutions
2 ADORE Model & Merge Algorithm
3 Merge Algorithm : let’s go !
4 Implementation : DrAdore
5 Perspectives & Conclusions
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
3
Intro. Adore In action DrAdore Conclusions
Agenda
1 Web Services, Orchestrations & Evolutions
2 ADORE Model & Merge Algorithm
3 Merge Algorithm : let’s go !
4 Implementation : DrAdore
5 Perspectives & Conclusions
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
4
Intro. Adore In action DrAdore Conclusions
Context : Web Services Oriented Architecture Evolution
“A program that is used must be continually adaptedelse it becomes progressively less satisfactory”
[Lehman 5th law of evolution]
Services Oriented Architecture (SOA) . . .
. . . focus on business reactivity
. . . preach eternal readaptation to fit with market
. . . allow trend anticipation
⇒ How to conciliate SOA & Evolution ?
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
5
Intro. Adore In action DrAdore Conclusions
Leading example : Seduite system
Seduite as 4 lines & 18 words . . .Broadcast information inside academic institutesRetrieve information from SourcesHandle information through Business ProcessPerpetual evolution driven by final user
A (running) Web Service Oriented Architecture
Informations sources as Web ServicesBusiness process as OrchestrationsDeployed inside Polytech’Sophia and IES Clément Ader
http://anubis.polytech.unice.fr/jSeduite
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
Let’s keep Seduite up to date . . .
Let’s keep Seduite up to date . . .
Let’s keep Seduite up to date . . .
Let’s keep Seduite up to date . . .
Tools support . . .
Tools support . . .
Need : Separation Of Concerns
Need : Separation Of Concerns
Need : Separation Of Concerns
Need : Separation Of Concerns
9
Intro. Adore In action DrAdore Conclusions
Agenda
1 Web Services, Orchestrations & Evolutions
2 ADORE Model & Merge Algorithm
3 Merge Algorithm : let’s go !
4 Implementation : DrAdore
5 Perspectives & Conclusions
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
Behavioral Merge “for dummies”
Behavioral Merge “for dummies”
Behavioral Merge “for dummies”
11
Intro. Adore In action DrAdore Conclusions
ADORE Model : Orchestration representation
“Activity moDel suppOrting oRchestration Evolution”
Orchestrations ≡ (A?,≺?)
A? : a set of Activities≺∗ : partial ordering
Activities ≡ (uid ,K ,V ?in,Vout)
uid : unique identifierK : kind (∈ BPEL)V ?
in,Vout : variables (in & out)
Guards ≡ (Act,Value)
if Act output = Value, do.
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
11
Intro. Adore In action DrAdore Conclusions
ADORE Model : Orchestration representation
“Activity moDel suppOrting oRchestration Evolution”
Orchestrations ≡ (A?,≺?)
A? : a set of Activities
≺∗ : partial ordering
Activities ≡ (uid ,K ,V ?in,Vout)
uid : unique identifierK : kind (∈ BPEL)V ?
in,Vout : variables (in & out)
Guards ≡ (Act,Value)
if Act output = Value, do.
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
11
Intro. Adore In action DrAdore Conclusions
ADORE Model : Orchestration representation
“Activity moDel suppOrting oRchestration Evolution”
Orchestrations ≡ (A?,≺?)
A? : a set of Activities≺∗ : partial ordering
Activities ≡ (uid ,K ,V ?in,Vout)
uid : unique identifierK : kind (∈ BPEL)V ?
in,Vout : variables (in & out)
Guards ≡ (Act,Value)
if Act output = Value, do.
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
11
Intro. Adore In action DrAdore Conclusions
ADORE Model : Orchestration representation
“Activity moDel suppOrting oRchestration Evolution”
Orchestrations ≡ (A?,≺?)
A? : a set of Activities≺∗ : partial ordering
Activities ≡ (uid ,K ,V ?in,Vout)
uid : unique identifier
K : kind (∈ BPEL)V ?
in,Vout : variables (in & out)
Guards ≡ (Act,Value)
if Act output = Value, do.
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
11
Intro. Adore In action DrAdore Conclusions
ADORE Model : Orchestration representation
“Activity moDel suppOrting oRchestration Evolution”
Orchestrations ≡ (A?,≺?)
A? : a set of Activities≺∗ : partial ordering
Activities ≡ (uid ,K ,V ?in,Vout)
uid : unique identifierK : kind (∈ BPEL)
V ?in,Vout : variables (in & out)
Guards ≡ (Act,Value)
if Act output = Value, do.
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
11
Intro. Adore In action DrAdore Conclusions
ADORE Model : Orchestration representation
“Activity moDel suppOrting oRchestration Evolution”
Orchestrations ≡ (A?,≺?)
A? : a set of Activities≺∗ : partial ordering
Activities ≡ (uid ,K ,V ?in,Vout)
uid : unique identifierK : kind (∈ BPEL)V ?
in,Vout : variables (in & out)Guards ≡ (Act,Value)
if Act output = Value, do.
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
11
Intro. Adore In action DrAdore Conclusions
ADORE Model : Orchestration representation
“Activity moDel suppOrting oRchestration Evolution”
Orchestrations ≡ (A?,≺?)
A? : a set of Activities≺∗ : partial ordering
Activities ≡ (uid ,K ,V ?in,Vout)
uid : unique identifierK : kind (∈ BPEL)V ?
in,Vout : variables (in & out)Guards ≡ (Act,Value)
if Act output = Value, do.
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
12
Intro. Adore In action DrAdore Conclusions
How to represent an evolution ?
Key Idea : “Like an orchestration !”Evolution looks like Orchestrations . . .Basically “piece of orchestration”
Which refers to the original behavior
⇒ Extend available kinds of activitiesAn evolution E enhances an existing activity A
⇒ Add a hook activity to refer enhanced activityE interferes with A neighbors
⇒ Reify A predecessors (P)⇒ Reify A successors (S)
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
13
Intro. Adore In action DrAdore Conclusions
“Check Profile” evolution using ADORE model
Ep ≡ ({i , t, h, e}, {i ≺ t, t ≺ h,t ≺ e,P ≺ h, h ≺ S})
i ≡ (i , invoke(Profile,Verify),{profile}, p, ∅)
t ≡ (t, test(isEqual), {p, true},Pok , ∅)
h ≡ (h, hook, {profile},∅, {guard(t, true))
e ≡ (e, throw , ∅,∅, {guard(t, false)})
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
14
Intro. Adore In action DrAdore Conclusions
General Merge algorithm
Merge : {e1, . . . , en} × KB × o × b 7→ o ′
A four steps process
MergeEvolutions : {e1, . . . , en} × KB 7→ e ′
Merge all evolutions into a single one
DetectConflicts : e ′ 7→ {c1, . . . , ck}
Identify conflicts (concurrent accesses, multiple throw, . . . )Increment KB with application or business knowledge
MergeOrchestration : o × e ′ × b ×KB 7→ o ′
Apply the evolution inside an orchestration following a binding
DetectConflicts : o ′ 7→ {c1, . . . , ck}
Identify conflicts (multiple reply, . . . )
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
14
Intro. Adore In action DrAdore Conclusions
General Merge algorithm
Merge : {e1, . . . , en} × KB × o × b 7→ o ′
A four steps process
MergeEvolutions : {e1, . . . , en} × KB 7→ e ′
Merge all evolutions into a single oneDetectConflicts : e ′ 7→ {c1, . . . , ck}
Identify conflicts (concurrent accesses, multiple throw, . . . )Increment KB with application or business knowledge
MergeOrchestration : o × e ′ × b ×KB 7→ o ′
Apply the evolution inside an orchestration following a binding
DetectConflicts : o ′ 7→ {c1, . . . , ck}
Identify conflicts (multiple reply, . . . )
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
14
Intro. Adore In action DrAdore Conclusions
General Merge algorithm
Merge : {e1, . . . , en} × KB × o × b 7→ o ′
A four steps process
MergeEvolutions : {e1, . . . , en} × KB 7→ e ′
Merge all evolutions into a single oneDetectConflicts : e ′ 7→ {c1, . . . , ck}
Identify conflicts (concurrent accesses, multiple throw, . . . )Increment KB with application or business knowledge
MergeOrchestration : o × e ′ × b ×KB 7→ o ′
Apply the evolution inside an orchestration following a binding
DetectConflicts : o ′ 7→ {c1, . . . , ck}
Identify conflicts (multiple reply, . . . )
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
14
Intro. Adore In action DrAdore Conclusions
General Merge algorithm
Merge : {e1, . . . , en} × KB × o × b 7→ o ′
A four steps process
MergeEvolutions : {e1, . . . , en} × KB 7→ e ′
Merge all evolutions into a single oneDetectConflicts : e ′ 7→ {c1, . . . , ck}
Identify conflicts (concurrent accesses, multiple throw, . . . )Increment KB with application or business knowledge
MergeOrchestration : o × e ′ × b ×KB 7→ o ′
Apply the evolution inside an orchestration following a bindingDetectConflicts : o ′ 7→ {c1, . . . , ck}
Identify conflicts (multiple reply, . . . )
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
14
Intro. Adore In action DrAdore Conclusions
General Merge algorithm
Merge : {e1, . . . , en} × KB × o × b 7→ o ′
A four steps process
MergeEvolutions : {e1, . . . , en} × KB 7→ e ′
Merge all evolutions into a single oneDetectConflicts : e ′ 7→ {c1, . . . , ck}
Identify conflicts (concurrent accesses, multiple throw, . . . )Increment KB with application or business knowledge
MergeOrchestration : o × e ′ × b ×KB 7→ o ′
Apply the evolution inside an orchestration following a bindingDetectConflicts : o ′ 7→ {c1, . . . , ck}
Identify conflicts (multiple reply, . . . )
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
15
Intro. Adore In action DrAdore Conclusions
Agenda
1 Web Services, Orchestrations & Evolutions
2 ADORE Model & Merge Algorithm
3 Merge Algorithm : let’s go !
4 Implementation : DrAdore
5 Perspectives & Conclusions
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
16
Intro. Adore In action DrAdore Conclusions
And now for something completely different . . .
. . . We are going to perform a behavioral merge !
1 Merge two AddSource patterns (weather & events)2 Detect and solve a conflict manually3 Add a CheckProfile pattern4 Merge the result with InfoProvider
5 Detect and solve a conflict automatically
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
Merge({Addweather ,Addevents}, ∅) 7→ Addweather&events
Merge({Addweather ,Addevents}, ∅) 7→ Addweather&events
Merge({Addweather ,Addevents}, ∅) 7→ Addweather&events
Merge({Addweather ,Addevents}, ∅) 7→ Addweather&events
Merge({Addweather ,Addevents}, ∅) 7→ Addweather&events
DetectConflicts(Addweather&events) 7→ ConcurrentWrite
DetectConflicts(Addweather&events) 7→ ConcurrentWrite
Merge({Addweather&events ,Checkprofile}, ∅) 7→ E ′
Merge({Addweather&events ,Checkprofile}, ∅) 7→ E ′
Merge(InfoProvider , E ′, hook → News, ∅) 7→ O′
Merge(InfoProvider , E ′, hook → News, ∅) 7→ O′
Merge(InfoProvider , E ′, hook → News, ∅) 7→ O′
21
Intro. Adore In action DrAdore Conclusions
Agenda
1 Web Services, Orchestrations & Evolutions
2 ADORE Model & Merge Algorithm
3 Merge Algorithm : let’s go !
4 Implementation : DrAdore
5 Perspectives & Conclusions
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
22
Intro. Adore In action DrAdore Conclusions
Using Prolog as implementation
We define ADORE as Prolog facts . . .evolution(ep , [q1, q2, h, q3, preds , succs ]).activity(q1, invoke(profile , verify), [q], [p])....
order(q1 , q2)....
guard(h, q2, true)....
. . . and Merge operations as rulesUse intensively inference & backtrackingAlways work on duplicated entities !Dynamically create new facts to reflect merge changes
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
DrAdore, a “Lab” to experiment Behavioral Merge
24
Intro. Adore In action DrAdore Conclusions
Agenda
1 Web Services, Orchestrations & Evolutions
2 ADORE Model & Merge Algorithm
3 Merge Algorithm : let’s go !
4 Implementation : DrAdore
5 Perspectives & Conclusions
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
25
Intro. Adore In action DrAdore Conclusions
Sketching validation : Seduite & FAROS
Behavior |A| %Am | ≺ | % ≺m |K| %Km
Ew⊕e 5 100% 7 85% 2 –Ep⊕w⊕e 8 75% 10 90% 3 –
O ′ 13 54% 14 93% 4 25%
Table: Measuring Merge impact on Seduite example
FAROS : (Orange Labs, EDF, IRISA, LIFL, I3S)Reliable Service Oriented ArchitecturesDefine contracts as business level and generate platform code
We use Seduite as a validation applicationContracts are transformed into ADORE evolutions.
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
26
Intro. Adore In action DrAdore Conclusions
Immediate perspectives
Ensuring Merge associativity & commutativity
Former work (ISL) defines an algorithm based on componentsISL ensures associativity and commutativityAs ADORE is a superset of ISL
Properties are ensured following some restrictionsProving associativity & commutativity is an ongoing work
Adding sets concerns into the algorithmLarge scale infrastructure like grids handle datasetsReaching & validate using the grid . . .
Define unary workflows and enhance to handle setsFocus on error recovery & set conflicts
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution:
27
Intro. Adore In action DrAdore Conclusions
Any questions ?
http://anubis.polytech.unice.fr/adore
Sébastien Mosser CNRS – I3S / University of Nice
Web Services Orchestration Evolution: