You are currently viewing a new version of our website. To view the old version click .
Electronics
  • Article
  • Open Access

14 September 2023

Efficient Model-Driven Prototyping for Edge Analytics

,
,
,
,
,
and
1
Confirm—Centre for Smart Manufacturing, V94 C928 Limerick, Ireland
2
Department of Computer Science and Information Systems, University of Limerick, V94 T9PX Limerick, Ireland
3
Centre for Research Training in Artificial Intelligence, T12 XF62 Cork, Ireland
4
Lero—Science Foundation Ireland Research Centre for Software, V94 T9PX Limerick, Ireland

Abstract

Software development cycles in the context of Internet of Things (IoT) applications require the orchestration of different technological layers, and involve complex technical challenges. The engineering team needs to become experts in these technologies and time delays are inherent due to the cross-integration process because they face steep learning curves in several technologies, which leads to cost issues, and often to a resulting product that is prone to bugs. We propose a more straightforward approach to the construction of high-quality IoT applications by adopting model-driven technologies (DIME and Pyrus), that may be used jointly or in isolation. The presented use case connects various technologies: the application interacts through the EdgeX middleware platform with several sensors and data analytics pipelines. This web-based control application collects, processes and displays key information about the state of the edge data capture and computing that enables quick strategic decision-making. In the presented case study of a Stable Storage Facility (SSF), we use DIME to design the application for IoT connectivity and the edge aspects, MongoDB for storage and Pyrus to implement no-code data analytics in Python. We have integrated nine independent technologies in two distinct Low-code development environments with the production of seven processes and pipelines, and the definition of 25 SIBs in nine distinct DSLs. The presented case study is benchmarked with the platform to showcase the role of code generation and the reusability of components across applications. We demonstrate that the approach embraces a high level of reusability and facilitates domain engineers to create IoT applications in a low-code fashion.

1. Introduction

Modern IoT architectures enable efficient communication among interconnected infrastructures of sensors, devices, and systems, with the intention of offering innovative solutions for diverse applications [1]. In recent years, there has been a significant increase in the adoption of various IoT platforms and there is a growing demand for these platforms, devices and solutions from different vendors to seamlessly work together. This need not only leads to interoperability challenges in the ecosystem, but also makes the software development process more complex. The complexity across the different technological layers that compose a system requires deep and cross-functional technical expertise and integration knowledge for each of the involved heterogeneous system. In this context, IoT middleware platforms become an integral part of the IoT ecosystem that provides a common interface between the different sensors, computing devices, and actuators. These platforms address different kinds of requirements and often push project managers to perform an exhaustive analysis before choosing and implementing a specific type of architecture. From the point of view of application developers, the lack of compatibility between IoT platforms introduces an extra step towards tailoring their application to support platform-specific APIs. Considering the specifications of the application under development, the analysis may concentrate on various aspects such as interoperability, scalability, security and privacy, spontaneous interaction, or an unfixed structure.
In this context, we are developing a low-code Digital Thread Platform (DTP) [2] for Cyber-Physical Systems (CPS), which is based on the principles of Model Driven Development (MDD) and supports the capabilities of automatic code generation from the formal semantics underlying the models. It also supports one-click deployment of heterogeneous applications that require the interoperability across various systems, technologies and programming paradigms. The platform also enables the development of personalised solutions by seamlessly integrating applications and solutions into the wider landscape of enterprise applications, harnessing the potential of digital threads and digital twins [3,4]. We opted for model types that have well-defined semantics for formal analysis and verification. This decision is based on our belief in the advantages of early validation and verification at the model level, as well as its enabling the automated support for syntactic and semantic correctness.
We discuss as a case study the development of an IoT application including Edge Analytics by using two low-code platforms. We consider here the scenario of controlling and maintaining the environmental conditions of a storage facility as an example of a Stable Storage Facility (SSF), where the temperature, humidity and light intensity levels need to be maintained at the required levels in the facility. We leverage the usage of two low/no-code development environments, DIME [5] and Pyrus [6] to extend the horizon of services, platforms and the domain-specific functionalities that they support. Figure 1 shows the architecture of the Digital Thread platform, where the modeling Languages layer provides the essential modeling capabilities, e.g., for the GUI, data persistence, etc. The Process modeling layer models the business logic for the application in combination with already implemented Common and External Native Domain Specific Languages (DSLs). External Native DSLs are the set of services, technologies and platforms that reside on top of the standard DIME distribution. The different categories of functionalities that the platform supports are either already implemented/integrated (solid arrows among the External Service Providers) or in the testing phase/in progress (dotted arrows).
Figure 1. Architecture Overview of the Low-code Digital Thread Platform.
The rest of the paper is organised as follows: Section 2 summarises related work, Section 3 gives an overview of the software platforms adopted for the use case, Section 4 discusses the use case of a stable storage facility, Section 5 discusses the results, and Section 6 concludes and outlines future work.

3. The Software Platforms

In this section, we describe our technology stack for this case study and why we chose those technologies. Further, we show how the Native SIB concept leads to the production of reusable SIB palettes.

3.1. The Two LC/NC Integrated Modeling Environments

For this work, DIME and Pyrus are used as the modeling environments of choice. The combined view of control and data flow in DIME makes it easier to formulate complex workflows. Additionally, the interaction between DIME’s data and process layer allows checking the data types used by the individual SIBs, which helps to ensure the correctness of the operations. However, the complexity of DIME can also be too much when one just wants to analyse the collected data. So, Pyrus will be used for this step in the case study. The pure data flow approach of Pyrus makes it easy to clean, analyse and visualise the outcomes.

3.2. The External Software Platforms and Applications

EdgeX Foundry [39] is a leading open-source Industrial IoT middleware platform. It is widely used by industry and research teams for industrial automation. It helps exploit the benefits of the edge in terms of computing and intelligence. Its internal architecture has four service layers: (1) device services (2) core services, (3) supporting services, and (4) application services. A detailed description of all the layers and associated microservices can be found in [40,41]. The EdgeX services needed for our SSF use case are provided in DIME as an EdgeX-specific native DSL.
The Atlas NoSQL cloud database is a Database-as-a-Service product by MongoDB [42] that is optimised for complex data objects in real-time, which is one of the core needs of IoT applications. Hence, we use MongoDB to store/access the data collected from the Pycom FiPy sensors (light, temperature and humidity) via MongoDB-specific native DSL.
R [43] is an open-source programming language specifically for statistical computations and data visualisation. We use an R language native DSLs to analyse and visualise the datasets collected from different sensors.
Docker [44] is an open-source cutting-edge containerisation platform revolutionizing the way software applications are developed, deployed, and managed. With its lightweight, portable containers, Docker empowers developers to build, ship, and run applications seamlessly across diverse environments, ensuring consistency and scalability in the modern era of software development. We use Docker to securely deploy frameworks, services and platforms in separate containers.

3.3. The Native SIBs and SIBs Palettes

Figure 4a shows the visual representation of an SIB when used in a process model. The SIB requires two text inputs, a JSON string and a device_name, either from another SIB via data flow (dotted) edges or a static value.
Figure 4. Native EdgeX palette: the read_device_data SIB in DIME [45]. (a) The SIB in DIME. (b) The SIB body implementation in Java.
The backend implementation of this SIB in Java is shown in Figure 4b and is invoked at runtime, it reads all the values of the database from the different devices connected to the middleware. If the execution is successful, the corresponding data output is made available and the outgoing control branch labelled success leads to the next SIB in the workflow.
The low-code part of the development process consists of extending the capabilities of the DIME platform through this integration of further native SIBs when developing a new application. Every SIB is developed once and integrated into the platform for further reuse. This way the development of further applications that require similar functionalities in systems becomes increasingly a no-code task that also leads to much more efficient and waste-free production of software, based on large-scale reuse of quality-assessed components.

4. The Use Case: Stable Storage Facility

We illustrate the application of our low code development platforms through a specific IoT use case: controlling and maintaining the environmental conditions of a storage facility, where the temperature, humidity and light intensity need to be maintained at the required levels (SSF).

4.1. The SSF IoT Architecture

Figure 5 shows the run-time architecture of the SSF application. We use Pycom IoT devices to monitor the environment. In the experimental setting, Pycom FiPy devices are installed in the test environment (Lero building at the University of Limerick) to record the observations at fixed intervals. Each device periodically reports the data, i.e., light, humidity and temperature values, to an on-premise edge device. These devices send the data to the middleware platform (i.e., edge device with EdgeX Foundry listener) via the MQTT protocol that stores it in a no-SQL database in a MongoDB Atlas instance. Based on the received sensor data, the corresponding controlling actions can be enabled to manage the stability of conditions in the SSF. On the right side of Figure 5, we find the controller application. It is a web application developed in a low-code fashion using DIME and deployed into a dedicated Docker container. The web application manages all the devices and maintains stable environmental conditions. The web controller initiates the communication with the local MongoDB Atlas database and manages the data mobility with EdgeX Foundry over REST protocol and finally communicates internally with the R docker container for data-related computations and visualisations. We then implement the same data analytics pipelines in the Pyrus dataflow environment and then extend the analytics with more advanced features. This use case requires the integration and interoperation of a variety of systems, devices, software platforms, communication protocols and runtime environments. They are successfully orchestrated to produce a visualisation, an understanding and an interpretation of the data, in two different low-code platforms.
Figure 5. Stable Storage Facility (SSF): runtime architecture, infrastructure and communications.

4.2. Data Acquisition Process Model

Figure 6 shows the process model in DIME for the data acquisition from the IoT devices and its ingestion into MongoDB. In this model, the workflow starts with start SIB followed by a hierarchical GUI SIB for user interactions concerning device selection. The control flow then moves to the next SIB read_REST, reads the device data from the EdgeX Foundry instance and retrieves the corresponding raw data. For data collection, the SIB read_device_data, previously discussed in Section 3.3, parses the raw data, i.e., sensors data in JSON format from the middleware platform and returns the parsed data back to the GUI, which is then displayed on the web page. In the case of the storage requirements by the user, the control flow in Figure 6 proceeds to the right side of the workflow and performs the data ingestion into the MongoDB cloud database.
Figure 6. Data Acquisition from EdgeX Foundry and Data Ingestion into MongoDB-Process in DIME [45].

4.3. The SSF Control Application in DIME

Figure 7 shows the web page for the control application, where the header section displays the data collected from the different sensors: the temperature, humidity and light sensors. In the grid section, each "card" controls one of the actuators depending on the respective value/range that is selected using the range setter. Accordingly, all the sensors are continuously monitored. Whenever a sensor reaches one of its set threshold values, the controller will send the appropriate command to turn on/off the respective controlling unit: the cooling or heating unit in case of a temperature threshold, the humidifier in case of a humidity threshold and the lights based on the lux values. Additionally, the user also has the option to enable/disable selected devices using the toggle button visible at the top right of each card. For example, in this view, the Heating Unit is switched off while the other units are active. In this way, the application helps the users to optimise the environmental conditions of the Stable Storage Facility automatically with maximum efficiency.
Figure 7. The Control Application: the GUI.

4.4. The Reporting Dashboards in DIME and Pyrus

DIME: Figure 8 shows the process model for Analytics Dashboard in the DIME application, where connection_mongoDB SIB fetches the required data from storage and passes it to the split_data_frame SIB along with the column names that require splitting, e.g., in this case, a total of four channels from two devices, i.e., light_ch1, light_ch2, light_ch3 and light_ch4. The next SIBs plot the graphs against these data frames, as shown in Figure 9. The plots are then displayed on the web application using the GUI SIB analytics_dashboard.
Figure 8. Analytics Dashboard in R: the process in DIME [45].
Figure 9. Dual and quad summary line plots generated using R and the DIME DSLs and processes [45].
Pyrus: Now we discuss how we carry out essentially the same computations in Python using another low-code/no-code platform: Pyrus. Figure 10 shows an alternative data processing pipeline implemented in the Pyrus. The pipeline starts by establishing a connection to the MongoDB with the connection_to_mongoDB block with the required inputs. It again fetches the required data in JSON format and the data frame is passed to the next block, convert_to_datetime for preprocessing. The data frame and the names of the channels are then passed to the block dataframe_split to create a separate data frame for each light channel. Finally, the plot_all_data block plots the same graphs in Pyrus as shown in Figure 9.
Figure 10. Analytics Dashboard in Python: the Pyrus pipeline [45].
Further, we extended the analytics capabilities of the pipeline from Figure 10 with additional parameters, as shown in Figure 11. This new pipeline analyses the data collected from light, humidity and temperature sensors. The data are directly acquired from the MongoDB database using the connection_to_mongoDB block. The data are then pre-processed by dropping the irrelevant columns, renaming existing columns and converting the time column to Pandas datetime format using the clean_df block. Since the data are collected from the devices over the span of several days, a range of dates can be selected for analysis. This happens using the date_mask block, where the sample date of 18 November 2022 is input. The final plot_all_data block plots all the processed data frames in the Pyrus dashboard, as shown in Figure 12.
Figure 11. Extended Pyrus pipeline.
Figure 12. Advanced Analytics visualisations generated using Python and Pyrus.

