.NETでRPC (Remote Procedure Call) 技術と言えば.NET Remotingなわけで自分もかつて多少は使ったことがあるのだが、使い方以外の詳細についてはおぼろげになっていた。
ところが本日 別チームのPL君から質問を受けたことから、「そういえば忘れてるなぁ〜」ってことで家に帰ってから復習がてら色々な書籍、雑誌をひっくり返してみる。
.NET RemotingとWebサービスとの比較において一般的に言われるのがパフォーマンスであるが、.NET RemotingでもHttpチャネル+SOAPフォーマッタであれば、Webサービスとの速度差はそれほどないということで、tcpチャネル+binaryフォーマッタであれば確かに速度差はでるが、たかが数回の呼び出しでパフォーマンスが影響することはあるだろうか?という見解もある。
.NET RemotingはコンソールアプリやWindowsフォーム上での動作が可能だが、Webサービスは国際標準仕様であることから他プラットフォーム、MS Office、Flashとの連携も可能ってことですかね。
ただ.NET RemotingはWebサービスと違ってステートフル (状態保持可能) なのと、コールバックが可能であることは明確なアドバンテージだよなぁ。
あ〜そういえば嘘を言ったような気がするんやけど、.NET Remotingの場合ってトランザクション制御って想定されてないよなぁ・・BusinessLogicを外に出すならやっぱりServicedCompornent (COM+) でええような気もするってか、.NET Remotingでトランザクション制御しようと思ったらひょっとして手動実装ですか?
あ〜なんかこの辺ごっちゃになってるなぁ〜 > 俺
う〜ん、ちょっとこのあたり課題ってことで今度Tech版に気合入れてまとめます(^^)
ってかやはりこのあたりは9月に発売予定の.NET技術大全 「トランザクション設計編」の発売を待つのが吉とみた。
色々と調べてみたけど、.NET RemotingとWebサービスって結構意見が分かれてるみたいで・・(^^;