CN115474439A - 用于机器人程序自动化的自动缩放策略 - Google Patents

用于机器人程序自动化的自动缩放策略 Download PDF

Info

Publication number
CN115474439A
CN115474439A CN202180004052.4A CN202180004052A CN115474439A CN 115474439 A CN115474439 A CN 115474439A CN 202180004052 A CN202180004052 A CN 202180004052A CN 115474439 A CN115474439 A CN 115474439A
Authority
CN
China
Prior art keywords
rpa
auto
policy
workload
scaling
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
Application number
CN202180004052.4A
Other languages
English (en)
Inventor
马涛
博格登·康斯坦汀·里帕
安德烈·罗伯特·奥罗斯
克里斯汀·普弗
克莱门·B·法可赫
塔里克·玛德克尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yupas Co
Original Assignee
Yupas Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US17/228,741 external-priority patent/US11971705B2/en
Application filed by Yupas Co filed Critical Yupas Co
Publication of CN115474439A publication Critical patent/CN115474439A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41815Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • G05B19/41825Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell machine tools and manipulators only, machining centre
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41835Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by programme execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

提出了分配用于完成机器人程序自动化(RPA)工作负荷的计算环境的系统及方法。接收用于完成RPA工作负荷的请求。根据多个RPA自动缩放策略中的一所选的RPA自动缩放策略来计算用于完成所述RPA工作负荷的分配的计算环境的数量。分配计算出的所述计算环境的数量以用于分配一或多个RPA机器人来完成所述RPA工作负荷。所述计算环境可以是虚拟机器。

Description

