postgresqlを活用した webシステム構築の実際postgresqlを活用した...
TRANSCRIPT
WAP-発-01-017
PostgreSQLPostgreSQLを活用したを活用したWebWebシステム構築の実際システム構築の実際
2002年2月14日
NECソフト株式会社
佐藤克
大規模ミッションクリティカルシステム屋のPostgre活用
2
目次目次
■自己紹介■WebシステムにおけるPostgreSQLの利用■PostgreSQLの業務への利用■今後の方向性■Q&A■適用モデル■事例紹介■Q&A■実機によるデモ■全体Q&A
自己紹介自己紹介
4
私の会社 私の会社 NECNECソフト株式会社ソフト株式会社
大中規模システムを手がけることの多い会社
中央官庁自治体文教・病院
官庁・自治体系官庁・自治体系
電子政府/電子自治体
ITS、土木積算社会保険、自治体財務警察/防衛業務
学校教務病院医療事務、介護
銀行・証券信金・信組消費者金融保険
金融業系金融業系
勘定系・情報系印鑑照会手形管理顧客管理渉外支援ATM
電気・機械食品・化学建設
製造業系製造業系
生産管理販売管理財務・会計物流
スーパー・卸
倉庫
流通業系流通業系
スーパー本部システムスーパー店舗システム
物流財務会計
ホテル、旅行
アミューズメント
サービス業系サービス業系
ホテルシステム予約システム財務・会計
通信キャリア放送、CATV新聞、鉄道
運輸・通信業系運輸・通信業系
通信料金管理番組編成新聞版管理
ビジネスソリューション
ITソリューション
パーソナルソリューション
ERP CTI/SFA/CRM エンジニアリングワークフロー グループウェア 環境・安全管理
インターネット EC/EDI JAVAセキュリティ DWH XML
モバイルi モードターミナル
POSターミナル
PC応用
Matrix
サーバソリューションミッションクリティカルシステム ミドルウェア
PCサーバ UNIX、Linux メインフレーム
業種別ソリューションとテーマ軸ソリューションのMatrix型SI事業
業種別ソリューションとテーマ軸ソリューションの業種別ソリューションとテーマ軸ソリューションのMatrix型SI事業Matrix型SI事業
私
5
ちょっと前までの私ちょっと前までの私
業務データ層
DatabaseサーバビジネスサーバWebサーバ
Enterpriseサーバ
ビジネス層プレゼンテーション層
Inte
rnet
Hubサーバ
基幹業務システム
■大規模Webシステムの設計支援等を本業
– 下記の様な業務色の強いWebシステムを構築
– 高価な各種製品を基盤として活用
– Javaベースであること、J2EE準拠に向かっていたことが特徴
WebサーバiPlanetApacheZEUSIIS…
ServletiPlanetJRUNWeblogic
APサーバWeblogicWebOTXIAS/OAS
DBサーバOracle
大規模ミッションクリティカルシステム屋
6
昨年春からの私昨年春からの私■ NECソフトはWebシステム構築の標準基盤を選定(中)
これによりノウハウ/部品の流通/再利用を推進– Servletエンジン:Lutris Enhydra– APサーバ(EJBエンジン):EAS4(Enhydra Application Server)– 特に指定の無い場合にはこれらを採用
■ この一環としてオープンソースソフトの見直しを実施– Apache/Tomcat/Enhydra/PostgreSQL Server等のOSSの活用を検討
大規模ミッションクリティカルシステム屋がPostgreを考える時代
業務データ層
DatabaseサーバビジネスサーバWebサーバ
Enterpriseサーバ
ビジネス層プレゼンテーション層
Inte
rnet
Hubサーバ
基幹業務システム
WebサーバApache
ServletEnhydra
APサーバEAS4
DBサーバPostgreSQLOracle/DB2
WebWebシステムにおけるシステムにおけるPostgreSQLPostgreSQLの利用の利用
8
活用形態活用形態
■メインDBとしての活用
– 業務システムのマスタDBとしてPostgreSQLを活用する形態
– 現時点では小規模/非基幹領域に絞られる
■サブDBとしての活用
– 業務システムのマスタDBはOracle等に譲り、GUI支援、AP動作支援等を目的として利用
– 現時点でもPostgreSQLの有効性大
9
WebWebシステムをめぐる市場動向システムをめぐる市場動向
■インターネットの大普及→Web化加速
■電子商取引の大爆発→Web化加速
■イントラネット内業務処理ですらWeb化中心
大多数の案件はWebシステムがらみに!
当然Postgreの利用もWebがらみ中心に
0
20
40
60
80
100
120
2000年 2003年
◆◆企業対個人企業対個人(B to C) (B to C) EC市場EC市場
(出典)アドバンスト・マネジメント社 2000年版 「エレクトロニックコマースの全体像」
20002000年年→→ 20032003年年
0.60.6 3.53.5 == 5.85.8倍倍
3.93.9 14.414.4 == 3.73.7倍倍
日本日本
米国米国
◆◆企業対企業企業対企業(B to B)(B to B)EC市場EC市場
20002000年年→→ 20032003年年
2020 6060 == 33倍倍
5050 117117 == 2.32.3倍倍
日本日本
米国米国
117兆
米国米国
日本日本
6060兆兆
(兆円)
B to B
0
2
4
6
8
10
12
14
16
2000年 2003年
(兆円)
B to C
日本日本
米国米国
2020兆兆
50兆
0.60.6兆兆
3.53.5兆兆3.9兆
14.4兆
日本では5.8倍に拡大!
日本では3倍に拡大!
(単位:兆円)(単位:兆円)
(単位:兆円)(単位:兆円)
国内電子商取引国内電子商取引20032003年には64兆円規模年には64兆円規模
0
5
10
15
20
25
30
35
40
45
50
1996 1997 1998 1999 2000 2001 2002
米国
日本
日米のインターネット普及率
日本経済新聞 2/9
日本経済新聞 2/19
インターネットインターネット
パーソナルコンピュータパーソナルコンピュータ
携帯・自動車電話携帯・自動車電話
ファクシミリファクシミリ
無線呼出し無線呼出し
電話電話
55年年
1313年年
1515年年
1919年年
2424年年
1010年年 2020年年 3030年年 4040年年 5050年年 6060年年
インターネットはこれまでインターネットはこれまで普及したどのメディア普及したどのメディア
よりも急速に普及(商用)よりも急速に普及(商用)
平成平成1111年通信白書年通信白書
世帯普及率世帯普及率10%10%までの所要期間比較までの所要期間比較
(%)
0
10
30
40
50
60
70
80
90利用人口
(万人)
100
20
0
1,000
2,000
3,000
4,000
5,000
6,000
7,000
8,000日本におけるインターネットの普及状況
1995年 1996年 1997年 1998年 1999年 2005年
11.7
50.468.2
80.0
88.6%
3.36.4 11.0
19.1%1,1551,694
2,706万人
7,670万人
企業普及率
世帯普及率
(%)
0
10
30
40
50
60
70
80
90利用人口
(万人)
100
20
0
1,000
2,000
3,000
4,000
5,000
6,000
7,000
8,000日本におけるインターネットの普及状況
1995年 1996年 1997年 1998年 1999年 2005年
11.7
50.468.2
80.0
88.6%
3.36.4 11.0
19.1%1,1551,694
2,706万人
7,670万人
企業普及率
世帯普及率
※ 企業は全国の(農業、林業、漁業及び鉱業を除く。)従業者数300人以
上の企業。 「通信白書2000」郵政省
インターネットの普及状況インターネットの普及状況
10
メインメインDBDBとしての活用としての活用 CGICGIからの利用からの利用
■ 「リクエスト毎にプロセス起動→低速」が従来の評価– 最近はApache内で動作することも可能であり、この問題は払拭
■ システム構築が容易、開発が簡易、そして軽快な動作が売り■ いわゆるJ2EE系の機能は持たない
– トランザクション管理等の信頼性を保証する機構をもたない– サーバサイドJavaの流れからはずれている
ApacheApache業務データ層
Databaseサーバ
Webサーバ
プレゼンテーション層
Inte
rnet
DBサーバPostgreSQL
PHP
Perl
Perl
PHP
私の領域では、ほとんど登場し
ない構成
11
メインメインDBDBとしての活用 としての活用 Servlet/JSPServlet/JSPからの利用からの利用
■ Java標準機能内で動作– セッション管理、コネクションDBコネクションプール等非常に有効– プロセス起動オーバヘッド、コネクション生成オーバヘッド等無く高速
■ システム構築が複雑(Java環境構築)だが、開発は各種ツールの整備により容易– 各種APフレームワークの提唱もこのモデル上
■ いわゆるDMZの構成が可能– ApacheのみをDMZに配置し、ServletをMZ内に配置
■ 負荷分散装置をフロントにおいた負荷分散システム事例も多
ApacheApache 業務データ層
Databaseサーバ
Webサーバ
プレゼンテーション層
Inte
rnet
DBサーバPostgreSQL
Servlet
JSP
JSP
Servlet
JavaVMJavaVM
小規模システムでの採用例多し
負荷分散事例も多
12
メインメインDBDBとしての活用 としての活用 EJBEJBからの利用からの利用
■ J2EE環境下で動作– いわゆるEJBプログラミングによる利用– 本格的なトランザクション管理を活用可能
■ 本格的なミッションクリティカルシステムを構築可能– 現状、大規模システムになる傾向大→Oracle/DB2中心
■ 負荷分散装置をフロントにおいた負荷分散システムEJBの負荷分散実行も可能
この形態は次第にライトな領域にも広がりつつある。ここへの適用を目指す
業務データ層
DatabaseサーバビジネスサーバWebサーバ
ビジネス層プレゼンテーション層
Inte
rnet
WebサーバApache
ServletEnhydra
APサーバEAS4
DBサーバPostgreSQLOracle/DB2
13
メインメインDBDBとしての活用 としての活用 クラスタシステムの構築クラスタシステムの構築
■ DBサーバシステムの二重化– 高信頼性システムでは必須機能
■ クラスタ管理ソフトとの連携によりホットスタンバイシステムを構築(稼働/待機型)
■ 事例も増加しつつある
RAID DISK
稼働系Postgre
待機系Postgre
クラスタ管理
クラスタ管理
相互監視
APサーバ
障害発生時には点線のパスで業務を続行
14
サブサブDBDBとしての活用 としての活用 ServletServlet検索用検索用DBDB
■ マスタDBはOracle等を利用■ Servletが処理上必要な「検索系の情報」を保持するDBとして
活用■ マスタDBの負荷軽減と画面生成のスループットの確保■ 必要データの配信の仕組みが必要
業務データ層
DatabaseサーバビジネスサーバWebサーバ
ビジネス層プレゼンテーション層
Inte
rnet
WebサーバApache
ServletEnhydra
APサーバEAS4
DBサーバOracle/DB2
PosgreSQLServer
DB
15
サブサブDBDBとしての活用 としての活用 WebWebサービス連携用サービス連携用DBDB
■Webサービス+Web Startの登場によりRichクライアントが復権
■高度なRichクライアント用の検索用DBとしての活用
業務データ層
DatabaseサーバビジネスサーバクライアントAP
ビジネス層プレゼン
テーション層
APサーバEAS4
DBサーバOracle/DB2
PosgreSQLServer
DB
業務システムへの採用レベル業務システムへの採用レベル
17
NECNECソフトの現状ソフトの現状
■社内SE向けの展開を開始– 試用評価 完
– 社内システム適用 完
– 社内SEによるSI案件への適用 実施中
– 社外販売 未着手
社内システム
適用試用評価
弊社SI案件への適用
社内SE向け
社外販売
社内向けの製品保証を実施
安心して利用可能な製品の一角に
18
今後の方向性と必要機能今後の方向性と必要機能
■社外販売の実施を検討– 「Packageでないソフトは適用できない」への対処
• 多数事例あり
– ただし「保証範囲」の問題があり容易ではない
■社内SI案件への適用は強力に推進
■以下の強化は必要– 自動バキューム、ロールフォワード
– 性能のさらなるチューン
– Windows環境への適用
– なによりも多数の事例
適用モデル適用モデル
20
小規模システム構成小規模システム構成
■スタンドアロンシステム– 負荷の比較的軽いイントラシステム構築用基盤
• すべてオープンソース製品で構築(PP費だけなら30万弱) – OS Linux
– WWWサーバ:Apache APサーバ:Enhydra DBサーバ:PostgreSQL
– 廉価ではあるが、いずれも領域でトップシェア
• All in oneでWeb業務システムを構築可能→30万弱のPakageとして販売
Webブラウザ
Webブラウザ
Intranet
Linux on Express5800
VALWAY Server
Apache
DB
PostgreSQL
Html受け取り
業務処理
DBアクセス
HTML出力
Enhydra
AP従来はCGI, Servlet, JSP上に実装
…
21
中・大規模システム構成中・大規模システム構成■負荷分散/縮退運転モデル性能 n 倍 信頼性 n 倍
– 最も負荷のかかるWebサーバ / APサーバを並列動作させることにより処理能力を確保
– APサーバ障害時には該当APサーバの利用を停止し無停止で続行
– HW負荷分散装置により負荷分散 / 障害検出 / 縮退を実現
VALWAY Server
Linux on Express5800
Enhydra
VALWAY Server
ApacheAP
Enhydra・EAS
VALWAY ServerLinux on Express5800
DB Serverモデル
DBPostgreSQL
負荷分散装置
負荷分散
22
高信頼性システムモデル高信頼性システムモデル
■本格インターネットWebサイトモデル– 2重Firewallによる、より安全性の高い大規模Webサイトモデル
• DMZ / MZの実装、スケーラブル性の保証
– EJBサーバをBackendサーバとし、業務処理を実装
– EnhydraはFront-endサーバとしプレゼンテーション処理を実装
負荷分散装置
Presentation Server
Fire
wall
Serv
er DB
Serv
er
Fire
wall
Serv
erPresentation Server
Presentation Server
Linux on Express5800
EJBモデル
EAS EJB AP
EJBモデル
DB
Serv
er
プレゼンテーション処理 業務処理
Internet
DMZ MZ
PosgreSQLDB
PosgreSQLDB
23
大規模大規模EAIEAIシステムモデルシステムモデル■ BackendにEAIサーバを置き、全社システムを統合
Standby Node
HP-UX
Oracle
Active Node
MC/ServiceGuardEMC
DBサーバ
Linux
EnhydraPresentation ServerApache AP
Presentation Server
…Presentation Server
PosgreSQLServer
DB
プレゼンテーションサーバ
Business Server
Linux/HP-UX
Business Server
EAS
AP
CORBA3.1/J2EE
…
ビジネスサーバ
EAI Server
Win2000/HP-UX
EAI Server
WebOTX
AP
CORBA3.1
コネクタ
MQ
EAIサーバ
リアルタイム接続
非同期接続
プロプラプロトコル接続
CORBA接続
SQL接続
CORBA/RMI接続
DB
負荷分散装置
国外/インターネット端末
Fire Wall
Webブラウザ
http/https
http/https
http/https
http/https
イントラ端末
Java Applet
Java/VB AP
CORBA接続
PosgreSQLDB
実機によるデモ実機によるデモ
デモ環境業務処理性能
2層モデル対3層モデルモバイル対応
PostgreSQLの製品性
25
デモ環境デモ環境■ サーバマシン:ノートPC(750Mhz 256M)
■ WWWサーバ、APサーバ、DBサーバを実装
Java VM
Enhydra
PC2
DBサーバAP
サーバAP
Intranet
PC1
管理コンソール
HTTP
ブラウザ(HTML)
HTTPVB
プログラム
APA
CH
E
PostgreSQL7.11
Linux Redhat6.2J
DB
Oracle 8i
26
業務処理性能業務処理性能
■負荷評価ツール(WebStress)による評価
■実業務の遂行に十分堪え得る性能を実現– Web経由での重い発注処理を約12.3件/秒達成
→20万件/日の業務量(5H/日と計算)
– 処理内容• パソコン発注業務の連続投入
– 某オフコンディーラ殿における実システムベース
– 検索16回更新26回の重い処理• 伝票番号入手(伝票番号データ更新)
• (在庫表からの引き落とし、取引明細表への追加)*10回
• その他管理表5個の検索更新
27
22層モデル対層モデル対33層モデル層モデル(1) (1)
■ 2層モデル EnhydraもWebも利用しないモデル– ビジネスロジックがVBクライアント上に存在– サーバ上にはOracleのみでユーザロジック無し– 繰り返しをVB上に実装
■ 3層モデル Enhydraを利用しWeb化したモデル– ビジネスロジックがサーバ上に存在– クライアント上にはユーザロジック無し– プレゼンテーションロジックが分離していないため疑似3層– 繰り返しをJava Scriptで実装
■クライアント1台によるレスポンスを測定
■ 結果 2層 5件/秒 3層 7件/秒のレスポンス性能
– Web化による処理量低下の不安を払拭– さらに、ネットワークが低速な場合には3層が圧倒的に高速
• 社内ビル間(1.5M)での測定時には20倍程度の差
28
22層モデル対層モデル対33層モデル層モデル(2)(2)
クライアントマシン電源ダウンの評価
■2層モデルの致命的欠点
– ビジネスロジックがクライアント上に存在し、DB排他をクライアントマシン上で実行
– DB排他中(更新/参照)のクライアント障害発生はシステム障害に直結
■3層モデルにはこの心配なし
2AP実行中、一方のAP処理中に処理停止
他方のAPは無応答状態となる
29
モバイル対応モバイル対応
■i modeからのPC発注業務
■各種モバイル端末への容易な対応
– XMLCにより各種ワイヤレスプロトコルの差異を吸収
– ユーザAPはビジネスロジックに集中• デモAPの修正は少量
– 多様なワイヤレスプロトコルへ対応
30
PostgreSQLPostgreSQLの製品性の製品性
■Oracleを利用するAPとPostgreSQLを利用するAPの性能比較– PostgreSQL レスポンス 7件/秒 スループット 12件/秒
– Oracle レスポンス 8件/秒 スループット 17件/秒– 両者共に未チューン。チューンにより改善される可能性大
■1ホスト7万円でNECソフト社内提供– 多重実行時の性能問題は最新版でかなり解決– 機能不足は否めないが十分な性能を確保– 以下の問題点はあるが、実用可能範囲に
• DBのゴミ掃除を定期的に実行しないと速度低下(Vacuumコマンド)
• Roll forward処理、レプリケーション等高度な機能なし
今後ともNECソフト、Lutris Enhydra、Enhydra AP Serverをよろしくお願いいたします
問い合わせ先NECソフト サーバソリューション事業部Web APサーバG
マネージャ 佐藤克 Web APサーバ全般
E-mail: [email protected]: 03-5569-3250 Fax: 03-5569-3308
マネージャ 熊本千昭 Enhydra/EAS
E-mail: [email protected]
Phone: 042-333-9744 Fax: 042-333-9745
http://www.necsoft.com/soft/enhydra/