内容


了解 wiki 软件

事实证明 MediaWiki 是最佳开源解决方案

Comments

毫无疑问,众所周知的 wiki 就是 Wikipedia。Wikipedia 站点此时拥有 9000,000 以上注册用户和接近 16,000,000 页的内容,负责管理如此大型协作站点的那些人需要确保他们拥有最可靠的软件包。但是,当 Wikimedia Foundation 的旗舰工程迅速超过其基于 Perl 的 UseModWiki 软件时,它转向采用一种重写的基于 PHP 的软件包,以便引入一种可伸缩的 MYSQL 数据库后端,从而诞生了 MediaWiki。

尽管 Wikipedia 是目前最有名的 wiki,但资历仍然比较浅。第一个 wiki 由 Ward Cunningham 于 1994 年创建,最初作为程序员在 Web 上交流观点的一种方式。取自于夏威夷语中表示快速 的名词,该名称由 quick-web 变成了 WikiWikiWeb,并随之产生一种新的协作方式。

直到 2001 年,wiki 在编程领域之外仍然知之甚少。不过,随着在 2001 年对 Wikipedia 的引进,wiki 的协作优势对于各种类型和大小的组织来说变得很明显。通过使用一种名为 wikitext 的简单标记语言,注册用户只需一个 Web 浏览器就能成为社区的活动参与者。

由于 wiki 的功能如此之多,wiki 软件被通过多种方式使用,以帮助组织建立强大的 Web 服务。除了在 wiki 软件包上建立整个站点之外(通常所做的),将实现 wiki 作为 Web 服务一部分的组织还为访问者提供如下内容:

  • 协作的地方
  • 内容库
  • 知识管理系统

尽管 Internet 上存在一些更有名的 wiki 可供任何人查看、编辑并创建内容,并非所有的安装都在公开的服务器上进行。 管理员可以从内部安装软件以防止敏感信息泄露到组织之外。

协作

Wiki 软件旨在实现访问者之间快速便捷的协作。尽管该软件还有很多实现,但这仍然是组织采用 wiki 的首要原因。Wiki 为协作提供了一个理想的平台,因为它们便于非技术人员使用,允许实时编辑,并为存储信息提供集中的存储库。

因为不需要学习新软件,非技术用户发现 wiki 很易于使用。每一次用户需要引用 wiki 文章、创建新文章或编辑现有部分时,使用浏览器即可完成 — 它可能是任何计算机用户使用起来都比较舒适的软件。

不像用于协作的其他项目管理或内容管理工具,wiki 用户在创建或编辑文档时只需引用 wiki 的标记语言。另外,在 wiki 的管理端也不需要 IT 人员的介入。安装并配置好 wiki 之后,任何人都可以监视 wiki 的内容,以确保它是相关的,正确的并且是可接受的。

Wiki 还允许实时编辑内容。再也不用考虑当前文档是否是最新版本:如果存在于 wiki 上,那么它就是最新的。Wiki 还允许跟踪编辑内容的用户并允许就相关内容进行讨论,因此不仅可对其进行实时访问,而且可进行实时管理。用户可以轻松看到哪些内容最近被编辑过,从而使他们了解任何可能对他们有用的更改。

Wiki 使协作更简单,因为它们允许将所有内容存储在一个集中的位置:服务器。随着 wiki 解决方案的出现,人们带着仅有的一份文档副本去度假的日子已不远了。只要文档是在 wiki 上创建的,wiki 就会将其存储,以供所有用户在需要时访问。

内容库

因为 wiki 最初是为程序员开发的,所以该工具才会作为一种方法被众多 Free/Libre/Open Source Software(FLOSS)项目采用,使用该方法可以为用户提供一些最重要的内容。

几乎访问 FLOSS 项目的任何网站,都有可能在组织的 wiki 中找到用户手册、FAQ、安装指南以及与其软件相关的其他内容。许多公司使用 wiki 为其员工提供策略、用户手册、人力资源文档、表格及其他内容。同样,该内容也可被存储在一个中央位置,以供员工在需要时访问。应用 wiki 解决方案,公司可以遵循为员工提供某些信息时所需的法律和策略,且它们可以为员工提供该信息的易读在线版本。而无需为每个员工打印并提供材料的复杂副本。

不管在哪一个实例中,都可配置 wiki 软件来限制对内容的编辑,这样就不会泄漏所提及的文档并将错误信息传递给读者。

Wiki 和内容管理系统的比较

