From d0df70712c287fe4ae4e41edac0e3ad999885b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jason=20Mar=C3=A9chal?= <45510813+JasonMarechal25@users.noreply.github.com> Date: Thu, 15 Feb 2024 10:38:13 +0100 Subject: [PATCH] C4 architecture diagrams (#736) For architecture diagrams: - System Context Diagram : provide a high level view of the system surrounding Antares - Container Diagram : provide context on Antares platform components - Container Diagram (simple) : same as above, removing details for clarity - Component Diagram : provide a zoomed view of Xpansion components architecture --- ...rDiagram-Container_Diagram_for_Antares.svg | 761 ++++++++++++++++++ conception/C4/ContainerDiagram.puml | 46 ++ ...Container_Diagram_for_Antares__simple_.svg | 691 ++++++++++++++++ conception/C4/ContainerDiagramSimple.puml | 42 + conception/C4/SystemContextDiagram.puml | 30 + conception/C4/SystemContextDiagram.svg | 441 ++++++++++ ...mponent-Component_diagram_for_Xpansion.svg | 433 ++++++++++ conception/C4/XpansionComponent.puml | 27 + 8 files changed, 2471 insertions(+) create mode 100644 conception/C4/ContainerDiagram-Container_Diagram_for_Antares.svg create mode 100644 conception/C4/ContainerDiagram.puml create mode 100644 conception/C4/ContainerDiagramSimple-Container_Diagram_for_Antares__simple_.svg create mode 100644 conception/C4/ContainerDiagramSimple.puml create mode 100644 conception/C4/SystemContextDiagram.puml create mode 100644 conception/C4/SystemContextDiagram.svg create mode 100644 conception/C4/XpansionComponent-Component_diagram_for_Xpansion.svg create mode 100644 conception/C4/XpansionComponent.puml diff --git a/conception/C4/ContainerDiagram-Container_Diagram_for_Antares.svg b/conception/C4/ContainerDiagram-Container_Diagram_for_Antares.svg new file mode 100644 index 000000000..dc38ec188 --- /dev/null +++ b/conception/C4/ContainerDiagram-Container_Diagram_for_Antares.svg @@ -0,0 +1,761 @@ + + + + + Container Diagram for Antares + + + + Platform Antares + + [System] + + + + + Antares + +   + + Web + + [React/Python] + +   + + Manage + +   + + studies + + + + + Xpansion + + [C++] + +   + + Perform + +   + + investment + + simulations + +   + + for + +   + + Antares + + studies + + + + + Antares + +   + + simulator + + [C++] + +   + + Quantify + +   + + the + +   + + adequacy, + +   + + or + + the + +   + + economic + +   + + performance + + of + +   + + interconnected + +   + + energy + + systems + + + + + Script + +   + + R + + [R] + + + + + + Alice + +   + + Chargée + +   + + d'étude + + + + + + Toph + +   + + Chargée + +   + + d'étude + + + + + + Bob + +   + + Thésard + + + + + Calin + +   + + Host + +   + + Antares + + + + + VM + + + + + Windows + +   + + Virtual + + Machines + +   + + Host + +   + + studies + + + + + Downstream + +   + + systems + + (e.g. + +   + + Imagrid) + + + + + Upstream + +   + + systems + + (e.g. + +   + + User + +   + + scripts) + + + + + + Configure + +   + + and + +   + + run + + studies + + [Web + +   + + browser] + + + + + + Try + +   + + new + +   + + things + + [Local + +   + + file] + + + + + + Try + +   + + new + +   + + things + + [Local + +   + + file] + + + + + + Run + +   + + simulator + + [ssh/scp] + + + + + + Run + +   + + xpansion + + [ssh/scp] + + + + + + Execute + +   + + on + + [Command + +   + + line] + + + + + + Execute + +   + + on + + [Command + +   + + line] + + + + + + Run + +   + + several + +   + + iterations + + [Command + +   + + line] + + + + + + Hosted + +   + + on + + + + + + Generate + +   + + studies + + + + + + Generate + +   + + studies + + + + + + Provide + +   + + studies + + [Rest] + + + + + + Use + +   + + VM + +   + + to + +   + + manipulate + + studies + + + + + + Run + +   + + studies + +   + + on + + [Antares + +   + + Launcher] + + + + + + Share + +   + + studies + + [E:] + + + + + + Exploit + +   + + results + + + + + + Provide + +   + + data + + + Legend + +   + + + person + + + system + + + container + + + external person + + + external system + + + external container + + + + + + + + + + + + + \ No newline at end of file diff --git a/conception/C4/ContainerDiagram.puml b/conception/C4/ContainerDiagram.puml new file mode 100644 index 000000000..13954cf7f --- /dev/null +++ b/conception/C4/ContainerDiagram.puml @@ -0,0 +1,46 @@ +@startuml +'https://plantuml.com/sequence-diagram +!include + +LAYOUT_WITH_LEGEND() +title Container Diagram for Antares + +Person(Alice, "Alice", "Chargée d'étude") +Person(Toph, "Toph", "Chargée d'étude") +Person(Bob, "Bob", "Thésard") + +System_Boundary(antares, "Platform Antares", "Quantify the adequacy, or the economic performance of interconnected energy systems"){ + Container(web, "Antares Web", "React/Python", "Manage studies") + Container(xpansion, "Xpansion", "C++", "Perform investment simulations for Antares studies") + Container(simulator, "Antares simulator", "C++", "Quantify the adequacy, or the economic performance of interconnected energy systems") + Container(scripts, "Script R", "R") +} + +Rel(Alice, web, "Configure and run studies", "Web browser") +Rel(Bob, simulator, "Try new things", "Local file") +Rel(Bob, xpansion, "Try new things", "Local file") + +System_Ext(calin, "Calin", "Host Antares") +System_Ext(vm_web, "VM") + +Rel(web, calin, "Run simulator", "ssh/scp") +Rel(web, calin, "Run xpansion", "ssh/scp") +Rel(xpansion, calin, "Execute on", "Command line") +Rel(simulator, calin, "Execute on", "Command line") +Rel(xpansion, simulator, "Run several iterations", "Command line") +Rel(web, vm_web, "Hosted on") +Rel(scripts, simulator, "Generate studies") +Rel(scripts, xpansion, "Generate studies") +Rel(scripts, web, "Provide studies", Rest) + +System_Ext(vms, "Windows Virtual Machines", "Host studies") +Rel(Toph, vms, "Use VM to manipulate studies") +Rel(vms, calin, "Run studies on", "Antares Launcher") +Rel(vms, web, "Share studies", "E:") + +System_Ext(out, "Downstream systems (e.g. Imagrid)") +Rel(out, antares, "Exploit results") + +System_Ext(in, "Upstream systems (e.g. User scripts)") +Rel(in, scripts, "Provide data") +@enduml \ No newline at end of file diff --git a/conception/C4/ContainerDiagramSimple-Container_Diagram_for_Antares__simple_.svg b/conception/C4/ContainerDiagramSimple-Container_Diagram_for_Antares__simple_.svg new file mode 100644 index 000000000..44530829d --- /dev/null +++ b/conception/C4/ContainerDiagramSimple-Container_Diagram_for_Antares__simple_.svg @@ -0,0 +1,691 @@ + + + + + Container Diagram for Antares (simple) + + + + Platform Antares + + [System] + + + + + Antares + +   + + Web + + [React/Python] + +   + + Manage + +   + + studies + + + + + Xpansion + + [C++] + +   + + Perform + +   + + investment + + simulations + +   + + for + +   + + Antares + + studies + + + + + Antares + +   + + simulator + + [C++] + +   + + Quantify + +   + + the + +   + + adequacy, + +   + + or + + the + +   + + economic + +   + + performance + + of + +   + + interconnected + +   + + energy + + systems + + + + + Script + +   + + R + + [R] + + + + + + Alice + +   + + Chargée + +   + + d'étude + + + + + + Toph + +   + + Chargée + +   + + d'étude + + + + + + Bob + +   + + Thésard + + + + + Calin + +   + + Host + +   + + Antares + + + + + Windows + +   + + Virtual + + Machines + +   + + Host + +   + + studies + + + + + Downstream + +   + + systems + + (e.g. + +   + + Imagrid) + + + + + Upstream + +   + + systems + + (e.g. + +   + + User + +   + + scripts) + + + + + + Configure + +   + + and + +   + + run + + studies + + [Web + +   + + browser] + + + + + + Try + +   + + new + +   + + things + + [Local + +   + + file] + + + + + + Try + +   + + new + +   + + things + + [Local + +   + + file] + + + + + + Run + +   + + simulator + + [ssh/scp] + + + + + + Run + +   + + xpansion + + [ssh/scp] + + + + + + Run + +   + + several + +   + + iterations + + [Command + +   + + line] + + + + + + Generate + +   + + studies + + + + + + Generate + +   + + studies + + + + + + Provide + +   + + studies + + [Rest] + + + + + + Use + +   + + VM + +   + + to + +   + + manipulate + + studies + + + + + + Run + +   + + studies + +   + + on + + [Antares + +   + + Launcher] + + + + + + Share + +   + + studies + + [E:] + + + + + + Exploit + +   + + results + + + + + + Provide + +   + + data + + + Legend + +   + + + person + + + system + + + container + + + external person + + + external system + + + external container + + + + + + + + + + + + + \ No newline at end of file diff --git a/conception/C4/ContainerDiagramSimple.puml b/conception/C4/ContainerDiagramSimple.puml new file mode 100644 index 000000000..425880c29 --- /dev/null +++ b/conception/C4/ContainerDiagramSimple.puml @@ -0,0 +1,42 @@ +@startuml +'https://plantuml.com/sequence-diagram +!include + +LAYOUT_WITH_LEGEND() +title Container Diagram for Antares (simple) + +Person(Alice, "Alice", "Chargée d'étude") +Person(Toph, "Toph", "Chargée d'étude") +Person(Bob, "Bob", "Thésard") + +System_Boundary(antares, "Platform Antares", "Quantify the adequacy, or the economic performance of interconnected energy systems"){ + Container(web, "Antares Web", "React/Python", "Manage studies") + Container(xpansion, "Xpansion", "C++", "Perform investment simulations for Antares studies") + Container(simulator, "Antares simulator", "C++", "Quantify the adequacy, or the economic performance of interconnected energy systems") + Container(scripts, "Script R", "R") +} + +Rel(Alice, web, "Configure and run studies", "Web browser") +Rel(Bob, simulator, "Try new things", "Local file") +Rel(Bob, xpansion, "Try new things", "Local file") + +System_Ext(calin, "Calin", "Host Antares") + +Rel(web, calin, "Run simulator", "ssh/scp") +Rel(web, calin, "Run xpansion", "ssh/scp") +Rel(xpansion, simulator, "Run several iterations", "Command line") +Rel(scripts, simulator, "Generate studies") +Rel(scripts, xpansion, "Generate studies") +Rel(scripts, web, "Provide studies", Rest) + +System_Ext(vms, "Windows Virtual Machines", "Host studies") +Rel(Toph, vms, "Use VM to manipulate studies") +Rel(vms, calin, "Run studies on", "Antares Launcher") +Rel(vms, web, "Share studies", "E:") + +System_Ext(out, "Downstream systems (e.g. Imagrid)") +Rel(out, antares, "Exploit results") + +System_Ext(in, "Upstream systems (e.g. User scripts)") +Rel(in, scripts, "Provide data") +@enduml \ No newline at end of file diff --git a/conception/C4/SystemContextDiagram.puml b/conception/C4/SystemContextDiagram.puml new file mode 100644 index 000000000..2ec32814f --- /dev/null +++ b/conception/C4/SystemContextDiagram.puml @@ -0,0 +1,30 @@ +@startuml +'https://plantuml.com/sequence-diagram +!include + +LAYOUT_WITH_LEGEND() +title System Context Diagram for Antares + +Person(Alice, "Alice", "Chargée d'étude") +Person(Toph, "Toph", "Chargée d'étude") +Person(Bob, "Bob", "Thésard") + +System(antares, "Platform Antares", "Quantify the adequacy, or the economic performance of interconnected energy systems") + +Rel(Alice, antares, "Configure and run studies") +Rel(Bob, antares, "Try new things") + +System_Ext(calin, "Calin", "Host Antares") +Rel(antares, calin, "Run on") + +System_Ext(vms, "Windows Virtual Machines", "Host studies") +Rel(Toph, vms, "Use VM to manipulate studies") +Rel(vms, calin, "Run studies on") +Rel(vms, antares, "Host studies") + +System_Ext(out, "Downstream systems (e.g. Imagrid)") +Rel(out, antares, "Exploit results") + +System_Ext(in, "Upstream systems (e.g. User scripts)") +Rel(in, antares, "Generate data for") +@enduml \ No newline at end of file diff --git a/conception/C4/SystemContextDiagram.svg b/conception/C4/SystemContextDiagram.svg new file mode 100644 index 000000000..a2afe6136 --- /dev/null +++ b/conception/C4/SystemContextDiagram.svg @@ -0,0 +1,441 @@ + + + + + System Context Diagram for Antares + + + + + Alice + +   + + Chargée + +   + + d'étude + + + + + + Toph + +   + + Chargée + +   + + d'étude + + + + + + Bob + +   + + Thésard + + + + + Platform + +   + + Antares + +   + + Quantify + +   + + the + +   + + adequacy, + +   + + or + + the + +   + + economic + +   + + performance + + of + +   + + interconnected + +   + + energy + + systems + + + + + Calin + +   + + Host + +   + + Antares + + + + + Windows + +   + + Virtual + + Machines + +   + + Host + +   + + studies + + + + + Downstream + +   + + systems + + (e.g. + +   + + Imagrid) + + + + + Upstream + +   + + systems + + (e.g. + +   + + User + +   + + scripts) + + + + + + Configure + +   + + and + +   + + run + + studies + + + + + + Try + +   + + new + +   + + things + + + + + + Run + +   + + on + + + + + + Use + +   + + VM + +   + + to + +   + + manipulate + + studies + + + + + + Run + +   + + studies + +   + + on + + + + + + Host + +   + + studies + + + + + + Exploit + +   + + results + + + + + + Generate + +   + + data + +   + + for + + + Legend + +   + + + person + + + system + + + container + + + external person + + + external system + + + external container + + + + + + + + + + + + + \ No newline at end of file diff --git a/conception/C4/XpansionComponent-Component_diagram_for_Xpansion.svg b/conception/C4/XpansionComponent-Component_diagram_for_Xpansion.svg new file mode 100644 index 000000000..662c1a39c --- /dev/null +++ b/conception/C4/XpansionComponent-Component_diagram_for_Xpansion.svg @@ -0,0 +1,433 @@ + + + + + Component diagram for Xpansion + + + + Xpansion + + [Container] + + + + + Problem + +   + + Generation + + [C++] + +   + + Update + +   + + antares + +   + + simulator + + results + +   + + with + +   + + candidates + + + + + Benders + + [C++] + +   + + Solve + +   + + the + +   + + problem + + + + + Drivers + +   + + (executable) + + [python] + +   + + Perform + +   + + checks + +   + + on + +   + + input + + data + +   + + and + +   + + control + +   + + application + + flow + + + + + Full + +   + + run + + [c++] + +   + + Encompass + +   + + Problem + + Generation + +   + + and + +   + + Benders + + + + + Antares + +   + + Web + + [React/Python] + +   + + Manage + +   + + studies + + + + + Antares + +   + + simulator + + [C++] + +   + + Quantify + +   + + the + +   + + adequacy, + +   + + or + + the + +   + + economic + +   + + performance + + of + +   + + interconnected + +   + + energy + + systems + + + + + Script + +   + + R + + [R] + + + + + + Start + + + + + + Start + + + + + + Start + + + + + + Run + + + + + + Start + + + + + + Generate + +   + + study + + + Legend + +   + + + person + + + system + + + container + + + component + + + external person + + + external system + + + external container + + + external component + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/conception/C4/XpansionComponent.puml b/conception/C4/XpansionComponent.puml new file mode 100644 index 000000000..5903c6ee7 --- /dev/null +++ b/conception/C4/XpansionComponent.puml @@ -0,0 +1,27 @@ +@startuml +'https://plantuml.com/sequence-diagram +!include + +LAYOUT_WITH_LEGEND() +title Component diagram for Xpansion + +Container(web, "Antares Web", "React/Python", "Manage studies") +Container(simulator, "Antares simulator", "C++", "Quantify the adequacy, or the economic performance of interconnected energy systems") +Container(scripts, "Script R", "R") + +Container_Boundary(xpansion, "Xpansion") { + Component(pbgen, "Problem Generation", "C++", "Update antares simulator results with candidates") + Component(benders, "Benders", "C++", "Solve the problem") + Component(driver, "Drivers (executable)", "python", "Perform checks on input data and control application flow") + Component(fullrun, "Full run", "c++", "Encompass Problem Generation and Benders") + + Rel(driver, benders, "Start", "CLI") + Rel(driver, pbgen, "Start", "CLI") + Rel(driver, fullrun, "Start", "CLI") +} + +Rel(driver, simulator, "Run", "CLI") +Rel(web, driver, "Start", "CLI") +Rel(scripts, xpansion, "Generate study", "files") + +@enduml \ No newline at end of file