Skip to content

Use Case 2: BPS Discovery

Ihar Suvorau edited this page Sep 14, 2023 · 4 revisions

Architectural Approaches

Workflow

flowchart LR
    upload[Upload a log] --> discover[Discover BPS model] --> save[Save BPS model] --> examine[Examine BPMN] & use[Use BPS model for simulation]
Loading

P2P communication

This is the point-to-point communication approach (vs. distributed messaging). Gateway serves as (a) a load balancer and (b) service discovery. We omit auth requests on the diagram to simplify it.

flowchart LR
    subgraph node1[pix.cloud.ut.ee]
        webserver
        gateway
        assets
    end

    subgraph node2[simod1.cloud.ut.ee]
        simod-http1
    end

    subgraph node3[simod2.cloud.ut.ee]
        simod-http2
    end

    frontend -- 1. new job --> gateway
    gateway -- 1. new job --> webserver
    webserver -- 2. get assets --> gateway
    gateway -- 2. get assets --> assets
    webserver -- 3. new job --> gateway -- 3. new job --> simod-http1 & simod-http2
    simod-http1 -- 4. job done webhook ---> gateway -- 4. job done webhook --> webserver
    simod-http2 -- 4. job done webhook ---> gateway
    webserver -- 5. get results --> gateway
    gateway -- 5. get results --> simod-http1 & simod-http2
    webserver -- 6. save results --> gateway
    gateway -- 6. save results --> assets
Loading

Distributed messaging

flowchart LR
    subgraph node1[pix.cloud.ut.ee]
        webserver
        gateway
        assets
        kafka
    end

    subgraph node2[simod1.cloud.ut.ee]
        simod-worker1
    end

    subgraph node3[simod2.cloud.ut.ee]
        simod-worker2
    end

    frontend -- 1. new job --> gateway -- 1. new job --> webserver -- 1. new job --> kafka

    kafka -- 2. new job --> simod-worker1
    kafka -- 2. new job --> simod-worker2

    simod-worker1 -- 3. save results --> gateway -- 3. save results --> assets
    simod-worker2 -- 3. save results --> gateway -- 3. save results --> assets

    simod-worker1 -- 4. job result --> kafka
    simod-worker2 -- 4. job result --> kafka
Loading

Clone this wiki locally