memo/20100909
created 2010-09-09 modified 2010-09-15
だいぶ前、RPCのフレームワークについて調べていて Thrift というライブラリの存在を知った。
なんでも、全米で10位に入るSNSサイトの開発のために作ったものを、公開したものらしい。
当時、select() APIを中心にすえたメインループライブラリに凝っていた私は、そのホワイトペーパーを夢中になって読んだ。
過去のRPCモノに対して着眼点が優れていたのが、APIのバージョンを通信に含めるという考え方だった。と、私は思う。
Thrift の通信には、バージョン情報が必ず入る。
それまでのRPCモジュールは、古くはSunのRPCや、DCEのRPC、あるいはCORBAに至るまで、クライアントとサーバは同一のバージョンであるのが当たり前、という考え方だった。サーバとクライアントのバージョンが異なれば、正常に動くわけがない、という常識。
インターネットが普及し、各々がサービスを提供する、サービスを利用する、という環境になった。Thriftを開発した彼らは「クライアントとサーバのバージョンは一致しないのが当たり前」と考える、新しい世代だった。
これは私にとって、オブジェクト指向のブーム、XMLの大連呼よりも、地味だが、ずっと衝撃的な驚きだった。
テレビが当たり前になれば、新しい世代はそれを前提とした面白いことを考えるようになる。
車が当たり前になれば、新しい世代はそれを前提とした面白いことを考えるようになる。
ネットが当たり前になれば、新しい世代はそれを前提とした面白いことを考えるようになる。
RPC分野に新しい世代が登場したということは、SunやDCE、あるいはCORBAの通信が、もはや計算機のカレントの華ではなくなったことを意味するのではないかと思わせる。
なんだかエアロスミスのファーストアルバムの解説みたいな歯切れの悪さで申し訳ない...自分、凡才なもんで。
で、今日なんとなくFacebookアカウント作ってみました。
Facebook