用于使用智能合约和区块链管理云服务的方法和装置与流程

文档序号:22260175发布日期:2020-09-18 14:26阅读:154来源:国知局
用于使用智能合约和区块链管理云服务的方法和装置与流程

相关申请的交叉引用

本申请要求2018年2月6日提交的美国临时申请no.62/627,105的权益,其通过引用合并于此。

本发明的实施例涉及数据中心架构的领域;更具体地,涉及使用智能合约管理云服务。



背景技术:

多租户数据中心基础设施支持对用户可用的一个或多个服务。在数据中心中托管的服务可以包括:基础设施即服务(iaas),其提供对计算资源(例如,处理功率、数据存储容量、和网络资源)的访问;平台即服务(paas),其除了计算和存储基础设施外还提供开发平台层(例如,web服务器、数据库管理系统、和软件开发工具包(sdk));以及软件即服务(saas),其提供针对各种业务需求量身定制的应用程序级服务。

现有的云服务提供商利用集中式数据库系统来管理计算、存储和网络服务以及通过云提供商提供的第三方服务(诸如流媒体)。数据中心的用户可以是对使用基于云的架构的服务感兴趣的租户(例如,具有一个或多个用户的外部组织,或外部单个用户)。另外,用户可以是需要访问基于云的架构的一个或多个其他服务的架构的服务。

集中式数据库系统需要许多努力来配置针对特定客户类别(例如特定种类的业务(诸如建筑))的定制服务产品(serviceoffering)。由于数据库允许移除记录,因此,如果发生纠纷并且相关记录由于某种错误或意图而被移除,则客户几乎没有办法。这在如金融和医疗保健等受监管的行业中是个特定问题。



技术实现要素:

各方面包括使用智能合约来管理云服务的技术。特别地,公开了使用智能合约来促进诸如租户登录、租户登记、服务注册、租户使用计费、租户使用跟踪、租户配额管理和租户权限撤销的各种功能的方法。

所提出的方案是在2017年12月19日提交的题为“tenantmanagementmethodandsysteminacloudcomputingenviroment(在云计算环境中的租户管理方法和系统)”的美国专利申请no.15/846,911中描述的区块链租户管理的扩展,该美国专利申请包括针对服务以及租户的服务集成和计费。它采用在许可分布式账本(例如,私有区块链)上运行的智能合约的形式来表示租户账户和服务账户。为了启用该设置,所提出的系统包含以下特征:

·租户登记

·服务注册到云系统中,以使得它可用于租户

·租户计费

·租户使用跟踪

·基于租户的请求的租户配额更新,取决于云系统中的可用性

另外,该系统支持权限从服务到租户的委托以及这些权限的撤销。这些功能在2018年2月5日提交的题为“methodandapparatusformanagingserviceaccessauthorizationusingsmartcontracts(用于使用智能合约管理服务访问授权的方法和装置)”的国际申请pct/ib2018/050713(以下称为“pct/ib2018/050713”)中进行了描述。

因为区块链记录是不可变的,因此,所提出的解决方案提供了一种方法,由此在发生纠纷时租户和服务可以请求对交易进行审计。此外,服务提供商,包括云服务提供商和第三方服务提供商,都可以通过以下功能来向特定客户类别提供定制的服务产品:

·租户与云系统之间的智能合约,通过将授权权限委托给租户以使用所请求的云服务来启用

·对租户使用服务的细粒度跟踪,包括计费。在一些实施例中,加密货币可以用于计费,尽管这不是必需的。

·根据租户请求的租户配额更新。

一个总体方面包括一种在数据中心的租户和服务管理系统中的管理多个用户对一个或多个服务的访问的方法,该方法包括:接收唯一标识服务的标识和由该服务提供的一组一个或多个资源的描述;将服务与租户和服务管理系统之间的智能委托合约记录到区块链数据库中,其中,智能委托合约包括服务的标识、租户和服务管理系统的标识、以及一组资源的描述,并且智能委托合约用服务的加密私钥以及租户和服务管理系统的加密私钥来进行加密签名,其中,该服务的加密私钥是用于该服务的加密公钥-私钥对的一部分,租户和服务管理系统的加密私钥是用于租户和服务管理系统的加密公钥-私钥对的一部分;从请求者接收访问服务的请求;以及至少部分地基于服务与租户和服务管理系统之间的智能委托合约,授权请求者访问服务。

一个总体方面包括一种包括数据中心中的租户和服务管理系统的服务器,用于管理多个用户对一个或多个服务的访问,该服务器包括:存储指令的非暂时性计算机可读存储介质;以及与非暂时性计算机可读存储介质耦合的处理器,用于处理所存储的指令以:接收唯一标识服务的标识和由该服务提供的一组一个或多个资源的描述;将服务与租户和服务管理系统之间的智能委托合约记录到区块链数据库中,其中,智能委托合约包括服务的标识、租户和服务管理系统的标识、以及一组资源的描述,并且智能委托合约用服务的加密私钥以及租户和服务管理系统的加密私钥来进行加密签名,其中,该服务的加密私钥是用于该服务的加密公钥-私钥对的一部分,租户和服务管理系统的加密私钥是用于租户和服务管理系统的加密公钥-私钥对的一部分;从请求者接收访问服务的请求;以及至少部分地基于服务与租户和服务管理系统之间的智能委托合约,授权请求者访问服务。

附图说明

通过参考以下描述和用于说明本发明的实施例的附图,可以最好地理解本发明。在附图中:

图1示出了根据一些实施例的其中可以使用智能合约管理云服务的示例性的基于云的基础设施的框图;

图2a示出了根据一些实施例的用于服务注册过程的示例性操作的框图;

图2b示出了根据一些实施例的用于服务注册过程的示例性操作的框图;

图3a示出了根据一些实施例的用于租户登记的示例性操作的框图。租户经由它的公钥登记到系统中。

图3b示出了根据一些实施例的被执行以进一步启用服务访问授权的操作的框图;

图3c示出了根据一些实施例的用于基于请求者与服务之间的智能委托合约来访问服务的示例性操作;

图4示出了根据一些实施例的用于租户服务属性使用跟踪的示例性操作的框图;

图5示出了根据一些实施例的用于处理来自租户的配额更新的过程的示例性操作的框图;

图6a示出了根据一些实施例的基于第一场景的用于使用计费过程的第一组示例性操作的框图;

图6b示出了根据一些实施例的基于第二场景的用于使用计费过程的第二组示例性操作的框图;

图7示出了根据一些实施例的由数据中心的租户和服务管理系统执行的用于管理对一个或多个服务的访问的示例性操作的流程图;

图8示出了根据一些实施例的由租户和服务管理系统执行的用于获取服务的更新的操作的流程图;

图9示出了根据一些实施例的用于跟踪请求者对服务的使用的示例性操作的流程图;

图10示出了根据一些实施例的用于更新针对请求者的服务的示例性操作的流程图;

图11a示出了根据本发明的一些实施例的在示例性网络内的网络设备(nd)之间的连接以及nd的三个示例性实现;以及

图11b示出了根据本发明的一些实施例的实现专用网络设备的示例性方式。

具体实施方式

以下的描述描述了用于使用智能合约来管理云服务以促进诸如租户登录、租户登记、服务注册、租户使用计费、租户使用跟踪、租户配额管理以及租户权限撤销的各种功能的方法和装置。在下面的描述中,阐述了许多特定的细节,诸如逻辑实现、操作码、指定操作数的方式、资源分区/共享/复制实现、系统组件的类型和相互关系、以及逻辑分区/集成选择,以便提供对本发明的更透彻理解。然而,本领域的技术人员将理解,可以在没有这种具体细节的情况下实践本发明。在其他情况下,为了不模糊本发明,未详细示出控制结构、门级电路和完整的软件指令序列。本领域普通技术人员通过所包括的描述将能够实现适当的功能而无需过度的实验。

在说明书中提到“一个实施例”、“实施例”、“示例实施例”等表明所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以不必包括该特定的特征、结构或特性。而且,这样的短语不一定指代相同的实施例。进一步地,当结合实施例描述特定的特征、结构或特性时,认为结合其他实施例(无论是否明确描述)影响这种特征、结构或特性是本领域技术人员公知的。

本文可以使用带有虚线边框(例如,大虚线、小虚线、点划线、和点)的带括号的文本和框来说明向本发明的实施例添加附加特征的可选操作。然而,这种注释不应该被认为意味着这些是仅有的选项或可选的操作,和/或在本发明的某些实施例中,带有实线边框的框不是可选的。

