次の方法で共有


方法: UDDI 3.0 レジストリにサービスを発行する

目標

このセクションでは、UDDI サービス サイトを使用して、ESB メッセージのルーティングを目的として、スケジュール内から解決できる Web サービス エンドポイントを発行する方法について説明します。 現在レジストリに発行されている既存の PurchaseOrderSubmitOrderService サービスを複製します。

このハウツー トピックでは、次の手順を実行します。

  • UDDI Publisher ツールを使用して、ユニバーサル説明、検出、統合 (UDDI) 3 レジストリにサービスを発行します。

  • UDDI3 リゾルバーを使用してサービス エンドポイントを解決するスケジュール ルーティング スリップを使用して、サービスパブリケーションをテストします。

前提条件

このハウツー トピックの手順では、 開発アクティビティの前提条件 と UDDI パブリッシャー ツールの実行を完了する必要があります (インストール先は %ESB Install Folder%\Bin\Microsoft.Practices.ESB.UDDIPublisher.exe にあります)。

手順

UDDI レジストリで NewPOService を作成するには

  1. インターネット エクスプローラーで、UDDI サービス サイトを参照します (既定では、このhttp://localhost/uddi).

  2. [ uddi Services ] ページで、[ 発行] をクリックします。

  3. [発行] ウィンドウで、[ Microsoft.Practices.ESB] を右クリックし、[ サービスの追加] をクリックします。

  4. 次のページで、[ 使用するキーの指定] を選択し、[ 続行] をクリックします。

  5. 次のページで、 esb キー パーティションをクリックします。 [ キー サフィックス ] ボックスに「 newposervice」と入力し、[ 続行] をクリックします。

  6. 次のページの [(新しいサービス名)] の横にある [ 編集] をクリックします。 サービスに NewPOService という名前を付け、[ 更新] をクリックします。

  7. [ 説明の追加] をクリックし、サービスの説明 ( サンプル サービスなど) を入力し、[ 更新] をクリックします。

NewPOService のバインドを追加するには

  1. [バインド] タブ クリックし、[ バインドの追加] をクリックします。

  2. [ 使用するキーの指定] を選択し、[ 続行] をクリックします。

  3. 次のページで、 esb キー パーティションをクリックします。 [ キー サフィックス ] ボックスに「 newposervicebinding」と入力し、[ 続行] をクリックします。

  4. [ アクセス ポイント] で [ 編集] をクリックし、次の操作を完了します。

    1. [ アクセス ポイント ] ボックスに「」と入力します http://localhost/ESB.CanadianServices/SubmitPOService.asmx

    2. [ 種類の使用 ] ドロップダウン リストで、[ エンドポイント] をクリックし、[ 更新] をクリックします。

バインド インスタンス情報を構成するには

  1. [ インスタンス情報 ] タブをクリックし、[ インスタンス情報の追加] をクリックします。

  2. [含 まれている tModel 名の検索 ] ボックスに 「%esb% 」と入力し、[ 検索] をクリックします。

  3. transporttypetModel を見つけてクリックします。

    Note

    この手順の残りの手順を完了するには、1 ページから 2 ページを変更する必要がある場合があります。

  4. [ 説明 ] セクションで、[ 説明の追加] をクリックします。

  5. [ 説明 ] ボックスに、「 ESB スケジュールの使用」に「トランスポートの種類」と入力し、[ 更新] をクリックします。

  6. [ インスタンスの詳細 ] タブをクリックし、[ 編集] をクリックします。

  7. [ インスタンス パラメーター] ボックスに「 WCF-BasicHttp」と入力し、[ 更新] をクリックします。

  8. [ 説明 ] セクションで、[ 説明の追加] をクリックします。

  9. [ 説明 ] ボックスに「 WCF Basic HTTP トランスポート」と入力し、[ 更新] をクリックします。

  10. [発行] ウィンドウの [ NewPOService] で、[] をクリックします http://localhost/esb.canadianservices/submitposervice.asmx

  11. [ インスタンス情報 ] タブで、[ インスタンス情報の追加] をクリックします。

  12. 前述の手順を使用して、次の表に示す値に従って、次のインスタンス情報を追加します。

    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 ターゲットの名前空間

バインドの分類を構成するには

  1. [発行] ウィンドウの [ NewPOService] で、[] をクリックします http://localhost/esb.canadianservices/submitposervice.asmx

  2. [カテゴリ] タブ 、[ カスタム カテゴリの追加] をクリックします。

  3. [ 検索 ] ボックスに 「%esb% 」と入力し、[ 検索] をクリックします。

  4. microsoft-com:esb:runtimeresolution:biztalkapplication tModel を見つけてクリックします。

  5. [ キー名 ] ボックスに、「 BizTalk アプリケーション」と入力します。

  6. [ キー値 ] ボックスに 「Microsoft.Practices.ESB」と入力し、[ カテゴリの追加] をクリックします。

  7. 前に説明した手順を使用して、次の表に示す値に従って、次のカスタム カテゴリを追加します。

    tModel キー名 キー値
    microsoft-com:esb:runtimeresolution:portname ポート名 NewPOService
    microsoft-com:esb:runtimeresolution:transporttype トランスポートの種類 WCF-BasicHttp

UDDI レジストリでサービスを見つけるには

  1. [インターネット エクスプローラー] の [uddi サービス] ページで、[検索] をクリックします。

  2. [サービス] タブをクリックします。

  3. [ サービス名 ] ボックスに 「%PO%」と入力し、[ 検索] をクリックします。

  4. [ 検索 ] ウィンドウの [ 結果 ] タブで、[ NewPOService] をクリックします。

    Note

    これにより、サービスがレジストリに正常に発行されたことを確認します。

UDDI サービスパブリケーションをテストするスケジュール モデルを作成するには

  1. Visual Studio で、C:\HowTos\Patterns\Patterns.sln を開きます。

  2. ソリューション エクスプローラーで、ItineraryLibrary プロジェクトを右クリックし、[追加] をポイントして、[新しいスケジュール] をクリックします。

  3. [ 新しい項目の追加 ] ダイアログ ボックスの [名前 ] ボックスに「 NewBindingKeySearch」と入力し、[ 追加] をクリックします。

スケジュールのプロパティを構成するには

  1. Visual Studio で、 NewBindingKeySearch.itinerary のデザイン画面をクリックします。 NewBindingKeySearch プロパティ ウィンドウで、次のプロパティを構成します。

    1. [ 要求応答] ドロップダウン リストで、[True] をクリック します

    2. [ モデル エクスポーター ] ドロップダウン リストで、[ XML スケジュール エクスポーター] をクリックします。

    3. [ エクステンダー設定] セクションの [ スケジュール XML ファイル ] プロパティの横にある省略記号ボタン (...) をクリックします。

    4. [XML ファイルの選択] ダイアログ ボックスで、[ファイル名] ボックスに「C:\HowTos\Itineraries\NewBindingKeySearch」と入力し、[保存] をクリックします。

      Note

      この手順では、スケジュールを XML としてローカル ファイルの場所にエクスポートできます。 スケジュール をスケジュール データベースではなくローカル ファイルの場所にエクスポートすることで、ESB テスト クライアント アプリケーションを使用して旅程のテストを行えます。 このプロセスは、このハウツー トピックの後半で完了します。

旅程の構造を定義するには

  1. ツールボックスから、 On-Ramp モデル要素をデザイン サーフェイスにドラッグします。 OnRamp1 プロパティ ウィンドウで、次のプロパティを構成します。

    1. Name プロパティをクリックし、「ReceiveNAOrder」と入力します。

    2. [ エクステンダー ] ドロップダウン リストで、[ On-Ramp ESB エクステンダー] をクリックします。

    3. [BizTalk アプリケーション] ドロップダウン リストで、[Microsoft.Practices.ESB] をクリックします。

    4. [ 受信ポート ] ドロップダウン リスト で、[OnRamp.Itinerary.Response] をクリックします。

  2. ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグします。 ItineraryService1 プロパティ ウィンドウで、次のプロパティを構成します。

    1. Name プロパティをクリックし、「TransformNAOrder」と入力します。

    2. [ スケジュール サービス エクステンダー ] ドロップダウン リストで、[ メッセージング エクステンダー] をクリックします。

    3. [ コンテナー ] ドロップダウン リストで、[ ReceiveNAOrder] を展開し、[ Receive Handlers]\(ハンドラーの受信\) をクリックします。

    4. [ サービス名 ] ドロップダウン リストで、[ Microsoft.Practices.ESB.Services.Transform] をクリックします。

  3. TransformNAOrder モデル要素の Resolver コレクションを右クリックし、[Add new Resolver]\(新しいリゾルバーの追加\) をクリックします。 Resolver1 プロパティ ウィンドウで、次のプロパティを構成します。

    1. [名前] プロパティをクリックし、「NAOrder_to_CNOrder」と入力します。

    2. [ リゾルバーの実装 ] ドロップダウン リストで、[ Static Resolver Extension]\(静的リゾルバー拡張機能\) をクリックします。

    3. [ 変換の種類 ] ドロップダウン リストで、[ GlobalBank.ESB.DynamicResolution.Transforms.SubmitOrderRequestNA_To_SubmitOrderRequestCN] をクリックします。

  4. ツールボックスで、[ コネクタ] をクリックします。 ReceiveNAOrder モデル要素から TransformNAOrder モデル要素に接続をドラッグします。

  5. ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグします。 ItineraryService1 プロパティ ウィンドウで、次のプロパティを構成します。

    1. [名前] プロパティをクリックし、「BindingKeyRoute」と入力します。

    2. [ スケジュール サービス エクステンダー ] ドロップダウン リストで、[ メッセージング エクステンダー] をクリックします。

    3. [ コンテナー ] ドロップダウン リストで、[ ReceiveNAOrder] を展開し、[ Receive Handlers]\(ハンドラーの受信\) をクリックします。

    4. [ サービス名 ] ドロップダウン リストで、[ Microsoft.Practices.ESB.Services.Routing] をクリックします。

  6. BindingKeyRoute モデル要素の Resolver コレクションを右クリックし、[新しいリゾルバーの追加] をクリックします。 Resolver1 プロパティ ウィンドウで、次のプロパティを構成します。

    1. [名前] プロパティをクリックし、「BindingKeySearch」と入力します。

    2. [ リゾルバーの実装 ] ドロップダウン リストで、[ Uddi3 Resolver Extension]\(Uddi3 リゾルバー拡張機能\) をクリックします。

    3. [ リゾルバー モニカー ] ドロップダウン リストで、[ UDDI3] をクリックします。

    4. [ バインド キー ] プロパティをクリックし、「 uddi:esb:newposervicebinding」と入力します。 キー値を見つけるには、UDDI でサービスを http://localhost/ESB.CanadianServices/SubmitPOService.asmx クリックし、[詳細] をクリックします。

  7. BindingKeySearch リゾルバーを右クリックし、[Test Resolver Configuration]\(競合回避モジュールの構成のテスト\) をクリックします。

    Note

    [出力] ウィンドウに表示される出力を確認します。

  8. ツールボックスで、[ コネクタ] をクリックします。 TransformNAOrder モデル要素から BindingKeyRoute モデル要素に接続をドラッグします。

  9. ツールボックスから 、Off-Ramp モデル要素をデザインサーフェイスにドラッグし、 BindingKeyRoute モデル要素の右側に配置します。 OffRamp1 プロパティ ウィンドウで、次のプロパティを構成します。

    1. [名前] プロパティをクリックし、「SendCNOrder」と入力します。

    2. [ エクステンダー ] ドロップダウン リストで、[ Off-Ramp ESB エクステンダー] をクリックします。

    3. [BizTalk アプリケーション] ドロップダウン リストで、[GlobalBank.ESB] をクリックします。

    4. [ 送信ポート ] ドロップダウン リストで、[ DynamicResolutionSolicitResp] をクリックします。

  10. ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグし、 BindingKeyRoute モデル要素と SendCNOrder モデル要素の間に配置します。 ItineraryService1 プロパティ ウィンドウで、次のプロパティを構成します。

    1. [名前] プロパティをクリックし、「SendPortFilter」と入力します。

    2. [ スケジュール サービス エクステンダー ] ドロップダウン リストで、[ オフランプ エクステンダー] をクリックします。

    3. [ オフランプ ] ドロップダウン リストで、[ SendCNOrder] を展開し、[ハンドラーの 送信] をクリックします。

  11. ツールボックスで、[ コネクタ] をクリックします。 BindingKeyRoute モデル要素から SendPortFilter モデル要素に接続をドラッグします。

  12. ツールボックスで、[ コネクタ] をクリックします。 接続を SendPortFilter モデル要素から SendNAOrder モデル要素にドラッグします。

スケジュール テスト クライアントで使用するモデルをエクスポートするには

  1. Visual Studio で、 NewBindingKeySearch スケジュールのデザイン画面を右クリックし、[ モデルのエクスポート] をクリックします。

    Note

    スケジュールの XML バージョンが Visual Studio で開きます。

  2. すべてのプロジェクト成果物を保存します。

  3. Windows エクスプローラーで、C:\HowTos\Itineraries に移動し、旅程 XML (NewBindingKeySearch.xml) の作成に注目します。

旅程をテストするには

  1. 開発アクティビティの前提条件 (C:\HowTos\ESB.Itinerary.Test.exe - ショートカット) の間に作成されたショートカットを使用して、Itinerary Test Client サンプル アプリケーションを開きます。

  2. [スケジュール テスト クライアント] の [Web サービス オプション] グループで、[WCF サービスの使用] ボックスをオフにし、[双方向サービスのチェック] ボックスを選択します。

  3. [ スケジュールの読み込み ] ボタンをクリックします。

  4. [ スケジュール ファイルを開く ] ダイアログ ボックスで、C:\HowTos\Itineraries に移動します。 [NewBindingKeySearch.xml] を選択し、[開く] をクリックして旅程を読み込みます。

  5. [ OK] をクリックしてスケジュールが正常に読み込まれた というメッセージをクリアします。

  6. [スケジュール テスト クライアント] で、[ メッセージの読み込み ] ボックスの横にある省略記号ボタン (...) をクリックします。

  7. [ 読み込む XML ドキュメントの選択 ] ダイアログ ボックスで、C:\HowTos を参照します。 [NAOrderDoc.xml] を選択し、[開く] をクリックしてテスト メッセージを読み込みます。

  8. [ 要求の送信] ボタンをクリックします。 テストが完了したら、[ OK] をクリックして 、表示される確認を閉じます。

  9. Itineray テスト クライアント[結果] テキスト ボックスに正しい応答メッセージが表示されることを確認します。

その他のリソース

詳細については、次の関連項目を参照してください。