ユーザーズ ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容

UDDI

この章の内容は以下のとおりです。

 


BEA AquaLogic Service Bus と UDDI の概要

Universal Description, Discovery and Integration (UDDI) レジストリは、企業で Web サービスを共有するために使用されます。UDDI サービスを使用することで、企業はこれらの Web サービスを整理およびカタログ化し、企業内または信頼できる外部のパートナと共有および再利用することができます。

Web サービスの UDDI レジストリ サービスは、次の URL にある UDDI 仕様で定義されています。


http://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm#uddiv3

UDDI レジストリは、この仕様に基づいています。この仕様には、UDDI を使用して Web サービスの情報をパブリッシュおよび検索する方法の詳細が記載されています。サービスの実行時の仕様は定義されません (単なるサービスのディレクトリです)。UDDI は、企業のビジネス、ビジネス サービス、および公開するサービスの技術的な詳細を分類するためのフレームワークを提供します。

レジストリへサービスをパブリッシュするには、サービス タイプと、レジストリ内でそのサービスを表すデータ構造の知識が必要です。レジストリ エントリには、特定のプロパティが関連付けられ、これらのプロパティ タイプはレジストリの作成時に定義されます。レジストリにサービスをパブリッシュして、他の組織がそのサービスを検出して使用できるようにすることが可能です。BEA AquaLogic Service Bus で開発されたプロキシ サービスは、UDDI レジストリにパブリッシュできます。AquaLogic Service Bus は、UDDI 3.0 準拠のレジストリに対応しています。BEA では、AquaLogic Service Registry を提供しています。

図 7-1 AquaLogic Service Bus と UDDI の統合

AquaLogic Service Bus と UDDI の統合

AquaLogic Service Bus で、AquaLogic Service Registry との Web ベース インタフェースを使用して、レジストリに簡単にアクセスして利用できます。AquaLogic Service Bus を UDDI と組み合わせて使用することにより、規格準拠の Web サービスの再利用が促進されます。このように、AquaLogic Service Bus レジストリ エントリは、複数のドメインで検索、検出、および使用できます。Web サービスと UDDI は一連の規格に基づいて構築されるため、再利用により、テストされ条件を満たした Web サービスやアプリケーション開発規格の使用が企業全体で促進されます。Web サービスとインタフェースは、タイプ、機能、または分類に応じてカタログ化すると、検索や管理がさらに容易になります。

UDDI 仕様の基本概念

UDDI は、HTTP、XML、XSD (XML スキーマ定義)、SOAP、WSDL など、確立された複数の業界標準に基づいています。UDDI 仕様の最新バージョンは、次の URL にあります。


http://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm#uddiv3

UDDI 仕様には、Web サービスのレジストリとそのプログラムのインタフェースが記載されています。UDDI 自体が、Web サービスのセットです。UDDI 仕様は、以下に関する記述と検出をサポートするサービスを定義しています。

AquaLogic Service Bus で UDDI レジストリを使用する利点

UDDI レジストリは、ビジネス サービスに関するデータとメタデータを格納します。これは、他のアプリケーションが検出および再利用できるように Web サービス情報をカタログ化および管理する、規格準拠のライブラリです。UDDI を使用することにより、コードの再利用が増えるなど、設計時にも実行時にも IT 管理者にとってさまざまな利点があります。開発者にも次のような利点があります。

UDDI エンティティの概要

UDDI は、特定のデータ モデルを使用して、組織とサービスを定義するエンティティを表します。図 7-2 は、異なる UDDI エンティティ間の関係を示します。

図 7-2 組織とサービスを表す UDDI エンティティ

組織とサービスを表す UDDI エンティティ

UDDI エンティティの概要を示します。

表 7-1 UDDI エンティティの概要説明
ビジネス エンティティ
サービスを所有および提供する組織またはグループ。サービス提供者の名前、説明、および連絡先のセット、ビジネス エンティティの機能を表すカテゴリ、ユニークな ID、検出 URL のセットで記述される。
ビジネス サービス
ビジネス サービスは、ビジネス エンティティが提供する機能またはリソースを表す。名前、説明、サービスの機能を表すカテゴリのセットで記述される。必ずしも Web サービスであるわけではない。
バインディング テンプレート
バインディング テンプレートは、ビジネス サービスを呼び出す方法の技術的な詳細を表す。ビジネス サービスには、1 つまたは複数のバインディング テンプレートを含めることができる。サービス エンドポイントを表すアクセス ポイント (エンドポイント URI とプロトコル仕様)、tModel インスタンス情報、およびバインディング テンプレートの特定の機能を参照するカテゴリで記述される。
tModel
UDDI レジストリでのサービスの表現方法を記述する技術モデル。サービスの記述には、名前、説明、概要ドキュメント (tModel の目的を指定するドキュメントへの参照)、カテゴリ、および (tModel をユニークに識別する) 識別子などが含まれる。

UDDI データ モデルと UDDI で使用されるエンティティの詳細については、BEA AquaLogic Service Registry 2.1 のユーザーズ ガイドの「Introduction to BEA AquaLogic Service Registry」を参照してください。

前提条件

AquaLogic Service Bus で UDDI レジストリを使用するには、以下のタスクを実行しておく必要があります。

証明書

AquaLogic Service Bus は、UDDI (Universal Description, Discovery and Integration) バージョン 3 を完全準拠で実装したすべての UDDI レジストリと連携します。

AquaLogic Service Registry 2.1 は、バージョン 3 UDDI 準拠のレジストリであり、AquaLogic Service Bus との連携が確認されています。

機能

UDDI レジストリのバージョン 3 実装を AquaLogic Service Bus と連携するように設定すると、AquaLogic Service Bus Console からアクセスできるようになります。使用できる機能は次のとおりです。

レジストリのコンフィグレーションと検索の方法、ビジネス サービスを AquaLogic Service Bus にインポートする方法、およびプロキシ サービスを UDDI レジストリにパブリッシュする方法の詳細については、『AquaLogic Service Bus Console の使い方』の「システムの管理」にある以下のトピックを参照してください

BEA AquaLogic Service Registry とは

BEA AquaLogic Service Registry は、UDDI のバージョン 3 実装に完全に準拠しており、サービス指向アーキテクチャ (SOA) の重要なコンポーネントです。

注意 : AquaLogic Service Registry は、AquaLogic Service Bus には付属していません。AquaLogic Service Registry を使用する場合は、BEA から別途ライセンスを購入してください。

UDDI レジストリは、サービスの検索、サービスの呼び出し、およびサービスのメタデータ (セキュリティ、転送、またはサービス品質) の管理のための、規格準拠の基盤インフラストラクチャです。Registry Console を使用して、レジストリのコンテンツを参照およびパブリッシュできます。Registry Console は、管理者がレジストリ管理を行うための主要コンソールです。AquaLogic Service Registry コンソールを起動するには、Web ブラウザで http://hostname:port/uddi/web を開きます。このホスト名とポートは、AquaLogic Service Registry のインストール時に定義されたものです。デフォルトのポートは 8080 です。AquaLogic Service Registry の管理 (特に、レジストリのコンフィグレーションや、パーミッション、承認、およびレプリケーションの管理) の詳細については、BEA AquaLogic Service Registry の管理者ガイドを参照してください。

AquaLogic Service Bus と UDDI のビジネス シナリオの例

UDDI を使用する利点を明確にする 2 つのビジネス シナリオの例を以下に示します。

プロキシ サービスと UDDI レジストリの基本的な通信

このシナリオでは、AquaLogic Service Bus を使用して、レジストリからサービスをインポートし、そのサービスを AquaLogic Service Bus プロキシ サービスの一部として元のレジストリにパブリッシュする方法を説明します。

AquaLogic Service Bus に、UDDI レジストリからビジネス サービスをインポートします。メッセージ フローでビジネス サービスと通信するように、プロキシ サービスをコンフィグレーションします。プロキシ サービス自体を元のレジストリにパブリッシュし、他のドメインで使用できるようにすることが可能です。

図 7-3 プロキシ サービスと UDDI レジストリの通信

プロキシ サービスと UDDI レジストリの通信

AquaLogic Service Bus のドメイン間デプロイメント

このシナリオでは、AquaLogic Service Bus を使用するドメイン間デプロイメントについて説明します。あるドメインの AquaLogic Service Bus アプリケーションが、実行時に別のドメインにある別の AquaLogic Service Bus サービスにアクセスする必要があります。

2 つのドメインに、AquaLogic Service Bus のインスタンスがそれぞれデプロイされています。ドメイン (D1) に AquaLogic Service Bus プロキシ サービス (P1) がコンフィグレーションされています。ドメイン (D2) の AquaLogic Service Bus プロキシ サービス (P2) は、プロキシ サービス (P1) にアクセスする必要があります。ドメイン間で直接通信することができないため、D2 の P2 は D1 の P1 を検出できません。AquaLogic Service Bus のインポート/エクスポート機能では、別のドメインにあるサービスの実行時検出をサポートしていませんが、一般に公開されている UDDI レジストリにサービスをパブリッシュすることで、そのサービスがどのドメインにあっても検出できるようになります。P1 が UDDI レジストリに公開されると、実行時に呼び出したり (たとえば、株価を取得する)、他の AquaLogic Service Bus プロキシ サービスでビジネス サービスとしてインポートしたりできます。

別のドメインからインポート/エクスポートする場合は、ネットワーク接続が必要です。プロキシ サービスが、異なるドメインのリポジトリにあるスキーマを参照するとします。この場合、URL を使用してインポートするために、そのドメインに HTTP でアクセスできる必要があります。接続がない場合は、エラー メッセージが返されます。

図 7-4 ドメイン間デプロイメントのビジネス ケース例

ドメイン間デプロイメントのビジネス ケース例

 


AquaLogic Service Bus と UDDI の使用

AquaLogic Service Bus Console を使用して以下を行うことができます。

UDDI のワークフロー

AquaLogic Service Bus で UDDI を使用するための一般的なワークフローは次のとおりです。

 


レジストリのコンフィグレーション

UDDI レジストリをコンフィグレーションし、AquaLogic Service Bus で使用できるようにしたら、AquaLogic Service Bus プロキシ サービスをパブリッシュしたり、レジストリからビジネス サービスをインポートして、プロキシ サービスで使用したりできます。レジストリのコンフィグレーションは、AquaLogic Service Bus Console の AquaLogic Service Bus アクティブ セッションで行います。

次の表は、UDDI レジストリのコンフィグレーションに必要なフィールドを示しています。

表 7-2 UDDI レジストリのコンフィグレーションの設定
名前*
レジストリの名前。初めてパブリッシュしたときに割り当てられた名前。レジストリ名を選択してレジストリの詳細を編集する。照会 URL、パブリッシュ URL、セキュリティ URL、およびサービス アカウントを編集できる。ただし、レジストリ名は編集不可。このフィールドは必須。
照会 URL*
サービスの検索およびインポートに使用する URL。照会 URL は必須。レジストリから読み込む場合に指定する必要があるのは、名前と照会 URL のみ。このフィールドは必須。
パブリッシュ URL*
サービスのパブリッシュに使用する URL。サービスをパブリッシュする場合は、セキュリティ URL とレジストリに関連付けられたサービス アカウントも指定する必要がある。このフィールドは必須。
セキュリティ URL
レジストリへのパブリッシュを行うために必要な認証トークンの取得に使用する URL。サービス アカウントを定義済みの場合は、パブリッシュ URL とセキュリティ URL を指定する必要がある。このフィールドは必須。
サブスクリプション URL
レジストリ内の対応するサービスの変更をサブスクライブするために使用する URL。自動インポートを使用して、AquaLogic Service Bus Console のサービスとレジストリ内の該当するサービスの変更を同期する。このフィールドは必須。
ユーザ名
レジストリ コンソールのユーザ名に対応するユーザ名とパスワードを指定する必要がある。レジストリ コンソールへの認証に必須。
パスワード/(パスワードの変更)
ユーザ名とパスワードを指定する必要がある。レジストリ コンソールへの認証に必須。
オプション
レジストリに定義されているオプションは、[削除] のみ。

サービスを AquaLogic Service Registry にパブリッシュする場合、レジストリにアクセスするために、有効なユーザ名とパスワードで認証される必要があります。ユーザ名とパスワードの組み合わせは、サービス アカウント リソースとして AquaLogic Service Bus に実装されます。プロキシ サービスをコンフィグレーションする前に、サービス アカウントを定義しておく必要があります。これにより、プロキシ サービスをコンフィグレーションする際にサービスを使用できるように認証条件が設定されます。

複数のユーザ名とパスワードを使用してレジストリを設定できるため、サービス アカウントに基づいて、ユーザごとに異なるパーミッションを使用できます。AquaLogic Service Registry のパーミッションは、管理者がユーザの権限を BEA AquaLogic Service Registry で管理し、さまざまなユーザ タイプのニーズに合わせたビューをレジストリに作成できるようになっています。AquaLogic Service Bus に設定されたユーザ パーミッションによって、レジストリへのアクセス、レジストリのコンテンツ、および使用できる機能が規定されます。

 


UDDI レジストリへのプロキシ サービスのパブリッシュ

AquaLogic Service Bus Console を使用して、プロキシ サービスを AquaLogic Service Registry にパブリッシュできます。このためには、AquaLogic Service Registry にアカウントを設定しておく必要があります。ローカル転送を使用するプロキシ サービスを除き、プロキシ サービスを UDDI レジストリにパブリッシュできます。表 7-3 に、サービスのタイプと転送方式を示します。

表 7-3 プロキシ サービスのサービスのタイプと転送方式
サービスのタイプ
転送方式
WSDL
HTTP(S)、JMS
任意の SOAP
HTTP(S)、JMS
任意の XML
HTTP(S)、JMS、電子メール、ファイル、FTP、Tuxedo
メッセージング
HTTP(S)、JMS、電子メール、ファイル、FTP、Tuxedo

注意 : メッセージング サービスでは、要求と応答のコンテンツが異なる場合や、応答がない場合 (一方向のメッセージ) がある。電子メール、ファイル、および FTP は一方向。

どのビジネス エンティティでサービスをパブリッシュするかを選択できます。ビジネス エンティティの管理 (エンティティの作成、取り消し、更新、削除など) は、レジストリ ベンダが提供する管理コンソール (AquaLogic Service Registry の場合は Business Service Console) を使用して行います。レジストリに初めてパブリッシュするときに、そのレジストリに tModel をロードする必要があります。これは、AquaLogic Service Bus Console でパブリッシュの詳細をコンフィグレーションするときに行います。

UDDI レジストリへのパブリッシュ方法の詳細については、『AquaLogic Service Bus Console の使い方』の「システムの管理」にある「UDDI レジストリへのプロキシ サービスのパブリッシュ」を参照してください

AquaLogic Service Bus では、UDDI バージョン 3 準拠のすべてのレジストリを使用できますが、AquaLogic Service Registry との連携しか確認されていません。

 


自動パブリッシュの使用

プロキシ サービスを作成するときに、デフォルト レジストリに自動的にパブリッシュできます。これを行うには、まずデフォルト レジストリを設定する必要があります。デフォルトは、プロキシ サービスを作成または変更するときに、パブリッシュ先となるレジストリです。個々のプロキシ サービスの自動パブリッシュ機能を有効または無効にするには、[プロキシ サービスの作成 - 全般的なコンフィグレーション] ページで [レジストリにパブリッシュ] の横にあるチェックボックスを使用します。デフォルト レジストリの設定方法の詳細については、『AquaLogic Service Bus Console の使い方』のデフォルト レジストリの設定を参照してください

[プロキシ サービスの作成 - 全般的なコンフィグレーション] ページの [レジストリにパブリッシュ] を有効にすると、プロキシ サービスがデフォルト レジストリにパブリッシュされます。セッションをアクティブ化したときに、サービスがレジストリに自動的にパブリッシュされるのは、プロキシ サービスの [レジストリパブリッシュ] チェックボックスを選択している場合のみです。レジストリが使用できない場合、バックグラウンドでパブリッシュが再試行されます。プロキシ サービスにさらに変更を加えると、再試行がリセットされます。プロキシ サービスを UDDI にリパブリッシュすると、UDDI に定義されているプロキシ サービスの分類がすべて保持されます。

デフォルト レジストリを変更すると、自動パブリッシュが有効になっているすべてのプロキシ サービスが新しいデフォルト レジストリにパブリッシュされます。これで、最新のデフォルト レジストリで同期が行われます。プロキシ サービスが同期されていない場合、AquaLogic Service Bus Console コンソールには、そのプロキシ サービスの横に ドメイン間デプロイメントのビジネス ケース例 アイコンが表示されます。

注意 : デフォルト レジストリを使用しているときに sbconfig.jar をインポートすると、インポート中に sbconfig.jar のデフォルト レジストリに同じ論理名が設定されるため、ビジネス エンティティのデフォルト レジストリが誤った値になる可能性があります。この場合、自動パブリッシュされたプロキシ サービスがあると、[自動パブリッシュ状態] ページにエラーが表示されることがあります。デフォルト レジストリを再度選択すると、これを修正できます。

 


レジストリからのサービスのインポート

レジストリにあるサービスを AquaLogic Service Bus ビジネス サービスとしてインポートできます。WSDL ベースのサービスをインポートする場合、複数の UDDI バインディング テンプレートがあると、AquaLogic Service Bus はバインディング テンプレートごとに異なるビジネス サービスを作成します。

AquaLogic Service Bus のレジストリにアクセスできるのは、UDDI レジストリに対する AquaLogic Service Bus システム管理権限を持つユーザです。レジストリのエントリは、自動的に AquaLogic Service Bus Console の [インポート] ページに表示されます。インポートする場合、利用できるレジストリのリストから選択します。レジストリのサービスを検出するには、特定のレジストリに問い合わせを行う必要があります。レジストリのエントリはユニークです。サービスをインポートするために使用するレジストリを指定する場合に、このクエリを実行します。

UDDI レジストリから AquaLogic Service Bus にインポートできるビジネス サービスのタイプは次のとおりです。

AquaLogic Service Bus Console で UDDI レジストリからサービスをインポートする方法については、『AquaLogic Service Bus Console の使い方』の「システムの管理」にある「UDDI レジストリからのビジネス サービスのインポート」を参照してください。

サービスが更新された場合、最新バージョンを取得するには、レジストリからサービスを再度インポートする必要があります。

サービスにはドキュメントが関連付けられており、これらのドキュメントには他のいくつかのドキュメント (スキーマ、ポリシーなど) が含まれる場合があります。インポートでは、UDDI レジストリはサービスの照会 URL に基づいてドキュメントの場所を示します。他のリソースを含むドキュメント、または他のリソースを参照するドキュメントが検索された場合は、参照されているすべての情報と含まれている各項目は個別のリソースとして AquaLogic Service Bus に追加されます。

レジストリのサービスを検索する条件として、ビジネス エンティティとパターンを使用します。たとえば、サービスを検索する場合、「foo%」と入力できます。AquaLogic Service Bus によってパブリッシュされたサービスには、サービスを識別する固有の tmodel キーがあり、レジストリのサービスを検索するときに使用されます。

インポートするときにレジストリからビジネス エンティティのリストを取得しようとすると、自動的にレジストリに接続します。ビジネス エンティティがレジストリの構成の最上位ですが、他にもビジネス、アプリケーション タイプなどの検索条件を使用できます。認証が必要な場合は、システム管理者からユーザ名とパスワードを入手する必要があります。

関連リファレンス

 


自動インポートの使用

