信息化 频道

医院统一通信应用初探



【IT168 专稿】

一、Web时代来临、Java首当其冲
 
自从互联网开始在全球普及以来。Web程序就开始逐渐升温。当第一个被广泛使用的Web开发技术ASP在1993年诞生以来。就宣布了Web时代的正式开始。但由于当时网络环境的限制,一直到上个世纪末,其他的软件厂商才大量跟进。其中Sun就是其中之一。

    在1998年,Sun首先发布了JSP和Servlet规范。从此将Java带入了Web时代。也正是因为Sun将Java和Web挂上了钩,所以现在Java才如此的火(这是因为现在使用Java的程序员大多是Web程序员)。在JSP和Sevlet诞生后不久,Sun又相继推出了EJB等其他J2EE标准。与此同时,很多基于Java的应用服务器也不断大量涌现。其中有开源免费的,如Tomcat。也有商业的,如WebLogic、WebSphere等。这些应用服务器的出现,也大大加速了JSP的发展。
 
由于JSP技术是其于Java的,因此,JSP也象Java一样,可以跨平台运行。这种特性也使刚诞生的JSP大大优于其他的类似Web技术。同时,追捧它的程序员也象滚雪球一样激增。但由于当时程序的规模还不大,因此,使用JSP和Servlet一般已经足够了。但随着程序规模的不断增大,而参与开发项目的人也越来越多,这些程序员所编写出的JSP代码也五花八门。这就会造成系统难于维护。基于这些主要的原因,很多Java爱好者开始利用Java技术来设计一些可以统一编写规范或简化实现过程的系统,这也就是我们今天几乎天天可以听到的Java 框架。如基于MVC模式的Struts、用于数据持久化的Hibernate。使用这些框架虽然有时在并不能加快程序的开发,但如果参与项目的人非常多的话。使用框架的优势就会表现的淋漓尽致。因为它们可以更有效地使规范开发人员的编写习惯。可以辅助项目管理系统使项目顺利完成。然而这些基于Java的构架从最初的几种已经发展到现在的上百种之多,而它们之间的竞争也愈演愈烈。那么它们谁会成为最后的王者呢?



二、Java Web框架大行其道

    虽然现在关于Web的技术很多,支持Web的语言也很多,但最吸引眼球的还是和Java相关的Web技术。这在很大程序上要拜各种Java Web框架所赐。

    记得几年前,Java框架开始火的时候,Struts一马当先,以MVC模式的独特美丽雄居Java Web框架榜首。同时和Struts相关的技术书籍也大量涌现。Struts1.x虽然在功能上很强大,但由于其在使用和部署上非常麻烦,也招来了不少骂声。不过还是稳定和强大压倒一切,虽然Struts1.x使用繁琐,但其却解决了IT应用技术最令人头疼的问题:标准化和规范化。每个程序员都有自己的思路和习惯,写出来的代码也是五花八门。Java何以成为编程界的老大,很重要的一点在于Java的规范化。这种规范化很高的语言适用于多人合作的大型项目,便于沟通和理解,也就便于集成和维护。Java世界为什么会框架横飞,说到底还是规范化的需要。纯JSP和Struts写Web谁快,摆明了是JSP。那撑饱了用Struts?原因在于100个人写出来的JSP,有100种写法;而100个人写出来的Struts,基本相似。Struts之成功,正缘于其在Java Web层的规范化方面所做出的贡献。

    也许是Struts的设计者注意到了Struts的复杂。但又不想完全自己来解决这个问题。于是又找了一个虽然不错,但并未得志的框架WebWork。就形成Struts2。虽然这样以来Struts2象是拼凑出来的。但它们结合的还算不错。Struts2在使用上要比它的父辈Struts1.x方便的多。再加上原来Struts1.x拥有大量的用户,因此,Struts2的前景还是比较乐观的。

    然而长江后浪推前浪,Struts虽然借用WebWork从一定程度上摆脱了给人复杂的印象。但于由其在技术上算不上先进,而之所以现在很流行,主要是因为其出现在较早,并且拥有大量的用户。但Struts的技术缺陷毕竟是隐患。

    也许是Sun看到了这一点,所以全力推出了一个JSF技术。打算一雪Web层框架缺失之耻。JSF和ASP.NET类似。这项技术目前至少比Struts、Webwork高出一个档次。总的来说,使用JSF主要有以下两点好处:

