一个最重要的新的基于Web的技术已经沉寂了很多年,现在却突然变得相当流行。这主要源于Google和其它网站上一些用它构建的应用程序。这就是Ajax,这种编程技术被用于创建丰富的、基于Web的、与桌面软件观感类似的应用程序,但它们是基于浏览器的,而且所用资源不多。
分析师说这种技术最终会让Web services和SOA的前端变得功能强大,而事实上也正在开始朝这个方向前进。有些人相信, Ajax最终会成为SOA和人机交互的Web services的主要用户接口。只不过是在不远的将来罢了。
本周,有两部分专栏来介绍Web services和SOA中Ajax的实现。在第一部分里,我们来看看什么是Ajax,它是如何工作的,以及它给Web services和SOA提供的一些好处。在下一部分,我们将谈谈它被广泛采用的可能性以及在被采用的过程中会遇到的问题。
Ajax如何工作
理解Ajax首先要明白它不是一个简单的技术,对它的使用不会被标准或标准体系控制,而且永远也不会。尽管它是一个热门话题,但它并不是特别新的技术。
Ajax的意思是异步的JavaScript与XML(asynchronous JavaScript and XML)。它使用了若干项技术来构建丰富的基于Web的应用,使之有桌面程序一样的观感,这包括CSS、JavaScript、XHTML、XML、XMLHttpRequest、文档对象模型以及XSLT。这些应用程序拥有和桌面程序一样的互操作性和快速响应时间,而不像很多典型Web应用程序一样响应迟钝、缺乏动感。
Ajax是如何工作的呢?在一个典型的非Ajax Web应用中,浏览器中的一个动作需要触发达到Web服务器的Http请求。服务器处理请求,例如取出数据或干其它事情,然后把HTML页面和结果一起返回给客户端(浏览器)。当两个方向上的请求都在发送或服务器正在处理数据时,用户就必须等待。
然而,对于Ajax来说,一切都不一样。当用户打开一个Web页面,就载入了JavaScript编写的Ajax引擎。从此刻起,用户就与引擎交互,这就在用户和Web服务器之间扮演了一个中间层。Ajax引擎异步地工作、独立于任何服务器通信,所以就算当请求和响应在引擎和服务器之间被来回传送,用户还是能与应用程序交互。
同样重要的是,引擎本身能够立即处理不需要请求服务器的动作,例如在内存中编辑数据,验证数据等。这些可以立即进行因为服务器通信没有被调用——这就像桌面应用程序一样。
结果,出现了一个丰富的、与桌面应用类似的应用程序,但是它运行在浏览器中。
已经有不少Ajax Web 应用了。Google非常积极地利用Ajax构建应用程序,例如Gmail和Google Local(正式名称是Google Maps)。A9搜索引擎也使用到它。你会看到越来越多这种应用。
对SOA和Web Serivices意味着什么
那么,所有这些对SOA和Web services意味着什么呢?考虑到Ajax的使用主要是客户级别的服务,那么它真的会在企业中找到归宿吗?
分析师认为答案是肯定的,尽管这会来的晚一些。ZapThink的高级分析师Ron Schmelzer说,最终Ajax应用会代替现在把Web services和SOA联系在一起的企业门户。
他说:“人们会用Ajax构建的富客户端代替基于Web的门户。由于它提供了丰富的功能,你能在企业之间和企业与客户交互时用到它。”
他指出,银行Web网站已经开始使用Ajax应用来使它们的客户更容易地操作金融服务。他说:“他们想让用户尽可能有与桌面程序一样的体验。”
Schmelzer还发现Ajax正因为他发现的趋势而不断被采用。他说,在SOA中,他正发现一类混合型应用——它既不是浏览器也不是桌面应用程序。它们把二者结合起来,具有分布式应用用户交互的优点,但由于是分布在Web上的,因此很容易部署。
他相信这种应用将会用Ajax构建。
Kevin Hakman进入Ajax领域已经很长一段时间了,他是General Interface的一位创立者。General Interface是一家富互联网应用程序开发工具提供商,一年前被Tibco Software公司收购。Hakman现在是Tibco负责产品市场的主管,他相信Web services和SOA的将来与Ajax息息相关。
“Ajax之所以重要是因为它使人们用浏览器直接于SOA和Web services进行交互,这是让人们获取Web services和SOA的最佳方法。”他说。现在,Web services和SOA在机器到机器级别上工作的很好,但是为人们与服务交互而构建的用户接口却存在问题。他相信,Ajax就是问题的答案。
当然,今天的Ajax还没有被广泛用于Web services和SOA。
Schmelzer说:“Ajax很大程度上仍然上开发人员的事情,需要被提升到业务级别。” |