Applied Soft Computing Volume 27 February 2015 Pages 127136 A cloud computing platform for ERP applications ChinSheng Chen a WenYau Liang b HuiYu Hsu b httpsdoiorg101016jasoc201411009 Get rights and content Highlights A CloudERP platform was proposed Customers can select web services and customize an ERP system The proposed process builds on the GA and incorporates with the rough set theory A prototype was built on the Google App Engine to verify the proposed process Abstract Cloud computing enables many applications of Web services and rekindles the interest of providing ERP services via the Internet It has the potentials to reshape the way IT services are consumed Recent research indicates that ERP delivered thru SaaS will outperform the traditional IT offers However distributing a service compared to distributing a product is more complicated because of the immateriality the integration and the oneshotprinciple referring to services This paper defines a CloudERP platform on which enterprise customers can select web services and customize a unique ERP system to meet their specific needs The CloudERP aims to provide enterprise Graphical abstract Download fullsize image Keywords Web services composition ERP Cloud computing Genetic algorithms Rough set theory 1 Introduction Traditional business applications such as computer aided design CAD product data management PDM Computer aided manufacturing CAM enterprise resources planning ERP and manufacturing execution systems MES all rely on a central server and procedural software These systems are not autonomous or flexible enough to support a dynamic business environment 34 With the advance of Internet technology and globalization these enterprise applications especially ERP systems have been webenabled providing access to information and communications via the Internet as a part of global business strategy 16 Along with the emerging demand for mobility and ondemand services the development of webbased ERP systems becomes an urgent research and development issue 64 The subscription to web services for ERP applications has two essential advantages ease of integration and reduction in costs through the hosted application model 57 Wu et al 67 presented a framework for measuring the scalability of service based applications in a Cloud Computing environment and propose an assignment strategy to improve the scalability of composite Web services in terms of services productivity Recent research indicates that ERP delivered thru SaaS will outperform the traditional IT offers as a consequence of the current economic crisis and will helps the economies to recover 21 Although ERP is lagging behind other applications in terms of SaaS based applications there seems to be a general consensus that ERP in SaaS is gaining momentum To grab this momentum the four big players in the ERP systems market SAP Oracle Sage and Microsoft are positioning their ERP offers in SaaS model 24 However distributing a service compared to distributing a product is more complicated because of the immateriality the integration and the oneshotprinciple referring to services 23 Also the process of analyzing and selecting services in the Web services composition process is more complex than the one of analyzing and selecting parts for a product design 37 It is further complicated by the customers request in terms of the scope of application One specific need is the development of efficient composition methods which evaluate and optimally integrate these possibly heterogeneous services on the Web especially in the ERP application domain in response to an enterprise customers request Therefore this paper proposes a CloudERP platform on which enterprise customers can select web services and customize a unique ERP system to meet their specific needs The CloudERP aims to provide enterprise users with the flexibility of renting an entire ERP service through multiple vendors This paper also addresses the challenge of composing web services and proposes a webbased solution for automating the ERP service customization process This study proposes a method that makes use of the genetic algorithm GA concept and the rough set theory to solve the Web services composition problem The genetic algorithm incorporates with rough set 5 36 37 However these all focus on how to use rough set theory to extract rules and ignore the feature of the application domain The novelty of the proposed method lies in the application domain Cloud ERP This remainder of this paper is organized as follows Section 2 reviews the concepts of Webbased ERP and Web services composition In Section 3 a novel ERP platform called CloudERP is proposed In Section 4 the proposed composition method for Web ERP services is presented In Section 5 a system prototype is presented along with experimental data analysis and then followed by Section 6 which provides concluding remarks and summary of future research directions 2 Literature review 21 Webbased ERP ERP systems are one of the most adopted information technology IT solutions in organizations 2 Because of their scale and substantial resources consumption it is not surprising that ERP systems have been a center of focus by both researchers and practitioners 11 The key competitive edge for every enterprise in the 21st century is in its ability to prescribe standardize and adapt its business activities and collaborations with customers suppliers partners and competitors 34 Most ERP vendors today recognize this interoperability issue as significant and have built up Internetenabled supply chainlogistics modules to facilitate integration with the backend systems of supply chain partners relying on a diverse set of legacy databases IT infrastructure and applications 52 For example Gollakota 15 reported a company which created kiosks with Internet and computer access and operated a web portal serving the needs of the farming industry The portal provided information relating to farming techniques farm business information and general information such as weather and climate and access to the firms ERP system Separately Tarantilis et al 57 presented a Webbased ERP system developed to address business problems and manage realworld business processes ranging from a simple office automation procedure to complex supply chain planning Zhang et al 75 explored the IT service innovation in textile industrial clusters from a service system perspective They argued that the IT enabled producer service could be used to ensure the structural upgrading of the textile industrial clusters Mital et al 44 also developed an integrative framework to identify the determinants of choice of SaaS in the specific context of SaaS based eprocurement and ERP In summary one of the most important trends in the recent years is cloud computing It has the potentials to reshape the way IT services are consumed More recently some ERP vendors have moved some of their offerings to the cloud eg SAP By Design However there is still a lot to be done in order for the customers to see more and more services and suites moving to the cloud Therefore more research efforts are still needed in order to elucidate knowledge on the marriage of the two 11 22 Web services composition The capability of composition is an important strength of any Web services provider Rather than accessing a single service composing services is essential as it adds better benefits to its users 13 By ensuring highlevel interoperability Web services offer have the capability of composing compatible processes referred to as composite Web services independent of specific platforms and computing paradigms 42 While elementary Web services do not rely on other Web services to fulfil external requests composite services integrate multiple service components to fulfil a customers request 43 Several approaches and applications have been proposed to exploit the concept of Web services composition One research looked into the role of policies and context for framing the composition of Web services Policies are to govern the behavior of Web services engaged in composition and context is to support the development of adaptable Web services 42 Yu et al 73 designed a brokerbased architecture for selecting Quality of Service QoSbased services The objective of service selection is to maximize an applicationspecific utility function under the endtoend QoS constraints Park 46 presented a decentralized protocol design called the Web services coallocation protocol aiming to facilitate the execution of composite Web services while Lee et al 32 proposed a Web servicesbased Multidisciplinary Design Optimization MDO framework that synthesizes both disciplinary and crossdisciplinary resources available for MDO Taking advantage of Web services Zhao et al 77 built a biomedical digital library infrastructure called the Living Human Digital Library LHDL that allows clinicians and researchers to preserve trace and share data resources as well as to collaborate at the dataprocessing level Recently Yahyaoui et al 70 proposed a novel matchmaking approach between fuzzy user queries and real world Web services The matchmaking spans over a domain dependent classification step that produces fuzzy classification rules for Web services Furthermore these rules are leveraged to classify Web services into categories which allow reducing the matchmaking space One study developed an efficient approach for automatic composition of Web services using the stateoftheart Artificial Intelligence AI planners 79 Rajeswari et al 51 revealed various challenges in the QoS parameter for Web service composition because it is difficult to recognize In summary Web services composition is a complex issue The complexity initially arises from the diversity and compatibility of the composition components of Web services It is further complicated by the customers request in terms of the scope of application In theory service components are developed by different organizations and offered by different providers at different rates There is a general need for developing principles and methodologies for managing composite Web services One specific need is the development of efficient composition methods which 3 CloudERP Cloud computing is defined as both the applications delivered as services and the hardware and systems software in the data centers that provide those services 3 Kim 29 anticipated that Cloud computing would become a key computing paradigm for the next 510 years Cloud services can be viewed as a cluster of service solutions based on cloud computing which involves making computing data storage and software services available via the Internet Generally cloud services can be divided into three categories 69 1 Software as a service SaaS Applications services delivered over the network SaaS simplifies the utilization of a large amount of soft ware applications remotely elastically and seamlessly 65 2 Platform as a service PaaS A software development framework and components all delivered on the network Offered as ondemand pay for usage model A PaaS model packages a computing platform including operating system programming language execution environment database and web server A PaaS client is able to develop and run its applications at the software layer 65 3 Infrastructure as a service IaaS An integrated environment of computing resources storage and network fabric delivered over the network Offered as an ondemand pay for usage model Among them SaaS is regarded as a potential segment and the utilization of SaaS solutions can lead to many benefits for enterprise users with profound consequences in improving IT performance 6 Service providers can greatly simplify software installation and maintenance and centralizes the control of versioning End users on the other hand can access the service anytime anywhere share data and collaborate with partners readily while keeping their data stored safely in the infrastructure As a result an enterprise customer does not have to acquire the whole enterprise software suite and yet is able to choose each module from different vendors creating a unique costefficient and customized enterprise solution 57 Within the hype of cloud services ERP systems delivered as Software as a Service SaaS is receiving more focus from ERP vendors ERP vendors have for many years developed and sold ERP as standard software that fits the needs of many firms and now SaaS as a new approach to deliver software has emerged 24 The proposed composition method can be implemented as a SaaS running on a PaaS by a Cloud services provider Depending on its architecture cloud computing can be categorized into three types externalpublic cloudsresources dynamically provided on a selfservice basis over the internet via web services from an offsite thirdparty provider internalprivate cloudsdata and processes managed within an organization without the restriction of network bandwidth or security exposures and hybrid cloudsthe environment consisting of multiple internal and external cloud computing solutions 53 This paper propose a hybrid clouds computing which consisting of multiple internal and external cloud computing solutions depicts a CloudERP platform that supports interoperable servicetoservice interaction over the Cloud The CloudERP aims to provide enterprise users with the flexibility of renting an entire ERP service through multiple vendors The platform has three major players 1 The Cloud services provider which enables communications among ERP providers and enterprise customers 2 The ERP providers which provide an XML format computerreadable description of Web services for execution of various application functionalities 3 The enterprise customers which select compose and lease the Web services to meet their ERP objectives Download fullsize image A CloudERP workflow To satisfy the need of an enterprise customer for ERP application the following platform steps have to exist and occur in the sequence as outlined in Step 1 Submit and Assess 11 ERP providers submit Web services to the platform 12 The platform checks the compatibility If not return to ERP providers 13 Experts start to assess each Web services Step 2 Publish 21 Publish the Web service on this platform and notify users Step 3 Select 31 Users input requirements and constraints 32 Users select composite method Step 4 Implement 41 The platform composites Web services and configure into the users virtual Cloud 42 The platform notifies users Step 5 Access 51 Users access the composited Web service through the virtual Cloud 52 Users evaluate the process and send feedbacks to the platform This paper focuses on the selection and composition process in step 3 and proposes a composition method with use of the GA concept and the rough set theory to select and compose web services for CloudERP users 4 The proposed genetic algorithm This section details the proposed genetic algorithm imbedded with rough set theory It was developed and coded with basic units of Web services The reduct rules generated by the rough set approach were used to reduce the basic units domain range of the initial population and validate the feasibility of offspring when a crossover is processed to achieve optimization of the objective function It was designed to improve the effectiveness of the GAs evolution and achieve rapid convergence of the search process 41 Genetic algorithm Genetic algorithms are used to perform elegant and robust search to improve a known solution They allow application of optimization methods to find answers in complex or poorly understood search spaces 1 Genetic Algorithms are a powerful tool to solve combinatorial optimizing problems 41 and are a suitable choice for discredited optimization problems 28 Vallada and Ruiz 63 proposed three genetic algorithms for the permutation flow shop scheduling problem with total tardiness minimization criterion The results showed that the proposed algorithms were effective outperforming the existing methods used for comparison in the study Udhayakumar et al 62 applied GA to solving the Pmodel of chance constrained data envelopment analysis CCDEA in a case of Indian banking sector GA techniques have been also applied in others fields For example Liang and Huang 35 used GA to solve the problem of product synthesis where there is a conflict between performance and cost One study proposed genetic algorithms for matchup rescheduling with nonreshuffle and reshuffle strategies which accommodate new orders by manipulating the available idle times on machines and by resequencing operations respectively 74 Sadrzadeh 54 presented a genetic algorithmbased metaheuristic to solve the facility layout problem FLP in a manufacturing system where the material flow pattern of the multiline layout is considered with the multiproducts Kuo and Lin 31 proposed an evolutionarybased clustering algorithm based on a hybrid of genetic algorithm GA and particle swarm optimization algorithm PSOA for order clustering in order to reduce surface mount technology SMT setup time More recently Toledo et al 59 applied a genetic algorithm with hierarchically structured population to solve unconstrained optimization problems Meanwhile one research considered the discrete optimization via simulation problem with a single stochastic constraint and presented two geneticalgorithmbased algorithms that adopt different sampling rules and searching mechanisms and thus deliver different statistical guarantees 60 An advanced novel heuristic algorithm is presented the hybrid genetic algorithm with neural networks HGANN which is used to identify an optimum feature subset and to increase the classification accuracy and scalability in credit risk assessment 45 However typical GA techniques are viewed with shortcomings such as poor local searching premature converging and slow convergence speed 25 The next subsection thus is devoted to the genetic algorithm imbedded with the rough set theory to overcome the above search problems 42 Rough set theory Rough set theory RST was devised by Pawlak in 1982 as a discovery tool that can be used to induce logical patterns that are hidden in massive data A rough set approach can capture useful information from a set of mixed data and output this information in the form of decision rules 48 The RS approach uses a decision table with rows containing objects and columns containing criteria or features to derive decision rules through an inductive process Rough set theory has become a wellestablished theory for uncertainty management in a wide variety of applications related to pattern recognition image processing feature selection neural computing conflict analysis decision support data mining and knowledge discovery 49 In rough set theory a reduct is defined as a minimal sufficient subset of a set of attributes which has the same ability to discern concepts as when the full set of attributes is used 78 Basically the reducts represent necessary condition attributes in decision making Further a subset of the attributes can have more than one reduct so simplifying the decision rules will not yield unique results To implement the rough set theory a procedure for determining the reducts is needed such as generating reducts and identifying the decision rule The rough set theory has been applied to various areas Tseng and Huang 61 derived the decision rules from historical data for identifying features that contribute to CRM Chu et al 9 proposed a expert systems for assisting mapping from performance space to design space ESMPD Herawan et al 18 proposed a new technique called maximum dependency attributes MDA for selecting clustering attribute The proposed approach is based on rough set theory by taking into account the dependency of attributes of the database Shyng et al 55 used two processes pre process and post process to select suitable rules and to explore the relationship among attributes A systematic approach to analyze existing patent information based on rough set theory with the consideration of resource allocation is developed 19 a case study is presented to demonstrate the contribution of the proposed approach which assists on decisionmaking in patent reform or invention with constraint resource Kaneiwa and Kudo 26 proposed a method for mining such local patterns from sequences and described an algorithm for generating decision rules that take into account local patterns for arriving at a particular decision Wu 68 attempted to segment the ERP users into two subgroups according to the notion of Herzbergs MotivationHygiene theory and further to uncover imperative perceived benefits for distinct subgroups of ERP users employing the rough set theory The previous literatures have shown that the rough set theory is very useful to extract knowledge and help the decision making Meanwhile in the past decade several extensions of the rough set model have been proposed to improve the effectiveness such as the variable precision rough set model 76 the Bayesian rough set model 33 the Dominancebased rough set model 12 the fuzzy rough set model 39 In this study the difference of these models will not be addressed Generally the generated rules from each method can be applied to the proposed approach 43 The evaluation schema Many methods have been considered for ERP selection including scoring mathematical programming analytic hierarchy process AHP and multicriteria decision analysis 27 Other methods such as zeroone goal programming 27 fuzzy method 66 Data envelopment analysis DEA 66 artificial neural network ANN 71 and analytic network process ANP 38 have also been proposed for selecting a suitable ERP Deriving from expert opinion and earlier studies Karsak and Özogul 27 cited the use of criteria for ERP system selection such as total cost of ownership functional fit of the system user friendliness flexibility and vendors reputation Weight associated with each selected criterion is also an important factor in the decisionmaking process The proposed composition method ranks composited Web services by the ranking model Given the objective function it considers normalizing different criteria and allowing for different weight for each criterion The notations and computations for criterion value are specified as follows α β γ represent all kinds of Web services n the number of Web services composition W weight C cost of ownership FF functional fit of the ERP system UF user friendliness F flexibility VR vendors reputation TI total index Cost of ownership C C α C β C γ represents the cost of ownership C α β γ represents an integral cost of the Web service α β γ 1 Functional fit FF A single Web service may influence integral composition Functional fit FF α FF β FF γ represents the Functional fit of the Web service and FF α β γ represent the integral Functional fit of the Web service α β γ composition 2 User friendliness UF UF α UF β UF γ represents the User friendliness of the Web service UF α β γ represents an average User friendliness of the Web service α β γ 3 Flexibility F A single Web service may influence integral composition Flexibility F α F β F γ represents the Flexibility of the Web service and F α β γ represents the integral Flexibility of the Web service α β γ composition 4 Vendors reputation VR VR α VR β VR γ represents the VR Vendors reputation of the Web service VR α β γ represents an average Vendors reputation of the Web service α β γ 5 Total Index TI Through the predefined weight W1W5 for each criterion and normalization the total index can be obtained using the following equation i means the number of Web services composition Download fullsize image 44 The proposed composition process The GAbased method utilizes relevant knowledge extracted using the rough set theory to improve the search performance by reducing the domain range of the initial population GA algorithms are efficient search methods based on the principles of natural selection and population genetics in which random operators in a population of candidate solutions are employed to generate new points in the search space 8 The increase in data and information however often hinders the performance and capacity of the GA raising the cost of finding a solution by using it To overcome the problem Passone et al 47 combined the GA with guidance provided by domainspecific knowledge The proposed method makes use of the rough set theory introduced by Pawlak as a mathematical method 50 to improve the GA performance With the rough set method the minimal attribute sets can be extracted without deterioration in the quality of approximation and minimal length decision rules corresponding to lower or upper approximation 22 The rough set routine performs offline and only when the database is updated The reduct rules are applied in the GAs evolution process in real time while composing Web services in attempt to increase the effectiveness of the GAs evolution and more rapidly achieve convergence The proposed composition process consists of two phases The first phase is called predispose of rough set It is a precomposition activity and is performed off line periodically The second phase is the rough set theory imbedded GA for web service composition Both phases are outlined in and detailed as follows Download fullsize image The proposed web service composition method Phase I Predispose of rough set This phase focuses on using the database to find relevant rules The rule identification algorithm developed by Huang and Tseng 20 is used to identify and compose candidate reduct rules The algorithm is outlined as the following five steps Step 1 Create basic units and enter them in the database Step 2 Calculate the lower and upper approximations for basic units Step 3 Identify the core and reduct of attributes Step 4 Identify the core and reduct of attributive values Step 5 Identify the relevant rules Phase II Genetic Algorithm for Web Services Composition The reduct rules generated in phase I are applied in this phase to enhance the effectiveness of the GA evolution This method consists of four steps as detailed below Step 1 Define the parameters 11 Set the initial population size to m 12 Set the generation k to 1 13 Set the number of chromosome to n the number of composited Web services 14 Set the mutation rate crossover rate and termination condition 15 Set weights 16 Select the rules 17 Set the percentage of rule matching Step 2 Initialization this initialization step is intended to produce m initial populations that satisfy the relevant constraints 21 Set chromosome p to 1 22 Set gene q to 1 23 Select one Web service that satisfies the rule from the database 24 Set q q 1 25 If q n then go to Step 23 26 Set p p 1 27 If p m then go to Step 22 otherwise go to Step 33 Step 3 Evolution the GA evolution occurs in this step 31 Calculate each chromosome using the objective function 32 Check termination condition If satisfied go to Step 4 33 Use a suitable selection strategy to select the new population 34 Crossover perform crossover according to the crossover rate 35 Mutation perform the mutation process according to the mutation rate 36 Set generation k k 1 and go back to Step 31 Step 4 Detailed design 41 Allow the user to evaluate the result and modulate the parameters 5 System prototyping and experimental analysis Many well known IT companies such as Google Amazon Yahoo Microsoft IBM and SAP are active participants in cloud computing on both SaaS and PaaS Google operates a cloud computing business platform called Google App Engine GAE which is viewed as currently leading and more mature cloud computing platform Software developers are able to write applications on the platform and enterprise customers are able to customize network services 72 The prototyping system was coded in JAVA and JSP based on the GAE for testing and validation of the proposed method The implementation scenario of CloudERP is shown in The information of Web services components was published and stored in the system database Table 1 represents a partial table of Web services components The table is set randomly The value of each criterion is predefined by experts Download fullsize image The implementation scenario of CloudERP Table 1 A partial table of the Web services component database Functionality Vendor Flexibility range 1100 Reputation range 110 Cost range 110 Functional fit range 1100 User friendliness range 110 Finance SAP 98 9 8 89 7 Distribution SAP 69 6 7 93 9 Human Resource Salesforces 95 7 8 93 7 Manufacturing SAP 55 9 10 97 7 Manufacturing Microsoft 62 8 7 97 8 Finance Microsoft 65 10 8 87 6 Procurement Microsoft 91 7 7 91 6 Distribution Oracle 94 6 9 90 7 51 Example illustration In the IT industry product life cycle is extremely short Companies need to deliver new products while they have market value In some IT industry segments original equipment manufacturing OEM and original design manufacturing ODM are the main business of which companies are not involved in their customers sales and marketing activities The crossfunctional cooperation of information systems in such an IT industry segment is believed more important than the industry segments with a longer product life cycle in order to cope with the rapid changes in customer needs and the extremely short product life cycles 56 A typical ERP system for such an application consists of financial human resources manufacturing procurement and distribution modules 7 Thus the scenario is an enterprise customer would like to select these five functional modules from a CouldERP platform to customize its own ERP system This system prototype is intended to use roulette wheel selection and crossover ratemutation rate to generate the offspring Since this enterprise customer wants to pay more attention to flexibility thus the weight for flexibility is set at 06 The weights for the other four criteria are set at 01 The proposed method works with the example as follows Phase I Predispose of rough set Step 1 Create basic units and enter them in the database Following the approach proposed in Liang and Huang 37 used supplier type and implementation language were selected as the conditional attributes of the rough set Also considered were networkrelated parameters such as network domain download frequency and reputation as argued by Tian et al 58 Hansen et al 17 and Ko et al 30 Consequently supplier implementation language network domain and number of downloads were adopted as the four conditional attributes On the other hand high performance high reputation and low cost were used as the three decision variables Each attribute in Table 2 has its own code name Thirty records were randomly selected from the dataset for this example Based on Table 2 a decision table was generated as in Table 3 and then organized into an elementary set by their attributive values as shown in Table 4 Table 2 Description of all attributes Conditional attributes Decision attribute C1 Supplier C2 Network domain C3 No of download C4 Implemented language O Outcomes 1 Salesforces 1 Taiwan 1 Low 015 1 JAVA 1 High performance 2 SAP 2 USA 2 Middle 1630 2 VB 2 Low cost 3 Microsoft 3 India 3 High 31 3 Delphi 3 High reputation 4 Oracle 4 C 5 ABAP Table 3 Decision Table Object No C1 C2 C3 C4 Decision attributes X1 3 3 3 1 1 X2 3 3 2 2 2 X3 2 1 3 1 1 X4 1 2 1 2 2 X27 3 2 3 1 1 X28 3 2 1 2 2 X29 3 3 3 3 3 X30 2 1 3 1 1 Table 4 Elementary set Cluster No Objects Decision attributes 1 x1x3x7x10x11x13x17x20x21x23x27x30 1 2 x2x4x8x12x14x18x22x24x28 2 3 x5x6x9x15x16x19x25x26x29 3 Step 2 Calculate the lower and upper approximations for basic units The elementary sets upper and lower approximations were computed in this step And decision attributes elementary set was completely classified as shown in Table 5 Table 5 Lower and upper approximations Cluster No Number of objects Lower approximations Upper approximations Accuracy 1 12 12 12 10 2 9 9 9 10 3 9 9 9 10 Step 3 Find the core and reduct of attributes This step created a discernibility matrix to obtain the core and reducts using the absorption law to calculate the reduct result In this example the reduct C3 No of download C4 Implemented Language was as shown in Table 6 Table 6 Reduct of attributes Reduct 1 C3 C4 Step 4 Find the core and reduct of attributive values The unnecessary values in the condition attributes in the decision table were eliminated in this step according to the reduct C3 C4 and the discernibility matrix After calculation the final decision table version was generated as shown in Table 7 Table 7 Final decision table C3 C4 O X1 3 1 1 X2 2 2 X3 3 1 1 X4 2 2 X27 3 1 1 X28 2 2 X29 3 3 X30 3 1 1 Step 5 Find the relevant rules In this step a set of decision rules was summarized as shown in Table 8 in accordance with Table 7 The meaning of the decision rules is interpreted in Table 9 Table 8 Decision rule Reduct No C3 C4 O 1 3 1 1 2 2 2 3 3 3 Table 9 The explanation of decision rules Rule No Meaning 1 IF the No of download is high and iimplemented language is Java then the Web service has high performance 2 IF implemented language is VB then the Web service has low cost 3 IF the No of download is high then the Web service has high reputation Phase II Genetic Algorithm for Web services composition Step 1 Define the parameters 11 Set the initial population size m to 300 12 Set the generation k to 1 13 Set the number of chromosome n as 5 number of composited Web services 14 Set the mutation rate to 0001 crossover rate as 08 and termination condition as 500 generations 15 Set the weights Cost 01 Functional Fit 01 User Friendliness 01 Flexibility 06 Reputation 01 16 Select the rule the final reduct rule in this example was applied to the genetic algorithm to reduce the domain range of the initial population Since this company assigns a heavier weight to flexibility 06 the reduct rule 1 in Table 9 which says IF the No of downloads is high and implemented Language is Java then the Web service has high performance was selected since the extent of flexibility can be measured by one of its metrics efficiency 14 17 Set the percentage of rule matching to 90 To avoid finding a local optimal solution weight analysis was used to make the rules fuzzy rather than absolute Using the weight the reduct rule 1 in Table 9 implies that 90 of the initial population selected was considered satisfactory Step 2 Initialization This step aims to produce 500 populations composed of five categories A Finance B Human Resource C Manufacturing D Procurement and E Distribution each of which satisfies the reduct rule Table 10 is a partial population that was obtained Table 10 The partial of initial populations Chromosome No Category A B C D E 1 65 69 80 49 30 2 15 32 96 89 68 3 39 60 16 16 56 4 24 62 60 82 8 5 7 44 90 36 92 6 69 42 89 66 40 7 36 6 26 92 89 8 87 66 27 59 80 9 47 70 70 82 49 10 42 76 26 12 9 Step 3 Evolution This step focuses on the GA evolution of the 500 generations In this case the proposed GA converges at the 70th generation at which all the population is the same and the fitness functions are all equal to 1 The best worst and average fitness objective converged at 1 as shown in Figure 4 The evolution process therefore was terminated This example was converged at 3666369296 Download fullsize image The converged result of genetic evolution Step 4 Detailed design The final result for this case study is summarized in Table 11 The enterprise user now can adjust the parameters to test and verify Table 11 The final result Functionality ID Vendor Flexibility Reputation Cost Functional fit User friendliness Finance 36 Microsoft 99 7 4 96 7 Human Resource 66 Microsoft 99 9 6 99 8 Manufacturing 36 Microsoft 99 9 3 92 7 Procurement 92 SAP 99 8 7 94 8 Distribution 96 Microsoft 99 9 5 92 10 52 Experimental analysis 521 Experiment I small sample To verify the proposed method the results were compared with those obtained by standard GA and exhaustive enumerations The exhaustive enumerations are executed at local machine due to the limitation of GAE A request handler has a limited amount of time to generate and return a response to a request typically around 60 s Once the deadline has been reached the request handler is interrupted Although the exhaustive enumerations can find all feasible solutions and the global optimum they are computationally costly In this case experimental parameters are identical to those used in the previous example except that the number of candidate Web services component in each category is set to 50 The exhaustive enumerations in this study reached the global optimal composition in 222 s Accordingly the two methods ie the standard GA approach and the proposed approach were each run 1000 times Table 12 shows the experimental results The hit rate is the percentage of the global optimum obtained from the exhaustive enumerations The proposed method has a much higher high rate Table 12 The comparison of proposed approach with standard GA small sample Index Method Enumeration Traditional GA Proposed approach Averaged converged generations 982 941 Averaged execution time s 222 0101 0089 Hit rate 39 89 522 Experiment II large sample In this case experimental parameters are identical to those used in the previous example except that the number of candidate Web services components in each category is set to 100 Table 13 shows the proposed method has a much higher hit rate Table 13 The comparison of proposed method with standard GA large sample Index Method Enumeration Traditional GA Proposed method Averaged converged generation 117 907 Averaged execution time s 7140 011 009 Hit rate 17 84 523 Experiment III sensitivity analysis Sensitivity analysis is often used to analyze how sensitive a system is with respect to the change of parameters 40 A sensitivity analysis of the proposed GA method was carried out with three parameters which are population size crossover rate and mutation rate These parameters largely determine the success and efficiency of a GA routine for solving a specific problem 36 sets of parameters in total combining different crossover rates 07 08 085 09 mutation rates 0001 00015 0005 and population numbers 100 200 300 were used to run the experiments and to obtain the hit rate The findings are summarized below The greater the population the higher the hit rate as shown in Table 14 Table 14 Hit rates among different populations Population No 100 200 300 Hit rate 8448 8541 8596 There is no significant difference in hit rate among different crossover rates as shown in Table 15 Table 15 Hit rates among different crossover rates Crossover rate 07 08 085 09 hit rate 8512 8536 854 8531 There is no significant difference in hit rate among different mutation rates as shown in Table 16 Table 16 Hit rates among different mutation rates Mutation rate 0001 00015 0005 Hit rate 8525 8525 8536 The sensitivity analysis on the parameters shows that the user can recognize which parameter to focus on for the problem of interest For example the nature of the hit rate in this case study highly relates to the population number Eiben et al 10 conducted a comprehensive review and classification of parameter control methods for evolutionary algorithms Yet the selection of these control parameters is rather complex and needs further research beyond the scope of this study 53 Discussion The experimental results show that the proposed composition method is significantly better than traditional GA as summarized in Table 12 Table 13 The execution time for the exhaustive enumeration method is much longer than the one for the proposed method It indicates that application of constraints in the search process improves the solution quality Specifically when the number of candidate Web services increased from 100 to 300 the time required for the exhaustive enumerations to find the global optimum rose exponentially to 22 days Assuming the trend continues exhaustive enumeration methods will not be able to find the optimal solution for a much larger number of Web services The proposed composition method on the contrary is not subject to this limitation Johansson and Ruivo 24 explore vendors perspective on what factors affect adopting ERP as SaaS and found 10 factors Costs Security Availability Usability Implementation Ubiquity Flexibility Compatibility Analytics and Bestpractices Costs data security and system availability were perceived by the experts as the most important factors in customer perspective for adopting ERP systems in a SaaS delivery model A SaaS provider should realize that a successful market establishment of its offer lays not so much on the product itself but on the kind of support given in the SaaS model and the customer experience with provided service That is the paradigm changes from product 4 6 Conclusion This paper proposed a CloudERP platform and outlined a method for composing web services for ERP providers and enterprise users This paper zooms in the selection process to propose a Web services composition method for Cloud platform providers in order to automatically customize an EPR service in response to a enterprise customers need The proposed composition method makes use of the GA concepts and employs rules generated by the rough set The modified GAbased composition method appears to operate effectively and promote both convergence and hit rate according to the experiments Toward developing a fully functional CloudERP platform more research Acknowledgment This work was partially supported by funding from the Ministry of Science and Technology of the Republic of China NSC 992410H018016MY3 NSC 1002918I018001 MOST 1032410H018015MY2 References 1 H Ahn K Kim Bankruptcy prediction modeling with hybrid casebased reasoning and genetic algorithms approach Appl Soft Comput 9 2009 pp 599 607 Google Scholar 2 M AlMashari A AlMudimigh M Zairi Enterprise resource planning a taxonomy of critical factors Eur J Oper Res 146 2 2003 pp 352 364 Google Scholar 3 M Armbrust A Fox R Griffith AD Joseph R Katz A Konwinski A view of cloud computing Commun ACM 53 4 2010 pp 50 58 Google Scholar 4 E Brynjolfsson P Hofmann J Jordan Cloud computing and electricity beyond the utility model Commun ACM 53 2012 pp 32 34 Google Scholar 5 MM Cariappa MK Nair Applying rough set theory to genetic algorithm for web service composition Int J Comput Sci Inform 2 4 2012 pp 2231 5292 Google Scholar 6 D Catteddu G Hogben Cloud Computing Benefits Risks and Recommendations for Information Security European Network and Information Security Agency ENISA 2009 pp 1 125 Google Scholar 7 MK Chang W Cheung CH Cheng JHY Yeung Understanding ERP system adoption from the users perspective Int J Prod Econ 113 2008 pp 928 942 Google Scholar 8 TC Chen TC Hsu A GAs based approach for mining breast cancer pattern Expert Syst Appl 30 4 2006 pp 674 681 Google Scholar 9 XZ Chu L Gao HB Qiu WD Li XY Shao An expert system using rough sets theory and selforganizing maps to design space exploration of complex products Expert Syst Appl 37 11 2010 pp 7364 7372 Google Scholar 10 AE Eiben R Hinterding Z Michalewicz Parameter control in evolutionary algorithm IEEE Trans Evol Comput 3 2 1999 pp 124 141 Google Scholar 11 A Elragal M Haddara The future of ERP systems look backward before moving forward Proc Technol 5 2012 pp 21 30 Google Scholar 12 TF Fan CJ Liau DR Liu Dominancebased fuzzy rough set analysis of uncertain and possibilistic data tables Int J Approx Reason 52 9 2011 pp 1283 1297 Google Scholar 13 C Ghedira H Mezni Through personalized web service composition specification from BPEL to CBPEL Electron Notes Theor Comput Sci 146 1 2006 pp 117 132 Google Scholar 14 W Golden P Powell Towards a definition of flexibility in search of the Holy Grail Int J Manage Sci 28 2000 pp 373 384 Google Scholar 15 K Gollakota ICT use by businesses in rural India the case of EID Parrys Indiagriline Int J Inf Manage 28 2008 pp 336 341 Google Scholar 16 M Gupta A Kohli Enterprise resource planning systems and its implications for operations function Technovation 26 56 2006 pp 687 696 Google Scholar 17 KM Hansen K Jonasson H Neukirche An empirical study of software architectures effect on product quality J Syst Softw 84 2011 pp 1233 1243 Google Scholar 18 T Herawan MM Deris JH Abawajy A rough set approach for selecting clustering attribute Knowl Based Syst 23 3 2010 pp 220 231 Google Scholar 19 CC Huang WY Liang SH Lin TL Tseng HY Chiang A rough set based approach to patent development with the consideration of resource allocation Expert Syst Appl 38 3 2011 pp 1980 1992 Google Scholar 20 CC Huang T Tseng Rough set approach to casebased reasoning application Expert Syst Appl 26 3 2004 pp 369 385 Google Scholar 21 IDC IDC Predictions An Economic Pressure Cooker Will Accelerate the IT industry 2009 Google Scholar 22 M Inuiguchi T Miyajima Rough set based rule induction from two decision tables Eur J Oper Res 181 3 2007 pp 1540 1553 Google Scholar 23 B Iyer JC Henderson Preparing for the future understanding the seven capabilities of cloud computing MIS Q Exec 9 2012 pp 117 131 Google Scholar 24 B Johansson P Ruivo Exploring factors for adopting ERP as SaaS Proc Technol 9 2013 pp 94 99 Google Scholar 25 B Kadri M Boussahla FT Bendimerad Phaseonly planar antenna array synthesis with fuzzy genetic algorithms Proceedings of the CoRR 2010 Google Scholar 26 K Kaneiwa Y Kudo A sequential pattern mining algorithm using rough set theory Int J Approx Reason 52 6 2011 pp 881 893 Google Scholar 27 EE Karsak CO Özogul An integrated decision making approach for ERP system selection Expert Syst Appl 36 2009 pp 660 667 Google Scholar 28 TU Kim JW Shin IH Hwang Stacking sequence design of a composite wing under a random gust using a genetic algorithm Comput Struct 85 2007 pp 579 585 Google Scholar 29 W Kim Cloud computing today and tomorrow J Object Technol 8 2009 pp 65 72 Google Scholar 30 JM Ko CO Kim I Kwon Qualityofservice oriented web service composition algorithm and planning architecture J Syst Softw 81 2008 pp 2079 2090 Google Scholar 31 RJ Kuo LM Lin Application of a hybrid of genetic algorithm and particle swarm optimization algorithm for order clustering Decis Support Syst 49 4 2010 pp 451 462 Google Scholar 32 HJ Lee JW Lee JO Lee Development of web servicesbased multidisciplinary design optimization framework Adv Eng Softw 40 2009 pp 176 183 Google Scholar 33 DS lezak W Ziarko The investigation of the Bayesian rough set model Int J Approx Reason 40 2005 pp 81 91 Google Scholar 34 B Li M Li Research and design on the refinery ERP and EERP based on SOA and the component oriented technology International Conference on Networking and Digital Society 1 2009 pp 85 88 Google Scholar 35 W Liang C Huang A hybrid approach to constrained evolutionary computing case of product synthesis Omega 36 2008 pp 1072 1085 Google Scholar 36 WY Liang Apply rough set theory into the web services composition Proceedings of the IEEE 22nd International Conference on Advanced Information Networking and Applications Okinawa Japan March 2528 2008 Google Scholar 37 WY Liang CC Huang The generic genetic algorithm incorporates with rough set theory an application of the web services Expert Syst Appl 36 3 2009 pp 5549 5556 Google Scholar 38 CT Lin CB Chen YC Ting An ERP model for supplier selection in electronics industry Expert Syst Appl 38 2011 pp 1760 1765 Google Scholar 39 GL Liu Using one axiom to characterize rough set and fuzzy rough set approximations Inf Sci 223 2013 pp 285 296 Google Scholar 40 Y Liu F Sun Sensitivity analysis and automatic calibration of a rainfallrunoff model using multiobjectives Ecol Inform 5 2010

O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O