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