Skip to content

Instantly share code, notes, and snippets.

@simonbrowndotje
Created July 4, 2017 20:06
Show Gist options
  • Save simonbrowndotje/9212bf0824a7373b53ec9717a8433b30 to your computer and use it in GitHub Desktop.
Save simonbrowndotje/9212bf0824a7373b53ec9717a8433b30 to your computer and use it in GitHub Desktop.
Spring PetClinic - PlantUML
@startuml
title Spring PetClinic - System Context
caption The System Context diagram for the Spring PetClinic system.
actor "Clinic Employee" <<Person>> as 2
component "Spring PetClinic" <<Software System>> as 1
2 ..> 1 : Uses
@enduml
@startuml
title Spring PetClinic - Containers
caption The Container diagram for the Spring PetClinic system.
actor "Clinic Employee" <<Person>> as 2
package SpringPetClinic {
component "Database" <<Container>> as 5
component "Web Application" <<Container>> as 4
}
2 ..> 4 : Uses <<HTTPS>>
4 ..> 5 : Reads from and writes to <<JDBC>>
@enduml
@startuml
title Spring PetClinic - Web Application - Components
caption The Component diagram for the Spring PetClinic web application.
actor "Clinic Employee" <<Person>> as 2
component "Database" <<Container>> as 5
package WebApplication {
component "ClinicService" <<Spring Service>> as 13
component "CrashController" <<Spring MVC Controller>> as 9
component "OwnerController" <<Spring MVC Controller>> as 10
component "OwnerRepository" <<Spring Repository>> as 16
component "PetController" <<Spring MVC Controller>> as 12
component "PetRepository" <<Spring Repository>> as 15
component "VetController" <<Spring MVC Controller>> as 11
component "VetRepository" <<Spring Repository>> as 17
component "VisitController" <<Spring MVC Controller>> as 8
component "VisitRepository" <<Spring Repository>> as 14
}
2 ..> 9 : Uses <<HTTP>>
2 ..> 10 : Uses <<HTTP>>
2 ..> 12 : Uses <<HTTP>>
2 ..> 11 : Uses <<HTTP>>
2 ..> 8 : Uses <<HTTP>>
13 ..> 16
13 ..> 15
13 ..> 17
13 ..> 14
10 ..> 13
16 ..> 5 : Reads from and writes to <<JDBC>>
12 ..> 13
15 ..> 5 : Reads from and writes to <<JDBC>>
15 ..> 16
15 ..> 14
11 ..> 13
17 ..> 5 : Reads from and writes to <<JDBC>>
8 ..> 13
14 ..> 5 : Reads from and writes to <<JDBC>>
@enduml
@startuml
title Web Application - Dynamic
caption Shows how the "view list of vets" feature works.
actor "Clinic Employee" <<Person>> as 2
component "ClinicService" <<Spring Service>> as 13
component "Database" <<Container>> as 5
component "VetController" <<Spring MVC Controller>> as 11
component "VetRepository" <<Spring Repository>> as 17
2 -> 11 : Requests list of vets from /vets
11 -> 13 : Calls findVets
13 -> 17 : Calls findAll
17 -> 5 : select * from vets
@enduml
@startuml
title Spring PetClinic - Deployment
caption An example development deployment scenario for the Spring PetClinic software system.
node "Developer Laptop" <<Windows 7+ or macOS>> as 37 {
node "Docker Container - Database Server" <<Docker>> as 41 {
node "Database Server" <<HSQLDB>> as 42 {
artifact "Database" <<Container>> as 43
}
}
node "Docker Container - Web Server" <<Docker>> as 38 {
node "Apache Tomcat" <<Apache Tomcat 7.x>> as 39 {
artifact "Web Application" <<Container>> as 40
}
}
}
40 ..> 43 : Reads from and writes to <<JDBC>>
@enduml
@startuml
title Spring PetClinic - Deployment
caption An example staging deployment scenario for the Spring PetClinic software system.
node "Staging Server" <<Ubuntu 12.04 LTS>> as 45 {
node "MySQL" <<MySQL 5.5.x>> as 49 {
artifact "Database" <<Container>> as 50
}
node "Apache Tomcat" <<Apache Tomcat 7.x>> as 46 {
artifact "Web Application" <<Container>> as 47
}
}
47 ..> 50 : Reads from and writes to <<JDBC>>
@enduml
@startuml
title Spring PetClinic - Deployment
caption An example live deployment scenario for the Spring PetClinic software system.
node "Database Server - Primary" <<Ubuntu 12.04 LTS>> as 58 {
node "MySQL - Primary" <<MySQL 5.5.x>> as 59 {
artifact "Database" <<Container>> as 60
}
}
node "Database Server - Secondary" <<Ubuntu 12.04 LTS>> as 64 {
node "MySQL - Secondary" <<MySQL 5.5.x>> as 65 {
artifact "Database" <<Container>> as 66
}
}
node "Web Server (x2)" <<Ubuntu 12.04 LTS>> as 53 {
node "Apache Tomcat" <<Apache Tomcat 7.x>> as 54 {
artifact "Web Application" <<Container>> as 55
}
}
59 ..> 65 : Replicates data to
55 ..> 60 : Reads from and writes to <<JDBC>>
55 ..> 66 : Reads from and writes to <<JDBC>>
@enduml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment