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

workflow application development with web service on egee
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

June 27th Practical on Workflow application development with Web-Services on EGEE 1

Workflow application development with Web-Service on EGEE

Tristan Glatard

EGEE and SEE-GRID Summer School on Grid Application Support June 27th

Grid computing Medical imaging

slide-2
SLIDE 2

June 27th Practical on Workflow application development 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
slide-3
SLIDE 3

June 27th Practical on Workflow application development 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

slide-4
SLIDE 4

June 27th Practical on Workflow application development 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

  • Functions only
  • Usage:

‑ Scheduling ‑ Data-intensive applications ‑ Data-composition

Executable workflows

  • Functions, resources and data

Service workflows

  • Functions and resources
  • Usage:

‐ Data-intensive applications ‐ Data-composition

Task-graphs

  • Functions and data
  • Usage:

‐ Scheduling

Scheduling Data instantiation Scheduling Data instantiation

slide-5
SLIDE 5
  • 3 kinds of parallelism can be exploited:
  • Data and service parallelism are intrinsic in

task graphs:

S2 S3 S1

D0, D1

Parallelism in service workflows

S2 S3 S1

D0, D1

S2 S3 S1

D0, D1

S2 S3 D1 D0 D1 D0

Workflow parallelism Data parallelism Services parallelism (pipelining)

D1,S1 D1,S2 D1,S3 D0,S1 D0,S2 D0,S3

slide-6
SLIDE 6

June 27th Practical on Workflow application development with Web-Services on EGEE 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

slide-7
SLIDE 7

June 27th Practical on Workflow application development 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
slide-8
SLIDE 8

8 Messages

SOA in a nutshell

  • Basic principles:
  • 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)

slide-9
SLIDE 9

9

Web-Services

  • Originally from IBM and Microsoft
  • Standardized by the W3C:

– Contract format: Web Services Description Language – Messages format: Simple Object Access Protocol – Discovery format:

  • Universal Description Discovery & Integration
  • Based on XML (platform/language independence)
slide-10
SLIDE 10

10

Generic Application Service Wrapper

  • The grid job handling can be decoupled from Y

Worker Nodes

Y

GASW location

LFNalgo LFN1 LFNresult

Storage Elements (1) LFN-algo (2) algo description

X

LFN2

(1) register input (2) get algorithm description (1) publish description (1) register algorithm (2) invoke (LFNinput1, LFNinput2,algo description) (3) submits/monitors grid job (4) get algo (4) get input (5) put result (6) reply(LFNresult)

slide-11
SLIDE 11

June 27th Practical on Workflow application development with Web-Services on EGEE 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

slide-12
SLIDE 12

12

  • Thank you for your participation
  • More information from:

– http://www.i3s.unice.fr/~glatard – glatard@i3s.unice.fr

The end !

slide-13
SLIDE 13

13

WSDL

  • Describes the interface of the Web-Service
  • Current version: 1.1 (15th march 2001)
  • 7 basic XML tags:

– Types: complex types made from basic types – Message: set of parts (Input/Output parameters) – Operation: set of messages (≃method) – Port type: set of operations (≃class) – Binding: protocol used to invoke the service (e.g: SOAP/HTTP) – Port: internet address and port – Service: set of ports

  • Example on an image registration service:

– Input: 2 images ; output: 1 transformation

[http://w3.org/TR/wsdl] How ? What ?

slide-14
SLIDE 14

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>

slide-15
SLIDE 15

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>

slide-16
SLIDE 16

16

WSDL structure: <portType> and <operation>

<portType name="registrationPortType"> <operation name="register"> <input message="registrationRequest"/> <output message="transformation"/> </operation> </portType>

slide-17
SLIDE 17

17

WSDL structure: <binding>

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

slide-18
SLIDE 18

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>

slide-19
SLIDE 19

19

GASW algorithm descriptor

  • Executable access method:

– URL – Grid file

  • Input/Output

– Command-line options – Access methods (for files)

  • Sandbox files access methods

<description> <executable name="CrestLines.pl"> <access type="URL"> <path value="http://somewhere.eu/"/> </access> <value value="CrestLines.pl"/> <input name="image" option="-im1"> <access type="LFN" /> </input> <input name="scale" option="-s"/> <output name="crest_lines" option="-c2"> <access type="LFN" /> </output> <sandbox name="convert8bits"> <access type="URL"> <path value="http://elsewhere.dk/"/> </access> <value value="Convert8bits.pl"/> </sandbox> </executable> </description>

slide-20
SLIDE 20

20

GASW algorithm descriptor

  • Executable access method:

– URL – Grid file

  • Input/Output

– Command-line options – Access methods (for files)

  • Sandbox files access methods

<description> <executable name="CrestLines.pl"> <access type="URL"> <path value="http://somewhere.eu/"/> </access> <value value="CrestLines.pl"/> <input name="image" option="-im1"> <access type="LFN" /> </input> <input name="scale" option="-s"/> <output name="crest_lines" option="-c2"> <access type="LFN" /> </output> <sandbox name="convert8bits"> <access type="URL"> <path value="http://elsewhere.dk/"/> </access> <value value="Convert8bits.pl"/> </sandbox> </executable> </description>

slide-21
SLIDE 21

21

GASW algorithm descriptor

  • Executable access method:

– URL – Grid file

  • Input/Output

– Command-line options – Access methods (for files)

  • Sandbox files access methods

<description> <executable name="CrestLines.pl"> <access type="URL"> <path value="http://somewhere.eu/"/> </access> <value value="CrestLines.pl"/> <input name="image" option="-im1"> <access type="LFN" /> </input> <input name="scale" option="-s"/> <output name="crest_lines" option="-c2"> <access type="LFN" /> </output> <sandbox name="convert8bits"> <access type="URL"> <path value="http://elsewhere.dk/"/> </access> <value value="Convert8bits.pl"/> </sandbox> </executable> </description>