This is an old revision of the document!
Table of Contents
Administrator Guide
This guide shows how to setup an OSGi execution environment with the Middleware platform services.
The guide assume that:
- You have a java 8 JRE installed on your system
- You have basic knowledge on the administration of the Karaf OSGi container
MQTT Broker
The communication platforms relies on MQTT at the lowest communication layer. On linux/windows machines you can easily install the Mosquitto MQTT broker by downloading it on the official website.
Ubuntu repositories alredy host a Mosquitto package, install it using apt with
sudo apt-get install mosquitto
Without any further configuration you should already have an instance of mosquitto running on your machine, with open access on port 1883.
Karaf
We strongly recommend Apache Karaf as the OSGi container of choice. You have two choices:
- Download a preconfigure Apache Karaf bundle
- Download Apache Karaf and use sensorweaver karaf features
SensorWeaver Karaf Bundle
The preconfigured SensorWeaver karaf bundle can be downloaded from this link. That is based on Karaf 3.0.2 and already includes a default configuration that will launch the execution environment (Middleware included) with minimal effort required.
You can install your bundles in the container and test it using Karaf debug and logging tools.
SensorWeaver features
Alternatively you can download an Apache Karaf Distribution from the Karaf download page and add the feature file manually.
Please refer to Karaf documentation to setup the feature repository.
Bundles configuration
Middleware needs two components to be configured in order to run:
- Messaging configuration
- Middleware configuration
Keep in mind that, since the Middleware components are stateful services, the configuration cannot be updated at runtime without disrupting clients, hence a bundle restart is required each time the configuration is changed. Middleware components will just ignore dynamic changes to their configuration at runtime.
Messaging configuration includes the target MQTT broker and security options.
Default messaging system configuration assumes that you have a MQTT broker listening on localhost on port 1883, without security enabled.
You can modify messaging system configuration by creating a configuration file in the etc
folder of Apache Karaf.
Here is the default configuration:
- it.cnr.isti.sensorweaver.messaging.mqtt.cfg
host=localhost port=1883 truststorePassword= keystorePassword= truststorePath= keystorePath= username= password= mode=anonymous
Messaging layer can follow one of these broker authentication mechanisms (mode field):
- anonymous: broker must be set to allow anonmyous clients
- password: by setting the mode to password the messaging layer will connect to the broker using the username and password provided in the available fields. Refer to the broker documentation to set the authentication credentials.
- certificate: certificate based authentication. Refer to this guide for the creation of the keys and certificates (comprising the CA certificate).
Middleware configuration includes a scope name assigned to the middleware instance. A scope identify an area of visibility of data on the Middleware. Each middleware instance is assigned a nodeId at startup. The nodeId can be set via configuration. If an ID is not provided, the hostname is used.
Here is the default configuration:
- it.cnr.isti.sensorweaver.middleware.cfg
scope=default nodeId=
The scope defines a domain under which messages are published on the broker and is the first level of each topic used for message publication. The nodeId, if not provided, defaults to the client hostname. It can be set manually by configuration.