(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-26
(54)【発明の名称】顧客のオンプレミスでRPAサービスを実装するための共通プラットフォーム
(51)【国際特許分類】
G06F 8/61 20180101AFI20240719BHJP
【FI】
G06F8/61
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021576473
(86)(22)【出願日】2021-12-13
(85)【翻訳文提出日】2022-02-22
(86)【国際出願番号】 US2021072868
(87)【国際公開番号】W WO2023009170
(87)【国際公開日】2023-02-02
(31)【優先権主張番号】202111033732
(32)【優先日】2021-07-27
(33)【優先権主張国・地域又は機関】IN
(32)【優先日】2021-09-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】シュリヴァスタヴァ,シャシャンク
(72)【発明者】
【氏名】チョディセッティ,ラジブ
(72)【発明者】
【氏名】スタンシウ,ブラド
(72)【発明者】
【氏名】カクマニ,ラジャ チャル ヴィクラム
(72)【発明者】
【氏名】ポペスク,ペトレ
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AB01
5B376AB19
5B376AD19
5B376GA13
(57)【要約】
顧客のオンプレミスで複数のRPAサービスを実装するためのRPA(ロボティックプロセスオートメーション)サービス配信プラットフォームを操作するためのシステムおよび方法が提供される。複数のRPAサービスを顧客のオンプレミスにある1または複数のコンピューティングシステムにインストールするためのインストーラを生成することは、RPAサービス配信プラットフォームを使用して生成される。インストーラを1または複数のコンピューティングシステムにインストールされた複数のRPAサービスのうちの1または複数は、RPAサービス配信プラットフォームを使用して維持される。
【特許請求の範囲】
【請求項1】
RPA(ロボティックプロセスオートメーション)プラットフォームを操作するためのコンピュータ実装方法であって、
RPAサービス配信プラットフォームを使用して、複数のRPAサービスを顧客のオンプレミスにある1または複数のコンピューティングシステムにインストールするためのインストーラを生成することと、
前記RPAサービス配信プラットフォームを使用して、前記インストーラを用いて前記1または複数のコンピューティングシステムにインストールされた前記複数のRPAサービスのうちの1または複数を維持することと、を含む、コンピュータ実装方法。
【請求項2】
前記RPAサービス配信プラットフォームを使用して、複数のRPAサービスを顧客のオンプレミスにある1または複数のコンピューティングシステムにインストールするためのインストーラを生成することは、
前記複数のRPAサービスをオンボーディングすること、構築すること、および試験することを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記生成することは、前記RPAサービス配信プラットフォームの構築時コンポーネントによって実行され、前記維持することは、前記RPAサービス配信プラットフォームの実行時コンポーネントによって実行される、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記RPAサービス配信プラットフォームの実行時アーキテクチャに従って前記複数のRPAサービスのうちの1または複数を実行することをさらに含み、前記実行時アーキテクチャは、コンピューティングクラスタを実行するためのインフラコンポーネントと、前記複数のRPAサービスのうちの前記1または複数のための前記コンピューティングクラスタ上で操作を行うためのRPAサービス配信プラットフォームコンポーネントと、前記複数のRPAサービスのうちの前記1または複数を含むRPAサービスと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記複数のRPAサービスは、RPAワークフローの遂行を編成するためのオーケストレータ、RPAワークフローを設計するためのデザイナ、またはRPAワークフローを遂行するためのRPAロボットのうちの少なくとも1つを含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記1または複数のコンピューティングシステムは、ネットワーク接続性を有し、前記複数のRPAサービスのうちの前記1または複数は、前記インストーラが前記ネットワークを介してレジストリから前記複数のRPAサービスのうちの前記1または複数をインストールするためのデータを取得することによって前記1または複数のコンピューティングシステムにインストールされる、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記1または複数のコンピューティングシステムは、ネットワーク接続性を有せず、前記複数のRPAサービスのうちの前記1または複数は、前記インストーラが前記複数のRPAサービスのうちの前記1または複数をインストールするためのデータを含むことによって前記1または複数のコンピューティングシステムにインストールされる、請求項1に記載のコンピュータ実装方法。
【請求項8】
RPA(ロボティックプロセスオートメーション)サービス配信プラットフォームであって、
コンピュータプログラム命令を格納するメモリと、
前記コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサと、を含み、前記コンピュータプログラム命令は、前記少なくとも1つのプロセッサが、以下を含む操作を遂行するように構成される、RPAサービス配信プラットフォーム。
複数のRPAサービスを顧客のオンプレミスにある1または複数のコンピューティングシステムにインストールするためのインストーラを生成することと、
前記インストーラを用いて前記1または複数のコンピューティングシステムにインストールされた前記複数のRPAサービスのうちの1または複数を維持することと。
【請求項9】
複数のRPAサービスを顧客のオンプレミスにある1または複数のコンピューティングシステムにインストールするためのインストーラを生成することは、
前記複数のRPAサービスをオンボーディングすること、構築すること、および試験することを含む、請求項8に記載のシステム。
【請求項10】
前記生成することは、前記RPAサービス配信プラットフォームの構築時コンポーネントによって実行され、前記維持することは、前記RPAサービス配信プラットフォームの実行時コンポーネントによって実行される、請求項8に記載のシステム。
【請求項11】
前記操作は、前記RPAサービス配信プラットフォームの実行時アーキテクチャに従って前記複数のRPAサービスのうちの1または複数を実行することをさらに含み、前記実行時アーキテクチャは、コンピューティングクラスタを実行するためのインフラコンポーネントと、前記複数のRPAサービスのうちの前記1または複数のための前記コンピューティングクラスタ上で操作を行うためのRPAサービス配信プラットフォームコンポーネントと、前記複数のRPAサービスのうちの前記1または複数を含むRPAサービスと、を含む、請求項8に記載のシステム。
【請求項12】
前記複数のRPAサービスは、RPAワークフローの遂行を編成するためのオーケストレータ、RPAワークフローを設計するためのデザイナ、またはRPAワークフローを遂行するためのRPAロボットのうちの少なくとも1つを含む、請求項8に記載のシステム。
【請求項13】
前記1または複数のコンピューティングシステムは、ネットワーク接続性を有し、前記複数のRPAサービスのうちの前記1または複数は、前記インストーラが前記ネットワークを介してレジストリから前記複数のRPAサービスのうちの前記1または複数をインストールするためのデータを取得することによって前記1または複数のコンピューティングシステムにインストールされる、請求項8に記載のシステム。
【請求項14】
前記1または複数のコンピューティングシステムは、ネットワーク接続性を有せず、前記複数のRPAサービスのうちの前記1または複数は、前記インストーラが前記複数のRPAサービスのうちの前記1または複数をインストールするためのデータを含むことによって前記1または複数のコンピューティングシステムにインストールされる、請求項8に記載のシステム。
【請求項15】
コンピュータプログラム命令を格納した非一時的なコンピュータ読み取り可能な媒体であって、前記コンピュータプログラム命令は、少なくとも1つのプロセッサ上で遂行されると、前記少なくとも1つのプロセッサに、以下を含む操作を実行するためのRPA(ロボティックプロセスオートメーション)サービス配信プラットフォームを実装させる、非一時的なコンピュータ読み取り可能な媒体。
複数のRPAサービスを顧客のオンプレミスにある1または複数のコンピューティングシステムにインストールするためのインストーラを生成することと、
前記インストーラを用いて前記1または複数のコンピューティングシステムにインストールされた前記複数のRPAサービスのうちの1または複数を維持すること。
【請求項16】
複数のRPAサービスを顧客のオンプレミスにある1または複数のコンピューティングシステムにインストールするためのインストーラを生成することは、
前記複数のRPAサービスをオンボーディングすること、構築すること、および試験することを含む、請求項15に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項17】
前記生成することは、前記RPAサービス配信プラットフォームの構築時コンポーネントによって実行され、前記維持することは、前記RPAサービス配信プラットフォームの実行時コンポーネントによって実行される、請求項15に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項18】
前記操作は、前記RPAサービス配信プラットフォームの実行時アーキテクチャに従って前記複数のRPAサービスのうちの1または複数を実行することをさらに含み、前記実行時アーキテクチャは、コンピューティングクラスタを実行するためのインフラコンポーネントと、前記複数のRPAサービスのうちの前記1または複数のための前記コンピューティングクラスタ上で操作を行うためのRPAサービス配信プラットフォームコンポーネントと、前記複数のRPAサービスのうちの前記1または複数を含むRPAサービスと、を含む、請求項15に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項19】
前記複数のRPAサービスは、RPAワークフローの遂行を編成するためのオーケストレータ、RPAワークフローを設計するためのデザイナ、またはRPAワークフローを遂行するためのRPAロボットのうちの少なくとも1つを含む、請求項15に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項20】
前記1または複数のコンピューティングシステムは、ネットワーク接続性を有し、前記複数のRPAサービスのうちの前記1または複数は、前記インストーラが前記ネットワークを介してレジストリから前記複数のRPAサービスのうちの前記1または複数をインストールするためのデータを取得することによって前記1または複数のコンピューティングシステムにインストールされる、請求項15に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項21】
前記1または複数のコンピューティングシステムは、ネットワーク接続性を有せず、前記複数のRPAサービスのうちの前記1または複数は、前記インストーラが前記複数のRPAサービスのうちの前記1または複数をインストールするためのデータを含むことによって前記1または複数のコンピューティングシステムにインストールされる、請求項15に記載の非一時的なコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は概して、RPA(ロボティックプロセスオートメーション)に関し、より詳細には、顧客のオンプレミスでRPAサービスを実装するためのRPAサービス配信プラットフォームに関する。
【背景技術】
【0002】
例えば、オーケストレーション、デザイン、およびRPAロボットなどのRPA(ロボティックプロセスオートメーション)サービスは、SaaS(Software as a Service(サービスとしてのソフトウェア))ソリューションとして、クラウド経由で顧客に提供され得る。時には、顧客は、より統一された製品体験を提供するために、そのようなRPAサービスがオンプレミスで実装されることを好み得る。従来、RPAサービスは、さまざまな配信および保守の仕組みによってオンプレミスで実装される。しかし、従来のオンプレミスでのRPAサービスの実装は、顧客に大量のオーバーヘッドを必要とする。
【0003】
(実施形態の簡単な概要)
1または複数の実施形態によると、顧客のオンプレミスで複数のRPAサービスを実装するためのRPA(ロボティックプロセスオートメーション)サービス配信プラットフォームを操作するためのシステムおよび方法が提供される。複数のRPAサービスを顧客のオンプレミスにある1または複数のコンピューティングシステムにインストールするためのインストーラを用いて、RPAサービス配信プラットフォームを使用して生成される。インストーラを1または複数のコンピューティングシステムにインストールされた複数のRPAサービスのうちの1または複数は、RPAサービス配信プラットフォームを使用して維持される。一実施形態では、インストーラは、複数のRPAサービスをオンボーディングすること、構築すること、および試験することによって生成される。生成することは、RPAサービス配信プラットフォームの構築時コンポーネントによって実行され得、維持することは、RPAサービス配信プラットフォームの実行時コンポーネントによって実行され得る。
【0004】
一実施形態では、複数のRPAサービスのうちの1または複数は、RPAサービス配信プラットフォームの実行時アーキテクチャによって実行し得る。実行時アーキテクチャは、コンピューティングクラスタを実行するためのインフラコンポーネント、複数のRPAサービスのうちの1または複数のためのコンピューティングクラスタでの操作を実行するためのRPAサービス配信プラットフォームコンポーネント、および複数のRPAサービスのうちの1または複数を含むRPAサービスを含む。
【0005】
一実施形態では、複数のRPAサービスは、RPAワークフローの遂行を編成するためのオーケストレータ、RPAワークフローを設計するためのデザイナ、またはRPAワークフローを遂行するためのRPAロボットのうちの少なくとも1つを含む。
【0006】
一実施形態では、1または複数のコンピューティングシステムは、ネットワーク接続性を有し、複数のRPAサービスのうちの1または複数は、インストーラがネットワークを介してレジストリから複数のRPAサービスのうちの1または複数をインストールするためのデータを取得することによって1または複数のコンピューティングシステムにインストールされる。別の実施形態では、1または複数のコンピューティングシステムは、ネットワーク接続性を有せず、複数のRPAサービスのうちの1または複数は、インストーラが複数のRPAサービスのうちの1または複数をインストールするためのデータを含むことによって1または複数のコンピューティングシステムにインストールされる。
【0007】
(実施形態の詳細な説明)
本発明のこれらおよび他の利点は、以下の詳細な説明および添付の図面を参照することにより、当業者に明らかとなるであろう。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施形態による、ロボティックプロセスオートメーション(RPA)システムを示すアーキテクチャ図である。
【0009】
【
図2】本発明の実施形態による、展開したRPAシステムの一例を示すアーキテクチャ図である。
【0010】
【
図3】本発明の実施形態による、RPAシステムの簡略化された展開の一例を示すアーキテクチャ図である。
【0011】
【
図4】本発明の実施形態による、ロボティックプロセスオートメーションロボットのクラウド管理を実装するためのクラウドRPAシステムを示すアーキテクチャ図を示す。
【0012】
【
図5】1または複数の実施形態による、RPAサービス配信プラットフォームの構築時コンポーネントの例示的なシステム図を示す。
【0013】
【
図6】1または複数の実施形態による、RPAサービス配信プラットフォームの実行時コンポーネントの例示的なシステム図を示す。
【0014】
【
図7】1または複数の実施形態による、RPAサービス配信プラットフォームを操作するための方法を示す。
【0015】
【
図8】本発明の実施形態を実装するために使用され得る、コンピューティングシステムのブロック図である。
【発明を実施するための形態】
【0016】
(詳細な説明)
ロボティックプロセスオートメーション(RPA)は、ワークフローおよびプロセスを自動化するために使用される。
図1は、1または複数の実施形態によるRPAシステム100のアーキテクチャ図である。
図1に示すように、RPAシステム100は、開発者が自動化プロセスを設計できるようにするためのデザイナ102を含む。より具体的には、デザイナ102は、RPAプロセスおよびプロセス内のアクティビティを実行するためのロボットの開発および展開を容易にする。デザイナ102は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびコンタクトセンター運営のビジネスプロセスを自動化する。デザイナ102の実施形態の商業的な一例は、UiPath Studio(商標)である。
【0017】
ルールベースのプロセスの自動化を設計する際に、開発者は、本明細書で「アクティビティ」と定義されるプロセスで開発されたカスタムセットのステップ間の遂行順序およびその関係を制御する。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、プロセスは入れ子になっているか、または埋め込まれ得る。
【0018】
プロセスのいくつかのタイプには、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、プロセスを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによりトリガされる有限の数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの動作を決定したり、プロセスをデバッグしたりするのに特に適し得る。
【0019】
プロセスがデザイナ102内で開発されると、ビジネスプロセスの遂行は、コンダクタ104により調整され、デザイナ102内で開発されたプロセスを遂行する1または複数のロボット106を調整する。コンダクタ104の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ220は、RPA環境におけるリソースの生成、監視、および展開の管理を容易にする。一例では、コンダクタ104は、ウェブアプリケーションである。コンダクタ104はまた、サードパーティのソリューションおよびアプリケーションとの統合ポイントとして機能し得る。
【0020】
コンダクタ104は、RPAロボット106を集中ポイントから接続して遂行することにより、全てのロボット106を管理し得る。コンダクタ104は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な能力を有し得る。プロビジョニングは、ロボット106とコンダクタ104(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含み得る。展開は、遂行のために割り当てられたロボット106へのパッケージバージョンの正しい配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの識別データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ104は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0021】
ロボット106は、デザイナ102で構築されたプロセスを実行する遂行エージェントである。ロボット106のいくつかの実施形態の1つの商業的な例は、UiPath Robots(商標)である。ロボット106のタイプは、アテンディッドロボット108およびアンアテンディッドロボット110を含んでもよいが、これらに限定されない。アテンディッドロボット108は、ユーザーまたはユーザーイベントによりトリガされ、同じコンピューティングシステム上で人のユーザーと並んで動作する。アテンディッドロボット108は、人のユーザーが様々なタスクを達成するのを支援してもよく、人のユーザーおよび/またはユーザーイベントにより直接トリガされてもよい。アテンディッドロボットの場合、コンダクタ104は、集中プロセスデプロイメントおよびロギング媒体を提供してもよい。特定の実施形態では、アテンディッドロボット108は、ウェブアプリケーションの「ロボットトレイ」からまたはコマンドプロンプトからのみ起動され得る。アンアテンディッドロボット110は、仮想環境内で無人モードで動作し、多くのプロセスを自動化するために使用することができ、例えば、大量のプロセス、後工程などに使用され得る。アンアテンディッドロボット110は、リモート遂行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などにより生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイル装置アプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化し得る。
【0022】
いくつかの実施形態では、ロボット106は、デフォルトで、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、このようなロボット106は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を有し得る。いくつかの実施形態では、ロボット106は、所定のロボット106が設置されているユーザーと同じ権利を有するユーザーモードで設置され得る。
【0023】
いくつかの実施形態におけるロボット106は、複数のコンポーネントに分割され、それぞれが特定のタスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ104と遂行ホスト(すなわち、ロボット106が遂行されるコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット106の資格情報を任されて管理する。コンソールアプリケーションは、ローカルシステム下のSCMにより起動される。いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ104と遂行ホストとの間のプロキシとして動作する。ユーザーモードロボットサービスは、ロボット106の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを遂行し得(例えば、それらがワークフローを遂行し得る)、それらは、モニタ毎のドットパーインチ(DPI)設定を認識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインは、サービスのクライアントであり、ジョブの開始を要求してそれらの出力を待つことができるコンソールアプリケーションである。ロボットコンポーネントを分割することで、開発者、サポートユーザーを支援し、コンピューティングシステムをより簡単に実行し、各ロボットコンポーネントが何を遂行しているかを特定し、追跡できるようにし得る。例えば、エグゼキュータとサービスのために異なるファイアウォールルールを設定するなど、ロボットコンポーネントごとに特別な動作を設定し得る。さらなる例として、いくつかの実施形態では、エグゼキュータはモニタごとのDPI設定を認識していてもよく、その結果、ワークフローは、作製されたコンピューティングシステムの構成に関係なく、任意のDPIで遂行され得る。
【0024】
図2は、1または複数の実施形態によるRPAシステム200を示す。RPAシステム200は、
図1のRPAシステム100であってもよいし、その一部であってもよい。「クライアント側」、「サーバー側」、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステムを含むことができることに留意すべきである。
【0025】
本実施形態のクライアント側に示すように、コンピューティングシステム202は、1または複数のエグゼキュータ204、エージェント206、およびデザイナ208を含む。他の実施形態では、デザイナ208は、同じコンピューティングシステム202上で実行されていなくてもよい。エグゼキュータ204(これは、上述したようなロボットコンポーネントであってもよい)がプロセスを実行し、いくつかの実施形態では、複数のビジネスプロセスが同時に実行されてもよい。この例では、エージェント206(例えば、Windows(登録商標)サービス)は、エグゼキュータ204を管理するための単一の接続ポイントである。
【0026】
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理し得る。同時に実行される(例えば、高密度(HD)環境など)複数の対話型セッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され得、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。
【0027】
エージェント206はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、遂行されるパッケージの要求されるバージョンをダウンロードすることにも責任を負う。エージェント206とコンダクタ212との間の通信は、いくつかの実施形態では、エージェント206により開始される。通知シナリオの例では、エージェント206は、後にコンダクタ212によりロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
【0028】
本実施形態のサーバー側に示すように、プレゼンテーション層は、ウェブアプリケーション214と、Open Data Protocol(OData)Representative State Transfe(REST)アプリケーションプログラミングインターフェース(API)エンドポイント216と、通知および監視API218と、を含む。サーバー側のサービス層は、API実装/ビジネスロジック220を含む。サーバー側の永続層は、データベースサーバー222とインデクササーバー224とを含む。コンダクタ212は、ウェブアプリケーション214、OData REST APIエンドポイント216、通知および監視API218、ならびにAPI実装/ビジネスロジック220を含む。
【0029】
様々な実施形態では、ユーザーがコンダクタ212のインターフェース(例えば、ブラウザ210を介して)で実行するほとんどのアクションは、様々なAPIを呼び出すことにより実行される。このような動作は、ロボット上でのジョブの起動、キュー内のデータの追加/削除、無人で実行するジョブのスケジューリングなどを含み得るが、これらに限定されない。ウェブアプリケーション214は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション214は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかし、本発明の範囲を逸脱することなく、いずれかの所望のマークアップ言語、スクリプト言語、または他のいずれかのフォーマットを使用し得る。ユーザーは、コンダクタ212を制御するための様々な動作を実行するために、本実施形態ではブラウザ210を介してウェブアプリケーション214からのウェブページと対話する。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止などし得る。
【0030】
ウェブアプリケーション214に加えて、コンダクタ212は、OData REST APIエンドポイント216を公開するサービス層も含む(または、本発明の範囲を逸脱することなく他のエンドポイントが実装されてもよい)。REST APIは、ウェブアプリケーション214とエージェント206の両方により消費される。エージェント206は、この例示的な構成では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
【0031】
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成RESTエンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットにより送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するのに有用であり得る。デプロイメントRESTエンドポイントは、コンダクタ212においてジョブ開始コマンドが使用された場合に遂行されるべきパッケージのバージョンを問い合わせるためにロボットにより使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。RESTエンドポイントの監視は、ウェブアプリケーション214およびエージェント206を監視する。RESTエンドポイントの監視は、ウェブアプリケーション214およびエージェント206を監視する。通知および監視API218は、エージェント206の登録、エージェント206への構成設定の配信、およびサーバーとエージェント206との間の通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API218は、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0032】
サーバー側の永続層は、本例示的な実施形態では、一対のサーバー-データベースサーバー222(例えば、SQLサーバー)およびインデクササーバー224-を含む。本実施形態におけるデータベースサーバー222は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション214を介して管理される。データベースサーバー222はまた、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー222は、ロボットにより記録されたメッセージを(インデクササーバー224に加えて、またはインデクササーバー224に代えて)格納してもよい。いくつかの実施形態では任意であるが、インデクササーバー224は、ロボットにより記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー224は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー224は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットにより記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー224に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
【0033】
図3は、1または複数の実施形態によるRPAシステム300の簡略化された展開の一例を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム300は、
図1および
図2のそれぞれの、RPAシステム100および/もしくは200であり得、または
図1および
図2のそれぞれのRPAシステム100および/もしくは200を含み得る。RPAシステム300は、ロボットを実行する複数のクライアントコンピューティングシステム302を含む。コンピューティングシステム302は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム304と通信することができる。コンダクタコンピューティングシステム304は、順番に、データベースサーバー306および任意のインデクササーバー308と通信する。
図2および
図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバーソフトウェアを使用することができることに留意すべきである。例えば、コンダクタは、クライアントコンピューティングシステム上で、非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバーサイドアプリケーションを実行してもよい。
【0034】
一実施形態では、
図1のRPAシステム100、
図2のRPAシステム200、および/または図のRPAシステム300は、RPAロボットのクラウドベースの管理のために実装され得る。このようなRPAロボットのクラウドベース管理により、RPAをSoftware as a Service (SaaS)として提供することが可能になる。したがって、
図1のコンダクタ104、
図2のコンダクタ212および/または
図3のコンダクタ304は、例えば、RPAロボットを作製し、RPAロボットをプロビジョニングし、RPAロボット上のタスクをスケジューリングし、RPAロボットをデコミッションし、またはRPAロボットを管理するための他の任意のオーケストレーションタスクを実行するために、RPAロボットのクラウドベースの管理のためにクラウドに実装される。
【0035】
図4は、1または複数の実施形態による、RPAロボットのクラウドベースの管理を実装するためのクラウドRPAシステム400のネットワークアーキテクチャ図を示す。クラウドRPAシステム400は、クラウドコンピューティング環境402とローカルコンピューティング環境404とを含む。ローカルコンピューティング環境404は、ユーザーまたは他の任意の独立体または複数の独立体(例えば、企業、法人など)のローカルネットワークアーキテクチャを表す。ローカルコンピューティング環境404は、ローカルネットワーク406を含む。クラウドコンピューティング環境402は、ローカルコンピューティング環境404において、ユーザーからリモートのワークロードのサービスまたは処理を提供するクラウドコンピューティングネットワークアーキテクチャを表す。クラウドコンピューティング環境402は、インターネット414、ユーザーにより管理(または制御)され、クラウドプラットフォームプロバイダによりホストされるクラウドネットワークを表すユーザークラウドネットワーク418、およびクラウドサービスプロバイダにより管理され、クラウドプラットフォームプロバイダによりホストされるクラウドネットワークを表すクラウドサービスプロバイダクラウドネットワーク420を含む様々なクラウドネットワークを含む。クラウドサービスプロバイダは、クラウドを介してサービス(RPAなど)を提供する独立体である。クラウドプラットフォームプロバイダは、クラウドコンピューティングのインフラを維持する独立体である。ローカルコンピューティング環境404のローカルネットワーク406は、ローカルコンピューティング環境404とクラウドコンピューティング環境402との間の通信を容易にするために、クラウドコンピューティング環境402のインターネット414に通信的に結合される。
【0036】
図4に示すように、クラウドオーケストレータ430は、クラウドコンピューティング環境402に実装され、RPAロボットのクラウドベースの管理を可能にする。特に、クラウドオーケストレータ430は、クラウドサービスプロバイダにより管理され、クラウドコンピューティング環境402内のクラウドサービスプロバイダクラウドネットワーク420内でホストされている。一実施形態では、クラウドサービスプロバイダは、ローカルコンピューティング環境404においてユーザーにRPAを提供する。
【0037】
クラウドオーケストレータ430は、クラウドコンピューティング環境402において、RPAロボットを管理する。特に、ユーザーは、ローカルコンピューティング環境404のコンピューティングデバイス412と対話して、RPAロボットを管理するための命令をクラウドコンピューティング環境402のクラウドオーケストレータ430に送信する。あるいは、ユーザーは、ローカルコンピューティング環境404のコンピューティングデバイス412と対話して、クラウドオーケストレータ430にスケジュールを設定し、ユーザーに代わってRPAロボットを管理するための命令を自動的に送信する。RPAロボットを管理するための例示的な命令は、RPAロボットを作製すること、RPAロボットをプロビジョニングすること、RPAロボット上でのタスクをスケジューリング(例えば、タスクを実行する時間とタスクを実行するロボットの種類をスケジュールする)すること、RPAロボットをデコミッションすること、またはRPAロボットのための他の任意のオーケストレーション命令のための命令を含む。命令を受信することに応答して、クラウドオーケストレータ430は、例えば、RPAロボットを作製すること、RPAロボットをプロビジョニングすること、RPAロボットのタスクをスケジューリングすること、RPAロボットをデコミッションすることなどにより命令を実行する。一実施形態では、クラウドオーケストレータ430は、
図1のコンダクタ104、
図2のコンダクタ212、または
図3のコンダクタ304に類似していてもよいが、クラウドコンピューティング環境402内のクラウドサービスプロバイダクラウドネットワーク420内に実装される。
【0038】
クラウドオーケストレータ430により管理されるRPAロボットは、クラウドコンピューティング環境402内に展開され、維持されるクラウドロボットのプールを含んでもよい。このようなクラウドロボットは、クラウドサービスロボットプール426の1または複数のクラウドサービスロボット428-A、...、428-X(以下、クラウドサービスロボット428という)と、クラウド管理ロボットプール422の1または複数のクラウド管理ロボット424-A、...、424-Y(以下、クラウド管理ロボット424という)と、を含んでもよい。このようなクラウドロボットは、クラウドコンピューティング環境402においてタスクを実行(すなわち、処理)し、ローカルコンピューティング環境404においてユーザーにタスクの結果を送信する。さらにまたは代替的に、クラウドオーケストレータ430により管理されるRPAロボットは、ローカルロボットプール408の1または複数のローカルロボット410-A、...、410-Z(以下、総称してローカルロボット410という)を含み得る。
【0039】
クラウドサービスロボット428は、ローカルネットワーク環境404におけるユーザーのためのクラウドコンピューティング環境402におけるRPAタスクを実行するために、クラウドサービスプロバイダクラウドネットワーク420において、クラウドサービスプロバイダにより維持される。クラウドサービスロボット428は、ユーザーがコンピューティングデバイス412からクラウドオーケストレータ430に命令を送信することにより、要求に応じて作製される。作製されると、クラウドサービスロボット428は、タスク(またはワークフロー)の実行を待っている間、待機モードに入る。待機モードの間、クラウドサービスロボット428を動作させるためのコストは最小化されるか、さもなくば低減される。タスクは、ユーザーがコンピューティングデバイス412からクラウドオーケストレータ430に命令を送信することにより、クラウドサービスロボット428上でスケジューリングされる。タスクのスケジューリングの命令は、タスクを実行する時間と、タスクを実行するロボットの種類を定義する。クラウドサービスロボット428は、タスクを実行するために待機モードから復帰し、タスクが完了すると待機モードに戻る。したがって、クラウドサービスロボット428は、ローカルコンピューティング環境404において、ユーザーのために、クラウドサービスプロバイダクラウドネットワーク420上でタスクを実行する。
【0040】
クラウド管理ロボット424は、ローカルネットワーク環境404のユーザーのためのクラウドコンピューティング環境402でRPAタスクを実行するために、ユーザークラウドネットワーク418でユーザーにより維持される。クラウド管理ロボット424は、クラウドサービスロボット428と同様の機能を有し、また、クラウドコンピューティング環境402でホストされる。しかしながら、クラウド管理ロボット424がホストされているユーザークラウドネットワーク418は、ユーザーにより管理され、一方で、クラウドサービスロボット428がホストされているクラウドサービスプロバイダクラウドネットワーク420は、クラウドサービスプロバイダにより管理され、クラウドプラットフォームプロバイダによりホストされる。クラウドオーケストレータ430は、クラウドサービスプロバイダクラウドネットワーク420とユーザークラウドネットワーク418との間に接続を確立することにより、クラウド管理ロボット424を管理する。ユーザークラウドネットワーク418は、ローカルネットワーク406にトンネルバックするために、クラウドプロバイダ技術を利用するユーザーにより確立され得る。ユーザーは、ローカルネットワーク406からクラウドサービスプロバイダクラウドネットワーク420への専用ネットワーク接続を確立し得る。接続は典型的には、例えば、エニーツーエニー(例えば、インターネットプロトコル仮想プライベートネットワーク)ネットワーク、ポイントツーポイントイーサネットネットワーク、またはコロケーション施設の接続プロバイダを介した仮想クロスコネクションの形態である。これらの接続は、公共のインターネットを経由しない。これにより、インターネット上の典型的な接続よりも高い信頼性、高速化、一貫したレイテンシー、および高いセキュリティを実現する。ユーザークラウドネットワーク418は、ユーザーにより完全に制御および、管理され続け、それにより、ユーザーにデータに対する厳しい制御を提供する。
【0041】
クラウドサービスプロバイダクラウドネットワーク420とユーザークラウドネットワーク418との間の接続が確立されると、コンピューティングデバイス412を介してクラウドオーケストレータ430と対話するユーザーの要求に応じて、クラウド管理ロボット424が作製される。クラウド管理ロボット424は、ユーザークラウドネットワーク418上に作製される。したがって、クラウド管理ロボット424は、ローカルコンピューティング環境404において、ユーザーのためのユーザークラウドネットワーク418上でタスクを実行する。アルゴリズムを適用して、クラウド管理ロボットプール422内のロボットの利用を最大化し、ユーザーの運転コストを低減し得る。
【0042】
ローカルロボット410は、ローカルネットワーク環境404内のユーザーのためのRPAタスクを実行するために、ローカルネットワーク406内のユーザーにより維持される。ローカルネットワーク406は、ユーザーにより制御されるかまたは管理される。クラウドオーケストレータ430は、標準的なHTTPS接続を介してローカルロボット410との接続を維持する。
【0043】
本明細書で説明される実施形態は、顧客のオンプレミスで複数のRPAサービスを実装するための共通のRPAサービス配信プラットフォームを提供する。例示的なRPAサービスは、RPAワークフローの遂行を編成するためのオーケストレータ、RPAワークフローを設計するためのデザイナ、RPAワークフローを遂行するためのRPAロボット、または他の任意のRPA製品もしくはサービスを含み得る。このようなRPAサービスは、例えば、
図1のRPAシステム100、
図2のRPAシステム200、
図3のRPAシステム300、および/または
図4のクラウドRPAシステム400を用いて実装され得る。RPAサービス配信プラットフォームは、RPAサービスのための統一された配信メカニズムを提供して、顧客に一貫したユーザー体験を提供し、そしてトラブルシューティングおよび保守を容易にする。RPAサービス配信プラットフォームはさらに、一式として提供されるRPAサービスにわたるインストール、ソフトウェアバージョンのライフサイクル管理(すなわち、アップグレード)、ならびにスケール、高可用性、および性能制限を管理する一貫性を提供する。
【0044】
本明細書に記載される実施形態は、顧客のオンプレミスで複数のRPAサービスを実装するためのRPAサービス配信プラットフォームを提供するが、本発明はそのように限定されないことを理解されたい。1または複数の実施形態によると、サービス配信プラットフォームは、顧客のオンプレミスで任意の製品またはサービスを実装するために提供され得、RPAに限定されない。
【0045】
RPAサービス配信プラットフォームは、構築時コンポーネントと実行時コンポーネントとの2つを含む。構築時コンポーネントは、複数のRPAサービスを顧客のオンプレミスにある1または複数のコンピューティングシステムにインストールするためのインストーラを生成するためのコンポーネントである。例えば、構築時コンポーネントは、複数のRPAサービスのためにオンボーディングすること、構築すること、試験すること、およびインストーラを生成することのためのツールおよびサービスを含む。実行時コンポーネントは、顧客のオンプレミスのコンピューティングシステムにインストールされた複数のRPAサービスのうちの1または複数を維持するために、顧客のコンピューティングシステムにインストールされるコンポーネントである。例えば、実行時コンポーネントは、インフラストラクチャおよび複数のRPAサービスのライフサイクルを管理するためのツールおよびサービスを含む。RPAサービス配信プラットフォームの構築時コンポーネントおよび実行時コンポーネントは、それぞれ
図5および
図6に示されており、以下に詳細に説明される。
【0046】
図5は、1または複数の実施形態による、RPAサービス配信プラットフォームの構築時コンポーネントの例示的なシステム
図500を示す。構築および配信パイプライン502は、1または複数のリポジトリ504とサービスレジストリ506とを含む。リポジトリ504は、RPAサービス配信プラットフォームの構築時コンポーネントおよび実行時コンポーネントをプログラム的にインストールおよび構成するために、RPAサービスチーム508および/またはRPAサービス配信プラットフォームチーム510から受信した構成、マニフェスト、およびスクリプトを格納する。サービスレジストリ506は、RPAサービスチーム508によって受信された(例えば、公開またはプッシュされた)複数のRPAサービス(およびそれらの依存関係)の試験済みおよびコンテナ化された画像を格納する。パイプライン512は、リポジトリ504に格納された構成、マニフェスト、およびスクリプトを検証し、クラスタコンポーネント516およびOSS(運用支援システム)コンポーネント518を用いて試験環境514におけるE2E(エンドツーエンド)試験を介してサービスレジストリ506に格納された複数のRPAサービスの画像の開発、試験、およびリリースを促進する自動化された開発および操作ジョブである。パイプライン512は、RPAサービス配信プラットフォームチーム510によって構築される。
【0047】
検証されると、パイプライン512は、複数のRPAサービスのバンドルのスクリプトおよび/またはバンドルをインストールするための1または複数のインストーラ520を構築し、公開する。インストーラ520は、顧客が、顧客の要件に従って、複数のRPAサービスのいずれかまたはすべてをインストールすることを可能にする。一実施形態では、パイプライン512は、異なるタイプおよびバージョンの複数のインストーラを構築する。例えば、パイプライン512は、インターネット接続性を有するコンピューティングシステムに複数のRPAサービスをインストールするための第1のインストーラと、インターネット接続性を有しないエアギャップされたコンピューティングシステムに複数のRPAサービスをインストールするための第2のインストーラとを構築し得る。複数のRPAサービスは、複数のRPAサービスが単一のインストーラ520に含まれることを可能にするために、認証、発見、ユーザー/テナント/組織管理などのためのパターンに従う。顧客522(例えば、顧客のIT管理者)は、インストーラ520をダウンロードし、インストーラ520を使用して、顧客のオンプレミスのハードウェア524(例えば、1または複数のコンピューティングデバイス)に、他のコンポーネントとともに複数のRPAサービスのうちの1または複数をインストールする。複数のRPAサービスは、ALM(アプリケーションライフサイクル管理)を用いて構成され、エンドユーザー528によってアプリケーション526を介して(例えば、デスクトップコンピュータまたは他の任意のコンピューティングデバイスを介して)アクセスされる。RPAサービスサポートチーム530は、ハードウェア524およびアプリケーション526のためのオンデマンドトラブルシューティングサポートを提供する。
【0048】
図6は、1または複数の実施形態による、RPAサービス配信プラットフォームの実行時コンポーネントの例示的なシステム
図600を示す。実行時には、RPAサービス配信プラットフォームは、オンプレミスのハードウェアのコンピューティングノード604-A、604-B、および604-C上のクラスタ606で実行され、クラスタ606は外部ロードバランサ602を介してアクセスされる。実行時アーキテクチャは、インフラコンポーネント(例えば、クラスタ606として実装)、プラットフォームコンポーネント608、およびRPAサービス610の3つの層を含む。
【0049】
インフラコンポーネントは、クラスタ606を実行するためのソフトウェアである。インフラコンポーネントは、例えば、ハードウェアドライバ(例えば、オペレーティングシステムドライバ、グラフィックスプロセッシングユニットドライバ等)、コンテナオーケストレーションプラットフォーム(例えば、Kubernetes)、ストレージ抽象化プロバイダ(例えば、Longhorn)等を含んでもよい。インフラコンポーネントは、RPAサービス配信プラットフォームを実装するための第1のステップ間でインストールされる。
【0050】
プラットフォームコンポーネント608は、クラスタ606上で実行するソフトウェアであり、インストールされたRPAサービスに対して、例示的に操作1~13として示される操作を実行するために提供されるものである。例えば、プラットフォームコンポーネント608は、セキュリティ、スケーラビリティ、災害復旧、リソースガバナンス、ALM、監視、構成管理、クラスタ管理、メッセージ仲介、集中キャッシュなどの操作を実行し得る。プラットフォームコンポーネント608は、クラスタ606が実行した後、RPAサービス配信プラットフォームを実装するための第2のステップ間にインストールされる。
【0051】
RPAサービス610は、クラスタ606上で実行する複数のRPAサービスである。例えば、
図6に示すように、RPAサービス610は、オーケストレータサービス、ファーストパーティプラットフォームサービス、および製品付帯サービスを含み得る。RPAサービス610は、プラットフォームコンポーネント608の出力を使用して実行し得る。RPAサービス610は、顧客によって定義されたRPAサービス配信プラットフォームを実装するための第3のステップ間にインストールされる。RPAサービス配信プラットフォームは、RPAサービス610がインストールされ、構成される前に、RPAサービス610のすべての依存関係がインストールされ、準備されていることを保証する。
【0052】
テナントワークロード612は、RPAサービス610を実行するためのテナントのワークロードを表す。例えば、
図6に示すように、テナントワークロード612は、テナントT1、T2、およびT3に対する機械学習モデルの提供および訓練のためのワークロードを示す。
【0053】
いくつかの実施形態では、例えば、安定性、セキュリティ、および保守性を向上させるために、追加のコンポーネントまたはサービスが顧客によってインストールされ得る。例えば、外部ロードバランサ602は、クラスタ606を実行するためのノード604-A、604-B、および604-Cのバランスをとるためにインストールされ得、外部ストレージ614-Aは、プラットフォームコンポーネント608、テレメトリ614-B、外部SQL(構造化クエリ言語)サーバー614-Cのバックアップジョブからのバックアップを格納するためにインストールされ得、そして外部秘密データベース614-Dは、RPAサービス610からのデータを格納するためにインストールされ得、ログインデクサ614-Eは、クラスタ606からのログをインデックス化するためにインストールされ得、そして警告ゲートウェイ614-Fは、プラットフォームコンポーネント608の警告マネージャから警告を生成するためにインストールされ得る。他のコンポーネントまたはサービスも企図される。
【0054】
図7は、1または複数の実施形態による、RPAサービス配信プラットフォームを使用して顧客のオンプレミスで複数のRPAサービスを実装するための方法700を示す。方法700は、例えば、
図8のコンピューティングシステム800などの任意の適切なコンピューティングデバイスまたはデバイスによって実行され得る。一実施形態では、方法700のステップは、RPAサービス配信プラットフォームによって実行される。
【0055】
ステップ702において、RPAサービス配信プラットフォームを使用して、複数のRPAサービスを顧客のオンプレミスにある1または複数のコンピューティングシステムにインストールするためのインストーラが生成される。複数のRPAサービスは、例えば、RPAワークフローの遂行を編成するためのオーケストレータ、RPAワークフローを設計するためのデザイナ、RPAワークフローを遂行するためのRPAロボット、または他の任意のRPA製品もしくはサービスを含み得る。
【0056】
一実施形態では、インストーラは、複数のRPAサービスのためにオンボーディングすること、構築すること、試験すること、およびインストーラを生成することによって生成される。インストーラは、RPAサービス配信プラットフォームの構築時コンポーネントによって生成される。一例では、構築時コンポーネントは、
図5に示される構築時コンポーネントであり得る。
【0057】
ステップ704において、インストーラを1または複数のコンピューティングシステムにインストールされた複数のRPAサービスのうちの1または複数は、RPAサービス配信プラットフォームを使用して維持される。RPAサービスの1または複数は、RPAサービス配信プラットフォームの実行時コンポーネントによって維持される。一例では、実行時コンポーネントは、
図6に示される実行時コンポーネントであり得る。1または複数のRPAサービスは、顧客が複数のRPAサービスをバンドルしたインストーラを遂行することによってインストールされ得る。インストールされると、1または複数のRPAサービスは、実行時コンポーネントによって実行、アップグレード、および/または他の方法で維持され得る。
【0058】
1または複数のRPAサービスは、インフラコンポーネント、RPAサービス配信プラットフォームコンポーネント、および実行時アーキテクチャのRPAサービスを使用して維持される。インフラコンポーネントは、RPAサービス配信プラットフォームコンポーネントおよびRPAサービスが実行するコンピューティングクラスタを実行するための1または複数のホストコンピューティングシステム上で実行する。RPAサービス配信プラットフォームコンポーネントは、RPAサービスのための様々な操作を実行する。RPAサービスは、インストールされた1または複数のRPAサービスである。
【0059】
一実施形態では、1または複数のコンピューティングシステムが(例えば、インターネットへの)ネットワーク接続性を有する接続された環境において、インストーラは、ネットワークを介して1または複数のコンピューティングシステムに転送され得、ネットワークを介してレジストリから1または複数のRPAサービスをインストールするためのデータを取得し得る。別の実施形態では、1または複数のコンピューティングシステムが(例えば、インターネットへの)ネットワーク接続性を有しないエアギャップ環境において、インストーラは、(例えば、非ネットワークメカニズムを介して)1または複数のコンピューティングシステムに安全に転送されてよく、1または複数のRPAサービスをインストールするためのデータを含み得る。
【0060】
図8は、コンピューティングシステム800を示すブロック図である。コンピューティングシステム800は、本発明の1または複数の実施形態によるRPAサービス配信プラットフォームを含む、
図7の方法700を含む本明細書に記載される方法、ワークフロー、およびプロセスを遂行するように構成され得、または本明細書に記載されるシステムを実装するように構成され得る。いくつかの実施形態では、コンピューティングシステム800は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。コンピューティングシステム800は、情報を通信するためのバス802または他の通信機構と、情報を処理するためのバス802に結合されたプロセッサ(複数可)804とを含む。プロセッサ(複数可)804は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)804はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。
【0061】
コンピューティングシステム800は、プロセッサ(複数可)804によって遂行される情報および命令を格納するためのメモリ806をさらに含む。メモリ806は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)804によりアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体または両方などを含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
【0062】
さらに、コンピューティングシステム800は、現在存在するまたは将来実装される通信規格および/またはプロトコルによる、無線および/または有線接続を介して通信ネットワークへのアクセスを提供するために、トランシーバなどの通信装置808を含む。
【0063】
プロセッサ(複数可)804は、バス802を介して、ユーザーに情報を表示するのに適したディスプレイ810にさらに結合されている。ディスプレイ810はまた、タッチディスプレイおよび/または任意の適切な触覚I/Oデバイスとして構成されてもよい。
【0064】
コンピュータマウス、タッチパッドなどのようなキーボード812およびカーソル制御装置814は、ユーザーがコンピューティングシステムとインターフェースすることを可能にするために、バス802にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ810および/またはタッチパッド(図示せず)のみを介してデバイスと対話することができる。任意の入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力装置および/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム800と通信している別のコンピューティングシステムを介してリモートでコンピューティングシステム800と対話してもよいし、コンピューティングシステム500は自律的に動作してもよい。
【0065】
メモリ806は、プロセッサ(複数可)804により遂行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム800のためのオペレーティングシステム816と、本明細書に記載されるプロセスの全部もしくは一部、またはその派生物を実行するように構成された1もしくは複数の追加機能モジュール818とを含む。
【0066】
当業者であれば、「システム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」により実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合性のあるローカライズされた形態および分配された形態で実装されてもよい。
【0067】
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。モジュールはまた、様々なタイプのプロセッサにより遂行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、遂行可能コードの識別された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、遂行可能な識別されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュ装置、RAM、テープのようなコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。実際、遂行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリ装置間に分散されていてもよい。同様に、操作データは、モジュール内で識別され、ここで示されてもよく、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。操作データは、単一のデータセットとして収集されてもよいし、または異なる記憶装置にわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
【0068】
前述は、単に開示の原則を例示しているに過ぎない。したがって、本明細書に明示的に記載または示されていないが、本開示の原理を具現化し、その精神および範囲内に含まれる様々なアレンジを、当業者が考案することができることが理解されるであろう。さらに、本明細書に引用された全ての実施例および条件文言は、主として、本開示の原理および本発明者が技術の発展に貢献した概念を理解するための読者を助けるための教育的な目的のみを意図しており、そのような具体的に引用された実施例および条件に限定されないものとして解釈されるべきである。さらに、本開示の原理、態様、および実施形態、ならびにそれらの具体的な実施例を引用する本明細書の全ての記述は、それらの構造的および機能的等価物を包含することを意図する。さらに、このような等価物には、現在知られている等価物だけでなく、将来開発される等価物も含まれることが意図される。
【国際調査報告】