ABSTRACT
The task of programming sensor-based systems comes with severe constraints on the resources, typically memory, CPU power, and energy. The challenge is usually addressed with techniques that result in poor code understandability and maintainability. In this paper, we report on a data centric language extension based on a tuple-space abstraction, akin to Linda [2], applied to PicOS [5], a programming environment for wireless sensor networks (WSN's). The extension improves state and context management in a multi-tasking environment suffering from severe memory limitations. The solution integrates tuple operations into the model -- for networking, event handling, and thread contexts. We demonstrate how tuple constructs improve coding and reduce code overhead. We also show how thread's context-tuples can be used as interface arguments for extension by modular aspect constructs.
- A. Adya, J. Howell, M. Theimer, W. J. Bolosky, and J. R. Douceur. Cooperative task management without manual stack management. In Proceedings of USENIX'02, pp. 289--302. Google ScholarDigital Library
- N. Carriero and D. Gelernter. Linda in context. Commun. ACM, 32(4):444--458, 1989. Google ScholarDigital Library
- P. Costa, L. Mottola, Amy L. Murphy, and G. P. Picco. Teenylime: transiently shared tuple space middleware for wireless sensor networks. In Proceedings of MidSens'06, pp. 43--58. Google ScholarDigital Library
- P. Gburzyński, B. Kaminska, and W. Olesinski. A tiny and efficient wireless ad-hoc protocol for low-cost sensor networks. In Proceedings of DATE'07, pp. 1562--1567.Google Scholar
- P. Gburzynski and W. Olesinski. On a practical approach to low-cost ad hoc wireless networking. Journal of Telecommunications and Information Technology, 2008(1):29--42, January 2008.Google Scholar
- M. Goldman and S. Katz. MAVEN: Modular aspects verification. In Proceedings of TACAS 2007, pp. 308--322, Springer, LNCS, volume 4424. Google ScholarDigital Library
- J. Hill, R. Szewczyk, A. Woo, S. Hollar, D. Culler, and K. Pister. System architecture directions for networked sensors. SIGPLAN Not., 35(11):93--104, 2000. Google ScholarDigital Library
- K. Hoffman and P. Eugster. Cooperative aspect-oriented programming. Science of Computer Programming, 74(5--6):333--354, 2009. Google ScholarDigital Library
- O. Kasten and K. Römer. Beyond event handlers: programming wireless sensors with attributed state machines. In Proceedings of IPSN'05, pp. 7. Google ScholarDigital Library
- S. Katz. Aspect categories and classes of temporal properties. In Transactions on Aspect-Oriented Software Development I, pages 106--134. Springer, LNCS, volume 3880, 2006. Google ScholarDigital Library
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of aspectj. pp. 327--353, In Proceedings of ECOOP'01 Springer, LNCS, volume 2072. Google ScholarDigital Library
- P. Levis. TinyOS Programming. Cambridge University Press, 2009. Google ScholarDigital Library
- W. P. McCartney and N. Sridhar. Abstractions for safe concurrent programming in networked embedded systems. In Proceedings of SenSys'06, pp. 167--180. Google ScholarDigital Library
- K. Terfloth, G. Wittenburg, and J. H. Schiller. FACTS - a rule-based middleware architecture for wireless sensor networks. In Proceedings of COMSWARE'06Google Scholar
- K. Whitehouse, C. Sharp, E. Brewer, and D. Culler. Hood: a neighborhood abstraction for sensor networks. In Proceedings of MobiSys'04, pp. 99--110. Google ScholarDigital Library
- A. L. Murphy, G. P. Picco and G. C. Roman. LIME: A coordination model and middleware supporting mobility of hosts and agents. ACM Trans. Softw. Eng. Methodol, 2006. Google ScholarDigital Library
- P. J. McCann and G. C. Roman. Mobile UNITY Coordination Constructs Applied to Packet Forwarding for Mobile Hosts. In Proceedings of COORDINATION '97. pp. 338--354. Google ScholarDigital Library
- R. De Nicola and G. L. Ferrari and R. Pugliese. KLAIM: A Kernel Language for Agents Interaction and Mobility. IEEE Trans. Softw. Eng. pp. 315--330. IEEE Press, volume 24, 1998. Google ScholarDigital Library
Index Terms
- PicOS tuples: easing event based programming in tiny pervasive systems
Recommendations
On coordination tools in the PicOS tuples system
SESENA '11: Proceedings of the 2nd Workshop on Software Engineering for Sensor Network ApplicationsIn this paper, we discuss the most recent coordination extension to the PicOS-tuples environment, inspired, to a degree, by B-Threads and FACTS. We illustrate the extensions with two design patterns, highly useful in WSN computations, known as ...
Multiple dispatch as dispatch on Tuples
OOPSLA '98: Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsMany popular object-oriented programming languages, such as C++, Smalltalk-80, Java, and Eiffel, do not support multiple dispatch. Yet without multiple dispatch, programmers find it difficult to express binary methods and design patterns such as the "...
Comments