More Related Content
Similar to RWC2012(ワコムアイティ&テクノプロジェクト)
Similar to RWC2012(ワコムアイティ&テクノプロジェクト) (20)
RWC2012(ワコムアイティ&テクノプロジェクト)
- 1. Ruby World Conference 2012
Rubyによる自治体様向け
大規模基幹系業務システムの
開発事例
~島根県様向け予算編成支援システム~
2012年11月8日
株式会社ワコムアイティ 今岡 克己
株式会社テクノプロジェクト 飛田 健一朗
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved.
- 3. 開発に至った経緯(1/2)
既存システムの概要
クライアント/サーバ型システム (サーバ分散型)
クライアントパソコンにアプリケーションを配置
【画面】MS Visual Basic 5 / 【帳票】Pegasus Reports 1.56
A拠点 B拠点
PGM PGM
DB DB
PGM PGM
データ通信
サーバ:4台
パソコン:約600台
Web型システムが主流となっている今日では、
二世代ほど前の構成で開発されたレガシーシステム。
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 2
- 5. 業務要件(1/2)
既存システムの仕様を踏襲
業務フロー 画面レイアウト
必要な機能改善
踏襲する仕様 業務機能 帳票レイアウト
も実施(44件)
データベースレイアウト
C/S型既存システムの仕様を踏襲する再開発
画面に関して、きめ細かく設定できるC/S型に比べ、Web型は制限事項が多い
利用者からは使い慣れた画面や操作性にギャップが生じる懸念がある
【画面数】 225
開発規模 【帳票数】 114
【テーブル数】 92
過去に例のない大規模なシステム開発
開発の生産性が全体コストに大きく影響
生産性を向上する仕組みづくりが必要
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 4
- 7. システム構成(1/2)
サーバ構成
サーバ群 (プライベートクラウド) 利用者パソコン
(約600台)
Web/AP1 Web/AP2 DB 帳票
サーバ サーバ サーバ サーバ
ディスク容量 80GB ディスク容量 300GB Windows XP,7
メモリ 4GB メモリ 8GB Internet Explorer 6,8
CPU X5670 CPU X5670
(2.93GHz/6コア) (2.93GHz/6コア)
負荷分散装置
二重化による 帳票生成処理専用化による
サーバ単位の負荷を軽減 他処理(DBアクセス等)の影響を抑止
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 6
- 8. システム構成(2/2)
ソフトウェア構成
業務要件(既存システム仕様の踏襲)を踏まえ、
コスト・品質・性能のあらゆる側面から検討し、新規部分と踏襲部分を決定!
種類 既存システム 開発システム 選定理由
AP Visual Basic 5 Ruby 1.9.2
(プロジェクト発足時点の)
(オンライン) Ruby on Rails 3.0.7
最新バージョンを選定
AP COBOL V7.2 COBOL V10.2 既存資産(COBOL)の活用による全体コス
(バッチ) ト低減・品質確保
DBMS Oracle 10g Oracle 11g 互換性からデータ移行に掛かるコスト低減
既存資産(DB操作プログラム:PL/SQL)の
活用による全体コスト低減・品質確保
Print Pegasus Reports 1.56 Interstage ListCreator V9.2 帳票生成速度、および開発実績あり
<富士通製>
OS Windows Server 2003 Red Hat Enterprise Linux 6 Windowsと比較してRubyの処理速度が上
(DB、帳票サーバは Passengerの適用
Windows Server 2008)
OSS製品 商用製品
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 7
- 9. 実施体制(1/3)
スキーム
開発に必要スキル・ノウハウを保有する島根県内の企業で実施
必要なスキル・ノウハウ
業務 管理 技術
予算編成業務 自治体市場におけるプロ RubyをはじめとしたOSSに関
既存システムの仕様・運用 ジェクトマネジメント・Ruby業 する開発技術・技術者教育
務システムの開発実績
ネットワーク
ワコムアイティ テクノプロジェクト
応用通信研究所
飛田
【総工数】 約100人月超 【開発メンバ】 20人
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 8
- 10. 実施体制(2/3)
役割分担(1/2)
開発手法の理解が必要
データ 研修
設計
移行 運用
Ruby1.9系/Rails3.0系の技術
習得が必要
業務 インフラ
プロマネ
AP開発 構築
既存システムの仕様の
既存システムの仕様が
理解が必要
分からない…
開発規約の作成
共通部品の作成
標準化 プロトタイプの作成
複数企業によるスキームにおいては、各社の”強み”だけでは実施出来ない。
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 9
- 11. 実施体制(3/3)
役割分担(2/2)
【プロジェクト開始】
データ 研修 業務、既存システム
設計 の仕様の説明
移行 運用
インフラ プロマネ 【プロジェクト開始】
業務
構築 (飛田) プロジェクト計画
AP開発
開発手法
開発規約の作成
共通部品の作成
標準化 プロトタイプの作成 【開発工程前】
Ruby1.9系/Rails3.0
系の注意点
各社の役割を遂行するのに不足するスキルやノウハウの分析・把握
必要なタイミングで補完する取り組み(勉強会、ドキュメント作成など)
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 10
- 12. 開発の進め方(1/3)
スケジュール
2010年度 2011年度 2012年度
1月 4月 7月 10月 1月 4月 7月
1年5ヶ月 / ウォーターフォール型開発
開発範囲の
確定 設計書作成
仕様凍結
要件 概要設計
定義 詳細設計 総合 試行
本運用
プログラム開発・単体テスト テスト 運用
標準化
結合テスト
標準化工程の設置によるルール作り 早期の開発着手によるルールの検証
成果物(設計書、ソース)の 手戻りによるリスク(コスト増大、
バラつきを抑止 納期圧迫)を抑止
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 11
- 13. 開発の進め方(2/3)
Point①:標準化工程の設置
開発に使用する「もの」だけでなく、「もの」の使い方も含めて作成。
規約作成 共通部品作成 プロトタイプ作成
画面・帳票設計規約 既存システムの踏襲 プロトタイプの作成
(レイアウト、ドキュメント記述) 既存共通部品の活用 (画面・帳票より選定)
画面HTML作成手引き (他システムでの作成分) プロトタイプ説明書の作成
(テンプレート、記述ルール) 使用手引書の作成 (コード解説)
画面HTML部品集 (処理、引数・戻り値、使用例) 逆引き一覧
(コントロールとコードを集約) (処理と説明書の紐付け)
Rubyコーディング規約
お客様に実機上で画面の見栄えや操作性を確認頂く。
システムで実現する範囲と制限事項として了承頂く範囲とを合意。
(コストや品質の側面から)
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 12
- 14. 開発の進め方(3/3)
Point②:開発の早期着手
開発機能をサブシステム単位に5グループに分割し、五月雨式に開発。
設計規約・開発規約
フィードバック 同等処理が散乱!
共通部品
部品化しよう!
機能
概要設計 詳細設計 プログラム開発・単体テスト
Grp① 成熟したルールの
適用が可能
機能
概要設計 詳細設計 プログラム開発・単体テスト
Grp②
・・・ ・・・ ・・・ ・・・ ・・・
機能
概要設計 詳細設計 プログラム開発・単体テスト
Grp⑤
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 13
- 15. 開発結果(1/2)
生産性
開発規模 243 Kstep
開発工数 105 人月 (概要設計~結合テスト)
開発生産性 2.31 Kstep/人月
類似システムや類似手法による開発のコスト計画として活用
C/S型からの再開発 (既存システム仕様の踏襲)
ウォータフォール型開発
概要設計~結合テスト
納品用ドキュメント作成が必要 (設計書、テスト仕様書・成績書)
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 14
- 16. 開発結果(2/2)
性能
【 試験方法と試験結果 (一例) 】
画面名 A画面 B画面 使用頻度(同時使用)が多い画面
より選定
処理機能 検索実行 帳票出力 サーバ処理より選定
データ量 14件 11ページ 過去データより平均値を選定
多重度 1多重 5多重 過負荷 1多重 5多重 過負荷 【1多重】単一アクセス
【5多重】5台同時実行(平均値)
【過負荷】21台で任意操作
処理時間 既存 1.1 ─ ─ 4.1 ─ ─ ストップウォッチでの計測
(秒) 既存システムは、環境制約等に
新 0.7 1.5 1.6 3.2 3.9 4.2 より一部実施不可
既存システムより性能アップ 多重度が増えても大幅な性能劣化には至らず
ただし、最終結果に行くつくまでには、以下の対策が必要であった。
DB操作プログラム(PL/SQL)のチューニング
memcache-clientをDalliに変更 ⇒ memcache-clientは既に非推奨。常に情報収集が必要。。。
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 15
- 17. 本稼働後の状況
納期 予定通り、2012年7月本稼働
Ruby / Ruby on Railsの根本に起因するトラブルはなし
品質 致命的なアプリケーションに係るトラブルはなし
システム基盤に係るトラブルはなし
システム性能に関するお客様からのクレームはなし
性能 (既存システムと比較して「早くなった」との声も頂いている)
システム資源圧迫によるシステムダウン・性能劣化はなし
Rubyによる大規模基幹系業務システムの実現を、
実績をもって証明できた。
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 16
- 18. 今後への期待
大規模基幹系業務システムへのRubyの適用が可能 実績
C/S型で稼働しているシステムは存在 市場
自治体市場における”Ruby”ビジネス拡大の期待
競争力
島根県内のIT企業で実施
自信
”Ruby”を武器としたIT企業のビジネス拡大の期待
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 17
- 19. 今岡 克己
藤原 彰人
林原 学
三島 章
遠藤 浩明
山崎 真一
飯濱 千紘
金築 民男
杉山 智一
藤見 昌延
飛田 健一朗
田頭 達也
村上 優樹子
大西 美香
菊井 則和
清水 道雄
喜多川 豪
野坂 秀和
中村 成洋
ご清聴、ありがとうございました。
Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved.