mirror of
https://github.com/Telecominfraproject/wlan-cloud-design-diagrams.git
synced 2025-10-30 18:18:01 +00:00
489 lines
29 KiB
XML
489 lines
29 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
|
|
<!--Created by yEd 3.19.1.1-->
|
|
<key attr.name="Description" attr.type="string" for="graph" id="d0"/>
|
|
<key for="port" id="d1" yfiles.type="portgraphics"/>
|
|
<key for="port" id="d2" yfiles.type="portgeometry"/>
|
|
<key for="port" id="d3" yfiles.type="portuserdata"/>
|
|
<key attr.name="url" attr.type="string" for="node" id="d4"/>
|
|
<key attr.name="description" attr.type="string" for="node" id="d5"/>
|
|
<key for="node" id="d6" yfiles.type="nodegraphics"/>
|
|
<key for="graphml" id="d7" yfiles.type="resources"/>
|
|
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
|
|
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
|
|
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
|
|
<graph edgedefault="directed" id="G">
|
|
<data key="d0" xml:space="preserve"/>
|
|
<node id="n0" yfiles.foldertype="group">
|
|
<data key="d4" xml:space="preserve"/>
|
|
<data key="d6">
|
|
<y:ProxyAutoBoundsNode>
|
|
<y:Realizers active="0">
|
|
<y:GroupNode>
|
|
<y:Geometry height="1541.057351512357" width="1311.614779638399" x="675.9404794221862" y="-20.83714651600718"/>
|
|
<y:Fill color="#F2F0D8" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#B7B69E" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.666015625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="1311.614779638399" x="0.0" xml:space="preserve" y="0.0">Docker container: all-cloud-and-opensync-gw-and-mqtt</y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
<y:DropShadow color="#D2D2D2" offsetX="4" offsetY="4"/>
|
|
<y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
|
|
<y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0"/>
|
|
<y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="0" rightF="0.0" top="0" topF="0.0"/>
|
|
</y:GroupNode>
|
|
<y:GroupNode>
|
|
<y:Geometry height="50.0" width="50.0" x="120.0" y="60.0"/>
|
|
<y:Fill color="#F2F0D8" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#B7B69E" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.666015625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="63.75830078125" x="-6.879150390625" xml:space="preserve" y="0.0">Folder 5</y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
<y:DropShadow color="#D2D2D2" offsetX="4" offsetY="4"/>
|
|
<y:State closed="true" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
|
|
<y:Insets bottom="5" bottomF="5.0" left="5" leftF="5.0" right="5" rightF="5.0" top="5" topF="5.0"/>
|
|
<y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="0" rightF="0.0" top="0" topF="0.0"/>
|
|
</y:GroupNode>
|
|
</y:Realizers>
|
|
</y:ProxyAutoBoundsNode>
|
|
</data>
|
|
<graph edgedefault="directed" id="n0:">
|
|
<node id="n0::n0" yfiles.foldertype="group">
|
|
<data key="d4" xml:space="preserve"/>
|
|
<data key="d6">
|
|
<y:ProxyAutoBoundsNode>
|
|
<y:Realizers active="0">
|
|
<y:GroupNode>
|
|
<y:Geometry height="1352.391335887357" width="1277.614779638399" x="690.9404794221862" y="148.82886910899282"/>
|
|
<y:Fill color="#F2F0D8" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#B7B69E" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.666015625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="1277.614779638399" x="0.0" xml:space="preserve" y="0.0">Single Java Process: all-cloud-and-opensync-gw-in-one-process-0.0.1-SNAPSHOT.jar</y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
<y:DropShadow color="#D2D2D2" offsetX="4" offsetY="4"/>
|
|
<y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
|
|
<y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0"/>
|
|
<y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="19" rightF="18.63022709147026" top="0" topF="0.0"/>
|
|
</y:GroupNode>
|
|
<y:GroupNode>
|
|
<y:Geometry height="50.0" width="50.0" x="120.0" y="60.0"/>
|
|
<y:Fill color="#F2F0D8" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#B7B69E" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.666015625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="63.75830078125" x="-6.879150390625" xml:space="preserve" y="0.0">Folder 1</y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
<y:DropShadow color="#D2D2D2" offsetX="4" offsetY="4"/>
|
|
<y:State closed="true" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
|
|
<y:Insets bottom="5" bottomF="5.0" left="5" leftF="5.0" right="5" rightF="5.0" top="5" topF="5.0"/>
|
|
<y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="0" rightF="0.0" top="0" topF="0.0"/>
|
|
</y:GroupNode>
|
|
</y:Realizers>
|
|
</y:ProxyAutoBoundsNode>
|
|
</data>
|
|
<graph edgedefault="directed" id="n0::n0:">
|
|
<node id="n0::n0::n0">
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="464.68493625992073" width="286.0000000000001" x="705.9404794221862" y="185.49488473399282"/>
|
|
<y:Fill color="#FFCC00" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="456.25" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="273.6953125" x="6.15234375" xml:space="preserve" y="4.217468129960309">OpenSync Gateway
|
|
|
|
Role:
|
|
- performs mutual auth with APs
|
|
using SSL certificates
|
|
- terminates connections from APs
|
|
over ovsdb protocol
|
|
- redirects APs to appropriate
|
|
cloud instances or controllers
|
|
- configures APs according to
|
|
provisioned info
|
|
- configures AP to post metrics over
|
|
specific MQTT broker and specific topic
|
|
- subscribes to AP topics in MQTT broker
|
|
and listens for AP metric reports
|
|
- converts AP metric reports into
|
|
internal cloud format and posts them to SSC
|
|
- subscribes to changes in ovsdb status
|
|
tables on AP (monitor), creates AP
|
|
metrics/events from the data and posts
|
|
those metrics/events to SSC
|
|
|
|
Functions:
|
|
- MQTT client
|
|
- OVSDB client
|
|
- Register AP routes, register OSGWs
|
|
- Translate metrics from Opensync
|
|
protobuf into CloudSDK format
|
|
|
|
Exposes APIs:
|
|
- List AP Sessions
|
|
- Terminate AP Session
|
|
</y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
<node id="n0::n0::n1">
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="177.40674157303363" width="286.0000000000001" x="705.9404794221862" y="669.587496371244"/>
|
|
<y:Fill color="#FFCC00" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="159.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="217.275390625" x="34.3623046875" xml:space="preserve" y="8.97290203651687">AP firmware broker
|
|
|
|
Functions:
|
|
- firmware pull from AP
|
|
triggered by a change in ovsdb table
|
|
- client fingerprint DB pull from AP
|
|
triggered by a change in ovsdb table
|
|
|
|
Exposes APIs:
|
|
- get FW image from the repository
|
|
- get Client Fingerprint DB
|
|
<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
<node id="n0::n0::n2">
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="621.7596116653034" width="412.24500672986915" x="705.9404794221862" y="864.4605933310465"/>
|
|
<y:Fill color="#FFCC00" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="611.7109375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="383.294921875" x="14.475042427434573" xml:space="preserve" y="5.024337082651755">Portal Service
|
|
|
|
Role:
|
|
- provides role-based access control to the APIs
|
|
- aggregation of internal API calls to
|
|
minimize chatter between the browser
|
|
and the cloud
|
|
- no business logic here
|
|
|
|
Functions:
|
|
- login for a portal user (users are provisioned in db)
|
|
- change password for a portal user
|
|
- CRUD portal users (name, password, role=Admin/User)
|
|
- get customer info (single customer, pre-provisioned in db)
|
|
- update customer info
|
|
- CRUD for location info - hierarchy
|
|
- CRUD for equipment
|
|
- bind/unbind equipment for a customer
|
|
- change equipment location
|
|
- CRUD for AP profile
|
|
- list APs attached to AP profile
|
|
- CRUD for Service profiles
|
|
- list AP profiles attached to Service profile
|
|
- list APs attached to Service profile
|
|
- bulk edit of AP radio channels for location
|
|
- bulk edit of AP radio cell sizes for location
|
|
- bulk edit of AP steering thresholds for location
|
|
- CRUD for FW images
|
|
- mark one FW image as a system default
|
|
- list all known FW images
|
|
- list APs that are using selected FW image
|
|
- CRUD for Client Fingerprint DB
|
|
- get Alarms for AP/Location/Customer
|
|
- get equipment statuses for AP/Location/Customer
|
|
- get network status
|
|
- get system events for AP or Customer in a given time frame
|
|
- get metrics for AP in a given time frame (raw or rolled up)
|
|
- get clients (basic info, fingerprint, stats - from client sessions)
|
|
for AP/Location/Customer
|
|
- provision OUI manufacturer table
|
|
|
|
Exposes as REST APIs:
|
|
- all of the functions above
|
|
<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
<node id="n0::n0::n3">
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="245.95233957553114" width="412.24500672986915" x="1455.6280569619798" y="1240.2678654208187"/>
|
|
<y:Fill color="#FFCC00" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="244.2578125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="391.05859375" x="10.593206489934573" xml:space="preserve" y="0.8472635377654569">Integration Service
|
|
|
|
Role:
|
|
- provides a way in into the cloud for the
|
|
API calls from external enterprise systems
|
|
- performs translation of the external calls
|
|
and data models into internal cloud
|
|
calls and internal cloud data model
|
|
|
|
Functions:
|
|
- get service adoption metrics (daily reports) in a given date range
|
|
- N connected users
|
|
- N unique users
|
|
- N transfer bytes up/down
|
|
- average US/DS user data rate
|
|
- per (Day, Week, Month)
|
|
- per (Customer, AP, Location, Global)
|
|
<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
<node id="n0::n0::n4">
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="185.10973297663622" width="297.9325842696628" x="1137.9404794221862" y="1301.1104720197136"/>
|
|
<y:Fill color="#FFCC00" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="173.59375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="270.109375" x="13.91160463483152" xml:space="preserve" y="5.757991488318112">Webtoken Auth Service
|
|
|
|
Role:
|
|
- generates tokens for the external
|
|
clients to access portal and integration APIs
|
|
|
|
Exposes APIs:
|
|
- token - for initial login with user/password
|
|
read provisioned user info from the Prov
|
|
- refreshToken - token refresh
|
|
- validateToken - check if the token is
|
|
correctly signed and not expired
|
|
<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
<node id="n0::n0::n5">
|
|
<data key="d4" xml:space="preserve"/>
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="821.4322305162295" width="368.24500672986915" x="1132.6260191382066" y="198.49488473399288"/>
|
|
<y:Fill color="#FFCC00" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="809.5703125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="355.966796875" x="6.139104927434573" xml:space="preserve" y="5.930959008114769">Provisioning Service ( aka PROV )
|
|
Role:
|
|
- implements business logic in services
|
|
- persists provisioning model
|
|
via configured datastore layer
|
|
- maintains integrity of provisioning model
|
|
|
|
Functions:
|
|
User Service
|
|
- change password for a portal user
|
|
- CRUD portal users (name, password, role=Admin/User)
|
|
Customer Service
|
|
- CRUD for a customer (single customer)
|
|
Location Service
|
|
- CRUD for location info - hierarchy
|
|
- get equipment ids for a location
|
|
and its children
|
|
Equipment Inventory Service
|
|
- CRUD for equipment
|
|
- bind/unbind equipment for a customer
|
|
- change equipment location
|
|
- get a batch of equipment for a given
|
|
set of ids
|
|
Equipment Configuration Service
|
|
- AP profile - part of equipment.details
|
|
- CRUD for Service profiles
|
|
- attach/detach AP to Service profile
|
|
- list ids of APs attached to Service profile
|
|
- bulk assign of AP radio channels for location
|
|
- bulk assign of AP radio cell sizes for location
|
|
- bulk assign of AP steering thresholds for location
|
|
- retrieve full AP config - with all associated profiles
|
|
Firmware Service
|
|
- CRUD for FW images
|
|
- mark one FW image as a system default
|
|
- list all known FW images
|
|
- list ids of APs that are using selected FW image
|
|
- assign FW image to an AP
|
|
Client Fingerprint DB Service
|
|
- Upload new version of client fingerprint DB
|
|
- deliver client fingerprint DB to AP
|
|
OUI Lookup Service
|
|
- bulk provision OUI manufacturer table
|
|
- get manufacturer by OUI
|
|
- get manufacturers by a batch of OUIs
|
|
Adoption Metrics Service
|
|
- CR for adoption metrics
|
|
- get service adoption metrics (daily reports) in a date range
|
|
- N connected users
|
|
- N unique users
|
|
- N transfer bytes up/down
|
|
- average US/DS user data rate
|
|
- per (Day, Week, Month)
|
|
- per (Customer, AP, Location, Global)
|
|
|
|
Exposes APIs:
|
|
- all of the functions above
|
|
<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
<node id="n0::n0::n6">
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="566.2904138108597" width="419.61347311488794" x="1515.311558854227" y="446.9271152502224"/>
|
|
<y:Fill color="#FFCC00" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="541.046875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="383.294921875" x="18.159275619944083" xml:space="preserve" y="12.621769405429859">Scalable Service Container ( aka SSC )
|
|
|
|
Role:
|
|
- implements business logic in services
|
|
- persists and provides access to
|
|
the system events, equipment metrics,
|
|
equipment status, network status,
|
|
equipment routes,
|
|
alarms, and wireless client info
|
|
via configured datastore layer
|
|
|
|
Functions:
|
|
Alarm Service
|
|
- get Alarms for AP/Location/Customer
|
|
- CRUD for Alarms
|
|
Equipment Status Service
|
|
- CRUD for equipment status
|
|
- get equipment statuses for AP/Location/Customer
|
|
Network Status Service
|
|
- CRUD for network status
|
|
- get network status
|
|
Equipment Routing Service
|
|
- register/unregister OSGW
|
|
- register/unregister equipment route for the OSGW
|
|
System Events Service
|
|
- CR for system events
|
|
- get system events for AP or Customer in a given time frame
|
|
Equipment Metrics Service
|
|
- CR for equipment metrics
|
|
- get metrics for AP in a given time frame
|
|
|
|
Wireless Clients Service
|
|
- CRUD for client info records
|
|
- get clients (basic info, fingerprint, stats - from client sessions)
|
|
for AP/Location/Customer
|
|
|
|
Exposes APIs:
|
|
- all of the functions above
|
|
<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
<node id="n0::n0::n7">
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="67.59751546359212" width="187.1637551020408" x="1738.7419975430903" y="284.31656895146375"/>
|
|
<y:Fill color="#FFCC00" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="32.265625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="135.09765625" x="26.033049426020398" xml:space="preserve" y="17.66594523179606">Stream Processor
|
|
AP connectivity alarms<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
<node id="n0::n0::n8">
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="67.59751546359212" width="187.1637551020408" x="1530.8710258680758" y="284.31656895146375"/>
|
|
<y:Fill color="#FFCC00" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="32.265625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="104.435546875" x="41.3641041135204" xml:space="preserve" y="17.66594523179606">Stream Processor
|
|
AP Key analytics<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
<node id="n0::n0::n9">
|
|
<data key="d5"/>
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="97.0" width="634.1123595505619" x="1242.3393258426968" y="1074.247191011236"/>
|
|
<y:Fill color="#00FFFF" transparent="false"/>
|
|
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="32.265625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="545.353515625" x="44.37942196278095" xml:space="preserve" y="32.3671875">Note: no persistence in this deployment.
|
|
All changes that are made via REST APIs are lost when the container is shutdown or restarted<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
</graph>
|
|
</node>
|
|
<node id="n0::n1">
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="103.0" width="315.0" x="691.4404794221862" y="15.82886910899282"/>
|
|
<y:Fill color="#CCCCFF" transparent="false"/>
|
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="74.6640625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="283.41015625" x="15.794921875" xml:space="preserve" y="14.16796875">Mosquitto MQTT Broker
|
|
|
|
Functions:
|
|
- accept metrics and events messages from APs
|
|
- deliver messages to OpenSync Gateways
|
|
<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
</graph>
|
|
</node>
|
|
<node id="n1">
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="97.0" width="81.0" x="456.59423710158217" y="369.3373528639532"/>
|
|
<y:Fill color="#FFCC00" transparent="false"/>
|
|
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="32.265625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="63.748046875" x="8.6259765625" xml:space="preserve" y="32.3671875">AP
|
|
real or VM<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
<node id="n2">
|
|
<data key="d6">
|
|
<y:ShapeNode>
|
|
<y:Geometry height="47.0" width="187.1637551020408" x="403.51235955056177" y="1151.8403991636983"/>
|
|
<y:Fill color="#FFCC00" transparent="false"/>
|
|
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="32.265625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="141.63671875" x="22.763518176020398" xml:space="preserve" y="7.3671875">Integration Tests Driver
|
|
REST API caller<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
|
<y:Shape type="rectangle"/>
|
|
</y:ShapeNode>
|
|
</data>
|
|
</node>
|
|
<edge id="e0" source="n1" target="n0::n1">
|
|
<data key="d10">
|
|
<y:QuadCurveEdge straightness="0.1">
|
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
|
<y:Arrows source="none" target="standard"/>
|
|
</y:QuadCurveEdge>
|
|
</data>
|
|
</edge>
|
|
<edge id="e1" source="n1" target="n0::n0::n0">
|
|
<data key="d10">
|
|
<y:QuadCurveEdge straightness="0.1">
|
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
|
<y:Arrows source="none" target="standard"/>
|
|
</y:QuadCurveEdge>
|
|
</data>
|
|
</edge>
|
|
<edge id="e2" source="n1" target="n0::n0::n1">
|
|
<data key="d10">
|
|
<y:QuadCurveEdge straightness="0.1">
|
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
|
<y:Arrows source="none" target="standard"/>
|
|
</y:QuadCurveEdge>
|
|
</data>
|
|
</edge>
|
|
<edge id="e3" source="n2" target="n0::n0::n2">
|
|
<data key="d10">
|
|
<y:QuadCurveEdge straightness="0.1">
|
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
|
<y:Arrows source="none" target="standard"/>
|
|
</y:QuadCurveEdge>
|
|
</data>
|
|
</edge>
|
|
</graph>
|
|
<data key="d7">
|
|
<y:Resources/>
|
|
</data>
|
|
</graphml>
|