Early exploring design alterna1ves of smart sensor so5ware with actors
description
Transcript of Early exploring design alterna1ves of smart sensor so5ware with actors
Early exploring design alterna1ves of smart sensor
so5ware with actors
Jean-‐Philippe Schneider, Zoé Drey, Jean-‐Christophe Le Lann
IWST 2013 – September, 10th 2013
Cabled Seafloor Observatory
Source: MeDON project (hKp://medon.info)
2
Sensors Servers
Large amount of generated data to handle
Smart Sensors
3
Sensing Data disseminaRon Processing
Smart Sensors
4
Sensing Data disseminaRon Processing
Embedded soUware
Prototyping
1. Enable to quickly design various alternaRves of architectures: – ComputaRon – CommunicaRon
2. Test the alternaRves and help to make a choice
5
Requirements
6
Test: debug facili1es
Quick modificaRons: modularity
Modularity
7
Composite structure
P1 P2 P3
Sensor 1
Seafloor
Sensor 2
SeparaRon of computaRon and communicaRon
Actor-‐based approach
8
Internal State
Behavior
MessageBox
Object
InteracRng
Concurrent
• Actors are easy to implement
• Good abstracRons for handling composiRon
Smalltalk for modularity
• Efficient integrated debug environment
Smalltalk for test
• Efficient integrated debug environment
• Extendable Debug faciliRes
Smalltalk for test
Biniou
Our framework
12
ComputaRon Actor 1
CommunicaRon Actor
ComputaRon Actor 2
Our framework
13
Agile architecture
SeparaRon of concerns
ComputaRon Actor 1
CommunicaRon Actor
ComputaRon Actor 2
Our framework
14
ComputaRon Actor 1
CommunicaRon Actor
ComputaRon Actor 2
Put Get
Data Ack
Smalltalk defineClass: #Message isPut ^false. isGet ^false. …
Our framework
15
Smalltalk defineClass: #Get superclass: #{Message} instanceVariableNames: 'consumer ‘ isGet ^true.
ComputaRon Actor 1
CommunicaRon Actor
ComputaRon Actor 2
Put Get
Data Ack
Our framework
16
message := messageQueue next. (message isGet) ifTrue: [ shouldConRnue := (self getReceived: message). ].
ComputaRon Actor 1
CommunicaRon Actor
ComputaRon Actor 2
Put Get
Data Ack
Our framework
17
readerMq := getMessage consumer. isPutReceived := false. [isPutReceived not] whileTrue: […]
ComputaRon Actor 1
CommunicaRon Actor
ComputaRon Actor 2
Put Get
Data Ack
Conclusion and Future Work
18
Agile architecture for quick design and test
Well-‐suited environment for fast prototyping
Conclusion and Future Work
19
Hardware emulaRon
ComposiRon of models of communicaRon for Sea floor
observatories