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
|