This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
wiki:epims4_0:developer:epcorefilestransfer [2009/01/21 11:27] 132.168.73.247 |
wiki:epims4_0:developer:epcorefilestransfer [2009/01/21 11:33] (current) 132.168.73.247 |
||
---|---|---|---|
Line 46: | Line 46: | ||
Les informations recueillies par le système sont les mêmes que celles qui seront sauvegardées dans la BD, à savoir l'entité à laquelle le fichier est rattachée et un ensemble de tag. Les deux options suivantes seront conjointement utilisées afin de permettre une flexibilité à l'utilisation de ce service et de permettre une reprise sur erreur : | Les informations recueillies par le système sont les mêmes que celles qui seront sauvegardées dans la BD, à savoir l'entité à laquelle le fichier est rattachée et un ensemble de tag. Les deux options suivantes seront conjointement utilisées afin de permettre une flexibilité à l'utilisation de ce service et de permettre une reprise sur erreur : | ||
- | * dépot d'un fichier de description dans la drop_zone avec les nouveaux fichiers - :!: Non Implémenté encore - | + | * dépot d'un fichier de description (voir eP-CoL) dans la drop_zone avec les nouveaux fichiers - :!: Non Implémenté encore - |
* envoi d'un message vers ePims qui déclare que de nouveaux fichiers sont disponibles dans la drop_zone. Le message contient toutes les informations nécessaires (celles présentes dans le fichier de description). | * envoi d'un message vers ePims qui déclare que de nouveaux fichiers sont disponibles dans la drop_zone. Le message contient toutes les informations nécessaires (celles présentes dans le fichier de description). | ||
- | |||
Line 61: | Line 60: | ||
==== Implémentation ==== | ==== Implémentation ==== | ||
- | Dans eP-Core on définit la classe ''cea.edyp.epims.messages.JMSTransferListener'' qui implémente MessageListener et qui écoute sur le Topic JMS ''TransferTopic''. | + | La définition des objets transitant via les messages (ici TransferMessage) sont dans eP-CoL ! |
+ | |||
+ | Dans eP-Core on définit la classe ''cea.edyp.epims.messages.JMSTransferListener'' qui implémente MessageListener et qui écoute sur le Topic JMS ''TransferTopic''. | ||
{{ .:xfer_sequencel.png }} | {{ .:xfer_sequencel.png }} | ||
**Diagramme de séquence lors de la réception d'un message** | **Diagramme de séquence lors de la réception d'un message** | ||
+ | |||
+ | Règles de dispatch | ||
+ | - :!: Non Implémenté encore - Des tags sont prédéfinis au niveau d'eP-Admin | ||
+ | |||
+ | Seuls les tags existants sont autorisés. Les règles de dispatch sont basés sur le tag, l'entité associée et éventuellement les caractéristiques du fichier. | ||
+ | |||
+ | * Pour chaque fichier à transférer, au moins un tag doit être défini et une entité désignée. | ||
+ | * Les règles de dispatch s'applique sur le 1er tag. L'ordre de définition des tags est donc important. | ||
+ | * Les règles de dispatch s'applique sur la 1ere entité associé. L'ordre de définition des entités est donc important. En effet, un fichier peut être associé à plusieurs entités (échantillons le plus souvent). A l'utilisateur d'être un minimum cohérent. | ||
+ | |||
+ | Le dispatch se fait en plusieurs étapes : | ||
+ | |||
+ | * Identification du répertoire <entity> correspondant à l'entité associé. Donc uniquement dépendant de (la 1ere) l'entité associée au fichier. | ||
+ | * Création si nécessaire du répertoire <entity>/data/<TAG_NAME>. Pour certaines entités, aucun sous répertoire n'est créé. C'est le service de dispatch et plus précisément le service retournant le path pour un objet <entité lié - fichier - tag> qui décide de la règle. (IFileManager) | ||
+ | * Copie du fichier dans ce répertoire | ||
+ | * Enregistrement des informations dans la BD | ||
+ | |||
+ | |||