Architecture 4 Wireless Sensor Networks
-
Upload
ivano-malavolta -
Category
Technology
-
view
1.460 -
download
2
description
Transcript of Architecture 4 Wireless Sensor Networks
![Page 1: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/1.jpg)
Università degli Studi dell’Aquila
Ivano Malavolta
DISIM Department, University of L’Aquila [email protected]
![Page 2: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/2.jpg)
The material in these slides may be freely reproduced and distributed, partially or totally, as far as an explicit reference or acknowledge to the material author is preserved.
Ivano Malavolta
![Page 3: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/3.jpg)
Problem Definition
A4WSN
Software Architecture
Nodes Configuration
Physical Environment
Keeping Models Integrated
Exercise
![Page 4: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/4.jpg)
WSNs consist of spatially distributed sensors that cooperate to accomplish some tasks.
Sensors are:
• small
• battery-powered
• with limited processing capabilities
• with limited memory
They can be easily deployed to monitor different environmental parameters such as temperature, movement, sound and pollution.
![Page 5: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/5.jpg)
Sensors can be distributed on roads, vehicles, hospitals, buildings, people and enable different applications such as medical services, battlefield operations, crisis response, disaster relief and environmental monitoring.
![Page 6: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/6.jpg)
From the SESENA 2012CfP:
“the development of WSN software is still carried out in a rather primitive fashion, by building software directly atop the OS and by relying on an individuals hard-earned programming skills”
“WSN developers must face not only the functional application requirements but also a number of challenging, non-functional requirements and constraints resulting from scarce resources”
Abstraction
Separation of concerns
Model-based Analysis
![Page 7: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/7.jpg)
by masking the complexity of low-level, hardware details
by clearly separating SW, HW, and deployment aspects of a WSN
by facilitating the analysis of both functional and non-functional properties
Abstraction
Separation of concerns
Model-based Analysis
![Page 8: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/8.jpg)
Abstraction Separation of
concerns Model-Based
Analysis
in this lecture we focus on this part
![Page 9: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/9.jpg)
![Page 10: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/10.jpg)
Problem Definition
A4WSN
Software Architecture
Nodes Configuration
Physical Environment
Keeping Models Integrated
Exercise
![Page 11: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/11.jpg)
It is composed of 3 modeling languages
Software Architecture
Details about WSN nodes
Physical environment
![Page 12: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/12.jpg)
Structure
components
ports
application data
messages
Behaviour
events
conditions
actions
![Page 13: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/13.jpg)
Component. A unit of computation with internal state and well defined interface. Each component can contain a behaviour specification and a set of application data.
MessagePort. Specifies the interaction point between a component and its external environment.
Incoming messages arrive at InMessagePorts
Outgoing messages are sent via OutMessagePorts
Connection. It is a unidirectional communication channel between two message ports.
![Page 14: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/14.jpg)
Application Data. Local variables declared in the scope of the component. It is manipulated by actions defined in the behaviour of the component.
There are two types of application data:
• Primitive
• integer, string, real, boolean
• Structured
• Enumeration
• Structure
• Array*
• Map*
* not supported in the current version of the tool
![Page 15: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/15.jpg)
* not supported in the current version of the tool
threshold : integer = 30
temperature : real = 15,5
message : string = "hello“
found : boolean = false
status : enum{ON, OFF} = status.OFF
gender : enum{MALE, FEMALE}
person : struct{name: string, sex: gender} =
person("John", gender.MALE)
readings : array{integer} = [12, 34, 56]
rooms : map = {"key1": 5, "key2": status.OFF}
![Page 16: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/16.jpg)
Operations on Application Data:
• arithmetic
• + - / *
• boolean
• AND, OR, NOT
• relational
• > >= < <= !=
Application data reference
Structured elements reference
Assignment is done via a dedicated Action in
the behaviour
threshold + 30
person.name
readings[1]
rooms[“key1”]
![Page 17: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/17.jpg)
Each Component can contain a description of its behaviour
The behaviour is based on:
1. Events-conditions-actions
2. Modes
![Page 18: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/18.jpg)
Each Component can perform actions:
Sense gets some data from a sensor and stores the read value into a specific application data
ex: get current temperature
Actuate activates and actuator, optionally an application data can be used to pass a parameter to the actuator
ex: actuate a water sprinkler
![Page 19: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/19.jpg)
SendMessage sends a message via a specific message port
Optionally, the payload of the message can be specified by passing an expression as parameter
Types of available messages:
Unicast to a single receiver
Multicast to a set of receivers
Broadcast to every node containing the target component
![Page 20: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/20.jpg)
StartTimer starts a timer which can be triggered later
cyclic: true if the timer must be periodic
delay: the time (in millisecs) that must pass before the first activation
period: the period of the timer (in millisecs), if it is a cyclic one
StopTimer stops a previously started timer
StoreData puts some expression into an application
data of the component
![Page 21: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/21.jpg)
CallSyncService calls an external service (ex. web service)
data: optional, it is the parameters that can be passed to the service
dataRecipient: the application data which will be filled with the result
CallAsyncService calls an external service, the result of the call will be available via a dedicated event
data: optional, it is the parameters that can be passed to the service
![Page 22: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/22.jpg)
Fork splits the incoming behavioural flow into a set of parallel flows
Join merges incoming behavioural flows and syncs them into a single outgoing flow
Choice, depending on the value of the conditions in its outgoing links, one and only one control flow is executed
![Page 23: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/23.jpg)
ReceiveMessage is triggered when the component receives a message
dataRecipient: the application data which will contain the payload
fromMessagePort: the port that received the message
TimerFired is triggered when a previously started timer is activated
![Page 24: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/24.jpg)
Each component can react to specific kinds of events:
ServiceCallback is triggered when the result of an AsyncServiceCall is available
dataRecipient: the application data which will be filled with the result
ServiceCall is triggered when some king of external service interacts with the component
dataRecipient: the application data which will contain the parameters of the call
![Page 25: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/25.jpg)
Behavioural flow is specified by means of Links
A link can exist:
1. from an event E to an action A: in this case after the event E is triggered, A will be executed
2. from an action A1 to another action A2: in this case, A2 is executed immediately after A1
Conditions are boolean expressions (optionally) associated to links
The execution flow goes through a link only if its condition evaluates to true
![Page 26: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/26.jpg)
A mode is a specific status of the component
ex. sleeping mode, energy saving mode, etc.
Initial Mode is the first mode which is active when the component starts up
At any given time, one and only one mode can be active in a component
The component reacts only to those events which are defined within its currently active mode
![Page 27: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/27.jpg)
A component can switch from a mode to another by means of mode transitions
Mode transitions link together modes by passing...
from a special kind of action called ExitMode
to a special kind of event called EnterMode
in this way actions and events can be linked to modes entry and exit points, creating a continuous flow among modes
![Page 28: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/28.jpg)
Problem Definition
A4WSN
Software Architecture
Nodes Configuration
Physical Environment
Keeping Models Integrated
Exercise
![Page 29: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/29.jpg)
Types of nodes
OS
MAC protocol
routing protocol
installed sensors
installed actuators
energy sources
communication devices
![Page 30: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/30.jpg)
A nodes specification is composed of a set of WSN node types
Node Attributes:
• OS
• ex. TinyOS, Contiki, Mantis, LiteOS, ...
• macProtocol
• ex. T-MAC, S-MAC, WiseMAC, SIFT, ...
• routingProtocol
• ex. GEAR, LEACH, HEED, ...
![Page 31: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/31.jpg)
Node
Energy Source Energy Source Energy Sources
Sensors Sensors Sensors
Actuators Actuators Actuators
Microcontroller Memory Memory Additional
memories
RF RF RFs
CPU ADC
DAC Timer
RF
CPU CPUs
Memory Program memory
Storage memory
![Page 32: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/32.jpg)
The following elements can be attached to a WSN node:
• energy sources (one or more)
• continuous
• degradable (initialStoredEnergy in Joule)
• harvested (initialStoredEnergy in Joule, harvestingEnergyRate in Joule)
• sensors (zero or more)
energyConsumptionPerSample (mJ), idleEnergyConsumption (mJ)
ex. light sensor, temperature sensor, radio sensor, ...
• actuators (zero or more)
energyConsumptionPerSample (mJ), idleEnergyConsumption (mJ)
ex. water sprinkler, leds, lights, heating system switch, ...
![Page 33: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/33.jpg)
A node can contain the following elements:
• RF Communication Device (zero or more)
represents the radio device to communicate with other nodes
Attributes:
float transmissionPower in dBm
float receiveSensitivity in dBm
float[1] frequency in MHz
float antennaGain in dBd
String modulation // name of the modulation method
String encryption // name of the enc. algorithm
![Page 34: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/34.jpg)
• Memories (one or more)
represents external storage memories of the node
Attributes:
float averageReadingEnergyConsumption in mW
float averageWritingEnergyConsumption in mW
int[1] size in Kb
![Page 35: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/35.jpg)
Microcontroller (one)
represents the entity which performs tasks, processes data and controls the functionality of other components in the sensor node
Microcontroller
CPU ADC
DAC Timer
RF
CPU CPU
Memory Program memory
1_* 0_*
0_*
0_1
1_*
1_1 1_1
![Page 36: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/36.jpg)
• ADC (zero or more)
Attributes:
int resolution // # discrete values it can produce
int bits // 8 bits, 16 bits
int channels // #channels
• DAC (zero or more)
Attributes:
int resolution // # discrete values it can produce
int bits // 8 bits, 16 bits
![Page 37: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/37.jpg)
• Processor (one or more)
Attributes:
int[1] frequency in MHz
float[1] cpi // cycles per instruction
• Timer (one or more)
Attributes:
int bits // 8 bits, 16 bits
• RF Communication Device (0_1) – internal radio transceiver
• Memory (one) – same role as RAM memory in PCs
• Program Memory (one) – stores the program running on the node
![Page 38: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/38.jpg)
A Node can specify a set of Power Modes
Each power mode identifies a set of node elements (such as memory, DAC, RF comm. device, etc.) and distinguishes between which elements are active and which elements are disabled
Mode A Mode B
![Page 39: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/39.jpg)
Problem Definition
A4WSN
Software Architecture
Nodes Configuration
Physical Environment
Keeping Models Integrated
Example
![Page 40: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/40.jpg)
A 2D space with obstacles
freely positioned
with their own shape
with attenuation coefficients
![Page 41: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/41.jpg)
The Environment represents the overall area in the 2D space in which the WSN will be deployed
Attributes:
string name // the name of the area
float [1] width // the width of the bounding box of the area
float [1] height // the height of the bounding box of the area
imagePath // the image used as background in the editor
The environment contains a set of Obstacles and Areas
![Page 42: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/42.jpg)
An Obstacle specifies any kind of relevant element which can be placed in the environment
Attributes:
string material // the name of the material of the obstacle
(ex. concrete wall, wooden door, glass, ...)
float [1] attenuation // the “thickness” of the obstacle
// it ranges from 0 to 1
Coordinate [2_*] shell // the perimeter of the obstacle in the 2D space
![Page 43: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/43.jpg)
An area is a portion of physical environment in which a type of node can be deployed
An area has a single property:
Shape: the perimeter of the area defined as a set of coordinates
A3
A1 A2
![Page 44: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/44.jpg)
Problem Definition
A4WSN
Software Architecture
Nodes Configuration
Physical Environment
Keeping Models Integrated
Example
![Page 45: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/45.jpg)
Two special models link together software components, nodes and environment specifications
![Page 46: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/46.jpg)
MAPML models semantically represent the classical notion of deployment of software components onto HW nodes
Separation of Concerns
It helps in clearly separating the application layer of a WSN from all the other lower levels
this aspect is new in the WSN domain
Architects can focus on the application from a functional point of view in SAML, and only later they will focus on low-level aspects
![Page 47: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/47.jpg)
Weaves together an SAML model and a NODEML model
It defines how components are deployed into each configured nodes
Types of link:
• Mapping maps a component to its corresponding node configuration
• Sensor Mapping maps a Sense action in a component to a Sensor in a node
• Actuator Mapping similar to the Sensor Mapping, but for actuators
• Communication Device Mapping maps a Message Port in a component to an RFCommunicationDevice in a node
• Mode Mapping maps a Mode in a component to a Power Mode in a node
![Page 48: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/48.jpg)
Weaves together a NODEML model and an ENVML model
It defines how node configurations are
1. instantiated, and
2. virtually deployed in the physical environment
A DEPML model presents a single type of link: Deployment Link
A deployment link considers a node configuration in the NODEML model, and assigns it to an area within the physical environment
![Page 49: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/49.jpg)
Each node type can be instantiated ”n” times within a specific area
this allow architects to focus on generic components and node types in SAML and NODEML, while in DEPML we consider the final shape of the network
![Page 50: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/50.jpg)
Nodes can be distributed in three different ways:
Random
each node is placed
randomly within the area
Grid
nodes are placed on a
grid with a certain
number of rows and
columns
Custom
each node can be manually
placed within the area
BS
N1 N2
N3
N1
![Page 51: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/51.jpg)
1. its name
2. the coordinates of its position
A nodes name pattern can be given to an area independently from the distribution type
they are used to have a way to refer to the names used as targets of Send
Message actions in SAML models
Available patterns:
name<number>, name<Letter>, name
BS
N1 N2
N3
N1
In custom distribution, each node can be individually specified in the area by:
![Page 52: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/52.jpg)
Graphical and Tree-based editor for SAML & NODEML
bird view
graphical editor
properties
palette
models
tree-based editor
![Page 53: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/53.jpg)
ENVML: Graphical editor with background image
MAPML: Tree-based editor
DEPML: Tree-based editor
![Page 54: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/54.jpg)
languages refinement
code generators
analysis tools
![Page 55: Architecture 4 Wireless Sensor Networks](https://reader034.fdocuments.us/reader034/viewer/2022042700/554af304b4c90559058b498c/html5/thumbnails/55.jpg)
Model a WSN that allows the personnel of an hospital to monitor patients’ vital sign data with the help of pulse-oximeters.
The monitoring system consists of two types of nodes:
• a monitoring station
• ten oximeter nodes
Those nodes form a star-network.
Each pulse-oximeter monitors the patient continuously and a measurement is sent to the monitoring station every 3 seconds.
In case the oximeter reads a value other than a defined threshold, an alert message is sent to the monitoring system, and the system goes into a warning mode in which sensor readings are sent to the monitoring station more frequently (i.e., once every 200 milliseconds), hence facilitating continuous monitoring of patients and allowing real-time responses in case of emergency conditions.