次の方法で共有


ビジネス プロセス管理ソリューションでの SSO の効率的な使用

サービス指向ソリューションと同様に、ビジネス プロセス管理ソリューションでは、Enterprise Single Sign-On (SSO) を使用して、注文処理ステージの数などの構成値を格納します。 シークレット ストアは、BizTalk がインストールされるたびに存在するため、SSO によって構成情報がキャッシュされ、値がすぐに使用できるようになり、データベース接続文字列やパスワードなどの情報を保護できます。 これらすべての理由から、シングル Sign-On がバックエンド アプリケーションへの接続の管理に使用されていなくても、シークレット ストアは構成情報に適した場所です。

待機時間を短縮するために、ソリューションは構成値にローカル キャッシュを使用します。 ソリューションは、5 分ごとにキャッシュを更新します。

このトピックでは、ソリューションで使用されるキャッシュ メカニズムについて説明します。 このソリューションでは、SSO キャッシュに対して、サービス指向ソリューションとは少し異なるアプローチを採用しています。 サービス指向ソリューションが SSO 値をキャッシュする方法の詳細については、「 サービス指向ソリューションでの SSO の効率的な使用」を参照してください。

ローカルでの構成値のキャッシュ

ビジネス プロセス管理ソリューションでは、シングルトン オブジェクトのプロパティを使用して、SSO 値へのアクセスを提供します。

シングルトン オブジェクトは、インスタンスを 1 つだけ持つオブジェクトであることを思い出してください。 シングルトン オブジェクトと C# でのオブジェクトの作成の詳細については、「C# での シングルトンの実装」を参照してください。

ソリューションでは、オーケストレーションは最初にシングルトン オブジェクトを取得し、次にオブジェクトのプロパティを介して値を参照します。 OrderManager オーケストレーションのコードを次に示します。

configData = Microsoft.Samples.BizTalk.SouthridgeVideo.Utilities
                .SsoConfigHelper.Singleton;
numStages = configData.TotalStages;

オーケストレーションは、SsoConfigHelper オブジェクトの Singleton メソッドを呼び出して、オブジェクトの 1 つのコピーにアクセスします。 オブジェクトを手元に置き、オーケストレーションは処理ステージ の数 TotalStages を取得します

このソリューションは、シングルトンを作成する一般的な方法に従います。コンストラクターをプライベートにし、オブジェクト自体のインスタンスを作成してプライベート変数に割り当て、メソッドまたはプロパティを使用してその変数の値へのアクセスを提供します。 SsoConfigHelper オブジェクトは、プロパティ Singleton を使用して、それ自体の単一コピーへのアクセスを提供します。

SsoConfigHelper オブジェクトは、静的コンストラクターを使用して SSO キャッシュから初期値を取得し、更新メカニズムを設定します。 静的コンストラクターは呼び出すことができないため、シングルトンデザインを保持します。 詳細については、「 静的コンストラクター (C# プログラミング ガイド)」を参照してください。

オーケストレーションが直接または間接的に参照するすべてのオブジェクトは、シリアル化可能である必要があります。 詳細については、「 永続化とオーケストレーション エンジン」の「シリアル化」を参照してください。 SsoConfigHelper オブジェクトは必然的にシリアル化可能ですが、エンジンがオーケストレーションを退避した場合、オーケストレーションの再ロード時には、そのままオブジェクトの単一の現在のインスタンスが使用されます。 シリアル化と BizTalk Server 変数の詳細については、「 オーケストレーション変数の型」を参照してください。

サービス指向ソリューション内のオブジェクトのすべてのパブリック メソッドは静的です。 したがって、オーケストレーションはインスタンスを変数に割り当てる必要はなく、クラスをシリアル化する必要もありません。

SsoConfigHelper オブジェクトは、サービス指向ソリューションと同じメカニズムを使用して構成値を取得および更新します。 同じパターンのロックも使用されます。 これらのメカニズムの詳細については、「 サービス指向ソリューションでの SSO の効率的な使用 」および SsoConfigHelper のソース コードを参照してください。

サービス指向ソリューションで実行される単一 Sign-On キャッシュと同様に、ビジネス プロセス管理ソリューションでは、Microsoft.BizTalk.SSOClient.Interop 名前空間から IPropertyBag インターフェイスを実装して値を格納します。 ビジネス プロセス管理ソリューションでは、NameValueCollection オブジェクトではなく HybridDictionary オブジェクトを使用します。

サービス指向ソリューションとは異なり、ビジネス プロセス管理ソリューションは、構成データに対応するプロパティを持つオブジェクトを公開します。 これにより、オーケストレーションでメッセージの種類の違いに対処する必要がなくなります。

こちらもご覧ください

ビジネス プロセス管理ソリューションの実装のハイライト