次の方法で共有


ビジネス アクティビティ監視 (BAM)

次の図に、ビジネス アクティビティ監視 (BAM) 機能のアーキテクチャを示します。

ビジネス アクティビティ監視 (BAM) 機能のアーキテクチャを示す図。

ツール

BAM と統合する BizTalk ソリューションのデザイン、開発、および展開には、次のツールを使用できます。

  • Microsoft Excel。 Excel 用の BAM アドインによって提供されるユーザー インターフェイスを使用して、ビジネス アナリストはアクティビティとビューを作成できます。 Excel はビジネス アナリストのデザイン ツールとして、およびビジネス ユーザーのデータ利用ツールとして機能します。 Excel の BAM Add-In の詳細については、「Excel の BAM Add-In を使用するための要件」を参照してください。

  • BAM 管理ユーティリティ。 BAM 管理ユーティリティは、Excel で作成された BAM の定義を企業に展開するための展開ツールです。 BAM 管理ユーティリティでは、必要な SQL Server データベース、Analysis Services キューブ、SQL Notification Service データベース、および DTS タスクまたは SSIS タスク (インストールされている SQL Server のバージョンによって異なる) を作成します。 BAM マネージャーの詳細については、「 BAM 管理ユーティリティ」を参照してください。

  • 追跡プロファイル エディター。 追跡プロファイル エディターを使用すると、BizTalk 開発者は、ビジネス アナリストによって定義されたデータ要素をオーケストレーションやメッセージングを含む BizTalk 実装にマップできます。 追跡プロファイル エディターの詳細については、「追跡プロファイル エディター」を参照してください。

  • 追跡プロファイル展開ユーティリティ。 追跡プロファイルの展開ユーティリティを使用すると、IT プロフェッショナルは新しい追跡プロファイルや更新された追跡プロファイルを BAM インフラストラクチャに展開できます。 追跡プロファイル展開ツールの詳細については、「 追跡プロファイル展開ユーティリティ」を参照してください。

プレゼンテーション

プレゼンテーション層は、次の要素で構成されています。

  • BAM ポータル。 Microsoft BizTalk Server の BAM ポータルでは、ビジネス プロセスをリアルタイムでエンドツーエンドで可視化できます。 これは一連の ASP.NET ページで構成される Web ベースの機能です。 BAM をカスタマイズすることにより、パフォーマンスとユーザー エクスペリエンスが向上します。 BAM ポータルの詳細については、「 BAM ポータル」を参照してください。

  • Microsoft Excel。 Excel 用の BAM アドインによって提供されるユーザー インターフェイスを使用して、ビジネス アナリストはアクティビティとビューを作成できます。 Excel はビジネス アナリストのデザイン ツールとして、およびビジネス ユーザーのデータ利用ツールとして機能します。 Excel の BAM Add-In の詳細については、「Excel の BAM Add-In を使用するための要件」を参照してください。

  • カスタム ユーザー インターフェイス。 ISV および開発者は、BAM データを表示するカスタム アプリケーションを作成できます。

処理中

処理層は、次の要素で構成されています。

  • BAM 管理 Web サービス。 この Web サービスは、BAM ポータル アプリケーションが BAM プライマリ インポート テーブル (PIT) と通信するために使用されます。 データベースとの通信は、構成中に作成されたレジストリに保存されている、権限を借用した資格情報を使用して行われます。 この Web サービスで公開されたメソッドは、カスタム クライアントによって、任意のユーザーのビューおよびその詳細、関連アクティビティ、およびピボット テーブル レイアウトを取得するために使用されます。 さらに、データベース内の警告の管理にも使用できます。

  • Event Bus 。 BAM イベント バス サービスでは、ソース データベースに保存された追跡データ (ストリーム) を処理し、そのデータを出力先データベース内にクエリ テーブル形式で保持します。

  • SQL Notification Services。 SQL Notification Services では、ビジネス ユーザーが定義したインスタンスおよび集計 BAM 警告を評価します。

    次の図に、BAM アーキテクチャの基になる物理プロセスを示します。

    BAM アーキテクチャの基になる物理プロセスを示す画像。

デザイン時の操作

次の図に、デザイン時の操作を示します。

デザイン時のエクスペリエンスを示す画像。

