Architecture 4 Wireless Sensor Networks
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Architecture 4 Wireless Sensor Networks

on

  • 1,218 views

Advanced Software Engineering course - Guest Lecture ...

Advanced Software Engineering course - Guest Lecture

A4WSN- Architecture 4 Wireless Sensor Networks

Here you can find the research paper presenting the concepts described in this lecture: http://goo.gl/XBB4k

This presentation has been developed in the context of the Advanced Software Engineering course at the DISIM Department of the University of L’Aquila (Italy).

http://www.di.univaq.it/malavolta

Statistics

Views

Total Views
1,218
Views on SlideShare
1,218
Embed Views
0

Actions

Likes
1
Downloads
37
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Architecture 4 Wireless Sensor Networks Presentation Transcript

  • 1. Università degli Studi dell’Aquila Ivano Malavolta DISIM Department, University of L’Aquila ivano.malavolta@univaq.it
  • 2. 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
  • 3. Problem Definition A4WSN Software Architecture Nodes Configuration Physical Environment Keeping Models Integrated Exercise
  • 4. 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.
  • 5. 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.
  • 6. From the SESENA 2012CfP: Abstraction “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” Separation of concerns Model-based Analysis
  • 7. Abstraction by masking the complexity of low-level, hardware details Separation of concerns by clearly separating SW, HW, and deployment aspects of a WSN Model-based Analysis by facilitating the analysis of both functional and nonfunctional properties
  • 8. in this lecture we focus on this part Abstraction Separation of concerns Model-Based Analysis
  • 9. Problem Definition A4WSN Software Architecture Nodes Configuration Physical Environment Keeping Models Integrated Exercise
  • 10. It is composed of 3 modeling languages Details about WSN nodes Software Architecture Physical environment
  • 11. Structure components ports application data messages Behaviour events conditions actions
  • 12. 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.
  • 13. 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
  • 14. 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} * not supported in the current version of the tool
  • 15. Operations on Application Data: • arithmetic • + - / * Assignment is done via a dedicated Action in the behaviour • boolean • AND, OR, NOT • relational • > >= < <= != threshold + 30 Application data reference Structured elements reference person.name readings[1] rooms[“key1”]
  • 16. Each Component can contain a description of its behaviour The behaviour is based on: 1. Events-conditions-actions 2. Modes
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. Problem Definition A4WSN Software Architecture Nodes Configuration Physical Environment Keeping Models Integrated Exercise
  • 28. Types of nodes OS MAC protocol routing protocol installed sensors installed actuators energy sources communication devices
  • 29. 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, ...
  • 30. Node ADC Microcontroller DAC Memory CPU CPU CPUs RF Timer Storage memory Program memory Energy Source Energy Source Energy Sources Sensors Sensors Sensors Memory Additional Memory memories RF RF RFs Actuators Actuators Actuators
  • 31. 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, ...
  • 32. 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
  • 33. • 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
  • 34. Microcontroller (one) represents the entity which performs tasks, processes data and controls the functionality of other components in the sensor node Microcontroller 1_* 0_* 0_* ADC DAC Memory 1_1 CPU CPU CPU 0_1 RF Timer 1_* Program memory 1_1
  • 35. • 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
  • 36. • 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
  • 37. 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
  • 38. Problem Definition A4WSN Software Architecture Nodes Configuration Physical Environment Keeping Models Integrated Example
  • 39. A 2D space with obstacles freely positioned with their own shape with attenuation coefficients
  • 40. 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
  • 41. 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
  • 42. 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 A1 A2 A3
  • 43. Problem Definition A4WSN Software Architecture Nodes Configuration Physical Environment Keeping Models Integrated Example
  • 44. Two special models link together software components, nodes and environment specifications
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. Nodes can be distributed in three different ways: Random Grid Custom each node is placed nodes are placed on a each node can be manually randomly within the area grid with a certain number of rows and placed within the area columns N2 N1 N1 N3 BS
  • 50. In custom distribution, each node can be individually specified in the area by: 1. its name N2 N1 N1 BS N3 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
  • 51. Graphical and Tree-based editor for SAML & NODEML tree-based editor models graphical editor bird view properties palette
  • 52. ENVML: Graphical editor with background image MAPML: Tree-based editor DEPML: Tree-based editor
  • 53. languages refinement code generators analysis tools
  • 54. 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.