50 lines
1.1 KiB
Plaintext
50 lines
1.1 KiB
Plaintext
@startuml
|
|
skinparam componentStyle rectangle
|
|
|
|
[isle command line] as isleCommand
|
|
() "daemon.RPC" as isleDaemonRPC
|
|
[daemon.Client] as daemonClient
|
|
|
|
frame "isle daemon process" {
|
|
portin "RPC Socket" as rpcSocket
|
|
[RPC Server] as rpcServer
|
|
|
|
() "daemon.RPC" as daemonRPC
|
|
[daemon.Daemon] as daemon
|
|
[network.Network (A)] as networkA
|
|
[network.Network (B)] as networkB
|
|
|
|
|
|
rpcServer --> rpcSocket : handle
|
|
rpcServer ..> daemonRPC : dispatch
|
|
|
|
daemon - daemonRPC
|
|
daemon --> networkA
|
|
daemon --> networkB
|
|
}
|
|
|
|
isleCommand ..> isleDaemonRPC : issue commands
|
|
daemonClient - isleDaemonRPC
|
|
daemonClient --> rpcSocket
|
|
|
|
package "network A child processes" {
|
|
[nebula] as networkANebula
|
|
[garage (alloc 1)] as networkAGarage1
|
|
[garage (alloc 2)] as networkAGarage2
|
|
[dnsmasq] as networkADNSMasq
|
|
}
|
|
|
|
networkA --> networkANebula
|
|
networkA --> networkAGarage1
|
|
networkA --> networkAGarage2
|
|
networkA --> networkADNSMasq
|
|
|
|
package "network B child processes" {
|
|
[nebula] as networkBNebula
|
|
[dnsmasq] as networkBDNSMasq
|
|
}
|
|
|
|
networkB --> networkBNebula
|
|
networkB --> networkBDNSMasq
|
|
@enduml
|