19
1 Developing Reliable Systems with SDL Design Patterns and Design Components Christian Webel , Ingmar Fliege, Alexander Geraldy, Reinhard Gotzhein University of Kaiserslautern {webel, fliege, geraldy, gotzhein}@informatik.uni-kl.de

Topics

Embed Size (px)

DESCRIPTION

Developing Reliable Systems with SDL Design Patterns and Design Components Christian Webel , Ingmar Fliege, Alexander Geraldy, Reinhard Gotzhein University of Kaiserslautern {webel, fliege, geraldy, gotzhein}@informatik.uni-kl.de. Topics. Motivation SDL Design Patterns Micro Protocols - PowerPoint PPT Presentation

Citation preview

Page 1: Topics

1

Developing Reliable Systems withSDL Design Patterns and Design Components

Christian Webel, Ingmar Fliege, Alexander Geraldy,Reinhard Gotzhein

University of Kaiserslautern

{webel, fliege, geraldy, gotzhein}@informatik.uni-kl.de

Page 2: Topics

Christian Webel2

Topics

1. Motivation

2. SDL Design Patterns

3. Micro Protocols

4. Comparison

5. Example: “Airship Control”

6. Conclusion

Page 3: Topics

Christian Webel3

1. Motivation

• Problem: – solution from scratch– existing systems: lack of reliability– difficult to integrate reliability

• Solution:– defining SDL design patterns and design components– using these software artefacts to augment system reliability step-

by-step– reuse– SDL as a design language to develop reliable systems

Page 4: Topics

Christian Webel4

1. Motivation

Concepts

Reliability:

ability of a system to perform its tasks under given conditions for a certain period of time

Watchdog:

component or functionality monitoring the operation of a system by observing an alive-signal

Heartbeat:

component or functionality sending a periodic alive-signal

Page 5: Topics

Christian Webel5

2. Adding Reliability through SDL Design Patterns

• generic solution for recurring design problems

• reusable software artefact

• SDL as design language

• to be selected, adapted and embedded

Page 6: Topics

Christian Webel6

2. Adding Reliability through SDL Design Patterns

• B provides data for A• B needs to be monitored by A• A is refined by applying the Watchdog pattern• B by applying the Heartbeat pattern

Page 7: Topics

Christian Webel7

2. Adding Reliability through SDL Design Patterns

Design pattern Watchdog

Page 8: Topics

Christian Webel8

2. Adding Reliability through SDL Design Patterns

Design pattern Heartbeat

Page 9: Topics

Christian Webel9

3. Adding Reliability through Micro Protocols

• encapsulate a single (distributed protocol) functionality using a specific mechanism

• self-contained and ready-to-use

• well-defined interfaces (operators)

• can be composed yielding macro protocols

Page 10: Topics

Christian Webel10

3. Adding Reliability through Micro Protocols

• A, B, Watchdog and Heartbeat as described• ready-to-use solutions, no modifications within A or B needed• useful if A or B cannot or should not be modified (e.g. 3rd party

components)

Page 11: Topics

Christian Webel11

3. Adding Reliability through Micro Protocols

Micro protocol

Watchdog

• one single process type

• may be refined to match the requirements of the embedding context

• needs a periodic trigger alive

process type Watchdog

Timer watchdogT;DCL safeInterval Duration;

OPTIONAL REFINE GATE:extend gate with signal sigX

disabled

virtual alive

safeInterval := 3; redefine with correcttimeout interval

set(NOW + safeInterval, watchdogT)

disabled enabled

enabled dead

OPTIONAL REFINE STATE:add new transition to disable watchdog-> input sigX -> TASK: reset(watchdogT)[-> sigX]->nextstate disabled

alive virtualwatchdogT

virtual alive

OPTIONAL REFINE:add output of reanimatesignal sigZ

REFINE:add output of fail-safesignal sigYset(NOW +

safeInterval, watchdogT)set(NOW +

safeInterval, watchdogT)

- dead REFINE GATE:extend gate with signal sigY [sigX,sigZ]

enabled

wdInalive

wdOut

Page 12: Topics

