| <?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="643.2px" preserveAspectRatio="none" style="width:1296px;height:643px;" version="1.1" viewBox="0 0 1296 643" width="1296px" zoomAndPan="magnify"><defs><filter height="300%" id="ffihz7kya2wlh" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.4"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.8" dy="4.8" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#DDDDDD" height="617.1" style="stroke: #A80036; stroke-width: 1.2;" width="708" x="201.6" y="4.8"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45.6" x="532.8" y="19.2803">Hono</text><rect fill="#FFFFFF" filter="url(#ffihz7kya2wlh)" height="159.3563" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="451.8" y="316.7063"/><rect fill="#FFFFFF" filter="url(#ffihz7kya2wlh)" height="53.1188" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="809.4" y="369.825"/><rect fill="#FFFFFF" filter="url(#ffihz7kya2wlh)" height="53.1188" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="996.6" y="476.0625"/><rect fill="#FFFFFF" filter="url(#ffihz7kya2wlh)" height="498.6281" style="stroke: #000000; stroke-width: 2.4;" width="1267.2" x="15.6" y="110.0719"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="66" x2="66" y1="89.6719" y2="629.1"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="285.6" x2="285.6" y1="89.6719" y2="629.1"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="457.2" x2="457.2" y1="89.6719" y2="629.1"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="814.8" x2="814.8" y1="89.6719" y2="629.1"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="1002" x2="1002" y1="89.6719" y2="629.1"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="1214.4" x2="1214.4" y1="89.6719" y2="629.1"/><rect fill="#FEFECE" filter="url(#ffihz7kya2wlh)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="73.2" x="27.6" y="47.3156"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="56.4" x="36" y="71.3098">Device</text><rect fill="#FEFECE" filter="url(#ffihz7kya2wlh)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="154.8" x="206.4" y="27.7594"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="138" x="214.8" y="51.7535">Protocol Adapter</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="100.8" x="233.4" y="71.3098">instance #1</text><rect fill="#FEFECE" filter="url(#ffihz7kya2wlh)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="154.8" x="378" y="27.7594"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="138" x="386.4" y="51.7535">Protocol Adapter</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="100.8" x="405" y="71.3098">instance #2</text><rect fill="#FEFECE" filter="url(#ffihz7kya2wlh)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="174" x="726" y="27.7594"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="157.2" x="734.4" y="51.7535">Device Connection</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="126" x="750" y="71.3098">API component</text><rect fill="#FEFECE" filter="url(#ffihz7kya2wlh)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="166.8" x="916.8" y="27.7594"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="145.2" x="925.2" y="51.7535">AMQP messaging</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="67.2" x="966.6" y="71.3098">network</text><rect fill="#FEFECE" filter="url(#ffihz7kya2wlh)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="106.8" x="1159.2" y="47.3156"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="90" x="1167.6" y="71.3098">Application</text><rect fill="#FFFFFF" filter="url(#ffihz7kya2wlh)" height="159.3563" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="451.8" y="316.7063"/><rect fill="#FFFFFF" filter="url(#ffihz7kya2wlh)" height="53.1188" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="809.4" y="369.825"/><rect fill="#FFFFFF" filter="url(#ffihz7kya2wlh)" height="53.1188" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="996.6" y="476.0625"/><path d="M15.6,110.0719 L242.4,110.0719 L242.4,118.4719 L230.4,130.4719 L15.6,130.4719 L15.6,110.0719 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.2;"/><rect fill="none" height="498.6281" style="stroke: #000000; stroke-width: 2.4;" width="1267.2" x="15.6" y="110.0719"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="172.8" x="33.6" y="125.7521">Command handling</text><polygon fill="#A80036" points="1015.8,187.5094,1003.8,192.3094,1015.8,197.1094,1011,192.3094" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="1008.6" x2="1213.8" y1="192.3094" y2="192.3094"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="1023" y="168.0709">1</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="133.2" x="1038.6" y="149.9115">attach("receiver",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="168" x="1038.6" y="168.0709">"command_response/</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="157.2" x="1043.4" y="186.2303">TENANT/${replyId}")</text><polygon fill="#A80036" points="1015.8,240.6281,1003.8,245.4281,1015.8,250.2281,1011,245.4281" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="1008.6" x2="1213.8" y1="245.4281" y2="245.4281"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="1023" y="230.2693">2</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="124.8" x="1038.6" y="221.1896">attach("sender",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="162" x="1038.6" y="239.349">"command/TENANT")</text><polygon fill="#A80036" points="477,311.9063,465,316.7063,477,321.5062,472.2,316.7063" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="469.8" x2="1213.8" y1="316.7063" y2="316.7063"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="484.2" y="292.4678">3</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="226.8" x="499.8" y="274.3084">transfer("command/TENANT",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="310.8" x="504.6" y="292.4678">"command/TENANT/4711","${payload}")</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="225.6" x="514.2" y="310.6271">via AMQP messaging network</text><polygon fill="#A80036" points="795,365.025,807,369.825,795,374.625,799.8,369.825" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="463.8" x2="802.2" y1="369.825" y2="369.825"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="472.2" y="354.6662">4</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="242.4" x="487.8" y="345.5865">get command handling adapter</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="195.6" x="487.8" y="363.7459">instances for device 4711</text><polygon fill="#A80036" points="477,418.1438,465,422.9437,477,427.7438,472.2,422.9437" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 2.0,2.0;" x1="469.8" x2="814.2" y1="422.9437" y2="422.9437"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="484.2" y="407.785">5</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="296.4" x="499.8" y="398.7053">JSON containing adapter instance "#1"</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="236.4" x="499.8" y="416.8646">handling commands for "4711"</text><polygon fill="#A80036" points="982.2,471.2625,994.2,476.0625,982.2,480.8625,987,476.0625" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="457.8" x2="989.4" y1="476.0625" y2="476.0625"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="466.2" y="460.9037">6</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="254.4" x="481.8" y="451.824">transfer("command_internal/#1",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="310.8" x="486.6" y="469.9834">"command/TENANT/4711","${payload}")</text><polygon fill="#A80036" points="299.4,524.3813,287.4,529.1813,299.4,533.9812,294.6,529.1813" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="292.2" x2="1001.4" y1="529.1813" y2="529.1813"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="306.6" y="514.0225">7</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="254.4" x="322.2" y="504.9428">transfer("command_internal/#1",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="310.8" x="327" y="523.1021">"command/TENANT/4711","${payload}")</text><polygon fill="#A80036" points="79.8,559.3406,67.8,564.1406,79.8,568.9406,75,564.1406" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="72.6" x2="285" y1="564.1406" y2="564.1406"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="87" y="558.0615">8</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="175.2" x="102.6" y="558.0615">Command is published</text><polygon fill="#A80036" points="1200.6,594.3,1212.6,599.1,1200.6,603.9,1205.4,599.1" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="286.2" x2="1207.8" y1="599.1" y2="599.1"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="294.6" y="593.0209">9</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="411.6" x="310.2" y="593.0209">disposition("accepted") via AMQP messaging network</text><!--MD5=[3bd9add0052cc62a66bf16f931f011f7] |
| participant Device order 10 |
| participant "Protocol Adapter\ninstance #1" order 30 |
| participant "Protocol Adapter\ninstance #2" order 40 |
| participant "Device Connection\nAPI component" order 50 |
| participant "AMQP messaging \nnetwork" order 60 |
| participant Application order 70 |
| Application -> "AMQP messaging \nnetwork": attach("receiver", \n"command_response/\n TENANT/${replyId}") |
| Application -> "AMQP messaging \nnetwork": attach("sender", \n"command/TENANT") |
| Application -> "Protocol Adapter\ninstance #2": transfer("command/TENANT",\n "command/TENANT/4711","${payload}")\n via AMQP messaging network |
| activate "Protocol Adapter\ninstance #2" |
| "Protocol Adapter\ninstance #2" -> "Device Connection\nAPI component": get command handling adapter \ninstances for device 4711 |
| activate "Device Connection\nAPI component" |
| return JSON containing adapter instance "#1" \nhandling commands for "4711" |
| "Protocol Adapter\ninstance #2" -> "AMQP messaging \nnetwork": transfer("command_internal/#1",\n "command/TENANT/4711","${payload}") |
| deactivate "Protocol Adapter\ninstance #2" |
| activate "AMQP messaging \nnetwork" |
| "AMQP messaging \nnetwork" -> "Protocol Adapter\ninstance #1": transfer("command_internal/#1",\n "command/TENANT/4711","${payload}") |
| deactivate "AMQP messaging \nnetwork" |
| "Protocol Adapter\ninstance #1" -> Device: Command is published |
| "Protocol Adapter\ninstance #1" -> Application: disposition("accepted") via AMQP messaging network |
| PlantUML version 1.2019.11(Sun Sep 22 12:02:15 CEST 2019) |
| (GPL source distribution) |
| Java Runtime: OpenJDK Runtime Environment |
| JVM: OpenJDK 64-Bit Server VM |
| Java Version: 11.0.4+11-post-Ubuntu-1ubuntu218.04.3 |