Wireless Software Components Design for Management with PauWare and WMX

53
[email protected] www.univ-pau.fr/~fromeo 1 Wireless Software Components Wireless Software Components Design for Management Design for Management with PauWare and WMX with PauWare and WMX Fabien Romeo Fabien Romeo Liuppa, Université de Pau Liuppa, Université de Pau

description

Wireless Software Components Design for Management with PauWare and WMX. Fabien Romeo. Liuppa, Université de Pau. Agenda. Domain: CBSE applied to Wireless Systems Key Problem: Software Components Management PauWare: Executable Models Velcro: PauWare on Wireless Systems - PowerPoint PPT Presentation

Transcript of Wireless Software Components Design for Management with PauWare and WMX

Page 1: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 1

Wireless Software Components Wireless Software Components Design for ManagementDesign for Managementwith PauWare and WMXwith PauWare and WMX

Fabien RomeoFabien Romeo

Liuppa, Université de PauLiuppa, Université de Pau

Page 2: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 2

AgendaAgenda

Domain: CBSE applied to Wireless SystemsDomain: CBSE applied to Wireless SystemsKey Problem: Software Components ManagementKey Problem: Software Components ManagementPauWare: Executable ModelsPauWare: Executable ModelsVelcro: PauWare on Wireless SystemsVelcro: PauWare on Wireless SystemsWMX: Wireless ManagementWMX: Wireless ManagementPerspective: Autonomic ComputingPerspective: Autonomic Computing

Page 3: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 3

AgendaAgenda

Domain: CBSE applied to Wireless SystemsDomain: CBSE applied to Wireless SystemsDemo: Bean Builder

Key Problem: Software Components ManagementKey Problem: Software Components ManagementPauWare: Executable ModelsPauWare: Executable Models

Demo: Home Automation System

Velcro: PauWare on Wireless SystemsVelcro: PauWare on Wireless SystemsDemo: Traffic Light

WMX: Wireless ManagementWMX: Wireless ManagementDemo: Traffic Light – Composition Management

Perspective: Autonomic ComputingPerspective: Autonomic Computing

Page 4: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 4

Component-Based Software EngineeringComponent-Based Software Engineering

Software Engineering :Software Engineering :

Quality – Time – CostQuality – Time – CostHow to develop high-quality software in a fast and cost-effective way?

Software Components :Software Components :Reuse vs. Invent

Build vs. Create

Architecture

Infrastructure

Page 5: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 5

Component Software – Beyond Object-Oriented Oriented Component Software – Beyond Object-Oriented Oriented ProgrammingProgramming

Second Edition, Addison-Wesley (2002)Second Edition, Addison-Wesley (2002)

——Szyperski, C., Gruntz, D., and Murer, S.Szyperski, C., Gruntz, D., and Murer, S.Provided Services :API,

pre / post conditions,Extra-functionnal

aspects

Required Services

Low coupling,Late binding

Elementary piece

DefinitionDefinition

«A software component is a unit of composition with «A software component is a unit of composition with contractually specified interfaces and explicit contractually specified interfaces and explicit context dependencies only. A software component context dependencies only. A software component can be deployed independently and is subject to can be deployed independently and is subject to composition by third parties. »composition by third parties. »

Page 6: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 6

Component ModelComponent Model

A simple example : JavaBeansA simple example : JavaBeans« A Java Bean is a reusable software component that can be manipulated visually in a builder tool. »

– JavaBeans Specification 1.01

Methods

Properties (attributes)

Events Events

BeanInfo

Page 7: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 7

Demo : Bean BuilderDemo : Bean Builder

https://bean-builder.dev.java.net/https://bean-builder.dev.java.net/

Mini BrowserMini Browser

ClockWorkClockWork

Page 8: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 8

Analysis / ProblemsAnalysis / ProblemsInformation on componentsInformation on components

Documentation Reflexion : structure

Bugs : where does the problem comes ?Bugs : where does the problem comes ?NIH syndrome : it’s the COTS components fault!Blind Trust : it’s the in-house built components fault! Component sellers only provide error-proof components.Incompatibilities

Incomplete modeling until assembly : how to get Incomplete modeling until assembly : how to get an internal model of COTS components?an internal model of COTS components?

Page 9: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 9

Ubiquitous Computing InsideUbiquitous Computing InsideNumerous component modelsNumerous component models

pect, koala, pecos, beanome, frogi, …

Trends in computingTrends in computingInternational Data Corporation, Transition to the Information Highway Era, in Information Industry and Technology Update

software

everyware

Page 10: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 10

Ubiquitous Computing TodayUbiquitous Computing TodayBoom of Wireless TechnologiesBoom of Wireless Technologies

DomoticsDomotics

And lots of other applications… And lots of other applications… ButBut … …

AutomobileAutomobile

Page 11: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 11

Mobile Phone TroubleMobile Phone Trouble

Connect Magazine (June 2006) Connect Magazine (June 2006) [www.connect.de][www.connect.de]

software

electronics

other

keypad

display

case

42%

13%

10%

9%

7%

19%

PERCENT OF

MALFUNCTIONS

Page 12: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 12

Car TroubleCar TroubleGerman Automobile Association ADACGerman Automobile Association ADAC

electrical/

ignition systems*

32.1%

14.0%

electronic systems

engine 11.7%

radiator/cooling systems 8.2%

wheels or tires 7.0%

fuel systems 6.3%

injection systems* 6.1%

gears/transmission 5.5%

chassis* 4%

other 5.1%*also contain

electronics

PERCENT OF

MALFUNCTIONS

Page 13: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 13

Research AgendaResearch AgendaToward Open-World Software: Issues and ChallengesToward Open-World Software: Issues and Challenges

(IEEE Computer Magazine, October 2006):(IEEE Computer Magazine, October 2006):« A highly dynamic and open system necessitates « A highly dynamic and open system necessitates

runtime monitoringruntime monitoring to watch for situations that to watch for situations that might require suitable reactions to assure the might require suitable reactions to assure the desired level of global quality. […] As a result of desired level of global quality. […] As a result of monitoring, it should be possible to handle deviations monitoring, it should be possible to handle deviations from from expected behaviorsexpected behaviors and plan for a and plan for a reconfigurationreconfiguration. ». »

I. Crnkovic, “Component-based Software Engineering for Embedded I. Crnkovic, “Component-based Software Engineering for Embedded Systems,” in ICSE’05.Systems,” in ICSE’05.A. Möller, J. Fröberg, and M. Nolin, “Industrial Requirements on A. Möller, J. Fröberg, and M. Nolin, “Industrial Requirements on Component Technologies for Embedded Systems,” in CBSE’04.Component Technologies for Embedded Systems,” in CBSE’04.

——Luciano Baresi, Elisabetta Di Nitto, and Carlo GhezziLuciano Baresi, Elisabetta Di Nitto, and Carlo Ghezzi

Page 14: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 14

Application ManagementApplication Management

MonitoringMonitoringSensors

ControllingControllingActivators

What to monitor?What to monitor?What to control?What to control?Where is the line between the applicationWhere is the line between the application and the management system? and the management system?

Management System

Application

sensors activators

Page 15: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 15

ObjectivesObjectives

Management of the components’ Management of the components’ behaviorbehaviorBehavioral models available at runtime

Remote and Wireless AccessRemote and Wireless Access

Execution on « light-weight » devicesExecution on « light-weight » devices

Page 16: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 16

MDA + CBSEMDA + CBSE

MDA (Model-Driven Architecture)MDA (Model-Driven Architecture)Model Centric DeveloppementsModel TransformationUML : structural models and behavioral models

CBSECBSEStructural Models :architecture, composition, interfaces…Technological Component Model (model = format)

PIM

PSM PSMPSM

Page 17: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 17

StatechartsStatecharts

[Harel 1987] :[Harel 1987] : Statecharts =  Statecharts = state-diagrams : XOR

On Offcreate/ stop/

restart/

destroy/

Wait Process

On

request /

Wait Process

On

[Queue->isNotEmpty] /

Listen

request / Queue->add(client)

+ depth : hierarchie

+ orthogonality : AND

+ broadcast-communication :Asynchronous Communication

Notation: ^signal

Page 18: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 18

The PauWare EngineThe PauWare Engine

Power the execution of Statecharts modelsPower the execution of Statecharts models(simulation, verification, implementation)(simulation, verification, implementation)

All-terrain Java Implementation (J2EE, J2SE et J2ME)

Statecharts

Model of the application dynamics

PauWare Library

PauWare Engine

Page 19: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 19

The PauWare LibraryThe PauWare Library

Declaration of states :Declaration of states :Classes Statechart and Statechart_monitor

Composition of states :Composition of states :XOR and AND operators

Declaration of transitions :Declaration of transitions :fires(String event, Statechart from, Statechart to, boolean guard, Object target, String action, Object[] args);

Generation of events :Generation of events :_statechart_monitor.run_to_completion("event");

Statechart

Statechart_monitor

Page 20: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 20

Example : LightExample : Light/* UML statecharts */Statechart _On = new Statechart("On");_On.doActivity(this,"display");

Statechart _Off = new Statechart("Off");_Off.inputState();

/* PauWare engine */

On Off

LightturnOff

turnOn

On Offdo / display

Statechart_monitor _Light = new Statechart_monitor(_On.xor(_Off),"Light");

/* UML transitions */_Light.fires("turnOn",_Off,_On);_Light.fires("turnOff",_On,_Off);

/* UML events */public void turnOn() throws Statechart_exception { _Light.run_to_completion("turnOn");} public void turnOff() throws Statechart_exception { _Light.run_to_completion("turnOff");}

/* the code is incomplete */

Page 21: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 21

Demo : Home Automation SystemDemo : Home Automation System

+ PauWareView

Page 22: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 22

PauWare Component ModelPauWare Component Model

A State Machine Execution Engine A State Machine Execution Engine (diagrammes UML 2)(diagrammes UML 2)

Model verification at development time

Support for implementation

Models persist at runtime

State Machine State Machine Components ? Components ?Structure-Behavior Binding(i.e. component-statechart)

Support for horizontal composition and vertical composition (hierarchical)

Page 23: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 23

PauWare Component ModelPauWare Component Model« interface »

Light functional interface

turnOn()turnOff()

Light

« class »Light implementation class

« service » turnOn()« service » turnOff()

« action » display()

On Off

LightturnOff

turnOn

On Offdo / display

_Composytor::Statechart_monitor

1_Light

« implement »

Page 24: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 24

Horizontal CompositionHorizontal Composition

Components have the same granularityComponents have the same granularityClient / Server or Peer to Peer

Provided Interfaces / Required InterfacesProvided Interfaces / Required Interfaces

Low couplingLow coupling

Distributed ApplicationDistributed Application

Statecharts Communication by signalStatecharts Communication by signalJMS, Message-Driven Bean

Page 25: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 25

Example : Traffic LightExample : Traffic Light

TrafficLight

Startentry: goRed Red

Yellow

Green

goRed/^RedLight.turnOn

goGreen/^GreenLight.turnOn,

^RedLight.turnOff

goYellow/^YellowLight.turnOn,^GreenLight.turnOff

goRed/^RedLight.turnOn,^YellowLight.turnOff

RedLight:Light

GreenLight:Light

YellowLight:LightTrafficLight

On Off

LightturnOff

turnOn

On Offdo / display

Page 26: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 26

Vertical CompositionVertical Composition(De)composition composite/compound(De)composition composite/compound

Hierarchie (cf. Fractal)

A higher couplingA higher couplingLife-cycle Dependances, encapsulation, …

Theoretical FoundationsTheoretical FoundationsRevised formalization of aggregation and composition in UML (IEEE TSE 29(5) et 29(11) - 2003)

State Machines of compound components integrated into the State Machines of compound components integrated into the State Machine of the composite as concurrent macro states :State Machine of the composite as concurrent macro states :

public class Light extends _PauWare.Composable {/* ... */}Light redLight, yellowLight, greenLight;Statechart_monitor trafficLight = new Statechart_monitor(redLight.state_machine() .and(yellowLight.state_machine()) .and(greenLight.state_machine()) .and(start.xor(red).xor(yellow).xor(green)));

Page 27: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 27

Example : Traffic LightExample : Traffic LightTrafficLight

Startentry: goRed Red

Yellow

Green

goRed/^self.RedLight::turnOn

goGreen/^self.GreenLight::turnOn,

^self.RedLight::turnOff

