# Enhancing Dynamism of IoT Service Composition

Ruben Gomes, Noelia Correia

► To cite this version:

Ruben Gomes, Noelia Correia. Enhancing Dynamism of IoT Service Composition. 14th Doctoral Conference on Computing, Electrical and Industrial Systems (DoCEIS), Jul 2023, Monte Da Caparica, Portugal. pp.268-278, 10.1007/978-3-031-36007-7_20. hal-05473079

HAL Id: hal-05473079

https://inria.hal.science/hal-05473079v1

Submitted on 23 Jan 2026

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
<figure><img src="image_2.png" /></figure>

ifip

International Federation for Information Processing

This document is the original author manuscript of a paper submitted to an IFIP
conference proceedings or other IFIP publication by Springer Nature. As such, there
may be some differences in the official published version of the paper. Such
differences, if any, are usually due to reformatting during preparation for publication or
minor corrections made by the author(s) during final proofreading of the publication
manuscript.
<figure><img src="image_3.png" /></figure>

# Enhancing Dynamism of IoT Service Composition

Ruben Gomes and Noélia Correia

Center for Electronics, Optoelectronics, and Telecommunications (CEOT), University of
Algarve, Faro, Portugal
{rdgomes,ncorreia}@ualg.pt

**Abstract.** As IoT systems become more complex and interconnected, their ability to adapt to changes becomes essential. However, this dynamism needs to be addressed from early on and at different levels. Failure to recognize this will hinder the resulting system's flexibility. This article presents an analysis of composition approaches and technologies based on several criteria, in an attempt to identify common patterns or constructs that enhance specific dynamic traits which should be considered during development. Then, the identified elements within those criteria's methods and tools are mapped against the desired dynamic traits. By using cross classification, it is possible to recognize the most adequate alignment of dynamic traits among approaches. A comparative analysis is produced containing our findings. These outcomes are expected to contribute to the research community in developing more flexible distributed dynamic systems.

**Keywords:** Internet of Things · IoT Service Development · IoT Dynamic Composition

## 1 Introduction

With the number of internet of things (IoT) connections expected to reach close to 25 billion by 2025 [1], there is a unique opportunity to find ways to interconnect services and generate innovative solutions that bring value to businesses and users alike. Additionally, composing services into more abstract services is necessary for global systems to be able to manage the growing complexity.

By being a ubiquitous network of heterogeneous and pervasive devices, the IoT is capable of generating extensive information about the physical world [2], capturing a massive amount of data through embedded sensors in everyday objects, also known as things, and interacting with the environment via actuators. This enables the development of applications that interconnect physical and virtual things.

IoT areas of application include industrial, healthcare, retail, smart grid (energy), smart cities (public utilities and traffic management), agriculture, home automation, and potentially others still to be discovered. Typically, data that is collected by sensors in IoT applications is unstructured, and large in volume. This makes IoT an ideal candidate for
taking advantage of big data tools and techniques for storage, processing, and analytics. The web of things (WoT) will be an added value in this context as it aims to work against IoT fragmentation through the use of web technologies. This layer abstracts and hides both the complexity and heterogeneity of the lower-level device specifications [3], enabling the integration across IoT platforms and application domains.

The present article aims to advance the understanding of how the dynamic composition of services in the IoT can be attained at different levels of the systems' composition process in order to maximize the flexibility of the final solution. By considering dynamic aspects at an early stage of design, the problem of restricting the dynamic potential of the following composition levels can be mitigated. It is worth noting that service components will benefit from WoT Security and Privacy Guidelines, stated in [4]. These recommendations are independent of architectural perspectives, so that the behavior of systems is not constrained, and can be applied to any operating service composition.

This work is guided by the following research question:

RQ. Which constructs and specific characteristics in currently available IoT composition approaches, used at different levels of system development, enable dynamic traits in those compositions? How can these be aligned in order to best ensure a flexible solution?

This awareness and comparative analysis between counterpart approaches provides guidance for the development of dynamic distributed IoT systems by the research community.

The remainder of this paper is organized as follows. Section 2 relates this research to the theme of connected cyber physical spaces. In Sect. 3 the taxonomy and techniques of service composition are examined, while Sect. 4 introduces the concept of dynamic composition and its key features, along with the mapping and discussion of composition approaches versus constructs. Finally, the conclusions and future work are detailed in Sect. 5.

