前回に引き続き、プラットフォーム型CMSの代表格と言える製品「Zope」を取り上げます。今回は、Zopeの機能について、もう少し具体的に紹介します。前回、ZopeはWebサービスに必要なものを最初から完備している、と述べましたが、単純にCMSとして見た場合、その主な特徴は3点挙げられます。まず、Webコンテンツの“容れ物”としての柔軟性、きめ細かく、かつ簡単に設定できるユーザー/アクセス管理、そして、高度なアプリケーション開発も可能なスクリプト言語とデータベース。これらの機能をすべてWebブラウザ上からコントロールできます。手軽に使える(かつ管理もできる)“容れ物”から、アプリケーションサーバとしての利用まで、敷居は低いのに、とても奥が深い製品だと言えます。

ファイルを入れれば始められるCMS化



[画像のクリックで拡大表示]

 前回、サイトを「とりあえずCMS化しなければならない」ようなケースを例に、Webコンテンツの“容れ物”としてのZopeが非常に柔軟なキャパシティを持っていることに触れました。

 これまで紹介してきた製品を始め、多くのCMSがそうであるように、Zopeもその機能のほとんどをWebブラウザ上からコントロールすることができます。 ほとんどのCMSでは、コンテンツ(のパーツなど)を投入する際も、テキストフィールドやファイルアップロード用フォームなど、ある意味で“限定的な”Webインターフェースを経由します。これは、間違いをなくしたり、操作自体を簡単にするという意味では有効ですが、当然、自由度は低くなり、場合によっては利便性を損なう仕様になり得ます。

 Zopeが優れているのは、こうしたWebインターフェースだけでなく、FTPやWebDAVといった、一般的なファイルサーバとしてのアクセス機能が用意されていることです。Zopeでは、極端な言い方をすれば、これらのファイルサーバ機能を使って、そこにコンテンツを放り込むだけで「とりあえずのCMS化」を実現することができます。

 Zopeの管理下となったコンテンツを構成するファイルは、一見するとただ単にそこに“入っているだけ”のようですが、実際にはZopeによってデータベース管理されます。これにより、後述するアクセスや挙動、セキュリティに関しての設定や、各種の属性による検索、履歴管理による「Undo」機能(これはZopeならではの特筆すべき便利な機能です)などが使えるようになります。

柔軟かつ高度なアクセス制御

 コンテンツをZopeに収容した時点から得られるもう1つの大きなメリットは、ユーザー管理機能と、アクセス権限やセキュリティに関する設定(「role」と呼ばれます)を行う機能を組み合わせて、非常にきめ細かいアクセス制御ができることです。 Zopeの場合、内蔵のWebサーバを使って、そのままダイナミック型CMS兼アプリケーションサーバとして運用するのが最大限の利用形態です。このため、Zopeのユーザー管理とroleの設定機能は、サイトにアクセスする一般ユーザーから、サイトの管理者まで、一元的にWebインターフェースから管理することができるようになっています。

 例えば、ユーザー管理では、個別にアクセス元のドメイン(やIPアドレス)による制限も可能です。roleは、ディレクトリやZope独自のパーツ、1つ1つのファイルに至るまで細かく設定できます。

 さらに便利なのは、これらの設定がWebサービスだけでなく、ファイルサーバ機能にも一貫して適用できることでしょう。通常のシステムでこうしたアクセス制御を実現しようとすると、複数のサーバに対してそれぞれ異なるやり方で複雑な設定を行う必要があります。

 Zopeでは、こうした機能を活用することにより、登場人物の多い複雑な制作/運用ワークフロー管理から、会員登録制Webサイトのユーザー管理まで、1つのシステムで幅広くスケーラブルに対応することができるわけです。

プログラム開発も可能なスクリプト言語

 例えば、FTPサーバとWebサーバだけで運用しているような、最も“素の状態”から考えると、単にコンテンツを構成するファイルをZopeに収容するだけで、上述のようにかなりのメリットが得られるのも確かです。しかし、ZopeをさらにCMSとして活かすのは、やはりオブジェクト指向のテンプレート言語やスクリプト言語を使った構造的かつダイナミックなサイト運用です。

 Zopeが備えるテンプレート言語は、ごく簡単な文法を覚えれば、通常のHTMLと組み合わせて、さまざまな属性を持たせたり、ユーザーのアクセスに応じた挙動を定義することができます。

 また、ここがZopeの最も奥深いところなのですが、Zope自体が書かれているスクリプト言語「Python」を使うことで、およそWebサービスに関することは大抵実現できます。

 このほか、これまで紹介した製品にもありましたが、Zopeにもプラグインのように利用できる「Product」と呼ばれる拡張用の追加プログラム仕様があり、すでにさまざまな用途のProductが配布されています。Zope単体には標準装備されていない機能も、このProductの中から探して、ごく簡単に追加することが可能です。

 逆に言えば、ZopeはOSのようなプラットフォーム的な存在なので、これまで紹介してきたようなアプリケーション型CMSが持つ、“かゆいところに手が届く”類いの分かりやすい機能がないと感じられるかもしれません。そういったニーズを、テンプレート言語やスクリプト言語を使ってある程度自力で用意したり、Productを探して機能追加する、という手間がかかるのは、Zopeを使う上ではいたしかたない面と言えます。

導入はまず旧バージョン系から検討

 残念なのは、Zopeがこれほど優れた点を多く持ち、かつ海外ではかなりの実績を上げている一方で、日本国内では今一つユーザー層を大きく広げるに至っていないという状況です。

 とは言え、現在では、PCを含むさまざまなプラットフォーム上で稼働できるようになり、書籍を始めとする日本語の情報もそれなりに手に入るようになっています。ネット上では、blogなど、個人ベースでZopeを使ってサイト運用をしているユーザーの事例やノウハウも公開されていますので、手近なマシンでとりあえずインストールして試してみるレベルなら、敷居は十分に低いと言えます。

 Zopeの開発を行っている、米Zope 社とZopeコミュニティ(Zope.org)からは、現在、既存のZope 2.x系列と、新世代のZope 3系列を軸に、いくつかのプロジェクトの製品がリリースされており、Webサイトのためのフレームワーク(基本的な仕組み)やエンタープライズ向けの製品、開発者志向の製品などいろいろと性格が分かれてきています。

 既存の運用ノウハウや各種のProductを含め、今回紹介したZopeの基本的かつ最も特徴的な機能を利用するのに十分な下地があることを踏まえると、手始めにZopeを体験してみたいということであれば、まず、Zope 2.x系列を試してみるのがおすすめです。


星野 純 (ほしの じゅん) ■ 主にデザインやトレンドに関する市場調査などを行う日本カラーデザイン研究所で、ソフトウェア開発や企業向け情報資料の編集に従事。ちょうどそのころ、一般に開放されたばかりのインターネットと出会い、衝撃を受ける。「今この『デジタル革命』に立ち会わないでどうする!」と思い立ち、日経BP社で記者としてインターネットとデジタルパブリッシングを追いかける生活に転身。その後、Webプロダクション「WebBakers(ウェブベイカーズ)」を設立してWeb制作の現場に。以来、「CMSを使って、最小限のリソースで最大限のパフォーマンスを」を標榜しつつ活動中。