一個最重要的新的基于Web的技術(shù)已經(jīng)沉寂了很多年,現(xiàn)在卻突然變得相當(dāng)流行。這主要源于Google和其它網(wǎng)站上一些用它構(gòu)建的應(yīng)用程序。這就是Ajax,這種編程技術(shù)被用于創(chuàng)建豐富的、基于Web的、與桌面軟件觀感類似的應(yīng)用程序,但它們是基于瀏覽器的,而且所用資源不多。
分析師說這種技術(shù)最終會讓W(xué)eb services和SOA的前端變得功能強(qiáng)大,而事實上也正在開始朝這個方向前進(jìn)。有些人相信, Ajax最終會成為SOA和人機(jī)交互的Web services的主要用戶接口。只不過是在不遠(yuǎn)的將來罷了。
本周,有兩部分專欄來介紹Web services和SOA中Ajax的實現(xiàn)。在第一部分里,我們來看看什么是Ajax,它是如何工作的,以及它給Web services和SOA提供的一些好處。在下一部分,我們將談?wù)勊粡V泛采用的可能性以及在被采用的過程中會遇到的問題。
Ajax如何工作
理解Ajax首先要明白它不是一個簡單的技術(shù),對它的使用不會被標(biāo)準(zhǔn)或標(biāo)準(zhǔn)體系控制,而且永遠(yuǎn)也不會。盡管它是一個熱門話題,但它并不是特別新的技術(shù)。
Ajax的意思是異步的JavaScript與XML(asynchronous JavaScript and XML)。它使用了若干項技術(shù)來構(gòu)建豐富的基于Web的應(yīng)用,使之有桌面程序一樣的觀感,這包括CSS、JavaScript、XHTML、XML、XMLHttpRequest、文檔對象模型以及XSLT。這些應(yīng)用程序擁有和桌面程序一樣的互操作性和快速響應(yīng)時間,而不像很多典型Web應(yīng)用程序一樣響應(yīng)遲鈍、缺乏動感。
Ajax是如何工作的呢?在一個典型的非Ajax Web應(yīng)用中,瀏覽器中的一個動作需要觸發(fā)達(dá)到Web服務(wù)器的Http請求。服務(wù)器處理請求,例如取出數(shù)據(jù)或干其它事情,然后把HTML頁面和結(jié)果一起返回給客戶端(瀏覽器)。當(dāng)兩個方向上的請求都在發(fā)送或服務(wù)器正在處理數(shù)據(jù)時,用戶就必須等待。
然而,對于Ajax來說,一切都不一樣。當(dāng)用戶打開一個Web頁面,就載入了JavaScript編寫的Ajax引擎。從此刻起,用戶就與引擎交互,這就在用戶和Web服務(wù)器之間扮演了一個中間層。Ajax引擎異步地工作、獨(dú)立于任何服務(wù)器通信,所以就算當(dāng)請求和響應(yīng)在引擎和服務(wù)器之間被來回傳送,用戶還是能與應(yīng)用程序交互。
同樣重要的是,引擎本身能夠立即處理不需要請求服務(wù)器的動作,例如在內(nèi)存中編輯數(shù)據(jù),驗證數(shù)據(jù)等。這些可以立即進(jìn)行因為服務(wù)器通信沒有被調(diào)用——這就像桌面應(yīng)用程序一樣。
結(jié)果,出現(xiàn)了一個豐富的、與桌面應(yīng)用類似的應(yīng)用程序,但是它運(yùn)行在瀏覽器中。
已經(jīng)有不少Ajax Web 應(yīng)用了。Google非常積極地利用Ajax構(gòu)建應(yīng)用程序,例如Gmail和Google Local(正式名稱是Google Maps)。A9搜索引擎也使用到它。你會看到越來越多這種應(yīng)用。
對SOA和Web Serivices意味著什么
那么,所有這些對SOA和Web services意味著什么呢?考慮到Ajax的使用主要是客戶級別的服務(wù),那么它真的會在企業(yè)中找到歸宿嗎?
分析師認(rèn)為答案是肯定的,盡管這會來的晚一些。ZapThink的高級分析師Ron Schmelzer說,最終Ajax應(yīng)用會代替現(xiàn)在把Web services和SOA聯(lián)系在一起的企業(yè)門戶。
他說:“人們會用Ajax構(gòu)建的富客戶端代替基于Web的門戶。由于它提供了豐富的功能,你能在企業(yè)之間和企業(yè)與客戶交互時用到它。”
他指出,銀行Web網(wǎng)站已經(jīng)開始使用Ajax應(yīng)用來使它們的客戶更容易地操作金融服務(wù)。他說:“他們想讓用戶盡可能有與桌面程序一樣的體驗。”
Schmelzer還發(fā)現(xiàn)Ajax正因為他發(fā)現(xiàn)的趨勢而不斷被采用。他說,在SOA中,他正發(fā)現(xiàn)一類混合型應(yīng)用——它既不是瀏覽器也不是桌面應(yīng)用程序。它們把二者結(jié)合起來,具有分布式應(yīng)用用戶交互的優(yōu)點(diǎn),但由于是分布在Web上的,因此很容易部署。
他相信這種應(yīng)用將會用Ajax構(gòu)建。
Kevin Hakman進(jìn)入Ajax領(lǐng)域已經(jīng)很長一段時間了,他是General Interface的一位創(chuàng)立者。General Interface是一家富互聯(lián)網(wǎng)應(yīng)用程序開發(fā)工具提供商,一年前被Tibco Software公司收購。Hakman現(xiàn)在是Tibco負(fù)責(zé)產(chǎn)品市場的主管,他相信Web services和SOA的將來與Ajax息息相關(guān)。
“Ajax之所以重要是因為它使人們用瀏覽器直接于SOA和Web services進(jìn)行交互,這是讓人們獲取Web services和SOA的最佳方法。”他說?,F(xiàn)在,Web services和SOA在機(jī)器到機(jī)器級別上工作的很好,但是為人們與服務(wù)交互而構(gòu)建的用戶接口卻存在問題。他相信,Ajax就是問題的答案。
當(dāng)然,今天的Ajax還沒有被廣泛用于Web services和SOA。
Schmelzer說:“Ajax很大程度上仍然上開發(fā)人員的事情,需要被提升到業(yè)務(wù)級別。”
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報。