CN112348302A - 具有无状态协调器的可扩展工作流引擎 - Google Patents
具有无状态协调器的可扩展工作流引擎 Download PDFInfo
- Publication number
- CN112348302A CN112348302A CN202010618278.0A CN202010618278A CN112348302A CN 112348302 A CN112348302 A CN 112348302A CN 202010618278 A CN202010618278 A CN 202010618278A CN 112348302 A CN112348302 A CN 112348302A
- Authority
- CN
- China
- Prior art keywords
- task
- token
- coordinator
- receiving
- worker
- 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 claims abstract description 92
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 39
- 230000006870 function Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000003993 interaction Effects 0.000 description 11
- 230000009471 action Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Classifications
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- 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
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Computer Security & Cryptography (AREA)
- Game Theory and Decision Science (AREA)
- Computer Hardware Design (AREA)
- Development Economics (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种用于使用无状态协调器来运行工作流和事件的方法、系统和计算机程序产品,包括:接收用于第一任务的第一任务数据,其中,所述第一任务数据是执行第一任务所需的信息。该方法还可包括向提供者发送对工作者节点的请求,其中,提供者创建工作者节点。该方法还可包括从工作者节点接收针对第一任务数据的请求。该方法还可包括向工作者节点发送第一任务数据,其中,工作者节点执行第一任务。该方法还可包括从工作者节点接收执行第一任务的结果。该方法还可包括:响应于接收到结果,向数据库发送结果。
Description
背景技术
本公开涉及工作流引擎,并且更具体地涉及使用无状态协调器(orchestrator)来运行工作流和事件。
发明内容
本发明提供了一种用于使用无状态协调器来运行工作流和事件的计算机实现的方法,系统和计算机程序产品。该方法可包括接收用于第一任务的任务数据,其中该任务数据是执行任务所需的信息。该方法还可包括向提供者发送针对工作者节点的请求,其中提供者创建工作者节点。该方法还可包括从工作者节点接收针对任务数据的请求。该方法还可包括向工作者节点发送任务数据,其中工作者节点执行第一任务。该方法还可包括从工作者节点接收执行第一任务的结果。该方法还可包括:响应于接收到结果,向数据库发送结果。
该系统可具有一个或多个计算机处理器,并且可被配置为接收用于第一任务的任务数据,其中该任务数据是执行任务所必需的信息。该系统还可被配置为向提供者发送针对工作者节点的请求,其中提供者创建该工作者节点。该系统还可被配置为从工作者节点接收针对任务数据的请求。该系统还可被配置为向工作者节点发送任务数据,其中工作者节点执行第一任务。该系统还可被配置为从工作者节点接收执行第一任务的结果。该系统还可被配置为响应于接收到结果,向数据库发送结果。
该计算机程序产品可包括计算机可读存储介质,该计算机可读存储介质中体现有程序指令,该程序指令可由服务器执行以使服务器执行一种方法。该方法可包括接收用于第一任务的任务数据,其中该任务数据是执行任务所需的信息。该方法还可包括向提供者发送针对工作者节点的请求,其中提供者创建工作者节点。该方法还可包括从工作者节点接收针对任务数据的请求。该方法还可包括向工作者节点发送任务数据,其中工作者节点执行第一任务。该方法还可包括从工作者节点接收执行第一任务的结果。该方法还可包括:响应于接收到结果,向数据库发送结果。
以上发明内容并非旨在描述本公开的每个示出的实施例或每个实现方式。
附图说明
本申请中包括的附图被并入说明书中并形成说明书的一部分。它们示出了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图仅是某些实施例的说明,并不限制本公开。
图1描绘了根据一些实施例的用于使用无状态协调器来运行工作流和事件的一组操作的流程图。
图2描绘了根据一些实施例的示例无状态协调器环境以及组件之间的交互的示意图。
图3描绘了根据一些实施例的用于使用无状态协调器来运行工作流和事件的系统的组件的框图。
图4描绘了根据一些实施例的示例计算机系统的框图。
图5描绘了根据一些实施例的云计算环境。
图6描绘了根据一些实施例的抽象模型层。
尽管本发明可服从各种修改和替代形式,但是其细节已经通过示例在附图中示出并且将被详细描述。然而,应当理解,其目的不是将本发明限制于所描述的特定实施例。相反,其意图是涵盖落入本发明的精神和范围内的所有修改,等同物和替代方案。
具体实施方式
本公开涉及工作流引擎,并且更具体地涉及使用无状态协调器来运行工作流和事件。尽管本公开内容不一定限于此类应用,但是可通过使用该上下文讨论各种示例来理解本公开内容的各个方面。
工作流引擎可用于控制和监督工作流或事件的活动和过程。工作流可以是为了完成工作或过程而要执行的一系列任务。这里所指的事件可以是对应于特定过程的动作或活动(例如,击键,鼠标点击,按钮选择,任何类型的用户选择等)。特定过程可包括将要执行或完成的一系列任务。在某些情况下,工作流引擎可具有某些扩展功能,但是由于各种环境之间的复杂集成要求,跨多云或混合云环境的扩展或使用可能是困难的。另外,无服务器功能可具有扩展能力,但是事件可以是分散的(即,没有集中的控制/权限),并且可能无法获得关于事件状态的信息。这可能导致各种工作流的问题,因为对过程的当前状态(例如,在工作流或事件中)拥有清晰的定义可能是重要的。
分布式工作流可用于帮助确定过程的当前状态的定义,但是常规的分布式工作流可以是基于状态服务(即,要求将要被存储的数据和/或将要被保存的状态的服务)和定义的协调器。由于使用有状态协调器和管理系统,系统(例如预置系统,云系统等)的完整扩展功能可能是不可用的。
另外,常规的工作流系统可使用关系数据库来尝试确定过程的状态,但是由于联接(join)和锁定设计,关系数据库可限制工作流引擎或系统的可扩展性。
本公开提供了一种计算机实现的方法,系统和计算机程序产品,以使用无状态协调器来运行工作流和事件。在一些实施例中,协调器管理系统的所有过程。为了确保协调器可以是无状态的,系统可包括各种组件,该组件包括协调器,工作者节点,提供者和数据库。工作者节点可执行在过程中定义的实际任务(例如,根据工作流和/或事件确定/定义)。在一些实施例中,工作者节点一次执行单个任务。在一些实施例中,提供者管理工作者节点。提供者可创建节点,删除节点,以及检查每个节点的状态。在一些实施例中,协调器(例如,通过定义的接口)控制提供者的所有动作。数据库可存储或表示工作流引擎的信息以及依赖状态。在一些实施例中,数据库是工作流引擎的单一状态源,并且位于协调器的外部。
在一些实施例中,无状态协调器允许分布式工作流的完全可扩展性和可移植性。因为协调器是无状态的,所以协调器可能能够随时处理或管理任何事件。当使用多个无状态协调器时,服务可在运行时在每个无状态协调器上被替换。
在一些实施例中,针对协调器与其他组件(例如,协调器与工作者节点,协调器与提供者等)之间的每次交互生成令牌。令牌可用于认证不同组件或微服务之间的动作。在一些实施例中,一旦任务被执行,协调器就移除或删除令牌。在一些实施例中,过程(例如,来自工作流,事件等)定义令牌有效的时间,例如近似于执行任务所需时间长度的时间,并且令牌保持有效直到该时间长度已过去。在一些实施例中,令牌是有效的,直到任务已经执行或者时间长度已经过去,以先到者为准。
现在参考图1,示出了根据一些实施例的流程图,该流程图示出了用于使用无状态协调器来运行工作流和事件的方法100。在一些实施例中,方法100由协调器(例如,协调器210(图2)和/或协调器320(图3))执行。在一些实施例中,方法100被实现为将要由在计算机系统(例如,计算机系统400(图4))上或连接到该计算机系统的协调器执行的计算机脚本或计算机程序(例如,计算机可执行代码)。在一些实施例中,协调器是服务器。在一些实施例中,协调器是计算机设备,例如计算机系统/服务器402(图4)。在一些实施例中,协调器是云计算环境(例如,云计算环境50(图5))内的节点(例如,计算节点10(图5))。
在一些实施例中,协调器被配置为执行操作110以接收任务数据。如本文所讨论的,协调器管理过程(例如,对应于工作流和/或事件)。每个过程可被分解为一个或多个任务。任务数据可以是执行任务(例如,一个或多个任务中的第一任务)所需的信息/数据。在一些实施例中,协调器向数据库(例如,数据库310(图3))请求任务数据,并且数据库将任务数据发送给协调器。为了安全起见,来自协调器的每个请求可代表动作,并且可能需要创建新令牌。令牌以及各种组件之间的令牌交换在本文中进一步讨论并在图2中描绘。
在一些实施例中,接收任务数据可包括接收事件或事件已发生的指示。如本文所讨论的,事件可对应于一个或多个过程(例如,已定义过程)。协调器响应于接收到该事件,可从数据库请求任务数据。该任务可对应于已定义过程或作为已定义过程的一部分。例如,用户可能已经在用户界面上(例如,通过鼠标单击)选择了特定动作(例如,支付账单)。该特定动作可对应于具有多个任务的过程,这些任务在被执行时完成该过程。在此示例中,完成的过程可能是用户的帐单已被支付。该过程可被分解为多个任务,并且协调器可从数据库请求完成多个任务中的第一任务所需的数据。数据库可将所请求的数据发送给协调器。
在一些实施例中,协调器被配置为执行操作120以请求工作者节点。在一些实施例中,工作者节点将执行特定任务。为了请求工作者节点,协调器可将针对工作者节点的请求发送给提供者。如本文所讨论的,提供者可创建,监视和移除节点。一旦提供者接收到对工作者节点的请求,提供者就可创建工作者节点。在一些实施例中,创建工作者节点包括创建容器(即,容器化的应用程序)以及在专用机器(即,工作者机器)上部署/运行该容器。工作者机器可具有本地容器提供者和/或外部容器提供者。
在一些实施例中,一旦创建了工作者节点,该工作者节点将向协调器发送针对任务数据的请求。初始工作者节点(即,新创建的工作者节点)可能没有存储在该节点上的任何任务数据或过程实例信息。为了执行任务,工作者节点需要必须的数据,因此工作者节点可请求来自协调器的任务数据。
在一些实施例中,协调器被配置为执行操作130以接收针对任务数据的请求。如本文所讨论的,针对任务数据的请求可来自工作者节点。在一些实施例中,协调器被配置为执行操作140以向工作者节点发送任务数据。一旦工作者节点请求任务数据,协调器就可将任务数据传输或发送给工作者节点。如本文所讨论的,任务数据可以是执行任务所必需的数据。不必要的数据可能会保留在数据库中。一旦工作者节点接收到任务数据,工作者节点就可执行任务。
在一些实施例中,协调器被配置为执行操作150以接收执行任务的结果。在工作者节点执行任务之后,工作者节点可将执行结果传输或发送给协调器。通过将结果发送给协调器,工作者节点可能不会在工作者节点上存储任何任务数据或结果数据,这可允许工作者节点保持无状态。在一些实施例中,协调器从工作者节点接收执行结果。为了使数据库被保持为工作流引擎的唯一状态源,工作者或工作者节点可执行单个任务(例如,针对单个过程实例或共享的过程实例),并且可能没有任何过程实例信息。工作者可只访问执行单个任务所需的数据,并且一旦执行了任务,就可从工作者删除数据。在一些实施例中,工作者是用于(例如,由协调器发送的)实际任务的简单执行环境。在一些实施例中,工作者是专用沙箱。
在一些实施例中,协调器被配置为执行操作160以向数据库发送结果。为了使协调器也保持无状态,协调器可将执行结果传输或发送给数据库。通过向数据库发送结果,数据库可存储结果,从而保持有状态。协调器可不存储任何结果或任务数据;因此,协调器可保持无状态。
在一些实施例中,方法100还包括操作170,以发送移除工作者节点的请求。一旦工作者节点执行了任务,工作者节点就可能不再被需要。因此,在协调器接收到执行结果(指示任务已被执行)之后,协调器可向提供者传输/发送删除工作者节点的请求。提供者然后可移除工作者节点。在一些实施例中,移除工作者节点包括从专用机器移除创建的容器。一旦移除了工作者节点,那么如果需要,工作者节点就具有运行其他任务(例如,来自另一个协调器的任务)的自由能力。
在一些实施例中,协调器被配置为执行操作180以接收用于第二任务的任务数据。如本文所讨论的,过程可对应于一系列任务。在一些实施例中,协调器可能正在管理具有多个任务的过程。一旦完成第一任务,协调器就可开始第二任务。在一些实施例中,协调器可管理多个过程,并且第二任务可对应于第二过程。协调器可从数据库请求用于第二任务的任务数据。响应于接收到该请求,数据库可将任务数据或执行第二任务所需的数据传输或发送给协调器。
在一些实施例中,协调器被配置为执行操作190以请求第二工作者节点。为了执行第二任务,协调器可向提供者传输或发送对第二工作者节点的请求。第二工作者节点可以是执行第二任务的工作者节点。响应于接收到该请求,提供者可创建第二工作者节点。类似于方法100的操作130-160,协调器可随后从第二工作者节点接收针对用于第二任务的任务数据的请求,将任务数据发送给第二工作者节点,接收执行第二任务的结果,并将第二任务的结果传输给数据库。另外,类似于操作170,协调器可发送移除第二工作者节点的请求。对于协调器正在管理的任何数量的任务,可重复此过程。
在一些实施例中,方法100可在非结构化查询语言(NoSQL)数据库上执行。NoSQL数据库可跨多个节点扩展。在一些实施例中,当有足够的网络和物理资源可用时,每个组件(例如,协调器,提供者和工作者)可独立地并且自动地在不同节点上扩展和部署。因为协调器可能没有状态(如本文所讨论),因此它可通过添加多个协调器来进行扩展或重新部署。例如,当协调器管理多个过程时,可创建其他协调器(例如,每个过程一个),从而扩展协调器。在一些实施例中,协调器可接收多个事件。该多个事件中的每个事件可对应于已定义过程。为了扩展协调器以便管理多个事件,可创建多个协调器。在一些实施例中,该多个协调器管理该多个事件。在一些实施例中,来自该多个协调器的每个协调器管理来自该多个事件的对应事件。
另外,如果有多个要执行的任务,则协调器可创建多个本地或外部提供者,这进而可创建多个工作者节点(例如,专用计算机上的多个容器实例)。在一些实施例中,协调器可指示单个提供者创建多个工作者节点。在一些实施例中,如果协调器被部署在云环境中,则还可通过将外部节点包括在数据库集群中来扩展数据库。
参考图2,根据一些实施例,描绘了示意图或示例无状态协调器环境200以及组件之间的交互。无状态协调器环境200可包括协调器210,提供者240和工作者230。在一些实施例中,协调器210执行方法100(图1)。如本文所讨论的,协调器210与提供者240和工作器230交互以便维持无状态协调器210。此外,为了确保安全/认证,协调器与各种其他组件之间的交互可使用已生成的令牌。
在一些实施例中,协调器210可执行操作211以请求工作者节点。操作211可对应于请求第一节点的操作110(图1)。在一些实施例中,请求工作者节点(211)或将针对工作者节点的请求传输给提供者可包括生成第一令牌(212)。由于协调器将与提供者240进行交互,然后与工作者节点230进行交互,因此可生成第一令牌以维护数据安全和认证。在一些实施例中,当请求工作者节点(211)或将针对工作者节点的请求传输给提供者时,第一令牌也可被传输给提供者。
在一些实施例中,响应于与第一令牌(即,令牌1)一起接收到针对工作者节点211的请求,提供者240可执行操作242以创建工作者节点。当提供者240创建工作者节点230(242)时,提供者240可将第一令牌注入工作者节点230。将第一令牌注入工作者节点230可将第一令牌提供给工作者节点230,因此允许工作者节点230具有对必要数据的适当认证。在一些实施例中,提供者240通过重用现有工作者节点并在现有工作者节点上执行与任务相对应的当前过程实例来创建工作者节点230(操作242)。例如,提供者240可向协调器210通知现有工作者节点,并且协调器可向现有工作者节点发送任务数据(例如,操作216)。由于提供者240可能不需要创建新的工作者节点,因此利用现有的工作者节点可提高效率(例如,节省时间并加快处理速度)。在一些实施例中,系统的要求可确定是否允许重用现有工作者节点。
在一些实施例中,工作者230可执行从协调器210请求任务数据的操作232。当请求任务数据(232)时,协调器可将第一令牌与请求一起传输或发送。在一些实施例中,当协调器210从工作者节点接收对任务数据的请求时(例如,图1的操作130),协调器210还从工作者节点230接收第一令牌(例如,令牌1)。
在一些实施例中,响应于从工作者节点230接收到对任务数据的请求,在操作213中,协调器210可确定第一令牌是否是有效令牌。令牌数据可被存储在数据库中,因此保持无状态协调器210。在一些实施例中,令牌仅在过程中定义才有效,因此确定第一令牌是否是有效令牌可包括识别从过程中定义的时间。在一些实施例中,协调器可监视或跟踪哪些令牌尚未被移除。因此,确定第一令牌是否是有效令牌可包括确定第一令牌是否已被移除(例如,原始令牌已被移除,但是创建了重复项—重复项是无效的)。在一些实施例中,协调器可确定第一令牌或令牌1是有效令牌。因为第一令牌是有效令牌,所以工作者节点230可具有对任务数据的正确认证。因此,传输任务数据(操作216)可以是响应于确定第一令牌是有效令牌。
在一些实施例中,一旦第一令牌已被生效,则在操作214中,第一令牌可被去除或无效。在一些实施例中,一旦在过程中定义的时间已经过去,那么第一令牌被自动去除或无效(即,在第一时间段之后,该过程中定义的第一时间段)。在一些实施例中,协调器210可在第一令牌已经被使用之后使它无效。使令牌无效会使它从数据库中移除,以使得另一个协调器可能无法重新创建或复制同一任务。
在一些实施例中,可生成第二令牌(操作215)。由于协调器210可能正在与工作者进行交互,因此执行了另一个动作,所以协调器可为该动作创建新的令牌。在一些实施例中,当协调器210将任务数据传输给工作者节点230时(操作216),传输任务数据可包括将第二令牌传输给工作者节点。工作者节点230然后可执行操作234以执行任务。一旦工作者节点230已经执行了任务(234),那么工作者节点230就可在操作236中将任务执行结果发送或传输给协调器210。在一些实施例中,工作者节点230可将第二令牌与任务执行结果一起发送。因此,协调器210接收执行任务的结果(例如,图1的操作150)可进一步包括从工作者节点230接收第二令牌。
在一些实施例中,在操作217中,协调器210在从工作者节点接收到第二令牌之后,可确定第二令牌是否有效。如果第二令牌是无效的,则任务执行结果可能是无效的((例如复制结果,来自错误的工作者节点的结果等),因此可能不会被传输给数据库。如果第二令牌是有效的,则协调器210可将执行结果发送给数据库。
在一些实施例中,一旦第二令牌已经被生效,则第二令牌可被移除,或者在操作218中被无效,以从数据库中移除第二令牌,使得该令牌不被另一协调器使用。在一些实施例中,一旦在过程中定义的时间已经过去(即,在第二时间段之后,在过程中定义的第二时间段),则第二令牌被自动移除或无效。在一些实施例中,协调器210可在第二令牌被使用之后使其无效。
在一些实施例中,如本文所讨论的,一旦不再需要工作者节点(例如,在执行结果已经被协调器210接收之后),协调器210可请求移除工作者节点(例如,图1的操作170)。在一些实施例中,在协调器210和提供者240之间的为了删除工作者节点的交互可保证另一个令牌。因此,在一些实施例中,协调器210可执行操作219以生成第三令牌或令牌3。在一些实施例中,当在操作220中,协调器请求移除工作者节点时,协调器可进一步将第三令牌发送给提供者240。一旦提供者240接收到移除请求,在某些情况下,该请求包括第三令牌,则提供者240可执行操作244以删除工作者节点。
在一些实施例中,仅针对协调器210与工作者230之间的交互或动作来生成令牌。这些动作可以是直接的或间接的(例如,通过提供者240)。在一些实施例中,针对所有协调器210与其他组件的交互来生成令牌。
在一些实施例中,协调器210,提供者240和工作者230之间的交互可针对附加的任务和/或过程而重复。例如,一旦执行了第一任务,协调器210就可具有用于执行的附加任务,并且协调器可针对新任务重复操作(例如,从操作211开始)。
参考图3,根据一些实施例,描绘了用于使用无状态协调器的示例系统300的组件的框图。系统300可包括数据库310,协调器320,提供者330和工作者340。在一些实施例中,协调器320对应于协调器210,提供者330对应于提供者240,并且工作者340对应于图2中的工作者230。在一些实施例中,协调器320执行图1中的方法100。
在一些实施例中,协调器320可接收事件(或工作流)350。响应于接收到该事件,协调器可从数据库310请求并接收任务数据(用于与该事件相对应的任务)。协调器320可向提供者330发送针对新工作者节点的请求。响应于从协调器320接收到请求,提供者可创建并启动新的工作者节点340。在一些实施例中,工作者节点340向协调器请求任务数据以便执行任务。协调器可将任务数据发送给工作者节点340。在一些实施例中,一旦任务已经被执行,则工作器节点340可将执行结果发送给协调器320。协调器320然后可将执行结果发送给数据库310,以便维持无状态的协调器320。
参考图4,根据一些实施例,计算机系统400是以通用计算设备的形式示出的计算机系统/服务器402。在一些实施例中,计算机系统/服务器402位于链接设备上。在一些实施例中,计算机系统402连接到链接设备。计算机系统/服务器402的组件可包括但不限于一个或多个处理器或处理单元410,系统存储器460,以及将包括系统存储器460的各种系统组件耦接到处理器410的总线415。
总线415表示几种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器,外围总线,加速图形端口,以及处理器或者使用多种总线体系结构中的任何一种的局域总线。作为示例而非限制,此类体系结构包括工业标准体系结构(ISA)总线,微通道体系结构(MCA)总线,增强型ISA(EISA)总线,视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器402典型地包括多种计算机系统可读介质。此类介质可以是能够被计算机系统/服务器402访问的任何可获得的介质,并且它包括易失性和非易失性介质,可移动和不可移动介质。
系统存储器460可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)462和/或高速缓存存储器464。计算机系统/服务器402可以进一步包括其他可移动/不可移动的,易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统465以用于读写不可移动的非易失性磁性介质(未示出并且通常称为“硬盘驱动器”)。尽管未示出,但是可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(CD-ROM,DVD-ROM或其他光介质)读写的光盘驱动器。在这种情况下,每个驱动器都可以通过一个或多个数据介质接口连接到总线415。如将在下面进一步描绘和描述的,存储器460可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,这些程序模块被配置为执行本公开的实施例的功能。
具有一组(至少一个)程序模块469的程序/实用工具468以及作为示例而非限制的操作系统,一个或多个应用程序,其他程序模块和程序数据可以存储在存储器460中。操作系统,一个或多个应用程序,其他程序模块,以及程序数据中的每一个或它们的某些组合可以包括联网环境的实现。程序模块469通常执行如本文所述的本发明的实施例的功能和/或方法。
计算机系统/服务器402还可以与一个或多个外部设备440(例如键盘,指向设备,显示器430等)通信;与一个或多个使用户能与计算机系统/服务器402交互的设备通信;和/或使计算机系统/服务器402能与一个或多个其他计算设备进行通信的任何设备(例如,网卡,调制解调器等)通信。这种通信可以经由输入/输出(I/O)接口420发生。并且,计算机系统/服务器402可以经由网络适配器450与一个或多个网络(诸如局域网(LAN),通用广域网(WAN),和/或公共网络(例如因特网)通信。如图所示,网络适配器450通过总线415与计算机系统/服务器402的其他组件通信。应当明白,尽管图中未示出,其它硬件和/或软件组件可以与计算机系统/服务器402结合使用。示例包括但不限于:微代码,设备驱动程序,冗余处理单元,外部磁盘驱动器阵列,RAID系统,磁带驱动器和数据备份存储系统等。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图5,根据一些实施例,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图6显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图6,根据一些实施例,其中显示了云计算环境50(图5)提供的一组功能抽象层600。首先应当理解,图6所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图6所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机61;基于RISC(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。软件组件的例子包括:网络应用服务器软件67以及数据库软件68。
虚拟层70提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器71、虚拟存储72、虚拟网络73(包括虚拟私有网络)、虚拟应用和操作系统74,以及虚拟客户端75。
在一个示例中,管理层80可以提供下述功能:资源供应功能81:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能82:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能83:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能85:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层90提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航91;软件开发及生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;以及事件和工作流处理96。
在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (14)
1.一种计算机实现的方法,包括:
接收用于第一任务的第一任务数据,其中,所述第一任务数据是执行所述第一任务所需的信息;
向提供者发送针对工作者节点的请求,其中,所述提供者创建所述工作者节点;
从所述工作者节点接收针对所述第一任务数据的请求;
向所述工作者节点发送所述第一任务数据,其中,所述工作者节点执行所述第一任务;
从所述工作者节点接收执行所述第一任务的结果;以及
响应于接收到所述结果,向数据库发送所述结果。
2.根据权利要求1所述的方法,还包括:
响应于接收到所述结果,向所述提供者发送删除所述工作者节点的请求。
3.根据权利要求2所述的方法,还包括:
接收用于第二任务的第二任务数据,其中,所述第二任务数据是执行所述第二任务所需的信息;以及
向所述提供者发送针对第二工作者节点的请求。
4.根据权利要求1所述的方法,其中,向所述提供者发送针对所述工作者节点的所述请求包括:
生成第一令牌;以及
向所述提供者发送所述第一令牌,其中,所述提供者将所述第一令牌注入所述工作者节点。
5.根据权利要求4所述的方法,其中,从所述工作者节点接收针对所述第一任务数据的所述请求还包括:从所述工作者节点接收所述第一令牌。
6.根据权利要求5所述的方法,还包括:
响应于接收到所述请求,确定所述第一令牌是否是有效令牌;
其中,发送所述第一任务数据是响应于确定所述第一令牌是有效令牌而执行的。
7.根据权利要求6所述的方法,还包括:
响应于确定所述第一令牌是有效令牌,使所述第一令牌无效;
生成第二令牌;
其中,发送所述第一任务数据还包括向所述工作者节点发送所述第二令牌。
8.根据权利要求7所述的方法,其中,接收执行所述第一任务的所述结果还包括:从所述工作者节点接收所述第二令牌。
9.根据权利要求7所述的方法,其中,在第一时间段之后,使所述第一令牌无效。
10.根据权利要求1所述的方法,其中,接收所述第一任务数据包括:
接收事件,其中,所述事件对应于已定义过程;以及
响应于接收到所述事件,向所述数据库请求所述第一任务数据,其中,所述第一任务是所述已定义过程的一部分。
11.根据权利要求1所述的方法,还包括:
接收多个事件,其中,所述多个事件中的每个事件对应于已定义过程;以及
创建多个协调器,其中,所述多个协调器管理所述多个事件。
12.一种具有一个或多个计算机处理器的系统,所述系统被配置为执行根据权利要求1至11中任一项所述的方法的步骤。
13.一种计算机系统,包括用于执行根据权利要求1至11任一项所述的方法的步骤的模型。
14.一种计算机程序产品,包括计算机可读存储介质,所述计算机可读存储介质中体现有程序指令,所述程序指令可由服务器执行以使所述服务器执行根据权利要求1至11中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/533956 | 2019-08-07 | ||
US16/533,956 US11586470B2 (en) | 2019-08-07 | 2019-08-07 | Scalable workflow engine with a stateless orchestrator |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112348302A true CN112348302A (zh) | 2021-02-09 |
Family
ID=74357507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010618278.0A Pending CN112348302A (zh) | 2019-08-07 | 2020-07-01 | 具有无状态协调器的可扩展工作流引擎 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11586470B2 (zh) |
CN (1) | CN112348302A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127096A (zh) * | 2021-04-27 | 2021-07-16 | 上海商汤科技开发有限公司 | 任务处理方法和装置、电子设备、存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11876886B2 (en) * | 2021-03-22 | 2024-01-16 | Oracle International Corporation | Proof of eligibility consensus for the blockchain network |
CN113254175A (zh) * | 2021-05-27 | 2021-08-13 | 航天宏图信息技术股份有限公司 | 一种算法调度方法、数据处理流程驱动方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793656A (zh) * | 2012-10-30 | 2014-05-14 | 三星Sds株式会社 | 通过元数据协调器实现的安全 |
CN105164677A (zh) * | 2013-03-15 | 2015-12-16 | 微软技术许可有限责任公司 | 在并行数据库处执行存储过程 |
US20160248873A1 (en) * | 2015-02-19 | 2016-08-25 | International Business Machines Corporation | Data communication in a clustered data processing environment |
CN109565511A (zh) * | 2016-09-16 | 2019-04-02 | 甲骨文国际公司 | 用于多租户身份和数据安全管理云服务的租户和服务管理 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754857A (en) | 1995-12-08 | 1998-05-19 | Sun Microsystems, Inc. | Distributed asynchronous workflow on the net |
US5960404A (en) | 1997-08-28 | 1999-09-28 | International Business Machines Corp. | Mechanism for heterogeneous, peer-to-peer, and disconnected workflow operation |
EP2020797B1 (en) * | 2007-08-02 | 2016-06-15 | Apple Inc. | Client-server Opaque token passing apparatus and method |
US9262127B2 (en) | 2007-09-10 | 2016-02-16 | Oracle International Corporation | System and method for an infrastructure that enables provisioning of dynamic business applications |
US8244559B2 (en) * | 2009-06-26 | 2012-08-14 | Microsoft Corporation | Cloud computing resource broker |
CN101990183B (zh) * | 2009-07-31 | 2013-10-02 | 国际商业机器公司 | 保护用户信息的方法、装置及系统 |
US20110041167A1 (en) * | 2009-08-17 | 2011-02-17 | Samsung Electronics Co. Ltd. | Techniques for providing secure communications among clients with efficient credentials management |
US8990562B2 (en) * | 2010-10-08 | 2015-03-24 | Microsoft Technology Licensing, Llc | Secure deployment of provable identity for dynamic application environments |
US8468548B2 (en) * | 2010-12-17 | 2013-06-18 | Microsoft Corporation | Multi-tenant, high-density container service for hosting stateful and stateless middleware components |
US8875240B2 (en) * | 2011-04-18 | 2014-10-28 | Bank Of America Corporation | Tenant data center for establishing a virtual machine in a cloud environment |
US9106642B1 (en) * | 2013-09-11 | 2015-08-11 | Amazon Technologies, Inc. | Synchronizing authentication sessions between applications |
US10193963B2 (en) * | 2013-10-24 | 2019-01-29 | Vmware, Inc. | Container virtual machines for hadoop |
US9229795B2 (en) | 2013-12-09 | 2016-01-05 | Hewlett Packard Enterprise Development Lp | Execution of end-to-end processes across applications |
US9276933B2 (en) * | 2013-12-20 | 2016-03-01 | Sharp Laboratories Of America, Inc. | Security token caching in centralized authentication systems |
US10516733B2 (en) * | 2014-11-25 | 2019-12-24 | Auth0, Inc. | Multi-tenancy via code encapsulated in server requests |
US20160179767A1 (en) * | 2014-12-22 | 2016-06-23 | Prasanna Bhat Mavinakuli | Architecture for an application with integrated dynamic content |
US9778957B2 (en) * | 2015-03-31 | 2017-10-03 | Stitch Fix, Inc. | Systems and methods for intelligently distributing tasks received from clients among a plurality of worker resources |
US9906370B2 (en) * | 2015-11-16 | 2018-02-27 | International Business Machines Corporation | Trust relationship management amongst racks in a data center |
US10261782B2 (en) * | 2015-12-18 | 2019-04-16 | Amazon Technologies, Inc. | Software container registry service |
US10798757B2 (en) * | 2015-12-31 | 2020-10-06 | Ribbon Communications Operating Company, Inc. | Systems, methods, and computer program products for token-based session setup in telecommunication services |
US20170255886A1 (en) * | 2016-03-03 | 2017-09-07 | Hewlett-Packard Development Company, L.P. | Workflow execution |
US10862733B2 (en) | 2016-06-28 | 2020-12-08 | Virtustream Ip Holding Company Llc | Standardized microservices for controlling components of distinct applications in multi-tenant clouds |
US10594684B2 (en) * | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
US10484243B2 (en) | 2016-09-16 | 2019-11-19 | Oracle International Corporation | Application management for a multi-tenant identity cloud service |
US10223541B2 (en) * | 2017-01-24 | 2019-03-05 | Salesforce.Com, Inc. | Adaptive permission token |
US10387217B2 (en) * | 2017-02-15 | 2019-08-20 | Ca, Inc. | Distributed processing of mixed serial and concurrent workloads |
US10621003B2 (en) | 2017-03-31 | 2020-04-14 | International Business Machines Corporation | Workflow handling in a multi-tenant cloud environment |
US10025579B1 (en) | 2017-04-05 | 2018-07-17 | International Business Machines Corporation | Distributing a composite application |
US10587732B2 (en) * | 2017-04-13 | 2020-03-10 | International Business Machines Corporation | Secure client-server communication |
WO2018212952A1 (en) * | 2017-05-18 | 2018-11-22 | Walmart Apollo, Llc | System for third-party item pickup authorization |
CN209312029U (zh) * | 2017-06-04 | 2019-08-27 | 苹果公司 | 电子装置 |
US10270759B1 (en) * | 2017-06-21 | 2019-04-23 | Mesosphere, Inc. | Fine grained container security |
US10437577B2 (en) * | 2018-02-02 | 2019-10-08 | Verizon Patent And Licensing Inc. | Systems and methods for mobile application installation |
WO2019168715A1 (en) * | 2018-03-01 | 2019-09-06 | Huawei Technologies Co. Ltd. | Event to serverless function workflow instance mapping mechanism |
US11487573B2 (en) * | 2018-05-08 | 2022-11-01 | Thomson Reuters Enterprise Centre Gmbh | Systems and method for automating security workflows in a distributed system using encrypted task requests |
US11025425B2 (en) * | 2018-06-25 | 2021-06-01 | Elasticsearch B.V. | User security token invalidation |
US10735472B2 (en) * | 2018-07-10 | 2020-08-04 | Cisco Technology, Inc. | Container authorization policies for network trust |
SG10201806604WA (en) * | 2018-08-02 | 2020-03-30 | Mastercard International Inc | Methods and systems for facilitating a client-server communication using cyclic tokens |
US11044257B1 (en) * | 2018-11-26 | 2021-06-22 | Amazon Technologies, Inc. | One-time access to protected resources |
US11463258B2 (en) * | 2020-03-13 | 2022-10-04 | Ebay Inc. | Secure token refresh |
-
2019
- 2019-08-07 US US16/533,956 patent/US11586470B2/en active Active
-
2020
- 2020-07-01 CN CN202010618278.0A patent/CN112348302A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793656A (zh) * | 2012-10-30 | 2014-05-14 | 三星Sds株式会社 | 通过元数据协调器实现的安全 |
CN105164677A (zh) * | 2013-03-15 | 2015-12-16 | 微软技术许可有限责任公司 | 在并行数据库处执行存储过程 |
US20160248873A1 (en) * | 2015-02-19 | 2016-08-25 | International Business Machines Corporation | Data communication in a clustered data processing environment |
CN109565511A (zh) * | 2016-09-16 | 2019-04-02 | 甲骨文国际公司 | 用于多租户身份和数据安全管理云服务的租户和服务管理 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127096A (zh) * | 2021-04-27 | 2021-07-16 | 上海商汤科技开发有限公司 | 任务处理方法和装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20210042161A1 (en) | 2021-02-11 |
US11586470B2 (en) | 2023-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237812B2 (en) | Deploying an application in a cloud computing environment | |
US10616132B2 (en) | Managing user privileges for computer resources in a networked computing environment | |
US10048955B2 (en) | Accelerating software builds | |
US10977167B2 (en) | Application monitoring with a decoupled monitoring tool | |
CN104160374B (zh) | 云突发以及对云突发应用的管理 | |
CN112348302A (zh) | 具有无状态协调器的可扩展工作流引擎 | |
CN112753196B (zh) | 混合云kms解决方案中的hsm自毁方法、系统和存储介质 | |
US11245636B2 (en) | Distributing computing resources based on location | |
US11165585B2 (en) | Token repository and integration | |
WO2022184495A1 (en) | Serverless runtime container allocation | |
US10657136B2 (en) | Searching data on a synchronization data stream | |
US20180107723A1 (en) | Content oriented analysis of dumps | |
WO2023072252A1 (en) | Task failover | |
CN112148935B (zh) | 用于多实例的nbmp功能执行的方法和装置 | |
US20220182296A1 (en) | Service remediation plan generation | |
US10884789B2 (en) | Process tracking | |
US11971805B2 (en) | Intelligent automated feature toggle system using annotations | |
US11797284B2 (en) | Composable deployer architecture | |
US11099907B1 (en) | Prerequisite driven dynamic infrastructure orchestration | |
CN115039100B (zh) | 为安全访客保留一个或多个安全模块 | |
US11811888B2 (en) | Ensuring data protection and control in distributed hybrid multi-cloud environment | |
US20240020171A1 (en) | Resource and workload scheduling | |
US20240086255A1 (en) | Identification of reusable components | |
US20240015213A1 (en) | Extend controller for multi-tenancy | |
CN115039100A (zh) | 为安全访客保留一个或多个安全模块 |
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 |