Marionette: Using RPC for Interactive Debugging of Wireless Embedded Networks Kamin Whitehouse, Gilman Tolle, Jay Taneja, Cory Sharp, Sukun Kim, Jaein.

Slides:



Advertisements
Similar presentations
Nucleus Network Management System Gilman Tolle UC Berkeley.
Advertisements

RPC Robert Grimm New York University Remote Procedure Calls.
Remote Procedure Call Design issues Implementation RPC programming
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM B. Bershad, S. Savage, P. Pardyak, E. G. Sirer, D. Becker, M. Fiuczynski, C. Chambers,
UNIT-IV Computer Network Network Layer. Network Layer Prepared by - ROHIT KOSHTA In the seven-layer OSI model of computer networking, the network layer.
Fast Communication Firefly RPC Lightweight RPC  CS 614  Tuesday March 13, 2001  Jeff Hoy.
Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Kai Cong.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat.
The road to reliable, autonomous distributed systems
Leveraging IP for Sensor Network Deployment Simon Duquennoy, Niklas Wirstrom, Nicolas Tsiftes, Adam Dunkels Swedish Institute of Computer Science Presenter.
Technical Architectures
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
G Robert Grimm New York University Lightweight RPC.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Mi-Joung choi, Hong-Taek Ju, Hyun-Jun Cha, Sook-Hyang Kim and J
Incremental Network Programming for Wireless Sensors NEST Retreat June 3 rd, 2004 Jaein Jeong UC Berkeley, EECS Introduction Background – Mechanisms of.
Node-level Representation and System Support for Network Programming Jaein Jeong.
Implementing Remote Procedure Calls Authors: Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presenter: Jim Santmyer Thanks to:
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
CS 550 Amoeba-A Distributed Operation System by Saie M Mulay.
Outcomes What is RPC? The difference between conventional procedure call and RPC? Understand the function of client and server stubs How many steps could.
Implementing Remote Procedure Calls an introduction to the fundamentals of RPCs, made during the advent of the technology. what is an RPC? what different.
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
.NET Mobile Application Development Remote Procedure Call.
DISTRIBUTED PROCESS IMPLEMENTAION BHAVIN KANSARA.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
1 Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska and Henry M. Levy Presented by: Karthika Kothapally.
QualNet 2014/05/ 尉遲仲涵. Outline Directory Structure QualNet Basic Message & Event QualNet simulation architecture Protocol Model Programming.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Chapter 4: Managing LAN Traffic
C Copyright © 2009, Oracle. All rights reserved. Appendix C: Service-Oriented Architectures.
1 Video traffic optimization in mobile wireless environments using adaptive applications Phd Forum UBICOMM 2008 David Esteban.
Small Devices on DBGlobe System George Samaras Chara Skouteli.
Module 7: Fundamentals of Administering Windows Server 2008.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
DCE (distributed computing environment) DCE (distributed computing environment)
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
Developments in networked embedded system technologies and programmable logic are making it possible to develop new, highly flexible data acquisition system.
Implementing Remote Procedure Calls Authored by Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presented by Lars Larsson.
Computer Emergency Notification System (CENS)
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
802.11n Sniffer Design Overview Vladislav Mordohovich Igor Shtarev Luba Brouk.
Operating Systems Lecture November 2015© Copyright Virtual University of Pakistan 2 Agenda for Today Review of previous lecture Hardware (I/O, memory,
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
1 Developing Application in Distributed Computing Environment (DCE)
Xiong Junjie Node-level debugging based on finite state machine in wireless sensor networks.
Remote Procedure Call RPC
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Centroute, Tenet and EmStar: Development and Integration Karen Chandler Centre for Embedded Network Systems University of California, Los Angeles.
Web Services An Introduction Copyright © Curt Hill.
Java – in context Main Features From Sun Microsystems ‘White Paper’
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
Active Message Application: CONNECT Presented by Xiaozhou David Zhu Oommen Regi July 6, 2001.
1 Marionette: Using RPC for Development and Debugging of WSNs Kamin Whitehouse Joint with: Gilman Tolle, Jay Taneja, Cory Sharp, Sukun Kim, Jaein Jeong,
1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Computer Science Lecture 4, page 1 CS677: Distributed OS Last Class: RPCs RPCs make distributed computations look like local computations Issues: –Parameter.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Self Healing and Dynamic Construction Framework:
Writing simple Java Web Services using Eclipse
Net 431 D: ADVANCED COMPUTER NETWORKS
Remote Procedure Call Hank Levy 1.
Remote Procedure Call Hank Levy 1.
Remote Procedure Call Hank Levy 1.
Last Class: Communication in Distributed Systems
Presentation transcript:

Marionette: Using RPC for Interactive Debugging of Wireless Embedded Networks Kamin Whitehouse, Gilman Tolle, Jay Taneja, Cory Sharp, Sukun Kim, Jaein Jeong, Jonathan Hui, Prabal Dutta, and David Culler. Presentation by Sam Oates

Introduction  Sensor network code generally written as “batch programs”  No runtime visibility or control  Significant amount of code required to implement any remote reads/writes of variables or RPC functionality

Introduction  Implications: Debugging is extremely difficult if one can’t use a simulation tool No easy way to observe or change node attributes No generic way to re-task network Adding any of the above functionality is doable but requires a significant amount of coding by the programmer for each case

Introduction

 Previous solutions: Software to facilitate messaging between the network and a PC  DiagMsg/MessageCenter (Vanderbilt)  MIG (comes with nesC compiler) Software to facilitate accessing variables and functions  Config and Command tools (in TinyOS repository) All of these still require user definition of a packet formats and message handlers for each case

Introduction  Previous solutions (cont’d): SNMS  Allows a user to “export a set of node ‘attributes’ which can be read or written by name using a Java client tool.  Drawback: programmer still must write new code for each attribute that will be remotely accessible

Introduction  Goals for Marionette: Allow reads and writes to any variables in any module from a PC RPC functionality Require no extra code from user in node programs Provide object-oriented interface to nodes Minimize node-side overhead

Functionality  Developing the node-level code The only change required in the node modules is the marking of functions and interfaces to be made remotely accessible with At compile time, user enables Marionette scripts Must be statically compiled

Functionality  Interacting with the network: Open the Marionette python terminal A single “app” object provides the following fields:  All enumerations as well as struct, type and message definitions  Every node module

Functionality  Interacting with the network (cont’d): Each node module provides fields for  Every heap variable Reads and writes provided by peek() and poke() member functions  Every function that was marked with By default, calling a module function sends the request to all nodes and an array is returned An optional address parameter allows specific nodes to be targeted

Implementation  Implementation of the system: Principle of fat client/thin server Peek() and poke()  Heap variable reads and writes ERPC  “Embedded RPC” PyTOS  Python interface on the PC Drip and Drain  Communication to and from nodes

Fat client, thin server architecture  Want to do as much work as possible on the PC  All information needed for the PC client is exported to an XML file A compressed version is stored on the node  Requires less than 20kB  Avoids issues with different versions of software.  Allows any PC with the client application to work with the network The file includes  The symbol table  RPC function information to eliminate the need at runtime for function and function parameter lookup

Peek() and Poke()  The name, address and type of every variable is stored in the XML file Allows client (the PC) to handle all casting, pointer dereferencing, array indexing and conversion to and from the network data types  No protection provided between node modules or between nodes and the PC  Provides ability to read and write to memory addresses  This module uses only 13 bytes of RAM and 200 bytes of storage on the node

Embedded RPC(ERPC)  Puts as much overhead as possible on the client side  All data is sent using the native format of the server (i.e. the node) Requires client to be able to interpret the data types of the node CPU Removes overhead from the node side by shifting it to the PC  RPC interface is parsed from the source code and used to make an ERPC server stub that is linked with the application during compilation  Client side gets RPC interface entirely from the XML file Lets clients work with different networks without recompiling

ERPC cont’d:  RPC response can be disabled to reduce the overhead involved with sending a request  No queuing or threading of requests  Requires roughly 1KB memory plus 100 bytes for each registered function  Compared to LRPC (Lightweight RPC): LRPC designed to reduce cost of RPC over security boundaries on one machine ERPC designed to minimize cost between machines but without protection barriers

PyTOS  A python library providing an object-oriented interface to a Marionette network  Based on a “parameterizable type system” that generates the “app” object from the XML file created at compile-time  Creates python types that are identical to the native types on the nodes  Provides type-checking  Structs and arrays have the same byte format as they do onboard the nodes  Handles serialization and deserialization for communication with the network

Drip and Drain  Routing protocols used for multi-hop messaging (simple broadcasting is used for one-hop) Both are designed to minimize the memory and computation resources used by each node  Drip PC to network protocol that uses flooding “Epidemic Protocol” Chosen for reliability with relatively low overhead  Drain Used for node to PC communication Builds a spanning tree that must be manually refreshed

Analysis  Difficult to quantify benefits  Authors showed that Marionette used significantly less code than hand-coding the functionality  The most significant benefit, however, is the generic and simple means that it provides to view and control a deployed network from a PC basestation.

Example: Surge Traffic Monitoring  Measuring difference between packets transmitted by nodes at the root and at the leaves of the tree in the Surge application Each node keeps “forwarded packets” state variable Every 60 seconds, PC queries all nodes for the number of packets they forwarded and plots the data

Surge Traffic Monitoring (cont’d)

Example: Stress Testing a tree This script checks every minute to see how many messages each node forwards. Once one reaches 50, it “kills” that node and resets the count on each node to zero.

Limitations  Requires static compilation and burning  Drip and Drain protocols Require a lot of packets, which may interfere with the underlying software being debugged Are not robust  No implementation of breakpoints, stack traces, watchpoints and so forth  Current version can only access variables during nesC’s “task context.”  No security provided