WCFサービスに接続するクライアントシステムを設計して、データベースの読み書き操作を実行し、通知を受け取る必要があります。WCF + CQRS +プッシュ通知
私はCQRSパターンを使用するように言われました。
例のために、クライアントは、は製品と更新製品のリストを取得するなどの操作を実行するためのサービスに接続します。また、を受け入れることもできます。と拒否貨物(最初に行うクライアント間で競争が起こる可能性があります)。 1人の顧客だけが出荷を「受け入れる」ことができます。
私はCQRSについてちょっと読んで、読み込みをコマンドから切り離していることを理解しました。私はCQRSを使用している場合しかし、私はいくつかの主要な問題について確認していない:
私はWCFサービスにCQRSパターンを使用している場合 - 私は、データベース上の同期を行われているものに数えることができますか?私はちょっと混乱しています。なぜなら、サービスがシングルスレッド(将来のスケーラビリティをサポートする)ではないからです。一方、サービスの書き込み操作が正しい順序で実行されるようにするにはどうすればいいですか?または読み取り操作ですか? CQRSパターンは順序付けられた処理を保証するか? (誰かが私に言ったhere CQRSパターンはオフライン処理の要求を更新するために '更新'キューを使用する)。
CQRSを使用すると並行性の問題が解消されますか?
データベースとやり取りするすべてのコマンドハンドラで「TransactionScope」を使用する必要がありますか?
私は、クライアントのために通知サービスを実装する方法を理解するのに一週間以上を費やしました。私はこのdesignていますdesign http://s16.postimage.org/aqakx6j9f/asdf.png
「製品・サービス」CQRSサービスとなりますが、私は通知サービスに問題があります。クライアントは、カテゴリXの製品について通知されるコマンドを製品サービスに送信することができる。このコマンドは、データベース内の要求を更新する。今のところ通知サービスが15分ごとにデータベースをポーリングし、どのカテゴリでどのユーザーをポーリングするかを確認し、その製品のカテゴリについて通知を要求したユーザーに新しい製品を送信することを確認します。 ユーザーが製品のカテゴリを変更し、他の20人のユーザーが既にこの製品を通知ウィンドウに表示している場合はどうなりますか? 製品がそのカテゴリに属していないことを検出し、のような通知を 'ビューから削除する'という方法が必要です。 これは通知に非常に似ていません。 「データベーステーブルの常時関連のビューを要求し、すべての変更をクライアントの画面に反映する必要があります。」のように聞こえます。 この種の通知サービスを行うにはどうすればいいですか?