N1 Service Provisioning System 4.1 リファレンスガイド

インストールの互換性

B が A に対して呼び出し互換で、以下の場合に A の使用を安全に B の使用と置き換えられる場合、コンポーネント B はコンポーネント A に対してインストール互換性を持つと言えます。

インストールの互換性とは、基本的に構造上の互換性を意味します。

インストール互換性によって課される制約は、オリジナルがインストールされたデータ構造を変更せずに、既存のインストール済みコンポーネントを別のインストール互換コンポーネントに安全に置き換えるためのものです。 呼び出し互換のコンポーネントは、データ構造を適切に更新するために元のコンポーネントに再インストールしなければならない場合があるので、呼び出し互換性はインストール互換よりかなり弱いものです。


注 –

インストールの互換性を保つためには、B と A は同じバージョンツリーに属している必要があります。 2 つの別々のバージョンツリーからのコンポーネントであってはなりません。


プロビジョニングソフトウェア は、型として機能するコンポーネントだけにインストールの互換性を要求します。 具体的には、コンポーネント型が新しいバージョンのコンポーネントを参照するために更新されるときには、新しいバージョンは元のバージョンに対してインストール互換性を持ちます。 したがって、その型から派生するすべての既存コンポーネントを再構築や再インストールせずに、コンポーネント型に対してインストール互換の更新を実行できます。 結果として、インストール互換ではないコンポーネント型が変更された場合、クライアントはその変更を独自の型名を持つ新しい別のコンポーネントバージョンツリーとして符号化する必要があります。 このような場合、新しいコンポーネント型は、元のコンポーネント型から拡張することによって、呼び出し互換性を維持できます。 型間の関係を簡単に特定するには、コンポーネント型名を符号化するバージョン管理システムを使用します。 たとえば、コンポーネント名 EBJ-1.0EJB-1.1 がある場合、EJB-1.1EJB-1.0 コンポーネント型の新しいバージョンであることを簡単に特定できます。

インストール互換である場合は呼び出し互換でもありますが、呼び出し互換であってもインストール互換であるとは限りません。 また、呼び出し互換でない場合は、インストール互換ではありません。

ブール型演算子

この節では、ブール型演算子として機能し、<if> 手順の条件内で使用される要素を紹介します。 ブール型演算子は、true または false として評価する属性を持っています。

istrue ブール型演算子

特定の値が true かどうかを判断するために使用するブール型演算子です。 「value」という属性を 1 つ含み、子要素は持ちません。 「value」属性の値が大文字小文字も含めて「true」と等しいときだけ、true となります。

istrue ブール型演算子の属性

名前 

型  

必須 

構成可能 

説明  

value 

文字列 

必須  

はい 

「true」と比較する値  

istrue ブール型演算子の例

要素  

結果 

<istrue value="True"/> 

true 

<istrue value="yes"/> 

false 

<istrue value=":[var]"/> 

var の値が true の場合、true  

equals ブール型演算子

特定の値が別の値と等しいかどうかを判断するために使用されるブール型演算子です。 属性「value1」、「value2」、「exact」を含み、子要素は持っていません。 「value1」属性と「value2」属性の値が等しい ときだけ、true となります。 「exact」が true の場合は、大文字小文字を含めて等しくなければなりません。その他の場合は大文字と小文字は区別されません。


注 –

<istrue value="..."/> は、<equals value1="..." value2="true"/> の構文上の短縮形です。


equals ブール型演算子の属性

名前  

型 

必須 

構成可能 

説明 

value1 

文字列  

はい 

可能 

比較する値  

value2 

文字列  

はい 

可能 

比較するもう 1 つの値 

exact 

ブール型 

いいえ  

不可 

true の場合は大文字小文字も区別され、false の場合は区別されない。 デフォルトは false 

equals ブール型演算子の例

要素  

結果 

<equals value1="True" value2="true"/> 

true 

<equals value1="True" value2="true" exact="true"/> 

false 

<equals value1="apple" value2="apple" exact="true"/> 

true 

<equals value1="apple" value2="orange"/> 

false 

<equals value1=":[var1]" value2=":[var2]"/> 

