ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Service Busコンセプトおよびアーキテクチャ
11g リリース1(11.1.1.3)
B61433-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

2 Oracle Service Busアーキテクチャ

この項では、Oracle Service Busアーキテクチャの概要について説明し、サービスの迅速な統合、プロビジョニング、異なるITインフラストラクチャ間の管理を可能にする操作上の機能について取り上げます。統合を目的とするIT設計者で、メッセージングとサービス指向アーキテクチャ(SOA)の担当者を対象としています。内容は以下のとおりです。

2.1 アーキテクチャの概要

Oracle Service BusはEnterprise Service Busを中心としたアーキテクチャです。このバスでは、SOAP、HTTP、およびJavaメッセージング・サービス(JMS)を含む標準に基づいたメッセージ配信サービスが提供されます。これは、通常、高スループットを保証するメッセージ配信を各種サービスのプロデューサおよびコンシューマに提供するために設計されるものです。ネイティブのデータ型としてXMLがサポートされており、他のデータ型を処理するために、その他のデータ型も提供されます。

Oracle Service Busはポリシー駆動型であり、「サービス・クライアント」と「ビジネス・サービス」との間に疎結合を確立する一方で、セキュリティ制御とモニターを一元的に管理できます。 ステージングによって開発環境から本番環境へ必要に応じてカスタマイズおよび伝播可能なメタデータとして、ポリシー、プロキシ・サービス、および関連するリソース構成を永続化して保存します。メッセージ・ブローカリング・エンジンは、メタデータ・キャッシュからこの構成情報にアクセスします。

Oracle Service Busは、着信するサービス・リクエスト・メッセージを処理して、ルーティング・ロジックを決定し、メッセージを他のサービス・コンシューマと互換性があるように変換を行う仲介機能です。HTTP (S)、JMS、ファイル、FTPなどの転送プロトコルを介してメッセージを受信し、同じ転送プロトコルまたは別の転送プロトコルを使用してメッセージを送信します。サービスのレスポンス・メッセージは、これと逆のパスを辿ります。Oracle Service Busによって処理されるメッセージは、プロキシ・サービスの「メッセージ・フローの定義」によって指定されるメタデータによって駆動されます。

図2-1 Oracle Service Busのサービス対話機能

図2-1の説明が続きます
「図2-1 Oracle Service Busのサービス対話機能」の説明

次の上位レベルのアーキテクチャ図には、Oracle Service Busと、その機能サブシステムであるサービス管理、メッセージ・ブローカリング、構成フレームワーク、セキュリティ・レイヤーとトランスポート・レイヤー、およびメッセージング・プロトコルが示されています。

図2-2 Oracle Service Busの上位レベル・アーキテクチャ

図2-2の説明が続きます
「図2-2 Oracle Service Busの上位レベル・アーキテクチャ」の説明

2.2 アーキテクチャの主要なコンセプト

この項では、Oracle Service Busのアーキテクチャの主要なコンセプトについて説明します。

2.2.1 メッセージ処理

メッセージには、アプリケーション・プロセスについてのデータまたはステータス情報や、受信側に対する指示などが含まれます。Oracle Service Busでは、コンテンツに基づいてメッセージをルーティングし、コンテンツに対して変換を実行できます。この処理は、Oracle Service Busのトランスポート・レイヤーおよびバインディング・レイヤーを介して実行されます。

図2-3 Oracle Service Busのバインディング・レイヤーおよびトランスポート・レイヤー

図2-3の説明が続きます
「図2-3 Oracle Service Busのバインディング・レイヤーおよびトランスポート・レイヤー」の説明

メッセージの処理では、次の一連のイベントが実行されます。

  1. インバウンド・トランスポートの処理

  2. メッセージ・フローの実行

  3. アウトバウンド・トランスポートの処理

エンドポイント(ビジネス・サービスまたは別のプロキシ・サービス)にメッセージが送信されると、Oracle Service Busは上記のイベント・シーケンスと同様のモデルでレスポンス・メッセージを処理します。

次の図にOracle Service Busにおけるインバウンド・エンドポイント(プロキシ・サービス)からアウトバウンド・エンドポイント(ビジネス・サービスまたは他のプロキシ・サービスであるサービス・トランスポートURL)までの上位レベルのメッセージ・フロー処理を示します。

図2-4 Oracle Service Busのメッセージ処理

図2-4の説明が続きます
「図2-4 Oracle Service Busのメッセージ処理」の説明

以降の項では、このメッセージ処理に関連する各レイヤーについて説明します。

2.2.1.1 バインディング・レイヤー

