目次


ウィキ・ソフトウェアを理解する

MediaWiki 自らが最高のオープンソース・ソリューションであることを証明する

Comments

最も広く知られたウィキが Wikipedia であることは疑う余地がありません。この記事の執筆時点で Wikipedia の登録ユーザーは 900 万人を超え、またコンテンツは1600 万ページ近くあるため、この巨大なコラボレーション・サイトを管理する人達は入手可能なソフトウェア・パッケージのうち最高のものを利用する必要がありました。しかし Wikimedia Foundation の旗艦プロジェクトが Perl ベースの UseModWiki ソフトウェアで対応できないほど急速に成長すると、Wikimedia Foundation はスケーラブルな MySQL データベース・バックエンドを含むように作り直された PHP ベースのソフトウェア・パッケージに切り換えたのです。

Wikipedia は現在最も有名なウィキですが、実は比較的新しいウィキです。最初のウィキは 1994年に Ward Cunningham によって、プログラマーが Web を介してアイデアを交換するための手法として作られました。この手法には (「速い」という意味のハワイ語から) 素早い Web という意味で WikiWikiWeb という名前が付けられましたが、それと同時にコラボレーションのための新しい手段が登場したのです。

2001年まで、ウィキはプログラミング・コミュニティー以外ではあまり知られていませんでした。しかし 2001年に Wikipedia が登場すると、あらゆる種類と規模の組織にとって、ウィキによるコラボレーションのメリットが明らかになりました。ウィキが普及した理由はページの作成や変更が容易なためです。ウィキテキストという簡単なマークアップ言語を使用することで、登録ユーザーは Web ブラウザーさえあれば積極的にコミュニティーに参加することができます。

ウィキは非常に多用途であるため、ウィキ・ソフトウェアは組織が Web 上で強力な存在感を示すための手段として、さまざまな方法で使われています。ウィキ・ソフトウェア・パッケージを利用してサイト全体を構築することはよく行われますが、それ以外にも組織が Web 上での効果を高めるためにウィキを実装する場合があります。ウィキを実装することによって、サイトの訪問者に以下を提供するのです。

  • コラボレーションのための場
  • コンテンツ・ライブラリー
  • ナレッジ管理システム

インターネット上には誰もがコンテンツを閲覧、編集、作成できる有名なウィキがいくつか存在していますが、そのすべてが誰でもアクセスできるサーバー上に存在しているわけではありません。機密情報が組織外に漏れるのを防ぐために、管理者が内部用にウィキ・ソフトウェアをインストールすることもできます。

コラボレーション

これまでウィキ・ソフトウェアの実装は数多く行われてきましたが、組織がウィキを実装する第 1 の理由は何と言っても、ウィキ・ソフトウェアは訪問者同士が手早く簡単にコラボレーションできるように作られていることです。ウィキは技術者ではない人達でも容易に使えて、リアルタイムの編集が可能であり、情報を保管しておくための一元的なリポジトリーにもなりうるため、コラボレーションのためのプラットフォームとして理想的です。

技術者ではない人達がウィキを使いやすいと感じる理由は、新しいソフトウェアを学ぶ必要がないからです。ユーザーがウィキの記事を参照したり、新しい記事を作成したり、あるいは既存の記事を編集したりする必要がある場合には、(おそらくコンピューター・ユーザーの誰もが使い慣れているソフトウェアである) ブラウザーを使って作業を行います。

コラボレーションに使用される他のプロジェクト管理ツールやコンテンツ管理ツールの場合とは異なり、ウィキのユーザーは文書を作成あるいは編集する際に、そのウィキのマークアップ言語を参照すればよいだけです。また、ウィキを管理する上で IT が関係することはありません。ウィキをインストールして構成すると、ウィキのコンテンツが適切で正確、そして満足できるものであるかどうか、誰もが監視することができます。

またウィキではリアルタイムでコンテンツを編集することができます。目の前にある文書が最新版かどうかを尋ねる必要はありません。ウィキ上に文書が存在していれば、その文書は最新です。またウィキでは、コンテンツを編集する人の追跡やコンテンツに関する議論も可能であり、リアルタイムでコンテンツにアクセスできるだけではなく、リアルタイムでコンテンツを管理することもできます。ユーザーは最近どんなコンテンツが編集されたのかを容易に見ることができるため、ユーザーにとって重要な変更を認識することができます。

ウィキではすべてのコンテンツを一元的な場所、つまりサーバーに保管できるため、コラボレーションが容易になります。ウィキによるソリューションを用意できると、ある文書のコピーのみを持って休暇に出かけるという日々は遠い昔のものとなります。ウィキ上でコンテンツが作成される限り、そのコンテンツはすべてのユーザーがいつでもアクセスすることができるところに保管されます。

