JP2023537540A - 2つ以上のグラフィカル要素検出技術からのユーザーインターフェース記述子属性の組み合わせを用いたグラフィカル要素検出 - Google Patents
2つ以上のグラフィカル要素検出技術からのユーザーインターフェース記述子属性の組み合わせを用いたグラフィカル要素検出 Download PDFInfo
- Publication number
- JP2023537540A JP2023537540A JP2020553478A JP2020553478A JP2023537540A JP 2023537540 A JP2023537540 A JP 2023537540A JP 2020553478 A JP2020553478 A JP 2020553478A JP 2020553478 A JP2020553478 A JP 2020553478A JP 2023537540 A JP2023537540 A JP 2023537540A
- Authority
- JP
- Japan
- Prior art keywords
- attributes
- graphical element
- computer
- element detection
- computer program
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing 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/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- 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
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
-
- 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/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
- G06V10/235—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on user input or interaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/945—User interactive design; Environments; Toolboxes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/42—Document-oriented image-based pattern recognition based on the type of document
- G06V30/422—Technical drawings; Geographical maps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/02—Recognising information on displays, dials, clocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Human Computer Interaction (AREA)
- Strategic Management (AREA)
- Quality & Reliability (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Multimedia (AREA)
- Tourism & Hospitality (AREA)
- Computer Hardware Design (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Game Theory and Decision Science (AREA)
- Data Mining & Analysis (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Artificial Intelligence (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
- Burglar Alarm Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
2つ以上のグラフィカル要素検出技術からのユーザーインターフェース(UI)記述子属性の組み合わせを用いたグラフィカル要素検出が開示される。UI記述子は、与えられたUI記述子の属性を、UI内で実行時に発見されたUI要素の属性と比較するために使用され得る。実行時には、UIで見つかったUI要素の属性は、それぞれのRPAワークフローアクティビティの属性との一致を検索され得、完全一致または一致しきい値内での一致が見つかった場合には、UI要素が識別され、それに応じて対話され得る。【選択図】図1
Description
(関連出願への相互参照)
本出願は、2020年8月11日に出願された米国非仮特許出願第16/990,709号の利益を主張する。先に提出された本出願の主題は、その全体を参照することにより、本明細書に組み込まれる。
本出願は、2020年8月11日に出願された米国非仮特許出願第16/990,709号の利益を主張する。先に提出された本出願の主題は、その全体を参照することにより、本明細書に組み込まれる。
本発明は概して、グラフィカル要素検出に関するものであり、より具体的には、2つ以上のグラフィカル要素検出技術からのユーザーインターフェース(UI)記述子属性の組み合わせを用いたグラフィカル要素検出に関するものである。
UIにおけるロボティックプロセスオートメーション(RPA)の場合、UIのアクションごとに、セレクタ、コンピュータビジョン(CV)、または光学的文字認識(OCR)を用いて、グラフィカル要素検出を行ってもよい。しかし、これらの技術は個別に適用され、全てのシナリオに最適なものではない。したがって、改良されたアプローチが有益であり得る。
本発明の特定の実施形態は、現在のグラフィカル要素検出技術よってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供し得る。例えば、本発明のいくつかの実施形態は、2つ以上のグラフィカル要素検出技術(例えば、セレクタ、CV、OCRなど)からのUI記述子属性の組み合わせを用いたグラフィカル要素検出に関する。
実施形態では、UI内のグラフィカル要素を検出するためのコンピュータ実装方法は、デザイナアプリケーションによって、RPAワークフローで構成されるアクティビティの選択を受信することを含む。コンピュータ実装方法はまた、デザイナアプリケーションによって、複数のグラフィカル要素検出技術のうちの1もしくは複数のグラフィカル要素検出技術、グラフィカル要素検出技術のうちの1もしくは複数のUI記述子属性、またはそれらの組み合わせのうちの1もしくは複数のグラフィカル要素検出技術の選択および/または修正を受信することを含む。コンピュータ実装方法はさらに、受信された選択および/または修正に基づいて、デザイナアプリケーションによって、アクティビティを構成することをさらに含む。
別の実施形態では、コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体上に具現化される。プログラムは、少なくとも1つのプロセッサがRPAワークフローで構成されるアクティビティの選択を受信するように構成される。コンピュータプログラムはまた、少なくとも1つのプロセッサがデザイナアプリケーションによって、複数のグラフィカル要素検出技術のうちの1もしくは複数のグラフィカル要素検出技術、グラフィカル要素検出技術のうちの1もしくは複数のUI記述子属性、またはそれらの組み合わせのうちの1もしくは複数のグラフィカル要素検出技術の選択および/または修正を受信するように構成される。コンピュータプログラムはさらに、少なくとも1つのプロセッサが受信した選択および/または修正に基づいてアクティビティを構成するように構成される。
さらに別の実施形態では、コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体上に具現化される。プログラムは、実行時に少なくとも1つのプロセッサがUIを分析してUI要素属性を特定するように構成される。コンピュータプログラムはまた、少なくとも1つのプロセッサがUI要素属性を、RPAワークフローのアクティビティのための複数のグラフィカル要素検出技術からUI記述子属性と比較するように構成される。複数のグラフィカル要素検出技術の属性に一致するUI要素が、完全一致またはしきい値一致を介して検出された場合、コンピュータプログラムは、少なくとも1つのプロセッサがUI要素が関与するアクティビティに関連したアクションを実行するように構成される。
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
別段の記載がない限り、類似の参照文字は、添付の図面全体で一貫して対応する特徴を示す。
(実施形態の詳細な説明)
いくつかの実施形態は、2つ以上のグラフィカル要素検出技術(例えば、セレクタ、CV、OCRなど)からのUI記述子属性の組み合わせを用いたグラフィカル要素検出に関する。本明細書では、「グラフィカル要素」と「UI要素」は互換的に使用される。それらの中核となるUI記述子は、UI要素(例えば、テキストフィールド、ボタン、ラベル、メニュー、チェックボックスなど)を識別する。UI記述子のいくつかのタイプは、セレクタ、CV記述子、画像マッチング記述子、OCR記述子、複数の異なるタイプのUI記述子を直列または並列に利用してもよい統一ターゲット記述子などを含むが、これらに限定されない。UI記述子は、与えられたUI記述子の属性を、UI内で実行時に発見されたUI要素属性と比較するために使用され得る。
いくつかの実施形態は、2つ以上のグラフィカル要素検出技術(例えば、セレクタ、CV、OCRなど)からのUI記述子属性の組み合わせを用いたグラフィカル要素検出に関する。本明細書では、「グラフィカル要素」と「UI要素」は互換的に使用される。それらの中核となるUI記述子は、UI要素(例えば、テキストフィールド、ボタン、ラベル、メニュー、チェックボックスなど)を識別する。UI記述子のいくつかのタイプは、セレクタ、CV記述子、画像マッチング記述子、OCR記述子、複数の異なるタイプのUI記述子を直列または並列に利用してもよい統一ターゲット記述子などを含むが、これらに限定されない。UI記述子は、与えられたUI記述子の属性を、UI内で実行時に発見されたUI要素属性と比較するために使用され得る。
いくつかの実施形態では、UI記述子は、それぞれのUI要素およびその親の属性を、例えば、拡張可能なマークアップ言語(XML)フラグメントに格納する。実行時には、UIで見つかったUI要素属性は、それぞれのRPAワークフローアクティビティの属性との一致を検索され得、完全一致または「十分に近い」一致が一致しきい値内で見つかった場合には、UI要素が識別され、それに応じて対話され得る。属性には、テキストベースの識別子(ID)、クラス、ロールなどが含まれていてもよい。CVの場合、属性は、ターゲット要素のタイプと、マルチアンカーマッチングアプローチで使用され得る1または複数のアンカー要素との関係を含んでもよい。OCRの場合、属性は、例えば、格納された文字列の形をしたテキストと、実行中に格納された文字列がファジーマッチングされたOCRを介して発見されたテキストとを含んでもよい。本発明の範囲を逸脱することなく、任意の好適な属性およびグラフィカル要素検出技術を用いることができる。
いくつかの実施形態では、2つ以上の異なるグラフィカル要素検出技術から、自動的にまたはカスタム定義された属性のミックスを検索する。例えば、いくつかのセレクタ属性、いくつかのCV記述子属性、およびいくつかのOCR記述子属性は、集合的に、そして潜在的に同時に、任意のグラフィカル要素検出技術を単独で使用するよりもより正確であるかもしれない方法で、実行時にグラフィカル要素を識別するために使用されてもよい。例えば、画面上に異なる外観を持つ様々なチェックボックスのグループがある場合、チェックボックスの画像を識別するための画像マッチング記述子と、近くのアンカーUI要素との関係で特定のチェックボックスの位置に関連する複数のアンカーマッチング情報を提供するCV記述子の組み合わせを使用することは理にかなっている場合がある。これにより、単一のグラフィカル要素検出技術を超えて精度が向上し得る。
いくつかの実施形態では、結合されたグラフィカル要素検出技術は、RPAデザイナアプリケーション(例えば、UiPath Studio(商標))を使用して設計時に構成され得る。例えば、創造的なクリックアクティビティは、識別されるターゲットのグラフィカル要素のタイプを見て、および/または識別されるターゲットのグラフィカル要素の特定の特性を見て、使用するグラフィカル要素検出技術およびそれぞれの属性をどのように組み合わせるかを自動的に決定するように構成され得る。特定の実施形態では、RPA開発者は、アクティビティのデフォルトロジックを変更してもよいし、および/または手動で使用するためのグラフィカル要素検出技術およびその属性を提供してもよい。例えば、RPA開発者は、適用するグラフィカル要素検出技術のタイプを選択してもよい。いくつかの実施形態では、RPA開発者は、与えられた技術の属性のリストから選択してもよいし、開発者は、属性を手動で入力してもよいなどである。
これらの技術から使用される属性の組み合わせは、各技術の属性のサブセットおよび/または全てであってもよい。例えば、いくつかの実施形態では、選択された全ての技術の全ての属性が使用されてもよい。しかし、特定の実施形態では、セレクタからの1つの属性が使用されてもよいし、CV記述子からの2つの属性が使用されてもよいし、OCR記述子からの全属性が使用されてもよいなどである。
本明細書で使用されるように、「画面」とは、ある時点でのアプリケーションUIまたはアプリケーションUIの一部の画像である。いくつかの実施形態では、UI要素および画面は、特定のタイプのUI要素(例えば、ボタン、チェックボックス、テキストフィールドなど)および画面(例えば、トップウィンドウ、モーダルウィンドウ、ポップアップウィンドウなど)にさらに区別されてもよい。
いくつかの実施形態では、UI要素とその親の属性をXMLフラグメントに格納するUI記述子を使用する。最近のコンピューティングシステムでは、オペレーティングシステムは通常、各ユーザーインターフェースを一般的にUIツリーと呼ばれる階層的なデータ構造として表現する。例示的なUIツリーは、ウェブブラウザアプリケーションによってレンダリングされるウェブページの基礎となるドキュメントオブジェクトモデル(DOM(Document Object Model))を含み得る。
セレクタは、いくつかの実施形態においてUI要素を検出するために使用され得るUI記述子に対するタイプである。セレクタは、いくつかの実施形態では、以下の構造を有する。
<node_1/><node_2/>...<node_N/>
<node_1/><node_2/>...<node_N/>
最後のノードは対象のGUI要素を表し、それ以前の全てのノードはその要素の親を表す。<node_1>は通常ルートノードと呼ばれ、アプリケーションのトップウィンドウを表す。
各ノードは、選択されたアプリケーションの特定のレベルの正しい識別を支援する1または複数の属性を有してもよい。各ノードは、いくつかの実施形態では、以下の形式を有する。
<ui_system attr_name_1=’attr_value_1’...attr_name_N=’attr_value_N’/>
<ui_system attr_name_1=’attr_value_1’...attr_name_N=’attr_value_N’/>
全ての属性は、割り当てられた値を有し得、一定の値を有する属性が選択され得る。これは、アプリケーションが起動するたびに属性の値を変更すると、セレクタが関連する要素を正しく識別できなくなる可能性があるからである。
UI記述子とは、UI要素を見つけるための命令のセットである。いくつかの実施形態におけるUI記述子は、UI要素セレクタ(複数可)、アンカーセレクタ(複数可)、CV記述子(複数可)、OCR記述子(複数可)、2つのタイプ以上のUI記述子を組み合わせた統一ターゲット記述子(複数可)、画面イメージキャプチャ(コンテキスト)、要素イメージキャプチャ、他のメタデータ(例えば、アプリケーションおよびアプリケーションバージョン)、それらの組み合わせなどを含むカプセル化されたデータ/構造フォーマットである。カプセル化されたデータ/構造フォーマットは、プラットフォームへの将来のアップデートによって拡張可能であってもよく、上記の定義に限定されるものではない。画面上のUI要素を識別するためのUI記述子としては、本発明の範囲を逸脱することなく、任意の好適なものを使用することができる。RPAワークフロー内のアクティビティからUI記述子が抽出され、UIアプリケーション、画面、およびUI要素ごとにUI記述子をグループ化する構造化スキーマに追加され得る。
UI記述子は、いくつかの実施形態では、画像の検出および定義が実行される複数または全てのUI検出メカニズムを包含する統一ターゲットと協働してもよい。統一ターゲットは、UI要素を識別して自動化する複数の技術を、単一のまとまりのあるアプローチに併合してもよい。統一ターゲット記述子は、複数のタイプのUI記述子を直列に連鎖させ、それらを並列に使用し、または、少なくとも1つの技術(例えば、セレクタ)を最初に一定期間使用し、最初の技術が期間内に一致を見つけられなかった場合には、次いで他の少なくとも1つの技術を並列に実行する。いくつかの実施形態では、統一ターゲット記述子は、第1コンテキストでは第1UI記述子メカニズムが適用され、第2コンテキストでは第2UI記述子が適用されるなど、有限状態機械(FSM)のように機能してもよい。統一ターゲットは、セレクタベースのUI検出メカニズムとドライバベースのUI検出メカニズムに優先順位をつけ、いくつかの実施形態では最初の2つのメカニズムが成功しない場合、グラフィカル要素を見つけるためにCV、イメージマッチング、および/または他のメカニズムに頼ってもよい。
いくつかの実施形態では、ファジーマッチングが採用されてもよく、ここでは、文字列メトリック(例えば、レーベンシュタイン距離、ハミング距離、ジャロ・ウィンクラー距離など)、それらの組み合わせなどを使用して、1つまたは複数の属性が、一定の範囲内で、一定の精度(例えば、70%一致、80%一致、99%一致など)で一致しなければならない。当業者であれば、類似度測定は、類似度の量だけでなく、2つの属性値の間の不一致の量を定量化することができることを理解するであろう。さらに、様々な実施形態では、類似度しきい値は、不一致の最大量または一致に必要な類似度の最小量を表してもよい。
類似度測定値を計算する選択された方法に応じて、類似度しきい値は様々な解釈を有し得る。例えば、類似度しきい値は、2つの文字列の間で異なり得る文字の最大カウント数を示してもよいし、文字の合計カウント数(例えば、結合された文字列の長さ)の割合として計算された不一致の分数の程度を示してもよい。いくつかの実施形態では、類似度しきい値は、0と1の間、0と100の間、7と34の間などの所定の間隔に再スケーリングされてもよい。1つの非限定的な例では、比較的高い類似度しきい値(例えば、1または100%に近い)は、ほぼ完全一致の要件、すなわち、実行時間ターゲットにおけるファジー属性の値が、設計時間ターゲットにおける各属性の値から非常にわずかに逸脱することしか許されないことを示す。一方、類似度しきい値が比較的低い(例えば、0に近い)場合には、それぞれのファジー属性のほぼ全ての値が一致するとみなされる。
特定の実施形態では、マッチング許容差は属性の基準ごとに異なっていてもよい。例えば、1または複数の属性に対して完全一致が要求されてもよく(例えば、特定の正確な名前を見つけることが望まれてもよい)、1または複数の他の属性に対してファジーマッチングが実行されてもよい。各グラフィカル要素検出技術から使用される属性の数および/またはタイプは、いくつかの実施形態では、RPA開発者によってカスタム指定されてもよい。
いくつかの実施形態では、属性は、属性-値のペアおよび/または属性-値-許容差のペア(例えば、ファジーマッチング)として格納されてもよい。属性-値のペアは、いくつかの実施形態では、それぞれのノードによって表されるUI要素の名前とタイプを示し得る。しかしながら、当業者は、本発明の範囲から逸脱することなく、属性-値のペアのリスト以外に、UIツリー内の特定のノードの位置を表現する複数の方法があり得ることを理解するであろう。
これらの属性-値のペアおよび/または属性-値-許容差のペアは、いくつかの実施形態ではタグに格納されてもよく、各タグは、実装固有の区切り文字(例えば、「<」で始まり「/>」で終わる)によってブックエンドされたシーケンスを有する文字の列を含み得る。属性-値のペアは、いくつかの実施形態では、それぞれのノードによって表されるUI要素の名前とタイプを示し得る。しかしながら、当業者は、本発明の範囲から逸脱することなく、属性-値のペアのリスト以外に、UIツリー内の特定のノードの位置を表現する複数の方法があり得ることを理解するであろう。
RPAロボットによる成功的かつ理想的に曖昧さのない識別を可能にするために、いくつかの実施形態では、それぞれのUI要素を特徴づける要素IDを使用して各UI要素を表現する。いくつかの実施形態では、要素IDは、UIツリー内のターゲットノードの位置を示し、ここで、ターゲットノードはそれぞれのUI要素を表す。例えば、要素IDは、ターゲットノード/UI要素を、選択されたノードのサブセットのメンバーとして識別してもよい。ノードの選択されたサブセットは、系図、すなわち、各ノードが別のノードの先祖または子孫のいずれかであるUIツリーを介した下降線を形成することができる。
いくつかの実施形態では、要素IDは、ノードインジケータの順序付けされたシーケンスを含み、シーケンスはUIツリーを介して系図的な経路を追跡し、経路はそれぞれのターゲットノード/UI要素で終わる。各ノードインジケータは、それぞれのUIのオブジェクト階層のメンバーと、それぞれの階層と一致するシーケンス内のその位置を表してもよい。例えば、シーケンスの各メンバーは、前のメンバーの子孫(例えば、子ノード)を表し、次のメンバーを子孫(例えば、子ノード)としてもよい。1つのハイパーテキストマークアップ言語(HTML)の例では、個々のフォームフィールドを表す要素IDは、それぞれのフォームフィールドがHTMLフォームの子であることを示してもよく、その子は、順番にウェブページの特定のセクションなどの子である。系図は、いくつかの実施形態では完全である必要はない。
いくつかの実施形態では、1または複数のマルチアンカーマッチング属性を使用してもよい。アンカーは、ターゲットUI要素を一意に識別するために使用され得る他のUI要素である。例えば、UIに複数のテキストフィールドが含まれている場合、テキストフィールドを検索するだけでは、与えられたテキストフィールドを一意に識別するには不十分である。したがって、いくつかの実施形態では、与えられたUI要素を一意に識別するために、追加の情報を探す。テキストフィールドの例を使用すると、「ファーストネーム(First Name)」というラベルの右側に、ファーストネームを入力するためのテキストフィールドが表示される場合があり得る。このファーストネームラベルは、「ターゲット」であるテキストフィールドを一意に識別するのに役立つように、「アンカー」として設定してもよい。
いくつかの実施形態では、ターゲットとアンカーの間の様々な位置および/または幾何学的な関連付けが、ターゲットを一意に識別するために、1つまたは複数の許容差内で使用される可能性がある。例えば、アンカーとターゲットのバウンディングボックスの中心が線セグメントを定義するために使用されてもよい。次いで、この線セグメントは、ターゲット/アンカーペアを使用してターゲットを一意に識別するために、許容差内の特定の長さおよび/または許容差内の傾きを有することが要求され得る。しかしながら、ターゲットおよび/またはアンカーに関連付けられた位置の任意の所望の位置は、本発明の範囲から逸脱することなく、いくつかの実施形態において使用され得る。例えば、線セグメントを描画するための点は、バウンディングボックス特性に関連して識別される、バウンディングボックスの境界上の中央、左上隅、右上隅、左下隅、右下隅、他の任意の位置、バウンディングボックス内の任意の位置、バウンディングボックスの外側の位置内などにあり得る。特定の実施形態では、ターゲットおよび1または複数のアンカーは、幾何学的マッチングのために使用されるそれらのバウンディングボックス内またはバウンディングボックス外の異なる位置を有してもよい。
以上のように、画面上のターゲット要素を一定の信頼性をもって一意に識別するためには、単一のアンカーだけでは必ずしも十分ではない場合がある。例えば、画面上の異なる位置にある「ファーストネーム」というラベルのそれぞれの右側に、ファーストネーム前を入力するための2つのテキストフィールドが表示されているウェブフォームを考えてみる。この例では、1または複数の追加のアンカーは、所与のターゲットを一意に識別するのに有用であり得る。アンカーとターゲットとの間の幾何学的特性(例えば、許容差を有する線セグメントの長さ、角度、および/または相対位置)は、ターゲットを一意に識別するために使用されてもよい。ユーザーは、ターゲットに対する一致強度がしきい値を超えるまでアンカーを追加し続けることが要求されてもよい。
本明細書で使用されるように、用語「ユーザー」および「開発者」は互換的に使用される。ユーザー/開発者は、プログラミングおよび/または技術的な知識を持っている場合と持っていない場合がある。例えば、いくつかの実施形態では、ユーザー/開発者は、手動でコーディングすることなく、RPAワークフロー内のアクティビティを構成することにより、RPAワークフローを作成し得る。特定の実施形態では、これは、例えば、様々な機能をクリックしてドラッグアンドドロップすることによって行われてもよい。
特定の実施形態は、ロボティックプロセスオートメーション(RPA)に採用されてもよい。図1は、本発明の実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計して実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にし得る。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発およびデプロイメントを容易にする。
自動化プロジェクトは、本明細書で「アクティビティ」と定義されるワークフローで開発されたカスタムセットのステップ間の実行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
ワークフローのいくつかのタイプには、シーケンス、フローチャート、FSM、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによってトリガされる有限の数の状態をそれらの実行中に使用し得る。グローバル例外ハンドラは、実行エラーに遭遇したときのワークフローの動作を決定したり、プロセスをデバッグしたりするのに特に適し得る。
ワークフローがデザイナ110内で開発されると、ビジネスプロセスの実行は、コンダクタ120によって調整され、デザイナ110内で開発されたワークフローを実行する1または複数のロボット130を調整する。コンダクタ120の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの生成、監視、およびデプロイメントの管理を容易にする。コンダクタ120は、サードパーティのソリューションおよびアプリケーションとの統合ポイント、または統合ポイントの1つとして動作し得る。
コンダクタ120は、全てのロボット130を管理し得、ロボット130を集中ポイントから接続して実行する。管理され得るロボット130のタイプには、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発およびテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット132は、ユーザーイベントによってトリガされてもよいし、自動的に発生するようにスケジュールされてもよく、同じコンピューティングシステム上で人と並んで動作し得る。アテンディッドロボット132は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ120とともに使用され得る。アテンディッドロボット132は、人のユーザーが様々なタスクを達成するのを支援してもよく、ユーザーイベントによってトリガされてもよい。いくつかの実施形態では、プロセスは、このタイプのロボット上でコンダクタ120から開始することができず、および/またはそれらはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイからまたはコマンドプロンプトからのみ起動され得る。アテンディッドロボット132は、いくつかの実施形態では、人の監督下で動作することが好ましい。
アンアテンディッドロボット134は、仮想環境または物理マシン上で無人で動作し、多くのプロセスを自動化することができる。アンアテンディッドロボット134は、リモート実行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。全てのロボットタイプのためのデバッグは、いくつかの実施形態では、デザイナ110から実行され得る。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイル装置アプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化し得る。
コンダクタ120は、プロビジョニング、デプロイメント、バージョニング、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な能力を有し得る。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含み得る。デプロイメントは、実行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含み得る。バージョニングは、いくつかの実施形態では、いくつかのプロセスまたは構成の固有のインスタンスの管理を含んでもよい。構成は、ロボット環境およびプロセス構成のメンテナンスおよび配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの識別データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ120は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として動作することにより、相互接続性を提供し得る。
ロボット130は、デザイナ110で構築されたワークフローを実行する実行エージェントである。ロボット(複数可)130のいくつかの実施形態の1つの商業的な例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトで、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、このようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を有し得る。
いくつかの実施形態では、ロボット130は、ユーザーモードで設置され得る。このようなロボット130については、所定のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特色はまた、各マシンを最大限に全活用することを保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、いずれかのタイプのロボット130は、HD環境で構成され得る。
いくつかの実施形態におけるロボット130は、複数のコンポーネントに分割され、それぞれが特定の自動化タスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と実行ホスト(すなわち、ロボット130が実行されるコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット130の資格情報を任されて管理する。コンソールアプリケーションは、ローカルシステム下のSCMによって起動される。
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と実行ホストとの間のプロキシとして動作する。ユーザーモードのロボットサービスは、ロボット130の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを実行し得る(つまり、ワークフローを実行し得る。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を意識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
上で説明したように、ロボット130のコンポーネントが分割されていることは、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントが何を実行しているかをより容易に実行し、識別し、および追跡するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な動作を構成し得る。エグゼキュータは常に、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで実行し得る。また、いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
図2は、本発明の実施形態による、展開したRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、図1のRPAシステム100であってもよく、またはその一部であってもよい。クライアント側、サーバー側、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステムを含むことができることに留意すべきである。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212、エージェント214、およびデザイナ216を含む。しかし、いくつかの実施形態では、デザイナ216は、コンピューティングシステム210上で実行されていなくてもよい。エグゼキュータ212はプロセスを実行する。図2に示すように、複数のビジネスプロジェクトが同時に実行され得る。エージェント214(例えば、Windows(登録商標)サービス)は、本実施形態では、全てのエグゼキュータ212のための単一の接続ポイントである。この実施形態における全てのメッセージは、コンダクタ230に記録され、コンダクタ230は、データベースサーバー240、インデクササーバー250、またはその両方を介して、それらをさらに処理する。図1に関して上述したように、エグゼキュータ212は、ロボットコンポーネントであり得る。
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理し得る。同時に実行される複数の対話型セッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され得、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。これは、上記のHDロボットと呼ばれる。
エージェント214はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、実行されるパッケージの必要なバージョンをダウンロードすることにも責任を負う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では、常にエージェント214によって開始される。通知シナリオでは、エージェント214は、後にコンダクタ230によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
サーバー側には、プレゼンテーション層(ウェブアプリケーション232、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント234、通知および監視236)、サービス層(API実装/ビジネスロジック238)、永続層(データベースサーバー240、インデクササーバー250)が含まれる。コンダクタ230は、ウェブアプリケーション232、OData REST APIエンドポイント234、通知および監視236、ならびにAPI実装/ビジネスロジック238を含む。いくつかの実施形態では、ユーザーがコンダクタ230のインターフェース(例えば、ブラウザ220を介して)で実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。このような動作は、本発明の範囲を逸脱することなく、ロボット上でのジョブの起動、キュー内のデータの追加/削除、無人で実行するジョブのスケジューリングなどを含み得るが、これらに限定されない。ウェブアプリケーション232は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかし、本発明の範囲を逸脱することなく、いずれかの所望のマークアップ言語、スクリプト言語、または他のいずれかのフォーマットを使用し得る。ユーザーは、コンダクタ230を制御するための様々な動作を実行するために、本実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページと対話する。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止などし得る。
ウェブアプリケーション232に加えて、コンダクタ230は、OData REST APIエンドポイント234を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントが含まれていてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって消費される。エージェント214は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するために使用され得る。デプロイメントRESTエンドポイントは、コンダクタ230においてジョブ開始コマンドが使用された場合に実行されるべきパッケージのバージョンを問い合わせるためにロボットによって使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視してもよい。通知および監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API236は、いくつかの実施形態では、WebSocket通信を使用してもよい。
永続層は、本実施形態では、一対のサーバー-データベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250-を含む。本実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー240は、ロボットによって記録されたメッセージを(インデクササーバー250に加えて、またはインデクササーバー250に代えて)格納してもよい。
いくつかの実施形態では任意であるが、インデクササーバー250は、ロボットによって記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー250は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットによって記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー250に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
図3は、本発明の実施形態による、デザイナ310、アクティビティ320、330、およびドライバ340の間の関係300を示すアーキテクチャ図である。以上のように、開発者は、デザイナ310を用いて、ロボットによって実行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUI自動化アクティビティ330を含んでもよい。いくつかの実施形態では、画像中の非テキストの視覚的コンポーネントを識別することができ、これは、本明細書ではコンピュータビジョン(CV)と呼ばれる。このようなコンポーネントに関連するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素の有無を検出、スコープの更新、ハイライトなどを含むが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学的文字認識(OCR)、ファジーテキストマッチング、およびマルチアンカーを使用して要素を識別し、それをクリックする。タイプは、上記および要素内のタイプを用いて要素を識別してもよい。テキストの取得は、特定のテキストの場所を特定し、OCRを使用してそれをスキャンし得る。ホバーは、要素を識別し、その上にホバーし得る。要素の有無の検出は、上述した技術を用いて、画面上に要素の有無を検出するかどうかを確認し得る。いくつかの実施形態では、デザイナ310に実装され得る数百または数千でさえのアクティビティが存在してもよい。しかし、本発明の範囲を逸脱することなく、いずれかの数および/またはアクティビティのタイプを利用することができる。
UI自動化アクティビティ330は、低レベルのコード(例えば、CVアクティビティ)で記述され、UI層を介したアプリケーションとの対話を促進する特別な低レベルのアクティビティのサブセットである。特定の実施形態では、UI自動化アクティビティ300は、例えば、ウィンドウメッセージなどを介したユーザー入力をシミュレートしてもよい。UI自動化アクティビティ330は、ロボットが所望のソフトウェアと対話することを可能にするドライバ340を介して、これらの対話を促進する。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含んでもよい。
ドライバ340は、フックを探したり、キーを監視したりするなど、低レベルでOSと対話してもよい。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を促進してもよい。例えば、「クリック」アクティビティは、ドライバ340を介して、これらの異なるアプリケーションにおいて同じ役割を果たす。
図4は、本発明の実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、図1および/または図2のRPAシステム100および/または200であってもよいし、それを含んでもよい。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信することができる。コンダクタコンピューティングシステム420は、順番に、データベースサーバー430および任意のインデクササーバー440と通信することができる。
図1および図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、いずれかの適切なクライアントおよび/またはサーバーソフトウェアを使用することができることに留意すべきである。例えば、コンダクタは、クライアントコンピューティングシステム上で、非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバーサイドアプリケーションを実行してもよい。
図5は、本発明の実施形態による、2つ以上のグラフィカル要素検出技術からのUI記述子属性の組み合わせを用いたグラフィカル要素検出を実行するように構成されたコンピューティングシステム500を例示するアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためのバス505に結合されたプロセッサ(複数可)510とを含む。プロセッサ(複数可)510は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)510はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)510は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
コンピューティングシステム500は、プロセッサ(複数可)510によって実行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)510によってアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体または両方などを含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
さらに、コンピューティングシステム500は、無線および/または有線接続を介して通信ネットワークへのアクセスを提供するために、トランシーバなどの通信装置520を含む。いくつかの実施形態では、通信装置520は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM:Global System for Mobile)通信、汎用パケット無線サービス(GPRS:General Packet Radio Service)、ユニバーサル移動体通信システム(UMTS:Universal Mobile Telecommunications System)、cdma2000、広帯域CDMA(W-CDMA:Wideband CDMA)、高速ダウンリンクパケットアクセス(HSDPA:High-Speed Downlink Packet Access)、高速アップリンクパケットアクセス(HSUPA:High-Speed Uplink Packet Access)、高速パケットアクセス(HSPA:High-Speed Packet Access)、ロングタームエボリューション(LTE:Long Term Evolution)、LTEアドバンスト(LTE-A:LTE Advanced)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB:Ultra-WideBand)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID:Radio Frequency Identification)、IrDA(Infrared Data Association)、近距離無線通信(NFC:Near-Field Communications)、第5世代(5G)、New Radio(NR)、それらのいずれかの組み合わせ、および/または本発明の範囲から逸脱することなく、いずれかの他の現在存在するまたは将来実装される通信標準および/またはプロトコルを使用するように構成され得る。いくつかの実施形態では、通信装置520は、本発明の範囲から逸脱することなく、単数のアンテナ、アレイ状のアンテナ、フェーズドアンテナ、スイッチドアンテナ、ビームフォーミングアンテナ、ビームステアリングアンテナ、それらの組み合わせ、および/またはいずれかの他のアンテナ構成である1または複数のアンテナを含み得る。
プロセッサ(複数可)510は、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、IPS(In-Plane Switching)ディスプレイ、またはユーザーに情報を表示するためのいずれかの他の適切なディスプレイなどのディスプレイ525にさらに結合されている。ディスプレイ525は、抵抗方式、静電容量方式、表面弾性波(SAW)静電容量方式、赤外線方式、光学イメージング方式、分散信号方式、音響パルス認識方式、フラストレート全内部反射方式などを用いて、タッチ(ハプティック)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されていてもよい。本発明の範囲を逸脱することなく、いずれかの好適な表示装置およびハプティックI/Oを使用することができる。
コンピュータマウス、タッチパッドなどのようなキーボード530およびカーソル制御装置535は、ユーザーがコンピューティングシステム500とインターフェースすることを可能にするために、バス505にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスと対話することができる。任意の入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力装置および/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム500と通信している別のコンピューティングシステムを介してリモートでコンピューティングシステム500と対話してもよいし、コンピューティングシステム500は自律的に動作してもよい。
メモリ515は、プロセッサ(複数可)510によって実行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールはさらに、本明細書に記載されたプロセスの全部もしくは一部またはその派生物を実行するように構成された複合技術グラフィカル要素検出モジュール545を含む。コンピューティングシステム500は、付加的な機能を含む1または複数の付加的な機能モジュール550を含み得る。
当業者であれば、「システム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」によって実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合性のあるローカライズされた形態および分散された形態で実装されてもよい。
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリート構成要素のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
モジュールまたは、様々なタイプのプロセッサによって実行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、実行可能コードの識別された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、実行可能な識別されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュ装置、RAM、テープのようなコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。
実際、実行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリ装置間に分散されていてもよい。同様に、操作データは、モジュール内で識別され、ここで示されてもよく、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。操作データは、単一のデータセットとして収集されてもよいし、または異なる記憶装置にわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
上記のように、いくつかの実施形態は、UI内のグラフィカル要素を識別するために、2つ以上のグラフィカル要素検出技術からの属性を採用する。これらの技術は、いくつかの実施形態では、RPAデザイナアプリケーションにおける設計時のRPAワークフローアクティビティのために構成され得る。図6Aは、本発明の実施形態による、RPAデザイナアプリケーション600のためのグラフィカル要素検出技術構成インターフェースの例を示す図である。RPAデザイナアプリケーション600は、RPAワークフロー開発ペイン610を含む。ユーザーがUI内のグラフィカル要素と対話するアクティビティをクリックすると、グラフィカル要素検出技術構成ペイン620は、可能なグラフィカル要素検出技術と、そのアクティビティのためのそれぞれの属性を表示する。
グラフィカル要素検出技術構成ペイン620は、複数のグラフィカル要素検出技術とその関連属性の中から選択する機能をRPA開発者に提供する。三角形622は、RPA開発者が、グラフィカル要素検出技術ごとの属性のリストを表示または非表示にすることを可能にする。グラフィカル要素検出技術選択チェックボックス624は、RPA開発者が、与えられたグラフィカル要素検出技術の全ての属性を一度に選択または選択解除することを可能にする。属性チェックボックス626は、RPA開発者がそれぞれの属性を選択または選択解除することを可能にする。
いくつかの実施形態では、ファジーマッチングが属性に採用されてもよい。ファジーマッチングラジオボタン628を選択することにより、RPA開発者は、それぞれのファジーマッチングしきい値フィールド629を出現させることができる。次に、RPA開発者は、ファジーマッチングのしきい値を指定し得る。いくつかの実施形態では、スライダ、XMLの手動編集などを含むがこれらに限定されない他の対話メカニズムが使用されてもよい。例えば、以下のようなタグが属性を含めて表示されてもよい:
<wnd app=’java.exe’ cls=’SunAwtFrame’ title=’SwingSet2’
matching:title=’fuzzy’fuzzylevel:title=’0.8’/>
<wnd app=’java.exe’ cls=’SunAwtFrame’ title=’SwingSet2’
matching:title=’fuzzy’fuzzylevel:title=’0.8’/>
ここで、<wnd/>タグに、「マッチング:タイトル(matching:title)」と「ファジーレベル:タイトル(fuzzylevel:title)」という属性が追加された。マッチング:タイトル属性は、現在のタグの「タイトル」属性の値が実行時にファジーマッチングされることを示す「ファジー」という値を有する。ファジーレベル:タイトル属性の値は、開発者によって指定された所望のファジー類似度しきい値(この例では0.8)を示す。当業者であれば、本発明の範囲を逸脱することなく、ファジーマッチングのために選択された属性を割り当てるファジーネスフラグをコード化する他の多くの方法があることを理解するであろう。
いくつかの実施形態では、RPAデザイナアプリケーションは、RPA開発者に手動で属性を検索する機能を提供してもよい。例えば、RPAデザイナアプリケーション600は、RPA開発者がテキストを入力するときに属性の検索を実行してもよい属性検索フィールド630を含む。特定の実施形態では、一致する属性のリスト(もしあれば)が、入力された各文字とともに表示されてもよい。
この例では、クリックアクティビティ612は、特定のチェックボックスをクリックするように構成されている。しかしながら、1または複数のグラフィカル要素との対話を求める任意の好適なアクティビティが、本発明の範囲から逸脱することなく使用され、構成されてもよい。各好適なアクティビティのためのグラフィカル要素検出技術(複数可)は、所望のRPAアクションを実行するような方法で構成され得る。特定の実施形態では、RPA開発者は、1または複数のアクティビティに対して単一のグラフィカル要素検出技術のみを使用し、1または複数の他のアクティビティに対して複数の同時グラフィカル要素検出技術を使用することを選択してもよい。これにより、柔軟性の高いRPA開発ツールを提供する。
図7Aおよび図8Bは、本発明の実施形態による、RPAデザイナアプリケーションのためのグラフィカル要素検出技術構成インターフェース700の別の例を示す図である。グラフィカル要素検出技術構成インターフェース600と同様に、グラフィカル要素検出技術構成インターフェース700は、クリックアクティビティ712を有するRPAワークフロー開発ペイン710と、グラフィカル要素検出技術構成ペイン720と、属性検索フィールド730とを含む。しかし、この実施形態では、他のグラフィカル要素検出技術は、統一されたターゲット技術721内に入れ子になっている。統一ターゲット技術721が選択された場合、図7Aのように、他の技術を直列に、並列に、またはある期間の間少なくとも1つの技術を適用し、ある期間内に一致が見つからない場合には、少なくとも1つの他の技術を並列に適用する統一ターゲットアプローチが使用される。
統一ターゲット技術721が選択解除された場合、開発者は、所望の技術および/または属性を選択して選択解除してもよい。三角形722は、RPA開発者が、グラフィカル要素検出技術ごとの属性のリストを表示または非表示にすることを可能にする。グラフィカル要素検出技術選択チェックボックス724は、RPA開発者が、与えられたグラフィカル要素検出技術の全ての属性を一度に選択または選択解除することを可能にする。属性チェックボックス726は、RPA開発者がそれぞれの属性を選択または選択解除することを可能にする。いくつかの実施形態では、ファジーマッチングが属性に採用されてもよい。ファジーマッチングラジオボタン728を選択することにより、RPA開発者は、それぞれのファジーマッチングしきい値フィールド729を出現させることができる。
図8は、本発明の実施形態による、2つ以上のグラフィカル要素検出技術からのUI記述子属性の組み合わせを用いたグラフィカル要素検出を実行するためのRPAワークフローを構成するプロセス800を示すフローチャート図である。いくつかの実施形態では、プロセス800は、図6または図7Aおよび7BのRPAデザイナアプリケーション600または700によって実行されてもよい。プロセスは、2つ以上のグラフィカル要素検出技術からのUI記述子属性の組み合わせを使用してグラフィカル要素検出を実行するように構成されるように、810におけるRPAワークフローでアクティビティの選択を受信することから始まる。いくつかの実施形態では、グラフィカル要素検出技術および/またはUI記述子属性のタイプは、アクティビティによって実装されたアクション(例えば、クリック、テキスト取得、ホバーなど)、グラフィカル要素のタイプ(例えば、ボタン、テキストフィールドなど)、および/またはRPA開発者によって示された特定のグラフィカル要素(例えば、ユーザーが画面上でどの要素を選んだか、およびアプリケーション内にどのような他の要素が存在するか)に基づいて、820において自動的に選択される。特定のグラフィック要素に関しては、例えば、RPA開発者が1つのOKボタンをクリックしても、画面上に2つのOKボタンがある場合には、他の2つの同じOKボタンを区別するために、いくつかの属性が自動的に追加され得る。例えば、UIツリーを使用する場合、UIツリーは通常、RPA開発者が画面上にグラフィカル要素を表示したときに、UIツリーの属性の少なくとも一部が、そのグラフィカル要素に対して他のグラフィカル要素と異なるように構築される。RPAデザイナアプリケーションは、アクティビティをカスタム構成するために、グラフィカル要素検出技術のための属性の選択および/または属性に対する変更をRPA開発者830から受信してもよい。
次に、RPAデザイナアプリケーションは、840において、選択されたグラフィカル要素検出技術および属性に基づいてアクティビティを構成する。より多くのアクティビティが構成される場合、RPA開発者は別のアクティビティを選択してもよく、プロセスはステップ810に戻る。所望のアクティビティ(複数可)が構成されると、RPAデザイナアプリケーションは、構成されたアクティビティ(複数可)を含むRPAワークフローを実装するためのRPAロボットを850で生成する。次いでプロセスは終了し、図9に進む。
図9は、本発明の実施形態による、2つ以上のグラフィカル要素検出技術からのUI記述子属性の組み合わせを用いたグラフィカル要素検出を実行するプロセス900を示すフローチャート図である。いくつかの実施形態では、プロセス900は、図6または図7Aおよび7BのRPAデザイナアプリケーション600または700を介して作成されたRPAロボットによって実行時に実装され得る。プロセスは、UI(スクリーンショット、アプリケーションウィンドウの画像など)を分析して、UI要素属性を910で識別することから始まる。UI要素属性は、画像、テキスト、グラフィカル要素間の関係、UI内のグラフィカル要素の階層的表現などを含んでもよいが、これらに限定されるものではない。識別は、CV、OCR、APIコール、テキストファイル(例えば、HTML、XMLなど)の分析、それらの組み合わせなどを介して実行されてもよい。
UIが分析された後、UI要素属性は、アクティビティ920において、2つ以上のグラフィカル要素検出技術の構成されたUI記述子属性と比較される。これは、例えば、図8のステップ840におけるアクティビティの構成に基づいてもよい。グラフィカル要素検出技術の属性に一致するUI要素が完全一致またはしきい値一致を介して930で発見された場合、UI要素を含むそのアクティビティに関連したアクションが940で実行される(例えば、ボタンをクリックする、テキストを入力する、メニューと対話するなど)。また、950でより多くのアクティビティがある場合には、次のアクティビティのためにステップ920にプロセスが進む。しかし、930でグラフィカル要素検出技術の属性に一致するUI要素が見つからない場合、960で例外がスローされ、プロセスは終了する。
図8および9で実行されるプロセスステップは、本発明の実施形態に従って、図8および9で説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に具現化されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュ装置、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、図8および9に記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、図5のコンピューティングシステム500のプロセッサ(複数可)510)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラムは、互いに操作可能な通信を行うモジュールで構成され得、情報または命令をディスプレイに送るように設計されている。コンピュータプログラムは、汎用コンピュータ、ASIC、またはいずれかの他の好適な装置で動作するように構成され得る。
本発明の様々な実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、様々な異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本発明の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通して「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
本明細書全体を通して特色、利点、または類似の言語への参照は、本発明で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態にあることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、同じ実施形態を参照することができるが、必ずしもその必要性はない。
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術の当業者は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の例では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれない特定の実施形態では認識され得る。
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。
Claims (21)
- ユーザーインターフェース(UI)のグラフィカル要素を検出するためのコンピュータ実装方法であって、
デザイナアプリケーションによって、ロボティックプロセスオートメーション(RPA)ワークフローで構成されるアクティビティの選択を受信し、
前記デザイナアプリケーションによって、複数のグラフィカル要素検出技術のうちの1もしくは複数のグラフィカル要素検出技術、前記グラフィカル要素検出技術のうちの1もしくは複数のUI記述子属性、またはそれらの組み合わせの選択および/または修正を受信し、
前記受信された選択および/または修正に基づいて、前記デザイナアプリケーションによって、前記アクティビティを構成することを含む、コンピュータ実装方法。 - 前記1もしくは複数のグラフィカル要素検出技術、前記1もしくは複数のUI記述子属性、またはその両方を、前記デザイナアプリケーションによって自動的に構成することをさらに含む、請求項1に記載のコンピュータ実装方法。
- 前記自動構成は、前記アクティビティによって実装されたアクション、前記ターゲットグラフィカル要素のタイプ、前記UI内の1もしくは複数の他のグラフィカル要素の存在、またはそれらの組み合わせに基づいて、前記デザイナアプリケーションによって実行される、請求項2に記載のコンピュータ実装方法。
- 請求項1に記載のプロセスは、少なくとも1つの追加のアクティビティのために繰り返される、請求項1に記載のコンピュータ実装方法。
- 前記構成されたアクティビティを実装するように構成されたRPAロボットを、前記デザイナアプリケーションによって生成することをさらに含む、請求項1に記載のコンピュータ実装方法。
- 前記RPAロボットは、前記複数のグラフィカル要素検出技術のうちの少なくとも1つのために、前記UI記述子属性のサブセットを使用するように構成される、請求項5に記載のコンピュータ実装方法。
- 前記RPAロボットによって、実行時にUIを分析してUI要素属性を識別し、
前記RPAロボットによって、前記UI要素属性を前記アクティビティのために構成された前記UI記述子の属性と比較し、
前記複数のグラフィカル要素検出技術の属性に一致するUI要素が、完全一致またはしきい値一致を介して検出された場合、
前記RPAロボットによって、前記UI要素を含む前記アクティビティに関連したアクションを取ることをさらに含む、請求項5に記載のコンピュータ実装方法。 - 前記UI属性は、画像、テキスト、前記UI内のグラフィカル要素間の関係、前記UI内の前記グラフィカル要素の階層的表現、またはそれらの組み合わせを含む、請求項7に記載のコンピュータ実装方法。
- 請求項7に記載のプロセスは、少なくとも1つの追加のアクティビティのために繰り返される、請求項7に記載のコンピュータ実装方法。
- 前記UI記述子のタイプは、セレクタ、コンピュータビジョン(CV)記述子、画像マッチング記述子、および光学的文字認識(OCR)記述子のうちの2つ以上を含む、請求項1に記載のコンピュータ実装方法。
- 非一時的なコンピュータ読み取り可能な媒体上に具現化されたコンピュータプログラムであって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
ロボティックプロセスオートメーション(RPA)ワークフローで構成されるアクティビティの選択を受信し、
複数のグラフィカル要素検出技術のうちの1もしくは複数のグラフィカル要素検出技術、前記グラフィカル要素検出技術のうちの1もしくは複数のUI記述子属性、またはそれらの組み合わせの選択および/または修正を受信し、
前記受信された選択および/または修正に基づいて前記アクティビティを構成するように構成される、コンピュータプログラム。 - 前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記1もしくは複数のグラフィカル要素検出技術、前記1もしくは複数のUI記述子属性、またはその両方を自動的に構成するように構成される、請求項11に記載のコンピュータプログラム。 - 前記自動構成は、前記アクティビティによって実装されたアクション、前記ターゲットグラフィカル要素のタイプ、前記UI内の1もしくは複数の他のグラフィカル要素の存在、またはそれらの組み合わせに基づいて、実行される、請求項12に記載のコンピュータプログラム。
- 請求項11に記載のプロセスは、少なくとも1つの追加のアクティビティのために繰り返される、請求項11に記載のコンピュータプログラム。
- 前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記構成されたアクティビティを実装するように構成されたRPAロボットを生成することを含む、請求項11に記載のコンピュータプログラム。 - 前記RPAロボットは、前記複数のグラフィカル要素検出技術のうちの少なくとも1つのために、前記UI記述子属性のサブセットを使用するように構成される、請求項15に記載のコンピュータプログラム。
- 前記UI記述子のタイプは、セレクタ、コンピュータビジョン(CV)記述子、画像マッチング記述子、および光学的文字認識(OCR)記述子のうちの2つ以上を含む、請求項11に記載のコンピュータプログラム。
- 非一時的なコンピュータ読み取り可能な媒体上に具現化されたコンピュータプログラムであって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
UI要素属性を識別するために、実行時にユーザーインターフェース(UI)を分析し、
ロボティックプロセスオートメーション(RPA)ワークフローのアクティビティのための複数のグラフィカル要素検出技術から前記UI要素属性をUI記述子属性と比較し、
前記複数のグラフィカル要素検出技術の属性に一致するUI要素が、完全一致またはしきい値一致を介して検出された場合、
前記UI要素を含む前記アクティビティに関連したアクションを取るように構成される、コンピュータプログラム。 - 前記UI属性は、画像、テキスト、前記UI内のグラフィカル要素間の関係、前記UI内の前記グラフィカル要素の階層的表現、またはそれらの組み合わせを含む、請求項18に記載のコンピュータプログラム。
- 請求項18に記載のプロセスは、少なくとも1つの追加のアクティビティのために繰り返される、請求項18に記載のコンピュータプログラム。
- 前記UI記述子のタイプは、セレクタ、コンピュータビジョン(CV)記述子、画像マッチング記述子、および光学的文字認識(OCR)記述子のうちの2つ以上を含む、請求項18に記載のコンピュータプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/990,709 US11301268B2 (en) | 2020-08-11 | 2020-08-11 | Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques |
US16/990,709 | 2020-08-11 | ||
PCT/US2020/051880 WO2022035449A1 (en) | 2020-08-11 | 2020-09-21 | Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023537540A true JP2023537540A (ja) | 2023-09-04 |
JPWO2022035449A5 JPWO2022035449A5 (ja) | 2023-09-25 |
Family
ID=72709040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020553478A Pending JP2023537540A (ja) | 2020-08-11 | 2020-09-21 | 2つ以上のグラフィカル要素検出技術からのユーザーインターフェース記述子属性の組み合わせを用いたグラフィカル要素検出 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3955108B1 (ja) |
JP (1) | JP2023537540A (ja) |
KR (1) | KR102447072B1 (ja) |
CN (1) | CN114341788A (ja) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7428535B1 (en) * | 2004-06-25 | 2008-09-23 | Apple Inc. | Automatic relevance filtering |
US7395456B2 (en) * | 2005-08-17 | 2008-07-01 | Microsoft Corporation | Query-based identification of user interface elements |
CN104412261B (zh) * | 2012-04-11 | 2020-10-23 | 英特尔公司 | 用户界面内容个性化系统 |
WO2020006076A1 (en) * | 2018-06-27 | 2020-01-02 | Q2 Software, Inc. | Method and system for automating web processes utilizing an abstractable underlying platform layer |
US10871977B2 (en) * | 2018-08-29 | 2020-12-22 | Ernst & Young U.S. Llp | Automated software script remediation methods and systems |
CN110851299A (zh) * | 2019-11-15 | 2020-02-28 | 深圳前海微众银行股份有限公司 | 自动化流程的异常排除方法、装置、设备及存储介质 |
US10654166B1 (en) * | 2020-02-18 | 2020-05-19 | UiPath, Inc. | Automation windows for robotic process automation |
-
2020
- 2020-09-21 JP JP2020553478A patent/JP2023537540A/ja active Pending
- 2020-09-21 CN CN202080002307.9A patent/CN114341788A/zh active Pending
- 2020-09-21 KR KR1020207028106A patent/KR102447072B1/ko active IP Right Grant
- 2020-09-30 EP EP20199165.0A patent/EP3955108B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3955108A1 (en) | 2022-02-16 |
KR102447072B1 (ko) | 2022-09-23 |
CN114341788A (zh) | 2022-04-12 |
KR20220021377A (ko) | 2022-02-22 |
EP3955108B1 (en) | 2024-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301268B2 (en) | Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques | |
JP2023534638A (ja) | ロボティックプロセスオートメーション用のユーザーインターフェース(ui)記述子、uiオブジェクトライブラリ、uiオブジェクトリポジトリ、およびuiオブジェクトブラウザ | |
US11650874B2 (en) | Anomaly detection and self-healing for robotic process automation via artificial intelligence / machine learning | |
US11385777B2 (en) | User interface (UI) mapper for robotic process automation | |
JP2023524917A (ja) | ロボティックプロセスオートメーションのためのアプリケーション統合 | |
JP7242981B2 (ja) | 特定用途向けグラフィカル要素検出 | |
EP3964947B1 (en) | Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both | |
US11232170B1 (en) | Application-specific graphical element detection | |
EP3901864A1 (en) | Test automation for robotic process automation | |
EP3901865A1 (en) | Test automation for robotic process automation | |
JP2023528092A (ja) | ロボティックプロセスオートメーションのためのグラフィカル要素検索技術の選択、アンカーおよびターゲットのファジー理論選択、ならびに/または階層的グラフィカル要素識別 | |
EP3955108B1 (en) | Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques | |
US11281362B1 (en) | Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both | |
US20230191601A1 (en) | Multi-target libraries, projects, and activities for robotic process automation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20210915 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230914 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230914 |