2009-07-20 10 views
2

私は比較的新しいプロキシです。
現在、仕事用のキャッシュプロキシを設計する必要があります。
私たちは、それに呼応してデータを提供するWebサービスを持っています。
これらの呼び出しの結果をキャッシュするリッチクライアントアプリケーション用のプロキシを作成する必要があります。
結果は基本的に、IDの構成で識別される製品の文字列名です。キャッシング・プロキシ・デザインのアドバイス

キャッシュに結果をキャッシュするプロキシクライアントとして機能するクラスを作成するだけで、System.Web.Caching.Cacheオブジェクトの使用を検討していました。

しかし私は、私が逃した設計上の側面や考慮事項があるかどうかを尋ねると思っていました。私が見つけていない一般的に知られているデザインはありますか?

-
がSystem.Web.Caching.Cacheのように思える[UPDATE 2009年10月12日]は、クライアント側のキャッシュのためにはお勧めできません。

http://msdn.microsoft.com/en-us/library/system.web.caching.cache.aspx

Cacheクラスは、ASP.NETアプリケーションの外 使用するためのものではありません。 ASP.NETでWeb アプリケーションにキャッシュを提供するために設計され、テストされています。コンソール アプリケーションやWindowsフォーム アプリケーションなど、他のタイプの アプリケーションでは、ASP.NETキャッシュが で正しく動作しない可能性があります。

答えて

0

まず、WinformsとServiceソリューションでSystem.Web.Caching.Cacheを使用しましたが、問題はありませんでした。キャッシュを確実に動作させるためにテストして免責事項を緩和し、リソースをリークさせないようにすることをお勧めします。

また、エンタープライズライブラリにはキャッシングソリューションがあります。おそらく、他のオープンソースのソリューションもあります。また、もしあなたが好きであれば、商業的にサポートされているものもあります。

しかし、ASP.NetでWebサービスをホストしていますか(通常、.asmx拡張子は良い指標です)。その場合はまだASP.Netにいるので、免責事項は適用しないでください。

また、ASP.Netには、コーディングを行うことなくweb.configから直接ドライブできるキャッシュオプションがあります。

しかし、上記はすべてサーバー側のキャッシュです。

HTTP(またはHTTPS)をトランスポート層として使用していると仮定すると、プロキシとクライアントのキャッシュにはHTTP応答ヘッダーが必要です。キャッシュコントロール、期限切れ、おそらく最後に変更されたと思われます。それでは、クライアントとプロキシがキャッシュをサポートするかどうかを決めるのは、クライアントとプロキシの責任です。

また、キャッシングをサポートするプロキシソリューションを実際に作成しようとしている場合は、System.Webを使用してHTTPハンドラが必要になる可能性があります。 HttpRequestとSystem.Web.HttpResponseは、クライアントの側を表し、System.Net.HttpWebRequestとSystemを使用して要求をサーバーに渡します。Net.HttpResponse。 System.Web.Caching.Cacheは、キャッシュされたレスポンスをプロキシでサポートできます。それには、HTTPリクエストヘッダー(Cache-Controlオプションもあります)など、ここで実装する必要のあるルールがたくさんあるとのことです。

+0

@スワニー:応答に感謝します。効果的に私はホイールを再利用するのではなく、ホイールを再利用しようとしています。だからあなたの提案が注目されています。私はそれを試し、それに応じてフィードバックを与えます。もう一度おねがいします。 –

関連する問題