atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
SOA@Oracle
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
広告非表示(β版)
ページ一覧
SOA@Oracle
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
SOA@Oracle
広告非表示 広告非表示(β)版 ページ検索 ページ検索 メニュー メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • SOA@Oracle
  • 非同期処理の要 - 相関セット(Correlation Set)の設定方法

SOA@Oracle

非同期処理の要 - 相関セット(Correlation Set)の設定方法

最終更新:2007年04月25日 20:51

Bot(ページ名リンク)

- view
管理者のみ編集可

非同期処理の要 - 相関セット(Correlation Set)の設定方法

  • 非同期処理の要 - 相関セット(Correlation Set)の設定方法
    • はじめに
    • シナリオ
    • 設定方法

はじめに

Oracle BPEL Process Managerからコールバックのある非同期サービスを呼び出す方法として、WS-Addressingを使う方法がありますが、連携対象のシステムのすべてでWS-Addressingを利用するのは、工数もかかるので現実的ではないでしょう。
ここでは、WS-Addressingを使わずに非同期処理を実現するために、BPEL仕様で定義されている相関セット(Correlation Set)の使い方をご紹介します。

シナリオ

ここでは、例として以下のようなシナリオを実装してみましょう。



出荷管理システムが出荷依頼を受けてから、出荷が完了して出荷結果を返すまでには、数時間から数日かかります。ということで、出荷管理システムとのやりとりは非同期で行いたい、というのがシナリオです。さきほども書いたとおり、WS-Addressingを使えば、非同期コールバックのシナリオは簡単に実装できます。ですが、WS-Addressingを実装するには、既存の出荷管理システムに手を加えなければいけません。なるべく既存システムに手をいれずに実装するために、以下のような実装方法を今回はとります。



出荷管理システムとWebサービスでやりとりをするのではなく、データベースの2つの表、出荷依頼受付表と出荷結果表を用意します。出荷管理システムは、出荷受付表に入ったデータを処理し、結果を出荷結果表に挿入します。このようにデータベースの表を介在させることで既存の出荷管理システムへの改修を最小化します
Oracle BPEL Process Managerから2つの表へ挿入、ポーリングを行う部分は、DB Adapterを利用します。

ただし、このシナリオを実現するためには、一点追加で設定が必要です。それが相関セット(Correlation Set)です。
出荷結果表から出荷結果をポーリングした後、どのインスタンスにそのメッセージを紐づけるかを決定する仕組みが必要です。たとえば、受注IDが1000と1001の2つのインスタンスがあった場合、出荷結果に含まれる受注IDからどちらのインスタンスにメッセージを紐づけるかを決定する必要があります。相関セットを使ってこの紐付けを定義します。

ここでは、DB Adapterを使った相関セットの例を紹介していますが、同じ手法は、SOAPや各種アダプタでも利用できます。

では、具体的な実装方法を見ていきましょう。

設定方法

今回の実装には、以下の表を用います。

出荷依頼受付表(SHIPPING_REQUEST)
列名 データ型
ORDER_ID NUMBER
PRODUCT VARCHAR2(2000)

出荷結果表(SHIPPING_RESULT)
列名 データ型
ORDER_ID NUMBER
SHIPPING_DATE DATE

Database Adapterを利用して、SHIPPING_REQUESTにデータを挿入するサービスに対応するパートナ・リンクとSHIPPING_RESULTからポーリングでデータを取得するパートナ・リンクを作成し、それぞれInvokeアクティビティ、Receiveアクティビティと紐付けを行います。



ここから相関セットを設定していきますが、手順としては以下の3つの設定を行います。
1. プロパティの設定
2. プロパティ・エイリアスの設定
3. 相関セットの設定
4. 相関の設定

1. プロパティの設定
まずは、相関のキーとなる項目を設定します。
構造ペインから[プロパティ]を選択し、[作成 プロパティ...]を選択します。



今回のケースでは、受注IDを相関のキーとしたいので、名前に「orderId」タイプに「int」を指定します。



