Docker Container: opensync-gateway-cloud Folder 9 JVM: opensync-gateway-cloud-process-0.0.1-SNAPSHOT.jar Folder 6 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 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 Docker Container: wlan-cloud-ui Folder 3 Static Portal Container Role: - delivers static content of the portal app - html, javascript, css, etc. to the browser Docker Container: wlan-cloud-graphql-gw Folder 4 GraphQL Container Role: - translates portal app calls into the REST API calls for the cloud backend AP real or VM Portal UI in the Web browser Integration Tests Driver REST API caller Docker Container: postgresql Folder 5 PostgreSQL RDBMS Functions: - Stores portal user info, customer info, location info, equipment info, AP profiles, service profiles, firmware image info, OUI manufacturer info Docker Container: mosquitto-mqtt Folder 6 Mosquitto MQTT Broker Functions: - accept metrics and events messages from APs - deliver messages to OpenSync Gateways Docker Container: kafka Folder 7 Kafka Distributed Streaming Platform Functions: - Transports AP events, AP metrics, cloud events, cloud metrics, client metrics - retains messages in the queues for a predefined time window Docker Container: cassandra-db Folder 8 Cassandra DB Functions: - Stores Alarms, client info, client sessions, equipment status, network status, equipment routes - Storage for metrics and events Docker Container: wlan-cloud-with-persistence Folder 10 JVM: all-cloud-with-persistence-in-one-process-0.0.1-SNAPSHOT.jar Folder 1 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 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) 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 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 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 Stream Processor AP connectivity alarms Stream Processor AP Key analytics