mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 16:23:11 +02:00
155 lines
6.2 KiB
Plaintext
Executable File
155 lines
6.2 KiB
Plaintext
Executable File
workspace "Name" "Description" {
|
|
|
|
!identifiers hierarchical
|
|
|
|
model {
|
|
admin = person "Administrator" "Administrator zarządzający systemem e-Toll"
|
|
kierowca = person "Kierowca" "Kierowca korzystający z płatnych dróg w systemie e-Toll"
|
|
archiwum = softwareSystem "System agregacji danych historycznych" "Archiwum danych do celów statystycznych"
|
|
systemPlatnosci = softwareSystem "System procesowania płatności" "System odpowiedzialny za obsługę płatności dokonywanych prze użytkowników"
|
|
|
|
systemEtoll = softwareSystem "System e-Toll" {
|
|
webApp = container "Aplikacja webowa" "Służy do zarządzania kontem oraz systemem"
|
|
mobileApp = container "Aplikacja mobilna" "Pozwala na śledzenie pozycji pojazdu w celu dokonywania opłat"
|
|
embeddedApp = container "Aplikacja na dedykowane urządzenia zbierania opłat" "Działa na dedykowanych urządzeniach śledzących pozycję pojazdu"
|
|
|
|
serverApp = container "Aplikacja serwerowa" "Obsługuje logikę działania systemu" {
|
|
mainComponent = component "MainComponent" "Centralny element aplikacji odpowiedzialny za jej działanie"
|
|
signinController = component "SigninController" "Odpowiada za logowanie do systemu i autoryzację"
|
|
tollController = component "TollController" "Odpowiada za kontrolowanie wysokości opłat"
|
|
|
|
userService = component "UserService" "Zawiera logikę biznesową dotyczącą użytkowników"
|
|
paymentService = component "PaymentService" "Zawiera logikę dotyczącą przetwarzania płatności"
|
|
userRepository = component "UserRepository" "Odpowiada za dostęp do danych użytkownika"
|
|
paymentRepository = component "PaymentRepository" "Odpowiada za dostęp do danych płatności"
|
|
|
|
positionService = component "PositionService" "Odpowiada za określanie pozycji pojazdu w kontekście odcinków dróg"
|
|
|
|
mainComponent -> signinController "Używa"
|
|
mainComponent -> tollController "Używa"
|
|
signinController -> userService "Używa"
|
|
mainComponent -> paymentService "Używa"
|
|
tollController -> positionService "Używa"
|
|
|
|
userService -> userRepository "Odczytuje/zapisuje dane"
|
|
paymentService -> paymentRepository "Odczytuje/zapisuje dane"
|
|
}
|
|
|
|
db = container "Baza danych" {
|
|
tags "Database"
|
|
}
|
|
|
|
serverApp -> db "Czyta i zapisuje dane"
|
|
webApp -> serverApp
|
|
mobileApp -> serverApp
|
|
embeddedApp -> serverApp
|
|
}
|
|
|
|
admin -> systemEtoll.webApp "Zarządza systemem"
|
|
kierowca -> systemEtoll "Korzysta z systemu"
|
|
|
|
kierowca -> systemEtoll.webApp "Zarządza kontem"
|
|
kierowca -> systemEtoll.mobileApp "Opłaca przejazdy"
|
|
kierowca -> systemEtoll.embeddedApp "Opłaca przejazdy"
|
|
|
|
systemEtoll.serverApp -> systemPlatnosci "Realizuje płatność"
|
|
systemEtoll.serverApp -> archiwum "Przekazuje dane o użyciu dróg"
|
|
|
|
liveDeployment = deploymentEnvironment "Deployment" {
|
|
deploymentNode "Urządzenie mobilne klienta" "" "Apple iOS or Android" {
|
|
liveMobileAppInstance = containerInstance systemEtoll.mobileApp
|
|
}
|
|
|
|
deploymentNode "Dedykowane urządzenie zbierania opłat" "" "Linux" {
|
|
liveEmbeddedAppInstance = containerInstance systemEtoll.embeddedApp
|
|
}
|
|
|
|
deploymentNode "Urządzenie klienta" "" "Laptop/Desktop" {
|
|
deploymentNode "Przeglądarka internetowa" "" "Chromium/Firefox" {
|
|
browserInstance = containerInstance systemEtoll.webApp
|
|
}
|
|
}
|
|
|
|
deploymentNode "System e-Toll" "" "Data Center dla systemu e-Toll" {
|
|
deploymentNode "etoll-server" "" "Ubuntu Server 24.04 LTS" "" 4 {
|
|
deploymentNode "Apache Tomcat" "" "Apache Tomcat 8.x" {
|
|
liveWebApplicationInstance = containerInstance systemEtoll.serverApp
|
|
}
|
|
}
|
|
|
|
db1 = deploymentNode "etoll-db01" "" "Ubuntu Server 24.04 LTS" {
|
|
primaryDatabaseServer = deploymentNode "Oracle - Primary" "" "Oracle 12c" {
|
|
livePrimaryDatabaseInstance = containerInstance systemEtoll.db
|
|
}
|
|
}
|
|
db2 = deploymentNode "etoll-db02" "" "Ubuntu Server 24.04 LTS" "Failover" {
|
|
secondaryDatabaseServer = deploymentNode "Oracle - Secondary" "" "Oracle 12c" "Failover" {
|
|
liveSecondaryDatabaseInstance = containerInstance systemEtoll.db "Failover"
|
|
}
|
|
}
|
|
deploymentNode "etoll-prod001" "" "" "" {
|
|
softwareSystemInstance systemEtoll
|
|
}
|
|
|
|
db1.primaryDatabaseServer -> db2.secondaryDatabaseServer "Replikuje dane"
|
|
}
|
|
}
|
|
}
|
|
|
|
views {
|
|
systemContext systemEtoll "SystemContext" {
|
|
include *
|
|
autolayout bt
|
|
}
|
|
|
|
container systemEtoll "Container" {
|
|
include *
|
|
}
|
|
|
|
# component systemEtoll.webApp "ComponentWebApp" {
|
|
# include *
|
|
# }
|
|
|
|
# component systemEtoll.mobileApp "ComponentMobileApp" {
|
|
# include *
|
|
# }
|
|
|
|
# component systemEtoll.embeddedApp "ComponentEmbeddedApp" {
|
|
# include *
|
|
# }
|
|
|
|
component systemEtoll.serverApp "ComponentServerApp" {
|
|
include *
|
|
autoLayout bt
|
|
}
|
|
|
|
deployment systemEtoll "Deployment" {
|
|
include *
|
|
autoLayout lr
|
|
}
|
|
|
|
styles {
|
|
element "Element" {
|
|
color #ffffff
|
|
}
|
|
element "Person" {
|
|
background #199b65
|
|
shape person
|
|
}
|
|
element "Software System" {
|
|
background #1eba79
|
|
}
|
|
element "Container" {
|
|
background #23d98d
|
|
}
|
|
element "Database" {
|
|
shape cylinder
|
|
}
|
|
}
|
|
}
|
|
|
|
configuration {
|
|
scope softwaresystem
|
|
}
|
|
|
|
} |