內容管理系統(CMS)的設計和選型

內容摘要:

內容管理系統概述


內容管理系統是一個很泛的概念:從商業門戶網站的新聞系統到個人的Weblog都可以稱作發佈系統。
  • 框架型:本身不包含任何應用實現,只是提供了底層框架,具體應用需要一定的二次開發,比如Cocoon,Vignette;
  • 應用型:本身是一個面向具體類型的應用實現,已經包含了新聞/評論管理,投票,論壇,WIKI等一些子系統。比如:postNuke xoops等;

但無論如何,在發佈系統選型之前,首先了解自己的實際需求是最重要的:想根據現成系統將自己的需求硬往上照搬是非常不可取的。訪問量,權限控制和各種功能需求。每個模塊和功能自己都比較清晰一點以後,再去網上找找類似的實現:你會發現其實每個環節到目前上都有比較成熟的實現了,而且還在不斷完善和發展中,如果沒有:你的需求太特殊,或者可以嘗試分解成更小的系統組合實現。

內容管理系統被分離成以下幾個層面:各個層面優先考慮的需求不同

  1. 後臺業務子系統管理(管理優先:內容管理):新聞錄入系統,BBS論壇子系統,全文檢索子系統等,針對不同系統的方便管理者的內容錄入:所見即所得的編輯管理界面等,清晰的業務邏輯:各種子系統的權限控制機制等;
  2. Portal系統(表現優先:模板管理):大部分最終的輸出頁面:網站首頁,子頻道/專題頁,新聞詳情頁一般就是各種後臺子系統模塊的各種組合,這種發佈組合邏輯是非常豐富的,Portal系統就是負責以上這些後臺子系統的組合表現管理;
  3. 前臺發佈(效率優先:發佈管理):面向最終用戶的緩存發佈,和搜索引擎spider的URL設計等……
內容管理和表現的分離:很多成套的CMS系統沒有把後臺各種子系統和Portal分離開設計,以至於在Portal層的模板表現管理和新聞子系統的內容管理邏輯混合在一起,甚至和BBS等子系統的管理都耦合的非常高,整個系統會顯得非常龐雜。而且這樣的系統各個子系統捆綁的比較死,如果後臺的模塊很難改變。但是如果把後臺各種子系統內容管理邏輯和前臺的表現/發佈分離後,Portal和後臺各個子系統之間只是數據傳遞的關係:Portal只決定後臺各個子系統數據的取捨和表現,而後臺的各個子系統也都非常容易插拔。

內容管理和數據分發的分離:需要要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://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: 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/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/

論壇/社區系統

關鍵詞: BBS FORUM

論壇軟件介紹:
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

主要功能:
  • 能夠通過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/

關於Blog系統的選型,目前主流的基於PHP的包括:
· Nucleus 3.0 www.nucleuscms.org
· pmachine 2.3 www.pmachine.com
· b2evolution 0.9.0.3 www.b2evolution.net
· Serendipity 0.6 www.s9y.org
· WordPress 1.2 www.wordpress.org
· bBlog 0.7.3 www.bblog.com
· pLog 0.3.1 www.plogworld.org
· Simplog .9 www.simplog.org
· Textpattern 1.18a www.textpattern.com
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章