一种常用于协作的工具内容管理系统(CMS)允许用户上传、查看内容,并通过上传内容到中央服务器或 Web 站点将内容散发给一个组或组织内的其他人。尽管 wiki 和 CMS 所提供的似乎相似,不过对比也很鲜明。

CMS 只在一定范围内允许协作,只有拥有合适凭证的用户才可以编辑现有文档并且所做更改实时存在。但是,不像 wiki,这些更改没有那么容易被组跟踪,所以可在任何人不知情的情况下进行更改。

在 CMS 中,可以创建和编辑内容的用户通常比在 wiki 环境中有更多限制。本质上,wiki 旨在让所有用户快速轻松地编辑和创建内容。相反地,CMS 通常旨在让少数人为不能做任何更改的广大读者创建和编辑内容。

内容间的链接是 wiki 拥有绝对优势的另一方面。使用 wiki,内容与其他 wiki 之间的链接就相对简单了。使用 wiki 引擎的语义可为内容创建网页,使访问者轻松导航到类似内容。用户若使用 CMS 创建内容间的链接就没这么容易了。了解 HTML 的人会发现在 CMS 中创建锚比较容易,不过一般用户发现,正如在 MediaWiki 语义中一样,仅插入两个括号之间的内容段标题更为简单 ([MediaWiki article])。

尽管两者都是提供信息的强大工具,究竟使用哪个取决于谁能够访问用于编辑的内容,谁会管理内容。如上所述,wiki 允许非技术用户轻松管理和访问内容,而 CMS 通常需要高深的技术知识才能进行管理。

MediaWiki

确定 wiki 解决方案适合于组织之后,下一步是选择适用于您的 wiki。此时在 WikiMatrix 有超过 100 个 wiki 引擎可供审阅。由于有这么多可用的软件包,因此很难确定哪个最好。但是,MediaWiki 已经证实它本身是最好的开源 wiki 引擎。Internet Journal 将其评选为最佳 wiki 工具就证明了该观点,但是更重要的事实是,MediaWiki 不仅是 Intel® 和 Novell 等公司的首选引擎,而且也是支持世界最大 wiki(Wikipedia)的软件。

特性

MediaWiki 与其他 wiki 引擎共享一些重要的特性,所以表 1 提供的列表不代表 MediaWiki 特有的特性。而且,该特性列表也绝不是 MediaWiki 提供的综合列表。它仅包含实现 wiki 解决方案时可能需要的一些最重要的特性。

表 1. MediaWiki 的一些特性
特性描述
数据库驱动MediaWiki 使用 MySQL 或 PostgreSQL 存储数据,而非文本文件。所以它能够对文章的所有修订进行存储。
多语言支持目前,MediaWiki 支持 140 种语言
可伸缩性MediaWiki 的最大实现 — Wikipedia — 有 1000,000 篇以上文章。
章节编辑用户可以编辑文章章节而无需加载整篇文章。
RSS用户可通过 RSS 反馈追踪对特定内容的更改。
专题报道页面用户可以定位站点统计、用户列表、新创建的文章、所有标题页面、最需要的文章、热点文章,以及能帮助他们在整个内容中进行导航的其他报道。
讨论列表用户可通过对话页随时关注并参与与文章内容相关的讨论。
并行差别用户可以将并行显示的编辑和突出显示的更改进行对比。

MediaWiki 架构

MediaWiki 是用 PHP 编写的,且尽管 MySQL 收到大部分测试(因为 Wikipedia 使用该数据库),但 MediaWiki 也支持 PostgreSQL、Ingres 和 SQLite。根据 MediaWiki 黑客指南,代码库 “既庞大又不美观”。大部分数据被存储在数据库中,但是一些文件,比如用户上传的媒体文件,被存储在当地文件系统中。软件的架构如下:

  • 用户层— Web 浏览器
  • 网络层— Squid | Web 服务器
  • 逻辑层— MediaWiki PHP Scripts | PHP
  • 数据层— 文件系统 | 数据库 | 缓冲系统

要安装 MediaWiki,需要用到:

  • PHP
  • 数据库服务器
  • Web 服务器

很明显,要运行软件需要用到 PHP,且数据库存储内容和用户详细信息。尽管 Apache 是推荐的 Web 服务器,您还可以使用 Micosoft® Internet Information Services (IIS)。Sun Java™ System Web Server 也与 MediaWiki 兼容,但它需要特定安装指示。

