synchronised hyperedge replacement as a model for service...

55
Synchronised Hyperedge Replacement as a Model for Service Oriented Computing FMCO Amsterdam, 1-4 November 2005 – p. 1/26

Upload: others

Post on 14-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Synchronised Hyperedge Replacement

as a Model for

Service Oriented Computing

FMCO

Amsterdam, 1-4 November 2005

– p. 1/26

Forewords(with apologies and presentations)

– p. 2/26

Apologies & presentations

��� � � � ��� � � � � � � �� � �� � � � � � � � � � � � � � � � � � ��� � � � �� � � � � �� �� � � ��� � �

�� � ! " # $ %'&( ) %( ) *+ &( , %&( - . -0/132 - 4 5 6 . - 7 8 !9 *: ;! & % �< =

= & # ; *> ;@? %( * * A B & "(

C �< = !D ! ; * )! 7E � D 9 *( F( 9 GH! I

C �< = : & )9 " ; ; $ & #! 7E �� � I

J # & ; G *( + & ( KH!L

= & )9 & # * # ;! M GD 9 *( * K F *!

�D ! ; * )! M N 2 - 4 OHP E & % GD 9 *( * K F *!

= & )9 " ; $ # F M( * + ( $ ; * GD 9 *( F( 9 GH!RQ Q Q

Q Q Q + $ ; G C! & ) * I !D # : G( & # $! ; $ & #9 & S $ : D

– p. 3/26

Apologies & presentations

��� � � � ��� � � � � � � �� � �� � � � � � � � � � � � � � � � � � ��� � � � �� � � � � �� �� � � ��� � �

�� � ! " # $ %'&( ) %( ) *+ &( , %&( - . -0/132 - 4 5 6 . - 7 8 !9 *: ;! & % �< =

= & # ; *> ;@? %( * * A B & "(

C �< = !D ! ; * )! 7E � D 9 *( F( 9 GH! I

C �< = : & )9 " ; ; $ & #! 7E �� � I

J # & ; G *( + & ( KH!L

= & )9 & # * # ;! M GD 9 *( * K F *!

�D ! ; * )! M N 2 - 4 OHP E & % GD 9 *( * K F *!

= & )9 " ; $ # F M( * + ( $ ; * GD 9 *( F( 9 GH!RQ Q Q

Q Q Q + $ ; G C! & ) * I !D # : G( & # $! ; $ & #9 & S $ : D

� � � � � � � � � � �

�� �� � � � � � � � � � � � � � � � � � � � � � � �� �

� � �� � � � � ���

� � � � � � � � � �� �� � � � � � � � � � �� �

– p. 3/26

Anatomy of a title...Synchronised Hyperedge Replacement

π π

– p. 4/26

Anatomy of a title...Synchronised Hyperedge Replacement

� � � � � � �� � � � ��� � � � �

�� � � �� � � � � � � � � � � � � �� � � � �� �

� � � � �� � � � � � � � � �

� � � � � � � �� �� � � �� � � � � � � � �

� � � � � � � �� � � � � �

� � � � � � � � � � � � � � � � � � � � � � � � �� � �

� � � � � � � � � � � �

π π

– p. 4/26

Anatomy of a title...Synchronised Hyperedge Replacement

� � � � � � �� � � � ��� � � � �

�� � � �� � � � � � � � � � � � � �� � � � �� �

� � � � �� � � � � � � � � �

� � � � � � � �� �� � � �� � � � � � � � �

� � � � � � � �� � � � � �

� � � � � � � � � � � � � � � � � � � � � � � � �� � �

� � � � � � � � � � � �

� � � � � � ��� � � � �� � �� � � � �� �

� �� π � π � ��

� � � � � �

�� � � �� � � � � � � � � � �

� � �� �� � � � � � � �

��� � � � � � �� � ��

� � � �� � � � �� � � � �� � � � � � � �

� � � � � � � � � �� � � � �

� � � � � � � � �� � �� � � �� � � � � � � � � �

– p. 4/26

Anatomy of a title...Service Oriented Computing

� � � �� � � � �� � � � � � � � � � � � � � � � � � � � � � ��

� � �� � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � �� � � � � � � � � � �� � �� � �

� � � � �� � �� � � � � � � � � � � � � � � � ��

� �� � � � � � � � �� � � � � � � �� � � �

– p. 5/26

Anatomy of a title...Service Oriented Computing

� � � �� � � � �� � � � � � � � � � � � � � � � � � � � � � ��

� � �� � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � �� � � � � � � � � � �� � �� � �

� � � � �� � �� � � � � � � � � � � � � � � � ��

� �� � � � � � � � �� � � � � � � �� � � �

� �� � � � � �� � � �� � � � �

� � � �� � � � �� �

� � �� � � � � � � � �� �

� �� � � � � � �� � � � �

� � � � � � � � � � � � � � �� � �� � � � �� � ��

���

� �� � � � � ��

� �� � � � �� �� � �

� �� � � � � � � � �� � �

� � � � � � � ��

� � � � � � � � � �

� � � � � �� � � � � � � �� � � � �

� �� � � � � � � � � � � � � � � � � � ��

– p. 5/26

Anatomy of a title...Service Oriented Computing

� � � �� � � � �� � � � � � � � � � � � � � � � � � � � � � ��

� � �� � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � �� � � � � � � � � � �� � �� � �

� � � � �� � �� � � � � � � � � � � � � � � � ��

� �� � � � � � � � �� � � � � � � �� � � �

