11 asset ForecastWeather:type Service( insta nces[ furl:“http:/weather-serivce.com”, description:“Weather forecast server 1” 切 paths[ {path:“/forecast”,label:“Forecast'", bind GET http://weather-forecast/forecast parameters:[time,location],method:"GET responses[ time:String code:200,description:"served"), -location:Integer fcode:404,descr iption:"Not Found")]. rights[ onwnership:Provider, fusufrust:Provider] price:Money 图9服务接口声明请求绑定至HTTP报文示意图 Fig.9 Mapping from service interface to HTTP package 稿 5. 服务消费与结算 5.1 服务消费定制合约条款 在服务请求绑定过程中,消费方发起的合约签订请求可以看作服务要约。请求授权的过程可以是多次 协商获得的结果,提供方和消费方可以协商合约自定义条款中的具体服务参数,如服务期限、服务费用、付 款时间、服务强度等。通信协商的过程可借助区块链实现存证, 双方对智能法律合约中的自定义条款协商达成一致,示例条款如图10所示,根据子条款o31,消费方 在发送服务消费的同时向合约存入押金作为预付款。根犏系条款o32,服务提供方在提供服务后从由合约转 账取出预付款,实现“先服务后计费”。若服务调用结束返回成功状态码(即cod:200)则调用付款接口,立 即转账到服务提供方地址。智能合约将保证储存在合约中的余额非负。以上条款实现了以“先服务后计费” 方式对服务接口进行按次、按量精准计费。 条款3:甲方按次向乙方请求天气预报的结果并支付服务费。乙方成功返回服务结果后即取走费用。 term no3 1:Consumer can Request(Forecast) when serviceTimes< while deposit price where balance term no3 2:Provider mdst Forecast(time,location) when Consumer did Request(Forecast) where balance >=0 and reponse::code is 200 图10服务消费定制化条款 Fig.10 Term of service customized consumption 服务结束依赖于服务消费请求接收到HTTP状态码code:404,产生的原因分为两种情况: 1)服务过程结束:服务提供方依据消费定制条款中约定的条件提供一定次数或者一段时间的服务。每次 或每段时间的服务履行记录由合约引擎以日志形式存证到区块链系统。当合约引擎执行条款条件不满足时(如 超出服务次数或时间限制)将判断为服务过程结束,此时服务请求将不会响应,而是返回404状态码。 2)合约终止:合约有效期(如使用次数和期限等)结束将导致合约终止。此外,在服务期限内消费方退 订服务也将导致合约终止,此过程需设置合约退订子条款,即当满足退订子条款的前置条件(如使用的最低 次数或时间、合约账户中的剩余资金返还的比例计算方式等)时,平台将执行终止服务合约。终止的合约将 无法进行实例化,网关从注册中心获取对应下线合约状态并拦截关联的服务消费请求,并返回404状态码。11 图 9 服务接口声明请求绑定至 HTTP 报文示意图 Fig.9 Mapping from service interface to HTTP package 5. 服务消费与结算 5.1 服务消费定制合约条款 在服务请求绑定过程中,消费方发起的合约签订请求可以看作服务要约[19]。请求授权的过程可以是多次 协商获得的结果,提供方和消费方可以协商合约自定义条款中的具体服务参数,如服务期限、服务费用、付 款时间、服务强度等。通信协商的过程可借助区块链实现存证。 双方对智能法律合约中的自定义条款协商达成一致,示例条款如图 10 所示,根据子条款 no3_1,消费方 在发送服务消费的同时向合约存入押金作为预付款。根据子条款 no3_2,服务提供方在提供服务后从由合约转 账取出预付款,实现“先服务后计费”。若服务调用结束返回成功状态码(即 code: 200)则调用付款接口,立 即转账到服务提供方地址。智能合约将保证储存在合约中的余额非负。以上条款实现了以“先服务后计费” 方式对服务接口进行按次、按量精准计费。 图 10 服务消费定制化条款 Fig.10 Term of service customized consumption 服务结束依赖于服务消费请求接收到 HTTP 状态码 code: 404,产生的原因分为两种情况: 1)服务过程结束:服务提供方依据消费定制条款中约定的条件提供一定次数或者一段时间的服务。每次 或每段时间的服务履行记录由合约引擎以日志形式存证到区块链系统。当合约引擎执行条款条件不满足时(如 超出服务次数或时间限制)将判断为服务过程结束,此时服务请求将不会响应,而是返回 404 状态码。 2)合约终止:合约有效期(如使用次数和期限等)结束将导致合约终止。此外,在服务期限内消费方退 订服务也将导致合约终止,此过程需设置合约退订子条款,即当满足退订子条款的前置条件(如使用的最低 次数或时间、合约账户中的剩余资金返还的比例计算方式等)时,平台将执行终止服务合约。终止的合约将 无法进行实例化,网关从注册中心获取对应下线合约状态并拦截关联的服务消费请求,并返回 404 状态码。 asset ForecastWeather : type Service { instances[ {url: http://weather-serivce.com description: Weather forecast server 1” }], paths[ {path: forecast label: Forecast parameters:[time,location],method: GET responses[ {code:200, description:"served"}, {code: 404, description:"Not Found"}], rights[ {onwnership: Provider}, {usufrust: Provider}], price : Money } bind GET http://weather-forecast/forecast - time : String - location : Integer @@条款 3:甲方按次向乙方请求天气预报的结果并支付服务费。乙方成功返回服务结果后即取走费用。 term no3_1: Consumer can Request(Forecast) when serviceTimes < maxTimes while deposit price where balance >= price. term no3_2: Provider must Forecast(time, location) when Consumer did Request(Forecast) while withdraw price where balance >= 0 and reponse::code is 200. 录用稿件,非最终出版稿