56
JUNOS SPACE SDK Ivan Vojvodić Sr. Director, DBU

An In-Depth Look at Junos Space SDK

Embed Size (px)

DESCRIPTION

Learn more about the Junos Space SDK, it's APIs, Tools, and more. See specific code samples using Junos Space APIs with Java, Perl, Python, PHP, .NET, and more. Walk thru customer examples.

Citation preview

Page 1: An In-Depth Look at Junos Space SDK

JUNOS SPACE SDKIvan VojvodićSr. Director, DBU

Page 2: An In-Depth Look at Junos Space SDK

2 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

Transforming the experience and economics of networking

SETTING THE AGENDA FOR THE NEXT DECADE

Page 3: An In-Depth Look at Junos Space SDK

3 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

THE PLACE OF THE NETWORK

Page 4: An In-Depth Look at Junos Space SDK

4 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

CHANGES IN THE WORLD OF NETWORKING

The Evolution of a Platform

Simple Functionality Feature Phone App Enabled Devices

SINGLEPURPOSE

MULTIPURPOSE

GENERALPURPOSE

Page 5: An In-Depth Look at Junos Space SDK

5 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

THE NEW NETWORK EQUATION

High Performance Networking Developer Solutions Accelerated Innovation

Reliable

Fast

Scalable

Simple

Secure

Agile

Innovative

RAD

Open

New, better experiences

New flexibility & agility

New customer solutions

$ New revenue sources

The New NetworkEcosystem InnovationNetwork Innovation

layers of software instead of layers of protocols

Page 6: An In-Depth Look at Junos Space SDK

6 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

CONNECT EVERYTHINGfrom Client, through the Network, to the Device

OUR MISSION AND COMMITMENT TO DEVELOPERS

SILICON SYSTEMS SOFTWARE

Page 7: An In-Depth Look at Junos Space SDK

7 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

Opportunity for Across-the-network Innovation

Opportunity for On-device Innovation

Opportunity for Network End-point Innovation

Network Application Layer

User Application Layer

Network DeviceLayer

JUNIPER PROGRAMMABLE NETWORK PLATFORMS

Page 8: An In-Depth Look at Junos Space SDK

8 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

OPEN, NETWORK-CENTRIC APP PLATFORM

Open, Extendable, Flexible and Powerful Network Application and

Orchestration Platform

SOLUTIONCHALLENGES

• Easy Monetization

• Open App Platform

• Language Independent

• Network Abstraction

• Flexible Integration

• RAD, Quicker GTM

BENEFITS FOR DEVELOPERS

Junos Space Development Platform

Toolkit APIs

“…there’s no standard way to tap into the network.”

“…long / complex dev cycles.”

“…I need an end-to-end view.”

“…I’m not a networking expert.”

DEVELOPER

“ “… high complexity of networks and services”

“…leverage investment in existing OSS/BSS solutions.”

“…end to end service mgmnt.”

END USER

Page 9: An In-Depth Look at Junos Space SDK

9 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

SOFTWARE = PLATFORM + APPS

Expensive and inefficient

Consistency, security and performance lapses

Focus on innovation Reduce production costs Increase speed of

development An SDK decouple velocity

of application innovation from platform innovation

OLD WAY

System,Platform,

Interfaces,and

Foundation Development

ApplicationInnovation

ApplicationInnovation

Software Development Kit

+Platform

Reducedevelopertime to

innovation

NEW WAY

Page 10: An In-Depth Look at Junos Space SDK

10 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

JUNOS SPACE SDK

Innovate

Insight into the network

Extend to boost value

End to end service and data correlation

Accelerate

Reduce time, complexity

Powerful toolset: Eclipse, RESTful APIs

Accelerate throughcollaboration

Accelerate development cycle with open, extendable and powerful development platform and toolkit

Community of partners and developers

Access existing customers

Gain expert knowledge!

Training, support + leverage partnerships to influence and monetize.

Collaborate

Innovate with Junos Space Platform utilizing a direct access to network data and resources

Page 11: An In-Depth Look at Junos Space SDK

11 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

Action

ConfigureProvisionDynamic Policy

UNLOCK THE POWER OF THE NETWORK

Assets

Networking Devices, Servers, Databases, Applications etc.

AF

FE

CT

S Data

CREATE

InventoryHistoryReal-time

Value

GENERATE

INS

IGH

T

FilterCorrelateCombine

Page 12: An In-Depth Look at Junos Space SDK

12 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

THE JUNOS SPACE PLATFORM

All controlled from your browserJunos Space

HOW DO YOU TURN NETWORK DATA INTO KNOWLEDGE?

Management, Analytics, Monitoring, Orchestration

Page 13: An In-Depth Look at Junos Space SDK

13 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

Network

ANSWER:Add network operations insight to businesses, and

business insight to network operations

JBoss Java EE Application Server

EJB Container

Service Application(s)

Stateless Session Beansor MDBs (Business Logic)

@Statelesspublic class FooEjb {}

Database Server

Web Container

Service Application(s)

RESTful Resource Class

@Path(“/foo”) public class FooResource {@EJB private FooEJB fooEjb; }

Native RESTEasy Servlet(JAX-RS)

JPA

Junos Space Fabric/Cluster:

RESTful Web ServicesAbstract the Network

Inject

Space UI:Other Business Systems

DMI

Page 14: An In-Depth Look at Junos Space SDK

14 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

PROGRAMMABLE

POWERFUL

FLEXIBLE

Top

olo

gy

PROGRAMMABLE NETWORK APPLICATION PLATFORM

APPLICATIONS

Juniper Apps 3rd Party Apps

Network Activate ● Virtual Control ● Service Now ●

… others

NM ● Security ● OSS ● BSS ● Green/Energy ● Adapters (MTOSI,…) ● … others

Network Interface (DMI)

Junos Space RESTful Web Service

JUNOS SPACE PLATFORM

Con

figur

atio

n

Inve

ntor

y

Dev

ice

Mgm

t

Dev

ice

S/W

Mgm

t

Scr

ipts

Use

r M

gmt

Jobs

App

Life

Cy

Tagg

ing

Filt

erin

g

AP

I Dis

c.

Device & Network Abstraction Services Infrastructure Services

Open NetworkApplicationPlatform

Page 15: An In-Depth Look at Junos Space SDK

15 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

APPLICATIONS

Juniper Apps 3rd Party Apps

Network Activate ● Virtual Control ● Service Now ●

… others

OSS ● BSS ● Green/Energy ● Adapters (MTOSI,…) ● … others

Network Interface (DMI)

Junos Space RESTful Web Service

JUNOS SPACE PLATFORM

Con

figur

atio

n

Inve

ntor

y

Dev

ice

Mgm

t

Dev

ice

S/W

M

gmt

Scr

ipts

Use

r M

gmt

Jobs

App

Life

Cy

Tagg

ing

Filt

erin

g

AP

I Dis

c.

Device & Network Abstraction Services Infrastructure Services

HIGH LEVEL JUNOS SPACE ARCHITECTURE

Junos Space Functional Architecture

Local Persistence

Infrastructure Services

Interface ServicesRESTful wrappers,

RBAC (UI, NBI), Application Deployment, UI,…

Device and Network

Abstraction Services

APIs & Libraries

Platform Management

Page 16: An In-Depth Look at Junos Space SDK

16 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

JUNOS SPACE SDK - WHAT’S INSIDE THE BOX

Powerful, integrated, familiar developer environment

Community

DeveloperGuide

APIReference

Guide

Reference &

Sample Apps

Inline help

JUNOS SPACE SDKJUNOS SPACE SDK

APIs Developer Tools

Eclipse IDE

Logging + debugging

DeviceSimulators

PlatformSimulator

UI Builder UI Library

DEVICE & NETWORK

ABSTRACTION SERVICES APIs

INFRSTRUCTURE SERVICES APIs

Support and

ForumsTraining

Page 17: An In-Depth Look at Junos Space SDK

17 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

THE POWER OF ABSTRACTION Mastering complexity vs extracting simplicity

Page 18: An In-Depth Look at Junos Space SDK

18 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

THE POWER OF ABSTRACTION

Example of NOT extracting simplicity

Page 19: An In-Depth Look at Junos Space SDK

19 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

THE ROLE OF APIS

Good example of extracting simplicity: Abstractions

Interfaces (APIs) are instantiations of abstractions

Interfaces shield from low-level details

Allow freedom of implementation (on both sides)

They do not remove complexity, just hide it!

Extracting simplicity example:

Page 20: An In-Depth Look at Junos Space SDK

20 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

De

vic

e M

gm

t

De

vic

e &

Ne

two

rk

inv

en

tory

Co

nfi

g M

gm

t

S/W

Im

ag

e M

gm

t

USER MGMT. & AUTHENTICATION

JOB MANAGEMENT

APP LIFE CYCLE MANAGEMENT

TAGGING & FILTERING API DISCOVERY

INFRASERVICES APIs

CONFIGURATION MGMT SERVICE

NETWORK & DEVICE

INVENTORY SERVICE

DEVICE MGMT SERVICE

SCRIPT MGMT SERVICE

DEVICE SOFTWARE

MGMT SERVICE

DEVICE & NETWORK

ABSTRACTION SERVICES APIs

JUNOS SPACE APIs

Modify device configuration using Change Requests

Configuration Templates

Archive Configurations

using Configuration Files

Discover devices in the network

Network & Device inventory

Logical and Physical inventory

Archive raw and expanded device

configurations

Fetch Device Syslog

Execute CLI commands via NetConf RPC

Archive JunoScripts on Space

Upload and execute scripts on

devices

Execute Op Scripts, Event Scripts and Commit Scripts

Archive Device Software

Manage software versions on devices

Upload software to one or more

devices

Create, Read, Update and Delete

operations on Users

Manage User Roles & Capabilities

User Authorization and Authentication (includes external

authentication)

List of active and completed jobs

Determine status of job execution including Job

Details

Ability to create new Jobs and cancel a

running job

Manage Applications

installed on Space

Specify and Configure run time

parameters for applications

Control Application Lifecycle

Create, Read, Update and Delete application defined

Tags

Associate tags with objects defined in your applications

Search and Filter using Tags

Discover the services exposed

by the platform

Discover the services exposed

by applications

Read the meta data associated with the

services

Page 21: An In-Depth Look at Junos Space SDK

21 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

JS SDK - DEVELOPMENT TOOLKIT

Plug-in for Eclipse

New Application

EJB to REST

Module definition

Application packaging and

licensing

Logging & Debugging

Chainsaw Logger

Static Analysis using PMD

UI Builder

Drag & Drop UI Components

Space UI Components

Platform Simulator

Debug and test applications

Qualify apps on Space platform

Device Simulator

Junos compatible device simulation

Scale testing

1 2 3 4 5

Page 22: An In-Depth Look at Junos Space SDK

22 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

JS SDK COMMUNITY

App Developer Guides

API Reference Guide

Sample applications Developer community and forums

Docs & Support

Junos Space SDK

Documentation

SDK Installation Guide

Online Developer Training

1 day hands-on training

Junos Space SDK

Training

3 day expert training

JDN

JS SDK Download

JS SDK Forum

Juno Space Platform TrainingBuilt-in Reference

Page 23: An In-Depth Look at Junos Space SDK

23 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

Junos Space Simulator

Simulated Devices

Junos Space

SDK Plug-in

for Eclipse

UI Builder for

Junos Space

DEVELOPMENT ENVIRONMENTAll you need is one laptop.

Host OS

Junos Space IDE

Application

Simulated Devices

Application UI

Junos SpaceVM HostBrowser

Eclipse

Page 24: An In-Depth Look at Junos Space SDK

24 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

APPLICATION EXAMPLESUSTAINABILITY & COMPLIANCE: KNOWLEDGE GLOBAL

Retrieve IT resource power

consumption

Lack of holistic energy usage metric to reduce cost and carbon emissions and its impact on operations in a global scale.

CHALLENGE

1

Comprehensive energy insight

Combination of IT & facility energy data

Sustainability compliant reports

SOLUTION

3

APPROACH

2

Leverage Junos Space to retrieve device level energy usage and integrate to a system of energy measurement, analysis and reporting, EMMA.

devices

Generate sustainability &

compliance reports –

Greenhouse Gas

The Network

Facilitiesreports

Page 25: An In-Depth Look at Junos Space SDK

25 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

EMMA - ARCHITECTURE OVERVIEW

