The Junos Space SDK can be used to develop three different types of applications. These applications are:
Data applications that contain only user interface components and that are designed to consume web services exposed by external applications, Junos Space applications or or platform services or both. These can be either server side or user interface side mash ups that consolidate existing business logic from Junos Space platform, Junos Space Applications and external resources.
Business logic applications that publish APIs through the platform's REST Web services interfaces for other hosted or external applications to consume. These applications do not have a built-in user interface. They enable north-bound interface integration and access to, and leverage of, Junos Space platform intelligence on proprietary or third-party solutions.
Business logic applications can be used to build modular applications for easy customization across use cases. These applications can be client or server-side mashups composed of platform services and business logic. Modular applications enable delivery of modular functionality with the ability to plug in new capabilities or customizations based on need. For example, an application with base level functions common to all service providers can be augmented with custom business logic for individual service providers.
Native applications with custom business logic and APIs published through the platform's REST web services, combined with a user interface that is accessed from within a Junos Space browser user interface. These applications, such as Network Activate, are fully hosted on, and accessed only from within, the Junos Space platform.
Native applications can be used to develop custom workflows and functionality, as well as optionally combine platform services with external business intelligence. These applications can expose REST Web services for use by other hosted or external applications, and they can leverage or inherit the Junos Space browser UI framework and paradigms.
The Junos Space SDK plug-in provides the following project types that enable you to create the different types of supported applications:
EJB Project—An EJB project consists of server-side components incorporating business logic. The EJB can consume the platform services exposed using REST. For more information, see the Creating EJBs topic.
Web Service Project—A Web service project is used to develop REST web services components. These are built on top of EJB projects and use EJB interfaces to the Junos Space platform interfaces. For more information, refer to the Creating REST Services topic.
Web Project—A web project is used to develop a UI component used to create a custom browser-based front end to the platform's REST interface. For more information, see the Creating the UI topic.
Utility Project—A utility project can be any Java project. Eclipse deploys utility jar/classes on the server that can be shared between applications. You can add utility project to your applications. For more information, see the topic Adding a Utility Project to an Existing Application.
The Junos Space SDK plug-in supports three application models. These application models use a combination Web, EJB, and Web Serivice projects that are selected when you create a new Junos Space application. The three application models are:
The components of the three application models are illustrated in the following figure.
A System.sar and an EAR (Enterprise Archive) file are created for all three models. System.sar is a system archive file containing deployment-related information for the Junos Space application.
The EAR is a deployable archive of the Junos Space application. Additional EJB/web service projects can be added to an existing Junos Space application for any of the three models.
This model supports creation of the UI components (Web package), Web services component (Web services package) and server-side components (EJB packages). Server-side components are packaged in a JAR file and the UI and Web services components are packaged in a WAR file. Together these separate components would be packaged in an EAR file. This kind of application model is used to support those applications to be completely hosted and accessed from a Juniper-hosted environment.
When you create a complete application the plug-in creates a Web, EJB, and Web service (WebSvc) project in Eclipse.
This model supports creation of the server-side components and the Web services components only. These applications are packaged in JAR and WAR files respectively and then packaged in an EAR file. This application model is to support those applications for which the business model and the access layer in the form of Web services are to be hosted by the Juniper environment.
When you create a Web service application, the plug-in creates an EJB and WebSvc project in Eclipse.
This model supports creation of the UI components only. These applications are packaged in a WAR file that will eventually be packaged in an EAR file. This is a purely client-based application model.
The application will contain a Web project in addition to a System.sar and an EAR.
When you create a UI-only application, the plug-in creates only a Web project in Eclipse.