var1 の値が var2 の値と等しい場合、true  

matches ブール型演算子

特定の値がパターンに一致するかどうかを判断するために使用されるブール型演算子です。 属性「value」、「pattern」、「exact」を含み、子要素は持ちません。 「value」属性が「pattern」属性の値に含まれる glob スタイルのパターンに一致する場合だけ、true となります。 「exact」が true の場合は、大文字小文字を含めて一致しなければなりません。その他の場合は大文字と小文字は区別されません。

matches ブール型演算子の属性

名前  

型 

必須 

構成可能 

説明 

value 

文字列  

はい 

はい 

パターンと合わせられる値  

pattern 

文字列 

はい  

はい 

一致しなければならないパターン 

exact  

boolean 

いいえ 

不可  

true の場合は大文字小文字も区別され、false の場合は区別されない。 デフォルトは false 

matches ブール型演算子の例

要素  

結果 

<matches value="True" pattern="true"/> 

true 

<matches value="True" pattern="t*"/> 

true 

<matches value="blue" pattern="*u"/> 

false 

<matches value="True" pattern="t?ue"/> 

true 

<matches value="Tue" pattern="t?ue"/>  

false 

<matches value="True" pattern="t*" exact="true"/> 

false 

<matches value=":[var1]" pattern=":[var2]"/>  

var1 の値が var2 のパターンに一致した場合、true  

 

not ブール型演算子

別のブール型演算子の結果を否定するブール型演算子です。 属性を含まず、ブール型演算子である子要素を 1 つだけ含みます。 含んでいる演算子が true でない場合だけ、true となります。

not ブール型演算子の例

要素 

結果 

<not><istrue value="True"/></not>  

false 

<not><equals value1="apple" value2="orange"/></not> 

true  

 

and ブール型演算子

他のブール型演算子の結果の AND 論理演算を行うブール型演算子です。 属性は含みません。 ブール型演算子の子要素をいくつでも含むことができます。 すべての子要素が true の場合だけ、true となります。

and ブール型演算子の例

要素  

結果 

<and/> 

true 

<and><istrue value="True"/></and> 

true 

<and><equals value1="apple" value2="orange"/></and> 

false 

<and> <matches value="apple" value2="ap*e"/> <istrue value="TRUE"/> <not><equals value1="apple" value2="orange"/></not></and> 

true 

<and> <matches value="apple" value2="ap*e"/> <istrue value="TRUE"/> <equals value1="apple" value2="orange"/></and> 

false  

or ブール型演算子

他のブール型演算子の結果の OR 論理演算を行うブール型演算子です。 属性は含みません。 ブール型演算子の子要素をいくつでも含むことができます。 True である子要素を 1 つ以上含む場合だけ、true となります。

or ブール型演算子の例

要素  

結果 

<or/> 

false 

<or><istrue value="True"/></or> 

true 

<or><equals value1="apple" value2="orange"/></or> 

false 

<or> <matches value="apple" value2="p*e"/> <istrue value="FALSE"/> <equals value1="apple" value2="orange"/></or> 

false 

<or> <matches value="apple" value2="p*e"/> <not><istrue value="FALSE"/></not> <equals value1="apple" value2="orange"/></or>  

true 

属性の種類

entityName 型

entityName 型の属性は最長 512 で、以下のパターンに一致します。


[a-zA-Z_][0-9a-zA-Z-_. ]* 

systemName 型

systemName 型の属性は最長 64 で、以下のパターンに一致します。


 [a-zA-Z_][0-9a-zA-Z-_. +]* 

identifier 型

identifier 型の属性は最長 32 で、以下のパターンに一致します。


[a-zA-Z_][0-9a-zA-Z_]* 

pathName 型

pathName 型の属性は最長 512 で、以下のパターンのどれかに一致します。


 "/" ( "/" identifier )+ 

pathReference 型

pathReference 型の属性は、以下の構文を持っています。


pathReference: 	
	absolutePath 	
	relativePath  

absolutePath: 
	"/"
	"/" relativePath

relativePath:
	relativePathStart
	relativePathStart "/" relativePath  

relativePathStart:
	".."
	identifier 

modifierEnum 型

modifierEnum 型の属性の値は、ABSTRACT または FINAL のどちらかです。 一般的に、ABSTRACT は関連エンティティが派生コンポーネントによって無効にされる必要があることを指し、FINAL は関連エンティティが無効にできないことを指します。

accessEnum 型

accessEnum 型の属性の値は、PUBLIC、PROTECTED、PATH、または PRIVATE です。 一般的に、PUBLIC は関連エンティティのアクセスが無制限なことを指し、PROTECTED はアクセスが派生コンポーネントと同じパスのエンティティに限られることを指します。PATH は、アクセスが同じパスのエンティティに限られることを意味し、PRIVATE はアクセスが宣言コンポーネントだけに限られることを意味します。

version 型

version 型の属性は、以下のパターンに一致します。


[0-9]+\.[0-9]+ 

schemaVersion 型

schemaVersion 型の属性は、現在 1 つの値しか持てません。


4.1 

コンポーネント変更の互換性

この節では、コンポーネントに加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。

コンポーネント属性の変更

変更内容 

インストール互換 

呼び出し互換 

非最終から最終 

なし 

あり 

最終から非最終 

あり  

あり  

非抽象から抽象  

なし 

あり 

抽象から非抽象 

あり 

あり 

アクセス制限の強化 

なし  

なし  

アクセス制限の緩和  

あり 

あり 

説明、ラベル、ソフトウェアベンダー、または作成者の変更 

なし  

あり  

名前またはパスの変更  

なし 

あり 

単純コンポーネントから複合コンポーネントへの変更  

なし 

なし 

複合コンポーネントから単純コンポーネントへの変更  

なし 

なし  

プラットフォームの変更

この節では、プラットフォームに加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。

変更内容 

インストール互換 

呼び出し互換 

より一般的なプラットフォームへの変更 

あり 

あり 

より固有のプラットフォームへの変更 

なし  

あり  

関係性のないプラットフォーム 

なし 

あり  

ここでは、プラットフォーム X が Y の子孫の場合、プラットフォーム X は Y より固有となります。 X が Y の祖先の場合、プラットフォーム X は Y より一般的になります。

LimitToHostSet の変更

この節では、LimitToHostSet に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。

変更内容 

インストール互換 

呼び出し互換 

limitToHostSet へのすべての変更 

なし 

あり  

プラットフォームと異なり、limitToHostSet は明示的な制御の存在しない一般的なクライアント固有のホストセットを指定します。 メンバーシップはいつでも変更される可能性があるので、多少でも固有のホストセットの概念を強制することはできません。

Extends の変更

この節では、Extends に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。

変更内容 

インストール互換 

呼び出し互換 

オリジナルの新しいベースコンポーネントインスタンス  

なし 

あり 

新しいものの元のベースコンポーネントインスタンス  

なし 

なし 

オリジナルと無関係な新しいベースコンポーネント  

なし 

なし 

オリジナルとインストール互換である新しいベースコンポーネント  

あり 

あり 

オリジナルと呼び出し互換である新しいベースコンポーネント  

なし 

あり  

変数の変更

この節では、変数に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。

変更内容 

インストール互換 

呼び出し互換 

新しい変数の追加 

なし  

あり  

非専用変数の削除または名前変更  

なし 

なし 

専用変数の削除または名前変更 

あり 

あり 

最終変数のデフォルト値の変更 

なし  

あり  

非最終変数とデフォルト値の変更  

あり 

あり 

非最終から最終 

なし 

あり 

最終から非最終 

あり  

あり  

非抽象から抽象  

なし 

あり 

抽象から非抽象 

あり 

あり 

アクセス制限の強化 

なし  

なし  

アクセス制限の緩和  

なし  

あり  

コンポーネント Ref リスト の変更

この節では、コンポーネント Ref リスト に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。

変更内容 

インストール互換 

呼び出し互換 

非最終から最終 

なし 

あり 

最終から非最終 

あり  

あり  

オリジナルの新しい型インスタンス  

なし 

あり 

新しいものの元の型インスタンス 

なし 

なし 

オリジナルと関連性のない新しい型 

なし  

なし  

オリジナルとインストール互換である新しい型 

あり  

あり  

オリジナルと呼び出し互換である新しい型  

なし 

あり  

コンポーネント Ref の変更

この節では、コンポーネント Ref に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。

変更内容 

インストール互換 

呼び出し互換 

非最終から最終 

なし 

あり 

最終から非最終 

あり  

あり  

非抽象から抽象  

なし 

あり 

抽象から非抽象 

あり 

あり 

installMode の変更 

なし  

なし  

新しいコンポーネント ref の追加  

なし 

あり 

入れ子にされたコンポーネント ref の削除または名前変更  

なし 

なし 

最上位コンポーネント ref の削除または名前変更  

なし 

なし 

入れ子にされたコンポーネントの argList 引数の追加、変更、または削除  

なし 

あり 

最上位コンポーネントの argList 引数の追加、変更、または削除  

あり  

あり 

オリジナルの新しい型インスタンス 

なし 

あり 

新しいものの元の型インスタンス 

なし  

なし  

オリジナルと関連性のない新しい型  

なし 

なし 

オリジナルとインストール互換である新しい型  

あり 

あり 

オリジナルと呼び出し互換である新しい型  

なし 

あり 

オリジナルの新しい入れ子 comp インスタンス  

なし 

あり 

新しいものの元の入れ子 comp インスタンス  

なし 

なし  

オリジナルと関係のない新しい入れ子 comp  

なし 

なし  

オリジナルとインストール互換の新しい入れ子 comp  

あり 

あり 

オリジナルと呼び出し互換の新しい入れ子 comp  

なし 

あり  

リソースの変更

この節では、リソースに加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。

変更内容 

インストール互換 

呼び出し互換 

非最終から最終 

なし 

あり 

最終から非最終 

あり  

あり  

非抽象から抽象  

なし 

あり 

抽象から非抽象 

あり 

あり 

インストールパス、名前、グループ、またはユーザーの変更 

なし  

あり  

rsrcName、rsrcVersion の変更  

なし 

あり 

インストール、制御、アンインストールブロックの変更

この節では、インストール、制御、アンインストールブロックに加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。

変更内容 

インストール互換 

呼び出し互換 

非最終から最終 

なし 

あり 

最終から非最終 

あり  

あり  

非抽象から抽象  

なし 

あり 

抽象から非抽象 

あり 

あり 

アクセス制限の強化 

なし  

なし  

アクセス制限の緩和  

なし  

あり 

新しい非専用ブロックの追加 

なし  

あり 

新しい専用ブロックの追加 

あり  

あり  

非専用ブロックの削除または名前変更  

なし 

なし 

専用ブロックの削除または名前変更 

あり 

あり 

ブロック本体の変更 

あり  

あり  

ブロックの局所変数の追加、変更、または削除  

あり  

あり 

専用ブロックのパラメタの追加、変更、または削除  

あり 

あり 

必須パラメタの非専用ブロックへの追加  

なし 

なし 

オプションパラメタの追加 

あり 

あり 

オプション/必須パラメタの削除 

あり  

あり  

オプションのパラメタの名前変更 

あり  

あり  

非専用ブロックの必須パラメタの名前変更 

なし  

なし  

非専用ブロックでのパラメタのオプションから必須への変更 

なし  

なし  

パラメタの必須からオプションへの変更  

あり 

あり 

パラメタ displayMode の変更 

あり  

あり 

パラメタ prompt の変更 

あり  

あり  

スナップショットブロックの変更

準備、キャプチャ、クリーンアップブロックを処理する場合以外、スナップショットブロックの互換性マトリックスは、基本的に上記の他のブロックのマトリックスと同じです。

変更内容 

インストール互換 

呼び出し互換 

準備/クリーンアップブロックの追加、変更、または削除  

あり 

あり 

キャプチャ手順の追加、変更、または削除 

あり 

あり  

Diff Ignore の変更

この節では、Diff Ignore に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。

変更内容 

インストール互換 

呼び出し互換 

ignore 指示の追加、変更、または削除  

あり 

あり  

ignore 指示は、diff 実行時にしか考慮されず、既存のスナップショットの状態に影響を与えることはありません。