Thèse soutenue

Un framework pour la conception et l'implémentation semi-automatique d'applications blockchain

FR  |  
EN
Auteur / Autrice : Nicolas Six
Direction : Camille Salinesi
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 16/05/2023
Etablissement(s) : Paris 1
Ecole(s) doctorale(s) : École doctorale de Management Panthéon-Sorbonne (Paris)
Partenaire(s) de recherche : Laboratoire : Université Paris 1 Panthéon-Sorbonne. Centre de recherche en informatique (1986-....)
Jury : Président / Présidente : Saïd Assar
Examinateurs / Examinatrices : Rébecca Deneckere, Nicolas Herbaut
Rapporteurs / Rapporteuses : Marinos Themistocleous, Raimundas Matulevičius

Mots clés

FR  |  
EN

Résumé

FR  |  
EN

Contexte - La blockchain se distingue des technologies conventionnelles par ses caractéristiques uniques, telles que la décentralisation, l’immuabilité ou la résilience. Toutefois, malgré l’intérêt croissant que suscite la technologie blockchain dans les milieux universitaires et industriels, l’adoption à grande échelle de la blockchain se heurte encore à des obstacles majeurs. Problème - Les technologies blockchain s’accompagnent de plusieurs inconvénients, tels qu’un faible débit de transactions à la seconde, des problèmes de confidentialité des données et une rigidité des applications due à l’immutabilité des smart-contracts (contrats intelligents) une fois déployés. Si ces inconvénients ne sont pas considérés, les applications blockchain peuvent ne pas correspondre aux exigences initiales, entraîner des coûts d’exploitation et de maintenance élevés, ainsi que des problèmes de sécurité et de confidentialité. Ces problèmes entravent l’intégration de la technologie blockchain dans les architectures et systèmes existants ou nouveaux. Résultats - Cette thèse propose un cadre semi-automatisé de bout en bout nommé Harmonica pour la conception et la mise en œuvre d’applications blockchain. Cette thèse présente trois contributions originales. Premièrement, une base de connaissances pour soutenir le processus de recommandation. Pour constituer le cœur de la base de connaissances, une revue systématique de la littérature a été réalisée pour identifier, extraire, puis normaliser les patterns (patrons) logiciels existants basés sur la blockchain. La base de connaissances est stockée sous la forme d’une ontologie qui contient les attributs et les relations des patterns de logiciels basés sur les blockchains et des blockchains identifiées. Deuxièmement, un processus de décision automatisé pour recommander une technologie blockchain et des patterns basés sur la blockchain dans un contexte donné. Compte tenu d’un ensemble d’exigences, le processus de décision est capable de produire un classement d’un ensemble de technologies blockchain et des patterns basés sur la blockchain afin d’aider l’utilisateur à concevoir son application. Troisièmement, un outil capable de réutiliser les recommandations pour générer une application blockchain fonctionnelle et complète. Ces parties sont toutes deux liées à la mise en œuvre et au déploiement de l’application blockchain : un ensemble de contrats intelligents est généré et complété par des patterns logiciels basés sur la blockchain, et des scripts de déploiement sont proposés pour soutenir le déploiement des contrats intelligents sur la blockchain cible. Méthode - La construction de ce framework et de ses artefacts a été rendue possible en suivant la méthode Design Science Research (DSR) pour les systèmes d’information de Wieringa et al. Selon cette approche, le framework est constitué d’une base de connaissances et de deux artefacts de code. Chaque amélioration de la base de connaissances permet d’améliorer les artefacts de code, et vice-versa. Conclusion - La combinaison des artefacts produits forme une boîte à outils qui facilite le processus de création d’applications basées sur la blockchain, de leur conception à leur mise en œuvre. Les outils proposés peuvent être utilisés indépendamment les uns des autres pour soutenir une activité spécifique du cycle de développement logiciel basés sur la blockchain, ou ensemble car ils profitent chacun des résultats de l’autre. Chaque partie du framework a été validée indépendamment à l’aide d’études de cas et de sondages auprès des utilisateurs afin de s’assurer qu’elles soutiennent correctement les différentes étapes du développement logiciel, de la conception à la mise en œuvre.