Installation et configuration de l'extension Tracking et de Tracking Listener

Cet article détaille l'installation de l'extension Tracking et l'installation et configuration de Tracking Listener.

En premier terme, la figure présente l'architecture de l'extension.


Installation de l'extension Tracking

L'installation de Tracking se fait en exécutant le programme d'installation pour votre plateforme.

Note : Tracking 6.5 requiert la version JMap 6.0f ou supérieure.

Installation étape par étape

L'installation de Tracking nécessite l'arrêt de JMap Server. Si JMap Server est en cours d'exécution, il sera arrêté automatiquement.

Étape

Instructions

Appuyez sur Next.

Sélectionnez le dossier d'installation de Tracking. Tracking doit s'installer sur une installation de JMap 6.0f ou supérieure. Par défaut, le programme d'installation détecte automatiquement le dossier de JMap 6.

Appuyez sur Browse pour sélectionner un dossier différent.

Appuyez sur Next.

Après la copie des fichiers, cette fenêtre est affichée.

Appuyez sur Finish pour terminer l'installation.

Installation de Tracking Listener

Tracking Listener est une application responsable de la réception de données destinées à Tracking. Ces données proviennent en général des équipements de localisation installés dans les véhicules ou sur les personnes. Il peut s'agir de modems-GPS dans des véhicules, d'objets connectés ou d'applications sur appareils mobiles.

L'application Tracking Listener est complètement indépendante de JMap Server et doit être installée sur un serveur qui est accessible par le réseau à partir des équipements qui transmettent des données.

Installation étape par étape

L'installation de Tracking Listener nécessite la présence de Java SE 7 (JRE) ou supérieur.

Étape

Instructions

Appuyez sur Next.

Sélectionnez le dossier d'installation de Tracking Listener.

Appuyez sur Browse pour sélectionner un dossier différent.

Appuyez sur Next.

Appuyez sur Finish pour terminer l'installation.

Configuration de Tracking Listener

Tracking Listener n'a pas d'interface graphique et doit être configuré à l'aide des fichiers de paramètres situés dans le dossier trackinglistener/conf. Les paramètres sont décrits plus bas.

Fichier tracking.properties

Il s'agit du fichier de configuration principal. Selon les options choisies, d'autres fichiers de configuration sont aussi nécessaires. Chaque paramètre est composé d'une paire clé=valeur. Les clés sont uniques. Les lignes débutant par # sont des commentaires.

Les différents paramètres sont décrits plus bas.

Receivers

#Receivers to load (one or many)

receiver.1=jmap.extensions.tracking.listener.receiver.TrackingTCPReceiver

receiver.2=jmap.extensions.tracking.listener.receiver.TrackingUDPReceiver

receiver.3=jmap.extensions.tracking.listener.receiver.FilesReceiver

#receiver.4=jmap.extensions.tracking.listener.receiver.Simulator


Cette section contient la configuration des modules de réception de Tracking Listener. Ces modules sont responsables de recevoir les données par différentes méthodes. Plusieurs modules de réception peuvent être utilisés simultanément. Chaque module comporte aussi son propre fichier de paramètres.

Les principaux modules sont TrackingTCPReceiver (réception par TCP/IP, protocole TCP), et TrackingUDPReceiver (réception par TCP/IP, protocole UDP). Selon la configuration des équipements de géolocalisation et de transmission par TCP/IP, l'un ou l'autre de ces modules peut être utilisé. Ces 2 modules comportent chacun leur propre fichier de paramètres.

Le module FileReceiver est peu utilisé, il pourrait servir à charger des données à partir de fichiers.

Le module Simulator sert à simuler la réception de données par Tracking Listener.

#Send alarm if no activity for the specified timeout (ms)

activity.alarm.enabled=true

activity.alarm.timeout=43200000


Cette section permet de configurer l'émission des alarmes en cas où aucune donnée n'est reçue pour une certaine période de temps. Cela permet de détecter une situation anormale d'inactivité comme la perte de la connexion réseau.

