首页> 中国专利> 去中心化服务生态系统的数据处理方法

去中心化服务生态系统的数据处理方法

摘要

本发明公开一种去中心化服务生态系统的数据处理方法。所述服务生态系统包括证书程序模块、开发应用程序模块和区块链网络程序模块;所述区块链网络程序模块包括节点;服务生态系统的业务逻辑以智能合约的形式部署于所述节点;所述节点还包括账本;所述方法包括:发放对应有权限的证书;发布指定服务的信息;基于所述证书的权限,调用所述智能合约接口,在所述账本中增加所述指定服务的信息;接收申请使用所述指定服务的交易信息;基于接收到交易已确认的信息,将所述交易信息对应的用户对所述指定服务的使用权限添加到所述账本;查询服务调用请求对应的服务使用权限并返回查询结果。本发明能节省成本,能保证系统的信任度、安全防护和权限控制。

著录项

  • 公开/公告号CN112506680A

    专利类型发明专利

  • 公开/公告日2021-03-16

    原文格式PDF

  • 申请/专利权人 清华大学深圳国际研究生院;

    申请/专利号CN202011522741.8

  • 发明设计人 郜振锋;李秀;范玉顺;

    申请日2020-12-21

  • 分类号G06F9/54(20060101);G06F21/44(20130101);H04L9/32(20060101);

  • 代理机构44223 深圳新创友知识产权代理有限公司;

  • 代理人孟学英

  • 地址 518055 广东省深圳市南山区西丽街道深圳大学城清华校区A栋二楼

  • 入库时间 2023-06-19 10:16:30

说明书

技术领域

本发明涉及计算机软件工程技术领域,特别涉及一种去中心化服务生态系统的数据处理方法。

背景技术

面向服务体系架构(Service Oriented Architecture,,SOA)相关技术在近年来得到不断的发展,以服务为中心的服务计算也逐渐地演变成主流计算模式之一,得到越来越广泛的应用。越来越多的应用、工作流、数据、资源等均被服务提供商以服务的形式封装,并被发布到网络上。众多的服务逐渐聚集,伴随着参与者的行为(如调用服务、发布服务组合等),服务系统的生态逐渐产生。常见的服务生态系统如苹果APP Store、IBM创建的ProgrammableWeb.com等。在服务系统的发展过程中,参与者包括用户、服务开发者和服务系统管理者。在现有的中心化架构的服务系统中,服务系统管理者的角色举足轻重。服务系统管理者是服务系统稳定、安全运行的基本保障,为服务生态系统提供运维支持和信息管理等。但是这种中心化的现有的服务生态系统的架构也存在一定的问题。首先,通常需要服务系统管理员的角色参与系统的管理和维护;维护一个大型的服务系统生态,基于一个中心化的框架,往往需要很高的基础设施和人力成本。

以上背景技术内容的公开仅用于辅助理解本发明的发明构思及技术方案,其并不必然属于本发明的现有技术,在没有明确的证据表明上述内容在本发明的申请日之前已经公开的情况下,上述背景技术不应当用于评价本发明的新颖性和创造性。

发明内容

本发明提出一种去中心化服务生态系统的数据处理方法,能节省成本,能保证系统的信任度、安全防护和权限控制。

在第一方面,一种去中心化服务生态系统的数据处理方法,所述服务生态系统包括证书程序模块、开发应用程序模块和区块链网络程序模块;所述区块链网络程序模块包括节点;服务生态系统的业务逻辑以智能合约的形式部署于所述节点;所述智能合约具有智能合约接口;所述节点还包括账本;

所述方法包括:

发放对应有权限的证书;

发布指定服务的信息;

基于所述证书的权限,调用所述智能合约接口,在所述账本中增加所述指定服务的信息;

接收申请使用所述指定服务的交易信息;

基于接收到交易已确认的信息,将所述交易信息对应的用户对所述指定服务的使用权限添加到所述账本;

查询服务调用请求对应的服务使用权限并返回查询结果;其中,所述查询结果用于根据所述服务调用请求返回请求结果。

在一些优选的实施方式中,还包括:修改所述用户对所述指定服务的使用权限。

