Browse > Article
http://dx.doi.org/10.9708/jksci.2019.24.03.077

UniPy: A Unified Programming Language for MGC-based IoT Systems  

Kim, Gayoung (Dept. Electronics and Computer Engineering, Chonnam National University)
Choi, Kwanghoon (Dept. Electronics and Computer Engineering, Chonnam National University)
Chang, Byeong-Mo (Dept. of Computer Science, Sookmyung Women's University)
Abstract
The advent of Internet of Things (IoT) makes common nowadays computing environments involving programming not a single computer but several heterogeneous distributed computers together. Developing programs separately, one for each computer, increases programmer burden and testing all the programs become more complex. To address the challenge, this paper proposes an RPC-based unified programming language, UniPy, for development of MGC (eMbedded, Gateway, and Cloud) applications in IoT systems configured with popular computers such as Arduino, Raspberry Pi, and Web-based DB server. UniPy offers programmers a view of classes as locations and a very simple form of remote procedure call mechanism. Our UniPy compiler automatically splits a UniPy program into small pieces of the program at different locations supporting the necessary RPC mechanism. An advantage of UniPy programs is to permit programmers to write local codes the same as for a single computer requiring no extra knowledge due to having unified programming models, which is very different from the existing research works such as Fabryq and Ravel. Also, the structure of UniPy programs allows programmers to test them by directly executing them before splitting, which is a feature that has never been emphasized yet.
Keywords
Unified Programming Environment; Internet of Things; Distributed System;
Citations & Related Records
연도 인용수 순위
  • Reference
1 N. Kothari, R. Gummadi, T. Millstein, and R. Govindan, "Reliable and Efficient Programming Abstractions for Wireless Sensor Networks," ACM SIGPLAN Notices -Proceedings of the 2007 PLDI conference, Vol. 42m No. 6, pp. 200-210, June 2007.
2 W. McGrath, M. Etemadi, S. Roy, and B. Hartmann, "Fabryq: Using Phones as Gateways to Prototype Internet of Things Applications Using Web Scripting," Proceedings of the 7th ACM SIGCHI Symposium on Engineering Interactive Computing Systems (EICS '15), Duisburg, Germany, pp. 164-173, June 2015.
3 L. Riliskis, J. Hong, and P. Levis, "Ravel: Programming IoT Applications As Distributed Models, Views, and Controllers," Proceedings of the 2015 International Workshop on Internet of Things Towards Applications (IoT-App '15), pp. 1-6, November 2015.
4 E. Cooper and P. Wadler, "The RPC Calculus," Proceedings of the 11th ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP '09), pp. 231-242, New York, USA, September 2009.
5 M. Neubauer and P. Thiemann, "From Sequential Programs to Multi-tier Applications by Program Transformation," Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages(POPL '05), pp. 221-232, New York, USA, January 2005.
6 IBM, Node-red, https://nodered.org/
7 T. Dang, M. Tran, D. T. Le, and H. Choo, "On Evaluating IoTivity Cloud Platform," International Conference on Computational Science and Its Applications (ICCSA 2017), Trieste, Italy, July 2017.
8 K. Hong, D. J. Lillethun, U. Ramachandran, B. OttenWalder, and B. Koldhofe, "Mobile fog: A Programming Model for Large-Scale Applications on the Internet of Things," Proceedings of the Second ACM SIGCOMM Workshop on Mobile Cloud Computing(MCC '13), pp. 15-20, Hong Kong, China, August 2013.
9 N. K. Giang, M. Blackstock, R. Lea, and V. C. Leung, "Developing IoT Applications in the Fog: A Distributed Dataflow Approach," In Proceedings - 2015 5th International Conference on the Internet of Things (IoT '15), pp. 155-162, Seoul, Korea, October 2015.
10 O. C. Foundation, IoTivity, https://www.iotivity.org/
11 B. Greenstein, E. Kohler, and D. Estrin, "A Sensor Network Application Construction Kit (SNACK)," Proceedings of the 2nd International Conference on Embedded Networked Sensor Systems (SenSys '04), pp. 69-80, Baltimor, USA, November 2004.
12 R. Gummadi, O. Gnawli, and R. Govindan, "Macro-Programming Wireless Sensor Networks Using Kairos," Proceedings of the First IEEE International Conference on Distributed Computing in Sensor Systems (DCOSS '05), pp. 126-140, Marina del Rey, CA, USA, June 2005.
13 Y. Tu, Y. Li, T. Chien, and P. H. Chou, "Ecocast: Interactive, Object-Oriented Macro-Programming for Networks of Ultra-Compact Wireless Sensor Nodes," Proceedings of the 10th International Conference on Information Processing in Sensor Networks (IPSN '11), pp. 366-377, Chicago, IL, USA, pp. 366-377, April 2011.
14 S. Nastic, H. L. Truong, and S. Dustdar, “SDG-Pro: A Programming Framework for Software-defined IoT Cloud Gateways,” Journal of Internet Services and Applications, Vol. 6, No. 1, pp. 1-17, 2015.   DOI
15 G. Barbon, M. Margolis, F. Palumbo, F. Raimondi, and N. Weldin, "Taking Arduino to the Internet of Things: The ASIP Programming Model," Computer Communications, Vol. 89-90, pp. 128-140, September 2016.   DOI
16 S. Nastic, S. Sehic, M. Vogler, H. L. Truong, and S. Dustdar, "PatRICIA - A Novel Programming Model for IoT Application on Cloud Platforms," Service-Oriented Computing and Applications (SOCA) 2013 IEEE 6th International Conference on, pp. 53-60, December 2013.
17 M. Blackstock and R. Lea, "Toward a Distributed Dataflow Platform for the Web of Things(Distributed Node-Red)," Proceedings of the 5th International Workshop on Web of Things(WoT '14), pp. 34-39, Cambridge, MA, USA, October 2014.
18 E. Cooper, S. Lindley, P. Wadler, and J. Yallop, "Links: Web Programming without Tiers," Proceedings of the 5th International Conference on Formal Methods for Components and Objects (FMCO '06), pp. 266-296, Amsterdam, The Netherlands, November 2006.
19 T. Murphy VII, K. Crary, R. Harper, and F. Pfenning, "A Symmetric Modal Lambda Calculus for Distributed Computing," Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science (LICS '04), pp. 286-295, Washington DC, USA, July 2004.