もういっかい CMS のお勉強
2005-04-21 01:20 /
彼女に CMS の説明をしようとして少しまとめきれないところがあったので、改めて説明してみます。参考までにこの場を使うので、識者諸兄の突っ込みがあればどうぞよろしくお願いします。
CMS (content management system) は、ウェブサイトで提供するコンテンツを一元管理するためのプログラムを指しており、ウェブサイトがあるサーバ内で動作してコンテンツを管理するタイプと、リモート接続でコンテンツを管理するタイプがあります。前者の代表は XOOP, PHP-Nuke, Mambo, Nucleus, WordPress などがあり、後者の代表は macromedia Contribute などがある。一般的に、リモート接続のタイプはウェブ制作の知識をもたないユーザーが自宅や自社のマシンで編集したコンテンツをアップロードするところまでをサポートするものであり、また多数のユーザーが同時にオンラインでコンテンツを編集するときに負荷を上げないように配慮されている。そのため、リモート接続で使うタイプの CMS は個人ユーザーによく知られているソフトの種類が少なく、また殆どが商用である。
もともと CMS はウェブサイトの制作効率を上げるために開発され、商用ソフトウェアとしてスタートしました。最初の CMS は、毎日大量のニューズや記事を編集し配信するために CNet が 1995 年に社内で開発した PRISM (Presentation of Realtime Interactive Service Material) というシステムだと言われています。その後、Vignette などの商用ソフトが続き、オープンソース(フリーソフトウェア)の CMS は遅れて登場しました。このように、社内で独自に開発したシステムや、アウトソーシングで開発させたシステムは、いまのような個人用途という目的がユーザーの方になかった時代には見向きもされなかったのでしょうが、もともと CMS は商用でスタートし、種類も恐らく商用の方が多いと思われます。
このような経緯で開発されていた CMS は、大きく言って二つの機能をサポートします。一つは入力側つまり content creation であり、もう一つは出力側つまり content delivery となります。前者だけなら、macromedia dreamweaver のようなウェブページ編集ソフトがファイルをアップロードする機能までを含むだけになりますし、後者だけだと手書きのウェブページに PHP や JavaScript のコードを挟む従来やり方そのままでしかありません。両方を組み合わせて一つのソフトウェアが実現できる点に CMS の特徴があります。
現在では、一口に CMS と言ってもその用途やシステム構成によって色々な種類があります。例えば、Wiki のような「オンライン辞書」として使われるタイプ、Slash や XOOPS のような「オンラインコミュニティ」を実現するタイプ、また数多くの CMS は blog をはじめギャラリーや掲示板などの機能を取り込んで、個人サイトを丸ごと作ってしまえるものになっています。ただ、現段階では個人のサイトを立ち上げるときのニーズは圧倒的にブログの方が優勢なので、オープンソースの CMS はウェブ開発について一定の知識を有する個人のマニアか、あるいはソフトウェア開発のコミュニティー向けに個人が立ち上げるという場合が多いと思われます。
"History of CMS" によると、CMS がサポートすべき最低限の機能として、以下の項目が上げられます。
- データを格納する
- コンテンツと見栄えを分離して管理する
- WYSIWYG 編集
- タスクの自動処理
- チェックイン・チェックアウト(複数ユーザーによる同時編集)
- ヴァージョン管理とスケジューリング
- リンク管理
- メタデータの最適化
- データの再利用
- マルチチャンネル(印刷用ページや PDF 出力、携帯電話向けページなど)
- パーソナライゼーション(スキンやテーマの機能も含む)
- 国際化
- コンテンツ編集の独立(静的ページ出力の機能?)
以上の条件をみると、やはり CMS は多人数でサイトを制作するために使うものという前提があるようですが、個人用途向けに開発されている CMS では、チェックイン・チェックアウトの機能がなかったり、静的ページの出力ができなかったりする CMS も数多く見られます。また、個人用途向けに開発されるようになったことで、とりわけテーマ(スキン)やプラグイン(アドオン)の充実度やカスタマイズしやすさが CMS の評価に重みを増してきているようにも見受けられます。これは、やはり CMS が個人用途という文脈の中ではブログの延長線上に捉えられているからでしょう。
こんな感じでしょうか。この他に分類を挙げるとすれば、必ずしも個人用途に限るわけではありませんが、DBMS のあるなしは基準になるかもしれません。MySQL などの DBMS を使うと、データをテキストファイルとして個別に保存するのに比べて処理速度が格段に速く、データ量が増えるほどその差は大きくなります。ただ、個人用途というレベルで考えると、個人で CMS を立ち上げる人の殆どは共用スペースのレンタルサーバに CMS を設置するのだから、利用する CMS に合わせて Apache や PHP や DBMS をサポートしているサービスに入らなくてはならず、しかも DBMS に関してはテーブル数に制約があったり、PHP に関しては画像のサムネイルを生成するときに使われる GD がロードされていなかったりする可能性もあります。また共用スペースだと DBMS に限らずウェブサーバのパフォーマンスがユーザーどうしで奪い合いになるので、期待通りの結果になるとは限りません。加えて、DBMS のリポジトリにヴァージョニングが設定されていないと、障害が発生したときにバイナリ形式のデータはテキスト形式のデータに比べて危険度が高いと言えます。
果たして CMS が「Dreamweaver の ASP 版」といった感じになるのかどうかは、テンプレート編集と CSS 編集がどこまで WYSIWYG 化されるかに依存すると思います。現行ユーザーの趣向から判断すると、やはりテーマやスキンの充実とかカスタマイズしやすさは更に要求の水準が上がってくる筈で、それに対応するだけの見返りが(オープンソースであれ商用であれ)あるかどうかが、これからの推移をみてゆく上でのポイントになるでしょう。個人的には、ブログを利用できるから別の ISP に移ろうとか、ブログを自分で立ち上げてカスタマイズも自由にしたいからレンタルサーバを借りようというユーザーは、そろそろ頭打ちになってくると思われます。実際、CMS と比較できるブログの推移を見ていても、ブログをはじめる人とブログに飽きた人(あるいは更新するネタが切れた人)の割合が拮抗してきたような印象を受けます。これは海外のサイトを見ていてもそういう感じがするので、第二のホームページブームとも言うべきブログブームもそろそろ曲がり角と言ってよいように見受けます。これが CMS ブームに移って行くかと言うと、ぜんぜんそんなことはない。
