Sun N1 Service Provisioning System 5.2 プラグイン開発ガイド

プラグインのパッケージ化

プラグインは Java アーカイブ (JAR) ファイルとしてパッケージ化します。JAR ファイルの内容および内容を解釈するための命令は、JAR ファイルの最上位ディレクトリにある plugin-descriptor.xml ファイルに記述します。このファイルは署名することもできます。プラグイン記述子の構文は、2001 年 5 月 2 日付けの W3C 勧告 (http://www.w3.org/TR/2001/xmlschema-0-20010502/) に従った XML スキーマを使用して指定されています。このスキーマを Sun StudioTM や NetBeans などの開発 IDE とともに使用して、プラグイン記述子ファイルの構文の妥当性を判断できます。

推奨される命名方法

重複を避けるため、プラグインは Java パッケージの命名規則に従い、com.companyname. productname の形式にする必要があります (たとえば com.sun.solaris )。フォルダ内のオブジェクトはすべて、プラグイン名を反映したフォルダディレクトリ構造に配置する必要があります (たとえば /com/sun/solaris)。プラグインの JAR ファイルの名前は、 pluginname_ version.jar の形式である必要があります (たとえば com.sun.solaris_1.1.jar )。

インストールに関する考慮事項

プラグインをインストールするには、サービスプロビジョニングの管理者がプラグインの JAR ファイルをロードします。プラグインは、ブラウザインタフェースまたはコマンド行インタフェースを使用して N1 SPS 環境にインポートできます。プラグインのインポート時には、プラグイン記述子ファイルおよびプラグインの内容の妥当性検査が行われます。ブラウザインタフェースでは、インポート処理中のエラーが強調表示されます。

プラグインのインポート方法については、『Sun N1 Service Provisioning System 5.2 システム管理者ガイド』を参照してください。

プラグインのアップグレードに関する考慮事項

プラグインを既存のバージョンから新しいバージョンにアップグレードするには、パッチに必要な内容のみを含むパッチ JAR ファイルを用意します。たとえば、version 1.2 と 1.3 の間で 2 つのコンポーネントタイプを変更しただけの場合、アップグレードパッチには新しいコンポーネントタイプの XML ファイルのみを含めます。パッチは、順番に適用して複数のバージョンにアップグレードできるように定義します。たとえば、version 1.0 から 1.2 にアップグレードする場合、ユーザーは最初に 1.0 から 1.1 へのアップグレードを適用し、次に 1.1 から 1.2 へのアップグレードを適用します。アップグレードパッチは、以前にロードされているプラグインのバージョンに付加する形で提供する必要があります。特定の既存のバージョン (1.0 など) から特定の新しいバージョン (1.3) にアップグレードするパッチを作成することもできます。ただし、任意のバージョンから新しいバージョンにアップグレードするパッチを作成することはできません。

プラグインのアンインストール

プラグインをアンインストールするには、次の作業を行う必要があります。

プラグインのアンインストール方法については、『Sun N1 Service Provisioning System 5.2 システム管理者ガイド』を参照してください。

プラグインバージョンのアンインストール

プラグインの個々のパッチをアンインストールすることはできません。また、旧バージョンのプラグインによって作成されたオブジェクトを削除することはできません。この内容を削除するには、現バージョンのプラグインをアンインストールし、旧バージョンを再インストールする必要があります。別の方法として、旧バージョンのプラグインのコードをインストールすると同時に、プラグインで定義されているオブジェクトの新バージョンを作成するアンチパッチを作成することもできます。

コンポーネントのバージョンと依存関係

プラグインで定義されているオブジェクトは、プラグイン記述子ファイルで定義されている順序でインストール時にロードされます。これらのオブジェクトは、プラグインで以前に定義されているオブジェクト、またはオブジェクトを定義しているプラグインが直接依存するプラグイン内のオブジェクトだけを参照できます。依存関係はプラグイン記述子ファイルで宣言する必要があります。

バージョン管理に関する考慮事項

N1 SPS ソフトウェアでは、プランとコンポーネントのバージョンを取得できます。プラグイン内のプランやコンポーネントを変更し、これらのオブジェクトを N1 SPS 環境にチェックインすると、オブジェクトに新しいバージョン番号が割り当てられます。プラグイン配備の一環として、プラグインのプランとコンポーネントの最新バージョンを使用するか、旧バージョンを使用するかを選択できます。

プラグインで、タイプと名前がシステム内の既存のオブジェクトと同じであるバージョン管理対象オブジェクトを作成しようとすると、オブジェクトの新バージョンが作成されます。プラグイン定義で、このオブジェクトのメジャーバージョンを増分すると明示的に定義していない場合は、オブジェクトのマイナーバージョンが増分されます。

名前の重複を避けるため、プラグインではコンポーネントやプランなどのバージョン管理対象オブジェクトを、ほかのプラグインによって作成されたディレクトリに配置できません。

次のオブジェクトはバージョン管理されません。

プラグインで、タイプと名前が既存のオブジェクトと同じであるバージョン管理対象外のオブジェクトを作成しようとすると、名前の重複を避けるため、オブジェクト名の前にプラグイン名が付加されます。

証明書

1 つのバージョンのプラグイン記述子ファイルを署名した場合、そのプラグインのそのあとのバージョンでもファイルを署名する必要があります。プラグイン記述子ファイルに署名するには、標準の jarsigner ツールを使用します。ファイルが署名されている場合、その署名はプラグインのインストール時に公開証明書に対して確認されます。プラグインをアップグレードするときは、新バージョンの署名に使用されている証明書が、システム内の既存バージョンの署名に使用されている証明書に対して照合されます。プラグインのバージョン間で証明書の有効期限が切れていた場合は、アップグレードが失敗します。

プラグイン記述子ファイルだけでなく、プラグインの JAR に含まれるすべてのエントリに同じ証明書を使用して署名する必要があります。各エントリに添付できる証明書は 1 つだけです。

セキュリティーに関する考慮事項

プラグインには、グループまたはアクセス権を定義する機能はありません。これは、アクセス権の管理はプラグインのロード先の環境に大きく依存し、すべての環境について効果的にモデル化できないためです。

プラグインを追加する管理者が、適切なアクセス権を決定する必要があります。一般に、プラグインはすべてのユーザーが使用できるように設計されているとみなされます。ただし、顧客によっては、プラグインの使用を特定のグループに制限する場合があります。プラグインには、異なる実行権が必要な特定のフォルダが含まれる場合もあります。

ブラウザインタフェースでのプラグインの表示

ブラウザインタフェースでのプラグインの表示順序は、N1 SPS プロビジョニングソフトウェアによって制御されます。プラグイン定義では表示順序を制御できません。

プラグインの readme.txt ファイル

プラグインには readme.txt ファイルを用意する必要があります。プラグインの readme.txt ファイルには、プラグインを使用できるようにシステムを構成する手順とプラグインに適用される著作権を記述します。一般に、readme.txt ファイルには、プラグインが機能するために必要なアクセス権、セッション変数、およびその他のインスタンス固有の設定を記述する必要があります。具体的には、プラグインによって作成されるフォルダに対するアクセス権を設定する手順や、必要なセッション変数、その説明、および暗号化の方法を列挙する手順を記述します。