Abstract
Internet-of-Things (IoT) systems are considered one of the most notable examples of complex, large-scale systems. Some authors have proposed visual programming (VP) approaches to address part of their inherent complexity. However, in most of these approaches, the orchestration of devices and system components is still dependent on a centralized unit, preventing higher degrees of dependability. In this work, we perform a systematic literature review (SLR) of the current approaches that provide visual and decentralized orchestration to define and operate IoT systems, reflecting upon a total of 29 proposals. We provide an in-depth discussion of these works and find out that only four of them attempt to tackle this issue as a whole, although still leaving a set of open research challenges. Finally, we argue that addressing these challenges could make IoT systems more fault-tolerant, with an impact on their dependability, performance, and scalability.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Agarwal, Y., Dey, A.K.: Toward building a safe, secure, and easy-to-use internet of things infrastructure. IEEE Comput. 49(4), 88–91 (2016)
Akiki, P.A., Bandara, A.K., Yu, Y.: Visual simple transformations: empowering end-users to wire internet of things objects. ACM Trans. Comput.-Hum. Interact. 24(2), 1–43 (2017). https://doi.org/10.1145/3057857
AT&T Mobility LLC: AT&T Flow Designer. https://flow.att.com. Accessed 2020
Bak, N., Chang, B.M., Choi, K.: Smart block: a visual programming environment for SmartThings. In: International Computer Software and Applications Conference, vol. 2, pp. 32–37 (2018). https://doi.org/10.1109/COMPSAC.2018.10199
Belsa, A., Sarabia-Jacome, D., Palau, C.E., Esteve, M.: Flow-based programming interoperability solution for IoT platform applications. In: IEEE International Conference on Cloud Engineering, IC2E 2018, pp. 304–309 (2018)
Besari, A.R.A., Wobowo, I.K., Sukaridhoto, S., Setiawan, R., Rizqullah, M.R.: Preliminary design of mobile visual programming apps for Internet of Things applications based on Raspberry Pi 3 platform. In: International Electronics Symposium on Knowledge Creation and Intelligent Computing, pp. 50–54 (2017)
Blackstock, M., Lea, R.: Toward a distributed data flow platform for the Web of Things (Distributed Node-RED). In: ACM International Conference Proceeding Series, vol. 08, pp. 34–39 (2014)
Blackstock, M., Lea, R.: FRED: a hosted data flow platform for the IoT. In: 1st International Workshop on Mashups of Things and APIs (2016)
Boshernitsan, M., Downes, M.S.: Visual programming languages: a survey. Technical report UCB/CSD-04-1368, EECS Department, University of California, Berkeley, December 2004. http://www2.eecs.berkeley.edu/Pubs/TechRpts/2004/6201.html
Burnett, M., Kulesza, T.: End-user development in Internet of Things: we the people. In: International Reports on Socio-Informatics (IRSI), Proceedings of the CHI 2015 - Workshop on End User Development in the Internet of Things Era, vol. 12, no. 2, pp. 81–86 (2015)
Buyya, R., Dastjerdi, A.V.: Internet of Things: Principles and Paradigms. Elsevier (2016)
Zenodys B.V.: Zenodys. https://www.zenodys.com/. Accessed 2020
Chang, S.: Handbook of Software Engineering and Knowledge Engineering. World Scientific Publishing Co. (2002)
Chen, S., Xu, H., Liu, D., Hu, B., Wang, H.: A vision of IoT: applications, challenges, and opportunities with China Perspective. IEEE Internet Things J. 1(4), 349–359 (2014)
Cheng, B., Kovacs, E., Kitazawa, A., Terasawa, K., Hada, T., Takeuchi, M.: Fogflow: orchestrating IoT services over cloud and edges. NEC Techn. J. 13, 48–53 (2018)
Cheng, B., Solmaz, G., Cirillo, F., Kovacs, E., Terasawa, K., Kitazawa, A.: FogFlow: easy programming of IoT services over cloud and edges for smart cities. IEEE Internet Things J. PP, 1–1 (2017)
De Luca, G., Li, Z., Mian, S., Chen, Y.: Visual programming language environment for different IoT and robotics platforms in computer science education. CAAI Trans. Intell. Technol. 3(2), 119–130 (2018)
Desolda, G., Malizia, A., Turchi, T.: A tangible-programming technology supporting end-user development of smart-environments. In: Proceedings of the Workshop on Advanced Visual Interfaces, pp. 59:1–59:3. ACM, New York (2018)
Dias, J.P., Couto, F., Paiva, A.C.R., Ferreira, H.S.: A brief overview of existing tools for testing the Internet-of-Things. In: IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pp. 104–109 (2018)
Dias, J.P., Faria, J.P., Ferreira, H.S.: A reactive and model-based approach for developing Internet-of-Things systems. In: 11th International Conference on the Quality of Information and Communications Technology, pp. 276–281 (2018)
Dias, J.P., Ferreira, H.S., Sousa, T.B.: Testing and deployment patterns for the Internet-of-Things. In: Proceedings of the 24th European Conference on Pattern Languages of Programs. EuroPLop 2019. Association for Computing Machinery, New York (2019). https://doi.org/10.1145/3361149.3361165
Dias, J.P., Restivo, A., Ferreira, H.S.: Empowering visual Internet-of-Things mashups with self-healing capabilities. In: 2021 IEEE/ACM 2nd International Workshop on Software Engineering Research Practices for the Internet of Things (SERP4IoT) (2021)
Dias, J.P., Sousa, T.B., Restivo, A., Ferreira, H.S.: A pattern-language for self-healing Internet-of-Things systems. In: Proceedings of the 25th European Conference on Pattern Languages of Programs. EuroPLop 2020. Association for Computing Machinery, New York (2020). https://doi.org/10.1145/3361149.3361165
Dias, J.P., Lima, B., Faria, J.P., Restivo, A., Ferreira, H.S.: Visual self-healing modelling for reliable Internet-of-Things systems. In: Proceedings of the 20th International Conference on Computational Science, pp. 27–36. Springer (2020)
Ens, B., Anderson, F., Grossman, T., Annett, M., Irani, P., Fitzmaurice, G.: Ivy: exploring spatially situated visual programming for authoring and understanding intelligent environments. In: Proceedings - Graphics Interface, pp. 156–163 (2017)
Eterovic, T., Kaljic, E., Donko, D., Salihbegovic, A., Ribic, S.: An Internet of Things visual domain specific modeling language based on UML. In: Proceedings of the 25th International Conference on Information, Communication and Automation Technologies (2015)
Eun, S., Jung, J., Yun, Y.S., So, S.S., Heo, J., Min, H.: An end user development platform based on dataflow approach for IoT devices. J. Intell. Fuzzy Syst. 35(6), 6125–6131 (2018). https://doi.org/10.3233/JIFS-169852
Fayed, M.S., Al-Qurishi, M., Alamri, A., Al-Daraiseh, A.A.: PWCT: visual language for IoT and cloud computing applications and systems. In: ACM International Conference Proceeding Series (2017)
Ghiani, G., Manca, M., Paterno, F., Santoro, C.: Personalization of context-dependent applications through trigger-action rules. ACM Trans. Comput. Hum. Interact. 24(2), 14:1–14:33 (2017)
Giang, N.K., Lea, R., Leung, V.C.M.: Exogenous coordination for building fog-based cyber physical social computing and networking systems. IEEE Access 6, 31740–31749 (2018)
Giang, N.K., Blackstock, M., Lea, R., Leung, V.C.: Developing IoT applications in the Fog: a distributed dataflow approach. In: Proceedings of the 5th International Conference on the Internet of Things, pp. 155–162 (2015)
Grasp IO Innovations Pvt. Ltd.: GraspIO. https://www.grasp.io/. Accessed 2020
Gupta, H., Vahid Dastjerdi, A., Ghosh, S.K., Buyya, R.: iFogSim: A toolkit for modeling and simulation of resource management techniques in the Internet of Things, Edge and Fog computing environments. Softw. Pract. Exp. 47(9), 1275–1296 (2017)
Ihirwe, F., Di Ruscio, D., Mazzini, S., Pierini, P., Pierantonio, A.: Low-code engineering for internet of things: a state of research. In: Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings. MODELS 2020, USA (2020)
Kefalakis, N., Soldatos, J., Anagnostopoulos, A., Dimitropoulos, P.: A visual paradigm for IoT solutions development. In: Interoperability and Open-Source Solutions for the Internet of Things, vol. 9001, pp. 26–45. Springer, Cham (2015)
Lago, A.S., Dias, J.P., Ferreira, H.S.: Managing non-trivial Internet-of-Things systems with conversational assistants: a prototype and a feasibility experiment. J. Comput. Sci. 51, 101324 (2021)
NAAS, M.I., Lemarchand, L., Boukhobza, J., Raipin, P.: A graph partitioning-based heuristic for runtime IoT data placement strategies in a fog infrastructure. In: 33rd Annual ACM Symposium on Applied Computing, pp. 767–774 (2018)
NETLabTK: Tools for Tangible Design. www.netlabtoolkit.org/. Accessed 2020
Node-RED. https://nodered.org/. Accessed 2020
NooDL. https://classic.getnoodl.com/. Accessed 2020
Noor, J., Tseng, H.Y., Garcia, L., Srivastava, M.: DDFlow: visualized declarative programming for heterogeneous IoT networks. In: Proceedings of the 2019 Internet of Things Design and Implementation, pp. 172–177. ACM (2019)
Pathirana, D., Sonnadara, S., Hettiarachchi, M., Siriwardana, H., Silva, C.: WireMe - IoT development platform for everyone. In: 3rd International Moratuwa Engineering Research Conference, MERCon 2017, pp. 93–98 (2017)
Petersen, K., Vakkalanka, S., Kuzniarz, L.: Guidelines for conducting systematic mapping studies in software engineering: an update. Inf. Softw. Technol. 64, 1–18 (2015)
Pinto, D., Dias, J.P., Sereno Ferreira, H.: Dynamic allocation of serverless functions in IoT environments. In: 2018 IEEE 16th International Conference on Embedded and Ubiquitous Computing (EUC), pp. 1–8, October 2018
Prehofer, C., Chiarabini, L.: From IoT mashups to model-based IoT. In: W3C Workshop on the Web of Things (2013)
Ramadas, A., Domingues, G., Dias, J.P., Aguiar, A., Ferreira, H.S.: Patterns for things that fail. In: Proceedings of the 24th Conference on Pattern Languages of Programs, PLoP 2017. ACM - Association for Computing Machinery (2017)
Ray, P.P.: A survey on visual programming languages in Internet of Things. Sci. Program. 2017, 1–6 (2017)
Sendorek, J., Szydlo, T., Windak, M., Brzoza-Woch, R.: Fogflow - computation organization for heterogeneous fog computing environments. In: Computational Science - ICCS 2019. pp. 634–647. Springer, Cham (2019)
Setiawan, R., Anom Besari, A.R., Wibowo, I.K., Rizqullah, M.R., Agata, D.: Mobile visual programming apps for Internet of Things applications based on raspberry Pi 3 platform. In: International Electronics Symposium on Knowledge Creation and Intelligent Computing, pp. 199–204, October 2019
Tomlein, M., Boovaraghavan, S., Agarwal, Y., Dey, A.K.: CharIoT: an end-user programming environment for the IoT. In: ACM International Conference Proceeding Series (2017). https://doi.org/10.1145/3131542.3140261
Tomlein, M., Grønbæk, K.: A visual programming approach based on domain ontologies for configuring industrial IoT installations. In: ACM International Conference Proceeding Series (2017). https://doi.org/10.1145/3131542.3131552
Torres, D., Dias, J.P., Restivo, A., Ferreira, H.S.: Real-time feedback in node-red for IoT development: an empirical study. In: IEEE/ACM 24th International Symposium on Distributed Simulation and Real Time Applications, pp. 1–8 (2020)
Valsamakis, Y., Savidis, A.: Visual end-user programming of personalized AAL in the Internet of Things. In: Lecture Notes in Computer Science, LNCS, vol. 10217, pp. 159–174 (2017). https://doi.org/10.1007/978-3-319-56997-0_13
Varshney, P., Simmhan, Y.: Demystifying fog computing: characterizing architectures, applications and abstractions. In: 2017 IEEE 1st International Conference on Fog and Edge Computing (ICFEC), pp. 115–124. IEEE (2017)
Wyliodrin. https://wyliodrin.com/. Accessed 2020
Zhang, K., Han, D., Feng, H.: Research on the complexity in Internet of Things. In: IET Conference Publications 2010 (571 CP), pp. 395–398 (2010)
Acknowledgement
This work is financed by National Funds through the Portuguese funding agency, FCT - Fundação para a Ciência e a Tecnologia, within project UIDB/50014/2020.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Silva, M., Dias, J.P., Restivo, A., Ferreira, H.S. (2021). A Review on Visual Programming for Distributed Computation in IoT. In: Paszynski, M., Kranzlmüller, D., Krzhizhanovskaya, V.V., Dongarra, J.J., Sloot, P.M. (eds) Computational Science – ICCS 2021. ICCS 2021. Lecture Notes in Computer Science(), vol 12745. Springer, Cham. https://doi.org/10.1007/978-3-030-77970-2_34
Download citation
DOI: https://doi.org/10.1007/978-3-030-77970-2_34
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-77969-6
Online ISBN: 978-3-030-77970-2
eBook Packages: Computer ScienceComputer Science (R0)