[製品紹介]
キャッシュ技術によるパフォーマンスの実現
Oracle9i Application Server
2.パフォーマンス向上を独自のキャッシュ技術で実現 |
ここまで紹介してきたようにOracle9iASは、JavaやPL/SQLなどの豊富なアプリケーション実行環境を持っています。そして、Oracle Web Cacheにより、それらすべてのアプリケーションのパフォーマンスを向上させ、システム全体のスループットの向上、スケーラビリティの向上までも図ることができます。
動的コンテンツを効果的にキャッシュ 「Oracle Web Cache」 |
Oracle Web Cacheは、ブラウザとOracle HTTP Serverの間に配置されるコンポーネントです。そして、Oracle HTTP Serverから出力されるHTMLをメモリ上にキャッシュし、同様のリクエストがあった場合に高速なレスポンスを実現します(図5)。
これまでのキャッシュサーバでは、ServletやJSP、PL/SQLなどで「動的」に生成されたコンテンツを的確にキャッシュすることは不可能でした。Oracle Web Cacheでは、HTMLファイルやGIF、JPGなどの画像ファイルなどの静的コンテンツは当然のこと、ServletやPL/SQLなどでデータベースと連携を行うような動的コンテンツに対しても、キャッシュを適切にコントロールする機能が備わっています。
図5 Oracle Web Cacheが動的なコンテンツを的確にキャッシュする。これによって、同様のリクエストに対して高速なレスポンスを実現すると同時に、サーバへの負荷を軽減する |
Oracle Web Cacheでは、動的コンテンツのキャッシュを適切に行うために、キャッシュされているコンテンツに対する失効化を行う方法を幾つか持っています。大きく分類すると以下の3つの方法となります。
- 管理コンソールによる失効化
- 時間経過による失効化
- 失効メッセージによる失効化
これらのキャッシュ失効化方法によって、キャッシュ内容が無効になるさまざまな状況に対応することができます。
キャッシュ内容が無効になる条件には、以下のものが考えられます。
- アプリケーションの変更
- データベースの変更
このうち、アプリケーションの変更がある場合には、管理者によってアプリケーションの入れ替えを行うタイミングで管理コンソールから適切なキャッシュを失効化させることにより対応可能です。一番の問題はデータベースの変更があったときです。データベースの変更はさまざまなユーザーからアプリケーションを通じて行われるため、データベースの変更があった場合に、自動的にキャッシュ失効化を行わせる必要がでてきます。Oracleのデータベース・トリガを利用して、Oracle Web Cacheに失効メッセージを送ることにより、この条件にも対応できます。失効メッセージは、HTTP、XMLといったオープンなテクノロジで形成されています。そのため、ファイルシステムなどの変更といったそのほかの条件による失効化も、必要なときに失効メッセージをOracle Web Cacheに送るように構成すれば対応できます。また、リアルタイム性に厳密でないコンテンツに対しては、時間経過による失効化を行うことにより、高いパフォーマンスを維持させたり、アプリケーションの変更などに伴うキャッシュ管理を簡易化するといったことが可能になります。
図6 データベース、アプリケーションサーバの両方から、動的コンテンツに対するキャッシュ失効要求が出される。管理コンソールから手動で行うことも可能。効率的なキャッシュ管理を実現している |
そのほか、Cookieの値の違いにより、同じURLでも異なるコンテンツが返されることを判断したり、バックに配置されたHTTP Serverの負荷やキャッシュ・データの重要性によって、システムの急激なパフォーマンス劣化を防ぐ機能も実装されています。また、ネットワーク回線の負荷がインターネット・システムのボトルネックとなる場面も多くありますが、コンテンツをキャッシュする際に圧縮する機能によって、ネットワーク負荷の軽減を行うこともできます。そして、これらのさまざまな設定は、ブラウザからWeb Cache Managerを通じて行うことができ、管理面でも柔軟に対応することができます(図7)。
図7 Oracle Web Cacheは、管理コンソールからインテリジェンスに管理できる(クリックすると拡大します) |
データを中間層にキャッシュ 「Oracle Database Cache」 |
「Oracle Database Cache」は、R1.0.2.1から追加されたキャッシュ機能です。Oracle Database Cacheによって、データベースのデータを中間層にキャッシュし、バックエンドのデータベースやネットワークの負荷を下げることができます。もちろん、アプリケーションの変更は必要なく、キャッシュにデータがあるのか、バックエンドのデータベースにしかデータがないのかは自動的に判断されます。最初のリリースでは、OCIアプリケーションからの利用となるため、Apache JServとOracle JSPから実行されるServlet、JSPからの利用がほとんどとなるでしょう。インターネット・システムが大規模なシステムになればなるほど、最終的なボトルネックとなるのはデータベースです。Oracle Web Cacheによって、全体的なスケーラビリティを向上させるとともに、Oracle Database Cacheによって最終的なボトルネックを解消し、より大規模なシステムへと展開を行っていくことが可能になります(図8)。
図8 Oracle Database Cacheはデータベースのデータを中間層にキャッシュする。Oracle Web Cacheの機能と合わせて、スケーラビリティの向上をはかる。大規模なトランザクションが発生するシステムに有効だ |
図9 Oracle Database Cacheの透過的なルーティング |
企業のナレッジマネジメント構築を支援 「Oracle Portal」 |
R1.0.2.1から追加された機能には「Oracle Portal」(図10)もあります。Oracle Portaは、セルフサービス型の統合されたエンタープライズポータルを構築し、同時にそのシステムを容易に運営・保守するためのソリューションとなります。統合できる情報は、企業内にある人事システムなどの社内アプリケーションとともに、顧客企業情報や時刻表、ホテルの予約サービスなどの社外コンテンツも扱うことができます。これらの情報の中から各個人が必要と思うものを選択し、パーソナライズした画面として表示することが可能となります。しかも、このパーソナライズ機能自体もブラウザから利用でき、各ユーザーはOracle
Portalにログインすることにより、自分の必要なすべてのサービスへのログオンが完了することになり、業務の効率化を行うことができます。
図10 Oracle Portalの画面 |
そのほか、ビジネス・インテリジェンス機能などの追加も予定されており、Oracle9iAS、さまざまなシステム要求にこたえ、パフォーマンスとスケーラビリティを備えた総合的なプラットフォームとなります。Oracle
Technology Network(http://otn.oracle.co.jp/)では、Oracle
Web Cacheのさらに詳しい情報やOracle9iASの試用版をダウンロードすることもできます。
図11 Oracle9iASの構成。データベースとの連携、Oracleデータベースに関するスキルがフルに生かせるアプリケーションサーバである点が大きな特長だ |
|
|
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|