自動インポート機能を使用すると、AquaLogic Service Registry からインポートしたビジネス サービスとレジストリ内の対応するサービスを同期できます。自動インポートの使用方法の詳細については、『AquaLogic Service Bus Console の使い方』の自動インポートを参照してください。自動インポートを使用すると、次の操作を実行できます。

同期

レジストリからインポートしたサービスを同期できます。レジストリ内のサービスを変更した場合に、AquaLogic Service Bus Console のサービスとレジストリ内のサービスを同期できます。次の使用例で、同期のプロセスを説明します。ビジネス サービスがレジストリから切り離されていない場合、AquaLogic Service Bus はレジストリ内のサービスへの変更を自動的にサブスクライブします。サービスが変更された場合、リソース ブラウザおよびプロジェクト エクスプローラの ドメイン間デプロイメントのビジネス ケース例 アイコンによって、同期が必要なサービスが示されます。また、[自動インポート状態] ページにこのサービスが表示され、サービスを同期したりレジストリからサービスを切り離すためのオプションが使用できるようになります。サービスを同期すると、セマンティクス検証エラーが発生し、[衝突の表示] ページに表示される場合があります。これらは、セッションをアクティブ化する前に、手動で修正する必要があります。

サービスが同期されている場合、サービスは UDDI から取得されるフィールドでのみ更新されます。サービス定義の他のフィールドでは、最後のインポート以降に変更を行うと値が保持されます。

図 7-5 ドメイン間デプロイメントのビジネス ケース例

ドメイン間デプロイメントのビジネス ケース例

サービスを Domain1 (図 7-5 を参照) からレジストリにパブリッシュするというシナリオを考えてみます。これらのサービスを別のドメインである Domain2 にインポートします。Domain1 の該当するサービスを変更し、レジストリで変更したサービスを更新します。自動インポートを使用して、変更したサービスとレジストリを同期することで、Domain2 のサービスを更新できます。

切り離し

AquaLogic Service Bus Console のサービスとレジストリ内の該当するサービスを同期しない場合、レジストリからサービスを切り離すと、同期を回避できます。切り離しの使用方法の詳細については、『AquaLogic Service Bus Console の使い方』の「システムの管理」にある「サービスの切り離し」を参照してください

 


AquaLogic Service Bus プロキシ サービスと UDDI エンティティのマッピング

AquaLogic Service Bus プロキシ サービスの属性が、UDDI レジストリでサポートされるデータ モデルにマップされる必要があります。これによって、プロキシ サービスを UDDI ビジネス エンティティとしてパブリッシュできます。次の表は、AquaLogic Service Bus プロキシ サービスの UDDI レジストリ マッピングに関連する、サービス タイプ、メッセージ タイプ、および転送方式を示します。

表 7-4 プロキシ サービスの属性とサービスのタイプ
サービスのタイプ
メッセージのコンテンツ タイプ
転送方式
WSDL
SOAP または XML (添付ファイル付き)
HTTP(S)、JMS
任意の SOAP
型なしの SOAP (添付ファイル付き)
HTTP(S)、JMS
任意の XML
型なしの XML (添付ファイル付き)
HTTP(S)、JMS、電子メール、ファイル、FTP、および Tuxedo
メッセージング
バイナリ、テキスト、MFL、XML (スキーマ)
HTTP(S)、JMS、電子メール、ファイル、FTP、および Tuxedo

注意 : 括弧内の部分はオプションです。メッセージング サービスでは、要求と応答のコンテンツが異なる場合や、応答がない場合 (一方向のメッセージ) があります。電子メール、ファイル、および FTP は一方向であることが必要です。

プロキシ サービスは共通の属性を持ちます。また、サービスやサービスのタイプで使用される転送プロトコルによって固有に定義される属性もあります。各プロキシ サービスは、特定のタイプのメッセージを配信できます。

UDDI の主要な関連エンティティは次のとおりです。

図 7-6 は、WSDL ベースのサービスが UDDI ビジネス エンティティにマップされる仕組みを示します。

図 7-6 WSDL サービスから UDDI へのマッピング

WSDL サービスから UDDI へのマッピング

WSDL ベースのプロキシ サービスを UDDI レジストリにパブリッシュするためのベースとして、http://www.oasis-open.org/committees/uddi-spec/doc/tns.htm にある技術ノート「Using WSDL in a UDDI Registry, Version 2.0.2」が使用されています。このドキュメントは、WSDL ベース以外のサービスをパブリッシュするための基準としても使用されます。このドキュメントと、ベースとなる UDDI 仕様は、UDDI エンティティの記述に使用される標準技術モデル (tModels) を記述しています。AquaLogic Service Bus プロキシ サービスを UDDI レジストリのエンティティとしてパブリッシュするには、AquaLogic Service Bus 固有の構成要素の一部をサポートするために、標準の tModel を追加する必要があります。サービスの検索時に、AquaLogic Service Bus プロキシ サービスのすべての属性 (サービスのタイプや転送の詳細など) が役立つわけではありません。これらの属性は、サービスを分類するものではありません。tmodels は、検出されたサービスのコンフィグレーションの詳細です。これらのコンフィグレーションの詳細は、ビジネス サービスのバインディング テンプレートの tmodelinstanceDetails セクションにマップされます。その他の属性は、サービスを個別に識別するものであり、サービスの検索条件として使用できます。これらの属性は、キー付き参照を使用して、バインディング テンプレートの categoryBag の値と共に tModels にマップされます。

AquaLogic Service Bus から UDDI へのマッピングの例を図 7-7 に示します。

図 7-7 AquaLogic Service Bus から UDDI へのマッピング

AquaLogic Service Bus から UDDI へのマッピング

AquaLogic Service Bus プロキシ サービスの UDDI マッピングの詳細

AquaLogic Service Bus プロキシ サービスの概要情報は、以下のようにビジネス サービスにマップされます。

コード リスト 7-1 は、プロキシ サービスの概要情報のビジネス サービスへのマッピングを示しています。

コード リスト 7-1 プロキシ サービスからビジネス サービスへのマッピング例
<keyedReferenceGroup tModelKey="uddi:bea.com:servicebus:properties">
  <keyedReference  tModelKey="uddi:bea.com:servicebus:servicetype"
    keyName="Service Type"
    keyValue="SOAP"/>
  <keyedReference  tModelKey="uddi:bea.com:servicebus:instance"
    keyName="Service Bus Instance"
    keyValue="http://FOO02.amer.bea.com:7001"/>
</keyedReferenceGroup>
注意 : プロキシ サービスをパブリッシュするときに作成される businessService のキーは、パブリッシュする側が割り当てたキー名です。これは、AquaLogic Service Bus のドメイン名、プロキシ サービスのパス、およびプロキシ サービス名から生成されます。形式は次のようになります。
注意 : uddi:bea.com:servicebus:<domainname>:<path>:<servicename>.
注意 : たとえば、AquaLogic Service Bus ドメインである AnonESBan に Proxy というプロジェクトがあるとします。このプロジェクトに Accounting というフォルダがあり、このフォルダには PayoutProxy というプロキシ サービスが格納されています。PayoutProxy を UDDI にパブリッシュする場合、businessService は次のキーで作成されます。
注意 : uddi:bea.com:servicebus:AnonESB:Proxies:Accounting:PayoutProxy.

AquaLogic Service Bus プロキシ サービスの詳細情報は、以下のようにバインディング テンプレートにマップされます。

コード リスト 7-2 は、詳細情報のバインディング テンプレートへのマッピングを示しています。

コード リスト 7-2 バインディング テンプレートへの詳細情報マッピングの例
<bindingTemplate bindingKey="uddi:" serviceKey="uddi:">
  <accessPoint useType="endPoint">file:///c:/temp/in3</accessPoint>
  <tModelInstanceDetails>
    <tModelInstanceInfo tModelKey="uddi:uddi.org:transport:file">
      <InstanceDetails>
      <InstanceParms><ALSBInstanceParms xmlns="http://www.bea.com/wli/sb/uddi">
        <property name="fileMask" value="*.*"/>
        <property name="sortByArrival" value="false"/> </ALSBInstanceParms>
      </InstanceParms>
      </InstanceDetails>
    </tModelInstanceInfo>
    <tModelInstanceInfo tModelKey="uddi:bea.com:servicebus:protocol:
        messagingservice">
      <InstanceDetails>
      <InstanceParms><ALSBInstanceParms xmlns="http://www.bea.com/wli/sb/uddi">
        <property name="requestType" value="XML"/>
        <property name="RequestSchema" value="http://domain.com:7001
          /sbresource?SCHEMA%2FDJS%2FOAGProcessPO"/>
        <property name="RequestSchemaElement"
              value="PROCESS_PO"/>
        <property name="responseType" value="None"/></ALSBInstanceParms>
    </InstanceParms>
    </InstanceDetails>
  </tModelInstanceInfo>
</tModelInstanceDetails>
</bindingTemplate>

転送属性

uddi:uddi.org:transport: * グループの転送のタイプごとに、異なる詳細メタデータのセットが含まれます (「表 7-4 プロキシ サービスの属性とサービスのタイプ」を参照)。このメタデータは、プロキシ サービスの転送のコンフィグレーション詳細を示します。これは、サービスの特徴を示したりサービスを問い合わせたりする場合に役立つものではありませんが検出されたサービスにアクセスするときにこのデータが必要になります。メタデータは XML 文字列で表され、tModelInstanceInfoinstanceParms フィールドに格納されます。

たとえば、HTTP 転送を使用するプロキシ サービスをマップし、HTTP コンフィグレーションの一部として、必要なクライアント認証や要求と応答の文字エンコーディングなどのコンフィグレーション詳細を記述する必要がある場合、bindingTemplate の tModelInstanceDetails の内容は、コード リスト 7-3 の例のようになる必要があります。

コード リスト 7-3 tModelInstanceDetails の例
<tModelInstanceDetails>
<tModelInstanceInfo tModelKey="uddi:uddi.org:transport:http">
<instanceDetails>
<instanceParms>
<ALSBInstanceParms xmlns="http://www.bea.com/wli/sb/uddi">
<property name="basic-auth-required" value="true"/>
<property name="request-encoding" value="iso-8859-1"/>
<property name="response-encoding" value="utf-8"/>
<property name="Scheme" value="http"/>
</ALSBInstanceParms>
</instanceParms>
</instanceDetails>
</tModelInstanceInfo>
</tModelInstanceDetails>
注意 : 各転送方式のサービス エンドポイントは、必ず bindingTemplate の accessPoint フィールドに格納されます。

表 7-5 は、各転送方式で使用する tModelKeyInstanceParms を転送のタイプごとにまとめたものです。

表 7-5 転送属性
転送
tModelKey
InstanceParms
HTTP
uddi:uddi.org:transport:http
  • クライアント認証 [なし、基本、クライアント証明書 (HTTPS のみ)]
  • 要求エンコーディング
  • 応答エンコーディング
JMS
uddi:uddi.org:transport:jms
  • 送り先のタイプ [キュー、トピック]
  • 応答が必要、応答 URI
  • 応答メッセージ タイプ [バイト、テキスト]
  • 要求エンコーディング
  • 応答エンコーディング
ファイル
uddi:uddi.org:transport:file
  • ファイル マスク
  • 到着順にソート [ブール値]
  • 要求エンコーディング
FTP
uddi:uddi.org:transport:ftp
  • ファイル マスク
  • 到着順にソート [ブール値]
  • 転送モード [テキスト、バイナリ]
  • 要求エンコーディング
電子メール1
uddi:uddi.org:transport:smtp
  • 添付ファイルのサポート [ブール値]
  • 要求エンコーディング
Tuxedo
uddi:bea.org:transport:tuxedo
  • 応答が必要
  • アクセス ポイント ID
  • バッファ タイプ
  • バッファ サブタイプ
  • クラス Jar
  • フィールド テーブル クラス
  • View クラス

1電子メール転送の場合、バインディング テンプレートの accessPoint では、次のような標準の mailto URL 形式を使用します。

1mailto:name@some_server.com

1これは、電子メールを読み込むための URL であり、AquaLogic Service Bus でプロキシ サービスにコンフィグレーションした URL とは異なります。サーバ名が不明の場合、この mailto URL をプロキシ サービス定義から生成することはできません。たとえば、プロキシ サービスが POP3 サーバから読み込むように定義されている場合、mailfrom:pop3.bea.com のような URL で定義されていることが考えられます。このようなプロキシ サービスをパブリッシュすると、ダミー サーバが追加されます。上記の例では、パブリッシュされる URL は、mailto:some_name@some_server.com の形式になります。

サービス タイプ属性

表 7-6 は、各サービスのタイプの概要説明を示します。

表 7-6 サービスのタイプの属性
サービス
説明
WSDL

WSDL ベースのプロキシは、次の URL にある技術ノート「Using WSDL in a UDDI Registry, Version 2.0.2」に基づいて UDDI にマップされる

http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v202-20040631.htm.

任意の SOAP
bindingTemplate の tModelInstanceDetailscategoryBag に含まれる簡易マーカ プロトコル tModel によって、任意の SOAP の属性が定義される。
任意の XML
bindingTemplate の tModelInstanceDetailscategoryBag に含まれる簡易マーカ プロトコル tModel で任意の XML の属性が定義される。これは、新しい詳細な tModel である。
メッセージング サービス
bindingTemplate の tModelInstanceDetails に含まれる簡易マーカ プロトコル tModel によって、メッセージング サービスの属性が定義される。これは、新しい詳細な tModel である。他のサービス タイプとは異なり、メッセージング サービスには、要求および応答メッセージの詳細を示す追加のコンフィグレーション情報が関連付けられる。コンフィグレーション詳細は、tModelInstanceInfo 内の次の tModel 参照の InstanceParms データに、XML データとして表される。
  • 入力メッセージ フォーマット (XML、テキスト、バイナリ、MFL)
  • AquaLogic Service Bus の入力メッセージ スキーマの URL (入力メッセージが XML の場合は省略可能)
  • AquaLogic Service Bus の入力メッセージ MFL の URL (入力メッセージが MFL の場合)
  • 出力メッセージ フォーマット (なし、XML、テキスト、バイナリ、MFL)
  • AquaLogic Service Bus の出力メッセージ スキーマの URL (出力メッセージが XML の場合は省略可能)
  • AquaLogic Service Bus の出力メッセージ MFL の URL (出力メッセージが MFL の場合)

 


AquaLogic Service Bus サービスをサポートする標準 tModel

AquaLogic Service Bus と UDDI のマッピングでは、AquaLogic Service Bus のメタデータと関係を表すいくつかの新しい標準 tModel が採用されています。このマッピングをサポートするには、これらの tModel を UDDI レジストリに登録する必要があります。管理者 ID を使用して、AquaLogic Service Registry にこれらの tModel を作成できます。