2. プロパティ・エイリアスの設定
次に設定したプロパティが、メッセージのどの部分に対応するかを設定します(プロパティ・エイリアス)。
ここでは、SHIPPING_REQUEST表に挿入するサービスのorderIdと、SHIPPING_RESULT表からポーリングして取得するメッセージのorderIdをプロパティ・エイリアスとして設定します。

構造ペインから[プロパティ・エイリアス]を選択し、[作成 プロパティ・エイリアス...]を選択します。



メッセージ・・タイプ・パートとして[Partner Links] > [SHIPPING_REQUEST] > [INSERT_SHIPPING_REQUEST.wsdl] > [メッセージ・タイプ] > [ShippingRequestCollection_msg] > [パート- ShippingRequestCollection]を選択します。これで、SHIPPING_REQUEST表に対して挿入を行うさいの入力メッセージのパートが選択できました。画面下部の[問合せ]には、そのメッセージのなかでどのノードをプロパティに紐づけるかを定義します。ここでは、受注IDに対応する[/ns1:ShippingRequestCollection/ns1:ShippingRequest/ns1:orderId]を入力しています。[Ctrl]+[Space]をおすことで入力補完機能が働きますので、[問合せ]を入力する際には、入力補完機能を活用してください。
入力が完了したら[OK]を押します。これで、プロパティ・エイリアスがひとつ定義できました。



同様の手順でSHIPPING_RESULT表からデータを取得するサービスに対してもプロパティ・エイリアスを設定します。メッセージ・・タイプ・パートとして[Partner Links] > [SHIPPING_RESULT] > [POLLING_SHIPPING_RESULT.wsdl] > [メッセージ・タイプ] > [ShippingResultCollection_msg] > [パート- ShippingResultCollection]を選択します。[問合せ]には、[/ns1:ShippingResultCollection/ns1:ShippingResult/ns1:orderId]を入力します。
これで、プロパティ・エイリアスの設定が完了しました。

3. 相関セットの設定
次に相関セットを作成します。相関セットとは、プロパティの集合で、実際にインスタンスの判別に利用されるものです。

構造ペインから[相関セット]を選択し、[作成 相関セット...]を選択します。



[名前]を規定値のままの[CorrelationSet_1]と、[追加]アイコンをクリックします。手順1で作成したorderIdをプロパティとして選択しましょう。これで、相関セットの設定が完了しました。



4. 相関の設定
最後にどのアクティビティで紐付け(相関)を行うのかを設定します。これで非同期処理がいよいよ実現されます。今回のケースでは、SHIPPING_REQUEST表に挿入を行っている[Invokle_SHIPPING_REQUEST]InvokeアクティビティとSHIPPING_RESULT表からデータを取得している[Receive_SHIPPING_RESULT]Receiveアクティビティに対して、相関の設定を行います。

まずは、[Invokle_SHIPPING_REQUEST]Invokeをダブルクリックし、[相関]タブを開き、[追加]から先ほど作成した相関セット[CorrelationSet_1]を選択します。



[相関]タブにもどって、[開始]に[はい]を[パターン]に[アウト]を設定します。[開始]は相関セットを初期化する必要がある際には、[はい]を選択します。今回のケースだとこのアクティビティで[CorrelationSet_1]を初めて使用しているので、[はい]を選択しています。[パターン]とは、Invokeアクティビティのリクエスト/リプライのどちらに相関をしかけるかを設定するために使用されます。今回はリクエスト・メッセージに対して相関をセットしたいので[アウト]を設定しています。



同様に[Receive_SHIPPING_RESULT]Receiveアクティビティに対しても相関を設定します。こちらは、先ほど初期化した相関セットをそのまま利用しますので、[開始]には[いいえ]を設定します。



以上で、相関セット(Correlation Set)による非同期処理の設定が完了しました。

