Constraints for the Construction of Component-Based Systems Simon - - PowerPoint PPT Presentation

constraints for the construction of component based
SMART_READER_LITE
LIVE PREVIEW

Constraints for the Construction of Component-Based Systems Simon - - PowerPoint PPT Presentation

Synthesizing Glue Operators from Glue Constraints for the Construction of Component-Based Systems Simon Bliudze and Joseph Sifakis urich, June 30 th , 2011 Z Outline Motivation BIP and the Glue Synthesizing glue operators Design flow


slide-1
SLIDE 1

Synthesizing Glue Operators from Glue Constraints for the Construction of Component-Based Systems

Simon Bliudze and Joseph Sifakis Z¨ urich, June 30th, 2011

slide-2
SLIDE 2

Outline

Motivation BIP and the Glue Synthesizing glue operators Design flow Quite some liberties taken w.r.t. the paper for the sake of the pre- sentation clarity!

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 2 / 29

slide-3
SLIDE 3

Outline

Motivation BIP and the Glue Synthesizing glue operators Design flow

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 3 / 29

slide-4
SLIDE 4

At the TOOLS keynote on Tuesday...

...Oscar Nierstrasz spoke of the necessity of Manipulating the models Bridging the gap between high-level models and run-time code Questions: Recently, did we get any closer to these

  • bjectives? If not, what is the way there?

Does not raising the abstraction level rather increase the gap? Answer: We should build solid and light-weight bridges!

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 4 / 29

slide-5
SLIDE 5

Solid and light-weight bridges

A unified modelling formalism Solid: Clearly established formal semantics Heterogeneity

computation, execution, implementation

Certifying code generation Light-weight: Clear, accessible formal semantics Minimal set of primitives Separation of concerns

coordination is a first-class citizen

Efficient implementation for popular platforms

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 5 / 29

slide-6
SLIDE 6

More specifically

Context: Component-based modelling, design and validation of embedded (safety-critical) systems. Presently: A number of coordination mechanisms for concurrent systems

shared variables, semaphores, message passing, etc.

Ad-hoc use and analysis methodologies. Our goal: Unified framework for component-based modelling and design Incremental description Correctness by construction Heterogeneity

synchronous and asynchronous execution event- and data-driven computation centralised and distributed implementation

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 6 / 29

slide-7
SLIDE 7

Outline

Motivation BIP and the Glue Synthesizing glue operators Design flow

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 7 / 29

slide-8
SLIDE 8

Component design by refinement

Three layers:

1 Component

behaviour

2 Coordination 3 Data transfer

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 8 / 29

slide-9
SLIDE 9

Component design by refinement

Three layers:

1 Component

behaviour

2 Coordination 3 Data transfer

A

b1 r1 p1 f1

B

f2 b2

C

p3 f3 r3 b3

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 9 / 29

slide-10
SLIDE 10

Component design by refinement

Three layers:

1 Component

behaviour

2 Coordination 3 Data transfer

A

b1 r1 p1 f1

B

f2 b2

C

p3 f3 r3 b3

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 10 / 29

slide-11
SLIDE 11

Component design by refinement

Three layers:

1 Component

behaviour

2 Coordination 3 Data transfer

A

b1 r1 p1 f1

B

f2 b2

C

p3 f3 r3 b3 A.x:=max(B.y,C.z)

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 11 / 29

slide-12
SLIDE 12

Unbuffered synchronous communication

(Not to confuse with synchronous execution!)

A

send

B

receive

Channel

collect deliver

❅ ❅ ❅

Channel.buf :=A.m B.m:=Channel.buf

A sends a message m to B: Two synchronisations with the channel Each synchronisation allows a data transfer An explicit model of the channel behaviour

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 12 / 29

slide-13
SLIDE 13

Scope of the basic BIP model

A

b1 r1 p1 f1

B

f2 b2

C

p3 f3 r3 b3

Three layers:

1 Component behaviour 2 Coordination 3 Data transfer

Interesting results already at this level, e.g. Analysis of synchronisation deadlocks

  • S. Bensalem, M. Bozga, J. Sifakis, T.-H. Nguyen. D-Finder: A Tool for Compositional

Deadlock Detection and Verification. [CAV’09]

Synthesis of glue for safety properties

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 13 / 29

slide-14
SLIDE 14

Basic model of BIP

Priorities (conflict resolution) Interactions (collaboration) B E H A V I O U R Layered component model Behaviour — labelled transition systems with disjoint sets of ports Interaction — set of interactions (interaction = set of ports) Priorities — strict partial order on interactions

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 14 / 29

slide-15
SLIDE 15

BIP examples

Modulo-8 counter:

✐ ✐ ✕ ☛ ✐ ✐ ✕ ☛ ✐ ✐ ✕ ☛

p pq r rs t tu p q r s t u

Interactions: {p, pqr, pqrst, pqrstu}. Mutual exclusion:

✐ ✐ ✇ ✕ ☛ ✐ ✐ ✇ ✕ ☛

f1 b1 f2 b2 b1 f1 b2 f2

Interactions: {b1, f1, b2, f2} Priority: b1 ≺ f2, b2 ≺ f1.

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 15 / 29

slide-16
SLIDE 16

Glue semantics in BIP: Solid

Bi = (Qi, Pi, →i,↑ i): Pi pairwise disjoint, P =

i Pi

→ ⊆ Q × 2P × Q ↑ ⊆ Q × P such that (∃a ∈ 2P : p ∈ a ∧ q

a

→) ⇒ q ↑p Interaction model: γ ⊆ 2P — set of allowed interactions

  • qi

a∩Pi

− → q′

i

  • i ∈ [1, n], a ∩ Pi = ∅
  • q1 . . . qn

a

→ q1 . . . qn for each a ∈ γ , where qi denotes q′

i if a ∩ Pi = ∅, and qi otherwise.

Priority model: ≺ ⊆ 2P × 2P — strict partial order q

a

→ q′ {q ↑a′ | a ≺ a′} q

a

→≺ q′ for each a ∈ 2P

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 16 / 29

slide-17
SLIDE 17

Outline

Motivation BIP and the Glue Synthesizing glue operators Design flow

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 17 / 29

slide-18
SLIDE 18

Connector synthesis

✐ ✐ ✐ ✇ ✻

f

b

p

r

b f r p

Mutual preemption:

1 A running task is preempted, when the

  • ther one begins computation.

2 A preempted task resumes computation,

when the other one finishes. true ⇒ b1 ∨ f1 ∨ b2 ∨ f2 p1 ⇒ b2 p2 ⇒ b1 r1 ⇒ f2 r2 ⇒ f1 Mutual exclusion?.. T1

b1 f1 r

1

p1

T2

r

2

p2 f2 b2

{b1, b2, b1p2, b2p1, f1, f2, f1r2, f2r1}

  • S. Bliudze, J. Sifakis. Causal semantics for the algebra of connectors. In Formal Methods in System Design, 2010.

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 18 / 29

slide-19
SLIDE 19

Mutual exclusion (design front-end)

✐ ✐ ✇ ✕ ☛ ✐ ✐ ✇ ✕ ☛

f1 b1 f2 b2 b1 f1 b2 f2 1 B1 can enter the critical state if B2 is in the non-critical one

  • r leaves the critical state simultaneously

fire(b1) ⇒ ¬active(f2) ∨ fire(f2)

2 Idem for B2:

fire(b2) ⇒ ¬active(f1) ∨ fire(f1)

3 B1 and B2 cannot enter the critical state simultaneously

¬

  • fire(b1) ∧ fire(b2)
  • SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨

urich, June 30th, 2011 — 19 / 29

slide-20
SLIDE 20

Mutual exclusion (semantic back-end)

Notation: For a port p ∈ P, let p and ˙ p — boolean activation and firing variables Constraints:

  • ˙

b1 ⇒ f2 ∨ ˙ f2

  • ˙

b2 ⇒ f1 ∨ ˙ f1

  • ∧ ˙

b1 ˙ b2 — Mutual exclusion ∧

  • b1 ∨ f1 ∨ b2 ∨ f2
  • — Progress

∧ ˙ f1 ˙ f2 ∧

  • ˙

f1 ∨ ˙ f2 ⇒ b1 b2

  • — “Internality” of finish

= ˙ b1 ˙ b2 ˙ f1 ˙ f2 ∨ ˙ b1 ˙ b2 ˙ f1 ˙ f2 ∨ ˙ b1 ˙ b2 ˙ f1 ˙ f2 f2 ∨ ˙ b1 ˙ b2 ˙ f1 ˙ f2 f1 q1

f1

→ q′

1

q1q2

f1

→ q′

1q2

, q2

f2

→ q′

2

q1q2

f2

→ q1q′

2

, q1

b1

→ q′

1 q2 ↑f2

q1q2

b1

→ q′

1q2

, q1 ↑f1 q2

b2

→ q′

2

