95 lines
2.4 KiB
Plaintext
95 lines
2.4 KiB
Plaintext
@startuml Server Architecture
|
|
left to right direction
|
|
|
|
!define RECTANGLE class
|
|
|
|
' Define styles
|
|
skinparam rectangle {
|
|
BackgroundColor<<zone>> LightBlue
|
|
BorderColor<<zone>> Navy
|
|
BackgroundColor<<server>> LightGreen
|
|
BorderColor<<server>> DarkGreen
|
|
BackgroundColor<<admin>> LightYellow
|
|
BorderColor<<admin>> Orange
|
|
BackgroundColor<<client>> LightPink
|
|
BorderColor<<client>> Red
|
|
BackgroundColor<<database>> LightCyan
|
|
BorderColor<<database>> DarkCyan
|
|
BackgroundColor<<component>> Wheat
|
|
BorderColor<<component>> Brown
|
|
}
|
|
|
|
' Zone 2 container
|
|
rectangle "Zone 2" <<zone>> {
|
|
' Admin DIZ (provider)
|
|
actor "Admin DIZ\n(Provider)" <<admin>> as AdminD
|
|
|
|
' BLAZE Server
|
|
rectangle "BLAZE Server" <<server>> as BlazeServer {
|
|
note "FHIR data source for\nthe pipeline" as n1
|
|
}
|
|
|
|
' Server M with internal components
|
|
rectangle "Server MeDaX" <<server>> as ServerM {
|
|
|
|
' Web Interface
|
|
rectangle "Web Interface" <<component>> as WebInterface
|
|
' Pipeline components
|
|
rectangle "Pipeline" <<component>> as Pipeline {
|
|
rectangle "Python Scripts" <<component>> as PythonScripts
|
|
collections "Input Files" <<files>> as InputFiles
|
|
|
|
note top of PythonScripts : 1. Python scripts fetch data\n2. Create input files\n3. Load into GDB
|
|
|
|
|
|
' Graph Database
|
|
database "Graph Database\n(GDB)" <<database>> as GraphDB
|
|
}
|
|
|
|
|
|
}
|
|
|
|
rectangle WTSDIZ <<client>> as DIZclient
|
|
|
|
|
|
}
|
|
|
|
' Admin MeDaX
|
|
rectangle "MeDaX Admins" <<admin>> as AdminGroup {
|
|
actor "Admin 1" as Admin1
|
|
actor "Admin 2" as Admin2
|
|
}
|
|
|
|
|
|
' Clients
|
|
rectangle "Clients" <<client>> as Clients {
|
|
rectangle "Clients 1 - MeDaX" as Client1
|
|
rectangle "Clients 2 - Allgemeinmedizin" as Client2
|
|
}
|
|
|
|
' Hidden alignment helpers
|
|
BlazeServer -[hidden]right- ServerM
|
|
BlazeServer -[hidden]down- AdminD
|
|
|
|
' Pipeline flow within Server M
|
|
PythonScripts -down-> InputFiles : creates
|
|
InputFiles -down-> GraphDB : loads into
|
|
|
|
' BLAZE Server connection
|
|
PythonScripts -up-> BlazeServer : requests data
|
|
|
|
|
|
' Web Interface connection
|
|
WebInterface -up-> GraphDB : connected to
|
|
|
|
|
|
' External relationships
|
|
AdminD -up-> ServerM : manages, secures & installs
|
|
AdminGroup -up-> DIZclient : access via VPN
|
|
DIZclient -left-> ServerM : ssh connection
|
|
Clients -up-> DIZclient : access via VPN
|
|
DIZclient -left-> WebInterface : access
|
|
|
|
|
|
@enduml
|