====== Modules d'ePims ====== A ce stade, vous avez créé la base de données ePims et un utilisateur pour se connecter à cette base. Cette base est également accessible en TCP/IP depuis la machine qui sera le serveur d'application Geronimo qui est lui même opérationnel. Enfin, vous disposez d'un serveur FTP configuré pour rendre visible en lecture seule le repository ePims. Il reste maintenant à configurer les différents modules d'ePims avant de les déployer sur le serveur d'application et à configurer eP-Back pour les transferts des données de spectrométrie de masse. ===== Repository ePims ===== L'infrastucture ePims s'appuis sur un espace disque où les différentes données (autres que celles enregistrées dans la base de données) sont stockées. L'organisation de cet espace est la suivante : * : racine de l'espace réservé au systeme ePims * : un des répertoires (sous pims_root) contenant les données relatives à l'activité. * : répertoire contenant les données relative au programme de recherche ''PRG_NOMENCLATURE'' * : répertoire contenant les données relative au projet scientifique ''PROJ1_NOMENCLATURE'' * : répertoire contenant les données relative à l'étude ''STD_NOMENCLATURE'' * **raw** : contient les données brutes générées par les instruments (.raw pour les QTOF par exemple). * **spectra** : contient les spectres processés issus des données brutes (.pkl ou prp par exemple) * **results** : contient les résultats d'analyses expertisés, dans un format libre * **samples** : contient les informations relatives aux échantillons * **forms**: contient les fiches échantillons fournies pour les échantillons réceptionnés * **scans** : contient des images de gels d'où sont extraits les échantillons. * **annotation** : contient les fichiers permettant d'identifier les différents échantillons extraits d'un gel 2D et de faire correspondre les nomenclatures clients et plate-forme. * **search ** : contient les résultats d'identification bruts tels que produit par le logiciel utilisé. * **analysis_request** : contient les fiches d'analyses reçues dans le cadre de l'étude * **other** : ... * : répertoire systeme de ePims dans lequel des fichiers de logs (par exemple) sont enregsitrés. ===== Contenu de la distribution ===== La distribution des binaires d'ePims contient l'arborescence suivante : * **ePims_4.0M2/** * **database/** * ePimsModel.sql * Data_migration-1.sql * Data_migration-2.sql * Data_migration-3.sql * Data_migration-4.sql * **eP-Core/** * eP-Core-3.4.6.jar * eP-Core.properties * updateJar-Core.bat * updateJar-Core.sh * **eP-EAR/** * **eP-Web/** * **jnlp/** * epplate.jnlp * **WEB-INF/** * **classes/** * eP-Web.properties * geronimo-web.xml * eP-Web.war * updateWar-Web.bat * updateWar-Web.sh * **eP-WebServices/** * **WEB-INF/** * geronimo-web.xml * eP-WebServices.war * updateWar-WS.bat * updateWar-WS.sh * **META-INF/** * geronimo-application.xml * eP-EAR.ear * eP-Web.war * eP-WebServices.war * updateEar-ePims.bat * updateEar-ePims.sh * eP-Back-1.11.1.zip * eP-TAF-0.1.1.zip Cette arborescence doit être copiée dans un répertoire temporaire d'installation afin de pouvoir modifier certains fichiers de configuration. Tous les chemins et fichiers donnés dans cette page sont relatifs à ce répertoire temporaire d'installation. ===== eP-Core ===== Avant de déployer eP-Core, il est nécessaire de le configurer. Modifiez le fichier **eP-Core/**epCore.properties comme indiqué ci-dessous puis exécutez updateJar-Core.bat (ou updateJar-Core.sh sous Linux) qui va mettre à jour le fichier epCore.properties qui se trouve dans la librairie eP-Core-.jar ==== Configuration ==== Cette configuration sera commune à tous les modules utilisant eP-Core installé sur le serveur Geronimo. Les propriétés à redéfinir sont: UNDEF_DIR_NAME = _UNCLASS_ PIMS_ROOT = /local/path/to/pims_root/ PIMS_REPOSITORY_1 = a PIMS_REPOSITORY_2 = b PIMS_REPOSITORY_3 = c PIMS_SHARE = b/share PIMS_ARCHIVE = transfert/archive PIMS_SYSTEM = adm PIMS_ARCHIVE_FILE = path/relative/to/pims_system/studyArchived.txt == UNDEF_DIR_NAME == Nom des répertoires, sur l'espace disque de stockage dédié à ePims, qui contient les projets/études n’appartenant pas à un programme/projet. == PIMS_ROOT == Le repository d'ePims, autrement dit le répertoire racine de l'espace de stockage où toutes les données de ePims sont stockées. == PIMS_REPOSITORY_XX == Répertoires, relatifs à PIMS_ROOT, dans lesquels les données relatives aux études sont stockées. == PIMS_SHARE == Répertoire, relatifs à PIMS_ROOT, contenant les données dites partagées, n’appartenant pas spécifiquement à une étude. On retrouve ici, par exemple, les acquisitions de contrôles réalisées sur les instruments. == PIMS_ARCHIVE == Répertoire, relatif à PIMS_ROOT, dans lequel sont transférés les données qui sont à archiver (à copier sur bandes) == PIMS_SYSTEM == Répertoire, relatif à PIMS_ROOT, dans lequel les données "administratives" et systèmes sont sauvegardées (logs files...) == PIMS_ARCHIVE_FILE == Fichiers copiés dans les répertoires des études lorsque celles-ci sont archivées afin d’en avertir l’utilisateur. Ce fichier est donné avec le projet. Il doit contenir un tag « #DATE#. » qui sera remplacé par la date effective à laquelle l’étude à été archivée. Le chemin spécifié est relatif au répertoire PIMS_SYSTEM. === Spécificités Windows === - Dans le cas où geronimo est exécuté comme un service, les chemins absolus spécifiés dans ePCore.properties ne doivent pas référencer une disque logique réseau ! Soit ils référencent un disque local c:\path\to... soit ils référencent une connexion réseau sous la forme d'une UNC \\serveur\path\to.... - Les chemins absolus doivent être écrits soit avec des "/" soit les "\" doivent être doublés ! Exemple : PIMS_ROOT=C:/temp/root PIMS_ROOT=\\\\serveur\\path\\to\\pims\\root ==== Déploiement ==== La librairie eP-Core doit être ajoutée au serveur Géronimo afin d'être partagée par les autres modules. Pour cela, depuis la console d'administration de Geronimo, sélectionner la rubrique "Services/Common Libs", dans File télécharger le fichier eP-Core-.jar puis spécifier les caractéristiques suivantes : group = lib, Artifact = eP-Core, version = et type=jar. est de la forme "3.4.0" :!: **Remarque** : Si eP-Core.jar doit être redéployé (si erreur lors de la configuration ou autres) il ne sert à rien de repasser par la console Geronimo. Car celui-ci ne remplacera pas le fichier si la version est la même. Il faut donc : - arrêter le serveur - se rendre dans le dossier de la librairie : [GERONIMO_HOME]/repository/lib/eP-Core/ - remplacer l'ancien fichier **eP-Core.jar** par le nouveau - redémarrer le serveur La nouvelle configuration devrait être pris en compte. ===== eP-Web & eP-WebServices ===== les modules eP-Web et eP-WebServices sont déployés à partir de de l'application d'entreprise ([[http://java.sun.com/j2ee/1.4/docs/tutorial-update6/doc/Overview5.html|EAR]]) eP-EAR.ear. ==== Configuration ==== Avant de déployer l'application ePims, il est nécessaire de modifier certains fichiers de configuration et de créer une connexion à la base de données depuis le serveur Geronimo. === Configuration du serveur Geronimo === == Création d'une dataSource == Depuis la console d'administration de Geronimo : * Aller dans "services/Database Pools" et accéder au lien "using ths Geronimo database pool wizard" * Saisir : * Nom de la dataSource: ''[ds_name]'' * Type de la dataSource : ''Postgresql'' * Renseigner les paramètres concernant la datasource : * Nom du Drive : ''org.postgresql.Driver'' * Driver JAR : sélectionner ''postgresql/postgresql-8.1/407.jdbc3/jar'' : valeurs qui doivent correspondre à celles saisies lors de la configuration de [[Configuration#Apache Geronimo]] ... Sinon vous pouvez toujours rechercher le .jar en cliquant sur "Download a Driver". * DB User Name: ''[pims_db_user]'' * DB Password : ''[pims_user_password]'' * Host : nom du serveur où se trouve la BD * Database : [PimsDB] * L'étape suivante permet de saisir les renseignements concernant les options associées à la connexion, ils peuvent ou pas être renseignés, et de tester la datasource avant sa création, cela permet de tester que les paramètres saisis sont corrects. * Dernière étape : déployer la datasource. Remarque: à cette étape, il est possible d'éditer le fichier de configuration correspondant au déploiement de la datasource, ce qui pourrait servir plus tard. Cela dit, Geronimo permet l'édition du fichier de configuration d'une datasource si jamais il n'a pas été récupéré au moment de la création de la dataSource. == Création d'un Realm == Le Realm est la connexion gérant la sécurité des accès à l'interface web d'ePims. Depuis la console administration de Geronimo : * Aller dans "Security/security Realm" et accéder au lien "add new security realm" * Saisir : * Nom du Realm: ''[realm_name]'' * Type du Realm : ''DataBase (SQL) Realm'' * Configure Login Module: * saisir les 2 requêtes qui permettent d'authentifier l'utilisateur selon son login et son password # User SELECT SQL : select login, passwd from actor where login=? # Group SELECT SQL : select login, role from actor_role where login=? * Database Pool : sélectionner la DataSource créée précédemment * Advanced Configuration : dans cette étape il est possible de : * Garder une trace de toutes les tentatives de connexion effectuées par les utilisateurs en spécifiant le nom du fichier de log * De bloquer l'authentification si l'utilisateur effectue un certain nombre de tentatives, en spécifiant ce nombre et la durée pendant laquelle la connexion sera bloquée * Tester une authentification en utilisant le realm en cours de configuration avant que celui ne soit effectivement créé * Créer le Realm en cliquant sur ''Skip Test and Deploy''. Remarque: de même que pour la dataSource, il est possible d'éditer le fichier de configuration avant la création, ou plus tard en utilisant depuis la console administrateur Security/Security Realms == Création des ressources JMS == Les ressources JMS ([[http://en.wikipedia.org/wiki/Java_Message_Service|Java Message Service]]) permettent l'envoi et la réception de message entre application. Depuis la console d'administration de Geronimo : * Aller dans "Services/JMS Resources" et accéder au lien "For ActiveMQ" dans la partie "Create a new JMS Resource Group" * Saisir : * Resource Group Name : ''[jms_ressource_name]'' * laisser les paramètres par défauts pour les autres champs. Faire "next" * Ajouter un Connection Factory. * Cliquer sur "Add connection factory" * JMS Factory Type : ''javax.jms.ConnectionFactory''. Faire "next" * Connection Factory Name : ''[epims_jms_cf]'' * laisser les paramètres par défauts pour les autres champs. Faire "next" * Ajouter des destinations * Cliquer sur "Add Destination" * JMS Destination Type : ''javax.jms.Topic'' * //Message Destination Name// ET //PhysicalName// : ''AcquisitionTopic'' . Faire "next" * Cliquer sur "Add Destination" * JMS Destination Type : ''javax.jms.Queue'' * //Message Destination Name// ET //PhysicalName// : ''ePimsQueue''. Faire "next" * Cliquer sur "deploy now" === Configuration d'eP-Web et d'eP-Webservices === Il existe un certain nombre de fichiers de configuration à modifier en fonction de son environnement et des identifiants utilisés lors de la configuration de Geronimo. La configuration se fait en plusieurs étapes **1** - Modifier les fichiers sous **eP-EAR/eP-Web**. * Fichier ''**eP-EAR/eP-Web/WEB-INF/**geronimo-web.xml'' : insérer les références à la datasource ([ds_name]), au security realm ([realm_name]) et à la fabrique de connection jms ([jms_connection_factory_name]) : ePims ... /ePims jdbc/epims [ds_name] <==== data source [realm_name] <==== realm jms/epims [jms_connection_factory_name] <==== connection factory jms * Fichier ''**eP-EAR/eP-Web/jnlp/**epplate.jnlp'' : Configuration de l'application de gestion des plaques robot. Il faut donner **l'adresse du serveur** de geronimo où sera installé ePims, afin que l'application qui sera exécuté sur les poste client sache où se connecter. Pour cette configuration il faut éditer le fichier epplate.jnlp, pour ce faire faites "clique droit" sur le fichier epplate.jnlp -> "Ouvrir avec" -> "Choisir programme" -> sélectionner dans la liste de programme un éditeur de texte (exemples : //Notepad//, //Wordpad//). Modifier dans le fichier la ligne **[Server_address]** et la remplacer par l'adresse du serveur d'installation de geronimo. **/!\ Ne pas oublier le port**, voir l'installation du serveur geronimo pour le connaitre (exemple : //http://edyp-epims:8008//) : ... ... ... [Server_address] * Fichier ''**eP-EAR/eP-Web/WEB-INF/classes/**eP-Web.properties'' : Configuration du serveur FTP. Si le serveur FTP choisi permet l'authentification via la BD de ePims, seules les propriétés 1 et 2 sont nécessaires, **FTP_AUTH_DB** devant être mis à ''true''. Dans le cas contraire, il faut mettre **FTP_AUTH_DB** à ''false'' et spécifier un login / password valide pour l'utilisateur servant à la connection FTP (propriété 3 et 4) FTP_HOST= ftpServ 1. FTP_AUTH_DB= true 2. FTP_USER= username 3. FTP_PASSWD= password 4. 1. le host du serveur FTP 2. spécifie si le serveur FTP utilise une authentification classique (false) ou via la BD (true) 3. le mot de passe pour l’authentification auprès du serveur FTP, si FTP_AUTH_DB = false 4. le login utilisé pour l’authentification auprès du serveur FTP, si FTP_AUTH_DB = false **2** - Modifier les fichiers sous **eP-EAR/eP-WebServices**. * Fichier ''**eP-EAR/eP-WebServices/WEB-INF/**geronimo-web.xml'' : insérer la référence à la datasource ([ds_name]) : eP-WS /eP-WS jdbc/epims [ds_name] <====== data source **3** - Modifier les fichiers sous **eP-EAR/**. * Fichier ''**eP-EAR/META-INF/**geronimo-application.xml'' : insérer la référence à la datasource ([ds_name]) et au groupe de ressources JMS ([jms_resource_group_name]) : default ePims 1.0 car lib eP-Core 3.4.3 jar console.dbpool [ds_name] <===== data source console.jms [jms_resource_group_name] <===== jms resource group name .... .... **4** Exécuter ''**eP-EAR/eP-Web/**updateWar-Web.bat'' sous Windows ou ''**eP-EAR/eP-Web/**updateWar-Web.sh'' sous Linux. Le fichier ''**eP-EAR/eP-Web/**eP-Web.war'' sera remplacé par une version contenant les fichiers de configuration modifiés. Il est nécessaire que la variable d'environnement JAVA_HOME soit positionnée. **5** Copier le fichier ''**eP-EAR/eP-Web/**eP-Web.war'' sous eP-EAR **6** Exécuter ''**eP-EAR/eP-WebServices/**updateWar-WS.bat'' sous Windows ou ''**eP-EAR/eP-WebServices/**updateWar-WS.sh'' sous Linux. Le fichier ''**eP-EAR/eP-WebServices/**eP-WebServices.war'' sera remplacé par une version contenant les fichiers de configuration modifiés. Il est nécessaire que la variable d'environnement JAVA_HOME soit positionnée. **7** Copier le fichier ''**eP-EAR/eP-WebServices/**eP-WebServices.war'' sous eP-EAR **8** Exécuter **eP-EAR/**updateEar-ePims.bat sous Windows ou **eP-EAR/**updateEar-ePims.sh sous Linux. Le fichier ''**eP-EAR/**eP-EAR.ear'' sera remplacé par les nouvelles versions d'eP-Web, eP-WebServices et par les nouveaux fichiers de configuration. ==== Déploiement d'ePims ==== Depuis la console administration de Geronimo, aller dans Applications / Deploy New et sélectionner Pims.ear ==== Test ==== Dans "Applications/Applications EARs" vérifier que l'application default/ePims/1.0/car soit listée et en statut "running". Saisir l'adresse http://localhost:8080/ePims. En cas de problème lors du login, vérifier qu'il existe au moins un actor/actor_role dans la BD Pims. Normalement, deux utilisateurs sont créés par défaut: admin/admin et guest/guest ===== eP-Back ===== ==== Installation ==== Dézipper la distribution de eP-Back. Un répertoire ''eP-Back-'' est créé et contient l'arborescence suivante : conf |-- instruments.xml : fichier de configurations pour les instruments |-- eP-Back.properties : fichier de configuration nécessaire à eP-Back lib | -- librairies utilisés par l'application eP-Back-.jar : executable eP-Back.bat : script de démarrage de eP-Back VERSION: fichier d'informations ==== Configuration ==== * Fichier ''./conf/eP-Back.properties'' : Configurer de l'environnement pour eP-Back webservices.url=http://[epims-webservices_host]// epims.root=[PIMS_ROOT] webservices.url : host et port du serveur ePims epims.root: path complet au Pims root où eP-Back transfert les données. * Fichier ''./conf/instruments.xml'' : Configuration des instruments. Seuls les instruments connus d'ePims (et donc référencés dans la base de données ePims) pourront être reconnus par eP-Back. De plus le [[RawData|format de données spécifique au modèle de l'instrument]] doit être supporté par eP-Back. Le fichier de configuration pour les instruments est de la forme : CB501 d:/temp QTOF Waters false 0 ... Les informations contenues dans ce fichier sont: * **label** : Le nom de la configuration * **name** : Le nom de l'instrument(comme indiqué dans la BD de ePims), * **src** : le chemin d'accès aux répertoires contenant les analyses issues de cet instrument * **format** : le nom du format de données (identifiant eP-Back) * **removeFiles** : spécifie si les analyses doivent être supprimées ou non après copies * **transfer_mode**: spécifie le mode de transfert souhaité par défaut. Les modes de transfert possibles sont ‘0’ pour la copie depuis les instruments vers le SAN et ‘1’ pour la suppression sur les instruments des analyses déjà sauvegardées. Ces deux dernières propriétés peuvent être modifiées au niveau de l'interface utilisateur d'eP-Back. Il est possible de définir plusieurs configurations pour un même instruments, dans le cas, par exemple, ou les analyses sont générées dans plusieurs répertoires sources ... Actuellement, les formats de données reconnus par eP-Back sont : * QTOF Waters * LTQ / LTQ-FT / OrbiTrap Thermo * QTrap 4000 Applied ===== eP-TAF ===== ==== Installation ==== Dézipper la distribution de eP-TAF. Un répertoire ''eP-TAF-'' est créé et contient l'arborescence suivante : conf | -- wrapper.conf : fichier de configurations pour installer eP-TAF comme service Windows NT | -- configuration.xml : Configuration de la gestion des acquisitions | -- eptaf.properties : configuration de l'environnement d'eP-TAF | -- spring-eptaf.xml : fichier spécifique à l'application. //**Aucune modification ne doit être faire ici**// lib | -- librairies utilisés par l'application logs | -- fichier de log lors de l'exécution eP-TAF-.jar : application eP-TAF wrapper.exe : permet d'installer eP-TAF comme service Windows. A utiliser uniquement via les bat ci dessous InstallApp-NT.bat : script d'installation d'eP-TAF comme service Windows. UninstallApp-NT.bat : script de désinstallation d'eP-TAF comme service Windows. run.bat : script d'exécution d'eP-TAF dans une console DOS === Comme application standard === Pour utiliser eP-TAF comme application standard, il suffit d'exécuter le script ''run.bat'', une fois que les configurations nécessaire on été réalisées (cf le chapitre suivant) Pour **arrêter** eP-TAF, taper CTRL-C... === Comme Service Windows === Une fois que les configurations nécessaire on été réalisées (cf le chapitre suivant), exécuter le script ''InstallApp-NT.bat''. Puis, aller dans le panneau de configuration / Outils Administrateur / Services. Démarrer le service ayant le nom //ePims Automatic File Transfer Service// apparait dans la liste. Vous pouvez arreter et démarrer le service à tout moment par ce biais. Pour supprimer le service, exécuter le script ''UninstallApp-NT.bat'' après avoir arrété le service ==== Configuration ==== * Fichier ''eptaf.properties'' : Configurer de l'environnement pour eP-TAF jms.url_provider=tcp://localhost:61616 ftp.host=[host] ftp.login=[login] ftp.password=[password] ''jms.url_provider'' : host du serveur ePims (configuré comme serveur JMS) ''ftp.host'': host du serveur FTP. Celui-ci peut être le même que celui configuré pour eP-Web. ''ftp.login/ftp.password'' : authentification pour la connexion au serveur FTP. Cet utilisateur peut être un utilisateur spécifique ou un utilisateur enregistré dans la BD de ePims si le serveur FTP est configuré pour utiliser la BD pour l'authentification \\ * Fichier ''configuration.xml'' : Gestion des acquisitions 1. Répertoire destination par défaut. REP_DEF désigne le répertoire où seront copiées les acquisitions si aucun répertoire spécifique n'est défini (voir ci dessous) [REP_DEF] 2. Le ''MessageFilter'' permet de ne considérer que les acquisitions qui nous intéressent. Un ensemble de clé/valeur peut être utilisé pour filtrer les acquisitions. Dans l'exemple si dessous, seuls les acquisitions ayant été réalisées sur un instrument dont le nom commence par //ORBI// seront traitées. L'ensemble des propriétés pouvant être testées est donné en fin de document acquisitionDescriptor.instrument.name ^ORBI 3. Le ''dispatcher'' permet de spécifier où copier les acquisitions qui répondent à certains critères. Las acquisitions considérées ici devront, bien évidement, passer le filtre spécifié au niveau du MessageFilter. Les propriétés spécifiques aux acquisitions sont les mêmes que celles pouvant être utilisées dans le ''MessageFilter''. sampleDescriptor.studyDescriptor.program AMT d:/VDTEST/AMT Dans la partie ''map'', les clés/valeurs spécifiées permettent de sélectionner les acquisitions (en fonction de leurs propriétés) pour lesquelles le répertoire destination ne sera pas celui par défaut. Le ''destinationPath'' désigne le répertoire où copier les acquisitions. Il est également possible d'ajouter une propriété ''folderName'' permettant de définir un sous répertoire (relatif à destinationPath) qui aura pour valeur (dans l'exemple) le nom de l'étude d'appartenance de l'acquisition. Toute propriété de l'acquisition peut êter utilisée comme nom du sous-répertoire. POur pouvoir utiliser cette fionctionnalité, il faut spécifier "cea.edyp.eptaf.DynamicDispatcher" comme ''class'' du dispatcher (et non pas "cea.edyp.eptaf.FilterDispatcher" référençant les dispatcher //classique//). ... d:/VDTEST/AMT sampleDescriptor.studyDescriptor.nomenclature * Fichier ''wrapper.conf''. Seul le chemin vers **l'exécutable java** est à configurer : wrapper.java.command=C:\Program Files\Java\jdk1.5.0_11\bin\java __**Propriétés du message**__ Un schéma du contenu d'un message est donné ci-dessous. Pour spécifier une propriété il faut donner son chemin depuis l'objet !AcquisitionMessage. Ainsi pour tester le projet de rattachement de l'acquisition il faut spécifier sampleDescriptor.studyDescriptor.project {{ .:ept-model.png }} Nota : la nature de l'acquisition (AcquisitionDescriptor => Nature dans le schéma ci-dessus) peut avoir les valeurs suivantes : * BLANK * CONTROL_LC * CONTROL_INSTRUMENT * RESEARCH