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

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

▶ サービスナウ, インコーポレーテッドの特許一覧

特開2024-108150データレコードの相関およびマイグレーション
<>
  • 特開-データレコードの相関およびマイグレーション 図1
  • 特開-データレコードの相関およびマイグレーション 図2
  • 特開-データレコードの相関およびマイグレーション 図3
  • 特開-データレコードの相関およびマイグレーション 図4
  • 特開-データレコードの相関およびマイグレーション 図5
  • 特開-データレコードの相関およびマイグレーション 図6
  • 特開-データレコードの相関およびマイグレーション 図7
  • 特開-データレコードの相関およびマイグレーション 図8
  • 特開-データレコードの相関およびマイグレーション 図9
  • 特開-データレコードの相関およびマイグレーション 図10
  • 特開-データレコードの相関およびマイグレーション 図11
  • 特開-データレコードの相関およびマイグレーション 図12
  • 特開-データレコードの相関およびマイグレーション 図13
  • 特開-データレコードの相関およびマイグレーション 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024108150
(43)【公開日】2024-08-09
(54)【発明の名称】データレコードの相関およびマイグレーション
(51)【国際特許分類】
   G06F 16/182 20190101AFI20240802BHJP
   G06F 8/70 20180101ALI20240802BHJP
【FI】
G06F16/182
G06F8/70
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024009849
(22)【出願日】2024-01-26
(31)【優先権主張番号】18/103,288
(32)【優先日】2023-01-30
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】515156946
【氏名又は名称】サービスナウ, インコーポレーテッド
【氏名又は名称原語表記】ServiceNow,Inc.
【住所又は居所原語表記】2225 Lawson Lane, Santa Clara, California 95054,U.S.A.
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】ブライアン・ジェームズ・ワップリントン
(72)【発明者】
【氏名】タミル・リヴニー
(72)【発明者】
【氏名】ヘメンドラ・ラーナ
(72)【発明者】
【氏名】サイプラニース・ムッダナ
(72)【発明者】
【氏名】ヴェンカタ・シヴァ・サンカール・アランパル
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC25
5B376DA01
(57)【要約】      (修正有)
【課題】異なるクラウドサービスインスタンスにわたってデータレコードの相関および共有が可能になる方法、システム及びプログラムを提供する。
【解決手段】クラウドサービスインスタンス間でデータレコードを相関させて共有する方法は、データレコードを相関させる要求をソースクラウドサービスインスタンスで受信することと、データレコードへの変更を、データレコード監視サービスによって検出することと、データレコード相関を決定することと、修正済みデータレコードのバージョンを、承認された受信側に提供することと、を含む。修正済みデータレコードは、アウトバウンド処理工程がデータレコードの新しいバージョンを作成するために実行された後にのみ提供される。
【選択図】図3
【特許請求の範囲】
【請求項1】
方法であって、
第1アプリケーションインスタンスにおいて、第2アプリケーションインスタンスから、前記第1アプリケーションインスタンスのデータレコードの相関要求を受信し、
前記相関要求が承認されたとの判定に応じて、方向性相関エントリで相関インデックスを更新し、
前記データレコードが修正されたと判定に応じて、修正済み前記データレコードが前記第2アプリケーションインスタンスへ相関のために提供されることを決定するために更新済み前記相関インデックスを用いて、
前記修正済みデータレコードのバージョンを前記第2アプリケーションインスタンスへ提供すること、
を備える、方法。
【請求項2】
請求項1に記載の方法であって、前記第1アプリケーションインスタンスは、第1サーバによってホストされ、前記第2アプリケーションインスタンスは、第2サーバによってホストされ、前記第1サーバおよび前記第2サーバは、ネットワークによって接続されている、方法。
【請求項3】
請求項1に記載の方法であって、前記相関要求が承認されたとの前記判定は、前記第1アプリケーションインスタンスの管理者からの承認に基づく、方法。
【請求項4】
請求項1に記載の方法であって、前記相関要求が承認されたとの前記判定は、前記第1アプリケーションインスタンスのために構成されているアクセス許可に基づく、方法。
【請求項5】
請求項1に記載の方法であって、前記修正済みデータレコードの前記提供されるバージョンは、前記修正済みデータレコードに関連付けられているデータフィールドの一部を含む、方法。
【請求項6】
請求項1に記載の方法であって、さらに、前記第2アプリケーションインスタンスがもはや到達可能ではないことを特定し、前記相関インデックス内の前記方向性相関エントリを無効化することを備える、方法。
【請求項7】
請求項1に記載の方法であって、さらに、前記第1アプリケーションインスタンスにおいて、第3アプリケーションインスタンスから、マイグレーション要求を受信することを備える、方法。
【請求項8】
請求項7に記載の方法であって、さらに、前記マイグレーション要求が承認されたとの判定に応じて、前記第3アプリケーションインスタンスを参照するために、前記方向性相関エントリを修正することを備える、方法。
【請求項9】
請求項1に記載の方法であって、前記相関要求は、1または複数のトリガイベント要件に関連付けられ、前記データレコードが修正されたとの前記判定は、前記1または複数のトリガイベント要件に基づく、方法。
【請求項10】
請求項1に記載の方法であって、さらに、前記第2アプリケーションインスタンスへ提供する前記修正済みデータレコードの前記バージョンを作成するために、前記修正済みデータレコードを操作することを備える、方法。
【請求項11】
請求項10に記載の方法であって、前記修正済みデータレコードを操作することは、新しいフィールドを追加することを含む、方法。
【請求項12】
請求項1に記載の方法であって、前記相関要求が承認されたとの前記判定に応じて、前記方向性相関エントリで前記相関インデックスを更新することは、前記方向性相関エントリに関連付けられている相関識別子と、前記方向性相関エントリおよび前記第2アプリケーションインスタンスに関連付けられているアクセス認証情報とを格納することを含む、方法。
【請求項13】
システムであって、
1または複数のプロセッサと、
前記1または複数のプロセッサに接続されているメモリと、
を備え、
前記メモリは、実行時に前記1または複数のプロセッサに、
第1アプリケーションインスタンスにおいて、第2アプリケーションインスタンスから、前記第1アプリケーションインスタンスのデータレコードの相関要求を受信させ、
前記相関要求が承認されたとの判定に応じて、方向性相関エントリで相関インデックスを更新させ、
前記データレコードが修正されたと判定したことに応じて、前記更新済み相関インデックスを用いて、前記修正済みデータレコードが前記第2アプリケーションインスタンスへ相関のために提供されることを決定させ、
前記修正済みデータレコードのバージョンを前記第2アプリケーションインスタンスへ提供させる命令を、前記1または複数のプロセッサへ提供するよう構成されている、システム。
【請求項14】
請求項13に記載のシステムであって、前記相関要求が承認されたとの前記判定は、前記第1アプリケーションインスタンスの管理者からの承認に基づく、システム。
【請求項15】
請求項13に記載のシステムであって、前記修正済みデータレコードの前記提供されるバージョンは、前記修正済みデータレコードに関連付けられているデータフィールドの一部を含む、システム。
【請求項16】
請求項13に記載のシステムであって、前記メモリは、さらに、実行時に前記1または複数のプロセッサに、前記第2アプリケーションインスタンスがもはや到達可能ではないことを特定させ、前記相関インデックス内の前記方向性相関エントリを無効化させる命令を前記1または複数のプロセッサへ提供するよう構成されている、システム。
【請求項17】
請求項13に記載のシステムであって、前記メモリは、さらに、実行時に前記1または複数のプロセッサに、
前記第1アプリケーションインスタンスにおいて、第3アプリケーションインスタンスから、マイグレーション要求を受信させ、
前記マイグレーション要求が承認されたとの判定に応じて、前記第3アプリケーションインスタンスを参照するために、前記方向性相関エントリを修正させる命令を前記1または複数のプロセッサへ提供するよう構成されている、システム。
【請求項18】
請求項13に記載のシステムであって、前記メモリは、さらに、実行時に前記1または複数のプロセッサに、前記第2アプリケーションインスタンスへ提供する前記修正済みデータレコードの前記バージョンを作成するために、前記修正済みデータレコードを操作させる命令を前記1または複数のプロセッサへ提供するよう構成されている、システム。
【請求項19】
請求項18に記載のシステムであって、前記修正済みデータレコードを操作することは、新しいフィールドを追加することを含む、システム。
【請求項20】
コンピュータプログラム製品であって、非一時的なコンピュータ読み取り可能記憶媒体内に具現化され、
第1アプリケーションインスタンスにおいて、第2アプリケーションインスタンスから、前記第1アプリケーションインスタンスのデータレコードの相関要求を受信するためのコンピュータ命令と、
前記相関要求が承認されたとの判定に応じて、方向性相関エントリで相関インデックスを更新するためのコンピュータ命令と、
前記データレコードが修正されたと判定したことに応じて、前記更新済み相関インデックスを用いて、前記修正済みデータレコードが前記第2アプリケーションインスタンスへ相関のために提供されることを決定するためのコンピュータ命令と、
前記修正済みデータレコードのバージョンを前記第2アプリケーションインスタンスへ提供するためのコンピュータ命令と、
を備える、コンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
クラウドベースのソリューションにより、企業は、必ずしもサービス自体を実装またはホストする必要なしに、サービス(様々なビジネスワークフローおよび管理サービスなど)へアクセスすることが可能になる。これらのサービスは、しばしば、顧客およびサードパーティによって提供されたデータなど、様々なデータソースに依存する。データ共有を利用することにより、サービスは、さらなるデータソース(特に、テストデータセット、生産データセット、サードパーティデータセット、および、独自の顧客データセット、など)へのアクセスを提供されうる。いくつかの構成において、データ共有は、データが、異なるサービスにわたって、および、異なるグループによって、共有されることを可能にし、ここで、グループは、会社内の異なる部署(人事部および法務部など)に対応しもしくは異なる会社にも対応しうる。
【図面の簡単な説明】
【0002】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【0003】
図1】データレコード相関・共有システムの一実施形態を示すブロック図。
【0004】
図2】データレコード相関・共有をサポートするクラウドサービスインスタンスの一実施形態を示すブロック図。
【0005】
図3】クラウドサービスインスタンス間でデータレコードを相関させて共有するための処理の一実施形態を示すフローチャート。
【0006】
図4】クラウドサービスインスタンス間でデータレコードを相関させて共有する要求を処理するための処理の一実施形態を示すフローチャート。
【0007】
図5】クラウドサービスインスタンスの間で相関されたデータレコードを共有するための処理の一実施形態を示すフローチャート。
【0008】
図6】ソースクラウドサービスインスタンスによって提供された更新済み相関データレコードの受信を処理するための処理の一実施形態を示すフローチャート。
【0009】
図7】クラウドサービスインスタンスの間で相関構成をマイグレートするための処理の一実施形態を示すフローチャート。
【0010】
図8】新しいターゲットクラウドサービスインスタンスへ相関構成をマイグレートするための処理の一実施形態を示すフローチャート。
【0011】
図9】データレコードの相関および共有を実行するためにプログラムされたコンピュータシステムを示す機能図。
【0012】
図10】相関要求を見るためのユーザインターフェースの一実施形態を示す図。
【0013】
図11】相関要求に関連するターゲットインスタンスを表示するためのユーザインターフェースの一実施形態を示す図。
【0014】
図12】相関構成の一部をキャプチャするために用いられる相関インデックスを表示するためのユーザインターフェースの一実施形態を示す図。
【0015】
図13】相関データレコードを共有することに関連するキャプチャイベントを構成するためのユーザインターフェースの一実施形態を示す図。
【0016】
図14】相関要求に関連するアウトバウンド処理構成を表示するためのユーザインターフェースの一実施形態を示す図。
【発明を実施するための形態】
【0017】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されているプロセッサ)を含め、様々な形態で実施されうる。本明細書では、これらの実施例または本発明が取りうる任意の他の形態が、技術と呼ばれうる。一般に、開示されている処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、或る時間にタスクを実行するよう一時的に構成されている一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書で用いられているように、「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するよう構成されている1または複数のデバイス、回路、および/または、処理コアを指す。
【0018】
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【0019】
アプリケーションレベルのデータの相関およびマイグレーションが開示されている。開示されている技術を用いると、ソースインスタンスとターゲットインスタンスとの間でデータレコードを相関させることによって、異なるクラウドサービスインスタンスにわたってデータレコードの相関および共有が可能になる。さらに、データレコードの相関および共有は、ターゲットインスタンスが第2ターゲットインスタンスと共にソースインスタンスとしても機能しうるカスケードチェーンとして構成されうる。様々な実施形態において、データを共有するインスタンスは、同じアプリケーションサーバ上(異なるアプリケーションインスタンス下など)に、または、互いにリモートにある異なるアプリケーションサーバ上(異なるネットワークドメイン上など)に、存在しうる。開示されている実施形態において、データ相関は、アプリケーション層で実行され、相関されたデータが、インスタンス間で共有されている時に、オンザフライで修正されることを可能にする。例えば、データの相関および共有は、ソースインスタンスからデータレコードのフィールドの一部のみをターゲットインスタンスへ共有するよう構成されうる。さらに、データが相関されると、データの変換、補完、および/または、補強が、その他のデータ処理工程と共に、ソースインスタンス、ターゲットインスタンス、または、両方のインスタンスに実行されうる。
【0020】
様々な実施形態において、データレコード相関・共有処理は、相関されたデータレコードにインバウンドおよび/またはアウトバウンド処理を実行する。例えば、会社の資産に対応するデータレコードが、ソースアプリケーションインスタンスとターゲットアプリケーションインスタンスとの間で相関および共有されうる。共有された資産データレコードがソースアプリケーションインスタンスで修正された場合、修正されたデータレコードが識別され、ターゲットアプリケーションインスタンスへデータのバージョンを提供する前に、修正されたデータレコードへのアウトバウンドデータ処理が実行される。様々な実施形態において、データレコード相関・共有処理の一部として、相関された資産データレコードのフィールドの一部が共有されてよく、フィールドの一部が共有から除外されてよい。例えば、資産識別子、資産記述、資産所有者、および、資産割り当て位置のフィールドが、共有のために構成されてよく、一方、資産所有者自宅住所および資産所有者自宅電話番号のフィールドが除外されてよい。さらに、アウトバウンドデータ処理の一部として、例えば、関連のあるデータフィールドがターゲットインスタンスへ提供される前に潜在的な個人識別情報を除去するために、1または複数のレコード(資産割り当て位置フィールドなど)が修正されてよい。ターゲットインスタンスにおいて、データ相関・共有処理は、すべての入力データレコードを処理し、さらなるインバウンドデータ処理(変換、補完、補強、または、その他のデータ処理、など)を実行できる。例えば、入力される相関済み資産データレコードは、資産記述および修正済みの資産割り当て位置フィールドの値に基づいて、そのデリゲート所有者フィールドへ自動的に割り当てられた値を有しうる。さらに、入力データを補強するために、データベース、ウェブ、インターネット、および/または、APIクエリなどを介して、外部ソースへのアクセスがなされうる。例えば、入力資産データレコードによって参照される資産に対する最近のソフトウェア更新のリストがリトリーブされ、入力資産データレコードの修正バージョンと共にターゲットインスタンスに格納されうる。ターゲットインスタンスでのインバウンドデータ処理が入力データレコードに対して完了されると、修正済みデータレコードが第2ターゲットインスタンスへ相関される場合に、データ相関・共有処理は、相関データレコードの修正バージョンを第2ターゲットインスタンスに提供するために繰り返される。様々な実施形態において、連鎖更新の無限ループを防ぐために、ループまたはサイクルが、データ相関・共有処理中に検出される。例えば、更新は、ループを防ぐために、バージョン番号を用いることによって、ならびに/もしくは、相関データレコードイベント更新中に巡回されたノードおよび/またはエッジを追跡することによって、追跡されうる。
【0021】
様々な実施形態において、2つのインスタンスの間で相関されたデータレコードは、元々のターゲットインスタンスから新しい(潜在的に)異なるターゲットインスタンスへマイグレートされうる。例えば、ソースアプリケーションインスタンスは、第1ターゲットアプリケーションインスタンスとの相関データレコードの共有を承認するよう構成されうる。第1ターゲットインスタンスが無効化または非アクティブ化された場合、ソースインスタンスと第1ターゲットインスタンスとの間の相関は無効化され、潜在的な将来のマイグレーションに向けて保存される。様々な実施形態において、相関は、相関インデックスに格納され、相関インデックスは、第1ターゲットインスタンスがもはや到達可能ではない時、および/または、相関が、例えば管理者によって、無効化された時に、更新される。以前に相関されたレコードがマイグレートされる場合、例えば、第2ターゲットアプリケーションインスタンスへ相関をマイグレートするよう管理者にプロンプトする際に、相関インデックスは、第2ターゲットインスタンスへ適切なデータレコードの相関を割り当てるように更新される。いくつかの実施形態において、第2ターゲットインスタンスは、例えば、第1ターゲットインスタンスが再有効化または再アクティブ化された場合、第1ターゲットインスタンスでありうる。いくつかの実施形態において、第2ターゲットインスタンスは、ソースアプリケーションインスタンスと同じアプリケーションサーバ上のアプリケーションインスタンス、または、異なるアプリケーションサーバ(ネットワークを介して接続されたリモートアプリケーションサーバなど)に関連付けられたアプリケーションインスタンスでありうる。
【0022】
いくつかの実施形態において、マイグレーション処理の一部として、ソースアプリケーションインスタンスおよび新しいターゲットアプリケーションインスタンスのデータレコードが相関されると、相関されたデータレコードは比較され、適切なインスタンスにおけるレコードが更新される。例えば、マイグレーション構成に基づいて、最初のマイグレーションイベントの一部として、どのインスタンスがマイグレーションイベント中に権限のあるソースとして構成されているのかによって、ソースインスタンスが、ターゲットインスタンスを更新でき、または、その代わりに、ターゲットインスタンスが、ソースインスタンスを更新できる。様々な実施形態において、最初のマイグレーション中に、特定のマイグレーション構成により、ソースインスタンスがターゲットインスタンスを更新するのではなく、ターゲットインスタンスがソースインスタンスを更新することが可能になる。
マイグレーションが完了すると、元々の相関の構成に基づいて、ソースインスタンスにおけるレコードへの修正が、ターゲットインスタンスを更新するために用いられる。様々な実施形態において、データレコードへの更新済みの相関が、相関インデックスにおける方向性相関エントリによって反映される。
【0023】
いくつかの実施形態において、第1アプリケーションインスタンスのデータレコードの相関要求が、第1アプリケーションインスタンスで第2アプリケーションインスタンスから受信される。例えば、第2アプリケーションインスタンス(第2クラウドサービスインスタンスなど)が、第1アプリケーションインスタンス(第1クラウドサービスインスタンスなど)によって管理されているデータレコードの更新を受信するよう要求する。いくつかの実施形態において、相関要求が承認されたとの判定に応じて、相関インデックスが、方向性相関エントリで更新される。例えば、第1アプリケーションインスタンスの管理者が、相関要求を承認しうる。別の例として、第1アプリケーションインスタンスにインストールおよび/または構成されているアクセス構成および/またはアクセスルールが、相関要求を承認するために用いられる。相関要求が承認されると、第1アプリケーションインスタンスによって管理されているデータレコードを参照する方向性相関エントリが、相関データレコードおよびそれらのターゲットインスタンスを追跡するために用いられる相関インデックスに挿入される。いくつかの実施形態において、第1アプリケーションインスタンスの相関データレコードは、第1インスタンスに(まだ)存在していない場合があり、確立された相関は、相関要件を満たす第1インスタンスの潜在的なデータレコードの間にある。例えば、第1および第2アプリケーションインスタンスは、第1インスタンスでの相関データレコードの存在に先立って相関されることができ、共有は、相関データレコードのバージョンが第1インスタンスで作成されると自動的にトリガされうる。
【0024】
いくつかの実施形態において、データレコードが修正されたと判定したことに応じて、更新済み相関インデックスは、修正済みデータレコードが第2アプリケーションインスタンスへ相関のために提供されることを決定するために用いられる。例えば、相関インデックスによって追跡されているデータレコードが修正(または作成)されると、修正済みデータレコードの或るバージョンが、第2アプリケーションインスタンスへ提供される。いくつかの実施形態において、修正済みデータレコードの新しいバージョンが、第2アプリケーションインスタンスへ提供される。例えば、修正済みデータレコードに対するアウトバウンドデータ処理が、第2アプリケーションインスタンスへ提供される修正済みデータレコードの新しいバージョンを作成するために実行されうる。修正は、第2アプリケーションインスタンスのための修正済みデータレコードの新しいバージョンを作成するために、フィルタリング、修正、補完、変換、および/または、その他のアウトバウンドデータ処理工程を含みうる。いくつかの実施形態において、第2アプリケーションインスタンスは、第2アプリケーションインスタンスに格納するために、そのバージョンの修正済みデータレコードを受信する。第2アプリケーションインスタンスで実行されるインバウンドデータ処理の一部として、入力データレコードは、第2アプリケーションインスタンスに格納するために第1アプリケーションインスタンスによって提供されたデータレコードの新しいバージョンを作成するようさらに操作されうる。様々な実施形態において、第2アプリケーションインスタンスの相関インデックスは、他のターゲットインスタンスに対するさらなる相関・共有処理が、第2アプリケーションインスタンスによって管理されているバージョンの修正済みレコードに必要であるか否かを判定するために用いられる。
【0025】
図1は、データレコード相関・共有システムの一実施形態を示すブロック図である。図の例において、クライアント(クライアント101など)が、クラウドサービスインスタンス111、121、および、131によってホストされている1または複数のクラウドサービスにアクセスする。いくつかの実施形態において、クライアント101は、データレコードの相関および共有と、構成されたデータレコード相関のマイグレーションとを管理するために用いられる管理クライアントの一例である。様々な実施形態において、異なるクラウドサービスインスタンス(クラウドサービスインスタンス111、121、および、131など)へのアクセスおよび/または管理を行うために、複数のクライアント(クライアント101など)が存在する。クラウドサービスインスタンス111、121、および、131は各々、データストア(データストア113、123、および、133など)を利用する。クライアント101と、クラウドサービスインスタンス111、121、および、131の各々は、ネットワーク151を介して通信可能に接続されている。ネットワーク151は、パブリックネットワークまたはプライベートネットワークであってよい。いくつかの実施形態において、ネットワーク151は、インターネットなどのパブリックネットワークである。クラウドサービスインスタンス111、121、および/または、131によってホストされているサービスは、企業業務のためのデジタルワークフローを管理するサービスなど、様々なクラウドベースサービスであってよく、異なるクラウドインスタンスの間でデータレコードを相関および共有する能力に依存しうる。例えば、クラウドサービスインスタンス111、121、および、131は、それぞれ、データストア113、123、および、133上に各々格納しているデータレコードを相関させて共有する。
【0026】
いくつかの実施形態において、クライアント101は、クラウドサービスインスタンス111、121、および、131のクラウドサービスへのアクセスおよび/または管理を行うためのネットワーククライアントである。例えば、ウェブブラウザクライアントを用いて、クライアント101は、クラウドサービスインスタンス111、121、および/または、131によってホストされているウェブサービスにアクセスできる。いくつかの実施形態において、クライアント101は、特定の顧客および/またはアカウントに対応し、各クラウドサービスインスタンスは、特定の顧客および/またはアカウントに関連付けられている。いくつかの実施形態において、クライアント101は、デスクトップコンピュータ、ラップトップ、モバイルデバイス、タブレット、キオスク、音声アシスタント、ウェアラブルデバイス、または、別のネットワークコンピュータデバイスである。様々な実施形態において、クライアント101は、クラウドインスタンス(クラウドサービスインスタンス111、121、および、131など)によって管理されているデータレコードの相関および共有を管理するために用いられてもよい。例えば、クライアント101は、データレコードの相関および共有と、クラウドサービスインスタンス間の相関構成のマイグレーションとを構成するために用いられうる。
【0027】
いくつかの実施形態において、クラウドサービスインスタンス111、121、および/または、131は各々、1または複数のアプリケーションサービス(クラウドベースのサービスなど)を提供するアプリケーションインスタンスである。例えば、クラウドサービスインスタンス111、121、および、131の各々は、企業業務のワークフローなどデジタルワークフローを管理および実施するためのアプリケーションサービスを提供できる。いくつかの実施形態において、各インスタンスは、特定のエンティティ(ユーザアカウントまたは企業アカウントなど)によってアクセス可能なインスタンスを表す。いくつかの実施形態において、各エンティティは、異なる会社、顧客、組織内の部署、または、別の論理的な分離単位に対応しうる。図1では別個の構成要素として示されているが、クラウドサービスインスタンス111、121、および/または、131の内の1または複数が、同じコンピュータインスタンス上に存在してもよく、および/または、同じコンピュータインスタンスを用いて実装されてもよい。例えば、いくつかの実施形態において、クラウドサービスインスタンス111、121、および/または、131は、異なるインスタンスを分離するための論理的境界を備えた同じアプリケーションサーバによってホストされてよい。異なるユーザクライアントの視点からは、それらのそれぞれのクラウドサービスインスタンスが、機能的は、異なるコンピュータシステム上に存在するように見えうる。
【0028】
様々な実施形態において、クラウドサービスインスタンス111、121、および/または、131は、それらが提供するクラウドベースサービスをサポートするために、データレコードを利用する。例えば、各クラウドインスタンスは、提供されたクラウドサービスをサポートするために、データレコード(データストアまたはデータベースによってホストされているデータレコードなど)を利用できる。いくつかの実施形態において、データレコードは、クラウドサービスインスタンス111、121、および/または、131の間など、異なるクラウドインスタンスの間で相関されうる。例えば、或るクラウドサービスインスタンスの管理者が、別のクラウドサービスインスタンスによって管理されているデータレコードの相関を要求できる。承認された場合、相関データレコードに対する修正または更新により、修正されたバージョンの相関データレコードを要求側クラウドインスタンスが受信することを可能にするデータレコード相関・共有処理が開始される。様々な実施形態において、構成された相関は、或るクラウドサービスインスタンスから別のクラウドサービスインスタンスへさらにマイグレートされうる。例えば、開発インスタンス間の相関が、本番インスタンスにマイグレートされうる。別の例として、第1サードパーティベンダのインスタンス間の相関が、第2サードパーティベンダのインスタンスにマイグレートされうる。様々な実施形態において、クラウドサービスインスタンス111、121、および/または、131は各々、データレコードの相関および共有と、相関構成のマイグレーションとを実施するために、データ相関モジュール(図1では図示せず)を利用できる。
【0029】
いくつかの実施形態において、クラウドサービスインスタンス111、121、および、131は、データレコードを含むデータを管理するために、それぞれ、データストア113、123、および、133を利用する。例えば、クラウドサービスインスタンス111、121、および、131は、それぞれ、データストア113、123、および、133上にデータレコードを格納してリトリーブする。データレコードを相関または共有するよう特に構成されていない限り、データストア113、123、および、133は、それぞれのクラウドサービスインスタンスによってのみアクセス可能である。しかしながら、開示されている技術を用いると、異なるクラウドサービスインスタンスの間でデータレコードを相関させて共有することで、それぞれのデータストアに格納されたデータレコードをクラウドインスタンスの間で相関させて共有することができる。様々な実施形態において、クラウドインスタンスのためのデータ相関・共有構成は、クラウドインスタンスの構成済みのデータストアに格納されうる。例えば、クラウドサービスインスタンス111、121、および、131は、データレコード相関・共有の構成を格納するために、それぞれ、データストア113、123、および、133を利用できる。いくつかの実施形態において、データストア113、123、および/または、133の各々は、1または複数のデータストア(1または複数の分散型データストアサーバなど)を用いて実装される。例えば、図1に単一のエンティティとして示されているが、データストア113は、ネットワーク151を介してクラウドサービスインスタンス111に接続された1または複数の分散型データストア構成要素として実装されてもよい。
【0030】
図1の図面を単純化するために一部の構成要素については1つずつ図示されているが、図1に示す構成要素のいずれかが追加で存在してもよい。例えば、クラウドサービスインスタンス111、121、および/または、131は、1または複数のサーバを備えてよく、および/または、サーバを共有してよい。同様に、データストア113、123、および/または、133は各々、1または複数のデータストアサーバを備えてよい。いくつかの実施形態において、データストア113、123、および/または、133は、それぞれ、クラウドサービスインスタンス111、121、および/または、131へ直接的に接続されていなくてもよい。例えば、データストア113、123、および/または、133と、それらの構成要素は、複数のサーバおよび/または構成要素にわたって複製および/または分散されてよい。様々な実施形態において、クライアント101は、クラウドサービスインスタンスに対する潜在的なクライアントの一例にすぎない。いくつかの実施形態において、図1に示してない構成要素が存在してもよい。
【0031】
図2は、データレコード相関・共有をサポートするクラウドサービスインスタンスの一実施形態を示すブロック図である。図の例において、クラウドサービスインスタンス201は、クラウドサービス(企業業務のためのワークフローなどのデジタルワークフローを管理および実施するためのアプリケーションサービスなど)をサポートおよび実施するアプリケーションインスタンスである。クラウドサービスインスタンス201は、図示されていない多くの様々な構成要素を備えるが、2つの構成要素、すなわち、データ相関モジュール211およびネットワーク通信層251が示されている。様々な実施形態において、これら2つの構成要素は、データレコード相関・共有をサポートするために利用される。データ相関モジュール211は、ネットワーク通信層251へ通信可能に接続されており、ネットワーク通信層251は、ネットワーク接続253へ接続されおよび/またはネットワーク接続253とインターフェースを取っている。クラウドサービスインスタンス201は、ネットワーク接続253を介して1または複数のネットワーク(インターネットなど)へ通信可能に接続されており、それに応じて、クラウドサービスインスタンス201は、図示されていない他のネットワーク構成要素へ通信可能に接続されている。いくつかの実施形態において、クラウドサービスインスタンス201は、アプリケーションインスタンス(図1のクラウドサービスインスタンス111、121、および/または、131など)であり、ネットワーク接続253は、図1のネットワーク151に接続され、ならびに/もしくは、クラウドサービスインスタンス201は、データストア(図1のデータストア113、123、または、133など)を利用し、データストアへ通信可能に接続されている。
【0032】
図2の例に示すように、クラウドサービスインスタンス201のデータ相関モジュール211は、要求承認モジュール221、イベントキャプチャモジュール223、相関インデックス225、アウトバウンドキャプチャキュー231、アウトバウンド処理モジュール233、インバウンド処理モジュール243、および、インバウンドキャプチャキュー241を含め、データレコードの相関および共有をサポートする複数の構成要素を備える。様々な実施形態において、データ相関モジュール211の構成要素はより少なくても多くてもよく、および/または、図に示す構成要素の一部が、より少ないまたは多い構成要素として実装されてもよい。図の例において、要求承認モジュール221は、データレコード相関要求およびマイグレーション要求など、データ相関要求の承認を管理する。例えば、受信または要求されたデータレコード相関要求が、要求承認モジュール221によって管理される。同様に、受信または要求されたデータレコード相関マイグレーション要求が、要求承認モジュール221によって管理される。いくつかの実施形態において、要求は、要求を生成する側および要求を受信する側の両方によって管理および追跡される。例えば、要求する側は、要求が承認されたのかまたは拒否されたのかなど、要求の状態を追跡できる。対照的に、要求を受信する側は、要求が許可される前に、まず要求を承認しなければならない。いくつかの実施形態において、承認処理は、データ相関要求およびマイグレーション要求を含む要求を開始および/または承認するために人的介入(権限のある管理者など)を要求する手動処理である。いくつかの実施形態において、承認処理は、自動処理または半自動処理である。例えば、要求は、どのアカウントおよび/またはクラウドサービスインスタンスが特定のデータレコードおよびそれらのフィールドへのアクセスを許可されているのかを規定する付与された共有許可/権限など、構成されたアクセス許可および/またはアクセス権限に基づいて承認されうる。
【0033】
いくつかの実施形態において、イベントキャプチャモジュール223は、相関データレコードに関連するイベントを管理するために用いられる。例えば、修正されたデータレコードが、構成されているデータレコード相関構成と一致しうる。この修正は、イベントキャプチャモジュールによって識別および処理される。例えば、イベントキャプチャモジュールは、相関構成を有するレコードを識別するために、データレコードの修正を監視する。キャプチャイベントが、一致する相関構成を有する修正済みレコードに対して作成される。いくつかの実施形態において、イベントをトリガするために必要な修正は、特定のトリガイベント要件を含む。例えば、関連データレコードの修正は、イベントを作成するために構成済みのイベント要件トリガと一致しなければならない。トリガ要件が満たされた場合、作成されたイベントは、共有に向けて修正済みデータレコードを処理するために利用されうる。様々な実施形態において、イベントがキャプチャされると、そのイベントは、アウトバウンドキャプチャキュー231を用いて処理される。例えば、キャプチャされたイベントは、アウトバウンドキャプチャキュー231に挿入され、そこで、クラウドサービスインスタンス201のリソース制限および要件の範囲内で処理されうる。
【0034】
いくつかの実施形態において、データレコード相関は、相関インデックス225を用いて格納および管理される。例えば、相関インデックス225は、異なるクラウドサービスインスタンスの間で(異なるアプリケーションインスタンスの間などで)データレコードならびにそれらの相関および共有の要件を管理および追跡するために利用される。いくつかの実施形態において、相関インデックス225は、データレコード相関構成を一意的に識別するために用いられる相関識別子と、相関が適用されるデータレコードおよびデータベーステーブルと、ソースクラウドインスタンスおよび/またはターゲットクラウドインスタンスの識別子と、相関構成の状態とを格納する。様々な実施形態において、相関構成の状態は、アクティブまたは非アクティブでありうる。状態のその他の潜在的な値は、承認待ちまたは要求中、拒否、マイグレーション待ち、もしくは、別の適切な状態を含みうる。いくつかの実施形態において、各相関構成は、相関データベーステーブルに格納された相関エントリである。ドメインパラメータ、アクセス認証情報(データレコードの共有/アクセスに必要な認証情報など)、および、データレコードのマイグレーション履歴を含む相関履歴など、相関構成に関連するその他のパラメータも適切でありうる。いくつかの実施形態において、相関インデックス225は、相関データレコードの共有バージョンに実行されるインバウンド処理および/またはアウトバウンド処理のための構成を含む。
【0035】
いくつかの実施形態において、データ相関モジュール211は、少なくとも、アウトバウンド構成要素、すなわち、アウトバウンドキャプチャキュー231およびアウトバウンド処理モジュール233を含むアウトバウンドパイプラインを備える。これらのアウトバウンド構成要素は、修正された相関データレコードに対応するキャプチャイベントに基づいて出力データレコードの相関および共有を処理するために用いられる。アウトバウンドキャプチャキュー231およびアウトバンド処理モジュール233を用いて、修正された相関データレコードのバージョンが、相関構成によって規定されたターゲットクラウドサービスインスタンスに提供される。例えば、アウトバウンドキャプチャキュー231に格納されたイベントが、スケジューリングおよび/またはリソースの利用可能性などに基づいて、適切な時に処理され、アウトバウンドキャプチャキュー231から除去されうる。イベントが、アウトバウンドキャプチャキュー231から除去されると、そのイベントは、任意の構成されているアウトバウンド処理工程を実行するために、アウトバウンド処理モジュール233によって処理されうる。例えば、アウトバウンド処理モジュール233は、相関データレコードのどのフィールドを共有するのかを決定し、データレコードの特定のフィールドの値を修正し、および/または、さらなる情報(さらなるフィールドなど)でデータレコードを補完することなどにより、相関データレコードを修正するために利用されうる。いくつかの実施形態において、アウトバウンド処理モジュール233は、相関データレコードによって提供された情報を補完するために、サードパーティソースなどから、さらなる情報をリトリーブできる。アウトバウンド処理工程が完了すると、相関データレコードの処理済みバージョンが、ターゲットクラウドサービスインスタンスに提供される。例えば、データレコードの処理済みバージョンは、更新の一部としてパッケージングされ、ネットワーク接続253を介して適切なターゲットクラウドサービスインスタンスへ転送するために、ネットワーク通信層251に提供されうる。
【0036】
様々な実施形態において、更新されたデータレコードを処理するためのデータ相関モジュール211のインバウンドパイプラインは、アウトバウンドパイプラインと同様である。いくつかの実施形態において、データ相関モジュール211は、少なくとも、インバウンド構成要素、すなわち、インバウンドキャプチャキュー241およびインバウンド処理モジュール243を含むデータレコード更新を受信するためのインバウンドパイプラインを備える。更新がネットワーク接続253を介して受信され、ネットワーク通信層251によってデータ相関モジュール211へ転送されると、更新イベントが、インバウンドキャプチャキュー241に格納される。様々な実施形態において、インバウンドキャプチャキュー241は、更新がクラウドサービスインスタンス201のリソースにとって過剰になることなしに処理されうるように、更新を抑制するために利用されうる。例えば、インバウンドキャプチャキュー241に格納されたイベントが、スケジューリングおよび/またはリソースの利用可能性などに基づいて、適切な時に処理され、インバウンドキャプチャキュー241から除去されうる。イベントが、インバウンドキャプチャキュー241から除去されると、そのイベントは、任意の構成されているインバウンド処理工程を実行するために、インバウンド処理モジュール243によって処理されうる。例えば、インバウンド処理モジュール243は、受信した相関データレコードのどのフィールドを格納するのかを決定し、受信したデータレコードの特定のフィールドの値を修正し、および/または、さらなる情報(さらなるフィールドなど)で受信したデータレコードを補完することなどにより、相関データレコードの受信したバージョンを修正するために利用されうる。いくつかの実施形態において、インバウンド処理モジュール243は、受信した相関データレコードによって提供された情報を補完するために、サードパーティソースなどから、さらなる情報をリトリーブできる。インバウンド処理工程が完了すると、受信した相関データレコードの処理済みのバージョンが、例えば、関連するデータストア内に、クラウドサービスインスタンス201によって格納されうる。いくつかの実施形態において、データレコードは、ネットワーク通信層251およびネットワーク接続253を介してクラウドサービスインスタンス201の関連データベースに書き込まれる。いくつかの実施形態において、インバウンド処理工程は、受信した相関データレコードを格納しないよう決定し、および/または、相関データレコードの代わりにまたはそれに加えてターゲットインスタンスに関するその他の関連するレコードを更新するよう決定してよい。例えば、インバウンド処理モジュール243は、受信した相関データレコードが相関インデックス225内のエントリと一致しないと判定する可能性がある。
【0037】
いくつかの実施形態において、ネットワーク通信層251は、入力および出力ネットワーク通信を管理するためのネットワークインターフェース構成要素である。例えば、共有するためのデータレコードの出力バージョンが、ネットワーク接続253を介してターゲットクラウドサービスインスタンスへ転送するためにデータ相関モジュール211によってネットワーク通信層251へ提供される。同様に、ネットワーク接続253を介して受信された相関データレコードの更新バージョンが、ネットワーク通信層251によってデータ相関モジュール211へ提供される。いくつかの実施形態において、ネットワーク通信層251は、関連付けられたデータストアまたはデータベースからデータレコードをリトリーブおよび/または格納するためのインターフェースとして利用されてよい。例えば、共有のために識別された相関データレコードが、ネットワーク通信層251およびネットワーク接続253を介して関連データベースからリトリーブされうる。同様に、受信されたデータレコードは、ネットワーク通信層251およびネットワーク接続253を介して関連データベースへターゲットクラウドサービスインスタンスによって格納されうる。
【0038】
図3は、クラウドサービスインスタンス間でデータレコードを相関させて共有するための処理の一実施形態を示すフローチャートである。例えば、図3の処理を用いて、ソースクラウドサービスインスタンスが、1または複数のデータレコードを相関させて、ターゲットクラウドサービスインスタンスと共有するよう構成されてよい。ソースクラウドサービスインスタンスで相関されたデータレコードが修正されると、修正済みデータレコードのバージョンが、ターゲットクラウドサービスインスタンスと共有される。様々な実施形態において、相関構成は、ソースクラウドサービスインスタンスおよび/またはターゲットクラウドサービスインスタンス上のデータ相関モジュールによって管理される。例えば、ソースインスタンスおよび/またはターゲットインスタンスの両方が、それぞれの相関インデックスを含むそれぞれのデータ相関モジュールを用いてデータレコード相関を追跡しうる。いくつかの実施形態において、図3の処理は、ターゲットクラウドサービスインスタンスからの相関要求に応じてソースクラウドサービスインスタンスで実行される。図3の処理は、単一のデータレコードの相関を記載しているが、処理は、複数のデータレコードまたはデータレコードのグループの相関および共有に適用可能である。いくつかの実施形態において、ソースクラウドサービスインスタンスおよびターゲットクラウドサービスインスタンスは、図1のクラウドサービスインスタンス111、121、および、131の中の異なるアプリケーションインスタンスである。いくつかの実施形態において、相関データレコードは、ソースクラウドサービスインスタンスに関連付けられているデータストア(図1のデータストア113、123、または、133など)に格納される。いくつかの実施形態において、相関構成を管理するために用いられるデータ相関モジュールは、図2のデータ相関モジュール211である。
【0039】
工程301で、データレコードを相関させる要求が受信される。例えば、データレコード相関要求が、ソースクラウドサービスインスタンスで受信される。いくつかの実施形態において、要求は、ターゲットクラウドサービスインスタンスによって開始される。例えば、ターゲットクラウドサービスインスタンスの管理者が、データレコードの相関要求を構成し、ソースクラウドサービスインスタンスへ送信しうる。様々な実施形態において、相関要求は、ソースクラウドサービスインスタンスのデータレコードを指定する。いくつかの実施形態において、要求は、要求側(例えば、ターゲットクラウドサービスインスタンス)の識別子と、相関要求を参照するためにターゲットインスタンスによって用いられる識別子と、を含む。いくつかの実施形態において、要求は、ターゲットクラウドサービスインスタンスへのアクセス認証情報を含みうる。例えば、要求内に提供されたアクセス認証情報は、ソースクラウドサービスインスタンスによって提供されるデータレコードのバージョンを認証および/または承認するためにターゲットクラウドサービスインスタンスによって利用されうる。いくつかの実施形態において、相関要求は、マイグレーション要求である。例えば、マイグレーション要求は、現時点までに別のターゲットクラウドサービスインスタンスから以前に相関されたデータレコードを、ソースクラウドサービスインスタンスから、マイグレーションを要求しているターゲットクラウドサービスインスタンスへマイグレートすることを含む。いくつかの実施形態において、ソースクラウドサービスインスタンスの要求された相関データレコードは、ソースクラウドサービスに(まだ)存在しない場合があり、要求された相関は、相関要件を満たすソースインスタンスの潜在的なデータレコードに基づく。例えば、相関要求が承認された場合、ソースアプリケーションインスタンスおよびターゲットアプリケーションインスタンスは、ソースクラウドサービスインスタンスにおける相関データレコードの存在または作成に先立って相関されうる。
【0040】
様々な実施形態において、相関要求が検討され、承認された場合、相関構成が、要求されたデータレコードに対して作成される。相関構成が作成されると、相関データレコードへの修正が、データレコードへの変更または更新を検出するために監視されうる。相関要件に適合するデータレコードの作成または削除など、データレコードへの任意の更新は、修正済みデータレコードのバージョンをターゲットクラウドサービスインスタンスと共有することにつながりうる。いくつかの実施形態において、相関要求の最初の承認は、検出された修正をトリガし、ターゲットクラウドサービスインスタンスへデータレコードのバージョンを提供することにつながる。
【0041】
工程303で、データレコードへの修正が検出される。例えば、データレコードへの変更が、データレコード監視サービスによって検出される。様々な実施形態において、ソースクラウドサービスインスタンスにおけるデータレコードへの任意の変更が検出される。変更は、任意のデータレコードの任意のフィールドへの任意の更新と、データレコードの作成または削除と、を含みうる。いくつかの実施形態において、データレコードの一部のみが監視されてよく、クラウドサービスインスタンスにわたってデータを相関させる能力は、監視されうるデータレコードに制限される。
【0042】
工程305で、データレコード相関が決定される。例えば、工程303で検出されたデータレコードへの変更は、構成されている相関と比較される。変更が、構成されている相関と一致する場合、データレコード変更は、関連ターゲットクラウドサービスインスタンスの更新をトリガする。いくつかの実施形態において、更新は、ソースインスタンスにおける相関データレコードの削除を反映する。様々な実施形態において、データレコードの共有をトリガするために満たさなければならない1または複数のトリガイベント要件のセットが構成されうる。例えば、データレコードは、特定のトリガイベント要件が満たされた場合(データレコードの特定のフィールドが更新され、更新が特定のユーザによって実行され、更新が特定の時間窓内に実行された場合、など)に、特定のターゲットクラウドサービスインスタンスのみを更新するよう構成されうる。構成されている要件に基づいて、相関データレコードのフィールドを単に更新することが、データレコードを共有するために構成されている要件を満たさない場合がある。構成されている共有要件が満たされた場合、データレコードは、適切なターゲットクラウドインスタンスに対する共有のためにマークされる。いくつかの実施形態において、相関インデックスが、承認されたターゲットクラウドサービスインスタンスを含む適切なデータレコード相関を決定するために利用される。
【0043】
工程307で、修正済みデータレコードのバージョンが、承認された受信側に提供される。例えば、工程303で検出された修正と、工程305で決定された相関とを伴ったデータレコードのバージョンが、承認済みターゲットクラウドサービスインスタンスへ提供される。いくつかの実施形態において、修正済みデータレコードは、アウトバウンド処理工程がデータレコードの新しいバージョンを作成するために実行された後にのみ提供される。1または複数のターゲットインスタンスと共有されたデータレコードの新しいバージョンは、データレコードフィールドと、より少ないまたは多いフィールドとについて修正された値を含みうる。例えば、データレコードが共有される前にいくつかのフィールドがデータレコードから除去されてよく、さらなるフィールドが追加され、データレコードの共有バージョンに投入されうる。工程305で決定された相関結果を用いて、承認済みクラウドサービスインスタンスにデータレコードの新しいバージョンが提供される。
【0044】
図4は、クラウドサービスインスタンス間でデータレコードを相関させて共有する要求を処理するための処理の一実施形態を示すフローチャートである。例えば、図4の処理を用いて、ソースクラウドサービスインスタンスが、ターゲットクラウドサービスインスタンスから受信した相関要求を処理する。要求が承認された場合、ターゲットインスタンスが相関データレコードへの更新を受信することを可能にする相関構成が作成される。いくつかの実施形態において、図4の処理は、図3の工程301で実行される。いくつかの実施形態において、ソースクラウドサービスインスタンスおよびターゲットクラウドサービスインスタンスは、図1のクラウドサービスインスタンス111、121、および、131の中の異なるアプリケーションインスタンスである。いくつかの実施形態において、相関データレコードは、ソースクラウドサービスインスタンスに関連付けられているデータストア(図1のデータストア113、123、または、133など)に格納される。いくつかの実施形態において、相関構成を管理するために用いられるデータ相関モジュールは、図2のデータ相関モジュール211である。
【0045】
工程401で、受信されたデータレコード相関要求が復号される。例えば、相関要求が受信され、要求パラメータを決定するために復号される。様々な実施形態において、相関を要求されたデータレコードと、その関連データベーステーブルとが、復号および特定される。例えば、要求されたデータレコードおよびテーブルが特定されると、要求は、既存のデータベーステーブルおよび潜在的なデータレコード(存在する場合)とマッチングされうる。いくつかの実施形態において、要求された相関データレコードは、ソースクラウドサービスに(まだ)存在しない場合があり、要求された相関は、相関要件を満たすソースインスタンスの潜在的なデータレコードの間にある。いくつかの実施形態において、さらなる情報が、相関要求から復号される(要求の他のパラメータの間での相関を要求するターゲットクラウドサービスインスタンスなど)。いくつかの実施形態において、要求は、アクセス認証情報または承認認証情報を含む。例えば、要求は、ソースインスタンスからターゲットインスタンスへまたはターゲットインスタンスからソースインスタンスへのメッセージを検証するのに役立つアクセストークンなど、アクセス認証情報を提供しうる。
【0046】
工程403で、相関要求の承認状態が決定される。例えば、相関要求が復号されると、相関要求は、承認または拒否される。要求を承認するのか拒否するのかの決定は、要求の承認状態を決定する。様々な実施形態において、相関要求の承認は、ソースクラウドサービスインスタンスの管理者によって提供される。例えば、管理者は、相関要求が承認または拒否されることを要求するプロンプトを提供される。特定の実施形態において、プロンプトは、要求されたデータレコードに関連するテーブル、データレコードの記述、相関要求のパラメータ、および、相関を要求しているターゲットインスタンスなど、相関要求を記述する情報を含みうる。いくつかの実施形態において、承認は、構成されている承認ルールに基づいて自動化または半自動化されている。例えば、承認ルールは、特定のターゲットインスタンスが特定のデータベーステーブルおよびレコードにアクセスすることを可能にするよう構成されうる。構成されているアクセス許可は、相関要求を承認または拒否するために適用されうる。様々な実施形態において、承認状態は、相関要求が承認されたか否かに対応する。
【0047】
工程405で、要求が承認されたか否かの判定がなされる。要求が承認された場合、処理は工程407に進む。要求が承認されていない場合、処理は完了する。図4には示されていないが、いくつかの実施形態において、要求が承認されなかった場合または拒否された場合、拒否応答が要求側クラウドサービスインスタンスに提供されて、そのインスタンスに拒否を通知する。
【0048】
工程407で、相関インデックスが、方向性相関エントリで更新される。例えば、クラウドサービスインスタンスのデータ相関モジュールの相関インデックスが、承認されたデータレコード相関要求を反映するように更新される。様々な実施形態において、方向性相関エントリが相関インデックスに挿入され、ソースクラウドサービスインスタンスからターゲットクラウドサービスインスタンスへ向くなど、2つのアプリケーションインスタンスを参照する。いくつかの実施形態において、相関エントリは、データレコード相関の一意相関識別子、相関データレコードの識別子、相関データレコードのテーブルの識別子、ターゲットインスタンスに格納された対応する相関エントリの一意識別子、ターゲットインスタンスの識別子または参照、相関エントリの状態、ならびに、相関エントリに関連するドメイン、を含む。いくつかの実施形態において、相関エントリは、相関構成情報の中でも特に、データレコードが共有される時に実行するアウトバウンド処理工程、データレコードの共有をトリガするために満たさなければならない要件、および、アクセス認証情報など、さらなる相関構成情報を含みうる。例えば、相関エントリは、相関エントリに関連付けられたアクセス認証情報と、相関を承認されたデータレコードが修正された時にターゲットインスタンスの更新を提供するために利用されうるターゲットインスタンスとで更新されうる。いくつかの実施形態において、応答が要求側クラウドサービスインスタンスへ提供され、承認された相関要求をそのインスタンスに通知する。
【0049】
図5は、クラウドサービスインスタンスの間で相関されたデータレコードを共有するための処理の一実施形態を示すフローチャートである。例えば、図5の処理を用いて、修正されたデータレコードのバージョンが、ソースクラウドサービスインスタンスとターゲットクラウドサービスインスタンスとの間で共有される。様々な実施形態において、図5の処理は、相関データレコードへの修正を検出したことに応じて、ソースクラウドサービスまたはアプリケーションインスタンスによって実行される。相関構成に応じて、相関データレコードの更新データを受信するターゲットクラウドサービスインスタンスが、別のターゲットクラウドサービスに対してソースクラウドサービスインスタンスとしても機能しうる。例えば、データレコード相関は、チェーンにおける各インスタンスが更新され、次の依存インスタンスを順に更新するように、上流クラウドサービスインスタンスでのデータレコードの修正が下流のクラウドサービスインスタンスのチェーンに沿って修正をトリガするカスケードチェーンを形成しうる。
【0050】
いくつかの実施形態において、ソースクラウドインスタンスのデータ相関モジュール(図2のクラウドサービスインスタンス201のデータ相関モジュール211など)が、相関データレコードの相関および共有を処理するために図5の処理で用いられる。例えば、相関インデックス(図2の相関インデックス225など)が、相関構成または相関エントリで修正済みデータレコードを識別するために利用されうる。次いで、キャプチャイベントが、図2のイベントキャプチャモジュール223を用いて識別および作成されえ、アウトバウンドイベントが、アウトバウンドキャプチャキュー231に挿入されうる。イベントが処理される時、アウトバウンド処理モジュール233は、承認されたターゲットクラウドサービスインスタンスとの共有に向けて修正されたデータレコードのバージョンを準備するために、アウトバンド処理工程を実行できる。いくつかの実施形態において、図5の処理は、図3の工程303、305、および/または、307で実行される。いくつかの実施形態において、ソースクラウドサービスインスタンスおよびターゲットクラウドサービスインスタンスは、図1のクラウドサービスインスタンス111、121、および、131の中の異なるアプリケーションインスタンスである。いくつかの実施形態において、相関データレコードは、ソースクラウドサービスインスタンスに関連付けられているデータストア(図1のデータストア113、123、または、133など)に格納される。
【0051】
工程501で、修正されたデータレコードのための相関エントリが決定される。例えば、相関インデックスが、データレコードおよびそのデータベーステーブルに基づいて、修正されたデータレコードの方向性相関エントリを識別するために用いられる。いくつかの実施形態において、方向性相関エントリは、関連するターゲットおよびソースアプリケーションインスタンスまたはクラウドサービスインスタンスを含むソリューション情報を含む。いくつかの実施形態において、方向性相関エントリは、少なくとも部分的には、検出された修正が不必要なループを生み出さないことを決定するために用いられる。例えば、方向性相関エントリは、このバージョンの更新が以前に処理されたか否かを判定するためのバージョン情報を含みうる。別の例として、クラウドサービスインスタンスのグラフの間で巡回されたエッジを追跡することにより、方向性相関エントリは、更新がこのクラウドサービスインスタンスによって以前に見られたか否かを判定するために利用されうる。
ループの検出は工程501で実行可能であるが、いくつかの実施形態において、ループの検出および防止の動作は、データレコードの相関および共有を処理する時に別の工程で実行される。
【0052】
工程503で、適切なキャプチャイベントが決定される。例えば、修正されたデータレコードに関連付けられた相関構成を用いて、適切なキャプチャイベントが決定される。様々な実施形態において、相関データレコードは、共有のための構成要件が満たされた場合にのみ共有される。これらの要件は、要件を満たすイベントに遭遇した時に満たされる。例えば、データレコードは、データレコードの特定のフィールドが更新され、更新が特定のユーザによって実行され、更新が特定の時間窓内に実行された場合に、特定のターゲットクラウドサービスインスタンスのみを更新するよう構成されうる。構成されている要件に基づいて、相関データレコードのフィールドを単に更新することが、データレコードを共有するために構成されている要件を満たさない場合がある。様々な実施形態において、適切なキャプチャイベントは、構成されている共有要件が満たされた時にのみ識別される。
【0053】
工程505で、キャプチャイベントは、キャプチャキューを用いて処理される。例えば、キャプチャイベントは、アウトバウンドキャプチャキューに挿入され、クラウドサービスインスタンスがイベントの処理に利用可能である時にキューから取り出される。様々な実施形態において、キャプチャキューは、適切なリソースが処理待ちのキャプチャイベントを処理するのに利用可能になるまで、ソースインスタンスにおける相関データレコードの共有を抑制するために利用される。様々な実施形態において、キャプチャキューは、ソースクラウドサービスインスタンスが相関データレコードの共有を効果的に管理することを可能にする。
【0054】
工程507で、アウトバウンドデータレコード処理が実行される。例えば、共有に適切なバージョンを作成するようにデータレコードを修正するために、1または複数の処理工程が実行される。いくつかの実施形態において、その結果、修正されたデータレコードの新しいバージョンが作成される。例えば、データレコードの1または複数のフィールドが、例えば、機密情報、無関係な情報、または、不要情報の共有を不要な防止するために、除去されうる。同様に、さらなる情報でデータレコードを補完するために、1または複数のフィールドが追加されうる。いくつかの実施形態において、既存のフィールドは、例えば、フィールド内の値をターゲットクラウドサービスインスタンスに適切な値またはフォーマットに変換するために、さらに修正されうる。いくつかの実施形態において、外部データソースなどの1または複数のデータソースに、アウトバウンド処理工程の一部としてクエリされうる。例えば、工程507で実行されるアウトバウンド処理の一部として、既存のものを修正するためおよび/またはデータレコードの新しいフィールドに投入するための情報をリトリーブするために、ウェブクエリが実行されうる。
【0055】
工程509で、修正済みデータレコードのバージョンが、ターゲットクラウドサービスインスタンスに提供される。例えば、工程507で作成された修正済みデータレコードのバージョンがパッケージングされ、工程501で決定された相関エントリによって識別されるターゲットクラウドサービスインスタンスに提供される。いくつかの実施形態において、データレコード更新は、クラウドサービスインスタンスの間のレコードデータの転送に関連するセキュリティ面を改善するために、アクセス認証情報(アクセストークンなど)と共に提供される。いくつかの実施形態において、提供されたバージョンの修正済みデータレコードがターゲットクラウドサービスインスタンスで受信されると、受信されたデータは、ターゲットインスタンスのデータストアに格納される前にさらに処理される。いくつかのシナリオにおいて、提供されたデータレコード更新は、ターゲットクラウドサービスインスタンスにおける相関に基づいて、連鎖更新をトリガする。いくつかの実施形態において、ターゲットクラウドサービスインスタンスのインバウンドパイプラインにおいてループが防止される。例えば、工程509で提供された修正済みデータレコードのバージョンは、更新の重複または繰り返しを検出するために用いられるバージョン番号を含みうる。
【0056】
図6は、ソースクラウドサービスインスタンスによって提供された更新済み相関データレコードの受信を処理するための処理の一実施形態を示すフローチャートである。例えば、図6の処理を用いて、ソースクラウドサービスインスタンスによって提供された共有・修正済みデータレコードのバージョンが、ターゲットクラウドサービスインスタンスで受信される。様々な実施形態において、図6の処理は、更新された相関データレコードを受信したことに応じて、ターゲットクラウドサービスインスタンスによって実行される。相関構成に応じて、ターゲットクラウドサービスインスタンスは、そのインバウンドパイプライン中に受信したデータレコードを修正し、新しい修正されたバージョンを関連データストアに格納しうる。いくつかの実施形態において、ターゲットクラウドサービスインスタンスによるデータレコード更新は、更新されたデータレコードが別のターゲットクラウドサービスに相関された場合に、さらなる下流更新をトリガしうる。
【0057】
いくつかの実施形態において、ターゲットクラウドインスタンスのデータ相関モジュール(図2のクラウドサービスインスタンス201のデータ相関モジュール211など)が、受信された相関・共有済みデータレコードの共有を処理するために図6の処理で用いられる。例えば、相関インデックス(図2の相関インデックス225など)が、相関構成または相関エントリで相関・共有済みデータレコードを識別するために利用されうる。受信されたデータレコードは、図2のイベントキャプチャモジュール223を用いてキャプチャイベントと関連付けられ、インバウンドイベントが、インバウンドキャプチャキュー241に挿入されうる。イベントが処理される時、インバウンド処理モジュール243は、ターゲットクラウドサービスインスタンスの関連データストアに格納された共有データレコードのバージョンを準備するために、インバウンド処理工程を実行できる。いくつかの実施形態において、図6の処理は、図3の工程307で実行される。いくつかの実施形態において、ソースクラウドサービスインスタンスおよびターゲットクラウドサービスインスタンスは、図1のクラウドサービスインスタンス111、121、および、131の中の異なるアプリケーションインスタンスである。いくつかの実施形態において、相関データレコードは、ターゲットクラウドサービスインスタンスに関連付けられているデータストア(図1のデータストア113、123、または、133など)に格納される。
【0058】
工程601で、共有データレコードが受信される。例えば、ソースクラウドサービスインスタンスが、ターゲットインスタンスと共有するためにデータレコードを提供する。様々な実施形態において、共有データレコードは、相関データレコードの最近修正されたバージョンである。相関データレコードへの修正に基づいて、ターゲットインスタンスは、ソースインスタンスによって準備された修正データレコードのバージョンを今受信している。いくつかの実施形態において、受信されたデータレコードが承認された相関構成に適合することを確認するために、相関エントリが、相関インデックス内で識別される。例えば、対応する相関エントリを識別するために、ソースインスタンスと、データレコードおよび/または受信されたメタデータがマッチングされる。いくつかの実施形態において、イベントキャプチャモジュールが、更新イベントに入力データレコードをマッチングするためにさらに用いられる。例えば、データレコード更新の特性が、ターゲットクラウドサービスインスタンスに格納されたデータレコードのバージョンを更新するための更新要件を含む構成されている更新イベントをマッチングするために用いられうる。
【0059】
いくつかの実施形態において、ターゲットクラウドサービスインスタンスのインバウンドパイプラインにおいて、インスタンス間のループが防止される。例えば、工程601で受信された共有データレコードは、更新の重複または繰り返しを検出するために用いられるバージョン番号を含みうる。更新がループを引き起こした場合、受信されたデータレコードは、処理される必要がなく、ターゲットインスタンスによって管理されているデータレコードのバージョンは更新されない。
【0060】
工程603で、共有データレコードは、キャプチャキューを用いて処理される。例えば、受信されたデータレコードは、更新イベントの検出をトリガすることができ、イベントは、キャプチャイベントとしてキャプチャされる。例えば、受信された各共有データレコードは、キャプチャキューを用いてキャプチャイベントとして処理されうる。いくつかの実施形態において、キャプチャイベントは、インバウンドキャプチャキューに挿入され、クラウドサービスインスタンスがイベントの処理に利用可能である時にキューから取り出される。様々な実施形態において、キャプチャキューは、適切なリソースが処理待ちのキャプチャイベントを処理するのに利用可能になるまで、ターゲットインスタンスにおける相関データレコードの共有を抑制するために利用される。様々な実施形態において、キャプチャキューは、ターゲットクラウドサービスインスタンスが相関データレコードの共有を効果的に管理することを可能にする。
【0061】
工程605で、インバウンドデータレコード処理が実行される。例えば、ターゲットクラウドサービスインスタンスのためのバージョンを作成するように、受信されたデータレコードを修正するために、1または複数の処理工程が実行される。いくつかの実施形態において、その結果、受信された共有データレコードの新しいバージョンが作成される。例えば、データレコードの1または複数のフィールドが、例えば、機密情報、無関係な情報、または、不要情報をフィルタリングするために、除去されうる。同様に、さらなる情報で受信データレコードを補完するために、1または複数のフィールドが追加されうる。いくつかの実施形態において、既存のフィールドは、例えば、フィールド内の値をターゲットクラウドサービスインスタンスに適切な値またはフォーマットに変換するために、さらに修正されうる。いくつかの実施形態において、外部データソースなどの1または複数のデータソースに、インバウンド処理工程の一部としてクエリされうる。例えば、工程605で実行されるインバウンド処理の一部として、既存のものを修正するためおよび/または受信データレコードの新しいフィールドに投入するための情報をリトリーブするために、ウェブクエリが実行されうる。
【0062】
いくつかの実施形態において、インバウンド処理工程は、受信した相関データレコードを格納しないよう決定し、および/または、相関データレコードの代わりにまたはそれに加えてターゲットインスタンスに関するその他の関連するレコードを更新するよう決定してよい。例えば、インバウンド処理モジュール243は、受信した相関データレコードが相関インデックス内のエントリと一致しないと判定する可能性があり、相関データレコードは、工程607で格納されない。いくつかの実施形態において、インバウンド処理工程は、ターゲットインスタンスによって管理されている複数のデータレコードの削除または非アクティブ化など、更新をもたらしてよい。さらなるデータレコードが工程605のインバウンド処理工程によって処理された場合、修正されたレコードは、適切であれば、工程607で同様に格納されうる。
【0063】
工程607で、処理されたデータレコードが格納される。例えば、工程601で受信された共有・相関データレコードのバージョンが、ターゲットインスタンスに関連付けられているデータストアにターゲットクラウドサービスインスタンスによって格納される。様々な実施形態において、工程605で実行されたインバウンド処理によって更新された改訂データレコードのバージョンが、決定された相関の影響を受けた任意のその他の処理されたデータレコードに沿って格納される。特定の実施形態において、更新された変更も、相関インデックスに反映される。例えば、いくつかの実施形態において、データ相関モジュールの相関インデックは、データレコードのどのバージョンが格納されているのかを追跡するために更新され、インスタンスが更新の重複または繰り返しを防止することを可能にする。いくつかの実施形態において、データレコード更新に関連する巡回されたインスタンスのリストが、更新の重複または繰り返しを防止するための別のまたは追加の技術として、以前に更新されたクラウドサービスインスタンスを追跡するために保持される。
【0064】
いくつかの実施形態において、処理されたデータレコードを格納することは、相関データレコードへの修正の検出をトリガする。例えば、処理されたデータレコードが別のターゲットインスタンスのためのソースとして相関された場合、処理されたデータレコードを格納する工程は、下流ターゲットインスタンスの更新をトリガしうる。様々な実施形態において、下流ターゲットインスタンスは、図3図4、および/または、図5の処理を用いて更新される。
【0065】
図7は、クラウドサービスインスタンスの間で相関構成をマイグレートするための処理の一実施形態を示すフローチャートである。例えば、図7の処理を用いて、第1ソースクラウドサービスインスタンスと第1ターゲットクラウドサービスインスタンスとの間で承認されたデータレコード相関構成が、第1ソースクラウドサービスと第2ターゲットクラウドサービスとの間で相関が結びつくようにマイグレートされうる。様々な実施形態において、図7の処理は、第1ターゲットクラウドサービスインスタンスが非アクティブ化されまたはもはや到達可能ではなくなったのを検出したことに応じて、さらに、第2ターゲットクラウドサービスインスタンスからマイグレーション要求を受信したことに応じて、ソースクラウドサービスインスタンスによって実行される。いくつかの実施形態において、図7の処理は、図3の工程301で実行される。いくつかの実施形態において、第1ソース、第1ターゲット、および、第2ターゲットクラウドサービスインスタンスは、図1のクラウドサービスインスタンス111、121、および、131の中の異なるアプリケーションインスタンスである。いくつかの実施形態において、相関データレコードは、ソースクラウドサービスインスタンスに関連付けられているデータストア(図1のデータストア113、123、または、133など)に格納される。
【0066】
工程701で、ターゲットインスタンスがもはや到達可能ではないとの判定がなされる。例えば、相関構成のターゲットインスタンスは、非アクティブ化および/または無効化される場合があり、ソースインスタスからもはや到達可能ではないことがある。ソースインスタンスは、ターゲットインスタンスが相関データレコードの共有にもはや利用可能ではないことを検出し、ターゲットインスタンスとの相関データレコードの共有を無効化する。様々な実施形態において、ソースインスタンスにおける相関インデックスが、到達不可能なターゲットインスタンスを参照する相関エントリについて更新される。適切な相関エントリが無効化されると、相関データレコードへの更新は、到達不可能なターゲットインスタンスの更新をもたらさない。データレコードは、到達不可能なターゲットインスタンスへもはや提供されないが、以前に承認された相関データレコードのための構成は、相関インデックスから削除されず、その代わりにただ無効化される。様々な実施形態において、各相関エントリは、変更の履歴および/またはログを含むことで、管理者が経時的に状態とエントリへの変更とを追跡することを可能にする。
【0067】
いくつかの実施形態において、工程701は任意選択的であり、マイグレーション要求は、元々のターゲットインスタンスが到達不可能であることを最初に検出することなしに処理されてもよい。様々な実施形態において、対応する相関エントリの非アクティブ化は、その代わりに、管理者(ソースインスタンスおよび/またはターゲットインスタスの管理者など)によって開始されうる。例えば、ターゲットインスタンスが、データレコード相関を無効化する要求をソースインスタンスへ提供できる。別の例として、ターゲットインスタンスが、アクティブであり、到達可能であり、および/または、無効な相関に同意しているかに関わらず、ソースインスタンスの管理者が、ターゲットインスタンスとの相関を無効化できる。
【0068】
工程703で、新しいターゲットインスタンスについてのマイグレーション要求が受信される。例えば、以前のターゲットインスタンスから新しいターゲットインスタスへ構成済みの相関をマイグレートする要求が受信される。いくつかの実施形態において、マイグレーション要求は、新しいターゲットインスタスによって提供される。あるいは、マイグレーション要求は、ソースインスタンスの管理者などによって、ソースインスタンスで提供されうる。いくつかの実施形態において、マイグレーション要求は、古いターゲットインスタスによって提供される。いくつかの実施形態において、マイグレーション要求は、自動または半自動的になされる。例えば、マイグレーション要求は、1または複数のフェイルオーバー構成によって自動的に開始されうる。
【0069】
様々な実施形態において、マイグレーション要求は、相関要求の1タイプであり、他のマイグレーションパラメータの中でも特に、少なくとも、相関のためのデータレコードと新しいターゲットインスタスとを指定する。いくつかの実施形態において、マイグレーション要求は、アクセス認証情報、相関データレコードのデータベーステーブルの識別子、1または複数の相関エントリ識別子、ならびに/もしくは、古いターゲットインスタンスの識別子を含む。
【0070】
工程705で、マイグレーション要求の承認状態が決定される。例えば、マイグレーション要求が受信されると、要求は、承認または拒否される。要求を承認するのか拒否するのかの決定は、要求の承認状態を決定する。様々な実施形態において、マイグレーション要求の承認は、ソースクラウドサービスインスタンスの管理者によって提供される。例えば、管理者は、マイグレーション要求が承認または拒否されることを要求するプロンプトを提供される。特定の実施形態において、プロンプトは、相関データレコードに関連するデータベーステーブル、相関データレコードの記述、マイグレーション要求のパラメータ、ならびに、マイグレーションに含まれる新しいおよび/または古いターゲットインスタンスなど、マイグレーション要求を記述する情報を含みうる。いくつかの実施形態において、承認は、構成されている承認ルールに基づいて自動化または半自動化されている。例えば、承認ルールは、特定のターゲットインスタンスが特定のデータベーステーブルおよびレコードにアクセスすることを可能にするよう構成されうる。構成されているアクセス許可は、マイグレーション要求を承認または拒否するために適用されうる。いくつかの実施形態において、承認およびマイグレーションのルールは、イベント(検出された失敗またはスケジュールされたマイグレーションイベントなど)に基づいて、マイグレーション要求を自動的に開始して承認するように構成されてもよい。様々な実施形態において、承認状態は、マイグレーション要求が承認されたか否かに基づく。
【0071】
工程707で、要求が承認されたか否かの判定がなされる。要求が承認された場合、処理は工程709に進む。要求が承認されていない場合、処理は完了し、マイグレーションは実行されない。図7には示されていないが、いくつかの実施形態において、要求が承認されなかった場合または拒否された場合、拒否応答が要求側クラウドサービスインスタンスに提供されて、そのインスタンスに拒否を通知する。
【0072】
工程709で、関連する相関構成がマイグレートされ、ソースインスタンスおよび新しいターゲットインスタンスが同期される。例えば、承認されたマイグレーションは、古いターゲットインスタンスを用いることから新しいターゲットインスタンスを用いることへ相関構成をマイグレートし、新たに相関されたデータレコードを同期させることにつながる。いくつかの実施形態において、マイグレーション処理の一部として、ソースアプリケーションインスタンスおよび新しいターゲットアプリケーションインスタンスのデータレコードが相関されると、相関されたデータレコードは比較され、適切なインスタンスにおけるレコードが更新される。例えば、マイグレーション構成に基づいて、最初のマイグレーションの実行の一部として、どのインスタンスがマイグレーションイベント中に権限のあるソースとして構成されているのかによって、ソースインスタンスが、ターゲットインスタンスを更新でき、または、その代わりに、ターゲットインスタンスが、ソースインスタンスを更新できる。様々な実施形態において、最初のマイグレーション中に、特定のマイグレーション構成により、ソースインスタンスがターゲットインスタンスを更新するのではなく、ターゲットインスタンスがソースインスタンスを更新することが可能になる。
マイグレーションが完了すると、元々の相関の構成に基づいて、ソースインスタンスにおけるレコードへの修正が、ターゲットインスタンスを更新するために用いられる。様々な実施形態において、データレコードへの更新済みの相関が、相関インデックスにおける方向性相関エントリによって反映される。
【0073】
図8は、新しいターゲットクラウドサービスインスタンスへ相関構成をマイグレートするための処理の一実施形態を示すフローチャートである。例えば、図8の処理を用いて、ソースクラウドサービスインスタンスが、適切な構成済みの相関を識別して古いターゲットインスタンスから新しいターゲットインスタンスへマイグレートするために、相関インデックスを更新することによって、承認されたマイグレーション要求を処理する。様々な実施形態において、ソースインスタンスおよびターゲットインスタンスの相関インデックスは両方とも、マイグレーションを反映するように更新される。いくつかの実施形態において、図8の処理は、図7の工程709で実行される。いくつかの実施形態において、ソース、古いターゲット、および、新しいターゲットクラウドサービスインスタンスは、図1のクラウドサービスインスタンス111、121、および、131の中の異なるアプリケーションインスタンスである。いくつかの実施形態において、相関データレコードは、ソースクラウドサービスインスタンスに関連付けられているデータストア(図1のデータストア113、123、または、133など)に格納される。いくつかの実施形態において、マイグレーションを管理するために用いられるデータ相関モジュールは、図2のデータ相関モジュール211である。
【0074】
工程801で、適合する相関エントリが識別される。例えば、承認されたマイグレーション要求のマイグレーションパラメータに適合する相関エントリが識別される。いくつかの実施形態において、適合は、古いターゲットクラウドサービスインスタンスを参照し、さらに、新しいターゲットクラウドサービスインスタンスの相関要件に適合する相関エントリを識別することに基づく。例えば、マイグレーション要求は、古いターゲットインスタンスを示す構成済みの相関の一部のみ(特定のデータベーステーブルに属するデータレコードのみ、など)がマイグレートされることを要求してよい。様々な実施形態において、工程801で、マイグレーション要件を満たす相関インデックスの相関エントリのみが、マイグレーションに向けて識別される。
【0075】
工程803で、適合相関エントリは、新しいターゲットインスタンスを参照するように更新される。例えば、工程801で識別された相関エントリの各々に対して、各適合相関エントリは、新しいターゲットクラウドサービスインスタンスを参照するように更新される。いくつかの実施形態において、方向性相関エントリは、新しいターゲットアプリケーションインスタンスの識別子で更新される。様々な実施形態において、更新は、相関エントリに対して保存されている履歴に記録および追加される。例えば、相関エントリおよび/または相関インデックスが更新された時に、変更が、修正履歴を維持するために追跡および記録される。様々な実施形態において、変更の履歴を追跡することは、管理者が変更を見直すことと、マイグレーションおよび相関の更新が取り消されることとを可能にする。
【0076】
工程805で、データレコードマイグレーションポリシーが決定される。いくつかの実施形態において、最初のマイグレーションイベントの一部として、データレコードがソースインスタンスと新しいターゲットインスタンスとの間で相関されると、相関データレコードは比較され、適切なインスタンスにおけるレコードが更新される。例えば、構成されているマイグレーションポリシーに基づいて、最初のマイグレーションの実行の一部として、どのインスタンスがマイグレーションイベント中に権限のあるソースとして構成されているのかによって、ソースインスタンスが、ターゲットインスタンスを更新でき、または、その代わりに、ターゲットインスタンスが、ソースインスタンスを更新できる。工程805で、どのインスタンスがマイグレーション中に権限のあるソースであるのかなど、マイグレーションポリシーが決定される。いくつかの実施形態において、権限のあるソースは、データレコード、データベーステーブル、および/または、別の粒度で決定されうる。例えば、いくつかのデータベーステーブルは、マイグレーション中に権限のあるソースとしてソースインスタンスを利用し、ターゲットインスタンスの対応する相関レコードを更新でき、一方、その他のデータベーステーブルは、マイグレーション中に権限のあるソースとしてターゲットインスタンスを利用し、ソースインスタンスの対応する相関レコードを更新する。様々な実施形態において、マイグレーションポリシーは、新しいターゲットが、マイグレーション処理の一部としてソースインスタンスにおける相関データレコードの特定の値を最初にオーバーライドすることを可能にする。マイグレーション処理が完了すると、方向性相関エントリは、データレコードが共有される方向を指示する。
【0077】
工程807で、相関データレコードは、決定されたマイグレーションポリシーに基づいて更新される。例えば、工程805で決定されたマイグレーションポリシーと、各相関データレコードに対して決定された権限のあるソースとを用いて、新たに相関されたデータレコードが更新される。マイグレーションポリシーに応じて、ターゲットインスタンスおよび/またはソースインスタンスのデータレコードが更新される。様々な実施形態において、更新工程は、相関データレコードが修正される時に用いられるのと同じまたは同様の処理およびパイプラインを利用できる。例えば、指定された受信側アプリケーションインスタンスに適切な各相関データレコードの修正バージョンを作成するために、アウトバウンド処理およびインバウンド処理の両方が実行されうる。いくつかの実施形態において、マイグレーション処理は、マイグレーションイベントに固有のカスタマイズされたインバウンドおよびアウトバウンドマイグレーション処理を利用してよく、相関データレコードへの将来の更新は、相関構成によって規定されている構成済みのインバウンドおよびアウトバウンド処理に戻る。
【0078】
図9は、データレコードの相関および共有を実行するためにプログラムされたコンピュータシステムを示す機能図である。明らかに、他のコンピュータシステムアーキテクチャおよび構成が、保護されたデータセットの難読化の秩序を維持するためおよび/または難読化されたデータに比較クエリを実行するために利用されてよい。コンピュータシステム900の例は、クライアント101、図1のクラウドサービスインスタンス111、121、および、131の1または複数のコンピュータ、図1のデータストア113、123、および133の1または複数のコンピュータ、ならびに、図2のクラウドサービスインスタンス201の1または複数のコンピュータを含む。以下に述べるような様々なサブシステムを備えるコンピュータシステム900は、少なくとも1つのマイクロプロセッササブシステム(プロセッサまたは中央処理装置(CPU)とも呼ばれる)902を備える。例えば、プロセッサ902は、シングルチッププロセッサまたはマルチプロセッサによって実装されうる。いくつかの実施形態において、プロセッサ902は、コンピュータシステム900の動作を制御する汎用デジタルプロセッサである。メモリ910からリトリーブされた命令を用いて、プロセッサ902は、入力データの受信および操作、ならびに、出力デバイス(例えば、ディスプレイ918)上でのデータの出力および表示を制御する。様々な実施形態において、コンピュータシステム900の1または複数のインスタンスは、図3図8の処理の少なくとも一部を実施するために利用されうる。
【0079】
プロセッサ902は、メモリ910と双方向的に接続されており、メモリ910は、第1プライマリストレージ(典型的には、ランダムアクセスメモリ(RAM))および第2プライマリストレージ領域(典型的には、リードオンリーメモリ(ROM))を含みうる。当業者に周知のように、プライマリストレージは、一般的な記憶領域として、および、スクラッチパッドメモリとして利用可能であり、また、入力データおよび処理済みデータを格納するために利用可能である。プライマリストレージは、さらに、プロセッサ902上で実行される処理のための他のデータおよび命令に加えて、データオブジェクトおよびテキストオブジェクトの形態で、プログラミング命令およびデータを格納できる。また、当業者に周知のように、プライマリストレージは、通例、機能(例えば、プログラムされた命令)を実行するためにプロセッサ902によって用いられる基本的な動作命令、プログラムコード、データ、および、オブジェクトを備える。例えば、メモリ910は、例えば、データアクセスが双方向である必要があるか、単方向である必要があるかに応じて、後述する任意の適切なコンピュータ読み取り可能な記憶媒体を含みうる。例えば、プロセッサ902は、頻繁に必要になるデータをキャッシュメモリ(図示せず)に直接的かつ非常に迅速に格納し取り出すことができる。
【0080】
着脱可能マスストレージデバイス912が、コンピュータシステム900にさらなるデータ記憶容量を提供しており、プロセッサ902に対して双方向(読み出し/書き込み)または単方向(読み出しのみ)に接続されている。例えば、ストレージ912は、磁気テープ、フラッシュメモリ、PCカード、携帯型マスストレージデバイス、ホログラフィックストレージデバイス、および、その他のストレージデバイスなどのコンピュータ読み取り可能な媒体も含みうる。固定マスストレージ920も、例えば、さらなるデータ記憶容量を提供しうる。マスストレージ920の最も一般的な例は、ハードディスクドライブである。マスストレージ912、920は、一般に、プロセッサ902によって通例はあまり利用されないさらなるプログラミング命令、データなどを格納する。マスストレージ912および920に保持された情報は、必要であれば、仮想メモリとしてのメモリ910(例えば、RAM)の一部に標準的な方式で組み込まれうることが理解される。
【0081】
プロセッサ902がストレージサブシステムにアクセスできるようにすることに加えて、バス914が、その他のサブシステムおよびデバイスへのアクセスを可能にするために用いられてもよい。図に示すように、これらは、ディスプレイモニタ918、ネットワークインターフェース916、キーボード904、および、ポインティングデバイス906、ならびに、必要に応じて、補助入力/出力デバイスインターフェース、サウンドカード、スピーカ、および、その他のサブシステムを含みうる。例えば、ポインティングデバイス906は、マウス、スタイラス、トラックボール、または、タブレットであってよく、グラフィカルユーザインターフェースと相互作用するの有用である。
【0082】
ネットワークインターフェース916は、図に示すように、ネットワーク接続を用いて、別のコンピュータ、コンピュータネットワーク、または、遠隔通信ネットワークにプロセッサ902を接続することを可能にする。例えば、ネットワークインターフェース916を通して、プロセッサ902は、方法/処理工程を実行する過程で、別のネットワークから情報(例えば、データオブジェクトまたはプログラム命令)を受信したり、別のネットワークに情報を出力したりすることができる。情報は、しばしば、プロセッサ上で実行される一連の命令として表され、別のネットワークから受信され、別のネットワークへ出力されうる。インターフェースカード(または同様のデバイス)と、プロセッサ902によって実装(例えば、実行/実施)される適切なソフトウェアとを用いて、コンピュータシステム900を外部ネットワークに接続し、標準プロトコルに従ってデータを転送することができる。例えば、本明細書で開示されている様々な処理実施形態は、プロセッサ902上で実行されてもよいし、処理の一部を共有するリモートプロセッサと共に、ネットワーク(インターネット、イントラネットワーク、または、ローカルエリアネットワークなど)上で実行されてもよい。さらなるマスストレージデバイス(図示せず)が、ネットワークインターフェース916を通してプロセッサ902に接続されてもよい。
【0083】
補助I/Oデバイスインターフェース(図示せず)が、コンピュータシステム900と共に用いられてよい。補助I/Oデバイスインターフェースは、プロセッサ902がデータを送信すること、ならびに、より典型的には、他のデバイス(マイクロフォン、タッチセンサ方式ディスプレイ、トランスデューサカードリーダ、テープリーダ、音声または手書き認識装置、バイオメトリクスリーダ、カメラ、携帯型マスストレージデバイス、および、他のコンピュータなど)からデータを受信することを可能にする汎用インターフェースおよびカスタマイズされたインターフェースを含みうる。
【0084】
さらに、本明細書に開示された様々な実施形態は、さらに、様々なコンピュータ実装された動作を実行するためのプログラムコードを備えたコンピュータ読み取り可能な媒体を含むコンピュータストレージ製品に関する。コンピュータ読み取り可能な媒体は、データを格納できる任意のデータストレージデバイスであり、そのデータは、後にコンピュータシステムによって読み出されうる。コンピュータ読み取り可能な媒体の例は、上記の媒体すべてを含むがそれらに限定されない。ハードディスク、フロッピーディスク、および、磁気テープなどの磁気媒体、CD-ROMディスクなどの光学媒体、光学ディスクなどの磁気光学媒体、ならびに、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、および、ROM/RAMデバイスなど、特別に構成されているハードウェアデバイス。プログラムコードの例としては、例えば、コンパイラによって生成されるマシンコード、または、インタープリタを用いて実行できる高水準コード(例えば、スクリプト)を含むファイルが挙げられる。
【0085】
図9に示したコンピュータシステムは、本明細書に開示された様々な実施形態と共に利用するのに適切なコンピュータシステムの一例にすぎない。かかる利用に適した他のコンピュータシステムは、より多いまたは少ないサブシステムを含みうる。さらに、バス914は、サブシステムをつなぐよう機能する任意の相互接続スキームの例である。異なる構成のサブシステムを有する他のコンピュータアーキテクチャが利用されてもよい。
【0086】
図10は、相関要求を見るためのユーザインターフェースの一実施形態を示す図である。図の例において、ユーザインターフェース1000は、データレコードを相関させて共有する要求を再検討するためのユーザインターフェースのユーザインターフェースビューである。図の例において、相関要求は、ユーザ「System Administrator(システム管理者)」によって承認された。ユーザインターフェース1000のVariables(変数)セクションは、クラウドサービスインスタンスのためのアプリケーションインスタンス名に対応するtenant instance name(テナントインスタンス名)など、相関要求の詳細を含む。様々な実施形態において、ユーザインターフェース1000は、アプリケーションインスタンスの相関および共有の機能にアクセスするクライアントに表示される。いくつかの実施形態において、クライアントは、図1のクライアント101であり、アプリケーションインスタンスは、図1のクラウドサービスインスタンス111、121、および、131の内の1つである。
【0087】
図11は、相関要求に関連するターゲットインスタンスを表示するためのユーザインターフェースの一実施形態を示す図である。図の例において、ユーザインターフェース1100は、異なるアプリケーションインスタンスからソースインスタンスへのすべての相関要求(過去および現在の要求を含む)を見るためのユーザインターフェースのユーザインターフェースビューである。図の例において、各相関要求は、「Request ID(要求ID)」に関連付けられており、「Status(状態)」値を含む。表示される「Status(状態)」値は、「Active(アクティブな)」相関要求および「Decommissioned(使用停止された)」相関要求の両方に対応する。相関状態のその他の値も適切である。例えば、いくつかの実施形態において、その状態値は、承認待ちの要求のための「Requested(要求中)」、および、拒否された要求のための「Rejcted(拒否)」に対応しうる。図の例において、アクティブな要求は、相関データレコードへの更新をターゲットインスタンスへアクティブに提供している承認済みの相関要求であり、使用停止された要求は、無効化されて、もはや関連ターゲットインスタンスを更新しない承認済みの要求である。様々な実施形態において、アクティブな相関要求および使用停止された相関要求の両方と、それらに対応する相関構成が、別のターゲットインスタンスへマイグレートされうる。様々な実施形態において、ユーザインターフェース1100は、アプリケーションインスタンスの相関および共有の機能にアクセスするクライアントに表示される。いくつかの実施形態において、クライアントは、図1のクライアント101であり、アプリケーションインスタンスは、図1のクラウドサービスインスタンス111、121、および、131の内の1つである。
【0088】
図12は、相関構成の一部をキャプチャするために用いられる相関インデックスを表示するためのユーザインターフェースの一実施形態を示す図である。図の例において、ユーザインターフェース1200は、相関インデックスの相関エントリを見るためのユーザインターフェースのユーザインターフェースビューであり、ここで、図12の相関インデックスは、データレコードのための相関構成を表示するために用いられる相関インデックスの一実施形態に対応する。図の例において、テーブル内の各エントリは、相関データレコードの方向性相関エントリに対応し、以下のフィールドを含む。すなわち、相関エントリの識別子、相関データレコードの識別子、相関データレコードのテーブルの識別子、ターゲット(すなわち、リモート)インスタンスに格納された対応する相関エントリの識別子、参照(ターゲットインスタンスのホスト名など)、相関エントリの状態、および、相関エントリに関連付けられたドメイン。図示されていないその他のフィールドが存在してもよい。様々な実施形態において、「Active(アクティブ)」状態を有するように示されている相関エントリは、相関データレコードへの更新をターゲットインスタンスへアクティブに提供している承認済みの相関要求に対応する。様々な実施形態において、ユーザインターフェース1200は、アプリケーションインスタンスの相関および共有の機能にアクセスするクライアントに表示される。いくつかの実施形態において、クライアントは、図1のクライアント101であり、アプリケーションインスタンスは、図1のクラウドサービスインスタンス111、121、および、131の内の1つである。
【0089】
図13は、相関データレコードを共有することに関連するキャプチャイベントを構成するためのユーザインターフェースの一実施形態を示す図である。図の例において、ユーザインターフェース1300は、ターゲットインスタンスと共有される相関データレコードについて満たさなければならない要件を構成するためのユーザインターフェースのユーザインターフェースビューである。図の例において、各キャプチャイベントは、「Process Event(処理イベント)」名、State(状態)、および、Order(順序)を有する。様々な実施形態において、処理イベント名は、イベントに対してインバウンドおよびアウトバウンド処理ロジックを割り当てるために用いられ、状態は、イベントを有効化または無効化にするために用いられ、順序は、そのイベントを他のイベントよりも優先するために用いられる。また、各キャプチャイベントは、Trigger(トリガ)部分およびCapture(キャプチャ)部分を有することが示されている。トリガ部分は、ユーザが、テーブル名および複数のフィルタを用いてキャプチャイベントを定義することを可能にする。キャプチャ部分は、ユーザがキャプチャされるべきテーブルのフィールドと、アタッチメントを含めるべきか否かと、を定義することを可能にする。様々な実施形態において、ユーザインターフェース1300は、アプリケーションインスタンスの相関および共有の機能にアクセスするクライアントに表示される。いくつかの実施形態において、クライアントは、図1のクライアント101であり、アプリケーションインスタンスは、図1のクラウドサービスインスタンス111、121、および、131の内の1つである。
【0090】
図14は、相関要求に関連するアウトバウンド処理構成を表示するためのユーザインターフェースの一実施形態を示す図である。図の例において、ユーザインターフェース1400は、キャプチャイベントが検出された時に実行するアウトバウンド処理ロジックを表示および構成するためのユーザインターフェースのユーザインターフェースビューである。例えば、相関データレコードが修正され、修正がキャプチャ要件を満たした時、ターゲットインスタンスと共有するための修正データレコードのバージョンを作成するために、アウトバウンド処理が修正データレコードに実行される。様々な実施形態において、アウトバウンド処理ロジックは、アウトバウンド処理ロジックを相関データレコードのキャプチャイベントに制限することによって構成される。図の例において、アウトバウンド処理構成は、それらに関連するキャプチャイベントに基づいて示されており、各キャプチャイベントは、その処理イベント名、相関に関連するターゲット(すなわち、リモート)インスタンス、構成されているアウトバウンド処理ロジックに割り当てられた名称(「Outbound Subflow(アウトバウンドサブフロー)」とラベルを付されている)、および、ドメインを備えることが示されている。様々な実施形態において、ユーザインターフェース1400は、アプリケーションインスタンスの相関および共有の機能にアクセスするクライアントに表示される。いくつかの実施形態において、クライアントは、図1のクライアント101であり、アプリケーションインスタンスは、図1のクラウドサービスインスタンス111、121、および、131の内の1つである。
【0091】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
【外国語明細書】