...

概説 アジェンダ WMBとは 開発物

by user

on
Category: Documents
222

views

Report

Comments

Transcript

概説 アジェンダ WMBとは 開発物
概説
アジェンダ
WMBとは
WebSphere Message Broker (WMB)とは
システム・コンポーネント
開発物
WMBの開発物
メッセージ定義
メッセージ・フロー
主な提供機能
構成例
当資料では、WMB の導入/運用から、アプリケーションの実装に至るまで、一通りの機能について詳細に解説しています。
当資料は、WMBv6.1をベースに作成しています。
当資料はIBMの正式なレビューを受けていません。当資料に含まれる全ての情報は、利用者の責任において使用される
べきものであり、特定環境への適用は利用者の判断に依存します。
2
WMBとは
3
WebSphere Message Broker(WMB)とは
WebSphere Message Broker (WMB)はSOAにおけるESBを構築するための製品
ESB(Enterprise Service Bus)はアプリケーションやサービスを連携するための、
通信基盤を担うレイヤー
„ 宛先システムに応じたプロトコル変換、データ・フォーマット変換、ルーティングなどのメディエーションを実施
„ 接続先のアプリケーションを仮想化し、疎結合を実現
–送信側は物理的な宛先や、宛先アプリの実装を意識しない
IBMの提供するESB製品群
„ お客様の連携要件に応じた製品選択が可能
WebSphere DataPower
高速かつセキュアな、 XML処理に
特化したアプライアンス製品
WebSphere ESB
WASをベースとして実装され、Web
サービス間の接続を主にサポート
WebSphere Message
Broker
異機種システム間の接続をサポート
幅広い接続性と変換機能を持つ
WMBは提供する機能の多さ、サポートするプロトコルやデータ・フォーマットの多さから、
Advanced ESBとして位置づけられる
4
WebSphere Message Broker(WMB)とは
多くのプロトコルをサポート
MQ、JMS、HTTP(S)、Webサービス(SOAP)、ファイル、EIS(SAP、Seibel・・・)
幅広いデータフォーマットに対応
XML、ユーザ定義(Cヘッダー形式、COBOL COPY句)、バイナリー、タグ/区切り文字形式、
業界標準(SWIFT、EDI・・)
豊富な処理パターン
ルーティング、フィルター、変換、配布、組み立て、分解、関連付けなど
開発の容易性
GUIによる簡単な開発、またはスクリプト/プログラムによる複雑な開発が可能
充実した管理機能と高いパフォーマンス
GUI、コマンドによる管理、管理用プログラムも作成可能
C++ベースの実行環境で高速なトランザクション処理を可能
幅広いプラットフォームのサポート
分散系からホストまで・・・
SOAP/HTTP
Webサービス
アプリケーション
XML/MQ
JMSアプリケーション
WMBブローカー
・通信プロトコルの変換
・データ・フォーマットの変換
・制御の変換 など
SOAP/JMS
Webサービス
アプリケーション
CWF/MQ
MQアプリケーション
(データ・フォーマット/通信プロトコル)
5
システム・コンポーネント
システム・コンポーネント(開発環境)
メッセージ・ブローカー・ツールキット
リポジトリ(オプション)
構成マネージャー
メッセージ・ブローカー
ツール・キット
リポジトリ
(オプション)
※WMBが提供している
コンポーネントではない
ブローカー・ドメイン
システム・コンポーネント(本番環境)
ブローカー
ユーザー・ネーム・サーバー(オプション)
構成マネージャー
ユーザー・ネーム・サーバー
(オプション)
開発環境
開発環境
実行環境
本番環境
ブローカー
実行グループ
アプリケーション
アプリケーション
アプリケーション
アプリケーション
稼動プラットフォーム
コンポーネント
サポート・プラットフォーム
ブローカー
構成マネージャー
ユーザー・ネーム・サーバー
AIX、Solaris(x86-64、SPARK)、HP-UX(Itanium、PA-RISK)、
Linux(x86、x86-64、Power、zSeries)、Winsows、z/OS
メッセージ・ブローカー・ツールキット
Windows、Linux/x86
6
システム・コンポーネント詳細
ブローカー・ドメイン
構成マネージャーが管理するコンポーネントの範囲 (管理ドメイン)
„ 複数のブローカー、ユーザー・ネーム・サーバーを1つの構成マネージャーで管理可能
管理ユーザーは、ツールキットを構成マネージャーに接続してブローカー・ドメインを構成・管理
„ 実行グループの作成、開発物(メッセージ・フロー、メッセージ定義)のデプロイ
„ 実行グループ、メッセージ・フローの開始/停止、稼動状況の照会
構成マネージャー
ツールキットからの操作要求に従って、ブローカー・ドメインの実際の構成定義作業を実行
ブローカー・ドメインの構成情報を保持
„ Apache
Derbyを内包
7
システム・コンポーネント詳細
ブローカー
メッセージ・フローの実行環境(実行グループ)の構成・管理を行う
„デプロイされたメッセージ・フローをDataFlowEngineプロセス(実行グループ)のスレッドで実行
„32ビット版、64ビット版のDataFlowEngineプロセスを提供
デプロイされた構成定義、開発物をブローカー・データベースに保存
„構成マネージャーと切り離されても単独で稼動可能
ブローカー(bipservice、bipbroker)
実行グループ(DataFlowEngine)
メッセージ・フロー1
メッセージ・フロー1
ブローカー・データベース
(DB2、Oracle、Syabase、SQLServer)
メッセージ・フロー2
実行グループ(DataFlowEngine)
メッセージ・フロー1
ユーザー・ネーム・サーバー(オプション)
PubSub通信でのセキュリティ管理を行う
„トピックにアクセスできるユーザー(パブリッシャー、サブスクライバー)を制限
8
システム・コンポーネント 詳細
メッセージ・ブローカー・ツールキット
EclipseベースのGUI開発ツール
ツールキットから行う主な作業
„メッセージ・フロー、メッセージ定義の開発
„作成した開発物のテスト/デバッグ
„ブローカー・ドメインの構成定義
・実行グループの作成/削除
・開発物のコンパイル&パッケージング、デプロイ
・メッセージ・フロー、メッセージ定義の除去
„稼動状況の表示
・実行グループ、メッセージ・フローの開始/停止
・稼動状況の表示
テストツールやデバッガーも標準提供
リポジトリ(オプション)
ツールキットは各々のマシンのローカル・ファイル・システムに開発物を保存
„複数ユーザーの開発で、開発物の一元管理を行うときはリポジトリを使用
„Eclipseのプラグインとして、一般的に提供されている製品を別途入手
開発規模
CVS (OpenSource Sorfware)
ClearCaseLT (Rational)
ClearCase (Rational)
費用
サポート
無償
なし (コミュニティのみ)
中
製品として提供
パスポート・アドバンテージ
小~大
製品として提供
パスポート・アドバンテージ
個人・小
9
blank
10
開発物
11
WMBの開発物
メッセージ定義とメッセージ・フローを開発
ブローカーでは、物理フォーマットやプロトコルを意識せずに、データへ統一的にアクセスするた
めに、受信したメッセージを共通の論理ツリーに展開して、変換処理などを実施
„メッセージ定義に基づいて、データのパース(展開)
/ 組み立てを実施
„メッセージ・フローに基づいて、データに対して必要なメディエーション処理を実施
論理メッセージ・ツリー
Root
Properties
メッセージ
定義
ヘッダー類
データ
データの組み立て
データのパース
メッセージ
定義
ESQLでアクセス
メッセージ・フロー
CWF/MQ
(一方向型)
SOAP/HTTP
(リクエスト/リプライ)
MQアプリケーション
Webサービス
アプリケーション
MQMD
<msg><data><elm01>aaa</elm01>
<elm02>bbb ・・・ </msg>
フォーマット変換、プロトコル変換、ルーティングなどを実施
12
aaa
bbb
・・・
メッセージ定義
メッセージ定義
入出力メッセージのデータ構造を定義
„CWF、TDSなど、メッセージ内にデータ構造を含まないメッセージをパース/組み立てするために必要
(データ構造を含むXMLではメッセージ定義の作成はオプション)
論理構造と、物理表現の2段階で開発
„エレメントを積み上げて、データの論理構造を定義
„個々のエレメントにビットストリームでの表現方法(物理表現)を設定
–設定項目は、物理フォーマット種別(CWF、TDS、XML)ごとに異なる
メッセージ
GUIまたはメッセージ定義ファイルのインポートにより定義を実装
複合タイプ
データの論理構造を作成
個々のエレメントの物理表現を設定
エレメント
エレメント
複合タイプ
複合タイプ
エレメント
エレメント
単純タイプ
単純タイプ
タイプ:データの型
エレメント:タイプのインスタンス
複合タイプ :エレメントの集合、構造体のイメージ
StringタイプのCWFの物理属性例
・固定長xxxバイト/可変長(長さ付き)/可変長(null終端)
・左寄せ/右寄せ
・パディング文字
13
メッセージ・フロー
メッセージ・フロー
データの処理フローをGUIで記述したもの
„データ・フォーマット変換、通信プロトコル変換、制御ロジックの実装など
製品が提供するプロセス・ノードを組み合わせて、処理を実装
„プロセス・ノードは特定の処理を行う部品
–実体は共有ライブラリ.メッセージ・フローの実行スレッドから逐次コールされて処理を実行
„プロパティの設定、簡単なプログラミングの組み込みなどで、プロセス・ノードの動作をカスタマイズ
„カスタマイズしたプロセス・ノードを接続して処理フローを作成
プロパティ
ターミナル
接続
プロセス・ノード
入力ノードが処理の開始点
„入力ノード
: キューからメッセージをMQGETするMQInputノードなど
„メッセージの受信をトリガーに処理を開始
14
メッセージ・フロー
プロセス・ノード
製品が提供する主なプロセス・ノード
„通信プロトコル・サポート
MQ
MQInput、MQOutput、MQGet、MQReply
JMS
JMSInput、JMSOutput、JMSReply
SOAP
SOAPInput、SOAPReply、SOAPRequest、SOAPAsyncRequest、SOAPAsyncRequest
HTTP
HTTPInput、HTTPReply、HTTPRequest
FTP
FileInput、FileOutput
TCPIP
TCPIPClientInput、TCPIPClientReceive、TCPIPClientOutput、
TCPIPServerInput、TCPIPServerReceive、TCPIPServerOutput
EIS
SAPInput、SAPRequest、PeopleSoftInput、PeopleSoftRequest、SiebelInput、SiebelRequest
„メッセージ・ツリーへのアクセス(メッセージの変換)、データベースへのアクセス
メッセージの変換
Compute、JavaCompute、Mapping、XSLTransform
データベース・アクセス
Database、DataUpdate、DataInsert、DataDelete、Warehouse、DatabaseRetrieve
„処理フロー制御
処理分岐
Filter、RouteToLabel/Label、Route、DatabaseRoute
集約
AggregateControl/AggregateRequest/AggregateReply、Collector
„その他、エラー処理用など、複数のノードを提供
C言語、およびJavaでのプラグイン・ノードの開発も可能
„製品が標準提供しない機能を、ユーザー、または他ベンダーが独自開発したプロセス・ノード
15
メッセージ・フロー
サポートするプログラミング言語
ESQL
„WMBが提供するスクリプト言語
–SQL Version3をベースに、メッセージ・ツリーとデータベースの両方の操作を行えるように拡張
„プロセス・ノードに組み込んでメッセージ・ツリーやデータベースをアクセス
–メッセージ・ツリーの参照、更新(フィールドの追加、削除、値の更新、並べ替え など)
–データベースの参照、更新
16
メッセージ・フロー
Java
„J2SE
1.5のJavaコードを実行グループ内で実行可能
„JavaComputeノードを使用して、Javaで処理ロジックを実装
–メッセージ・ツリーにアクセスためのJava APIを提供
„ESQLからJava関数(static
method)を呼び出すことも可能
–Compute、Database、Filterノードから既存のJava関数を呼び出して利用
ブローカー(bipservice、bipbroker)
実行グループ(DataFlowEngine)
JNI
JVM
実行グループにJVMをロード.JNI経由でJAVAコードを実行
17
blank
18
主な提供機能
19
主な提供機能
外部インターフェースのサポート
データ・フォーマット変換
文字コード変換
データベース・アクセス
フロー制御
エラー処理
その他
20
外部インターフェースのサポート
多くの通信プロトコルをサポート
その他のサポート通信プロトコル
各プロトコルに応じた入出力インターフェースを提供
サポート対象の主要な通信プロトコル
„MQ、JMS、HTTP/HTTPS、FTP*、SMTP*、
MQEveryplace、SCADA、JMS(IP)
EIS*(SAP、People Soft、Siebel)
サポート対象外の通信プロトコルにはアダプターで対応(プラグイン・ノードの開発など)
入力と出力で異なるプロトコルノードを選択可能 ->プロトコル変換
* クライアント機能を提供
ファイル・アプリケーション
メール・サーバー
FTPサーバー
SMTP
FTP
EISシステム
SAP、Siebel、People Soft、
ブローカー
EJBアプリケーション
IIOP
プラグイン
(EJBクライアント)
MQ
JMS
HTTPs
EJBアプリケーション
(MDB)
Webサービス
アプリケーション
MQアプリケーション
21
外部インターフェースのサポート(MQ、JMS)
MQサポート
メッセージ・フローからMQキューに対してGET / PUTが可能
„入力キューはWMBブローカーが使用するキュー・マネージャーのローカル・キュー
„MQGetノードを使用して、処理フローの途中でキューからメッセージを取得することも可能
JMSサポート
メッセージ・フローからJMSプロバイダーに接続が可能
„JMS
1.1仕様に準拠する任意のJMSプロバイダーをサポート
–JMSプロバイダーが提供するクラス・ファイル(JRE1.5のサポートが必要)を利用して接続
„MQとJMSプロバイダーを中継する場合は、ヘッダーの変換が必要
–JMSヘッダー<->MQヘッダー(MQMD)の変換ノードを提供
MQアプリケーション
JMSアプリケーション
JMSヘッダー->MQヘッダー(MQMD)
WMQ
WAS
Messaging Engine
(JMSプロバイダー)
JMSヘッダー<-MQヘッダー(MQMD)
22
外部インターフェースのサポート(Webサービス)
Webサービスサポート
Webサービス・アプリケーションとの接続が可能
„SOAP/HTTP(s)、SOAP/JMSをサポート
HTTPプロトコルでのWebサービス・サポートとして、SOAPノードとHTTPノードの2種類を提供
„SOAPノードは、SOAPメッセージを容易に扱うために、v6.1より提供
–SOAPメッセージに特化
–WS-AddressingやWS-Securityをサポート
–Webサービスの非同期呼び出しも可能 (SOAPAsyncRequest / SOAPAsyncResponse)
„HTTPノードは、Webサービス(SOAP)だけでなく、Web2.0
をサポート
–SOAPメッセージだけでなく、RESTやユーザー定義のメッセージ形式にも対応
–WS-*規格には非対応
Webサービス・プロバイダー
Webサービス・
リクエスター
Webサービス・
リクエスター
MQアプリ
ケーション
Webサービス・
プロバイダー
SOAP/JMS
ブローカー
SOAP/HTTP
SOAP/JMS
CWF/MQ
MQアプリ
ケーション
CWF/MQ
WMBを介して連携することで、接続先を仮想化し、既存のアプリ
ケーションがWebサービス・リクエスターとしてサービス呼び出しを要
求したり、既存のアプリケーションをWebサービス・プロバイダーとし
て公開することが可能となる
23
外部インターフェースのサポート(ファイル)
ファイルサポート
メッセージ・フローからファイルの読み込み、書き出しが可能
ローカルのファイルだけでなく、FTP経由でリモートのファイルにもアクセス可能
„FTPクライアントの機能を提供.FTPサーバーの機能は提供していない
指定したディレクトリーを定期的にスキャンして、ファイルを検索
ファイル全体を1レコードとして処理することも、指定したレコード単位に処理することも可能
使用例. リモートのファイルを1レコードずつ読み出して、MQメッセージに変換
FTPサーバー
(1)指定されたディレクトリにファイルが書き出されるのを定期的にスキャン
MQアプリケーション
(2)ファイルを検出したらローカルにFTP
(4)読み込んだレコードをMQメッセージに変換して出力
WMQ
(3)FTPが完了したらリモートのファイルは削除
(5)処理が終わったファイルはサブ・ディレクトリに移動 (移動ではなく、削除も可能)
24
外部インターフェースのサポート(その他)
TCPIPサポート
ソケット通信アプリケーションとの接続をサポート
TCPIPクライアント、TCPIPサーバーのいずれもサポート
SMTPサポート
SMTPサーバーに接続し、電子メールを送信可能
フロー処理でエラーが発生した際に、オペレータへの通知などが可能
EISサポート
主要なEISシステムとの接続をサポート
„SAP、People
Soft、Siebel との接続が可能
WebSphere Adaptersの機能をEISノードとして提供
„JCA
Framework 1.5に準拠
PubSubサポート
サブスクライブ要求(購読要求)に応じて、パブリッシャー(情報の提供者)から投稿されたメッセージ
をサブスクライバー(情報の消費者)に配信する機能
今後MQの提供するPubSubブローカーに統合予定 (MQv7でPubSub機能を拡張)
25
データ・フォーマット変換
多くのデータ・フォーマットをサポート
カスタム・ワイヤー・フォーマット(CWF:Custom Wire Format)
„CやCOBOLアプリケーションなどが扱う構造体イメージのデータ
MQ太郎 千葉市美浜区中瀬1-1
19780726 ・・・
タグ・区切り文字フォーマット(TDS:Tagged Delimited String)
„SWIFT、EDIFACTなどの業界標準が採用.CSV(Comma
Separated Values)もTDSの一種
NAME:MQ太郎*ADDRESS:千葉市美浜区中瀬1-1*BirthDay:1978||・・・
XML
„XML1.0、XML1.1をサポート.ネームスペース付XML、SOAPにも対応
<Customer><Name>MQ太郎</Name><Adress>千葉市美浜区・・・
その他
„MIME(SOAP
with Attatchmentを含む)、JMSMap、JMSStream、SAP IDoc、バイナリをサポート
26
データ・フォーマット変換
宛先システムに合わせた、データ・フォーマット変換が可能
物理フォーマット種別の変換と論理メッセージの変換が可能
„物理フォーマット種別の変換:
„論理メッセージの変換:
CWF、TDS、XMLなどの変更
エレメント追加/削除/並べ替えや、エレメント値の変更
ブローカー
コード変換の実施
<Customer><Name>MQ太郎</Name>
<Adress>千葉市美浜区・・・
XMLメッセージ
MQ太郎 千葉市美浜区中瀬1-1
19780726 ・・・
CWFメッセージ
論理メッセージの組み換えに4つの方法を提供
ESQL
GUIマッピング
Java
スタイル・シート
(Computeノードを使用)
(Mappingノードを使用)
(JavaComputeノードを使用)
(XSL Transformノードを使用)
27
文字コード変換機能
宛先システムに合わせた、文字コード変換が可能
WMB処理内のコードページはUTF-16
„ メッセージをパース時:文字フィールドをUnicodeに変換
„ メッセージを組み立て時:文字フィールドをフロー内で指定した文字コードに変換
コード変換にICU(International Components for Unicode)を利用
„ ICU
v3.2を内包.独自のコード変換テーブルを作成して追加可能
–外字エリアのマッピングが異なるアプリケーションなども、独自の変換テーブルを作成して対応可能
コード変換テーブル作成時に必要なツールの入手先
http://www.ibm.com/software/globalization/icu/downloads.jsp
コード変換テーブルの雛形を入手可能.カスタマイズして利用可能
http://bugs.icu-project.org/trac/browser
28
データベース・アクセス
メッセージ・フローからデータベースの参照・更新が可能
ブローカー経由で配信したメッセージからデータ・ウェアハウスを構築
データベースの照会結果をメッセージに埋め込んでルーティング
データベースの照会結果を元に宛先ルーティング
データベースへのアクセスに3つの方法を提供
ESQL
„ Databaseノード
/ Computeノード / FilterノードからODBC接続
GUIマッピング
„ Mappingノード
/ DataDeleteノード / DataUpdateノード / DataInsertノード / Warehouseノードから
ODBC接続
„ DatabaseRouteノード、DatabaseRetrieveノードからJDBC接続
Java
サポート対象のデータベース:
DB2、Oracle、Sybase、SQL Server、Informix
„ JavaComputeノードからJDBC接続
ストアード・プロシージャーの呼び出しにも対応
Insert / Update / Delete
29
データベース・アクセス
リポジトリ製品との連携をサポート
WSRR(WebSphere Service Registry and Repository)との連携をサポート
WSRRでサービスの定義情報を全社的に一元管理
„ WSRRから動的にサービス情報やサービス文書を取得して、ルーティングやフォーマット変換に利用
„ WSRRにアクセスしてサービスの定義情報を照会するためにEndpointLookupノードとRegistryLookupノー
ドを提供
パフォーマンス向上のために、照会結果をキャッシュ可能
WebSphere Message Broker
Webサービス・
リクエスター
サービスA
サービスB
SOAP
Request
Endpoint
Lookup
SOAP
Request
WSRR
宛先情報や、登録文書をWSRRから取
得し、動的なルーティングやメディエーション
処理を行うことが可能
サービスA用
サービスB用
WSDL
WSDL
30
フロー制御
メッセージ・フロー処理の実行に関する制御機能を提供
条件に応じて、フローの処理内容を制御
条件に応じて、フローの実行タイミングを制御
フローの実行タイミングの制御
フローの処理内容の制御
処理Aを実施
メッセージを
受信
条件をチェック
条件チェック
処理を実施
処理Bを実施
ルールに基づく、処理の開始
ルールに基づく、処理分岐
フローのスケジュール実行
複数メッセージの受信をトリガーにした処理の開始
など
受信メッセージの値や、データベースの値
を元に、異なる処理を実装
31
フロー制御
条件に応じた処理内容の制御
受信メッセージやデータベースの値を参照して、処理分岐
処理分岐するための条件式は、ESQL、Java、GUIで実装可能
„ 条件式をESQLで記述
„ 条件式をJavaで記述
„ 条件式をGUIで設定
Filterノード / RouteToLabel ノード & Labelノード
JavaComputeノード
Routeノード / DatabaseRouteノード
条件に応じたフローの実行タイミングの制御
フローの実行タイミングを時間や、メッセージの受信条件により、制御
„ 複数メッセージの集約
AggregateControlノード / AggregateRequestノード (1:N連携、N:1連携)
/ Aggregate Replyノード、Collectorノード
„ スケジュール実行
TimeoutControlノード / TimeoutNotificationノード
„ 分岐フローの実行順序制御 FlowOrderノード
【1:N連携】
【N:1連携】
予約サービスを並行に実行
ホテル予約サービス
旅行予約業務
複数システムからメッセージを集約
ホテル予約サービス
ブローカー
ブローカー
旅行予約業務
飛行機予約サービス
飛行機予約サービス
32
エラー処理
フロー処理中に発生したエラーをハンドリングするための機能
フローの処理で明示的に例外を発生させたり、例外を捕捉して独自のエラー処理を実装すること
が可能
エラー処理に関するノードとしては以下のノードを提供
„ 以下のノードを組み合わせて、エラー・ログを取得したり、エラー用のキューに出力したり、要件に応じたエラー
処理を実装
„ 例外の生成:
„ 例外の補足:
„ ログの出力:
Throw
TryCatch
Trace
エラー処理
入力キュー
エラー処理
トランザクションの
バックアウト
エラー・ログ
取得
33
blank
34
エラーキューへ
出力
キューへの出力エラー
発生
標準提供のプロセス・ノード
役割
ノード名
外部インターフェース MQInput/MQOutput/MQReply/MQGet
JMSInput/JMSOutput/JMSReply
HTTPInput/HTTPReply/HTTPRequest
SOAPInput/SOAPReply/SOAPRequest
SOAPAsyncRequest/SOAPAsyncResponse
FileInput/FileOutput
TCPIPClientInput/TCPIPClientOutput/TCPIP
ClientReceive/TCPIPServerInput/TCPIPServ
erOutput/TCPIPServerReceive
EmailOutput
SCADAInput/SCADAOutput
SAPInput/SAPRequest
PeopleSoftInput/PeopleSoftRequest、
SiebelInput/SiebelRequest
Publication
Real-timeInput
MQOptimaizeFlow、Real-timeOptimizeFlow
メッセージ変換
Compute
JavaCompute
Mapping
XSLTransform
SOAPEnvelope/SOAPExtract
JMSMQTransform、MQJMSTransform
MQHeader、JMSHeader、HTTPHeader
<参考>
説明
MQとの入出力
JMSプロバイダーとの入出力
HTTPとの入出力
WebServiceとの入出力
ファイルの入出力.FTP通信も可能(FTPクライアント機能)
ソケット通信との入出力
(クライアント機能とサーバー機能を提供)
メールの出力(SMTP)
SCADA端末との入出力
SAP、PeopleSoft、Siebelとの入出力
PubSub通信.MQ、MQEveryPlace、SCADA端末にメッセージ送
信
JMS(IP)通信(入力)
それぞれ、「MQInput + Publication」、「RealtimeInput +
Publication」に相当
ESQLによる変換、データベース・アクセス(汎用)
Javaによる変換
GUIマッピングによる変換、データベース・アクセス(読み込みのみ)
XSLTによる変換
SOAPエンベロープの分離/付与
JMSメッセージとMQメッセージの変換
各種プロトコルのヘッダーの生成/編集
35
標準提供のプロセス・ノード
役割
データベース・
アクセス
フロー制御
エラー処理
その他
ノード名
Database
DatabaseRetrieve
DataDelete/DataInsert/DataUpdate/
Warehouse
<参考>
説明
ESQLによるデータベース・アクセス(汎用)
データベースの照会結果をメッセージ・ツリーにセット(読み込みのみ)
GUIマッピングによるデータベース・アクセス
(互換性のために違う名前で残されているだけで、処理内容は
Mappingと同等)
WSRRに登録されたWSDLまたはサービス文書へのアクセス
ESQLによる条件判断で処理を分岐
Labelノードに処理を移動/処理の移動先
XPATH式による条件判断で処理を分岐
データベースの照会結果に対して、XPATH式による条件判断で処理
を分岐
Aggregator機能
(複数宛先への要求送信、応答メッセージを待ち受けて合体)
複数のメッセージを待ち受けて、1のメッセージに集約
EndpointLookup/RegistryLookup
Filter
RouteToLabel/Label
Route
DatabaseRoute
AggregateControl/
AggregateRequest/AggregateReply
Collector
TimeoutControl、TimeoutNotification
FlowOrder
Throw
TryCatch
Trace
ResetContentDescriptor
Input/Output
PassThrough
メッセージ・フローのスケジュール実行
分岐フローの実行順序制御
例外の生成
例外の補足
メッセージのダンプ
メッセージ・パーサーの変更(メッセージの再パース)
サブ・フローの作成(サブ・フローへの開始点/サブフローの出口点)
サブ・フローにバージョンなどの識別子を設定(メッセージへのアクションは
ない)
メッセージとメッセージ定義の妥当性検査
Validate
36
その他
トランザクション・サポート
メッセージフロー・実行時セキュリティ
開発支援
運用管理
37
トランザクション・サポート
メッセージ・フローを1つのトランザクションとして実行
メッセージ・フローからのMQに対する資源更新を1つの作業単位(UOW)で処理
障害発生時のメッセージの消失/重複を排除
MQGET Syncpoint
MQPUT Syncpoint
MQCMIT(または、MQBACK)
グローバル・トランザクションのサポート
MQ、データベース、JMSプロバイダーに対する更新を1つの作業単位(UOW)で処理
„ HTTP、File、EISのようなXAインターフェースを持たないリソースの更新は対象外
MQをコーディネータとした2フェーズ・コミット
JMSプロバイダー
MQGET Syncpoint
SQL.UPDATE
JMS.send(transacted)
38
MQCMIT(または、MQBACK)
メッセージフロー・実行時セキュリティ
メッセージに埋め込まれたID情報に基づき、メッセージごとのセキュリティ検査が可能
受信メッセージからID情報を取り出し、セキュリティ・プロファイルに基づいて、外部セキュリティ・プ
ロバイダーで検査を実行
„ID情報は、メッセージの任意の位置から抽出することが可能
„アクセス・ユーザーの認証、メッセージ・フローへのアクセス権限検査(認可)を行う
–アクセス・ユーザーを代替ユーザーにマップし、代替ユーザーでアクセス権限の検査を行うことも可能
オリジナルではなく、マップ後のID情報を設定してルーティングすることが可能
MQ
HTTP(S)
SOAP
認証/認可/IDのマップ
IDの利用
MQ
HTTP(S)
SOAP
IDの伝播
セキュリティ・マネージャー
キャッシュ
外部セキュリティプロバイダー
認証
マップ
認可
LDAP
TFIM
TFIM
LDAP
TFIM
Security
Profiles
ブローカーが保管
外部セキュリティ・プロバイダー
・LDAP:Lightweight Directory Access Protocol
・TFIM:IBM Tivoli federated Identity Manager
MQ、HTTP(s)のトランスポート・プロトコルで利用可能
外部セキュリティ・プロバイダーとして、LDAP(v3以上)、TFIM 6.1をサポート
39
開発支援
メッセージ・ブローカー・ツールキットは開発をサポートするツールを提供
デバッガー
„ ブレーク・ポイントを設定し、メッセージの
デバッガー
パース状況などを確認可能
„ 同一ツールで、ESQL、GUIマッピング、
Javaコードをデバッグ可能
テストツール
„ ユニットテスト・クライアントにより、
メッセージフローの稼動確認が可能
„ キューへのメッセージの読み書き(エンキュー/デキュー)も可
„ 入力ノードを右クリックして「テスト」を選択して起動
– MQInput、SOAPInput、HTTPInput、JMSInput
テスト・ツール
XMLツール
„ RAD(Rational
Application Developper)と
同一のXMLツールを付属
–WSDL、DTD、XMLスキーマ、 XML、
XSLファイルの作成・テストが可能
40
運用管理
メッセージ・ブローカー・ツールキットでWMBの運用管理が可能
ブローカー・ドメインの構成定義
・実行グループの作成/削除
・開発物のコンパイル&パッケージング、デプロイ
・メッセージ・フロー、メッセージ定義の除去
稼動状況の表示
・実行グループ、メッセージ・フローの開始/停止
・稼動状況の表示
MBエクスプローラーでも同様の機能を提供
MQエクスプローラー(Eclipseベース)に
ブローカー管理機能を付加
ツールキットの管理機能はすべて対応
„ ブローカー作成などのコマンドで行う作業の一部も
実施可能
パフォーマンス情報のモニターも可能
サポートパックとして提供
(カテゴリー3:製品レベルのサポート)
IS02: WebSphere Message Broker Explorer Plug-in
http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg24012457&loc=en_US&cs=utf-8&lang=en
41
運用管理
統計レポートの取得機能を提供
メッセージ・フローが処理したメッセージ数や処理時間の把握などが可能
出力方法はPub/Subスクライバとユーザー・トレースの2種類 (z/OSのみ、SMFも可能)
<メッセージ・フロー統計の出力項目>
情報カテゴリ
項目
ヘッダー
統計種別(Snapshot or Archive),出力理由(インターバル経過,ブローカー停止,・・・)
メッセージ・フロー
メッセージ・フロー名,メッセージ・フローUUID
実行グループ
実行グループ名,実行グループUUID
ブローカー
ブローカー名,ブローカーUUID
インターバル
統計開始日時,統計終了日時,
メッセージ
処理メッセージ数,処理メッセージの総バイト数,最小/最大メッセージ長
処理時間
最小/最大/トータルElapsedタイム, 最小/最大/トータルCPUタイム
アイドル時間
メッセージ入力待ちの時間(Elapsedタイム,CPUタイム)
スレッド
割り当てスレッド数,最大実行スレッド数
エラー
MQGETのエラー回数(HTTPInputを含む),パース・エラーを含んでいたメッセージ数、
エラー処理されたメッセージの数,AggregateReplyのタイムアウト回数
同期点処理
コミット回数,バックアウト回数
メッセージ・フロー統計の情報を補足・詳細化するスレッド統計、ノード統計、ターミナル統計があります
42
構成例
43
構成例
ブローカーは可用性を考慮し、Active-Standbyか、Active-Activeの構成をとる
ブローカーが停止すると、全連携業務が停止するため高可用性構成は必須
Active-Standby
通常時は1系稼動し、障害発生時に待機系に引き継ぐ。(引継ぎ時間、業務は停止)
MSCSやHACMPなどのHA製品を使用して構成。
ファイル連携や、MQでパーシステント・メッセージをやり取りする場合などは、HA製品による処理中
のリソースの引継ぎが必要となる。
Active-Active
通常時は2系稼動し、障害発生時は1系での縮退稼動となる。(業務の稼動に影響しない)
2系稼動させることで、負荷分散と可用性構成の実装が可能
MQ連携の場合は、MQクラスターを構成
パーシステント・メッセージがあるときには、Active-Activeの相互テークオーバー構成も可能
SOAP/HTTP連携の場合は、ネットワーク・ディスパッチャーを構成
„ 必要に応じて、HTTPS通信の証明書取り消しリスト(CRL)、SOAP/JMS通信のJMS管理オブジェクトを
管理するLDAPサーバーなどを構成
構成マネージャーの稼動はブローカーの稼動に影響を与えないため、可用性構成をとるかどうか
は任意
44
構成例
BigIPでSOAP/HTTP通信の
負荷分散と可用性向上
MQ
Active-Active構成
パーシステント・メッセージがあるときは、相互テーク・オーバーにし、
滞留しているメッセージを早期に処理
SOAP/JMS通信のために
JMS管理オブジェクトを保存
BigIP
HTTPリスナー
HTTPリスナー
ブローカー
ブローカー
MQ
SOAP/HTTPs通信のために
認証取り消しリストを保存
LDAPサーバー
MQ
上位のサーバーから
認証取り消しリストを取り込み
MQクラスター
ラウンドロビンの負荷分散と可用性向上
MQ
JMS通信を行う周辺システムが参照す
るLDAPサーバーに同期レプリケーション
45
メッセージ・フロー例
シナリオ
複数の処理要求を1つのMQメッセージで受信
個々の処理要求に分解.データ・フォーマット(CWF->XML)、
プロトコル(MQ->HTTP)を変換し、サービス・プロバイダーに処理をリクエスト
処理結果を1つのMQメッセージにまとめ、応答メッセージを返却
サービス・プロバイダー
HTTP
処理1
MQアプリケーション
MQMD
MQMD
処理1
結果1
処理2
結果2
46
・・・
・・・
処理2
結果1
結果2
パフォーマンス
ケース:XML->CWF変換
XML
CWF
測定環境:pSeries 9117-570 Power 5 with 4 * 1.7Ghz processors with 4GB RAM
メッセージ・フローを1インスタンス(スレッド)で実行しているため、CPUを使い切れていない.
複数インスタンスで実行すれば、Message Rateも比例して伸びる
パフォーマンス・レポートの入手先
http://www-306.ibm.com/software/integration/support/supportpacs/product.html#wmqi
47
付録:WMBドキュメント一覧
WMB 概説資料
WMBの製品概要や、主な提供機能をまとめた概説資料 (WSDDで公開)
http://www-06.ibm.com/jp/software/websphere/developer/bi/mbv61/
WMB 導入・構成ガイド
WMBの導入&構成手順書 (WSDDで公開)
http://www-06.ibm.com/jp/software/websphere/developer/bi/mbv61/install/
WMB 実装入門
WMB開発者向けの入門書(ザ・技術で公開)
http://w306.ibm.com/jp/domino02/ise/ISEINFO.NSF/604755fe61c93ffc492563fd002551ec/6d6a46c9b3
7247744925744e000bb944?OpenDocument
WMB Webサービス機能
SOAP/HTTPでの連携を実装する場合のノウハウをまとめた資料 (ザ・技術で公開)
http://w306.ibm.com/jp/domino02/ise/ISEINFO.NSF/604755fe61c93ffc492563fd002551ec/f6ddc94740
9450a64925745600015e19?OpenDocument
WMB 見積りガイド
WMBのキャパシティ・プランニングについてまとめた資料 (ザ・技術で公開)
http://w306.ibm.com/jp/domino02/ise/ISEINFO.NSF/604755fe61c93ffc492563fd002551ec/a7f026ed86
02324c492573160024929f?OpenDocument
WMB HTTPパフォーマン
ス・チューニング・ガイド
HTTP連携でのパフォーマンス・チューニングについてまとめた資料 (ザ・技術で公開)
http://w306.ibm.com/jp/domino02/ise/ISEINFO.NSF/604755fe61c93ffc492563fd002551ec/fc6f0ef2412
789b4492573160038f5f6?OpenDocument
48
Fly UP