Web Services Orchestration Evolution: - A Merge Process ...mosser/old-ws/_media/research/... · 2...

Preview:

Citation preview

Web Services Orchestration Evolution:A Merge Process For Behavioral Evolution

Sébastien Mosser Mireille Blay–Fornarino Michel Riveillmosser@polytech.unice.fr

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:

Recommended