コンテンツ・ライブラリー

ウィキは元々プログラマー向けに開発されたため、FLOSS (Free/Libre/Open Source Software) の活動の中で非常に多くの人達が、彼らの最も重要なコンテンツをユーザーに提供する方法として、ウィキを採用していることは驚くにあたりません。

FLOSS プロジェクトのどのサイトを訪問しても、ほとんど必ず、そのプロジェクトのウィキにはユーザー・マニュアルや FAQ、インストール・ガイド、その他彼らのソフトウェアに関連する大量のコンテンツが用意されています。多くの企業はウィキを使うことによって、ポリシーやユーザー・マニュアル、人事関係の文書、フォーム、その他のコンテンツを従業員に提供しています。この場合も、こうしたコンテンツは一元的な場所に保管され、従業員は必要に応じてそこにアクセスすることができます。企業はウィキによるソリューションによって、従業員に対して特定の情報を提供することが要求される法律やポリシーに準拠することができます。また企業はそうした情報を読みやすいオンライン・バージョンで従業員に提供することができ、その内容のハード・コピーを各従業員用に印刷して提供する必要がなくなります。

いずれの場合も、ウィキ・ソフトウェアを構成することでコンテンツの編集を制限することができます。そうした制限によって、上で触れたような文書が改変されることを防ぐことができ、また不正確な情報が読み手に渡らないようにすることができます。

ウィキとコンテンツ管理システム

コラボレーションに一般的に使われるツールである CMS (Content-Management System) を利用すると、ユーザーはコンテンツを中央のサーバーまたは Web サイトにアップロードすることによって、コンテンツのアップロード、表示、グループあるいは組織内の他の人への周知を行うことができます。ウィキと CMS は似た機能を提供しますが、両者の間には明確な違いがあります。

CMS では、適切なクレデンシャルを持つユーザーが既存の文書を編集することができ、リアルタイムで変更ができるという意味で、確かにコラボレーションが可能です。しかしウィキとは異なり、そうしたユーザーのグループが変更を追跡することはウィキの場合ほど容易ではなく、そのため誰にも知られずに変更を行うことができてしまいます。

一般的に、ウィキ環境よりも CMS の方がコンテンツの作成や編集を行える人が限定されています。ウィキはその性格上、すべてのユーザーが素早く容易にコンテンツの作成と編集を行えるように設計されています。対照的に CMS は通常、数人でコンテンツの作成と編集を行い、変更権限のない多数のユーザーがそのコンテンツを使用するように設計されています。

コンテンツ同士をリンクできることも、ウィキが明らかに優れている点です。ウィキの場合、コンテンツ間のリンクや他のウィキとのリンクは比較的容易です。ウィキ・エンジンの構文を使うとコンテンツ同士が網の目のように結び付けられるため、訪問者は似たようなコンテンツを容易にナビゲートすることができます。CMS の場合、ユーザーがコンテンツ間のリンクを作成することはそれほど簡単ではありません。HTML の知識がある人であれば CMS でのアンカーの作成は容易だとわかるはずですが、平均的なユーザーは、MediaWiki の構文のように、あるコンテンツのタイトルを 2 つの大括弧の間に挿入する方がはるかに簡単だと思うはずです ([MediaWiki article] など)。

CMS もウィキも人々に情報を提供するための強力な手段ですが、どちらを使うかの判断は、編集のためにコンテンツにアクセスできる人は誰か、そしてコンテンツを管理するのは誰かに依存します。上で説明したように、ウィキの場合は技術者ではない人でも非常に容易にコンテンツの管理、アクセスができますが、CMS を管理するためにはウィキの場合よりもはるかに深い技術的知識が必要です。

MediaWiki

組織にとってウィキによるソリューションが適切であると判断したら、次のステップは、使用するウィキを選択することです。この記事の執筆時点で、100 を超えるウィキ・エンジンが WikiMatrix での評価の対象として挙げられていました。これほど多くのソフトウェア・パッケージがあると、どれが最適なのかを判断することは困難かもしれません。しかし MediaWiki はオープンソースのウィキ・エンジンとして最高であることを自ら実証しています。それを裏付ける栄誉の 1 つが Internet Journal の投票で最高のウィキ・ツールに選ばれたことですが、もっと素晴らしいことは、MediaWiki は Intel® や Novell といった企業でウィキ・エンジンとして選ばれているだけではなく、世界最大のウィキである Wikipedia を駆動するソフトウェアでもあるという事実です。

機能

MediaWiki の持つ重要な機能のいくつかは他のウィキ・エンジンと共通しています。そのため、表 1 のリストは MediaWiki に特有の機能を挙げたものではありません。また、MediaWiki のすべての機能がこのリストに網羅されているわけではなく、あくまでもウィキ・ソリューションを実装する際に必要となる最も重要な機能のいくつかを示しているにすぎません。

