Skip to content

IDE Core

Chris Georgoulis edited this page Dec 24, 2013 · 11 revisions

Introduction

The IDE Core module is a host environment that is represented by a central Web-based IDE, which provides common accessibility and functionality for the modules of the entire framework of OpenIoT.

The layout of the core IDE is that of a classic Web application with a header and a dynamic navigation pane that controls a dynamic content pane. The IDE layout can be seen in the following image:

[](Documentation/images/ide-core/ide-layout.png)

Supported Functionalities/Services

The IDE supports the following functionality and services:

  • Component Navigation. The IDE provides navigation links from its navigation bar giving access to the deployed OpenIoT components. Selecting a link loads a component dynamically with AJAX in the content pane, through which the user can access its functionality.
  • **Loading – Unloading Components.**A component may be loaded or unloaded currently through the backend. The “refresh menu” button requests the servers for updates to the components and directly changes the available options in the navigation bar.
  • Monitoring In order to implement monitoring features for the various components, the JavaMelody library has been integrated into the system. JavaMelody has the functionality of monitoring the JVM and the Java EE application server. It is a tool to measure and calculate statistics on the real operation of an application depending on the usage of the application by users. JavaMelody is mainly based on statistics of requests and on evolution charts. Further details on the monitoring component are available in the Application Runtime Monitoring Section.

Web Resources Layout

The Web application is implemented according to the single-page-design principle relying on AJAX to render the parts of the page that change. The various components are loaded in the central content pane according to the source pointed to by the navigation Backing Bean (LayoutController.java). Since the various OpenIoT components have different URL endpoints they are loaded within an <iFrame>in the central content pane of the page. The layout of the Web application (which is depicted in the figure below) is relatively simple since its responsibilities at the moment are simply navigation:

[](Documentation/images/ide-core/ide-layout.png)

API Specifications

Class Diagram

The class diagram for the Web application contains a single class which has the responsibility to control navigation and layout as shown below:

[](Documentation/images/ide-core/ide-class-diagram.png)

IDE API

Service Name Input Output Info
init none none Used to initialize the Session Scoped bean with its starting values.
isLoaded String Boolean Used to scan the HashMap which holds which components are displayed and determines whether to display the link for the particular component
getNavigation none String Retrieves which URL to render in the central content pane
setNavigation String none Sets which URL to render in the central content pane
Clone this wiki locally