Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Copyright© 2009, Oracle. All rights reserved. 1
• Oracle on Windows• 参考資料、コラム(オラクル都市伝説)、イベント・セミナー情報 etc• http://www.oracle.co.jp/campaign/mb_tech/
• Windows Server System Center / OTN Japan• http://www.oracle.com/technology/global/jp/tech/windows/
• .NET + Oracle Database• .NET Developer Center / OTN Japan
http://www.oracle.com/technology/global/jp/tech/dotnet/• 意外と簡単!? .NETでOracle / OTN Japan
http://www.oracle.com/technology/global/jp/columns/easy/dotnet/
Copyright© 2009, Oracle. All rights reserved. 2
• オラクル都市伝説 / Oracle on Windows• http://www.oracle.co.jp/campaign/mb_tech/column/• シーズン2連載中!
其の一:地獄からの生還本当にあった怖い話
其の二:喪われた時間を取り戻せ!ある男の過ち
其の三:ベテランエンジニアの魂がデータベースに宿る
其の四:本当にオラクルデータベースを選択すると「ソースコードがスリム」になるのか?を徹底検証
<Insert Picture Here>
日本オラクル株式会社
ハイトランザクションに耐えうる.NETアプリケーションの開発~.NETでインメモリー技術を利用する~
Oracle Direct Seminar
Copyright© 2009, Oracle. All rights reserved. 4
Agenda
1. インメモリ・データグリッドとは2. 適用パターン3. .NETアプリケーションでの適用4. Appendix
• 採用パターンと事例
Copyright© 2009, Oracle. All rights reserved. 5
パフォーマンス改善(高速化)への Oracle 製品活用
Javaアプリ側に問題
Javaアプリ側に問題
DB側に問題DB側に問題
特定のメソッドで時間がかかる
特定のメソッドで時間がかかる
CPU使用率が高いCPU使用率が高い
全般的に遅い全般的に遅い
特定の検索に時間がかかる
特定の検索に時間がかかる
大量オブジェクトに対する処理が遅い
大量オブジェクトに対する処理が遅い
メモリ使用率が高いメモリ使用率が高い
ServletやJSPの生成が遅い
ServletやJSPの生成が遅い
セッションステートを保持している
セッションステートを保持している
ボトルネックを調査
ボトルネックを調査
EM AD4J/Diag
GCに時間がかかるGCに時間がかかる
TimesTen
Coherence
WebCache
ASノード追加
EM Tuning Pack
データアクセスの頻度が高い
データアクセスの頻度が高い
RAC
Webシステムのパフォーマンスが出ない!!
Webシステムのパフォーマンスが出ない!!
同じ検索が繰り返し
行われている
同じ検索が繰り返し
行われている
No
Yes
その他その他 Javaコードチューニング
ネットワークが遅いネットワークが遅い
処理量が増えた処理量が増えた
データ量が増えたデータ量が増えたPartitioningw/Compression
JRockit Real Time
Copyright© 2009, Oracle. All rights reserved. 6
Oracleインメモリ製品の比較基本的な違いはキャッシュ対象
Javaアプリケーションの性能とスケーラビリティ向上(DBサーバの負荷軽減にもつながる)
設計部分から改修が必要
Coherence APIを使用するJavaアプリケーション(.Net, C++も対応)
Java Object
Coherence
HTTPレスポンスの性能向上・APサーバやDBサーバの負荷軽減
RDBアクセス性能の向上DBサーバの負荷軽減
Cacheによるメリット
原則、改修不要。ただし詳細要件(部分Cacheや自動リフレッシュ)によっては改修や追加開発が必要になるケースもある
アクセス先をTimes-Tenに切り替える部分のみ。よってJavaEEであればディスクリプタ変更だけで多くの場合対応可能
既存アプリケーションの改修の必要性
WebアプリケーションRDBにアクセスするアプリケーションやツール(JDBC, ODBC使用)
適用アプリケーション
HTMLや画像などのHTTPレスポンスのコンテンツ
RDBデータCache対象
WebCacheTimesTen
Copyright© 2009, Oracle. All rights reserved. 7
RDBデータ
アプリケーションアプリケーション
例: ショッピング・サイト …
ログイン商品検索
商品選択配送入力
キャンペーン情報
支払方法
商品データ顧客データ
セッションごとのデータ
アプリケーション内で計算処理されるデータ
アプリ内のOLTPデータ
Webコンテンツ
ログインデータ ログインデータ+カート
ログインデータ+カート+配送情報
ユーザー状態
ユーザー状態
ユーザー状態
ログインデータ+カート+配送情報+支払情報
ユーザー状態
顧客オブジェクト
商品オブジェクト
販売店別キャンペーン情報
販売店別価格データ
価格オブジェクト
キャンペーンルール
キャンペーンルール
Oracle Application Server WebCacheOracle Application Server WebCache
Oracle TimesTen In-Memory DatabaseOracle TimesTen In-Memory Database
Oracle CoherenceOracle Coherence
Oracleインメモリ製品によるアプリケーションの高速化基本的な違いはキャッシュ対象
Copyright© 2009, Oracle. All rights reserved. 8
スケールアップスケールアップ
More CPUsMore CPUsFaster CPUsFaster CPUs
More MemoryMore Memory
スケールアップとスケールアウト
スケールアウトスケールアウト
More NodesMore Nodes
最良のコストパフォーマンスの追究最良のコストパフォーマンスの追究
低コスト高可用性高スケーラ高スケーラビリティビリティ
限界限界
高機能/高価なハードウェアで対応→「HW能力の限界 = 処理能力の限界」
ハードウェア中心の発想
高機能なソフトウェアと安価なハードウェアで対応
ソフトウェアを活用するという発想
Copyright© 2009, Oracle. All rights reserved. 9
メインフレームレベルに性能向上したコモディティ・サーバー(x86)
低価格高価格価格
構成コンポーネント別の管理一元管理を実現運用管理性
信頼性は低い部品レベルから冗長化等高信頼性を実現
可用性
性能
8Gb/s(FC)4Gb/s(FICON)I/O
256GB(最大)128GB(最大)メモリ
4800MPS※X7350(2.93GHz)×4
3168MPSCPU
コモディティサーバー(x86)HP ProLiant DL580 G5
メインフレームIBM 2094 z9 EC s08
優れたソフトウェアで優れたソフトウェアで
メインフレーム並みにメインフレーム並みに
Copyright© 2009, Oracle. All rights reserved. 10
データグリッドによってメモリを共有し処理を分散することで高速化
HW性能で高速化
ピーク時4,000 オーダー/秒性能要件
HW追加でリニアにスケールHW追加コストは膨大拡張性
HW故障率が10%としても、すべてダウンするのは0.000001%
HW故障率を0.1%だとすると、すべてダウンする確率は0.0001%可用性
コスト
構成例
5万ドル以下50万ドル+
グリッド構成
2クアッドコア・ワークステーション x 6SMPサーバー16Core SMPサーバー x 2
実際のお客様のケーストレーディング基盤構築の例
V.S.メモリ領域の共有
• 得たメリット: 低コスト + 将来の拡張可能性 +可用性
Copyright© 2009, Oracle. All rights reserved. 11
Oracle Coherence とは?Overview
DB 外部システムメッセージングシステム
Webサービス
J2EE SOA Javaアプリ .NET
■拡張性(スケーラビリティ)と耐障害性
- 複数ノードで仮想的に一つのサーバーとして稼動
- 各ノードの障害にもメモリデータを100%維持
データアクセスAPI
■ アプリケーションから独立したデータアクセスの提供
- put/get でデータを取得可能- 追加のアプリ開発も容易→ アプリ・コードをシンプル化
データソース連携API
データグリッド層
■ データソースから独立したインメモリ・ストレージ
- データソースの障害影響を最小化- データソースの入替や修正も容易
■ データ処理ロジック付加可能- 各サーバーのCPUをフル活用して問い合わせやデータ変換、計算処理をパラレル実行可能
Copyright© 2009, Oracle. All rights reserved. 12
DB 外部システムメッセージングシステム
データアクセスAPI
データソース連携API
Coherence クラスタ
クライアントからは透過的にデータにアクセス
A B C D
A B C D
ファイル
• 分散メモリ・データ管理• 複数ノード上のメモリ領域に分散してデータを配置し、管理する
• 他ノード上にバックアップデータを持つことで、データの可用性を担保
• クライアントはデータ位置を知る必要なく、透過的にデータにアクセス可能
AB CD
データを複数ノードに分散バックアップを持ち可用性を担保
J2EE Javaアプリ .NET/C++
Oracle Coherence とは?データの管理について
Copyright© 2009, Oracle. All rights reserved. 13
Replicated Cache動作 全メンバにデータを複製
メリット 高い読み取りパフォーマンス
考慮点 データ配信のためのネットワークコスト
データ容量の拡張性はない
A BC D
A BC D
A BC D
A BC D
JVM1 JVM2 JVM3 JVM4
Partitioned Cache動作 データを分割して各メンバに配置
データは必ず他ノードにバックアップを持つ
メリット 処理能力・データ量の拡張性、負荷分散
考慮点 データ取得時のネットワークアクセス
Near Cache動作 ベースはPartitioned Cache
頻繁に利用するデータをローカルにキャッシュ
メリット 読み取りパフォーマンスと拡張性の両立
考慮点 データ失効通知のネットワークアクセス
P
B
P
B
P
B
P
B
DCBA
D CBA
P
B
P
B
P
B
P
B
DCBA
D CBA
N N N N AC
JVM1 JVM2 JVM3 JVM4
JVM1 JVM2 JVM3 JVM4
ご参考
Coherenceのキャッシュタイプ
Copyright© 2009, Oracle. All rights reserved. 14
読込み時の処理
・ アプリケーションからは透過的に
全てのデータが見える
・ 実データはプライマリメンバから
取得されてアプリケーションに返される
書込み時の処理・ アプリケーションは一つのメンバに対して更新を行う
・ Coherenceが自動的にプライマリメンバ及びバックアップメンバのデータを更新
AppJVM1
例: Partitioned Cache の場合
Logical
BADC
A P
B
App
JVM2
Logical
BADC
P
B
App
App
JVM4
C
JVM3
Logical
BADC
P
B
Logical
BADC
P
B A
B
B
D
D
CCget()
AppJVM1
Logical
BADC
A P
B
App
JVM2
Logical
BADC
P
B
App
App
JVM4
C
JVM3
Logical
BADC
P
B
Logical
BADC
P
B A
B
B
D
D
CCput()
ご参考
メモリデータへの透過的なアクセス
Copyright© 2009, Oracle. All rights reserved. 15
Agenda
1. インメモリ・データグリッドとは2. 適用パターン3. .NETアプリケーションでの適用4. Appendix
• 採用パターンと事例
Copyright© 2009, Oracle. All rights reserved. 16
Oracle Coherence の特徴
1. データソース連携2. 並列処理3. スケーラビリティ4. イベント通知5. ロック/トランザクション6. HTTPセッション管理7. Java Collection APIプログラミング
DB 外部システムメッセージングシステム
Webサービス
データアクセスAPI
データソース連携API
Coherence クラスタ
J2EE Javaアプリ .NET/C++
Oracle Coherence の特徴
Copyright© 2009, Oracle. All rights reserved. 17
J2EE Javaアプリ .NET/C++
• データソースの仮想化• データの実体が多種のデータソースにあったとしても、クライアントからは、同一のAPI を使用してアクセス
• クライアントからはデータソースへのアクセスロジックを隠蔽できる
DB 外部システムメッセージングシステム
Coherence クラスタ
データソースへのアクセスを隠蔽
AB C D
ファイル
A B DC
データアクセスAPI
データソース連携API
データソースの種類/位置/データ型を意識する必要なし
特長①データソース連携 –データソース仮想化
Copyright© 2009, Oracle. All rights reserved. 18
• データソース側の障害時にも更新データを失わない• 内部的に更新データをキューに保持
• 復旧後にキューの内容をデータソースに反映
• アプリケーションからデータソースの障害を隠蔽
DB 外部システムメッセージングシステム
J2EE Javaアプリ .NET/C++
データアクセスAPI
データソース連携API
Coherence クラスタ
データソース障害
キューに更新データ格納データソース障害時には更新データをリキュー
ファイル
A
A
A
特長①データソース連携 –データソース可用性
Copyright© 2009, Oracle. All rights reserved. 19
J2EE Javaアプリ .NET/C++• Coherenceクラスタの各メンバーに処理を分散して並列実行
• 並列処理が可能なもの• クエリ、集計• データ操作• Javaで記述可能なあらゆる処理
• 障害時に、処理は自動的にフェールオーバー
DB 外部システムメッセージングシステム
Webサービス
データアクセスAPI
データソース連携API
Coherence クラスタ
処理の実行依頼
各メンバに処理を分散
特長②並列処理
Copyright© 2009, Oracle. All rights reserved. 20
• メモリ領域のスケールアウト• 追加されたノードのメモリ領域もキャッシュ領域として使用可能
• 処理性能のスケールアウト• 追加されたノードのCPUも使用して並列処理
• 動的にノード追加可能
DB 外部システムメッセージングシステム
Webサービス
データソース連携API
Coherence クラスタ
ノード追加
J2EE Javaアプリ .NET/C++
特長③スケーラビリティ(スケールアウト)
Copyright© 2009, Oracle. All rights reserved. 21
• データに対する操作をイベントとして通知可能
• データのCoherenceへの登録/更新/削除に対してイベントを通知することが可能
• イベントの発火条件は、対象データにより任意に絞り込むことが可能
• クラスタ内外にイベント通知が可能
DB 外部システムメッセージングシステム
Webサービス
データソース連携API
データ操作 イベント通知
J2EE Javaアプリ .NET/C++
Coherence クラスタ
特長④ イベント通知
Copyright© 2009, Oracle. All rights reserved. 22
データソース連携API
Coherence クラスタ
ロックのフェイルオーバー
DB 外部システムメッセージングシステム
Webサービス
J2EE SOA Javaアプリ .NET
データ・ロック/トランザクション ロック待ち
• ロック機能• 分散環境上でのロック機能の提供• 障害時のロックのフェイル・オーバー
• クライアント障害時には、ロックは解除される
• トランザクション機能• ロック機能を拡張し、複数データ操作のACIDトランザクションをサポート
• 分離レベル(Isolation)と並列性(Concurrency)の選択
特長⑤ ロック / トランザクションご参考
Copyright© 2009, Oracle. All rights reserved. 23
特長⑥ HTTPセッション管理
ブラウザ
Web App Web App Web App Web App
ロードバランサ
Webサーバ
APサーバ
Coherence分散キャッシュ(HTTPセッションを格納)
Coherence*Web 基本アーキテクチャ• Coherence*Web• Coherenceの分散キャッシュを使用した
HTTPセッション管理機能• APサーバ/Webアプリに対してインストールすることで構成(アプリ修正不要)
• 既存Servlet/JSPのラップ• 一部APサーバクラスの置換え
• HTTPセッション格納用のキャッシュをAPサーバと別Java VMにすることが可能
• HTTPセッション処理をAPサーバと分離するメリット
• HTTPセッション処理のAPサーバからの分離⇒ APサーバの負荷軽減
• HTTPセッションのメモリ上限の向上• APサーバのスケーラビリティ向上
• サポートするAPサーバ• Tomcat 4.1.x/5.0.x/5.5.x• WebLogic 8.x/9.x/10.x• Resin 3.0.x• IBM WebSphere 5.x/6.x• Sun Java 6.1/7/8.1 など
ご参考
Copyright© 2009, Oracle. All rights reserved. 24
• データの操作には、Java Collection APIを拡張したクラスを使用• データの基本操作(読み書き)は、java.util.Mapインタフェースにより可能• Javaの一般的なデザインパターンに基いたAPIを提供しており、Java技術者にとっては、直感的にコードの記述が可能
• Oracle Coherence Knowledge Base• http://wiki.tangosol.com/display/COH/Oracle+Coherence+Knowledge+Base+Home
public static void main(String[] args){
java.util.Map cache = CacheFactory.getCache("SampleCache");
cache.put("key", "Hello World");
System.out.println(cache.get("key"));
}
データを格納するにはput(Object key, Object value) メソッド
キー・オブジェクトからデータを取得get(Object key) メソッド
コーディング例
マップ取得ロジック・名前指定による取得
特長⑦ Java Collection APIプログラミングご参考
Copyright© 2009, Oracle. All rights reserved. 25
Agenda
1. インメモリ・データグリッドとは2. 適用パターン3. .NETアプリケーションでの適用4. Appendix
• 採用パターンと事例
Copyright© 2009, Oracle. All rights reserved. 26
Coherence for .NET• Coherenceクラスタ外部から.NETアプリケーションを使用してアクセス
• デスクトップ・アプリケーションやWebアプリケーションで使用可能
DB 外部システムメッセージングシステム
Webサービス
データアクセスAPI
データソース連携API
Coherence クラスタ
J2EE Javaアプリ .NET/C++
Coherence for .NETについて
Copyright© 2009, Oracle. All rights reserved. 27
Coherence for .NET / 準備
Coherence for Java • Coherence クラスタ本体
Coherence for the .NET Framework• Coherence クラスタへアクセスするためのライブラリ
OTN-Jから試用版をダウンロード
http://www.oracle.com/technology/global/jp/products/coherence/index.html
Copyright© 2009, Oracle. All rights reserved. 28
Coherence for .NET / 準備
Coherence for Java • 展開した「coherence」フォルダを任意の場所にコピー
Coherence for the .NET Framework• MSIパッケージからインストール
Copyright© 2009, Oracle. All rights reserved. 29
Coherence for .NET / 準備
Coherence for Java • JDK¥bin(java.exe)へのPATH環境変数設定• JAVA_HOME 環境変数設定• coherence_home環境変数設定
Copyright© 2009, Oracle. All rights reserved. 30
Coherence for .NET / .NET APからアクセス
•Coherence クラスタ本体の起動• Coherence for .NET Home¥examples¥ContactCache.Java¥start-cache-server.cmd
•Coherence for .NETの利用• Coherence for .NET
Home¥examples¥ContactCache.Windows¥ContactCache.Windows.sln
Coherence for the .NET Frameworkをインストールした際の、サンプルアプリケーション(CacheContact)を利用(Coherence for .NET Home¥examples)
Copyright© 2009, Oracle. All rights reserved. 31
Coherence for .NET / .NET APからアクセス
Visual StudioからCoherence for .NETを利用するための準備
参照の追加→ Coherence for .NET Home¥bin¥net¥x.x¥Coherence.dllを選択
Copyright© 2009, Oracle. All rights reserved. 32
Coherence for .NET / .NET APからアクセス
Visual StudioからCoherence for .NETを利用
Copyright© 2009, Oracle. All rights reserved. 33
Coherence for .NET / ポイント解説
Coherence クラスタでのCoherence*Extendの構成
•TCP/IP Coherence*Extendクラスタ・サービスを実行•tcp-acceptor要素を持つproxy-scheme要素を追加
Coherence*Extendに対応したデフォルト・キャッシュ・サーバーの構成
~途中省略~
<proxy-scheme>
<service-name>ExtendTcpProxyService</service-name>
<thread-count>5</thread-count>
<acceptor-config>
<tcp-acceptor>
<local-address>
<address>localhost</address>
<port>9099</port>
</local-address>
</tcp-acceptor>
</acceptor-config>
<autostart>true</autostart>
</proxy-scheme>
~途中省略~
Copyright© 2009, Oracle. All rights reserved. 34
Coherence for .NET / ポイント解説
.NETアプリからアクセスするためのクラスを定義
Copyright© 2009, Oracle. All rights reserved. 35
Coherence for .NET / ポイント解説
定義したクラスは、BindingSourceを経由してアクセスすることが可能
Copyright© 2009, Oracle. All rights reserved. 36
Coherence for .NET / ポイント解説
Coherence for .NETで提供されているAPIを利用してアクセス
Copyright© 2009, Oracle. All rights reserved. 37
Agenda
1. インメモリ・データグリッドとは2. 適用パターン3. .NETアプリケーションでの適用4. Appendix
• 採用パターンと事例
Copyright© 2009, Oracle. All rights reserved. 38
大量データをオンメモリ展開+
複数HWのCPUを活用したパラレル処理
大量データをオンメモリ展開+
複数HWのCPUを活用したパラレル処理
高速化より多くの計算が可能HWを効率的に利用
高速化より多くの計算が可能HWを効率的に利用
効効果果
Oracle Coherence採用パターンと事例
• 大量データの高速処理(HPC)• 大量トランザクション処理(XTP)• 統合ステート/ユーザープロファイル管理層• 統合データサービス• データグリッド : データの可用性、HWリソース利用率の最適化
Copyright© 2009, Oracle. All rights reserved. 39
・分散キャッシュとしての強力な機能
・複数データソースからのデータを統合して見せることが可能(上位アプリケーションからデータソース位置を隠蔽化)
・同じHW構成で Coherenceを入れることによって劇的な処理速度向上を実現できた
ビジネス側のニーズ• 複雑な信用リスク計算に多大な時間がかかる→ もっと速く処理結果がほしい
• 今後の取引の精度を上げ、リスクを回避したい→ 計算対象となるデータを増やしたい
システム側のニーズ• 処理完了時間を速めるには、膨大なハードウェアの追加投資が必要とされた
• 計算処理のボトルネックが 「データ取得の待ち時間」 にあった
グローバル取引の更なる利益拡大のためのシステム強化 : グローバル取引待ち時間の改善
リアルタイムに近い形でのトレード計算の実現、多大な時間がかかる複雑な信用リスク計算の処理速度向上
効果: 同じHW構成で劇的なスピード化
20分17時間トレード計算
1時間50日信用リスク計算
導入後導入前
ジョブスケジューラ
バッチ処理対象データ
•当初予定していた400台のHW増強が60台で十分になった
•当初予定の ¼の占有面積でサーバー配置可能
• メモリ展開して高速並行処理→データ取得時間不要、同時処理でさらに高速化
•計算対象データを4万件から15万件に拡大しても時間内に処理完了可能
プロジェクトの背景と目的
オラクル選定理由 オラクル導入範囲と効果
リスク計算処理のグリッド化による劇的な高速化
ワコビア銀行
Copyright© 2009, Oracle. All rights reserved. 40
Oracle Coherence採用パターンと事例
• 大量データの高速処理(HPC)• 大量トランザクション処理(XTP)• 統合ステート/ユーザープロファイル管理層• 統合データサービス• データグリッド : データの可用性、HWリソース利用率の最適化
処理の自動バランシング+
メモリ・データの高信頼性管理/自動フェールオーバー
処理の自動バランシング+
メモリ・データの高信頼性管理/自動フェールオーバー
低コストで高速化障害対応コストを低減取引量増加への対応が迅速かつ容易
低コストで高速化障害対応コストを低減取引量増加への対応が迅速かつ容易
効効果果
Copyright© 2009, Oracle. All rights reserved. 41
・これまでと同じHW構成、12週間の実装で3ミリ秒/取引を実現(その後の調整で1ミリ秒/取引に)
・SMPサーバーをコモディティ・サーバーに変更しても同様の性能を発揮→HWコストが1/10に
・スケーラブルなしくみ:今後数~10倍に増加が予想される取引にも分散して対応可能
・フェールオーバーによる耐障害性の実証
ビジネス側のニーズ• トレーディング基盤の低速化によって売り上げ減少を招いた• 信頼性の確保: 高速処理と信頼性の両立が必須• 当面の要件だけでなく、今後の取引拡大(商品、エリア)を想定した拡張性(スケーラビリティ)も必要
システム側のニーズ
• 当面のゴール•処理性能 : 50万オーダー/日、500オーダー/秒•フェールオーバー: 10秒以内に完了•SLA: 最大10ミリ秒/取引、24時間x356日
高価なSMPサーバーで構成されたトレーディングシステムが大量トランザクション処理時に期待する性能を満たせない
他社グリッド製品で10ヶ月以上の開発にもかかわらず、サービスレベル要件を満たせなかった
• Coherenceの自動処理分散機能によって、同じ銘柄/通貨のオーダー(売り/買い)を同じサーバーに振分け→後続のマッチング処理の最適化
• イベント処理機能を使って、オーダーを即座にデータ加工してマッチングエンジンに引渡し
•確定オーダーのみを物理的に記録:処理性能のボトルネックを排除
大量オーダー(最終的には6000オーダー/秒
のレベルを想定)
大量オーダー(最終的には6000オーダー/秒
のレベルを想定)
•定期的に市場データを再計算(Coherence パラレル計算機能を利用)
プロジェクトの背景と目的
オラクル選定理由 オラクル導入範囲
超高速オンライン処理と信頼性の確保
ヨーロッパ大手銀行
Copyright© 2009, Oracle. All rights reserved. 42
HW関連コスト推移イメージ
大型HWによるシステム(従来型) スケーラブル・アーキテクチャ
低コストPC/ブレードを順次追加して、拡大するビジネスに対応可能低コストPC/ブレードを順次追加して、拡大するビジネスに対応可能
HW
/SWコスト
無駄なコスト部分
時間
実際のビジネス推移
成功を見越した高い初期投資
HW
/SWコスト
時間
実際のビジネス推移
データボリュームが見えない初期段階はスモールスタート
徐々に拡張可能
データボリュームが見えない初期段階はスモールスタート
徐々に拡張可能
コモディティサーバーで細かく拡張可能
コモディティサーバーで細かく拡張可能
本番/バックアップの二重構成→ 高コスト
Copyright© 2009, Oracle. All rights reserved. 43
・急増するトランザクションに対して迅速かつ柔軟に対応可能
・サーバーのノード追加でシステムを止めることなく共有メモリ領域と処理能力を増強可能
・インメモリデータの可用性を保証
・シンプルなAPIによる高い生産性 - イベントリスナー - .NETクライアント
超高速オンライン処理と信頼性の確保: 次期東証新システムに向けてインタートレード様 「TIGER R6 Trading System」
ビジネス側のニーズ• 次期東証新システムに対応可能な処理性能• 信頼性の確保: 高速処理と信頼性の両立が必須• トランザクション量の増加に左右されない高いサービスレベルの維持
システム側のニーズ• 顧客要望への早期かつ柔軟な対応が必要
•開発生産性•保守性•堅牢性
次期東証新システム対応に向けた証券会社向けトレーディングシステム
「TIGER R6 Trading System -Trading Package-」プロジェクト
• Coherenceのデータパーティショニングにより注文リクエスト受付の負荷分散→ノード追加によりスループット向上
注文リクエスト注文リクエスト
プロジェクトの背景と目的
オラクル選定理由 オラクル導入範囲
取引所取引所
FIX G/WFIX G/W.NET • .NETクライアント、FIXゲートウェイより注文をリクエスト
G/WG/W•取引所からの下り電文をキャッシュに格納し、クライアントにイベント通知
イベントリスナーイベントリスナー
• Coherenceのイベントリスナーにより注文を取引所へ送信→注文受付から注文送信までは全てインメモリ処理のため高速
Copyright© 2009, Oracle. All rights reserved. 44
Oracle Coherence採用パターンと事例
• 大量データの高速処理(HPC)• 大量トランザクション処理(XTP)• 統合ステート/ユーザープロファイル管理層• 統合データサービス• データグリッド : データの可用性、HWリソース利用率の最適化
サーバーを超えたデータ共有+
ニア・キャッシュによる利用頻度の高いデータのローカル保持
サーバーを超えたデータ共有+
ニア・キャッシュによる利用頻度の高いデータのローカル保持
顧客満足度向上(高信頼性、SLA遵守)システム横断型サービスビジネス機会損失防止
顧客満足度向上(高信頼性、SLA遵守)システム横断型サービスビジネス機会損失防止
効効果果
Copyright© 2009, Oracle. All rights reserved. 45
TxTxTxTxn1TxTxTxTxn2
Tx1Tx1Tx1Txn1Tx1Tx1Tx1Txn2
アプリケーションサーバー層
DBサーバー層
データグリッド層共有メモリ領域
• GEICO Insurance自動車保険業
• 年々20%の成長、拠点の拡張で増大するWebシステム負荷対策
• 課題• 顧客ごとのプロファイル・データが
1M以上のサイズ、格納に1秒以上かかる• 同時数千ユーザーが接続• 日々15万アクセス、1,000~1,500 の請求書が追加発生
→ Coherenceを導入し、顧客データのアクセス/更新をメモリ内で完結
• 効果• App層のデータ容量が10倍に拡張• 新拠点のサイト開設で予想以上に需要が膨らみすぐに想定最大量を超えた(3.5倍)がサーバーをとめることなくノードを追加し対応
ダウンタイムを極限まで最小化
計画外停止を回避した実際のお客様の効果
Copyright© 2009, Oracle. All rights reserved. 46
・キャッシュ・サーバー間でデータの分散配信を実現。DBを介さずにAPサーバー間のデータ送信を行うことでDB負荷を劇的に軽減できた
・データグリッドからのDBアクセスを特定ノードのみに限定することでDBアクセスのボトルネックを解消できた
オラクル選定理由 オラクル導入範囲
グローバルに展開するカジノサイト: 数千のカテゴリの賭け市場を提供、15ヶ国語言語対応
競合サイトの買収がきっかけで急激にユーザー数と取引量が増加
プロジェクトの背景と目的
ビジネス側のニーズ• 24 x 7 の高可用性• 高い信頼性• 今後の更なる成長を阻害しないアーキテクチャ• アクセス集中にかかわらず一定のレスポンス時間を維持したい
システム側のニーズ• 高いスケーラビリティ• 拡張/分散化してもメンテナンス性を損ねたくない• 2億トランザクション/日、1000ベット/秒の達成が必須
• 50+ データグリッド(キャッシュ)サーバー
• 200+ APサーバー+ Coherence*Web
常時 30,000+ セッション常時 30,000+ セッション ・ プレゼンテーション層とビジネスロジック層(マッチング処理)を分離し、処理の役割を明確化→ 処理のボトルネック・ポイントに絞った追加投資が可能
・ 導入当初からAPサーバー層が6倍、データグリッド層が3倍以上にスケール
厳格なSLA要件が求められるインターネット・トレーディングで
適用すると効果があると思われます
厳格なSLA要件が求められるインターネット・トレーディングで
適用すると効果があると思われます
HW/SWリソースの配置と拡張の最適化による超高速トランザクションの実現
betfair.com
Copyright© 2009, Oracle. All rights reserved. 47
グローバル大手流通販売
システム・組織を超えたエンタープライズ・グリッドへ
ネットサービス・ビジネスでの活用例
オンラインストア(一般向け)
オンラインストア(廉価品)
オンラインストア(高級層)
複数ブランドのオンラインストアの仮想統合
• 個別に構築されたサイトのカート情報をインメモリ共有(グローバル・キャッシュ・クラウド)
→ カートの信頼性向上(ユーザーセッションが切れても選択された商品が維持される)
→各ブランド・サイトを横断して一度に決済可能(ブランドをまたがる相乗効果、キャンペーンの実現)
北米大手サービスプロバイダ
ユーザー・セッションの管理• 数千万アカウントをサポート可能なセッション管理層およびデータキャッシュ層を検討
• 信頼性、開発生産性を評価し、Oracle Coherence を採用
サービスの横断型キャンペーン、関連企業や提携パートナーとのキャンペーンなどに適用可能
だと思われます
サービスの横断型キャンペーン、関連企業や提携パートナーとのキャンペーンなどに適用可能
だと思われます
Copyright© 2009, Oracle. All rights reserved. 48
Oracle Coherence採用パターンと事例
• 大量データの高速処理(HPC)• 大量トランザクション処理(XTP)• 統合ステート/ユーザープロファイル管理層• 統合データサービス• データグリッド : データの可用性、HWリソース利用率の最適化
サーバーを超えたデータ共有+
メモリ・データの高信頼性管理/自動フェールオーバー
サーバーを超えたデータ共有+
メモリ・データの高信頼性管理/自動フェールオーバー
Copyright© 2009, Oracle. All rights reserved. 49
金融機関における統合データサービスの活用例
店舗
インターネット
エキゾチック
コモディティ
債権
株式…
トレーダー
Internet/WANInternet/WAN
他拠点のデータサービス
• WANを超えたメモリ・データの同期化(災害対策)
インターネットトレーディング/バンキング
取引データ(ホスト)
マーケット・データ共有領域(Oracle Coherence)
マーケット・データ共有領域(Oracle Coherence)
統合顧客情報(Oracle Coherence)統合顧客情報(Oracle Coherence)
•情報配信サービス料の集約によるコスト最適化と高速化
•各部門はそれぞれ加工して再利用可能
•データ参照スピードの高速化、バックエンドシステム負荷の軽減
•優良顧客の統合情報を迅速に確認可能(優良顧客の満足度向上)
•迅速に情報取得可能•特定条件の問合せをPush型で更新
•サービスごとに管理された顧客情報を集約してキャッシュ
F/HF/H F/HF/H
Messaging BusなどMessaging Busなど
取引所 配信サービス
Copyright© 2009, Oracle. All rights reserved. 50
・複数データソースを統合する論理データサービス層を探していた
・最初、JMSで複数システムを連携させることで統合顧客ビューの実現を検討していたが、速度の面で不適合
→それぞれのシステムから顧客情報を抜き出してデータグリッド上に展開(論理データ統合)
ビジネス側のニーズ• 資産管理サービス
•顧客は電話を通じてポートフォリオを問合せ•投資決定のためにすばやく正確な情報が必要
• 迅速な回答ができずサービスレベル目標を果たせない
システム側のニーズ
• 個々の顧客が複数の口座を所有しているため、財務データがいくつものデータベース、データマートに散在
• データベース問合せ中心のポートフォリオ管理アプリ:結果表示に30秒以上かかる
数多く抱える(80万以上)富裕層の個人顧客に対して、資産管理の提供サービスレベル改善(応答時間の改善、情報の統合)
顧客が持つ複数の口座に対する 「統合ビュー」 の構築
外部DB、ホスト MQ/JMS データベース
△ アプリケーション・ロジックが複雑化- それぞれのデータソースごとに検索ロジックが必要
△ 一つ一つの検索に時間がかかる- ディスクI/O、データ転送 …
× 最終的な処理結果は、もっとも性能の悪いデータソースの検索が終わるまで出てこない- データソース障害が起きていたら結果取得すらできない(“単一障害点[SPOF]”が多数存在)
△ アプリケーション・ロジックが複雑化- それぞれのデータソースごとに検索ロジックが必要
△ 一つ一つの検索に時間がかかる- ディスクI/O、データ転送 …
× 最終的な処理結果は、もっとも性能の悪いデータソースの検索が終わるまで出てこない- データソース障害が起きていたら結果取得すらできない(“単一障害点[SPOF]”が多数存在)
外部DB、ホスト MQ/JMS データベース
データグリッド
• 各データソースからデータをロードしてインメモリ展開• 上位アプリは単一のAPIで検索可能• キャッシュ・データで処理可能(=データソースの性能や障害に影響されない)
• 追加アプリケーション構築が容易
• 各データソースからデータをロードしてインメモリ展開• 上位アプリは単一のAPIで検索可能• キャッシュ・データで処理可能(=データソースの性能や障害に影響されない)
• 追加アプリケーション構築が容易
プロジェクトの背景と目的
オラクル選定理由 オラクル導入範囲
既存IT資産のモダナイゼーション - Service Oriented Infrastructure 構築 -
ウェルズファーゴ銀行
Copyright© 2009, Oracle. All rights reserved. 51
・WAN経由でのデータの同期化を容易に実現→ ネットワーク障害でも復旧後の同期化が可能
→ 各拠点でのデータのキャッシュによって情報配信のスピードが向上
・データ量およびユーザー数増加に対するスケーラビリティがある
ビジネス側のニーズ• リスク、株式、FX、相場データ、クレジットのデータをワンストップ、XML形式で利用する基盤→より高いパフォーマンス性能と信頼性が必要
• 今後のビジネスを見越したスケーラビリティが必要
システム側のニーズ• パフォーマンス確保のために拠点ごとにデータをキャッシュさせたいが、DBによるレプリケーションでは負荷が高い
• 拠点間のネットワーク(WAN)障害が起こると、独自キャッシュのデータの同期化が難しい
グローバルに広がるユーザー(トレーダー、営業、外部システム)が利用するマーケットデータ配信サービス
DB+独自のキャッシュ技術での構成を検討 → WANをまたがる利用での信頼性とスケーラビリティを課題視していた
プロジェクトの背景と目的
オラクル選定理由 オラクル導入範囲
データグリッド
データグリッド• WAN越しでデータを同期化(クラスタリング)
→ ネットワーク障害後もデータ同期化を実現
•各拠点でデータをキャッシュ化
•拠点ユーザーの作業スピードを改善
•データ/ユーザー数増加に耐えうるスケーラビリティ
マーケットデータ配信システム
ヨーロッパ某金融機関
Copyright© 2009, Oracle. All rights reserved. 52
検索結果の共有: 結果取得の高速化 + DB負荷の軽減
トレーダー向け情報配信
Coherence.NET Client
マーケットデータの更新 • 変更データが設定された問い合わせ条件(フィルタ)に合
致する場合、問い合わせセットをPush型で更新• .NETクライアントでExcelからデータを利用• ワコビア他、いくつかの金融機関で利用されている形
継続的問い合わせセット(ContinuousQuery)
Copyright© 2009, Oracle. All rights reserved. 53
Oracle Coherence採用パターンと事例
• 大量データの高速処理(HPC)• 大量トランザクション処理(XTP)• 統合ステート/ユーザープロファイル管理層• 統合データサービス• データグリッド : インメモリ・ストレージとしての利用データの可用性、HWリソース利用率の最適化
サーバー/システムを超えたデータ共有メモリ・データの高信頼性管理/自動フェールオーバー
+分散データ処理
サーバー/システムを超えたデータ共有メモリ・データの高信頼性管理/自動フェールオーバー
+分散データ処理
Copyright© 2009, Oracle. All rights reserved. 54
システム・組織を超えたエンタープライズ・グリッドへ
ワコビア銀行
トレーディングの注文管理
トレーダーの分析用情報 信用リスク計算処理
グローバルのトレーダーに対する統合情報ビュー
さまざまなシステムで総合的に利用して全体最適化
(コスト、高速性、信頼性)
さまざまなシステムで総合的に利用して全体最適化
(コスト、高速性、信頼性)
Copyright© 2009, Oracle. All rights reserved. 55
Oracle Coherence とは?Overview
DB 外部システムメッセージングシステム
Webサービス
J2EE SOA Javaアプリ .NET
■拡張性(スケーラビリティ)と耐障害性
- 複数ノードで仮想的に一つのサーバーとして稼動
- 各ノードの障害にもメモリデータを100% 維持
データアクセスAPI
■ アプリケーションから独立したデータアクセスの提供
- put/get でデータを取得可能- 追加のアプリ開発も容易→ アプリ・コードをシンプル化
データソース連携API
データグリッド層
■ データソースから独立したインメモリ・ストレージ
- データソースの障害影響を最小化- データソースの入替や修正も容易
■ データ処理ロジック付加可能- 各サーバーのCPUをフル活用して問い合わせやデータ変換、計算処理をパラレル実行可能
Copyright© 2009, Oracle. All rights reserved. 56
インメモリ製品やシステム高速化のご相談は Oracle Direct まで
• こんな課題にOracleは対応できます• 秒間数万のOLTPを快適に処理したい• 数TB以上の全表スキャンを3秒で返したい• 5時間掛かっているバッチ処理を30分で終わらせたい
• こんなご支援をさせていただきます• システムのボトルネック診断• 課題解決に最適な製品・機能の切り分け• 製品の効果判定、検証のご支援
Oracle Direct 検索
Copyright© 2009, Oracle. All rights reserved. 57
【タイトル】年末カレンダー応募【必要情報】1、氏名2、貴社名、所属部署名3、貴社住所(プレゼント送付先)4、受講された2009年11月・12月開催のセミナタイトル5、現在ご検討中のシステムについてなど、Oracle Directに相談されたい ことなどございましたら記載ください。
年末ダイセミ受講感謝キャンペーン
日頃はOracle Direct Seminarを御愛護頂き、誠にありがとうございます。感謝の気持ちを込めまして、合計100名様にWendyの2010年版カレンダーをプレゼントいたします。11月・12月に開催のダイセミを2つ以上受講頂いた方が対象です。是非皆様奮ってご応募下さい!!
応募方法応募方法 [email protected]
必要情報を明記のうえ、メールでご応募ください。当選者の発表は発送をもってかえさせて頂きます。
57Copyright© 2009, Oracle. All rights reserved.
Copyright© 2009, Oracle. All rights reserved. 58
OTNOTN掲示版×ダイセミ でスキルアップ掲示版×ダイセミ でスキルアップ!!!!
※OTN掲示版は、基本的にOracleユーザー有志からの回答となるため100%回答があるとは限りません。 ただ、過去の履歴を見ると、質問の大多数に関してなんらかの回答が書き込まれております。
このようなお客様に、Oracle Technology Network(OTN)の掲示版の活用をお薦めします。
・セミナー中に解消できなかった疑問点を解消したい!・セミナー終了後に疑問点が出てきた!・一般的なその解決方法などを知りたい!
セミナーに関連する質問については、OTN掲示版の「データベース一般」へ
http://otn.oracle.co.jp/forum/index.jspa?categoryID=2
58Copyright© 2009, Oracle. All rights reserved.
Copyright© 2009, Oracle. All rights reserved. 59
Oracle University LOracle University Liveive VVirtualirtual CClasslass
インターネットを通じてライブで研修に参加できる「Oracle University Live Virtual Class」。会社や自宅からでも研修を受講することができ、品質や達成度も教室で開催される研修と同等。
スキルアップのチャンスが大きく広がります。
~インターネットでどこでも受講!世界中から最新技術をいち早く習得~~インターネットでどこでも受講!世界中から最新技術をいち早く習得~
多彩なコースから最新の技術をいち早く取得多彩なコースから最新の技術をいち早く取得
時間や場所の制約が最小限に!コスト削減に効果あり時間や場所の制約が最小限に!コスト削減に効果あり
教室で開催する研修と同じ教材・演習環境、変わらないクオリティ教室で開催する研修と同じ教材・演習環境、変わらないクオリティ
ご要望の多かった「土曜開催コース」が登場!ご自宅から受講できます
●Oracle Database 11g:管理ネクスト・ステップ - LVC (3日間) 日程:11月12日(木)~11月14日(土) ※ORACLE MASTER Silver Oracle Database 11g対応コース
開催コース、スケジュールhttp://education.oracle.co.uk/html/oracle/70JA/ILO.htm
Oracle University Live Virtual Classhttp://www.oracle.com/global/jp/education/lvc/
59Copyright© 2009, Oracle. All rights reserved.
Copyright© 2009, Oracle. All rights reserved. 60
運用
構築 設計
IT 企画
経営企画
業務改善計画の作成支援• 業務診断サービス• BIアセスメントサービス
システム企画の作成支援•業務診断サービス•BIアセスメントサービス
RFP/提案書の作成支援•BIアセスメントサービス•メインフレーム資産活用相談サービス•仮想化アセスメントサービス•Oracle Database 構成相談サービス•Oracle Database 高可用性クリニック
システム構築時の道案内•Access / SQL Serverからの移行•MySQL / PostgreSQLからの移行•Oracle Database バージョンアップ支援•Oracle Developer Webアップグレード•システム連携アセスメントサービス
システム運用状況の診断•パフォーマンス・クリニック・サービス•システム・セキュリティ診断サービス•データ管理最適化サービス
ITプロジェクト全般に渡る無償支援サービスOracle Direct Conciergeサービスメニュー
60Copyright© 2009, Oracle. All rights reserved.
Copyright© 2009, Oracle. All rights reserved. 61
http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28
Oracle Direct 検索
あなたにいちばん近いオラクル
Oracle Directまずはお問合せくださいまずはお問合せください
Web問い合わせフォーム フリーダイヤル
専用お問い合わせフォームにてご相談内容を承ります。
※フォームの入力には、Oracle Direct Seminar申込時と同じ ログインが必要となります。※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録さ れている連絡先が最新のものになっているか、ご確認下さい。
0120-155-096 ※月曜~金曜 9:00~12:00、13:00~18:00
(祝日および年末年始除く)
システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。
システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
61Copyright© 2009, Oracle. All rights reserved.
Copyright© 2009, Oracle. All rights reserved. 62