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.
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 :
PRG_NOMENCLATURE
PROJ1_NOMENCLATURE
STD_NOMENCLATURE
La distribution des binaires d'ePims contient l'arborescence suivante :
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.
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-<version>.jar
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
Nom des répertoires, sur l'espace disque de stockage dédié à ePims, qui contient les projets/études n’appartenant pas à un programme/projet.
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.
Répertoires, relatifs à PIMS_ROOT, dans lesquels les données relatives aux études sont stockées.
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.
Répertoire, relatif à PIMS_ROOT, dans lequel sont transférés les données qui sont à archiver (à copier sur bandes)
Répertoire, relatif à PIMS_ROOT, dans lequel les données “administratives” et systèmes sont sauvegardées (logs files…)
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.
PIMS_ROOT=C:/temp/root PIMS_ROOT=\\\\serveur\\path\\to\\pims\\root
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-<version>.jar puis spécifier les caractéristiques suivantes : group = lib, Artifact = eP-Core, version =<version> et type=jar.
<version> 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 :
La nouvelle configuration devrait être pris en compte.
les modules eP-Web et eP-WebServices sont déployés à partir de de l'application d'entreprise (EAR) eP-EAR.ear.
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.
Depuis la console d'administration de Geronimo :
[ds_name]
Postgresql
org.postgresql.Driver
postgresql/postgresql-8.1/407.jdbc3/jar
: valeurs qui doivent correspondre à celles saisies lors de la configuration de Apache Geronimo … Sinon vous pouvez toujours rechercher le .jar en cliquant sur “Download a Driver”.[pims_db_user]
[pims_user_password]
Le Realm est la connexion gérant la sécurité des accès à l'interface web d'ePims. Depuis la console administration de Geronimo :
[realm_name]
DataBase (SQL) Realm
# User SELECT SQL : select login, passwd from actor where login=? # Group SELECT SQL : select login, role from actor_role where login=?
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 RealmsLes ressources JMS (Java Message Service) permettent l'envoi et la réception de message entre application.
Depuis la console d'administration de Geronimo :
[jms_ressource_name]
javax.jms.ConnectionFactory
. Faire “next”[epims_jms_cf]
javax.jms.Topic
AcquisitionTopic
. Faire “next”javax.jms.Queue
ePimsQueue
. Faire “next”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.
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]) : <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1" xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1" xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1"> <sys:environment> <sys:moduleId> <sys:artifactId>ePims</sys:artifactId> </sys:moduleId> <sys:dependencies> ... </sys:dependencies> </sys:environment> <context-root>/ePims</context-root> <naming:resource-ref> <naming:ref-name>jdbc/epims</naming:ref-name> <naming:resource-link>[ds_name]</naming:resource-link> <==== data source </naming:resource-ref> <security-realm-name>[realm_name]</security-realm-name> <==== realm <naming:resource-ref> <naming:ref-name>jms/epims</naming:ref-name> <naming:resource-link>[jms_connection_factory_name]</naming:resource-link> <==== connection factory jms </naming:resource-ref> </web-app>
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) :<?xml version="1.0" encoding="utf-8"?> <!-- JNLP File eP-Plate Application --> <jnlp spec="1.0+" codebase="$$codebase"> <information> ... </information> <security> ... </security> <resources> ... </resources> <application-desc main-class="cea.edyp.plate.ui.PlateApp"> <argument>[Server_address]</argument> </application-desc> </jnlp>
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.
eP-EAR/eP-WebServices/WEB-INF/geronimo-web.xml
: insérer la référence à la datasource ([ds_name]) : <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1" xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1" xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1"> <sys:environment> <sys:moduleId> <sys:artifactId>eP-WS</sys:artifactId> </sys:moduleId> </sys:environment> <context-root>/eP-WS</context-root> <naming:resource-ref> <naming:ref-name>jdbc/epims</naming:ref-name> <naming:resource-link>[ds_name]</naming:resource-link> <====== data source </naming:resource-ref> </web-app>
3 - Modifier les fichiers sous eP-EAR/.
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]) :<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.1" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1" xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1"> <sys:environment> <sys:moduleId> <sys:groupId>default</sys:groupId> <sys:artifactId>ePims</sys:artifactId> <sys:version>1.0</sys:version> <sys:type>car</sys:type> </sys:moduleId> <sys:dependencies> <sys:dependency> <sys:groupId>lib</sys:groupId> <sys:artifactId>eP-Core</sys:artifactId> <sys:version>3.4.3</sys:version> <sys:type>jar</sys:type> </sys:dependency> <sys:dependency> <sys:groupId>console.dbpool</sys:groupId> <sys:artifactId>[ds_name]</sys:artifactId> <===== data source </sys:dependency> <sys:dependency> <sys:groupId>console.jms</sys:groupId> <sys:artifactId>[jms_resource_group_name]</sys:artifactId> <===== jms resource group name </sys:dependency> </sys:dependencies> .... </sys:environment> .... </application>
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.
Depuis la console administration de Geronimo, aller dans Applications / Deploy New et sélectionner Pims.ear
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
Dézipper la distribution de eP-Back. Un répertoire eP-Back-<version>
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-<version>.jar : executable eP-Back.bat : script de démarrage de eP-Back VERSION: fichier d'informations
./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.
./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 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 :<instruments> <instrument> <label>CB501</label> <name>CB501</name> <src>d:/temp</src> <format>QTOF Waters</format> <removeFiles>false</removeFiles> <transfer_mode>0</transfer_mode> </instrument> <instrument> ... </instrument> </instruments>
Les informations contenues dans ce fichier sont:
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 :
Dézipper la distribution de eP-TAF. Un répertoire eP-TAF-<version>
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-<version>.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
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…
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
eptaf.properties
: Configurer de l'environnement pour eP-TAFjms.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
configuration.xml
: Gestion des acquisitions1. 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)
<bean id="defaultDestination" class="cea.edyp.eptaf.Destination"> <property name="path"><value>[REP_DEF]</value></property> </bean>
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
<bean id="messageFilter" class="cea.edyp.eptaf.MessageFilter"> <property name="properties"> <map> <entry> <key><value>acquisitionDescriptor.instrument.name</value></key> <value>^ORBI</value> </entry> </map> </property> </bean>
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
.
<bean id="dispatcher" class="cea.edyp.eptaf.FilterDispatcher"> <property name="properties"> <map> <entry> <key><value>sampleDescriptor.studyDescriptor.program</value></key> <value>AMT</value> </entry> </map> </property> <property name="destinationPath"><value>d:/VDTEST/AMT</value></property> </bean>
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).
... <property name="destinationPath"><value>d:/VDTEST/AMT</value></property> <property name="folderName"><value>sampleDescriptor.studyDescriptor.nomenclature</value></property>
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
Nota : la nature de l'acquisition (AcquisitionDescriptor ⇒ Nature dans le schéma ci-dessus) peut avoir les valeurs suivantes :