Table of Contents

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 :

Contenu de la distribution

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.

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-<version>.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

  1. 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….
  2. 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-<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 :

  1. arrêter le serveur
  2. se rendre dans le dossier de la librairie : [GERONIMO_HOME]/repository/lib/eP-Core/<version>
  3. remplacer l'ancien fichier eP-Core.jar par le nouveau
  4. 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 (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 :

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 :

# User SELECT SQL :   select login, passwd from actor where login=?
# Group SELECT SQL :  select login, role from actor_role where login=?
Création des ressources JMS

Les ressources JMS (Java Message Service) permettent l'envoi et la réception de message entre application.

Depuis la console d'administration de Geronimo :

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.

<?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>
<?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> 
      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.

<?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/.

<?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.

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-<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

Configuration

  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.

<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 :

eP-TAF

Installation

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

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

  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

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)

   <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.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 :