コンポーネントは、別のコンポーネントとインストール互換になることが可能です。最初のコンポーネントは、もう一方のコンポーネントと呼び出し互換である必要があります。以下の場合、もう一方のコンポーネントの使用は、最初のコンポーネントの使用と安全に置き換えられる必要があります。
もう一方のコンポーネントのインストールブロックへの呼び出しを行う場合
コンポーネントがもう一方のコンポーネントから拡張される場合
コンポーネントがもう一方のコンポーネントへの参照を含む場合
インストールの互換性は、構造上の互換性とも呼ばれます。
既存のすべてのインストール済みコンポーネントは、別のインストール互換コンポーネントにより安全に置き換えることができます。オリジナルがどのようにインストールされたかを記述するデータ構造を変更する必要はありません。呼び出し互換のコンポーネントは、データ構造を適切に更新するために再インストールしなければならない場合があるので、呼び出し互換性はかなり弱いステートメントになります。
インストールの互換性を保つためには、両方のコンポーネントは同じバージョンツリーに属している必要があります。2 つの別々のバージョンツリーからのコンポーネントであってはなりません。
N1 SPS製品は、「コンポーネント型」と呼ばれる、型として機能するコンポーネントだけにインストールの互換性を要求します。コンポーネント型が新しいバージョンのコンポーネントを参照するために更新されるときには、新しいバージョンは元のバージョンに対してインストール互換性を持ちます。 したがって、その型から派生するすべての既存コンポーネントを再構築や再インストールせずに、コンポーネント型に対してインストール互換の更新を実行できます。
インストール互換ではないコンポーネント型への変更を行う場合、新しい名前を持つ新しいバージョンツリーに新しいコンポーネント型を作成する必要があります。このような場合、新しいコンポーネント型は、元のコンポーネント型から拡張することによって、呼び出し互換性を維持できます。 型間の関係を簡単に特定するには、コンポーネント型名を符号化するバージョン管理システムを使用します。 たとえば、コンポーネント名 EJB-1.0 と EJB-1.1 で、EJB-1.1 が EJB-1.0 コンポーネント型の新しいバージョンであることを簡単に示すことができます。
インストール互換である場合は呼び出し互換でもありますが、呼び出し互換であってもインストール互換であるとは限りません。また、コンポーネントが呼び出し互換でない場合は、インストール互換になることはできません。