IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ユーアイパス,インコーポレイテッドの特許一覧

特表2023-544277アーティファクト参照(ARTIFACTS REFERENCE)作成および依存関係追跡
<>
  • 特表-アーティファクト参照(ARTIFACTS  REFERENCE)作成および依存関係追跡 図1A
  • 特表-アーティファクト参照(ARTIFACTS  REFERENCE)作成および依存関係追跡 図1B
  • 特表-アーティファクト参照(ARTIFACTS  REFERENCE)作成および依存関係追跡 図1C
  • 特表-アーティファクト参照(ARTIFACTS  REFERENCE)作成および依存関係追跡 図2
  • 特表-アーティファクト参照(ARTIFACTS  REFERENCE)作成および依存関係追跡 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-23
(54)【発明の名称】アーティファクト参照(ARTIFACTS REFERENCE)作成および依存関係追跡
(51)【国際特許分類】
   G06F 8/30 20180101AFI20231016BHJP
【FI】
G06F8/30
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023518398
(86)(22)【出願日】2021-09-21
(85)【翻訳文提出日】2023-05-02
(86)【国際出願番号】 US2021051280
(87)【国際公開番号】W WO2022066628
(87)【国際公開日】2022-03-31
(31)【優先権主張番号】17/032,990
(32)【優先日】2020-09-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.JAVASCRIPT
3.ZIGBEE
4.BLUETOOTH
5.WCDMA
6.FLASH
7.RETINA
8.SAP
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】110003487
【氏名又は名称】弁理士法人東海特許事務所
(72)【発明者】
【氏名】グラハム,ブリジット
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA25
5B376BB11
5B376BC07
5B376BC23
5B376BC80
(57)【要約】
コンピューティングデバイスは、環境内のアプリケーション用に1または複数のフォームを作成するように構成されたプロセッサおよびメモリを含む。プロセッサおよびメモリは、1または複数のフォームに関連する1または複数の環境変数を作成するようにさらに構成される。プロセッサは、1または複数のパスを利用して、1または複数の環境変数間の依存関係参照を追跡するようにさらに構成され、データモデルは、1または複数のパスおよび1または複数の環境変数を含む。プロセッサは、データモデルを遂行して、ターゲット環境内のアプリケーションの1または複数の環境変数間の依存関係参照を再作成するようにさらに構成される。

