無為

          無為則可為,無為則至深!

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks

          一個最重要的新的基于Web的技術已經沉寂了很多年,現(xiàn)在卻突然變得相當流行。這主要源于Google和其它網站上一些用它構建的應用程序。這就是Ajax,這種編程技術被用于創(chuàng)建豐富的、基于Web的、與桌面軟件觀感類似的應用程序,但它們是基于瀏覽器的,而且所用資源不多。

            分析師說這種技術最終會讓Web servicesSOA的前端變得功能強大,而事實上也正在開始朝這個方向前進。有些人相信, Ajax最終會成為SOA和人機交互的Web services的主要用戶接口。只不過是在不遠的將來罷了。

            本周,有兩部分專欄來介紹Web services和SOA中Ajax的實現(xiàn)。在第一部分里,我們來看看什么是Ajax,它是如何工作的,以及它給Web services和SOA提供的一些好處。在下一部分,我們將談談它被廣泛采用的可能性以及在被采用的過程中會遇到的問題。

            Ajax如何工作

            理解Ajax首先要明白它不是一個簡單的技術,對它的使用不會被標準或標準體系控制,而且永遠也不會。盡管它是一個熱門話題,但它并不是特別新的技術。

            Ajax的意思是異步的JavaScript與XML(asynchronous JavaScript and XML)。它使用了若干項技術來構建豐富的基于Web的應用,使之有桌面程序一樣的觀感,這包括CSS、JavaScript、XHTML、XML、XMLHttpRequest、文檔對象模型以及XSLT。這些應用程序擁有和桌面程序一樣的互操作性和快速響應時間,而不像很多典型Web應用程序一樣響應遲鈍、缺乏動感。

            Ajax是如何工作的呢?在一個典型的非Ajax Web應用中,瀏覽器中的一個動作需要觸發(fā)達到Web服務器的Http請求。服務器處理請求,例如取出數(shù)據(jù)或干其它事情,然后把HTML頁面和結果一起返回給客戶端(瀏覽器)。當兩個方向上的請求都在發(fā)送或服務器正在處理數(shù)據(jù)時,用戶就必須等待。

            然而,對于Ajax來說,一切都不一樣。當用戶打開一個Web頁面,就載入了JavaScript編寫的Ajax引擎。從此刻起,用戶就與引擎交互,這就在用戶和Web服務器之間扮演了一個中間層。Ajax引擎異步地工作、獨立于任何服務器通信,所以就算當請求和響應在引擎和服務器之間被來回傳送,用戶還是能與應用程序交互。

            同樣重要的是,引擎本身能夠立即處理不需要請求服務器的動作,例如在內存中編輯數(shù)據(jù),驗證數(shù)據(jù)等。這些可以立即進行因為服務器通信沒有被調用——這就像桌面應用程序一樣。

            結果,出現(xiàn)了一個豐富的、與桌面應用類似的應用程序,但是它運行在瀏覽器中。

            已經有不少Ajax Web 應用了。Google非常積極地利用Ajax構建應用程序,例如Gmail和Google Local(正式名稱是Google Maps)。A9搜索引擎也使用到它。你會看到越來越多這種應用。

            對SOA和Web Serivices意味著什么

            那么,所有這些對SOA和Web services意味著什么呢?考慮到Ajax的使用主要是客戶級別的服務,那么它真的會在企業(yè)中找到歸宿嗎?

            分析師認為答案是肯定的,盡管這會來的晚一些。ZapThink的高級分析師Ron Schmelzer說,最終Ajax應用會代替現(xiàn)在把Web services和SOA聯(lián)系在一起的企業(yè)門戶。

            他說:“人們會用Ajax構建的富客戶端代替基于Web的門戶。由于它提供了豐富的功能,你能在企業(yè)之間和企業(yè)與客戶交互時用到它。”

            他指出,銀行Web網站已經開始使用Ajax應用來使它們的客戶更容易地操作金融服務。他說:“他們想讓用戶盡可能有與桌面程序一樣的體驗。”

            Schmelzer還發(fā)現(xiàn)Ajax正因為他發(fā)現(xiàn)的趨勢而不斷被采用。他說,在SOA中,他正發(fā)現(xiàn)一類混合型應用——它既不是瀏覽器也不是桌面應用程序。它們把二者結合起來,具有分布式應用用戶交互的優(yōu)點,但由于是分布在Web上的,因此很容易部署。

            他相信這種應用將會用Ajax構建。

            Kevin Hakman進入Ajax領域已經很長一段時間了,他是General Interface的一位創(chuàng)立者。General Interface是一家富互聯(lián)網應用程序開發(fā)工具提供商,一年前被TibcoSoftware公司收購。Hakman現(xiàn)在是Tibco負責產品市場的主管,他相信Web services和SOA的將來與Ajax息息相關。

            “Ajax之所以重要是因為它使人們用瀏覽器直接于SOA和Web services進行交互,這是讓人們獲取Web services和SOA的最佳方法。”他說。現(xiàn)在,Web services和SOA在機器到機器級別上工作的很好,但是為人們與服務交互而構建的用戶接口卻存在問題。他相信,Ajax就是問題的答案。

            當然,今天的Ajax還沒有被廣泛用于Web services和SOA。

            Schmelzer說:“Ajax很大程度上仍然上開發(fā)人員的事情,需要被提升到業(yè)務級別。”

            那么,提升到業(yè)務級別需要做什么,有多大可能性呢?我們將在下個專欄里談到這個問題。



          凡是有該標志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
          、轉載請注明來處和原文作者。非常感謝。

          posted on 2006-06-24 14:10 草兒 閱讀(155) 評論(0)  編輯  收藏 所屬分類: ajax
          主站蜘蛛池模板: 成武县| 高邮市| 太原市| 钦州市| 凉山| 沙雅县| 长乐市| 岳普湖县| 聊城市| 梓潼县| 广河县| 丹东市| 北安市| 乌兰察布市| 桦南县| 徐州市| 武清区| 永胜县| 渝中区| 乐业县| 江源县| 乌鲁木齐县| 卢湾区| 丘北县| 古丈县| 屏边| 南城县| 兴城市| 会宁县| 太和县| 霍城县| 阜新市| 大悟县| 黑水县| 甘肃省| 日喀则市| 和平区| 和龙市| 福安市| 岳西县| 娄底市|