SoyutNet simulations ==================== This repo is a hobby open research project which aims to demonstrate the capapbilities of PT net (Petri net) based formal methods to improve producer/consumer pipelines by applying appropriate discrete event system (DES) control policies in simulated real life scenarios. The project is structured in a way to make the results easily reproducable. This project's main focus is the technical documentation. The code is used to illustrate the ideas and reproduce the results. `Code repository 🔗 `_ The simulations use `SoyutNet `_ PT net simulator as backend. Building -------- .. code:: bash python3 -m venv venv source venv/bin/activate make docs Simulations ----------- PI controller ^^^^^^^^^^^^^ This simulation investigates that a proportional-integral (PI) controller structure can be used to balance the work load of two TCP servers which accept requests from a single source. **Running:** .. code:: bash git clone https://github.com/dmrokan/soyutnet-simulations sudo apt install graphviz python3-venv python3 -m venv venv source venv/bin/activate make build make build=pi_controller make clean=pi_controller make run=pi_controller make results=pi_controller make graph=pi_controller :doc:`Documentation ` HTTP balancer ^^^^^^^^^^^^^ This simulation investigates that a proportional-integral (PI) controller structure can be used to balance the work load of two HTTP servers which accepts requests from a single source. **Running:** .. code:: bash git clone https://github.com/dmrokan/soyutnet-simulations sudo apt install graphviz python3-venv apache2-utils python3 -m venv venv source venv/bin/activate make build make build=http_balancer make clean=http_balancer make run=http_balancer make results=http_balancer make graph=http_balancer :doc:`Documentation ` HTTP server ^^^^^^^^^^^ This simulation investigates how a SoyutNet based load distribution performs compared to a plain asyncio socket server implemented by `Uvicorn `__ for different number of concurrent requesters. **Running:** .. code:: bash git clone https://github.com/dmrokan/soyutnet-simulations sudo apt install graphviz python3-venv apache2-utils python3 -m venv venv source venv/bin/activate make build make build=http_server make clean=http_server make run=http_server make results=http_server make graph=http_server :doc:`Documentation ` Timed net ^^^^^^^^^ This simulations implements a temporal-aware PT net by attaching time information to the PT net tokens. It simulates a supply chain depending on two component producers and an assembler. **Running:** .. code:: bash git clone https://github.com/dmrokan/soyutnet-simulations sudo apt install graphviz python3-venv python3 -m venv venv source venv/bin/activate make build make build=timed_net make clean=timed_net make run=timed_net make results=timed_net make graph=timed_net :doc:`Documentation ` Building -------- .. code:: bash git clone https://github.com/dmrokan/soyutnet-simulations sudo apt install graphviz python3-venv python3 -m venv venv source venv/bin/activate make docs `SoyutNet `__ -------------------------------------------------- Modules ------- .. toctree:: :maxdepth: 1 modules License ------- .. raw:: html

SoyutNet Simulations by Okan Demir is licensed under Creative Commons Attribution 4.0 International

`License text `__ Credits ------- `SoyutNet logo `__