Skip to content

neostoic/trio

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TRIO - Topologies Robustness Indicators

license LGPLv3+ blue root 96888c80 27db 0133 f544 7af7072ae828 master

TRIO computes robustness metrics for software architectures. These metrics include an overall robustness, the most sensitive components, and the most threatening failure sequences.

Publications

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.

Overview

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.

Input of TRIO (in a text file)
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:

Output of trio
$> 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!

Releases

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"

Documentation

The documentation of Trio is available online and evolve with the version:

Contact

Please report any bugs or desired feature, using the GitHub issue tracker.

Should you have any additional information, please contact me.

About

Topologies Robustness IndicatOrs

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.2%
  • Other 0.8%