isle/docs/dev/architecture.svg

1 line
13 KiB
XML

<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="721px" preserveAspectRatio="none" style="width:753px;height:721px;background:#FFFFFF;" version="1.1" viewBox="0 0 753 721" width="753px" zoomAndPan="magnify"><defs/><g><!--cluster isle daemon process--><g id="cluster_isle daemon process"><rect fill="none" height="359.4" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="358" x="268" y="236.6"/><path d="M421,236.6 L421,246.3999 L411,256.3999 L268,256.3999 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="143" x="271" y="251.5999">isle daemon process</text></g><!--cluster network A child processes--><g id="cluster_network A child processes"><path d="M8.5,627 L190.5,627 A3.75,3.75 0 0 1 193,629.5 L200,649.7999 L514.5,649.7999 A2.5,2.5 0 0 1 517,652.2999 L517,712.3 A2.5,2.5 0 0 1 514.5,714.8 L8.5,714.8 A2.5,2.5 0 0 1 6,712.3 L6,629.5 A2.5,2.5 0 0 1 8.5,627 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><line style="stroke:#000000;stroke-width:1.5;" x1="6" x2="200" y1="649.7999" y2="649.7999"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="181" x="10" y="642.9999">network A child processes</text></g><!--cluster network B child processes--><g id="cluster_network B child processes"><path d="M543.5,627 L725.5,627 A3.75,3.75 0 0 1 728,629.5 L735,649.7999 L743.5,649.7999 A2.5,2.5 0 0 1 746,652.2999 L746,712.3 A2.5,2.5 0 0 1 743.5,714.8 L543.5,714.8 A2.5,2.5 0 0 1 541,712.3 L541,629.5 A2.5,2.5 0 0 1 543.5,627 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><line style="stroke:#000000;stroke-width:1.5;" x1="541" x2="735" y1="649.7999" y2="649.7999"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="181" x="545" y="642.9999">network B child processes</text></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="74" x="395.5" y="215.8">RPC Socket</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="426.5" y="230.6"/><!--entity rpcServer--><g id="elem_rpcServer"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="93" x="495.5" y="331.6"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="73" x="505.5" y="355.5999">RPC Server</text></g><!--entity daemonRPC--><g id="elem_daemonRPC"><ellipse cx="542" cy="463.8" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="82" x="501" y="494.7999">daemon.RPC</text></g><!--entity daemon--><g id="elem_daemon"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="124" x="374" y="445.4"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="104" x="384" y="469.3999">daemon.Daemon</text></g><!--entity networkA--><g id="elem_networkA"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="145" x="284.5" y="543.2"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="125" x="294.5" y="567.1999">network.Network (A)</text></g><!--entity networkB--><g id="elem_networkB"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="145" x="464.5" y="543.2"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="125" x="474.5" y="567.1999">network.Network (B)</text></g><!--entity networkANebula--><g id="elem_networkANebula"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="62" x="22" y="662"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="42" x="32" y="685.9999">nebula</text></g><!--entity networkAGarage1--><g id="elem_networkAGarage1"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="118" x="119" y="662"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="98" x="129" y="685.9999">garage (alloc 1)</text></g><!--entity networkAGarage2--><g id="elem_networkAGarage2"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="118" x="272" y="662"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="98" x="282" y="685.9999">garage (alloc 2)</text></g><!--entity networkADNSMasq--><g id="elem_networkADNSMasq"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="77" x="424.5" y="662"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57" x="434.5" y="685.9999">dnsmasq</text></g><!--entity networkBNebula--><g id="elem_networkBNebula"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="62" x="557" y="662"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="42" x="567" y="685.9999">nebula</text></g><!--entity networkBDNSMasq--><g id="elem_networkBDNSMasq"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="77" x="653.5" y="662"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57" x="663.5" y="685.9999">dnsmasq</text></g><!--entity isleCommand--><g id="elem_isleCommand"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="129" x="466.5" y="7"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="109" x="476.5" y="30.9999">isle command line</text></g><!--entity isleDaemonRPC--><g id="elem_isleDaemonRPC"><ellipse cx="531" cy="139.2" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="82" x="490" y="170.1999">daemon.RPC</text></g><!--entity daemonClient--><g id="elem_daemonClient"><rect fill="#F1F1F1" height="36.7999" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="108" x="379" y="120.8"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="88" x="389" y="144.7999">daemon.Client</text></g><!--link rpcServer to rpcSocket--><g id="link_rpcServer_rpcSocket"><path d="M524.61,331.23 C498.98,305.04 456.7171,261.8377 441.8771,246.6777 " fill="none" id="rpcServer-to-rpcSocket" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="437.68,242.39,441.1173,251.6196,441.1776,245.963,446.8342,246.0234,437.68,242.39" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="38" x="495" y="298.6">handle</text></g><!--link rpcServer to daemonRPC--><g id="link_rpcServer_daemonRPC"><path d="M542,368.47 C542,392.91 542,430.35 542,448.49 " fill="none" id="rpcServer-to-daemonRPC" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="542,454.49,546,445.49,542,449.49,538,445.49,542,454.49" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="48" x="543" y="412.4">dispatch</text></g><!--link daemon to daemonRPC--><g id="link_daemon_daemonRPC"><path d="M498.11,463.8 C509.65,463.8 521.2,463.8 532.74,463.8 " fill="none" id="daemon-daemonRPC" style="stroke:#181818;stroke-width:1.0;"/></g><!--link daemon to networkA--><g id="link_daemon_networkA"><path d="M421.51,482.37 C407.35,499.55 389.7065,520.9403 375.4865,538.1903 " fill="none" id="daemon-to-networkA" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="371.67,542.82,380.4812,538.4198,374.8504,538.9619,374.3083,533.3311,371.67,542.82" style="stroke:#181818;stroke-width:1.0;"/></g><!--link daemon to networkB--><g id="link_daemon_networkB"><path d="M454.52,482.37 C472.63,499.55 495.7064,521.4413 513.8964,538.6913 " fill="none" id="daemon-to-networkB" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="518.25,542.82,514.472,533.7246,514.622,539.3795,508.9671,539.5294,518.25,542.82" style="stroke:#181818;stroke-width:1.0;"/></g><!--link isleCommand to isleDaemonRPC--><g id="link_isleCommand_isleDaemonRPC"><path d="M531,43.87 C531,68.31 531,105.75 531,123.89 " fill="none" id="isleCommand-to-isleDaemonRPC" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="531,129.89,535,120.89,531,124.89,527,120.89,531,129.89" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="95" x="532" y="87.8">issue commands</text></g><!--link daemonClient to isleDaemonRPC--><g id="link_daemonClient_isleDaemonRPC"><path d="M487.36,139.2 C498.84,139.2 510.32,139.2 521.79,139.2 " fill="none" id="daemonClient-isleDaemonRPC" style="stroke:#181818;stroke-width:1.0;"/></g><!--link daemonClient to rpcSocket--><g id="link_daemonClient_rpcSocket"><path d="M433,157.7 C433,180.08 433,211.52 433,224.77 " fill="none" id="daemonClient-to-rpcSocket" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="433,230.77,437,221.77,433,225.77,429,221.77,433,230.77" style="stroke:#181818;stroke-width:1.0;"/></g><!--link networkA to networkANebula--><g id="link_networkA_networkANebula"><path d="M284.23,565.67 C230.13,570.88 156.4,584.42 101,619 C84.3,629.43 74.06,642.6589 65.72,656.4189 " fill="none" id="networkA-to-networkANebula" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="62.61,661.55,70.6957,655.9267,65.2016,657.2741,63.8542,651.7801,62.61,661.55" style="stroke:#181818;stroke-width:1.0;"/></g><!--link networkA to networkAGarage1--><g id="link_networkA_networkAGarage1"><path d="M320.85,580.47 C300.68,590.9 275.4,604.79 254,619 C234.2,632.15 217.7412,645.2554 202.8312,657.8654 " fill="none" id="networkA-to-networkAGarage1" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="198.25,661.74,207.7049,658.9823,202.0677,658.5112,202.5388,652.874,198.25,661.74" style="stroke:#181818;stroke-width:1.0;"/></g><!--link networkA to networkAGarage2--><g id="link_networkA_networkAGarage2"><path d="M353.05,580.34 C348.14,602.42 341.093,634.0432 336.203,656.0232 " fill="none" id="networkA-to-networkAGarage2" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="334.9,661.88,340.759,653.9634,335.9858,656.9993,332.95,652.2261,334.9,661.88" style="stroke:#181818;stroke-width:1.0;"/></g><!--link networkA to networkADNSMasq--><g id="link_networkA_networkADNSMasq"><path d="M373.1,580.34 C393.14,602.42 423.1175,635.4572 443.0675,657.4372 " fill="none" id="networkA-to-networkADNSMasq" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="447.1,661.88,444.0131,652.5274,443.7396,658.1776,438.0893,657.9041,447.1,661.88" style="stroke:#181818;stroke-width:1.0;"/></g><!--link networkB to networkBNebula--><g id="link_networkB_networkBNebula"><path d="M544.75,580.34 C554.39,602.42 568.3485,634.4016 577.9485,656.3816 " fill="none" id="networkB-to-networkBNebula" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="580.35,661.88,580.4134,652.0313,578.3487,657.298,573.0821,655.2333,580.35,661.88" style="stroke:#181818;stroke-width:1.0;"/></g><!--link networkB to networkBDNSMasq--><g id="link_networkB_networkBDNSMasq"><path d="M574.44,580.46 C593.72,590.49 617.09,604 636,619 C651.91,631.62 663.5681,644.203 674.2081,657.023 " fill="none" id="networkB-to-networkBDNSMasq" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="678.04,661.64,675.3702,652.1599,674.8468,657.7925,669.2142,657.2691,678.04,661.64" style="stroke:#181818;stroke-width:1.0;"/></g><!--SRC=[bLAnQiCm5DpVLpmy9KCCoTWX42VGgQOqOyYWoceYB4kkvBIKqd_lisGb5Z65JaPt9xrxTtQrr2sph45kcjPeeRjzzwK4Mi4xfazA01oa8u3uXkaAbTJYYCnXZsu32BCvPXKJZT7vo_CsY_JEGuJ0OM2tIj88VpyW0G1u8my2CpygCDXQmuLp6Nu38hR6Tb9ZHg_Xtl1QT7wCRNauzPg39uNz4FOOIN-2dfqmMLqDzhS7ChWUUVIa5jsdiNLUXY_EDdCl6V3DjAX8H0Lu8rTRk5YiRnlW0vufJ8eyqUJv-kQJD9LqBUlusJyrHBL8DuaelJwsTmyNy0CmAj8FIvgZWTAvoxL_1-FUQ73QSqgEjmDe6Q_PYKeUXkC6-LcgAXOjOjLzZgyNnP9yImy5-aH_B3qqOqePZikqY4TFBgUKgodbAYWhxHhctXF1hjm_4TQ75A4arC7J91Tj_46kfiauzJwmuX-15UF09fOhxfShabyZNIxbXhk_]--></g></svg>