mvnForum,Jforum,天乙社区三个开源论坛的比较 2008-08-14 10:57

字号:    

 

一 mvnForum

mvnForum 是一个开源的,强壮的,容易使用而且易于安装的开源论坛,

 

技术:使用的是Java J2EE技术(Java Server Pages/Servlets)。兼容任何支持Jsp 1.2 和Servlet2.3的 Servlet容器。支持多种数据库MySql, Oracle, Sql Server, DB2,

      PostgreSql, hsqldb , Interbase/Firebird, SAPDB, Sybase,支持 英文,简体中文等

 

设计模式:MvnForum的设计者希望mvnForum不止是一个独立的Java应用, 而是一个可以与任何现有系统集成的插件,因此也可以说mvnForum是一个Web应用的插件(参考包net.myvietnam.mvnplugin.mvnforum)在核心库MyVietnam(或称MyVietnam Webapp Framework)的基础上可以开发各种应用插件,MvnForum只是其中之一。 所有的插件都基于MVC模型,并可以包含任意多个模块 (mvnForum 有两个模块: user(用户) and admin(管理))。 每个模块有一个Controler servlet (例如: ForumUserServlet), 这个servlet调用一个processor (例如: UserModuleProcessor) 来处理这个模块的控制。实际的url到jsp的映射是在一个MapHandler中 (例如: ForumURLMapHandler)。 然后 processor 再调用WebHandler (例如: PostWebHandler), 这个WebHandler 再调用 WebHelper (例如: PostWebHelper) 来处理数据库访问的功能。

这个过程中如果有出错,Processor 会捕捉并跳转到一个出错页面。否则Processor 就会正常跳转到MapHandler里面指定的相应浏览页面。

所有的浏览页面 (*.jsp) 不应该做任何数据处理工作,相反,它应该只是被用来显示WebHandler准备好的数据。这样就意味着如果jsp页面出现错误,那么它就可以被看作一个 严重出错(看每一个jsp文件中指定的出错页面:<%@ page errorPage="fatalerror.jsp"%>这一行)。

 

  功能特点:

  • 私有消息
  • 管理员可以发送公共信息给所有成员
  • 支持Sticky/Annoucement/GlobalAnnoucement 线程类型
  • 在Java 文件中消息本地化
  • 在用户管理中,高级成员可以使用Lucene查寻
  • 支持RSS 2.0 + Atom(包括排序选择)
  • 一周中最活跃的线程在(或最后7 天)
  • 一周中最活跃的用户在(或前7 天)
  • 支持线程状态(正常,禁用,锁定,关闭)
  • 支持论坛状态(正常,禁用,锁定,关闭)
  • 支持论坛类型(正常,个人)
  • 在用户区增加禁止登陆的选择
  • 为更加安全,用户现在可以删除cookie(在登陆页面里)
  • 改善用户管理
  • 基于mvc构架
  • 支持Datasource 配置,只要你的Servlet容器支持Datasource
  • 支持多种数据库
  • 本地化,支持多种语言
  • 支持自动登陆(使用cookie)
  • 管理员区: 管理日志文件在管理员区的这个目录下(view/download/delete/backup),任何日志文件都在这个日志文件夹下
  • 管理员区:新页面显示权限概要
  • 管理员区:显示论坛正常运行时间
  • 管理员区:新页面上,管理员可以改变密码(注意:没人能改变管理员的密码)
  • 管理员区:增加新页允许管理员编辑成员信息
  • 管理员区:增加新页允许管理员编辑freemarker 模板文件
  • 管理员区:新选择送电子邮件到所有成员在些小组
  • 安全特点:除非用户登陆,否则无法浏览电子邮件
  • 安全特点:用MD5加密密码,可提高安全性
  • 安全特点:重新设置密码,需要通过电子邮件(忘记了密码)
  • 安全特点:支持realm认证

mvnForum是自由软件,开源的并且可以在遵守GNU通用公共许可证的条件下发布。这就意味着, 可以免费建立一个属于自己的讨论社区。

 

 

 

二.JForum

JForum 是一个功能强大 ,易于管理的论坛。

技术:它的设计完全遵从MVC设计模式,能够在任何Servlet容器与EJB服务器上运行。而且可以轻松的定制与扩展JForum论坛。

功能特点:

l         Jforum采用MVC架构;Jforum代码结构清晰、简洁;

l         JForum支持多达数十种的多国语言,其中包括简体中文(管理界面没有完全汉化),中文支持还有待完善;

l         Jforum的数据库结构来自于phpBB,支持mysql oracle 等多种数据库;界面是模仿传统phpBB论坛的风格

