Article Preview
Top1. Introduction
In the recent years, cloud computing has been adopted as the most used solution by enterprises. This solution is provided as a service pooling in a private or public cloud (Yang & Wang, 2014). Moreover, cloud computing has emerged with three main service delivery models: Software as a Service (SaaS); Platform as a Service (PaaS); and Infrastructure as a Service (IaaS) (Freet et al., 2015; Garrison et al., 2015). Some well-known corporations that propose the Cloud as a solution, such as Google and Amazon web services (AWS), are now the main providers of such solutions to end users (simple clients or enterprises) with some enormous data centers situated in different geographical locations around the world. The properties and policies of Cloud encourage providers to use this technology in order to deploy and publish their services (Aceto et al., 2013; Shin, 2015). Each provider presents his web service using WSDL (Ben Seghir et al., 2015; Rahman & Meziane, 2011) by introducing the web service’s description, which includes the whole data about the deployed service to make the discovery of and differentiation between services much easier. Nevertheless, current web services cannot respond to all client requirements and the static vision presented as web services can neither work together to cooperate with each other nor interact with new data updates. An approach of service composition based on functional and non-functional parameters should lead to a solution to this issue (Upadhyaya et al., 2014). In fact, the service composition problem is classified as an NP-hard problem due to the huge number of the services deployed in the Cloud (Geyik, 2013).
In order to propose a service composition architecture, this work introduces the agent paradigm as an approach to solving the composition issue. According to the literature, the agent concept has many properties that encourage us to follow its paradigm. These properties lend a dynamic vision for an agent to be presented as a service, which shows some advantages, for example, autonomy, flexibility, parallel execution and also agent interaction (Briot, 2014; Graja et al., 2014). Assuming one service cannot meet all client requirements, we should present an architecture that can guarantee a composite service that can satisfy the end users’ demands by handling all the given requirements with functional and non-functional parameters (Surianarayanan et al., 2015).
This paper uses a multi-agent system as an architecture that can handle the whole service composition process; this kind of complex systems can offer the best options for resolving the issues presented here through protocols by introducing a new agent coalition policy (Klein et al., 2012; Sless et al., 2014). Using a confidence factor and a dominance relationship gives the agents a way to select their neighbours or services that have the best QoS; these QoS influences the client’s opinion about the service (Elfirdoussi et al., 2014; Ge et al., 2015), and to reduce the number of messages exchanged in the proposed system. The different types of agents (situated and mobile) gives the architecture an easy way to collect the required data from the Cloud at any location around the world (geo-distribution) (Marie, P et al., 2016). Also, this architecture facilitates treatment operations through the strong points of the Cloud (storage and calculus) (Cavet et al., 2012).