在一些优选的实施方式中,还包括:发布指定服务组合的信息;其中,所述指定服务组合是调用所述指定服务创建的。

在一些优选的实施方式中,所述智能合约接口包括服务创建接口、服务发布接口和服务无效接口;

所述方法还包括:

调用所述服务创建接口创建服务或服务组合;

将创建的所述服务或服务组合标记为创建状态;

调用所述服务发布接口发布所述服务或服务组合并将所述服务或服务组合标记为可用状态;

调用所述服务无效接口将处于创建或可用状态的所述服务或服务组合标记为失效。

在一些优选的实施方式中,所述服务生态系统的数据包括账户数据、用户数据和服务数据;

所述账户数据用于管理各种自定义的通证;

所述用户数据用于记录用户的信息;

所述服务数据用于记录服务或服务组合的信息。

在一些优选的实施方式中,所述服务数据具有状态字段;所述状态字段用于记录所述服务或服务组合的创造状态、可用状态和失效状态。

在一些优选的实施方式中,还包括能接入所述开发应用程序模块的用户设备;所述用户设备分为服务开发者设备和服务使用者设备。

在一些优选的实施方式中,所述节点分为Peer节点和Orderer节点。

在一些优选的实施方式中,所述开发应用程序模块作为接口层部署于所述节点;或者,所述开发应用程序模块作为前端部署于所述服务生态系统。

在第二方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,所述程序指令被计算机的处理器执行时使所述处理器执行上述方法。

与现有技术相比,本发明的实施例的有益效果包括:

发放对应有权限的证书,发布指定服务的信息,基于证书的权限,调用智能合约接口,在账本中增加指定服务的信息,接收申请使用指定服务的交易信息,基于接收到交易已确认的信息,将交易信息对应的用户对指定服务的使用权限添加到账本,查询服务调用请求对应的服务使用权限并返回用于根据服务调用请求返回请求结果的查询结果,从而完成指定服务的调用,能实现服务生态系统的去中心化,能节省成本,能保证系统的信任度、安全防护和权限控制。

附图说明

图1为本发明一个实施例的基于区块链的去中心化服务系统的架构图;

图2为本发明一个实施例的去中心化服务系统的数据处理方法的一个业务行为场景的信息交互图;

图3为本发明一个实施例的去中心化服务系统的数据处理方法的另一个业务行为场景的信息交互图;

图4为本发明一个实施例的智能合约的数据结构示意图;

图5为本发明一个实施例的服务状态随服务相关函数的变化情况示意图。

具体实施方式

为了使本发明的实施例所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合图1至图5及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

近年来,区块链技术得到了飞速的发展。特别是在企业级的应用场景,联盟链解决方案通常具备节点功能解耦、多通道、权限控制等特点,得到了广泛应用。区块链作为去中心化的分布式底层账本技术,为服务系统的去中心化建设提供了技术基础和解决方案思路。

针对传统中心化服务生态系统架构存在的问题,本实施例提出一种基于联盟区块链的去中心化服务生态系统。该系统的架构以联盟区块链为技术底层,构建联盟区块链网络,利用智能合约约定业务逻辑,以此建立去中心化服务生态系统的基础架构,并拥有服务开发者和使用者两种核心参与角色。该系统是去中心化服务系统的原型,可以解决传统的中心化平台中存在的信任、隐私管理、安全防护、权限控制等问题。同时,结合通证体系,该系统能提供经济激励机制,以鼓励服务使用者和服务开发者积极参与系统生态的构建,保持服务系统的繁荣发展。该系统所包含的设计构思可以用于指导去中心化服务生态系统的建设,并可以扩展到具体细分场景的服务生态系统建设,如移动应用市场、旅游领域、数据共享领域等。

参考图1,本实施例的基于区块链的去中心化服务系统的主要组成元素包括:服务开发/使用者1、开发应用程序模块2、证书程序模块3和区块链网络程序模块4。服务开发/使用者1是系统的用户,分为服务开发者和服务使用者。开发应用程序模块2也可称为SDK(Software Development Kit,软件开发工具包)/APP(Application,应用)程序模块。证书程序模块3也可称为CA(Certification)程序模块。

