受信ホストのスケールアウト
受信ホストを高可用性にするには、各受信ホストのインスタンスを実行している 2 つ以上のBizTalk Server コンピューターが必要です。 受信ホストをスケールアウトすることで、メッセージングを集中的に行うBizTalk Serverデプロイの可用性を高めることができます。 こうすることで、受信ホストが実行するオーケストレーション処理を最小限に抑えながら、さまざまなタイプのメッセージを高速かつ高い信頼性でルーティングさせることができます。
オーケストレーション処理やメッセージ送信を行うホストから受信ホストを分離することは、環境のセキュリティとスケーラビリティ強化にもつながります。各ホストのセキュリティやスケーラビリティを他のホストと切り離して捉えることができるためです。 たとえば、処理ホストや送信ホストには一切コンピューターを追加することなく、受信ホストにのみ 2 台のコンピューター (ホスト インスタンス) を追加することもできます。
In-Process と分離受信ホストについて
BizTalk Serverアプリケーションを統合してビジネス サービスを提供します。 統合は通常、(アプリケーションから) ドキュメントを受け取り、ドキュメントを処理し、処理されたドキュメントをアプリケーションまたは別のアプリケーションに送り返BizTalk Serverとして表されます。 このプロセスは、ドキュメント トランザクションと呼ばれます。
トランザクションは、通常、BizTalk アダプターで特定のプロトコル チャネルを監視し、ドキュメントを受信することから始まります。 アダプターは、他のアプリケーションをBizTalk Serverに接続するため、いわゆるです。 その機能に基づいて、送信アダプターまたは受信アダプターにすることができます。 既定のアダプターのほとんどは 1 つの .NET コンポーネントであり、受信関数と送信関数の両方が 1 つの .NET アセンブリに組み込まれています。 アダプターが存在するプロセス メモリ領域に基づいて、インプロセス (受信) アダプターまたは分離 (受信) アダプターのいずれかになります。 インプロセス アダプターは、BizTalk Server プロセス (BTSNTSvc.exe) によってのみホストでき、分離アダプターは別のプロセスによってホストされるように設計されています。 たとえば、HTTP アダプターと SOAP アダプターは、インターネット インフォメーション サービス (IIS) プロセスによってホストされます。 これらは基本的に ISAPI 拡張機能です。 一方、送信アダプターはすべてインプロセス アダプターです。
BizTalk Server Configuration では、2 つの既定のホストが作成されます。インプロセス ホストは BizTalkServerApplication と呼ばれ、分離ホストは BizTalkServerIsolatedHost と呼ばれます。 ホストは 2 つの機能を提供します。1 つはBizTalk Server項目を論理的にグループ化して、これらの項目を異なるBizTalk Serverプロセスに割り当てることができ、もう 1 つはセキュリティを制御します。 ホストの Windows グループを指定する必要があります。 このグループ内のユーザーのみが、このホストに割り当てられている ホスト インスタンス によってホストされているアダプターにドキュメントを送信できます。
2 つの既定のホストにはそれぞれホスト インスタンスがあります。 ホスト インスタンスには名前はありませんが、ホストに関連付けられています。 BizTalkServerApplication ホスト インスタンスは、実際には、BizTalk グループ内のBizTalk Server コンピューター上のBizTalk Server サービス プロセス (BTSNTSvc.exe) です。 BizTalkServerIsolatedHost ホスト インスタンスは、プロセスに直接バインドされていません。 受信アダプターをホストするプロセスに関連付けられています。
BizTalk Server構成では、SMTP (SMTP は送信アダプター) を除き、既定の各アダプターの受信ハンドラーも作成されます。 受信ハンドラーのプロパティの 1 つはホスト名です。 これは、ホストとそのホストのホスト インスタンスにバインドされる方法です。
アダプター、ホスト、ホスト インスタンス、および受信ハンドラーに加えて、ドキュメントの受信を開始BizTalk Server前に受信ポートを構成する必要があります。 受信ポートには、受信場所が含まれています。 受信場所には、受信ハンドラー プロパティがあります。 ロジックに従って、この受信ポートを処理するBizTalk Server プロセスにトレースできます。
受信ポート構成では、必要に応じてマップを指定します。 受信場所の構成では、ドキュメントの前処理に使用するパイプラインを指定する必要があります。 指定されたBizTalk Serverプロセスは、ドキュメントの受信からドキュメントの前処理、ドキュメントのマッピングまで、すべての処理を行います。 これは、インプロセス ホスト インスタンスと分離ホスト インスタンスの両方で同じです。
受信ホスト In-Process スケールアウト
次の図は、それぞれ 2 つのホスト インスタンスを別のコンピューターに配置することで、受信ホストの高可用性を提供するBizTalk Server展開を示しています。 この図では、BizTalk アイテムを処理するホスト インスタンスがホストに 1 つしかないため、ホストの処理と送信は高可用性ではありません。
メッセージ
複数の取引先とやりとりする場合や、異なるプロトコルを使用する場合など、環境の規模が大きい場合は、受信機能を複数の受信ホストに分散させることが可能です。 たとえば、アダプターごとにメッセージ受信用のホストを設けたり、メッセージの受信ホストを取引先ごとに用意することもできます。 複数の受信ホストを設ける際、セキュリティの処理境界を作成することで環境の管理性とスケーラビリティは向上しますが、それによって環境の高可用性が実現するというわけではありません。 環境の高可用性を実現するためには、受信ホストごとに複数のホスト インスタンスを作成する必要があります。 たとえば、3 つの異なる受信ホスト (A、B、C) を作成して、3 つの異なる会社からメッセージを受信できます。 すべての受信ホストに高可用性を確保するためには、受信ホストごとに複数のホスト インスタンスを作成し、それらを複数のコンピューターに展開する必要があります。 セキュリティの処理境界、管理性、スケーラビリティを損なうことなく、複数のホスト インスタンスを 1 台のコンピューターに割り当てることができるという点に注目してください。
次の図は、会社ごとに専用の受信ホストが用意された BizTalk Server 環境に対し、3 台のコンピューターを使って高可用性を実現した例です。
この構成で高可用性を実現するために、各コンピューターは 3 つのホスト インスタンス (3 つの会社ごとに 1 つのインスタンス) を実行します。 各会社に対応するホスト インスタンスには、その会社と通信するための受信場所およびパイプラインが保持されます。 一般的な操作では、受信アダプターの前でスケールアウトに必要な作業を行っている限り、メッセージング負荷は各ホストの 3 つのホスト インスタンスに分散されます。 1 つのコンピューターの特定のホスト インスタンスで障害が発生した場合、その他の 2 つのコンピューターで実行されているホスト インスタンスが処理を引き継ぐため、サービスの可用性は維持されます。
分離受信ホストのスケールアウト
ホスト インスタンスに加えて、受信ホストのスケーリングと高可用性の提供のプロセスも、デプロイに実装する特定のアダプターによって異なります。 各アダプターには、プロトコルごとの特性があるため、計画と導入もそれぞれのケースによって異なります。 ただし、BizTalk Serverを使用すると、主に追加のコンピューターとホスト インスタンスを使用して、すべてのアダプターに同じ高可用性ソリューションを適用できます。
受信メッセージを複数のホスト コンピューターに分散して高可用性を確保する際、使用するプロトコルによっては、受信アダプターに追加のメカニズムが必要になる場合もあります。 たとえば、HTTP または SOAP アダプター (Web サービス アダプターとも呼ばれます) を使用するソリューションBizTalk Server、次の図に示すように、受信ワークロードを分散するためにネットワーク負荷分散 (NLB) などのロード バランサーが必要です。
のスケールアウト
BizTalk Serverで最も一般的なアダプターの高可用性ガイドラインの詳細については、BizTalk Server ヘルプの「Scaled-Out Receiving Hosts (https://go.microsoft.com/fwlink/?LinkId=151283) 」の「BizTalk Server受信アダプターのスケーリング」セクションを参照してください。