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
论坛系统分析入手,结合设计模式逐步分解论坛功能的具体实现。