在下面的描述和权利要求中,可以使用术语“耦合”和“连接”及其衍生词。应该理解,这些术语并不旨在作为彼此的同义词。“耦合”被用于表明彼此可以或可以不直接物理或电气接触的两个或更多个元素可以相互协作或交互。“连接”被用于表明在彼此耦合的两个或更多个元素之间建立通信。

区块链系统是用于构建、运行和部署分布式账本的平台。分布式账本永久并以可验证的方式记录两方之间发生的交易的数字记录。分布式账本无需中心机构或实现即可维护。分布式账本被称为区块链数据库,其包括使用密码学被链接和保护的区块。

图1示出了根据一些实施例的其中可以使用智能合约管理基于云的服务的示例性基于云的基础设施100的框图。示例性的基于云的架构可以包括被设置在云运营商网络106中的一个或多个数据中心108,其可以被配置为根据合适的服务级别协议、服务管理合约等向多个租户(即,多租户)提供各种资源和服务。

为了本公开的目的,租户可以被理解为期望向云运营商或提供商登记以在特定认证/授权凭证、特权、约束、和/或基于策略的业务规则下访问特定的一组资源/服务的个人、组织、业务实体、或一组用户。

作为说明,图1中例示的多个租户实体102a至102n可以包括公司、商业或政府组织、私人或一群人,他们可以经由被设置在有线或无线网络环境中的租户驻地中的一个或多个电子设备来请求和消费由基于云的数据中心108托管的一个或多个服务110a-m。每个租户102a-n可以具有一个或多个用户104a-104k、104b和104n,这些用户可以使用租户驻地中的电子设备来请求和访问数据中心108的一个或多个服务。用户104可以是组织的雇员、私人、组织的客户等。每个用户可以具有不同级别的访问权限,以访问服务110a-m中的一个或多个。在一些实施例中,通过合约账户在数据中心108中表示租户和服务。这些账户由租户和服务管理系统(tsms)113通过区块链平台118记录在区块链数据库119中。对于租户,每个账户可以指定租户的身份(例如,用租户的唯一标识(例如,租户的公钥和联系信息(例如电子邮件地址、电话号码等)))和用于在使用一项或多项服务后进行结算的计费凭证。

这样,示例租户实体102a-102n可以跨越各种类型的业务和行业,并且可以消费一个或多个资源/服务110a-m,其包括但不限于云存储资源、处理器计算资源、网络带宽资源、负载平衡服务、虚拟化网络基础设施资源、软件即服务(saas)服务、平台即服务(paas)服务、基础设施即服务(iaas)服务、流媒体服务、语音电话/voip服务、以及一个或多个内联服务(例如,深层分组检查(dpi)服务、病毒扫描(vs)服务、入侵检测和防御(idp)服务、防火墙(fw)过滤服务、以及网络地址转换(nat)服务等)。每个服务在数据中心108中经由合约账户来表示。服务账户由tsms113通过区块链平台118记录在区块链数据库119中。每个服务账户指定服务的标识。服务的标识包括在注册时针对该服务生成的唯一标识符。服务具有唯一的基于非对称加密方案定义的加密私钥/公钥对。服务账户可以进一步指定服务的名称(例如,采用人类可读格式的名称)、用于在租户使用一项或多项服务后进行结算的计费凭证、以及一个或多个人的联系信息(例如,服务的所有者、服务的管理员等)。在一些实施例中,服务可在某些应用中用它的加密公钥来标识,而在其他应用中用另一标识符来标识。例如,服务的加密公钥可以用于在区块链数据库119内标识服务(通过区块链平台118操作的)。在另一个示例中,基于顶级命名方案定义的与服务的加密公钥不同的服务的名称可以用于唯一地标识服务以用于使用跟踪和计费。服务110a-m中的每一个服务包括服务管理器(sm),其可操作以与tsms113通信以执行与服务的管理有关的管理任务。例如,sm(例如,sm111a)可操作为注册服务,并处理租户登记和租户登录。广泛地说,采用多租户架构,数据中心108可被布置为向每个租户提供资源/服务的专用或可配置份额,包括它的数据、配置、用户管理、租户个人功能以及诸如安全、计费等的特性。

在宏级别,数据中心108可以在多个节点的分层互连系统中实现,该系统包括被设置在租户驻地设备或订户终端站可以对其进行安全的互联网访问的广域骨干网(例如ip或下一代网络(ngn))中的适当的计算、存储和网络单元。在一个实施例中,租户驻地可以有它自己的计算资源,该计算资源在逻辑上与基于云的服务110分离。在另一种布置中,可以通过适当的安全套接字层(ssl)或ipsec虚拟专用网(vpn)连接来远程访问租户的私有云。不管特定的多租户架构如何,都可以基于多层分层网络模型来组织示例数据中心108,该多层分层网络模型通常可以包括三层分层结构:核心层(通常特征在于高冗余度和带宽容量,针对高可用性和性能而优化的)、特征在于高度的高带宽端口密度容量(针对业务分发和链路扇出(fan-out)能力以访问层交换机而优化的)的汇聚层、以及用于将主机/服务器节点连接到网络基础设施的接入层。

从功能模型的角度来看,示例性数据中心108可以包括以下层:(i)网络层、(ii)服务层、(iii)计算层、(iv)存储层、和(v)管理层。技术人员将认识到,关于服务层,在常规的数据中心服务层和基于云的数据中心服务层之间存在差异,因为基于云的数据中心服务层的功能参考模型可被构建以用于例如通过包括硬件和软件资源的物理资源的逻辑抽象来在每租户级别支持l4-l7服务的应用。即使提供了l4-l7集成服务,基于云的数据中心服务层也可被配置为实现集中式服务,该集中式服务在应用可广泛适用于一系列租户(或租户驻地网络内的不同工作组)的策略时可能更为有用。数据中心108的示例管理层可以被构建为用于支持和管理整个多租户架构的一组逻辑、功能和结构资源,包括域元素管理系统以及高级服务编排系统,其优选地被配置为执行与存储、计算和网络资源有关的各种数据中心管理功能,包括允许更多动态资源分配和自动化流程(即,实例化管理或租户用户门户、服务目录、工作流自动化、租户生命周期管理、编写智能合约等)的元素。在一个实施例中,包括服务访问授权管理器(saam)112和租户认证管理器(tam)114的租户和服务管理系统(tsms)113因此可被实现为数据中心108的“超集”或“后端”功能,其与出于如将在下面进一步详细描述的本发明的示例实施例的目的被配置为服务多个租户102a至102n的托管资源/服务110有关。

数据中心108包括tsms113和区块链平台118。tsms113包括服务访问授权管理器112和租户认证管理器114。tsms113(包括服务访问授权管理器112和租户认证管理器114)可操作以开放通信接口(例如,使用通过超文本传输协议(http)请求制定的表示性状态传输(rest)应用编程接口(api)),以供租户102a-n和/或服务110a-m用于登记/注册、请求和获得对服务110a-m中的一个或多个的访问,以及跟踪租户和/或服务对这些服务的使用。服务访问授权管理器112提供用于授权租户和服务在确定的时间段内访问服务的特定服务产品(serviceoffer)的机制。租户认证管理器114可操作以识别租户,并认证特定的通信实体对应于先前与系统建立了标识的租户。区块链平台118包括用于存储和记录服务与tsms113之间的智能委托合约以及服务与请求者之间的转委托(sub-delegation)智能合约的区块链数据库119。虽然区块链平台118被示为是数据中心108的一部分,但是在一些实施例中,区块链平台118可以位于与数据中心108通信耦合的一个或多个其他数据中心中。区块链数据库119是在多个网络设备上实现的许可分布式账本。

在一些实施例中,数据中心108可以包括发布/订阅系统115,该发布/订阅系统115使数据中心108的不同组件能够经由发布/订阅方案进行通信。发布/订阅系统115(以下也称为pub/sub系统115)允许发布者(例如,服务110a、tsms113)创建主题并将消息发送给该主题。数据中心108的其他组件(例如,其他服务110b-m、tsms113、租户102a-n)可以订阅该主题以获得由发布者发布给该主题的更新/消息。在一些实施例中,消息被保持在消息存储器中,直到它们被递送并被订阅者确认为止。发布/订阅系统115将消息分别从主题转发给它的所有订阅。每个订阅通过pub/sub将消息推送给订阅者选择的端点或者通过订阅者从服务拉取消息来接收消息。订阅者从它的订阅接收未决消息,并向发布/订阅系统115确认每个消息。

数据中心108可操作以基于被记录在许可分布式账本(例如,区块链)上的智能合约,通过区块链平台118实现对租户和/或服务的服务访问授权。服务访问授权管理器112可操作以针对特定用户类别和支付凭证类型生成定制智能委托合约,并将使用服务属性的授权委托给租户、转租户(sub-tenant)和其他服务。

在一些实施方式中,tsms113(包括服务访问授权管理器112和租户认证管理器114)可被构建在开源分布式账本和智能合约平台(例如,quorumtm)上。服务tsms113在开源分布式账本之上用作dapp(即,基于区块链的分布式应用)。它访问区块链数据库119,并与被存储在区块链数据库中的智能委托合约对象进行交互。在一些实施例中,tsms113在数据中心108中的服务器上运行。例如,数据中心108的特定服务器集群(机架、机架行等)中的每个服务器可以具有tsms113的实例以及在其上运行的区块链平台118的实例,从而形成区块链和租户/服务管理平台。在一些实施例中,数据中心实例管理机制可以用于将tsms113实例限制在特定服务器中,从而减少开销。

在下面的描述中,将通过示例的方式并出于简化下面的描述的目的来描述在tsms113、服务110a和请求者120(其可以是租户实体102a-n之一或是来自服务110b-m的服务)之间的操作。本领域普通技术人员将认识到,可以在数据中心108中的其他实体之间执行这些操作,而不脱离本发明的范围。

服务注册和全局配额更新

在一些实施例中,描述了一种在数据中心中用于管理多个用户对一个或多个服务的访问的方法和包括租户和服务管理系统(tsms)的服务器。tsms接收唯一标识服务的标识和由该服务提供的一组一个或多个资源的描述。tsms将服务与租户和服务管理系统之间的智能委托合约记录到区块链数据库中。智能委托合约包括服务的标识、租户和服务管理系统的标识、以及一组资源的描述。智能委托合约用服务的加密私钥和租户和服务管理系统的加密私钥来进行加密签名,其中,该服务的加密私钥是用于该服务的加密公钥-私钥对的一部分,而租户和服务管理系统的加密私钥是租户和服务管理系统的加密公钥-私钥对的一部分。在注册了服务(包括记录服务与tsms之间的智能委托合约)之后,tsms从请求者接收访问服务的请求;并至少部分地基于服务与租户和服务管理系统之间的智能委托合约,授权请求者访问服务。

图2a示出了根据一些实施例的用于服务注册过程的示例性操作的框图。tsms113可操作以能够实现一个或多个服务110a-m的注册以向租户102a-n和/或其他服务110b-m提供服务。在操作204,tsms113向tsms113注册服务110a。在以下描述中,tsms113内的租户认证管理器114执行图2a-b中tsms113的操作。在操作206a,tsms113从服务110a接收定义服务110a的一组参数。由服务110a发送的该组参数包括唯一标识该服务的标识。该标识可以包括用于该服务的一个或多个标识符。在一个实施例中,标识包括第一标识符,该第一标识符是服务的加密密钥。服务的加密密钥用于在区块链数据库119中唯一地标识服务110a。在一些实施例中,加密密钥也可以用于为了使用跟踪和计费的目的来标识服务110a。在其他实施例中,除了服务110a的加密密钥之外,标识还可以包括与服务的加密密钥不同的该服务的第二标识符(例如,采用顶级命名方案的服务的名称)。第二标识符可以用于在跟踪服务的使用并对用户的使用计费时唯一地标识服务。与第一标识符是来自针对服务生成的公/私密钥集中的公共加密密钥不同,第二标识符可以采用描述服务的人类可读格式。在一些实施例中,第二标识符可以采用非人类可读的任何其他类型的格式并且不同于用于在区块链数据库中标识服务的第一标识符。参数还包括由服务提供的一个或多个资源的描述。资源的描述包括定义所提供的资源的类型的一组属性。在一些实施例中,属性包括全局配额,该全局配额定义所有用户在时间间隔期间可以使用的资源的最大量。在一些实施例中,参数还包括针对服务110a的回调(callback)url。

在操作206a,tsms113在区块链数据库中记录用于服务的服务账户。在一些实施例中,该操作可以在另一时间(在接收一组参数之前)并且与操作206c分开执行。在其他实施例中,在操作206a接收到参数之后,执行操作206b和206c。在操作206c,tsms113记录用于由服务提供的资源的全局配额的智能委托合约。在服务110a和tsms113之间建立智能委托合约。智能委托合约通过区块链平台118被存储在区块链数据库119中,并使tsms113能够将服务的使用权限转委托给一个或多个请求者(例如,租户102a-n和/或服务110b-m)。换句话说,智能委托合约使tsms113能够基于在服务110a与tsms113之间建立的智能委托合约通过将权限转委托给一个或多个请求者来提供和授权对服务110a的访问。

智能委托合约包括服务的标识、租户和服务管理系统的标识、以及一组资源的描述,并且智能委托合约用服务的私钥以及租户和服务管理系统的私钥来被加密签名。服务的标识包括在区块链数据库内标识服务的第一标识符。例如,第一标识符可以是来自与服务相关联的唯一的加密私钥和公钥对的公钥。租户和服务管理系统的标识在区块链数据库119内唯一标识tsms113。在一些实施例中,服务的标识包括采用人类可读格式的第二标识符。服务的第二标识符可用于跟踪服务的使用并对用户使用该服务计费。tsms113的标识是来自与服务相关联的唯一的加密私钥和公钥对的租户和服务管理系统的公钥。

在一些实施例中,除了向tsms113注册服务以外,在操作202a,服务110a在发布/订阅系统115中建立一个或多个主题。这些主题可用于跟踪和更新由服务110a提供的每个资源的全局配额。例如,当服务110a提供两个资源(例如,cpu和存储器)时,服务110a利用发布/订阅系统115针对每个资源建立主题。在一些实施例中,主题的创建(操作202a)可以在服务注册之前(即在操作204之前)执行。在这些实施例中,由tsms113在操作206a接收的参数还包括一个或多个发布(pub)/订阅(sub)主题。pub/sub主题使得能够跟踪服务110a所提供的每个资源的全局配额。基于发布/订阅系统115中将tsms113与服务管理器111a链接的消息总线,跟踪服务的全局配额。

在一些实施例中,在通过由tsms113提供的restapi登记服务时执行操作206a。服务110a提供以下信息作为javascript对象表示法(json)文档:

·在区块链上建立服务的标识的公钥

·服务的名称

·所提供的一组资源

·pub/sub主题,在该主题下,可以通过将租户和服务管理系统与服务管理器链接的消息总线来跟踪服务的使用。

服务注册过程还包括服务想要将资源的多少全局配额委托给tsms113以用于转委托给租户。在注册期间,服务首先在区块链上被注册为服务实体(操作206b),然后,tsms113在区块链上注册(操作206c)“委托”对象以用于从区块链上的服务实体到tsms113的许可,该委托对象是区块链上管理租户和服务的顶级合约对象。当租户和其他服务请求由服务提供的这种资源的许可时,tsms113将资源配额转委托给租户和其他服务。这种智能委托合约充当后续的服务的资源从tsms113到感兴趣的租户和服务的转委托链的根源。

图2b示出了根据一些实施例的用于服务注册过程的示例性操作的框图。在一些实施例中,服务可以周期性地发布(操作212)服务资源的属性(例如,针对资源类型的全局配额)的改变,以供tsms113使用更新配额。所发布的更新参数(例如,被更新的全局配额)由发布/订阅系统115接收。tsms113然后侦听这种发布消息,并在操作216相应地更新在区块链数据库119上的智能委托合约。当由服务提供的资源发生改变时,可以执行更新。例如,当附加容量被添加到服务时。例如,如果新服务器的集合上线,则服务110a的服务管理器111a将新的总/全局配额通过发布/订阅系统115推送给tsms113。发布/订阅机制的使用允许对由服务110a提供的服务发生更新和改变的有效管理。

在一些实施例中,如果新的全局配额被确定为低于针对服务资源的已委托权限,则服务可以在被允许降低被委托的全局配额之前选择它想要撤销的对租户和服务的委托。例如,如果多个服务器下线,则服务管理器111a可以因此减少全局配额,并且如果当前被委托的计算权限总和超过可用容量,则第一服务管理器111a在全局配额可被减少之前撤销这些委托中的一些。

下面描述的伪代码示出了可用于定义服务与tsms113之间的智能委托合约的示例性实施方式。json对象包括服务的第一标识符(“public_key”)、服务的第二标识符(“name”)、由服务提供的一组资源(“resources_jwt”)以及由服务发送的pub/sub主题和callback_url(“service_jwt”)。方法:post

端点:/services(由tsms开放)

由服务发送的负载:

采用以下格式的json对象

{

“public_key”:“0x….”,

“name”:“svcmgrcompute”,

“resources_jwt”:[<arrayofjwts>],

“service_jwt”:“<jwtwithpubsub_topicandcallback_url>”

}

“service_jwt”的json负载:

{

“pubsub_topic”:“svcmgrcompute/usage”,

“callback_url”:http://nefeleloadbalancedip/callback

}

用于服务管理器服务的资源类型的示例json负载:

在这里,示出了以数组“resource_jwt”提供的一种资源jwt的json负载。

服务资源类型

服务110a-m可以提供几种类型的服务资源。例如,虚拟机、对象存储、块存储、功能即服务(faas)可以是所提供的服务类型。每种资源类型可以由以下一个或多个参数来描述:

·字段“name(名称)”,类型string(字符串):资源类型的名称

·字段“simple_attributes(简单_属性)”,类型是对象数组,可选地为空:这些是静态的单值属性和它们的定义资源类型的值,并且采用对服务以及感兴趣的租户/服务(其会是服务的接收者)可理解的格式。这种属性可以表示限制(例如,用于虚拟机(vm)或进程的max_memory为2gb)

在一些实施例中,每个属性对象可以具有以下字段:

·字段“name”,类型string:属性的名称

·字段“value(值)”,类型string:属性的值

这种属性是静态的–也就是说,这种属性的值已由服务针对特定资源类型定义了。这表示服务基于不同的服务属性集束来制作(craft)不同的资源类型。这些属性允许服务向请求者提供多个服务产品。此外,静态属性不是可分配的-也就是说,没有许可者可以将这种属性的子集分配给转委托。例如,如果属性是用于vm或进程资源类型的最大存储器,并且许可者针对该属性具有2gb值,则它不能转委托1gb作为许可的一部分。

·字段“set_attributes(集合_属性)”,类型是对象数组,可选地为空:这是另一个属性数组,与上述类似,但是区别在于这些属性可以将“集合”作为值。如果请求者(租户或服务)具有针对资源类型的这种基于集合的属性的值集合s的权限许可(来自服务的智能委托合约),则请求者可以创建具有以s的子集作为值的该基于集合的属性的转委托。因此,这种属性在委托中的验证是基于集合包含(set-containment)的。这种属性的典型用法是表示诸如访问控制准许(例如,读取、写入、执行等)之类的方面。

在一些实施例中,每个集合属性可以具有以下字段:

·字段“name”,类型string:属性的名称

·字段“value”,类型是字符串数组:属性的值集合

·字段“dynamic(动态)”,类型boolean(布尔):是否动态(可变的)

·字段“metrics(度量)”,类型是对象数组:

资源类型可以提供对其使用的计量建模的一种或多种方式。度量可针对资源类型而被定义,并且可被建模为具有以下字段的对象:

·字段“name”,类型string:度量的名称。

·字段“unit(单位)”,类型string:计量的单位。

·字段“rate(费率)”,类型numeric(数字)(整数、浮点数等–json数字类型):度量的每个单位的定价,对于免费资源为零。

·字段“usage_publishing_interval(使用_发布_间隔)”,类型integer(整数):每个这样的时间间隔,服务或其关联的度量系统发布度量的使用值。

·字段“charging(计费)”,类型是对象,具有用于计费细节的这些字段:

·字段“currency(货币)”,类型string:表示发生计费的货币的少数所支持的字符串值之一。

·字段“charging_interval(计费_间隔)”,类型integer:每个这样的时间间隔(以秒为单位),针对已消耗了资源类型的任何被计量使用的每个租户/服务发生计费动作。针对服务资源的使用的计费是基于针对该资源类型记录的所有度量来计算的。

·字段“quota(配额)”,类型integer:这表示在委托中已由服务许可给被许可者的资源类型的总使用量的类型。当服务向tsms113许可这种资源类型的配额时,它表示该服务可以支持并因此可提供多少这种资源类型的总或全局配额(即,可分配容量)。如果tsms113进一步委托给感兴趣的租户/服务(即,请求者),或者如果是其他转委托,则这种配额表示有多少被许可给被许可者以使用。

如果服务不希望强加可分配容量或全局配额(例如,计算服务、或功能即服务),则可以将该字段留空,在这种情况下,没有相关联的委托/转委托具有任何配额本身-可适用的仅有限制则是在许可细节中该资源类型的属性字段中设置的限制,并且对使用按需计费。

以下是如何对由数据中心108中的服务110a-m提供的资源进行建模的一些示例。

第一示例可以是提供虚拟机(vm)服务的服务:

资源类型1:

资源类型2:

第二示例可以是提供云存储服务(即,对象存储服务)的服务:

资源类型1:

name=simple_store

metrics=[

{name=read_requests,unit=1000requests,rate=r1,…},

{name=write_requests,unit=1000requests,rate=r2,…},

{name=in_bandwidth,unit=gb,rate=r3,…},

…]

charging={currency=usd,charging_interval=3600}

//注意,针对该资源类型,服务没有规定配额。

第三示例可以是提供块存储服务的服务:

资源类型1:

name=gp_ssd

simple_attributes=[

{name=throughput_rate,value=x},

…]

metrics=[{name=storage_used,unit=gb_month,rate=r1,…},…]

charging={currency=usd,charging_interval=3600}

资源类型2:

另一示例可以是提供faas(lambda)的服务:

资源类型1:

注意,此处faas服务选择将它可以处理的总并发进程数量视为总可分配容量/配额,但这对以下事实有影响:如果服务避免了由于这种总容量承诺而带来的过度供应,那么如果按需定价,则它会亏本。替代地,服务可以过度供应以满足高峰需求,进行按需定价,并且没有可分配配额,而是通过在simple_attributes字段中具有限制类型属性max_concurrent_processes(最大_并发_进程)=1000来限制失控用户。取决于服务来选择不同的属性和向用户提供多种服务产品。

在一些实施例中,资源类型2可以是另一类型的lambda函数,具有不同的存储器/存储属性,或者仅以cpu秒而不是gb秒为单位来测量执行。

本领域的普通技术人员将认识到,上述的多个服务资源和属性仅是示例性的,并且本文描述的实施例不受这样的示例限制。在不脱离本发明的范围的情况下,不同服务可以提供其他类型的服务资源和属性。

租户登记和登录

图3a示出了根据一些实施例的用于租户登记的示例性操作的框图。租户经由其公钥登记到系统中。在登记后,租户登录系统并选择它所需的一组服务,如图3a-b所示。

图3a-b示出了根据一些实施例的用于授权对服务的访问的示例性操作的框图。在一些实施例中,图3a-3b的操作是在请求者尝试与数据中心108创建账户时或者替代地在尝试订阅服务110a时执行的。在以下描述中,tsms113内的服务访问授权管理器112执行tsms113的操作。服务访问授权管理器112将租户或服务的权限委托表示为类型为委托的智能合约(其在本文称为智能委托合约)。在一些实施例中,请求者120、服务访问授权管理器112和服务110a之间的通信可以是被制定为http消息的restapi消息。

在操作304,从服务110a接收一组服务产品。每个服务产品用服务110a的私钥来签名。服务产品可以包括定义要被提供的服务的服务属性的描述。例如,服务产品可以包括规定请求者可消耗的服务属性的最大量的配额。在一些实施例中,服务产品还可以包括用于服务属性的计费表,该计费表指示如何针对使用在服务产品中所指示的服务而对请求者进行计费。每个服务产品可以被格式化为与语言无关的文件格式,例如json文档。在不脱离本发明的范围的情况下,可以使用其他格式来定义服务产品。在一些实施例中,被发送到服务访问授权管理器112的服务产品可以取决于它们可被提供给的租户类型。

服务产品可以包括要被提供的服务类型以及用于该服务产品的计费表。例如,服务产品可以指定来自computeservice(计算服务)的针对最多5个虚拟机(vm)的权限许可,其中每一vm存储器的最大值为4gb,每一vmcpu时间的最大值为3600小时。vmcpu时间以小时为单位的计费是每12小时以每小时0.05美元的费率来进行的。本文描述的服务产品旨在仅作为示例,并且不应被认为是本发明的实施例的限制示例。在不脱离本发明的范围的情况下,可以定义几种类型的产品并将其发送给服务访问授权管理器112。

返回参考图3a,在一些实施例中,服务访问授权管理器112可以缓存(操作306)从服务110a接收到的用服务110a的私钥进行签名的服务的产品。在其他实施例中,在接收时使用该组服务产品而无需缓存它们。尽管在所示示例中,这些服务产品的接收(304)是在从请求者120接收到请求之前执行的,但是在其他实施例中,在从请求者120接收到访问服务110a的请求之后执行该操作。

在操作308,服务访问授权管理器112从请求者接收访问在数据中心108中托管的服务的请求。请求者与唯一的加密私钥和公钥对相关联。请求者可以是租户或来自服务110的服务。