1. 使Web开发成本大大降低,这其中包括开发成本、维护成本和升级成本。

2. 由于JSF提供了大量的组件,因此,可以给用户提供更多的定制能力。

    我们使用AJAX的应用显然主要是为了提升用户的操作体验,而客户定制能力个人认为将会引起更大的关注,服务端逻辑的定制能力目前要比客户端强不少。但可惜的是JSF仍沿用Swing的技术路线,又要学ASP.NET,还要照顾产商的IDE,结果搞了个四不象,弄得里外不是人。当然Sun的技术实力毕竟是超强的,只要别重蹈EJB的覆辙,拿出点专断的精神,就像这两年的NetBeans一样,做出像Swing那样水准的东西,JSF应当大有作为。从技术层次来看,JSF现在比较有优势的是对AJAX的集成,这一点走在了其他框架的前面。

    除了像Struts、JSF这些流行伯构架外,还有一些其他的构架。虽然这些构架无论在知名度,还是在厂商的支持上都不如前者。但它们也同样在自己的领域里发挥着作用。如Tapestry。这个框架是非常出色的。尤其是Tapestry4.0。它完全贯彻了OO的思想.但其封装得太彻底了,对于新手的开发人员的学习成本很大(特别是没有人指导的情况).比较不好的一点就是Tapestry4.0开发只有一个人,没有大厂商的支持.另外Tapestry4.0到Tapestry5.0的变化太大了.虽然Tapestry5.0架构更加的优秀.可是由于不兼容,导致了出现断层的现象。还有Wicket呢?其实JAVA WEB方面的框架非常之多,只是一般的公司只使用那么几种流行的框架,像Click Framework,我觉得也是一个不错的WEB框架。只是从目前国内的情况来看,Struts1.X,估计还会存在相当一段时间。



三、谁会从众多Java Web框架中脱颖而出,成为最终的主宰
 
    从种种迹象可以看出,在未来几年内,JSF与Struts将展开Java Web框架的终极争夺战。 它们之间的争斗可能有两个结果。一是无论是Struts还是JSF获胜,Java Web层都将结束混战的局面,这对Java Web开发的标准化是非常有利的,并有助于巩固Java在B/S界的地位;二是Struts和JSF平分天下,必然从整体上削弱Java在B/S界的竞争力,并将进一步被ROR、ASP.NET、PHP所蚕食。
 
不过我觉得Struts和JSF走向融合的可能性会更大一些。我们可以看到这样一个非常有趣的事实,Apache Jakarta Struts框架的作者Craig McClanahan同时也是JSF项目的两个领导人之一,这似乎保证了未来两种框架之间的易迁移性;那么再从应用开发的角度来看的话,Struts和JSF两种框架也有很多相似之处,比如就像Struts框架一样,JSF也充分遵循MVC设计模式,也定义了一整套JSP标记库来生成与JavaBean属性绑定的HTML元素,也定义了相应的组件导航模型等等,接下来,JSF这个即将出台的新标准将会成为J2EE的一部分,而目前业界所有的J2EE应用服务器,不论是免费的还是商用的,以及相应的开发工具都会正式公开对于JSF的支持。从以上两点来看我们有理由相信,在不久的未来,把已有的Struts应用转向JSF将不会存在很大的困难。
 
除了这些基于Java的Web技术互相争斗外,也许它们还面临着很多共同的敌人。如WPF和Apollo,但这两种技术有一个缺点,就是它们都需要额外安装客户端的runtime,Internet应用使用这些技术目前还不现实(因为你无法去控制客户端)。目前比较现实的是用Flex开发一些Flash组件,暴露出JavaScript调用的接口可以被Ajax应用来调用和配置。一些复杂的组件如DataGrid、各种样式的Chart等等都是Flash的强项。Ajax可以与Flash很好地结合在一起,形成一种互补的关系。
 
不管是Java Web技术,还是非Java Web技术。最理想是并不是这些庞大的构架体系。而是一套完整和开放的Widget,不论是用Javascript实现的,还是未来浏览器直接用标签等方式支持的,都可以象VB、Delphi一样很容易地将Widget组合成应用程序。这些Widget可能包括:Combobox、Grid、Treeview、Listview等等。只有象这样的Web体系,才可能以压倒一切的气势独霸Web王国,成为新的主宰。
0
相关文章