次の方法で共有


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

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

待機時間を減らすために、このソリューションでは構成値のローカル キャッシュが使用されます。 キャッシュは 5 分おきに更新されます。

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

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

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

Note

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

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

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

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

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

Note

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

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

Note

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

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

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

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

参照

ビジネス プロセス管理ソリューションの実装の重要なポイント