次の手順では、上の図に示したシーケンスを説明します。

  1. 追跡プロファイル エディターでは、BizTalk Server が構成済みであること、少なくとも 1 つの BAM 定義が BM.exe を使用して展開済みであること、およびプライマリ インポート データベースを含むインフラストラクチャが作成済みであることを前提としています。 追跡プロファイル エディターでは、BizTalk 構成時に設定されるレジストリ キーを使用して、管理データベースの場所を決定します。

    1. BAM では、プライマリ インポート データベースが検出されるとその中のアクティビティが列挙されます。 BizTalk 開発者は、BAM プライマリ インポート データベースから取得した展開済みのアクティビティを選択します。

    2. BizTalk 開発者は、BizTalk 管理データベースから取得した展開済みのアセンブリを参照することにより、これを物理実装にマップします。

    3. 開発者がこれを BizTalk アイテムに視覚的にマップすると、メタデータが BizTalk Server ランタイムに送信され、データが収集され保存されます。 これは注釈 (収集されたデータのデコードに使用するメッセージング情報の場合) および追跡プロファイル (ランタイム データの取得に使用) によって行われます。

  2. Microsoft Excel はデザイン時ツール、およびデータ利用ツールまたはプレゼンテーション ツールとして使用されます。 デザイン時の Excel の操作では、BAM アクティビティとビューを作成することにより BAM 定義を構築できます。 さらに、BAM ポータルに最終的に表示されるピボット コントロールとグラフも作成できます。

デプロイ

展開には次の 2 つのカテゴリがあります。

  • 動的なインフラストラクチャを構築する。

  • ランタイムをインストルメント化し、データを収集する。

    次の図に、BAM の展開を示します。

    BAM 展開を示す画像。

    次の手順では、上の図に示したシーケンスを説明します。

  1. 動的インフラストラクチャの構築に、BAM 管理ユーティリティが使用されます。 BAM 管理ユーティリティでは、BAM 定義またはデザイン時の Excel ワークブック、および BAM 構成 XML ファイルを使用し、必要なすべてのデータベース、およびシステムの運用に必要な対応する DTS タスクまたは SSIS タスクを構築します。

    1. BAM プライマリ インポート データベースと、それをサポートするすべてのストアド プロシージャ、トリガー、および DTS タスクまたは SSIS タスクが構築されます。

    2. BAM アーカイブ データベースが定義されますが、アーカイブ DTS または SSIS タスクが実行されるまでは、作成されません。

    3. BAM OLAP 集計が定義されている場合は、BAM スター スキーマ データベース。 Excel スプレッドシートの [リアルタイム集計 ] ボタンが無効になっているか、BAM 定義で CreateOlapCubetrue に設定されていて、構成 XML ファイルに AnalysisDatabase の展開単位が設定されている場合に、集計が定義されているかどうかを確認できます。

    4. BAM OLAP キューブを作成するためには、BAM 定義および構成 XML で RTA 以外の集計が定義されている必要があります。

    5. BAM マネージャー プロセスの展開したビューでは、SQL NS データベースの作成のために Notification Services プロセス (nscontrol.exe) が呼び出されることを示します。

  2. 追跡プロファイル エディター UI には、ランタイムをインストルメント化してランタイム システムのデータを追跡し、デコードするための展開コマンドがあります。 この場合、 注釈 は BAM プライマリ インポート データベースにプッシュされます (データがメッセージング システムからプルされた場合)。 追跡プロファイルは、BizTalk ランタイムで BAM システムに公開するデータを決定するために使用する BizTalk 管理データベースに挿入されます。

  3. BizTalk 追跡展開コマンド ライン ツールを使用すると、追跡プロファイルを BAM プライマリ インポート データベースおよび管理データベースに公開できます。これは追跡プロファイル エディターの機能と似ていますが、コマンド ライン ツールにはマッピング機能がありません。

データの使用

データ利用とは、BAM インフラストラクチャが収集した情報をビジネス ユーザーが利用するプロセスのことです。 この時点で、BAM 定義の作成 (収集するデータおよびその表示方法の定義)、BAM 定義の展開 (インフラストラクチャの動的な作成)、および BAM 定義から物理実装へのマップ (データの収集場所の定義と、場合によってはシステムにプッシュするコードの作成) が完了していることが前提になります。

次の図に、データ利用のプロセスを示します。

データ消費のプロセスを示す画像。

次の手順では、上の図に示したシーケンスを説明します。

  1. BAM ポータルは、Internet Explorer と、インターネット インフォメーション サービスでホストされる BAM Web ポータル プロセスの 2 つのプロセスに分けられます。

    1. Internet Explorer では、BAM ポータル Web サイトに接続するビジネス ユーザーのセキュリティ コンテキストを使用します。 BAM ポータル Web サイトは、BAM 管理 Web サービスを使用して情報を収集する ASPX アプリケーションです。

    2. BAM ポータルでは、BAM 管理 Web サービスを呼び出し、特定のビジネス ユーザーが表示可能な BAM アクティビティ/ビューなどの情報を取得します。 BAM 管理 Web サービスでビジネス ユーザーを偽装できることは重要であるため、通常の展開では BAM ポータルと Web サービスは同じコンピューターでホストされます。

      Note

      企業が Kerberos をサポートしており、Active Directory が委任をサポートするように設定されている場合は、ポータルと Web サービスが異なるコンピューターに存在することがあります。

    3. Web サービスは、BAM プライマリ インポートのストアド プロシージャを呼び出して、セキュリティ チェックの実行、メタデータの取得、BAM リアルタイム集計に関する情報の取得を行います。

      Note

      現在、BAM ポータルでは、クエリ Web サービスと呼ばれる文書化されていない Web サービスが使用されています。 これはサポートされておらず、次のリリースでは推奨されなくなる可能性があります。

    4. Internet Explorer は Office Web Controls (OWC) をホストしています。これにより、BAM Analysis Services キューブに直接接続します。

  2. Excel

ランタイム

BAM 定義が完了し、インフラストラクチャが構築され、開発者が必要なシステムをインストルメント化して情報表示が有効になったら、システム内でのデータのフローを開始できます。

データ挿入

データが BAM システムにフローする代表的な方法の 1 つに、BizTalk Service (BTSNTSvc.exe) を使用したものがあります。 BizTalk Service は、論理サブシステムを格納できるように構築されています。

このプロセスを説明する図を次に示します。

BAM システムへのデータ挿入フローを示す画像。

次の手順では、上の図に示したシーケンスを説明します。

  1. 1 つのサブシステムは、BizTalk Server エンジン自体をホストします。 このエンジンは、オーケストレーションとメッセージングを実行します。

  2. もう 1 つのサブシステムとして、イベント バス サービスがあります。 イベント バス サービスは、バッファーに格納されたイベント ストリーム データを BAM プライマリ インポート データベースに書き込みます。

ランタイムの起動

BizTalk Service が起動すると、サブシステムが動作するために必要なメタデータが、各サブシステムに読み込まれます。

このプロセスを説明する図を次に示します。

サブシステムが動作するために必要なメタデータをサブシステムが読み込む方法を示す画像。

次の手順では、上の図に示したシーケンスを説明します。

  1. BizTalk エンジンの実行中 (オーケストレーションまたはメッセージング)、エンジンから BAM へのデータ フローを制御するインターセプターが呼び出されます。 エンジンによって呼び出されたインターセプターでは、オーケストレーションまたはメッセージングのアイテムの実行順序に関してエンジンの場所を分析します。 現在エンジンが実行されている場所から取得する必要のあるデータがある場合は、インターセプターによって適切なデータが収集されます。 データの取得場所と取得する必要のあるデータを決定するメタデータは、追跡プロファイルに格納されています。 BizTalk Service の起動時、エンジンのインターセプターは BizTalk 管理データベースに問い合わせ、実行中のアイテムの追跡プロファイルを取得します。

  2. イベント バス サービスの主な機能は、データ BLOB (BizTalk エンジンで作成) を使用可能なデータ項目に変換し、そのデータを BAM プライマリ インポート データベースに挿入することです。 メッセージング インターセプターは、未処理のデータを圧縮形式で書き込みます。 これは、メモリ作業セットのサイズが増大するのを避けるためです。 イベント バス サービスで、メッセージング データを使用可能なデータ項目に変換するためには、まず未処理のデータを解釈できるメタデータを読み込む必要があります。 このメタデータは注釈と呼 ばれます。 注釈メタデータは、追跡プロファイル エディター、またはコマンド ラインの追跡プロファイル展開ツールによって挿入されたものです。 展開したソリューションで、メッセージングからデータが取得されない場合は、注釈はありません。 オーケストレーション インターセプターでは、イベント バス サービスが、注釈を追加しなくても正しくデコードできるように、未処理の形式で十分な情報をエンコードします。

データの格納

このセクションでは、BizTalk Service からデータを取得する方法について説明します。

このプロセスを説明する図を次に示します。

