一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于远程本地自动化解耦合的方法和装置与流程

2022-02-20 04:47:19 来源:中国专利 TAG:

用于远程本地自动化解耦合的方法和装置
1.相关申请的交叉引用
2.本技术要求于2019年12月30日提交的美国申请号16/730,524的权益,其内容通过引入并入本文。


背景技术:

3.当在虚拟机(vm)环境中使应用自动化时,由于vm应用以图像的形式呈现,所以难以检测用户界面(ui)元素。存在需要向vm应用的用户界面提供本地自动化能力的工具。自动化工具的版本升级在vm自动化的运行时期间创建兼容性问题。


技术实现要素:

4.本技术针对使机器人过程自动化(rpa)工具的不同版本与要被自动化的vm应用向后兼容。所安装的驱动(driver)的解耦合被执行,以用于vm应用的自动化,并且驱动的适当版本被加载,以用于执行特定的自动化请求。
附图说明
5.从以下结合附图以示例方式给出的描述中可以得到更详细的理解,其中附图中相同的附图标记指示相同的元素,并且其中:
6.图1a是机器人过程自动化(rpa)开发、设计、操作或执行的图示;
7.图1b是rpa开发、设计、操作或执行的另一图示;
8.图1c是计算系统或环境的图示;
9.图2是根据示例实施例的虚拟机环境的示例系统图;以及
10.图3是根据示例实施例的执行远程本地自动化解耦合的示例方法的流程图。
具体实施方式
11.虽然以下提供了更详细的描述,但是简单地说,uipath通过在客户端机器上安装扩展程序以及在应用服务器上安装远程运行时组件来允许本地自动化。这允许ui自动化活动(诸如,点击、键入、获得文本、提取数据、以及更多基于选择器的uipath)使用独立计算架构(ica)或远程桌面服务(rdp)通道上的消息传递来获得更高的可靠性和性能。然而,如下所述,利用了机器人过程自动化(rpa)工具的不同版本与虚拟化应用的兼容性。
12.对于在本文中描述的方法和过程,所记载的步骤可以以任何顺序无序地执行,并且可以执行未明确描述或示出的子步骤。附加地,“耦合”或“可操作地耦合”可以指对象被链接,但在所链接的对象之间可以具有零个或多个中间对象。而且,在一个或多个实施例中,可以使用所公开的特征/元素的任何组合。当使用“a或b”时,它可以包括a、b或a和b,这可以类似地扩展到更长的列表。当使用符号x/y时,它可以包括x或y。备选地,当使用符号x/y时,它可以包括x和y。x/y符号可以类似地扩展到具有相同解释逻辑的较长列表。
13.图1a是机器人过程自动化(rpa)开发、设计、操作或执行100的图示。有时被称为工
作室、开发平台、开发环境等的设计方102可以被配置为生成用于机器人对一个或多个工作流执行或自动化的代码、指令、命令等。根据计算系统可以提供给机器人的(多个)选择,机器人可以确定由用户或操作员选择的视觉显示的(多个)区域的代表数据。作为rpa的部分,诸如正方形、矩形、圆形、多边形、自由形式等的多维形状可以被用于与计算机视觉(cv)操作或机器学习(ml)模型相关的ui机器人开发和运行时间。
14.可以由工作流完成的操作的非限制性示例可以是执行登录、填写表格、信息技术(it)管理等中的一个或多个。不论应用访问或应用开发,为了运行用于ui自动化的工作流,机器人可能需要唯一地标识特定的屏幕元素,诸如按钮、复选框、文本字段、标签等。应用访问的示例可以是本地、虚拟、远程、云、问的示例可以是本地、虚拟、远程、云、远程桌面、虚拟桌面基础结构(vdi)等。应用开发的示例可以是win32、java、flash、超文本标记语言(html)、html5、可扩展标记语言(xml)、javascript、c#、c 、silverlight等。
15.工作流可以包括但不限于任务序列、流程图、有限状态机(fsm)、全局异常处理程序等。任务序列可以是用于处理一个或多个应用或窗口之间的线性任务的线性过程。流程图可以被配置为处理复杂的业务逻辑,使能够借助多个分支逻辑运算符、以更多样的方式来集成决策和连接活动。fsm被配置用于大工作流。fsm可以在其执行中使用有限数量的状态,其执行可以由条件、转换、活动等触发。全局异常处理程序可以被配置为在遇到执行错误时,确定工作流行为,以用于调试过程等。
16.机器人可以是应用、小应用程序、脚本等,其可以使对底层操作系统(os)或硬件透明的ui自动化。在部署时,一个或多个机器人可以由指挥方104管理、控制等,指挥方104有时被称为编排器。指挥方104可以指示或命令(多个)机器人或自动化执行程序106执行或监视主机、web、虚拟机、远程机器、虚拟桌面、企业平台、(多个)桌面应用、浏览器等客户端、应用或程序中的工作流。指挥方104可以用作中心或半中心点,以指示或命令多个机器人使计算平台自动化。
17.在某些配置中,指挥方104可以被配置用于供应、部署、配置、排队、监视、日志记录和/或提供互连性。供应可以包括创建和维护(多个)机器人或自动化执行器106和指挥方104之间的连接或通信。部署可以包括确保向所分配的机器人递送程序包版本,以供执行。配置可以包括机器人环境和过程配置的维护和递送。排队可以包括提供对队列和队列项的管理。监视可以包括跟踪机器人标识数据并且维护用户权限。日志记录可以包括将日志存储和索引到数据库(例如,sql数据库)和/或另一存储机制(例如,其提供存储和快速查询大数据集的能力)。指挥方104可以通过充当针对第三方解决方案和/或应用的集中式通信点来提供互连性。
18.(多个)机器人或自动化执行器106可以被配置为无人看管108或有人看管110。对于无人看管的108操作,自动化可以在没有第三方输入或控制的情况下执行。对于有人看管的操作110,自动化可以通过从第三方组件接收输入、命令、指令、指导等来执行。无人看管的108或有人看管的110机器人可以在移动计算或移动设备环境上运行或执行。
19.(多个)机器人或自动化执行器106可以是执行代理,该执行代理运行设计方102中所构建的工作流。用于ui或软件自动化的(多个)机器人的商业实例是uipath robots
tm
。在一些实施例中,(多个)机器人或自动化执行器106可以默认地安装微软服务控
制管理器(scm)管理的服务。结果,这样的机器人可以在本地系统账户下打开交互式会话,并且具有服务的权限。
20.在一些实施例中,(多个)机器人或自动化执行器106可以以用户模式安装。这些机器人可以具有与安装给定机器人的用户相同的权限。该特征还可用于高密度(hd)机器人,其确保在诸如hd环境中以最大性能完全利用每个机器。
21.在某些配置中,(多个)机器人或自动化执行器106可以被分割、分布或类似地划分为多个组件,每个组件专用于特定的自动化任务或活动。机器人组件可以包括scm管理的机器人服务、用户模式机器人服务、执行器、代理、命令行等。scm管理的机器人服务可以管理或监视会话并且充当指挥方104和执行主机(即,在其上执行(多个)机器人或自动化执行器106的)之间的代理。这些服务可以信任(多个)机器人或自动化执行器106并且管理其凭证。
22.用户模式机器人服务可以管理和监视会话,并且作为指挥方104和执行主机之间的代理。用户模式机器人服务可以被信任并且管理针对机器人的凭证。如果scm管理的机器人服务未被安装,则应用可以自动启动。
23.执行器可以在会话下运行给定作业(即,它们可以执行工作流)。执行器可以知道每监视点每英寸(dpi)设置。代理可以是在系统托盘窗口中显示可用作业的展现架构(wpf)应用。代理可以是服务的客户端。代理可以请求开始或停止作业并且改变设置。命令行可以是服务的客户端。命令行是可以请求启动作业并且等待其输出的控制台应用。
24.在其中(多个)机器人或自动化执行器106的组件如上所述被拆分的配置中,帮助开发者、支持用户和计算系统更容易地运行、标识和跟踪每个组件的执行。可以使用这种方式为每个组件配置特定行为,诸如针对执行器和服务建立不同的防火墙规则。在一些实施例中,执行器可以知道每个监视器的dpi设置。结果,不论在其上创建工作流的计算系统的配置,工作流可以在任何dpi处执行。来自设计方102的项目也可以独立于浏览器缩放级别。对于不知道dpi或有意被标记为不知道的应用,dpi在一些实施例中可以被禁用。
25.图1b是rpa开发、设计、操作或执行120的另一图示。工作室组件或模块122可以被配置为生成用于机器人执行一个或多个活动124的代码、指令、命令等。用户界面(ui)自动化126可以由客户端上、使用一个或多个驱动组件128的机器人来执行。机器人可以使用计算机视觉(cv)活动模块或引擎130来执行活动。机器人可以将其它驱动132用于ui自动化来获得ui元素。它们可以包括os驱动、浏览器驱动、虚拟机驱动、企业驱动等。在某些配置中,cv活动模块或引擎130可以是用于ui自动化的驱动。
26.图1c是计算系统或环境140的图示,计算系统或环境140可以包括总线142或用于通信信息或数据的其它通信机制,以及与总线142耦合以用于处理的一个或多个处理器144。一个或多个处理器144可以是任何类型的通用或专用处理器,包括中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)、控制器、多核处理单元、三维处理器、量子计算设备或其任何组合。一个或多个处理器144还可以具有多
中。机器人v1 2201经由rpc通道而与插件2301的rpc服务器2311通信,并且rpc服务器2311与虚拟通道客户端2321通信。每个客户端设备210可以被用于在vm环境中运行的不同应用。例如,客户端设备2101可以运行记账应用,记账应用以一个版本的驱动运行,而客户端设备2102可以被用于人力资源应用并且要求应用以不同版本的驱动运行。
34.包括dll 2212(例如,uipath.dll)的机器人v2 2202(例如,uipath机器人)和包括rpc服务器2311和虚拟通道客户端2321的插件2202(例如,citrix插件)被包括在客户端设备2102中。机器人v2 2202经由rpc通道而与插件2302的rpc服务器2312通信,并且rpc服务器2312与虚拟通道客户端2322通信。
35.应用服务器240包括远程运行时组件250,远程运行时组件250包括虚拟通道服务器251、第一远程执行器2601(远程执行器1)和第二远程执行器2602(远程执行器2)。虚拟通道服务器251与第一远程执行器2601和第二远程执行器2602两者通信。机器人2201和2202的虚拟通道客户端2321和2322分别使用独立计算架构(ica)虚拟通道协议而与虚拟通道服务器251通信。
36.第一远程执行器2601包括dll(uipath.dll v1)2611和uiremote驱动2621。第二远程执行器2602包括dll(uipath.dll v2)2612和uiremote驱动2622。尽管两个远程执行器(例如,2601和2602)被示出,但是可以使用任何数目的远程执行器。
37.图3是根据示例实施例的执行远程本地自动化解耦合的示例方法300的流程图。在步骤310中,多个rpa工具版本被加载到应用服务器上。例如,返回参考图2,第一远程执行器2601和第二远程执行器2602分别具有所加载的驱动版本1和2。应用服务器然后经由远程运行时应用而从客户端设备(例如,设备2101或2102)接收请求(步骤220)。
38.例如,再次参考图2,远程运行时组件250从插件2302接收请求。应用服务器240读取针对驱动版本请求的请求(步骤330)。应用服务器250然后根据所请求的驱动版本来加载驱动版本(步骤340)。在本示例中,如果版本请求针对版本2,则远程运行时组件250访问针对uiremote驱动2622的远程执行器2602。应用服务器250然后根据所请求的驱动版本(例如,版本2)来启用虚拟应用(步骤350)。
39.应当注意,远程运行时组件250可以彼此并行或串行地接收对不同驱动的请求。例如,在步骤220中,远程运行时组件250可以与来自插件2302的请求并行地接收来自插件2301的请求两者。在该情况下,远程运行时组件250访问针对uiremote驱动2611的远程执行器2601,并且根据版本1,针对来自客户端设备2101的请求来启用虚拟应用,并且访问针对uiremote驱动2622的远程执行器2602,并且根据版本2,针对来自客户端设备2102的请求来启用虚拟应用。
40.以这样的方式,通过在客户端机器上添加扩展程序(插件)并且在应用服务器上添加远程运行时组件,该运行时组件允许使用选择器来检测针对虚拟应用的ui元素,来启用虚拟化应用的自动化。类似独立计算架构(ica)协议的虚拟通道被用于在服务器中的驱动组件与客户端中的扩展程序之间进行通信,以允许使用针对ui元素的选择器。
41.为了支持具有多个驱动版本的自动化工具,多个版本被安装在应用服务器上并且远程运行时被实现以加载多个驱动dll。当远程运行时接收到具有特定驱动版本的请求时(版本是请求消息的部分),它从所安装的程序包文件夹加载该特定驱动程序版本。尽管以上描述涉及以本地模式操作,但是应当理解,上述方法和装置也可以以非本地模式实现。
42.在本文中给出的示例中,模块可以被实现为硬件电路,硬件电路包括自定义的超大规模集成(vlsi)电路或门阵列、现成的半导体(诸如,逻辑芯片)、晶体管或其它分立元件。模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等的可编程硬件设备中实现。
43.模块可以以由各种类型的处理器执行的软件来至少部分地实现。可执行代码的标识单元可以包括计算机指令的一个或多个物理或逻辑块,计算机指令例如可以被组织为对象、过程、例程、子例程或函数。所标识的模块的可执行程序共同位于或存储在不同的位置中,使得当被逻辑地结合在一起时包括模块。
44.可执行代码模块可以是在多个不同代码段上、不同程序之间、跨多个存储器设备等分布的单个指令、一个或多个数据结构、一个或多个数据集、多个指令等。操作或功能数据在本文中可以在模块内被标识和被图示,并且可以以合适的形式被具化并且被组织在任何合适类型的数据结构内。
45.在本文给出的示例中,计算机程序可以被配置在硬件、软件或混合实现方式中。计算机程序可以由彼此有效通信并且传递信息或指令的模块组成。
46.尽管以上以特定组合描述了特征和元素,但是本领域普通技术人员将理解,每个特征或元素可以单独使用或与其他特征和元素任意组合使用。附加地,本文中所描述的方法可以在计算机可读介质中并入的计算机程序、软件或固件中实现,以由计算机或处理器执行。计算机可读介质的示例包括电子信号(通过有线或无线连接传输)和计算机可读存储介质。计算机可读存储介质的示例包括但不限于只读存储器(rom)、随机存取存储器(ram)、寄存器、高速缓存存储器、半导体存储器设备、诸如内部硬盘和可移动硬盘的磁介质、磁光介质以及诸如cd-rom盘和数字多功能盘(dvd)的光介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献