ナビゲーションをスキップ

概念とアーキテクチャ

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

概要

BEA の新しいサービス インフラストラクチャ製品ファミリ (AquaLogic) の一部である BEA AquaLogic Service Bus では、インテリジェントなメッセージ ブローカリングとサービスのモニタおよび管理を統合しているため、1 つのソフトウェア製品でサービス指向アーキテクチャ (SOA) の実装とデプロイを行うことができます。この統合により、企業のインフラストラクチャにスケーラブルで動的なルーティングとトランスフォーメーションのレイヤを組み込み、さらにサービス登録、サービス使用状況、およびサービス レベル アグリーメント (SLA) 適用を管理するサービス ライフサイクル管理機能を追加できます。

AquaLogic Service Bus は、コンフィグレーションベースでポリシー駆動の Enterprise Service Bus (ESB) です。サービスやポリシーの動的なコンフィグレーション、システム モニタ、およびオペレーション タスクのための多機能コンソールが用意されています。AquaLogic Service Bus Console を使用すると、企業のサービス指向環境への変更に対して迅速かつ効率的に対応できます。

AquaLogic Service Bus は、WebLogic Server ランタイム機能に基づきます。WebLogic Server の機能を利用して、可用性、拡張性、および信頼性に優れた機能を提供します。

このトピックでは、AquaLogic Service Bus について説明します。このトピックは、メッセージングおよび SOA を担当するエンタープライズ設計者、運用スペシャリスト、およびセキュリティ設計者を対象としています。内容は以下のとおりです。

 


AquaLogic Service Bus について

今日の企業では、メッセージングや SOA を担当するエンタープライズ設計者は次に示すような多数の課題に直面しています。

つまり、エンタープライズ設計者やその他のスペシャリストの目標は、所有する IT インフラストラクチャを再利用して合理化し、常に制御できる状態にしておくことです。AquaLogic Service Bus は、これらの目標達成を支援するように設計されています。

AquaLogic Service Bus は、サービス指向の統合を行ったり、Web サービスを管理したり、異なる IT 環境に対して従来のメッセージ ブローカリングを提供したりすることに特化した ESB 製品です。AquaLogic Service Bus の軽量でステートレスな高性能アーキテクチャは、分散サービス ネットワークを中継する中核要素として機能します。

AquaLogic Service Bus はポリシー駆動です。次の図に示すように、「サービス クライアント」と「ビジネス サービス」との間に疎結合を確立し、一方でセキュリティ制御やモニタは一元的に管理できます。


 

図 1-1 AquaLogic Service Bus の高度なアーキテクチャ


 

AquaLogic Service Bus では、「ポリシー」と「プロキシ サービス」のコンフィグレーションを通じてサービス統合の関係を動的に実装します。この方法により、次のシステム特性に関するサービス アーキテクチャを迅速に進化させることができます。

プロキシ サービスには仲介役としての性質があるため、AquaLogic Service Bus を使用して、次の分野に関するサービス クライアントの要件とビジネス サービスの要件の相違点を解決できます。

AquaLogic Service Bus では、ポリシー、プロキシ サービス、および関連するリソースのコンフィグレーションがメタデータとして永続化されます。このメタデータを開発環境、ステージング環境、プロダクション環境へと伝播させ、必要に応じて変更することができます。AquaLogic Service Bus メッセージ ブローカリング エンジンは、メタデータ リポジトリからこのコンフィグレーション情報にアクセスします。

AquaLogic Service Bus の設計方針のポイントは、管理機能とサービス実装を物理的に分離することにあります。この分離により、ビジネスの要求に応じて実装だけを動的に進化させることができ、コストのかかるインフラストラクチャの開発作業は不要です。AquaLogic Service Bus は、会社のメッセージング構成の一部として、多くのアプリケーションおよびシステムで共用でき、異なるチームによって構築されたサービス実装を異なる部署にまたがって適用することも可能です。

 


