ANALYSE DE L’APPLICATION MOBILE
La solution Pryv
« La société Pryv SA, dont le siège est à Ecublens (VD), a pour but toutes activités quelconques dans le domaine de l’informatique, notamment la conception, l’exploitation, la gestion et la sécurisation des données, la distribution de logiciels et de services, ainsi que le conseil en matière de systèmes d’information. » (Registre du commerce du canton de Vaud, s.d.) Pryv.io est une plateforme destinée à faciliter la création, l’utilisation, le partage et l’élimination de données personnelles. Elle a pour but de garantir la protection de données privées afin de respecter certaines lois comme le RGPD notamment. (Pryv SA, s.d.) Comme l’illustre cette figure, la solution Pryv ici en rouge agit en tant que middleware, c’est-à-dire que l’on rajoute une couche entre notre base de données et notre service. De ce fait, l’instance de Pryv gérera tout ce qui se rapporte au stockage et au partage de ces données. On peut ainsi enregistrer nos données personnelles, les consulter puis les partager à des tiers. De plus, il est possible de donner différents niveaux d’accès allant de la lecture simple à la gestion totale. Par ailleurs, il est également possible de révoquer ces autorisations à tout moment s’il l’on ne limite pas la durée de validité lors de la création. En résumé, Pryv est une plateforme de gestion du cycle de vie des données personnelles, directement prête à l’emploi, et qui a été conçue pour permettre aux développeurs de créer et de s’adapter rapidement aux produits et services conformément au RGPD. (Pryv SA, s.d.)
Structure de l’API
Pryv fonctionne comme une api REST (Representational state transfer) et communique donc au moyen de diverses méthodes HTTP. Celle-ci possède plusieurs URL (Uniform Resource Locator) qui permettent d’interagir avec la solution. Tout d’abord, le point de terminaison « reg », celui-ci est dédié à toute la partie de gestion des utilisateurs comme l’enregistrement notamment. C’est également ici que nous allons retrouver les hébergements disponibles. L’adresse « http://reg.pryv.hevs.ch/hostings » nous permet de récupérer les lieux de stockage proposés par Pryv appelé « core » dans ce contexte. Comme le lieu de stockage peut différer d’un utilisateur à un autres, chacun d’entre eux possède leur propre URL dans l’API. Sur l’instance de l’Hes-so, le chemin sera composé de cette manière : https://{nom d’utilisateur}.pryv.hevs.ch Ce faisant, l’instance Pryv redirigera la requête vers le core que l’utilisateur aura choisi lors de son inscription. Chacun détiendra sa base de données indépendamment des autres utilisateurs présents sur le même core. Voici un schéma illustrant cela : Figure 4: Les utilisateurs dans un core (Pryv SA, 2019) Dans le cas de la Hes-so, un seul lieu de stockage est disponible. En revanche, si nous prenons l’instance de démonstration « pryv.me », on y retrouve cinq choix différents.
. Express avec Node.js Node.js est un environnement open source, crée par Rayan Dahl en 2009, qui exécute du code JavaScript côté serveur. Il est actuellement basé sur le moteur JavaScript V8 développé par Google. (Node.js, s.d.). Comme il est orienté événement et s’exécute de manière asynchrone, il permet de développer des applications très performantes même en cas de grand accès à la base de données par exemple. Il offre également accès à NPM (Node Package Manager), le gestionnaire de paquet officiel de Node.js. Il s’agit d’un outil permettant d’accéder à des milliers de librairies open source qui le rend très modulaire et permet ainsi de s’adapter à chaque projet. Figure 10: Node.js et Express (Projects Plaza, 2018) Le framework Express, disponible sur NPM, est un outil très puissant sur Node.js. En effet, il nous permet d’être plus haut niveau en venant rajouter une couche supplémentaire permettant de gérer plus facilement les routes notamment. De plus, il offre la possibilité d’utiliser divers outils pour les templates comme Pug ou Handlebars par exemple. En conclusion, il s’agit d’une infrastructure web minimaliste et flexible qui apporte un ensemble de fonctionnalités sans masquer la force et la robustesse de Node.js. (Express.js, s.d.) Nos connaissances personnelles sont plutôt solides car nous avons eu l’occasion de l’utiliser à plusieurs reprises au cours de notre cursus. En outre, la communauté est grandissante et nous pouvons y retrouver beaucoup d’aides sur les forums.
Rencontre avec Pryv
Nous fixons la rencontre directement le vendredi suivant le sprint planning. Accompagné de Jean-Paul Calbimonte Pérez, nous nous rendons à Morges et nous présentons nos mockups ainsi que le travail réalisé jusqu’à présent à Ilia Kebets, chef de projet et son équipe. Plusieurs points sont soulignés, comme le processus de génération de token prévue au départ qui fait l’objet d’une grande discussion. En effet, notre idée de départ est incertaine et risque de poser quelques problèmes en cas de double autorisation. Plus spécifiquement, notre processus génère en réalité des sous-tokens à partir de celui reçu lors de l’authentification (voir 7.1.2) et ce token n’est pas prévu pour ça. Pour cette raison, il nous est conseillé d’utiliser le processus du « poll » (voir 7.2.3) beaucoup plus adapté à nos besoins. De plus, nous apprenons que certaines fonctionnalités comme la suppression d’utilisateurs ou la gestion de token admin ne sont possibles qu’avec un accès direct en ligne de commande. C’est pourquoi ces fonctionnalités ne seront pas implémentées. Nous avons également l’information qu’il n’est pas possible d’avoir un historique quant à l’utilisation d’un token. Ces quelques erreurs sur la compréhension du fonctionnement de Pryv, ainsi que tous les conseils reçus de la part de l’équipe, sont encourageants pour la suite de notre développement. Lors de cette séance du 18 juin, avec Michael Ignaz Schumacher et Jean-Paul Calbimonte Perez, nous présentons le travail réalisé. Toutes les user stories sont acceptées. Nous relevons le fait que le projet avance plus vite que prévu. C’est pourquoi l’idée de faire une application mobile plus complète que celle prévue au départ est émise. Pour notre prochain rendez-vous, nous allons préparer les mockups de la version mobile.
Conclusion
L’interaction avec la plateforme Pryv se faisait jusqu’à présent avec des requêtes HTTP et cela rendait son utilisation difficile, voire impossible. En effet, les personnes en charge des projets de recherche au sein de la DAunit ne sont pas forcément liées au domaine de l’informatique et n’ont pas les connaissances requises pour faire ce type d’interaction. Ce qui est une réelle perte au vu des possibilités qu’offre ce service. Ce projet nous a permis de mieux comprendre le fonctionnement de Pryv pour analyser ensuite les possibilités et les besoins requis pour cette interface de gestion. Nous avons finalement réussi à implémenter avec succès un prototype stable et fonctionnel malgré les quelques améliorations possibles d’un point de vue ergonomique notamment. Le stockage des données avec cette nouvelle technologie s’est révélé être très intéressant en dépit des difficultés rencontrées au cours de cette tâche. Mais encore, le soutien des développeurs de l’entreprise Suisse a été très utile en complément de la documentation très détaillée disponible en ligne. Du côté de l’application mobile, nous avons pu développer une application certes limitée mais tout à fait fonctionnelle permettant d’avoir une base pour un futur projet plus complet. À noter que les problèmes de mise à jour de certificat ont tout de même été un frein pour l’avancée du projet. Ce projet a été très bénéfique d’un point de vue pratique. Car nous avons eu l’occasion de confronter et mettre en pratique nos connaissances acquises tout au long de cette formation.
|
Table des matières
LISTE DES ILLUSTRATIONS
LISTE DES TABLEAUX
LISTE DES ABRÉVIATIONS
TABLE DES MATIÈRES
INTRODUCTION
1.PROBLÉMATIQUE
1.1. SOLUTION
2.DÉROULEMENT DU PROJET
2.1. LES ÉTAPES
2.2. GESTION DE PROJET
2.3. PLANIFICATION
3.LA SOLUTION PRYV
3.1. STRUCTURE DE L’API
3.2. STRUCTURE DES DONNÉES
3.3. LES AUTORISATIONS
4.BESOINS DE LA DAUNIT
4.1. ADMINISTRATEUR
4.2. UTILISATEURS PRYV
4.3. LE PRODUCT BACKLOG
4.4. MOCKUPS
5.ANALYSE D’ARCHITECTURE ET DE TECHNOLOGIE
5.1. ARCHITECTURE
5.2. FRAMEWORK DE DÉVELOPPEMENT
5.3. BASE DE DONNÉES
5.4. CONCLUSION
6.MISE EN PLACE DE L’ENVIRONNEMENT DE DÉVELOPPEMENT
6.1. ENVIRONNEMENT DE DÉVELOPPEMENT INTÉGRÉ
6.2. TEST
6.3. GESTION DE VERSIONS
6.4. DOCKER
7.SPRINT 1
7.1. L’ENREGISTREMENT SUR PRYV
7.2. GESTION DES TOKENS
7.3. PROTECTION DE LA ZONE ADMINISTRATEUR
7.4. CRÉATION D’UN PROJET
7.5. RENCONTRE AVEC PRYV
7.6. SPRINT REVIEW
8.SPRINT 2
8.1. LIEN ENTRE PATIENTS ET PROJETS
8.2. EXPORT
8.3. OPTIMISATION DU POLL TOKEN
8.4. SPRINT REVIEW
9.ANALYSE DE L’APPLICATION MOBILE
9.1. FONCTIONNALITÉS
9.2. LIMITATIONS
9.3. CHOIX TECHNOLOGIQUE
10.SPRINT 3
10.1. GESTIONS DES COMPTES UTILISATEURS
10.2. FILTRAGE DES ACCÈS
10.3. SPRINT REVIEW
11.DÉVELOPPEMENT MOBILE
11.1. API EXTERNE SUR PRYV ADMIN
11.2. MISE EN PLACE DU PROJET
11.3. LISTE
11.4. AJOUT DE DONNÉES
12.BILAN
12.1. AMÉLIORATIONS POSSIBLES
CONCLUSION
RÉFÉRENCES
ANNEXE I : PRODUCT BACKLOG
ANNEXE II : MOCKUPS DE L’INTERFACE
ANNEXE III : DOCKER-COMPOSE.YML
ANNEXE IV : EXEMPLE D’EXPORT DE DONNÉES
ANNEXE V : MOCKUPS DE L’APPLICATION MOBILE
ANNEXE VI : GUIDE D’UTILISATION
DÉCLARATION DE L’AUTEUR
Télécharger le rapport complet