もっと知りたいPython

第2回高機能WebフレームワークPlone

Ploneや、PloneのベースになっているZopeは、Python製のオープンソースプロダクトとしてとても有名です。とくにPloneは「オープンソースのCMS」と紹介されることが多いのですが、私はこのキャッチフレーズはPloneの特徴や強みをよく表現していないのではないかと常々思っています。

もちろん、PloneはCMSとしてもよく作られています。私自身、業務としてPloneを使っていて、Ploneを使った大規模なCMSの構築経験もあります。しかし、CMSとしての利用はPloneの活用方法のうちでもかなり初歩的な分野に属します。PloneをCMSと言い切ってしまう人は、⁠Ploneの本質」をよく理解していないのではないかと私は思っています。

導入、運用のしやすさがPloneの特徴

Ploneは、よくXOOPS Cubeと比較されます。海外だとTYPO3Midgard CMSといったオープンソースプロダクトと比較されるようです。どれもWebブラウザだけでコンテンツの管理ができるオープンソースのCMSですが、Ploneにはこのような対抗馬が持っていない大きな利点があります。Ploneは導入、運用がとても楽なのです。

Ploneは、必要な機能をすべて備えたオールインワンのパッケージとして作られています。データベースやWebサーバはPloneに内蔵されていますので、ApacheやMySQLなどを別途インストールする必要がありません。このため、インストールと運用がとても楽なのです。

Ploneのサイトにあるダウンロードセクションに行くと、Windows、Linux、Mac OS Xといったさまざまなプラットフォーム向けのインストーラが手に入ります。Ploneを一つインストールするだけで、運用に必要なものすべてが手に入り、すぐにPloneを使ってみることができます。Ploneは多国語化されているので、メッセージなどもすべて日本語で表示されます。

Webアプリケーションとしての完成度の高さもPloneの大きな魅力のひとつです。データベース(ZODB)やWebサーバといった足回りだけでなく、アウト・オブ・ザ・ボックスとしてすぐに利用できるような豊富な機能を、Ploneは備えています。マルチユーザ機能や権限管理、カスタマイザブルなワークフロー機能など、必要な機能がほとんどあらかじめ備わっています。Ploneは拡張性が高いので、必要に応じてプロダクトと呼ばれる部品を追加し、機能を拡張できます。

情報共有ポータルとしてPloneを

私は「Ploneを今すぐ活用したい」という人には、たいてい情報共有ポータルとして使うように勧めています。Linuxなどのサーバを特別にたてる必要はなく、使っていないWindowsがインストールされたPCに、Ploneをインストールしておきます。アカウントを作るとユーザ専用のスペースが割り当てられますので、文書やファイルをアップロードすれば情報共有ができます。WebDAVを使って画像をアップロードし、フォトアルバムとして使ってもいいですし、Ploneで動くブログをインストールして日報をつけてもよいでしょう。

SEGAのVE研という部署では、Ploneにブログ機能などを追加して情報共有のためのポータルサイトを運用しています[*1]。弊社が構築のサポートをさせていただき、ソーシャルブックマーク機能を追加するなど、ポータルとしてのPloneをかなり有効に活用していただいています。この事例からも、情報共有ポータル構築のためのツールとして、Ploneが向いていることがわかると思います。

Ajax機能をサポートしたPlone 3.0

8月21日にPloneの最新バージョンであるPlone 3.0がリリースされました。バージョニングのサポート、新しいワークフローの搭載、パフォーマンスの向上など、20以上の大きな改善を含んだ意欲的な新バージョンです。

新機能の中でも1番目を引くのが、Ajax風のインライン編集機能でしょう。タイトルや本文など文書の一部だけを、Ajax風に書き換えられるのです。PloneとCOREBlog2を使い、ブログのエントリを追加して修正する操作の過程を動画としてキャプチャしてみましたので、ご覧ください。

このような高度なWebアプリケーションが、インストーラをダウンロードして起動し、起動するだけですぐ使えるようになるのです。みなさんもぜひ、手元のパソコンにPloneをインストールしてみてください。

Web開発フレームワークとしてのPlone

Ploneをエンドユーザから見た場合、高機能ボータル構築ツールとしてとらえるのが正しい視点です。完成度の高いPloneの機能は、重厚なフレームワークの上に構築されています。このフレームワークに目を移すと、Ploneの別の側面が見えてきます。

Ploneには、ArchetypesというMVCフレームワークが内蔵されています。Archetypesをよく理解すると、Ploneの機能を効率よくに拡張できます。

冬にPythonユーザ会で行った開発合宿で、私はPloneを使ってマルチユーザの課題トラッカーを作りました。スノーボードの合間だったので、時間があまり取れなかったのですが、4時間ほどで一通りの機能が完成しました。それくらい、Ploneは開発効率のよいフレームワークを内蔵しているのです。Ploneの開発スタイルについては、このドキュメントなどをご覧ください。

すぐに使える高機能なWebアプリケーションとしての顔を持ちながら、背後では重厚で開発効率の高いフレームワークを備えている。これこそが、Ploneの本当の姿と言えると思います。

次回は、Pythonの軽量Webフレームワークのうちで人気のあるTurboGeras、Django、Pylongの3つについて簡単に紹介してみたいと思います。

おすすめ記事

記事・ニュース一覧