AquaLogic Service Bus の中核となる機能

ESB、メッセージ ブローカリング、および Web サービス管理 (WSM) の概念を 1 つの製品に融合することにより、AquaLogic Service Bus ではメッセージやサービスの管理および統合の基盤を提供しています。

次の表は、AquaLogic Service Bus の中核となる機能を示します。

表 1-1 AquaLogic Service Bus の中核となる機能

機能

説明

ルーティング

以下がサポートされる。

  • XQuery ベースのポリシーまたは外部 Web サービスへのコールアウトに従ったメッセージ ルーティング。

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

ルーティングの転送プロトコル

以下がサポートされる。

  • File

  • FTP

  • HTTP(S)

  • JMS (JMS を使用した MQ および JMS/XA を含む)

  • 電子メール (POP/SMTP/IMAP)

メッセージング

次のモデルがサポートされる。

  • 同期

  • 非同期

  • パブリッシュ

  • サブスクライブ

メッセージの種類

次のメッセージ フォーマットがサポートされる。

  • 添付ファイル付き電子メール

  • ヘッダ付き JMS

  • MFL (メッセージ フォーマット言語)

  • 生データ。生データは内容が見えないデータであり、MFL ファイルがなく、したがってスキーマもない非 XML データ。

  • テキスト

  • SOAP

  • 添付ファイル付き SOAP

  • XML (スキーマに対して有効または無効な XML)

トランスフォーメーション

メッセージのトランスフォーメーションまたは処理で次の機能がサポートされる。

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

  • メッセージのコンテンツまたはヘッダに基づいて対象サービスを選択する

  • 対象サービスに基づいてメッセージを変換する

  • XQuery または XSLT に基づいてメッセージを変換する

  • XML メッセージと MFL メッセージの両方に対するトランスフォーメーションをサポートする

  • メッセージに情報を追加する

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

ロギングおよびモニタ

サービスの監査およびモニタについて次のような豊富な機能を提供する。

  • メッセージ呼び出し、エラー、パフォーマンス特性、渡されたメッセージ、SLA 違反などに関する統計情報を収集できる。

  • システムの操作およびビジネス上の監査目的の両方に関するメッセージのロギング、検索機能などもサポートされる。

  • 受信メッセージをレポート ストアにロギングし、メッセージの主要情報を抽出して検索インデックスとして使用できる。

  • AquaLogic Service Bus Console にクラスタ全体のサービスの状態と統計が表示される。

  • ビジネス サービスと AquaLogic Service Bus プロキシ サービスの両方について応答時間、メッセージ数、エラー数などがモニタされる。

  • 統計情報がローカルで収集されてから中央に集約される。

  • 集約されたデータに対して SLA ルールを実行する。システムはアラートを発生させ、これに応じてサービスを有効または無効にできる。

バージョン管理

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

サービス レベル アグリーメント

管理者は次のプロキシ サービス属性にサービス レベル アグリーメント (SLA) を設定できる。

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

  • 処理量

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

  • 管理者は SLA ルール違反のアラートをコンフィグレーションできる

セキュリティ

次の機能が含まれる。

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

  • SSL を使用して、HTTP および JMS 転送プロトコルの従来の転送レベルのセキュリティをサポートする。

  • 一方向および双方向の証明書に基づく認証をサポートする。

  • HTTP 基本認証をサポートする。

サービス レジストリ

以下がサポートされる。

  • サービス、スキーマ、トランスフォーメーション、WSDL (Web Service Definition Language)、および WS-Policy に関する情報を格納する。

  • 一元的な管理と分散アクセスを提供する。

  • WebLogic Workshop またはその他のアプリケーションからサービス レジストリを参照してリソースをインポートする。

  • 異なる環境間で (たとえば、開発ドメインからテスト ドメイン、プロダクション ドメインへ) コンフィグレーション データを伝播できるようにする。インポート時に環境固有の設定をオーバーライドできる。

