Workflow application development with Web-Service on EGEE Tristan Glatard EGEE and SEE-GRID Summer School on Grid Application Support June 27 th Medical imaging Grid computing June 27th Practical on Workflow application development 1 with Web-Services on EGEE
Agenda ● 14h00 → 14h15: brief introduction ● 14h15→ 15h45: workflow prototyping: – Design with Taverna (65 min) – Efficient execution with MOTEUR (30 min) ● 15h45→ 16h00: coffee break ● 16h00→ 16h40: Web-services deployment ● 16h40 → 17h20: interface with EGEE ● 17h20: end of the practical June 27th Practical on Workflow application development 2 with Web-Services on EGEE
Why workflows ? ● Definition of a workflow (Mayer et al) : – Organization of a structured application in an abstract fashion, such that the implementation of the atomic tasks being organized is independent from the organization itself ● Component programming model: – Fosters code reusability – Platform independence ● Simple graphical language ● Natural parallelization of an application – Coarse grain parallelism June 27th Practical on Workflow application development 3 with Web-Services on EGEE
Workflow classification ● Classification w.r.t the presence/absence of functions, data and resources in the description: Formal models ● No resource, no functions, no data ● Usage: workflow properties analysis Functional workflows Task-graphs ● Functions only Data ● Functions and data ● Usage: instantiation ‑ Scheduling ● Usage: ‐ Scheduling ‑ Data-intensive applications ‑ Data-composition Scheduling Scheduling Service workflows ● Functions and resources Executable workflows Data ● Usage: instantiation ● Functions, resources and data ‐ Data-intensive applications ‐ Data-composition June 27th Practical on Workflow application development 4 with Web-Services on EGEE
Parallelism in service workflows ● 3 kinds of parallelism can be exploited: Services parallelism (pipelining) Workflow parallelism Data parallelism D 0 , D 1 D 0 , D 1 D 0 , D 1 S 1 D 1 D 0 S 1 D 1 S 1 S 2 S 2 S 3 S 3 S 2 S 3 S 2 D 0 S 3 ● Data and service parallelism are intrinsic in task graphs: D 0 ,S 1 D 1 ,S 1 D 0 ,S 2 D 0 ,S 3 D 1 ,S 2 D 1 ,S 3
Let's go ! ● 14h15→ 15h45: workflow prototyping: – Design with Taverna (65 min) – Efficient execution with MOTEUR (30 min) ● Practical instructions available from http://colors.unice.fr/tutorialBudapest/tutorial.pdf June 27th Practical on Workflow application development 6 with Web-Services on EGEE
Agenda ● 14h00 → 14h15: brief introduction ● 14h15→ 15h45: workflow prototyping: – Design with Taverna (65 min) – Efficient execution with MOTEUR (30 min) ● 15h45→ 16h00: coffee break ● 16h00→ 16h40: Web-services deployment ● 16h40 → 17h20: interface with EGEE ● 17h20: end of the practical June 27th Practical on Workflow application development 7 with Web-Services on EGEE
SOA in a nutshell ● Basic principles: Messages ● A service is an exposed piece of functionality with 3 properties: (1) The interface contract to the service is platform-independent (2) The service can be dynamically located and invoked (3) A service does not call another service ( loosely coupling ) 8
Web-Services ● Originally from IBM and Microsoft ● Standardized by the W3C: – Contract format: W eb S ervices D escription L anguage – Messages format: S imple O bject A ccess P rotocol – Discovery format: ● U niversal D escription D iscovery & I ntegration ● Based on XML (platform/language independence) 9
Generic Application Service Wrapper ● The grid job handling can be decoupled from Y Storage Elements LFN result (1) LFN-algo (1) register (5) put result LFN algo (2) algo description (1) publish algorithm (4) get algo description Y (4) get input LFN 2 LFN 1 (2) get algorithm Worker description Nodes (1) register (3) submits/monitors input grid job (6) reply(LFN result ) GASW location X (2) invoke (LFN input1 , LFN input2, algo description) 10
Let's go ! ● 16h00→ 16h40: Web-services deployment ● 16h40 → 17h20: interface with EGEE (GASW) ● Practical instructions available from http://colors.unice.fr/tutorialBudapest/tutorial.pdf June 27th Practical on Workflow application development 11 with Web-Services on EGEE
The end ! ● Thank you for your participation ● More information from: – http://www.i3s.unice.fr/~glatard – glatard@i3s.unice.fr 12
WSDL [http://w3.org/TR/wsdl] ● Describes the interface of the Web-Service ● Current version: 1.1 (15 th march 2001) ● 7 basic XML tags: – Types : complex types made from basic types – Message : set of parts (Input/Output parameters) What ? – Operation : set of messages ( ≃ method) – Port type : set of operations ( ≃ class) – Binding : protocol used to invoke the service ( e.g : SOAP/HTTP) How ? – Port : internet address and port – Service : set of ports ● Example on an image registration service: – Input: 2 images ; output: 1 transformation 13
WSDL structure: <types> <types> <complexType name="image"> <sequence> <element name="file-name" type="xsd:string" /> <element name="modality" type="xsd:string"/> </sequence> </complexType> </types> 14
WSDL structure: < message> <message name="registrationRequest"> <part name="reference-image" type="ns:image"/> <part name="floating-image" type="ns:image"/> </message> <message name="transformation"> ... </message> 15
WSDL structure: <portType> and <operation> <portType name="registrationPortType"> <operation name="register"> <input message="registrationRequest"/> <output message="transformation"/> </operation> </portType> 16
WSDL structure: <binding> <binding name="registrationB" type="registrationPortType"> <SOAP:binding style="rpc" transport="http"/> </binding> 17
WSDL structure: <port> and <service> <service name="registration_service"> <port name="registration1" binding="registrationB"> <address location="http://rigid.registration.com:1234"/> </port> <port name="registration2" binding="registrationB"> <address location="http://bestAlgos.fr/registration"/> </port> </service> 18
GASW algorithm descriptor <description> <executable name="CrestLines.pl"> <access type="URL"> <path value="http://somewhere.eu/"/> ● Executable access method: </access> <value value="CrestLines.pl"/> – URL <input name="image" option="-im1"> <access type="LFN" /> – Grid file </input> <input name="scale" option="-s"/> ● Input/Output <output name="crest_lines" option="-c2"> <access type="LFN" /> </output> – Command-line options <sandbox name="convert8bits"> <access type="URL"> – Access methods (for files) <path value="http://elsewhere.dk/"/> </access> <value value="Convert8bits.pl"/> ● Sandbox files access methods </sandbox> </executable> </description> 19
GASW algorithm descriptor <description> <executable name="CrestLines.pl"> <access type="URL"> <path value="http://somewhere.eu/"/> ● Executable access method: </access> <value value="CrestLines.pl"/> – URL <input name="image" option="-im1"> <access type="LFN" /> – Grid file </input> <input name="scale" option="-s"/> ● Input/Output <output name="crest_lines" option="-c2"> <access type="LFN" /> </output> – Command-line options <sandbox name="convert8bits"> <access type="URL"> – Access methods (for files) <path value="http://elsewhere.dk/"/> </access> <value value="Convert8bits.pl"/> ● Sandbox files access methods </sandbox> </executable> </description> 20
GASW algorithm descriptor <description> <executable name="CrestLines.pl"> <access type="URL"> ● Executable access method: <path value="http://somewhere.eu/"/> </access> <value value="CrestLines.pl"/> – URL <input name="image" option="-im1"> – Grid file <access type="LFN" /> </input> <input name="scale" option="-s"/> ● Input/Output <output name="crest_lines" option="-c2"> <access type="LFN" /> </output> – Command-line options <sandbox name="convert8bits"> <access type="URL"> – Access methods (for files) <path value="http://elsewhere.dk/"/> </access> ● Sandbox files access methods <value value="Convert8bits.pl"/> </sandbox> </executable> </description> 21
Recommend
More recommend