Article Preview
TopIntroduction
Web services are free-standing, commutable, disseminated, dynamic applications that can be described, published, located or invoked over the network to create products, processes and supply chains. XML is used to encode all communications to a Web service. Web service uses the most salient and stable technologies such as Simple Object Access Protocol (SOAP) as a communication framework, Web Service Definition Language (WSDL) and Universal Description, Discovery and Integration (UDDI) that provides a mechanism to clients to find services. Many enterprises publish the functionalities of their applications on the internet using a Web service format. There are many services around the Web, each one, taken alone, has limited functionality. In many cases, a single service is not sufficient to respond to the user’s request and often services should be combined through service composition to achieve a specific goal. Web service composition initiated from the obligation to attain a predetermined goal that cannot be detained by a standalone service. The goal of service composition is to reuse existing web services and composing them into a complicated process. However, the process of composition is considered as a highly complex task due to many reasons. Rao and Su (2004) detailed that the complexity of service composition raises three main reasons. First, the considerable increase in the number of Web services available over the internet causes the increase of the service repositories available for searching. Moreover, Web services keep on changing and updating that require a dynamic composition at runtime, which causes intensive computations. Further, different providers who develop Web services in various models make the mapping between services in the compositions a problematic task. The verification process must be performed during the design and execution time to identify the errors of the composed Web services.
Portchelvi et al. (2012) observed that Web service composition methodologies could be categorised as syntactic based and semantic based composition. In syntactic composition, only the syntax of the Web service depiction is deliberated to construct the composition workflow and the dependency of services is achieved through service inputs and outputs. There are two primary methodologies to syntactic composition. First, the integrated approach – in this approach, a mediator is responsible for combining services and mapping dependencies between services. Second, the dispersed approach where the composition is performed via the collaboration of services through peer-to-peer interaction.
The semantic-based composition considers the significances and perseverance of services. Zeshan and Mohamad (2011) detailed that machines can mechanically select, compose and complete the execution of Web services to achieve specified task according to the user precincts. The semantic composition is achieved based on the semantic description of Web services that support creating an ontology to define different aspects of Web services’ relationships. Artificial intelligence planning algorithms are used to compose services automatically and dynamically. Thilagavathi and Lakshmi (2020) categorized the approaches that perform a vital role in AI-based automatic service composition process into Logic-based , Graph-based , State-space-based and planning-as-satisfiability based composition.
Bertoli et al. (2003) proposed checking planner model, where the user set an objective used by AI planning algorithm to produce a composition plan in goal-driven architecture. The plans for this approach are entirely constructed at the beginning phase they are performed. However, the dynamic nature of SOA environment may cause a failure of composition created by this approach.
A vital challenge of Web service compositions is how to guarantee reliable execution. Due to their inherent autonomy and heterogeneity, it is challenging to realise the behaviour of the service compositions, especially in case of failures. Therefore, there is a growing interest for verification techniques which support to prevent service composition execution failures. To identify the failures in composed services, various properties such as deadlock, reachability, dead marking, dead transition and state explosion must be verified.