Comments
Description
Transcript
IBM Integration Bus V9 第 2 章
IBM Integration Bus V9 第2章 新機能の紹介 内容 ワークロード・マネージメント Web UIによる管理機能の強化 グローバル・キャッシュ機能の拡張 ビジネス・ルール .NETサポートの拡張 BPMとの連携 サービス・ディスカバリー XMLデータ分析 その他の機能強化 WAS管理コンソールからの管理機能 GUIマッピングの機能強化 Web関連機能の拡張 ODBC設定の検証機能 集約ノードの機能強化 CICSトランザクション・サポート 実行グループのユーザー指定(z/OS) 2 ワークロード・マネージメント 3 ワークロード・マネージメント ワークロード・マネージメント機能の提供 最大処理レートの制御 メッセージ処理件数が指定のレート内に収まるように制御することが可能 メッセージフローに対して最大レート(メッセージ処理件数/秒)を設定 通知 処理リクエスト入力件数が閾値を超過/収束した場合に通知することが可能 MQ Pub/Subの仕組みを利用し通知メッセージをパブリッシュ 無応答フローに対するアクション メッセージ処理時間が指定のタイムアウト時間を超過した場合のアクションを指定可能 –実行グループの再起動(GA版時点)、もしくは、アクションなし 処理時間超過を通知可能 ワークロード・マネージメント・ポリシーにて動的に設定を変更可能 ブローカー ブローカー ワークロード・マネージメント機能 メッセージフローB 処理 リクエスト 処理が閾値内に収まる 処理が閾値内に収まる ように制御 ように制御 最⾼ 速度 メッセージフローA 入力リクエスト数が閾 入力リクエスト数が閾 値を超えると通知 値を超えると通知 メッセージフローC タイムアウト時にアク タイムアウト時にアク ションを実施(再起動) ションを実施(再起動) 4 再起動 ワークロード・マネージメント ワークロード・マネージメント活用シナリオ 最大処理レートの制御を利用し、時間帯により優先させる処理を制御する バッチ処理、オンラン処理のフローが混在する環境を想定 業務時間帯はオンライン処理を優先させるため、バッチ処理の処理速度を制限する 業務時間帯 ブローカー ブローカー オンライン処理フロー オンライン処理を優先させるため、 バッチ処理の処理速度を制限 オンライン処理 バッチ処理フロー 最⾼ 速度 バッチ処理 リソースに制限のあるバックエンド・サーバーに合わせて、フロントエンドからの処理速度を制限する ブローカー ブローカー オンライン処理フロー バックエンドのパフォーマンスにあわせて、 フロントからの処理速度を制限 最⾼ 速度 フロント・エンド バック・エンド 5 最⾼ 速度 ワークロード・マネージメント– 最大処理レートの制御 メッセージ処理件数が指定のレート内に収まるように制御することが可能 最大処理レート(メッセージ処理件数/秒)をフロー単位で設定 フローのメッセージ処理件数が、最大レート内に収まるように制御 最大処理レートを50 (メッセージ/秒)に設定した場合の例 10,000件のメッセージ処理にかかる処理速度を比較 100 100 処理件数/s 100 100 80 80 80 80 60 60 60 60 40 40 40 40 20 20 20 20 00 最大レートを50件/秒に設定 処理件数/s 00 経過時間 経過時間 入力ノードの種別に関係なく、フローへのリクエスト数をもとに速度が制御される メッセージフロー内のすべての入力ノードおよびインスタンスへのリクエストの合計を制御に使用 リクエストがエラーとなる場合でも、1入力としてカウントされる 複数スレッドでフローを実行する場合、合計スレッド数と最大処理レートの設定をもとに、 各スレッドにそれぞれ処理レートが割り当てられる ノード単位で、処理レートを制御することはできない 各スレッドに割り当てられる処理レートの具体的な計算例は次ページ参照 6 (参考) ワークロード・マネージメント – 最大処理レートの制御 最⾼ 速度 複数スレッドで実行する場合の処理レートの割り当て 稼動中の各スレッドに(最大処理レート÷合計スレッド数)の処理レートが割り当てられる 合計スレッド数は以下の式で計算 (メッセージフロー内の入力ノード数)+(各入力ノードの追加インスタンス数の合計) 稼動スレッドに割り当てられる処理レートの割り当て例(最大処理レート50に設定時) 1メッセージフロー、1入力ノード、追加インスタンス0 の場合 –(合計スレッド数) = 1 –(各スレッドの処理レート) = 50 ÷ 1 =1 1メッセージフロー、1入力ノード、追加インスタンス2の場合 –(合計スレッド数) = 2 –(各スレッドの処理レート) = 50 ÷ 2 = 25 1フローに3入力ノードがあり、それぞれ以下のように追加インスタンスが設定されている場合 –InputノードA 追加インスタンス:4 –InputノードB 追加インスタンス:3 –InputノードC 追加インスタンス:0 –(合計スレッド数) = 5 + 4 + 1 = 10 –(各スレッドの処理レート) = 50 ÷ 10 = 5 7 ワークロード・マネージメント – 通知 メッセージ入力件数が閾値を超過/収束した場合に通知することが可能 メッセージフローに対して通知閾値(処理リクエスト件数/秒)を設定 MQ Pub/Subの仕組みを利用し通知メッセージをパブリッシュ 処理リクエスト件数が通知閾値を越えると、メッセージがパブリッシュされる –閾値を超えたままの状態の場合、パブリッシュされない 処理リクエスト件数が閾値内に収束すると、メッセージがパブリッシュされる ※通知を受け取るためのアプリケーションは別途必要(現時点ではブローカで通知を受け取る機能はない) 通知閾値を50(処理リクエスト件数/秒)設定した場合の例 処理件数/s 超過通知ポイント 100 通知閾値を50件/秒に設定 75 50 超過通知ポイント 25 収束通知ポイント 0 経過時間 8 (参考)ワークロード・マネージメント – 通知 通知メッセージのパブリッシュ先トピックと通知メッセージ メッセージ・レートが閾値を超過した場合のパブリッシュ先トピック 通知対象のメッセージ・フローの構成により、トピックが異なる フローがライブラリに含まれる場合 $SYS/Broker/<brokerName>/WorkloadManagement/AboveThreshold/<executionGro upLabel>/<applicationName>/<libraryName>/<messageFlowLabel> フローがアプリケーションに含まれる場合 $SYS/Broker/<brokerName>/WorkloadManagement/AboveThreshold/<executionGro upLabel> /<applicationName>/<messageFlowLabel> フローが実行グループの直下にデプロイされる場合 $SYS/Broker/<brokerName>/WorkloadManagement/AboveThreshold/<executionGro upLabel> /<messageFlowLabel> 9 (参考)ワークロード・マネージメント – 通知 メッセージ・レートが閾値内に収束した場合のパブリッシュ先トピック 通知対象のメッセージ・フローの構成により、トピックが異なる フローがライブラリに含まれる場合 $SYS/Broker/<brokerName>/WorkloadManagement/BelowThreshold/<executionGro upLabel>/<applicationName>/<libraryName>/<messageFlowLabel> フローがアプリケーションに含まれる場合 $SYS/Broker/<brokerName>/WorkloadManagement/BelowThresholdexecutionGrou pLabel> /<applicationName>/<messageFlowLabel> フローが実行グループの直下にデプロイされる場合 $SYS/Broker/<brokerName>/WorkloadManagement/BelowThreshold/<executionGro upLabel> /<messageFlowLabel> 10 (参考)ワークロード・マネージメント – 通知 通知メッセージ例 通知閾値を5 (件/秒)に設定した場合の、入力件数が超過通知メッセージ <wmb:event xmlns:wmb="http://www.ibm.com/xmlns/prod/websphere/messagebroker/6.1.0/monitoring/event"> <wmb:eventPointData> <wmb:eventData wmb:productVersion="9000" wmb:eventSchemaVersion="6.1.0.3" wmb:eventSourceAddress="WLM"> イベント名 イベント名 <wmb:eventIdentity wmb:eventName="AboveThreshold"/> <wmb:eventSequence wmb:creationTime="2013-08-20T02:41:15.471Z" wmb:counter="1"/> <wmb:eventCorrelation/> </wmb:eventData> <wmb:messageFlowData> <wmb:broker wmb:name="BK9" wmb:UUID="15cd0878-4157-44cc-a402-123b8aa662af"/> <wmb:executionGroup wmb:name="EG1" wmb:UUID="0eb1590f-4001-0000-0080-fb887e8428d5"/> <wmb:messageFlow wmb:uniqueFlowName="BK9.EG1.SOAP.APP01.HelloServiceProvider" wmb:name="HelloServiceProvider" wmb:UUID="e9f88b7a-4001-0000-0080-cffab21e4897"/> </wmb:messageFlowData> 設定した閾値 設定した閾値 </wmb:eventPointData> <wmb:applicationData xmlns=""> <wmb:simpleContent wmb:name="NotificationThresholdMsgsPerSec" wmb:value="5" wmb:dataType="integer"/> <wmb:simpleContent wmb:name="MessageRateMsgsPerSec" wmb:value="6" wmb:dataType="integer"/> </wmb:applicationData> 入力メッセージ件数 入力メッセージ件数 </wmb:event> 11 ワークロード・マネージメント – 無応答フローに対するアクション 再起動 メッセージ処理が指定時間を超過した場合のアクションを指定可能 メッセージフローに対して処理タイムアウト(秒)を設定 メッセージ処理時間が処理タイムアウトを超過した場合にアクションを実行 実行グループの再起動、もしくは、アクションなし(GA版時点) メッセージ処理が指定時間を超過したことを通知可能 タイムアウトをMQ Pub/Subの仕組みで通知 処理アクションをなしに設定した場合、処理の完了も通知可能 長時間のループ・・ 外部システムの応答待ち・・・ メッセージフロー 処理タイムアウト発生時、 処理タイムアウト発生時、 実行グループを自動的に再起動が可能 実行グループを自動的に再起動が可能 タイムアウト発生をPub/Subで通知 タイムアウト発生をPub/Subで通知 入力ノード通過後の処理時間を計測 mqsistopmsgflowコマンドに実行グループの強制停止オプションが追加 mqsistopmsgflowコマンドにて「-f restartExecutionGroup」オプションを指定 V8.0以前のバージョンでは、実行グループ・プロセスをkillのみが可能であった 12 再起動 (参考)ワークロード・マネージメント – 無応答フローに対するアクション 処理時間を超過した際に通知されるメッセージのパブリッシュ先トピック フローがライブラリに含まれる場合 $SYS/Broker/<brokerName>/WorkloadManagement/ProcessingTimeout/<executionGro upLabel>/<applicationName>/<libraryName>/<messageFlowLabel> フローがアプリケーションに含まれる場合 $SYS/Broker/<brokerName>/WorkloadManagement/ProcessingTimeout/<executionGro upLabel>/<applicationName>/<messageFlowLabel> フローが実行グループの直下にデプロイされる場合 $SYS/Broker/<brokerName>/WorkloadManagement/ProcessingTimeout/<executionGro upLabel>/<messageFlowLabel> 13 再起動 (参考)ワークロード・マネージメント – 無応答フローに対するアクション 処理時間を超過後に処理が完了した場合のパブリッシュ先トピック 処理アクションが「None」のときのみ –フローがライブラリに含まれる場合 $SYS/Broker/<brokerName>/WorkloadManagement/ProcessingFinished/<executionGro upLabel>/<applicationName>/<libraryName>/<messageFlowLabel> –フローがアプリケーションに含まれる場合 $SYS/Broker/<brokerName>/WorkloadManagement/ProcessingFinished/<executionGro upLabel>/<applicationName>/<messageFlowLabel> –フローが実行グループの直下にデプロイされる場合 $SYS/Broker/<brokerName>/WorkloadManagement/ProcessingFinished/<executionGro upLabel>/<messageFlowLabel> 14 再起動 (参考)ワークロード・マネージメント – 無応答フローに対するアクション タイムアウト時の通知メッセージ例 処理タイムアウトを2(秒)、処理アクションをNoneに設定した場合 <wmb:event xmlns:wmb="http://www.ibm.com/xmlns/prod/websphere/messagebroker/6.1.0/monitoring/event"> <wmb:eventPointData> <wmb:eventData wmb:productVersion="9000" wmb:eventSchemaVersion="6.1.0.3" wmb:eventSourceAddress="WLM"> イベント名 イベント名 <wmb:eventIdentity wmb:eventName="ProcessingTimeout"/> <wmb:eventSequence wmb:creationTime="2013-08-20T05:20:46.709999Z" wmb:counter="1"/> <wmb:eventCorrelation/> </wmb:eventData> <wmb:messageFlowData> <wmb:broker wmb:name="BK9" wmb:UUID="15cd0878-4157-44cc-a402-123b8aa662af"/> <wmb:executionGroup wmb:name="EG1" wmb:UUID="0eb1590f-4001-0000-0080-fb887e8428d5"/> <wmb:messageFlow wmb:uniqueFlowName="BK9.EG1.SimpleMQ.MsgPassThru" フロー名 フロー名 wmb:name="MsgPassThru" wmb:UUID="513f0c72-4001-0000-0080-d5391be7ca04"/> </wmb:messageFlowData> 設定したタイムアウト時間とアクション 設定したタイムアウト時間とアクション </wmb:eventPointData> <wmb:applicationData xmlns=""> <wmb:simpleContent wmb:name="processingTimeout" wmb:value="2" wmb:dataType="integer"/> <wmb:simpleContent wmb:name="processingTimeoutAction" wmb:value="none" 処理時間、スレッドID 処理時間、スレッドID wmb:dataType="string"/> <wmb:simpleContent wmb:name="timeTaken" wmb:value="2" wmb:dataType="integer"/> <wmb:simpleContent wmb:name="threadId" wmb:value="8356" wmb:dataType="string"/> <wmb:simpleContent wmb:name="nodeTrail" wmb:value="[MQ Input]-out->in-[Compute]-out->in[SLEEP]" wmb:dataType="string"/></wmb:applicationData> </wmb:event> 処理の流れ(タイムアウトしたノードが分かる) 処理の流れ(タイムアウトしたノードが分かる) 15 ワークロード・マネージメント – 設定 ワークロード・マネージメント機能の設定方法 メッセージフロー単位で以下を設定 設定項目 説明 最大速度 最大処理レートの制御(メッセージ数/秒) 0の場合機能OFF(デフォルト) 通知閾値 通知の閾値の設定(メッセージ数/秒) 0の場合機能OFF(デフォルト) 処理タイムアウト 処理タイムアウトの時間を指定(秒) 0の場合機能OFF(デフォルト) 再起動 処理アクション 処理タイムアウト時のアクションを指定 「なし」、もしくは「実行グループの再起動」を指定 再起動 最⾼ 速度 以下のいずれかで設定可能 BARファイル(ビルド済みメッセージフローのプロパティ) ワークロード・マネージメント・ポリシー –フローの再起動や再デプロイなしに、動的に設定を変更可能 BARファイルとワークロード・マネージメント・ポリシーの両方で設定した場合、 ワークロード・マネージメント・ポリシーが優先される ポリシーで設定のない項目については、BARファイルの設定値が使用される 16 ワークロード・マネージメント – 設定 BARファイルでの設定 BARファイル・エディターでの設定 通知閾値の設定 処理タイムアウトの指定 最大処理レートの設定 処理アクションの指定 17 ワークロード・マネージメント – 設定 ワークロード・マネージメント・ポリシーの設定 以下のいずれかで、ポリシーを作成/適用 WebUIによる管理機能(作成/適用) コマンド(作成/適用) –以下のコマンドが新規に追加 –mqsicreatepolicy / mqsireportpolicy / mqsichangepolicy / mqsideletepolicy mqsiattachpolicy / mqsidetachpolicy BARファイルの「ポリシー」(適用) ポリシーによるワークロード・マネージメント機能の設定の流れ ①ワークロード・マネージメント・ポリシーの作成 ②作成したポリシーを、メッセージ・フローに適用 Toolkitにて利用可能なポリシーの一覧を表示可能 「ウィンドウ」→「ビューの表示」→「Integration 18 Registries」 ワークロード・マネージメント – 設定 WebUIによる管理機能でのポリシー設定例 ①ワークロード・マネージメント・ポリシーの作成 「ポリシー」を展開 ポリシー名 通知閾値 最大レート 「作成」をクリック タイムアウト時の アクション タイムアウト時間 19 ワークロード・マネージメント – 設定 ②作成したポリシーを、メッセージ・フローに適用 「ポリシー」を選択 「適用」をクリック メッセージフローを選択 作成したポリシーを選択 ポリシーを適用する メッセージフローを選択 20 ワークロード・マネージメント – 設定 コマンドによるポリシーの設定 以下のコマンドが新規に追加 コマンド 説明 mqsicreatepolicy ポリシーの作成 mqsireportpolicy ポリシー情報の表示 mqsichangepolicy ポリシーの設定変更 mqsideletepolicy ポリシーの削除 mqsiattachpolicy メッセージフローへのポリシーの適用 mqsidetachpolicy メッセージフローからポリシーを除外 ポリシー設定を記述したXMLファイルを使用して、ポリシーを作成/変更する –ポリシー設定用サンプルXMLファイルを以下に提供 Windows の場合: <導入ディレクトリ>¥sample¥Policy¥WorkloadManagement_Policy.xml Linux、UNIXの場合: <導入ディレクトリ>/sample/Policy/WorkloadManagement_Policy.xml 21 ワークロード・マネージメント – 設定 ①ワークロード・マネージメント・ポリシーの作成 ポリシー設定用XMLファイル作成 –最大処理レートを1000に設定する例 <wsp:Policy xmlns:wsp="http://www.w3.org/ns/ws-policy"> <iwlm:workloadManagement xmlns:iwlm="http://www.ibm.com/xmlns/prod/websphere/iib/9.0.0/policy/wlm"> <iwlm:notificationThresholdMsgsPerSec></iwlm:notificationThresholdMsgsPerSec> <iwlm:maximumRateMsgsPerSec>1000</iwlm:maximumRateMsgsPerSec> <iwlm:processingTimeoutSec></iwlm:processingTimeoutSec> <iwlm:processingTimeoutAction></iwlm:processingTimeoutAction> <iwlm:additionalInstances></iwlm:additionalInstances> <iwlm:startInstancesWhenFlowStarts></iwlm:startInstancesWhenFlowStarts> <iwlm:commitCount></iwlm:commitCount> <iwlm:commitInterval></iwlm:commitInterval> <iwlm:startMode></iwlm:startMode> </iwlm:workloadManagement> </wsp:Policy> mqsicreatepolicyコマンドにて、ポリシー設定用XMLファイルをもとにポリシーを作成 – -tで「WorkloadManagement」を指定 – -lでポリシー名を指定(例ではWLM_Policy01) – -fでポリシー設定XML用ファイル名を指定(例ではpolicy_config.xml) mqsicreatepolicy BK9 -t WorkloadManagement -l WLM_Policy01 -f policy_config.xml 22 ワークロード・マネージメント – 設定 ②作成したポリシーを、メッセージ・フローに適用 mqsireportpolicyコマンドにて作成したポリシーの確認 – -tで「WorkloadManagement」を指定 – -lでポリシー名を指定(例ではWLM_Policy01) $mqsireportpolicy BK9 -t WorkloadManagement -l WLM_Policy01 BIP1895I: Policy type 'WorkloadManagement' Policy name 'WLM_Policy01' Policy URI 'http://AHA032671:4414/isr/oslc/resource/isr_core/f7090dfe-a759-43aa-a39c-2baa7 bbc7740' Policy content '<wsp:Policy xmlns:wsp="http://www.w3.org/ns/ws-policy"> <iwlm:workloadManageme nt xmlns:iwlm="http://www.ibm.com/xmlns/prod/websphere/iib/9.0.0/policy/wlm"> < iwlm:notificationThresholdMsgsPerSec></iwlm:notificationThresholdMsgsPerSec> <i wlm:maximumRateMsgsPerSec>1000</iwlm:maximumRateMsgsPerSec> <iwlm:processingTim eoutSec></iwlm:processingTimeoutSec> <iwlm:processingTimeoutAction></iwlm:proce ssingTimeoutAction> <iwlm:additionalInstances></iwlm:additionalInstances> <iwl m:startInstancesWhenFlowStarts></iwlm:startInstancesWhenFlowStarts> <iwlm:commi tCount></iwlm:commitCount> <iwlm:commitInterval></iwlm:commitInterval> <iwlm:s tartMode></iwlm:startMode> </iwlm:workloadManagement></wsp:Policy>‘ mqsiattachpolicyコマンドにてポリシーをメッセージフローに適用 – -tで「WorkloadManagement」を指定 – -lでポリシー名を指定(例ではWLM_Policy01) – -e, -m, -k, -l で実行グループ、メッセージフロー、アプリケーション(オプション)、ライブラリ(オプション)を指定 mqsiattachpolicy BK9 -e EG1 -m HelloServiceProvider -t WorkloadManagement -l WLM_Policy01 -k SOAP.APP01 23 ワークロード・マネージメント – 設定 BARファイルによるポリシーの適用 「ポリシー」に作成済みのポリシーを設定 デプロイ時に指定のポリシーが適用される ※WebUIによる管理機能/コマンドにて動的に適用したポリシーは、BARファイルの再デプロイ時にリセットされる BARファイルにあらかじめポリシーを指定しておくことで、デプロイ直後からポリシーを適用可能 作成済みポリシー名を設定 24 (補足)mqsicreatepolicyコマンド mqsicreatepolicyコマンドの文法 mqsicreatepolicy brokerSpec -t policyType -l policyName -f policyDocument コマンド・オプション: 'brokerSpec' は以下のいずれかの値 'brokerName' : ローカルに定義されているブローカーの名前 '-n brokerFileName' : リモート・ブローカー接続パラメーターが含まれているファイル (*.broker) '-i ipAddress -p port -q qMgr' : リモート・ブローカーのホスト名、ポート、およびキューマネージャー ‘-t policyType’: ポリシーのタイプを指定(例: ‘WorkloadManagement’) ‘-l policyName’: ポリシー名を指定 ‘-f policyDocument’ : ポリシー設定用XML文書を指定 以下は必要に応じて指定 '-w timeoutSecs' : ブローカーの応答を待機する最大秒数 (デフォルトは 60) '-v traceFileName' : 指定されたファイルに詳細内部トレースを送信 25 (補足)mqsichangepolicyコマンド mqsichangepolicyコマンドの文法 mqsichangepolicy brokerSpec -t policyType -l policyName -f policyDocument コマンド・オプション: 'brokerSpec' は以下のいずれかの値 'brokerName' : ローカルに定義されているブローカーの名前 '-n brokerFileName' : リモート・ブローカー接続パラメーターが含まれているファイル (*.broker) '-i ipAddress -p port -q qMgr' : リモート・ブローカーのホスト名、ポート、およびキューマネージャー ‘-t policyType’: ポリシーのタイプを指定(例: ‘WorkloadManagement’) ‘-l policyName’: ポリシー名を指定 ‘-f policyDocument’ : ポリシー設定用XML文書を指定 以下は必要に応じて指定 '-w timeoutSecs' : ブローカーの応答を待機する最大秒数 (デフォルトは 60) '-v traceFileName' : 指定されたファイルに詳細内部トレースを送信 26 (補足)mqsideletepolicyコマンド mqsideletepolicyコマンドの文法 mqsideletepolicy brokerSpec -t policyType -l policyName コマンド・オプション: 'brokerSpec' は以下のいずれかの値 'brokerName' : ローカルに定義されているブローカーの名前 '-n brokerFileName' : リモート・ブローカー接続パラメーターが含まれているファイル (*.broker) '-i ipAddress -p port -q qMgr' : リモート・ブローカーのホスト名、ポート、およびキューマネージャー ‘-t policyType’: ポリシーのタイプを指定(例: ‘WorkloadManagement’) ‘-l policyName’: ポリシー名を指定 以下は必要に応じて指定 '-w timeoutSecs' : ブローカーの応答を待機する最大秒数 (デフォルトは 60) '-v traceFileName' : 指定されたファイルに詳細内部トレースを送信 27 (補足)mqsireportpolicyコマンド mqsireportpolicyコマンドの文法 Syntax 1: Syntax 2: Syntax 3: mqsireportpolicy BrokerName -t policyType -l policyName mqsireportpolicy BrokerName -t policyType (-a | -r) mqsireportpolicy BrokerName -e egName -m flowName [-k application] [-y library] コマンド・オプション: 'brokerSpec' は以下のいずれかの値 'brokerName' : ローカルに定義されているブローカーの名前 '-n brokerFileName' : リモート・ブローカー接続パラメーターが含まれているファイル (*.broker) '-i ipAddress -p port -q qMgr' : リモート・ブローカーのホスト名、ポート、およびキューマネージャー ‘-t policyType’: ポリシーのタイプを指定(例: ‘WorkloadManagement’) ‘-l policyName’: ポリシー名を指定 ‘-f policyDocument’ : ポリシー設定用XML文書を指定 ‘-m messageFlow’: メッセージフロー名を指定 ‘-a’: すべてのポリシーのシングルレベルを表示 ‘-r’: すべてのポリシーとコンテンツを表示 以下は必要に応じて指定 ‘-k application’: アプリケーション名を指定 ‘-y library’: ライブラリ名を指定 '-w timeoutSecs' : ブローカーの応答を待機する最大秒数 (デフォルトは 60) '-v traceFileName' : 指定されたファイルに詳細内部トレースを送信 28 (補足)mqsiattachpolicyコマンド mqsiattachpolicyコマンドの文法 mqsiattachpolicy brokerSpec -e egName -m messageFlow -t policyType -l policyName [-k application] [-y library] コマンド・オプション: 'brokerSpec' は以下のいずれかの値 'brokerName' : ローカルに定義されているブローカーの名前 '-n brokerFileName' : リモート・ブローカー接続パラメーターが含まれているファイル (*.broker) '-i ipAddress -p port -q qMgr' : リモート・ブローカーのホスト名、ポート、およびキューマネージャー ‘-e egName’: 実行グループ名を指定 ‘-m messageFlow’: メッセージフロー名を指定 ‘-t policyType’: ポリシーのタイプを指定(例: ‘WorkloadManagement’) ‘-l policyName’: ポリシー名を指定 以下は必要に応じて指定 ‘-k application’: アプリケーション名を指定 ‘-y library’: ライブラリ名を指定 '-w timeoutSecs' : ブローカーの応答を待機する最大秒数 (デフォルトは 60) '-v traceFileName' : 指定されたファイルに詳細内部トレースを送信 29 (補足)mqsidetachpolicyコマンド mqsidetachpolicyコマンドの文法 mqsidetachpolicy brokerSpec -e egName -m messageFlow [-k application] [-y library] コマンド・オプション: 'brokerSpec' は以下のいずれかの値 'brokerName' : ローカルに定義されているブローカーの名前 '-n brokerFileName' : リモート・ブローカー接続パラメーターが含まれているファイル (*.broker) '-i ipAddress -p port -q qMgr' : リモート・ブローカーのホスト名、ポート、およびキューマネージャー ‘-e egName’: 実行グループ名を指定 ‘-m messageFlow’: メッセージフロー名を指定 以下は必要に応じて指定 ‘-k application’: アプリケーション名を指定 ‘-y library’: ライブラリ名を指定 '-w timeoutSecs' : ブローカーの応答を待機する最大秒数 (デフォルトは 60) '-v traceFileName' : 指定されたファイルに詳細内部トレースを送信 30 WebUIによる管理機能の強化 31 WebUIによる管理機能 Webブラウザからブローカー実行環境の運用管理が可能 MQ Explorer やWASの管理コンソールの機能を補完 WMB V8.0.0.1にて追加された機能 Webユーザー・インターフェース・サーバーを提供 HTTP/HTTPSリクエストを受け付け、要求された管理操作を実行する デフォルトで有効化されている 主な機能(V8.0.0.1) ブローカーのステータス表示 起動停止、プロパティ設定は不可 実行グループのステータス表示、起動、停止 アプリケーション/メッセージフローのステータス表示、起動、停止 構成可能サービスの表示 データ・キャプチャ・ストアの表示 ブラウザ Webユーザー・アカウントの表示 管理ログの表示 HTTP(S) ブローカー ブローカー 実行グループ Webユーザ I/F Server メッセージフロー メッセージフロー 32 WebUIによる管理機能の強化 WebUIによる管理機能の強化 メッセージフロー統計(スナップショット統計)の表示が可能 リアルタイムでフローの各種指標を参照可能 –メッセージ処理のスループット、平均CPU時間など 統計情報をグラフで表示 メッセージフロー・レベル/ノード・レベルで統計情報の比較が可能 メッセージフロー統計の開始/停止が可能 ワークロード・マネージメント・ポリシーの設定が可能 ポリシーの作成、編集、削除、メッセージフローへの適用 33 WebUIによる管理機能の強化 WebUI追加機能 メッセージフロー統計の開始/停止 デフォルトでは、統計情報の収集はオフ 「ブローカー名」⇒「実行グループ」⇒「アプリケーション」⇒アプリケーション名の右三角形をクリック 統計情報のオン/オフを選択 34 WebUIによる管理機能の強化 統計情報の表示 統合サーバー(実行グループ)、アプリケーション、メッセージフローにて統計を確認 ※メッセージ・フロー統計がオン時 「統合サーバー」⇒「統計」タブをクリック メッセージフローごとに統計情報が表示される 35 WebUIによる管理機能の強化 「メッセージフロー」⇒統計をクリック 統計情報がグラフで表示される 36 WebUIによる管理機能の強化 グラフに表示する統計情報を選択可能 グラフ右プルダウン・メニューをクリック グラフで表示する項目を選択可能 37 WebUIによる管理機能の強化 ノードごとの統計情報を表示 「メッセージフロー」⇒統計をクリック メッセージフローに含まれるノードと、統計情報を表示 38 WebUIによる管理機能の強化 WebUIによる管理機能の変更点 統計情報フォーマットの追加 Web管理ツールから統計情報をオンにした場合、統計情報はJSONフォーマットで出力される 出力先トピック $SYS/Broker/brokerName/Statistics/JSON/SnapShot/executionGroupName/applications/appl icationName/libraries/libraryName/messageflows/messageFlowName Web管理ユーザーに必要な権限が追加 SYSTEM.BROKER.WEBADMIN.SUBSCRIPTIONキューへのput/get権限 SYSTEM.BROKER.MB.TOPICトピックへのpub/sub権限 39 グローバル・キャッシュ拡張 40 グローバル・キャッシュとは 複数プロセス間でデータを共有可能な機能としてグローバル・キャッシュを提供(V8.0.0.1) 異なる実行グループや異なるブローカー上のメッセージ・フロー間でデータの共有/再利用が可能 WebSphere eXtreme Scaleから、キャッシングの一部機能を移植 データ共有のためのデーターベースなどの代替ソリューションが不要 複数ブローカーでのリクエスト/リプライ処理や、参照データのキャッシュなどに活用可能 キャッシュされたデータを実行グループに複製して保持することで、障害時のデータロスを防止 JavaComputeノードを使用して、グローバル・キャッシュへアクセス キーと値を関連付けるマップ形式でデータを保持 mqsicacheadminコマンド、リソース統計、アクティビティー・ログにてキャッシュ情報を確認可能 ブローカーA メッセージフローA メッセージフローB 異なる実行グループ間でデータを共有 グローバル・キャッシュ マップ形式でデータを保存 異なるブローカー間でデータを共有 ブローカーB メッセージフローA キー 値 Key1 Value1 Key2 Value2 Key3 Value3 41 (参考)グローバル・キャッシュ グローバル・キャッシュを利用するために必要なキャッシュ・コンポーネント キャッシュ・コンポーネントは実行グループ上で動作 コンポーネント 説明 コンテナ・サーバー グローバル・キャッシュのデータを保持するコンポーネント カタログ・サーバー コンテナ・サーバーのロケーション情報を管理するコンポーネント コンテナ・サーバーをモニターし、データの配置を制御 メッセージフローは、カタログ・サーバーからキャッシュ配置情報を取得し、キャッシュにアクセス 実行グループ1 メッセージフロー 実行グループ2 実行グループ3 メッセージフロー カタログ・サーバー カタログ・サーバー コンテナ・サーバー コンテナ・サーバー メッセージフロー 実行グループ4 メッセージフロー グローバル・キャッシュ コンテナ・サーバー キャッシュ・データは複製され、 コンテナ・サーバーに分散して格納される 42 グローバルキャッシュ拡張 V8.0.0.2での機能拡張 外部 WebSphere eXtreme Scale グリッドとの連携 ブローカー内部のカタログ・サーバー/コンテナ・サーバーはWXSのグリッドと連携 外部WXSへのSSL接続が可能 キャッシュの残存時間設定 V9.0での機能拡張 マルチインスタンス・ブローカーのサポート 43 外部 WebSphere eXtreme Scale グリッドとの連携 外部 WebSphere eXtreme Scale グリッドとの連携をサポート(V8.0.0.2) 外部WXSで提供されるキャッシュを利用可能 ブローカー内部のカタログ・サーバー/コンテナ・サーバーはWXSのグリッドと連携 外部WXSへのSSL接続が可能 グリッドを識別するためにドメイン・ネームを使用 WXSクライアントは、ドメイン・ネームを使用してグリッドを識別 同じドメイン・ネームを持つWXSのみがグリッドに参加できる 使用可能なWXS環境の例 DataPower XC10 WAS NDの組み込みWXSサーバー スタンドアロンWXS 外部WebSphere eXtreme Scale グリッド 連携 実行グループ1 実行グループ2 メッセージフロー グローバル・キャッシュ メッセージフロー カタログ・サーバー カタログ・サーバー コンテナ・サーバー コンテナ・サーバー 44 実行グループ3 メッセージフロー コンテナ・サーバー 外部 WebSphere eXtreme Scale グリッドとの連携 外部グリッドへの接続設定 WXSServer 構成可能サービスを作成 設定プロパティ一覧 プロパティ 説明 catalogServiceEnd Points 必須 接続先WXSグリッドのカタログ・サーバーのホスト名 カタログ・サーバーをコンマ区切りでリスト hostname:port 型式で指定 gridName 必須 接続先グリッド名 overrideObjectGrid File オプション WXS接続プロパティーを定義用XMLファイルへの絶対パス 特定のプロパティー(numberOfBuckets や timeToLive など) を変更可能 securityIdentity オプション セキュア・グリッドへの接続時に使用するセキュリティー ID 名 mqsisetdbparms コマンドにて指定したID名から”wxs::” を省いたIDを指定 mqsicreateconfigurableserviceコマンドもしくはIIB Explorerで設定 mqsicreateconfigurableserviceコマンドでの設定 でサービスタイプ「WXSServer」を指定 でオブジェクトタイプ「xc10」を指定 -n, -vで上記パラメータを設定 -c -o 45 外部 WebSphere eXtreme Scale グリッドとの連携 コマンド実行例 グリッド名「myGrid」、WXSグリッドのカタログ・サーバーのホスト名「Server.ibm.com」、ポート「 接続定義ファイル(後述) 「xc10Client.xml」、セキュリティID(後述)「xc10」 を設定する場合 mqsicreateconfigurableservice BK9 -c WXSServer -o xc10 -n catalogServiceEndPoints,gridName,overrideObjectGridFile,securityIdentity -v "server.ibm.com:2809","myGrid", "C:¥Brokers¥WebSphere_eXtreme_Scale¥xc10¥xc10Client.xml","xc10" 接続にユーザーIDとパスワードを必要とするセキュア・グリッドに接続する場合は、 あらかじめmqsisetdbparms コマンドを使用してセキュリティー ID を作成 でセキュリティーID名を指定 -u でユーザー名指定 -p でパスワードを指定 -n mqsisetdbparms BK9 -n wxs::id1 -u userId -p password 46 2809」、 外部 WebSphere eXtreme Scale グリッドとの連携 IB Explorerでの設定 構成可能サービス名 構成可能サービスタイプ 設定プロパティ 47 外部 WebSphere eXtreme Scale グリッドとの連携 WXS接続プロパティーを定義用XMLファイル サンプル定義XMLファイルを以下に提供 Windows の場合: <導入ディレクトリ>¥cachesupport¥config¥objectgrid.xml Linux、UNIXの場合: <導入ディレクトリ>/cachesupport/config/objectgrid.xml 特定のプロパティー(numberOfBuckets や timeToLive など) を変更可能 –詳細な設定項目については、WXSのInformationCenterを参照 http://publib.boulder.ibm.com/infocenter/wxsinfo/v7r1m1/index.jsp 設定例 –外部WXSキャッシュのデータをブローカー内部にコピーしないよう設定する例 numberOfBuckets=“0” を設定 <backingMap name=".*¥.LUT" template="true" readOnly="false" lockStrategy="NONE" ttlEvictorType="LAST_UPDATE_TIME" timeToLive="3600" copyMode="COPY_TO_BYTES“ numberOfBuckets=“0” /> –構成可能サービスにて、objectgrid.xmlへの絶対パスを設定 48 外部 WebSphere eXtreme Scale グリッドとの連携 外部グリッドへの接続 JavaComputeを使用して外部グリッド内のマップへのアクセス オブジェクトを追加し、外部グリッド上のマップの名前を指定 グリッドへの接続に使用する構成可能サービスの名前を指定 MbGlobalMap DataPower XC10上のマップ「MyMap.LUT」に接続する例 構成可能サービスは「xc10Connection」 MbGlobalMap xc10Map = MbGlobalMap.getGlobalMap("MyMap.LUT","xc10Connection"); ... String val = (String)xc10Map.get(key); 構成可能サービス名を指定 構成可能サービス名を指定 49 外部 WebSphere eXtreme Scale グリッドとの連携 グリッドを識別するためのドメイン・ネームの使用 複数ブローカーにまたがるグローバル・キャッシュを使用する場合、ドメイン・ネームの設定が必要 同じドメイン・ネームを持つサーバーのみが、同じキャッシュ(グリッド)に参加可能 外部WXSに接続する場合は、WXSサーバーと実行グループでドメイン・ネームをあわせる 実行グループのプロパティまたはポリシー・ファイルにて、ドメイン・ネームを設定 mqsichangepropertiesコマンドでの設定 –-n で「domainName」 を指定, -vで値を指定 以下の構成の場合の設定例 ・enableCatalogService: true ・enableContainerService: true ・listenerPort: 2809 ・listenerHost: server1 ・haManagerPort: 2810 ・catalogClusterEndPoints: BK1_server1_2809:server1:2811:2810 ・connectionEndPoint: server1:2809 ・domainName: myDomain ホスト名: server1 ブローカー BK1 EG1でのプロパティ設定 EG1 カタログ・サーバー コンテナ・サーバー 実行グループEG1にプロパティを設定するコマンドの例 mqsichangeproperties BK1 -e EG1 -o ComIbmCacheManager -n enableCatalogService,enableContainerService,listenerPort,listenerHost,haManagerPort,c atalogClusterEndPoints,connectionEndPoints,domainName -v true,true,2809,server1,2810, BK1_server1_2809:server1:2811:2810,server1:2809,myDomain 50 外部 WebSphere eXtreme Scale グリッドとの連携 ポリシー・ファイルでの設定 –domainName タグを指定 <?xml version="1.0" encoding="UTF-8"?> <cachePolicy xmlns="http://www.ibm.com/xmlns/prod/websphere/messagebroker/globalcache/policy-1.0"> <domainName>myDomain</domainName> <broker name="BK1" listenerHost=“server1"> <catalogs>1</catalogs> <portRange> <startPort>3000</startPort> <endPort>3019</endPort> </portRange> </broker> </cachePolicy> 51 (参考)グローバル・キャッシュ 実行グループでのプロパティ設定 mqsichangepropertiesにて実行グループのプロパティーを設定 -bでcachemanagerを指定、-oでComIbmCacheManager を指定 -n -v で関連プロパティーを設定 カタログ・サーバー/コンテナ・サーバーを配置する実行グループに以下を指定 プロパティ 説明 enableCatalogService カタログ・サーバーを配置する場合 true を指定(デフォルト: false) enableContainerService コンテナ・サーバーを配置する場合 true を指定(デフォルト: false) コンテナ・サーバー/カタログ・サーバーを配置する実行グループにて、以下のホスト/ポートを設定 プロパティ 設定が必要なコンポーネント 説明 listenerPort カタログ・サーバー/コンテナサーバー カタログ・サーバーおよびコンテナサーバーが使用するポートを 指定 listenerHost カタログ・サーバー/コンテナサーバー ローカル・コンピューターのホスト名を指定 2つ以上ホスト名を持つ場合に指定 haManagerPort カタログ・サーバー/コンテナサーバー カタログ・サーバーおよびコンテナサーバーが使用するポートを 指定 catalogClusterEnd Points カタログ・サーバー カタログ・サーバーが使用するエンドポイントを指定 複数のカタログ・サーバーが存在する場合は、コンマ区切りで リスト ※エンドポイントの指定方法は次頁 52 ※各ポートはそれぞれ固有の番号を指定 (参考)グローバル・キャッシュ ※カタログ・サーバーが使用するエンドポイントの指定方法 –以下の形式で指定 ServerName:listenerHost:CatalogPeerPort:haManagerPort haManagerPortプロパティ設定したポート番号を指定 新たにポート番号を指定 listenerHostプロパティで設定したホスト名を指定 BrokerName_listenerHost_listenerPort 形式で指定 ・BrokerName: ブローカー名 ・listenerHost: listenerHostプロパティで設定したホスト名を指定 ・listenerPort: listenerPortプロパティで設定したポート番号を指定 catalogClusterEndPointsの設定例 –他プロパティにて以下を設定した場合 ブローカー名: MBV8BK、listenerHost: localhost、listenerPort: 2809、haManagerPort: 2810 –CatalogPeerPortの指定:2811 catalogClusterEndPointsの指定 ⇒ MBV8BK_localhost_2809:localhost:2811:2810 53 (参考)グローバル・キャッシュ カタログ・サーバーへの接続情報を設定 グローバル・キャッシュにアクセスするすべての実行グループで設定が必要 プロパティ 説明 connectionEndPoints 接続先カタログ・サーバーホスト名、ポート番号を指定 複数のカタログ・サーバーが存在する場合は、コンマ区切りでリスト 設定形式: listenerHost:listenerPort, listenerHost2:listenerPort2 mqsicacheadmin コマンドでグローバル・キャッシュ情報を取得する場合、以下を設定 プロパティ 説明 enableJMX 実行グループがグローバル・キャッシュの管理情報を提供するどうかを指定 jmxServicePort enableJMX パラメーターが true に設定される場合、使用されるポート 54 (参考)グローバル・キャッシュ ポリシー・ファイルによるプロパティ設定 mqsichangebroker もしくはmqsichangepropertiesにてブローカー・プロパティを設定 mqsichagebrokerでの設定 (ブローカー停止後コマンドを実行) -b で「ポリシーファイルの絶対パス」を指定 mqsichangebroker broker_name -b /path/policy.xml mqsichangepropertiesコマンドでの設定 -b で「cachemanager 」を指定、-oで「CacheManager」 を指定 -v で「ポリシー・ファイルの絶対パス」を設定 -nで「policy」 コマンド実行後、ブローカーを再起動 mqsichangeproperties broker_name -b cachemanager -o CacheManager -n policy -v /path/policy.xml 55 キャッシュの残存時間設定 キャッシュの残存時間設定をサポート(V8.0.0.2) MbGlobalMapオブジェクト取得時に残存時間(秒)を指定 残存時間を指定したMbGlobalMap オブジェクトを使用して作成されたマップに適用される マップ内の既存データや別MbGlobalMap オブジェクトのマップは影響を受けない 残存時間はマップ項目の最終更新日時からカウントされる デフォルトでは無制限 キャッシュによりメモリ消費量が増大することをさけることができる V8.0GA版では、不要なデータは、アプリケーションの中でremoveするか、mqsicacheadminコマンドで 定期的に削除する必要があった 指定方法 MbGlobalMapSessionPolicyクラスに残存時間(秒)を設定 MbGlobalMapオブジェクト取得時に、 MbGlobalMapSessionPolicyオブジェクトを設定 MbGlobalMap myMap = MbGlobalMap.getGlobalMap("myMap", new MbGlobalMapSessionPolicy(60)) Expiryを設定 Expiryを設定 デフォルトは0 (Expiryなし) デフォルトは0 (Expiryなし) 56 キャッシュの残存時間設定 キャッシュの残存時間設定の注意点 残存時間は、MbGlobalMapSessionPolicyオブジェクトにstaticに設定される 異なる存続時間値を設定する場合は、データをキャッシュするごとに値を設定 MbGlobalMap m1 = MbGlobalMap.getGlobalMap("myMap", new MbGlobalMapSessionPolicy(60)); m1.put("k1","v1"); m1 = MbGlobalMap.getGlobalMap("myMap", new MbGlobalMapSessionPolicy(40)); m1.put("k2","v2"); m1 = MbGlobalMap.getGlobalMap("myMap", new MbGlobalMapSessionPolicy(20)); m1.put("k3","v3"); ※以下の場合、残存時間はm1, m2, m3とも20(秒)が設定される MbGlobalMap m1 = MbGlobalMap.getGlobalMap("myMap", new MbGlobalMapSessionPolicy(60)); MbGlobalMap m2 = MbGlobalMap.getGlobalMap("myMap", new MbGlobalMapSessionPolicy(40)); MbGlobalMap m3 = MbGlobalMap.getGlobalMap("myMap", new MbGlobalMapSessionPolicy(20)); m1.put("k1","v1"); m2.put("k2","v2"); m3.put("k3","v3"); 57 マルチインスタンス・ブローカーのサポート コンテナサーバーをマルチインスタンス・ブローカーとして構成可能(V9.0.0.0) 自動的にテイクオーバー先でコンテナサーバーが起動しキャッシュが共有される 4コンテナサーバーまで設定可能 カタログ・サーバーのマルチインスタンス構成は不可 マルチインスタンスの対象のコンテナサーバーに接続する実行グループでの設定 ポリシー・ファイルにてActive/Standbyインスタンスのホスト名を構成 サンプルポリシーファイルを以下に提供 Windows の場合: <導入ディレクトリ>¥sample¥globalcache¥policy_multi_instance.xml Linux、UNIXの場合: <導入ディレクトリ>/sample/globalcache/policy_multi_instance.xml リスナー・ホストにActive/Standbyインスタンスのホスト名を指定 <?xml version="1.0" encoding="UTF-8"?> <cachePolicy xmlns="http://www.ibm.com/xmlns/prod/websphere/messagebroker/globalcache/policy-1.0"> <broker name="MIBRK"> <listenerHost>host1.ibm.com</listenerHost> <listenerHost>host2.ibm.com</listenerHost> <catalogs>0</catalogs> <portRange> <startPort>3020</startPort> <endPort>3039</endPort> </portRange> </broker></cachePolicy> 58 ビジネス・ルール 59 ビジネス・ルール 自然言語を使用したビジネス・ルールの開発 ツールキットで自然言語 Business Action Language (BAL) を利用してルールを作成可能 ブローカー上でのビジネス・ルールの実行 ODMと同等のルール・エンジンを ブローカー内部のJVMで稼動 業務レベルの判断ロジックをESBで実行 データに対するメディエーション処理の集約 ⇒ パフォーマンス向上、レイテンシー縮小 Rule-based Business Decisions Enterprise Application BPM System Destination Business Application Portal ESB 60 Destination Business Application ビジネス・ルール IBM Operational Decision Manager(ODM)との連携機能の提供 ODMの開発ツール(Rule Designer)で作成したルールをツールキットにインポート可能 インポートしたルールの編集は不可 インポートしたルールを使用してフローを開発し、ブローカーにルールとともにデプロイ可 ブローカー(実行グループ)内部のルール・エンジンでインポートしたルールを実行 ルールはローカルのリポジトリ(ファイルシステム)に格納 ブローカーから外部のODM repository(RES DB)にアクセスし、ルールを取得することも可 Rule Designer からインポートしたルールでフローを実装していることが前提 ODM v8.5 をサポート WMB v7/v8では、サポートパックIAM9(カテゴリ2)を利用することでODM v7/v7.5/v8と連携可 Rule Execution Server Rule Designer ODM ODM Repository (Database) デプロイ ビジネスルール 取出 インポート IIB Broker Toolkit Rule Engine 実行 Decision Repository (File System) デプロイ (BARファイル) フロー開発 61 (補足) IBM Operational Decision Manager “今、この瞬間”をビジネスに活用! 情報収集から意思決定までを自動化 意思決定および変更検出ツールを組み合わせて、進化、追跡、監査、 およびテストが 容易なビジネス・ルール管理システムを提供 ビジネス・ルール管理システム (BRMS) ビジネス・ルールが存在する典型的な場所 アプリケーションコードに 埋め込まれたロジック ・ルールの定義 ルールの可視化 ・ルールの分析 ビジネスユーザ ・ルールの保守 自らルールの ※業務用語 変更が可能 プロセスの中に定義 されたロジック ユーザー・ツール If xxxx Then xxxxx Else xxxxx ・・・・・・・ ・・・・・・・ 人の頭の中にノウハウ としてあるロジック 各種ドキュメントの 中にあるロジック From : Honmoku To : Smyrna Order No. RAN No. Part Number : 24011 CJ000 Tracking Point Status Invoice No. B/L No. RAN# SA00001 SA00002 SA00003 SA00004 SA00005 ・ルールを保存 ルールの ・ルールの一元 一元管理による 管理 透明性・保守性の ・ルールの共有 確保 ルール・リポジトリー Today : 2005/04/16 Plan Actual Current (40)Vanning Completion PART# QTY QTY Status Plan Revised Actual 24011 CJ000 200 200 60 060415 060415 060415 24011 CJ000 100 100 60 060415 060415 060415 24011 CJ000 200 200 40 060415 060415 060415 24011 CJ000 200 200 00 060415 060418 24011 CJ000 100 100 00 060415 060418 (60)B/L Plan 060415 060415 060415 060415 060415 ルールを展開、 結果として変更へ の対応柔軟性を実 実行、および 現 モニター … Revised Actual … 060415 060415 060415 060415 060417 060418 060418 ルール・エンジン 62 (補足) IBM Operational Decision Manager ODM基本コンポーネント Decision Center ルール開発 ルール開発 Decision Center Console 管理 管理 Rule Solutions for Office Decision Center for Business Space デプロイ デプロイ Decision Center Repository デプロイ デプロイ ガバナンス ガバナンス イベント・アプリ イベント・アプリ 開発 開発 ルール・アプリ ルール・アプリ 開発 開発 実行 実行 デプロイ デプロイ デプロイ デプロイ Rule Execution Server 実行 実行 Rule Designer ODM Repository /RES DB Event Designer Event Execution Runtime Decision Server 63 ビジネス・ルール ビジネス・ルール実行のための構成パターン ①IIBコンポーネントのみの構成 IIBコンポーネントのみによるビジネスルールの開発と実行が可能 ルールの変更を適用するために Toolkit フローのデプロイが必要 ②IIBとODMとの連携構成 Broker デプロイ (BARファイル) ルール&フロー開発 実行 ODMの利用により、高度なビジネスルールの開発とルールのガバナンスが可能 ビジネスルールとITインフラ・ロジックの実装の分離 開発ユーザーの分離 Decision Center デプロイ・タイミングの分離 Rule Designer ルール開発 Toolkit インポート フロー開発 64 ガバナンス Rule Execution Server Broker デプロイ (BARファイル) 実行 DS Repository 更新 Decision Service (決定サービス) ツールキット上では、ビジネス・ルールをDecision Service (決定サービス)として定義 Decision Service は、アプリケーション/ライブラリに格納する1コンポーネント(.rules ファイル) Decision Service 内にルールを定義(複数のルールを定義可) Decision Service エディターを利用 ルールは、IF-THEN-ELSE の構文で記述 日本語では、「仮定条件」-「その場合」-「それ以外の場合」 アプリケーション/ライブラリー スキーマ定義 xxxxx01.rules ルール1 (ルールセットxxxxx01) フロー ルール 1 Decision Service(決定サービス) ルール 2 決定サービス xxxxx01.rules 決定サービス xxxxx02.rules 65 Decision Service (決定サービス) Decision Service の作成 ツールキット上で「新規」→ 「Decision Service」を指定 66 仮定条件(IF) xxxxxxxxxxxxxxxxxx その場合(THEN) yyyyyyyyyyyyyyyyyy それ以外の場合(ELSE) zzzzzzzzzzzzzzzzzz Decision Service (決定サービス) Decision Service の作成(つづき) 格納するアプリケーション/ライブラリ、Decision Serviceの名前を指定 Decision Serviceで使用するデータの指定 後続の手順でも選択可 67 Decision Service (決定サービス) Decision Service の作成(つづき) 空のDecision Serviceが作成され、Decision Service エディターで開かれる Decision Service エディター タブで設定項目を切り替え 68 Decision Service (決定サービス) Decision Service の作成(つづき) →データ(パラメータ)の選択 「Parameters」タブでルールの定義に使用するデータ(パラメータ)を指定 ※ルールに使用するデータは事前にDFDL/XMLスキーマで定義しておく必要がある ルール内で使用する データの言語化 データの選択 69 Decision Service (決定サービス) Decision Service の作成(つづき) →ルールの定義 「Rule sequence」タブでビジネスルールを定義 「Ctrl+Space」でコンテント・アシストを利用 70 Decision Service (決定サービス) Decision Service の作成(つづき) →ルールの定義 コンテント・アシストを利用してルールを組み立てていく 先に指定したデータの構造を展開していくことができる 71 Decision Service (決定サービス) Decision Service の作成(つづき) →ルールの追加(オプション) 「Add Rule」ボタンでルールを追加できる 72 Decision Service (決定サービス) Decision Service ノードの設定 Decision Service をドラッグ&ドロップでメッセージフローに移動 ⇒Decision Service ノードが配置される Decision Service ノード 作成した Decision Service 73 Decision Service (決定サービス) Decision Service ノードの設定 →ロケーションのXPath指定 ルールに定義したデータ(パラメータ)に対するフロー内におけるロケーションをXPathで指定 XPath 式ビルダーを 利用してXPathを 生成する ドラッグ&ドロップで XPathを生成 74 Decision Service (決定サービス) Decision Service ノードの設定 →プロパティの完成 プロパティの完成 75 Decision Service (決定サービス) Decision Service ノードが使用するLocalEnvironment ノード通過後、LocalEnvironment.DecisionServices下に以下のエレメントがセットされる エレメント名 データタイプ 説明 decisionService String ノードによって使用されたDecision Service 名 アプリケーション/ライブラリ内に格納されている場合は、その名前がPrefix に付く ruleSet String ノードによって使用されたルール・セット名 rulesMatched Integer 条件に合致して実行されたルールの数 ノード通過後のLocalEnvironment ツリーの出力例 (0x01000000:Name):DecisionServices = ( (0x03000000:NameValue):decisionService = 'BookOrder2/bookorder2' (CHARACTER) (0x03000000:NameValue):ruleSet (0x03000000:NameValue):rulesMatched = 'bookorder2' (CHARACTER) = 1 (INTEGER) ) 76 Decision Service (決定サービス) Decision Service を利用するフローの処理イメージ ルール定義 ルール・エンジン BookOrder e1 仮定条件 ‘BookOrder’の e1 が X より大きい その場合 ‘BookOrder’の e2 を Y とする。 e2=Y ルールに基づいてデータを変換 入力ツリー 出力ツリー Root Root XMLNSC XMLNSC BookOrder BookOrder e1 e2=0 ノード・プロパティのXPathで BookOrder の位置を指定 e1 e2=Y DecisionService ノード・プロパティ 77 Decision Service (決定サービス) ブローカーのセットアップ DecisionServices を含むフローをブローカーにデプロイする場合、ブローカーの稼動モードを拡 張する必要がある mqsimode (BrokerName) -x DecisionServices ※分散環境では、ブローカー名の指定は不要。z/OS環境では、ブローカー名を指定 ※ブローカー稼動時に動的に反映可 ※モード拡張を解除にする場合も同じコマンドを実行 モード拡張 >mqsimode -x DecisionServices BIP1831I: ブローカー '' にはモード拡張機能 'DecisionServices' があります。 BIP8071I: コマンドが完了しました。 モード拡張解除 >mqsimode -x DecisionServices BIP1831I: ブローカー '' にはモード拡張機能 '' があります。 BIP8071I: コマンドが完了しました。 ※モード拡張せずにDecisionServiceノードを含むフローをデプロイすると以下のエラーで失敗する BIP1835E: You attempted to deploy a broker archive (bar) file to execution group 'ex01' on broker '9BK', but a flow within the bar file contains a node of type 'ComIbmDecisionServiceNode' that requires extension 'DecisionServices' to be enabled in the broker. The bar file cannot be deployed. The bar file cannot be deployed because it contains a flow that is not valid for the target broker. Rework your message flow to use nodes that are valid in the current mode. Alternatively, contact your IBM representative to upgrade your license. 78 ODM連携 ODM Rule Designer で作成したルールをツールキットにインポート インポートするファイルには以下の制約がある インポートするファイルはルール・アプリケーション・アーカイブ・ファイル(.jar)であること ルール・アプリケーション・アーカイブのルールセットにはアクション・ルールが含まれること ルールセットはスキーマXOM(XSD)を持つこと(Java XOM は不可) ルールセットはスキーマ・タイプのパラメータを持つこと ODM Rule Designer ルール・アプリケーション ルールを配布可能な形に パッケージしたもの スキーマXOM ルール実行の対象となるデータのモデル 79 ODM連携 インポート手順 ツールキットから「ファイル」→「インポート」 →「Decision Services」 →「Rule Application archive file」 ルールを格納するプロジェクトと インポートするルール・アプリケーション・アーカイブ・ファイルを指定 80 ODM連携 インポート手順(続き) インポートされるルールセットを確認 インポートしたルールは Decision Service(.rules)として格納 81 ODM連携 インポート手順(続き) インポートしたルール(Decision Service)はエディターで開けるが編集は不可 ドラッグ&ドロップでフローへ配置可能 82 ODM連携 インポートしたルールからXMLスキーマの抽出も可能 入出力メッセージのメッセージモデルに利用 決定サービスを右クリック →「Extract XML Schema file…」 83 ODM連携 ODM Repository との連携 ODM RES のRepository(RES DB)にブローカー・ランタイムからアクセスし、 ルールを取得可能 RES(管理サーバー)に接続することでルールの変更通知を受信可能 Rule Designer で開発したルールをインポートして作成したフローでのみ設定可能 RES DB RES (管理サーバー) ビジネス・ルール 変更 通知 最新版 取得 実行グループ J2SE Rule Engine 84 ODM連携 ブローカー設定 JDBCProviders 構成可能サービスの作成 RES DBに接続するための情報(データベース名、サーバー名、ポート番号、セキュリティIDなど)を JDBCProviders 構成可能サービスに設定する mqsicreateconfigurableservice / mqsichangeproperties コマンドを利用 –主な設定パラメータ: databaseName、serverName、portNumber、securityIdentity、connectionUrlFormat、 type4DatasourceClassName RES DBにアクセスするユーザーIDとパスワードの設定 構成可能サービスのsecurityIdentityプロパティに指定した値をリソース名として アクセス・ユーザーID / パスワードを設定する mqsisetdbparms コマンドを利用 JDBCProviders DecisionServiceRepository 構成可能サービスの編集 デフォルトで定義されているDecisionServiceRepository 構成可能サービスを利用する –複数のDecisionServiceRepository 構成可能サービスを定義することは不可 JDBCProviderNameプロパティに先に定義したJDBCProviders 構成可能サービス名を指定 RES(管理サーバー)する場合は、以下のプロパティを指定 –resManagementHost :ルール実行サーバーが稼動するホスト名 –resManagementPort :ルール実行サーバーの管理コンソール用ポート番号 (ルール実行サーバーのmanagement.tcpip.port と同じ値) 85 ODM連携 フロー設定 DecisionServiceノードの以下のプロパティをチェック ノード・プロパティ「Use DecisionServiceRepository configurable service」 86 .NET サポートの拡張 87 .NETサポートの拡張 .NETInput ノードの提供 ユーザーが任意のデータ受信処理を.NETコードで実装可能 CLR(Common Language Runtime)準拠の言語で実装 –C#、Visual Basic、F#、C++/CLI、など .NETやCOM(Component Object Model)インターフェースでアクセス可能なリソースから データを受信できる WebSphere MQ、MSMQ、ファイル、データベースなど Microsoft Visual Studio との連携 ツールキットから.NETInputノードのダブルクリックでVisual Studio を起動可能 Microsoft Visual Studio用の.NETコードのテンプレートを提供 A polling-based .NETInput node An event-driven .NETInput node Windows版でのみサポート WMB V8から、.NETComputeノードを提供 フローの途中で.NETコードによるメディエーション処理の実装が可能 88 .NETサポートの拡張 .NETInput ノードの設定 「基本」タブの「アセンブリー名」と「クラス名」で使用するアセンブリー/クラスを指定 .NETのアセンブリーはツールキットにインポートし、 BARファイルにパッケージしてランタイムにデプロイ可能 ランタイム上のアセンブリーを直接参照する場合は絶対パスで指定 主なタブ/プロパティ タブ 説明 基本 使用するアセンブリー(dll)とクラスを指定 入力メッセージの 受信メッセージの解析(パース)に使用するドメイン、メッセージ・モデル等を指定 構文解析 Visual Studio Visual Studioのソリューション(*.sln)を指定 拡張 AppDomain名やアセンブリーID(バージョン、国/地域別環境、公開鍵トークン)を指定 妥当性検査 妥当性検査の有無、失敗時の処置を指定 モニター モニター・イベントの構成を設定 89 .NETサポートの拡張 .NETInput ノードの設定 「Visual Studio」タブでVisual Studioのソリューション・ファイル(*.sln)を指定しておくと、 .NETInputノードのダブルクリックで指定したソリューションを開くことができる Visual Studio ダブルクリックで起動 90 .NETサポートの拡張 .NETInput ノードのサンプル・コードの提供 A polling-based .NETInput node MSMQのキューをポーリングし、受信したメッセージを後続ノードに渡す処理を実装 An event-driven .NETInput node イベント・ベースでMSMQからメッセージを受信し、後続ノードの渡す処理を実装 Visual Studio のソリューション形式で提供 <IIBv9InstDir>¥sample¥DotNet¥DotNetInput¥VS2010¥SampleDotNetInputSolution¥DotNet InputSolution.sln 91 .NETサポートの拡張 MSMQと連携する.NET サンプル・フローの提供 ツールキットから「ヘルプ」→「サンプルおよびチュートリアル」のビューを開き、 「トランスポートおよび接続」→「.NETInput Node for MSMQ sample」 MQから固定長メッセージを受信し、XMLに変換してMSMQに送信するフロー MSMQからメッセージを受信し、メッセージ処理を行い、MSMQに返信するフロー MSMQからXMLメッセージを受信し、固定長メッセージに変換してMQに送信するフロー 92 .NETサポートの拡張 .NET アプリケーションと連携するパターン(メッセージフローの雛形)の提供 「Microsoft Dynamics CRM Account Entity 出力: 動的トランスポート入力」 パターン ユーザー定義の MQ、ファイル、または HTTP の入力メッセージを処理し、Microsoft Dynamics CRM Account Entity に対する 「作成」、「取得」、「更新」、および「削除」の操作にマップ 「Microsoft Dynamics CRM Account Entity 出力: 静的 SAP 入力」 パターン 同期RFCが受信する AP BAPI を処理し、Microsoft Dynamics CRM Account Entity に対する「作成」、「取得」、「更新」、「削 除」の操作にマップ 93 BPMとの連携 94 BPMとの連携 IIBとIBM Business Process Manager (BPM) と連携 BPMからIIBへのWebサービス呼び出しの連携開発が可能 BPMからIIBの統合サービス(SOAP/HTTPのWebサービス)を呼び出す連携 BPMの開発ツールProcess Process DesignerとIIBのツールキット間で、開発構成物の交換が可能 DesignerとIIBツールキット間で構成物を交換するときには、BPMのエクスポート・ファイル(.twx) を使用 Webサービス呼び出しに制約があるBPMとの連携開発が容易 ランタイム 開発 Process Designer BPM Process Server 4. プロセスを デプロイ .twx 1. Webサービスの入力、 出力パラメータ定義 をエクスポート .twx IIB ツールキット IIB 5. Webサービス SOAP/HTTP呼び出し 3. Webサービスの実装(オペ レーション名やエンドポイント 情報)定義をエクスポート IIB 2. フロー(統合サービス)を デプロイ 95 IBM Business Process Manager ビジネス・プロセスの管理、可視化を行って、 業務の改善を実施していくためのIT基盤 BPMNベースの人のタスクのワークフロー開発 に向いたLombardiの機能と、BPELベースの システム間の複雑な連携に向いた WebSphere Process Serverの機能を含む バージョンがある 開発ツール Process Designer IBM BPM Process Center Versioned Assets BPM Repository Process Designer Integration Designer (Advancedのみ) Process Server 開発物レポジトリー Process Center 開発物のバージョン管理(スナップショットなど) 作成物のテストが可能 実行環境 Process Server BPM Standard BPMNのフロー BPM Advanced BPELのフロー 96 BPM開発ツール Process Designer Process Designer BPMNベースでプロセス定義を開発するツール プロセス定義 Process App プロセス定 義を含むプ ロジェクト ヒューマン・タスク のアクティビティ 使用するビジネ ス・オブジェクトや UIの定義を含む TOOLKIT プロセス作成 に使用する 部品箱 システム・タスク のアクティビティ Webサービスを 呼び出す統合 サービスなどを 含む システム・タスクの レーン ヒューマン・タスクの レーン 97 BPMの開発の用語 Process App 1つ以上のプロセスや、その他の構成物(UI定義、ビジネス・オブジェクトなど)を含む コンテナー (プロジェクトに相当する) Process Centerに格納され、バージョン管理される プロセス BPMNベースで定義するビジネスプロセスの定義 複数のレーン上のアクティビティのフローとして定義される ビジネス・オブジェクト プロセスのアクティビティ間を流れるデータの型の定義体 XSDの複合タイプ定義に相当 統合サービス Webサービスなど外部システムと統合するためのサービス定義 システムタスクのアクティビティーで使用される TOOLKIT 複数のProcess Appから共用される部品をまとめた部品箱(ライブラリー) Process Appと同様に、Process Centerに格納され、バージョン管理される Process AppからどのTOOLKITのどのバージョンを使用するかの依存関係を関連 づけて使用される スナップショット Process AppやTOOLKITをある時点でキャプチャーしたもの バージョン管理の単位 BPMエクスポートファイル BPMの構成物をやり取りするファイル (.twx) IIBとの連携では、TOOLKITのスナップショットをエクスポート、インポートするのに使 用する 98 BPMとの連携 BPMとIIBの連携を開発するときの方法 BPMからIIBに統合を開始する IIBの統合サービス: SOAP Webサービスのプロバイダーを 専用に実装するプロジェクト WMB V8.0.0.1より導入 トップダウンのみ可能 制約事項 IIBに新規の統合サービスを作成することのみが可能、既存の統合サービスにオペレーションを 追加することは不可 BPMからエクスポートするときのBPMの統合サービスは、 TOOLKITとしてエクスポートし、入力、 出力パラメータだけを設定する(他の設定を加えるとIIBにインポートできない) WSDLへの制約 document, literal, wrappedタイプでなければいけない スキーマには、ターゲット名前空間と接頭部が指定されていること スキーマでは「要素の接頭部」が「qualified」に設定されていること インターフェースごとに 一つのoperationの使用を推奨 XMLスキーマのサブセットがサポートされている(すべてのタイプがサポートされているわけではない) IIBで実装したいBPMの統合サービスとビジネス・オブジェクトは、それだけを収めた専用の TOOLKITに含める UI部品などを含むTOOLKITとは分離して作成し、IIBとの交換用のTOOLKITにする 99 BPMとの連携 BPMからの統合の開始 Process Designer Process Designer上の操作 1. IIBで実装したい統合サービスを格納するTOOLKITを作成 2. TOOLKIT内にビジネス・オブジェクトを定義 3. TOOLKIT内に統合サービスを定義 – .twx 統合サービスの入力、出力となるビジネス・オブジェクトだけを指定 4. TOOLKITのスナップショットをエクスポート.twxファイルとして作成 IIB開発者にエクスポートファイルを渡す IIB ツールキット IIBツールキット上の操作 i. 「統合サービスの作成から開始」から新しい統合サービスを作成 – – – 統合サービス名を指定 インポートする.twxファイルを指定 実装するBPM統合サービスを選択 ii. サービスを実装し、デプロイ iii. 統合サービスをエクスポート(.twxファイルの更新版ができる) BPM開発者にエクスポートファイルを渡す Process Designerの操作 .twx 5. .twxファイルをインポート (新しいスナップショットが作成される) 6. Precess AppからTOOLKITへの依存関係を設定し、 プロセスを実装 100 Process Designerの操作1 TOOLKITの作成 Process DesignerのProcess Center画面からTOOLKITを新規に作成 新規作成 TOOLKITの名前と 接頭辞を指定 Designerで 開く TOOLKITが作成される 101 Process Designerの操作2 TOOLKITにパラメータのビジネス・オブジェクトを作成 ビジネス・オブ ジェクトの名前 を指定 ビジネス・オブジェクト の新規作成 ビジネス・オブジェクトの パラメータ(フィールド)を 設定して、完成 102 Process Designerの操作3 TOOLKITに統合サービスを作成 変数の入力と出力だけを設定 統合サービスの 新規作成 統合サービス の名前を指定 ビジネス・オブジェクトを選択 入力、出力の変数を指定 103 Process Designerの操作4 TOOLKITのスナップショットを作成して、エクスポート スナップショットの作成 スナップショットの 名前を指定 IBM BPMエクス ポートを選択 104 ブラウザが起動して、ファイルのダウン ロードからファイルを保存 IIBツールキットの操作ⅰ エクスポートされたファイルを使用して統合サービスを作成 統合サービスを 新規に作成 .twxファイルを選択 名前を指定 BPM統合サービスから作成を選択 105 IIBツールキットの操作ⅱ 統合サービスを実装して、デプロイ サービスタブを表示 フローを実装する 106 IIBツールキットの操作ⅲ 統合サービスをエスポート BPMエクスポート を選択 ホスト名とポート を指定 107 Process Designerの操作5 IIBツールキットでエクスポートしたファイルをProcess Designerでインポート インポート インポートするファイルを指定 新しいスナップショットと してインポートされる 108 インポートしたBPMの統合サービス インポートしたスナップショットのTOOLKITの統合サービス 統合サービスにWebサービスの統合コンポーネントが、IIBのサービスを呼び出すように構成され ている エクスポート時のスナッ プショットではコンポーネ ントの設定は空 Webサービスの統合コン ポーネントが構成されて、 IIBのWebサービスのエンド ポイントが設定されている 109 Process Designerの操作6 TOOLKITをProcessAppの依存関係に追加して、プロセスから使用 プロセスからTOOLKITの 依存関係追加で、IIB のサービスを含む TOOLKITを追加する 追加された統合サービスをドラッグ & ドロップしてシステムタスクとして使用し てプロセスを作成 110 BPMとIIBのデータタイプのマッピング BPMとIIBのデータタイプのマップ BPMでサポートされているデータタイプと互換性のあるタイプを使用 タイプマップ表 * + + * + + + * BPMでは、DateもTimeも内部的には datetimeとして取り扱われている + BPMで定義されている型 111 BPMとの連携 BPMの統合サービスの変数定義時の注意点 BPMの統合サービスの直接の入力、出力のパラメータのタイプにDate、Timeを使用しない BPMの統合サービスの入力、出力につけたパラメータのタ イプをDateとTimeにすると、BPMからのWebサービス呼 び出し時に、これらのタイプはxsd:datetimeとなる。一方、 IIBにインポートしたWebサービスのパラメータのタイプは xsd:dateとxsd:timeにため、タイプが一致せずにエラーと なる。 GA版での挙動 ビジネス・オブジェクトの中のパラメータでは、IIB側も xsd:datetimeになるので、Date、Timeを使用可能 BPMのProcess DesignerからIIBへの開発連携 メリット BPMで使用できるデータタイプでインターフェースが作成されるので、連携が容易 –タイプマッピング可能なデータのみが使用される デメリット IIBで作成される統合サービスは、1つのオペレーションだけを持つサービスとなってしまう。複数の操作(オペ レーション)を提供するまとまったサービスをIIBで実装したい場合は、この開発連携方法は向かない。 –これを実装するには、BPMで使用できるタイプのみのWSDLで定義されたWebサービスをIIBで実装し、Process Designerの従来の方法でWebサービスをディスカバーして開発する。(ボトムアップ開発) 112 サービス・ディスカバリー 113 サービス・ディスカバリー DBやMQに接続して構成情報を取得し、DBやMQへの操作のサービス定義を作成するサービス・ エディターを提供 DBやMQへの操作を サービスとして定義 MQサービス 統合レジストリー 登録 テーブル情報 の取得 サービス エディター DB DBサービス WSDL WSDL キュー情報の 取得 QMgr サービス定義の目的 DBやMQへの操作をサービスとして捉えて、論理的なインターフェースや物理的な接続情報を共通の形式 (WSDL)で記述して、開発者間で交換したり、カタログ化できるようにする DBサービス IIBとDBテーブル間で行われる操作をサービスとして捉えてそのインターフェースを定義したもの テーブルに格納されているビジネス・オブジェクトへのCRUD操作をサービスのオペレーションとして定義 これまでComputeノードで直接SQL文を記述していたものを、オペレーションを実装したESQLのプロシージャー呼び出しで 実装が可能 MQサービス MQのキュー経由で実装されているサービスのインターフェースを定義したもの 要求や応答のメッセージ定義や要求や応答のキュー名、キューマネージャー名のエンドポイント情報を含む このサービスを使用するときにMQInputやMQOutputのノードが作成される 統合レジストリー 作成したMQサービスをブローカーの統合レジストリーに登録して、他の開発者がMQサービス定義を自分の ワークスペースにインポートして利用が可能 114 サービス・ディスカバリー DBサービスとMQのサービスの詳細 DBサービス DBのテーブルに対するSelect、Insert、Update、Deleteを実行するオペレーションのサービス定義を WSDLとして作成可能 DBのオペレーションの入出力パラメータのデータ型をXSDとして生成 DBサービスの内容は、.serviceファイルに保存され、 DBサービス・エディターを用いてディスカバーを繰り返 し行い、サービス定義を更新することが可能 作成されたサービス定義をComputeノードに、ドラッグ&ドロップして、ESQLからサービス呼び出しを実装 IIB V9 では、DB2のみサポート MQサービス MQのキューに接続するサービス定義をWSDLとして作成可能 –このWSDLの形式は、サポートパックMA93のIBM MQ Service specificationに準拠 MQサービスエディターでサービス定義を作成するときに、メッセージの形式を指定すると、その入出力パラ メータのXSDファイルを生成 MQサービスの内容は、.serviceファイルに保存され、 MQサービス・エディターを用いてディスカバーを繰り 返し行い、サービス定義を更新することが可能 このサービス定義をフローエディターにドラッグ&ドロップして、MQメッセージの一方向または要求応答のリク エストを行うフロー、MQメッセージの一方向または要求応答のサービスを実装するフローを作成 –リクエストでは、要求を送信するMQOutputや応答受信のMQGetノードなどが配置される –実装では、要求を受信するMQInputノード、応答送信のMQOutputノードなどが配置される 115 DBサービスのディスカバリー手順 データベース・サービスを新規に作成 「ファイル」→「新規」→「データベース・サービス」 サービスを作成するライ ブラリー名とサービス名 を指定 116 DBサービスのディスカバリー手順 データベース・サービス エディターで、データベース定義、リソースを選択 既存のデータベース定 義を選択するか、ここ で新規に作成 テーブルを1つ選択 (複数テーブルは選択できない) サービス操作の 定義へ進む 117 DBサービスのディスカバリー手順 サービスの操作を追加 操作タイプと操作名を指定 DB操作をサービスのオペレーション化するステップ 出力列を選択する SQLが表示される 条件タブで、検索条件 を指定する 118 DBサービスのディスカバリー手順 インターフェースの内容を確認して、保存 作成されたDB サービス レスポンスのデータタイプ ここで、サービス 定義を保存 119 DBサービスの使用 DBサービスは、フローのComputeノードから使用 作成されたDBサービスを Computeノードにドラッグ &ドロップ 使用するオペレーションを 選択 120 DBサービスの使用 生成されたDatabaseService.esql ComputeノードのESQLで使用するプロシージャーが定義されている retrieveCustomerのESQL プロシージャー定義 121 DBサービスの使用 Computeノード内のDBサービスの使用例(開発者がコーディングする) ComputeノードのESQLから生成されたサービスのオペレーションを呼び出して使用 DBサービスの戻り用 の変数定義 作成されたDBサー ビスの呼び出し 出力ツリーへのマップ 122 MQサービスの作成手順 MQサービスの作成 「ファイル」→「新規」→「MQサービス」 サービスを作成するライ ブラリー名とサービス名 を指定 123 MQサービスの作成手順 キューマネージャーに接続して、キューを選択 要求・応答タイプか一方向 タイプかを選択 キューマネージャーへの 接続パラメータを指定 して、接続のテスト キューを選択 124 MQサービスの作成手順 MQヘッダーの値、メッセージのタイプを指定 メッセージの定義のタイプを選択 メッセージのタイプを選択 MQヘッダーの 値を指定 すでに定義し てあるタイプを 選択 確認して、保存 125 MQサービスの使用 作成されたMQサービスをフローエディターのドラッグ&ドロップする サービスの実装か呼び出し を選択する 実装の場合、MQ Inputノー ドが作られる MQサービスをドラッグ& ドロップする 設定されるプロパティー: -入力キュー名 -メッセージ・ドメイン 呼び出しの場合、MQヘッダーノード とMQ Outputノードが作られる 設定されるプロパティー:MQOutput -キュー・マネージャー名 -キュー名 MQヘッダー構成で指定し たMQMDの設定 126 MQサービスの公開 MQサービスをブローカーの統合レジストリーに公開 MQのサービスを他の開発者が利用できるようにする 公開するブローカーを選択 統合レジストリー・ビューが表示される MQサービスが登録される 127 公開されたMQサービスのインポート ブローカーに公開されているMQサービスをインポートする 他の開発者が、MQサービスをブローカーからインポートして使用できる 右クリックで、Importを選択 MQサービスと関連したス キーマがインポートされる 128 ライブラリーを選択 XMLデータ分析 129 XMLデータ分析 大規模で複雑なデータ・モデルから簡潔なモデルを作成するための機能 実データで使用されているフィールドを元に、必要なフィールドを選択してモデル化する 業界標準モデルから、社内標準モデルへ抜粋するケースなど XMLデータを分析しモデル化するための機能を提供 既存XMLデータから、より扱いやすいスキーマまたはリレーショナル・モデルを生成することが可能 XMLデータ構造の解析ツールを提供 複数XMLデータを解析しデータ分析モデルを生成 XMLデータの構造や、エレメントの出現頻度などを把握することができる エメント名によるフィルタリングが可能 解析ツールにより生成されたモデルから、新規に作成するモデル(ターゲット・モデル)を定義 ドラッグ & ドロップで構造を定義 XMLデータをターゲット・モデルの形式にマッピングするフローを生成可能 ターゲット・モデルからマッピング・ノードを含むフローやスキーマをライブラリに生成 データ分析パースペクティブを新規に提供 XMLデータを分析、フィルターするためのビューやツールを提供 モデルを生成するためのエディターを提供 130 XMLデータ分析 利用例 背景 HL7 v3などの業界標準のドキュメント・スキーマは、さまざまなドキュメント形式に 対応できるよう柔軟性を持って設計されている XMLファイル しかし、それらの柔軟性と引き換えに、構造が非常に複雑 実際のデータで必要となる部分は、一部のフィールドのみであるので、 軽いモデルで扱いたい 診療ドキュメントの実データ(XMLデータ)の理解のための解析 どのフィールドが使用されているか、目的の情報はどのフィールドにあるか? Clinical Document Architecture (CDA)は再帰的な構造があるため、 スキーマからの解読は大変 解析をサポートするツールを用いて実データを解析 目的の情報を抽出したターゲット・モデルの作成 データ分析 分析モデル ターゲット・モデル 作成 必要な診療情報を識別して、抜き出すことが目的 一般的には、診療データの大部分は不要なもの ターゲット・モデル作成をサポートするツールを使用 ターゲット・モデル ターゲットモデルのXMLスキーマを生成 データをターゲットモデルの形式に変換するフローを生成 131 XMLデータ分析 ブローカー・データ分析パースペクティブ XMLデータを分析、フィルターするためのモデル、ビュー、ツールを提供 データ分析プロジェクト・ビュー データ分析プロジェクト・ビュー アプリケーション・ビュー アプリケーション・ビュー データ分析モデル・ビュー データ分析モデル・ビュー データ・パス・ビュー データ・パス・ビュー データ分析モデルのプロパティ データ分析モデルのプロパティ ビュー ビュー データ・フィルター・ビュー データ・フィルター・ビュー サンプル文書ビュー サンプル文書ビュー 132 XMLデータ分析 XMLデータの分析から変換ツール作成までの流れ ①データ分析プロジェクトの作成 既存スキーマファイルを指定 ②既存XMLデータからデータ分析モデルを生成 データ分析モデルは、XMLデータに含まれるエレメントから生成される ③データ分析モデルからエレメントを精査 ④新規に作成するモデル(ターゲット・モデル)を作成・編集 リレーショナル・モデルの生成も可能 ⑤ターゲット・モデルからデータ分析ツールを生成 データ分析ツールは入力XMLをターゲットモデルに変換するフローを含むライブラリー XMLファイル データ分析モデル ② ④ ③ データ分析ツール ターゲット・モデル エレメントの精査 ⑤ スキーマ・ファイル ターゲット・モデル のスキーマ ① 133 XMLデータ分析 ①データ・分析プロジェクトの作成 データ分析プロジェクトの作成 「ファイル」→「新規」→「データ分析プロジェクト」 プロジェクト名を指定 データー分析プロファイルの作成 分析対象XMLデータのスキーマ・ファイルを指定 サンプル・データ分析プロファイル (サンプル・スキーマ・ファイル)を提供 「参照」→スキーマ・ファイルを指定 134 XMLデータ分析 .dapファイルが作成され、データ分析プロジェクトに関連付けられる 135 XMLデータ分析 ②既存XMLデータからデータ分析モデルを生成 分析対象のXMLデータを指定 XMLが格納されているディレクトリを指定 ディレクトリ中のXMLが分析の対象となる ディレクトリを指定 分析の要約が表示される 136 XMLデータ分析 ③データ分析モデルからエレメントを精査 データ分析モデル・ビューに、分析したXMLデータから導出されたモデルが表示される サンプル文書ビューに選択したエレメント サンプル文書ビューに選択したエレメント がXMLデータのどの部分に該当するか がXMLデータのどの部分に該当するか 表示 表示 分析した文書インスタンスに含まれるエ 分析した文書インスタンスに含まれるエ レメントが表示される レメントが表示される サンプル文書ビューのエレメントをダブ サンプル文書ビューのエレメントをダブ ル・クリックすると、分析したXMLデータの ル・クリックすると、分析したXMLデータの 構造に該当する箇所が表示される 構造に該当する箇所が表示される 137 XMLデータ分析 エレメントのフィルタリング データ・フィルタービューにて、 データ・フィルタービューにて、 エレメント名を入力 エレメント名を入力 フィルタリング結果が表示される フィルタリング結果が表示される データ・パス・ビューにフィルタリングされ データ・パス・ビューにフィルタリングされ たエレメントが表示される たエレメントが表示される 138 XMLデータ分析 エレメントのハイライト 右クリック→ 「すべての共存エレメントを強調表示を選択」 フォーカスしたエレメントに対する各エレ フォーカスしたエレメントに対する各エレ メントの出現の割合が表示される メントの出現の割合が表示される 139 XMLデータ分析 エレメントのハイライト サンプル文書を基準にしての強調表示や、 サンプル文書を基準にしての強調表示や、 時刻を基準にしての強調表示も可能 時刻を基準にしての強調表示も可能 140 XMLデータ分析 ④ターゲットモデルの作成、編集 「データ分析プロジェクト・ビュー」→「新規ターゲット・モデルの作成」をクリック ターゲット・モデルのファイル名を入力 ルート・オブジェクト名とターゲット・ネーム スペースを入力 141 XMLデータ分析 ターゲット・モデルの作成 データ分析ビュー/モデルビュー、フィルタービューからドラッグアンドドロップ ターゲット・モデルを編集 ターゲット・モデルを編集 142 XMLデータ分析 ⑤ターゲット・モデルからデータ分析ツールを生成 ターゲット・モデル → 「生成」をクリック 143 XMLデータ分析 データ分析ツール 入力データをターゲットモデルに変換するためのライブラリが生成される サンプルに含まれるメイン・フロー例(MQInput サンプルに含まれるメイン・フロー例(MQInput –– サブフロー サブフロー –– MQOutput) MQOutput) ライブラリにサブフローやスキーマ ライブラリにサブフローやスキーマ が生成される が生成される メイン・フロー 144 XMLデータ分析 生成されたデータ変換用マップ データ分析モデルからターゲット・スキーマへの変換 データ分析モデルからターゲット・スキーマへの変換 145 XMLデータ分析 (参考)サンプルの提供 書籍データのXMLファイルとスキーマを提供 「ヘルプ」→「ようこそ」→「サンプル」→「メッセージ変換」→「DataAnalytics」 146 その他の機能強化 147 WAS管理コンソールからの管理 WASの管理コンソールから、IIBの統合ノード・リソースを管理可能 統合ノードや統合サーバーの状況の表示だけでなく、開始、停止などの操作が可能 可能な管理操作 既存の統合ノードへの接続 、接続のテスト 統合サーバーおよびそのプロパティーと状況 (実行中または停止中) の表示 、開始、停止 統合サービスの状況、プロパティーの表示 、開始、停止 統合サーバー毎にデプロイされている –アプリケーションおよびそのプロパティーと状況の表示 、開始、停止 –統合サービスおよびそのプロパティーと状況の表示 、開始、停止 –ライブラリーおよびそのプロパティーの表示 –メッセージ・フローおよびその状況の表示 、開始、停止 サポート対象のWAS Windows, Linux, UNIX V7.0 (7.0.0.9 – 7.0.0.29 and future fix packs), V8, V8.5 Deploymentを含む Express、Network z/OS V7.0 (7.0.0.9 – 7.0.0.27 and future fix packs), V8, V8.5 148 IIB V9の用語 統合ノード: V8までのブローカー 統合サーバー: V8までの実行グループ 統合サービス: V8のサービス (Webサービス専用のフローや そのプロジェクト) WAS管理コンソールからの管理 必要な構成 WASにIBM Integration フィーチャーを導入 InstallationManagerを使用して、以下のレポジトリーファイルからフィーチャーを導入 –wmb.admin.repository.zip –wmb.admin.repository_update.zip (更新用のレポジトリーで、GA版には含まれていない) WASのプロファイルをmanageprofilesコマンドを使用して拡張 デフォルト・プロファイルの例 manageprofiles -augment -profileName AppSrv01 -templatePath "C:¥IBM¥WebSphere¥AppServer¥profileTemplates¥default.broker" デプロイメント・マネージャー・プロファイルの例 manageprofiles -augment -profileName DMgr01 -templatePath "C:¥IBM¥WebSphere¥AppServer¥profileTemplates¥dmgr.broker" IIBのWebユーザー・インターフェース・サーバーを構成 新規のブローカーを作成すると、デフォルト4414のポートで構成されている WASの管理コンソールから、IIBの統合ノードに接続 統合ノードのエントリーを新規作成して、統合ノードのリストに追加 149 WAS管理コンソールからの管理 WAS管理コンソールからの管理 (統合ノード、統合サーバー、統合サービス) 初めに、統合ノードを新 規に追加 開始、停止が可能 150 WAS管理コンソールからの管理 統合サーバー毎のアプリケーションやアプリケーション内のフローの管理 統合サーバーの プロパティ画面 アプリケーションの プロパティ画面 151 GUIマッピングの機能強化 マップからデータベース・ルーチン変換を使用して、ストアード・プロシージャーの呼び出し が可能 マップの入力データをもとにプロシージャーを呼び出して、結果を出力データにマップ可能 ネストされたマップにおいて、 –ソースツリーからプロシージャーのIN, INOUTパラメータにマップ –プロシージャーのOUT, INOUT, ResultSet, 戻り値から、デスティネーションツリーにマップ 呼び出すプロシージャーは、マップに変換追加時にデータベース定義から選択 データベース定義は、ルーチンを含めて事前に作成しておく V9では、DB2のみをサポート Group変換が追加された 複数の入力レコードを指定したキーでグルーピングして、構造を変更 152 GUIマッピングの機能強化 マップからストアード・プロシージャー呼び出しの設定 マップ・エディターで、データベース・ルーチンの呼び出しをクリック CREATE PROCEDURE APPL01.ADD_CUSTOMER ( IN ID INTEGER, IN NAME VARCHAR(20), IN CTYPE CHAR(4), IN ADDRESS VARCHAR(50), OUT LASTUPDT TIMESTAMP) LANGUAGE SQL BEGIN SET ADD_CUSTOMER.LASTUPDT = (select LASTUPDT from new table ( insert into APPL01.CUSTOMER (ID, NAME, CTYPE, ADDRESS, LASTUPDT) values (ADD_CUSTOMER.ID, ADD_CUSTOMER.NAME, ADD_CUSTOMER.CTYPE, ADD_CUSTOMER.ADDRESS, CURRENT TIMESTAMP) ) ); END 153 GUIマッピングの機能強化 ストアード・プロシージャーを選択 プロシージャーを選択 選択したプロシージャー のパラメータを確認 154 ストアード プロシージャー GUIマッピングの機能強化 プロシージャーの入力パラメータへのマップと出力からのマップを設定 データベース・ルーチン変 換が追加される 呼び出しのマップ IN, INOUTパラ メータへデータをマップ 呼び出しと戻りの接続を 追加する 戻りのマップ INOUT, OUTパ ラメータからデータをマップ 155 GUIマッピングの機能強化 Result Setを戻すプロシージャーの場合 CREATE OR REPLACE PROCEDURE APPL01.GET_CUSTOMER ( IN CTYPE CHAR(4)) LANGUAGE SQL DYNAMIC RESULT SETS 1 ストアード プロシージャー Result Setあり BEGIN DECLARE cursor1 CURSOR WITH RETURN FOR select ID, NAME, CTYPE, ADDRESS, LASTUPDT from APPL01.CUSTOMER where CTYPE = GET_CUSTOMER.CTYPE order by ID; open cursor1; END 156 GUIマッピングの機能強化 Result Setを戻すプロシージャーの場合の設定 戻されるResultSet プロシージャーを選択 ResultSetにふくまれる列を選択 157 GUIマッピングの機能強化 Result Setを戻すプロシージャーの戻りマップ 戻りのマップ ResultSet For eachのネストされた マップ 158 GUIマッピングの機能強化 Group変換 複数の入力レコードを、指定したキーでグルーピングすることが可能 itemをitemTypeで グルーピングして 構造を変えたい Group変換を使用 159 GUIマッピングの機能強化 Group変換の設定 itemとitemType間を Group変換 itemとitemTypeの子の 要素のマッピング Group変換の プロパティー設定 itemのitemTypeを キーにして グルーピング 160 Web関連機能の拡張 国際化ドメイン名(IDN:Internationalized Domain Name)のサポート 非英語ホスト名の利用をサポート SSLクライアント認証鍵別名(Key alias)の指定 SSLクライアント認証時に使用する証明書を指定できる 複数のSSLサーバーと接続するためキーストア内に複数の証明書がある場合に有効 SOAPRequest / HTTPRequest ノードの「SSLクライアント認証識別名」に指定 LocalEnvironment で動的に設定も可 SOAPRequestノードの場合 LocalEnvironment.Destination.SOAP.Request.Transport.HTTP.KeyAlias HTTPRequestノードの場合 LocalEnvironment.Destination.HTTP.KeyAlias 161 Web関連機能の拡張 HTTPリスナーの Certificate Revocation Lists (CRLs) サポート HTTPリスナーがSSLサーバーとして証明書を受け取った際にCRLチェックが可能に V8では、フローがSSLクライアントとして証明書を受け取った際のCRLチェックは可能 設定 ブローカー・レベルのHTTPリスナーの場合 mqsichangeproperties IB9NODE -b httplistener -o HTTPSConnector -n crlFile -v file_path 実行グループ・レベルのHTTPリスナーの場合 mqsichangeproperties IB9NODE -e exgroup1 -n crlFile -v file_path 162 Web関連機能の拡張 複数 Kerberos Service Principals のサポート IIBでは、ブローカーをケルベロス認証のクライアントとして構成し、メッセージの完全性、機密性、 認証を保証できる 前提として、Key Distribution Center(KDC)およびKerberos secured serviceが稼動するサーバーへ アクセスできる必要がある V8まではブローカーに1つのKerberos Service Principals のみ定義 V9では、ブローカーもしくは実行グループ毎にケルベロス構成ファイルを指定可能 設定 ブローカーの場合 mqsichangeproperties Broker -o BrokerRegistry -n kerberosConfigFile -v kerberosConfigLocation 実行グループの場合 mqsichangeproperties Broker -e EGName -o ComIbmJVMManager -n kerberosConfigFile -v kerberosConfigLocation 163 ODBC設定の検証機能 統合ノード(ブローカー)開始時に、ODBC環境が正しく設定されていることを確認 対象OS: Linux、UNIX 統合ノード(ブローカー)をmqsistartで起動したときに、mqsicvpコマンドを自動的に実行 mqsicvpコマンドが、ODBC環境設定を確認 ODBC環境設定の確認項目 ODBCINI環境変数が設定されている場合、以下の問題状況を検出して、syslogに警告メッ セージを出力 環境変数が指すファイルが存在しないか、そのファイルに対する読み取りまたは書き込み権限 がブローカーにない場合 ODBCSYSINI が設定されていない場合 ODBCSYSINI が設定されているがこの変数が指すディレクトリーに odbcinst.ini という名前のファイルが 含まれていないか、そのファイルに対する読み取りまたは書き込み権限がブローカーにない場合 IE02_PATH 環境変数が設定されていない場合 ODBCINI ODBC 環境検査が正常に完了すると、コマンドは、mqsisetdbparms コマンドを使用してブ ローカーに関連付けられた、odbc.ini ファイルにリストされたすべてのデータ・ソースに接続を確認 164 集約ノードの機能強化 AggregationControlノードのタイムアウト設定を、これまでの秒単位から、0.1秒単位 で設定することが可能 1 秒未満のタイムアウト間隔を設定する場合 ノード専用のAggregation構成可能サービスを構成し、以下のプロパティーの設定を推奨 queuePrefix -集約ノードで使用するキュー接頭辞を指定する –SYSTEM.BROKER.AGGR.Prefix.CONTROL などの5つのストレージ・キューを作成する timeoutThreads -有効期限が切れたメッセージを処理するスレッド数 2以上に設定 コマンド例 集約名: AGG01 キュー接頭辞: AGG01 タイムアウト: 0.5 スレッド数: 2 mqsicreateconfigurableservice IB9NODE -c Aggregation -o AGG01 -n queuePrefix,timeoutSeconds,timeoutThreads -v "AGG01","0.5","2" 165 CICSノードのトランザクション・サポート CICSRequest ノードでトランザクション・モードのサポート CICSRequest ノードで1フェーズ・コミットのローカル・トランザクション管理が可能 CICSに対する複数のリクエストを同じトランザクション下で制御(コミット or ロールバック)可能 V8 まではトランザクション・モードの指定なし ノード・プロパティの「拡張」タブ⇒「トランザクション・モード」プロパティで指定 「自動」(デフォルト) 「はい」 「いいえ」 ⇒ Input ノードのトランザクション・モードに依存 ⇒ トランザクション管理あり CICS TS / z/OS ⇒ トランザクション管理なし –V8からマイグレーションした場合は「いいえ」 CICSトランザクション 166 CICSノードのアクティビティ・ログ・サポート CICS アクティビティ・ログ 以下のようなCICSとの処理状況をアクティビティ・ログとして取得可能 CICS プログラムが正常に呼び出された CICS プログラムの呼び出しが失敗した メッセージ内のセキュリティIDがCICS にプロパゲートされた CICS プログラム呼び出しでセキュリティ・エラーが起きた CICS サーバーへの接続で通信エラーが発生した フロー処理中に新しいトランザクションが開始された CICS リソース処理がコミットされた CICS リソース処理がロールバックされた CICS がアベンドした CICS 呼び出しがタイムアウトした CICS サーバーへの接続でSSLエラーが発生した アクティビティ・ログ V8 から追加された、メッセージ・フローの処理状況や外部リソースへのアクセス状況が簡潔にわかるロギングの機能 IB エクスプローラーからログの表示、CSV ファイルへの書き出しが可能 167 実行グループのユーザー指定(z/OS) 実行グループに対し、ユーザーIDを指定可能 ブローカーの起動ユーザーとは異なるユーザー(権限)でリソースにアクセスできる デフォルトではブローカーの起動ユーザーが実行グループにも適用される 指定するユーザーIDはブローカー起動ユーザーと同じプライマリー・グループに所属している必要 がある(共通のリソースにもアクセスするため) ブローカー用のファイル・システムやデータセットに対してもブローカー起動ユーザーと同等の権限を持つ必 要がある 168