セミナー資料(抜粋版)pdfはこちら

オープンソースカンファレンス2008 Nagoya
Struts, Springを活用した
業務システム構築事例と
成功のポイント
2008年8月9日
野村総合研究所 情報技術本部
オープンソースソリューションセンター
松野 洋希
株式会社 野村総合研究所 情報技術本部 オープンソースソリューションセンター(OSSC)
Mail : [email protected]
Web: http://openstandia.jp/
自己紹介と会場アンケート
1
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
(事例の前に)
オープンソースの動向
2
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
オープンソースソフトウェアの
おさらい
3
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
Struts
MVC型Webアプリケーションフレームワーク
Struts
Action
Form
Request
Processor
Action
HTTP
strutsconfig.xml
JSP
Taglib
Webアプリケーションコンテナ
4
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
SpringFramework
軽量DIコンテナ
Java
Java
Injection
SpringFramework
トランザクション
AOP
Web F/W
連携
ORM連携
JMX
5
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
メッセージング
Hibernate
O/Rマッピングフレームワーク
Hibernate
キャッシュ
insert
save
Java
AOP
hbm.xml
6
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
DB
導入事例1:
不動産情報提供サイト
7
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
不動産情報提供サイト
プロジェクトの概要
• 不動産情報を提供するインターネットサイト
• 50万ページビュー/日
開発体制
• ピーク時は100人体制での開発
オープンソースの採用
• 初期コスト 数千万円 → 0円
• 保守コスト 数百万円/年 → 約半額
8
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
ソフトウェア構成
WebAPサーバ
アプリケーション
独自FW
Struts
EJB (SFSB)
JBossAS
Unix
9
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
DBサーバ
Oracle
標準化のポイント
・・・その前に
10
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
プロジェクトにおける標準化
目的
• ユーザから見た操作感の統一
• 品質の均質化
対象範囲
• 画面デザイン (フォーマット、色、文言、・・・)
• アプリケーションの構成
• 開発方法 (開発環境、プログラム、・・・)
• ネーミングルール、コーディングルール
• 共通部品
11
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
プロジェクト体制
アプリケーションチーム
アプリケーションの開発
APL共通部品
設計書標準化
アプリケーション基盤チーム
開発プロセス標準化
アプリケーション方式
(認証、文字コード、
メッセージング・・・)
基盤チーム
12
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
基盤設計・構築
環境設計
運用設計
性能テスト、障害テスト
標準化のポイント1:プロジェクトの問題点
問題点
• COBOLに慣れた開発者が多く、
Java開発に慣れていない
13
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
標準化のポイント1:アプリケーションアーキテクチャ
トランザクションスクリプトモデル
• 手続き型処理
独自FWによるEJB呼び出し処理の隠蔽
Action
(独自FW)
EJB
(独自FW)
BL
・・・
JSP
14
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
BL
標準化のポイント2:プロジェクトの要望
アプリケーションチームからの要望
• 画面のインタフェースを統一したい
• 機能で分割したチーム分けにしたい
15
PL
BL
PL
BL
PL
BL
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
チーム
標準化のポイント2:タイルシステムの採用
Strutsのタイルシステムを利用
ヘッダ
ユーザ情報
ナビゲーション
メニュー
ニュース
メイン
リンク集
お勧め物件
フッタ
16
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
標準化のポイント2:定義ファイルの分割
定義ファイルを分割
ソース管理で競合を避ける
PL
BL
XML
PL
XML
BL
XML
PL
BL
XML
17
XML
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
XML
標準化のポイント2:機能テストの導入
PL+BLを一気にテスト
• 画面単体テスト、Java単体テストを省略
• 工数削減
モックを利用することで開発端末でも実施
可能
JUnit
PL
BL
CSV
モックデータ
18
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
チームビルディング
情報共有に重点
• メーリングリストは全員参加
— 話題で宛先を変える (開発者、チーム別、・・・)
— コミットメール
— 課題システムメール (登録、割当、差戻、・・・)
• Wiki導入
— 開発ガイドライン
— ページビューをあげる仕組み
(俗語辞典、人物列伝、・・・)
19
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
導入事例2:
ASPオンライントレードサイト
20
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
ASPオンライントレードサイト
プロジェクトの概要
• 証券会社のオンライントレードサイトを
ASPサービスとして提供
• 最大 100ページビュー/秒
開発体制
• 日本+中国3拠点 分散開発
オープンソースの採用
• 自社ASPなのでコストを下げたい
• サーバの増減を気軽に
21
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
ソフトウェア構成
WebAPサーバ
Struts
22
アプリケーション
独自FW
Spring
Hibernate
JBossAS
Linux
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
DBサーバ
Oracle
標準化のポイント1:プロジェクトの問題点
問題点
• 日本+中国3拠点の分散開発
23
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
標準化のポイント1:アプリケーションアーキテクチャ
インタフェース指向
• インタフェース配布により結合時の
不整合発生を低減
• SpringFrameworkの利点
Action
Peer
Function
DAO
Function
DAO
Function
DAO
JSP
24
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
標準化のポイント1:アプリケーションアーキテクチャ
単体テスト
• モックを利用することで拠点内でテストを実施
• SpringFrameworkの利点
Action
Peer
モック
Function
Function
モック
JSP
25
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
DAO
モック
標準化のポイント1:アプリケーションアーキテクチャ
連結テスト
• 拠点内で疎通レベルの連結テストを実施
• Javaの利点 (run anywhare)
• OracleXE の利用
Struts
26
アプリケーション
独自FW
Spring
Hibernate
JBossAS
Windows
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
Oracle
XE
標準化のポイント2:プロジェクトの要望
基盤チームからの問い合わせ
• Hibernateって性能出ないんじゃない?
Hibernate
DB
flush
Java
DirtyCheck
DirtyCheck
DirtyCheck
hbm.xml
27
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
標準化のポイント2:Hibernateの利用方法
Hibernateを改修
コーディングルールを追加
Hibernate
DB
flush
Java
DirtyCheck
flag
hbm.xml
28
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
標準化のポイント3:プロジェクトの要望
アプリケーションチームからの問い合わせ
• デッドロックが心配なんだけど・・・
Hibernate
DeadLock
Detected
DB
Java
hbm.xml
29
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
標準化のポイント3:Hibernateの利用方法
コーディングルールを追加
• ロックの順序を定義
→ サブシステムの呼び出し順序を定義
A サブシステム
B サブシステム
・・・
N サブシステム
30
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
DB
反省点
31
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
標準化の反省点:Hibernateは難しい?
Javaオブジェクトをテーブルに
マッピングする
オブジェクトモデリングが
ちゃんとできないとダメ
Java
Hibernate
Java
Java
32
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
DB
標準化の反省点:Hibernateの結果・・・
1リクエストでSQLが数多く発行される
• → Hibernateのキャッシュを生かしていない
JOINなどによる複雑化、性能劣化
• → ビューの多用
Java
Hibernate
Java
Java
33
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
DB
オープンソース・ワンストップサービス
OpenStandiaのご紹介
34
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
OpenStandiaのサービス体系
設計・構築から、保守・運用フェーズまで、ワンストップでサポート
オープンソース・ワンストップサービス OpenStandia
新規システム/再構築をお考えのお客様
すでにオープンソースをご利用のお客様
OSS導入サポート
設計
開発
パラメータ
チューニングサービス
運用
35
暫定対策
障害復旧
オープンソース
ドックサービス
根本原因
調査・解決
アプリ開発支援
サービス
OSS基盤
構築サービス
テスト
救急サービス
性能検証サービス
オープンソース年間サポート
(定期メンテナンスサービス)
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
フォロー
再発防止
OpenStandiaのサポート対象オープンソース
40種類以上のオープンソースを、ワンストップでサポート
■CentOS
■Fedora Core
■Debian
■FreeBSD
■RedHat Enterprise Linux
■その他Linux
■MySQL
■PostgreSQL
■Apache
■Squid
■Perl
■Ruby on Rails
■Apache Tomcat
■JBoss AS(EAP)
■JBoss Cluster
■Spring
■Apache Axis
■Apache Geronimo/WAS CE※
■JBoss ESB
■JBoss Seam
■Hibernate
■iBATIS
■JBoss jBPM
■Struts
■Seasar2
■Samba
■sendmail
■CVS
■OpenLDAP
■postfix
■Subversion
■BIND
■Dovecot
■Heartbeat
■Eclipse BIRT
■OpenOLAP
■JasperReports
■SugarCRM
■osCommerce
■Liferay
データ
ベース
■PHP
※WAS CEは「WebSphere Application Server Community Edition」の略です。
36
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
OS
Web、
スクリプト系
Java系
ネット、
インフラ系
アプリ系
まとめ
37
NRIオープンソースソリューションセンター Copyright©2008 Nomura Research Institute, Ltd. All rights reserved.
お問い合わせは、NRIオープンソースソリューションセンターへ
Mail : [email protected]
Web: http://openstandia.jp/
38
NRIオープンソースソリューションセンター
Copyright©2008
Research
Institute,
Allreserved.
rights reserved.
NRIオープンソースソリューションセンター
Copyright©2008
NomuraNomura
Research
Institute,
Ltd. All Ltd.
rights