2011-01-15 19 views
1

私は大規模な.Net WinformsプロジェクトでSql ServerへのWebサービス接続を使用しています。ビジネス機能によってグループ化された約10種類のサービスを展開しています。これらのサービスのいくつかは、多くの機能でかなり大きくなっています。これに関するベストプラクティスは何ですか?同じサービスに何百もの機能があると、パフォーマンスが低下しますか?より小さなサービスを持つ方がよいでしょうか?それはそのまま使用するのがかなり簡単で、サービスはお互いからかなり隔離されており、あなたは通常どのサービスを望んでいるのかをすぐに知ることができます。.Net Webサービス、サービス数に対するパフォーマンスとサービスサイズとの比較

答えて

1

少量のデータしか返さないWebメソッドへの複数の呼び出しを行うよりも、大きなデータセットを返すWebサービスメソッドへの呼び出しが少なくて済みます。経験則は、プロセスとネットワークの境界を越えることを避けることです。

+0

私は同じ数のコールと同じ量のデータを持っています。私の質問は、1つのサービスで1000のコールを、10の異なるサービスで100のコールを、20のサービスで50のコールを持つ方が良いでしょうか、それとも全く問題になりますか? – dwidel

+0

私は同意しません。指定した時間に必要なデータのみを取得します。たとえば、顧客のすべてのデータを返す1回の大規模呼び出しよりも小さな呼び出しのほうが優れています。 – DaveRead

+0

@DaveRead、客観的な結果を得るために負荷テストを実行する方が常に良いです。個人的に私は、ネットワークレイテンシやシリアライズ/デシリアライゼーションのオーバーヘッドにより、より大きいデータセットでより少ないコールを行うことが望ましいと結論付けられた(鉱山のアプリケーションで)多くのテストを実施しました。もちろん、これは依存します。 –

1

コールを参照しているときは、WebMethodsを意味しますか、WebMethodへの実際の呼び出しを意味しますか?

すべてのWebメソッドを1つのWebサービスにグループ化する際のボトルネックは聞いたことがありませんが、複数のサービスに分割する利点の1つは、各Webサービスを別のアプリケーションプールに入れて、アプリのプールのリサイクルでダウン。

また、基本的なWebサービスは、.net 4.0では廃止されました。それらはWCFに置き換えられています.WCFは、古いWebサービスメソッドよりも大幅にパフォーマンスが向上しています。両者のパフォーマンス分析については、http://msdn.microsoft.com/en-us/library/bb310550.aspxを参照してください。