Ploneとは
Credits: retsu 03/12/28
Ploneの歴史
2001年XX月、ZopeにハマっていたAlexander LimiとAlan RunyanはZopeのイベント(どこの何?)で偶然に出会いました。Zope社(当時はDigital Creation)からCMFがリリースされてそれに感動していた二人はすぐに意気投合し、CMFをベースに何か素晴らしいものを作ろうということでプロジェクトはスタートしました。現在までのPloneのリリース時期をこちらにまとめてあります。Ploneリリースとスプリントの歴史
Ploneの名前の由来
2001年XX月頃、AlexanderはXXXXXとXXXXXしていた。その時、XXXXXは「これってPloneだよね」。といった。Ploneは1994年に英国バーミンガムで結成された3人組電子系音楽グループの名前。サウンドはクラブで流れるようなElectronicaという分野のもの(らしい)。彼らは仮想的でマンガチックな響きをもつPlone(プローン)という単語を作り自分たちを呼びました。Ploneの由来は英国の音楽グループであり、さらにその由来は現実感のないマンガチックな造語です。
Ploneの基本思想
当初のPloneの基本コンセプトはZope/CMFの上にカッコイイデザインとユーザーインターフェースをかぶせて簡単に使えるものにすることでした。実際のところPloneのほとんどの機能はCMF/Zope/Pythonと多くのGNUソフトウェアからの資産を活用しています。Ploneはそれらの要素技術と優れたユーザーインターフェースををうまくまとめたのがPloneです。
Ploneの特徴
PloneはWebアプリケーションプラットフォームですが、テキストエディターでHTML文をゴリゴリ書くのに比べてどこが違うのでしょうか。Ploneの特徴は次のようなものです。
● すぐに使える完成品
インストールするとすぐに「使える」ことがPloneの特徴です。実際に使ってみる事で「出来合いの機能」を理解し、自分が思い描くものと比較し、余計な部分や足りない部分をはっきりと認識する事ができます。ゼロから作ったり、キットの状態から組み立てるよりも、完成したものをいろいろと改造するほうが簡単だということを実感することでしょう。その出来合いの完成度がとても高いのでそのまま使う人もいます。このサイトもそうです。
● カッコ良くて使い易い
ユーザーインターフェースへのこだわりはAlexanderの哲学です。画面デザインも淡いブルーで控えめで長時間毎日見ても飽きのこない洗練されたものです。また単なるグラフィック上の表現だけでなく、画面や画面構成要素の操作方法やビヘイビアといったものまで、人間と機械の間でやりとりされる明示的、暗示的なコミュニケーション全般についても良く考えられています。使ってみれば違いがわかります。かゆい所に手が届いている感じです。アクセシビリティに関していち早くW3C WAI-Aや米国セクション508に対応したのは当然のことと言えます。W3C WAI-A の説明は英語で http://www.w3.org/TR/WAI-WEBCONTENT/ にあります。米国セクション508については http://www.access-board.gov/sec508/language/japanese.html に日本語の解説があります。本サイトは英語で http://www.section508.gov/ です。
● 生産性が高い
Ploneは小規模な開発者が顧客のためにWebサイトを開発する生産性を高めるのに役立っています。そのような使い方をするために世界中から開発者が参加しスプリントという集中開発イベントを援助し、Ploneの発展に貢献しています。何もないところからキットを組み合わせて作るより、基準となるサイトに足したり引いたり変えたりして望みのサイトを作り上げて行くというアプローチはオブジェクト指向環境であり開発ターンアラウンド時間の短いZopeの特性と組み合わさり極めて少人数で短時間に高度な機能のWebサイトの構築を可能にしています。
● カスタマイズの幅が広い
Ploneは出来合いのままでも使えますが、利用者が技量に応じてカスタマイズすることで「まったくPloneらしくない」サイトを作る事ができます。というか、Ploneはまさにそのために開発されています。開発に参加している人たちはPloneをベースにして顧客の要望に応じて顧客の個性に合ったサイトを構築しているのですから。 http://plone.org/about/sites には「Ploneらしからぬ」サイトの一覧があります。各リンクへ飛んでみればそこには「Ploneの跡形もない」クールなサイトを発見することでしょう。そして、Ploneをベースにしたサイト開発の可能性に驚くことだと思います。
● 分業が可能
Plone/Zopeでは文章、写真、イラスト、音ファイル、動画ファイルといった「コンテンツ」と画面レイアウト、フォント種類、フォントサイズ、背景デザイン、操作ボタンの形や位置といった「スキン」を分離して管理しています。このため、コンテンツは「記者」や「編集者」が作成管理し、スキンのうちデザイン的な部分は「デザイナー」が担当し、動的なユーザーインターフェースは「システム開発者」が決めるというような分業ができます。画面デザイン部分については大抵のWeb画面制作ツールを使って作業をすることができます。
● 大きな組織での共同作業に最適
大きな組織で地理的に離れた場所にいる人たちが共同作業をするような場合を想定してPloneは作られています。そういった場合に便利な機能としては(1)Zopeのバージョン機能を使って誰がいつ何を変更したかというような監査痕跡を得る事ができます。(2)また、通常大きな組織では自分の組織以外の参加者もいる場合がほとんどですからパソコンの機種もブラウザの種類も統一することは不可能です。Windowsだけでなく、Mac OS XやLinux、BSD等のプラットフォームでIEだけでなくSafariやMozilla, Operaといった多種のブラウザで同じように利用できるようにマルチプラットフォームに対応できるよう標準に強く準拠しています。(3)ユーザーの通信回線がブロードバンドとは限りません。グラフィックスの使用を極力抑えデータ転送量を抑えるようにデザインされています。
● ワークフローを支援する機能が充実
状態、遷移、ロール、さらにグループという概念が加わり、ワークフローを実現するのが容易です。出来合いのままでも状態はprivate, visible, pending, publishedと4つあり、その状態間を移動する遷移もsubmit, publish, retract, reject, make privateと5つあり、ロールはanonymous, authenticated, reviewer, managerの4つがあります。初期状態ではグループの設定はありません。初期状態のままでも非会員は見るだけ、ログインした会員は記事を書いて提出し、編集者がチェックして一般公開するほといった簡単なワークフローが実現できますが、これらの構成をカスタマイズし新たな状態や遷移を定義し、「許可」をベースにした各種権限の設定を組み合わせてより自分のワークフローに合ったシステムを作り出す事ができます。
● やり直しがきく
これはZopeの特徴ですがサイトの構築作業や、コンテンツの作成や状態の変更といったサイト運用のほとんどの作業について「やり直し(undo)」ができます。すべてのコンテンツの状態変更が記録され管理者はいつ誰がどんな操作を行ったのかを知る事ができます。そして、必要であればそれを取り消すことができます。これは保険のようなもので開発者に安心感を与えますし、ある程度のやり直しができることで多少リスクのある権限を会員に与えることもできるでしょう。
● 標準に強く準拠
Ploneは強く標準に準拠しています。Ploneの開発に参加しているのはほとんどが小規模のWebサイト開発者です。顧客のためにPloneを使ってWebサイトを開発している人たちです。ですから現場の悩みをよく知っています。ですから「特定のブラウザ」や「特定のプラットフォーム」でなければ動かないような実装はしません。ブラウザやプラットフォームの種類に関わらず利用できるWebサイトを実現することがPloneチームの哲学です。
● オープンソース、それに無料。
PloneはCMF/Zope/Pythonの上に成り立っているGNU GPLのオープンソース製品です。Ploneは無料で手に入れる事ができ、改変でき、配布でき、利用できます。CMF/ZopeはZPLというGPLよりも制限の緩いライセンスで配布されておりFSFからGPL準拠として認められています。またPythonは独自のライセンスPython Licenseを適用しており、これもGPLより制限の緩いGPL準拠のライセンスになっています。制限が緩いというのはCopyleftの部分がなく、バイナリーだけで配ってもよいことになっています。(PloneはGPLですからCopyleftです。)Ploneは完全なオープンソースであり、都合に合わせて自由に改変して使う事できます。また、万一指導者たちに何かあった時でもコミュニティやユーザーが何の制約もなく引き継ぐ事ができます。
● 健全なコミュニティ
これこそがPloneの魅力の最大の部分かもしれません。PloneはAlexander LimiとAlan Runyanの二人の出会いによって始まりました。Ploneもそうですが、CMFやZopeもチームワークでの作業を強く意識して設計されています。そんな製品の周りにできるコミュニティはチームワークの価値をよく知った人たちです。個人の価値を大切にしながら、他と協力し合うことでより大きな価値を作り出せる。そう信じる人たちです。「スプリント」という集中開発イベントや年に一度の「コンファレンス」を通じて世界中から集まった「人たち」は昼も夜も一緒にプログラミングし、話し合い、食事をし、酒を酌み交わし、また話をし、時には内緒話をし、お互いを理解しまた散っていきます。こういったイベントを通してコミュニティの価値観が確認でき、親しみが増すので公開のIRCチャットやメール、CVSへの登録といった開発活動が活発に行わるのだと思います。
● コラボレーション革命の始まり
これは多分に主観的な見方ですが、さまざまな情報の形態をさまざまな形で取り扱うことができるツールがこれほど簡単に使えて無料で手に入ることは、インターネットの普及と合わせて知的コラボレーションによる社会変革の始まりだと思います。
よくある質問
Ploneに関してもう少し特徴を補足すると。
● とっつきにくい。分かりにくい。
書籍などからPloneを勉強しようとすると残念ながら事実です。Plone/CMF/Zopeはオブジェクト指向のシステムです。今までオブジェクト指向環境を使った事ない人にとっては「宇宙人」の世界かも知れません。二次元の紙の上に静的に表現された文字や図表ではなかなか理解するのが難しいのが実際です。画面を見ながら人の説明を聞き、その場で質問をし、その場で回答を得、次のステップに移るような「インタラクティブ」な環境でないと理解するのが難しいです。実際に動きを見れば数秒で「ははぁん」と理解できるようなことが、文書ではなかなか伝わらないのです。もちろん理解した後の生産性は比較にならないぐらい高いのですが。
● パフォーマンスが悪い?
これはCPUクロックを大量に消費し、レスポンスが遅いという意味で一般に言われることがあります。しかしこれは正当な評価でないことがほとんどです。当たり前ですが、PloneをApacheやPHPと比較すべきではありません。機能がまったく異なるのですから。ApacheはZServerと比べるべきでしょうし、PHPは比べるとしたらZopeでしょう。ただこの場合もテストに使うアプリケーション機能の複雑さによって結果は異なります。Zopeで5分で作れるアプリケーションがPHPで作ると2ヶ月かかるとしたらそのようなテストを実際にすると思いますか?大抵はどのプラットフォームでも簡単に実装できるテストアプリケーションでテストを行うため、Zopeは不当な評価を受けてしまいます。ユーザーの種類ごとに表示する画面のデザインや内容を変えて表示したり、コンテンツの状態によって表示を制御したりするような場合のパフォーマンス評価があればいいのですが。PloneではありませんがZope Corp.の顧客で米国のメディア会社ではZope/CMFを使い最大2200リクエスト/秒、平均でも500〜600リクエスト/秒のサイトを40台以上のサーバーを使って運用しています。しかも驚くべき事に911事件以来この発表のあった10月までの2年以上の間一度もダウンしていません。また、plone.orgの統計が http://stats.plone.org/ にありますが、これを見るとplone.orgへ2003年10月には5万人の訪問者が訪れ、500万ヒットを記録しています。 http://plone.org/about/server/diagram にあるようにZEOを使ったロードバランシングを行っています。現在はこのZEOもZPLで無料で入手できます。
