Skip to content

Containers, Tools & Libs

Nikos Kefalakis edited this page Nov 25, 2013 · 2 revisions

Since OpenIoT will be offered as open source project it is important that its various components use common libraries, platforms and development tools where applicable. This way it will be easier for the advanced users and developers to get involved and to move from one OpenIoT module to another without having to develop new skills to get involved. The main open source libraries, platform and development tools are listed below:

  • Software project management tool:

    • Apache Maven . It can manage a project's build, reporting and documentation from a central piece of information (pom XML file). It will be used in the OpenIoT code as a library and build management tool.
  • Development environment:

    • Eclipse IDE . It is one of the most popular open source Integrated Development Environments and will be used as the main development environment in the OpenIoT project.
  • Web-Service implementation:

    • RESTEasy : is a JBoss project that provides various frameworks to help you build RESTful Web Services and RESTful Java applications. It is a fully certified and portable implementation of the JAX-RS specification. JAX-RS is a new JCP specification that provides a Java API for RESTful Web Services over the HTTP protocol.
  • User interfaces: Some options for implementing the OpenIoT user interfaces are listed below:

    • Web Clients:
      • JavaServer Faces (JSF) : JavaServer Faces technology establishes the standard for building server-side user interfaces. With the contributions of the expert group, the JavaServer Faces APIs are being designed so that they can be leveraged by tools that will make web application development even easier.

      • PrimeFaces : Prime Technology is not a software vendor but a software development house along with the consulting and training activities. A framework that is not even used by its own creators can easily miss vital points regarding usability and simplicity. A major difference compared to vendor products is that we use PrimeFaces in all of our clients' projects as the front end framework. This helps us to view the project from an application developer's point of view so that we can easily realize the missing features and quickly fix the bugs. This significantly distinguishes PrimeFaces from other libraries.

      • jsPlumb : provides means for a developer to visually connect elements on their web pages. It uses SVG or Canvas in modern browsers and VML on IE 8 and below.

  • Platform Management & Monitoring:

    • Java Management Extensions (JMX). The JMX technology provides tools for building distributed, Web-based, modular and dynamic solutions for managing and monitoring devices, applications and service-driven networks. The JMX technology could be used to monitor and manage different OpenIoT modules from the OpenIoT Configuration/Monitor console.
    • JavaMelody : The goal of JavaMelody is to monitor Java or Java EE application servers in quality assurance and production environments.
  • Enterprise Application Platform. OpenIoT, at this point, will use the JBoss Application platform to serve as an Enterprise Server container to host the various OpenIoT modules.

    • JBoss Application Platform . The JBoss Application Platform was created with the cloud in mind. It is based on a services-driven set of components and is running OSGi and the Java EE application server side by side.
  • RDF Database. OpenIoT will use LSM as the RDF store which uses the commercial version of Virtuoso and will also support the following Open Source database:

    • Sesame . Framework for querying and analysing RDF data. This includes parsing, storing, inferring and querying of/over such data. It offers an easy-to-use API that can be connected to all leading RDF storage solutions.
    • Virtuoso Open Source.
  • Testing Framework.

    • JUnit : is a unit testing framework for the Java programming language.
  • SPARQL Client.

    • Sesame : For accessing SPARQL interfaces Sesame client is used.
  • Logging.

    • Logback : Logback is intended as a successor to the popular log4j project, picking up where log4j leaves off. Logback's architecture is sufficiently generic so as to apply under different circumstances. At present time, logback is divided into three modules, logback-core, logback-classic and logback-access.

OpenIoT Modules Library list

Find below and indicative list of libraries used by the different OpenIoT modules. For an updated version of this list please check the dependencies section at each of the modules pom file

Scheduler

The Scheduler libraries and containers are listed in the Table below.

Container/Library Name Version
JBoss 7.1.x
RESTEasy 2.3.6
Apache Maven 3.x.x
Logback 1.0.11
JUnit
Jboss maven plugin 7.3
Sesame 2.7.0
Java 1.6+
(OpenIoT) utils.commons 0.0.1
org.eclipse.persistence.eclipselink 2.5.0
JavaMelody 1.45.0
com.hp.hpl.jena 2.6.4
lsm.api 0.0.1
org.openrdf.sesame 2.7.0

