rubyによる自治体様向け 大規模基幹系業務システムの...

19
Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例 島根県様向予算編成支援システムRuby World Conference 2012 Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 島根県様向予算編成支援システム2012年11月8日 株式会社ワコムアイティ 今岡 克己 株式会社テクノプロジェクト 飛田 健一朗

Upload: others

Post on 01-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

Rubyによる自治体様向け大規模基幹系業務システムの

開発事例~島根県様向け予算編成支援システム~

Ruby World Conference 2012

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved.

~島根県様向け予算編成支援システム~

2012年11月8日

株式会社ワコムアイティ 今岡 克己

株式会社テクノプロジェクト 飛田 健一朗

Page 2: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

○月補正予算

当初予算

予算編成支援システムとは行政事務の中核となる「予算編成事務」の効率化

予算要求から決定に至る各事務で必要となる書類を作成

要求 査定 議案書作成

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 1

予算書 予算書 議案書

内部協議内部協議 議会議会

DB DB DB 帳票作成にかかる職員様の労力や

負担を軽減

Page 3: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

開発に至った経緯(1/2)

クライアント/サーバ型システム (サーバ分散型)

クライアントパソコンにアプリケーションを配置

【画面】MS Visual Basic 5 / 【帳票】Pegasus Reports 1.56

既存システムの概要既存システムの概要

PGMPGM

A拠点 B拠点

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 2

サーバ:4台

パソコン:約600台

DBPGM

DBPGM

データ通信

Web型システムが主流となっている今日では、二世代ほど前の構成で開発されたレガシーシステム。

Page 4: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

開発に至った経緯(2/2)

クライアントパソコン環境の変化に伴うシステム改修(OSのバージョンアップ)

MS Visual Basic 5 のサポートが既に終了

Windows VISTAではPegasus Reportsが動作しない

既存システムの課題既存システムの課題

クライアント環境には依存せず、ブラウザのみあれば動作するシステム、つまりWeb型システムへの移行が必要。

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 3

つまりWeb型システムへの移行が必要。

で解決!

Page 5: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

業務要件(1/2)

既存システムの仕様を踏襲既存システムの仕様を踏襲

業務フロー業務機能踏襲する仕様

C/S型既存システムの仕様を踏襲する再開発

画面に関して、きめ細かく設定できるC/S型に比べ、Web型は制限事項が多い

画面レイアウト帳票レイアウトデータベースレイアウト

必要な機能改善も実施(44件)

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 4

【画面数】 225【帳票数】 114【テーブル数】 92

開発規模

利用者からは使い慣れた画面や操作性にギャップが生じる懸念がある

開発の生産性が全体コストに大きく影響

生産性を向上する仕組みづくりが必要

過去に例のない大規模なシステム開発

Page 6: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

業務要件(2/2)

利用者数は600人、大量データ出力帳票あり利用者数は600人、大量データ出力帳票あり

●業務の特性上、特定の時期に集中して利用される。

ピーク時は同時100人程度の利用が想定

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 5

●1帳票当りの最大規模として、出力データサイズ:13MB

同時アクセス数や処理データ量が多いと、性能劣化を引き起こす懸念がある

性能を確保する仕組みづくりが必要

同時アクセス数や処理データ量が非常に多い

Page 7: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

システム構成(1/2)

サーバ構成サーバ構成

利用者パソコン(約600台)

サーバ群 (プライベートクラウド)

Web/AP1サーバ

Web/AP2サーバ

DBサーバ

帳票サーバ

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 6

負荷分散装置

二重化によるサーバ単位の負荷を軽減

帳票生成処理専用化による他処理(DBアクセス等)の影響を抑止

ディスク容量 80GB

メモリ 4GB

CPU X5670 (2.93GHz/6コア)

ディスク容量 300GB

メモリ 8GB

CPU X5670 (2.93GHz/6コア)

Windows XP,7

Internet Explorer 6,8

Page 8: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

システム構成(2/2)

ソフトウェア構成ソフトウェア構成

種類 既存システム 開発システム 選定理由

AP(オンライン)

Visual Basic 5 Ruby 1.9.2Ruby on Rails 3.0.7

AP COBOL V7.2 COBOL V10.2 既存資産(COBOL)の活用による全体コス

(プロジェクト発足時点の)最新バージョンを選定

業務要件(既存システム仕様の踏襲)を踏まえ、コスト・品質・性能のあらゆる側面から検討し、新規部分と踏襲部分を決定!

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 7

(バッチ) ト低減・品質確保

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(DB、帳票サーバはWindows Server 2008)

Windowsと比較してRubyの処理速度が上Passengerの適用

OSS製品 商用製品

Page 9: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

必要なスキル・ノウハウ

予算編成業務既存システムの仕様・運用

実施体制(1/3)

業務

自治体市場におけるプロジェクトマネジメント・Ruby業務システムの開発実績

管理

RubyをはじめとしたOSSに関する開発技術・技術者教育

技術

スキームスキーム

開発に必要スキル・ノウハウを保有する島根県内の企業で実施

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 8

務システムの開発実績

ワコムアイティ テクノプロジェクトネットワーク

応用通信研究所

【総工数】 約100人月超 【開発メンバ】 20人

飛田

Page 10: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

実施体制(2/3)

業務

データ移行

研修運用

インフラプロマネ

役割分担(1/2)役割分担(1/2)

設計

開発手法の理解が必要

Ruby1.9系/Rails3.0系の技術習得が必要

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 9

業務AP開発

標準化

インフラ構築

プロマネ

開発規約の作成共通部品の作成プロトタイプの作成