在操作310,服务访问授权管理器112确定可由服务提供给请求者的一组一个或多个服务产品。在一个实施例中,确定一组服务产品包括从高速缓存中取回一组一个或多个服务产品。该组服务产品从该服务获得,并用该服务的私钥来签名(例如,通过操作304-306)。

在操作312,服务访问授权管理器112将由服务签名的该组服务产品发送给请求者120。在一些实施例中,服务访问授权管理器112可以显示(操作312)包括服务产品的图形用户界面(例如,网络浏览器上的网页)。请求者120选择这些产品中的一个(例如,用户可以通过在租户驻地中的电子设备上显示的网页从所提供的服务列表中选择期望服务)。在操作314,服务访问授权管理器112从请求者接收从该组服务产品中选择的服务产品。所选择的服务产品用请求者的私钥和服务110a的私钥来进行加密签名。签名被请求者存储,并用于访问服务110a。在一些实施例中,由于服务产品被服务和请求者的密钥签名而产生的签名可被放入jsonweb令牌(jwt)中,该jwt是包含该服务产品的json文档的基础64编码副本。包括签名的jwt由请求者存储,并且用于访问服务110a。

图3b示出了根据一些实施例的被执行以进一步使能服务访问授权的操作的框图。一旦tsms113从请求者120接收到所选择的服务产品,在操作316,它将智能委托合约记录到区块链数据库中。智能委托合约包括服务的标识、请求者的标识、以及用请求者的私钥和服务的私钥进行加密签名的所选择的服务产品。智能委托合约源自在服务110a和tsms113之间建立的初始合约的转委托。tsms113基于该初始合约来将访问服务110a的权限转委托给请求者120。在操作318,tsms113将请求者120与服务110a之间的智能委托合约发送给服务110a。服务110a存储委托合约的副本。在一些实施例中,服务110a执行与由请求者120选择的服务有关的初始化任务。在其他实施例中,在请求者120访问服务110a的稍后阶段执行该初始化(例如,在图3c的操作330)。在一些实施例中,在操作322,服务110a发送该服务可被请求者访问的确认。在一些实施例中,该确认在执行了操作321a和321b之后被发送,而在其他实施例中,跳过这些操作。在操作321a,服务110a针对请求者120建立pub/sub主题。这些主题允许请求者120在服务110a发布任何更新时从发布/订阅系统115获得与该服务有关的消息。在操作321b,在建立了主题后,发布/订阅系统115发送订阅确认。在操作324,tsms113向请求者120发送该服务可基于所选择的服务产品和令牌(jwt)被访问的确认。这是对请求者向服务110a登记并且现在可以请求访问该服务的确认。在一些实施例中,tsms113还可以执行操作323和325。在操作323,tsms113订阅针对请求者120和服务110a的使用更新以接收关于由服务提供给请求者的服务的任何更新。在操作325,发布/订阅系统115发送订阅的确认。

图3c示出了根据一些实施例的用于基于请求者与服务之间的智能委托合约来访问服务的示例性操作。在接收到服务可被访问的确认之后,在操作330,请求者发送访问服务的请求。该请求包括请求者的标识(例如,请求者的公钥)和至少部分地基于用服务的私钥和请求者的私钥来签名的服务产品来确定的令牌。服务产品是由请求者和服务通过如关于图3a-b所描述的机制来商定的。例如,令牌是包括服务产品的签名的jwt,其中已经用请求者的私钥和服务的私钥两者对该服务产品进行了签名。

在操作332,服务110a确定请求者是否被授权访问服务110a。例如,可以基于在请求中接收到的令牌来执行该确定(操作333)。在确定对服务的访问未被授权时,在操作334,服务110a重定向请求者以再次登录以获得对服务的访问。在这种情况下,请求者120可以将请求重定向到tsms113,并且如果被授权,则获得用于访问服务110a的新令牌(操作336-342)。在操作336,请求者120发送访问服务的请求和原始令牌。在操作337,tsms113基于智能委托合约来确定访问是否可被授权。例如,tsms113可以确定智能委托合约是否仍然有效(即,它还没有期满、它还没有失效、它还没有被撤销等)。当确定智能委托合约仍然有效时,tsms113基于在智能委托合约中定义的服务产品并通过在操作338发送包括新令牌的确认来向请求者许可访问。在操作340,请求者120发送访问服务110a的请求和新令牌。在确定新令牌有效之后,在操作342,服务110a许可访问。在操作344,服务110a可以向请求者120发送访问被授权的确认。在一些实施例中,对服务的访问被提供而无需发送确认。在一些实施例中,在操作332处,服务110a确定请求者120被授权访问服务110a(例如,令牌是有效的),操作336-442被跳过,流程移至操作342,在该操作,服务110a向请求者120许可访问。在操作346,请求者开始使用服务。

基于智能合约架构的能够创建和记录服务的请求者与被提供的服务之间的智能委托合约的服务访问认证技术的使用允许增加的可伸缩性和弹性,并能够使多方(例如,云基础设施、在云基础设施之上构建的服务提供商、租户(例如组织)和转租户(例如员工、客户))参与复杂的商业生态系统。通过让双方使用他们的私有加密密钥来签名服务产品,能够实现对合约的条款的进一步认证。

通过依赖存储合约的区块链数据库的不可变方面,本文的实施例提供了优于其中集中式数据库可存储访问信息的其他技术的显著优点。智能委托合约的不可变性意味着在发生纠纷的情况下,可以由第三方来审计区块链数据库以确定实际上发生了什么以及在服务被请求时请求者与服务之间达成了什么约定。监管者、审计者和调解员可被准许对区块链数据库进行只读访问,以便监控和审计活动。受严格监管的行业,例如金融服务和医疗保健,尤其受益于这种不可变系统。此外,区块链特别适合多方形成他们在某些情况下合作而在其他情况下竞争的商业生态系统的情况。在一些实施例中,服务访问认证管理器由云提供商来运行,作为云管理系统的一部分。

一旦对服务的访问被许可给请求者并且请求者成为服务的接收者,则该访问可被撤销。为了取消对服务的访问,在请求者和服务之间创建的智能委托合约被撤销或暂停。在两种情况下,智能委托合约可被暂停或撤销:1)有效时间段期满(即,当期满时间到达时),或2)通过如在委托链中指示的撤销者的干预。由于多种原因(例如,缺少资源、计费交易失败等),撤销者可以确定撤销或暂停服务。在一些实施例中,tsms113可以在撤销智能委托合约之前暂停它。在这些实施例中,暂停可以允许请求者(例如,租户或服务所有者)有机会在完全丧失许可的权限之前与服务提供商进行恢复程序。在其他示例中,服务访问授权管理器112可以直接撤销智能委托合约,而无需先暂停它。

在pct/ib2018/050713中进一步详细描述了租户权限委托、暂停和撤销。

租户服务属性使用跟踪

图4示出了根据一些实施例的用于租户服务属性使用跟踪的示例性操作的框图。服务和租户发布可消耗属性(即资源)的使用,以使得tsms113可以启用计费。图4示出了向请求者120分配第一服务资源、随后分配第二服务资源的示例。在操作402,服务110a将第一服务资源分配给请求者120。在分配了第一服务资源后,在操作404,服务110a将第一服务资源的第一使用信息(sa1)发布给发布/订阅系统115。第一使用信息包括关于所分配的资源类型以及由请求者120使用的配额的信息。例如,第一使用信息可以是针对请求者120分配的虚拟机数量。第一使用信息与服务110a的标识符和请求者120的标识符(例如,分别是服务110a的公钥和请求者120的公钥)相关联。在操作406,发布/订阅系统115将第一使用信息推送给tsms113。tsms113将第一使用信息与服务110a和请求者120的标识符相关联地记录到区块链数据库中。

在操作412,服务110a将第二服务资源分配给请求者120。在分配了第二服务资源后,在操作414,服务110a将第二服务资源的第二使用信息(sa2)发布给发布/订阅系统115。第二使用信息包括关于所分配的资源类型以及由请求者120使用的配额的信息。例如,第二使用信息可以是针对请求者120分配的存储量。第二使用信息与服务110a的标识符和请求者120的标识符(例如,分别是服务110a的公钥和请求者120的公钥)相关联。在操作416,发布/订阅系统115将第二使用信息推送给tsms113。tsms113将第二使用信息与服务110a和请求者120的标识符相关联地记录到区块链数据库119中。

