受信ホストを高可用性にするには、各受信ホストのインスタンスを実行している 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 構成では、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 つだけであるため、処理と送信ホストは高可用性ではありません。
メッセージ
大規模なデプロイの場合、複数の取引先を扱うシナリオ、および異なるプロトコルを使用するシナリオでは、複数の受信側ホストに受信機能を分散できます。 たとえば、アダプターごとにメッセージを受信するためのホストを作成したり、異なるパートナーからのメッセージを受信するための異なるホストを作成したりできます。 複数の受信ホストを作成する場合は、セキュリティ境界を作成し、環境の管理性とスケーラビリティを容易にすることができます。ただし、環境を高可用性にすることはできません。 環境を高可用性にするには、作成する受信ホストごとに 2 つ以上のホスト インスタンスを作成する必要があります。 たとえば、3 つの異なる受信ホスト (A、B、C) を作成して、3 つの異なる会社からメッセージを受信できます。 これらの各ホストを高可用性にするには、これらの各ホストのホスト インスタンスを 2 台以上のコンピューターに作成します。 セキュリティ境界、管理容易性、スケーラビリティを失うことなく、各ホストのインスタンスを 1 台のコンピューターに配置できることに注意してください。
次の図は、さまざまな企業からのメッセージの受信専用のホストを備えた高可用性の 3 コンピューター BizTalk Server 環境を示しています。
この構成で高可用性を実現するために、各コンピューターは 3 つのホスト インスタンス (3 つの会社ごとに 1 つのインスタンス) を実行します。 各企業のホスト インスタンスには、その会社と通信するための受信場所とパイプラインが含まれています。 一般的な操作では、受信アダプターの前でスケールアウトに必要な作業を行っている限り、メッセージング負荷は各ホストの 3 つのホスト インスタンス間で分散されます。 1 台のコンピューター上のホスト インスタンスが失敗した場合、他の 2 台のコンピューターで実行されているホスト インスタンスは冗長性を提供し、サービスの可用性を維持します。
分離受信ホストのスケールアウト
ホスト インスタンスに加えて、受信ホストのスケーリングと高可用性の提供のプロセスも、デプロイで実装する特定のアダプターによって異なります。 各アダプターには、各ケースで計画と展開が異なるプロトコル固有の特性があります。 ただし、BizTalk Server では、主に追加のコンピューターとホスト インスタンスを使用して、すべてのアダプターに同じ高可用性ソリューションを適用できます。
使用されている特定のプロトコルに応じて、一部の受信アダプターでは、高可用性を提供するために、複数のホスト コンピューター間で受信メッセージを配布するための追加のメカニズムが必要です。 たとえば、HTTP または SOAP アダプター (Web サービス アダプターとも呼ばれます) を使用する BizTalk Server ソリューションでは、次の図に示すように、受信ワークロードを分散するためにネットワーク負荷分散 (NLB) などのロード バランサーが必要です。
BizTalk Server で最も一般的なアダプターの高可用性ガイドラインの詳細については、BizTalk Server ヘルプの「受信ホスト (https://go.microsoft.com/fwlink/?LinkId=151283) のScaled-Out BizTalk Server 受信アダプターのスケーリング」セクションを参照してください。