表 1. MediaWiki の機能の一部
機能説明
データベース駆動MediaWiki はテキスト・ファイルにデータを保管するのではなく、MySQL または PostgreSQL を使用します。これによって、記事のすべてのリビジョンが保管されます。
複数言語をサポートMediaWiki は現在 140 の言語をサポートしています。
スケーラビリティーMediaWiki の最大の実装である Wikipedia には 100 万件を超える記事があります。
セクション編集ユーザーは記事のセクションのみを編集することができ、記事全体をロードする必要がありません。
RSSユーザーは特定のコンテンツへの変更を RSS フィードを使って追跡することができます。
特別なレポート・ページユーザーは、サイトの統計、ユーザーのリスト、新たに作成された記事、ある標題を持つすべてのページ、最も閲覧回数の多い記事、人気のある記事、その他さまざまなレポートを見ることができ、それらを利用してコンテンツをナビゲートすることができます。
ディスカッション・リストユーザーはトーク・ページを利用して、ある記事のコンテンツに関連するディスカッションを追跡したりディスカッションに参加したりすることができます。
左右に並べての比較ユーザーは編集対象を左右に並べ、変更点を強調表示した状態で比較することができます。

MediaWiki のアーキテクチャー

MediaWiki は PHP で作成されており、また (Wikipedia が MySQL データベースを使用していることから) 大多数のテストが MySQL で行われていますが、PostgreSQL、Ingres、SQLite もサポートしています。プログラマー向けの MediaWiki ガイドによると、コード・ベースは「巨大で醜い」とのことです。大部分のデータはデータベースに保管されますが、一部のファイル (ユーザーがアップロードするメディア・ファイルなど) はローカルのファイルシステムに保管されます。MediaWiki のアーキテクチャーは以下のとおりです。

  • ユーザー層 — Web ブラウザー
  • ネットワーク層 — Squid | Web サーバー
  • ロジック層 — MediaWiki の PHP スクリプト | PHP
  • データ層 — ファイルシステム | データベース | キャッシング・システム

MediaWiki をインストールするためには以下のものが必要です。

  • PHP
  • データベース・サーバー
  • Web サーバー

当然ですが、MediaWiki を実行するためには PHP が必要であり、またデータベースにはコンテンツとユーザーの詳細を保管します。推奨の Web サーバーは Apache ですが、Apache の代わりに Microsoft® の IIS (Internet Information Services) を使うこともできます。Sun の Java™ System Web Server も MediaWiki に使用できますが、特別なインストール手順が必要です。

MediaWiki サイトを実行するためにサーバーに必要な最低限のハードウェアは 256 MB の RAM と 40 MB のストレージです。これらの値はあくまでも最低限の要件にすぎません。どのようなサイトであれ、これらの値では大量のトラフィックを処理するためには不十分です。

MediaWiki を他と比較する

MediaWiki と競合する強力なオープンソースのウィキ・エンジンが他にないわけではありません。TikiWiki、DocuWiki、PmWiki、その他はどれも MediaWiki と遜色ありません。多くのウィキ・エンジンは、ウィキに必要な類似の機能を共通に持っています。しかしトップ・クラスのウィキの間にはいくつかの明らかな違いがあり、それらの点で MediaWiki は圧倒的に優れています。

データ・ストレージ

すべてのウィキ・エンジンがデータベースを使うわけではありません。DokuWiki と PmWiki はどちらもテキスト・ファイルに情報を保管します。使用するディスク・スペースはテキスト・ファイルの方が少ないのですが、データベースの方がデータのセキュリティーに優れており、データへのアクセスが容易であり、またユーザーが増えた場合のスケーラビリティーも優れています。PmWiki は MySQL をサポートしていますが、プラグインを使ってサポートするにすぎません。

大規模な開発コミュニティー