Le paramètre activity.alarm.enabled permet d'activer (true) ou de désactiver (false) l'envoi des alarmes d'inactivité.

Le paramètre activity.alarm.timeout sert à définir la période d'inactivité (en millisecondes) après laquelle une alarme est émise.

Cache

#Cache system to load (only one)

cache=jmap.extensions.tracking.listener.cache.FileCache

#cache=jmap.extensions.tracking.listener.cache.MemoryCache


Cette section contient la configuration du système de mise en cache utilisé par Tracking Listener. Tracking Listener utilise ce cache pour stocker les données reçues avant de les transmettre au système de persistance. Si le système de persistance ne fonctionne pas normalement, le cache accumule les données afin qu'elles ne soient pas perdues. Si les données en cache s'accumulent, Tracking Listener peut lancer des alarmes. Voir la section sur les alarmes pour plus d'information.

Il existe 2 modules. Le module FileCache stocke les données sur disque (dossier trackinglistener/cache). En cas d'interruption de Tracking Listener, les données sur disque sont relues et envoyées à la persistance, ce qui minimise la perte de données. Si les données s'accumulent en cache, l'espace disque utilisé va croître, ce qui n'est généralement pas un problème pour une courte période de temps. C'est le module de mise en cache qui est recommandé. Le fichier de paramètres de ce module ne contient aucun paramètre.

Le module MemoryCache stocke les données en mémoire. Si Tracking Listener est redémarré, les données en cache sont perdues. De plus, si les données en cache s'accumulent, la mémoire peut devenir saturée rapidement. Lorsque c'est possible, il est préférable d'utiliser le module FileCache. Le fichier de paramètres de ce module ne contient aucun paramètre.

#Send an alarm if cache size becomes higher than specified value.

#Resend alarm if size grows by the specified factor

cache.size.alarm.enabled=true

cache.size.alarm.value=100

cache.size.alarm.value.factor=2


Cette section concerne l'envoi des alarmes quand les données s'accumulent dans le cache.

Le paramètre cache.size.alarm.enabled permet d'activer (true) ou de désactiver (false) l'envoi des alarmes.

Le paramètre cache.size.alarm.value détermine le nombre de données en cache requis pour l'envoi d'une alarme. Quand le cache atteint ce seuil, une alarme est envoyée.

Le paramètre cache.size.alarm.value.factor détermine la fréquence des alarmes subséquentes envoyées jusqu'à ce que la situation redevienne normale. Par exemple, si la valeur de ce facteur est 2, une nouvelle alarme sera émise à chaque fois que le nombre de données en cache aura doublé. Pour une valeur de 100 et un facteur de 2, les alarmes seront émises quand le nombre de données en cache atteindra les seuils 100, 200, 400, 800, etc. Ce mécanisme a pour but de limiter le nombre d'alarmes qui seront émises.

Decoders

#Decoders to load (one or many)

decoder.1=jmap.extensions.tracking.listener.decoder.CypressDecoder

#decoder.2=jmap.extensions.tracking.listener.decoder.BluetreeDecoder

#decoder.3=jmap.extensions.tracking.listener.decoder.CypressDickeyJohnDecoder


Cette section concerne les modules de décodage de messages en provenance des équipements de géolocalisation. Chaque module de décodage est conçu pour décoder les messages d'un type d'équipement en particulier. Plusieurs modules de décodage peuvent être utilisés simultanément. Il est possible de développer de nouveaux modules de décodage pour supporter des types d'équipement additionnels.

Le module CypressDecoder est le plus souvent utilité avec Tracking. Il sert à décoder les messages en provenance des équipements Chameleon CTM de la compagnie Cypress.

Le module CypressDisckeyJohnDecoder est utilisé pour décoder les messages des équipements de Cypress connectés aux contrôleurs d'épandage de la compagnie Dickey-John. En utilisant ce module, il est possible de visualiser et d'analyser les données d'entretien hivernal avec Tracking.

