blob: da5a0db858d2921ea3de27e5661403f3b66e9f67 [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="597px" preserveAspectRatio="none" style="width:757px;height:597px;" version="1.1" viewBox="0 0 757 597" width="757px" zoomAndPan="magnify"><defs><filter height="300%" id="fgniohwq6bbio" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><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.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--cluster PRC7000--><polygon fill="#FFFFFF" filter="url(#fgniohwq6bbio)" points="22,24,89,24,96,47.6094,232,47.6094,232,111,22,111,22,24" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="96" y1="47.6094" y2="47.6094"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="26" y="40.5332">PRC7000</text><!--cluster mosquitto--><polygon fill="#FFFFFF" filter="url(#fgniohwq6bbio)" points="115,172,191,172,198,195.6094,229,195.6094,229,259,115,259,115,172" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="115" x2="198" y1="195.6094" y2="195.6094"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="70" x="119" y="188.5332">mosquitto</text><!--cluster Camel--><polygon fill="#FFFFFF" filter="url(#fgniohwq6bbio)" points="256,24,305,24,312,47.6094,561,47.6094,561,483,256,483,256,24" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="256" x2="312" y1="47.6094" y2="47.6094"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="43" x="260" y="40.5332">Camel</text><!--cluster REST Server--><polygon fill="#FFFFFF" filter="url(#fgniohwq6bbio)" points="585,306,679,306,686,329.6094,735,329.6094,735,585,585,585,585,306" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="585" x2="686" y1="329.6094" y2="329.6094"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="589" y="322.5332">REST Server</text><ellipse cx="48" cy="77.5" fill="#78BE20" filter="url(#fgniohwq6bbio)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="102" x="114" y="60"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="124" y="82.457">broadcast data</text><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="82" x="131" y="208"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="141" y="230.457">queue data</text><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="87" x="272.5" y="60"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="67" x="282.5" y="82.457">retrieve data</text><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="119" x="425.5" y="60"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="99" x="435.5" y="82.457">transform payload</text><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="89" x="437.5" y="208"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="447.5" y="230.457">split payload</text><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="125" x="274.5" y="342"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="105" x="284.5" y="364.457">Transform to JSON</text><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="125" x="419.5" y="342"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="105" x="429.5" y="364.457">Transform to JSON</text><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="111" x="295.5" y="432"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="305.5" y="454.457">sent do backend</text><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="111" x="431.5" y="432"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="441.5" y="454.457">sent do backend</text><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="86" x="601" y="534"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="611" y="556.457">receive data</text><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="118" x="601" y="432"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="98" x="611" y="454.457">validate message</text><rect fill="#F5F5F5" filter="url(#fgniohwq6bbio)" height="35.0938" rx="12.5" ry="12.5" style="stroke: #000000; stroke-width: 1.5;" width="76" x="603" y="342"/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="56" x="613" y="364.457">save to db</text><ellipse cx="709" cy="359.5" fill="none" filter="url(#fgniohwq6bbio)" rx="10" ry="10" style="stroke: #50237F; stroke-width: 1.0;"/><ellipse cx="709.5" cy="360" fill="#50237F" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><!--link start to send--><path d="M58.383,77.5 C69.885,77.5 89.3496,77.5 108.524,77.5 " fill="none" id="start-send" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="113.917,77.5,104.917,73.5,108.917,77.5,104.917,81.5,113.917,77.5" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="34" x="69" y="57.9189">sensor</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="70" y="71.7549">values</text><!--link send to queue data--><path d="M165.803,95.248 C167.074,121.761 169.55,173.392 170.957,202.738 " fill="none" id="send-queue data" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="171.206,207.947,174.7694,198.7654,170.966,202.9528,166.7786,199.1494,171.206,207.947" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="170" y="146.4189">MQTT</text><!--link queue to queue data--><path d="M295.75,99.031 C266.967,128.214 214.785,181.12 188.326,207.947 " fill="none" id="queue-queue data" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="299.481,95.248,290.3131,98.8466,295.9698,98.8077,296.0087,104.4645,299.481,95.248" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="267" y="146.4189">MQTT</text><!--link queue to transform--><path d="M359.522,77.5 C378.004,77.5 399.938,77.5 420.257,77.5 " fill="none" id="queue-transform" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="425.385,77.5,416.385,73.5,420.385,77.5,416.385,81.5,425.385,77.5" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="44" x="370.5" y="57.9189">PRC7000</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="31" x="377" y="71.7549">format</text><!--link transform to split--><path d="M484.656,95.248 C484.111,121.761 483.05,173.392 482.447,202.738 " fill="none" id="transform-split" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="482.34,207.947,486.5243,199.0312,482.4428,202.9481,478.5259,198.8666,482.34,207.947" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="60" x="485" y="139.4189">PPMP format</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="499" y="153.2549">bundle</text><!--link split to measurementString--><path d="M449.949,243.139 C435.152,251.619 417.84,262.728 404,275 C382.975,293.644 363.416,319.389 350.924,337.346 " fill="none" id="split-measurementString" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="347.903,341.735,356.3003,336.5886,350.7375,337.6161,349.71,332.0533,347.903,341.735" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="405" y="287.4189">measurements</text><!--link split to processString--><path d="M482,243.218 C482,267.022 482,310.696 482,336.917 " fill="none" id="split-processString" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="482,341.918,486,332.918,482,336.918,478,332.918,482,341.918" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="483" y="287.4189">process</text><!--link measurementString to measurementPOST--><path d="M339.633,377.052 C341.868,391.098 345.091,411.357 347.535,426.717 " fill="none" id="measurementString-measurementPOST" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="348.331,431.723,350.8672,422.2063,347.5454,426.7851,342.9666,423.4633,348.331,431.723" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="346" y="409.4189">String</text><!--link processString to processPOST--><path d="M482.94,377.052 C483.739,391.098 484.89,411.357 485.762,426.717 " fill="none" id="processString-processPOST" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="486.047,431.723,489.5314,422.5111,485.7641,426.731,481.5442,422.9637,486.047,431.723" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="486" y="409.4189">String</text><!--link measurementPOST to receive data--><path d="M376.124,467.125 C389.113,475.173 405.465,484.479 421,491 C479.106,515.3903 549.981,532.2687 596.006,541.6598 " fill="none" id="measurementPOST-receive data" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="600.936,542.6565,592.9062,536.9536,596.035,541.6665,591.3222,544.7952,600.936,542.6565" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="55" x="482" y="511.4189">HTTP POST</text><!--link receive data to processPOST--><path d="M613.469,531.0535 C584.212,512.4184 540.538,484.6 512.925,467.013 " fill="none" id="receive data-processPOST" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="618.036,533.9625,612.5933,525.7541,613.8186,531.2767,608.296,532.502,618.036,533.9625" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="55" x="586" y="511.4189">HTTP POST</text><!--link validate message to receive data--><path d="M656.556,472.027 C653.585,490.594 649.357,517.0172 646.646,533.9625 " fill="none" id="validate message-receive data" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="657.358,467.013,651.9862,475.2679,656.568,471.9502,659.8857,476.532,657.358,467.013" style="stroke: #000000; stroke-width: 1.0;"/><!--link save to db to validate message--><path d="M645.65,382.038 C648.955,397.346 653.331,417.611 656.378,431.723 " fill="none" id="save to db-validate message" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="644.574,377.052,642.5639,386.6936,645.6294,381.9393,650.3837,385.0048,644.574,377.052" style="stroke: #000000; stroke-width: 1.0;"/><!--link save to db to end--><path d="M679.25,359.5 C684.029,359.5 688.808,359.5 693.588,359.5 " fill="none" id="save to db-end" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="698.773,359.5,689.773,355.5,693.773,359.5,689.773,363.5,698.773,359.5" style="stroke: #000000; stroke-width: 1.0;"/><!--
@startuml
skinparam activity {
StartColor #78be20
BorderColor black
FontColor #50237f
BackgroundColor #f5f5f5
ArrowColor black
EndColor #50237f
}
partition PRC7000 {
(*) ->[sensor\nvalues] "broadcast data" as send
}
partition mosquitto {
send -down->[MQTT] "queue data"
}
partition Camel {
"queue data" -up->[MQTT] "retrieve data" as queue
queue -right->[PRC7000\nformat] "transform payload" as transform
transform - ->[PPMP format\nbundle] "split payload" as split
split - ->[measurements] "Transform to JSON" as measurementString
split - ->[process] "Transform to JSON" as processString
measurementString - ->[String] "sent do backend" as measurementPOST
processString - ->[String] "sent do backend" as processPOST
}
partition "REST Server" {
measurementPOST - ->[HTTP POST] "receive data"
processPOST -up>[HTTP POST] "receive data"
"receive data" -up-> "validate message"
"validate message" -up-> "save to db"
"save to db" -> (*)
}
@enduml
PlantUML version 1.2018.01(Sun Jan 28 19:08:22 CET 2018)
(EPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.8.0_144-b01
Operating System: Windows 10
OS Version: 10.0
Default Encoding: Cp1252
Language: en
Country: US
--></g></svg>