您现在的位置:首页 > 产品与服务

NFS RAP框架

1、RAP简介
      RAP框架为恩菲斯公司自主研发的J2EE快速开发框架,主要基于当前流行的三大Java开源框架(Struts2、Spring2、Hibernate3)进行整合、改进和延伸。采用面向方面设计结合“习惯约定优于配置”思想构建通用Web开发框架,并已成功应用于多个项目开发。实践证明本框架降低了开发门槛、提高了开发效率、确保了开发质量。

 


2、B/S三层架构

 

       
B/S三层架构图


系统架构特点:
 跨平台,支持异构网络;
 支持集群,良好的横向扩展能力;
 支持多种Web服务器,如Weblogic、tomcat、JBoss等;
 支持多种数据库,如Oracle、Mysql、SqlServer等。

 

3、RAP功能架构

       
RAP功能架构图


通用功能介绍:
 页面主动装饰
 自动记录浏览历史记录
 用户管理
 权限管理,采用用户—角色—权限管理方式,基于AOP权限控制
 基于AOP缓存,支持多级缓存、集群缓存
 丰富的自定义JSP标签库:分页标签、日期标签、权限标签等
 富客户端在线编辑
 业务操作回退
 基于JQuery自定义的Ajax组件库
 基于浏览器的数据库操作窗口
 基于浏览器的文件操作
 数据库备份功能同时支持定时和手动
 自动监控系统性能

 

4、配套代码生成工具
自主研发的代码生成工具,基于Eclipse插件形式,使用方便,主要功能如下:
 生成JPA注解
 生成基本的增删改查代码

 

5、RAP的优势

 提高开发质量和开发效率。除了一般信息管理系统通用组件功能外,框架还针对社保行业应用积累了很多实用的组件,可以直接复用,如:用户、权限管理,事务管理,业务回退,性能监控,分页查询,控制重复提交等等。
 先进性。软件架构吸收了一些先进的开发理念,如面向方面编程、习惯约定优先于配置等等,确保软件架构的可扩展性、开放性和易用性;技术上除了选择了当前最流行的先进技术组件外还使用了较高的JDK版本:JDK1.5+,JDK1.5、1.6逐渐会成为Java开发的主流,JDK1.4未来可能很多操作系统不再被支持。JDK1.5较JDK1.4语法上增加很多新的特性,如:范型(generics)、注解(annotaions)、可变参数、自动拆箱/装箱和枚举类型(Enum)等等,这些新的特性提高了开发效率和代码质量,同时也为实施一些先进的开发理念提供了便利,而且Java虚拟机机制做了重大改进,Java程序运行性能有了很大提升。
 降低开发门槛。框架利用面向方面编程解决非核心业务横切面:权限控制、事务管理、缓存等,使开发人员可以专注核心业务开发系统。
 良好的可扩展性。采用基于面向方面的多层架构,可以在不改变或少量修改原有系统的基础上实现业务修改和新增,快速适应业务的频繁变更。
 开放性。提供多种数据交换共享方式,支持Webservice,数据库中间表和多种文件格式(.dbf,.txt,.xls等)报盘/回盘。
 数据安全性。通过统一的权限控制,确保数据读写安全。同时可对敏感数据进行加密。
 跨平台性。采用标准的Java技术实现了与平台无关性,同时支持Windows、Unix和Linux等操作系统。

 

