Service Composition in a Multi-Cloud environment based on Cooperative Agents (SCM-CCA)
Zaki Brahmi
Maryem Faten
Higher Institute of Computer Sciences and Communication Techniques of Hammam, Sousse University, Tunisia e-mail:
[email protected]
Department of Computer Science. Higher School of Business Manouba university, Tunisia e-mail:
[email protected]
Abstract—The advantages of Cloud computing, such as cost effectiveness and ease of management, encourage more and more companies to adapt its services. Within this wide and distributed environment, a single Cloud service, on its own, cannot satisfy all the user's requirements. Therefore, the combination of several service functionalities is crucial. This operation is called Cloud Service Composition (CSC). CSC is a NP-Hard problem divided into two sub-problems; services composition, to search feasible composition, and services selection, to select the best one among them. However, to the best of our knowledge, the majority of the existing approaches (if not all of them) treat only the selection sub-problem. Our work comes to tackle this restriction by merging these two sub-problems together in order to avoid limitations known by the current approaches. This paper investigates challenges of CSC, where functionally similar services are deployed on one or more Clouds. We propose an approach of Service Composition in a Multi-Cloud environment based on Cooperative Agent namely (SCM-CCA). Our approach is composed of three major steps; 1) Self-organization of agents into a Social Network, 2) Distributed computing of the abstract optimal services composition and 3) Cloud selection for services composition in a Multiple Cloud Base (MCB) based on CSM (Cloud Selection Matrix) technique. At last, an experiment is presented for validating the performance of the method. Keywords—Optimal Cloud Services Composition; MCB; Cloud Selection; Self-organization.
I. INTRODUCTION Enterprises are constantly searching for novel and creative approaches to maximize their profits and reduce their costs. They need technologies that let them grow and still do not strain them financially. Among the existing ones, Cloud computing has emerged as a promising solution providing ondemand access to virtual computing resources, platforms, and applications in a pay-as-you-go manner. Cloud service customers only use what they require and pay for what they use. As a result, Cloud computing has raised the delivery of IT services to a new level that brings the comfort of traditional utilities (such as water and electricity) to its users[3]. The advantages of Cloud computing, such as cost effectiveness, scalability, and ease of management, encourage more and
more companies and service providers to adapt it and offer their solutions via Cloud computing models. There are tremendous amounts of services available in the Cloud. A single service has a limited utility and cannot accomplish the service users’ multiple-function requirements. Thus, the requirement to compose the single services into a composite service is necessary. This paper investigates challenges of CSC, where a single Cloud, on its own, cannot satisfy all the user's requirements. So, it is more likely to find a sequence of services in an environment with multiple Clouds than in an individual Cloud. In such a situation, the service provider's goal is not only to find feasible services sequence, but also to involve the minimum number of Clouds, which is very important since the communication cost between two services from different Clouds would be expensive. Thus, how to effectively choose a service composition that minimizes the Cloud used is an open issue. Aiming at resolving CSC problem, a few approaches have been proposed. These latter are based on Genetic Algorithms (GAs) [7] [10] [3], Autonomous Agents [4] [5] [8], Integer Programming [7]. However, they focused only on optimizing the selection sub-problem. As presented in [2] our work merges services composition sub-problem and services selection sub-problem together but in the Cloud environment. In this work, we propose an approach of Service Composition in a Multi-Cloud environment based on Cooperative Agents (SCM-CCA). This cooperation allows to distribute the computing of optimal services composition among a set of agents. The SCM-CCA approach is divided into three-step process: 1) Self-organization of agents into a Social Network, 2) Distributed computing of the optimal abstract services composition and 3) Cloud selection for services composition in a Multiple Cloud Base (MCB). The first step is done at design time since it is built independently of user's request, which leads to accelerating the time of computing the optimal composition. Additionally, it allows to satisfy many users' requests simultaneously. The second step is done at run time by the cooperation of Class Agents and Composer Agents in order to generate an efficient
composition in a polynomial time. SCM-CCA approach is inspired by our previous work [2] in the web services environment. The novelty of this work lies in the third step by converting it into a matrix model and finding the optimal Cloud combination solution using an exact algorithm, contrary to [11] which uses an approximative algorithm. More specifically, we model a matrix based on the user's request, so that the Cloud Combiner Module (CCM) deploys only Clouds that contain at least one service of the user's request sequence. The objective is to eliminate all the non useful Clouds which can cause additional cost, for the sake of optimizing cloud selection. The rest of this paper is structured as follows: The following section introduces the related work and comparison analyses. In section 3 we present the problem statement. In section 4 we first present the overall architecture of our approach as well as its functional description, and then we propose our selection algorithms. In section 5, we give experimental results. Finally, Section 6 concludes this paper and highlights some future work.
corresponding inputs, obtaining a chain of web services that results in the service composition. Finally, in the work of [1], a web services composition is modeled as a Finite State Machine (FST), through which a composition tree (WSCT) is constructed to allow the discovery of concrete services that will carry out the activities of business process. The WSCT generates all possible paths (plans) of implementation (execution paths), so that one of these plan will be selected using the SAW (Simple Additive Weighting) strategy. No one can deny the efficiency reached by all the approaches indicated above, however they aim mainly and only at tackling the selection sub-problem regardless of the composition sub-problem progress. Perhaps authors in[11] mention that they treat this sub-problem but they didn't represent how it really works adding to that they provide an approximative solution. The second issue is that all the approaches are fully at runtime, therefore will automatically suffer from the high cost of time. In this case, adding the design time layer is crucial to accelerate the computing time. In this context, our approach (SCM-CCA) aims to handle the restrictions mentioned in the previous works.
II. RELATED WORK Service composition is an issue that has been deeply studied in the context of web services. Since Service-Oriented Computing (SOC) is considered as the underlying conception of Cloud Computing, a natural way of thinking would be to extend or take advantage of the traditional service composition approach in order to address Cloud services, of course considering the specificities introduced by this new paradigm. In this section we briefly discuss some proposed approaches for the CSC problem and highlight some interesting ideas provided by them. In [7], a network-aware approach that handles the QoS of services and the QoS of the network independently is proposed. First, a network model is built in order to estimate the network latency between arbitrary services and potential users. A selection algorithm (Genetic Algorithm) then leverages this model to find services compositions. In [4, ] a combination of Acquaintance Networks (AN) and Contract Net Protocol (CNP) is integrated into an agent-based Cloud service Composition approach. ANs are used to deal with incomplete knowledge about the Cloud environment while the CNP is used for establishing contacts for Cloud services. The research effort presented in [10] addressed service composition in a multi-Cloud environments as a combinatorial optimization problem by creating a search tree from the service deployed on the Clouds. Finally, artificial intelligence planning technique are applied to the tree to compose atomic services based on a set of requirements. Another Cloud service composition approach is presented in [11]. Web services are described by interfaces that contain semantic input and output parameters. Afterwards, a semantic matching algorithm links semantically similar outputs to
III. PROBLEM STATEMENT In this section, we first present the basic definitions used in the rest of this paper. Next, we present the formulation of SCM-CCA, and the corresponding metrics that we will optimize to boost the efficiency of CSC. Definition 1: (Abstract Service). An Abstract service has function descriptions without implementation and standard service interfaces across different service providers. The user can directly name the requested distributed application, such as video-on-demand (e.g., video server → computation → storage → content → video display). An abstract service is corresponding to a directed acyclic graph (DAG) of workflow tasks (Fig.1).
Fig. 1. Abstract graph (request graph)
Definition 2: (Concrete Service ). Concrete services in the Cloud are service instances published by a Cloud service providers. They could give the function implementation specified by abstract services. And some service instances may have the same function, but different QoS of all candidate service instances, according to the abstract service path. A concrete service can be defined by this tuple Si = ( Ci, ISi, OSi, QoSSi) where Ci is the set of cloud that provide Si, ISi is the input parameter which represents the information (preconditions) needed to use the service, OSi is the output parameter which represents the information (effects) generated
from the use of the service, and QoSSi denotes the quality of an atomic service Si. Definition 3: (Class Agent). is an agent managing a set of services that provide similar functionalities with possibly different QoS. CAi is defined by CAi = < CAii, CAio, Sim> where: •
CAii: represents the input of the Class agent CAi.
•
CAio:
•
m
find it difficult to select the best one among the hundreds, if not thousands, of possible available compositions. We propose a method for selecting the optimal cloud combination namely SCM-CCA. Our problem of multi-Cloud services composition can be defined by this tuple SCM-CCA = where: •
MCB (Multiple Cloud Base). is a set of Clouds, such that MCB={ C1,C2....,CN} , where each Ci (1≤ i ≤ N) is an independent Cloud service base.
•
S = { S1, S2, ...,Sm} is a set of concrete services deployed in the Cloud C ( ⊆ MCB).
•
R: is a user's request which is defined by the triple (Ri, Ro, W), where Ri representing the inputs and Ro is the outputs and W ={ Wi/ i≤ p≤ 1} is the set of coefficients for all the quality criteria defined by the user with p is the number of criteria.
•
A: is an optimal execution plan defined by the set (S',P,C), with S' is a subset of services (S' ∈ S) , P defined the organization of services S', and C is the Cloud that provides each S'.
•
φ: is the function of our algorithm that can find the feasible and optimal execution plan, φ (S,R): S × R → A.
: represents the output of the Class agent CAi.
Si : is the set of m similar services where CAii et CAio are the inputs and the outputs of these services. Each one is characterized by its QoS value as well as its origine Cloud.
Definition 4: (Social Network agent). An agent social network SN=(V, ACE ) is a dependency graph; where vertices V are agents class, and each edge (i, j ) ∈ ACE indicates the existence of a social connection between class agents i and j. Let’s consider a scenario in which a media company wants to deploy an Online Video Streaming service destined to the French market. The request of this company to a Cloud provider is a complex service which is composed of three tasks (Figure 1): Task A is a Storage node to stock the media content, Task B is a Transcode node to adapt the media to its users’ terminal supports, and Task C is a Portal node to provide access to multiple video sources (such as Boxee and Zinc). The complex service is modeled as an abstract graph (called service graph or request graph) where each node indicates the required basic service. For each abstract task, concrete services have to be chosen in order to execute the workflow.
A composition for a CSC problem is a sequence of pairs, where W = {,,....}. An optimal composition to a CSC problem is a sequence of pairs, where W' = {, , ....}, with the minimum C′| Ǝ s', s'∈W'˄ s' ∈ C'|. In other words, an optimal service composition has the minimum number of Clouds involved in a service composition sequence. IV. SERVICE COMPOSITION IN A MULTI-CLOUD ENVIRONMENT BASED ON COOPERATIVE AGENTS (SCM-CCA) In this section, we present our SCM-CCO approach. Our approach is based on four main ideas:
Fig. 2. Concrete services composition
In such a scenario, current approaches would select X1, Y3 and Z2, because their QoS are optimal, and this results in a total execution time of 165ms, regardless of how many Clouds are combined. However, our approach tackles the problem of Cloud selection for service composition in a multiple Cloud environment, to not only finding feasible composition sequence, but also containing minimum Clouds. for that it is better to select one of these Clouds which has the minimum QoS value as the case with Cloud 3, and this results in a total execution time of 195ms. Thus, X3, Y3, and Z3 is the optimal composition. This scenario investigates challenges of Cloud service composition, where a single Cloud service, on its own, cannot satisfy all the user requirements. Cloud service composition, which includes several tasks, is a complex process and users
• Searching for feasible abstract composition: this is by satisfying all users 'requirement simultaneously. • Searching for optimal abstract composition: this is by first minimizing communication between services to compute the optimal services composition. Then, deploying the minimum number of Clouds to select the best Clouds combination. • Self-organization: the class agents self-organize depending on the inputs and outputs parameters according to a representation of a social network. In this network each class agent is responsible for a set of similar services. • Cooperative protocol between agents: to distribute the calculation of the optimal plan (composition) by a set of cooperative agents.
A. Architecture of the proposal approach The architecture of our approach is as follows, we present the components of each layer and the role of each agent.
Fig. 3. Our system architecture
The User layer: It represents the communication interface between the system and the user. It contains the user who formulates its requirement through a graphical interface and the user agent which allows to build the user's request in the form of inputs, outputs and a vector of coefficient quality criterion. Second, the Composition layer is the main layer in our system. It represents the engine services composition and it is composed of a Composer Agent and numerous Class of service Agents. Finally, the Cloud layer which contains a set of independent Clouds. These Clouds are composed of a set of services and each service is characterized by a description and a QoS value. It allows our system to save the Cloud as well as their services in a database named Multi-Cloud Base (MCB). All the layers collaborate together in order to meet the user's needs. Let's present each agent's role. B. Architecture and agents' roles 1) User Agent: This agent has got two main roles : • Presents the user with a graphical interface allowing it to create its request R which represents the input (Ri), the outputs (Ro) and the constraints (C) in the form of a coefficient for each criterion. • Raises the composition process by communicating the request to the CoA agent. 2) Class Agent: Class Agent has got two main roles. Each one of these agents is responsible in a set of services, these services are functionally equivalent (the same input and output parameters) but have different values of QoS. Each agent has
to determine its predecessors and its successors based on a cooperative protocol. The initial agents allowing to trigger the composition process and final agents generate one or more locally optimal compositions and send them to the Composer Agent. The Initial Agent is responsible for a class of services where the input parameters of this class are included in the request input parameters. The Final Agent is responsible for a class of services where the output parameters of this class are included in the request output parameters. a) Self-Organization of Class Agents: Agents are organized as a social network agent in the design time, this in order to fulfill two goals: i) Satisfying many user queries simultaneously. Indeed, social network agent is built independently of user query. ii) Accelerate the time of computing the optimal composition. As defined in the previous part, class agents are linked based on the Input and Output of their services. Given the social network example in the figure 5 in which we start with A as input aiming to reach F as a result. This graph is composed of five CAs which are interconnected between them with dependency links where CAioutput = CAjInput. So, CAj is the direct successor of CAi and CAi is the direct predecessor of CAj, e.g. the class AO is the successor of AN and AN is the predecessor of AO and so on. b) Computing the local abstract composition: At design-time, each class agent CAi classifies its set of services Si according to their functionality. At run-time, when it receives a set of local composition sent by a set of CAs which has a social connection with CoA, it starts computing its local composition using the algorithm Local_CSC. Algorithm1 Local_CSCompostion Input: - set CAi.Si of sorted similar services. - βL ,set of local composition - S←ø ; set of similar local composition whose end node services have the same input. - D← ø ;set of distinct local composition: D ←S Output: Local composition βiL Begin 1. 2.
best_S ← first(Si) if |βL | = 1 then βLi.QoSLi← βL1.QoSL1 +best_S.QoS βLi.WLi← βL1.WL1 U {best_S} βLi.PLi← update (βL1. PL1, best_S) Else L (D, S) ← Similar(β ) BLC ← bestLComposition(S) D ← D\ S U {BLC} βLi.QoSLi← Σj=1|D| (βLj.QoSLj ) + best_S.QoS βLi.PLi← update (D, best_S) EndIf
End Similar (βL) function builds the two sets S and D. The function update(D , best_S ) merges the set D of local composition and the selected service best_S to build the local composition.
3) Composer Agent: it represents the main entity of our approach. It consists of two modules; Services Composer Module (SCM) and Cloud Combiner Module (CCM). Each module behaves exactly as an agent. SCM has two roles. The first is the initialization of the composition process and the second is selecting the optimal composition. The final composition is generated from the set of locally optimal compositions of final agents. a) Computing the Global abstract Composition: Computing the global abstract composition is a process enabling SCM to select the best one among the set of local composition βL, so that we can efficiently search for CSC with the minimum number of services within the user's request. We realize this functionality with the following cooperative protocol. 1. 2.
First of all, the UA sends a request R to the SCM. Second, SCM builds a set of {CA}, where: CAiInput = RInput , and by the way it checks whether the set of { CA} is empty. 3. If it was the case, then notify that its query R cannot be achieved, otherwise it sends the message request (IDCA , R) to each CAi where CAi ∈ {CA}. If CAi recieves the message (IDCA, R) then computes βLi and sends in turn the composition (CAi ,βLi, R) to its successors according to the social network. 4. Fourth, verify whether CAiOutput = ROutput , if it is true then sends composition to SCM , else recomputes βLi and sends composition to its successors until reaching the 4th condition. 5. Finally, the SCM ComputeGlobalComposition (using the Local Service Composition algorithm) and sends it to the UA. b) Selecting the optimal Clouds combination In order (for our SCM-CCA appraoch) to work efficiently, it is not enough to select optimal execution plan. Additionally, we need to be able to find services that are in the same Clouds, so that we can efficiently search for service compositions with the minimum number of involved Clouds. We realize this functionality with a Cloud Selection Matrix (CSM) which is inspired from Karnaugh Table. This one is categorized as a simplifying method of Boolean expression, so it is widely used in the Boolean Algebra [9][6]. In our work we will only use the table structure (skeleton) of this method (Fig.5) regardless of how it operates.
Similarly to Karnaugh Table, our CSM is composed of 2n cells where n is the number of the input (the number of abstract services within the composition). On rows and columns, we place the state of the binary coded input. And in each cell, we place the output state for the corresponding input combinations. In this context, we propose a method for selecting the optimal cloud combination, namely Abstract-composition based Clouds combination method. Then we will analyze it according to its time complexity. a) Abstract-Composition based Clouds combination method: This method (Algorithm2) is designed for efficiently finding an optimal Clouds combination based on an exact algorithm. We begin with this function allows to create our CSM based on M services in the abstract composition (R) as well as Clouds in the MCB. Algorithm2 SCM_Creation (R, MCB) Input: - MCB ← { C1,C2,...,Cn} - R←{S1,S2,..,SM} Output: CSM
Begin nb_cell←2N /*N is the number of corresponding output combination. nb_column ← 2N Div 2 /*N Div 2 is the Nb of the 1st half of the binary coded input*/.
nb_row ← 2N-nb_column /*N-nb_column is the Nb of the 2nd half of the binary coded input*/.
For each cell ∈ CSM do Cell[i,j] ← column[i] && row[j] if Cell[i,j] ⊆ Ci
then
Cell[i,j] ← Ci EndIf EndFor End
Given a matrix (CSM) based on services in the abstract composition and Clouds of the MCB, we can find concrete services that can meet the user request using the algorithm below (Algorithm3). This latter can find an optimal Cloud combination with a minimum number of Clouds. More specifically, it starts from testing all singleton sets of Clouds and stops if a valid composition plan can be found using a single Cloud. Otherwise, it tests Cloud sets of size two, three, etc., until reaching a Cloud set from which the composition sequence can be found. Algorithm3 Composition based Clouds Combination
Fig. 4. Cloud Selection Matrix (CSM)
Input: Output:
MCB← { C1,C2,...,Cn}; R← {S1,S2,...,SM}; L← Ø ; SingleCloud or CombinedCloud NULL;
or
C = O (m2+n2)
Begin CSM ← CSM_Creation(MCB, R) if |CSM[0,0]|≠ Ø then if |CSM[0,0]|=1 then SingleCloud ← CSM[0,0] Else SingleCloud ← MinQoS{CSM[0,0]} EndIf Else For each Ci ∈ CSM do L ← {Ci} EndFor CombList ← CombList_Search(L,R) if |CombList|= 1 then CombinedCloud ← CombList[i] Else CombinedCloud ←MinQoS{CombList[i]} EndIf EndIf End
(1)
Thus the complexity of our approach is polynomial. D. Example: We take the dependency graph below as an example and we will apply it for our method:
MinQos is a function enabling to compute the QoS of each combination in order to select the one which has the minimum value. Algorithm4 CombList_Search (L, R) Fig. 5. Example of Social Network Class Agents
Input: List L, R; Output: CombList; Begin CombList ← Ø Rst ← Ø For I ← 1 to i ≤ length list do if |L| ≤ 1 then CombList ← NULL Else j ← 1 if Seq'request ⊆ {L[i]U L[j+i]} then Rst ←{ L[i] U L[j+i]} j++ CombList ← Rst Else j++ EndIf EndIf EndFor End
The CombList Search function enables the filtering of Matrix content into a list List L, To facilitate the selection of optimal Cloud combination. C. Time Complexity: The time complexity for finding the optimal services combination in a multi Clouds environment consists of two parts. The first part is due to the abstract service composition algorithm, which is O(m2). The second part is due to the second algorithm which is allowing to select the optimal Cloud Combination, having similarly O (n2) as complexity. According to these time cost analyses, the total time cost for our method is:
In this graph, the nodes represent agents of type "Class" and each agent is responsible for three services. For example the agent AO is responsible for the Services {O1, O2, O3}. Their Cloud origins are respectively C2, C3 and C1 and they have different QoS values. The user provides the parameter A as Input and wants to get parameter F as a result. In the following table, we present the order of triggering agents and their generated plans. TABLE I. Iteration
GLOBAL CLOUD SERVICES COMPOSITION Sender
Receiver
Combined Services
1
Compositor
AM
{}
2
AM
AN, AP
M
AN
AO
M, N
AP
AQ
M, P
4
AO
Compositor
M, N, O
5
AQ
AO
M, P, Q
6
AO
Compositor
M, P, Q, O
3
In this example, there are two local compositions satisfying the user's request; the first one uses the combination of the set {M,N,O} of services and the second one combines {M,P,Q,O}. As we mentioned in the previous part the best local composition is the one which contains the minimum number of combined services, therefore the SCM chooses the {M,N,O} composition which is generated by AO and sends it to the CCM, this latter will apply a combination method to
find the optimal composition which contains the minimum number of involved Clouds. Our MCB composed of 4 Cloud {C1, C2, C3, C4}, each Cloud has a set of services. MCB = {C1= {M,O,P,Q}; C2= {M,N,O,Q}; C3 ={N,O,P}; C4= {N,Q}}, where each service has its own QoS value. According to our optimal abstract composition we apply our CSM methods to select the optimal Clouds combination.
The execution time of CSM do not exceed 50 (ms) for 10 services per abstract composition while SCC exceeds 200 (ms). Therefore, our result shows that our solution is much faster than the one developed by [10]. In the figure above, we note that there is a similarity in the shape of these two curves and this is explained by: The complexities of both algorithms are Polynomial. However, C(SSC) = O (N*M+N2), is higher than C(CSM) = O (N2) and the difference (N*M) is the reason that allows SCC to grow in parallel and always above CSM.
Fig. 6. Selecting optimal Clouds combination using CSM
The idea is to find a solution by combining the minimum number of Clouds. The optimal solution is the fact of finding a solution using a single Cloud. So the key idea, is to check whether the first cell (the blue cell) contains one Cloud at least, if it is the case our solution will be optimal using a single Cloud as the case with C2; otherwise, if we assume that no optimal solution is found, we resort to combine Clouds (from the grey cells) that can satisfy R as the case with C3 and C1. In both cases, if we find more than one solution we choose the one with the optimal QoS value, and so on. E. Implementation Our experiments are performed on Intel ®Core i5-2410M
[email protected] machines with 6 GB of RAM. To implement our system we used NetBeans 7.4 as the prototype development platform, and Java as the programming language. Our experiments show the evolution of the execution time depending on the number of services among the abstract composition, by fixing the Clouds number at 10 and the services number at 20 and we vary the services number per request between 2 and 10. And this in order to obtain a clear comparison between the Smart Cloud Combination (SCC) method in [10] and our Cloud Selection Matrix (CSM).
Fig. 8. The evolution of execution time depending on Clouds number
In (Fig. 7) we show the evolution of the execution time of our algorithm based on the number of Clouds. For this experiment, we fixed the services number per request at 6 and we vary the Clouds number between 5 and 20 Clouds. We note that our curve increases slightly, which demonstrates that Clouds number has no influence on the execution time. V. CONCLUSION In this paper, we have presented an approach to deal with the service composition in a multi-Cloud environment. Our approach is based on three steps: (1)Self-Organization of agents into a social network, (2) Distributed computing of the optimal CSC. The novelty of this work lies in the third step by applying the SCM method in order to find the optimal Clouds combination. At last, an experiment is presented for validating the performance of the method. In future works, we will plan to use Case-based reasoning (CBR) to allow the Cloud service provider to use the already deployed services of his portfolio to build the complex service requested by a customer.
REFERENCES [1]
[2] Fig. 7. Comparison of the exection time of our algorithm (CSM) versus (SCC)
Huihui Bao and Wanchun Dou, "A QoS-aware service selection method for cloud service composition", Proceedings of the 26th IEEE International Parallel and Distributed Processing Symposium (IPDPS 2012), Shanghai, China (2012), pp. 2254-2261. Zaki Brahmi and M.M.Gammoudi, "QoS-Aware Automatic Web Service Composition based on Cooperative agents", In Proc. Of Enabling Technologies: Infrastructure for Collaborative Enterprises
[3]
[4]
[5]
[6] [7]
(WETICE), 2013 IEEE 22nd International Workshop on, vol., no., pp.27,32, 17-20 June 2013. Amir Vahid Dastjerdi. QoS-aware ans Semantic-based Service Coordination for Multi-Cloud Environments. PhD thesis, The University of Melbourne, 2013. J.Octavio Gutierrer-Garcia and Kwang-Mong Sim. Self-Organizing agents for service composition in cloud computing. 2nd IEEE International Conference on Cloud Computing Tecchnology and Science, 2010. J. Octavio Gutierrez-Garcia and Kwang Mong Sim, "Agent-based Cloud service composition", The International Journal of Artificial Intelligence, Neural Network, and Complex Problem-Solving Technologies 22 (2012). Abdelhakim El Imrani, "Algèbre binaire et Circuits logiques" (2008), 127. Adrian Klein and Fuyuki Ishikawa and Shinichi Honiden, "Towards Network-aware Service Composition in the Cloud", Session: Web Engineering 2 (2012).
[8]
Khushbu D. Virani and Dhara D. Virani and Madhuri Vaghasia, "Priority Based Service Composition Using Multi Agent in Cloud Environment", International Journal of Computational Engineering Research 03 (2013). [9] Andreas W. Wieland, "Typesetting Karnaugh Maps and Veitch Charts with LATEX", (2002), pp. 1-22. [10] Zhen Ye and Xiaofang Zhou and Athman Bouguettaya, "Genetic Algorithm Based QoS-Aware Service Compositions in Cloud Computing", 16th International Conference, DASFAA 2011, Hong Kong, China, April 22-25, 2011, Proceedings, Part II 6588 (2011), pp. 321-334. [11] Guobing Zou and Yixin Chen and Yang Xiang and Ruoyun Huang and You Xu, "AI Planning and Combinatorial Optimization for Web Service Composition in Cloud Computing", Proceedings International Conference on Cloud Computing and Virtualization (2010).