Compétences méthodologiques

Mots-clés : : Intégration, DLM, architecture, Web Services, automatisation, processus, …

M8: Identifier, choisir et adapter les solutions appropriées en les justifiant d’un point de vue économique, méthodologique, technologique, sociétal, environnemental, éthique, légal

Niveau Hautement spécialisé: En fonction des projets déterminés autour de la « Intégration de services dans un éco-système », savoir identifier, choisir (y‐c défendre) et adapter les solutions les plus appropriées pour les défis rencontrés

Hackathon: Pour le "Dif Hackacton" nous avons choisi de réaliser une application de chat en utilisant les technologies suivantes: Web 5, Next et React. Next.js et React Dans notre application, nous avons opté pour Next.js en raison de sa gestion avancée des routes et du rendu côté serveur, des aspects cruciaux pour une application de chat. La performance et la réactivité sont essentielles, surtout dans un contexte décentralisé où les interactions peuvent être complexes. De plus, Next.js offre une optimisation automatique et une scalabilité facile, assurant ainsi une expérience utilisateur fluide et efficace, même avec la gestion des données distribuée et variable typique des systèmes décentralisés. Quant à React, nous l'avons sélectionné pour sa capacité à construire des interfaces utilisateur avec des composants réutilisables et une gestion d'état efficace. Dans notre application de chat, où des éléments d'interface tels que les messages et les listes de contacts sont récurrents, React facilite la maintenance et favorise l'évolutivité. Sa flexibilité et son intégration aisée avec d'autres bibliothèques, comme Web5.js, sont également cruciales. Cela nous permet d'intégrer des fonctionnalités d'identité décentralisée, offrant ainsi une expérience utilisateur sécurisée et personnalisée.

Web 5 Le choix de Web 5 est étroitement lié à l'idée de l'identité décentralisée. Web5 représente une initiative visant à développer la prochaine génération du web décentralisé. L'objectif principal est de redonner aux individus la propriété et le contrôle de leur identité et de leurs données. Les objectifs de cette initiative sont les suivants:

  • Retourner les données aux utilisateurs : Web5 vise à créer des applications décentralisées permettant aux utilisateurs de reprendre le contrôle de leurs données personnelles.
  • Open Source : Les projets sous Web5 sont open source, favorisant une économie bénéfique pour tous - individus, entreprises, institutions et gouvernements. La philosophie open source constitue un pilier central de Web5.
  • Décentralisation et permissionless : Web5 s'oriente vers un paradigme décentralisé et sans permission, marquant une évolution significative du web.

Protocol : Qu’est-ce que les Protocoles ? Les protocoles définissent un schéma de données et le contrat par lequel deux Nœuds Web Décentralisés (DWNs) acceptent de communiquer et de partager des données. Ils définissent à la fois le schéma de données et les autorisations de données relatives à une application ou à un cas d'utilisation spécifique. Les protocoles sont écrits en format JSON, offrant une flexibilité pour détailler quels objets sont stockés dans l'application, ainsi que les autorisations associées à ces objets.

Chaque document de protocole contient quelques clés de base :

  • Types : Définit tous les éléments utilisés dans votre protocole.
  • Structure : Décrit les règles de relation et d'interaction entre différents types.
  • Actions : Spécifie un ensemble d’autorisations définissant qui est autorisé à effectuer des actions spécifiques, telles que lire ou écrire sur un type donné.
  • Mise en place:

  • Définition d'un protocole : Nous commençons par définir les types, la structure et les actions de notre protocole, en tenant compte de notre schéma de données et des autorisations.

protocol

  • Installation d'un Protocole : Pour utiliser, intégrer un protocole dans l'application, nous devons l'installer sur un DWN. Ceci s’effectue via un code spécifique qui configure le protocole sur le DWN. Cette opération est réalisée à l’aide du dwn-sdk-js.
  • Utilisation pratique : Une fois le protocole installé, nous sommes en mesure de communiquer en utilisant le schéma et les autorisations qu'il définit. Par exemple, dans notre chat, pour poster, publier un message ou répondre à un message, nous utilisons le protocole défini pour interagir avec les DWNs des autres utilisateurs.

dwn

DID et DIDcom Dans notre projet, pour identifier les utilisateurs, nous utilisons les DIDs. Il peut y avoir une confusion entre les DIDs etDIDcoms. La différence entre DID (Decentralized Identifier) et DIDComm (Decentralized Identifier Communication) réside dans leur objectif et leur fonctionnement au sein de l'écosystème de l'identité décentralisée. Le DID est un identifiant pour une entité dans le système d'identité décentralisée, DIDComm est un protocole qui utilise ces identifiants pour faciliter une communication sécurisée et privée entre ces entités.

DID :

  • Définition : Un DID est un type d'identifiant unique qui permet une vérification décentralisée. Il fait partie des standards émergents pour les identités numériques décentralisées, comme défini par le W3C (World Wide Web Consortium).
  • Objectif : Le but principal d'un DID est de permettre à une entité (personne, organisation, objet, etc.) de prouver son identité de manière autonome, sans dépendre d'une autorité centrale.
  • Fonctionnement : Un DID est généralement lié à un DDO (DID Document), qui contient des informations publiques et des clés cryptographiques permettant de vérifier l'identité associée au DID. Les DIDs sont stockés sur des registres distribués (comme la blockchain), garantissant ainsi leur intégrité et leur résilience.

Exemple d'un DID dans notre application :

did

DIDComm:

  • Définition : DIDComm est un protocole de communication qui utilise les DIDs pour établir des connexions sécurisées et privées entre les parties.
  • Objectif : L'objectif de DIDComm est de permettre des échanges de données sécurisés et cryptés entre les entités qui ont établi des DIDs. Cela inclut l'envoi de messages, la réalisation de transactions, et l'échange d'informations confidentielles.
  • Fonctionnement : DIDComm utilise les clés et les informations de sécurité fournies dans les DDOs pour établir des canaux de communication cryptés. Cela permet aux parties de communiquer directement d'une manière sécurisée et vérifiable, sans nécessiter de tiers de confiance.

Nous n'avons pas utilisé les DIDComs dans notre application.

Le choix de la technologie était-il le bon ? Après avoir travaillé sur l'application pendant quelques semaines, je me trouve dans une position unique pour évaluer et critiquer ces technologies. Mon expérience dans le développement de cette application m'a permis de comprendre en profondeur les avantages et les défis associés à leur utilisation.

Avantages de Web 5 et DIDs dans un chat décentralisé

  • Autonomie et contrôle des utilisateurs: L’utilisation de DIDs dans mon application a renforcé l'autonomie des utilisateurs en leur offrant un contrôle total sur leurs identités numériques. Cela signifie qu'ils ne dépendent plus de fournisseurs de services centralisés pour gérer leurs identités, marquant ainsi un grand pas vers la décentralisation et la confidentialité.
  • Sécurité: Web 5, avec son approche décentralisée, offre une sécurité renforcée contre les attaques et les pannes centralisées. Dans mon application de chat, cela se traduit par une réduction significative des risques de fuites de données et d'attaques de sécurité.
  • Interopérabilité: L'adoption de standards ouverts tels que les DIDs favorise l'interopérabilité entre différentes plateformes et services. Dans mon application, cela permet aux utilisateurs de communiquer de manière transparente avec d'autres services qui supportent également les DIDs.