tsms113从服务110a接收使用信息,并将该信息与用户(例如,请求者120)的标识符和服务的标识符相关联地记录到区块链数据库中。tsms113还记录服务类型(其是“使用”)和所使用的服务资源量。在一些实施例中,服务资源量可以是针对确定的时间段的物理或虚拟资源数量和/或资源使用。在一些实施例中,使用信息被存储在区块链数据库中的使用对象中。使用对象包括请求者120和服务110a的标识符以及所分配的服务资源的属性。因此,tsms113能够跟踪区块链数据库119上的服务使用。当服务确定具有被授权的智能委托合约的租户或服务对其资源的使用时,tsms113接收该信息并在区块链数据库上的使用对象中填充使用信息。

租户配额更新

图5示出了根据一些实施例的用于处理来自租户的配额更新的过程的示例性操作的框图。在操作530,tsms113从请求者接收对服务110a的更新的请求。例如,请求者120可以请求增加服务的给定资源的配额(例如,附加的vm、附加的存储等)或者请求延长针对使用资源所分配的时间等。tsms113确定更新是否可被许可。在一些实施例中,tsms113可以通过向服务110a发送该请求并从服务110a获得对更新的确认或拒绝来确定更新是否可被许可。在其他实施例中,tsms113可以通过查找先前从服务110a获得的关于每个请求者的更新策略的信息来确定更新可被许可。例如,tsms113可以检查是否有足够的配额可用于满足该请求。当tsms113确定更新可被许可时,在操作534,它在区块链数据库中基于所请求的更新来用新的服务属性更新智能委托合约。tsms113更新请求者(例如,租户或服务)的权限委托,并在操作536将所更新的委托合约发送给服务110a。相应地,tsms113通过在操作538发送对服务110a的访问已经基于所请求的服务资源更新而被更新了的确认来通知请求者。tsms113使服务110a将所更新的配额提供给租户。

下文描述的restapi提供可由服务110a用于开放的api的非限制性示例,以使得tsms113可以向服务110a发送被许可给请求者的服务资源更新。

restapi的示例(被服务开放的端点):

方法:post

端点:<service-defined>

由tsms提供的负载:

采用以下格式的json对象

使用计费

在一个实施例中,tsms113基于由租户在建立账户时提供的凭证来联系外部结算处理器。在发生错误的情况下,tsms113可以联系服务并允许服务采取某些措施,例如暂停进程的执行并禁止其他进程开始或中断对磁盘卷的访问。然后,tsms113将撤销租户的权限委托,直到租户有机会与服务提供商进行调解过程为止,届时将恢复权限委托。在替代实施例中,服务可以通过直接与结算系统签约来执行计费操作。在该实施例中,如果发生计费错误,则服务向tsms113发送消息以限制租户权限委托。在所有实施例中,服务110a或tsms113将使用信息和服务的用户的计费凭证传送给结算系统117。结算系统117基于该信息和凭证来执行计费操作。在一些实施例中,结算系统117是在数据中心108外部的实体。例如,银行机构、接受和处理加密货币的系统、以及信用卡提供商可以是可被使用的结算系统117的示例。租户或服务可在建立它们的账户时提供各种计费凭证,结算通过后端支付处理器来进行。

图6a示出了根据一些实施例的基于第一场景的用于使用计费过程的第一组示例性操作的框图。图6a的操作示出了第一场景(a),其中tsms113与结算系统117通信以启用计费。在操作602,tsms113发送针对预定计费间隔的使用信息。该信息由tsms113基于针对请求者而跟踪的使用来从区块链数据库119获得。例如,使用信息可以是请求者120在时间间隔期间消耗的资源量(vm的数量、存储器大小等)。时间间隔可以基于在用户注册服务时针对用户的账户而建立的计费表来确定。计费表可以是每月、每周、或以请求者和服务110a商定的任何其他间隔。在操作604,在接收到使用信息时,结算系统117基于使用信息和计费凭证来对请求者120计费。例如,加密货币账户可被借记,请求者120的银行账户可被借记,或者用与用户信息对应的量对信用卡计费。在操作606,结算系统117发送指示计费是否成功的消息。如果计费成功,则消息包括对所进行的支付的确认。如果计费不成功,则消息包括错误。

在接收到消息后,如果计费不成功,则tsms113在区块链数据库119中暂停服务110a与请求者120之间的智能委托合约。tsms113还在操作610向服务110a发送所更新的智能委托合约以向服务110a通知该服务应当被暂停直到计费问题被解决为止。在操作612,服务110a暂停被提供给请求者120的服务,并将所缓存的智能委托合约更新为暂停。在一些实施例中,智能委托合约保持被暂停,直到计费问题被解决并且从tsms113接收到指示服务可恢复的新消息为止。当请求者的权限委托被暂停时,向请求者提供与服务提供商进行调解过程的机会(例如,通过tsms113输入新的计费凭证),届时权限委托将被恢复。例如,可以通过电子邮件、文本消息、通知、或通过电话来通知请求者其结算存在问题,并且请求者被请求与服务提供商进行补救。在一些实施例中,如果在预定的时间段内仍未解决计费问题,则可以撤销智能委托合约,并且可以请求用户再次注册该服务以访问该服务。

图6b示出了根据一些实施例的基于第二场景的用于使用计费过程的示例性操作的框图。图6b的操作示出了第二场景(b),其中,服务110a代替方案a中的情况的tsms113来与结算系统117进行通信以启用计费。在操作622,tsms113将针对预定计费间隔的使用信息发送给服务110a。该信息由tsms113基于针对请求者而跟踪的使用来从区块链数据库119获得。例如,使用信息可以是请求者120在时间间隔期间消耗的资源量(vm的数量、存储器大小等)。时间间隔可以基于在用户注册服务时针对用户的账户建立的计费表来确定。计费表可以是每月、每周、或以请求者和服务110a商定的任何其他间隔。在操作624,服务110a将针对预定计费间隔的使用信息发送给结算系统117。

在操作626,在接收到使用信息后,结算系统117基于使用信息和计费凭证对请求者120进行计费。例如,加密货币账户可被借记,请求者120的银行账户可被借记,或者用与用户信息相对应的量对信用卡计费。在操作628,结算系统117发送指示计费是否成功的消息。如果计费成功,则消息包括对所进行的支付的确认。如果计费不成功,则消息包括错误。

在接收到消息后,如果计费不成功,则服务110a暂停针对请求者120的服务(操作630),并向tsms113发送暂停被存储在区块链数据库中的智能委托合约的请求(操作632)。在操作633,tsms113暂停服务110a与请求者120之间的智能委托合约,并将该暂停记录在区块链数据库119中。在操作634,tsms113还将所更新的智能委托合约发送给服务110a,以向服务110a通知智能委托合约被暂停直到计费问题被解决为止。例如,可以通过电子邮件、文本消息、通知、或通过电话来通知请求者其结算存在问题,并且请求者被请求与服务提供商进行补救。在一些实施例中,智能委托合约保持暂停,直到计费问题被解决并且从tsms113接收到指示服务可以恢复的新消息为止。当请求者的权限委托被暂停时,向请求者提供与服务提供商进行调解过程的机会(例如,通过tsms113输入新的计费凭证),届时权限委托将被恢复。在一些实施例中,如果在预定的时间段内未解决计费问题,则可以撤销智能委托合约,并可以请求用户再次注册该服务以访问该服务。

在场景a和场景b的每一个中,tsms113可以周期性地查找用户和服务的未结算计费记录,并通过直接与结算系统117通信或者通过使能服务110a与结算系统117进行通信来调用计费过程。

在一些实施例中,可以在计费系统中利用以下solidity智能合约类:

1.使用类

使用类提供了一种实例化跟踪某一服务属性使用的合约对象的方式。使用类包括属性、该属性的使用量、以及最后记录该量的日期。

2.凭证接口类

凭证超类提供了用于对计费凭证建模的类。特定凭证类型应对其子类化,并用凭证特定的信息填充该子类并实现功能。例如,信用卡凭证可将卡号放入string(credential)中,但是在子类变量中具有到期日期、所有者和ccv号。event(callprocessor)用于调出支付处理器。它可以是charge()函数的最后一行。如果凭证是敏感的,则它可在被放入区块链时被加密,并在实现事件处理的javascript或python代码被调用时在使用前被解密。

3.可计费

可计费实现计费记录。可计费包含使用对象数组和具有对使用计费的凭证的凭证对象,其中,对象数组中的对象被填充有服务的可计费属性。

将参考其他附图的示例性实施例描述流程图中的操作。然而,应当理解,流程图的操作可以由本发明的除了参考其他附图所讨论的那些实施例以外的实施例来执行,并且参考这些其他附图所讨论的本发明的实施例可以执行与参考流程图所讨论的那些操作不同的操作。

