基于元数据和RIA的Web应用开发框架

在现在的软件业界,我认为很大的问题是开发人员甚至是公司从来都没有真正的把用户当成上帝,当然,这和目前业界的项目有很大的关系,例如项目通常都是时间非常的紧张,N多开发人员投入只能尽量去保证功能、需求的实现,在界面以及交互上往往不是那么的重视,但其实业界很多成功的产品都证明,功能往往不是决定性的因素,界面和交互才是用户最为重视的,而且通常也是打败对手的重要地方,为什么项目中不在重视功能的同时去重视界面和交互呢,大都是因为现在的框架在界面和交互变化的支撑上都不是很好,导致了每次界面的改动都要花费很大的成本,而交互上则一方面是现在交互设计师急为的缺少,另一方面是还没引起企业足够的重视,所以其实我觉得在web应用开发框架上最大的目标就是为“把用户当上帝”提供足够的支持。
遵循“把用户当上帝,重界面和交互”的原则,本文从愿景角度阐述对于Web应用开发框架的期望,同时从框架角度的基础设施以及非功能性需求上对整个Web应用开发框架给予说明,最后简要的说说在架构层次的关注点以及可选择的技术体系。
1. 愿景 
   ★ Html的纯洁性 
     这点就是体现“把用户当上帝,重界面和交互”的原则,在保证了Html的纯洁性的情况下,就可以在功能和页面交互未改变的情况下无需编码直接使用UI Design形成的html,形象的一个例子就是可以在用户仅仅需要改变页面的显示样式、布局的情况下,只需要直接让UI工程师设计然后切割形成html放到系统中就可以直接用了,^_^
   ★ 无编码的实现CRUD型的应用
    可以直接通过简单的配置生成CRUD形式的应用,这点还是从一个快速开发的角度来考虑的。
2. 基础设施 
  基础设施是框架的重要组成部分,作为框架就需要提供一定程度的基础设施。
  从愿景角度去看,Web应用开发框架应提供可绑定数据源的Web控件、对绑定的数据的操作的支持、页面元素交互行为的支持、IDE/Web管理端。
  首先说下几个概念,数据源是指持久化性质的源,如数据库、文件;页面元素大可以是页面,小则可以到页面上的任意域,如文本框;交互则是指用户与界面产生的互动。
  ★ 提供基础的可绑定数据源web控件 
      在这点上至少要提供树控件、丰富的表格控件、Tab页控件以及菜单控件,这些控件绑定的数据源既可是文件、也可以是jdbc形式的数据源、同样还可以是ORM形式的数据源。   
  ★ 提供对绑定的数据源的操作的支持
      提供对绑定的数据源的通用操作的支持,减少重复劳动,如支持新增、编辑、删除、分页、查询、统计分析、数据校验以及数据实例的权限控制。 
  ★ 提供基础的页面元素交互行为的实现 
      提供对页面元素交互行为的支持,如下拉时需要下拉出绑定了数据源的web控件等等,根据之上定义的一个观点,元素可大至一个页面,小至一个文本框,也就是说可以随意定义页面中的交互行为,在交互行为上至少支持下拉、弹出、链接以及Continuation四种形式。  
   ★ 提供IDE/Web管理端 
     IDE/Web管理端的提供主要是为了提高框架的可用性,通过管理端可导入一个html,对html中元素进行动态元素的绑定设置以及交互定义的设置。
  在提供了这些基础设施后就可以通过这套框架的快速的将UI Design产生html转化为具备一定功能的系统运行界面,并且不对HTML产生任何的污染。
3. 非功能需求 
  作为框架而言,非功能需求也是非常重要的部分,尤其是象框架的扩展性、开放性、智能性、稳定性以及高效性方面。
  ★ 扩展性 
    在扩展性上采用插件以及扩展点两种策略来提供足够的支撑,插件为框架的基础设施的扩充提供支撑,扩展点为基础设施本身的扩展以及灵活提供支撑。
  ★ 开放性
     在系统的开放性上一方面采取提供AOP的机制,使得对于系统的流程过程可控。
     另一方面由于元数据表达往往容易造成信息不完整的情况,在扩展性上特别要保证系统各层次的可替换性,这样即使在框架无法支撑的应用中也是可以在使用框架的基础设施的同时自主开发部分的功能。
  ★ 智能性 
    智能性主要在元数据的智能性上以及框架拥有学习和记忆的功能上。智能性已经逐步的成为了框架的重要考评点,越智能的框架用起来必然也就最为方便,而拥有学习和记忆能力的框架就更强了,^_^
  ★ 稳定性 
    在稳定性上采用微核机制来提供保证,在插件崩溃的情况下仍然保证系统核心的稳定运行。 
  ★ 高效性 
    高效性方面主要采用缓存机制加以实现,同时需要考虑框架在可伸缩性方面的支持。 
