次のトピックについて説明します。
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 リリースノートをチェックしてください。
このドキュメントは、Natural 特有の Tamino Server Extension 実装の詳細、およびこのプロセスで使用される Natural ツールと手法を中心に説明します。 有効な Server Extension ファンクションコードの開発に役立つ重要な予備知識は、Tamino ドキュメントに含まれています。 Tamino Server Extension を開発する場合は、開始前に、Tamino ドキュメントの対応する章を慎重にお読みください。
Natural ベースの Server Extension を開発するには、Natural クラスビルダを使用します。 Tamino Server Extension は、定義済みの構造に対応したインターフェイスを実装する NaturalX クラスとして開発されます。 これらのインターフェイスの実装をサポートするために、一定の定義済み Natural モジュールが、Natural で提供されます。
ターゲット環境で、Natural ベースの Tamino Server Extension を配置するために、通常の Natural 分散ツールを使用します。
Tamino Server Extension を登録するには、Natural REGISTER コマンドを使用します。
Natural ベースの Tamino Server Extension は、Natural 開発ツールを使用して、開発、インストールおよび登録されると、通常の Tamino ツールを使用して、それを Tamino データベースに割り当て、Tamino スキーマでそれを使用することができます。 これらのツールの使用法は、Tamino ドキュメントを参照してください。
Server Extension パッケージへ Natural ベースの Tamino Server Extension のメソッドを選択し、パッケージファイルを作成するために、SXS アナライザを使用します。
Tamino データベースに Server Extension をインストールし、管理するために、Tamino Manager によって提供される Server Extension 管理を使用してください。
Server Extension 機能を Tamino スキーマに割り当てるために、Tamino スキーマエディタを使用してください。
Server Extension は、SXS トレースを使用してトレースできます。
次のトピックについて説明します。
Tamino Server Extension は、Natural クラスビルダを使用してを開発します。 Natural ベースの Tamino Server Extension は、定義済み構造に対応したインターフェイスを実装する NaturalX クラスです。 これらのインターフェイスの実装をサポートするために、一定の定義済み Natural モジュールが、Natural で提供されます。
Tamino によって定義された接続インターフェイスの宣言を含んでいるインターフェイスモジュール(コピーコード)。
Server Extension 機能の各種タイプに対するパラメータ定義を含んでいるパラメータデータエリア。
Natural に Tamino Server Extension を実装するときには、SYSEXSXS サンプルライブラリに含まれている多数の定義済み Natural モジュールを使用することができます。 これは、Tamino Server Extension が、Tamino によって定義されたインターフェイスに対応することを確認します。 Tamino Server Extension プロジェクトでこれらのモジュールを使用するには、最初に、SYSEXSXS ライブラリを STEPLIB として定義します。
SYSEXSXS ライブラリを STEPLIB として定義するには
Natural コンフィグレーションユーティリティを開始します。
使用する Natural パラメータファイルを選択します。
[編集] > [検索]を選択して、パラメータ STEPLIB を見つけます。
STEPLIB リストに「SYSEXSXS
」と入力します。
Natural パラメータファイルを保存します。
Natural コンフィグレーションユーティリティを閉じます。
Natural スタジオを再スタートします。
1 つの Tamino Server Extension に対するすべての Natural モジュールを 1 つの Natural ライブラリに入れることを推奨します。 したがって、最初に、プロジェクトのための新規 Natural ライブラリを作成します。
新規ライブラリを作成するには
ライブラリワークスペースで[ユーザーライブラリ]を選択します。
コンテキストメニューで[新規作成]を選択します。
ライブラリの名前を選択します。
Tamino Server Extension は NaturalX クラスとして実装されます。 したがって、新規クラスを作成します。
新規クラスを作成するには
ライブラリワークスペースでライブラリを選択します。
コンテキストメニューで[新規作成] > [クラス]を選択します。
クラスの名前を選択します。
コンテキストメニューで[保存]を選択します。
クラスモジュールの名前を選択します。
NaturalX クラスのオブジェクトデータエリアは、Tamino Server Extension のインスタンスの存続期間にそれらの値を保持する変数を持つために使用されます。
オブジェクトデータエリアを作成し、それをクラスにリンクするには
ライブラリワークスペースでクラスを選択します。
コンテキストメニューで[新規作成] > [オブジェクトデータエリア]を選択します。
オブジェクトデータエリアの名前を選択します。
Tamino Server Extension のオブジェクトデータエリアは、Tamino Server Extension のインスタンス存続期間に Tamino コールバックオブジェクトへの参照を保持するために、最低でもオブジェクトハンドルを含んでいる必要があります。 Tamino コールバックオブジェクトは、Tamino により、それが Extension をロードするときに Server Extension に渡されます。 Tamino Server Extension 機能の中から Tamino 機能を呼び出すために、コールバックオブジェクトのメソッドを使用できます。
コールバックオブジェクトのオブジェクトハンドルをオブジェクトデータエリアに追加するには
ライブラリワークスペースで[オブジェクトデータエリア]をダブルクリックして、このエリアを編集します。
[データエリアエディタ]で[挿入] > [ハンドル]を選択します。
オブジェクトハンドルの名前(例:CALLBACK)を選択します。
ハンドルタイプとして[オブジェクト]を選択します。
[追加]ボタンをクリックします。
[終了]ボタンをクリックします。
必要に応じて Server Extension でオブジェクトデータエリアに他の変数を追加します。
データエリアエディタを閉じて、オブジェクトデータエリアを保存します。
Tamino Server Extension は接続インターフェイス ISXSConn を実装しなければなりません。 このインターフェイスは、SYSEXSXS ライブラリのインターフェイスモジュール ICONN-C で宣言されます。 インターフェイスモジュールを参照できるように、SYSEXSXS ライブラリを STEPLIB として定義しておく必要があります。 このインターフェイスモジュールをクラスにリンクします。
インターフェイスモジュールをクラスにリンクするには
ライブラリワークスペースでクラスを選択します。
コンテキストメニューで[リンク] > [インターフェイスモジュール]を選択します。
SYSEXSXS ライブラリのインターフェイスモジュール ICONN-C を選択します。
ISXSConn の Connect メソッドは、ハンドルをオブジェクトデータエリアのコールバックオブジェクトに保存します。 これにより、Server Extension 機能で Tamino 機能へアクセスできるようになります。
Connect メソッドを実装するには
ライブラリワークスペースでクラスの分岐インターフェイスを完全に拡張します。
サブプログラムノード[CONNECT]を選択します。 これは、Connect メソッドを実装するサブプログラムのデフォルト名です。
コンテキストメニューで[名前の変更]を選択して、サブプログラムの名前を任意の名前に変更することもできます。
メソッドのサブプログラムを作成および編集するには、サブプログラムノードをダブルクリックします。
Connect メソッドの実装は、クラスのオブジェクトデータエリアおよび Connect メソッドのパラメータデータエリアの両方を含む必要があります。 メソッドの本体では、パラメータデータエリアから、下の例に示されるようにオブジェクトデータエリアに定義された対応するオブジェクトハンドルにコールバックオブジェクトハンドルを割り当てる必要があります。
また、必要に応じて、Server Extension で他の初期化コードを Connect メソッドに追加することもできます。
ユーザー独自の Server Extension 機能のクラスへの追加を始めることができます。 最初に、クラスに対する新しいインターフェイスを作成します。このインターフェイスには、Server Extension 機能を含めます。 その後、個々の機能をそのインターフェイスに追加します。
新規インターフェイスを作成するには
ライブラリワークスペースでクラスのノード[Interfaces]を選択します。
コンテキストメニューで[新規作成]を選択します。
インターフェイスの名前を選択します。
ライブラリワークスペースでインターフェイスを選択します。
コンテキストメニューで[新規作成] > [メソッド]を選択します。
メソッドの名前を選択します。
メソッドを選択します。
[リンク] > [パラメータデータエリア]を選択します。
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
ドキュメントを参照し、クエリ機能で可能なパラメータタイプをチェックしてください。 それから、クエリ機能のニーズと一致するプロジェクトライブラリにユーザー独自のパラメータデータエリアを作成してください。
Server Extension 機能を実装するには
メソッド実装を表すサブプログラムノードを選択します。
コンテキストメニューで[名前の変更]を選択して、サブプログラムの名前を任意の名前に変更することもできます。
メソッドのサブプログラムを作成および編集するには、サブプログラムノードをダブルクリックします。
メソッドの実装は、クラスのオブジェクトデータエリアおよびメソッドに割り当てられるパラメータデータエリアの両方を含む必要があります。 メソッドの本体は Server Extension 機能に特有のコーディングを含んでいます。
プログラムエディタを閉じて、サブプログラムを保存します。
Server Extension 機能をさらに追加するには、「新規 Server Extension 機能を作成するには」を繰り返します。
最後に、クラスを保存し、プロジェクトライブラリ全体を再カタログ化します。
ライブラリワークスペースでクラスを選択します。
コンテキストメニューで[保存]を選択します。
ライブラリワークスペースでライブラリを選択します。
コンテキストメニューで[Cat all]を選択します。
Tamino コールバックは、Server Extension 機能で使用できる Tamino Server のインターフェイスです。 それらは、Tamino Server および実行している Tamino Server で有効なシステム情報によって管理できる両方の各種データベースへのアクセスを可能にします。 Natural ベースの Tamino Server Extension 内からコールバック機能を使用するには、次の手順に従います。
使用するコールバック機能のパラメータについては、Tamino ドキュメントを参照してください。
Tamino Server Extension を実装する NaturalX クラスのオブジェクトデータエリアに、コールバックオブジェクトへの参照としてオブジェクトハンドルを定義しました。 対応するメソッド呼び出しをこのオブジェクトハンドルに送信します。
Tamino Server Extension を実装する NaturalX クラスを開発し、オブジェクトハンドラなどの通常の Natural 分散ツールを使用してターゲット環境に配置します。 Tamino Server Extension は、Tamino サーバーが実行されているのと同じマシンにインストールする必要があります。
任意の COMSERVERID下 のターゲット環境にクラスを登録します。 必要に応じて、COMSERVERID および REGISTER コマンドの各種オプションについて、NaturalX ドキュメントを参照してください。
Natural ベースの Tamino Server Extension のインストールは、あらゆる COM ベースの Tamino Server Extension のインストールと同じ手順です。
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 アナライザを使用して作業を進めます。
Tamino Manager の Server Extension 管理部分を使用して Tamino データベースに Server Extension パッケージをインストールします。
その後、Tamino Server Extension は通常どおり、例えば、XQuery 機能で、または XML サブドキュメントを Tamino スキーマエディタでマップするために、使用できます。
Natural サンプルライブラリ SYSEXSXS には、プログラミング例として簡単な Natural ベースの Tamino Server Extension が含まれています。 このサンプルは、Employees スキーマで作動し、Server Extension 機能でスキーマのパーツ、給料データをマップします。 これらの機能は次のように動作します。
Employee 要素がスキーマに挿入されると、この Employee の給与データが Map In 機能 SXSStoreToFile に渡されます。 この機能は、TEMP ディレクトリにファイルを作成し、データをファイルに保存します。
Employee 要素がスキーマから読み込まれると、この Employee の給与データが Map Out 機能 SXSRetrieveFromFile から要求されます。 この機能によって、TEMP ディレクトリの対応するファイルが開かれ、このファイルからデータが読み込まれます。
Employee 要素がスキーマから削除されると、On Delete 機能 SXSDeleteFile が呼び出されます。 この機能によって、TEMP ディレクトリの対応するファイルが削除されます。
サンプル Employees スキーマおよびいくつかのサンプルデータが、SYSEXSXS サンプルライブラリの RES サブディレクトリに含まれています。
このサンプルは、SYSEXINS サンプルライブラリに含まれている Tamino デモアプリケーションを使用して快適に操作することができます。 サンプル Tamino Server Extension を実行するには、次の手順に従います。
s「Tamino Server Extension の配置」および「Tamino Server Extension のインストール」に記述されているように、サンプル Tamino Server Extension を Tamino データベースにインストールします。
SYSEXINS ライブラリのダイアログ MENU を開始します。
Tamino URL を Tamino データベースに設定します。
コレクション名として「NATSXSDemoData」を入力します。
Define Tamino Schema を実行し、SYSEXSXS サンプルライブラリの RES サブディレクトリからスキーマ EmployeeSXSSchema.tsd を選択します。
Load Tamino Data を実行し、SYSEXSXS の RES サンプルライブラリのサブディレクトリからデータファイル EmployeeSXSData.xml を選択します。
サンプルクエリを実行し、レコードを更新します。 Employee データの一部(給与データ)が Tamino Server Extension によって処理されることに注意してください。
Employee データを削除します。
Employee スキーマを削除します。