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

用于机器人流程自动化的机器人访问控制和管理的制作方法

2022-02-24 18:33:09 来源:中国专利 TAG:

用于机器人流程自动化的机器人访问控制和管理
1.相关申请的交叉引用
2.本技术要求于2020年7月28日提交的美国非临时专利申请no.16/941,484的权益,该申请是2020年7月9日提交的美国非临时专利申请no.16/924,499的延续,并且要求其权益。这些在先提交的申请的主题通过引用整体合并于此。
技术领域
3.本发明总体上涉及机器人流程自动化(rpa),并且更具体地涉及用于rpa的机器人访问控制和管理。


背景技术:

4.计算系统的用户采取的某些动作可能会违反美国和其他国家的法律或协议,诸如欧盟通用数据保护条例(gdpr)、美国健康保险可移植性和责任法案(hipaa)、第三方服务条款等。违反这些法律或协议的罚款可能会很高。例如,在采用gdpr时,较低级别的违规行为可能会被处以1000万欧元的罚款或违规者全球年收入(而非利润)的2%(以较高者为准)。更严重的违规行为将导致罚款2000万欧元,或违反者年收入的4%(以较高者为准)。这些罚款可能会对公司造成经济损失甚至致命。rpa对访问控制和管理提出了独特的挑战。因此,改进的rpa访问控制和管理方法可能是有益的。


技术实现要素:

