Sign inSign up

imperialqore/line-grspn-rest

By imperialqore

Updated about 2 months ago

REST API for GreatSPN (Univ. di Torino). Upstream: github.com/greatspn/SOURCES

Image
0

134

imperialqore/line-grspn-rest repository overview

line-grspn-rest (Docker image)

REST packaging of GreatSPN, the GRaphical Editor and Analyzer for Timed and Stochastic Petri Nets, for use as an external solver of the LINE solver.

All credit for GreatSPN belongs to its authors. This image contributes no method, no algorithm and no result: it only runs the upstream binaries as subprocesses and returns their parsed output as JSON. Upstream project: http://www.di.unito.it/~greatspn/ and https://github.com/greatspn/SOURCES.

Usage

REST server (default)
docker run -d -p 8080:8080 imperialqore/line-grspn-rest
curl -s http://127.0.0.1:8080/api/v1/health

Interactive API documentation is served at /docs and /redoc.

Command line

Any argument other than serve is executed directly, so the image is a strict superset of a plain CLI container:

docker run --rm -v "$PWD:/data" -w /data imperialqore/line-grspn-rest \
    /usr/local/GreatSPN/bin/DSPN-Tool -load mymodel -trg -s

Every route runs DSPN-Tool, GSPNRG or GSPNSIM. The revision that was built is recorded in /usr/local/GreatSPN/VERSION and served as the version field of every response.

API

Base path /api/v1. GET /health, /ready, /info and /citation, plus the solve routes; see /docs on a running container for the full schema.

Reproducibility

The build is self-contained: it starts from fedora:34 and compiles GreatSPN and its dependencies (Meddly, SPOT, OGDF, lp_solve) from source. Every external input is pinned, because the upstream recipe clones each dependency at HEAD and therefore produced a different image every day:

InputPin
base imagefedora:34 by digest
GreatSPN6ac3c56
Meddly96c2775
OGDF3789445
SPOTrelease tarball 2.9.6
lp_solverelease tarball 5.5.2.11

The three commits are the ones the retired imperialqore/greatspn image was built from, recovered from that image's own builder layer, so the pins reproduce it rather than freeze an arbitrary point.

Credits

This image only packages GreatSPN. GreatSPN is not developed here, and no part of the analysis it performs is the work of this packaging. Publications reporting results obtained through this service must cite the references below, and must not cite this image or the packaging repository.

GreatSPN, the GRaphical Editor and Analyzer for Timed and Stochastic Petri Nets, is developed by Elvio Gilberto Amparore, Gianfranco Balbo, Marco Beccuti, Susanna Donatelli and Giuliana Franceschinis, at Universita di Torino (the source-code owner per the upstream README) and Universita del Piemonte Orientale (Franceschinis). Source: https://github.com/greatspn/SOURCES. GreatSPN is licensed under GPL-2.0.

Reference to cite:

E. G. Amparore, G. Balbo, M. Beccuti, S. Donatelli, G. Franceschinis, "30 Years of GreatSPN", in Principles of Performance and Reliability Modeling and Evaluation, pp. 227-254, Springer, 2016. DOI: 10.1007/978-3-319-30599-8_9

Additional references, when these components are used. Neither is reachable through this service, since every route runs DSPN-Tool, GSPNRG or GSPNSIM and neither component is present in the base image. They are recorded here, and served under the same heading by GET /api/v1/citation, for anyone who reaches them another way.

When the RGMEDD decision-diagram model checker is used, cite in addition:

E. G. Amparore, S. Donatelli, G. Ciardo, "Variable order metrics for decision diagrams in system verification", International Journal on Software Tools for Technology Transfer, vol. 22, no. 5, pp. 541-562, Springer, 2019. DOI: 10.1007/s10009-019-00522-6

When starMC is used, cite in addition:

E. G. Amparore, S. Donatelli, F. Galla, "starMC: an automata based CTL* model checker", PeerJ Computer Science, vol. 8, e823, 2022. DOI: 10.7717/peerj-cs.823

Upstream project: http://www.di.unito.it/~greatspn/, https://github.com/greatspn/SOURCES

Packaged for: https://line-solver.sourceforge.net/

Tag summary

Content type

Image

Digest

sha256:9392d3973

Size

674.1 MB

Last updated

about 2 months ago

docker pull imperialqore/line-grspn-rest