Sign inSign up

imperialqore/line-pipe2-rest

By imperialqore

Updated about 2 months ago

REST API for PIPE, Platform Independent Petri net Editor. Upstream: pipe2.sourceforge.net

Image
0

107

imperialqore/line-pipe2-rest repository overview

line-pipe2-rest (Docker image)

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.

ModuleAnalysisReturns
gspn-steadystateTangible state space and steady-state distributionMean queue lengths, utilizations, response times, throughputs, arrival rates, plus the per-place token distribution
statespaceCoverability treeBoundedness, safeness, deadlock, a firing sequence to a deadlocked marking

Usage

REST server (default)
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
Command line

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

API

Base path /api/v1.

MethodPathDescription
GET/healthLiveness probe
GET/readyReadiness probe
GET/infoServer and tool metadata
GET/citationUpstream attribution, see Credits below
POST/solve/gspn-steadystateGSPN steady state
POST/solve/statespaceCoverability tree properties

Calling the service from LINE

options = SolverPIPE2.defaultOptions;
options.config.remote = true;
options.config.remote_url = 'http://localhost:8080';
SolverPIPE2(model, options).getAvgTable()

Metric conventions

  • 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.

Credits

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:

  • 2003: Jamie Bloom, Clare Clark, Camilla Clifford, Alex Duncan, Haroun Khan, Manos Papantoniou
  • 2004: Tom Barnwell, Michael Camacho, Matthew Cook, Maxim Gready, Peter Kyme, Michail Tsouchlaris
  • 2005: Nadeem Akharware
  • Tim Kimber, Ben Kirby, Thomas Master, Matthew Worthington
  • Pere Bonet Bonet (Universitat de les Illes Balears)
  • Marc Melia Aguilo (Universitat de les Illes Balears)
  • 2010: Alex Charalambous (Imperial College London)
  • 2011: Jan Vlasak (Imperial College London)

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.

Licence

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/

Tag summary

Content type

Image

Digest

sha256:c2c4a9d80

Size

128.8 MB

Last updated

about 2 months ago

docker pull imperialqore/line-pipe2-rest