Page 103 - 《软件学报》2021年第11期
P. 103
张富利 等:一种智能合约微服务化框架 3429
格接口.
Table 2 Comparison of communication methods
表 2 通信方式对比
远程过程调用 表述性状态传递
调用者只需要函数运算的结果,却不需要实现
场景 适合对外部提供资源接口时使用
函数的具体细节,主要用于函数方法的调用
优/缺点 性能表现出色,但耦合度较强 耦合度低,在理解、测试调用方面更加简单
2.2 智能合约微服务开发运维流程
本节希望为智能合约微服务化提供一套从需求、开发、构建、测试、部署到监控的流程指导.如图 4 所示,
本文设计了智能合约微服务化通用开发运维流程.图 4 在已经搭建好的区块链网络中,使用现有 DevOps 自动化
工具无侵入的支撑智能合约完整生命周期.本文目前已完成的工作在图 4 中使用六边形边框,椭圆边框部分将
在未来工作中进行补充.
Fig.4 Process of microservice-enabled smart contracts' development and operation
图 4 智能合约微服务化开发运维流程
(1) 需求
需求收集与分析是智能合约微服务开发流程的开端.智能合约微服务化的目标是解耦,让系统更容易拓
展、更富有弹性.虽然智能合约可以省去许多中间业务场景,简化操作流程、节约成本,但受区块链技术本身的
特性所限,并不支持全部业务上链.在考虑区块链性能的同时,可以结合领域驱动设计(domain-driven design,简
称 DDD) [33] ,技术人员与业务人员共同协作完成智能合约与微服务划分.
(2) 开发
开发过程中,智能合约与其他业务代码隔离,彼此之间可以使用不同的编程语言.可以将智能合约开源,帮