![]() |
JFoxSOAF(J2EE面向服务的应用框架)(by huihoo.org JFox项目组 Allen整理) 初稿:Frank Ling([email protected]) 补充,建议:拉尔夫, Huang Gang, founder_chen, JacobMee, Young Yang提出了很多有价值的意见建议 目前的现状:市场有有很多的商业的开源的J2EE 应用框架解决方案,我们的JFoxAF要做好与它们的兼容,或能将他们很容易的插入我们的JFoxAF的框架体系,其思路可采用eclipse的集大成的做法。将其他的方案,我们做个封装让他们可插入JFoxAF的系统框架中,这样可保证大家可以继续使用这些框架。 在此,感谢提出Huang Gang 提出的patter-oriented framework和domain-specific framework的观点 patter-oriented framework的用户应是J2EE应用编程者,要求熟悉design patter,必须手工实现所有业务逻辑;而domain-specific framework的用户是系统分析员,要求熟悉领域知识,业务逻辑可复用,特殊的业务逻辑需要编程员手工实现。 我们可分阶段来实现两种类型的框架,对应两个版本:JFoxAF1.0,JFoxAF2.0 第一阶段实现patter-oriented framework,也就是我们通常意义上的J2EE应用框架 第二阶段实现domain-specific framework,我们可从ERP/CRM/SCM入手,为这些应用提供行业插件,如给CRM提供销售,服务,市场等基础插件(完成与应用服务器之间的一些数据,逻辑层面的交互,具体的CRM功能实现放在Link3项目中),这些插件最终可能会以Mbean的形式出现,最终通过JMX框架进行统一管理。 ![]() JFoxAF的目标是做为一个比较通用的框架结构,不仅适用于JFox,同样也适用其他的J2EE应用服务器平台:如Jboss,JonAS,WebLogic等 另外,我们的JFoxAF要实现和遵循的标准有: 1.JSTL :JSP Standard Tag Library, http://java.sun.com/products/jsp/jstl/index.html http://java.sun.com/webservices/docs/1.0/tutorial/doc/JSTL.html 包含的库有: Core: XML: Internationalization: SQL: Functions 前缀分别为:c , x , fmt , sql , fn taglib http://www.orionserver.com/taglibtut/ 2. J2EE的蓝图,Core J2EE Pattern Catalog http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html
3.JFoxAF 框架结构![]() JFoxAF功能概述 表现层: 接口:JFoxAF_View 可能采用的方式:封装以下几种方式: 1.Apache Struts, action和jsp通过session的实现. 2.JSF, Apache Struts的升级版 3.Jnet, .Net的Java实现. 4.Turbine是很好的Servlet Framework,Turbine是否应该集成在这个层次.? 提供统一接口。 ![]() 或开发一套自己的表现方式,但投入比较大。 逻辑层: 接口:JFoxAF_Model 1. 角色,用户/组权限 A rule engine may be viewed as a sophisticated if/then statement interpreter 2. 文档管理 实现信息的采、编、发、管理。 3. 工作流,实现流程在不同角色间的跳转 The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules 数据层: 接口:JFoxAF_Data 实现和封装以下机制:EJB CMP and BMP,JDO,J2EE DAO 具体实现的功能应包括: 1.Data Source Pooling Management 2.Transaction Management 3.O-R Mapping. 4.对数据对象的调用. 服务(其他实现):(这部分建议在JFox中核心中实现) 1. JMX管理所有服务 2. 资源池:数据库连接池,JMS,LDAP (1) LDAP (2) DB (Oracle, DB2, mySQL etc), ConnectionPool Manager (3) JMS 3. 安全管理 (1) Role-based access control (2) Database driven security (3) LDAP driven security 4. 日志服务 (1) Log4j (2) JMS based logging (3) JDK1.4 logging 5. Hook/Event机制 ![]() ![]() 6. ValueObject 缓冲(Cache) 7. JMS/MDB/Command/Task 调度机制 Provide pre-define task service at run-time 8. 配置管理 Property file driven configuration (xml property file, etc ) 。。。 以上大部分功能已经在JFoxKNL实现,核心框架基于面向服务的编程思想构建 http://www.huihoo.org/jfox/jfoxknl/index.html 一些框架实现
如果想实现J2EE Application Framework, 那么让我们先看看J2EE Core Pattern, ![]() J2EE Core Pattern 明确的分为数据层,逻辑层和显示层. 数据层: Data Access Object, Service Activator 逻辑层: Session Fa?ade, Service Locator, Transfer Object Assembler, Vaue List Handler, Composite Entity and Transfer Object. 显示层: Business Delegate, Service To Worker, Dispatcher View, Front Controller, View Helper, Composite View and Intercepting Filter. 意见,建议一些意见,建议的整理Jacob Mee的一些建议: 1. 简易类Struct实现(Struct没用的东西太多,TagLib应全部去掉). 2. 若不是我们的类Struct实现,用能和Struct无缝连接. 3. 可配置主流JDO(Castor,OJB等) 4. VO生成器实现(或者搞个Opensource的) 5. 调试功能增强(HTTP,JDO,ACTION等各处调试信息输出) 6. EJB功能接口扩展(EVENT,可快速支持EJB) =============下列为其他需要使用组件 7. Cache. 8. Pool 9. Logger 10. Configuation. |