区块链网络程序模块4具有节点,分为Peer节点41和Orderer节点42。其中,Peer节点41和Orderer节点42的数量均为多个。

服务生态系统的业务逻辑以智能合约service.go的形式部署于区块链网络程序模块4中的节点,比如部署于Peer节点41。

区块链网络程序模块4中的节点比如Peer节点41还具有账本410。

智能合约service.go能提供智能合约接口。

证书程序模块3能发放证书(Certification)。

开发应用程序模块2能根据用户请求按照证书对应的权限通过智能合约接口与区块链网络程序模块4中的账本410发生交互。

下面结合本实施例的去中心化服务系统(简称DSES,Decentralized ServiceEco-System)的数据处理方法对本实施例的去中心化服务系统(DSES)的各个主要组成元素进行详细说明。其中,本实施例的数据处理方法由本实施例的系统实现。

对服务开发/使用者1进行说明。

在去中心化的服务系统中,仅拥有两种参与角色,即服务开发者和服务使用者。基于区块链的去中心化架构使得系统的安全性、隐私性和不可篡改性得到保障;系统的使用者必须获得证书程序模块3发放的证书才拥有数据访问和操作的权限;并且服务系统相关的业务逻辑已经通过智能合约service.go的形式部署在区块链网络的每一个Peer节点41中,所有的系统生态参与者根据证书的权限设定与自身需求,通过智能合约service.go的接口与账本410的状态进行交互。因此,在去中心化的服务系统中,不再需要传统的“服务系统管理者”的角色,这样能精简系统架构。

服务开发者和服务使用者可以通过智能合约service.go的相关接口发起一系列的调用(Invocation)和查询操作,如发布新服务、查询服务信息、创建新的服务组合等。服务开发/使用者1通过用户设备接入开发应用程序模块2;对应于服务开发者和服务使用者,用户设备分为服务开发者设备和服务使用者设备;如此,服务开发者和服务使用者借助用户设备通过开发应用程序模块2将前述调用或查询操作广播到区块链网络程序模块4中去。

对开发应用程序模块2(也即SDK/APP程序模块)进行说明。

通过智能合约service.go的相关接口,开发应用程序模块2能实现服务系统的应用业务逻辑。开发应用程序模块2是用户直接接触的模块,也是用户与区块链网络中的账本410的状态进行交互的接口。开发应用程序模块2在实际中有多种实现方式,如作为接口层部署在区块链网络中的Peer节点上,或者设计相应的前端,便于用户实际使用等。开发应用程序模块2实现的前提是区块链网络程序模块4的运行,以及智能合约相关接口的可用性。

对证书程序模块3(也即CA程序模块)进行说明。

证书程序模块3负责管理相关证书的发放。只有获得证书程序模块3的证书授权,服务开发者/用户才能够依据证书设定的角色权限,通过开发应用程序模块2并根据智能合约service.go提供的接口与区块链中的账本410的状态发生交互。

对区块链网络程序模块4进行说明。

参考图1,图的右边是去中心化服务系统的核心模块——区块链网络程序模块(DSES Blockchain Network)。区块链网络程序模块4是基于联盟链底层创建的分布式账本架构,通过链式结构记录交易信息,维护全局的账本状态。交易提案则由所有的服务开发者与使用者通过智能合约定义的接口发起。

下面通过两个典型的业务行为场景对本实施例的去中心化服务系统的数据处理方法进行说明。

步骤A1至步骤A7描述的是第一个典型的业务行为场景,该业务行为发生在服务使用者和开发者之间:用户调用一个具体的被某个开发者发布的服务。该场景是用户A尝试调用服务开发者B发布的服务i。在这个场景中,参考图2,相关的行为流程如下所述。

步骤A1,证书程序模块发放对应有权限的证书。

服务开发者B创建服务i,并且在其服务器上部署服务i,以对外提供相应的服务和请求响应。

如前所述,用户需要依据证书设定的角色权限,通过开发应用程序模块2并根据智能合约service.go提供的接口与区块链中的账本410的状态发生交互。服务开发者B属于去中心化服务系统的参与角色,服务开发者B的服务器上的服务i需要发布到系统中,那么证书程序模块3会针对服务开发者B这个用户发放对应的证书。