goYellow/^self.YellowLight::turnOn,^self.GreenLight::turnOff

goRed/^self.RedLight::turnOn,^self.YellowLight::turnOff

GreenLight:Light

YellowLight:Light

RedLight:Light

TrafficLight

RedLight:Light

YellowLight:Light

GreenLight:Light

« delegate »

« delegate »

« delegate »

Page 28: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 28

Demo : Traffic LightDemo : Traffic Light

Page 29: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 29

VelcroVelcro

PauWare(java.lang.reflect)

PauWare(java.lang.reflect) VelcroVelcro

java.lang.reflect

PauWare

Velcro

Page 30: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 30

WMXWMXWireless Management eXtensionsWireless Management eXtensions

http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/jmxperience.jsphttp://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/jmxperience.jsp

http://www.univ-pau.fr/~fromeo/wmxhttp://www.univ-pau.fr/~fromeo/wmx

Manager

Statechart

Interface de ManagementControle

Monitor

Replication ?Coherence ?

What to transmit and how ? - Events ? - States ?

Unreliable Communication:Asynchronous Mode ?

Page 31: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 31

Coherence of statecharts (1)Coherence of statecharts (1)

On Off

Component

turnOff [component.temperature < 40]

turnOn

On Off On Off

Component

turnOff [component.temperature < 40]

turnOn

On Offevent

turnOff

component.temperature = 43

turnOff

Unknown?

Application Side Management Side

And we don’t want to sendlow states (attributes)

Forwarding events causesproblems with guards

Page 32: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 32

Coherence of statecharts (2)Coherence of statecharts (2)

On Off

Component

turnOff [component.temperature < 40]

turnOn

On Off On Off

Component

On Offtransition

turnOff

component.temperature = 43

Application Side Management Side

as we still don’t want to sendlow states (attributes)…

If we forward the transitions…

Page 33: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 33

Coherence of statecharts (3)Coherence of statecharts (3)

On Off

Component

turnOff [component.temperature < 40]

turnOn

On Off On Off

Component

On Offtransition

turnOff

component.temperature = 39

Application Side Management Side

On Off

we didn’t have to sendlow states (attributes)

… the statecharts are synchronized …

because the internal managerdid it for us…

Page 34: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 34

UML ModelingUML Modeling

Managed Component

BusinessComponent

InternalManager

provided interface

required interface

externaleffector

externalpushedsensor

externalpulledsensor

externalapplication

port

externalmanagement

port

internal effector

internal pulled sensor

internal pushed sensor

internalmanagement

port

internalmanagement

port

Page 35: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 35

Detailed ModelDetailed Model

«require»

«require»

«require»

«require»

«class»Business component implementation class

«service» service1() «service» service2() «service» serviceX() «action» action0() «action» action1() «action» action2() «action» action3() «action» action4() «guard» guard1() «guard» guard2()

Business Component

«implement»

«interface»Business Component functional interface

service1() service2()

serviceX is not part of the functional interface since it is only sent internally

1

«class»Internal Manager implementation class

control_service1() control_service2() control_serviceX() execute(action) to_state(state) in(state)

«implement»

_Composytor::Statechart_monitor

«interface»Internal Pushed Sensor

control_service1() control_service2() control_serviceX()

«interface»Internal Pulled Sensor

guard1() guard2()

«interface»Internal Effector

service1() service2() serviceX() action0() action1() action2() action3() action4()

«interface»External Pushed Sensor

state_changed(transition)

«interface»External Pulled Sensor

in(state)

«interface»External Effector

execute(action) to_state(state)

Internal Manager

Page 36: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 36

Composition ManagementComposition Management

Desynchronization of automatesDesynchronization of automates(example : Traffic Light)(example : Traffic Light)

Undetectable Error by Model CheckingUndetectable Error by Model CheckingIt is supposed to work

Shows the possibility to define management Shows the possibility to define management policies based on the replicated statechartpolicies based on the replicated statechart

Page 37: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 37

States – Sub-states (1)States – Sub-states (1)

TrafficLight

Startentry: goRed Red

Yellow

Green

goRed/^RedLight.turnOn

goGreen/^GreenLight.turnOn,

^RedLight.turnOff

