NX Application Services - Motorola Solutions LaunchPad Developer ...
NX Application Services - Motorola Solutions LaunchPad Developer ...
NX Application Services - Motorola Solutions LaunchPad Developer ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>NX</strong> <strong>Application</strong> <strong>Services</strong><br />
Rob Mellencamp
Agenda<br />
• <strong>NX</strong> Integrated <strong>Services</strong> Platform<br />
• <strong>NX</strong> Virtualization Architecture<br />
• <strong>Application</strong> Integration Example<br />
• <strong>Application</strong> API<br />
• Single Sign-On<br />
• Statistics / Analytics APIs
Enterprise Mobility Architecture<br />
VIRTUALIZED<br />
SOLUTION FOR<br />
WING5 WLAN HIERARCHICAL<br />
MANAGEMENT<br />
NETWORK<br />
ASSURANCE<br />
MOBILE DEVICE<br />
MANAGEMENT<br />
TELEPHONY<br />
MANAGEMENT<br />
AIRDEFENSE<br />
IDS/IPS<br />
CLOUD SERVICES & MANAGEMENT<br />
<strong>NX</strong> 9500<br />
<strong>NX</strong> 4500 / <strong>NX</strong> 6500<br />
Virtual Controller RFS 4000<br />
<strong>NX</strong> 4500 / <strong>NX</strong> 6500<br />
MOTOROLA SOLUTIONS CONFIDENTIAL RESTRICTED
<strong>NX</strong>9500<br />
<strong>NX</strong>6500<br />
AP8132<br />
ADSP VM<br />
ADSP VM<br />
Linux VM<br />
Linux VM<br />
Linux VM<br />
Linux VM<br />
Windows VM<br />
Windows VM<br />
<strong>NX</strong> Integrated <strong>Services</strong> Platform<br />
<strong>Application</strong> Hierarchy<br />
NOC/HQ/Datacenter<br />
WIRELESS LAN<br />
MANAGEMENT<br />
MOBILE<br />
DEVICE<br />
MANAGEMENT<br />
TELEPHONY<br />
MANAGEMENT<br />
CENTRALIZE<br />
IDS/IPS<br />
NETWORK<br />
ASSURANCE / SLA<br />
MANAGEMENT<br />
APPLICATION<br />
PROVISIONING<br />
INTERNET<br />
APPLICATION DELIVERY<br />
DSL/T1<br />
Branch Office<br />
TELEPHONY<br />
MANAGEMENT<br />
VIDEO<br />
WORKFORCE<br />
MANAGEMENT<br />
BYOD IP CAMERA POS<br />
IP phones
<strong>NX</strong> Integrated <strong>Services</strong> Platform<br />
<strong>NX</strong> <strong>Application</strong> <strong>Services</strong><br />
• Set of APIs for <strong>NX</strong> Integrated <strong>Services</strong><br />
• Supported by <strong>Application</strong>s Running on <strong>NX</strong><br />
• <strong>NX</strong>4500 (<strong>Motorola</strong> VMs)<br />
• <strong>NX</strong>6500, <strong>NX</strong>9500 (<strong>Motorola</strong> and Customer VMs)<br />
• <strong>Application</strong> <strong>Services</strong><br />
• Statistics / Configuration Access<br />
• Analytics Access<br />
• WiNG Integration<br />
• Monitoring<br />
• Single Sign-On<br />
• UI Launch Point
ADSP VM<br />
TEAM VM<br />
Linux VM<br />
Linux VM<br />
Windows VM<br />
Custom VM<br />
<strong>NX</strong> Virtualization Architecture<br />
WLAN<br />
<strong>Services</strong><br />
Virtualization<br />
Configuration<br />
Virtual Switch<br />
<strong>NX</strong> API<br />
WiNG (Integrated Xen)<br />
Analytics<br />
Single Sign-On<br />
Events<br />
<strong>NX</strong>4500 / <strong>NX</strong>6500 / <strong>NX</strong>9500
Energy<br />
Management<br />
<strong>Application</strong><br />
<strong>Application</strong> Integration Example<br />
Energy Management <strong>Application</strong><br />
• Khepri (AP8132) Sensor<br />
• Collects environmental data<br />
• Feeds data to <strong>NX</strong> device<br />
• Data stored in <strong>NX</strong> database<br />
• Energy <strong>Application</strong><br />
• Installed on <strong>NX</strong>6500<br />
• Integrated into WiNG framework<br />
• Registration<br />
• UI Launch Point<br />
• WiNG UI Integration<br />
• Pull sensor data from WiNG<br />
• Uses REST Analytics API<br />
• Act upon data retrieved<br />
WLAN<br />
<strong>Services</strong><br />
Sensor<br />
Module<br />
DataStore<br />
AP8132<br />
Sensor<br />
Module<br />
Lower Heat<br />
<strong>NX</strong> API<br />
<strong>NX</strong>6500<br />
• Light<br />
• Temperature<br />
• Occupancy
Link Local<br />
Energy<br />
Management<br />
<strong>Application</strong><br />
<strong>Application</strong> Integration Example<br />
<strong>Application</strong> API: Internal Communication<br />
• WiNG Manages VM Interfaces<br />
• VLAN Id Mapping<br />
• Security (IP/MAC Inbound ACLs)<br />
• Multiple Interfaces per VM<br />
• Link Local IP<br />
• VM Communication with WiNG<br />
• 169.254.0.0/16<br />
WLAN<br />
<strong>Services</strong><br />
<strong>NX</strong> API<br />
Virtual Switch<br />
WiNG
Energy<br />
Management<br />
<strong>Application</strong><br />
<strong>Application</strong> Integration Example<br />
<strong>Application</strong> API: Registration<br />
• Registration API<br />
• <strong>Application</strong> Registration on Startup<br />
• Required Only for Integrated Apps<br />
• <strong>Application</strong> Name<br />
• <strong>Application</strong> Version<br />
• <strong>Application</strong> UI Launch URL<br />
WLAN<br />
<strong>Services</strong><br />
URL<br />
POST<br />
http://169.254.0.1/rest.fcgi/services/rest/regis<br />
ter<br />
Payload<br />
<br />
energyapp<br />
http://192.168.1.1<br />
2.1<br />
<br />
Response<br />
Virtual Switch<br />
<br />
true<br />
<br />
<strong>NX</strong> API<br />
WiNG
Energy<br />
Management<br />
<strong>Application</strong><br />
<strong>Application</strong> Integration Example<br />
<strong>Application</strong> API: Keepalive<br />
• Keepalive API<br />
• Sent Periodically From <strong>Application</strong><br />
• Signals <strong>Application</strong> is Healthy<br />
• If Stops, Event is Generated<br />
• On Fail, Re-registration Required<br />
WLAN<br />
<strong>Services</strong><br />
<strong>NX</strong> API<br />
URL<br />
POST<br />
http://169.254.0.1/rest.fcgi/services/rest/keepa<br />
live<br />
Response<br />
Virtual Switch<br />
WiNG<br />
Payload<br />
<br />
energyapp<br />
<br />
<br />
false<br />
<strong>Application</strong> not<br />
registered<br />
Energy<br />
Management<br />
<strong>Application</strong><br />
<strong>Application</strong> Integration Example<br />
<strong>Application</strong> API: Notification<br />
• Notification API<br />
• Sent From <strong>Application</strong> on Event<br />
• Injected into WiNG Event System<br />
• SNMP, System Log, Email<br />
URL<br />
WLAN<br />
<strong>Services</strong><br />
POST<br />
http://169.254.0.1/rest.fcgi/services/rest/notif<br />
y<br />
<strong>NX</strong> API<br />
Payload<br />
<br />
energyapp<br />
1281935155<br />
ENERGY_LOWER_HEAT<br />
info<br />
energy_management<br />
Heat lowered to 70° F.<br />
<br />
Response<br />
Virtual Switch<br />
<br />
true<br />
<br />
WiNG
<strong>Application</strong> Integration Example<br />
Single Sign-On<br />
3<br />
WiNG Embeds CAS Ticket into<br />
VM URL and Launches VM UI<br />
1<br />
WiNG User Clicks on<br />
VM Launch Button<br />
8 On Success, User Logged In<br />
On Failure, VM Login Screen Shown<br />
4<br />
VM UI Extracts Ticket and Forwards<br />
to Backend for Authentication<br />
<strong>NX</strong> 6500<br />
7<br />
WiNG Returns Success/<br />
Failure to VM UI<br />
Public (192.168.0.0/24)<br />
2<br />
WiNG Backend<br />
Generates a CAS Ticket<br />
WiNG<br />
<strong>Services</strong><br />
Partner VM<br />
6 VM Validates User Exists<br />
in Custom Local Database<br />
CAS<br />
5<br />
Private (169.254.0.0/24)<br />
VM Validates CAS<br />
Ticket with WiNG<br />
• Central Authentication Service (CAS)<br />
• VM Accepts CAS Authentication Token<br />
• Validates with WiNG CAS <strong>Services</strong>
<strong>Application</strong> Integration Example<br />
Statistics<br />
• WiNG Runtime Data<br />
• Current Level of Hierarchy and Below<br />
• Accessed through NETCONF API<br />
System RF Domain Device Client Radio<br />
System-Wide<br />
Site-Wide<br />
Device-Specific<br />
Client-Specific<br />
Client-Specific<br />
- RF Domains<br />
- Devices<br />
- Dashboard Stats<br />
- Clients<br />
- Clients<br />
- Radios<br />
- WLANs<br />
- Captive Portal<br />
- Mesh Links<br />
- Firewall/Security<br />
- Clients<br />
- Radios<br />
- WLANs<br />
- Captive Portal<br />
- Mesh Links<br />
- Firewall/Security<br />
- <strong>Services</strong><br />
- Network/Routing<br />
- System<br />
- Client Details<br />
- User Details<br />
- Traffic<br />
- RF Quality<br />
- Radio Details<br />
- Traffic<br />
- RF Quality<br />
- WLAN
<strong>Application</strong> Integration Example<br />
Statistics: NETCONF<br />
• Configuration / Statistics / Operations<br />
• Based on NETCONF (RFC 4741)<br />
• Implemented with XML-RPC<br />
• Security through HTTPS<br />
• Enhanced Performance<br />
• Subtree filtering to access relevant data<br />
• Consolidate queries into a single request<br />
• Data Represented as Yang Schema (RFC 6020)<br />
• NETCONF extensions to increase performance
<strong>Application</strong> Integration Example<br />
Statistics: NETCONF Messages<br />
Get All Clients in Domain1<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Domain1<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Get Details for Specific Client in Domain1<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Domain1<br />
<br />
<br />
aa-bb-cc-dd-ee-ff<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<strong>Application</strong> Integration Example<br />
Analytics<br />
• WiNG Historical / Trending Data<br />
• Time-Based Filtering<br />
• RESTful APIs, HTTPS for Security<br />
• Support for XML and JSON Representations<br />
RF Domain<br />
Wireless<br />
Client<br />
WLAN<br />
Radio<br />
Captive<br />
Portal<br />
- RF Domain<br />
- Client Count<br />
- Radio Count<br />
- Signal<br />
- Signal to Noise<br />
- Traffic Data<br />
- Traffic Index<br />
- Quality Index<br />
- Threat Level<br />
- Client Details<br />
- Traffic<br />
- RF Quality<br />
- Threat Level<br />
- Client Count<br />
- Traffic Data<br />
- RF Quality<br />
- Client Count<br />
- Signal<br />
- Signal to Noise<br />
- Traffic Data<br />
- Traffic Index<br />
- Quality Index<br />
- AP MAC<br />
- Client MAC<br />
- Search Terms<br />
- URL<br />
- WLAN Name
<strong>Application</strong> Integration Example<br />
Analytics: URL Format<br />
GET https://localhost/analytics/services/rest/(nx,stats,dynamic)/now/60000/f/site1/res.xml<br />
Name<br />
GET<br />
https://localhost/<br />
analytics/services/rest/<br />
(nx, stats, dynamic)/<br />
now/<br />
Detail<br />
Method Name<br />
Access WiNG Device<br />
URI for the Analytics REST Service<br />
3-tuple (Table Name, Column Family, Qualifier)<br />
Current timestamp (“now” or current UTC long)<br />
60000 Go back this many seconds (historical data)<br />
f/ Prefix part of row key (f:site, r:radio, d:device,<br />
w:wlan, c:client)<br />
site1/<br />
res.xml<br />
Suffix part of row key (site*:all starting with site)<br />
Return XML format (res.json for JSON Format)
<strong>Application</strong> Integration Example<br />
Analytics: Basic Filtering<br />
queryFilter=()()(,..,< elementN to filter>)<br />
Operation<br />
• (+) Include items which<br />
match this filter<br />
• (-) Exclude items which<br />
match this filter<br />
Criteria<br />
• Filter match<br />
Filter Elements<br />
• What should be returned<br />
Example:<br />
(-)(CaptivePortalStats.url=youtube.com)(CaptivePortalStats.clientMacAddress,<br />
CaptivePortalStats.searchTerms)<br />
• Exclude all entries<br />
• Where url equals youtube.com<br />
• And return clientMacAddress and searchTerms
<strong>Application</strong> Integration Example<br />
Analytics: Advanced Filtering<br />
• MVEL 2.0<br />
• Expression Language<br />
• Filter Types<br />
• Criteria Filter<br />
• Determines what should be returned<br />
• Names Filter<br />
• What elements are part of the response<br />
• GroupBy Filter<br />
• Common analytics functions<br />
• SUM, COUNT, FREQ, MIN, MAX
Thank You