ParTes
http://www.choreos.eu/bin/view/Documentation/Partes
The aim of ParTes tool is the derivation of a test skeleton for the participants involved in a choreography. The derived tests aim at discover possible mismatches of the service behaviour with respect to the behavior foreseen by a choreography role. Mismatches can prevent the integration in the choreography bringing to run-time errors. Within CHOReOS integration mismatches are also addressed by the synthesis approach, nevertheless ParTes complements the synthesis of choreography delegates for two different aspects:
Permits to identify issues related to wrong specification of models used for synthesis, with respect to real code
Provides skeletons useful to highlight possible mistakes in the usage of data structures
ServicePot
http://www.choreos.eu/bin/view/Documentation/ServicePot
ServicePot is an extensible registry for choreography-based solutions offering choreography lifecycle management
and governance features. It represent the core component within the Governanceand V&V Framework
The registry implements all the fundamental functionalities for choreography support and it
has a plug-in based extensible architecture permitting the easy introduction of additional choreography related manipulation
activities.
The current reference implementation of the registry supports choreographies
specifications defined using the BPMN 2.0 standard notation, and it offers an extended UDDI
interface where T-Model for service choreographies are supported.
1. Va
ne
Governance and V&V Framework
(ParTes and ServicePot)
Final CHOReOS review 6/11/2013
Daniele Fanì – CNR, Unicam
2. Governance and V&V Framework
Cliquez pour modifier les styles du texte du masque
V&V
Deuxième niveau
Participant Testing
Troisième niveau
Quatrième niveau
Cinquième niveau
BPMN TestSuite
generation and execution
Governance
ServicePot
extensible UDDI registry
2
3. ParTes what is it?
Cliquez pour modifier les styles du texte du masque
Deuxième niveau
ParTes
Troisième niveau
Quatrième niveau
Cinquième niveau
choreography specification
generate skeletons as Test
Cases, grouped in a Test Suite
for the integration testing
test suite for SoapUI
3
4. ParTes why use it?
Cliquez pour modifier les styles du texte du masque
traces to test provided by ParTes
Deuxième niveau
Troisième niveau
Quatrième niveau
choreography fragment
Cinquième niveau
A
CT1
B
A
CT2
+
C
B
CT3
D
CT1 → CT3 → CT2
CT3 → CT1 → CT2
CT2 → CT1 → CT3
+
CT2 → CT3 → CT1
CT1 → CT2 → CT3
CT1 → CT3 → CT2
CT3 → CT1 → CT2
CT3 → CT2 → CT1
traces to test provided by a blind
integration testing technique
4
5. ParTes how does it work?
ParTes assumes modifier
Cliquez pour that when les styles du texte duA masque
CT1
a participant receives a
B
Deuxième niveau its
message, it may change
A
Troisième niveau
internal state
Quatrième niveau
Cinquième niveau
B
initial internal state
A
B
B
CT2
C
+
B
CT3
B receives a message...
A
+
...and changes its internal state
D
5
6. ParTes how does it work?
ParTes assumes modifier
Cliquez pour that when les styles du texte duA masque
CT1
a participant receives a
B
Deuxième niveau its
message, it may change
A
Troisième niveau
internal state
+
+
CT2
C
Quatrième niveau
B
CT3
Cinquième niveau
D
message sent by B, may
depend by its internal state
CT1 → CT3
A
B
B
D
CT3 → CT1
B
D
A
B
these two traces are considered relevant
to be tested, since D may receives
different messages from B
6
7. ParTes how does it work?
Cliquez pour modifier les styles du texte du masque
avoid the parallelism just keeping only relevant traces
Deuxième niveau
Troisième niveau
Quatrième niveau
A
Cinquième niveau
CT1
B
A
CT2
+
C
B
CT3
D
from parallel
+
x
A
CT1
B
A
CT3
C
A
CT3
B
A
CT1
B
A
CT2
B
A
CT2
B
x
to exclusive choice
7
8. ServicePot what is it?
Cliquez pour modifier les styles du texte du masque
Deuxième niveau
ServicePot
Troisième niveau
Quatrième niveau
store
Cinquième niveau
UDDI
registry
choreographies,
services, roles
discovery
supported
plugin
architecture
8
9. ServicePot how does it work?
ServicePot
Cliquez pour modifier les styles du texte du masque
besides
its
features
of
storing/discovering, ServicePot allows to
Deuxième niveau
Troisième niveau
Quatrième niveau
add plugins, automatically actionable
before or after a ServicePot request
Cinquième niveau
even ParTes can be
integrated as plugin.
It starts after a
choreography
or
service registration
ServicePot console
9
10. Wrap-Up
• In the CHOReOS process, the du texte du masque
Cliquez pour modifier les stylesservices can dynamically
enter and leave
Deuxième niveauchoreographies. Beside, a service can act
in different choreographies with different roles
Troisième niveau
Quatrième niveau
Cinquième niveau
• The high
dynamism makes difficult using classic
integration testing techniques
• The problem is addressed by CHOReOS with the
cooperation of two services: the registry ServicePot and
the test-generator ParTes
10
Notas del editor
I'm going to talk about the Governance and V&V Framework. In SOA, Governance is a set of best praticies and policies for services interoperation and adequacy. In CHOReOS, Governance deals with policies specification, evaluation, verification, monitor… of services behaviour. During the CHOReOS process development, several scenarios are recognized relative to Governance. In this presentation are showed the Choreography and the Services registration as assessment of the WP6
The GV&V F participates in defining policies, governs stages of service life-cycle and define the V&V strategy. The Choreos development process identifies several scenarios relative to the G.V&V Framework, like the UseCase and services registration. In fact, once a choreography is completed, it should be made available by registering it in a dedicated Governance registry. Indeed, also the services should be registered, specifying which role it would cover. The governance registry provided by CHOReOS is ServicePot.
Since a service could cover different roles in different choreographies, it should be tested if it can really act as the specified role in the specified choreography. The integration test could be handled by ParTes, the TestSuite generator provided by CHOReOS.
Let's see in the details the two tools:
----- Note riunione (05/11/13 15:05) -----
ParTes stands for "Participant Testing", and its aim is generate an integration TestSuite in order to check if a service is compliant to a role in a choreography by testing for specification conformance.
It accepts as input a BPMN choreography specification and generates relevant traces to be tested as SoapUI TestSuite.
----- Note riunione (05/11/13 15:05) -----
It focuses on the parallel fragment of the choreography, considering only the relevant trace to test. While a blind integration testing technique would test all the possible interleaving, ParTes provides only the critical ones.
----- Note riunione (05/11/13 15:05) -----
This is an example of parallel fragment. 1 2 3 are the CT. each ct is a message exchange. A B C D are the participants. the grey participants are the receivers.
The strategy adopted by ParTes is based on the fact that when a participant receives a message, it may change its itnernal state, and then its behaviour.
----- Note riunione (05/11/13 15:05) -----
So in this case executing CT1 before or after CT3 is not the same thing: when B sends a message to D, it may have a different internal state depending on if it received a message by A.
traces without this kind of dependency among services are considered equivalent by ParTes
----- Note riunione (05/11/13 15:05) -----
Considering these dependecies, the strategy transform a parallel fragment in an exclusive choice fragment that contains only the relevant traces to test
----- Note riunione (05/11/13 15:05) -----
The other tool provided by the governance framework is ServicePot, a governance distributed registry based on the UDDI standard. It stores choreographies specification, register services, attach roles to services and supports the discovery.
It has a plugin architecture so it is easly extendible to support scalability, testing and other features
----- Note riunione (05/11/13 15:05) -----
Even ParTes can be integrated in ServicePot as plugin, It starts automatically after a choreography registration to generate the TestSuite. When a service is registered in the registry, ParTes execute the TestSuite with that service.
----- Note riunione (05/11/13 15:05) -----
Even ParTes can be integrated in ServicePot as plugin, It starts automatically after a choreography registration to generate the TestSuite. When a service is registered in the registry, ParTes execute the TestSuite with that service.