JUGEMテーマ:インターネット
中国の大規模サイトのアーキテクトと話す機会がありました。
(かなり大きいサイトです)
ロジック(ドメイン)層は、Spring + POJO 、View は Velocity, MVC フレームワークは自作、O−Rマッピングは、iBatis 。
MVCフレームワーク以外は、私たちのやっている技術と同じだったので、すっかり意気投合してしまいました。
ORマッピングは、当初は、hibernate だったそうですが、サイトの規模が急成長して、性能面の問題がでてきた時に、iBatis に乗り換えたそうです。
これだけの規模のサイトでも、データベースは、中央に一つあるだけ。だから、DBアクセスがクリティカルな性能ボトルネックになる。
hibernate だと SQL 操作が隠蔽され、非効率なSQL操作の発見やチューニングがとてもやりにくかった。
iBatis にしたのは、SQL文を透明に扱えて、SQLレベルの調整が簡単だから、ということです。
テーブル設計、SQLチューニング、サーバーチューニングを担当するデータベース技術者もかなりレベルの高い人材を当てているようでした。だからこそ iBatis なのかもしれません。
私は、ビジネスアプリケーションの開発には、データベース技術が中核技術だし、開発者は、データベース技術の習得が必須と思っていますので、 hibernate の SQL 隠蔽指向より iBatis の SQLを直接宣言する方式のほうが、開発効率が良いと思っています。
大規模なサイトで、Spring, iBatis, Velocity が活用され、性能や安定性が実証されていることを、現場の人と話せたことは貴重な経験でした。