バインディング・レイヤーでは次の処理が行われます。

  • 必要に応じたメッセージをパックおよびアンパックします。

  • メッセージのセキュリティを扱います。

  • メッセージを渡してメッセージ・フローを開始します(リクエストおよびレスポンス)

2.2.1.2 トランスポート・レイヤー(インバウンド)

インバウンド・トランスポート・レイヤーは、クライアント・サービス(またはサービス・コンシューマ)とOracle Service Busとの間にある通信レイヤーです。サービス・クライアント・エンドポイントと通信を処理して、Oracle Service Busへのメッセージのエントリ・ポイントとして機能します。インバウンド・トランスポート・レイヤーは主に入力または出力ストリームのメッセージ・データを生のバイトとして処理します。

HTTP(S)、JMS、FTP、ファイル、および電子メールを含む転送プロトコルの互換性をサポートします。データの処理には関係しませんが、レスポンス・メッセージをサービス・コンシューマに返し、エンドポイントURIやトランスポート・ヘッダーなどメッセージのメタデータを処理します。

2.2.1.3 トランスポート・レイヤー(アウトバウンド)

アウトバウンド・トランスポート・レイヤーは、ビジネス・サービス(またはサービス・プロデューサ)とOracle Service Busとの間の通信機能を担います。Oracle Service Busからビジネス・サービスまたはプロキシ・サービスにメッセージを渡し、サービスからレスポンスを受信します。トランスポート・レベルでは、メッセージ・データは入力または出力ストリームの形式の生のバイトです。アウトバウンド・トランスポート・レイヤーでは、HTTP(S)、JMS、FTP、ファイル、および電子メールを含む転送プロトコルの互換性をサポートします。データの処理には関係しませんが、エンドポイントURIやトランスポート・ヘッダーなどメッセージのメタデータを処理します。

2.2.2 プロキシ・サービス

プロキシ・サービスは、Oracle Service Busのアーキテクチャで基礎となるコンセプトです。プロキシ・サービスは、サービス・コンシューマが管理対象のバックエンド・サービスに接続するために使用するインタフェースです。プロキシ・サービスは、Service Busがローカルに実装する仲介Webサービスの定義になっています。Oracle Service Busコンソールでは、Web Services Description Languages (WSDL)についてのインタフェースと、使用するトランスポートのタイプを定義することで、プロキシ・サービスを構成できます。メッセージの処理ロジックは、プロキシ・サービスの定義時に「メッセージ・フローの定義」で指定されます。プロキシ・サービスの詳細は、5.1.1.1項「プロキシ・サービス」を参照してください。

2.2.2.1 メッセージ・コンテキスト

プロキシ・サービスのコンテキストは、リクエスト・フローとレスポンス・フローとで共有される一連のXML変数です。コンテキストに新しい変数を動的に追加したり、または削除できます。あらかじめ定義されたコンテキスト変数には、メッセージに関する情報、トランスポート・ヘッダー、セキュリティ・プリンシパル、現在のプロキシ・サービスのメタデータ、およびプロキシ・サービスから呼び出されるプライマリ・ルーティング・サービスとパブリッシュ・サービスのメタデータが含まれます。

コンテキストは読み込まれて、XQuery式による変更や、変換やインプレース更新アクションによる更新が行われることがあります。コンテキストの中核は、$header、$body、$attachments変数で構成されます。これらのラッパー変数には、Simple Object Access Protocol (SOAP)ヘッダー要素、SOAP本体要素、およびMultipurpose Internet Mail Extensions (MIME)添付がそれぞれ含まれます。コンテキストによって、すべてのメッセージがSOAPメッセージであり、非SOAPメッセージがこのパラダイムにマップされるように見えます。

プロキシ・サービスはメッセージを複数のビジネス・サービスにルーティングできるため、プロキシ・サービスは通信先のビジネス・サービスとは独立したインタフェースで構成できます。汎用のプロキシ・テンプレートを使用すると、コンテンツ・ベースのルーティング・ロジックに基づいてメッセージを適切なビジネス・サービスに動的にルーティングするメッセージ・フローの定義としてプロキシ・サービスを構成できます。プロキシ・サービスは、実行時の動的なプロトコルの切替えを有効にすることで、メッセージ・データをエンドポイントのビジネス・サービスに必要となる適切なプロトコル形式にマップすることもできます。

プロキシ・テンプレートの詳細は、第5章「サービス・コンポジション」を参照してください。

2.2.3 メッセージ・フローの定義

プロキシ・サービスの実装は、「メッセージ・フローの定義」によって指定されます。メッセージ・フローの定義は、プロキシ・サービスを通過するリクエスト・メッセージとレスポンス・メッセージのフローを定義します。 メッセージ・フローには、次の4つの構成要素があります。

  • パイプライン・ペア。一方はリクエストで使用され、他方はレスポンスで使用されます。パイプラインは、リクエスト処理またはレスポンス処理で実行されるアクションを指定する一連のステージで構成されます。

  • ブランチ・ノード。メッセージまたはメッセージ・コンテキストの指定部分の値に基づいて分岐するか、呼び出されたオペレーションに基づいて分岐するために使用されます。

  • ルート・ノード。メッセージの宛先の定義に使用されます。デフォルト・ルート・ノードは、リクエストそのものをレスポンスとして返すエコー・ノードです。

  • 開始ノード

図2-5 メッセージ・フローのサンプル

図2-5の説明が続きます
「図2-5 メッセージ・フローのサンプル」の説明

メッセージ・フロー要素を任意で組み合せて、「開始ノード」をルート(root)位置に必ず(1つだけ)配置し、ルート(route)ノードを持つツリー構造を形成します。ブランチの最後のノード(リーフ・ノード)は、ルート・ノードまたはエコー・ノードになります。

リクエスト・メッセージは開始ノードから始まり、リクエスト・パイプラインのアクションを実行しながらリーフ・ノードまでの経路を辿ります。リーフがルート・ノードの場合、レスポンスが生成されます。一方向のサービスの場合は空のレスポンスになることがあります。リーフがエコー・ノードの場合、リクエストそのものがレスポンスとして扱われます。レスポンスでは、ブランチ・ノードのアクションをスキップしながらツリーの経路を逆に辿ります。ただし、レスポンス・パイプラインのアクションは実行されます。

インタフェースまたはオペレーションがリクエスト/レスポンスであれば、最後にツリーの一番上からレスポンスが送信されます。それ以外の場合、レスポンスは破棄されます。メッセージ・フローの定義の詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Busでのメッセージ・フローの作成に関する項を参照してください。

コンテキスト変数に影響する一連の変換は、選択したエンドポイントへのメッセージの送信前、またはレスポンスの受信後に定義できます。XQueryまたはXSLT変換のかわりにWebサービス・コールアウトを使用して、コンテキスト変数を設定できます。Oracle Service Bus変換マップを構成する方法については、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』を参照してください。

WS-Securityの処理も認可と同様に、WS-Policyを使用するビジネス・サービスの呼出し時に開始ノードで透過的に実行されます。Oracle Service Busのセキュリティの構成方法については、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のセキュリティに関する項を参照してください。

2.3 Oracle Service Busの中核となる機能

ESB、メッセージ・ブローカリング、および操作サービス管理の概念を1つの製品に融合することにより、Oracle Service Busはメッセージとサービスの管理と統合をサービス・ネットワーク全体で可能にしています。その中核となる機能は次のカテゴリに分類されます。

2.3.1 サービス統合

この項では、Oracle Service Busのサービス統合機能について説明します。

2.3.1.1 通信のタイプ

異なる環境をサポートするために、Oracle Service Busでは複数メッセージング・パラダイムを採用しています。次の種類の通信がサポートされています。

  • 同期リクエスト/レスポンス

  • 非同期パブリッシュ1対1

  • 非同期パブリッシュ1対多

  • 非同期リクエスト/レスポンス(同期と非同期のブリッジング)

2.3.1.2 メッセージ・ブローカリング

パフォーマンスの高いメッセージ・ブローカは、Oracle Service Busの中核となるコンポーネントです。メッセージとデータ変換のコンテンツ・ベースのルーティングを可能にします。Oracle Service Busのメッセージ・ブローカリング機能には、次の操作機能が実装されています。

  • メッセージ・ルーティングの外部サービスに対するXQueryベースのポリシーまたはコールアウト。

  • ポイント・ツー・ポイントおよび1対多の両方のルーティング・シナリオ(パブリッシュ)に適用するルーティング・ポリシー。パブリッシュの場合、ルーティング・ポリシーはサブスクリプション・フィルタとして機能します。

  • プロキシ・サービスの定義を再構成せずにルートを変更できる、プロキシ・サービスから抽象化されたルーティング表。

  • クライアントのユーザー定義のグループへの分類およびそれらのグループに基づいたルーティング・ポリシーの適用を行うためのIDベースのルーティング。

2.3.1.3 条件付きルーティング

