Installation du composant SmartRouting Server

L’installeur de Geoconcept Web propose d’installer les deux versions de SmartRouting Server :

  • SmartRouting JEE,
  • SmartRouting Command Line.

Ces versions sont indépendantes entre elles et répondent à des problématiques différentes. Par exemple, SmartRouting JEE est nécessaire pour le widget « Calcul d’itinéraires » dans les portails.

Mise en oeuvre des librairies natives

Pour Windows

Les librairies sont chargées explicitement depuis le sous-répertoire correspondant à l’environnement (32/64 bits) du répertoire externe configuré (RootDirectory) pour le fournisseur local (ConnectionMode="LocalDll").

Mise en oeuvre sous Linux

Seules les librairies linkées dynamiquement sont disponibles actuellement.

Installation pour utilisation des libraires linkées dynamiquement

Le chargement des libraires de dépendance linkées dynamiquement nécessite que la variable système LD_LIBRARY_PATH contienne le répertoire des librairies qui vont être utilisées. La manière d’affecter la variable d’environnement LD_LIBRARY_PATH dépend du shell, du mode de lancement du serveur d’application, etc. De même, la valeur affectée varie selon l’OS hôte, le répertoire de déploiement, le mode de chargement (décrit plus loin).

Par exemple, pour un lancement manuel de tomcat via sh ou compatible (bash, etc) on entrera export LD_LIBRARY_PATH=/home/smartrouting/native/linux32-x86/debian/3.1/dynamic ou export LD_LIBRARY_PATH=/deploy/smartrouting/native/linux64-amd64/red-hat/5.6/dynamic puis startup.sh du répertoire bin de tomcat (la variable est affectée pour la session).

Il est aussi possible de modifier le fichier catalina.sh afin de définir la variable LD_LIBRARY_PATH pour tous les lancements de tomcat, ou bien encore de modifier les fichiers /etc/rc.d/… pour une exécution automatique.

Le fichier service.xml situé dans le répertoire conf de l’arborescence externe au serveur d’application (%smartrouting%) défini le mode de chargement des librairies natives (sous Linux uniquement car sous Windows le mode est toujours le même) dans la section native-libraries.

<?xml version="1.0" encoding="UTF-8"?>
<service>
  [...]
  <native-libraries>
    <log-enabled>false</log-enabled>
    <always-detect>true</always-detect>
    <detect-method>auto</detect-method>
    <last-detect />
    <!--force loading libraries from given directory under ugc/native eg 'linux64-amd64/my-dir' : -->
    <dir></dir>
    <link-mode>dynamic</link-mode>
  </native-libraries>
    […]

Le répertoire depuis lequel l’adaptateur de ressource (de type ConnectionMode="LocalDll") chargera les librairies est défini soit de manière automatique (par détection) soit configuré manuellement. C’est la valeur de l'élément dir qui le détermine : si il est défini et non vide, alors c’est la valeur de l'élément qui sera utilisée comme sous-répertoire du répertoire native de l’arborescence externe au serveur d’application.

[Note] Note

Si dir est défini à la valeur « mydir/test » et que le RootDirectory de l’adaptateur de ressource est défini à la valeur « /home/smartrouting » alors le répertoire utlisé pour le chargement sera /home/smartrouting/native/mydir/test.

Dans le cas où dir est défini (chargement forcé explicitement), les paramètres qui configurent le chargement automatique par détection n’ont pas d’effet : link-mode, detect-mode, always-detect.

Dans le cas du chargement automatique par détection (dir est indéfini ou vide), le sous-répertoire du répertoire native de l’arborescence externe au serveur d’application qui sera utilisé dépend :

  • de l’environnement linux (32 / 64),
  • de la distribution linux (debian, red hat),
  • de la version de la distribution linux,
  • du mode de link des librairies (static/dynamic) – actuellement seul le mode dynamic est disponible.

Quel que soit le mode de définition (forcé explicitement via native-libraries/dir ou détecté automatiquement) du répertoire qui sera utilisé, en mode de link dynamique (uniquement), il est nécessaire que la variable d’environnement LD_LIBRARY_PATH contienne ce répertoire.

Déploiement et configuration du serveur d’application

Merci de vous reporter au paragraphe « Configuration pour SmartRouting JEE » dans le manuel de Geoconcept Web.