Jive
功能需求分析類似于一個新系統的需求分析。只有了解
Jive
系統實現了哪些論壇功能,才能進一步研究和學習它是怎樣巧妙、優雅地實現這些功能的。
論壇系統是網絡交流的一種主要互動功能系統,如圖
3-1
所示。通過論壇系統,用戶可以共同就某個話題不斷進行討論,通過發貼功能發布新的話題,通過回貼功能回復別人的話題。
Jive
論壇系統可以允許管理員動態地創建新的論壇、編輯論壇的內容、設置論壇過濾信息以及管理注冊用戶等。
圖
3-1? Jive
用例圖
在
Jive
論壇系統中,用戶角色和權限是緊密聯系在一起的。主要分兩大角色:普通用戶和管理員,具體的表現形式是通過權限組合來體現的。管理方面的權限有:
·?????????
SYSTEM_ADMIN
,系統管理員,可以管理整個系統。
·?????????
FORUM_ADMIN
,論壇管理員,可以管理某個特定的論壇。
·?????????
USER_ADMIN
和
GROUP_ADMIN
,用戶和組管理員,可以管理一些特定用戶和用戶
組。
論壇的讀寫權限包括:讀權限,創建一個新主題,創建一個新的帖子等。
Jive
中沒有明確定義普通用戶和管理員角色,而是直接通過以上權限組合和具體用戶直接建立聯系,并將這種直接聯系保存到數據庫中。
在權限不是很復雜的情況下,這種沒有引入角
色的做法比較簡單直接。但由于用戶和權限直接掛鉤,而用戶和權限都可能在不斷地動態變化,那么它們之間由于聯系太直接和緊密,對各自變化形成了限制。所
以,對于復雜的權限系統,引入了基于角色的權限系統,這將在以后章節中進一步討論。
Jive
論壇業務對象主要分為
Forum
、
ForumThread
和
ForumMessage
,它們之間的關系如圖
3-2
所示。
每個論壇
Forum
包含一系列
ForumThread
(主題),而每個主題都是由很多內容帖子
ForumMessage
組成的,這是一個聚集關系。這
3
種對象中每一個對象都涉及到對象數據的創建、編輯、查詢和刪除,這些對象數據分別保存在數據庫中。這
3
個對象對于不同的角色可操作訪問權限是不一樣的,只有系統管理員和論壇管理員可以對
Forum
相關數據實行操作,普通用戶可以創建或編輯
ForumThread
和
ForumMessage
。
Jive
論壇為了實現不同用戶對不同基本對象的不同操作權限,通過設定一個統一的入口,在這個入口將檢查客戶端每次對數據的操作權限,如圖
3-3
所示。
??
圖
3-2?
基本對象關系圖
???????????????????????????
圖
3-3?
入口示意圖
客戶端每次對數據庫的操作,都要經過
ForumFactory
入口進入。在
ForumFactory
中會動態生成一個訪問控制代理
ForumFactoryProxy
,通過
ForumFactoryProxy
檢查客戶端訪問方法是否符合整體權限訪問控制要求。
下面將從
ForumFactory
作為
Jive
論壇系統分析入手,結合設計模式逐步分解論壇功能的具體實現。