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)  开发
                    开发过程中,智能合约与其他业务代码隔离,彼此之间可以使用不同的编程语言.可以将智能合约开源,帮
   98   99   100   101   102   103   104   105   106   107   108