提供微服务信息

阅读:349发布:2020-05-22

专利汇可以提供提供微服务信息专利检索,专利查询,专利分析的服务。并且本 发明 涉及提供微服务信息。在一个方面,本发明涉及一种提供微服务信息的方法,包括:利用第一 接口 接收微服务 请求 ,通过利用第一计算单元基于微服务请求查询微服务注册表来确定微服务信息,其中,微服务注册表存储在 分布式账本 中,并利用第一接口提供微服务信息。具体地,第一接口是微服务注册表或运行微服务注册表的 服务器 的接口。具体地,第一计算单元是微服务注册表或运行微服务注册表的服务器的计算单元。 发明人 认识到,通过使用存储在分布式账本中的微服务注册表,微服务注册表的本地副本可以用于基于微服务请求来确定微服务信息,从而带来低延迟和快速响应时间。同时,每个微服务注册表都可以用作所有其他微服务注册表的回退。,下面是提供微服务信息专利的具体信息内容。

1.一种提供微服务信息(MSI、MSI.1、...、MSI.7)的方法,包括:
-利用第一接口(S.IF)接收(REC-MSR)微服务请求(MSR),
其中,所述微服务请求(MSR)与第一微服务(MS1、...、MS4)有关,
-通过利用第一计算单元(S.CU)基于所述微服务请求(MSR)查询微服务数据库(MSDB)来确定(DET-MSI)所述微服务信息(MSI、MSI.1、...、MSI.7),
其中,所述微服务信息(MSI、MSI.1、...、MSI.7)基于所述第一微服务(MS1、...、M4)的实例(MS1.I1、...、MS4.I2),
其中,所述微服务数据库(MSDB)存储在分布式账本(LDG)中,
-利用所述第一接口(S.IF)提供(PROV-MSI)所述微服务信息(MSI、MSI.1、...、MSI.7)。
2.根据权利要求1所述的方法,其中,所述微服务请求(MSR)包括所述第一微服务(MS1、...、MS4)的标识符(MS1.ID、...、MS4.ID)。
3.根据权利要求1或2所述的方法,其中,所述微服务信息(MSI、MSI.1、...、MSI.7)包括所述第一微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2)的位置(MS1.I1.LOC、...、MS4.I2.LOC)。
4.根据前述权利要求之一所述的方法,其中,所述微服务请求(MSR)包括认证信息,所述方法还包括:
-利用所述第一计算单元(S.CU)基于所述认证信息来确定(DET-AUTH)访问所述第一微服务(MS1、...、MS4)和/或所述第一微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2)的授权,
其中,仅在肯定授权的情况下执行提供(PROV)所述微服务信息(MSI、MSI.1、...、MSI.7)的步骤。
5.根据前述权利要求之一所述的方法,还包括:
-利用所述第一接口(S.IF)接收(REC-RR)与第二微服务(MS1、...、MS4)有关的和/或与第二微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2)有关的注册请求和/或注销请求,-利用所述第一计算单元(S.CU)将所述第二微服务(MS1、...、MS4)和/或所述第二微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2)的注册和/或注销记录(DOC-RR)在所述分布式账本(LDG)中。
6.根据前述权利要求之一所述的方法,还包括:
-利用所述第一计算单元(S.CU)将一定数量的加密货币从第一帐户转移(TRF)到第二帐户,
其中,所述第一帐户与发出所述微服务请求(MSR)的访问实体有关,
并且其中,所述第二帐户与操作所述第一微服务(MS1、...、MS4)和/或所述第一微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2)的微服务实体有关。
7.根据权利要求6所述的方法,其中,通过智能合约来执行转移(TRF)所述一定数量的加密货币
8.根据权利要求6或7所述的方法,还包括:
-利用所述第一计算单元(S.CU)基于所述微服务请求(MSR)来确定(DET-ACC)所述第一帐户。
9.根据前述权利要求之一所述的方法,其中,所述分布式账本(LDG)包括链、块树和/或缠结。
10.一种从第一微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2)接收输出数据的方法,包括:
-利用第二计算单元(C.CU)基于微服务信息(MSI、MSI.1、...、MSI.7)确定(DET-IMS)所述第一微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2),
其中,通过利用服务器(S)的第一计算单元(S.CU)基于微服务请求(MSR)查询微服务数据库(MSDB)来确定所述微服务信息(MSI、MSI.1、...、MSI.7),其中,所述微服务数据库(MSDB)存储在分布式账本(LDG)中,
-利用第二接口(C.IF)向所述第一微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2)发送(SND-ID)输入数据,以及
-利用所述第二接口(C.IF)从所述第一微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2)接收(REC-OD)输出数据。
11.一种用于提供微服务信息(MSI、MSI.1、...、MSI.7)的服务器(S),包括:
-第一接口(S.IF),其被配置成用于接收(REC-MSR)微服务请求(MSR),其中,所述微服务请求(MSR)与第一微服务(MS1、...、MS4)有关,
还被配置成用于提供(PROV-MSI)所述微服务信息(MSI、MSI.1、...、MSI.7),-第一计算单元(S.CU),其被配置成用于通过基于所述微服务请求(MSR)查询微服务数据库(MSDB)来确定(DET-MSI)所述微服务信息(MSI、MSI.1、...、MSI.7),其中,所述微服务信息(MSI、MSI.1、...、MSI.7)基于所述第一微服务(MS1、...、M4)的实例(MS1.I1,...,MS4.I2),其中,所述微服务数据库(MSDB)存储在分布式账本(LDG)中。
12.一种用于从第一微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2)接收输出数据的客户端(C),包括:
-第二计算单元(C.CU),其被配置成用于基于微服务信息(MSI、MSI.1、...、MSI.7)确定(DET-IMS)所述第一微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2),其中,所述微服务信息(MSI、MSI.1、...、MSI.7)是通过利用服务器(S)的第一计算单元(S.CU)基于微服务请求(MSR)查询微服务数据库(MSDB)来确定的,其中,所述微服务数据库(MSDB)存储在分布式账本(LDG)中,
-第二接口(C.IF),其被配置成用于向所述第一微服务(MS1,...,MS4)的实例(MS1.I1,...,MS4.I2)发送(SND-ID)输入数据,
还被配置成用于从所述第一微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2)接收(REC-OD)输出数据。
13.一种包括程序元素的计算机程序产品,当所述程序元素被加载到服务器(S)的第一存储器(S.MU)中时,所述程序元素引导所述服务器(S)执行根据权利要求1至9中的一项所述的提供微服务信息(MSI、MSI.1、...、MSI.7)的方法的步骤。
14.一种计算机可读介质,其存储有服务器(S)可以读取和执行的程序元素,以在所述程序元素由所述服务器(S)执行时,执行根据权利要求1至9中的一项所述的提供微服务信息(MSI、MSI.1、...、MSI.7)的方法的步骤。
15.一种包括计算机程序的计算机程序产品,所述计算机程序能够加载到客户端(C)的第二存储器单元(C.MU)中,所述计算机程序包括程序代码部分,以在所述客户端(C)中执行所述计算机程序时,使所述客户端(C)执行根据权利要求10的从第一微服务(MS1、...、MS4)的实例(MS1.I1、...、MS4.I2)接收输出数据的方法。

说明书全文

提供微服务信息

技术领域

[0001] 本发明涉及信息处理技术,具体地,涉及一种提供微服务信息的方法及其装置。

背景技术

[0002] 单片软件架构的常见替选方案是使用多个隔离的、松散耦合的、独立的微服务(也被称为“微服务软件架构”)。通常,微服务被配置成仅执行一个不同的任务。然后,可以通过组合若干微服务来创建更复杂的软件应用程序。
[0003] 与单片软件架构相比,微服务软件架构具有以下优点:通过执行或运行相同微服务的若干实例来允许更简单的维护和高效的应用程序性能扩展。
[0004] 因为可能存在单个微服务的若干实例,所以这些若干实例与其他微服务或应用程序之间的通信由微服务注册表(另一术语是“服务注册表”)处理。具体地,服务注册表可以接收使用微服务的请求,并将请求转发给微服务的某个实例(将例如负载平衡或法律要求考虑在内)。与服务注册表的交互通常由应用程序编程接口(缩写为“API”)完成。微服务注册表的常见示例是“Eureka”、“Consul”、“Zookeeper”和“Etcd”。通常,术语“微服务注册表”可以用作所描述的软件的名称,或者用作运行该软件的硬件特别是服务器的名称。
[0005] 因此,通常基于微服务软件架构的应用程序取决于微服务注册表的可用性以及与微服务注册表的连接延迟。因此,建立若干微服务注册表是一种常见的方法,特别是在不同的地理位置,以确保回退级别(fallback level)和短的ping时间。
[0006] 为了使用若干分布式微服务注册表来确保应用程序的正常功能,分布式微服务注册表中的每一个必须使用相同的基础数据。因此,已知的是,使用单个数据库(其对用于操作分布式微服务注册表所必需的数据进行存储),基本上引起与仅使用一个微服务注册表相同的问题。作为替选方案,已知的是,分布式微服务注册表中的每一个存储所述数据库的副本。在这种情况下,必须确保数据库副本是同步的。

发明内容

[0007] 本发明的问题是提供用于分布式微服务注册表的同步的解决方案。
[0008] 通过根据独立权利要求的用于操作微服务注册表的方法、操作系统计算机程序产品和计算机可读介质来来解决问题。在从属权利要求和以下描述中描述了有益方面和实施方式。
[0009] 在下文中,关于要求保护的提供系统以及关于要求保护的方法描述了根据本发明的解决方案。在本文中的特征、优点或替选实施方式可以被分配给其他要求保护的对象,反之亦然。换句话说,可以利用在方法的上下文中描述或要求保护的特征来改进提供系统的权利要求。在这种情况下,该方法的功能特征由提供系统的客观单元实现。
[0010] 在一个方面,本发明涉及一种提供微服务信息的方法,包括:利用第一接口接收微服务请求;通过利用第一计算单元基于微服务请求查询微服务数据库来确定微服务信息,其中,微服务数据库存储在分布式账本中;以及利用第一接口提供微服务信息。具体地,第一接口是微服务注册表或运行微服务注册表的服务器的接口。具体地,第一计算单元是微服务注册表或运行微服务注册表的服务器的计算单元。
[0011] 具体地,微服务数据库可以包括多个微服务信息,具体地,可以通过选择存储在微服务数据库中的多个微服务信息中的一个来执行确定微服务信息的步骤。
[0012] 通常,分布式账本是某种类型的分散式数据库。具体地,分布式账本的分布是指在不同存储器单元中存在分布式账本的(至少部分的)若干副本,其中,存储器单元是空间分布的。分布式账本包括多个记录,其中,可以利用数据库条目来识别多个记录。特别是,多个记录被组织为数据。具体地,记录由不同的实体(特别是网络的不同节点)创建,并与不同的实体一起存储,特别是在如果记录在不同节点内。换句话说,记录的构建和维护通常不是由中央机构执行,而是由网络的节点独立地执行。在典型情况下,网络的所有节点都维护分布式账本的一个副本。
[0013] 通常,更新分布式账本通常基于共识机制,其中,共识机制确保分布式账本的不同副本匹配,在存储分布式账本的副本的实体之间存在延迟通信的情况下也如此。
[0014] 发明人认识到,通过使用存储在分布式账本中的微服务注册表,微服务注册表的本地副本可以用于基于微服务请求来确定微服务信息,从而带来低延迟和快速响应时间。同时,每个微服务注册表都可以用作所有其他微服务注册表的回退(fallback)。
[0015] 根据本发明的另一可能方面,分布式账本包括数据块。
[0016] 通常,数据块是账本的基本数据记录。具体地,数据块是不可变的数据结构,这意味着不能改变或修改数据块。这暗含着只能通过添加或删除数据块来执行对账本的更改。具体地,可以通过在数据块内或在数据块外存储数据块的散列值来确保数据块的不可变性。
[0017] 发明人认识到,使用包括数据块的分布式账本,可以更有效地同步分布式账本的不同副本。具体地,使用不可变的数据块,可以使某人更难操纵分布式账本或微服务数据库。
[0018] 根据本发明的另一可能方面,分布式账本的第一数据块包括与分布式账本的第二数据块有关的链接信息。具体地,第一数据块和第二数据块可以是相同的。具体地,分布式账本的数据块中的每个包括与分布式账本的数据块的链接。
[0019] 具体地,可以链接账本的第一数据块和账本的第二数据块。该链接可以是无向链接或定向链接。具体地,如果第一数据块包括与第二数据块有关的链接信息以及/或者如果第二数据块包括与第一数据块有关的链接信息,则存在第一数据块和第二数据块的链接。具体地,链接信息可以是数据完整性信息。具体地,通过检查与第一数据块有关的所述数据完整性信息,可以识别或确定对第一数据块的操纵和/或改变。
[0020] 与第一数据块有关的链接信息的常见示例是第一数据块的(至少一部分的)散列,具体地,第一数据块的(至少一部分的)散列可以存储在第二数据块中。如果可以假设第二数据块中包含的散列不被改变,那么在第二数据块中存储第一数据块的散列允许了在确定散列之后验证数据块中的所述至少一个数据块未被改变。
[0021] 分布式账本的数据块还可以包括若干链接信息,具体地,其他链接信息中的每个可以是分布式账本的另一数据块的散列。包含在分布式账本的数据块中的链接信息可以与所述数据块相关,具体地,数据块中的链接信息可以与所述数据块的(至少一部分的)散列相同。
[0022] 发明人已经认识到,通过使用数据块中的链接信息,可以将分布式账本的结构合并到数据块中,使得分布式账本的结构不需要存储在外部和/或单独的数据项中。
[0023] 根据本发明的另一可能方面,与第二数据块有关的链接信息包括第二数据块的散列。
[0024] 通常,数据块的散列是散列函数应用于所述数据块的结果,是散列函数应用于包含在所述数据块中的信息的子集的结果,或者是散列函数应用于第二信息子集和包含在所述数据块中的第一信息子集的组合的结果,其中,第二信息的子集是包含或将包含所述散列的数据块的信息子集。
[0025] 通常,散列函数是将任意大小的数据映射到固定大小的数据的函数。具体地,散列函数是加密散列函数。具体地,加密散列函数是确定性函数;具体地,散列函数的输出仅取决于散列函数的输入。具体地,可以以快速方式针对所有输入值计算加密散列函数。具体地,加密散列函数仅是强可逆的,即,给定加密散列函数的输出,只有通过计算大量输入值(即强力攻击)的加密散列函数,才可以计算加密散列函数的对应输入。换句话说,找到与加密散列函数的输出值对应的输入值是一个棘手的问题。具体地,找到产生相同输出值的加密散列函数的第一输入值和第二输入值是一个棘手的问题。具体的,加密散列函数是散射的;即,即使是加密散列函数的相关输入也会产生加密散列函数的不相关输出。
[0026] 具体地,散列函数可以计算输入数据的Merkle根,特别是通过计算Merkle树内的散列。
[0027] 发明人认识到,使用第二数据块的散列作为由第一数据块包括的链接信息使得第二数据块不可变,或者至少可以通过检查第一数据块来确定对第二数据块的改变或操纵,具体地,通过将基于第二数据块计算的散列与存储在第一数据块中的第二数据块的散列进行比较。
[0028] 根据本发明的另一可能方面,微服务信息被包含在分布式账本的数据块中。发明人认识到,通过将微服务信息存储在数据块中,可以跨不同的微服务注册表确保微服务信息的同步和修订安全性。
[0029] 根据本发明,微服务请求与第一微服务有关,并且微服务信息基于第一微服务的实例。
[0030] 具体地,微服务可以由程序逻辑、由其功能和/或由微服务的一组实例来定义。微服务的实例是在相同或不同的虚拟或现实服务器上运行的微服务的可能的多个实例之一。具体地,微服务的实例可以是托管在网络服务器上的网络服务。具体地,可以通过使用应用程序可编程接口(“API”),特别是REST API来发生与微服务的实例的交互。具体地,在微服务和微服务的实例之间存在1:N关系,即,可以存在一个微服务的任意数量的实例。通常使用多样性的微服务实例来实现负载平衡。具体地,确定微服务信息的步骤可以包括在微服务的不同实例之间或在运行微服务实例的不同服务器之间进行负载平衡。
[0031] 通常,微服务的实例在不同的服务器上运行,而非服务注册表,但微服务的一些或全部实例也可以在微服务注册表上或微服务注册表的服务器上运行。
[0032] 发明人认识到,通过本发明的该方面,微服务注册表可以在微服务的不同实例之间执行负载平衡,从而产生整个应用程序的更好性能。
[0033] 根据本发明的另一方面,微服务请求包括第一微服务的标识符。具体地,第一微服务的标识符可以是第一微服务的逻辑名称。如果第一微服务由函数或程序逻辑的类给出,则逻辑名称可以是函数的名称或程序逻辑中类的名称。具体地,第一微服务的标识符可以包括分层信息,特别是分层结构中第一微服务的位置。这种分层信息的常见示例是程序逻辑中的名称空间。发明人认识到,基于第一微服务的标识符,微服务注册表可以以快速有效的方式确定微服务信息。
[0034] 根据本发明的另一方面,微服务信息包括第一微服务的实例的位置。通常,第一微服务的实例的位置可以用于定位第一微服务和/或用于与第一微服务交互。具体地,第一微服务的实例的位置是托管第一微服务的实例的虚拟或现实服务器的位置。具体地,第一微服务的实例的位置可以是URI(“统一资源标识符”的首字母缩写词)、URL(“统一资源定位符”的首字母缩写词)或URN(“统一资源名称”的首字母缩写词)。具体地,第一微服务的实例的位置还可以包括IP(“因特网协议”的首字母缩写词)地址,特别是IPv4(“因特网协议版本4”的首字母缩写词)或IPv6(“因特网协议版本6”的首字母缩写词)地址。具体地,第一微服务的实例的位置还可以包括端口号。具体地,第一微服务的实例的位置还可以包括与在操作系统中执行的第一微服务的实例相关联的进程号和/或进程名称,特别是在第一微服务的实例在微服务注册表或微服务注册表的服务器上执行的情况下。发明人认识到,通过包括第一微服务的实例的位置的微服务信息,可以通过客户端使用微服务注册表来有效地访问第一微服务的实例。
[0035] 根据本发明的另一方面,微服务请求包括认证信息,并且提供微服务信息的方法还包括:利用第一计算单元基于认证信息来确定访问第一微服务和/或第一微服务的实例的授权,其中,仅在肯定授权的情况下执行提供微服务信息的步骤。具体地,授权可以是授权数据,具体地,在发出微服务请求的访问实体被授权访问第一微服务的情况下,布尔值为“1”或“真”,具体地,在发出微服务请求的访问实体未被授权访问第一微服务的情况下,布尔值为“0”或“假”。
[0036] 具体地,访问微服务或微服务实例的授权可以存储在列表中,该列表针对每个微服务或针对每个微服务的每个实例进行记录,允许哪些实体使用微服务。具体地,这样的列表可以包含在微服务数据库中,使得可以通过查询微服务数据库来确定授权。具体地,对于每个微服务或对于微服务的每个实例,微服务数据库可以包括被授权使用微服务的实体的列表。列表也可以存储在另一分布式账本中。
[0037] 通常,认证信息是由发出微服务请求以证明其身份的访问实体创建或发送的数据。具体地,认证信息可以包括基于非对称密码系统特别是基于公钥架构(首字母缩写词是“PKI”)或共享密钥(“共享密钥”的另一术语是“令牌”)的数字证书。
[0038] 发明人认识到,通过微服务注册表确定授权,可以集中管理授权。此外,通过将授权存储在分布式账本中,不同的微服务注册表可以使用经同步的授权信息。
[0039] 根据本发明的另一方面,提供微服务信息的方法包括利用第一接口接收与第二微服务有关的和/或与第二微服务的实例有关的注册请求和/或注销请求的步骤,以及利用第一计算单元将第二微服务和/或第二微服务的实例的注册和/或注销记录在分布式账本中的步骤。具体地,提供微服务信息的方法包括:利用第一接口接收与第二微服务有关的和/或与第二微服务的实例有关的注册请求的步骤,以及利用第一计算单元将第二微服务和/或第二微服务的实例的注册记录在分布式账本中的步骤。具体地,提供微服务信息的方法包括:利用第一接口接收与第二微服务有关的和/或与第二微服务的实例有关的注销请求的步骤,以及利用第一计算单元将第二微服务和/或第二微服务的实例的注销记录在分布式账本中的步骤。
[0040] 具体地,注册请求和/或注销请求由第二微服务的实例发送。具体地,第二微服务可以与第一微服务相同。具体地,第二微服务的实例可以与第一微服务的实例相同。
[0041] 具体地,通过在微服务数据库中存储与第二微服务有关和/或与第二微服务的实例有关的微服务信息来执行记录第二微服务和/或第二微服务的实例的注册。具体地,通过在微服务数据库中删除与第二微服务有关和/或与第二微服务的实例有关的微服务信息来执行记录第二微服务和/或第二微服务的实例的注销。在该上下文中,删除微服务信息也可以通过将微服务信息标记为无效来完成。
[0042] 具体地,记录第二微服务和/或第二微服务的实例的注册和/或注销可以包括将另外的数据块附加到分布式账本。在注册的情况下,另外的数据块可以包括与第二微服务有关和/或与第二微服务的实例有关的微服务信息。在注销的情况下,另外的数据块可以包括与第二微服务有关和/或与第二微服务的实例有关的微服务信息,其中,微服务信息被标记为无效。将另一数据块附加到分布式账本可以包括工作证明、存储证明、利害关系证明(a proof of stake)和/或经过时间的证明。工作证明可以是计算约束的工作证明、网络约束的工作证明和/或存储器约束的工作证明。
[0043] 根据本发明的另一方面,提供微服务信息的方法可以包括:利用第一计算单元将一定数量的加密货币从第一帐户转移到第二帐户的步骤,其中,第一帐户与发出微服务请求的访问实体有关,并且其中,第二帐户与操作第一微服务和/或第一微服务的实例的微服务实体有关。
[0044] 通常,加密货币是可以在不同实体之间交换的数字资产或数字介质,其中,加密的方法用于将加密货币从第一实体转移到第二实体,用于新的数量的加密货币的创建和/或用于验证加密货币从第一实体到第二实体的转移。具体地,加密货币是数字货币。加密货币可以存储在账户中(另一术语是“钱包”),具体地,账户与包括私钥和公钥的非对称密钥对相对应,其中,私钥必须用于将加密货币从所述账户转移到另一账户,并且其中,公钥必须用于将加密货币从另一帐户转移到所述帐户。具体地,可以通过公钥识别帐户。
[0045] 通常,将一定数量的加密货币从第一帐户转移到第二帐户包括:创建事务日志,其中,第一帐户与包括第一私钥和第一公钥的非对称密钥对相对应,并且其中,第二帐户与包括第二私钥和第二公钥的非对称密钥对相对应,并且其中,事务日志包括第一私钥和第一公钥中的至少一个密钥和第二公钥,并且其中,事务日志还包括:转移的加密货币的数量。具体地,事务日志还可以包括基于转移的加密货币的数量和第二公钥的、利用第一私钥进行签名的签名。
[0046] 具体地,通过将事务日志包括在分布式账本或另一分布式账本的数据块中来执行对一定数量的加密货币的转移。
[0047] 发明人认识到,通过转移加密货币,可以启动使用微服务注册表或微服务的实例的有效支付进程。
[0048] 根据本发明的另一方面,借助智能合约来执行转移一定数量的加密货币。
[0049] 通常,智能合约包括可以由微服务注册表、服务器、客户端或任何其他计算节点执行的程序元素。具体地,程序元素可以包括程序逻辑、源代码、脚本语言和/或编译的机器代码。具体地,智能合约记录在分布式账本中。具体地,智能合约可以包括程序逻辑方面的条件以及程序逻辑方面的结果,其中,如果满足某些条件,则结果被激活或执行。
[0050] 具体地,智能合约可以与第一微服务相关或者与第一微服务的实例相关地存储。具体地,智能合约可以存储在微服务数据库中和/或存储在包括微服务数据库的分布式账本中。具体地,智能合约可以存储在和与第一微服务有关或者与第一微服务的实例有关的微服务信息相同的数据块中。
[0051] 发明人认识到,基于智能合约,加密货币可以自动地并且以可理解的方式转移。
[0052] 根据本发明的另一方面,提供微服务信息的方法包括:利用第一计算单元基于微服务请求来确定第一账户。具体地,可以基于微服务请求中包含的认证信息来确定第一账户。具体地,微服务请求可以包括识别第一账户的公钥。具体地,还可以基于发出微服务请求的访问实体的IP地址或MAC(“媒体访问控制”的首字母缩写)地址,基于与微服务请求相关的HTTP(“超文本传输协议”的首字母缩写词)报头,或基于微服务请求中包含的共享密钥来确定第一帐户。发明人认识到,通过基于微服务请求确定第一账户,可以以快速有效的方式执行的加密货币转移。
[0053] 根据本发明的另一方面,分布式账本包括区块链、块树和/或缠结(tangle)。发明人认识到,可以使用已经存在的分布式账本或分布式账本的基础设施中的一种类型的分布式账本,从而增加了微服务数据库的稳定性和可用性。
[0054] 根据本发明的另一可能方面,提供微服务信息的方法包括:利用第二接口接收微服务信息的步骤,利用第二计算单元基于微服务信息确定第一微服务的实例的步骤,利用第二接口向第一微服务的实例发送输入数据的步骤,以及利用第二接口从第一微服务的实例接收输出数据的步骤。具体地,提供微服务信息的方法包括:利用第二接口发送微服务请求的步骤。具体地,第二接口是客户端的接口。具体地,第二计算单元是客户端的计算单元。具体地,发送输入数据和接收输出数据的步骤是基于API的。
[0055] 此外,本发明涉及一种使用微服务信息的方法(微服务信息由用于根据本发明或其一个方面的提供微服务信息的方法提供),包括:利用第二计算单元基于微服务信息确定第一微服务的实例的步骤,利用第二接口向第一微服务的实例发送输入数据的步骤,以及利用第二接口从第一微服务的实例接收输出数据的步骤。具体地,第二接口是客户端的接口。具体地,第二计算单元是客户端的计算单元。具体地,发送输入数据和接收输出数据的步骤是基于API的。根据另一方面,使用微服务信息的方法包括:利用第二接口,特别是向服务器,特别是向服务器的第一接口,发送微服务请求的步骤。
[0056] 此外,本发明涉及一种从第一微服务的实例接收输出数据的方法,包括以下步骤:利用第二计算单元基于微服务信息确定第一微服务的实例,其中,通过利用微服务注册表的第一计算单元基于微服务请求查询微服务数据库来确定微服务信息,其中,微服务数据库存储在分布式账本中;利用第二接口向第一微服务的实例发送输入数据;以及利用第二接口从第一微服务的实例接收输出数据。根据本发明的另一方面,从第一微服务的实例接收输出数据的方法包括以下步骤:利用第二接口,特别是向服务器,特别是向服务器的第一接口,发送微服务请求。
[0057] 此外,本发明涉及一种用于提供微服务信息的服务器,包括:
[0058] -第一接口,其被配置用于接收微服务请求,其中,微服务请求与第一微服务有关,[0059] 此外,其被配置用于提供微服务信息;
[0060] -第一计算单元,其被配置用于通过基于微服务查询微服务数据库来确定微服务信息,其中,微服务数据库存储在分布式账本中,其中,微服务信息基于第一微服务的实例。
[0061] 具体地,用于提供微服务信息的服务器可以被配置成执行根据本发明的提供微服务信息的方法及其方面。服务器被配置成通过第一接口执行该方法及其方面,并且第一计算单元被配置成执行相应的方法步骤。具体地,服务器可以托管微服务注册表,或者可以与微服务注册表相同。
[0062] 此外,本发明涉及一种使用由根据本发明的用于提供微服务信息的方法及其方面提供的微服务信息的客户端,包括:
[0063] -第二计算单元,其被配置用于基于微服务信息来确定第一微服务的实例,[0064] -第二接口,其被配置用于向将第一微服务的实例发送输入数据,以及此外,其被配置成从第一微服务的实例接收输出数据。
[0065] 具体地,使用由根据本发明的用于提供微服务信息的方法及其方面提供的微服务信息的客户端可以被配置成执行使用由根据本发明的用于提供微服务信息的方法及其方面提供的微服务信息的方法。客户端被配置成通过第二接口执行该方法及其方面,并且第二计算单元被配置成执行相应的方法步骤。
[0066] 此外,本发明涉及一种用于从第一微服务的实例接收输出数据的客户端,包括:
[0067] -第二计算单元,其被配置用于基于微服务信息确定第一微服务的实例,其中,微服务信息是通过利用服务器的第一计算单元基于微服务请求查询微服务数据库来确定的,其中,微服务数据库存储在分布式账本中,
[0068] -第二接口,其被配置用于向第一微服务的实例发送输入数据,
[0069] 此外,其被配置成从第一微服务的实例接收输出数据。
[0070] 具体地,用于从第一微服务的实例接收输出数据的客户端可以被配置成执行从根据本发明的第一微服务的实例接收输出数据的方法及其方面。客户端被配置成通过第二接口执行该方法及其方面,并且第二计算单元被配置成执行相应的方法步骤。
[0071] 此外,本发明涉及一种包括服务器和客户端的微服务系统,该服务器包括:
[0072] -第一接口,其被配置用于接收微服务请求,
[0073] 此外,其被配置用于提供微服务信息;
[0074] -第一计算单元,其被配置用于通过基于微服务查询微服务数据库来确定微服务信息,其中,微服务数据库存储在分布式账本中;
[0075] 以及客户端包括:
[0076] -第二计算单元,其被配置用于基于微服务信息确定第一微服务的实例,-第二接口,其被配置用于向第一微服务的实例发送输入数据,并且此外,其被配置成从第一微服务的实例接收输出数据。
[0077] 服务器、客户端和微服务系统可以实现为数据处理系统或数据处理系统的一部分。这种数据处理系统可以例如包括计算系统、计算机网络、计算机、平板计算机、智能电话等。服务器和客户端可以包括硬件和/或软件。硬件可以是例如处理器系统、存储器系统及其组合。硬件可以由软件配置和/或能够由软件操作。
[0078] 另一方面,本发明涉及一种包括计算机程序的计算机程序产品,该计算机程序能够加载到服务器的第一存储器单元中,该计算机程序包括程序代码部分以在所述服务器中执行计算机程序时,使服务器执行根据本发明的方面的提供微服务信息的方法。
[0079] 另一方面,本发明涉及一种计算机可读介质,其上存储有计算机程序的程序代码部分,所述程序代码部分能够加载到服务器中和/或能够在服务器中执行,以在服务器中执行程序代码部分时,使服务器执行根据本发明的一个方面的提供微服务信息的方法。
[0080] 另一方面,本发明涉及一种包括计算机程序的计算机程序产品,该计算机程序可加载到客户端的第二存储器单元中,该计算机程序包括程序代码部分,以在所述客户端中执行计算机程序时,使客户端执行根据本发明的方面的使用由提供微服务信息的方法或者从第一微服务的实例接收输出数据的方法所提供的微服务信息的方法。
[0081] 另一方面,本发明涉及一种计算机可读介质,其上存储有计算机程序的程序代码部分,所述程序代码部分能够加载到客户端中和/或能够在客户端中执行,以在客户端中执行程序代码部分时,使客户端执行根据本发明的方面的使用由提供微服务信息的方法或者从第一微服务的实例接收输出数据的方法所提供的微服务信息的方法。
[0082] 通过计算机程序产品和/或计算机可读介质实现本发明具有以下优点:可以通过软件更新容易地采用已经存在的服务器或客户端,以按照本发明的建议工作。附图说明
[0083] 根据以下将在附图的上下文中详细描述的描述和实施方式,上述本发明的特性、特征和优点以及它们的实现方式变得更清楚和更容易理解。以下描述并不将本发明限制于所包含的实施方式。在不同的附图中,相同的组件或部件可以用相同的附图标记进行标记。通常,附图并非是按比例的。
[0084] 在下文中:
[0085] 图1示出了包括服务器、客户端和微服务数据库的微服务架构,
[0086] 图2示出了微服务数据库的实施方式,
[0087] 图3示出了存储在分布式账本中的微服务数据库的实施方式,
[0088] 图4示出了提供微服务信息的方法的第一实施方式,
[0089] 图5示出了提供微服务信息的方法的第二实施方式,
[0090] 图6示出了提供微服务信息的方法的第三实施方式,
[0091] 图7示出了提供微服务信息的方法的第四实施方式,
[0092] 图8示出了提供微服务信息的方法的第五实施方式,
[0093] 图9示出了从微服务的实例接收输出数据的方法的实施方式,
[0094] 图10示出了服务器和客户端。

