750 likes | 865 Views
Conception et mise en œuvre d'un environnement logiciel de manipulation et d'accès à des données réparties. (Application aux grilles d'images médicales: Le système DSEM/DM2). Hector DUQUE. Plan. I- Contexte et objectifs II- État de l'art III- Contributions IV- Conclusions et Perspectives.
E N D
Conception et mise en œuvre d'un environnement logiciel de manipulation et d'accès à des données réparties. (Application aux grilles d'images médicales: Le système DSEM/DM2). Hector DUQUE
Plan I- Contexte et objectifs II- État de l'art III- Contributions IV- Conclusions et Perspectives
aujourd'hui hôpital hôpital hôpital
nom, sexe, région N IRM (Imagerie par Résonance Magnétique) 1 fichier DICOM = métadonnées + image Séquence d'images 3D / temporelles
DICOM DICOM DICOM hôpital nom, sexe, région N DICOM Raid 5 serveur DICOM(CTN / DCMTK) 1 client DICOM DICOM IRM fichier DICOM = métadonnées + image Séquence d'images 3D / temporelles
aujourd'hui données médicales distribuées hôpital grandes BD sensibles (sécurité,confidentialité) hôpital traces à garder hôpital accès lecture seule
haute performance traitement intensif des données demain grande capacité de stockage haut « throughput » distribution, grande échelle 2D / 3D / 4D
haute performance traitement intensif des données demain grande capacité de stockage haut « throughput » distribution, grande échelle 2D / 3D / 4D service de requêtes basées sur le contenu calcul
haute performance Grille traitement intensif des données grande capacité de stockage haut « throughput » 2D / 3D / 4D Grille : un type de système réparti et parallèle qui permet le partage, la sélection et l'aggrégation de ressources géographiquement distribuées « R. Buyya »
haute performance Grille traitement intensif des données grande capacité de stockage haut « throughput » 2D / 3D / 4D Grille : un type de système réparti et parallèle qui permet le partage, la sélection et l'aggrégation de ressources géographiquement distribuées « R. Buyya »
haute performance Grille traitement intensif des données grande capacité de stockage haut « throughput » image de référence (utilisateur) Fraction d’éjection FE > 50% métadonnéesprécalculées comparaison calcul scores de similarité = {1, 0.5, 0.1}
objectif: haute performance Grille traitement intensif des données grande capacité de stockage haut « throughput » accès au données distantes grandes BD externes sensibles (sécurité,confidentialité) trace à garder requête hybride calcul scores de similarité = {1, 0.5, 0.1}
Plan I- Contexte et objectifs II- État de l'art III- Contributions IV- Conclusions et Perspectives
II. État de l'art Hôpital: DICOM [National Electric M. Asoc, 2001] • CTN [www.erl.wustl.edu] • DCMTK [www.offis.uni-oldenburg.de] • PACS, et RIS. ++ bien intégré dans la pratique clinique -- pas interopérable -- limité à l'intérieur de l'hôpital -- pas interconnecté aux ressources de calcul
II. État de l'art 1. Grilles de calcul • Condor [Basney, HPCC99] • Legion [Chapinand, JSSPP99] • Globus [Foster et al, IJSAHPC97] • LCG (DataGrid) [http://lcg.web.cern.ch/LCG/] • SRB (stockage) [Rajasekar, CSIJ03] ... -- pas adapté aux spécificités des applications médicales -- pas d'interface avec les serveurs de données médicales -- gestion de fichiers, mais pas de structures de données plus complexes ++ environnement contrôlé ++ authentification ++ support 24/7
II. État de l'art 1. Grilles de calcul 2. Grilles d'internautes P2P: utilisé par la communité internaute [Buyya, GRID04] • NAPSTER [www.napster.com] • CHORD [Stoika, MIT02] -- environnement non contrôlé -- très volatile -- faible sécurité ++ très grande échelle ++ gestion de fichiers distribués
II. État de l'art Projet Grilles Médicales • e-DIAMOND [www.ediamond.ox.ac.uk] • Mammogrid [McClatchey, CHEP03] • DISMEDI [www.medicaltech.org/dismedi] ++ utilise BD distribuées, traitement des images, technologie DICOM, interaction avec les grilles de calcul -- pas de grande échelle -- pas de séquences (3D/4D) d'images -- pas de requêtes hybrides distribuées
II. État de l'art Architectures • CORBA [www.omg.org] • DCOM [www.microsoft.com/com] ++ définition standard d'interopérabilité ++ définition conceptuelle des systèmes distribués -- pas de définition architecturale de chaque élément du système distribué -- pas de haute performance et de traitement intensif des données.
Plan I- Contexte et objectifs II- État de l'art III- Contributions IV- Conclusions et Perspectives
Nos Travaux • Datagrid • MediGrid • Ragtime
système distribué == {engines} U {machines} machine engine engine machine engine engine engine engine machine machine
engine - Composant complexe constitué d'un ensemble de processus locaux indépendants - « Brique » fonctionnelle pour construire des systèmes distribués (SD) machine engine engine machine engine engine engine engine machine machine
système distribué == {engines} U {machines} client application médicale app med app med serveur application médicale app med
système distribué == {engines} U {machines} Grille client application médicale serveur DICOM app med app med serveur application médicale app med IRM serveur Base de Données
1-DSE Distributed Systems Engines (architecture multicouche) 1- définition d'une architecture multicouche 2- implémentation de la couche intergicielle 3- implémentation de la couche d'application DSE4 - utilisateur 3- applications -DM2 DSE3 -application DSE2 Définition Verticale -distribution 2-intergiciel -DSEM Niveau sémantique DSE1 -transaction - échange de messages DSE0 Définition Horizontale
Contributions 1- définition d'une architecture multicouche 2- implémentation de la couche intergicielle 3- implémentation de la couche d'application 4- cas d'utilisation médicale 5- tests de performances
machines clientes messages réseau IPC IPC messages réseau machines serveurs
1.1 -Architecture (DSE0) NIIO IIO noyau d’échange des messages (MPK) IIIO IINO DSE0 == {processus} U MPK
1.2 -Architecture (DSE1) QUD TOD échange des transactions TKD RQD une query est un ensemble de tasks une taskest un ensemble de requests une request est un ensemble demessages DSE1 == {drivers}
1.2 -Architecture (DSE1) Grille QUD TOD Grille échange des transactions Proc Images TKD RQD DICOM DICOM Engine Grille
1.2 -Architecture (DSE1) qu: Compare (img1, imag2) tk: get (img1, img2) localize (img) check cache (img1, imag2) rq tk get (img1, imag2) rq rq tk pull (img1) pull (img2) msg: DICOM
ORACLE 1.3 -Architecture (DSE2) SDA TOOLS Cache SDR MYSQL DSE2 == {Tools} U {service daemons} U {service drivers}
ORACLE 1.3 -Architecture (DSE2) SDA TOOLS Requêtes Hybrides Cache Bases de Données SDR MYSQL DSE2 == {Tools} U {service daemons} U {service drivers}
1.4 -Architecture (couches d'application) - utilisateur DSE4 <==> {interfaces} 3- applications -DM2 - application DSE3 <==> {services} DSE2 2- intergiciel -DSEM DSE1 DSE0
1.5 -Architecture: Modularité : - définition de nouveaux QUD ==> services plus complets (i.e. différents protocoles d'accès) - définition de nouveaux SDA ==> plus de services (i.e. stockage de métadonnées, requêtes par le contenu, etc.) - définition de nouveaux RQD et SDR ==> permettent d'avoir accès à des services externes (i.e. Grille, DICOM, DB, etc.) Extensibilité: - plus de SDR concurrents permettent d'accéder à PLUS de ressources externes - plus d'instances de « drivers » permettent de gérer plus de transactions concurrentes
Contributions 1- définition d'une architecture multicouche 2- implémentation de la couche intergicielle 3- implémentation de la couche d'application 4- cas d'utilisation médicale 5- tests de performances
Dispatcher 2.2 - Intergiciel (DSEM) Engine Dispatcher conf file1: = {list QUD, TKD, RQD, TOD}
Dispatcher Dispatcher 2.2 - Intergiciel (DSEM) conf file1: = {list QUD, TKD, RQD, TOD} conf file2: = {list QUD, TKD, RQD, TOD}
Dispatcher Dispatcher 2.2 - Intergiciel (DSEM) conf file1: = {list QUD, TKD, RQD, TOD} conf file2: = {list QUD, TKD, RQD, TOD} engine (serveur) engine (hôpital) engine (hôpital)
2.2 - Intergiciel (DSEM) execution time engine (serveur) engine (hôpital) engine (hôpital)
2.2 - Intergiciel (DSEM) execution time engine (serveur) Grille DICOM BD engine (hôpital) engine (hôpital) IRM IRM IRM
engine (serveur) engine (serveur) Grille DICOM BD engine (hôpital) engine (hôpital) IRM IRM IRM
2.2 - Intergiciel (DSEM) Multi-process QUD MPK RQD
{query A: if <cond 1>; then exec task1 elseif <cond2>; then exec task2 fi exec task3} 2.2 - Intergiciel (DSEM) Traitement des transactions Driver générique RQD Application = {transactions}
2.2 - Intergiciel (DSEM) qu: Compare (img1, imag2) { check cache (img1, img2) get (img1, img2) } tk: get (img1, imag2) { localize (img) pull (img1) // pull (img2) } QUD Driver générique TKD RQD rq: pull (img) { DICOM messages }
2.2 - Intergiciel (DSEM) qu: Compare (img1, imag2) { check cache (img1, img2) get (img1, img2) } tk: get (img1, imag2) { localize (img) pull (img1) // pull (img2) } QUD Driver générique Application = qu: compare, tk: check cache, tk: get, rq: localize, rq: pull, TKD RQD rq: pull (img) { DICOM messages }
Contributions 1- définition d'une architecture multicouche 2- implémentation de la couche intergicielle 3- implémentation de la couche d'application 4- cas d'utilisation médicale 5- tests de performances
3.2 -Distributed Medical Data Manager (DM2) « permet d'offrir un service de requêtes hybrides sur des images médicales » DM2 = { transactions( DICOM, Grille, Cache, Bases de Données, Manipulation des images, Application des algorithmes de traitement des images ) }
3.3 - Application (DM2 - engine serveur - Hôpital) DM2 SDA DICOM SDR Métadonnées SDR DM2 SDR MYSQL DCMTK IRM