5.本发明的某些实施例可以提供对于尚未被当前的rpa技术完全标识、理解或解决的本领域的问题和需求的解决方案。例如,本发明的一些实施例涉及用于rpa的机器人访问控制和管理。
6.在一个实施例中,一种用于执行用于rpa的机器人访问控制和管理的计算机程序体现在非暂态计算机可读介质上。该计算机程序被配置为引起至少一个处理器读取rpa设计器应用的访问控制和管理策略规则,并且根据访问控制和管理策略规则分析rpa设计器应用的rpa工作流程的活动。当rpa工作流程的一个或多个被分析活动违反访问控制和管理策略规则时,计算机程序被配置为引起至少一个处理器阻止rpa机器人的生成或rpa工作流程的发布,直到rpa工作流程满足访问控制和管理策略规则。当rpa工作流程的被分析活动符合所有必需的访问控制和管理策略规则时,计算机程序被配置为引起至少一个处理器生成实现rpa工作流程的rpa机器人或发布rpa工作流程。
7.在另一实施例中,一种用于执行用于rpa的机器人访问控制和管理的计算机实现的方法包括由代码分析器根据访问控制和管理策略规则来分析rpa设计器应用的rpa工作流程的活动。当rpa工作流程的一个或多个被分析活动违反访问控制和管理策略规则时,该计算机实现的方法包括由代码分析器阻止rpa机器人的生成或rpa工作流程的发布,直到rpa工作流程满足访问控制和管理策略规则。
8.在又一实施例中,一种用于执行用于rpa的机器人访问控制和管理的计算机程序
体现在非暂态计算机可读介质上。该计算机程序被配置为引起至少一个处理器从计算系统的注册表项中确定到包括访问控制和管理策略规则的文件的链接,并且使用所确定的链接来下载文件,或者从指挥器应用中下载管理策略规则。该计算机程序还被配置为引起至少一个处理器从所下载的文件中读取用于rpa设计器应用的访问控制和管理策略规则,并且根据访问控制和管理策略规则来分析rpa设计器应用的rpa工作流程的活动。当rpa工作流程的一个或多个被分析活动违反访问控制和管理策略规则时,该计算机程序被配置为引起至少一个处理器阻止rpa机器人的生成或rpa工作流程的发布,直到rpa工作流程满足访问控制和管理策略规则。当rpa工作流程的被分析活动符合所有必需的访问控制和管理策略规则时,该计算机程序被配置为引起至少一个处理器生成实现rpa工作流程的rpa机器人或发布rpa工作流程。访问控制和管理策略规则包括一个或多个应用和/或通用资源定位器(url)限制、一个或多个程序包限制、一个或多个活动限制、一个或多个活动属性要求、或其组合。
附图说明
9.为了容易地理解本发明的某些实施例的优点,将通过参考在附图中图示的特定实施例来呈现上文简要描述的本发明的更具体的描述。虽然应理解,这些图仅描绘了本发明的典型实施例,并且因此不应该被认为是对本发明的范围的限制,但是本发明将通过附图的使用以附加的特异性和细节来描述和阐释,在附图中:
10.图1是示出根据本发明的实施例的机器人过程自动化(rpa)系统的架构图。
11.图2是示出根据本发明的实施例的部署的rpa系统的架构图。
12.图3是示出根据本发明的实施例的设计器、活动与驱动程序之间的关系的架构图。
13.图4是示出根据本发明的实施例的rpa系统的架构图。
14.图5是示出根据本发明的实施例的被配置为执行用于rpa的机器人访问控制和管理的计算系统的架构图。
15.图6是示出根据本发明的实施例的用于uipath studio
tm
的注册表编辑器的文件夹的视图的屏幕截图。
16.图7是示出根据本发明的实施例的windowsui的一部分的屏幕截图,其中文件samplegovernancerules.dll安装在uipath studio
tm
的规则文件夹中。
17.图8是示出根据本发明的实施例的程序包管理界面的屏幕截图。
18.图9是示出根据本发明的实施例的发送反馈图标被禁用的rpa设计器应用的右上部分的屏幕截图。
19.图10a-d是示出根据本发明的实施例的工作流程分析器设置界面的屏幕截图。
20.图11是示出根据本发明的实施例的rpa设计器应用设置界面的屏幕截图。
21.图12a和12b是示出根据本发明的实施例的rpa工作流程的屏幕截图。
22.图13示出了根据本发明实施例的错误列表界面。
23.图14是示出根据本发明的实施例的工作流程分析器界面的屏幕截图。
24.图15是示出根据本发明的实施例的用于在机器人执行时执行用于rpa的访问控制和管理的系统的架构图。
25.图16是示出根据本发明的实施例的用于执行用于rpa设计器应用的机器人访问控制和管理的过程的流程图。
26.图17是示出根据本发明的实施例的用于执行正在执行的rpa机器人的rpa的机器人访问控制和管理的过程的流程图。
具体实施方式
27.一些实施例涉及用于rpa的机器人访问控制和管理。rpa管理是组织制定策略以阻止用户开发rpa机器人的能力,这些机器人可能会采取可能危害组织的行为,诸如违反gdpr、hipaa、第三方应用服务条款等。由于开发人员可能会创建在执行其自动化时违反隐私法、服务条款等的rpa机器人,一些实施例在机器人和/或机器人设计应用级别实现访问控制和管理限制。在某些实施例中,这可以通过防止rpa开发人员依赖于可能会带来安全风险或以违反策略、法规、隐私法和/或隐私权策略的方式工作的未经批准的软件库来为rpa流程开发管道提供更高级别的安全性和合规性。
28.一些实施例防止rpa机器人采取用户允许但机器人不允许的动作。传统上,组织可以通过对系统的访问控制来控制用户可以做什么和不可以做什么。但是,在rpa并且尤其是有人值守自动化的上下文中,该控制可能会崩溃。机器人代表用户执行任务,这表示后端系统无法区分机器人还是用户正在访问系统。
29.这可能是有问题的,原因有几个。例如,后端系统可以允许用户访问某些可能被滥用的数据。但是,良好的系统设计通常会使用户难以在任何规模上引起问题,因为做他们不应当做的事情既缓慢又乏味。相比之下,如果使用rpa机器人,则该机器人由于其执行速度会大大增加数据滥用或违反策略的规模。
30.考虑以下示例。组织使用客户关系管理(crm)系统来联系客户,该系统完全支持各种隐私选项,诸如通过检查用户是否选择了“不与我联系”选项并且提供到隐私策略和说明的链接以请求组织“忘记他们”来支持gdpr的“选择退出”和“忘记我”策略以及其他用户保护法律。该组织已经选择授予大部分员工访问crm系统的权限,但只授予少数员工在系统中发送电子邮件的权限。
31.但是,出于合法的商业目的,要求更广泛的用户组能够访问包括客户的电子邮件地址在内的客户简档(例如,员工在与客户合作时可能会在系统中创建或编辑包括客户电子邮件地址在内的错误信息)。不使用crm系统向客户发送电子邮件是一种组织策略违规行为,但是有些员工希望了解一些信息并且不想等待各种审批渠道以获取这些权限,或者希望有适当权限的员工代表他们这样做。没有rpa机器人,员工仍然可以违反此策略。但是因为手动将电子邮件地址一对一地复制和粘贴到系统之外很麻烦,即使员工违反了此策略,违规的规模也很小,因此,如果发生任何违规行为,则可以减轻组织的风险。但是,rpa机器人可以比人类快上很多数量级的速度提取该数据(例如,速度提高数千倍,速度提高数万倍,速度提高数十万倍,速度提高数百万倍,等等)以创建和发送电子邮件,因此,在用户可以手动发送5-10封违反策略的电子邮件,并且使公司面临违反客户“选择退出”gdpr的风险的情况下,如果用户为此创建了机器人,则可以发送大量违规电子邮件。
32.作为另一示例,考虑使用受到严格保护的系统以符合hipaa要求的方式存储所有数据的医疗机构。员工可以在适当应用的上下文中合法访问该数据和在工作中使用该数
据。对系统的低效感到沮丧的员工可能想编写将患者数据提取到他或她的台式机上不受保护的电子表格中的rpa机器人。现在,这违反了hipaa,并且如果该数据发生了某些事情,诸如员工的计算机被盗和被访问,则可能使组织承担重大的财务和法律责任。
33.作为另一示例,考虑以下情况:第三方应用或服务的服务条款禁止使用自动化来在工作中使用该应用或服务。如果员工选择编写违反这些服务条款进行工作的rpa机器人,则该公司可能承担法律责任。
34.这些问题和其他问题可能给采用rpa机器人的组织带来重大风险。但是,一些实施例通过防止开发人员使用未经批准的库和活动引用来减少或消除开发人员的安全和合规风险。rpa开发人员(无论是经过培训的rpa开发人员(例如,使用uipath studio
tm
)还是未经培训的公民开发人员(例如,使用uipath studiox
tm
))可以添加对被认为不安全或以违反策略/法规的方式工作的库的引用。
35.考虑以下示例。一些国家不允许将在被认为是不友好的国家/地区开发的技术安装自己的计算系统上。但是,rpa中使用了一些由这些不友好国家/地区开发的通用库(例如,ocr引擎)。尽管开发人员可以选择默认情况下这些库在其计算系统上不可用,但他们无法明确阻止用户依赖于将这些库合并到rpa项目中。尽管rpa开发人员的互联网访问可能会被阻止(由于开发软件时的很多原因,这是不希望的),但是开发人员仍然可以通过另一种机制(诸如通用串行总线(usb)棒)将未经批准的库带入计算系统。
36.另一示例是,很多金融机构对哪些信息可以或不可离开其内部网络和防火墙实施严格的策略。在现代时代,很多rpa库(经由rpa活动被调用)通过与公共云上的服务器通信来工作,诸如文档理解活动。这些金融机构担心用户不会意识到不允许使用这些活动,因为他们可能会将敏感数据发送到公司防火墙之外。但是,没有先前存在的有效选项可以防止这种情况的发生。
37.另一问题是阻止大规模rpa压倒系统。rpa取得巨大成功的原因之一是,它可以实现传统系统的自动化,而无需升级这些系统。由于传统系统并非被设计成旨在自动化,因此其设计和性能可能只能以人类可以工作的速度处理交互。但是,传统应用并不总是能够跟上rpa机器人可以与系统交互的速度。没有被设计为在这些约束条件下运行的机器人根本上可以用传统系统无法处理的更快的请求最终使不堪重负的旧系统瘫痪,从而根本上对系统执行意外的拒绝服务(dos)攻击。尽管uipath studio
tm
中存在可以实现活动之间的延迟的设置,但是当前没有中心化的实施机制可以确保开发人员在无法以rpa机器人速度运行的传统系统上工作时使用这些设置。
38.另一问题是确保组织策略得到遵守。很多组织都有要应用于自动化的特定规则。例如,一些示例包括强制将由自动化创建的电子邮件仅发送给内部员工,而不发送给外部收件人,强制将由自动化创建的所有电子邮件保存为草稿,并且未经人工审核就不会发送等。在没有适当管理的情况下,rpa机器人可能会违反这些策略。
39.为了解决可能在rpa中发生的访问控制和管理问题,一些实施例为组织提供了定义和实施管理策略的能力。例如,这可以通过定义rpa机器人可以和/或不能访问什么的javascript对象表示法(json)文件来实现。在一些实施例中,组织可以对哪些应用和/或通用资源定位符(url)能够和/或不能被自动化进行控制,对哪些活动能够和/或不能被使用
进行控制,对哪些程序包(例如,库)能够和/或不能被使用进行控制,提供创建和部署用于扩展管理功能的自定义规则的功能,提供可以控制例如用户可以使用哪些程序包馈送来安装库的各种rpa设计器应用设置,等等。
40.在一些实施例中,可以在设计时(即,当开发人员正在构建、测试和修改rpa机器人工作流程时)执行管理。但是,这可能使执行某些策略变得困难或不可能。例如,在仅在运行时才知道要应用该策略的值的情况下,很难或不可能实施策略。例如,如果组织希望制定防止访问某些网站的策略,则设计时分析应当能够知道要标记的url。但是,在某些实施例中,可以构造rpa程序以使得从动态源(诸如外部文件或询问用户的提示)中加载值。在这种情况下,设计时分析是不够的,因为在设计时未知违反策略的值。另一示例是,如果组织希望阻止自动发送给组织外部客户的电子邮件,但是电子邮件地址列表来自电子表格。在这种情况下,电子邮件在设计时是未知的,但是是应当在运行时被评估的系统的动态输入。
41.在某些实施例中,除了或代替设计时实施,在运行时实施管理。例如,这可以经由用于配置和部署策略的服务器侧应用来完成。例如,当这些计算系统连接到服务器侧指挥器应用时,策略可以被自动发送到用户计算系统。rpa设计器应用可以自动将代码插入rpa机器人中,以迫使它们获取这些策略并且根据这些策略进行操作。
42.在一些实施例中,可以基于组织、角色、组、个体开发人员等为rpa设计器应用定义控制,以控制开发人员在开发rpa机器人时可以做什么。可以定义策略并且实施控制,以控制rpa机器人在运行自动化时可以做什么。这样的实施例可以使得组织能够更好地满足关于法律、法规、协议和公司策略的合规性和管理要求。
43.在一些实施例中,本地文件只能由管理员修改。因此,非管理员用户应当不能覆盖或改变这些文件。程序包馈送可以被锁定,从而仅期望的馈送可用,而无法添加其他馈送。这样可以防止用户使用从其他地方获取的程序包。在某些实施例中,作为策略的一部分,可以禁用“发送反馈”工具。
44.如本文中使用的,“程序包馈送”是一个位置(远程或本地),该位置包含对其他库的访问权限,开发人员可以选择安装这些库以获取其自动化项目的附加功能。本文中使用的库是包含计算机代码的程序包,该计算机代码为项目提供附加功能(例如,活动)。程序包馈送的一个示例是uipath connect
tm
市场。这是一个开放的位置,社区成员可以在其中上传包含他们编写的自定义活动的库。如果rpa开发人员希望使用这些功能,则该开发人员可以浏览并且向其项目添加库引用。uipath gsuite
tm
活动是库的一个示例。uipath studio
tm
的默认安装不能使rpa开发人员使用gsuite
tm
。但是,开发人员可以安装gsuite
tm
活动库,该活动库现在使该项目能够使用活动来与gsuite
tm
一起使用(例如,sheets、drive等)。
45.在一些实施例中,提供了代码分析器,诸如程序分析器或rpa工作流程分析器,作为rpa设计器应用的审计功能。工作流程分析器可以定义用户在运行rpa设计器应用时被允许的内容,并且可以实施策略。例如,可以指定允许用户使用的url,可以限制某些url,等等。
46.如本文中使用的,“代码分析器”是运行一系列规则的计算机代码,这些规则检查rpa用户编写的代码并且在应用不满足规则时产生反馈(例如,消息、警告、错误等)。在一些
实施例中,代码分析器由rpa应用的卖方(例如,提供或由使用rpa应用的客户编写。uipath studio
tm
中的“app/url限制”规则是代码分析器规则的一个示例,该规则使组织可以定义自动化项目中能够或不能使用哪些桌面应用和网站url。如果用户违反这些规则之一,则他或她将收到具有在管理策略中指定的严重性的通知。在某些实施例中,这通常是一个错误,它将阻止自动化的发布或运行。
47.某些实施例可以被部署用于机器人过程自动化(rpa)。图1是示出根据本发明的实施例的rpa系统100的架构图。rpa系统100包括允许开发者设计和实现工作流程的设计器110。设计器110可以提供用于应用集成以及自动化第三方应用、管理信息技术(it)任务和业务it过程的解决方案。设计器110可以支持自动化项目的开发,该自动化项目是业务过程的图形表示。简而言之,设计器110支持工作流程和机器人的开发和部署
48.自动化项目通过向开发者提供对在工作流程中开发的一组定制步骤(在本文中被定义为“活动”)之间的执行顺序和关系的控制来实现基于规则的过程的自动化。设计器110的实施例的一个商业示例是uipath studio
tm
。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,工作流程可以被嵌套或嵌入
49.一些类型的工作流程可以包括但不限于序列、流程图、fsm和/或全局异常处理程序。序列可能特别适合于线性过程,从而能够在不使工作流程混乱的情况下从一个活动流向另一活动。流程图可能特别适合于更复杂的业务逻辑,从而实现通过多个分支逻辑运算符以更为不同的方式进行的决策的集成以及活动的连接。fsm可能特别适合于较大工作流程。fsm可以在其执行中使用有限数量的状态,这些状态由条件(即,过渡)或活动触发。全局异常处理程序可能特别适合于在遇到执行误差时确定工作流程行为且特别适合于调试过程。
50.一旦工作流程在设计器110中被开发,业务过程的执行就由指挥器(conductor)120编排,该指挥器编排执行设计器110中所开发的工作流程的一个或多个机器人130。指挥器120的实施例的一个商业示例是uipath orchestrator
tm
。指挥器120支持对环境中的资源的创建、监测以及部署的管理。利用第三方解决方案和应用,指挥器120可以充当集成点、或充当聚合点中的一者。
51.指挥器120可以管理一队机器人130,从而从集中点连接并执行机器人130。可以管理的机器人130的类型包括但不限于:有人值守的机器人132、无人值守的机器人134、开发机器人(类似于无人值守的机器人134,但用于开发和测试目的)以及非生产型机器人(类似于有人值守的机器人132,但用于开发和测试目的)。有人值守的机器人132由用户事件触发并且与人类一起在相同计算系统上操作。有人值守的机器人132可以与指挥器120一起用于集中过程部署和记录介质。有人值守的机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,无法从这种类型的机器人上的指挥器120开启过程和/或这些过程无法在锁定屏幕下运行。在某些实施例中,有人值守的机器人132只可以从机器人托盘或根据命令提示而被开启。在一些实施例中,有人值守的机器人132应该在人类监督下运行。
52.无人值守的机器人134在虚拟环境中以无人值守的方式运行并且可以使许多过程自动化。无人值守的机器人134可以负责远程执行、监测、调度并且为工作队列提供支持。在一些实施例中,可以在设计器110中运行针对所有机器人类型的调试。有人值守的机器人和
无人值守的机器人两者都可以使各种系统和应用自动化,该系统和应用包括但不限于大型主机、web应用、vm、企业应用(例如由等生产的那些企业应用)以及计算系统应用(例如台式机和笔记本应用、移动设备应用、可穿戴计算机应用等)。
53.指挥器120可以具有各种能力,包括但不限于供应(provisioning)、部署(deployment)、版本化(versioning)、配置(configuration)、排队(queueing)、监测(monitoring)、日志记录(logging)和/或提供互连性(interconnectivity)。供应可以包括在机器人130与指挥器120(例如web应用)之间创建和维护连接。开发可以包括确保将程序包(package)版本正确递送至所指派的机器人130以供执行。在一些实施例中,版本化可以包括某一过程或配置的唯一实例的管理。配置可以包括维护和递送机器人环境和过程配置。排队可以包括提供对队列和队列项的管理。监测可以包括追踪机器人标识数据和维护用户权限。日志记录可以包括将日志存储和编入索引至数据库(例如sql数据库)和/或另一存储机制(例如其提供用于存储和快速查询较大数据集的能力)。指挥器120可以通过充当第三方解决方案和/或应用的通信的集中点来提供互连性。
54.机器人130是运行内置于设计器110中的工作流程的执行代理。(多个)机器人130的一些实施例的一个商业示例是uipath robots
tm
。在一些实施例中,机器人130默认安装microsoft服务控制管理器(scm)管理的服务。结果,此类机器人130可以在本地系统账户下打开交互式会话,并且具有服务的权限。
55.在一些实施例中,机器人130可以在用户模式下被安装。针对此类机器人130,这意味着其具有与已经安装了给定机器人130的用户相同的权限。此特征也可以供高密度(hd)机器人使用,该高密度机器人确保了每台机器以其最大潜力的充分利用。在一些实施例中,任何类型的机器人130可以在hd环境中被配置。
56.在一些实施例中,机器人130被分成分别专用于特定自动化任务的若干组件。在一些实施例中,机器人组件包括但不限于scm管理的机器人服务、用户模式机器人服务、执行器、代理以及命令行。scm管理的机器人服务管理和监测会话,并且充当指挥器120与执行主机(即,机器人130在其上被执行的计算系统)之间的委托。这些服务受机器人130信任并且管理机器人130的凭证。控制台应用在本地系统下由scm启动。
57.在一些实施例中,用户模式机器人服务管理和监测会话,并且充当指挥器120与执行主机之间的委托。用户模式机器人服务可以受机器人130信任并且管理机器人130的凭证。在未安装scm管理的机器人服务的情况下,应用可以被自动启动。
58.执行器可以在会话下运行给定作业(即,执行器可以执行工作流程。执行器可以知道每个监测器的每英寸点数(dpi)设置。代理可以是presentation foundation(wpf)应用,其在系统托盘窗口中显示可用的作业。代理可以是服务的客户端。代理可以请求开启或停止作业以及改变设置。命令行是服务的客户端。命令行是可以请求开启作业并等待其输出的控制台应用。
59.如上文所阐释一般使机器人130的组件分开帮助开发者、支持用户以及计算系统
更容易地运行、标识和追踪每个组件正在执行的内容。特殊行为可以以这种方式按组件来配置,诸如针对执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可以始终知道每个监测器的dpi设置。结果,不论创建工作流程的计算系统的配置如何,工作流程都可以在任何dpi处被执行。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。在一些实施例中,针对dpi不知道的或有意地标记为不知道的应用,dpi可以被禁用。
60.图2是示出根据本发明的实施例的部署的rpa系统200的架构图。在一些实施例中,rpa系统200可以是图1的rpa系统100或可以是该rpa系统的一部分。应注意,在不脱离本发明的范围的情况下,客户端侧、服务器侧或两者都可以包括任何期望数量的计算系统。在客户端侧,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可以不在计算系统210上运行。执行器212正在运行过程。如图2中所示,若干业务项目可以同时运行。在该实施例中,代理214(例如服务)是所有执行器212的单个联系点。该实施例中的所有消息被日志记录到指挥器230中,该指挥器经由数据库服务器240、索引器服务器250或两者进一步处理这些消息。如上文相对于图1所讨论的,执行器212可以是机器人组件。
61.在一些实施例中,机器人表示机器名称与用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行的多个交互式会话的计算系统(例如服务器2012)上,多个机器人可以同时运行,每个机器人在使用唯一用户名的单独会话中。上文将此称为hd机器人。
62.代理214还负责发送机器人的状态(例如周期性地发送指示机器人仍在运作的“心跳”消息)并且下载要被执行的包的所需版本。在一些实施例中,代理214与指挥器230之间的通信始终由代理214发起。在通知场景中,代理214可以打开websocket信道,稍后由指挥器230使用该websocket信道来向机器人发送命令(例如开启、停止等)。
63.在服务器侧,包括了表征层(web应用232、开放数据协议(odata)表征状态转移(rest)应用编程接口(api)端点234以及通知和监测236)、服务层(api实现/业务逻辑238)以及持久层(数据库服务器240和索引器服务器250)。指挥器230包括web应用232、odata rest api端点234、通知和监测236以及api实现/业务逻辑238。在一些实施例中,用户在指挥器220的接口中(例如经由浏览器220)执行的大多数动作是通过调用各种api来执行的。在不脱离本发明的范围的情况下,此类动作可以包括但不限于在机器人上开启作业、在队列中添加/移除数据、调度作业以便以无人值守的方式运行等。web应用232是服务器平台的视觉层。在该实施例中,web应用232使用超文本标记语言(html)和javascript(js)。然而,可以在不脱离本发明的范围的情况下使用任何期望标记语言、脚本语言或任何其他格式。在该实施例中,用户经由浏览器220与来自web应用232的网页交互,以便执行各种动作来控制指挥器230。例如,用户可以创建机器人群组、向机器人指派包、分析每个机器人和/或每个过程的日志、开启和停止机器人等。
64.除了web应用232之外,指挥器230还包括暴露odata rest api端点234的服务层。然而,在不脱离本发明的范围的情况下可以包括其他端点。rest api由web应用232和代理214两者消耗。在该实施例中,代理214是客户端计算机上的一个或多个机器人的监督器。
65.在该实施例中,rest api覆盖配置、日志记录、监测以及排队功能性。在一些实施
例中,配置端点可以用于定义和配置应用用户、权限、机器人、资产、发布以及环境。日志记录rest端点可以用于日志记录不同信息,诸如(例如)误差、由机器人发送的显式消息以及其他环境特定信息。如果在指挥器230中使用了开启作业命令,那么可以由机器人使用部署rest端点来查询应该被执行的包版本。排队rest端点可以负责队列和队列项管理,诸如将数据添加至队列、从队列中获得事务、设置事务的状态等。
66.监测rest端点可以监测web应用232和代理214。通知和监测api236可以是用于注册代理214、向代理214递送配置设置并且用于从服务器和代理214发送/接收通知的rest端点。在一些实施例中,通知和监测api 236还可以使用websocket通信。
67.在该实施例中,持久层包括一对服务器——数据库服务器240(例如sql服务器)和索引器服务器250。在该实施例中,数据库服务器240存储机器人、机器人群组、相关联的过程、用户、角色、调度等的配置。在一些实施例中,该信息通过web应用232来管理。数据库服务器240可以管理队列和队列项。在一些实施例中,数据库服务器240可以存储由机器人(除了索引器服务器250之外或代替索引器服务器250)日志记录的消息。
68.在一些实施例中可选的索引器服务器250存储由机器人日志记录的信息并且将该信息编入索引。在某些实施例中,索引器服务器250可以通过配置设置来禁用。在一些实施例中,索引器服务器250使用其为开源项目全文搜索引擎。由机器人日志记录的消息(例如使用比如日志消息或写入行的活动)可以通过(多个)日志记录的rest端点被发送到索引器服务器250,在索引器服务器250中这些消息被编入索引以供将来使用。
69.图3是示出根据本发明的实施例的设计器310、活动320、330与驱动程序(driver)340之间的关系300的架构图。根据上文,开发者使用设计器310来开发由机器人执行的工作流程。工作流程可以包括用户定义的活动320和ui自动化活动330。一些实施例能够标识图像中的非文本视觉分量,在本文中称作计算机视觉(cv)。与此类分量相关的一些cv活动可以包括但不限于点击、键入(type)、取得文本、悬停、元素存在、刷新范围、高亮等。在一些实施例中,点击使用例如cv、光学字符识别(ocr)、模糊文本匹配以及多锚(multi-anchor)来标识元素,并且点击该元素。键入可以使用上述内容来标识元素和该元素中的类型。取得文本可以标识特定文本的地点并且使用ocr来扫描该地点。悬停可以标识元素并且悬停于元素上方。元素存在可以使用上文所描述的技术来检查在屏幕上是否存在元素。在一些实施例中,可以存在可以在设计器310中被实现的数百个甚至数千个活动。然而,在不脱离本发明的范围的情况下,任何数量和/或类型的活动都可以是可用的。
70.ui自动化活动330是利用较低级代码编写的特殊的较低级活动(例如cv活动)的子集并且有助于与屏幕的交互。ui自动化活动330经由允许机器人与期望软件交互的驱动程序340来支持这些交互。例如,驱动程序340可以包括os驱动程序342、浏览器驱动程序344、vm驱动程序346、企业应用驱动程序348等。
71.驱动程序340可以与os进行低级交互,进而寻找挂钩、监测键等。驱动器可以有助于与等的集成。例如,“点击”活动经由驱动程序340在这些不同应用中扮演相同角色。
72.图4是示出根据本发明的实施例的rpa系统400的架构图。在一些实施例中,rpa系统400可以是或包括图1和/或图2的rpa系统100和/或200。rpa系统400包括运行机器人的多
个客户端计算系统410。计算系统410能够经由在其上运行的web应用与指挥器计算系统420进行通信。指挥器计算系统420又能够与数据库服务器430和可选的索引器服务器440进行通信。
73.相对于图1和图3,应注意,虽然在这些实施例中使用了web应用,但可以在不脱离本发明的范围的情况下使用任何合适的客户端/服务器软件。例如,指挥器可以运行服务器侧应用,该服务器侧应用与客户端计算系统上的非基于网络的客户端软件应用进行通信。
74.图5是示出根据本发明的实施例的被配置为执行用于rpa的机器人访问控制和管理的计算系统500的架构图。在一些实施例中,计算系统500可以是本文中所描绘和/或描述的计算系统中的一者或多者。计算系统500包括总线505或用于传送信息的其他通信机制、以及被耦合至总线505以处理信息的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)、其多个实例和/或其任何组合。(多个)处理器510还可以具有多个处理核心,并且至少一些核心可以被配置为执行特定功能。在一些实施例中,可以使用多并行处理。在某些实施例中,(多个)处理器510中的至少一者可以是包括模仿生物神经的处理元件的神经形态电路。在一些实施例中,神经形态电路可以不需要冯〃诺依曼计算架构的典型组件。
75.计算系统500还包括用于存储将由(多个)处理器510执行的信息和指令的存储器515。存储器515可以由随机存取存储器(ram)、只读存储器(rom)、闪速存储器、缓存、静态存储装置(诸如磁盘或光盘)或任何其他类型的非瞬态计算机可读介质或其组合的任何组合组成。非瞬态计算机可读介质可以是可以由(多个)处理器510访问的任何可用介质,并且可以包括易失性介质、非易失性介质或两者。介质也可以是可移除的、不可移除的或两者。
76.附加地,计算系统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可以包括一个或多个天线,这些天线是单数的、阵列的、相控的、切换的、波束成形的、波束导向的、其组合和/或任何其他天线配置。
77.(多个)处理器510进一步经由总线505被耦合到显示器525,诸如等离子体显示器、液晶显示器(lcd)、发光二极管(led)显示器、场发射显示器(fed)、有机发光二极管(oled)显示器、柔性oled显示器、柔性基板显示器、投影显示器、4k显示器、高清显示器、显示器、面内切换(ips)显示器或用于向用户显示信息的任何其他合适的显示器。显示器525可以被配置为使用电阻性、电容性、表面声波(saw)电容性、红外、光学成像、色散信号技术、声学脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3d)触摸显示器、多输入触摸显示器、多触摸显示器等。可以在不脱离本发明的范围的情况下使用任何合适的显示设
备和触觉i/o。
78.键盘530和光标控制设备535(诸如计算机鼠标、触摸板等)进一步被耦合到总线505以使得用户能够与计算系统500接口连接。然而,在某些实施例中,可以不存在物理键盘和鼠标,并且用户可以仅通过显示器525和/或触摸板(未示出)与设备交互。输入设备的任何类型和组合可以被用作设计选择的问题。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与之通信的另一计算系统与计算系统500远程地交互,或计算系统500可以自主地操作。
79.存储器515存储在被(多个)处理器510执行时提供功能性的软件模块。模块包括计算系统500的操作系统540。这些模块还包括被配置为执行本文中描述的全部或部分过程或其衍生物的机器人访问控制和管理模块545。计算系统500可以包括一个或多个附加功能模块550,该功能模块包括附加功能性。
80.本领域的技术人员应了解,在不脱离本发明的范围的情况下,“系统”可以被实施为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(pda)、手机、平板计算设备、量子计算系统或任何其他合适的计算设备或设备的组合。将上文所描述的功能呈现为由“系统”执行并不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例的一个示例。实际上,本文中所公开的方法、系统和装置可以按照与包括云计算系统的计算技术一致的本地化和分布式形式来实现。
81.应注意,本说明书中所描述的一些系统特征已经作为模块而被呈现,以便更具体地强调其实现独立性。例如,模块可以被实现为包括定制的超大规模集成(vlsi)电路或门阵列、现成半导体(诸如逻辑芯片、晶体管或其他分立组件)的硬件电路。模块也可以被实现在可编程硬件设备中,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
82.模块也可以至少部分地被实现在软件中以便由各种类型的处理器执行。例如,可执行代码的所标识的单元可以包括计算机指令的一个或多个物理块或逻辑块,这些计算机指令可以例如被组织成对象、过程或功能。虽然如此,但所标识的模块的可执行文件不需要在物理上位于一处,而是可以包括存储在不同地点中的全异的指令,这些指令在以逻辑方式被结合在一起时包括该模块并且实现了该模块的既定目的。此外,模块可以被存储在计算机可读介质上,在不脱离本发明的范围的情况下,该计算机可读介质可以是例如硬盘驱动器、闪存设备、ram、磁带和/或用于存储数据的任何其他此类非瞬态计算机可读介质。
83.实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在若干不同的代码段上、分布在不同程序之间以及跨多个存储器设备分布。类似地,操作数据在本文中可以被标识和图示为在模块内,并且该操作数据可以被实施为任何合适的形式并且被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或可以分布于包括在不同存储设备上的不同地点上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
84.在一些实施例中,用于rpa设计器应用的管理信息可以存储在rpa开发人员无法编辑的文件中。例如,图6是示出用于rpa设计器应用的注册表编辑器600的文件夹600的视图的屏幕截图(在这种情况下为uipath studio
tm
)。在路径computer\hkey_current_user\software\uipath下,设置了名为governancesource 610的注册表项(例如,
当安装了rpa设计器应用时),该注册表项指向经由关联链接620可用的远程策略文件。在该链接处可用的策略可以被只读到计算系统,并且将由rpa设计器应用或rpa机器人用来控制某些权限。该策略可以在个体用户级别、组级别、角色级别、组织级别等定义。通过包括经由远程链接的策略,可以在任何需要时对策略进行更新,并且通过消费rpa机器人和/或rpa设计器应用将自动访问更新后的策略。在该示例中,策略文件提供了针对开发配置文件定义不同策略组的能力。在一些实施例中,可以为经验丰富的程序员和可能不具有编程知识的公民开发人员设置不同的策略,因为这些开发人员可能具有不同的需求。下面包括uipath studio
tm
的示例策略文件的一部分,该文件为开发用户、商业用户和studiopro用户定义了规则。该示例中,粗体部分指定了可以定义附加规则或计数器的地方。
85.86.87.88.89.90.91.92.93.[0094][0095]
应当注意,尽管此处示出的规则和计数器对于每种用户类型都是相同的,但不一定是这种情况,通常在实际的实现中也不是。还应当注意,在一些实施例中,尽管使用注册表项来获取包括控制和管理策略规则的文件,但是在某些实施例中,文件或其他策略信息格式是从指挥器应用传递的。在某些实施例中,服务器ui允许管理员定义策略,该策略将经由连接来传递(例如,作为.json有效载荷)。但是,在某些实施例中,该策略不一定是管理员明确编写的“文件”。
[0096]
在一些实施例中,可以将定制管理规则开发为工作流程分析器过程的一部分。例如,在一些实施例中,rpa设计器应用的安装脚本可以将自定义管理规则安装到用户的计算系统。参见例如图7的屏幕截图700,其示出了ui的一部分,其中文件samplegovernancerules.dll 710安装在uipath studio
tm
的规则文件夹中。因为samplegovernancerules.dll 710位于program files文件夹中,所以只有管理员可以修改它。在其计算机上没有管理特权的最终用户不能。因此,没有这种特权的最终用户将拥有管理策略,并且将无法覆盖或改变它。
[0097]
图8是示出根据本发明的实施例的程序包管理界面800的屏幕截图。在该实施例中,用于开发人员的程序包馈送已经被锁定。更具体地,开发人员仅有权访问官方程序包馈送810,并且开发人员不能启用或禁用官方程序包馈送810。开发人员也不能为用户定义的程序包输入名称820或源830,使用添加按钮840来添加用户定义的程序包,或者使用保存按钮850保存已修改程序包设置。这样可以防止开发人员从组织不希望的任何地方获取活动程序包。
[0098]
一些组织可能担心开发人员在开发过程中可能将敏感信息泄漏给rpa设计器应用的提供者。因此,在一些实施例中,作为策略问题,在rpa设计器应用中禁用了发送反馈功能。参见例如图9,该图是屏幕截屏,其示出了rpa设计器应用的右上部分900,其中发送反馈图标被禁用并且指示正是这种情况的消息910。
[0099]
图10a是示出根据本发明的实施例的工作流程分析器设置界面1000的屏幕截图。在一些实施例中,工作流程分析器设置来自策略配置文件。从图10a中可以看出,规则窗格1002中列出了各种规则,且具有相应的代码(code)、名称(name)、范围(scope)和默认动作(default action)。针对所选择的规则的特定设置选项被示出在规则设置窗格1004中。
[0100]
在该实施例中,存在四种类型的访问限制——应用/url限制1010、程序包限制1020、活动限制1030和活动属性要求1040。但是,在没有偏离本发明的范围的情况下,可以使用任何数目和/或类型的访问限制。应用/url限制1010控制rpa设计器应用的用户被允许和/或不允许使用哪些应用和/或url。例如,参考图10b,如果有任何应用被禁止,则被禁止的应用将被示出在禁止应用字段1012中,并且被允许的应用被示出在允许应用字段1014中。如果用户向下滚动,则被禁止的url和被允许的url也将被示出在相应字段中。自然,给定应用或url不能既被禁止(即,将其列入黑名单)又被允许(即,将其列入白名单)。在某些实施例中,如果指定了被允许的应用,则用户只能使用那些应用。在该实施例中,这些字段是只读的。
prelease package(true/false))1414被设置为“真”(true)。
[0109]
根据以上内容,在一些实施例中,将管理作为rpa设计器应用的安装脚本的一部分来启用。在某些实施例中,可以经由注册密钥来设置远程策略文件,以使rpa设计器应用始终具有管理策略的当前版本。替代地,策略文件可以位于rpa设计器应用所在的本地计算系统上的受保护位置。在一些实施例中,作为安装脚本的一部分,将自定义规则部署到受保护的“规则”文件夹中。
[0110]
在一些实施例中,为精通技术的用户和没有牢固编程知识的用户实施单独的策略。在某些实施例中,基于给定用户、用户角色、用户组等应用不同的策略。在某些实施例中,用户无法运行或发布不合规的rpa工作流程。
[0111]
图15是示出根据本发明的实施例的用于在机器人执行时执行用于rpa的访问控制和管理的系统1500的架构图。系统1500包括用户计算系统,诸如台式计算机1502、平板电脑1504和智能电话1506。但是,在不脱离本发明的范围的情况下,可以使用任何期望的计算系统,包括但不限于智能手表、膝上型计算机、物联网(iot)设备、车辆计算系统等。
[0112]
每个计算系统1502、1504、1506上运行有执行一个或多个自动化的rpa机器人1510。然而,在某些实施例中,计算系统1502、1504、1506可以执行不同的机器人。当执行其过程时,rpa机器人经由网络1520(例如,局域网(lan)、移动通信网络、卫星通信网络、互联网及其任何组合等)向服务器1530请求某些信息(例如,向在服务器1530上运行的指挥器应用发送请求)。例如,在不脱离本发明的范围的情况下,rpa机器人1510可以与服务器1530通信以发送或接收数据(例如,从数据队列中推/拉),取回安全存储的证书/资产信息(例如,用户名/密码、访问令牌等),日志记录来自活动的信息(例如,执行日志),报告“心跳状态”(例如,rpa机器人1510正在正确运行),检查“编排命令”(例如,“运行该命令”,“中止/取消执行”等),或任何其他合适的通信。在一些实施例中,服务器1530可以运行指挥器应用,并且数据可以作为心跳消息的一部分被周期性地发送。服务器1530从一个或多个文件1532、数据库1540或两者获取用于给定机器人的访问控制和管理规则。
[0113]
服务器1530根据访问控制和管理规则检查将由机器人1510执行的动作和/或由rpa机器人请求的信息。如果允许机器人1510采取该动作或获取该信息,则服务器1530将所请求的信息提供给机器人1510和/或将信息发送到相应计算系统上的验证应用,以指示该动作是可接受的。如果不是,则服务器1530不将所请求的信息提供给机器人1510和/或将信息发送到相应计算系统上的验证应用,以指示机器人1510尝试的动作是不可接受的。在某些实施例中,验证应用可以结束与机器人1510相关联的流程。
[0114]
在一些实施例中,不允许的动作可以是针对人类用户允许、但针对rpa机器人不允许的动作。在某些实施例中,服务器1530可以验证机器人1510对于一个或多个传统系统暂停足够长的时间,并且可以延迟获取机器人所请求的信息或从机器人接受新的信息请求,直到延迟时段到期。在某些实施例中,除了设计时实施,还在运行时实施管理。在一些实施例中,例如,当计算系统1502、1504、1506连接到服务器1530的服务器侧指挥器应用时,策略可以被自动发送到计算系统1502、1504、1506。在一些实施例中,rpa设计器应用可以自动将代码插入rpa机器人中,从而迫使它们获取这些策略并且根据这些策略进行操作。
[0115]
图16是示出根据本发明的实施例的用于执行rpa设计器应用的机器人访问控制和管理的过程1600的流程图。该过程开始于在1605从计算系统的注册表条目中确定到包括访
问控制和管理策略规则的文件的链接,并且在1610使用所确定的链接下载文件。在一些实施例中,访问控制和管理策略规则经由用于rpa设计器应用的安装脚本来实现。在1615,工作流程分析器从文件中读取用于rpa设计器应用的访问控制和管理策略规则。
[0116]
在一些实施例中,访问控制和管理策略规则包括:关于哪些应用和/或通用资源定位符(url)能够和/或不能被自动化的控制、关于哪些活动能够和/或不能在rpa工作流程中使用的控制、关于哪些程序包能够和/或不能用于rpa工作流程的控制、或其组合。在某些实施例中,基于组织、角色、组、个体开发人员或其组合为rpa设计器应用定义访问控制和管理策略规则。在一些实施例中,当访问控制和管理策略规则被计算系统的操作系统实施时,不能由rpa设计器应用的用户修改,其中该计算系统上执行有rpa设计器应用。在某些实施例中,访问控制和管理策略规则包括一个或多个应用和/或url限制、一个或多个程序包限制、一个或多个活动限制、一个或多个活动属性要求、或其组合。
[0117]
在一些实施例中,在1620,可以显示各种界面,并且可以阻止未经许可的用户修改。例如,可以显示包括可以由rpa工作流程的活动访问的程序包的程序包管理界面,并且基于访问控制和管理策略规则,可以阻止rpa设计器应用的用户修改允许的程序包或添加不允许的新程序包。作为另一示例,可以显示列出访问控制和管理策略规则的工作流程分析器设置界面,并且可以阻止rpa设计器应用的用户修改访问控制和管理策略规则。
[0118]
在1625,根据访问控制和管理策略规则来分析rpa设计器应用的rpa工作流程的活动。在一些实施例中,对rpa工作流程的活动的分析包括验证要在rpa工作流程活动中访问的一个或多个库是否被包括在白名单中或未被包括在黑名单中。如果验证在1630成功(即,rpa工作流程活动符合所有必需的访问控制和管理策略规则),则在1635,生成实现rpa工作流程的rpa机器人或发布rpa工作流程。但是,如果验证在1630失败(即,rpa工作流程的一个或多个被分析活动违反了访问控制和管理策略规则),则阻止rpa机器人的生成或rpa工作流程的发布,直到rpa工作流程满足访问控制和管理策略规则。在该实施例中,在1640,rpa工作流程分析器/rpa设计器应用等待用户对rpa工作流程进行修改。然后,该过程返回到步骤1625以分析rpa工作流程的修改后的活动。在一些实施例中,仅再次分析已经修改的活动。
[0119]
图17是示出根据本发明的实施例的用于执行正在执行的rpa机器人的rpa的机器人访问控制和管理的过程1700的流程图。该过程开始于在1710根据访问控制和管理规则检查将由rpa机器人执行的动作和/或由rpa机器人请求的信息。例如,该检查可以由客户端侧或服务器侧的验证应用来执行。如果在1720允许rpa机器人执行操作和/或获取信息,则在1730,将所请求的信息提供给rpa机器人和/或授权操作。然后,在1740验证应用等待,直到接收到下一rpa机器人通信。
[0120]
如果在1720不允许rpa机器人采取行动和/或获取信息,则在1750验证应用阻止rpa机器人获取信息和/或采取行动。在一些实施例中,在1760,可以将关于不允许访问信息和/或动作的通知发送给rpa机器人。在某些实施例中,在1770,验证应用可以自动结束rpa机器人的执行(例如,通过终止与rpa机器人相关联的进程)。
[0121]
在一些实施例中,不允许的动作可以是针对人类用户允许、但针对rpa机器人不允许的动作。在某些实施例中,验证应用可以验证rpa机器人对于一个或多个传统系统暂停足够长的时间,并且可以延迟获取rpa机器人请求的信息或从rpa机器人接受新的信息请求,
直到延迟时段到期。
[0122]
根据本发明的实施例,图16和图17中执行的过程步骤可以由计算机程序执行,该计算机程序编码有指令,该指令用于使(多个)处理器执行图16和图17中所描述的(多个)过程的至少一部分。计算机程序可以被实施在非瞬态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、ram、磁带和/或用于存储数据的任何其他此类介质或介质的组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如图5的计算系统500的(多个)处理器510)以实现图16和图17中所描述的过程步骤中的全部或一部分的编码指令,这些编码指令还可以被存储在计算机可读介质上。
[0123]
计算机程序可以被实现在硬件、软件或混合实现中。计算机程序可以由彼此可操作地通信并且被设计成传递信息或指令以进行显示的模块组成。计算机程序可以被配置为在通用计算机、asic或任何其他合适的设备上操作。
[0124]
将容易地理解,如本文中的诸图中大体上描述和图示的,本发明的各种实施例的组件可以以多种不同配置来布置和设计。因此,如附图中所表示,对本发明的实施例的详细描述并不旨在限制所要求保护的本发明的范围,而是仅仅表示本发明的所选择的实施例。
[0125]
贯穿本说明书描述的本发明的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。例如,贯穿本说明书,对“某些实施例”、“一些实施例”或类似语言的参考是指结合实施例所描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书,短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言的出现并不一定全都是指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
[0126]
应注意,贯穿本说明书,对特征、优点或类似语言的参考并不意味着可以用本发明实现的所有特征和优点都应该在或都在本发明的任何单个实施例中。相反,涉及特征和优点的语言被理解为是指结合实施例所描述的特定特征、优点或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书,对特征和优点以及类似语言的讨论可以但并不一定是指相同实施例。
[0127]
此外,本发明的所描述的特征、结构和特性可以在一个或多个实施例中以任何合适的方式组合。相关领域的技术人员应认识到,可以在不具有特定实施例的特定特征或优点中的一者或多者的情况下实践本发明。在其他情况下,可以不存在于本发明的所有实施例中的附加特征和优点在某些实施例中可能被识别。
[0128]
本领域的普通技术人员应容易地理解,可以利用不同顺序的步骤和/或利用与所公开的配置不同的配置的硬件元件来实践如上文所描述的本发明。因此,尽管已经基于这些优选实施例描述了本发明,但对于本领域的技术人员而言将明显的是,某些修改、变型和备选构造将是明显的,同时仍在本发明的精神和范围内。因此,为了确定本发明的界限和边界,应当参考所附权利要求书。
再多了解一些

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

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

相关文献