Sunday 1 May 2022

Understanding the Junos Space SDK

 

The Junos Space SDK provides a means for developing end-user specific applications that accesses the capabilities and resources provided by the Junos Space Platform environment. Implementation exposes Junos Space Platform resources through a Web-based (HTTP) interface using Representational State Transfer (REST) APIs. Developers can browse the existing REST Web services using a customized HTTP-enabled client application. Under this environment, a Web browser client application or a standalone client application can make HTTP requests to access related information, which is available to the Junos Space Platform.

The Junos Space SDK also provides a mechanism for application developers to expose their own Web services as RESTful APIs.

REST Design

The Junos Space SDK development system implements the REST architectural style to accomplish its goals:

  • Representational State Transfer (REST) is a concept that employs the Web's stateless client-server model. It represents REST Web services as resources identified by URLs.

    Resources can be added, modified, or deleted using the CRUD APIs. Resources can also expose their own method links, which, when accessed, perform a certain action on the resource. (Source: RESTful Web Services.)

    In REST, requests and responses are built around the transfer of "representations" of "resources". A resource can be any object that can be addressed. A representation of a resource is typically an XML or JSON document that captures the current or intended state of a resource. (Source: http://en.wikipedia.org/wiki/Representational_State_Transfer.)

  • Hypermedia As The Engine Of Application State (HATEOAS) is a constraint on REST that says that a client of a REST application must only know a single fixed URL to access it. Any and all resources should be discoverable dynamically from that URL, through hyperlinks included in the representations of returned resources.

SDK Elements

The Junos Space SDK Toolkit helps in the development of Junos Space applications. These applications can then be deployed on the Junos Space Platform. The SDK Toolkit comes pre-loaded with the Junos Space Virtual Appliance (JSVA), which can be used to emulate the Junos Space Platform for functional verification of the developed application.

Note: All applications must be signed with a certificate (issued by Juniper Networks) to be deployed into production environments, but they do not require a certificate when deployed on the JSVA.

The Junos Space SDK development system consists of these components:

  1. Development Tools

    • The Junos Space Eclipse plug-in installed on an Eclipse IDE.

    • The Junos Space Eclipse plug-in allows wizard-based creation of different types of Junos Space applications, automated build, and deployment of applications for test and debug purposes, control of device simulations on a device simulator, and other features.

  2. REST Web Services interfaces
    • Interfaces to the core capabilities of the Junos Space platform. These REST Web Service interfaces are a part of the Junos Space network application platform.

  3. Device and environment simulators

    • The development environment includes the Junos Space Virtual Appliance that provides access to:

      • A fully functional instance of the Junos Space network application for use in deploying and testing applications developed using the Junos Space SDK.

      • Device and element simulators providing the ability to test applications against virtual Juniper Network devices.

  4. Performance, Analytics, Security, and Profiling tools

    • While the Junos Space SDK does not ship performance, analytics, security, or profiling tools, it is compatible with the most popular tools available today, such as VisualVM, JBoss Tools, and so on.

  5. Reference Apps

    • Reference applications, including annotated source code. These applications provide examples for developers to learn from and use.

  6. Documentation and Online Resources

    • The SDK install package includes complete documentation for using the SDK, including an Installation Guide, an API Reference, and an Application Developer Guide. The latter two are provided in the Eclipse plug-in as online help. Finally, the SDK includes reference applications demonstrating how to use the many SDK features.

From the SDK user's perspective, the SDK Web development environment looks like the following:

loading...