CN117296043A - 用于租用管理的方法、介质和系统 - Google Patents
用于租用管理的方法、介质和系统 Download PDFInfo
- Publication number
- CN117296043A CN117296043A CN202280023353.6A CN202280023353A CN117296043A CN 117296043 A CN117296043 A CN 117296043A CN 202280023353 A CN202280023353 A CN 202280023353A CN 117296043 A CN117296043 A CN 117296043A
- Authority
- CN
- China
- Prior art keywords
- lease
- team
- license
- list
- graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000008569 process Effects 0.000 claims abstract description 46
- 230000008520 organization Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 14
- 230000010354 integration Effects 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003340 mental effect Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/104—Grouping of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
示例性实施方案提供用于创建或修改租用的技术。租用创建过程可被划分成多个独立阶段,其中每个阶段独立于供应多个服务或资源中的其他服务或资源而在云计算环境中供应服务或资源。如果当前阶段失败,则该失败可被检测到并通过编程进行校正。例如,在检测到第一阶段失败时,系统可检索与该第一阶段唯一地关联的重试策略并处理该重试策略。可记录这些独立阶段中的每个阶段的进度,并且可结合该重试策略使用日志。在一些实施方案中,组织内的关系可由图形数据库来建模,从而能够比其他类型的数据结构更高效地分配许可。
Description
相关申请的交叉引用
本申请要求于2021年1月22日提交的美国临时专利申请63/140604号的权益,其全部公开内容据此以引用方式并入。
背景技术
在云计算/软件即服务(SAAS)的上下文中,多个组或组织可共享计算资源。对资源具有访问权的每个实体有时被称为“租户”,并且它们对计算资源的访问被称为租用。每个租用可与能够通过共享的计算环境来访问资源(处理资源、数据等)或服务的一个或多个用户相关联。必须创建和管理这些租用,这可能涉及将用户添加到租用中以及从租用中移除用户、改变分配给用户的许可、向用户提供对数据的访问以及其他相关动作。
发明内容
设想下面描述的实施方案可单独使用或组合使用。附图将下面描述的实施方案显示为统一过程,但可将该过程的各个部分分离以便实现如本文所述的优点。此外,可从特定角度(例如,主装置、辅助装置、服务器、对话中的另一参与方)来描述。应当理解,本发明不限于由下面标识的具体装置执行的特定动作。本领域的普通技术人员将理解,响应于下文概述的特定动作,在其他装置上执行互补动作,如在以下具体实施方式中更全面地描述。短语“在一个实施方案中”、“在另一个实施方案中”等并不旨在排除一起使用这些实施方案。例如,如果通过“在一个实施方案中”引入第一实施方案,并且通过“在另一实施方案中”引入第二实施方案,则设想第一实施方案和第二实施方案可以一起使用或单独使用。
本文所述的技术可体现为计算机实现的方法、存储在非暂态计算机可读介质上的指令、计算设备或系统或任何其他合适的技术。
在一些实施方案中,系统可接收创建租用的请求。该请求可触发涉及在服务平台中供应多个服务或资源的租用创建过程,该租用创建过程被划分成多个独立阶段。该系统可处理多个独立阶段中的第一阶段,其中第一阶段独立于供应多个服务或资源中的其他服务或资源而供应多个服务或资源中的一个服务或资源。
在常规技术中,租用创建往往是单个整体过程。不幸的是,云计算环境的可靠性往往低于常规计算环境,并且服务器故障在此类环境中可能更常见。因此,在预期服务器可能在过程完成之前发生故障的情况下计划租用创建过程是有益的。在传统的整体租用创建过程中,服务器故障可能造成不清楚是否创建了租用或以何种程度创建了租用(例如,用户是否被添加到用于租用的用户池、是否设置了某些许可等)。因此,在服务器故障之后,管理员通常需要检查租用数据结构并进行手动修复,而这是一个耗时的过程。
在上述实施方案中,租用创建过程被划分成多个独立阶段(例如,为租用提供用户池、在用户池中创建用户等)。当这些阶段中的一个阶段完成时,该阶段通过将消息置于服务平台的消息队列上而结束。消息可被配置为触发多个独立阶段中的后续阶段的发起。因此,如果当前阶段被正确地执行,则可执行租用创建过程的下一部分。
然而,如果当前阶段失败,则该失败可被检测到并通过编程进行校正。例如,在检测到第一阶段失败时,系统可检索与该第一阶段唯一地关联的重试策略并处理该重试策略。因为租用被划分成彼此独立的多个阶段,所以可针对不同的阶段定制不同的重试策略。例如,如果当前阶段正在尝试将用户添加到用户池,则用于该阶段的重试策略可检查用户池以确定在失败之前添加了哪些用户,然后从该点继续添加另外的用户。
将用户池的创建与租用创建过程的其他部分分开特别有帮助。创建用户池通常涉及为用户池生成唯一的一组设置,并且保持过程的该部分分开(并且编制合适的重试策略)减少了上文提到的许多手动调整。
在一些实施方案中,可记录独立阶段中的每个阶段的进度。这对于重试策略特别有帮助,重试策略能够使用日志来确定当前阶段在发生故障之前能够进行多远。因此,在重试当前阶段时,系统可能不需要查询租用的状态(这可能要求时间和处理资源,特别是当租用存储在数据库中并且表示大型组织时)。
一些实施方案在租用是为被建模为一组团队的组织创建时可进一步改善性能。在这种情况下,可将服务平台中的许可分配给团队而不是单个用户。因为组织中的团队通常从事相同项目并且需要访问相同数据,所以这能够有效且一致地分配许可。除了避免管理员必须为每个用户决定用户需要访问哪些文件、服务和其他资源的场景之外,该技术还确保用户不会无意地访问对他们不应访问的信息(因为他们不属于需要访问数据才能从事项目的团队)。
在这些实施方案中,组织内的关系可由图形数据库来建模,从而能够比其他类型的数据结构更高效地分配许可。例如,可将许可中的至少一个许可建模为图形中的节点,其中许可节点通过图形中的边连接到对应团队节点,许可节点表示用于对应团队节点的访问权限。另选地或另外地,可将许可中的至少一个许可建模为图形中的边,该边将图形中的用户节点连接到图形中的一个或多个文件夹节点,每个文件夹节点对应于基于与许可边相关联的权限允许所连接用户节点访问的数据的文件夹。
可经由图形用户界面来创建租用。根据一个实施方案,系统可经由用户界面来接收创建租用的请求。作为响应,系统可在用户界面中显示汇总了在租用中组织的团队列表的第一界面元素。在第一界面元素中,系统可接收对团队中的一个团队的选择,并且作为响应,可在用户界面的第二界面元素中显示组织中分配给该团队的用户列表以及可用于该团队的关于可用于租用的用户的多个应用程序的许可列表。
该系统还可接收从第二界面元素中的许可列表中对一个许可的选择,接收将该许可分配给所选团队的指令,以及更新表示租用的数据结构以使得为所选团队分配所选许可。数据结构可以例如是表示租用的上述图形结构。更新该数据结构可涉及向图形添加边,该边在对应于团队的节点与对应于所选许可的节点之间延伸。
在一些实施方案中,系统可在第二界面元素中显示数据可被上传到的合规数据空间(例如,上述文件夹)的列表,其中第二界面元素中显示的合规数据空间中的每一者被分配给所选团队。系统可接收从列表中对合规数据空间的选择,接收将该合规数据空间分配给所选团队的指令,以及更新表示租用的数据结构以使得为所选团队分配所选合规数据空间。
以类似的方式,系统可接收对对应于租用的用户列表的显示元素的选择,并且可响应于接收到对显示元素的选择而在用户界面中显示租用的用户列表。系统可经由用户界面接收从用户列表中对用户的选择,接收将用户分配给团队列表中的一个团队的指令,并且可更新表示租用的数据结构以使得为所选用户分配所选团队。更新数据结构可涉及向表示租用的图形添加边,该边在对应于所选团队的节点与对应于所选用户的节点之间延伸。
以类似的方式,系统可接收对对应于租用的文件夹列表的显示元素的选择,并且可响应于接收到对显示元素的选择而在用户界面中显示租用的文件夹列表。系统可接收从文件夹列表中对文件夹的选择,接收将文件夹分配给团队列表中的一个团队的指令,并且可更新表示租用的数据结构以使得为所选文件夹分配所选团队。例如,如果数据结构是上述图形,则更新数据结构可涉及向表示租用的图形添加边,该边在对应于所选团队的节点与对应于所选文件夹的节点之间延伸。
在一些实施方案中,系统可接收对第一界面元素中的团队添加元素的选择,并且作为响应,可提示将一组许可分配给新团队。系统可更新表示租用的数据结构以使得团队被添加到租用。例如,当数据结构是上述图形时,系统可将对应于新团队的新节点添加到图形,该新节点连接到对应于要分配给新团队的该组许可的节点。
在另一些实施方案中,第三方(例如,第三方应用程序)可生成并部署用于租用的许可列表。这允许系统用作跨多个应用程序的许可的协调器。
例如,应用程序或第三方可向持续集成与部署(CI/CD)工具提供用于应用程序的许可列表。CI/CD工具允许将许可列表版本化,使得可在任何给定时间部署适当的版本;它还有利于回滚到先前版本。
许可列表可从CI/CD工具上传到图像储存库。图像储存库允许将许可备份到包括(例如)某个版本的json文件和.NET控制台应用程序的docker图像中,.NET控制台应用程序包括被配置为执行更新在租用中的应用程序的许可集的表述性状态转移(REST)调用的逻辑。docker图像可被版本化以镜像许可列表的版本。许可列表和控制台应用程序可作为docker图像的一部分存储在一起。该容器可随后由可使用容器的版本标识符来确保部署了正确的当前容器的容器管理系统方便地执行。
可从图像储存库向许可设置应用编程接口(API)提供许可列表(例如,以容器化形式)。可通过许可设置应用编程接口来调用许可设置过程以修改表示租用的数据结构,该数据结构被修改以包括来自许可列表的访问许可。
例如,上述控制台应用程序可作为用于部署容器化操作的一次性操作来执行。该一次性操作可使用被配置为访问许可设置API的凭证(诸如密码密钥)来执行。在一些情况下,可仅使用凭证来访问许可设置API。在一些情况下,凭证可仅由租用用来更新租用中的应用程序的许可集。这些安全措施有助于防止其他自主服务意外访问API。
在一些实施方案中,数据结构可以是包括表示用户团队的第一节点集和表示许可声明的第二节点集的上述图形。修改数据结构可涉及创建新的许可集父节点,该新的许可集父节点涵盖已经存在于图形中的第一许可节点集,同时被分配给第一许可节点集的相应团队保持连接到第一许可节点集。可创建表示在许可列表中分配的尚不存在于图形中的新许可的第二许可节点集,该第二许可节点集被新的许可集父节点涵盖。可将新的许可集父节点分配给许可列表中标识的团队。
如上所述,将许可集版本化有利于回滚到较早版本。在检测到回滚条件时,系统可将许可列表中标识的团队重新连接到旧的许可集父节点。可删除图形中表示许可列表中先前未分配给许可列表中标识的团队的许可的任何边,如可以是第二许可节点集和新的许可集父节点。利用这些过程,可有效且安全地将许可集回滚到先前版本。
附图说明
为了使对任何特定元件或动作的讨论易于识别,参考标号中的一个或多个最高有效数位是指首先引入元件的图标号。
图1示出了根据一个实施方案的描绘租用管理环境中的信息交换的示例性数据流图。
图2是描绘根据一个实施方案的用于创建租用的示例性逻辑的流程图。
图3示出了根据一个实施方案的适于创建或修改租用的图形用户界面。
图4是描述根据一个实施方案的用于与租用管理用户界面交互的各种方式的流程图。
图5示出了适于表示租用的图形数据结构的示例。
图6A示出了根据一个实施方案的租用在部署新许可集之前的第一时间的数据结构。
图6B示出了根据一个实施方案的在部署新许可集之后的第二时间的图6A的数据结构。
图7A示出了根据一个实施方案的在回滚到初始许可集之前的第二时间的图6A的数据结构。
图7B示出了根据一个实施方案的在回滚到初始许可集之后的第三时间的图7A的数据结构。
图8示出了根据一个实施方案的适于部署许可集的环境。
图9是描述根据一个实施方案的用于部署许可集的逻辑的流程图。
图10示出了可用于实践本文所述的示例性实施方案的例示性计算机系统架构。
具体实施方式
为了帮助理解,在描述基本具体实施的详细说明之前,将首先呈现一系列示例。需注意,这些实施方案仅旨在进行举例说明并且本发明不限于所示的实施方案。
现在参考附图,其中相同的附图标记在全文中用于指代相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对其的透彻理解。然而,可在没有这些具体细节的情况下实践创新实施方案。在其他实例中,以框图形式展示众所周知的结构和装置以便于描述。其目的在于涵盖与所要求保护的主题一致的所有修改、等同物和另选方案。
在附图和所附描述中,名称“a”、“b”和“c”(以及类似的名称)旨在作为表示任何正整数的变量。因此,例如,如果一个具体实施设置a=5的值,则被解说为部件122-1至122-a的完整部件集122可包括部件122-1、122-2、122-3、122-4和122-5。实施方案不限于此语境。
图1示出了用于租用管理环境的示例性数据流程图。下面描述的并且在图1中的不同装置与服务之间的箭头上指定的每个步骤可形成独立于其他阶段的租用创建过程的阶段。可记录通过每个阶段的进度,并且每个阶段可与针对该阶段设计且唯一地关联的重试策略相关联。如果一个阶段失败(例如,由于服务器或其他障碍类型),则可尝试重试策略和/或可中止租用创建过程。因为每个阶段是独立的,所以一个阶段可以失败但不中断整个租用创建过程。此外,因为每个阶段是整个租用创建过程的较小部分,所以对于作为整体的租用创建过程从故障恢复可能更简单,因为需要检查和可能要重新执行(或第一次执行)的动作是创建租用需要的所有动作的较小子集。每个阶段的进度可由租用服务106(或另一服务)记录,从而进一步有利于从故障恢复。
每个阶段可通过将消息置于队列(例如,消息队列112)中而结束。适合与示例性实施方案一起使用的消息队列的示例是来自AWS的简单队列服务(SQS)。消息可被配置为指示下一阶段(旨在跟随刚刚完成的阶段的阶段)开始处理。例如,消息可被推送到执行下一阶段的下一服务,或下一服务可周期性地查询消息队列112以确定指示其开始处理的消息是否正在等待中。
需注意,在图1中,租用服务106由共用参考标号指定。设想服务的单个实例可用作租用服务106,或每个阶段处的动作可由不同自主服务处置。换句话讲,每个阶段可任选地被划分成其自己的服务,这在大规模部署租用管理时可能更高效。
作为第一阶段,客户端装置102可指示云服务104创建租用。如上所述,租用可以是限定的用户池可访问的云计算环境中的服务和/或资源的指定集合。适合与示例性实施方案一起使用的云服务104的示例由Amazon Web服务(AWS)提供,包括用于创建、管理、认证和授权用户池的AWS Cognito服务。本领域的普通技术人员将识别出适合与本文所述的实施方案一起使用的其他云计算平台和服务。客户端装置102可指示云服务104经由图形用户界面(诸如图3所示的示例性界面)创建租用。创建租用的指令可包括要添加到租用的用户池中的用户列表、用户可组织到其中的团队列表(以及用户到团队的分配)、分配给每个团队的许可列表、团队可访问的合规工作空间列表(例如,数据存储文件夹)等。
需注意,指令还可以是修改租用(例如,修改用户池、许可、团队等)的指令。下面描述的阶段可响应于修改指令以类似的方式执行,除了可能不必执行某些初始租用创建步骤。
如果该阶段失败,则这可能意味着创建租用的指令不能被成功地发送到云服务104。该阶段的重试策略可涉及检查客户端装置102与租用服务106之间的网络连接、确保租用服务106在线并处理请求、检查指令的格式等。该阶段也可通过简单地中止阶段并返回错误消息来适当地失败,因为云服务104至今还没有开始创建租用。
在一些实施方案中,第一阶段可以是异常,因为它在完成时不将消息置于消息队列112中。相反,第一阶段可以明确地调用云服务104,这可直接继续租用创建过程。
作为第二阶段,云服务104可以向租用服务106注册租用。租用服务106可以是与云服务104交互的自主服务。自主服务可以是就其功能性而言独立于其他服务的计算服务。尽管它可异步地提供其他服务可能消耗的信息(并且可异步地消耗来自其他服务的信息),但自主服务可通过行为来抑制同步地辅助其他服务。租用服务106可由提供云服务104的云计算环境托管,或可与云服务104分离。
在第二阶段,租用服务可采取初始步骤来创建租用,诸如向租用分配名称和服务器、为租用供应初始资源、为租用创建过程指定消息队列112等。在完成时,这些步骤中的每个步骤可记录在日志中,使得如果第二阶段失败,则可重试向租用服务106注册租用的步骤。第二阶段也可以是异常,因为在第二阶段完成时不需要将消息置于消息队列112中。相反,云服务104可直接向租用服务106发送指令。
作为第三阶段,可将租用表示为存储在图形数据库108中的图形(参见例如图5)。合适的图形数据库108的示例是来自AWS的Neptune数据库。在此示例中,第三阶段可涵盖图1中的步骤3、4和5。为此,租用服务106可向合规服务110注册租用。合规服务110可以是自主服务并且可被配置为与图形数据库108交互以生成或修改存储在图形数据库108中的租用的表示。在步骤4中,合规服务可指示图形数据库108在图形数据库108中创建合适的节点和边。如下文结合图5所述,用户、团队和合规工作空间可作为节点存储在图形结构中。可将许可表示为节点之间的边或表示为节点,具体取决于上下文。合规服务110可从初始指令访问用户、团队、合规工作空间和许可的列表以创建租用,并且可为列表中的每个项目在图形中连续地创建适当的结构。
随着创建每个节点和边,可将合规服务110的进度存储在日志中。在失败的情况下,用于第三阶段的重试策略可涉及对照初始指令检查日志以创建租用以及识别合规服务110已在列表中进展了多远。任选地,重试策略可尝试对照存储在图形数据库108中的图形数据结构来协调列表中被标记为完成的那些项目(例如,进度日志中表示的项目)。重试策略可随后继续指示合规服务110继续在图形数据库108中创建结构,在出现故障时从该结构停止。
当合规服务110完成在图形数据库108中创建表示租用的图形数据结构时,合规服务110可向消息队列112报告消息中的租用的注册。
作为第四阶段,可为租用创建用户池。第四阶段可涵盖图1中的步骤6、7和8。用户池可表示能够与租用交互的用户列表,其中可向用户池中的每个用户分配允许该用户访问应用程序服务、合规工作空间等的许可。在一些实施方案中,不向用户直接分配许可,而是将用户分配给团队(其中每个团队携带其自己的许可集)。在一些情况下,可给予用户允许其创建或修改租用的管理权。
为此,在从消息队列112了解到已注册了租用时,租用服务可创建具有用户管理服务114的用户池。用户管理服务114可负责执行用户注册、登录和访问控制(例如,对于可用于租用的应用程序)。用户管理服务114可向应用程序注册用户、管理登录凭证、处理认证等。用户管理服务114还可为应用程序提供安全服务,诸如多因子认证、加密等。用户管理服务114可协调对应用程序的后端资源的访问(诸如允许应用程序访问与租用相关联的合规工作空间)。合适的用户管理服务114的示例是来自AWS的Cognito。
在此阶段,租用服务106可从租用创建指令/图形数据库108遍历用户列表,并利用可访问该租用的应用程序和其他服务为每个用户创建凭证(该凭证也可作为租用创建指令的一部分来提供)。随着通过用户管理服务114设置每个用户的访问,成功可被记录。如果该阶段失败,则重试策略可涉及咨询日志以确定租用服务106已成功地向用户管理服务114注册到应用程序/服务/用户的列表中的哪个位置,并且可从该处继续用户池创建。任选地,重试策略可询问用户管理服务114以验证用户池的创建已进展到日志中指示的点。
当利用用户管理服务114成功地创建用户池时,租用服务可将消息发送到消息队列112中。
作为第五阶段,可在对象存储服务116中创建用于租用的合规数据空间(例如,文件夹)。对象存储服务116的示例是来自AWS的简单存储服务(S3)。第五阶段可包括图1中的步骤9、10和11。
在该阶段,租用服务106可从创建租用的指令和/或图形数据库108中检索合规工作空间(文件夹)列表。对于每个工作空间,租用服务可创建与对象存储服务116对应的文件夹。租用服务可基于指令/图形数据库108中的许可来分配对工作空间的访问权限。如上所述,每个创建可被记录,并且如果该阶段失败,则重试策略可从日志中断的地方(可能在通过查询对象存储服务116来验证日志中的进度之后)继续创建文件夹。可随后将消息置于消息队列112中以触发下一阶段。
作为第六阶段,可利用用户管理服务114来创建用于租用的身份池。第六阶段可包括图1中的步骤12和13。
用户管理服务114的示例是上述AWS Cognito,其也用于创建和管理用户池。在第四阶段中创建的用户池与在第六阶段中创建的身份池之间的差别在于,用户池一般用于认证,而身份池用于访问控制。换句话讲,创建用户池,使得用户可在其希望使用云资源(包括云支持的应用程序)时验证其身份。除了其他,用户池还可用于支持应用程序的注册和登录界面、访问和管理用户数据、跟踪用户装置、位置和IP地址、适应不同风险级别的登录请求以及为应用程序分配自定义认证流。除了其他,身份池还用于使用户能够访问基于云的资源并为未经认证的用户生成临时凭证。
在该阶段,租用服务106可从创建租用的指令和/或图形数据库108中检索许可列表。对于每个许可,租用服务106可确定云服务104中隐含的对应应用程序/服务/资源并向用户管理服务114中的对应团队和用户分配访问权限。如上所述,每个权限分配可被记录,并且如果该阶段失败,则重试策略可从日志中断的地方(可能在通过查询用户管理服务114来验证日志中的进度之后)继续分配权限。
任选地,当完成第六阶段时,可将消息置于消息队列112中。在第六阶段表示最后阶段的实施方案中,可能没有必要将此类消息置于消息队列112中,因为没有另外的服务要触发。租用服务106可任选地向云服务104报告已成功地创建租用,云服务可将报告中继回客户端装置102。
接下来,图2示出了描述租用创建过程的逻辑,该逻辑可与上述实施方案(或其他合适的实施方案)一起使用。该逻辑可体现为计算机实现的方法或存储在非暂态计算机可读存储介质上的指令,并且可被配置为致使处理器执行图2中包含的逻辑块。在一些实施方案中,逻辑可由被配置为可能通过诸如租用服务106的自主服务来执行图2中包括的逻辑块的计算系统执行。
处理在开始框202处开始。在框204处,系统可接收创建(或修改)租用的请求。例如,系统可从客户端装置接收描述租用的指令,包括被组织成团队的用户列表、合规工作空间(文件夹)、针对合规工作空间和应用程序服务的许可或访问权限以及创建租用所需的任何其他信息。
在框206处,可响应于接收到请求而触发租用创建过程。在来自图1的以上示例中,这可涉及云服务104调用到租用服务106中(例如,经由应用编程接口)以指示租用服务106开始创建和注册租用。
在框208处,系统(例如,经由租用服务106)可选择租用创建的下一独立阶段以供执行。最初,这可以是登记租用的阶段,并且这些阶段可从该处进行,如结合图1所述。下一阶段可在框210a中处理,其可涉及执行特定于该阶段的步骤(例如,如上文所述)。任选地,在框210b处,系统可记录执行该阶段的步骤的进度。
在判定框212处,系统可确定该阶段是成功还是失败。例如,系统可接收指示该阶段的步骤已被成功执行的成功消息、或指示失败(例如,由于服务器故障或不能被执行的指令而造成失败)的错误消息。如果该阶段在判定框212处成功,则系统可在判定框222处确定是否还有更多阶段要处理。如果否(即,租用创建完成),则处理可进行到完成框224;在该处,可任选地报告成功,并且处理可结束。如果有更多阶段要处理,则在框226处,系统可将消息置于被配置为使得租用服务开始执行下一阶段的消息队列上。处理可随后返回到框208,并且可选择并处理用于执行的下一阶段。
如果在判定框212处确定当前阶段的处理失败,则在框214处,系统可确定是否已满足或超过最大重试次数。管理员可定义可尝试的重试次数的限制,以阻止系统在重试策略不能成功时无限循环。如果在判定框214处达到限制,则处理可进行到失败框216,并且系统可报告错误并终止处理。
否则,处理可进行到框218,其中可(例如,从重试策略储存库)检索特定于当前阶段的重试策略。重试策略可在框220中处理,其可涉及咨询在框210b处构造的日志以及尝试或重新尝试当前阶段的未在日志中说明的任何步骤。任选地,系统可查询与该阶段相关联的服务或存储位置,以确定日志中的动作实际上是否成功执行(或者,如果不存在日志,则确定该阶段能够到达多远)。处理可随后返回到判定框212以确定重试尝试是成功还是失败。在失败的情况下,可递增与该阶段的重试尝试相关联的计数器,这可用于确定再次执行判定框214时是否已达到限制。
图3是根据示例性实施方案的适于创建或修改租用的用户界面的示例。该界面可呈现在例如具有创建或修改租用的权限的管理员的客户端装置102上。
该界面可包括允许用户查看、选择和修改租用的各个方面的多个界面元素。一般来讲,可按被组织到具有对应用程序和数据工作空间(文件夹)的许可的团队中的用户来定义租用。基于当前正在编辑哪个方面(例如,用户、团队或文件夹),第一界面元素302可显示该方面的组成部分。例如,如果用户选择用户显示元素314,则第一界面元素302可显示存在于租用中(或当前正被添加到租用中)的用户列表。如果用户选择团队显示元素316,则第一界面元素302可显示存在于租用中(或当前正被添加到租用中)的团队列表。如果用户选择文件夹显示元素318,则第一界面元素302可显示租用可访问(或当前正被添加到租用中)的合规工作空间(文件夹)列表。
用户可选择第一界面元素302中的元素以使得与该选择有关的信息出现在第二界面元素306中。第二界面元素306可被分解成多个部分,每个部分显示关于相关租用方面的相关数据。
例如,图3示出了用户已选择团队显示元素316的情形,使得在第一界面元素302中显示租用中的团队列表。团队添加元素320允许用户将新团队添加到列表中(类似的添加元素可显示在用户和文件夹视图中)。在选择所选团队304时,第二界面元素306显示关于所选团队304的相关信息。
例如,第二界面元素306的第一部分显示所选团队304中的用户308的列表。用户编辑单元322允许创建新用户并将其添加到团队中,或允许添加在租用中但当前不在团队中的现有用户。类似地,与团队相关联的许可列表310和相关的许可编辑元素324显示在第二界面元素306的第二部分中,并且文件夹列表312和文件夹编辑元素326显示在第二界面元素306的第三部分中。
第二界面元素306的部分可取决于在第一界面元素302中选择哪一方面而变化。例如,图3示出了团队、团队中的用户、分配给团队的许可以及团队可访问的文件夹。如果第一界面元素302用于显示租用中的用户列表,则第二界面元素可提供用户被分配到的团队列表。如果第一界面元素302用于显示租用中的文件夹列表,则第二界面元素可显示已访问文件夹的团队列表以及每个团队关于每个文件夹所具有的不同许可(例如,读/写/查看等)。
通过使用第二界面元素306中的用户编辑元素322、许可编辑元素324、文件夹编辑元素326等以及第一界面元素302的团队添加元素320,用户可从头创建租用或修改现有租用。例如,用户可在选择用户显示元素314之后首先定义租用中的用户,然后可使用文件夹显示元素318来添加文件夹列表。用户可随后选择团队显示元素316来添加团队,将用户组织到团队中,并且将文件夹的访问权限分配给团队。在团队界面中,用户还可将应用程序许可分配给团队。当用户对租用的组织满意时,用户可确认其选择,并且可将关于租用的信息加载到待发送到云服务104的租用创建指令中。
结合图8和图9更详细地描述了用于允许第三方应用程序或服务创建或更新租用的过程。在解决这些展开过程之前,首先在图4中描述用于显示和更新图3的界面的技术,然后结合图5至图7B描述关于租用的图形表示的更多细节。
如图4所示,在开始框402处,示例性接口更新逻辑开始。在框404处,系统显示租用用户界面,诸如图3中所示的界面。租用用户界面可具有第一界面元素302、第二界面元素306以及一个或多个可选元素(诸如用户显示元素314、团队显示元素316、文件夹显示元素318等)。在框406处,系统可接收对这些元素中的一个元素的选择。
如果所选元素是团队显示元素316,则在框408处,系统可在第一界面元素302中显示当前存在于租用中的团队列表。用户可使用第一界面元素302来将新团队添加到租用或从租用中移除现有团队。当用户准备好创建或编辑团队的细节时,他们可在第一界面元素302中选择团队(响应于此,系统在框410处接收对团队的选择)。
响应于接收到对团队的选择,在框412处,系统可在第二界面元素306中显示当前与团队相关联的用户、许可和合规工作空间(文件夹)的列表。如果需要,用户可使用创建元素来创建要与团队相关联的新用户、许可或合规工作空间,或显示在租用中存在但当前不与团队相关联的用户、文件夹或许可。
在框414处,系统可接收对用户、许可或合规工作空间的选择。这可以是当前与被选择用于编辑的团队相关联的用户、许可或合规工作空间,或还没有与用户希望添加到团队的团队相关联的用户、许可或合规工作空间。用户可对用户、许可或工作空间作出任何必要的改变,并且在框416处,用户、许可或工作空间可与团队相关联。这可涉及基于在界面中做出的改变来更新租用的图形。
如果在框406处接收到的选择是对用户显示元素314的选择,则在框418处,系统可在第一界面元素302中显示当前处于租用中的用户列表。系统可接收对列表中的用户中的一者的选择。在框420处,系统可在第二界面元素306中显示所选用户当前在租用中被分配到的团队的概要。管理员可创建新团队或编辑现有团队,并且系统可在框422处接收对租用中的团队中的一者的选择。在框424处,系统可接收将用户分配给所选团队的指令,并且作为响应,可更新表示团队的图形结构以在用户与团队之间添加边。
一些示例性实施方案组织团队而不是用户周围的租用。因此,许可和访问权限一般不直接分配给用户(尽管在一些实施方案中这是可能的)。相反,此类权限在团队级进行管理,因此当选择了用户显示元素314时,管理员可能被限制成将用户分配给团队并且可能不被允许在该阶段直接向用户分配访问权限。
如果框406处的选择是对文件夹显示元素318的选择,则在框426处,系统可在第一界面元素302中显示租用中可用的合规数据空间(文件夹)列表。管理员用户可在第一界面元素中选择合规数据空间中的一者。在框428处,系统可显示当前与租用中的所选合规数据空间相关联的团队列表。管理员还可使用第二界面元素306来显示当前不与合规数据空间相关联的团队列表,并且可接收对当前不与合规数据空间相关联的团队中的一者的选择,并且可在框434处将合规数据空间分配给该团队。这可涉及更新表示租用的图形数据结构以在表示团队的节点与表示合规数据空间的节点之间添加边。
现在结合图5来描述表示租用的图形数据结构的示例。
作为整体的租用可与租用根502相关联,租用根是图形中可添加其他类别节点的节点。租用根502可与租用专用标识符相关联并表示租用图形的接入点,该接入点允许合规服务110使用标识符来检索和修改租用图形。
在租用根之下,多个组织节点(用户根504、团队根506和文件夹根510)可通过边连接。单独地,可用于租用的应用程序可各自与其自己的节点(应用程序范围520a、应用程序范围520b等)相关联,这些节点表示可用于任何租用的应用程序服务。应用程序范围可在许可根508下组织。
租用中的每个用户可具有用户节点512a、512b、512c......。租用中的每个团队可与团队节点514a、514b、514c......相关联。每个文件夹可与文件夹节点522、526、528相关联。文件夹可分层地排列成子文件夹524a、524b、524c、530a、530b、530c、532a、532b、532c等的组织。
每个应用程序范围520a、520b......可与一个或多个声明516a、516b、516c......518a、518b、518c......相关联。
用户在团队中的成员资格可由用户的节点与团队的节点之间的边表示。团队对给定应用程序范围声明或文件夹的访问可由团队与声明或文件夹之间的边表示。边可携带信息,诸如访问权限的范围。例如,团队与文件夹之间的“读”边可指定团队具有对文件夹的读权限但不能写入文件夹。“读/写”边可指示团队既可从文件夹读取又可写入文件夹。其他类型的边(诸如团队与应用程序范围声明之间的那些边)可指示团队具有利用由所连接的节点表示的功能或服务的完全许可。
当用户使用(例如)图3的界面来更新现有租用时,可修改上述图形。图6A至图7B示出了用于展开对租用中的许可分配的改变并在需要时将该改变回滚的示例性技术。
图6A示出了具有现有活动许可集604的图形结构,表示授予每个团队的许可。如上所述,活动许可集可包括在创建或修改租用的指令中。活动许可集可定义或被转换成团队能够访问的声明集608a、608b、608c......和/或团队能够从其读取或写入的文件夹的边集。这可由图形中表示许可根602下的许可集610a的节点来指示。
当用户修改租用并尝试部署新许可集606时,可创建表示许可集610b的新节点。此时,许可根602继续连接到由活动许可集604定义的许可集610a,因此还没有对团队的许可做出改变。任何新声明(诸如新声明608k)可由通过非活动边连接到团队612的新非活动节点来表示,而新文件夹许可可由新非活动边来表示。这些边和节点可以不影响可用于团队的许可和访问权限,直到它们被激活。
例如,在图6B中,通过使来自旧许可集614(表示先前的活动许可集604)的连接变为不活动,同时使来自新许可集606的先前不活动的连接和节点变为活动(从而使先前的新许可集606成为当前活动许可集616)来提交改变。在需要回滚旧连接的情况下(例如,因为管理员选择回复到许可集中的较早状态,或因为新许可集的展开失败),维持现在不活动的旧连接。如果需要回滚许可集,则可简单地反向该过程,如图7A(其中新许可集是活动许可集704并且先前许可集是旧许可集702)和图7B(其中许可集已回滚,因此旧许可集702变为活动的并且因此变成活动许可集706)所示。如图7B所示,当许可集回滚时不再需要的任何节点(例如,由先前活动的许可集704创建的那些节点)可任选地被删除(在删除操作708中)。
图8示出了用于如上所述展开许可集的示例性环境,而图9是描述用于执行展开的示例性逻辑的流程图。为了简明起见,下面将一起讨论这两个图。
为了展开新许可集,第三方应用程序812(其可以是由任何合适的实体提供的应用程序)可将许可集816上传到版本管理系统814(图9的框904)。适于与示例性实施方案一起使用的版本管理系统814的一个示例是BitBucket,这是由位于澳大利亚悉尼的Atlassian公司提供的基于Git的源代码储存库托管服务。版本管理系统814还可接收或可创建许可作业818。许可作业818可包括版本化许可集json文件和.NET控制台应用程序,该应用程序包括执行对合规服务110的REST调用以添加或更新租用图形结构中的应用程序许可集所需的逻辑。
版本管理系统814可将许可集816和许可作业818备份到连续集成/部署工具820中的docker容器822中。合适的连续集成/部署工具820的示例是Bamboo CI/CD系统。docker图像可被版本化以镜像新许可集的版本并被上传到租用系统804中的图像储存库802(框906)。合适的图像储存库802的示例是AWS弹性容器注册表(ECR)。
许可作业可作为Kubernetes作业的一次性操作来执行。为此,容器编排系统806(例如,AWS弹性Kubernetes服务)的作业运行器808可从图像储存库802拉取docker图像并且利用从Kubernetes密钥存储安装的密钥810来执行。该密钥810可被用作访问合规服务110的凭证,并且具体地是由合规服务110提供的许可设置更新API(框908)。该API在没有所提供的密钥810的情况下是不可访问的。在一些实施方案中,没有其他部署使用密钥(仅更新/迁移作业)。这可防止其他自主服务意外访问API。API可使用密钥来认证作业(框910)并且调用许可设置过程(框912),该许可设置过程发出命令以更新存储在图形数据库108中的租用图形(框914)。
在某一时刻,管理员可能希望回滚到许可集的较早版本。因此,管理员可发出标识许可集的较早版本的命令,租用系统804可能检测到该命令。在识别出该命令后(判定框916),租用系统804可执行如上问结合图7A和图7B描述的回滚(框918)。处理可随后进行到完成框920并终止。
图10示出了可用于在独立和/或联网环境中实现本文所述的一个或多个例示性方面的系统架构和数据处理装置的一个示例。各种网络节点诸如数据服务器1010、web服务器1006、计算机1004和膝上型计算机1002可经由广域网1008(WAN)诸如因特网互连。也可或可另选地使用其他网络,包括专用内联网、公司网络、LAN、城域网(MAN)、无线网络、个人网络(PAN)等。网络1008用于说明目的,并且可用更少或更多的计算机网络来代替。局域网(LAN)可具有任何已知LAN拓扑中的一个或多个LAN拓扑,并且可使用各种不同协议中的一者或多者,诸如以太网。装置数据服务器1010、web服务器1006、计算机1004、膝上型计算机1002和其他装置(未示出)可经由双绞线、同轴电缆、光纤、无线电波或其他通信介质连接到网络中的一个或多个网络。
计算机软件、硬件和网络可用于各种不同的系统环境中,包括独立的、联网的、远程访问的(也被称为远程桌面)、虚拟化的和/或基于云的环境等。
本文所用并在附图中描绘的术语“网络”不仅指其中远程存储装置经由一个或多个通信路径耦接在一起的系统,而且还指可有时耦接到具有存储能力的此类系统的独立装置。因此,术语“网络”不仅包括“物理网络”,而且还包括“内容网络”,其由驻留在所有物理网络上的数据(可归属于单个实体)组成。
这些组件可包括数据服务器1010、web服务器1006以及客户端计算机1004、膝上型计算机1002。数据服务器1010提供数据库和控制软件的总体访问、控制和管理,以执行本文所述的一个或多个例示性方面。数据服务器1010可连接到web服务器1006,用户通过该web服务器与数据交互并获得所请求的数据。另选地,数据服务器1010可充当web服务器本身并且直接连接到互联网。数据服务器1010可通过网络1008(例如,因特网)、经由直接或间接连接或经由某一其他网络连接到web服务器1006。用户可使用远程计算机1004、膝上型计算机1002与数据服务器1010交互,例如,使用web浏览器经由web服务器1006所托管的一个或多个对外公开的网站连接到数据服务器1010。客户端计算机1004、膝上型计算机1002可与数据服务器1010一致地用来访问存储在其中的数据,或者可用于其他目的。例如,用户可从客户端计算机1004使用因特网浏览器(如本领域已知的)或通过执行通过计算机网络(诸如因特网)与web服务器1006和/或数据服务器1010通信的软件应用程序来访问web服务器1006。
服务器和应用程序被组合在相同的物理机器上,并且保留单独的虚拟或逻辑地址,或者可驻留在单独的物理机器上。图10仅示出了可使用的网络架构的一个示例,并且本领域的技术人员将理解,所使用的特定网络架构和数据处理装置可变化,并且对于它们所提供的功能来说是次要的,如本文进一步描述的。例如,由web服务器1006和数据服务器1010提供的服务可被组合在单个服务器上。
每个组件数据服务器1010、web服务器1006、计算机1004、膝上型计算机1002可以是任何类型的已知计算机、服务器或数据处理装置。数据服务器1010例如可包括控制数据服务器1010的总体操作的处理器1012。数据服务器1010还可包括RAM 1016、ROM 1018、网络接口1014、输入/输出接口1020(例如,键盘、鼠标、显示器、打印机等)和存储器1022。输入/输出接口1020可包括用于读取、写入、显示和/或打印数据或文件的各种接口单元和驱动器。存储器1022还可存储用于控制数据服务器1010的总体操作的操作系统软件1024、用于指示数据服务器1010执行本文所述的方面的控制逻辑1026,以及提供可结合或可不结合本文所述的方面使用的辅助、支持和/或其他功能的其他应用软件1028。控制逻辑在本文中还可被称为数据服务器软件控制逻辑1026。数据服务器软件的功能可指基于被编码到控制逻辑中的规则自动做出的、由向系统提供输入的用户手动做出的以及/或者基于用户输入(例如,查询、数据更新等)的自动处理的组合做出的操作或决策。
存储器1122还可存储在执行本文所述的一个或多个方面时使用的数据,包括第一数据库1032和第二数据库1030。在一些实施方案中,第一数据库可包括第二数据库(例如,作为单独的表、报告等)。也就是说,信息可被存储在单个数据库中,或被分离到不同的逻辑、虚拟或物理数据库中,这取决于系统设计。web服务器1006、计算机1004、膝上型计算机1002可具有如相对于数据服务器1010所述的类似或不同的架构。本领域的技术人员将了解,如本文所述的数据服务器1010(或网络服务器1006、计算机1004、膝上型计算机1002)的功能可散布于多个数据处理装置上,例如,以将处理负载分布于多个计算机上,从而基于地理位置、用户访问级别、服务质量(QoS)等来分离交易。
一个或多个方面可体现于由如本文所述的一个或多个计算机或其他装置执行的计算机可用或可读数据和/或计算机可执行指令中,诸如一个或多个程序模块中。一般来讲,程序模块包括当由计算机或其他装置中的处理器执行时执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。这些模块可用随后被编译以供执行的源代码编程语言来编写,或者可用脚本语言诸如(但不限于)HTML或XML来编写。计算机可执行指令可被存储在计算机可读介质诸如非易失性存储装置上。可利用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光存储装置、磁存储装置和/或它们的任何组合。另外,如本文所述的表示数据或事件的各种传输(非存储)介质可以通过信号传导介质诸如金属线、光纤和/或无线传输介质(例如,空气和/或空间)行进的电磁波的形式在源与目的地之间进行传送。本文所述的各种方面可体现为方法、数据处理系统或计算机程序产品。因此,各种功能可全部或部分地体现于软件、固件和/或硬件或硬件等同物(诸如,集成电路、现场可编程门阵列(FPGA)等)中。可使用特定数据结构更有效地实现本文所述的一个或多个方面,并且预期此类数据结构在本文所述的计算机可执行指令和计算机可用数据的范围内。
可使用离散电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任何组合来实现上文所述的装置的组件和特征。此外,在适当的情况下,可使用微控制器、可编程逻辑阵列和/或微处理器或前述的任何组合来实现装置的特征。注意,硬件、固件和/或软件元件在本文中可被共同地或单独地称为“逻辑”或“电路”。
应当理解,上文所述的框图中示出的示例性装置可表示许多潜在具体实施的一个功能描述示例。因此,在附图中描绘的块功能的划分、省略或包括无法推断出用于实现这些功能的硬件组件、电路、软件和/或元件将必定在实施方案中被划分、省略或包括。
至少一个计算机可读存储介质可包括当被执行时使得系统执行本文所述的计算机实现的方法中的任一种方法的指令。
一些实施方案可使用表述“一个实施方案”或“实施方案”以及它们的派生词来描述。这些术语意味着结合该实施方案描述的特定特征、结构或特性包括在至少一个实施方案中。在说明书中各处出现短语“在一个实施方案中”不一定全部指同一实施方案。此外,除非另有说明,否则上文所述的特征被认为可以任何组合一起使用。因此,除非注意到单独讨论的任何特征彼此不相容,否则可彼此组合地使用这些特征。
在一般参考本文所使用的符号和命名的情况下,本文的详细描述可根据在计算机或计算机网络上执行的程序过程来呈现。本领域的技术人员使用这些程序性描述和表示来最有效地向本领域的其他技术人员传达其工作的实质。
过程在这里通常被认为是导致期望结果的操作的自相一致序列。这些操作是需要对物理量进行物理操纵的那些操作。通常,尽管不是必须的,但是这些量采取能够被存储、传送、组合、比较和以其他方式操纵的电、磁或光信号的形式。事实证明,有时,主要出于常用的原因,将这些信号称为比特、值、元素、符号、字符、项、数字等是方便的。然而,应当注意,所有这些和类似的术语都将与适当的物理量相关联,并且仅是应用于这些量的方便标记。
此外,所执行的操纵通常用术语诸如添加或比较(这通常与由人类操作者执行的脑力操作相关联)来指代。在形成一个或多个实施方案的一部分的本文所述的任何操作中,在大多数情况下,人类操作者的这种能力不是必需的或期望的。相反,这些操作是机器操作。用于执行各种实施方案的操作的有用机器包括通用数字计算机或类似装置。
一些实施方案可使用表述“耦接”和“连接”以及它们的派生词来描述。这些术语不一定旨在作为彼此的同义词。例如,一些实施方案可使用术语“连接”和/或“耦接”来描述,以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦接”还可意味着两个或更多个元件彼此不直接接触,但是仍然彼此协作或交互。
各种实施方案还涉及用于执行这些操作的设备或系统。该设备可被专门构造用于所需目的,或者其可包括由存储在计算机中的计算机程序来选择性地激活或重新配置的通用计算机。本文所呈现的过程并非固有地与特定计算机或其他设备相关。各种通用机器可与根据本文教导编写的程序一起使用,或者事实证明,构造更专用的设备来执行所需的方法步骤是方便的。各种这些机器的所需结构将从所给出的描述中呈现。
要强调的是,提供本公开的摘要是为了允许读者快速地确定技术公开的性质。所提交的摘要应理解为其将不用于解释或限制权利要求的范围或含义。另外,在前述具体实施方式中,可以看出,出于简化本公开的目的,各种特征在单个实施方案中被分组在一起。本公开的方法不应被理解为反映所要求保护的实施方案需要比每项权利要求中明确列举的特征更多的特征的意图。相反,如以下权利要求所反映的,发明主题在于少于单个所公开实施方案的所有特征。因此,以下权利要求在此并入具体实施方式中,每项权利要求自身作为单独的实施方案。在所附权利要求书中,术语“包括”和“在……中”分别用作相应术语“包含”和“其中”的通俗英语等同物。此外,术语“第一”、“第二”、“第三”等仅用作标记,并不旨在对其对象施加数值要求。
上文已经描述的内容包括所公开的架构的示例。当然,不可能描述组件和/或方法的每一种可想到的组合,但是本领域的普通技术人员可认识到许多另外的组合和排列是可能的。因此,新颖的架构旨在涵盖落入所附权利要求书的精神和范围内的所有此类变更、修改和变型。
可使用离散电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任何组合来实现上文所述的装置的组件和特征。此外,在适当的情况下,可使用微控制器、可编程逻辑阵列和/或微处理器或前述的任何组合来实现装置的特征。注意,硬件、固件和/或软件元件在本文中可被共同地或单独地称为“逻辑”或“电路”。
应当理解,上文所述的框图中示出的示例性装置可表示许多潜在具体实施的一个功能描述示例。因此,在附图中描绘的块功能的划分、省略或包括无法推断出用于实现这些功能的硬件组件、电路、软件和/或元件将必定在实施方案中被划分、省略或包括。
至少一个计算机可读存储介质可包括当被执行时使得系统执行本文所述的计算机实现的方法中的任一种方法的指令。
一些实施方案可使用表述“一个实施方案”或“实施方案”以及它们的派生词来描述。这些术语意味着结合该实施方案描述的特定特征、结构或特性包括在至少一个实施方案中。在说明书中各处出现短语“在一个实施方案中”不一定全部指同一实施方案。此外,除非另有说明,否则上文所述的特征被认为可以任何组合一起使用。因此,除非注意到单独讨论的任何特征彼此不相容,否则可彼此组合地使用这些特征。
在一般参考本文所使用的符号和命名的情况下,本文的详细描述可根据在计算机或计算机网络上执行的程序过程来呈现。本领域的技术人员使用这些程序性描述和表示来最有效地向本领域的其他技术人员传达其工作的实质。
过程在这里通常被认为是导致期望结果的操作的自相一致序列。这些操作是需要对物理量进行物理操纵的那些操作。通常,尽管不是必须的,但是这些量采取能够被存储、传送、组合、比较和以其他方式操纵的电、磁或光信号的形式。事实证明,有时,主要出于常用的原因,将这些信号称为比特、值、元素、符号、字符、项、数字等是方便的。然而,应当注意,所有这些和类似的术语都将与适当的物理量相关联,并且仅是应用于这些量的方便标记。
此外,所执行的操纵通常用术语诸如添加或比较(这通常与由人类操作者执行的脑力操作相关联)来指代。在形成一个或多个实施方案的一部分的本文所述的任何操作中,在大多数情况下,人类操作者的这种能力不是必需的或期望的。相反,这些操作是机器操作。用于执行各种实施方案的操作的有用机器包括通用数字计算机或类似装置。
一些实施方案可使用表述“耦接”和“连接”以及它们的派生词来描述。这些术语不一定旨在作为彼此的同义词。例如,一些实施方案可使用术语“连接”和/或“耦接”来描述,以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦接”还可意味着两个或更多个元件彼此不直接接触,但是仍然彼此协作或交互。
各种实施方案还涉及用于执行这些操作的设备或系统。该设备可被专门构造用于所需目的,或者其可包括由存储在计算机中的计算机程序来选择性地激活或重新配置的通用计算机。本文所呈现的过程并非固有地与特定计算机或其他设备相关。各种通用机器可与根据本文教导编写的程序一起使用,或者事实证明,构造更专用的设备来执行所需的方法步骤是方便的。各种这些机器的所需结构将从所给出的描述中呈现。
要强调的是,提供本公开的摘要是为了允许读者快速地确定技术公开的性质。所提交的摘要应理解为其将不用于解释或限制权利要求的范围或含义。另外,在前述具体实施方式中,可以看出,出于简化本公开的目的,各种特征在单个实施方案中被分组在一起。本公开的方法不应被理解为反映所要求保护的实施方案需要比每项权利要求中明确列举的特征更多的特征的意图。相反,如以下权利要求所反映的,发明主题在于少于单个所公开实施方案的所有特征。因此,以下权利要求在此并入具体实施方式中,每项权利要求自身作为单独的实施方案。在所附权利要求书中,术语“包括”和“在……中”分别用作相应术语“包含”和“其中”的通俗英语等同物。此外,术语“第一”、“第二”、“第三”等仅用作标记,并不旨在对其对象施加数值要求。
上文已经描述的内容包括所公开的架构的示例。当然,不可能描述组件和/或方法的每一种可想到的组合,但是本领域的普通技术人员可认识到许多另外的组合和排列是可能的。因此,新颖的架构旨在涵盖落入所附权利要求书的精神和范围内的所有此类变更、修改和变型。
Claims (50)
1.一种用于在服务平台中创建租用的计算机实现的方法,所述方法包括:
接收创建所述租用的请求;
触发包括在所述服务平台中供应多个服务或资源的租用创建过程,所述租用创建过程被划分成多个独立阶段;以及
处理所述多个独立阶段中的第一阶段,其中所述第一阶段独立于供应所述多个服务或资源中的其他服务或资源而供应所述多个服务或资源中的一个服务或资源。
2.根据权利要求1所述的计算机实现的方法,其中所述第一阶段为所述租用供应用户池。
3.根据权利要求2所述的计算机实现的方法,其中独立于所述第一阶段的第二阶段在所述用户池中创建多个用户。
4.根据权利要求1所述的计算机实现的方法,还包括:
检测到所述第一阶段已失败;
检索与所述第一阶段唯一地关联的重试策略;以及
处理所述重试策略。
5.根据权利要求1所述的计算机实现的方法,还包括按所述多个独立阶段中的每个阶段记录进度。
6.根据权利要求1所述的计算机实现的方法,其中所述多个独立阶段中的每个阶段通过将消息置于所述服务平台的消息队列上而结束,所述消息被配置为触发所述多个独立阶段中的后续阶段的发起。
7.根据权利要求1所述的计算机实现的方法,其中所述租用是为被建模为多个团队的组织而创建的,并且所述服务平台中的许可被分配给所述多个团队。
8.根据权利要求7所述的计算机实现的方法,其中通过图形数据库对所述组织内的关系进行建模。
9.根据权利要求7所述的计算机实现的方法,其中所述许可中的至少一个许可被建模为图形中的节点,所述许可节点通过所述图形中的边连接到对应团队节点,所述许可节点表示用于所述对应团队节点的访问权限。
10.根据权利要求7所述的计算机实现的方法,其中所述许可中的至少一个许可被建模为图形中的边,所述边将所述图形中的用户节点连接到所述图形中的一个或多个文件夹节点,每个文件夹节点对应于基于与所述许可边相关联的权限允许所连接用户节点访问的数据的文件夹。
11.一种非暂态计算机可读存储介质,所述计算机可读存储介质包括指令,所述指令当由计算机执行时,使得所述计算机:
接收创建租用的请求;
触发包括在服务平台中供应多个服务或资源的租用创建过程,所述租用创建过程被划分成多个独立阶段;以及
处理所述多个独立阶段中的第一阶段,其中所述第一阶段独立于供应所述多个服务或资源中的其他服务或资源而供应所述多个服务或资源中的一个服务或资源。
12.根据权利要求11所述的计算机可读存储介质,其中所述第一阶段为所述租用供应用户池。
13.根据权利要求12所述的计算机可读存储介质,其中独立于所述第一阶段的第二阶段在所述用户池中创建多个用户。
14.根据权利要求11所述的计算机可读存储介质,其中所述指令还将所述计算机配置为:
检测到所述第一阶段已失败;
检索与所述第一阶段唯一地关联的重试策略;以及
处理所述重试策略。
15.根据权利要求11所述的计算机可读存储介质,其中所述指令还将所述计算机配置为按所述多个独立阶段中的每个阶段记录进度。
16.根据权利要求11所述的计算机可读存储介质,其中所述多个独立阶段中的每个阶段通过将消息置于所述服务平台的消息队列上而结束,所述消息被配置为触发所述多个独立阶段中的后续阶段的发起。
17.根据权利要求11所述的计算机可读存储介质,其中所述租用是为被建模为多个团队的组织而创建的,并且所述服务平台中的许可被分配给所述多个团队。
18.根据权利要求17所述的计算机可读存储介质,其中通过图形数据库对所述组织内的关系进行建模。
19.根据权利要求17所述的计算机可读存储介质,其中所述许可中的至少一个许可被建模为图形中的节点,所述许可节点通过所述图形中的边连接到对应团队节点,所述许可节点表示用于所述对应团队节点的访问权限。
20.根据权利要求17所述的计算机可读存储介质,其中所述许可中的至少一个许可被建模为图形中的边,所述边将所述图形中的用户节点连接到所述图形中的一个或多个文件夹节点,每个文件夹节点对应于基于与所述许可边相关联的权限允许所连接用户节点访问的数据的文件夹。
21.一种计算设备,所述计算设备包括:
处理器;和
存储器,所述存储器存储指令,所述指令当由所述处理器执行时将所述设备配置为:
接收创建租用的请求;
触发包括在服务平台中供应多个服务或资源的租用创建过程,所述租用创建过程被划分成多个独立阶段;以及
处理所述多个独立阶段中的第一阶段,其中所述第一阶段独立于供应所述多个服务或资源中的其他服务或资源而供应所述多个服务或资源中的一个服务或资源。
22.根据权利要求21所述的计算设备,其中所述第一阶段为所述租用供应用户池。
23.根据权利要求22所述的计算设备,其中独立于所述第一阶段的第二阶段在所述用户池中创建多个用户。
24.根据权利要求21所述的计算设备,其中所述指令还将所述设备配置为:
检测到所述第一阶段已失败;
检索与所述第一阶段唯一地关联的重试策略;以及
处理所述重试策略。
25.根据权利要求21所述的计算设备,其中所述指令还将所述设备配置为按所述多个独立阶段中的每个阶段记录进度。
26.根据权利要求21所述的计算设备,其中所述多个独立阶段中的每个阶段通过将消息置于所述服务平台的消息队列上而结束,所述消息被配置为触发所述多个独立阶段中的后续阶段的发起。
27.根据权利要求21所述的计算设备,其中所述租用是为被建模为多个团队的组织而创建的,并且所述服务平台中的许可被分配给所述多个团队。
28.根据权利要求27所述的计算设备,其中通过图形数据库对所述组织内的关系进行建模。
29.根据权利要求27所述的计算设备,其中所述许可中的至少一个许可被建模为图形中的节点,所述许可节点通过所述图形中的边连接到对应团队节点,所述许可节点表示用于所述对应团队节点的访问权限。
30.根据权利要求27所述的计算设备,其中所述许可中的至少一个许可被建模为图形中的边,所述边将所述图形中的用户节点连接到所述图形中的一个或多个文件夹节点,每个文件夹节点对应于基于与所述许可边相关联的权限允许所连接用户节点访问的数据的文件夹。
31.一种用于修改服务平台中的租用的计算机实现的方法,所述方法包括:
在用户界面中显示汇总了在所述租用中组织的团队列表的第一界面元素;
在所述第一界面元素中接收对所述团队中的一个团队的选择;以及
响应于接收到对所述团队中的一个团队的选择,在所述用户界面的第二界面元素中显示分配给所述团队的所述组织中的用户列表以及可用于所述团队的关于可用于所述租用的用户的多个应用程序的许可列表。
32.根据权利要求31所述的方法,还包括:
接收从所述第二界面元素中的所述许可列表中对许可的选择;
接收将所述许可分配给所选团队的指令;以及
更新表示所述租用的数据结构以使得为所选团队分配所选许可。
33.根据权利要求32所述的方法,其中更新所述数据结构包括向表示所述租用的图形添加边,所述边在对应于所述团队的节点与对应于所选许可的节点之间延伸。
34.根据权利要求31所述的方法,还包括:
在所述第二界面元素中显示数据能够被上传到的合规数据空间的列表;
接收从所述列表中对合规数据空间的选择;
接收将所述合规数据空间分配给所选团队的指令;以及
更新表示所述租用的数据结构以使得为所选团队分配所选合规数据空间。
35.根据权利要求31所述的方法,还包括:
接收对对应于所述租用的用户列表的显示元素的选择;
响应于接收到对所述显示元素的所述选择,在所述用户界面中显示所述租用的所述用户列表;
接收从所述用户列表中对用户的选择;
接收将所述用户分配给所述团队列表中的所述团队中的一个团队的指令;以及
更新表示所述租用的数据结构以使得为所选用户分配所选团队。
36.根据权利要求35所述的方法,其中更新所述数据结构包括向表示所述租用的图形添加边,所述边在对应于所选团队的节点与对应于所选用户的节点之间延伸。
37.根据权利要求31所述的方法,还包括:
接收对对应于所述租用的文件夹列表的显示元素的选择;
响应于接收到对所述显示元素的所述选择,在所述用户界面中显示所述租用的所述文件夹列表;
接收从所述文件夹列表中对文件夹的选择;
接收将所述文件夹分配给所述团队列表中的所述团队中的一个团队的指令;以及
更新表示所述租用的数据结构以使得为所选文件夹分配所选团队。
38.根据权利要求37所述的方法,其中更新所述数据结构包括向表示所述租用的图形添加边,所述边在对应于所选团队的节点与对应于所选文件夹的节点之间延伸。
39.根据权利要求31所述的方法,还包括:
在所述第一界面元素中接收对团队添加元素的选择;
提示将许可集分配给新团队;以及
更新表示所述租用的数据结构以使得所述团队被添加到所述租用。
40.根据权利要求39所述的方法,其中所述数据结构是图形,并且更新所述数据结构包括将对应于所述新团队的新节点添加到所述图形,所述新节点连接到对应于要分配给所述新团队的所述许可集的节点。
41.一种用于向可用于租用的用户的应用程序分配访问许可的方法,所述方法包括:
向连续集成和部署工具提供用于所述应用程序的许可列表;
将所述许可列表从所述连续集成和部署工具上传到图像储存库;
将所述图像储存库中的所述许可列表提供给许可设置应用编程接口(API);以及
通过所述许可设置应用编程接口来调用许可设置过程以修改表示所述租用的数据结构,所述数据结构被修改以包括来自所述许可列表的所述访问许可。
42.根据权利要求41所述的方法,其中所述许可列表与控制台应用程序相关联,所述控制台应用程序包括被配置为执行更新所述租用中的所述应用程序的许可集的表述性状态转移(REST)调用的逻辑。
43.根据权利要求42所述的方法,其中所述许可列表和所述控制台应用程序作为docker图像的一部分存储在一起。
44.根据权利要求43所述的方法,其中所述docker图像被版本化以镜像所述许可列表的版本。
45.根据权利要求42所述的方法,其中所述控制台应用程序作为用于部署容器化操作的一次性操作来执行。
46.根据权利要求42所述的方法,其中使用被配置为访问所述许可设置API的凭证来执行所述一次性操作。
47.根据权利要求46所述的方法,其中所述许可设置API仅能够使用所述凭证进行访问。
48.根据权利要求46所述的方法,其中所述凭证仅由所述租用用来更新所述租用中的所述应用程序的许可集。
49.根据权利要求41所述的方法,其中所述数据结构是包括表示用户团队的第一节点集和表示许可声明的第二节点集的图形,并且修改所述数据结构包括:
创建新的许可集父节点,所述新的许可集父节点涵盖已经存在于所述图形中的第一许可节点集,同时被分配给所述第一许可节点集的相应团队保持连接到所述第一许可节点集;
创建表示在所述许可列表中分配的尚不存在于所述图形中的新许可的第二许可节点集,所述第二许可节点集被所述新的许可集父节点涵盖;以及
将所述新的许可集父节点分配给所述许可列表中标识的团队。
50.根据权利要求49所述的方法,还包括:
检测回滚条件;
将所述许可列表中标识的所述团队重新连接到旧的许可集父节点;
删除所述图形中表示所述许可列表中先前未分配给所述许可列表中标识的所述团队的许可的任何边;
删除所述第二许可节点集;以及
删除所述新的许可集父节点。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163140604P | 2021-01-22 | 2021-01-22 | |
US63/140604 | 2021-01-22 | ||
PCT/IB2022/050553 WO2022157713A1 (en) | 2021-01-22 | 2022-01-21 | Methods, mediums, and systems for tenancy management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117296043A true CN117296043A (zh) | 2023-12-26 |
Family
ID=80123233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280023353.6A Pending CN117296043A (zh) | 2021-01-22 | 2022-01-21 | 用于租用管理的方法、介质和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220239661A1 (zh) |
EP (1) | EP4281864A1 (zh) |
CN (1) | CN117296043A (zh) |
WO (1) | WO2022157713A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11695559B2 (en) * | 2019-09-30 | 2023-07-04 | Salesforce, Inc. | Nested tenancy that permits a hierarchy having a plurality of levels |
US20240256553A1 (en) * | 2023-01-31 | 2024-08-01 | Dell Products L.P. | Metadata-based query rewriting |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130047193A (ko) * | 2011-10-31 | 2013-05-08 | 한국전자통신연구원 | 조직 구조에 상응하는 선설정된 접근 제어 정보를 이용하는 어플리케이션 서비스 전달 방법 및 장치 |
US10200387B2 (en) * | 2015-11-30 | 2019-02-05 | International Business Machines Corporation | User state tracking and anomaly detection in software-as-a-service environments |
US9838376B1 (en) * | 2016-05-11 | 2017-12-05 | Oracle International Corporation | Microservices based multi-tenant identity and data security management cloud service |
EP3513542B1 (en) * | 2016-09-16 | 2021-05-19 | Oracle International Corporation | Tenant and service management for a multi-tenant identity and data security management cloud service |
US11321187B2 (en) * | 2018-10-19 | 2022-05-03 | Oracle International Corporation | Assured lazy rollback for a multi-tenant identity cloud service |
US11570181B2 (en) * | 2020-05-29 | 2023-01-31 | Microsoft Technology Licensing, Llc | Secure resource authorization for external identities using remote principal objects |
US12056537B2 (en) * | 2021-07-21 | 2024-08-06 | Salesforce, Inc. | Managing execution of continuous delivery pipelines for a cloud platform based data center |
-
2022
- 2022-01-21 US US17/580,839 patent/US20220239661A1/en active Pending
- 2022-01-21 CN CN202280023353.6A patent/CN117296043A/zh active Pending
- 2022-01-21 EP EP22701722.5A patent/EP4281864A1/en active Pending
- 2022-01-21 WO PCT/IB2022/050553 patent/WO2022157713A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022157713A1 (en) | 2022-07-28 |
EP4281864A1 (en) | 2023-11-29 |
US20220239661A1 (en) | 2022-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113169952B (zh) | 一种基于区块链技术的容器云管理系统 | |
US11789721B1 (en) | Systems and methods for infrastructure and middleware provisioning | |
US7418489B2 (en) | Method and apparatus for applying policies | |
US9442813B2 (en) | Replaying jobs at a secondary location of a service | |
EP3398091B1 (en) | System and method for unified access control on federated database | |
US6023586A (en) | Integrity verifying and correcting software | |
US8296267B2 (en) | Upgrade of highly available farm server groups | |
WO2016127756A1 (zh) | 集群弹性部署的方法和管理系统 | |
US20060224775A1 (en) | Contents synchronization system in network enviroment and a method therefor | |
US10581858B2 (en) | Network attached storage (NAS) apparatus having reversible privacy settings for logical storage area shares, and methods of configuring same | |
US20080208926A1 (en) | Data management in a data storage system using data sets | |
US20190095289A1 (en) | System and method for backup and recovery of services in a cloud computing environment | |
US7743281B2 (en) | Distributed file fuzzing | |
CN117296043A (zh) | 用于租用管理的方法、介质和系统 | |
JP2005276177A (ja) | ネットワーク構成のチェックおよび修理のための方法、システムおよびプログラム | |
CN101115070A (zh) | 选择和配置存储区域网络存储和计算设备的方法和系统 | |
WO2016118844A1 (en) | Systems, methods, and computer medium to enhance redeployment of web applications after initial deployment | |
US9313208B1 (en) | Managing restricted access resources | |
CN111104404B (zh) | 基于分布式对象的数据存储方法及装置 | |
CN112506579A (zh) | 多服务多环境管理方法及系统 | |
CN112035062A (zh) | 云计算的本地存储的迁移方法、计算机设备及存储介质 | |
JP6382705B2 (ja) | 仮想機器試験装置、仮想機器試験方法及び仮想機器試験プログラム | |
US9178867B1 (en) | Interacting with restricted environments | |
EP2126701A1 (en) | Data management in a data storage system using data sets | |
US9736007B1 (en) | Method and apparatus for automated data protection with IT infrastructure visibility |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |