マイクロソフト ESB...
Transcript of マイクロソフト ESB...
マイクロソフト ESB ガイダンス ~ Microsoft BizTalk Server 2006 R2 での ESB実装 ~
発行 : 2008 年 8 月
摘要
このドキュメントでは、米国マイクロソフト コーポレーションが提供している「Microsoft ESB
Guidance 」を、その検証結果に基づいてご説明しています。内容に関して英語版(原文)と相違がある
場合、原文の内容が優先されます。
<目次>
1. イントロダクション .............................................................................................................................. 1
1.1. エンタープライズ サービス バス(ESB)とは?.............................................................................. 2
1.2. Microsoft ESB ガイダンスの概要 .................................................................................................. 2
1.3. Microsoft ESB ガイダンスの内容 .................................................................................................. 4
1.3.1. ESB Web サービス ................................................................................................................ 5
1.3.2. ESB 管理ポータル ................................................................................................................. 6
1.3.3. ESB パイプライン相互運用コンポーネント .......................................................................... 7
1.3.4. 例外管理フレームワーク ........................................................................................................ 7
1.3.5. ESB リゾルバおよびアダプタプロバイダフレームワーク ...................................................... 8
1.3.6. ESB Itinerary 処理 .................................................................................................................. 9
1.3.7. ESB サンプルアプリケーション ...........................................................................................10
2. Microsoft ESB ガイダンスを開始するにあたって ..............................................................................12
2.1. Microsoft ESB ガイダンスのアーキテクチャ ...............................................................................12
2.1.1. ESB の動作 ...........................................................................................................................13
2.1.2. デザインパターン .................................................................................................................14
2.2. メッセージフローの理解 ..............................................................................................................14
2.2.1. メッセージのライフサイクル ................................................................................................14
2.2.2. メッセージの Itinerary ...........................................................................................................15
2.2.3. 処理命令の詳細 .....................................................................................................................15
3. インストール .......................................................................................................................................17
3.1. 前提条件 ......................................................................................................................................17
3.1.1. OS、アプリケーション .........................................................................................................17
3.1.2. BizTalk Server 2006 R2 ........................................................................................................17
3.1.3. Microsoft UDDI サービス ......................................................................................................18
3.1.4. IBM MQ Series Support ........................................................................................................18
3.1.5. セキュリティ設定 .................................................................................................................19
3.1.5.1. Kerberos認証 ................................................................................................................19
3.1.6. BizTalk セキュリティグループ .............................................................................................19
3.1.7. BizTalk Web サービスのセキュリティ設定 ...........................................................................20
3.1.8. 追加アプリケーションとツール(オプション) ....................................................................20
3.1.9. 旧バージョン ESB ガイダンスのアンインストール ..............................................................20
3.1.10. インストール環境における制限事項 .....................................................................................21
3.2. サービスとコンポーネントのインストール ..................................................................................22
3.2.1. Microsoft ESB ガイダンスソースファイルの解凍 .................................................................22
3.2.2. Microsoft ESB ガイダンスのインストール............................................................................23
3.2.2.1. ソリューションプロジェクトからのインストール .....................................................................23
3.2.2.2. ESBガイダンスコア用 PreProcessingCORE スクリプトの設定 ..........................................30
3.2.2.3. ESB コアによってインストールされるアセンブおよびアーティファクト ....................................31
3.2.3. 構成ファイルの修正 ..............................................................................................................34
3.2.3.1. BizTalk用構成ファイル(BTSNTSvc.exe.config) ..............................................................34
3.2.3.2. .NETFrameworkマシン構成ファイル(machine.config) .....................................................36
3.2.4. 例外管理フレームワークのインストール ..............................................................................38
3.2.4.1. ソリューションプロジェクトからのインストール .....................................................................38
3.2.4.2. 例外管理フレームワーク用 PreProcessingCORE スクリプトの設定 ...................................42
3.2.4.3. 例外管理フレームワークによってインストールされるアセンブリおよびアーティファクト ............43
3.3. 例外管理 InfoPath フォームテンプレートの共有化 .......................................................................45
3.4. Web サービスの SSL 接続設定 .....................................................................................................45
3.5. Microsoft BizTalk ESB ガイダンスアプリケーションの開始 .........................................................45
3.6. VisualStudio2005 ツールボックスへのパイプラインコンポーネント追加 .....................................46
4. サンプルアプリケーション ..................................................................................................................48
4.1. インストール ...............................................................................................................................48
4.1.1. ビジネスルールエンジンポリシー、ボキャブラリの展開 ......................................................48
4.1.2. 動的解決サンプルのインストール .........................................................................................49
4.1.3. 動的解決サンプル用 PreProcessingCORE スクリプトの設定 ................................................52
4.1.4. 動的解決サンプルでインストールされるアセンブリ、アーティファクト ..............................52
4.1.5. リゾルバサービスサンプルのインストール ...........................................................................54
4.1.6. Itinerary オンランプサンプルのインストール ........................................................................54
4.1.7. Itinerary オンランプサンプルでインストールされるアセンブリ、アーティファクト .............55
4.1.8. 例外管理サンプルのインストール .........................................................................................56
4.1.9. 例外管理サンプル用 PreProcessingCORE スクリプトの設定 ................................................58
4.1.10. 例外管理サンプルでインストールされるアセンブリ、アーティファクト ..............................58
4.2. サンプルアプリケーションの実行 ................................................................................................60
4.2.1. リゾルバサービスサンプルの実行 .........................................................................................60
4.2.2. リゾルバサービスサンプル実行時の注意事項........................................................................61
4.2.3. リゾルバサービスサンプル動作仕様 .....................................................................................62
4.2.4. 動的解決サンプルの実行 .......................................................................................................64
4.2.4.1. 一方向のメッセージング ...................................................................................................66
4.2.4.2. 双方向のメッセージング ...................................................................................................67
4.2.5. 動的解決サンプル実行時の注意事項 .....................................................................................75
4.2.6. 動的解決サンプル動作仕様 ...................................................................................................75
4.2.7. Itinerary オンランプサンプルの実行 ......................................................................................78
4.2.7.1. サンプルシナリオ ............................................................................................................79
4.2.7.2. 事前定義 Itineraryユースケースを使用したサンプルの実行 ...............................................85
4.2.7.3. カスタム Itineraryユースケースを使用したサンプルの実行 .................................................87
4.2.8. Itinerary オンランプサンプル実行時の注意事項.....................................................................88
4.2.9. Itinerary オンランプサンプル動作仕様 ..................................................................................88
4.2.10. 例外管理サンプルの実行 .......................................................................................................93
4.2.10.1. “ESB処理への失敗メッセージルーティング“サンプル実行 ..................................................93
5. インストールおよび実行時の留意事項 .................................................................................................96
5.1. ResolverMgr.cs ファイルの文字コード変換エラー .......................................................................96
6. 参考文献 ..............................................................................................................................................97
6.1. Microsoft ESB Guidance (本書の原文、英語) ...............................................................................97
6.2. Microsoft BizTalk Server 2006 R2 製品情報 .................................................................................97
6.3. Microsoft SOA サイト(英語).........................................................................................................97
1. イントロダクション
本ドキュメントは、Microsoft が考えるサービス指向アーキテクチャの中核となる、Microsoft Enterprise
Service Bus(ESB) ガイダンスのアーキテクチャとコンテンツについて説明します(下図参照)。新しいエンドツ
ーエンドのビジネスプロセスに対して柔軟で信頼性が高いサービスの再利用やサービスの迅速な適用を可
能とするために、企業で使用されるアプリケーションにおいてこのガイダンスをどのように使用するかをサン
プルとして示します。
本ドキュメントは、ESB Guidanceに付属しているヘルプファイルの内容を元に構成されています。
また、サンプルアプリケーションの動作検証は下記を対象としています。
・ リゾルバWebサービス
・ 動的解決Webサービス
・ Itinerary オンランプサービス
・ 例外管理フレームワーク
上記以外のWebサービス、JMS 接続および ESB管理ポータル等は概要の解説のみとなりますので、ご了
承ください。
1.1. エンタープライズ サービス バス(ESB)とは?
Enterprise Service Bus(ESB)という言葉は、Service-Oriented Architecture(SOA)を実現するためのインフ
ラとして実装する場面で広く使われています。しかしながら、実際の SOA開発の場面では、ESBは広範囲の
Service-Oriented Infrastructure (SOI)を作り上げる多くの構成要素のうちのひとつでしかありません。ESB
という言葉は多くの異なる方向に意訳され、その定義は個々の ESB実装や統合プラットホームベンダーに依
存しており、また、特定の SOA構想の必須要件に依存しています。
マイクロソフトが収集した実際の SOI実装の成功事例に基づけば、Enterprise Service Bus(ESB)を従来の
Enterprise Application Integration (EAI)、Message-Oriented Middleware(MOM)、 Webサービス、 .NET
と Javaの 相互運用性、ホストシステム統合、サービスレジストリと有用なリポジトリを使用した相互運用性に
基づいたアーキテクチャパターンの集合として捉えることが可能です。
以下の図では、ESBアーキテクチャによって実現できる相互接続の例を示しています。
1.2. Microsoft ESB ガイダンスの概要
Microsoft ESB ガイダンスでは、疎結合のメッセージングアーキテクチャをサポートするために Microsoft
BizTalk Server 2006 R2を使用します。ほとんどの開発者はコード指向や手続き型、オブジェクト指向といっ
た開発パラダイムに慣れ親しんでいます。しかしながら、BizTalk ソリューションでの開発を始めるにあたって
は、BizTalk Serverのメッセージ指向の機能は見落とされがちです。
BizTalk Server はサブスクリプションを作成したり、消費したりすることによって動作する強力なパブリッシュ/
サブスクライブのメカニズムを有しています。新しいメッセージが BizTalk Server のメッセージボックスデータ
ベースに到着すると、メッセージエージェントはサブスクライバを探し、サブスクリプションを持つ何らかのエン
ドポイントにメッセージを送信します。サブスクリプションは受信ポートにオーケストレーションをバインドしたり、
関連付けられたメッセージを待ち受けて受信したり、メッセージのプロパティ(型、受信した場所またはルーテ
ィング可能なプロパティ値等)にマッチするフィルタ条件が設定された送信ポートを作成するなど、いくつかの
方法で設定されます。
これは効果的でスケーラブルなアプローチです。開発者は順序を気にすることなく、一連の別個のサブプロ
セスを作成し、それらを実行するためのトリガとなるメッセージの型を定義することができます。メッセージの
出現によってアクティブ化されたプロセスによってそのメッセージは処理されます。また、該当のメッセージ自
体あるいは他のメッセージをメッセージボックスデータベースに配信し、1つ以上の他のサブプロセスがアクテ
ィブ化されることもあります。
マイクロソフトはWindows Server 2003、.NET Framework 3.0、BizTalk Server 2006 R2を含め、広範囲の
Service-Oriented Infrastructure(SOI)を構築するために必要とされる主要な構成要素を提供します。
Microsoft ESB ガイダンスは、BizTalk Server 2006 R2上に構築されていますが、それは BizTalk Server
2006 R2が以下に示す多くの共通 ESBサービスの基盤を提供しているからです。
メッセージルーティング
メッセージの検証
メッセージの変換
外部と接続するための拡張可能なアダプタフレームワーク
サービスオーケストレーション
ビジネスルールエンジン
ビジネスアクティビティモニタリング
WebサービスとWS-*統合(WCF アダプタ)
Microsoft ESB ガイダンスは、堅固で関連性を保ったサービス指向のアプリケーションを構築することに焦
点を当てた、さまざまな新しい機能を提供するために BizTalk Server 2006 R2の機能を拡張します。以下は、
ESBガイダンスが BizTalk Server 2006 R2を拡張するために提供するいくつかの中核となる機能です。
ポリシー駆動型の仲介
ESB ガイダンスはメッセージの発行時に軽量なサービスコンポジットをサポートする Itinerary ベース
のサービスを呼び出します。Itineraryのメカニズムは、サービスのエンドポイントとその仲介必要な要
件を動的に解決し、レジストリまたはルールエンジンを使ってメッセージをルーティングします。
この手法は開発者が VETO(Validate, Enrich, Transform, Operate) / VETRO(Validate, Enrich,
Transform, Route, Operate )のような疎結合パターンを実装できるようにします。
ESB ガイダンスはリゾルバおよびアダプタプロバイダフレームワークを使用してエンドポイントとマッ
プの動的な解決をサポートします。これによって、動的なエンドポイントの解決と変換に必要な要件
がサポートされ、効率的にサービスからコンシューマが分離されます。
複数のシステムの接続
ESBガイダンスはメッセージの名前空間の正規化を実行できるようにします。
ESBガイダンスは JMS/WMQによる接続を提供します。
ESB ガイダンスは動的なサービスの集約、メッセージルーティング、メッセージ検証、メッセージ変換
を可能とするメッセージングパターンを提供します。
ESB ガイダンスは UDDI とWS-MetadataExchange を使用してサービスレジストリおよび、リポジト
リ統合を組み込みます。
管理と監視
ESBガイダンスは例外の仲介と障害管理を実装します。
ESBガイダンスはメッセージの修復と再送をサポートします。
ESBガイダンスは例外のアラートとサブスクリプションを実装します。
ESBガイダンスは BizTalkのエンドポイントとレジストリの統合、管理、発行を提供します。
ESBガイダンスは例外、警告、レジストレーションのレポートと分析をサポートします。
ESBガイダンスはサンプルの管理Webポータルを含みます。
SOA管理
ESBガイダンスは AmberPoint社や SOA Software社からの BizTalk Server 2006 R2組み込み管
理エージェントを含む、サードパーティの SOA管理ソリューションを統合します。
1.3. Microsoft ESB ガイダンスの内容
Microsoft ESB ガイダンスは、アーキテクチャ的なガイダンス、パターン&プラクティスおよび BizTalk Server
と.NET の一連のコンポーネントによって、マイクロソフトのプラットホームにおける小規模から大規模の
Enterprise Service Bus(ESB)ソリューションの開発を簡略化します。また、開発者が既存のメッセージングソ
リューションや統合ソリューションを拡張するための手助けとなる機能を提供します。
ESB ガイダンスには以下が含まれています。
ESB Webサービス
Microsoft ESB ガイダンスの主要な機能を提供します。
ESB管理ポータル
例外や障害のトラッキング、メッセージの再送、アラートや通知、UDDI 統合、レポートと分析、コンフィ
グレーションなどの機能を提供します。
ESB パイプライン相互運用コンポーネント
BizTalkパイプラインにて使用されます。
例外管理フレームワーク
BizTalk のメッセージングサブシステムやオーケストレーションサブシステムの両方からの例外をキャプ
チャし、障害メッセージを生成します。
ESB リゾルバおよびアダプタプロバイダフレームワーク
エンドポイントと変換に必要な要件を動的に解決し、メッセージをルーティングするための追加可能およ
び構成可能なアーキテクチャを実装します。
Itinerary処理機構
このメカニズムは、複数のサービス呼び出しやルーティング/変換のリクエストをダイナミックに記述し、
登録し、実行するための手軽な能力を提供します。
ESBサンプルアプリケーション
Microsoft ESB ガイダンスの使用方法をサンプルとして示し、Microsoft ESB ガイダンスがどのように
SOAや ESBアプリケーションに利点を提供するかを示します。
1.3.1. ESB Web サービス
Microsoft ESB ガイダンスには以下のWebサービスが含まれています。
ItineraryオンランプWebサービス
これらのWeb サービスは外部のメッセージを受け取り、メッセージを処理するためにサービスに送信し
ます。ESB ItinerarySOAP ヘッダは実行すべきサービス(オーケストレーション)やマップ、ルーティング
すべきエンドポイントが記述されたメタデータおよび処理命令が含まれています。これらのサービスは
SOAPまたはWCF-WSHttp メソッドに対しての、一方向および要求-応答の両方の処理をサポートし
ます。Itinerary オンランプサービスは型指定されたメッセージではなく、あらゆるメッセージの型を受け
取ります。
リゾルバWebサービス
外部のアプリケーションが、ESB エンドポイントを調べるために Microsoft ESB ガイダンスのリゾルバ
フレームワークを呼び出せるようにします。サービスは SOAP やWCF-WSHttpを通じて公開されます。
利用可能な解決メカニズムには以下が含まれます。
ビジネスルールポリシー
UDDIレジストレーション
静的実行
WS-MetadataExchangeインタフェース
メッセージコンテンツ(XPath)
IResolveProviderインタフェースを実装したカスタム.NETコンポーネント
変換Webサービス
メッセージのコンテンツを変換する機能を提供し、ビジネスに必要な要件を満たします。受信メッセージ
に対して直接、または BizTalk メッセージボックスデータベースから取得したメッセージに対して、変換
は実行されます。このサービスは BizTalk のキャッシュライブラリを利用しますが、BizTalk メッセージボ
ックスデータベースに直接メッセージを発行する要求を回避することにより、非BizTalkアプリケーション
が BizTalk マップを実行することを許可します。サービスは SOAPやWCF-WSHttp を通じて公開され
ます。
例外ハンドリングWebサービス
外部ソースからの例外メッセージを受け取り、ESB 例外管理フレームワークに発行します。その後、障
害プロセッサパイプラインが正常化を行い、トラッキングをし、ESB 管理ポータルへ例外メッセージを発
行します。サービスは SOAPやWCF-WSHttpを通じて公開されます。
UDDI Webサービス
アプリケーションやユーザが、サービス名、ビジネスプロバイダ、またはビジネスカテゴリに基づいてエ
ンドポイントを調べられるようにします。また、アプリケーションやユーザが UDDI リポジトリに蓄積され
たビジネスプロバイダ、サービス、カテゴリを操作できるようにします。この機能は ESB管理ポータルお
よびサードパーティプロバイダに利用される主要なインフラストラクチャサービスです。サービスは
SOAPを通じて公開されます。
BizTalk オペレーション Webサービス
BizTalk ホスト、オーケストレーション、アプリケーションおよびステータスについての情報を公開します。
ユーザおよびサードパーティ製品はBizTalkグループ内のコンピュータの場所を気にすることなく、容易
にアプリケーションとホストの状況を問い合わせることができます。問い合わせにはメッセージステータ
スやメッセージフロー、ステータスの更新、現在のサービスインスタンス、メッセージの詳細を含めること
ができます。サービスは受信場所をアップデートすることもできます。この機能は ESB 管理ポータルお
よびサードパーティプロバイダに利用される主要なインフラストラクチャサービスです。サービスは
SOAPを通じて公開されます。
1.3.2. ESB 管理ポータル
Microsoft ESB ガイダンスには、システムの例外およびビジネス的な例外の両方を一貫してハンドリングす
る広範囲のWebベースの例外および障害メッセージ管理フレームワークが含まれています。これはポータル
アプリケーションが ESB アクティビティの中でどのように指標と可視性を提供できるのかをサンプルとして示
します。
ESB 管理ポータルは例外の仲介機能を監査とトラッキングメカニズムを通じて提供します。また、例外が発
生した時点で”in flight (処理中)”であったメッセージ(コンテキストプロパティを含む)をキャプチャします。これ
は、強力な例外リカバリと”修復と再送”パターンを可能とします。
管理者やユーザが容易に ESB アプリケーションを管理できるように、ポータルはカスタムの条件に基づいて、
警告を生成し、サブスクライバに通知することができる警告と通知のメカニズムの提供もします。
アプリケーションのパフォーマンスを監視したり、障害の傾向を分析したりするために、ポータルは特定の期
間において構成可能で、BizTalk 内で実行されている特定のアプリケーションからのデータを含むさまざまな
チャートやレポートを生成して表示することができます。
最後に、ポータルは、UDDIに BizTalkエンドポイントを発行するための GUI を提供するために、自動的また
は管理者に制御された承認プロセスを通じてかのいずれかにより、UDDIサーバを統合します。
1.3.3. ESB パイプライン相互運用コンポーネント
Microsoft ESB ガイダンスは以下のサポートコンポーネントおよびサービスを提供します。
JMSパイプラインコンポーネント
IBM JMS over MQシリーズメッセージングシステムで使用される JMS MQRFH2標準に適合したメタ
データおよびメッセージコンテンツを認識し、検証し、公開します。Microsoft ESB ガイダンスのアプリ
ケーションがMQシリーズ上の JMSシステムとのメッセージの送受信をできるようにします。コンポーネ
ントは自動的にメッセージコンテンツにヘッダ情報を付加したり、メッセージコンテンツからヘッダ情報を
除去したりします。
名前空間パイプラインコンポーネント
メッセージコンテンツ内の名前空間を付与したり削除したりします。アプリケーションが矛盾した名前空
間を修復したり、メッセージボックスデータベースやアプリケーションのオーケストレーション内で名前空
間の衝突を避けるために、不足している名前空間を追加したりできるようにします。また、BizTalkがメッ
セージを、公開している外部システムを変更することなく POX(Plain Old XML)を処理できるようにしま
す。
1.3.4. 例外管理フレームワーク
ESB例外管理フレームワークは、BizTalk環境の中で起こりうる全ての例外を管理するために、統合されたメ
ッセージ指向の障害生成のメカニズムを提供します。ESB 例外管理フレームワークは BizTalk の失敗メッセ
ージのルーティングメカニズムに加えて、例外ハンドリングサービスを通じて発行された例外メッセージを受
け取ることができます。
フレームワークの API は、失敗メッセージの生成とパブリッシュ、オーケストレーションからの管理、
BizTalk2006 で導入された機能である失敗メッセージルーティングのリプリケートをサポートしています。加え
て、フレームワークは全ての例外を正常化、情報の付加、BAM トラッキングの適用、ESB 管理ポータルで表
示し、レポートを行うための例外管理データベースへの最終的なアウトプットの発行を行う機能を提供しま
す。
Microsoft ESB ガイダンスには ESB例外管理フレームワークをサポートする以下のパイプラインコンポーネ
ントが含まれています。
例外プロセッサパイプラインコンポーネント
BizTalkの失敗メッセージルーティングメカニズムに加えて、Microsoft ESB ガイダンスが生成した障害
メッセージをサブスクライブし、ESB 管理ポータルまたは特定の場所に障害メッセージをルーティングし
ます。また、全ての失敗したメッセージと例外にメタデータを元に情報を付加し、共通のフォーマットに正
常化します。
BAM トラッキングパイプラインコンポーネント
BizTalkのBAMサブシステム内に割り込んで、例外情報を記録します。このコンポーネントは例外管理
フレームワーク内で例外プロセッサパイプラインコンポーネントによって排他的に使用されます。例外情
報のトラッキング機能のオプションとして BAM を使用してデモンストレーションするサンプルを提供しま
す。
1.3.5. ESB リゾルバおよびアダプタプロバイダフレームワーク
リゾルバおよびアダプタプロバイダフレームワークはサービスエンドポイントメタデータおよびこのエンドポイン
トからメッセージスキーマの変換を行うための BizTalkマップの動的な紐付けを解決するための、包括的でプ
ラグイン可能なアーキテクチャを提供します。拡張可能なコンポーネントを使用して開発者が必要要件に応じ
た振る舞いを変更できるようにし、代替の解決方法やルーティング方法をサポートするメカニズムを拡張しま
す。
リゾルバおよびアダプタプロバイダフレームワークは、
UDDI や BRE(Business Rule Engine) 、 XPATH などのさまざまな他のメカニズムに加えて、
WS-MetadataExchange のサポートを提供します。また、開発者にインタフェース(IResolveProvider および
IAdapterProvider)を提供して、カスタムのリゾルバおよびアダプタコンポーネントを作成できるようにします。
以下はリゾルバおよびアダプタプロバイダフレームワークの 3つの主要コンポーネントです。
リゾルバ
これらはスキーマや接続文字列、.NET アセンブリ内の IResolveProvider インタフェース実装を通じて
定義されます。これらは実行時にロードおよびキャッシュされ、さまざまな解決の種類や接続文字列を
サポートします。Microsoft ESB ガイダンスで提供するリゾルバは以下の解決メカニズムをサポートし
ます。
BRE
エンドポイントの情報やメタデータを解決するためにビジネスルールエンジンポリシーを実行す
る。
WSMEX
エンドポイントの情報をWS-MetadataExchangeが可能なサービスに問い合わせる。
UDDI
エンドポイントの情報やメタデータを UDDI2.0 または UDDI3.0 準拠のレジストリに問い合わせ
る。
XPATH
XPATH式を使用してメッセージコンテンツ内のエンドポイントの情報を問い合わせる。
STATIC
接続文字列や SOAPヘッダ内に BizTalkエンドポイントの情報を指定する。
アダプタプロバイダ
.NETアセンブリ内の IAdapterProviderインタフェース実装を通じて定義されます。これらは BizTalkの
トランスポートの種類に準拠して登録され、リゾルバによって提供されるエンドポイントの情報を対応し
たBizTalkアダプタに設定します。Microsoft ESB ガイダンスで提供するアダプタプロバイダは以下のト
ランスポートの種類をサポートしています。
FTP
FILE
MQ シリーズ
WCF-WSHttp
WCF-BasicHttp
ディスパッチャーパイプラインコンポーネント
接続文字列や ESB ItinerarySOAP ヘッダから指示内容を解析し、リゾルバおよびアダプタプロバイダ
フレームワークを使用してエンドポイント解決機能や変換実行機能を提供します。コンポーネントは、接
続文字列や ESB ItinerarySOAPヘッダの指示内容に基づいて、動的に BizTalkのエンドポイントプロ
パティを設定し、BizTalkのマップによる変換を実行します。コンポーネントは Itineraryにまたがるプロセ
スやサービスの境界を管理、更新、永続化する責務を担います。オプションの逆アセンブルコンポーネ
ントは、ネイティブのBizTalkメッセージ解析を提供し、オーケストレーションサービスを必要とすることな
く、複数のエンドポイントへルーティングするMicrosoft ESB ガイダンスの機能を実装します。
1.3.6. ESB Itinerary 処理
Itinerary 処理サービスは、ItineraryWeb サービスやディスパッチャーパイプラインコンポーネントや Itinerary
処理とキャッシュパイプラインコンポーネントを通じて実装され、軽量で動的なサービス実行機能を提供しま
す。また、Itinerary オンランプ Web サービスを通じて送信されたメッセージの事前に定義された SOAP ヘッ
ダ内の公開メタデータを使用します。メタデータはオーケストレーションサービスを定義したり、変換要求や
BizTalkが実行すべきルーティング手続きを処理したりすることを可能とします。
Itineraryサービスは、ステート管理、正しいサービスへのメッセージの転送および手続きが完了した Itinerary
を先に進める責務を担います。Itinerary サービスは、コアの BizTalk サーバエンジンから処理命令を効率的
に分離します。
Itinerary サービスは、メッセージの SOAP ヘッダに定義され、Itinerary オンランプ Web サービスを通じて
BizTalk エンジンを通過したオーケストレーションや変換、ルーティング処理をサポートします。Itinerary サー
ビスにはルーティングや変換を処理し、適切なサービスにメッセージを配信する責務を担ういくつかの汎用プ
ロセスが含まれます。
Microsoft ESB ガイダンスは Itinerary処理をサポートする以下のパイプラインコンポーネントを提供します。
Itinerary処理とキャッシュパイプラインコンポーネント
これらは ItineraryオンランプWebサービスを通じて送信された全てのメッセージに対してメッセージ前
処理と検証を提供します。さらにキャッシングコンポーネントが要求と応答の動的送信ポートに対する”
スマート”なキャッシュ機能を提供することにより、Itineraryを管理します。
1.3.7. ESB サンプルアプリケーション
開発者は Microsoft ESB ガイダンスが提供する機能群を行使した一連の一般的な ESB のユースケース、
サンプルシナリオ、テストアプリケーションの動作を確認しながら、理解を深めることができます。
また、開発者は多くのMicrosoft ESB ガイダンスのサンプルコンポーネントを配置したり、スタンドアロンの構
成要素としてモジュール構成を使用してビルドすることもできます。これは ESB の開発者に、特定の SOI の
必要要件に適合するために標準の参考実装をカスタマイズ/拡張する柔軟性を提供します。
サンプルアプリケーションには以下が含まれます。
修復/再送カスタム例外ハンドラ
このサンプルでは、ユーザが失敗したメッセージ処理を確認し、メッセージを編集し、処理に再送できる
ようにするカスタムの例外ハンドラをデモンストレーションします。厳密に型指定された例外ハンドラとそ
うでない例外ハンドラの両方の例を含んでいます。
メッセージ永続化カスタム例外ハンドラ
このサンプルでは、失敗したメッセージをディスクファイルに蓄積し、InfoPath のテンプレートにレンダリ
ングするためにシリアル化するカスタム例外ハンドラをデモンストレーションします。
BizTalk失敗メッセージルーティングの ESB処理
このサンプルでは、BizTalk アプリケーションのどこかのステージで発生した例外をキャプチャするため
の ESBの機能をデモンストレーションします。
Itineraryオンランプ
このサンプルでは、Microsoft ESB ガイダンスの ItineraryオンランプWebサービスへのメッセージの
送信をデモンストレーションします。サンプルはさまざまなサービスにディスクライブされる 13 個の事前
に定義された Itineraryを一方向と双方向の両方のメッセージングパターンで配信します。
JMS MQRFH2コンポーネント
このサンプルでは、IBM MQシリーズのシステムとMicrosoft ESB ガイダンスアプリケーションの統合
をデモンストレーションします。このサンプルは、どのようにJMSメッセージを受信し、BizTalkでどうやっ
て JMS ヘッダにアクセス/編集するか、どのように MQ シリーズにメッセージを送り返すかをデモンスト
レーションします。
名前空間コンポーネント
このサンプルでは、メッセージに対する名前空間の追加および削除をデモンストレーションします。この
サンプルは名前空間を削除したり、デザイン時にさまざまな入力パラメータを設定することによって受
信ドキュメントに対して動的に名前空間を付加したりするためのさまざまなテクニックをデモンストレーシ
ョンする 4つの異なるユースケースを実装します。
変換サービス
このサンプルでは、メッセージボックスデータベースにメッセージを永続化することなく、外部のアプリケ
ーションが BizTalkで配置されたマップを使用した変換をするために ESBにドキュメントを送信できるよ
うにします。このサンプルをインストールすると、サンプルが使用するマップが配置されます。
動的解決
このサンプルでは、さまざまな解決方法を使用して、送信先やマップを解決し、メッセージを対応するタ
ーゲットにルーティングします。このサンプルでは、一方向および双方向(要求-応答)の単純なメッセ
ージングシナリオにおいて、配信パイプラインを通じたリゾルバおよびアダプタプロバイダフレームワー
クの使用方法をデモンストレーションします。このサンプルはさまざまな解決/変換オプションをデモンス
トレーションする 17個のユースケースを実装します。
BizTalkオペレーション
このサンプルでは、BizTalk オペレーション Web サービスにアクセスして、BizTalk 環境や現在インスト
ールされているアプリケーションおよび、他の BizTalk の処理結果の情報を抽出します。また、BizTalk
オーケストレーションを通過したメッセージや、BizTalk メッセージボックスデータベースからのメッセージ
を検索します。
リゾルバサービス
このサンプルでは、BizTalk マップやエンドポイントをどのように解決するかをデモンストレーションする
ために、リゾルバ Web サービスのメソッドを実行します。アプリケーションにおいてどのようにリゾルバ
Webサービスを使用するかが示されます。
UDDIサービス
このサンプルでは、蓄積されているレジストレーション上の情報を抽出したり、新しいレジストレーション
を発行したりするために、UDDI Webサービスを通じて現在構成されている UDDIサーバにアクセスし
ます。サンプルでは、UDDI Web サービスで利用可能な多様なメソッドの全てをデモンストレーションし
ています。
Scatter-Gather (分解-集約)
このサンプルでは、複数のWebサービス要求やマップを動的に解決して実行したり、それら全てのレス
ポンスを集約したり、Itinerary で定義されたほかのエンドポイントにレスポンスを転送したりする要求を
サービスに送信するために、どのように ESB Itineraryを適用するかを説明します。
2. Microsoft ESB ガイダンスを開始するにあたって
このセクションでは、ESBを実現するソリューションを構築するために使用できるMicrosoft Enterprise Service
Bus(ESB)のサービス、コンポーネントのデザイン、運用のコンセプトについて説明します。
2.1. Microsoft ESB ガイダンスのアーキテクチャ
Microsoft ESB ガイダンスは、疎結合のメッセージング環境をサポート/実装する一連の相互運用コンポーネ
ントで構成されています。一連の相互運用コンポーネントは、メッセージベースのエンタープライズアプリケー
ションを容易に構築できるようにしています。サービスやコンポーネントは必然的に以下の 6つのカテゴリに分
類されます。
Webサービス
内部のサービス(Itinerary 処理、例外管理、エンドポイントやマップの解決、BizTalk オペレーション、
UDDI相互運用、メッセージコンテンツの変換など)を公開します。
Itineraryサービス
変換やメッセージの配信を実行するエージェントが含まれます。Itinerary 処理に参加するカスタムサー
ビスを作成することができます。
Itineraryオンランプ
SOAPまたはWindows Communication Foundation (WCF)のどちらかを使用して、外部のメッセージ
を受信します。オンランプは、ItinerarySOAPヘッダを公開し、Itinerary処理を実行します。エンドポイン
トとメタデータの動的解決をするために Microsoft ESB ガイダンスのリゾルバおよびアダプタプロバイ
ダフレームワークが使用されます。
オンランプ
HTTP、JMS、WMQ、FTP、フラットファイル、XMLなどのさまざまなフォーマットおよびトランスポートの
種類で外部のメッセージを受信します。これらのトランスポートの種類は、エンドポイントとメタデータの
動的解決をするためにオプションとして Microsoft ESB ガイダンスの相互運用パイプラインコンポーネ
ントやリゾルバおよびアダプタプロバイダフレームワークを使用する、典型的な BizTalk受信場所です。
オフランプ
SOAP、WCF、JMS、WMQ、FTP、HTTP、フラットファイル、XML または他のカスタムフォーマットなど
のフォーマットおよびトランスポートの種類を使用したメッセージの配信のための送信ポートを実装しま
す。これらのトランスポートの種類は、エンドポイントとメタデータの動的解決をするために、オプションと
して Microsoft ESB ガイダンスの相互運用パイプラインコンポーネントやリゾルバおよびアダプタプロ
バイダフレームワークを使用する典型的な BizTalk送信ポートです。
例外管理フレームワーク
例外Web サービス、例外管理 API や例外に情報を付加し、処理して、ESB管理ポータルに受け渡す
コンポーネントが含まれます。
ESB管理ポータル
レジストリの提供機能、例外の仲介機能、警告通知機能、分析機能を提供します。
これらのコンポーネントやサービスの多くは、オーケストレーション、変換、ビジネスルールエンジン、メッセー
ジボックスデータベースなどの BizTalk Server 2006 R2の機能に依存しています。下記の図はカテゴリの概
略、各々のカテゴリ内で典型的に使用されるコンポーネントやサービス、およびMicrosoft ESB ガイダンスに
よって使用されるコアの BizTalkシステムコンポーネントを示しています。
2.1.1. ESB の動作
Microsoft ESB ガイダンスは、受信メッセージを受け付け、変換や配信、または他のカスタム定義された処
理などを実行することによって、メッセージを操作します。必要な操作を特定するために、コアの処理コンポー
ネントは関連した命令を含むメッセージあるいは適用すべき処理と実行すべきタスクが定義されたメッセージ
コンテンツ内のメタデータを必要とします。
このアプローチは、サービス間の結合度を弱める働きをし、ESB が各々のメッセージに対する特定の処理を
事前に知る必要がないことを意味します。当然、実行時には、実行可能な処理が何であるか、各処理をどの
ように適用するかを知らなくてはなりません。メッセージ内の処理命令や利用可能な処理や処理間でのマッ
ピングを特定するための、多岐にわたるさまざまなオプションは、コードの変更やコンポーネントの再配置を
することなく、振る舞いを構成して調整するための柔軟なメカニズムを提供します。
2.1.2. デザインパターン
ESB が使用するアーキテクチャは、プロセスがメッセージボックスデータベースにメッセージを投入し、メッセ
ージ内の処理命令に基づいてサブスクライバが処理する場合に、効率的にステートマシンデザインパターン
を実装します。加えて、ESBはサービス指向の作法で実装され、コア機能を一連のコアWebサービスを通じ
て、外部のアプリケーションに公開します。
この BizTalk と ESB ベースのアプリケーションをデザインしている疎結合アプローチは、ハイスケーラブルな
ソリューションをもたらし、業界に受け入れられるベストプラクティスになります。
2.2. メッセージフローの理解
このセクションでは、Microsoft ESB ガイダンスのドキュメントで説明されている ESB環境において、メッセー
ジがどのように流れるかについて説明します。全体的なメッセージフローについて論じ、メッセージに対する処
理を決定する ESB ItinerarySOAPヘッダの詳細な説明を提供します。
2.2.1. メッセージのライフサイクル
ESB の外側で発生し、他のサービスに配信するために BizTalk を通過するメッセージの典型的なライフサイ
クルは以下の通りです。
1. ItineraryWebサービスオンランプがメッセージを受信します。
2. パイプラインコンポーネントがコンポーネントプロパティの値または ItinerarySOAPヘッダに含まれるメタ
データを使用して、メッセージのコンテキストプロパティを設定します。
3. ESBは BizTalk メッセージボックスデータベースにメッセージを配信します。
4. メッセージの ESB メタデータコンテキストプロパティに基づいて、サブスクライバはメッセージをピックアッ
プします。サブスクライバは以下のいずれかとなります。
仲介者(オーケストレーションなど)
ガイダンスで提供されるオフランプ
また、上記の代わりに以下のようなライフサイクルのパターンも可能です。
1. BizTalkオーケストレーション内でコンポーネントがメッセージを生成します。
2. コンポーネントはメッセージ内に ESB メタデータコンテキストプロパティを設定します。
3. ESBはメッセージボックスデータベースへ直接バインドされたポートを通じて、メッセージを配信します。
2.2.2. メッセージの Itinerary
Microsoft ESB ガイダンスの主要機能のひとつは、エンタープライズレベルのメッセージングアプリケーショ
ンの開発を単純化し、BizTalk の機能を拡張し、大量の静的な送信ポートや他のエンドポイントのメンテナン
スのオーバーヘッドの管理を低減する Itineraryサービス(Itineraryオンランプ)の提供です。
ESB Itineraryサービスは関連した ItinerarySOAPヘッダを含むメッセージを受け付けます。このヘッダには、
メッセージに対して実行すべきサービスのリストとこれらの各サービスのエンドポイントを解決するのに必要
なメタデータが含まれています。例えば、ひとつのサービスがカスタムの”ルーティング”サービスであるとしま
す。それに関連した指示内容がサービスに対して、UDDI や WS-MetadataExchange、Business Rules
Engine (BRE)などから、メッセージがルーティングされるべきエンドポイントについての情報を検索するよう
に指示をするかもしれません。
実行すべきサービスのリスト(ルーティング、変換、カスタムメッセージング、またはオーケストレーションの全
体を含む)に加えて、関連付けられた解決命令がメッセージに対する Itineraryを定義します。Itineraryサービ
スを利用することにより、クライアントは管理上の入力やルーティングの詳細や送信ポートを事前に設定する
ことなく、実行すべきサービス(Itineraryの手順)、実行順序、解決方法を特定することができます。
Itinerary サービスは ESB の動的解決のメカニズムと直接変換を使用することによって、動的なルーティング
をサポートします。
Itineraryサービスはメッセージを受信すると、Itinerary手順を抽出、検証し、Itinerary情報とともにメッセージ
のコンテキストプロパティを付加します。その後、サービス、メッセージング、パイプライン、オーケストレーショ
ン、BizTalkアプリケーション内のコードはメッセージコンテキストに格納された Itineraryにアクセスし、現在の
ステップの詳細を取得し、Itinerary を次のステップに進めます。こうすることにより、Itinerary の中で定義され
た次のサービスにメッセージの処理をさせます。
2.2.3. 処理命令の詳細
Microsoft ESB ガイダンスは ItineraryWebサービスオンランプを通じて送信されたメッセージに以下の昇格
されたプロパティをセットします。System-Properties.xsdという名前のスキーマが ItineraryAPIによって適用
されるこれらのプロパティを定義しています。
ItineraryHeader
このプロパティには全ての Itinerary 情報と Itinerary ステップの順序を通じて実行されるべき Itinerary
サービスのリストが含まれます。ItineraryAPIがこのプロパティを内部で利用します。
ServiceName
このプロパティには、処理すべき現在の Itineraryの名前が含まれます。
ServiceState
このプロパティには、現在の Itinerary サービスの状況を含み、「Pending」、「Complete」、「Active」の
いずれかとなります。全てのサービスはServiceStateが「Pending」である Itineraryステップをサブスク
ライブします。
ServiceType
このプロパティは、Itineraryステップの種類(Messagingまたは Orchestration)を定義します。
IsRequestResponse
このプロパティは、メッセージングの種類(一方向または要求-応答)を定義します。
Itineraryサービスは ServiceTypeプロパティの値によって、2つの異なる方法で Itineraryステップの実行を
実現します。
ServiceType プロパティが「Messaging」である場合、Microsoft ESB ガイダンスが提供する Itinerary
パイプラインコンポーネントは Itinerary のステップを実行します。開発者は、カスタムパイプラインと
ItineraryAPIを使用して処理を拡張することができます。
ServiceTypeプロパティが「Orchestration」である場合、Itineraryコンテキストプロパティのサブスクリプ
ションを通じてアクティブ化されたオーケストレーションが Itineraryのステップを実行します。
Itinerary サービスが Itinerary のステップを処理する際、サービスは、BizTalk のパブリッシュ-サブスクライブ
機能を使用して、後続の処理に新しい Itinerary コンテキストを付加して、Itinerary を先に進めることおよび、
メッセージを配信する責務を担います。Itineraryサービスは、メッセージ内の Itineraryの完全な制御を行い、
内部ロジックとメッセージコンテンツに基づいて適切なステップに進めることができます。
Itinerary処理メカニズムは、単一の Itineraryの中でメッセージング、オーケストレーションの両方の Itinerary
ステップの作成をサポートします。開発者は、カスタムの Itineraryサービスを定義したり、カスタムの Itinerary
ステップを構成したりすることも可能です。
3. インストール
3.1. 前提条件
3.1.1. OS、アプリケーション
ESB ガイダンスをインストールするマシンに事前にインストールしておく必要があるソフトウェアは以下のと
おりです。
製品名 備考
Microsoft Windows Server 2003 Service Pack 2
Microsoft .NET Framework 3.0
Hot fix KB923028 参考 URL:http://support.microsoft.com/kb/923028
インターネットインフォメーションサービス (IIS) 6.0 Web サービスおよび ESB 管理ポータルで使用
SQL Server 2005 Service Pack 2
(Database Service、Analysis Services、Integration
Services)
または
SQL Server Service Pack 3 以降
(Database Service、Data Transformation Service)
Visual Studio 2005 Service Pack 1 C# および
C++(JMS pipeline component で使用)
InfoPath 2003 または InfoPath 2007 ESB 例外管理フレームワークによる
例外情報の詳細表示で使用
Enterprise Library 3.1 ESB 管理ポータルを使用する場合のみ
3.1.2. BizTalk Server 2006 R2
ESB ガイダンスはBizTalk Server 2006 R2に統合されます。BizTalk Serverの最小要件および追加で必要
となる機能は以下のとおりです。
製品名、機能名 備考
Microsoft BizTalk Server 2006 R2
Business Activity Monitoring (BAM) BAM ツール構成時に
「BAM 集計用に AnalysysService を有効する」を
チェックして集計用 DB を作成すること。
BizTalk MQ Series Adapter Microsoft ESB Guidance JMS component または
MQSeries を使ったサンプルアプリケーションを
実行する場合のみ
Hotfix KB944532(または KB943871) BizTalk Error Reporting の新しいプロパティ追加
に対応。
※2008/6 時点では、日本語版 BizTalkServer に対
応した Hotfix は未リリース
http://support.microsoft.com/kb/944532/ja
3.1.3. Microsoft UDDI サービス
UDDIシステムを使用する場合は、「Windowsコンポーネントの追加/削除」からMicrosoft UDDIサービス
をインストールする必要があります。
注:
.NETFramework 2.0 上で UDDI 管理サイトを動作させる場合は、下記ソースコードにおける
「TreeNode」クラスの参照を「UDDI.Web.TreeNode」クラスに変更します。
<任意のディレクトリ>¥UDDI¥webroot¥admin¥explore.aspx
<任意のディレクトリ>¥UDDI¥webroot¥edit¥explore.aspx
【修正例】
TreeNode nodeCoordinate = tree.Nodes.Add( ……
↓下記に修正
UDDI.Web.TreeNode nodeCoordinate = tree.Nodes.Add(……
注:
UDDIサービスを使用するサンプルアプリケーションは、非SSLで接続する設定となっています。サンプル
アプリケーションの設定を変更せずにUDDIサービスを使用する場合は、UDDIサービスのインストール時
に【SSL を必要としない】を選択してください。または、インストール後に UDDI のサービスコンソールを使
用して SSLを必要としない設定に変更してください。
3.1.4. IBM MQ Series Support
MQ Series メッセージング機能をサポートし、JMS を使用したサンプルアプリケーションを実行する場合は、
BizTalk Serverインストール前に下記製品をインストールする必要があります。
既に BizTalk Serverをインストール済の場合は、再度インストール作業を行い、MQ Seriesアダプターをイン
ストールします。
製品名、機能名 備考
IBM WebSphere MQ 5.3 with CSD12
または
WebSphere MQ 6.x Business Integration platform
IBM "RfhUtil" JMS テストユーティリティ 入手 URL:
http://www-1.ibm.com/support/docview.wss
?rs=0&q1=RFHutil&uid=swg24000637&loc=
en_US&cs=utf-8&cc=us&lang=en
3.1.5. セキュリティ設定
3.1.5.1. Kerberos認証
ダブルホップの場合には、ESB ガイダンスに含まれるESBWebサービスや管理ポータルは、サーバ間通信
におけるセキュリティを確保するために、Kerberos認証をサポートする必要があります。
下記記事を参考に IISにおいて Kerberos認証を有効化します。
ネットワーク認証に Kerberos プロトコルと NTLM プロトコルの両方をサポートするように IIS を構成する
方法:
http://support.microsoft.com/kb/215383/ja
ドメインに属するマシンの場合は、下記の設定も行ってください。
・ドメイン コントローラ以外のコンピュータの IIS で Kerberos 認証を有効にする方法:
http://support.microsoft.com/kb/326089
・ドメイン コントローラで委任を有効にする方法:
http://technet2.microsoft.com/windowsserver/en/library/b207ee9c-a055-43f7-b9be-20599b694a3
11033.mspx?mfr=true
・SQL ServerのKerberos認証への参加を可能にするために、SQL ServerサービスがLOCAL SYSTEM
または NETWORK SERVICEアカウントで実行されていることを確認します。
・SQL Server 2005 のインスタンスへのリモート接続を作成するときに、Kerberos 認証を使用しているこ
とを確認する方法:
http://support.microsoft.com/kb/909801
3.1.6. BizTalk セキュリティグループ
ESB ガイダンスのリゾルバWebサービス、UDDIサービスおよび管理ポータルは、セキュリティアクセスをコ
ントロールするためにBizTalk Application UsersグループとBizTalk Server Administratorsグループを使用
します。BizTalk Server Administratorsグループの認証されたユーザーのみが BizTalkの管理作業を行えま
す。
3.1.7. BizTalk Web サービスのセキュリティ設定
BizTalkのオペレーションWebサービスは、BizTalk Message Box データベースや BizTalk Management
データベースに直接クエリを発行して登録/更新作業を行います。そのため、BTS_HOST_USERS データ
ベースロールに以下のテーブルのアクセス権利を SQLマネジメントスタジオで付与する必要があります。
・BizTalk Management データベース
テーブル名 権利
adm_hostInstance SELECT
adm_Server2HostMapping SELECT
・BizTalk MessageBox データベース
テーブル名 権利
ProcessHeartbeat SELECT
3.1.8. 追加アプリケーションとツール(オプション)
以下のアプリケーション、ツールのインストールはオプションですが、ESB ガイダンスを使用する上で有効な
ツールです。
製品名、機能名 備考
Excel2003 または Exce2007 BAM トラッキングスレッドシートの編集のみで使用
Windows Sysinternals DebugView 入手 URL:
http://www.microsoft.com/technet/sysinternals/Mis
cellaneous/DebugView.mspx
3.1.9. 旧バージョン ESB ガイダンスのアンインストール
下記の手順で旧バージョンの ESB ガイダンスをアンインストールします。
・BizTalkServer管理コンソールから下記アプリケーションを削除
Microsoft.Practices.ESB、GlobalBank.ESB
・下記コマンドを実行してイベントソースを削除
InstallUtil /u "Microsoft.Practices.ESB.EventSource.dll"
・グローバルアセンブリキャッシュからアセンブリをアンイントール
Microsoft.Practices.ESB.* 、GlobalBank.ESB.*
・Microsoft.Practices.ESB.*パイプラインコンポーネントを削除
%Program Files%¥Microsoft BizTalk Server 2006¥Pipeline Components
・IISの仮想ディレクトリを削除
ESB.*
・IISのアプリケーションプールを削除
ESB.*
・ESB ガイダンスコンポーネント、ビジネスルールエンジンを削除
ポリシー名
CanadaSubmitOrderMaps GetCanadaPurchaseEndPoint
ResolveEndPointScatterGather ResolveMapScatterGather
GetCanadaEndPoint ResolveEndPoint
ResolveMap DynamicRunTimeDocSpecs
ボキャブラリ名
DynamicRunTimeEndPoints DynamicRunTimeServiceActions
DynamicRunTimeMaptypes ESB.ContextInfo
ESB.EndPointInfo ESB.TransformInfo
ESB.TransportTypes
・UDDIビジネスプロバイダの削除
Microsoft.Practices.ESB、Microsoft.Biztalk.ESB.UDDI
注:
Microsoft UDDI サーバーを使用している場合は、UDDI サービスのホームページ(既定は
http://localhost/uddi/default.aspx)の「発行」リンクをクリックして表示されたページにおいて、インストー
ルされているプロバイダを削除してください。
・UDDIレジストリの削除(tModel)
microsoft-com:esb:runtimeresolution
注:
Microsoft UDDI サーバーを使用している場合は、UDDI サービスのホームページ(既定は
http://localhost/uddi/default.aspx)の「発行」リンクをクリックして表示されたページにおいて、インストー
ルされている tModelを削除してください。
3.1.10. インストール環境における制限事項
・ESBSource.zipを解凍して生成される Keyおよび Soureフォルダを下記フォルダに展開すること。
C:¥Projects¥Microsoft.Practices.ESB
※サンプルアプリケーションのバインド情報ファイルの設定は上記フォルダで設定されています
・適当なアクセス権限を持った既定の BizTalkセキュリティグループが存在すること。
・既定の BizTalkServerホストが存在すること。
3.2. サービスとコンポーネントのインストール
3.2.1. Microsoft ESB ガイダンスソースファイルの解凍
Microsoft ESB ガイダンスは、BizTalk Server上で ESBを実行するために必要なコンポーネントやソース全
てを含んでいます。この配布パッケージは zip ファイルの為、サーバ上で解凍する必要があります。ESB
Guidance.msiは、Microsoft ESB ガイダンスの主なサブシステムのWindows Installer (*.msi)ファイルや、
厳密名署名されたバイナリと同様に、ソースコードの zip ファイルもインストールします。デフォルトでは、
C:¥Program Files¥Microsoft ESB Guidance 1.0 - November 2007 というフォルダにインストールされま
す。
Microsoft ESB ガイダンスソースファイルのインストール手順は以下の通りです。
① 「ESB Guidance.msi」ファイルをダブルクリックします。
② すべてデフォルト値まま、「Next」をクリックし、インストールを完了します。
③ デフォルトのインストールディレクトリに移動します。
④ zip解凍ツールで構造が際限できるかどうかを確認します。ESBGuidance.msiによってインストールされる
主なファイル及び、フォルダは以下の通りです。
・ Binフォルダ
・ ESBSource.zip
・ Readme.htm
・ GettingStarted.htm
・ KnownIssues.htm
・ Microsoft.Practices.ESB.CORE.msi
・ Microsoft.Practices.ESB.CORE_NOBINDING.msi
・ Microsoft.Practices.ESB.ExceptionHandling.msi
・ Microsoft.Practices.ESB.ExceptionHandling_NOBINDING.msi
・ Microsoft.Practices.ESB.JMS.msi
・ Microsoft.Practices.ESB.JMS_NOBINDING.msi
・ GlobalBank.ESB.Policies.msi
⑤ zip ファイルに含まれる長いパスやファイル名が原因のエラーを避けるために、ESBSource.zip ファイルを
ハードディスクの C:¥Tempのような短い名前のフォルダにコピーします。
⑥ Cドライブ直下に Projectsというフォルダを作成し、そのフォルダ内にMicrosoft.Practices.ESBというサブ
フォルダを作成します。
⑦ ESBSource.zipファイルを、C:¥Projects¥Microsoft.Practices.ESBフォルダに解凍します。これによって、
サンプルキー、ソースファイル、サンプルを含む Keys及び Source というフォルダが作成されます。
注:
ESB Guidance.msi によってインストールされるリリースバージョンのコアアセンブリではなく、
VisualStudioのMicrosoft.Practices.ESB ソリューションプロジェクトをビルドしたコアアセンブリをイン
ストールする場合は、ビルドして生成された DLLを全て Bin フォルダにコピーするか、サンプルアプリケー
ションのソリューションプロジェクトにおける DLL参照先を変更してください。
またその場合は、各サンプルアプリケーションも VisualStudio のソリューションプロジェクトを使用しソー
スコードをビルドしてインストール方法で統一してください。これは、各サンプルアプリケーションがコアアセ
ンブリの公開キートークンを指定する形式で参照するためです。
リリースアセンブリのキートークン:31bf3856ad364e35
ビルドアセンブリのキートークン:c2c8b2b87f54180a
3.2.2. Microsoft ESB ガイダンスのインストール
3.2.2.1. ソリューションプロジェクトからのインストール
このセクションでは、Microsoft ESB ガイダンス のソースコードを提供するソリューションプロジェクトを使用
した Microsoft ESB ガイダンス コアアセンブリ、パイプラインコンポーネントのインストール手順を記載して
います。
注:
ESB ガイダンスのコアの一部分としてインストールされる例外管理フレームワークは、出力される失敗メ
ッセージを、EsbExceptionDbというSQL Server Exception Management Databaseの適切なフォーマッ
トに変換するために、ESB 配信パイプラインコンポーネントを使用します。したがって、以下の手順で示す
ように、Exception データベースを構築し、設定しなければなりません。例外管理フレームワークは、例外
情報をデータベースに挿入するために SQL Adapter を利用し、All.Exceptions というポートへ送信しま
す。
① インストールした Sourceフォルダから、Microsoft.Practices.ESB.slnを Visual Studio 2005で開きます。
② Visual Studio 2005のソリューションエクスプローラから、以下のプロジェクトのプロパティページ(コンテキ
ストメニューからプロパティを選択)を開き、左側のツリーの構成プロパティから「展開」を選択します。「グロ
ーバルアセンブリキャッシュにインストール」、「ホストインスタンスを再起動します」、「再展開」の各プロパ
ティにTrueを設定します。また、SQL Server及び、BizTalkMgmtDbデータベースにアクセスするための適
切なサーバ名、構成データベース名が指定されていることを確認します。(下図参照)
・ ¥Core¥Orchestrations¥ESB.Agents
・ ¥Core¥Pipelines¥ESB.Itinerary.Pipelines
・ ¥Core¥Schemas¥ESB.Itinerary.Schemas
・ ¥Core¥Schemas¥ESB.Resolver.Schemas
・ ¥Exception Handling¥Maps¥ESB.ExceptionHandling.Maps
・ ¥Exception Handling¥Pipelines¥ESB.ExceptionHandling.Pipelines
・ ¥Exception Handling¥Schemas¥ESB.ExceptionHandling.Schemas.Faults
・ ¥Exception Handling¥Schemas¥ESB.ExceptionHandling.Schemas.Reporting
③ ソリューションを保存し、Visual Studio 2005を終了します。
④ SQL Server Management Studio(または同等の SQL Server management tool)を開き、exception
databaseをインストールする SQL Serverに接続します。
¥Source¥Exception Handling¥SQL¥ESB.ExceptionHandling.Database¥Create Scripts フォルダから、
EsbExceptionDb_CREATE.sqlを開き、「実行」ボタンをクリックしてEsbExceptionDbデータベースを作成し
ます。スクリプトでは、以下のセキュリティロールも作成されます。
・ ESBPortal
・ ESBPortalAdmin
⑤ SQL Server Management Studioにおいて、オブジェクトエクスプローラ>セキュリティ>ログインと展開し、
[domain]¥BizTalk Application Users グループを選択して、プロパティを開きます。「ユーザー マッピン
グ」タブにおいて、「このログインにマップされたユーザー」で「EsbExceptionDb」をチェックし、
「EsbExceptionDb のデータベースロールメンバシップ」で「ESBPortal」がチェックされていることを確認し
ます。この設定により、データベース内全てのストアドプロシージャを実行する権利をアカウントに与えます。
このステップを、[domain]¥BizTalk Server Administrators グループにも行います。「EsbExceptionDbの
データベース ロール メンバシップ」では「ESBPortalAdmin」がチェックされていることを確認します。
⑥ Windows エクスプローラで、¥Source¥Core¥Install¥Scripts フォルダを開き、テキストエディタで
PreProcessingCORE.vbs を開きます。このスクリプトを実行する前に、必要に応じてこのファイルの先頭
で宣言される変数(ユーザー名やパスワードなど)を編集してください。これらの変数及び、デフォルト値は、
「ESB ガイダンスコア用 PreProcessingCORE スクリプトの設定」を参照してください。ファイルを編集後、
スクリプトをダブルクリックして実行してください。
このスクリプトでは、以下のタスクを実行します。
・ 「BizTalk Isolated Host Users」グループに新しいユーザアカウント「BTSISOSVC」を作成
・ 以下のローカル、ドメイングループに作成したユーザアカウントを追加
グループ名
[ローカルマシン名] ¥IIS_WPG
[ローカルマシン名] ¥STS_WPG
[ドメイン名] ¥BizTalk Isolated Host Users
・ 新しいユーザアカウント、「BizTalk Application Users」グループに以下フォルダへのアクセス許可を設定
フォルダ名
¥Windows¥Temp
Key フォルダ、Source フォルダをインストールしたフォルダ
(既定では、C:¥Projects¥Microsoft.Practices.ESB)
※「BizTalk Application Users」グループの許可のみ設定
・ 以下の IISアプリケーション プールを作成
アプリケーションプール名
ESBAppPool
ESBWcfAppPool
ESBNetworkAppPool
注:
ESBAppPool 及び、ESBWcfAppPool のセキュリティアカウントは、作成したアカウントを使用します。
ESBNetworkAppPoolのセキュリティアカウントは、NETWORK SERVICEアカウントを使用します。
・ 以下の Web サービスフォルダのための仮想ディレクトリを作成し、作成したアプリケーションプール配下で
動作するように設定します
Web サービス名(アプリケーションプール名)
¥Services¥ESB.ExceptionHandlingServices (ESBAppPool)
¥Services¥ESB.ExceptionHandlingServices.WCF (ESBWcfAppPool)
¥Services¥ESB.ItineraryServices (ESBAppPool)
¥Services¥ESB.ItineraryServices.WCF (ESBWcfAppPool)
¥Services¥ESB.ItineraryServices.Response (ESBAppPool)
¥Services¥ESB.ItineraryServices.Response.WCF (ESBWcfAppPool)
¥Services¥ESB.ResolverServices (ESBNetworkAppPool)
¥Services¥ESB.ResolverServices.WCF (ESBNetworkAppPool)
¥Services¥ESB.TransformServices (ESBAppPool)
¥Services¥ESB.TransformServices.WCF (ESBWcfAppPool)
¥Services¥ESB.BizTalkOperationsService (ESBNetworkAppPool)
¥Services¥ESB.UDDIService (ESBNetworkAppPool)
注:
BizTalk Serverグループに ESB ガイダンスをインストールした場合、スクリプトがフォルダへのアクセス許
可を設定するときに、例外が発生する可能性があります。スクリプト完了後、BizTalk Isolated Host Users
ドメインに、手動でユーザアカウントを割り当て、許可の設定をする必要があります。
また、ローカルマシンの BizTalk Serverグループに、ESB ガイダンスをインストールし、かつローカルマシ
ンがドメインの一部の場合、スクリプトがアクセス許可を設定する時に、例外が発生する可能性がありま
す。この場合、PreProcessingCORE.vbsの、strUserDomain=objNetwork.UserDomainを
strUserDomain=objNetwork.ComputerNameに編集し、スクリプトを再度実行してください。
⑦ Windowsエクスプローラで、¥Source¥Core¥Install¥Scriptsフォルダを開き、1.Install_Prerequisites.cmd
を実行して、3つのフォルダ(UDDI Publisher, Rules Deployment, Event Source)を含む Utilitiesフォル
ダ作成します。このインストールは、適切なフォルダに Rules Deployment ユーティリティをコピーし、必須
の UDDI エントリーや、イベントソース(Microsoft.Practices.ESB.EventSource.dll)をインストールします。
このスクリプトは、以下のタスクを実行します。
・ サンプルプロジェクトのためのローカル UDDIサーバに UDDIエントリーを作成します。
・ 「microsoft-com:esb:runtimeresolution」カテゴリースキーマには以下のキーが含まれています。
キー
TransportType
JaxRpcResponse
TransportLocation
EndPointConfig
MessageExchangePattern
Action
CacheTimeOut
TransformType
BizTalkApplication
TargetNamespace
PortName
・ 「Microsoft.Practices.ESB」ビジネスプロバイダに発行されるサービス
サービス名 キー
OrderFileService Category Key = TransportType ; Value = FILE
Category Key = TransportLocation ; Value =
C:¥Projects¥Microsoft.Practices.ESB¥Source¥Samples¥DynamicResolution¥
Test¥Filedrop¥OUt¥%MessageID%.xml
Category Key = MessageExchangePattern; Value = One-Way
Category Key = CacheTimeOut; Value = -1
OrderFileServiceWBin
dings
TransportType://FILE
TransportLocation://C:¥Projects¥Microsoft.Practices.ESB¥Source¥Samples¥D
ynamicResolution¥Test¥Filedrop¥OUt¥%MessageID%.xml
MessageExchangePattern://One-Way
CacheTimeOut://-1
サービス名 キー
OrderMQSService Category Key = TransportType ; Value = MQS
Category Key = TransportLocation ; Value =
MQS://localhost/ESB.DEP.Sample.QueueManager/TEST.OUT/%MessageID
%.xml
Category Key = MessageExchangePattern; Value = One-Way
Category Key = CacheTimeOut; Value = -1
OrderMQSServiceWBi
ndings
TransportType://MQS
TransportLocation://MQS://localhost/ESB.DEP.Sample.QueueManager/TEST.
OUT/%MessageID%.xml
MessageExchangePattern://One-Way
CacheTimeOut://-1
OrderFTPService Category Key = TransportType ; Value = FTP
Category Key = TransportLocation ; Value =
FTP://localhost/out/%MessageID%.xml
Category Key = MessageExchangePattern; Value = One-Way
Category Key = CacheTimeOut; Value = -1
OrderFTPServiceWBin
dings
TransportType://FTP
TransportLocation://FTP://localhost/out/%MessageID%.xml
MessageExchangePattern://One-Way
CacheTimeOut://-1
PurchaseOrderSubmit
OrderService
Category Key = TransportType ; Value = WCF-BasicHttp
Category Key = TransportLocation ; Value =
http://localhost/ESB.CanadianServices/SubmitPOService.asmx
Category Key = TargetNamespace; Value =
http://globalbank.esb.dynamicresolution.com/canadianservices
Category Key = MessageExchangePattern; Value = Two-Way
Category Key = JaxRpcResponse; Value =false
Category Key = Action; Value = submitOrder
Category Key = CacheTimeOut; Value = -1
PurchaseOrderSubmit
OrderServiceWBinding
s
TransportType://WCF-BasicHttp
TransportLocation://http://localhost/ESB.CanadianServices/SubmitPOService.
asmx
TargetNamespace://
http://globalbank.esb.dynamicresolution.com/canadianservices
MessageExchangePattern://Two-Way
JaxRpcResponse://false
サービス名 キー
Action://submitOrder
CacheTimeOut://-1
PurchaseOrderService Category Key = TransportLocation ; Value =
http://localhost/ESB.CanadianServices/SubmitPOService.asmx
Category Key = TargetNamespace; Value =
http://globalbank.esb.dynamicresolution.com/canadianservices
⑧ Windowsエクスプローラで、¥Source¥Core¥Install¥Scripts フォルダを開き、1.CORE_CreateBizTalkAp
plication.cmd コマンドファイルを実行して、コアアセンブリを配置し、BizTalk 内に新しいアプリケーションを
作成します。このスクリプトは、以下のタスクを実行します。
・ ソースフォルダから、Microsoft.Practices.ESB.slnをリビルドします。
・ GACUTIL ユーティリティを実行し、Microsoft ESB ガイダンスコアアセンブリをグローバルアセンブリキャ
ッシュに登録します。
・ Microsoft ESB ガイダンスパイプラインコンポーネントを規定の BizTalk パイプラインコンポーネントディレ
クトリ(%Program Files%¥Microsoft BizTalk Server 2006¥Pipeline Components)にコピーします。
・ 「Microsoft.Practices.ESB」BizTalk アプリケーションに Microsoft.Practices.ESB.sln を Source フォルダ
から配置します。
・ 「Microsoft.Practices.ESB」BizTalk アプリケーションに Microsoft.Practices.ESB.CORE_Bindings.xml
バインド情報ファイルをインポートします。
・ ビジネスルールエンジンボキャブラリーを配置します。
・ BAM監視モデルを配置します。
注:
コマンドファイルにおけるソースコードのビルドで、文字コード変換エラーが原因でコンパイルエラーが発生
する場合があります。詳細については、「5.1.ResolverMgr.cs ファイルの文字コード変換エラー」を参照し
てください。
⑨ BiztTalkServer 管理コンソールにおいて、「All.Exceptions」送信ポートにおける SQLAdapter の DB 接続
先を、EsbExceptionDbデータベースを作成したサーバーに変更します。
⑩ Microsoft ESB ガイダンス コアソリューションのインストールが成功した場合または、アプリケーションを
実行して問題が発生した場合は、「ESB コアによってインストールされたアセンブおよびアーティファクト」で
インストールされたアセンブリを確認してください。
3.2.2.2. ESBガイダンスコア用 PreProcessingCORE スクリプトの設定
以下の表は、ESB ガイダンスコアアセンブリ、パイプラインコンポーネント及びヘルパークラスをインストール
する PreProcessingCORE.vbsスクリプトの設定内容とデフォルト値の一覧です。
設定値 説明
strUser="BTSISOSVC" スクリプトが作成する仮想ディレクトリに設定する
IISアプリケーションプール(既定は
「ESBAppPool」及び「ESBWcfAppPool」)のサービ
スアカウント。
このアカウントはマシンレベルまたはドメインレベル
において「BizTalk Isolated Host Users」グループ
のメンバである必要があります。
このユーザーが存在しない場合に、ユーザーを作
成し前述のグループのメンバに追加します。
strPwd="pass@word1" BizTalkサービスアカウントのパスワード。
strGroup="BizTalk Isolated Host Users" BizTalkアカウントグループ名。
strGroupIISWPG="IIS_WPG" IISサービスアカウントグループ名。
strGroupBTSAppUsers="BizTalk Application
Users"
BizTalkアプリケーションユーザーグループ名。
strBTSESBPath="C:¥Projects¥Microsoft.Practic
es.ESB"
ESB ガイダンスのソースコードのインストールディ
レクトリパス。
strAppPool="ESBAppPool" 仮想ディレクトリに設定する IISアプリケーション
プール。BizTalk が生成する SOAP ベース Web サ
ービスに使用されます。
strWcfAppPool="ESBWcfAppPool" 仮想ディレクトリに設定する IISアプリケーション
プール。BizTalk が生成する WCF ベース Web サー
ビスに使用されます。
strNetworkAppPool="ESBNetworkAppPool" 仮想ディレクトリに設定する IISアプリケーション
プール。Microsoft ESB ガイダンス Web サービス
及び、ESB マネージメントポータル(統合セキュ
リティまたは、Kerberos 認証に必要)に使用され
ます。
3.2.2.3. ESBコアによってインストールされるアセンブおよびアーティファクト
以下の表は、ESB コアによってインストールされたアセンブリ及び、アーティファクトの一覧です。
場所 カテゴリー 名前
「Practices.ESB」
BizTalk アプリケーシ
ョン
オーケストレーシ
ョン
Microsoft.Practices.ESB.Agents.Delivery
Microsoft.Practices.ESB.Agents.Transform
送信ポート Microsoft.Practices.ESB.Agents_1.0.0.0_Microsoft.Practi
ces.ESB.Agents.Delivery_DeliveryPort_c2c8b2b87f5418
0a
ALL.Exceptions
受信ポート ExceptionHandling.SubmitFault
OnRamp.Itinerary
OnRamp.Itinerary.Response
受信場所 ExceptionHandling.SubmitFault.WCF
ExceptionHandling.SubmitFault.SOAP
OnRamp.Itinerary.WCF
OnRamp.Itinerary.SOAP
OnRamp.Itinerary.Response.WCF
OnRamp.Itinerary.Response.SOAP
スキーマ Microsoft.Practices.ESB.Schemas.Resolvers.UDDIResol
ution
Microsoft.Practices.ESB.Schemas.Resolvers.WSMEXRe
solution
Microsoft.Practices.ESB.Schemas.Resolvers.XPATHRes
olution
Microsoft.Practices.ESB.Schemas.Resolvers.BREResolu
tion
Microsoft.Practices.ESB.Schemas.Resolvers.ContextRe
solution
Microsoft.Practices.ESB.Schemas.Resolvers.STATICRe
solution
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Pr
operty.System_Properties
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Fa
ults.FaultMessage
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Re
porting.FaultMessage
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Re
porting.ExceptionSql
場所 カテゴリー 名前
Microsoft.Practices.ESB.Itinerary.Schemas.System_Prop
erties
Microsoft.Practices.ESB.Itinerary.Schemas.Itinerary
パイプライン Microsoft.Practices.ESB.ExceptionHandling.Pipelines.ES
BFaultProcessor
Microsoft.Practices.ESB.Itinerary.Pipelines.ItineraryRece
ive
Microsoft.Practices.ESB.Itinerary.Pipelines.ItineraryRece
ivePassthrough
Microsoft.Practices.ESB.Itinerary.Pipelines.ItineraryRece
iveXml
Microsoft.Practices.ESB.Itinerary.Pipelines.ItinerarySend
Microsoft.Practices.ESB.Itinerary.Pipelines.ItinerarySend
Passthrough
Microsoft.Practices.ESB.Itinerary.Pipelines.ItinerarySend
Receive
リソース Microsoft.Practices.ESB.Agents
Microsoft.Practices.ESB.Resolver.Schemas
Microsoft.Practices.ESB.ExceptionHandling.Pipelines
Microsoft.Practices.ESB.ExceptionHandling.Schemas.
Faults
Microsoft.Practices.ESB.ExceptionHandling.Schemas.
Reporting
Microsoft.Practices.ESB.ExceptionHandling.Maps
Microsoft.Practices.ESB.Itinerary.Pipelines
Microsoft.Practices.ESB.Itinerary.Schemas
マップ Microsoft.Practices.ESB.ExceptionHandling.Maps.Fault
Message_to_ExceptionSql
ポリシー (none)
ボキャブラリ ESB.ContextInfo
ESB.EndPointInfo.xml
ESB.TransformInfo.xml
ESB.TransportTypes.xml
グローバルアセンブリ
キャッシュ(GAC)
アセンブリ Microsoft.Practices.ESB.Agents
Microsoft.Practices.ESB.Transform
Microsoft.Practices.ESB.Resolver.Schemas
Microsoft.Practices.ESB.ExceptionHandling.Pipelines
場所 カテゴリー 名前
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Fa
ults
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Re
porting
Microsoft.Practices.ESB.ExceptionHandling.Maps
Microsoft.Practices.ESB.ExceptionHandling
Microsoft.Practices.ESB.BizTalkOperations
Microsoft.Practices.ESB.Cache
Microsoft.Practices.ESB.Exception.Management
Microsoft.Practices.ESB.GlobalPropertyContext
Microsoft.Practices.ESB.Itinerary
Microsoft.Practices.ESB.Itinerary.Pipelines
Microsoft.Practices.ESB.Itinerary.Schemas
Microsoft.Practices.ESB.Adapter
Microsoft.Practices.ESB.Resolver
Microsoft.Practices.ESB.Adapter.FILE
Microsoft.Practices.ESB.Adapter.FTP
Microsoft.Practices.ESB.Adapter.MQSeries
Microsoft.Practices.ESB.Adapter.WcfBasicHttp
Microsoft.Practices.ESB.Adapter.WcfWSHttp
Microsoft.Practices.ESB.Resolver.BRE
Microsoft.Practices.ESB.Resolver.STATIC
Microsoft.Practices.ESB.Resolver.UDDI
Microsoft.Practices.ESB.Resolver.WSMEX
Microsoft.Practices.ESB.Resolver.XPATH
Microsoft.Practices.ESB.UDDI
Microsoft.Practices.ESB.ServiceModel.Helpers
%Program
Files%¥Microsoft
BizTalk Server
2006¥Pipeline
Components
パイプラインコン
ポーネント
Microsoft.Practices.ESB.ExceptionHandling.PipelineCom
ponents.dll
Microsoft.Practices.ESB.Namespace.PipelineComponent
s.dll
Microsoft.Practices.ESB.Itinerary.PipelineComponents.dl
l
Microsoft.Practices.ESB.PipelineComponents.dll
既定の Web サイト 仮想ディレクトリ ESB.BizTalkOperationsService
場所 カテゴリー 名前
ESB.ExceptionHandlingServices
ESB.ExceptionHandlingServices.WCF
ESB.ItineraryServices
ESB.ItineraryServices.Response
ESB.ItineraryServices.Response.WCF
ESB.ItineraryServices.WCF
ESB.ResolverServices
ESB.ResolverServices.WCF
ESB.TransformServices
ESB.TransformServices.WCF
ESB.UDDIService
3.2.3. 構成ファイルの修正
ESB ガイダンスは、動的にエンドポイントおよび変換を解決するために、また外部のアダプタのプロパティを
設定するために、リゾルバおよびアダプタフレームワークを使用します。
Microsoft.Practices.ESB.Context.PipelineComponents.config ファイルは、リゾルバおよびアダプタフレー
ムワークの詳細設定を含んでおり、ESB ガイダンスのインストール後に2つの構成ファイルを修正する必要
があります。
3.2.3.1. BizTalk用構成ファイル(BTSNTSvc.exe.config)
BizTalk 用構成ファイル(%ProgramFiles%¥Microsoft BizTalk Server 2006¥BTSNTSvc.exe.config)は
Microsoft.Practices.ESB.PipelineComponents.config ファイルを参照する必要があります。
¥Source¥Core¥Configフォルダに、修正後の構成ファイルのサンプルが格納されています。
① 以下のセクションを BTSNTSvc.exe.config の<configuration>開始タグの直後に追加してください。
<configSections>
<section name="xlangs"
type="Microsoft.XLANGs.BizTalk.CrossProcess.XmlSerializationConfigurationSectionHandler,
Microsoft.XLANGs.BizTalk.CrossProcess" />
</configSections>
② 以下のセクションを BTSNTSvc.exe.config の</configuration>終了タグの直前に追加してください。
構成ファイルのディレクトリを表す[PATH]部分は、ローカルの環境に合わせて修正してください。
ソースコードをビルドしてインストールした場合は
C:¥Projects¥Microsoft.Practices.ESB¥Source¥Core¥Config、
msi ファイルを使用してリリースバージョンをインストールした場合は
C:¥Program Files¥Generated by BizTalk¥Microsoft.Practices.ESB¥Configが既定となります。
③ ファイルを保存して閉じます。
④ BizTalkServer サービスを再起動してください。この設定により、「Microsoft.Practices.ESB」分離アプリケ
ーションドメインが作成され、Microsoft.Practices.ESB.PipelineComponents.config ファイルおよび
Microsoft.Practices.ESB.*アセンブリの参照が可能となります。
<xlangs>
<Configuration>
<AppDomains AssembliesPerDomain="10">
<DefaultSpec SecondsIdleBeforeShutdown="1200" SecondsEmptyBeforeShutdown="1800"/>
<AppDomainSpecs>
<AppDomainSpec Name="Microsoft.Practices.ESB">
<BaseSetup>
<ConfigurationFile>[path]¥Microsoft.Practices.ESB.PipelineComponents.config</Configuration
File>
</BaseSetup>
</AppDomainSpec>
</AppDomainSpecs>
<PatternAssignmentRules>
<PatternAssignmentRule
AssemblyNamePattern="Microsoft.Practices.ESB.*"
AppDomainName="Microsoft.Practices.ESB" />
</PatternAssignmentRules>
</AppDomains>
</Configuration>
</xlangs>
3.2.3.2. .NETFrameworkマシン構成ファイル(machine.config)
.NETFrameworkマシン構成ファイル(%WinDir%¥Microsoft.NET¥Framework¥v2.0.50727¥CONFIG¥
machine.config)は、Microsoft.Practices.ESB.PipelineComponents.config ファイルのコンテンツを含む必
要があります。
¥Source¥Core¥Configフォルダに、修正後の構成ファイルのサンプルが格納されています。
① 以下のセクションをmachine.config の<configSections>開始タグの直後に追加してください。
<sectionGroup name="ESBProcessor">
<section name="Resolver"
type="System.Configuration.DictionarySectionHandler,
System,Version=2.0.0.0,Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
<section name="AdapterProvider"
type="System.Configuration.DictionarySectionHandler,
System,Version=2.0.0.0,Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
<section name="ItineraryCache"
type="System.Configuration.DictionarySectionHandler,
System,Version=2.0.0.0,Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
<section name="Cache"
type="System.Configuration.DictionarySectionHandler,
System,Version=2.0.0.0,Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
</sectionGroup>
② 以下のセクションをmachine.config の</configuration>終了タグの直前に追加してください。
リリースバージョンの ESB ガイダンスコアアセンブリをインストールした場合は、下記設定における
PublicKeyTokenに”31bf3856ad364e35”を設定してください。
<ESBProcessor>
<Resolver>
<add key="UDDI"
value="Microsoft.Practices.ESB.Resolver.UDDI, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c2c8b2b87f54180a" />
<add key="WSMEX"
value="Microsoft.Practices.ESB.Resolver.WSMEX, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c2c8b2b87f54180a" />
<add key="XPATH"
value="Microsoft.Practices.ESB.Resolver.XPATH, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c2c8b2b87f54180a" />
<add key="STATIC"
value="Microsoft.Practices.ESB.Resolver.STATIC, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c2c8b2b87f54180a" />
<add key="BRE"
value="Microsoft.Practices.ESB.Resolver.BRE, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c2c8b2b87f54180a" />
</Resolver>
<AdapterProvider>
<add key="WCF-WSHttp"
value="Microsoft.Practices.ESB.Adapter.WcfWSHttp, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c2c8b2b87f54180a" />
<add key="WCF-BasicHttp"
value="Microsoft.Practices.ESB.Adapter.WcfBasicHttp, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c2c8b2b87f54180a" />
<add key="FTP"
value="Microsoft.Practices.ESB.Adapter.FTP, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c2c8b2b87f54180a" />
<add key="FILE"
value="Microsoft.Practices.ESB.Adapter.FILE, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c2c8b2b87f54180a" />
<add key="MQSeries"
value="Microsoft.Practices.ESB.Adapter.MQSeries, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c2c8b2b87f54180a" />
</AdapterProvider>
<ItineraryCache>
<add key="timeout" value="120" />
</ItineraryCache>
<Cache>
<add key="UDDI" value="600" />
<add key="WSMEX" value="600" />
</Cache>
</ESBProcessor>
3.2.4. 例外管理フレームワークのインストール
このセクションでは、ESB ガイダンスコアソリューションから独立している ESB 例外管理フレームワークのア
ーティファクトを「Microsoft.Practices.ESB」BizTalkアプリケーションにインストールします。
注:
既定では、ESB ガイダンスコアソリューションは例外管理フレームワークのインストール、設定も自動で行
います。ESB ガイダンスコアソリューションがインストール済の場合は、このセクションの手順は不要で
す。ESB ガイダンスコアソリューションとは独立して例外管理フレームワークをインストールする場合は、
このセクションを実行してください。
3.2.4.1. ソリューションプロジェクトからのインストール
例外管理フレームワークは、下記の ESB ガイダンスコアのプロジェクトに依存しています。
・ Microsoft.Practices.ESB.GlobalPropertyContext (¥Source¥Core¥Source¥ESB.GlobalPropertyContext)
・ Microsoft.Practices. ESB.Exception.Management ( ¥Source¥Core¥Source¥ESB.Exception.Management)
・ Microsoft.Practices.ESB.Adapter (¥Source¥Core¥Source¥ESB.Adapter)
・ Microsoft.Practices.ESB.Itinerary (¥Source¥Core¥Source¥ESB.Itinerary)
・ Microsoft.Practices.ESB.Itinerary.Schemas (¥Source¥Core¥Source¥ESB.Itinerary.Schemas)
・ Microsoft.Practices.ESB.PipelineComponents (¥Source¥Core¥Source¥ESB.PipelineComponents)
・ Microsoft.Practices.ESB.Resolver (¥Source¥Core¥Source¥ESB.Resolver)
・ Microsoft.Practices.ESB.Transform (¥Source¥Core¥Source¥ESB.Transform)
注:
例外管理フレームワークの「All.Exceptions」送信ポートは、「EsbExceptionDb」例外管理データベースへ
の INSERTクエリに適した形式に失敗メッセージを変換するために、ESB配信パイプラインコンポーネント
を使用します。よって、インストール時に次の手順に示すようなプロジェクトのビルド、BizTalk パイプライン
コンポーネントフォルダへのアセンブリのコピー、例外管理データベースの設定を行う必要があります。
① SQL Server Management Studio(または同等の SQL Server management tool)を開き、exception
databaseをインストールする SQL Serverに接続します。
¥Source¥Exception Handling¥SQL¥ESB.ExceptionHandling.Database¥Create Scriptsフォルダから、
EsbExceptionDb_CREATE.sql を開き、「実行」ボタンをクリックして EsbExceptionDbを作成します。スク
リプトでは、以下のセキュリティロールも作成されます。
・ ESBPortal
・ ESBPortalAdmin
② SQL Server Management Studioにおいて、オブジェクトエクスプローラ>セキュリティ>ログインと展開し、
[domain]¥BizTalk Application Users グループを選択して、プロパティを開きます。「ユーザー マッピン
グ」タブにおいて、「このログインにマップされたユーザー」で「EsbExceptionDb」をチェックし、
「EsbExceptionDb のデータベースロールメンバシップ」で「ESBPortal」がチェックされていることを確認し
ます。この設定により、データベース内全てのストアドプロシージャを実行する権利をアカウントに与えます。
このステップを、[domain]¥BizTalk Server Administrators グループにも行います。「EsbExceptionDbの
データベースロールメンバシップ」では「ESBPortalAdmin」がチェックされていることを確認します。
③ Visual Studio 2005で¥Source¥Exception Handling¥ Microsoft.Practices.ESB.ExceptionHandling.sln
ファイルを開きます。
④ Visual Studio 2005のソリューションエクスプローラから、以下のプロジェクトのプロパティページ(コンテキ
ストメニュからプロパティを選択)を開き、左側のツリーの構成プロパティから「展開」を選択します。「グロー
バルアセンブリキャッシュにインストール」、「ホストインスタンスを再起動します」、「再展開」の各プロパティ
に Trueを設定します。また、SQL Server及び、BizTalkMgmtDbデータベースにアクセスするための適切
なサーバ名、構成データベース名が指定されていることを確認します。(下図参照)
・ ¥ Exception Handling¥Maps ¥ESB.ExceptionHandling.Maps
・ ¥ Exception Handling¥Pipelines ¥ESB.ExceptionHandling.Pipelines
・ ¥ Exception Handling¥Schemas ESB.ExceptionHandling.Schemas.Faults
・ ¥Exception Handling¥Schemas ¥ESB.ExceptionHandling.Schemas.Reporting
⑤ ソリューションを保存し、Visual Studio 2005を終了します。
⑥ Windowsエクスプローラで、¥Source¥Exception Handling¥Install¥Scriptsフォルダを開き、テキストエデ
ィタで PreProcessingCORE.vbsを開きます。このスクリプトを実行する前に、必要に応じてこのファイルの
先頭で宣言される変数(ユーザー名やパスワードなど)を編集してください。これらの変数及び、デフォルト
値は、「例外管理フレームワーク用 PreProcessingCORE スクリプトの設定」を参照してください。ファイル
を編集後、スクリプトをダブルクリックして実行してください。
このスクリプトでは、以下のタスクを実行します。
・ 「BizTalk Isolated Host Users」グループに新しいユーザアカウント「BTSISOSVC」を作成。
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、ユーザーは作成済です。
・ 以下のローカル、ドメイングループに作成したユーザアカウントを追加
グループ名
[ローカルマシン名] ¥IIS_WPG
[ローカルマシン名] ¥STS_WPG
[ドメイン名] ¥BizTalk Isolated Host Users
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、上記内容は設定済です。
・ 新しいユーザアカウント、「BizTalk Application Users」グループに以下フォルダへのアクセス許可を設定
フォルダ名
¥Windows¥Temp
Key フォルダ、Source フォルダをインストールしたフォルダ
(既定では、C:¥Projects¥Microsoft.Practices.ESB)
※「BizTalk Application Users」グループの許可のみ設定
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、上記内容は設定済です。
・ 以下の IISアプリケーション プールを作成
アプリケーションプール名
ESBAppPool
ESBWcfAppPool
ESBNetworkAppPool
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、上記は作成済です。
ESBAppPool 及び、ESBWcfAppPool のセキュリティアカウントは、作成したアカウントを使用します。
ESBNetworkAppPoolのセキュリティアカウントは、NETWORK SERVICEアカウントを使用します。
・ 以下の Web サービスフォルダのための仮想ディレクトリを作成し、作成したアプリケーションプール配下で
動作するように設定します
Web サービス名(アプリケーションプール名)
¥Services¥ESB.ExceptionHandlingServices (ESBAppPool)
¥Services¥ESB.ExceptionHandlingServices.WCF (ESBWcfAppPool)
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、上記は作成済です。
BizTalk Serverグループに ESB ガイダンスをインストールした場合、スクリプトがフォルダへのアクセス許
可を設定するときに、例外が発生する可能性があります。スクリプト完了後、BizTalk Isolated Host Users
ドメインに、手動でユーザアカウントを割り当て、許可の設定をする必要があります。
また、ローカルマシンの BizTalk Serverグループに、ESB ガイダンスをインストールし、かつローカルマシ
ンのドメインの一部の場合、スクリプトがアクセス許可を設定する時に、例外が発生する可能性がありま
す。この場合、PreProcessingCORE.vbsの、strUserDomain=objNetwork.UserDomainを
strUserDomain=objNetwork.ComputerNameに編集し、スクリプトを再度実行してください。
⑦ Windowsエクスプローラで、Source¥Exception Handling¥Install¥Scriptsフォルダを開き、1.CreateBizT
alkApplication.cmdを実行して、ESB例外管理フレームワークアセンブリを配置し、「Microsoft.Practices.
ESB」BizTalkアプリケーションを作成します。このスクリプトは、以下のタスクを実行します。
・ ソースフォルダにある、Microsoft.Practices.ESB.ExceptionHandling.slnをリビルドします。
・ GACUTIL ユーティリティを実行し、ESB 例外管理フレームワークアセンブリをグローバルアセンブリキャッ
シュに登録します。
・ ESB例外管理フレームワークパイプラインコンポーネントを規定の BizTalkパイプラインコンポーネントディ
レクトリ(%Program Files%¥Microsoft BizTalk Server 2006¥Pipeline Components)にコピーします。
・ 「Microsoft.Practices.ESB」BizTalk アプリケーションに Microsoft.Practices.ESB.ExceptionHandling.sln
を Sourceフォルダから配置します。
・ 「Microsoft.Practices.ESB」BizTalkアプリケーションに
Microsoft.Practices.ESB.ExceptionHandling_Bindings.xmlバインド情報ファイルをインポートします。
・ ビジネスルールエンジンボキャブラリーを配置します。
・ BAM監視モデルを配置します。
⑧ BizTalkServer 管理コンソールにおいて、「All.Exceptions」送信ポートにおける SQLAdapter の DB 接続
先を、EsbExceptionDbデータベースを作成したサーバーに変更します。
⑨ ESB 例外管理フレームワークのインストールが成功したか確認する場合または、アプリケーションを実行
して問題が発生した場合は、「ESB 例外管理フレームワークによってインストールされたアセンブおよびア
ーティファクト」でインストールされたアセンブリを確認してください。
3.2.4.2. 例外管理フレームワーク用 PreProcessingCORE スクリプトの設定
以下の表は、ESB例外管理フレームワークアセンブリ用のPreProcessingCORE.vbsスクリプトの設定内容
とデフォルト値の一覧です。
設定値 説明
strUser="BTSISOSVC" スクリプトが作成する仮想ディレクトリに設定する
IISアプリケーションプール(既定は
「ESBAppPool」)のサービスアカウント。
このアカウントはマシンレベルまたはドメインレベル
において「BizTalk Isolated Host Users」グループ
のメンバである必要があります。
このユーザーが存在しない場合に、ユーザーを作
成し前述のグループのメンバに追加します。
strPwd="pass@word1" BizTalkサービスアカウントのパスワード。
strGroup="BizTalk Isolated Host Users" BizTalkアカウントグループ名。
strGroupIISWPG="IIS_WPG" IISサービスアカウントグループ名。
strGroupBTSAppUsers="BizTalk Application
Users"
BizTalkアプリケーションユーザーグループ名。
strBTSESBPath="C:¥Projects¥Microsoft.Practic
es.ESB"
ESB ガイダンスのソースコードのインストールディ
レクトリパス。
strAppPool="ESBAppPool" 仮想ディレクトリに設定する IISアプリケーション
プール。BizTalk が生成する SOAP ベース Web サ
ービスに使用されます。
strWcfAppPool="ESBWcfAppPool" 仮想ディレクトリに設定する IISアプリケーション
プール。BizTalk が生成する WCF ベース Web サ
ービスに使用されます。
strNetworkAppPool="ESBNetworkAppPool" 仮想ディレクトリに設定する IISアプリケーション
プール。Microsoft ESB ガイダンス Web サービス
及び、ESB マネージメントポータル(統合セキュ
リティまたは、Kerberos 認証に必要)に使用され
ます。
3.2.4.3. 例外管理フレームワークによってインストールされるアセンブリおよびアーティファクト
以下の表は、例外管理フレームワークによってインストールされたアセンブリ及び、アーティファクトの一覧で
す。
場所 カテゴリー 名前
「Practices.ESB」
BizTalk アプリケーシ
ョン
オーケストレーシ
ョン
(none)
送信ポート ALL.Exceptions
受信ポート ExceptionHandling.SubmitFault
受信場所 ExceptionHandling.SubmitFault.WCF
ExceptionHandling.SubmitFault.SOAP
スキーマ Microsoft.Practices.ESB.ExceptionHandling.Schemas.Pr
operty.System_Properties
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Fa
ults.FaultMessage
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Re
porting.FaultMessage
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Re
場所 カテゴリー 名前
porting.ExceptionSql
Microsoft.Practices.ESB.Itinerary.Schemas.System_Prop
erties
Microsoft.Practices.ESB.Itinerary.Schemas.Itinerary
パイプライン Microsoft.Practices.ESB.ExceptionHandling.Pipelines.ES
BFaultProcessor
リソース Microsoft.Practices.ESB.ExceptionHandling.Pipelines
Microsoft.Practices.ESB.ExceptionHandling.Schemas.
Faults
Microsoft.Practices.ESB.ExceptionHandling.Schemas.
Reporting
Microsoft.Practices.ESB.ExceptionHandling.Maps
Microsoft.Practices.ESB.Itinerary.Schemas
ポリシー (none)
マップ Microsoft.Practices.ESB.ExceptionHandling.Maps.Fault
Message_to_ExceptionSql
グローバルアセンブリ
キャッシュ(GAC)
アセンブリ Microsoft.Practices.ESB.ExceptionHandling.Pipelines
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Fa
ults
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Re
porting
Microsoft.Practices.ESB.ExceptionHandling
Microsoft.Practices.ESB.ExceptionHandling.Maps
Microsoft.Practices.ESB.Itinerary.Schemas
Microsoft.Practices.ESB.Transform
Microsoft.Practices.ESB.Exception.Management
Microsoft.Practices.ESB.GlobalPropertyContext
Microsoft.Practices.ESB.Itinerary
Microsoft.Practices.ESB.Adapter
Microsoft.Practices.ESB.Resolver
%Program
Files%¥Microsoft
BizTalk Server
2006¥Pipeline
Components
パイプラインコン
ポーネント
Microsoft.Practices.ESB.ExceptionHandling.PipelineCom
ponents.dll
Microsoft.Practices.ESB.PipelineComponents.dll
既定の Web サイト 仮想ディレクトリ ESB.ExceptionHandlingServices
ESB.ExceptionHandlingServices.WCF
3.3. 例外管理 InfoPath フォームテンプレートの共有化
ESBSource.zipを解凍して生成される下記フォルダを共有化し、アクセス許可の権限を付与します。
対象フォルダ 共有名 アクセス許可 備考
¥Source
¥Exception
Handling¥Source
¥ESB.ExceptionHandling.
InfoPath.Reporting
¥Publish
Publish Everyone:
「読み取り」を「許可」
ESB例外管理フレームワークによ
て生成される例外情報を InfoPath
にレンダリングするための
InfoPathテンプレート格納フォル
ダ
¥Source¥Samples
¥Exception
Handling¥Source
¥ESB.ExceptionHandling.
InfoPath.Resubmit
¥Publish
PublishResubmit Everyone:
「読み取り」を「許可」
"Repair and Resubmit "ユースケ
ースのサンプルアプリケーション
で使用される InfoPath テンプレー
ト格納フォルダ
3.4. Web サービスの SSL 接続設定
ESB ガイダンスの既定のインストール手順では、ESB ガイダンスの Web サービスはクライアント接続およ
びバックエンドシステムとの通信において SSL接続を要求しません。
クライアント-サーバ間の通信を保護する必要がある場合には、SSL接続を設定します。
また、IPSec のようなネットワーク-レベルセキュリティプロトコルの使用を考慮し、ファイルレベルの ACL また
はサービス-レベル許可(データベースセキュリティ等)を流用しなければなりません。
詳細情報については下記を参照してください。
ASP.NET を使用して作成した XML Web サービスのセキュリティ:
http://msdn.microsoft.com/ja-jp/library/w67h0dw7.aspx
HTTP Security and ASP.NET Web Services:
http://msdn.microsoft.com/en-us/library/ms996415.aspx
Step-by-Step Guide to Internet Protocol Security (IPSec):
http://technet.microsoft.com/ja-jp/library/bb742429(en-us).aspx
IPSec:
http://technet.microsoft.com/en-us/network/bb531150.aspx
3.5. Microsoft BizTalk ESB ガイダンスアプリケーションの開始
BizTalkServer 管理コンソールを開き、「Microsoft.Practices.ESB」アプリケーションを開始します。
3.6. VisualStudio2005 ツールボックスへのパイプラインコンポーネント追加
Microsoft ESB ガイダンスには複数のパイプラインコンポーネントが含まれています。
これらを使用してパイプラインを開発する際は、VisualStudio2005 のツールボックスに追加する必要があり
ます。
① VisualStudioを開き、空の BIzTalkServerプロジェクトを作成します。
② ソリューションエクスプローラにおいて、作成したプロジェクトを右クリック>追加>新しい項目 を選択し、
「受信パイプライン」を選択します。
③ VisualStudio のツールボックスを開き、BizTalk パイプラインコンポーネント>右クリック>アイテムの選択
を選択します。
④ 「BizTalk パイプラインコンポーネント」タブで”ESB”で始まるコンポーネントをチェックし、「OK」をクリックしま
す。
4. サンプルアプリケーション
4.1. インストール
4.1.1. ビジネスルールエンジンポリシー、ボキャブラリの展開
リリースバージョンのコアコンポーネントアセンブリおよびサンプルアプリケーションをインストールする場合は、
サンプルをインストールする前に、msiファイルを使用してサンプル用のビジネスルールエンジンポリシーとボ
キャブラリを展開する必要があります。
注:
ソースコードをビルドしてコアコンポーネントおよびサンプルアプリケーションをインストールする場合は、当
手順は実行不要です。(各サンプルをインストールする際に展開されます)
① スタートメニューからコマンドプロンプトを開きます。
② 下記コマンドを実行します。
BTSTask.exe ImportApp -Package:"<path>¥GlobalBank.ESB.Policies.msi"
/ApplicationName:GlobalBank.ESB
・<path>は実環境に合わせて変更します
・既定のフォルダ:C:¥Program Files¥Microsoft ESB Guidance 1.0 - November 2007
上記コマンドを実行すると、「GlobalBank.ESB」BizTalkアプリケーションが作成され、下記のビジネスルール
エンジンポリシーおよびボキャブラリが展開されます。
「ビジネスルール作成ツール」を使用して確認できます。
対象 共有名 バージョン
ボキャブラリ DynamicRunTimeDocSpecs 1.0
DynamicRunTimeEndPoints 1.3
DynamicRunTimeMapTypes 1.0
DynamicRunTimeServiceActions 1.0
ポリシー CanadaSubmitOrderMaps 1.10
GetCanadaEndPoint 1.3
GetCanadaPurchaseEndPoint 1.4
ResolveEndPoint 1.0
ResolveMap 1.0
ResolveMapScatterGather 1.2
ResolveEndpointScatterGather 1.0
4.1.2. 動的解決サンプルのインストール
① FTPを使用したサンプルシナリオを実行する場合は下記の FTPサイトを作成します。
仮想ディレクトリ名: Out
パス: ¥Source¥Samples¥DynamicResolution¥Test¥FTP¥Out
権限: 読み込み、書き込み
「BizTalk Application Users」グループが上記フォルダにアクセス権限があることを確認してください。
② VisualStudioで下記ソリューションファイルを開きます。
¥Source¥Samples¥DynamicResolution¥ GlobalBank.ESB.Samples.DynamicResolution.sln
③ Visual Studio 2005のソリューション エクスプローラから、各 BizTalkプロジェクトのプロパティページ(コン
テキストメニュからプロパティを選択)を開き、左側のツリーの構成プロパティから「展開」を選択します。「グ
ローバルアセンブリキャッシュにインストール」、「ホストインスタンスを再起動します」、「再展開」の各プロパ
ティに Trueを設定し、SQL Server及び、BizTalkMgmtDbデータベースにアクセスするための適切なサー
バ名、構成データベース名が指定されていることを確認します。(下図参照)
④ ソリューションを保存し、Visual Studio 2005を終了します。
⑤ Windowsエクスプローラで、¥Source¥Samples¥DynamicResolution¥Install¥Scripts フォルダを開き、テ
キストエディタで、PreProcessingCORE.vbs を開きます。このスクリプトを実行する前に、必要に応じてこ
のファイルの先頭で宣言される変数(ユーザー名やパスワードなど)を編集してください。これらの変数及び、
デフォルト値は、「動的解決サンプル用 PreProcessingCOREスクリプトの設定」を参照してください。
ファイルを編集後、スクリプトを実行してください。このスクリプトは、以下のタスクを実行します。
・ BizTalk Isolated Host Users グループに新しいユーザアカウント「BTSISOSVC」を作成
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、ユーザーは作成済です。
・ 以下のローカル、ドメイングループにユーザアカウントを追加
グループ名
[ローカルマシン名] ¥IIS_WPG
[ローカルマシン名] ¥STS_WPG
[ドメイン名] ¥BizTalk Isolated Host Users
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、上記内容は設定済です。
・ 新しいユーザアカウント及び、BizTalk Application Users グループに以下のフォルダへのアクセス許可を
設定
フォルダ名
¥Windows¥Temp
Key フォルダ、Source フォルダをインストールしたフォルダ
(既定では、C:¥Projects¥Microsoft.Practices.ESB)
※「BizTalk Application Users」グループの許可のみ設定
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、上記内容は設定済です。
BizTalkServer グループに ESB ガイダンスをインストールした場合は、フォルダへのアクセス許可を付与
する場合にエラーが発生します。その場合は、手動で許可を付与し、BizTalkIsoratedHostUsersグループ
に作成したユーザーアカウントを追加してください。
・ 以下の IISアプリケーション プールを作成
アプリケーションプール名
ESBAppPool
ESBWcfAppPool
ESBNetworkAppPool
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、上記は作成済です。
ESBAppPool及び、ESBWcfAppPoolは、新しく作成した「BTSISOSVC」ユーザを使用します
・ 以下のWebサービスフォルダと対応した IIS仮想ディレクトリを作成
仮想ディレクトリ
¥Services¥ESB.CanadianServices
¥Services¥ESB.NorthAmericanServices
⑥ Windowsエクスプローラで下記フォルダを開きます。
¥Source¥Samples¥DynamicResolution¥Install¥Scripts
⑦ Microsoft ESB ガイダンスのソースコードをローカル環境でビルドした場合は、下記コマンドファイルをダブ
ルクリックして実行します。
1.CreateBizTalkApplication.cmd
ソースコードをビルドしていない場合は、下記コマンドファイルをダブルクリックして実行します。
1.CreateBizTalkApplication_FromRelease.cmd
コマンドファイルでは以下のタスクを実行します。
・ GlobalBank.ESB.Samples.DynamicResolution ソリューションのリビルドおよび「GlobalBank.ESB」
BizTalkアプリケーションへの配置
・ GlobalBank.ESB.DynamicResolution_Bindings.xmlバインド情報のインポート
・ 下記のビジネスルールエンジンポリシーおよびボキャブラリの展開
(※1.CreateBizTalkApplication.cmdを実行した場合)
対象 共有名 バージョン
ボキャブラリ DynamicRunTimeDocSpecs 1.0
DynamicRunTimeEndPoints 1.3
DynamicRunTimeMapTypes 1.0
DynamicRunTimeServiceActions 1.0
ポリシー CanadaSubmitOrderMaps 1.10
GetCanadaEndPoint 1.3
GetCanadaPurchaseEndPoint 1.4
⑧ サンプルのインストールが成功した場合、またはサンプル実行時にエラーが発生した場合は、「動的解決
サンプルでインストールされるアセンブリ、アーティファクト」を参考に、アセンブリ等が正しく展開されている
ことを確認してください。
4.1.3. 動的解決サンプル用 PreProcessingCORE スクリプトの設定
動的解決サンプル用に PreProcessingCORE.vbsファイルに設定された既定値は下記のとおりです。
設定値 説明
strUser="BTSISOSVC" 仮想ディレクトリに設定する IIS アプリケーションプ
ール(既定は ESBAppPool)のサービスアカウン
ト。
このアカウントはマシンレベルまたはドメインレベル
において「BizTalk Isolated Host Users」グループ
のメンバである必要があります。
このユーザーが存在しない場合に、ユーザーを作
成し前述のグループのメンバに追加します。
strPwd="pass@word1" BizTalkサービスアカウントのパスワード。
strGroup="BizTalk Isolated Host Users" BizTalkアカウントグループ名。
strGroupIISWPG="IIS_WPG" IISサービスアカウントグループ名。
strGroupBTSAppUsers=
"BizTalk Application Users"
BizTalkアプリケーションユーザーグループ名。
strBTSESBPath="C:¥Projects¥Microsoft.Practic
es.ESB"
ESB ガイダンスのソースコードのインストールディ
レクトリパス。
strAppPool=" ESBAppPool" 仮想ディレクトリに設定するアプリケーションプール
名。
4.1.4. 動的解決サンプルでインストールされるアセンブリ、アーティファクト
場所 カテゴリー 名前
「GlobalBank.ESB」
BizTalkアプリケーショ
ン
オーケストレーショ
ン
(none)
送信ポート DynamicResolutionSolicitResp
DynamicResolutionOneWay
受信ポート DynamicResolutionReqResp
DynamicResolution
受信場所 DynamicResolutionReqResp_SOAP
DynamicResolution_FILE
スキーマ GlobalBank.ESB.DynamicResolution.Schemas.CNPur
chaseOrderResponse
GlobalBank.ESB.DynamicResolution.Schemas.NAOrd
erDoc
GlobalBank.ESB.DynamicResolution.Schemas.NAOrd
場所 カテゴリー 名前
erResponse
GlobalBank.ESB.DynamicResolution.Schemas.CNOrd
erDoc
GlobalBank.ESB.DynamicResolution.Schemas.CNOrd
erResponse
GlobalBank.ESB.DynamicResolution.Schemas.CNPur
chaseOrderDoc
パイプライン GlobalBank.ESB.DynamicResolution.Pipelines.ESBRe
ceiveSendXML
GlobalBank.ESB.DynamicResolution.Pipelines.ESBRe
ceiveXML
GlobalBank.ESB.DynamicResolution.Pipelines.ESBSe
ndPassThrough
リソース GlobalBank.ESB.DynamicResolution.Pipelines
GlobalBank.ESB.DynamicResolution.Schemas
GlobalBank.ESB.DynamicResolution.Transforms
ポリシー CanadaSubmitOrderMaps.xml
GetCanadaEndPoint.xml
GetCanadaPurchaseEndPoint.xml
ボキャブラリ DynamicRunTimeDocSpecs.xml
DynamicRunTimeEndPoints.xml
DynamicRunTimeMapTypes.xml
DynamicRunTimeServiceActions.xml
マップ GlobalBank.ESB.DynamicResolution.Transforms.Sub
mitPurchaseOrderResponseCN_To_SubmitOrderResp
onseNA
GlobalBank.ESB.DynamicResolution.Transforms.Sub
mitOrderRequestNA_To_SubmitOrderRequestCN
GlobalBank.ESB.DynamicResolution.Transforms.Sub
mitOrderRequestNA_To_SubmitOrderRequestCN
GlobalBank.ESB.DynamicResolution.Transforms.Sub
mitOrderResponseCN_To_SubmitOrderResponseNA
グローバルアセンブリ
キャッシュ(GAC)
アセンブリ GlobalBank.ESB.DynamicResolution.Pipelines
GlobalBank.ESB.DynamicResolution.Schemas
GlobalBank.ESB.DynamicResolution.Transforms
%Program Files% パイプラインコン (none)
場所 カテゴリー 名前
¥Microsoft BizTalk
Server 2006¥Pipeline
Components
ポーネント
4.1.5. リゾルバサービスサンプルのインストール
① Windowsエクスプローラで下記フォルダを開きます。
¥Source¥Samples¥ResolverService¥Install¥Scipts
② Microsoft ESB ガイダンスのソースコードをローカル環境でビルドした場合は、下記コマンドファイルをダブ
ルクリックして実行します。
1.CreateBizTalkApplication.cmd
ソースコードをビルドしていない場合は、下記コマンドファイルをダブルクリックして実行します。
1.CreateBizTalkApplication_FromRelease.cmd
コマンドファイルでは以下のタスクを実行します。
・ ESB.ResolverServiceおよびテストクライアントプロジェクト(サンプルアプリケーション含む)のコンパイル
・ 「GlobalBank.ESB」アプリケーションに、エンドポイント解決およびマップ解決ポリシーを展開
上記コマンドを実行すると、「GlobalBank.ESB」BizTalk アプリケーションに下記のビジネスルールエンジン
ポリシーが展開されます。
対象 共有名 バージョン
ポリシー ResolveEndPoint 1.0
ResolveMap 1.0
4.1.6. Itinerary オンランプサンプルのインストール
Itinerary オンランプサンプルは、ESB ガイダンスコア、動的解決サンプル、リゾルバサービスサンプルに依
存しています。ESB ガイダンスコア、動的解決サンプル、リゾルバサービスサンプルをインストールし、本サ
ンプルが使用する Web サービスやビジネスルールエンジンが正しくインストールされていることを確認してく
ださい。
バインド情報ファイルからのインストール
① 動的解決サンプルおよびリゾルバサービスサンプルがインストールされていることを確認してください。
② Windowsエクスプローラで下記フォルダを開きます。
¥Source¥Samples¥Itinerary¥Install¥Scripts
③ Microsoft ESB ガイダンスのソースコードをビルドしてインストールした場合は、
「1.CreateBizTalkApplication.cmd」コマンドファイルをダブルクリックして実行します。
ソースコードをビルドしていない場合は、「1.CreateBizTalkApplication_FromRelease.cmd」コマンドファイ
ルをダブルクリックして実行します。
コマンドファイルでは以下のタスクを実行します。
・ サンプルアプリケーションを含む ESB.Itinerary.Testプロジェクトのコンパイル
¥Source¥Samples¥Itinerary¥Source¥ESB.Itinerary.Test¥bin¥Debug¥ ESB.Itinerary.Test.exe
・ GlobalBank.ESB.Samples.Itinerary.slnのリビルドおよび BizTalkServerへの配置
(「GlobalBank.ESB」BizTalkアプリケーションにオーケストレーションを配置、動的送信ポートを作成)
・ ¥Source¥Samples¥Itinerary¥Install¥Bindingフォルダにあるバインド情報ファイルのインポート
“1.CreateBizTalkApplication.cmd”コマンドファイルを実行した場合:
GlobalBank.ESB.Itinerary_Bindings.xml
“1.CreateBizTalkApplication_FromRelease.cmd”コマンドファイルを実行した場合:
GlobalBank.ESB.Itinerary_Bindings_FromRelease.xml.
注:
上記コマンドファイルにおけるソリューションのコンパイルで、公開キートークンの不一致による
「Microsoft.Practices.ESB.Itinerary」アセンブリ等の参照エラーが発生することがあります。
その場合は、VisualStudio から参照先を正しい公開キートークンのアセンブリの場所に変更するか、Bin
フォルダ(既定は C:¥Program Files¥Microsoft ESB Guidance 1.0 - November 2007¥Bin)に対象のア
センブリをコピーしてください。
注:
マイクロソフト ESB ガイダンスのコアコンポーネントを、ソースコードをビルドしてインストールした場合は、
下記Webサービスの web.configに設定されている該当アセンブリのキートークンを修正してください。
・ESB.ItineraryServices.WCF (Microsoft.Practices.ESB.ServiceModel.Helpersアセンブリ)
・ESB.ItineraryServices.Response.WCF (Microsoft.Practices.ESB.ServiceModel.Helpersアセンブリ)
31bf3856ad364e35 修正 → c2c8b2b87f54180a
④ サンプルのインストールが成功した場合、またはサンプル実行時にエラーが発生した場合は、「Itineraryオ
ンランプサンプルでインストールされるアセンブリ、アーティファクト」を参考に、アセンブリ等が正しく展開さ
れていることを確認します。
4.1.7. Itinerary オンランプサンプルでインストールされるアセンブリ、アーティファクト
場所 カテゴリー 名前
「GlobalBank.ESB」
BizTalkアプリケーショ
オーケストレーショ
ン
GlobalBank.ESB.Itinerary.Processes.ProcessAndRes
pond
場所 カテゴリー 名前
ン 送信ポート DynamicResolutionSolicitResp
DynamicResolutionOneWay
4.1.8. 例外管理サンプルのインストール
① VisualStudioで下記ソリューションファイルを開きます。
¥Source¥Samples¥Exception Handling¥GlobalBank.ESB.Samples.ExceptionHandling.sln
② Visual Studio 2005のソリューション エクスプローラから、各 BizTalkプロジェクトのプロパティページ(コン
テキストメニュからプロパティを選択)を開き、左側のツリーの構成プロパティから「展開」を選択します。「グ
ローバルアセンブリキャッシュにインストール」、「ホストインスタンスを再起動します」、「再展開」の各プロ
パティに Trueを設定し、SQL Server 及び BizTalkMgmtDb データベースにアクセスするための適切なサ
ーバ名、構成データベース名が指定されていることを確認します。
③ ソリューションを保存し、Visual Studio 2005を終了します。
④ Windowsエクスプローラで、¥Source¥Samples¥Exception Handling¥Install¥Scriptsフォルダを開き、テ
キストエディタで、PreProcessingCORE.vbs を開きます。このスクリプトを実行する前に、必要に応じてこ
のファイルの先頭で宣言される変数(ユーザー名やパスワードなど)を編集してください。これらの変数及び、
デフォルト値は、「例外管理サンプル用 PreProcessingCOREスクリプトの設定」を参照してください。
ファイルを編集後、スクリプトを実行してください。このスクリプトは、以下のタスクを実行します。
・ BizTalk Isolated Host Users グループに新しいユーザアカウント「BTSISOSVC」を作成
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、ユーザーは作成済です。
・ 以下のローカル、ドメイングループにユーザアカウントを追加
グループ名
[ローカルマシン名] ¥IIS_WPG
[ローカルマシン名] ¥STS_WPG
[ドメイン名] ¥BizTalk Isolated Host Users
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、上記内容は設定済です。
・ 新しいユーザアカウント及び、BizTalk Application Users グループに以下のフォルダへのアクセス許可を
設定
フォルダ名
¥Windows¥Temp
Key フォルダ、Source フォルダをインストールしたフォルダ
(既定では、C:¥Projects¥Microsoft.Practices.ESB)
フォルダ名
※「BizTalk Application Users」グループの許可のみ設定
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、上記内容は設定済です。
BizTalkServer グループに ESB ガイダンスをインストールした場合は、フォルダへのアクセス許可を付与
する場合にエラーが発生します。その場合は、手動で許可を付与し、BizTalkIsoratedHostUsersグループ
に作成したユーザーアカウントを追加してください。
・ 以下の IISアプリケーション プールを作成
アプリケーションプール名
ESBHttpAppPool
注:
ESBガイダンスコア用 PreProcessingCORE.vbsを既に実行している場合は、上記は作成済です。
新しく作成した「BTSISOSVC」ユーザを使用します。
・ 以下の IIS仮想ディレクトリを作成
仮想ディレクトリ
HwsMessages
¥Services¥ESB.NorthAmericanServices
⑤ Windows エクスプローラで、¥Source¥Samples¥Exception Handling¥Install¥Scripts フォルダを開き、
1.CreateBizTalkApplication.cmd コマンドファイルをダブルクリックして実行してください。
コマンドファイルでは以下のタスクを実行します。
・ GlobalBank.ESB.Samples.ExceptionHandling.sln ソリューションのリビルドおよび「GlobalBank.ESB」
BizTalkアプリケーションへの配置
・ GlobalBank.ESB.ExceptionHandling_Bindings.xmlバインド情報のインポート
⑥ サンプルのインストールが成功した場合、またはサンプル実行時にエラーが発生した場合は、「例外管理
サンプルでインストールされるアセンブリ、アーティファクト」を参考に、アセンブリ等が正しく展開されている
ことを確認してください。
4.1.9. 例外管理サンプル用 PreProcessingCORE スクリプトの設定
例外管理サンプル用に PreProcessingCORE.vbsファイルに設定された既定値は下記のとおりです。
設定値 説明
strUser="BTSISOSVC" BizTalk HTTP ISAPI 仮想ディレクトリに設定する
IISアプリケーションプール(既定は
「ESBHttpAppPool」のサービスアカウント。
このアカウントはマシンレベルまたはドメインレベル
において「BizTalk Isolated Host Users」グループ
のメンバである必要があります。
このユーザーが存在しない場合に、ユーザーを作
成し前述のグループのメンバに追加します。
strPwd="pass@word1" BizTalkサービスアカウントのパスワード。
strGroup="BizTalk Isolated Host Users" BizTalkアカウントグループ名。
strGroupIISWPG="IIS_WPG" IISサービスアカウントグループ名。
strGroupBTSAppUsers=
"BizTalk Application Users"
BizTalkアプリケーションユーザーグループ名。
strBTSESBPath="C:¥Projects¥Microsoft.Practic
es.ESB"
ESB ガイダンスのソースコードのインストールディ
レクトリパス。
strAppPool="ESBHttpAppPool" BizTalk HTTP ISAPI仮想ディレクトリに設定するア
プリケーションプール名。
strHWSMESSAGE="HwsMessages" 新規に作成する IIS仮想ディレクトリ名。
strPathToHWSServices="%PROGRAMFILES%
¥Microsoft BizTalk Server 2006¥HttpReceive"
BizTalk ISAPI フィルタのフルパス。
4.1.10. 例外管理サンプルでインストールされるアセンブリ、アーティファクト
場所 カテゴリー 名前
「GlobalBank.ESB」
BizTalkアプリケーショ
ン
オーケストレーショ
ン
GlobalBank.ESB.ExceptionHandling.Processes.EAIPr
ocess
GlobalBank.ESB.ExceptionHandling.Handlers.EAIGen
ericHandler
GlobalBank.ESB.ExceptionHandling.Handlers.EAIPro
cessHandler
送信ポート EAIProcessHandler.RepairSubmit
EAIGenericHandler.PostTmpMsg
EAIProcess.PostApproval
EAIProcessHandler.PostDecline
ALL.Exceptions_FILE
場所 カテゴリー 名前
(GlobalFaultProcessorパイプライン使用)
受信ポート EAIProcess.RequestPort
受信場所 EAIProcess.RequestPort_FILE
EAIProcess.ReSubmit_HTTP
スキーマ GlobalBank.ESB.ExceptionHandling.Schemas.System
_Properties
GlobalBank.ESB.ExceptionHandling.Schemas.Reques
t
GlobalBank.ESB.ExceptionHandling.Schemas.Reques
tDenied
パイプライン GlobalBank.ESB.ExceptionHandling.Pipelines.GlobalF
aultProcessor
リソース GlobalBank.ESB.ExceptionHandling.Handlers
GlobalBank.ESB.ExceptionHandling.Processes
GlobalBank.ESB.ExceptionHandling.Schemas
GlobalBank.ESB.ExceptionHandling.Pipelines
ポリシー (none)
マップ GlobalBank.ESB.ExceptionHandling.Schemas.MapTo
ReqDenied
グローバルアセンブリ
キャッシュ(GAC)
アセンブリ GlobalBank.ESB.ExceptionHandling.Handlers
GlobalBank.ESB.ExceptionHandling.Processes
GlobalBank.ESB.ExceptionHandling.Schemas
GlobalBank.ESB.ExceptionHandling.Pipelines
%Program Files%
¥Microsoft BizTalk
Server 2006¥Pipeline
Components
パイプラインコン
ポーネント
(none)
4.2. サンプルアプリケーションの実行
4.2.1. リゾルバサービスサンプルの実行
リゾルバサービスサンプルは、リゾルバ Web サービスを実行するためにコマンドラインアプリケーションを使
用し、実行結果をファイルに出力します。テストクライアントアプリケーションのコードファイルを確認すること
により、リゾルバWebサービスの使用方法について理解を深めることができます。
リゾルバ サービスは、マイクロソフト ESB ガイダンスのコアコンポーネントに依存しています。
本サンプルが正しく動作するために、ESB ガイダンスのコアコンポーネントを正しい場所にコピーおよびイン
ストールしてください。
本サンプルには以下のシナリオが含まれています。
・ BREを使用した変換(BizTalkマップ)の解決
・ BREを使用したエンドポイント URIの解決
・ 静的リゾルバを使用したエンドポイント URIの解決
・ XPATHを使用したエンドポイント URIの解決
・ UDDIサービス(サービスキーで問い合わせ)を使用したエンドポイント URIの解決
・ UDDIサービス(サービス名で問い合わせ)を使用したエンドポイント URIの解決
ASMX リゾルバWebサービスによる実行
① BizTalkServer 管理コンソールから「GlobalBank.ESB」アプリケーションを開始します。
② Windowsエクスプローラで下記コマンドファイルをダブルクリックして実行します。
¥Source¥Samples¥ResolverService¥ 1.RunTestClient_ASMX.cmd
③ ¥Source¥Samples¥ResolverService¥Output フォルダに結果ファイルが出力されますので、各シナリオと
対応した解決の結果ファイルが出力されていることを確認します。
・ STATICWithFile.txt
・ STATICWithFTPEndPointConfig.txt
・ UddiWithServiceKey.txt
・ UddiWithServiceName.txt
・ XPATHWithFILE.txt
・ XPATHWithHttp.txt
・ BRETransformType.txt
・ BRETransportLocation.txt
・ XPATHWithTransPortType.txt
結果ファイルの内容については、「動作仕様」を参照してください。
WCF リゾルバWebサービスによる実行
① BizTalkServer 管理コンソールから「GlobalBank.ESB」アプリケーションを開始します。
② Windowsエクスプローラで下記フォルダを開き、下記コマンドファイルをダブルクリックして実行します。
¥Source¥Samples¥ResolverService¥ 2.RunTestClient_WCF.cmd
③ ¥Source¥Samples¥ResolverService¥Output フォルダに結果ファイルが出力されますので、各シナリオと
対応した解決の結果ファイルが出力されていることを確認します。
・ STATICWithFile.txt
・ STATICWithFTPEndPointConfig.txt
・ UddiWithServiceKey.txt
・ UddiWithServiceName.txt
・ XPATHWithFILE.txt
・ XPATHWithHttp.txt
・ BRETransformType.txt
・ BRETransportLocation.txt
・ XPATHWithTransPortType.txt
結果ファイルの内容については、「動作仕様」を参照してください。
4.2.2. リゾルバサービスサンプル実行時の注意事項
UDDI サービスにサービスキーで問い合わせをするには、リゾルバへの要求メッセージに設定されているサ
ービスキーと、実際 UDDIサービスに登録されているサービスキーを合わせる必要があります。
■UDDIサービスの問い合わせサービスキー
・¥Source¥Samples¥ResolverService¥Config¥ResolverList.xml
【修正箇所】
<Resolver>
<name>UddiWithServiceKey</name>
<Content>![CDATA[UDDI:\\serverUrl=http://localhost/uddi;
serviceKey=314cea4a-6e42-435d-b4e7-8a61a69c17d6]]</Content>
<body></body>
</Resolver>
4.2.3. リゾルバサービスサンプル動作仕様
リゾルバサービスサンプルは、各リゾルバサービスのインスタンスを生成して、指定されたメッセージを処理し
ます。
リゾルバサービスのサンプルクライアントアプリケーションは、第一パラメータで複数のリゾルバ要求を含む
ResolverList.xml ファイルのパスを受け取り、これらの要求を リゾルバWebサービスに送ります。
下記は、XPATHを使用したエンドポイントの解決を行う際のリクエストメッセージの例です。
<Content>の要素にリゾルバ構成接続文字列を設定します。
<Body>要素にメッセージ本体を設定します。
次に、フレームワークは要求を処理するために ESB.Resolver.XPath という ResolveProvider クラスのイン
スタンスを生成します。
<Resolver>
<name>XPATHWithFILE</name>
<Content>![CDATA[XPATH:\\TransportLocation=/*[local-name()='OrderDoc'
and namespace-uri()='http://globalbank.esb.dynamicresolution.com/
northamericanservices/']/*[local-name()='ID' and namespace-
uri()='http://globalbank.esb.dynamicresolution.com/
northamericanservices/'];TargetNamespace=;
MessageExchangePattern=;EndpointConfig=;JaxRpcResponse=;TransportType=;
Action=;TransformType=]]
</Content>
<body>
![CDATA[
<ns0:OrderDoc
xmlns:ns0="http://globalbank.esb.dynamicresolution.com/northamericanservices/">
<ns0:customerName>Microsoft</ns0:customerName>
<ns0:ID>FILE://C:\Projects\Microsoft.Practices.ESB\Source\Samples
\DynamicResolution\Test\Filedrop\OUt\%MessageID%.xml</ns0:ID>
<ns0:requestType>10</ns0:requestType>
</ns0:OrderDoc>
]]
</body>
</Resolver>
クライアントアプリケーションはリゾルバWebサービスからの応答メッセージを
¥Source¥Samples¥ResolutiuonService¥Output フォルダにファイルとして出力します。
以下に解決結果の内容を示します:
Resolver.Action =
Resolver.ActionField =
Resolver.DocumentSpecName =
Resolver.DocumentSpecStrongName =
Resolver.EndpointConfig =
Resolver.EpmRRCorrelationToken =
Resolver.FixJaxRpc = False
Resolver.InboundTransportLocation =
Resolver.InboundTransportType =
Resolver.InterchangeId =
Resolver.IsRequestResponse =
Resolver.MessageExchangePattern =
Resolver.MessageType =
Resolver.MethodName =
Resolver.OutboundTransportCLSID =
Resolver.ReceiveLocationName =
Resolver.ReceivePortName =
Resolver.Success = False
Resolver.TargetNamespace =
Resolver.TransformType = Resolver.TransportLocation =
FILE://C:\Projects\Microsoft.Practices.ESB\Source\Samples
\DynamicResolution\Test\Filedrop\OUt\%MessageID%.xml
Resolver.TransportNamespace =
Resolver.TransportType = FILE
Resolver.WindowUserField =
4.2.4. 動的解決サンプルの実行
注:
本サンプルを実行する前に、リゾルバサービスサンプルをインストールする必要があります。また、本サン
プルは「Microsoft.Practices.ESB」BizTalk アプリケーションにインストールされたアーティファクトを使用
するため、BizTalkServer 管理コンソールにおいて、「GrobalBank.ESB」BizTalk アプリケーションから
「Microsoft.Practices.ESB」BizTalkアプリケーションへの参照を追加してください。
動的解決サンプルは、ESB 配信パイプラインコンポーネントおよび ESB 配信逆アセンブルパイプラインコン
ポーネントの典型的な使用方法を示します。また、動的なエンドポイント解決、ルーティングプロパティのセッ
ト、マップ解決およびオーケストレーションを使用しないメッセージレベルでのマップ実行を行うためのコンポ
ーネントの使用方法も示します。一方向と双方向(要求-応答)のメッセージングパターンが含まれています。
サンプルアプリケーションは、2つの受信場所および2つの動的送信ポートを含んでおり、17個の異なるユー
スケースを実行することが可能です。どのユースケースも、リゾルバおよびアダプタプロバイダフレームワー
クにおけるリゾルバとアダプタプロバイダが、様々な疎結合メッセージングソリューション基盤を提供できるこ
とを示します。
一方向のメッセージング
XPATH リゾルバを除く全ての一方向メッセージングシナリオは、「DynamicResolution_FILE」受信場所に
¥Source¥Samples¥DynamicResolution¥Test¥Data フォルダにある NAOrderDoc.xml ファイルをコピーし
ます。7個のサンプルが含まれており、実行前にそれぞれのサンプルと対応したバインド情報ファイルをイン
ポートする必要があります。
双方向のメッセージング
全ての双方向メッセージングシナリオは、BizTalkに要求メッセージを発行するために
「ESB.NorthAmericanServices」サンプルWebサービス
( http://localhost/ESB.NorthAmericanServices/CustomerOrder.asmx )を使用します。 InfoPath また
は.NETWebServiceStudio等のツールを使用してこのWebサービスを実行することができます。
どのサンプルも、「ESB.CanadianServices」サンプルWebサービス
(http://localhost/ESB.CanadianServices/SubmitPOService.asmx)にメッセージをサブミットするためにエ
ンドポイントの動的解決を行います。解決結果に応じて、submitOrder アクションまたは submitPurchase ア
クションのどちらかを実行します。
双方向メッセージングシナリオの受信場所は「DynamicResolutionReqResp_SOAP」です。10個のサンプ
ルが含まれており、実行前にそれぞれのサンプルと対応したバインド情報ファイルをインポートする必要があ
ります。
バインド情報ファイル
バインド情報ファイルは¥Source¥Samples¥DynamicResolution¥Samplesフォルダに格納されています。
このフォルダには Source と Release というサブフォルダが含まれています。Microsoft ESB ガイダンスをソ
ースコードからビルドしてインストールした場合は Sourceフォルダのバインド情報ファイルを使用してください。
ソースコードをビルドせず、リリースバージョンのMicrosoft ESB ガイダンスコンポーネントを使用している場
合は、Releaseフォルダのバインド情報ファイルを使用してください。
「GlobalBank.ESB」BizTalkアプリケーションにバインド情報をインポートするたびに、サンプルアプリケーショ
ンに含まれる受信場所の設定がリセットされ、関連した動的送信ポートはフィルタに受信ポート名を設定しま
す。よって、1つのバインド情報ファイルをインポートし、対応したメッセージを一方向メッセージシナリオの受
信場所に投入するだけでテストを行うことができます。InfoPath または.NETWebServiceStudio 等のツール
を使用して「NorthAmerican」Webサービスを呼び出す方法でもテストが行えます。
動的解決サンプルは、下記の ESB ガイダンスのコアアセンブリを使用します。
・ ESB配信パイプラインコンポーネントを含むMicrosoft.Practices.ESB.PipelineComponents.dll
・ パイプラインから呼び出されたリゾルバマネージャを実行するMicrosoft.Practices.ESB.Resolver.dll
・ Business Rules Engine リゾルバを実行する Microsoft.Practices.ESB.Resolver.BRE.dll
・ STATIC リゾルバを実行するMicrosoft.Practices.ESB.Resolver.STATIC.dll
・ UDDI リゾルバを実行するMicrosoft.Practices.ESB.Resolver.UDDI.dll
・ WS-MetaDataExchange リゾルバを実行するMicrosoft.Practices.ESB.Resolver.WSMEX.dll
・ XPATH リゾルバを実行するMicrosoft.Practices.ESB.Resolver.XPATH.dll
・ リゾルバスキーマを含むMicrosoft.Practices.ESB.Resolver.Schemas.dll
・ アダプタマネージャを実行するMicrosoft.Practices.ESB.Adapter.dll
・ FTP アダプタプロバイダを実行するMicrosoft.Practices.ESB.Adapter.FTP.dll
・ FILEアダプタプロバイダを実行するMicrosoft.Practices.ESB.Adapter.FILE.dll
・ MQSeriesアダプタプロバイダを実行するMicrosoft.Practices.ESB.Adapter.MQSeries.dll
・ WCF-BasicHttpアダプタプロバイダを実行するMicrosoft.Practices.ESB.Adapter.WcfBasicHttp.dll
・ WCF-WSHttpアダプタプロバイダを実行するMicrosoft.Practices.ESB.Adapter.WcfWSHttp.dll
また、動的解決サンプルはリゾルバやアダプタにも依存しています。構成ファイルが正しく構成されているか
を「構成ファイルの修正」を参考に確認してください。
4.2.4.1. 一方向のメッセージング
① サンプルを実行する前に、「DynamicResolution_FILE」受信場所の URL(ディレクトリ)が正しいこと、およ
び「DynamicResolutionOneWay」動的送信ポートが存在することを確認します。
② BizTalkServer 管理コンソールから「GlobalBank.ESB」アプリケーションを開始します。
③ 一方向メッセージングのサンプルは7パターンあり、個別のバインド情報ファイルが定義されています。実
行するサンプルを決定し、BizTalk 管理コンソールを使用して所定のバインド情報ファイルを
「GlobalBank.ESB」BizTalkアプリケーションに展開します。
注:
全てのバインド情報ファイルは¥Source¥Samples¥DynamicResolution¥Samples フォルダにある
Source と Release というサブフォルダに格納されています。Microsoft ESB ガイダンスをソースコードか
らビルドしてインストールした場合は Source フォルダのバインド情報ファイルを使用してください。ソースコ
ードをビルドせず、リリースバージョンのMicrosoft ESB ガイダンスコンポーネントを使用している場合は、
Releaseフォルダのバインド情報ファイルを使用してください。
④ 受信場所フォルダ(¥Source¥Samples¥DynamicResolution¥Test¥Filedrop¥In)に下記テストデータをコ
ピーします。
XPATH example: NAOrderDoc_XPATH_FILE.xml、NAOrderDoc_XPATH_FTP.xml、
NAOrderDoc_XPATH_MQS.xml. のうちの1ファイル
その他 example: NAOrderDoc.xml
⑤ 実行したサンプルに応じて結果フォルダを確認します。
サンプル名 結果フォルダ
The File Inbound to FTP Outbound FTP仮想フォルダ “Out”
The File Inbound to FILE Outbound \DynamicResolution\Test\Filedrop\Out
The File Inbound to MQS Outbound TEST.OUTキュー
The File Inbound to FILE Outbound
using the XPATH Resolver
メッセージ内に XPATH式で定義された場所
4.2.4.2. 双方向のメッセージング
① サンプルを実行する前に、「DynamicResolutionReqResp_SOAP」受信場所に Web サービスの正しい
URL(http://サーバ名/ESB.NorthAmericanServices/CustomerOrder.asmx)が設定されていること、また
「DynamicResolutionSolicitResp」動的送信ポートが存在することを確認します。
注:
動的解決サンプルは、メッセージの送信および「Canadian」Webサービス
(http://localhost/ESB.CanadianServices/SubmitPOService.asmx)からの応答メッセージの受信に動
的解決を使用します。これが、本サンプル用の静的送信ポートが定義されていない理由です。
動的解決コンポーネントは、解決結果および DynamicResolutionSolicitResp 受信場所に定義されてい
る ESBReceiveXml パイプラインから呼び出されるアダプタプロバイダフレームワークを使用してアウトバ
ウンド URL を取得します。いくつかの双方向メッセージングサンプルでは、ESBMapSend パイプラインが
マップの解決およびマップ実行を行います。
② BizTalkServer 管理コンソールから「GlobalBank.ESB」アプリケーションを開始します。
③ 実行するサンプルを選びます。
全ての双方向 メ ッ セ ー ジ ン グ シ ナ リ オは 、 BizTalk に メ ッ セ ー ジ を 発行す る た めに 、
「DynamicResolutionReqResp_SOAP」受信場所として設定されている「ESB.NorthAmericanServices」
Web サービスを使用します。サンプルは10パターンあり、個別のバインド情報ファイルが定義されていま
す。
BRE リゾルバを使用した SOAP Inbound to SOAP Outbound
submitOrder アクション
GlobalBank.ESB.DynamicResolution_SubmitOrder_To_SubmitOrder_BRE_Bindings.xml
マップおよび変換の解決に BRE リゾルバを使用した SOAP Inbound to SOAP Outbound
submitOrder アクション
GlobalBank.ESB.DynamicResolution_SubmitOrder_To_SubmitOrder_BRE_Routing_AND_
Transform_Bindings.xml
STATIC リゾルバを使用した SOAP Inbound to SOAP Outbound
submitOrder アクション
GlobalBank.ESB.DynamicResolution_SubmitOrder_To_SubmitOrder_STATIC_Bindings.xml
UDDI リゾルバを使用した SOAP Inbound to SOAP Outbound
submitOrder アクション
GlobalBank.ESB.DynamicResolution_SubmitOrder_To_SubmitOrder_UDDI_MSFTREGISTRY_Bindings.xml
UDDIサービス経由で UDDI リゾルバを使用した SOAP Inbound to SOAP Outbound
submitOrder アクション
GlobalBank.ESB.DynamicResolution_SubmitOrder_To_SubmitOrder_UDDI_MSFTREGISTRY_SERVICEKEY_
Bindings.xml
※バインド情報ファイルに設定された UDDIサービスキーを実在する UDDIサービスのサービスキーに修
正する必要があります。
SOA Software UDDI サーバーに対する UDDI リゾルバを使用した SOAP Inbound to SOAP Outbound
submitOrder アクション
GlobalBank.ESB.DynamicResolution_SubmitOrder_To_SubmitOrder_UDDI_SOAREGISTRY_Bindings.xml
※SOA Software社の UDDI サーバーをインストールする必要があります。
SOA Software UDDI サーバーに対する WS-MetaDataExchange リゾルバを使用した SOAP Inbound to
SOAP Outbound
submitOrder アクション
GlobalBank.ESB.DynamicResolution_SubmitOrder_To_SubmitOrder_WSMEX_Bindings.xml
※SOA Software社の UDDI サーバーをインストールする必要があります。
XPATH リゾルバを使用した SOAP Inbound to SOAP Outbound
submitOrder アクション
GlobalBank.ESB.DynamicResolution_SubmitOrder_To_SubmitOrder_XPATH_Bindings.xml
※エンドポイント情報がメッセージ内に設定されています。
ID=http://localhost/ESB.CanadianServices/SubmitPOService.asmx
customerName=http://globalbank.esb.dynamicresolution.com/canadianservices/
マップおよび変換の解決に BRE リゾルバを使用した SOAP Inbound to SOAP Outbound
submitPurchase アクション
GlobalBank.ESB.DynamicResolution_SubmitOrder_To_SubmitPurchaseOrder_BRE_Routing_AND_Transform
_Bindings.xml
※BRE リゾルバがアクションを submitOrder から submitPurchaseに変更します
STATIC リゾルバを使用した SOAP Inbound to SOAP Outbound
submitPurchase アクション
GlobalBank.ESB.DynamicResolution_SubmitOrder_To_SubmitPurchaseOrder_STATIC_Bindings.xml
※BRE リゾルバがアクションを submitOrder から submitPurchaseに変更します
④ 実行するサンプルと対応したバインド情報ファイルを BizTalk 管理コンソールを使用して
「GlobalBank.ESB」BizTalkアプリケーションにインポートします。
注:
全てのバインド情報ファイルは¥Source¥Samples¥DynamicResolution¥Samples フォルダにある
Source と Release というサブフォルダに格納されています。Microsoft ESB ガイダンスをソースコードか
らビルドしてインストールした場合は Source フォルダのバインド情報ファイルを使用してください。ソースコ
ードをビルドせずに、リリースバージョンの Microsoft ESB ガイダンスコンポーネントを使用している場合
は、Releaseフォルダのバインド情報ファイルを使用してください。
⑤ InfoPathまたは.NET Web Service Studio等のツールからパラメータを要求されている全てのパラメータを
設定して「NorthAmerican」Web サービスを呼び出します。InfoPath を使用して呼び出す方法は下記手順
⑥~⑬を参照してください。
⑥ スタートボタンからOffice InfoPathのプログラムを開き、「フォームテンプレートのデザイン」で「Webサービ
ス」を選択し、「OK」ボタンをクリックします。
⑦ 「データの受信」を選択し、「次へ」ボタンをクリックします。
⑧ 「NorthAmerican」WebサービスのWSDLを問い合わせる URLを指定します。
http://localhost/ESB.NorthAmericanServices/CustomerOrder.asmx?WSDL
⑨ “submitOrder”処理を選択し、「次へ」ボタンをクリックします。
⑩ 任意のデータ接続名を設定し、「完了」ボタンをクリックします。
⑪ ツールバーの「ツール」>「フォームのオプション」を開き、「セキュリティと信頼」ペインで「自動的にセキュリ
ティレベルを設定する」のチェックを外し、「完全信頼」を選択して「OK」ボタンをクリックします。
⑫ 「データソース」を展開して、各クエリフィールド、データフィールドをフォームにドラッグします。
ドラッグ
クエリフィールド:
フィールド名 種類
customerName テキストボックス
ID テキストボックス
requestType テキストボックス
データフィールド:
フィールド名 種類
ID テキストボックス
Success チェックボックス
⑬ 「プレビュー」においてクエリフィールドを入力し、「クエリの実行」ボタンをクリックすると下記のような結果が
が表示されます。データフィールドに表示された応答メッセージを確認します。
⑭ submitOrderアクションを指定した場合は、応答メッセージの ID フィールドの値に"Submit Order"という文
字列が設定されています。submitPurchase アクションを指定した場合は、"Submit Purchase"という文字
列が設定されています。
4.2.5. 動的解決サンプル実行時の注意事項
下記のバインド情報ファイルの内容を実行環境に合わせて修正します。
■FTPサイトのユーザーID/パスワード
・GlobalBank.ESB.DynamicResolution_SubmitOrder_To_FILE_To_FTP_STATIC__
ENDPOINTCONFIG_Bindings.xml
■UDDIサービスの問い合わせサービスキー
・GlobalBank.ESB.DynamicResolution_SubmitOrder_To_FILE_To_FILE_UDDI_
SERVICEKEY_Bindings.xml
・GlobalBank.ESB.DynamicResolution_SubmitOrder_To_SubmitOrder_UDDI_MSFTREGISTRY_
SERVICEKEY_Bindings.xml
※「PurchaseOrderSubmitOrderService」サービスのサービスキーを指定します
4.2.6. 動的解決サンプル動作仕様
このサンプルでは、受信パイプラインにおいて ESB 配信逆アセンブルパイプラインコンポーネントを使用して
います。
一方向のシナリオでは、STATIC リゾルバ、BRE リゾルバまたは XPATH リゾルバを使用してエンドポイント
の動的解決を行い、ファイルから、ファイル、FTPまたはMQSeriresへのプロトコルを仲介します。
双方向のシナリオでは、STATICリゾルバ、BREリゾルバ、UDDIリゾルバ、WSMEXリゾルバまたはXPATH
リゾルバを使用してエンドポイントの動的解決を行い、SOAP から、SOAP またはWCF-BasicHttp へのプロ
トコルを仲介します。さらに、メッセージコンテキストやBodyメッセージの内容から解決を行うBREリゾルバを
使用して動的解決および BizTalkマップを実行します。
全てのシナリオは解決結果として「ESB.CanadianServices」Webサービスにメッセージをサブミットします。
さらに、解決結果に応じて submitOrderまたは submitPurchaseアクションを実行します。また、ESB配信逆
アセンブルパイプラインコンポーネントは動的に BizTalkマップを実行します。
「DynamicResolutionReqResp_SOAP」受信場所での設定内容:
ESBReceiveXML パイプラインにおける ESB 配信逆アセンブルパイプラインコンポーネントのプロパティ設
定内容:
Enabled:パイプラインのアクティブ/非アクティブを設定する。Falseの場合は処理せずにパススルーする。
EndPoint:リゾルバを読み込むための接続文字列およびエンドポイント情報を設定する。
MapName:リゾルバを読み込み、BizTalkマップを実行するための接続文字列を設定する。
BizTalkマップの完全修飾名である場合もあります。
Validate:Trueを設定した場合、ESB配信逆アセンブルコンポーネントは、ESB変換サービスにマップで指定
されたスキーマの検証を行うように指示します。
ESBSendPassthrough送信パイプラインにおけるESB配信パイプラインコンポーネントのプロパティ設定内
容:
Enabled:パイプラインのアクティブ/非アクティブを設定する。Falseの場合は処理せずにパススルーする。
EndPoint:リゾルバを読み込むための接続文字列およびエンドポイント情報を設定する。
MapName:リゾルバを読み込み、BizTalkマップを実行するための接続文字列を設定する。
BizTalkマップの完全修飾名である場合もあります。
Validate:Trueを設定した場合、ESB配信コンポーネントは、ESB変換サービスにマップで指定されたスキー
マの検証を行うように指示します。
4.2.7. Itinerary オンランプサンプルの実行
このサンプルは、ESB Itinerary プロパティの定義方法および次のような一方向、双方向のメッセージングサ
ンプルを示します。
・ メッセージングを使用する Itineraryの実行
・ オーケストレーションを使用する Itineraryの実行
・ メッセージングおよびオーケストレーションを組み合わせた Itineraryの実行
Itinerary Webサービスを呼び出し、応答メッセージを表示するためのテストクライアントとしてWindowsフォ
ームを使用します。テストクライアントソリューションを開いて実行し、ソースコードを解析することで、SOA や
ESBのシステムにおいて ItineraryWebサービスをどのように使用するか理解を深めることができます。
本サンプルは、Itineraryサービスの特徴を示すためにWindows フォームテストクライアントアプリケーション
(Itinerary Test Client)を使用します。また、事前に定義された 13の Itineraryが含まれています。
注:
本サンプルを実行する前に、動的解決サンプルとリゾルバサービスサンプルをインストールする必要があ
ります。また、本サンプルは「Microsoft.Practices.ESB」BizTalk アプリケーションにインストールされたア
ーティファクトを使用するため、BizTalk 管理コンソールにおいて、「GrobalBank.ESB」BizTalk アプリケー
ションから「Microsoft.Practices.ESB」BizTalkアプリケーションへの参照を追加してください。
4.2.7.1. サンプルシナリオ
以下に示す Itineraryファイルは¥Source¥Samples¥Itinerary¥Itinerariesフォルダに格納されています。
各ファイル名は、そのシナリオがサブスクライブする対象のサービス名を表しています。
ファイル名 説明
Disassembler_OneW
ay-MessageTransfor
m-MessageRouting-
MessgeSendPort.xml
このシナリオは下記のような事前定義されたメッセージフローを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・サブミットされたメッセージに対するマップの実行を BizTalkに指示する
・動的送信ポートを通じて変換されたメッセージを複数送信先へ送信する
ファイル名 説明
---
サービスに関連したリゾルバの数が送信先の数を決定します。全ての変換およ
びルーティングは、ESB配信パイプラインコンポーネントによってサポートされる
任意のルーティングメッセージングサービスを使用してBizTalkメッセージングの
階層で発生します。
この Itineraryを実行すると以下のメッセージが生成されます。
2メッセージ:¥Source¥Samples¥DynamicResolution¥Test¥Filedrop¥Out フ
ォルダ
1メッセージ:FTP フォルダ(FTP://localhost/out/)
1メッセージ:MQSeriesキュー
(MQS://localhost/ESB.DEP.Sample.QueueManager/TEST.OUT/)
※MQSeries アダプタがインストールされていない場合はイベントログにエ
ラーが出力され、ファイルは生成されません
Disassembler_OneW
ay-MessageTransfor
m-MessgeSendPort.x
ml
このシナリオは下記のような事前定義されたメッセージフローを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・サブミットされたメッセージに対するマップの実行を BizTalkに指示する
・動的送信ポートを通じて変換されたメッセージを複数送信先へ送信する
---
サービスに関連したリゾルバの数が送信先の数を決定します。全ての変換およ
びルーティングは、BizTalkメッセージングの階層で発生します。Itineraryで定義
されサービスに関連したリゾルバが送信先を決定します。
この Itineraryを実行すると以下のメッセージが生成されます。
2メッセージ:¥Source¥Samples¥DynamicResolution¥Test¥Filedrop¥Out フ
ォルダ
1メッセージ:FTP フォルダ(FTP://localhost/out/)
1メッセージ:MQSeriesキュー
(MQS://localhost/ESB.DEP.Sample.QueueManager/TEST.OUT/)
※MQSeries アダプタがインストールされていない場合はイベントログにエ
ラーが出力され、ファイルは生成されません
OneWay-MessageTr
ansform-MessageRo
uting-MessgeSendPo
rt.xml
このシナリオは下記のような事前定義されたメッセージフローを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・サブミットされたメッセージに対するマップの実行を BizTalkに指示する
・動的送信ポートを通じて変換されたメッセージを1つの送信先へ送信する
---
ファイル名 説明
全ての変換およびルーティングは、ESB 配信パイプラインコンポーネントによっ
てサポートされる任意のルーティングメッセージングサービスを使用して BizTalk
メッセージングの階層で発生します。
この Itineraryを実行すると以下のメッセージが生成されます。
1メッセージ:¥Source¥Samples¥DynamicResolution¥Test¥Filedrop¥Out フ
ォルダ
OneWay-MessageTr
ansform-MessgeSen
dPort.xml
このシナリオは下記のような事前定義されたメッセージフローを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・サブミットされたメッセージに対するマップの実行を BizTalkに指示する
・動的送信ポートを通じて変換されたメッセージを1つの送信先へ送信する
---
全ての変換およびルーティングは、BizTalk メッセージングの階層で発生しま
す。
この Itineraryを実行すると以下のメッセージが生成されます。
1メッセージ:¥Source¥Samples¥DynamicResolution¥Test¥Filedrop¥Out フ
ォルダ
OneWay-MessgeSen
dPort.xml
このシナリオは下記のような事前定義されたメッセージフローを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・1つの送信先への動的送信ポートを通じたメッセージ送信を BizTalk に指示す
る
---
全てのルーティングは、BizTalk メッセージングの階層で発生します。
この Itineraryを実行すると以下のメッセージが生成されます。
1メッセージ:¥Source¥Samples¥DynamicResolution¥Test¥Filedrop¥Out フ
ォルダ
OneWay-OrchTransf
orm-OrchRoutingGro
up-MessgeSendPort.
xml
このシナリオは下記のような事前定義されたメッセージフローを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・サブミットされたメッセージに対するオーケストレーションサービスを使用したマ
ップの実行を、BizTalkに指示する
・2番目のオーケストレーションサービスは4メッセージを3つの送信先へ送信す
る
・サービスに関連したリゾルバは送信先を決定する
2メッセージ:¥Source¥Samples¥DynamicResolution¥Test¥Filedrop¥Out フ
ファイル名 説明
ォルダ
1メッセージ:FTP フォルダ(FTP://localhost/out/)
1メッセージ:MQSeriesキュー
(MQS://localhost/ESB.DEP.Sample.QueueManager/TEST.OUT/)
※MQSeries アダプタがインストールされていない場合はイベントログにエ
ラーが出力され、ファイルは生成されません
・動的送信ポートを通じてオリジナルメッセージを送信する
¥Source¥Samples¥DynamicResolution¥Test¥Filedrop¥Out フォルダ
---
全ての変換およびルーティングは、BizTalk メッセージングおよびオーケストレー
ションの組み合わせで発生します。
この Itineraryを実行すると5つのメッセージが生成されます。
TwoWay-MessageTr
ansform-MessageRo
uting-MessageTwoW
aySendPort.xml
このシナリオは下記のような事前定義された双方向(要求-応答)メッセージフロ
ーを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・サブミットされたメッセージに対するマップの実行を BizTalkに指示する
・動的双方向送信ポートを通じて、変換されたメッセージをWebサービスに送信
する
---
このサンプルは、ESB 配信パイプラインコンポーネントによってサポートされる
任意のルーティングメッセージングサービスを使用します。全ての変換およびル
ーティングは、BizTalk メッセージングの階層で発生します。
この Itinerary を実行すると呼び出し元(今回の場合は、テストクライアント)に1
つの応答メッセージが返されます。
TwoWay-MessageTr
ansform-MessageRo
uting-MessageTwoW
aySendPort-Message
Transform.xml
このシナリオは下記のような事前定義された双方向(要求-応答)メッセージフロ
ーを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・サブミットされたメッセージに対するマップの実行を BizTalkに指示する
・動的双方向送信ポートを通じて、変換されたメッセージをWebサービスに送信
する
・Webサービスからの応答メッセージを受信する
・応答メッセージに対するマップの実行を BizTalkに指示する
---
このサンプルは、ESB 配信パイプラインコンポーネントによってサポートされる
ファイル名 説明
任意のルーティングメッセージングサービスを使用します。全ての変換およびル
ーティングは、BizTalk メッセージングの階層で発生します。
この Itinerary を実行すると呼び出し元(今回の場合は、テストクライアント)に1
つの応答メッセージが返されます。
TwoWay-MessageTr
ansform-MessageTw
oWaySendPort.xml
このシナリオは下記のような事前定義された双方向(要求-応答)メッセージフロ
ーを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・サブミットされたメッセージに対するマップの実行を BizTalkに指示する
・動的双方向送信ポートを通じて、変換されたメッセージをWebサービスに送信
する
---
全ての変換およびルーティングは、BizTalk メッセージングの階層で発生しま
す。
この Itinerary を実行すると呼び出し元(今回の場合は、テストクライアント)に1
つの応答メッセージが返されます。
TwoWay-MessageTr
ansform-MessageTw
oWaySendPort-Mess
ageTransform.xml
このシナリオは下記のような事前定義された双方向(要求-応答)メッセージフロ
ーを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・サブミットされたメッセージに対するマップの実行を BizTalkに指示する
・動的双方向送信ポートを通じて、変換されたメッセージをWebサービスに送信
する
・Webサービスからの応答メッセージを受信する
・応答メッセージに対するマップの実行を BizTalkに指示する
---
全ての変換およびルーティングは、BizTalk メッセージングの階層で発生しま
す。
この Itinerary を実行すると呼び出し元(今回の場合は、テストクライアント)に1
つの応答メッセージが返されます。
TwoWay-MessageTr
ansform-OrchRouting
Group-OrchTwoWay
Custom.xml
このシナリオは下記のような事前定義された双方向(要求-応答)メッセージフロ
ーを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・サブミットされたメッセージに対するメッセージングサービスを使用したマップの
実行を、BizTalkに指示する
ファイル名 説明
・処理を行うオーケストレーションサービスにメッセージを渡す
・サービスに関連したリゾルバが次の4つの送信先を決定する
2メッセージ:¥Source¥Samples¥DynamicResolution¥Test¥Filedrop¥Out フ
ォルダ
1メッセージ:FTP フォルダ(FTP://localhost/out/)
1メッセージ:MQSeriesキュー
(MQS://localhost/ESB.DEP.Sample.QueueManager/TEST.OUT/)
※MQSeries アダプタがインストールされていない場合はイベントログにエ
ラーが出力され、ファイルは生成されません
・呼び出し元(今回の場合は、テストクライアント)に応答メッセージを返すための
双方向直接バインドオーケストレーションサービスにオリジナルメッセージを渡
す
---
全ての変換およびルーティングは、BizTalk メッセージングおよびオーケストレー
ションの組み合わせで発生します。
TwoWay-OrchTransf
orm-OrchRoutingGro
up-OrchTwoWayCust
om.xml
このシナリオは下記のような事前定義された双方向(要求-応答)メッセージフロ
ーを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・サブミットされたメッセージに対するオーケストレーションサービスを使用したマ
ップの実行を、BizTalkに指示する
・処理を行うオーケストレーションサービスにメッセージを渡す
・サービスに関連したリゾルバが次の4つの送信先を決定する
2メッセージ:¥Source¥Samples¥DynamicResolution¥Test¥Filedrop¥Out フ
ォルダ
1メッセージ:FTP フォルダ(FTP://localhost/out/)
1メッセージ:MQSeriesキュー
(MQS://localhost/ESB.DEP.Sample.QueueManager/TEST.OUT/)
※MQSeries アダプタがインストールされていない場合はイベントログにエ
ラーが出力され、ファイルは生成されません
・呼び出し元(今回の場合は、テストクライアント)に応答メッセージを返すための
双方向直接バインドオーケストレーションサービスにオリジナルメッセージを渡
す
---
全ての変換およびルーティングは、BizTalk メッセージングおよびオーケストレー
ションの組み合わせで発生します。
ファイル名 説明
TwoWay-TwoWayCu
stom (Direct
bound).xml
このシナリオは下記のような事前定義された双方向(要求-応答)メッセージフロ
ーを示します。
---
・Itineraryオンランプサービスにメッセージがサブミットされる
・呼び出し元(今回の場合は、テストクライアント)に応答メッセージを返すための
双方向直接バインドオーケストレーションサービスの実行を BizTalkに指示する
---
4.2.7.2. 事前定義 Itineraryユースケースを使用したサンプルの実行
注:
サンプルを実行する前に、2つの動的送信ポートのプロパティをリセットするためにバインド情報ファイル
(¥Source¥Samples¥Itinerary¥Install¥Bindingフォルダ内)をインポートする必要があります。
マイクロソフト ESB ガイダンスのコアコンポーネントを、ソースコードをビルドしてインストールした場合は
GlobalBank.ESB.Itinerary_Bindings.xml ファイル、リリースバージョンのアセンブリからインストールした
場合は GlobalBank.ESB.Itinerary_Bindings_FromRelease.xml ファイルをインポートしてください。
① BizTalkServer 管理コンソールから「GlobalBank.ESB」アプリケーションを開始します。
② Windowsエクスプローラを開き、下記アプリケーションを実行します。
¥Source¥Samples¥Itinerary¥Source¥ESB.Itinerary.Test¥bin¥Debug¥Esb.Itinerary.Test.exe
③ 「LoadItinerary」ボタンをクリックし、¥Source¥Samples¥Itinerary¥Itinerariesフォルダにある
” TwoWay-OrchTransform-OrchRoutingGroup-OrchTwoWayCustom.xml”サンプル Itineraryファイルを
選択します。
④ 「Web Service Options」オプションで「Two-Way Service」をチェックし、双方向(要求-応答)処理を行うこと
を指定します。
⑤ オ プ シ ョ ン と し て 、 OnRamp.Itinerary.Response.SOAP 受 信 場 所 ( 既 定 ) の 代 わ り に
OnRamp.Itinerary.Response.WCF受信場所を使用する場合は、「Use WCF Service」をチェックします。
⑥ 「LoadMessage」ボタンをクリックし、 ¥Samples¥Source¥Itinerary¥Test¥Dataフォルダ内の
NAOrderDoc.xml ファイルを選択します。
⑦ 「SubmitRequest」ボタンをクリックし、Itineraryオンランプサービスに要求メッセージを送信します。
Itinerary ファイルの中で指定されているサービス名は、サブスクライブ対象のサービス名と一致しています。本
サンプルの中で実行される「TwoWay-OrchTransform-OrchRoutingGroup-OrchTwoWayCustom.xml」を例
とすると、まず始めに変換を行う基本オーケストレーションを実行します。Itinerary ファイルの以下のセクション
でサービスを指定します。
<Service>要素で指定されているオーケストレーションサービスには、次に示すフィルタ式が設定されていま
す。
<Service uuid="" beginTime="" completeTime=""
name="Microsoft.Practices.ESB.Services.Transform"
type="Orchestration" state="Pending" isRequestResponse="false"
position="0" serviceInstanceId="" />
こ の オ ー ケ ス ト レ ー シ ョ ン は 、 メ ッ セ ー ジ コ ン テ キ ス ト の ServiceName プ ロパ テ ィ の 値
が”Microsoft.Practices.ESB.Services.Transform”、かつ ServiceState プロパティの値が”Pending”、かつ
ServiceTypeの値が”Orchestration”であるメッセージのみをサブスクライブ対象とすることに注意してください。
4.2.7.3. カスタム Itineraryユースケースを使用したサンプルの実行
テストクライアントを使用してカスタム Itineraryシナリオを実行することができます。
注:
本サンプルを実行する前に、¥Source¥Samples¥Itinerary¥Install¥Binding フォルダに格納されているバ
インド情報ファイルを「GlobalBank.ESB」BizTalk アプリケーションに手動でインポートする必要がありま
す。バインド情報ファイルは2つの動的送信ポートの設定内容をリセットします。
ソースコードをビルドしてインストールした場合は、GlobalBank.ESB.Itinerary_Bindings.xml ファイル、ビ
ルドせずに msi ファイルを使用してリリースバージョンのコンポーネントをインストールした場合は
GlobalBank.ESB.Itinerary_Bindings_FromRelease.xml ファイルをインポートしてください。
① Windowsエクスプローラを開き、下記アプリケーションを実行します。
¥Source¥Samples¥Itinerary¥Source¥ESB.Itinerary.Test¥bin¥Debug¥Esb.Itinerary.Test.exe
② ServiceType ドロップダウンリストからサービスタイプ(オーケストレーションまたはメッセージング)を選択、
実行するリクエストの名前をNameに入力し、要求-応答シナリオを実行する場合は、IsRequestResponse
チェックボックスをチェックします。また、WebServiceOptions セクションにおいて WCFWeb サービスの使
用や双方向サービスをチェックすることが可能です。
③ Add Resolvers for the Serviceセクションにおいて Resolover Type ドロップダウンリストからリゾルバタイ
プを選択し、「AddResolver」ボタンをクリックします。1 つ以上のリゾルバを追加することが可能です。要求
されたリゾルバ全てを追加した後、「AddService」ボタンをクリックし、このサービスの呼出しを Itinerary に
追加します。
④ サービスの呼出しを追加したい場合は、②と③の処理を繰り返してください。また、「RemoveService」ボタ
ンおよび「ClearService」ボタンで Itineraryのサービスリストを編集することが可能です。
⑤ 「SaveItinerary」ボタンをクリックすることで、作成した Itinerary をファイルとして保存することが可能です。
保存した Itinerary ファイルを読み込む場合は、「LoadItinerary」ボタンをクリックしてファイルを選択してくだ
さい。こうすることにより、シナリオを実行する度にサービス名やリゾルバを指定して毎回 Itineraryを作成す
る必要がありません。
⑥ 「LoadMessage」ボタンをクリックし、適切なテストメッセージを指定します。
⑦ 「SubmitRequest」ボタンをクリックし Itinerary に指定した処理にメッセージをサブミットします。返された実
行結果がある場合は、「Result」テキストボックスに表示されます。
4.2.8. Itinerary オンランプサンプル実行時の注意事項
下記の Itineraryファイルの内容を実行環境に合わせて修正します。
■FTPサイトのユーザーID/パスワード
・TwoWay-OrchTransform-OrchRoutingGroup-OrchTwoWayCustom.xml
・Disassembler_OneWay-MessageTransform-MessageRouting-MessgeSendPort.xml
・Disassembler_OneWay-MessageTransform-MessgeSendPort.xml
・OneWay-OrchTransform-OrchRoutingGroup-MessgeSendPort.xml
・TwoWay-MessageTransform-OrchRoutingGroup-OrchTwoWayCustom.xml
4.2.9. Itinerary オンランプサンプル動作仕様
サンプルのテストクライアントは、ユーザーがテストクライアントを使用して作成した Itinerary を含む SOAPヘッ
ダを構築し、ディスクからテストメッセージを読み込み、Itinerary ヘッダをメッセージに追加し、ESB を通じて
ItineraryオンランプWebサービスにメッセージをサブミットします。
Itinerary の各ステップが応答メッセージを生成した場合は、Itinerary Web サービスはこれらの応答メッセージ
を集め、テストクライアントに表示します。
オーケストレーション、メッセージング、またはその両方を使用した一方向、双方向のサンプル Itineraryファイル
を実行することができます。
Itinerary サービスがメッセージに設定された Itinerary 情報をどのように使用するかを理解するために、
「TwoWay-OrchTransform-OrchRoutingGroup-OrchTwoWayCustom.xml」を例として挙げます。
最初のセクションでは、サービスが呼び出される順番が<Service>要素として記述されています。
<Itinerary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.biztalk.practices.esb.com/itinerary"
uuid="" beginTime="" completeTime="" state="Pending"
isRequestResponse="false">
<ServiceInstance uuid="" name="Microsoft.Practices.ESB.Services.Transform"
type="Messaging" state="Pending" position="0"
isRequestResponse="false" xmlns="" />
<Services xmlns="">
<Service uuid="" name="Microsoft.Practices.ESB.Services.Transform"
beginTime="" completeTime="" type="Messaging" state="Pending"
isRequestResponse="false" position="0" serviceInstanceId="" />
</Services>
<Services xmlns="">
<Service uuid="" name="Microsoft.Practices.ESB.Services.Routing"
beginTime="" completeTime="" type="Orchestration" state="Pending"
isRequestResponse="false" position="1" serviceInstanceId="" />
</Services>
<Services xmlns="">
<Service uuid="" name="ProcessAndRespond"
beginTime="" completeTime="" type="Orchestration" state="Pending"
isRequestResponse="true" position="2" serviceInstanceId="" />
</Services>
(続く)
次のサービス呼出しリストは、Itinerary に定義された各サービスの解決情報を Itinerary サービスが探したり提
供したりするためのリゾルバの詳細情報(接続文字列等)を含むセクションです。
注:
実際の Itinerary定義の<Resolvers>要素には、空白文字は含まれていません。
前述の Itineraryで定義された3つのステップは下記のとおりです。
① ビジネスルールエンジンの ResolveMapポリシーを使用して、
Microsoft.Practices.ESB.Services.Transform(Microsoft.Practices.ESB.Agents.Transform)オーケスト
レーションで変換を実行します。
...
<ResolverGroups xmlns="">
<Resolvers serviceId="Microsoft.Practices.ESB.Services.Transform0">
<![CDATA[BRE:¥¥policy=ResolveMap;version=1.0;useMsg=;]]>
</Resolvers>
<Resolvers serviceId="Microsoft.Practices.ESB.Services.Routing1">
<![CDATA[STATIC:¥¥TransportLocation=
FILE://C:¥Projects¥Microsoft.Practices.ESB¥Source¥Samples¥
DynamicResolution¥Test¥Filedrop¥OUt¥%MessageID%.xml;
TargetNamespace=;MessageExchangePattern=;EndpointConfig=;JaxRpcResponse=;
TransportType=;Action=;TransformType=;]]><![CDATA[UDDI:¥¥serverUrl
=http://localhost/uddi;serviceName=OrderFileServiceWBindings;
serviceProvider=Microsoft.Practices.ESB;]]><
![CDATA[STATIC:¥¥TransportType=;TransportLocation=
FTP://localhost/out/%MessageID%.xml;Action=;
EndPointConfig=UserName=Administrator&Password=pass@word1;
JaxRpcResponse=false;MessageExchangePattern=;TargetNamespace=;
TransformType=;]]><![CDATA[STATIC:¥¥TransportType=;
TransportLocation=MQS://localhost/ESB.DEP.Sample.QueueManager/TEST.OUT
/%MessageID.xml;Action=;EndPointConfig=;JaxRpcResponse=false;
MessageExchangePattern=;TargetNamespace=;TransformType=;]]>
</Resolvers>
<Resolvers serviceId="ProcessAndRespond2" />
</ResolverGroups>
</Itinerary>
② 変換されたメッセージを複数の場所へ送信するために Microsoft.Practices.ESB.Services.Routing
(Microsoft.Practices.ESB.Agents.Delivery)オーケストレーションを実行します。
<ResolverGroups>セクションは、リゾルバ名および接続文字列が定義された<Resolvers>要素を含んで
います。
③ サンプルで提供されている ProcessAndRespond オーケストレーションを実行します。このオーケストレー
ションでは、応答メッセージの送信、コピーされた要求メッセージのテストクライアントへの送信が実装され
ています。
各サービスが完了するとそれぞれのサービスは、定義された Itinerary を元に現在のサービスインスタンスを
ステータスに”Pending”がセットされた次のサービスへと進めます。
注:
Itinerary オンランプサンプルは出力先フォルダにメッセージを送信するために動的リゾルバサービスを
使用します。これが、本サンプルのために静的送信ポートが定義されていない理由です。
テストクライアントがメッセージをサブミットした後に順番に発生するイベントは下記のとおりです。
・ 「OnRamp.Itinerary」受信場所がメッセージを受信します
・ 「ItineraryReceiveXml」パイプラインが SOAPヘッダから Itineraryを取得し、スキーマ検証をしてインバウ
ンドメッセージのメッセージコンテキストとして Itineraryを書き出します。そしてBizTalkメッセージボックスデ
ータベースにメッセージを発行します。
・ 「Microsoft.Practices.ESB.Services.Transform」オーケストレーションへのサブスクリプションが、このオ
ーケストレーションを起動します。次のコードに示すように、オーケストレーションはまず始めに
ItineraryHelperクラスのCurrentStepメソッドの引数にメッセージを渡すことで、実行中の ItineraryStepオ
ブジェクトを取得します。
ItineraryStep オブジェクトは、サービスと関連したリゾルバと同様に、サービスを実行するためのサービスイ
ンスタンスの全情報を含んでいます。
Resolver オブジェクトは ItineraryStep インスタンスから取得できます。次のコードに示すように、ESB リゾル
バフレームワークは変換マップの正式名を解決するために使用されます。
itineraryStep = Microsoft.Practices.ESB.Itinerary.ItineraryHelper.CurrentStep( InboundMessage);
resolverDictionary = Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve(InboundMessage, resolver);
// Set the transform type
transformType = resolverDictionary.Item("Resolver.TransformType");
リゾルバおよびアダプタフレームワークは、適切なリゾルバ(この例では、BRE リゾルバ)をキャッシュからか
ら読み込むことにより、「ResolveMap」ポリシーを起動し、ResolverDictionaryオブジェクトを取得します。
オーケストレーションが完了すると、ソースコードは AdvanceItinerary メソッドを呼び出します。
このメソッドは、プロパティをアップデートして、Itinerary で定義された次のサービスへと現在の Itinerary を進
めます。また、直接バインド送信ポートを通じて BizTalk メッセージボックスデータベースに再発行するサービ
スの Itineraryを、アウトバウンドメッセージにコピーします。
そしてサブスクリプションが「Microsoft.Practices.ESB.Services.Delivery」サービスオーケストレーションを
起動します。現在の Itineraryステップを経て、このオーケストレーションは前述の
「Microsoft.Practices.ESB.Services.Transform」オーケストレーションと似た処理を行います。ItineraryStep
インスタンスから返された複数のリゾルバを処理するのが異なっている点です。
それぞれのリゾルバに対して、デリバリーオーケストレーションは、送信先を解決しコンテキストプロパティとし
て昇格させるために、ESB リゾルバおよびアダプタフレームワークを使用します。
// Call the Itinerary helper to advance to the next step
Microsoft.Practices.ESB.Itinerary.ItineraryHelper.AdvanceItinerary(OutboundMessage, itineraryStep);
// Move to retrieve the first resolver
resolver = resolvers.Current;
// Pass the resolver configuration to the Resolver Manager
// for resolution
resolverDictionary =
Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve(InboundMessage, resolver);
// Set the transport properties
transportLocation =
resolverDictionary.Item("Resolver.TransportLocation");
transportType =
resolverDictionary.Item("Resolver.TransportType");
// Call the Adapter Manager to set all necessary properties
Microsoft.Practices.ESB.Adapter.AdapterMgr.SetEndpoint(resolverDictionary, DeliveryMessage);
// Set the delivery port address and type
DeliveryPort(Microsoft.XLANGs.BaseTypes.Address) = transportLocation;
DeliveryPort(Microsoft.XLANGs.BaseTypes.TransportType) = transportType;
フィルタ式に定義されたメッセージコンテキストプロパティの値と一致するため、サブスクリプションは
「ProcessAndRespond」オーケストレーションを起動します。
「ProcessAndRespond」オーケストレーションは、Itinerary を進め、テストクライアントに応答メッセージとして
返すためにオリジナルのリクエストメッセージをオンランプWebサービスに返します。
4.2.10. 例外管理サンプルの実行
注:
本サンプルをインストールする前に例外管理フレームワークをインストールする必要があります。
ESB サンプルアプリケーションは「GlobalBank.ESB」BizTalk アプリケーションに展開されます。
「GlobalBank.ESB」BizTalk アプリケーションが存在することを確認し、存在しない場合はまず始めにリゾ
ルバサービスサンプルをインストールしてください。
4.2.10.1. “ESB処理への失敗メッセージルーティング“サンプル実行
本サンプルでは、BizTalk で発生した例外の管理、シリアライズ、表示をするための一般的な例外管理メカニ
(Microsoft.Practices.ESB.Itinerary.Schemas.ServiceName == :"ProcessAndRespond")
&& Microsoft.Practices.ESB.Itinerary.Schemas.ServiceState == "Pending")
&& (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceType == "Orchestration")
ズムとして例外管理フレームワークをどのように使用するかを示します。これには、BizTalk の失敗メッセージ
ルーティング機能によって生成された例外、およびオーケストレーションで例外管理フレームワークによって
生成された例外も含まれます。
BizTalk Server 2006 で追加されたエラー処理機能を使用すると、失敗したメッセージを保留キューに配置
する従来の処理 (現在では、既定の処理) の代わりに、失敗したメッセージの自動処理を指定できます。こ
の自動処理では、サブスクライブしているルーティング先 (送信ポートやオーケストレーションなど) にエラー
メッセージをルーティングします。エラー メッセージは、元のメッセージのクローンであり以前昇格させたすべ
てのプロパティが降格されています。また、特定のメッセージの失敗に関連した、選択済みのプロパティがメ
ッセージ コンテキストに昇格されています。
失敗したメッセージのルーティングを有効にするには、受信ポートまたは送信ポートにおいて「失敗したメッセ
ージをルーティングする」をチェックします。
しかしながら、オーケストレーション内部で発生したエラーに対する似たような機能はありません。その代わり、
オーケストレーションの例外ハンドラにおいて、BizTalk失敗メッセージルーティング機能を模倣する例外管理
フレームワークの利点を活用することができます。
サンプルの中で、「EAIProcess.RequestPort_FILE」受信場所はファイルをポーリングして、
¥Source¥Samples¥Exception Handling¥Test¥Filedrop¥EAIProcess.RequestPort フォルダにコピーしま
す。さらに、「ALL.Exceptions_FILE」送信ポートは「GlobalFaultProcessor」パイプラインを使用するように設
定されており、システムで発生した全ての例外をサブスクライブします。
「ALL.Exceptions_FILE」送信ポートの設定内容:
① サンプルを実行する前に、受信場所の URL ( フ ォルダパス )に \Source\Samples\Exception
Handling\Test\Filedrop\EAIProcess.RequestPort が設定されていること、送信ポートの URL に
\Source\Samples\Exception Handling\Test\Filedrop\All_Exceptions が設定されていることを確認してくだ
さい。
② BizTalkServer 管理コンソールから「GlobalBank.ESB」アプリケーションを開始します。
③ ¥Source¥Samples¥Exception Handling¥Test¥Data フォルダに格納されている FlatFileReceive_in.txt
ファイルを「EAIProcess.RequestPort」受信場所にコピーします。
④ テキストファイルの処理において例外が発生しますので、「All_Exceptions」フォルダに出力された生成さ
れた xmlファイルを InfoPathを使用して開き、失敗メッセージの例外の内容を確認してください。
⑤ 次に、¥Source¥Samples¥Exception Handling¥Test¥Data フォルダに格納されている
soapmessage[1].xml ファイルを「EAIProcess.RequestPort」受信場所にコピーします。
⑥ CDATA セクションを含む xml ドキュメントファイルの処理において例外が発生しますので、
「All_Exceptions」フォルダに出力された生成された xmlファイルを InfoPathを使用して開き、失敗メッセー
ジの例外の内容を確認してください。
⑦ 最後に¥Source¥Samples¥Exception Handling¥Test¥Data フォルダに格納されている csqzav01.pdf フ
ァイルを「EAIProcess.RequestPort」受信場所にコピーします。
⑧ PDF ファイルの処理において例外が発生しますので、「All_Exceptions」フォルダに出力された生成された
xml ファイルを InfoPathを使用して開き、失敗メッセージの例外の内容を確認してください。
ESB例外ハンドリング機能により、失敗メッセージが Base64エンコードされていることが確認できます。
5. インストールおよび実行時の留意事項
5.1. ResolverMgr.cs ファイルの文字コード変換エラー
¥Source¥Core¥Source¥ESB.Resolver¥ ResolverMgr.cs ファイルの 1052 行目、1053 行目に文字コード
変換できない文字(ASCII コードで 87)が存在します。そのため、ソースコードをビルドして ESBガイダンスコ
アをインストールする場合は、1.CORE_CreateBizTalkApplication.cmd ファイル実行時にコンパイルエラー
が発生します。
暫定処置として、下記のように変換できない文字をダブルクオーテーションに置き換えてファイルを保存し、
再度コマンドファイルを実行します。
1049: // check for escape chars
1050: if (s.Contains(PropValueEscapeSeparator))
1051: {
1052: newS = s.Replace(PropValueEscapeSeparator, "・);
1053: newPropSep = "・;
1054: }
1049: // check for escape chars
1050: if (s.Contains(PropValueEscapeSeparator))
1051: {
1052: newS = s.Replace(PropValueEscapeSeparator, "”);
1053: newPropSep = "”;
1054: }
6. 参考文献
6.1. Microsoft ESB Guidance (本書の原文、英語)
Microsoft ESB Guidance for BizTalk Server 2006 R2
6.2. Microsoft BizTalk Server 2006 R2 製品情報
http://www.microsoft.com/japan/biztalk/default.mspx
6.3. Microsoft SOA サイト(英語)
http://www.microsoft.com/soa/