WebSphere ESB 適用シナリオ 1 WebSphere ESBアナウンスメントWorkshop Copyright IBM Japan Co.,Ltd 2006
by user
Comments
Transcript
WebSphere ESB 適用シナリオ 1 WebSphere ESBアナウンスメントWorkshop Copyright IBM Japan Co.,Ltd 2006
WebSphere ESBアナウンスメントWorkshop WebSphere ESB 適用シナリオ Copyright IBM Japan Co.,Ltd 2006 1 Disclaimer 当資料で提供する技術情報は、各製品の出荷前コードに基づくものを含 みます。 この資料は日本アイ・ビー・エム株式会社ならびに 日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレ ビューを受けておりません。 当資料は、資料内で説明されている製品の使用を保証するものではあり ません。 資料の内容には正確を期するよう注意しておりますが、この資料の内容 は2006年3月現在の情報であり、製品の新しいリリース、PTFなどによっ て動作、仕様が変わる可能性があるのでご注意下さい。 今後国内で提供されるリリース情報は、対応する発表レターなどでご確 認ください。 2 Agenda WebSphere ESBの適用にあたって WebSphere ESB適用シナリオ アプリケーション・デザイン・シナリオ システム連携シナリオ プログラム・デザイン この章では、WebSphere ESBを適用するにあたり、想定される適用パターンおよびその連携イメージを ご紹介します。 3 WebSphere ESBの適用にあたって 4 WebSphere ESBの適用にあたって WebSphere ESBの利用目的を明確にします。 システム連携基盤としての利用 適用領域、範囲、方法などを検討します。 WebSphere ESBにどの処理を任せるのか (ルーティング、フォーマット変換、 プロトコル変換など) 業務処理ロジックを含めるか? 周辺システムとの接続プロトコルをどうするか? Webサービスなどの標準インターフェースでの連携を想定したSOA基盤 メディエーション機能による変換処理の実現 プロトコル変換(SOAP/HTTP⇔SOAP/JMS, SOAP/HTTP⇔JMS) Webサービス メッセージング方法 その他(SCA, EJB, WebSphere Adapterなど) データ構造の検討 非機能要件を検討します。 パフォーマンス設計、高可用性設計、運用障害設計、など WebSphere Enterprise Service Bus (ESB)を適用するにあたって、まず、その目的を明確にする必要 があります。 例えば、システム間でのスムーズなデータ連携を図りたい、システム間での異なるプロトコルのシステム間 で連携したい、コーディングレベルの開発からGUIベースの容易な設定にしたい、などです。 また、このような連携においては、どの部分までを製品機能で対応するのか、という点も検討ポイントになり ます。ルーティングを行うのか、フォーマット変換を行うのか、プロトコル変換を行うのか、などです。 最終的には、このような機能要件のほかに、想定される利用環境での非機能要件(パフォーマンス、運用 方法など)も十分に検討する必要があります。 5 WebSphere ESB適用シナリオ 6 WebSphere ESB適用シナリオ アプリケーション・デザイン・シナリオ システム連携シナリオ リアルタイム処理シナリオ ディレード処理シナリオ バッチ処理シナリオ システム連携シナリオ フォーマット変換シナリオ プロトコル変換シナリオ プログラム・デザイン 同期処理 非同期処理 WebSphere ESBが適用されるシナリオを、いくつかの異なるシナリオで想定します。 7 アプリケーション・デザイン・シナリオ 8 リアルタイム連携処理シナリオ リアルタイム連携処理においてWebSphere ESBを採用するシナリオ サービス・リクエストの振り分け処理、データ変換で、メディエーション・ フローを利用したGUIベースによる設定が可能。 リクエスト・リプライ処理 WebSphere WebSphereESB ESB アプリケーションサーバー SOAP/HTTP 業務パッケージA (Webサービス・プロバイダー) SOAP/HTTP SOAP/JMS メディエーションによる振り分け HTTP 業務パッケージB (Webサービス・プロバイダー) クライアント 業務アプリケーション連携において、リアルタイム連携処理シナリオの一例になります。 クライアントPCからリアルタイム照会処理リクエストがあります。このとき、アプリケーションサーバーで受け 取ったリクエスト情報は、SOAP/HTTPリクエストとしてWebSphere ESBに送信されます。WebSphere ESBでは、そのリクエストの内容に応じて、ルーティングを行い(コンテンツベースのルーティング)、適切 なサービス・プロバイダーである業務パッケージにリクエストを転送します、その処理結果(照会結果)を、 再びWebSphere ESB経由でレスポンスとして、アプリケーションサーバー、クライアントPCへ返信します。 また、WebSphere ESB上で、それぞれの異なる業務パッケージで認識されるデータフォーマットに変換 も行います。 9 ディレード連携処理シナリオ ディレード連携処理においてWebSphere ESBを採用するシナリオ WebSphere Adapterを利用して既存システムとの連携 JDBCアダプターは、データ更新をイベントとして、差分データを、バック エンド・サーバーへ転送 WebSphere WebSphereESB ESB 業務サーバー WebSphere Adapter for JDBC DBデータ 更新 イベント通知 バックエンド・サーバー JMS メディエーションによるデータ変換 JMSによるディレード転送 クライアント ディレード処理シナリオの一例になります。 フロントエンドの業務システムでは、通常の業務処理を行っています。 ディレード処理として、WebSphere Adapter for JDBCを利用して、業務サーバーでデータ更新があった 場合にそれをイベントとしてWebSphere ESBに通知します。 WebSphere ESBは、WebSphere Adapterを利用することで、業務サーバーのデータ更新をイベントとし て受信しそのデータをバックエンド・サーバーに転送します。 WebSphere ESBで、バックエンド・サーバーが認識できる形にデータフォーマットを変換します。 10 バッチ連携処理シナリオ バッチ連携処理においてWebSphere ESBを採用するシナリオ 既存システムは、JMSメッセージで業務データを出力 WebSphere ESBでデータを変換処理して、ファイルアダプターを利用し てファイル化 出力ファイルは、別途スケジューラーで定期的にファイル転送 WebSphere WebSphereESB ESB 業務サーバー JMS ディレード転送 バックエンド・サーバー WebSphere Adapter for Flat Files メディエーションによるデータ変換 スケジューラーによる ファイル転送 バッチ処理シナリオの一例です。 WebSphere ESBは、随時、業務サーバーからJMSメッセージ形式でデータを受信します。受信したデー タを適切なフォーマットに変換し、WebSphere Adapterを使用して、ファイル出力を行います。(Flat File Adapterでは、append オペレーションで、ファイルへデータを付加します) 出力されたファイルは、別途用意したスケジューラー製品により、バッチ処理の一環としてバックエンド サーバーに転送されます。 11 既存システムとの連携シナリオ 12 システム連携へのシナリオ メッセージングベースによる連携環境を構築されているケース ① 既存システムにWebサービス・インターフェースを追加するシナリオ 業務サーバーA 業務サーバーB ① 既存の業務システムが、メッセージ ングベースで連携されています。 JMS ② ③ WebSphere ESB WebSphere ESB SOAP/HTTP ② 既存システムから、メッセージング・ インターフェースを拡張し、 WebSphere ESBへメッセージング 出力を行います。 ③ WebSphere ESBが提供する、外部 サーバーアクセス用のWebサービス インターフェース(SOAP/HTTP, SOAP/JMS)で、外部システムと連携 します。 外部サーバー 既存システムとの連携を想定したシナリオです。 すでに、メッセージングベースのシステム連携基盤インフラが構築されている環境において、新規のシス テムや外部パートナーとのシステム接続が求められるケースがあります。 このケースでは、既存のシステムとのデータのやりとりは、従来からのメッセージング・インフラを活用しま す。一方で、外部パートナーとのシステム連携では、Webサービスのような業界標準インタフェースでの接 続が想定されます。そのためのプロトコル変換をWebSphere ESBで実現する、というシナリオになります。 また、データフォーマット変換についても、WebSphere ESBで吸収されることを想定します。 13 フォーマット変換シナリオ 異なるシステム間で、必要に応じてデータフォーマットを変換します。 WebSphere ESBでデータ構造の違いを吸収することが可能。 業務サーバーA 業務サーバーB XMLデータ(オーダーデータ) XMLデータ(オーダーデータ) <Order> <Order> <CustID>001</CustID> <CustID>001</CustID> <OrderID>001</OrderID> <OrderID>001</OrderID> <Item> <Item> <ItemNo>111</ItemN> <ItemNo>111</ItemN> <Qty>4</Qty> <Qty>4</Qty> <Price>20000</Price> <Price>20000</Price> <ItemNo>222</ItemNo> <ItemNo>222</ItemNo> <Qty>4</Qty> <Qty>4</Qty> <Price>10000</Price> <Price>10000</Price> </Item> </Item> </Order> </Order> WebSphere ESB WebSphere ESB メディエーション XSLTを利用したXMLデータ変換 処理を実行します 外部サーバー XMLデータ(合計データ) XMLデータ(合計データ) <Order> <Order> <CustID>001</CustID> <CustID>001</CustID> <OrderID>001</OrderID> <OrderID>001</OrderID> <Total> <Total> <TotalPrice>120000</TotalPrice> <TotalPrice>120000</TotalPrice> </Total> </Total> </Order> </Order> このようなシステム連携において重要な点の一つは、データフォーマット変換をどこまでWebSphere ESB で対応するかです。 WebSphere ESBは、データは内部的にはビジネス・オブジェクトとして保持されますが、そのフォーマット 変換では、XSLTが利用されます。 WebSphere ESBによって、システム連携におけるフォーマット変換処理を実行することが可能です。 14 プロトコル変換シナリオ 異なるシステム間での連携プロトコルの違いを吸収します。 業務サーバーA 業務サーバーB JMS (メッセージング基盤) WebSphere ESB WebSphere ESB SOAP/HTTP (Webサービス基盤) 外部サーバー システム連携のための通信プロトコルが異なるので、その違いを吸収します。 既存のシステムでは、JMSベースのメッセージングを使用しています。 外部のシステム連携では、標準のSOAP/HTTPを利用します。 これらの違いを吸収するために、WebSphere ESBを利用することが可能です。 15 プログラム・デザイン 16 同期処理 同期処理パターン Webサービス・クライアントからのサービス・リクエストが、WebSphere ESB経由で、Webサービス・プロバイダーに対して、同期的にサービス 呼び出しを実行します。 Webサービス・クライアントは、そのレスポンスを待って、処理を完了し ます。 WebSphere WebSphereESB ESB アプリションサーバー SOAP/HTTP 業務パッケージ (Webサービス・プロバイダー) SOAP/HTTP メディエーション (リクエスト・リプライ) プログラム・デザインとして、同期処理を行うのか非同期処理を行うのかは、重要なポイントになります。 同期処理を実現するために、WebSphere ESBのメディエーション・フローでリクエスト・リプライ・フローを 構成します。 この場合、フロントのアプリケーションサーバーがWebSphere ESB経由で、SOAP/HTTPリクエストを行っ た場合、バックエンドの業務パッケージからのレスポンスを待って、処理を完了することになります。 これにより、両端のサーバー同士が同期をもって処理を実行することが可能です。 17 非同期処理 非同期処理パターン WebSphere ESBで、JMSによる非同期通信を行います。 アプリケーションサーバー側で送信されるデータは、WebSphere ESB 上のJMSキュー経由で、非同期でバックエンドの業務パッケージサー バーに転送されます。 アプリケーションサーバー (送信側) WebSphere WebSphereESB ESB JMS 業務パッケージ (受信側) JMS メディエーション (一方向) 非同期処理を想定する場合には、JMSを利用して、フロント・エンドのアプリケーションサーバーからは、 随時データがメッセージとして送出されます。 WebSphere ESBでは、メディエーション・フローで、適宜フォーマット変換処理を行って、バックエンドの 業務パッケージ・サーバーへメッセージを送出します。 JMSのメッセージングを利用することで、両端のサーバー同士は非同期に連携することが可能です。 18 まとめ WebSphere ESBの適用においては、その目的、適用範囲を 明確にします。 連携方法をパターン化し、適切な組み合わせを検討します。 19 参考資料 InfoCenter http://publib.boulder.ibm.com/infocenter/dmndhelp/v6rxmx/index. jsp Redbook Getting Started with WebSphere Enterprise Service Bus V6 http://www.redbooks.ibm.com/redpieces/abstracts/sg247212.html?Open Enabling SOA Using WebSphere Messaging http://www.redbooks.ibm.com/redpieces/abstracts/sg247163.html 20