A key challenge in engineering distributed systems consists in the integration into their development of a decentralised infrastructure allowing the system participants to trust each other. In this article, we face such a challenge by proposing a model-driven methodology and a related framework to support the engineering of trustable and auditable systems. The approach is based on choreography diagrams specified in the Business Process Model and Notation standard, describing the interactions that should occur among the distributed components of systems. We support the whole lifecycle of choreographies, from their modelling to their distributed execution and auditing. The framework, based on blockchain technology, is named ChorChain. More specifically, ChorChain takes as input a BPMN choreography model and automatically translates it into a Solidity smart contract. The smart contract permits us to enforce the interactions among the cooperating components as prescribed by the choreography model. By leveraging on the auditability of blockchain, ChorChain also supports the activity of auditors continuously. In such a way, ChorChain enables auditors to get some degree of assurance on what happens simultaneously with, or shortly after, information disclosure. We assess the feasibility and effectiveness of the proposed methodology and framework through experiments conducted on the Rinkeby Ethereum Testnet.
The adoption of model-driven engineering methodologies contributes to reduce the complexity of developing distributed systems. A key point to master such complexity is the use of modelling languages, such as the BPMN standard. This permits to specify choreography diagrams describing, from a global point of view, the interactions that should occur among distributed components in order to reach given goals. Even though BPMN choreographies are promising to increase business possibilities, their concrete adoption has been challenging and faced complex hurdles. On the one hand, there is a lack of concrete support to the different phases of the choreography life-cycle, especially in relation to the choreography execution. Another obstacle consists in the lack of distributed infrastructures allowing the participants involved in the cooperation to trust each other, and in particular to get enough guarantees that all of them will behave as prescribed by the choreography model. In this paper, we face such challenges by proposing a methodology and a related model-driven framework, named ChorChain, that are based on the blockchain technology. We provide support to the whole life-cycle of choreographies, from their modelling to their distributed execution. More specifically, ChorChain takes as input a BPMN choreography model and automatically translates it in a Solidity smart contract. Such a contract will permit to enforce the interactions among the cooperating participants, so to satisfy the prescriptions reported in the starting model. The methodology and the framework have been evaluated through experiments conducted on the Rinkeby Ethereum Testnet.
The recent growth of blockchain has opened the use of technology for supporting the creation of newkinds of trustable systems. Model-driven engineering methodologies have been conceived to facilitate the automatic generation and deployment of software applications starting from the definition and refinement of abstract specification. BPMN choreography diagrams permit the representation of inter-organisational systems from a high-level perspective, just focusing on message exchange. However, the usage of such models in a blockchain-based setting has been limited to scenarios in which parties are involved in single interactions. This aspect becomes significantly relevant when considering complex applications, particularly those in the realm of the Internet of Things. In these cases, the multiplicity of parties and their actions is crucial and requires novel solutions. In this work, we propose a novel approach for modelling, refining, deploying, and executing a choreography on the blockchain, taking into account those scenarios in which the model includes multiple instances. In particular, the considered models are translated into smart contracts able to correctly manage multiplicity. To demonstrate the approach’s feasibility, we designed and presented a smart thermostat application, which is executed on the Polygon blockchain.