Pré-requis technologiques
Technologies employées au cours de ce support
Notez que différentes technologies et notions sont installées tout au long de ce support pour l'installation et la configuration de ORI-OAI. Même si la connaissance de ces technologies n'est pas requise, il est préférable de les maîtriser en partie pour une installation plus rapide et avancée de ORI-OAI :
- Tomcat
- Ant
- XML
- Spring
- Environnement Linux
- SVN
Environnement
Le projet ORI-OAI est entièrement développé dans un environnement J2EE. Aussi, le support qui vous est proposé ici se base entièrement sur un environnement Linux pour se rapprocher au mieux d'une mise en production. Les notions citées ci-après sont donc nécessaires :
- Connaître l'environnement Linux
- Avoir déjà installé une application J2EE (recommandé)
Pré-requis logiciels
Nous verrons dans ce document que certains composants extérieurs sont nécessaires au bon fonctionnement de ORI-OAI :
- Apache Ant (minimum 1.7)
jdk (minimum 1.6.0
(minimumrévision 18)
Warning Version du JDK Version du JDK Attention, la version 2.0 n'a pas encore été validée avec OpenJDK ! Donc en attendant, il est IMPÉRATIF d'utiliser la version proposée par Oracle.
Des erreurs ont été rencontrée lors des premiers tests avec OpenJDK. Nous adapterons les modules pour qu'ils soient compatibles avec OpenJDK ultérieurement.- base de données SQL avec moteur transactionnel (MySQL + InnoDB, PostgreSQL, ..)
- les bases suivantes doivent être préalablement créées, avec un accès en lecture/écriture pour l'utilisateur défini dans le fichier common-parameters.properties (Remarque : le nom par défaut de ces bases peut être modifié dans ce même fichier) :
- les bases suivantes doivent être préalablement créées, avec un accès en lecture/écriture pour l'utilisateur défini dans le fichier common-parameters.properties (Remarque : le nom par défaut de ces bases peut être modifié dans ce même fichier) :
- une base pour la gestion des documents moissonnés : orioaiharvester par défaut une base pour la gestion des documents produits dans le workflow : orioaiworkflow par défaut
- une base pour la gestion du stockage des documents moissonnés et le module indexing : orioai par défaut. Lorsque le module ori-oai-workflow sera disponible en v2, cette même base sera utilisée pour n'avoir qu'une seule base à gérer
- une base pour la gestion des documents produits dans le workflow : orioaiworkflow par défaut
- une base pour la gestion du stockage des documents dans ESUP-ECM : esup-ecm_storage par défaut
- une base pour tous dans ESUP-ECM : esup-ecm_storage par défautune base pour tous les autres besoins (indexation,recherche,gestion des relations,...) de la solution ESUP-ECM : esup-ecm par défaut
- les deux dernières uniquement si vous prévoyez l'utilisation d'ESUP-ECM !
- annuaire LDAP
- serveur SMTP
Nous définissons ici les différentes variables globales utilisées dans ce support :
*\[ORI_HOME\]* le le dossier dans lequel vous ferez l'installation sur votre machine. (Note : lors des captures d'écran de ce support, le dossier ORI_HOME correspondait au dossier /usr/local/ori de notre machine)unmigrated-wiki-markupWiki Markup - *\[HOST_INSTALL\]* le nom de la machine sur laquelle vous faites l'installation
Wiki Markup *\[JAVA_HOME\]* le dossier d'environnement du JDK de votre machine
- [PATH_CUSTOM_CONFIG] le dossier contenant tous les paramétrages et la configuration de l'exploitant
- [PATH_LOGS] le dossier contenant les logs de tous les modules
*\[PATH_TOMCAT\]* le chemin vers le serveur tomcat dans le cas où vous utiliser un unique Tomcat pour tous les modulesmodulesWiki Markup - [JAVA_HOME] le dossier d'environnement du JDK de votre machine
*\[PROXY_HOST\]* l'URL de votre proxy au cas où la machine d'installation passe par un proxyunmigrated-wiki-markupWiki Markup - *\[PROXY_PORT\]* le port du proxy le cas échéantunmigrated-wiki-markup
- *\[SMTP_ETABLISSEMENT\]* l'adresse du serveur SMTP de l'établissement (ex : smtp.insa-lyon.fr)
*\[SMTP_PORT_ETABLISSEMENT\]* le port du serveur SMTP de l'établissement (ex : 25)Wiki Markup *\[POP_ETABLISSEMENT\]* Le nom du serveur POP de l'établissement pour la réception de mailsunmigrated-wiki-markupWiki Markup - *\[SMTP_ADMINISTRATOR_MAIL\]* l'adresse mail de l'administrateur afin de recevoir les mails durant les tests et lors de relevés de bugsunmigrated-wiki-markup*\
- [SMTP_ADMINISTRATOR_NAME\]* le nom de l'administrateur afin de recevoir les mails durant les tests et lors de relevés de bugs
*\[ADMINISTRATOR[ADMINISTRATOR_ID\]* Identifiant de l'administrateur de ORI-OAI dans le LDAPunmigrated-wiki-markupWiki Markup - *\[CAS_ETABLISSEMENT\]* l'adresse du serveur CAS de votre établissement si vous en utilisez ununmigrated-wiki-markup
- *\[LDAP_ETABLISSEMENT\]* l'adresse de l'annuaire LDAP que vous utiliserez au cours de l'installation
*\[[LDAP_BASE_DN\]* la base dn de l'annuaire LDAP que vous utilisezWiki Markup Wiki Markup *\[INDEXES_DATA_DIR\]* le dossier dans lequel seront écrits les indexes des différents modules
Vous devrez remplacer toutes les variables citées ci-dessus par leur valeur réelle chaque fois que celles-ci apparaissent dans le document.
Remarques générales
Les mots de passe
Dans ce tutoriel, nous utilisons des mots de passe simples. Lors d'un déploiement en production d'ORI-OAI, utilisez des mots de passe complexes et en phase avec la politique de mot de passe (si elle existe) mise en place dans votre établissement.
Versions du JDK et de Tomcat
La version 1.6 de ORI-OAI a été validée sous un JDK6.
L'installation des serveurs Tomcat peut être faite automatiquement lors des différentes procédures de déploiement. Dans le cas où vous souhaitez déployer sur un Tomcat existant, sachez que la version minimale requise est la 6.
- utilisez
- [LDAP_AUTH_USERDN] le userDn à utiliser pour se connecter au LDAP en cas de LDAP non anonyme
- [LDAP_AUTH_PASSWORD] le password à utiliser pour se connecter au LDAP en cas de LDAP non anonyme
- [INDEXES_DATA_DIR] le dossier dans lequel seront écrits les indexes des différents modules
- [SQL_CONNECTION_URL] serveur SQL utilisé pour le stockage des données pour ORI-OAI
- [SQL_DRIVER_CLASS] driver SQL
- [SQL_DIALECT] dialecte Hibernate utilisé
- [SQL_USERNAME] le username pour se connecter à la base de données
- [SQL_PASSWORD] le password pour se connecter à la base de données
- [READONLY_GUI] permet de déployer les modules avec des interfaces en lecture seule (pour une version de démonstration publique par exemple)
- [PUBLIC_URL_ROOT] URL publique de la page listant tous les modules, ou autre page d'accueil de ORI-OAI dans votre établissement
Vous devrez remplacer toutes les variables citées ci-dessus par leur valeur réelle chaque fois que celles-ci apparaissent dans le document.
Remarques générales
Les mots de passe
Dans ce tutoriel, nous utilisons des mots de passe simples. Lors d'un déploiement en production d'ORI-OAI, utilisez des mots de passe complexes et en phase avec la politique de mot de passe (si elle existe) mise en place dans votre établissement.
Versions du JDK et de Tomcat
La version 2.0 de ORI-OAI a été validée sous un JDK6.
L'installation des serveurs Tomcat peut être faite automatiquement lors des différentes procédures de déploiement. Dans le cas où vous souhaitez déployer sur un Tomcat existant, sachez que la version minimale requise est la 6.
Si toutefois vous souhaitiez déployer un ou plusieurs modules sur un Tomcat 5, vous devrez modifier le fichier build.xml des modules en question. En effet, la différence à notre niveau entre un Si toutefois vous souhaitiez déployer un ou plusieurs modules sur un Tomcat 5, vous devrez modifier le fichier build.xml des modules en question. En effet, la différence à notre niveau entre un Tomcat 6 et un Tomcat 5 est l'emplacement du dossier lib (Tomcat 6) ou common/lib (Tomcat 5). C'est ce chemin qu'il est nécessaire de modifier manuellement dans le fichier build.xml.
Remarques concernant la base de données SQL
Base de données transactionnelle
ori-oai-workflow comme ori-oai-harvester ou ori-oai-indexing requièrent l'utilisation d'une base de données transactionnelle. On recommande l'usage de MySql avec le moteur Innodb.
...
Sous linux, dans my.cnf, pour les versions de mysql récentes, on pourra vérifier que l'on a :
Code Block |
---|
default-storage_engine = innodb
|
Pour une version plus ancienne, l'option est de la forme :
Code Block |
---|
default-table-type = innodb
|
Commandes pour vérifier en ligne de commande (client mysql) le storage utilisé sur une table de votre base :
Code Block |
---|
mysql> use `ori-oai-workflow`; Database changed mysql> show table status like 'ORI_WORKFLOW_ACL_ROLE'; \+\+-\--\--\--\--\--\--\--\--\--\--\--{-}+\-+-\-\--\---\+--\--\-\--\--\--{-}+\-\-+-\-\--\--\--\--{+}{+-}\--\--\-+-\--{-}+\-+-\--\--\--\--\--+-\--\--\--\--\--\--\+--\--{-}+\-+-\--\-\--\--\--\-+--\--\--\--\--\--{-}{+}{+{-}+}{+}-\--\--\--\-\--\--\+--\---\--\--\--\--\--\-+-{-}+\-+-\--\--\--\--\---\--\--\-\-+-\--\--{-}{+}{+{-}+}{+}-\--\--\-+-\-\--\--\--\---\--\--\+--\--\--\--\--\--\--\--\-+-\---------+----------------+--------------------------------\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--+\+\++{-}{-+}\| Name \| Type \| Row_format \| Rows \| Avg_row_length \| Data_length \| Max_data_length \| Index_length \| Data_free \| Auto_increment \| Create_time \| Update_time \| Check_time \| Create_options \| Comment \|+{-}{-+}\++{-}+\-+-\--\--\--\--\--\--\--\--\--\--{-}{-}{-}+\-+-\-\--\-\--\--\--\-\--\--\--{-}{-}{-}+\-\-+{-}+\-\-+-\--\-\--\--\--\--\--\--{-}{-}{-}+\-+{-}+\-+-\--\--\--\-\--\--\--\--\--\--\--\--\--{-}{-}{-}+\-+-\--\-\--\--\--\-\--\--\--\--\--\--{-}{-}{-}+\-+-\--\--\-\--\--\--\-\--\--\--\--\--\--\--{-}{-}{-}+\-+-\--\--\--\--\-\--\--\--\-\--\--\--{-}{-}{-}+\-+-\--\--\-\--\--\--\-\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\-----------------------------------------\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\| ORI_WORKFLOW_ACL_ROLE \| InnoDB \| Dynamic \| 5 \| 3276 \| 16384 \| NULL \| 16384 \| 0 \| 6 \| NULL \| NULL \| NULL \| \|-{-}{+}{+{-}+}{+}-\-\--\--{-}{+}{+{-}+}{+}-\--\--\--\--\- *{-}InnoDB{-}* -\--\--\--{-}+\-+{-}+\-+{-}-\--free: 3072 kB; (`oriAclObjectIdentityId`) REFER `ori-oai-workflow/ORI_WORKFLOW_ACL_OBJECT_IDENTITY`(`oriAclObjectIdentityId`) \|-+\-+{-}+\-+-\--\--\--\--\--\--\--\--\--{+}{+-}{-}-\--\-\--\-\--+\-+-\--\-\--\--\--{-}-\--\--\-\--+\-+-\-\--\--\--\--\--\--{-}{-}-\--\--\--+\-+{-}+\-+-\-\--\--\--\--\--\--\--\--\--{-}{-}-\--\--+\-\-+{-}+\-+-\--\-\--\--\--\--\--\--{-}{-}-\--\--\--+\-\-+-\--\--\-\--\--\--\--\--\--\-\--\--\--\--\-\+-\--\-\--\--\--\-\--\--\--{-}{-}-\-\+-\--\--\-\--\--\--\-\--\--\--\--\--\-----------------------------------------------------------------------------------------------------------------------------\+ 1 row in set (0.00 sec) |
On notera enfin que PostgreSQL a l'avantage ici d'avoir un moteur transactionnel par défaut.
Encodage de la base de données
...
+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+-----------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+------------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+
| ORI_WORKFLOW_ACL_ROLE | InnoDB | 10 | Compact | 26 | 630 | 16384 | 0 | 16384 | 2835349504 | 277 | 2013-11-19 14:36:35 | NULL | NULL | utf8_general_ci | NULL | | |
+-----------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+------------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+
1 row in set (0.00 sec)
|
On notera enfin que PostgreSQL a l'avantage ici d'avoir un moteur transactionnel par défaut.
Encodage de la base de données
Include Page | ||||
---|---|---|---|---|
|
Taille des packets
Par défaut dans le fichier de configuration de MySQL, my.cnf, on trouve :
Code Block |
---|
max_allowed_packet = 1M
|
Cela signifie qu'on ne peut envoyer à MySQL un flux de données plus grand que 1Mo. Cette valeur peut s'avérer insuffisante dans le cas de l'indexation plein texte. Il est donc conseillé d'augmenter cette valeur et de la faire correspondre à la valeur de la propriété plainTextSizePerDoc du fichier commonBeans.xml du module ORI-OAI-indexing (par défaut 20 Mo).
...
Base de données pour ESUP-ECM / Nuxeo
Le projet ESUP-ECM utilisé pour le stockage des documents nécessite l'utilisation d'une base de données transactionnelle.
La base de données recommandée par Nuxeo (projet sur lequel s'appuie ESUP-ECM) est PostgreSQL. Cependant, une compatibilité avec MySQL a été établie dans le projet ESUP-ECM.
Il est extrêmement important de souligner les remarques spécifiques à chacun de ces 2 SGBD:
PostgreSQL
L'utilisation de PostgreSQL 8.3 nécessite la définition de certaines fonctions particulières. Avant de vous lancer dans l'installation, veuillez suivre la documentation suivante: http://doc.nuxeo.org/xwiki/bin/view/FAQ/UsingPostgreSQL83
MySQL
Lorsque vous passerez à l'étape d'installation, à aucun moment ne vous sera demandé de créer les tables de la base de données. En effet, toutes les tables sont créées automatiquement lors du premier démarrage de ESUP-ECM.
...