CN115552376A - 自带机器(byom) - Google Patents
自带机器(byom) Download PDFInfo
- Publication number
- CN115552376A CN115552376A CN202180004314.7A CN202180004314A CN115552376A CN 115552376 A CN115552376 A CN 115552376A CN 202180004314 A CN202180004314 A CN 202180004314A CN 115552376 A CN115552376 A CN 115552376A
- Authority
- CN
- China
- Prior art keywords
- machine
- new
- machines
- list
- license key
- 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 52
- 230000003068 static effect Effects 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 27
- 238000010586 diagram Methods 0.000 description 26
- 230000000694 effects Effects 0.000 description 21
- 230000008569 process Effects 0.000 description 16
- 239000003795 chemical substances by application Substances 0.000 description 13
- 230000008901 benefit Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 12
- 238000012544 monitoring process Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012015 optical character recognition Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000010897 surface acoustic wave method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012634 optical imaging Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004801 process automation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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
- G06F9/5055—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 considering software capabilities, i.e. software resources associated or available to the machine
-
- 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
-
- 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
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Human Resources & Organizations (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Tourism & Hospitality (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Human Computer Interaction (AREA)
- Bioethics (AREA)
- Primary Health Care (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
一种用于用自带机器(BYOM)创建和/或编辑机器池的方法和/或装置包括:用静态机器列表创建和/或编辑机器池。用户输入机器列表和现有机器列表被取回,并且用户输入机器列表与现有机器列表被比较以标识用户输入机器列表与现有机器列表之间的一个或多个变化。接下来,当用户输入机器列表与现有机器列表之间的一个或多个变化被标识时,新机器规范被创建。一个或多个机器然后被移动到新机器规范。
Description
相关申请的交叉引用
本申请要求于2021年4月17日提交的美国专利申请号17/233,454的权益。该早前提交的申请的主题通过引用全部并入本文。
技术领域
本发明大体上涉及机器人过程自动化(RPA),更具体地涉及将BYOM与RPA合并。
背景技术
在云机器人之前,客户手动配置物理机器,并且安装机器人以将其计算系统(例如虚拟机)连接至OrchestratorTM。为了将计算系统连接至OrchestratorTM,许可证密钥被移交给准备计算系统的用户。该许可证密钥通常通过电子邮件、短消息收发系统(SMS)、和电话呼叫,仅举几例。这种移交许可证密钥的方法并不安全,并且许可证密钥被移交的通道(即,手段)也不安全。
因此,用于以安全方式将云机器人连接至OrchestratorTM的改进方法可能是有益的。
发明内容
本发明的某些实施例可以为当前云机器人技术尚未完全标识、了解或解决的本领域中的问题和需求提供解决方案。例如,本发明的一些实施例涉及将云机器人连接至BYOM模型。
在实施例中,一种用于用自带机器(BYOM)创建和/或编辑机器池的计算机实现的方法包括:用静态机器列表创建和/或编辑机器池。该方法还包括:取回用户输入机器列表和现有机器列表,并且将用户输入机器列表与现有机器列表进行比较以标识用户输入机器列表与现有机器列表之间的一个或多个变化。该方法还包括:当用户输入机器列表与现有机器列表之间的一个或多个变化被标识时,创建新机器规范。该方法还包括:将一个或多个机器移动或导入到新机器规范。
在另一实施例中,一种计算机程序被体现在非瞬态计算机可读介质上。计算机程序被配置为使一个或多个处理器用自带机器(BYOM)创建和/或编辑机器池。计算机程序还被配置为使一个或多个处理器用静态机器列表创建和/或编辑机器池。计算机程序还被配置为使一个或多个处理器取回用户输入机器列表和现有机器列表,并且将用户输入机器列表与现有机器列表进行比较以标识用户输入机器列表与现有机器列表之间的一个或多个变化。计算机程序还被配置为使一个或多个处理器在用户输入机器列表和现有机器列表之间的一个或多个变化被标识时,创建新机器规范。计算机程序还被配置为使一个或多个处理器将一个或多个机器移动或导入到新机器规范。
在又一实施例中,一种用自带机器(BYOM)创建和/或编辑机器池的系统包括:存储器,被配置为存储一个或多个计算机可执行指令;以及一个或多个处理器,被配置为执行一个或多个指令以执行用静态机器列表创建和/或编辑机器池。一个或多个处理器还被配置为执行一个或多个指令,以执行取回用户输入机器列表和现有机器列表,并且将用户输入机器列表与现有机器列表进行比较以标识用户输入机器列表和现有机器列表之间的一个或多个变化。一个或多个处理器还被配置为执行一个或多个指令,以执行在用户输入机器列表和现有机器列表之间的一个或多个变化被标识时,创建新机器规范。一个或多个处理器还被配置为执行一个或多个指令,以执行将一个或多个机器移动或导入到新机器规范。
附图说明
为了本发明的某些实施例的优点被容易地理解,上面简要描述的本发明的更具体的描述将通过参照在所附附图中图示的具体实施例来渲染。尽管应该理解的是,这些附图仅描绘了本发明的典型实施例,因此不应被认为是对其范围的限制,本发明将通过使用附图来利用附加的特异性和细节描述并解释,其中:
图1是图示了根据本发明的实施例的RPA系统的架构图。
图2是图示了根据本发明的实施例的已部署RPA系统的架构图。
图3是图示了根据本发明的实施例的设计器、活动和驱动之间的关系的架构图。
图4是图示了根据本发明的实施例的RPA系统的架构图。
图5是图示了根据本发明的实施例的被配置为在BYOM中部署云机器人的计算系统的架构图。
图6是图示了根据本发明的实施例的用于创建和/或编辑机器池的方法的流程图。
图7是图示了根据本发明的实施例的用于轮换许可证密钥的方法的流程图。
图8是图示了根据本发明的实施例的用于将机器添加到机器池的方法的流程图。
图9是图示了根据本发明的实施例的用于将机器移除到机器池的方法的流程图。
图10是图示了根据本发明的实施例的用于自带机器(BYOM)的方法900的流程图。
图11是图示了根据本发明的实施例的用户创建虚拟机的图形用户界面(GUI)。
图12是图示了根据本发明的实施例的云提供方连接的GUI。
图13是图示了根据本发明的实施例的添加云机器池的GUI。
图14是图示了根据本发明的实施例的配置现代文件夹的GUI。
图15是图示了根据本发明的实施例的管理文件夹中的机器的GUI。
图16是图示了根据本发明的实施例的执行作业的GUI。
图17是图示了根据本发明的实施例的用于创建/编辑机器池并且轮换许可证密钥的流程的图。
图18是图示了根据本发明的实施例的管理程序和编排器实体之间的架构关系的图。
图19是图示了根据本发明的实施例的机器的语句机器的关系图。
具体实施方式
一些实施例涉及自带机器(BYOM),这是已被添加到云机器人的特征。例如,客户可以转移其订阅凭证,允许在客户的订阅内进行基础设施改变。基础设施改变将云机器人的调度合并到订阅中。
然而,应该注意的是,在客户的订阅中进行这些基础设施改变时可能会出现问题。例如,机器可能有多种定制需求,即,机器可能需要虚拟私有网络(VPN)连接来与数据库进行通信。另一示例可能是需要安装扩展程序。
基于BYOM的这些定制需求,定制以解决这些需求的云机器人被安装和/或部署。
正在解决的另一问题是允许客户获得对他们自己的网络的特殊访问。这与现有的云机器人场景相辅相成,即,利用云机器人,机器被自动创建和缩放的想法。然而,一些客户对机器的创建和缩放不感兴趣,因为客户可能具有唯一的机器配置。
为了解决这个问题,客户创建机器,然后客户将唯一的机器配置提供给云机器人开发者。然后,云机器人开发者可以针对唯一的机器配置(或针对每个机器)优化云成本使用。这样,当新作业被接收到时,云机器人开发者启动机器,当不再需要机器时,机器被关闭。
继续该示例,假设客户创建了10个机器。在该示例中,云机器人开发者未让10个机器一直处于开启状态,从而导致支付AzureTM或AWSTM成本,而是在需要时开启一个或多个机器,并且在不需要时关闭一个或多个机器。与自动缩放或性能优化相同的云机器人优点可以用BYOM实现。换言之,云机器人优点被带入自定义创建的BYOM。
在一些实施例中,客户可以在云中创建多个虚拟机(VM),另外,这些VM可以参与RPA生态系统。例如,客户在云中提供一个或多个VM,并且机器人被安装到一个或多个VM中。这些机器人可以自动将VM连接至RPA环境,并且可以被自动开启或关闭。
图1是图示了根据本发明的实施例的RPA系统100的架构图。RPA系统100包括允许开发者设计和实现工作流的设计器110。设计器110可以为应用集成以及自动化第三方应用、管理信息技术(IT)任务和业务IT过程提供解决方案。设计器110还可以支持自动化项目的开发,自动化项目是业务过程的图形表示。简而言之,设计器110支持工作流和机器人的开发和部署。
自动化项目通过给予开发者对执行顺序的控制以及工作流中开发的自定义步骤集合之间的关系(在本文中定义为“活动”)来实现基于规则的过程的自动化。设计器110的实施例的一个商业示例是UiPath StudioTM。每个活动可以包括诸如点击按钮、读取文件、写入日志面板等动作。在一些实施例中,工作流可以被嵌套或嵌入。
一些类型的工作流可以包括但不限于序列、流程图、有限状态机(FSM)和/或全局异常处理程序。序列可能特别适合于线性过程,从而实现从一个活动到另一活动的流程,而不会打乱工作流。流程图可能特别适合于更复杂的业务逻辑,通过多个分支逻辑操作符以更多样化的方式实现决策的集成和活动的连接。FSM可能特别适合于大型工作流。FSM可以在其执行中使用有限数量的状态,这些状态由条件(即,过渡)或活动触发。全局异常处理程序可能特别适合于在遇到执行误差时确定工作流行为以及调试过程。
一旦工作流在设计器110中开发,业务过程的执行就由指挥器120编排,指挥器120编排执行在设计器110中开发的工作流的一个或多个机器人130。指挥器120的实施例的一个商业示例是UiPath OrchestratorTM。指挥器120支持管理环境中的资源的创建、监测和部署。指挥器120充当与第三方解决方案和应用的集成点。
指挥器120可以管理一队机器人130,从集中点连接和执行机器人130。可以被管理的机器人130的类型包括但不限于有人值守机器人132、无人值守机器人134、开发机器人(类似于无人值守机器人134,但用于开发和测试目的)和非生产机器人(类似于有人值守机器人132,但用于开发和测试目的)。有人值守机器人132由用户事件触发,并且在同一计算系统上与人类一起操作。有人值守机器人132可以与指挥器120一起用于集中过程部署和记录介质。有人值守机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,在这种类型的机器人上,过程无法从指挥器120开始和/或它们无法在锁定屏幕下运行。在某些实施例中,有人值守机器人132可以仅从机器人托盘或命令提示符开始。在一些实施例中,有人值守机器人132应该在人为监督下运行。
无人值守机器人134在虚拟环境中无人值守地运行,并且可以使许多过程自动化。无人值守机器人134可以负责远程执行、监测、调度,并且为工作队列提供支持。在一些实施例中,所有机器人类型的调试可以在设计器110中运行。有人值守机器人和无人值守机器人可以使各种系统和应用自动化,包括但不限于大型机、web应用、VM、企业应用(例如由等生产的那些)以及计算系统应用(例如台式计算机和膝上型计算机应用、移动设备应用、可穿戴计算机应用等)。
指挥器120可以具有各种能力,包括但不限于供应、部署、配置、排队、监测、记录和/或提供互连性。供应可以包括创建和维护机器人130和指挥器120(例如web应用)之间的连接。部署可以包括确保将封装版本正确递送给指派的机器人130以供执行。配置可以包括机器人环境和过程配置的维护和递送。排队可以包括提供对队列和队列项目的管理。监测可以包括追踪机器人标识数据并且维护用户权限。记录可以包括将日志存储和索引到数据库(例如SQL数据库)和/或另一存储机制(例如提供存储和快速查询大型数据集的能力的)。指挥器120可以通过充当第三方解决方案和/或应用的集中通信点来提供互连性。
机器人130是运行在设计器110中构建的工作流的执行代理。(多个)机器人130的一些实施例的一个商业示例是UiPath RobotsTM。在一些实施例中,机器人130默认安装微软服务控制管理器(SCM)管理的服务。因此,这种机器人130可以在本地系统账户下打开交互式会话,并且具有服务的权利。
在一些实施例中,机器人130可以以用户模式安装。针对这种机器人130,这意味着它们与给定机器人130被安装的用户具有相同的权利。该特征也可以可用于高密度(HD)机器人,确保以其最大潜力充分利用每个机器。在一些实施例中,任何类型的机器人130都可以在HD环境中配置。
在一些实施例中,机器人130被拆分为多个组件,分别专用于特定的自动化任务。在一些实施例中,机器人组件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。SCM管理的机器人服务管理和监测会话,并且充当指挥器120和执行主机(即,机器人130在其上执行的计算系统)之间的委托。这些服务被信任并且管理机器人130的凭证。控制台应用由本地系统下的SCM启动。
在一些实施例中,用户模式机器人服务管理和监测会话,并且充当指挥器120和执行主机之间的委托。用户模式机器人服务可以被信任并且管理机器人130的凭证。如果SCM管理的机器人服务未被安装,则应用可以被自动启动。
执行器可以在会话下运行给定的作业(即,它们可以执行工作流)。执行器可以知道每监测器每英寸点数(DPI)设置。代理可以是在系统托盘窗口中显示可用作业的呈现基础(WPF)应用。代理可以是服务的客户端。代理可以请求开始或停止作业,并且改变设置。命令行是服务的客户端。命令行是控制台应用,它可以请求开始作业并且等待它们的输出。
使机器人130的组件如上面解释地那样拆分支持开发者、支持用户和计算系统更容易地运行、标识和追踪每个组件正在执行的内容。特殊行为可以通过这种方式为每个组件配置,诸如为执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可能始终知道每个监测器的DPI设置。因此,工作流可以在任何DPI处执行,而不管它们在其上创建的计算系统的配置如何。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。在一些实施例中,针对不知道DPI或有意标记为不知道的应用,DPI可以被禁用。
图2是图示了根据本发明的实施例的已部署RPA系统200的架构图。在一些实施例中,RPA系统200可以是图1的RPA系统100,或者可以是其一部分。应该注意的是,在不偏离本发明的范围的情况下,客户端侧、服务器侧或两者可以包括任何期望数量的计算系统。在客户端侧,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可能不在计算系统210上运行。执行器212正在运行过程。多个业务项目可以同时运行,如图2所示。在该实施例中,代理214(例如服务)是所有执行器212的单一联系点。该实施例中的所有消息都被记录到指挥器230中,指挥器230经由数据库服务器240、索引器服务器250或两者进一步处理它们。如上面相对于图1讨论的,执行器212可以是机器人组件。
在一些实施例中,机器人表示机器名称和用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行的多个交互式会话的计算系统(例如服务器2012)上,多个机器人可以同时运行,分别在单独的会话中使用唯一的用户名。这在上面被称为HD机器人。
代理214还负责发送机器人的状况(例如周期性地发送指示机器人仍在运作的“心跳”消息),并且下载要被执行的封装的所需版本。在一些实施例中,代理214和指挥器230之间的通信总是由代理214发起。在通知场景中,代理214可以打开WebSocket通道,该通道稍后由指挥器230使用以向机器人发送命令(例如开始、停止等)。
在服务器侧,呈现层(web应用232、开放数据协议(OData)代表状态转移(REST)应用编程接口(API)端点234以及通知和监测236)、服务层(API实现/业务逻辑238)和持久层(数据库服务器240和索引器服务器250)被包括在内。指挥器230包括web应用232、OdataREST API端点234、通知和监测236以及API实现/业务逻辑238。在一些实施例中,用户在指挥器230的接口中执行(例如经由浏览器220)的大多数动作是通过调用各种API来执行的。在不偏离本发明的范围的情况下,这种动作可以包括但不限于在机器人上开始作业、在队列中添加/移除数据、调度作业以无人值守运行等。Web应用232是服务器平台的可视层。在该实施例中,web应用232使用超文本标记语言(HTML)和JavaScript(JS)。然而,在不偏离本发明的范围的情况下,任何期望的标记语言、脚本语言或任何其他格式可以被使用。在该实施例中,用户经由浏览器220与来自web应用232的网页交互,以便执行各种动作来控制指挥器230。例如,用户可以创建机器人组,向机器人指派封装,分析每个机器人和/或每个过程的日志,开始和停止机器人等。
除了web应用232之外,指挥器230还包括暴露Odata REST API端点234的服务层。然而,在不偏离本发明的范围的情况下,其他端点可以被包括在内。REST API由web应用232和代理214两者消耗。在该实施例中,代理214是客户端计算机上的一个或多个机器人的监督者。
该实施例中的REST API覆盖配置、记录、监测和排队功能性。在一些实施例中,配置端点可以被用于定义和配置应用用户、权限、机器人、资产、发布和环境。例如,记录REST端点可以被用于记录不同的信息,诸如误差、由机器人发送的显式消息以及其他环境特定信息。如果开始作业命令在指挥器230中使用,则部署REST端点可以由机器人用于查询应该执行的封装版本。排队REST端点可以负责队列和队列项目管理,诸如向队列添加数据,获得来自队列的事务,设置事务的状况等。
监测REST端点可以监测web应用232和代理214。通知和监测API 236可以是被用于注册代理214、向代理214递送配置设置以及用于从服务器和代理214发送/接收通知的REST端点。在一些实施例中,通知和监测API 236还可以使用WebSocket通信。
在该实施例中,持久层包括一对服务器—数据库服务器240(例如SQL服务器)和索引器服务器250。该实施例中的数据库服务器240存储机器人、机器人组、关联过程、用户、角色、调度等的配置。在一些实施例中,该信息通过web应用232来管理。数据库服务器240可以管理队列和队列项目。在一些实施例中,数据库服务器240可以存储由机器人记录的消息(除了索引器服务器250之外或代替索引器服务器250)。
在一些实施例中是可选的索引器服务器250存储和索引由机器人记录的信息。在某些实施例中,索引器服务器250可以通过配置设置禁用。在一些实施例中,索引器服务器250使用作为开源项目全文搜索引擎的由机器人记录(例如使用如日志消息或写入行等活动)的消息可以通过(多个)记录REST端点发送给索引器服务器250,其中它们被索引以备将来使用。
图3是图示了根据本发明的实施例的设计器310、活动320、330、驱动340和AI/ML模型350之间的关系300的架构图。根据上文,开发者使用设计器310来开发由机器人执行的工作流。工作流可以包括用户定义的活动320和UI自动化活动330。在一些实施例中,用户定义的活动320和/或UI自动化活动330可以调用一个或多个AI/ML模型350,其可以位于机器人正在操作的计算系统本地和/或其远程。一些实施例能够标识图像中的非文本视觉组件,这在本文中被称为计算机视觉(CV)。与这种组件相关的一些CV活动可以包括但不限于点击、类型、获取文本、悬停、元素存在、刷新范围、突出显示等。例如,在一些实施例中,点击使用CV、光学字符识别(OCR)、模糊文本匹配和多锚点标识元素,并且点击它。类型可以使用上文和元素中的类型来标识元素。获取文本可以标识具体文本的位置,并且使用OCR扫描它。悬停可以标识元素,并且悬停在它上方。元素存在可以使用上述技术检查元素是否存在于屏幕上。在一些实施例中,可能有数百甚或数千个活动可以在设计器310中实现。然而,在不偏离本发明的范围的情况下,任何数量和/或类型的活动可以是可用的。
UI自动化活动330是用低级代码(例如CV活动)编写并且支持与屏幕交互的特殊、低级活动的子集。UI自动化活动330经由允许机器人与期望软件交互的驱动340和/或AI/ML模型350来支持这些交互。例如,驱动340可以包括OS驱动342、浏览器驱动344、VM驱动346、企业应用驱动348等。一个或多个AI/ML模型350可以由UI自动化活动330使用以确定执行与计算系统的交互。在一些实施例中,AI/ML模型350可以增强驱动340或完全替换它们。实际上,在某些实施例中,驱动340未被包括在内。
图4是图示了根据本发明的实施例的RPA系统400的架构图。在一些实施例中,RPA系统400可以是或包括图1和/或图2的RPA系统100和/或200。RPA系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的web应用与指挥器计算系统420通信。指挥器计算系统420进而能够与数据库服务器430和可选的索引器服务器440通信。
相对于图1和图3,应该注意的是,虽然web应用在这些实施例中使用,但是在不偏离本发明的范围的情况下,任何合适的客户端/服务器软件可以被使用。例如,指挥器可以运行与客户端计算系统上的非基于web的客户端软件应用通信的服务器侧应用。
图5是图示了根据本发明的实施例的被配置为将云机器人部署到BYOM的计算系统500的架构图。在一些实施例中,计算系统500可以是本文描绘和/或描述的计算系统中的一个或多个。计算系统500包括总线505或用于传送信息的其他通信机制以及与总线510耦合以用于处理信息的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、其多个实例和/或其任何组合。(多个)处理器510还可以具有多个处理核心,并且至少一些核心可以被配置为执行具体功能。在一些实施例中,多并行处理可以被使用。在某些实施例中,(多个)处理器510中的至少一个可以是包括模拟生物神经元的处理元件的神经形态电路。在一些实施例中,神经形态电路可能不需要冯诺依曼计算架构的典型组件。
计算系统500还包括用于存储信息和要由(多个)处理器520执行的指令的存储器515。存储器515可以包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、缓存、静态存储装置(诸如磁盘或光盘)或任何其他类型的非瞬态计算机可读介质或其组合的任何组合。非瞬态计算机可读介质可以是可以由(多个)处理器510访问的任何可用介质,并且可以包括易失性介质、非易失性介质或两者。介质也可以是可移除的、不可移除的或两者兼有。
附加地,计算系统500包括通信设备520,诸如收发器,以经由无线和/或有线连接提供对通信网络的访问。在一些实施例中,通信设备520可以被配置为使用频分多址(FDMA)、单载波FDMA(SC-FDMA)、时分多址(TDMA)、码分多址(CDMA)、正交频分复用(OFDM)、正交频分多址(OFDMA)、全球移动系统(GSM)通信、通用分组无线电服务(GPRS)、通用移动电信系统(UMTS)、cdma2000、宽带CDMA(W-CDMA)、高速下行分组接入(HSDPA)、高速上行分组接入(HSUPA)、高速分组接入(HSPA)、长期演进(LTE)、高级LTE(LTE-A)、802.11x、Wi-Fi、Zigbee、超宽带(UWB)、802.16x、802.15、家庭节点B(HnB)、蓝牙、射频标识(RFID)、红外数据协会(IrDA)、近场通信(NFC)、第五代(5G)、新无线电(NR)、其任何组合和/或任何其他当前存在或未来实现的通信标准和/或协议,而不偏离本发明的范围。在一些实施例中,通信设备520可以包括一个或多个天线,这些天线是单一的、阵列的、定相的、切换的、波束形成的、波束控制的、其组合和/或任何其他天线配置,而不偏离本发明的范围。
(多个)处理器510还经由总线505耦合至显示器525,诸如等离子体显示器、液晶显示器(LCD)、发光二极管(LED)显示器、场发射显示器(FED)、有机发光二极管(OLED)显示器、柔性OLED显示器、柔性衬底显示器、投影显示器、4K显示器、高清显示器、显示器、面内切换(IPS)显示器或用于向用户显示信息的任何其他合适的显示器。显示器525可以被配置为使用电阻式、电容式、表面声波(SAW)电容式、红外、光学成像、色散信号技术、声学脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3D)触摸显示器、多输入触摸显示器、多点触摸显示器等。在不偏离本发明的范围的情况下,任何合适的显示设备和触觉I/O可以被使用。
键盘530和光标控制设备535(诸如计算机鼠标、触摸板等)还被耦合至总线505,以使用户能够与计算系统500交互。然而,在某些实施例中,物理键盘和鼠标可能不存在,并且用户可以仅通过显示器525和/或触摸板(未示出)与设备交互。根据设计选择,任何类型和组合的输入设备可以被使用。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与其通信的另一计算系统远程地与计算系统500交互,或者计算系统500可以自主地操作。
存储器515存储在由(多个)处理器510执行时提供功能性的软件模块。模块包括用于计算系统500的操作系统540。模块还包括BYOM模块545,其被配置为执行本文描述的方法的全部或部分或其衍生物。计算系统500可以包括具有附加功能性的一个或多个附加功能模块550。
本领域技术人员将了解,“系统”可以被实施为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、量子计算系统或任何其他合适的计算设备或设备的组合,而不偏离本发明的范围。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的本地化和分布式形式实现,包括云计算系统。计算系统可以是局域网(LAN)、移动通信网络、卫星通信网络、互联网、公共或私有云、混合云、服务器群、其任何组合等的一部分,或者由其可访问。在不偏离本发明的范围的情况下,任何本地化或分布式架构可以被使用。
应该注意的是,本说明书中描述的一些系统特征已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以被实现为包括自定义的超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片、晶体管或其他离散组件等现成半导体的硬件电路。模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等可编程硬件设备中实现。
模块也可以至少部分地在软件中实现,以供各种类型的处理器执行。例如,可执行代码的已标识单元可以包括一个或多个物理或逻辑计算机指令块,例如它们可以被组织为对象、程序或功能。然而,所标识模块的可执行文件不需要被物理地放置在一起,而是可以包括存储在不同位置的不同指令,当逻辑地联合在一起时,这些指令包括模块并且实现模块的规定目的。进一步地,模块可以被存储在计算机可读介质上,例如可以是硬盘驱动、闪存设备、RAM、磁带和/或用于存储数据的任何其他这种非瞬态计算机可读介质,而不偏离本发明的范围。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以被分布在多个不同的代码片段上、分布在不同的程序之间以及跨多个存储器设备分布。类似地,操作数据在本文中可以在模块内标识和图示,并且可以以任何合适的形式实施,并且在任何合适类型的数据结构内组织。操作数据可以作为单个数据集收集,或者可以被分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
图6是图示了根据本发明的实施例的用于创建和/或编辑机器池的方法600的流程图。方法600可以开始于605,用静态机器列表创建和/或编辑机器池。机器池(或云机器池)可以被定义为机器的配置,诸如云连接、云范围(例如AzureTM中的资源组、AWSTM中的区域以及机器参数(例如图像、大小、VNet等)。在610中,用户输入机器列表(UL)和现有机器列表(EL)被取回。在一些实施例中,用户输入机器列表和现有机器列表从BYOM的用户取回。用户输入机器列表可以被定义为云机器标识符的静态列表的期望状态,并且现有机器列表可以被定义为云机器标识符的静态列表的当前状态。用户输入机器列表可以包括唯一标识符,用于其中列出的每个机器。类似地,现有机器列表可以包括唯一标识符,用于其中列出的每个机器。唯一标识符支持避免客户重复下单的场景。例如,客户可能同时使用两个不同的BYOM机器池中的云机器。利用唯一标识符,在两个不同的BYOM机器池中使用的同一机器是可标识的,并且决定同一机器是否可以由第二BYOM机器池使用。
在615中,用户输入机器列表和现有机器被比较,以确定用户输入机器列表是否包含来自现有机器列表的任何变化。在一些实施例中,未在现有机器列表中列出的任何机器的一个或多个唯一标识符通过该比较标识。在另一实施例中,用户输入机器列表和现有机器被归并在一起,以标识未在现有机器列表中列出的任何机器的一个或多个唯一标识符。
如果用户输入机器列表和现有机器列表相同,则现有机器列表中标识的机器中的每个机器的现有机器规范在620中使用。如果用户输入机器列表和现有机器列表不同,则新的机器规范在625中创建。
在一些实施例中,新机器规范可以被定义为机器池的版本,并且是不可变的。例如,当新的机器规范被创建时,可能会有潜在的暗示。具体地,当新机器规范被创建时,与新机器规范相关联的许可证密钥必须被找到。该许可证密钥是一种工具,允许用户(或机器)连接回生态系统(例如OrchestratorTM)。应该注意的是,机器可能属于机器规范,并且机器规范持有在连接至生态系统时由所有机器共享的(多个)许可证密钥。
BYOM云机器池可以具有多于一个机器,并且这些机器可以共享相同的许可证密钥以连接至OrchestratorTM。许可证密钥基本上表示分配的运行时数量和其他信息,诸如OrchestratorTM中的端点数量。当池编辑发生时,变化会被引入,使部分连接机器无效。变化可以被定义为编辑机器的站点、资源组的变化等。这是共享许可证密钥被轮换的时间。例如,轮换有效地关闭无效连接机器的连接,并且作为副作用,其他连接机器也无效。为此,这些机器上使用的许可证密钥被轮换。
图7是图示了根据本发明的实施例的用于在新机器规范被创建时轮换许可证密钥的方法700的流程图。在一些实施例中,方法700可以开始于705,其中OrchestratorTM检测到机器需要从机器池中轮换。例如,OrchestratorTM可能会检测到机器的许可证密钥已到期。新规范被创建时可能会发生这种情况(参见下面的解释)。在710中,使用到期的许可证密钥,OrchestratorTM停止向机器指派任何新作业,并且在715中,将机器移动到试用状态。出于解释的目的,当机器处于试用状态时,尽管现有的运行作业(如果有的话)将继续其执行,但没有其他作业可以被指派给该机器。
在720中,当机器完成一个或多个剩余作业(如果有的话)时,OrchestratorTM删除机器或从机器池中移除机器。在725中,OrchestratorTM基于新机器规范供应新机器,并且在730中,将新许可证密钥指派给新供应的机器。在一些替代实施例中,同一机器可以被供应并且指派新的许可证密钥。参见下面的解释。
例如,新的许可证密钥由OrchestratorTM针对机器池中的每个版本随机生成和验证,并且被通知给管理程序。在一个示例中,OrchestratorTM可以在每次需要轮换许可证密钥期间生成新的许可证密钥。在另一示例中,OrchestratorTM可以在轮换许可证密钥之前生成新的许可证。而且,应该注意的是,OrchestratorTM可以确定新作业何时待决。OrchestratorTM侧可能会基于使用的许可证密钥来区分连接,即使许可证密钥来自同一机器。OrchestratorTM使用两个属性—(1)审查来自物理机器的主机名称,以及(2)审查正在使用的许可证密钥—以标识唯一的机器人连接。
应该了解的是,OrchestratorTM使用两个元素来标识机器,即,标识池的许可证密钥和标识该机器的机器名称(例如计算机名称)。当轮换密钥时,新版本的机器会在OrchestratorTM数据库中创建。新版本变为活动的,并且旧版本变为非活动的。许可证密钥用于标识机器所在的版本。利用AutoscalingTM,反对版本上的机器被标识。这会使机器处于试用,这意味着没有更多工作可以被指派给该机器。这是为了确保在断开机器时,附加作业未被指派。这也允许机器安全地断开,并且不会丢弃已经运行的作业。在BYOM实施例的情况下,同一机器可以使用新的许可证密钥再次连接。然而,在一些或大多数情况下,使用新的许可证密钥的新机器被连接。
返回到图6,在630中,一旦新机器规范被创建,并且新任务被指派。.附加地,以下操作可以被执行。首先,新机器可以被添加到新机器规范,并且现有机器可以从旧机器规范移动到新机器规范。现有机器的移动是针对用户输入机器列表中保留或标识的那些机器。属于不同池或不属于用户输入机器列表的那些机器被跳过。这通常通过使用全局标识符来执行。
在一些替代实施例中,不是完全移除或删除机器,用户输入机器列表中未标识的那些机器被软删除。例如,不是删除机器,机器被标记为隐藏的,有效地将机器从现有机器列表的范围中移除。这可能适用于无响应的机器。例如,这些无响应的机器可以被移动到停止状态。
图8是图示了根据本发明的实施例的用于将机器添加到机器池的方法800的流程图。在一些实施例中,新的机器规范可能未被创建,从而避免需要轮换许可证密钥。在那些实施例中,方法800开始于805,将机器添加到机器池。用户提供要添加的云机器标识符列表。不是创建新的机器规范,最新(或当前)的机器规范在810中取回。在815中,新机器被添加到最新的机器规范,并且被标记为已停止,因此将来会考虑使用。针对其他现有机器,进一步修改未被执行。
图9是图示了根据本发明的实施例的用于将机器移除到机器池的方法900的流程图。方法900可以开始于905,从机器池中移除机器。用户提供要移除的云机器标识符列表。在910中,不是创建新机器规范,最新(或当前)的机器规范被检索。在915中,针对属于最新机器规范并且处于停止状态而没有待决任务的机器,机器从最新机器规范中软移除。所有其他机器被跳过。
图10是图示了根据本发明的实施例的用于自带机器(BYOM)的方法1000的流程图。方法1000可以开始于1005,用户在其订阅服务(例如AzureTM或AWSTM)中准备一个或多个机器。参见图11,图11是图示了根据本发明的实施例的用户创建虚拟机GUI 1100。例如,在1010中,用户在OrchestratorTM中创建云连接。参见图12,图12是图示了根据本发明的实施例的云提供方连接的GUI 1200。
在1015中,用户在OrchestratorTM中创建云机器池。参见图13,图13是图示了根据本发明的实施例的添加云机器池的GUI 1300。在一些实施例中,用户关闭“自动创建机器”,并且选择他或她想要添加到机器池中的机器。在1020中,用户配置现代文件夹。现代文件夹包括传统文件夹中不可用的特征。BYOM是这些特征的一部分。参见图14,图14是图示了根据本发明的实施例的配置现代文件夹的GUI1400。在一些实施例中,用户配置无人值守机器人用户名和密码。这可以类似于图9的步骤1005中的机器创建流程。
在1025中,用户继续配置现代文件夹,即,选择机器扇区中的BYOM机器池。参见图15,图15是图示了根据本发明的实施例的管理文件夹中的机器的GUI 1500。在1030中,用户可以在现代文件夹中运行或执行自动化。参见图16,图16是图示了根据本发明的实施例的执行作业的GUI 1600。
图17是图示了根据本发明的实施例的用于创建/编辑机器池并且轮换许可证密钥的流程1700的图。在一些实施例中,用户(或行动者)可以访问用户界面1705以创建或编辑机器池。使用应用编程接口(API),创建和/或编辑机器池的请求从用户界面1705传输给OrchestratorTM 1710。OrchestratorTM 1710将请求中继到管理程序1715。管理程序1715扫描请求以确定是否需要新的机器规范。新机器规范的示例包括从机器池添加或移除机器以及改变机器的大小或图像,仅举几例。如果需要,管理程序1715创建新机器规范,并且将新机器规范传输给OrchestratorTM 1710。管理程序1715单独和异步地决定是否需要新任务,并且如果需要的话,创建新任务。例如,当创建新机器规范时,管理程序1715创建异步执行的任务(但仍在管理程序1715中),以将一个或多个新机器从(新)用户输入机器列表导入到新机器规范。参见图6中的步骤630。因为在响应中,管理程序1715提供了新的机器规范,OrchestratorTM轮换许可证密钥,这是同步操作。这种操作包括创建新版本,并且保持新的许可证密钥(参见1815),同时重置先前版本上的‘IsActive’位。使用图7的方法700,OrchestratorTM可以将许可证密钥和许可证密钥轮换到用户界面1705。
图18是图示了根据本发明的实施例的管理程序和编排器实体之间的架构关系1800的图。在一些实施例中,在OrchestratorTM 1805侧,机器模块1810包括包含池密钥的表格。对于用户不可见,机器模块1810被链接至机器版本模块1815。机器版本模块1815包括可能需要轮换的许可证密钥。当许可证密钥被轮换时,新的许可证密钥在机器版本模块中激活,并且到期的许可证密钥被撤销。
在管理程序1820侧,当机器池1825被创建时,机器池1825和机器模块1810被链接,并且池密钥被存储在其中。机器规范模块1830也被创建,并且包括与机器版本模块1815相关联的许可证密钥。这是通过链接机器规范模块1830和机器版本模块1815来实现的。还将机器模块1835链接至机器池模块1825和机器规范1830。
图19是图示了根据本发明的实施例的机器的语句机器的关系图1900。在一般情况下,机器由云机器人创建并且添加到机器池。然而,在一些实施例中,特别是在BYOM实施例中,机器由机器的客户或用户创建。该机器在后台中被合并到机器池。然后机器可能会基于负载多次连接和断开。针对任何类型的机器池都是如此。例如,如果机器出现故障(即,没有正确连接、不响应命令等),则该机器被认为有故障并且被删除。一般情况下的硬删除与BYOM情况下的驱逐。
根据本发明的实施例,在图6至图10中执行的过程步骤可以由计算机程序执行,对(多个)处理器的指令进行编码以执行图6至10中描述的(多个)过程的至少一部分。计算机程序可以在非瞬态计算机可读介质上实施。计算机可读介质可以是但不限于硬盘驱动、闪存设备、RAM、磁带和/或用于存储数据的任何其他这种介质或介质的组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如图5的计算系统500的(多个)处理器510)的编码指令,以实现图6至图10中描述的过程步骤的全部或部分,这些编码指令也可以被存储在计算机可读介质上。
计算机程序可以在硬件、软件或混合实现中实现。计算机程序可以由彼此有效通信的模块组成,并且这些模块被设计为传递信息或指令以进行显示。计算机程序可以被配置为在通用计算机、ASIC或任何其他合适的设备上操作。
将容易理解的是,如本文的附图大体上描述和图示的,本发明的各种实施例的组件可以以多种不同的配置来布置和设计。因此,如所附附图中表示的,本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而仅是本发明的所选实施例的代表。
在该说明书中描述的本发明的特征、结构或特点可以在一个或多个实施例中以任何合适的方式组合。贯穿本说明书对“某些实施例”、“一些实施例”或类似语言的引用意味着结合该实施例描述的特定特征、结构或特点被包括在本发明的至少一个实施例中。因此,在整个本说明书中,短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言的出现不一定全都指同一组实施例,并且所描述的特征、结构或特点可以在一个或多个实施例中以任何合适的方式组合。
应该注意的是,在整个本说明书中对特征、优点或类似语言的引用并不暗示可以用本发明实现的所有特征和优点应该在本发明的任何单个实施例中。相反,引用特征和优点的语言被理解为意味着结合实施例描述的具体特征、优点或特点被包括在本发明的至少一个实施例中。因此,贯穿本说明书的特征和优点的讨论以及类似语言可以但不一定指相同的实施例。
此外,所描述的本发明的特征、优点和特点可以在一个或多个实施例中以任何合适的方式组合。相关领域的技术人员将认识到,本发明可以在没有特定实施例的一个或多个具体特征或优点的情况下实践。在其他实例中,在某些实施例中可以认识到,附加特征和优点可能并非在本发明的所有实施例中都存在。
本领域的普通技术人员将容易地理解,上面讨论的本发明可以以不同顺序的步骤和/或以与所公开的配置不同的配置的硬件元件来实践。因此,尽管本发明已经基于这些优选实施例来描述,但是对于本领域技术人员而言明显的是,在保留在本发明的精神和范围内时,某些修改、变化和替代构造将是明显的。因此,为了确定本发明的界限,应该参照所附权利要求。
Claims (21)
1.一种用于用自带机器(BYOM)创建和/或编辑机器池的计算机实现的方法,包括:
用静态机器列表创建和/或编辑机器池;
取回用户输入机器列表和现有机器列表,并且将所述用户输入机器列表与所述现有机器列表进行比较以标识所述用户输入机器列表与所述现有机器列表之间的一个或多个变化;
当所述用户输入机器列表与所述现有机器列表之间的所述一个或多个变化被标识时,创建新机器规范;以及
将一个或多个机器移动或导入到所述新机器规范。
2.根据权利要求1所述的计算机实现的方法,还包括:
当所述新机器规范被创建时,针对到期的许可证密钥轮换新的许可证密钥,其中:
所述新的许可证密钥支持所述一个或多个机器连接至基于云的生态系统。
3.根据权利要求2所述的计算机实现的方法,其中针对所述到期的许可证密钥的所述新的许可证密钥的所述轮换包括:
在用所述到期的许可证密钥轮换所述新的许可证密钥之前,针对所述机器池中的每个版本随机生成所述新的许可证密钥。
4.根据权利要求2所述的计算机实现的方法,其中针对所述到期的许可证密钥的所述新的许可证密钥的所述轮换包括:
当所述到期的许可证密钥被检测到时或者当所述新机器规范被创建时,标识机器以用于从所述机器池中轮换。
5.根据权利要求4所述的计算机实现的方法,其中针对所述到期的许可证密钥的所述新的许可证密钥的所述轮换包括:
停止将一个或多个新作业指派给所标识的所述机器,以及
将所标识的所述机器移动到试用状态。
6.根据权利要求5所述的计算机实现的方法,其中针对所述到期的许可证密钥的所述新的许可证密钥的所述轮换包括:
从所述机器池中删除处于所述试用状态的所述机器。
7.根据权利要求6所述的计算机实现的方法,其中针对所述到期的许可证密钥的所述新的许可证密钥的所述轮换包括:
基于所述新机器规范供应新机器,以及
基于新机器规范将新的许可证密钥指派给新机器。
8.一种被体现在非瞬态计算机可读介质上的计算机程序,所述计算机程序被配置为使一个或多个处理器用自带机器(BYOM)创建和/或编辑机器池,所述计算机程序还被配置为使所述一个或多个处理器:
用静态机器列表创建和/或编辑机器池;
取回用户输入机器列表和现有机器列表,并且将所述用户输入机器列表与所述现有机器列表进行比较以标识所述用户输入机器列表与所述现有机器列表之间的一个或多个变化;
当所述用户输入机器列表与所述现有机器列表之间的所述一个或多个变化被标识时,创建新机器规范;以及
将一个或多个机器移动或导入到所述新机器规范。
9.根据权利要求8所述的计算机程序,其中所述计算机程序还被配置为使所述一个或多个处理器:
当所述新机器规范被创建时,针对到期的许可证密钥轮换新的许可证密钥,其中:
所述新的许可证密钥支持所述一个或多个机器连接至基于云的生态系统。
10.根据权利要求9所述的计算机程序,其中所述计算机程序还被配置为使所述一个或多个处理器:
在用所述到期的许可证密钥轮换所述新的许可证密钥之前,针对所述机器池中的每个版本随机生成所述新的许可证密钥。
11.根据权利要求10所述的计算机程序,其中所述计算机程序还被配置为使所述一个或多个处理器:
当所述到期的许可证密钥被检测到时或者当所述新机器规范被创建时,标识机器以用于从所述机器池中轮换。
12.根据权利要求11所述的计算机程序,其中所述计算机程序还被配置为使所述一个或多个处理器:
停止将一个或多个新作业指派给所标识的所述机器,以及
将所标识的所述机器移动到试用状态。
13.根据权利要求12所述的计算机程序,其中所述计算机程序还被配置为使所述一个或多个处理器:
从所述机器池中删除处于所述试用状态的所述机器。
14.根据权利要求12所述的计算机程序,其中所述计算机程序还被配置为使所述一个或多个处理器:
基于所述新机器规范供应新机器,以及
基于新机器规范将新的许可证密钥指派给新机器。
15.一种用自带机器(BYOM)创建和/或编辑机器池的系统,包括:
存储器,被配置为存储一个或多个计算机可执行指令;以及
一个或多个处理器,被配置为执行所述一个或多个指令以执行:
用静态机器列表创建和/或编辑机器池;
取回用户输入机器列表和现有机器列表,并且将所述用户输入机器列表与所述现有机器列表进行比较以标识所述用户输入机器列表与所述现有机器列表之间的一个或多个变化;
当所述用户输入机器列表与所述现有机器列表之间的所述一个或多个变化被标识时,创建新机器规范;以及
将一个或多个机器移动或导入到所述新机器规范。
16.根据权利要求15所述的系统,其中所述一个或多个处理器还被配置为执行所述一个或多个指令以执行:
当所述新机器规范被创建时,针对到期的许可证密钥轮换新的许可证密钥,其中:
所述新的许可证密钥支持所述一个或多个机器连接至基于云的生态系统。
17.根据权利要求16所述的系统,其中所述一个或多个处理器还被配置为执行所述一个或多个指令以执行:
在用所述到期的许可证密钥轮换所述新的许可证密钥之前,针对所述机器池中的每个版本随机生成所述新的许可证密钥。
18.根据权利要求17所述的系统,其中所述一个或多个处理器还被配置为执行所述一个或多个指令以执行:
当所述到期的许可证密钥被检测到时或者当所述新机器规范被创建时,标识机器以从所述机器池中轮换。
19.根据权利要求18所述的系统,其中所述一个或多个处理器还被配置为执行所述一个或多个指令以执行:
停止将一个或多个新作业指派给所标识的所述机器,以及
将所标识的所述机器移动到试用状态。
20.根据权利要求19所述的系统,其中所述一个或多个处理器还被配置为执行所述一个或多个指令以执行:
从所述机器池中删除处于所述试用状态的所述机器。
21.根据权利要求20所述的系统,其中所述一个或多个处理器还被配置为执行所述一个或多个指令以执行:
基于所述新机器规范供应新机器,以及
基于新机器规范将新的许可证密钥指派给新机器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/233,454 US11928521B2 (en) | 2021-04-17 | 2021-04-17 | Bring your own machine (BYOM) |
US17/233,454 | 2021-04-17 | ||
PCT/US2021/056959 WO2022220874A1 (en) | 2021-04-17 | 2021-10-28 | Bring your own machine (byom) |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115552376A true CN115552376A (zh) | 2022-12-30 |
Family
ID=83558147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180004314.7A Pending CN115552376A (zh) | 2021-04-17 | 2021-10-28 | 自带机器(byom) |
Country Status (6)
Country | Link |
---|---|
US (1) | US11928521B2 (zh) |
EP (1) | EP4097588A4 (zh) |
JP (1) | JP2024517364A (zh) |
KR (1) | KR20220143983A (zh) |
CN (1) | CN115552376A (zh) |
WO (1) | WO2022220874A1 (zh) |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1965330A3 (en) | 2007-02-28 | 2010-02-10 | Ricoh Company, Ltd. | Information processing system, information processor, image forming apparatus, and information processing method |
US8141090B1 (en) * | 2007-04-24 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Automated model-based provisioning of resources |
US9588511B2 (en) | 2007-08-03 | 2017-03-07 | Hurco Companies, Inc. | Virtual machine manager |
KR101053680B1 (ko) | 2009-04-13 | 2011-08-02 | 계영티앤아이 (주) | 소프트웨어 관리장치 및 방법, 이에 의해 제어되는 사용자 단말 및 이의 관리방법 |
US8381266B2 (en) | 2009-10-27 | 2013-02-19 | Computer Associates Think, Inc. | Method and system for machine identification |
JP5678508B2 (ja) * | 2010-07-29 | 2015-03-04 | 日本電気株式会社 | シンクライアントシステム、管理サーバ、仮想マシン作成管理方法及び仮想マシン作成管理プログラム |
US9369433B1 (en) * | 2011-03-18 | 2016-06-14 | Zscaler, Inc. | Cloud based social networking policy and compliance systems and methods |
US9372735B2 (en) | 2012-01-09 | 2016-06-21 | Microsoft Technology Licensing, Llc | Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool |
US9846899B1 (en) * | 2012-08-31 | 2017-12-19 | Amazon Technologies, Inc. | Dynamic software licensing |
US9143926B2 (en) * | 2012-09-06 | 2015-09-22 | Dell Products, Lp | Method and apparatus for context aware management of location optimization of virtual machines for mobility and real-time enterprise applications |
US8997242B2 (en) | 2012-11-09 | 2015-03-31 | International Business Machines Corporation | Methods and apparatus for software license management |
US20140282916A1 (en) * | 2013-03-15 | 2014-09-18 | Aerohive Networks, Inc. | Access authorization through certificate validation |
US9313203B2 (en) * | 2013-03-15 | 2016-04-12 | Symantec Corporation | Systems and methods for identifying a secure application when connecting to a network |
US10769605B2 (en) | 2013-07-02 | 2020-09-08 | Infinera Corporation | Modulation format change and license updating |
US9218463B2 (en) * | 2014-02-21 | 2015-12-22 | Venafi, Inc. | Trust map management and user interface |
US20150281276A1 (en) * | 2014-03-26 | 2015-10-01 | Juniper Networks, Inc. | Monitoring compliance with security policies for computer networks |
US9613190B2 (en) * | 2014-04-23 | 2017-04-04 | Intralinks, Inc. | Systems and methods of secure data exchange |
US11068136B1 (en) * | 2014-11-11 | 2021-07-20 | Amazon Technologies, Inc. | Application fulfillment platform with automated license management mechanisms |
US10289814B2 (en) * | 2014-12-23 | 2019-05-14 | Intel Corporation | Licensing in the cloud |
CN105389215A (zh) | 2015-11-13 | 2016-03-09 | 中标软件有限公司 | 一种虚拟机池动态配置方法 |
WO2018129271A1 (en) | 2017-01-05 | 2018-07-12 | Soroco Private Limited | Systems and methods for executing software robot computer programs on virtual machines |
US10459666B2 (en) * | 2017-03-03 | 2019-10-29 | Commvault Systems, Inc. | Using storage managers in respective data storage management systems for license distribution, compliance, and updates |
US10045174B1 (en) | 2017-03-08 | 2018-08-07 | Vmware, Inc. | Managed device migration and configuration |
CN107038064B (zh) | 2017-04-18 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 虚拟机管理方法及装置、存储介质 |
US11005876B2 (en) | 2017-05-11 | 2021-05-11 | Tenable, Inc. | Elastic asset-based licensing model for use in a vulnerability management system |
US11176443B1 (en) * | 2017-12-21 | 2021-11-16 | Automation Anywhere, Inc. | Application control and text detection from application screen images |
US11042458B2 (en) * | 2018-04-30 | 2021-06-22 | Accenture Global Solutions Limited | Robotic optimization for robotic process automation platforms |
US11625312B2 (en) * | 2019-03-28 | 2023-04-11 | Bank Of America Corporation | System for continuous management and monitoring of robotic process automation bots |
US11571811B2 (en) | 2019-10-15 | 2023-02-07 | UiPath, Inc. | Process evolution for robotic process automation and workflow micro-optimization |
US20220156124A1 (en) * | 2020-08-31 | 2022-05-19 | Turbonomic, Inc. | Systems and methods for managing resources in a virtual desktop infrastructure |
-
2021
- 2021-04-17 US US17/233,454 patent/US11928521B2/en active Active
- 2021-10-28 CN CN202180004314.7A patent/CN115552376A/zh active Pending
- 2021-10-28 JP JP2021577331A patent/JP2024517364A/ja active Pending
- 2021-10-28 WO PCT/US2021/056959 patent/WO2022220874A1/en active Application Filing
- 2021-10-28 EP EP21824267.5A patent/EP4097588A4/en active Pending
- 2021-10-28 KR KR1020217043103A patent/KR20220143983A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
US20220334885A1 (en) | 2022-10-20 |
US11928521B2 (en) | 2024-03-12 |
EP4097588A4 (en) | 2023-09-13 |
WO2022220874A1 (en) | 2022-10-20 |
EP4097588A1 (en) | 2022-12-07 |
KR20220143983A (ko) | 2022-10-25 |
JP2024517364A (ja) | 2024-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102227687B1 (ko) | 로봇 프로세스 자동화를 위한 자동화 윈도우 | |
US11738453B2 (en) | Integration of heterogeneous models into robotic process automation workflows | |
CN113011828A (zh) | 更新或重新训练并更新动态人工智能/机器学习模型 | |
KR20220078587A (ko) | 인공 지능을 사용한 로봇 프로세스 자동화를 위한 모델 선택 및 체인화 | |
CN115243838A (zh) | 针对机器人流程自动化(rpa)机器人的会话间自动化 | |
CN114586016A (zh) | 在机器人流程自动化的确定性工作流中插入概率性模型和监管系统 | |
JP2022552468A (ja) | ロボティック・プロセス・オートメーション及びワークフローのマイクロ最適化のためのプロセス進化 | |
US11016789B2 (en) | Robot browser embedding | |
CN113168168B (zh) | 经由在第二会话中运行的机器人流程自动化机器人使在第一会话中运行的过程自动化 | |
CN116529032A (zh) | 用于机器人流程自动化(rpa)的支持机器人的任务自动化 | |
CN113168335A (zh) | 用于机器人流程自动化的应用集成 | |
CN114556377A (zh) | 机器人过程自动化中的强化学习 | |
CN114556387A (zh) | 针对机器人过程自动化工作流的可重新配置工作台流水线 | |
TW202219666A (zh) | 經由在第二通信期中運行的機器人程序自動化機器人使在第一通信期中運行的程序自動化 | |
US11507059B1 (en) | System and computer-implemented method for seamless consumption of automations | |
EP3806419A1 (en) | Robot browser embedding | |
US11928521B2 (en) | Bring your own machine (BYOM) | |
CN114127696A (zh) | 用于机器人过程自动化的测试自动化 | |
CN113168169A (zh) | 用于机器人过程自动化的测试自动化 | |
US12026535B2 (en) | System and computer-implemented method for controlling a robot of a virtual machine | |
US20220191167A1 (en) | Organizational modelling for routing rpa related services of an rpa cloud suite | |
US20230102169A1 (en) | System and computer-implemented method for controlling a robot of a virtual machine | |
US20220091908A1 (en) | Filter instantiation for process graphs of rpa workflows | |
WO2023069125A1 (en) | Mapping interactive ui elements to rpa object repositories for rpa development |
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 |