功能性能和設計是衡量軟體的三個基本面,開源Jivejdon是這三者完美結合案例之一。 ivejdon是真正的、徹底的、完全物件導向軟體系統。是目前國內領先的、高水準開源論壇系統(Apache2.0),不斷追蹤與應用全球軟體最新設計理念(DDD等背景PPT介紹)。反映軟體設計流行方向,是國內最接近雲端運算的論壇軟體。 JiveJdon不只是普通論壇,融部落格貼文一身,可以關注人貼文主題和標籤分類,JiveJdon業務目標是Quora。
JiveJdon是依照國外最新設計思想"領域驅動設計"(Domain-DrivenDesign簡稱DDD)、基於JdonFramework自主開發的複雜軟體系統,JiveJdon設計特點:
新建模:模型驅動的設計方式EvansDDD;真正OO設計和程式設計;功能增加容易方便,可維護性強新架構:傳統程式是一個執行緒內的順序同步運行,不適合現在多核心CPU和分散式系統; JiveJdon基於JdonFramework的新的事件並發模型,充分利用多核心多執行緒特點,且因為無鎖,並發更快。
分離的權限體系:使用者認證權限系統與業務核心分離;介面與業務核心分離,資料庫與業務核心分離良好擴充性:效能優異快速,可伸縮性強,可拓展至記憶體雲端電腦平台,依賴JdonFramework的內存最佳化策略能夠應付高並發負載訪問,按這裡查看沒有考慮效能最佳化的案例。
JiveJdon擁有良好的可拓展性,採取完全分離的多層架構,可以透過J2EE伺服器搭載任何資料庫;同時,實現了介面和業務邏輯真正分離,使用者可以任意設計自己的介面模板,不再像現在流行的一些論壇,必須由論壇原始作者提供的模板選擇,JiveJdon採取國際最先進設計水準將免費論壇推向一個新的高度。
JiveJdon不只是一個論壇程序,它的Message模型可以重複使用在網站內容系統、新聞發布系統、電子商務系統、倉庫管理系統、資源管理系統等跨域範圍中(部分已經實現),實現了目前重用研究領域最高層級的靜態重複使用:業務模型重複使用。相關文章:快速適應需求變化的軟體重複使用。競爭目標GoogleAppEnginee。
新建模
Jivejdon是在EvansDDD指導下,依照最新國際模式驅動方式開發,採取OO物件導向分析設計程式設計方式,拋棄傳統ER建模資料表驅動開發方式,可作為學習EvansDDD的完整樣本程式。 DDD領域建模學習按這裡。
JiveJdon核心領域模型圖如下,建模過程來自實戰DDD(EvansDDD:Domain-DrivenDesign領域驅動設計):
新架構
JiveJdon業務層採取了元件動態設計的面向構件架構,能夠簡單方便拓展新功能,不再發生牽一動百的錯誤。傳統業務元件運行順序依照程式設計時所確定的程式碼呼叫順序,明顯缺點是:失去彈性,不能根據實際需求動態配置運行,也就不能更快適應需要的變化;而動態元件定義則是將業務元件之間的關係在運作時指定的。 JiveJdon也展示了一個基於AOP的通用權限實作案例。
JiveJdon元件架構設計如下:
優異性能
JiveJdon基於物件快取設計原理,大幅提升運行速度,並具有良好的可伸縮性,可藉助開源雲端運算記憶體技術Terracotta(兵馬俑)達到分散式雲端運算強大處理能力,具體討論按這裡。
2011年jivejdon4.4的測試樣本(Jmeter可開啟):jivejdon.jmx結果:聚合報告.jmx其最新測試結果如下,由於將資料庫等操作使用非同步事件實現,回帖和帖子修改等寫入性操作都是基於記憶體領域物件實現,效能大大提高:
雲端功能特點
類似google的全文搜索(Compass+lucene一個論壇如果沒有強大搜索,只能成為廢話垃圾桶);基於AOP的通用權限實現;EvansDDD實現案例;所有業務功能插件式管理;界面和內容完全分離;依托Jdon框架高效能和內容即時更新;具有antispamsoftware特點,對頻繁抓取等網路爬蟲或搜尋bot蜘蛛有拒絕功能。