第 9 章 : サービス、パッケージ、および要求ハンドラ

ここでは、サービス、パッケージ、および要求ハンドラそれぞれのオブジェクトについて説明し、これらのオブジェクトの相互関係と実行できる作業について説明します。

はじめに

サービスオブジェクト、実装パッケージオブジェクト、および要求ハンドラオブジェクトは連携して動作することで、サービスベースのビジネス機能を提供することができます。 システムサービスのサービスオブジェクトとは対照的に、ビジネスサービスのサービスオブジェクトには、必ず 1 つの要求ハンドラと 1 つの実装パッケージが関連付けられている必要があります。 サービスリスナーは、サービスオブジェクトに 1 つ以上関連付けることができます。

これらの 3 種類のオブジェクトに対して行う管理作業は、次のとおりです。

サービスの手動作成

Interface Mapping Toolkit を使用してサービスをディプロイする場合には、必要なすべてのオブジェクトは自動的に作成され、それらの関係が完成します。 ただし、エンタープライズサーバにサービスを手動で追加した場合は、追加したサービスのオブジェクトとそれらの関係を、次の順序で作成する必要があります。

  1. エンタープライズサーバに実装パッケージを追加する
  2. 1 つ以上のサービスリスナーを追加する
  3. サービスを追加し、リスナー、実装パッケージ、および要求ハンドラと関連付ける

追加、更新、および削除

エンタープライズサーバが実行中かどうかに関係なく、エンタープライズサーバにサービスと実装パッケージを追加し、さらにそれらを更新または削除できます。

エンタープライズサーバが実行中の場合 (つまり、状態が「開始」の場合) は、サービスとパッケージを追加すると、その変更がすぐにエンタープライズサーバに反映されます。 サービスがクライアント要求に応答していない限り、更新も受け付けられてその変更がすぐに反映されます。

クライアント要求によりリソースが使用されている場合は、サービス、パッケージ、または要求ハンドラを削除できません。 サービスが実行中かどうかに関係なく、パッケージがサービスに関連付けられている場合はパッケージを削除できません。 サービスにオペレーションがある場合は、サービスとそのすべてのオペレーションを 1 回でまとめて削除したり、オペレーションやパッケージを個別に削除したりできます。

サービス、パッケージ、および要求ハンドラを削除すると、物理ファイルではなく Directory Server リポジトリ内のオブジェクトが削除されます。 開発者が、ディプロイツールまたは imtkmake コマンドを使用してサービスをディプロイすると、そのたびに新しいディレクトリがエンタープライズサーバのディプロイディレクトリに作成され、ディプロイされたファイルがすべて格納されます。 開発者が、すでにディプロイされているサービスを再度ディプロイすると、古いディプロイディレクトリは参照されなくなります。これは、古いサービスとパッケージオブジェクトがすでに削除されているためです。 古いディプロイディレクトリは、時々削除してください。

エンタープライズサーバの実行中にリソースを追加、編集、または削除した場合は、オペレーションの成功や変更を示す管理メッセージがエンタープライズサーバコンソールに送信されます。

Enterprise Server が拒否する更新を Directory Server が受け付けた場合は、使用中のエンタープライズサーバと Directory Server リポジトリの同期が取れなくなることがあります。 同期が取れなくなった場合には、サーバをいったん停止してから再起動して更新を同期させます。

サービス

サービスにより、特定のビジネス機能にアクセスすることができます。

Interface Mapping Toolkit を使用してディプロイしたサービスは、常に 1 つ以上のオペレーションを含みます。たとえば、『入門書』で説明されているインターフェイスマッピングチュートリアルを実行する場合は、4 つのオペレーション (レコードの追加、レコードの読み取り、次のレコードの取得、レコードの削除) を含むサービス wmapserv を作成します。 Enterprise Server のマニュアルでは、この種類のサービスに対して「オペレーションをもつサービス」という表現を使用します。

サービスの名前とサービスに関連付ける要求ハンドラ (ある場合) に応じて、エンタープライズサーバ内に作成するサービスには 1 つ以上のオペレーションを含めることができます。 サービスを作成しサービスに要求ハンドラを関連付けない場合、または指定した名前に有効な区切り文字が含まれない場合には、サービスとオペレーションは同じものとなります。 Enterprise Server のマニュアルでは、この種類のサービスに対して「単純サービス」という表現を使用します。 デフォルトのエンタープライズサーバ ESDEMO の Deploy サービスなどのシステムサービスは単純サービスです。

サービス名には 2 つの形式があります。形式は、サービスにオペレーションが含まれるかどうかによって決定されます。 次の 2 つの形式があります。

サービステーブル

ホームページ内のサーバのテーブルで「サービス」にある [詳細] をクリックすると、リポジトリ内に格納されているサービスの情報が表示できます。図 9-1 に、サービステーブルを示します。

サービステーブル

図 9-1: サービステーブル

表示される情報は、次のとおりです。

サービス表示フィルタは、表示するサービス情報を制御します。 サービス情報は、サービステーブルの一番上に表示されます。 サービス表示フィルタには、次の 4 種類があります。

サービス以外のフィルタには、オプションが 3 つあります。

たとえば、クラス 1 のサービスに関してサービスの詳細を表示する場合は、「サービス表示フィルタ、クラス」で「一部」を選択します。関連する要求ハンドラをもたないサービスのみを表示する場合は、「サービス表示フィルタ、ハンドラ」で「なし」を選択します。すべてのサービスを表示するには、オプションをもつ 3 つのフィルタすべてで「すべて」を選択し、「サービス」は空白のままにします。 すべてのフィルタを組み合わせて使用すると、表示するレベルを最大限に制御できます。

サービステーブルを最初に表示すると、オプションをもつフィルタはすべて「すべて」に設定され、「サービス」フィルタは空白になっています。

構成情報

「サービスの追加」ページおよび「サービスの編集」ページの「構成情報」フィールドで、サービスに特有のデータを設定できます。 サービスに対して設定できる構成情報は、ディプロイサービスのみです。これは、Interface Mapping Toolkit が Web サービスおよび J2EE EJB のディプロイに使用するサービスクラス「MF Deployment」をもつ特別なサービスです。

[MF client] 設定には、MFCC がディプロイ要求を作成する際の設定があります。

[destination] 設定は、mfdepinst が Directory Server にサービスとパッケージオブジェクトを作成し、同時にディプロイパッケージ (.car ファイル) をインストールする場合に使用します。 これらの設定は、 IMTK またはその他のディプロイクライアントを使用して、MFCS を介してディプロイが行われる場合にのみ使用されるので注意してください。 mfdepinst をコマンド行から手動で実行して .car ファイルをインストールする場合、mfdepinst は特定のディプロイサービスに対しては起動されません。したがって、参照するディプロイサービス構成はありません。

[MF client]
scheme=protocol
URL=virtual-directory-name-1/mfdeploy.exe/virtual-directory-name-2
accept=request-data-type
[destination]
listener=listener-name
server=server-name
        
scheme

要求に対して使用するプロトコルを指定します。

構文:
scheme=protocol
        
パラメータ:
protocol「http」に設定します。
プロパティ:
デフォルト: なし
URL

要求 URL のベースパス部分を設定します。

構文:
URL=virtual-directory-name-1/mfdeploy.exe/virtual-directory-name-2
        
パラメータ:
virtual-directory-name-1/mfdeploy.exe を含むディレクトリにマップされた、リスナーの構成内にある仮想ディレクトリに対応していなければなりません。
virtual-directory-name-2新しいディプロイディレクトリが作成される仮想ディレクトリに対応していなければなりません (このディレクトリには、.mfdeploy ファイルが必要です)。
プロパティ:
デフォルト: /cgi/mfdeploy.exe/uploads
備考:

単一の Web リスナーの下に複数のディプロイサービスを置き、ディプロイパッケージに対して別の位置を指示することができます。この場合、リスナーの構成に仮想ディレクトリを追加し、適切なディレクトリをここに指定します。 詳細は、『構成』の章の『ディプロイサービスとディプロイリスナー』の節を参照してください。

accept

このサービスが受信する要求データの種類を MFCC に通知します。

構文:
accept=request-data-type
        
パラメータ:
request-data-type「application/x-zip-compressed」に設定します。
プロパティ:
デフォルト: なし
listener

新しいサービスを所有するリスナーの名前を指定します。 デフォルトは「Web Services」です。 サービスを別の名前のリスナーにディプロイしたい場合は、この値を設定します。

構文:
listener=listener-name
        
プロパティ:
デフォルト: Web Services
備考:

サービスを別の名前のリスナーにディプロイしたい場合は、この値を設定します。

server

新しいサービスとパッケージを所有するサーバの名前を指定します。 デフォルトでは、ディプロイサービスが属するサーバになります。 この値を設定して、同じシステムの異なるエンタープライズサーバにディプロイされるサービスへのディプロイ要求を、エンタープライズサーバで受信することができます。

構文:
server=server-name
        
プロパティ:
デフォルト: ディプロイサービスが属するサーバ
備考:

この値を設定して、同じシステムの異なるエンタープライズサーバにディプロイされるサービスへのディプロイ要求を、エンタープライズサーバで受信することができます。

実行できる作業

Modify またはそれ以上のアクセス権をもつ場合は、次の作業ができます。

Add/Delete またはそれ以上のアクセス権をもつ場合は、次の作業もできます。

方法...

実装パッケージ

実装パッケージは、ビジネス機能を提供するアプリケーションを定義します。

パッケージテーブル

ホームページ内のサーバのテーブルで「パッケージ」にある [詳細] をクリックすると、リポジトリ内に格納されているパッケージの情報が表示できます。図 9-2 に、パッケージテーブルを示します。

パッケージテーブル

図 9-2: パッケージテーブル

表示される情報は、次のとおりです。

実行できる作業

Modify またはそれ以上のアクセス権をもつ場合は、次の作業ができます。

Add/Delete またはそれ以上のアクセス権をもつ場合は、次の作業もできます。

Enterprise Server Administration の外部で、古いディプロイディレクトリを削除できます。

方法...

要求ハンドラ

要求ハンドラは、クライアントからのサーバへのアクセス要求を受信し、要求をビジネス機能を提供するアプリケーションが解読できる形式に変換するソフトウェアです。 Enterprise Server では、次の要求ハンドラが提供されています。

要求ハンドラテーブル

ホームページ内のサーバのテーブルで「要求ハンドラ」にある [詳細] をクリックすると、リポジトリ内に格納されている要求ハンドラの情報が表示できます。図 9-3 に、要求ハンドラテーブルを示します。

要求ハンドラテーブル

図 9-3: 要求ハンドラテーブル

表示される情報は、次のとおりです。

実行できる作業

Modify またはそれ以上のアクセス権をもつ場合は、次の作業ができます。

Add/Delete またはそれ以上のアクセス権をもつ場合は、次の作業もできます。

方法...


Copyright © 2006 Micro Focus (IP) Ltd. All rights reserved.