Pour son fonctionnement, le canal Intranet nécessite l'installation préalable de plusieurs éléments :
Canal Annuaire : fonctionnement validé avec la version 3.00-RC-6
Utilitaires MAG : fonctionnement validé avec la version 2.10
L'installation du canal se déroule en six étapes distinctes :
Création de la base de données
Configuration du canal
Configuration des notifications périodiques
Recopie des librairies
Déploiement
Publication
Pour son fonctionnement, le canal utilise une base de données qui lui est propre. Il est recommandé d'utiliser une base gérant les transactions. Le canal a été testé avec MySQL (tables au format BdB ou InnoDB pour le support des transactions), PostgreSQL et Oracle. Dans le répertoire db se trouvent des scripts de création de la base pour MySQL et PostrgreSQL.
Toute la configuration du canal doit être réalisée dans le fichier properties/CIntranet.xml. Voici un aperçu de la structure de ce fichier avec en gras les balises qu'il faudra nécessairement paramétrer :
Voici un aperçu de la structure du fichier de configuration :
<config> <!-- Racine de la configuration --> <pools> <!-- Connexions à la base de données --> <pool name="default" /> <!-- Pool de connexion par défaut --> </pools> <actions /> <!-- Configuration propre du canal --> <storages> <!-- Configuration des ressources de stockage --> <storage> <!-- Configuration d'une ressource de stockage --> <parameters> <!-- Paramètres de cette ressource de stockage --> <parameter /> <!-- Un paramètre --> </parameters> </storage> </storages> <properties> <!-- Paramètres divers --> <property /> <!-- Un paramètre --> </properties> </config>
Le fichier de configuration du canal doit contenir les informations lui permettant de se connecter à sa base de données. Il est obligatoire de créer un 'pool' de connexion qui s'appellera default et qui pourra soit utiliser une connexion JDBC classique, soit utiliser un pool de connexion Tomcat.
Pour une connexion JDBC standard, quatre informations doivent être renseignées :
L'URL de connexion à la base (indiquant le type de base, la machine et le nom de la base)
Un identifiant pour se connecter à la base
Le mot de passe correspondant à cet identifiant
La driver JDBC à utiliser
Voici un exemple de configuration pour MySQL :
<pool name="default" type="JDBC" url="jdbc:mysql://mysql.univ.fr/baseIntranet" username="login" password="password" driverClassName="com.mysql.jdbc.Driver" />
Voici un exemple de configuration pour utiliser un pool Tomcat appelé intranetPool :
<pool name="default" type="JNDI" url="intranetPool" />
C'est dans cette partie du fichier de configuration qu'il va être possible de définir une ou plusieurs ressources de stockage physique. Lors de la création d'un intranet, l'administrateur pourra choisir à quelle ressource de stockage il l'affecte.
Deux types de stockages ont été implémentés et sont fournis avec le canal, mais il est possible d'en développer d'autres. Le premier s'appuie sur un stockage filesystem alors que le second utilise un serveur WebDAV.
Le stockage sur filesystem utilise un répertoire local du serveur pour enregistrer les fichiers. Dans le cas d'une installation multi-serveurs, il faut que ce répertoire soit accessible depuis l'ensemble des serveurs via un partage (NFS par exemple). On précise dans la configuration ce répertoire et le canal se charge d'y créer un dossier par intranet utilisant cet espace. La gestion des fichiers dans chaque intranet peut utiliser deux modes différents en précisant la classe utilisée pour le stockage :
BasicFileSystemStorage : tous les fichiers d'un intranet sont stockés dans un même répertoire
BalancedFileSystemStorage : on précise dans la configuration le nombre maximal de fichiers par répertoires. Par exemple avec 100 fichiers, on trouvera les fichiers 1 à 99 dans un répertoire 0, puis les fichiers 100 à 199 dans un répertoire 1 etc. Ce système s'appuie sur le numéro du document et garantit que le maximum de 100 documents ne sera jamais dépassé. Dans la pratique on aura moins de documents puisque les liens qui ont également un numéro ne sont pas stockés sur le filesystem.
Exemple de configuration pour un stockage filesystem basic :
<storage name="local" <!-- Identifiant unique de cet espace de stockage --> <!-- Classe implémentant le mécanisme de stockage basic --> classname="org.esupportail.portal.channels.CIntranet.storage.BasicFileSystemStorage" description="Disque dur local" > <!-- Description apparaissant lors du choix de l'espace de stockage --> <parameters> <parameter name="path" <!-- Paramètre obligatoire dans le cas d'un stockage basic --> value="/mnt/intranet" /> </parameters> </storage>
Exemple de configuration pour un stockage filesystem balanced :
<storage name="local.balanced" <!-- Identifiant unique de cet espace de stockage --> <!-- Classe implémentant le mécanisme de stockage balanced --> classname="org.esupportail.portal.channels.CIntranet.storage.BalancedFileSystemStorage" description="Disque dur local - ventilé" > <!-- Description apparaissant lors du choix de l'espace de stockage --> <parameters> <parameter name="path" <!-- Paramètre obligatoire dans le cas d'un stockage balanced --> value="/mnt/intranet" /> <parameter name="size" <!-- Paramètre obligatoire indiquant le nombre maximal de fichiers par répertoire --> value="100" /> </parameters> </storage>
Le stockage WebDAV est identique au stockage filesystem balanced dans sa gestion des fichiers. Il utilise un accès WebDAV en mode trusted, c'est à dire qu'il est nécessaire de fournir un identifiant et un mot de passe ayant des droits suffisants sur le répertoire du serveur pour le fonctionnement du canal (création / suppression de répertoires, création / suppression de fichiers).
Exemple de configuration pour un stockage WebDAV :
<storage name="webdav" <!-- Identifiant unique de cet espace de stockage -->
<!-- Classe implémentant le mécanisme de stockage WebDAV -->
classname="org.esupportail.portal.channels.CIntranet.storage.DAVStorage"
description="Serveur WebDAV" > <!-- Description apparaissant lors du choix de l'espace de stockage -->
<parameters>
<parameter name="url" <!-- Paramètre obligatoire indiquant l'URL du serveur -->
value="http://webdav.univ.fr/stockage/intranet" />
<parameter name="login" <!-- Paramètre obligatoire indiquant l'identifiant -->
value="login" />
<parameter name="password" <!-- Paramètre obligatoire indiquant le mot de passe -->
value="password" />
<parameter name="size" <!-- Paramètre obligatoire indiquant le nombre maximal de fichiers par répertoire -->
value="100" />
</parameters>
</storage>
Il est nécessaire de préciser dans le fichier de configuration le ou les annuaires qui apparaîtront lorsqu'il faudra choisir un utilisateur (par exemple pour lui ajouter des permissions sur un dossier). Le fichier de configuration du canal annuaire possède des entrées appelées directories, il faut définir une propriété annuaire.
Voici un exemple de configuration pour la partie annuaire :
<property name="annuaire" value="persPrive,etudPrive" />
Il est possible de préciser une taille maximale pour les fichiers déposés dans le canal.
Important
Cette taille n'a de sens que si elle est inférieure à celle précisée dans la configuration du portail
Voici un exemple de configuration pour une taille maximale de 5 Mo :
<property name="maxfileupload" value="5000000" />
Les notifications périodiques permettent d'envoyer aux utilisateurs en ayant fait le choix un message électronique chaque jour les informant des documents en attente de validation.
Voici un exemple de configuration des notifications périodiques :
<property name="fname" value="esup-canal-intranet" /> <!-- fName du canal -->
<property name="mail.smtp" value="mail.univ.fr" /> <!-- Serveur de mail -->
<property name="mail.from" value="intranet@univ.fr" /> <!-- Adresse d'expédition des messages -->
Il est possible de définir le nombre de fichiers affichés lorsque l'on effectue une recherche sur les derniers documents déposés.
Voici un exemple de configuration pour afficher les 20 derniers documents déposés :
<property name="nbdoc" value="20" />
Les notifications périodiques doivent être déclenchées chaque jour par une tâche planifiée de type CRON.
Il est nécessaire de créer un script SH qui doit appeler la tâche ANT notify.
Pour fonctionner correctement, la librairie mail.jar doit se trouver dans le classpath du canal (normalement elle est présente dans les librairies du portail, il n'y a donc rien à configurer).
Important
Pour que les notifications périodiques fonctionnent correctement, il est nécessaire de paramétrer en plus du pool 'default' un pool appelé 'cron' obligatoirement de type JDBC et pointant sur la même base de données.
Pour le fonctionnement WebDAV, le canal nécessite deux librairies supplémentaires qui ne sont pas fournies par défaut avec le portail. Il s'agit de commons-httpclient.jar et jakarta-slide-webdavlib-2.0.jar et elles sont distribuées avec le canal dans le répertoire lib.
Ces librairies ne sont pas déployées dans le portail de façon automatique, il convient donc de les copier dans le répertoire Perso/uPortal/lib et de redéployer le portail.
Le déploiement du canal est réalisé automatiquement par la tâche ANT deploy.
Le canal Intranet est composé de deux canaux distincts, un pour l'administration des espaces et l'autre pour la consultation destiné aux utilisateurs.
A la racine du package se trouvent deux fichiers d'exemples destinés à être utilisés avec la directive pubchan du portail : pubchan_CAdminIntranet.xml et pubchan_CIntranet.xml.
Dans le cas d'une publication manuelle via le Channel Manager du portail, voici les classes à paramétrer :
Pour le canal d'administration : org.esupportail.portal.channels.CIntranet.CAdminIntranet
Pour le canal de consultation : org.esupportail.portal.channels.CIntranet.CIntranet