首页> 中国专利> 提供对数据内容的访问的改进的可扩展的服务器架构

提供对数据内容的访问的改进的可扩展的服务器架构

摘要

本发明涉及对资源的访问和服务器对数据的管理。为了向用户提供对应用的全域访问点,同时允许严格控制数据的所有权和本地化,第一设备接收来自用户的用于访问资源的请求,并且如果用户具有对资源进行访问的权限,则向用户发送多个第二设备之间的能够访问该资源并将该资源递送给客户端的第二设备的通信端点的标识符。

著录项

说明书

技术领域

本发明总体上涉及计算和通信的领域。更具体地,本发明涉及使用多个服务器对资源的访问和管理。

背景技术

如今,随着提供给用户的数据量以及使用这种数据的应用的数量急剧增加,对存储在服务器中的资源和数据的访问变得越来越重要。在计算中,服务器是为其他程序或设备(称为“客户端”)提供功能的计算机程序或设备。服务器的计算可以在单个设备上执行,或者跨多个设备分布。

存在许多不同种类的服务器,例如,允许客户端执行请求并从数据库取回信息的数据库服务器、旨在存储文件的文件服务器、允许接收和发送邮件的邮件服务器等等。

许多服务器旨在向客户端提供对资源的访问。资源可以是存储在服务器上的任何数据或信息,这些数据或信息要由客户端取回以便将其呈现给用户。例如,资源可以是存储在服务器中的图片,以便根据客户端的请求对其进行发送。旨在向客户端提供对资源的访问的这种服务器在许多应用中使用。例如,专用于社交网络的服务器存储大量资源(图片、视频、帖子等),根据请求将这些资源发送到客户端,以例如在Web浏览器或移动应用中显示这些资源。

这种种类的服务器也可以用于专业应用。例如,申请人已经开发了一种创新的解决方案来执行交互式演示,其中执行演示的用户可以在演示中插入交互式内容(民意测验(poll)、游戏等)。演示的内容可以作为资源存储在服务器中,并根据客户端的请求被取回。这样的内容可以包括例如要由动态演示呈现/显示的数据(图像、视频、文本等)和/或在动态演示的执行期间基于用户输入被收集的数据(例如,统计数据、分数等)。

随着客户端数量的增加,存储在服务器中用于应用的数据量也可能急剧增加。然后,出于以下各种原因,由服务器提供的服务质量(QoS)可能变差:服务器的带宽和/或计算资源可能变得不足以管理针对不断增加数量的客户端的请求,并且管理用户的请求的延迟可能增加;当存储在数据库中的资源越来越大时,查询数据库中资源的响应时间也可能增加;对于全球客户端,如果所有服务器都位于相同位置,则处于与服务器不同的国家或大陆的客户端也可能由于跨不同国家或大陆的通信时间而经历高延迟。

术语“可扩展性”表示系统或服务适应需求增长并且能够在响应更高需求(即,不断增加数量的客户端、不断增加数量的要提供的资源等等)时保留其QoS的能力。

当针对每个客户端创建特定基础结构时,某些服务器架构被视为“单租户”:例如,每个客户端(或客户端的组,例如,一家公司)可以由专用的基础结构(例如,仅用于其用途的服务器和数据库)服务。该解决方案提供了确保来自客户端的数据将不会由另一客户端访问,并且精确地定位数据的优点。然而,该解决方案在可扩展性方面无法实现很好的结果。实际上,与每个客户端相关的基础结构需要分别进行调整,这同时在客户端的资源需求增加时几乎不允许快速使用附加的资源,并且在客户端的资源需求减少时可能导致资源浪费。

服务器应用的其他架构被称为“多租户”。在这样的架构中,相同的基础结构(服务器、存储装置等)用于多个客户端。这种类型的架构比单租户架构更高效以实现可扩展性,因为相同的资源用于多个客户端,因此可以根据客户端的需求动态分配资源。然而,在这样的架构中,来自所有客户端的数据都存储在相同的存储装置中。因此,更加难以要确保来自客户端的数据将不会由另一客户端访问。此外,如果在世界各地有大量的客户端,则通常将在不同的国家/大陆部署不同的服务器,以便在有限的延迟内服务所有客户端。在这种情况下,来自所有客户端的所有数据将被复制到世界各地的不同服务器中。这是一个问题,因为这不允许对数据进行精确的本地化,而这还是一个问题,因为客户端越来越关注其数据的物理本地化。这也浪费了存储资源,因为属于处于一个国家的客户端的数据可能会在不使用这些数据其他国家和大陆中被复制。

因此,现有解决方案中没有一个允许同时提供对服务的唯一且全域的访问以及针对每个客户端的数据的访问和本地化进行精细控制。

因此,需要这样一种设备,该设备允许对服务的唯一且全域的访问,同时允许客户端控制其数据的访问和本地化。

发明内容

为此,本发明公开了一种第一设备,包括:第一通信端点,其被配置为与用户设备建立连接;对一个或多个第一数据存储装置的访问,该第一数据存储装置存储以下各项:多个用户的用户凭证;资源的标识符的集合,该资源被存储在分别由两个或更多个第二设备访问的两个或更多个第二数据存储装置上,该集合中的每个标识符具有与其相关联的访问权限,以及具有对存储资源的第二数据存储装置的访问权的第二设备的第二通信端点的标识符;一个或多个第一处理逻辑,其被配置为在从用户设备接收到用于访问所述资源的请求时进行以下操作,所述请求包括所述资源的标识符:基于与接收到的资源标识符相关联的访问权限,来验证用户是否具有对请求的资源进行访问的权限;如果与所述用户设备相关联的所述用户具有对请求的资源进行访问的权限,则将具有对存储资源的第二数据存储装置的访问权的第二设备的通信端点的标识符发送到用户设备。

有利地,所述一个或多个第一处理逻辑被配置为在来自用户设备的认证请求还包括用户凭证时,基于所述用户凭证和多个用户的用户凭证来认证与所述用户设备相关联的用户。

有利地,第一设备还包括第三通信端点,该第三通信端点被配置为与一个或多个第二设备的一个或多个第四通信端点建立连接。

有利地,第一处理逻辑还被配置为在从第二设备中的一个接收到资源标识符创建请求时进行以下操作:创建资源的唯一标识符;将两个或更多个第二设备中的所述一个或其第二通信端点的标识符与资源的所述唯一标识符相关联;向两个或更多个第二设备中的所述一个发送资源的唯一标识符。

有利地,一个或多个第一处理逻辑还被配置为:生成允许一个或多个第二设备标识用户并且授予对资源的访问权的标识数据,以及允许对用户的标识进行确认的标识确认数据;将标识数据发送到用户设备。

有利地,一个或多个第一处理逻辑被配置为在从具有对存储资源的第二数据存储装置的访问权的所述第二设备接收到包括所述标识数据的用于标识用户的请求时进行以下操作:基于所述标识数据和所述标识确认数据来确认用户的标识;如果标识被确认,则将用户的标识和用户对资源进行访问的权限的确认发送到所述第二设备。

有利地,一个或多个第一处理逻辑被配置为在从具有对存储资源的第二数据存储装置的访问权的所述第二设备接收到包括所述标识数据的用于标识用户的请求时,将所述标识确认数据发送到具有对存储资源的第二数据存储装置的访问权的所述第二设备。

有利地,一个或多个第一处理逻辑被配置为在生成用户确认数据时,将标识确认数据发送到一个或多个第二设备。

有利地,一个或多个第一处理逻辑被配置为基于标识数据以及第一设备和一个或多个第二设备共用的共享秘密密钥来生成标识确认数据。

有利地,标识数据是令牌,并且标识确认数据是令牌的签名。

本发明还公开了一种方法,包括:从用户设备接收用于访问资源的请求,所述请求包括资源的标识符;访问存储以下各项的一个或多个第一数据存储装置:多个用户的用户凭证;包括所述请求的资源的资源的集合的标识符的集合,所述资源的集合被存储在分别由两个或更多个第二设备访问的两个或更多个第二数据存储装置上,该集合中的每个标识符具有与其相关联的访问权限,以及具有对存储资源的第二数据存储装置的访问权的第二设备的第二通信端点的标识符;基于与资源标识符相关联的访问权限,来验证与所述用户设备相关联的用户是否具有对资源进行访问的权限;如果与所述用户设备相关联的用户具有对资源进行访问的权限,则向用户设备发送具有对存储请求的资源的第二数据存储装置的访问权的第二设备的通信端点的标识符。

本发明还公开了一种计算机程序产品,包括:非暂时性计算机可读存储介质;以及被存储在非暂时性计算机可读存储介质上的程序代码,该程序代码当由一个或多个处理器执行时,使得一个或多个处理器进行以下操作:从用户设备接收用于访问资源的请求,所述请求包括资源的标识符;访问存储以下各项的一个或多个第一数据存储装置:多个用户的用户凭证;包括所述请求的资源的资源的集合的标识符的集合,所述资源的集合被存储在分别由两个或更多个第二设备访问的两个或更多个第二数据存储装置上,该集合中的每个标识符具有与其相关联的访问权限,以及具有对存储资源的第二数据存储装置的访问权的第二设备的第二通信端点的标识符;基于与资源标识符相关联的访问权限,来验证与所述用户设备相关联的用户是否具有对资源进行访问的权限;如果与所述用户设备相关联的用户具有对资源进行访问的权限,则向用户设备发送具有对存储请求的资源的第二数据存储装置的访问权的第二设备的通信端点的标识符。

本发明还公开了一种第一设备,包括:对一个或多个第一数据存储装置的访问,该第一数据存储装置存储以下各项:多个用户的用户凭证;资源的标识符的集合,该资源被存储在分别由两个或更多个第二设备访问的两个或更多个第二数据存储装置上,该集合中的每个标识符具有与其相关联的访问权限,以及具有对存储资源的第二数据存储装置的访问权的第二设备的第二通信端点的标识符;第三通信端点,其被配置为与一个或多个第二设备的一个或多个第四通信端点建立连接;第一处理逻辑,其被配置为在从两个或更多个第二设备中的一个接收到资源标识符创建请求时进行以下操作:创建资源的唯一标识符;将两个或更多个第二设备中的所述一个或其第二通信端点的标识符与资源的所述唯一标识符相关联;向第二设备中的所述一个发送资源的唯一标识符。

本发明还公开了一种方法,包括:从两个或更多个第二设备中的一个接收资源标识符创建请求;访问存储以下各项的一个或多个第一数据存储装置:多个用户的用户凭证;资源的集合的标识符的集合,所述资源的集合被存储在分别由所述两个或更多个第二设备访问的两个或更多个第二数据存储装置上,该集合中的每个标识符具有与其关联的访问权限,以及具有对存储资源的第二数据存储装置的访问权的第二设备的第二通信端点的标识符;创建资源的唯一标识符;将两个或更多个第二设备中的所述一个或其第二通信端点的标识符与资源的所述唯一标识符相关联;向两个或更多个第二设备中的所述一个发送资源的唯一标识符。

本发明还公开了一种计算机程序产品,包括:非暂时性计算机可读存储介质;以及被存储在非暂时性计算机可读存储介质上的程序代码,该程序代码当由一个或多个处理器执行时,使得一个或多个处理器进行以下操作:从两个或更多个第二设备中的一个接收资源标识符创建请求;访问存储以下各项的一个或多个第一数据存储装置:多个用户的用户凭证;资源的集合的标识符的集合,所述资源的集合被存储在分别由所述两个或更多个第二设备访问的两个或更多个第二数据存储装置上,该集合中的每个标识符具有与其关联的访问权限,以及具有对存储资源的第二数据存储装置的访问权的第二设备的第二通信端点的标识符;创建资源的唯一标识符;将两个或更多个第二设备中的所述一个或其第二通信端点的标识符与资源的所述唯一标识符相关联;向两个或更多个第二设备中的所述一个发送资源的唯一标识符。

本公开允许用户设备受益于对服务的全域和集中式访问。

本公开允许在属于不同客户端的资源之间进行严格分离,以及对数据的本地化的严格控制。

本公开允许可扩展的应用的成功开发。

本发明允许减少带宽和存储需求,以及减少获得资源的延迟。

在某些方面,本公开允许减小用户之间共享的文件的大小。

在某些方面,本公开允许在严格控制资源访问和新创建的资源的本地化的同时创建新资源。

在某些方面,本公开允许在全域访问点中以集中的方式管理用户的标识、认证和对资源的访问权限,尽管资源在大量不同的设备中进行了重新分配。

附图说明

根据下面对多个示例性实施例及其附图的描述,将更好地理解本发明,并且其各种特征和优点将变得显而易见,其中:

-图1描绘了现有技术中的服务器的示例,该服务器被配置为标识用户并根据请求向用户递送数据;

-图2描绘了本发明的多个实施例中的设备的示例;

-图3描绘了本发明的多个实施例中的服务器的功能架构的示例;

-图4a至图4c分别描绘了本发明的多个实施例中的用户交互的3个流程图;

-图5a至图5e描绘了在本发明的多个实施例中用于创建和取回资源的示例性流程图;

-图6a和图6b分别描绘了在现有技术和本发明的多个实施例中通过服务器访问数据的两个示例;

-图7描绘了本发明的多个实施例中的方法的示例。

具体实施方式

图1描绘了现有技术中的服务器的示例,该服务器被配置为标识用户并根据请求向用户递送数据。

服务器100是物理机或虚拟机110,并且被配置为标识要授予对资源的访问权的用户。

为此,服务器100具有对数据库140的访问权,该数据库140既包括与用户的标识相关的数据,也包括要被访问的资源。服务器运行标识服务,该标识服务被配置为根据标识请求基于相关数据(例如,登录名(login)和密码)来标识用户。

服务器100还运行管理器,该管理器包括用户凭证,该用户凭证包括对资源的访问权限。因此,服务器100能够根据来自用户的资源请求来确认用户是否具有对资源进行访问的权限,并且在用户具有对资源进行访问的权限的情况下,将资源发送回用户。

服务器100为所有用户/客户端提供对所有资源的全域访问。然而,来自所有客户端的所有资源都由相同的服务器访问。因此,不可能物理上分离属于各种客户端的数据。此外,如果需要在全球范围内递送服务,则数据库140的所有数据将被复制到全球范围内的多个服务器。这导致存储空间的浪费,因为来自给定用户的可能在单个国家中消耗的数据将在全球范围内无用地复制。同时,这种全球范围的复制导致无法控制数据的本地化。

图2描绘了本发明的多个实施例中的设备的示例。

在本发明的多个实施例中,用户设备240发送用于访问资源的请求。用户设备可以是具有通信和处理能力的任何合适种类的设备。例如,用户设备可以是智能电话、平板电脑、个人计算机或智能手表。可以例如使用web浏览器或计算机应用来访问资源。

在本公开中,本发明将以一种应用为示例,其中用户设备访问允许执行动态演示的资源。例如,资源可以是图片、视频,也可以是动态民意测验或计分活动。计分活动是例如允许基于来自动态演示的观看者的输入来获得分数的活动。例如,在民意测验的情况下,观看者可以通过在有限列表中选择项目来进行投票,并且投票被收集。可以插入在动态演示过程中从用户收集数据的任何种类的活动。然而,本发明不限于这些示例,并且本发明可以用于允许用户设备访问可以由用户设备240显示、播放、执行或更一般地处理的任何种类的资源。例如,资源可以是办公文件、用于音频或视频处理的主文件等。更一般地,本发明适用于由计算机可读的任何数据以及可以以二进制形式存储的任何数据。

如下面将更详细解释的,用户设备首先向第一设备200发送用于访问资源的请求,该第一设备200向用户设备240提供执行对实际上具有对资源的访问权的第二设备250的第二请求所必需的元素。

在本公开中,资源位于两个或更多个数据存储装置280、281上,这些数据存储装置280、281分别由两个或更多个第二设备250、251访问。例如,第二设备250具有对第二数据存储装置280的访问权,该第二数据存储装置280存储资源中的一些资源,而第二设备251具有对存储其他资源的第二存储装置281的访问权。

第一设备200以及两个或更多个第二设备250、251可以是包括具有计算和通信能力以及具有对存储装置的访问权的能力的任何合适的设备。例如,第一设备200以及两个或更多个设备250、251可以是个人计算机或服务器。尽管在图2中仅表示了两个设备,但是本发明适用于更多数量的第二设备。因此,可以根据用户的资源需求并且还根据操作需求来定制第二设备的数量。例如,可以针对用户设置第二设备和/或第二设备可以专用于一个国家或地区。

两个或更多个第二数据存储装置280、281可以是适合于存储和取回数据的任何类型的存储装置。例如,两个或更多个第二数据存储装置280、281可以是存储器、硬盘驱动器、光盘等中的一个或多个。在图2中,两个或更多个第二数据存储装置280、281分别在两个或更多个第二设备250、251中表示。然而,尽管两个或更多个第二数据存储装置280、281可以位于一个更多个第二设备250、251中,但是本发明不限于该示例。例如,两个或更多个第二数据存储装置280、281中的一些或全部可以是两个或更多个第二设备250、251分别具有对其的访问权的共享硬盘驱动器、可以属于共享数据库、或者可以位于连接到两个或更多个第二设备250、251的设备中。例如,本公开适用于服务器场,其中数据存储在共享硬盘/数据库上。然而,这不限制本发明精确定义数据的本地化以及严格分离属于不同客户端的数据的能力。实际上,与一个或多个第二数据存储装置相关联的设备的集合(例如,服务器场)可以专用于单个客户端。