步骤A2,开发应用程序模块发布指定服务的信息。

服务开发者B在去中心化服务系统中注册服务i,即通过开发应用程序模块2的网页前端或SDK将服务i的相关信息发布到去中心化服务系统中。

步骤A3,基于证书的权限,调用智能合约接口,在账本中增加所述指定服务的信息。

系统根据服务开发者B的角色权限,通过调用相应的智能合约接口,在全局账本中新增服务i的信息。

步骤A4,接收申请使用指定服务的交易信息。

服务使用者A在系统中发现了服务i(也即指定服务),并且服务i的相关功能整好满足了其使用需求。

服务使用者A申请服务i的使用权限。为了得到服务i特定次数的使用权限,服务使用者A必须向服务开发者B支付对应数量的SToken。系统接收支付对应数量的SToken的交易信息,该交易信息用于申请使用服务i。

步骤A5,基于接收到交易已确认的信息,将交易信息对应的用户对指定服务的使用权限添加到账本。

在交易确认后(也即完成交易后),去中心化服务系统将交易信息对应的用户对指定服务的使用权限添加到账本,也即服务使用者A对于服务i的使用权限将会添加到全局的账本中;然后,服务使用者A向开发者B的服务器发起调用服务i的请求,该请求为服务调用请求。

步骤A6,查询服务调用请求对应的服务使用权限并返回查询结果;其中,查询结果用于根据服务调用请求返回请求结果。

在收到服务使用者A的服务调用请求后,服务开发者B的服务器通过开发应用程序模块2查询服务使用者A的服务使用权限;如果查询结果为符合要求,则根据服务使用者A的访问请求返回请求结果。

步骤A7,修改用户对指定服务的使用权限。

同时,服务开发者B的服务器会再向去中心化服务系统发起一个指定请求,将服务使用者A调用服务i的允许次数减一,也即修改服务使用者A对服务i的使用权限。

在上述步骤A5中,当交易成功执行后,服务使用者A调用服务i的权限会被记录到全局账本,并且可以被当前系统的任意参与方查询到。

此外,在去中心化服务系统中,如果用户觉得服务i对其帮助很大,可以通过“打赏”的方式给予服务开发者B一定数量的SToken来进行激励。相应的,系统将一个用户对另一个用户的打赏记录到全局账本。

第二个典型的业务行为场景是:服务开发者C为服务组合开发者,其通过搜索去中心化服务系统中已发布的服务信息,发现服务i对其创建一个新的服务组合j很有帮助;服务开发者C尝试在创建服务组合j时调用服务开发者B发布的服务i,以简化其开发的复杂度,更好地满足当前的需求;参考图3,相关的行为流程叙述如下文,包括步骤B1至步骤B3。

步骤B1,服务开发者B创建服务i,并且在去中心化服务系统中注册服务i。具体过程与前述步骤A2相同。

步骤B2,服务开发者C通过服务信息搜索接口,发现服务i对于其创建满足复杂需求的服务组合非常有帮助。

步骤B3,服务开发者C创建一个新的服务组合j(为指定服务组合),服务组合j调用服务i来实现相应的功能。为了在去中心化服务系统中注册服务组合j,服务开发者C必须向服务开发者B转移一定的SToken以在创建服务组合时使用i,具体过程请参考前述步骤A4;当交易成功后(请参考前述步骤A5),服务开发者C创建的新的服务组合j的信息会被成功发布到去中心化服务系统中,具体是开发应用程序模块发布服务组合j的信息;其中,服务组合j是调用服务i创建的。

通过上述流程,一个新的服务组合会被发布到服务生态系统中,其相关信息会被记录和同步在全局的账本上,不可篡改。

在本实施例中,通过智能合约service.go实现服务系统的基本业务应用逻辑。进一步地,本实施例还通过智能合约实现具体的经济激励措施,以激励服务开发者和服务使用者积极参与服务系统的生态构建,促进服务系统的繁荣发展。下面将介绍本实施例中去中心化服务生态系统的数据结构和智能合约的详细实现。

参考图4,智能合约service.go设计的数据结构包括账户数据(Account)、用户数据(User)和服务数据(Service)。

账户数据(Account):基于联盟链中的通证体系设计,用来管理基于INKchain搭建的特定联盟链上的各种数字资产,即各种自定义的通证;具体而言,账户数据(Account)具有Address字段、Balance字段和Counter字段。

用户数据(User):在数据结构设计上,本实施例不区分服务开发者和服务使用者,而是将两者统一定义为服务系统中的用户User;用户数据(User)具有Name字段、Introduction字段、Address字段和Contribution字段;Name字段是该结构的键,唯一确定一个用户;Introduction字段,在创建一个用户时,往往需要提供该用户的简要介绍;Contribution字段,用来记录该用户对服务系统的贡献程度。

服务数据(Service):从结构上说,本实施例使用服务数据结构Service来记录服务和服务组合的信息;具体而言,服务数据(Service)具有Name字段、Type字段、Developer字段、Description字段、IsMashup字段、Composited字段、Status字段、Created Time字段、以及Updated Time字段;每个服务或服务组合通过Developer字段与一个用户一一对应,该用户即为服务的开发者;在服务数据结构中,IsMashup字段被使用来区分存储的是一个具体的服务(service)还是服务组合(mashup)的信息。当记录的是一个服务组合的信息时,Composited字段将存储该服务调用的成员服务集合ms(i);特别地,在服务数据结构Service中,系统DSES使用Status字段来记录一个服务的具体状态;通常来说,一个服务或服务组合具有创造状态、可用状态和失效状态三种状态;

创造(Created)状态:一个服务或服务组合已经被开发者创建,但因为没有开发完善或相关信息需要补充,还没有正式公开发布;

可用(Available)状态:一个已经被正式发布的服务或服务组合,可以被服务开发者使用;

失效(Invalid)状态:服务系统中的一个服务或服务组合以为外部或提供商本身的原因而逐渐消亡,变得不可用。

基于本实施例的数据结构的定义,本实施例在智能合约service.go中实现的invoke函数接口(也即智能合约接口)如下表一所示。

表一

表一中实现的invoke函数接口可以分为三类:用户相关函数、服务相关函数和激励相关函数。

基于本实施例对数据结构的设计,服务相关函数会使得服务系统中服务或服务组合的状态发生变化。服务状态随服务相关函数的变化情况如图5所示。

服务开发者通过调用智能合约的服务创建接口(也即RegisterService接口)创建新的服务或服务组合。被创建的服务或服务组合会被先标记为创建(Created)状态。当相关功能开发完毕以及服务相关信息补充完整后,当前服务或服务组合的开发者再通过服务发布接口(也即PublishService接口)发布服务,将服务标记为可用(Available)状态。可用状态下的服务信息可以被其他用户查询到,并能够被其他开发者调用以创建新的服务组合。因为一些主观或客观因素导致服务失效时,服务开发者通过调用服务无效接口(InvalidateService接口)将处于创建或可用状态的服务标记为失效,使得服务信息不能被平台其他用户查询,也不能被用于新的服务组合的创建。同时,处于创建或可用状态的服务或服务组合的信息控制权完全属于对应开发者。开发者通过调用服务编辑接口(EditService接口)修改服务或服务组合的相关信息。

根据上述可知,通过证书程序模块3(也即CA程序模块)授权发放的证书,服务开发者/使用者1可以获得相应的权限,通过开发应用程序模块2(也即SDK/APP程序模块)发起查询或者调用请求,通过区块链网络程序模块4中的智能合约service.go的相关接口,访问和修改账本中的状态。区块链网络程序模块由Peer和Orderer两种节点组成,借助链式的数据块结构,共同维护全局的账本状态。本实施例能实现服务生态系统的去中心化,能节省成本,能解决传统的中心化平台中存在的信任问题、安全防护、权限控制等问题,能保证系统的稳定和有序运作。

本领域的技术人员可以理解实施例方法中的全部或部分流程可以由计算机程序来命令相关的硬件完成,程序可存储于计算机可读取存储介质中,程序在执行时,可包括如各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

以上内容是结合具体/优选的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施方式做出若干替代或变型,而这些替代或变型方式都应当视为属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号