田文强,张继德
(1.华北理工大学信息工程学院,河北 唐山 063000;2.河北北方学院学报编辑部,河北 张家口 075000)
基于OpenCMS开源内容管理系统的比较研究
田文强1,2,张继德1
(1.华北理工大学信息工程学院,河北 唐山 063000;2.河北北方学院学报编辑部,河北 张家口 075000)
目的 对目前国外主流开源网站内容管理系统WordPress、Joomla、Drupal和DotNetNuke(DNN)进行比较研究,探讨4种系统在网站搭建和管理方面的优劣,并为国内开发内容管理系统提供参考。方法 通过分析WordPress、Joomla、Drupal和DNN 4种系统架构,了解其内部结构。对网站搭建平台、网站基本管理、网站高级管理等功能进行详细比较。结果 内容管理系统是协作环境中管理工作流(手动或基于计算机的)过程的集合。这些程序被设计为允许工作人员贡献和共享存储的数据。大多数CMS主要应用于网站内容的管理,它大大简化了网站的开发和维护。4种系统根据开发语言可以分为PHP和.NET两大类。WordPress是开源博客发布应用程序,易用性好;Joomla是一个内外网均适合的开源内容管理系统平台,同时也是一套框架,性能好;Drupal是一个内容管理框架,模块众多,但在升级时对旧模块的支持不友好;DNN系统功能全面,但是性能需要专业优化。结论 4种系统均有各自的特性,但总体而言,WordPress、Joomla、Drupal系统功能较少,适合轻量级开发,以性能为先,后期可通过模块和插件实现功能。DNN在系统功能已经比较强大,但是在性能方面相比较弱,需要更好地调优,适合对功能要求比较高的网站开发。
内容管理系统;开源;WordPress;Joomla;Drupal;DotNetNuke(DNN)
随着信息化社会的发展,如何简单又快速地处理海量信息成为企业和政府机构等组织的首要问题,内容管理系统应运而生。内容管理系统(content management system,CMS)是指在一个合作模式下,用于管理工作流程的一套制度。内容管理系统可以像中央存储器(central repository)一样,将相关内容集中储存并具有群组管理、版本控制等功能。借助内容管理系统可以实现基于用户角色的数据控制和访问,帮助轻松存储和检索数据,减少重复输入,并改善用户之间的通信[1]。CMS大致可以分为两大类:企业内容管理系统(enterprise CMS)和网站内容管理系统(web CMS),本文主要研究的是网站内容管理系统。
网站内容管理系统又称网站管理系统(web management system,WMS),是用于管理网站内容的系统。通常由内容管理应用程序(content management application,CMA)和内容交付应用程序(content delivery application,CDA)组成。在WMS中,数据可以被定义为几乎任何东西,即文档、视频、图片、声音等内容。借助WMS企业和个人可以轻松搭建并管理自己的网站,最小程度地降低对计算机专业技术的要求,甚至可以实现“零代码”管理,方便企业和个人降低维护网站所需的费用[2-3]。OpenCMS作为优秀且免费的内容管理系统就是一种很好的解决方案。目前国内主要有动易CMS、风讯CMS、新云CMS、织梦CMS等。但是关于国外主流CMS的比较研究较少。本文将对国外主流CMS进行比较研究,主要有WordPress、Joomla、Drupal、DNN4种系统,涵盖了PHP和.NET两种语言的系统,为选择和开发CMS提供参考。
开源内容管理系统(open content management system,OpenCMS)是一个专业且容易上手的内容管理系统。用户基于Web发布功能,允许个人或组织使用模板,向导式创建或修改Web内容。格式管理功能允许将传统电子文档和扫描纸质文档格式转换为HTML或可移植文档(PDF)。结构化的内容编辑器可以实现“所见即所得”创建内容。OpenCMS是在开源GUN Liscence下开发的软件包,能够实现软件免费安装使用。在不影响基本功能的前提下,它允许用户具有更大的灵活性和可扩展性,在用户中非常受欢迎[4]。图1显示了基于Wappalyzer网站统计的在过去90天内国外CMS市场安装数量以及受欢迎的程度。以下分别介绍国外主流的基于PHP开发的WordPress、Joomla和Drupal系统以及基于.net的DNN系统。
1.1 WordPress
WordPress是一个由PHP和MySQL提供支持的开源博客发布的应用程序,在GUN公共许可下授权发布,也可用于内容管理。它有许多功能,包括插件架构和模板系统。WordPress是目前因特网上最流行的博客系统。WordPress使用PHP设计,但使用它不必知道PHP语法,只需使用一个简单的模板即可创建。直观和易于使用的管理界面使它可以在较短时间内真正简单和容易地创建一个博客或者网站。WordPress以下特性导致其在用户中非常流行:①完全符合W3C标准,易于安装和升级,易于导入;②修改之后无需重新生成静态页面即可展现,易于管理网站内容;③智能文本格式和工作流程,支持多个作者;④内置垃圾邮件防护和密码保护,支持对帖子的评论;⑤跨博客通信工具,XML-RPC接口[5],WordPress4.7是最新版本。
1.2 Joomla和Joomla架构
Joomla是一个用于在万维网和内部网上发布内容的开源内容管理系统平台,同时也是一个MVC Web应用程序框架。它由PHP编写,在MySQL中存储数据。可以实现包括页面缓存、简单聚合(RSS)订阅、页面可打印版本、博客、投票、搜索和语言国际化支持等功能[6]。Joomla采用了3层框架和模型-视图-控制器(Model-View-Controller,MVC)设计模式,使其具有以下优点:①代码可管理性变得容易和标准;②提高代码质量,使产品更加稳定;③帮助实现社区发展延伸的标准化。
图2 Joomla 3层架构
三层架构是整个Joomla的基本底层架构,整个内部架构(图2)可以分为3层,即扩展层(extension layer),应用层(application layer)和框架层(framework layer)。①扩展层是最顶层,包括核心Joomla框架和应用程序层的扩展,并包括元件(component),模组(modules)和模板(templates)。元件是为网站门户提供功能开发的自定义独立应用程序;模组扩展了Joomla的功能;模板控制门户的整体用户界面、外观以及布局。PHP、HTML和CSS的组合提供了极其灵活和容易的方式来定义网站的用户界面体验。②应用层是由扩展Framework Application类的应用程序组成的中间层。③框架层是由框架、库和插件组成的底层。框架是核心;库包括框架所需的一组核心服务以及开发人员安装的扩展。关于性能,Joomla是一个非常轻的应用程序,它没有任何明显的性能瓶颈。
图3 Drupla架构
1.3 Drupal和Drupal框架
Drupal是另一个受欢迎的内容管理系统软件,也由PHP语言编写,自发布以来,一直伴随着开发人员、用户等追随者。虽然Drupal通常被称为CMS,但它是一个内容管理框架(content management framework,CMF)。Drupal提供了许多模块得以实现不同的功能,且模块的下载、安装也非常容易。目前为止,Drupal社区已经编写了成千上万个组件。Drupal虽然配有强大的功能,但不少用户批评其使用接口复杂,违反直觉,设置分布容易混乱。每次Drupal有重大更新时,不少旧的组件未能成功过渡,因此备受诟病[7]。
在Drupal系统中有5个主要层(图3)。系统的核心是节点(node)数据池。在网站上显示任何内容之前,必须将其作为数据输入。中心的下一层是模块(modules),模块是功能插件,它们是Drupal核心的一部分。模块提供了各种功能来扩展网站的功能,包括事件日历,电子商务,程序化排序和显示内容等。再下一层有块(blocks)和菜单(menus),块通常提供来自模块的输出,或者被创建显示我们想要的任何东西,然后被放置在模板(主题)布局中的各个点。接下来是用户权限(permissions),其中配置了设置以确定不同用户类型可以访问的内容。权限被分配给各个角色,并且用户随后与各种角色相关联,以便向他们授予相关联的权限。表面层是网站模板(templates)。主要由XHTML和CSS组成。每个模板还包括一组函数,可用于覆盖模块中的标准函数,以便提供对模块输出时如何生成其标记的完全控制。模板也可以基于用户权限在运行中分配。
1.4 DNN和DNN架构
DotNetNuke(DNN)是一个开源平台,用于构建基于Microsoft.NET技术的网站。起初它是写在VB.NET,后用C#重新编写。它通过使用皮肤、模块、数据提供程序、语言包和模板扩展和定制。DNN是微软第一次向开源说“Yes”的里程碑。DNN具有以下优点:①可以构建任何Web网站,包括商务网站,企业内/外网,具有较好的通用性;②借助安装向导和图标,能够帮助用户快速搭建维护网站,对用户非常友好;③支持多种语言;④具有较高的可扩展性,通过开发第三方模块即可加入运行中的网站等[8]。由于功能模块较多,与之前3种CMS相比性能较弱,需要更加强大的硬件支持。
图4 DNN3层架构
DNN的架构(图4)是如此强大和模块化,更容易识别必要的组件。它包含的各种层是表示层(presentation layer)、业务层(business logic layer)和数据访问层(data access layer)。表示层是用户控件(user control)所在的层,即看到的模块在浏览器上面的显示——用户界面。业务层(business logic layer)是业务逻辑所在的模块的所有后端代码。数据访问层(data access layer)通过数据提供者、具体数据提供者和应用程序块访问数据库的地方。数据提供程序是一个抽象类,具体的数据提供程序由继承数据提供程序类来执行数据库操作,如Microsoft SQL Server、MySQL等。数据访问应用程序块简化了实现公共数据访问功能的开发任务。应用程序可以在各种情况下使用应用程序块,例如读取数据以供显示,获取数据以通过应用程序层,并将更改的数据提交回数据库系统。
2.1 国外主流OpenCMS比较
前面已经简单介绍了4种CMS系统的基本功能和架构,了解了其内部结构的运转。下面主要对WordPress、Joomla、Drupal,以及DNN在搭建平台、基本功能和高级功能方面进行详细的对比,见表1。
2.2 OpenCMS优点
OpenCMS是一套开源的web内容管理系统,具有高度的灵活性和可定制性,特别适合构建公司和企业的内外网。借助高度的可定制性可以完成公司、企业的业务个性化需求。OpemCMS具有以下优点:①完全免费,任何个人或者组织均可以免费使用;②插件和模块数量巨大,能够满足一般网站的功能需求;③市场成熟,OpemCMS发展到现在,已经有越来越多的公司采用此系统构架公司的内外网站;④用户友好,借助于图形化的界面,用户可以使用较少的代码、甚至是“零代码”轻松管理网站;⑤平台广泛,涵盖了主流市场上几乎全部搭建平台;⑥技术支持成熟,随着越来越多的公司使用OpenCMS,使得OpenCMS发展越来越壮大,后期技术支持能够得到保障[9]。
表1 Open CMS项目比较表
注:√表示支持,×表示不支持,·表示可通过添加插件或模块实现。
从不同的内容管理系统展开研究,本文给出了不同系统主要特征的详细比较。从比较的角度来看,这也是体现这些系统风格和唯一性的特点。但这些特点也使差异更突出。对于内容管理系统,中心思想是容易和有效地管理内容。这些是帮助衡量和定义它们的优缺点的参数。每个系统在其内容管理上都各有不同,功能全面以牺牲性能为代价,而追求网站性能的就可以考虑功能较少的系统,通过添加插件或者模块再实现其必须的功能。通过对比国外比较成熟的CMS系统,为国内正在选择和使用CMS的用户提供参考,也为开发CMS用户提供系统开发和模块开发的思路。
[1]金花,曲俊华,谢萍.内容管理系统的研究[J].计算机与数字工程,2006(08):109-112.
[2]杨立新,王莉娜,李贞贞.基于OpenCms网站内容管理系统的比较研究[J].软件导刊,2012,11(12):20-23.
[3]ALEKSEEV N A,BONDARENKO V Y.Comparative analysis of web-site content management systems[C]//International Crimean Conference on Microwave & Telecommunication Technology,IEEE,2009:369-371.
[4]毛雄健.开源内容管理系统在科技管理中的应用与研究[D].昆明:昆明理工大学,2013.
[5]戴一平.基于WordPress的CMS分析与设计[J].计算机与现代化,2011(04):79-83.
[6]于秀金,张皓斐.基于Joomla!系统开发网站的设计与实现[J].电脑开发与应用,2010(11):50-52+55.
[7]马建玲.开放源代码的内容管理系统Drupal[J].现代情服,2007(02):50-52.
[8]曹莉.基于.NET的Web应用中DotNetNuke框架的研究与应用[D].西安:西安建筑科技大学,2007.
[9]肖治国.开源内容管理系统OpenCMS的研究与应用[D].长春:吉林大学,2007.
[责任编辑:王荣荣 英文编辑:刘彦哲]
A Comparative Study Based on Open Source Content Management Systems
TIAN Wen-qiang1,2,ZHANG Ji-de1
(1.College of Information Engineering,North China University of Science and Technology,Tangshan, Hebei 075000,China;2.Journal Editorial Department,Hebei North University,Zhangjiakou,Hebei 075000,China)
Objective The advantages and disadvantages of WordPress,Joomla,Drupal and DotNetNuke(DNN)in the construction and management of the website are discussed to provide,reference for the domestic development of content management system.Methods By analyzing the system architectures of WordPress,Joomla,Drupal and DNN four theis internal structures one understood.The functions from the site to build the platform,basic site management,advanced management are compared in detail.Results The Content Management System(CMS)is a collection of(manual or computer-based)processes that manage workflows in a collaborative environment.These programs are designed to allow staff to contribute and share stored data.Most CMS are primarily used for the management of website content,which greatly simplifies the development and maintenance of the site.Four systems according to the development language can be divided into two categories PHP and .NET.WordPress is an open source blog publishing application with good usability;Joomla is an open source content management system platform,suitable for internal and external network,and a framework with good performance;Drupal is a content management framework,with a large number of modules,but the support for the old module is not friendly;DNN system is fully functional,and the performance requires professional optimization yet.Conclusion The four systems have their own characteristics,but overall,WordPress,Joomla,Drupal system features less,and are suitable for lightweight development,which require performance first,and the module and plug to achieve function later.DNN in the system function has been relatively strong,but in terms of performance,it needs to be better tuned for site development that requires more functionality.
content management system(CMS);open source;WordPress;Joomla;Drupal;DotNetNuke(DNN)
田文强(1987-),男,河北唐山人,华北理工大学信息工程学院在职硕士研究生,主要研究方向:信息管理。
张继德,男,副教授,硕士生导师,主要研究方向:计算机技术。
TP 315
A
10.3969/j.issn.1673-1492.2017.09.003
来稿日期:2017-03-23