第一设备200和第二设备250、251分别包括第一通信端点210和第二通信端点260、261,第二通信端点260、261适于与用户设备240建立连接。第二通信端点260、261可以是例如WAN连接或通信端口。根据本发明的各种实施例,第二通信端点260、261可以包括允许与用户设备240进行通信的任何装置,例如,TCP/IP端口。

第一设备200和第二设备250、251也分别包括处理逻辑230、231、270、271。在本公开的过程中,处理逻辑可以是根据软件指令进行操作的处理器、处理器的硬件配置或其组合。应当理解,本文讨论的功能中的任一个或全部可以以纯硬件实现方式和/或通过根据软件指令进行操作的处理器来实现。还应该理解,软件指令中的任一个或全部可以存储在非暂时性计算机可读介质中。因此,相同设备的多个处理逻辑可以是例如不同的处理器、被配置为执行不同指令的相同的处理器、或者用于配置一个或多个处理器的多个计算机指令。

可以根据不同的规则在由第二设备250、251访问的第二数据存储装置280、281之间执行对资源的重新分配。例如,每个客户端或公司可以具有自己的第二设备来存储其资源;可以针对每个国家定义设备和存储装置等等。因此,本公开有利地允许将每个客户端、国家等的资源完全分离到由不同的第二设备访问的不同存储装置中,并因此确保根据客户需求将不同客户端的资源完全分离。此外,由于每个客户端都能够精确地定义其中存储其资源的设备,因此本公开允许对数据的本地化进行精确的定义。例如,本公开允许每个客户端确保其资源存储在其自己的国家中(即,属于法国客户端的资源在法国、属于德国客户端的资源在德国等等)。

随着关于数据所有权和本地化的关注不断增长,该功能对于存储战略或机密数据的客户端非常重要。此外,数据的本地化和保护现在也是一个法律问题,以欧洲法规(EU)2016/679或通用数据保护法规为示例。通过允许用户和客户端高效地控制资源的本地化和访问权限,本公开可以因此帮助他们遵守与数据保护相关的法律要求。

第一设备还具有对一个或多个第一数据存储装置220的访问权。如已经参考第二数据存储装置280、281所解释的,第一数据存储装置220可以位于第一设备200内,或者位于与第一设备相关的设备内。

第一数据存储装置220存储多个用户的用户凭证。用户凭证可以包括各种数据,包括用户的个人数据(姓名、邮件地址等)、允许对用户进行认证的数据以及定义用户有资格访问的资源的数据。允许对用户进行认证的数据可以采用任何合适的形式,例如,允许验证用户输入的密码正确的哈希值。允许认证的数据也可以是访问码。访问码是按需生成的用于访问单个资源或有限资源集的密码。当注册用户希望执行要求要由未注册用户访问的资源的动态演示时,访问码很有用:可以生成访问码,该访问码仅授予对单个资源或动态演示所要求的有限资源集的访问权。因此,未注册用户可以成功观看动态演示。访问码可以有一个到期期限,以便仅在打算执行动态演示时(例如,在一天、一周内等)允许未注册用户访问资源。

如上面所指出的,第一数据存储装置220还存储定义用户有资格访问的资源的数据。该数据可以采用不同的形式。例如,该数据可以是用户具有对其进行访问的权限的资源的标识符的列表。根据本发明的各种实施例,关于资源的访问权限可以以不同的方式来定义。例如,可以通过访问码来授予用户对定义的资源的访问权。还可以定义包含大量资源的环境。在申请人的动态展示框架中,这种环境被称为“全域(universe)”。即使可以为这种种类的环境指定其他名称,但是将在本公开的其余部分中继续使用该命名。例如,公司可以定义其自己的全域,并且具有对全域的访问权的用户(例如,公司的员工)可以具有对属于全域的所有资源的访问权。

一个或多个第一数据存储装置220还存储资源的标识符的集合:每个资源与唯一标识符相关联,该唯一标识符允许明确地取回资源。

资源的每个标识符具有与其相关联的访问权限,该访问权限定义了有资格访问该资源的用户。可以以不同的方式定义访问权限。例如,访问权限可以针对每个资源显式定义具有对该资源的访问权的用户列表。访问权限也可以间接与资源相关联:例如,资源可以被定义为属于公司的全域,并且访问权限可以与该全域相关联。例如,只有公司的雇员才可以具有对属于公司的全域的资源的访问权。更具体地,可以将访问权限定义为资源组。

资源的每个标识符还与第二设备250、251的第二通信端点260、261的标识符相关联,该第二设备250、251具有对存储该资源的第二数据存储装置280、281的访问权。根据本发明的各种实施例,这样的标识符可以是允许用户设备240发起与第二设备的连接的任何标识符。例如,标识符可以是允许发起到第二设备的连接的URL或IP地址。因此,第二设备的第二通信端点的标识符允许在所有第二设备中标识能够授予对资源的访问权的一个第二设备。至于访问权限,第二通信端点的标识符可以以不同的方式与第二资源的标识符相关联。例如,针对给定的资源的标识符,可以通过定义第二设备250、251的第二通信端点260、261的标识符来进行直接关联,该第二设备250、251具有对存储该资源的第二数据存储装置280、281的访问权。也可以对其进行间接关联。例如,第二通信端点260、261可以与全域相关联。因此,如果资源属于全域,则将该资源与关联于全域的第二通信端点260、261相关联。这允许针对属于全域的所有资源(例如,要由公司使用的资源)定义单个通信端点。

