Skip to content
@harmonica-project

Harmonica

This organization hosts all the repositories related to the Harmonica project, a framework for the design and the implementation of blockchain applications.

A semi-automated framework for the design and implementation of Blockchain applications


What is Harmonica?

Presentation

Harmonica (BlockcHain fRaMewOrk for the desigN and Implementation of deCentralized Application) is a semi-automatic framework dedicated to helping practitioners in the design and implementation of Blockchain applications. The framework is composed of two different tools: (1) BLADE (BLockchain Automated Decision Engine), a decision-making tool for the selection of the most suitable blockchain and software patterns in a given case, and (2) BANCO, a configurator capable of assembling parts of the blockchain application to design using core assets (ie. templates), an approach from the Software Product Line (SPL) research field (to come). A knowledge base, formalized as an ontology, has also been designed to support the two different tools. The Figure 1 shows a graphical organization of the project:


Figure 1: Framework organization. Orange artifacts have been implemented in their first version, and red artifacts are in design or development.

Other tools have also been created to support the construction of the knowledge base and artifacts: Ardent, a platform to extract software knowledge during systematic literature studies and identify patterns and connections between software components, and a benchmarking tool for Ethereum smart-contracts.

If you want to learn more on those, feel free to read the project publications below, or have a look at project repositories!

Publications

  • (EN) Six, N., Correa-Restrepo, C., Herbaut, N., Salinesi, C., "An ontology for software patterns: application to blockchain-based software development." Accepted for publication at EDOC'22 Forum. PDF
  • (EN) Six, N., Herbaut, N., Lopez-Herrejon, R. E., & Salinesi, C. (2022, September). Using software product lines to create blockchain products: application to supply chain traceability. In Proceedings of the 26th ACM International Systems and Software Product Line Conference-Volume A (pp. 97-107). PDF
  • (EN) Six, N., Herbaut, N., & Salinesi, C. (2022). Blockchain software patterns for the design of decentralized applications: A systematic literature review. Blockchain: Research and Applications, 100061. PDF
  • (EN) Six, N., Herbaut, N., & Salinesi, C. (2021). Harmonica: A Framework for Semi‐automated Design and Implementation of Blockchain Applications. INSIGHT, 24(4), 25-27. PDF
  • (FR) Six, N., Herbaut, N., & Salinesi, C. (2021). BLADE: Un outil d’aide à la décision automatique pour guider le choix de technologie Blockchain. Revue ouverte d’ingénierie des systèmes d’information, 2(1). PDF
  • (EN) Six, N. (2021). Decision process for blockchain architectures based on requirements. CAiSE Doctoral Consortium. PDF
  • (EN) Six, N., Ribalta, C. N., Herbaut, N., & Salinesi, C. (2020, December). A blockchain-based pattern for confidential and pseudo-anonymous contract enforcement. In 2020 IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom) (pp. 1965-1970). IEEE. PDF
  • (FR) Six, N., Herbaut, N., & Salinesi, C. (2020, June). Quelle Blockchain choisir? Un outil d'aide à la décision pour guider le choix de technologie Blockchain. In INFORSID 2020 (pp. 135-150). PDF

Repositories

This organization holds many repositories. The following artifacts constitutes the framework core:

Along these contributions, tools have been designed to facilitate the creation of core parts of the framework:

Contributors

This project is developed in the context of my Ph.D. thesis at Université Paris 1 Panthéon-Sorbonne. However, great contributions were also made by others! The following list references all the contributors for this project:

  • Nicolas Six - Ph.D. student *
  • Claudia Negri Ribalta - Ph.D. student *
  • Camilo Correa-Restrepo - Ph.D. student *
  • Nicolas Herbaut - Associate Professor *
  • Camille Salinesi - Full Professor *
  • Roberto Erick Lopez-Herrejon - Full Professor '

* : Université Paris 1 Panthéon-Sorbonne ' : École de Technologie Supérieure (ÉTS)

How to contribute?

This project gladly accepts new contributions! Feel free to make pull requests or open issues if you want to contribute. You can also contact me if you have some ideas that could fit in this project, maybe we might sort out an academic collaboration on those!

Contact

Email: nicolas.six@univ-paris1.fr
Twitter: @Nicothesixth
Github: nicoSix
LinkedIn: https://www.linkedin.com/in/nicolas-six/

Pinned

  1. BLADE BLADE Public

    BLADE project - BLockchain Automated DEcision process

    JavaScript 4 1

  2. blockchain-patterns-collection blockchain-patterns-collection Public

    This project aims to build an ontology of patterns and a tool to query them using SPARQL.

    JavaScript 3 3

  3. BANCO BANCO Public

    BANCO project - Blockchain ApplicatioN Configurator

    Solidity 1

  4. blockchain-patterns-ontology blockchain-patterns-ontology Public

    This repository contains a blockchain-based software pattern ontology that regroups 160 patterns from the literature. It also contains the source code of a tool capable of exploring this ontology a…

    JavaScript 3

Repositories

Showing 9 of 9 repositories
  • BLADE Public

    BLADE project - BLockchain Automated DEcision process

    JavaScript 4 GPL-3.0 1 0 8 Updated Mar 8, 2023
  • blockchain-patterns-ontology Public

    This repository contains a blockchain-based software pattern ontology that regroups 160 patterns from the literature. It also contains the source code of a tool capable of exploring this ontology and propose recommendation to users.

    JavaScript 3 GPL-3.0 0 2 0 Updated Feb 28, 2023
  • blockchain-patterns-collection Public

    This project aims to build an ontology of patterns and a tool to query them using SPARQL.

    JavaScript 3 GPL-3.0 3 0 0 Updated Feb 28, 2023
  • BANCO Public

    BANCO project - Blockchain ApplicatioN Configurator

    Solidity 1 GPL-3.0 0 4 0 Updated Feb 21, 2023
  • sc-archi-gen Public

    Solidity microservices architecture benchmarking

    JavaScript 1 1 0 9 Updated Dec 11, 2022
  • .github Public
    0 0 0 0 Updated Oct 10, 2022
  • Ardent Public

    Ardent is a tool created to extract (blockchain) software architecture knowledge from studies when performing a systematic literature review and infer knowledge structures such as patterns.

    JavaScript 2 0 21 (1 issue needs help) 0 Updated Mar 27, 2022
  • spl-poc Public
    Smarty 0 0 0 0 Updated Feb 24, 2022
  • JavaScript 0 0 0 0 Updated Sep 9, 2020

Top languages

Loading…

Most used topics

Loading…