About ...
 
 

Home

About

Institutions

Collaborators

People

Publications

Presentations

Posters

Related Projects

Related Bibliography

Online Appendices

Contact

Private

Motivation

Sensor networks are becoming increasingly prevalent in large-scale system monitoring; example applications include city pollution (environmental), communication network quality of service (industrial), and automotive (transportation). The data produced by the deployed sensors is monitored for behavior of the sensed system that is consistent with nor-mal operation; the data can also be used to drive closed-loop control of the sensed system (autonomic management). The sensors can produce large volumes of data; in many contexts, it is essential to save the data for subsequent retrieval.

Creating an effective sensing system requires skills from many independent disciplines. With increasingly flexible hardware structures in embedded systems, there is particular interest in the “optimal” partitioning of functionality across the hardware/software boundary; this approach to optimizing hw/sw concerns in tandem is termed “co-design”. Inte-grated design of such systems must bridge the semantic gaps between independent disciplines while dealing with the complexities inherent in typical, sensed environments – e.g. high expectation of failure, complex statistics, poorly-understood mechanisms.

We will focus on sensor networks that consist of small, battery-powered, wireless sensors that may be tethered or mobile [1]. For such systems, we need to minimize power consumption while delivering full functionality. By contrast, most of the experience in the distributed systems community is with mains-powered, tethered systems; such systems are usually engineered to take full advantage of indirection and layering to achieve the functionality and quality attributes required by a particular distributed application, at the cost of power, computational, and/or communications resources.

In addition, maintainability issues arise for sensors deployed in hostile (to humans) environments (underwater, wide geographic distribution over a watershed, etc.). Such environments may demand that the sensors possess autonomic capabilities while awaiting maintenance, be accepting of control commands from orchestrating components, be suppor-tive to peer sensors in forwarding communications, etc.

One of the primary challenges in the design of effective sensing systems is the sheer number of dimensions (also termed “areas of concern”) that must be jointly considered and seamlessly integrated. The major dimensions of sensor systems are: application, monitoring and control, communication network, and operating system. For wireless sensor networks, the network dimension is further subdivided into communication protocols and radio capabilities.

So far, the practice has been to address each of these dimensions orthogonally (independently), with the result that any potential synergies available through co-design are not achieved. Designers are then forced to employ one-off, ad hoc, design changes to customize for scarce resource consumption (e.g. battery power) and/or critical deployment re-quirements (e.g. maintainability).

Co-design is a methodology that integrates orthogonal design methods; the goal of co-design is that the integrated design will better meet system requirements than the sum of the orthogonal designs. We intend to use co-design to inte-grate the design of the hardware system and all dimensions of the software system, across the hw/sw boundary. Hw/sw co-design is a hot topic in the embedded systems community, especially for sensor nodes [2]. Such co-design is usually targeted at systems consisting of a general-purpose processor (CPU), a dynamically reconfigurable datapath (e.g. an FPGA), and a memory hierarchy. Many research design tools have been built to address co-design of such systems [3].

Aspect-oriented system design (AOSD) is one approach to software co-design [4]. In AOSD, one specifies the re-quired features in different areas of concern; a tool then weaves these different threads into a solution to the overall problem. While the output of AOSD can be monolithic code, recent research [5] has focused on maintaining a level of modularity in the resulting solution, thus enabling incremental changes to the solution, potentially at runtime. AOSD is typically applied to middleware; there are efforts to apply it to more time-critical software, e.g. operating systems [6].

Our experience in building distributed and sensor systems leads us to believe that the time is ripe for attempting to integrate orthogonal design methods with more traditional hw/sw co-design methods in order to achieve synergistic gains. The end result should be the ability to design, implement, deploy, and adapt sensor systems that are optimized to minimize a much more complex and realistic combined cost function.

Approach

We propose to enable a designer to specify the requirements for a particular sensor system in each area of concern or-thogonally, and to then use co-design tools to produce integrated designs and implementations that achieve substantial synergy and better reflect the underlying physical environment of the sensed system. This work will extend the notion of hw/sw co-design into multiple dimensions through the application of existing techniques, such as AOSD methods, i.e. the final system design is generated by weaving together the individual components with appropriate soft-ware/firmware “glue” to achieve the requisite integration and reap synergistic benefits. This generation phase is opti-mized with respect to a combined cost function (e.g. aggregate data early but minimize power consumption during op-eration) for the target system. Iterative specification/integration will most likely be required to maximize synergy.

In order to achieve these goals, we will: 1) formalize each dimension, and define one or more languages to be used for specification of requirements along each dimension; 2) develop mechanisms to formally validate specifications in each such language; 3) build a tool that weaves such orthogonally-produced specifications into one or more designs for the overall system; 4) develop mechanisms to formally validate overall system designs; 5) develop mechanisms to evaluate these designs in terms of the chosen, global, cost function in order to determine the optimal (or near-optimal) design; 6) construct an implementation platform upon which optimal designs can be constructed and deployed; and 7) build two prototype systems using this platform to validate the methodology.

Anticipated outcomes for the project are: specification languages for each dimension, tools for producing integrated designs from orthogonal designs, formal validation mechanisms for each dimension and for integrated system specifica-tions, tools for selecting optimal designs given a global cost function, mechanisms for managing a running system based upon the global cost function, and two prototype systems designed, built, deployed, and managed using the methodol-ogy and tools defined above.

References

[1]

J Kahn, R Katz and K Pister, “Mobile Networking for Smart Dust”, Proc of ACM/IEEE Intl. Conf. on Mobile Computing and Networking, August 1999.

[2]

Y Li, T Callahan, E Darnell, R Harr, U Kurkure and J Stockwood, “Hardware-Software Co-Design of Embedded Reconfigur-able Architectures”, Proc. of the Design Automation Conference, Los Angeles, California, 2000.

[3]

CodeSign, http://www.tik.ee.ethz.ch/~codesign/.

[4]

G Kiczales, J Lamping, A Mendhekar, C Maeda, C Videira Lopes, J-M Loingtier and J Irwin, “Aspect-Oriented Program-ming”, Proc. of the European Conf. on Object-Oriented Programming, June 1997.

[5]

D Orleans, “Incremental Programming with Extensible Decisions”, Proc. of the 1st International Conference on Aspect-Oriented Software Development, April 2002.

[6]

Y Coady, “Crosscutting the Great Divide: Exploring an Aspect-Oriented Approach to OS Code”, http://www.cs.ubc.ca/~ycoady/papers/prop.pdf.