根据本发明的各种实施例,可以以不同的方式存储资源标识符。例如,可以针对每个资源存储唯一的资源标识符,使得一个或多个数据存储装置220存储所有资源的详尽列表。可替代地,资源的标识符可以由通用标识符(例如,第二设备、服务器、全域等的标识符)以及取决于该通用标识符的资源的唯一标识符组成。这种种类的标识符的示例可以是包括第二设备中的一个的地址的URL,然后是资源的唯一标识符。在这样的示例中,第二通信端点260、261和访问权限可以与通用标识符相关联。

为了取回资源,用户设备240可以执行对第一设备200的请求。该请求包括要访问的资源的标识符。

在接收到请求时,一个或多个第一处理逻辑230被配置为基于与资源标识符相关联的访问权限来验证用户是否具有对资源进行访问的权限。这可以以任何合适的方式来执行,例如,验证用户是属于具有对资源的访问权的用户帐户,还是用户具有对该资源所属的全域的访问权。

如果用户具有对资源进行访问的权限,则一个或多个第一处理逻辑230被配置为向用户发送具有对存储该资源的第二数据存储装置的访问权的第二设备的通信端点的标识符。

例如,如果资源位于第二存储装置280中,则一个或多个第一处理逻辑230被配置为向用户设备240发送第二通信端点260的标识符,以允许用户设备连接到第二设备250。相应地,如果资源位于第二存储装置281中,则一个或多个第一处理逻辑230被配置为向用户设备240发送第二通信端点261的标识符,以允许用户设备连接到第二设备251。这允许用户设备与能够递送期望资源的第二设备建立通信。

在本发明的多个实施例中,用户设备240被直接重定向到相关的第二设备,使得用户甚至不知道使用了与不同设备的连接。

因此,用户设备240与提供对相关的第二用户设备的访问权的单个入口点(在该示例中为第一用户设备200)进行通信。这允许所有用户设备受益于对服务的全域和集中式访问。

同时,跨不同的第二设备的资源分配允许在属于不同客户端的资源之间进行严格分离,以及对数据的本地化的严格控制。

可以根据每个客户端的需求来针对每个客户端定制第二设备的存储和计算能力。因此,该架构允许可扩展的应用的成功开发。

还可以设置第二设备之间的数据的本地化,使得每个客户端的资源尽可能地靠近客户端的办公室,或更通常地,靠近资源要被消耗的地方。资源与客户端之间的亲密度减少了带宽需求,并减少了获得资源的延迟。同时,不需要像在多租户架构中那样在多个位置甚至在世界各地复制所有资源。因此,图2中显示的架构减少了存储需求。

在本发明的多个实施例中,第一设备200包括处理逻辑231,该处理逻辑231被配置为根据来自用户设备240的认证请求来认证用户。这种认证请求可以包括用户凭证,并且可以使用用于执行认证的任何合适的方式。例如,可以使用使用登录名和密码的认证方法。根据本发明的各种实施例,处理逻辑231可以例如是以不同的指令进行操作的与第一处理逻辑230相同的处理器,或者可以是第一设备200的另一处理器。

如将在下文中更详细地解释的,在本发明的多个实施例中,第一设备200以及一个或多个第二设备250、251需要进行通信,以例如交换与用户相关的认证信息。为此,第一设备200可以包括第三通信端点211,并且一个或多个第二设备250、251可以分别包括被配置为与第三通信端点211建立连接的一个或多个第四通信端点290、291。因此,第一设备200以及一个或多个第二设备250、251能够直接通信以交换与用户的标识和/或认证相关的信息,如将参考图5c至图5e更详细地解释的。

图3描绘了本发明的多个实施例中的服务器的功能架构的示例。

第一服务器300可以是用作物理服务器的第一设备200,或者是在第一设备200上运行的虚拟机(VM)310上运行的虚拟服务器。第一服务器用作用于用户标识自己并请求资源的唯一的全域访问点。

第二服务器301和第三服务器302可以分别是第二设备250和251,或者分别是在第二设备250和251上运行的VM 311、312。第二服务器和第三服务器实际上存储资源并将资源递送给用户。可以使用更多数量的服务器来存储并递送资源,但是只有单个服务器(第一服务器300)用作用于用户标识自己并最初请求资源的全域访问点。

第一服务器300具有对数据库340的访问权,该数据库340存储用户的标识数据、资源标识符、资源访问权限以及与存储资源的服务器相关的数据。第二服务器301和第三服务器302分别具有对实际存储资源的数据库341、342的访问权。

根据来自用户的资源请求,第一服务器300取决于具有对资源的访问权的服务器将用户重定向到第二服务器301或第三服务器302。

因此,与图1中作为示例的现有技术解决方案相反,各种用户拥有的资源位于不同的服务器中。因此,可以控制资源的位置,并且不存在属于一个用户的数据由另一用户访问的风险。同时,用户将受益于对服务的唯一和全域的访问。

图4a至4c分别描绘了本发明的多个实施例中的用户交互的3个流程图。

图4a显示了用户的标识以及对资源的访问的示例的流程图。

如上面所指出的,用户可以具有对多个全域或环境/平台的访问权,每个全域由一个或多个第二设备250、251中的至少一个控制。全域例如可以对应于任何连贯的资源组,例如,公司、应用、国家等等。

在该示例中,用户(更具体地,用户设备240)向第一设备200发送连接请求。最初未标识该用户。因此,第一设备200对用户进行认证,并且创建用户的认证的cookie令牌。然后,将用户重定向到第二设备250,该第二设备250是用户的默认平台。

用户设备240然后发送用于访问第二设备250的平台的请求。如果不可能基于cookie来标识用户,则将用户重定向到第一设备200;如果可以标识用户,则向用户显示用户的环境,以便用户能够请求和显示资源。

图4b显示了对资源的访问的示例的流程图。

用户(更具体地,用户设备240)首先使用资源的标识符向第一设备200发送资源请求。在该示例中,第一设备200是运行访问服务的服务器。一旦资源的存在以及用户对资源的进行访问的权限被确认,用户就被重定向到具有对该资源的访问权的平台(在该示例中为第二设备250)。