【特許請求の範囲】
【請求項1】
環境内のアプリケーション用に1または複数のフォームを作成するように構成されたプロセッサおよびメモリを含み、
前記プロセッサおよび前記メモリは、前記1または複数のフォームに関連する1または複数の環境変数を作成するようにさらに構成され、
前記プロセッサは、1または複数のパスを利用して、前記1または複数の環境変数間の依存関係参照(dependency reference)を追跡するようにさらに構成され、データモデルは、前記1または複数のパスおよび前記1または複数の環境変数を含み、
前記プロセッサは、前記データモデルを遂行して、ターゲット環境内の前記アプリケーションの前記1または複数の環境変数間の前記依存関係参照を再作成するようにさらに構成される、コンピューティングデバイス。
【請求項2】
前記プロセッサは、第2のフォームにアクションを引き起こす第1のフォームのアクションに基づいてルールを生成するようにさらに構成され、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記プロセッサは、前記第2のフォームが前記第1のフォームの外部依存関係であるという参照を前記第1のフォーム上に作成するようにさらに構成される、請求項2に記載のコンピューティングデバイス。
【請求項4】
前記プロセッサは、前記第2のフォームが前記第1のフォームの外部依存関係であるという参照を前記第2のフォーム上に作成するようにさらに構成される、請求項3に記載のコンピューティングデバイス。
【請求項5】
参照情報は、変数、ドキュメント、追加フォーム、およびオーケストレータプロセスのデータのうちの1または複数を含む、請求項4に記載のコンピューティングデバイス。
【請求項6】
前記プロセッサは、前記1または複数のフォームの依存関係の範囲を生成するようにさらに構成される、請求項1に記載のコンピューティングデバイス。
【請求項7】
前記プロセッサは、元のアプリケーションに関連付けられたオーケストレータインスタンスが新しい環境内で利用可能かどうかを決定するようにさらに構成される、請求項1に記載のコンピューティングデバイス。
【請求項8】
アーティファクトが前記新しい環境で利用可能でない場合、前記プロセッサは、前記新しい環境内で前記新しいアーティファクトを自動的に作成するか、またはユーザーがユーザーインターフェースを介して、使用するための別のオーケストレータインスタンスを選択できるようにするかのいずれかを実行するようにさらに構成される、請求項7に記載のコンピューティングデバイス。
【請求項9】
プロセッサおよびメモリによって、環境におけるアプリケーションのための1または複数のフォームを作成することと、
前記プロセッサによって、前記1または複数のフォームに関連する1または複数の環境変数を作成することと、
前記プロセッサによって、1または複数のパスを利用して、前記1または複数の環境変数間の依存関係参照を追跡することであって、データモデルは、前記1または複数のパスおよび前記1または複数の環境変数を含むことと、
前記プロセッサによって、前記データモデルを遂行して、ターゲット環境内の前記アプリケーションの前記1または複数の環境変数間の前記依存関係参照を再作成することとを含む、方法。
【請求項10】
前記プロセッサによって、第2のフォームにアクションを引き起こす第1のフォームのアクションに基づいてルールを生成することをさらに含む、請求項9に記載の方法。
【請求項11】
前記プロセッサによって、前記第2のフォームが前記第1のフォームの外部依存関係であるという参照を前記第1のフォーム上に作成することをさらに含む、請求項10に記載の方法。
【請求項12】
前記プロセッサによって、前記第2のフォームが前記第1のフォームの外部依存関係であるという参照を前記第2のフォーム上に作成することをさらに含む、請求項11に記載の方法。
【請求項13】
参照情報は、変数、ドキュメント、追加フォーム、およびオーケストレータプロセスのデータのうちの1または複数を含む、請求項12に記載の方法。
【請求項14】
前記プロセッサによって、前記1または複数のフォームの依存関係の範囲を生成することをさらに含む、請求項9に記載の方法。
【請求項15】
前記プロセッサによって、元のアプリケーションに関連付けられたオーケストレータインスタンスが新しい環境内で利用可能かどうかを決定することをさらに含む、請求項9に記載の方法。
【請求項16】
アーティファクトが前記新しい環境で利用可能でない場合、前記プロセッサによって、前記新しい環境内で前記新しいアーティファクトを自動的に作成するか、またはユーザーがユーザーインターフェースを介して、使用するための別のオーケストレータインスタンスを選択できるようにするかのいずれかを実行する、請求項15に記載の方法。
【請求項17】
コンピュータシステムにおける参照作成のための非一時的なコンピュータ読み取り可能な媒体であって、前記非一時的なコンピュータ読み取り可能な媒体は、その上に記録された命令を有し、プロセッサによって遂行されると、前記プロセッサが、
環境におけるアプリケーションのための1または複数のフォームを作成することと、
前記1または複数のフォームに関連する1または複数の環境変数を作成することと、
1または複数のパスを利用して、前記1または複数の環境変数間の依存関係参照を追跡することであって、データモデルは、前記1または複数のパスおよび前記1または複数の環境変数を含むことと、
前記データモデルを遂行して、ターゲット環境内の前記アプリケーションの前記1または複数の環境変数間の前記依存関係参照を再作成することと、を含む動作を遂行する、非一時的なコンピュータ読み取り可能な媒体。
【請求項18】
前記プロセッサによって、第2のフォームにアクションを引き起こす第1のフォームのアクションに基づいてルールを生成することをさらに含む、請求項17に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項19】
前記プロセッサによって、前記第2のフォームが前記第1のフォームの外部依存関係であるという参照を前記第1のフォーム上に作成することをさらに含む、請求項18に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項20】
前記プロセッサによって、前記第2のフォームが前記第1のフォームの外部依存関係であるという参照を前記第2のフォーム上に作成することをさらに含む、請求項19に記載の非一時的なコンピュータ読み取り可能な媒体。

