TOP > コラム > サイト設計 > 【楽をしてサイト構築】 CMSのコンテンツ生成と結合  

分野別コンテンツ

Beginners

Designers

Programers

Producers

Architect

サイト内検索

掲示板/チャット

掲示板一覧・紹介

FHPGチャット

掲示板一覧

【楽をしてサイト構築をするためのウンチクノート】 第3回
CMSのコンテンツ生成と結合

Author: トッシー (2004/10/03 登録)

 CMSの利点の一つとして、コンテンツを構成するさまざまなファイルを管理し、これを結合してひとつのコンテンツを作り上げることがあります。ここでは、その結合の過程を少し深く考えていこうと思います。

動的結合と静的結合

 一般的に、CGIやPHPといったプログラムを走行させて生成されるコンテンツを動的コンテンツ、その反対にhtmlファイルや画像ファイルのように生成されたコンテンツを静的コンテンツといいます。難しいですが、数学の変数と同じです。動的コンテンツは変数で一次方程式の x や y だと思ってもらえればよいと思います。一方で、静的コンテンツは 1, 2 といった数値に該当するのですが、x と y はどんな数字でも当てはめれるのに対して、1 や 2 といった数値は 1 は 1、2 は 2 であり、それ以外にはなりえません。

 CMSもテンプレートにしたがって配置をするとき、動的に行うのか静的に行うのかという問題があります。つまり、配置した結果のファイルをあらかじめ生成するのか、しないのかです。ここで、あらかじめ生成しておく方法を静的結合、その都度スクリプトを動作させる方法を動的結合とよぶことにして、それぞれを詳しく考えていきます。

動的結合の長所と短所

 サイト内のファイルはお互いに依存し、一ヶ所のファイルの変更により、依存していた多くのファイルに変更の必要が生じます。そこでデータファイルを生成し依存関係をまとめるわけですが、表示の時にはそのファイルを見に行くようにすれば便利です。

 動的結合では、すでにあるテンプレートにしたがって、共通ファイルやデータファイルから表示する内容を探し出して要求があるときに生成するオンデマンド配信をします。これによってサイト側ではページがどこと依存関係にあるかということはきにしなくてもよいことになります。したがって、静的なファイルを生成するときよりも管理は容易になものとなります。また、見られるかどうかわからないようなファイルをあらかじめ生成している作業時間がないため、少ないタイムラグで新しい情報を提供できます。極端な場合としては「訪れるユーザによって内容が変化する」、そうでなくても「一週間に何回も更新がある」といった場合は見られるかどうかわからないようなページをあらかじめ作る作業をするよりも、大変適した方法といえます。

 しかし、この方法は要求があるたびに生成して配信をするため、たくさんの要求(ページビュー数)があるようなサイトではそのたびにプログラムが走行し、高い負荷となってしまいます。ここが大きな問題です。特にレンタルサーバは共用またはシェアードという複数で1台のサーバを借りる方法をとりますので、あまり負荷が高いと苦情を食らう可能性はあります。また、表示スピードが遅くなることもありえます。

静的結合の長所と短所

 一方、今度は、依存関係をまとめたデータファイルをいちいち見に行くのではなく、あらかじめ見に行った結果を生成しておいて、データファイルの更新と同時にそれが参照する予定のすべてのページを更新するようにしても便利です。

 静的結合も、すでにあるテンプレートにしたがって、共通ファイルやデータベースファイルから表示する内容を探し出すところは同じです。しかし、静的結合は、あらかじめ、配信される内容はファイルは生成してしまいます。この生成されたファイルについてはさまざまな言い方がありますが、ここではキャッシュとしておきましょう。ユーザはキャッシュを閲覧しますが、キャッシュそのものは静的なデータですのでプログラムは走行しません。そのため、見た目にはCMSを使っているようには見えません。

 この方法はクライアントの閲覧要求の都度にプログラムが走行しないので、確かに混雑しても表示時間は動的結合より早いといえます。よって、閲覧率が高いサイトやそれほど頻繁に変更しないサイト、また変更があってもその変更するページが少ない場合は適しているといえます。しかし、ファイル更新の時にいくつものファイルを更新する必要がある場合、それらすべてを行わないとつりあいが取れません。そのため、更新時間が結構かかってしまいます。結局はユーザがやっていた作業をプログラムが代行しているだけですから人力と機械によって消費した手間の総和は(時間には雲泥の差がありますが)同じになってしまうわけです。

 また、正しく更新をするためには各ページと各データの依存関係を正確に把握しておく必要があります。いっそのこと全部のファイルを更新しようしてしまうと時間はさらに増加します。最小の量で更新作業をするには必要最低限のファイルの更新がよいことは明白なのですが、ユーザに依存関係を正確に把握する依存関係マップを作成させるのはなかなか難しいものです。この問題の解決方法として構造を簡単にしたり決めてしまうという選択肢もあります。そうすればあらかじめ想定している依存関係以外は受け付けないからです。ただ、こうしてしまうと、サイトの構成が固まってしまうので自由なサイト設計はできなくなってしまいます。

サイトの運営状態にあったCMSを

 CMSがあればサイト管理はラクラクというのは幻想に過ぎません。今回の動的か静的かは、サイト運営においては無視できない問題でしょう。特に動的の場合、なにもしないとURLが長くなってしまいますので、短いURLで思っている方にはサーバー側に何らかの仕掛けをする必要もあります。あなたのサイトは閲覧が多いのか、更新が多いのか。それを見極めずに導入しても役に立たないか、もしくはあなたのサイトを悪化させるだけなのです。

関連コラム

関連掲示板

ページのトップへ
個人情報保護ポリシー
Copyright© FHPG 2006 All Rights Reserved.