4. 架构关注点 
  根据框架的基础设施以及非功能需求的简单描述,在框架的架构层次最需要解决的是这么一些问题:
  ★ 微核机制 
     微核机制在目前已经有N多的方案,在目前考察的情况下决定采用eclipse的equinox。
  ★ 插件策略
     在采用equinox的情况下这个问题自然解决。 
  ★ 扩展点策略 
     在采用equinox的情况下这个问题自然解决,只是在设计时也仔细的考虑基础设施的扩展点的定义。 
  ★ 元数据的定义
     元数据的定义需要围绕基础设施而进行,同时重点在于保持元数据的可扩充性,另外在系统的层次的开放上也需要定义到元数据级别,也就是说假设现在系统的层次为command--service,那么开发人员可以选择在某个模块中替换command或者service的实现。 
  ★ 缓存机制策略 
     缓存机制着眼于前端的页面缓存、后端的处理缓存和数据缓存。
  ★ Html无污染实现策略 
     Html无污染的实现策略采用Decorator Html的方式,采用xml描述html中元素的方式,引擎解析形成最后的页面的形式。
  ★ 控件绑定数据源的策略 
     控件在绑定数据源上着眼于提供对于数据获取形式的支持,文件形式、jdbc形式、orm形式等等,另外则是在控件对于数据源的展现以及控件本身的交互控制上,同时要特别注意控件的扩展性以及开放性。
  ★ 数据源操作统一实现的策略
     形成统一实现的策略,同样的需要考虑扩展性和开放性。 
  ★ 交互行为实现的策略 
     在下拉、弹出、链接以及Continuation的实现上考虑采用适当的策略,同样的要重点考虑扩展性以及开放性。

这个框架有人感兴趣吗?如有志同道合的人的话准备拉起队伍,^_^

posted on 2006-04-26 21:06 BlueDavy 阅读(2687) 评论(16)  编辑  收藏 所属分类: @RIAWork

评论

# re: 基于元数据和RIA的Web应用开发框架 2006-04-26 21:38 garnoopy

问一个问题,Web控件采用哪种方式?服务器端解析还是客户端解析?  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-04-26 21:47 BlueDavy

准备采用客户端解析的方式,就象我以前的一篇blog说的,客户端解析唯一的焦点问题只是提供类似velocity for js的东西..  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-04-26 23:05 JC

和我现在的一个项目MetaDrivenUI很相似 ^_^
非常有兴趣加入。  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-04-26 23:15 sharkmao

留名  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-04-27 01:38 garnoopy

yeah!我一直都想做的。
准备队伍吧  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-04-27 10:11 Harryson

支持,希望中国也有更多更好的框架出来.  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-04-27 10:38 郁也风

强,这东西看着还真挺晕的,要不你也带俺学学?  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-04-27 12:47 BlueDavy

^_^,成立了专门的群,暂时命名为RIAWork,欢迎大家申请加入讨论关于RIAWork的一切:
QQ群号: 20881998  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-04-27 16:29 IUSR

Wow, cool~
我原以为你会做一个基于Equinox的东西~  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-04-27 16:45 BlueDavy

^_^,这东西就是基于eclipse的equinox...  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-04-27 20:26 IUSR

ft,没仔细看后半部分……
好强的项目~关注。  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-05-11 19:25 贝隆夫人

支持  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-06-12 11:12 绿色使者、绿色心情

挺好的想法,现在进展如何了?  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-06-12 13:10 BlueDavy

正在进行网站的建设!  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-08-15 21:05 robbie

但从你对“基础设施”的描述来看,我几乎认为是在描述JSF,呵呵,开个玩笑,对eclipse的osgi实现一直很感兴趣,RCP方面的应用就不用讨论了,一直在关注equinox在server端的发展,虽然提供了serlvet及jsp的支持,但仍不太理想,希望能释放出更多的关于riawork的架构性信息,因为如果本身基于equinox的话,这个框架的成功与否其实不在于Framework的底层了,而是在equinox之上,能提供什么样的组件?构件?界面复用单元?功能利用单元?因为从前到后目前都已经有可取的框架了,ssh 很想知道riawork的进展:)  回复  更多评论   

# re: 基于元数据和RIA的Web应用开发框架 2006-08-16 10:30 BlueDavy

@robbie
说的没错,呵呵,RIAWork基于Equinox,必然会在其之上首先构造出B/S的基础框架,对于RIAWork的具体介绍在后续将会逐步推出,在下个月会推出关于RIAWork的网站、规划、架构以及相关的一些建设情况的通报。

目前正在完成一个基于Equinox的软件管理框架,这个框架将在不久之后开源,虽然没有什么很强的功能,但主要是希望做为一个Equinox的practice的展示,希望能引起国内更多的人使用Equinox。

多谢大家的关注,目前www.riawork.org网站正在建设中,期待大家的意见!  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

公告

 









feedsky
抓虾
google reader
鲜果

导航

<2006年4月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

统计

随笔分类

随笔档案

文章档案

Blogger's

搜索

最新评论

阅读排行榜

评论排行榜