30
Service-Oriented Architectures: From Design to Production Exploiting Workflow Patterns Authors Maurizio Gabbrielli, Saverio Giallorenzo, and Fabrizio Montesi Presentation by: Martin Villumsen <[email protected]>

Service-Oriented Architectures: From Design to Production Exploiting Workflow Patterns

Embed Size (px)

Citation preview

Service-Oriented Architectures: From Design to Production

Exploiting Workflow Patterns

Authors Maurizio Gabbrielli, Saverio Giallorenzo, and Fabrizio Montesi

Presentation by: Martin Villumsen

<[email protected]>

Motivation

Motivation• Service-Oriented Architecture (SOA)

• Coordinate communications into a flow of interactions

• Model SOA with Coloured Petri Nets (CPN)

• Translation of CPN-modelled SOAs into executable ones (Jolie)

Motivation• Workflow Patterns

• Describe CPNs in terms of Workflow Patterns

• Implementations of Workflow Patterns provided

Coloured Petri Nets

Coloured Petri Nets (CPN)• Modelling language that consists of:

• places - represent the state of the system according to a specific marking

Coloured Petri Nets (CPN)• Modelling language that consists of:

• places - represent the state of the system according to a specific marking

• tokens - used to mark when a certain state holds. In CPNs tokens have a value attached to them (token colour)

Coloured Petri Nets (CPN)• Modelling language that consists of:

• places - represent the state of the system according to a specific marking

• tokens - used to mark when a certain state holds. In CPNs tokens have a value attached to them (token colour)

• transitions - represent the dynamic behaviour of the system

Coloured Petri Nets (CPN)• Modelling language that consists of:

• places - represent the state of the system according to a specific marking

• tokens - used to mark when a certain state holds. In CPNs tokens have a value attached to them (token colour)

• transitions - represent the dynamic behaviour of the system

• arcs - specify the “flow”

Coloured Petri Nets (CPN)

• Tokens that indicate control-flow are typed CID

• Input places are denoted by i1, …, in

• Output places are denoted by o1, …, on

• Internal places are denoted by p1, …, pn

• Transitions are denoted by A, …, Z.

CPN to Jolie SOAs

• Jolie has two kinds of message-passing operations

• One-Way: Send/Receive message and pass thread of control

• Request-Response: Send/Receive and keep thread of control until it receive/send a response

CPN to Jolie SOAs• Translation based on five principles:

1.transitions are services

2.places are message passing operations

3.communications carry typed messages (as coloured tokens)

4.arcs express the type of carried messages and the condition that allow the communication to pass

5.a CPN models a SOA composed by several services running in parallel

CPN to Jolie SOAs• Map input places, internal places and output

places into One-Way operations (principle 2.)

CPN to Jolie SOAs• Map input places, internal places and output

places into One-Way operations (principle 2.)

• Combine two round-trip One-Way operations into one Request-Response operation

CPN to Jolie SOAs• Map input places, internal places and output

places into One-Way operations (principle 2.)

• Combine two round-trip One-Way operations into one Request-Response operation

• Map output places into default One-Way locations DefaultOutput1, …, n

CPN to Jolie SOAs• SOA can be realized using

• Centralized approach (“orchestration”)

• Distributed approach (“choreography”)

• For each WP both a centralized and distributed implementation is provided

Simple Example

The Upload Service

The Upload Service

• Interactions between a User, a file upload Service Provider and an Identity Provider

The Upload Service

• Distributed Sequence ( ; in Jolie)

The Upload Service

• Distributed Parallel Split ( | in Jolie)

The Upload Service

• Thread of control passes back to the Service Provider with a another distributed Sequence

Multipart Upload

Multipart Upload

Conclusion• Methodology for translating CPN-modelled SOAs to

Jolie

• A realistic use case illustrates that CPN and WP can be used for building SOAs

• The work provides a pragmatic assessment on the expressiveness of Jolie

• Table on next slide summarizes the results

Conclusion

Thank you!

Q&A