2009-08-01 3 views
3

私は現在、シルバーライトのアプリケーション、より正確には、ロビーとゲームの2つの状態を持つゲームに取り組んでいます。Silverlightアプリケーションで大きなWCFデュプレックスサービスを設計する最良の方法は何ですか?

私はその構造を反映するために私のサービスアプリケーションを作成しました。私はすべてのロビー関連の操作を処理するLobbyServiceと、すべての実際のゲーム操作を処理するGameServiceを作成しました。その上に、私は両方の状態(チャット、システムメッセージなど...)の間で共有される操作を処理する第3のサービス 'GeneralService'を持っています。

私はデザイン自体にはかなり満足していますが、デュプレックスサービスのスケーラビリティを読んでいると、3つのサービスを持つことはお勧めできません。各クライアントのために同じ時間、したがってサーバーの最後に多くのリソースを占有します。

私の質問は、すべてのWCFサービス(.svc)を1つだけ(3つの異なるデータコントラクトを実装することによって)したほうがよいか、現在のデザインを維持して論理的にサービスを分割する自分のサービスですか?

ありがとうございます!

答えて

0

LobbyServiceとGameServiceの間にセキュリティ/権利の違いがある場合、私はそれらを2つの異なるサービスとして保持します。

おそらく、これらのサービスをInherhitのGeneralServiceから許可して、両方のサービスでその機能を利用できるようにすることができます。

これにより、構造またはサービスを維持しながら、クライアントごとに開いているデュプレックスチャネルの数を減らすことができます。

2

私が知っているように、WCFポーリングデュプレックスサービスでは、パフォーマンスにいくつかの欠点があります...このプロジェクトをよりよく使用してください:http://laharsub.codeplex.com/

関連する問題