私の質問は: クライアントのローカル データベースと Web サーバー データベースの間でデータをやり取りする最善の方法は何ですか?
問題の説明:
当社のクライアントは、当社の SQL Server 2008 R2 データベースのローカル コピーに対して当社のソフトウェアを実行します。私たちは定期的に (1 日 1 回、深夜に) これらのクライアント (ビュー) ごとに複数のテーブルに格納されているフィールドを結合し、その情報をインターネット経由で SQL Server 2008 R2 データベースに送信する必要があります。ウェブサーバー。各クライアントには、Web サーバー データベースに移植する必要がある数万のレコードがある場合があります。この情報により、クライアントの顧客は支払いや注文を行うことができます。これらのトランザクションは、Web サーバー データベースの 1 つ以上のテーブルに保存されます。定期的に、これらのトランザクション レコードをクライアントのローカル データベースにプッシュする必要があります。クライアントはこれらのトランザクションを処理し、夜間にウェブサーバー データベースにプッシュするレコードを更新します。
私は非常に小さな店で C# プログラマーをしています。私が最初に考えたのは、データのやり取りを制御する Windows サービスを作成することでした。これには、クライアントの各サーバーにサービスをインストールする必要があります。私は、そのサービスを簡単に維持および拡張する能力に関心があります。特に、より多くのデータをやり取りする場合、各クライアント サイトでサービスを更新する必要があります。私たちの店の規模を考えると、それは深刻な課題になるでしょう。
このプロセスは、できれば Web サーバー上の SQL サーバー インスタンスで、SQL サーバーを介して管理したいと考えています。ただし、SQL Server について豊富な知識を持っている人は誰もいません。(私は SQL Server の第一人者であり、危険であることは十分承知しています。) クライアントの中には、サーバーに SQL Server Express しかインストールされていない非常に小規模な企業もあります。レプリケーションについていくつかの実験を行いましたが、特に SQL Server Express を使用して、インターネット経由で確実に作業を開始する方法は見つかりませんでした。
SSIS、Linked Servers、Service Broker、および RedGate の SQL Compare などのサードパーティ ツールについて読んだことがあります。これらのオプションのどれが私たちのニーズに最も適しているかは不明であり、それぞれをどのように利用するかを示す明確な例は見つかりません.
この問題に関するガイダンスをいただければ幸いです。上記で説明したことを行う方法を示す関連する例を教えていただければ、特に役に立ちます。