「COBOLとRuby on Railsのアプリケーション構造は似ており,ベテランSEのノウハウが生かせる。RubyでCOBOL技術者は復活する」---テクノプロジェクト 専務取締役 吉岡宏氏は2008年9月12日から13日にかけて開催されたオープンソースカンファレンス2008 Shimaneの講演で,松江市の高額医療費合算システムをRubyで開発した経験で得られた感想をこう語った。
テクノプロジェクトは,IPAの自治体へのオープンソースソフトウェア導入実証事業として,松江市の高額医療費合算システムをRuby on Railsで開発した。この実証の目的は,Rubyが自治体の基幹システムに耐えうることを実証することおよび,COBOL技術者がRubyでシステム開発するためのノウハウやライブラリの整備である。開発されたプログラムはオープンソース・ソフトウエアとして公開されており,また得られたノウハウも報告書として公開されている。
吉岡氏は「COBOLとRuby on Railsのアプリケーション構造は似ている」と言う。COBOLのシステムは業務ロジックと画面定義体,DBアクセス・ルーチンが分離されており,SEは業務ロジックに専念できた。Ruby on Railsでも画面はビューとして,DBアクセスはモデルとして分離されており,COBOL技術者にとって取り組みやすいと吉岡氏は語る。今回のプロジェクトには,50代の元COBOL技術者であるSE2人も参加している。
Rubyの生産性について,吉岡氏は「COBOLやC/Sシステムとほぼ同じだった」とする。全体の30%を占める設計工程はCOBOLでもRubuyでも同じ。全体の40%を占める製造工程は4分の3の工数で開発できた。全体の30%であるテスト工程は同じ。実際に開発する前は,Railsのテスト自動化機能によりテストの工数を削減できるのではないかと期待していたが,自動テスト機能は,プログラムの状態やデータベースの状態が同じでなければ使えないことなどにより削減できなかった。繰り返し型の開発で威力を発揮する自動テスト機能も,今回の開発はウォータフォール型で1回限りの開発のため工数削減にはつながらなかった。しかし全体を通して見れば工数を1割削減できている。
今回のシステムでは大量のバッチ処理がある。吉岡氏は「20年前と比べCPUの周波数はMHzからGHzへと1000倍になった。しかしディスクへのアクセス速度は20~40ミリ秒から10ミリ秒になった程度で,バッチ処理では依然としてディスクへのアクセスをどう削減するかがポイント」と指摘する。
そして吉岡氏は「RubyでCOBOL技術者が復活する」と宣言する。「基幹システムは業種・業務ノウハウが重要。自治体システムや医療システムにはそれぞれの特性があり,高額医療費合算システムでもベテランSEのノウハウが役立った」(吉岡氏)。汎用機のCOBOLシステムと同じ構造を持つRuby on RailsであればCOBOL技術者のノウハウを生かせると言う。
続いてテクノプロジェクト オープンシステム部 研究開発グループ 高木 丈智氏が,今回開発したバッチ管理機能と帳票印刷管理機能を紹介した。バッチはタスクとジョブとして定義し,Webブラウザから管理できる。帳票印刷はオープンソースの帳票ツールであるJasperReportやJRubyなどで開発しており,Railsプラグインとして提供している。
◎関連リンク
◆高額合算システム ソースコード・開発規約(テクノプロジェクト)
◆Rubyの普及を目指した自治体基幹業務システム構築 実施報告書(IPA)