## 2 Contribution to Connected Cyber Physical Spaces

Cyber physical systems (CPSs) integrate both virtual objects and physical devices, focusing on the efficient monitoring and controlling of the latter. The physical connection from digital processes to the factories' production processes is achieved through sensors and actuators.

While a CPS has a local focus, IoT introduces a wider approach at the networking level, allowing for the interconnection of many and varied CPS systems. This interconnection brings an enormous potential for composing applications in order to provide innovative services. However, it also introduces the challenge of providing reliable service interaction independently of the underlying technologies. In cyber physical spaces, where there is an interconnected environment composed of CPSs, which can be spread across different ownership domains [5], this challenge is even greater.

This work aims to understand the composition approaches and constructs that may impact on the overall dynamic composition, in order to improve the alignment between the system's software design aspects like interfaces specification, maintainability, or modularity, with such dynamic composition constructs. Such alignment facilitates the
process of instantiating a system’s conceptual behavior specification (e.g., finite state machine (FSM)), into the concrete physical execution plan implemented by specific service operations (e.g., application code). Furthermore, it enables the dynamic modeling of interactions at execution time.

According to [5], among the main requirements of a cyber physical space is adaptability. This characteristic is dependent on the dynamic capability of the systems that compose that space, and thus stands to gain from an alignment between software development processes and dynamic composition constructs. This alignment is particularly relevant in environments where different systems, with particular processing, storage, and communication capabilities, interact with production processes, as such alignment can help to streamline processes and make them more agile.

# 3 IoT Service Composition Taxonomy

Over the years, various forms of classification have been used to organize approaches and technologies linked to the composition of services.

## 3.1 Function Criteria

One point of view is that service composition may be classified according to functional and non-functional aspects [6].

**Functional.** Focused on validating a system’s model against a specification, these approaches use formal-based techniques like model checking that evaluate composition factors such as correctness, reachability, deadlock, safety, and liveness. An example of a model checking technique is an FSM. In an FSM, the system is abstracted into a set of states and transitions between them. Distributed applications can be composed by assembling a chain of valid state transitions among services, thus representing the application’s behavior. By being a state-based model, FSM approaches can easily be applied to model the behavior of representational state transfer (REST)-based web services. This is because in REST, any endpoint can be observed for some state evaluation, and subsequent action to be taken. Hierarchical finite state machines (HFSMs) are an extension of FSMs which add depth (superstates), orthogonality (concurrency), and broadcast communication [7].

**Non-functional.** Cover approaches that are based on quality metrics of the composite services, usually regarding IP-based network protocols, infrastructure, and applications. According to [8], there is a broad consensus on the definition of functional requirements, which refers to what a system must do to perform its function, and what inputs and outputs it can work with. On the other hand, while there are several definitions for non-functional requirements, there is not yet a thorough list that defines them. So, the definition by negation emerges, meaning non-functional requirements are mainly those that are not concerned with the functionality of a system. Other works, such as [9], take a more definite approach by simply defining non-functional attributes as those that relate to a web service (WS)’ properties (what it is), instead of its function (what is does). These non-functional aspects define restrictions or properties that must be taken
into account when developing the system, such as performance, reliability, appearance, failure and recovery, and other quality of service (QoS) metrics. The QoS-driven service composition is an example of a non-functional approach [10].

## 3.2 Conception Criteria

IoT service composition can also be classified in terms of the approaches used to build service composition structures. According to [11, 12], these can be framework, agent, heuristic, and service-oriented architecture (SOA)/REST-based.

**Framework-Based.** Grounded in a collection of assumptions, values, concepts, and practices that form a domain, which is used for organizing, searching, selecting, and composing IoT services in innovative ways [12]. Semantics-based and Rule-based approaches are examples of framework-based composition methods [13].

**Agent-Based.** Each service is a software component capable of autonomous decision-making and communication. In this approach, agents can have capabilities for discovering other services, composing, binding, executing, and monitoring. A downside, however, is that agent-based architectures present reliability and security issues [12].

**Heuristic-Based.** For discrete or combinatorial optimization problems such as service composition, doing an exhaustive search for the optimal perfect solution is not possible due to computational limitations and exponential time requirements. As an alternative to finding sufficiently good solutions, heuristics-based (problem-specific) and meta-heuristics (problem-independent) methods can be used [14]. The most commonly used algorithms for service composition, which typically have been inspired by natural phenomena, are ant colony optimization, greedy algorithms, genetic algorithms, and particle swarm optimization [15, 16].

**SOA and REST-Based.** Discovery and composition are strongly facilitated by SOA and REST-based architecting. On one hand SOA exposes the functionality of services via descriptive interfaces using simple object access protocol (SOAP) and web services description language (WSDL) and allows the integration of heterogeneous devices seamlessly. On the other hand, REST describes the guiding architectural principles of the interactions among those services or other resources, in a highly scalable and flexible way [17].

## 3.3 Coordination Criteria

The rapid growth in the number of IoT services means that compositions also grow in quantity and complexity. This places a concern in the scalability and control capacity of the composition approaches used. According to these criteria, methods can be separated into data flow, orchestration, and choreography [18].

**Data Flow.** Currently is the most popular mechanism, especially since the emergence of mashup applications. In a data flow, the workflow is defined implicitly by the data processing tasks that occur at each node and trigger the next step with the output of
transformed data [19]. Workflow operations are data-focused such as filtering, splitting, sorting, or merging operations [20]. This method provides separation between data and control, allowing service developers to focus on data operations, while system developers work on connecting the nodes [21]. Node-RED and IBM's COMPOSE are two examples of data flow design tools.

**Orchestration.** The control flow of service invocations is explicitly and externally defined by one or more coordinator nodes, also known as orchestrators. This means that the workflow can be defined independently of the implementation details of the services used. Data are moved around as a consequence of this control flow and is not a driver of the flow.

Orchestration can be either centralized, under total command of a coordinator node, or be decentralized, where control is divided collaboratively among several coordinator nodes, according to control flow operators including sequence, branch, parallel, and loop [22].

Languages such as business process execution language (BPEL) originally developed by IBM and Microsoft and maintained by Oasis Open [23], or business process model and notation (BPMN) [24] initially published by the business process management initiative (BPMI) and maintained by the object management group (OMG), can be used to define orchestration workflows between services.

Since services have no information about the control flow, only the coordinator does, a separation is obtained between node computation and flow control. However, the centralized flow of all data going through the coordinator node can easily become a bottleneck in the system [25]. Another downside of orchestration in an IoT environment is that its workflows are based on synchronous invocations of other services, which may make this approach less suitable for designing flexible applications where loose-coupling is a guiding principle.

Camunda BPMN engine, AWS Step Functions and Kubernetes are examples of orchestration development platforms.

**Choreography.** Can describe the obligations and constraints of the interactions between two or more components, where each can be in separate responsibility domains [26]. In comparison with orchestration, this method gives more control flow autonomy to the services in the system.

The flow logic is not under the control of any external entity. Instead, it works with a public protocol that governs the messaging interactions, i.e., the global behavior, among services in a system where each node is self-contained and self-controlled [27, 28]. The distributed nature of the microservices' architectural style is well aligned with choreography [29]. Each microservice, or component in a choreographed application, is a self-contained building block of software, developed and maintained in isolation, that is scalable and language-agnostic. Microservices also take advantage of containerization, also known as servitization, as a form of lightweight virtualization.

Choreography enables application scaling and cohesiveness due to keeping the control logic in the execution nodes and out of the middleware links. Since data usually follows control, and control is distributed, this approach prevents data bottlenecks and makes choreography the most suitable approach for distributed workflows such as
microservices [30]. Furthermore, IoT architecture is aligned with the distributed con-
trol flow of the choreography mechanism. By using message broadcasting and pattern
matching, choreographed systems can communicate via events while keeping location
independence among the nodes. The distributed nature of choreography composition can
also, however, represent a downside as the application flow logic is implicit and divided
among services without a centralized point of control, thus making it more difficult to
understand and maintain the application [24].

Message exchanges defined in the protocol, which can be either the direct calling
of REST application programming interfaces (APIs) or the sending of events, can be
modeled using languages such as WS-CDL [31], BPEL4Chor [32], and BPMN [24].
Apache Kafka is an example of a software that works as a message bus, the public
protocol, where services can subscribe channels and publish events. Other examples of
composition platforms for choreographing IoT services include CHOReVOLUTION
[33] and ChorSystem [34].

4 Dynamic Compositional Traits

In this section, several composition approaches and technologies are analyzed according to their composition dynamism, and the constructs that enable dynamic composition in these approaches are highlighted and compared.

4.1 Key Features