l         Jforum没有使用Structs、Hibernate等目前流行的框架。

l         JForum没有使用JSP;可以在任何Servlet容器上运行;

l         JForum BSD授权是论坛二次开发的绝佳选择;

l         JForum没有精华贴、会员积分等功能;

l         JForum支持全文检索,采用的是Lucene引擎;

 

设计模式:

        JForum采用的是自己的MVC框架,因此在初次接触的时候可能会有些不习惯,但在熟悉后,该框架还是很容易使用的。在这里只是对JForum的框架进行简单的介绍以利于利用JForum进行二次开发,具体的细节请参考JForum代码。

        JForum的MVC框架有些类似Struts。

        看请求的url地址/bbs/jforum.page?module=recentTopics&action=topRep_Topics_thisDay。

        首先在在web.xml中配置过滤器,将所有以.page的请求交给net.jforum.JForum统一处理转发。请求在交给JForum后, JForum要获取传递过来的一些参数从而决定由哪个模块来具体处理请求。参数module,决定由哪个模块来处理。model的名字和具体class的 对应关心在配置文件modulesMapping.properties里进行配置。当前操作由具体的哪个函数处理由action参数指定。action 就是要执行的方法名,在无法找到指定处理方法时执行list方法。在处理完请求后,调用this.setTemplateName (TemplateKeys.SSOEXT_TOPREPMSGS_PERDAY);方法设置返回页面。其中页面和页面名称的对应关系在 templatesMapping.properties中设定。

        再简单的介绍一下JForum新增功能的开发流程。新建一个Action继承Command。在配置文件中 modulesMapping.properties中增加新建立Action的对应关系。实现Command中定义的list方法,完成在未指定 action情况下的默认操作。在templatesMapping.properties中增加返回页面的对应关系,在类TemplateKeys里增 加返回页面和templatesMapping.properties配置文件里的对应关系。利用this.setTemplateName (TemplateKeys.RECENT_LIST);设置返回页面。

        JForum默认采用的是FreeMarker作为表示层,但如果对FreeMarker不熟也可以采用jsp做为表示层的实现。

 

 

 

三.天乙社区

天乙社区是一套基于JAVA技术的网络虚拟社区。

技术:采用了Hibernate+Spring+Struts的轻量级J2EE框架,

ajax:json+prototype

模板引擎:freemaker

缓存框架:oscache

邮件:org.apache.commons.mail + freemaker

单点登录:cookie+3des

定时任务:spring 的 ScheduledTimerTask,quartz

权限:sturts2.0拦截器+数据库

IP数据包:QQWry.Dat

功能特点

l         跨平台:天乙社区完全具有java语言跨平台的特性,可以方便的运行在windows、linux、unix等操作系统上。

l         支持多数据库:采用了Hibernate作为数据库持久化的解决方案,支持DB2、PostgreSQL、MySQL、Oracle、 Sybase、Microsoft SQL Server、SAP DB、Informix、HypersonicSQL、Ingres、Progress、Mckoi SQL、Interbase、Pointbase、FrontBase、Firebird等多种数据。

l         国际化:采用完全的国际化内核,同时支持多种语言。

l         全文检索:采用Lucene全文检索,并支持完全国际化多语言的全文检索。

l         MVC框架:继续了5.x的Struts框架,但经过优化,WEB端更加简洁高效。

l         集群支持:系统可以运行在集群上。

l         功能方面:大大加强了管理功能,用户可以多样化的定制系统的各项信息,包括用户级别、封锁IP、过滤字等等,论坛功能上主要增加了投票帖、上传附件类型多样、帖子中显示用户信息等等功能。

l         开源:天乙社区从开始就是一个开源项目。

 

使用范围

天乙社区是一个开源软件,版权归天乙软件工作室所有,普通用户可以在保留版权(Powered By BBS-CS V7.x ? 2006-2007)的前提下免费使用、学习,如果需要去掉社区版权标记(Powered By BBS-CS V7.x ? 2006-2007),则需要向天乙软件工作室缴纳人民币2500元的授权使用费。

 

未经天乙软件工作室允许,任何人不得进行相关天乙社区的销售、服务等商业活动。

修改范围:使用者可以对社区源代码进行修改,未授权用户仍需保留版权标记且不能去掉页面内投放的广告,但可以在版权标记后加注修改者信息,授权用户可以去掉版权标记和广告,对与授权和非授权用户的修改,天乙软件工作室同样有取得修改后源代码的权利。

授权联系方式:laoer@vip.163.com

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
网易公司版权所有 ©1997-2009