(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-23
(54)【発明の名称】クラウド移行
(51)【国際特許分類】
G06F 8/76 20180101AFI20241016BHJP
G06F 8/60 20180101ALI20241016BHJP
【FI】
G06F8/76
G06F8/60
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021569977
(86)(22)【出願日】2021-10-29
(85)【翻訳文提出日】2022-02-17
(86)【国際出願番号】 US2021057184
(87)【国際公開番号】W WO2023059347
(87)【国際公開日】2023-04-13
(32)【優先日】2021-10-04
(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)【発明者】
【氏名】グイドン,グレゴリー チャールズ
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC25
(57)【要約】
本明細書では、システムを開示する。システムは、メモリおよびプロセッサを含む。メモリは、移行エンジンのためのプロセッサ実行可能命令を格納する。プロセッサは、メモリに結合される。プロセッサは、移行エンジンを実行して、自動化またはユーザー特有の取り決めに対応するデータをマイニングするためのオンプレミスシステムへのエクスポート動作をシステムに実施させる。プロセッサはまた、移行エンジンを実行して、自動化またはユーザー特有の取り決めを複製するために、クラウド環境へのデータのインポート動作をシステムに実施させる。
【特許請求の範囲】
【請求項1】
システムであって、
移行エンジンのためのプロセッサ実行可能命令を格納するように構成されたメモリと、
前記メモリに結合された少なくとも1つのプロセッサであって、前記少なくとも1つのプロセッサは、前記プロセッサ実行可能命令を実行して、
自動化またはユーザー特有の取り決めに対応するデータをマイニングするためのオンプレミスシステムへのエクスポート動作を前記移行エンジンによって実施すること、
前記自動化またはユーザー特有の取り決めを複製するために、前記データのクラウド環境へのインポート動作を前記移行エンジンによって実施すること、
を前記システムに行わせるように構成される、少なくとも1つのプロセッサと、
を含む、システム。
【請求項2】
前記ユーザー特有の取り決めは、設定、構成、トリガ、および好みを含む、請求項1に記載のシステム。
【請求項3】
前記自動化は、ロボット、機械、ウェブフック、スクリプト、アプリケーションマクロおよびエンティティを含む、請求項1に記載のシステム。
【請求項4】
前記エクスポート動作は、テナント名またはユーザー名を要求し、パスワードを要求するプロンプトを提供する、請求項1に記載のシステム。
【請求項5】
前記移行エンジンは、マイニングおよび複製されたデータの概要を提示するエントリリストを生成する、請求項1に記載のシステム。
【請求項6】
前記移行エンジンは、前記インポート動作中に、前記データのどの部分が前記クラウド環境上に存在するかを決定し、前記データの非存在部分のみを追加するピースミール移行を実施する、請求項1に記載のシステム。
【請求項7】
前記システムは、エアギャップのある環境と、接続された環境とを含む、請求項1に記載のシステム。
【請求項8】
前記移行エンジンは、依存関係の問題の呼出拒否および警告に対応するエラーリストを生成する、請求項1に記載のシステム。
【請求項9】
エラーリストの項目は、前記項目のインポートを完了するために表示および修正されるように構成される、請求項8に記載の方法。
【請求項10】
前記オンプレミスシステムからの前記自動化または前記ユーザー特有の取り決めに対応する前記データは、シリアル化されたJSON形式で前記オンプレミスシステムのリポジトリとともに格納される、請求項1に記載のシステム。
【請求項11】
少なくとも1つのプロセッサに結合されたメモリにプロセッサ実行可能命令として格納された移行エンジンによって実施される方法であって、前記方法は、
自動化またはユーザー特有の取り決めに対応するデータをマイニングするためのオンプレミスシステムへのエクスポート動作を実施することと、
前記自動化または前記ユーザー特有の取り決めを複製するために、前記データのクラウド環境へのインポート動作を実施することと、
を含む、方法。
【請求項12】
前記ユーザー特有の取り決めは、設定、構成、トリガおよび好みを含む、請求項11に記載の方法。
【請求項13】
前記自動化は、ロボット、機械、ウェブフック、スクリプト、アプリケーションマクロおよびエンティティを含む、請求項11に記載の方法。
【請求項14】
前記エクスポート動作は、テナント名またはユーザー名を要求し、パスワードを要求するプロンプトを提供する、請求項11に記載の方法。
【請求項15】
前記移行エンジンは、マイニングおよび複製されたデータの概要を提示するエントリリストを生成する、請求項11に記載の方法。
【請求項16】
前記移行エンジンは、前記インポート動作中に、前記データのどの部分が前記クラウド環境上に存在するかを決定し、前記データの非存在部分のみを追加するピースミール移行を実施する、請求項11に記載の方法。
【請求項17】
前記システムは、エアギャップのある環境と、接続された環境とを含む、請求項11に記載の方法。
【請求項18】
前記移行エンジンは、依存関係の問題の呼出拒否および警告に対応するエラーリストを生成する、請求項11に記載の方法。
【請求項19】
エラーリストの項目は、前記項目のインポートを完了するために表示され、修正されるように構成される、請求項18に記載の方法。
【請求項20】
前記オンプレミスシステムからの前記自動化または前記ユーザー特有の取り決めに対応する前記データは、シリアル化されたJSON形式で前記オンプレミスシステムのリポジトリとともに格納される、請求項11に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
(関連出願への相互参照)
本出願は、2021年10月4日に出願された米国出願第17/493,010号の利益を主張し、その内容は参照により本明細書に組み込まれる。
【0002】
本明細書の開示は、クラウド移行の分野に関し、詳細には、オンプレミスデータのクラウド移行に関する。
【0003】
従来の操作およびソフトウェアシステムにおいては、ユーザーが設定、構成、ロボット、トリガ、機械、キュー、ウェブフックおよび他のエンティティをオンプレミスで(すなわち、従来の操作およびソフトウェアシステム内において)手動で生成する必要がある。その後、ユーザーがクラウド環境への移行を希望する場合、従来のクラウドシステムの場合、ユーザーは、オン-プレムの同じ設定、構成、ロボット、トリガ、機械、キュー、ウェブフックおよび他のエンティティの再生成をクラウド環境において手動で行う必要がある。そのため、クラウド移行ツールが必要とされる。
【発明の概要】
【0004】
1または複数の実施形態によれば、システムが提供される。本システムは、メモリおよびプロセッサを含む。メモリは、移行エンジンのためのプロセッサ実行可能命令を格納する。プロセッサは、メモリに結合される。プロセッサは、移行エンジンを実行して、自動化またはユーザー特有の取り決めに対応するデータをマイニングするためのオンプレミスシステムへのエクスポート動作をシステムに実施させる。プロセッサは、移行エンジンを実行して、自動化またはユーザー特有の取り決めを複製するために、クラウド環境へのデータの動作インポート動作もシステムに実施させる。
【0005】
1または複数の実施形態によれば、上記のシステムの実施形態は、方法、装置、デバイスおよび/またはプログラム製品として実施され得る。
【0006】
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
【図面の簡単な説明】
【0007】
【
図1】1または複数の実施形態によるアーキテクチャを示す。
【0008】
【
図2】1または複数の実施形態による自動化の例を示す。
【0009】
【0010】
【0011】
【
図5】1または複数の実施形態による例示的なユーザーインターフェースを示す。
【0012】
【
図6】1または複数の実施形態による例示的なユーザーインターフェースを示す。
【0013】
【
図7】1または複数の実施形態による例示的なユーザーインターフェースを示す。
【0014】
【0015】
【
図9】1または複数の実施形態による例示的なユーザーインターフェースを示す。
【0016】
【
図10】1または複数の実施形態による例示的なユーザーインターフェースを示す。
【0017】
【
図11】1または複数の実施形態による例示的なユーザーインターフェースを示す。詳細な説明
【0018】
本明細書の開示は、クラウド移行の分野に関し、詳細には、オンプレミスデータのクラウド移行に関する。例えば、オンプレミスデータのクラウド移行は、既存のオンプレミスの操作およびソフトウェアシステム、ならびに対応するデータをクラウド環境に複製するロボティックプロセスオートメーション(RPA)などのソフトウェアおよび/またはハードウェア(例えば、ハードウェアへのルーティングを必要とするプロセッサ実行可能コード)を含む移行エンジン(すなわち、クラウド移行ツール)によって実施される。移行エンジンは、次に、クラウド環境のユーザーインターフェース(UI)を介して、ユーザーが任意の自動化の手動による再現動作を省略することを可能にする。したがって、移行エンジンの1または複数の技術的な効果、利点および利益は、ユーザーが技術的な構成を見逃すことなく、既存の自動化をクラウド環境にシームレスに移行/移動することを可能にすることと、成功したエンティティの移動と失敗したエンティティの移動およびデータのエラーと警告を示す移行/移動のサマリーを提供することとを含む。
【0019】
次に
図1に目を向けると、1または複数の実施形態によるアーキテクチャ100が示される。アーキテクチャ100は、移行エンジン101(すなわち、クラウド移行ツール)をサポートするハードウェア、ソフトウェアまたはこれらの組み合わせを含む、1もしくは複数のコンピューティングデバイス、コンピューティング装置および/またはコンピューティング環境を示し得る。さらに、本明細書に開示されるアーキテクチャ100および移行エンジン1010の実施形態は、任意の可能な技術的詳細レベルの統合において、1もしくは複数の装置、システム、方法および/またはコンピュータプログラム製品を含み得る。
【0020】
示されるように、アーキテクチャ100は、オンプレミスシステム110と、クラウド環境111とを有する。オンプレミスシステム110は、1または複数の既存のアプリケーション119、1または複数のプロセッサ121、1または複数のシステムメモリ122、システムバス123、1または複数のアダプタ125、126、および127、1または複数の入力デバイス141、ならびに1または複数の出力デバイス142を含み得る。システムメモリ122は、少なくともリポジトリ151、移行エンジン101および1または複数の自動化152をサポートし得る。リポジトリ151は、データ160を格納し得る。さらに、移行エンジン101の動作171および172に基づいて、1または複数の自動化152およびデータ160は、(点線のアウトラインで表されるように)クラウド環境111に移行され得る。アーキテクチャ100の任意の1つの要素について単一のブロックが示されているが、単一のブロックは、その要素の1または複数を示すものであることに留意されたい。また、本明細書では、アーキテクチャ100の任意の要素を単数形で言及される場合もあれば、複数形で言及される場合もある点に留意されたい。さらに、オンプレミスシステム110の要素のうちいずれかが、移行エンジン101の適切な操作のために必要に応じてクラウド環境111内においてみられる場合もある。
【0021】
オンプレミスシステム110は、オンラインプラットフォーム、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、スマートフォン、固定型モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成される任意のコンピューティングデバイスまたはシステムであり得る。「オン-プレミス」、「オン-プレミス(複数)」、または「オン-プレム」とも呼ばれるオンプレミスは、コンピューティングデバイスまたはシステム内など、ソフトウェアが展開される場所を指す。オンプレミスとは対照的に、オフプレミスは、クラウド環境111のように、コンピューティングデバイスまたはシステムの外部の任意の場所であり得る。オンプレミスシステム110は、自動化152およびデータ160を利用する1または複数の既存アプリケーション119をさらに提供し得る。1または複数の既存のアプリケーション119は、特定のタスクを実行するソフトウェアであり、例えば、オンプレミスシステム110の自動化された構成、調整、および管理を提供するオーケストレーションソフトウェア(すなわち、オン-プレムオーケストレータ)の他、ワードプロセッサ、グラフィック、データベース、スプレッドシート、プレゼンテーション、ウェブブラウザおよびエンタープライズソフトウェアなどがある。
【0022】
クラウド環境111は、オンプレミスシステム110の外部にある任意のコンピューティング環境であり得る。クラウド環境111は、内部のリソース(特に、(複数の物理的な場所(例えば、1または複数のデータセンター)に分散された)データストレージおよびコンピューティングパワー)のオンデマンドの利用可能性を提供し得る。クラウド環境111は、オンプレミスシステム110内にある任意のアプリケーションの複製をさらに提供し得る(例えば、既存のアプリケーション119またはオン-プレムオーケストレータをミラーリングするクラウド組織またはクラウドオーケストレータ)。
【0023】
プロセッサ121は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイスまたはこれらの任意の組み合わせを含む、任意のタイプの一般的または特定用途プロセッサであり得る。プロセッサ121は、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。複数並列処理も、プロセッサ121を用いて構成され得る。プロセッサ121は、処理回路とも呼ばれ、システムバス123を介して、システムメモリ122および様々な他のコンポーネントに結合される。
【0024】
システムメモリ122は、(非一時的な)コンピュータ読み取り可能なストレージ媒体の一例であり、リポジトリ151、移行エンジン101および自動化152が内部に配置/管理/格納され得る。さらに、システムメモリ122は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、内部または外部フラッシュメモリ、エンベッディッドスタティック-RAM(SRAM:Embedded Static-RAM)、ソリッドステートメモリ、キャッシュ、静的ストレージ、または任意の他のタイプの揮発性もしくは不揮発性メモリの任意の組み合わせを含み得る。非一時的な読み取り可能なストレージ媒体は、プロセッサ121がアクセス可能な任意の媒体であり得、取り外し可能な媒体、取り外し不可能な媒体など、任意の媒体を含み得る。
【0025】
システムバス123は、プロセッサ121、システムメモリ122および他の様々なコンポーネントの間において情報(例えば、データ160)を通信するために構成された配線または他のメカニズムである。
【0026】
アダプタ125、126および127に関して、オンプレミスシステム110は特に、入力/出力(I/O)アダプタ125、デバイスアダプタ126および通信アダプタ127を含み得る。
【0027】
1または複数の実施形態によると、I/Oアダプタ 125は、周波数分割多元接続(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)、または、通信用のいずれかの他の無線もしくは有線のデバイス/トランシーバに照らして、スモールコンピュータシステムインターフェース(SCSI:small computer system interface)として構成され得る。
【0028】
デバイスアダプタ126は、ディスプレイ、キーボード、制御デバイスなど(例えば、カメラ、スピーカなど)の入/出力デバイス141および142をシステムバス123に相互接続させる。
【0029】
通信アダプタ126は、システムバス123と、ネットワークを介し得る、クラウド環境111とを相互に接続し、オンプレミスシステム110が自動化152およびデータ160を通信できるようにする。
【0030】
アダプタ125、126および127は、中間バスブリッジを介してシステムバス123に接続される1または複数のI/Oバスに接続され得る。ハードディスクコントローラ、ネットワークアダプタおよびグラフィックアダプタなどの周辺機器を接続するのに適したI/Oバスは、典型的には、ペリフェラルコンポーネントインターコネクト(PCI:Peripheral Component Interconnect)などの共通プロトコルを含む。
【0031】
入力デバイス141は、オンプレミスシステム110に入力するための、キーボード、コンピュータマウス、タッチパッド、タッチスクリーン、キーパッドなどの制御デバイスであり得る。さらに、1または複数の入力は、それと通信している別のコンピューティングシステムを介して遠隔でオンプレミスシステム110に提供されてもよく、またはオンプレミスシステム110が自律的に動作し得る。
【0032】
出力デバイス142は、移行エンジン101によって生成、キャプチャおよび分析され得る、1または複数のUIまたはグラフィックUI(GUI)を提供するように構成される。出力ディスプレイ142の例は、限定されないが、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、投影ディスプレイ、4Kディスプレイ、高解像度(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)ディスプレイなどを含み得る。出力ディスプレイ142は、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ、3次元(3D)タッチ、マルチ入力タッチまたはマルチタッチディスプレイとして入力/出力(I/O)のために構成され得る。
【0033】
リポジトリ151は、任意のデータベース(例えば、SQLデータベース)および/または別のストレージメカニズムであり得る。1または複数の実施形態によれば、リポジトリ151は、移行エンジン101によるアクセスのために、本明細書に記載されたデータ160を含み得る。データ160は、自動化152によって作成または使用される生の非構造化および/または構造化データを含み得る。データ160の例は、限定されないが、画像、セグメント、ハッシュ、ビデオ、フレーム、ソースデータ、ロボットビデオ、履歴データおよびソースコードを含む。1または複数の実施形態によれば、データ160は、設定、構成、トリガおよび好みを含むユーザー特有の取り決めであり得る。
【0034】
自動化152は、代表的なロボット、機械、ウェブフック、スクリプト、アプリケーションマクロ、オン-プレムの設定、構成、トリガ、キューおよび他のエンティティであり得る。
図2に目を向けると、1または複数の実施形態による、自動化151の例が示される。
【0035】
図2はまた、1または複数のロボット201、202および203を格納するシステムメモリ200を示す。システムメモリ200は、
図1のシステムメモリ122の一例である。一般的に、移行エンジン101は、1または複数のドライバコンポーネント226および/または内部エンジン228を使用して、1もしくは複数のアクティビティ222を実行し、かつ/または、1もしくは複数のUI自動化224を提供する1または複数のロボット201、202、および203を生成するスタジオコンポーネントを含むか、あるいはそれと連携して操作し得る。1または複数のロボット201、202および203はまた、他のドライバコンポーネント230およびモジュール240と係合し得る。
【0036】
例えば、ロボット201(ならびにアテンディッドロボット202およびアンアテンディッドロボット203)は、1または複数のワークフロー(例えば、1もしくは複数のアクティビティ222によって部分的に表されかつ/または1もしくは複数のUIオートメーション224を提供するもの)を実行および/または自動化し得るアプリケーション、アプレットなどであり得る。ワークフローには、タスクシーケンス、フローチャート、有限状態マシン(FSM)、グローバル例外ハンドラ、透過的なUIなどが含まれ得るが、これらに限定されない。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態をそれらの実行中に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスなどのために、実行エラーが発生したときのワークフローの動作を判断するように構成され得る。透過的なUIは、基礎となるオペレーティングシステム(OS)またはハードウェアに対するソフトウェア操作であり得る。1または複数ワークフローによって達成され得る操作の非限定的な例としては、ログインの実行、フォームへの入力、情報技術(IT)管理などのうちの1または複数であり得る。
【0037】
さらに、アテンディッドロボット動作の場合、アテンディッドロボット202による自動化は、第三者のコンポーネントから入力、コマンド、命令、ガイダンスなどを受信することによって実行され得る。アンアテンディッドの動作の場合、アンアテンディッドロボット203による自動化は、サードパーティの入力または制御なしで実行され得る。
【0038】
1または複数の実施形態によると、1または複数のロボットおよびエグゼキュータ170、201、202および203は、それぞれが特定の自動化タスクまたはアクティビティに専用に用いられるいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し得、実行ホスト(すなわち、1または複数のロボット201、202、および203が実行されるオンプレミスシステム110)のプロキシとして動作し得る。これらのサービスは、資格情報を用いて信頼および管理され得る。
【0039】
1または複数の実施形態によると、アクティビティ222および/またはUI自動化224は、ロボット201内のドライバ226、ドライバコンポーネント230および/またはモジュール240を使用して、ロボット201によって実行され得る。ドライバ226は、UIの要素を取得するために、ロボット201によるUIオートメーションのために利用され得る。ドライバコンポーネント230は、限定されないが、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどを含み得る。特定の構成では、モジュール240は、UIオートメーションのために使用されるドライバであり得る。さらに、ロボット201によるこれらの動作のいずれかは、アテンディッドロボット202およびアンアテンディッドロボット203によって実施され得る。
【0040】
さらに、
図2は、機械250、ウェブフック260、スクリプト270、アプリケーションマクロ280および他のエンティティ290を格納するシステムメモリ200を示す。
【0041】
機械250は、アルゴリズムおよびまたはロジックを定義する任意の数学モデルを含み得る。
【0042】
ウェブフック260は、カスタムコールバックを用いてウェブページまたはアプリケーションの動作を強化または変更するための任意の機構またはインターフェースを含み得る。コールバックは、
図1のオンプレミスシステム110内における動作ために、ユーザー/開発者によって維持、変更および管理され得る。
【0043】
スクリプト270は、
図1のオンプレミスシステム110上のプロセスを自動化するためにソフトウェアによって実行される任意のコマンドのリストを含み得る。
【0044】
アプリケーションマクロ280は、シーケンスを実行し、シーケンスおよび/または結果の記録を可能にするための任意の組み込みアプリケーション機能を含み得る。
【0045】
エンティティ290は、識別可能な別個のオブジェクト、
図1のデータ160のビット、ユーザー特有の取り決めおよび/または別個のシステムコンポーネントを含み得る。エンティティ290の他の例は、限定されないが、パッケージ、ライブラリ、フォルダ、カレンダー、環境、トリガ、アセット、メタデータなどを含む。
【0046】
1または複数のロボット201、202および203、機械250、ウェブフック260、スクリプト270、アプリケーションマクロ280ならびにエンティティ290はそれぞれ、ユーザー構成、手動で作成された設定、構成、トリガなどに基づいて動作し得る。
【0047】
例えば、UIオートメーションのためのワークフローを実行するために、ロボット201は、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に識別する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語(HTML)、HTML5、拡張可能なマークアップ言語(XML)、JavaScript、C#、C++、Silverlightなどがあり得る。
【0048】
1または複数の実施形態によると、開発時に、ロボット201は、デザイナ(例えば、スタジオソフトウェア)において/デザイナ(例えば、スタジオソフトウェア)により生成され得る。さらに、展開時には、ロボット201は、コンダクタ(例えば、
図1のオンプレミスシステム110内)において/コンダクタ(例えば、
図1のオンプレミスシステム110内)により、管理され得、制御され得、構成などされ得る。また、展開時には、ロボット201は、エグゼキュータ内(例えば、
図1のオンプレミスシステム110内)で実行され得る。一例では、ユーザーまたはオペレータによって、ユーザー入力(例えば、ディスプレイ上の選択)がデザイナ110に提出され得る。デザイナ110がロボット122に提供し得る選択から、ロボット122は、(例えば、ユーザーまたはオペレータによって選択された)ビジュアルディスプレイの領域(複数可)の代表データを決定し得る。
【0049】
移行エンジン101は、
図3~10を参照して本明細書で説明したような、オンプレミスシステム110を操作させるためにプロセッサ121による実行のために、ソフトウェアコンポーネント、モジュール、エンジン、命令などとして格納され得る。例えば、移行エンジン101は、インテリジェントな移行エクスペリエンスに関して、特定の構成およびツーリングロボティックプロセスオートメーション方法を提供し得る。インテリジェントな移行エクスペリエンスは、自動化152およびデータ160の識別、収集/採取および移動の目的のために、ロボットインテリジェンス(例えば、機械学習および人工知能)を使用してユーザーアクティビティのバックグラウンド監視/分析を行うことを含み得る。このように、移行エンジン101は、セルフサービス型のデスクトップアプリケーションであり得るため、コードが不要となることによって入力への障壁が低くなり、平均的なビジネスユーザーによる使用が可能になる。
【0050】
1または複数の実施形態によって、移行エンジン101は、動作171および172のコードおよび設計を自動的に実施して、サードパーティアプリケーション、管理情報技術(IT)タスクおよび/またはビジネスITプロセスの自動化と共にアプリケーション統合を提供するフレームワーク/メカニズム(例えば、アーキテクチャ100)の一部であり得る。さらに、移行エンジン101は、ロボットインテリジェンスを含み得、かつ/または、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、オンラインプラットフォーム、デスクトップアプリ(複数可)、ブラウザなどのクライアント、アプリケーションまたはプログラムにおけるワークフローを実行または監視するように自動化52に指示し得る。さらに、移行エンジン101は、プロビジョニング、展開、構成、キューイング、監視、ロギングおよび/または相互接続性を提供するように構成され得る。プロビジョニングは、1または複数のロボット、オンプレミスシステム110およびクラウド環境111の間の接続または通信の生成および維持を含み得る。展開は、割り当てられたロボットへのパッケージバージョンの配信を実行のために保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの識別データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、レポジトリ151(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。移行エンジン101はまた、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として機能することにより、相互接続性を提供し得る。
【0051】
1または複数の実施形態によると、移行エンジン101は、ハードウェア、ソフトウェアまたはハイブリッドの実施として構成され得る。移行エンジン101は、互いに動作可能な通信を行いかつ情報または指示を渡すモジュールによって構成され得る。
【0052】
1または複数の実施形態によると、例えば、移行エンジン101は、インテリジェントな移行エクスペリエンスを提供するために、1または複数のユーザーインターフェースを提供し得る(例えば、オンプレミスシステム110、クラウド環境111および/または他のアプリケーションの代理として設けられたものおよび必要に応じて直接的に設けられたもの)、ユーザーインターフェースは、限定されないが、インターネットブラウザ、グラフィックユーザーインターフェース、ウィンドウインターフェースおよび/またはアプリケーション、オペレーティングシステム、ファイルフォルダなどのための他の視覚的インターフェースを含む。したがって、ユーザーアクティビティは、移行エンジン101によって提供されるユーザーインターフェースの任意のインタラクションまたは操作を含み得る。移行エンジン101は、オンプレミスシステム110が追加の機能を含むことができるように、アプリケーション特有の処理またはその派生物を実行するためのカスタムモジュールをさらに含み得る。例えば、1または複数の実施形態によると、移行エンジン101は、動作171および172(すなわち、
図3に関して説明したようなインポートおよびエクスポート動作)を可能にするためにプロセッサ121によって実行または処理される情報、命令、コマンドまたはデータを格納するように構成され得る。
【0053】
次に
図3に目を向けると、1または複数の実施形態による方法300が示される。方法300は、
図1の移行エンジン101(これは、オンプレミスシステム110内の1または複数のプロセッサ121によって実行されている)によって実施されるように、
図1~2に関して説明される。一般的に、方法300は、オンプレミスシステム119からクラウド環境110への移行を自動的かつインテリジェントに行うことにより、手動での再現プロセスを克服する。例えば、移行エンジン101の方法300は、オンプレミスシステム110の既存のアプリケーション119(例えば、オン-プレムオーケストレータ)を取り込んで、そのデータ160をクラウド環境111(例えば、クラウド組織またはクラウドオーケストレータ)に複製する。これにより、既存のアプリケーション119のユーザーは、成功と失敗を示す移行の簡単な概要を受け取りながら、自身の既存の自動化152およびセットアップをクラウド環境111にシームレスに移行し得る。
【0054】
方法300は、ブロック310から始まり、移行エンジン101は、エクスポート動作(すなわち、
図1の動作171)を実施する。より詳細には、移行エンジン101は、オンプレミスシステム110のためのエクスポート動作を実施する。エクスポート動作は、既存のアプリケーション119、自動化152、および/またはユーザー特有の取り決めに対応するデータ160をマイニングする(例えば、エンティティ290のコピーを抽出する)。1または複数の実施形態によれば、移行ツール101は、既存のアプリケーション119と統合し、エンティティ290間の依存関係を検出し(すなわち、エンティティの検証層を介して解析し)、それらの依存関係に関するエラーを検出するための完全なアプリケーションプログラム可能なインターフェース(API)を含む。従来のオペレーティングシステムおよびソフトウェアシステムおよび手動移行とは対照的に、汎用スクリプト(すなわち、汎用のプログラムまたは命令のシーケンス)は、そのような依存性またはエラーを検出することができない。
【0055】
1または複数の実施形態によれば、インポート動作は、テナント名またはユーザー名などの1または複数の資格情報を要求し、パスワードを要求する第1のプロンプトまたはウィンドウ(例えば、ユーザーインターフェース)を提供し得る。移行エンジン101は、エクスポート動作と連動して、マイニングされたデータ160の概要を提示するエントリリスト(例えば、ユーザーインターフェースを介して提供される)を生成し得る。
【0056】
方法300は、ブロック330に続き、移行エンジン101は、インポート動作(すなわち、
図1の操作172)を実施する。インポート動作は、データ160をクラウド環境111に移行/移動させて、自動化152またはユーザー特有の取り決めを複製する(例えば、エンティティ290を再作成する)。
図1に示すように、移行エンジン101の動作171および172に基づいて、移行された自動化152およびデータ160は、点線のアウトラインで表される。
【0057】
移行エンジン101は、インポート動作と連動して、複製されたデータ160の概要を提示するエントリリスト(例えば、ユーザーインターフェースを介して提供される)を生成し得、また、呼び出し拒否および依存性問題の警告に対応するエラーリストも生成し得る。1または複数の実施形態によれば、移行エンジン101によるインポート動作は、ピースミール移行を含み得る。ピースミール移行は、データ160のどの部分がクラウド環境111上に存在するかを決定し、データ160の非存在部分のみを追加し得る。
【0058】
1または複数の実施形態によれば、移行エンジン101および方法300は、オンプレミスシステム100に関して、エアギャップ環境および接続環境の両方において実施され得る。例えば、エアギャップ環境は、インターネットへの露出無くプライベートで実行され得、そのためには、コンピュータ/システム間の物理的移動が必要になる。次に、移行エンジン101は、オンプレミスシステム100がエアギャップ環境として構成されている間にデータ160をエクスポートし得、エクスポートされたデータ160をローカル(例えば、リポジトリ151)に格納し得、接続された際には、この格納されたデータ160をクラウド環境111にインポートし得る。
【0059】
次に
図4に目を向けると、1または複数の実施形態による方法400が示される。方法400は、
図1の移行エンジン101によって実装される、エクスポート動作(すなわち、
図1の動作171)に関して説明される。
【0060】
方法400は、ブロック410から始まり、移行エンジン101は、(第1の)プロンプトを提示する。これに関連して、出力デバイス141は、ユーザーが閲覧するために第1のプロンプトを提供または表示し得る。第1のプロンプトは、1または複数の証明書を要求し得、「開始」ボタンなどの、エクスポート動作の開始を確認するためのメカニズムを少なくとも含み得る。
【0061】
図5は、1または複数の実施形態による例示的なユーザーインターフェース500(例えば、第1のプロンプト)を示す。移行エンジン101によって生成された例示的なユーザーインターフェース500は、ユニフォームリソースロケータ(URL)510、テナント名520、ユーザー名530、および/またはパスワード540などの1または複数の証明書を要求するとともに、「開始」ボタン550および「キャンセル」ボタン560を提供する。
【0062】
URL510は、オンプレミスシステム110の既存のアプリケーション119(例えば、オン-プレムオーケストレータ)および対応するデータ160がどこで発見され得るかを識別し得る場所またはアドレスである。テナント名520は、既存のアプリケーション119、オートメーション151およびデータ160に対して特定の権限を持つ共通のアクセスをシェアするユーザーのグループの識別情報である。ユーザー名530は、自動化151およびデータ160を利用するグループのユーザーの識別情報である。パスワード540は、ユーザーを認証するための英数字の文字列である。「開始」ボタン550は、エクスポート動作を開始し得る。「キャンセル」ボタン560は、例示のユーザーインターフェース500を終了する。
【0063】
ブロック420において、移行エンジン101は、第1のプロンプトを介して1または複数の証明書を受信する。これに関連して、ユーザーは入力デバイス142を係合させて、例示のユーザーインターフェース500によって要求された証明書を入力し得る。
【0064】
ブロック430において、移行エンジン101は、エクスポート動作を開始する(例えば、オン-プレムオーケストレータからのデータのエクスポートを開始する)ためのコマンド(例えば、「開始」ボタン550のクリック)を受信する。
【0065】
ブロック440において、移行エンジン101は、エクスポート動作の進捗状況を第2のプロンプト内に提示する。これに関連して、出力デバイス141は、ユーザーが閲覧するために第2のプロンプトを提供または表示し得る。第2のプロンプトは、エクスポート動作の進捗状況を示すロード画面を提示し得る。
図6に目を向けると、1または複数の実施形態による第2のプロンプトとして、例示的なユーザーインターフェース600が示される。移行エンジン101によって生成される例示的なユーザーインターフェース600は、オンプレミスシステム110からのデータ160のエクスポートを示すロード画面を含む。例示的なユーザーインターフェース600は、プログレスバー685を含み得、ある時点でどのエンティティが現在エクスポートされているかを示し得る。
【0066】
ブロック450において、移行エンジン101は、第3のプロンプトを提示する。これに関連して、出力デバイス141は、ユーザーが閲覧するために第3のプロンプトを提供または表示し得る。第3のプロンプトは、正常にインポートされたエンティティの要約(例えば、エクスポートされたエンティティリスト)をユーザーが閲覧できるように提示し得る。1または複数の実施形態によれば、エクスポートされたエンティティリストは、オンプレミスシステム110からの自動化152またはユーザー特有の取り決めに対応するデータ160を項目化する。エクスポートされたデータ160は、リポジトリ151内に格納され得る。
図7に目を向けると、1または複数の実施形態による第3のプロンプトとして、例示的なユーザーインターフェース700が示される。例示的なユーザーインターフェース700は、ウィンドウ705、「ホーム」ボタン770、および「ファイルを開く」ボタン780を含む。ウィンドウ705は、エクスポートされたエンティティリストを提供し得る。示されるように、エクスポートされたエンティティリストは、エクスポートされた総エンティティの数、パッケージ、ライブラリ、カレンダー、フォルダ、機械、環境、ロボット、トリガ、アセット、プロセス、キューなどを含み得る。移行エンジン101は、エクスポートされたエンティティリストを、テキストファイル形式などのサマリーファイルとして、リポジトリ151に保存し得る。すなわち、エクスポートされたエンティティリストは、既存のアプリケーション119からエクスポートされたすべてのデータに対応しており、オープンスタンダードなファイルフォーマットおよびデータ交換フォーマットであるシリアル化されたJSON(JavaScript Object Notation)フォーマットなどで、リポジトリ151にローカルに保存され得る。「ホーム」ボタン770は、
図8に関して説明したように、移行エンジン101を最初のプロンプトに戻すか、移行エンジン101をインポート動作に進め得る。「ファイルを開く」ボタン780は、エクスポートされたエンティティリストの任意の選択された項目のさらなる表示を可能にし得る。
【0067】
次に
図8に目を向けると、1または複数の実施形態による方法800が示される。方法800は、
図1の移行エンジン101によって実施される、インポート動作(すなわち、
図1の操作172)に関して説明される。方法800は、ブロック850で始まり、移行エンジン101がプロンプトまたは第1のウィンドウ(例えば、ユーザーインターフェース)を提示する。これに関連して、出力デバイス141は、ユーザーが閲覧するために第1のウィンドウを提供または表示し得る。第1のウィンドウは、1または複数の証明書を要求し得、「開始」ボタンなどの、インポート動作の開始を確認するためのメカニズムを少なくとも含み得る。これに関連して、移行エンジン101は、ユーザーがエクスポートされたデータ160の移行を望む場合、新たに作成されたテナントを開くことができる。移行エンジン101は、APIアクセスキーまたはユーザーキー、アカウント名、テナント名およびクライアント識別(ID)を受信し、エクスポートされたデータ160をインポートするためのこれらの詳細を、新しく生成されたテナントにコピーし得る。
【0068】
図9は、1または複数の実施形態による例示的なユーザーインターフェース900(例えば、第1のウィンドウ)を示す。移行エンジン101によって生成された例示的なユーザーインターフェース900は、アカウント名925、テナント名935、および/またはクライアントID945などの1または複数の証明書を要求すると共に、「開始」ボタン950および「キャンセル」ボタン960を提供する。
【0069】
アカウント名925は、固有のURLのサイトである。テナント名935は、既存のアプリケーション119、オートメーション151、およびデータ160に対して特定の権限を持つ共通のアクセスをシェアするユーザーのグループの識別情報である。クライアントID945は、自動化151およびデータ160を利用するグループのユーザーの識別情報である。クライアントID945は、既存のアプリケーション119自体に固有のものであり得、オンプレミスシステム110上のすべてのユーザーおよびテナントに対して同じものとし得る。
【0070】
「開始」ボタン950は、インポート動作を開始し得る。すなわち、「開始」ボタン950は、押されると移行エンジン101にログイン画面(例えば、アカウント名925を指し示すもの)を提示させる「インポート開始」ボタンであり得る。一旦ログインされると(例えば、関連付けられたアカウントを使用して)、移行エンジン101は、インポート動作の実行が許可されていることを検証し、インポート動作が再開する。「キャンセル」ボタン960は、例示のユーザーインターフェース900を終了する。
【0071】
任意で、1または複数の実施形態によれば、ユーザーキーフィールドが、例示のユーザーインターフェース900に含まれ得る。ユーザーキーフィールドは、アプリケーション(例えば、既存のアプリケーション119またはオン-プレムオーケストレータをミラーリングするクラウド組織またはクラウドオーケストレータ)を識別する暗号化された文字列であり得る。移行エンジン101は、ユーザーの代わりにログインしてアクションを実行するためのAPIで使用される固有のログインキー(すなわち、ユーザーキーを可能にする)を生成し得る。
【0072】
ブロック870において、移行エンジン101は、第1のウィンドウを介して1または複数の証明書を受信する。これに関連して、ユーザーは入力デバイス142を係合させて、例示のユーザーインターフェース900によって要求された証明書を入力し得る。
【0073】
ブロック880で、移行エンジン101は、インポート動作を開始する(例えば、クラウドオーケストレータへのインポートデータを開始する)コマンド(例えば、「開始」ボタン950のクリック)を受信する。
【0074】
ブロック890において、移行エンジン101は、インポート動作の進捗状況を第2のウィンドウで提示する。これに関連して、出力デバイス141は、ユーザーが閲覧するために第2のウィンドウを提供または表示し得る。第2のウィンドウは、インポート動作の進捗状況を示すダウンロード画面を提示し得る。
【0075】
図10に目を向けると、1または複数の実施形態による第2のウィンドウとして、例示的なユーザーインターフェース1000が示される。移行エンジン101によって生成された例示的なユーザーインターフェース1000は、データ160のクラウド環境111へのインポートを示すダウンロード画面を含む。例示的なユーザーインターフェース1000は、プログレスバー1085を含み得、ある時点でどのエンティティが現在インポートされているかを示し得る。
【0076】
ブロック895において、移行エンジン101は、第3のウィンドウを提示する。これに関連して、出力デバイス141は、ユーザーが閲覧するために第3のウィンドウを提供または表示し得る。第3のウィンドウは、成功裏にインポートされたエンティティおよび失敗したエンティティの要約(例えば、インポートリスト)を提示し得る。1または複数の実施形態によると、インポートリストは、インポートおよび/または失敗したオンプレミスシステム110からの自動化152またはユーザー特有の取り決めに対応するデータ160を項目化する。
図11に目を向けると、例示的なユーザーインターフェース1100が、1または複数の実施形態による第3のウィンドウとして示される。例示的なユーザーインターフェース1100は、ウィンドウ1105と、「表示(view)」ボタン1170と、「完了(done)」ボタン1180とを含む。ウィンドウ1105は、インポートリストを提供し得る。示されるように、インポートリストは、試みられた、インポートされた、およびノートインポートされた総エンティティの数、ならびに各エンティティの数を含み得る。「表示」ボタン1170は、インポートリストの任意の選択された項目のさらなる表示を可能にし得る。「完了」ボタン1180は、例示のユーザーインターフェース1100を終了し得る。
【0077】
さらに、このデータ160およびインポートリストは、本明細書に記載されるようなテキストファイル形式などで、リポジトリ151内に格納され得る。インポートリストの各失敗したエンティティは、インポート中のAPIコールの拒絶に関連するエラーに対応し得る。インポートリストの失敗した各エンティティは、順に、手動チェックによって修正され得る、依存関係に関連する1または複数の警告をさらに含み得る。例えば、ビジネス検証のために、インポート動作でエラーが発生し得る。場合によっては、移行エンジン101は、エラーが自動的に解決されるように、呼び出しと決定とを行い得る。例えば、スケジュールがパッケージに依存しており、パッケージがエクスポートおよび/またはアップロードされていない場合、移行エンジン101は、スケジュールがパッケージに依存していることを検出して警告を書き込んだり、または依存関係を解決するためにパッケージを直接識別してコピーし、インポートし得る。さらに、インポート中に、それらの依存関係のためにランダムに順序付けられていないエンティティは、クラウド移行のためにエンティティフォルダの特定の順序を示すための文書を必要とし得る。移行エンジン101は、この文書を生成し、すべての依存関係のルールを概説し得る。例えば、パッケージを使用するジョブがある場合、次いでパッケージが最初でなければならず、移行エンジン101は、(文書に従って)パッケージを最初にインポートするルールを作成し得る。
【0078】
1または複数の実施形態によれば、移行エンジン101は、データの一部が既に存在する場合に、クラウドテナントのピースミール移行を実装し得る。これに関連して、インポート動作が実行されると、移行エンジン101は、どのようなデータが既にクラウド環境111に存在するかを決定し、まだ存在していないデータのみを追加する。
【0079】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態による、装置、システム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能性、および操作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定された論理機能(複数可)を実装するための1または複数の実行可能な命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替実装では、ブロックに記載されている機能は、図面のフローチャートおよびブロック図に記載されている順序とは異なる場合がある。例えば、連続して表示されている2つのブロックは、関係する機能に応じて、実際には実質的に同時に実行され得、またはブロックが逆の順序で実行され得る。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能もしくは行動を実行するか、または特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特別な目的のハードウェアに基づくシステムによって実装され得ることに留意されたい。
【0080】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。例えば、本明細書に記載されている方法およびプロセスのいずれかでは、記載されているステップは任意の順序で順不同で実行され得、明示的に記載または表示されていないサブステップが実行され得る。「AまたはB」を参照して使用する場合は、A、B、またはAおよびBを含む場合があり、より長いリストと同様に拡張され得る。表記X/Yを使用する場合、それはXまたはYを含み得る。あるいは、表記X/Yを使用する場合、それはXおよびYを含み得る。X/Y表記は、同一の説明されたロジックを有するより長いリストと同様に拡張され得る。また、「結合されている」または「動作的に結合されている」とは、オブジェクトが連結されていることを意味してもよいが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用されてもよい。
【0081】
さらに、本明細書に記載された方法およびプロセスは、コンピュータまたはプロセッサによる実行のためにコンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、および/またはファームウェア(例えば、コンピュータプログラム製品)で実装され得る。すなわち、コンピュータプログラム製品は、コントローラ、プロセッサなどに本発明の態様を実行させるためのコンピュータ読み取り可能プログラム命令をその上に有するコンピュータ読み取り可能なストレージ媒体(または複数の媒体)を含み得る。
【0082】
コンピュータ読み取り可能なストレージ媒体は、コンピュータ読み取り可能プログラム命令を保持および格納し得る有形のデバイスであり得る。コンピュータ読み取り可能なストレージ媒体は、例えば、限定されないが、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または前述の任意の適切な組み合わせであり得る。本明細書で使用されるコンピュータ読み取り可能なストレージ媒体は、それ自体が一時的な信号であると解釈されるものではなく、例えば、電波またはその他の自由に伝播する電磁波、導波管またはその他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を介して伝送される電気信号である。コンピュータ読み取り可能なストレージ媒体の例は、限定されないが、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、光磁気媒体、コンパクトディスク(CD)およびデジタルバーサタイルディスク(DVD)などの光媒体、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ならびにメモリースティックを含む。
【0083】
本明細書に記載されたコンピュータ読み取り可能なプログラム命令は、例えばネットワーク通信などの接続を介して、装置、デバイス、コンピュータ、または外部ストレージからそれぞれのコントローラ、プロセッサなどに通信および/またはダウンロードされ得る。本発明の操作を実行するためのコンピュータ読み取り可能なプログラム命令は、アセンブラ命令、命令セットアーキテクチャ (ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む1もしくは複数のプログラミング言語の任意の組み合わせで書かれたソースコードもしくはオブジェクトコードのいずれかであり得る。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、電子回路をパーソナライズするコンピュータ読み取り可能なプログラム命令の状態情報を利用して、コンピュータ読み取り可能なプログラム命令を実行し得る。
【0084】
本明細書で使用される用語は、特定の実施形態を説明するためだけのものであり、限定することを意図しない。本明細書では、単数形の「a」、「an」、および「the」は、文脈が明確に示す場合を除き、複数形も含むことを意図する。本明細書で使用される「含む(comprises)」および/または「含む(comprising,)」という用語は、記載された特徴、整数、ステップ、動作、要素、および/またはコンポーネントの存在を特定するが、1または複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除するものではないことがさらに理解されるであろう。
【0085】
本明細書の様々な実施形態の説明は、説明のために提示されたものであるが、開示された実施形態を網羅的に、またはそれに限定することを意図したものではない。当業者であれば、記載された実施形態の範囲および精神から逸脱することなく、多くの修正および変形が明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実用化もしくは技術的改善を最もよく説明するため、または当業者が本明細書で開示されている実施形態を理解できるように選択されたものである。
【国際調査報告】