JP2016040714A - ソフトウェアアプリケーションを構成するための方法および装置 - Google Patents
ソフトウェアアプリケーションを構成するための方法および装置 Download PDFInfo
- Publication number
- JP2016040714A JP2016040714A JP2015159684A JP2015159684A JP2016040714A JP 2016040714 A JP2016040714 A JP 2016040714A JP 2015159684 A JP2015159684 A JP 2015159684A JP 2015159684 A JP2015159684 A JP 2015159684A JP 2016040714 A JP2016040714 A JP 2016040714A
- Authority
- JP
- Japan
- Prior art keywords
- decision tree
- configuration
- software application
- node
- context
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
【課題】ソフトウェアアプリケーションにおける構成エントリを管理するための解決策を提供する。【解決手段】文脈検索ユニットは、ソフトウェアアプリケーションの文脈であって、1つ又は複数の修飾子を含む文脈を検索する10。その後、比較ユニットは、1つ又は複数の修飾子をソフトウェアアプリケーションに関する構成識別子を判定するための決定木のノードと比較する11。判定された構成識別子に基づき、構成値検索ユニットは、ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索する12。必要な決定木を生成するために、構成識別子判定ユニットは、ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別値を判定する。関連付けユニットは、判定された1つ又は複数の構成識別子を決定木のノードと関連付ける。もたらされた決定木は、格納ユニットに格納される。【選択図】図1
Description
本発明は、ソフトウェアアプリケーションを構成するための方法および装置に関する。より詳細には、決定木を使用するソフトウェアアプリケーションを構成するための方法および装置を示す。本発明は、さらに、そのような決定木を生成するための方法および装置に関する。
全てのコンピュータアプリケーションは、上手く動作するための構成を必要とする。その基本レベルにおいて、構成は、キー/バリューペアからなる。アプリケーションがキーを使用する構成システムに要求し、値が返される。
構成セットは、特定の時間においてシステムからの全キー/バリューペアを含む。キーバリューが更新された又は新しいキー/バリューがシステムに追加されたとき、新しい構成セットが作成される。
例えば、視覚効果又は映画ポストプロダクションビジネスにおける演算集約的なタスクを行う企業のソフトウェアスタックは、多くの場合、数百の固有のソフトウェアプロジェクトを含む。それらはおおよそ以下のように分類できる。
1)コアライブラリ、例えば、コンパイル後のバイナリ、Pythonライブラリなど。
2)プロダクションアプリケーション、例えば、独立型のアプリケーションとして、又はサードパーティ製のアプリケーションを拡張するために、視覚効果アーティストによって使用されるもの。それらはコアライブラリに依存する。
3)企業のインフラストラクチャを維持するために使用されるシステムアプリケーション。それらもコアライブラリに依存する。
安定したシステムを実現するために、全てのソフトウェアコンポーネント(API(アプリケーションプログラムインタフェース)又はその他)にわたる互換性を確保する必要がある。これは、通常、パッケージ管理システム、例えば、PRMパッケージマネージャ、Debianパッケージ管理システム、Nixパッケージマネージャ、又はPortageパッケージ管理システムで実現される。視覚効果ビジネスにおいて、ソフトウェアスタックは更なる要件、すなわち、定性的判定に基づきソフトウェアコンポーネントの組み合わせを定義するための能力を提起する。そのような定性的判定の例としては、
1)特定のプロダクションのためにだけ開発された特徴を組み込む。
2)まだプロダクションの安定版と見なされていない新たに開発された特徴を使用する。
3)全てのソフトウェア変更からソフトウェアスタックを隔離する、すなわち、プロダクションの最終段階においてソフトウェアの安定性を保証する。
4)アプリケーションを異なるサードパーティ製のライブラリ、例えば、物理エンジンと統合する。
5)ライセンス制約が様々なプロダクションの現場間で異なる。
6)ハードウェアの特徴が異なる。
ソフトウェアの互換性と柔軟性を確保して、プロダクションのニーズに従ってワークフローをカスタマイズするために、強力な構成管理システムが必要である。
本発明の目的は、ソフトウェアアプリケーションに関する構成エントリを管理するための解決策を提案することである。
本発明の一態様によると、ソフトウェアアプリケーションを構成するための方法であって、
−ソフトウェアアプリケーションの文脈を検索するステップであって、上記文脈は1つ又は複数の修飾子を含む、ステップと、
−上記1つ又は複数の修飾子を、上記ソフトウェアアプリケーションに関する構成識別子を判定するための決定木のノードと比較するステップと、
−上記判定した構成識別子に基づき、上記ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索するステップと、
を有する。
−ソフトウェアアプリケーションの文脈を検索するステップであって、上記文脈は1つ又は複数の修飾子を含む、ステップと、
−上記1つ又は複数の修飾子を、上記ソフトウェアアプリケーションに関する構成識別子を判定するための決定木のノードと比較するステップと、
−上記判定した構成識別子に基づき、上記ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索するステップと、
を有する。
それに伴い、ソフトウェアアプリケーションを構成するよう構成された装置であって、
−ソフトウェアアプリケーションの文脈を検索するよう構成された文脈検索ユニットであって、上記文脈は1つ又は複数の修飾子を含む、ユニットと、
−上記1つ又は複数の修飾子を、上記ソフトウェアアプリケーションに関する構成識別子を判定するための決定木のノードと比較するよう構成された比較ユニットと、
−上記判定した構成識別子に基づき、上記ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索するよう構成された構成値検索ユニットと、
を備える。
−ソフトウェアアプリケーションの文脈を検索するよう構成された文脈検索ユニットであって、上記文脈は1つ又は複数の修飾子を含む、ユニットと、
−上記1つ又は複数の修飾子を、上記ソフトウェアアプリケーションに関する構成識別子を判定するための決定木のノードと比較するよう構成された比較ユニットと、
−上記判定した構成識別子に基づき、上記ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索するよう構成された構成値検索ユニットと、
を備える。
また、ソフトウェアアプリケーションを構成することを可能にする命令を格納したコンピュータ可読記憶媒体であって、コンピュータによって実行されたときに、上記コンピュータに、
−ソフトウェアアプリケーションの文脈を検索するステップであって、上記文脈は1つ又は複数の修飾子を含む、ステップと、
−上記1つ又は複数の修飾子を、上記ソフトウェアアプリケーションに関する構成識別子を判定するための決定木のノードと比較するステップと、
−上記判定した構成識別子に基づき、上記ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索するステップと、
を実行させる上記命令を格納する。
−ソフトウェアアプリケーションの文脈を検索するステップであって、上記文脈は1つ又は複数の修飾子を含む、ステップと、
−上記1つ又は複数の修飾子を、上記ソフトウェアアプリケーションに関する構成識別子を判定するための決定木のノードと比較するステップと、
−上記判定した構成識別子に基づき、上記ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索するステップと、
を実行させる上記命令を格納する。
本発明の他の態様によると、ソフトウェアアプリケーションを構成することを可能にする決定木を生成するための方法であって、
−上記ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別子を判定するステップと、
−上記判定された1つ又は複数の構成識別子を上記決定木のノードと関連付けるステップと、
−構成管理システムに上記決定木を格納するステップと、
を有する。
−上記ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別子を判定するステップと、
−上記判定された1つ又は複数の構成識別子を上記決定木のノードと関連付けるステップと、
−構成管理システムに上記決定木を格納するステップと、
を有する。
それに伴い、ソフトウェアアプリケーションを構成することを可能にする決定木を生成するよう構成された装置であって、
−上記ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別子を判定するよう構成された構成識別子判定ユニットと、
−上記判定された1つ又は複数の構成識別子を上記決定木のノードと関連付けるよう構成された関連付けユニットと、
−構成管理システムに上記決定木を格納するよう構成された格納ユニットと、
を備える。
−上記ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別子を判定するよう構成された構成識別子判定ユニットと、
−上記判定された1つ又は複数の構成識別子を上記決定木のノードと関連付けるよう構成された関連付けユニットと、
−構成管理システムに上記決定木を格納するよう構成された格納ユニットと、
を備える。
また、ソフトウェアアプリケーションを構成することを可能にする決定木を生成することを可能にする命令を格納したコンピュータ可読記憶媒体であって、コンピュータによって実行されたときに、上記コンピュータに、
−上記ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別子を判定するステップと、
−上記判定された1つ又は複数の構成識別子を上記決定木のノードと関連付けるステップと、
−構成管理システムに上記決定木を格納するステップと、
を実行させる上記命令を格納する。
−上記ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別子を判定するステップと、
−上記判定された1つ又は複数の構成識別子を上記決定木のノードと関連付けるステップと、
−構成管理システムに上記決定木を格納するステップと、
を実行させる上記命令を格納する。
提案する解決策は、好ましくは、低密度な決定木に値を格納する完全に永続的な構成管理システムとして実施される。そのツリーは、入力された修飾子に従って誘導され、好ましくは、バージョニングを通してツリーになされた変更を追跡することを可能にする。上記システムは、ソフトウェアの互換性および柔軟性の両者を保証してプロダクションのニーズに従ってワークフローをカスタマイズする全ての可能性のマトリクスから相等するソフトウェア構成セットを定義する能力を提供する。
本発明の理解を深めるため、ここで図を参照して以下においてより詳細な説明を行う。本発明は、いかなる例示的な実施形態にも限定されず、添付の請求項によって規定される上記本発明の範囲から逸脱することなく、特定の特徴が便宜上組み合わせられ、および/または修正されることも可能である。
ソフトウェアアプリケーションを構成するための発明による方法を図1に模式的に示す。ソフトウェアアプリケーションの文脈であって、1つ又は複数の修飾子を含む文脈を検索した(10)後、1つ又は複数の修飾子は、ソフトウェアアプリケーションの構成識別子を判定するための決定木のノードと比較される(11)。判定された構成識別子に基づき、ソフトウェアアプリケーションに関する1つ又は複数の構成値が検索される(12)。
図2は、図1の方法を実行するよう構成された装置20を模式的に示す。装置20は、要求を受信するための入力部21を備え、ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索する。先ず、文脈検索ユニット22は、ソフトウェアアプリケーションの文脈であって、1つ又は複数の修飾子を含む文脈を検索する(10)。その後、比較ユニット23は、1つ又は複数の修飾子を、ソフトウェアアプリケーションに関する構成識別子を判定するための決定木のノードと比較する(11)。判定された構成識別子に基づき、構成値検索ユニット24は、ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索する(12)。最後に、検索された1つ又は複数の構成値は、出力部25を介して利用可能にするのに有利である。種々のユニット22、23、24は、専用ハードウェア又はプロセッサ上で実行するソフトウェアのいずれかとして実装される。これらは、単一ユニットに完全に又は部分的に組み込まれることもできる。また、入力部21および出力部25は、単一の双方向インタフェースに組み込まれることもできる。
図3は、ソフトウェアアプリケーションを構成することを可能にする決定木を生成するための本発明による方法を示す。先ず、ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別子が判定される(30)。判定された1つ又は複数の構成識別子は、その後、決定木のノードと関連付けられる(31)。最後に、もたらされた決定木は格納される(32)。
図3の方法を実行するよう構成された装置40を図4に模式的に示す。装置40は、要求を受信するための入力部41を備えて、決定木を生成する。構成識別子判定ユニット42は、その後、ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別子を判定する(30)。関連付けユニット43は、判定された1つ又は複数の構成識別子を決定木のノードと関連付ける(31)。もたらされた決定木は、装置40の格納ユニット44に格納される(32)。格納ユニット44は、装置40の外部にあっても良い。決定木を格納する(32)代わりに、又はそれに加えて、決定木は、出力部45を介して利用可能にされる。判定ユニット42および関連付けユニット43は、専用ハードウェア又はプロセッサ上で実行するソフトウェアのいずれかとして実装される。これらは、単一ユニットに完全に又は部分的に組み込まれることもできる。また、入力部41および出力部45は、単一の双方向インタフェースに組み込まれることもできる。
以下で提案する解決策について、映像ポストプロダクション又は視覚効果の分野における構成管理システムに関してより詳細に説明する。もちろん、この解決策は、この応用に限定されない。
簡易なキー/バリュー構成システムは、値を戻すためにキーの要求のみ行う。例えば、v1からv10の10バージョンを有するソフトウェアツールTool_Aを考える。システムは、"version for Tool_A"をクエリされ、値"v10"を返す。提案するシステムは、キーと共に修飾子を受け取ることによりこのクエリを拡張する。
software version for Tool_A, production “Foo”-> v10
software version for Tool_A, production “Bar”-> v9
software version for Tool_A, production “Foo”-> v10
software version for Tool_A, production “Bar”-> v9
この“production”修飾子は、クエリが行われる環境を記述する。この単純な例において、構成管理システムは、両方のプロダクションに関してTool_Aの異なるバージョンを定義する。この修飾子は、「文脈(context)」として知られ、複合値であり、「要素」からなる。有利には、ユーザに関連する「文脈」が定義され、下記を含むユーザ環境を完全に記述する。
- Job (短縮したプロダクション名)
- Role (アーティスト、開発者、管理者)
- Scene (シーン名、例えば、“build”)
- Shot (ショット名、例えば、“AFA_101”)
- Department (例えば、“animation”、“rigging”、“modelling”)
- Site (例えば、ロンドン、バンクーバ、モントリオール)
- Job (短縮したプロダクション名)
- Role (アーティスト、開発者、管理者)
- Scene (シーン名、例えば、“build”)
- Shot (ショット名、例えば、“AFA_101”)
- Department (例えば、“animation”、“rigging”、“modelling”)
- Site (例えば、ロンドン、バンクーバ、モントリオール)
全てのコンテキスト構成がクエリのために定義される必要があるとは限らない。上記例に戻ると、構成管理システムに関する有効なクエリは、例えば、下記のようなものである。
software version for Tool_A, Job=WWZ, Scene=“build”,
Shot=”AFA_101”, Site=”London”-> v8
software version for Tool_A, Job=WWZ, Site=”London”-> v9
software version for Tool_A, Job=WWZ, Scene=“build”,
Shot=”AFA_101”, Site=”London”-> v8
software version for Tool_A, Job=WWZ, Site=”London”-> v9
構成管理システムは、コンテキスト内の値を使用して決定木を使用するクエリを解決する。
構成値は、低密度なツリーに格納され、ツリーの各ノードがコンテキスト要素を表す。例えば、任意の文脈木は下記のように定義され、キー「A」の構成値に低密度に存在する。
root A=10
|--job(a) A=20
| |--scene(a)
| | |--shot(a) A=30
| |--scene(b) A=40
|--job(b)
root A=10
|--job(a) A=20
| |--scene(a)
| | |--shot(a) A=30
| |--scene(b) A=40
|--job(b)
システムは、キーAの値に関してクエリされ、文脈を提示する。
決定木が単一ルートノードを含むことも有効である。例えば、
root
| A=1
| C=2
| D=2
| E=2
である。この場合、入力文脈は無視される、すなわち、デフォルトでルートに一致し、単に入力キーが出力値を解決するために使用される。
root
| A=1
| C=2
| D=2
| E=2
である。この場合、入力文脈は無視される、すなわち、デフォルトでルートに一致し、単に入力キーが出力値を解決するために使用される。
一実施形態では、決定木に対する変更が記録され、バージョン管理される。実際には固有の暗号ハッシュとして表されるのが好ましいが、簡単にするために増分バージョンナンバーが仮定される。ツリーに対する変更の各セットは、変更が生じた各ノードにおいてバージョン変更として表され、ツリーをルートノードに対してカスケード表示する。ツリーに対するいかなる変更も新たなルートノードバージョンとなる。上記からの例を用いて、文脈ノードを生成するが、下記の例は、構成に対する変更の効果を示す。
初期状態
root [v1]
| A=10
|--node_a [v1] A=20
| |--node_b [v1]
| | |--node_c [v1] A=30
| |--node_d [v1] A=40
|--node_eb [v1]
root [v1]
| A=10
|--node_a [v1] A=20
| |--node_b [v1]
| | |--node_c [v1] A=30
| |--node_d [v1] A=40
|--node_eb [v1]
ケース1:単一ノードに対する更新
この第1の例のnode_a.node_b.node_cは、A=31に変更される。
root [v2]
| A=10
|--node_a [v2] A=20
| |--node_b [v2]
| | |--node_c [v2] A=31 *update*
| |--node_d [v1] A=40
|--node_e [v1]
この第1の例のnode_a.node_b.node_cは、A=31に変更される。
root [v2]
| A=10
|--node_a [v2] A=20
| |--node_b [v2]
| | |--node_c [v2] A=31 *update*
| |--node_d [v1] A=40
|--node_e [v1]
ケース2:ノードへのデータの追加
ここで値A=50がのnode_eに追加される。
root [v3]
| A=10
|--node_a [v2] A=20
| |--node_b [v2]
| | |--node_c [v2] A=31
| |--node_d [v1] A=40
|--node_e [v2] A=50 *add*
ここで値A=50がのnode_eに追加される。
root [v3]
| A=10
|--node_a [v2] A=20
| |--node_b [v2]
| | |--node_c [v2] A=31
| |--node_d [v1] A=40
|--node_e [v2] A=50 *add*
ケース3:1つの新たなグラフでさらに複数の変更
ここでnode_eがA=51に変更され、さらにnode_dがA=41に変更される。
root [v4]
| A=10
|--node_a [v3] A=20
| |--node_b [v2]
| | |--node_c [v2] A=31
| |--node_d [v2] A=41 *update*
|--node_e [v3] A=51 *update*
ここでnode_eがA=51に変更され、さらにnode_dがA=41に変更される。
root [v4]
| A=10
|--node_a [v3] A=20
| |--node_b [v2]
| | |--node_c [v2] A=31
| |--node_d [v2] A=41 *update*
|--node_e [v3] A=51 *update*
一実施形態では、構成は、多数の個別のドメインを含む。そのようなドメインの例は、一般的なアプリケーション設定、ソフトウェアバージョン、ソフトウェアパス、又は他の場所との資産の同期である。各ドメインは、それ自体のツリーを有し、通常、多数のドメインが単一のアプリケーションにおいて使用される。例えば、Cコンパイルされたアプリケーションは、実行中に、ダイナミックリンクに関する実行ファイルおよび$LD_LIBRARY_PATH環境変数にファイルシステムパスを要求する。上記から、一般的なアプリケーション設定およびソフトウェアバージョンに関連するドメインの組み合わせが要求される。これら2つのドメインの関係は重要であり、システムは、2つの個別のドメイングラフ全体でのグループ化を表する必要がある。この目的に関して、決定木は拡張される。
上記において、簡易な値(例えば、"10")が使用され、特定のキー("A")に従ってノードに返された。ドメインの課題を解決するために、提案するシステムは、個別のドメイン名("Software versions")およびそのルートノードのバージョンによって特定される、ノード上の値が簡易な値("10")又はその他のグラフへの参照を含むことができるように、ドメイン同士のチェーニング(chaining)を可能にする。これは、外部ツリーの明示的なバージョンに対する要求された値の決定を保留することを可能にする。
ノード上の値が参照値、例えば、"Software versions, v99"であり、その後、オリジナルクエリ、すなわち、文脈および要求されたキーが、決定に関して参照されたグラフ上に渡される。
ここで一例を挙げる。ドメイン"X"において下記キー"A"の値を考える。
root [v10]
| A=15
|--job(a) A=25
| |--scene(a)
| | |--shot(a) A=35
| |--scene(b) A=45
|--job(b) A=55
| |--scene(a) A=65
root [v10]
| A=15
|--job(a) A=25
| |--scene(a)
| | |--shot(a) A=35
| |--scene(b) A=45
|--job(b) A=55
| |--scene(a) A=65
また、ドメイン"Y"において下記キー"A"の値を考える。
root
| A=10
|--job(a) A=20
|--job(a).scene(b) A=30
|--job(b) domainX.v10(A)
|--job(b).scene(c) A=40
root
| A=10
|--job(a) A=20
|--job(a).scene(b) A=30
|--job(b) domainX.v10(A)
|--job(b).scene(c) A=40
ドメインYにおいて値をクエリすることで下記結果が得られる。
一実施形態では、単一の、パブリックの、トップレベルドメインツリーが提供され、全ての構成ドメイン、「構成マネージャ」ドメインにアクセスするためのエントリーポイントとして機能する。これらから、各ドメインが固有の名前又はカテゴリで表される。構成マネージャドメインのデータは連鎖したカテゴリドメインで構成される。
提示されたクエリは3つのコンポーネントで構成され、ここでは、例えば下記3つのカテゴリを含む。
・文脈=job, scene, shot
・カテゴリ='software versions'
・キー='tool_A'.
・カテゴリ='software versions'
・キー='tool_A'.
例示的なトップレベル決定木は下記のように見える。
root [v1]
| ‘software versions’.v11
| ‘software paths’.v12
| ‘application settings’.v2
| ‘sync settings’.v100
|--job(a) ‘application settings’.v3
|--job(b).scene(c) ‘software versions’.v10
root [v1]
| ‘software versions’.v11
| ‘software paths’.v12
| ‘application settings’.v2
| ‘sync settings’.v100
|--job(a) ‘application settings’.v3
|--job(b).scene(c) ‘software versions’.v10
ルートノードは、完全な構成システムを表すために全ドメインカテゴリを定義するであろう。
更新が構成ドメインに対してなされるとき、トップレベル決定木のルートノードは、最新のバージョンに更新され、トップレベルツリーの新たなバージョンが生成される。例えば、新たなソフトウェアバージョン構成セットはバージョンv12として利用可能である。
root [v2]
| ‘software versions’.v12
| ‘software paths’.v12
| ‘application settings’.v2
| ‘sync settings’.v100
|--job(a) ‘application settings’.v3
|--job(b).scene(c) ‘software versions’.v10
root [v2]
| ‘software versions’.v12
| ‘software paths’.v12
| ‘application settings’.v2
| ‘sync settings’.v100
|--job(a) ‘application settings’.v3
|--job(b).scene(c) ‘software versions’.v10
これは最新の利用可能な構成情報を提供するための柔軟性を与え、一方で文脈が明確にドメインバージョンを定義されているとき、安定性も与える。
Claims (13)
- ソフトウェアアプリケーションを構成するための方法であって、
−ソフトウェアアプリケーションの文脈を検索するステップ(10)であって、前記文脈は1つ又は複数の修飾子を含む、ステップと、
−前記1つ又は複数の修飾子を、前記ソフトウェアアプリケーションに関する構成識別子を判定するための決定木のノードと比較するステップ(11)と、
−前記判定した構成識別子に基づき、前記ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索するステップ(12)と、
を有する、前記方法。 - 前記決定木は、前記決定木のバージョンおよび前記構成識別子のバージョンの少なくとも1つに関する情報を含む、請求項1に記載の方法。
- 前記決定木は、所与のドメインに固有である、請求項1又は2に記載の方法。
- 前記決定木は、更なる決定木への参照を含む、請求項3に記載の方法。
- ソフトウェアアプリケーションを構成するよう構成された装置(20)であって、
−ソフトウェアアプリケーションの文脈を検索する(10)よう構成された文脈検索ユニット(22)であって、前記文脈が1つ又は複数の修飾子を含む、ユニットと、
−前記1つ又は複数の修飾子を、前記ソフトウェアアプリケーションに関する構成識別子を判定するための決定木のノードと比較する(11)よう構成された比較ユニット(23)と、
−前記判定した構成識別子に基づき、前記ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索する(12)よう構成された構成値検索ユニット(24)と、
を備えた、前記装置。 - ソフトウェアアプリケーションを構成することを可能にする命令を格納したコンピュータ可読記憶媒体であって、コンピュータによって実行されたときに、前記コンピュータに、
−ソフトウェアアプリケーションの文脈を検索するステップ(10)であって、前記文脈は1つ又は複数の修飾子を含む、ステップと、
−前記1つ又は複数の修飾子を、前記ソフトウェアアプリケーションに関する構成識別子を判定するための決定木のノードと比較するステップ(11)と、
−前記判定した構成識別子に基づき、前記ソフトウェアアプリケーションに関する1つ又は複数の構成値を検索するステップ(12)と、
を実行させる前記命令を格納した、前記コンピュータ可読記憶媒体。 - ソフトウェアアプリケーションを構成することを可能にする決定木を生成するための方法であって、
−前記ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別子を判定するステップ(30)と、
−前記判定された1つ又は複数の構成識別子を前記決定木のノードと関連付けるステップ(31)と、
−前記決定木を格納するステップ(32)と、
を有する、前記方法。 - 前記決定木に、前記決定木のバージョンおよび前記構成識別子のバージョンの少なくとも1つに関する情報を提供するステップをさらに有する、請求項7に記載の方法。
- 前記決定木のバージョンに関する情報は、新たな構成識別子が前記決定木に追加されたとき、又は構成識別子が更新されるときに更新される、請求項8に記載の方法。
- 前記構成識別子のバージョンに関する情報は、前記構成識別子が更新されるときに更新される、請求項8又は9に記載の方法。
- 前記決定木に更なる決定木への参照を提供するステップをさらに有する、請求項7乃至10のいずれかに記載の方法。
- ソフトウェアアプリケーションを構成することを可能にする決定木を生成するよう構成された装置(40)であって、
−前記ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別子を判定する(30)よう構成された構成識別子判定ユニット(42)と、
−前記判定された1つ又は複数の構成識別子を前記決定木のノードと関連付ける(31)よう構成された関連付けユニット(43)と、
−前記決定木を格納する(32)よう構成された格納ユニット(44)と、
を備えた、前記装置。 - ソフトウェアアプリケーションを構成することを可能にする決定木を生成することを可能にする命令を格納したコンピュータ可読記憶媒体であって、コンピュータによって実行されたときに、前記コンピュータに、
−前記ソフトウェアアプリケーションに関する構成値に関連付けられた1つ又は複数の構成識別子を判定するステップ(30)と、
−前記判定された1つ又は複数の構成識別子を前記決定木のノードと関連付けるステップ(31)と、
−前記決定木を格納するステップ(32)と、
を実行させる前記命令を格納した、前記コンピュータ可読記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14306270.1A EP2985691A1 (en) | 2014-08-12 | 2014-08-12 | Tree-based based configuration of a software application |
EP14306270.1 | 2014-08-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016040714A true JP2016040714A (ja) | 2016-03-24 |
Family
ID=51485535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015159684A Pending JP2016040714A (ja) | 2014-08-12 | 2015-08-12 | ソフトウェアアプリケーションを構成するための方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20160048385A1 (ja) |
EP (2) | EP2985691A1 (ja) |
JP (1) | JP2016040714A (ja) |
KR (1) | KR20160019863A (ja) |
CN (1) | CN105373376A (ja) |
TW (1) | TW201612746A (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015138498A1 (en) * | 2014-03-11 | 2015-09-17 | Citrix Systems, Inc. | Computer-implemented methods and systems for determining application matching status |
CN108234173B (zh) * | 2016-12-21 | 2021-05-04 | 中国电信股份有限公司 | 节点副本更新方法和装置 |
US10564959B2 (en) * | 2017-03-14 | 2020-02-18 | Google Llc | Shared software libraries for computing devices |
CN109962942B (zh) * | 2017-12-22 | 2022-06-07 | 天翼云科技有限公司 | 副本更新方法和装置以及计算机可读存储介质 |
CN109542624B (zh) * | 2018-11-23 | 2021-09-28 | 中国农业银行股份有限公司 | 一种应用变更的资源调配方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701472A (en) * | 1995-06-09 | 1997-12-23 | Unisys Corporation | Method for locating a versioned object within a version tree depicting a history of system data and processes for an enterprise |
US7593124B1 (en) * | 2004-02-06 | 2009-09-22 | Yazaki North America, Inc. | System and method for managing devices |
US20060168577A1 (en) * | 2005-01-21 | 2006-07-27 | Melo Antonio A V | Software development system and method |
US7370039B2 (en) * | 2005-04-05 | 2008-05-06 | International Business Machines Corporation | Method and system for optimizing configuration classification of software |
US20080082973A1 (en) * | 2006-09-29 | 2008-04-03 | Brenda Lynne Belkin | Method and Apparatus for Determining Software Interoperability |
US8165984B2 (en) * | 2008-03-28 | 2012-04-24 | Microsoft Corporation | Decision service for applications |
US8752005B2 (en) * | 2008-04-04 | 2014-06-10 | Infosys Limited | Concept-oriented software engineering system and method for identifying, extracting, organizing, inferring and querying software system facts |
US8694988B2 (en) * | 2010-10-22 | 2014-04-08 | Adobe Systems Incorporated | Runtime extensions |
US9329857B1 (en) * | 2013-03-18 | 2016-05-03 | Amdocs Software Systems Limited | System, method, and computer program for generating configuration data trees associated with a plurality of source files |
-
2014
- 2014-08-12 EP EP14306270.1A patent/EP2985691A1/en not_active Withdrawn
-
2015
- 2015-07-30 EP EP15179156.3A patent/EP2985692A1/en not_active Withdrawn
- 2015-08-06 TW TW104125499A patent/TW201612746A/zh unknown
- 2015-08-07 KR KR1020150111578A patent/KR20160019863A/ko unknown
- 2015-08-11 CN CN201510490203.8A patent/CN105373376A/zh active Pending
- 2015-08-12 JP JP2015159684A patent/JP2016040714A/ja active Pending
- 2015-08-12 US US14/825,118 patent/US20160048385A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP2985692A1 (en) | 2016-02-17 |
TW201612746A (en) | 2016-04-01 |
EP2985691A1 (en) | 2016-02-17 |
KR20160019863A (ko) | 2016-02-22 |
US20160048385A1 (en) | 2016-02-18 |
CN105373376A (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324909B2 (en) | Omega names: name generation and derivation utilizing nested three or more attributes | |
US10095698B2 (en) | Managing changes to one or more files via linked mapping records | |
CN107526777B (zh) | 一种基于版本号对文件进行处理的方法及设备 | |
US10042746B2 (en) | Callpath finder | |
US7814459B2 (en) | System and method for automated on demand replication setup | |
JP6188732B2 (ja) | マルチテナント環境におけるテナント固有のデータ・セットを管理するための、コンピュータで実施される方法、コンピュータ・プログラム製品、およびシステム | |
JP2016040714A (ja) | ソフトウェアアプリケーションを構成するための方法および装置 | |
US10534770B2 (en) | Parallelizing SQL on distributed file systems | |
US20130006935A1 (en) | Methods and apparatus related to graph transformation and synchronization | |
US8489547B2 (en) | System and method for transforming configuration data items in a configuration management database | |
CN105956166A (zh) | 数据库读写方法和读写装置 | |
US20150205834A1 (en) | PROVIDING FILE METADATA QUERIES FOR FILE SYSTEMS USING RESTful APIs | |
BR112018010857B1 (pt) | Método e aparelho de consulta de dados, e sistema de banco de dados | |
JP2021028771A (ja) | データベースサーバ装置、サーバシステム及びリクエスト処理方法 | |
US10289620B1 (en) | Reporting and data governance management | |
CN107239568B (zh) | 分布式索引实现方法及装置 | |
US20170344627A1 (en) | System for lightweight objects | |
JP7066569B2 (ja) | 情報記憶装置、情報記憶方法および情報記憶プログラム | |
US10318524B2 (en) | Reporting and data governance management | |
US8656410B1 (en) | Conversion of lightweight object to a heavyweight object | |
WO2014118560A1 (en) | Method and system for data storage | |
EP3719664A1 (en) | System and method for or sharing objects based on the universal plug and play (upnp) content directory service (cds) protocol | |
KR101053322B1 (ko) | 연주 시스템의 데이터 접근을 위한 인터페이스 시스템 및 방법 | |
Ottinger et al. | Leaving the relational database behind: Nosql | |
Lima | Report on Guidelines for Analysis of SysML Diagrams |