どの FLOSS プロジェクトも、その素晴らしさはコミュニティーによって決まります。コミュニティーが大きいから優れているとは限りませんが、情報元としてのリソースが多いことは有用です。MediaWiki がよく使われることから、活発な IRC サポート・チャネル (#MediaWiki) がフリーノードにあり、またユーザーがアイデアや疑問を交換するフォーラムがいくつもあります。MediaWiki に次ぐウィキ・エンジンの競合と比べても MediaWiki が 3 倍もの言語をサポートしている (DokuWiki が 46 言語をサポートしているのに対し、MediaWiki は140 言語をサポートしています) ことを考えると、世界中のコントリビューターがこのプロジェクトで作業を行っていることは明らかです。

FLOSS プロジェクトに対して商用サポートを希望する場合には、33 社を超える企業が MediaWiki に対する有料のサポートを提供しています。PmWiki の場合は 6 社、TikiWiki の場合は 9 社、DokuWiki の場合は 17 社であることと比べてみてください。

セマンティック MediaWiki

セマンティック Web の強力さをウィキ・エンジンに適用すると、コンテンツにセマンティック注釈を付けることができ、コンピューターでコンテンツを処理できるようになります。そうするとコンピューターがテキストを理解し、その中にある情報や複雑な関係を検索できるようになります。

ユーザーにとって MediaWiki を一層強力なものにするために、また「ウィキのコンテンツを検索、編成、タグ付け、閲覧、評価、共有」できるように、SMW (Semantic MediaWiki) という無料の拡張機能が開発されています。

実際に使用され、テスト済みである

他の人達が選んでいるからといって、それがベストであるとは限りません。しかしウィキ・エンジンとして MediaWiki を採用している企業や組織の一覧を見ると、やはり少し心が動きます。

もちろん、Wikipedia やその他の多くのサイトが Wikimedia Foundation によって運営されていますが、それだけではありません。Pfizer、Siemens AGSI、NVIDIA、End Point といった大企業が、社内用あるいは公開用のプロジェクトに MediaWiki を使用しています。また小規模な企業も、顧客や従業員に資料やカスタマー・サポートその他の情報を提供するために、このウィキ・エンジンを利用しています。さらには米国政府も MediaWiki を採用しています。米国国務省の正式なウィキであり、57,000 人の職員に情報を提供する Diplopedia には MediaWiki が採用されています。

これほど大規模で圧倒的なユーザー・ベースがあり、それが開発コミュニティーと協力している事実を見ると、ウィキ・ソリューションを実装しようとする組織は MediaWiki が彼らの期待に応えてくれるものと確信することができます。

MediaWiki の実際

先ほど触れたように、MediaWiki は多くの組織にとって単なるコラボレーション・ツール以上の機能を果たしてきました。実際 MediaWiki は多くの場で多用途の Web ツールとして実装されてきています。以下に挙げる組織では、通常のウィキの使い方以上に MediaWiki を活用しています。

OpenNMS Group

OpenNMS Group は多用途のソリューションとして MediaWiki を活用している好例です。このサイトを訪問すると最初から MediaWiki に出迎えられます。これはこのホームページの開発プラットフォームとして MediaWiki が使われているためです。OpenNMS Group は MediaWiki をさらに活用し、ユーザーに製品のドキュメントを提供している他、ディスカッション・リストと開発ページをとおしてユーザーがコラボレーションに参加することができ、またユーザー用に newbies というタイトルのナレッジ管理カテゴリーも用意しています。

ECGpedia

Web 上で講座を作成する場合には Moodle が主流かもしれませんが、ECGpedia ではオンラインの講座および教科書として MediaWiki を利用し、医療専門家に心電図検査の指導を行っています。これを見るといかに MediaWiki が多用途であるかがわかります。

高度なゲーム・システム

AGSI は同社の Harpoon 海戦シミュレーション・シリーズのためのサポートやドキュメント、コミュニティー・ポータルを提供するために、MediaWiki によるウィキを構築しています。AGSI はこのウィキを、Harpoon コミュニティーに情報とサポートを提供するための基本ソースにしようとしています。

まとめ

この記事は MediaWiki が万能だと言おうとしているのではありません。通常はウィキによってすべての要求が解決できるわけではありません。CMS の方が組織の要求に適切に応えられる場合もあります。たとえウィキを選択した場合であっても、MediaWiki が ACL をサポートしていないという点は一部の人達にとって無視できない問題かもしれません。しかし一部の人達にとっては MediaWiki の制約でしかないものが、他の人達にとっては MediaWiki の魅力的な特徴なのです。


ダウンロード可能なリソース


関連トピック

  • OpenNMS GroupECGpediaAGSI のサイトを訪れ、MediaWiki の実際を見てください。
  • さまざまなウィキ・エンジンを WikiMatrix で比較してみてください。
  • developerWorks podcasts ではソフトウェア開発者のための興味深いインタビューや議論を聞くことができます。
  • developerWorks を Twitter でフォローしてください。
  • developerWorks の Open source ゾーンをご覧ください。オープンソース技術を使った開発や、IBM 製品でオープンソース技術を使用するためのハウ・ツー情報やツール、プロジェクトの更新情報など、豊富な情報が用意されています。
  • IBM 製品の試用版をダウンロードするか、あるいはオンラインで IBM SOA Sandbox を試し、DB2®、Lotus®、Rational®、Tivoli®、WebSphere® などが提供するアプリケーション開発ツールやミドルウェア製品を試してみてください。

コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=391671
ArticleTitle=ウィキ・ソフトウェアを理解する
publish-date=04212009