除了一些罕見的應用以專有擴展的方式嵌入到瀏覽器中以外,分布式互聯網應用將其所有應用邏輯放在了服務器端。甚至客戶端腳本想要執行在網頁上的一個事件響應,都要從Web服務器基于初始的HTTP請求來下載。沒有客戶工作站上保存的邏輯,整個解決方案都是集中式的。
從而強調了:
﹡ 應用邏輯應當如何被分割
﹡ 被分割的處理邏輯應當駐留在何處
﹡ 處理邏輯應當如何交互
應從一個物理的角度來看,面向服務架構與分布式互聯網架構非常相似。提供者邏輯駐留于服務器端而被分割成單獨的單元。其中差異由剛剛所列三個主要設計原則所決定。
傳統的分布式應用包含了駐留于一個或多個應用服務器上的一系列的構件。構件設計為不同粒度的功能,依賴于所執行的任務,以及它們被其他任務或應用的復用范圍。駐留于相同服務器的構件通過專有API通信,按照它們暴露的公共接口來調用。RPC協議被用于實現跨越服務器邊界的通信。這有可能通過使用代表遠程構件的本地代理存根來實現(圖6)。
圖6 構件通信依賴于代理存根
在設計時,預期的交互構件將與其他一起考慮---如此強烈以致實際對其他物理構件的引用可嵌入到程序代碼內。這個設計時水平的依賴是緊耦合的形式。這樣的稍許處理相對于試圖在運行時定位所需構件的浪費而言是有效的。然而,嵌入式耦合導致綁定構件網絡,一旦實現,不易更改。
當代SOA依然使用并依賴于構件。然而,整個建模方法現在會考慮創建封裝一些或所有構件的服務。這些服務根據面向服務原則而設計,并且策略性地定位及暴露特定的功能集。同時這個功能可由構件提供,也可源自遺留系統及其他資源,象來自其它套裝軟件產品的適配器接口,或者甚至是數據庫。
在服務內包裝功能的目標是經由一個開放的、標準化的接口暴露功能---而不用關心用于實現底層邏輯的技術。標準化的接口支持置于SOA核心的開放通信框架。而且,使用Web服務建立了松散耦合的環境,其中也運行著相對設計的分布式應用。如果設計得當,松散耦合的服務支持組合模型,允許單個的服務參與集合的設計。這引入了持續的復用與擴展機會。
有關分布式應用邏輯的設計與行為的另一個重要轉變在于服務如何交換信息。當傳統構件提供方法時,一旦被激活,就發送與接受參數數據,而Web服務通過SOAP消息通信。即使SOAP支持RPC風格的消息結構,大多數面向服務的Web服務設計卻依賴于文檔風格的消息。(這一重要差別在后面探究。)
消息也是結構化的并盡可能是自足的。通過使用SOAP報頭,消息內容可以伴隨闃寬泛的元信息、處理指導以及策略規則。與純粹構件世界內的數據交換相比較,SOA所用的通訊框架更加復雜、更加龐大,并且更易導致少數的個別傳輸。
最后,盡管也普遍強調復用傳統的分布式設計方法,SOA可通過促進解決方案未知服務的創建鼓勵復用以及深層次的跨應用協同。
應用處理
不管什么平臺、構件都代表了最大部分的應用邏輯并因此負責大多數的處理。然而,因為用于構件間通信的技術不同于完成服務間通信的技術,處理需求也是如此。
分布式互聯網架構促進專有通信協議的使用,象用于遠程數據交換的DCOM和廠商實現的CORBA。當這些技術遭遇歷史性挑戰時,它們相對是有效可靠的,特別是一旦有主動連接時。它們能夠支持有狀態和無狀態構件的創建,主要影響同步數據交換(一些平臺支持異步通信,但并未普遍使用)。
另一方面,SOA依賴基于消息的通信。包括負載有XML文檔的SOAP消息序列化、傳輸及去序列化。處理步驟會包括將關系數據轉換成XML兼容結構、XML文檔預校驗以及隨后的傳輸、以及對所接收文檔進行解析和抽取。盡管已有所進步,譬如企業解析器及硬件的持續加速,大部分還是抱怨SOAP比RPC通信明顯要慢一些。
在面向服務應用環境中,因為SOAP服務器的網絡能夠有效代替RPC風格的通信通道,導致系統開銷成為一個重要的設計問題。文檔與消息建模規約及校驗邏輯的布置策略是重要因素,形成了面向服務架構的傳輸層。
這個通訊框架促進了自治服務的創建,支持寬泛的消息交換模式。盡管完全支持同步通信,但還是鼓勵異步模式,因為它們提供了由通信最小化而帶來的進一步優化的機會。深入支持無狀態服務是不同語境的管理可采取的措施,包括使用WS-*規范,如WS-協調與WS-BPEL,還有定制解決方案。
技術
分布式互聯網架構背后的技術在過去幾年內經歷了幾個階段。初始架構包含有構件、服務器端腳本以及原生的Web技術,比如HTML與HTTP。中間件方面的進步,允許增加處理能力及事務控制。XML的出現引入了復雜的數據表達,實際上提供了經由互聯網協議傳輸的東西。后來Web服務的可用性允許分布式互聯網應用跨越專有平臺的邊界。
因為許多當前的分布式應用使用了XML與Web服務,有可能這些解決方案背后的技術與那些基于SOA的沒有太大不同。雖然一個明顯的區別在于當代SOA將有可能構建在XML數據表達與Web服務技術平臺技術之上。除了互聯網核心技術集和構件的使用,沒有被傳統的互聯網應用所統治的技術。因此,XML與Web服務對于分布式互聯網架構而言是可選的,但對于當代SOA不是。
文章來源于領測軟件測試網 http://www.kjueaiud.com/