【発明の詳細な説明】
【背景技術】
【0001】
(関連出願への相互参照)
本出願は、2020年9月25日に出願された米国出願第17/032,990号の利益を主張し、その内容は参照により本明細書に組み込まれる。
【0002】
ロボティックプロセスオートメーション(RPA)は、1または複数のロボットを利用して、エンタープライズプラットフォーム、仮想マシン(VM)、リモートデスクトップ、クラウド上のアプリケーション、デスクトップアプリケーション、モバイルアプリケーションなどにおけるプロセス、動作、機能、コンポーネント、タスク、またはワークフローを自動化し得る。ロボットは、ソフトウェアロボット、プロセス、パッケージ、RPAプロセス、RPAパッケージ、RPAロボット、パッケージのワークフロー、サブプロセス、マイクロボット、モジュールなどであり得る。ロボットまたはRPAに関連するアプリケーションは、異なる開発環境またはコンピューティング環境でプログラム、コード化、構築、または設計され得る。
【0003】
さまざまな実装または異なるコンピューティング環境でアプリケーションを再利用するには、適切に動作するようにアーティファクトを管理する必要があり得る。新しい環境でのアプリケーションの展開またはアップロード中に、アプリケーションに関連付けられたアーティファクトを使用して、アプリケーションの意図した機能または動作を提供し得る。アプリケーションが新しい環境で適切に機能するためのさまざまなアーティファクトの動作、関係、プロパティ、またはインタラクションを理解すると、システムの非効率性が生じたり、リソースが浪費されたり、またはオーバーヘッドが増加し得る。さらに、新しいコンピューティング環境でアーティファクトを適切にセットアップしないと、予期しない挙動またはアプリケーションを使用不能にする重大なエラーが発生し得る。したがって、アーティファクトを管理して、さまざまな実装または異なるコンピューティング環境でアプリケーションを再利用することが望ましい。
【発明の概要】
【0004】
アプリケーションに関連するフォームに対して、環境変数またはパラメータが作成され得る。パスは、環境変数またはパラメータ間で参照される依存関係を追跡するために構成または利用され得る。パスおよび環境変数またはパラメータは、データモデルの一部であり得る。データモデルは、他の環境のアプリケーションの環境変数間の依存関係参照を再作成し得る。
【図面の簡単な説明】
【0005】
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
【0006】
図1A】ロボティックプロセスオートメーション(RPA)の開発、設計、運用、または遂行の説明図である。
【0007】
図1B】RPAの開発、設計、運用、または遂行の別の説明図である。
【0008】
図1C】コンピューティングシステムまたは環境の説明図である。
【0009】
図2】自動化されたロボットのためのプロセスキュー管理の例を示す説明図である。
【0010】
図3】アーティファクト参照作成および依存関係追跡の例示的方法のフロー図である。
【発明を実施するための形態】
【0011】
(詳細な説明)
さらなる詳細は後述するが、一般的にコンピューティングデバイスは、環境内のアプリケーション用に1または複数のフォームを作成するように構成されたプロセッサおよびメモリを含む。プロセッサおよびメモリは、1または複数のフォームに関連する1または複数の環境変数を作成するようにさらに構成される。プロセッサは、1または複数のパスを利用して、1または複数の環境変数間の依存関係参照を追跡するようにさらに構成され、データモデルは、1または複数のパスおよび1または複数の環境変数を含む。プロセッサは、データモデルを遂行して、ターゲット環境内のアプリケーションの1または複数の環境変数間の依存関係参照を再作成するようにさらに構成される。
【0012】
本明細書に記載されている方法およびプロセスでは、記載されているステップは任意の順序で順不同で実行され得、明示的に記載または表示されていないサブステップが実行され得る。また、「結合されている」または「動作的に結合されている」とは、オブジェクトが連結されていることを意味してもよいが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用されてもよい。「AまたはB」を参照して使用する場合は、A、B、またはAおよびBを含む場合があり、より長い羅列と同様に拡張され得る。X/Yという表記を使用する場合、当該表記は、XまたはYを含み得る。あるいは、X/Yという表記を使用する場合、当該表記は、XおよびYを含み得る。X/Yの表記は、上記と同じ論理により、より長い羅列にも同様に当てはまり得る。
【0013】
図1Aは、ロボティックプロセスオートメーション(RPA)の開発、設計、運用、または遂行100の説明図である。デザイナ102は、スタジオ、開発プラットフォーム、開発環境などとして時々参照され、ロボットが1または複数のワークフローを実行または自動化するためのコード、命令、コマンドなどを生成するように構成され得る。コンピューティングシステムがロボットに提供し得る選択(複数可)から、ロボットは、ユーザーまたはオペレータによって選択されたビジュアルディスプレイの領域(複数可)の代表的なデータを決定し得る。RPAの一環として、コンピュータビジョン(CV)動作または機械学習(ML)モデルに関連して、四角、長方形、円、多角形、自由形などの多次元の形状をUIロボットの開発およびランタイムに利用され得る。
【0014】
ワークフローによって達成され得る動作の非限定的な例としては、ログインの実行、フォームへの入力、情報技術(IT)管理などのうちの1または複数であり得る。UIオートメーションのためのワークフローを実行するために、ロボットは、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に特定する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語(HTML)、HTML5、拡張可能なマークアップ言語(XML)、JavaScript、C#、C++、Silverlightなどであり得る。
【0015】
ワークフローには、タスクシーケンス、フローチャート、有限状態マシン(FSM)、グローバル例外ハンドラなどが含まれ得るが、これらに限定されない。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスなどのために、遂行エラーが発生したときのワークフローの挙動を判断するように構成され得る。
【0016】
ロボットは、アプリケーション、アプレット、スクリプトなどであり得、基盤となるオペレーティングシステム(OS)またはハードウェアに対し透過的なUIを自動化し得る。展開時には、1または複数のロボットは、コンダクタ104(オーケストレータと呼ばれることもある)によって管理、制御などされ得る。コンダクタ104は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、デスクトップアプリ(複数可)、ブラウザ、またはそのようなクライアント、アプリケーション、もしくはプログラムにおいてワークフローを遂行または監視するようにロボット(複数可)または自動化エグゼキュータ106に指示または命令し得る。コンダクタ104は、コンピューティングプラットフォームを自動化するために複数のロボットを指示または命令するための中央または半中央点として機能し得る。
【0017】
特定の構成では、コンダクタ104は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性を提供するように構成され得る。プロビジョニングは、ロボット(複数可)または自動化エグゼキュータ106とコンダクタ104との間の接続または通信の作製および維持を含み得る。展開は、遂行のために割り当てられたロボットへのパッケージバージョンの配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標))へのログの保存およびインデックス作成を含み得る。コンダクタ104は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0018】
ロボット(複数可)または自動化エグゼキュータ106は、アンアテンディッド108またはアテンディッド110として構成され得る。アンアテンディッド108動作の場合、自動化は、サードパーティの入力または制御なしで実行され得る。アテンディッド110動作については、サードパーティのコンポーネントからの入力、コマンド、指示、指導などを受信して自動化が行われ得る。アンアテンディッド108またはアテンディッド110ロボットは、モバイルコンピューティングまたはモバイルデバイスの環境で実行するまたは遂行することがきる。
【0019】
ロボット(複数可)または自動化エグゼキュータ106は、デザイナ102内に構築されたワークフローを実行する遂行エージェントであり得る。UIまたはソフトウェアの自動化のためのロボット(複数可)の商業的な例としては、UiPath Robots(商標)がある。いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをデフォルトでインストールし得る。その結果、そのようなロボットは、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を持ち得る。
【0020】
いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、ユーザーモードでインストールされ得る。これらのロボットは、所定のロボットが設置されているユーザーと同じ権利を持ち得る。この機能は、高密度(HD)環境などで最大のパフォーマンスで各マシンを完全に利用できるようにする高密度(HD)ロボットでも使用可能であり得る。
【0021】
特定の実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、それぞれが特定の自動化タスクまたはアクティビティに特化したいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し、コンダクタ104と遂行ホスト(すなわち、ロボット(複数可)または自動化エグゼキュータ106が遂行されるコンピューティングシステム)との間のプロキシとして機能し得る。これらのサービスは、ロボット(複数可)または自動化エグゼキュータ106のための資格情報を任されて管理し得る。
【0022】
ユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ104と遂行ホストとの間のプロキシとして機能し得る。ユーザーモードロボットサービスは、ロボットの資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0023】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを遂行し得る(つまり、ワークフローを遂行し得る)。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を認識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントであり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントとなり得る。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0024】
上で説明したように、ロボット(複数可)または自動化エグゼキュータ106のコンポーネントが分割される構成では、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントによる実行、特定、および追跡をより容易に遂行するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動を構成し得る。エグゼキュータは、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで遂行し得る。また、デザイナ102からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0025】
図1Bは、RPAの開発、設計、運用、または遂行120の別の説明図である。スタジオコンポーネントまたはモジュール122は、ロボットが1または複数のアクティビティ124を実行するためのコード、命令、コマンドなどを生成するように構成され得る。ユーザーインターフェース(UI)オートメーション126は、1または複数のドライバ(複数可)コンポーネント128を使用して、クライアント上のロボットによって実行され得る。ロボットは、コンピュータビジョン(CV)アクティビティモジュールまたはエンジン130を使用してアクティビティを行い得る。他のドライバ132は、UIの要素を得るためにロボットによるUIオートメーションのために利用され得る。それらには、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどが含まれ得る。特定の構成では、CVアクティビティモジュールまたはエンジン130は、UIオートメーションのために使用されるドライバであり得る。
【0026】
図1Cは、情報またはデータを通信するためのバス142または他の通信機構と、処理のためにバス142に結合された1または複数のプロセッサ(複数可)144とを含むことができるコンピューティングシステムまたは環境140の説明図である。1または複数のプロセッサ(複数可)144は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイス、またはそれらの任意の組み合わせを含む、任意のタイプの一般的または特定用途プロセッサであり得る。1または複数のプロセッサ(複数可)144はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。また、マルチパラレル処理が構成され得る。さらに、少なくとも1または複数のプロセッサ(複数可)144は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。
【0027】
メモリ146は、プロセッサ(複数可)144によって遂行または処理される情報、命令、コマンド、またはデータを格納するように構成され得る。メモリ146は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ソリッドステートメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらの組み合わせの任意の組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)144によってアクセス可能な任意の媒体であってもよく、揮発性媒体、不揮発性媒体などを含み得る。また、媒体は、取り外し可能なものであってもよいし、取り外し不可能なものなどであってもよい。
【0028】
通信デバイス148は、周波数分割多元接続(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)、または、1もしくは複数のアンテナを介して通信するためのいずれかの他の無線もしくは有線のデバイス/トランシーバとして構成され得る。アンテナは、単数型、アレイ型、フェーズド型、スイッチ型、ビームフォーミング型、ビームステア型などであり得る。
【0029】
1または複数のプロセッサ(複数可)144は、バス142を介して、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、フィールドエミッションディスプレイ(FED)、有機発光ダイオード(OLED)、フレキシブルOLED、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)またはそのようなベースのディスプレイなどのディスプレイデバイス150にさらに結合され得る。ディスプレイデバイス150は、入力/出力(I/O)のために、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ、3次元(3D)タッチ、マルチ入力タッチ、またはマルチタッチディスプレイとして構成され得る。
【0030】
キーボード152およびコンピュータマウス、タッチパッドなどの制御デバイス154は、コンピューティングシステムまたは環境140への入力のためにバス142にさらに結合され得る。さらに、入力は、それと通信している別のコンピューティングシステムを介してリモートでコンピューティングシステムまたは環境140に提供されてもよいし、コンピューティングシステムまたは環境140が自律的に動作してもよい。
【0031】
メモリ146は、1または複数のプロセッサ(複数可)144によって遂行または処理されたときに機能を提供するソフトウェアコンポーネント、モジュール、エンジンなどを格納してもよい。これは、コンピューティングシステムまたは環境140のためのOS156を含み得る。モジュールは、アプリケーション固有のプロセスまたはその派生物を実行するためのカスタムモジュール158をさらに含み得る。コンピューティングシステムまたは環境140は、付加的な機能を含む1または複数の付加的な機能モジュール160を含み得る。
【0032】
コンピューティングシステムまたは環境140は、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、スマートフォン、固定型モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成され得る。
【0033】
本明細書に記載された例では、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックス処理ユニットなどのプログラマブルハードウェアデバイスに実装され得る。
【0034】
モジュールは、様々なタイプのプロセッサによって遂行されるためのソフトウェアに少なくとも部分的に実装され得る。特定された遂行可能コードのユニットは、例えば、オブジェクト、プロシージャ、ルーチン、サブルーチン、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。特定されたモジュールの遂行可能は、論理的に結合されるとモジュールを構成するように、異なる位置に共に配置されたり、格納されたりする。
【0035】
遂行可能なコードのモジュールは、単一の命令、1または複数のデータ構造、1または複数のデータセット、複数の命令などであり、複数の異なるコードセグメント、異なるプログラム間、複数のメモリデバイス間などに分散され得る。動作データまたは機能データは、モジュール内で特定され、ここで示されてもよく、任意の適切なタイプのデータ構造内で適切な形態で具現化され、組織化され得る。
【0036】
本明細書で説明された例では、コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で構成され得る。コンピュータプログラムは、互いに動作可能な通信を行い、情報または指示を渡すためのモジュールで構成され得る。
【0037】
特定の実施形態では、パスは、アプリケーションのアーティファクトのために作成または構成され得る。アーティファクトは、アプリケーションの環境パラメータまたは変数であり得る。例えば、アーティファクトは、アプリケーションのページ、データソース、アプリケーション変数、またはページもしくはフォーム上のボタンを含み得る。
【0038】
特定の構成では、JavaScript Object Notation(JSON)、JavaScript、typescriptなどを使用して、パスを作成または構成し得る。特定の構成では、JSON「文字列」パスをコード化して、JSON構造内のモデル、他のモデル、フォーム、データソース、オブジェクト、サブオブジェクト、プロパティ、サブプロパティなどへのアーティファクトまたは参照を見つけ得る。
【0039】
パスは、アプリケーション全体でモデル、他のモデル、フォーム、データソース、オブジェクト、プロパティなどの使用状況を追跡するためにも利用され得る。パスは、アーティファクト間のマッピングとして機能して、開発または展開を高速化するためにアプリケーションアーキテクチャを理解し得る。アーティファクトの依存関係の追跡およびパスは、エンドユーザーがアプリケーションアーキテクチャを理解し、アプリケーションのさまざまなコンポーネントもしくはモジュールがどのように依存しているか、またはさまざまなコンポーネントもしくはモジュールに依存しているかを理解するのに役立ち得る。パスまたはマッピングは、コンピューティング環境の内部および外部で利用され得る。
【0040】
例えば、このコンテキストでは、内部参照は、同じフォーム内のボタンを指すフォーム内のパスであり得、そのフォームがそのボタンを参照するさまざまな場所を伴う。この例は、ボタンを有効または無効にするルールであり得る。ルールおよびボタンは同じフォームに存在するため、このボタンとその使用場所の追跡はフォームの「内部」である。
【0041】
外部参照は、別のフォームのボタンを参照するフォーム内のパスであり得る。例として、フォームAはボタン1を有し得る。ボタン1は、ユーザーがボタン1をクリックしたときにフォーム2を表示するようにアプリケーションに指示するルールを有し得る。ボタン1のルールを介して、フォーム1とフォーム2との間に参照が今存在する。フォーム1はフォーム2への参照を持ち、フォーム2はフォーム1およびボタン1に戻る参照を有し得る。パスがフォーム自体の外側に定義されたアーティファクト/オブジェクトを指すことから、これらは外部パスとみなされ得る。
【0042】
JSONパスは、参照として格納され、パスに対応する関連アーティファクト、共有アーティファクト、オブジェクト、環境変数などを指し示すことができる。システムは、この構成を利用して、リンクされたアーティファクト、共有されたアーティファクト、オブジェクト、環境変数などから、アプリケーションの必要な情報を直接取得することができる。アプリケーションのJSONパスを通じて作成されるマッピングおよび依存関係は、データの重複を防ぐ、不要なデータ伝送を減らす、帯域幅の使用を改善する、実装時間を減らす、システムの応答性を高める、システム性能を高めるなどであり得る。
【0043】
パスおよびアーティファクト参照を含むJSONモデルがシステムにアップロードされると、JSONパスは、1または複数のアーティファクト間の関係を自動的に作成または再作成し得る。これらの関係により、ユーザー入力または介入を最小限に抑えながら、アプリケーションの実質的にすべての依存関係をターゲット環境上に自動的に作成することができることを確実にし得る。実質的にすべての必要なアーティファクトおよび重要な情報は、データまたはファイルサイズに最適化されたJSONオブジェクトモデルに含まれ得る。
【0044】
JSONモデルまたはデータからデザイナまたはスタジオをリハイドレーション(rehydrating)すると、動作に必要なアーティファクトまたは依存関係を作成し得る。つまり、リハイドレーションとは、バックエンドから受信したデータを取得し、受信したデータからメモリ内オブジェクト(オブジェクトモデル)を再作成するプロセスである。リハイドレーションプロセス(データをモデルオブジェクトに読み込む)中に、参照を検証およびチェックして、それらがまだ有効かどうかを確認し得る。このプロセスは、依存関係が削除された可能性があること、または依存関係が予想される変更であることをユーザーに警告し、ユーザーがそれを知らないうちに基になるオブジェクトモデルを単に更新し得る。
【0045】
オブジェクトモデル内のJSONパスは、さまざまなアーティファクトを参照し、その後それらを依存関係としてリンクする経路として機能し得る。追加の外部依存関係の定義およびメタデータをJSONモデル内に埋め込んで、さまざまな環境でのアプリケーションの展開を可能にすることもできる。モデルオブジェクトまたはオブジェクトモデルフレームワークは、アーティファクトパスを理解することができ、必要な依存関係を解決または作成し得る。フレームワークは、さまざまなオブジェクトおよびアーティファクトを自動的に生成してリンクし、さまざまな環境で元のアプリケーションの実質的に正確なコピーを保証し得る。
【0046】
特定の構成では、環境変数またはパラメータは、アプリケーションに関連するフォーム用に作成されたアーティファクトであり得る。パスは、環境変数またはパラメータ間の依存関係参照を追跡するために構成または利用され得る。パスおよび環境変数またはパラメータは、1または複数のフォームのJSONモデルなどのデータモデルの一部であり得る。データモデルは、1または複数のフォームの適切な動作のために、他の環境でのアプリケーションの環境変数間の依存関係参照を再作成し得る。
【0047】
アプリケーションのプログラミング、コーディング、構築、設計などの間に、アプリケーションが特定の仕様に合わせて構成されているため、対象となるアーティファクトをJSONモデルに追加、更新、変更などし得る。構成されたパスまたはアーティファクトは、さまざまな環境のツリーまたはグラフに配置され得る。これは、視覚化を通じて、アーティファクトの依存関係と関連するアプリケーションアーキテクチャを理解するのに役立ち得る。依存関係の連鎖を理解するために、JSONモデルを別の環境で即座に再現することができる。
【0048】
特定の構成では、基盤となるモデルフレームワークは、アーティファクトを管理するように構成され得る。RPAの場合、アプリケーションは、オーケストレータインスタンスの定義および参照を持つコンテナを使用して、コンダクタまたはオーケストレータとインタラクションし得る。フォームは、アプリケーションプログラミングインターフェース(API)を使用して、任意のデータソースに読み/書きできるようにインターフェースを構築し得る。APIは、1または複数のデータベースのプログラミング用であり得る。フォーム上のボタンは、任意のデータソースの関数をトリガし得る。ボタンは、追跡用のアイテムのリストを含み得る。データソースは、Saleforce、SAP、またはソースに基づくものなどからのデータを有するテーブルであり得る。フォームに関連するアーティファクトは、依存関係グラフを生成するために実質的にすべてのモデルまたは定義を解析することなく、互いに情報を通信するように構成され得る。
【0049】
特定の実施形態では、アプリケーションビルダは、全体または全部のアプリケーションを作成するために複数のフォームを構成し得る。1または複数のフォームは、関連アプリケーションのRPAのコンダクタまたはオーケストレータと統合し得る。追跡システムは、参照を使用して、1または複数のフォームのプロセス結果を追跡し得る。例えば、アプリケーションスタジオまたはプロダクションはプロセス参照を有し得る。特定の構成では、アーティファクトは、フォーム、オーケストレータインスタンス、データソース、ユーザーデータ、関数を含むデータソースなどであり得る。これらのアーティファクトの1または複数がモデルを形成し得る。さらに、モデルは共有可能であり得る。
【0050】
例えば、アプリケーションプラットフォームは、特定のオーケストレータインスタンスからの特定のプロセスセットを表す独自の「モデル」を作成する。このオーケストレータモデル(アーティファクト)は、それが例えばプロセス名、バージョン、入力プロパティ、出力プロパティなどの情報を格納できるため、オーケストレータプロセスに似ている場合がある。このモデルは、アプリプラットフォームがプロセスを開始し、プロセス結果を読み取るために必要なすべての情報を含む。このモデルは、特定のオーケストレータおよびプロセス/ロボット/などを参照する依存関係情報を含む。
【0051】
特定の実施形態では、環境内のアプリケーション用に1または複数のフォームが作成され得る。1または複数のフォームに関連する1または複数の環境変数も作成され得る。1または複数の環境変数間の依存参照を追跡するための1または複数のパスが利用され得る。データモデルは、1または複数のパスと1または複数の環境変数を含む。データモデルは、ターゲット環境内のアプリケーションの1または複数の環境変数間の依存関係参照を再作成するために遂行され得る。
【0052】
特定の構成では、システムは、開発ツールが関連するアーティファクトの削除を防止し、依存関係を追跡し、余分なオーバーヘッドなしに新しい機能の開発を可能にし、コードの重複を減らし、データの重複を減らし、アプリケーションの再利用を可能にするなどをするように、依存関係または追跡を決定または広げ得る。アーティファクトの削除に関して、アーティファクトの依存関係または追跡は、関係の理解をより深めることによって、依存関係の確実な削除をもたらし得る。これにより、アプリケーションのコンポーネントまたはモジュールの複雑さを完全に理解する必要がなくなる場合があるので、ユーザエクスペリエンスが向上し得る。さらに、開発ツールは、環境間でエンドユーザーアプリケーションの転送を支援することもできる。例えば、マーケットプレイスまたは環境におけるアプリケーションのコピー、共有、移動などは、様々なターゲット環境における展開のために理解されたアーティファクトの依存関係によって可能となり得る。それぞれのアーティファクト間の関係は、アプリケーションを新しいマーケットプレイスまたは環境に移動した後も維持され得る。
【0053】
ユースケースまたは例として、複数のフォームおよびオーケストレータの統合からなるアプリケーションを挙げることができる。このアプリを任意の新しい環境に展開する場合、それは、元のアプリに関連付けられたオーケストレータインスタンスが新しい環境内で利用可能かどうかを判断し得る。また、展開されたアプリが参照するプロセスが新しい環境内で利用可能かどうかも判断できるようになる。このような外部の「アーティファクト」への任意の依存関係が新しい環境で解決できない場合、新しい環境内でこれらを自動的にダウンロード/作成することが可能であるべきである、または、ユーザーインターフェースを介して、不足している依存関係の代わりに使用され得る別のオーケストレータインスタンスおよび/またはプロセスを選択できるようにするべきである。
【0054】
これは、実装者、ユーザー、開発者などによる手動のリンクアップなしで実現され得る。最初の作成時に潜在的な問題を特定できるように、コピーまたは共有されたアプリケーションに対してエラーチェックまたはレポートが使用され得る。したがって、アプリケーションのコピーまたは共有は、最小限のユーザー入力で実現され得る。
【0055】
以上の説明に従って、図2は、自動化されたロボット複数可のためのプロセスキュー管理200の例を示す説明図である。図の200は、複数のデータおよびパスを含むデータモデル212を含むアプリケーション211を含む環境A(210)を示す。図の200はまた、複数のデータおよびパスを含むデータモデル212を含むアプリケーション211を含む環境B(210)を示す。
【0056】
図3は、アーティファクト参照作成および依存関係追跡の例示的方法300のフロー図である。以上の説明に従う。ステップ310では、環境におけるアプリケーションのための1または複数のフォームが作成される。作成したフォームに関連する環境変数が作成される(ステップ320)。また、「環境変数」は、アプリが備える任意の他の「モデル」であってもよい。例えば、1つのフォーム(F1)を作成し、第2のフォーム(F2)を作成し、そしてF1にボタンを配置し(B1)、そしてユーザーがボタンをクリックしたときにそのボタンにルールを追加し、そのルールが「F2を開く」(R1)と設定されている場合、F1には、F2が(B1およびR1を経由して)F1の外部依存関係となった事実についての情報を格納する参照が作成され、F2にも同様の参照が作成される:F2には、情報がF1によって(B1およびR1を経由して)利用されているという事実に関する情報が格納されており、それは、F2のモデル内でF1から情報が参照された可能性のある場所(B2、B3、R2、R3、F4など)もすべて格納する。これは、F1が、どの時点でも、自身(F1)を参照するすべての外部モデル(他のアプリ/フォーム/など)のリストだけでなく、それらのモデルのどこで参照が使用されているのか(B1 R1、B2 R3、B3 R3…)を含む(変数、ドキュメント、他のフォーム、オーケストレータプロセスなどを指す場合がある)外部「依存関係」のリストを持つことを意味する。これは、アプリのパッケージ化と他の環境への展開を可能にする、その依存関係をすべて含む双方向の依存関係追跡システムである。
【0057】
1または複数のパスが利用されて、1または複数の環境変数間の依存関係参照(dependency reference)を追跡し(ステップ330)、データモデルは、1または複数のパスおよび1または複数の環境変数を含む。ステップ340で依存関係参照が作成される。データモデルは、ターゲット環境内のアプリケーションの1または複数の環境変数間の依存関係参照を再作成するために使用され得る。
【0058】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって遂行されるために、コンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。コンピュータ読み取り可能な媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ読み取り可能なストレージ媒体が挙げられる。コンピュータ読み取り可能なストレージ媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体記憶デバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、磁気光学媒体、ならびにCD-ROMディスクおよびデジタル多目的ディスク(DVD)などの光学媒体が挙げられるが、これらに限定されない。

図1A
図1B
図1C
図2
図3
【国際調査報告】