《工程科学学报》录用稿,htps://doi.org/10.13374/i,issn2095-9389.2021.11.25.009©北京科技大学2022 一种基于区块链智能合约的软件服务交易方法 王晟典,陈娥),朱岩),林映春),刘国伟2) (1.北京科技大学,计算机与通信工程学院北京100083) (2.北京市经济和信息化局,北京100744) 摘要:随着软件服务交易模式由提前付费向“先服务后结算”转变,软件即服务(SaaS)所依赖的订阅 模式面临着软件服务金融化与法律化的挑战一一既无法按实际使用量进行金融支付,也难以通过法律形式规 范服务提供方、消费方、交易平台之间权利义务关系。据此,本文将智能法律合约($LC)引入到服务计算平 台中,提出一种服务即合约(SaaSC)架构。在法律化方面,SaaS+SaaSC的组合支持SLC软件订阅合约中设 立服务注册、发现、定制化三种条款,从交互动作、服务状态、状态转移流程等方面规范了各方当事人在服务 注册、发现与消费三阶段的交互行为:在金融化方面,将服务接口声明添加到智能法律合约中,借助智能合 约自动执行和检查条款实现了细化到服务接口调用级别的精准计费模式。进一步以以气预报服务作为案例 实现了基于区块链智能合约的在线软件服务获取、交付及合约化支付,验证了 aSC方案的合理性和有 效性,表明软件服务合约化是一种新的可行技术路线。 关键词:区块链智能合约:SaaS:智能法律合约:微服务:服务注册: 发现 中图分类号:TP319 文献标识码:A A Software Service Transaction Approach Based on-Blockchain Smart Contracts Wang Shengdian',Chen E,Zhu Yan!,Lin Yingchun',Liu Guowei2 (1.School of Computer&Communication Engineering.Universityo of Science and Technology Beijing,Beijing 100083,China) (2.Beijing Municipal Bureau of Econony and Information Technology,Beijing 100744,China) Abstract:With software service transactions changing from pay-before-use to pay-as-you-go,the subscription model of Software as a Service (SaaS)is facing the challenges on legalization and financialization of software service. This means that it neither realize financial payment on a pay-as-you-go basis,nor regulate the rights and obligations among service's providers,consumers and platforms in a legal form.To address these challenges,in this paper Smart Legal Contract(SLC)is integrated into service computing platform by introducing a new architecture,called Service as a Smart Contract(SaaSC).Firstly a contract-type service interface scheme is designed to perform the subscription process of service registration and publication on SaaS.In this scheme,we define six types of interactions,four kinds of microservice's states,and their state transition procedure,and then establish the mapping from general service interface following the OpenAPI Specification to the contract terms in the SLC-style SPESC language.Especially,a new term,called Service Registration Term (SRT),is proposed to attain a regularized interaction approach during service registration,In addition,the legal Negotiation-Acceptance mechanism is utilized for granting the consumer's rights to obtain software service.Secondly,a payment mechanism for contracting consumers'demand is proposed in the process of service discovery and consumption.Exactly,based on service matching approach with three-level cache, other new terms,called Service Discovery Term(SDT)and Service Customization Term(SCT),are designed to specify the requests and responses of service discovery and invocation.A billing model driven on SRT,SDT,and SCT is developed to implement fine-grained charging on the level of service interface calls and evidence preservation of service transactions in blockchain.Therefore,it provides a legal guarantee for the implementation of pay-as-you-go mode.To sum up,from the aspect of service legalization,the SaaS+SaaSC architecture supports establishing three kinds ofterms,including service's registration,discovery and customization terms,in SLC-based software subscription contract,so that a complete transaction procedure can be regulated among three above parties from their interactions, service states and their transition process.From the aspect of service financialization,the declaration of service's
1 一种基于区块链智能合约的软件服务交易方法 王晟典 1),陈娥 1),朱岩 1),林映春 1),刘国伟 2) (1. 北京科技大学, 计算机与通信工程学院 北京 100083) (2. 北京市经济和信息化局, 北京 100744) 摘 要:随着软件服务交易模式由提前付费向“先服务后结算”转变,软件即服务(SaaS)所依赖的订阅 模式面临着软件服务金融化与法律化的挑战——既无法按实际使用量进行金融支付,也难以通过法律形式规 范服务提供方、消费方、交易平台之间权利义务关系。据此,本文将智能法律合约(SLC)引入到服务计算平 台中,提出一种服务即合约(SaaSC)架构。在法律化方面,SaaS+SaaSC 的组合支持 SLC 软件订阅合约中设 立服务注册、发现、定制化三种条款,从交互动作、服务状态、状态转移流程等方面规范了各方当事人在服务 注册、发现与消费三阶段的交互行为;在金融化方面,将服务接口声明添加到智能法律合约中,借助智能合 约自动执行和检查条款实现了细化到服务接口调用级别的精准计费模式。进一步,以天气预报服务作为案例 实现了基于区块链智能合约的在线软件服务获取、交付及合约化支付,验证了 SaaS+SaaSC 方案的合理性和有 效性,表明软件服务合约化是一种新的可行技术路线。 关键词:区块链智能合约;SaaS;智能法律合约;微服务;服务注册;服务发现 中图分类号: TP319 文献标识码:A A Software Service Transaction Approach Based on Blockchain Smart Contracts Wang Shengdian1 , Chen E1 , Zhu Yan1 , Lin Yingchun1 , Liu Guowei2 (1. School of Computer & Communication Engineering, University of Science and Technology Beijing, Beijing 100083, China) (2. Beijing Municipal Bureau of Economy and Information Technology, Beijing 100744, China) Abstract:With software service transactions changing from pay-before-use to pay-as-you-go, the subscription model of Software as a Service (SaaS) is facing the challenges on legalization and financialization of software service. This means that it neither realize financial payment on a pay-as-you-go basis, nor regulate the rights and obligations among service’s providers, consumers and platforms in a legal form. To address these challenges, in this paper Smart Legal Contract (SLC) is integrated into service computing platform by introducing a new architecture, called Service as a Smart Contract (SaaSC). Firstly, a contract-type service interface scheme is designed to perform the subscription process of service registration and publication on SaaS. In this scheme, we define six types of interactions, four kinds of microservice’s states, and their state transition procedure, and then establish the mapping from general service interface following the OpenAPI Specification to the contract terms in the SLC-style SPESC language. Especially, a new term, called Service Registration Term (SRT), is proposed to attain a regularized interaction approach during service registration. In addition, the legal Negotiation-Acceptance mechanism is utilized for granting the consumer’s rights to obtain software service. Secondly, a payment mechanism for contracting consumers’ demand is proposed in the process of service discovery and consumption. Exactly, based on service matching approach with three-level cache, other new terms, called Service Discovery Term (SDT) and Service Customization Term (SCT), are designed to specify the requests and responses of service discovery and invocation. A billing model driven on SRT, SDT, and SCT is developed to implement fine-grained charging on the level of service interface calls and evidence preservation of service transactions in blockchain. Therefore, it provides a legal guarantee for the implementation of pay-as-you-go mode. To sum up, from the aspect of service legalization, the SaaS+SaaSC architecture supports establishing three kinds of terms, including service’s registration, discovery and customization terms, in SLC-based software subscription contract, so that a complete transaction procedure can be regulated among three above parties from their interactions, service states and their transition process. From the aspect of service financialization, the declaration of service’s 《工程科学学报》录用稿,https://doi.org/10.13374/j.issn2095-9389.2021.11.25.009 ©北京科技大学 2022 录用稿件,非最终出版稿
2 interface is appended into the SLC-based contract.By automatically executing smart contracts and checking the terms, the pay-as-you-go mode is implemented through fine-grained charging every time when calling service interface. Moreover,we take the weather forecast service as a case to implement and analyze the acquisition.delivery,and contractual payment of software service on blockchain smart contract.The experimental results demonstrate the feasibility and effectiveness of the proposed SaaS+SaaSC architecture,which should be a practicable approach for contracting of software services. Key words:Blockchain Smart Contract;SaaS:Smart Legal Contract:Microservices;Service Registration; Service Discovery 1.引言 软件即服务(SaS)作为一种云计算服务架构,旨在帮助企业通过互联网交付应用程序,并交由第三方 云供应商进行管理,己成为软件服务领域当前主流交易方法之一山。与软件外包发架构即服务(1aaS)、 平台即服务(PaaS)一样,SaaS本质上是一种将管理软件和实施服务一体化外包的服模式,也是伴随着软 件行业发展兴起的一种新型软件应用模式。它的商业成功很大程度上依赖采角订阅模式制备软件许可证叫。 与传统的软件永久许可不同,订阅模式采用企业或消费者与SaaS提供商签署的十段时间(通常是每年或每月) 的软件订阅合同(也称订阅协议),并在前者缴纳订阅费后向其授予$a$相应的访问权限。此外,订阅模式 采用不同缴费价格获得不同类型服务来满足不同用户的需求。这种方式增枷了消费者服务选择灵活性、降低 购置成本和试错成本、增强客户关系、以及SaaS提供商定价灵话性。 尽管软件订阅模式具有众多优势并代表着未来SaaS的必然选择,但是目前大多数订阅合同仍采用“提前 付费”方式。这种方式会让SaS提供商的现金流呈现出较好的状态,但服务费用与实际的服务数量与质量无 关,因此无法按照实际使用量计费。这与按劳计酬的服务收费原则相违背,难以适应现代服务业自动化执行 与监管的要求。更为合理的订阅模式是按照订阅合同和实际使用量让消费者“先服务后结算”或“先充值后扣费”, 这种付费方式对于消费者来说成本控制和服务定制更加灵活。 然而,实现SaS“先服务后结算”方式远比提前付费方式复杂。这种复杂性体现在两个方面:首先,需 要自动化的金融支付能力,保证依照订阅合同涤款对租期、服务能力(如云虚拟机数目、计算性能、网络带 宽)和服务质量进行自动化支付,避兔人于预:其次,需要强有力的法律化支持,保证服务过程中当事人履 行订阅合同条款中义务的行为得到法律上的认可,服务过程的记录或存证具有法律效力,避免取证困难和因 合同纠纷消耗律师大量人工成本。◇ 针对以上问题,本文提出一种服务即智能合约(Service as a Smart Contract,SaaSC)的新型软件服务架构, 它是SaaS的一种商业化扩展即以智能合约(Smart Contract)代码和平台为基础,通过自动执行的交易合约 形式交付和支付软件服务,为软件订阅模式的实施提供更加有效的技术手段。其中,智能合约是个宽泛的计 算机技术,它既包括部署在区块链(Blockchain)上、在满足预定条件时可自动执行并存证的计算机程序,也 包括支持智能合约可执行程序开发、生成、部署、运行、验证的信息网络系统。交易合约则是法律上的概念, 是指两方或多方当事人为完成某件事而共同遵循的约定,从而建立某种对当事人具有约束力的权利义务关系, 如约定未来某个时间以一定数量金额支付某种软件服务的费用。这种交易合约形式为软件服务的“先服务后 结算”方式提供金融化基础和法律化保障,进而智能合约系统为交易合约的自动执行提供技术保障。 智能法律合约(Smart Legal Contract,.SLC)是一种具有法律约束力的智能合约,是含有合同构成要素、涵 盖合同缔约方依据要约和承诺达成履行约定的计算机程序。SLC为法律合同文本和智能合约代码之间建立 了转化的桥梁,保证了开放网络环境下合同的公平协商与交易合约的法律约束力,因此它已成为设计并开发 具有法律效力智能合约的核心技术。为实现智能合约代码法律化,一种称为SPESC的面向法律语言己被提
2 interface is appended into the SLC-based contract. By automatically executing smart contracts and checking the terms, the pay-as-you-go mode is implemented through fine-grained charging every time when calling service interface. Moreover, we take the weather forecast service as a case to implement and analyze the acquisition, delivery, and contractual payment of software service on blockchain smart contract. The experimental results demonstrate the feasibility and effectiveness of the proposed SaaS+SaaSC architecture, which should be a practicable approach for contracting of software services. Key words: Blockchain Smart Contract; SaaS; Smart Legal Contract; Microservices; Service Registration; Service Discovery 1. 引言 软件即服务(SaaS)作为一种云计算服务架构,旨在帮助企业通过互联网交付应用程序,并交由第三方 云供应商进行管理,已成为软件服务领域当前主流交易方法之一[1]。与软件外包开发、架构即服务(IaaS)、 平台即服务(PaaS)一样,SaaS 本质上是一种将管理软件和实施服务一体化外包的服务模式,也是伴随着软 件行业发展兴起的一种新型软件应用模式。它的商业成功很大程度上依赖于采用订阅模式制备软件许可证[2]。 与传统的软件永久许可不同,订阅模式采用企业或消费者与 SaaS 提供商签署的一段时间(通常是每年或每月) 的软件订阅合同(也称订阅协议),并在前者缴纳订阅费后向其授予 SaaS 相应的访问权限。此外,订阅模式 采用不同缴费价格获得不同类型服务来满足不同用户的需求。这种方式增加了消费者服务选择灵活性、降低 购置成本和试错成本、增强客户关系、以及 SaaS 提供商定价灵活性。 尽管软件订阅模式具有众多优势并代表着未来 SaaS 的必然选择,但是目前大多数订阅合同仍采用“提前 付费”方式。这种方式会让 SaaS 提供商的现金流呈现出较好的状态,但服务费用与实际的服务数量与质量无 关,因此无法按照实际使用量计费。这与按劳计酬的服务收费原则相违背,难以适应现代服务业自动化执行 与监管的要求。更为合理的订阅模式是按照订阅合同和实际使用量让消费者“先服务后结算”或“先充值后扣费”, 这种付费方式对于消费者来说成本控制和服务定制更加灵活。 然而,实现 SaaS“先服务后结算”方式远比提前付费方式复杂。这种复杂性体现在两个方面:首先,需 要自动化的金融支付能力,保证依照订阅合同条款对租期、服务能力(如云虚拟机数目、计算性能、网络带 宽)和服务质量进行自动化支付,避免人工干预;其次,需要强有力的法律化支持,保证服务过程中当事人履 行订阅合同条款中义务的行为得到法律上的认可,服务过程的记录或存证具有法律效力,避免取证困难和因 合同纠纷消耗律师大量人工成本[3]。 针对以上问题,本文提出一种服务即智能合约(Service as a Smart Contract, SaaSC)的新型软件服务架构, 它是 SaaS 的一种商业化扩展,即以智能合约(Smart Contract)代码和平台为基础,通过自动执行的交易合约 形式交付和支付软件服务,为软件订阅模式的实施提供更加有效的技术手段。其中,智能合约是个宽泛的计 算机技术,它既包括部署在区块链(Blockchain)上、在满足预定条件时可自动执行并存证的计算机程序,也 包括支持智能合约可执行程序开发、生成、部署、运行、验证的信息网络系统。交易合约则是法律上的概念, 是指两方或多方当事人为完成某件事而共同遵循的约定,从而建立某种对当事人具有约束力的权利义务关系, 如约定未来某个时间以一定数量金额支付某种软件服务的费用。这种交易合约形式为软件服务的“先服务后 结算”方式提供金融化基础[4]和法律化保障[5],进而智能合约系统为交易合约的自动执行提供技术保障。 智能法律合约(Smart Legal Contract, SLC)是一种具有法律约束力的智能合约,是含有合同构成要素、涵 盖合同缔约方依据要约和承诺达成履行约定的计算机程序[6]。SLC 为法律合同文本和智能合约代码之间建立 了转化的桥梁,保证了开放网络环境下合同的公平协商与交易合约的法律约束力,因此它已成为设计并开发 具有法律效力智能合约的核心技术。为实现智能合约代码法律化,一种称为 SPESC 的面向法律语言已被提 录用稿件,非最终出版稿
3 出,它是一种类自然语言的语言规范),旨在通过类自然语言、规范化的结构与书写、可自动化向可执行智 能合约语言转换的方式来解决不同领域专家沟通、法律效力以及部分逻辑安全问题。进而本文将采用SPE$C 语言作为SLC的设计和开发工具。 为了开展SaaSC服务交易的实例化研究,本文将SLC与当前服务计算领域流行的微服务(Microservice) 框架相结合。微服务是一种开发软件的架构和组织方法,将独立服务通过明确定义的API进行组合,适用 于云原生应用程序(如SaaS)、无服务器计算或轻量级容器部署的应用程序8l。微服务框架(如Spring Cloud、 Kubernetes)则为快速构建微服务提供注册、发布、发现及消费等一体化的支持,如Spring Cloud框架采用 Eureka作为注册中心汇聚服务信息、统一管理和维护服务地址、快速发现与连接服务:采用Spring Boot打包 和部署服务应用,支持RESTful接口传递服务数据。因此,微服务框架可为研究SaaS+SaaSC的“先服务后结 算”软件订阅模式提供软件服务上的平台支撑。 针对目前SaaS架构难以依据现有法律合同规范当事人权利义务关系的问题本文提出的SaaSC系统架 构将面向法律合同的智能法律合约技术引入到服务注册、服务发现、服务消费天阶段中,为软件服务过程的 法律化提供了一种有效解决方案,并为该SaaSC架构设计如下机制:首先设了一种服务注册与发布过程 中的服务接口合约化方案,通过分析服务注册过程的6种交互动作、4种微服务状态及3阶段状态转移流程, 建立了遵循OpenAPI标准的服务通用接口到SLC语言中合约条款描述的映射关系,实现了一种基于智能法律 合约“注册条款”的服务注册交互行为的规范化方法,以法律【要约承诺”方式为消费方合法获取软件服 务权益奠定了基础。其次,提出了一种服务发现与消费过程中消费需求与计费合约化机制,以服务发现中的 三级缓存机制和服务匹配方法为基础,设计了对服务发现请求和响应进行约定的智能法律合约“发现条款” 与“定制化条款”,并在服务消费中借助智能合约自动执发并检查条款,实现细化到服务接口调用级别的精准 计费模式,进而确保服务交易行为存证到区块链系统,/从法律上为“先服务后结算”模式提供了保障。 2.系统框架 本文的目标是探索“由软件到服务、再由服务到合约”的新型软件服务交易,即通过一种SaaS+SaaSC的 软件架构实现“先服务后结算”的软件订阅模式,在技术上推动软件服务交易的法律化和金融化。架构核心 是以服务质量和数量为基础,以按劳分配公平公正的交易原则,建立“先服务后结算”的软件订阅模式,依 法保护软件服务消费者合法权益。 2.1系统架构 根据系统目标,本文设计 已种面向软件服务交易的SaaS+SaaSC架构。如图l所示,该架构在现有SaaS Service's Transaction Service's Provider Blockchain Platform Microservice 1 Contract Engine Unified Interface Smartphone Microservice 2 Gateway Contract Engine Third-party Client Microservice 3 Contract Engine Service's Consumer Service's Registry Contrac 上gIe Contractual Service System 图1SaaS+SaaSC架构示意图 Fig.1 Architecture of SaaS+SaaSC system
3 出,它是一种类自然语言的语言规范[13],旨在通过类自然语言、规范化的结构与书写、可自动化向可执行智 能合约语言转换的方式来解决不同领域专家沟通、法律效力以及部分逻辑安全问题。进而本文将采用 SPESC 语言作为 SLC 的设计和开发工具。 为了开展 SaaSC 服务交易的实例化研究,本文将 SLC 与当前服务计算领域流行的微服务(Microservice) 框架[7]相结合。微服务是一种开发软件的架构和组织方法,将独立服务通过明确定义的 API 进行组合,适用 于云原生应用程序(如 SaaS)、无服务器计算或轻量级容器部署的应用程序[8]。微服务框架(如 Spring Cloud、 Kubernetes)则为快速构建微服务提供注册、发布、发现及消费等一体化的支持,如 Spring Cloud 框架采用 Eureka 作为注册中心汇聚服务信息、统一管理和维护服务地址、快速发现与连接服务;采用 Spring Boot 打包 和部署服务应用,支持 RESTful 接口传递服务数据。因此,微服务框架可为研究 SaaS+SaaSC 的“先服务后结 算”软件订阅模式提供软件服务上的平台支撑。 针对目前 SaaS 架构难以依据现有法律合同规范当事人权利义务关系的问题,本文提出的 SaaSC 系统架 构将面向法律合同的智能法律合约技术引入到服务注册、服务发现、服务消费三阶段中,为软件服务过程的 法律化提供了一种有效解决方案,并为该 SaaSC 架构设计如下机制:首先,设计了一种服务注册与发布过程 中的服务接口合约化方案,通过分析服务注册过程的 6 种交互动作、4 种微服务状态及 3 阶段状态转移流程, 建立了遵循 OpenAPI 标准的服务通用接口到 SLC 语言中合约条款描述的映射关系,实现了一种基于智能法律 合约“注册条款”的服务注册交互行为的规范化方法,以法律上“要约-承诺”方式为消费方合法获取软件服 务权益奠定了基础。其次,提出了一种服务发现与消费过程中消费需求与计费合约化机制,以服务发现中的 三级缓存机制和服务匹配方法为基础,设计了对服务发现请求和响应进行约定的智能法律合约“发现条款” 与“定制化条款”,并在服务消费中借助智能合约自动执行并检查条款,实现细化到服务接口调用级别的精准 计费模式,进而确保服务交易行为存证到区块链系统,从法律上为“先服务后结算”模式提供了保障。 2. 系统框架 本文的目标是探索“由软件到服务、再由服务到合约”的新型软件服务交易,即通过一种 SaaS+SaaSC 的 软件架构实现“先服务后结算”的软件订阅模式,在技术上推动软件服务交易的法律化和金融化。架构核心 是以服务质量和数量为基础,以按劳分配、公平公正的交易原则,建立“先服务后结算”的软件订阅模式,依 法保护软件服务消费者合法权益。 2.1 系统架构 根据系统目标,本文设计了一种面向软件服务交易的 SaaS+SaaSC 架构。如图 1 所示,该架构在现有 SaaS Contractual Service System Blockchain Service's Transaction Platform Service's Consumer Web Application Smartphone Unified Interface Service's Provider Third-party Client Gateway Service's Registry Contract Engine Microservice 1 Contract Engine Microservice 2 Contract Engine Microservice 3 Contract Engine 图 1 SaaS+SaaSC 架构示意图 Fig.1 Architecture of SaaS+SaaSC system 录用稿件,非最终出版稿
4 微服务框架基础上,借助区块链智能法律合约在法律化和自动化交易方面的独特优势,将软件订阅合同映射 为智能法律合约,解决引言中基于智能合约的服务注册与发布及发现与消费中的关键挑战,将智能法律合约 应用于服务计算环境。图1中SaaS+SaaSC架构的四个实体描述如下: 1)服务消费方(Consumer).:指为实现自身需求以有偿方式使用在线软件服务的一方,简称甲方: 2)服务提供方(Provider):指为满足消费方需求,通过平台提供在线软件服务的一方,简称乙方: 3) 服务交易平台(Platform):支持服务提供方和消费方进行合约化服务交易的在线共享区域,简称丙方。 4) 区块链平台(Blockchain):指采用密码手段保障、只可追加、链式结构组织的分布式账本系统o],目的 是实现去中心化服务交易的完整性、不可否认性、可追溯性等安全目标。 在图1所示SaaS+SaaSC架构中,服务提供方与服务消费方通过合约平台签订由智能法律合约编写的“软 件订阅合同”,进而产生服务消费活动。消费活动的发起方载体表现多样,可以通过Wb应用、智能手机终 端、第三方客户端等多种方式访问平台提供的统一网关接口(Gateway)。网关从法册中心Service'sRegistry) 获取服务与地址对应信息,将服务请求路由转发到对应微服务接口。在此过程中合的擎(Contract Engine) 作为区块链交互的执行模块,负责执行已签订“软件订阅合同”中相应条款 将合约代码和中间状态以区块 链交易的格式(见表1)读取或存入区块链。 2.2系统实体关系与流程 在上述系统架构中本文将主要研究基于智能合约的服务注册发现与消费三个阶段。为了清晰地展示这 三个阶段,图2表示了主要实体间的交互关系,并将述 天阶段按流程先后关系分为注册与发布 (Registration and Publication)、发现(Discovery)、推荐e nmendation)、请求(Request)、绑定(Binding)、 消费(Consumption)、结算(Transation)等步骤: SRT 2.A Discovery Transactio 1.Registration SDT and Publication 2.B Recommendation 3.A Request Service's Service's Provider Consumer 3.B Binding SCT 4.A Consumption 4.B Transaction 图2 SaaSC系统主要实体间关系 Fig.2 Relations among essential entities in SaaSC system 1)服务注册与发布 本阶段是指服务将自身模块信息向交易平台宣称、平台再根据约定推广服务的过程。服务提供方使用$LC 范本对服务注册与发布过程进行合同意义上的封装,被称为服务的合约化封装。在此过程中服务提供方提交 接口注册信息的同时将服务接口承诺写入SLC范本,继而采用“服务注册条款ST对服务接口宣称进行约定 与检查(见图2阶段1)。 2)服务发现与绑定 消费方通过平台获取可用服务列表进而使用服务的过程称为服务发现与绑定。首先,平台作为联系服务 提供方与消费方的桥梁,依据已注册SLC范本中“服务发现条款SDT”接受发现请求,并提供对应的服务列 表(见图2阶段2.A)。其次,服务推荐是将多家服务整合,根据评价指标给出评估结果排名,由于服务推荐
4 微服务框架基础上,借助区块链智能法律合约在法律化和自动化交易方面的独特优势,将软件订阅合同映射 为智能法律合约,解决引言中基于智能合约的服务注册与发布及发现与消费中的关键挑战,将智能法律合约 应用于服务计算环境。图 1 中 SaaS+SaaSC 架构的四个实体描述如下: 1) 服务消费方(Consumer):指为实现自身需求以有偿方式使用在线软件服务的一方,简称甲方; 2) 服务提供方(Provider):指为满足消费方需求,通过平台提供在线软件服务的一方,简称乙方; 3) 服务交易平台(Platform):支持服务提供方和消费方进行合约化服务交易的在线共享区域,简称丙方。 4) 区块链平台(Blockchain):指采用密码手段保障、只可追加、链式结构组织的分布式账本系统[10],目的 是实现去中心化服务交易的完整性、不可否认性、可追溯性[11]等安全目标。 在图 1 所示 SaaS+SaaSC 架构中,服务提供方与服务消费方通过合约平台签订由智能法律合约编写的“软 件订阅合同”,进而产生服务消费活动。消费活动的发起方载体表现多样,可以通过 Web 应用、智能手机终 端、第三方客户端等多种方式访问平台提供的统一网关接口(Gateway)。网关从注册中心(Service’s Registry) 获取服务与地址对应信息,将服务请求路由转发到对应微服务接口。在此过程中,合约引擎(Contract Engine) 作为区块链交互的执行模块,负责执行已签订“软件订阅合同”中相应条款,将合约代码和中间状态以区块 链交易的格式(见表 1)读取或存入区块链。 2.2 系统实体关系与流程 在上述系统架构中本文将主要研究基于智能合约的服务注册、发现与消费三个阶段。为了清晰地展示这 三个阶段,图 2 表示了主要实体间的交互关系,并将上述三大阶段按流程先后关系分为注册与发布 (Registration and Publication)、发现(Discovery)、推荐(Recommendation)、请求(Request)、绑定(Binding)、 消费(Consumption)、结算(Transation)等步骤: 图 2 SaaSC 系统主要实体间关系 Fig.2 Relations among essential entities in SaaSC system 服务注册与发布 本阶段是指服务将自身模块信息向交易平台宣称、平台再根据约定推广服务的过程。服务提供方使用 SLC 范本对服务注册与发布过程进行合同意义上的封装,被称为服务的合约化封装。在此过程中服务提供方提交 接口注册信息的同时将服务接口承诺写入 SLC 范本,继而采用“服务注册条款 SRT”对服务接口宣称进行约定 与检查(见图 2 阶段 1)。 服务发现与绑定 消费方通过平台获取可用服务列表进而使用服务的过程称为服务发现与绑定。首先,平台作为联系服务 提供方与消费方的桥梁,依据已注册 SLC 范本中“服务发现条款 SDT”接受发现请求,并提供对应的服务列 表(见图 2 阶段 2.A)。其次,服务推荐是将多家服务整合,根据评价指标给出评估结果排名,由于服务推荐 2.A Discovery 3.B Binding 2.B Recommendation 3.A Request Service's Consumer Service Transaction Platform SRT SDT SCT 4.A Consumption 4.B Transaction 1. Registration and Publication Service's Provider 录用稿件,非最终出版稿
5 使用现有推荐算法2),故在本文中不作为重点内容(见图2阶段2.B)。然后,服务提供方和消费方根据定制 化条款约定服务内容,消费方请求所选择服务授权软件许可(见图2阶段3.A)。提供方根据定制化条款授权 具体的服务资源绑定到条款指定的接口描述,双方通过合约订立确立最终合约形式并生成可执行智能合约程 序部署到区块链平台(见图2阶段3B)。 3)服务消费与结算 本阶段是“先服务后结算”软件订阅模式的执行过程。根据条款规定的定价规则,服务提供方先期交付 SaS订阅使用权,消费方通过合约中规定的条款按需调用SaaS软件服务(图2阶段4.A)。智能合约程序根 据服务消费账单进行结算,将资金转账到服务提供方账户(图2阶段4.B)。 2.3软件订阅合同中的条款 上述阶段中,合约引擎提供智能合约部署与执行等功能。智能法律合约作为设休开发工具,约定平台与 服务提供方、消费方之间采用三种条款规范两两之间交互行为与结果: 1)服务注册条款SRT:是指合约中用于以资产(Asset)形式描述服务接口Interface)并将资产提交给平台 (通过Commit子条款)、以及平台将其中的服务接口发布到服务列表中《通过Register子条款)的相应 条款,其中,Commit和Register为合约模板中约定的两个子条款。 2)服务发现条款SDT:是指合约中用于消费方向服务交易平台提交发现请求(通过Request子条款)及平 台向消费方提供服务列表。依据条款中关于服务功能或质量的限制条件,服务发现请求中可附带检索信 息以帮助平台缩小检索范围。 3)服务定制化条款SCT:服务提供方和消费方依据协商今 致的原则自行定义各方权利义务和服务计费标准。 合同条款协商完毕的标志是合约订立。合约订立即要约承诺”的过程,与服务请求绑定过程相对应。 3. 服务注册与发布 本节将使用智能法律合约语言SPESC进行服务注册与发布的合约化封装。服务提供方提交接口注册信息 同时将服务接口承诺写入智能法律合约,继而采用合约中资产表示对服务接口宣称进行约定与检查。SPESC 语法模型的构成要素包括合约名称、当事人描述、标的、合约条款、附加信息、合约订立等。同时,智能法律 合约编写过程中涉及权利和义务、资度操作、 表达式、时间表示等语法规范(见文献[13])。后文将采用该语 法模型对服务进行合约化描述, 3.1合约当事人声明 首先,SPESC智能法律合约中需要记录提供服务的负责人信息,服务实体作为合约当事人,对应智能法 律合约的合约参与方)。在SPESC语言描述的智能法律合约中,合约当事人的属性采用键值对描述, 其中,属性键由合约范本指定,属性值可以留空或者预先填充。 本文中合约范术【或称合同范本)采用合约模板化思想进行设计。该思想最早来源于李嘉图合约 (Ricardian Contract),旨在通过可读性语言以类似合同文本的形式描述合同中每个条款的意思表示,并将 其与当事人的意志选择分离开,前者被转化为合约模板,后者生成数据域。在合约模板代码被上传到区块链 系统后,区块链提供的去中心化计算能力支持分布式环境下多方当事人对数据域进行填充与交换协商。因此, 合约模板与数据域相分离的设计方式融合区块链去中心化计算能力,支持了多方当事人对合约进行并发操作。 如()所示,合约范本为每个当事人设置账户和身份证明两个属性。由于服务提供方提供合约范本,故已 在其中添加了属性值:其余当事人在合同协商过程中动态填入属性值。当事人还可以拥有其他属性,如可操 作的动作等,在后文中将通过合约条款的方式进行声明。微服务应用(Service App)、当事人与智能合约的UML 之间关联关系如(b)所示。其中,实体类(Instancelnfo)表示运行微服务的实例信息,微服务与其实例信息为
5 使用现有推荐算法[12],故在本文中不作为重点内容(见图 2 阶段 2.B)。然后,服务提供方和消费方根据定制 化条款约定服务内容,消费方请求所选择服务授权软件许可(见图 2 阶段 3.A)。提供方根据定制化条款授权 具体的服务资源绑定到条款指定的接口描述,双方通过合约订立确立最终合约形式并生成可执行智能合约程 序部署到区块链平台(见图 2 阶段 3.B)。 服务消费与结算 本阶段是“先服务后结算”软件订阅模式的执行过程。根据条款规定的定价规则,服务提供方先期交付 SaaS 订阅使用权,消费方通过合约中规定的条款按需调用 SaaS 软件服务(图 2 阶段 4.A)。智能合约程序根 据服务消费账单进行结算,将资金转账到服务提供方账户(图 2 阶段 4.B)。 2.3 软件订阅合同中的条款 上述阶段中,合约引擎提供智能合约部署与执行等功能。智能法律合约作为设计开发工具,约定平台与 服务提供方、消费方之间采用三种条款规范两两之间交互行为与结果: 服务注册条款 SRT:是指合约中用于以资产(Asset)形式描述服务接口(Interface)并将资产提交给平台 (通过 Commit 子条款)、以及平台将其中的服务接口发布到服务列表中(通过 Register 子条款)的相应 条款,其中,Commit 和 Register 为合约模板中约定的两个子条款。 服务发现条款 SDT:是指合约中用于消费方向服务交易平台提交发现请求(通过 Request 子条款)及平 台向消费方提供服务列表。依据条款中关于服务功能或质量的限制条件,服务发现请求中可附带检索信 息以帮助平台缩小检索范围。 服务定制化条款 SCT:服务提供方和消费方依据协商一致的原则自行定义各方权利义务和服务计费标准。 合同条款协商完毕的标志是合约订立。合约订立即“要约-承诺”的过程,与服务请求绑定过程相对应。 3. 服务注册与发布 本节将使用智能法律合约语言 SPESC 进行服务注册与发布的合约化封装。服务提供方提交接口注册信息 同时将服务接口承诺写入智能法律合约,继而采用合约中资产表示对服务接口宣称进行约定与检查。SPESC 语法模型的构成要素包括合约名称、当事人描述、标的、合约条款、附加信息、合约订立等。同时,智能法律 合约编写过程中涉及权利和义务、资产操作、表达式、时间表示等语法规范(见文献[13])。后文将采用该语 法模型对服务进行合约化描述。 3.1 合约当事人声明 首先,SPESC 智能法律合约中需要记录提供服务的负责人信息,服务实体作为合约当事人,对应智能法 律合约的合约参与方(party)。在 SPESC 语言描述的智能法律合约中,合约当事人的属性采用键-值对描述, 其中,属性键由合约范本指定,属性值可以留空或者预先填充。 本文中合约范本(或称合同范本)采用合约模板化思想[14]进行设计。该思想最早来源于李嘉图合约 (Ricardian Contract)[15],旨在通过可读性语言以类似合同文本的形式描述合同中每个条款的意思表示,并将 其与当事人的意志选择分离开,前者被转化为合约模板,后者生成数据域。在合约模板代码被上传到区块链 系统后,区块链提供的去中心化计算能力支持分布式环境下多方当事人对数据域进行填充与交换协商。因此, 合约模板与数据域相分离的设计方式融合区块链去中心化计算能力,支持了多方当事人对合约进行并发操作。 如(a)所示,合约范本为每个当事人设置账户和身份证明两个属性。由于服务提供方提供合约范本,故已 在其中添加了属性值;其余当事人在合同协商过程中动态填入属性值。当事人还可以拥有其他属性,如可操 作的动作等,在后文中将通过合约条款的方式进行声明。微服务应用(Service App)、当事人与智能合约的 UML 之间关联关系如(b)所示。其中,实体类(InstanceInfo)表示运行微服务的实例信息,微服务与其实例信息为 录用稿件,非最终出版稿