既存システムの仕様が分からない…既存システムの仕様の理解が必要

複数企業によるスキームにおいては、各社の”強み”だけでは実施出来ない。

Page 11: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

実施体制(3/3)

役割分担(2/2)役割分担(2/2)

【プロジェクト開始】

業務、既存システムの仕様の説明

【プロジェクト開始】業務

データ移行

研修運用

インフラ プロマネ

設計

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 10

開発規約の作成共通部品の作成プロトタイプの作成 【開発工程前】

Ruby1.9系/Rails3.0系の注意点

各社の役割を遂行するのに不足するスキルやノウハウの分析・把握必要なタイミングで補完する取り組み(勉強会、ドキュメント作成など)

【プロジェクト開始】プロジェクト計画開発手法

業務AP開発

標準化

インフラ構築

プロマネ(飛田)

Page 12: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

開発の進め方(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

定義 詳細設計

プログラム開発・単体テスト

結合テスト

総合テスト

試行運用

本運用

標準化

標準化工程の設置によるルール作り 早期の開発着手によるルールの検証

成果物(設計書、ソース)のバラつきを抑止

手戻りによるリスク(コスト増大、納期圧迫)を抑止

Page 13: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

開発の進め方(2/3)

Point①:標準化工程の設置Point①:標準化工程の設置

画面・帳票設計規約(レイアウト、ドキュメント記述)画面HTML作成手引き(テンプレート、記述ルール)画面HTML部品集(コントロールとコードを集約)

規約作成

既存システムの踏襲既存共通部品の活用(他システムでの作成分)使用手引書の作成(処理、引数・戻り値、使用例)

共通部品作成

プロトタイプの作成(画面・帳票より選定)プロトタイプ説明書の作成(コード解説)逆引き一覧(処理と説明書の紐付け)

プロトタイプ作成

開発に使用する「もの」だけでなく、「もの」の使い方も含めて作成。

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 12

(コントロールとコードを集約)Rubyコーディング規約

(処理と説明書の紐付け)

お客様に実機上で画面の見栄えや操作性を確認頂く。システムで実現する範囲と制限事項として了承頂く範囲とを合意。(コストや品質の側面から)

Page 14: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

開発の進め方(3/3)

Point②:開発の早期着手Point②:開発の早期着手

開発機能をサブシステム単位に5グループに分割し、五月雨式に開発。

設計規約・開発規約共通部品

同等処理が散乱!部品化しよう!

フィードバック

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 13

概要設計 詳細設計 プログラム開発・単体テスト機能Grp①

機能Grp②

・・・ ・・・ ・・・ ・・・ ・・・

概要設計 詳細設計 プログラム開発・単体テスト

機能Grp⑤

概要設計 詳細設計 プログラム開発・単体テスト

成熟したルールの適用が可能

Page 15: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

開発結果(1/2)

生産性生産性

開発規模

開発工数

243 Kstep

105 人月 (概要設計~結合テスト)

開発生産性 2.31 Kstep/人月

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 14

C/S型からの再開発 (既存システム仕様の踏襲)

ウォータフォール型開発

概要設計~結合テスト

納品用ドキュメント作成が必要 (設計書、テスト仕様書・成績書)

類似システムや類似手法による開発のコスト計画として活用

Page 16: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

開発結果(2/2)

性能性能

画面名 A画面 B画面 使用頻度(同時使用)が多い画面より選定

処理機能 検索実行 帳票出力 サーバ処理より選定

データ量 14件 11ページ 過去データより平均値を選定

多重度 1多重 5多重 過負荷 1多重 5多重 過負荷 【1多重】単一アクセス【5多重】5台同時実行(平均値)【過負荷】21台で任意操作

【 試験方法と試験結果 (一例) 】

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 15

【過負荷】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は既に非推奨。常に情報収集が必要。。。

既存システムより性能アップ 多重度が増えても大幅な性能劣化には至らず

ただし、最終結果に行くつくまでには、以下の対策が必要であった。

Page 17: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

本稼働後の状況

品質

Ruby / Ruby on Railsの根本に起因するトラブルはなし

致命的なアプリケーションに係るトラブルはなし

システム基盤に係るトラブルはなし

システム性能に関するお客様からのクレームはなし

納期 予定通り、2012年7月本稼働

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 16

性能

システム性能に関するお客様からのクレームはなし

(既存システムと比較して「早くなった」との声も頂いている)

システム資源圧迫によるシステムダウン・性能劣化はなし

Rubyによる大規模基幹系業務システムの実現を、実績をもって証明できた。

Page 18: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

今後への期待

自治体市場における”Ruby”ビジネス拡大の期待

C/S型で稼働しているシステムは存在

大規模基幹系業務システムへのRubyの適用が可能 実績

市場

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved. 17

”Ruby”を武器としたIT企業のビジネス拡大の期待

島根県内のIT企業で実施競争力

自信

Page 19: Rubyによる自治体様向け 大規模基幹系業務システムの 開発事例2012.rubyworld-conf.org/files/slides/rwc2012_A-2.pdf · Visual Basic 5 Ruby 1.9.2 Ruby on Rails

今岡 克己藤原 彰人林原 学三島 章遠藤 浩明山崎 真一飯濱 千紘金築 民男杉山 智一

藤見 昌延飛田 健一朗

Copyright(c)2012 Techno Project. Co., Ltd. All Rights Reserved.ご清聴、ありがとうございました。

清水 道雄喜多川 豪野坂 秀和中村 成洋

飛田 健一朗田頭 達也村上 優樹子大西 美香菊井 則和