架构师谈Ajax框架:它不是泡沫


Ajax正逐渐吸引全世界的眼球!但AJAX是怎样应用到网页设计和开发中的,它究竟有什么神奇魔力?实际上,Ajax是多种技术的综合,它描述的是从基于网页的Web应用到基于数据的应用的转换。

有幸的,近日访问到目前正主持自己Ajax框架研发的一位架构师,leebai。

leebai,系统架构师,高级程序员。93年大学毕业后开始从事软件工作,参与或主持过二十多个软件产品、软件项目的研发。2000年转到Java  Web应用开发,作为IBM独立软件开发商,长期跟踪IBM、SUN的Java技术发展,熟悉J2EE系列规范及技术,对Web软件开发有很多自己的见解。目前在整理“中客户”Ajax开发框架的代码和文档。

你们是什么时候开始研发这个项目的?怎么想到用Ajax?是因为目前的Ajax热潮吗?

Ajax热潮给我们带来了新的机会,但不是因为热潮才开始研发的。

事实上,早在2001年初,我们便开始了关于这项技术的开发与应用。只是最初没有命名,它的名字不是“Ajax”。

最早,从大量的实践开发经验中,我们提出了相对于“胖客户”和“瘦客户”应用程序的一个 “中客户”应用程序概念。

“中客户”应用程序中,客户机(浏览器)向应用服务器发送业务请求(同一般的Web程序),应用服务器返回结果数据(不是可显示的页面),客户机负责解析并显示结果数据。相对于传统的“瘦客户”Web程序,“中客户”程序的应用服务器不负责用户界面的构造,这一工作由浏览器来做,所以客户端“胖”了一些。

从上面对于“中客户”应用程序的定义和分析来看,它的核心与Ajax异曲同工。在有了明确目标后,这个项目就进入的研发阶段。但由于种种原因,这个技术并未在业内推广,庆幸的是已经在该公司的众多软件项目中得到普遍应用。

终于,2005下半年掀起的Ajax热潮让这个项目重新被肯定。目前,整个团队致力于这个Ajax的框架,已经到了平台移植测试阶段。

谈到在研发中期,没有得到应有的认可,李先生神色颇为惋惜。是的,由于缺乏某种环境,这似乎成为习惯,什么技术国外有了热了,我们这边的才开始认可。

无可否认,在大环境下,要自主创新中国软件和开发者们还有很长的路要走。

关于这个Ajax框架,请您给详细介绍一下,它的功能究竟在哪里?

这是我们自主开发的一个完整的Ajax框架,包括前端界面组件和后端应用框架,以及一组工具程序。

前后端框架是基础,它封装了B/S开发过程中的大量技术细节,使开发人员能够更专注于动作业务逻辑的开发(对后台)和用户界面流程的开发(对前台)。基于该框架开发时,开发人员可以不考虑数据库连接资源、事务、异常处理、访问权限、数据验证、访问日志等等常规问题,因此可以写出很简洁的代码。

工具程序的作用是辅助系统开发和维护,包括系统控制台、数据库管理器、文件管理器。工具程序本身也是基于框架开发的,因此同时也是Demo程序,在框架自身的接口发生变化时,工具程序也要重构,同时起到验证框架的作用。其中的数据库管理器和文件管理器是具备通用功能的程序,即使不采用该框架开发自己的应用,也可以用来管理远程服务器上的文件和数据库。

使用这样的框架,由于只是返回一个数据包,服务器承载量自然下降,那么服务器就真正成为了“服务”。更准确来说,浏览器和应用服务器的职责因此分割更为明确、合理,浏览器完全负责界面操作,而应用服务器只处理具体业务逻辑,这样不但系统性能会有很大的提高,同时用户的体验度也就更高了。这就是Ajax带给我们最大的优势啊!

另外,从安全方面讲,在该框架下,对服务器的所有请求都是含义明确的“Service”请求,因此服务器对HTTP请求的管理变得简单,可以更严格地、没有遗漏地对所有请求进行控制,因此服务器的安全性可以很好解决。另外,使用系统工具管理服务器上的数据库和文件时,只需打开一个基本的Web端口,其他FTP端口、数据库远程管理端口都可以关闭,即提高安全性又方便系统远程维护。

由于已经是应用开发者,那么您对当前Ajax技术的热潮怎么看?它会是泡沫吗?

我们大家都已经意识到,Web服务的方向已明确。从现阶段来看,Ajax可谓Web2.0的核心之一,是最重要的部分!

Ajax使Web应用的交互有了质的飞跃,用户体验度的提高,在Google已经有了最明确的显示。而目前与Ajax类似的技术在开发上还存在着那种这种问题,所以,只要Ajax的核心不变,那么Ajax技术的应用前景良好。

从我们的经验来看,目前的Ajax开发必须有一套标准界面组件,比如用于导航的TreeView,用于列表数据的ListView,以及各种Menu,各种复合表单组件等等。在没有标准界面组件的时候,大家各自为战,不但开发代价太高,应用也受到局限。Ajax界面组件好比汽车的部件,而DOM、DHTML则是汽车的零件。而现阶段的情况就是零件太多,功能太强,而且已经接近标准化;但部件开发都是各显神通,数量太少,功能有限!号称Ajax的框架很多,其中已经实现各种通用界面组件的极少,目前大多数Ajax应用开发相当于用螺丝、齿轮、钢板组装汽车,所以会得出Ajax开发难度大、成本高的说法。

只有好的Ajax界面组件才能带来真正的体验效果,而不是基本的DOM或DHTML。所以一旦W3C制订出适合的标准,那么组件就可以形成,之后的应用也更简单,不但能减少代码的冗杂,还能让管理更清楚明确。

当初微软在IE4上实现功能强大的DHTML的时候,已经为今天的Ajax热潮埋下了伏笔,只是由于国际大公司的市场竞争导致的标准指定的迟缓,以及其他浏览器厂商与微软的实力差距太大,导致DHTML技术未被普遍支持,才使客户端技术长时间不受重视,现在主流浏览器的DOM功能已经足够标准和强大,是到了回归技术常轨的时候了。目前Ajax需要的一套标准界面组件,如果标准不能被很快的制定出来, 又某家市场领先的公司实现了功能强大的标准界面组件,那么Ajax实现技术的混乱还需要持续很长的时间,就像当初的DHTML和DOM一样,那将又是市场的悲哀。

此外,Ajax模式下,服务器端的开发应该是什么样子,应该用什么样的框架支持这种“只向浏览器返回数据”的服务请求,也很少被开发者重视。其实Ajax很需要一个全新概念的服务器端架构,个人认为这种架构应该基于WebService的基本概念,但要比WebService简单灵活。有些开发者现在用Struts这类以Controler为中心的架构作为Ajax的后端,其实是一种无奈的选择。

后记:在这次访问中,李先生还展示了这个Ajax框架和工具的具体应用,遗憾的是在这里我们不能一一讲述。

让我们耐心等待,也望中国软件人一路走好!

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3