Award Abstract # 0845761
CAREER: MacroLab: a Comprehensive Macroprogramming System for Cyber-physical Systems

NSF Org: CNS
Division Of Computer and Network Systems
Recipient: RECTOR & VISITORS OF THE UNIVERSITY OF VIRGINIA
Initial Amendment Date: February 5, 2009
Latest Amendment Date: May 28, 2013
Award Number: 0845761
Award Instrument: Continuing Grant
Program Manager: Marilyn McClure
mmcclure@nsf.gov
 (703)292-5197
CNS
 Division Of Computer and Network Systems
CSE
 Direct For Computer & Info Scie & Enginr
Start Date: February 15, 2009
End Date: January 31, 2015 (Estimated)
Total Intended Award Amount: $410,000.00
Total Awarded Amount to Date: $431,643.00
Funds Obligated to Date: FY 2009 = $75,845.00
FY 2010 = $100,209.00

FY 2011 = $81,829.00

FY 2012 = $85,169.00

FY 2013 = $88,591.00
History of Investigator:
  • Cameron (Kamin) Whitehouse (Principal Investigator)
    whitehouse@virginia.edu
Recipient Sponsored Research Office: University of Virginia Main Campus
1001 EMMET ST N
CHARLOTTESVILLE
VA  US  22903-4833
(434)924-4270
Sponsor Congressional District: 05
Primary Place of Performance: University of Virginia Main Campus
1001 EMMET ST N
CHARLOTTESVILLE
VA  US  22903-4833
Primary Place of Performance
Congressional District:
05
Unique Entity Identifier (UEI): JJG6HU8PA4S5
Parent UEI:
NSF Program(s): ADVANCED NET INFRA & RSCH,
CSR-Computer Systems Research
Primary Program Source: 01000910DB NSF RESEARCH & RELATED ACTIVIT
01001011DB NSF RESEARCH & RELATED ACTIVIT

01001112DB NSF RESEARCH & RELATED ACTIVIT

01001213DB NSF RESEARCH & RELATED ACTIVIT

01001314DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 1045, 1187, 7354, 9178, 9216, 9218, 9251, HPCC
Program Element Code(s): 409000, 735400
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Cyber-physical systems (CPSs) allow computer systems to monitor and control the physical world in a new way that could revolutionize many areas of science and engineering. However, they are often too complex for non-specialists to use. The aim of this work is to develop new technology to manage this complexity, enabling scientists and engineers to use CPSs just like other tools and instruments. This research takes a comprehensive approach to macroprogramming -- the task of programming an entire network of devices as a single, programmable substrate. This research exploits global, network-wide information about a CPS provided by a macroprogram to improve traditional software engineering techniques such as testing, debugging, analysis, and optimization. New techniques are being developed that use global information to optimize system performance, automatically generate test cases, and reduce the state space for analysis. This work is developing new programming abstractions that allow the separation of the application logic from quality-of-service requirements and hardware requirements, improving code portability and reuse. This research will produce a comprehensive development environment for CPSs called MacroLab. The new tools developed will greatly simplify the process of their programming and make them more accessible to non-experts. By taking a holistic view of the network and its software, MacroLab will manage a range of complex, interacting issues that would be extremely difficult to manage by hand. MacroLab will be tested pilot studies, including environmental monitoring. A graduate CPS course will be developed. MacroLab will be used for course experiments and in senior capstone projects.

PROJECT OUTCOMES REPORT

Disclaimer

This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.

As sensor technology increasingly pervades the physical world, computer systems are monitor and control the physical world in a new way that could revolutionize many areas of science and engineering. Wireless, battery-powered devices offer the promise of anywhere, anytime information that could improve transportation systems, factories, buildings, and other aspects of the human environment. However, these sensing systems are often too complex for non-specialists to design, build, and deploy and software is one of the main sources of complexity: ubiquitous sensing systems combine aspects of the most challenging computer systems, including distributed systems, embedded systems, wireless systems, and low-power systems.

The aim of this project was to develop new technology to easily manage this complexity, enabling scientists and engineers to use wireless sensing systems just like other tools and instruments. Specifically, this research has taken a comprehensive approach to a new technology called “macroprogramming” -- the task of programming an entire network of devices as a single, programmable substrate.

During the project, we created new programming abstractions that allow the separation of the application logic from quality-of-service requirements and hardware requirements. We applied these techniques first to stationary sensing networks and demonstrated that the same code could be executed efficiently on networks of many different sizes and topologies without modification. Thus, this work improves code portability and reuse for wireless embedded systems. We then extended these techniques to mobile sensing networks, also called “drone sensor networks”, and showed that the same code could execute efficiently even as the network dynamically changed shape, size, and organization. Again, this result demonstrates improved code portability and reuse than state of the art techniques.

In addition to improved programming abstractions, we developed new techniques that use global information a macroprogram to optimize system performance, automatically generate test cases, and reduce the state space for analysis. This research exploits global, network-wide information about a sensing system provided by a macroprogram to improve traditional software engineering techniques such as testing, debugging, analysis, and optimization. The artifacts of this research was combined into a comprehensive development environment for CPSs called MacroLab. The new tools developed will greatly simplify the process of programming both stationary and mobile sensing systems and make them more accessible to non-experts. By taking a holistic view of the network and its software, MacroLab can manage a range of complex, interacting issues that would be extremely difficult to manage by hand.

This project resulted in over a dozen peer-reviewed publications and over one-hundred fifty citations, supported the graduate programs of three PhD students, and supported publications from two undergraduate researchers, and supported one international collaboration. The research projects are documented online and the publications have been made available to the general public and to other researchers. 

 

 


Last Modified: 07/18/2015
Modified by: Cameron (Kamin) D Whitehouse

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page