原文出处:http://www.chedong.com/tech/cms.html
关键词:"content manage system" cms 内容管理系统
内容摘要:
内容管理系统概述
内容管理系统的选型
广告管理系统的选型
论坛/社区系统的选型
所见即所得编辑器的选型
图片上传和文件管理组件
内容管理系统概述
内容管理系统是一个很泛的概念:从商业门户网站的新闻系统到个人的Weblog都可以称作发布系统。
框架型:本身不包含任何应用实现,只是提供了底层框架,具体应用需要一定的二次开发,比如Cocoon,Vignette;
应用型:本身是一个面向具体类型的应用实现,已经包含了新闻/评论管理,投票,论坛,WIKI等一些子系统。比如:postNukexoops等;
但无论如何,在发布系统选型之前,首先了解自己的实际需求是最重要的:想根据现成系统将自己的需求硬往上照搬是非常不可取的。访问量,权限控制和各种功能需求。每个模块和功能自己都比较清晰一点以后,再去网上找找类似的实现:你会发现其实每个环节到目前上都有比较成熟的实现了,而且还在不断完善和发展中,如果没有:你的需求太特殊,或者可以尝试分解成更小的系统组合实现。
内容管理系统被分离成以下几个层面:各个层面优先考虑的需求不同
- 后台业务子系统管理(管理优先:内容管理):新闻录入系统,BBS论坛子系统,全文检索子系统等,针对不同系统的方便管理者的内容录入:所见即所得的编辑管理界面等,清晰的业务逻辑:各种子系统的权限控制机制等;
- Portal系统(表现优先:模板管理):大部分最终的输出页面:网站首页,子频道/专题页,新闻详情页一般就是各种后台子系统模块的各种组合,这种发布组合逻辑是非常丰富的,Portal系统就是负责以上这些后台子系统的组合表现管理;
- 前台发布(效率优先:发布管理):面向最终用户的缓存发布,和搜索引擎spider的URL设计等……
内容管理和表现的分离:很多成套的CMS系统没有把后台各种子系统和Portal分离开设计,以至于在Portal层的模板表现管理和新闻子系统的内容管理逻辑混合在一起,甚至和BBS等子系统的管理都耦合的非常高,整个系统会显得非常庞杂。而且这样的系统各个子系统捆绑的比较死,如果后台的模块很难改变。但是如果把后台各种子系统内容管理逻辑和前台的表现/发布分离后,Portal和后台各个子系统之间只是数据传递的关系:Portal只决定后台各个子系统数据的取舍和表现,而后台的各个子系统也都非常容易插拔。
内容管理和数据分发的分离:需要要Portal系统设计的时候注意可缓存性(Cache Friendly)性设计:CMS后台管理和发布机制,本身不要过多考虑“效率”问题,只要最终页面输出设计的比较Cacheable,效率问题可通过更前端专门的缓存服务器解决。
此外,就是除了面向最终浏览器用户外,还要注意面向搜索引擎友好(Search engine Friendly)的URL设计:通过URL REWRITE转向或基于PATH_INFO的参数解析使得动态网页在链接(URI)形式上更像静态的目录结构,方便网站内容被搜索引擎收录;
这里,我把在内容发布系统选型中找到的一些资料总结如下:
内容管理系统的选型
关键词:CMS Content Manage System
CMS行业研究
http://www.cmswatch.com
http://www.cmsreview.com
http://www.cmsinfo.org
CMS讨论邮件列表
http://www.cms-list.org商业软件和开源项目列表:
http://directory.google.com/Top/.../Content_Management/
推荐:基于XML的发布框架
http://cocoon.apache.org/
具体实现复杂程度可能会根据需求的不同而不同,但越是大型的系统越是需要分工:将内容(数据),表现(模板)和应用逻辑(程序)尽可能分离和对这3 者的管理。
Portal---门户系统
Open source Projects:
http://jportlet.sourceforge.net/
Apache Software Foundation: Jakarta JetSpeed 1.3
JetSpeed home page:
http://jakarta.apache.org/jetspeed/site/index.html
JetSpeed Portlet API:
http://cvs.apache.org/viewcvs/jakarta-jetspeed/proposals/portletAPI/
http://www.liferay.com/home/index.jsp
http://basicPortal.com/
http://www.jahia.org/
http://jporta.sourceforge.net/
商业软件:
BEA WebLogic Portal
http://edocs.bea.com/wlp/docs81/javadoc/com/bea/Portal/model/Portlet.html
IBM Websphere Portal
http://www.software.ibm.com/wsdd/zones/Portal/
Oracle Portal Developer Kit
http://Portalstudio.oracle.com/
其它:
PSML
http://jakarta.apache.org/jetspeed/site/psml.html
BEA: Web Logic Portal 4.0
http://www.bea.com/products/weblogic/Portal/index.shtml
IBM: WebSphere Portal 2.1
http://www-4.ibm.com/software/webservers/Portal/
iPlanet: iPlanet Portal Server 3.0
http://www.iplanet.com/products/iplanet_Portal/home_Portal.html
Oracle: Oracle 9i Portal
http://www.oracle.com/ip/deploy/ias/Portal/index.html
SAP Portal:
http://www.iviewstudio.com
Epicentric Portal:
http://www.epicentric.com/solutions/products/efs/
参考:
Wafer:Java开发框架研究
http://www.waferproject.org/index.html
门户(Portal)系统相关开发框架:
http://udoo.51.net/mt/archives/000011.html
广告管理系统
关键词:ad server
广告系统和内容的分离,可以大大降低系统之间的关联度。
专业行业研究网站:
http://adres.internet.com
相关厂商和开源项目:
http://directory.google.com/...../Ad_Management/?il=1
http://directory.google.com/...../Servers/Advertising/?tc=1
http://www.jspin.com/home/apps/admanage?cob=winedit
http://www.scriptdex.com/dex/php_ad_management.shtml
推荐:
http://www.phpadsnew.com/ 功能性比较强
http://oasis.sourceforge.net/ 免费 基于日志记录和定期导入MYSQL统计,可以负载50万请求/每小时 以上
如果看重广告的第3方特性,可以选择第三方服务:
http://www.doubleclick.net/
http://www.allyes.com/
论坛/社区系统
关键词: BBS FORUM
论坛软件介绍:
http://directory.google.com/.../Message_Boards/
推荐:
http://www.phpBB.com
PHP + MySQL open source
http://www.vbulletin.com/order/
PHP + MySQL 有付费的商业支持85-160$
http://www.jivesoftware.com/products/pricing.jsp
商业论坛系统,1000$-2500$ 有知识库扩展应用
http://yazd.yasna.com/features.jsp
基于 Java
所见即所得(WYSIWYG)编辑器
在内容的录入管理方面,所见即所得是比较重要的,这样可以大大简化对系统中布局排版的需求。
基于浏览器的WYSIWYG(所见即所得)编辑器是CMS设计中,编辑工具的主要考虑方面。目前主要是通过JAVASCRIPT调用IE或其他浏览器的内置方法实现。其中基于IE5.5浏览器的实现最为简洁。这里有一个完整的例子:
http://www.devarticles.com/printpage.php?articleId=90
http://www.devarticles.com/printpage.php?articleId=116
主要功能:
能够通过JAVASCRIPT实现的基本功能:加粗,斜体字,居中,添加链接,添加图片,模式切换:HTML和文本模式的切换,
Word垃圾代码过滤
图片上载接口:图片上载最好通过其他独立模块实现。 选型指标:
不依赖服务器端代码:只通过JAVASCRIPT或客户端控件实现代码,可以保证以后系统迁移的方便。
WORD垃圾代码过滤 可视化编辑器大全:
http://www.bris.ac.uk/is/projects/cms/ttw/ttw.html
推荐:
http://www.aine.be/aynhtml/
图片/文件上传组建
图片和文件等非结构化数据还是分别使用另外的服务解决比较好。这样可以大大简化CMS本身的复杂程度。
推荐:
文件上传:
Apache Commons项目
http://jakarta.apache.org/commons/
ImageJ:图片处理缩略图生成和水印等
http://rsb.info.nih.gov/ij/
由于针对的目标用户不同,各个系统的一些特点都会有所不同的。对于内容管理这样一个并不涉及太多核心技术的东西,说个实在话,随便你找哪一家,都能满足你的需求,如果允许他来根据你的需求做定制开发的话:-)
基本上,国内的内容管理系统可以分成三个类别:
第一个类别,面向政府、媒体、ICP、大型企业的,特点是维护内容的人较多,水平有高有低,但是需求比较明确,就是做网站,做各种类型的信息发布,要求成熟的产品级的解决方案。相应的产品有:
TurboCMS http://www.turbocms.com 根据版本,价格在5万到25万之间
TRS WCM http://www.trs.com.cn 价格在15万左右一个许可
天极CMS4i http://www.chinabyte.net/ 价格在10万左右,但据说已经不做了,只做重庆市场了
龙讯 http://www.qianlong.com 根据版本,价格在2万到8万之间
第二个类别,面向政府、事业单位,内外网应用,特点是需求变化大,用户间的需求有很大差距,内容管理只是一个大的系统中的一部分,比如电子政务中的一小块内容。一般在实施时要求定制开发,不可能用现成产品来满足需求。这样的解决方案有:
方正祥羽
清华万博
wits
中关村软件
等。
他们的背景大都是集成的解决方案提供商。价格就没个准了,在一个项目中,可能很便宜,几万块,也可能几十万上百万,就看客户有没有钱了。
第三个类别,面向企业、个人,特点是用户是技术的爱好者,喜欢专研。需求上可能比较复杂,比如需要跟BBS、用户注册等应用集成在一起,满足个性化的需求,最好有源代码,可以自己根据需要修改等等。这类解决方案市场上就很多了。但是个人觉得,AC绝对是其中的佼佼者,感觉好像AC的设计思路许多地方跟TurboCMS很接近,但是缺乏商业的运作,可能就缺少对用户很多细节需求的了解了。价格一般在几千块以内。
除去第三类的情况,作为用户,个人觉得选择内容管理系统要看几个标准:
第一,易用性,你不能代表编辑,他们如果不会用,天天找你做技术支持,岂不累死。这方面,TurboCMS和TRS WCM有优点,他们的客户群都是成百上千家了,产品经过了4到5年的发展,各方面考虑得已经非常周到。
第二,灵活性,买一套系统就是要用足,用够,能够管理整个网站的所有频道最好。这方面,TurboCMS可以针对每个频道设置扩展字段,TRS WCM可以针对站点设置扩展字段,都还比较好。模板处理引擎技术方面,TurboCMS使用脚本技术,TRS WCM使用TAGLIB技术,然后结合可视化模板制作技术,都还不错,能从易用性与灵活性两个层次满足需求。
第三,可扩展性,今天买了这套系统,明天要开展新的业务,希望还能用得上。TurboCMS提供了一个数据库部署工具,可以将内容复制到外部数据库,供其他应用使用,比如复制到Web上供做高级查询。这一点,像AC这样的系统倒是做得很好。但TRS和天极的就不行了,只能生成静态页面,用户要查询数据库,就只好把CMS跟WEB装到一起,很不安全。这个特性,感觉TurboCMS是跟国外的 Interwoven学的,Interwoven有个DataDeploy。
第四,自动内容采集,从外部数据源采集内容回来进行发布,减少人工干预。TurboCMS内置了三种自动采集爬虫,数据库采集,Web 采集,文件采集。TRS WCM 提供一个单独的产品“网络雷达”来实现Web采集,另外一个产品叫“数据库网关”来实现从外部数据库取内容,然后可以导入TRS自己的文件。这两家都做得不错,不过TRS的要买全的话,总价格得在4、50万了。
第五,站内全文检索。TRS 提供了一个独立的产品做站内检索,与TRS WCM可以很好地集成。另外几家没有自己的系统,需要与第三方的系统做集成。顺便提一句,如果需要有些智能处理,比如自动相关文章,自动摘要,自动关键字提取等,TRS有个独立工具包叫TRS CKM知识管理工具包,很强大,别的家没得比。如果你需要得话,你得考虑,不过可以单独购买。
第六,特殊功能。TurboCMS提供了专门的专题管理、页面管理、期刊管理、报纸管理等模块对特殊内容发布形式进行支持。其他几家好像都没有。
第七、流程的支持。TRS的工作流可以图形化定制。TurboCMS的只基于用户可以定制。别的产品好像都没有支持。
价格方面,TurboCMS和TRS的最贵了,不过今天早上从im286上看到报价有回扣,不知道属不属实:-)
另外,发现许多人在跟着做类似的系统,个人觉得,国内的产品真够多了,盲目跟进没有什么好处的,不如开辟新的战场。偶现在就研究知识管理:-),比内容管理高一截,赫赫。