A detailed description of the robustness metrics used by TRIO is given in the following publications:
-
Franck Chauvel, Hui Song, Nicolas Ferry, Franck Fleurey. Robustness Indicators for Cloud-Based Systems Topologies. In Proceedings of the 7th IEEE/ACM International Conference on Utility and Cloud Computing (UCC 2014). 2014. IEEE Computer Society, Washington DC, USA. pp 307-316
-
Franck Chauvel, Hui Song, Nicolas Ferry, Franck Fleurey. Evaluating robustness of cloud-based systems. Journal of Cloud Computing 2015, 4:18.
As shown in the following example, TRIO takes as input a simple description of the components that form
the software architecture of interest, including their dependencies. Note how each component defines
a condition (keyword requires
) that what dependencies must be available for the component to be running.
system:
'SensApp'
components:
- Admin requires Notifier and Registry and Storage
- Notifier
- Registry requires Storage
- Dispatcher requires Notifier and Registry and Storage
- Storage requires DB
- DB
tags:
- 'platform' on DB
- 'service' on Admin, Registry, Storage, Dispatcher, Notifier
TRIO simulates a large number of failure sequences: it randomly injects failures into the system, and simulate how these failure propagates. Once the simulation is completed, TRIO outputs the following metrics:
$> java -jar trio-bundle.jar -o service -c infra -t trace.csv samples/sensapp_topo4.trio Trio v0.1 -- Topology Robustness IndicatOr Copyright (C) 2014 - SINTEF ICT Licensed under LGPLv3 SYSTEM: SensApp, topology no. 4 SCENARIO: Robustness of the 'service' layer to failure in the 'infra' layer INDICATORS: + Robustness: 0.0297 + Five most sensitive components: 1: 1.7375e+00 VM2 2: 8.2376e-01 VM1 3: 6.8183e-01 VM4 4: 6.6244e-01 VM3 5: 5.6873e-01 VM5 + Five most harmful sequences: 1: 1.9200e-01 [none, VM2] 2: 5.6990e-02 [none, VM3, VM2] 3: 5.2990e-02 [none, VM4, VM2] 4: 5.1991e-02 [none, VM1, VM2] 5: 3.1994e-02 [none, VM5, VM2] That's all folks!
Stable releases are available on the Github releases page.
In addition, a binary distribution, continuously updated, is available at on SINTEF server.
$> mvn versions:set -DnewVersion=0.4 $> mvn versions:commit $> git add -A $> git commit -m "Release 0.4" $> mvn clean deploy $> mvn versions:set -DnewVersion=0.4.1-SNAPSHOT $> mvn versions:commit $> git add -A $> git commit -m "Release 0.4"
The documentation of Trio is available online and evolve with the version:
Please report any bugs or desired feature, using the GitHub issue tracker.
Should you have any additional information, please contact me.