面向服務架構的主要技術是Web Services。Web Services是基于一系列開放的、標準協議的分布式計算模式,提供基于網絡的、與開發環境無關的軟件服務。Web Services的實現方式主要有SOAP Web Services和Restful Web Services。這兩種方式各具特點,在實施跨領域信息交換時可根據具體應用需求選擇。
2.2.2 SOAP Web Services
SOAP Web Services主要基于服務使用者、服務注冊中心、服務提供者3種角色進行交互。這3種角色通過發布/撤消發布、查找、綁定3種動作實現交互,如圖2-30所示。
傳統的Web應用大多采用B/S架構,這種架構的特點是部署方便,但許多HTTP自身的特性沒有得到利用。為了能夠充分利用HTTP更多良好的特性,Roy Thomas Fielding博士提出了REST方法。REST的全稱是Representation State Transfer,它描述了一種設計Web應用的架構風格,可以降低開發的復雜性。
Restful Web Services 是符合REST架構風格的一種輕量級的Web Services。它采用HTTP作為應用協議和傳輸協議,使用統一資源標識符(Uniform Resource Identifier,URI)來表示唯一對應的資源,使用HTTP提供的GET、POST、PUT、DELETE共4種基本方法,對資源進行查詢、創建、修改和刪除操作,利用緩存來提高響應速度,其性能、效率和易用性都優于SOAP Web Services。Restful Web Services的優勢主要表現為:①可以利用緩存來提高響應速度;②通信本身的無狀態性可以讓不同的服務器處理一系列請求中的不同請求,進而提高服務器的擴展性;③瀏覽器可作為客戶端,簡化軟件開發的需求;④相對于其他疊加在HTTP協議之上的機制,Restful Web Services的軟件依賴性更小;⑤不需要額外的資源發現機制;⑥在軟件技術的演進中,兼容性更好。
Restful Web Services相關的概念主要有資源、統一資源標識符、表示、統一接口服務[8]。
(1)資源。
資源是存放在計算機或網絡上的文檔、記錄及運行某程序所獲得的結果等。Restful Web Services將整個Web看作資源的集合。例如,信息使用者想獲得信息提供者的船舶位置信息,則“船舶位置信息”就可以看作一個資源。
(2)統一資源標識符。
Restful Web Services是面向資源的,因此資源必須是唯一的。這就需要使用一種一致的命名規則去標識資源。資源用URI(Uniform Resource Identifier)命名。URI中不僅包含資源的地址,還包含對資源的操作指令,服務器端則根據URI中的指令確定客戶請求的處理方式。因此,這里的URI不是單純的URL(Uniform Resource Locator)網址。
表示(Representation)是一種序列化的數據結構。在Restful Web Services中,表示是一種超媒體,它不僅包含數據,還包含指向其他資源的鏈接。表示可以在資源使用者和資源提供者之間進行雙向的信息傳遞。除此之外,客戶端可以將對一個新資源的表示傳送到服務器,在服務器上創建該資源;也可以將對一個現有資源的新表示傳送到服務器,使服務器對已有資源進行更新操作。表示的超媒體格式有多種,如XHTML+XML、ATOM+XML和JSON。
企業服務總線(Enterprise Service Bus,ESB)是傳統消息中間件技術與Web Services、XML技術的結合,可以在一個異構的環境中保證信息穩定,實現信息可靠傳輸,屏蔽了硬件層、操作系統層、網絡層等相對復雜、煩瑣的接口,為應用提供了一個統一、標準的信息通道,確保應用和這些底層平臺無關,從而實現不同操作系統、不同數據庫、不同平臺和基于這些平臺之上開發的應用軟件的數據交換、數據共享與應用集成,為信息系統的數據交換與共享提供信息傳輸手段。