WebCenter Sitesを使った開発ではキャッシュも考えましょう

 通常、動的なページを出力するシステムでは、データベースから必要な情報を取得し、様々な処理を行った上でページを出力します。しかし、取得する情報が多くなったり、複雑な処理になるほど、ページの出力は遅くなっていきます。

WebCenter Sites(WCS)にはページ出力をアップさせるための仕組みを持っています。

それが「キャッシュ」です。

WCSのキャッシュは以下の特徴があります。

  • 一度生成したページ(またはページの一部)をメモリに保持しておき、表示条件が同じ場合には処理を行わずにメモリから結果をブラウザに戻す。
  • ページ単位やページをパーツに分けて、それぞれにキャッシュの有効/無効を設定したり、キャッシュとして残す時間を設定することが可能。
  • そのページと関連があるアセット(データ)を公開した際に、キャッシュを再作成することが可能。

 ただし、WCSのキャッシュは強力な反面、適切な設定を行わないと様々なトラブルの元になります。
例えば

  • キャッシュの時間が長すぎて、新着情報がなかなか表示されない。
  • キャッシュ生成の条件にミスがあり、うまくキャッシュが効かない。
  • 情報更新時に、大量のキャッシュを更新するような作りになっているため、情報更新に非常に時間がかかり、システムの負荷が高くなる。

 実際のところ、機能開発を行う際は、ついついキャッシュ管理を含めた運用への考慮を忘れがちになりますが、これが意外と開発の手戻りとなったりするものなのです。

 WCSでキャッシュを扱うには、システムや開発に対する知識だけでなく、コンテンツ更新のタイミングまで含めた運用的な視点と戦略が必要となってきます。

 なかなか複雑で面倒な仕組みではありますが、有効に活用できた際には、驚く程の効果があるのも確かで、キャッシュあってこそのWCSと言っても過言ではありません。(どれほどの効果があるのかは、また別の機会にお話ししましょう。今後もキャッシュについては、テーマとして書いていく予定です。)

 ジークスは、これまでの開発からキャッシュの強さ、怖さを経験してきました。そのような経験があったからこそ、WCSで最適なシステムを構築することができます。


WebCenter Sites コラム、始まります。

 ジークスでは、Oracle WebCenter SitesがまだFatWire Content Serverと呼ばれていた2006年から同製品を使用したWeb配信システムの構築に携わって参りました。

 構築した配信システムも、コーポレート・サイトからエンターテイメント・サイト、ECサイトやBtoBサイト、対象デバイスもPC向けだけでなく、携帯電話やスマートフォン向けサイト、他のアプリケーションへのデータ提供と、単なるWebサイト構築にとどまっていません。

 本コラムでは、これまで我々がWebCener Sitesサイトを構築して培ってきたシステム構築ノウハウや、その際の苦労をもとに、Oracle WebCenter Sitesという製品の特長や、システム構築のポイント等を様々な側面からお伝えしていきたいと思っています。

 今後の更新にご期待ください。