用Axis2進行SOA開發:瞭解Axis2基礎(四)

isoa發表於2009-01-08

  熱部署:在系統啟動並執行時部署服務的功能。系統可用性在實時系統或業務環境中非常重要。如果系統停機(即使很短的時間),損失會很大,可能會影響業務的生存期。不過,會同時需要向系統新增新服務,如果可以在不關閉伺服器的情況下完成,則是一個極大的進步。因此 Axis2 對此問題進行了處理,提供了 Web 服務熱部署功能,可以在不必關閉系統的情況下部署新 Web 服務。所需要進行的工作就是,將所需的 Web 服務存檔放入到儲存庫的 services 目錄中。然後,部署模型將自動部署服務,並進行提供。

  熱更新:在不必關閉系統的情況下對現有 Web 服務進行更改的能力。這是一個重要的特性,是測試環境中需要的一個功能。不過,在實時系統中使用熱更新並不明智,因為熱更新可能導致系統進入未知狀態。此外,還可能丟失該服務的現有服務資料。為了防止發生這種情況,Axis2 的熱更新引數預設設定為 false。

  模組體系結構

  正如上面提到的,Axis2 也具有處理程式的概念,但與 Axis 1.x 相比,指定和部署處理程式的方式有一些變化。在 Axis 1.x 中,要新增處理程式,需要首先更改全域性配置檔案,然後需要重新啟動系統,並沒有在執行時更改處理程式鏈的動態方法。

  為了克服這個問題和增加新特性,Axis2 引入了 Web 服務擴充套件或模組的概念;其中模組的主要工作是對核心功能進行擴充套件。在 Axis 1.x 中,可以通過向處理程式鏈新增處理程式來實現此目標。與 Axis 1.x 處理程式鏈相比,使用模組的優勢在於,您可以在根本不改變全域性配置檔案的情況下新增新模組。同時,模組是一個自容器,其中可以包含處理程式、第三方庫、模組相關資源和模組配置檔案。

  可以將模組作為存檔檔案部署,Axis2 為模組採用了一個新擴充套件檔名 .mar。模組存檔檔案中最重要的檔案是模組配置檔案或 module.xml。除非具有 module.xml 檔案,否則該模組就是一個錯誤模組。模組配置檔案主要用於指定處理程式及其階段規則,因此讓模組參與系統後,根據階段規則不同,處理程式將被放置在不同的流上——inflow 或 outflow。

  這個思路非常簡單。或許您需要支援 WS-Addressing 或 WS-Security。然後您必須下載對應的模組,並將其放置到 Axis2 儲存庫的 modules 目錄中。您可以在部署時通過向 axis2.xml(Axis2 全域性配置檔案)新增以下條目使模組參與系統,或在執行時通過使用各種方法(如使用 Axis2 Web 管理控制檯或 handlerfor exsample)使模組參與到系統中:

  新客戶機 API

  非同步或非阻塞 Web 服務呼叫是目前 Web 服務中的一個主要需求。同時,還存在一些以非阻塞方式呼叫 Web 服務的方法。第一個是客戶機程式設計模型,在此模型中,客戶機能在不阻塞其應用程式的情況下以非阻塞方式呼叫服務。第二個方法是傳輸級非阻塞呼叫,其中的呼叫是在兩個傳輸協議之間發生的。可以是 SMTP 之類的兩個單向傳輸協議,也可以為兩個 HTTP 之類的雙向傳輸協議。Axis2 客戶機 API 同時支援上述兩個非阻塞呼叫方案。

  Axis2 引入了用於呼叫服務的非常方便的客戶機 API,此 API 包含兩個類,分別名為 ServiceClient 和 OperationClient。ServiceClient API 專門用於只需要傳送和接收 XML 的普通使用者,而 OperationClient 旨在供希望處理 SOAP Header 和其他一些高階任務的高階使用者使用。通過使用 ServiceClient,您只能訪問 SOAP 主體或有效負載。當然,可以新增 SOAP Header,但無法從服務客戶機檢索 SOAP Header。為了實現此操作,您將需要使用 OperationClient。(來自search soa)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780828/viewspace-531770/,如需轉載,請註明出處,否則將追究法律責任。

相關文章