mirror of
https://github.com/JHUAPL/SIMoN.git
synced 2026-01-09 14:57:56 -05:00
new readme for architecture
Former-commit-id: 647e79475ef8a083c40824d68bc281a66ff6866f
This commit is contained in:
15
build/README.md
Normal file
15
build/README.md
Normal 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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
Reference in New Issue
Block a user