Article Preview
TopIntroduction
The trend in the field of development of information systems is to design autonomous systems. These are independent applications that do not require human intervention. Indeed, thanks to technological evolution, computer systems are more and more distributed and above all, they are dematerialized (Helali et al, 2021). In such systems, data is distributed over heterogeneous components and control can no longer be ensured by a single entity. The dynamics and unpredictability of the environment in which these gigantic systems are immersed add another level of complexity and require them to constantly adapt to continue to perform their functions. The nature of these requirements has led to the proposal of the so-called “autonomous systems” proposed by IBM (Horn P, 2001). These systems are also known as auto-* (or self-*) (Berns et al, 2009) which fulfil tasks as: Self-configuration, Self-optimization, Self-healing and Self-protection. Organic Computing, represents a new paradigm characterized by solutions offering dynamic adaptation to change, thus systems based on Organic Computing make it possible to achieve the Self-* properties (Stein et al, 2018).
In an autonomous system, the Self-healing property guarantees the continuity of the execution of the system despite the presence of faults. Therefore, it must be able to perceive operating anomalies and correct itself automatically during execution. In other words, it makes the system fault tolerant (Refaat et al, 2018).
The web service paradigm has been widely used in computer science. This is motivated by certain advantages which include time/cost reduction during software development or maintenance (Garriga et al, 2015), (Kaur U, 2015). Web services are autonomous, distributed and modular applications that can be published, located and called on the network (Kadima H, 2003). Despite the large number of services already published, there may be no primitive service that can meet a specific customer request. In this case, the need for web service composition increases. Indeed, when a single service does not meet a consumer requirement, different services can be used together to create new added value to fulfil that requirement. This is because a composite service provides a new software solution with specific functionality and can be seen as an atomic component in other service compositions, or as a final solution to be used by the customer (Ramírez et al, 2017). The process of developing a web service composite is called service composition. Different standards and languages have been proposed to develop the composition of Web services, such as “Business Process Execution Language for Web Services” (WS-BPEL or BPEL), which is an XML language for describing a composition where all tasks are implemented by web services. It is intended to serve as a description that can be executed by a BPEL engine. It is one of the most widely used standards for describing composite service behaviour. At each stage of the composite's execution, it invokes an available service that can perform the requested task. This fact raises an overarching question regarding the availability of component services during runtime.
On the other hand, the web service (WS) composition process relies on the integration of primitive WS’s into a single complex service (da Silva et al., 2020) that must rely on reliable and valid WS. This has become one of the great challenges in the field of service-oriented computing. Indeed, the autonomous operation of WS’s in a very dynamic environment (the Web) implies that the Quality of Service (QoS) (Huang et al, 2009) of these WS’s can change with a relatively higher frequency (Dai et al, 2009) and such a dynamic nature of the services will influence the performance of the execution of the service composite. However, advanced approaches that react to changes in the WS environment to ensure the correctness of the process composition becomes very demanding (Alwasouf et al, 2019).