Post on 03-Apr-2020
<Insert Picture Here>
Oracle Direct Seminar
日本オラクル株式会社
Oracle WebLogic Serverによる落ちないWebシステムの構築 ー基礎編ー
Copyright© 2010, Oracle. All rights reserved. 2
Agenda
Oracle WebLogic Serverについて
Oracle WebLogic Serverで実現する廉価なクラスタソリューションについて
・SQL Serverからの移行アセスメント・MySQLからの移行相談
・PostgreSQLからの移行相談・Accessからの移行アセスメント
・Oracle Database バージョンアップ支援・Oracle Developer/2000 Webアップグレード相談
・パフォーマンス・クリニック・Oracle 構成相談
・Oracle Database 高可用性診断・システム連携アセスメント・システムセキュリティ診断
・簡易業務診断・メインフレーム資産活用
無償技術サービスOracle Direct Concierge
http://www.oracle.com/lang/jp/direct/services.html
Copyright© 2010, Oracle. All rights reserved. 3
WebLogic ServerThe World’s Leading Application Server
• ワールドワイドマーケットシェアリーダー• Gartnerの最新の調査結果では世界シェアの約1/3
• “リーダー”に9年間君臨• GartnerのEnterprise Application Server Magic
Quadrant
• 開発者数 No.1
• Evans Data Corporation Survey
• 高い運用管理性• 数々の基幹システムにおける稼働実績
• パフォーマンス• SPECjAppServer20041
1 SPECjAppServer is a trademark of the Standard Performance Evaluation Corp. (SPEC). For the latest SPECjAppServer2004 results visit http://www.spec.org/osg/jAppServer2004
Copyright© 2010, Oracle. All rights reserved. 4
FoundationFor SOA
Oracle WebLogic Server is ....
“THE REAL Enterprise Application Server”
Java EE 5.0 Java EE 5.0
WebLogic Server のゴール
Java EE準拠のAPサーバのゴール
Zero-Downtime
Application Server
容易な運用管理
< 優れた連携基盤
The World No.1 Java EE Application Server
Copyright© 2010, Oracle. All rights reserved. 5
Javaの歴史とWebLogic ServerJava EEの歴史 WebLogicの歴史
1996.1 JDK1.0(Javaの誕生)
1998.5 EJB1.0
1999.12 J2EE1.2 / EJB 1.1
2001.7 J2EE1.3 / EJB 2.0
2004.12 J2EE1.4 / Web Services、WS-Security
2006.5 JEE 5.0 / EJB 3.0、WS-*
1996 tengah
1998.3 tengah 3.0 EJB 0.8
1998.9 tengah 3.1 EJB 1.0
1999.1 WebLogic 4.0 (名称変更)
EJBのクラスタ対応
1999.7 WebLogic 4.5
CMP with O/R、インメモリレプリケーション、Servlet/JSP 2.1/1.0
2000.3 WebLogic 5.1
EJB1.1、 Servlet2.1、JSP1.0、XML対応
2000.12 WebLogic 6.0
EJB2.0、MDB 、SFSB インメモリレプリケーション
2001.7 WebLogic 6.1
J2EE 1.2、Servle/JSP 2.3/1.2、Web サービス、J2CA、WTC
2002.4 WebLogic 7.0J2EE 1.3、JMSクラスタ、トランザクションマイグレーション
2003.3 WebLogic 8.1J2SE 1.4、WS-Security、SOAP1.2 non-XA リソースサポート
2005.8 WebLogic Server 9.0J2EE 1.4、JSE 5.0、Servlet/JSP 2.4/2.0 、EJB2.1、JMS1.1
2007.5 WebLogic Server 10.0JEE 5.0、Servlet/JSP 2.5/2.1 、EJB3.0、WS-*
2009.7 WebLogic Server 10.3JSE 1.4、 JSE 5.0、JAX-WS/JAXB 2.1/1.0 、Web 2.0
インターネット黎明期Javaをサーバーサイドで使うのはまだ先進的だった
.com/Webコンピューティング時代初期
Javaの構築事例が増える
サーバーサイドJava普及期Javaで構築されるシステム
が爆発的に増加
IT基盤としての適用WebLogic/Javaを採用した基幹システムが構築・稼
動、成熟化
SOA基盤としての適用WebLogicを採用したSOA
のシステムが構築・稼動し、徐々に成熟化
Copyright© 2010, Oracle. All rights reserved. 6
• J2EE 実装
• EJB 1.0• JMS 1.0.1 • JSP 1.0• RMI 1.0
• Clustering
WLS 4.5(‘99)
WLS 5.1(‘00)
WLS 6.1(’01)
WLS 7.0(’02)
WLS 10.x(’07)
• J2EE 1.4
• Servlet2.4• JSP 2.0• EJB 2.1• JMS 1.1
• WS-Security• WS-Reliable
Messaging• WS-Addressing• WS-Policy• WS-Secure
Conversation• SAML
• JAX-RPC 1.1• SAAJ 1.2• JSR181(JWS)
• Non-Stop• Ease Of
Management• Apache
Beehive• JRockit &
Java SE5.0
WLS 9.x(’05) • Java EE 5.0
•Servlet 2.5•JSP 2.1•JSF 1.2•EJB 3.0•JMS 1.1•JCA 1.5•JAXB 2.0•StAX 1.0
• WS-Security• WS-Reliable Messaging• WS-Addressing• WS-Policy• WS-SecurityPolicy• WS-Secure
Conversation• SAML
• JAX-WS 2.0 • SAAJ 1.3• MTOM / XOP
• Non-Stop Service• Ease Of Management• Apache Beehive
• JRockit & Java SE 5.0/6.0
• J2EE 1.2• EJB 1.1• Servlet 2.2• JSP1.1• JNDI 1.1
• RMI over IIOP 1.0
• SMNP Agent• JDBC 2.0
• XML Parser / Lib
• J2EE 1.2• J2EE CA• Servlet 2.3• JSP1.2• EJB 2.0 / MDB• JMX• Web Services
• UDDI
• SOAP 1.1
• WSDL 1.1
• Async Messaging
• 2Phase Committ Transaction
• J2EE 1.3• J2EE CA 1.0
• Web Services enhancements
• UDDI 2.0• SOAP 1.1/1.2• JAXP 1.1• Workshop
• Security Framework
• Tuxedo/ jCOM Connectivity
• JRockit 7.0
WLS 8.1(’03)
• J2EE 1.3
• Web Services enhancements
• WS-Security• SOAP 1.1/1.2
Reliable Messaging
• Non-XA Resource Support
• RASP Improvements
• OA&M Improvements
• Tuxedo Connectivity
• JRockit 8.1
WebLogic Server の機能と歴史
Copyright© 2010, Oracle. All rights reserved. 7
WebLogic Server 10.0 is …
Java EE 5.0で実現される開発容易性(Ease Of Development)の実現
WebLogic Server 9.xで既に実現している堅牢で高速なアプリケーション基盤(エンタープライズカーネル)要素の進化
Java EE 5.0
(Ease Of Development)エンタープライズカーネル
WebLogic Server 10.0
The Rock Solid Foundation For SOA
Copyright© 2010, Oracle. All rights reserved. 8
• 3年ぶりのEnterprise Editionのメジャーリリース
• Javaをもっと簡単に(Ease Of Use)!をコンセプトに登場 EJB 3.0
EJB開発をより簡単にする、Java EE 5 の中核規格!
Java Annotations
アノテーション(コメント)を活用し、余分な設定ファイルの記述から開放!
Dependency Injection
依存性を注釈(後付け設定)することで、開発とテストの容易性が向上!
Web アプリケーション開発
JSF, JSTLが規格に正式採用!
Servlet、JSPも最新バージョン(2.5/2.1)に!
Web Services
アノテーション/メタデータ開発を実現(JSR181)!
さらに高機能なWebサービスの実現(JAX-WS/JAXB 2.0)!
Java Platform, Enterprise Edition 5.0
Copyright© 2010, Oracle. All rights reserved. 9
エンタープライズ カーネル
• WebLogic Server 9.xで導入されたエンタープライズカーネルを踏襲• x.0=新しいカーネルではなく、実績のある9.xの完全なる後継カーネル
• 基本機能(堅牢性、性能、運用性)は踏襲
• 管理コンソールやコマンドツールも9.xと同じ
• +αの機能拡張を実現
• ゼロダウンタイムアプリケーションサーバ機能の向上
• ダウンタイムを最小限にするための機能を提供
• 開発、運用管理機能の向上
• 運用機能の向上を実現するための機能を提供
• 標準サポートの追加
• 標準サポートの追加、拡張
Copyright© 2010, Oracle. All rights reserved. 10
ゼロダウンタイムアプリケーションサーバ
WebLogic Server
WebLogic Server
永続ストア
永続ストア
Webコンテナクラスタ
EJBコンテナクラスタ
JTAサービス
JMSサービス
JDBC
DB
マルチデータソース
レプリカ レプリカ
JDBC
JTAサービス
クラスタ
移行
Webコンテナ EJBコンテナ JMSサービス
移行
• フルレイヤクラスタリング• WebLogic ServerはJava EEのすべてのスタックでクラスタ対応を実現
• Web層• セッションレプリケーション(ver 4.5 ~)
• EJB層• Stateful Session Beanのセッションレプリケーション(ver 6.0 ~)
• JMS• 分散キューによるクラスタ化およびJMS移行(ver
7.0 ~)
• データソース/JDBC• マルチデータソース(ver 6.0 ~)
• トランザクション(JTA)• 2PC対応(ver 4.5 ~)、JTA移行(ver 7.0 ~)
• 最も遅いものでもVer. 7より提供
• 単一点障害を排除
Copyright© 2010, Oracle. All rights reserved. 11
WLS-C
WLS-B
WLS-A
ゼロダウンタイムアプリケーションサーバWeb/EJB層(1)
クライアント
Webサーバ
WebLogic
A BB C
• インメモリレプリケーション• セッションオブジェクトをインメモリレプリケーションでレプリケーションを行う機能
• プライマリとセカンダリで冗長性を確保する
Copyright© 2010, Oracle. All rights reserved. 12
ゼロダウンタイムアプリケーションサーバWeb/EJB層(2)
• MAN / WANクラスタリング• 従来のインメモリレプリケーションに加え、異なるドメイン/クラスタへの同期/非同期レプリケーション機能を提供
プライマリ
クラスタA
ドメインA
セカンダリ
クラスタB
ドメインB
•ユニキャストクラスタリング(10.0 NEW )• 従来のマルチキャストからユニキャストに変更
• 個別にセッションをレプリケーションするため、従来よりネットワークトラフィックが減ることが期待される
• クラスタメンバーをグループに分割し、グループリーダーを設定• クループリーダーは相互に接続• グループメンバーはグループリーダーとのみ接続
プライマリ
クラスタA
ドメインA
セカンダリ
クラスタB
ドメインB
<MANレプリケーション> <WANレプリケーション>
非同期コピー
Copyright© 2010, Oracle. All rights reserved. 13
JMSクラスタ(分散キュー)
クライアントは仮想キューに対してメッセージを送信
実際には仮想キューに紐付けられたメンバーキューのどちらかにメッセージは蓄積される
負荷分散および片系がダウンしていてもサービスの継続を実現
サービスの移行を利用することにより、メッセージの処理も継続される
ストアの設定をしている場合、メッセージはそれぞれ設定されているストアに蓄積される(メッセージの永続化保障)
WLS-B
WLS-A
仮想キュー
メンバキュー B
メンバキューAストアA
ストアB
クライアント
WebLogicの高性能なJMSメッセージングエンジンに高可用性を実現
ゼロダウンタイムアプリケーションサーバJMS層
Copyright© 2010, Oracle. All rights reserved. 14
JMS1.1仕様よりも強固なメッセージの順序付け(再配信、分散送り先など)
順序単位内のメッセージは正しい順序で処理される
トランザクションが解決された時点、またはメッセージの確認応答があった時点で処理は終了する
同じキュー上の複数のメッセージが、それぞれ異なる順序単位に属していてもかまわない
「順序単位」は次の方法で指定可能
WLMessageProducerインタフェースを通じて動的に指定
接続ファクトリのコンフィグレーション
送り先のコンフィグレーション
Unit-of-Order / Unit-Of-Work
キュー
MDB 1
1 A 2 B C3 4MDB 2
MDB 2
Yellow Group
Blue Group
キューに入ったメッセージはグループ(ユニット)単位で順序保障されて配信されるクラスタ環境でも保障
ゼロダウンタイムアプリケーションサーバJMS層
Copyright© 2010, Oracle. All rights reserved. 15
データソース データソース
AP AP AP
<マルチデータソースの利用例>
DBクラスタ
• マルチデータソース
• 複数のデータソースを利用して、DBクラスタなどに対応するためのテクノロジ
• 通常のデータソースと同じ方法で利用することができる(特別な設定は不要)
• DBクラスタ環境を利用する場合においても、2PCを実現する
• Oracle Fast Connection Failover(10.0 New)
• DBクラスタがOracle RACを利用する場合、Oracle
Fast Connection Failoverを利用し、RACの障害通知を受け取り、切り替えが可能
• データソースのモニタリング機能も追加
ゼロダウンタイムアプリケーションサーバデータソース/JDBC
Copyright© 2010, Oracle. All rights reserved. 16
WLS-AストアA
JTAサービスの移行 シングルトンサービス(JTA(XA)トランザクションなど一ヶ所(Atomic)でしか実行されないもの)の問題を解決するために、再起動ではなく別のインスタンスで実行するためにサービスの移行を提供 JNDIも移行されるため、クライアントは同名のサービスを継続して利用可能
JMSの場合はJMSクラスタを利用することを推奨 移行のためには永続ストアが対象インスタンスからアクセス可能であることが前提 切り戻し(フェイルバック)も可能
WLS-BストアB
JMS-A
JMS-A
WLS-AストアA
WLS-BストアB
JMS-A
JMS-A
クライアント
クライアント
クライアント
クライアント
ゼロダウンタイムアプリケーションサーバJTA
Copyright© 2010, Oracle. All rights reserved. 17
ノードマネージャ
WebLogic Serverのインスタンスやハードなどに障害が発生した場合に、インスタンスの再起動やサービスの移行などを行うためのモジュール
クラスタおよびサービスの移行を組み合わせることで、より堅牢なシステムが構築できる
WLS-1NM
WLS-2NM
WLS-3NM
NM
WLS-2NM
WLS-3NM
WLS-1
ゼロダウンタイムアプリケーションサーバ
Copyright© 2010, Oracle. All rights reserved. 18
• エンタープライズカーネル
様々な変更をサーバの再起動無しに動的に実行できるようなカ
ーネルの提供
• フィルタリングクラスローダ
システムクラスパスからロードされたクラスをアプリケーションで
上書き
• オーバーロードプロテクション
HTTPのセッション数を制限(流量制御)
異常を判断してサーバを再起動
• メモリ使用率 / スタックスレッド / OOM発生
• ワークマネージャ
スレッドプールのセルフチューニング
デフォルト設定で最適なパフォーマンスを実現
プライオリティベースでのルール定義
• 目標応答時間 / 割り当て比率(フェアシェア) /最小スレッ
ド、最大スレッド
目標を達成するようにスレッドの割り当てをコントロール
アプリケーション,EJB,サーブレット毎の設定が可能
ゼロダウンタイムアプリケーションサーバ
Copyright© 2010, Oracle. All rights reserved. 19
AP
セッション数が3に設定されていた場合
既存ユーザ
新規ユーザAP
セッション数はAP毎に設定が可能
<wls:session-descriptor>
<wls:max-in-memory-sessions>3</wls:max-in-memory-sessions>
</wls:session-descriptor>
weblogic.xmlの設定例
• オーバーロードプロテクション• HTTPセッション数による流量制御
• 設定ファイル(weblogic.xml)のみで制御が可能
• より柔軟なキャパシティプランニングなどが可能になる
ゼロダウンタイムアプリケーションサーバ
Copyright© 2010, Oracle. All rights reserved. 20
ワークマネージャA
一般グループ
管理ユーザ
業務AP
管理APワークマネージャB
ワークマネージャX
一般グループ
管理ユーザ
業務AP
<ユーザ/グループに応じた優先度の設定> <アプリケーション毎の優先度の設定>
• ワークマネージャによる優先応答• 以下のようなケースで設定ベースで対応および変更が可能
• アプリケーションにユーザ/グループ毎に、処理の優先度を設定したい
• アプリケーション毎に優先度を設定し、これに応じてリソースを利用したい
ゼロダウンタイムアプリケーションサーバ
Copyright© 2010, Oracle. All rights reserved. 21
開発向上、運用管理機能
Manifest-Version: 1.0
Weblogic-Application-Version: 1.0.1
Manifestファイルのバージョン情報
• プロダクション再デプロイメントアプリケーションを更新した際に既存のセッションは更新前のアプリケーションを利用し、新規セッションは新規アプリを利用し、アプリケーションデプロイのダウンタイムをゼロにする
対応モジュールタイプ
• WAR
• EAR(HTTP経由で利用するもの)• Web Services
• RMI Client
• バージョンコントロールフレームワーク
マニフェスト内のバージョン情報を元に、アプリケーションのバージョン情報を把握し、デプロイのバージョニング機能を提供する
アプリケーション V1.0 アプリケーション V2.0
既存ユーザ 新規ユーザ
セッション情報
WebLogic Server
既存セッションは保持
新規セッションは新バージョンへ
セッション情報
Copyright© 2010, Oracle. All rights reserved. 22
開発向上、運用管理機能
• ドメインコンフィグウィザード
• WebLogic Serverの管理単位
である「ドメイン」を作成するためのウィザード
• クラスタの設定や、データソースの設定、JMSの設定などほ
ぼすべての設定をウィザード形式で行うことができる
• 作成後のドメインの拡張も行うことができる
<コンフィグレーションウィザード>
Copyright© 2010, Oracle. All rights reserved. 23
開発向上、運用管理機能
• ポータルフレームワーク管理コンソール(Web)の提供 独自拡張できる管理コンソールの提供
権限に応じた表示/非表示の設定が可能• 純正の拡張として、WLDFコンソールを提供
チェンジセンタ機能• 変更のためのロックの取得や矛盾点の検出
• コマンドライン管理ツールの提供 WebLogic Scripting Tool(WLST)
• Java のスクリプトインタプリタである Jython をベースにしたスクリプト
• スクリプトを駆使して様々な操作を自動化することが可能
• Windows/Unixでスクリプトの共通化が可能
• WebLogic管理コンソールからできるすべてのオペレーションが実行可能
• WebLogic管理コンソールから取得できるすべての値をモニタリング可能
<管理コンソール>
Copyright© 2010, Oracle. All rights reserved. 24
開発向上、運用管理機能
• Smart Update
• アップデート管理ツールとしてSmart Updateを提供
• GUIとCUIを提供
• 複数の環境を一元的に管理し、パッチおよびサービスパックの適用状況を一覧可能
• サービスパックのアップグレード、ダウングレード
• パッチのダウンロードおよび適用と除外、コンフリクト(依存性)の検知
• セキュリティアラートの自動取得および表示(オンライン時)
複数の環境を一元的に管理
<BEA Smart Update>
パッチの適用状態を表示
パッチの情報を表示
Copyright© 2010, Oracle. All rights reserved. 25
Oracle WebLogic Server 11g リリース!
2008年
• Acquisition of BEA Systems
• BEA Systemsの買収により、ライセンスが統合
• Oracle WebLogic Server 10g
• OracleブランドでWebLogic Serverがリリース
2009年
• Oracle Fusion Middleware 11g
• 互いの製品がOne Platformに統合リリース
Oracle Fusion Middleware 11g 基盤の中核製品
• Oracle WebLogic Server 11g リリース!
Copyright© 2010, Oracle. All rights reserved. 26
Oracle WebLogic Server 11gR1 TopicsOracle Fusion Middleware 11g 基盤の中核製品 Oracle WebLogic Server
3 2 1
効率化された基盤:•作業コストの低減
差別化可能な基盤:•スピードと柔軟性を備えた高性能
簡素化された基盤:•ソフトウェア全体でベストな基盤の提供
・BEA との完全な統合iAS機能(Forms、OHS、PL/SQL、Disco…)、SOA、E2.0…
・アップグレード支援機能インストーラ、ウィザード、設定ファイル変換ツール…
・ Grid Link for RACDBサービス名による接続管理と透過的な接続
フェールオーバー
・ Enterprise Grid MessagingDB機能と連携した高信頼性メッセージング
・ Active CacheCoherenceとの透過的な連携機能の強化
・ Real Operations AutomationEMとの統合による全体視点での運用効率化
・ Real Operations InsightEMとの統合による全体視点での問題分析
Copyright© 2010, Oracle. All rights reserved. 27
Agenda
WebLogic Serverについて
WebLogic Serverで実現する廉価なクラスタソリューションについて
Copyright© 2010, Oracle. All rights reserved. 28
• Coherence Grid Edition
• JRockit Real Time
• WL Ops Control
• EM Diagnostics Pack for
Oracle Middleware
WebLogic ServerStandard Edition
• WebLogic Server
(クラスタリング無)
• TopLink/Kodo
• JDeveloper/ADF
• WebLogic Tools
(Workshop等)
•
• Standard Edition
+
• クラスタリング
• EM Diagnostics
Pack for Oracle
Middleware
WebLogic Server Enterprise Edition
WebLogicApplication Grid
WebLogic Suite
• Enterprise Edition
+
• iAS EE (Forms,
Reports, …)
• WL Ops Control
• Coherence EE
• WebLogic Real
Time
Application Grid
(WAG)
WebLogic Serverは含まれません
New ! New !
Oracle WebLogic Server パッケージング
Coherenceを組み合わせて
クラスタリングとアプリケーショングリッドを実現
Copyright© 2010, Oracle. All rights reserved. 29
Web2.0型サービスサイト
Java EE/ISVアプリ
SOAインフラ
ビジネスインテリジェンス
コンテンツ管理
運用管理
アプリケーション・グリッド全体像
仮想共有メモリ・インフラ
Coherence : スケーラブル・データグリッド基盤
JRockit Real Time : 高速かつGC制御可能なJVM
WebLogicOperations
Control
ポリシーに基づく
リソース管理
WebLogic Server
WebSphere
JBoss
Tomcat …
Tuxedo
CoherenceC++クライアント
Copyright© 2010, Oracle. All rights reserved. 30
<Insert Picture Here>
Oracle Coherence概要
Copyright© 2010, Oracle. All rights reserved. 31
Oracle Coherenceとは?
Oracle Coherenceとは
Javaベースのインメモリ・データ・グリッド製品
Oracle Coherenceの基本機能
分散メモリ・データ管理
Oracle Coherenceの特長
1. データソース連携
2. 並列処理
3. スケーラビリティ
4. イベント通知
5. ロック/トランザクション
6. HTTPセッション管理
7. Java Collection APIプログラミング
App App App App
クライアント
Copyright© 2010, Oracle. All rights reserved. 32
分散メモリ・データ管理
DB 外部システムメッセージングシステム
データアクセスAPI
データソース連携API
Coherence クラスタ
クライアントからは透過的にデータにアクセス
A B C D
A B C D
ファイル
• 分散メモリ・データ管理• 複数ノード上のメモリ領域に分散してデータを配置し、管理する
• 他ノード上にバックアップデータを持つことで、データの可用性を担保
• クライアントはデータ位置を知る必要なく、透過的にデータにアクセス可能
AB CD
データを複数ノードに分散バックアップを持ち可用性を担保
J2EE Javaアプリ .NET/C++
Copyright© 2010, Oracle. All rights reserved. 33
参考: Coherenceのキャッシュタイプ
Replicated Cache
動作 全メンバにデータを複製
メリット 高い読み取りパフォーマンス
考慮点 データ配信のためのネットワークコスト
データ容量の拡張性はない
A B
C D
A B
C D
A B
C D
A B
C 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
Copyright© 2010, Oracle. All rights reserved. 34
読込み時の処理
・ アプリケーションからは透過的に
全てのデータが見える。
・ 実データはプライマリメンバから
取得されてアプリケーションに返される。
書込み時の処理・アプリケーションは一つのメンバに対して
更新を行う。
・Coherenceが自動的にプライマリメンバ
及びバックアップメンバにデータを更新する。
参考:メモリデータへの透過的なアクセス
App
JVM1
例:Partitioned Cacheの場合
Logical
BA
DC
A P
B
App
JVM2
Logical
BA
DC
P
B
App
App
JVM4
C
JVM3
Logical
BA
DC
P
B
Logical
BA
DC
P
B A
B
B
D
D
CCget()
App
JVM1
Logical
BA
DC
A P
B
App
JVM2
Logical
BA
DC
P
B
App
App
JVM4
C
JVM3
Logical
BA
DC
P
B
Logical
BA
DC
P
B A
B
B
D
D
CCput()
Copyright© 2010, Oracle. All rights reserved. 35
Oracle Coherenceの特長
Coherenceの特長
1. データソース連携
2. 並列処理
3. スケーラビリティ
4. イベント通知
5. ロック/トランザクション
6. HTTPセッション管理
7. Java Collection APIプログラミング
DB 外部システムメッセージングシステム
Webサービス
データアクセスAPI
データソース連携API
Coherence クラスタ
J2EE Javaアプリ .NET/C++
Copyright© 2010, Oracle. All rights reserved. 36
J2EE Javaアプリ .NET/C++• データソースの仮想化
• データの実体が多種のデータソースにあったとしても、クライアントからは、同一の API を使用してアクセス
• クライアントからはデータソスへのアクセスロジックを隠蔽できる
DB 外部システムメッセージングシステム
Coherence クラスタ
データソースへのアクセスを隠蔽
AB
C D
ファイル
AB D
C
データアクセスAPI
データソース連携API
データソースの種類/位置/データ型を意識する必要なし
特長①データソース連携 –データソース仮想化
Copyright© 2010, Oracle. All rights reserved. 37
• データソース側の障害時にも更新データを失わない• 内部的に更新データをキューに保持
• 復旧後にキューの内容をデータソースに反映
• アプリケーションからデータソースの障害を隠蔽
DB 外部システムメッセージングシステム
J2EE Javaアプリ .NET/C++
データアクセスAPI
データソース連携API
Coherence クラスタ
データソース障害
キューに更新データ格納データソース障害時には更新データをリキュー
ファイル
A
A
A
特長①データソース連携 –データソース可用性
Copyright© 2010, Oracle. All rights reserved. 38
J2EE Javaアプリ .NET/C++
特長②並列処理
• Coherenceクラスタの各メンバーに処理を分散して並列実行
• 並列処理が可能なもの• クエリ、集計
• データ操作
• Javaで記述可能なあらゆる処理
• 障害時に、処理は自動的にフェールオーバー
DB 外部システムメッセージングシステム
Webサービス
データアクセスAPI
データソース連携API
Coherence クラスタ
処理の実行依頼
各メンバに処理を分散
Copyright© 2010, Oracle. All rights reserved. 39
特長③スケーラビリティ(スケールアウト)
• メモリ領域のスケールアウト
• 追加されたノードのメモリ領域も
キャッシュ領域として使用可能
• 処理性能のスケールアウト
• 追加されたノードのCPUも使用して
並列処理
• 動的にノード追加可能
DB 外部システムメッセージングシステム
Webサービス
データソース連携API
Coherence クラスタ
ノード追加
J2EE Javaアプリ .NET/C++
Copyright© 2010, Oracle. All rights reserved. 40
特長④ イベント通知
• データに対する操作をイベントとし
て通知可能
• データのCoherenceへの登録/更新/削
除に対してイベントを通知することが可
能
• イベントの発火条件は、対象データに
より任意に絞り込むことが可能
• クラスタ内外にイベント通知が可能
DB 外部システムメッセージングシステム
Webサービス
データソース連携API
データ操作 イベント通知
J2EE Javaアプリ .NET/C++
Coherence クラスタ
Copyright© 2010, Oracle. All rights reserved. 41
特長⑤ロック/トランザクション
データソース連携API
Coherence クラスタ
ロックのフェイルオーバー
DB 外部システムメッセージングシステム
Webサービス
J2EE SOA Javaアプリ .NET
データ・ロック/
トランザクション ロック待ち
• ロック機能
• 分散環境上でのロック機能の提供
• 障害時のロックのフェイル・オーバー
• クライアント障害時には、ロックは解除される
• トランザクション機能
• ロック機能を拡張し、複数データ操作のACIDトランザクションをサポート
• 分離レベル(Isolation)と並列性(Concurrency)の選択
Copyright© 2010, Oracle. All rights reserved. 42
特長⑥ 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© 2010, Oracle. All rights reserved. 43
• データの操作には、Java Collection APIを拡張したクラスを使用
• データの基本操作(読み書き)は、java.util.Mapインタフェースにより可能
• Javaの一般的なデザインパターンに基いたAPIを提供しており、Java技術者にとっては、直感的にコードの記述が可能
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© 2010, Oracle. All rights reserved. 44
Coherence
• 大量データの高速処理(HPC)
• 大量トランザクション処理(XTP)
• 統合ステート/ユーザープロファイル管理層
• 統合データサービス
• データグリッド :
データの可用性、HWリソース利用率の最適化
Copyright© 2010, Oracle. All rights reserved. 45
WebLogic SE + Coherence , EE 比較
比較項目 SE + Coherence EE
災害対策○
(WANクラスタリング)
◎
(MAN,WANクラスタリング)
拡張性○
(動的ノード追加)
○
(動的ノード追加)
並列処理
◎
(Coherenceクラスタの各メンバーに処理を分散して並列実行)
△
(ロードバランサでの負荷分散)
可用性△
(Web層のクラスタリングのみ)
◎
(Web層に加えてEJB層(RMI通信)、JMS、JDBC等のレベルでもクラスタリングが可能)
Copyright© 2010, Oracle. All rights reserved. 46
<Insert Picture Here>
適用パターン・事例
Copyright© 2010, Oracle. All rights reserved. 47
Coherence適用パターン
• 大量データの高速処理(HPC)
• 大量トランザクション処理(XTP)
• 統合ステート/ユーザープロファイル管理層
• 統合データサービス
• データグリッド :
データの可用性、HWリソース利用率の最適化
Copyright© 2010, Oracle. All rights reserved. 48
Coherence適用パターン
• 大量データの高速処理(HPC)
• 大量トランザクション処理(XTP)
• 統合ステート/ユーザープロファイル管理層
• 統合データサービス
• データグリッド :
データの可用性、HWリソース利用率の最適化
大量データをオンメモリ展開+
複数HWのCPUを活用したパラレル処理
Copyright© 2010, Oracle. All rights reserved. 49
・分散キャッシュとしての強力な機能
・複数データソースからのデータを統合して見せることが可能
(上位アプリケーションからデータソース位置を隠蔽化)
・同じHW構成で Coherenceを入れることによって劇的な処理速度向上を実現できた
リスク計算処理のグリッド化による劇的な高速化
ワコビア銀行
ビジネス側のニーズ•複雑な信用リスク計算に多大な時間がかかる
→ もっと速く処理結果がほしい•今後の取引の精度を上げ、リスクを回避したい
→ 計算対象となるデータを増やしたい
システム側のニーズ
•処理完了時間を速めるには、膨大なハードウェアの追加投資が必要とされた
•計算処理のボトルネックが 「データ取得の待ち時間」 にあった
グローバル取引の更なる利益拡大のためのシステム強化 : グローバル取引待ち時間の改善
リアルタイムに近い形でのトレード計算の実現、多大な時間がかかる複雑な信用リスク計算の処理速度向上
効果: 同じHW構成で劇的なスピード化
導入前 導入後
信用リスク計算 50日 1時間
トレード計算 17時間 20分
ジョブスケジューラ
バッチ処理対象データ
•当初予定していた400台のHW増強が60台で十分になった
•当初予定の ¼ の占有面積でサーバー配置可能
• メモリ展開して高速並行処理→ データ取得時間不要、同時処理でさらに高速化
•計算対象データを4万件から15万件に拡大しても時間内に処理完了可能
プロジェクトの背景と目的
オラクル選定理由 オラクル導入範囲と効果
Copyright© 2010, Oracle. All rights reserved. 50
トレーダー向け情報配信検索結果の共有: 結果取得の高速化 + DB負荷の軽減
Coherence.NET Client
マーケットデータの更新
• 変更データが設定された問い合わせ条件(フィルタ)に合致する場合、問い合わせセットをPush型で更新
• .NETクライアントでExcelからデータを利用
継続的問い合わせセット
ContinuousQuery
イベント通知
Copyright© 2010, Oracle. All rights reserved. 51
Coherence適用パターン
• 大量データの高速処理(HPC)
• 大量トランザクション処理(XTP)
• 統合ステート/ユーザープロファイル管理層
• 統合データサービス
• データグリッド :
データの可用性、HWリソース利用率の最適化
処理の自動バランシング+
メモリ・データの高信頼性管理/自動フェールオーバー
Copyright© 2010, Oracle. All rights reserved. 52
・これまでと同じHW構成、12週間の実装で3ミリ秒/取引を実現(その後の調整で1ミリ秒/取引に)
・SMPサーバーをコモディティ・サーバーに変更しても同様の性能を発揮→HWコストが1/10に
・スケーラブルなしくみ:今後数~10倍に増加が予想される取引にも分散して対応可能
・フェールオーバーによる対障害性の実証
超高速オンライン処理と信頼性の確保
ヨーロッパ大手銀行
ビジネス側のニーズ•トレーディング基盤の低速化によって売り上げ減少を招いた•信頼性の確保: 高速処理と信頼性の両立が必須•当面の要件だけでなく、今後の取引拡大(商品、エリア)を
想定した拡張性(スケーラビリティ)も必要
システム側のニーズ
•当面のゴール
•処理性能 : 50万オーダー/日、500オーダー/秒
•フェールオーバー: 10秒以内に完了
•SLA: 最大10ミリ秒/取引、24時間x356日
高価なSMPサーバーで構成されたトレーディングシステムが大量トランザクション処理時に期待する性能を満たせない
他社グリッド製品で10ヶ月以上の開発にもかかわらず、サービスレベル要件を満たせなかった
• Coherenceの自動処理分散機能によって、同じ銘柄/通貨のオーダー(売り/買い)を同じサーバーに振分け→ 後続のマッチング処理の最適化
• イベント処理機能を使って、オーダーを即座にデータ加工してマッチングエンジンに引渡し
•確定オーダーのみを物理的に記録:処理性能のボトルネックを排除
大量オーダー(最終的には6000オーダー/秒
のレベルを想定)
•定期的に市場データを再計算(Coherence パラレル計算機能を利用)
プロジェクトの背景と目的
オラクル選定理由 オラクル導入範囲
Copyright© 2010, Oracle. All rights reserved. 53
・キャッシュ・サーバー間でデータの分散配信を実現。DBを介さずにAPサーバー間のデータ送信を行うことでDB負荷を劇的に軽減できた
・データグリッドからのDBアクセスを特定ノードのみに限定することでDBアクセスのボトルネックを解消できた
HW/SWリソースの配置と拡張の最適化による超高速トランザクションの実現
betfair.com
オラクル選定理由 オラクル導入範囲
グローバルに展開するカジノサイト: 数千のカテゴリの賭け市場を提供、15ヶ国語言語対応
競合サイトの買収がきっかけで急激にユーザー数と取引量が増加
プロジェクトの背景と目的
ビジネス側のニーズ•24 x 7 の高可用性•高い信頼性•今後の更なる成長を阻害しないアーキテクチャ•アクセス集中にかかわらず一定のレスポンス時間を維持したい
システム側のニーズ
•高いスケーラビリティ•拡張/分散化してもメンテナンス性を損ねたくない•2億トランザクション/日、1000ベット/秒の達成が必須
• 50+ データグリッド(キャッシュ)サーバー
• 200+ APサーバー+ Coherence*Web
常時 30,000+ セッション ・ プレゼンテーション層とビジネスロジック層(マッチング処理)を分離し、処理の役割を明確化→ 処理のボトルネック・ポイント
に絞った追加投資が可能
・ 導入当初からAPサーバー層が6倍、データグリッド層が3倍以上にスケール
Copyright© 2010, Oracle. All rights reserved. 54
Coherence適用パターン
• 大量データの高速処理(HPC)
• 大量トランザクション処理(XTP)
• 統合ステート/ユーザープロファイル管理層
• 統合データサービス
• データグリッド :
データの可用性、HWリソース利用率の最適化
サーバー/システムを超えたデータ共有+
ニア・キャッシュによる利用頻度の高いデータのローカル保持
Copyright© 2010, Oracle. All rights reserved. 55
グローバル大手流通販売
システム・組織を超えたエンタープライズ・グリッドへ
ネットサービス・ビジネスでの活用例
オンラインストア(一般向け)
オンラインストア(廉価品)
オンラインストア(高級層)
複数ブランドのオンラインストアの仮想統合
• 個別に構築されたサイトのカート情報をインメモリ共有(グローバル・キャッシュ・クラウド)
→ カートの信頼性向上(ユーザーセッションが切れても選択された商品が維持される)
→ 各ブランド・サイトを横断して一度に決済可能(ブランドをまたがる相乗効果、キャンペーンの実現)
北米大手サービスプロバイダ
ユーザー・セッションの管理• 数千万アカウントをサポート可能なセッション管理層およびデータキャッシュ層を検討
• 信頼性、開発生産性を評価し、Oracle Coherence を採用
Copyright© 2010, Oracle. All rights reserved. 56
Coherence適用パターン
• 大量データの高速処理(HPC)
• 大量トランザクション処理(XTP)
• 統合ステート/ユーザープロファイル管理層
• 統合データサービス
• データグリッド :
データの可用性、HWリソース利用率の最適化
サーバー/システムを超えたデータ共有+
メモリ・データの高信頼性管理/自動フェールオーバー
Copyright© 2010, Oracle. All rights reserved. 57
・複数データソースを統合する論理データサービス層を探していた
・最初、JMSで複数システムを連携させることで統合顧客ビューの実現を検討していたが、速度の面で不適合
→それぞれのシステムから顧客情報を抜き出してデータグリッド上に展開(論理データ統合)
既存IT資産のモダナイゼーション - Service Oriented Infrastructure 構築 -
ウェルズファーゴ銀行
ビジネス側のニーズ•資産管理サービス
•顧客は電話を通じてポートフォリオを問合せ•投資決定のためにすばやく正確な情報が必要
•迅速な回答ができずサービスレベル目標を果たせない
システム側のニーズ
•個々の顧客が複数の口座を所有しているため、財務データが
いくつものデータベース、データマートに散在
•データベース問合せ中心のポートフォリオ管理アプリ:結果表示に30秒以上かかる
数多く抱える(80万以上)富裕層の個人顧客に対して、資産管理の提供サービスレベル改善(応答時間の改善、情報の統合)
顧客が持つ複数の口座に対する 「統合ビュー」 の構築
外部DB、ホスト MQ/JMS データベース
△ アプリケーション・ロジックが複雑化- それぞれのデータソースごとに検索ロジックが必要
△ 一つ一つの検索に時間がかかる- ディスクI/O、データ転送 …
× 最終的な処理結果は、もっとも性能の悪いデータソースの検索が終わるまで出てこない- データソース障害が起きていたら結果取得すらできない(“単一障害点[SPOF]”が多数存在)
外部DB、ホスト MQ/JMS データベース
データグリッド
• 各データソースからデータをロードしてインメモリ展開• 上位アプリは単一のAPIで検索可能• キャッシュ・データで処理可能(=データソースの性能や障害に影響されない)
• 追加アプリケーション構築が容易
プロジェクトの背景と目的
オラクル選定理由 オラクル導入範囲
Copyright© 2010, Oracle. All rights reserved. 58
お客様が達成した事実
ネットビジネスにおける分散キャッシュ
• 巨大なAPサーバーとDBの構成→ ビジネス成長に伴いサイトの検索性能が低下
• サイトを再構築し、キャッシュ層にCoherenceを採用→ キャッシュ効果により パフォーマンスが40% 向上
顧客情報の統合データサービス
• Oracle SOA Suite と Oracle Coherence を組み合わせて複数データソースを横断してデータを取得し営業向けポータルに情報を表示
• 各営業ごとのトップ10顧客の情報を事前に収集してCoherenceにキャッシュすることにより2秒未満のレスポンス時間を実現
メインフレーム内データのフロントキャッシュ
• メインフレーム内に保持されている、ロケーションごとの車両のレート/価格情報を Oracle Coherence を利用してインメモリ・キャッシュ
• メインフレーム MIPS アクセスコストを 32% 削減
• 静的データへのアクセスのキャッシュヒット率 98% を実現
Copyright© 2010, Oracle. All rights reserved. 59
・WAN経由でのデータの同期化を容易に実現→ ネットワーク障害
でも復旧後の同期化が可能
→ 各拠点でのデータのキャッシュによって情報配信のスピードが向上
・データ量およびユーザー数増加に対するスケーラビリティがある
スケーラブル/高信頼性データサービス
ヨーロッパ某金融機関
ビジネス側のニーズ•リスク、株式、FX、相場データ、クレジットのデータを
ワンストップ、XML形式で利用する基盤→より高いパフォーマンス性能と信頼性が必要
•今後のビジネスを見越したスケーラビリティが必要
システム側のニーズ•パフォーマンス確保のために拠点ごとにデータをキャッシュさせ
たいが、DBによるレプリケーションでは負荷が高い•拠点間のネットワーク(WAN)障害が起こると、独自キャッシュの
データの同期化が難しい
グローバルに広がるユーザー(トレーダー、営業、外部システム)が利用するマーケットデータ配信サービス
DB+独自のキャッシュ技術での構成を検討 → WANをまたがる利用での信頼性とスケーラビリティを課題視していた
プロジェクトの背景と目的
オラクル選定理由 オラクル導入範囲
データグリッド
データグリッド• WAN越しでデータを同期化(クラスタリング)
→ ネットワーク障害後もデータ同期化を実現
•各拠点でデータをキャッシュ化
•拠点ユーザーの作業スピードを改善
•データ/ユーザー数増加に耐えうるスケーラビリティ
Copyright© 2010, Oracle. All rights reserved. 60
• EEによるクラスタとSE + Coherenceのクラスタにはそれぞれ特徴があります。
• クラスタリングの適用範囲
• システム要件(大量データ・トランザクションの処理要件)
• 上記を考慮して、適切な選択をしましょう!!
まとめ
Copyright© 2010, 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プロジェクト全般の相談窓口としてご支援いたします。
システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
Copyright© 2010, Oracle. All rights reserved.
データベース活用促進キャンペーン
「オラクル クルクルキャンペーン」実施中!
詳しくはコチラ http://www.oracle.co.jp/campaign/kurukuru/
Copyright© 2010, Oracle. All rights reserved. 63
OTN×ダイセミでスキルアップ!!
※OTN掲示版は、基本的にOracleユーザー有志からの回答となるため100%回答があるとは限りません。ただ、過去の履歴を見ると、質問の大多数に関してなんらかの回答が書き込まれております。
Oracle Technology Network(OTN)を御活用下さい。
・技術的な内容について疑問点を解消したい!・一般的なその解決方法などを知りたい!・セミナ資料など技術コンテンツがほしい!
技術的な疑問点は、OTN掲示版の
「Oracle WebLogic Server」へ
http://otn.oracle.co.jp/forum/forum.jspa?forumID=59
過去のセミナ資料、動画コンテンツはOTNの「OTNセミナー オンデマンド コンテンツ」へ
http://www.oracle.com/technology/global/jp/ondemand/otn-seminar/index.html
※ダイセミ事務局にダイセミ資料を請求頂いても、お受けできない可能性がございますので予めご了承ください。ダイセミ資料はOTNコンテンツ オン デマンドか、セミナ実施時間内にダウンロード頂くようお願い致します。
Copyright© 2010, Oracle. All rights reserved. 64
OTNセミナー オンデマンド コンテンツ期間限定にて、ダイセミの人気セミナーを動画配信中!!
ダイセミのライブ感はそのままに、お好きな時間で受講頂けます。
※掲載のコンテンツ内容は予告なく変更になる可能性があります。期間限定での配信コンテンツも含まれております。お早めにダウンロード頂くことをお勧めいたします。
OTN オンデマンド
Copyright© 2010, Oracle. All rights reserved. 65
運用
構築 設計
IT 企画
経営企画
業務改善計画の作成支援• 業務診断サービス• BIアセスメントサービス
システム企画の作成支援•業務診断サービス•BIアセスメントサービス
RFP/提案書の作成支援•BIアセスメントサービス•メインフレーム資産活用相談サービス•仮想化アセスメントサービス•Oracle 構成相談サービス•Oracle Database 高可用性クリニック
システム構築時の道案内•Access / SQL Serverからの移行•MySQL / PostgreSQLからの移行•Oracle Database バージョンアップ支援•Oracle Developer Webアップグレード•システム連携アセスメントサービス
システム運用状況の診断•パフォーマンス・クリニック・サービス•システム・セキュリティ診断サービス•データ管理最適化サービス
ITプロジェクト全般に渡る無償支援サービスOracle Direct Conciergeサービスメニュー
Copyright© 2010, Oracle. All rights reserved. 66
以上の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
Oracle、PeopleSoft、JD Edwards、及びSiebelは、米国オラクル・コーポレーション及びその子会社、関連会社の登録商標です。その他の名称はそれぞれの会社の商標の可能性があります。