Service-Oriented Architectures: From Design to Production Exploiting Workflow Patterns Authors Maurizio Gabbrielli, Saverio Giallorenzo, and Fabrizio Montesi Presentation by: Martin Villumsen <[email protected]>
Jul 14, 2015
Service-Oriented Architectures: From Design to Production
Exploiting Workflow Patterns
Authors Maurizio Gabbrielli, Saverio Giallorenzo, and Fabrizio Montesi
Presentation by: Martin Villumsen
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 (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
The Upload Service
• Interactions between a User, a file upload Service Provider and an Identity Provider
The Upload Service
• Thread of control passes back to the Service Provider with a another distributed Sequence
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