.NET Framework 同士のプロセス間通信に使用される .NET Remoting技術。
前回の「[SC] Webサービスとの送受信方法はどの形が良いか!?」検証をこの.NET Remotingでやった場合の比較です。
RemotingはWebサービスのように異なるプラットフォーム間では利用できません。
あくまで.NET間のみのやりとりになるので、.NETだけで構築する場合のみ有効です。

construct2.gif

■パターンは前回と同じ下記の4種類
DDataSetそのまま
E.NET 2.0から新たに追加されたDataSet.RemotingFormatプロパティ=Binary圧縮機能
FDataSetの内容をXML文字列にして、その文字列をバイト配列に変換
GFのバイト配列をさらに、.NET 2.0で追加された圧縮機能で圧縮

■テキストにして21KBのマスタデータ(22行22列)を送受信した結果
パターン データ型 圧 縮 データサイズ Bytes 対標準送信(%)
(KB) 上り(C→S) 下り(S→C) 上り(C→S) 下り(S→C)
D DataSet型 RemotingFormat=Xml 21 20,887 20,626 100 100
E RemotingFormat=Binary 48,028 47,767 229.94 231.59
F バイト配列型 無効 29,164 28,927 60.72 60.56
G 有効 2,076 1,809 7.12 6.25


■結果
1) .NET 2.0のDataSet新機能 RemotingFormatプロパティは期待外れ?
少ないデータだとバイナリにすると余計にサイズが大きくなってしまうのは明らかなのでデータ量による検証が必要。
2) バイナリ型を送受信するとWebサービスのときはGZip圧縮をしない場合、逆にサイズが大きくなってしまったが
RemotingではGZip圧縮しなくてもサイズ対比で良くなっている。
3) Remotingはバイナリ型と相性がいいらしい



【参考】前回との対比表
送信方法 圧縮 パターン 上り(C→S) 対比
(%)
データ型 対比
(%)
上り(C→S) パターン 送信方法
下り(S→C) 下り(S→C)
Webサービス 無効 @ 19,263 100 DataSet型 100 20,887 D .NET Remoting
有効 19,277 100 100 20,626
無効 A 19,262 99.99 229.94 48,028 E
有効 3,383 17.55 231.59 47,767
無効 B 38,980 202.37 バイト配列型 60.72 29,164 F
有効 39,024 1,153.53 60.56 28,927
無効 C 2,863 7.34 7.12 2,076 G
有効 2,923 7.49 6.25 1,809