goYellow/^YellowLight.turnOn,^GreenLight.turnOff

goRed/^RedLight.turnOn,^YellowLight.turnOff

On Off

GreenLightturnOff

turnOn

On Offdo / display

On Off

RedLightturnOff

turnOn

On Offdo / display

On Off

YellowLightturnOff

turnOn

On Offdo / display

Page 38: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 38

States – Sub-states (2)States – Sub-states (2)

TrafficLight

Startentry: goRed Red

Yellow

Green

goRed/^RedLight.turnOn

goGreen/^GreenLight.turnOn,

^RedLight.turnOff

goYellow/^YellowLight.turnOn,^GreenLight.turnOff

goRed/^RedLight.turnOn,^YellowLight.turnOff

On Off

GreenLightturnOff

turnOn

On Offdo / display

On Off

YellowLightturnOff

turnOn

On Offdo / display

On Off

RedLightturnOff

turnOn

On Offdo / display

Page 39: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 39

States – Sub-states (3)States – Sub-states (3)

TrafficLight

Startentry: goRed Red

Yellow

Green

goRed/^RedLight.turnOn

goGreen/^GreenLight.turnOn,

^RedLight.turnOff

goYellow/^YellowLight.turnOn,^GreenLight.turnOff

goRed/^RedLight.turnOn,^YellowLight.turnOff

On Off

YellowLightturnOff

turnOn

On Offdo / display

On Off

GreenLightturnOff

turnOn

On Offdo / display

On Off

RedLightturnOff

turnOn

On Offdo / display

Page 40: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 40

Composite ManagerComposite ManagerCompositeManager

Monitor

Control

state_changed(transition)

to_state(state) / ^managed.to_state(state)

execute(action) / ^managed.execute(action)

part_state_changed [not valid_state_guard]

UndefinedState

Composition

DefinedState

Composition

part_state_changed/ ^self.check[valid_state_guard]

check/ ^self.to_state(state)[consistency_guard]

in(state) / ^managed.in(state)

valid_state_guard = [( part1Manager.managedIn(part1ComposedState1)

&& … && partNManager.managedIn(partNComposedState1) )

|| … || ( part1Manager.managedIn(part1ComposedStateN)

&& … && partNManager.managedIn(partNComposedStateN) )]

consistency_guard = [( !(state = compositeState1) &&

!(self.managedIn(compositeState1))

&& part1Manager.managedIn(part1ComposedState1)

&& … && partNManager.managedIn(partNComposedState1) )

|| … || ( !(state = compositeStateN) && !(self.managedIn(compositeStateN))

&& part1Manager.managedIn(part1ComposedStateN)

&& … && partNManager.managedIn(partNComposedStateN) )]

Page 41: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 41

Part ManagerPart Manager

PartManager

Monitorstate_changed(transition)/ ^CompositeManager.part_state_changed

in(state) / ^managed.in(state)

Control to_state(state) / ^managed.to_state(state)

execute(action) / ^managed.execute(action)

Page 42: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 42

Demo : Traffic LightDemo : Traffic Light

Composition Management with WMXComposition Management with WMX

Page 43: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 43

Towards Autonomic ComputingTowards Autonomic Computing

Cf. Cyril Ballagny’s on-going thesis…

Page 44: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 44

Performances?Performances?

Deployed on a HP iPAQ hx4700Deployed on a HP iPAQ hx4700JVM IBM J9

Complex Case Studies :Complex Case Studies :Home automation system

Railcar System (J2EE + JMS)

…, your system Railcar

new destination(another terminal)

alert80(terminal,railcar,is clockwise)/ ^my next possible stop.approaching(terminal,railcar,is clockwise) Wait for alert80

entry/ ^cruiser.set Engaged20

Wait for terminal order

Arriving

Cruising entry/ ^cruiser.set Engaged80

terminal crossing

Stopped on railway

Stopped at terminal exit/ ^cruiser.set Engaged20

go on/ ^cruiser.set Engaged20

go

stop/ ^cruiser.set Disengaged

alert100(terminal,railcar,is clockwise)

terminal stopping/ ^cruiser.set Disengaged

Idle entry/ unset my current railcar

terminal crossing(terminal,railcar,is clockwise)/ ^railcar.terminal crossing

