1 / 31

Dynamic Web Service Selection for Workflow Optimisation

Dynamic Web Service Selection for Workflow Optimisation . Lican Huang, David W. Walker, Yan Huang, Omer F. Rana Presented by Lican Huang . School of Computer Science, Cardiff University. AHM2005 21 Sept, 2005.

hafwen
Download Presentation

Dynamic Web Service Selection for Workflow Optimisation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dynamic Web Service Selection for Workflow Optimisation Lican Huang, David W. Walker, Yan Huang, Omer F. Rana Presented by Lican Huang School of Computer Science, Cardiff University AHM2005 21 Sept, 2005

  2. Outline • Introduction • Framework • Implementation • Conclusion & Future work 21 Sept, 2005 AHM2005

  3. Introduction--background WOSE Project (Workflow Optimisation Services for e-Science Applications) Funded by the EPSRCCardiff University, Imperial College and Daresbury LaboratoryPrimary investigator: David.W.Walker . 21 Sept, 2005 AHM2005

  4. Introduction--motivation • Multiple copies of a service with different performance or other user defined set of criteria; and these services cannot be selected at design time because their performance is not known at that time. • workflow optimisation by selecting optimal web services at run-time and integrating dynamic selection of web service into workflow • fault-tolerance by trying a set of candidates of services • Logging data for analysis of workflow results 21 Sept, 2005 AHM2005

  5. Introduction--Issues of concern • mechanisms to discover, select and invoke Web services dynamically • mechanisms to optimize workflow by integrating the selection of service into workflow 21 Sept, 2005 AHM2005

  6. Proxy Service Registry (UDDI) Discovery Service History Database Monitoring Tool Optimization Service Framework --Architecture of dynamic Web services selection for workflow optimisation Monitor service 21 Sept, 2005 AHM2005

  7. Workflow script XSLT converter Workflow deploy WOSE client Workflow engine Web service Proxy Service Discovery Service Optimisation Service 2A. Direct invocation 1. Request 3A. Direct result 3. Service query 2. Dynamic invocation through proxy 4. List of services 5. List of services 7. Invoke service 6. Selected service 8. Result 10. Result 9. Result through proxy Framework --Message sequence of workflow incorporating dynamic Web Service selection 21 Sept, 2005 AHM2005

  8. Framework– proxy as adaptor of dynamic selected service Service A Service B1 Service B2 Proxy service Service B3 Service B4 Service B Service B5 21 Sept, 2005 AHM2005

  9. Framework– proxy service • Proxy service • Discovery service • Optimisation service • monitor service • Dynamic invocation service 21 Sept, 2005 AHM2005

  10. Framework– proxy service interface • <wsdl:message name ="ServiceProxyResponse"> • <wsdl:part name ="ServiceProxyReturn" type="xsd:string" /> • </wsdl:message> • <wsdl:message name = "ServiceProxyRequest"> • <wsdl:part name ="servicemeta“ type="xsd:string"/> • <wsdl:part name ="querymethod" type="xsd:string" /> • <wsdl:part nam =" optimizationMETA " type="xsd:string"/> • <wsdl:part name ="optimizationMode" type="xsd:string“/> • <wsdl:part name ="operation" type="xsd:string" /> • <wsdl:part name ="parameters“ type="xsd:string" /> • </wsdl:message> 21 Sept, 2005 AHM2005

  11. Framework– fault-tolerance and logging Public String ServiceProxy(…){ Set values of uddiregistries; Servicelist = discoveryService(… ); While (true) { Service= Optimizationservice(Servicelist); If result =dynamicInvoke(service) fails{ Updates fail-timestamp in Database; Logging; } else { Update average_response_time in database; Logging; Stop; } } Return result; } 21 Sept, 2005 AHM2005

  12. Framework– discovery service interface • <wsdl:message name="ServiceDiscoveryResponse"> • <wsdl:part name="ServiceDiscoveryReturn" type="xsd:string" /> • </wsdl:message> • <wsdl:message name="ServiceDiscoveryRequest"> • <wsdl:part name="servicemeta" type="xsd:string" /> • <wsdl:part name="querymethod" type="xsd:string" /> • <wsdl:part name="uddiregistries" type="xsd:string" /> • </wsdl:message> 21 Sept, 2005 AHM2005

  13. Framework– discovery methods • Public string ServiceDiscovery (String servicemeta, querymethod, String uddiregistries){ • Switch querymethod • Case byNAME • Look up the matched service name in uddiregistry(ies) • Case byMETA • Look up the matched metadata in the description • entity of businessService entity of uddiregistry(ies). • Case byONTOLOGY • Look up the URL of semantic definition XML • File and matchmake the semantically equivalent service. • } 21 Sept, 2005 AHM2005

  14. Framework– discovery by name • Typically used where services are registered by the same business entity but with different access points . • No extensions are needed to the information contained in the UDDI registry 21 Sept, 2005 AHM2005

  15. Framework– discovery by metadata UDDI extensions • <businessServiceserviceKey =”37B49950-90A0-11D9-9950- BB91FEE6D433” businessKey = “5D4F01A0-8FE2-11D9-81A0-832EB7272640” > <name>blastallservice</name>  <description> • <wosemeta serviceName= “blastallservice" • serviceID="1239-3514-6196-8373"/> • </wosemeta> • </description> •  <description> • <wosemeta operationName =“serviceblastall" • operationID="1351-3612-7812-9156"> • <inputype>string</inputtype> • <outputtype>string</outputtype> • </wosemeta> • </description> • … </businessService> AHM2005 21 Sept, 2005

  16. Framework– discovery by ontology UDDI extensions • <<businessServiceserviceKey =”14E69DE0-D28D-11D90-80990AF8150A” businessKey = “7D92E5E0-D1C2-11D9-A5E0-CF2D2BB38AE7” > <name>blastallservice</name> •   <description> • <woseOntology> • http://131.251.47.147:8080/axis/blastall.xml • </woseOntology> • </description> • … </businessService> AHM2005 21 Sept, 2005

  17. Framework– optimisation service interface <wsdl:message name="ServiceOptimizationRequest">   <wsdl:part name="serviceURL" type="xsd:string" />   <wsdl:part name="optimizationMode" type="xsd:string" />   <wsdl:part name="optimizationMETA" type="xsd:string" /> </wsdl:message> <wsdl:message name="ServiceOptimizationResponse">   <wsdl:part name="ServiceOptimizationReturn" type="xsd:string" /> </wsdl:message> AHM2005 21 Sept, 2005

  18. Framework– optimisation service uddi extensions <wsdl:message name="ServiceOptimizationRequest">   <wsdl:part name="serviceURL" type="xsd:string" />   <wsdl:part name="optimizationMode" type="xsd:string" />   <wsdl:part name="optimizationMETA" type="xsd:string" /> </wsdl:message> <wsdl:message name="ServiceOptimizationResponse">   <wsdl:part name="ServiceOptimizationReturn" type="xsd:string" /> </wsdl:message> AHM2005 21 Sept, 2005

  19. Framework– monitor service interface - <wsdl:message name="servicemonitorRequest">   <wsdl:part name="monitorType" type="xsd:string" />   </wsdl:message> - <wsdl:message name="servicemonitorResponse">   <wsdl:part name="servicemonitorReturn" type="xsd:string" />   </wsdl:message> Get CPU load and CPU speed 21 Sept, 2005 AHM2005

  20. Framework– optimisation criteria - performance factor= (1- CPU load)*CPU_speed/1000 21 Sept, 2005 AHM2005

  21. Framework– optimisation service • Performance { • While ( service in servicelist) • { • performance_factor= monitorservice(); • if (performance_factor_max< performance_factor) • performance_factor_max = performance_factor; • } • return service location with max performance_factor • } 21 Sept, 2005 AHM2005

  22. Framework– optimisation modes Public string ServiceOptimization (String serviceURL, String optimizationMode, String optimizationMETA) { Swith optimizationMode Case byPERFORMANCE Look up real-time computer load,etc. and history data. Case byTRUST Look up the trustworthiness of the services. Case byPersonalization Look up the user defined set of criteria } 21 Sept, 2005 AHM2005

  23. Implementation– environment Operation systems: linux, windows Web service container: Tomcat + AXIS Workflow engine: ActiveBEPL Workflow languages: SCUFL, BPEL4WS Database: mySQL UDDI: JUDDI at Welsh e-Science Centre Machines: ygrid01, ygird01, ygrid03,ygrid04,ygrid05,ygrid06,(linux) desktop linux, laptop windows 21 Sept, 2005 AHM2005

  24. Implementation – example 21 Sept, 2005 AHM2005

  25. Implementation– request 21 Sept, 2005 AHM2005

  26. Implementation– result 21 Sept, 2005 AHM2005

  27. Implementation– monitor logging data CCGrid2005 Wip section 12 May, 2005

  28. Implementation– proxy service logging data CCGrid2005 Wip section 12 May, 2005

  29. Conclusion • Present framework for dynamic web service selection within a workflow session • Proxy service as adaptor of dynamic selected service • Strategy for discovering service by UDDI extensions. • Performance service selects optimal service among services by getting real-time data with monitoring service • Implementation of the framework 21 Sept, 2005 AHM2005

  30. Future work • Optimisation model • Discovery service by ontology method 21 Sept, 2005 AHM2005

  31. Thanks • Questions? 21 Sept, 2005 AHM2005

More Related