06.04.2014 Views

NX Application Services - Motorola Solutions LaunchPad Developer ...

NX Application Services - Motorola Solutions LaunchPad Developer ...

NX Application Services - Motorola Solutions LaunchPad Developer ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!