5. Results and Discussion

The presented case study concretises a heterogeneous architecture for the development of low-code IoT applications, where sensor devices interact with an orchestrator and an analytics server to automatically control the environmental parameters via a web controller based on the sensors’ input, and eventually facilitate the decision-making process with the help of data analytics, which enables the storage facility supervisors to take future decisions. In the concrete experimental setting, we consider the scenario of controlling and maintaining the environmental conditions of a Stable Storage Facility (SSF) where the temperature, humidity and light intensity levels need to be maintained at the required levels.

5.1. Platform Extension through New DSLs

We have extended the Native DSLs for EdgeX Foundry, REST, R, and MongoDB, while also addressing MQTT and Raspberry Pi. From the DIME processes, we communicate with the EdgeX Foundry services via REST protocol without any manual integrations. For the sensor devices, we use standard APIs to capture and send data to the EdgeX Foundry server using the MQTT protocol over WiFi. Altogether, we have integrated nine independent technologies in two distinct Low-code development environments with the production of seven processes and pipelines, and the definition of 25 SIBs in 9 distinct DSLs. The significance of this approach lies in its contribution to the extent of the supported functionalities in the Digital Thread Platform of Figure 1.

5.2. Benchmarking Code Generation

Embracing a platform mindset results in a single implementation of functionality with high reusability across multiple domains by very different domain experts. Additionally, a large part of the code is automatically generated from the models. To showcase these effects, we benchmark two of the implemented case studies: the SSF presented in this work and the predictive maintenance case study presented in [46].
Figure 13 shows the count of total lines of code generated (blue bars) for the implemented pipelines vs. the lines of code manually implemented (orange bars) as new SIBs. In Table 1, we see that for all three languages (Dart for the frontend, Java for the business logic and HTML for the UI), the new code written manually is a fraction of the total code. For Java in our use case, we have 1326 new lines of code in comparison with 10,889 resulting from the generation, which links also preexisting SIBs. This means that we wrote only 12.18% of the new code needed for this application, and the data show that this proportion is similar across languages and case studies. This comparison demonstrates that the dependency on software developers for new code is greatly reduced because we leverage the generation from models and the availability of the platform and prior DSLs.
Figure 13. Total lines of code vs. newly added functionality code in both DTP applications.
Table 1. Code stats for DTP applications.

5.3. Effects on Reuse

The encapsulation of this heterogeneity within the DSLs via uniform graphical representation in DIME makes it possible for domain experts to correctly identify and reuse large portions of functionality across different applications. Identifying features in code with the goal of encapsulation and reuse is a well-known nightmare at the code level, as it requires reverse engineering of code and dependencies. This is a core reason why even very common functionality is re-implemented over and over again. With our low-code, graphical and generation-based approach, we avoid the problem by learning to work with only three DIME model types. In addition, domain experts can create high-quality applications spanning across various application domains and technologies without requiring the mastery of the underlying technologies, programming languages, or communication protocols.
In terms of relevance to the IoT user community, this is a transformative contribution where, rather than requiring expertise in a multitude of diverse technologies, users only need training on these low-code platforms with small learning curves because of the simpler abstractions compared to traditional programming languages. After initial training, IoT application developers can effortlessly design, deploy, maintain, and evolve their applications in a uniform environment through platforms like DIME and Pyrus. The proposed approach can effectively support the development and deployment of small to large-scale IoT applications using the multi-node Edge-X deployment.
In terms of the choice of models, we chose to combine simplicity [47] with formality [48,49], to enable ease of comprehension by a wide range of specialists and at the same time pave the way to automated verification and validation along the lines of [50] for model checking, [51] for automated synthesis, [49,52] for automated testing and validation, and [53] for the automated support of CI/CD. Altogether, the long-term goal is to support the full lifecycle of continuous model-driven engineering [54].