Busy entry/ ^clockwise ingoing vehicle.stop, ^counterclockwise ingoing vehicle.stop

approaching(terminal,railcar,is clockwise)/ set my current railcar(is clockwise)

Terminal alert100(terminal,railcar,is clockwise) new destination(another terminal)

time-out(30000)/ ^timer.to be killed, ^my current railcar.go,

^clockwise ingoing vehicle.go on, ^counterclockwise ingoing vehicle.go on

terminal stopping(terminal,railcar,is clockwise)/ ^timer.to be set(30000), ^my current railcar.terminal stopping

approaching(terminal,railcar,is clockwise)

Railcar new destination(another terminal)

alert80(terminal,railcar,is clockwise)/ ^my next possible stop.approaching(terminal,railcar,is clockwise) Wait for alert80

entry/ ^cruiser.set Engaged20

Wait for terminal order

Arriving

Cruising entry/ ^cruiser.set Engaged80

terminal crossing

Stopped on railway

Stopped at terminal exit/ ^cruiser.set Engaged20

go on/ ^cruiser.set Engaged20

go

stop/ ^cruiser.set Disengaged

alert100(terminal,railcar,is clockwise)

terminal stopping/ ^cruiser.set Disengaged

Railcar new destination(another terminal)

alert80(terminal,railcar,is clockwise)/ ^my next possible stop.approaching(terminal,railcar,is clockwise) Wait for alert80

entry/ ^cruiser.set Engaged20

Wait for terminal order

Arriving

Cruising entry/ ^cruiser.set Engaged80

terminal crossing

Stopped on railway

Stopped at terminal exit/ ^cruiser.set Engaged20

go on/ ^cruiser.set Engaged20

go

stop/ ^cruiser.set Disengaged

alert100(terminal,railcar,is clockwise)

terminal stopping/ ^cruiser.set Disengaged

Idle entry/ unset my current railcar

terminal crossing(terminal,railcar,is clockwise)/ ^railcar.terminal crossing

Busy entry/ ^clockwise ingoing vehicle.stop, ^counterclockwise ingoing vehicle.stop

approaching(terminal,railcar,is clockwise)/ set my current railcar(is clockwise)

Terminal alert100(terminal,railcar,is clockwise) new destination(another terminal)

time-out(30000)/ ^timer.to be killed, ^my current railcar.go,

^clockwise ingoing vehicle.go on, ^counterclockwise ingoing vehicle.go on

terminal stopping(terminal,railcar,is clockwise)/ ^timer.to be set(30000), ^my current railcar.terminal stopping

approaching(terminal,railcar,is clockwise)

Idle entry/ unset my current railcar

terminal crossing(terminal,railcar,is clockwise)/ ^railcar.terminal crossing

Busy entry/ ^clockwise ingoing vehicle.stop, ^counterclockwise ingoing vehicle.stop

approaching(terminal,railcar,is clockwise)/ set my current railcar(is clockwise)

Terminal alert100(terminal,railcar,is clockwise) new destination(another terminal)

time-out(30000)/ ^timer.to be killed, ^my current railcar.go,

^clockwise ingoing vehicle.go on, ^counterclockwise ingoing vehicle.go on

terminal stopping(terminal,railcar,is clockwise)/ ^timer.to be set(30000), ^my current railcar.terminal stopping

approaching(terminal,railcar,is clockwise)

Idle entry/ unset my current railcar

terminal crossing(terminal,railcar,is clockwise)/ ^railcar.terminal crossing

Busy entry/ ^clockwise ingoing vehicle.stop, ^counterclockwise ingoing vehicle.stop

approaching(terminal,railcar,is clockwise)/ set my current railcar(is clockwise)

Terminal alert100(terminal,railcar,is clockwise) new destination(another terminal)

time-out(30000)/ ^timer.to be killed, ^my current railcar.go,

^clockwise ingoing vehicle.go on, ^counterclockwise ingoing vehicle.go on

terminal stopping(terminal,railcar,is clockwise)/ ^timer.to be set(30000), ^my current railcar.terminal stopping

approaching(terminal,railcar,is clockwise)

T 1

C lo c k w ise

C o u n te rc lo c k w ise

T 2 T 4

T 3

R 1

R 2