Les modules de décodage existants ne comportent pas de fichiers de paramètres.

Persistance Handlers

#Persistence handler to load (only one)

handler=jmap.extensions.tracking.listener.persistence.JDBCHandler

#handler=jmap.extensions.tracking.listener.persistence.JMapServerHandler

#handler=jmap.extensions.tracking.listener.persistence.Simulator


Cette section concerne les modules de gestion de la persistance. Les modules de persistance se chargent de stocker les informations reçues par Tracking Listener. Il ne peut y avoir qu'un seul module de gestion de la persistance configuré à la fois.

Le module JDBCHandler persiste les données directement dans une base de données relationnelle (base de données de Tracking). Vous pouvez utiliser ce module si votre architecture réseau permet à Tracking Listener de se connecter directement à la base de données de Tracking. Ce module comporte son propre fichier de paramètres.

Le module JMapServerHandler délègue la persistance des données à JMap Server. Toutes les données reçues seront envoyées à JMap Server et c'est ce dernier qui assurera la persistance dans la base de données de Tracking. Ce module comporte son propre fichier de paramètres.

Le module Simulator est utilisé en test seulement et ne fait aucune persistance.

#Persistence thread pool size

threadpool.size=2


Ce paramètre sert à définir combien de fils d'exécution (threads) seront utilisés pour la persistance. Cela permet de d'exécuter des tâches de persistance en simultané lorsque le volume des données reçues est élevé. La valeur par défaut est 2 et est adéquate dans la majorité des situations.

Filters

#Filters (zero, one or many)

#filter.0=jmap.extensions.tracking.listener.filter.TrackingDataFilterSpeedValidity
#filter.1=jmap.extensions.tracking.listener.filter.TrackingDataFilterPacketValidity
#filter.2=jmap.extensions.tracking.listener.filter.TrackingDataFilterNullPosition


Cette section contient la configuration des modules de filtres. Les filtres sont optionnels et servent à filtrer les données reçues des appareils de géolocalisation.

TrackingDataFilterSpeedValidity permet d'ignorer les données reçues dont la vitesse indiquée est inférieure ou égale à 0.
TrackingDataFilterPacketValidity permet d'ignorer les données reçues si le "packet" reçu est invalide. La validité du "packet" est déterminé par le décodeur associé. Par exemple, pour le décodeur Cypress, le packet contient une information pour déterminer si le packet est valide ou non.
TrackingDataFilterNullPosition permet d'ignorer les données reçues dont la position X, Y est à 0, 0.

D'autres filtres pourront s'ajouter selon les besoins.

SMTP

#SMTP parameters for sending alarms using email

smtp.host=mail.k2geospatial.com

smtp.username=someuser

smtp.password=apassword

smtp.from=tracking@k2geospatial.com

smtp.recipients=manager@k2geospatial.com


Cette section permet de définir les paramètres pour l'envoi d'alarmes par courriel. Si les paramètres ne sont pas renseignés, aucun courriel ne peut être envoyé.

Le paramètre smtp.recipients permet de définir les adresses des destinataires des courriels des alarmes. Séparer les adresses avec le caractère " ; ".

Logs

log.level=info


Tracking Listener comporte un journal des activités (log file) Ce paramètre détermine le niveau des informations à enregistrer dans le journal. Les fichiers du journal sont situés dans trackinglistener/logs.

Les niveaux disponibles sont all, debug, info, error et fatal.

Fichiers de paramètres des modules

Fichier jmap.extensions.tracking.listener.receiver.TrackingTCPReceiver.properties

port=3636


Ce fichier contient un seul paramètre qui définit le port à utiliser par le module TrackingTCPReceiver pour la réception des données par le protocole TCP. Le port peut être différent selon les besoins.

Fichier jmap.extensions.tracking.listener.receiver.TrackingUDPReceiver.properties

port=3637


