内容管理系统(CMS)的设计和选型
作者: 车东 Email: {域名已经过期}/{域名已经过期}写于:2003/03 最后更新: 12/01/2003 09:36:47
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
关键词:"content manage system" cms 内容管理系统
内容摘要:
内容管理系统概述
内容管理系统是一个很泛的概念:从商业门户网站的新闻系统到个人的Weblog都可以称作发布系统。
- 框架型:本身不包含任何应用实现,只是提供了底层框架,具体应用需要一定的二次开发,比如Cocoon,Vignette;
- 应用型:本身是一个面向具体类型的应用实现,已经包含了新闻/评论管理,投票,论坛,WIKI等一些子系统。比如:postNuke xoops等;
但无论如何,在发布系统选型之前,首先了解自己的实际需求是最重要的:想根据现成系统将自己的需求硬往上照搬是非常不可取的。访问量,权限控制和各种功能需求。每个模块和功能自己都比较清晰一点以后,再去网上找找类似的实现:你会发现其实每个环节到目前上都有比较成熟的实现了,而且还在不断完善和发展中,如果没有:你的需求太特殊,或者可以尝试分解成更小的系统组合实现。
内容管理系统被分离成以下几个层面:各个层面优先考虑的需求不同
- 后台业务子系统管理(管理优先:内容管理):新闻录入系统,BBS论坛子系统,全文检索子系统等,针对不同系统的方便管理者的内容录入:所见即所得的编辑管理界面等,清晰的业务逻辑:各种子系统的权限控制机制等;
- Portal系统(表现优先:模板管理):大部分最终的输出页面:网站首页,子频道/专题页,新闻详情页一般就是各种后台子系统模块的各种组合,这种发布组合逻辑是非常丰富的,Portal系统就是负责以上这些后台子系统的组合表现管理;
- 前台发布(效率优先:发布管理):面向最终用户的缓存发布,和搜索引擎spider的URL设计等……
内容管理和数据分发的分离:需要要Portal系统设计的时候注意可缓存性(Cache Friendly)性设计:CMS后台管理和发布机制,本身不要过多考虑“效率”问题,只要最终页面输出设计的比较Cacheable,效率问题可通过更前端专门的缓存服务器解决。
此外,就是除了面向最终浏览器用户外,还要注意面向搜索引擎友好(Search engine Friendly)的URL设计:通过URL REWRITE转向或基于PATH_INFO的参数解析使得动态网页在链接(URI)形式上更像静态的目录结构,方便网站内容被搜索引擎收录;
--------------- --------------- ---------------这里,我把在内容发布系统选型中找到的一些资料总结如下:
|新闻管理子系统| | BBS论坛子系统| | 商城子系统 |
--------------- --------------- ---------------
| \ / | \ / 内
| ----------|--- \ / 容 <== 业务子系统(零件生产)
| / | \ \ / 管
--------------- | --------------- 理
|专题制作子系统| | |全文检索子系统|
--------------- | ---------------
\ | /
-------------------------|---------------------------------------------
\ | / 频
--------------- 道 <== Portal系统(产品组装)
| Portal 系统 | 管
--------------- 理
|
-------------------------|---------------------------------------------
| 前
| 台 <== 发布系统(分发代理)
--------------- 发
|前台发布系统 | 布
---------------
/ \
/ \
--------------- ---------------
| 用户浏览器 | |Search Engine|
--------------- ---------------
内容管理系统的选型
关键词:CMS Content Manage System
CMS行业研究
http://{域名已经过期}
http://{域名已经过期}
http://{域名已经过期}
http://{域名已经过期}
商业软件和开源项目列表:
http://{域名已经过期}/Top/Computers/Software/Internet/Site_Management/Content_Management/
推荐:基于XML的发布框架
http://{域名已经过期}/
具体实现复杂程度可能会根据需求的不同而不同,但越是大型的系统越是需要分工:将内容(数据),表现(模板)和应用逻辑(程序)尽可能分离和对这3 者的管理。
Portal---门户系统
Open source Projects:
http://{域名已经过期}/
Apache Software Foundation: Jakarta JetSpeed 1.3
JetSpeed home page: http://{域名已经过期}/jetspeed/site/index.html
JetSpeed Portlet API: http://{域名已经过期}/viewcvs/jakarta-jetspeed/proposals/portletAPI/
http://{域名已经过期}/home/index.jsp
http://{域名已经过期}/
http://{域名已经过期}/
http://{域名已经过期}/
商业软件:
BEA WebLogic Portal - http://{域名已经过期}/wlp/docs81/javadoc/com/bea/Portal/model/Portlet.html
IBM Websphere Portal - http://{域名已经过期}/wsdd/zones/Portal/
Oracle Portal Developer Kit - http://{域名已经过期}/
其它:
PSML - http://{域名已经过期}/jetspeed/site/psml.html
BEA: Web Logic Portal 4.0 http://{域名已经过期}/products/weblogic/Portal/index.shtml
IBM: WebSphere Portal 2.1 http://{域名已经过期}/software/webservers/Portal/
iPlanet: iPlanet Portal Server 3.0 http://{域名已经过期}/products/iplanet_Portal/home_Portal.html
Oracle: Oracle 9i Portal http://{域名已经过期}/ip/deploy/ias/Portal/index.html
SAP Portal: http://{域名已经过期}
Epicentric Portal: http://{域名已经过期}/solutions/products/efs/
参考:
Wafer:Java开发框架研究
http://{域名已经过期}/index.html
门户(Portal)系统相关开发框架:
http://{域名已经过期}/mt/archives/000011.html
广告管理系统
关键词:ad server
广告系统和内容的分离,可以大大降低系统之间的关联度。
专业行业研究网站:
http://{域名已经过期}
相关厂商和开源项目:
http://{域名已经过期}/Top/Computers/Programming/Languages/PHP/Scripts/Ad_Management/?il=1
http://{域名已经过期}/Top/Computers/Software/Internet/Servers/Advertising/?tc=1
http://{域名已经过期}/home/apps/admanage?cob=winedit
http://{域名已经过期}/dex/php_ad_management.shtml
推荐:
http://{域名已经过期}/ 功能性比较强
http://{域名已经过期}/ 免费 基于日志记录和定期导入MYSQL统计,可以负载50万请求/每小时 以上
如果看重广告的第3方特性,可以选择第三方服务:
http://{域名已经过期}/
http://{域名已经过期}/
论坛/社区系统
关键词: BBS FORUM论坛软件介绍:
http://{域名已经过期}/Top/Computers/Internet/Web_Design_and_Development/Message_Boards/
推荐:
http://{域名已经过期} PHP + MySQL open source
http://{域名已经过期}/order/ PHP + MySQL 有付费的商业支持85-160$
http://{域名已经过期}/products/pricing.jsp 商业论坛系统,1000$-2500$ 有知识库扩展应用
http://{域名已经过期}/features.jsp 基于 Java
所见即所得(WYSIWYG)编辑器
在内容的录入管理方面,所见即所得是比较重要的,这样可以大大简化对系统中布局排版的需求。基于浏览器的WYSIWYG(所见即所得)编辑器是CMS设计中,编辑工具的主要考虑方面。目前主要是通过JAVASCRIPT调用IE或其他浏览器的内置方法实现。其中基于IE5.5浏览器的实现最为简洁。这里有一个完整的例子:
http://{域名已经过期}/printpage.php?articleId=90
http://{域名已经过期}/printpage.php?articleId=116
主要功能:
- 能够通过JAVASCRIPT实现的基本功能:加粗,斜体字,居中,添加链接,添加图片,模式切换:HTML和文本模式的切换,
- Word垃圾代码过滤
- 图片上载接口:图片上载最好通过其他独立模块实现。
- 不依赖服务器端代码:只通过JAVASCRIPT或客户端控件实现代码,可以保证以后系统迁移的方便。
- WORD垃圾代码过滤
http://{域名已经过期}/is/projects/cms/ttw/ttw.html
推荐:
http://www.aine.be/aynhtml/
图片/文件上传组建
图片和文件等非结构化数据还是分别使用另外的服务解决比较好。这样可以大大简化CMS本身的复杂程度。推荐:
文件上传:
Apache Commons项目
http://{域名已经过期}/commons/
ImageJ:图片处理缩略图生成和水印等
http://{域名已经过期}.nih.gov/ij/
原文出处:<a href=""></a>
<<返回首页