This repository contains a prototypical CLI tool for translating object-aware BPMN choreography diagrams into BSPL information protocols. The implementation was developed in the context of a research paper titled "From Visual Choreographies to Flexible Information Protocols".
The CLI tool provides functionalities to:
- Translate object-aware BPMN choreographies into information protocols.
- Find and apply constraints to information protocols.
- Compute distinct interaction sequences for information protocols.
All material used for evaluation can be found in ./resources/
A screencast (screencast.mp4
) can be found in the root directory.
- Node.js (v18 or later)
- npm (Node Package Manager)
-
Clone the repository:
git clone git@github.com:bptlab/chor2bspl.git cd chor2bspl
-
Install dependencies:
npm install
-
Build the project:
npm run build
-
Link the tool to PATH:
npm link
Translate a object-aware choreography BPMN file to an information protocol. The tool produces a .bspl
-file with the corresponding formatting and an equivalent .json
-file for further computations.
ctob translate -c <path_to_choreography.bpmn> -d <path_to_data_model.json> -l <path_to_lifecycles.json> [-op <output_path>] [-on <output_name>]
Compute the number of sequences and print some example sequences for an information protocol (JSON).
ctob sequences -b <path_to_protocol.json> [-v]
Find constraints for a information protocol (JSON), given a object-aware choreography BPMN.
ctob find_constraints -c <path_to_choreography.bpmn> -b <path_to_protocol.json> [-op <output_path>]
Refine an information protocol (JSON) with constraints.
ctob constrain -b <path_to_protocol.json> -c <path_to_constraints.json> [-op <output_path>] [-on <output_name>]
ctob translate -c ./resources/input/order_management/choreography.bpmn -d ./resources/input/order_management/data_model.json -l ./resources/input/order_management/object_lifecycles.json -op ./resources/output/order_management -on protocol
ctob find_constraints -c ./resources/input/order_management/choreography.bpmn -b ./resources/output/order_management/protocol.json -op ./resources/output/order_management
ctob constrain -b ./resources/output/order_management/protocol.json -c ./resources/output/order_management/constraints.json -op ./resources/output/order_management -on refined_protocol
ctob sequences -b ./resources/output/order_management/protocol.json
ctob sequences -b ./resources/output/order_management/refined_protocol.json
This project is licensed under the MIT License. See the LICENSE file for details.