| <?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="669.6px" preserveAspectRatio="none" style="width:1050px;height:669px;" version="1.1" viewBox="0 0 1050 669" width="1050px" zoomAndPan="magnify"><defs><filter height="300%" id="fngzrirs0jsbq" 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="#FFFFFF" filter="url(#fngzrirs0jsbq)" height="414.7125" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="472.2" y="177.3937"/><rect fill="#FFFFFF" filter="url(#fngzrirs0jsbq)" height="332.7938" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="912.6" y="259.3125"/><rect fill="#FFFFFF" filter="url(#fngzrirs0jsbq)" height="137.4375" style="stroke: #000000; stroke-width: 2.4;" width="888" x="98.4" y="131.475"/><rect fill="#FFFFFF" filter="url(#fngzrirs0jsbq)" height="208.7156" style="stroke: #000000; stroke-width: 2.4;" width="938.4" x="98.4" y="285.7125"/><rect fill="#FFFFFF" filter="url(#fngzrirs0jsbq)" height="90.4781" style="stroke: #000000; stroke-width: 2.4;" width="888" x="98.4" y="511.2281"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="148.8" x2="148.8" y1="45.9563" y2="622.1062"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="478.2" x2="478.2" y1="45.9563" y2="622.1062"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="918" x2="918" y1="45.9563" y2="622.1062"/><rect fill="#FEFECE" filter="url(#fngzrirs0jsbq)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="73.2" x="110.4" y="3.6"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="56.4" x="118.8" y="27.5941">Device</text><rect fill="#FEFECE" filter="url(#fngzrirs0jsbq)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="73.2" x="110.4" y="620.9063"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="56.4" x="118.8" y="644.9004">Device</text><rect fill="#FEFECE" filter="url(#fngzrirs0jsbq)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="204" x="373.8" y="3.6"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="187.2" x="382.2" y="27.5941">Hono Protocol Adapter</text><rect fill="#FEFECE" filter="url(#fngzrirs0jsbq)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="204" x="373.8" y="620.9063"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="187.2" x="382.2" y="644.9004">Hono Protocol Adapter</text><rect fill="#FEFECE" filter="url(#fngzrirs0jsbq)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="106.8" x="862.8" y="3.6"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="90" x="871.2" y="27.5941">Application</text><rect fill="#FEFECE" filter="url(#fngzrirs0jsbq)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="106.8" x="862.8" y="620.9063"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="90" x="871.2" y="644.9004">Application</text><rect fill="#FFFFFF" filter="url(#fngzrirs0jsbq)" height="414.7125" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="472.2" y="177.3937"/><rect fill="#FFFFFF" filter="url(#fngzrirs0jsbq)" height="332.7938" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="912.6" y="259.3125"/><path d="M9.6,63.9563 L9.6,111.9563 L285.6,111.9563 L285.6,75.9563 L273.6,63.9563 L9.6,63.9563 " fill="#FBFB77" filter="url(#fngzrirs0jsbq)" style="stroke: #A80036; stroke-width: 1.2;"/><path d="M273.6,63.9563 L273.6,75.9563 L285.6,75.9563 L273.6,63.9563 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.2;"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="217.2" x="16.8" y="84.4365">The device is connected and</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="250.8" x="16.8" y="102.5959">authenticated with TENANT/4711</text><path d="M98.4,131.475 L357.6,131.475 L357.6,139.875 L345.6,151.875 L98.4,151.875 L98.4,131.475 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.2;"/><rect fill="none" height="137.4375" style="stroke: #000000; stroke-width: 2.4;" width="888" x="98.4" y="131.475"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="205.2" x="116.4" y="147.1553">Command subscription</text><polygon fill="#A80036" points="457.8,172.5938,469.8,177.3937,457.8,182.1938,462.6,177.3937" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="149.4" x2="465" y1="177.3937" y2="177.3937"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="157.8" y="171.3146">1</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="284.4" x="173.4" y="171.3146">Command subscription / TTD request</text><path d="M273.6,192.9938 L273.6,222.9938 L678,222.9938 L678,204.9938 L666,192.9938 L273.6,192.9938 " fill="#FBFB77" filter="url(#fngzrirs0jsbq)" style="stroke: #A80036; stroke-width: 1.2;"/><path d="M666,192.9938 L666,204.9938 L678,204.9938 L666,192.9938 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.2;"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="379.2" x="280.8" y="213.474">Ensure Command consumer link for tenant exists</text><polygon fill="#A80036" points="898.2,254.5125,910.2,259.3125,898.2,264.1125,903,259.3125" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="484.2" x2="905.4" y1="259.3125" y2="259.3125"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="492.6" y="253.2334">2</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="350.4" x="508.2" y="253.2334">transfer("event/TENANT","4711","ttd=${ttd}")</text><path d="M98.4,285.7125 L325.2,285.7125 L325.2,294.1125 L313.2,306.1125 L98.4,306.1125 L98.4,285.7125 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.2;"/><rect fill="none" height="208.7156" style="stroke: #000000; stroke-width: 2.4;" width="938.4" x="98.4" y="285.7125"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="172.8" x="116.4" y="301.3928">Command handling</text><path d="M812.4,312.2719 L812.4,360.2719 L1020,360.2719 L1020,324.2719 L1008,312.2719 L812.4,312.2719 " fill="#FBFB77" filter="url(#fngzrirs0jsbq)" style="stroke: #A80036; stroke-width: 1.2;"/><path d="M1008,312.2719 L1008,324.2719 L1020,324.2719 L1008,312.2719 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.2;"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="172.8" x="819.6" y="332.7521">Create sender link and</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="182.4" x="819.6" y="350.9115">response consumer link</text><polygon fill="#A80036" points="497.4,410.1094,485.4,414.9094,497.4,419.7094,492.6,414.9094" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="490.2" x2="911.4" y1="414.9094" y2="414.9094"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="504.6" y="399.7506">3</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="226.8" x="520.2" y="390.6709">transfer("command/TENANT",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="310.8" x="525" y="408.8303">"command/TENANT/4711","${payload}")</text><polygon fill="#A80036" points="162.6,445.0687,150.6,449.8688,162.6,454.6688,157.8,449.8688" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="155.4" x2="471" y1="449.8688" y2="449.8688"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="169.8" y="443.7896">4</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="249.6" x="185.4" y="443.7896">Command is published to device</text><polygon fill="#A80036" points="898.2,480.0281,910.2,484.8281,898.2,489.6281,903,484.8281" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="484.2" x2="905.4" y1="484.8281" y2="484.8281"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="492.6" y="478.749">5</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="176.4" x="508.2" y="478.749">disposition("accepted")</text><path d="M98.4,511.2281 L412.8,511.2281 L412.8,519.6281 L400.8,531.6281 L98.4,531.6281 L98.4,511.2281 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.2;"/><rect fill="none" height="90.4781" style="stroke: #000000; stroke-width: 2.4;" width="888" x="98.4" y="511.2281"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="260.4" x="116.4" y="526.9084">Command response handling</text><polygon fill="#A80036" points="457.8,552.3469,469.8,557.1469,457.8,561.9469,462.6,557.1469" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="149.4" x2="465" y1="557.1469" y2="557.1469"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="157.8" y="551.0678">6</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="260.4" x="173.4" y="551.0678">Device sends command response</text><polygon fill="#A80036" points="904.2,587.3063,916.2,592.1062,904.2,596.9063,909,592.1062" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="478.2" x2="911.4" y1="592.1062" y2="592.1062"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="10.8" x="486.6" y="586.0271">7</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="384" x="502.2" y="586.0271">transfer("${reply-to}","status=200","${payload}")</text><!--MD5=[e0e07f50b6ca463e3c049d624b0d9900] |
| participant Device order 10 |
| participant "Hono Protocol Adapter" order 20 |
| participant Application order 40 |
| The device is connected and |
| authenticated with TENANT/4711 |
| group Command subscription |
| Device -> "Hono Protocol Adapter": Command subscription / TTD request |
| activate "Hono Protocol Adapter" |
| note over "Hono Protocol Adapter" |
| Ensure Command consumer link for tenant exists |
| "Hono Protocol Adapter" -> Application: transfer("event/TENANT","4711","ttd=${ttd}") |
| Application -> "Hono Protocol Adapter": transfer("command/TENANT",\n "command/TENANT/4711","${payload}") |
| "Hono Protocol Adapter" -> Device: Command is published to device |
| "Hono Protocol Adapter" -> Application: disposition("accepted") |
| group Command response handling |
| Device -> "Hono Protocol Adapter": Device sends command response |
| "Hono Protocol Adapter" -> Application: transfer("${reply-to}","status=200","${payload}") |
| deactivate "Hono Protocol Adapter" |
| 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 |