{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,27]],"date-time":"2025-10-27T04:53:25Z","timestamp":1761540805906},"reference-count":16,"publisher":"Association for Computing Machinery (ACM)","issue":"4","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2007,9]]},"abstract":"<jats:p>We present design patterns used by software components in the TinyOS sensor network operating system. They differ significantly from traditional software design patterns because of the constraints of sensor networks and to TinyOS's focus on static allocation and whole-program composition. We describe how nesC has evolved to support these design patterns by including a few simple language primitives and optimizations.<\/jats:p>","DOI":"10.1145\/1274858.1274860","type":"journal-article","created":{"date-parts":[[2007,9,26]],"date-time":"2007-09-26T17:18:32Z","timestamp":1190827112000},"page":"22","update-policy":"http:\/\/dx.doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":39,"title":["Software design patterns for TinyOS"],"prefix":"10.1145","volume":"6","author":[{"given":"David","family":"Gay","sequence":"first","affiliation":[{"name":"Intel Research, Berkeley, California"}]},{"given":"Philip","family":"Levis","sequence":"additional","affiliation":[{"name":"Stanford University, Palo Alto, California"}]},{"given":"David","family":"Culler","sequence":"additional","affiliation":[{"name":"University of California, Berkeley, California"}]}],"member":"320","published-online":{"date-parts":[[2007,9]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems","author":"Douglass B. P.","unstructured":"Douglass , B. P. 2002. Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems . Addison-Wesley , Reading, MA . Douglass, B. P. 2002. Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems. Addison-Wesley, Reading, MA."},{"key":"e_1_2_1_2_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma E.","year":"1995","unstructured":"Gamma , E. , Helm , R. , Johnson , R. , and Vlissides , J . 1995 . Design Patterns: Elements of Reusable Object-Oriented Software . Addison-Wesley , Reading, MA . Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/781131.781133"},{"key":"e_1_2_1_4_1","volume-title":"Proceedings of the 2004 USENIX Annual Technical Conference","author":"Girod L.","unstructured":"Girod , L. , Elson , J. , Cerpa , A. , Stathopoulos , T. , Ramanathan , N. , and Estrin , D . 2004. EmStar: A software environment for developing and deploying wireless sensor networks . In Proceedings of the 2004 USENIX Annual Technical Conference . Boston, MA. 283--296. Girod, L., Elson, J., Cerpa, A., Stathopoulos, T., Ramanathan, N., and Estrin, D. 2004. EmStar: A software environment for developing and deploying wireless sensor networks. In Proceedings of the 2004 USENIX Annual Technical Conference. Boston, MA. 283--296."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1031495.1031505"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/378993.379006"},{"key":"e_1_2_1_7_1","volume-title":"Proceedings of the 1986 USENIX Conference","author":"Kleiman S.","year":"1986","unstructured":"Kleiman , S. 1986 . Vnodes: An architecture for multiple file system types in Sun UNIX . In Proceedings of the 1986 USENIX Conference . Atlanta, GA. 238--247. Kleiman, S. 1986. Vnodes: An architecture for multiple file system types in Sun UNIX. In Proceedings of the 1986 USENIX Conference. Atlanta, GA. 238--247."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/354871.354874"},{"key":"e_1_2_1_9_1","unstructured":"Levis P. and Gay D. 2004. TinyOS Design Patterns. http:\/\/sing.stanford.edu\/tinyos\/patterns.  Levis P. and Gay D. 2004. TinyOS Design Patterns. http:\/\/sing.stanford.edu\/tinyos\/patterns."},{"key":"e_1_2_1_10_1","volume-title":"Proceedings of the 1st Symposium on Network Systems Design and Implementation","author":"Levis P.","unstructured":"Levis , P. , Madden , S. , Gay , D. , Polastre , J. , Szewczyk , R. , Woo , A. , Brewer , E. , and Culler , D . 2004. The emergence of networking abstractions and techniques in TinyOS . In Proceedings of the 1st Symposium on Network Systems Design and Implementation . San Francisco, CA. 1--14. Levis, P., Madden, S., Gay, D., Polastre, J., Szewczyk, R., Woo, A., Brewer, E., and Culler, D. 2004. The emergence of networking abstractions and techniques in TinyOS. In Proceedings of the 1st Symposium on Network Systems Design and Implementation. San Francisco, CA. 1--14."},{"key":"e_1_2_1_11_1","volume-title":"Proceedings of the 2nd Symposium on Network Systems Design and Implementation","author":"Levis P.","unstructured":"Levis , P. , Gay , D. , and Culler , D . 2005a. Active sensor networks . In Proceedings of the 2nd Symposium on Network Systems Design and Implementation . Boston, MA. 343--356. Levis, P., Gay, D., and Culler, D. 2005a. Active sensor networks. In Proceedings of the 2nd Symposium on Network Systems Design and Implementation. Boston, MA. 343--356."},{"key":"e_1_2_1_12_1","unstructured":"Levis P. Madden S. Polastre J. Szewczyk R. Whitehouse K. Woo A. Gay D. Hill J. Welsh M. Brewer E. and Culler D. 2005b. TinyOS: An operating system for wireless sensor networks. In Ambient Intelligence. Springer-Verlag New York.  Levis P. Madden S. Polastre J. Szewczyk R. Whitehouse K. Woo A. Gay D. Hill J. Welsh M. Brewer E. and Culler D. 2005b. TinyOS: An operating system for wireless sensor networks. In Ambient Intelligence. Springer-Verlag New York."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/1060289.1060303"},{"key":"e_1_2_1_14_1","volume-title":"OOPSLA Workshop Towards Patterns and Pattern Languages for OO Distributed Real-time and Embedded Systems.","author":"Patterns","year":"2001","unstructured":"Patterns W1 2001 . OOPSLA Workshop Towards Patterns and Pattern Languages for OO Distributed Real-time and Embedded Systems. PatternsW1 2001. OOPSLA Workshop Towards Patterns and Pattern Languages for OO Distributed Real-time and Embedded Systems."},{"key":"e_1_2_1_15_1","volume-title":"OOPSLA Workshop on Patterns in Distributed Real-time and Embedded Systems.","author":"Patterns","year":"2002","unstructured":"Patterns W2 2002 . OOPSLA Workshop on Patterns in Distributed Real-time and Embedded Systems. PatternsW2 2002. OOPSLA Workshop on Patterns in Distributed Real-time and Embedded Systems."},{"key":"e_1_2_1_16_1","volume-title":"PLOP Workshop on Patterns and Pattern Languages in Distributed Real-time and Embedded Systems.","author":"Patterns","year":"2002","unstructured":"Patterns W3 2002 . PLOP Workshop on Patterns and Pattern Languages in Distributed Real-time and Embedded Systems. PatternsW3 2002. PLOP Workshop on Patterns and Pattern Languages in Distributed Real-time and Embedded Systems."}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1274858.1274860","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T18:31:51Z","timestamp":1672252311000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1274858.1274860"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007,9]]},"references-count":16,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2007,9]]}},"alternative-id":["10.1145\/1274858.1274860"],"URL":"https:\/\/doi.org\/10.1145\/1274858.1274860","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"value":"1539-9087","type":"print"},{"value":"1558-3465","type":"electronic"}],"subject":[],"published":{"date-parts":[[2007,9]]},"assertion":[{"value":"2007-09-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}