UML软件工程组织
|
内容管理系统(CMS)的设计和选型 |
作者:车东 来 源: chedong.com |
内容管理系统概述 内容管理系统是一个很泛的概念:从商业门户网站的新闻系统到个人的Weblog都可以称作发布系统。 但无论如何,在发布系统选型之前,首先了解自己的实际需求是最重要的:想根据现成系统将自己的需求硬往上照搬是非常不可取的。访问量,权限控制和各种功能需求。每个模块和功能自己都比较清晰一点以后,再去网上找找类似的实现:你会发现其实每个环节到目前上都有比较成熟的实现了,而且还在不断完善和发展中,如果没有:你的需求太特殊,或者可以尝试分解成更小的系统组合实现。 内容管理系统被分离成以下几个层面:各个层面优先考虑的需求不同 内容管理和表现的分离:很多成套的CMS系统没有把后台各种子系统和Portal分离开设计,以至于在Portal层的模板表现管理和新闻子系统的内容管理逻辑混合在一起,甚至和BBS等子系统的管理都耦合的非常高,整个系统会显得非常庞杂。而且这样的系统各个子系统捆绑的比较死,如果后台的模块很难改变。但是如果把后台各种子系统内容管理逻辑和前台的表现/发布分离后,Portal和后台各个子系统之间只是数据传递的关系:Portal只决定后台各个子系统数据的取舍和表现,而后台的各个子系统也都非常容易插拔。 内容管理和数据分发的分离:需要要Portal系统设计的时候注意可缓存性(Cache Friendly)性设计:CMS后台管理和发布机制,本身不要过多考虑“效率”问题,只要最终页面输出设计的比较Cacheable,效率问题可通过更前端专门的缓存服务器解决。 此外,就是除了面向最终浏览器用户外,还要注意面向搜索引擎友好(Search engine Friendly)的URL设计:通过URL REWRITE转向或基于PATH_INFO的参数解析使得动态网页在链接(URI)形式上更像静态的目录结构,方便网站内容被搜索引擎收录; --------------- --------------- --------------- 这里,我把在内容发布系统选型中找到的一些资料总结如下: 内容管理系统的选型 CMS行业研究 http://www.cmswatch.com http://www.cmsreview.com http://www.cmsinfo.org CMS讨论邮件列表 http://www.cms-list.org 商业软件和开源项目列表: http://directory.google.com/Top/Computers/Software/Internet/Site_Management/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: href="http://jakarta.apache.org/jetspeed/site/index.html">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 - href="http://www.software.ibm.com/wsdd/zones/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 广告管理系统 广告系统和内容的分离,可以大大降低系统之间的关联度。 专业行业研究网站: http://adres.internet.com 相关厂商和开源项目: http://directory.google.com/Top/Computers/Programming/Languages/PHP/Scripts/Ad_Management/?il=1 http://directory.google.com/Top/Computers/Software/Internet/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/ 论坛/社区系统 论坛软件介绍: http://directory.google.com/Top/Computers/Internet/Web_Design_and_Development/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浏览器的实现最为简洁。这里有一个完整的例子: Building a WYSIWYG HTML Editor Part 1/2 Building a WYSIWYG HTML Editor Part 2/2 主要功能: 选型指标: 可视化编辑器大全: 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/ 原文出处:http://www.chedong.com/tech/cms.html |
版权所有:UML软件工程组织 |