国内开源企业级开发框架Simpleframework介绍

allbin1983 发布于 2010/11/19 08:11
阅读 1K+
收藏 5

或许从认识Internet那天起,以技术为职业的我们就与Web结缘。从多少了解HTML到迷上Java,从ServletJSPTaglibJSF,从启蒙MVC的时日到Struts及其后百花齐放的Web框架;从JDBCHibernetiBatis,从Web1.0Web2.0,从AJAXJavaFXFlex,从TiAThin Internet Application)到RiARich Internet Application),时至今日,Web世界的变化翻天覆地。但回头看看,似乎有些东西并未改变---Java世界的Web应用开发,需要掌握HTMLJavascriptJava的现实并未改变!多姿多彩的Web框架解决的仅是一段问题而非全程支撑!落地的Java Web应用开发仍需自行整合所需的各类资源(JavaJavascript框架,Web及业务组件、资源)!

值得一提的是,也有一些Web框架有Web全程支撑能力(诸如ZKWicketRIFE等),但有一点无法回避,那就是要掌握它们自己定义的一套标签(JSP标签库亦然),虽简单,但却要随之不断升级、学习,奈何?HTML虽有不尽人意之处,却是标准,非标准的标签,且不说自己喜欢与否,其生命力何在?

  技术消化和积累的阵痛,技术发展和整合资源升级的冲击,与日俱增的强交互、高体验需求的浪潮,促使我们痛定思痛,寻求解决问题的终极之道:按照自己的方式和需要,采用Java技术实现一个属于我们自己的Web应用框架!这就是SimpleFramework诞生的动因。

  SimpleFramework从诞生之日起,就立足解决现实问题。已经涉及的企业软件有办公自动化、项目管理、内容发布、MISERP、各类行业业务系统等,涉及的行业包括电信、公安、税务,航运,电力,出版,教育等系统。正是这些应用,促进了Simple的成熟和发展。实践推动创新,Simple掌握的技术已超越国内,能和世界一流的产品看齐。

SimpleFramework是采用Java语言开发,基于Servlet Filter后处理模式技术实现的Web应用级框架。

SimpleFramework最早来自工作流Web客户端的自定义表单功能。当时考虑过采用标签库或xform来实现,不过为了避免表单设计器产生的数据和jsp混在一起,决定了抽出一个XML文件来描述表单的元信息,同时为了更好的兼容标签库和Struts等基于Servlet的技术,最终使用了Filter直接拦截被响应到浏览器的HTML流,这个版本就是SimpleV1了。

SimpleV1仅处理了表单,在使用过程中逐步发现其实完全有能力处理整个请求页面,如果同样用分离的XML去描述相关的业务,会极大减轻开发工作,更重要的是,可以定义一套基于XML描述的组件规范,让业务上有一个代码级的积累,于是有了SimpleV2。也许有人问,SimpleV2会不会成为一个和Struts一样的东西呢,这完全是没有必要的担心:

1.   Struts针对请求,而SimpleV2针对组件

2.   SimpleV2体现了一种描述(声明式)的编程方式

3.   SimpleV2不仅简化客户端,同样也大大简化服务器端

4.   业务组件库避免大部分重复开发

5.   用户的代码量大幅减少,这也导致系统复杂度降低,性能更高、更安全

6.   SimpleV2兼容性更强,因为解析的基础是HTML,而不是标签库

    SimpleV3 解决以下几个缺陷:

1.   组件的思想有了,但规范定义的不开放,说白点,我们团队能开发组件,开发人员不能快速上手,没有统一的规范。

2.   复杂组件做的过于复杂,一些本应该靠组件之间的组合形成的组件,我们自己在开发的时候,反而抛弃了

3.   随着技术的发展,特别是浏览器的提速,在Web开发领域很多原本服务器要做的事,现已经移植到了客户端

4.   只提供javascript一种渲染方式,可能大家不明白,举个例子,比如生成一个表格,SimpleV2首先会生成一段获取表格的ajax代码给浏览器,浏览器根据js再一次发送获取表格的真正请求,有些情况感觉是很先进的,异步装载嘛,但实际上也并非用户要的,而且作为框架技术,不应该仅此一种方式

5.   数据访问层优化,主要达到以下几个目标:

  1. 为组件访问DBLucenseNo-SQL提供一致的编程接口
  2. bean的获取提供更灵活的架构,比如:通过配置决定是基于数据库的绑定方式、还是基于缓存的,或者分布式缓存的
  3. 更高效,适合超大数据

·   SimpleFramworkV3已完成情况

经数年发展,SimpleFramework Version3已完成框架核心架构的重构,以及核心组件、基本组件、机构组件等的资源整合和实现,可支撑完整的Web应用开发,或作为其他开源框架(诸如Struts)的补充。

·   SimpleFrameworkV3目前发展重点

1.以内容组件为基础,走企业应用组件和互联网社区应用并重支撑的发展模式

2.以机构组件、系统组件、内容组件为基础,为企业应用提供可重用的业务组件

·   SimpleFrameworkV3的流程组件

SimpleFramework2中原已有完成的企业级工作流系统,鉴于目前SimpleFramework3的发展重点和核心架构升级,将在后续的阶段中择机升级,以提供完整的流程业务支撑组件

 

 

主题

组件

应用方向

类别

内容

状态

核心组件

AJAX请求、表单提交等

 基础应用

增强

完善Include机制,以HttpClient仿真AJAX请求,减少网络流程,缩短响应时间

完成

基本页面组件

表格、树等

基础应用

增补

整合其他页面组件资源

完成

机构组件

机构、用户、角色等

基础应用

完善

权限增强等

完成

内容组件

评论、主题等

论坛、博客、空间等

相关功能

查询等

进行

流程组件

工作列表等

企业级应用(HRPMSOA等)

新增

进行

 

 

 

 

加载中
1
初级程序员
初级程序员

虽然没有用过~ 看楼主这么辛苦的在这里我javaeye上 推广!顶一个,必需的!

0
该用户已被和谐
该用户已被和谐

好像一直反复的发,没人顶的样子,为什么呢?

0
LMFamily
LMFamily

顶顶,需然一看到框架就头晕

0
崔钢
崔钢

名字虽然叫  Simple,但其实挺复杂的。最好掰开成一些相互独立的组件。

0
puras
puras

虽然暂时不会使用,但还是要为这种开源的精神加油!

0
宋超
宋超

内容中部分单词拼写错误... 说明了一些问题...

0
simplesns
simplesns

引用来自#7楼“宋超”的帖子

内容中部分单词拼写错误... 说明了一些问题...

Lucene  ... 这是拷贝的,sorry.

返回顶部
顶部