當今,各個企業都在想方設法提高自己的生產效率,并且對IT資產的重組也都在努力的探索當中。借助于面向服務的架構(SOA)技術,IT組織已經在克服這些問題方面取得了一定的成效;但是,在大多數情況下仍然只是實現了整個IT服務組合的一小部分。目前,有關這方面的大多數的努力也只不過是達到一種“剛剛滿足”的SOA應用狀況—在改進構建應用程序的能力以及使之與市場的結合更快更好更為便宜方面。而且正如我們已了解的,要實現這些目標說起來容易做起來難。
二、傳統的基于中間件的復合應用程序
現有的事實是,SOA是一種中間件—而傳統情況下,中間件往往要依賴于更多的中間件才能把數據翻譯成一種消費者友好的狀態。當你最后搞清楚構建一種融入SOA技術的復合應用程序不僅要求使用一種portal(中間件)而且還有可能要使用一種BPEL引擎(甚至還是中間件)對它進行編排時,這當然使你非常失望。更糟糕的是,你有可能在一家發布UDDI注冊表和注冊大量Web服務的組織內工作。但遺憾的是,在大多數情況下,還存在極少的實際消費這些服務的應用程序。怎么會是這種情況呢?
難道如果無法構建消費這些SOA服務的應用程序我們就該得出結論—什么東西出錯了嗎?是否是因為業務內容開發者太難構建這種直接消費SOA服務的應用程序從而導致只好由其它的IT組織為我們創建這樣的應用程序呢?是否由于缺乏一種SOA監管架構從而使我們猶豫不決?我想,我對上面所有問題的回答都是“是的”。而且存在一種非常突出的理由:僅由業務開發者消費和利用這種由IT組織暴露的SOA服務實在是太難了!其實,真正存在的問題是缺乏一種容易的方法來在SOA上加入一種界面—而這正是把AJAX技術與SOA結合到一起的優點所在。
典型情況下,SOA服務被實現為一種松耦合的封裝和暴露業務功能的Web服務。這聽起來似乎非常直接,但是實現起來卻非常復雜和困難。開發者經常在SOA服務的開發粒度方面討論不止;但是現在,大多數開發人員都一致認為“業務級”的開發粒度是最合適的。然而,這仍然需要大量的相關領域專家加入并且要與業務內容合作才能最終確定這些服務的大小。
三、SOA的復興
幸運的是,最近人們又對SOA產生了深厚的興趣。也許企業最終意識到SOA確實能夠幫助給它們帶來巨大幫助。也許這是由于更好的開發工具和在Amazon,Yahoo和eBay宣傳下的Web服務所致的緣故。也許它就是AJAX?不錯—這也正是本人撰寫此文之原因。認真地說,我確實認為正是AJAX成為更新人們對于SOA的重新認識的一種重要的驅動力量,特別是在當今各種新技術混合應用領域。但是,這兩種迥然不同的技術應該如何結合并連接到一起才能迸發出更巨大的力量呢?先讓我們來看一下Wikipedia對當前AJAX技術的定義。其中涉及到了Web頁面,但是根本沒有提及SOA。其中的描述是:
“AJAX,代表了‘異步JavaScript+XML’,是一種創建交互式Web應用程序的Web開發技術。其目的是,通過在后臺與服務器實現少量的數據交換從而使前端Web頁面感覺起來更具響應性;因此,每當用戶作出一個改變時,不必重載整個Web頁面。其最終目的是進一步提高Web頁面的交互性、響應速度及可用性?!?
此定義中沒有提及SOA并不奇怪,因為早期的AJAX應用主要集中在增強頁面的功能與可用性方面。這一點已經在眾多應用程序,例如Google Maps,Flickr和Yahoo Mail,中得到證實。然而,并不是這些面向消費者的應用程序使我對AJAX的潛力感到激動,而是運行于公司的防火墻背后的業務應用程序真正利用了AJAX中的優點,因為它向我們展示了兩個關鍵特征:一個是客戶端編程模型,另一個是對服務器進行異步調用的易實現。這兩種關鍵能力—在客戶端(瀏覽器)應用邏輯的能力和在不打斷Web頁面的情況下存取服務器數據的能力,正是它們拓寬了構建新的更為豐富的Web 2.0企業應用程序的如此眾多的可能性應用領域。
前面,我曾提及SOA缺乏一種界面。這也正是AJAX“介于”這其中的原因—它能夠給SOA加上一個體面的外觀。在此,請讓我多作一些解釋。我們不妨考慮一下,如果SOA服務以在線方式出現的話,情況會怎么樣?這樣的服務通常需要在一個注冊表或倉庫中進行注冊(如果我們幸運的話),然后就可以用于消費。例如,我們不妨去看一下StrikeIron網站(www.StrikeIron.com)中所提供的內容。StrikeIron已經成功地創建了一種針對普通大眾的“Web服務市場”。乍看起來,StrikeIron網站中的目錄機制很象一個小型業務應用程序中所提供的列表。但是稍后,你就會意識到這并不是一些應用程序—它們實際上是一些Web服務。由一家公司針對廣大消費者提供WSDL/REST Web服務的概念本身就蘊含了多種意義。但是,現在先讓我們來看一下這家公司所出售的內容。根據StrikeIron提供的信息(他們允許存取這些服務),它提供的大多數流行的Web服務包括:
·美國地址校驗
·全球短信服務
·銷售和使用稅
·電子郵件校驗
·逆向電話查詢
毫無疑問,所有這些Web服務都相當有用,而且能被應用于許多不同的領域。但同時,它們又太“商品化”。換句話說,我可能并不在意是誰提供的這些服務,而僅想得到我所希望的信息。另一方面,我會簡單地使用任何Web服務來實現把現金從我的經常帳戶轉到我的儲蓄帳戶嗎?我不會這么做的。我首先需要建立對這種服務的信任,因此,我必須與提供該服務的供應商建立一定的關系。存在于我(消費者)和服務提供者之間的這種“信任圈”也正代表了企業內部及其合伙企業之間的關系
原文轉自:http://www.anti-gravitydesign.com