ソリューション開発の重要な部分はコンポーネントの作成です。Sun N1 Service Provisioning System 環境では、コンポーネントは配備可能なオブジェクトです。コンポーネントに含めることができるオブジェクトの例を次に示します。
ファイルとディレクトリのコレクション
JAR ファイル、EAR ファイルなどのアーカイブファイル
必要なリソースすべてを含む、完全なアプリケーション
構成ファイルやマニュアルなどの特定のアプリケーションリソース
N1 SPS ソフトウェアでは、コンポーネントのバージョンを取得できます。プラグインのコンポーネントを変更し、これらのコンポーネントを N1 SPS 環境にチェックインすると、コンポーネントに新しいバージョン番号が割り当てられます。プラグインを使用してアプリケーションをプロビジョニングするときに、特定の配備に適切なコンポーネントのバージョンを選択できます。
Sun N1 Service Provisioning System のブラウザインタフェースを使用したコンポーネントの作成については、『Sun N1 Service Provisioning System 5.2 プランとコンポーネントの開発者ガイド』の「コンポーネントを作成する」を参照してください。
単純コンポーネントには、ファイル、ディレクトリ、アーカイブファイル、またはアプリケーションなどの単一の物理リソースが含まれます。単純コンポーネントはほかのコンポーネントを参照しません。
複合コンポーネントは、ほかの単純コンポーネントまたは複合コンポーネントを参照するだけです。複合コンポーネントには、直接、物理リソースは含まれません。
次の XML の例は、システムコンポーネントタイプ system#CR Simple Base を拡張して JAR ファイルを含めた単純コンポーネントを示します。コンポーネントの定義に使用する特定の要素や属性については、『Sun N1 Service Provisioning System 5.2 XML スキーマリファレンスガイド』の第 3 章「コンポーネントのスキーマ」を参照してください。
<?xml version="1.0" encoding="UTF-8"?> <component xmlns='http://www.sun.com/schema/SPS' name='plugin-core.jar' version='5.2' description='Jar file implementation of core plugin services' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' author='system' softwareVendor='Sun Microsystems' path='/system' xsi:schemaLocation='http://www.sun.com/schema/SPScomponent.xsd'> <extends> <type name='system#CR Simple Base'> </type> </extends> <resourceRef> <resource name='/system/plugin-core.jar' version='1.1'> </resource> </resourceRef> </component>
コンポーネントまたはプランを作成するときに、コンポーネントの配備時またはプランの実行時に使用する変数を定義できます。多くのコンポーネントタイプには共通の変数が含まれます。たとえば、installPath はコンポーネントのインストール先を定義します。installPath 変数の値は、コンポーネントがホストにインストールされるときに決定します。
変数は、コンテナコンポーネントの変数など、別の変数を参照できます。たとえば、単純コンポーネントの installPath 変数の値は、その親コンテナコンポーネントの installPath 変数の値にできます。
変数を定義するときに変数の名前とデフォルト値の属性を指定します。デフォルト値は、次の場所から取得できます。
リテラル文字列
ホスト (target キーワードを使用)
別のコンポーネント (component キーワードを使用)
ユーザーのセッション (session キーワードを使用)
これらの属性の使用については、『Sun N1 Service Provisioning System 5.2 プランとコンポーネントの開発者ガイド』の「置換に使用できる変数の種類」を参照してください。
変数は、ブラウザインタフェースを使用して定義するか、または直接 XML ファイルで定義できます。XML ファイルでは、変数は <var> 要素を使用して定義され、<varList> 要素内に追加されます。
次の XML フラグメントでは、複数の変数を定義しています。
<varList> <var name='installPath' default=':[target:sys.raDataDir]:[/]systemcomps'> </var> <var name='pluginClasspath' default=':[installPath]:[/]plugin-core.jar'> </var> <var name='fileBrowser' default='com.sun.n1.sps.pluginimpl.system.browse.FilesystemBrowserFactory'> </var> <var name='directoryBrowser' default='com.sun.n1.sps.pluginimpl.system.browse.FilesystemBrowserFactory'> </var> <var name='symlinkBrowser' default='com.sun.n1.sps.pluginimpl.system.browse.FilesystemBrowserFactory'> </var> </varList>
構成テンプレートは、特殊なファイルコンポーネントです。構成テンプレートを使用すると、配備するファイル内でトークン置換を行うことができます。この使用方法の例として、DNS の /etc/resolv.conf ファイルの配備があります。配備の目標は、たとえばファイルで変数置換を使用し、ホストタイプ属性を使用して最も近い DNS サーバーを定義することです。構成テンプレートの例を次に示します。
search :[search_path] nameserver :[primary_dns] nameserver :[secondary_dns]
この場合、構成テンプレートによって search_path、 primary_dns、secondary_dns というコンポーネント変数が自動的に作成されます。すると、プランやコンポーネントの制御で変数置換を使用して、適切な値を指定できます。
構成テンプレートの定義方法については、『Sun N1 Service Provisioning System 5.2 XML スキーマリファレンスガイド』を参照してください。