方法: UDDI 3.0 レジストリにサービスを発行する
目標
このセクションでは、UDDI サービス サイトを使用して、ESB メッセージのルーティングを目的として、スケジュール内から解決できる Web サービス エンドポイントを発行する方法について説明します。 現在レジストリに発行されている既存の PurchaseOrderSubmitOrderService サービスを複製します。
このハウツー トピックでは、次の手順を実行します。
UDDI Publisher ツールを使用して、ユニバーサル説明、検出、統合 (UDDI) 3 レジストリにサービスを発行します。
UDDI3 リゾルバーを使用してサービス エンドポイントを解決するスケジュール ルーティング スリップを使用して、サービスパブリケーションをテストします。
前提条件
このハウツー トピックの手順では、 開発アクティビティの前提条件 と UDDI パブリッシャー ツールの実行を完了する必要があります (インストール先は %ESB Install Folder%\Bin\Microsoft.Practices.ESB.UDDIPublisher.exe にあります)。
手順
UDDI レジストリで NewPOService を作成するには
インターネット エクスプローラーで、UDDI サービス サイトを参照します (既定では、このhttp://localhost/uddi).
[ uddi Services ] ページで、[ 発行] をクリックします。
[発行] ウィンドウで、[ Microsoft.Practices.ESB] を右クリックし、[ サービスの追加] をクリックします。
次のページで、[ 使用するキーの指定] を選択し、[ 続行] をクリックします。
次のページで、 esb キー パーティションをクリックします。 [ キー サフィックス ] ボックスに「 newposervice」と入力し、[ 続行] をクリックします。
次のページの [(新しいサービス名)] の横にある [ 編集] をクリックします。 サービスに NewPOService という名前を付け、[ 更新] をクリックします。
[ 説明の追加] をクリックし、サービスの説明 ( サンプル サービスなど) を入力し、[ 更新] をクリックします。
NewPOService のバインドを追加するには
[バインド] タブ を クリックし、[ バインドの追加] をクリックします。
[ 使用するキーの指定] を選択し、[ 続行] をクリックします。
次のページで、 esb キー パーティションをクリックします。 [ キー サフィックス ] ボックスに「 newposervicebinding」と入力し、[ 続行] をクリックします。
[ アクセス ポイント] で [ 編集] をクリックし、次の操作を完了します。
[ アクセス ポイント ] ボックスに「」と入力します http://localhost/ESB.CanadianServices/SubmitPOService.asmx。
[ 種類の使用 ] ドロップダウン リストで、[ エンドポイント] をクリックし、[ 更新] をクリックします。
バインド インスタンス情報を構成するには
[ インスタンス情報 ] タブをクリックし、[ インスタンス情報の追加] をクリックします。
[含 まれている tModel 名の検索 ] ボックスに 「%esb% 」と入力し、[ 検索] をクリックします。
transporttype の tModel を見つけてクリックします。
Note
この手順の残りの手順を完了するには、1 ページから 2 ページを変更する必要がある場合があります。
[ 説明 ] セクションで、[ 説明の追加] をクリックします。
[ 説明 ] ボックスに、「 ESB スケジュールの使用」に「トランスポートの種類」と入力し、[ 更新] をクリックします。
[ インスタンスの詳細 ] タブをクリックし、[ 編集] をクリックします。
[ インスタンス パラメーター] ボックスに「 WCF-BasicHttp」と入力し、[ 更新] をクリックします。
[ 説明 ] セクションで、[ 説明の追加] をクリックします。
[ 説明 ] ボックスに「 WCF Basic HTTP トランスポート」と入力し、[ 更新] をクリックします。
[発行] ウィンドウの [ NewPOService] で、[] をクリックします http://localhost/esb.canadianservices/submitposervice.asmx。
[ インスタンス情報 ] タブで、[ インスタンス情報の追加] をクリックします。
前述の手順を使用して、次の表に示す値に従って、次のインスタンス情報を追加します。
tModel 説明 パラメーター パラメーターの説明 microsoft-com:esb:runtimeresolution:messageexchangepattern メッセージ交換パターン 双方向 双方向操作 microsoft-com:esb:runtimeresolution:cachetimeout キャッシュ タイムアウト -1 現在無効 microsoft-com:esb:runtimeresolution:jaxrpcresponse JaxRpcResponse false microsoft-com:esb:runtimeresolution:action サービス アクション submitOrder 呼び出すサービス メソッドを指定します microsoft-com:esb:runtimeresolution:targetnamespace サービスの名前空間 http://globalbank.esb.dynamicresolution.com/canadianservices ターゲットの名前空間
バインドの分類を構成するには
[発行] ウィンドウの [ NewPOService] で、[] をクリックします http://localhost/esb.canadianservices/submitposervice.asmx。
[カテゴリ] タブ で 、[ カスタム カテゴリの追加] をクリックします。
[ 検索 ] ボックスに 「%esb% 」と入力し、[ 検索] をクリックします。
microsoft-com:esb:runtimeresolution:biztalkapplication tModel を見つけてクリックします。
[ キー名 ] ボックスに、「 BizTalk アプリケーション」と入力します。
[ キー値 ] ボックスに 「Microsoft.Practices.ESB」と入力し、[ カテゴリの追加] をクリックします。
前に説明した手順を使用して、次の表に示す値に従って、次のカスタム カテゴリを追加します。
tModel キー名 キー値 microsoft-com:esb:runtimeresolution:portname ポート名 NewPOService microsoft-com:esb:runtimeresolution:transporttype トランスポートの種類 WCF-BasicHttp
UDDI レジストリでサービスを見つけるには
[インターネット エクスプローラー] の [uddi サービス] ページで、[検索] をクリックします。
[サービス] タブをクリックします。
[ サービス名 ] ボックスに 「%PO%」と入力し、[ 検索] をクリックします。
[ 検索 ] ウィンドウの [ 結果 ] タブで、[ NewPOService] をクリックします。
Note
これにより、サービスがレジストリに正常に発行されたことを確認します。
UDDI サービスパブリケーションをテストするスケジュール モデルを作成するには
Visual Studio で、C:\HowTos\Patterns\Patterns.sln を開きます。
ソリューション エクスプローラーで、ItineraryLibrary プロジェクトを右クリックし、[追加] をポイントして、[新しいスケジュール] をクリックします。
[ 新しい項目の追加 ] ダイアログ ボックスの [名前 ] ボックスに「 NewBindingKeySearch」と入力し、[ 追加] をクリックします。
スケジュールのプロパティを構成するには
Visual Studio で、 NewBindingKeySearch.itinerary のデザイン画面をクリックします。 NewBindingKeySearch プロパティ ウィンドウで、次のプロパティを構成します。
[ 要求応答] ドロップダウン リストで、[True] をクリック します。
[ モデル エクスポーター ] ドロップダウン リストで、[ XML スケジュール エクスポーター] をクリックします。
[ エクステンダー設定] セクションの [ スケジュール XML ファイル ] プロパティの横にある省略記号ボタン (...) をクリックします。
[XML ファイルの選択] ダイアログ ボックスで、[ファイル名] ボックスに「C:\HowTos\Itineraries\NewBindingKeySearch」と入力し、[保存] をクリックします。
Note
この手順では、スケジュールを XML としてローカル ファイルの場所にエクスポートできます。 スケジュール をスケジュール データベースではなくローカル ファイルの場所にエクスポートすることで、ESB テスト クライアント アプリケーションを使用して旅程のテストを行えます。 このプロセスは、このハウツー トピックの後半で完了します。
旅程の構造を定義するには
ツールボックスから、 On-Ramp モデル要素をデザイン サーフェイスにドラッグします。 OnRamp1 プロパティ ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「ReceiveNAOrder」と入力します。
[ エクステンダー ] ドロップダウン リストで、[ On-Ramp ESB エクステンダー] をクリックします。
[BizTalk アプリケーション] ドロップダウン リストで、[Microsoft.Practices.ESB] をクリックします。
[ 受信ポート ] ドロップダウン リスト で、[OnRamp.Itinerary.Response] をクリックします。
ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグします。 ItineraryService1 プロパティ ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「TransformNAOrder」と入力します。
[ スケジュール サービス エクステンダー ] ドロップダウン リストで、[ メッセージング エクステンダー] をクリックします。
[ コンテナー ] ドロップダウン リストで、[ ReceiveNAOrder] を展開し、[ Receive Handlers]\(ハンドラーの受信\) をクリックします。
[ サービス名 ] ドロップダウン リストで、[ Microsoft.Practices.ESB.Services.Transform] をクリックします。
TransformNAOrder モデル要素の Resolver コレクションを右クリックし、[Add new Resolver]\(新しいリゾルバーの追加\) をクリックします。 Resolver1 プロパティ ウィンドウで、次のプロパティを構成します。
[名前] プロパティをクリックし、「NAOrder_to_CNOrder」と入力します。
[ リゾルバーの実装 ] ドロップダウン リストで、[ Static Resolver Extension]\(静的リゾルバー拡張機能\) をクリックします。
[ 変換の種類 ] ドロップダウン リストで、[ GlobalBank.ESB.DynamicResolution.Transforms.SubmitOrderRequestNA_To_SubmitOrderRequestCN] をクリックします。
ツールボックスで、[ コネクタ] をクリックします。 ReceiveNAOrder モデル要素から TransformNAOrder モデル要素に接続をドラッグします。
ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグします。 ItineraryService1 プロパティ ウィンドウで、次のプロパティを構成します。
[名前] プロパティをクリックし、「BindingKeyRoute」と入力します。
[ スケジュール サービス エクステンダー ] ドロップダウン リストで、[ メッセージング エクステンダー] をクリックします。
[ コンテナー ] ドロップダウン リストで、[ ReceiveNAOrder] を展開し、[ Receive Handlers]\(ハンドラーの受信\) をクリックします。
[ サービス名 ] ドロップダウン リストで、[ Microsoft.Practices.ESB.Services.Routing] をクリックします。
BindingKeyRoute モデル要素の Resolver コレクションを右クリックし、[新しいリゾルバーの追加] をクリックします。 Resolver1 プロパティ ウィンドウで、次のプロパティを構成します。
[名前] プロパティをクリックし、「BindingKeySearch」と入力します。
[ リゾルバーの実装 ] ドロップダウン リストで、[ Uddi3 Resolver Extension]\(Uddi3 リゾルバー拡張機能\) をクリックします。
[ リゾルバー モニカー ] ドロップダウン リストで、[ UDDI3] をクリックします。
[ バインド キー ] プロパティをクリックし、「 uddi:esb:newposervicebinding」と入力します。 キー値を見つけるには、UDDI でサービスを http://localhost/ESB.CanadianServices/SubmitPOService.asmx クリックし、[詳細] をクリックします。
BindingKeySearch リゾルバーを右クリックし、[Test Resolver Configuration]\(競合回避モジュールの構成のテスト\) をクリックします。
Note
[出力] ウィンドウに表示される出力を確認します。
ツールボックスで、[ コネクタ] をクリックします。 TransformNAOrder モデル要素から BindingKeyRoute モデル要素に接続をドラッグします。
ツールボックスから 、Off-Ramp モデル要素をデザインサーフェイスにドラッグし、 BindingKeyRoute モデル要素の右側に配置します。 OffRamp1 プロパティ ウィンドウで、次のプロパティを構成します。
[名前] プロパティをクリックし、「SendCNOrder」と入力します。
[ エクステンダー ] ドロップダウン リストで、[ Off-Ramp ESB エクステンダー] をクリックします。
[BizTalk アプリケーション] ドロップダウン リストで、[GlobalBank.ESB] をクリックします。
[ 送信ポート ] ドロップダウン リストで、[ DynamicResolutionSolicitResp] をクリックします。
ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグし、 BindingKeyRoute モデル要素と SendCNOrder モデル要素の間に配置します。 ItineraryService1 プロパティ ウィンドウで、次のプロパティを構成します。
[名前] プロパティをクリックし、「SendPortFilter」と入力します。
[ スケジュール サービス エクステンダー ] ドロップダウン リストで、[ オフランプ エクステンダー] をクリックします。
[ オフランプ ] ドロップダウン リストで、[ SendCNOrder] を展開し、[ハンドラーの 送信] をクリックします。
ツールボックスで、[ コネクタ] をクリックします。 BindingKeyRoute モデル要素から SendPortFilter モデル要素に接続をドラッグします。
ツールボックスで、[ コネクタ] をクリックします。 接続を SendPortFilter モデル要素から SendNAOrder モデル要素にドラッグします。
スケジュール テスト クライアントで使用するモデルをエクスポートするには
Visual Studio で、 NewBindingKeySearch スケジュールのデザイン画面を右クリックし、[ モデルのエクスポート] をクリックします。
Note
スケジュールの XML バージョンが Visual Studio で開きます。
すべてのプロジェクト成果物を保存します。
Windows エクスプローラーで、C:\HowTos\Itineraries に移動し、旅程 XML (NewBindingKeySearch.xml) の作成に注目します。
旅程をテストするには
開発アクティビティの前提条件 (C:\HowTos\ESB.Itinerary.Test.exe - ショートカット) の間に作成されたショートカットを使用して、Itinerary Test Client サンプル アプリケーションを開きます。
[スケジュール テスト クライアント] の [Web サービス オプション] グループで、[WCF サービスの使用] ボックスをオフにし、[双方向サービスのチェック] ボックスを選択します。
[ スケジュールの読み込み ] ボタンをクリックします。
[ スケジュール ファイルを開く ] ダイアログ ボックスで、C:\HowTos\Itineraries に移動します。 [NewBindingKeySearch.xml] を選択し、[開く] をクリックして旅程を読み込みます。
[ OK] をクリックして 、 スケジュールが正常に読み込まれた というメッセージをクリアします。
[スケジュール テスト クライアント] で、[ メッセージの読み込み ] ボックスの横にある省略記号ボタン (...) をクリックします。
[ 読み込む XML ドキュメントの選択 ] ダイアログ ボックスで、C:\HowTos を参照します。 [NAOrderDoc.xml] を選択し、[開く] をクリックしてテスト メッセージを読み込みます。
[ 要求の送信] ボタンをクリックします。 テストが完了したら、[ OK] をクリックして 、表示される確認を閉じます。
Itineray テスト クライアントの [結果] テキスト ボックスに正しい応答メッセージが表示されることを確認します。
その他のリソース
詳細については、次の関連項目を参照してください。