@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

Webサービスによるデータの送受信について

投稿者投稿内容
yyy
常連さん
会議室デビュー日: 2004/01/27
投稿数: 33
投稿日時: 2006-03-22 11:40
いつも参考にさせて頂いております。Webサービスを利用したデータの送受信について御指摘を頂けましたならばを思い、投稿させて頂きます。

開発環境:VS2005(VB8+ASP2.0/OS:XP SP-2)
Webサーバ:Windows2000 SP-4
DBMS:SQLServer 2000

上記の環境にて、SQLServerにデータファイル(ExcelBook、Word文章等)を格納及び、取得
するWebサービスを作成し、それを利用するWindowsアプリケーションを作成致しました。
(格納/取得ともWindowsアプリケーションからByte配列にてWebサービスに渡しております。)
このアプリケーションをローカルPCにてデバックし、10MB程度のファイルをDBに格納/取得する場合は
10秒程度で完了するのですが、WebサービスをWebサーバに配置した後、アプリケーションを実行
すると、格納はローカルPC実行時と同様なのですが、取得に要する時間が60秒程度に
なってしまいました。ネットワーク上負荷が問題とは考えられず、web.config又は、
IISの設定等と考えているのですが、確認点を御存知の方が居られましたならば、
御指摘頂けますでしょうか。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-03-22 11:56
詳しく調べないと分からないので想像ですが。

取得する時のほうがデータ量が多いのではないでしょうか。
例えば、格納時は「10」、取得時は「60」のデータ量があるとします(数値は相対)
ローカルで実行した場合は「10」のデータを格納する時にかかる時間は「10」。「60」のデータを取得する時にかかる時間が「11」だとします。(つまり多くても少なくても殆ど差が無い)
それがネットワーク越しだと「10」のデータを格納する時にかかる時間は「11」。「60」のデータを取得する時にかかる時間が「60」になったとか。(つまりデータ量によって差ができる)

引用:

ネットワーク上負荷が問題とは考えられず


の根拠はわかりませんが、そう断定するのは早計かと。
_________________
囚人のジレンマな日々
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-22 12:12
半角カナを全角カナに置き換えさせて頂いております

引用:

yyyさんの書き込み (2006-03-22 11:40) より:

WebサービスをWebサーバに配置した後、アプリケーションを実行すると、
格納はローカルPC実行時と同様なのですが、取得に要する時間が60秒程度になってしまいました。


配置というのは、「Web サービスを介して検証しましたよ」ということですよね?

引用:

ネットワーク上負荷が問題とは考えられず、web.config又は、IISの設定等と考えているのですが、確認点を御存知の方が居られましたならば、御指摘頂けますでしょうか。


Web サービス側の詳細な情報がないので何とも言えませんね。
確かに「セキュリティ関係」を疑う余地はあると思いますけど。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
yyy
常連さん
会議室デビュー日: 2004/01/27
投稿数: 33
投稿日時: 2006-03-22 13:31
囚人様、じゃんぬねっと様御指摘有難う御座いました。
・格納及び、取得するファイルのサイズは同様に10MBとなっております。
(格納時及び、取得したByte配列のLengthは同値でした。)>囚人様

・Webサービスを介して検証致しました。>じゃんぬねっと様

ネットワーク上の負荷に関しましては、IIS上でのセッション数の制限等も
実施しておりませんし、同一Webサーバに配置してある別サイトでの
HTTPによるファイルのアップロード及び、ダウンロード(こちらはASP
にて作成)ではこれ程の遅延は発生しておりません。
じゃんぬねっと様が仰っている「セキュリティ関連」とはどの様な点でしょうか?
ローカルPCよりの格納/取得が出来て、Webサーバを介して出来ないので
あれば、ある程度確認点に検討がつきますが、時間がかかるだけで処理完了して
いますので、認証に時間がかかっているということでしょうか?



[ メッセージ編集済み 編集者: yyy 編集日時 2006-03-22 13:32 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-03-23 22:46
Soap でやりとりするんだから、そんなもん。

流れているデータを見ればわかる。バイナリを Base64 エンコードして、テキストデータ(XML)でやりとりしているはず。
ロンロン
ベテラン
会議室デビュー日: 2004/01/08
投稿数: 58
お住まい・勤務地: TOKYO
投稿日時: 2006-03-24 00:19
>>ネットワーク上負荷が問題とは考えられず
本当にそう断定できる材料があるのでしょうか?
とりあえずクライアント側とサーバ側でキャプチャし、
送信時間と受信時間のタイムスタンプの比較検証をしてみては??

イントラで100baseだと油断してても、
案外無駄なパケットうじゃうじゃで実際はうんと狭かったりします。

ブツは10MBと結構巨大ですよね。
現在利用しているネットワークの下りの平均帯域で10MBを単純に割り算するだけで、
最低限絶対必要な通信時間は予測つきそうですが、yyyさんの環境はどうなんでしょうか?
(Jitta氏が言うようにSOAPのオーバヘッドはそんな単純なモノではありませんがw)
yyy
常連さん
会議室デビュー日: 2004/01/27
投稿数: 33
投稿日時: 2006-03-26 10:52
ご指摘を頂いて申し訳ないのですが、Jitta様のご指摘内容がわかりません。
テキストベースでやり取りされているのだから、10MBのサイズが実際は
その数倍となるため時間がかかるとおっしゃっているのか、別の意味なのか。

ファイルの格納/取得が同様に時間がかかるわけではなく、取得時のみ
かかるという点が腑に落ちません。とりあえずキャプチャを実施してみよう
と思います。ありがとうございました。>ロンロン様
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2006-03-26 12:07
諸農です。

引用:

テキストベースでやり取りされているのだから、10MBのサイズが実際は
その数倍となるため時間がかかるとおっしゃっているのか、



Base64だと3バイトが4バイトに膨らみますね。
あと10MBデータのエンコード/デコードの処理である程度の時間的犠牲があるのかも。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/

スキルアップ/キャリアアップ(JOB@IT)