图7示出了根据一些实施例的由数据中心的租户和服务管理系统执行的用于管理对一个或多个服务的访问的示例性操作的流程图。在操作702,tsms113接收唯一标识服务的标识以及由该服务提供的一组一个或多个资源的描述。在一些实施例中,标识可以包括用于服务的一个或多个标识符。在一个实施例中,标识包括第一标识符,该第一标识符是服务的加密密钥。服务的加密密钥用于在区块链数据库119中唯一地标识服务110a。在一些实施例中,加密密钥也可以用于为了使用跟踪和计费的目的来标识服务110a。在其他实施例中,除了服务110a的加密密钥之外,标识还可以包括与服务的加密密钥不同的服务的第二标识符(例如,采用顶级命名方案的服务的名称)。第二标识符可以用于在跟踪服务的使用并对用户的使用计费时唯一地标识服务。与第一标识符是来自针对服务生成的公/私密钥集合中的公共加密密钥不同,第二标识符可以是描述服务的人类可读格式。在一些实施例中,第二标识符可以采用非人类可读的任何其他类型的格式,并且不同于用于在区块链数据库中标识服务的第一标识符。

在操作704,tsms113将服务与租户和服务管理系统之间的智能委托合约记录到区块链数据库中,其中,智能委托合约包括服务的标识、租户和服务管理系统的标识、以及一组资源的描述,并且智能委托合约用服务的加密私钥和租户和服务管理系统的加密私钥进行加密签名,其中,服务的加密私钥是用于该服务的加密公钥-私钥对的一部分,租户和服务管理系统的加密私钥是用于该租户和服务管理系统的加密公钥-私钥对的一部分。然后,流程移至操作706,在该处,tsms113从请求者接收访问服务的请求。在操作708,至少部分地基于服务与租户和服务管理系统之间的智能委托合约,tsms113授权请求者访问服务。例如,tsms113可以基于图3a-c中描述的操作来授权请求者访问服务。

图8示出了根据一些实施例的由tsms执行的用于获取服务的更新的操作的流程图。在操作802,tsms113订阅用于获取对一组资源的更新的主题。tsms113可以通过与发布/订阅系统(例如,系统115)进行通信来订阅主题,诸如在图2a的操作208a和图3b的操作323中。在操作804,tsms113基于主题在服务发布更新之后接收对来自一组资源的资源的至少一个属性的更新。例如,如图2b的操作214所示,tsms113可以接收服务资源的被更新的属性。

图9示出了根据一些实施例的用于跟踪请求者对服务的使用的示例性操作的流程图。在请求者访问服务之后,在操作902中,tsms113在区块链数据库中记录指示由请求者使用的该服务的一个或多个资源的使用信息。在一些实施例中,资源使用跟踪如参考图4所描述地被执行。在一些实施例中,在操作904,tsms113可以发送使用信息和请求者120的计费凭证,以对请求者就该服务的使用进行计费。可以通过以下两种场景中的至少一种来执行对服务使用的计费:场景a中的操作906-910,和场景b中的操作912-914。

在操作906,tsms113接收指示计费是否成功的消息。响应于确定计费不成功,在操作908,tsms113暂停区块链数据库中的智能委托合约;在操作910,tsms113将被暂停的智能委托合约发送给服务,使得服务暂停对请求者的访问,直到计费成功为止。

替代地,在操作912,作为不成功的计费操作的结果,tsms113从服务接收暂停智能委托合约的请求;并且在操作914,暂停智能委托合约,并将该暂停记录在区块链数据库中,直到计费成功。

图10示出了根据一些实施例的用于更新针对请求者的服务的示例性操作的流程图。例如,可以如参考图5所描述的那样执行流程图的操作。在操作1002,tsms113从请求者120接收对服务的更新的请求。请求者120可以向服务110a请求附加资源(例如,增加所分配的vm数量、增加所需的存储量、或处理资源等)。在操作1004,tsms113确定服务的更新是否可被许可给请求者。tsms113可以查找关于可被分配给每个请求者的配额的本地信息,或者替代地可以与服务110a进行通信,以确定附加资源可被许可给请求者120。响应于确定更新可被许可,tsms113在区块链数据库中记录(操作1006)基于所请求的更新而用新的服务资源属性更新的智能委托合约。

相对于集中式数据库,使用智能合约以使能服务注册、服务访问跟踪、和对服务使用计费提供了多个优点。本文描述的实施例使得能够创建和记录服务与云数据中心的智能委托合约以及该合约被转委托给服务的请求者,并允许增加可伸缩性和弹性。实施例使得多方(例如,云基础设施、在云基础设施之上构建的服务提供商、租户(例如组织)、和转租户(例如员工、客户))能够参与复杂的商业生态系统。本文的实施例使得能够细粒度地跟踪租户的服务使用,包括根据该使用对租户计费。可以根据租户请求来执行租户配额更新。

通过依赖存储合约的区块链数据库的不可变方面,本文中的实施例提供了优于其中集中式数据库存储访问信息的其他技术的显著优点。智能委托合约的不可变性意味着在发生纠纷的情况下,可以由第三方来审计区块链数据库以确定所发生的以及在服务被请求时在请求者与服务之间商定的一系列动作和事件。监管者、审计师和调解员可被准许对区块链数据库进行只读访问,以便监控和审计活动。受严格监管的行业,例如金融服务和医疗保健服务,尤其受益于这种不可变系统。此外,本文中呈现的实施例特别适合于其中多方形成他们在某些情况下合作而在其他情况下竞争的商业生态系统的情况。在一些实施例中,租户和服务管理系统由云提供商来运行,作为云管理系统的一部分。

电子设备使用机器可读介质(也称为计算机可读介质)(例如,机器可读存储介质(例如磁盘、光盘、固态驱动器、只读存储器(rom)、闪存设备、相变存储器)和机器可读传输介质(也称为载体)(例如,电信号、光信号、无线电信号、声音引号、或其他形式的传播信号-诸如载波、红外信号))来存储和发送(内部地和/或通过网络与其他电子设备)代码(其由软件指令组成,并且有时被称为计算机程序代码或计算机程序)和/或数据。因此,电子设备(例如,计算机)包括硬件和软件,例如一组一个或多个处理器(例如,其中处理器是微处理器、控制器、微控制器、中央处理单元、数字信号处理器、专用集成电路、现场可编程门阵列、其他电子电路、以上一个或多个的组合),其耦合到存储用于在该组处理器上执行的代码和/或存储数据的一个或多个机器可读存储介质。例如,电子设备可以包括包含代码的非易失性存储器,因为即使当电子设备被关闭(当电源被切断)时,非易失性存储器也可以保持代码/数据,并且当电子设备被开启时,要由该电子设备的处理器执行的那部分代码通常从较慢的非易失性存储器复制到该电子设备的易失性存储器(例如,动态随机存取存储器(dram)、静态随机存取存储器(sram))。典型的电子设备还包括一组或一个或多个物理网络接口(ni)以建立与其他电子设备的网络连接(以使用传播信号来发送和/或接收代码和/或数据)。例如,该组物理ni(或该组物理ni与执行代码的该组处理器相结合)可以执行任何格式化、编码或转换,以允许电子设备通过有线和/或无线连接都可以发送和接收数据。在一些实施例中,物理ni可以包括能够通过无线连接从其他电子设备接收数据和/或经由无线连接向其他设备发送数据的无线电电路。该无线电电路可以包括适合于射频通信的发射机、接收机和/或收发机。无线电电路可以将数字数据转换为具有适当参数(例如,频率、定时、信道、带宽等)的无线电信号。然后,无线电信号可以通过天线被发送给适当的接收者。在一些实施例中,该组物理ni可以包括网络接口控制器(nic),也被称为网络接口卡、网络适配器或局域网(lan)适配器。nic可以有助于将电子设备连接到其他电子设备,从而允许它们通过将电缆插入被连接到nic的物理端口来通过电线进行通信。可以使用软件、固件和/或硬件的不同组合来实现本发明的实施例的一个或多个部分。

网络设备(nd)是通信地互连网络上的其他电子设备(例如其他网络设备、终端用户设备)的电子设备。一些网络设备是“多服务网络设备”,其提供对多个网络功能(例如路由、桥接、交换、第2层聚合、会话边界控制、服务质量、和/或订户管理)的支持和/或提供对多个应用服务(例如数据、语音、和视频等)的支持。在上述实施例中,系统100的组件可以被耦合在网络中的一个或多个网络设备上实现。例如,每个服务、服务访问授权管理器112、租户认证管理器114、tsms113、发布/订阅系统115和区块链平台118可以在一个nd上实现或被分布在数据中心108的多个nd上。尽管区块链数据库119被示为区块链平台118的单个实体部分,但是本领域的普通技术人员将理解,区块链数据库是在多个网络设备上实现的许可分布式账本。类似地,租户102a-n可以是抽象组织,对于该抽象组织,可以通过使用一个或多个网络设备以访问数据中心108的资源和服务来实现对服务的访问。

图11a示出了根据本发明的一些实施例的示例性网络内的网络设备(nd)之间的连接以及nd的三个示例性实现。图11a示出nd1100a-h、以及它们经由1100a-1100b、1100b-1100c、1100c-1100d、1100d-1100e、1100e-1100f、1100f-1100g、和1100a-1100g之间以及1100h与1100a、1100c、1100d和1100g中的每一个之间的线的连接。这些nd是物理设备,并且这些nd之间的连接可以是无线的或有线的(通常称为链路)。从nd1100a、1100e和1100f伸出的附加线示出了这些nd充当网络的入口点和出口点(并且因此,这些nd有时被称为边缘nd;而其他nd可以被称为核心nd)。

图11a中的两个示例性nd实现是:1)使用定制专用集成电路(asic)和专用操作系统(os)的专用网络设备1102;以及2)使用公共现成(cots)处理器和标准os的通用网络设备1104。

专用网络设备1102包括网络硬件1110,其包括一组一个或多个处理器1112、转发资源1114(其通常包括一个或多个asic和/或网络处理器)、以及物理网络接口(ni)1116(通过其进行网络连接,例如nd1100a-h之间的连接所示的那些)、以及其中存储有网络软件1120的非暂时性机器可读存储介质1118。在操作期间,网络软件1120可以由网络硬件1110执行以实例化一组一个或多个网络软件实例1122。每一个网络软件实例1122以及网络硬件1110的执行该网络软件实例的那部分(无论是专用于该网络软件实例的硬件和/或由该网络软件实例与其他网络软件实例1122临时共享的硬件的时间片)形成单独的虚拟网络元件1130a-r。每个虚拟网络元件(vne)1130a-r包括控制通信和配置模块1132a-r(有时称为本地控制模块或控制通信模块)和转发表1134a-r,以使得给定虚拟网络元件(例如1130a)包括控制通信和配置模块(例如1132a)、一组一个或多个转发表(例如1134a)、以及网络硬件1110的执行虚拟网络元件(例如1130a)的那部分。

专用网络设备1102通常在物理上和/或逻辑上被认为包括:1)nd控制平面1124(有时被称为控制平面),其包括执行控制通信的处理器1112和配置模块1132a-r;以及2)nd转发平面1126(有时被称为转发平面、数据平面、或媒体平面),其包括利用转发表1134a-r的转发资源1114和物理ni1116。作为示例,如果nd是路由器(或正在实现路由功能),则nd控制平面1124(执行控制通信的处理器1112和配置模块1132a-r)通常负责参与控制数据(例如分组)将要如何被路由(例如,数据的下一跳和该数据的输出物理ni)并将该路由信息存储在转发表1134a-r中,并且nd转发平面1126负责在物理ni1116上接收该数据并基于转发表1134a-r将该数据转发出适当的物理ni1116。

图11b示出了根据本发明的一些实施例的实现专用网络设备1102的示例性方式。图11b示出了包括卡1138(通常是可热插拔的)的专用网络设备。虽然在一些实施例中,卡1138有两种类型(用作nd转发平面1126的一个或多个(有时被称为线卡),以及用于实现nd控制平面1124的一个或多个(有时被称为控制卡)),替代实施例可以将功能组合到单一卡上和/或包括附加卡类型(例如,一种附加卡类型被称为服务卡、资源卡、或多应用卡)。服务卡可以提供专门的处理(例如,第4层到第7层服务(例如,防火墙、互联网协议安全(ipsec)、安全套接字层(ssl)/传输层安全(tls)、入侵检测系统(ids)、对等体(p2p)、ip语音(voip)会话边界控制器、移动无线网关(网关通用分组无线电服务(gprs)支持节点(ggsn)、演进分组核心(epc)网关))。作为示例,服务卡可用于终止ipsec隧道并执行伴随认证和加密算法。这些卡通过一个或多个互连机制被耦合在一起,图示为背板1136(例如,耦合线卡的第一全网状和耦合所有卡的第二全网状)。

返回到图11a,通用网络设备1104包括硬件1140,其包括一组一个或多个处理器1142(其通常是cots处理器)、物理ni1146、以及其中存储有软件1150的非暂时性机器可读存储介质1148。在操作期间,处理器1142执行软件1150以实例化一组或多组一个或多个应用程序1164a-r。虽然一个实施例不实现虚拟化,但是替代实施例可以使用不同形式的虚拟化。例如,在一个这样的替代实施例中,虚拟化层1154表示操作系统的内核(或在基本操作系统上执行的shim(填充程序)),其允许创建被称为软件容器的多个实例1162a-r,每个实例可用于执行一组(或多组)应用程序1164a-r;其中,多个软件容器(也被称为虚拟化引擎、虚拟专用服务器、或jail)是用户空间(通常是虚拟内存空间),它们彼此分离并与运行操作系统的内核空间分开;以及其中,除非明确允许,否则在给定用户空间中运行的一组应用程序不能访问其他进程的内存。在另一个这样的替换实施例中,虚拟化层1154表示管理程序或在主机操作系统之上执行的管理程序(有时称为虚拟机监控器(vmm)),并且每组应用1164a-r在被称为在管理程序之上运行的虚拟机(其在某些情况下可被视为是紧密隔离的软件容器形式)的实例1162a-r内的客户操作系统上运行,客机操作系统和应用程序可能不知道它们在虚拟机上运行而不是在“裸机”主机电子设备上运行,或者通过半虚拟化,操作系统和/或应用程序可以知道存在虚拟化以用于优化目的。在其他替代实施例中,一个、一些或所有应用程序被实现为单核,其可以通过仅用应用程序直接编译提供该应用程序所需的特定os服务的一组有限的库(例如,来自包括os服务的驱动程序/库的库操作系统(libos))来生成。由于单核可被实现为直接在硬件1140上运行、直接在管理程序上运行(在这种情况下,单核有时被描述为在libos虚拟机内运行)、或者在软件容器中运行,实施例可以完全用直接在由虚拟化层1154表示的管理程序上运行的单核、在由实例1162a-r表示的软件容器内运行的单核、或者作为单核和上述技术的组合(例如,单核和虚拟机都直接在管理程序、单核和在不同的软件容器中运行的应用程序集合上运行)来实现。

一组或多组一个或多个应用程序1164a-r的实例化以及虚拟化(如果实现的话)被统称为软件实例1152。每组应用程序1164a-r、对应的虚拟化构造(例如实例1162a-r)(如果实现的话)、以及硬件1140的执行它们的那部分(无论是专用于该执行的硬件和/或临时被共享的硬件的时间片)形成单独的虚拟网络元件1160a-r。

虚拟网络元件1160a-r执行与虚拟网络元件1130a-r类似的功能,例如,类似于控制通信和配置模块1132a和转发表1134a(硬件1140的这种虚拟化有时被称为网络功能虚拟化(nfv))。因此,nfv可用于将许多网络设备类型合并到可以位于数据中心、nd和客户驻地设备(cpe)中的行业标准的高容量服务器硬件、物理交换机和物理存储上。虽然示出了本发明的实施例,其中每个实例1162a-r对应于一个vne1160a-r,但是替代实施例可以以更精细级别的粒度实现该对应关系(例如,线卡虚拟机虚拟化线卡、控制卡虚拟机虚拟化控制卡等);应当理解,本文中参考实例1162a-r与vne的对应关系描述的技术也适用于使用这种更精细级别的粒度和/或单核的实施例。

在某些实施例中,虚拟化层1154包括虚拟交换机,其提供与物理以太网交换机类似的转发服务。具体地,该虚拟交换机在实例1162a-r与nic1146之间以及可选地在实例1162a-r之间转发业务;此外,该虚拟交换机可以在由于策略而不被允许彼此通信的vne1160a-r之间实施网络隔离(例如,通过以虚拟局域网(vlan)为先)。

图11a中的第三示例性nd实现是混合网络设备1106,其包括在单个nd或nd内的单个卡中的定制asic/专用os和cots处理器/标准os。在这种混合网络设备的某些实施例中,平台vm(即,实现专用网络设备1102的功能的vm)可以为混合网络设备1106中存在的网络硬件提供半虚拟化。

例如,尽管附图中的流程图示出了由本发明的某些实施例执行的特定操作顺序,但是应该理解,这种顺序是示例性的(例如,替代实施例可以以不同顺序执行操作、组合某些操作、重叠某些操作等)。

尽管已经根据若干实施例描述了本发明,但是本领域技术人员将认识到,本发明不限于所描述的实施例,并且可以在所附权利要求的精神和范围内通过修改和变更来实践。因此,该描述被认为是说明性的而非限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1