An Inheritance based Service Execution Planning Approach using Bully Election Algorithm Maya Rathore
Dr. Ugrasen Suman
Research Scholar, School of Computer Science & IT Devi Ahilya University (DAVV) Indore (M.P.), India 91-7697575333
Professor, School of Computer Science & IT Devi Ahilya University (DAVV) Indore (M.P.), India 91-9826953187
[email protected]
[email protected]
ABSTRACT Web service composition has gained tremendous interest with emerging application development. Automatic service composition is a key aspect in overcoming runtime problems that arise due to dynamic nature of runtime environment. In SOA, applications are formed through the combinations of independently developed web services that lead to emergence of different dependencies among the component services. The challenge of web service composition is to manage such kind of dependencies among web services when there is large number of services. In this paper, an inheritance based Bully Election approach is proposed for analyzing dependency among services and generating automatic service composition plan. It also identifies the coordinator service on which the execution of other services is dependent. Experimental result shows that the proposed approach is able to reduce the composition time complexity by including only the selected services on the composition plan.
Categories and Subject Descriptors H.3.5 [Information Storage and Retrieval]: Online Information Services - Web-based services.
General Terms Algorithms, Performance, Experimentation.
Keywords Web services, Automatic dependency extraction, Composition plan, Service dependency, Cyclic dependency, Bully Election Algorithm, Input-output dependency.
1. INTRODUCTION Service Oriented Architecture (SOA), as one of the sub-domain of distributed computing, is a rising application development architecture that uses individual services to build composite applications. Web services are self-contained, modular units of Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from
[email protected]. ICARCSET '15, March 06 07, 2015, Unnao, India Copyright 2015 ACM 978-1-4503-3441-9/15/03…$15.00 http://dx.doi.org/10.1145/2743065.2743084
application logic, which provide business functionality to other applications through web. Composite web services that achieve advanced functionality can be constructed by integrating individual web services. It enhances reuse of web services and decreases the effort to develop new applications from scratch. Web Service Composition requires a computer program which can automatically select, bind and invoke multiple web services in order to achieve a user-defined objective. Service composition can be performed either statically, or dynamically. In static composition, the process model is created manually and service binding is performed at design time. Whereas, dynamic composition process model is created automatically and service binding is performed at runtime. All methods between these two limits are categorized as semi-dynamic [3]. Dynamic composition techniques are preferred over static composition techniques due to their potential for handling unpredictable changes of runtime environment. Realization of dynamic service composition requires ability to generate autogenerated execution plan. The generation of automatic service execution plan is one of the core problems hindering the transition towards dynamic service composition. Individual services forming a composite service have to coordinate and communicate to accomplish an intended task, which requires dependencies among services. Thus, one key issue of web service composition is to manage the dependency among services and reduce the composition time when number of services is large. Another issue is to identify the coordinator service which is responsible for managing and monitoring the service execution plan in case of jagged situation. There exist various approaches that focuses on reducing the composition time complexity by generating the service composition plan using graph based techniques, petri-net based techniques, semantic similarity and workflow-based techniques[13][5][9][12-13]. Most of these approaches are limited to generate the optimal composition plan due to which the time complexity of service composition increases [4]. The aforementioned issues can be solved by an inheritance based bully election approach for generating automatic service composition plan by including only selected services. The automatic service composition plan is generated on the basis of service dependency analysis by performing semantic similarity in input-output parameters of abstract services using bully election algorithm. Also, it utilizes the bully election algorithm for identifying the coordinator service among the collection of participating web services. Proposed approach is able to reduce the composition time complexity by including only the selected services on the composition plan. It is
also helpful in electing the coordinator service, which is responsible for managing the service execution plan. This paper is organized as follows. Section 2 presents the related work on execution of service composition plans. Section 3 presents the proposed inheritance based service execution planning and coordinator service selection approach. In this section, a case study is also presented which can be used throughout the paper. Section 4 discusses the proposed approach. Finally, Section 5 presents conclusion and planned further works.
2. LITERATURE SURVEY The concept of dependency is initially explored for managing component based systems [1]. Investigation of activities in generation of execution plan shows that all methods attempt to extract dependencies. Various web service composition techniques are presented that use service dependency information, graph structure and semantics. In graph-based and chaining mechanisms of service composition, algorithms mainly search for direct explicit input-output relationships between services [1011]. In workflow-based techniques of service composition the programmer identifies sub-task dependencies manually. An approach of creating automatic composition plan is proposed that relies on automatic extraction of dependencies among services [1]. This approach forecast and extracts the potential dependency between candidate services and then uses the dependency information to generate an execution plan automatically. The approach recognizes the cyclic dependencies and proposes a way of dealing with it. Modified topological sorting algorithm is used for the execution plan generation showing execution order of candidate services [1]. An approach based on input-output dependency between services is explored to create on- demand service graph for service composition in service oriented wireless sensor network [2]. An Automatic Service Graph Generation (ASSG) algorithm is also proposed to discover abstract services that satisfies user constraints and identifies the relationship between these services. The sequence is generated based on straightforward analysis of input-output dependency. A simplified input-output dependency based automatically generated process model is introduced in order to extract dependency [3]. It uses the concept of finding the semantic similarity between service input and outputs and utilizes the dependency information for the purpose of crating automatic process model. In this approach, execution plan is generated using sorting algorithms [3]. A service discovery and composition model based on the AND-OR graph is proposed to resolve the semantic composition problem [5]. It focuses on both the parallelizability discovery and the efficiency of the algorithm over large-scale web services. It uses an inverted table as index for a quick service discovery, and applied a Service Dependency Graph (SDG) and an AND-OR graph as the algorithm basis for parallel composition. A service composition technique is presented that utilizes Casual Link Matrix (CLM) for performing dynamic service composition [6-7]. It exploits the semantic matchmaking between service parameters to enable their interconnection and interaction. A mechanism is proposed to pre-compute and store network of services that are linked by their input-output parameter [8]. The link is built by using semantic similarity functions based on ontology and the service network is represented using graph
structure. It utilizes back ward chaining and depth-first search algorithms to find sub-graph that contains services to accomplish the requested task [9]. The solution is rather abstract and does not clearly discuss execution plan generation algorithm. However, pre-computed dependency graph is generated between all services in repository that makes the graph size very big when there is high number of services. An approach is proposed that extracts service dependencies from composite service management point of view [10]. The dependencies can be tracked from log files that are normally available in SOA audit files. It is observed that most of the existing approaches use graph based web service composition techniques to extract service dependency for planning service execution which possess some limitations. First, graph based service composition techniques shows dependency between services implicitly but the dependency graph is generated at design time. Second, the complexity of managing dependencies and generating service execution path increases with the increase of services. Based on these limitations, this paper presents a continued and improved approach for planning and generating service execution plan for service composition. Unlike existing approaches in which dependency among services is constructed using graph based input-output dependency analysis [2-3][5-7][8-9][16-17], proposed approach uses bully election algorithm for constructing dependency among services. Then it utilizes the constructed dependency information for selecting the coordinator service and generates the service execution plan. This approach is capable to generate the dependency link among the candidate services at runtime and reduces the composition time complexity by including only selected number of services [14][15].
3. PROPOSED APPROACH FOR PLANNING SERVICE COMPOSITION Services created by similar or different providers are designed to be accessed and work independent to each other. But, composite service based application requires interaction, communication and coordination of abstract services. This leads to different types of dependency among services involved in composite services, such as input-output dependency, constraint dependency and cause and effect dependency. Input-output dependency occurs, when a service requires or provides data to or from another service. Constraint dependency occurs due to user constraints. Cause and effect dependency occurs, when a service has preconditions to be satisfied. Such dependencies could occur between two services directly or indirectly. Direct dependency occurs, when one service is directly dependent on other service, whereas indirect dependency occurs when two services are communicated through an intermediate service. In this approach, web services and user requests have to be described in a suitable way so that dependencies among candidate services can be extracted for composition. This approach relies on a formal description from both the user and service side. In this approach, the input-output dependency among services is managed in the form of a dependency matrix (DM) of order n*n which is also used in [1-3][5][9]. Each row and column in the DM represents candidate web services for the composite web service. For every dependent service, dependency value will be 1, otherwise 0 in cases of independent services. The dependency variable of a service can be computed by summing up all the coefficients column-wise or row-wise. The DM can be generated
by parsing each web service and analysing the similarity in their input and output parameters name and type. If the input parameter of one web service is similar in both its name and type to output parameter of other services then their dependency value can be computed. Figure 1 shows the inheritance based service execution planning approach using bully election algorithm. This approach requires the extraction of both direct and indirect dependencies among the services by providing list of candidate services to construct the DM. This approach constructs the DM in three steps. Firstly, it identifies the direct dependencies among services from input and output parameters of web services and construct direct dependency matrix. Secondly, it identifies the indirect inputoutput dependencies from direct dependencies and constructs indirect input-output DM. Finally, merge the direct and indirect input-output DM to form a total input-output DM. The number of other services to which a particular service is dependent can be calculated by adding each row of the DM matrix, whereas, the number of other services dependent on a particular service can be calculated by adding each column of the DM. The variable which holds these dependency values is called dependency variable (DV) which is obtained by determining the dependency value of a particular service to which other services are dependent. The computed value of DV is used as priority value to be assigned to each web service which is required in selecting the coordinator service. Initially, it is assumed that service S1 finds no service coordinator and its priority is highest, it sends an election message to other services. If a higher priority service responds then it withdraws from coordinator-ship. If no service responds then it will be the coordinator. This process is repeated until only one higher priority web service left standing. This approach is not only able to plan the service execution but also able to find the coordinator service which coordinates the execution of other services. Figure 2 shows the working procedure of proposed approach. In this approach, initially the dependency value of each service is 0. In figure 2(a), service S1 sends an election message along with the list of input parameters to all other abstract services such as, S2, S3, S4 and S5. If any input parameter of S1 is matched with the parameters of other services then those services sends an acknowledgement to S1. The dependency value of S1 will be increased by 1 every time when its parameter matches with as much as services. If no service parameters match with the elector service then the dependency value of that service will be 0. In figure 2(a), the dependency value of S1 is 1. Similarly, S2 sends an election message to all services along with the list of input parameters list as shown in figure 2(b). If any input parameter of S2 matches with the parameters of other service then those services sends an acknowledgment to S2 by increasing its value by 1 every time. In this way, the dependency value of S2 is 3, S3 is 2, s4 is 1 and s5 is 0 which are shown in figure 2(b), figure 2(c), figure 2(d) and figure 2(e). It is observed from figure 2(e) that the dependency value of S5 is 0 because its parameter list does not match with any service until a coordinator service with highest dependency value is not obtained. In this way, the dependency value for each service can be determined. Here, the dependency value of each service is treated as its priority value which is used for arranging the services for generating the service execution plan as well as helpful in selecting the coordinator service. Figure 2(f) shows the
input
WSDL files
WSDL Parser Extract I/O
Send election message
Send Inheritance based bully election approach
Priority generator
Analyze dependency Dependency analysis
Figure 1. Proposed approach for planning service execution service execution plan in which service with the highest priority value will be the coordinator service that coordinate the execution of other services. Following sub-sections discusses the service dependency analysis using proposed approach, generating service composition plan automatically and selection of coordinator service using proposed approach, an algorithm for analyzing service dependency and generating automatic service composition plan, and a case study of online conference management system.
3.1 Extracting dependency among services Analyzing and extracting the dependency among abstract services using proposed approach, requires the construction of DM that indicates all direct or indirect dependencies between services. Direct dependency between two web services exists, if at least one output of a service is provided as input to other service. It is specified that the matrix that models the dependency will be a square matrix of order (n*n) for component dependency [2]. In the dependency matrix, each service is represented by a column and a row. If a service Si in the ith column is dependent on service Sj in the jth row (i.e output of service Sj is the input of the service S2
S2
S1 S3
S1
S3
S1
S3
S2 S4
S4
S4
S5
S5
S5
Figure 2(a). S1 as coordinator
Figure 2(b). S2 as coordinator
S1
Figure 2(c). S3 as coordinator
S1 S2
S2
S4
S5 S3
S3
S5
S4
Figure 2(d). S4 as coordinator
Figure 2(e). S5 as coordinator S1
S2
S3
S5 S4
Figure 2(f). Service execution plan
Figure 2. Planning service execution using bully election algorithm
Si) then DM [i,j] = 1, otherwise DM[i,j] = 0. More formally, the values of all the elements in DM are defined as dij = 1 if Si is dependent on Sj otherwise dij = 0. Direct dependency matrix for the above service composition example is shown in table 1. Let the composite service to be created require n web services: S1, S2,…Sn. Then the dependency matrix (DM) can be defined as follows:
S1
0
0
0
0
0
S2
0
0
0
0
0
S3
1
0
0
0
0
S4
1
0
0
0
0
S5
1
1
0
0
0
Table 3. Dependency Matrix constructed using bully election algorithm
DM=
Services
S1
S2
S3
S4
S5
Where,
S1
0
0
0
0
0
cij =
S2
1
0
0
0
0
S3
1
1
0
0
0
S4
1
1
1
0
0
S5
1
1
1
1
0
Because of the transitivity of dependencies, it is possible to gather all indirect dependencies between the services by calculating the transitive closure. For example if service S2 has a direct dependency on service S1 and service S3 again has direct dependency on service S2 then service S3 will have indirect dependency on service S1. Thus, one should traverse all possible explicit direct service dependency chain to extract indirect dependencies. This dependency chain is a linked list of services that starts from a service in focus and terminates with a service that doesn’t have direct dependency with any service. The indirect dependency matrix for the above matrix is shown in table 2. Following observations can be made from the indirect dependency matrix: 1. All dependency relationship between services is unidirection, if the matrix is upper triangular dependency matrix, 2. No any dependency relationship between services, if the dependency matrix is diagonal dependency matrix. 3. The system is a loosely coupled system, if the dependency matrix is sparse dependency matrix. 4. Cyclic dependency indicates bidirectional communication which can be identified by comparing the symmetrical elements or by checking its diagonal elements value of dependency matrix. The cyclic dependency exists if symmetrical elements or diagonal element of the dependency matrix are equal to 1. Total DM can be obtained by merging the direct and indirect input-output dependency matrix to form a single DM which is shown in Table 3. From total DM, one can determine the number of services dependent on a particular service as well as number of other services to which a particular service is dependent. As shown in table 3, the row-wise dependency of S1 on other services is 0, whereas the column-wise dependency of other services, such as S2, S3, S4 and S5 on S1 is 4. Similarly, the dependency value of other services can be calculated. Table 1. Direct Dependency Matrix Services
S1
S2
S3
S4
S5
S1
0
0
0
0
0
S2
1
0
0
0
0
S3
0
1
0
0
0
S4
0
1
1
0
0
S5
0
0
1
1
0
Table 2. Indirect Dependency Matrix Services
S1
S2
S3
S4
S5
3.2 Generation of automatic service composition plan The knowledge about which services are independent and which services are dependent is necessary to obtain service priority and generating execution plan accordingly. It can be obtained by calculating the dependency variable (DV) for each service. The dependency variable of a service Sj can be defined as: DV(Sj)= The dependency variable represents the degree of dependency between the services and the remaining services. The bigger the value of the DV (Sj) is, the stronger the dependency between the service and the rest of the services. If the dependency variable of the two services is same then these two services can be executed in parallel. If the dependency coefficient (DC) of a service is 0 then the service is an independent service and it can be executed in parallel with other services. For the above scenario, the service priority value can be obtained and shown in Table 4. It is observed that the priority of web service S1 is highest as compared to other services showing highest dependency of other services on it. Now, assign the service priority based on the value of dependency variable. The service having higher dependency value is assigned higher priority whereas, services with lower dependency value is assigned lower priority. PRIORITY (Sj) = DV(Sj) Service composition requires the selection of suitable coordinator service that coordinates the execution of other services. A service that wishes to be a coordinator service sends an election message to all other higher priority abstract services. If any higher priority service responds then the lower priority service withdraws from its coordinator-ship, otherwise it will be the new coordinator. Once the coordinator service is identified, it coordinates the execution of other services based on priority values. A coordinator service selection process is carried out in two situations. First, re-plan the execution of services, if the previous coordinator service is not available to perform its operation. Second, new service execution planning and selection of new coordinator service among the abstract services.
Table 4. Service Priority Value Web services
S1
S2
S3
S4
S5
DV(Sj)
4
3
2
1
0
3.3 Algorithmic Description The following algorithm shows the step by step procedure of proposed approach. In this algorithm the primitive EOSL represents the End of Service List. Assume all abstract services S have assigned a priority. Also, assume S notices no coordinator service; it initiates an election and sends an election message along with the list of parameters to all web services participating in the composition. Algorithm 1 SEP_BEA (Service S) Input: a service list Output: Ordered service execution. 1. Repeat until only one web service left standing S[i] service sends election message to S[i+1] services 2.
S[i+1] services receives election message
3.
If dependent service then replies OK to sender service.
4.
Sends a new election message to higher numbered web services.
5.
Calculate the number of dependency link of all service candidates participating in composition by comparing them each other.
6.
Compare_services(S[i], S[i+1]);
7.
If(S[i].output_attrS[i+1].Input_attr)or(S[i+1].ou tput_attrS[i].Input_attr) then
3.4 Online conference management service: A case study The proposed approach is illustrated by considering a case study of online conference management service for submitting research articles. In this case study, the input parameter description of each service is represented in WSDL document and it is managed in the form of inheritance. In this case study, RegisterUser service is the base service on which other services are dependent that registers author with their details, UserLogin service performs login operation which facilitates the authors to submit or track the articles. Submit service performs the operation of submitting the article and returns the article_ID for further processing. TrackArticle_Status service performs the operation of tracking and returns the status of research article. Logout service performs the logout operation to close the current user session. Figure 3 shows the service execution workflow for online conference management system in which the above services are labelled as S1, S2, S3, S4 and S5. The input and output description of each service and their dependency with other services is shown in Table 5.
4. RESULT AND DISCUSSION The time complexity of generating automatic service composition plan and selecting the coordinator service is equivalent to O(n2). As the number of services increases, the search space for DM generator will also increases [4]. Unlike all other methods that construct dependency between services in repository [1][3] [5][11], proposed approach generates dependency between candidate services automatically. Pre-computing all possible dependency between services might increases the complexity of plan creation. Table 5. Input/output description of online conference management service
dependencyLink (S[i])=0
Web services ID
Web service Name
Input
Source web service
Output
S1
RegisterUser
author details
Initial service
UserID, Password
S2
UserLogin
UserID, Password
S1
Author desk
10. dependencyLink(S[i])= dependencyLink(S[i])+1
S3
Submit
S2
Article_ID
11. Assign priority to each service according to their number of dependency links.
UserID, Article
S4
TrackArticle_ Status
Article_ID
S2, S3
Article_St atus
S5
Logout
UserID
S3, S4
Session expire
8.
Execute_Parallel (S[i], S[i+1])
9.
If(S[i].output_attr=S[i+1].Input_attr)or(S[i+1].out put_attr=S[i].Input_attr) then ServiceBinding_list= add(S[i], S[i+1]) Else ServiceBinding_list= add(S[i+1], S[i])
Priority (S[i]) =dependencyLink (S[i]). 12. The service with the highest priority will be the coordinator. It can be obtained as: 13. While ServiceBinding_list EOSL) 14. Begin
Start
15. If (Priority(S[i])>0 and (Priority(S[i])< Priority (S[i+1]) or (Priority (S[i])= Priority (S[i+1])
S1
S3
S2
End S5
CALL S[i] Else CALL S[i+1] 16. End 17. End
S4
Figure 3. Service Execution workflow plan of online conference management service.
The problem of managing the potential complexity due to complex dependency in existing approaches, proposed approach assumes discovery of selected candidate service upon receiving of user request. Then this approach takes those discovered candidate services, extracts their input-output dependency, analyze it and assign service priority for ordering services. It also selects the central coordinating service and finally generates the execution plan for composite service. Thus, the overall time complexity for the proposed algorithm is O (n2). Figure 5 shows the comparison of time complexity of existing and proposed approach [13][5][9][11]. In Figure 5, it is seen that the time complexity of existing approaches are m*n which is very large when the number of services increases.
5. CONCLUSION The problem of analyzing dependency among services and managing multiple service execution plans can be solved by introducing a mechanism based on inheritance based bully election approach. In this approach, an automatic service composition plan is generated by constructing dependency among services using bully election algorithm. Also, the proposed approach is able to reduce the composition time complexity by including only selected services. Apart from the benefits of proposed approach, it is not suitable in situation, where services are independent. In our future work, we will present a mechanism through which the coordinator service can be prevented from failures in order to avoid whole composition to be fail.
6. REFERENCES
International Journal of Engineering Technology. IJEAT, 3, 5, 142-146.
and
Advanced
[5] Yan, Y., Xu, B. and Gu, Z. 2008. Automatic service composition using AND/OR graph. In Proceedings of 10th IEEE Conference on E-Commerce Technology and the Fifth IEEE Conference on Enterprise Computing, E-Commerce and E-Services (July 21-24, 2008). 335-338. [6] Lecue, F., Silva, E. M. G. da. and Pires, L. F. 2007. A framework for dynamic web services composition. 2nd ECOWS Workshop on Emerging Web Services Technology (Halle. Germany: CEUR, November, 2007). WEWST07. [7] L´ecu´e, F., L´eger, A. 2006. A formal model for semantic web service composition. In: (ISWC). LNCS, 4273, 385-398. [8] Talantikite, H. N., Aissani, D. and Boudjlida, N. 2009. Semantic annotations for web services discovery and composition. ScieceDirect. 31, 6, 1108–1117 [9] Aydogan, R. and Zirtiloglu, H. 2007. A graph-based web service composition technique using ontological information. In Proceedings of International Conference on Web Services (Los Alamitos, CA, USA, July 9-13, 2007). ICWS’07, IEEE Computer Society, 1154–1155. [10] Basu, S., Casati, F. and Daniel, F. 2007. Web service dependency discovery tool for soa management. In Proceedings of IEEE International Conference on Web Services Computing (Los Alamitos, CA, USA, July 9-13, 2007). SCC’07, IEEE Computer Society, 684–685.
[1] Omer, A.M., Schill, A. 2009. Dependency Based Automatic Service Composition Using Directed Graph. In Proceedings of the Fifth International Conference on Next Generation Web Services Practices (September 9-11, 2009). NWESP '09, 76-81.
[11] Zhou, J., Pakkala, D., Perl, J., and Niemel, E. 2007. Dependency aware service oriented architecture and service composition. In Proceedings of International Conference on Web Services (Los Alamitos, CA, USA, July 9-13, 2007). ICWS’07, IEEE Computer Society, 1146–1149.
[2] Vanitha, V., Palanisamy, V. and Baskaran, K. 2012. Automatic Service Graph Generation for Service Composition in Wireless Sensor Networks. In Proceedings of the International Conference on Communication Technology and System Design. ScienceDirect. 30, 591-597.
[12] Iordache, R. and Moldoveanu F. 2013. A Genetic Algorithm for Automated Service Binding. In Proceedings of 4th DAAAM International Symposium on Intelligent Manufacturing and Automation. Elsevier, 69, 1162 – 1171.
[3] Omer, A.M., Schill, A. 2009. Web Services Composition using Input/ Output Dependency Matrix. In Proceedings of the 3rd workshop on Agent-oriented software engineering challenges for ubiquitous and pervasive computing (Newyork, USA). ACM, 21-26. [4] Hussain, M. and Paul, A. 2014. A survey on Graph based Web service Discovery and composition Techniques.
[13] Ait-Cheik-Bihi, W., Nait-Sidi-Moh, A., Bakhouya, M., Gaber, J., and Wack, M. 2012. Performance Study of Workflow Patterns-Based Web Service Composition. In roceedings of 9th International Conference on Mobile Web Information Systems. MobiWIS, Procedia Computer Science, elsevier, 10, 728-735. [14] Rathore, M. and Suman, U. 2013. Web service selection algorithm for dynamic service composition using LSLO approach. In Proceedings of International Conference on Informatics, Electronics & Vision (Bangladesh, May 17-18, 2013), ICIEV, IEEE Computer Society, 1-6. [15] Rathore, M. and Suman, U. 2014. QoS Broker based Architecture for Dynamic Web Service Discovery and Composition. International Journal of u- and e- Service, Science and Technology. 7, 6, 237-252. [16] Ben, C., Fathia Bettahar, M., Abderrahim, H. and Saidi, H. 2013. Towards a Graph Based Approach for Web Services Composition. International Journal of Computer Science Issue. IJCSI, 10, 1(3).
Figure 4. Comparison of composition time complexity in existing and proposed approach.
[17] Elmaghraoui, H., Zaoui, I., Chiadmi, D. and Benhlima, L. 2011. Graph based E-Government Web Service Composition. International Journal of Computer Science Issue. IJCSI, 8, 5(1).