synchronised hyperedge replacement as a model for service...
TRANSCRIPT
Synchronised Hyperedge Replacement
as a Model for
Service Oriented Computing
FMCO
Amsterdam, 1-4 November 2005
– p. 1/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...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
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
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
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