According to [35], dynamic composition is the process of searching and selecting con-
crete services to create additional composite services on demand at runtime. The dynamic
composition of services has several advantages, such as responding to user requests by
composing custom applications on-demand, being able to provide new services based on
combinations of existing services, avoiding the need to maintain a catalog of available
services in the system, and improving fault-tolerance [36, 37]. Additionally, upgrading
and extending a service's functionality can be performed during runtime, enabling the
service to adapt to changing conditions in the environment. This means that the following
aspects can impact the success of a dynamic composition:

**Scope.** The range of applicability the composition covers.

**Encapsulation.** How wrapped up and independent are components in the composition.

**Scalability/Adaptability.** How well does the composition manage complexity and how does it adapt to a change in workload or environment conditions.

**Interoperability.** How do components in the composite service interact with each other and what is the degree of decoupling.

**Observability/Maintainability.** How easy it is to understand the composition structure and behavior, monitor the system and make changes to the original design.

Table 1 shows our mapping of these traits for different composition approaches,
highlighting the constructs that enable their dynamism.
# 5 Discussion and Implications

The ongoing research around service composition in IoT focuses mainly on the data/outcome generated by things, i.e., it is data-focused. This results from having thing descriptions announcing how consumers can interact with things, and such information being used for the selection or rejection of things during the service composition process. Then, different coordination styles can be used depending on the required flow control level; either more directed in orchestration or less directed in choreography. Currently, performance optimization is accomplished through a suitable allocation of services to hosts, for achieving an adequate use of resources and the reduction of communication delay. Edge/Fog technologies are now available to tackle many of these concerns, holding the potential for more focused and efficient data processing, and consequently lower power consumption.

However, an ultimate optimization of IoT applications can only be achieved when the services themselves are able to adapt to dynamic environments and exceptional situations. In this case, each service in the composition must be aware of the behavior of its component sub-services. This is particularly relevant in IoT/WoT where resources are constrained and contingency plans for exceptional situations are a must. For instance, a service or thing may need to change how or where it fetches data from, if the current source (service/device) announces a low battery level. This does not happen in the traditional web, where resources are abundant and exceptional situations are less attached to the physical world. In short, behavioral and data-focused service composition types can be identified. Both can be used in parts of an IoT application, but these benefit from different dynamic traits.

Please note that some composition approaches share a common set of traits that make their comparison easier, while others, like the functional approach, are an umbrella term that covers substantially different approaches. This realization caused the following analysis to select the HFSM approach in particular as an example of a functional approach, since its focus on state seems useful for representing behavioral composition.

From analyzing Table 1, one can state that the REST architectural principles are more flexible, lightweight, and more aligned with the observe-evaluate-actuate pattern of IoT when compared to SOA. W3C WoT standardization is also moving towards REST. Based on this, the REST architectural style is preferable over SOA for any kind of service composition in IoT/WoT.

In general, the successful development of a dynamic IoT service composition depends on finding an equilibrium between generalization and specialization.

Applications that are less specialized exhibit more dynamic traits and consequently are more flexible and reusable in different scenarios than the ones they were initially designed for. On the other hand, more specialization means less adaptability, but a stricter following of the design rules and constraints, which is useful for mission-critical systems. Reusability is tied to the concept of encapsulation, which according to Table 1 varies considerably among approaches. While HFSM encapsulates the states' information under a superstate, agent-based and other approaches do so for control logic and data. As for the data flow approach, the nodes encapsulate data transformation rules, which is different from control logic, since the flow depends on the inputs and outputs of nodes, and not on a preset sequence of node executions. In data flow, any node can execute a data transformation as long as it handles the output format of a previous node.

