Projets de fin d’études (PFE)

1 – Contexte

Le GRIIS est un groupe interdisciplinaire dont un des projets majeurs consiste à concevoir et réaliser une plateforme permettant l’obtention et l’utilisation de données parmi les acteurs du monde de la santé et des services sociaux, tout en assurant la sécurité des données et l’anonymisation des participants. Les sources de ces données sont souvent hétérogènes (multiples modèles de connaissance, multiples schémas de données, multiples systèmes de base de données). De plus, elles évoluent indépendamment les unes des autres, ce qui rend le défi encore plus important.

La plateforme PARS3 est une solution développée par le GRIIS qui veut répondre à ces besoins et aux demandes des principaux acteurs impliqués dans le domaine (cliniciens, chercheurs, gestionnaires et patients). Cette plateforme est en cours de développement. L’équipe qui s’en occupe est composée de professionnels et d’étudiants chercheurs. Le développement est actuellement dans une phase d’exploration par prototypage. Plusieurs projets de fin d’études sont disponibles au sein du GRIIS dans ce contexte.

 

2 – Description des projets

2.1 Mise en place d’une façade à JOOQ en Java

Pour des raisons de sécurité, de stabilité et de maintenabilité, nous aimerions pouvoir disposer d’une façade sécuritaire permettant l’accès aux nombreuses bases de données utilisées lors de l’exploitation de PARS3. L’environnement de développement retenu utilise Liquibase afin de générer, maintenir et déployer facilement les bases de données du système. Le framework JOOQ est utilisé pour simplifier leur utilisation en Java. Si JOOQ offre une première protection contre des attaques externes (notamment l’injection), il serait utile de disposer d’une façade assurant une deuxième ligne de défense et un découplage de JOOQ lui-même. Finalement, une évaluation de performance devra être réalisée afin de confirmer le choix de cette approche.

Concepts : sécurité, maintenabilité, découplage, bases de données.

Technologies : Java, JOOQ, Liquibase, SQL.

2.2 Développement d’un service d’anonymisation dans la plateforme

Les fonctions de sécurité et d’anonymisation sont réalisées grâce à plusieurs services qui tendent à minimiser la rétention de connaissance locale. L’architecture décentralisée rend ainsi les attaques localisées moins pertinentes, car, par exemple, les données ne sont jamais accompagnées des identifiants des patients. Ce projet consiste à développer un des services de PARS3 qui s’occupe de récupérer, générer et maintenir des tables assurant l’anonymisation des patients à travers le système.

Concepts : anonymisation, chiffrement, sécurité, décentralisation.

Technologies : Java, Spring, Camel, Grails.

2.3 Développement d’applications clientes de la plateforme

Dans le but d’obtenir les données et les utiliser, la plateforme PARS3 communique avec plusieurs applications clientes qui assurent le lien entre les intervenants d’un projet d’acquisition de données (PAD). Parmi ces applications, l’application de gestion des résultats obtenus lors des extractions est une composante essentielle qui permet à un chercheur de recevoir, de traiter, d’analyser et de présenter les données de santé et le fruit de leur analyse. Ce projet consiste à mettre en place une telle application. Nous disposons d’une pile technologique (Vue.js, Webpack, Babel, SASS, ES5/ES6) assemblée afin de construire celle-ci. Cependant, il sera possible d’utiliser toute autre technologie permettant d’augmenter les fonctionnalités offertes au chercher ou de diminuer le temps d’élaboration et d’évolution de l’application. D’autres applications nécessaires au bon déroulement d’un projet d’acquisition des données (voir le diagramme ci-joint) pourraient également être développées dans le cadre d’autres projets.

Concepts : interfaces personne-machine, UI/UX, manipulation de données.

Technologies : Vue.js, HTML5, Polymere, Python, R.

2.4 Mise en place d’un superviseur de système

L’architecture du système PARS3 comporte plusieurs dizaines de services d’une quinzaine de types différents. Les services sont en grande partie agnostiques les uns des autres et leur gestion est complètement décentralisée. La surveillance du système représente donc un défi de taille que nous vous invitons à relever. Afin de pouvoir suivre les services, déceler les goulots d’étranglement et étudier la stabilité du système, ce projet propose de mettre en place un superviseur des services et une configuration permettant d’envoyer des alertes à différents acteurs, tout en préservant la sécurité des données et l’intégrité du système. Le système est présentement déployé sur des serveurs virtuels portés par une infrastructure DELL PowerEdge VRTX.

Concepts : surveillance et contrôle, analyse de performance, machines virtuelles, multiples serveurs physiques.

Technologies : Scripting, Zabix, ELK/Prometheus.