N1 Grid Service Provisioning System 5.0 XML スキーマリファレンスガイド

コンポーネントの互換性

すでに配備されているコンポーネントの新しいバージョンを作成する際には、互換性が問題になります。コンポーネントの新しいバージョンを作成する際には、そのコンポーネントを使用または参照するそのほかのオブジェクトが、変更の結果として破損しないようにする必要があります。依存性、コンポーネント包含、継承、およびコンポーネントターゲッターを使用することで、コンポーネントの使用および参照を行うことができます。

プロビジョニングソフトウェア は、次の種類のコンポーネントの互換性をサポートしています。

さまざまな時点で、データセンターのさまざまな部分に対して異なるバージョンのコンポーネントが配備できるため、開発者は互換性の要件に注意し、あるコンポーネントに対する変更がほかの既存コンポーネントに対してどのように影響するかを理解する必要があります。特定のケースでは、システムにより互換性の要件が強制される場合もあり、また開発者が新しいコンポーネントの互換性を確保しなければならない場合もあります。

あるコンポーネントに対して実施可能な変更の種類のリストは、付録 A 「コンポーネント変更の互換性」を参照してください。

呼び出しの互換性

あるコンポーネントが別のコンポーネントと呼び出し互換であるのは、以下の場合のように、最初のコンポーネントの使用を、別のコンポーネントの使用に安全に置き換えることができる場合です。

呼び出しの互換性は、API の互換性やインタフェースの互換性と同じです。


注 –

通常、2 つの呼び出し互換コンポーネントは、同じバージョンツリー内のバージョンが異なるコンポーネントです。ただし、2 つ目のコンポーネントは、最初のコンポーネントのインスタンスである場合、別のバージョンツリー内に存在することも可能です。


プロビジョニングソフトウェアでは、システムサービスを提供するコンポーネントに対して、呼び出しの互換性が強制されます。システムサービスが新しいコンポーネントを参照するよう更新される場合、新しいコンポーネントが元のコンポーネントに対して呼び出し互換性を持つようにします。これにより、システムサービスのアップグレード時にも、システムサービスのクライアントが正常に機能し続けることを保証できます。

プロビジョニングソフトウェアは、一部のインストール済みコンポーネントターゲッターに参照されているコンポーネントを解釈処理するときにも、オプションで呼び出し互換性を検証します。詳細は、「インストール済みコンポーネントターゲッター」を参照してください。

コンポーネントがその旧バージョンに対して呼び出し互換である必要はありませんが、呼び出し互換性を持たせることをお勧めします。

インストールの互換性

コンポーネントは、別のコンポーネントとインストール互換になることが可能です。最初のコンポーネントは、もう一方のコンポーネントと呼び出し互換である必要があります。以下の場合、もう一方のコンポーネントの使用は、最初のコンポーネントの使用と安全に置き換えられる必要があります。

インストールの互換性とは、構造上の互換性と同じです。

インストールの互換性の制約により、既存のインストール済みコンポーネントは、別のインストール互換コンポーネントに安全に置き換えることができる必要があります。オリジナルがどのようにインストールされたかを記述するデータ構造を変更する必要はありません。呼び出し互換のコンポーネントは、データ構造を適切に更新するために再インストールしなければならない場合があるので、呼び出し互換性はかなり弱いステートメントになります。


注 –

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


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

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