{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,1]],"date-time":"2026-04-01T20:00:54Z","timestamp":1775073654176,"version":"3.50.1"},"reference-count":33,"publisher":"MDPI AG","issue":"1","license":[{"start":{"date-parts":[[2025,1,7]],"date-time":"2025-01-07T00:00:00Z","timestamp":1736208000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Future Internet"],"abstract":"<jats:p>Embedded systems, particularly when integrated into the Internet of Things (IoT) landscape, are critical for projects requiring robust, energy-efficient interfaces to collect real-time data from the environment. As these systems become complex, the need for dynamic reconfiguration, improved availability, and stability becomes increasingly important. This paper presents the design of a framework architecture that supports dynamic reconfiguration and \u201con-the-fly\u201d code execution in IoT-enabled embedded systems, including a virtual machine capable of hot reloads, ensuring system availability even during configuration updates. A \u201chardware-in-the-loop\u201d workflow manages communication between the embedded components, while low-level coding constraints are accessible through an additional abstraction layer, with examples such as MicroPython or Lua. The study results demonstrate the VM\u2019s ability to handle serialization and deserialization with minimal impact on system performance, even under high workloads, with serialization having a median time of 160 microseconds and deserialization having a median of 964 microseconds. Both processes were fast and resource-efficient under normal conditions, supporting real-time updates with occasional outliers, suggesting room for optimization and also highlighting the advantages of VM-based firmware update methods, which outperform traditional approaches like Serial and OTA (Over-the-Air, the ability to update or configure firmware, software, or devices via wireless connection) updates by achieving lower latency and greater consistency. With these promising results, however, challenges like occasional deserialization time outliers and the need for optimization in memory management and network protocols remain for future work. This study also provides a comparative analysis of currently available commercial solutions, highlighting their strengths and weaknesses.<\/jats:p>","DOI":"10.3390\/fi17010023","type":"journal-article","created":{"date-parts":[[2025,1,7]],"date-time":"2025-01-07T05:06:34Z","timestamp":1736226394000},"page":"23","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":3,"title":["Framework Design for the Dynamic Reconfiguration of IoT-Enabled Embedded Systems and \u201cOn-the-Fly\u201d Code Execution"],"prefix":"10.3390","volume":"17","author":[{"given":"Elmin","family":"Marevac","sequence":"first","affiliation":[{"name":"Polytechnic Faculty, University of Zenica, 72000 Zenica, Bosnia and Herzegovina"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0083-1387","authenticated-orcid":false,"given":"Esad","family":"Kadu\u0161i\u0107","sequence":"additional","affiliation":[{"name":"Faculty of Educational Sciences, University of Sarajevo, 71000 Sarajevo, Bosnia and Herzegovina"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1898-201X","authenticated-orcid":false,"given":"Nata\u0161a","family":"\u017divi\u0107","sequence":"additional","affiliation":[{"name":"Faculty of Digital Transformation, Leipzig University of Applied Sciences, 04277 Leipzig, Germany"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8087-8176","authenticated-orcid":false,"given":"Nevzudin","family":"Buza\u0111ija","sequence":"additional","affiliation":[{"name":"Polytechnic Faculty, University of Zenica, 72000 Zenica, Bosnia and Herzegovina"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3596-645X","authenticated-orcid":false,"given":"Samir","family":"Leme\u0161","sequence":"additional","affiliation":[{"name":"Polytechnic Faculty, University of Zenica, 72000 Zenica, Bosnia and Herzegovina"}]}],"member":"1968","published-online":{"date-parts":[[2025,1,7]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","first-page":"072045","DOI":"10.1088\/1742-6596\/1486\/7\/072045","article-title":"Research on Embedded File Management System Based on Forth Virtual Machine","volume":"1486","author":"Wan","year":"2020","journal-title":"J. Phys. Conf. Ser."},{"key":"ref_2","doi-asserted-by":"crossref","unstructured":"Peng, L., Xu, H., Yu, J., Liu, X., and Guan, F. (2021, January 4\u20136). EmSBoTScript: A Tiny Virtual Machine-Based Embedded Software Framework. Proceedings of the 2021 5th International Conference on Computer Science and Artificial Intelligence (CSAI 2021), Beijing, China.","DOI":"10.1145\/3507548.3507592"},{"key":"ref_3","doi-asserted-by":"crossref","first-page":"e01998","DOI":"10.1016\/j.heliyon.2019.e01998","article-title":"A Real-Time Virtual Machine for Task Placement in Loosely-Coupled Computer Systems","volume":"5","author":"Elsedfy","year":"2019","journal-title":"Heliyon"},{"key":"ref_4","doi-asserted-by":"crossref","first-page":"101268","DOI":"10.1016\/j.cola.2024.101268","article-title":"WARDuino: An Embedded WebAssembly Virtual Machine","volume":"79","author":"Lauwaerts","year":"2024","journal-title":"J. Comput. Lang."},{"key":"ref_5","doi-asserted-by":"crossref","unstructured":"Mathew, D., and Jose, B.A. (2020, January 20). Profiling Applications for a Virtual Machine on an Embedded System. Proceedings of the 2020 Third International Conference on Advances in Electronics, Computers and Communications (ICAECC), Bangalore, India.","DOI":"10.1109\/ICAECC50550.2020.9339530"},{"key":"ref_6","doi-asserted-by":"crossref","unstructured":"Polakovic, J., Mazare, S., Stefani, J.-B., and David, P.-C. (2007). Experience with Safe Dynamic Reconfigurations in Component-Based Embedded Systems. Lecture Notes in Computer Science, Springer.","DOI":"10.1007\/978-3-540-73551-9_17"},{"key":"ref_7","doi-asserted-by":"crossref","unstructured":"Marevac, E., Kele\u0161tura, M., Junuzovi\u0107, A., Hod\u017ei\u0107, M., and Muhi\u0107, S. (2022). Design and Implementation of a Virtual Machine for a Dynamic Object-Oriented Programming Language. Lecture Notes in Networks and Systems, Springer.","DOI":"10.1007\/978-3-031-17697-5_59"},{"key":"ref_8","unstructured":"Bapty, T. (1999, January 7\u20138). Uniform Execution Environment for Dynamic Reconfiguration. Proceedings of the ECBS\u201999 IEEE Conference and Workshop on Engineering of Computer-Based Systems, Nashville, TN, USA."},{"key":"ref_9","unstructured":"Scott, J., Bapty, T., and Neema, S. (1999, January 1\u20134). Runtime Environment for Dynamically Reconfigurable Embedded Systems. Proceedings of the International Conference on Signal Processing Applications and Technology, Orlando, FL, USA."},{"key":"ref_10","doi-asserted-by":"crossref","unstructured":"Rana, V., Santambrogio, M., and Sciuto, D. (2007, January 27\u201330). Dynamic Reconfigurability in Embedded System Design. Proceedings of the 2007 IEEE International Symposium on Circuits and Systems (ISCAS), New Orleans, LA, USA.","DOI":"10.1109\/ISCAS.2007.378618"},{"key":"ref_11","doi-asserted-by":"crossref","first-page":"042099","DOI":"10.1088\/1742-6596\/1802\/4\/042099","article-title":"A Dynamic Reconfiguration Scheme for Embedded System Based on Multi-Core DSP","volume":"1802","author":"Liu","year":"2021","journal-title":"J. Phys. Conf. Ser."},{"key":"ref_12","unstructured":"Dunkels, A. (2006). A Low-Overhead Script Language for Tiny Networked Embedded Systems, Swedish Institute of Computer Science. Available online: https:\/\/urn.kb.se\/resolve?urn=urn:nbn:se:ri:diva-22035."},{"key":"ref_13","doi-asserted-by":"crossref","unstructured":"Kang, S., and Kim, H. (2014, January 1\u20138). The Study of the Virtual Machine for Space Real-Time Embedded Systems. Proceedings of the 2014 IEEE Aerospace Conference, Big Sky, MT, USA.","DOI":"10.1109\/AERO.2014.6836514"},{"key":"ref_14","doi-asserted-by":"crossref","unstructured":"Wang, W., Mishra, P., and Ranka, S. (2013). Dynamic Reconfiguration in Real-Time Systems. Embedded Systems, Springer.","DOI":"10.1007\/978-1-4614-0278-7"},{"key":"ref_15","unstructured":"(2024, November 04). Zerynth Documentation. Available online: https:\/\/olddocs.zerynth.com\/r2.3.0\/official\/core.zerynth.stdlib\/docs\/vm.html."},{"key":"ref_16","unstructured":"Industria Italiana (2024, November 04). IIoT Plug-and-Play with Zerynth: AI for SMEs. Available online: https:\/\/www.industriaitaliana.it\/iiot-plug-play-zerynth-pmi-tim-intelligenza-artificiale\/."},{"key":"ref_17","unstructured":"Damien, P. (2024, November 04). George, Paul Sokolovsky and Contributors. MicroPython Documentation. Available online: https:\/\/docs.micropython.org\/en\/latest\/index.html."},{"key":"ref_18","doi-asserted-by":"crossref","unstructured":"Gaspar, G., Fabo, P., Kuba, M., Dudak, J., and Nemlaha, E. (2020). MicroPython as a Development Platform for IoT Applications. Advances in Intelligent Systems and Computing, Springer.","DOI":"10.1007\/978-3-030-51965-0_34"},{"key":"ref_19","doi-asserted-by":"crossref","first-page":"635","DOI":"10.1002\/(SICI)1097-024X(199606)26:6<635::AID-SPE26>3.0.CO;2-P","article-title":"Lua\u2014An Extensible Extension Language","volume":"26","author":"Ierusalimschy","year":"1996","journal-title":"Softw. Pract. Exp."},{"key":"ref_20","unstructured":"Machado, A.D., and Fr\u00f6hlich, A.A. (2010). A Lua Virtual Machine for Resource-Constrained Embedded Systems. Laboratory for Software and Hardware Integration, Federal University of Santa Catarina."},{"key":"ref_21","unstructured":"NetBSD (2024, November 04). Lua in the NetBSD Kernel. Available online: https:\/\/www.netbsd.org\/gallery\/presentations\/mbalmer\/fosdem2012\/kernel_mode_lua.pdf."},{"key":"ref_22","unstructured":"Maakbaas (2024, November 04). ESP8266 IoT Framework. Available online: https:\/\/github.com\/maakbaas\/esp8266-iot-framework."},{"key":"ref_23","unstructured":"Maakbaas (2024, November 04). ESP8266 IoT Framework. Available online: https:\/\/maakbaas.com\/esp8266-iot-framework\/."},{"key":"ref_24","unstructured":"Suraj151 (2024, November 04). ESP8266 Framework. Available online: https:\/\/github.com\/Suraj151\/esp8266-framework."},{"key":"ref_25","doi-asserted-by":"crossref","unstructured":"Chin, S., Vos, J., and Weaver, J. (2019). The Definitive Guide to Modern Java Clients with JavaFX: Cross-Platform Mobile and Cloud Development, APress.","DOI":"10.1007\/978-1-4842-4926-0"},{"key":"ref_26","doi-asserted-by":"crossref","first-page":"161","DOI":"10.1016\/j.ijforecast.2019.04.016","article-title":"The Value Added by Machine Learning Approaches in Forecasting","volume":"36","author":"Gilliland","year":"2020","journal-title":"Int. J. Forecast."},{"key":"ref_27","unstructured":"PlatformIO (2024, November 04). What Is PlatformIO?. Available online: https:\/\/docs.platformio.org\/en\/latest\/what-is-platformio.html."},{"key":"ref_28","doi-asserted-by":"crossref","first-page":"171","DOI":"10.1016\/j.entcs.2004.02.075","article-title":"Towards Testing and Analysis of Systems that Use Serialization","volume":"116","author":"Denaro","year":"2005","journal-title":"Electron. Notes Theor. Comput. Sci."},{"key":"ref_29","doi-asserted-by":"crossref","first-page":"1","DOI":"10.5381\/jot.2018.17.1.a2","article-title":"Dynamic Software Update from Development to Production","volume":"17","author":"Tesone","year":"2018","journal-title":"J. Object Technol."},{"key":"ref_30","unstructured":"(2024, November 04). Espressif Systems. Available online: https:\/\/www.espressif.com\/en\/products\/socs."},{"key":"ref_31","first-page":"1159","article-title":"The Implementation of Lua 5.0","volume":"11","author":"Ierusalimschy","year":"2005","journal-title":"J. Univers. Comput. Sci."},{"key":"ref_32","unstructured":"Dada\u2019s Perl Lab (2024, November 04). The Great Win32 Computer Language Shootout. Available online: https:\/\/dada.perl.it\/shootout\/."},{"key":"ref_33","doi-asserted-by":"crossref","unstructured":"Levis, P., and Culler, D. (2002, January 5\u20139). Mat\u00e9: A tiny virtual machine for sensor networks. Proceedings of the 10th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS\u201902), San Jose, CA, USA.","DOI":"10.1145\/605406.605407"}],"container-title":["Future Internet"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1999-5903\/17\/1\/23\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,8]],"date-time":"2025-10-08T10:24:19Z","timestamp":1759919059000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1999-5903\/17\/1\/23"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,1,7]]},"references-count":33,"journal-issue":{"issue":"1","published-online":{"date-parts":[[2025,1]]}},"alternative-id":["fi17010023"],"URL":"https:\/\/doi.org\/10.3390\/fi17010023","relation":{},"ISSN":["1999-5903"],"issn-type":[{"value":"1999-5903","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,1,7]]}}}