workflow application development with web service on egee
play

Workflow application development with Web-Service on EGEE Tristan - PowerPoint PPT Presentation

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


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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. The end ! ● Thank you for your participation ● More information from: – http://www.i3s.unice.fr/~glatard – glatard@i3s.unice.fr 12

  13. 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

  14. 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

  15. 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

  16. WSDL structure: <portType> and <operation> <portType name="registrationPortType"> <operation name="register"> <input message="registrationRequest"/> <output message="transformation"/> </operation> </portType> 16

  17. WSDL structure: <binding> <binding name="registrationB" type="registrationPortType"> <SOAP:binding style="rpc" transport="http"/> </binding> 17

  18. 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

  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> 19

  20. 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

  21. 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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend