0

私は現在、定期的にポーリングされるWebサービスに取り組んでいます。状態は保存されず、照会されるたびにインスタンス化されます。基本的に、データベースなどの他の外部エンティティの状態を取得し、それをリクエスターに返します。

最近、その中で生じた状態を保存する必要性

  • 特定のソースから継続的にデータを収集し、重要/関連するビットを保存する必要があります
  • 一定期間にわたって特定のデータソースの集計を収集する必要があります

私は次のアイデアを思いつきました: 代替テキスト

ここでの私の主な関心事は、静的クラス(基本的にグローバル)を使用して2つのサービス間でデータを共有しているという事実です。これを行うためのより良い方法はありますか?

編集:これまでの回答に感謝します。この質問のあいまいさについてお詫びします。さまざまなサービス間でデータを共有するための最良の方法を見つけようとしているだけで、詳細(つまり、何が必要か)について確信が持てません。私が開発しているプラ​​ットフォームは.NETFrameworkであり、どちらのサービスもWindowsサービスとしてホストされている単なるWCFサービスです。

データベースルートは最も一般的な方法のように聞こえますが、今のところそのパスをたどるのは気が進まない(主に展開/セットアップの問題のため。ソフトウェアをインストールするだけでなく、新しいテーブルを作成する必要があります)。この時点で、比較的少量のデータが転送されます。もちろん、これは将来変更される可能性があり、データベースルートを使用することがその時点での方法になる可能性があります。

データベース永続層を追加する以外に他の方法はありますか?

4

4 に答える 4

1

データを収集して集約する必要がある場合は、2つのレイヤー間でデータベースを使用することを検討してください。それとも私は何かを誤解しましたか?

より多くの要件で質問を強化することを検討する必要があります。ほとんどすべてのオプションがここで開かれています。

于 2009-10-28T02:35:18.767 に答える
0

確かに-データバインディングはどうですか?ここで説明する情報はあまりありません。プラットフォームについてですが、最も高度なシステムが何らかの形で提供しています。

于 2009-10-28T02:33:22.750 に答える
0

静的共有データを、データベースとWebサービスの間にキャッシュレイヤー(memcachedなど)を使用してデータベース表現に置き換えることができます。これにより、ほとんどの場合、データはキャッシュから非常に迅速に利用できますが、データベースから取得できます。必要に応じて。

于 2009-10-28T02:35:53.487 に答える
0

アーキテクチャをシンプルに保ちたいと考えていることに感謝します。検索する必要があるアイテムの規模と永続性に応じて、ファイル システムまたはメッセージ キューを活用することを検討することもできます。設計への影響が最も少ないと思われるため、ファイル システムが必要なようです。

何万もの小さなファイルを扱い始めると、ディレクトリをナビゲートするのが難しくなり、ファイルの検索が遅くなる可能性があります。私は通常、ディレクトリごとに約 1000 ~ 10000 個のファイルを撮影し、ファイル名のパターンに応じてファイルへのパスを生成できるルーチンを作成します。サブディレクトリの数を均等に保つことが重要です。一部のファイル システムでは、親ディレクトリ内のサブディレクトリの数に制限があります。

于 2009-10-29T06:56:47.127 に答える