2010-12-21 17 views
1

私は、サービスが起動して稼動している間にサイズが大きくなると予想されるオブジェクトグラフを公開するWCFサービスを作成しています。ライブ時に予想されるテストデータ(85k)で再生すると、デフォルトの65kメッセージサイズ制限に達しました。ネット上のクイックルックでは、config内でこれを拡張するだけのシンプルさが示されていました。wcfサービスを介して公開されているデータを圧縮する必要がありますか?

私はサービスとそれを消費するクライアントを作成しているので、データを送信する前にデータを圧縮することに付加価値があるのか​​疑問に思っていました。簡単なテストを実行すると、テストデータは約7kに縮小しました。これは、メッセージが電信線を介して送信され、送信できるデータ量が増加する時間に役立つように見えます。

サービスは、最初のコールが行われる前にデータを事前に準備しているため、圧縮によってすべてのコールに初期オーバーヘッドはありません。

スケーラビリティとパフォーマンスを最適化するためにこれを行うことをお勧めしますか?それが必要ない場合は複雑さを増すのでしょうか?

答えて

1

投稿を読むことで、この圧縮を非常に簡単に実装できたようです。

両方の側面を制御する場合、圧縮/圧縮解除のレイヤーを追加しても、一般的なシナリオの複雑さが増すことはありません。

InterceptorDecoratorのようなパターンを実装することで、複雑さを最小限に抑えるためにできることは何ですか?

1

あいまいな圧縮形式を使用していない限り、私はあなたに相当な複雑さを加えているとは思わない。 1行または2行のコード。おそらく、クライアントが圧縮されたデータまたは圧縮されていないデータを選択できるようにするパラメータをサービス呼び出しに追加することができます。

0

暗号化のために私がすべきことすべてをより具体的にすることができます&圧縮と復号化&両端でデータを正常に解凍しますか?大規模なデータの圧縮に最適な圧縮Algoは、圧縮と解凍の時間が短く、小さなデータを圧縮および解凍する時間が短く、クライアントとサーバー間で効率的にデータを転送します。

@decyclone:インターセプタまたはデコレータとは何ですか?具体的かつ明確にしてください。