Défis et limitations

  • Complexité technique: L'intégration de Web 5 et DIDs dans mon application n'a pas été sans défis. La complexité technique liée à la mise en œuvre de ces technologies peut constituer un obstacle, particulièrement pour les équipes de développement moins expérimentées.
  • Dépendance aux infrastructures décentralisées: Bien que la décentralisation offre de nombreux avantages, elle dépend fortement de l'infrastructure sous-jacente. Dans le cas de mon application, toute défaillance dans le réseau blockchain ou les systèmes de stockage décentralisés peut impacter la performance et la disponibilité.
  • Gestion des Nodes dans Web 5: L'un des aspects les plus critiques de l'utilisation de Web 5 dans mon application de chat est la gestion des nodes (nœuds). Ces nodes sont essentiels pour maintenir le réseau décentralisé, mais leur gestion peut être complexe. En tant que développeur, je dois m'assurer que les nodes sont constamment disponibles, sécurisés et performants. Cela implique un suivi et une maintenance réguliers, ce qui peut être une tâche ardue, surtout dans un environnement décentralisé où le contrôle direct est limité. De plus, la dépendance à l'égard des nodes peut poser des problèmes de scalabilité et de fiabilité, car la performance de l'application peut varier en fonction de l'état et de la distribution des nodes dans le réseau. En raison du manque d'accès aux nœuds, le travail sur l'application a été considérablement entravé pendant deux semaines. La solution pourrait consister à créer un nœud, mais il s'agit d'un défi technologique majeur qui, dans une certaine mesure, ne coïncide pas avec l'idée de décentralisation.
  • Problème de gestion des données: Un autre défi majeur rencontré dans le développement de mon application de chat décentralisé concerne la gestion des données. Dans un système décentralisé comme Web 5, les données ne sont pas stockées dans un emplacement central, ce qui soulève des questions sur leur localisation exacte et leur gestion. Cette incertitude peut être problématique, surtout en ce qui concerne la conformité aux réglementations sur la protection des données et la vie privée, comme le RGPD en Europe. De plus, cela peut rendre plus difficile la mise en œuvre de fonctionnalités telles que la recherche rapide de messages ou la synchronisation des données entre différents appareils. En tant que développeur, je dois trouver un équilibre entre la décentralisation des données pour la sécurité et la confidentialité, et la nécessité de maintenir une expérience utilisateur fluide et cohérente

Conclusion

En conclusion, l'utilisation de Web 5 et de DIDs dans mon application de chat décentralisée offre des avantages significatifs en termes d'autonomie des utilisateurs, de sécurité et d'interopérabilité. Cependant, ces avantages s'accompagnent de défis non négligeables, notamment en termes de complexité technique et d'adoption par les utilisateurs. Malgré ces défis, je reste convaincue que l'avenir des communications numériques réside dans la décentralisation et que les technologies comme Web 5 et les DIDs joueront un rôle important dans la réalisation de cet avenir.

Le dernier élément que je voudrais mentionner est l'automatisation du processus de développement des applications. Comme je l'ai souligné dans l’une des compétences précédentes, c'est la première fois que j'ai l'occasion d'automatiser le déploiement à l'aide du service Azure. J'ai créé deux pipelines, #joanna_template_v2 et #master. Maintenant, lorsque je fais un 'push' à l'une de ces branches, la version en ligne est automatiquement mise à jour avec les changements.

deployment

La mise en place de ce système s'est avérée être un véritable défi et n'a pas été sans problèmes, mais une fois en place, il fonctionne parfaitement.

L'architecture Au début du projet Kinaps, nous avons eu l'idée de créer une application à partir de zéro. Cela signifiait qu'il fallait choisir la bonne architecture. Pour nous aider dans ce choix, j'ai préparé une présentation : LI Joanna: Architecture software . Le choix d'une bonne architecture d'application est crucial pour répondre efficacement à divers critères tels que l'économie, la méthodologie et la technologie. Une architecture bien conçue permet une meilleure gestion des ressources, optimise les performances et assure la scalabilité de l'application. Elle favorise aussi l'adoption de pratiques de développement durable et éthiques, tout en respectant les réglementations légales. Une architecture adaptée contribue à la satisfaction des utilisateurs, à la réduction des coûts opérationnels et à l'amélioration de l'impact environnemental et sociétal de l'application.

Previous Post Next Post