6. Conclusions and Future Work

Domain-specific languages in a low-code and underlying model-driven paradigm have become a popular approach to design, develop and quickly ship heterogeneous systems. In this use case, we developed a heterogeneous system that connects various technologies: the web application interacts through the EdgeX middleware platform with several sensors and data analytics pipelines. We presented a specific IoT use case: controlling and maintaining the environmental conditions of a storage facility, where the temperature, humidity and light intensity need to be maintained at the required levels (SSF). The edge computing and analytics-related SIBs are developed and added to the suite of External Native DSLs library of the Digital Thread Platform. The developed application collects, processes and displays key information about the state of the edge data capture and computing. We use DIME to design the complete application and to implement the IoT and edge aspects, and Pyrus to implement no-code data analytics in Python. The developed case study is benchmarked and compared with prior case studies to showcase the aspects of reusability. We demonstrate and conclude that both are straightforward approaches in which domain experts can create IoT applications in a low-code fashion. Our next steps include the extension of the supported devices, protocols and services within the capabilities of the DTP.

Author Contributions

Conceptualization, all authors; underlying platform selection, T.M. and D.P.; architecture design, H.A.A.C., I.G., A.S. (Amandeep Singh), A.S. (Alexander Schieweck) and J.J.; implementation, H.A.A.C., I.G., A.S. (Amandeep Singh) and J.J.; resources, H.A.A.C., I.G., A.S. (Amandeep Singh), A.S. (Alexander Schieweck) and J.J.; hardware setup, D.P., J.J., H.A.A.C., I.G. and A.S. (Amandeep Singh); writing—original draft preparation, I.G., A.S. (Amandeep Singh), H.A.A.C., A.S. (Alexander Schieweck) and J.J.; writing—review and editing, T.M., D.P., H.A.A.C., I.G. and A.S. (Alexander Schieweck); supervision, T.M. and D.P.; project administration, H.A.A.C., I.G. and T.M.; funding acquisition, T.M. and D.P. All authors have read and agreed to the published version of the manuscript.

Funding

This project received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie Smart 4.0 Co-Fund, grant agreement No. 847577; and research grants from Science Foundation Ireland (SFI) under Grant Number 16/RC/3918 to Confirm—Centre for Smart Manufacturing (www.confirm.ie), 13/RC/2094_2 to Lero—Science Foundation Ireland Research Centre for Software (www.lero.ie), and 18/CRT/6223 to SFI Centre of Research Training in AI (www.crt-ai.ie).

Data Availability Statement

Data sharing is not applicable to this article.

Conflicts of Interest

The authors declare no conflict of interest.

Abbreviations

The following abbreviations are used in this manuscript:
DSLDomain Specific Language
DTPDigital Thread Platform
CPSCyber-Physical Systems
IoTInternet of Things
JSONJava Script Object Notation
MDDModel Driven Development
SIBService Independent Building Block
SSFStable Storage Facility
XMDDeXtreme Model-Driven Design