因此,用户设备240使用资源的标识符向第二设备250发送资源请求。第二设备250确认对资源的访问权,并将资源发送回用户设备240,因此可以向用户显示资源。

图4c显示平台切换的示例的流程图。

在某些情况下,用户可能希望访问与他/她登录的平台不同的平台。例如,用户可能希望访问具有对另一应用的资源的访问权的平台,例如,一个或多个第二设备250、251中的另一第二设备251。为此,用户设备240发送用于切换到另一平台(例如,第二设备251)的请求。该请求包括cookie,并且第二设备251根据cookie执行对用户的标识,并显示新平台的内容。

图5a至5e描绘了在本发明的多个实施例中用于创建和取回资源的示例性流程图。

图5a至图5e表示用户设备240、第一设备230、第二设备250,并且图5c至图5e还表示第二设备251。然而,这些仅通过示例的方式来表示,并且图5a至5e的示例可以利用其中可以实现本发明的任何设备来实现。

在图5a至5e的示例中,第一设备240以及第二设备250和251可以是例如物理和/或虚拟服务器,其被配置为向用户设备提供应用(例如,执行动态演示的应用)所需要的资源。

图5a描绘了本发明的多个实施例中的资源创建的示例性流程图。

如参考图4a至图4c所解释的,用户可以连接到第二设备250,该第二设备250向用户提供包括上下文所需要的资源的环境,这种环境也被称为“全域”。根据本发明的各种实施例,用户可能已经连接到第二设备250,因为该用户请求了第二设备250已经访问的资源和/或因为第二设备250向用户提供了他/她的默认全域。通过示例的方式,图5a将以第二设备250作为示例。然而,这仅通过示例的方式提供,并且该示例可以针对本发明的第二设备中的任一个来实现。

用户设备240的用户希望创建新资源。例如,用户可能已经针对动态演示创建了动态内容(即,民意测验、游戏等),并希望在线存储该内容以供将来使用和/或允许其他用户在观看动态演示时访问该内容。

为此,用户设备240向第一设备250发送资源创建请求510a。资源创建请求可以包含例如用户想要转换为资源的内容。

在接收到资源创建请求510a时,第二处理逻辑270被配置为生成资源标识符生成请求520a,该资源标识符生成请求520a要通过第四通信端点290被发送到第一设备200。资源标识符生成请求是用于针对新创建的资源生成资源标识符(或id)的请求。

在接收到资源通信请求520a时,第一处理逻辑230创建与内容相对应的资源标识符。资源标识符必须是唯一的。只要满足该要求,可以使用许多不同的方法来生成唯一的资源标识符:可以在每个资源标识符请求时递增属性的资源标识符;可以基于诸如第二设备250的id以及已经从第二设备250接收到的请求的数量之类的唯一的参数来创建资源标识符。用于生成唯一的资源id的任何合适的实施例都适用于本发明。例如,可以使用使用有限字符集的随机或伪随机生成方法来生成唯一的资源标识符。字符集可以包括字母数字字符(字母+数字)。在本发明的许多实施例中,字符集不包括字母数字字符,以便减少用户键入错误的访问码的可能性,该字母数字字符当由用户读取/键入时,可能产生解释错误(例如,0或O;1或I)。

然后,将资源的标识符存储530a在一个或多个数据存储装置220上。表示具有对资源和/或第二通信端点260的访问权的第二设备250的数据也需要被存储在一个或多个数据存储装置220中,并且与资源标识符相关联。该数据可以具有许多不同的类型(存储装置250的id、第二通信端点260的描述符或标识符等等)。这允许第二通信端点260的标识符与资源的标识符之间的直接或间接关联。可以根据资源请求将该标识符发送到用户设备,如将在下文更详细地解释的。如果可以存储和取回数据,则可以以许多不同的方式执行在一个或多个数据存储装置220中的数据的存储和关联。例如,数据可以存储在具有定义格式的文件(例如,表)中或数据库中。在本发明的多个实施例中,取决于第二设备250或第二通信端点260的标识符来生成资源标识符。例如,资源标识符可以是第二通信端点260的URL,其后是资源的唯一标识符。在这种情况下,因为第一设备200能够基于资源标识符将用户重定向到第二设备250,所以不需要将资源的唯一标识符存储在第一数据存储装置220中。

根据本发明的各种实施例,可以将其他数据直接或间接地与资源标识符(例如,资源的描述符、资源类型、对资源的访问权限)相关联(例如,如果访问权限与第二设备250访问的所有资源相关联)。

然后,资源标识符被发送回540a第二设备250,从而确认资源标识符已经被成功创建。

在接收到资源标识符时,第二处理逻辑270被配置为将资源标识符以及相关联的内容存储550a到一个或多个第二数据存储装置280。这里再次强调,可以在本发明中使用用于存储资源标识符和内容并对它们进行关联的任何合适的装置。

因此,创建资源,并且将资源标识符发送560a到用户设备240。因此,用户可以自由地使用该资源,并且容易地共享包括该资源的内容。可以通过指定唯一的资源标识符来简单地添加资源,如将在下面解释的,该唯一的资源标识符将允许其他用户取回资源。例如,如果资源是动态演示中的动态内容,则可以在用户设备240中创建演示文件,该演示文件包括对应的唯一的资源标识符。当用户将动态演示文件共享给其他用户时,用户设备的用户设备可以使用唯一的资源标识符从第二设备250取回资源,如将在下面更详细地解释的。

该示例说明了本发明创建新内容以及与其他用户容易地共享内容的能力。由于内容存储在一个或多个第二数据存储装置280中,因此仅需要将资源标识符在用户内共享。如果资源表示较大的内容(例如,视频),则这可以有利地减小用户内共享的文件的大小。此外,在每次资源创建时,提供全域访问的第一设备200仅知道创建了新资源,但是并不知道资源的实际内容。同时,资源实际上是由第二设备250创建的,该第二设备250提供对用户所属的全域的安全访问。因此,在每次创建资源时都会保留对数据访问和数据本地化的控制。

图5b描绘了本发明的多个实施例中的资源取回的示例性流程图。

在该示例中,用户设备240执行用于获得资源的请求,而无需资源的位置的任何先验知识。当用户设备正在使用由另一设备发送的文件或内容时,会典型地出现这种情况。例如,用户设备240可以正在观看由另一用户创建的并且包括动态内容的动态演示。动态演示以动态演示文件的形式被读取,其中资源由其标识符标识。因此,用户设备240仅需要基于资源标识符来取回资源,而无需资源的位置的任何先验知识。

为此,用户设备向第一设备200发送包括资源的标识符的资源访问请求500b。

在接收到请求时,如果用户尚未登录,则处理逻辑231标识该用户。本发明允许用于标识用户的不同方法。例如,用户可以是具有登录名和密码的注册用户。然后,注册用户可以有资格具有对某些资源的访问权。可以以不同的方式授予对资源的访问权。例如,可以针对某些资源单独授予访问权和/或用户可以具有对属于全域的资源中的全部或一部分的访问权。

另一种选择在于生成“访问码”,该访问码允许未注册用户具有对一个或多个特定资源的访问权。访问码的使用提供了一种向未注册用户授予对特定资源的访问权的灵活的选项。例如,如果公司的注册用户希望对属于另一公司的未注册用户(例如,商业客户)执行动态演示,则可以生成访问码,从而向未注册用户授予对动态演示所要求的资源的访问权。

在接收到资源访问请求500b时,处理逻辑231例如使用登录名和密码或访问码来标识510b用户。

然后,将请求转发520b到处理逻辑230,该处理逻辑230基于资源的标识符从一个或多个数据存储装置280中取回资源的位置,即,指示具有对该资源的访问权的第二设备的信息。在该示例中,资源可以由第二设备250取回。处理逻辑230还基于与资源的标识符相关联的访问权限和用户的用户凭证,来验证用户是否具有对资源进行访问的权限。

如果用户具有对资源进行访问的权限,则将第二设备的第二通信端点260的标识符发送540b给用户。如上面所指出的,该标识符可以是允许用户设备240与第二设备250建立连接的任何信息:IP地址、URL、服务器的名称等。用户设备也可以被重定向到第二设备250。例如,如果通过web浏览器访问资源,则可以实现重定向。重定向允许用户具有对信息的访问权,而甚至无需知道他/她现在正在与新服务器连接。

然后,用户设备向第二设备250发送用于访问资源的新请求550b。

处理逻辑270基于资源标识符在一个或多个数据存储装置280中定位资源,并将资源返回570b给用户。

该示例说明了即使用户仅知道资源标识符并且不具有关于资源的实际位置的任何先验知识,本发明也能够使用针对应用的单个访问点将资源递送给用户的能力。

图5c描绘了本发明的多个实施例中的资源取回的示例性流程图。

在该示例中,用户设备240执行用于获得资源的请求,而无需的资源位置的任何先验知识。另外地,为了确保第二设备对用户的标识,第一设备将用于第二设备进行标识的令牌递送给用户。

用户向第一设备200发送资源请求500c。

处理逻辑231无法标识用户,这是因为例如当他/她正在执行资源请求时用户尚未连接/登录。

因此,标识请求520c被发送到用户设备。用户设备240相应地发送530c用户凭证。处理逻辑231基于凭证以及存储在一个或多个第一数据存储装置220中的所有用户的凭证来认证用户,并生成与用户相关联的唯一的令牌以供将来进行标识,以及令牌签名来确认用户的标识。将令牌以及具有对资源的访问权的第二设备250的第二通信端点260的标识符发送550c到用户设备240。

然后,用户设备240向第二设备250发送新的资源请求560c,该新的资源请求560c包括资源的标识符和令牌。第二设备250的处理逻辑2100尝试基于令牌来标识用户,但是不具有允许其标识用户的信息。

然后,处理逻辑2100被配置为向第一设备200发送用于基于令牌确认用户的标识的请求580c。第一设备基于令牌确认用户的标识,并将用户凭证发送回第二设备250。可替代地,可以将签名发送到第二设备250,使得处理逻辑2100能够基于令牌来确认标识。

然后,第二设备成功标识了用户,并且第二设备将资源发送回590c用户。

根据本发明的各种实施例,第二设备250可以在用户设备的每个资源请求时请求第一设备确认用户的标识。第二设备250还可以一次请求用户标识的确认,并存储数据以允许其在来自用户设备240的下一个资源请求时直接标识用户。

在该示例中,使用令牌来标识用户。然而,可以使用其他标识数据,例如,cookie。更一般地,图5c中描述的原理适用于依赖于针对每个用户的标识数据(在该示例中为令牌)以及允许确认标识的标识确认数据(在该示例中为令牌的签名)的任何标识系统。本发明允许第一设备200向用户设备发送允许其向第二设备标识自己的标识数据,并且,当从第二设备接收到包括相同标识数据的请求时,使用标识确认数据来向第二设备250确认用户有资格访问资源,或将标识确认数据发送到第二设备250,使得处理逻辑2100能够确认标识。

该示例说明了本发明在全域访问点中以集中的方式管理用户的标识、认证和对资源的访问权限的能力,尽管资源在大量不同的设备中进行了重新分配。

图5d描绘了本发明的多个实施例中的资源取回的示例性流程图。

图5d的示例与图5c的示例非常相似。唯一的区别在于,为了使第二设备确认用户的标识,第一设备将标识确认数据发送580d到一个或多个第二设备250、251。

例如,如果使用令牌来标识用户,则第一设备200向一个或多个第二设备250、251发送令牌的签名,使得一个或多个第二设备可以确认标识;如果使用cookie来标识用户,则第一设备200向一个或多个第二设备250、251发送确认与该cookie相关联的会话有效所需的任何数据(即,会话ID,并且在一些实现方式中为相关联的安全数据,例如,用户设备240的IP地址)。取决于所使用的标识技术(例如,令牌或cookie),本领域技术人员将容易地标识标识确认数据。

因此,第一设备200向一个或多个第二设备250、251发送安全地标识用户所需的所有信息,而一个或多个第二设备250、251不必向第一设备200发送请求。因此,一个或多个第二设备250、251对用户的标识变得更快。

根据本发明的各种实施例,可以以不同的方式执行对标识确认数据的传输580d。例如,每次在第一设备200中标识用户并且创建对应的标识数据时,就可以针对用户发送数据。因此,一个或多个第二设备250、251实际上能够立即标识用户。

为了限制第一设备200与一个或多个第二设备250、251之间的通信并因此节省带宽,还可以定期地针对多个用户向一个或多个第二设备250、251发送标识确认数据。

然而,在这种情况下,当用户设备240发送资源请求560c时,第二设备250可能不具有标识确认数据。为了解决该问题,在第二设备250不具有标识确认数据的情况下,第二设备250可以向第一设备发送用于获得该数据的请求。因此,这允许节省带宽,同时在所有情况下都允许用户连接到第二设备250以访问资源。

图5e描绘了本发明的多个实施例中的资源取回的示例性流程图。

图5e的示例与图5c的示例非常相似。唯一的区别在于,为了使第二设备确认用户的标识,将标识确认数据与标识数据打包在一起。使用标识数据以及在第一设备200与一个或多个第二设备250、251之间共享的共享秘密密钥500e来生成标识确认数据。秘密密钥500e还允许处理逻辑2100、2101确认标识确认数据是正确的,并且因此成功地标识用户。这可以例如使用签名的令牌来执行,该签名的令牌包括使用共享的私有密钥500e生成的令牌(标识数据)和签名(标识确认数据)。因此,可以使用相同的共享密钥500e来验证签名的有效性。如果签名的有效性正确,则标识用户。

一旦共享密钥500e被设备知道,这有利地允许安全标识,而无需在第一设备200与一个或多个第二设备250、251之间直接交换数据。

图6a和图6b分别描绘了在现有技术和本发明的多个实施例中通过服务器访问数据的两个示例。

图6a描绘了现有技术中通过服务器访问数据的示例。

位于世界各地的用户610a、611a、612a、613a和614a连接到服务器600a,以获得他们的应用所需要的资源。所有资源都存储在服务器600a上,该服务器600a根据来自用户的请求将他们需要的资源发送回去。该解决方案具有许多缺点:如图6a中描绘的,可以在非常远的位置之间执行请求和数据交换。这会消耗带宽,并在用户发送他/她的请求的时间与接收到资源的时间之间生成高延迟。此外,所有资源都位于相同的服务器上。这可能会导致安全问题,因为很难确保属于用户中的一个用户的资源将不会由其他用户访问。

图6b描绘了本发明的多个实施例中的通过服务器访问数据的示例。

位于世界各地的用户610b、611b、612b、613b和614b连接到服务器600b,该服务器600b用作对资源的全域访问。然而,资源不是由服务器600b存储的,而是由服务器620b、621b、622b存储的。服务器600b将用户重定向到存储他们所需要资源的服务器:

-用户610b被重定向到服务器620b;

-用户611b和612b被重定向到服务器621b;

-用户613b和614b被重定向到服务器622b。

因此,资源可以位于更靠近用户的位置:减少了获得资源的交换延迟。此外,可以根据用户的需要设置服务器。例如,可以针对单个客户端设置服务器,由此允许数据的安全性的严格增强。

图7描绘了本发明的多个实施例中的方法的示例。

方法700包括第一步骤710:接收来自用户设备的用于访问资源的请求,所述请求包括资源的标识符。

方法700进一步包括第二步骤720:访问存储以下各项的一个或多个第一数据存储装置:

-多个用户的用户凭证;

-被存储在分别由两个或更多个第二设备访问的两个或更多个第二数据存储装置上的资源的标识符的集合,该集合中的每个标识符具有与其相关联的访问权限,以及具有对存储该资源的第二数据存储装置的访问权的第二设备的第二通信端点的标识符。

该方法还包括第三步骤730:基于与资源标识符相关联的访问权限,来验证用户是否具有对资源进行访问的权限。

方法700还包括第四步骤740:如果用户具有对资源进行访问的权限,则向用户设备发送具有对存储该资源的第二数据存储装置的访问权的第二设备的第二通信端点的标识符。

下面讨论的所有实施例分别适用于方法700。

本发明还可以被实现为计算机程序,该计算机程序被配置为验证用户是否具有对资源进行访问的权限,并且向用户设备发送具有对资源的访问权的设备的通信端点的标识符。这种计算机程序可以从用户设备接收请求,并且相应地处理该请求。参考图2、图3、图4a至图4c以及图5a至图5e描述的实施例可以分别由这种计算机程序实现,以便向用户授予对资源的访问权。

体现在这样的计算机程序中的程序代码能够作为程序产品以各种不同的形式被单独地或共同地分发。特别地,可以使用其上具有用于使得处理器执行本发明的实施例的方面的计算机可读程序指令的计算机可读存储介质来分发程序代码。

在某些替代实施例中,流程图、序列图和/或框图中指定的功能、动作和/或操作可以与本发明的实施例一致地重新排序、串行地处理和/或同时地处理。此外,流程图、序列图和/或框图中的任一个可以包括比与本发明的实施例一致地示出那些相比更多或更少的框。

尽管已经通过各种实施例的描述示出了本发明的全部,并且尽管已经相当详细地描述了这些实施例,但是申请人的意图不是限制所附权利要求书的范围或以任何方式将所附权利要求书的范围限定为这样的细节。附加的优点和修改对本领域技术人员将是显而易见的。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号