Writing Programs that Work Nupur Kothari University of Southern California Roy Shea University of California, Los Angeles.

Slides:



Advertisements
Similar presentations
Digital Fountains: Applications and Related Issues Michael Mitzenmacher.
Advertisements

Reliable and Efficient Programming Abstractions for Sensor Networks Nupur Kothari, Ramki Gummadi (USC), Todd Millstein (UCLA) and Ramesh Govindan (USC)
Enabling Speculative Parallelization via Merge Semantics in STMs Kaushik Ravichandran Santosh Pande College.
Programming Paradigms and languages
8. Code Generation. Generate executable code for a target machine that is a faithful representation of the semantics of the source code Depends not only.
Berkeley dsn declarative sensor networks problem David Chu, Lucian Popa, Arsalan Tavakoli, Joe Hellerstein approach related dsn architecture status  B.
Software Architecture Frameworks A Family of Implementations Nikunj Mehta Computer Science Department University of Southern California Los Angeles, CA.
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
Decentralized Reactive Clustering in Sensor Networks Yingyue Xu April 26, 2015.
Sensor Network Platforms and Tools
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
MPICH-V: Fault Tolerant MPI Rachit Chawla. Outline  Introduction  Objectives  Architecture  Performance  Conclusion.
Random Testing of Interrupt-Driven Software John Regehr University of Utah.
A State-based Programming Model and System for Wireless Sensor Networks Reporter : Zhi-Yuan Yang 2010/5/24.
University of Kansas Construction & Integration of Distributed Systems Jerry James Oct. 30, 2000.
Language Issues of Compiling Ada to Hardware Michael Ward Real-Time Systems Group University of York
Case Study: The E1 Distributed Operating System Chris Krentz 3/20/2007.
.NET Mobile Application Development Remote Procedure Call.
Database Management Systems (DBMS)
Use of Multimedia in Engineering. Mechatronics engineering is based on the combination from three basic engineering field that is mechaninal, electronics.
Exceptions and Mistakes CSE788 John Eisenlohr. Big Question How can we improve the quality of concurrent software?
What is Concurrent Programming? Maram Bani Younes.
RUNNING PARALLEL APPLICATIONS BEYOND EP WORKLOADS IN DISTRIBUTED COMPUTING ENVIRONMENTS Zholudev Yury.
Exposure In Wireless Ad-Hoc Sensor Networks Seapahn Meguerdichian Computer Science Department University of California, Los Angeles Farinaz Koushanfar.
Hot Topics in OS Research Andy Wang COP 5611 Advanced Operating Systems.
A Distributed Framework for Correlated Data Gathering in Sensor Networks Kevin Yuen, Ben Liang, Baochun Li IEEE Transactions on Vehicular Technology 2008.
WMNL Sensors Deployment Enhancement by a Mobile Robot in Wireless Sensor Networks Ridha Soua, Leila Saidane, Pascale Minet 2010 IEEE Ninth International.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Mobile Relay Configuration in Data-Intensive Wireless Sensor Networks.
An efficient active replication scheme that tolerate failures in distributed embedded real-time systems Alain Girault, Hamoudi Kalla and Yves Sorel Pop.
Efficient Deployment Algorithms for Prolonging Network Lifetime and Ensuring Coverage in Wireless Sensor Networks Yong-hwan Kim Korea.
SafetyNet: improving the availability of shared memory multiprocessors with global checkpoint/recovery Daniel J. Sorin, Milo M. K. Martin, Mark D. Hill,
한국기술교육대학교 컴퓨터 공학 김홍연 Habitat Monitoring with Sensor Networks DKE.
Software Metrics and Reliability. Definitions According to ANSI, “ Software Reliability is defined as the probability of failure – free software operation.
Exception Handling Unit-6. Introduction An exception is a problem that arises during the execution of a program. An exception can occur for many different.
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
Errors “Computer says no..”. Types of Errors Many different types of errors new ones are being invented every day by industrious programming students..
Selection and Navigation of Mobile sensor Nodes Using a Sensor Network Atul Verma, Hemjit Sawant and Jindong Tan Department of Electrical and Computer.
Shared Memory Consistency Models. SMP systems support shared memory abstraction: all processors see the whole memory and can perform memory operations.
High-integrity Sensor Networks Mani Srivastava UCLA.
Robust Systems. Faults at James Reserve Faults on a volcano in Ecuador [WLJ + 06]
Maximizing the lifetime of WSN using VBS Yaxiong Zhao and Jie Wu Computer and Information Sciences Temple University.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Programming Sensor Networks Andrew Chien CSE291 Spring 2003 May 6, 2003.
Tolerating Communication and Processor Failures in Distributed Real-Time Systems Hamoudi Kalla, Alain Girault and Yves Sorel Grenoble, November 13, 2003.
Residual Energy Scan for Monitoring Sensor Network Yonggang Jerry Zhao,Ramesh Govindan Computer Science Department/ISI University of Southern CaliforniaLos.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie
A Load-Balanced Guiding Navigation Protocol in Wireless Sensor Networks Wen-Tsuen Chen Department of Computer Science National Tsing Hua University Po-Yu.
A Protocol for Tracking Mobile Targets using Sensor Networks H. Yang and B. Sikdar Department of Electrical, Computer and Systems Engineering Rensselaer.
1 CEG 2400 Fall 2012 Network Servers. 2 Network Servers Critical Network servers – Contain redundant components Power supplies Fans Memory CPU Hard Drives.
Cluster computing. 1.What is cluster computing? 2.Need of cluster computing. 3.Architecture 4.Applications of cluster computing 5.Advantages of cluster.
Efficient Opportunistic Sensing using Mobile Collaborative Platform MOSDEN.
RAID Technology By: Adarsha A,S 1BY08A03. Overview What is RAID Technology? What is RAID Technology? History of RAID History of RAID Techniques/Methods.
Powerpoint Templates Data Communication Muhammad Waseem Iqbal Lecture # 07 Spring-2016.
INTRODUCTION TO XSEDE. INTRODUCTION  Extreme Science and Engineering Discovery Environment (XSEDE)  “most advanced, powerful, and robust collection.
The Object-Oriented Thought Process Chapter 03
Introduction to: The Architecture of the Internet
Introduction
Introduction to: The Architecture of the Internet
Human Complexity of Software
Fault Tolerance Distributed Web-based Systems
Introduction to: The Architecture of the Internet
SUSPICIOUS ACTIVITY DETECTION
Introduction to Operating Systems
Market-based Dynamic Task Allocation in Mobile Surveillance Systems
Design Yaodong Bi.
Presentation transcript:

Writing Programs that Work Nupur Kothari University of Southern California Roy Shea University of California, Los Angeles

Introduction Sensor network deployments are getting more advanced and complicated –Images, video feeds from cameras in sensor networks Writing programs for these deployments also getting more complicated Need for new technologies that simplify programming for distributed sensing

Studying lizards at the James Reserve

Deployment at James Reserve

Programming Challenges Resource efficiency –Energy efficient communication –Memory efficiency Reliability –Data should be consistently handled –Coordination among nodes needed Failure recovery –Detect and deal with unexpected failures

The Consequence of Failure Most programmer errors ultimately result in node failures or unexpected application behavior Data may be lost, and application may crash

How to avoid these errors Current Technique Perform extensive pre- deployment testing (trial and error) and fix the errors caught Onus is on the programmer to catch all possible errors Our Proposals Use static program analysis techniques to generate warnings for code that may cause errors during execution Develop new languages to avoid some of the programmer generated errors Lighthouse Pleiades

Lighthouse: Static Analysis Lighthouse Sensor Network ProgramDisplay Potential Program Errors to Developer

Lighthouse: Static Analysis Lighthouse Sensor Network ProgramDisplay Potential Program Errors to Developer

Lighthouse: Static Analysis Lighthouse Sensor Network ProgramDisplay Potential Program Errors to Developer

Lighthouse: Static Analysis Lighthouse Analysed program is not executed Analysis is independent of execution path –Not biased by developer expectations –Find all possible errors Sensor Network ProgramDisplay Potential Program Errors to Developer

Lighthouse: Programming Challenges Addressed Resource efficiency –Energy efficient communication –Memory efficiency Reliability –Data should be consistently handled –Coordination among nodes needed Failure recovery –Detect and deal with unexpected failures

Pleiades: A new way to write programs Conventional sensor net programming Node-level program written in nesC Compiled to executable

Pleiades: A new way to write programs Central program that specifies application behavior Node-level program written in nesC Compiled to executable Compiler Runtime + Programming using Pleiades Lets the programmer focus on application semantics

Pleiades: Programming Challenges Addressed Resource efficiency –Energy efficient communication –Memory efficiency Reliability –Data should be consistently handled –Coordination among nodes needed Failure recovery –Detect and deal with unexpected failures

Conclusions Programming sensor networks is inherently hard Employing techniques developed in the Programming Languages/Compilers community to sensor network programs can significantly reduce the burden of the programmer Lighthouse: Pleiades:

Thank You!