私は一部のクライアントにサービスを提供するWCFサービスを持っています。 デザインは、次のとおりです。ワーカースレッドを使用したWCFサービス - どのように設計するのですか?
- WCFサービス層
- ビジネスロジック層
- データアクセス層(LINQツーエンティティ)
私はいくつかの連続を行うワーカースレッドを持っている必要がありますデータベース上での作業(新しいレコードを探し、見つかった場合は、クライアントに「プッシュ」方式で情報を送信します。つまり、クライアントはこのワーカースレッドから「プッシュ」通知を受け取れるようにサービスをホストします)。
WindowsサービスでWCFサービスをホストします。
質問:私はこのワーカースレッドを自分のデザインにどこに収めるのですか? WCFサービスの横にあるWindowsサービスの 'Program.cs'の 'Main()'に生成する必要がありますか? (これはWCFサービスアセンブリの一部でなければならないことを意味します) それはビジネスロジックレイヤの一部であるべきですか、それともビジネスロジックアセンブリの一部ですか?私が念頭に置いていた何
:
あなたは、「クライアントがサービスをホストします」によって何を意味するのか明確にすることはできますか?あなたは、WCFサービスがすべてのクライアントについて知っていなければならないと言っていますか?プッシュは必須条件ですか?あなたはクライアントをコントロールしていますか? –
私は一番上のレイヤーにそれをスポーンするので、Main()の内側にある – Chandermani
'Push'が必要です。クライアントがサーバーに接続すると、エンドポイント構成のサーバーを通過し、サーバーはクライアントとしてクライアントにも接続します。そうすれば、サーバはクライアントに情報をプッシュすることができます(コールバックのサポートは私には良いことではありません)... –