� �� � � � � �� � � �� � � � �

� � � �� � � � �� �

� � �� � � � � � � � �� �

� �� � � � � � �� � � � �

� � � � � � � � � � � � � � �� � �� � � � �� � ��

���

� �� � � � � ��

� �� � � � �� �� � �

� �� � � � � � � � �� � �

� � � � � � � ��

� � � � � � � � � �

� � � � � �� � � � � � � �� � � � �

� �� � � � � � � � � � � � � � � � � � ��

� �� � � � � � � � � � � � � � � � � � � � �

� � �� � � � �� �

� � � � � � � � � � �� � � � � � � �

� � � � � � � � � �

� � � � � � � � � �

� � � � � � � � � � � � � � �

� � � �� � � � � � � � �� � � �� � � �

� � �� � � �� �

� � � � � � � � � ��

�� � � � � � � � � � � � � �

� � � � � � � � � � � � � � � � �� � � � � � � �

– p. 5/26

SHR familystep by step

– p. 6/26

Hypergraphs Syntax

� � � � � �� � � � � � � � � N �

�� � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � �

L : 3, L(y, z, x), •y

•x L3

1

OO

2 •z

G ::= nil∣

∣ L(x)∣

∣ G|G∣

∣ ν y; A.G

�� � � � � � � � � � � � � � �

x1: A1, . . . , xn : An ` G� fn(G) ⊆ {x1, . . . , xn}

L : 3, M : 2

x, y ` ν z.(L(y, z, x)|M(y, z))

•y

L

OO

���� @@

@@M

pp

•x ◦z

– p. 7/26

Hypergraphs Syntax

� � � � � �� � � � � � � � � N �

�� � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � �

L : 3, L(y, z, x), •y

•x L3

1

OO

2 •z

G ::= nil∣

∣ L(x)∣

∣ G|G∣

∣ ν y; A.G

�� � � � � � � � � � � � � � �

x1: A1, . . . , xn : An ` G� fn(G) ⊆ {x1, . . . , xn}

� � � � � � � �

L : 3, M : 2

x, y ` ν z.(L(y, z, x)|M(y, z))

•y

L

OO

���� @@

@@M

pp

•x ◦z

– p. 7/26

Productions

� � � � � � � � � � � � � � � � � � � �� � � �� � � � � � � � � � � � � � � � �� � � � � � � �� � � � � � � � � � � � �

� � � � � � � � � χ . L(x)Λ−→ G

L(x) � � �� � �� � � G �� � �

� �� � � � � � � � � � � � � � � � � �

� � � � � � �� � � � � � � � � x ���

� �� � � � � � Λ

x

� � � � � � � � �� � � �� � � � � � � � � � � � � � � � � � � �

L : |x|

χ

� � �� � � � �� � � � � � x

� � � � � � � � � � � � � �� � � � � � � � � � � �� �� � � � � � �

�� � � � � � � �� �� � � �� � � � � � � � � �

Λ : {|x|} → E

� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � �

E = A×N ∗ � � � � � �� � � � � �� � � ��

� � � � � A

� � � � � � � � � � � � � � � �

n(Λ) = {z|∃x ∈ dom(Λ).z ∈ Λ(x)}

G

� � � � �� �� fn(G) ⊆ {|x|} ∪ n(Λ)�

– p. 8/26

A toy example

x1, x2, x3 . L(x1, x2, x3){(x1,a,〈〉}−−−−−→ L(x1, x2, x3)

x1, x2 . M(x1, x2){(x1,a,〈〉}−−−−−→ L(x1, x2, x2)

x, y ` ν z.(L(y, z, x)|M(y, z)){(y,τ,〈〉)}

−−−−−−−→> x, y ` ν z.(L(y, z, x)|L(x, z, z))

•y •y

L

OO

���� ??

??M

pp

L

OO

���� ??

??L

pp

•x ◦z •x ◦z

– p. 9/26

The simplest SHR rewriting system

� � �� � � � � � � � �� � � � �� � � � � � � � � � � �� � � � � � � ��

� � � � � ��� � � � � � � � � � � � � � � �� � � � � � � � �

� � � � � � � � � � � � � �� � � � � � � � ��

� � � � � � �� � � � � �� � �� � � � � � � � � � � � �� � � �

(Alg,P, χ ` G)

� � � � �

Alg

� � � � � �� � � � � �� � � � � � �� � � �� � � � � � � � � � � � �� � � � � �� � � � �� � � � � � � � � � �

P

� � �� � � � � � � � � � � � � � � �

χ ` G

� � � � � � � � � � � � � � � � � � � �

� � � �� � � � �� � � � � � � � � � �

(Alg,P, χ ` G)

� � � � � � � � � � � � �� � � � � � � � � �� �� � � � � �

� � �� � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � P

– p. 10/26

Semantics for the simplest SHR rewriting system

χ, x : A ` GΛ

−−→> χ ` G′ actΛ(x) ∈ SyncA(res)

χ ` ν x : A.GΛ\{(x,a,〈〉)|(a,〈〉)∈E}

−−−−−−−−−−−−−−−→> χ ` ν x : A.G′

χ1 ` G1Λ1−−−→> χ′

1 ` G′1 χ2 ` G2

Λ2−−−→> χ′2 ` G′

2 dom(χ1) ∩ dom(χ2) = ∅(par)

χ1, χ2 ` G1|G2Λ1,Λ2

−−−−−→> χ′1, χ

′2 ` G′

1|G′2

χ, x : A, y : A ` GΛ,x7→(a1,〈〉),y 7→(a2,〈〉)

−−−−−−−−−−−−−−−−→> χ′ ` G′ (a1, a2, c) ∈ ΣA(merge)

χ, x : A ` G{x/y}Λ,x7→(c,〈〉)

−−−−−−−−→> χ′ \ {y : A} ` G′{x/y}

– p. 11/26

SHR family:adding mobility

– p. 12/26

Adding a bit of complexity

��� � �� � � � � � � � � � � � � � �� � � �� � � � � � � � � ��

� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � �

open a | a[...] → ...

open a : Oa// •z

a[· · · ] : •x

a // •y

Oa// • +3

open a

z•z

•x

a // •y

open a

{y/x} +3 •y = x

– p. 13/26

Adding a bit of complexity

��� � �� � � � � � � � � � � � � � �� � � �� � � � � � � � � ��

� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � �

open a | a[...] → ...

open a : Oa// •z

a[· · · ] : •x

a // •y

Oa// • +3

open a

z•z

•x

a // •y

open a

{y/x} +3 •y = x

– p. 13/26

Adding a bit of complexity

��� � �� � � � � � � � � � � � � � �� � � �� � � � � � � � � ��

� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � �

open a | a[...] → ...

� � � � � � � � �

open a : Oa// •z

a[· · · ] : •x

a // •y

Oa// • +3

open a

z•z

•x

a // •y

open a

{y/x} +3 •y = x

– p. 13/26

Adding a bit of complexity

��� � �� � � � � � � � � � � � � � �� � � �� � � � � � � � � ��

� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � �

open a | a[...] → ...

� � � � � � � � �

open a : Oa// •z

a[· · · ] : •x

a // •y

� � � � � � � � � � �

Oa// • +3

open a

z•z

•x

a // •y

open a

{y/x} +3 •y = x

– p. 13/26

Adding a bit of complexity

��� � �� � � � � � � � � � � � � � �� � � �� � � � � � � � � ��

� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � �

open a | a[...] → ...

� � � � � � � � �

open a : Oa// •z

a[· · · ] : •x

a // •y

� � � � � � � � � � �

Oa// • +3

open a

z•z

•x

a // •y

open a

{y/x} +3 •y = x

– p. 13/26

Adding a bit of complexity

��� � �� � � � � � � � � � � � � � �� � � �� � � � � � � � � ��

� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � �

open a | a[...] → ...

� � � � � � � � �

open a : Oa// •z

a[· · · ] : •x

a // •y

� � � � � � � � � � �

Oa// • +3

open a

z•z

•x

a // •y

open a

{y/x} +3 •y = x

– p. 13/26

Adding a bit of complexity

��� � �� � � � � � � � � � � � � � �� � � �� � � � � � � � � ��

� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � �

open a | a[...] → ...

� � � � � � � � �

open a : Oa// •z

a[· · · ] : •x

a // •y

� � � � � � � � � � �

Oa// • +3

open a

z•z

•x

a // •y

open a

{y/x} +3 •y = x

� �� � � � � � � � � � � � � � � � � � � � � � � �� � � � � � �� �

– p. 13/26

Extending SHR with node passing

� � � � � � � � � � � � � � � � �� � � � � �

� � � � � � � � � � �� � � � � � �

� � � � � � � � � � � � � � � � � �� � � � � � � � � �

� �� � � � � � � � � � � � � � � � � � � � � � � �� � �

�� � � � � � � � � � � � � �� � � � � � � � �� � �

χ ` GΛ,π

−−−→> χ′ ` G′

π : dom(χ) → dom(χ)

� � � � � � � � �� � � � � � � � � � � � � � �

� �

Λ(x) = (a, y)

� � � � |y| = ar(a)

dom(χ′) = π(dom(χ)) ∪ (n(Λ) \ dom(χ))

� � � � �

� � � � �

� � � � �

� � � � �

� � � � �

� � � � �

� � � � �

� � � � �

� � � � �

� � � � �

π (y)

π (x)x

y

χ π(χ)

– p. 14/26

Synchonisation algebras

�� � � �� � � � � � � � � � � �� � � � � � � � � � � � �� � � � �� � � � �� � � � � � � �� �� � �� � � �� � � � � � � � �

� � �� � � � � � � � � � � � � � � � � �� � � � � � � �� � � � � � � � � � � � � � � � � � ��

A 6= ∅

A = 〈N,A, ar, ε, Sync, Σ〉

L 〈Mil,A, ar, ε, Sync, Σ〉

A = {a, a | a ∈ L} ∪ {τ, ε}

ar(ai) = ar(ai) ar(τ) = 0

Sync = {τ, ε}

MPn,m : Intn ] Intm → Intmax(n,m) i > min(x, y)

∀i ≤ min(n, m).MP ([1, i]) = MP ([2, i]) = i

∀a ∈ L. (a, ε, (a, MPar(a),0)) ∈ Σ ∧ (a, a, (τ, MPar(a),ar(a))) ∈ Σ

– p. 15/26

Synchonisation algebras

�� � � �� � � � � � � � � � � �� � � � � � � � � � � � �� � � � �� � � � �� � � � � � � �� �� � �� � � �� � � � � � � � �

� � �� � � � � � � � � � � � � � � � � �� � � � � � � �� � � � � � � � � � � � � � � � � � ��

� � � � � � � �� � � � � � � � � � � � �� � � � � � � � � � � �� �

A 6= ∅

A = 〈N,A, ar, ε, Sync, Σ〉

L 〈Mil,A, ar, ε, Sync, Σ〉

A = {a, a | a ∈ L} ∪ {τ, ε}

ar(ai) = ar(ai) ar(τ) = 0

Sync = {τ, ε}

MPn,m : Intn ] Intm → Intmax(n,m) i > min(x, y)

∀i ≤ min(n, m).MP ([1, i]) = MP ([2, i]) = i

∀a ∈ L. (a, ε, (a, MPar(a),0)) ∈ Σ ∧ (a, a, (τ, MPar(a),ar(a))) ∈ Σ

– p. 15/26

Synchonisation algebras

�� � � �� � � � � � � � � � � �� � � � � � � � � � � � �� � � � �� � � � �� � � � � � � �� �� � �� � � �� � � � � � � � �

� � �� � � � � � � � � � � � � � � � � �� � � � � � � �� � � � � � � � � � � � � � � � � � ��

� � � � � � � �� � � � � � � � � � � � �� � � � � � � � � � � �� �

A 6= ∅

A = 〈N,A, ar, ε, Sync, Σ〉

� � � � �

ε

� � � � � � � � � � � � � � � � � � � �� �� ar(ε) = 0

Sync ⊆ A � � � � � � � � � � � � �

ε ∈ Sync

Σ

� �� � � � � � � � � � � � � � � � �� � � � � � � �� (a, b, (c, Mb)) �� ��

a, b, c ∈ A

c = ε ⇔ a = b = εMb : Intar(a) ] Intar(b) → {1, 2, . . .} � � �� � � � � � � � � � � �

a � �

b � � � � �� �

� � � � � � � � � � �� � � � � � � � � � � � � � � �c

L 〈Mil,A, ar, ε, Sync, Σ〉

A = {a, a | a ∈ L} ∪ {τ, ε}

ar(ai) = ar(ai) ar(τ) = 0

Sync = {τ, ε}

MPn,m : Intn ] Intm → Intmax(n,m) i > min(x, y)

∀i ≤ min(n, m).MP ([1, i]) = MP ([2, i]) = i

∀a ∈ L. (a, ε, (a, MPar(a),0)) ∈ Σ ∧ (a, a, (τ, MPar(a),ar(a))) ∈ Σ

– p. 15/26

Synchonisation algebras

�� � � �� � � � � � � � � � � �� � � � � � � � � � � � �� � � � �� � � � �� � � � � � � �� �� � �� � � �� � � � � � � � �

� � �� � � � � � � � � � � � � � � � � �� � � � � � � �� � � � � � � � � � � � � � � � � � ��

� � � � � � � �� � � � � � � � � � � � �� � � � � � � � � � � �� �

A 6= ∅

A = 〈N,A, ar, ε, Sync, Σ〉

� � � � � � � � � � � � � � � � � � � � � L

� � 〈Mil,A, ar, ε, Sync, Σ〉� � � � � �

A = {a, a | a ∈ L} ∪ {τ, ε}

� � � � �

ar(ai) = ar(ai)

� �

ar(τ) = 0

Sync = {τ, ε}�

MPn,m : Intn ] Intm → Intmax(n,m)

� � � � � � � � � � � � i > min(x, y) � �

∀i ≤ min(n, m).MP ([1, i]) = MP ([2, i]) = i

∀a ∈ L. (a, ε, (a, MPar(a),0)) ∈ Σ ∧ (a, a, (τ, MPar(a),ar(a))) ∈ Σ

– p. 15/26

SHR transitions and SAMs [LT05]

��� �

(Alg, �)

� � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � �� � � � � � � � �

� � � �� � �� � ��� � �

χ ` GΛ,π

−−−→> χ′ ` G′

� �� � �

x ∈ n(Λ)ρ \ dom(χ′)

� �� � � � x ∈ bn(G)

�� χ′(x)

� � � � �� � � � � � � � � �� � � � � � � � �

�� � � �� � � � � � � � � � � � � � � � � � � � � � � � �

� �� � � �

x ∈ dom(χ′)

χ′(x)def= A1 � . . . �An

� � � � � {A1, . . . , An}

� � � � � � � � � � � � � � � �� χ� � � � � � � � � � � � π−1(x)

χ′ � � �� � � � � � � � � � � � � �� � � � � � �� � � � � � � � � � �� � � � � � �

� � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � �� � � �� � � � � ��

�� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � �� �� � � �� �� � � � �� �

�� � � �� � � � � � � � � � � � � � ���

� �� � � �

– p. 16/26

Technicalities...

� � � � � � � �� �� � � � � � � � (res) � �

(merge)�

χ, x : A ` GΛ

−−→> χ′ ` G′ actΛ(x) ∈ SyncA xπ = yπ ∧ x 6= y =⇒ xπ 6= x(res)

χ ` ν x : A.GΛ\{(x,a,〈y〉) | (a,〈y〉)∈E}, π|dom(χ)

−−−−−−−−−−−−−−−−−−−−−−−−→> χ′′ ` (ν χ′ \ χ′′).G′

x � � � � � � � � � � � � � � �� � � �

� � �� � � � � � � � � � � � � � � � � � �

� � � � � �� � � � � � � � � � � � � �� � � �

� � � � � �� � � � � � �� � � � � � �

� � �� � � � � � � � �

– p. 17/26

Technicalities...

� � � � � � � �� �� � � � � � � � (res) � �

(merge)�

χ, x : A ` GΛ

−−→> χ′ ` G′ actΛ(x) ∈ SyncA xπ = yπ ∧ x 6= y =⇒ xπ 6= x(res)

χ ` ν x : A.GΛ\{(x,a,〈y〉) | (a,〈y〉)∈E}, π|dom(χ)

−−−−−−−−−−−−−−−−−−−−−−−−→> χ′′ ` (ν χ′ \ χ′′).G′

� � � � � � � �� � � � � � � � �� � � � � � � � �

� � � � � � � � � π � � � � � � � � � �

� � � � � � � �

�� � � � � � � x � � � � � � � � � � � � �� �

� � � �� � � � � � � � �

x ∈ dom(χ′ \ χ′′)�

� � � � � � � � �� � � � � � � � �� � � � � ��

– p. 17/26

Technicalities...

� � � � � � � �� �� � � � � � � � (res) � �

(merge)�

χ, x : A ` GΛ

−−→> χ′ ` G′ actΛ(x) ∈ SyncA xπ = yπ ∧ x 6= y =⇒ xπ 6= x(res)

χ ` ν x : A.GΛ\{(x,a,〈y〉) | (a,〈y〉)∈E}, π|dom(χ)

−−−−−−−−−−−−−−−−−−−−−−−−→> χ′′ ` (ν χ′ \ χ′′).G′

χ, x : A, y : A ` GΛ,x7→(a1,〈v1〉),y 7→(a2,〈v2〉), π

−−−−−−−−−−−−−−−−−−−−→> χ′ ` G′ (a1, a2, (c, Mb)) ∈ ΣA(merge)

χ, x : A ` G{x/y}Λρ,x7→(c,〈w〉), ρ|dom(χ)∪{x}

−−−−−−−−−−−−−−−−−−−→> χ′′ ` (ν χ′ρ \ χ′′).G′ρ

� � � � � �

ρ = mgu ({v1[j1] = v2[j2]|Mb([1, j1]) = Mb([2, j2])}∪{u = v | uπ = vπ}∪y 7→ x)

w[i] = (vj [k]){x/y}ρ

� �

Mb([j, k]) = i� i ∈ Intar(c)

� � � �� � � �

z

� � fn(G′ρ)

� � A1 � . . . �An

� � � � � A1, . . . , An

� � � � � �� � � � � χ � �

{x1, . . . , xn}�� � � � � � � � � � � �� � � � � � �

z

– p. 17/26

An example

� �� �� �� C1, . . . , Cm

� � � � � � �� �� � � � � � � � � � � � � � � � �� � � � �� � �� � � � � � � � � �� � �

� � � �� � � � �

� � � � � � � � � � � �� � �� Au

� � � � � �� � � � � � � �� � � �� ��

◦z1

Au

��

◦u

B2oo

•x ◦z2

C1 · · · Ci · · · Cm

� �� �� �� � � � �� � � � � � � � �

Au

��

� �� � �� � � � � � � x � �� � � � � � � �� � � �

� �� � � � � � � �� � �� � � � � � ���� ��� � ���

� � � � � � � � � �� ��

B2

�� � � � � � � � � � � � � � � � � � � � �� � �

� � � � �� �� �� � � �� � � � � � � � � �

� � � � �� � �� �

! � �� � � � � �

� � � � � � �� � � �� �� � Ci

" Au � � �# � � � �� � � �� $�� % % % �

B2

� � � � � � � � � � � �� �� � � � � � � � � � � �� � �� �� � �

� � �� �� � � � � � �� � � � � � �� � � � � � �

– p. 18/26

An example

� �� �� �� C1, . . . , Cm

� � � � � � �� �� � � � � � � � � � � � � � � � �� � � � �� � �� � � � � � � � � �� � �

� � � �� � � � �

� � � � � � � � � � � �� � �� Au

� � � � � �� � � � � � � �� � � �� ��

Au

��

◦u

•x

C1 · · · Ci · · · Cm� �� �� �� � � � �� � � � � � � � �

Au

��

� �� � �� � � � � � � x � �� � � � � � � �� � � �

� �� � � � � � � �� � �� � � � � � ���� ��� � ���

� � � � � � � � � �� ��

B2

� � � � � � � � � � � � � � � � � � �� �

x : Mil ` Ci(x)(x,authi,〈y〉)

−−−−−−−−−→> x : Mil , y : Bdc ` C ′i(y)

x : Mil , u : Bdc ` Au(x, u)(x,authi,〈u〉)

−−−−−−−−−→> x : Mil , u : Bdc ` Au(x, u)

Bdc

� � � � � � # – p. 18/26

SHR family: dealingwith application level

QoS

– p. 19/26

Application-level QoS

� � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � � � � � � � � � � � � �� � � � �

� � � � � � � � � � � � � � � � � � � � � � � � � � � �

– p. 20/26

Application-level QoS

� � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � � � � � � � � � � � � �� � � � �

� � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � � �� � � � � � � � � � � �� � � � �

� � � � � � � � � � � �� ��

� � �

�� ��� �

� �� � � � � � �

� � � � � �

� � � �� � � � � � � � � � � �� � � �� � �

� � �� � � �� � � � � �� � � � � � � � �� � � � � ��

� � � � � �� � � � � � � � � � �� � � � �� � � �� � � � � � � � � � �� � �� �

� �� � � � � � � � � � � � �� � � � �� � � � � � � � � � � � � � � � � � �� �

– p. 20/26

Application-level QoS

� � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � � � � � � � � � � � � �� � � � �

� � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � � �� � � � � � � � � � � �� � � � �

� � � � � � � � � � � �� ��

� � �

�� ��� �

� �� � � � � � �

� � � � � �

� � � �� � � � � � � � � � � �� � � �� � �

� � �� � � �� � � � � �� � � � � � � � �� � � � � ��

� � � � � �� � � � � � � � � � �� � � � �� � � �� � � � � � � � � � �� � �� �

� �� � � � � � � � � � � � �� � � � �� � � � � � � � � � � � � � � � � � �� �

� � � � �� � � �� �� � �� � � � � � �� ��

� � �� � � � � � � � � � � � �� � � � � � � � � � � � ��

� � � � � �� � � � � � � � � � � � � �� � � �

� � �� � �� � �� � �� � � � � �� � � � � � � �� � �

� � � � � � � � � �� � � � � � � � � �

� � � �� � � � � � � �� � �� � �

� � � � �� � ��� �� � �� � � � �� � � �� � � � � � � � � � � � � � � � � � � � � � � �

– p. 20/26

SHReQ Productions

� � � � �� � � � �� � � � �� � 〈S, +, ?,0,1〉

� � ��� �� � �� � � � �

0 6= 1 ∈ S � � �

x + y = y + x

(x + y) + z = x + (y + z)

(x + y) ? z = (x ? z) + (y ? z)

x + 1 = 1

x ? y = y ? x

(x ? y) ? z = x ? (y ? z)

x ? 1 = x

x ? 0 = 0

a ≤ b ⇐⇒ a + b = b

b a

χ ` GΛ

−−→> χ′ ` G′

R = S ×N ∗

Sync Fin

Sync ⊆ Fin ⊆ S

1 ∈ Sync

NoSync ⊆ S \ Fin

S ? NoSync ⊆ NoSync

0 ∈ NoSync

– p. 21/26

SHReQ Productions

� � � � �� � � � �� � � � �� � 〈S, +, ?,0,1〉

� � ��� �� � �� � � � �

0 6= 1 ∈ S � � �

x + y = y + x

(x + y) + z = x + (y + z)

(x + y) ? z = (x ? z) + (y ? z)

x + 1 = 1

x ? y = y ? x

(x ? y) ? z = x ? (y ? z)

x ? 1 = x

x ? 0 = 0

� � � � ��� � � � � � � � �� � � � �

a ≤ b ⇐⇒ a + b = b�

b

� � � � � � �

a

� � � � � � � � � �� � ��� � � � � �

� � � � � � � � � � � � � � � �

χ ` GΛ

−−→> χ′ ` G′

R = S ×N ∗

Sync Fin

Sync ⊆ Fin ⊆ S

1 ∈ Sync

NoSync ⊆ S \ Fin

S ? NoSync ⊆ NoSync

0 ∈ NoSync

– p. 21/26

SHReQ Productions

� � � � �� � � � �� � � � �� � 〈S, +, ?,0,1〉

� � ��� �� � �� � � � �

0 6= 1 ∈ S � � �

x + y = y + x

(x + y) + z = x + (y + z)

(x + y) ? z = (x ? z) + (y ? z)

x + 1 = 1

x ? y = y ? x

(x ? y) ? z = x ? (y ? z)

x ? 1 = x

x ? 0 = 0

� � � � ��� � � � � � � � �� � � � �

a ≤ b ⇐⇒ a + b = b�

b

� � � � � � �

a

� � � � � � � � � �� � ��� � � � � �

� � � � � � � � � � � � � � � �

� � � � � � � � � � � � �� � �� � �� � � �� � � � �

χ ` GΛ

−−→> χ′ ` G′

� � � � �� ��

� � � � � � � � � � �� � � � � � � �� � �� � � � � � � � � � � � � � �� � � � � � � R = S ×N ∗

� � � � �� � � � �� � � � � ��

�� � � �� � � � � � � � �

Sync

� �

Fin

�� ��

Sync ⊆ Fin ⊆ S

1 ∈ Sync

� � �� � � �� � � � � � � � � NoSync ⊆ S \ Fin

�� ��

S ? NoSync ⊆ NoSync

0 ∈ NoSync

– p. 21/26

SHReQ Synchronised Rewriting

� � �� � � � � $ � � � � � � �� � �� � �� � �� �� χ . L(x)Λ−→ G� � �

χ′ . L(x{y/x})Λ{y/x}−−−→ G{y/x}

� � � � � � � � � � � � � �� �� � � χ′(z) =

8

>

<

>

:

χ(z), z ∈ {|x|} \ {x, y}

χ(x) + χ(y) , z = y ∧ y ∈ x

χ(x), z = y ∧ y 6∈ {|x|}

– p. 22/26

SHReQ Synchronised Rewriting

� � �� � � � � $ � � � � � � �� � �� � �� � �� �� χ . L(x)Λ−→ G� � �

χ′ . L(x{y/x})Λ{y/x}−−−→ G{y/x}

� � � � � � � � � � � � � �� �� � � χ′(z) =

8

>

<

>

:

χ(z), z ∈ {|x|} \ {x, y}

χ(x) + χ(y) , z = y ∧ y ∈ x

χ(x), z = y ∧ y 6∈ {|x|}

χ . L(x)Λ−→ G ∈ P ρ = mgu Λ

^

x∈dom(χ)

χ(x) ≤ χ′(x)

χ′ ` L(x)Λ−→ χ′Λ ` ν Z.( Gρ )

� � � � � � � � � � � � � � �� � � � � � �� �� �� �� � � � � � � � �||Λ@x|| > 1 =⇒

Y

(x,s,y)∈Λ@x

s 6∈ NoSync

– p. 22/26

SHReQ Synchronised Rewriting

� � �� � � � � $ � � � � � � �� � �� � �� � �� �� χ . L(x)Λ−→ G� � �

χ′ . L(x{y/x})Λ{y/x}−−−→ G{y/x}

� � � � � � � � � � � � � �� �� � � χ′(z) =

8

>

<

>

:

χ(z), z ∈ {|x|} \ {x, y}

χ(x) + χ(y) , z = y ∧ y ∈ x

χ(x), z = y ∧ y 6∈ {|x|}

χ . L(x)Λ−→ G ∈ P ρ = mgu Λ

^

x∈dom(χ)

χ(x) ≤ χ′(x)

χ′ ` L(x)Λ−→ χ′Λ ` ν Z.( Gρ )

χ1 ` G1Λ1−→ χ′

1 ` G′1 χ2 ` G2

Λ2−→ χ′2 ` G′

2 ρ = mgu Λ1 ] Λ2^

x∈dom(χ1)∩dom(χ2)

χ1(x) = χ2(x)

χ1 ∪ χ2 ` G1 | G2

Λ1]Λ2−−−→ (χ1 ∪ χ2)(Λ1]Λ2) ` ν Z.(G′

1 | G′2)ρ

– p. 22/26

QoS & Synchronisations

� � � � � �� � � � � $� � �� � � � � � � � � � � $� � � �� � �� �� � � ��� �� � �� � � � � � � �� $ � �� �

R��

R // • R��

R��

• l • Goo • l • G // • l •

R

\\

l

DDD

l

zzzR

^^

R

OO

R

qql

� � �

l� � � $ �� � �� � � � � $ � �� � � � � � � � � � � �� � � � � � � �

� � �� � � � � � � ��

– p. 23/26

QoS & Synchronisations

� � � � � �� � � � � $� � �� � � � � � � � � � � $� � � �� � �� �� � � ��� �� � �� � � � � � � �� $ � �� �

R��

R // • R��

R��

• l • Goo • l • G // • l •

R

\\

l

DDD

l

zzzR

^^

R

OO

R

qql

l

! � � �� �� � � � �

l� � � $ ��� � � � � � � � � � � $ �� �� � � � � � � � � $� � � �� � � � � � �� $ � � � � �� � � � � �� � �

� � � � � � � � �� �� � � ��

– p. 23/26

QoS & Synchronisations

� � � � � �� � � � � $� � �� � � � � � � � � � � $� � � �� � �� �� � � ��� �� � �� � � � � � � �� $ � �� �

R��

R // • R��

R��

• l • Goo • l • G // • l •

R

\\

l

DDD

l

zzzR

^^

R

OO

R

qql

l

� � � �� � � �� � � � $ � �

HR� � � � � � � �� � � �� � �� � � � � � � � � � � �� � � �� � � � $

H = 〈H, +H , ?H ,0H ,1H 〉� � � �� �

H = {a, b, c,1H ,0H ,⊥}

� � �

R = 〈ω∞, max, min, 0, +∞〉� � � � � � � � � � �

H

� � �� �� � � �� � � � � � � � �� � � �� � �� � $�

R

� � � � �� � �� �� � � � � � � �� �� ��

� � � � � � �� � $� � � � � � � � $ � � � � �

� �� � �� �� � � � � � � �� � � � �� $ � � � �(1H , u)

�� � �

u

� � � � � � � � � �� � � � � � � � � �

� �� �� � � �

� � � � � $ �� �� � � � �� �� � � � � � � �� � � � �� $ � � � �

(b, +∞)

� �� � � � � � �� � � � � � � � � � � � � � ��

– p. 23/26

Productions for the ring case study

Create Brother (n < u)

•x

• (a,n)x R

OO

R

OO

−→ •z l

• (α,+∞)y R

OO

•y

x : (0H , u),y :0 . R(x,y)

x 7→ (a, n)y 7→ (α, +∞)

−−−−−−−−−→ R(x,z) | R(z,y) | l(z)

Accept Syncrhonisation R Accept Syncrhonisation l

• (b,+∞)x •x

R

OO

−→ R

OO

• (α,+∞)y •y

• (b,+∞)x •x

l −→ l

x : (0H , +∞),y :0 . R(x,y)

x 7→ (b, +∞)y 7→ (α, +∞)

−−−−−−−−−→ R(x,y) x :0 . l(x)x7→(b,+∞)−−−−−−→ l(x)

� � � � �

α ∈ {a, b}

– p. 24/26

Productions for the ring case study2

Create Gate (r > 0)

• (a,+∞)x l •x

G // •z

Rur EDBCeeJJJJJJJ

R

OO

−→ R

OO

• (b,+∞)y •y

x : (0H , u),y :0 . R(x,y)

x 7→ (a, +∞)y 7→ (b, +∞)

−−−−−−−−−→ R(x,y) | l(x) | G(z,x) | Rur (z,z)

Accept Synchronisation Init Accept Synchronisation Gate

• (c,+∞)x •x

R

OO

−→ R

OO

• (c,+∞)y •y

• (β,+∞)x •x

G

OO

−→ G

OO

• (b,+∞)y •y

x :0,y :0 . R(x,y)

x 7→ (c, +∞)y 7→ (c, +∞)

−−−−−−−−−→ R(x,y) x :0,y :0 . G(x,y)

x 7→ (β, +∞)y 7→ (b, +∞)

−−−−−−−−−→ G(x,y)

Accept Synchronisation Init Accept Synchronisation Gate

• (c,+∞)x •x

R

OO

−→ R

OO

• (c,+∞)y •y

• (β,+∞)x •x

G

OO

−→ G

OO

• (b,+∞)y •y

x :0,y :0 . R(x,y)

x 7→ (c, +∞)y 7→ (c, +∞)

−−−−−−−−−→ R(x,y) x :0,y :0 . G(x,y)

x 7→ (β, +∞)y 7→ (b, +∞)

−−−−−−−−−→ G(x,y)

– p. 25/26

The ring case study

� � � � � � � � � � � � � � � � � �� � �

Ra,∞ a,3��

•(1H ,5) • (1H ,5)

Ra,∞a,2

��

CreateBrother(u = 5, n = 2) × CreateBrother(u = 4, n = 3)

R � � � � �� � � � � � � � � � � Create Brother u = 5

� � � � � �� � � � � � � � � � � � 5 ≤ 5

� � �

n = 2 � � � � �

R � � � � �� � u = 4

� � � � � �� � � � � � � � � � � � 4 ≤ 5

� � �

n = 3�� � � � � � � � � � � �� � � �� � � � � � � � �

� � � � �� � � � � � � � �� � � � � � �� � � � � � � � � ��

(a, 2) = (a, 2) ? (a, +∞) = (a ?H a, min(2, +∞))(a, 3) = (a, 3) ? (a, +∞) = (a ?H a, min(3, +∞)).

– p. 26/26

The ring case study

•1

Ra,∞

b,∞<<

Rb,∞

a,∞

��•(a,2) l

b,∞

• (a,3)

R

a,∞

OO

b,∞

l

b,∞

R

b,∞

b,∞

��•

1

CreateGate(r = 1, u = 2) × CreateGate(r = 1, u = 3) × Accept∗

��� ��� R � � �

R � �� � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� 2 � � � � � �

r = 1

��� � �

� � � � � �� � ��� � � Accept � � � � � � � ���– p. 26/26

The ring case study

•(b,∞)

R

::R

��R2

1c,2 //GF@A c,∞mmmmm

mmmm•1

G b,∞c,∞oo • (a,∞) l •(a,∞) Gb,∞ c,∞ // •1

R31

c,∞ EDBCc,3RRRRR

hhRRRR

l

NNNNNNb, ∞ l

pppppp

R

NN

l R

��•

(b,∞)

� � � l � � � � �� � � � �

� � � � � � � �

AcceptSynchronisation l

� � �� � � �

� �

� � � � � � � �� � � ��

– p. 26/26

References[BMR95] Stefano Bistarelli, Ugo Montanari, and Francesca Rossi. Constraint solving over semiring. In Proceedings of

IJCAI95, San Matco, 1995. CA: Morgan Kaufman.

[BMR97] Stefano Bistarelli, Ugo Montanari, and Francesca Rossi. Semiring-based constraint satisfaction and optimization.Journal of the ACM, 44(2):201–236, March 1997.

[FMT01] Gianluigi Ferrari, Ugo Montanari, and Emilio Tuosto. A LTS Semantics of Ambients via Graph Synchronizationwith Mobility. In Italian Conference on Theoretical Computer Science, volume 2202 of Lecture Notes in ComputerScience, Torino (Italy), October 4-6, 2001. Springer-Verlag.

[HIM00] Dan Hirsch, Paola Inverardi, and Ugo Montanari. Reconfiguration of software architecture styles with name mobility.In Antonio Porto and Gruia-Catalin Roman, editors, Coordination 2000, volume 1906 of Lecture Notes in ComputerScience, pages 148–163. Springer-Verlag, 2000.

[Hir03] Dan Hirsch. Graph Transformation Models for Software Architecture Styles. PhD thesis, Departamento de Com-putacion, Universidad de Buenos Aires, 2003. http://www.di.unipi.it/ dhirsch.

[HM01] Dan Hirsch and Ugo Montanari. Synchronized hyperedge replacement with name mobility: A graphical calculusfor name mobility. In International Conference in Concurrency Theory, volume 2154 of Lecture Notes in ComputerScience, pages 121–136, Aalborg, Denmark, 2001. Springer-Verlag.

[HT05] Dan Hirsch and Emilio Tuosto. SHReQ: A Framework for Coordinating Application Level QoS. In K. AichernigBernhard and Beckert Bernhard, editors, 3rd IEEE International Conference on Software Engineering and FormalMethods, pages 425–434. IEEE Computer Society, 2005.

[LM04] Ivan Lanese and Ugo Montanari. Synchronization algebras with mobility for graph transformations. In Proc.FGUC’04 – Foundations of Global Ubiquitous Computing, ENTCS, 2004. To appear.

[LT05] Ivan Lanese and Emilio Tuosto. Synchronized Hyperedge Replacement for Heterogeneous Systems. In Jean-Marie Jacquet and Gian Pietro Picco, editors, International Conference on Coordination Models and Languages,volume 3454 of Lecture Notes in Computer Science, pages 220 – 235. Springer-Verlag, April 2005.

[Win85] Glynn Winskel. Synchronization trees. Theoretical Computer Science, 34:33–82, May 1985.

26-1