(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-16
(45)【発行日】2023-08-24
(54)【発明の名称】依存関係グラフ制御オブジェクトおよび計算パイプラインマイグレーション
(51)【国際特許分類】
G06F 8/60 20180101AFI20230817BHJP
G06F 9/50 20060101ALI20230817BHJP
G06F 3/0481 20220101ALI20230817BHJP
【FI】
G06F8/60
G06F9/50 150Z
G06F3/0481
(21)【出願番号】P 2021521167
(86)(22)【出願日】2019-10-19
(86)【国際出願番号】 IN2019050773
(87)【国際公開番号】W WO2020079711
(87)【国際公開日】2020-04-23
【審査請求日】2022-07-14
(31)【優先権主張番号】201841039626
(32)【優先日】2018-10-19
(33)【優先権主張国・地域又は機関】IN
(32)【優先日】2019-06-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517082065
【氏名又は名称】オラクル・フィナンシャル・サービシーズ・ソフトウェア・リミテッド
【氏名又は名称原語表記】ORACLE FINANCIAL SERVICES SOFTWARE LIMITED
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】バダパンデシワラ,ラジャラム・エヌ
(72)【発明者】
【氏名】ジェイコブ,ジェスナ
(72)【発明者】
【氏名】ジョシー,ロニー
【審査官】▲はま▼中 信行
(56)【参考文献】
【文献】特開2003-015871(JP,A)
【文献】特開平5-108457(JP,A)
【文献】特表2014-504105(JP,A)
【文献】米国特許出願公開第2013/0326481(US,A1)
【文献】特表2013-520749(JP,A)
【文献】特表2015-532991(JP,A)
【文献】特開2000-020487(JP,A)
【文献】特表2007-519110(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/60
G06F 9/46 - 9/54
G06F 3/0481
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実現される方法であって、
状態機械を分析して、(i)前記状態機械のオブジェクトおよび(ii)前記状態機械の前記オブジェクト間の依存関係を判断することと、
前記オブジェクトおよび前記オブジェクト間の前記依存関係を表す依存関係グラフを生成することと、
前記依存関係グラフを表示装置上に表示することとを含み、前記オブジェクトは選択可能なアイコンによって表され、前記方法はさらに、
特定の選択可能なアイコンの選択に応答して、前記選択可能なアイコンによって表されるオブジェクトに対するマイグレーションオプションを提供することを含み、前記マイグレーションオプションは、前記選択可能なアイコンによって表される前記オブジェクトに対する深いコピーまたは浅いコピーのいずれかの間の選択を少なくとも含み、前記方法はさらに、
前記特定の選択可能なアイコンによって表される前記オブジェクトに対する前記マイグレーションオプションの選択を記憶することと、
前記特定の選択可能なアイコンによって表される前記オブジェクトに対する前記マイグレーションオプションの実行に少なくとも部分的に基づいて、前記状態機械をターゲット環境にマイグレートさせることとを含む、コンピュータにより実現される方法。
【請求項2】
前記方法はさらに、
前記ターゲット環境に存在する第2の状態機械を分析して、(i)前記第2の状態機械の第2のオブジェクトおよび(ii)前記第2の状態機械の前記第2のオブジェクト間の第2の依存関係を判断することと、
前記第2のオブジェクトおよび前記第2のオブジェクト間の前記第2の依存関係を表す第2の依存関係グラフを生成することと、
前記依存関係グラフに加えて、前記第2の依存関係グラフを前記表示装置に表示することとを含み、前記第2のオブジェクトは選択可能なアイコンによって表され、前記方法はさらに、
前記特定の選択可能なアイコンの選択に応答して、前記特定の選択可能なアイコンによって表される前記オブジェクトまたは前記第2のオブジェクトの追加の属性を表示することを含む、請求項
1に記載の、コンピュータにより実現される方法。
【請求項3】
前記方法はさらに、
前記状態機械の前記オブジェクトを前記第2の状態機械の前記第2のオブジェクトと比較して、潜在的な重複オブジェクトの1つまたは複数の対を識別することと、
さらに、潜在的な重複オブジェクトの各対のオブジェクトを比較して、その対のオブジェクトの間に差異が存在するかどうかを判断することと、
前記潜在的な重複オブジェクトを表す前記選択可能なアイコンを強調表示で表示して潜在的な重複を示し、潜在的な重複オブジェクトのいずれかの対の間に前記差異が存在する場合、前記潜在的な重複オブジェクトの間に差異があることを示す追加のインジケータとともに、前記潜在的な重複オブジェクトの対を表す前記選択可能なアイコンを表示することとを含む、請求項
2に記載の、コンピュータにより実現される方法。
【請求項4】
前記依存関係グラフは、有向非巡回グラフとして生成される、請求項
1~3のいずれか1項に記載の、コンピュータにより実現される方法。
【請求項5】
メタデータバージョン維持システムにおいて前記状態機械の複数のバージョンを維持することをさらに含む、請求項
1~4のいずれか1項に記載の、コンピュータにより実現される方法。
【請求項6】
請求項1~5のいずれか1項に記載の方法をコンピュータに実行させるための、プログラム。
【請求項7】
請求項6に記載のプログラムを格納したメモリと、
前記プログラムを実行するための1つ以上のプロセッサとを備えた、システム。
【発明の詳細な説明】
【技術分野】
【0001】
優先権主張
本特許出願は、その全体をここに引用により援用する以下の同時係属出願に関連し、それらからの優先権を主張する。
【0002】
A.本特許出願と同じ出願人を指名し、2018年10月19日に提出された、連続番号第201841039626号の「MIGRATION OF OBJECTS AND COMPUTE PIPELINES WITH AUTOMATIC HANDLING OF DEPENDENCIES TO SNAPSHOT AND RESTORE STATE MACHINE」と題されるインド特許出願、および
B.本特許出願と同じ出願人を指名し、2019年6月4日に提出された、連続番号第16430566号の「DEPENDENCY GRAPH-CONTROLLED OBJECT AND COMPUTE PIPELINE MIGRATION」と題される米国非仮特許出願。
【背景技術】
【0003】
背景
分析システムは、システムの「状態」を定義するオブジェクトの複雑なネットワークを有する。オブジェクトは、計算パイプラインを形成するために、特定の順序および所与特定の構成で相互接続され得る。これらの計算パイプラインは、システムがデータ入力から実用的な関数結果を送達することを可能にする。
【0004】
時折、ソースコンピューティングシステムから計算パイプラインまたはオブジェクトをエクスポートし、同じオブジェクトをターゲットコンピューティングシステムにインポートすることが望ましい場合がある。しかし、所与の計算パイプライン内のオブジェクトは、必ずしもその計算パイプラインの一部ではない、分析システム内の他のオブジェクトからの依存関係を有し得る。計算パイプラインの全状態を表すオブジェクトおよび依存関係の潜在的な数は、非常に高い可能性がある。これらのオブジェクト(および分析システムの他のオブジェクトとの)間の依存関係は、必ずしも明白ではなく、複雑な方法で絡み合っている。これらの目的および依存関係は、人間によっては容易に追跡されない。
【0005】
依存関係の複雑な絡み合いにもかかわらず、既存のツールは、ツールがオブジェクトまたはパイプラインに関連付けられる依存関係を自動的に扱う一方で、ユーザがオブジェクトまたはより上位の計算パイプラインの所望の粒度を選択することを可能にしない。既存のツールはまた、オブジェクトのマイグレーションを検証するための視覚的監査および生成された文書化を欠いている。
【0006】
したがって、計算パイプラインに関する状態機械の完全なスナップショットを捕捉し、それを別の環境で複製することは、多くの課題を提示する。現在、選択パイプラインのマイグレーションは、高度な手動プロセスである。現在の転送ツールは、アーカイブダンプのインポートプロセスを通じて復元することができるアーカイブイメージを生成するブラックボックス解決策である。アーカイブダンプのインポートに続いて、復元されたイメージに広範な人的介入があることが多く、有効性についてすべてのオブジェクトをテストし、マイグレートされたパイプラインのエンドツーエンド実行をテストする。エラーのリスクを低減するために、複数のレビューおよび承認プロセスを辿らなければならない。
【0007】
今日、マイグレーションの多くは、ビジネス企業によって維持されるローカルソース環境から、そのビジネス企業または第三者によって維持されるクラウドターゲット環境までである。パイプラインのクラウド展開への移行は、高度の自動化が期待され、バックエンドシステムおよびオブジェクトレポジトリへの限定された人的アクセスによって制約される。複雑なドメイン機能をその多くのオブジェクトおよび依存関係とともに包含する計算パイプラインのマイグレーションは、ターゲット環境が生産使用のために立ち上げられ実行され得る前に、広範囲なテストおよび検証を必要とする、という事実と組み合わされて、従来の手動パイプラインマイグレーションのモデルは、クラウドマイグレーションに対して機能しない。
【発明の概要】
【0008】
概要
一実施形態によれば、コンピュータ実行可能命令を記憶する非一時的なコンピュータ可読媒体が開示される。コンピュータ実行可能命令は、少なくともコンピュータのプロセッサがコンピュータのメモリにアクセスすることによって実行されると、コンピュータに、状態機械を分析させて、(i)状態機械のオブジェクトおよび(ii)状態機械のオブジェクト間の依存関係を判断させる。コンピュータ実行可能命令はまた、オブジェクトおよびオブジェクト間の依存関係を表す依存関係グラフをコンピュータに生成させる。コンピュータ実行可能命令はまた、コンピュータに依存関係グラフを表示装置上に表示させ、オブジェクトは選択可能なアイコンによって表される。コンピュータ実行可能命令はまた、コンピュータに、特定の選択可能なアイコンの選択に応答して、選択可能なアイコンによって表されるオブジェクトに対するマイグレーションオプションを提供させる。ここでのマイグレーションオプションは、選択可能なアイコンによって表されるオブジェクトに対する深いコピーまたは浅いコピーのいずれかの間の選択を少なくとも含む。コンピュータ実行可能命令はまた、コンピュータに、特定の選択可能なアイコンによって表されるオブジェクトに対するマイグレーションオプションの選択を記憶させる。コンピュータ実行可能命令はまた、コンピュータに、特定の選択可能なアイコンによって表されるオブジェクトに対するマイグレーションオプションの実行に少なくとも部分的に基づいて、状態機械のターゲット環境へのマイグレーションを制御させる。
【0009】
別の実施形態によると、コンピュータ実行可能命令を記憶する非一時的なコンピュータ可読媒体はまた、さらに他のコンピュータ実行可能命令を記憶する。さらに他のコンピュータ実行可能命令は、少なくともコンピュータのプロセッサがコンピュータのメモリにアクセスすることによって実行されると、コンピュータに、ターゲット環境に存在する第2の状態機械を分析させて、(i)第2の状態機械の第2のオブジェクトおよび(ii)第2の状態機械の第2のオブジェクト間の第2の依存関係を判断させる。さらに他のコンピュータ実行可能命令はまた、第2のオブジェクトおよび第2のオブジェクト間の第2の依存関係を表す第2の依存関係グラフをコンピュータに生成させる。さらに他のコンピュータ実行可能命令はまた、コンピュータに、依存関係グラフに加えて第2の依存関係グラフを表示装置上に表示させ、第2のオブジェクトは、選択可能なアイコンによって表される。さらに他のコンピュータ実行可能命令はまた、コンピュータに、特定の選択可能なアイコンの選択に応答して、特定の選択可能なアイコンによって表されるオブジェクトまたは第2のオブジェクトの追加の属性を表示させる。
【0010】
別の実施形態によると、コンピュータ実行可能命令を記憶する非一時的なコンピュータ可読媒体はまた、さらに他のコンピュータ実行可能命令を記憶する。さらに他のコンピュータ実行可能命令は、少なくともコンピュータのプロセッサがコンピュータのメモリにアクセスすることによって実行されると、コンピュータに、状態機械のオブジェクトを第2の状態機械の第2のオブジェクトと比較させて、潜在的な重複オブジェクトの1つまたは複数の対を識別させる。さらに他のコンピュータ実行可能命令はまた、コンピュータに、潜在的な重複オブジェクトの各対のオブジェクトをさらに比較させて、その対のオブジェクトの間に差異が存在するかどうか判断させる。さらに他のコンピュータ実行可能命令はまた、コンピュータに、潜在的な重複オブジェクトを表す選択可能なアイコンを強調表示で表示させて、潜在的な重複を示させる。潜在的な重複オブジェクトのいずれかの対の間に差異が存在する場合、さらに他のコンピュータ実行可能命令はまた、潜在的な重複オブジェクトの間に差異があることを示す追加のインジケータとともに、潜在的な重複オブジェクトの対を表す選択可能なアイコンをコンピュータに表示させる。
【0011】
別の実施形態によれば、命令はさらに、コンピュータに、依存関係グラフを有向非巡回グラフとして生成させる。
【0012】
別の実施形態によると、コンピュータ実行可能命令を記憶する非一時的なコンピュータ可読媒体はまた、プロセッサがメモリにアクセスすることによって実行されると、コンピュータに、メタデータバージョン維持システムにおいて状態機械の複数のバージョンを維持させる、さらに他のコンピュータ実行可能命令を記憶する。
【0013】
別の実施形態によれば、コンピューティングデバイスによって実行される、コンピュータにより実現される方法が開示され、コンピューティングデバイスは、メモリからの命令を実行するための少なくとも1つのプロセッサを含む。本方法は、状態機械を分析して、(i)状態機械のオブジェクトおよび(ii)状態機械のオブジェクト間の依存関係を判断するステップを含む。本方法はまた、オブジェクトおよびオブジェクト間の依存関係を表す依存関係グラフを生成するステップを含む。本方法はまた、依存関係グラフを表示装置に表示するステップを含み、オブジェクトは、選択可能なアイコンによって表される。本方法はまた、特定の選択可能なアイコンの選択に応答して、選択可能なアイコンによって表されるオブジェクトのマイグレーションオプションを提供するステップを含む。ここでのマイグレーションオプションは、選択可能なアイコンによって表されるオブジェクトに対する深いコピーまたは浅いコピーのいずれかの間の選択を少なくとも含む。本方法はまた、特定の選択可能なアイコンによって表されるオブジェクトに対するマイグレーションオプションの選択を記憶するステップを含む。本方法はまた、特定の選択可能なアイコンによって表されるオブジェクトに対するマイグレーションオプションの実行に少なくとも部分的に基づいて、状態機械をターゲット環境にマイグレートさせるステップを含む。
【0014】
別の実施形態によれば、コンピュータにより実現される方法は、さらに他のステップを含む。本方法は、ターゲット環境に存在する第2の状態機械を分析して、(i)第2の状態機械の第2のオブジェクトおよび(ii)第2の状態機械の第2のオブジェクト間の第2の依存関係を判断する、さらに他のステップを含む。本方法は、第2のオブジェクトおよび第2のオブジェクト間の第2の依存関係を表す第2の依存関係グラフを生成するさらに他のステップを含む。本方法は、依存関係グラフに加えて第2の依存関係グラフを表示装置に表示するさらに他のステップを含み、第2のオブジェクトは、選択可能なアイコンによって表される。本方法は、特定の選択可能なアイコンの選択に応答して、特定の選択可能なアイコンによって表されるオブジェクトまたは第2のオブジェクトの追加の属性を表示するさらに他のステップを含む。
【0015】
別の実施形態によれば、コンピュータにより実現される方法は、さらに他のステップを含む。本方法は、状態機械のオブジェクトを第2の状態機械の第2のオブジェクトと比較し、潜在的な重複オブジェクトの1つまたは複数の対を識別する、さらに他のステップを含む。本方法は、潜在的な重複オブジェクトの各対のオブジェクトをさらに比較して、その対のオブジェクトの間に差異が存在するかどうかを判断する、さらに他のステップを含む。本方法は、潜在的な重複オブジェクトを表す選択可能なアイコンを強調表示で表示して、潜在的な重複を示す、さらに他のステップを含む。潜在的な重複オブジェクトのいずれかの対の間に差異が存在する場合、本方法は、潜在的な重複オブジェクトの間に差異があることを示す追加のインジケータとともに、潜在的な重複オブジェクトの対を表す選択可能なアイコンを表示する、さらに他のステップを含む。
【0016】
別の実施形態によれば、コンピュータにより実現される方法において、依存関係グラフは、有向非巡回グラフとして生成される。
【0017】
別の実施形態によれば、コンピュータにより実現される方法は、メタデータバージョン維持システムにおいて状態機械の複数のバージョンを維持する、さらに他のステップを含む。
【0018】
別の実施形態によれば、プロセッサと、プロセッサに動作可能に接続されるメモリと、プロセッサおよびメモリに動作可能に接続され、コンピュータ実行可能命令を記憶する非一時的なコンピュータ可読媒体とを備える、状態機械をターゲット環境にマイグレートさせるためのコンピューティングシステムが開示される。コンピュータ実行可能命令は、少なくともプロセッサがメモリにアクセスすることによって実行されると、コンピュータシステムに、状態機械を分析させて、(i)状態機械のオブジェクトおよび(ii)状態機械のオブジェクト間の依存関係を判断させる。コンピュータ実行可能命令はまた、システムに、オブジェクトおよびオブジェクト間の依存関係を表す依存関係グラフを生成させる。コンピュータ実行可能命令はまた、システムに依存関係グラフを表示装置上に表示させ、オブジェクトは選択可能なアイコンによって表される。コンピュータ実行可能命令はまた、システムに、特定の選択可能なアイコンの選択に応答して、選択可能なアイコンによって表されるオブジェクトに対するマイグレーションオプションを提供させる。ここでのマイグレーションオプションは、選択可能なアイコンによって表されるオブジェクトに対する深いコピーまたは浅いコピーのいずれかの間の選択を少なくとも含む。コンピュータ実行可能命令はまた、システムに、特定の選択可能なアイコンによって表されるオブジェクトに対するマイグレーションオプションの選択を記憶させる。コンピュータ実行可能命令はまた、システムに、特定の選択可能なアイコンによって表されるオブジェクトに対するマイグレーションオプションの実行に少なくとも部分的に基づいて、状態機械のターゲット環境へのマイグレーションを制御させる。
【0019】
別の実施形態によると、コンピュータ実行可能命令を記憶するコンピュータシステムの非一時的なコンピュータ可読媒体は、さらに他のコンピュータ実行可能命令も記憶する。さらに他のコンピュータ実行可能命令は、少なくともコンピュータシステムのプロセッサがコンピュータシステムのメモリにアクセスすることによって実行されると、コンピュータシステムに、ターゲット環境に存在する第2の状態機械を分析させて、(i)第2の状態機械の第2のオブジェクトおよび(ii)第2の状態機械の第2のオブジェクト間の第2の依存関係を判断させる。さらに他のコンピュータ実行可能命令はまた、コンピュータシステムに、第2のオブジェクトおよび第2のオブジェクト間の第2の依存関係を表す第2の依存関係グラフを生成させる。さらに他のコンピュータ実行可能命令はまた、コンピュータシステムに、依存関係グラフに加えて第2の依存関係グラフを表示装置上に表示させ、第2のオブジェクトは、選択可能なアイコンによって表される。さらに他のコンピュータ実行可能命令はまた、コンピュータシステムに、特定の選択可能なアイコンの選択に応答して、特定の選択可能なアイコンによって表されるオブジェクトまたは第2のオブジェクトの追加の属性を表示させる。
【0020】
別の実施形態によると、コンピュータ実行可能命令を記憶するコンピュータシステムの非一時的なコンピュータ可読媒体は、さらに他のコンピュータ実行可能命令も記憶する。さらに他のコンピュータ実行可能命令は、少なくともコンピュータシステムのプロセッサがコンピューシステムタのメモリにアクセスすることによって実行されると、コンピュータシステムに、状態機械のオブジェクトを第2の状態機械の第2のオブジェクトと比較させて、潜在的な重複オブジェクトの1つまたは複数の対を識別させる。さらに他のコンピュータ実行可能命令はまた、コンピュータシステムに、潜在的な重複オブジェクトの各対のオブジェクトをさらに比較させ、その対のオブジェクトの間に差異が存在するかどうか判断させる。さらに他のコンピュータ実行可能命令はまた、コンピュータシステムに、潜在的な重複オブジェクトを表す選択可能なアイコンを強調表示で表示させて潜在的な重複を示させ、潜在的な重複オブジェクトのいずれかの対の間に差異が存在する場合、さらに他のコンピュータ実行可能命令はまた、コンピュータシステムに、潜在的な重複オブジェクトの間に差異があることを示す追加のインジケータとともに、潜在的な重複オブジェクトの対を表す選択可能なアイコンを表示させる。
【0021】
別の実施形態によれば、コンピュータシステムにおいて、依存関係グラフは、有向非巡回グラフとして生成される。
【0022】
別の実施形態によると、コンピュータ実行可能命令を記憶するコンピュータシステムの非一時的なコンピュータ可読媒体はまた、さらに他のコンピュータ実行可能命令を記憶し、さらに他のコンピュータ実行可能命令は、プロセッサがメモリにアクセスすることによって実行されると、コンピュータシステムに、メタデータバージョン維持システムにおいて状態機械の複数のバージョンを維持させる。
【0023】
図面の簡単な説明
本明細書に組み込まれ、その一部を構成する添付の図面は、本開示のさまざまなシステム、方法、および他の実施形態を示す。図中の示された要素境界(例えば、ボックス、ボックスのグループ、または他の形状)は、境界の一実施形態を表すことが理解されるであろう。いくつかの実施形態では、1つの要素を複数の要素として実現することができ、または複数の要素を1つの要素として実現することができる。いくつかの実施形態では、別の要素の内部構成要素として示される要素が、外部構成要素として実現されてもよく、逆もまた同様である。さらに、要素は、一定の縮尺で描かれていない場合がある。
【図面の簡単な説明】
【0024】
【
図1】アプリケーション状態機械マイグレーションの一実施形態を示す。
【
図2】依存関係グラフインターフェイスを用いるオブジェクトおよび計算パイプラインのマイグレーションに関連付けられる方法の一実施形態を示す。
【
図3】例示的な状態機械のオブジェクト間の依存関係の依存関係グラフを表示することに関連付けられる、表示装置上での表示に好適なグラフィカルユーザインターフェイスの一実施形態を示す。
【
図4】依存関係グラフ制御オブジェクトおよび計算パイプラインマイグレーションに関連付けられる、より具体的には元環境内のオブジェクトをターゲット環境内のオブジェクトと比較することに関連付けられる、コンピュータにより実現される方法の一実施形態を示す。
【
図4A】元環境内のオブジェクトをターゲット環境内のオブジェクトと比較すること、特に潜在的な重複オブジェクトを識別することに関連付けられる、コンピュータにより実現される方法の一実施形態を示す。
【
図4B】元環境内のオブジェクトをターゲット環境内のオブジェクトと比較すること、特に潜在的な重複オブジェクト間の差異を識別することに関連付けられる、コンピュータにより実現される方法の一実施形態を示す。
【
図5】表示装置上において提示することに対して好適であり、依存関係グラフの元環境ビューを第2の依存関係グラフのターゲット環境ビューとならんで示すことに関連付けられるグラフィカルユーザインターフェイスの一実施形態を示す。
【
図6】表示装置上において提示することに対して好適であり、状態機械を構成するオブジェクトについて依存関係の概要ビューを示すことに関連付けられる、グラフィカルユーザインターフェイスの一実施形態を示す。
【
図7】状態機械スナップショットをキャプチャすることおよびエクスポートに関連付けられる方法の一実施形態を示す。
【
図8】依存関係グラフを通して検証しながら、状態機械をターゲット環境にインポートするかまたは復元することに関連付けられる方法の一実施形態を示す。
【
図9】開示されたシステムおよび/または方法の例で構成された専用コンピューティングシステムの一実施形態を示す。
【
図10】依存関係グラフインターフェイスを用いるオブジェクトおよび計算パイプラインのマイグレーションを含むマルチテナントシステムの一実施形態を示す。
【
図11】本発明の実施形態が実現され得る例示的な動作環境の要素またはコンポーネントを示す図である。
【
図12A】ユーザインターフェイスの要素またはコンポーネントの追加の詳細を示す。
【
図12B】アプリケーションサーバの要素またはコンポーネントの追加の詳細を示す。
【
図12C】データストアの要素またはコンポーネントの追加の詳細を示す。
【発明を実施するための形態】
【0025】
詳細な説明
依存関係グラフ制御オブジェクトおよびコンピュータパイプラインマイグレーションのための、コンピュータにより実現される実現システムならびに方法を本明細書に記載する。一実施形態では、マイグレーションプロセスがより正確かつ効率的になることを支援するためにオブジェクトの依存関係グラフを実現および生成するマイグレーションシステムの特徴を提供するシステムおよび方法が開示される。
【0026】
ここで
図1を参照すると、アプリケーション状態機械マイグレーション100の一実施形態が示されている。さまざまなオブジェクトタイプ110およびいくつかの計算パイプライン115、120、125から構成される分析システムを含む例示的なソース環境105が示されている。ソース環境は、例えば、企業ネットワークのローカル(オンプレミスなど)サーバコンピュータ上で、またはマルチテナント分散コンピューティングプラットフォームなどのクラウドコンピューティングシステムのサーバ上でホスティングされ得る。
【0027】
企業トラッカーセグメント実行115、人口統計セグメント実行120、およびIFRS9予想信用損失実行125は、分析システムの例示的な計算パイプラインである。
【0028】
この例では、さまざまなオブジェクトタイプ110は、挿入ルール、データベース機能、分類ルール、計算ルール、パイプライン実行、データ品質グループ、プロセス、モデル、およびシナリオを含む。計算パイプライン、エンドツーエンドプロセスパイプライン、またはアプリケーション実行など、より上位のエンティティを構成するのに有用な他の計算オブジェクトもまた、オブジェクトタイプに含まれ得る。
【0029】
一実施形態では、さまざまなタイプ110の個々のオブジェクト、および例示的な計算パイプライン115,120,および125などのより上位のエンティティは、ソース環境からのエクスポートのためにアーカイブファイルに含めるために(個々のオブジェクトに含まれるタグ識別子を用いて)タグ付けされ得る。一例では、アーカイブファイルは、Oracle(登録商標)EXP(エクスポート)ツールを用いて作成され、バイナリダンプ「.dmp」ファイル拡張子とともに保存されてもよい。一例では、アーカイブダンプファイルは、アーカイブダンプファイルが作成された時点の包含のためにタグ付けされたオブジェクトの状態(または構成)のスナップショットを表す。
【0030】
一実施形態では、参照符号135に示されるように、アーカイブダンプファイルは、ターゲット環境130にインポートするために直接エクスポートされてもよい。別の実施形態では、参照符号145に示すように、アーカイブダンプファイルは、ビジネス企業に関連付けられたメタデータバージョン維持データベース140にエクスポートおよび格納されてもよい。アーカイブダンプファイルは、参照符号150に示されるように、ターゲット環境130にインポートするためにメタデータバージョン維持データベース140から後で検索して取得されてもよい。一例では、アーカイブファイルがOracle(登録商標)EXPツールを用いて作成されたバイナリダンプである場合、アーカイブファイルは、Oracle(登録商標)IMP(インポート)ツールを用いてターゲット環境130にインポートされてもよい。
【0031】
一実施形態では、ターゲット環境130にインポートした後、オブジェクトタイプ110のうちの1つまたは複数の複製155と、例示的な計算パイプライン115,120,および125のうちの1つまたは複数の複製160,165,および170とが、ターゲット環境に追加される。ここで、このマイグレーションは、複製計算パイプライン160,165,170の作成において、計算パイプライン115,120,125を構成する各オブジェクトの状態を含んでもよい。この例示的なマイグレーションは、すべてのオブジェクトタイプ110および例示的な計算パイプライン115、120、125がターゲット環境130において複製されているのを示すが、オブジェクトのタグ付けに基づいて、マイグレーションに含まれる必要があるすべてのオブジェクト(個々のオブジェクトの粒子までも)よりも少ない。例えば、ターゲット環境130における複製のために、企業トラッカセグメント実行パイプライン115のみが、複製されたトラッカーセグメント実行パイプライン160として含められるかもしれない。
【0032】
一実施形態では、オブジェクトおよび計算パイプラインのマイグレーションを駆動および支援するために、有向非巡回グラフ(DAG)が生成される。有向非巡回グラフは、ソース環境および/またはターゲット環境に存在し得るオブジェクトおよび計算パイプラインについてのオブジェクト依存関係のグラフィカル表示を提供するために、表示装置で表示され得る。有向非巡回グラフはまた、マイグレーションシステムの状態機械のスナップショットおよび復元中にオブジェクト依存関係を自動的に扱うために用いられ得る。
【0033】
DAGが生成され、インターフェイスとして表示されると、DAGは、ユーザが、表示された依存関係に基づいて判断を行い、どのサブセクションをマイグレートするか、および深いコピーまたは浅いコピーを選択することによって、どのようにマイグレートさせるかを選択することを可能にする。
【0034】
従来のシステムは制限され、マイグレーションのためにシステム全体をコピーしダンプすることによってのみ動作していた。本システムは、より効率的なマイグレーションのためにサブシステムの選択を可能にする。有向非巡回グラフは、異なるレベルの粒度で状態機械コンポーネントの選択を可能にする。例えば、有向非巡回グラフによって示されるグラフィカル依存関係は、(オブジェクトを粒子として選択を可能にすることによる)マイグレーション中のアウトサイド・イン・アプローチと(計算パイプラインを粒子として選択することを可能にすることによる)マイグレーション中のインサイド・アウト・アプローチの両方を提供する。システムは、オブジェクトのすべての依存関係を含む有向非巡回グラフを判断し、生成する。この有向非巡回グラフは、企業のための広範な試験および検証努力を必要とせずに環境マイグレーションおよび状態機械再生を支援することができるオブジェクトの部分集合の適所承認および選択に用いられるインターフェイスとして表示することができる。これは、手動介入をほとんどまたはまったく必要としないことによってクラウド展開の自動化を向上させる。
【0035】
上記背景技術で説明したプロセスは、この革新で冗長化される。一実施形態では、本システムおよび方法は、オブジェクト依存関係の視覚的表現を生成する。依存関係の有向非巡回グラフ表現は明白で直観的である。DAGベースのアプローチを用いると、マイグレートされるべき(またはマイグレートされた)計算パイプラインまたはオブジェクトの監査が大幅に簡素化される。パイプラインまたはオブジェクトは、例えば、単純な4眼(2レビューア)プロセスによって、適所で視覚的に監査することができる。パイプラインまたはオブジェクトの状態イメージは、DAGベースの検証を用いて、頂点(オブジェクトを表す)およびリンク(依存関係を表す)ならびにオブジェクトに関連付けられる属性の値を比較することによって検証される。したがって、状態機械スナップショットの生成を支援するために有向非巡回グラフを用いることは、非常に効率的であり、追跡可能であり、実行の準備が整った状態イメージの自動化および迅速な復元を提供する。
【0036】
これは、パイプラインまたはオブジェクトのローカル(例えばオンプレミス)展開およびクラウド展開の両方に利点を提供する。一実施形態では、本システムおよび方法は、複雑な分析システムの複数の環境を管理する際に、複数人月の労力を数時間または数日にまで削減する。これは、特にクラウドベースのマイグレーションおよび展開を伴う、代替的な解決策に勝る重大な差別化要因である。一実施形態では、本システムおよび方法は、自動検証ならびに視覚的監査およびトレースを用いた、分析パイプライン状態機械スナップショット生成および複製または復元を含む。
【0037】
一実施形態では、本明細書で説明するコンピュータにより実現される方法の各ステップは、1つまたは複数のコンピューティングデバイスのプロセッサ(
図9を参照して説明されるプロセッサ910など)によって実行されてもよく、プロセッサは、(i)メモリ(例えば
図9を参照して説明されるメモリ915および/または他のコンピューティングデバイスコンポーネント)にアクセスし、(ii)システムに方法のステップを実行させるロジック(
図9を参照して説明される依存関係グラフ制御オブジェクトおよび計算パイプラインマイグレーションロジック930など)とともに構成されてもよい。ストレージまたは記憶することへの言及は、コンピューティングデバイスのメモリまたはストレージ/ディスク(例えば
図9を参照して説明されるメモリ915、またはコンピューティングデバイス905のストレージ/ディスク935もしくはリモートコンピュータ965)におけるデータ構造としての記憶を示す。
【0038】
一実施形態では、方法の各後続のステップは、前のステップが少なくとも後続のステップが開始するために必要な程度まで実行されたことを示す、受信された信号または検索して取得された格納されたデータの解析に応答して開始する。一般に、受信された信号または検索して取得された格納されたデータは、前のステップの完了を示す。
【0039】
DAG GUIを用いて深いコピーまたは浅いコピーの選択を容易にする
図2は、依存関係グラフ制御オブジェクトおよび計算パイプラインマイグレーションに関連付けられる、コンピュータにより実現される方法200の一実施形態を示す。方法200は、ソース環境105などのソース環境からターゲット環境130などのターゲット環境へオブジェクトまたは計算パイプラインをマイグレートさせるステップを説明する。
【0040】
方法200は、(i)分析システム(例えば、
図10を参照して本明細書で説明する統合された金融分析システム1035に含まれる分析システム)のユーザ(または管理者)が方法200を開始したこと、または(ii)例えば、分析システムにおいて1つまたは複数のオブジェクトのバックアップスナップショットの作成を開始するべく、方法200が、規定された時間または時間間隔で開始されるようにスケジュールされること、を示す信号をネットワーク上で受信すること、またはその旨を示す格納されたデータを解析することなど、さまざまなトリガに基づいて開始されてもよい。いくつかの実施形態では、本方法は、上記のトリガ(ii)に従って周期的スケジュール(毎日、毎週、隔週 、毎月など)で開始される。方法200は、開始ブロック205において、受信された信号または検索して取得された格納されたデータを解析すること、およびその信号または格納されたデータが方法200が開始すべきであることを示すと判断することに応答して開始する。処理は処理ブロック210へ進む。
【0041】
処理ブロック210において、プロセッサは、状態機械を分析して、(i)状態機械のオブジェクトおよび(ii)状態機械のオブジェクト間の依存関係を判断する。プロセッサは、最初に、分析されるべき状態機械を識別する入力を受け付けることによって、そのようにすることができる。入力は、分析システムにおいて利用可能な上位エンティティのメニューからの上位エンティティ(アプリケーション実行、エンドツーエンドプロセスパイプライン、または他の計算パイプラインなど)の選択とすることができる。次いで、プロセッサは、上位エンティティを解析して、含まれるオブジェクトおよびそれらのオブジェクトの依存関係を判断することができる。
【0042】
一実施形態では、分析システムで用いられるオブジェクトは、各オブジェクトを記述するために一様な属性のセットを実施するオブジェクトモデルから構築される。一般に、これらの属性は、(1)オブジェクトが分析システムのどの部分(他のオブジェクトおよび計算パイプラインなど)を用いるか;(2)オブジェクトが分析システムのどの部分で用いられるか;(3)オブジェクトを用いるのに必要な権利または許可;(4)オブジェクトの監査特性;(5)オブジェクトのドメイン関連付け;(6)オブジェクトのバージョン;(7)例えば、計算パイプラインにおける他のオブジェクトへの入力および/または出力接続ならびにオブジェクトの入出力データを含む、オブジェクトを計算パイプラインに包含することから導出される任意の導出される属性セット、の点で各オブジェクトを記述する。一様なメタデータ属性を伴うオブジェクトのこの構成は、メタデータスキーマがグラフベースの関係符号化フォーマットにおいて容易に表現されることを可能にする。
【0043】
例えば、分析システム内の各オブジェクトは、オブジェクトの機能を実行するためのコードおよびデータに加えて、以下のメタデータを含み得る:
・当該オブジェクトが依存する特定のオブジェクトへの参照のベクトル(上記項目1を満たす)。
・当該オブジェクトに依存する特定のオブジェクトへの参照のベクトル(上記項目2を満たす)。
・当該オブジェクトを用いるために必要な許可を定義するデータ構造(上記項目3を満たす)。
・当該オブジェクトの監査プロパティを定義するデータ構造(上記項目4を満たす)。
・当該オブジェクトのドメイン関連付けを定義するデータ構造(上記項目5を満たす)。
・当該オブジェクトに対するバージョン識別子値(上記項目6を満たす)。
・当該オブジェクトを計算パイプラインに包含することから導出されるすべての導出された属性セットを定義するデータ構造(上記の項目7を満たす)。
・(a)特定のエクスポートまたはインポートプロセスにおけるオブジェクトの包含(または非包含)を示すタグ識別子フィールド、および(b)特定のエクスポートまたはインポートプロセスのためのオブジェクトの深いコピーまたは浅いコピーを示すマイグレーションオプションフィールド、を含むデータ構造(これらの特徴については以下でさらに詳細に説明する)。複数のエクスポートおよび/またはインポートプロセスに対応するために、これは、項目(a)および(b)を含むデータ構造のベクトルを含み得る。
【0044】
一実施形態では、状態機械のオブジェクトを判断するために、プロセッサは、状態機械の第1のオブジェクト(計算パイプライン内の第1のオブジェクトなど)から開始して、(i)分析システムに関連付けられたオブジェクトレポジトリからオブジェクトを検索して取得し、(ii)オブジェクトの識別子をリストに付加することによってオブジェクトを記録し、次いで、(iii)状態機械内のオブジェクトのメタデータを解析して、状態機械内における次のオブジェクトへの出力接続を識別する値を検索して取得してもよい。次いで、プロセッサは、あるオブジェクトに対する出力接続値がNULLであるか、そうでなければ状態機械内にさらに他のオブジェクトが存在しないことを示すまで、状態機械のすべてのオブジェクトを通して、この検索取得、記録、および解析プロセスを繰り返してもよい。オブジェクトの識別子のリストは、後の検索取得のために記憶されてもよい。
【0045】
一実施形態では、状態機械のオブジェクト間の依存関係を判断するために、プロセッサは、リスト内の各オブジェクトについて、オブジェクトのメタデータを解析して、もしあれば、(i)当該オブジェクトが依存する特定のオブジェクトへの参照のベクトル、および(ii)当該オブジェクトへの入力接続のための識別子を検索して取得してもよい。参照のベクトルおよびオブジェクトに対する入力接続は、リスト内のオブジェクトの識別子と関連付けられ、後の検索取得のために格納されてもよい。したがって、オブジェクトのすべての依存関係を識別するベクトルに関連付けられる当該オブジェクトの識別子およびオブジェクトへの入力の識別子のリストが形成され、後で検索して取得するために記憶される。(一実施形態では、入力は依存関係を識別するベクトルに含まれ得るので、オブジェクトへの入力の識別子は冗長である)。
【0046】
一実施形態では、依存関係ベクトルおよび入力接続の解析ならびに検索および取得は、上述のリスト作成のさらに他のステップとして行われてもよく、別の実施形態では、依存関係ベクトルおよび入力接続の解析ならびに検索および取得は、リストの作成の後に行われてもよい。
【0047】
このようにしてプロセッサが状態機械を分析して(i)状態機械のオブジェクトおよび(ii)状態機械のオブジェクト間の依存関係を判断すると、処理ブロック210における処理は完了し、処理は処理ブロック215に進む。
【0048】
一実施形態では、本システムおよび方法は、マイグレーション中の状態機械またはシステムからのデータを分析し、上位エンティティ(アプリケーション実行、エンドツーエンドプロセスパイプライン、または他の計算パイプラインなど)を構成するオブジェクトの状態を表すために、有向非巡回グラフなどの依存関係グラフを生成する。処理ブロック215において、プロセッサは、オブジェクトおよびオブジェクト間の依存関係を表す依存関係グラフを生成する。これは、マイグレーションのために利用できるオブジェクト間の依存関係のグラフィカル表現を提供し、マイグレーションのためにオブジェクトのサブセクションの選択(タグ付け)を可能にする。
【0049】
依存関係グラフは、すべての依存関係および入力を識別するベクトルに関連付けられるオブジェクトの識別子のリストから生成され得る。プロセッサは、ストレージからリストを検索して取得する。リストにおいて識別される各オブジェクトについて、プロセッサ(i)は、ノードを形成し、(ii)あるノードが依存関係グラフにおいて既に存在しないベクトルに含まれる各依存関係オブジェクトに対してさらに他のノードを形成し(重複ノードを回避する)、当該ノードと各さらに他のノードとの間に方向性エッジが既に存在しない場合、その方向性エッジを形成し(重複エッジを回避する)、(iii)入力オブジェクトに対して追加のノードが依存関係グラフに既に存在しない場合、その追加のノードを形成し(重複ノードを回避する)、当該ノードと追加のノードとの間に方向性エッジが既に存在しない場合、その方向性エッジを形成する(重複エッジを回避する)。(入力オブジェクトが依存関係のベクトルに既に含まれる一実施形態では、追加ノードを形成する第3のステップは不要である。)エッジの方向は、依存関係の方向を示し、ノードは、さらに他の/追加のノードに依存する。
【0050】
一実施形態では、依存関係グラフのノードおよびエッジの位置は、表示のために、好適なアルゴリズムまたはソフトウェアパッケージによってプロットされ得る。例えば、依存関係グラフは、エッジ交差を最小化するように設計されたアルゴリズムまたはソフトウェアパッケージによってプロットされ得る。別の例では、エッジの方向は、左方向オブジェクトが右方向オブジェクトに依存する以下の規約に従い、依存関係グラフを左から右に横断することは、依存関係の最高数の層を有するオブジェクトから依存関係を有さないオブジェクトに移動する。代替的に、エッジは、方向性を示す矢印を含むことができる。
【0051】
一実施形態では、(i)ノードおよびエッジを形成し、(ii)ノードおよびエッジの位置をプロットすることにより、オブジェクトおよびオブジェクト間の依存関係を表す依存関係グラフが完成する。依存関係グラフは、後の検索のために保存される。
【0052】
一実施形態では、プロセッサは、依存関係グラフを有向非巡回グラフとして生成する。
このようにしてプロセッサがオブジェクトおよびオブジェクト間の依存関係を表す依存関係グラフを生成すると、処理ブロック215における処理は完了し、処理は処理ブロック220に続く。
【0053】
処理ブロック220において、プロセッサは、依存関係グラフを表示装置に表示する。依存関係グラフにおいて、オブジェクトは選択可能なアイコンによって表される。一実施形態では、依存関係グラフは、表示装置上に示され、ユーザ入力を受け入れるようグラフィカルユーザインターフェイスとして用いられ得る。一実施形態では、プロセッサは、ストレージから依存関係グラフを検索して取得する。プロセッサはまた、依存関係グラフのノードに含まれるオブジェクトの種類を表すのに適切な選択可能なアイコンをストレージから取り出す。次いで、プロセッサは、表示装置に、依存関係グラフを、グラフのノードにおいて適切な選択可能なアイコンとともに表示させる信号を生成する。
【0054】
ここで
図3を参照すると、
図3は、例示的な状態機械について、表示装置上の提示に好適であり、オブジェクト310~375間のすべての依存関係の依存関係グラフ305を表示するラフィカルユーザインターフェイス300の一実施形態を示す。依存関係グラフ305は、オブジェクト間の依存関係、共通性、および関係が示されている状態機械の有向非巡回グラフ図である。依存関係グラフ305は、選択されたパイプラインのオブジェクトエコシステム(依存関係グラフにおいてオブジェクト間リンクによって示される)の全状態を表し、依存関係の評価を可能にする。
【0055】
この例では、依存関係グラフ305は、例示的なパイプライン「挙動セグメント実行」に対する分析システムにおけるオブジェクトおよび依存関係のサブセットを示す。このパイプラインは、分析システムにおいてオブジェクトとして存在し、処理ブロック215を参照して論じたように、依存関係グラフ内においてノードを割り当てられる。表示された依存関係グラフ305において、パイプラインは、パイプラインのノードの位置において挙動セグメント実行選択可能アイコン310によって表される。
【0056】
分析システムにおける挙動セグメント実行パイプラインは、プロセスIと、それに続くプロセスIIと、それに続くプロセスIIIとを含む。これらのプロセスの各々は、分析システムにおいてオブジェクトとして存在する。これらのプロセスの各々は、依存関係グラフ内においてノードを割り当てられ、処理ブロック215を参照して論じられるように、エッジによって「挙動セグメント実行」のためのノードに接続される。表示された依存関係グラフ305において、プロセスIは、グラフ内のプロセスIのためのノードの位置でプロセスI選択可能アイコン315によって表され、プロセスIIは、グラフ内のプロセスIIのためのノードの位置でプロセスII選択可能アイコン320によって表され、プロセスIIIは、グラフ内のプロセスIIIのためのノードの位置でプロセスIII選択可能アイコン325によって表される。選択可能アイコン315,320,および325の各々は、挙動セグメント実行選択可能アイコン310にエッジによって接続され、これらの3つのプロセスに対する挙動セグメント実行の依存関係を表す。
【0057】
分析システムでは、プロセスIは、オブジェクトデータ品質チェックAオブジェクト、計算ルールXオブジェクト、データ品質チェックBオブジェクト、および分類ルールZオブジェクトに依存する。処理ブロック215を参照して論じられるように、システム内のこれらのオブジェクトの各々は、依存関係グラフ内においてノードを割り当てられ、エッジによってプロセスIのためのノードに接続される。表示された依存関係グラフ305において、データ品質チェックAは、データ品質チェックAのためのノードの位置でデータ品質チェックA選択可能アイコン330によって表され、計算ルールXは、計算ルールXのためのノードの位置で計算ルールX選択可能アイコン335によって表され、データ品質チェックBは、データ品質チェックBのためのノードの位置でデータ品質チェックB選択可能アイコン340によって表され、分類ルールZは、分類ルールZのためのノードの位置で分類ルールZ選択可能アイコン345によって表される。選択可能アイコン330~354の各々は、エッジによってプロセスI選択可能アイコン315に接続される。
【0058】
同様に、プロセスIIが依存するオブジェクトは、データ品質チェックC選択可能アイコン350、計算ルールX選択可能アイコン355、およびサブプロセスT選択可能アイコン360として表され、プロセスIIIが依存するオブジェクトは、モデルW選択可能アイコン365、計算ルールY選択可能アイコン370、およびデータ品質チェックD選択可能アイコン375として表される。これらのアイコンは、適切なノードに配置され、処理ブロック215を参照して説明されるプロセスに基づいて、適宜、エッジによってプロセスIおよびIIに接続される。
【0059】
再び
図2を参照すると、プロセッサがこのように依存関係グラフを表示装置に表示すると、処理ブロック220における処理は完了し、処理は判断ブロック225に続く。
【0060】
判断ブロック225で、プロセッサは、コンピューティングデバイスへの入力を評価して、オブジェクトを表す任意の選択可能なアイコンが選択されたかどうかを判断する。入力が、オブジェクトを表す選択可能なアイコンの選択を示していない場合(NO)、判断ブロック225における処理は、コンピューティングデバイスへの次の入力に対して繰り返される。入力が、オブジェクトを表す選択可能なアイコンの選択を示す場合(YES)、判断ブロック225における処理は完了し、処理は処理ブロック230に続く。一実施形態では、判断ブロック225において考慮されるユーザ入力は、依存関係グラフに基づくグラフィカルユーザインターフェイスへのユーザ入力である。システム焦点がこのユーザインターフェイスにないとき、ユーザ入力は無視され得る。一実施形態では、入力は、マウスまたはタッチスクリーンなどのカーソル制御装置からのクリックであってよく、カーソルが選択可能なアイコンの上に配置される場合、クリックは選択をもたらし、カーソルが選択可能なアイコンの上に配置されない場合、クリックは選択をもたらさない。一実施形態では、入力は、一連のキーストロークとすることができる。
【0061】
処理ブロック230において、特定の選択可能なアイコンの選択に応答して、プロセッサは、選択可能なアイコンによって表されるオブジェクトのマイグレーションオプションを提供する。提供されるマイグレーションオプションは、選択可能なアイコンによって表されるオブジェクトに対する深いコピーまたは浅いコピーのいずれかの間の選択を少なくとも含む。
【0062】
再び
図3を参照すると、依存関係グラフ305のビューは、すべての依存関係を示し、グラフィカルユーザインターフェイス300が、状態機械の1つまたは複数のオブジェクトのマイグレーションのための深いコピーオプションまたは浅いコピーオプションを選択するためのユーザ入力を受け入れることを可能にする。一実施形態では、プロセッサは、あるオブジェクトを表す選択可能なアイコンが選択された、と判断する。これに応答して、プロセッサは、ストレージからそのオブジェクトに関連付けられるマイグレーションオプションメニューを検索して取得する。マイグレーションオプションメニューは、少なくともオブジェクトの深いコピーおよび浅いコピーのオプションを含む。プロセッサは、グラフィカルユーザインターフェイス300においてマイグレーションオプションメニューをディスプレイに表示させる信号を生成する。例えば、プロセスIII選択可能アイコン325の選択は、表示装置上におけるプロセスIIIマイグレーションオプションメニュー380の提示をもたらす。プロセスIIIのマイグレーションオプションメニュー380は、選択可能な「深いコピー」オプション385および選択可能な「浅いコピー」オプション390を含む。
【0063】
再び
図2を参照して、プロセッサがこのように選択可能なアイコンによって表されるオブジェクトのマイグレーションオプションを提供すると、処理ブロック230における処理は完了し、処理は判断ブロック235に続く。
【0064】
判断ブロック235で、プロセッサは、コンピューティングデバイスへの入力を評価して、マイグレーションオプションが選択されたかどうかを判断する。入力がマイグレーションオプションの選択を示していない場合(NO)、判断ブロック225における処理は、コンピューティングデバイスへの次の入力に対して繰り返される。入力がマイグレーションオプションの選択を示す場合(YES)、判断ブロック235における処理は完了し、処理は処理ブロック240に続く。一実施形態では、判断ブロック235において考慮されるユーザ入力は、依存関係グラフに基づくグラフィカルユーザインターフェイスにおける、処理ブロック230において表示されるメニューからのユーザ選択である。システム焦点がこのユーザインターフェイス上にないとき、ユーザ入力は無視され得る。
【0065】
処理ブロック240で、プロセッサは、特定の選択可能なアイコンによって表されるオブジェクトに対するマイグレーションオプションの選択を記憶する。
【0066】
一実施形態では、プロセッサは、選択されたマイグレーションオプションがオブジェクトの深いコピーまたは浅いコピーを示すかどうかを判断する。次いで、プロセッサは、オブジェクトのメタデータ内のマイグレーションオプションフィールドに、深いコピーまたは浅いコピーを示す値を書き込む。
【0067】
さらに、一実施形態では、オブジェクトまたは計算パイプラインは、アーカイブまたはマイグレーションのためのエクスポートに包含するために「タグ付け」され得る。そのような「タグ付け」は、特定のエクスポートに含まれるべきであることを示す指定を、計算パイプライン内の1つまたは複数のオブジェクトに適用することを含む。一実施形態では、オブジェクトおよびオブジェクトのグループのオブジェクト「タグ付け」および状態機械スナップショット作成は、最高レベルの粒度で行われ得る。例えば、スナップショットは、アプリケーション実行粒子またはエンド・ツー・エンド・プロセスパイプライン粒子において取得されてもよい。これは、依存関係が省略される可能性がないので、使用可能なスナップショットを得るための便利な方法である。このようなスナップショットは、実行準備完了状態機械を形成するために、ターゲット環境内で復元することができる。
【0068】
一実施形態では、オブジェクトに対する深いコピーオプションまたは浅いコピーオプションのいずれかを選択することにより、オブジェクトはエクスポートのためにタグ付けされる。一例では、深いコピーまたは浅いコピーオプションを選択することによってオブジェクトがエクスポートのためにタグ付けされる場合、プロセッサはさらに、オブジェクトのメタデータ内のタグ識別子フィールドに特定のエクスポートセッションを示す値を書き込む。
【0069】
再び
図3を参照すると、一実施形態では、グラフィカルユーザインターフェイス300を用いてエクスポートするためにタグ付けされたオブジェクトは、依存関係グラフ305においてオブジェクトを表す選択可能なアイコンを修正することによって表され得る。例えば、プロセスIII選択可能アイコン325、モデルW選択可能アイコン365、計算ルールY選択可能アイコン370、およびデータ品質チェックD選択可能アイコン375によって示されるように、選択可能なオブジェクトの輪郭は、オブジェクトが深いコピーまたは浅いコピーについて選択される場合、太くされ得る。エクスポートのためのタグ付けを示すための選択可能なアイコンの変更は、オブジェクトのメタデータ内のタグ識別子フィールドに格納された値に基づいてもよい。
【0070】
再び
図2を参照して、プロセッサが、このように、特定の選択可能なアイコンによって表されるオブジェクトに対するマイグレーションオプションの選択を受け入れ記憶すると、処理ブロック240における処理は完了し、処理は処理ブロック245に続く。
【0071】
処理ブロック245において、プロセッサは、特定の選択可能なアイコンによって表されるオブジェクトのマイグレーションオプションの実行に少なくとも部分的に基づいて、状態機械のターゲット環境へのマイグレーションを制御する。
【0072】
一実施形態では、プロセッサは、状態機械内の各オブジェクトを解析して、それがエクスポートのためにタグ付けされているかどうかを判断する(すなわち、オブジェクトのメタデータ内のタグ識別子フィールドにおける、特定のエクスポートセッションを示す値の存在を判断する)。エクスポートのためにタグ付けされる各オブジェクトについて、プロセッサはさらに、オブジェクトを解析して、オブジェクトの深いコピーが指示されるか、または浅いコピーが指示されるかを判断する。次いで、プロセッサは、各タグ付きオブジェクトに対する深いコピーまたは浅いコピーの指示と整合する各タグ付きオブジェクトをエクスポートするよう、エクスポートプロセス(Oracle(登録商標)EXPツールなど)を構成する。
【0073】
オブジェクトの深いコピーは、すべてのその属性が新たな識別子に対する、オブジェクトの完全なインスタンス化である。一実施形態では、元のオブジェクトが依存オブジェクトへの参照(リンク)を有する場合、深いコピーも参照を有することになる。一実施形態では、保持オブジェクトが深くコピーされる場合、依存オブジェクトの深いコピーも行う選択が存在する。例えば、この選択は、ユーザに提示されてもよい。一実施形態では、深いコピーは、元のオブジェクトのパターンに従って、依存オブジェクトの参照またはフルイメージを保持するかどうかを判断する。一実施形態では、オブジェクトの深いコピーは、オブジェクトのエクスポート中に、オブジェクトの実際のターゲットデータをコピーすること、および基礎となるオブジェクトを自動的にバージョン化することを含む。
【0074】
浅いコピーは、オブジェクトのエクスポート中にオブジェクトのターゲットデータへの参照(リンク)だけをコピーすることを含む。浅いコピー動作は、オブジェクトの新たなインスタンスを作成するが、新たなインスタンスの属性については、浅いコピー動作は、元のオブジェクトの属性への参照のみを提供する。これは、元のオブジェクトに対して行われた変更がコピーにも反映されることを意味する。
【0075】
一実施形態では、本システムおよび方法は、自動バージョン化機能を含み得る。自動バージョン化機能は、ターゲットオブジェクトに対する保存、コピー、またはエクスポート動作中に、そのオブジェクトのバージョンを自動的にインクリメントする。一実施形態では、自動バージョン化機能は、バージョン情報を、保存、コピー、またはエクスポートされたオブジェクトのメタデータに書き込む。
【0076】
したがって、依存関係グラフは、依存関係の評価を可能にし、グラフ内で(アイコンによって表される)オブジェクトを選択することによって状態機械スナップショットを生成する際に深いコピーと浅いコピーとの間の選択を駆動する。
【0077】
次いで、プロセッサは、エクスポートプロセスを実行して、エクスポートされた状態機械のためにアーカイブダンプファイルを作成する。プロセッサは、参照番号135について記載されるように、ターゲット環境でインポートプロセスに直接アーカイブダンプファイルを送信することができ、またはプロセッサは、参照番号145について記載されるように、メタデータバージョン維持システムにアーカイブダンプファイルを送信することができる。
【0078】
一実施形態では、本システムおよび方法は、タグ付け機能を含み得る。コンピューティングエコシステム(または分析システムなどの環境)は、経時的に進化または変化し続けることができる。状態機械をタグ付けすることは、エコシステムの特定の状態を記述または識別するタグ識別子(タグID)でエコシステム内のオブジェクトの現在のバージョンをラベル付けすることを指す。各タグは、エコシステム内のすべてのオブジェクトの全状態を指す。タグを適用することにより、エコシステムを、選択されたタグが指す特定の状態に復帰させることができる。エコシステムがタグ付けされる度に、すべてのオブジェクトのその時のバージョンの時点でのそれらオブジェクトが、タグIDでラベル付けされる。これらのタグは、全ての粒度のレベルでオブジェクトに適用され得る。
【0079】
エコシステムにおいてオブジェクトにタグが適用された後でも、エコシステムは進化または変化し続けることができる。オブジェクトまたはエコシステムに対する連続的な更新があり得、エコシステム内の基礎となるオブジェクトの新たなバージョンをもたらす。したがって、一実施形態では、エコシステムを繰り返しタグ付けすることができる。一実施形態では、複数のタグがエコシステムに存在することができるが、典型的には、生産使用のために1つのアクティブなタグ付け状態のみが存在する。
【0080】
一実施形態では、タグIDは、(上述したように)オブジェクトのメタデータに含まれるタグ識別子フィールドに値として格納される。複数のタグが存在し得るさらに他の実施形態では、タグ識別子フィールドは、複数のタグIDを記憶するように構成され、エコシステムにおける複数のタグの使用を可能にする、複数のそのようなフィールドのベクトルまたはリンクされたリストに含まれ得る。
【0081】
エクスポートダンプは、エコシステムにおける任意のタグまたはラベルに基づいて、例えば、タグまたはラベルに一致するタグIDについてオブジェクトのメタデータを解析することによって、作成することができる。このようなエクスポートダンプは、ターゲット環境における時点状態を復元する(タグに基づいて復元する)ために用いることができる。タグ付けは、デフォルトではエクスポートダンプを作成しない。代わりに、エクスポートダンプ作成は、システムの状態を抽出するよう具体的に指示されるアクションである。一実施形態では、そのようなエクスポートは、ターゲット環境において用いるためのシステムの有効な状態を反映するために、ターゲット環境において復元するためのタグまたはラベルに基づいてもよい。
【0082】
このようにプロセッサが状態機械のターゲット環境へのマイグレーションを制御すると、処理ブロック245における処理は完了し、処理は終了ブロック250に続き、処理は完了する。代替的に、処理は接続A255に続き、そこで方法400が開始する。
【0083】
一実施形態では、ターゲット環境がクラウドシステムである場合、プロセッサおよびメモリから、(i)状態機械をホストする元環境、および(ii)ターゲット環境の各々への動作可能な接続がある。例えば、この操作可能な接続は、ネットワークを介したものであってもよい。
【0084】
したがって、一実施形態では、本システムおよび方法は、企業エコシステムのために、企業エコシステムが状態機械スナップショットキャプチャ、オブジェクトのマイグレーションおよびオブジェクトの複製を別の環境において管理することを可能にする、独自の機能およびソリューションを提供し、これは、即時実行のための自動的に検証されたシステムとしてインポートされ得る。例えば、生成されたDAGは、これまでのマイグレーション方法よりも多くの利点、すなわち:視覚的監査;上位および下位オブジェクトの完全なトレース;適所相互使用をレビューする能力;4眼(2人)レビューおよび承認;ならびにDAGを頂点およびリンクにおけるプロパティと比較して、ターゲット環境において復元されたイメージを検証する能力を提供する。したがって、ターゲット環境においてタグ付き状態ダンプを復元することは、システムを、一貫した状態で、実行の準備ができている状態にするよう、保証される。本技術的プロセスは、広範な回帰テストサイクルの必要性を排除する。
【0085】
元環境オブジェクトとターゲット環境オブジェクトとの比較を可能にする
一実施形態では、マイグレートすべき計算パイプラインの依存関係グラフ内の1つまたは複数のオブジェクトは、ターゲット環境内に既に存在する別の計算パイプラインに含まれているかもしれない(例えば、その計算パイプラインがターゲット環境に以前にマイグレートされていたため)。(i)既にターゲット環境内にあるオブジェクトのうちの1つまたは複数を、マイグレートすべき計算パイプラインに使用するか、または(ii)マイグレーションのためにマイグレートすべき状態機械のすべてのオブジェクトにタグ付けし、すべての依存オブジェクトの深いコピーをマイグレートし、タグ識別子を用いてダンプを生成するよう、ユーザに選択を提示してもよい。ユーザが選択を行うのを支援するために、本システムおよび方法は、ユーザが元環境内のオブジェクトを宛先環境内のオブジェクトと比較することを可能にする。
【0086】
図4は、依存関係グラフ制御オブジェクトおよび計算パイプラインマイグレーションに関連付けられる、より具体的には元環境内のオブジェクトをターゲット環境内のオブジェクトと比較することに関連付けられる、コンピュータにより実現される方法400の一実施形態を示す。方法400は、方法200の接続A255から続く。方法400は、(i)分析システム(例えば、
図10を参照して本明細書で説明する統合された金融分析システム1035に含まれる分析システム)のユーザ(または管理者)が方法200を開始し、および状態機械についてターゲット(宛先)環境においてオブジェクトを見たいことを示す信号をネットワーク上で受信すること、またはその旨を示す格納されたデータを解析することなど、さまざまなトリガに基づいて開始されてもよい。方法400は、接続255から処理ブロック405に進む。
【0087】
処理ブロック405において、プロセッサは、ターゲット環境内に存在する第2の状態機械を分析して、(i)第2の状態機械の第2のオブジェクト、および(ii)第2の状態機械の第2のオブジェクト間の第2の依存関係を判断する。第2の状態機械は、上述の
図2の処理ブロック210を参照して説明された態様と同様の態様で分析される。分析は、オブジェクト識別子のリストをもたらし、リスト内の各オブジェクト識別子は、オブジェクト識別子が指すオブジェクトが依存する1つまたは複数の追加オブジェクトに関連付けられる。プロセッサが第2の状態機械を分析すると、処理ブロック405における処理は完了し、処理は処理ブロック410に続く。
【0088】
処理ブロック410において、プロセッサは、第2のオブジェクトおよび第2のオブジェクト間の第2の依存関係を表す第2の依存関係グラフを生成する。第2の依存関係グラフは、上述の
図2の処理ブロック215を参照して説明された態様と同様の態様で生成される。この生成は、第2の状態機械の環境における各独自のオブジェクトに対するノードと、ノードの依存関係を示すノード間のエッジとからなる第2の依存関係グラフをもたらす。一実施形態では、第2の依存関係グラフの位置およびエッジは、処理ブロック215を参照して説明されるように、表示のためにプロットされ得る。プロセッサが第2の依存関係グラフを生成すると、処理ブロック410における処理は完了し、処理は処理ブロック415に続く。
【0089】
処理ブロック415において、プロセッサは、依存関係グラフに加えて第2の依存関係グラフを表示装置に表示する。ここで、第2のオブジェクトは、選択可能なアイコンによって表される。依存関係グラフおよび第2の依存関係グラフの両方は、上述の
図2の処理ブロック220を参照して説明された態様と同様の態様で表示される。一実施形態では、依存関係グラフおよび第2の依存関係グラフは一緒に表示される。例えば、依存関係グラフと第2依存関係グラフとを同時に表示してもよい。例えば、依存関係グラフと第2の依存関係グラフとを並べて表示してもよい。依存関係グラフに加えて第2の依存関係グラフを表示する他の実施形態も考えられる。
【0090】
図5を参照して、
図5は、表示装置上において提示することに対して好適であり、依存関係グラフ305の元環境ビュー505を例示の第2の依存関係グラフ515のターゲット環境ビュー510とならんで示すグラフィカルユーザインターフェイス500の一実施形態を示す。この例では、第2の依存関係グラフ515は、ターゲット環境の分析システムにおいてオブジェクトおよび依存関係のサブセットを示す。第2の依存関係グラフ515のオブジェクトおよび依存関係のサブセットは、例示的なパイプライン「非金融証券化実行」のためのものである。このパイプラインは、ターゲット環境の分析システム内にオブジェクトとして存在し、
図4の処理ブロック410を参照して論じられたように、第2の依存関係グラフ内においてノードが割り当てられる。表示された第2の依存関係グラフ515において、そのパイプラインはそのノードにおいて非金融証券化実行選択可能アイコン520によって表される。
【0091】
非金融証券化実行パイプラインは、プロセスIVを含み、したがって、プロセスIVに依存する。プロセスIVも、ターゲット環境の分析システム内にオブジェクトとして存在し、同様にノードが割り当てられ、そのノードにおいてプロセスIV選択可能アイコン525によって表される。プロセスIVは、ターゲット環境の分析システムにおけるオブジェクトとして各々存在するモデルQ、計算ルールX、およびデータ品質チェックBに依存し、各オブジェクトは、ノードが割り当てられ、そのノードにおいて、モデルQ選択可能アイコン530、計算ルールX選択可能アイコン535、およびデータ品質チェックB選択可能アイコン540によってそれぞれ表される。
【0092】
再び
図4を参照すると、プロセッサが依存関係グラフに加えて第2の依存関係グラフを表示装置に表示すると、処理ブロック415における処理は完了し、処理は判断ブロック420に続く。
【0093】
判断ブロック420で、プロセッサは、コンピューティングデバイスへの入力を評価して、オブジェクトを表す任意の選択可能なアイコンが選択されたかどうかを判断する。入力が、オブジェクトを表す選択可能なアイコンの選択を示していない場合(NO)、判断ブロック420における処理は、コンピューティングデバイスへの次の入力に対して繰り返される。入力が、オブジェクトを表す選択可能なアイコンの選択を示す場合(YES)、判断ブロック420における処理は完了し、処理は処理ブロック425に続く。一実施形態では、選択可能なアイコンを選択する入力は、
図2の判断ブロック225を参照して説明される選択とは異なる形態であってもよい。例えば、判断ブロック225の選択入力が、選択可能なアイコン上でのマウスの左クリック(またはタッチスクリーンのタップ)などのカーソル制御装置の一次入力であり得る場合、処理ブロック425における選択入力は、選択可能なアイコン上でのマウスの右クリックまたは制御クリック(またはタッチスクリーンのタッチアンドホールド)などのカーソル制御装置の二次入力とすることができる。
【0094】
処理ブロック425において、特定の選択可能なアイコンの選択に応答して、プロセッサは、特定の選択可能なアイコンによって表されるオブジェクトまたは第2のオブジェクトの追加の属性を表示する。一実施形態では、プロセッサは、オブジェクトを表す選択可能なアイコンが選択されたと判断する。これに応答して、プロセッサは、ストレージから属性メニューを検索して取得する。次いで、プロセッサは、オブジェクトを解析して、属性メニュー上に表示されるべきオブジェクトの属性を識別する。次いで、プロセッサは、グラフィカルユーザインターフェイスにおいて属性メニューをディスプレイに表示させる信号を生成する。
【0095】
再び
図5を参照すると、(例えば、マウス右クリックなどのカーソル制御装置の二次入力による)元環境のデータ品質チェックB選択可能アイコン340のユーザ選択は、そのオブジェクトに関連付けられた属性メニュー545を出現させる。属性メニュー545は、第1属性550および第2属性555などのデータ品質チェックBオブジェクトの属性を示す。属性メニュー545は、属性を他のオブジェクトの属性と比較することができるように、ユーザ入力(例えば、属性メニュー545の右上隅の「x」を選択すること)によって肯定的に閉じられるまで、開いたままとすることができる。例えば、第2の属性メニュー560が、ターゲット環境のデータ品質チェックB選択可能アイコン540のために開かれてもよく、ユーザは、属性を比較してもよい。例えば、第1の属性565は、第1の属性550と比較することができ、第2の属性570は、第2の属性555と比較することができる。
【0096】
一実施形態では、属性メニュー(例えば、メニュー545および560)へのアクセスは、宛先環境のオブジェクトが第2の依存関係グラフに示されているかどうかに関わらず、任意のオブジェクト(
図3を参照して示されるものなど)に対するカーソル制御装置の二次入力に応答して提供されてもよい。
【0097】
再び
図4を参照して、プロセッサが、このように、特定の選択可能なアイコンによって表されるオブジェクトまたは第2のオブジェクトの追加の属性を表示すると、処理ブロック425における処理は完了し、処理は終了ブロック430に続き、処理は完了する。
【0098】
代替的に、処理ブロック415の完了後、処理は接続B435に続き、そこで方法440が開始する。
【0099】
図4Aは、元環境内のオブジェクトをターゲット環境内のオブジェクトと比較すること、特に潜在的な重複オブジェクトを識別することに関連付けられる、コンピュータにより実現される方法440の一実施形態を示す。方法440は、方法400の接続B435から続く。方法440は、さまざまなトリガ、例えば、
図4を参照して説明される処理ブロック415における処理が完了した旨を示す信号をネットワークを介して受信すること、またはその旨を示す格納されたデータを解析することに応答して開始され得る。方法440は、接続B435から処理ブロック445に進む。
【0100】
処理ブロック445において、プロセッサは、状態機械のオブジェクトを第2の状態機械の第2のオブジェクトと比較して、潜在的な重複オブジェクトを識別する。一実施形態では、状態機械の各オブジェクトについて、および第2の状態機械の各第2のオブジェクトについて、プロセッサは、オブジェクトまたは第2のオブジェクトを解析して、オブジェクトまたは第2のオブジェクトの1つもしくは複数の属性を識別する。次いで、プロセッサは、各オブジェクトの属性を各第2のオブジェクトの属性と比較して、マッチを識別する。次いで、プロセッサは、マッチとして識別された対の各オブジェクトおよび第2のオブジェクトに、メタデータにおいて、その対が潜在的な重複であると示すラベルを適用する。別の実施形態では、プロセッサは、各オブジェクトの名前のみを各第2のオブジェクトの名前と比較し、名前を共有する対を潜在的な重複として識別する。
【0101】
一実施形態では、各オブジェクトは、
図2の処理ブロック210を参照して説明される一様なメタデータ属性などの属性の共通セットを有する。ここで、状態機械のオブジェクトと第2のターゲット状態機械の第2のオブジェクトとの比較は、オブジェクトと第2のオブジェクトとの間の共通属性のうちの1つまたは複数の値の比較を含むことができる。
【0102】
このようにしてプロセッサが状態機械のオブジェクトを第2の状態機械の第2のオブジェクトと比較して、潜在的な重複オブジェクトを識別すると、処理ブロック445における処理は完了し、処理は処理ブロック450に続く。
【0103】
処理ブロック450で、プロセッサは、潜在的な重複オブジェクトを表す選択可能なアイコンを強調表示で表示して、潜在的な重複を示す。一実施形態では、プロセッサは、オブジェクトおよび第2のオブジェクトを解析して、メタデータにおいて潜在的な重複としてラベル付けされた各対を識別する。次いで、プロセッサは、ディスプレイに、潜在的な重複の対を表す選択可能なアイコンを強調表示で表示させる信号を生成する。潜在的な重複の対が複数存在する場合、選択可能なアイコンの各対は、異なる強調表示で示されてもよい。例えば、各対は、独自の色で強調表示されてもよい。
【0104】
再び
図5を参照して、(i)元環境における計算ルールX選択可能アイコン335およびターゲット環境における計算ルールX選択可能アイコン535、ならびに(ii)元環境におけるデータ品質チェックB選択可能アイコン340およびターゲット環境におけるデータ品質チェックB選択可能アイコン540は、各々、潜在的な重複として識別されている。計算ルールX選択可能アイコン335および計算ルールX選択可能アイコン535の対は、第1のタイプの強調表示575で表示される。データ品質チェックB選択可能アイコン340およびデータ品質チェックB選択可能アイコン540の対は、別の第2のタイプの強調表示580で表示される。
【0105】
再び
図4Aを参照して、プロセッサが、潜在的な重複オブジェクトを表す選択可能なアイコンを強調表示で表示して潜在的な重複を示すと、処理ブロック450における処理は完了し、処理は終了ブロック430に続き、処理は完了する。代替的に、処理は接続C455に続き、そこで方法460が開始してもよい。
【0106】
さらに、一実施形態では、重複識別および強調表示機能は、スナップショットをキャプチャするよう、および/または状態機械のエクスポートダンプもしくはタグ付けを作成するよう準備する際に、既に別のタグ付けされたダンプまたはエクスポートされた状態機械の一部である任意のオブジェクトが、ディスプレイにおいて強調表示で可視化され得るように、適用され得る。これにより、ユーザは、タグ付けまたはエクスポートされるべき状態機械に対する依存オブジェクトの除外またはバージョン更新を選択できる。
【0107】
さらに、重複識別および強調表示機能は、共通の下位(粒子)オブジェクトについて別個のアーカイブダンプを生成し、一方、プロセスフローを記述する上位(粒子)パイプラインは、それらが依存する下位オブジェクトを参照して別個のスナップショットにおいてダンプすることができる、などの最適化を容易にすることができる。
【0108】
図4Bは、元環境内のオブジェクトをターゲット環境内のオブジェクトと比較すること、特に潜在的な重複オブジェクト間の差異を識別することに関連付けられる、コンピュータにより実現される方法の実施形態を示す。
【0109】
方法460は、方法440の接続C455から続く。方法440は、さまざまなトリガ、例えば、
図4Aを参照して説明される処理ブロック450における処理が完了した旨を示す信号をネットワークを介して受信すること、またはその旨を示す格納されたデータを解析することに応答して開始され得る。方法460は、接続C435から処理ブロック465に進む。
【0110】
処理ブロック465において、プロセッサはさらに、潜在的な重複オブジェクトとして識別されたオブジェクトと第2のオブジェクトとの対を比較し、それらの間の差異を判断する。一実施形態では、プロセッサは、オブジェクトおよび第2のオブジェクトの各々を解析して、すべての属性を識別する。次いで、プロセッサは、オブジェクトの属性値を第2のオブジェクトの属性値と比較する。属性値のいずれかがオブジェクトと第2のオブジェクトとの間で異なる場合、プロセッサは、オブジェクトと第2のオブジェクトに対して、それらの間に差異があることを示すラベルを、メタデータにおいて適用する。一実施形態では、元環境とターゲット環境との間で必ず異なる属性(例えば、メモリまたはストレージ内の場所)など、いくつかの属性タイプを比較から除外してもよい。
【0111】
プロセッサがオブジェクトと第2のオブジェクトとの対をさらに比較すると、処理ブロック465における処理は完了し、処理は処理ブロック470に続く。
【0112】
処理ブロック470において、プロセッサは、潜在的な重複オブジェクトを表す選択可能なアイコンを、潜在的な重複オブジェクトの間に差異があることを示す追加のインジケータとともに、表示する。一実施形態では、プロセッサは、潜在的な重複オブジェクトを解析して、メタデータにおいて異なるものとしてラベル付けされた各対を識別する。次いで、プロセッサは、ストレージから対の差異を示すインジケータ(アイコンなど)を検索して取得する。次いで、プロセッサは、差異を伴う潜在的な重複の対を表す選択可能なアイコンに関連付けられたインジケータをディスプレイに表示させる信号を生成する。このようにして、プロセッサは、潜在的な重複オブジェクト間の重要な差異であり得るものにユーザの注意を喚起するように動作する。
【0113】
図5では、インジケータの一例が警告アイコン585によって示されている。警告アイコン585は、少なくとも、元環境におけるデータ品質チェックBオブジェクトの第2の属性555がターゲット環境におけるオブジェクトデータ品質チェックBの第2の属性570と異なることに起因して、対のデータ品質チェックB選択可能アイコン340およびデータ品質チェックB選択可能アイコン540の各々と関連付けられて示されている。
【0114】
これは、視覚的表現で表示される依存オブジェクトに対するデータ変化のインパクト分析の一例を提供する。ここで、インパクト分析は、ターゲット環境におけるオブジェクト(
図5の非金融証券化実行に属するデータ品質チェックB)の元環境における状態機械(
図2の挙動実行)に対する依存関係および利用可能性のものである。ここで、警告アイコン585は、ターゲット環境におけるデータ品質チェックBオブジェクトが、元環境におけるデータ品質チェックBオブジェクトに対して変化した可能性があることを示す。この変化により、依存関係グラフは、浅いコピー(マイグレーションについてターゲットリンクをコピーするだけ)は、誤ったデータをマイグレートしてしまう可能性があるため好ましくないことを示している。したがって、深いコピー操作を選択し、それを用いて、マイグレーションのために(修正されたデータをコピーするであろう)データ全体をコピーおよびダンプするべきである。これらのマイグレーションオプション(深いコピーまたは浅いコピー)は、
図2の処理ブロック245を参照してより詳細に論じられるように、選択されたオブジェクトまたはパイプラインのための選択のために表示および利用可能にされる。
【0115】
そのようなインパクト分析は、別個の保守グループまたは権利の下で、共通オブジェクトのグループ化、フォルダ化、および/またはセグメント化をさらに促進することができる。インパクト分析は、そうでなければ見逃されたかもしれない依存関係の発見につながり得る。これは、データ変化の影響を受ける上位アプリケーションオブジェクトを明らかにすることを含む。次いで、保守の観点から、そのような影響をうけたオブジェクトを特定のユーザ、ユーザグループ、または管理者にレビューするよう割り当てることが可能である。一実施形態では、影響をうけたオブジェクトは、より容易な識別およびレビューのためのグループへの割り当てのためにフォルダまたはセグメントにグループ化され得る(これらのオブジェクトに対するアクションのために「エンタイトルメント(entitlements)」とも称される)。一実施形態では、システムは、オブジェクトを自動的にフォルダまたはセグメントにグループ化することができる。一実施形態では、システムはさらに、フォルダ化されたオブジェクトまたはセグメント化されたオブジェクトをレビューグループに割り当てることができる。
【0116】
再び
図4Bを参照して、プロセッサが、選択可能なアイコンを、潜在的な重複オブジェクト間の差異の追加インジケータとともに表示すると、処理ブロック470における処理は完了し、処理は終了ブロック430に続き、処理は完了する。
【0117】
選択されたオブジェクトまたは利用可能なオブジェクトの概要ビュー
図6は、表示装置上において提示することに対して好適であり、状態機械を構成するオブジェクトについて依存関係の概要ビューを示すことに関連付けられる、グラフィカルユーザインターフェイス600の一実施形態を示す。このビューは、エクスポートまたはインポートのためにオブジェクトを構成するための追加のインターフェイスを提供する。行605~635の各々は、オブジェクト名列640において名付けられたオブジェクトなど、一実施形態ではエクスポートのために元環境で利用可能であり別の実施形態ではアーカイブダンプファイルに含まれインポートのために利用可能であるオブジェクトに関連付けられる。フォルダ列645には、他のオブジェクトが依存する各オブジェクトの位置を含むフォルダが示されている。依存関係包含列は、別のオブジェクトが依存する各オブジェクトに対するチェックボックス650を含み、オブジェクトをエクスポートまたはインポートに含めるか否かをユーザが選択できるようにする。依存関係包含列はまた、選択時にシステムにオブジェクトのさらに他の依存関係を表示させるリンクアイコン655も含む。追加パラメータ列は、選択時にシステムにオブジェクトの追加パラメータを表示させるリンクアイコン660を含む。最後の行665は、チェックボックス650ならびにリンクアイコン655および660に関して記載される機能を行610、620~630に列挙されたすべての依存関係オブジェクト(およびエイリアス行635の下の拡張されていない行に列挙される任意の依存関係オブジェクト)に適用するインターフェイス要素を含む。グラフィカルユーザインターフェイス600がエクスポートのために元環境から選択されたオブジェクトを示すために用いられているとき、インターフェイスヘッダ670は「選択されたオブジェクト」と読めることに留意されたい。また、グラフィカルユーザインターフェイス600がインポートのためにアーカイブダンプファイルに含まれるものを示すために用いられているとき、インターフェイスヘッダ670は、「利用可能なオブジェクト」と読めることに留意されたい。
【0118】
選択されたマイグレーションプロセス実施形態
一実施形態では、状態機械を元環境からターゲット環境へマイグレートさせるためのプロセスは、プロセッサが、(i)状態機械のためにアーカイブダンプファイルを自動的に生成すること;(ii)アーカイブダンプファイルのメタデータにバージョンおよびタイムスタンプを自動的に適用すること;ならびに/または(iii)アーカイブダンプファイルをターゲット環境に自動的にインポートすることを含んでもよい。
【0119】
一実施形態では、プロセッサは、状態機械の複数のバージョンを、例えばメタデータバージョン維持システムにおいて維持することができる。
【0120】
一実施形態では、ターゲット環境は、状態機械の、異なるバージョンを含んでもよい。例えば、元環境における状態機械は、状態機械の前の構成であってもよく、ターゲット環境は、状態機械の後の構成を含む。ここで、状態機械のターゲット環境へのマイグレーションは、ターゲット環境における状態機械の少なくとも一部分を前の構成に戻す。
【0121】
図7は、状態機械スナップショットのキャプチャおよびエクスポートのための方法700の一実施形態を示す。一実施形態では、方法700は、状態機械スナップショット生成プロセスの一例を提供し、(i)依存関係評価、および(ii)状態機械環境におけるオブジェクトの深い/浅いコピー評価が、依存関係グラフインターフェイスによって駆動される。この例では、バージョン化は、スナップショットおよび含まれるオブジェクトに自動的に適用される。さらに、この例では、エクスポートダンプの生成は自動的に生ずる。
【0122】
方法700は、(i)分析システムのユーザ(または管理者)が方法700を開始したこと、または(ii)例えば、分析システムにおいて1つまたは複数のオブジェクトのバックアップスナップショットの作成を開始するべく、方法700が、規定された時間または時間間隔で開始されるようにスケジュールされること、を示す信号をネットワーク上で受信すること、またはその旨を示す格納されたデータを解析することなど、さまざまなトリガに基づいて開始されてもよい。いくつかの実施形態では、本方法は、上記トリガ(ii)に従って周期的なスケジュールで開始される。方法700は、開始ブロック705において、受信された信号または検索して取得された格納されたデータを解析すること、およびその信号または格納されたデータが方法700が開始すべきであることを示すと判断することに応答して開始する。処理はブロック710へ進む。
【0123】
処理ブロック710において、プロセッサは、移行ルールセットを、元環境からの状態機械のエクスポートに用いられるルールセットとして定義する。次いで、処理ブロック710の処理は完了し、処理は入力/出力(I/O)ブロック715に続く。
【0124】
I/Oブロック715で、プロセッサは、エクスポートのためにマイグレーションコードを提供するようにユーザに促す。一実施形態では、ユーザは、プロセッサに命令して、ストレージ内のある場所からOracle(登録商標)EXP(エクスポート)ツールを検索して取得してもよい。その場合、プロセッサは、EXPツールのためのコードをマイグレーションコードとして用いることになる。次いで、I/Oブロック715における処理が完了し、処理はI/Oブロック720に続く。
【0125】
I/Oブロック720において、プロセッサは、マイグレーションコードによって生成されることになるアーカイブファイルのためにアーカイブファイル名を提供するようにユーザに促す。プロセッサは、ユーザのテキスト入力を受信し、それをアーカイブファイル名に対する任意の制約に対して評価し、ユーザのテキスト入力が満足のいくアーカイブファイル名である場合、プロセッサは、そのテキスト入力を、後でそのアーカイブファイルを生成する際に取得および使用するために、記憶する。I/Oブロック720における処理はその後完了し、処理は処理ブロック725に続く。
【0126】
処理ブロック725において、プロセッサは、元環境からアーカイブまたはエクスポートされるべき状態機械のオブジェクトを収集する。プロセッサは、選択されたオブジェクトグラフィカルユーザインターフェイス(GUI)730、例えば、
図6を参照して説明されるGUI600と同様のGUIを実現する。プロセッサはまた、依存関係閲覧GUI735、例えば、
図2および
図3を参照して説明されるGUI300に類似するGUIを実現する。GUI730および735を通じて、プロセッサは、本明細書の他の箇所で説明されるように、(i)元環境に存在するオブジェクトおよびより上位のエンティティに関する情報をユーザに表示し、(ii)アーカイブファイルに含まれるべきオブジェクトを選択し構成する情報をユーザから受信する。ユーザがオブジェクトの選択および構成を完了すると、ユーザはプロセッサへの入力によってこの完了を示すことができる。次いで、処理ブロック725における処理は完了し、処理は処理ブロック740に続く。
【0127】
処理ブロック740において、プロセッサは、アーカイブダンプファイルを生成する。プロセッサは、ストレージからマイグレーションコードおよびアーカイブファイル名を検索して取得する。プロセッサは、選択され構成されたオブジェクトおよびアーカイブファイル名に対してマイグレーションコードを実行する。マイグレーションコードの実行の結果、アーカイブファイル名で名付けられたアーカイブダンプファイルが生成される。次いで、処理ブロック740における処理は完了し、処理は記憶ブロック745に続く。
【0128】
記憶ブロック745で、プロセッサは、アーカイブをデータ構造としてストレージに記憶する。アーカイブは、バイナリメタデータレポジトリファイル(例えば、Oracle(登録商標).dmpファイル)、アーカイブのコンマ分離値表現(.csv ファイル)、またはエクスポートアクティビティの何らかの他の構成として格納されてもよい。
【0129】
一実施形態では、アーカイブの格納に続いて、プロセスは、処理ブロック750に進み、プロセッサは、メタデータバージョン化プロセスを起動し、実行する。一実施形態では、プロセッサは、システム内の各オブジェクトに対してバージョンを判断し、それをオブジェクトに適用する。一実施形態では、プロセッサは、バージョンを、例えば、上述のオブジェクトに対するバージョン識別子値として、オブジェクトのメタデータに記憶する。一実施形態では、メタデータバージョン化プロセスは、上述の自動バージョン化機能を含む。
【0130】
一実施形態では、アーカイブの格納に続いて、プロセスは、処理ブロック755に進み、プロセッサは、メタデータマイグレーションおよび/またはプロモーションプロセスを起動し、実行する。一実施形態では、メタデータのマイグレーションまたはプロモーションは、ある環境から別の環境へオブジェクトを移動させる行為である。ここで、オブジェクトが選択される環境は「ソース」であり、オブジェクトを移動させる環境または設置は「ターゲット」である。オブジェクト(メタデータ)のマイグレーションは、依存が変化を経るか否かに基づいて、依存オブジェクトを同様に移動させてもよい。
【0131】
なお、この例では、環境内のオブジェクトは、バージョン化ならびにマイグレーションおよびプロモーション機能に関してメタデータと呼ばれ得、なぜならば、分析システム内のオブジェクトはビジネスロジック抽象化であり、「オブジェクト」および「メタデータ」という用語はある程度互換的に用いることができるからである。「オブジェクト」は、あるレベルの粒度でのビジネスロジック抽象化を指す。したがって、オブジェクトは、アプリケーションエコシステムに関してメタデータであり、したがって、用語「オブジェクト」および「メタデータ」の合流である。
【0132】
このようにプロセッサがアーカイブファイルを記憶すると、記憶ブロック745における処理は完了し、処理は終了ブロック760に続き、そこで処理は終了する。アーカイブされた状態機械は、ターゲット環境にインポートされる準備が整っている。
【0133】
図8は、依存関係グラフを通して検証しながら、状態機械をターゲット環境にインポートまたは復元するための方法800の一実施形態を示す。
【0134】
方法800は、(i)分析システムのユーザ(または管理者)が方法800を開始したこと、または(ii)例えば、分析システムにおいて1つまたは複数のオブジェクトに対する更新を開始するべく、方法800が、規定された時間または時間間隔で開始されるようにスケジュールされること、を示す信号をネットワーク上で受信すること、またはその旨を示す格納されたデータを解析することなど、さまざまなトリガに基づいて開始されてもよい。いくつかの実施形態では、本方法は、上記トリガ(ii)に従って周期的なスケジュールで開始される。方法800は、開始ブロック805において、受信された信号または検索して取得された格納されたデータを解析すること、およびその信号または格納されたデータが方法800が開始すべきであることを示すと判断することに応答して開始する。処理はブロック810へ進む。
【0135】
処理ブロック810において、プロセッサは、マイグレーションルールセットを、状態機械のターゲット環境へのインポートに用いられるルールセットとして定義する。処理ブロック810における処理は完了し、処理は入力/出力(I/O)ブロック815に続く。
【0136】
I/Oブロック815で、プロセッサは、インポートのためのマイグレーションコードを提供するようにユーザに促す。一実施形態では、ユーザは、プロセッサに命令して、ストレージ内のある場所からOracle(登録商標)IMP(インポート)ツールを検索して取得してもよい。その場合、プロセッサは、IMPツールのためのコードをマイグレーションコードとして用いることになる。I/Oブロック815での処理は完了し、処理はI/Oブロック820に進む。
【0137】
I/Oブロック820において、プロセッサは、オブジェクトがターゲット環境にインポートされるソースアーカイブファイルのためにアーカイブファイル名を提供するようユーザに促す。プロセッサは、ユーザの入力を受け付け、入力に基づいてストレージからアーカイブファイルを検索して取得する。I/Oブロック820での処理は完了し、処理は処理ブロック825に進む。
【0138】
処理ブロック825で、プロセッサは、ターゲット環境に復元またはインポートされるべきアーカイブファイル内のアーカイブされた状態機械からオブジェクトを収集する。プロセッサは、利用可能オブジェクトGUI830、例えば、
図6を参照して説明したGUI600と同様のGUIを実現する。プロセッサはまた、依存関係閲覧GUI835、例えば、
図4、
図4A、
図4B、および
図5を参照して説明したGUI500に類似したGUIを実現する。GUI830および835を通して、プロセッサは、本明細書の他の箇所で説明されるように、(i)アーカイブファイル内で利用可能なオブジェクトおよびより上位のエンティティに関する情報をユーザに表示し、ならびに(ii)アーカイブファイルからターゲット環境にインポートされるべきオブジェクトを選択して構成する情報をユーザから受信する。ユーザがオブジェクトの選択および構成を完了すると、ユーザはプロセッサへの入力によってこの完了を示すことができる。処理ブロック825の処理は完了し、処理は処理ブロック840に進む。
【0139】
処理ブロック840において、プロセッサは、オブジェクトをアーカイブファイルからターゲット環境にインポートする。プロセッサは、ストレージからマイグレーションコードを検索して取得する。プロセッサは、選択され構成されたオブジェクトに対してマイグレーションコードを実行する。マイグレーションコードの実行は、選択され構成されたオブジェクトをターゲット環境に転送する結果となる。
【0140】
インポートの過程で、プロセッサは、I/Oブロック845に示されるように、1つまたは複数のオブジェクトの依存関係をターゲット環境へのインポートから除外するかどうかを判断するようにユーザに促してもよい。プロセッサはまた、I/Oブロック850に示すように、すべてのオブジェクトをアーカイブファイルからターゲット環境にインポートすべきかどうかを判断するようにユーザに促してもよい。プロセッサはまた、I/Oブロック855に示されるように、ターゲット環境内に存在する1つまたは複数のオブジェクトを、アーカイブファイルからのオブジェクトのバージョンで上書きするかどうかを判断するようにユーザに促してもよい。
【0141】
処理ブロック840での処理は完了し、処理は終了ブロック860に続き、そこで処理は終了する。状態機械は、今や、ターゲット環境における検証および実行に対する準備が整っている。
【0142】
選択された追加の実施形態
一実施形態では、少なくとも1つのプロセッサを含むコンピューティングデバイスによって実行される、コンピュータにより実現される方法は、上述のように実現される。この方法は、ターゲット状態機械を分析し、ターゲット状態機械のオブジェクト間の依存関係を判断することと;オブジェクト間の依存関係を表す依存関係グラフを生成し、依存関係グラフを表示装置上に表示することとを含み、オブジェクトは選択可能なオブジェクトとして生成され、この方法はさらに;マイグレーションオプションを、少なくとも選択されたオブジェクトの依存関係に基づいて、選択されたオブジェクトまたはパイプラインに対する深いコピーまたは浅いコピーのいずれかの間の選択として、提供することと;選択されたオプションに対してマイグレーションオプションを実行することとを含む。一実施形態では、依存関係は、ターゲットインスタンス(状態機械)に対して記憶および定義されるメタデータまたは他の構成データから判断され得る。
【0143】
本システムおよび方法のさらに他の利点
1つまたは複数の実施形態において、本システムおよび方法は、以下の特徴の1つまたは複数の組み合わせを可能にする:(1)環境の迅速なクローニング;ソース環境の複数のタグ付けられた状態を維持すること;(2)状態機械のキャプチャおよび視覚的監査での復元、自動的な依存関係処理、自動生成された文書化、および適所レビュー/承認;(3)より早い期間に対して、または処理エンティティの異なる構造に対して再処理するために、高価な再処理または手作業を伴わなわずに、以前の構成にバージョンを戻すこと、たとえば、ターゲット環境は、状態機械の、異なるバージョンを含み得る;(4)例えば、監査/承認される有効な状態機械の組を維持すること-たとえば、状態機械のこれらの複数のバージョンは、例えば、メタデータバージョン維持システムにおいて維持することができる。さらに、クラウドコンピューティング環境において、本システムおよび方法は、環境の自動化および維持;ならびに複数のユーザ、複数のテナント、および/または複数のビジネスエンティティにわたるインスタンスの管理を提供する。
【0144】
特殊目的コンピューティングデバイス実施形態
図9は、本明細書で説明されるシステムおよび方法例、および/もしくは等価物のうちの1つまたは複数を用いて構成ならびに/またはプログラムされるコンピューティングデバイス例を示す。例示的なコンピューティングデバイスは、バス925によって動作可能に接続される、プロセッサ910と、メモリ915と、入力/出力ポート920とを含むコンピュータ905であり得る。一例では、コンピュータ905は、
図1~8および
図10~12Cを参照して図示および説明されるロジックおよびシステムなどの依存関係グラフインターフェイスを用いてオブジェクトおよび計算パイプラインのマイグレーションを可能におよび容易にするように構成された、依存関係グラフ制御オブジェクトおよび計算パイプラインマイグレーションロジック1030を含むことができる。異なる例では、ロジック930は、ハードウェア、命令が格納された非一時的なコンピュータ可読媒体、ファームウェア、および/またはそれらの組合せで実現され得る。ロジック930は、バス925に取り付けられたハードウェアコンポーネントとして示されているが、他の実施形態では、ロジック930は、プロセッサ910内に実現されてもよく、メモリ915内に記憶されてもよく、ディスク935内に記憶されてもよく、またはこれらおよび他のコンポーネントの相互動作によって実現されてもよいことを理解されたい。
【0145】
一実施形態では、ロジック930またはコンピュータは、説明したアクションを実行するための手段(例えば、構造:ハードウェア、非一時的なコンピュータ可読媒体、ファームウェア)である。いくつかの実施形態では、コンピューティングデバイスは、クラウドコンピューティングシステム内で動作するサーバ、サービスとしてのソフトウェア(SaaS)アーキテクチャ内に構成されたサーバ、スマートフォン、ラップトップ、タブレットコンピューティングデバイスなどとすることができる。
【0146】
上記手段は、例えば、プロセス発見および容易化を自動化するようにプログラムされたASICとして実現され得る。上記手段はまた、メモリ915に一時的に格納され、その後プロセッサ910によって実行されるデータ940としてコンピュータ905に提示される、格納されたコンピュータ実行可能命令として実現されてもよい。
【0147】
ロジック930はまた、自動化されたプロセス発見および容易化を実行するための手段(例えば、ハードウェア、実行可能な命令を格納する非一時的なコンピュータ可読媒体、ファームウェア)を提供してもよい。
【0148】
コンピュータ905の例示的な構成を概説すると、プロセッサ910は、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含むさまざまなプロセッサとすることができる。メモリ915は、揮発性メモリおよび/または不揮発性メモリを含み得る。不揮発性メモリは、例えば、ROM、PROM、EPROM、EEPROM等を含むことができる。揮発性メモリは、例えば、RAM、SRAM、DRAM等を含むことができる。
【0149】
ストレージディスク935は、例えば、入力/出力(I/O)インターフェイス(例えば、カード、デバイス)945および入力/出力ポート1020を介してコンピュータ905に動作可能に接続され得る。ディスク935は、例えば、磁気ディスクドライブ、ソリッドステートディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Zipドライブ、フラッシュメモリカード、メモリスティックなどであり得る。さらに、ディスク935は、CD-ROMドライブ、CD-Rドライブ、CD-RWドライブ、DVD ROM等であってもよい。メモリ915は、例えば、プロセス950および/またはデータ940を記憶することができる。ディスク935および/またはメモリ915は、コンピュータ905のリソースを制御し割り当てるオペレーティングシステムを記憶することができる。
【0150】
コンピュータ905は、I/Oインターフェイス945および入出力ポート920を介して、入出力(I/O)デバイスとやり取りすることができる。プロセッサ910とI/Oインターフェイス945およびポート920との間の通信は、入出力コントローラ947によって管理される。入出力ポート920は、例えば、シリアルポート、パラレルポート、USBポートを含むことができる。
【0151】
コンピュータ905は、ネットワーク環境において動作することができ、したがって、I/Oインターフェイス945および/またはI/Oポート920を介してネットワークデバイス955に接続され得る。ネットワークデバイス955を介して、コンピュータ905は、ネットワーク960とやり取りすることができる。コンピュータ905は、ネットワーク960を介してリモートコンピュータ965と論理的に接続されることができる。コンピュータ905がやり取りすることができるネットワークは、LAN、WAN、および他のネットワークを含むが、これらに限定されない。
【0152】
コンピュータ905は、I/Oポート920を介して1つまたは複数の出力デバイスまたは入力デバイスから情報および信号を送信および受信することができる。出力デバイスは、1つまたは複数のディスプレイ970、プリンタ972(インクジェット、レーザ、または3Dプリンタなど)、および音声出力デバイス974(スピーカまたはヘッドフォンなど)を含む。入力デバイスは、1つまたは複数のテキスト入力デバイス980(キーボードなど)、カーソルコントローラ982(マウス、タッチパッド、またはタッチスクリーンなど)、音声入力デバイス984(マイクロフォンなど)、ビデオ入力デバイス986(ビデオおよびスチルカメラなど)、またはスキャナ988などの他の入力デバイスを含む。入出力デバイスは、ディスク935、ネットワークデバイス955などをさらに含むことができる。場合によっては、コンピュータ905は、テキスト入力デバイス980、カーソルコントローラ982、音声入力デバイス984、ディスク935、およびネットワークデバイス955など、入力デバイスまたは出力デバイスによって生成または提供される情報または信号によって制御されることができる。
【0153】
クラウドシステム、マルチテナント、および企業の実施形態
一実施形態では、本システムは、企業組織のためのアプリケーションまたは分散アプリケーションの集合を含むコンピューティング/データ処理システムである。アプリケーションおよびコンピューティングシステムは、クラウドベースのネットワーキングシステム、サービスとしてのソフトウェア(SaaS)アーキテクチャ、または他のタイプのネットワーク化されたコンピューティングソリューションで動作するかまたはそれとして実現されるように構成され得る。一実施形態では、本システムは、少なくとも本明細書に開示される機能を提供し、コンピュータネットワーク上で(サーバとして機能する)コンピューティングシステムと通信するコンピューティングデバイス/端末を介して多くのユーザによってアクセスされる集中型サーバ側アプリケーションである。
【0154】
図10は、依存関係グラフインターフェイスを用いる、オブジェクトおよび計算パイプラインのマイグレーションを含むマルチテナントシステムの一実施形態を示す。企業ネットワーク1005は、小売業者、売買業者、サービスプロバイダ、または他のタイプのビジネスなどのビジネスに関連付けられてもよい。代替的に、およびアプリケーションサービスプロバイダ(ASP)によりホストされる統合された金融分析システム(マルチテナントデータ処理プラットフォームなど)の利点に従うと、ビジネスは、そのエンドユーザがインターネットブラウザおよびインターネット接続へのアクセスを有するという条件で、専用設備またはビジネスネットワークをより少なく含むかまたはまったく含まなくてもよい。説明を簡潔かつ明確にするために、企業ネットワーク1005は、オンサイトローカルエリアネットワーク1010によって表されており、オンサイトローカルエリアネットワーク1010には、1つまたは複数のパーソナルコンピュータ1015またはサーバ1020が、インターネット1030または他の好適な通信ネットワークもしくはネットワークの組み合わせを介して企業ネットワーク1005に接続される1つまたは複数のリモートユーザコンピュータ1025とともに、動作可能に接続されている。各パーソナルコンピュータ1015は、一般に、ビジネスに関連付けられるサービスエージェントまたは他の従業員などの特定のエンドユーザに専用であるが、そのような専用は必須ではない。リモートユーザコンピュータ1025は、同様に、ビジネスに関連付けられる特定のエンドユーザに専用であってもよい。パーソナルコンピュータ1015およびリモートユーザコンピュータ1025は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、またはローカルエリアネットワーク1010もしくはインターネット1030に接続する能力を有するかもしくは他の同期能力を有する他のデバイスとすることができる。企業ネットワーク1005のユーザは、インターネット1030または別の好適な通信ネットワークもしくはネットワークの組み合わせを介して統合された金融分析システム1035とインターフェイスする。
【0155】
専用の第三者によってホストされ得る統合された金融分析システム1035は、ネットワーク1050によって動作可能に接続される、統合された金融サーバ1040およびウェブインターフェイスサーバ1045を含み得る。いくつかの実施形態では、統合された金融サーバ1040およびウェブインターフェイスサーバ1045のいずれかまたは両方は、
図10では単一のユニットとして表されているが、1つまたは複数の異なるハードウェアシステムおよびコンポーネント上で実現されてもよい。
【0156】
統合された金融分析システム1035の一例は、製品のOracle(登録商標)Financial Services Analytical Applications製品スイートである。Oracle(登録商標)Financial Services Analytical Applicationsおよび他の統合された金融分析システムは、特許請求されるシステムおよび方法を組み込むことによって改善され得る。
【0157】
一例示的構成において、統合された金融分析システム1035は、各々がビジネスを運営し、各々が関連付けられる企業ネットワーク1005を有する、複数のアカウント所有者/テナントの利益のために、第三者によって操作される。
【0158】
一例示的構成において、統合された金融サーバ1040は、例えば、リスクおよび業績管理モジュール1055、金融犯罪およびコンプライアンス管理モジュール1060、データ管理および規制報告モジュール1065、最新金融モジュール1070、ならびに1つまたは複数の他のモジュール1075のうちの任意の1つまたは複数を含み得るさまざまなモジュールを含む。これらのモジュールの各々は、1つまたは複数のサブモジュールから構成されてもよい。さらに、統合された金融サーバ1040は、統合された金融分析システム1035へのテナントおよびユーザのアクセスを管理するためのユーザ管理モジュールをさらに含むことができる。
【0159】
多くの場合、上記モジュール1055~1075のうちの1つは、上記モジュール1055~1075のうちの1つまたは複数の他のモジュールと、メソッド、ライブラリ、データベース、サブルーチン、変数などを共有することが望ましい。
【0160】
ウェブインターフェイスサーバ1045は、統合された金融サーバ1040とインターフェイスして、企業ネットワーク105のエンドユーザに1つまたは複数のウェブベースのユーザインターフェイスを提供するように、構成および適合される。メタデータバージョン維持システム165Aおよび165Bは、統合された金融サーバ1040およびウェブインターフェイスサーバ1045とインターフェイスして、統合された金融サーバ1040からアーカイブダンプファイルのエクスポートを受け入れ、統合された金融サーバ1040にインポートするためにアーカイブダンプファイルを提供するように、構成および適合される。
【0161】
一実施形態では、依存関係グラフ制御オブジェクトおよび計算マイグレーションサーバ(またはモジュール)1095は、統合された金融分析システム1035に含まれてもよい。依存関係グラフ制御オブジェクトおよび計算マイグレーションサーバ(またはモジュール)1095は、統合された金融サーバ1040、ウェブインターフェイスサーバ1045、ならびにメタデータバージョン維持システム165Aおよび165Bのうちの少なくとも1つとインターフェイスするように構成および適合される。依存関係グラフ制御オブジェクトおよび計算マイグレーションサーバ(またはモジュール)1095は、本明細書でさらに説明するように、統合された金融分析システム1035に関連付けられる元環境からのエクスポートを作成するか、または統合された金融分析システム1035に関連付けられるターゲット環境へのインポートを作成するように動作してもよい。
【0162】
図10に示される統合された金融分析システム1035は、少なくとも1つの、しかし多数である可能性が高い「サーバ」で構成されている分散コンピューティングシステム上でホストされ得る。サーバは、データストレージを提供するのに専用の物理的なコンピュータであり、例えば、インターネットのような公共のネットワークもしくは個人的な「イントラネット」ネットワークを介して当該サーバとデータ通信をしている他のコンピュータのユーザの要求を満たすように意図された、1つもしくは複数のソフトウェアアプリケーションまたはサービスのための実行環境である。当該サーバおよびそれが提供するサービスは、「ホスト」と呼ばれることができ、リモートコンピュータ、および提供されている、当該リモートコンピュータ上で走るソフトウェアアプリケーションは、「クライアント」と呼ばれ得る。サーバが提供する計算処理に応じて、当該サーバは、データベースサーバ、データストレージサーバ、ファイルサーバ、メールサーバ、プリントサーバ、ウェブサーバなどと呼ばれ得る。ウェブサーバは、ほとんどの場合、ハードウェアと、インターネットを介して当該ウェブサーバにアクセスするクライアントウェブブラウザへ、一般にウェブサイトをホストすることによりコンテンツを届けるソフトウェアとの組み合わせであってもよい。一例では、ウェブインターフェイスサーバ1045は、ウェブサーバを含む。
【0163】
図11は、本発明の実施形態が実現され得る動作環境例1100の要素またはコンポーネントを示す図である。
図11に示されるソフトウェアアーキテクチャは、本発明の実施形態が適用され得る複雑なソフトウェアシステムの簡略化された例を表す。
【0164】
示されるように、さまざまなコンピューティングデバイスを組み込むおよび/またはそれらに組み込まれるさまざまなクライアント1105は、1つまたは複数のネットワーク1115を通じて分散計算処理/プラットフォーム1110と通信し得る。例えば、クライアントは、コンピューティングデバイスのうちの1つまたは複数により実現されるクライアントアプリケーションを組み込み得、および/または当該クライアントアプリケーションに組み込まれ得る。好適なクライアントの例は、ウェブブラウザおよび専用のクライアントソフトウェアアプリケーションを含む。好適なコンピューティングデバイスの例は、サーバコンピュータ1120、デスクトップコンピュータ1125およびラップトップまたはノートブックコンピュータ1130などのパーソナルコンピュータ、タブレットコンピュータまたは携帯情報端末(PDA)1135、セルフォンまたはスマートフォン1140、ならびに1つまたは複数の電子プロセッサ、マイクロプロセッサ、中央処理ユニット(CPU)、またはコントローラなどの1つまたは複数のコンピューティングデバイスコンポーネントを組み込んだ他の電子デバイスを含む。好適なネットワーク1115の例は、有線および/または無線通信技術を利用するネットワーク、ならびに任意の好適なネットワーキングおよび/または通信プロトコル(たとえば、インターネット)に従って動作するネットワークを含む。
【0165】
一実施形態では、分散計算処理/プラットフォーム1110は、マルチテナントビジネスデータ処理プラットフォームとすることができる。この構成では、サービスプラットフォーム1110は、複数のテナントにビジネス関連アプリケーション、データストレージ、および機能の組を提供するために、エンティティによって動作され得る。これらのアプリケーションおよび機能は、ビジネスがその業務のさまざまな態様を管理するのに用いるものを含み得る。例えば、アプリケーションおよび機能は、ビジネス情報システムへのウェブベースのアクセスを提供することを含み得、それによって、ブラウザおよびインターネットまたは他のネットワーク1115接続を有するユーザが、ある種のビジネス情報を閲覧、入力、処理、または修正することを可能にする。
【0166】
分散計算処理/プラットフォーム1110は、ユーザインターフェイス層1145、アプリケーションサーバ層1150、およびデータストレージ層1155を含む複数の処理層を含み得る。図面に示される各処理層は、メモリにアクセスするプロセッサを含むコンピュータおよび/またはコンピュータコンポーネントの組で実現されてもよく、ソフトウェアアプリケーションまたは命令のセットの実行によって決定されるさまざまな機能、方法、プロセス、または動作を実行してもよい。
【0167】
ユーザインターフェイス層1145は、グラフィカルユーザインターフェイスおよび/またはウェブベースのインターフェイスを含む複数のユーザインターフェイス718を維持し得る。ユーザインターフェイスは、サービスが当該サービスのユーザまたは「テナント」のためにアプリケーションおよびデータへのアクセスを提供するためのデフォルトユーザインターフェース(図において「サービス(デフォルト)UI」として描かれている)、ならびにユーザ特定の要求に従って特殊化/カスタマイズされている1つまたは複数のユーザインターフェイス(図において「テナントユーザA UI」...「テナントユーザZ UI」により表され、1つまたは複数のAPIを介してアクセスされ得る)を含んでもよい。デフォルトユーザインターフェイスは、データにアクセスすること、特定のデータ処理動作の実行などを引き起こすことのような、サービスプラットフォームにより提供される機能および性能において、テナントが当該テナントの参加を管理することを可能にするコンポーネントを含み得るが、必ずしもすべてのユーザがこれらのコンポーネントを見る許可を有するわけではない。
【0168】
アプリケーションサーバ層1150は、統合された金融サーバ140の機能またはビジネスアプリケーションを実現するよう、ソフトウェアのフレームワークを提供する。そのような機能またはビジネスアプリケーションは、典型的には、プラットフォームのアプリケーションサーバ層1150の一部である1つまたは複数のアプリケーションサーバ1165上に維持され、それ(ら)によって実行されるソフトウェアコード/命令の1つまたは複数のモジュールによって実現される。
【0169】
データストレージ層1155は、サービスデータストア1170および1つまたは複数のテントデータストア1175(図中、「テナントAデータストア」…「テナントZデータストア」によって表される)を含み得る1つまたは複数のデータストアを含み得る。各テナントデータストア1175は、ERP、CRMなどの統合された金融サーバ140の機能またはビジネスアプリケーションを含むがそれらに限定はされない、ある範囲の、テナント固有のビジネスサービスまたは機能を提供することの一部として用いられる、テナント固有のデータを含み得る。データストアは、構造化クエリ言語(SQL)に基づくリレーショナルデータベース管理システム(RDBMS)を含む任意の好適なデータ記憶技術を用いて実現され得る。
【0170】
図12Aは、
図11を参照して最初に提示されたユーザインターフェイス1160の要素またはコンポーネントの追加の詳細を示す図である。ユーザインターフェイス1160の例は、グラフィカルユーザインターフェイス(GUI)およびアプリケーションプログラミングインターフェイス(API)を含む。各ユーザインターフェイス1160は、1つまたは複数のインターフェイス要素1210(図中、「ユーザインターフェイス要素1」...「ユーザインターフェイス要素n」によって表される)を含み得る。例えば、ユーザは、例示的なアーキテクチャのアプリケーションおよび/もしくはデータストレージ層によって提供される機能ならびに/またはデータにアクセスするために、インターフェイス要素と対話することができる。グラフィカルユーザインターフェイスは、ローカルでもリモートでもよい。グラフィカルユーザインターフェイス要素の例は、ボタン、メニュー、チェックボックス、ドロップダウンリスト、スクロールバー、スライダ、スピナー、テキストボックス、アイコン、ラベル、進捗バー、ステータスバー、ツールバー、ウィンドウ、ハイパーリンク、およびダイアログボックスを含む。アプリケーションプログラミングインターフェイスは、ローカルでもリモートでもよい。アプリケーションプログラミングインターフェイス要素の例は、パラメータ化されたプロシージャコール、プログラムのオブジェクト、およびメッセージ伝達プロトコルを含む。
【0171】
図12Bは、
図11を参照して最初に提示されたアプリケーションサーバ1165の要素またはコンポーネントの追加の詳細を示す図である。アプリケーションサーバ1165は、1つまたは複数のアプリケーションモジュール1240(図中、「アプリケーションモジュール1」...「アプリケーションモジュール1m」で表される)を含み得、それらの各々は、1つまたは複数のサブモジュール1245を有し得る。各アプリケーションモジュール1240またはサブモジュール1245は、当該モジュールまたはサブモジュールによって実現される特定の機能、方法、プロセス、または動作(例えば、プラットフォームのユーザにERP、CRM、電子商取引もしくは別の機能を提供することに関連する機能またはプロセス)に対応し得る。各アプリケーションサーバ1165は、各アプリケーションモジュールを含み得る。代替的に、異なるアプリケーションサーバ1165は、異なる組のアプリケーションモジュールを含み得る。そのような組は、互いに素でも重なっていてもよい。
【0172】
図12Cは、
図11を参照して最初に提示されたデータストア1170、1175の要素またはコンポーネントの追加の詳細を示す図である。各データストア1170、1175は、属性および/または挙動などの1つまたは複数のデータオブジェクトコンポーネント1275を各々が有する1つまたは複数のデータオブジェクト1270を含み得る。例えば、データストア1170、1175は、リレーショナルデータベースに対応することができ、データオブジェクト1270は、リレーショナルデータベースのテーブルに対応することができ、データオブジェクトコンポーネント1275は、そのようなテーブルの列またはフィールドに対応することができる。代替的に、または加えて、データオブジェクトは、フィールドおよび関連付けられるサービスを有するデータレコードに対応し得る。代替的に、または加えて、データオブジェクトは、構造およびクラスのような、プログラムのデータオブジェクトの持続的なインスタンスに対応し得る。代替的に、または加えて、データストア1170、1175、データオブジェクト1270、およびデータオブジェクトコンポーネント1275は、各々、本明細書で説明する任意の形態のデータ構造であり得る。データストレージ層内の各データストアは、各データオブジェクトを含み得る。代替的に、異なるデータストアは、異なる組のデータオブジェクトを含み得る。そのような組は、互いに素でも重なっていてもよい。
【0173】
ソフトウェアモジュールの実施形態
一般に、ソフトウェア命令は、好適にプログラムされたプロセッサによって実行されるように設計される。これらのソフトウェア命令は、例えば、コンピュータ実行可能コードおよびコンピュータ実行可能コードにコンパイルされ得るソースコードを含み得る。これらのソフトウェア命令は、スクリプト化言語などの、解釈されたプログラミング言語で書かれた命令も含み得る。
【0174】
複雑なシステムでは、そのような命令は、典型的には、プログラムモジュールに構成され、各そのようなモジュールは、特定のタスク、プロセス、機能、または動作を実行する。モジュールの組全体は、それらの動作において、オペレーティングシステム(OS)または他の形態の組織化プラットフォームによって制御または調整され得る。
【0175】
一実施形態では、本明細書で説明するコンポーネント、機能、方法、またはプロセスのうちの1つまたは複数は、非一時的なコンピュータ可読媒体に記憶されたモジュールとして構成される。モジュールは、少なくとも1つのプロセッサがメモリまたはストレージにアクセスすることによって実行されると、コンピューティングデバイスに、本明細書で説明する対応する機能を実行させる格納されたソフトウェア命令で構成される。
【0176】
定義および他の実施形態
別の実施形態において、説明される方法および/またはそれらの均等のものは、コンピュータ実行可能な命令を用いて実現され得る。それゆえ、一実施形態において、非一時的なコンピュータ読み取り可能な/記憶媒体は、機械(複数可)により実行されると、当該機械(複数可)(および/または関連した構成要素)に当該方法を行わせるアルゴリズム/実行可能なアプリケーションの指令であって、格納されているコンピュータ実行可能な指令を用いて構成されている。例示的な機械は、プロセッサ、コンピュータ、クラウドコンピューティングシステムにおいて動作するサーバ、サービスとしてのソフトウェア(SaaS)アーキテクチャにおいて構成されているサーバ、およびスマートフォン等を含むが、これらに制限されない。一実施形態において、コンピューティング装置は、開示される方法のいずれかを行うように構成されている1つまたは複数の実行可能なアルゴリズムを用いて実現される。
【0177】
1つまたは複数の実施形態において、開示される方法またはそれらの均等のものは、当該方法を行うように構成されているコンピュータハードウェアか、または、非一時的なコンピュータ読み取り可能な媒体に格納されているモジュールにおいて具現化されるコンピュータ命令であって、当該命令が、コンピューティング装置の少なくとも1つのプロセッサによって実行されると当該方法を行うように構成されている実行可能なアルゴリズムとして構成されているコンピュータ命令かのいずれかにより行われる。
【0178】
説明の簡潔さの目的のために、図に例示される方法は、アルゴリズムの一連のブロックとして示され説明されるが、当該方法は、ブロックの順序によって制限されないことを理解されるべきである。いくつかのブロックは、示され説明された順序とは異なる順序で、および/または示され説明された他のブロックと同時に起こり得る。加えて、例示的な方法を実現するために、全ての例示されたブロックよりも少ないブロックが用いられ得る。ブロックは、組み合わされるか、または多数の動作/構成要素に分離され得る。さらに、追加的および/または代替的な方法は、ブロックに例示されていない追加的な動作を用いることができる。
【0179】
さらに、図中の一連のブロックがループを表す場合、後試験または「do ... while」ループにある実施形態は、他の実施形態では、前試験または「while」ループとして実現されるかもしれず、逆もまた同様である。
【0180】
以下は、本明細書で用いられる選択された用語の定義を含む。当該定義は、構成要素の種々の例および/または形態を含み、当該例および/または形態は、用語の範囲内に入り、実現形態に対して用いられ得る。当該例は、制限的であることを意図されていない。用語の単数形および複数形の両方が、当該定義内であり得る。
【0181】
「一実施形態(one embodiment)」、「ある実施形態(an embodiment)」、「一例(one example)」および「例(an example)」などへの言及は、そのように説明される実施形態(複数可)または例(複数可)が、特定の特徴、構造、特性、性質、要素または制限を含み得るが、いずれの実施形態または例が必ずしもその特定の特徴、構造、特性、性質、要素または制限を含むとは限らないことを示す。さらに、「一実施形態において」という語句の度々の使用は、必ずしも同じ実施形態を指すとは限らないが、同じ実施形態を指し得る。
【0182】
ASIC:特定用途向け集積回路。
CD:コンパクトディスク。
【0183】
CD-R:記録可能CD。
CD-RW:書き換え可能CD。
【0184】
DVD:デジタル多用途ディスクおよび/またはデジタルビデオディスク。
LAN:ローカルエリアネットワーク。
【0185】
RAM:ランダムアクセスメモリ。
DRAM:ダイナミックRAM。
【0186】
SRAM:シンクロナスRAM。
ROM:読み出し専用メモリ。
【0187】
PROM:プログラマブルROM。
EPROM:消去可能PROM。
【0188】
EEPROM:電気的に消去可能なPROM。
SQL:構造化クエリ言語。
【0189】
USB:ユニバーサルシリアルバス。
WAN:ワイドエリアネットワーク。
【0190】
「データ構造」は、本明細書で用いられるとき、メモリ、記憶装置、または他のコンピュータ化されたシステムに格納されている、コンピューティングシステムにおけるデータの体系である。データ構造は、例えば、データフィールド、データファイル、データアレイ、データベクトル、データ記録、データベース、データテーブル、データマトリックス、グラフ、ツリーおよび連結リストなどのいずれか1つであり得る。データ構造は、多くの他のデータ構造から形成され、当該データ構造を含み得る(例えば、データベースは、多くのデータ記録を含む)。他の実施形態に従うと、データ構造の他の例も同様に可能である。
【0191】
「コンピュータ読み取り可能な媒体」または「コンピュータ記憶媒体」は、本明細書で用いられるとき、実行されると、開示される機能のうちの1つもしくは複数を行うように構成されている指令および/またはデータを格納する非一時的な媒体を指す。データは、いくつかの実施形態において、指令として機能し得る。コンピュータ読み取り可能な媒体は、不揮発性媒体および揮発性媒体を含むがこれらの媒体に制限されない形態を取り得る。不揮発性媒体は、例えば、光ディスクおよび磁気ディスクなどを含み得る。揮発性媒体は、例えば、半導体メモリおよびダイナミックメモリなどを含み得る。コンピュータ読み取り可能な媒体の一般的な形態は、フロッピー(登録商標)ディスクと、フレキシブルディスクと、ハードディスクと、磁気テープと、他の磁気媒体と、特定用途向け集積回路(ASIC)と、プログラマブル論理装置と、コンパクトディスク(CD)と、他の光媒体と、ランダムアクセスメモリ(RAM)と、読み出し専用メモリ(ROM)と、メモリチップまたはカードと、メモリスティックと、ソリッドステート記憶装置(SSD:solid state storage device)と、フラッシュドライブと、コンピュータ、プロセッサまたは他の電子装置が用いて機能できる他の媒体とを含み得るが、これらに制限されない。媒体の各タイプは、一実施形態における実現のために選択される場合、開示および/もしくは請求される機能のうちの1つまたは複数を行うように構成されているアルゴリズムの格納されている指令を含み得る。
【0192】
「論理回路(Logic)」は、本明細書で用いられるとき、コンピュータもしくは電気的なハードウェア、実行可能なアプリケーションもしくはプログラムモジュールの格納されている指令を有する非一時的な媒体、ならびに/または、本明細書で開示される機能もしくは動作のいずれかを行うため、および/もしくは別の論理回路、方法および/もしくはシステムからの機能もしくは動作が、本明細書で開示したように行われるようにするためのこれらの組み合わせを用いて実現される構成要素を表す。均等な論理回路は、ファームウェア、アルゴリズムを用いてプログラムされるマイクロプロセッサ、ディスクリート論理回路(例えばASIC)、少なくとも1つの回路、アナログ回路、デジタル回路、プログラムされる論理装置、およびアルゴリズムの指令を含むメモリ装置などを含むことができ、これらのうちのいずれもが、開示される機能のうちの1つまたは複数を行うように構成され得る。一実施形態において、論理回路は、1つもしくは複数のゲート、ゲートの組み合わせ、または開示された機能のうちの1つもしくは複数を行うように構成されている他の回路の構成要素を含み得る。複数の論理回路が説明される場合、複数の論理回路を1つの論理回路に組み込むことが可能であり得る。同様に、単一の論理回路が説明される場合、その単一の論理回路を多数の論理回路の間で分散させることが可能である。一実施形態において、これらの論理回路のうちの1つまたは複数は、開示および/または請求される機能を行うことに関連付けられた、対応する構造である。いずれのタイプの論理回路を実現するかの選択は、望まれるシステム条件または仕様に基づき得る。例えば、より高い速度が考慮事項である場合、そのときは、ハードウェアが選択されて機能を実現するだろう。より低いコストが考慮事項である場合、そのときは、格納されている指令/実行可能なアプリケーションが選択されて機能を実現するだろう。
【0193】
「動作可能な接続」、またはエンティティが「動作可能に接続される」接続は、信号、物理的な通信および/または論理通信が送信および/または受信され得る接続である。動作可能な接続は、物理的なインターフェイス、電気的なインターフェイス、および/またはデータインターフェイスを含み得る。動作可能な接続は、動作可能な制御を可能にするのに十分な、インターフェイスおよび/または接続の異なる組み合わせを含み得る。例えば、2つのエンティティは、互いに直接的に信号を通信するように、または1つもしくは複数の中間のエンティティ(例えば、プロセッサ、オペレーティングシステム、論理回路、非一時的なコンピュータ読み取り可能な媒体)を介して通信するように動作可能に接続され得る。論理通信チャネルおよび/または物理的な通信チャネルは、動作可能な接続を作成するために用いられ得る。
【0194】
「ユーザ」は、本明細書で用いられるとき、1つまたは複数の人、コンピュータもしくは他の装置、またはこれらの組み合わせを含むが、これらに制限されない。
【0195】
開示された実施形態が、かなり詳細に例示され説明されてきたが、添付される特許請求の範囲を、そのような詳細に制限すること、またはいずれかの方法において限定することは、意図するところではない。もちろん、主題の種々の態様を説明する目的のために、構成要素または方法の考えられる、あらゆる組み合わせを説明することは可能でない。そのため、本開示は、示され説明される、特定の詳細または例示的な例に限定されない。それゆえ、本開示は、法定の主題要件を満たす、添付される特許請求の範囲内に入る代替、修正および変形を包含することを意図されている。
【0196】
「含む(includes)」または「含む(including)」という用語が、詳細な説明または特許請求の範囲において用いられる限り、「備える(comprising)」という用語が特許請求の範囲において遷移語として用いられるときに解釈されるように、「含む」という用語は、「備える」という用語と同様に包含的であることが意図される。
【0197】
「または(or)」という用語が、詳細な説明または特許請求の範囲において用いられる限り(例えば、AまたはB)、「または」という用語は、「AまたはBまたはその両方」を意味することが意図される。出願人が「AまたはBのみであるがその両方ではない」を示すことを意図するとき、そのときは、「AまたはBのみであるがその両方ではない」という語句が用いられる。それゆえ、本明細書における「または」という用語の使用は、包含的な使用であり、排他的な使用ではない。