サービス・エンドポイントとの通信に関連するすべてのルーティング・ロジックは、構成されたプロキシ経由で処理されます。これにより、サービス・コンシューマがバックエンド・サービスとの通信でその複雑性を認識する必要がなくなります。ルーティング、変換、セキュリティ、およびトランスポートの詳細をサービス・コンシューマおよびプロバイダから分離して、これらを構成可能なプロキシ・サービスに置くことで、サービスの統合がより柔軟に行えます。

Oracle Service Busでは、動的なコンテンツ・ベースのメッセージ・ルーティングと実行時のプロトコルの選択がサポートされています。これらの機能は、エンドポイントのビジネス・サービスとは独立したプロキシ・サービスのインタフェースの構成を可能にすることにより実現しています。汎用のプロキシ・テンプレートを使用することにより、メッセージのコンテンツに基づいてメッセージを動的に適切なビジネス・サービスにルーティングするルーティング・ロジックを持つメッセージ・フローの定義としてプロキシ・サービスを構成できます。

2.3.1.4 メッセージ変換

Oracle Service Busではメッセージの変換または処理において、次の機能がサポートされています。

  • 受信メッセージのスキーマに対する検証

  • メッセージのコンテンツまたはヘッダーに基づいたターゲット・サービスの選択

  • ターゲット・サービスに基づいたメッセージの変換

  • XQueryまたはXSLTに基づいたメッセージの変換

  • XMLメッセージとMFLメッセージの両方に対する変換のサポート

  • メッセージへの情報の追加

  • 変換のための追加データ(国コード、完全な顧客レコードなど)を収集するWebサービスへのコールアウトのサポート

2.3.1.5 サービス・コールアウト

Oracle Service Busには、複雑な動的ルーティング処理を行うため、またはメッセージへの情報の追加を実行するために、より洗練されたメッセージ・フローを実現して高い柔軟性を提供するサービス・コールアウト・アクションが用意されています。サービス・コールアウト・アクションはメッセージ・フローのルーティング・ステージ内で使用され、メッセージについての何らかのアクションを実行するために宛先のサービスを呼び出します。サービス・コールアウト機能では、RPCエンコーディングやURL置換などの機能をサポートし、JavaコールアウトとPOJOを使用してOracle Service Busの機能を拡張します。サービス・コールアウトの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・コールアウト・メッセージの作成に関する項を参照してください。

2.3.1.6 プロキシ・サービスからのデータベースの検索

Oracle Service Busでは、Oracle XQueryエンジンの新しいXQuery関数を使用したデータベース検索関数が用意されています。この関数を使用して、メッセージへの情報の追加、ルーティングの決定、プロキシ・サービスの動作のカスタマイズを行うことができます。プロキシ・サービスからデータベースへの読込みアクセスを行うために、カスタムEJBまたはカスタムJavaコードを作成したり、Oracle Data Service Integratorなどの独立したデータベース製品を使用する必要はありません。

これはexecute-sql()関数を使用して実装されており、データベースへのJDBC呼出しを実行することで、データベース読取りを簡単に実行できます。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Busでのメッセージ・フローの作成に関する項を参照してください。

2.3.1.7 Oracle Data Service Integratorのネイティブ・トランスポート

Oracle Service Busには、ネイティブ・トランスポートを使用してOracle Data Service Integratorデータでサービスを呼び出す、一方向または双方向の通信に最適化されたトランスポートが用意されています。これにより、EclipseおよびJava Web Services (JWS)を使用してWebサービスとして公開するよりもデータ・サービスへのアクセスが効率的かつ柔軟になり、セキュリティやIDの伝播もサポートされます。

2.3.1.8 データ変換ツール

Oracle Service BusおよびEclipseをインストールすると、EclipseとFormat Builder用のOracle XQuery Mapperプラグイン(データ変換ツール)がインストールされます。EclipseおよびFormat Builderは、Windowsプラットフォームでのみサポートされています。

2.3.1.9 相互運用性

SOAP、HTTP、JMS、SMTP/POP/IMAP、FTP、SSL、XML、XMLスキーマ、WSDL、WSRP、WS-Securityなどのメッセージング標準への準拠のサポートに関する情報など、Oracle Service Busの相互運用性の詳細は、次のURLにあるOracle Fusion Middlewareのサポートされるシステム構成を参照してください。http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html

2.3.1.10 EJBおよびJEJBトランスポート

Oracle Service Busのビジネス・サービスまたはプロキシ・サービスは、EJBまたはJEJBトランスポートを使用するように設計できます。EJBおよびJEJBトランスポートは、Oracle Service Bus構成、管理、モニター、およびテスト・コンソールと完全に統合されています。EJBトランスポートを使用して構築されたビジネス・サービスは、パブリッシュ、サービス・コールアウト、およびサービスの呼出しに使用できます。

EJBは、ツールを使用したり、EJBをホストするアプリケーション・サーバーのレガシー・コードを変更したりすることなく、Webサービスとして公開できます。

また、JEJBトランスポートでは、plain old Java object (POJO)を使用してOracle Service Bus経由でサービスを呼び出すことができます。

2.3.2 サービス・セキュリティ

Oracle Service Busでは、通信の整合性とプライバシを保証し、認可されたユーザーだけがOracle Service Busドメインのリソースにアクセスできるようにするために、オープンな業界標準をサポートしています。また、セキュリティ・サービスの構成要素として、基になっているWebLogicセキュリティ・フレームワークを使用します。WebLogicセキュリティ・フレームワークでは、ドメインを保護するための作業が認証、認可、資格証明マッピング、監査などの複数のコンポーネント(プロバイダ)に分かれています。

2.3.2.1 メッセージ・セキュリティの機能

Oracle Service Busには、次のセキュリティ機能が用意されています。

  • Webサービス・セキュリティ(WS-Security)仕様に定義された認証、暗号化と復号化、およびデジタル署名

  • SSLを使用したHTTPおよびJMS転送プロトコルの従来のトランスポート・レベルのセキュリティのサポート

  • 証明書に基づく一方向および双方向の認証

  • HTTP基本認証

  • ユーザー名およびパスワードを含むリソース(サービス・アカウント、サービス・キー・プロバイダ、UDDIレジストリ、SMTPプロバイダ、JNDIプロバイダなど)の暗号化とエクスポート

  • セッション内でのサービス・アカウントおよびサービス・キー・プロバイダの作成と、同じセッション内でのユーザー名、パスワード、および資格証明別名バインディングの追加

  • ユーザーIDとパスワード資格証明のパススルーと、ビジネス・サービスに対して提供された新しいユーザーIDおよびパスワードのユーザーへのマップを行うサービス・アカウントの構成

  • トランスポート・レベルとメッセージ・レベルのインバウンド・リクエストに対するクライアント指定のカスタム認証資格

Oracle Service Busのセキュリティ・モデルには次のものが含まれます。

  • インバウンド・セキュリティ

  • アウトバウンド・セキュリティ

  • IDの伝播のオプション

  • 管理セキュリティ

  • WebLogic Securityフレームワークの構成

  • サポートされる標準とセキュリティ・プロバイダ

Oracle Service Busセキュリティ・モデルの前述の機能の詳細は、3.3項「Oracle Service Busのセキュリティ」を参照してください。

2.3.3 サービス・コンポジション

この項では、Oracle Service Busのサービス・コンポジション機能について説明します。

2.3.3.1 チェンジ・センター

Oracle Service Busコンソールのチェンジ・センターは、サービス・バス内で構成の変更を行う場合の基本となります。チェンジ・センターには、変更が行われている最中に現在の構成をロックするというユニークな機能があり、コンソールで構成の変更が行われている間でも、サービス・バスはサービスに対するリクエストの受信と処理を継続できます。

変更中の構成がアクティブ化されるまで、現在のシステムの構成は影響を受けません。変更がアクティブ化されると、Service Busでは新しいサービスとリソースの構成を使用します。このようにして、進行中の変更はサービスに影響を与えることなく実行できます。

チェンジ・センターの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のチェンジ・センターの使用に関する項を参照してください。

2.3.3.2 テスト・コンソール

Oracle Service Busに組み込まれているテスト・コンソールは、メッセージ・フローで使用されるリソースおよびインラインXQuery式の検証を行うブラウザ・ベースのテスト環境です。これは、Oracle Service Busコンソールの拡張機能です。テスト・コンソールを使用すると、テスト・オブジェクトの構成(プロキシ・サービス、ビジネス・サービス、XQuery、XSLT、MFLリソース)、テストの実行、テスト結果の表示が行えます。サービスのテスト時には、指定されたトレース・ポイントでメッセージの状態を調べるために、メッセージ・フローのトレースができます。

設計時テストを行うことで、構成を本番環境にデプロイする前に設計上の問題を割り出すことができます。テスト・コンソールでは、システムの特定部分を切り分けてテストしたり、システムを1つの単位としてテストしたりできます。テスト・コンソールはOracle Service Busコンソールの次の各種の部分から呼び出すことができます。

  • プロジェクト・エクスプローラ

  • リソース・ブラウザ

  • XQueryエディタ

詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のテスト・コンソールの使用に関する項を参照してください。

2.3.3.3 リソース管理