6、RAP构建基础

 Struts2是当前最为流行的、先进的MVC框架,它是以Webwork的设计思想为核心,吸收了Struts1的优点。
 Spring2是当前最为流行的IOC容器,Spring通过反转控制装配系统各组件对象,统一管理这些对象的生命周期,同时还支持面向方面编程。
 Hibernate3是当前最为流行的O/R映射(ORM)工具,主要是封装面向对象语言(Java)访问关系型数据库(支持绝大数数据库,如Oracle)细节,提供一套完整的面向对象语言API,易用性更好,功能更强大。同时也提供了自动建表、一级缓存、二级缓存等非常实用的功能。
 JPA(Java Persistence API)作为Java EE 5.0平台标准的ORM规范,将得到所有Java EE服务器的支持,由EJB3.0软件专家组开发,作为JSR-220实现的一部分。JPA的宗旨是为POJO提供持久化标准规范。目前Hibernate 3.2、TopLink10.1.3以及OpenJpa都提供了JPA的实现。
 JBPM4 是一个灵活可扩展的工作流管理系统。作为JBPM4运行时server输入的业务流程使用简单强大的语言表达并打包在流程档案中。JBPM4将工作流应用开发的便利性和杰出的企业应用集成(EAI)能力结合了起来。JBPM4较以前版本增加了流程虚拟机(PVM),做了重大改进。
 Freemarker是一套功能强大、先进的模板引擎工具,而且效率极高,使用它生成Html代码、报盘文件等方便而且高效,可配置易于修改。
 Sitemesh是一个网页布局和修饰的组件,实现页面的主动装饰,页面开发人员只需关注业务功能显示部分。利用Sitemesh可以将网页的内容和页面结构分离,以达到页面结构共享的目的,帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。
 jQuery 是一套流行的开源JavaScript 库,同时还具备丰富jQuery插件,它有助于简化 JavaScript™ 以及 Asynchronous JavaScript + XML (Ajax) 编程。RAP框架中基于它封装形成了一套增强型Javascript库。


7、习惯约定优于配置

RAP框架吸收ROR核心思想:习惯约定优于配置,并力求简洁。
基于RAP框架开发遵循的约定,并通过工具辅助(如:Findbugs、CheckStyle)严格执行
  •   Java开发的共同约定
  •   Sun核心包的方法命名规范
  •   于RAP自定义的一套编码规范和约定
实现框架的零配置
  •   研发人员不用编写任何Struts配置文件
  •   通过特定命名约定,Spring容器自动组装Bean对象
  •   O/R Maping采用JPA的注解实现,通过代码工具自动生成

代码风格统一,提高了代码质量和开发效率。


8、面向方面设计

       采用面向方面思想,从纵横两个方向构建业务系统。纵向,采用传统的面向对象思想,为核心业务构建多层系统架构;横向,依照面向方面编程将权限、事务、缓存、日志等非核心业务操作抽取成横切面,切入纵向核心业务层,从而构建完整的业务系统。

8.1 纵向核心业务分层设计
       下图所示是当今信息系统的通用分层架构图。从概念上分为持久层,业务层和表示层。在这三层之间,有时还会加入一些中间层,在不同层次之间实现更彻底的脱耦操作。 
 

纵向核心业务分层架构图

 

 表示层:系统最终用户使用的界面,基于浏览器的瘦客户端。表示层的设计尽量减少与后台的交互,并且界面符合用户的使用习惯。
 交互层:表示层和业务层之间的交互管理,提供用户层的展现逻辑和对业务层的访问接口。也包括会话管理、用户输入的逻辑校验等功能。
 业务层:根据业务需求进行抽象的业务对象模型,包括业务规则和逻辑处理的实现。
 资源访问层:对系统的各种资源和外部系统统一的访问逻辑的实现。在资源访问层不作语义转换,只实现纯粹的资源访问。
 持久层:各种信息系统资源,例如:数据库系统(RDBMS)、文件系统等。

 

8.2 非核心业务面向方面设计
       RAP框架采用了比较先进的技术,JDK1.5+中注解(Annotation)和Spring中的IOC容器,为面向方面编程提供技术保证。RAP框架将权限控制、事务管理、缓存、日志抽取成横切面,实现了与核心业务编码的彻底剥离,解决了传统的面向对象语言的代码纠结问题,让大多数开发人员专注业务编码,减少了程序员开发的负担。

 

9、成功案例

 重庆市农民工社会养老保险系统(重庆市社保专网);
 全国高等教育教材网(www.tbook.com.cn) ;
 恩菲斯销售管理平台(公司内部系统);
 恩菲斯办公自动化系统(公司内部系统);
 重庆市农转非审核查询系统(重庆市社保专网);
 重庆市城乡统筹社会养老保险系统(重庆市社保专网);
 重庆市高交会网站(www.cchtf.com);
 重庆市统战部OA系统(重庆市统战部内部专网);

服务电话: 023-86259700 服务邮箱: support_cq@nfs-china.com 重庆恩菲斯软件有限公司 Copyright © 2009 渝ICP备08003872号