ご質問は、以下のフォームまでお願いします。トラックバック( http://www28.atwiki.jp/oraclesoa/tb/21.html )も大歓迎です。
名前:
コメント:
&trackback()
「非同期処理の要 - 相関セット(Correlation Set)の設定方法」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • correlation01.png
  • correlation02.png
  • correlation03.png
  • correlation04.png
  • correlation05.png
  • correlation06.png
  • correlation07.png
  • correlation08.png
  • correlation09.png
  • correlation10.png
  • correlation11.png
  • correlation12.png
SOA@Oracle
記事メニュー

メニュー

  • トップページ
  • Oracle BPEL Process Manager
  • Oracle ESB
  • Oracle WSM
  • Oracle BAM
  • Adapter
  • リンク
  • 書評
  • blog


検索 :

更新履歴

取得中です。


記事メニュー2

新着情報

  • 非同期処理の要 - 相関セットの設定方法
  • 「一方向」プロセスを作成する
  • Database Adapterでの接続の作成


書籍










最近更新されたページ
  • 6390日前

    こずかい稼ぎ
  • 6390日前

    メニュー
  • 6538日前

    トップページ
  • 6538日前

    右メニュー
  • 6545日前

    Oracle BPEL Process Manager
  • 6588日前

    Oracle ESBでのSOAP Headerの設定方法
  • 6588日前

    Oracle ESB
  • 6673日前

    JDeveloper で ローカルのJavaDocを利用する方法
  • 6756日前

    WS-Addressingを使った非同期サービスの作成
  • 6767日前

    ポーリングを含むプロセスのデプロイがORABPEL-09903で失敗する
もっと見る
最近更新されたページ
  • 6390日前

    こずかい稼ぎ
  • 6390日前

    メニュー
  • 6538日前

    トップページ
  • 6538日前

    右メニュー
  • 6545日前

    Oracle BPEL Process Manager
  • 6588日前

    Oracle ESBでのSOAP Headerの設定方法
  • 6588日前

    Oracle ESB
  • 6673日前

    JDeveloper で ローカルのJavaDocを利用する方法
  • 6756日前

    WS-Addressingを使った非同期サービスの作成
  • 6767日前

    ポーリングを含むプロセスのデプロイがORABPEL-09903で失敗する
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  2. ホワイトハッカー研究所
  3. p5x 攻略wiki @ ウィキ
  4. ポケモン 作品なりきりネタWiki
  5. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  6. 東方同人CDの歌詞@Wiki
  7. 千鳥の鬼レンチャン サビだけカラオケデータベース
  8. フォートナイト攻略Wiki
  9. Pokemon Altair @攻略wiki
  10. NIKKEぺでぃあ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ゲームカタログ@Wiki ~名作からクソゲーまで~
  3. 初音ミク Wiki
  4. MADTOWNGTAまとめwiki
  5. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  6. ストグラ まとめ @ウィキ
  7. 検索してはいけない言葉 @ ウィキ
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  10. 英傑大戦wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MADTOWNGTAまとめwiki
  2. MadTown GTA (Beta) まとめウィキ
  3. フォートナイト攻略Wiki
  4. 首都圏駅メロwiki
  5. Last Z: Survival Shooter @ ウィキ
  6. まどドラ攻略wiki
  7. 駅のスピーカーwiki
  8. ちいぽけ攻略
  9. ソニックレーシング クロスワールド 攻略@ ウィキ
  10. 戦国ダイナスティ攻略Wiki@ウィキ
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 【移転】Miss AV 見れない Missav.wsが見れない?!MissAV新URLはどこ?閉鎖・終了してない?missav.ai元気玉って何? - ホワイトハッカー研究所
  2. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  3. XVI - MADTOWNGTAまとめwiki
  4. 参加者一覧 - MADTOWNGTAまとめwiki
  5. 参加者一覧 - ストグラ まとめ @ウィキ
  6. ブラック・マジシャン・ガール - アニヲタWiki(仮)
  7. コメント/雑談・質問 - マージマンション@wiki
  8. Pokémon LEGENDS Z-A - アニヲタWiki(仮)
  9. ハーディガン - 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  10. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.