Process Mining Service WSGI for Auto-Twin
Project description
Processing Mining Service (PMS) WSGI for Auto-Twin
The processing mining service (PMS) WSGI implements a RESTful API that invokes different system discovery modules to automatically create, update and delete graph models, Petri nets and automata in a system knowledge graph (SKG).
Installation
To facilitate installation, the PMS WSGI is released as a Python module,
autotwin_pmswsgi, in the PyPI repository. autotwin_pmswsgi implicitly
depends on pygraphviz. This dependency however cannot be resolved
automatically by pip. As a preparation, you need to install pygraphviz
manually, following instructions provided
here.
Whenever pygraphviz is available, the latest version of autotwin_pmswsgi
can be easily installed with pip.
pip install autotwin_pmswsgi
Deployment
The PMS WSGI is almost ready to be deployed for production use once
autotwin_pmswsgi is installed successfully. Four environment variables are
additionally required to specify the Neo4j
instance that holds the SKG of the system under consideration.
| Name | Description |
|---|---|
NEO4J_URI |
URI of the Neo4j instance, e.g. neo4j://localhost:7687 |
NEO4J_USERNAME |
Username for the Neo4j instance, e.g. neo4j |
NEO4J_PASSWORD |
Password for the Neo4j instance, e.g. 12345678 |
NEO4J_DATABASE |
Database where the SKG is stored, e.g. neo4j |
After setting the above environment variables, you can start up the PMS WSGI on a Waitress server by executing
waitress-serve autotwin_pmswsgi:wsgi
Containerization
To enable containerization, the PMS WSGI is also released as a Docker image,
ghcr.io/autotwineu/proc-mining-serv, in the GHCR registry. Suppose that a
Docker engine is running on your machine. Deploying the PMS WSGI on a Docker
container named proc-mining-serv can be done via a single command.
Windows:
docker run --detach ^
--env NEO4J_URI=<NEO4J_URI> ^
--env NEO4J_USERNAME=<NEO4J_USERNAME> ^
--env NEO4J_PASSWORD=<NEO4J_PASSWORD> ^
--env NEO4J_DATABASE=<NEO4J_DATABASE> ^
--volume <CLUSTERING_DIRECTORY>:/proc-mining-serv/clusterings ^
--name proc-mining-serv ^
--pull always ghcr.io/autotwineu/proc-mining-serv
Linux:
docker run --detach \
--env NEO4J_URI=<NEO4J_URI> \
--env NEO4J_USERNAME=<NEO4J_USERNAME> \
--env NEO4J_PASSWORD=<NEO4J_PASSWORD> \
--env NEO4J_DATABASE=<NEO4J_DATABASE> \
--volume <CLUSTERING_DIRECTORY>:/proc-mining-serv/clusterings \
--name proc-mining-serv \
--pull always ghcr.io/autotwineu/proc-mining-serv
<NEO4J_URI>, <NEO4J_USERNAME>, <NEO4J_PASSWORD> and <NEO4J_DATABASE>
correspond to the values of the four environment variables required by the PMS
WSGI (see Deployment). <CLUSTERING_DIRECTORY> is the host
directory where clustering files are located.
RESTful API
The PMS WSGI listens HTTP requests on port 8080 and is accessible through a
RESTful API that exposes the following endpoints for different types of models.
The content types of the request and response for each API endpoint are both
application/json.
API Endpoints for Graph Models
POST
/graph-model
(create a graph model in the SKG)
Parameters
None
Body
Content:
application/json
Name Type Default Description namestring"System"Name of the system to be discovered versionstring""Version of the system to be discovered data:clustering:pathstring""*Name of the clustering file to be used data:clustering:defaultstring""†Cluster of parts absent from the clustering file data:filters:intervalarray[number|string][0.0, 0.0]Interval during which events are selected data:filters:stationarray[string][]‡Set of stations at which events are selected data:filters:familyarray[string][]‡Set of families for which events are selected data:filters:typearray[string][]‡Set of types for which events are selected model:time_unitstring"s"Unified time unit of algorithm and model parameters model:operation:io_rationumber1.5Minimum ratio of input to output for an ATTACH/COMPOSE operation model:operation:co_rationumber0.5Minimum ratio of cross to output for an ATTACH/ORDINARY operation model:operation:oi_rationumber1.5Minimum ratio of output to input for a DETACH/DECOMPOSE operation model:operation:ci_rationumber0.5Minimum ratio of cross to input for a DETACH/ORDINARY operation model:formula:rationumber0.0Minimum ratio of a formula to the primary one model:delays:seizenumber0.0Maximum delay in seizing a queued part model:delays:releasenumber0.0Maximum delay in releasing a blocked part model:cdf:pointsnumber100Maximum number of points in a CDF * An empty string disables the import of clustering information. ↩
† An empty string ignores parts not belonging to any clusters. ↩
‡ An empty array refers to the universe of stations/families/types. ↩
Example:
{ "name": "Pizza Line", "version": "V4", "data": { "filters": { "interval": [ 0, 500000000 ], "station": [], "family": [], "type": [] } }, "model": { "time_unit": "ms", "operation": { "io_ratio": 1.5, "co_ratio": 0.5, "oi_ratio": 1.5, "ci_ratio": 0.5 }, "formula": { "ratio": 0.06 }, "delays": { "seize": 30000, "release": 0 }, "cdf": { "points": 100 } } }
Response
Code:
201
Content:
application/json
Name Type Description model_idstringID of the generated graph model
Example:
{ "model_id": "4:31f61bae-dad6-4cda-bb63-d4700847dea5:620887" }
API Endpoints for Petri Nets
POST
/petri-net
(create a Petri net in the SKG)
Parameters
None
Body
Content:
application/json
Name Type Default Description namestring"System"Name of the system to be discovered versionstring""Version of the system to be discovered data:filters:intervalarray[number|string][0.0, 0.0]Interval during which events are selected data:filters:stationarray[string][]*Set of stations at which events are selected data:filters:familyarray[string][]*Set of families for which events are selected data:filters:typearray[string][]*Set of types for which events are selected model:operation:io_rationumber1.5Minimum ratio of input to output for an ATTACH/COMPOSE operation model:operation:co_rationumber0.5Minimum ratio of cross to output for an ATTACH/ORDINARY operation model:operation:oi_rationumber1.5Minimum ratio of output to input for a DETACH/DECOMPOSE operation model:operation:ci_rationumber0.5Minimum ratio of cross to input for a DETACH/ORDINARY operation model:formula:rationumber0.0Minimum ratio of a formula to the primary one * An empty array refers to the universe of stations/families/types. ↩
Example:
{ "name": "Pizza Line", "version": "V4", "data": { "filters": { "interval": [ 0, 500000000 ], "station": [], "family": [], "type": [] } }, "model": { "operation": { "io_ratio": 1.5, "co_ratio": 0.5, "oi_ratio": 1.5, "ci_ratio": 0.5 }, "formula": { "ratio": 0.06 } } }
Response
Code:
201
Content:
application/json
Name Type Description model_idstringID of the generated Petri net
Example:
{ "model_id": "4:31f61bae-dad6-4cda-bb63-d4700847dea5:620887" }
API Endpoints for Automata
POST
/automaton
(create an automaton in the SKG)
Parameters
None
Body
Content:
application/json
Name Type Default Description namestring"System"Name of the system to be discovered versionstring""Version of the system to be discovered data:filters:intervalarray[number|string][0.0, 0.0]Interval during which events are selected model:povstring"item"Point of view to be focused on
Example:
{ "name": "Pizza Line", "version": "V4", "data": { "filters": { "interval": [ 0, 500000000 ] } }, "model": { "pov": "item" } }
Response
Code:
201
Content:
application/json
Name Type Description model_idstringID of the generated automaton
Example:
{ "model_id": "4:31f61bae-dad6-4cda-bb63-d4700847dea5:620887" }
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autotwin_pmswsgi-0.1.14.tar.gz.
File metadata
- Download URL: autotwin_pmswsgi-0.1.14.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.10.18 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56deba106b01050101d18978001aac8e452eea987928479f26406dc258fd0c73
|
|
| MD5 |
bf8738a7d62a7eda93342913a6288bac
|
|
| BLAKE2b-256 |
a65bd9989bc5a565aa6b9d779ab0d428bd06773e2986ed703b5b52eee52d8c48
|
File details
Details for the file autotwin_pmswsgi-0.1.14-py3-none-any.whl.
File metadata
- Download URL: autotwin_pmswsgi-0.1.14-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.10.18 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ac90b04aa9c7c7dd0c20076bf90c874a91d680e6cf9f48891430797e5bead7e
|
|
| MD5 |
f42711c5a9a054d88062a0b0dc41612e
|
|
| BLAKE2b-256 |
b549ad71931bc35dbc3931488e5d327f043f8c67bb4abf41f0b17ce970efa651
|