230 likes | 245 Views
Service-Oriented Software Architecture for Sensor Networks. Jan Blumenthal University of Rostock 4. IuK Tage Rostock Rostock, 20 th June 2003. Outline. Introduction to sensor networks Requirements Software Engineering Approach Conclusion. PC. Picoradio (UCB). Sensor, Actuator.
E N D
Service-Oriented Software Architecture for Sensor Networks Jan Blumenthal University of Rostock 4. IuK Tage Rostock Rostock, 20th June 2003
Outline • Introduction to sensor networks • Requirements • Software Engineering • Approach • Conclusion
PC Picoradio (UCB) Sensor,Actuator Battery WINS (UCLA) HF Processor Blue-Node (UoR) Smart Dust (UCB) Piece of Silicon Evolution of sensor nodes
Coming up sensor nodes Characteristics of Sensor Nodes • Limited capacity of • Battery (Lifetime: days – 10 years) • Processing capabilities • Transmission range (5…20 meters) • Data rates: Bit/s … KB/s • Transmission methods: • Bluetooth • ZigBee • nanoNET • One specific application • Price: some cents
Characteristics of Sensor Networks Properties: • Wireless sensor nodes connect together autonomously • Distributed organization • Contain one or more data sinks • Huge number of nodes to compensate transmission range (density: 0.1 - 20 nodes/m2) • Nodes may move around Tasks: • Cooperative data acquisition: • Cooperative data collection and preprocessing • Running distributed applications regionally • Forwarding of results to higher application levels • Adaptive reactions on environment modifications • Network has to behave robustly and fault-tolerant to: • Failure on single nodes • Transmission errors and distortion through obstacles • Intrusion and jamming
Stress Monitoring Protecting flood dam with sandbags Sensor Node Measurements in Fluids Intra Corporal Measurements Applications
Requirements of Sensor Networks • Self-Organization • Ad hoc network formation • Autonomous connection establishment • Network Maintenance • Addressing of nodes • Routing facilities • Compensation of network failures • Cooperative Processing • Context awareness • Location positioning and location awareness • Preprocessing of collected raw data • Security Mechanisms • Energy Optimizations
Context Awareness Context Awareness: Adapts the behavior of the node to the current environment • Infrastructure context • Refers to the infrastructure around the node • Example: Perception of bandwidth and reliability • Domain context • Refers to the current environment of the node • Example: Knowledge of next data sink in the network Data sink node Simple node Transmission range
Cooperative Algorithms • Reduction of data by preprocessing and aggregation • Minimization of data stream to data sinks Example: Positioning • Transfer to • Measurement the fieldstrengths of and • Triangulation / multilateration • Transfer of determined positions to data sink • Max. 6 transmissions • Decentralized positioning
Network Maintenance • Attribute based addressing • Assignment of data to location of data mining • Location awareness necessary • ID based addressing unfavorable • Random node distribution • Routes become obsolete quickly due to mobility • Example: Temperature at location (x, y) ? • Cooperative network behavior • Data aggregation • Address resolution / location awareness • Adaptive routing strategy depends on mobility of nodes • Communication reduction / avoidance • Connectionless transmission • Prevent network traffic through data aggregation • Event based communication in contrast to request / reply • Polling avoidance
LAN Physical Physical Services • Discovering and using services • Cascading of services without previous knowledge of each other Definition: Little program accessed by standardized interfaces over the network. Service infrastructure for remote access: Surrogate Host Surface profile service Service Proxy Surface profile ? Sensor C Sensor B Bluetooth Sensor A Client Request Request Reply Reply Proprietary protocol TCP/IP
Software Engineering Network Maintenance • Hides the complexity of the distributed system • Standardized API to node application • Provides access to services on remote nodes Services Cooperative Algorithms Context Awareness Hardware Abstraction Middleware Common Middleware: Goal: Same middleware on different platforms
Middleware Properties Scalable Middleware • Customization of data types during compile time • Removing of unused components Generic Middleware • Platform independent middleware leads to increased number of complex interfaces • Adaption of interfaces instead of programs Generic Middleware Non Generic Middleware void setBaudrate(int handle, int baudrate){ hardware_addr=getIOAddress(handle); hardware_addr->BTR0=baudrate;} void setBaudrate(int baudrate){ // getIOAddress(handle); BTR0=baudrate;} Valid only, if one interface present Savings: parameter delivery, function call, stack operation, return value assignment, field operation
Middleware Properties II Adaptive Middleware • Mobility and changes in infrastructure require adaptions to the software • Cluster head selection requires additional routing software • Changing measurement methods leads to new programs • Exchange and run components dynamically • Start of new services Reflective Middleware • Ability to understand and influence itself • Application layers are not affected • Inspection: Analyze behavior via logging / debugging • Adaptation: Changing behavior of internal layers. • Example: Customizing routing strategy depending on mobility To overcome all the mentioned requirements we designed a software model ! !
Definitions • Measurements and storage of data • Hardware dependant • Example: • Software driver for temperature sensor Sensor Application Node Application • Application specific parts • Middleware (routing, discovering nodes) • Contains sensor application Sensor Network Application • Describes main tasks of the entire network • Contains several node applications • Optional administration interface
Node Application No individual high level application, because: • Nodes provide services only to the network • Focus: Success of sensor network application instead of node application • Cooperative behavior of nodes Dynamic components Internal interface (generic middleware) Sensor application
Example • ARM Microcontroller • Temperature Sensor Sensor Node Model • 68HC11 µC • No Sensor • 68HC11 Microcontroller • Pressure Sensor
Sensor Network Application • Middleware and Operating System are compiled and optimized to each hardware • Sensor Network Application • Composition of all node services • Optional administration terminal to manage the entire network boot, logging systemwide interfaces customized node‘s software different node hardware
Sensor Network Design • Create hardware-optimized software • components (driver, operating system) • Create hardware-independent software • components (middleware, services) Components • Combining of predefined components • Source code generation • Removing unused components • Optimization of interfaces • Optimization to node‘s hardware Design & Edit Resource Hardware driven Compile/Link • Distribution of nodes in different • environments Distribute • Monitoring the execution • Creation of logfiles Execute/Administrate Monitoring Optimization Evaluation • Evaluation of logfiles Development Studio Changes to common design methods.
Conclusion • New challenges of software development in sensor networks • Optimization of node‘s software based on • Interface design • Adaptive and reflective middleware • Design of service-oriented middleware in sensor networks • Future work • Realization of presented software concept • Development studio
Thank you Any questions ?
Our Approach • Adaption of program to the application task instead adaption of application task to the program • Adaption of interfaces to the program instead adaption of the program to the interfaces • Application-dependent customized software components instead multipurpose software on each node
Software Architecture Desktop Model Sensor Node Resource optimized • Independent applications • Standardized middleware • Standardized operating system • Example: Jini Application Application Middleware Middleware Operating System Application Specific OS Modules Hardware Hardware • Independent applications • Standardized middleware • Standardized interfaces • Unused components removed • No independent applications • Customized middleware • Proprietary interfaces • Optimized driver software Not optimized (Partly) optimized modules