Some approaches emerge as the most flexible (i.e., more generalized), such as agent-based and choreography compositions. Both of these share common properties that allow
<table><caption>**Table 1.** Mapping of composition approaches (rows) to dynamic traits (columns) and the constructs that enable them.<fnref n="1" /></caption><thead><tr><th></th><th>Scope</th><th>Encapsulation</th><th>Scalability/Adaptability</th><th>Interoperability</th><th>Observability/Maintainability</th></tr></thead><tbody><tr><td>HFSM (Functional)</td><td>Any</td><td>Superstate encapsulates states</td><td>Parallel execution (concurrency)<br>Hierarchy hides complexity<br>Generalized transitions between superstates hide implementation</td><td>Synchronous generalized transitions</td><td>Explicit model (system states)</td></tr><tr><td>Non-Functional</td><td>Any</td><td>N/A</td><td>Scalability can be used as QoS metric for composition</td><td>N/A</td><td>Explicit model (QoS metrics)</td></tr><tr><td>Framework-based</td><td>Knowledge domain</td><td>N/A</td><td>Conceptual model abstracts implementation details</td><td>N/A</td><td>Explicit model (concepts)</td></tr><tr><td>Agent-based</td><td>Any</td><td>Agent encapsulates data and control logic</td><td>Loosely-coupled agents</td><td>Asynchronous broadcast message between agents</td><td>Implicit model (agents' interaction)</td></tr><tr><td>Heuristic-based</td><td>Any</td><td>N/A</td><td>Efficient algorithms allow complex compositions with less resources</td><td>N/A</td><td>Explicit model (algorithms)</td></tr><tr><td>SOA-based</td><td>Enterprise application</td><td>Self-contained services</td><td>Loosely-coupled services</td><td>Synchronous request-response</td><td>Explicit model (services)</td></tr><tr><td>REST-based</td><td>Distributed application</td><td>Self-contained resources</td><td>Uniform interfaces<br>Resource caching<br>Stateless server<br>Loosely-coupled services</td><td>Synchronous request-response</td><td>Explicit model (resources)</td></tr><tr><td>Data flow</td><td>Distributed application</td><td>Modules encapsulate data transformations</td><td>Independent data transformations allow workflow partitioning</td><td>Synchronous messaging</td><td>Explicit model (data transformations)</td></tr><tr><td>Orchestration</td><td>Distributed application</td><td>Self-contained services</td><td>Central control increases coupling<br>Limited by orchestrator resources</td><td>Synchronous messaging</td><td>Explicit model (coordination)</td></tr><tr><td>Choreography</td><td>Distributed application</td><td>Self-contained services</td><td>Distributed control decreases coupling<br>Limited by interactions' complexity</td><td>Asynchronous messaging</td><td>Implicit model (coordination)</td></tr></tbody></table>

their components to be decoupled in control and data (implicit model and self-contained entities), and also in time (asynchronous communication). It should be noted that by using an implicit model, these approaches are harder to trace and to understand when debugging or making changes. On the other hand, there are approaches that can remain dynamic while using an explicit model. This is the case for HFSM with its superstates and generalized transitions, and for SOA and REST with their decoupled interfaces.

<footnote n="1">¹ An N/A value means the attribute is not a concern of the approach.</footnote>
A functional approach is more behavior-focused, and orchestration can be as well since control is an important concern. On the other hand, the agent-based approach and choreography are more data-focused, along with other approaches like non-functional, SOA-based, REST-based, and data flow. Framework and heuristic-based approaches are general and applicable to any kind of service composition.

As previously stated, an ultimate optimization of IoT application can only be achieved when the services themselves are able to adapt to dynamic environments and exceptional situations. As web applications are ever more integrated with physical systems, behavioral service composition seems to have a key role, as a first composition layer in some web application component (more tied to the physical world). However, any behavioral service composition requires a validation step. This means that particularly in mission-critical IoT environments, additional validation steps should be applied to these behavior-focused compositions, according to concrete physical systems guidelines and constraints.

# 6 Conclusions and Future Work

In this work a survey was conducted in order to understand the most appropriate set of dynamic approaches and tools for use in specific types of service composition. While it is expected that the main dynamic traits have been identified and analyzed, it cannot be ruled out that others may be relevant and could be considered in the future.

After having identified two types of service composition, i.e., behavior-focused, and data-focused, it becomes apparent that the former can be useful for enabling each entity in a composition to become dynamic itself. Such flexibility allows the service to adapt to changing conditions, which is particularly relevant in environments where IoT devices are prone to failures or unavailability, caused by constrained environments or limited device resources. Data-focused approaches, on the other hand, are suitable where behavior adaptation is not needed. These approaches are expected to be useful for validating the robustness of composite services created with behavior-focused approaches and are an area where further research is needed. These context specific validation steps would, crucially, need to be kept as add-ons that are external to the service, in order to protect its congruence and ensure its compatibility and reusability by other potential applications.

**Acknowledgements.** This research was funded by Fundação para a Ciência e Tecnologia (FCT) through CEOT's (Center for Electronics, Optoelectronics, and Telecommunications) UIDB/00631/2020 CEOT BASE and UIDP/00631/2020 CEOT PROGRAMÁTICO projects, and the grant UI/BD/152864/2022.

# References

1. GSMA: IoT connections forecast: The rise of enterprise. https://gsma.com/iot/resources/iot-connections-forecast-the-rise-of-enterprise/

2. Nitti, M., Atzori, L., Cvijikj, I.P.: Friendship selection in the social Internet of Things: challenges and possible strategies. IEEE Internet Things J. 2(3), 240–247 (Jun2015). https://doi.org/10.1109/JIOT.2014.2384734
3. Angulo, P., Guzmán, C.C., Jiménez, G., Romero, D.: A service-oriented architecture and its ICT-infrastructure to support eco-efficiency performance monitoring in manufacturing enterprises. Int. J. Comput. Integr. Manuf. 30(1), 202–214 (2017). https://doi.org/10.1080/0951192X.2016.1145810

4. Web of Things (WoT) Security and Privacy Guidelines, https://www.w3.org/TR/wot-security/

5. Torres, C.E.: Cyber-Physical Spaces (December 2018). https://power-mi.com/content/cyber-physical-spaces

6. Asghari, P., Rahmani, A.M., Javadi, H.H.S.: Service composition approaches in IoT: a systematic review. J. Netw. Comput. Appl. 120, 61–77 (2018). https://doi.org/10.1016/j.jnca.2018.07.013

7. Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8(3), 231–274 (1987). https://doi.org/10.1016/0167-6423(87)90035-9

8. Glinz, M.: On non-functional requirements. In: 15th IEEE International Requirements Engineering Conference (RE 2007), pp. 21–26 (October 2007). https://doi.org/10.1109/RE.2007.45

9. Vesyropoulos, N., Georgiadis, C.K., Ilioudis, C.: Analyzing the selection and dynamic composition of web services in e-commerce transactions. In: Proceedings of the Fifth Balkan Conference in Informatics. pp. 130–135. BCI’12, Association for Computing Machinery, New York, NY, USA (September 2012). https://doi.org/10.1145/2371316.2371341

10. Ma, H., Bastani, F., Yen, I.L., Mei, H.: QoS-driven service composition with reconfigurable services. IEEE Trans. Serv. Comput. 6(1), 20–34 (2013). https://doi.org/10.1109/TSC.2011.21

11. Hamzei, M., Navimipour, N.J.: Toward efficient service composition techniques in the Internet of Things. Internet of Things J. 5(5), 3774–3787 (2018). https://doi.org/10.1109/JIOT.2018.2861742

12. Vakili, A., Navimipour, N.J.: Comprehensive and systematic review of the service composition mechanisms in the cloud environments. J. Netw. Comput. Appl. 81, 24–36 (2017). https://doi.org/10.1016/j.jnca.2017.01.005

13. Yao, Y., Chen, H.: A rule-based web service composition approach. In: 2010 Sixth International Conference on Autonomic and Autonomous Systems, pp. 150–155 (March 2010). https://doi.org/10.1109/ICAS.2010.29

14. Eusuff, M., Lansey, K., Pasha, F.: Shuffled frog-leaping algorithm: a memetic meta-heuristic for discrete optimization. Eng. Optim. 38(2), 129–154 (2006). https://doi.org/10.1080/03052150500384759

15. Lopez-Garcia, P., Onieva, E., Osaba, E., Masegosa, A.D., Perallos, A.: GACE: a meta-heuristic based in the hybridization of Genetic Algorithms and Cross Entropy methods for continuous optimization. Expert Syst. Appl. (Elsevier) 55, 508–519 (2016). https://doi.org/10.1016/j.eswa.2016.02.034

16. Asghari, S., Navimipour, N.J.: Review and comparison of meta-heuristic algorithms for service composition in cloud computing. Majlesi J. Multim. Process. 44(4) (2015)

17. Zhang, L., Yu, S., Ding, X., Wang, X.: Research on IoT RESTful web service asynchronous composition based on BPEL. In: 2014 Sixth International Conference on Intelligent Human-Machine Systems and Cybernetics. vol. 1, pp. 62–65 (August 2014). https://doi.org/10.1109/IHMSC.2014.23

18. Arellanes, D., Lau, K.K.: Algebraic service composition for user-centric IoT applications. In: Internet of Things - ICIOT 2018: Third International Conference. vol. 10972 LNCS, pp. 56–69. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-94370-1_5

19. Morrison, J.P.: Flow-Based Programming: A New Approach to Application Development. CreateSpace (2010)

20. Johnston, W., Hanna, J., Millar, R.: Advances in dataflow programming languages. ACM Comput. Surv. 36(1), 1–34 (2004). https://doi.org/10.1145/1013208.1013209
21. Giang, N., Blackstock, M., Lea, R., Leung, V.: Developing IoT applications in the Fog: a distributed dataflow approach. In: Proceedings - 2015 5th International Conference on the Internet of Things, IoT 2015. pp. 155–162 (2015). https://doi.org/10.1109/IOT.2015.7356560

22. Hens, P., Snoeck, M., Poels, G., De Backer, M.: Process fragmentation, distribution and execution using an event-based interaction scheme. J. Syst. Softw. **89**, 170–192 (2014). https://doi.org/10.1016/j.jss.2013.11.1111

23. Open, O.: Web Services Business Process Execution Language (WS-BPEL) version 2.0 (2007). http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html

24. Valderas, P., Torres, V., Pelechano, V.: A microservice composition approach based on the choreography of BPMN fragments. Inf. Softw. Technol. (Elsevier) **127**, 106370 (2020). https://doi.org/10.1016/j.infsof.2020.106370

25. Chafle, G., Chandra, S., Mann, V., Nanda, M.: Decentralized orchestration of composite web services. In: Proceedings of the 13th International World Wide Web Conference on Alternate Track, Papers and Posters, WWW Alt. 2004. pp. 134–143 (2004). https://doi.org/10.1145/1013367.1013390

26. Decker, G., Kopp, O., Barros, A.: An introduction to service choreographies. Inf. Technol. (De Gruyter) **50**(2), 122 (2008). https://doi.org/10.1524/itit.2008.0473

27. Cherrier, S., Langar, R.: Services organisation in IoT: mixing orchestration and choreography. In: 2018 Global Information Infrastructure and Networking Symposium (GIIS). pp. 1–4 (October 2018). https://doi.org/10.1109/GIIS.2018.8635748

28. Peltz, C.: Web services orchestration and choreography. IEEE Comput. J. **36**(10), 46–52 (2003). https://doi.org/10.1109/MC.2003.1236471

29. Butzin, B., Golatowski, F., Timmermann, D.: Microservices approach for the internet of things. In: 2016 IEEE 21st International Conference on Emerging Technologies and Factory Automation (ETFA). pp. 1–6 (September 2016). https://doi.org/10.1109/ETFA.2016.7733707

30. Newman, S.: Building Microservices, 1st edn. O’Reilly Media, Sebastopol (2015)

31. W3C: Web Services Choreography Description Language (WS-CDL) version 1.0 (2005). https://www.w3.org/TR/ws-cdl-10/

32. Decker, G., Kopp, O., Leymann, F., Weske, M.: BPEL4Chor: extending BPEL for modeling choreographies. In: IEEE International Conference on Web Services (ICWS 2007), pp. 296–303 (July 2007). https://doi.org/10.1109/ICWS.2007.59

33. Autili, M., Di Salle, A., Gallo, F., Pompilio, C., Tivoli, M.: CHORREVOLUTION: service choreography in practice. Sci. Comput. Program. (Elsevier) **197**, 102498 (2020). https://doi.org/10.1016/j.scico.2020.102498

34. Weiß, A., Andrikopoulos, V., Sáez, S.G., Hahn, M., Karastoyanova, D.: ChorSystem: a message-based system for the life cycle management of choreographies. In: Debruyne, C., et al. (eds.) On the Move to Meaningful Internet Systems: OTM 2016 Conferences, LNCS, pp. 503–521. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-48472-330

35. Lemos, A.L., Daniel, F., Benatallah, B.: Web service composition: a survey of techniques and tools. ACM Comput. Surv. **48**(3), 33:1–33:41 (2015). https://doi.org/10.1145/2831270

36. Alamri, A., Eid, M., El Saddik, A.: Classification of the state-of-the-art dynamic web services composition techniques. Int. J. Web Grid Serv. (InderScience) **2**(2), 148–166 (2006)

37. Fujii, K., Suda, T.: Semantics-based dynamic service composition. J. Select. Areas Commun. **23**(12), 2361–2372 (2005). https://doi.org/10.1109/JSAC.2005.857202