Service Delivery & Utility Manager

The SD&UM’s libraries and containers are listed in the Table below.

Container/Library Name Version
JBoss 7.1.x
RESTEasy 2.3.6
Apache Maven 3.x.x
Logback 1.0.11
JUnit
Jboss maven plugin 7.3
Sesame 2.7.0
Java 1.6+
(OpenIoT) utils.commons 0.0.1
org.eclipse.persistence.eclipselink 2.5.0
JavaMelody 1.45.0
com.hp.hpl.jena 2.6.4
lsm.api 0.0.1
org.openrdf.sesame 2.7.0

X-GSN

The X-GSN’s libraries and containers are listed in the Table below.

Container/Library Name Version
Java 1.6
antlr 2.7.7
webcam-capture-driver-jmf 0.3.9
json-simple 1.1
h2 1.1.116
xstream 1.3.1
jts 1.8
commons-codec 1.3
commons-dbcp 1.4
commons-fileupload 1.2
commons-io 2.1
commons-lang 2.2
commons-math 1.2
httpunit 1.6.2
joda-time 1.6
junit 4.10
log4j 1.2.15
mysql-connector-java 5.1.26
REngine 0.6-1
Rserve 0.6-1
opencsv 1.8
stringtemplate 3.0
ant 1.7.0
axis2 1.4.1
commons-email 1.2
org.apache.commons.collections 3.2.1
httpclient 4.0.1
httpcore 4.0.1
httpcore-nio 4.0.1
httpmime 4.0.1
mina-core 1.1.7
asterisk-java 0.3
groovy-all 1.7.1
easymock 2.5.1
easymockclassextension 2.2
jetty-all-server 7.0.2.v20100331
jansi 1.10
jfreechart 1.0.14
jibx-run 1.1.6
postgis-jdbc 1.3.0
rxtx 2.1.7
rome 0.9
cos 05Nov2002
xercesImpl 2.8.1
lsm j6_2013-06-28
net.tinyos 1.x
tinyos-java 2.1
jasperreports 3.0.0
layout x
Twitter 2.x

LSM-Light

The LSM-Light’s libraries and containers are listed in the Table below.

Container/Library Name Version
Java 1.7
Ant
Apache Commons 1.8.2
Virtuoso Jena Provider 2.6.2
com.hp.hpl.jena 2.6.4
JBoss
Log4j 1.2.14
Dom4j 1.6.1
Jaxen 1.1 beta
Saxon9he
Apache Tomcat 7.0.32
jUnit 3.8.1
JFreeChart 1.0.6
Httpclient 4.0
Bonecp 0.7.1
Virtjdbc 4
Json 20090211

User Interface

Request Presentation

The Request Presentation’s libraries and containers are listed in the Table below.

Container/Library Name Version
Java 1.6+
Json 20090211
Primefaces 3.5
Primefaces-extensions 0.6.3
Primefaces-extensions (codemirror addon) 0.6.3
Apache commons-lang3 3.0
Jsf-api 2.1.20
El-api 2.2
Jaxb-api 2.1
Jaxb-impl 2.1
Resteasy-jaxrs 2.3.1.GA
Javamelody-core 1.45.0
(OpenIoT) utils.commons 0.0.1
(OpenIoT) utils.requestCommons 0.0.1

Request Definition

The Request Definition’s libraries and containers are listed in the Table below.

Container/Library Name Version
Java 1.6+
Json 20090211
Primefaces 3.5
Primefaces-extensions 0.6.3
Apache commons-lang3 3.0
Apache commons-io 1.3.2
Jsf-api 2.1.20
El-api 2.2
Jaxb-api 2.1
Jaxb-impl 2.1
Resteasy-jaxrs 2.3.1.GA
Javamelody-core 1.45.0
JsPlumb 1.4.0
(OpenIoT) utils.commons 0.0.1
(OpenIoT) utils.requestCommons 0.0.1
Clone this wiki locally