具体实施方式

[0095] 图1示出了包括服务器S、客户端C和微服务数据库MSDB的微服务架构。服务器S执行或托管微服务注册表,并且客户端C执行依赖于和/或使用微服务MS1、...、MS4的应用程序。在该示例中,微服务架构包括两个执行服务器S1、S2,在其上执行微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2。在该实施方式中,执行服务器S1、S2与执行微服务注册表的服务器S分开。替选地,执行服务器S1、S2中的至少一个可以与执行微服务注册表的服务器S相同。
[0096] 在微服务架构内,在该实施方式中,存在四个微服务MS1、...、MS4。对于微服务MS1,在第一执行服务器S1上执行一个实例MS1.I1。对于微服务MS2,存在由第一执行服务器S1和第二执行服务器S2执行的三个实例MS2.I1、...、MS2.I3,其中,一个实例MS2.I1由第一执行服务器S1执行,并且两个实例MS2.I2、MS2.I3由第二执行服务器S2执行。对于微服务MS3,存在由第二执行服务器S2执行的一个实例MS3.I1。对于微服务MS4,存在由第一执行服务器S1和第二执行服务器S2执行的两个实例MS4.I1、MS4.I2,第一实例MS4.I1由第一执行服务器S1执行,第二实例MS4.I2由第二执行服务器S2执行。
[0097] 因此,在该实施方式中,存在仅有一个执行实例MS1.I1、...、MS4.I2的微服务MS1、...、MS4以及有若干执行实例MS1.I1、...、MS4.I2的微服务MS1、...、MS4。
[0098] 也可能存在没有执行实例MS1.I1、...、MS4.I2的微服务MS1、...、MS4。
[0099] 在该实施方式中,客户端C和服务器S是分开的单元。替选地,客户端C和服务器S也可以是相同的。有利地,客户端C和服务器S都是网络服务器。客户端C和服务器S使用由服务器S提供的应用程序可编程接口(首字母缩写词“API”)进行通信。具体地,API是REST(“表述性状态转移”的首字母缩写词)API(另一术语是“RESTful API”)。客户端C和服务器S之间的通信由客户端C驱动,特别是由客户端C调用服务器S的API、服务器S执行程序逻辑作为对API的调用的响应以及服务器S经由API将数据返回给客户端来驱动。
[0100] 如果服务器S和客户端C相同,则客户端C和服务器S之间的通信的替选方案是使用IPC(“进程间通信”的首字母缩写词)。
[0101] 具体地,客户端C使用由服务器S提供的API向服务器S发送微服务请求MSR。作为响应,服务器S将微服务信息MSI返回给客户端C。
[0102] 图2示出了微服务数据库MSDB的实施方式,其涉及图1中所显示的微服务架构。在该实施方式中,微服务数据库MSDB包括微服务信息MSI.1、...、MSI.8。微服务信息MSI.1、...、MSI.8中的每个包括微服务MS1、...、MS4的标识符MS1.ID、...、MS2.ID。在该实施方式中,微服务MS1、...、MS4的标识符MS1.ID、...、MS2.ID是微服务MS1、...、MS4的逻辑名称。
[0103] 此外,微服务信息MSI.1、...、MSI.8中的每个包括微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的位置MS1.I1.LOC、…、MS4.I2.LOC。在该实施方式中,微服务MS1、...、MS4的实例MS1.1、...、MS4.I2的位置MS1.I1.LOC、…、MS4.I2.LOC是可以用来与微服务MS1、...、MS4的实例MS1.1、...、MS4.I2交互的URL。这样的URL的示例可以是“http://www.server-1-address.com/services/ms1/1”,这可能涉及第一执行服务器S1(http://.server-1-address.com),特别是微服务MS1(“/services/ms1”)的实例的位置,特别是在第一执行服务器S1上执行的微服务MS1(“/1”)的第一实例MS1.I1的位置。这样的URL的另一示例可以是“http://www.server-2-address.com/services/ms2/2”,这可能涉及第二执行服务器S2(http://.server-2-address.com),特别是微服务MS2(“/services/ms2”)的实例的位置,特别是在第二执行服务器S2上执行的微服务MS2(“/2”)的第二实例MS2.I3的位置。
[0104] 在示出的实施方式中,微服务信息MSI.1、...、MSI.8包括授权信息MS1.I1.AUT、...、MS4.I2.AUT,其可以被用于确定访问实体或客户端C访问或使用微服务MS1、...、MS4的相应实例MS1.I1、...、MS4.I2的授权。在本实施方式中,授权信息MS1.I1.AUT、...、MS4.I2.AUT被限定在微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的级别上,使得相同微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2可以与不同的授权信息相关。如果某些访问实体、应用程序或客户C具有不同的重要性或者资源需求,例如,如果某些应用程序具有更高的重要性,或者如果某些访问实体为不同的资源级别付费,则这种结构会是有用的。
[0105] 替选地或另外地,授权信息也可以被限定在微服务MS1、...、MS4的级别上,换句话说,授权信息与微服务MS1、...、MS4有关。同样的效果可以通过将授权信息限定在微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的级别上来实现,其中,相同微服务MS1、...、MS4的不同实例MS1.I1、...、MS4.I2的授权信息MS1.I1.AUT、...、MS4.I2.AUT是等同的。如果允许某些访问实体、应用程序或客户端C仅使用微服务MS1、...、MS4的子集,例如,如果仅微服务MS1、...、MS4的子集暴露于所有的应用程序,以及所有其他微服务MS1、...、MS4仅对其他微服务MS1、...、MS4或内部应用程序是可用的,则这种结构是有用的。
[0106] 替选地或另外地,授权信息还可以被限定在微服务数据库MSDB的级别上(或者等同地在服务器S的级别上,或者在微服务注册表的级别上)。通过将授权信息限定在微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的级别上,可以实现相同的效果,其中,所有微服务MS1、...、MS4的所有实例MS1.I1、...、MS4.I2的授权信息MS1.I1.AUT、...、MS4.I2.AUT是等同的。如果仅允许某些访问实体、应用程序或客户端C交互或使用微服务注册表或微服务MS1、...、MS4,则这种结构是有用的。
[0107] 可以在不同级别上组合授权信息,例如,在微服务数据库MSDB的级别上,以调整被允许与微服务注册表或微服务MS1、...、MS4进行交互的访问实体、应用程序或客户端C,并且限定的有特权的访问实体、应用程序或客户端C,所述限定的有特权的访问实体、应用程序或客户端C访问微服务MS1、...、MS4的所有实例MS1.I1、...、MS4.I2,而不仅是微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的某个子集。
[0108] 在该实施方式中,每个授权信息MS1.I1.AUT、...、MS4.I2.AUT包括一个或若干个访问凭证。访问凭证的示例是共享密钥(另一术语是“令牌”)或数字证书。
[0109] 例如,授权信息MS1.I1.AUT、...、MS4.I2.AUT可以包括共享密钥“DHB7EWF53X”和“ZHW5JV6S9M”。在这种情况下,如果微服务请求MSR包括共享密钥“DHB7EWF53X”和“ZHW5JV6S9M”中的至少之一,则授予微服务信息MSI。例如,可以将第一共享密钥“DHB7EWF53X”传送到第一访问实体,并且可以将第二共享密钥“ZHW5JV6S9M”传送到第二访问实体,并且可以将第三共享密钥“5GC48KNDS2”传送到第三实体。在这种情况下,通过发出包括相应共享密钥的微服务请求MSR,第一实体和第二实体被提供微服务信息MSI.1、...、MSI.8,但是如果发出微服务请求MSR,第三实体不被提供微服务信息MSI.1、...、MSI.8,因为它无法访问第一共享密钥或第二共享密钥。
[0110] 作为替代,授权信息MS1.I1.AUT、...、MS4.I2.AUT可以包括父数字证书(或者至少是父数字证书的公钥),第一实体存储第一数字证书(或者至少第一数字证书的私钥),第二实体存储第二数字证书(或者至少第二数字证书的私钥)。第一实体包括使用第一数字证书的私钥进行签名(例如,基于微服务MS1、...、MS4的逻辑名称)以进入到微服务请求MSR中的签名,并且第二实体包括使用第二数字证书的私钥进行签名(例如,基于微服务MS1、...、MS4的逻辑名称)以进入到微服务请求MSR中的签名,以证明他们是第一或第二数字证书的所有者。具体地,如果第一数字证书是从包含在授权信息MS1.I1.AUT、...、MS4.I2.AUT中的父数字证书导出的,则授权第一实体。具体地,如果第二数字证书是从包含在微服务信息授权信息MS1.I1.AUT、...、MS4.I2.AUT中的父数字证书导出的,则授权第二实体。
[0111] 如果第一数字证书和/或第二数字证书使用与父数字证书有关的私钥进行签名,或者如果这种父关系存储在其他地方,则从父数字证书导出第一数字证书和/或第二数字证书。
[0112] 图3示出了存储微服务数据库MSDB的分布式账本LDG的摘录。具体地,示出的分布式账本LDG的摘录包含微服务信息MSI.1、MSI.2、MSI.3。通常,分布式账本LDG可以包含与微服务数据库MSDB无关的数据块DB.i、...、DB.l,具体地,在存储微服务信息MSI.1、...、MSI.7的数据块DB.i、...、DB.l之间可以存在与微服务数据库MSDB无关的数据块DB.i、...、DB.l。
[0113] 图3中示出的分布式账本LDG是区块链,包括多个数据块DB.i、...、DB.l。替选地,也可以使用其他分布式账本LDG,例如,具有侧链的分布式账本或缠结、块树。在该实施方式中,数据块DB.i、...、DB.l中的每一个包括:微服务信息MSI.1、...、MSI.7;基于另一数据块DB.i、...、DB.l(特别是基于前面的数据块DB.i、...、DB.l)的散列值H(DB.i)、...、H(DB.k);以及随机数RN.j、RN.k、RN.l。替选地,每个数据块DB.i、...、DB.1可以包括汇总到同一块中的若干微服务信息MSI.1、...、MSI.7。
[0114] 在该实施方式中,微服务信息MSI.1、...、MSI.7包括微服务MS1、...、MS4的标识符MS1.ID、...、MS4.ID、微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的位置MS1.I1.LOC、...、MS4.I2,以及MS1.I1.AUT、...、MS4.I2.AUT,如已经参照图2所描述的。此外,在该实施方式中,微服务信息MSI.1、...、MSI.7包括注册信息MS1.I1.RI、...、MS4.I2.RI,其限定微服务信息MSI.1、...、MSI.7是否有效,特别是微服务信息MSI.1、...、MSI.7是最新的还是过时的。具体地,将注册信息MS1.I1.RI、...、MS4.I2.RI包括在微服务信息MSI.1、...、MSI.7中是有益的,因为作为区块链的分布式账本LDG的数据块DB.i、...、DB.l是不可变的。
[0115] 在该实施方式中,注册信息MS1.I1.RI、...、MS4.I2.RI是一个标志,其可以具有值“0”或“1”(等价于值“真”或“假”)。如果微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2被注册,则具有注册信息MS1.I1.RI、...、MS4.I2.RI为“1”或“真”的微服务信息MSI.1、...、MSI.7被包括在微服务数据库MSDB和/或分布式账本LDG中。如果微服务MS1、...、MS4的所述实例MS1.I1、...、MS4.I2被注销,则相同的微服务信息MSI.1、...、MSI.7(但具有注册信息MS1.I1.RI、...、MS4.I2.RI为“0”或“假”)被包括在微服务数据库MSDB和/或分布式账本LDG中。因此,可以通过对于为“0”或“假”的失效注册信息MS1.I1.RI、...、MS4.I2.RI检查分布式账本LDG的所有后续数据块DB.i、...、DB.l来确定微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2是否有效或被注册。
[0116] 作为替代,如果微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2被注册,则注册信息MS1.I1.RI、...、MS4.I2.RI也可以为空,并且注销微服务MS1、...、MS4的所述实例MS1.I1、...、MS4.I2,具有注册信息MS1.I1.RI、...、MS4.I2.RI的新微服务信息MSI.1、...、MSI.7是基于包括旧的微服务信息MSI.1、...、MSI.7的数据块DB.i、...、DB.l的散列值或基于旧的微服务信息MSI.1、...、MSI.7的散列值。具体地,在这种情况下,新的微服务信息MSI.1、...、MSI.7的标识符MS1.ID、...、MS4.ID、位置MS1.I1.LOC、...、MS4.I2.LOC和授权信息MS1.I1.AUT、...、MS4.I2.AUT可能为空。
[0117] 通常,随机数RN.j、...、RN.l是可以由数据块DB.i、...、DB.l的创建者任意选择的数据项,而不影响数据块DB.i、...、DB.l的实际内容。具体地,微服务信息MSI.1、...、MSI.7的使用和/或内容不受随机数RN.j、...、RN.l的选择的影响。通常,改变随机数RN.j、...、RN.l也改变另外的数据块DB.i、...、DB.l的散列。
[0118] 具体地,为了将数据块DB.i、...、DB.l插入到分布式账本LDG中,必须执行一致性算法(例如,工作证明、存储证明、利害关系证明、经过时间的证明),其中,一致性算法可以基于要插入的数据块DB.i、...、DB.l的随机数RN.j、...、RN.l。在该实施方式中,必须由数据块DB.i、...、DB.l的创建者选择随机数RN.j、...、RN.l,使得所述数据块DB.i、...、DB.l的散列H(DB.i)、...、H(DB.l)满足某个条件。在该实施方式中,该条件是所述数据块DB.i、...、DB.l的散列H(DB.i)、...、H(DB.l)小于给定阈值
[0119] 在该实施方式中,数据块DB.j的散列H(DB.j)被计算为H(DB.j)=SHA256(H(MSI.1)+H(DB.i)+RN.j),其中,SHA256散列函数可以用任何其他合适的散列函数替换。操作“+”可以理解为数字的算术加法或字符串的连接(通过在连接之前将数字转换为字符串)。具体地,微服务信息MSI.1的散列H(MSI.1)可以是微服务信息MSI.1的Merkle根。替选地,数据块DB.j的散列H(DB.j)也可以基于数据块中包含的其他数据项。
[0120] 图4示出了提供微服务信息MSI、MSI.1、...、MSI.7的方法的第一实施方式。第一实施方式包括以下步骤:利用第一接口S.IF接收REC-MSR微服务请求MSR;通过利用第一计算单元S.CU基于微服务请求MSR查询微服务数据库MSDB来确定DET-MSI微服务信息MSI、MSI.1、...、MSI.7,其中,微服务数据库MSDB存储在分布式账本LDG中;并且利用第一接口S.IF提供PROV-MSI微服务信息MSI、MSI.1、...、MSI.7。
[0121] 在该第一实施方式中,微服务请求MSR包括第一微服务MS1、...、MS4的标识符MS1.ID、...、MS4.ID,其中,标识符MS1.ID、...、MS4.ID是第一微服务MS1、...、MS4的逻辑名称。在确定DET-MSI微服务信息MSI、MSI.1、...、MSI.7的步骤中,从微服务数据库MSDB中选择包括被包含在微服务请求MSR中的标识符MS1.ID、...、MS4.ID的所有微服务信息MSI、MSI.1、...、MSI.7。这相当于识别作为微服务请求MSR的主体的第一微服务MS1、...、MS4的所有实例MS1.I1、...、MS4.I2。
[0122] 在该第一实施方式中,微服务数据库MSDB(或等效地,微服务数据库MSDB的微服务信息MSI.1、...、MSI.7)被存储在作为区块链的分布式账本LDG中。因此,为了确定包括在微服务请求MSR中包含的标识符MS1.ID、...、MS4.ID的所有微服务信息MSI、MSI.1、...、MSI.7,在检查注册信息MS1.I1.RI、...、MS4.I2.RI以确定哪个微服务信息MSI.1、...、MSI.7是最新的或过时的时,分布式账本LDG的所有数据块DB.i、...、DB.l必须迭代。每次分布式账本LDG变化时,可以有利地预先计算和更新最新的微服务信息MSI.1、...、MSI.7的列表(或等同地在该第一实施方式中微服务MS1、...、MS4的可用实例MS1.I1、...、MS4.I2的列表)。
[0123] 具体地,在确定DET-MSI微服务信息MSI、MSI.1、...、MSI.7的步骤中,在微服务数据库MSDB或分布式账本LDG中包含的微服务信息MSI、MSI.1、...、MSI.7信息可以改变,具体地,可以移除微服务信息MSI、MSI.1、...、MSI.7的数据项,具体地,可以移除认证信息MS1.I1.AUT、...、MS4.I2.AUT。注意,提供的微服务信息MSI、MSI.1、...、MSI.7仍然需要包括微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的位置MS1.I1.LOC、...、MS4.I2.LOC。
[0124] 在该实施方式中,从包括在微服务请求MSR中包含的标识符MS1.ID、...、MS4.ID的微服务信息MSI、MSI.1、...、MSI.7的集合中提供PROV-MSI的微服务信息MSI可以借助于第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2之间的负载平衡来选择。替选地,要从包括在微服务请求MSR中包含的标识符MS1.ID、...、MS4.ID的微服务信息MSI、MSI.1、...、MSI.7的集合中提供PROV-MSI的微服务信息MSI可以随机选择。
[0125] 图5示出了提供微服务信息MSI、MSI.1、...、MSI.7的方法的第二实施方式。第二实施方式包括第一实施方式的步骤(其可以包括关于第一实施方式或图4描述的特征及增强功能),此外,在该第二实施方式中,微服务请求MSR包括认证信息,此外,第二实施方式包括以下步骤,利用第一计算单元S.CU基于认证信息来确定DET-AUTH访问第一微服务MS1、...、MS4和/或第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的授权。在肯定授权的情况下,执行提供PROV-MSI微服务信息MSI、MSI.1、...、MSI.7的步骤,在否定信息的情况下,执行拒绝访问DNY-ACC第一微服务MS1、...、MS4和/或第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的步骤。拒绝访问DNY-ACC的步骤可以通过提供错误消息和/或错误代码或者通过根本不提供数据来执行。
[0126] 在第二实施方式中,包含在微服务数据库MSDB和/或分布式账本LDG中的微服务信息MSI.1、...、MSI.7包括授权信息MS1.I1.AUT、...、MS4.I2.AUT,其包含一个或多个访问共享密钥或访问令牌,其中,授权信息MS1.I1.AUT、...、MS4.I2.AUT可以在第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的级别上、在第一微服务MS1、...、MS4的级别上,和/或在微服务注册表的级别上调整授权。此外,微服务请求MSR和/或认证信息包括请求共享密钥或请求令牌,并且确定DET-AUTH授权的步骤基于访问共享密钥和请求共享密钥。
[0127] 在确定DET-AUTH访问第一微服务MS1、...、MS4和/或第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的授权的步骤中,第一计算单元S.CU确定访问共享密钥中之一是否与请求共享密钥匹配。如果访问共享密钥之一与请求共享密钥匹配,则授权是肯定的,并且执行提供PROV-MSI微服务信息MSI、MSI.1、...、MSI.7的步骤。如果访问共享密钥中没有一个与请求共享密钥匹配,则授权是否定的,并且执行拒绝访问DNY-ACC第一微服务MS1、...、MS4和/或第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的步骤。
[0128] 替选地,也可以仅确定包括在微服务请求MSR中包含的标识符MS1.ID、...、MS4.ID以及与微服务请求MSR中包含的请求共享密钥匹配的访问共享密钥的微服务信息MSI、MSI.1、...、MSI.7。
[0129] 图6示出了提供微服务信息MSI、MSI.1、...、MSI.7的方法的第三实施方式。第三实施方式包括第一实施方式的步骤(其可以包括关于第一实施方式或图4描述的特征和增强功能),此外,第三实施方式包括以下步骤:利用第一接口S.IF接收REC-RR与第二微服务MS1、...、MS4有关的和/或与第二微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2有关的注册请求和/或注销请求,以及利用第一计算单元S.CU在分布式账本LDG中记录DOC-RR第二微服务MS1、...、MS4和/或第二微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的注册和/或注销。
[0130] 具体地,在第三实施方式中,在接收REC-MSR微服务请求MST的步骤、确定DET-MSI微服务信息MSI的步骤以及提供PROV-MSI微服务信息MSI的步骤之前,执行接收REC-RR注册请求和/或注销请求的步骤以及记录DOC-RR注册和/或注销的步骤。替选地,在接收REC-MSR微服务请求MST的步骤、确定DET-MSI微服务信息MSI的步骤以及提供PROV-MSI微服务信息MSI的步骤之后,或者与这些步骤并行,可以执行接收REC-RR注册请求和/或注销请求的步骤以及记录DOC-RR注册和/或注销的步骤。具体地,第二微服务MS1、...、MS4可以与第一微服务MS1、...、MS4相同。具体地,第二微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2可以与第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2相同。
[0131] 在该实施方式中,注册请求和/或注销请求由第二微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2发出。注册请求或注销请求包括第二微服务MS1、...、MS4的标识符MS1.ID、...、MS4.ID以及第二微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的位置MS1.I1.LOC、...、MS4.I2.LOC。有利地,注册请求可以包括授权信息MS1.I1.AUT、...、MS4.I2.AUT,替选地,授权信息可以由微服务注册表确定或设置。
[0132] 在将第二微服务MS1、...、MS4和/或第二微服务MS1.I1、...、MS4.I2的实例MS1.I1、...、MS4.I2的注册和/或注销记录DOC-RR在分布式账本LDG中的步骤中,创建另外的微服务信息,其包括第二微服务MS1、...、MS4的标识符MS1.ID、...、MS4.ID、第二微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的位置MS1.I1.LOC、...、MS4.I2.LOC,以及可选地授权信息MS1.I1.AUT、...、MS4.I2.AUT。另外的微服务信息存储在微服务数据库MSDB和/或分布式账本LDG中。具体地,取决于在分布式账本LDG中是否记录了注册或注销,可以如参照图3所描述的来设置注册信息MS1.I1.RI、...、MS4.I2.RI。
[0133] 为了将另外的微服务信息存储在分布式账本LDG中,可以创建包括另外的微服务信息的另外的数据块,并且由第一计算单元S.CU将另外的数据块插入分布式账本LDG中。替选地,可以向另一计算节点发送另外的微服务信息,该计算节点创建另外的数据块并将另外的数据块插入到分布式账本LDG中。创建另外的数据块以及/或者将另外的数据块插入到分布式账本LDG中可以包括工作证明、利害关系证明、存储证明或经过时间的证明。此外,创建另外的数据块和/或将另外的数据块插入到分布式账本LDG中可以包括选择父数据块以及/或者计算父数据块的散列值。此外,创建另外的数据块以及/或者将另外的数据块插入到分布式账本LDG中可以包括选择合适的随机数RN.j、...、RN.l。
[0134] 图7示出了提供微服务信息MSI、MSI.1、...、MSI.7的方法的第四实施方式。第四实施方式包括第一实施方式的步骤(其可以包括关于第一实施方式或图4描述的特征和增强功能),此外,第四实施方式包括:利用第一计算单元S.CU基于微服务请求MSR确定DET-ACC第一帐户的步骤,其中,第一帐户与发出微服务请求MSR的访问实体有关;以及利用第一计算单元S.CU将一定数量的加密货币从第一帐户转移TRF到第二帐户的步骤,其中,第二帐户与操作第一微服务MS1、...、MS4和/或第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的微服务实体有关。
[0135] 在该第四实施方式中,微服务请求MRS包括与第一账户有关的公钥,并且微服务注册表或服务器S将与第二账户有关的公钥存储在服务器S的第一存储单元MU中。替选地,与第二帐户有关的公钥可以存储在微服务数据库MSDB和/或分布式账本LDG中,具体地,在微服务信息MSI.1、...、MSI.7中,使得对于第一微服务MS1、...、MS4的每个实例MS1.I1、...、MS4.I2,可以存在用于接收加密货币的帐户。此外,借助于智能合约来执行一定数量的加密货币的转移。具体地,如果第一接口S.IF接收到正确的微服务请求MSR,则智能合约启动一定数量的加密货币的转移。
[0136] 具体地,服务器S可以创建将一定数量的加密货币从第一账户转移到第二账户的事务日志,如果该事务日志被包括在分布式账本LDG中或者在另一分布式账本中的话。具体地,在第一帐户需要创建事务日志的签名以引起加密货币的转移的情况下,服务器S可以向发出微服务请求MSR的实体提供事务日志,使得发出微服务请求MSR的实体可以利用与第一帐户的公钥相关联的私钥来创建事务日志的签名。替选地,微服务请求MSR可以包括事务日志和利用所述密钥来签名的事务日志的签名。
[0137] 具体地,确定DET-MSI微服务信息MSI的步骤可以基于正在转移的加密货币的数量。例如,微服务请求MSR可以包括要转移的加密货币的数量,并且负载平衡可能优先选择具有大量要转移的加密货币的微服务请求MSR,以基于供应和需求创建市场。具体地,授权信息MS1.I1.AUT、...、MS4.I2.AUT也可以基于正在被转移的加密货币的数量,例如,给定第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的使用所需的最小数量的加密货币。
[0138] 图8示出了提供微服务信息MSI、MSI.1、...、MSI.7的方法的第五实施方式。第五实施方式包括第一实施方式的步骤(其可以包括关于第一实施方式或图4描述的特征和增强功能)、第二实施方式的步骤(其可以包括关于第二实施方式或图5描述的特征和增强功能)、第三实施方式的步骤(其可以包括关于第三实施方式或图6描述的特征和增强功能)以及第四实施方式的步骤(其可以包括关于第四实施方式或图7描述的特征和增强功能)。特别地,用虚线标记的步骤是可选的步骤。
[0139] 图9示出了从第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2接收输出数据的方法的实施方式,或者使用由根据本发明的方法提供的微服务信息MSI的方法的实施方式。
[0140] 所示出的实施方式的第一步是利用客户端C的第二接口C.IF发送SND-MSR微服务请求MSR,具体地,将微服务请求MSR从客户端的第二接口C.IF发送到服务器的第一接口S.IF。微服务信息MSI可以包括如关于提供PROV-MSI微服务信息MSI的方法的实施方式之一所描述的数据。
[0141] 所示出的实施方式的后续步骤是利用服务器S的第一接口S.IF接收REC-MSR微服务请求MSR,通过利用服务器的第一计算单元S.CU基于微服务请求MSR查询微服务数据库MSDB来确定DET-MSI微服务信息MSI,其中,微服务数据库MSDB存储在分布式账本LDG中,并且利用服务器的第一接口S.IF提供PROV-MSI微服务信息MSI。这些步骤可以包括关于提供微服务信息MSI或图4至图8的方法的实施方式描述的特征和增强功能。此外,服务器S可以执行关于提供微服务信息MSI或图4至图8的方法的实施方式描述的提供微服务信息MSI的方法的另外的步骤。
[0142] 所示出的实施方式的后续步骤是利用客户端的第二接口C.IF接收REC-MSI微服务信息MSI,其中,微服务信息MSI由服务器的第一接口S.IF提供PROV-MSI。微服务信息MSI可以包括关于提供微服务信息MSI的方法的实施方式之一描述的数据。
[0143] 所描述的实施方式的后续步骤是利用客户端的第二计算单元C.CU基于微服务信息MSI确定DET-MSI第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2。具体地,第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2可以由在微服务信息MSI中包含的第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的位置MS1.I1.LOC、...、MS4.I2.LOC给出。因此,可以通过提取第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的位置MS1.I1.LOC、...、MS4.I2.LOC来确定第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2。
[0144] 所描述的实施方式的后续步骤是利用客户端的第二接口C.IF向第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2发送SND-ID输入数据,并且由微服务服务器S1、S2接收该输入数据。具体地,第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2的位置MS1.I1.LOC、...、MS4.I2.LOC可以作为URL给出,并且第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2可以是网络服务器,并且可以通过使用输入数据作为参数发出HTTP-GET或HTTP-POST请求来将输入数据传输到网络服务器。具体地,微服务服务器S1、S2执行在确定DET-IMS的步骤中确定的第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2。
[0145] 所描述的实施方式的后续步骤是:通过将第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2应用于输入数据来利用微服务服务器S1、S2确定DET-OD输出数据,利用微服务服务器S1、S2发送SND-OD输出数据,以及利用客户端C的第二接口C.IF从第一微服务MS1、...、MS4的实例MS1.I1、...、MS4.I2接收REC-OD输出数据。
[0146] 图10示出了提供和/或使用微服务信息MSI的系统。该系统包括服务器S、客户端C、微服务服务器S1、S2和存储在分布式账本LDG中的微服务数据库MSDB,所有组件借助网络NETW连接。
[0147] 服务器S、客户端C和/或微服务服务器S1、S2可以是(个人)计算机、工作站、在主机硬件上运行的虚拟机、微控制器或集成电路。作为替选方案,服务器S、客户端C和/或微服务服务器S1、S2可以是真实的或虚拟的计算机组(用于真实计算机组的技术术语是“集群”,用于虚拟计算机组的技术术语是“云”)。服务器S包括第一接口S.If、第一计算单元S.CU和第一存储单元S.MU,客户端C包括第二接口C.IF、第二计算单元C.CU和第二存储器单元C.MU。
[0148] 第一接口S.IF和/或第二接口C.IF可以实现为硬件接口或软件接口(例如,PCI-总线、USB或火线)。通常,第一计算单元S.CU和/或第二计算单元C.CU可以包括硬件元件和软件元件,例如微处理器、现场可编程阵列(首字母缩写词是“FPGA”)或特定应用的集成电路(首字母缩写词是“ASIC”)。第一存储器单元S.MU和/或第二存储器单元C.MU可以实现为非永久主存储器(例如随机存取存储器)或永久大容量存储器(例如硬盘、U盘、SD卡、固态磁盘)。
[0149] 网络NETW可以实现为LAN(“局域网”的首字母缩写词),特别是WiFi网络,或任何其他本地连接,例如,经由通过蓝牙或USB(“通用串行总线”的首字母缩写词)。网络NETW也可以实现为WAN(“广域网”的首字母缩写词),特别地,网络NETW可以与因特网等同。替选地,网络NETW也可以实现为VPN(“虚拟专用网络”的首字母缩写词)。
[0150] 微服务数据库MSDB可以包含在服务器的第一存储器单元S.MU中,或者它可以存储在单独的存储单元上,如图10所示。具体地,如果存储在分布式账本LDG中,微服务数据库MSDB可以存储在对等网络中。
[0151] 在没有明确描述的任何地方,与附图有关描述的各个实施方式或它们各自的方面和特征可以进行组合或彼此交换,而不限制或扩大所描述的发明的范围,只要这种组合或交换是有意义的并且在本发明的意义上。关于本发明的一个实施方式或关于一个附图描述的优点在适用的情况下也是本发明的其他实施方式的优点。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