Abstract
The explosion of networked devices has driven a new computing environment called the Internet of Things (IoT), enabling various services such as home automation and health monitoring. Despite the promising applicability of the IoT, developing an IoT service is challenging for programmers, because the programmers should integrate multiple programmable devices and heterogeneous third-party devices. Recent works have proposed integrated programming platforms, but they either require device-specific implementation for third-party devices without any device abstraction, or abstract all the devices to the standard interfaces requiring unnecessary abstraction of programmable devices. To integrate IoT devices with selective abstraction, this work revisits the object oriented programming (OOP) model, and proposes a new language extension and its compiler-runtime framework, called Esperanto. With three annotations that map each object to its corresponding IoT device, the Esperanto language allows programmers to integrate multiple programmable devices into one OOP program and to abstract similar third-party devices into their common ancestor classes. Given the annotations, the Esperanto compiler automatically partitions the integrated program into multiple sub-programs for each programmable IoT device, and inserts communication and synchronization code. Moreover, for the ancestor classes, the Esperanto runtime dynamically identifies connected third-party devices, and links their corresponding descendent objects. Compared to an existing approach on the integrated IoT programming, Esperanto requires 33.3% fewer lines of code to implement 5 IoT services, and reduces their response time by 44.8% on average.
- Google Web Toolkit. https://developers.google.com/ web-toolkit/.Google Scholar
- C. Amza, A. L. Cox, S. Dwarkadas, P. Keleher, H. Lu, R. Rajamony, W. Yu, and W. Zwaenepoel. Treadmarks: Shared memory computing on networks of workstations. Computer, 1996. Google Scholar
Digital Library
- H. E. Bal, M. F. Kaashoek, and A. S. Tanenbaum. Orca: A language for parallel programming of distributed systems. IEEE transactions on software engineering, 1992. Google Scholar
Digital Library
- M. Blackstock and R. Lea. Toward a distributed data flow platform for the web of things (distributed node-red). In Proceedings of the 5th International Workshop on Web of Things, 2014. Google Scholar
Digital Library
- J. B. Carter. Design of the Munin Distributed Shared Memory System. Journal of Parallel and Distributed Computing, 1995. Google Scholar
Digital Library
- S. Chong, J. Liu, A. C. Myers, X. Qi, K. Vikram, L. Zheng, and X. Zheng. Secure web applications via automatic partitioning. In Proceedings of Twenty-first ACM SIGOPS Symposium on Operating Systems Principles, 2007. Google Scholar
Digital Library
- H.-h. Chu, H. Song, C. Wong, S. Kurakake, and M. Katagiri. Roam, a seamless application framework. Journal of Systems and Software, 2004. Google Scholar
Digital Library
- B.-G. Chun, S. Ihm, P. Maniatis, M. Naik, and A. Patti. CloneCloud: Elastic execution between mobile device and cloud. In Proceedings of the Sixth Conference on Computer Systems, 2011. Google Scholar
Digital Library
- E. Cooper, S. Lindley, P. Wadler, and J. Yallop. Links: Web programming without tiers. In Proceedings of the 5th International Conference on Formal Methods for Components and Objects, 2006. Google Scholar
Digital Library
- E. Cuervo, A. Balasubramanian, D.-k. Cho, A. Wolman, S. Saroiu, R. Chandra, and P. Bahl. MAUI: Making smartphones last longer with code offload. In Proceedings of the 8th International Conference on Mobile Systems, Applications, and Services, 2010. Google Scholar
Digital Library
- Eclipse SmartHome. http://eclipse.org/smarthome.Google Scholar
- Esperanto Demo. https://youtu.be/BhrmU5KjX9M.Google Scholar
- Gartner. Gartner says the Internet of Things installed base will grow to 26 billion units by 2020. http://www.gartner.com/ newsroom/id/2636073.Google Scholar
- D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and D. Culler. The nesC language: A holistic approach to networked embedded systems. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, 2003. Google Scholar
Digital Library
- N. K. Giang, M. Blackstock, R. Lea, and V. C. Leung. Developing IoT applications in the fog: a distributed dataflow approach. In Proceedings of International Conference on the Internet of Things, 2015.Google Scholar
Cross Ref
- M. S. Gordon, D. A. Jamshidi, S. Mahlke, Z. M. Mao, and X. Chen. COMET: Code offload by migrating execution transparently. In In Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation, 2012. Google Scholar
Digital Library
- Hardkernel:ODROID. https://www.hardkernel.com.Google Scholar
- G. C. Hunt and M. L. Scott. The coign automatic distributed partitioning system. In Proceedings of the Third Symposium on Operating Systems Design and Implementation, 1999. Google Scholar
Digital Library
- IoTivity Project. https://www.iotivity.org.Google Scholar
- P. Keleher, A. L. Cox, and W. Zwaenepoel. Lazy release consistency for software distributed shared memory. In Proceedings of the 19th Annual International Symposium on Computer Architecture, 1992. Google Scholar
Digital Library
- R. Kemp, N. Palmer, T. Kielmann, and H. Bal. Cuckoo: a computation offloading framework for smartphones. In Mobile Computing, Applications, and Services. 2012.Google Scholar
- C. E. Killian, J. W. Anderson, R. Braud, R. Jhala, and A. M. Vahdat. Mace: Language support for building distributed systems. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2007. Google Scholar
Digital Library
- B. Kim, S. Heo, G. Lee, S. Park, H. Kim, and J. Kim. Heterogeneous distributed shared memory for lightweight internet of things devices. IEEE Micro, 2016. Google Scholar
Digital Library
- R. Kleinfeld, S. Steglich, L. Radziwonowicz, and C. Doukas. Glue.Things: A mashup platform for wiring the Internet of Things with the Internet of Services. In Proceedings of the 5th International Workshop on Web of Things, 2014. Google Scholar
Digital Library
- C. Lattner and V. Adve. LLVM: a compilation framework for lifelong program analysis & transformation. In Proceedings of the International Symposium on Code Generation and Optimization, 2004. Google Scholar
Digital Library
- G. Lee, H. Park, S. Heo, K.-A. Chang, H. Lee, and H. Kim. Architecture-aware automatic computation offload for native applications. In Proceedings of the 48th IEEE/ACM International Symposium on Microarchitecture, 2015. Google Scholar
Digital Library
- K. Li and P. Hudak. Memory coherence in shared virtual memory systems. ACM Transactions on Computer Systems (TOCS), 1989. Google Scholar
Digital Library
- F. X. Lin, Z. Wang, R. LiKamWa, and L. Zhong. Reflex: Using low-power processors in smartphones without knowing them. In Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems, 2012. Google Scholar
Digital Library
- R. B. Miller. Response time in man-computer conversational transactions. In Proceedings of AFIPS Fall Joint Computer Conference, 1968. Google Scholar
Digital Library
- Node-RED. http://nodered.org.Google Scholar
- OpenRemote. http://www.openremote.org.Google Scholar
- D. J. Scales and K. Gharachorloo. Towards transparent and efficient software distributed shared memory. In Proceedings of the Sixteenth Symposium on Operating Systems Principles, 1997. Google Scholar
Digital Library
- SmartThings. http://www.smartthings.com.Google Scholar
- J. Sorber, A. Kostadinov, M. Garber, M. Brennan, M. D. Corner, and E. D. Berger. Eon: A language and runtime system for perpetual systems. In Proceedings of the 5th International Conference on Embedded Networked Sensor Systems, 2007. Google Scholar
Digital Library
- The Thing System. http://thethingsystem.com.Google Scholar
- xively by LogMein. http://www.xively.com.Google Scholar
- I. Zhang, A. Szekeres, D. V. Aken, I. Ackerman, S. D. Gribble, A. Krishnamurthy, and H. M. Levy. Customizable and extensible deployment for mobile/cloud applications. In 11th USENIX Symposium on Operating Systems Design and Implementation, 2014. Google Scholar
Digital Library
- K. Zhang and S. Pande. Efficient application migration under compiler guidance. In Proceedings of the ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems, 2005. Google Scholar
Digital Library
- S. Zhou, M. Stumm, K. Li, and D. Wortman. Heterogeneous distributed shared memory. IEEE Transactions on Parallel and Distributed Systems, 1991. Google Scholar
Digital Library
- Y. Zhou, L. Iftode, and K. Li. Performance evaluation of two homebased lazy release consistency protocols for shared virtual memory systems. In Proceedings of the Second USENIX Symposium on Operating Systems Design and Implementation, 1996. Google Scholar
Digital Library
Index Terms
Integrated IoT programming with selective abstraction
Recommendations
Integrated IoT programming with selective abstraction
LCTES 2017: Proceedings of the 18th ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded SystemsThe explosion of networked devices has driven a new computing environment called the Internet of Things (IoT), enabling various services such as home automation and health monitoring. Despite the promising applicability of the IoT, developing an IoT ...
Rapid prototyping of IoT applications with Esperanto compiler
RSP '17: Proceedings of the 28th International Symposium on Rapid System Prototyping: Shortening the Path from Specification to PrototypeIntegrating various networked devices, the Internet of Things (IoT) enables various new services like home automation, making its market larger and more competitive. Although rapid development of an IoT application is crucial to keep up with the highly ...
IoT cybersecurity threats mitigation via integrated technical and non-technical solutions
With the growing number of connected devices to the internet every day, and the rapid development and deployment of internet of things (IoT), the number of security threats and vulnerabilities posed to these are also increased. Also, the use of IoT in the ...






Comments