new readme for architecture

Former-commit-id: d6ee74ed1365e458d2c8221c0a8cec3af5e2f7cc
This commit is contained in:
Michael T. Kelbaugh
2020-03-03 12:52:41 -05:00
parent 5b4409c94d
commit 285c4ebad1
2 changed files with 15 additions and 0 deletions

15
build/README.md Normal file
View File

@@ -0,0 +1,15 @@
# SIMoN Architecture
## Description
SIMoN is written in Python, and uses Docker to manage its models and their integration. In order to increase flexibility and scalability, each model runs in discrete iterations (called increment steps) within its own Docker container. An additional container hosts the system's centralized Broker, which orchestrates model runs by receiving each model's data outputs via a ZeroMQ publish-subscribe messaging pattern, then redirecting the data to any models that request it. The models can then use this data as their inputs for the next incremental step in the system's synchronized run.
Upon the initialization of a SIMoN run, the broker publishes status messages to the models. Each model connects to the broker, bootstraps on the initialization data provided in its `config` directory, publishes its output data, then waits for other models to do the same. Once all models have received their necessary data inputs from the published data outputs of other models (from the previous iteration), they will perform their next iteration. In this way, models will run in tandem. Once the final iteration has completed, the Broker and the model containers will close down.
![framework diagram](framework_diagram.png)
The Inner Wrappers are interfaces tailored to each model, and support the models' internal logic and data calculations. The Outer Wrappers are interfaces common to each model, and support the models' connectivity to the central broker and automated data translations between geographic granularities.
## Configuration
Adjust parameters in the `build/config.json` file.

BIN
build/framework_diagram.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB