CN113168311A - 机器人浏览器嵌入 - Google Patents

机器人浏览器嵌入 Download PDF

Info

Publication number
CN113168311A
CN113168311A CN202080002315.3A CN202080002315A CN113168311A CN 113168311 A CN113168311 A CN 113168311A CN 202080002315 A CN202080002315 A CN 202080002315A CN 113168311 A CN113168311 A CN 113168311A
Authority
CN
China
Prior art keywords
robot
application
computing system
port
link
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
CN202080002315.3A
Other languages
English (en)
Inventor
E·科恩
A·萨拉夫
N·文卡特斯瓦兰
S·N·文卡特斯瓦兰
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
Application filed by Yupas Co filed Critical Yupas Co
Publication of CN113168311A publication Critical patent/CN113168311A/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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming 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/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Game Theory and Decision Science (AREA)
  • Computing Systems (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • General Business, Economics & Management (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

可以从一个或多个应用中调用一个或多个机器人,以用于机器人流程自动化(RPA)。从应用调用机器人的过程可以包括从计算系统启动应用以调用被嵌入在应用内的机器人链接。该过程还可以包括从应用发起端口发现过程以标识端口、端口详细信息和令牌。该过程还可以包括:由应用生成随机化的代码,以及调用从计算系统的用户请求批准的同意应用,以从应用中调用机器人。该过程还可以包括向本地监听器模块注册随机化的代码,并向全局监听器模块传递用户信息和令牌。该过程还可以包括:从全局监听器模块接收令牌和端口标识,从而允许应用向机器人认证自身并与机器人进行通信,从而完成机器人调用处理。

Description

机器人浏览器嵌入
相关申请的交叉引用
本申请要求于2019年12月6日提交的美国非临时专利申请No.16/706,581的权益,该申请依据35U.S.C.§119要求于2019年10月11日提交的印度专利申请No.201911041286的优先权。这些在先提交的申请的技术方案的全部内容通过引用并入本文。
技术领域
本发明总体上涉及机器人流程自动化(RPA),更具体地说,涉及从一个或多个应用中为RPA调用机器人过程。
背景技术
在本地计算机上运行的机器人通常由机器人托盘(“tray”)或指挥器应用编程接口(API)调用。无论哪种情况,用户都可以通过机器人托盘或指挥器API来调用机器人。但是,当用户在一个或多个不同的应用上工作时,用户将无法物理调用(多个)机器人。
因此,调用一个或多个机器人而不到达机器人托盘或指挥器API可能是有益的。
发明内容
本发明的某些实施例可以提供对于本领域中尚未由RPA技术完全标识、理解或解决的问题和需求的解决方案。例如本发明的一些实施例涉及从一个或多个应用调用一个或多个机器人过程。
在一个实施例中,一种计算机实现的方法,包括:从所述计算系统启动应用以调用嵌入在所述应用内的机器人链接。该方法还包括从所述应用发起端口发现过程以标识端口、端口详细信息和令牌。该方法还包括由所述应用生成随机化的代码,并调用请求所述计算系统的用户的批准的同意应用以从所述应用调用所述机器人;以及向本地监听器模块注册所述随机化的代码并向全局监听器模块传递所述用户信息和所述令牌。该方法还包括从所述全局监听器模块接收所述令牌和所述端口标识,允许所述应用利用所述机器人认证自身并与所述机器人通信,从而促进机器人交互过程。
在另一个实施例中,一种计算机程序被体现在非暂时性计算机可读介质上。所述计算机程序被配置为使至少一个处理器:从所述计算系统启动应用以调用嵌入在所述应用内的机器人链接。该计算机程序还被配置为使至少一个处理器从所述应用发起端口发现过程以标识端口、端口细节和令牌。该计算机程序还被配置为使至少一个处理器由所述应用生成随机化的代码,并调用请求来自所述计算系统的用户的批准的同意应用,以从所述应用调用所述机器人。另外,该计算机程序还被配置为使至少一个处理器向本地监听器模块注册所述随机化的代码,并向全局监听器模块传递用户信息和令牌;以及从所述全局监听器模块接收所述令牌和端口标识,允许所述应用利用所述机器人认证自身并与所述机器人通信,从而促进机器人交互过程。
在又一个实施例中,一种系统包括:存储器,存储计算机程序指令;以及至少一个处理器,被配置为执行计算机程序指令,所述指令被配置为使所述至少一个处理器:从所述计算系统启动应用以调用嵌入在所述应用内的机器人链接。该指令还被配置为使所述至少一个处理器从所述应用发起端口发现过程以标识端口、端口详细信息和令牌;由所述应用生成随机化的代码并调用请求来自计算系统的用户的批准的同意应用,以从应用调用机器人。该指令还被配置为使所述至少一个处理器向本地监听器模块注册所述随机化的代码,并向全局监听器模块传递用户信息和所述令牌;以及从所述全局监听器模块接收所述令牌和端口标识,从而允许所述应用利用所述机器人认证自身并与所述机器人通信,从而促进了机器人交互过程。
附图说明
为了容易地理解本发明的某些实施例的优点,将通过参考在附图中图示的特定实施例来呈现上文简要描述的本发明的更具体的描述。虽然应理解,这些图仅描绘了本发明的典型实施例,并且因此不应该被认为是对本发明的范围的限制,但是本发明将通过附图的使用以附加的特异性和细节来描述和阐释,在附图中:
图1是图示了根据本发明的实施例的机器人流程自动化(RPA)系统的架构图。
图2是图示了根据本发明的实施例的部署的RPA系统的架构图。
图3是图示了根据本发明的实施例的设计器、活动与驱动之间的关系的架构图。
图4是图示了根据本发明的实施例的RPA系统的架构图。
图5是示出了根据本发明的实施例的被配置为从应用调用机器人的计算系统的架构图。
图6是示出了根据本发明的实施例的用于在一个或多个会话与机器人托盘之间进行通信的桌面配置的框图。
图7是示出了根据本发明的实施例的端口发现过程的流程图。
图8是示出了根据本发明的实施例的认证过程的流程图。
图9是示出了根据本发明的实施例的机器人服务交互过程的流程图。
图10是示出了根据本发明的实施例的用于促进机器人交互过程的过程的流程图。
具体实施方式
一些实施例涉及从一个或多个应用中调用一个或多个机器人以进行机器人流程自动化(RPA)。应用可以定义为计算机上的任意应用,其可以嵌入到浏览器中或运行超文本标记语言(HTML)和JavaScript(JS)代码。换句话说,应用不限于“基于网络的应用”,并且可以是可用于调用机器人的任意应用。为了说明的目的,将使用术语“应用”。在某些实施例中,可用于调用机器人的应用可能来自不受信任的域。在一些实施例中,机器人链接被嵌入到一个或多个应用中,从而允许一个或多个机器人被调用。在一个实施例中,计算系统的用户启动应用以调用嵌入在应用内的机器人链接。从该应用,可以发起端口发现过程以标识端口、端口详细信息和令牌。然后,该应用可以生成随机化的代码,并调用请求计算系统用户的批准的同意应用,以从该应用中调用机器人。可以向本地监听器模块注册随机化的代码,并且可以将用户信息和令牌转发到全局监听器模块。可以从全局监听器模块接收令牌和端口标识,从而允许应用利用机器人认证自身并与机器人进行通信。
图1是图示了根据本发明的实施例的RPA系统100的架构图。RPA系统100包括允许开发者设计和实现工作流程的设计器110。设计器110可以提供用于应用集成以及自动化第三方应用、管理信息技术(IT)任务和业务IT过程的解决方案。设计器110可以支持自动化项目的开发,该自动化项目是业务过程的图形表示。简而言之,设计器110支持工作流程和机器人的开发和部署。
自动化项目通过向开发者提供对在工作流程中开发的一组定制步骤(在本文中被定义为“活动”)之间的执行顺序和关系的控制来实现基于规则的过程的自动化。设计器110的实施例的一个商业示例是UiPath StudioTM。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,工作流程可以被嵌套或嵌入。
一些类型的工作流程可以包括但不限于序列、流程图、有限状态机(FSM)和/或全局异常处理程序。序列可能特别适合于线性过程,从而能够在不使工作流程混乱的情况下从一个活动流向另一活动。流程图可能特别适合于更复杂的业务逻辑,从而实现通过多个分支逻辑运算符以更为不同的方式进行的决策的集成以及活动的连接。FSM可能特别适合于较大工作流程。FSM可以在其执行中使用有限数量的状态,这些状态由条件(即,过渡)或活动触发。全局异常处理程序可能特别适合于在遇到执行误差时确定工作流程行为且特别适合于调试过程。
一旦工作流程在设计器110中被开发,业务过程的执行就由指挥器(conductor)120编排,该指挥器编排执行设计器110中所开发的工作流程的一个或多个机器人130。指挥器120的实施例的一个商业示例是UiPath OrchestratorTM。指挥器120支持对环境中的资源的创建、监测以及部署的管理。利用第三方解决方案和应用,指挥器120可以充当集成点、或充当聚合点中的一者。
指挥器120可以管理一队机器人130,从而从集中点连接并执行机器人130。可以管理的机器人130的类型包括但不限于:有人监管的(attended)机器人132、无人监管的机器人134、开发机器人(类似于无人监管的机器人134,但用于开发和测试目的)以及非生产型机器人(类似于有人监管的机器人132,但用于开发和测试目的)。有人监管的机器人132由用户事件触发并且与人类一起在相同计算系统上操作。有人监管的机器人132可以与指挥器120一起用于集中过程部署和记录介质。有人监管的机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,无法从这种类型的机器人上的指挥器120开启过程和/或这些过程无法在锁定屏幕下运行。在某些实施例中,有人监管的机器人132只可以从机器人托盘或根据命令提示而被开启。在一些实施例中,有人监管的机器人132应该在人类监督下运行。
无人监管的机器人134在虚拟环境中以无人监管的方式运行并且可以使许多过程自动化。无人监管的机器人134可以负责远程执行、监测、调度并且为工作队列提供支持。在一些实施例中,可以在设计器110中运行针对所有机器人类型的调试。有人监管的机器人和无人监管的机器人两者都可以使各种系统和应用自动化,该系统和应用包括但不限于大型主机、web应用、VM、企业应用(例如由
Figure BDA0002726736350000051
Figure BDA0002726736350000052
等生产的那些企业应用)以及计算系统应用(例如台式机和笔记本应用、移动设备应用、可穿戴计算机应用等)。
指挥器120可以具有各种能力,包括但不限于供应(provisioning)、部署(deployment)、配置(configuration)、排队(queueing)、监测(monitoring)、日志记录(logging)和/或提供互连性(interconnectivity)。供应可以包括在机器人130与指挥器120(例如web应用)之间创建和维护连接。开发可以包括确保将包(package)版本正确递送至所指派的机器人130以供执行。配置可以包括维护和递送机器人环境和过程配置。排队可以包括提供对队列和队列项的管理。监测可以包括追踪机器人标识数据和维护用户权限。日志记录可以包括将日志存储和编入索引至数据库(例如SQL数据库)和/或另一存储机制(例如
Figure BDA0002726736350000061
其提供用于存储和快速查询较大数据集的能力)。指挥器120可以通过充当第三方解决方案和/或应用的通信的集中点来提供互连性。
机器人130是运行内置于设计器110中的工作流程的执行代理。(多个)机器人130的一些实施例的一个商业示例是UiPath RobotsTM。在一些实施例中,机器人130默认安装Microsoft
Figure BDA0002726736350000062
服务控制管理器(SCM)管理的服务。结果,此类机器人130可以在本地系统账户下打开交互式
Figure BDA0002726736350000063
会话,并且具有
Figure BDA0002726736350000064
服务的权限。
在一些实施例中,机器人130可以在用户模式下被安装。针对此类机器人130,这意味着其具有与已经安装了给定机器人130的用户相同的权限。此特征也可以供高密度(HD)机器人使用,该高密度机器人确保了每台机器以其最大潜力的充分利用。在一些实施例中,任何类型的机器人130可以在HD环境中被配置。
在一些实施例中,机器人130被分成分别专用于特定自动化任务的若干组件。在一些实施例中,机器人组件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理以及命令行。SCM管理的机器人服务管理和监测
Figure BDA0002726736350000065
会话,并且充当指挥器120与执行主机(即,机器人130在其上被执行的计算系统)之间的委托。这些服务受机器人130信任并且管理机器人130的凭证。控制台应用在本地系统下由SCM启动。
在一些实施例中,用户模式机器人服务管理和监测
Figure BDA0002726736350000066
会话,并且充当指挥器120与执行主机之间的委托。用户模式机器人服务可以受机器人130信任并且管理机器人130的凭证。在未安装SCM管理的机器人服务的情况下,
Figure BDA0002726736350000071
应用可以被自动启动。
执行器可以在
Figure BDA0002726736350000072
会话下运行给定作业(即,执行器可以执行工作流程。执行器可以知道每个监测器的每英寸点数(DPI)设置。代理可以是
Figure BDA0002726736350000073
Presentation Foundation(WPF)应用,其在系统托盘窗口中显示可用的作业。代理可以是服务的客户端。代理可以请求开启或停止作业以及改变设置。命令行是服务的客户端。命令行是可以请求开启作业并等待其输出的控制台应用。
如上文所阐释一般使机器人130的组件分开帮助开发者、支持用户以及计算系统更容易地运行、标识和追踪每个组件正在执行的内容。特殊行为可以以这种方式按组件来配置,诸如针对执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可以始终知道每个监测器的DPI设置。结果,不论创建工作流程的计算系统的配置如何,工作流程都可以在任何DPI处被执行。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。在一些实施例中,针对DPI不知道的或有意地标记为不知道的应用,DPI可以被禁用。
图2是图示了根据本发明的实施例的部署的RPA系统200的架构图。在一些实施例中,RPA系统200可以是图1的RPA系统100或可以是该RPA系统的一部分。应注意,在不脱离本发明的范围的情况下,客户端侧、服务器侧或两者都可以包括任何期望数量的计算系统。在客户端侧,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可以不在计算系统210上运行。执行器212正在运行过程。如图2中所示,若干业务项目可以同时运行。在该实施例中,代理214(例如
Figure BDA0002726736350000074
服务)是所有执行器212的单个联系点。该实施例中的所有消息被日志记录到指挥器230中,该指挥器经由数据库服务器240、索引器服务器250或两者进一步处理这些消息。如上文相对于图1所讨论的,执行器212可以是机器人组件。
在某些实施例中,设计器216用于在过程上设置输入和输出。这些输入和输出可以由执行器212经由代理214来处理。此外,这些输入和输出形成在初始化期间与工作流进行通信并在执行完成期间或之后接收结果的机制。
在一些实施例中,机器人表示机器名称与用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行的多个交互式会话的计算系统(例如
Figure BDA0002726736350000081
服务器2012)上,多个机器人可以同时运行,每个机器人在使用唯一用户名的单独
Figure BDA0002726736350000082
会话中。上文将此称为HD机器人。
代理214还负责发送机器人的状态(例如周期性地发送指示机器人仍在运作的“心跳”消息)并且下载要被执行的包的所需版本。在一些实施例中,代理214与指挥器230之间的通信始终由代理214发起。在通知场景中,代理214可以打开WebSocket信道,稍后由指挥器230使用该WebSocket信道来向机器人发送命令(例如开启、停止等)。
在服务器侧,包括了呈现层(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使用
Figure BDA0002726736350000091
其为开源项目全文搜索引擎。由机器人日志记录的消息(例如使用比如日志消息或写入行的活动)可以通过(多个)日志记录的REST端点被发送到索引器服务器250,在索引器服务器250中这些消息被编入索引以供将来使用。
图3是图示了根据本发明的实施例的设计器310、活动320、330与驱动(driver)340之间的关系300的架构图。根据上文,开发者使用设计器310来开发由机器人执行的工作流程。工作流程可以包括用户定义的活动320和UI自动化活动330。一些计算机视觉(CV)活动可以包括但不限于点击、键入(type)、取得文本、悬停、元素存在、刷新范围、高亮等。在一些实施例中,点击使用例如CV、光学字符标识(OCR)、模糊文本匹配以及多锚(multi-anchor)来标识元素,并且点击该元素。键入可以使用上述内容来标识元素和该元素中的类型。取得文本可以标识特定文本的位置并且使用OCR来扫描该位置。悬停可以标识元素并且悬停于元素上方。元素存在可以使用上文所描述的技术来检查在屏幕上是否存在元素。在一些实施例中,可以存在可以在设计器310中被实现的数百个甚至数千个活动。然而,在不脱离本发明的范围的情况下,任何数量和/或类型的活动都可以是可用的。
UI自动化活动330是利用较低级代码编写的特殊的较低级活动(例如CV活动)的子集并且有助于与屏幕的交互。UI自动化活动330经由允许机器人与期望软件交互的驱动340来支持这些交互。例如,驱动340可以包括OS驱动342、浏览器驱动344、VM驱动346、企业应用驱动348等。
驱动340可以与OS进行低级交互,进而寻找挂钩、监测键等。驱动器可以有助于与
Figure BDA0002726736350000101
等的集成。例如,“点击”活动经由驱动340在这些不同应用中扮演相同角色。
图4是图示了根据本发明的实施例的RPA系统400的架构图。在一些实施例中,RPA系统400可以是或包括图1和/或图2的RPA系统100和/或200。RPA系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的web应用与指挥器计算系统420进行通信。指挥器计算系统420又能够与数据库服务器430和可选的索引器服务器440进行通信。
相对于图2和图3,应注意,虽然在这些实施例中使用了web应用,但可以在不脱离本发明的范围的情况下使用任何合适的客户端/服务器软件。例如,指挥器可以运行服务器侧应用,该服务器侧应用与客户端计算系统上的非基于网络的客户端软件应用进行通信。
图5是图示了根据本发明的实施例的被配置为从一个或多个应用调用机器人的的计算系统500的架构图。在一些实施例中,计算系统500可以是本文中所描绘和/或描述的计算系统中的一者或多者。计算系统500包括总线505或用于传送信息的其他通信机制、以及被耦合至总线505以处理信息的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、其多个实例和/或其任何组合。(多个)处理器510还可以具有多个处理核心,并且至少一些核心可以被配置为执行特定功能。在一些实施例中,可以使用多并行处理。在某些实施例中,(多个)处理器510中的至少一者可以是包括模仿生物神经的处理元件的神经形态电路。在一些实施例中,神经形态电路可以不需要冯·诺依曼计算架构的典型组件。
计算系统500还包括用于存储将由(多个)处理器510执行的信息和指令的存储器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显示器、高清显示器、
Figure BDA0002726736350000121
显示器、面内切换(IPS)显示器或用于向用户显示信息的任何其他合适的显示器。显示器525可以被配置为使用电阻性、电容性、表面声波(SAW)电容性、红外、光学成像、色散信号技术、声学脉冲标识、受抑全内反射等的触摸(触觉)显示器、三维(3D)触摸显示器、多输入触摸显示器、多触摸显示器等。可以在不脱离本发明的范围的情况下使用任何合适的显示设备和触觉I/O。
键盘530和光标控制设备535(诸如计算机鼠标、触摸板等)进一步被耦合到总线505以使得用户能够与计算系统500接口连接。然而,在某些实施例中,可以不存在物理键盘和鼠标,并且用户可以仅通过显示器525和/或触摸板(未示出)与设备交互。输入设备的任何类型和组合可以被用作设计选择的问题。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与之通信的另一计算系统与计算系统500远程地交互,或计算系统500可以自主地操作。
存储器515存储在被(多个)处理器510执行时提供功能性的软件模块。模块包括计算系统500的操作系统540。模块还包括被配置为执行本文中所描述的过程或其衍生物的全部或部分的机器人调用模块545。计算系统500可以包括一个或多个附加功能模块550,该功能模块包括附加功能性。
本领域的技术人员应了解,在不脱离本发明的范围的情况下,“系统”可以被实施为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、手机、平板计算设备、量子计算系统或任何其他合适的计算设备或设备的组合。将上文所描述的功能呈现为由“系统”执行并不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例的一个示例。实际上,本文中所公开的方法、系统和装置可以按照与包括云计算系统的计算技术一致的本地化和分布式形式来实现。
应注意,本说明书中所描述的一些系统特征已经作为模块而被呈现,以便更具体地强调其实现独立性。例如,模块可以被实现为包括定制的超大规模集成(VLSI)电路或门阵列、现成半导体(诸如逻辑芯片、晶体管或其他分立组件)的硬件电路。模块也可以被实现在可编程硬件设备中,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
模块也可以至少部分地被实现在软件中以便由各种类型的处理器执行。例如,可执行代码的所标识的单元可以包括计算机指令的一个或多个物理块或逻辑块,这些计算机指令可以例如被组织成对象、过程或功能。虽然如此,但所标识的模块的可执行文件不需要在物理上位于一处,而是可以包括存储在不同位置中的全异的指令,这些指令在以逻辑方式被结合在一起时包括该模块并且实现了该模块的既定目的。此外,模块可以被存储在计算机可读介质上,在不脱离本发明的范围的情况下,该计算机可读介质可以是例如硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他此类非瞬态计算机可读介质。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在若干不同的代码段上、分布在不同程序之间以及跨多个存储器设备分布。类似地,操作数据在本文中可以被标识和图示为在模块内,并且该操作数据可以被实施为任何合适的形式并且被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或可以分布于包括在不同存储设备上的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
图6是示出了根据本发明的实施例的用于在一个或多个用户会话602和机器人托盘之间进行通信的计算系统的桌面配置600的框图。尽管在此示例中将引用单个用户会话602,但是在桌面配置600上可能有多个会话正在执行。
在一些实施例中,用户会话602包括在网络浏览器604上运行的应用。该应用嵌入有机器人(例如经由JavaScript(JS)标准开发工具包(SDK))链接606。机器人链接606向用户提供可以从应用中调用机器人而无需到达机器人托盘的能力。在某些实施例中,机器人链接606是基于JS的SDK,并且负责简化应用与协议处理器608、超文本传输协议(HTTP)监听器610和HTTP端口发现服务612之间的端口发现、身份认证、交互和通信流。在应用决定不使用机器人链接606的实施例中,应用可以直接与协议处理程序608、HTTP监听器610和HTTP端口发现服务612交互。
为了调用机器人,用户启动应用,通过该应用访问机器人,从而使嵌入在应用中的机器人链接606调用机器人。协议处理器608,也称为定制协议处理器应用或同意应用,允许用户认证用户会话602。在一些实施例中,计算系统600允许在机器上注册定制协议处理器(也称为定制URI方案),其从机器上的任意位置调用时都可以启动特定的应用。例如http://启动浏览器或mailto://启动电子邮件客户端。在一些实施例中,协议处理器608在安装时可以注册定制协议处理器。该协议可用于调用它。
HTTP端口发现服务612,也称为全局监听器模块,在“会话0”中执行端口发现以提供端口的动态分配。应当理解,这些实施例不限于HTTP协议,并且可以使用其他通信信道或协议。在一些实施例中,HTTP端口发现服务612在计算机系统600上的众所周知的端口上操作。该众所周知的端口是机器人链接606已知的,并且用于取回认证令牌和机器人HTTP监听器610的端口发现。应当理解,这些实施例不限于HTTP监听器,并且可以使用除HTTP之外的其他协议。HTTP端口发现服务612可以被设置为在计算系统600启动时或当用户登录到计算系统600时自动开始。这样,HTTP端口发现服务612总是可用的。
此外,在一些实施例中,如果HTTP端口发现服务612尚未运行,则协议处理器608也可以开始HTTP端口发现服务612。在那些实施例中,协议处理器608可以具有提升的许可(或管理员权限)以开始HTTP端口发现。由于多个用户会话正在计算系统600上运行,因此HTTP端口发现服务612可在机器会话(或Windows中的会话0)中开始,以确保来自所有用户会话的机器人HTTP监听器610、协议处理器608和机器人链接606能够访问HTTP端口发现服务612。
在一些实施例中,HTTP端口发现服务612可以直接在用户会话602中运行。在那些实施例中,HTTP端口发现服务612和机器人HTTP监听器610被组合在单个服务中。此外,在这些实施例中,由于机器人链接606知道HTTP监听器610的众所周知的端口,因此可能不需要HTTP端口发现服务612。
回到用户会话602,机器人HTTP监听器(或本地监听器模块)610促进了应用之间经由机器人链接606和机器人托盘的通信。机器人HTTP监听器610负责与浏览器服务614交互的Web浏览器604,以运行过程并从机器人210的执行器212发送/接收数据。机器人HTTP监听器610可提供由机器人链接606使用的HTTP API。由于计算系统具有在其上运行的多个用户会话,并且为了在同一计算系统600上的不同用户之间提供安全性,机器人HTTP监听器610在用户会话602中运行,并代表特定用户与机器人服务614通信。当用户会话602启动或由协议处理程序608启动时,机器人HTTP监听器610可以开始自动与机器人服务614通信。由于计算机上的单个HTTP端口只能由
Figure BDA0002726736350000161
上的单个机器人HTTP监听器610使用,因此机器人HHTP监听器610服务每次在随机端口上启动,以避免在同一机器上活动的多个用户会话时的冲突。在每次开始时,机器人HTTP监听器610使用HTTP端口发现服务612注册运行它的选定端口和用户会话。这允许HTTP端口发现服务612将端口号提供给机器人链接606,以便在端口发现过程之后进行通信。
应当意识到,HTTP端口发现服务612和机器人HTTP监听器610两者均可以被配置为侦听本地主机或127.0.0.1,以防止其他外部机器与这些服务进行通信。这些保证由操作系统提供。
机器人服务是图2中的代理214,并且负责如上所述管理执行器212。
某些实施例可以包括端口发现过程、认证过程和机器人服务交互。应当理解,在某些实施例中,端口发现和认证过程两者均可以被组合成单个流,但是不需要这样做。在其他实施例中,这两个过程都可以分别执行。
应当进一步认识到,HTTP监听器610、协议处理器608、HTTP端口发现服务612和机器人服务614之间的通信使用用于应用的安全的认证应用和/或用于由操作系统提供的服务通道的认证服务(例如,NTLM认证)。
端口发现过程
图7是示出了根据本发明的实施例的端口发现过程700的流程图。由于机器人HTTP监听器610被配置为在任意未使用的随机端口上开始,因此机器人链接606在机器人链接606可以与端口进行通信之前,启动端口发现过程700以发现机器人HTTP监听器610的端口。
在一个实施例中,当应用使用来自机器人链接606的API并且当机器人链接606不知道该端口时,过程700在702开始于发起端口发现过程。在704处,机器人链接606在传递令牌T1的同时使用定制协议处理器来调用协议处理器608。这确保了协议处理程序608被当前用户而不是该机器上的任意其他用户会话调用。
在706处,协议处理器608将令牌T1传递到HTTP端口发现服务612。协议处理器608还传递有关其在哪个用户会话下运行的信息(例如会话0)。当机器人HTTP监听器服务610和HTTP端口发现服务612未运行时,协议处理器608还可以激活机器人HTTP监听器服务610和HTTP端口发现服务612。
在708处,机器人链接606还与HTTP端口发现服务612通信,提供令牌T1,并请求HTTP端口发现服务612提供机器人HTTP监听器610为其应当通信的端口。
在710处,HTTP端口发现服务612查看从协议处理器608接收的信息,该信息标识令牌T1属于哪个用户,然后使用注册端口列表为该特定用户标识机器人HTTP监听器610的端口。在712处,HTTP端口发现服务612用其应与之通信的机器人HTTP监听器610的端口回复给机器人链接606,从而完成端口发现过程。
认证
图8是示出了根据本发明的实施例的认证过程800的流程图。当机器人HTTP监听器610在计算系统600上的HTTP端口上运行时,即使代表另一个用户,在计算系统600上运行的任意软件也可以访问HTTP端口。这可能导致安全风险,即在计算系统600上运行的另一个用户或软件可以代表用户调用机器人过程。为了减轻这种风险,在接受调用之前,会对对机器人HTTP监听器610的每个调用进行认证和授权。这迫使机器人链接606在机器人链接606可以与其通信之前为机器人HTTP监听器610取回认证令牌。
在一些实施例中,过程800始于802,当应用使用来自机器人链接606的任意API并且当机器人链接606不知道端口时,发起端口发现过程。在804处,在端口发现处理完成之后,机器人链接606向机器人HTTP监听器610发出调用。如果机器人HTTP监听器610没有收到任意令牌或有效令牌,则机器人HTTP监听器610拒绝来自机器人链接606的调用。
当调用被拒绝时,在第二次调用机器人HTTP监听器610之前,机器人链接606需要使用有效令牌进行认证和授权。因此,在806,机器人链接606在传递令牌T1时使用自定义协议处理器来调用协议处理器608。这确保了为当前用户而不是同一计算系统600上另一个会话上的另一个用户调用协议处理器608。在一些可选实施例中,在808处,机器人链接606还在应用上显示提示,通知用户批准使用令牌T1的请求。
在810处,一旦被调用,协议处理器608就显示用户界面(UI)弹出窗口,以供用户批准来自机器人链接606的请求。在某些实施例中,令牌T1还可被示出以帮助用户认证请求,即,验证该请求来自特定的机器人链接606或应用,并且该请求不是来自计算系统600上的另一个应用或用户。
在812处,一旦用户批准请求,协议处理器608就将令牌T1传递给HTTP端口发现服务612,并且还传递关于它在哪个用户会话下运行的信息。如果协议处理器608此时未运行,则它们也可以开始机器人HTTP监听器610和HTTP端口发现服务612。
在814处,机器人链接606还与HTTP端口发现服务612通信,为HTTP端口发现服务612提供令牌T1,并请求HTTP端口发现服务612提供认证令牌T2以与机器人HTTP监听器610通信。在816处,HTTP端口发现服务612查看从协议处理器608接收的信息,以标识令牌T1属于哪个用户。HTTP端口发现服务612还使用注册服务的列表来标识该特定用户的机器人HTTP监听器610。在818处,HTTP端口发现服务612生成新令牌T2,并将令牌T2作为用于认证的有效令牌传送给机器人HTTP监听器610。令牌T2可以包括附加信息,例如其被注册的域、其创建时间、其到期时间等,以帮助进行认证流程。在820处,HTTP端口发现服务612用其正在请求的机器人HTTP监听器610的认证令牌T2来回复给机器人链接606。在822处,机器人链接606现在可以使用认证令牌T2与机器人HTTP监听器610通信,从而完成认证过程。
在某些实施例中,认证令牌T2也可以由协议处理程序608生成,并且可以与HTTP端口发现服务612和机器人HTTP监听器610通信,而不是由HTTP端口发现服务612生成认证令牌T2。
机器人服务交互
某些实施例为机器人HTTP监听器610提供了由机器人服务614提供的各种功能。例如机器人HTTP监听器610可以查询执行器212或机器人210的状态,可以与指挥器230连接和/或断开连接,列出在机器人210上可用的过程、开始、停止、暂停、终止等机器人210上的过程,查询在机器人210上运行或执行的过程的状态,和/或在开始过程时、已经执行过程或过程完成执行时发送和/或接收数据。具体地,一些实施例可以使应用能够调用RPA以从本地机器获取和/或发送数据。
图9是示出了根据本发明的实施例的机器人服务交互处理900的流程图。在一些实施例中,应用使用机器人链接606与机器人服务614进行交互。在这些实施例中,应用可以调用由机器人链接606提供的任意受支持的API/功能/操作。
在一些实施例中,过程900从902开始,其中机器人链接606确保当应用调用任意支持的API/功能/操作时,端口发现和认证完成。在904处,机器人链接606通过HTTP在机器人HTTP监听器610上调用特定的API。机器人HTTP监听器610在906处与机器人服务614通信,以执行机器人链接606请求的操作。在908处,机器人服务614与执行器212、机器人210、指挥器230或根据需要的其他任意应用通信以完成所需的操作。在910处,机器人服务614将请求的操作的结果返回给机器人HTTP监听器610,并且在912处,机器人HTTP监听器610将结果返回给机器人链接606。在914处,机器人链接606将数据返回给应用。
图10是示出了根据本发明的实施例的用于促进机器人交互过程的过程1000的流程图。在该实施例中,过程1000开始于1002,其从计算系统启动应用以调用嵌入在该应用中的机器人链接,并在1004处开始于从应用发起端口发现过程以标识端口、端口详细信息和令牌。在1006处,过程1000继续由应用生成随机化的代码并调用请求来自计算系统的用户的批准的同意应用,以从该应用调用机器人。在1008处,过程1000还执行向本地监听器模块注册随机化的代码,并将用户信息和令牌传递给全局监听器模块,并且在1010处,过程1000执行从全局监听器模块接收令牌和端口标识,从而允许应用利用机器人认证自身并与机器人通信,从而促进了机器人的交互过程。
应当理解,具有嵌入式机器人链接的应用可以构建在本地应用开发平台中,并且可以与有人监管和无人监管的机器人连接。在某些实施例中,该应用可以用作在计算系统桌面上运行的“.exe”文件,而不是网络浏览器的一部分。在一些其他实施例中,该应用可以停靠在屏幕上,使得该应用可以同时与其他应用通信。
根据本发明的实施例,图7-10中执行的过程步骤可以由计算机程序执行,该计算机程序编码有指令,该指令用于使(多个)处理器执行图7-10中所描述的(多个)过程的至少一部分。计算机程序可以被实施在非瞬态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他此类介质或介质的组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如图5的计算系统500的(多个)处理器510)以实现图7-10中所描述的过程步骤中的全部或一部分的编码指令,这些编码指令还可以被存储在计算机可读介质上。
计算机程序可以被实现在硬件、软件或混合实现中。计算机程序可以由彼此可操作地通信并且被设计成传递信息或指令以进行显示的模块组成。计算机程序可以被配置为在通用计算机、ASIC或任何其他合适的设备上操作。
将容易地理解,如本文中的诸图中大体上描述和图示的,本发明的各种实施例的组件可以以多种不同配置来布置和设计。因此,如附图中所表示,对本发明的实施例的详细描述并不旨在限制所要求保护的本发明的范围,而是仅仅表示本发明的所选择的实施例。
贯穿本说明书描述的本发明的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。例如,贯穿本说明书,对“某些实施例”、“一些实施例”或类似语言的参考是指结合实施例所描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书,短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言的出现并不一定全都是指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
应注意,贯穿本说明书,对特征、优点或类似语言的参考并不意味着可以用本发明实现的所有特征和优点都应该在或都在本发明的任何单个实施例中。相反,涉及特征和优点的语言被理解为是指结合实施例所描述的特定特征、优点或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书,对特征和优点以及类似语言的讨论可以但并不一定是指相同实施例。
此外,本发明的所描述的特征、结构和特性可以在一个或多个实施例中以任何合适的方式组合。相关领域的技术人员应认识到,可以在不具有特定实施例的特定特征或优点中的一者或多者的情况下实践本发明。在其他情况下,可以不存在于本发明的所有实施例中的附加特征和优点在某些实施例中可能被识别。
本领域的普通技术人员应容易地理解,可以利用不同顺序的步骤和/或利用与所公开的配置不同的配置的硬件元件来实践如上文所描述的本发明。因此,尽管已经基于这些优选实施例描述了本发明,但对于本领域的技术人员而言将明显的是,某些修改、变型和备选构造将是明显的,同时仍在本发明的精神和范围内。因此,为了确定本发明的界限和边界,应当参考所附权利要求书。

Claims (21)

1.一种计算机实现的方法,包括:
从所述计算系统启动应用以调用被嵌入在所述应用内的机器人链接;
从所述应用发起端口发现过程以标识端口、端口详细信息和令牌;
由所述应用生成随机化的代码,并且调用从所述计算系统的用户请求批准的同意应用,以从所述应用调用所述机器人;
向本地监听器模块注册所述随机化的代码,并且向全局监听器模块传递用户信息和所述令牌;以及
从所述全局监听器模块接收所述令牌和端口标识,从而允许所述应用向所述机器人认证自身并与所述机器人通信,从而促进机器人交互过程。
2.根据权利要求1所述的计算机实现的方法,其中用于调用所述机器人链接的所述应用来自不受信任的域。
3.根据权利要求1所述的计算机实现的方法,其中所述机器人交互过程的所述促进包括:
由所述机器人链接通过通信介质调用机器人监听器模块上的特定的应用编程接口(API)。
4.根据权利要求3所述的计算机实现的方法,其中所述机器人监听器模块被配置为查询执行器或者所述机器人的状态,与指挥器连接、断开连接或者两者,列出在所述机器人上可用的可用过程,开始、停止、暂停和/或终止所述机器人上的过程,查询在所述机器人上运行或者被执行的过程的状态,和/或在开始过程、已执行所述过程的同时或者在所述过程完成执行时发送和/或接收数据。
5.根据权利要求3所述的计算机实现的方法,其中所述机器人交互过程的所述促进还包括:
由所述机器人监听器模块与机器人服务进行通信,以执行由所述机器人链接所请求的操作。
6.根据权利要求5所述的计算机实现的方法,其中所述机器人交互过程的所述促进还包括:
由所述机器人服务与执行器、机器人和/或指挥器进行通信,以完成所请求的所述操作。
7.根据权利要求6所述的计算机实现的方法,其中所述机器人交互过程的所述促进还包括:
通过所述机器人监听器和所述机器人链接,从所述机器人服务向所述应用返回到所请求的所述操作的结果。
8.一种被体现在非瞬态计算机可读介质上的计算机程序,所述计算机程序被配置为使至少一个处理器:
从所述计算系统启动应用以调用被嵌入在所述应用内的机器人链接;
从所述应用发起端口发现过程以标识端口、端口详细信息和令牌;
由所述应用生成随机化的代码,并且调用从所述计算系统的用户请求批准的同意应用,以从所述应用调用所述机器人;
向本地监听器模块注册所述随机化的代码,并且向全局监听器模块传递用户信息和所述令牌;以及
从所述全局监听器模块接收所述令牌和端口标识,从而允许所述应用向所述机器人认证自身并与所述机器人通信,从而促进机器人交互过程。
9.根据权利要求8所述的计算机程序,其中用于调用所述机器人链接的所述应用来自不受信任的域。
10.根据权利要求8所述的计算机程序,其中所述计算机程序还被配置为使至少一个处理器:
由所述机器人链接通过通信介质调用机器人监听器模块上的特定的应用编程接口(API)。
11.根据权利要求10所述的计算机程序,其中所述机器人监听器模块被配置为查询执行器或者所述机器人的状态,与指挥器连接、断开连接或者两者,列出在所述机器人上可用的可用过程,开始、停止、暂停和/或终止所述机器人上的过程,查询在所述机器人上运行或者被执行的过程的状态,和/或在开始过程、已执行所述过程的同时或者在所述过程完成执行时发送和/或接收数据。
12.根据权利要求11所述的计算机程序,其中所述计算机程序还被配置为使至少一个处理器:
由所述机器人监听器模块与机器人服务进行通信,以执行由所述机器人链接所请求的操作。
13.根据权利要求12所述的计算机程序,其中所述计算机程序还被配置为使至少一个处理器:
由所述机器人服务与执行器、机器人和/或指挥器进行通信,以完成所请求的所述操作。
14.根据权利要求13所述的计算机程序,其中所述计算机程序还被配置为使至少一个处理器:
通过所述机器人监听器和所述机器人链接,从所述机器人服务向所述应用返回所请求的所述操作的结果。
15.一种计算系统,包括:
存储器,存储机器可读计算机程序指令;以及
至少一个处理器,被配置为执行所述计算机程序指令,所述指令被配置为使所述至少一个处理器:
从所述计算系统启动应用以调用被嵌入在所述应用内的机器人链接;
从所述应用发起端口发现过程以标识端口、端口详细信息和令牌;
由所述应用生成随机化的代码,并且调用从所述计算系统的用户请求批准的同意应用,以从所述应用调用所述机器人;
向本地监听器模块注册所述随机化的代码,并且向全局监听器模块传递用户信息和所述令牌;以及
从所述全局监听器模块接收所述令牌和端口标识,从而允许所述应用向所述机器人认证自身并与所述机器人通信,从而促进机器人交互过程。
16.根据权利要求15所述的计算系统,其中用于调用所述机器人链接的所述应用来自不受信任的域。
17.根据权利要求15所述的计算系统,其中所述指令还被配置为使所述至少一个处理器:
由所述机器人链接通过通信介质调用机器人监听器模块上的特定的应用编程接口(API)。
18.根据权利要求17所述的计算机实现的方法,其中所述机器人监听器模块被配置为查询执行器或者所述机器人的状态,与指挥程器连接、断开连接或者两者,列出在所述机器人上可用的可用过程,开始、停止、暂停和/或终止所述机器人上的过程,查询在所述机器人上运行或者被执行的过程的状态,和/或在开始过程、已执行所述过程的同时或者在所述过程完成执行时发送和/或接收数据。
19.根据权利要求18所述的计算系统,其中所述指令还被配置为使所述至少一个处理器:
由所述机器人监听器模块与机器人服务进行通信,以执行由所述机器人链接所请求的操作。
20.根据权利要求19所述的计算系统,其中所述指令还被配置为使所述至少一个处理器:
由所述机器人服务与执行器、机器人和/或指挥器进行通信,以完成所请求的所述操作。
21.根据权利要求20所述的计算系统,其中所述指令还被配置为使所述至少一个处理器:
通过所述机器人监听器和所述机器人链接,从所述机器人服务向所述应用返回到所请求的所述操作的结果。
CN202080002315.3A 2019-10-11 2020-08-31 机器人浏览器嵌入 Pending CN113168311A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN201911041286 2019-10-11
IN201911041286 2019-10-11
US16/706,581 US11016789B2 (en) 2019-10-11 2019-12-06 Robot browser embedding
US16/706,581 2019-12-06
PCT/US2020/048695 WO2021071605A1 (en) 2019-10-11 2020-08-31 Robot browser embedding

Publications (1)

Publication Number Publication Date
CN113168311A true CN113168311A (zh) 2021-07-23

Family

ID=75383028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080002315.3A Pending CN113168311A (zh) 2019-10-11 2020-08-31 机器人浏览器嵌入

Country Status (5)

Country Link
US (2) US11016789B2 (zh)
JP (1) JP7106048B2 (zh)
KR (1) KR102253980B1 (zh)
CN (1) CN113168311A (zh)
WO (1) WO2021071605A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11363090B2 (en) * 2019-11-25 2022-06-14 Citrix Systems, Inc. Integrating web applications with local client applications in multi-user client environment
US11647015B2 (en) * 2020-07-30 2023-05-09 UiPath, Inc. Factor authentication for robotic processes
US12067407B2 (en) * 2021-06-07 2024-08-20 UiPath, Inc. Web-based robotic process automation designer systems and automations for virtual machines, sessions, and containers
KR102339028B1 (ko) * 2021-06-17 2021-12-15 농업협동조합중앙회 로봇 프로세스 자동화 장치 및 그 동작 방법
WO2023211899A1 (en) * 2022-04-27 2023-11-02 Viam Inc. Device control system and method
US12047369B2 (en) 2022-07-22 2024-07-23 Viam Inc. Fleet management system and method

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5627128A (en) 1979-08-10 1981-03-16 Canon Inc Copying apparatus
US5956483A (en) * 1996-06-28 1999-09-21 Microsoft Corporation System and method for making function calls from a web browser to a local application
US6947989B2 (en) * 2001-01-29 2005-09-20 International Business Machines Corporation System and method for provisioning resources to users based on policies, roles, organizational information, and attributes
US20030018703A1 (en) * 2001-01-31 2003-01-23 Christian Huitema Smart appliance network system and communication protocol
US8347313B2 (en) * 2003-05-21 2013-01-01 Resilient Networks, Inc. Method and apparatus for automating organization of processes
NO324315B1 (no) * 2005-10-03 2007-09-24 Encap As Metode og system for sikker brukerautentisering ved personlig dataterminal
US20070179842A1 (en) * 2006-01-27 2007-08-02 Chaing Chen Method and system to deliver a pixel or block based non-intrusive Internet web advertisement mall service via interactive games using one-time numeric codes
US7590680B2 (en) 2006-06-29 2009-09-15 Microsoft Corporation Extensible robotic framework and robot modeling
US8285652B2 (en) * 2008-05-08 2012-10-09 Microsoft Corporation Virtual robot integration with search
US9379895B2 (en) 2008-07-24 2016-06-28 Zscaler, Inc. HTTP authentication and authorization management
JP5516563B2 (ja) 2011-12-13 2014-06-11 株式会社安川電機 ロボットシステム
US20140122291A1 (en) 2012-10-31 2014-05-01 Microsoft Corporation Bargaining Through a User-Specific Item List
US9391966B2 (en) * 2013-03-08 2016-07-12 Control4 Corporation Devices for providing secure remote access
US20150186119A1 (en) 2013-12-31 2015-07-02 Rockwell Automation Technologies, Inc. Industrial automation device with editor and graphical object mobile visualization
EP3133539A1 (en) 2015-08-19 2017-02-22 Tata Consultancy Services Limited Method ans system for process automation in computing
EP3185124A1 (en) 2015-12-22 2017-06-28 Tata Consultancy Services Limited System and method for monitoring, deploying, and tracking autonomous software robots
US11107090B2 (en) * 2016-06-06 2021-08-31 Epiance Software Pvt. Ltd. System and method for automated content generation
US10802453B2 (en) * 2017-06-02 2020-10-13 Bank Of America Corporation Robotics process automation macro bot
US10482232B2 (en) 2017-08-16 2019-11-19 Bank Of America Corporation Robotic process automation using controller execution model
US10437984B2 (en) * 2017-10-26 2019-10-08 Bank Of America Corporation Authentication protocol elevation triggering system
US10705948B2 (en) 2017-10-30 2020-07-07 Bank Of America Corporation Robotic process automation simulation of environment access for application migration
US20190141125A1 (en) * 2017-11-03 2019-05-09 Bank Of America Corporation Cross application access provisioning system
US10810322B2 (en) 2017-12-05 2020-10-20 Microsoft Technology Licensing, Llc Sharing user information with and between bots
US10642647B2 (en) 2018-03-19 2020-05-05 Accenture Global Solutions Limited Concurrent queueing and control command feedback loop in unified automation platforms
US10726045B2 (en) 2018-03-19 2020-07-28 Accenture Global Solutions Limited Resource-efficient record processing in unified automation platforms for robotic process automation
US10764290B2 (en) * 2018-08-23 2020-09-01 Accenture Global Solutions Limited Governed access to RPA bots
JP6532626B1 (ja) 2019-04-02 2019-06-19 BizteX株式会社 社内ネットワーク上の社内サーバに対する操作を伴う業務プロセスを自動化するための装置、方法及びそのためのプログラム

Also Published As

Publication number Publication date
US20210263754A1 (en) 2021-08-26
US20210109767A1 (en) 2021-04-15
JP7106048B2 (ja) 2022-07-26
KR20210043484A (ko) 2021-04-21
US12099853B2 (en) 2024-09-24
US11016789B2 (en) 2021-05-25
WO2021071605A1 (en) 2021-04-15
KR102253980B1 (ko) 2021-05-20
JP2022511164A (ja) 2022-01-31

Similar Documents

Publication Publication Date Title
CN113334371B (zh) 用于机器人流程自动化的自动化窗口
US11738453B2 (en) Integration of heterogeneous models into robotic process automation workflows
US12099853B2 (en) Robot browser embedding
KR20220078587A (ko) 인공 지능을 사용한 로봇 프로세스 자동화를 위한 모델 선택 및 체인화
KR102412237B1 (ko) 로봇 프로세스 자동화를 위한 테스트 자동화
JP2023550852A (ja) ロボティックプロセスオートメーションアーキテクチャならびに機械学習モデルのホスティング、監視、および再訓練のためのプロセス
CN115243838A (zh) 针对机器人流程自动化(rpa)机器人的会话间自动化
CN113168335A (zh) 用于机器人流程自动化的应用集成
CN114556377A (zh) 机器人过程自动化中的强化学习
CN112997203A (zh) 用于机器人流程自动化的机器人访问控制和管理
CN113168355A (zh) 经由在第二会话中运行的机器人流程自动化机器人使在第一会话中运行的过程自动化
CN113168168A (zh) 经由在第二会话中运行的机器人流程自动化机器人使在第一会话中运行的过程自动化
JP2023536015A (ja) ロボティックプロセスのためのファクター認証
CN113168169A (zh) 用于机器人过程自动化的测试自动化
CN114127696A (zh) 用于机器人过程自动化的测试自动化
EP3806419A1 (en) Robot browser embedding
JP2023093354A (ja) ロボットをスケジューリングするためのクラウドトリガ
US11507059B1 (en) System and computer-implemented method for seamless consumption of automations
US11928521B2 (en) Bring your own machine (BYOM)
US12026535B2 (en) System and computer-implemented method for controlling a robot of a virtual machine
US11650871B2 (en) System and computer-implemented method for verification of execution of an activity

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