次の表は、新しい tModels の概要を示します。

表 7-7 AquaLogic Service Bus の tModel
名前
説明
CategorizationGroup tModel のタイプ
   
bea-com:servicebus:properties
 
AquaLogic Service Bus サービス固有の属性を記述する。データ モデルでは、ビジネス サービスの categoryBag で使用される。
Categorization tModel のタイプ
   
bea-com:servicebus:serviceType
WSDL、SOAP、XML、メッセージング サービス
AquaLogic Service Bus サービスのサービス タイプを記述する。
bea-com:servicebus:instance
AquaLogic Service Bus Console のURL
サービスを UDDI にパブリッシュする AquaLogic Service Bus のサービス インスタンスを記述する。
Transport tModel のタイプ
   
uddi-org:jms
 
サービスが使用する転送方式を記述する。これは、ビジネス サービスのバインディング テンプレートの accessPoint 属性で参照される。
uddi-org:file
 
サービスの呼び出しに使用する転送のタイプを記述する。これは、ビジネス サービスのバインディング テンプレートの accessPoint 属性で参照される。
Protocol tModel のタイプ
   
bea-com:servicebus:anySoap
 
サービスへのアクセスに使用するプロトコルのタイプを記述する。SOAP メッセージを含み、WSDL またはスキーマで定義されていないサービスを指定する。メッセージ本文のコンテンツは、アプリケーションによって動的に決まる。
bea-com:servicebus:anyXML
 
サービスへのアクセスに使用するプロトコルのタイプを記述する。XML メッセージを含む、WSDL またはスキーマで定義されていないサービスを指定する。メッセージ本文のコンテンツは、アプリケーションによって動的に決まる。
bea-com:servicebus:messagingService
 
サービスへのアクセスに使用するプロトコルのタイプを記述する。要求メッセージが任意の XML (スキーマの有無に関係なく)、テキスト、バイナリ、または MFL で、応答メッセージがない、またはこれらのいずれかであるサービスを指定する。メッセージ本文のコンテンツは、アプリケーションによって動的に決まる。

 


要求がスキーマを持つ XML で、応答がテキスト メッセージである JMS 転送でコンフィグレーションされたメッセージング サービスのマッピング例を以下に示します。

コード リスト 7-4 メッセージング サービスのマッピング例
<businessService 
serviceKey="uddi:bea.com:servicebus:Domain:Project:JMSMessaging"
businessKey="uddi:9cb77770-57fe-11da-9fac-6cc880409fac"
xmlns="urn:uddi-org:api_v3">
<name>JMSMessagingProxy</name>
<bindingTemplates>
<bindingTemplate
bindingKey="uddi:4c401620-5ac0-11da-9faf-6cc880409fac"
serviceKey="uddi:bea.com:servicebus:
Domain:Project:JMSMessaging">
<accessPoint useType="endPoint">
jms://server.com:7001/weblogic.jms.XAConnectionFactory/
ReqQueue
</accessPoint>
<tModelInstanceDetails>
<tModelInstanceInfo tModelKey="uddi:uddi.org:transport:jms">
<instanceDetails>
<instanceParms>
<ALSBInstanceParms
xmlns="http://www.bea.com/wli/sb/uddi">
<property name="is-queue" value="true"/>
<property name="request-encoding"
value="iso-8859-1"/>
<property name="response-encoding"
value="utf-8"/>
<property name="response-required"
value="true"/>
<property name="response-URI"
value="jms://server.com:7001/
.jms.XAConnectionFactory/
RespQueue"/>
<property name="response-message-type"
value="Text"/>
<property name="Scheme" value="jms"/>
</ALSBInstanceParms>
</instanceParms>
</instanceDetails>
</tModelInstanceInfo>
<tModelInstanceInfo
tModelKey="uddi:bea.com:servicebus:
protocol:messagingservice">
<instanceDetails>
<instanceParms>
<ALSBInstanceParms xmlns=
"http://www.bea.com/wli/sb/uddi">
<property name="requestType" value="XML"/>
<property name="RequestSchema"
value="http://server.com:7001/
sbresource?SCHEMA%2FDJS%2FOAGProcessPO"/>
<property name="RequestSchemaElement"
value="PROCESS_PO_007"/>
<property name="responseType" value="Text"/>
</ALSBInstanceParms>
</instanceParms>
</instanceDetails>
</tModelInstanceInfo>
</tModelInstanceDetails>
</bindingTemplate>
</bindingTemplates>
<categoryBag>
<keyedReferenceGroup tModelKey="uddi:bea.com:servicebus:properties">
<keyedReference tModelKey="uddi:bea.com:servicebus:servicetype"
keyName="Service Type"
keyValue="Mixed" />
<keyedReference tModelKey="uddi:bea.com:servicebus:instance"
keyName="Service Bus Instance"
keyValue="http://cyberfish.bea.com:7001" />
</keyedReferenceGroup>
</categoryBag>
</businessService>

  ページの先頭       前  次