Last active
July 18, 2019 19:52
-
-
Save kenwebb/5bd738c3b32db7911fc9d1e83286f5ad to your computer and use it in GitHub Desktop.
Bigraphs 2019 03 - Topology-Aware Access Control Model for Cyber-Physical Space
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!--Xholon Workbook http://www.primordion.com/Xholon/gwt/ MIT License, Copyright (C) Ken Webb, Thu Jul 18 2019 15:51:51 GMT-0400 (Eastern Daylight Time)--> | |
<XholonWorkbook> | |
<Notes><![CDATA[ | |
Xholon | |
------ | |
Title: Bigraphs 2019 03 - Topology-Aware Access Control Model for Cyber-Physical Space | |
Description: | |
Url: http://www.primordion.com/Xholon/gwt/ | |
InternalName: 5bd738c3b32db7911fc9d1e83286f5ad | |
Keywords: | |
My Notes | |
-------- | |
July 10, 2019 | |
http://127.0.0.1:8888/Xholon.html?app=Bigraphs+2019+03+-+Topology-Aware+Access+Control+Model+for+Cyber-Physical+Space&src=lstr&gui=clsc&jslib=BigraphParser | |
the three types of Object | |
========================= | |
type shape instances | |
-------------- -------- --------------------- | |
Cyberobject triangle the three File objcts | |
Physicalobject hexagon Safe, Box | |
Hybridobject ellipse Server, Cloudlet | |
also: | |
Role circle | |
Location rectangle | |
User roundedrectangle | |
ports, links, edges | |
------------------- | |
- Bigraph edges are hyperedges, and are not inherently directional | |
- but this physical model has doors which are inherently bi-directional | |
- "The topology configuration model only describes the static characteristics of the operational environment." [1, page 502] | |
- the security (TA-CPAC) model specifies permissions and constraints on the possibilities inherent in the topology configuration model | |
- so my basic Bigraph and Xholon model has doors that are implemented by ports in pairs of Lloc objects (rooms) | |
- "topology constraints" | |
- so there are three levels: | |
(1) bigraph ports, and non-directional hyperedges between ports | |
(2) the bank branch model depicted in Fig. 1 [1] | |
(3) security permissions and constraints as defined in [1] | |
To repeat this Xholon export: | |
---------------------------- | |
$wnd.xh.xport("Graphviz", $wnd.xh.root().parent().xpath("Chameleon/TheSystem/Bigraph"), '{"gvFileExt":".gv","gvGraph":"digraph","layout":"dot","edgeOp":"->","gvCluster":"cluster","shouldShowStateMachineEntities":false,"filter":"--Behavior,Script","nameTemplateNodeId":"^^^^i^","nameTemplateNodeLabel":"R^^^^^","shouldQuoteLabels":true,"shouldShowLinks":true,"shouldShowLinkLabels":false,"shouldSpecifyLayout":false,"maxLabelLen":-1,"shouldColor":true,"defaultNodeColor":"#f0f8ff","bgGraphColor":"white","shouldSpecifyShape":true,"shape":"box","shouldSpecifySize":true,"size":"16","shouldSpecifyFontname":true,"fontname":"\"Courier New\"","shouldSpecifyArrowhead":false,"arrowhead":"vee","shouldSpecifyStylesheet":true,"stylesheet":"Xholon.css","shouldSpecifyRankdir":false,"rankdir":"LR","shouldDisplayGraph":true,"outputFormat":"svg"}'); | |
References | |
---------- | |
(1) https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8698208 | |
Specification and Verification of a Topology-Aware Access ControlModel for Cyber-Physical Space | |
Yan Cao, Zhiqiu Huang, Shuanglong Kan, Dajuan Fan, and Yang Yang | |
2019 | |
]]></Notes> | |
<_-.XholonClass> | |
<TheSystem/> | |
<BigraphParser superClass="script"/> | |
</_-.XholonClass> | |
<xholonClassDetails> | |
<BigraphParser><DefaultContent>@BigraphParser</DefaultContent></BigraphParser> | |
<Avatar><Color>rgba(255,0,0,1.0)</Color></Avatar> | |
</xholonClassDetails> | |
<TheSystem> | |
<Bigraph roleName="0" savedata="true"><Attribute_String><![CDATA[ | |
B=(VB,EB,PB,ctrlB,prntB,linkB):〈m,X〉→〈n,Y〉, | |
m=0,X=∅,n=1,Y={q}, | |
Σ=({User,Role,Lloc,Object,Hybridobject,Physicalobject,Cyberobject},{(User,1),(Role,1),(Lloc,6),(Object,0),(Hybridobject,1),(Physicalobject,1),(Cyberobject,0)}), | |
# User | |
VB={Alice, Bob, Tom, Jone, Clark}, | |
# Role (note that "Role" is already a Xholon class name but should be OK to use here) | |
VB={president, lobbymanager, accountant, teller, clientmanager}, | |
# Cyberobject | |
VB={file1, file2, file3}, | |
# Physicalobject | |
VB={box, safe}, | |
# Hybridobject | |
VB={server, cloudlet}, | |
# other Object | |
VB={Alicephone, Bobphone, Tomphone, Jonephone, Clarkphone}, | |
# Lloc | |
VB={saferoom, accountantoffice, serverroom, presidentoffice, clientmanageroffice, telleroffice, mainarea, corridor}, | |
# Loco | |
VB=∅, | |
# edges | |
EB=∅, | |
# ports | |
PB={p(mainarea,1),p(corridor,1),p(corridor,2),p(corridor,3),p(corridor,4),p(corridor,5),p(presidentoffice,1)}, | |
ctrlB={(Alice,User),(Bob,User),(Tom,User),(Jone,User),(Clark,User)}, | |
ctrlB={(president,Role),(lobbymanager,Role),(accountant,Role),(teller,Role),(clientmanager,Role)}, | |
ctrlB={(server,Hybridobject),(cloudlet,Hybridobject),(box,Physicalobject),(safe,Physicalobject),(file1,Cyberobject),(file2,Cyberobject),(file3,Cyberobject),(Alicephone,Object),(Bobphone,Object),(Tomphone,Object),(Jonephone,Object),(Clarkphone,Object)}, | |
ctrlB={(saferoom,Lloc),(accountantoffice,Lloc),(serverroom,Lloc),(presidentoffice,Lloc),(clientmanageroffice,Lloc),(telleroffice,Lloc),(mainarea,Lloc),(corridor,Lloc)}, | |
# UserLocation | |
prntB={(Alice,presidentoffice),(Bob,mainarea),(Clark,accountantoffice),(Tom,telleroffice),(Jone,corridor)}, | |
# RoleLocation | |
prntB={(president,presidentoffice),(lobbymanager,mainarea),(accountant,accountantoffice),(teller,telleroffice),(clientmanager,corridor)}, | |
# ObjectLocation | |
prntB={(server,serverroom),(cloudlet,serverroom),(box,telleroffice),(safe,saferoom),(file1,server),(file2,server),(file3,cloudlet),(Alicephone,presidentoffice),(Bobphone,mainarea),(Clarkphone,accountantoffice),(Tomphone,telleroffice),(Jonephone,corridor)}, | |
# links (port bindings) these are doors between rooms; doors are inherently two-directional | |
linkB={(p(mainarea,1),corridor),(p(corridor,1),serverroom),(p(corridor,2),telleroffice),(p(corridor,3),presidentoffice),(p(corridor,4),clientmanageroffice),(p(corridor,5),accountantoffice),(p(presidentoffice,1),saferoom)}, | |
# links (reverse port bindings) | |
linkB={(p(corridor,6),mainarea),(p(serverroom,1),corridor),(p(telleroffice,1),corridor),(p(presidentoffice,2),corridor),(p(clientmanageroffice,1),corridor),(p(accountantoffice,1),corridor),(p(saferoom,1),presidentoffice)}, | |
# Xholon IDecoration: _Color, Symbol | |
_Color=({red,orange,yellow,green,blue,purple,indigo},{(User,red),(Role,orange),(Lloc,yellow),(Object,green),(Hybridobject,blue),(Physicalobject,purple),(Cyberobject,indigo)}), | |
_Symbol=({circle,triangle,hexagon,ellipse,rectangle,roundedrectangle},{(User,roundedrectangle),(Role,circle),(Lloc,rectangle),(Hybridobject,ellipse),(Physicalobject,hexagon),(Cyberobject,triangle)}), | |
_Font=({Arial-BOLD-14},{(User,Arial-BOLD-14)}), | |
_Anno=({This is an annotation.},{(User,This is an annotation.)}) | |
]]></Attribute_String> | |
<BigraphParser/> | |
</Bigraph> | |
<Bigraph roleName="1"><Attribute_String><![CDATA[ | |
prntB={(corridor,mainarea),(accountantoffice,corridor),(serverroom,corridor),(presidentoffice,corridor),(clientmanageroffice,corridor),(telleroffice,corridor),(saferoom,presidentoffice)}, | |
prntB={(Alice,presidentoffice),(Bob,mainarea),(Clark,accountantoffice),(Tom,telleroffice),(Jone,corridor)}, | |
prntB={(president,Alice),(lobbymanager,Bob),(accountant,Clark),(teller,Tom),(clientmanager,Jone)}, | |
prntB={(server,serverroom),(cloudlet,serverroom),(box,telleroffice),(safe,saferoom),(file1,server),(file2,server),(file3,cloudlet)} | |
]]></Attribute_String> | |
<script><![CDATA[ | |
$wnd.console.log("Starting Bigraph1 script ..."); | |
var bigraph1 = this.parent(); | |
this.remove(); | |
var bigraph0 = bigraph1.prev(); | |
bigraph1.println(bigraph0.name()); | |
bigraph1.println(bigraph1.name()); | |
var starr = bigraph0.subtreeAsArray(); | |
bigraph1.println(starr.length); | |
var xmlstr = '<_-.st>'; | |
xmlstr += '<Chameleon multiplicity = "' + starr.length + '"/>'; | |
xmlstr += '</_-.st>'; | |
bigraph1.append(xmlstr); | |
bigraph1["nodeDict"] = {}; | |
var node = bigraph1.first(); | |
for (var ix = 0; ix < starr.length; ix++) { | |
node["arrow"] = starr[ix]; | |
node.xhc(starr[ix].xhc().name()); | |
node.role(starr[ix].role()); | |
bigraph1["nodeDict"][node.role()] = node; | |
node = node.next(); | |
} | |
$wnd.console.log(bigraph1["nodeDict"]); | |
bigraph1.append("<BigraphParser/>"); | |
//# sourceURL=Bigraph1Initializer.js | |
]]></script> | |
<!--<BigraphParser/>NO instead, the script creates BigraphParser dynamically, to ensure the correct sequence of initializations --> | |
</Bigraph> | |
<Bigraph roleName="2"><Attribute_String><![CDATA[ | |
prntB={(corridor,mainarea),(accountantoffice,corridor),(serverroom,corridor),(presidentoffice,corridor),(clientmanageroffice,corridor),(telleroffice,corridor),(saferoom,presidentoffice)}, | |
prntB={(president,presidentoffice),(lobbymanager,mainarea),(accountant,accountantoffice),(teller,telleroffice),(clientmanager,corridor)}, | |
prntB={(server,serverroom),(cloudlet,serverroom),(box,telleroffice),(safe,saferoom),(file1,server),(file2,server),(file3,cloudlet)} | |
]]></Attribute_String> | |
<script><![CDATA[ | |
$wnd.console.log("Starting Bigraph2 script ..."); | |
var bigraph2 = this.parent(); | |
this.remove(); | |
var bigraph0 = bigraph2.prev().prev(); | |
bigraph2.println(bigraph0.name()); | |
bigraph2.println(bigraph2.name()); | |
var starr = bigraph0.subtreeAsArray(); | |
bigraph2.println(starr.length); | |
var xmlstr = '<_-.st>'; | |
xmlstr += '<Chameleon multiplicity = "' + starr.length + '"/>'; | |
xmlstr += '</_-.st>'; | |
bigraph2.append(xmlstr); | |
bigraph2["nodeDict"] = {}; | |
var node = bigraph2.first(); | |
for (var ix = 0; ix < starr.length; ix++) { | |
node["arrow"] = starr[ix]; | |
node.xhc(starr[ix].xhc().name()); | |
node.role(starr[ix].role()); | |
bigraph2["nodeDict"][node.role()] = node; | |
node = node.next(); | |
} | |
$wnd.console.log(bigraph2["nodeDict"]); | |
bigraph2.append("<BigraphParser/>"); | |
//# sourceURL=Bigraph2Initializer.js | |
]]></script> | |
<!--<BigraphParser/>NO instead, the script creates BigraphParser dynamically, to ensure the correct sequence of initializations --> | |
</Bigraph> | |
<Animate duration="1" selection="#xhanim" xpath="./TheSystem" cssStyle=".d3cpnode circle {stroke-width: 0.5px;}" efParams="{"selection":"#xhanim","sort":"disable","width":700,"height":700,"mode":"tween","labelContainers":true,"includeClass":true,"includeId":true,"shape":"circle"}"/> | |
</TheSystem> | |
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml, | |
<svg width="1152pt" height="88pt" | |
viewBox="0.00 0.00 1152.00 87.57" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<g id="Bigraph" class="graph" transform="scale(0.531365 0.531365) rotate(0) translate(4 160.8)"> | |
<title>46</title> | |
<polygon fill="white" stroke="none" points="-4,4 -4,-160.8 2164,-160.8 2164,4 -4,4"/> | |
<text text-anchor="middle" x="1080" y="-8.2" font-family="Courier New" font-size="14.00">0</text> | |
<g id="Bigraph/Lloc[@roleName='saferoom']" class="cluster"><title>cluster96</title> | |
<polygon fill="white" stroke="black" points="8,-40.8 8,-116.8 91,-116.8 91,-40.8 8,-40.8"/> | |
<text text-anchor="middle" x="49.5" y="-100.2" font-family="Courier New" font-size="14.00">saferoom</text> | |
</g> | |
<g id="Bigraph/Lloc[@roleName='accountantoffice']" class="cluster"><title>cluster98</title> | |
<polygon fill="white" stroke="black" points="99,-40.8 99,-116.8 409,-116.8 409,-40.8 99,-40.8"/> | |
<text text-anchor="middle" x="254" y="-100.2" font-family="Courier New" font-size="14.00">accountantoffice</text> | |
</g> | |
<g id="Bigraph/Lloc[@roleName='serverroom']" class="cluster"><title>cluster100</title> | |
<polygon fill="white" stroke="black" points="417,-32.8 417,-148.8 674,-148.8 674,-32.8 417,-32.8"/> | |
<text text-anchor="middle" x="545.5" y="-132.2" font-family="Courier New" font-size="14.00">serverroom</text> | |
</g> | |
<g id="Bigraph/Lloc[@roleName='serverroom']/Hybridobject[@roleName='server']" class="cluster"><title>cluster72</title> | |
<polygon fill="white" stroke="black" points="516,-40.8 516,-116.8 666,-116.8 666,-40.8 516,-40.8"/> | |
<text text-anchor="middle" x="591" y="-100.2" font-family="Courier New" font-size="14.00">server</text> | |
</g> | |
<g id="Bigraph/Lloc[@roleName='serverroom']/Hybridobject[@roleName='cloudlet']" class="cluster"><title>cluster74</title> | |
<polygon fill="white" stroke="black" points="425,-40.8 425,-116.8 508,-116.8 508,-40.8 425,-40.8"/> | |
<text text-anchor="middle" x="466.5" y="-100.2" font-family="Courier New" font-size="14.00">cloudlet</text> | |
</g> | |
<g id="Bigraph/Lloc[@roleName='presidentoffice']" class="cluster"><title>cluster102</title> | |
<polygon fill="white" stroke="black" points="682,-40.8 682,-116.8 984,-116.8 984,-40.8 682,-40.8"/> | |
<text text-anchor="middle" x="833" y="-100.2" font-family="Courier New" font-size="14.00">presidentoffice</text> | |
</g> | |
<g id="Bigraph/Lloc[@roleName='telleroffice']" class="cluster"><title>cluster106</title> | |
<polygon fill="white" stroke="black" points="1179,-40.8 1179,-116.8 1507,-116.8 1507,-40.8 1179,-40.8"/> | |
<text text-anchor="middle" x="1343" y="-100.2" font-family="Courier New" font-size="14.00">telleroffice</text> | |
</g> | |
<g id="Bigraph/Lloc[@roleName='mainarea']" class="cluster"><title>cluster108</title> | |
<polygon fill="white" stroke="black" points="1515,-40.8 1515,-116.8 1821,-116.8 1821,-40.8 1515,-40.8"/> | |
<text text-anchor="middle" x="1668" y="-100.2" font-family="Courier New" font-size="14.00">mainarea</text> | |
</g> | |
<g id="Bigraph/Lloc[@roleName='corridor']" class="cluster"><title>cluster110</title> | |
<polygon fill="white" stroke="black" points="1829,-40.8 1829,-116.8 2152,-116.8 2152,-40.8 1829,-40.8"/> | |
<text text-anchor="middle" x="1990.5" y="-100.2" font-family="Courier New" font-size="14.00">corridor</text> | |
</g> | |
<!-- 78 --> | |
<g id="Bigraph/Lloc[@roleName='saferoom']/Physicalobject" class="node"><title>78</title> | |
<polygon fill="purple" stroke="black" points="76,-84.8 22,-84.8 22,-48.8 76,-48.8 76,-84.8"/> | |
<text text-anchor="middle" x="49" y="-62.6" font-family="Courier New" font-size="14.00">safe</text> | |
</g> | |
<!-- 60 --> | |
<g id="Bigraph/Lloc[@roleName='accountantoffice']/User" class="node"><title>60</title> | |
<polygon fill="red" stroke="black" points="400.495,-84.8 343.505,-84.8 343.505,-48.8 400.495,-48.8 400.495,-84.8"/> | |
<text text-anchor="middle" x="372" y="-62.6" font-family="Courier New" font-size="14.00">Clark</text> | |
</g> | |
<!-- 66 --> | |
<g id="Bigraph/Lloc[@roleName='accountantoffice']/Role" class="node"><title>66</title> | |
<polygon fill="orange" stroke="black" points="324.49,-84.8 225.51,-84.8 225.51,-48.8 324.49,-48.8 324.49,-84.8"/> | |
<text text-anchor="middle" x="275" y="-62.6" font-family="Courier New" font-size="14.00">accountant</text> | |
</g> | |
<!-- 94 --> | |
<g id="Bigraph/Lloc[@roleName='accountantoffice']/Object" class="node"><title>94</title> | |
<polygon fill="green" stroke="black" points="206.49,-84.8 107.51,-84.8 107.51,-48.8 206.49,-48.8 206.49,-84.8"/> | |
<text text-anchor="middle" x="157" y="-62.6" font-family="Courier New" font-size="14.00">Clarkphone</text> | |
</g> | |
<!-- 80 --> | |
<g id="Bigraph/Lloc[@roleName='serverroom']/Hybridobject[@roleName='server']/Cyberobject[@roleName='file1']" class="node"><title>80</title> | |
<polygon fill="indigo" stroke="black" points="657.495,-84.8 600.505,-84.8 600.505,-48.8 657.495,-48.8 657.495,-84.8"/> | |
<text text-anchor="middle" x="629" y="-62.6" font-family="Courier New" font-size="14.00">file1</text> | |
</g> | |
<!-- 82 --> | |
<g id="Bigraph/Lloc[@roleName='serverroom']/Hybridobject[@roleName='server']/Cyberobject[@roleName='file2']" class="node"><title>82</title> | |
<polygon fill="indigo" stroke="black" points="581.495,-84.8 524.505,-84.8 524.505,-48.8 581.495,-48.8 581.495,-84.8"/> | |
<text text-anchor="middle" x="553" y="-62.6" font-family="Courier New" font-size="14.00">file2</text> | |
</g> | |
<!-- 84 --> | |
<g id="Bigraph/Lloc[@roleName='serverroom']/Hybridobject[@roleName='cloudlet']/Cyberobject" class="node"><title>84</title> | |
<polygon fill="indigo" stroke="black" points="494.495,-84.8 437.505,-84.8 437.505,-48.8 494.495,-48.8 494.495,-84.8"/> | |
<text text-anchor="middle" x="466" y="-62.6" font-family="Courier New" font-size="14.00">file3</text> | |
</g> | |
<!-- 52 --> | |
<g id="Bigraph/Lloc[@roleName='presidentoffice']/User" class="node"><title>52</title> | |
<polygon fill="red" stroke="black" points="975.495,-84.8 918.505,-84.8 918.505,-48.8 975.495,-48.8 975.495,-84.8"/> | |
<text text-anchor="middle" x="947" y="-62.6" font-family="Courier New" font-size="14.00">Alice</text> | |
</g> | |
<!-- 62 --> | |
<g id="Bigraph/Lloc[@roleName='presidentoffice']/Role" class="node"><title>62</title> | |
<polygon fill="orange" stroke="black" points="899.193,-84.8 808.807,-84.8 808.807,-48.8 899.193,-48.8 899.193,-84.8"/> | |
<text text-anchor="middle" x="854" y="-62.6" font-family="Courier New" font-size="14.00">president</text> | |
</g> | |
<!-- 86 --> | |
<g id="Bigraph/Lloc[@roleName='presidentoffice']/Object" class="node"><title>86</title> | |
<polygon fill="green" stroke="black" points="789.49,-84.8 690.51,-84.8 690.51,-48.8 789.49,-48.8 789.49,-84.8"/> | |
<text text-anchor="middle" x="740" y="-62.6" font-family="Courier New" font-size="14.00">Alicephone</text> | |
</g> | |
<!-- 104 --> | |
<g id="Bigraph/Lloc[@roleName='clientmanageroffice']" class="node"><title>104</title> | |
<polygon fill="yellow" stroke="black" points="1169.18,-84.8 994.818,-84.8 994.818,-48.8 1169.18,-48.8 1169.18,-84.8"/> | |
<text text-anchor="middle" x="1082" y="-62.6" font-family="Courier New" font-size="14.00">clientmanageroffice</text> | |
</g> | |
<!-- 56 --> | |
<g id="Bigraph/Lloc[@roleName='telleroffice']/User" class="node"><title>56</title> | |
<polygon fill="red" stroke="black" points="1499,-84.8 1445,-84.8 1445,-48.8 1499,-48.8 1499,-84.8"/> | |
<text text-anchor="middle" x="1472" y="-62.6" font-family="Courier New" font-size="14.00">Tom</text> | |
</g> | |
<!-- 68 --> | |
<g id="Bigraph/Lloc[@roleName='telleroffice']/Role" class="node"><title>68</title> | |
<polygon fill="orange" stroke="black" points="1427.29,-84.8 1360.71,-84.8 1360.71,-48.8 1427.29,-48.8 1427.29,-84.8"/> | |
<text text-anchor="middle" x="1394" y="-62.6" font-family="Courier New" font-size="14.00">teller</text> | |
</g> | |
<!-- 76 --> | |
<g id="Bigraph/Lloc[@roleName='telleroffice']/Physicalobject" class="node"><title>76</title> | |
<polygon fill="purple" stroke="black" points="1343,-84.8 1289,-84.8 1289,-48.8 1343,-48.8 1343,-84.8"/> | |
<text text-anchor="middle" x="1316" y="-62.6" font-family="Courier New" font-size="14.00">box</text> | |
</g> | |
<!-- 90 --> | |
<g id="Bigraph/Lloc[@roleName='telleroffice']/Object" class="node"><title>90</title> | |
<polygon fill="green" stroke="black" points="1270.39,-84.8 1187.61,-84.8 1187.61,-48.8 1270.39,-48.8 1270.39,-84.8"/> | |
<text text-anchor="middle" x="1229" y="-62.6" font-family="Courier New" font-size="14.00">Tomphone</text> | |
</g> | |
<!-- 54 --> | |
<g id="Bigraph/Lloc[@roleName='mainarea']/User" class="node"><title>54</title> | |
<polygon fill="red" stroke="black" points="1813,-84.8 1759,-84.8 1759,-48.8 1813,-48.8 1813,-84.8"/> | |
<text text-anchor="middle" x="1786" y="-62.6" font-family="Courier New" font-size="14.00">Bob</text> | |
</g> | |
<!-- 64 --> | |
<g id="Bigraph/Lloc[@roleName='mainarea']/Role" class="node"><title>64</title> | |
<polygon fill="orange" stroke="black" points="1741.09,-84.8 1624.91,-84.8 1624.91,-48.8 1741.09,-48.8 1741.09,-84.8"/> | |
<text text-anchor="middle" x="1683" y="-62.6" font-family="Courier New" font-size="14.00">lobbymanager</text> | |
</g> | |
<!-- 88 --> | |
<g id="Bigraph/Lloc[@roleName='mainarea']/Object" class="node"><title>88</title> | |
<polygon fill="green" stroke="black" points="1606.39,-84.8 1523.61,-84.8 1523.61,-48.8 1606.39,-48.8 1606.39,-84.8"/> | |
<text text-anchor="middle" x="1565" y="-62.6" font-family="Courier New" font-size="14.00">Bobphone</text> | |
</g> | |
<!-- 58 --> | |
<g id="Bigraph/Lloc[@roleName='corridor']/User" class="node"><title>58</title> | |
<polygon fill="red" stroke="black" points="2144,-84.8 2090,-84.8 2090,-48.8 2144,-48.8 2144,-84.8"/> | |
<text text-anchor="middle" x="2117" y="-62.6" font-family="Courier New" font-size="14.00">Jone</text> | |
</g> | |
<!-- 70 --> | |
<g id="Bigraph/Lloc[@roleName='corridor']/Role" class="node"><title>70</title> | |
<polygon fill="orange" stroke="black" points="2071.39,-84.8 1946.61,-84.8 1946.61,-48.8 2071.39,-48.8 2071.39,-84.8"/> | |
<text text-anchor="middle" x="2009" y="-62.6" font-family="Courier New" font-size="14.00">clientmanager</text> | |
</g> | |
<!-- 92 --> | |
<g id="Bigraph/Lloc[@roleName='corridor']/Object" class="node"><title>92</title> | |
<polygon fill="green" stroke="black" points="1928.19,-84.8 1837.81,-84.8 1837.81,-48.8 1928.19,-48.8 1928.19,-84.8"/> | |
<text text-anchor="middle" x="1883" y="-62.6" font-family="Courier New" font-size="14.00">Jonephone</text> | |
</g> | |
</g> | |
</svg> | |
]]></Attribute_String><Attribute_String roleName="setup">${MODELNAME_DEFAULT},${SVGURI_DEFAULT}</Attribute_String></SvgClient> | |
</XholonWorkbook> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment