blob: 836a06aada4f0c2e65cfb802bd3ae43ed70106ba [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="740.4px" preserveAspectRatio="none" style="width:1734px;height:740px;" version="1.1" viewBox="0 0 1734 740" width="1734px" zoomAndPan="magnify"><defs><filter height="300%" id="fnzp9xyiux0bi" 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><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="361.2" x2="361.2" y1="45.9563" y2="692.1844"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="657" x2="657" y1="45.9563" y2="692.1844"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="1152.6" x2="1152.6" y1="45.9563" y2="692.1844"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="1458" x2="1458" y1="45.9563" y2="692.1844"/><rect fill="#FEFECE" filter="url(#fnzp9xyiux0bi)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="73.2" x="322.8" y="3.6"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="56.4" x="331.2" y="27.5941">Device</text><rect fill="#FEFECE" filter="url(#fnzp9xyiux0bi)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="73.2" x="322.8" y="690.9844"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="56.4" x="331.2" y="714.9785">Device</text><rect fill="#FEFECE" filter="url(#fnzp9xyiux0bi)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="204" x="552.6" y="3.6"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="187.2" x="561" y="27.5941">HTTP Protocol Adapter</text><rect fill="#FEFECE" filter="url(#fnzp9xyiux0bi)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="204" x="552.6" y="690.9844"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="187.2" x="561" y="714.9785">HTTP Protocol Adapter</text><rect fill="#FEFECE" filter="url(#fnzp9xyiux0bi)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="170.4" x="1065" y="3.6"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="153.6" x="1073.4" y="27.5941">AMQP 1.0 Network</text><rect fill="#FEFECE" filter="url(#fnzp9xyiux0bi)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="170.4" x="1065" y="690.9844"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="153.6" x="1073.4" y="714.9785">AMQP 1.0 Network</text><rect fill="#FEFECE" filter="url(#fnzp9xyiux0bi)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="198" x="1357.2" y="3.6"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="181.2" x="1365.6" y="27.5941">Consumer Application</text><rect fill="#FEFECE" filter="url(#fnzp9xyiux0bi)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="198" x="1357.2" y="690.9844"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="181.2" x="1365.6" y="714.9785">Consumer Application</text><path d="M9.6,63.9563 L9.6,111.9563 L351.6,111.9563 L351.6,75.9563 L339.6,63.9563 L9.6,63.9563 " fill="#FBFB77" filter="url(#fnzp9xyiux0bi)" style="stroke: #A80036; stroke-width: 1.2;"/><path d="M339.6,63.9563 L339.6,75.9563 L351.6,75.9563 L339.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="316.8" x="16.8" y="84.4365">sending telemetry data with explicit value</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="188.4" x="16.8" y="102.5959">for ttd set to 60 seconds</text><polygon fill="#A80036" points="642.6,143.6344,654.6,148.4344,642.6,153.2344,647.4,148.4344" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="361.8" x2="649.8" y1="148.4344" y2="148.4344"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="266.4" x="370.2" y="142.3553">telemetry(hono-ttd="60", payload)</text><path d="M139.2,164.0344 L139.2,212.0344 L578.4,212.0344 L578.4,176.0344 L566.4,164.0344 L139.2,164.0344 " fill="#FBFB77" filter="url(#fnzp9xyiux0bi)" style="stroke: #A80036; stroke-width: 1.2;"/><path d="M566.4,164.0344 L566.4,176.0344 L578.4,176.0344 L566.4,164.0344 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.2;"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="414" x="146.4" y="184.5146">The HTTP specific header "hono-ttd" is used to provide</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="270" x="146.4" y="202.674">the value for ttd by the device itself</text><path d="M476.4,229.1531 L476.4,313.1531 L831.6,313.1531 L831.6,241.1531 L819.6,229.1531 L476.4,229.1531 " fill="#FBFB77" filter="url(#fnzp9xyiux0bi)" style="stroke: #A80036; stroke-width: 1.2;"/><path d="M819.6,229.1531 L819.6,241.1531 L831.6,241.1531 L819.6,229.1531 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.2;"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="193.2" x="483.6" y="249.6334">Set AMQP 1.0 properties:</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="157.2" x="483.6" y="267.7928">tenant-id: "TENANT",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="133.2" x="483.6" y="285.9521">device-id: "4711",</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="330" x="483.6" y="304.1115">creation-time: NOW (in epoch milliseconds)</text><polygon fill="#A80036" points="1138.2,345.15,1150.2,349.95,1138.2,354.75,1143,349.95" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="657" x2="1145.4" y1="349.95" y2="349.95"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="466.8" x="665.4" y="343.8709">1.0 transfer("telemetry/TENANT", "4711", , creation-time, ttd)</text><polygon fill="#A80036" points="1444.2,380.1094,1456.2,384.9094,1444.2,389.7094,1449,384.9094" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="1152.6" x2="1451.4" y1="384.9094" y2="384.9094"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="277.2" x="1161" y="378.8303">1.2 transfer("telemetry/TENANT", ...)</text><polygon fill="#A80036" points="1165.8,415.0687,1153.8,419.8688,1165.8,424.6688,1161,419.8688" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="1158.6" x2="1457.4" y1="419.8688" y2="419.8688"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="205.2" x="1173" y="413.7896">2.0 disposition("accepted")</text><polygon fill="#A80036" points="670.2,450.0281,658.2,454.8281,670.2,459.6281,665.4,454.8281" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="663" x2="1151.4" y1="454.8281" y2="454.8281"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="205.2" x="677.4" y="448.749">2.0 disposition("accepted")</text><polygon fill="#A80036" points="375,484.9875,363,489.7875,375,494.5875,370.2,489.7875" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="367.8" x2="655.8" y1="489.7875" y2="489.7875"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="177.6" x="382.2" y="483.7084">HTTP/1.1 202 Accepted</text><path d="M1324.8,505.3875 L1324.8,535.3875 L1586.4,535.3875 L1586.4,517.3875 L1574.4,505.3875 L1324.8,505.3875 " fill="#FBFB77" filter="url(#fnzp9xyiux0bi)" style="stroke: #A80036; stroke-width: 1.2;"/><path d="M1574.4,505.3875 L1574.4,517.3875 L1586.4,517.3875 L1574.4,505.3875 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.2;"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="236.4" x="1332" y="525.8678">Processing the telemetry data.</text><line style="stroke: #A80036; stroke-width: 1.2;" x1="1458.6" x2="1509" y1="571.7063" y2="571.7063"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="1509" x2="1509" y1="571.7063" y2="587.3063"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="1459.8" x2="1509" y1="587.3063" y2="587.3063"/><polygon fill="#A80036" points="1471.8,582.5063,1459.8,587.3063,1471.8,592.1062,1467,587.3063" style="stroke: #A80036; stroke-width: 1.2;"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="253.2" x="1467" y="565.6271">callbackIfValid(creation-time, ttd)</text><path d="M1244.4,602.9063 L1244.4,668.9063 L1666.8,668.9063 L1666.8,614.9063 L1654.8,602.9063 L1244.4,602.9063 " fill="#FBFB77" filter="url(#fnzp9xyiux0bi)" style="stroke: #A80036; stroke-width: 1.2;"/><path d="M1654.8,602.9063 L1654.8,614.9063 L1666.8,614.9063 L1654.8,602.9063 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.2;"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="397.2" x="1251.6" y="623.3865">React if message indicates that currently the device</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="237.6" x="1251.6" y="641.5459">is ready to receive a command</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="271.2" x="1251.6" y="659.7053">(e.g. by trying to send a command)</text><!--
@startuml
scale 1.2
participant Device
participant "HTTP Protocol Adapter"
participant "AMQP 1.0 Network"
participant "Consumer Application"
note left of Device
sending telemetry data with explicit value
for ttd set to 60 seconds
end note
Device -> "HTTP Protocol Adapter": telemetry(hono-ttd="60", payload)
note over Device
The HTTP specific header "hono-ttd" is used to provide
the value for ttd by the device itself
end note
note over "HTTP Protocol Adapter"
Set AMQP 1.0 properties:
tenant-id: "TENANT",
device-id: "4711",
creation-time: NOW (in epoch milliseconds)
end note
"HTTP Protocol Adapter" -> "AMQP 1.0 Network": 1.0 transfer("telemetry/TENANT", "4711", , creation-time, ttd)
"AMQP 1.0 Network" -> "Consumer Application": 1.2 transfer("telemetry/TENANT", ...)
"Consumer Application" -> "AMQP 1.0 Network": 2.0 disposition("accepted")
"AMQP 1.0 Network" -> "HTTP Protocol Adapter": 2.0 disposition("accepted")
"HTTP Protocol Adapter" -> Device: HTTP/1.1 202 Accepted
note over "Consumer Application"
Processing the telemetry data.
end note
"Consumer Application" -> "Consumer Application": callbackIfValid(creation-time, ttd)
note over "Consumer Application"
React if message indicates that currently the device
is ready to receive a command
(e.g. by trying to send a command)
end note
@enduml
PlantUML version 1.2019.07beta1(Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.7.0_25-b15
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>