Melbourne

Page 26: An In-Depth Look at Junos Space SDK

26 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

KG API-S + CODE SAMPLE…

ISSUE <get-environment-pem-information> RPC COMMAND

private static String DEVICES_URL = "/device-management/devices";private static String API_RPC_URL_PRE = "/api/space/device-management/devices/";private static String API_RPC_URL_POS = "/rpc";…..private static final String ENV_PEM_CMD = "<get-environment-pem-information/>";…

public String getDeviceReading(String deviceId, String rpcCommand){ String sret = ""; String apiURL = baseURL + API_RPC_URL_PRE + deviceId + API_RPC_URL_POS;… request.accept(acceptType); String data="<netconf><rpcCommands><rpcCommand><![CDATA[" + rpcCommand + "]]></rpcCommand></rpcCommands></netconf>"; request.body(contentType, data); ClientResponse<String> cresp = request.post(String.class); int respStatus = cresp.getStatus();

REST API RPC command Description

api/space/device-management/devices/exec-rpc

get-interface-information The API allows an RPC command to be executed. This RPC command gets detailed information around the interfaces on the device. We used the statistics information set to calculate total data throughput across the interfaces. This command is periodically polled to the devices.

api/space/device-management/devices/exec-rpc

get-environment-pem-information The API allows an RPC command to be executed. This RPC command gets detailed information around the power modules in the device. This command is periodically polled to the devices so we can determine aggregated power consumed

REST API Description

api/space/device-management/devices

The API queries the space instance to get the devices connected. This command returns the device id’s, status and associated information on each device. This is used to determine the devices on line before querying the devices using the RPC calls.

Page 27: An In-Depth Look at Junos Space SDK

27 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

KNOWLEDGE-GLOBAL DEMO VIDEO

Page 28: An In-Depth Look at Junos Space SDK

28 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

OPEN FOR APPLICATIONS & INTEGRATIONApplication and services platform to address real-world challenges

AP

P C

HO

ICE

S

EXTENSIONRICH APPS

NATIVE NON-NATIVE

RICH APPS MASHUPS

APIs

InfrastructureServices

Device & Network Abstraction

Services

MASHUPS

Independent Software Vendors

EnterpriseSystem

IntegratorsService Provider

Page 29: An In-Depth Look at Junos Space SDK

29 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

JUNOS Space Platform Hosted Apps

Externally Hosted Apps

NON-NATIVE

RICH APPS MASHUPSEXTENSIONRICH APPS

NATIVE

MASHUPS

JS SDK APPLICATION TYPESA

PP

CH

OIC

ES

UI Component

Web Service Component

Server-side Component

RICH APPS

Web Service Component

Server-side Component

EXTENSIONUI Component

MASHUPS

UI Component

Web Service Component

Server-side Component

RICH APPS

UI Component

MASHUPS

Junos Space Platform API Services Stack

Page 30: An In-Depth Look at Junos Space SDK

30 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

RESTful Web Services

NON-NATIVE RICH APP :: INTEGRATION EXAMPLE:

Both native and non-native apps can access platform services and bus. logic. 

Non-native Apps enable the delivery of modular functionality with the ability to plug-in new capabilities/ customizations based on need

Platform and hosted Apps expose RESTful Web Services that can act as a Northbound Interface out of the platform for external Apps/Services to consume

Adaptors can be created for technology specific NBI.

Examples - MTOSI, TMF 814, etc …

Junos SpaceNetwork Application Platform

NON-NATIVERICH APP

UI Component

Web Service Component

Server-side Component

RICH APPS

Web Service Component

Server-side Component

EXTENSION

UI Component

MASHUPS

Page 31: An In-Depth Look at Junos Space SDK

31 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

LANGUAGE INDEPENDENT NETWORK ABSTRACTION API

Get identifier for device

XML Option forJSON

https://127.0.0.1/api/space/device-management/devices?filter=(name eq ‘Torino’)

Page 32: An In-Depth Look at Junos Space SDK

32 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

Java pg1

package test;

import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.UsernamePasswordCredentials;import org.apache.commons.httpclient.auth.AuthScope;import org.apache.commons.httpclient.HttpStatus;import org.codehaus.jettison.json.JSONObject;import org.jboss.resteasy.client.ClientRequest;import org.jboss.resteasy.client.ClientResponse;Import org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor;

public class RESTdevice { private static String SpaceURL; private static ApacheHttpClientExecutor clientExecutor;

public static void main(String[] args) {SpaceURL = "http://127.0.0.1:8080";

string url = SpaceURL + "/api/space/device-management/devices/229389";

UsernamePasswordCredentials credentials =

new UsernamePasswordCredentials(args[1], args[2]);

HttpClient httpClient = new HttpClient(); httpClient.getState().setCredentials(AuthScope.ANY, credentials); httpClient.getParams().setAuthenticationPreemptive(true);

clientExecutor = new ApacheHttpClientExecutor(httpClient);

Java pg2

ClientRequest request = new ClientRequest(url, clientExecutor);

System.out.println("==> GET " + url);

ClientResponse<String> response =request.get(String.class); // GET method

if (HttpStatus.SC_OK != response.getStatus()) { throw new Exception("Could not get device: " + response.getStatus());} JSONObject jsonObject =

new JSONObject(response.getEntity()); }}

JUNOS SPACE API AND JAVA EXAMPLE

Specify RESTful service request arguments Issue RESTful service request to

get network device info

Process the response

Page 33: An In-Depth Look at Junos Space SDK

33 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

JUNOS SPACE API AND .NET C# EXAMPLE

Hammock open source lib To enable easy REST

Create User Auth Cred object

Create RestClient object w/ FQ URL to the API.Assign ACCEPT header to request for XML

Create + Associate RestRequest object w/ the Cred object

Submit GET request and receive RestResponse and print response.Content

Page 34: An In-Depth Look at Junos Space SDK

34 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

Perl

#!/usr/bin/perl

use REST::Client; # Used for invoking RESTful APIs on Space

use MIME::Base64; # Used for encoding userid and password

use XML::LibXML; # Used for parsing XML responses from Space

my $client = REST::Client->new();

my $headers = {

Authorization => 'Basic ' . encode_base64($userid . ':' . $password),

"Content-Type" => "application/x-www-form-urlencoded" };

$client->GET('http://127.0.0.1:8080/api/space/device-management/devices/229389', $headers);

if ( $client->responseCode() == 200 ) {

my $xmlResponse = $client->responseContent();

$xs = XML::LibXML->new();

$doc = $xs->parse_string($xmlResponse);

} else {

print $client->responseCode()."\n";

}

JUNOS SPACE API AND PERL EXAMPLE

Issue RESTful service request to get network device info

Process the response

Page 35: An In-Depth Look at Junos Space SDK

35 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

JUNOS SPACE API AND PYTHON EXAMPLEimport simplejsonimport httplib, urllibmethod = "GET"host = "http://127.0.0.1:8080"uri = "/api/space/device-management/devices/229389"body = ""

headers = { "Content-Type": "application/x-www-form-urlencoded",}

def request(method, host, uri, body, headers = {}): conn = httplib.HTTPConnection(host) conn.request(method.upper(), uri, body, headers)

response = conn.getresponse() print response.status, response.reason

if response.status == 200:""" Load a JSON data obj = simplejson.loads(response.read())""" obj = response.read() return obj else: print response.status, response.reason, response.read() conn.close()

""" Execute the HTTP call"""request(method, host, uri, body, headers = {}):

Issue RESTful service request to get network device info

Process the response

Page 36: An In-Depth Look at Junos Space SDK

36 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

JUNOS SPACE API AND PHP EXAMPLEPHP pg1<?php require_once 'HTTP/Client.php';

$url = "http://127.0.0.1:8080/api/space/device-management/devices/229389"; $headers = array( "Content-Type" => "application/x-www-form-urlencoded", ); $body = "";

/*------- * HTTP_Client call (http://pear.php.net/package/HTTP_Client) */ $client = new HTTP_Client(); $responseCode = $client->get( $url, $headers) echo $responseCode $resp = $client->currentResponse(); $data = $resp['body']; echo $data // load XML data //$dom = new DomDocument(); //$dom->loadXML( $data );

PHP pg2

/*------- * CURL synchronous call */ function request($method, $url, $headers = array(), $body) { $conn = curl_init(); curl_setopt($conn, CURLOPT_URL, $url); curl_setopt($conn, CURLOPT_HTTPHEADER, $headers); curl_setopt($conn, CURLOPT_USERAGENT, "HTTP4e/3.0"); curl_setopt($conn, CURLOPT_CUSTOMREQUEST, strtoupper($method)); curl_setopt($conn, CURLOPT_POSTFIELDS, $xml_data); curl_setopt($conn, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($conn); $code = curl_getinfo($conn, CURLINFO_HTTP_CODE); echo $code curl_close($conn); return $data; } ?>

Issue RESTful service request to get network device info

Process the response

Page 37: An In-Depth Look at Junos Space SDK

37 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

THE POWER OF RESTful APIs

HTTP

JUNOS SPACE PLATFORM3rd party APP 2

RESTful API - exposed

Junos SpacePlatform Stack

APP 1Provided service

3rd party APP 1

APP 1

APP 2

APP 2Provided service

Native + Extension Apps can extend the platform, by way of exposing their own APIs for other Apps to consume.

No hard dependency between high level apps

Mash-up service to allow soft dependency

Page 38: An In-Depth Look at Junos Space SDK

38 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

Download and Install Junos Space SDK

Developer Workflow

CertificateDeveloper

Support Signed Application Package

Application Binary

AND DEPLOYING APPSBUILDINGSystem Administrator Workflow

Loads the app on Junos Space

Developer Code

APIs, Simulators, Test + Build Environment

Page 39: An In-Depth Look at Junos Space SDK

APP DEVELOPMENT DEMO

Page 40: An In-Depth Look at Junos Space SDK

40 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

ARCHITECTUREDEVICE HEALTH MONITOR APP

Device Health Monitor App

REST Web-Service Layer

EJB LayerUses Space API to monitor device health & traffic

Junos Space Platform

Google DataSource API

RESTClients

GoogleMashupBrowser

XML/JSONHTTP

GoogleDataTable

UI Layer

Page 41: An In-Depth Look at Junos Space SDK

41 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

SPACE GUIDEVICE HEALTH MONITOR APP

List of Devices

Basic Health Parameters

Traffic Statistics

Chassis View

Page 42: An In-Depth Look at Junos Space SDK

42 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

GOOGLE MASHUP GUIDEVICE HEALTH MONITOR APP

External GUI using JavaScript/HTML

Invokes the Google DataSource APIs implemented by our Health Monitor App

Uses the following Visualization API from Google:

Table Gauge AreaChart

Page 43: An In-Depth Look at Junos Space SDK

44 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

MASHUP GUISPACE PLATFORM API + APPS API + GOOGLE API

External GUI using JavaScript/HTML

Mashup between Space Platform APIs

To obtain devices based on tags TagIt API

To automatically tag devices HealthMon API

To collect traffic data for devices Google Visualization API

Geo Map to depict concentration of devices across locations

Motion Chart to depict change in traffic patterns across locations

Page 44: An In-Depth Look at Junos Space SDK

Software Vendor Testimonial

Page 45: An In-Depth Look at Junos Space SDK

46 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

EXAMPLE: NETWORK VIRTUALIZATION

SOLUTION

Application: Virtual Switch

Benefits:• Reduces operational complexity and expense• Rapid to setup/tear-down

• Cheap/free to change

• Isolated from other users

• User chooses the :

• Connections, VLANs, ACLs…

Availability:OpenFlow: Any Juniper Networks systems supporting Junos control-plane applicationsVirtual Switch: Junos Space

APPROACH

Old: Manually configure devices which are harder to adapt quickly

New: • Use Big Switch’s OpenFlow controller to create “virtual L2 switches.”• Make the selected nodes look as if they are locally connected.• Use Junos Space as the platform to integrate and deliver this solution.

Technology:• Juniper OpenFlow-enabled device run the OpenFlow app built with the Junos SDK.• The Virtual Switch app is implemented with the Junos Space SDK.

CHALLENGE

Goal: Take a distributed multiple domain, site, layer, tenant network and use OpenFlow switches to virtualize a simpler network

Target:• Data Center Networks(allocate servers on demand to the appropriate datacenter L2 network independent of network /VLAN design)

Partner: Big Switch NetworksApplication: Virtual Switch

Page 46: An In-Depth Look at Junos Space SDK

47 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

THE CONCEPT – SIMPLIFY THE NETWORK

Group together devices andseparate the groups with a virtual switch

Page 47: An In-Depth Look at Junos Space SDK

48 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

THE SOLUTION – NETWORK VIRTUALIZATION

A simple switch connects only the hosts for a specific application/usecase/tenant:

• Rapid to setup/tear-down

• Cheap/free to change

• Isolated from other users

• Self-managed:

• User choose the connections

• User chooses the VLANs

• User chooses the ACLs …

Allow the Customer to define the logical networks they need

Page 48: An In-Depth Look at Junos Space SDK

49 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

Junos Space Server

Big Switch Controller(manages OF switches)

Junos Space VM(manages rest of devices)

RESTful Web Service APIs

JUNOS SPACE INTEGRATION

Page 49: An In-Depth Look at Junos Space SDK

50 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

Building good user interface is hard“Junos Space has done the “heavy lifting” of designing, implementing and integrating all the components required for a unified and complete management application.”

Good network knowledge/access is rare“Junos Space SDK has made the network ‘plumbing’ information available in comprehensive and easy-to-use REST APIs (as opposed to the nightmare of brittle screen scraping with expect), enabling enterprise-class solutions.”

TECHNICAL CHALLENGES SOLVED BY JUNOS SPACE

Page 50: An In-Depth Look at Junos Space SDK

51 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

Reduced cost of development“By building on a complete platform, we greatly reduced the cost of developing the feature. We could focus on the novel and differentiated solution for our customers without spending significant engineering time on plumbing/infrastructure that Junos Space already has.”

Quicker go-to-market“Very simply, getting to market quickly is crucial for everyone, but especially for a startup. Junos Space means we’re quicker to market with a complete solution.”

Larger reach“By integrating with Junos Space, we made our solution far more accessible to a large section of our target market.”

BUSINESS CHALLENGES SOLVED BY JUNOS SPACE

Page 51: An In-Depth Look at Junos Space SDK

52 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

This is a new way to do network app development and delivery:

• It’s all about layers of software (not layers of protocols) – think web application servers, mobile frameworks

• Enabling rapid application development

• Junos Space provides the overall application/management platform and coordination functionality

REFLECTIONS AND LOOKING FORWARD

Page 52: An In-Depth Look at Junos Space SDK

53 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

JUNOS SPACE SDK DEVELOPMENT ORGANIZATIONS

big switch

More than 300 Junos Space SDKDEVELOPMENT ORGANIZATIONS

Page 53: An In-Depth Look at Junos Space SDK

54 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

KEY PLATFORM BENEFITS

Developer Experience• Enables Focus on Innovation• Enables RAD and Quicker GTM

Easy Monetization• Junos deployed base as a first target market

Architecture • Hot pluggable apps• Language independent• Open application platform with RestFull APIs• Flexible integration options• Built in HA /Carrier Grade capabilities

Service Design• Ability to extend the services• Network/service abstraction

Page 54: An In-Depth Look at Junos Space SDK

55 Copyright © 2011 Juniper Networks, Inc. www.juniper.net

LEARN MORE

Using the SDK gives you the tools and the power to achieve requirements outside of the std. NPI process. You can leverage apps in the pipeline, guide customers, SIs and/or develop solutions yourself.

On the Juniper Matrix:

• Junos Space SDK downloadhttp://www.juniper.net/us/en/products-services/junos-developer/space-sdk-registration/

• Junos Space SDK Infohttps://matrix.juniper.net/community/products/nm/junosspacesdk

• Junos Space SDK Forumhttp://forums.juniper.net/t5/Junos-Space-Developer/bd-p/JSD

Email Aliases:• [email protected]• TT-SPACE-

[email protected] us on Twitter:@ivojvodic@junosdeveloper

Page 55: An In-Depth Look at Junos Space SDK

EXTERNAL TO JUNIPER:

VISIT juniper.net/developer

FOLLOW @junosdeveloper

CONTACT [email protected]

Page 56: An In-Depth Look at Junos Space SDK

innovation

juniper.net/developer

THANK YOU!