×

Visualizing the runtime behavior of embedded network systems: A toolkit for TinyOS. (English) Zbl 1183.68191

Summary: TinyOS is an effective platform for developing lightweight embedded network applications. But the platform’s lean programming model and power-efficient operation come at a price: TinyOS applications are notoriously difficult to construct, debug, and maintain. The development difficulties stem largely from a programming model founded on events and deferred execution. In short, the model introduces non-determinism in the execution ordering of primitive actions - an issue exacerbated by the fact that embedded network systems are inherently distributed and reactive. The resulting set of possible execution sequences for a given system is typically large and can swamp developers’ unaided ability to reason about program behavior.
In this paper, we present a visualization toolkit for TinyOS 2.0 to aid in program comprehension. The goal is to assist developers in reasoning about the computation forest underlying a system under test and the particular branches chosen during each run. The toolkit supports comprehension activities involving both local and distributed runtime behavior. The constituent components include (i) a full-featured static analysis and instrumentation library, (ii) a selection-based probe insertion system, (iii) a lightweight event recording service, (iv) a trace extraction and reconstruction tool, and (v) three visualization front-ends. We demonstrate the utility of the toolkit using both standard and custom system examples and present an analysis of the toolkit’s resource usage and performance characteristics.

MSC:

68N99 Theory of software
90B10 Deterministic network models in operations research
PDFBibTeX XMLCite
Full Text: DOI

References:

[1] R. Aylward, J. Paradiso, Sensemble: A wireless, compact, multi-user sensor system for interactive dance, in: The 6th International Conference on New Interfaces for Musical Expression, Centre Pompidou, Paris, France, 2006, pp. 134–139
[2] Laibowitz, M.; Gips, J.; Aylward, R.; Pentland, A.; Paradiso, J.: A sensor network for social dynamics, , 483-491 (2006)
[3] N. Ramanathan, T. Schoellhammer, D. Estrin, M. Hansen, T. Harmon, E. Kohler, M. Srivastava, The final frontier: Embedding networked sensors in the soil, Tech. Rep. CENS #68, Center for Embedded Networked Sensing (UCLA), Los Angeles, CA, USA, November 2006
[4] Werner-Allen, G.; Lorincz, K.; Welsh, M.; Marcillo, O.; Johnson, J.; Ruiz, M.; Lees, J.: Deploying a wireless sensor network on an active volcano, IEEE Internet computing 10, No. 2, 18-25 (2006)
[5] Hu, W.; Tran, V.; Bulusu, N.; Chou, C.; Jha, S.; Taylor, A.: The design and evaluation of a hybrid sensor network for cane-toad monitoring, , 503-508 (2005)
[6] J. Tolliver, D. Resseguie, M. Parang, M. Gardner, F. Denap, B. Kusy, G. Balogh, A. Nadas, J. Sallai, Y. Xue, T. Wu, P. Volgyesi, M. Maroti, A. Ledeczi, Dirty bomb detection and localization, in: The 5th International Conference on Information Processing in Sensor Networks, April 2006. http://www.isis.vanderbilt.edu/projects/rips/, demonstration
[7] Arora, A.; Ramnath, R.; Ertin, E.; Sinha, P.; Bapat, S.; Naik, V.; Kulathumani, V.; Zhang, H.; Cao, H.; Sridharan, M.; Kumar, S.; Seddon, N.; Anderson, C.; Herman, T.; Trivedi, N.; Zhang, C.; Gouda, M.; Choi, Y.; Nesterenko, M.; Shah, R.; Kulkarni, S.; Aramugam, M.; Wang, L.; Culler, D.; Dutta, P.; Sharp, C.; Tolle, G.; Grimmer, M.; Ferriera, B.; Parker, K.: Exscal: elements of an extreme scale wireless sensor network, , 102-108 (2005)
[8] Simon, G.; Maróti, M.; Lédeczi, A.; Balogh, G.; Kusy, B.; Nádas, A.; Pap, G.; Sallai, J.; Frampton, K.: Sensor network-based countersniper system, , 1-12 (2004)
[9] Hill, J.; Szewczyk, R.; Woo, A.; Hollar, S.; Culler, D.; Pister, K.: System architecture directions for networked sensors, , 93-104 (2000)
[10] P. Levis, D. Gay, V. Handziski, J. Hauer, B. Greenstein, M. Turon, J. Hui, K. Klues, C. Sharp, R. Szewczyk, J. Polastre, P. Buonadonna, L. Nachman, G. Tolle, D. Culler, A. Wolisz, T2: A second generation OS for embedded sensor networks, Tech. Rep. TKN-05-007, Telecommunication Networks Group, Technische Universität Berlin, Berlin, Germany, November 2005
[11] UC Berkeley, TinyOS community forum – an open-source OS for the networked sensor regime, http://www.tinyos.net, 2004
[12] Moteiv Corporation, Tmote Sky datasheet, http://www.moteiv.com/products/docs/tmote-sky-datasheet.pdf, 2006
[13] Jones, J.; Orso, A.; Harrold, M.: Gammatella: visualizing program-execution data for deployed software, Information visualization 3, No. 3, 173-188 (2004)
[14] Orso, A.; Jones, J.; Harrold, M.; Stasko, J.: Gammatella: visualization of program-execution data for deployed software, , 699-700 (2004)
[15] Eick, S.; Steffen, J.; Jr., E. Sumner: Seesoft – A tool for visualizing line oriented software statistics, IEEE transactions on software engineering 18, No. 11, 957-968 (1992)
[16] Shneiderman, B.: Tree visualization with tree-maps: 2-d space-filling approach, ACM transactions on graphics 11, No. 1, 92-99 (1992) · Zbl 0791.68166 · doi:10.1145/102377.115768
[17] Edwards, J.: Example centric programming, , 84-91 (2004)
[18] Voinea, L.; Lukkien, J.; Telea, A.: Visual assessment of software evolution, Science of computer programming 65, No. 3, 222-248 (2007) · Zbl 1114.68385 · doi:10.1016/j.scico.2006.05.012
[19] Voinea, L.; Telea, A.: Visual data mining and analysis of software repositories, Computers and graphics 31, No. 3, 410-428 (2007)
[20] Pfeiffer, J.; Gurd, J.: Visualisation-based tool support for the development of aspect-oriented programs, , 146-157 (2006)
[21] Balzer, M.; Deussen, O.; Lewerentz, C.: Voronoi treemaps for the visualization of software metrics, , 165-172 (2005)
[22] Hamou-Lhadj, A.; Lethbridge, T.; Fu, L.: SEAT: A usable trace analysis tool, , 157-160 (2005)
[23] Hamou-Lhadj, A.: The concept of trace summarization, , 38-42 (2005)
[24] Cornelissen, B.; Holten, D.; Zaidman, A.; Moonen, L.; Van Wijk, J.; Van Deursen, A.: Understanding execution traces using massive sequence and circular bundle views, , 49-58 (2007)
[25] Holten, D.: Hierarchical edge bundles: visualization of adjacency relations in hierarchical data, IEEE transactions on visualization and computer graphics 12, No. 5, 741-748 (2006)
[26] A. Lienhard, T. Gîrba, O. Greevy, O. Nierstrasz, Exposing side effects in execution traces, in: The 3rd International Workshop on Program Comprehension through Dynamic Analysis, Delft University of Technology, Delft, Netherlands, 2007, pp. 11–17
[27] A. Lienhard, S. Ducasse, T. Gîrba, O. Nierstrasz, Capturing how objects flow at runtime, in: The 2nd International Workshop on Program Comprehension through Dynamic Analysis, Universiteit Antwerpen, Antwerpen, Belgium, 2006, pp. 39–43
[28] Kleyn, M.; Gingrich, P.: Graphtrace– understanding object-oriented systems using concurrently animated views, , 191-205 (1988)
[29] De Pauw, W.; Helm, R.; Kimelman, D.; Vlissides, J.: Visualizing the behavior of object-oriented systems, , 326-337 (1993)
[30] Reiss, S. P.: Visualizing Java in action, , 57-65 (2003)
[31] Reiss, S.; Renieris, M.: Jove: Java as it happens, , 115-124 (2005)
[32] Lange, D.; Nakamura, Y.: Program explorer: A program visualizer for C++, (1995)
[33] Malloy, B.; Power, J.: Exploiting UML dynamic object modeling for the visualization of C++ programs, , 105-114 (2005)
[34] R. Oechsle, T. Schmitt, JAVAVIS: Automatic program visualization with object and sequence diagrams using the Java debug interface (JDI), in: Software Visualization, in: LNCS, vol. 2269, 2002, pp. 176–190 · Zbl 1043.68949
[35] Briand, L.; Labiche, Y.; Leduc, J.: Toward the reverse engineering of UML sequence diagrams for distributed Java software, IEEE transactions on software engineering 32, No. 9, 642-663 (2006)
[36] B. Cornelissen, A. van Deursen, L. Moonen, Aiding in the comprehension of testsuites, in: The 2nd Workshop on Program Comprehension through Dynamic Analysis, Universiteit Antwerpen, Antwerpen, Belgium, 2006, pp. 17–20
[37] Cornelissen, B.; Van Deursen, A.; Moonen, L.; Zaidman, A.: Visualizing testsuites to aid in software understanding, , 213-222 (2007)
[38] Moe, J.; Carr, D.: Understanding distributed systems via execution trace data, , 60-70 (2001)
[39] J. Li, Monitoring of component-based systems, Tech. Rep. HPL-2002-25(R.1), Imaging Systems Laboratory, HP Laboratories, Palo Alto, CA, USA, May 2002
[40] Nagel, W.; Arnold, A.; Weber, M.; Hoppe, H.; Solchenbach, K.: VAMPIR: visualization and analysis of MPI resources, The journal of supercomputing 12, No. 1, 69-80 (1996)
[41] Snir, M.; Otto, S.: MPI – the complete reference: the MPI core, (1998)
[42] Wu, C.; Bolmarcich, A.; Snir, M.; Wootton, D.; Parpia, F.; Chan, A.; Lusk, E.; Gropp, W.: From trace generation to visualization: A performance framework for distributed parallel systems, , 10 (2000)
[43] Topol, B.; Stasko, J.; Sunderam, V.: Pvanim: A tool for visualization in network computing environments, Concurrency - practice and experience 10, No. 14, 1197-1222 (1998)
[44] Dalton, A.; Dandamudi, S.; Hallstrom, J.; Wahba, S.: A testbed for visualizing sensornet behavior, (2008)
[45] Ramanathan, N.; Chang, K.; Kapur, R.; Girod, L.; Kohler, E.; Estrin, D.: Sympathy for the sensor network debugger, , 255-267 (2005)
[46] Krunic, V.; Trumpler, E.; Han, R.: Nodemd: diagnosing node-level faults in remote wireless sensor systems, , 43-56 (2007)
[47] Tolle, G.; Culler, D.: Design of an application-cooperative management system for wireless sensor networks, , 121-132 (2005)
[48] Whitehouse, K.; Tolle, G.; Taneja, J.; Sharp, C.; Kim, S.; Jeong, J.; Hui, J.; Dutta, P.; Culler, D.: Marionette: using RPC for interactive development and debugging of wireless embedded networks, , 416-423 (2006)
[49] Dalton, A.; Hallstrom, J.: An interactive, source-centric, open testbed for developing and profiling wireless sensor systems, International journal of distributed sensor networks 5, No. 2, 105-138 (2009)
[50] Dalton, A.; Hallstrom, J.: A file system abstraction and shell interface for a wireless sensor network testbed, (2007)
[51] Mccartney, W.; Sridhar, N.: Tosdev: A rapid development environment for tinyos (demo), , 387-388 (2006)
[52] J. Sallai, G. Balogh, S. Dora, TinyDT: TinyOS plugin for the Eclipse platform. http://www.tinydt.net (package date), October 2005
[53] R. Schuler, N. Burri, TinyOS plugin for eclipse, http://www.dcg.ethz.ch/ rschuler/ (date of last page update), March 2006
[54] Gay, D.; Levis, P.; Von Behren, R.; Welsh, M.; Brewer, E.; Culler, D.: The nesc language: A holistic approach to networked embedded systems, , 1-11 (2003)
[55] P. Levis, TinyOS programming (manual), http://csl.stanford.edu/ pal/pubs/tinyos-programming.pdf, June 2006
[56] UC Berkeley, TinyOS tutorial lesson 2: Modules and the TinyOS execution model, http://www.tinyos.net/tinyos-2.x/doc/html/tutorial/lesson2.html (date of last page update), January 2009
[57] A. Dalton, J. Hallstrom, nAIT: A source analysis and instrumentation framework for nesC, Journal of Systems and Software (2009), in press, doi:10.1016/j.jss.2009.01.011
[58] Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J.: Design patterns: elements of reusable object-oriented software, (1995) · Zbl 0887.68013
[59] Lamport, L.: Time, clocks, and the ordering of events in a distributed system, Communications of the ACM 21, No. 7, 558-565 (1978) · Zbl 0378.68027 · doi:10.1145/359545.359563
[60] Regehr, J.; Reid, A.; Webb, K.: Eliminating stack overflow by abstract interpretation, ACM transactions on embedded computing systems 4, No. 4, 751-778 (2005)
[61] Mccartney, W.; Sridhar, N.: Abstractions for safe concurrent programming in networked embedded systems, , 167-180 (2006)
[62] Dalton, A.; Hallstrom, J.: A toolkit for visualizing the runtime behavior of tinyos applications, , 43-52 (2008)
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.