January6208面向对象分析与设计课程报告 3. Jive的源代码获取以及安装使用 31.源代码的获取 Jive是一款开放源代码的软件,因此你可以从jⅳe论坛的网站上获得他的源 代码。Jve论坛的网址是www.Jivesoftware.com。从Jive的网站上,我们可以 看到Jive论坛系统现在还被IBM、SUN、SAP、 ORACLE、 REDHAT这样的大型跨 国企业使用。从这一点我们可以看出jve确实是一款设计优秀的软件。 0·回函P如t色公,6·回队“目目 JIVE SOFTWARE learspace X clearspace he enterprise collaboration software people love to use Version 1.10 Released s jive forums Software News D O LISt hea◆SmrM fe tet at A redhat Zimbra 不过需要注意的一点是,从Jive5之后的版本,Jive开始了商业化的运营, 因此他不再开放最新的源代码。不过如果你对Jve最新的源代码感兴趣,你可 以下载到Jive的编译好的文件,并且反编译他。因为jve是用Java编写的,并 且代码没有经过混淆,所以反编译出来的代码具有很好的可读性。 软件学院04级
January 6, 2008 [面向对象分析与设计课程报告] 6 软件学院 04 级 3. Jive 的源代码获取以及安装使用 3.1. 源代码的获取 Jive 是一款开放源代码的软件,因此你可以从 Jive 论坛的网站上获得他的源 代码。Jive 论坛的网址是 www.JiveSoftware.com。从 Jive 的网站上,我们可以 看到 Jive 论坛系统现在还被 IBM、SUN、SAP、ORACLE、REDHAT 这样的大型跨 国企业使用。从这一点我们可以看出 Jive 确实是一款设计优秀的软件。 不过需要注意的一点是,从 Jive 5 之后的版本,Jive 开始了商业化的运营, 因此他不再开放最新的源代码。不过如果你对 Jive 最新的源代码感兴趣,你可 以下载到 Jive 的编译好的文件,并且反编译他。因为 Jive 是用 Java 编写的,并 且代码没有经过混淆,所以反编译出来的代码具有很好的可读性
January6208面向对象分析与设计课程报告 32.Jive的安装和使用 在课程报告的这一部分,我们将主要介绍Jve系统的安装配置过程以及使用 过程。 321Jive的安装配置 安装环境 windwos20005p3 omat503mysq32357并将 mysql, tomcat安装成功 二安装步骤 a)数据库安装, database目录中选择对应数据库如 jive mysql. sql 在你数据库服务器上建立数据库名Jdon方法: create database jdon; 导入 jive mysql.sq方法:修改 jive mysql.sq加入在第一行“ use Ive” 将 JIve msg.sql拷到bin下 b) Tomcat配置.用ib目录下的 mm. myst-2.0.14 bin. jar 作为」DBC驱动程序,将之拷贝到 tomcat/ common/ib下。重启Tom c)将 application目录下所有文件拷贝到你服务器 Tomcat应用目录下, 如 Tomcat/ webapps/ive下 d)编辑WEB-NF/ classes/jve_init. properties 将 jiveHome=C:\ VavasourcejivejiveHome改为你的jve的 jivHome 目录 e)进入http://localhost:8080/jive/admin/setup/设置 如果发现你缺少包,会提醒你。 f)设置数据库 g)"继续“到管理员账号设置 h)全部设置完成后,到管理登陆,这时你可以设置你的论坛了。 3.22jve的使用以疑难解答 7软件学院04级
January 6, 2008 [面向对象分析与设计课程报告] 7 软件学院 04 级 3.2. Jive 的安装和使用 在课程报告的这一部分,我们将主要介绍 Jive 系统的安装配置过程以及使用 过程。 3.2.1.Jive 的安装配置 一.安装环境 windwos2000Sp3,tomcat5.0.3,mysql3.23.57.并将 mysql,tomcat 安装成功. 二.安装步骤 a) 数据库安装,database 目录中选择对应数据库如 jive_mysql.sql 在你数据库服务器上建立数据库名 Jdon.方法:create database jdon; 导入 jive_mysql.sql 方法:修改 jive_mysql.sql,加入在第一行“use jive” 将 jive_mysql.sql 拷到 bin 下 b) Tomcat 配置. 用 lib 目录下的 mm.mysql‐2.0.14‐bin.jar 作为 JDBC 驱动程序,将之拷贝到 tomcat/common/lib 下。重启 Tom cat. c) 将 application 目录下所有文件拷贝到你服务器 Tomcat 应用目录下, 如 Tomcat/webapps/jive 下 d) 编辑 WEB‐INF/classes/jive_init.properties 将 jiveHome=C:\\javasource\\jive\\jiveHome 改为你的 jive 的 jivHome 目录 e) 进入 http://localhost:8080/jive/admin/setup/ 设置 如果发现你缺少包,会提醒你。 f) 设置数据库 g) ”继续“到 管理员账号设置 h) 全部设置完成后,到管理登陆,这时你可以设置你的论坛了。 3.2.2.Jive 的使用以疑难解答
January 6, 2 面向对象分析与设计课程报告] 在完成设置论坛后,我们就可以http://localhost:8080/jive/浏览论坛系 统了 时p 上图给出了一张Jive论坛系统的截图。可以看到Jve论坛的用户界面跟主 流的论坛系统基本类似,符合普通用户的使用习惯。Jive的使用方法也基本 上同普通的论坛系统类似。 如果新建一个论坛或则新发一张贴子会全部出现?????,方法 是修改\ Tomcat41 webapps Vive \ WEB- NFViveHome目录下的 jive config.x m文件,把 serverAl=dbc: mysql:/ localhost/Jive修改为“ serverAl=jdbc:m ysql:/ localhost//lve? useUnicode=true" character Encoding=gb2312”。如果管 理界面中区域设置是乱码(?)的话把 locale jsp中的lso88591改为gb2312 区域设置就不是乱码了。 软件学院04级
January 6, 2008 [面向对象分析与设计课程报告] 8 软件学院 04 级 在完成设置论坛后,我们就可以 http://localhost:8080/jive/浏览论坛系 统了。 上图给出了一张 Jive 论坛系统的截图。可以看到 Jive 论坛的用户界面跟主 流的论坛系统基本类似,符合普通用户的使用习惯。Jive 的使用方法也基本 上同普通的论坛系统类似。 如果新建一个论坛或则新发一张贴子会全部出现?????,方法 是修改 \Tomcat 4.1\webapps\jive\WEB‐INF\jiveHome 目录下的 jive_config.x ml 文件,把 serverURL=dbc:mysql://localhost/Jive 修改为“serverURL=jdbc:m ysql://localhost/Jive?useUnicode=true"characterEncoding=gb2312”。如果管 理界面中区域设置是乱码(??)的话,把 locale.jsp 中的 Iso8859‐1 改为 gb2312, 区域设置就不是乱码了
January6208面向对象分析与设计课程报告 4.jive源代码分析 Jive是一个开放的Java源代码项目。其目标是建设一个开放结构的,强壮的 易于扩展的基于JsP的论坛。在其设计目标的指导下,其结构设计得非常得好,融 合了很多新的观念,比如 Design Pattern,可更换的Skin,可插入 Plugin等等。在 报告的这一个部分,我们将对Jive的源代码进行分析。首先我们会介绍一下Jve的 整体结构;然后我们会介绍Jve论坛中的缓存系统是如何采用面向对象的分析与设 计方法的;最后我们将具体介绍设计模式是如何在Jve中得到淋漓尽致的运用的 41.jive的整体介绍 基于一个◎o的设计原则:面向接口编程,而不是针对实现编程。Jive在设 计的时候,把其大部分的基本对象都设计为接口或者抽象类。在Jve中,基本 的接口有Foum, ForumMessage, Forum thread, Group,User, Authorization 和 Query。我们可以很容易的从这些接口的名字来知道他们的功用,下面的类 图给出了这些类之间的一些静态关系 ≤ nterface≥ -relate 7 Authorization?????7 为什么会都是接口呢?这是基于扩展性考虑的。在Jve给出的实现中,所有 的这些接口, Forun, ForumMessage,User等等,都使用数据库来实现的, 条消息,或者一个用户对应于数据库中的一条消息Jive使用了 DbForum, DbForumMessage, DbUser等类来实现这些接口,通过」DBC来操作数据库,使 9软件学院04级
January 6, 2008 [面向对象分析与设计课程报告] 9 软件学院 04 级 4. Jive 源代码分析 Jive 是一个开放的 Java 源代码项目。其目标是建设一个开放结构的,强壮的, 易于扩展的基于 JSP 的论坛。在其设计目标的指导下,其结构设计得非常得好,融 合了很多新的观念,比如 Design Pattern,可更换的 Skin,可插入 Plugin 等等。在 报告的这一个部分,我们将对 Jive 的源代码进行分析。首先我们会介绍一下 Jive 的 整体结构;然后我们会介绍 Jive 论坛中的缓存系统是如何采用面向对象的分析与设 计方法的;最后我们将具体介绍设计模式是如何在 Jive 中得到淋漓尽致的运用的。 4.1. Jive 的整体介绍 基于一个 OO 的设计原则:面向接口编程,而不是针对实现编程。Jive 在设 计的时候,把其大部分的基本对象都设计为接口或者抽象类。在 Jive 中,基本 的接口有 Forum,ForumMessage,ForumThread,Group,User,Authorization 和 Query。我们可以很容易的从这些接口的名字来知道他们的功用,下面的类 图给出了这些类之间的一些静态关系: 为什么会都是接口呢?这是基于扩展性考虑的。在 Jive 给出的实现中,所有 的这些接口,Forum,ForumMessage,User 等等,都使用数据库来实现的,一 条消息,或者一个用户对应于数据库中的一条消息 Jive 使用了 DbForum, DbForumMessage,DbUser 等类来实现这些接口,通过 JDBC 来操作数据库,使
January6208面向对象分析与设计课程报告 之作为论坛的底层支撑。然而,有时候,或许我们并不想使用数据库,比如我 们想只是使用文件系统来作为论坛的底层支撑,这时候,我们需要做的只是编 码实现了 Forum等等接口的诸如 File froum, File ForumMessage等对象,然后嵌 入Jve中即可,原有的任何代码都可以不用改变!这就是面向接口编程的带来 的巨大的便利 4.2.Jive功能需求分析 Jive功能需求分析类似于一个新系统的需求分析。只有了解Jve系统实现了 哪些论坛功能,才能进一步研究和学习它是怎样巧妙、优雅地实现这些功能的。 山发贴 甘理咕子 当魏贴罕 用户管理 ive用例图 在Jve论坛系统中,用户角色和权限是紧密联系在一起的。主要分两大角色: 普通用户和管理员,具体的表现形式是通过权限组合来体现的。管理方面的权 限有: · SYSTEM ADMIN,系统管理员,可以管理整个系统 · FORUM_ADMN,论坛管理员,可以管理某个特定的论坛。 USER ADMIN和 GROUP ADM|N,用户和组管理员,可以管理一些特定用 户和用户组。 10软件学院04级
January 6, 2008 [面向对象分析与设计课程报告] 10 软件学院 04 级 之作为论坛的底层支撑。然而,有时候,或许我们并不想使用数据库,比如我 们想只是使用文件系统来作为论坛的底层支撑,这时候,我们需要做的只是编 码实现了 Forum 等等接口的诸如 FileFroum,FileForumMessage 等对象,然后嵌 入 Jive 中即可,原有的任何代码都可以不用改变!这就是面向接口编程的带来 的巨大的便利。 4.2. Jive 功能需求分析 Jive 功能需求分析类似于一个新系统的需求分析。只有了解 Jive 系统实现了 哪些论坛功能,才能进一步研究和学习它是怎样巧妙、优雅地实现这些功能的。 Jive 用例图 在 Jive 论坛系统中,用户角色和权限是紧密联系在一起的。主要分两大角色: 普通用户和管理员,具体的表现形式是通过权限组合来体现的。管理方面的权 限有: ·SYSTEM_ADMIN,系统管理员,可以管理整个系统。 ·FORUM_ADMIN,论坛管理员,可以管理某个特定的论坛。 ·USER_ADMIN 和 GROUP_ADMIN,用户和组管理员,可以管理一些特定用 户和用户组