Ce fichier contient un seul paramètre qui définit le port à utiliser par le module TrackingUDPReceiver pour la réception des données par le protocole UDP. Le port peut être différent selon les besoins.

Fichier jmap.extensions.tracking.listener.receiver.Simulator.properties

delay.min=3000

delay.max=10000


#MOBILEID=X,Y,INPUT,DIRECTION|...

Mobile_1=-73.56769676273318,45.494208187827,0,0|-73.56485608621003,45.492955408051074,1,0|-73.59709811452376,45.47284507389789,1,0

Mobile_2=-73.66769676273318,45.474208187827,0,0|-73.46485608621003,45.292955408051074,1,0|-73.49709811452376,45.67284507389789,0,0


Ce fichier contient les paramètres du module Simulator. Ce module sert à simuler la réception de données par Tracking Listener. Le simulateur lit les données de ce fichier et simule la réception des données, avec une fréquence variable.

Les paramètres delay.min et delay.max déterminent la fréquence (en millisecondes) des données simulées par le simulateur. Le délai est aléatoire et se situe toujours entre le délai minimal et le délai maximal.

Les lignes suivantes permettent de paramétrer la liste des mobiles simulés et leur comportement simulé. Chaque ligne débute par le nom du mobile (la clé) et contient des séries de 4 valeurs séparées par des caractères " | ". Chaque série contient les coordonnées x et y, la valeur des entrées et la direction du mobile. Une fois la fin de la ligne rencontrée pour un mobile, le simulateur recommence au début.

Fichier jmap.extensions.tracking.listener.persistence.JDBCHandler.properties

# Parameters for JDBC persistence

jdbc.driver=org.gjt.mm.mysql.Driver

jdbc.url=jdbc:mysql://localhost:3306/tracking?useCursorFetch=true

jdbc.username=root

jdbc.password=

jdbc.poolsize=1


Ce fichier contient les paramètres du module JDBCHandler. Ces paramètres servent à établir une connexion JDBC avec un système de base de données relationnelle.

Le paramètre jdbc.driver indique la classe du pilote JDBC à utiliser. Cette classe doit être dans le classpath de Java.

Le paramètre jdbc.url est la chaîne de connexion à la base de données et varie selon le pilote choisi.

Les paramètres jdbc.username et  jdbc.password contiennent les informations d'authentification à la base de données.

Vous pouvez activer l'encryption du mot de passe en utilisant la fonction password(mot_de_passe).

Exemple : jdbc.password=password(BonJour!123)

Le mot de passe écrit en clair sera automatiquement remplacé par le mot de passe encrypté dans le fichier.

Fichier jmap.extensions.tracking.listener.persistence.JMapServerHandler.properties

poolid=99


# Parameters for JMapServer

# connectionmode : CONNECTION_DIRECT or CONNECTION_PROXY


jmapserver.host=localhost

jmapserver.port=7003

jmapserver.httpport=8080

jmapserver.proxypath=/jmap/jmapservlet

jmapserver.serverid=jmap

jmapserver.connectionmode=CONNECTION_DIRECT

jmapserver.username=administrator

jmapserver.password=


Ce fichier contient les paramètres du module JMapServerHandler. Ces paramètres servent à établir une connexion avec JMap Server.

Les paramètres jmapserver.host et jmapserver.port définissent les options pour une connexion directe (si jmapserver.connectionmode=CONNECTION_DIRECT).

Les paramètres jmapserver.httpport, jmapserver.proxypath et jmapserver.serverid définissent les options pour une connexion par proxy (si jmapserver.connectionmode=CONNECTION_PROXY).

Les paramètres jmapserver.username et jmapserver.password contiennent les informations d'authentification à JMapServer.

Vous pouvez activer l'encryption du mot de passe en utilisant la fonction password(mot_de_passe).

Exemple : jmapserver.password=password(BonJour!123)

Le mot de passe écrit en clair sera automatiquement remplacé par le mot de passe encrypté dans le fichier.