Dynamic Web Service

fizzlargeΑσφάλεια

3 Νοε 2013 (πριν από 3 χρόνια και 9 μήνες)

75 εμφανίσεις

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

Outline



Introduction



Framework



Implementation


Conclusion & Future work


AHM2005

21 Sept, 2005


WOSE Project (Workflow Optimisation
Services for e
-
Science Applications)


Funded by the EPSRC


Cardiff University, Imperial College and
Daresbury Laboratory


Primary investigator: David.W.Walker

.


Introduction
--
background

AHM2005

21 Sept, 2005






Introduction
--

motivation

(1)
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.

(2)
workflow optimisation by selecting optimal web services
at run
-
time and integrating dynamic selection of web
service into workflow

(2)

fault
-
tolerance by trying a set of candidates of services

(3)

Logging data for analysis of workflow results


AHM2005

21 Sept, 2005






Introduction
--

Issues of concern


(1)

mechanisms to discover, select and invoke
Web services dynamically

(2)

mechanisms to optimize workflow by
integrating the selection of service into
workflow


AHM2005

21 Sept, 2005







Framework

--
Architecture of dynamic Web
services selection for workflow optimisation

AHM2005

21 Sept, 2005

Discovery
Service

History
Database

Registry
(UDDI)

Monitoring
Tool

Optimization
Service


Proxy Service

Monitor service







Framework

--
Message sequence of workflow
incorporating dynamic Web Service selection

AHM2005

21 Sept, 2005

Optimisation Service

5. List of services

6. Selected service



Workflow script

Workflow deploy

XSLT converter

2. Dynamic invocation through proxy

9. Result through proxy

3. Service query

4. List of services

7. Invoke service

8. Result

Discovery Service

Proxy Service

1. Request

2A. Direct invocation

3A. Direct result

10. Result

Web service

Workflow engine

WOSE client






Framework


proxy as adaptor of
dynamic selected service





AHM2005

21 Sept, 2005

Service A

Proxy service

Service B

Service B1

Service B2

Service B3

Service B4

Service B5






Framework


proxy service







Proxy service



Discovery service



Optimisation service



monitor service



Dynamic invocation service


AHM2005

21 Sept, 2005






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>

AHM2005

21 Sept, 2005






Framework


fault
-
tolerance and
logging





AHM2005

21 Sept, 2005

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;


}






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>

AHM2005

21 Sept, 2005






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.



}

AHM2005

21 Sept, 2005






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





AHM2005

21 Sept, 2005






Framework


discovery by metadata
UDDI extensions



<
businessService

serviceKey

=”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






Framework


discovery by ontology
UDDI
extensions



<<
businessService

serviceKey

=”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






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






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






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>

AHM2005

21 Sept, 2005

Get CPU load and CPU speed






Framework



optimisation criteria



-



performance factor= (1
-

CPU load)*CPU_speed/1000





AHM2005

21 Sept, 2005






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

}



AHM2005

21 Sept, 2005






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


}

AHM2005

21 Sept, 2005






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




AHM2005

21 Sept, 2005






Implementation


example









AHM2005

21 Sept, 2005






Implementation



request






AHM2005

21 Sept, 2005






Implementation



result






AHM2005

21 Sept, 2005






Implementation


monitor
logging data



CCGrid2005 Wip section

12 May, 2005






Implementation


proxy
service logging data




CCGrid2005 Wip section

12 May, 2005






Conclusion




AHM2005

21 Sept, 2005

1.
Present framework for dynamic web service
selection within a workflow session

2.
Proxy service as adaptor of dynamic selected
service

3.
Strategy for discovering service by UDDI
extensions.

4.

Performance service selects optimal service
among services by getting real
-
time data with
monitoring service

5.

Implementation of the framework







Future work



AHM2005

21 Sept, 2005

1.

Optimisation model

2.

Discovery service by ontology
method










AHM2005

21 Sept, 2005


Thanks



Questions?