Oracle Service Busには次のリソース管理機能が用意されています。

  • サービス、スキーマ、変換、WSDL (Web Service Definition Language)、およびWS-Policyに関する情報を格納します。

  • リソースとサービスの一元的な管理と分散アクセスを提供します。

  • Oracle Service Busに登録されているサービスを表示し、Eclipseまたは他のアプリケーションからリソースをインポートできます。

  • 異なる環境間で(たとえば、開発ドメインからテスト・ドメイン、さらに本番ドメインへ)構成データを伝播できます。システムはインポート時に環境固有の設定をオーバーライドできます。

  • より高度な同期および通知機能を利用できます。

2.3.3.4 リソースのカスタマイズ

Oracle Service Busには、プログラム・インタフェースを介してサービス定義、WSDL、スキーマ、XQuery、およびその他の設計時のリソースをカスタマイズするための多くのAPIが提供されています。サポートされているAPIを使用すると、リソース、フォルダ、およびプロジェクトの移動、名前変更、クローン作成、または削除に加え、リソースが含まれているZIPファイルをロードできます。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Bus APIに関する項を参照してください。

2.3.3.5 UDDIサービス・レジストリ

Oracle Service Busで開発されたプロキシ・サービスは、UDDIレジストリにパブリッシュできます。Oracle Service Busは、Oracle Service Registryを含めたUDDI 3.0準拠の任意のレジストリに対応しています。

Oracle Service Busのサービス定義は、UDDIのサービス定義と(双方向で)同期できます。Oracle Service Busでサービスを作成または変更した後、サービスをUDDIに自動的にパブリッシュできます。また、UDDIからビジネス・サービスの定義をインポートできます。

Oracle Service Busのビジネス・サービスも、元のサービスがUDDIで変更されると自動的に(作業する必要なしに)更新されます。または、UDDIレジストリ内のサービスが変更されたときは同期するかどうかの承認をユーザーに求めるように、Oracle Service Busコンソールを構成することもできます。UDDIレジストリの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のUDDIに関する項およびOracle Service Registryのドキュメントを参照してください。

2.3.3.6 エラーの処理

Oracle Service Busでは、次のエラー処理機能をサポートしています。

  • 同期レスポンスを待機するサービス・コンシューマに対して、エラー・メッセージをフォーマットして送信したり、メッセージを返すようにシステムを構成します。

  • パイプライン・ステージ、パイプライン全体、およびプロキシ・サービスに対するエラー処理ロジックを構成します。

  • パイプラインのメッセージ・コンテキストに基づいてアラートを生成し、アラート宛先に送信します。

2.3.4 サービス管理

この項では、Oracle Service Busのサービス管理機能について説明します。

2.3.4.1 サービスのロギングとモニター

Oracle Service Busでは、サービスの監査とモニターで次の機能が使用できます。

  • メッセージ呼び出し、エラー、パフォーマンス特性、渡されるメッセージおよびSLA違反について統計値を収集します。

  • サード・パーティESMソリューションとの統合を可能にするため、SLAベースのアラートをSNMPトラップとして送信します。

  • システム処理とビジネス監査の両方を目的として、メッセージの選択された部分に対するロギングをサポートします。

  • メッセージの主要情報を抽出して検索索引として使用する検索機能があります。

Oracle Service Busコンソールにはクラスタ全体のサービスのステータスと統計が表示されます。ビジネス・サービスとOracle Service Busプロキシ・サービスの両方で、レスポンス回数、メッセージ数、エラー数がモニターされます。

メトリックの取得を行うためのポーリング・インタフェースとしてJMXモニタリングAPIが提供されます。このAPIにより、管理パートナの統合が可能になり、独自のモニタリング・コンソールを使用しているユーザーも、パフォーマンス解析のためにメトリックを表示できるようになります。

2.3.4.2 カスタム・オペレーション・コンソール

Oracle Service Busコンソールではオペレータ(IntegrationOperator)ロールのユーザーによるタスクの実行をサポートしています。これにより、操作関連の機能や設定が提供され、ユーザーは、新しいスマート検索機能を使ってリソースを簡単に検索できます。また、SLAアラート、パイプライン・アラート、ログ、レポートをモニターしたり、トレースやサービスを有効および無効にすることもできます。

メトリックの通知がコンソール上の場合とJMXモニタリングAPIを使用した場合とで区別されるようになったため、SLAアラートとパイプライン・アラートとの識別が容易になりました。サービス・レベル・フラグとグローバル・フラグにより、アラート(SLAとパイプライン)、レポート、ロギングの制御が支援されます。オペレータには、操作設定の編集、新しいSLAアラート・ルールの作成、およびアラート宛先リソースの作成と編集を行う権限があります。

