目標
このセクションでは、Microsoft BizTalk ESB Toolkit Itinerary Designer を使用して、メッセージ コンテキスト プロパティに基づいてメッセージ受信者を選択し、Itinerary Broker メッセージング サービスを使用してその受信者にメッセージをルーティングするスケジュールを作成する方法について説明します。
このトピックでは、次の手順を実行します。
スケジュール ブローカーを使用して旅程を作成し、静的リゾルバーを使用して 2 つのルーティング サービスを作成します。
スケジュール テスト クライアント サンプル アプリケーションを使用して、スケジュールをテストします。
注
現在の実装では、オーケストレーション ベースのブローカー サービスは提供されていません。
[前提条件]
このハウツー トピックの手順では、 開発アクティビティの前提条件を完了する必要があります。
ステップス
ESB スケジュール DSL モデルを作成するには
Visual Studio で、C:\HowTos\Patterns\Patterns.sln を開きます。
ソリューション エクスプローラーで、[ ItineraryLibrary] を右クリックし、[ 追加] をポイントして、[ 新しいスケジュール] をクリックします。
[ 新しい項目の追加 ] ダイアログ ボックスで、[テンプレート] ウィンドウの [ ItineraryDsl ] をクリックします。
[ 名前 ] ボックスに「 ChoiceRouter」と入力し、[ 追加] をクリックします。
スケジュールのプロパティを構成するには
Visual Studio で、 ChoiceRouter スケジュールのデザイン画面をクリックします。 ChoiceRouter プロパティ ウィンドウで、次のプロパティを構成します。
[ モデル エクスポーター ] ドロップダウン リストで、[ XML スケジュール エクスポーター] をクリックします。
[ エクステンダーの設定] セクションで、[ スケジュール XML ファイル ] プロパティの横にある省略記号ボタン (...) をクリックします。
[ エクスポート モード ] プロパティドロップダウン リストで、[ 厳密] をクリックします。
[XML ファイルの選択] ダイアログ ボックスで、[ファイル名] ボックスに「C:\HowTos\Itineraries\ChoiceRouter」と入力し、[保存] をクリックします。
注
この手順では、スケジュールを XML としてローカル ファイルの場所にエクスポートできます。 スケジュール データベースではなく、ローカル ファイルの場所にスケジュールをエクスポートすることで、ESB テスト クライアント アプリケーションを使用してスケジュールをテストできます。 このプロセスは、このハウツー トピックの後半で完了します。
旅程の構造を定義するには
ツールボックスから、 On-Ramp モデル要素をデザイン サーフェイスにドラッグします。 OnRamp1 プロパティ ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「ReceiveNAOrder」と入力します。
[ エクステンダー ]ドロップダウン リストで、[ ランプ エクステンダーをオン]をクリックします。
BizTalk アプリケーションのドロップダウン リストで、Microsoft.Practices.ESB をクリックします。
[受信ポート] ドロップダウン リストで、[OnRamp.Itinerary] をクリックします。
ツールボックスから、 Itinerary Broker Service モデル要素をデザイナー画面にドラッグし、 On-Ramp モデル要素の右側に配置します。 ItineraryBrokerService1 で、次のプロパティを構成します。
Name プロパティをクリックし、「RouteBrokerService」と入力します。
[ エクステンダー ] ドロップダウン リストで、[ メッセージング ブローカー エクステンダー] をクリックします。
[コンテナー] ドロップダウン リストで、[ReceiveNAOrder] を展開し、[受信ハンドラー] をクリックします。
[サービス名] ドロップダウン リストで、[Microsoft.Practices.ESB.Itinerary.Services.Broker.MessagingBroker] をクリックします。
Filter コレクションを右クリックし、[新しいフィルターの追加] をクリックします。 [Filter1 Properties]\(フィルター 1 のプロパティ\) ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「ASMXFilter」と入力します。
[ フィルター 実装] ドロップダウン リストをクリックし、[ XPath フィルター] をクリックします。
Expression プロパティをクリックし、次に count(/ContextProperties/Property[@name='InboundTransportLocation'][contains(., 'ProcessItinerary.asmx')]) > 0 と入力します。
Filter コレクションを右クリックし、[新しいフィルターの追加] をクリックします。 [Filter1 Properties]\(フィルター 1 のプロパティ\) ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「WCFFilter」と入力します。
[ フィルターの実装 ] ドロップダウン リストをクリックし、[ XPath フィルター] をクリックします。
「式」プロパティをクリックし、次に「count(/ContextProperties/Property[@name='InboundTransportLocation'][contains(., 'ESB.ItineraryServices.WCF')]) > 0」と入力します。
RouteBrokerService モデル要素のリゾルバー コレクションを右クリックし、[新しいリゾルバーの追加] をクリックします。 [ 競合回避モジュール 1 のプロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「ResolverBrokerRoute」と入力します。
リゾルバーの実装 ドロップダウン リストで、MessageContext リゾルバーの拡張 をクリックします。
ツールボックスで、[ コネクタ] をクリックします。 ReceiveNAOrder モデル要素から RouteBrokerService モデル要素に接続をドラッグします。
ツールボックスから、 Itinerary Service モデル要素をデザイン サーフェイスにドラッグし、 RouteBrokerService モデル要素の下に配置します。 [ ItineraryService1 プロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「RouteToFileFromASMX」と入力します。
[ スケジュール サービス エクステンダー ] ドロップダウン リストで、[ メッセージング エクステンダー] をクリックします。
注
このプロパティは、プロセスがパイプライン (メッセージング) で実行されることを定義します。 または、プロセスがオーケストレーションで行われる場合は、 スケジュール サービス エクステンダー プロパティを オーケストレーション エクステンダーに設定します。
[コンテナー] ドロップダウン リストで、[ReceiveNAOrder] を展開し、[受信ハンドラー] をクリックします。
[ サービス名 ] ドロップダウン リストで、[ Microsoft.Practices.ESB.Services.Routing] をクリックします。
RouteToFileFromASMX モデル要素のリゾルバー コレクションを右クリックし、[新しいリゾルバーの追加] をクリックします。 [ 競合回避モジュール 1 のプロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「ResolverFromAsmx」と入力します。
[ リゾルバーの実装 ] ドロップダウン リストで、[ 静的リゾルバー拡張機能] をクリックします。
[ トランスポート名 ] ドロップダウン リストで、[ ファイル] をクリックします。
[ トランスポートの場所 ] プロパティをクリックし、「 c:\howtos\out\asmx%MessageId%.xml」と入力します。
ツールボックスから 、Off-Ramp モデル要素をデザインサーフェイスにドラッグし、 RouteToFileFromASMX モデル要素の右側に配置します。 [OffRamp1 プロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「SendASMXOrder」と入力します。
[ エクステンダー ] ドロップダウン リストで、[ ESB エクステンダーOff-Ramp クリックします。
BizTalk アプリケーションのドロップダウン リストで、[GlobalBank.ESB] をクリックします。
[送信ポート] ドロップダウン リストで、[DynamicResolutionOneWay] をクリックします。
ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグし、 RouteToFileFromASMX モデル要素と SendASMXOrder モデル要素の間に配置します。 [ ItineraryService1 プロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「SendPortFilterASMX」と入力します。
Itinerary Service Extenderのドロップダウン リストで、エクステンダーOff-Rampをクリックします。
Off-Ramp ドロップダウン リストで、SendASMXOrder を展開し、Send Handlers をクリックします。
ツールボックスで、[ コネクタ] をクリックします。 RouteToFileFromASMX モデル要素から SendPortFilterASMX モデル要素に接続をドラッグします。
ツールボックスで、[ コネクタ] をクリックします。 接続を SendPortFilterASMX モデル要素から SendASMXOrder モデル要素にドラッグします。
ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグし、 RouteBrokerService モデル要素の右側に配置します。 [ ItineraryService1 プロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「RouteToFileFromWCF」と入力します。
[ スケジュール サービス エクステンダー ] ドロップダウン リストで、[ メッセージング エクステンダー] をクリックします。
注
このプロパティは、プロセスがパイプライン (メッセージング) で実行されることを定義します。 または、プロセスがオーケストレーションで行われる場合は、 スケジュール サービス エクステンダー プロパティを オーケストレーション エクステンダーに設定します。
[コンテナー] ドロップダウン リストで、[ReceiveNAOrder] を展開し、[受信ハンドラー] をクリックします。
[ サービス名 ] ドロップダウン リストで、[ Microsoft.Practices.ESB.Services.Routing] をクリックします。
RouteToFileFromWCF モデル要素のリゾルバー コレクションを右クリックし、[新しいリゾルバーの追加] をクリックします。 [ 競合回避モジュール 1 のプロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「ResolverFromWCF」と入力します。
[ リゾルバーの実装 ] ドロップダウン リストで、[ 静的リゾルバー拡張機能] をクリックします。
[ トランスポート名 ] ドロップダウン リストで、[ ファイル] をクリックします。
[ トランスポートの場所 ] プロパティをクリックし、「 c:\howtos\out\wcf%MessageId%.xml」と入力します。
ツールボックスから 、Off-Ramp モデル要素をデザインサーフェイスにドラッグし、 RouteToFileFromWCF モデル要素の右側に配置します。 [OffRamp1 プロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「SendWCFOrder」と入力します。
[ エクステンダー ] ドロップダウン リストで、[ ESB エクステンダーOff-Ramp クリックします。
BizTalk アプリケーションのドロップダウン リストで、[GlobalBank.ESB] をクリックします。
[送信ポート] ドロップダウン リストで、[DynamicResolutionOneWay] をクリックします。
ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグし、 RouteToFileFromWCF モデル要素と SendWCFOrder モデル要素の間に配置します。 [ ItineraryService1 プロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「SendPortFilterWCF」と入力します。
Itinerary Service Extenderのドロップダウン リストで、エクステンダーOff-Rampをクリックします。
Off-Ramp ドロップダウン リストで、 SendWCFOrder を展開し、送信ハンドラー をクリックします。
ツールボックスで、[ コネクタ] をクリックします。 RouteToFileFromWCF モデル要素から SendPortFilterWCF モデル要素に接続をドラッグします。
ツールボックスで、[ コネクタ] をクリックします。 接続を SendPortFilterWCF モデル要素から SendWCFOrder モデル要素にドラッグします。
ツールボックスから、RouteBrokerService の右罫線に Itinerary Outport モデル要素をドラッグします。 ItineraryBrokerOutPort1 プロパティ ウィンドウで、次のプロパティを構成します。
[名前] プロパティをクリックし、「WCF ポート」と入力します。
[ フィルター ] ドロップダウン リストで、[ WCFFilter] をクリックします。
[ Resolver ] ドロップダウン リストで、[ ResolverBrokerRoute ] をクリックします。
ツールボックスから、 Itinerary Outport モデル要素を RouteBrokerService の下の境界線にドラッグします。 ItineraryBrokerOutPort1 プロパティ ウィンドウで、次のプロパティを構成します。
[名前] プロパティをクリックし、「ASMX ポート」と入力します。
[ フィルター ] ドロップダウン リストで、[ ASMXFilter] をクリックします。
Resolver ドロップダウン リストで、ResolverBrokerRoute をクリックします。
ツールボックスで、[ コネクタ] をクリックします。 WCF ポート モデル要素から RouteToFileFromWCF モデル要素に接続をドラッグします。
ツールボックスで、[ コネクタ] をクリックします。 ASMX ポート モデル要素から RouteToFileFromASMX モデル要素に接続をドラッグします。
スケジュール テスト クライアントで使用するモデルをエクスポートするには
注
スケジュールを 2 回エクスポートする必要があります。1 回は XML で、1 回はデータベースにエクスポートし、ブローカーを介してルーティングをテストします。
Visual Studio で、 ChoiceRouter スケジュールのデザイン 画面を右クリックし、[ モデルのエクスポート] をクリックします。
注
スケジュールの XML バージョンが Visual Studio で開きます。
Windows エクスプローラーで、[C:\HowTos\Itineraries, and then notice the creation of your itinerary XML (ChoiceRouter.xml] を参照します。
Visual Studio で、 ChoiceRouter スケジュールのデザイン 画面を右クリックし、[ モデルのエクスポート] をクリックします。
[プロパティ] ウィンドウで、[モデル エクスポーター] ドロップダウン リストの [ データベース スケジュールエクスポーター ] をクリックします。
[プロパティ] ウィンドウで、 スケジュール データベース のプロパティ接続文字列をスケジュール データベースを指すように設定します。
[ スケジュールの状態] プロパティのドロップダウン リストで、[ デプロイ済み] を選択します。
Visual Studio で、 ChoiceRouter スケジュールのデザイン 画面を右クリックし、[ モデルのエクスポート] をクリックします。
旅程をテストするには
開発アクティビティの前提条件 (C:\HowTos\ESB.Itinerary.Test.exe - ショートカット) で作成したショートカットを使用して、Itinerary Test Client サンプル アプリケーションを開きます。
スケジュール テスト クライアントで、[ WCF サービスの使用 ] チェック ボックスをオフにし、[ スケジュールの読み込み] をクリックします。
[ スケジュール ファイルを開く ] ダイアログ ボックスで、C:\HowTos\Itineraries に移動します。 ChoiceRouter.xmlを選択し、[開く] をクリックして旅程を読み込みます。
[ OK] を クリックして、[スケジュールが正常に読み込まれました] メッセージを閉じます。
スケジュール テスト クライアントで、[ メッセージの読み込み ] ボックスの横にある省略記号ボタン (...) をクリックします。
[ 読み込む XML ドキュメントの選択 ] ダイアログ ボックスで、C:\Patterns\HowTos を参照します。 NAOrderDoc.xml選択し、[ 開く ] をクリックしてテスト メッセージを読み込みます。
[ 要求の送信] ボタンをクリックします。 テストが完了したら、[ OK] をクリックして、表示される確認メッセージを閉じます。
Windows エクスプローラーで、C:\HowTos\Out. Verify that the ASMX%MessageID%.xml に移動して、このディレクトリにメッセージが書き込まれているか確認します。
[スケジュール テスト クライアント で WCF サービスを使用 する] チェック ボックスをオンにします。 [ スケジュール名 ] ボックスに「 ChoiceRouter」と入力し、[ 要求の送信 ] ボタンをクリックします。 テストが完了したら、[ OK ] をクリックして確認メッセージを閉じます。
Windows エクスプローラーで C:\HowTos\Out. Verify that the WCF%MessageID%.xml ディレクトリに移動し、メッセージがこのディレクトリに書き込まれたことを確認します。
その他のリソース
詳細については、次の関連項目を参照してください。