Skip to content

bptlab/chor2bspl

Repository files navigation

chor2bspl

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

Overview

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.

Installation

Prerequisites

  • Node.js (v18 or later)
  • npm (Node Package Manager)

Setup

  1. Clone the repository:

    git clone git@github.com:bptlab/chor2bspl.git
    cd chor2bspl
  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build
  4. Link the tool to PATH:

    npm link

Usage

Translate

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>]

Sequences

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

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>]

Constrain

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>]

Example: Order Management Choreography

Step 1: Translate a Choreography to BSPL

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

Step 2: Find Constraints

ctob find_constraints -c ./resources/input/order_management/choreography.bpmn -b ./resources/output/order_management/protocol.json -op ./resources/output/order_management

Step 3: Apply Constraints

ctob constrain -b ./resources/output/order_management/protocol.json -c ./resources/output/order_management/constraints.json -op ./resources/output/order_management -on refined_protocol

Step 4: Compute Distinct Interaction Sequences

ctob sequences -b ./resources/output/order_management/protocol.json
ctob sequences -b ./resources/output/order_management/refined_protocol.json

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published