エラー処理

以下がサポートされる。

  • 同期応答を待機するサービス コンシューマに対して、エラー メッセージをフォーマットして送信したり、メッセージを返すようにシステムをコンフィグレーションできる。

  • パイプラインのステージ、パイプライン、およびプロキシ サービスのエラー処理をコンフィグレーションできる。

 


AquaLogic Service Bus アーキテクチャ

AquaLogic Service Bus は、メッセージを取得し、それを処理してルーティング先を決定し、指定どおりに変換する仲介役として機能します。JMS などの転送プロトコルからメッセージを受信して、同じ転送プロトコルまたは指定された別の転送プロトコルを使用して再度メッセージを送信します。メッセージへの応答はこの逆の処理になります。AquaLogic Service Bus によるメッセージ処理は、AquaLogic Service Bus Console でプロキシ サービスの「メッセージ フロー定義」で指定されたメタデータを基準に行われます。

デプロイメント トポロジ

AquaLogic Service Bus は WebLogic Server 9.0 上で動作し、次のコンフィグレーションにデプロイできます。

AquaLogic Service Bus では多数の分散サービス エンドポイントを管理および制御できるため、企業内の集中管理が可能になります。たとえば、企業内のすべての Web サービス トラフィックを管理する単一のハブとして AquaLogic Service Bus をデプロイできます。

基底にある WebLogic Server をクラスタ化することにより、AquaLogic Service Bus ハブを水平方向に拡張できます。メッセージングの負荷をクラスタ内のサーバ間で均一に分散できるため、システムのボトルネックを取り除くことができます。さらに、異種の AquaLogic Service Bus ハブを接続し、分散 AquaLogic Service Bus ネットワークを作成できます。

AquaLogic Service Bus は、WebLogic 管理対象サーバのクラスタ化をサポートします。管理対象サーバにコンフィグレーションとメタデータを自動的に伝播してローカルでの取得時間を節約し、モニタ用のメトリックをすべての管理対象サーバから自動的に収集して、AquaLogic Service Bus Console で集約して表示します。

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

図 1-2 クラスタ化と高可用性


 

開発ドメイン、ステージング ドメイン、プロダクション ドメイン

AquaLogic Service Bus では、制御された環境でのリソースおよびサービスのコンフィグレーションを可能にすることにより、企業の変更管理のベスト プラクティスをサポートします。コンフィグレーションをエクスポートし、別のテスト用ステージング ドメインにインポートしてプロモーションの最終準備を行ってから、プロダクション ドメインにインポートできます。AquaLogic Service Bus では、インポート先ドメインの要件に合わせて環境固有の要素を再コンフィグレーションできます。

 


AquaLogic Service Bus メッセージ ブローカリング

AquaLogic Service Bus には、SOA 用にインテリジェントなメッセージ ブローカリング機能が用意されています。以降の節では、AquaLogic Service Bus のメッセージ構造とメッセージ処理に関連する主要な概念について説明します。

ビジネス サービスとプロキシ サービス

AquaLogic Service Bus では、AquaLogic Service Bus Console を使用してコンフィグレーションするプロキシ サービスを通じて、ビジネス サービス (エンタープライズ サービスとデータベースなど) とサービス クライアント (プレゼンテーション アプリケーションやその他のビジネス サービス) との間にインテリジェントなメッセージ ブローカリングを確立します。

ビジネス サービス

ビジネス サービスは、メッセージの交換先となるエンタープライズ サービスの AquaLogic Service Bus での定義です。AquaLogic Service Bus Console を使用して、ビジネス サービスのインタフェースの WSDL、使用する転送の種類、セキュリティの要件、およびその他の特性を定義することにより、ビジネス サービスをコンフィグレーションします。

AquaLogic Service Bus Console を使用してビジネス サービスをコンフィグレーションする方法については、AquaLogic Service Bus Console のオンライン ヘルプの「ビジネス サービス」で「ビジネス サービスの追加」を参照してください。

プロキシ サービス

プロキシ サービスは、AquaLogic Service Bus のローカルにホストされた仲介 Web サービスの AquaLogic Service Bus での定義です。AquaLogic Service Bus Console を使用して、プロキシ サービスのインタフェースの WSDL、使用する転送の種類、およびメッセージ フローの定義におけるメッセージ処理のロジックを定義し、ポリシーをコンフィグレーションすることにより、プロキシ サービスをコンフィグレーションします。

AquaLogic Service Bus メッセージ ブローカリングを使用すると、サービス クライアントはビジネス サービスと直接メッセージを交換するのではなく、仲介プロキシ サービスを介してメッセージを交換します。プロキシ サービスは、通信するビジネス サービスと同じ (同じ WSDL および転送) インタフェースか、WSDL、転送の種類、またはその両方が異なるインタフェースを持つことができます。

プロキシ サービスは複数のビジネス サービスにメッセージをルーティングできるため、通信するビジネス サービスに依存しないインタフェースを持つプロキシ サービスをコンフィグレーションできます。その場合、メッセージを適切なビジネス サービスにルーティングして、ビジネス サービスのインタフェースで必要とされるフォーマットにメッセージ データをマップするように、メッセージ フローの定義をコンフィグレーションします。

プロキシ サービスの構造の詳細については、「メッセージ フローの定義」を参照してください。

メッセージ処理

メッセージとは、アプリケーション間で情報を共有するために WebLogic Server で使用する方法です。メッセージには、アプリケーション プロセスについてのデータまたはステータス情報や、受信側に対する指示などが含まれます。AquaLogic Service Bus では、コンテンツに基づいてメッセージをルーティングし、コンテンツに対してトランスフォーメーションを実行できます。

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

  1. 着信転送の処理
  2. メッセージ フローの実行
  3. 発信転送の処理

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

次の図は、着信エンドポイント (プロキシ サービス) から発信エンドポイント (サービスの転送 URL (通常はビジネス サービス)) までの AquaLogic Service Bus のメッセージ フローの詳細を示します。

図 1-3 AquaLogic Service Bus のメッセージ処理


 

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

転送レイヤ (着信)

メッセージが最初に送られるのが着信転送レイヤです。このレイヤは、サービス クライアント エンドポイントとの通信を処理し、AquaLogic Service Bus へのメッセージのエントリ ポイントとして機能します。HTTP や JMS などのさまざまな通信プロトコルをサポートします。メッセージ データ自体については、主に生のバイトを入力/出力ストリーム形式で処理します。

着信転送レイヤは、AquaLogic Service Bus システムにメッセージを送り、応答を返すためだけのレイヤです。データ処理は行われません。

メッセージ フローの定義

パイプライン、ブランチ、およびルート ノードは、AquaLogic Service Bus プロキシ サービスの実装を定義します。AquaLogic Service Bus Console を使用して、プロキシ サービスのメッセージ フローの定義におけるメッセージ処理ロジックをコンフィグレーションします。このロジックには、トランスフォーメーション、パブリッシュ、レポートなど、パイプラインのステージ内で個別のアクションとして実装されるアクティビティが含まれます。

パイプライン ペア

パイプライン ロジックは、「要求パイプライン」定義と「応答パイプライン」定義で構成される 1 組の定義です。要求パイプライン定義は、ビジネス サービスまたは別のプロキシ サービスを呼び出す前に、プロキシ サービスへの要求メッセージに対して AquaLogic Service Bus が実行するアクションを指定します。応答パイプライン定義は、プロキシ サービスが応答を返す前に、プロキシ サービスによって呼び出されたサービスからの応答に対して AquaLogic Service Bus が実行する処理を指定します。ルーティングは、メッセージ フローの最後にルート ノードによって実行されます。

注意 : WS-Security の処理および認可は、パイプライン実行前に透過的に実行されます。

パイプライン実行ステージおよびアクション

各パイプラインは一連のステージで構成されます。1 つのステージは、トランスフォーメーションやパブリッシュなどの、ユーザがコンフィグレーションする処理手順です。パイプラインに送られるメッセージには、メッセージのコンテンツを含む一連の「メッセージ コンテキスト変数」が付けられ、パイプライン ステージのアクションによってアクセスしたり変更することができます。

次の表は、AquaLogic Service Bus のパイプライン ステージで可能なアクションをすべて示します。

表 1-2 パイプライン ステージのアクション

アクション

説明

トランスフォーメーション

トランスフォーメーション アクションはメッセージ コンテキストに影響する。XQuery または XSLT トランスフォーメーションの代わりに Web サービス コールアウトを使用して、出力コンテキスト変数を設定できる。単一のコンテキスト変数を変換する同位置更新もサポートされている。

分岐

分岐アクションでは、ネストされた if 構造を使用してトランスフォーメーションを選択できる。

パブリッシュ

パブリッシュ アクションでは、メッセージのパブリッシュ先となる一連のエンドポイントを定義できる。パブリッシュ アクションを使用して、メッセージ フローの間に一連のリスナにメッセージのコピーを送信する。各エンドポイントにメッセージをパブリッシュする前に、コンテキスト変数に影響する一連の XQuery または XSLT トランスフォーメーションを定義できる。または、コンテキスト変数の設定に Web サービス コールアウトを使用するように指定できる。パブリッシュ要求アクションにあらかじめ定義されたコンテキスト変数への変更は、そのパブリッシュ エンドポイントに限定され、メッセージ フローの後続の処理には影響しない。

レポート

レポート アクションでは、ユーザ定義のコンテキスト情報を含むレポート用のレコードを書き込むことができる。この情報は AquaLogic Service Bus Console で検索および表示できる。

ジャンプ

ジャンプ アクションはステージでの処理を終了する。このアクションは通常、エラー処理またはパイプラインの次のステージにスキップする場合に使用する。

ロギング

ロギング アクションでは、選択したコンテキストの情報を WebLogic Server システム ログに書き込んでデバッグに利用できる。

検証

検証アクションは、ドキュメントを XML または WSDL スキーマに対して検証する。


 

オペレーション パイプライン

各パイプラインは、アクションを含む一連のステージで構成されます。ただし、必要に応じて 1 つのサービス レベル要求パイプラインを複数のオペレーション パイプラインに分岐することができます (1 つのオペレーションに対して最大 1 つのオペレーション パイプラインと、必要に応じてデフォルトのオペレーション パイプライン)。オペレーションの内容はユーザが選択する条件によって決定されます。応答処理は関連するオペレーション パイプラインから開始され、1 つのサービス レベル応答パイプラインに結合されます。

次の図は、プロキシ サービスのオペレーション パイプラインの例を示します。

図 1-4 メッセージ フローの例


 

一方向のオペレーションの場合、応答パイプラインは空のメッセージで実行されます。これにより、プロキシ サービスに応答を作成でき、双方向 (要求/応答) と一方向のオペレーションの間のブリッジングが可能になります。ブリッジング メカニズムとは、プロキシ サービスの入力が一方向であっても、出力は双方向 (要求/応答) になること (またはその逆) を意味します。プロキシ サービスは、呼び出したサービスからの応答を取得するか、クライアントへの応答を生成します。

転送レイヤ (発信)

発信転送レイヤは、送り先エンドポイントとの通信を処理します。HTTP や JMS などのさまざまな通信プロトコルをサポートします。メッセージ データ自体については、主に生のバイトを入力/出力ストリーム形式で処理します。

発信転送レイヤは、AquaLogic Service Bus システムからメッセージを取得するためだけのレイヤです。データ処理は行われません。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次