我们已经知道,有了J2EE基本技术后,还不能立即从事大型项目的开发,还需要有大量针对自己本领域的模式库或者框架软件,因此,越来越多商业公司开始选择或参考开源软件作为二次开发的基础框架,例如在ofbiz等这些开源框架软件为大家不断认识之后,有很多基于ofbiz的应用软件不断诞生。
从这些现象可以看出,一个新的市场真正诞生,那就是以开源软件提供平台基础,将自己的框架力图成为这个领域的标准,从而占领这个市场,因此各种框架产品从各种不同角度涌现出来。
realMethods最近公布了自己的开源J2EE框架http://j2eeframework.com/framework.html,提供了数据库持久化、安全机制、Hook/Event 、性能池等各种实用技术框架。
J道目前也正在逐步完善一套实用框架系统,其中部分可见收费区,在框架真正完成后,将代码从收费中分离出来实现开源(教程和讲解文本继续保持收费)。
还有其它力图提供业务管理整合方案的开源框架:
BIE(http://www.brunswickwdi.com/)提供了类似微软biztalk的数据整合方案,基于BPMI的标准。
ofbiz大家应该知道。
提供基于门户的解决方案的开源软件有:
JetSpeed是Apache(http:// jakarta.apache.org/jetspeed/)组织的一个开源项目,IBM的WebSphere Portal Server正是基于JetSpeed进行二次开发。
在满足门户可定制性的需求上,引入了门户组件概念Portlet,Portlet是一个可插拔的组件,关于Portlet有各种定义,JetSpeed在提交的JSR-168 portlet API specifications对Portlet的定义如下:
Portlet是一个Web组件,可以被容器管理,可以产生动态内容。 Portlet可以很容易地被插入并且运行于一个Web应用中,Portlet是被设计成聚合大量内容的组合页面,举例:同样一个Portlet,根据不同的用户,可以产生不同的实例,这些实例中是根据用户设置包含不同的内容,也就是满足用户的可定制性。
为了实现门户内容的有效管理和监控,JetSpeed的重要内容组件Slide引入了Domain和Namespace方面的概念,对所有资源进行树形结构的控制,在Slide中,Domain是一系列Namespace的聚合,它类似文件系统中的“/”根目录, domain 可以控制在其中登记的Namespace的访问权限以及执行Namespace的初始化和连接等管理工作。
Namespace是个自我独立的有实体内容的容器,它不能包含指向或连接到其它namespace,每个应用系统可以是一个NameSpace,Namespace包含独立的数据和这些数据的安全访问机制。
JetSpeed虽然提供了丰富的Portal技术功能,但是其可定制性比较差,其重要的内容组件Slide也比较难以让人理解,它的安全控制框架与通用的J2EE使用JAAS不相融合,所有这些都造成了在其基础上进行二次开发的难度。
Liferay
Liferay(http://www.liferay.com)代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用Apahce Lucene实现全文检索功能。
Liferay的缺点是它缺乏一个简单清晰可拓展的架构设计,portlet设计显得比较凌乱,进行二次开发有一定的难度.