BizTalk サービスからデータをキャプチャする方法を示す画像。

次の手順では、上の図に示したシーケンスを説明します。

  1. 前述したとおり、BizTalk エンジンには、オーケストレーションとメッセージング ソリューションのランタイム実行中に呼び出されるインターセプターがあります。 追跡プロファイルの情報に基づき、インターセプターでは、取得するデータを決定し、BizTalk メッセージ ボックスにバイナリ形式でデータを送信します。 ランタイム時に取得されたシリアル化 BLOB データを格納する TrackingData テーブルがあります。 処理中には、実行時にメモリに保持しているデータを保存する必要がある場合があります。 これは、永続化ポイントと呼ばれ、ポイントの発生するタイミングはエンジンで決定されます。 永続化ポイントが発生すると、インターセプターから取得したデータも同じトランザクション内でフラッシュされ、永続化されます。 これにより、エンジン内でのデータ、および最終的な BAM の表示内容の一貫性が確保されます。 エラーが発生し、トランザクションがロール バックされた場合は、関連する BAM データもロール バックされます。

  2. イベント バス サービスは、エンジンと同じ実行可能プロセスに格納されます。 このサービスは、BTS エンジンに格納された TrackingData テーブル (または任意の BufferedEventStream データ ソース) のデータを取得します。 この図は、アセンブリ (Microsoft.BizTalk.Bam.EventObservation) を示しています。 このアセンブリでは、BufferedEventStream からデータを取得するメソッドは公開されません。 このコードはイベント バス サービス自体に格納されています。 データが取得され、プライマリ インポート データベースに格納するために準備されます。 通常、バイナリ データとはシリアル化された .NET オブジェクトです。これらは復元され、その後、プロパティはオブジェクトから書式設定済みの SQL ステートメントに移動されます。

  3. データの格納が発生すると、イベント バス サービスでは大規模バッチ処理が試みられます。 バッチには、BAM マネージャー展開ツールによって生成されたストアド プロシージャの呼び出しが含まれます。 データベース利用率が高い場合など、テーブルがロックされる状況により、バッチ保存が失敗する場合があります。 エラーが発生した場合、バッチがさらに 2 回ほど試みられます。 再試行に失敗すると、バッチは小さなバッチに分割され、再試行されます。 それも失敗すると、バッチは FailedTracking テーブルに移動されます。

カスタム データの挿入

前のセクションでは、BAM がさまざまなメソッドを使用して BizTalk Server ホストからデータを取得する方法を詳しく説明しました。 追跡プロファイル エディターを間接的に使用してプロファイルを作成し、イベント ストリーム メソッドをコード内で直接的に使用しました。 ただし、BAM に関連するすべてのデータが BizTalk で使用できるわけではありません。 そのため、独自に作成されたアプリケーションに使用できるアセンブリがあります。

このプロセスを説明する図を次に示します。

カスタム データ挿入のプロセスを示す画像。

次の手順では、上の図に示したシーケンスを説明します。

  1. カスタム アプリケーションは、データを BAM アクティビティに挿入する BAM メソッドにアクセスするために 、Microsoft.BizTalk.Bam.EventObservation アセンブリを読み込める必要があります。 公開される主なクラスには、DirectEventStream と BufferedEventStream の 2 つがあります。 上の図では、DirectEventStream クラスが強調表示されています。 このクラスは、プライマリ インポート データベースに直接書き込みます。 これは BAM アクティビティにデータを書き込むための最も一般的な方法です。

  2. BizTalk がデータを格納するメソッドと同様に、BufferedEventStream クラスはバイナリ BLOB を間接データベースに書き込みます。 この場合、BizTalk メッセージ ボックスが中間ストアとして使用されます。 選択するクラスは、さまざまな要因によって異なりますが、パフォーマンスが優先されます。 BufferedEventStream クラスは、データをバッチ処理し、より高いスループットを維持します。 ただし、データはすぐには書き込まれません。

  3. データを挿入する BizTalk メソッドと同様に、イベント バス サービスは、バイナリ データを処理し、デコードし、最終的にそれを BAM プライマリ インポート データベースに格納します。 この処理は、BufferedEventStream クラスによって書き込まれたデータにのみ必要です。

分散ナビゲーション

BAM ポータル分散ナビゲーション機能を使用すると、リモートの全境界でのアクティビティ リレーションシップを表示できます。

参照

アーキテクチャの管理および追跡