Oracle Enterprise Service Bus: 技術アーキテクチャおよび製品に関する更新
Dave Berry: Sr. Manager, Oracle IntegrationDemed L’Her:Sr. Principal Product Manager, Oracle Integration
プログラム
Oracle Enterprise Service Busの概要
• Oracle SOA Suiteの基盤
• 機能:仮想化、変換、ルーティング
アーキテクチャ
• クラスタ、ライフ・サイクル管理
• トランザクション、例外処理
結論
• まとめ
Oracle Fusion Middleware
ユーザー・インタラクションユーザー・インタラクション
ビジネス・インテリジェンスビジネス・インテリジェンス
統合およびプロセス管理統合およびプロセス管理
アプリケーション・サーバーアプリケーション・サーバー
グリッド・インフラストラクチャグリッド・インフラストラクチャ
システム管理システム管理
ID管理ID管理
開発ツール開発ツール
ポータル、コンテンツ、検索、デスクトップ、モバイル、VoIP
ETL、Q&A、OLAP、レポート、アラート、
リアルタイム
メッセージング、ESB、BPM、B2B、BAM、MDM
J2EE、WS-*、イベント、ルール
クラスタ、メタデータ、レジストリ、セキュリティ
SOAツールおよびフレーム
ワーク
システム・アプリケーション・サービス
ディレクトリ・プロビジョニング、シングル・サインオン、ID管理
Oracle SOAのプラットフォーム
BPA SuiteBPA Suite BAMBAM BIBI
JDeveloperJDeveloper BPEL Process ManagerBPEL Process Manager
Enterprise Service BusEnterprise Service Bus
AdaptersAdapters B2BB2B SESSES
Enterprise ManagerEnterprise Manager
Web Services ManagerWeb Services Manager
RegistryRegistry
分析ツール
パートナ
ビジネス監視 分析
アプリケーション開発用
フレームワーク
ヒューマン・ワークフロー
ネイティブBPEL
ビジネス・ルール
XSLT変換
マルチ・プロトコル
ルーティング
アプリケーション
DB レガシー RFID
ポリシー
システム監視
セキュリティ
UDDI
メッセージング J2EEアプリケーション・サーバーOracle Application Server、JBoss、WebLogic、WebSphere
イベント
Oracle Enterprise Service Bus:SOAの基盤
ESBは、統合の問題をアプリケーションとビジネス・ロジックから切り離すためのマルチプロトコル・ファブリックです
達成方法
1. エンドポイントの仮想化:リソースからサービスへ2. 変換: データをターゲット・フォーマットへ変換3. ルーティング:さまざまなプロトコルを介した確実なデータの転送およびルーティング
すべてをWebサービスで公開
1. 標準ベース:XPath、XSLT、SOAP、JMS、JCA、…2. ホット・プラガブル:J2EE、JMS、データベース、…
パターン
ファンイン/ファンアウト- 1方向の保存および転送- 同期または非同期- 複数トランザクション- エンドツーエンド
レスポンス転送- 1方向インバウンド- 2方向アウトバウンド- コールアウト・レスポンスに基づいたルーティング- オリジナル・ドキュメントの転送
仮想化サービス- 2方向同期- コンテンツ・ベースのレスポンダ- 静的インバウンドWSDL- 運用面の柔軟性
アーキテクチャメタデータ・サーバー – 統合サーバー• セントラルDTインタフェース:JDeveloper、ESB Control、
インポート/エクスポート
• JMSを介したトランザクションとしてRTサーバーにプッシュされる変更
• ESB Controlに集中された管理/監視
• 構成可能なバックエンド・リポジトリ:データベース、WebDAV
ランタイム・サーバー• 迅速なメモリー・サービスおよびアーティファクト・キャッシュ
• 柔軟なトポロジ、クラスタリング、外部ロード・バランシング
• スケーラビリティの基礎になるユニットとしてのESBシステム
• 非同期ルーティング・ルールによる分散バス型トポロジの有効化
基礎になるJ2EEアーキテクチャの利用• J2EEアプリケーションとして稼働
• JMSプロバイダの使用
• トランザクション、スケーラビリティ、高可用性
3層のアーキテクチャ
UI層
中間層
データ層
JDev(設計)
ESB Control(監視)
メタデータ・サーバー ランタイム・サーバーJMS
JDBCJDBC
登録のインポート
同期エクスポート
更新ルーティング 監視
アーティファクト
XSD、XSLTWSDL、マップ
リレーショナル
サービスMD、
ルーティング・ルール、インスタンス、エラー
Oracle ESBのキューイング・アーキテクチャ
制御トピック(コンテンツ・メッセージ)
監視トピック(トラッキング)
エラー・トピック(エラー)
制御
非同期トピック
再試行トピック
監視トピック(トラッキング)
エラー・トピック(エラー)
MDS
ランタイム・サーバー
データ層
ORAESBスキーマ-サービス・データ-インスタンス・データ
内部トピック
制御トピック
非同期トピック
再試行トピック
監視トピック
エラー・トピック
エラー・ホスピタル
共有メタデータ・クラスタ
柔軟なクラスタ・トポロジ• 単一障害点の不在 – 配信の保証• 粒度の最低レベルであるESBシステム• ESBクラスタに構成されるESBシステム:多対1• 1つのESBクラスタに構成されるESB RTサーバー(多数のシステム)
高可用性を得るための対称型• 同一クラスタに対して構成されたすべてのシステム• すべてのRTサーバーが同一クラスタをロード
スケーラビリティを得るための非対称型• 複数システムによる多数のクラスタ• RTサーバーが異なるクラスタをロード
• 最適化されたサービス・メモリー・キャッシュ
ベスト・プラクティス:混合型のクラスタ・トポロジ• 対称型サービス・クラスタと非対称型サービス・クラスタの組合せ• 外部ロード・バランサ:外部“仮想”ホスト/ポートを持つESBシステム
柔軟な配置戦略非対称
対称
Siebel PSFT
ESBデフォルト・クラスタ
クラスタ = Siebel クラスタ = PSFT
ロード・バランサ
顧客の更新 新規従業員
インボイスの作成
顧客の更新 新規従業員
インボイスの作成
顧客の更新
インボイスの作成
顧客の更新 新規従業員
インボイスの作成
顧客の更新 新規従業員
インボイスの作成
新規従業員顧客の更新
インボイスの作成
メタデータ・リポジトリにおけるサービス
ESBシステム/クラスタの構成
ESBシステム
エラー・トピック
エラー通知
ESBクラスタ
バインド・ホスト
バインド・ポート
遅延トピック
•ESB_Parameter表 “DT_OC4J_HOST”•“esb_config.ini”ファイル cluster_name=ESB
ライフ・サイクル管理主要な開発ツールのJDeveloper• モデル・サービス、アダプタ、変換、ルーティング・ルール
• サービス・メタデータをMDS/統合サーバーへ登録
• MDが変更するESB Controlに対するMDSとの同期
サービスの再構成のためのESB Control• ESBシステムの構成:クラスタおよびロード・バランサ情報
• エンドポイント・プロパティの構成:サービス・ロケーション、リトライ、ファイル、ディレクトリ...
• Trackable Fieldsおよびドメイン値マッピングの定義
• ルーティング・ルール、フィルタ式の編集
エクスポート/インポート• システムまたはサービス・レベルの粒度を持つAntベースのスクリプト
• 開発、テスト、本番環境へ:JDev→MDS→エクスポート→zip→インポート…• JNDI、エンドポイント・プロパティ、Antのカスタム・タスクによる
エンドポイントの管理
ライフ・サイクル管理
RCS
JDeveloper MDサーバー
RTサーバー
ESB開発インスタンス
メタデータコンソール
エクスポート md.zip インポート
MDサーバー
RTサーバー
ESBテスト・インスタンス
メタデータ
コンソール
エクスポート md.zip インポート
MDサーバー
RTサーバー
ESB本番クラスタ
メタデータ
コンソール
開発
テスト
本番環境
開発
JDeveloper + RCS
配置
• JDevから
• Antスクリプト対応インポート/エクスポート・
スクリプト経由
監視
• ESB Console
• AS Control
トランザクション
グローバルなエンドツーエンドのJTA/XAトランザクション
• BPEL⇔ESB⇔BPEL
• JCA⇔ESB⇔WSIFインバウンド・グローバル・トランザクションを継承するESB• “非同期”ルーティング・ルールによって現在のトランザクション
範囲が終了
• ESBシステムによってグループ分けされる、ESBが開始した
新しいトランザクション
トランザクションの例外処理およびロールバック
• イニシエータにロールバックされる既存のインバウンド・トランザクションのエラー
• ESBが開始したトランザクションのエラーの再送信が可能
• エンドツーエンドのメッセージ・フローは、トランザクション状態または所有者にかかわらず最初に失敗したサービスで終了
トランザクション・オーバーレイ
新規のトランザクションである非同期のルール
同期ルールのみ
同一のESBシステム・ルールで非同期
異なるESBシステム・ルールで非同期
例外処理
ESB Controlエラー・ホスピタル
• オリジナル・ドキュメントを含むすべての障害フローの表示
• ESBが開始したトランザクションの“リトライ可能”なエラーの再送信/編集
• ロードマップ:バッチの再送信、自動リトライ
ESB Controlインスタンス・トラッキング
• オリジナル・ドキュメントを含むすべての障害フローの表示
• ESBが開始したトランザクションの“リトライ可能”なエラーの再送信/編集
• ロードマップ:管理API非トランザクション・エンドポイント
• ファイル、FTP、SOAP ...• デフォルトおよびカスタム例外ハンドラ:File:// JMS:// BPEL://
インスタンス・データにおける例外処理
• トランザクションの影響
• エラー・メッセージ、トレース、ペイロード
• 再送信可能なエラー
結論
SOAインフラストラクチャに適切なアーキテクチャ• どのJ2EEアプリケーション・サーバーにも配置
柔軟なトポロジ
• 高可用性およびスケーラビリティ
• 外部ロード・バランシング
信頼性の高いアーキテクチャ
• 完全なトランザクション・サポート
• 構成可能な例外処理
構成可能なライフ・サイクル管理
• メタデータ・サーバー
詳細については、http://otn.oracle.com/soaを参照してください。