一台服务器运行 MediaWiki 站点所需的最小硬件容量是 256 MB RAM 和 40 MB 存储量。这些值代表了最低限度的要求,因为任何拥有大流量的站点会发现该容量很不充分。

与 MediaWiki 对比

其他开源 wiki 引擎也成为 MediaWiki 的强有力竞争对手。TikiWiki、DocuWiki、PmWiki 和其他引擎都很出色。它们中有许多共享相似的特性,而这些特性正是 wiki 的特色所在。不过,这些领先 wiki 之间存在显著的区别,这也正是 MediaWiki 展示其有力优势的地方。

数据存储

并非所有的 wiki 引擎都使用数据库。DokuWiki 和 PmWiki 都将信息存储在文本文件中。虽然文本文件占用较少的磁盘空间,但数据库为广大用户提供更高的数据安全性、更轻松的数据访问和更好的可伸缩性。PmWiki 需要通过一个插件才能提供对 MySQL 的支持。

大型开发社区

任何 FLOSS 项目都取决于其社区。尽管规模更大并不意味着更好,但有助于从中掘出很多资源。由于 MediaWiki 很受欢迎,它在自由节点(#mediawiki)上拥有一个活动 IRC 支持渠道,并拥有多个论坛,用户可在上面交流观点和问题。考虑到 MediaWiki 支持三倍于同类竞争者的语言( 140 相对于 DokuWiki 的 46 ),很明显来自世界各地的参与者正在着手从事该项目。

对于那些为 FLOSS 项目选择商业支持的人来说,超过 33 家公司将为 MediaWiki 提供付费支持,相比之下,有 6 家公司为 PmWiki 提供付费支持,有 9 家公司为 TikiWiki 提供付费支持,有 17 家公司为 DokuWiki 提供付费支持。

Semantic MediaWiki

将语义 Web 的强大功能引入到 wiki 引擎中能够为内容添加语义注释,使计算机能够对其进行处理,这样通过计算机搜索信息及其复杂关系就可以理解文本。

为了使 MediaWiki 功能更加强大,开发了一个名为 Semantic MediaWiki(SMW)的自由扩展,以帮助 “搜索、组织、标记、浏览、评估并共享 wiki 内容”。

反复考验

有人在使用并不一定表示它就是最好的。但是,只要看一下采用 MediaWiki 作为其 wiki 引擎的公司和组织列表,任何人都会留下深刻的印象。

当然,WikiMedia 组织有 Wikipedia 和所有其他站点可供运行,然而引用不止于此。Pfizer、Siemens、AGSI、NVIDIA 和 End Point 等大型公司将 MediaWiki 用于内部和公开项目。小型公司也利用该 wiki 引擎为客户和员工提供文档,客户支持和其他信息。甚至美国政府也加入到 MediaWiki 的阵营中,Diplopedia 是美国国务院的官方 wiki,它能够为 57,000 个员工提供信息。

有如此庞大和醒目的用户库使用开发社区,希望实现 wiki 解决方案的组织相信 MediaWiki 能满足他们的期望。

运行中的 MediaWiki

如前所述,MediaWiki 对于许多组织来说不仅仅是一种协作工具。事实上,许多公司将其作为一种全方位 Web 工具而实施。下面提到的组织在 wiki 常规应用之外使用 MediaWiki。

The OpenNMS Group

The OpenNMS Group 提供了全方位 MediaWiki 解决方案的完美示例。由于 MediaWiki 担任主页的开发平台,从最开始,访问者就暴露于 MediaWiki 中。OpenNMS Group 还利用 MediaWiki 为用户提供产品文档,并通过讨论列表、开发页面和 newbies 知识管理目录进行协作。

ECGpedia

Moodle 可以说是 Web 上的过程开发之首,但是 ECGpedia 使用其在线课程或教科书教授医学专家心电图学,这显示了 MediaWiki 的多功能化。

高级游戏系统

为了为其 Harpoon 海军模拟系列产品提供支持、文档和社区门户,ASGI 建立了这个 wiki,目的是将其转化成 Harpoon 信息和支持的主要来源。

结束语

所有这些功能并不表明 MediaWiki 是一种万灵丹。Wiki 并不能为所有需求提供解决方案。有时候 CMS 能够更好地满足组织的需求。即使选择使用 wiki,MediaWiki 缺乏对 ACL 的支持也是一个棘手的问题。不过,在某些人眼中,MediaWiki 的一些限制恰恰成为最受欢迎的特性。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Open source
ArticleID=388443
ArticleTitle=了解 wiki 软件
publish-date=05112009