データサービス用のコードを作成するために、リソース管理アーキテクチャは、低レベルの ベース API、ベース API 上に構築されているより高いレベルのライブラリ、および、いくつかの基本的な入力情報をもとにデータサービスを自動的に生成するツール、SunPlex Agent Builder を提供します。
データサービスは、RMAPI (Resource Management (リソース管理) API) の 低レベルルーチンを使って、システム内のリソースやリソースタイプ、リソースグループの情報にアクセスしたり、ローカルの再起動やフェイルオーバーを要求したり、リソースの状態を設定したりします。これらの関数にアクセスするには、libscha.so ライブラリを使用します。RMAPI はこれらのコールバックメソッドを、シェルコマンドまたは C 関数のどちらの形でも提供できます。RMAPI ルーチンの詳細については、scha_calls(3HA) と第 3 章「RMAPI のリファレンス」を参照してください。サンプルのデータサービス用のコールバックメソッドにおける RMAPI の使用例については、第 4 章「サンプルデータサービス」を参照してください。
DSDL (Data Service Development Library (データサービス開発ライブラリ)) は、RMAPI の上に構築されており、RGM のメソッドコールバックモデルを保持しながら、上位レベルの統合フレームワークを提供します。 DSDL は、次のようなさまざまなデータサービス開発向けの機能を提供します。
libscha.so-低レベルのリソース管理 API
PMF-プロセスとその子孫を監視したり、プロセスが停止したときに再起動したりできるプロセス管理機能 (pmfadm(1M) と rpc.pmfd(1M) のマニュアルページを参照)
hatimerun-タイムアウトを適用してプログラムを実行するための機能 (hatimerun(1M) のマニュアルページを参照)
ほとんどのアプリケーションにおいて、DSDL は、データサービスを構築するのに必要なほとんどまたはすべての機能を提供します。ただし、DSDL は低レベルの API に置き換るものではなく、低レベルの API をカプセル化および拡張するためのものであることに注意してください。事実、多くの DSDL 関数は libscha.so 関数を呼び出します。これと同じように、開発者は、DSDL を使用しながら libscha.so 関数を直接呼び出すことによって、データサービスの大半を作成することができます。libdsdev.so リブラリには、DSDL 関数が含まれています。
DSDL の詳細については、第 5 章「DSDL (データサービス開発ライブラリ)」と scds_calls(3HA) のマニュアルページを参照してください。
Agent Builder は、データサービスの作成を自動化するツールです。このツールでは、ターゲットアプリケーションと作成するデータサービスについての基本的な情報を入力します。Agent Builder は、ソースコードと実行可能コード (C 言語または Korn シェル)、カスタマイズされた RTR ファイル、および Solaris パッケージを一体化して、データサービスを生成します。
ほとんどのアプリケーションでは、Agent Builder を使用すると、わずかなコードを手作業で変更するだけで完全なデータサービスを生成できます。追加プロパティの妥当性検査を必要とするような、より要件の厳しいアプリケーションの場合、Agent Builder では対応できないこともあります。しかし、このような場合でも、Agent Builder によりコードの大部分を生成できるので、手作業によるコーディングは残りの部分だけで済みます。少なくとも Agent Builder を使用することにより、独自の Solaris パッケージを生成することができます。