2011-10-17 15 views
2

SQL Serverデータベースをリモートクライアントデータベースと同期させる最も良い方法はどれですか? Webサービス/ SQL Serverで使用可能なその他の組み込み機能SQL Serverデータベースの変更をリモートクライアントデータベースと同期する

アプリケーションの詳細: - SQL ServerとWPFのデスクトップ2005

シナリオは在庫管理データベースを有するクライアントの本社です。クライアントのリモートコンセントに実装されているのと同じデータベース構造。新株は本社のデータベースに追加されています。本社データベースに新しい行が追加されるたびに、すべてのリモートクライアントSQL Serverデータベースに通知する必要があります。また、リモートクライアントのアウトレットで変更が発生した場合は、変更内容をメインオフィスデータベースに送り返す必要があります。

ありがとうございます。

+1

解決策は見つかりましたか? – Sergey

+1

私はWCFサービスを使用しました。 – Sunil

答えて

3

研究の多くは、私は以下の
1. Sql Server Replication
2. SymmetricDS
3. Microsoft Sync Framework
4.カスタマイズされたWCFサービスになってしまった後。 (An Example)

DBを同期させるためのカスタマイズされたWCFサービスを選択しました。採用されたステップはここで言及されています。

1.インデックステーブルを作成しました。このテーブルには、クライアントのトランザクション履歴と署名が格納されます。

2.ステートレスDTOオブジェクトとしてテーブル行を受け取り、返すサービス層(クラスライブラリ)を作成しました。このサービス層は、データベースとの通信を担当するデータアクセス層を参照します。
このサービスレイヤー&データアクセスレイヤーは、WCFサービスとWindowsサービスによって参照されます。

3. WCFサービスを1つ作成し、WebサーバーのIISでホストしました。このサービスは、
a)を提供しています。ダウンロード(DTOClass dto)
b)。アップロード(DTOClass dto)サービス契約。

4. 1つのWindowsサービスを作成し、複数のクライアントの場所に展開します。このサービスは、WebサーバーIISでホストされているWCFサービスを使用します。

Windowsサービスは、特定の間隔でWCFサービスと通信します。メインサーバーデータベース(この情報はIndexTablesで利用可能)で利用可能な場合、Windowsサービスはダウンロード(DTOClass dto)契約を使用して更新プログラムをダウンロードし、ローカルデータベース。

同様に、ローカルデータベースに変更が生じた場合、WindowsサービスはWCFサービスへの変更を(Upload(DTOClass dto)contractを使用して)ハンドオーバーします。 WCFサービスがマスターデータベースを更新します。

両方のサービスがデータベースサーバーにローカルでアクセスするため、パフォーマンスが向上します。

関連する問題