私は一連の Web サービスの作成を任されています。私たちはマイクロソフトのショップなので、このプロジェクトでは WCF を使用します。まだ解決策を見つけられていない興味深い設計上の考慮事項があります。例を挙げて説明します。
私の WCF サービスは、Foo() という名前のメソッドを公開しています。
10 人の異なるユーザーがほぼ同時に Foo() を呼び出します。
R1、R2、R3、R4、R5 という 5 つの特別なリソースがあります。特定のリソースは、一度に 1 つの呼び出し元だけが使用できるという事実を除けば、リソースが何であるかを実際に知る必要はありません。
Foo() は、これらの特別なリソースの 1 つを使用してアクションを実行する責任があります。したがって、ラウンドロビン方式で、Foo() は使用されていないリソースを見つける必要があります。使用可能なリソースがない場合は、リソースが解放されるまで待機する必要があります。
最初は、これは簡単な作業のように思えます。現在使用中のリソースを追跡するシングルトンを作成することもできます。大きな問題は、このソリューションを Web ファームのシナリオで実行可能にする必要があるという事実です。
この問題には良い解決策があると確信していますが、これまでこのシナリオに遭遇したことはありません。複数の WCF ホスト間で共有できるある種のリソース トラッカー/プロバイダーが必要です。
そこにいる建築家からのアイデアは大歓迎です!