お世話になります。
現在、イントラ環境とAzure環境共にWCFのサービスを構築し、
同じ内容のWsHttpBindingとWebHttpBinding(JSON)のWCFサービス環境とし
これらについてデータ通信のパフォーマンスを計測しております。
サーバ環境
WCFサービス
同一内容のWsHttpBindingとWebHttpBinding(JSON)のサービスを実装し、
EntityFrameworkにてクエリを発行しデータを取得。
サービスの実行環境
①Azure
DB:SQL Azure
②イントラ
DB:SQL Server 2008 R2(WCFサービスとは別のサーバー)
WCFサービスのOS:Windows Server 2008 R2 Standard
尚、インターネット接続との境界にプロキシー サーバーが存在します。
クライアントの実行環境
Windows XP Professional
WCFクライアントからWCFサービスに
ChannelFactoryを使用してプロキシクラスを事前生成せずにクライアントからサービスに接続し
WsHttpBindingとWebHttpBinding(JSON)でなるべく同じ状態でデータを取得するためのテストプログラムを作成
以下が、上記環境にて通信のパフォーマンスを計測した結果です。
計測時間はサーバでの処理を省いたクライアントまでのレスポンス時間、
(WCFサービスのメソッド開始からリターンする直前までの間の処理時間を省いた時間)
WsHttpBindingでは14秒
WebHttpBinding(JSON)では12秒
とWebHttpBindingが約2秒ほど早い結果でした。
同様の環境をAzureに置き換え計測したとろこ、
WsHttpBindingでは33秒
WebHttpBinding(JSON)では62.5秒
と約30秒もWsHttpBindingが早くなり速度が大幅に逆転する結果となりました。
そこで質問ですが、
当方の計測では
WsHttpBindingとWebHttpBinding(JSON)の通信方式でServerの環境により、
通信速度が逆転してしまいましたがWebHttpBinding(JSON)はデータ量が少ないと考えているため、
なぜこのような結果となっているかが見当がつきません、
通信するうえでイントラ内のServer(Service)とWindowsAzure上のServer(Service)とでなにか考えられる違いがあるでしょうか?
そもそもAzureはこのようなものなのでしょうか?
もし以下の内容が原因だった場合はどのようにしたら確認できるでしょうか?
・どちらかのみデータが圧縮されている
・プロキシサーバなどでキャッシュされどちらかのしょりではその内容を取得している
・キャッシュに時間がかかっている
・通信経路が異なる
どうかご教授いただければと思います。
それではよろしくお願いします。