R 3

Page 45: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 45

Implementation Benchmark Overhead per state change

Pure Java 2 ms 0 μsJava + reflect API 14 ms 0,12 μsJMX (internal access) 721ms 7,19 μsPauWare (w/o cache) 1491 ms 14,89 μsPauWare (w cache) 1027 ms 10,25 μsVelcro (w/o cache) 1529 ms 15,27 μsVelcro (w cache) 1038 ms 10,36 μs

Following implementations include I/O or networkingPure Java + System.out.print() 2584 ms 25,82 μs

WMX (velcro + sockets) 3893 ms 38,91 μsJMX + RMI connector 22077ms 220,75 μs

Performances – Quantitative StudyPerformances – Quantitative StudyBenchmarkBenchmark

100.000 loops of state changes (adaptated from JAC Benchmark)

Intel Centrino 1600MHz, 512 Mo RAM, WinXP, JVM 1.5 SUN

Page 46: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 46

ConclusionConclusionPauWarePauWare

Components driven by executable statechartsBut also a framework for experimenting research results in MDA, CBSE, …

Velcro + WMXVelcro + WMXManagement of the software components’ behavior in the context of wireless systems

SELF-* Liuppa ProjectSELF-* Liuppa ProjectPerspectivesPerspectives

Integration into other component models (OSGi, Fracal, …)Persistance at runtime of other types of models, (other views for management)Autonomic Computing (Cyril)

Page 47: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 47

Thank you for reading!Thank you for reading! Fabien Romeo, Franck Barbier, Jean-Michel Bruel, Fabien Romeo, Franck Barbier, Jean-Michel Bruel,

Autonomic Management of Component-Based Embedded SoftwareAutonomic Management of Component-Based Embedded Software, , IFIP/IEEE Symposium on Integrated Management, IFIP/IEEE Symposium on Integrated Management, Munich, Germany, 21-25 may, 2007. (to appear)Munich, Germany, 21-25 may, 2007. (to appear)

Fabien Romeo, Cyril Ballagny, Franck Barbier, Fabien Romeo, Cyril Ballagny, Franck Barbier, PauWare : un modèle de composant basé étatPauWare : un modèle de composant basé état, , Actes des Journées Composants, Actes des Journées Composants, Canet en Roussillon, France, 4-6 octobre, pp. 1-10, 2006. Canet en Roussillon, France, 4-6 octobre, pp. 1-10, 2006.

Code available atCode available at http://www.pauware.com http://www.pauware.com http://www.univ-pau.fr/~fromeo/wmxhttp://www.univ-pau.fr/~fromeo/wmx

« Power is not a means, it is an end. » — George Orwell, Nineteen Eighty-Four

[PauWare]

Page 48: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 48

DemoDemo

Wireless Components(J2ME)

Management Communication(WMA) Management Console

(JMX)

Page 49: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 49

Librairie PauWareLibrairie PauWare

public void f_c() throws Statechart_exception {

_Programmable_thermostat.fires(_Ambient_temperature_displaying,_Ambient_temperature_displaying);

_Programmable_thermostat.fires(_Target_temperature_displaying,_Target_temperature_displaying,true,this,"switch_mode");

_Programmable_thermostat.fires(_Program_target_temperature_refreshing,_Program_target_temperature_refreshing,true,this,"switch_mode");

_Programmable_thermostat.run_to_completion();

}

UML-2 UML-2 run-to-completionrun-to-completion model execution modemodel execution mode

EventEvent State-based State-based programming supportprogramming support

Page 50: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 50

Exécution de modèlesExécution de modèles

Page 51: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 51

DemoDemo

off/^programmable thermostat.season switch

turned off

Is cool

Is heat

Is on

cool

heatIs off

cool

heat

Season switch

Is on

Is auto

on/^programmable thermostat.fan switch turned

on

Fan switch

auto

 

Page 52: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 52

Conception des composantsConception des composants

Exemple des UML 2.0 ComponentsExemple des UML 2.0 Components

(source : UML2.0 Superstructure)

Page 53: Wireless Software Components Design for Management with PauWare and WMX

[email protected] www.univ-pau.fr/~fromeo 53

Un composant compositeUn composant composite

(source : UML2.0 Superstructure)