コンソール操作タスクの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』を参照してください。

2.3.4.3 サービス・バージョン管理

Oracle Service Busでは、サービスの新しいバージョンのデプロイを可能にし、WSDLやスキーマなどのメッセージ・リソースの複数のバージョンを使用できる機能が提供されています。各バージョンに、WSDL、メッセージ・スキーマ、ヘッダー、およびセキュリティ・パラメータへの変更を含めることができます。

2.3.4.4 サービス・レベル合意

Oracle Service Busでは、モニターしている統計値はローカルで収集され、一元的に集約されます。集約されたデータに対してSLAルールが実行され、有効または無効にできるサービスに従って、システムによってアラートが生成されます。管理者は次のプロキシ・サービス属性にサービス・レベル合意(SLA)を設定できます。

  • サービスの平均処理時間

  • 処理量

  • エラー、セキュリティ違反、およびスキーマ検証エラーの数

  • 管理者はSLAルール違反のアラートを構成可能

2.4 Oracle Service Busのデプロイメント

この項では、Oracle Service Busのデプロイメント機能について説明します。

2.4.1 デプロイメント・トポロジ

Oracle Service Busは、多数の分散サービス・エンドポイントを集中的に管理して制御するように設計されています。Oracle Service Busは、次の構成にデプロイできます。

  • 管理サーバーとしても機能する単一サーバー。

  • 複数のサーバーで構成されるクラスタ。

図2-6 Oracle Service Busのデプロイメント

図2-6の説明が続きます
「図2-6 Oracle Service Busのデプロイメント」の説明

Oracle Service Busを使用することで、自律的なESBインスタンスを企業全体に構成できます。これらのインスタンスは、サービスや変換などの、構成アーティファクトの独自のセットを持っています。通常、このようなデプロイメントでは、組織内の様々なIT部門にマップします。異なる部門間の通信は、多くの場合ファイアウォールを介して互いにやり取りする、ESBの連携ネットワークを介して行われます。Oracle Service Busのデプロイメントの詳細は、『Oracle Fusion Middleware Oracle Service Busデプロイメント・ガイド』を参照してください。

2.4.2 大規模デプロイメントでの分散構成

Oracle Service Busでは多数の分散サービス・エンドポイントを管理および調整できるため、企業内の集中管理が可能になります。さらに、基になるOracle WebLogic Serverをクラスタリングすることで異種のOracle Service Busハブを水平方向に拡大し、分散Oracle Service Busネットワークを作成できます。

クラスタは、メッセージを処理する一連のクラスタリングされた管理対象サーバーで構成されます。1つのドメインに含まれるOracle Service Busをデプロイしたクラスタは1つに限られます。このクラスタは、Oracle Service Bus以外にも他のアプリケーションをホストできます。管理サーバーはクラスタ・ドメインごとに1つだけあります。クラスタリングの詳細は、『Oracle Fusion Middleware Oracle Service Busデプロイメント・ガイド』のOracle Service Busクラスタについてに関する項を参照してください。

この場合、Oracle Service Busの中央のデプロイメントがガバナンスと調整を処理し、ネットワーク内のすべてのESBは、中央のESBを介して通信します。管理対象サーバーに構成とメタデータを自動的に伝播してローカルでの取得時間を節約し、モニター用のメトリックをすべての管理対象サーバーから自動的に収集して、Oracle Service Busコンソールで集約して表示します。

次の図は、基本的なOracle Service Busクラスタ・トポロジでのメッセージ・データ・フローを示します。

図2-7 クラスタリングと高可用性

図2-7の説明が続きます
「図2-7 クラスタリングと高可用性」の説明

Oracle Service Busは、JMSストア・アンド・フォワードを使用して、連携ネットワーク間の信頼性の高い、保証されたメッセージングを可能にします。また、動的ルーティング機能も、このネットワークの構成を簡略化します。メッセージングの負荷をクラスタ内のサーバー間で均一に分散することで、システムのボトル・ネックを取り除くことができます。

2.4.3 開発ドメイン、ステージング・ドメイン、本番ドメイン

Oracle Service Busでは、制御された環境でのリソースおよびサービスの構成により、エンタープライズ・システムの変更管理のベスト・プラクティスをサポートします。システムの構成をテスト用に別のステージング・ドメインにエクスポートして、プロモーションの最終準備を行ってから、本番ドメインにエクスポートできます。JavaプログラムやJavaスクリプトを使って、アプリケーションのデプロイメントを自動化したり、構成をステージング環境から本番環境に移行したりすることができます。

Oracle Service Busコンソールでは、多数のデプロイメント・カスタマイズ・オプションを選択することができます。様々な環境変数を使用して、環境を移行する際の設定を保持または調整することが可能です。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の環境値の検索と置換およびカスタマイズ・ファイルの作成に関する項を参照してください。

2.4.4 構成メタデータのエクスポートおよびインポート

大規模な開発では、リソースの開発、テスト、ステージング、および本番システムへのデプロイを行う機能が重要です。Oracle Service Busコンソールでは、Oracle Service Busリソース構成をメタデータとして保存し、他のOracle Service Busドメインへのインポート用にJARファイルとしてエクスポートできます。この機能により、Oracle Service Busリソース構成の環境を、ステージング、テスト、本番という順序に従って移行していくことができ、各種のデプロイメント・シナリオを達成するために必要となる専門知識、時間、リソースを最小限に抑えることができます。

リソースのエクスポートとインポートに加えて、プロジェクト全体のエクスポートとインポートも可能です。既存のソース・コード・コントロール・システムの機能と構成JARファイルを組み合せると、Oracle Service Bus構成のバージョン管理および変更管理を行うことができます。

2.4.4.1 メタデータのエクスポート

エクスポート機能では、JARファイルを使用して、既存の構成を他のOracle Service Busドメインにエクスポートできます。この機能では、Oracle Service Busのソース・ドメインにデプロイメントされたリソースのすべて、またはサブセットをエクスポートすることで、システム構成をOracle Service Busのあるインスタンスから別のインスタンスに伝播できます。エクスポート可能なデータに制限はありません。1つまたは複数のプロジェクト、または1つまたは複数のプロジェクトから選択したリソースをエクスポートできます。

Oracle Service Busコンソールでは、依存関係の追跡機能により、特定のリソースとそのリソースが依存している他のすべてのリソースをエクスポートすることもできます。構成をエクスポートするには、セッションの外部で作業する必要があります。アクティブ化されている(ランタイムにデプロイされている)構成のみがエクスポート可能です。

操作値には、グローバル操作設定と、プロキシ・サービスおよびビジネス・サービス用の操作値の2種類があります。グローバル操作設定はシステム・プロジェクト・フォルダにあるリソースで、他のすべてのリソースと同様にエクスポートできます。インポートしているドメインの操作設定がインポート中に上書きされないように保持することが可能です。これはPreserve Operational Values設定を指定することで実現されます。Preserve Operational Valuesが指定されていない場合は、インポートするJARファイルの値がドメインに設定されます。

2.4.4.2 メタデータのインポート

インポート機能では、リソース構成を別のOracle Service Busドメインのセッションにインポートできます。このインポート機能を使用するには、構成JARファイルがインポートされるセッションで作業を行う必要があります。多数の構成の更新と複数のJARファイルのインポートは1つのセッション内で許可されます。また、エクスポートされたデータのサブセットのみをインポートすることもできます。

Oracle Service Busには、Oracle Service Busコンソールのチェンジ・センターを使用して、インポートするドメインの要件を満たすように環境に固有の再構成を行う機能があります。このカスタマイズ機能を使用して、インポートされたリソースはアクティブ化する前に新しいドメインに合わせて調整できます。

インポート機能と検索および置換機能をと同時に使用することで、リソースに対する環境に固有の属性のグローバルな変更がサポートされます。これは、同様の多くの環境値を変更するときに便利です。この機能による置換は、複雑なデプロイメント・シナリオで構成を慎重に調整する必要がある場合には適しません。詳細は、『Oracle Fusion Middleware Oracle Service Busデプロイメント・ガイド』を参照してください。

Oracle Service Busコンソールを使用して構成メタデータをエクスポートおよびインポートする方法については、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のカスタマイズに関する項を参照してください。Oracle Service Busコンソールのチェンジ・センターを使用して、新しい環境用に構成を変更する方法については、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のチェンジ・センターの使用に関する項を参照してください。

2.4.5 スクリプトのサポート

Oracle Service Busの構成とデプロイメントはOracle Service Busコンソールを使用してすべて実行することができますが、Oracle WebLogic Server Scripting Tool (WLST)を使用するとデプロイメント・タスクを自動化できます。WLSTの詳細は、Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンスのWLSTコマンドおよび変数リファレンスに関する項を参照してください。

2.4.6 関連トピック

  • 『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Busでのメッセージ・フローの作成に関する項

  • 『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Bus APIに関する項

  • 『Oracle Fusion Middleware Oracle Service Busデプロイメント・ガイド』