REST API for PIPE, Platform Independent Petri net Editor. Upstream: pipe2.sourceforge.net
107
REST packaging of PIPE, the Platform Independent Petri net Editor (version 4.3.0), for use as an external solver of the LINE solver.
All credit for PIPE belongs to its authors. This image contributes no method, no algorithm and no result: it adds a headless driver and exposes the upstream tool over HTTP. Upstream project: http://pipe2.sourceforge.net/.
The service exports a stochastic Petri net as a PIPE PNML document, runs one of PIPE's two headless analysis modules, and returns the answer as JSON.
| Module | Analysis | Returns |
|---|---|---|
gspn-steadystate | Tangible state space and steady-state distribution | Mean queue lengths, utilizations, response times, throughputs, arrival rates, plus the per-place token distribution |
statespace | Coverability tree | Boundedness, safeness, deadlock, a firing sequence to a deadlocked marking |
docker run --rm -p 8080:8080 imperialqore/line-pipe2-rest
curl -X POST http://127.0.0.1:8080/api/v1/solve/gspn-steadystate \
-H 'Content-Type: application/json' -d @model.json
Any argument other than serve is executed directly, so the image is a superset of a
plain CLI container:
docker run --rm -v "$PWD:/data" -w /data imperialqore/line-pipe2-rest model.pnml
Base path /api/v1.
| Method | Path | Description |
|---|---|---|
| GET | /health | Liveness probe |
| GET | /ready | Readiness probe |
| GET | /info | Server and tool metadata |
| GET | /citation | Upstream attribution, see Credits below |
| POST | /solve/gspn-steadystate | GSPN steady state |
| POST | /solve/statespace | Coverability tree properties |
options = SolverPIPE2.defaultOptions;
options.config.remote = true;
options.config.remote_url = 'http://localhost:8080';
SolverPIPE2(model, options).getAvgTable()
Util of a Place is its expected token count, not the probability of being
non-empty, matching what SolverCTMC and SolverSSA report on SPN models. Use the
token distribution for P(tokens = n).Tput and ArvR count tokens: a transition consuming two tokens per firing
contributes twice its firing rate.RespT is Little's law over the place, QLen / Tput.All credit for PIPE goes to its authors. This project only repackages the upstream tool and adds a headless driver; the solver itself is entirely their work. Cite the original developers of PIPE in any publication reporting results obtained through this service. Do not cite this image or the packaging repository.
PIPE (Platform Independent Petri Net Editor) was developed at Imperial College London by successive groups of students, with contributions from the Universitat de les Illes Balears. The authors, as listed in PIPE's own About dialog:
The reference upstream lists first for PIPE 4.x:
N. J. Dingle, W. J. Knottenbelt, T. Suto, "PIPE2: A Tool for the Performance Evaluation of Generalised Stochastic Petri Nets", ACM SIGMETRICS Performance Evaluation Review, vol. 36, no. 4, pp. 34-39, March 2009. DOI: 10.1145/1530873.1530881
The Universitat de les Illes Balears branch is described in:
P. Bonet, C. M. Llado, R. Puigjaner, W. J. Knottenbelt, "PIPE v2.5: a Petri Net Tool for Performance Modeling", Proc. 23rd Latin American Conference on Informatics (CLEI 2007), San Jose, Costa Rica, October 2007.
No PIPE4- or PIPE5-specific peer-reviewed paper exists; do not cite one.
The same attribution is served at runtime by GET /api/v1/citation.
PIPE 4.3.0 is distributed under the Open Software License 3.0. This image both creates a derivative work of PIPE and redistributes PIPE itself, so OSL-3.0 section 1(c) applies and the image is OSL-3.0. The corresponding source for the redistributed PIPE binaries is the upstream release at http://pipe2.sourceforge.net/; note that the PIPE 4.3.0 release is itself a binary distribution.
Upstream project: http://pipe2.sourceforge.net/
Packaged for: https://line-solver.sourceforge.net/
Content type
Image
Digest
sha256:c2c4a9d80…
Size
128.8 MB
Last updated
about 2 months ago
docker pull imperialqore/line-pipe2-rest