<b>左から,開発プロジェクトに参加している木村雅彦氏,商用サポートを提供している飯田哲夫氏,Seasar2開発者の比嘉康雄氏(いずれもISID)</b>
<b>左から,開発プロジェクトに参加している木村雅彦氏,商用サポートを提供している飯田哲夫氏,Seasar2開発者の比嘉康雄氏(いずれもISID)</b>
[画像のクリックで拡大表示]

 電通国際情報サービス(ISID)は2006年7月19日,三菱東京UFJ銀行とUFJIS(三菱UFJフィナンシャル・グループのシステム子会社)が,国産のオープンソースJava開発フレームワークであるSeasar2を,大規模ミッション・クリティカル・システムの構築に採用したと発表した。UFJISがシステム・インテグレーションを担当し,ISIDがシステム開発を行う。なお,ISIDには,Seasar2のチーフ・コミッタである比嘉康雄氏(写真右)が在籍している。

 Seasar2を採用したのは,三菱東京UFJ銀行の市場系取引のリスク計算を行うシステムの開発。日本ヒューレット・パッカードのHP ProLiant BL20pを52台連携させたブレード・サーバーで動作している現行システムのハードウエアを流用し,システムのソフトウエア部分だけを入れ替える。2007年4月から順次本番稼働させる。

 現行システムは,主にUNIXのシェルとC言語で構築されている。このシステムの中で,コアのデータ・マッピングを行うビジネス・ロジック部分を中心にJavaに置き換える。目的は「保守性の観点ですべての設計思想を統一する」ことだ。具体的なSeasar2のプロダクトとしては,軽量コンテナのS2Container 2.3,O/Rマッピング・フレームワークのS2Dao,Webアプリケーション・フレームワークであるStrutsとの連携を実現するS2Strutsの三つを使用する。

 UFJISがSeasar2を採用した主な目的は,信頼性の高い「アスペクト指向プログラミング(AOP)」と「データ・アクセス・オブジェクト(DAO)」の機能を手に入れるためだという。AOP機能はS2Container,DAO機能はS2Daoがそれぞれ提供する。S2Daoは優れた開発効率を実現できることで定評があり,一般に「S2Daoを使いたい」というのがSeasar2を採用する大きな理由になることが多い。今回も,そうしたケースの一つだと考えられる。また,ISIDが「Seasar2商用サポートサービス」(参考記事)を提供しているのも,信頼性の観点で決め手になったという。

 UFJISとISIDがどのフレームワークを採用するかを検討したのは2006年のはじめ頃。Seasar2と競合するSpring FrameworkやO/Rマッピング・ツールとして名高いHibernateなど,考えられるフレームワークはすべて実際に評価したという。そうした作業を通してSeasar2の優位性を確認し,UFJISが三菱東京UFJ銀行に採用の了解を取った。

 Seasar2を採用することにより,Strutsを使っているWeb層以外はすべてPOJO(Plain Old Java Object,普通のJavaオブジェクト)を記述することで開発できる。複雑なAPIを覚える必要はない。このため,5日間程度の集中講義を行っただけで,初めてJavaを使う技術者でも問題なく開発を行っているという。

 比嘉氏は,Seasar2を採用する一般的な利点を二つ挙げた。まずコンポーネントが疎結合になる点。これによりコンポーネントを簡単に差し替えられるようになる。二つ目は,テストが容易になる点。疑似オブジェクトであるモックやテスティング・フレームワークのJUnitを利用することで,低コストでテストを行える。これによりモジュールの信頼性が向上する。