CN117035282A - 分配优化的处理自动化进程的系统 - Google Patents

分配优化的处理自动化进程的系统 Download PDF

Info

Publication number
CN117035282A
CN117035282A CN202310893400.9A CN202310893400A CN117035282A CN 117035282 A CN117035282 A CN 117035282A CN 202310893400 A CN202310893400 A CN 202310893400A CN 117035282 A CN117035282 A CN 117035282A
Authority
CN
China
Prior art keywords
work
application server
virtual machines
queue
virtual machine
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
CN202310893400.9A
Other languages
English (en)
Inventor
大卫·莫斯
斯图尔特·伍德
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.)
Blue Prism Ltd
Original Assignee
Blue Prism Ltd
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
Application filed by Blue Prism Ltd filed Critical Blue Prism Ltd
Publication of CN117035282A publication Critical patent/CN117035282A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Computer Security & Cryptography (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明涉及一种用于自动化进程的系统,尤其涉及一种工作项在这样系统中的可用处理资源之间优化分配的系统。该系统包括在应用程序服务器上执行的活动队列控制器,所述活动队列控制器在查询数据存储库的工作项和用于执行该自动化过程的指令时管理虚拟机在可用资源上创建和删除。

Description

分配优化的处理自动化进程的系统
本申请是申请号为201810150764.7、申请日为2018年02月13日、名称为“分配优化的处理自动化进程的系统”的中国发明申请的分案申请,所述发明申请的内容通过引用并入本案。
技术领域
本发明涉及一种自动化进程的系统和方法。更具体地,其涉及管理跨越一个或多个虚拟工作者的自动化进程的执行的系统和方法。
背景技术
情况往往是预期的或意想不到的,变化需要改变企业的运作方式。举例来说,新产品的发行需要整合现有的系统,新规则需要记录进程步骤,或公司的收购需要合并两条生产线及加工流程。传统企业系统的规划和推广可以解决这些问题;然而,这些规划周期是为大型项目而设计的,而不是支持日常运营的变化。结果是,变化是在巨大的成本下实现的,而且有时候只能需要多年,因为必须开发替代原有系统功能和提供所需新功能的新系统,并且需要对新系统进行大量的测试和质量保证,才能使其可靠地实施。这些系统还必须由具有计算机编程和应用程序开发的专业技能的人员来设计和配置。这进一步增加了开发过程的时间,因为在组织内具有所需技能的人(若有的话)通常很少,并且一旦实施这样的系统,原系统用户熟悉新系统的时间可能会很长,而且这个过程通常是低效且不准确的。
问题起因于业务后台部门的业务进程通常涉及多个独立且彼此不兼容的应用软件。其中一些应用软件具有通过提供预定义接口来促进信息进出应用程序的应用程序编程接口(APIs),另一个软件应用程序可以通过该预定义接口交互;然而,这并非总是如此。举例来说,在这些业务后台部门的业务进程中使用的一些应用软件是老的应用软件,这些老的应用软件并未设计有允许其它应用软件便于访问所必须的上述特征。在其他为对特定目的服务而开发的定制内部软件方案情况中,提供可以使其他应用程序进行交互所通过的接口的需求是不可预见的。传统上,通过使用操作人员来缩小这些应用软件之间的空白。因为需要雇佣大量操作人员来提供这种必要的处理能力,所以操作人员的使用是一种昂贵的解决方案。因为这些不兼容的应用软件或系统之间的空白由人工来实现缩小,由于操作人员仅在一天中的部分时间内工作,受限于用键盘、鼠标或其它接口输入信息或命令的速度,并受限于从屏幕或其它输出设备上读取信息的速度,由此该过程通常是缓慢的。此外,人在向系统输入数据或指令以及从其它系统读取信息时容易出现错误,而计算机则不会。还存在这样一种可能性,当以这样的方式使用操作人员时,会出现恶意干扰进程、系统和数据的现象。
举例来说,电信供应商可发布一款新的需要使用互不兼容的现有应用软件和新系统的手持移动电话。这一不足通常由操作人员填平,但一般而言,无法预测这种新近发布的产品的需求。因此,为了使用该软件系统,会存在培训过多或过少的人员的问题。由此,需使用能够快速扩展以应对该需求、且预先不需要该需求的详细知识的解决方案来填平不兼容软件系统之间的空白。
在此类系统中,通常会处理大量的信息,这些信息可能是敏感的个人信息。需要以始终如一的方式来处理这些信息,这些方式减少可能与人类简单地将信息拷贝到另一个系统有关的错误的数量,也需要以仅在绝对必要下才能进入的私密和安全的方式来处理这些信息。
需要操作人员来填补缺乏实现新进程所需功能的原有软件应用程序的这些问题,不仅存在于后台业务部门。举例来说,医院或医生诊室的前台一般为繁忙的环境,有许多病人前来预约。前台接待员花费大量时间处理例行事务,例如取得前来预约的病人的详细信息,并将病人的详细信息输入到用于登记病人预约的应用软件。这个过程通常是很慢的,还可能由于误读了病人的细节而不准确,这个过程还占用了接待员履行其他职责的时间。
理想的情况是在医院或医生诊室的前台设置一种允许病人将自己的详细信息输入至系统的自助登记的自助服务终端,从而能将错误降至最低,并将前台接待人员解放出来处理其它事务,由此还能缩短等待的时间。然而,向病人提供与向前台接待员提供的界面相同的界面未必妥当。因为,由前台接待员使用的应用软件可能具有不必引起病人困惑的更高级特征,或这种应用软件能够具有对不适合向使用自助登记自助服务终端形式病人提供的信息的管理控制和访问权限。除非现有的前台接待员应用软件可以为在自助服务终端上运行的新应用程序提供访问某些功能和特性的能力,否则在开发为运行上述系统而提供必要功能的新的应用软件及软件系统时,还会出现因业务后台部门的业务进程中的变化所引起的同样的长规划周期、花费、低效及不精确等问题。这往往导致这样的项目从未开始进行。读者将会看到许多其他的例子。
现有解决方案涉及使用虚拟机作为虚拟工作者,配置成通过与遗留软件交互来自动化这些进程。公开号为WO 2015/001360 A1的PCT申请描述了这样的系统;然而,这些系统需要用户决定工作项如何在虚拟工作者之间分配,而这通常是确定这种事情的低效方式。因此,需要一种合适的系统和方法以优化工作项在虚拟工作者之间的分配。
发明内容
本发明涉及一种运行自动化进程的系统。所述系统包括配置成存储用于执行自动化进程的指令、一个或多个工作队列以及每个工作队列和自动化进程之一之间的关联的数据存储器;配置成执行一个或多个自动化进程的一个或多个虚拟机,其中所述自动化进程由存储在数据库中的指令来定义;以及配置成将一个或多个工作队列部署给一个或多个虚拟机的应用服务器。将每个虚拟机配置成,当被应用服务器部署工作队列时,从数据库中检索用于执行与被部署的工作队列关联的自动化进程的指令,并根据从数据库中检索到的指令来执行自动化进程。
每个工作队列通常包括一个或多个工作项,每个虚拟机配置成根据存储于数据库中的指令通过处理被部署的工作队列的工作项来执行一个或多个自动化进程。每个工作项可以包括一个或多个信息数据对象,每个工作队列通常是逻辑上的一组工作项。
存储在数据库中的指令能够定义用于在每个工作项上执行自动化进程的工作流。
优选地,数据存储器进一步配置成存储定义一个或多个虚拟机与一个或多个工作队列之间的链接的链接数据。
每个虚拟机可以进一步配置成与一个或多个其他虚拟机通信。所述虚拟机可以配置成直接地与一个或多个其他虚拟机通信。可替代地,所述虚拟机可以配置成通过将报文传递至应用服务器或数据存储器之一来进行通信,所述应用服务器或数据存储器可以配置成在报文存储库中存储所收到的报文,每个虚拟机可以配置成轮询应用服务器或数据存储器以查找报文存储库中的报文。进一步可替代地,所述虚拟机可以配置成通过将报文传递至应用服务器或数据存储器之一来进行通信,所述应用服务器或数据存储器可以配置成将所收到的报文传输至一个或多个虚拟机。
应用服务器可以配置成将单个工作队列部署至多个虚拟机上。数据存储器因此配置成当虚拟机访问给定数据对象时,通过锁定该给定数据对象来防止多个虚拟机同时访问数据存储器中的该给定数据对象。优选地,给定数据对象上的锁在整个失效转移事件中持续,并且数据存储器配置成通过确认多个虚拟机中没有一个能够处理所述数据对象来解除该锁。
应用服务器可以配置成在工作项被处理之前,基于本地化的环境或性能问题、网络连接性和目标虚拟机的响应能力来计算处理工作项所需的时长。应用服务器可以配置成基于已计算的处理工作项的时长和被部署了工作队列的虚拟机的数量来提供处理所述工作队列的估计时间。
应用服务器可以配置成监测由虚拟机处理的工作队列的进展。应用服务器可以采用报文传送协议来与一个或多个虚拟机通信,每个虚拟机可以在进程执行过程中用状态信息响应所述应用服务器。
应用服务器可以配置成在将工作队列分配到额外虚拟机方面和/或在提高性能和吞吐量方面提供建议。
优选地,应用服务器配置成基于每个虚拟机可用的资源来部署工作队列。
应用服务器可以进一步配置成分析自动化进程的执行,以基于每个虚拟机的速度、成效和/或响应能力性来识别最优分配模型,并且基于所识别的最优分配模型将工作队列部署给虚拟机。应用服务器还可以指示至少一个虚拟机停止处理当前工作队列并基于最优分配模型来开始处理新的工作队列。
应用服务器可以配置成采用机器学习算法来分析自动化进程的执行,以改善工作队列向虚拟机的分配。
应用服务器可以配置成基于工作项和/或工作队列的属性来将工作队列部署至虚拟机。一个或多个工作项可以具有定义了最大时长的最大队列时间属性,所述最大时长是工作项在被处理前在工作队列中的时间。一个或多个工作队列可以具有最大队列长度属性,该最大队列长度属性定义了工作项在工作队列中的最大数量。一个或多个工作队列的至少一个可以具有队列完成时间属性,其定义了处理工作队列中所用工作项的最大时间。
应用服务器可以配置成基于工作项和/或工作队列的属性指示一个或多个虚拟机的至少一个停止处理当前工作队列并开始处理新的工作队列。
系统可以进一步包括配置成输出有关于系统当前状态和/或配置的信息的输出装置。
附图说明
图1为根据本发明系统的实现的示意图;
图2示出了根据本发明的工作队列和工作项的例子;
图3为本发明的系统的逻辑图。
具体实施方式
本文中描述的系统和方法在自动化进程系统的环境下运行,所述自动化进程系统使用可以与软件应用程序进行交互并相互配合的虚拟机作为数字劳动力,以便高效地执行所述进程。在WO 2015/001360A1中对这样的系统有更详细的描述,其公开内容在此引入作为参考。
图1根据本发明描绘了典型系统100。系统100包括数据存储器101,应用服务器102和一个或多个虚拟机103。数据存储器101存储与自动化进程有关的数据,诸如待处理的工作项和定义自动化进程的指令。应用服务器102协调虚拟机103和数据存储器101之间的通信以及管理虚拟机103的创建、消毁和运行。虚拟机103配置成根据从应用服务器102收到的指令来执行自动化进程。
虚拟机103可以被组织成一个或多个资源组104a-c。资源组104a-c可以是跨越一个或多个诸如服务器的硬件装置实现的虚拟机的逻辑分组,所述资源组代表了可用于给定进程或工作队列以运行虚拟机从而运行自动化进程的可用计算能力。一个特定的自动化进程可能有权访问单个资源组,也可能有多个可用的资源组。数据存储器101和应用服务器102通常设置在诸如专属服务器的专属硬件资源上;然而,将会理解,有可能在相同的物理硬件上运行数据存储器101、应用服务器102和虚拟机103。
虚拟机103是标准用户端操作系统的持久虚拟化实例,优选Microsoft但是也可以使用任何合适的操作系统,例如MacOS或Linux发行版。优选地,虚拟机103存在于在没有适当的安全许可或认证下就不能物理或远程访问的一个或多个安全服务器上。存在虚拟机的服务器或资源优选地运行诸如VMware />的1型管理程序(Type 1hypervisors);然而,可以理解,可以使用允许创建和运行虚拟机的任何硬件和软件的合适布置。就虚拟机不具有连接的监视器或类似的显示图形输出的输出装置而言,虚拟机103通常是"无头的"。通过运行多个虚拟机103,可以同时执行多个自动化进程以提高生产力或同时服务于多个外部用户。
由虚拟机103执行的自动化进程通常涉及通过用户界面使用诸如屏幕抓取的方法或通过使用任何可用的API或可访问性界面来与遗留软件应用程序进行的交互。定义了自动化进程的工作流是由用户通常在单独的电脑端上设计的,并且保存和存储于应用服务器102或数据存储器101上。
在图1描绘的实施例中,数据存储器101与应用服务器102进行双向通信,并且应用服务器102与虚拟机103进行双向通信。这样,应用服务器充当管理虚拟机103到数据存储器101的连接的中间设备。应用服务器102持有数据存储器的安全证书,例如,Windows操作系统的身份认证或SQL(结构化查询语言)身份认证,并起到数据存储器101的安全连接代理的作用,从而使所有的虚拟机103均能够与应用服务器102通信,并使应用服务器102代表虚拟机103与数据存储器101安全通信。这一配置使应用服务器102成为系统100中唯一需要将数据存储安全证书与正确的认证进行存储以访问和修改存储在数据存储101上的数据的实体。因为数据库服务器安全证书仅存放在系统200中的一个地方,所以同安全证书存放在各虚拟机103上的情况相比,安全性得到了提高,而且还为的多用户多密码系统提供了改善的安全性。当然,将会理解,本文描述的系统和方法可以替换地包括虚拟机103和数据存储器101之间的直接通信,或包括经由不同于应用处理器102的机构的间接通信。此外,系统100可以包括多于一个的应用处理器102。例如,系统100可以包括用于一个或多个资源组104a-c的专属应用处理器。
数据存储器101优选为SQL数据库。数据存储器101拥有一个或多个SQL数据库,所述数据库持有与自动化进程、用户证书、审计信息、流程日志以及自动化进程的工作流配置和调度信息相关的进程和对象的存储库。多个SQL模式可以表现在一个数据存储器101上,允许不同虚拟机103参考存储在数据存储器101的数据库内的不同的信息集来执行不同的自动化进程。
数据存储器101可以配置成通过当虚拟机访问时锁定数据对象来防止多个虚拟机103同时访问数据存储器中的给定数据对象。当虚拟机103访问数据存储器101中的数据对象时,虚拟机103也发出锁定的请求。或者,数据存储器101可以在数据对象被访问时自动地锁定该数据对象。在数据存储器101中出现的记录锁在整个诸如电源故障的失效转移事件中持续。数据存储器101通过确认多个虚拟机103中没有一个在不重新请求锁定的情况下可以处理数据库中的数据来解除记录锁。虚拟机103可以向数据存储器101发出不再需要对数据对象进行锁定的通知,而数据存储器101随后从数据对象移除该锁,允许其再次被其他虚拟机103访问。
系统100通过利用工作队列优化了跨越多个虚拟机103的自动化进程的执行。在现有系统中,虚拟机103为了处理工作项而轮询的工作队列。在本发明的系统中,工作队列由应用服务器102部署至虚拟机103,所述应用服务器使用目标参数和队列配置信息来确定如何实现该目标。这将参照图2更详细地描述。
图2示出了典型的工作队列201,其是提供给虚拟机103处理的一个或多个工作项202a-c的有序列表。每个工作项202a-c包括一个或多个诸如工作项的唯一识别符、场景(CASE)ID的信息数据对象和其他上下文信息。每个工作项202a-c的信息数据对象的特定种类取决于它们相关的上下文和自动化进程。例如,在激活移动电话网络的SIM卡的过程中,工作项202a-c可以包括客户名称、电话号码、ICCID、IMSI和认证密钥。
工作队列通常存储于数据存储器101中,但能够理解的是,工作队列201可以存储于与应用服务器102通信的任何合适的位置。每个工作项202a-c拥有的信息数据对象可以以纯文本的形式存储于数据存储器101上,或者,工作队列201可以配置成当信息数据对象被保存至队列中时被自动加密,并且当其从队列检出时被自动解密。
可以手动地或通过馈线进程205使工作队列201填充有工作项202a-c。馈线进程205可以从任何诸如电子邮件206或电子表格207的合适来源获得数据,以适当的格式输出工作项202a,并将工作项202a添加到工作队列201。工作队列201可以基于先进先出(FIFO)来运行,使得工作项202c分配至虚拟机208来进行处理。
工作项202a-c除了具有用作自动化进程的一部分的信息数据对象之外,可以具有用于管理自动化进程的元数据(将参照图3进行更详细的说明)。例如,工作项202a-c可以具有定义了最大时长的最大队列时间属性,所述最大时长是工作项202a-c在被处理前在工作队列201中的时间。工作队列201本身可以具有最大队列长度属性,该最大队列长度属性定义了工作项202a-c在工作队列201的最大数量。
参照图3更详细地描述了本发明的系统处理工作队列的方式。系统300包括通常位于数据存储器101中的工作队列301并且包括工作项302。系统300还包括位于应用服务器102并由应用服务器102执行的活动队列控制器303。活动队列控制器303与工作队列301关联。活动队列控制器303通过创建和消毁资源308上的虚拟机307以及将资源308和虚拟机307部署至其关联的工作队列301,来管理诸如资源组306中的资源308。活动队列管理器303也监视资源308和虚拟机307并查询数据库存储器101以获得与工作队列301有关的统计数据。
工作队列301可以与额外参数304关联,该额外参数决定了活动队列控制器303如何管理资源组306的资源。在图3描绘的例子中,“目标资源”参数304定义了活动队列控制器应当部署工作队列301的资源308的目标数量。该参数304可以由系统的用户更改以添加或删除为队列工作的资源,即创建或删除在资源308上的虚拟机307,以便例如使进程速度变快或以使时间不敏感的进程更有效地使用资源。
活动队列管理器303可以对系统用户提供反馈305。例如“活动资源”表明当下正在处理工作队列301的虚拟机307的数量。“可用资源”表明可以用于运行其他虚拟机的资源308的数量。“剩余时间”给出了用以执行工作队列301中所有项302的剩余时间的总量估计。可以基于本地化的环境或性能问题、网络连接性和目标虚拟机的响应能力来计算处理单个工作项所需的估计时间。可以通过将工作队列301中的工作项302的平均执行时间乘以队列302中剩余的项302的数量来计算总估计剩余时间。“完成时间”表明工作队列301将被完成的预计时间,即当下时间加上“剩余时间”。可以额外或替代地提供工作队列301状态和进程的其他指示,例如队列301是否正在运行或暂停、经过的时间、工作队列301中完成的工作项302的数量、未决的工作项302的数量和/或场景(CASE)的总数。
活动队列管理器303还可以负责创建和消灭在资源组306中的虚拟机。为了执行给定的自动化进程,活动队列控制器306在资源组306中寻找可用的资源308并在资源308上创建虚拟机。
当活动队列控制器303决定需要创建新的虚拟机时,例如达到新的“目标资源”,所述活动队列控制器在部署给它的队列301的资源组306中的可用资源308上创建并开启新的虚拟机。活动队列控制器303首先在最不繁忙的资源308上创建虚拟机,例如组306如果有四个可用的资源308而其中两个已经运行有虚拟机,则活动队列控制器303会在没有任何虚拟机运行的资源之一上创建虚拟机。如果任何虚拟机因为一些原因而没有成功创建或开启,会在另外的资源上重新尝试。
如果活动队列控制器303需要销毁当前正在处理工作队列301的虚拟机,活动队列控制器303可以发送停止请求至虚拟机307,使虚拟机307一完成当下工作项的处理就停止处理工作队列中的项。
虚拟机307经由应用服务器102从存储在数据存储器101上的工作队列101中检索工作项302。当虚拟机307完成处理每个工作项302时,虚拟机307经由应用服务器102从存储在数据存储器101上的工作队列301检索新的工作项302,直到工作队列101完成或直到活动队列控制器303指示虚拟机307停止处理工作队列301。一旦告知虚拟机307停止处理一个队列301,可以指示所述虚拟机开始处理另一工作队列,而虚拟机307本身通过经由应用服务102与数据存储器101的通信将工作项从新的工作队列中拉出。
正在运行的资源308和虚拟机307配置成与其他资源308和其他虚拟机307进行通信。多个虚拟机307可以通过发射和接收彼此之间的直接报文来直接进行通信。或者,虚拟机和资源可以经由应用服务器102彼此发送和接收报文。应用服务器102可以简单地将其接收的报文重定向到适当的目的地虚拟机307,或应用服务器102可以将接收到的报文存储在可以由虚拟机307轮询的存储库中。
在两种情况下虚拟机之间的通信是尤其有用的。第一种是,虚拟机307之一可以用作管理控制台,使得控制终端可以显示资源308的状态和可用性或不可用性。控制终端可以被系统用户访问,以便手动控制工作队列到资源的配置,接收由活动队列控制器303提供的建议(将在以下进行更详细地说明),和/或查看虚拟机307、资源308和工作队列301的当下状态。
第二种是,如上所述,作为由应用服务器102直接管理的资源组的替代方案,虚拟机307之一可以用作资源组306的“头”,并与其他虚拟机307和资源组中的资源308通信以确定哪些虚拟机307和资源308可用于处理,并将指令传递给资源组的其他成员以开始和停止从应用服务器102接收到的处理。
活动队列控制器303配置成异步或同步地,即在工作项302的处理期间与虚拟机307进行通信,以便监测自动化进程的进展。因此,除了提供给用户的统计数据305外,活动队列控制器303可以在将工作队列301部署给附加资源的方面,即在资源308上创建新的虚拟机307的方面,以及在其他性能改进的方面,向用户提供建议。
为了提供这些建议,活动队列控制器303可以使用存储了虚拟机307的资源ID、正在执行的进程的ID、执行的日期和时间以及执行过程的时间的完成的工作项来分析基础设施中的虚拟机307上的完成时间和性能指标。由于底层硬件的能力、机器(包括其他虚拟机)所安装的应用程序、以及这些应用程序和机器本身与各自应用服务器之间的距离,不同的虚拟机307可以在不同的速率下运转。活动队列控制器303使用这些数据来计算给定进程的一天中的时间和要完成的工作队列处理的总体组成,以及哪个资源308或虚拟机307被最佳地放置以在最佳时间中执行工作。
作为对虚拟机307和资源308监测的一部分,活动队列控制器303分析自动化进程的执行以基于速度、成效和/或每个虚拟机307和资源308的响应能力来识别最优分配模型。
每个工作队列维护工作项302已经处理的历史数据,这提供了高级视图方式。每个已被执行的工作项302也在数据存储器101中维护详细描述了为处理工作项而采取的处理步骤的活动的综合日志,这可以根据场景(CASE)的不同而变化。如上所述,活动队列控制器303可以使用机器学习技术来完成工作队列301和由活动队列控制器303收集的资源信息的组成,并组合工作项302的数据和详细日志文件以建立模型,所述模型将工作队列数据和日志阶段相关联以确定哪种工作项需要花费什么特定的时间段来进行处理。例如,与具有三个账户持有者的活期账户相关的工作项可能需要花费具有一个账户持有人的储蓄账户所花时间的两倍时间来处理。随着系统根据当前最优分配模型对工作队列进行处理,基于该系统产生的新数据来迭代地改进最优分配模型,以改善模型提供的建议。除了进程和资源信息以外,只能随着时间使用数据存储器101内积累的数据的深度来收集这些信息,以学习反映在完成时间中的数据和进程的模式。该分析的结果可以随后被用于产生最佳分配模型,该模型描述了工作队列301中的工作项302应当在可用的资源308和虚拟机307之间分配的最有效的方式。
活动队列控制器303基于最佳分配模型,可以随后向用户在关于如何分配工作项302的方面提供一个或多个建议,或可以自动地将工作队列301和工作项302部署至最佳资源308上。当将工作项302分配给各个虚拟机307时,活动队列控制器可以考虑单个工作项302的最大队列时间和工作队列301的最大队列长度属性。
应该认识到,这个描述仅仅是作为例子;可以在不脱离权利要求所限定的本发明的范围下对所描述的实施例进行替换和修改。

Claims (29)

1.一种用于运行自动化进程的系统,包括:
–配置成存储用于执行所述自动化进程的指令、一个或多个工作队列以及每个工作队列和所述自动化进程之一之间的关联的数据存储器;
–配置成执行一个或多个自动化进程的一个或多个虚拟机,其中所述自动化进程由存储在数据库中的指令来定义;以及
–配置成将一个或多个工作队列部署给一个或多个虚拟机的应用服务器,
其中将每个虚拟机配置成,当被所述应用服务器部署了一个工作队列时,–从所述数据库中检索用于执行与被部署的所述工作队列关联的所述自动化进程的指令,并且
–根据从数据库中检索到的指令来执行所述自动化进程,
其中所述应用服务器配置成分析自动化进程的执行,以基于每个虚拟机的速度、成功和/或响应能力性来识别最优分发模型,
其中所述应用服务器配置成采用机器学习算法来分析自动化进程的执行,以改善虚拟机的工作列队的分发。
2.根据权利要求1所述的系统,其中每个工作队列通常包括一个或多个工作项,每个虚拟机配置成根据存储在数据库中的指令通过处理被部署的工作队列的工作项来执行一个或多个自动化进程。
3.根据权利要求2所述的系统,其中每个工作项包括一个或多个信息数据对象。
4.根据前述任一项权利要求所述的系统,其中每个工作队列是逻辑上的一组工作项。
5.根据权利要求1所述的系统,其中存储在数据库中的所述指令定义用于在每个工作项上执行所述自动化进程的工作流。
6.根据权利要求1所述的系统,其中所述数据存储器进一步配置成存储定义一个或多个虚拟机与一个或多个工作队列之间链接的链接数据。
7.根据权利要求1所述的系统,其中每个虚拟机进一步配置成与一个或多个其他虚拟机通信。
8.根据权利要求7所述的系统,其中所述虚拟机配置成直接地与一个或多个其他虚拟机通信。
9.根据权利要求7所述的系统,其中所述虚拟机配置成通过将报文传递至应用服务器或数据存储器之一来进行通信,其中所述应用服务器或数据存储器配置成在报文存储库中存储所收到的报文,并且其中每个虚拟机配置成轮询所述应用服务器或数据存储器以查找报文存储库中的报文。
10.根据权利要求7所述的系统,其中所述虚拟机配置成通过将报文传递至所述应用服务器或数据存储器之一来进行通信,并且其中所述应用服务器或数据存储器配置成将所收到的报文传输至一个或多个所述虚拟机。
11.根据权利要求1所述的系统,其中所述应用服务器配置成将单个工作队列部署至多个虚拟机。
12.根据权利要求10所述的系统,其中所述数据存储器配置成当所述虚拟机访问给定数据对象时,通过锁定该给定数据对象来防止多个虚拟机同时访问所述数据存储器中的该给定数据对象。
13.根据权利要求12所述的系统,其中给定数据对象上的所述锁在整个失效转移事件中持续。
14.根据权利要求13所述的系统,其中所述数据存储器配置成通过确认多个虚拟机中没有一个能够处理所述数据对象来解除所述锁。
15.根据权利要求1所述的系统,其中所述应用服务器配置成在工作项被处理之前计算处理工作项所需的时长。
16.根据权利要求15所述的系统,其中所述应用服务器配置成基于本地化的环境或性能问题、网络连接性和目标虚拟机的响应能力来计算处理工作项所需的时长。
17.根据权利要求15或16所述的系统,其中所述应用服务器配置成基于已计算的处理工作项的时长和被部署了工作队列的虚拟机的数量来提供处理所述工作队列的估计时间。
18.根据权利要求15或16所述的系统,其中所述应用服务器配置成监控由所述虚拟机处理的工作列队的进展。
19.根据权利要求18所述的系统,其中所述应用服务器配置成采用报文协议来与一个或多个虚拟机通信,其中每个虚拟机配置成在进程执行过程中用状态信息响应所述应用服务器。
20.根据权利要求15或16所述的系统,其中所述应用服务器可以配置成在将工作列队分配到额外虚拟机方面和/或在提高性能和吞吐量方面提供建议。
21.根据权利要求1所述的系统,其中所述应用服务器配置成基于每个虚拟机可用的资源来分配工作列队。
22.根据权利要求1所述的系统,其中所述应用服务器配置成基于识别出的最优分发模型来将工作列队分配至虚拟机。
23.根据权利要求1或22所述的系统,其中所述应用服务器配置成指示至少一个虚拟机停止处理当前工作列队并基于最优分发模型来开始处理新的工作列队。
24.根据权利要求2所述的系统,其中所述应用服务器配置成基于工作项和/或工作列队的属性来将工作列队分配至虚拟机。
25.根据权利要求24所述的系统,其中一个或多个工作项的至少一个具有定义了最大时长的最大列队时间属性,所述最大时长是工作项在被处理前在工作列队中的时间。
26.根据权利要求24或25所述的系统,其中一个或多个工作列队的至少一个具有最大列队长度属性,该最大列队长度属性定义了工作项在工作列队中的的最大数量。
27.根据权利要求24或25所述的系统,其中一个或多个工作列队的至少一个具有列队完成时间属性,所述完成时间属性定义了处理工作列队中所用工作项的最大时间。
28.根据权利要求24或25所述的系统,其中所述应用服务器配置成指示一个或多个虚拟机的至少一个停止处理当前工作列队并基于工作项和/或工作列队的属性来开始处理新的工作列队。
29.根据权利要求1所述的系统,其中所述系统进一步包括配置成输出有关于所述系统当前状态和/或配置的信息的输出装置。
CN202310893400.9A 2017-02-15 2018-02-13 分配优化的处理自动化进程的系统 Pending CN117035282A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GBGB1702450.6A GB201702450D0 (en) 2017-02-15 2017-02-15 System for optimising distribution of processing an automated process
GB1702450.6 2017-02-15
US15/462709 2017-03-17
US15/462,709 US10469572B2 (en) 2017-02-15 2017-03-17 System for optimizing distribution of processing an automated process
CN201810150764.7A CN108492003B (zh) 2017-02-15 2018-02-13 分配优化的处理自动化进程的系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201810150764.7A Division CN108492003B (zh) 2017-02-15 2018-02-13 分配优化的处理自动化进程的系统

Publications (1)

Publication Number Publication Date
CN117035282A true CN117035282A (zh) 2023-11-10

Family

ID=58461988

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810150764.7A Active CN108492003B (zh) 2017-02-15 2018-02-13 分配优化的处理自动化进程的系统
CN202310893400.9A Pending CN117035282A (zh) 2017-02-15 2018-02-13 分配优化的处理自动化进程的系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810150764.7A Active CN108492003B (zh) 2017-02-15 2018-02-13 分配优化的处理自动化进程的系统

Country Status (8)

Country Link
US (3) US10469572B2 (zh)
JP (1) JP7161262B2 (zh)
CN (2) CN108492003B (zh)
AU (2) AU2018201052B2 (zh)
BR (1) BR102018002638A2 (zh)
CA (1) CA2995010C (zh)
GB (1) GB201702450D0 (zh)
ZA (1) ZA201800993B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201702450D0 (en) 2017-02-15 2017-03-29 Blue Prism Ltd System for optimising distribution of processing an automated process
US11409576B2 (en) 2017-12-29 2022-08-09 Entefy Inc. Dynamic distribution of a workload processing pipeline on a computing infrastructure
KR20200036087A (ko) * 2018-09-20 2020-04-07 (주)뤼이드 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램
CN110097330A (zh) * 2019-03-27 2019-08-06 深圳市佰仟金融服务有限公司 一种业务请求处理方法、装置及计算机可读存储介质
US11385920B2 (en) * 2019-03-28 2022-07-12 Amazon Technologies, Inc. Compute platform optimization over the life of a workload in a distributed computing environment
GB2590967A (en) 2020-01-10 2021-07-14 Blue Prism Ltd Method of remote access
US10817329B1 (en) * 2020-02-07 2020-10-27 Coupang Corp. Systems and methods for centralization and diagnostics for live virtual server performance data
US11862315B2 (en) 2020-12-16 2024-01-02 Express Scripts Strategic Development, Inc. System and method for natural language processing
US11423067B1 (en) 2020-12-16 2022-08-23 Express Scripts Strategic Development, Inc. System and method for identifying data object combinations
US11776672B1 (en) 2020-12-16 2023-10-03 Express Scripts Strategic Development, Inc. System and method for dynamically scoring data objects
CN112769900B (zh) * 2020-12-22 2023-04-25 中冶赛迪信息技术(重庆)有限公司 一种数据分发方法、系统、介质及电子终端
CN112734287A (zh) * 2021-01-22 2021-04-30 中国银行股份有限公司 一种数据处理方法和相关装置
US11971705B2 (en) 2021-04-13 2024-04-30 UiPath, Inc. Autoscaling strategies for robotic process automation
EP4131047A1 (en) 2021-08-05 2023-02-08 Blue Prism Limited Data obfuscation

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256637B1 (en) 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
FR2820222B1 (fr) 2001-01-26 2003-03-21 Schneider Automation Procede de programmation d'une application d'automatisme
US7188111B2 (en) 2002-07-12 2007-03-06 Datadirect Technologies Corp. System and method for connectivity to structured query language database
US7299468B2 (en) * 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
JP2005184165A (ja) * 2003-12-17 2005-07-07 Hitachi Ltd トラフィック制御装置およびそれを用いたサービスシステム
JP2005196291A (ja) 2003-12-26 2005-07-21 Fujitsu Ltd ユーザインタフェースアプリケーション開発プログラム、および開発装置
JP2007265193A (ja) * 2006-03-29 2007-10-11 Fujitsu Ltd ジョブ割当プログラム、ジョブ割当装置およびジョブ割当方法
US7971091B1 (en) 2006-05-02 2011-06-28 Emc Corporation Network configuration backup and restore operations using continuous data protection
US20100027896A1 (en) 2006-06-28 2010-02-04 Amir Geva Automated application interaction using a virtual operator
US7673113B2 (en) * 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
US9417895B2 (en) 2007-10-19 2016-08-16 Kubisys Inc. Concurrent execution of a first instance and a cloned instance of an application
US8261248B2 (en) 2007-11-05 2012-09-04 Sap Ag System and method of executing a dynamic program in a structured environment
JP2009151467A (ja) 2007-12-19 2009-07-09 Canon Inc 配信印刷システム
US20100023517A1 (en) 2008-07-28 2010-01-28 V Raja Method and system for extracting data-points from a data file
US8369968B2 (en) 2009-04-03 2013-02-05 Dell Products, Lp System and method for handling database failover
US8972519B2 (en) * 2009-11-16 2015-03-03 International Business Machines Corporation Optimization of multimedia service over an IMS network
US20110289417A1 (en) 2010-05-21 2011-11-24 Schaefer Diane E User interface for configuring and managing the cluster
US8560887B2 (en) * 2010-12-09 2013-10-15 International Business Machines Corporation Adding scalability and fault tolerance to generic finite state machine frameworks for use in automated incident management of cloud computing infrastructures
US20120151479A1 (en) * 2010-12-10 2012-06-14 Salesforce.Com, Inc. Horizontal splitting of tasks within a homogenous pool of virtual machines
US9110709B2 (en) 2010-12-14 2015-08-18 International Business Machines Corporation Preserving changes to a configuration of a running virtual machine
US9292466B1 (en) 2010-12-28 2016-03-22 Amazon Technologies, Inc. Traffic control for prioritized virtual machines
JP2012155219A (ja) 2011-01-27 2012-08-16 Nec Casio Mobile Communications Ltd 演奏データ提供システム、方法、サーバ、携帯端末およびコンピュータプログラム
JP5729209B2 (ja) 2011-08-12 2015-06-03 富士通株式会社 情報処理装置、情報処理システムのテスト方法およびプログラム
US8826068B2 (en) 2011-11-23 2014-09-02 Microsoft Corporation Automated testing of applications in cloud computer systems
US9916514B2 (en) 2012-06-11 2018-03-13 Amazon Technologies, Inc. Text recognition driven functionality
US9274742B2 (en) 2012-10-25 2016-03-01 PixiOnCloud, Inc. Visual-symbolic control of remote devices having display-based user interfaces
US9529613B2 (en) 2012-12-12 2016-12-27 Vmware, Inc. Methods and apparatus to reclaim resources in virtual computing environments
WO2014127535A1 (en) 2013-02-22 2014-08-28 Google Inc. Systems and methods for automated content generation
WO2014133522A2 (en) * 2013-02-28 2014-09-04 Empire Technology Development, Llc Local message queue processing for co-located workers
US20140282978A1 (en) 2013-03-15 2014-09-18 Sergio Demian LERNER Method and apparatus for secure interaction with a computer service provider
GB2517408A (en) * 2013-07-05 2015-02-25 Blue Prism Ltd System for automating processes
CN104516773B (zh) 2013-09-29 2018-04-20 国际商业机器公司 用于物理机的数据分配方法和数据分配装置
US9354937B2 (en) * 2014-07-18 2016-05-31 Thomson Reuters Global Resources System and method for electronic work prediction and dynamically adjusting server resources
WO2016100545A1 (en) * 2014-12-16 2016-06-23 Noderprime, Inc. Computer servers for datacenter managment
CN105208123A (zh) * 2015-09-24 2015-12-30 广东亿迅科技有限公司 一种虚拟桌面的实现方法及其系统
US11182203B2 (en) 2016-12-06 2021-11-23 Vmware, Inc. Systems and methods to orchestrate infrastructure installation of a hybrid system
GB201702450D0 (en) 2017-02-15 2017-03-29 Blue Prism Ltd System for optimising distribution of processing an automated process

Also Published As

Publication number Publication date
CA2995010A1 (en) 2018-08-15
AU2021200764A1 (en) 2021-03-04
US10469572B2 (en) 2019-11-05
JP2018133084A (ja) 2018-08-23
JP7161262B2 (ja) 2022-10-26
US20180234490A1 (en) 2018-08-16
AU2018201052B2 (en) 2022-03-03
CA2995010C (en) 2023-12-19
US20200021646A1 (en) 2020-01-16
BR102018002638A2 (pt) 2019-02-19
CN108492003B (zh) 2023-10-31
US11290528B2 (en) 2022-03-29
AU2018201052A1 (en) 2018-08-30
US20200021645A1 (en) 2020-01-16
CN108492003A (zh) 2018-09-04
US10938893B2 (en) 2021-03-02
ZA201800993B (en) 2023-03-29
GB201702450D0 (en) 2017-03-29

Similar Documents

Publication Publication Date Title
CN108492003B (zh) 分配优化的处理自动化进程的系统
US9838370B2 (en) Business attribute driven sizing algorithms
US9319269B2 (en) Security infrastructure for cloud services
US10270706B2 (en) Customizable model for throttling and prioritizing orders in a cloud environment
CA2916909C (en) System for automating processes
CN108885568A (zh) 在按需代码执行环境处处理先已存在的数据集
US8495182B1 (en) Scalable systems management abstraction framework
US10521746B2 (en) Recovery workflow for processing subscription orders in a computing infrastructure system
CN102317907A (zh) 任务环境生成系统、任务环境生成方法和存储介质
EP3364299B1 (en) System for optimising distribution of processing an automated process
WO2019121678A1 (en) Orchestrated hybrid cloud system for sap
NZ739898A (en) System for optimising distribution of processing an automated process
US20120310995A1 (en) Information management assistant
chandra Thota Reduce the Customer’s Complaint Resolution Time in Migration of Oracle Database Servers in Vmware

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40101436

Country of ref document: HK