Ruling Networks with RDL: A Domain-Specific Language to Task Wireless Sensor Networks Kirsten Terfloth Institute of Mathematics and Computer Science Freie.

Slides:



Advertisements
Similar presentations
Programming Languages for End-User Personalization of Cyber-Physical Systems Presented by, Swathi Krishna Kilari.
Advertisements

Sensor Network Platforms and Tools
Impala: A Middleware System for Managing Autonomic, Parallel Sensor Systems Ting Liu and Margaret Martonosi Princeton University.
Chapter 5: Elementary Data Types Properties of types and objects –Data objects, variables and constants –Data types –Declarations –Type checking –Assignment.
OASIS Reference Model for Service Oriented Architecture 1.0
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming.
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
© C. Kemke1Reasoning - Introduction COMP 4200: Expert Systems Dr. Christel Kemke Department of Computer Science University of Manitoba.
ATSN 2009 Towards an Extensible Agent-based Middleware for Sensor Networks and RFID Systems Dirk Bade University of Hamburg, Germany.
Marakas: Decision Support Systems, 2nd Edition © 2003, Prentice-Hall Chapter Chapter 7: Expert Systems and Artificial Intelligence Decision Support.
1 A Closer Look Chapter 2. 2 Underlying Concepts of Databases and Transaction Processing.
Establishing the overall structure of a software system
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
1 University of Freiburg Computer Networks and Telematics Prof. Christian Schindelhauer Wireless Sensor Networks 13th Lecture Christian Schindelhauer.
II. Middleware for Distributed Systems
1 MATERI PENDUKUNG OPERATOR Matakuliah: M0074/PROGRAMMING II Tahun: 2005 Versi: 1/0.
C++ fundamentals.
9-Aug-15 Vocabulary. Programming Vocabulary Watch closely, you might even want to take some notes. There’s a short quiz at the end of this presentation!
On a Device Information Model for devices in oneM2M
Knowledge Mediation in the WWW based on Labelled DAGs with Attached Constraints Jutta Eusterbrock WebTechnology GmbH.
Language Evaluation Criteria
Programming Languages and Paradigms Object-Oriented Programming.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Imperative Programming
Tufts Wireless Laboratory School Of Engineering Tufts University “Network QoS Management in Cyber-Physical Systems” Nicole Ng 9/16/20151 by Feng Xia, Longhua.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Context Tailoring the DBMS –To support particular applications Beyond alphanumerical data Beyond retrieve + process –To support particular hardware New.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
PERVASIVE COMPUTING MIDDLEWARE BY SCHIELE, HANDTE, AND BECKER A Presentation by Nancy Shah.
Marc Conrad, University of Luton1 Abstract Classes – pure computer science meets pure mathematics. The Beauty of Implementing Abstract Structures.
CS542 Seminar – Sensor OS A Virtual Machine For Sensor Networks Oct. 28, 2009 Seok Kim Eugene Seo R. Muller, G. Alonso, and D. Kossmann.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
한국기술교육대학교 컴퓨터 공학 김홍연 Habitat Monitoring with Sensor Networks DKE.
A Little Language for Surveys: Constructing an Internal DSL in Ruby H. Conrad Cunningham Computer and Information Science University of Mississippi.
Concurrent Aggregates (CA) Andrew A. Chien and William J. Dally Presented by: John Lynn and Ryan Wu.
Dhanshree Nimje Smita Khartad
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
Copyright © 2010 Certification Partners, LLC -- All Rights Reserved Perl Specialist.
POLICY ENGINE Research: Design & Language IRT Lab, Columbia University.
COP4020 Programming Languages Names, Scopes, and Bindings Prof. Xin Yuan.
SPIN in Five Slides Holger Knublauch, TopQuadrant Inc. Example file:
Copyright © 2003 ProsoftTraining. All rights reserved. Perl Fundamentals.
Xiong Junjie Node-level debugging based on finite state machine in wireless sensor networks.
Introduction to OOP CPS235: Introduction.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Ewa Deelman, Virtual Metadata Catalogs: Augmenting Existing Metadata Catalogs with Semantic Representations Yolanda Gil, Varun Ratnakar,
T imed Languages for Embedded Software Ethan Jackson Advisor: Dr. Janos Szitpanovits Institute for Software Integrated Systems Vanderbilt University.
Sensor Coordination using Active Dataspaces Steven Cheung NSF NOSS PI Meeting October 18, 2004.
IHP Im Technologiepark Frankfurt (Oder) Germany IHP Im Technologiepark Frankfurt (Oder) Germany ©
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Software Architecture of Sensors. Hardware - Sensor Nodes Sensing: sensor --a transducer that converts a physical, chemical, or biological parameter into.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Programming paradigms
Databases We are particularly interested in relational databases
Context-Sensitive Analysis
The Object-Oriented Database System Manifesto
Part 3 Design What does design mean in different fields?
Knowledge Representation
Lec 3: Object-Oriented Data Modeling
Internet of Things A Process Calculus Approach
Chapter 6 Polymorphism.
Presentation transcript:

Ruling Networks with RDL: A Domain-Specific Language to Task Wireless Sensor Networks Kirsten Terfloth Institute of Mathematics and Computer Science Freie Universität Berlin, Germany RuleML October 31th, Orlando, Florida

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 2 MOTIVATION: RULES FOR WIRELESS SENSOR NETWORKS Abstraction needed for programming wireless sensor networks!  Combination of complex properties to handle – embedded devices, wireless networking, event-centric processing and distribution  Domain-Experts (Biologists, Media Designers,..) instead of Computer Scientists  Fast Prototyping instead of embedded C Rule-based programming:  Event-Condition-Action naturally fits the domain  Push model (interrupts: radio, sensors, timers)  Reactive behavior  Language tailored to domain AND operational model to the rescue!

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 3 GENERAL CONCEPT – FACTS Language is essential part of a middleware framework  Virtual machine running on the nodes to interpret rules  Memory access completely managed  System rulesets can be linked on demand to provide common WSN features

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 4 DATA ABSTRACTION: EVERYTHING IS A FACT! All data visible to a programmer is wrapped in facts  Named tuples  Timestamped for temporal ordering humidity [value = 77] role [current = „router“] role [current = „sink“] request [data = „log_data“, timespan = 20, enabled = true] aggregateAccEvents energy [level = „low“] threshold [temp = 25] threshold [acc = 100]

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 5 EVENT / CONDITION PART OF RULES Conditions: reason about state AND events  Syntax: Production rule „WHEN“  Semantics: Event-Condition-Action BUT events are not transient  Reactive rules that operate on event and state Conditions can feature  Test for existance of specific facts  Evaluation of values of fact properties (simple and range queries)  Unary expressions over both fact properties and sets of facts Evaluation of conditions is triggered upon insert/update on fact repository  Deletion of facts is not an event

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 6 CONDITION EXAMPLES I: EXISTANCE rule bootstrap 20 <- exists {newSampleRequest} IF „newSampleRequest“

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 7 CONDITION EXAMPLE II: RANGE QUERY AND CONSTRAINT CHECK IF „newSampleRequest“ AND value of property sensor == „humidity“ AND value of property reqNum > 12 AND <= 100 rule bootstrapHumidity 40 <- exists {newSampleRequest <- eval ({this sensor} == „humidity“) 12) <- eval ({this reqNum} <= 100)}

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 8 CONDITION EXAMPLE III: CONJUNCTION IF „newSampleRequest“ AND nodeID == 3 rule bootstrapIfCorrectNode 11 <- exists {newSampleReqest} <- eval ({system owner} == 3)

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 9 CONDITION EXAMPLE VI: UNARY / BINARY EXPRESSION rule bootstrapAggreagate 11 <- exists {newSampleRequest} 3) <- eval (({newSampleRequest reqNum} + 1) == 5) IF „newSampleRequest“ AND number of humidity facts in repository > 3 AND increment of the reqNum property of „newSampleReq“ == 5

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 10 ACTION PART OF A RULES Statements feature  Basic fact manipulation  Define / set / retract  Domain-specific part of the language  Share facts with remote nodes  Sample sensors  Invoke hardware functionality Execution  Atomic: When a rule triggers, all statements are executed in order  Events arising are buffered to avoid race conditions

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 11 SEMI-CONCLUSION Execution semantics  Evaluation of rules complies to a priority ordering  No binding of facts to variables: Pattern matching Language constructs so far allow for  Definition of global rulebase (node-local) ruleset forwarding fact rt_entry [next = 4, sink = 15, cost = 3] rule forwarding 100 <- exists {data_sample} <- exists {rt_entry} -> send {rt_entry next} 100 {data_sample}

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 12 HOW TO ADD MODULARITY TO ENABLE RE-USE? Rulebase size is very limited (e.g. 17 KB of ROM on MSB )  Building a cohesive rulebase for all possible rules envisioned is not an option Language features no binding options for variables All forward chaining is done by pattern matching on names and values How to provide a generic interface to match a diversity of facts?

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 13 PATTERN MATCHING AND MODULARITY ruleset forwarding fact rt_entry [next = 4, sink = 15, cost = 3] rule forwarding 100 <- exists {data_sample} <- exists {rt_entry} -> send {rt_entry next} 100 {data_sample} humidity? Switch of perspective: declarative -> functional  Understand rule to be a function  Polymorphism / function overloading is missing!

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 14 GENERIC MATCHING Extention of possible types for property values  boolean, integer, String  Add: name Extension of matching capability to enable referencing to different facts Benefit: Expression of relational references across rules and ruleset is possible

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 15 RELATIONAL REFERENCING humidity [value = 32] humidity [value = 30] temperature [value = 17] data_sample [sensor = humidity]

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 16 TRANSPARENT FORWARDING ruleset TransparentForwarding public name data_sample = „data_sample“ public name humidity = „humidity“ fact rt_entry [next = 4, sink = 15, cost = 3] rule forwarding 100 <- exists *{data_sample sensor} <- exists {rt_entry} -> send {rt_entry next} 100 *{data_sample sensor} rule sensor_humidity 99 <- exists {humidity} -> define data_sample [sensor = humidity]

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 17 REMARKS Additional language features  Named filters for frequently requested constraints  Straight-forward integration into modular rulesets  Namespaces and scoping added  Public/private visibility of names and facts

KIRSTEN TERFLOTH RDL: A DOMAIN-SPECIFIC LANGUAGE TO TASK WSNs 18 CONCLUSION RDL is a domain-specific language explicitly designed for wireless sensor networks  High level of abstraction from hardware percularities  Manual stack management  Event buffering  Interrupt handling  Forward chaining to derive next state  Declarative nature, support for modular rule bases added FACTS: middleware framework for RDL programs  