q1q2

b2

→ q1q′

2

  • Priorities: b1≺f2, b2≺f1

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 20 / 29

slide-21
SLIDE 21

Rescue robot (design front-end)

r a a r u h b f m

R E N S 1 Must not advance and rotate at the same time: ˙

a ˙ r ;

2 Must not leave the region: b ⇒ ˙

a ;

3 Must not drive into hot areas: h ⇒ ˙

a ;

4 Must stop, when objective is found: f ⇒ ˙

a ˙ r ;

5 Must update navigation and sensor data on every move

(advance or rotate): ˙ a ∨ ˙ r ⇒ ˙ u ˙ m .

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 21 / 29

slide-22
SLIDE 22

Rescue robot (semantic back-end)

˙ a ˙ r ∧ (b ⇒ ˙ a) ∧ (h ⇒ ˙ a) ∧ (f ⇒ ˙ a ˙ r) ∧ (˙ a ∨ ˙ r ⇒ ˙ u ˙ m) — Safety ∧ (˙ a ∨ ˙ r ∨ ˙ u ∨ ˙ m) ∧ ˙ h ˙ b ˙ f — Progress =

  • ˙

a ˙ r ˙ u ˙ m ∨ ˙ a ˙ r ˙ u ˙ m ∨ ˙ a ˙ r ˙ u ˙ m ∨ ˙ a ˙ r f ˙ u ˙ m ∨ ˙ a ˙ r b h f ˙ u ˙ m

  • ∧ ˙

h ˙ b ˙ f qn

u

→ q′

n

qeqsqn

u

→ qeqsq′

n

, qs

m

→ q′

s

qn

u

→ q′

n

qeqsqn

mu

− → qeq′

sq′ n

, qs

m

→ q′

s

qeqsqn

m

→ qeq′

sqn

, qe

r

→ q′

e qs m

→ q′

s qn u

→ q′

n qn ↑f

qeqsqn

rmu

− → q′

eq′ sq′ n

, qe

a

→ q′

e qs m

→ q′

s qn u

→ q′

n qs ↑h qn ↑b qn ↑f

qeqsqn

amu

− → q′

eq′ sq′ n

.

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 22 / 29

slide-23
SLIDE 23

General case

Constraints: B[P, ˙ P] with an axiom ˙ p ⇒ p SOS rules:

  • Bi : qi

ai

− → q′

i

  • i∈I
  • Bj : qj ↑bj
  • j∈J
  • Bk : qk ↑cs
  • s ∈ Lk
  • k∈K

gl(B1, . . . , Bn) : q1 . . . qn

a

− → q1 . . . qn Theorem Constraint glues and SOS glues are equivalent.

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 23 / 29

slide-24
SLIDE 24

Outline

Motivation BIP and the Glue Synthesizing glue operators Design flow

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 24 / 29

slide-25
SLIDE 25

Design flow

1 Choice of the functionalities to be realized by sequential

atomic components.

2 Independent design of sequential atomic components. 3 Specification of state safety properties to be satisfied by the

system.

4 Automatic glue operator and connector synthesis. This

implies that the underlying state safety properties are satisfied by construction.

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 25 / 29

slide-26
SLIDE 26

Existing BIP desing flow

http://www.slideshare.net/sbliudze/bip-design-flow http://www-verimag.imag.fr/The-BIP-Design-Flow.html

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 26 / 29

slide-27
SLIDE 27

Conclusion

We have Taken BIP one step closer to something

Solid — by improving semantics of hierarchical composition Light-weight — by isolating designers from low-level details

Through separation of concerns, reduced a very hard problem

  • f synthesizing controllers to a tractable one.

Given a natural boolean characterisation of glue through constraints ⇒ symbolic manipulation with BDDs.

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 27 / 29

slide-28
SLIDE 28

Thank you for your attention!

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 28 / 29

slide-29
SLIDE 29

SOS operator example

Glue operator g defined by the following rules

  • q1

a

→ q′

1

q1q2

a

→ q′

1q2

, q1

a

→ q′

1 q2 c

→ q′

2

q1q2

ac

→ q′

1q′ 2

, q1

b

→ q′

1 q2 c

→ q1q2

b

→ q′

1q2

  • Behaviours

Parallel product Application of glue B1, B2 B1 B2 g(B1, B2)

a b c a c ac a c bc b c b a ac a b

SC 2011 — S. Bliudze, J. Sifakis, “Synthesizing Glue Operators...” — Z¨ urich, June 30th, 2011 — 29 / 29