用于机器人程序自动化的自动缩放策略
技术领域
本发明大致上关于机器人程序自动化(Robotic Process Automation;RPA),特别是有关RPA自动缩放策略,以用于分配虚拟机器或其它计算环境以执行一或多个RPA机器人。
背景技术
在机器人程序自动化(RPA)中,工作是借由一或多个自动执行RPA工作流程的RPA机器人来完成的。此种工作常常可能需要优先在速度或成本上来加以完成。传统上,用于实施RPA机器人的机器是借由使用者人工分配的。然而,机器的人工分配是麻烦的,而且需要使用者知道有关RPA的实施的各种背景资讯来优先化速度或成本。在另一习知的方法中,用于实施RPA机器人的机器是根据例如中央处理器(CPU)使用率、存储器使用率、等等的计算资源来分配的。然而,此种习知的方法并未考量机器人的例如是待办的工作的工作负荷。
发明内容
本发明的实施例提供用于分配虚拟机器或其它计算环境的机器人程序自动化(RPA)自动缩放策略,以平衡完成工作的速度及成本。
根据一或多个实施例,提出了分配用于完成RPA工作负荷的计算环境的系统及方法。接收用于完成所述RPA工作负荷的请求。根据多个RPA自动缩放策略中的一所选的RPA自动缩放策略来计算用于完成所述RPA工作负荷的分配的计算环境的数量。分配计算出的所述计算环境的数量以用于分配一或多个RPA机器人来完成所述RPA工作负荷。
在一实施例中,所述计算环境包括虚拟机器。
在一实施例中,所述多个RPA自动缩放策略包括一速度优于成本策略、一平衡策略、以及一成本优于速度策略。分配的计算环境的数量是根据要完成所述RPA工作负荷的计算环境的数量、在一池中可被产生的计算环境的最大数量、以及一授权所容许的RPA机器人的数量来加以计算。
在一实施例中,所述多个RPA自动缩放策略包括一客制策略,由使用者来配置在所述客制策略中的一或多个控制变数。在另一实施例中,所述多个RPA自动缩放策略包括一动态策略,根据工作负荷类型来自动地调整在所述动态策略中的一或多个控制变数。
在一实施例中,所选的RPA自动缩放策略的选择是从一使用者接收到的。在另一实施例中,所选的RPA自动缩放策略是根据一排程及/或根据所述RPA工作负荷的一来源自动选择的。
借由参考以下的详细说明以及所附的图式,本发明的这些及其它优点对于本领域技术人员而言将会是明显的。
附图说明
图1是根据本发明的一实施例的一RPA系统的架构图;
图2是根据本发明的一实施例的一部署的RPA系统的一个例子的架构图;
图3是根据本发明的一实施例的一RPA系统的一简化的部署例子的架构图;
图4展示根据本发明的一实施例的用于实施机器人程序自动化的机器人的以云端为基础而管理的一云端RPA系统的架构图;
图5展示根据本发明的一实施例的一种分配用于执行RPA机器人的计算环境的方法;以及
图6是可被用来被实施本发明的实施例的一计算系统的方块图。
具体实施方式
机器人程序自动化(RPA)使用于自动化工作流程及程序。图1是根据一或多个实施例的一RPA系统100的架构图。如同在图1中所示,RPA系统100包含设计者102以容许开发者设计自动化程序。更明确地说,设计者102会使得RPA程序以及用于执行在所述程序中的活动的机器人的开发及部署变得容易。设计者102可以针对于应用程序整合、以及自动化的第三方应用程序、管理的资讯科技(IT)工作、以及用于客服中心操作的商业程序提供解决方案。设计者102的一实施例的一商用例子是UiPath StudioTM
在设计规则为基础的程序的自动化中,所述开发者控制在一程序中开发的一组客制的在此被定义为“活动”的步骤之间的执行顺序及关系。每一个活动可包含一动作,例如是点选一按钮、读取一文档、写入一日志面板、等等。在某些实施例中,程序可以是巢状或嵌入式的。
某些类型的程序可包含但不限于序列、流程图、有限状态机(FSM)、及/或全域例外状况处理常式。序列可以特别适合用于线性程序,其致能从一活动流向另一活动而不混杂程序的流程。流程图可以特别适合于较复杂的商业逻辑,其通过多个分支逻辑运算子而致能更为各式各样的方式的决策的整合以及活动的连接。FSM可以特别适合用于大的工作流程。FSM可以在其执行中使用有限数量的状态,其是借由一状况(亦即,转变)或是一活动而被触发。全域例外状况处理常式可以特别适合用于在遇到执行错误时判断工作流程特性以及用于除错的程序。
一旦一程序在设计者102被开发后,商业程序的执行是借由一指挥者104来协调,其协调一或多个机器人106执行在设计者102中开发的程序。指挥者104的一实施例的一商用例子是UiPath OrchestratorTM。指挥者104会使得在一RPA环境中的资源的产生、监视及部署的管理变得容易。在一例子中,指挥者104是一网络应用程序。指挥者104亦可以作用为和第三方的解决方案及应用程序的一整合点。
指挥者104可以借由从一集中点来连接及执行机器人106而管理一队RPA机器人106。指挥者104可以具有各种功能,其包含但不限于备置(provisioning)、部署、配置、排队、监视、记录、及/或提供互连。备置可包含产生及维护在机器人106以及指挥者104(例如,一网络应用程序)之间的连接。部署可包含确保套件版本正确地传送至所指定的机器人106以用于执行。配置可包含机器人环境以及程序配置的维护及传送。排队可包含提供伫列以及伫列项目的管理。监视可包含保持追踪机器人识别数据以及维持使用者许可。记录可包含将记录储存及编入索引到一数据库(例如,一SQL数据库)及/或另一储存机构(例如,
Figure BDA0003422981370000031
其提供储存及快速地查询大的数据集的能力)。指挥者104可以借由作用为让第三方的解决方案及/或应用程序进行通讯的集中点来提供互连。
机器人106是执行代理,其执行内建在设计者102中的程序。机器人106的某些实施例的一商用的例子是UiPath RobotsTM。机器人106的类型可包含但不限于参与的机器人108以及未参与的机器人110。参与的机器人108借由一使用者或是使用者事件而被触发,并且在相同的计算系统上和一人类使用者一同运作。参与的机器人108可以帮助所述人类使用者达成各种的任务,并且可以直接借由所述人类使用者及/或借由使用者事件而被触发。在参与的机器人的情形中,指挥者104可以提供集中的程序部署以及一记录介质。在某些实施例中,参与的机器人108可以只从一“机器人托盘”或是从一网络应用程序中的一命令提示来加以起始。未参与的机器人110是在虚拟的环境中以一未参与的模式来运作,并且可被利用于自动化许多程序,例如是用于大量的后端程序等等。未参与的机器人110可以负责远端的执行、监视、排程、以及提供支援于工作伫列。参与及未参与的机器人都可以自动化各种的系统及应用程序,其包含但不限于大型计算机、网络应用程序、VM、企业应用程序(例如,那些由
Figure BDA0003422981370000041
等等产出的)、以及计算系统应用程序(例如,桌上型及膝上型应用程序、移动装置应用程序、可穿戴式电脑应用程序、等等)。
在某些实施例中,机器人106预设是安装微软
Figure BDA0003422981370000042
服务控制管理器(SCM)所管理的服务。因此,此种机器人106可以在本地的系统帐户下开启互动的
Figure BDA0003422981370000043
对话,并且具有一
Figure BDA0003422981370000044
服务的权利。在某些实施例中,机器人106可被安装在一使用者模式,其具有和一给定的机器人106已经被安装在其下的使用者相同的权利。
在某些实施例中,机器人106被分开成为数个构件,每一个构件是专用于一特定的任务。在某些实施例中,机器人构件包含但不限于SCM管理的机器人服务、使用者模式机器人服务、执行者、代理、以及命令列。SCM管理的机器人服务用以管理及监视
Figure BDA0003422981370000045
对话,并且作动为在指挥者104以及执行主机(亦即,机器人106被执行在其上的计算系统)之间的代理。这些服务被委任及管理用于机器人106的凭证。一控制台应用程序是在所述本地的系统下,借由所述SCM来发动的。在某些实施例中,使用者模式机器人服务用以管理及监视
Figure BDA0003422981370000046
对话,并且作动为在指挥者104以及所述执行主机之间的代理。使用者模式机器人服务可以被委任及管理用于机器人106的凭证。若所述SCM管理的机器人服务并未被安装,则一
Figure BDA0003422981370000047
应用程序可以自动地被发动。执行者可以在一
Figure BDA0003422981370000048
对话下执行给定的工作(例如,它们可以执行工作流程),并且它们可以感知每显示器的每英吋点数(DPI)设定。代理可以是
Figure BDA0003422981370000049
Presentation Foundation(WPF)应用程序,其显示在所述系统托盘视窗中的可利用的工作。代理可以是所述服务的一客户。代理可以请求开始或停止工作以及改变设定。命令列是所述服务的一客户,并且是一控制台应用程序,其可以请求开始工作并且等待其输出。分开机器人构件可以帮助开发者、支援使用者、以及致能计算系统更轻易地执行、识别及追踪每一个机器人构件正在执行什么。例如,每一个机器人构件可被配置特殊的行为,例如对于所述执行者以及所述服务设定不同的防火墙规则。作为另一例子的是,一执行者在某些实施例中可以感知每显示器的DPI设定,并且因此工作流程可以在任意的DPI下被执行,而不论它们之前被产生在其上的计算系统的配置为何。
图2展示根据一或多个实施例的一RPA系统200。RPA系统200可以是图1的RPA系统100、或者可以是图1的RPA系统100的部分。应注意到的是,“客户侧”、“服务器侧”、或是两者可包含任意所要数量的计算系统,而不偏离本发明的范畴。
如同在此实施例中的客户侧上所示的,计算系统202包含一或多个执行者204、代理206、以及设计者208。在其它实施例中,设计者208可以不在相同的计算系统202上执行。一执行者204(其可以是如上所述的一机器人构件)执行一程序,并且在某些实施例中,多个商业程序可以同时执行。在此例子中,代理206(例如,一
Figure BDA0003422981370000051
服务)是用于管理执行者204的单一接触点。
在某些实施例中,一机器人表示在一机器名称以及一使用者名称之间的关联。一机器人可以同时管理多个执行者。在支援同时执行的多个互动的对话的计算系统上(例如,
Figure BDA0003422981370000052
Server 2012),多个机器人可以同时执行(例如,一高密度(HD)的环境),每一个机器人在利用一唯一使用者名称的一个别的
Figure BDA0003422981370000053
对话中。
代理206亦负责传送机器人的状态(例如,周期性地传送一指出所述机器人仍然在作用的“心跳”讯息),并且下载所需版本的套件而被执行。在代理206以及指挥者212之间的通讯在某些实施例中是借由代理206而被起始的。在一通知情节的例子中,代理206可以开启一WebSocket通道,其是之后被指挥者212利用来传送命令至所述机器人(例如,开始、停止、等等)。
如同在此实施例中的服务器侧所示,一表现层包括网络应用程序214、开放数据协定(OData)表现层状态转换(REST)应用程序介面(API)端点216、以及通知及监视API 218。在所述服务器侧上的一服务层包含API实施/商业逻辑220。在所述服务器侧上的一持久层包含数据库服务器222以及索引器服务器224。指挥者212包含网络应用程序214、OdataREST API端点216、通知及监视API 218、以及API实施/商业逻辑220。
在各种的实施例中,使用者在指挥者212的介面中(例如,经由浏览器210)执行的大多数的动作是借由呼叫各种的API来加以执行。此种动作可包含但不限于在机器人上开始工作、在伫列中加入/移除数据、排程无人看管的执行的工作、等等。网络应用程序214是所述服务器平台的视觉层。在此实施例中,网络应用程序214使用超文本标记语言(HTML)以及JavaScript(JS)。然而,任何所要的标记语言、文本语言、或是任何其它格式都可被使用,而不偏离本发明的范畴。在此实施例中,使用者是经由浏览器210以与来自网络应用程序214的网页互动,以便于执行各种的动作以控制指挥者212。譬如,使用者可以产生机器人群组、指定套件至所述机器人、分析每一机器人及/或每一程序的记录、开始及停止机器人、等等。
除了网络应用程序214之外,指挥者212亦包含一服务层,其露出OData REST API端点216(或是其它端点可被实施,而不偏离本发明的范畴)。所述REST API是被网络应用程序214及代理206所消费。在此范例的配置中,代理206是在所述客户电脑上的一或多个机器人的监督者。
在此实施例中,所述REST API涵盖配置、记录、监视、以及排队功能。在某些实施例中,配置REST端点可被用来定义及配置应用程序使用者、许可、机器人、资产、发行、以及环境。对于记录例如是错误、由所述机器人所传送的明确讯息、以及其它环境特定的资讯的不同资讯而言,记录REST端点可以是有用的。若所述开始工作命令在指挥者212中被使用,则部署的REST端点可被所述机器人使用来查询应该被执行的套件版本。排队的REST端点可以负责伫列及伫列项目管理,例如加入数据至一伫列、从所述伫列获得一交易、设定一交易的状态、等等。监视的REST端点是监视网络应用程序214及代理206。通知及监视API 218可以是被使用于登记代理206、传递配置设定至代理206、以及用于从所述服务器及代理206传送/接收通知的REST端点。通知及监视API 218在某些实施例中亦可以使用WebSocket通讯。
在此举例说明的实施例中,在所述服务器侧上的持久层包含一对服务器–数据库服务器222(例如,一SQL服务器)以及索引器服务器224。在此实施例中,数据库服务器222储存所述机器人的配置、机器人群组、相关的程序、使用者、角色、排程、等等。在某些实施例中,此资讯是通过网络应用程序214来管理的。数据库服务器222亦可以管理伫列及伫列项目。在某些实施例中,数据库服务器222可以储存借由机器人记录的讯息(额外或替代索引器服务器224)。索引器服务器224在某些实施例中是选配的,其储存及编入索引借由所述机器人记录的资讯。在某些实施例中,索引器服务器224可以通过配置设定而被禁能。在某些实施例中,索引器服务器224是使用
Figure BDA0003422981370000071
其是一开放原始码专案全文搜寻引擎。借由机器人记录的讯息(例如,利用像是日志信息或是写入行的活动)可以通过所述记录的REST端点而被传送至索引器服务器224,其中它们被编入索引以供未来的利用。
图3是描绘根据一或多个实施例的RPA系统300的一简化的部署的例子的架构图。在某些实施例中,RPA系统300可以是图1及图2分别的RPA系统100及/或200、或者可包含上述RPA系统。RPA系统300包含多个执行机器人的客户计算系统302。计算系统302是能够经由执行于其上的一网络应用程序来和一指挥者计算系统304通讯。指挥者计算系统304于是和数据库服务器306以及一选配的索引器服务器308通讯。关于图2及图3,应注意到的是尽管一网络应用程序在这些实施例中被使用,但是任何适当的客户/服务器软件都可被使用,而不偏离本发明的范畴。譬如,所述指挥者可以执行一服务器侧的应用程序,其是和所述客户计算系统上的非网络为基础的客户软件应用程序通讯。
在一实施例中,图1的RPA系统100、图2的RPA系统200、及/或图3的RPA系统300可被实施用于云端为基础的RPA机器人的管理。此种云端为基础的RPA机器人的管理是致能RPA被提供为软件即服务(SaaS)。于是,图1的指挥者104、图2的指挥者212、及/或图3的指挥者304被实施在所述云端以用于云端为基础的RPA机器人的管理,以例如产生RPA机器人、备置RPA机器人、在RPA机器人上排程工作、停用RPA机器人、或是完成任何其它用于管理RPA机器人的协调工作。
图4是描绘根据一或多个实施例的一云端RPA系统400的架构图,其用于实施以云端为基础的RPA机器人的管理。云端RPA系统400包括一云端计算环境402以及一本地的计算环境404。本地的计算环境404表示一使用者或是任何其它例如是公司、企业、等等的一或多个实体的一本地的网络架构。本地的计算环境404包括本地的网络406。云端计算环境402表示一云端计算网络架构,其在本地的计算环境404的使用者的远端提供服务或工作负荷的处理。云端计算环境402包括各种的云端网络,其包含因特网414、使用者云端网络418,其表示由所述使用者所管理(或控制)并且由一云端平台提供者所主办的一云端网络、以及一云端服务提供者云端网络420,其表示由一云端服务提供者所管理并且由一云端平台提供者所主办的一云端网络。所述云端服务提供者是一经由所述云端来提供服务(例如,RPA)的实体。所述云端平台提供者是维持云端计算基础结构的一实体。本地的计算环境404的本地的网络406是通讯地耦接至云端计算环境402的因特网414,以使得在本地的计算环境404以及云端计算环境402之间的通讯变得容易。
如同在图4中所示,一云端协调者430被实施在云端计算环境402中,以致能云端为基础的RPA机器人的管理。尤其,云端协调者430是借由一云端服务提供者所管理,并且在云端计算环境402之内被容置在云端服务提供者云端网络420中。在一实施例中,所述云端服务提供者是提供RPA至本地的计算环境404中的使用者。
云端协调者430管理在云端计算环境402中的RPA机器人。尤其,使用者与本地的计算环境404中的计算装置412互动,以发送用于管理RPA机器人的指令至云端计算环境402中的云端协调者430。或者是,使用者与本地的计算环境404中的计算装置412互动,以在云端协调者430上设定一排程来代表使用者自动地发送用于管理RPA机器人的指令。用于管理RPA机器人的示范性指令包含用于执行以下动作的指令:产生RPA机器人、备置RPA机器人、在RPA机器人上排程一工作(例如,排程用于执行所述工作的时间以及用以执行所述工作的机器人类型)、停用RPA机器人、或是任何其它用于RPA机器人的协调指令。响应于接收所述指令,云端协调者430借由例如产生所述RPA机器人、备置所述RPA机器人、排程所述RPA机器人的工作、停用所述RPA机器人、等等来完成所述指令。在一实施例中,云端协调者430可以是类似于图1的指挥者104、图2的指挥者212、或是图3的指挥者304,但是被实施在云端计算环境402之内的云端服务提供者云端网络420中。
借由云端协调者430管理的RPA机器人可包含一池的云端机器人,其被部署及维持在云端计算环境402之内。此种云端机器人可包含云端服务机器人池426的一或多个云端服务机器人428-A、…、428-X(在以下整体被称为云端服务机器人428)、以及云端管理的机器人池422的一或多个云端管理的机器人424-A、…、424-Y(在以下整体被称为云端管理的机器人424)。此种云端机器人在云端计算环境402中执行(亦即,处理)任务,并且发送所述任务的结果至本地的计算环境404中的使用者。额外或替代地,借由云端协调者430所管理的RPA机器人可包含本地的机器人池408的一或多个本地的机器人410-A、…、410-Z(在以下整体被称为本地的机器人410)。
云端服务机器人428由在云端服务提供者云端网络420中的云端服务提供者来加以维持,以针对本地的网络环境404中的使用者而在云端计算环境402中执行RPA任务。云端服务机器人428在所述使用者从计算装置412传送指令至云端协调者430的请求之后而被产生。在产生之后,云端服务机器人428进入一待机模式,同时等待以执行一任务(或工作流程)。当在待机模式中,用于执行所述云端服务机器人428的成本是被最小化、或者是降低。任务是借由所述使用者从计算装置412传送指令至云端协调者430而被排程在云端服务机器人428上。用于排程任务的指令是定义执行所述任务的时间以及用于执行所述任务一机器人类型。云端服务机器人428从待机模式醒来以执行所述任务,并且一旦所述任务完成后就返回待机模式。于是,云端服务机器人428为本地的计算环境404中的使用者在云端服务提供者云端网络420上执行所述任务。
云端管理的机器人424由在一使用者云端网络418中的使用者来加以维持,以针对本地的网络环境404中的使用者而在云端计算环境402中执行RPA任务。云端管理的机器人424在功能上类似于云端服务机器人428,并且亦被容置在云端计算环境402中。然而,云端管理的机器人424被容置在其上的使用者云端网络418是借由使用者所管理,而云端服务机器人428被容置在其上的云端服务提供者云端网络420是借由所述云端服务提供者所管理,并且由所述云端平台提供者所主管。云端协调者430是借由在云端服务提供者云端网络420以及使用者云端网络418之间建立一连接来管理云端管理的机器人424。使用者云端网络418可以借由使用者利用云端提供者技术来打开通道回到本地的网络406来建立。使用者可以从本地的网络406建立一专用的网络连接至云端服务提供者云端网络420。连接通常是具有例如一任何对任意(例如,因特网协定虚拟私人网络)网络、一点对点的以太网网络、或是通过在一主机托管设施的一连接提供者的一虚拟的交叉连接的形式。这些连接并不通过公共的因特网。相较于通过因特网的典型连接,此提供较大的可靠度、较快的速度、一致的延迟、以及较高的安全性。使用者云端网络418持续被使用者完全控制及管理,借此对于传送至使用者的数据提供严格的控制。
一旦在云端服务提供者云端网络420以及使用者云端网络418之间的连接已经被建立后,云端管理的机器人424是在由使用者经由计算装置412来和云端协调者430互动的请求之后被产生。云端管理的机器人424是被产生在使用者云端网络418上。于是,云端管理的机器人424为本地的计算环境404中的使用者在使用者云端网络418上执行所述任务。演算法可被施加以最大化在云端管理的机器人池422中的机器人的利用,并且为使用者降低操作成本。
本地的机器人410由使用者维持在本地的网络406中,以用于针对本地的网络环境404中的使用者来执行RPA任务。本地的网络406被使用者控制、或者是管理。云端协调者430通过标准的HTTPS连接来维持连接至本地的机器人410。
在操作上,一RPA系统(例如,图1的RPA系统100、图2的RPA系统200、图3的RPA系统300、及/或图4的云端RPA系统400)被配置以完成工作。此种工作由在一虚拟机器上(或是任何其它计算环境)执行或运行的一或多个RPA机器人来完成,以执行一或多个RPA工作流程。一虚拟机器是一电脑系统的虚拟化或仿真,其是在另一电脑系统上被执行。有时,会期待借由优先化时间、成本、或是在时间及成本之间的平衡来完成RPA工作。在此所述的实施例是提供RPA自动缩放策略以用于优先化时间、成本、或是在时间之间的平衡。有利的是,计算环境是根据一所选的RPA自动缩放策略而被分配用于执行一或多个RPA机器人以完成所述工作,借此在最小的人工使用者的配置下,根据优先的时间、成本、或是平衡来完成所述工作。
图5展示根据一或多个实施例的一种分配用于执行RPA机器人的计算环境的方法500。方法500的步骤可以由一或多个适当的计算装置(例如,图6的计算系统600)来加以执行。在一实施例中,方法500的步骤是借由一RPA系统的一协调者或指挥者来加以执行,例如是图1的RPA系统100的指挥者104、图2的RPA系统200的指挥者212、图3的RPA系统300的指挥者304、或是图4的云端RPA系统400的云端协调者430。
在步骤502,接收用于完成RPA工作负荷的请求。所述RPA工作负荷可以例如是一组RPA工作。
在步骤504,根据多个RPA自动缩放策略中的一所选的RPA自动缩放策略来计算用于完成所述RPA工作负荷的分配的计算环境的数量。在一实施例中,所述计算环境是虚拟机器。然而,所述计算环境可以是任何其它用于执行RPA机器人的适当的计算环境,例如是虚拟化的桌面环境、容器、等等。所述RPA自动缩放策略可以用多种方式来定义或实施,例如作为RPA自动缩放设定档。
所述多个RPA自动缩放策略会平衡用于完成所述RPA工作负荷的时间及成本。在一实施例中,所述多个RPA自动缩放策略包括一速度优于成本策略、一平衡策略、以及一成本优于速度策略。所述速度优于成本策略具有最快用于完成所述RPA工作负荷的时间,但是有最高的基础结构成本。所述平衡策略具有用于完成所述RPA工作负荷的中等的时间以及中等的基础结构成本。所述成本优于速度策略具有用于完成所述RPA工作负荷的最慢的时间,但是有最低的基础结构成本。在一实施例中,所述成本优于速度策略是预设的策略。
分配的计算环境的数量是根据所选的自动缩放策略,根据各种的控制变数或参数来加以决定的。在一实施例中,分配计算环境的数量是根据所选的自动缩放策略,根据1)表示要完成所述RPA工作负荷的计算环境的数量的MAX_MACHINES_FOR_WORKLOAD、2)表示在所述池中的计算环境的最大数量的MAX_MACHINES、以及3)表示一授权所容许的主动RPA机器人的数量的LICENSED_ROBOTS来加以决定的。
针对于所述速度优于成本策略,分配的计算环境的数量ALLOCATION_MACHINES_COUNT被计算为:
ALLOCATION_MACHINES_COUNT=min(MAX_MACHINES_FOR_WORKLOAD,MAX_MACHINES)/X
其中所述控制变数X是任意的正整数(例如,2),MAX_MACHINES被定义为在所述池中的计算环境的最大数量,MIN_MACHINES被定义为1,MACHINE_IDLE被定义为30分钟,并且MACHINE_DELETE被定义为Z分钟。针对于所述平衡策略,分配的计算环境的数量ALLOCATION_MACHINES_COUNT被计算为:
ALLOCATION_MACHINES_COUNT=min(MAX_MACHINES_FOR_WORKLOAD,MAX_MACHINES)/Y
其中所述控制变数Y是大于X(例如,4)的任意的正整数,MAX_MACHINES被定义为在所述池中的计算环境的最大数量,MIN_MACHINES被定义为0,MACHINE_IDLE被定义为10分钟,并且MACHINE_DELETE被定义为Z分钟。针对于所述成本优于速度策略,分配的计算环境的数量ALLOCATION_MACHINES_COUNT被定义为:
ALLOCATION_MACHINES_COUNT=1
其中所述控制变数MAX_MACHINES被定义为在所述池中的计算环境的最大数量,MIN_MACHINES被定义为0,MACHINE_IDLE被定义为3分钟,以及MACHINE_DELETE被定义为Z分钟。
分配的计算环境的数量是借由根据和所选的RPA自动缩放策略相关的公式来计算ALLOCATION_MACHINES_COUNT而被计算出来,其中计算出来的结果被进位至下一个整数。在以上的计算中,所述控制变数ALLOCATION_MACHINES_COUNT是分配的计算环境的数量,所述控制变数MAX_MACHINES_FOR_WORKLOAD是要完成所述RPA工作负荷的计算环境的数量(考量例如是待办的工作、执行的工作、授权的RPA机器人执行时间、等等的状态资讯),所述控制变数MAX_MACHINES是在一池中可被产生的计算环境的最大数量,所述控制变数MIN_MACHINES是随时应该保持可利用的计算环境的最小数量(即使当没有待办的工作时),所述控制变数MACHINE_IDLE是一计算环境变成闲置之后,在被置于待机之前等待的时间量,并且所述控制变数MACHINE_DELETE是在一计算环境被解除分配之后,在其被删除之前等待的时间量。
应了解的是,其它类型的策略亦可以内含在所述多个RPA自动缩放策略中。在一例子中,所述多个RPA自动缩放策略可包含一或多个客制策略,其中一使用者配置一或多个控制变数以人工地平衡用于完成所述RPA工作负荷的时间及成本。譬如,所述客制策略可以根据和以上的速度优于成本或是平衡策略相关的公式,根据一使用者定义的X或Y值来分配计算环境。在另一例子中,所述多个RPA自动缩放策略可包含一动态策略,其中一或多个控制变数是自动地被调整以用于平衡用于完成所述RPA工作负荷的时间及成本,其例如是根据一工作负荷类型(例如,用于RPA工作组的平均执行时间)、内部的限制(例如,用于部署一计算环境的时间、用于一工作的完成的平均时间、可利用的RPA授权的数量)、等等。譬如,一排程者可以监视待办的工作、计算资源、等等,并且自动地调整所述动态策略的一或多个控制变数。在某些实施例中,在所述动态策略中的一或多个控制变数是利用一机器学习为基础的模型来自动地加以调整。
在一实施例中,所选的RPA自动缩放策略的选择是从一使用者接收到的,例如是和一RPA系统的一协调者的一使用者介面互动。在另一实施例中,所选的RPA自动缩放策略是自动加以选择的。在一例子中,所选的RPA自动缩放策略可以是根据定义用于施加一所选的RPA自动缩放策略的开始及结束的时间的一排程来自动地加以选择。例如,对于执行报税及文件处理的会计公司而言,所述RPA工作负荷是在每一个月的月底以及在每一季的季底增加。所述速度优于成本策略可被排程于每一个月的月底以及每一季的季底,并且所述成本优于速度策略可被排程于其余的时间期间。作为另一例子的是,对于处理学生的录取及毕业的大学而言,所述RPA工作负荷是增加于学年的开始时录取的学生的入学、以及学年的结束时毕业的学生的离开学校。所述速度优于成本策略可被排程于学年的开始及结束时,并且所述成本优于速度策略可被排程于其余的时间期间。在另一例子中,所选的RPA自动缩放策略可以根据所述RPA工作负荷的来源而自动地加以选择。此容许使用者优先化从特定来源接收到的工作负荷,使得它们借由选择所述速度优于成本策略而较快被处理,而从其它来源接收到的工作负荷可以利用所述成本优于速度策略来有成本效率地加以处理。举例而言,对于IT(信息技术)服务台而言,所述速度优于成本策略可以被选择用于根据和所述来源相关的SLA(服务级别协定)、或是根据和所述来源相关的一商业的重要旗标的请求,而一平衡策略可以被选择用于所有其它的请求。
在步骤506,分配计算出的所述计算环境的数量以用于分配一或多个RPA机器人来完成所述RPA工作负荷。
图6是描绘根据本发明的一实施例的一计算系统600的方块图,其被配置以执行在此所述的包含图5的方法500的方法、工作流程及程序。在某些实施例中,计算系统600可以是在此被描绘及/或叙述的计算系统中的一或多个。计算系统600包含一总线602或是其它用于通讯资讯的通讯机构、以及耦接至总线602的用于处理资讯的处理器604。处理器604可以是任意类型的一般或特定用途的处理器,其包含中央处理器(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理器(GPU)、多个实体、及/或上述的任意组合。处理器604亦可具有多个处理核心,并且至少某些所述核心可被配置以执行特定的功能。多个平行处理可被用在某些实施例中。
计算系统600进一步包含一用于储存资讯及指令的存储器606,以借由处理器604来加以执行。存储器606可以是由随机存取存储器(RAM)、只读存储器(ROM)、闪存、高速缓冲存储器(cache)、例如是磁盘或光盘的静态储存体、或是任何其它类型的非暂态的电脑可读取介质或其组合的任意组合所构成的。非暂态的电脑可读取介质可以是任何可被处理器604存取的可利用的介质,并且可包含挥发性介质、非挥发性介质、或是两者。所述介质亦可以是可拆卸的、非可拆卸的、或是两者。
此外,计算系统600包含一通讯装置608(例如是收发器),以经由根据任何目前现有或未来实施的通讯标准及/或协定的一无线及/或有线的连线来提供接达至一通讯网络。
处理器604进一步经由总线602来耦接至一显示器610,其适合用于显示资讯给使用者。显示器610亦可被配置为一触控显示器及/或任何适当的触觉I/O装置。
一键盘612以及一光标控制装置614(例如电脑鼠标、触摸板、等等)进一步耦接至总线602,以使得使用者能够和计算系统介接。然而,在某些实施例中,实体键盘及鼠标可以不存在,并且使用者可以仅通过显示器610及/或触摸板(未显示)来和所述装置互动。任意类型及组合的输入装置都可被使用,其只是设计选择的问题。在某些实施例中,不存在实体输入装置及/或显示器。譬如,使用者可以经由另一与其通讯的计算系统来和计算系统600远程互动、或是计算系统600可以自主地运作。
存储器606储存软件模组,其在借由处理器604执行时提供功能。所述模组包含一用于计算系统600的操作系统616、以及一或多个额外的功能模组618,其被配置以执行在此所述的方法的全部或部分或是其衍生部分。
本领域技术人员将会体认到一“系统”可被体现为一服务器、一内嵌式计算系统、一个人电脑、一控制台、一个人数字助理(PDA)、一移动电话、一平板电脑计算装置、一量子计算系统、或是任何其它适当的计算装置、或是装置的组合,而不偏离本发明的范畴。提供上述的动作为借由一“系统”来执行并不欲以任何方式限制本发明的范畴,而是欲提供本发明的许多实施例的一个例子而已。确实,在此揭露的方法、系统及设备可以用和计算技术一致的局部及分散式的形成,包含云端计算系统来加以实施。
应注意到的是,在此说明书中所述的某些系统特点是已经被呈现为模组,以便于更特别强调其实施的独立性。例如,一模组可被实施为一硬件电路,其包括客制的超大规模集成(VLSI)电路或门阵列、例如是逻辑芯片、晶体管或其它离散的构件的现成的半导体。一模组亦可被实施在可程序化的硬件装置中,例如是现场可程序化的门阵列、可程序化的阵列逻辑、可程序化的逻辑装置、图形处理器、或类似者。一模组亦可以是至少部分用软件实施的,以借由各种类型的处理器来执行。一经鉴定的可执行的码单元譬如可以包含一或多个实体或逻辑区块的电脑指令,其譬如可以被组织为一物件、程序、或函数。然而,一经鉴定的模组的执行档并不需要实际位在一起,而是可包含被储存在不同位置中的不同的指令,当逻辑上结合在一起时,其包括所述模组并且达成所述模组的所陈述的目的。再者,模组可被储存的在一电脑可读取介质上,其譬如可以是一硬盘机、闪存设备、RAM、磁带、及/或任何其它被用来储存数据的此种非暂态的电脑可读取介质,而不偏离本发明的范畴。确实,一模组的可执行的码可以是单一指令或是许多指令,并且甚至可被分散在数个不同的码区段上、在不同的程序间、以及横跨数个存储器装置。类似地,运算数据在此可被识别及描绘在模组之内,并且可以用任何适当的形式来体现,并且被组织在任何适当类型的数据结构之内。所述运算数据可被收集为单一数据集、或是可被分散在不同的位置上,其包含在不同的储存装置上,并且可以只是(至少部分地)以一系统或网络上的电子信号来存在。
前述内容仅仅是描绘本揭露内容的原理而已。因此将会体认到本领域技术人员将能够设计各种的配置,尽管其在此并未明确地叙述或展示,但是其体现本揭露内容的原理,因而内含在本揭露内容的精神及范畴之内。再者,在此阐述的所有例子及条件式语言主要是只打算为了教学的目的而已,以协助读者理解本揭露内容的原理以及由本发明人贡献来增进所述技术的概念,并且在无限制性下将被解释为此种明确阐述的例子及条件。再者,在此阐述本揭露内容的原理、特点及实施例以及特定的例子的所有陈述都是欲涵盖其结构及功能等同物。此外,所欲的是此种等同物包含目前已知的等同物以及在未来开发出的等同物。

Claims (20)

1.一种电脑实施方法,其包括:
接收用于完成机器人程序自动化(RPA)工作负荷的请求;
根据多个RPA自动缩放策略中的一所选的RPA自动缩放策略来计算用于完成所述RPA工作负荷的分配的计算环境的数量;以及
分配计算出的所述计算环境的数量以用于分配一或多个RPA机器人来完成所述RPA工作负荷。
2.如权利要求1所述的电脑实施方法,其中所述计算环境包括虚拟机器。
3.如权利要求1所述的电脑实施方法,其中所述多个RPA自动缩放策略包括速度优于成本策略、平衡策略、以及成本优于速度策略。
4.如权利要求1所述的电脑实施方法,其中分配的所述计算环境的数量根据要完成所述RPA工作负荷的计算环境的数量、在一池中能被产生的计算环境的最大数量、以及一授权所容许的RPA机器人的数量来加以计算。
5.如权利要求1所述的电脑实施方法,其中所述多个RPA自动缩放策略包括客制策略,由使用者来配置在所述客制策略中的一或多个控制变数。
6.如权利要求1所述的电脑实施方法,其中所述多个RPA自动缩放策略包括动态策略,根据工作负荷类型来自动地调整在所述动态策略中的一或多个控制变数。
7.如权利要求1所述的电脑实施方法,其进一步包括:
从使用者接收所选的RPA自动缩放策略的选择。
8.如权利要求1所述的电脑实施方法,其进一步包括:
根据排程来自动地选择所选的RPA自动缩放策略。
9.如权利要求1所述的电脑实施方法,其进一步包括:
根据所述RPA工作负荷的来源而自动地选择所选的RPA自动缩放策略。
10.一种设备,其包括:
储存电脑指令的存储器;以及
至少一处理器,其被配置以执行所述电脑指令,所述电脑指令被配置以使得所述至少一处理器执行以下的操作:
接收用于完成机器人程序自动化(RPA)工作负荷的请求;
根据多个RPA自动缩放策略中的一所选的RPA自动缩放策略来计算用于完成所述RPA工作负荷的分配的计算环境的数量;以及
分配计算出的所述计算环境的数量以用于分配一或多个RPA机器人来完成所述RPA工作负荷。
11.如权利要求10所述的设备,其中所述计算环境包括虚拟机器。
12.如权利要求10所述的设备,其中所述多个RPA自动缩放策略包括速度优于成本策略、平衡策略、以及成本优于速度策略。
13.如权利要求10所述的设备,其中分配的所述计算环境的数量根据要完成所述RPA工作负荷的计算环境的数量、在一池中能被产生的计算环境的最大数量、以及一授权所容许的RPA机器人的数量来加以计算。
14.如权利要求10所述的设备,其中所述多个RPA自动缩放策略包括客制策略,由使用者来配置在所述客制策略中的一或多个控制变数。
15.一种储存电脑程序指令的非暂态的电脑可读取介质,所述电脑程序指令当在至少一处理器上执行时,使得所述至少一处理器执行操作,其包括:
接收用于完成机器人程序自动化(RPA)工作负荷的请求;
根据多个RPA自动缩放策略中的一所选的RPA自动缩放策略来计算用于完成所述RPA工作负荷的分配的计算环境的数量;以及
分配计算出的所述计算环境的数量以用于分配一或多个RPA机器人来完成所述RPA工作负荷。
16.如权利要求15所述的非暂态的电脑可读取介质,其中所述计算环境包括虚拟机器。
17.如权利要求15所述的非暂态的电脑可读取介质,其中所述多个RPA自动缩放策略包括动态策略,根据工作负荷类型来自动地调整在所述动态策略中的一或多个控制变数。
18.如权利要求15所述的非暂态的电脑可读取介质,所述操作进一步包括:
从使用者接收所选的RPA自动缩放策略的选择。
19.如权利要求15所述的非暂态的电脑可读取介质,所述操作进一步包括:
根据排程来自动地选择所选的RPA自动缩放策略。
20.如权利要求15所述的非暂态的电脑可读取介质,所述操作进一步包括:
根据所述RPA工作负荷的来源而自动地选择所选的RPA自动缩放策略。
CN202180004052.4A 2021-04-13 2021-10-29 用于机器人程序自动化的自动缩放策略 Pending CN115474439A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/228,741 US11971705B2 (en) 2021-04-13 Autoscaling strategies for robotic process automation
US17/228,741 2021-04-13
PCT/US2021/072099 WO2022220891A1 (en) 2021-04-13 2021-10-29 Autoscaling strategies for robotic process automation

Publications (1)

Publication Number Publication Date
CN115474439A true CN115474439A (zh) 2022-12-13

Family

ID=83509197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180004052.4A Pending CN115474439A (zh) 2021-04-13 2021-10-29 用于机器人程序自动化的自动缩放策略

Country Status (6)

Country Link
EP (1) EP4323869A1 (zh)
JP (1) JP2024517363A (zh)
KR (1) KR20230168611A (zh)
CN (1) CN115474439A (zh)
TW (1) TW202240480A (zh)
WO (1) WO2022220891A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081622B2 (en) * 2013-05-13 2015-07-14 Vmware, Inc. Automated scaling of applications in virtual data centers
JP2018180591A (ja) * 2017-04-03 2018-11-15 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
US11126927B2 (en) * 2017-11-24 2021-09-21 Amazon Technologies, Inc. Auto-scaling hosted machine learning models for production inference

Also Published As

Publication number Publication date
JP2024517363A (ja) 2024-04-22
TW202240480A (zh) 2022-10-16
US20220326693A1 (en) 2022-10-13
WO2022220891A1 (en) 2022-10-20
KR20230168611A (ko) 2023-12-15
EP4323869A1 (en) 2024-02-21

Similar Documents

Publication Publication Date Title
KR102339757B1 (ko) 로봇 프로세스 자동화를 위한 로봇 스케줄링
US11803418B2 (en) On-demand cloud robots for robotic process automation
KR20220088333A (ko) 로봇 프로세스 자동화(rpa) 로봇들의 동적 클라우드 배치
CN107038066B (zh) 一种基于Web的作业计算系统
CN114846490A (zh) 量化机器人流程自动化相关资源的使用
JP2023544463A (ja) Rpaデータを表わすための企業プロセスグラフ
CN115885255A (zh) 用于在客户场所上实现rpa服务的通用平台
CN115474439A (zh) 用于机器人程序自动化的自动缩放策略
US11971705B2 (en) Autoscaling strategies for robotic process automation
US20220191167A1 (en) Organizational modelling for routing rpa related services of an rpa cloud suite
US20220100539A1 (en) On-demand cloud robots for robotic process automation
US20220091908A1 (en) Filter instantiation for process graphs of rpa workflows
US20230101948A1 (en) Generation of rpa platform design components for configuring rpa platforms
US20230102809A1 (en) Preconfigured robots for robotic process automation
JP2023538978A (ja) ロボティックプロセスオートメーションデータコネクタ

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination