Somesystem5

@startuml(id=Context)
scale max 2000x1413
title Assumption & Workflow Management - System Context
caption AMS System Context View

skinparam {
  shadowing false
  arrowColor #707070
  actorBorderColor #707070
  componentBorderColor #707070
  rectangleBorderColor #707070
  noteBackgroundColor #ffffff
  noteBorderColor #707070
}
actor "Admin" <<Person>> as 13 #f2f2f2
note right of 13
  AMS Developers and Support
  Staff
end note
actor "Analyst" <<Person>> as 10 #f2f2f2
note right of 10
  Model input and output
  analysts
end note
actor "Modeller" <<Person>> as 6 #f2f2f2
note right of 6
  Model developers and leads
end note
database 5 <<Software System>> #dddddd [
  Model Output Storage
  --
  Permanent storage model
  output results
]
package "Enterprise" {
  rectangle 1 <<Software System>> #dddddd [
    Assumption & Workflow Management
    --
    Assumption & workflow
    management (AMS) for SCA
  ]
  rectangle 4 <<Software System>> #dddddd [
    Model Development
    --
    Discrete event simulation
    tools for SCA
  ]
  rectangle 3 <<Software System>> #dddddd [
    Model Execution
    --
    Distributed execution
    platform for model runs
  ]
  rectangle 2 <<Software System>> #dddddd [
    Model Output Analysis
    --
    Advanced visualization tools
    for SCA
  ]
}
13 .[#707070].> 1 : Monitor system usage and stability, Manage configurations
13 .[#707070].> 3 : Monitor ongoing model runs, Restarts / fixes any runs having issues
10 .[#707070].> 1 : Prepares model input, Model submissions, Track model execution, Analyse results
10 .[#707070].> 2 : Analyse model outputs
1 .[#707070].> 3 : Hands of model executions
4 .[#707070].> 1 : Exports model versions
3 .[#707070].> 5 : Publishes model output results
2 .[#707070].> 5 : Generate viz dashboards
6 .[#707070].> 1 : All the analysis work
6 .[#707070].> 4 : Develops model, exports model to other subsystems
6 .[#707070].> 2 : Analyse model outputs
@enduml

uml diagram

--

@startuml(id=AMS_Container)
scale max 2000x1414
title Assumption & Workflow Management - Containers
caption AMS System Container View

skinparam {
  shadowing false
  arrowColor #707070
  actorBorderColor #707070
  componentBorderColor #707070
  rectangleBorderColor #707070
  noteBackgroundColor #ffffff
  noteBorderColor #707070
}
actor "Admin" <<Person>> as 13 #f2f2f2
note right of 13
  AMS Developers and Support
  Staff
end note
actor "Analyst" <<Person>> as 10 #f2f2f2
note right of 10
  Model input and output
  analysts
end note
rectangle 4 <<Software System>> #dddddd [
  Model Development
  --
  Discrete event simulation
  tools for SCA
]
rectangle 3 <<Software System>> #dddddd [
  Model Execution
  --
  Distributed execution
  platform for model runs
]
rectangle 2 <<Software System>> #dddddd [
  Model Output Analysis
  --
  Advanced visualization tools
  for SCA
]
database 5 <<Software System>> #dddddd [
  Model Output Storage
  --
  Permanent storage model
  output results
]
actor "Modeller" <<Person>> as 6 #f2f2f2
note right of 6
  Model developers and leads
end note
package "Assumption & Workflow Management" <<Software System>> {
  rectangle 24 <<Hangfire / Windows Service>> #dddddd [
    AMS Background processing engine
    --
    Runs larger jobs in the
    background
  ]
  rectangle 26 <<Redis / Windows Service>> #dddddd [
    AMS Cache
    --
    Out of process cache for AMS
  ]
  database 21 <<SQL Server>> #dddddd [
    AMS Db
    --
    Relational data store for AMS
  ]
  rectangle 23 <<MSMQ>> #dddddd [
    AMS Message Bus
    --
    Message Bus for AMS
  ]
  rectangle 20 <<LightSwitch, ASP.Net MVC>> #dddddd [
    AMS Web Application
    --
    Workflow management interface
  ]
  rectangle 22 <<Enterprise AD>> #dddddd [
    Active Directory
    --
    Enterprise user and security
    management software
  ]
  rectangle 25 <<.Net Command line application>> #dddddd [
    Unity Client
    --
    Command line interface to
    runs controller
  ]
}
24 .[#707070].> 26 : <<Stack exchange Redis client / C#>>\nUpdates/Retrieves application data from cache
24 .[#707070].> 21 : Saves results when job completes
24 .[#707070].> 23 : <<Hangfire server calls>>\nProcess queues
26 .[#707070].> 21 : <<EF>>\nLoad to cache upon a cache miss
20 .[#707070].> 26 : <<Stack Exchange Redis Client>>\nCaches application data for fast retrieval
20 .[#707070].> 21 : <<LightSwitch Data Services, EF, ADO.Net>>\nData Access
20 .[#707070].> 23 : <<Hangfire client API>>\nPublish background jobs to queues
20 .[#707070].> 22 : <<Windows Auth>>\nAuthenticates and authorize users
20 .[#707070].> 3 : <<WCF>>\nGet model run status
20 .[#707070].> 25 : <<Command Line Invocation>>\nSubmit model runs
13 .[#707070].> 20 : Monitor system usage and stability, Manage configurations
13 .[#707070].> 3 : Monitor ongoing model runs, Restarts / fixes any runs having issues
10 .[#707070].> 20 : Prepares model input, Track model execution, Analyse results
10 .[#707070].> 2 : Analyse model outputs
3 .[#707070].> 5 : Publishes model output results
2 .[#707070].> 5 : Generate viz dashboards
6 .[#707070].> 20 : Submits models, Track model execution, Analyse results
6 .[#707070].> 4 : Develops model, exports model to other subsystems
6 .[#707070].> 2 : Analyse model outputs
25 .[#707070].> 3 : <<WCF>>\nCalls runs controller server
@enduml

uml diagram

--

@startuml(id=Model_Platform_Container)
scale max 2000x1414
title Model Development - Containers
caption Modelling Development Container View

skinparam {
  shadowing false
  arrowColor #707070
  actorBorderColor #707070
  componentBorderColor #707070
  rectangleBorderColor #707070
  noteBackgroundColor #ffffff
  noteBorderColor #707070
}
actor "Admin" <<Person>> as 13 #f2f2f2
note right of 13
  AMS Developers and Support
  Staff
end note
actor "Analyst" <<Person>> as 10 #f2f2f2
note right of 10
  Model input and output
  analysts
end note
rectangle 1 <<Software System>> #dddddd [
  Assumption & Workflow Management
  --
  Assumption & workflow
  management (AMS) for SCA
]
rectangle 3 <<Software System>> #dddddd [
  Model Execution
  --
  Distributed execution
  platform for model runs
]
rectangle 2 <<Software System>> #dddddd [
  Model Output Analysis
  --
  Advanced visualization tools
  for SCA
]
database 5 <<Software System>> #dddddd [
  Model Output Storage
  --
  Permanent storage model
  output results
]
actor "Modeller" <<Person>> as 6 #f2f2f2
note right of 6
  Model developers and leads
end note
package "Model Development" <<Software System>> {
  rectangle 42 <<Commercial Application / Java>> #dddddd [
    AnyLogic/Eclipse
    --
    Discrete event simulation
    platform
  ]
  rectangle 43 <<PowerShell>> #dddddd [
    Bamboo
    --
    Build and Deployment System
  ]
  rectangle 41 <<Python>> #dddddd [
    P2CExport
    --
    Manages model version export
    process
  ]
}
13 .[#707070].> 1 : Monitor system usage and stability, Manage configurations
13 .[#707070].> 3 : Monitor ongoing model runs, Restarts / fixes any runs having issues
10 .[#707070].> 1 : Prepares model input, Model submissions, Track model execution, Analyse results
10 .[#707070].> 2 : Analyse model outputs
1 .[#707070].> 3 : Hands of model executions
43 .[#707070].> 1 : Update AMS with new model version
3 .[#707070].> 5 : Publishes model output results
2 .[#707070].> 5 : Generate viz dashboards
6 .[#707070].> 42 : Develops model
6 .[#707070].> 1 : All the analysis work
6 .[#707070].> 2 : Analyse model outputs
6 .[#707070].> 41 : Exports model versions to other sub systems
41 .[#707070].> 42 : <<Python scripts>>\nCopies binaries from user workspace
41 .[#707070].> 43 : <<Python scripts>>\nTriggers a model version build
@enduml

uml diagram

--

@startuml(id=Model_Execution_Container)
scale max 2000x1414
title Model Execution - Containers
caption Modelling Execution Container View

skinparam {
  shadowing false
  arrowColor #707070
  actorBorderColor #707070
  componentBorderColor #707070
  rectangleBorderColor #707070
  noteBackgroundColor #ffffff
  noteBorderColor #707070
}
actor "Admin" <<Person>> as 13 #f2f2f2
note right of 13
  AMS Developers and Support
  Staff
end note
actor "Analyst" <<Person>> as 10 #f2f2f2
note right of 10
  Model input and output
  analysts
end note
rectangle 1 <<Software System>> #dddddd [
  Assumption & Workflow Management
  --
  Assumption & workflow
  management (AMS) for SCA
]
rectangle 4 <<Software System>> #dddddd [
  Model Development
  --
  Discrete event simulation
  tools for SCA
]
rectangle 2 <<Software System>> #dddddd [
  Model Output Analysis
  --
  Advanced visualization tools
  for SCA
]
database 5 <<Software System>> #dddddd [
  Model Output Storage
  --
  Permanent storage model
  output results
]
actor "Modeller" <<Person>> as 6 #f2f2f2
note right of 6
  Model developers and leads
end note
package "Model Execution" <<Software System>> {
  database 51 <<SQL Server>> #dddddd [
    Control Framework
    --
    Orchestration platform for
    activities involving
    different systems
  ]
  folder 54 <<Network Share>> #dddddd [
    Model Output Storage (File)
    --
    Short term storage for model
    output results
  ]
  rectangle 52 <<Java>> #dddddd [
    Model execution nodes
    --
    A collection of distributed
    nodes capable of executing
    model runs
  ]
  rectangle 53 <<R>> #dddddd [
    Post processing nodes
    --
    A collection of distributed
    nodes doing post-process
    activities
  ]
  rectangle 50 <<.Net>> #dddddd [
    Runs Controller
    --
    Manages model runs in a
    distributed environment
  ]
  rectangle 56 <<SSIS>> #dddddd [
    SSIS Pkgs
    --
    When invoked perform data
    intensive tasks
  ]
  rectangle 55 <<Sql Server>> #dddddd [
    Sql Jobs
    --
    When triggered by time events
    or message events, performs
    tasks (commonly SSIS)
  ]
}
13 .[#707070].> 1 : Monitor system usage and stability, Manage configurations
10 .[#707070].> 1 : Prepares model input, Model submissions, Track model execution, Analyse results
10 .[#707070].> 2 : Analyse model outputs
1 .[#707070].> 50 : Submit model runs, Gets model run status
4 .[#707070].> 1 : Exports model versions
2 .[#707070].> 5 : Generate viz dashboards
52 .[#707070].> 51 : Publish model execution events
52 .[#707070].> 50 : Sends model run status
6 .[#707070].> 1 : All the analysis work
6 .[#707070].> 4 : Develops model, exports model to other subsystems
6 .[#707070].> 2 : Analyse model outputs
53 .[#707070].> 51 : Publish model execution events
53 .[#707070].> 54 : Copies post-process results to file system
50 .[#707070].> 52 : Delegates model runs
50 .[#707070].> 53 : Triggers post process
56 .[#707070].> 5 : Loads model outputs in to Db
56 .[#707070].> 54 : Process model outputs in file storage
55 .[#707070].> 51 : Polls for messages and triggers jobs
55 .[#707070].> 56 : Invokes relevant SSIS pkg
@enduml

uml diagram

--

@startuml(id=Model_Output_Analysis_Container)
scale max 2000x1413
title Model Output Analysis - Containers
caption Modelling Output Container View

skinparam {
  shadowing false
  arrowColor #707070
  actorBorderColor #707070
  componentBorderColor #707070
  rectangleBorderColor #707070
  noteBackgroundColor #ffffff
  noteBorderColor #707070
}
actor "Admin" <<Person>> as 13 #f2f2f2
note right of 13
  AMS Developers and Support
  Staff
end note
actor "Analyst" <<Person>> as 10 #f2f2f2
note right of 10
  Model input and output
  analysts
end note
rectangle 1 <<Software System>> #dddddd [
  Assumption & Workflow Management
  --
  Assumption & workflow
  management (AMS) for SCA
]
rectangle 4 <<Software System>> #dddddd [
  Model Development
  --
  Discrete event simulation
  tools for SCA
]
rectangle 3 <<Software System>> #dddddd [
  Model Execution
  --
  Distributed execution
  platform for model runs
]
database 5 <<Software System>> #dddddd [
  Model Output Storage
  --
  Permanent storage model
  output results
]
actor "Modeller" <<Person>> as 6 #f2f2f2
note right of 6
  Model developers and leads
end note
package "Model Output Analysis" <<Software System>> {
  rectangle 68 <<Commercial Software>> #dddddd [
    Spotfire
    --
    Advanced viz tool
  ]
}
13 .[#707070].> 1 : Monitor system usage and stability, Manage configurations
13 .[#707070].> 3 : Monitor ongoing model runs, Restarts / fixes any runs having issues
10 .[#707070].> 1 : Prepares model input, Model submissions, Track model execution, Analyse results
10 .[#707070].> 68 : Analyse model output results
1 .[#707070].> 3 : Hands of model executions
4 .[#707070].> 1 : Exports model versions
3 .[#707070].> 5 : Publishes model output results
6 .[#707070].> 1 : All the analysis work
6 .[#707070].> 4 : Develops model, exports model to other subsystems
6 .[#707070].> 68 : Analyse model output results
68 .[#707070].> 5 : Generate Visualisations
@enduml

uml diagram

--