バージョン 6.3.3
 —  ツールおよびユーティリティ  —

Tamino サーバーエクステンション

次のトピックについて説明します。


はじめに

Tamino では、サーバーエクステンションの開発、実装、管理および実行が可能です。 Tamino Server Extension は、ユーザー定義ロジックを追加して Tamino Server 機能のクエリとマッピングを拡張するために使用できます。 Tamino Server Extension で使用できる機能については、Tamino ドキュメントを参照してください。

Tamino 機能を拡張するために、Tamino Server Extension パッケージを Tamino データベースにインストールします。 これらのパッケージには、他のデータとともに、COM または Java ベースの Tamino Server Extension オブジェクトが含まれています。 これらのオブジェクトのメソッドは、Tamino Server の クエリまたはマッピング機能を拡張するために、使用できます。

COM をベースとした Server Extension オブジェクトは、Natural で実装できます。 前提条件として必要な Tamino バージョンについては、Natural リリースノートをチェックしてください。

Top of page

概要

このドキュメントは、Natural 特有の Tamino Server Extension 実装の詳細、およびこのプロセスで使用される Natural ツールと手法を中心に説明します。 有効な Server Extension ファンクションコードの開発に役立つ重要な予備知識は、Tamino ドキュメントに含まれています。 Tamino Server Extension を開発する場合は、開始前に、Tamino ドキュメントの対応する章を慎重にお読みください。

Natural ベースの Tamino Server Extension は、Natural 開発ツールを使用して、開発、インストールおよび登録されると、通常の Tamino ツールを使用して、それを Tamino データベースに割り当て、Tamino スキーマでそれを使用することができます。 これらのツールの使用法は、Tamino ドキュメントを参照してください。

Top of page

Tamino Server Extension の開発

次のトピックについて説明します。

概要

Tamino Server Extension は、Natural クラスビルダを使用してを開発します。 Natural ベースの Tamino Server Extension は、定義済み構造に対応したインターフェイスを実装する NaturalX クラスです。 これらのインターフェイスの実装をサポートするために、一定の定義済み Natural モジュールが、Natural で提供されます。

SYSEXSXS ライブラリの STEPLIB としての設定

Natural に Tamino Server Extension を実装するときには、SYSEXSXS サンプルライブラリに含まれている多数の定義済み Natural モジュールを使用することができます。 これは、Tamino Server Extension が、Tamino によって定義されたインターフェイスに対応することを確認します。 Tamino Server Extension プロジェクトでこれらのモジュールを使用するには、最初に、SYSEXSXS ライブラリを STEPLIB として定義します。

Start of instruction set SYSEXSXS ライブラリを STEPLIB として定義するには

  1. Natural コンフィグレーションユーティリティを開始します。

  2. 使用する Natural パラメータファイルを選択します。

  3. [編集] > [検索]を選択して、パラメータ STEPLIB を見つけます。

  4. STEPLIB リストに「SYSEXSXS」と入力します。

  5. Natural パラメータファイルを保存します。

  6. Natural コンフィグレーションユーティリティを閉じます。

  7. Natural スタジオを再スタートします。

プロジェクトのための新規ライブラリ作成

1 つの Tamino Server Extension に対するすべての Natural モジュールを 1 つの Natural ライブラリに入れることを推奨します。 したがって、最初に、プロジェクトのための新規 Natural ライブラリを作成します。

Start of instruction set 新規ライブラリを作成するには

  1. ライブラリワークスペースで[ユーザーライブラリ]を選択します。

  2. コンテキストメニューで[新規作成]を選択します。

  3. ライブラリの名前を選択します。

NaturalX クラスの作成

Tamino Server Extension は NaturalX クラスとして実装されます。 したがって、新規クラスを作成します。

Start of instruction set 新規クラスを作成するには

  1. ライブラリワークスペースでライブラリを選択します。

  2. コンテキストメニューで[新規作成] > [クラス]を選択します。

  3. クラスの名前を選択します。

  4. コンテキストメニューで[保存]を選択します。

  5. クラスモジュールの名前を選択します。

オブジェクトデータエリアの作成

NaturalX クラスのオブジェクトデータエリアは、Tamino Server Extension のインスタンスの存続期間にそれらの値を保持する変数を持つために使用されます。

Start of instruction set オブジェクトデータエリアを作成し、それをクラスにリンクするには

  1. ライブラリワークスペースでクラスを選択します。

  2. コンテキストメニューで[新規作成] > [オブジェクトデータエリア]を選択します。

  3. オブジェクトデータエリアの名前を選択します。

オブジェクトデータエリアの編集

Tamino Server Extension のオブジェクトデータエリアは、Tamino Server Extension のインスタンス存続期間に Tamino コールバックオブジェクトへの参照を保持するために、最低でもオブジェクトハンドルを含んでいる必要があります。 Tamino コールバックオブジェクトは、Tamino により、それが Extension をロードするときに Server Extension に渡されます。 Tamino Server Extension 機能の中から Tamino 機能を呼び出すために、コールバックオブジェクトのメソッドを使用できます。

