blob: f0ec01846e34c0b2c6d4eaa1c735a4ae1598408a [file] [log] [blame]
<?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="620.4px" preserveAspectRatio="none" style="width:1166px;height:620px;" version="1.1" viewBox="0 0 1166 620" width="1166.4px" zoomAndPan="magnify"><defs><filter height="300%" id="fgdssr93bvf" 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="594.1406" style="stroke: #A80036; stroke-width: 1.2;" width="439.2" x="177" y="4.8"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45.6" x="373.8" y="19.2803">Hono</text><rect fill="#FFFFFF" filter="url(#fgdssr93bvf)" height="136.3969" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="501" y="316.7063"/><rect fill="#FFFFFF" filter="url(#fgdssr93bvf)" height="53.1188" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="867" y="453.1031"/><rect fill="#FFFFFF" filter="url(#fgdssr93bvf)" height="475.6688" style="stroke: #000000; stroke-width: 2.4;" width="1137.6" 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="606.1406"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="286.2" x2="286.2" y1="89.6719" y2="606.1406"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="507" x2="507" y1="89.6719" y2="606.1406"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="872.4" x2="872.4" y1="89.6719" y2="606.1406"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="1084.8" x2="1084.8" y1="89.6719" y2="606.1406"/><rect fill="#FEFECE" filter="url(#fgdssr93bvf)" 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(#fgdssr93bvf)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="204" x="181.8" y="27.7594"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="187.2" x="190.2" y="51.7535">Hono Protocol Adapter</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="86.4" x="240.6" y="71.3098">instance 1</text><rect fill="#FEFECE" filter="url(#fgdssr93bvf)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="204" x="402.6" y="27.7594"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="187.2" x="411" y="51.7535">Hono Protocol Adapter</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="86.4" x="461.4" y="71.3098">instance 2</text><rect fill="#FEFECE" filter="url(#fgdssr93bvf)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="166.8" x="787.2" y="27.7594"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="145.2" x="795.6" y="51.7535">AMQP messaging</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="67.2" x="837" y="71.3098">network</text><rect fill="#FEFECE" filter="url(#fgdssr93bvf)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="106.8" x="1029.6" y="47.3156"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="90" x="1038" y="71.3098">Application</text><rect fill="#FFFFFF" filter="url(#fgdssr93bvf)" height="136.3969" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="501" y="316.7063"/><rect fill="#FFFFFF" filter="url(#fgdssr93bvf)" height="53.1188" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="867" y="453.1031"/><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="475.6688" style="stroke: #000000; stroke-width: 2.4;" width="1137.6" 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="886.2,187.5094,874.2,192.3094,886.2,197.1094,881.4,192.3094" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="879" x2="1084.2" 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="893.4" y="168.0709">1</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="133.2" x="909" y="149.9115">attach("receiver",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="168" x="909" y="168.0709">"command_response/</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="157.2" x="913.8" y="186.2303">TENANT/${replyId}")</text><polygon fill="#A80036" points="886.2,240.6281,874.2,245.4281,886.2,250.2281,881.4,245.4281" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="879" x2="1084.2" 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="893.4" y="230.2693">2</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="124.8" x="909" y="221.1896">attach("sender",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="162" x="909" y="239.349">"command/TENANT")</text><polygon fill="#A80036" points="526.2,311.9063,514.2,316.7063,526.2,321.5062,521.4,316.7063" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="519" x2="1084.2" 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="533.4" y="292.4678">3</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="226.8" x="549" y="274.3084">transfer("command/TENANT",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="310.8" x="553.8" 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="563.4" y="310.6271">via AMQP messaging network</text><path d="M388.8,332.3063 L388.8,398.3063 L619.2,398.3063 L619.2,344.3063 L607.2,332.3063 L388.8,332.3063 " fill="#FBFB77" filter="url(#fgdssr93bvf)" style="stroke: #A80036; stroke-width: 1.2;"/><path d="M607.2,332.3063 L607.2,344.3063 L619.2,344.3063 L607.2,332.3063 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.2;"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="194.4" x="396" y="352.7865">Check if command needs</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="196.8" x="396" y="370.9459">to be mapped to gateway</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="205.2" x="396" y="389.1053">(no mapping needed here)</text><polygon fill="#A80036" points="852.6,448.3031,864.6,453.1031,852.6,457.9031,857.4,453.1031" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="507" x2="859.8" y1="453.1031" y2="453.1031"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="515.4" y="437.9443">4</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="244.8" x="531" y="428.8646">transfer("control/TENANT/4711",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="310.8" x="535.8" y="447.024">"command/TENANT/4711","${payload}")</text><polygon fill="#A80036" points="299.4,501.4219,287.4,506.2219,299.4,511.0219,294.6,506.2219" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="292.2" x2="871.8" y1="506.2219" y2="506.2219"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="306.6" y="491.0631">5</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="244.8" x="322.2" y="481.9834">transfer("control/TENANT/4711",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="310.8" x="327" y="500.1428">"command/TENANT/4711","${payload}")</text><polygon fill="#A80036" points="79.8,536.3813,67.8,541.1813,79.8,545.9812,75,541.1813" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="72.6" x2="285" y1="541.1813" y2="541.1813"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="87" y="535.1021">6</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="175.2" x="102.6" y="535.1021">Command is published</text><polygon fill="#A80036" points="1071,571.3406,1083,576.1406,1071,580.9406,1075.8,576.1406" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="286.2" x2="1078.2" y1="576.1406" y2="576.1406"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="294.6" y="570.0615">7</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="411.6" x="310.2" y="570.0615">disposition("accepted") via AMQP messaging network</text><!--MD5=[71ddd732be6e84b05c80e4cf67a00485]
@startuml
scale 1.2
hide footbox
participant Device order 10
box "Hono"
participant "Hono Protocol Adapter\ninstance 1" order 30
participant "Hono Protocol Adapter\ninstance 2" order 40
end box
participant "AMQP messaging \nnetwork" order 60
participant Application order 70
autonumber
group Command handling
Application -> "AMQP messaging \nnetwork": attach("receiver", \n"command_response/\n TENANT/${replyId}")
Application -> "AMQP messaging \nnetwork": attach("sender", \n"command/TENANT")
Application -> "Hono Protocol Adapter\ninstance 2": transfer("command/TENANT",\n "command/TENANT/4711","${payload}")\n via AMQP messaging network
activate "Hono Protocol Adapter\ninstance 2"
note over "Hono Protocol Adapter\ninstance 2"
Check if command needs
to be mapped to gateway
(no mapping needed here)
end note
"Hono Protocol Adapter\ninstance 2" -> "AMQP messaging \nnetwork": transfer("control/TENANT/4711",\n "command/TENANT/4711","${payload}")
deactivate "Hono Protocol Adapter\ninstance 2"
activate "AMQP messaging \nnetwork"
"AMQP messaging \nnetwork" -> "Hono Protocol Adapter\ninstance 1": transfer("control/TENANT/4711",\n "command/TENANT/4711","${payload}")
deactivate "AMQP messaging \nnetwork"
"Hono Protocol Adapter\ninstance 1" -> Device: Command is published
"Hono Protocol Adapter\ninstance 1" -> Application: disposition("accepted") via AMQP messaging network
end
@enduml
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
Operating System: Linux
Default Encoding: UTF-8
Language: de
Country: DE
--></g></svg>