References

  1. Irmak, E.; Bozdal, M. Internet of Things (IoT): The Most Up-To-Date Challenges, Architectures, Emerging Trends and Potential Opportunities. Int. J. Comput. Appl. 2017, 975, 8887. [Google Scholar] [CrossRef]
  2. Margaria, T.; Chaudhary, H.A.A.; Guevara, I.; Ryan, S.; Schieweck, A. The interoperability challenge: Building a model-driven digital thread platform for CPS. In Proceedings of the International Symposium on Leveraging Applications of Formal Methods, Rhodes, Greece, 17–29 October 2021; Volume 13036, pp. 393–413. [Google Scholar]
  3. Siemens. Creating a Digital Thread Using Low-Code to Enable Digital Twins. Available online: https://www.plm.automation.siemens.com/media/global/en/CIMdata%20Commentary-%20Creating%20a%20Digital%20Thread%20Using%20Low-Code%20to%20Enable%20Digital%20Twins%20%281%29_tcm27-109430.pdf (accessed on 3 August 2023).
  4. Siemens. Low-Code Platforms Assist in the Creation and Maintenance of Digital Threads and Digital Twins. Available online: https://resources.sw.siemens.com/en-US/article-mendix-low-code-platforms-assist-digital-thread-digital-twin (accessed on 3 August 2023).
  5. Boßelmann, S.; Frohme, M.; Kopetzki, D.; Lybecait, M.; Naujokat, S.; Neubauer, J.; Wirkner, D.; Zweihoff, P.; Steffen, B. DIME: A Programming-Less Modeling Environment for Web Applications. In Proceedings of the ISoLA 2016, Corfu, Greece, 10–14 October 2016; Margaria, T., Steffen, B., Eds.; Lecture Notes in Computer Science. Springer International Publishing: Cham, Switzerland, 2016; Volume 9953, pp. 809–832. [Google Scholar]
  6. Zweihoff, P.; Steffen, B. Pyrus: An online modeling environment for no-code data-analytics service composition. In Proceedings of the ISoLA 2021, Rhodes, Greece, 17–29 October 2021; Springer: Berlin/Heidelberg, Germany, 2021; Volume 13036, pp. 18–40. [Google Scholar]
  7. Statista. How Much Faster is Low-Code Development Comparing to Traditional Development? Available online: https://www.statista.com/statistics/1254662/low-code-development-speed-compared-traditional-it/ (accessed on 3 November 2022).
  8. Statista. Low-Code Development Global Platform Market Revenue. Available online: https://www.statista.com/statistics/1226179/low-code-development-platform-market-revenue-global/ (accessed on 3 May 2022).
  9. Tines-No-Code Automation for Security Teams. Available online: https://www.tines.com/lessons/storyboard/ (accessed on 3 May 2022).
  10. PTC. Thingworx. Available online: https://www.ptc.com/en/products/thingworx (accessed on 3 May 2022).
  11. AWS. Amazon Web Services IoT. Available online: https://aws.amazon.com/iot/ (accessed on 1 June 2022).
  12. Microsoft. Azure IoT. Available online: https://www.microsoft.com/ (accessed on 3 May 2022).
  13. H2o.ai. Democratizing Generative AI. Available online: https://www.h2o.ai/ (accessed on 3 May 2022).
  14. Moin, A.; Challenger, M.; Badii, A.; Günnemann, S. Supporting AI engineering on the IoT edge through model-driven TinyML. In Proceedings of the 2022 IEEE 46th Annual Computers, Software, and Applications Conference (COMPSAC), Los Alamitos, CA, USA, 27 June–1 July 2022; pp. 884–893. [Google Scholar]
  15. Iyenghar, P.; Pulvermueller, E. A model-driven workflow for energy-aware scheduling analysis of IoT-enabled use cases. IEEE Internet Things J. 2018, 5, 4914–4925. [Google Scholar] [CrossRef]
  16. Steinberg, D.; Budinsky, F.; Merks, E.; Paternostro, M. EMF: Eclipse Modeling Framework; Pearson Education: Harlow, UK, 2008. [Google Scholar]
  17. Jörges, S. Construction and Evolution of Code Generators: A Model-Driven and Service-Oriented Approach; Springer: Berlin/Heidelberg, Germany, 2013; Volume 7747. [Google Scholar]
  18. Barriga, J.A.; Clemente, P.J.; Sosa-Sánchez, E.; Prieto, Á.E. SimulateIoT: Domain Specific Language to design, code generation and execute IoT simulation environments. IEEE Access 2021, 9, 92531–92552. [Google Scholar] [CrossRef]
  19. Gamboa, M.; Syriani, E. Improving user productivity in modeling tools by explicitly modeling workflows. Softw. Syst. Model. 2019, 18, 2441–2463. [Google Scholar] [CrossRef]
  20. Syriani, E.; Vangheluwe, H.; Mannadiar, R.; Hansen, C.; Van Mierlo, S.; Ergin, H. AToMPM: A web-based modeling environment. In Proceedings of the Joint Proceedings of MODELS’13 Invited Talks, Demonstration Session, Poster Session, and ACM Student Research Competition co-Located with the 16th International Conference on Model Driven Engineering Languages and Systems (MODELS 2013), Miami, FL, USA, 29 September–4 October 2013; pp. 21–25. [Google Scholar]
  21. Heineman, G.T.; Councill, W.T. Component-based software engineering. Putt. Pieces Together-Addison-Westley 2001, 5, 1. [Google Scholar]
  22. Crnkovic, I.; Sentilles, S.; Vulgarakis, A.; Chaudron, M.R. A classification framework for software component models. IEEE Trans. Softw. Eng. 2010, 37, 593–615. [Google Scholar] [CrossRef]
  23. Becker, S.; Koziolek, H.; Reussner, R. Model-based performance prediction with the palladio component model. In Proceedings of the 6th International Workshop on Software and Performance, Buenes Aires, Argentina, 5–8 February 2007; pp. 54–65. [Google Scholar]
  24. Contieri, A.C.; Correia, G.G.; Colanzi, T.E.; Gimenes, I.M.; Oliveira, E.A.; Ferrari, S.; Masiero, P.C.; Garcia, A.F. Extending UML components to develop software product-line architectures: Lessons learned. In Proceedings of the Software Architecture: 5th European Conference (ECSA 2011), Essen, Germany, 13–16 September 2011; Springer: Berlin/Heidelberg, Germany, 2011; pp. 130–138. [Google Scholar]
  25. Sentilles, S.; Vulgarakis, A.; Bureš, T.; Carlson, J.; Crnković, I. A component model for control-intensive distributed embedded systems. In Proceedings of the International Symposium on Component-Based Software Engineering, Karlsruhe, Germany, 14–17 October 2008; Springer: Berlin/Heidelberg, Germany, 2008; pp. 310–317. [Google Scholar]
  26. Seceleanu, C.; Vulgarakis, A.; Pettersson, P. Remes: A resource model for embedded systems. In Proceedings of the 2009 14th IEEE International Conference on Engineering of Complex Computer Systems, Potsdam, Germany, 2–4 June 2009; pp. 84–94. [Google Scholar]
  27. OutSystems: High-Performance Low-Code for App Development. Available online: https://www.outsystems.com/ (accessed on 3 May 2022).
  28. Mendix: Low-Code Application Development Platform. Available online: https://www.mendix.com/ (accessed on 3 May 2022).
  29. Appian Platform for Process Automation. Available online: https://appian.com/ (accessed on 3 May 2022).
  30. Naujokat, S.; Lybecait, M.; Kopetzki, D.; Steffen, B. CINCO: A simplicity-driven approach to full generation of domain-specific graphical modeling tools. Int. J. Softw. Tools Technol. Transf. 2018, 20, 1–28. [Google Scholar] [CrossRef]
  31. Nikolov, N.; Dessalk, Y.D.; Khan, A.Q.; Soylu, A.; Matskin, M.; Payberah, A.H.; Roman, D. Conceptualization and scalable execution of big data workflows using domain-specific languages and software containers. Internet Things 2021, 16, 100440. [Google Scholar] [CrossRef]
  32. Boßelmann, S. Evolution of Ecosystems for Language-Driven Engineering. Ph.D. Thesis, Technical University Dortmund, Dortmund, Germany, 2023. Available online: https://eldorado.tu-dortmund.de/handle/2003/41375 (accessed on 3 May 2022).
  33. Margaria, T.; Steffen, B. Business process modeling in the jABC: The one-thing approach. In Handbook of Research on Business Process Modeling; IGI Global: Hershey, PA, USA, 2009; pp. 1–26. [Google Scholar]
  34. Margaria, T.; Steffen, B. eXtreme Model-Driven Development (XMDD) Technologies as a Hands-On Approach to Software Development Without Coding. Encycl. Educ. Inf. Technol. 2020, 732–750. [Google Scholar] [CrossRef]
  35. Node-RED. Low-Code Programming for Event-Driven Applications. Available online: https://nodered.org/ (accessed on 3 May 2022).
  36. Jung, G.; Hong, Y.; Hong, S.; Jang, D.; Jeong, Y.; Shin, W.; Park, J.; Kim, D.; Jeong, C.B.; Kim, D.U.; et al. A low-power embedded poly-Si micro-heater for gas sensor platform based on a FET transducer and its application for NO2 sensing. Sens. Actuators Chem. 2021, 334, 129642. [Google Scholar] [CrossRef]
  37. Shadrin, D.; Menshchikov, A.; Ermilov, D.; Somov, A. Designing future precision agriculture: Detection of seeds germination using artificial intelligence on a low-power embedded system. IEEE Sens. J. 2019, 19, 11573–11582. [Google Scholar] [CrossRef]
  38. Karray, F.; Jmal, M.W.; Garcia-Ortiz, A.; Abid, M.A.A.M. A comprehensive survey on wireless sensor node hardware platforms. Comput. Netw. 2018, 144, 89–110. [Google Scholar] [CrossRef]
  39. Foundry, E. The Preferred Edge IoT Plug and Play Ecosystem-Eabled Open Source Software Platform. Available online: https://www.edgexfoundry.org/ (accessed on 3 May 2022).
  40. John, J.; Ghosal, A.; Margaria, T.; Pesch, D. DSLs and Middleware Platforms in a Model-Driven Development Approach for Secure Predictive Maintenance Systems in Smart Factories. In Proceedings of the ISoLA 2021, Rhodes, Greece, 17–29 October 2021; Lecture Notes in Computer Science. Volume 13036, pp. 146–161. [Google Scholar]
  41. John, J.; Ghosal, A.; Margaria, T.; Pesch, D. DSLs for Model Driven Development of Secure Interoperable Automation Systems with EdgeX Foundry. In Proceedings of the 2021 Forum on Specification & Design Languages (FDL), Antibes, France, 8–10 September 2021; pp. 1–8. [Google Scholar]
  42. MongoDB Atlas Database. Multi-Cloud Database Service. Available online: https://www.mongodb.com/atlas/database (accessed on 3 May 2022).
  43. R. The R Project for Statistical Computing. Available online: https://www.r-project.org/ (accessed on 3 March 2022).
  44. Docker Inc. Docker. Available online: https://www.docker.com/ (accessed on 3 May 2022).
  45. Chaudhary, H.A.A.; Guevara, I.; John, J.; Singh, A.; Margaria, T.; Pesch, D. Low-code internet of things application development for edge analytics. In Proceedings of the IFIP International Internet of Things Conference, Amsterdam, The Netherlands, 27–28 October 2022; pp. 293–312. [Google Scholar]
  46. Chaudhary, H.A.A.; Margaria, T. DSL-based interoperability and integration in the smart manufacturing digital thread. Electron. Commun. EASST 2022, 81. [Google Scholar] [CrossRef]
  47. Margaria, T.; Floyd, B.D.; Steffen, B. IT simply works: Simplicity and embedded systems design. In Proceedings of the 2011 IEEE 35th Annual Computer Software and Applications Conference Workshops, Munich, Germany, 18–22 July 2011; pp. 194–199. [Google Scholar]
  48. Margaria, T.; Steffen, B. Lightweight coarse-grained coordination: A scalable system-level approach. Int. J. Softw. Tools Technol. Transf. 2004, 5, 107–123. [Google Scholar] [CrossRef]
  49. Steffen, B.; Margaria, T.; Classen, A. Heterogeneous analysis and verification for distributed systems. Softw. Concepts Tools 1996, 17, 13–25. [Google Scholar]
  50. Bakera, M.; Margaria, T.; Renner, C.D.; Steffen, B. Tool-supported enhancement of diagnosis in model-driven verification. Innov. Syst. Softw. Eng. 2009, 5, 211–228. [Google Scholar] [CrossRef]
  51. Lamprecht, A.L.; Naujokat, S.; Margaria, T.; Steffen, B. Synthesis-based loose programming. In Proceedings of the 2010 Seventh International Conference on the Quality of Information and Communications Technology, Porto, Portugal, 29 September–2 October 2010; pp. 262–267. [Google Scholar]
  52. Niese, O.; Steffen, B.; Margaria, T.; Hagerer, A.; Brune, G.; Ide, H.D. Library-based design and consistency checking of system-level industrial test cases. In Proceedings of the International Conference on Fundamental Approaches to Software Engineering, Genova, Italy, 2–6 April 2001; pp. 233–248. [Google Scholar]
  53. Tegeler, T.; Teumert, S.; Schürmann, J.; Bainczyk, A.; Busch, D.; Steffen, B. An introduction to graphical modeling of CI/CD workflows with rig. In Proceedings of the Leveraging Applications of Formal Methods, Verification and Validation: 10th International Symposium on Leveraging Applications of Formal Methods (ISoLA 2021), Rhodes, Greece, 17–29 October 2021; pp. 3–17. [Google Scholar]
  54. Margaria, T.; Steffen, B. Continuous model-driven engineering. Computer 2009, 42, 106–109. [Google Scholar] [CrossRef]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.