ページの先頭行へ戻る
Interstage Big DataComplex Event Processing ServerV1.0.0 ユーザーズガイド
Interstage

5.5.3 連携アプリケーションの開発

連携アプリケーションの開発について説明します。

5.5.3.1 イベント送信アプリケーションの開発

CEPエンジンにイベントを送信するアプリケーションを開発します。

利用する、入力アダプターの種類にあわせた開発を行います。

入力アダプターの種類ごとのサンプルプログラムについては「開発リファレンス」の「第3章 入力アダプター機能リファレンス」を参照してください。

5.5.3.2 ユーザー開発Webサービスの開発

SOAPリスナから呼び出すWebサービスのアプリケーションを開発します。

5.5.3.2.1 Webサービス開発手順

Webサービス開発手順について説明します。

  1. WSDLの作成

    SOAPリスナ定義で設計した、呼び出すWebサービスのインターフェース情報(WebサービスのURL、名前空間、プレフィクス、メソッド)と、複合イベント処理文(select文)で選択列としたパラメーターから、ユーザー開発アプリケーションのWSDL(インターフェース定義)を作成します。

    目的とするイベントを検出するための複合イベント処理文(select文)と、そのルールに関連付けたSOAPリスナ定義、および、SOAPリスナから生成されるSOAPメッセージの関係を以下に示します。

    図5.5 ルール定義およびリスナ定義と、送付されるSOAPメッセージの対応関係

    このSOAPメッセージを受け取るWebサービスのWSDLのサンプルを以下に示します。このWSDLはメッセージを受け取るだけ(One-way)のWebサービスを定義しています。アプリケーションに応答を返す(Request-response)Webサービスとして実装した場合、CEPエンジンはその応答を無視します。

    表5.6 WSDLのサンプル
    001
    002
    003

    004

    005

    006

    007

    008

    009

    010

    011

    012

    013

    014

    015

    016

    017

    018

    019

    020

    021

    022

    023

    024

    025

    026

    027

    028

    029

    030

    031

    032

    033

    034

    035

    036

    037

    038

    039

    040

    041

    042

    043

    044

    045

    046

    047

    048

    049

    050
    <?xml version='1.0' encoding='UTF-8'?>
    <definitions
    targetNamespace="http://example.com/exampleNamespace"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://example.com/exampleNamespace"
    xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <types>

    <xs:schema elementFormDefault="qualified"
    targetNamespace="http://example.com/exampleNamespace" >
    <xs:element name="rootElement">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="property1" type="xs:string" />
    <xs:element name="property2" type="xs:string" />

    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    </types>

    <message name="notifyMessage">

    <part name="body" element="tns:rootElement" />
    </message>

    <portType name="eventReceiverPortType">

    <operation name="notifyOperation">
    <input message="tns:notifyMessage" />
    </operation>
    </portType>

    <binding name="eventReceiverSOAPBinding" type="tns:eventReceiverPortType">

    <soapbind:binding transport="http://schemas.xmlsoap.org/soap/http"
    style="document" />
    <operation name="notifyOperation">
    <soapbind:operation soapAction="" />
    <input>
    <soapbind:body use="literal" />
    </input>
    </operation>
    </binding>

    <service name="eventReceiverService">
    <port name="eventReceiverSOAPPort" binding="tns:eventReceiverSOAPBinding">
    <soapbind:address location="http://example.com/serviceEndPoint" />
    </port>
    </service>
    </definitions>

    上記WSDLの下線部分を、ルール定義、SOAPリスナ定義に合わせて以下のように修正することによって、作成するWebサービスの雛形を生成するためのWSDLとして利用することが可能となります。

    • 003、005、011行目

      WSDLの対象名前空間(definitions要素のtargetNamespace属性)、対象名前空間の接頭辞の宣言(definitions要素のxmlns:tns属性)、WSDL中のXMLスキーマの対象名前空間(types要素中のxs:schema要素のtargetNamespace属性)をSOAPリスナ定義の名前空間の値にします。

    • 012、025行目

      WSDL中のXMLスキーマで定義するメッセージのルート要素の名前(types要素中のxs:schema要素中のxs:element要素のname属性)、WSDLのメッセージとして定義している要素(message要素のpart要素のelement属性)をSOAPリスナ定義のルート要素の値にします。

    • 015、016行目

      WSDL中のXMLスキーマで定義するルート要素の子要素の名前(types要素中のルート要素定義配下のxs:element要素のname属性)を、複合イベント処理文(select文)の出力プロパティ名にします。

      出力するプロパティの数だけ同様の行を作成します。この要素のタイプ(xs:element要素のtype属性)については、上記の例では文字列(xs:string)を指定しています。プロパティのタイプに合わせて適切に設定しておくことにより、ご利用のツールによってはタイプに応じたソースコードを生成してくれるため、プログラム中での型変換が不要となります。

    • 047行目

      最終的なサービス公開用のWSDLでは、service要素配下のsoapbind:address要素のlocation属性に、実際のサービスのURLが入り、これはリスナ定義の接続URLの値にもなります。しかし、開発時には、この接続URLは決まっていない場合も多いため、上記サンプルのままでも問題ありません。

  2. Webサービスのアプリケーションの開発

    作成したWSDLを元に、お使いの開発ツールからWebサービスのアプリケーションの雛型を出力し、そこにアプリケーションのロジックを追加します。

5.5.3.3 イベントログ分析アプリケーションの開発

イベントログを分析するアプリケーションを開発します。アプリケーションはHadoopのAPIを使用して開発します。詳細は、Interstage Big Data Parallel Processing Serverのマニュアルを参照してください。

5.5.3.4 キャッシュアクセスアプリケーション(更新)の開発

キャッシュアクセスアプリケーションを開発します。詳細については、Interstage eXtreme Transaction Processing Serverのマニュアルを参照してください。