Advanced Registration Flow のコンフィグレーションと管理

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

Web サービス エンドポイントのための Event Manager の拡張

この節では、以下の内容に関する情報を取り上げます。

 


概要

このドキュメントでは、Event Manager によって送信されるイベントを使用する新しい Web サービス エンドポイントを開発する方法と、他の通知機能プラグインを使用できるように Event Manager を拡張する方法について説明します。

Event Manager のコンフィグレーションについては、「Oracle Enterprise Repository Event Manager のコンフィグレーション」を参照してください。

 


Web サービス エンドポイントの開発

次の図は、Oracle Enterprise Repository Event Manager によって送信されるイベントを受信するための Web サービス エンドポイントの接続方法を示しています。

図 8-1 Web サービス エンドポイントの接続

Web サービス エンドポイントの接続

新しい Web サービス エンドポイントを作成してイベントの取得を開始するには、次の手順に従います。

  1. Event Manager によって定義された WSDL コントラクトを選択します。これは、<OER Web アプリケーション パス>/WEB-INF/lib ディレクトリにある eventNotifier.jar にバンドルされています。
  2. jar ファイルを開き、「EventListener.WSDL」という名前の WSDL を探します。次に、WSDL をファイル システムに抽出します。この WSDL は Event Manager によって定義される抽象コントラクトであり、新しい Web サービス エンドポイントでは WSDL で定義された操作を実装する必要があります。
  3. WSDL ファイルのスナップショットを次に示します。

    図 8-2 サンプルの WSDL ファイル


    サンプルの WSDL ファイル

  4. 要件に応じてツールまたはテクノロジを使用して Web サービス エンドポイントの開発を完了します。たとえば、Oracle Service Bus を使用してプロキシ サービスを開発できます。Oracle Service Bus には、WSDL ファイルを参照することで Web サービスベースのプロキシ サービスを作成できる機能が用意されています。Web サービスを実行するには、Web サービスの開発を完了してください。
  5. Event Manager をコンフィグレーションして、Web サービス エンドポイントのホスト、ポート、URI などを Subscription Manager ファイルに入力します。Event Manager のコンフィグレーションの詳細については、「Oracle Enterprise Repository Event Manager のコンフィグレーション」を参照してください。
  6. Oracle Enterprise Repository を起動し、Asset Editor を使用してイベントをトリガします。これで、Web サービス エンドポイントがイベントの取得を開始します。
  7. Oracle Enterprise Repository に付属の Event Monitoring ツールを使用すると、Event Manager で生成されるイベントをデバッグおよびモニタできます。

 


Web サービスの操作

この節では、新しい Web サービス エンドポイントで使用可能な操作と Event Manager で操作を指定する方法について説明します。

使用可能な Web サービスの操作

Oracle Enterprise Repository Event Manager では、以下の操作をサポートします。

newEventRequestResponse

この操作では、XML スキーマ セクションで定義されるイベント オブジェクトを入力として使用し、状態を出力として返します。状態は文字列型として定義されます。また、状態の文字列の先頭が Failure の場合、Event Manager は例外を送出し、成功するまでイベントの再配信を試行します。それ以外の場合、Event Manager は応答を記録し、転送の例外が発生しない限り、次のイベントを配信します。

newEventRequestResponseString

この操作では、文字列形式のイベント データを入力として使用し、状態を出力として返します。状態は文字列型として定義されます。また、状態の文字列の先頭が Failure の場合、Event Manager は例外を送出し、成功するまでイベントの再配信を試行します。それ以外の場合、Event Manager は応答を記録し、転送の例外が発生しない限り、次のイベントを配信します。

newEventRequest

この操作では、XML スキーマ セクションで定義されるイベント オブジェクトを入力として使用します。この操作は一方向の操作として定義されます。

newEventRequestString

この操作では、文字列形式のイベント データを入力として使用します。この操作は一方向の操作として定義されます。

newEvent

この操作は、Process Engine が Oracle Business Process Management である場合にのみ使用する必要があります。この操作では、内部的に startSession 操作を呼び出してセッションを開始し、Oracle Business Process Management を認証します。また、この呼び出しの後に discardSession を呼び出します。

Web サービスの操作の選択

Event Manager の Subscription Manager を次のようにコンフィグレーションすることにより、operationName 要素に指定されている優先 Web サービスの操作を選択できます。

<sub:EventSubscriptionData xmlns:sub=”http://www.bea.com/infra/events/subscription” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
<sub:eventSubscription>
<sub:endPoint name=”ALBPMEndpoint3”>
<sub:host>localhostt>
<sub:port>9000</sub:port>
<sub:uri>fuegoServices/ws/StatusChangeEnpointServiceListener</sub:uri>
<sub:targetNamespace>http://www.bea.com/infra/events</sub:targetNamespace>
<sub:operationName>newEvent</sub:operationName>
<sub:authenticationData>
<sub:basicAuthentication>
<sub:username>admin</sub:username>
<sub:username>admin</sub:username>
</sub:basicAuthentication>
</sub:authenticationData>
</sub:endPoint>
<sub:notifierClass>com.bea.infra.event.notifier.plugin.http.DefaultHTTPEventNotifier </sub:notifierClass>
<sub:expression></sub:expression>
</sub:eventSubscription>
</sub:EventSubscriptionData>

 


通知機能プラグインの開発

Oracle Enterprise Repository Event Manager には、デフォルトの SOAP/HTTP 通知機能が含まれています。追加の要件が存在する場合は、次の図に示すように、新しいプラグインを開発して接続できます。

図 8-3 通知機能プラグイン

通知機能プラグイン

新しいプラグインを Event Manager で使用するには、次の手順に従います。

  1. Oracle Enterprise Repository Event Manager にバンドルされている Java クラス AbstractEventNotifier を拡張して、新しい通知機能プラグインを開発します。このクラスは、<OER Web アプリケーション パス>/WEB-INF/lib ディレクトリにある eventNotifier.jar にバンドルされています。init() メソッドと sendNotification() メソッドをオーバーライドする必要があります。これらのメソッドの詳細については、Javadoc を参照してください。handle() メソッドは、XML Bean 形式でイベント データを渡します。これにより、イベント データを外部 Web サービスに送信できます。
  2. 開発されたクラスを参照するように Subscription Manager ファイルをコンフィグレーションします。notifierClass 要素を次のように変更します。
  3. <sub:EventSubscriptionData xmlns:sub=”http://www.bea.com/infra/events/subscription” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
    <sub:eventSubscription>
    <sub:endPoint name=”ALBPMEndpoint3”>
    <sub:host>localhost</sub:host>
    <sub:port>9000</sub:port>
    <sub:uri>fuegoServices/ws/StatusChangeEnpointServiceListener</sub:uri>
    <sub:targetNamespace>StuatusChangeEndpoint</sub:targetNamespace>
    <sub:operationName>newEvent</sub:operationName>
    <sub:authenticationData>
    <sub:basicAuthentication>
    <sub:username>admin</sub:username>
    <sub:username>admin</sub:username>
    </sub:basicAuthentication>
    </sub:authenticationData>
    </sub:endPoint>
    <sub:notifierClass>com.bea.infra.event.notifier.plugin.http.DefaultHTTPEventNotifier</sub:notifierClass>
    <sub:expression>id > 500</sub:expression>
    </sub:eventSubscription>
    </sub:EventSubscriptionData>
  4. JAR ファイルのクラスをバンドルし、<OER Web アプリケーション パス>/WEB-INF/lib デイレクトリにコピーして、クラスパスで選択されるようにします。
  5. Event Manager を再起動し、Asset Editor を使用してイベントをトリガします。
  6. Event Manager は、新しい通知機能プラグインの init() メソッドと handle() メソッドを呼び出します。

 


互換性のないコントラクトを持つエンドポイントの開発

Oracle Enterprise Repository Event Manager との互換性のないインタフェースまたはコントラクトを持つエンドポイントが存在する可能性があります。これは、エンドポイントの開発に使用されるツールに Oracle Enterprise Repository Event Manager で提供される WSDL の使用制限があるか、または他の相互運用性の問題が存在する可能性があるためです。そのような状況では、以下のアプローチを使用できます。


  ページの先頭       前  次