CHOReVOLUTION Studio, an Eclipse environment for composing Internet of Everything Applications
Claudio Pompilio, Alexander PerucciUniversity of L’AquilaITALYe-mail: [claudio.pompilio, alexander.perucci]@graduate.univaq.it
CHOReVOLUTION
• Title: Automated Synthesis of Dynamic and Secured Choreographies for the Future Internet
• Follow up FP7 EU project CHOReOS
• Period: January 2015 - January 2018
• Site: http://www.chorevolution.eu
Outline
• Setting the context
• Development approach (high-level view)
• Synthesis process
• CHOReVOLUTION platform
• CHOReVOLUTION Studio
Service composition approaches
Orchestration (centralized) Choreography (fully distributed)
Local centralized view from the perspective of oneparticipant
Global decentralized view from a multi-participant perspective (albeit
without a central controller)
Setting the context
Reusing existing services and things(often black-box)
Distributed composition
Support for automation is needed(time-to-market, correctness by construction, etc.)
Aiding software producers to realize, deploy, execute, and monitor choreography-based systems
by (possibly) reusing existing services
Setting the context (cont’d)
Development approach
Choreography modelers cooperate each other to set business goals, e.g.,
- assisting travelers from arrival, to staying, to departure
Development approach (cont’d)
Reserve TaxiFind POI
Reserve Table
Check Flight
… ...
… ...
… ...
Identify tasks and participants required to achieve the goal, e.g.,
- reserving a taxi from the local taxi company,
- purchasing digital tickets at the train station,
- performing transactions through services based on near field communication in a shop
Development approach (cont’d)
Reserve TaxiFind POI
Reserve Table
Check Flight
… ...
… ...
… ...
Specify how participants must collaborate as admissible flows of the identified business tasksthrough:
- BPMN2 ChoreographyDiagrams
Model
BPMN2 Specification - http://www.omg.org/spec/BPMN/2.0/
inventory contains services/things published by providers, e.g.,
- transportation companies
- airport retailers
Development approach (cont’d)
ModelInventory
• Out of the specified business goal, and
• the set of services available in the inventory ...
JANUARY/FEBRUARY 2015 | IEEE SOFTWARE 53
Step 1. Software producers cooperate with domain experts and business managers to
• set the business goal (for exam-ple, assist travellers from arrival, to staying, to departure),
• identify the tasks and partici-pants required to achieve the goal (for example, reserving a taxi from the local taxi com-pany, purchasing digital tickets at the train station, and per-forming transactions through services based on near-fi eld com-munication in a shop), and
• specify how participants must collaborate through a BPMN2 choreography diagram.
To support this step, CHOReOS pro-vides a plug-in that allows importing the goal specifi cation into the Magic-Draw modeling tool (www.nomagic.com) and associates it with BPMN2
constructs and quality-of-service constraints. In particular, CHOReOS uses both the Q4BPMN notation—an extension to BPMN2—to specify nonfunctional properties and dedi-cated automated tools to assess the choreography specifi cation’s quality.
Step 2. MagicDraw exports the mod-eled choreography to CHOReOSynt. CHOReOSynt supports the XML-based encoding of BPMN2 chore-ographies, such as the one of the BPMN2 Modeler.
Step 3. CHOReOSynt queries the reg-istry to discover services suitable for playing the choreography’s roles. The registry contains services published by providers (for example, trans-portation companies and airport re-tailers) that have identifi ed business opportunities in the domain of in-terest. To describe service interfaces, CHOReOSynt uses WSDL (Web
Services Description Language; www.w3.org/TR/wsdl). To describe service interaction behavior, BPEL (Business Process Execution Language) speci-fi es the fl ow of messages exchanged with the environment. The registry also contains the registration of users interested in exploiting the choreog-raphy through their mobile apps.
Step 4. Starting from the choreogra-phy diagram and the set of discov-ered services, CHOReOSynt syn-thesizes a set of CDs. The synthesis exploits model transformations. The transformations are implemented through ATL (www.eclipse.org/atl), a domain-specifi c language for real-izing model-to-model (M2M) trans-formations. ATL transformations comprise a number of rules, each of which manages a specifi c BPMN2 modeling construct. The current implementation of these transforma-tions in CHOReOSynt (available at
Design time Synthesis time
3
Businessmanager
Softwareengineer
End users
CHOReOSynt
Coordinationdelegates
Enactmentengine
Service providers
Domainexpert
Choreographydiagram
Model refin ement
Model transformation
2
1
Execution time
4
1 5
1 6
Running choreography
Cloudmiddleware
Publish
Register
Standard communication (I/O messages)Additional communication (coordination information)
Registry
Services and things
1 5
FIGURE 2. An overview of automatic choreography synthesis, using a scenario involving the coordination of business services, thing-based services, and stakeholders from air transportation, customer relationship management, and intelligent transportation. WSDL stands for Web Services Description Language; BPEL stands for Business Process Execution Language.
s1aut.indd 53 12/9/14 3:02 PM
JANUARY/FEBRUARY 2015 | IEEE SOFTWARE 53
Step 1. Software producers cooperate with domain experts and business managers to
• set the business goal (for exam-ple, assist travellers from arrival, to staying, to departure),
• identify the tasks and partici-pants required to achieve the goal (for example, reserving a taxi from the local taxi com-pany, purchasing digital tickets at the train station, and per-forming transactions through services based on near-fi eld com-munication in a shop), and
• specify how participants must collaborate through a BPMN2 choreography diagram.
To support this step, CHOReOS pro-vides a plug-in that allows importing the goal specifi cation into the Magic-Draw modeling tool (www.nomagic.com) and associates it with BPMN2
constructs and quality-of-service constraints. In particular, CHOReOS uses both the Q4BPMN notation—an extension to BPMN2—to specify nonfunctional properties and dedi-cated automated tools to assess the choreography specifi cation’s quality.
Step 2. MagicDraw exports the mod-eled choreography to CHOReOSynt. CHOReOSynt supports the XML-based encoding of BPMN2 chore-ographies, such as the one of the BPMN2 Modeler.
Step 3. CHOReOSynt queries the reg-istry to discover services suitable for playing the choreography’s roles. The registry contains services published by providers (for example, trans-portation companies and airport re-tailers) that have identifi ed business opportunities in the domain of in-terest. To describe service interfaces, CHOReOSynt uses WSDL (Web
Services Description Language; www.w3.org/TR/wsdl). To describe service interaction behavior, BPEL (Business Process Execution Language) speci-fi es the fl ow of messages exchanged with the environment. The registry also contains the registration of users interested in exploiting the choreog-raphy through their mobile apps.
Step 4. Starting from the choreogra-phy diagram and the set of discov-ered services, CHOReOSynt syn-thesizes a set of CDs. The synthesis exploits model transformations. The transformations are implemented through ATL (www.eclipse.org/atl), a domain-specifi c language for real-izing model-to-model (M2M) trans-formations. ATL transformations comprise a number of rules, each of which manages a specifi c BPMN2 modeling construct. The current implementation of these transforma-tions in CHOReOSynt (available at
Design time Synthesis time
3
Businessmanager
Softwareengineer
End users
CHOReOSynt
Coordinationdelegates
Enactmentengine
Service providers
Domainexpert
Choreographydiagram
Model refin ement
Model transformation
2
1
Execution time
4
1 51 6
Running choreography
Cloudmiddleware
Publish
Register
Standard communication (I/O messages)Additional communication (coordination information)
Registry
Services and things1 5
FIGURE 2. An overview of automatic choreography synthesis, using a scenario involving the coordination of business services, thing-based services, and stakeholders from air transportation, customer relationship management, and intelligent transportation. WSDL stands for Web Services Description Language; BPEL stands for Business Process Execution Language.
s1aut.indd 53 12/9/14 3:02 PM
SynthesisProcessor
JANUARY/FEBRUARY 2015 | IEEE SOFTWARE 53
Step 1. Software producers cooperate with domain experts and business managers to
• set the business goal (for exam-ple, assist travellers from arrival, to staying, to departure),
• identify the tasks and partici-pants required to achieve the goal (for example, reserving a taxi from the local taxi com-pany, purchasing digital tickets at the train station, and per-forming transactions through services based on near-fi eld com-munication in a shop), and
• specify how participants must collaborate through a BPMN2 choreography diagram.
To support this step, CHOReOS pro-vides a plug-in that allows importing the goal specifi cation into the Magic-Draw modeling tool (www.nomagic.com) and associates it with BPMN2
constructs and quality-of-service constraints. In particular, CHOReOS uses both the Q4BPMN notation—an extension to BPMN2—to specify nonfunctional properties and dedi-cated automated tools to assess the choreography specifi cation’s quality.
Step 2. MagicDraw exports the mod-eled choreography to CHOReOSynt. CHOReOSynt supports the XML-based encoding of BPMN2 chore-ographies, such as the one of the BPMN2 Modeler.
Step 3. CHOReOSynt queries the reg-istry to discover services suitable for playing the choreography’s roles. The registry contains services published by providers (for example, trans-portation companies and airport re-tailers) that have identifi ed business opportunities in the domain of in-terest. To describe service interfaces, CHOReOSynt uses WSDL (Web
Services Description Language; www.w3.org/TR/wsdl). To describe service interaction behavior, BPEL (Business Process Execution Language) speci-fi es the fl ow of messages exchanged with the environment. The registry also contains the registration of users interested in exploiting the choreog-raphy through their mobile apps.
Step 4. Starting from the choreogra-phy diagram and the set of discov-ered services, CHOReOSynt syn-thesizes a set of CDs. The synthesis exploits model transformations. The transformations are implemented through ATL (www.eclipse.org/atl), a domain-specifi c language for real-izing model-to-model (M2M) trans-formations. ATL transformations comprise a number of rules, each of which manages a specifi c BPMN2 modeling construct. The current implementation of these transforma-tions in CHOReOSynt (available at
Design time Synthesis time
3
Businessmanager
Softwareengineer
End users
CHOReOSynt
Coordinationdelegates
Enactmentengine
Service providers
Domainexpert
Choreographydiagram
Model refin ement
Model transformation
2
1
Execution time
4
1 5
1 6
Running choreography
Cloudmiddleware
Publish
Register
Standard communication (I/O messages)Additional communication (coordination information)
Registry
Services and things
1 5
FIGURE 2. An overview of automatic choreography synthesis, using a scenario involving the coordination of business services, thing-based services, and stakeholders from air transportation, customer relationship management, and intelligent transportation. WSDL stands for Web Services Description Language; BPEL stands for Business Process Execution Language.
s1aut.indd 53 12/9/14 3:02 PM
Choreography developer
Synthesis Processor automatically produces (if
possible) a choreography-based application achieving the
specified goal
Synthesis phaseModelling phase
CHOReVOLUTIONCloud InfrastructureModel
Inventory
Synthesis Process
Choreography Specification
Validation
ChoreographyProjection
Selection
BCGeneration
SFGeneration
AdapterGeneration
BC
Service/ThingDescription
Inventory
ParticipantModel(BPMN2Choreography
Diagram)
SF
A
CDGeneration
CD
BPMN2Choreography
Diagram
Messages XMLSchema
ChoreographyArchitectureGeneration
BCService/Thing SF A
ChoreographyDeploymentGeneration
ChoreographyArchitectureDescription
ChoreographyDeploymentDescription
CD
OVERALL GOAL provide automatic support to the realization of choreography-based systems by realizing a synthesis process
Synthesis Process (cont’d)
Choreography Specification
Validation
ChoreographyProjection
Selection
BCGeneration
SFGeneration
AdapterGeneration
BC
Service/ThingDescription
Inventory
ParticipantModel(BPMN2Choreography
Diagram)
SF
A
CDGeneration
CD
BPMN2Choreography
Diagram
Messages XMLSchema
GOAL check the choreography realizability and its enforceability by the process
Synthesis Process (cont’d)
Projection of "Tourist Agent" participant
Choreography Specification
Validation
ChoreographyProjection
Selection
BCGeneration
SFGeneration
AdapterGeneration
BC
Service/ThingDescription
Inventory
ParticipantModel(BPMN2Choreography
Diagram)
SF
A
CDGeneration
CD
BPMN2Choreography
Diagram
Messages XMLSchema
GOAL derive a (sub-) BPMN2 Choreography Diagram that contains only the choreography flows involving the considered participant
Synthesis Process (cont’d)
Service/Thing specification process
ParticipantModel(BPMN2Choreography
Diagram)
Choreography Specification
Validation
ChoreographyProjection
Selection
BCGeneration
SFGeneration
AdapterGeneration
BC
Service/ThingDescription
Inventory
SF
A
CDGeneration
CD
BPMN2Choreography
Diagram
Messages XMLSchema
InterfaceSpecification
InterfaceDescription
Interaction ProtocolSpecification
InteractionProtocol
Description
QoSSpecification
QoSDescription
SecuritySpecification
SecurityDescription
Inventory
GOAL querying the Service Inventory in order to select concrete services (or things) that can play the roles of the choreography participant
Synthesis Process (cont’d)
ParticipantModel(BPMN2Choreography
Diagram)
Choreography Specification
Validation
ChoreographyProjection
Selection
BCGeneration
SFGeneration
AdapterGeneration
BC
Service/ThingDescription
Inventory
SF
A
CDGeneration
CD
BPMN2Choreography
Diagram
Messages XMLSchema
GOAL generate BCs when the interaction style (e.g., REST) of a selected service (or thing) is different from SOAP
S1 S2
CD1 CD2
BC1 BC2
Synthesis Process (cont’d)
ParticipantModel(BPMN2Choreography
Diagram)
Choreography Specification
Validation
ChoreographyProjection
Selection
BCGeneration
SFGeneration
AdapterGeneration
BC
Service/ThingDescription
Inventory
SF
A
CDGeneration
CD
BPMN2Choreography
Diagram
Messages XMLSchema
GOAL generate SFs to filter the services interactions according to the specified security requirements (e.g., different authentication & authorization attributes)
S1 S2
CD1 CD2
BC1 BC2
SF1 SF2
Synthesis Process (cont’d)
Choreography Specification
Validation
ChoreographyProjection
Selection
BCGeneration
SFGeneration
AdapterGeneration
BC
Service/ThingDescription
Inventory
ParticipantModel(BPMN2Choreography
Diagram)
SF
A
CDGeneration
CD
BPMN2Choreography
Diagram
Messages XMLSchema
GOAL generate adapters that bridge the gap between the abstract interface and concrete interface of a selected service (or thing)
S1 S2
BC1 BC2
SF1 SF2
CD1 CD2
A1 A2
Synthesis Process (cont’d)
Choreography Specification
Validation
ChoreographyProjection
Selection
BCGeneration
SFGeneration
AdapterGeneration
BC
Service/ThingDescription
Inventory
ParticipantModel(BPMN2Choreography
Diagram)
SF
A
CDGeneration
CD
BPMN2Choreography
Diagram
Messages XMLSchema
GOAL generate CDs that coordinate the interactions among the selected services (or things) in order to fulfill the global collaboration prescribed by the choreography specification, in a fully distributed way
S1 S2
BC1 BC2
SF1 SF2
CD1 CD2
A1 A2
Synthesis Process (cont’d)
Architectural description of the use case
GOAL generate an architectural description of the choreographed system
ChoreographyArchitectureGeneration
BCService/Thing SF A
ChoreographyDeploymentGeneration
ChoreographyArchitectureDescription
ChoreographyDeploymentDescription
CD
Synthesis Process (cont’d)
Choreography Deployment Description of the use case
ChoreographyArchitectureGeneration
BCService/Thing SF A
ChoreographyDeploymentGeneration
ChoreographyArchitectureDescription
ChoreographyDeploymentDescription
CD
GOAL generate the Choreography Deployment Description
CHOReVOLUTION platformCHOReVOLUTION Front-end provides
CHOReVOLUTION Studio• design a choreography with BPMN2
• drive the generation of additional artifactsexploiting the Synthesis Processor
CHOReVOLUTION Console• manage running services and choreographies
• monitor the execution of a choreography
CHOReVOLUTION platformCHOReVOLUTION Back-end provides
• Generation of the Concrete Choreography specification and all the required BCs, Ads, CDs, SFs (Synthesis Processor)
• Deployment, configuration and control of BCs, Ads, CDs, SFs on the CHOReVOLUTION cloud infrastructure (Enactment Engine)
• Management of authentication and authorization for services at run-time that uses different security mechanisms at protocol level (Identity Manager)
• Propagation/synchronizion of service/user profiles to/from external resources and provision of managed services (Federation Server)
CHOReVOLUTION platformExecution time, for each choreography, in the CHOReVOLUTION cloud, there are
• A set of choreography instances at different execution states
• A set of virtual machines executing a custom-tailored mix of services and middleware components to serve different parts of the choreography
CHOReVOLUTION Studio
CHOReVOLUTION Studio
Choreography Specification
Validation
ChoreographyProjection
Selection
BCGeneration
SFGeneration
AdapterGeneration
BC
Service/ThingDescription
Inventory
ParticipantModel(BPMN2Choreography
Diagram)
SF
A
CDGeneration
CD
BPMN2Choreography
Diagram
Messages XMLSchema
ChoreographyArchitectureGeneration
BCService/Thing SF A
ChoreographyDeploymentGeneration
ChoreographyArchitectureDescription
ChoreographyDeploymentDescription
CD
Try CHOReVOLUTION!download the VM: https://l.ow2.org/cpvm
Visit us at the booth #9
References• Web Site
http://www.chorevolution.eu
• Twitterhttps://twitter.com/CHOR_eVOLUTION
• Source Code (GIT repositories)https://gitlab.ow2.org/chorevolution
• OW2 JIRAhttps://goo.gl/9FxVSj
Evaluate the Sessions
Sign in and vote at eclipsecon.org
- 1 + 10