Christian Webel12

3. Adding Reliability through Micro Protocols

Micro protocol

Heartbeat

• one single process type

• may be refined to match the requirements of the embedding context

• provides a periodic trigger alive

process type Heartbeat

TIMER heartbeatT;DCL heartbeatInterval Duration := 1;

virtual beating

/*optionalheartbeatInterval Duration := X */

heartbeatT

set(NOW +heartbeatInterval, heartbeatT)

alive

beating set(NOW +heartbeatInterval, heartbeatT)

optional:redefine start transitionto set needed heartbeat interval

-

g

alive

Page 13: Topics

Christian Webel13

Design Patterns vs. Micro Protocols

4. Comparison

Advantages

• no change of the system architecture necessary

• optimization of heartbeat traffic

• reusable solution

• no change of the behaviour of the other system components necessary

• ready-to-use solution

• reusable solution

Disadvantages

• engineering knowledge required • change of the system architecture necessary

Page 14: Topics

Christian Webel14

5. Example: “Airship Control”

• application to control an airship via WLAN

• two parts:– airshipClient

transmits the control values to the airship

– airshipServerreceives the values and controls the airship hardware

• reliability is needed !!!

Page 15: Topics

Christian Webel15

5. Example: “Airship Control”

Application of the Heartbeat pattern

process airShipClientDCL id ID, newVal Integer, val1 CtrlValue := 0, val2 CtrlValue := 0, val3 CtrlValue := 0;

Timer heartbeatT;DCL hbInterval Duration := 1;processValue

/*start*/ disabled enabled *

disabled value(id, newVal)

value(id, newVal)

heartbeatT

id id alive

processValuestartAirshipvia airship

stopAirshipvia airship

newCtrlValues(val1, val2,val3)via airship

set(NOW +hbInterval, heartbeatT)

reset(heartbeatT) set(NOW +hbInterval, heartbeatT)

enabled - disabled - -

StartStop

elseelse

StartStop

Page 16: Topics

Christian Webel16

5. Example: “Airship Control”

Application of the Watchdog pattern

process airShipServerTIMER t := 0.1;

DCL val1 CtrlValue := 128, val2 CtrlValue := 0, val3 CtrlValue := 128;

TIMER watchdog;DCL safeInterval Duration := 3;

DCL fail1 CtrlValue := 128, fail2 CtrlValue := 0, fail3 Ctrlvalue := 128;

disabled running *

disabled startAirship newCtrlValues(val1,val2,val3)

t stopAirship alive watchdog

set(t) ctrlValue(val1)via servo

ctrlValue(val1)via servo

SET(NOW + safeInterval, watchdog);

ctrlValue(fail1)via servo

running ctrlValue(val2)via motor1

ctrlValue(val2)via motor1

ctrlValue(fail2)via motor1

ctrlValue(val3)via motor2

ctrlValue(val3)via motor2

RESET(t) ctrlValue(fail3)via motor2

SET(t) SET(t) RESET(watchdog) val1 := fail1;val2 := fail2;val3 := fail3;

- - disabled - -

Page 17: Topics

Christian Webel17

5. Example: “Airship Control”

Using the Watchdog and Heartbeat Micro Protocols

• selected and glued together

• Watchdog:– redefine timeout-transition– add stop-transition

• Heartbeat:– just select and integrate

• also possible to use design patterns und micro protocols together

INHERITS Watchdog;

process type MyWatchdog

enabled

redefinedwatchdogT

stopAirship

newCtrlValues(128,0,128)

stopAirshipvia wdOut

reset(watchdogT)

dead disabled

wdInstopAirship

wdOut

newCtrlValues,stopAirship

Page 18: Topics

Christian Webel18

6. Conclusion

• systematic approach to augment existing systems with reliability aspects

• reuse and reliability (design patterns, micro protocols)

Outlook:• Validation

• Compositional testing– Each component tested– Resulting system tested for composition faults

• Developing more micro protocols– QoS, Routing, Scheduling, Medium Access, Flow Control, …

Page 19: Topics

Christian Webel19

Thank you for your attention!

Questions?