An In-Depth Look at Junos Space SDK


Published on

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.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Objective of this slide:Set the stage for who we are, our vision and why Juniper in summaryNetworks are becoming more relevant in the world we live in today, and at Juniper Networks we believe the network can create a connected planet that unleashes a great wealth of possibility, innovation, and discovery that cannot be measured. But the demands on the network are changing rapidly and require a new approach. Cloud computing and the mobile Internet are two macro trends driving an exponential increase in traffic volume, new services, and new subscribers around the world today. These trends will define the next decade, with broad implications for the technology industry, and for network innovation in particular. In the face of this increased demand, legacy approaches to networking are proving unsustainable, too expensive, too complex, and simply cannot scale nor extend themselves to customization of solutions.It’s Time for a New NetworkAt Juniper Networks, we believe, It’s Time for “The New Network” and WE are leading the charge to architecting the new network. At the heart of the new network is our promise to transform the economics and experience of networking for our customers. We offer a high-performance network hardware and software infrastructure built on simplicity, security, openness, and scale AND delivering on Flexible, Powerful and Programmable platform that is at the heart of it all. We are innovating in ways that empower our customers, our partners, and ultimately everyone in a connected world.Our products and technologies run the world’s largest and most demanding networks today, enabling our customers to create value and accelerate business success within the new, rapidly changing global marketplace. Our customers include the top 130 global service providers, 96 of the Global Fortune 100, as well as hundreds of federal, state and local government agencies and higher education organizations throughout the world.Software play mention:With our established and industry acclaimed networking hardware, and combined w/ the power of our Flexible, Powerful and Programmable software platform, we enable businesses and consumers to maximize the potential of their products and services and meets the infrastructure needs of the next decade.We believe At Juniper, we are convinced that by combining the power of h/w w/ s/w, we enable our customers to become more agile, dynamic and adapt to the growing needs of their internal and external customers. With this vision, through strong industry partnerships, Juniper Networks is fostering a broad h/w and s/wecosystem of innovation across the network. Our core competencies in hardware systems, silicon design, network architecture, and our open cross-network software platform are helping to propel the new network.Transition to next slide:There are immense amount of opportunities out there and around us; Juniper is spear-heading the drive to Enable the developer in us thru our Programmable Network Platform…But, what does that mean…
  • Objective of this slide:Speaking of opportunities around us as an intro. But, key point we are driving here is that “At Juniper it is in our DNA to ENABLE our developers to EXTEND the network, BUILD custom, end-to-end solutions” . We will also reiterate the 3 principles as a guiding light for how we will do that.As you and I go talk w/ our customers and partners, we quickly come to know that “network” means many things to many people.When speaking w/ Network DEVELOPERS, they commonly ask about, “deep packet inspection, provisioning, BI, Network Risk and Security Analytics, Application Performance and Acceleration, network performance monitoring”, etc.When I talk w/ someone in my family - say my mom, she’s asking about what we can do to help her w/ some soln w/ email or w/ my daughter (or cousin or niece) about “facebook”What do all of these have in common, “They all deal w/ the n/w and extending the n/w thru custom solns that solve specific business problem.” At Juniper, it’s in our DNA to enable our developers to do exactly that. You will see today that we have built a flexible platform that allows developers like YOU and I to build, extend and GTM w/ new solutions – quickly, effectively and easilyJuniper empowers our developers to focus heavily on innovation and less on the plumbing aspects. We realize that to make developers successful, they need a powerful yet flexible “programmable network” – this is “The New Network”What is THE opportunity(s) for YOU ???End of the day, we only have 3000+ folks in our R&D and we will NEVER have enough developers w/i the company to build the solns that the customers need to solve their business problems. We rely on YOU – the developer, to build awesome network aware solutions and fill those gaps for us.Juniper has built a powerful platform and the developer tools to ENABLE YOU to do exactly that quickly, easily, and effectively.Transition to the next Slide:The technology is evolving faster than ever, WE as developers are faced w/ that challenge every single day and WE NOW have an enablement to face those challenges as an OPPORTUNITY to address the needs that arise due to that rapid evolution…
  • Objective of this slide:Highlight that the industry is fast evolving. We are in THE MOMENT of opportunity. NOW is a great time for us developers to be a part of this evolution and embrace the opportunities. The slide transitions into the next “developer pain points” slide w/ a note that, “Yes, we have opportunities out there. But, to go solve those opportunities, there needs to be a strong developer story”We at Juniper believe that NOW is a great time for US developers to be in to addressing the needs of evolving technology.If you looked at the history of the network industry, it HAS and continues to evolve. Today, We know a certain realm of problems. And, tomorrow us developers will face a whole new set of problems to solve and actively engage in those opportunities. We had the days of POT Service - it was Plain OldTelephoneOver time, that turned into “Feature phones” -- where we could do many things w/ and that brought us the smart phones that ran apps. To Today’s…General purpose devices that is slowly becoming the business and casual “must have”.We see this as a great window of opportunity for our developers, and gives us the opportunity to address those needs and build solns to fill those gaps using our Platform and our Platform SDKs (Junos and Space).The demand is growing and opportunities are expanding…Ten years ago there were 284 million internet connections. Today there are over 1.67 billion.In 2000, the # of mobile devices worldwide was 700 million. Today it’s over 4 billion.We’ve seen digital music sales increase from $20 million in 2003 to over $3.7 billion today.We’ve gone from chat rooms to video conferences. From dial-up to 4G wireless connections. From downloading a single song to a feature length film.There are more users, doing more things, requiring more bandwidth. T: And what we are seeing is just the beginning.We are entering the connected culture. Where the network becomes part of our daily lives – Personal, business, government, society itself. Transition to next slide:While we all agree there are opportunities out there, YOU and I as developers, also see that WE have a problem in our hands that needs addressing first…===
  • Objective of this slide:Goal here is to DEFINE, “THE NEW NETWORK”. And, “Why the New Network”. We are combining the strengths of Juniper Hardware layer w/ the power of the programmable software layer (includes, Platform, dev tools, etc) to bring about “Accelerated Innovation” to developers. Again riding on “FLEXIBLE, POWERFUL and PROGRAMMABLE” principles.===The paradigm change Juniper is offering is our comprehensive approach to the New Network; It offers a strong Network Hardware layer, An end to end programmable network platform, our goal is to enabling rapid solutions development for our developers and partners community. the Juniper network hardware layer :FastSecureScalableReliableAnd yet a simple, manageable deployable solution It answers to the demands of businesses for better experience and economics. By combining the strong hardware platform w/ the power of software, we are enabling our developers to become Agile, Innovative and go to market w/ their solutions faster than ever. The end result is a better, flexible, extensible and monetizable Solution to our developers and customersTransition to next slide:So, what does the programmable network has in it. What are our Platform API offerings. Let’s look at a high level the programmable platform components that help us developers march toward the new network
  • Junos Space platform business proposition – overview.
  • Objective of this slide:One of the common fears of developers is the amount of net new investment s/he has to make on the platform. “HOW MUCH time do I have to invest in getting started here”. The Goal here is to emphasize the strengths of our SDKs – in that our SDKs come out of the box, comprehensive and enables the developers to focus on INNOVATION and NOT on the plumbing. Goal here is also to stress that we enable GTM faster and efficiently. Re-iterate 3 principles.===In the past developers are forced to create the plumbing before they can start building applications. Much time was spent and wasted in focusing heavily on the foundation aspects than the business and innovation aspects of application development.That’s the reason at Juniper we decided to take a different approach. Where Juniper Platform exposes the needed plumbing thru the SDK and APIs so developers can focus more on innovation and less on the plumbing aspects. Thereby enabling the developers to unlock and expose the network intelligence thru their applications easily, effectively and efficiently.Some of the key benefits our developers are already seeing :Faster development timeGTM quickerMore intelligent applications at a faster time. Less time on the plumbingTransition to the next slideTo summarize in one slide, you as a network developer now have the capability of building a variety of solns on our platform
  • Space SDK business proposition - overview
  • Consider a closed loop system that is often used to describe how a company works. Consider the same model in the context of a network. The network infrastructure in terms of the networking devices like routers, switches, security devices combined with the entities that they connect that include the printers, servers, databases, applications form the assets in our model. Typical actions that are taken to affect these assets include permanent actions such as configuration of these devices and provisioning of services in response to customer orders. There could also be dynamic actions such as QoS policy provisioning to ensure sufficient bandwidth during a video streaming event. This is classis network management and there are several systems that offer this capability including Junos Space.What is the major paint point for a developer?Major pain point is that inhibits several developers in doing anything worthwhile beyond the realm of network management is is lack of ability with a platform that can marry the action and asset side of the cycle based on the data that is generated by the asset. Network assets generate a lot of data. This includes fairly static data such as the inventory and configuration of the network, historical information such as logs, and dynamic real-time data such as flow records. All this data by itself is worthless unless you can turn it into value by understanding what it means in the business context and what it might do operationally for the company. What is the solution?What would be useful is if the platform can provide the capability to perform analysis by filtering, collecting and correlating this data with external sources such as real time traffic, weather patterns, click behavior, financial markets etc. For example, the right insight into the data generated from the network when combined with data from external sources could yield a wealth of valuable information about subscribers - who they are, where they are, how often they connect, where they connect from, the duration of usage, the type of services they use, the frequency of these services, their credit profile, etc. This insight will generate intelligent actions – both permanent as well as dynamic – which will tune the networking assets to operate more efficiently as well as generate more value for the company.How does Junos Space and the SDK change the equation in favor of an application innovator?Where Junos Space changes the equation is to marry the Action and Asset side of the cycle on the left with the Data and Value side on the right. It provides the ability to suck in the static and dynamic behavior of the network and analyze this behavior in the context that can be provided by an internal or an external source. The internal source could be an event on the network itself and the external source (as mentioned before) could be some business intelligence or a truly external entity in the form of weather patterns or user behavior etc. Space combines the ability to access the static and the dynamic nature and the wealth of information hidden in them with the ability to combine this data with an internal or an external source. This combined with a highly scalable and resilient platform and a great set of tools that allow developers to easily utilize the wealth information makes Space and Space SDK a great platform to develop the new and the next generation applications.
  • Junos Space SDK leverages well-known technologies and constructs to create an extremely flexible software development environment by providing a rich set of tools including RESTful APIs, the Eclipse Integrated developer environment, device and platform simulators, reference applications, support tools and complete documentation. Key takeaway: this is more than simply a collection of web services interfaces – Junos Space SDK is a powerful, integrated and a comprehensive developer environment..
  • Use stick shift as an example. Driving a stick shift is all about mastering complexity. Ask the audience how many can drive the stick shift. Point to them that none of them should define user interface. The ability to master complexity is not the same as the ability to extract simplicity. And you should put effort in the latter! Space platform takes care of the former!
  • Junos Space Device and Network Abstraction services abstract the complexities of getting insight out of the network. They provide the means and the mechanism to fetch the configuration and operational parameters out the devices in the network. These includeConfiguration Management Service that lets you push change requests on to the network including the ability to create device configuration templates and archive configuration filesDiscover the network inventory including the logical and physical inventory of the network and the devices in the networkDevice Management service that lets you read device configurations (raw configuration that includes configuration groups or expanded that has configuration groups expanded in the device configuration), fetch device syslog using your own filters and execute CLI if required via the NetConf RPC serviceArchive, upload and execute Junoscripts via the the Script Management ServiceManage device software using the Software management service
  • The development environment just requires one powerful laptop. All the components of the SDK including the Tools that include the Eclipse and the Space Plug-in, the device simulators, the Virtual Machine image of Space and the Oracle Virtual Box to run it - all of them get installed on the same machine. The installation takes you through a short process where in all the components of the SDK get installed.
  • Knowledge Global is an Australian company (<10 employees) that has developed the sustainability analytics tool called EMMA (Environmental Management Measurement Application). It is a web subscribed knowledge base and analytics engine that allows enterprises to identify and facilitate their management of efficiency opportunities and sustainability impact across their portfolio(s), operations and supply chains. JUNOS Space valueJunos Space provides the access to critically important device level data in a seamless and uncomplicated manner. The energy insight application has blended the Junos Space SDK and EMMA reporting engine to provide sustainability data services that are important to all large (and growing) organisations with networks. The application uses the Junos Space SDK to access the device information in the field (i.e. data centers), passes this data to EMMA for calculation and aggregation. These reports can be accessed through either the EMMA reporting UI, Junos Space UI or exposed data services. Knowledge Global sees Junos Space and the Energy Insight application as the key to solving the smart grid problem of accurately reporting and modelling energy consumption at device, facility and corporation levels. Application DetailsEnergy Insight combines the Junos Space SDK and EMMA reporting engine to provideEnergy consumption at a device levelEnergy cost information at a device levelCarbon equivalent reporting at a device levelEnergy performance KPI’s and benchmarks at a device level (i.e. Watts/Gpbs)Provide forecasting on consumption based on historical performanceThese device level reports of course are important to combine with facility reports (i.e. data center) as it is the device consumption that ultimately influences the overall facility (and corporation) consumption. EMMA already reports for customers at a facility level (using performance benchmarks i.e. PUE)
  • The EMMA solution using Junos Space SDK addresses thefundamental challenges of aggregating, benchmarking, andreporting energy use at device, facility, and global levels.Integration of the Junos Space SDK has been achieved as follows:• Network devices are added in the Junos Space platform andreplicated in EMMA with configured reporting attributes.• Junos Space SDK simply retrieves data from designated devicesregularly. The data is processed and built into the EMMA database.• Specific reports are presented in a variety of formats includingEMMA dashboards, Junos Space platform interface, as well asWeb services
  • Here are the APIs
  • Mashup applications that contain only User Interface components, designed to consume web services exposed by external Apps, hosted Apps and/or the platform.These Apps consolidate existing business logic from JS and ext. resources within single UI Business Logic applications that publish APIs via the platform’s Web Services intefaces for other hosted or external Apps to consume. These Apps do not have a built-in UI.These Apps enable NBI integration and access to, and leverage of, JS platform intelligence on proprietary or 3rd party solutions. These Apps could also be freely distributed versions of a another App required to satisfy dependencies of another App on the JS platform.Native applications with custom business logic, with APIs published via the platform’s Web Services, combined with UI that is accessed from within Junos Space browser UI.These Apps, such as Ethernet Activator, etc., are fully hosted and only accessed from within the JS platform.Mashupapplications that contain only User Interface components, Designed to consume web services exposed by external Apps, hosted Apps and/or the platform.Business Logic applications Published APIs via the platform’s Web Services interfaces for other Apps to consumeNative applications with custom business logic APIs published via the platform’s Web Services, UI accessed from within Junos Space browser
  • Key takeaway: the environment is programming language agnostic, enabling anyone to onboard and start developing rapidly.An application can take advantage of not only the Junos Space APIs, but also the APIs exposed by other resident Junos Space applications. This openness and flexibility offers a multiplying effect by allowing developers to leverage other innovations on the Junos Space platform – and even expose their own to others through their own APIs.No hard dependency between high level appsBesides module.xml, each app needs to provide app-info.xml to capture packaging and version infoEach app is responsible forinitializing its own databasemigrating its own data during upgradeMash-up Service to allow soft dependencyAllow “soft” dependency between appsApp can mash up with other apps to provide enhanced functionalitiesApp is still functional when its runtime dependency on other apps is not resolvedApp can dynamically enable/disable certain functionality when its dependent apps are deployed
  • An In-Depth Look at Junos Space SDK

    1. 1. JUNOS SPACE SDKIvan VojvodićSr. Director, DBU
    2. 2. SETTING THE AGENDA FOR THE NEXT DECADE2 Copyright © 2011 Juniper Networks, Inc. Transforming the experience and economics of networking
    3. 3. THE PLACE OF THE NETWORK3 Copyright © 2011 Juniper Networks, Inc.
    4. 4. CHANGES IN THE WORLD OF NETWORKING The Evolution of a Platform SINGLE MULTI GENERAL PURPOSE PURPOSE PURPOSE Simple Functionality Feature Phone App Enabled Devices4 Copyright © 2011 Juniper Networks, Inc.
    5. 5. THE NEW NETWORK EQUATION Network Innovation Ecosystem Innovation The New Network High Performance Networking Developer Solutions Accelerated Innovation Fast New, better experiences Agile Secure Innovative New flexibility & agility Scalable RAD New customer solutions Reliable Open Simple $ New revenue sources layers of software instead of layers of protocols5 Copyright © 2011 Juniper Networks, Inc.
    6. 6. OUR MISSION AND COMMITMENT TO DEVELOPERS CONNECT EVERYTHING from Client, through the Network, to the Device SILICON SYSTEMS SOFTWARE6 Copyright © 2011 Juniper Networks, Inc.
    7. 7. JUNIPER PROGRAMMABLE NETWORK PLATFORMS User Opportunity for Network Application End-point Innovation Layer Network Opportunity for Across- Application the-network Innovation Layer Network Opportunity Device for On-device Innovation Layer7 Copyright © 2011 Juniper Networks, Inc.
    8. 8. OPEN, NETWORK-CENTRIC APP PLATFORM CHALLENGES SOLUTION BENEFITS FOR DEVELOPERS “…there’s no Open, Extendable, Flexible and • Easy Monetization standard way to Powerful Network Application and tap into the Orchestration Platform • Open App Platform network.” • Language Independent “…long / complex dev cycles.” • Network Abstraction “…I need an end-to-end view.” • Flexible Integration “…I’m not a networking expert.” Junos Space Development Platform • RAD, Quicker GTM “ “… high complexity of networks and services” Toolkit APIs“…leverage investment in existing OSS/BSS solutions.”“…end to end service mgmnt.”8 Copyright © 2011 Juniper Networks, Inc.
    9. 9. SOFTWARE = PLATFORM + APPS OLD WAY NEW WAY Application Innovation  Focus on innovation Expensive and Reduce Application  Reduce production costs inefficient developer Innovation  Increase speed of time to development Consistency, System, innovation security and Platform,  An SDK decouple velocity of performance lapses Interfaces, application innovation from and platform innovation Foundation Development Software Development Kit + Platform9 Copyright © 2011 Juniper Networks, Inc.
    10. 10. JUNOS SPACE SDK Innovate Accelerate Collaborate Community of Insight into the network Reduce time, complexity partners and developers Powerful toolset: Extend to boost value Access existing customers Eclipse, RESTful APIs End to end service Accelerate through Gain expert knowledge! and data correlation collaboration Innovate with Junos Space Accelerate development cycle Training, support + leverage Platform utilizing a direct with open, extendable and partnerships to influence and access to network data and powerful development monetize. resources platform and toolkit10 Copyright © 2011 Juniper Networks, Inc.
    11. 11. UNLOCK THE POWER OF THE NETWORK Action Value Configure Filter Provision GENERATE Correlate Dynamic Policy Combine AFFECTS INSIGHT Assets Data Inventory History CREATE Real-time Networking Devices, Servers, Databases, Applications etc.11 Copyright © 2011 Juniper Networks, Inc.
    12. 12. THE JUNOS SPACE PLATFORM HOW DO YOU TURN NETWORK DATA INTO KNOWLEDGE? Junos Space All controlled from your browser Management, Analytics, Monitoring, Orchestration12 Copyright © 2011 Juniper Networks, Inc.
    13. 13. ANSWER: Add network operations insight to businesses, and business insight to network operations Other BusinessSpace UI: Systems RESTful Web Services Abstract the Network Native RESTEasy Servlet (JAX-RS) Stateless Session Beans or MDBs (Business Logic) Service Application(s) RESTful Resource Class @Stateless @Path(“/foo”) Application(s)Inject Service JPA public class FooEjb {} public class FooResource { @EJB private FooEJB fooEjb; } Web Container EJB Container JBoss Java EE Application Server Database Server DMI Network Junos Space Fabric/Cluster: 13 Copyright © 2011 Juniper Networks, Inc.
    14. 14. PROGRAMMABLE NETWORK APPLICATION PLATFORM Network Activate ● Virtual NM ● Security ● OSS ● BSS ● Green/Energy Control ● Service Now ● ● Adapters (MTOSI,…) ● … others … others FLEXIBLE Juniper Apps 3rd Party Apps POWERFUL APPLICATIONS Junos Space RESTful Web Service PROGRAMMABLE Device & Network Abstraction Services Infrastructure Services Topology JUNOS SPACE PLATFORM Open Network Application Network Interface (DMI) Platform14 Copyright © 2011 Juniper Networks, Inc.
    15. 15. HIGH LEVEL JUNOS SPACE ARCHITECTURE Network Activate ● Virtual OSS ● BSS ● Green/Energy ● Adapters APIs & Libraries Control ● Service Now ● (MTOSI,…) ● … others … others Interface Services RESTful wrappers, RBAC (UI, NBI), Application Deployment, UI,…Juniper Apps 3rd Party Apps APPLICATIONS Device and Junos Space RESTful Web Service Network Infrastructure Abstraction Services Device & Network Abstraction Services Infrastructure Services Services Local Persistence JUNOS SPACE PLATFORM Platform Management Network Interface (DMI) Junos Space Functional Architecture 15 Copyright © 2011 Juniper Networks, Inc.
    16. 16. JUNOS SPACE SDK - WHAT’S INSIDE THE BOX Powerful, integrated, familiar developer environment APIs Developer Tools Community DEVICE API Eclipse Logging + Developer & NETWORK IDE debugging Guide Reference ABSTRACTION Guide SERVICES APIs Reference Device Platform & Simulator Inline help Simulators Sample Apps INFRSTRUCTURE SERVICES APIs Support UI Builder UI Library and Training Forums JUNOS SPACE SDK16 Copyright © 2011 Juniper Networks, Inc.
    17. 17. THE POWER OF ABSTRACTIONMastering complexity vs extracting simplicity17 Copyright © 2011 Juniper Networks, Inc.
    18. 18. THE POWER OF ABSTRACTIONExample of NOT extracting simplicity18 Copyright © 2011 Juniper Networks, Inc.
    19. 19. THE ROLE OF APISGood 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:19 Copyright © 2011 Juniper Networks, Inc.
    20. 20. JUNOS SPACE APIs DEVICE NETWORK & DEVICE & NETWORK CONFIGURATION DEVICE DEVICE MGMT SCRIPT MGMT Device & Network SOFTWARE S/W Image MgmtABSTRACTION MGMT SERVICE INVENTORY SERVICE SERVICE MGMT SERVICE Device Mgmt Config Mgmt SERVICE inventorySERVICES APIs Modify device Archive raw and configuration using Discover devices in Archive JunoScripts Archive Device expanded device Change Requests the network on Space Software configurations Configuration Network & Device Fetch Device Upload and execute Manage software Templates inventory Syslog scripts on devices versions on devices Archive Configurations Execute CLI Execute Op Scripts, Upload software to Logical and using Configuration commands via Event Scripts and one or more Physical inventory Files NetConf RPC Commit Scripts devices INFRASERVICES APIs USER MGMT. & JOB APP LIFE CYCLE TAGGING & API DISCOVERY AUTHENTICATION MANAGEMENT MANAGEMENT FILTERING Create, Read, Create, Read, Manage Discover the Update and Delete List of active and Update and Delete Applications services exposed operations on Users completed jobs application defined installed on Space by the platform Tags Determine status of Specify and Associate tags with Discover the Manage User Roles job execution Configure run time objects defined in services exposed & Capabilities including Job parameters for your applications by applications Details applications User Authorization Ability to create new Read the meta data and Authentication Control Application Search and Filter Jobs and cancel a associated with the (includes external Lifecycle using Tags running job services authentication) 20 Copyright © 2011 Juniper Networks, Inc.
    21. 21. JS SDK - DEVELOPMENT TOOLKIT 1 2 3 4 5Plug-in for Logging & Platform Device UI Builder Eclipse Debugging Simulator Simulator New Application Drag & Drop UI Debug and test Junos compatible Chainsaw Logger Components applications device simulation EJB to RESTModule definition Static Analysis Space UI Qualify apps on using PMD Components Scale testing Space platform Application packaging and licensing21 Copyright © 2011 Juniper Networks, Inc.
    22. 22. JS SDK COMMUNITY Docs & Support Junos Space SDK Junos Space SDK Developer community Sample applications Documentation Training and forums Online Developer App Developer Guides Training JDN API Reference Guide 1 day hands-on training JS SDK Download SDK Installation Guide 3 day expert training JS SDK Forum Juno Space Platform Built-in Reference Training22 Copyright © 2011 Juniper Networks, Inc.
    23. 23. DEVELOPMENT ENVIRONMENT All you need is one laptop. Host OS Browser VM Host Junos Space Application UI Application Eclipse Junos Space IDE Simulated Devices23 Copyright © 2011 Juniper Networks, Inc.
    24. 24. APPLICATION EXAMPLESUSTAINABILITY & COMPLIANCE: KNOWLEDGE GLOBAL CHALLENGE APPROACH SOLUTIONLack of holistic energy usage Leverage Junos Space to  Comprehensive energymetric to reduce cost and retrieve device level energy insightcarbon emissions and its usage and integrate to a  Combination of IT & facilityimpact on operations in a system of energy energy dataglobal scale. measurement, analysis and  Sustainability compliant reporting, EMMA. reports 1 2 3 Retrieve IT resource power consumption devices The Network Generate sustainability & compliance Facilities reports – Greenhouse reports Gas24 Copyright © 2011 Juniper Networks, Inc.
    25. 25. EMMA - ARCHITECTURE OVERVIEWMelbourne25 Copyright © 2011 Juniper Networks, Inc.
    26. 26. KG API-S + CODE SAMPLE… REST API Description api/space/device- The API queries the space instance to get the devices connected. This command returns the management/devices 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. REST API RPC command Description api/space/device- get-interface-information The API allows an RPC command to be executed. This RPC command gets management/devices/exec-rpc 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- get-environment-pem-information The API allows an RPC command to be executed. This RPC command gets management/devices/exec-rpc detailed information around the power modules in the device. This command is periodically polled to the devices so we can determine aggregated power consumedISSUE <get-environment-pem-information> RPC COMMANDprivate 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 =; int respStatus = cresp.getStatus(); 26 Copyright © 2011 Juniper Networks, Inc.
    27. 27. KNOWLEDGE-GLOBAL DEMO VIDEO27 Copyright © 2011 Juniper Networks, Inc.
    28. 28. OPEN FOR APPLICATIONS & INTEGRATION Application and services platform to address real-world challenges Independent System Service Software Enterprise Integrators Provider Vendors APP CHOICES RICH APPS EXTENSION MASHUPS RICH APPS MASHUPS NATIVE NON-NATIVE APIs Device & Network Infrastructure Abstraction Services Services28 Copyright © 2011 Juniper Networks, Inc.
    29. 29. JS SDK APPLICATION TYPES APP CHOICES RICH APPS EXTENSION MASHUPS RICH APPS MASHUPS NATIVE NON-NATIVE RICH APPS MASHUPS MASHUPS RICH APPS EXTENSION UI Component UI Component UI ComponentUI Component Web ServiceWeb Service ComponentComponent Web Service Server-side Component Server-side Component Component Server-side Component Externally Hosted Apps JUNOS Space Platform Hosted Apps Junos Space Platform API Services Stack29 Copyright © 2011 Juniper Networks, Inc.
    30. 30. NON-NATIVE RICH APP :: INTEGRATION EXAMPLE: Both native and non-native apps can NON-NATIVE access platform services and bus. logic. RICH APP 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 RICH APPS EXTENSION MASHUPS RESTful Web Services that can act as a UI Component UI Component Northbound Interface out of the platform Web Service Web Service for external Apps/Services to consume Component Component Server-side Server-side Adaptors can be created for technology Component Component specific NBI.  Examples - MTOSI, TMF 814, etc … RESTful Web Services Junos Space Network Application Platform 30 Copyright © 2011 Juniper Networks, Inc.
    31. 31. LANGUAGE INDEPENDENT NETWORKABSTRACTION APIGet identifier for device eq ‘Torino’) XML Option for JSON31 Copyright © 2011 Juniper Networks, Inc.
    32. 32. JUNOS SPACE API AND JAVA EXAMPLEJava pg1package 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; Java pg2public class RESTdevice { private static String SpaceURL; Specify RESTful service private static ApacheHttpClientExecutor clientExecutor; ClientRequest request = new ClientRequest(url, clientExecutor); Issue RESTful service request to request arguments public static void main(String[] args) { get network device info System.out.println("==> GET " + url); SpaceURL = ""; string url = SpaceURL + ClientResponse<String> response = "/api/space/device-management/devices/229389"; request.get(String.class); // GET method UsernamePasswordCredentials credentials = if (HttpStatus.SC_OK != response.getStatus()) { new UsernamePasswordCredentials(args[1], args[2]); throw new Exception("Could not get device: " + response.getStatus()); Process the response HttpClient httpClient = new HttpClient(); } httpClient.getState().setCredentials(AuthScope.ANY, credentials); httpClient.getParams().setAuthenticationPreemptive(true); JSONObject jsonObject = new JSONObject(response.getEntity()); clientExecutor = new ApacheHttpClientExecutor(httpClient); } } 32 Copyright © 2011 Juniper Networks, Inc.
    33. 33. 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.Content33 Copyright © 2011 Juniper Networks, Inc.
    34. 34. JUNOS SPACE API AND PERL EXAMPLEPerl#!/usr/bin/perluse REST::Client; # Used for invoking RESTful APIs on Spaceuse MIME::Base64; # Used for encoding userid and passworduse XML::LibXML; # Used for parsing XML responses from Spacemy $client = REST::Client->new();my $headers = { Authorization => Basic . encode_base64($userid . : . $password), "Content-Type" => "application/x-www-form-urlencoded" };Issue RESTful service request to get network device info$client->GET(, $headers);if ( $client->responseCode() == 200 ) { my $xmlResponse = $client->responseContent(); $xs = XML::LibXML->new(); $doc = $xs->parse_string($xmlResponse);} else { print $client->responseCode()."n"; Process the response} 34 Copyright © 2011 Juniper Networks, Inc.
    35. 35. JUNOS SPACE API AND PYTHON EXAMPLE import simplejson import httplib, urllib method = "GET" host = "" uri = "/api/space/device-management/devices/229389" body = "" headers = { "Content-Type": service request to get Issue RESTful "application/x-www-form-urlencoded", } network device info 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( """ obj = return obj else: Process the print response.status, response.reason, conn.close() response """ Execute the HTTP call """ request(method, host, uri, body, headers = {}):35 Copyright © 2011 Juniper Networks, Inc.
    36. 36. JUNOS SPACE API AND PHP EXAMPLE PHP pg1 PHP pg2 <?php require_once HTTP/Client.php; /*------- $url = " * CURL synchronous call management/devices/229389"; */ $headers = array( function request($method, $url, $headers = array(), "Content-Type" => "application/x-www-form- $body) { urlencoded", $conn = curl_init(); ); curl_setopt($conn, CURLOPT_URL, $url); $body = ""; curl_setopt($conn, CURLOPT_HTTPHEADER, $headers); /*------- RESTful service request to get curl_setopt($conn, CURLOPT_USERAGENT, Issue "HTTP4e/3.0"); * HTTP_Client call network device info ( curl_setopt($conn, CURLOPT_CUSTOMREQUEST, */ strtoupper($method)); $client = new HTTP_Client(); curl_setopt($conn, CURLOPT_POSTFIELDS, $responseCode = $client->get( $url, $headers) $xml_data); curl_setopt($conn, CURLOPT_RETURNTRANSFER, 1); echo $responseCode $data = curl_exec($conn); $code = curl_getinfo($conn, CURLINFO_HTTP_CODE); $resp = $client->currentResponse(); echo $code $data = $resp[body]; curl_close($conn); return $data; echo $data } // load XML data ?> //$dom = new DomDocument(); //$dom->loadXML( $data ); Process the response36 Copyright © 2011 Juniper Networks, Inc.
    37. 37. THE POWER OF RESTful APIs APP APP 1 2Native + Extension HTTPApps can extend theplatform, by way ofexposing their ownAPIs for other Apps Junos Space APP 1 APP 2 No hard dependencyto consume. Platform Stack Provided service Provided service between high level apps Mash-up service to allow 3rd party APP 1 soft dependency 3rd party APP 2 JUNOS SPACE PLATFORM RESTful API - exposed37 Copyright © 2011 Juniper Networks, Inc.
    38. 38. BUILDING AND DEPLOYING APPS Developer Workflow System Administrator WorkflowDownload and Install Junos APIs, Simulators, Test + Space SDK Build Environment Developer Code Loads the app on Junos Space Application Binary Developer Support Certificate Signed Application Package38 Copyright © 2011 Juniper Networks, Inc.
    40. 40. ARCHITECTUREDEVICE HEALTH MONITOR APP REST Google Browser Clients Mashup Device Health Monitor App XML/JSON Google HTTP DataTable UI Layer REST Web-Service Google DataSource Layer API EJB Layer Uses Space API to monitor device health & traffic Junos Space Platform40 Copyright © 2011 Juniper Networks, Inc.
    41. 41. SPACE GUIDEVICE HEALTH MONITOR APP List of Devices Basic Health Traffic Chassis View Parameters Statistics41 Copyright © 2011 Juniper Networks, Inc.
    42. 42. 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  AreaChart42 Copyright © 2011 Juniper Networks, Inc.
    43. 43. 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 locations44 Copyright © 2011 Juniper Networks, Inc.
    44. 44. Software Vendor Testimonial
    45. 45. EXAMPLE: NETWORK VIRTUALIZATION CHALLENGE APPROACH SOLUTIONGoal: Take a distributed multiple Old: Manually configure devices which Application:domain, site, layer, tenant network and are harder to adapt quickly Virtual Switchuse OpenFlow switches to virtualize asimpler network New: Benefits: • Use Big Switch’s OpenFlow controller • Reduces operational complexity andTarget: to create “virtual L2 switches.” expense• Data Center Networks • Make the selected nodes look as if • Rapid to setup/tear-down(allocate servers on demand to the they are locally connected.appropriate datacenter L2 network • Cheap/free to change • Use Junos Space as the platform toindependent of network /VLAN design) integrate and deliver this solution. • Isolated from other users • User chooses the : Technology: • Connections, VLANs, ACLs… • Juniper OpenFlow-enabled device run the OpenFlow app built with the Junos SDK. Availability: • The Virtual Switch app is implemented OpenFlow: Any Juniper Networks with the Junos Space SDK. systems supporting Junos control-plane applications Virtual Switch: Junos Space Partner: Big Switch Networks Application: Virtual Switch46 Copyright © 2011 Juniper Networks, Inc.
    46. 46. THE CONCEPT – SIMPLIFY THE NETWORK Group together devices and separate the groups with a virtual switch47 Copyright © 2011 Juniper Networks, Inc.
    47. 47. THE SOLUTION – NETWORK VIRTUALIZATIONA simple switch connects only thehosts for a specificapplication/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 need48 Copyright © 2011 Juniper Networks, Inc.
    48. 48. JUNOS SPACE INTEGRATION Junos Space Server Big Switch Controller Junos Space VM (manages OF switches) (manages rest of devices) RESTful Web Service APIs49 Copyright © 2011 Juniper Networks, Inc.
    49. 49. TECHNICAL CHALLENGES SOLVED BY JUNOS SPACEBuilding 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.”50 Copyright © 2011 Juniper Networks, Inc.
    50. 50. BUSINESS CHALLENGES SOLVED BY JUNOS SPACEReduced 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.” 51 Copyright © 2011 Juniper Networks, Inc.
    51. 51. REFLECTIONS AND LOOKING FORWARDThis 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 52 Copyright © 2011 Juniper Networks, Inc.
    52. 52. JUNOS SPACE SDK DEVELOPMENT ORGANIZATIONS big switch More than 300 Junos Space SDK53 Copyright © 2011 Juniper Networks, Inc. DEVELOPMENT ORGANIZATIONS
    53. 53. 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 abstraction54 Copyright © 2011 Juniper Networks, Inc.
    54. 54. LEARN MOREUsing the SDK gives you the tools and the power to achieverequirements outside of the std. NPI process. You can leverageapps in the pipeline, guide customers, SIs and/or developsolutions yourself.On the Juniper Matrix: Email Aliases:• Junos Space SDK download • developer/space-sdk-registration/ • TT-SPACE-• Junos Space SDK Info Follow us on Twitter: @ivojvodic @junosdeveloper• Junos Space SDK Forum Copyright © 2011 Juniper Networks, Inc.
    55. 55. EXTERNAL TO JUNIPER:VISIT @junosdeveloperCONTACT
    56. 56. THANK YOU!