- - PR -
データの圧縮
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-07 17:11
いつもお世話になっております。
宮崎と申します。 VB.NETを利用してC/Sシステムを WebServiceとWindowsアプリケーションで作成しております。 その開発で WebServiceから取得しなければいけないデータ量が多すぎて レスポンスが悪く困っております。 現時点では、下記のような処理をしております。 1.クライアントからWebServiceのデータセット型メソッド(A)を要求する。 2.Aのメソッドでは ・データベースに接続しデータを取得 ・取得したデータをDataSetで返す。 3.クライアントで受け取ったデータを表示する。 2〜3へ受け渡すXml(WebServiceを呼び出しているのでXmlのデータがクライアントに返っていると考えております。)のデータを圧縮することはできないのでしょうか? 以上 よろしくお願いいたします。 | ||||||||
|
投稿日時: 2004-05-07 19:39
みやぼんさん、こんばんは。
DataSet をそのまま返さずに、BinaryFormatter でシリアライズして圧縮し、バイト配列として返すようにした場合、Webメソッドが返すデータ量は削減できるんでしょうか? 良かったら、試してみませんか? ちなみに圧縮・解凍に関してはC#で書かれたZipライブラリなんかがあります。 | ||||||||
|
投稿日時: 2004-05-07 21:14
あるいは、非同期呼び出ししてみるとか。
_________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2004-05-10 09:28
ご返信ありがとうございます。
できれば、返されるXML自体のデータを圧縮したかったのですが、 無理でしょうか? (Clientサイドのモジュールをすでに配布しているため ロジック変更が難しいのです。。) IISのHTTP圧縮機能を使用したのですが、 いまひとつ効果が得られませんでした。 申し訳ございません。 | ||||||||
|
投稿日時: 2004-05-10 09:58
無理、というか、それをすると「Webサービス」でなくなってしまいます。Webサービスで返すものは、仕様が決まっています。XMLを圧縮すると、XMLでなくなってしまいます。 #JavaのクラスファイルをZip圧縮して配布するイメージを期待している? | ||||||||
|
投稿日時: 2004-05-10 10:49
みやぼんさん、こんにちは。
恐らく同じ技術なのだろうとは思いますが、こんなのもありますね。 | ||||||||
|
投稿日時: 2004-05-10 11:44
こんにちは、みやぼんさん。
SoapExtension クラスを用いれば実装できますが、 クライアント サイドで解凍するコードの追加がどうしても必要になると思いますので、 モジュールの再配布は必須になりますね… Google で "SoapExtension" と "ProcessMessage" で検索、 結果のリンク先を参考にしてみてください。
IIS の HTTP 圧縮は、デフォルトでは ASP.NET XML Webサービスの圧縮を行いませんので、 IIS のメタベースを編集する必要があります。 こちらは、下記のリンク先が参考になると思います。 http://www.microsoft.com/japan/technet/treeview/default.asp?url=/japan/technet/prodtechnol/iis/iis5/maintain/featusability/httpcomp.asp 細かくはチェックしていないのですが、とりあえず、パラメータ "HcScriptFileExtensions" の値を空白(全てを出力を圧縮)に設定すると、 XML Web サービスのHTTP 圧縮が有効になります。 | ||||||||
|
投稿日時: 2004-05-10 12:04
皆様ご返信ありがとうございます。
私も下記のようなサイトを発見いたしましたので 一度実装をして見ます。 ただ、ユーザーに説明し、工数が出てからのお話になりますので 結果をお伝えできるのは、先のお話になってしまうかもしれません。 (申し訳ございません。) http://www.ogis-ri.co.jp/otc/hiroba/technical/AxisDotNet/ |