Start of instruction set コールバックオブジェクトのオブジェクトハンドルをオブジェクトデータエリアに追加するには

  1. ライブラリワークスペースで[オブジェクトデータエリア]をダブルクリックして、このエリアを編集します。

  2. [データエリアエディタ]で[挿入] > [ハンドル]を選択します。

  3. オブジェクトハンドルの名前(例:CALLBACK)を選択します。

  4. ハンドルタイプとして[オブジェクト]を選択します。

  5. [追加]ボタンをクリックします。

  6. [終了]ボタンをクリックします。

  7. 必要に応じて Server Extension でオブジェクトデータエリアに他の変数を追加します。

  8. データエリアエディタを閉じて、オブジェクトデータエリアを保存します。

接続インターフェイスのリンク

Tamino Server Extension は接続インターフェイス ISXSConn を実装しなければなりません。 このインターフェイスは、SYSEXSXS ライブラリのインターフェイスモジュール ICONN-C で宣言されます。 インターフェイスモジュールを参照できるように、SYSEXSXS ライブラリを STEPLIB として定義しておく必要があります。 このインターフェイスモジュールをクラスにリンクします。

Start of instruction set インターフェイスモジュールをクラスにリンクするには

  1. ライブラリワークスペースでクラスを選択します。

  2. コンテキストメニューで[リンク] > [インターフェイスモジュール]を選択します。

  3. SYSEXSXS ライブラリのインターフェイスモジュール ICONN-C を選択します。

Connect メソッドの実装

ISXSConn の Connect メソッドは、ハンドルをオブジェクトデータエリアのコールバックオブジェクトに保存します。 これにより、Server Extension 機能で Tamino 機能へアクセスできるようになります。

Start of instruction set Connect メソッドを実装するには

  1. ライブラリワークスペースでクラスの分岐インターフェイスを完全に拡張します。

  2. サブプログラムノード[CONNECT]を選択します。 これは、Connect メソッドを実装するサブプログラムのデフォルト名です。

  3. コンテキストメニューで[名前の変更]を選択して、サブプログラムの名前を任意の名前に変更することもできます。

  4. メソッドのサブプログラムを作成および編集するには、サブプログラムノードをダブルクリックします。

Connect メソッドの実装は、クラスのオブジェクトデータエリアおよび Connect メソッドのパラメータデータエリアの両方を含む必要があります。 メソッドの本体では、パラメータデータエリアから、下の例に示されるようにオブジェクトデータエリアに定義された対応するオブジェクトハンドルにコールバックオブジェクトハンドルを割り当てる必要があります。

また、必要に応じて、Server Extension で他の初期化コードを Connect メソッドに追加することもできます。

Server Extension 機能の追加

ユーザー独自の Server Extension 機能のクラスへの追加を始めることができます。 最初に、クラスに対する新しいインターフェイスを作成します。このインターフェイスには、Server Extension 機能を含めます。 その後、個々の機能をそのインターフェイスに追加します。

Start of instruction set 新規インターフェイスを作成するには

  1. ライブラリワークスペースでクラスのノード[Interfaces]を選択します。

  2. コンテキストメニューで[新規作成]を選択します。

  3. インターフェイスの名前を選択します。

Start of instruction set 新規 Server Extension 機能を作成するには

  1. ライブラリワークスペースでインターフェイスを選択します。

  2. コンテキストメニューで[新規作成] > [メソッド]を選択します。

  3. メソッドの名前を選択します。

  4. メソッドを選択します。

  5. [リンク] > [パラメータデータエリア]を選択します。

Tamino では、Server Extension 機能の各種タイプを区別します。 実装する Server Extension 機能のタイプに応じて、対応するパラメータデータエリアを選択します。

機能 データ
Map In 機能 パラメータデータエリア SXSMI-A
Map Out 機能 パラメータデータエリア SXSMO-A
On Delete 機能 パラメータデータエリア SXSDL-A
Event 機能 パラメータデータエリア SXSEV-A
Query 機能 パラメータデータエリア SXSQU-A

これらのパラメータデータエリアは SYSEXSXS ライブラリに含まれています。 パラメータデータエリアを参照できるように、SYSEXSXS ライブラリを STEPLIB として定義しておかなければなりません。

注意:
パラメータデータエリア SXSQU-A は単なる例です。 クエリ機能はユーザー定義パラメータを持つことができます。 したがって、それらに共通のパラメータデータエリアを定義することは可能ではありません。 クエリ機能を作成する場合は、Tamino ドキュメントを参照し、クエリ機能で可能なパラメータタイプをチェックしてください。 それから、クエリ機能のニーズと一致するプロジェクトライブラリにユーザー独自のパラメータデータエリアを作成してください。

Start of instruction set Server Extension 機能を実装するには

  1. メソッド実装を表すサブプログラムノードを選択します。

  2. コンテキストメニューで[名前の変更]を選択して、サブプログラムの名前を任意の名前に変更することもできます。

  3. メソッドのサブプログラムを作成および編集するには、サブプログラムノードをダブルクリックします。

メソッドの実装は、クラスのオブジェクトデータエリアおよびメソッドに割り当てられるパラメータデータエリアの両方を含む必要があります。 メソッドの本体は Server Extension 機能に特有のコーディングを含んでいます。

Server Extension 機能をさらに追加するには、「新規 Server Extension 機能を作成するには」を繰り返します。

クラスの保存とカタログ

最後に、クラスを保存し、プロジェクトライブラリ全体を再カタログ化します。

  1. ライブラリワークスペースでクラスを選択します。

  2. コンテキストメニューで[保存]を選択します。

  3. ライブラリワークスペースでライブラリを選択します。

  4. コンテキストメニューで[Cat all]を選択します。

Top of page

コールバックの使用

Tamino コールバックは、Server Extension 機能で使用できる Tamino Server のインターフェイスです。 それらは、Tamino Server および実行している Tamino Server で有効なシステム情報によって管理できる両方の各種データベースへのアクセスを可能にします。 Natural ベースの Tamino Server Extension 内からコールバック機能を使用するには、次の手順に従います。

Top of page

Tamino Server Extension の配置

Tamino Server Extension を実装する NaturalX クラスを開発し、オブジェクトハンドラなどの通常の Natural 分散ツールを使用してターゲット環境に配置します。 Tamino Server Extension は、Tamino サーバーが実行されているのと同じマシンにインストールする必要があります。

任意の COMSERVERID下 のターゲット環境にクラスを登録します。 必要に応じて、COMSERVERID および REGISTER コマンドの各種オプションについて、NaturalX ドキュメントを参照してください。

Top of page

Tamino Server Extension のインストール

Natural ベースの Tamino Server Extension のインストールは、あらゆる COM ベースの Tamino Server Extension のインストールと同じ手順です。

  1. Server Extension パッケージを作成するために SXS アナライザを使用します。 SXS アナライザで、NaturalX クラスのタイプライブラリを分析するためにファイルとして選択します。 NaturalX クラスの場合と同様に、タイプライブラリは、ディレクトリ <natdir>\<natvers>\Natural\Etc\<comserverid>\<classname>\<version> に存在します。<natdir> は Natural インストールディレクトリ、<natvers> は Natural バージョン、<comserverid> はクラスが登録された COMSERVERID、<classname> はクラス名、<version> はクラスバージョン(現在、常に「v1」)です。 Server Extension パッケージを作成するために、通常どおり、SXS アナライザを使用して作業を進めます。

  2. Tamino Manager の Server Extension 管理部分を使用して Tamino データベースに Server Extension パッケージをインストールします。

  3. その後、Tamino Server Extension は通常どおり、例えば、XQuery 機能で、または XML サブドキュメントを Tamino スキーマエディタでマップするために、使用できます。

Top of page

Tamino Server Extension のサンプル

Natural サンプルライブラリ SYSEXSXS には、プログラミング例として簡単な Natural ベースの Tamino Server Extension が含まれています。 このサンプルは、Employees スキーマで作動し、Server Extension 機能でスキーマのパーツ、給料データをマップします。 これらの機能は次のように動作します。

サンプル Employees スキーマおよびいくつかのサンプルデータが、SYSEXSXS サンプルライブラリの RES サブディレクトリに含まれています。

このサンプルは、SYSEXINS サンプルライブラリに含まれている Tamino デモアプリケーションを使用して快適に操作することができます。 サンプル Tamino Server Extension を実行するには、次の手順に従います。

  1. s「Tamino Server Extension の配置」および「Tamino Server Extension のインストール」に記述されているように、サンプル Tamino Server Extension を Tamino データベースにインストールします。

  2. SYSEXINS ライブラリのダイアログ MENU を開始します。

  3. Tamino URL を Tamino データベースに設定します。

  4. コレクション名として「NATSXSDemoData」を入力します。

  5. Define Tamino Schema を実行し、SYSEXSXS サンプルライブラリの RES サブディレクトリからスキーマ EmployeeSXSSchema.tsd を選択します。

  6. Load Tamino Data を実行し、SYSEXSXS の RES サンプルライブラリのサブディレクトリからデータファイル EmployeeSXSData.xml を選択します。

  7. サンプルクエリを実行し、レコードを更新します。 Employee データの一部(給与データ)が Tamino Server Extension によって処理されることに注意してください。

  8. Employee データを削除します。

  9. Employee スキーマを削除します。

Top of page