用Axis2進行SOA開發:瞭解Axis2基礎(四)
熱部署:在系統啟動並執行時部署服務的功能。系統可用性在實時系統或業務環境中非常重要。如果系統停機(即使很短的時間),損失會很大,可能會影響業務的生存期。不過,會同時需要向系統新增新服務,如果可以在不關閉伺服器的情況下完成,則是一個極大的進步。因此 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用Axis2進行SOA開發:瞭解Axis2基礎(一)
- 用Axis2進行SOA開發:瞭解Axis2基礎(五)
- Axis2呼叫WebServiceWeb
- Axis2 Session ManagementSession
- webService 客戶端呼叫 axis2Web客戶端
- 移動端開發基礎瞭解
- axis2 WebService的釋出與呼叫Web
- WebService框架大比較(Axis,axis2,Xfire以及cxf)Web框架
- Eclipse 安裝 Axis2外掛失敗問題解決方案Eclipse
- 零基礎瞭解3D遊戲開發3D遊戲開發
- 【原創】WebService大講堂之Axis2(4):二進位制檔案傳輸Web
- 基於PostgreSQL進行Java應用開發SQLJava
- 開發 SOA 應用程式
- java基礎-多執行緒初步瞭解Java執行緒
- 並行開發基礎並行
- SOA之(1)——SOA架構基礎概念架構
- Express基礎瞭解—路由Express路由
- 【原創】WebService(Axis2)視訊教程與QQ交流群釋出Web
- WebService大講堂之Axis2(6):跨服務會話(Session)管理Web會話Session
- Nginx深入瞭解-基礎(一)Nginx
- Nginx深入瞭解-基礎(三)Nginx
- Express基礎瞭解—模板引擎Express
- Java基礎系列:瞭解ArrayListJava
- mysql之InnoDB基礎瞭解MySql
- 如何使用ABP進行軟體開發之基礎概覽
- 轉行進入IT行業,0基礎學習大資料開發必備的基礎有哪些?行業大資料
- 應用反射進行開發反射
- 用Delphi進行word開發
- Flutter基礎(四)開發Flutter應用前需要掌握的Basics WidgetFlutter
- Flutter 基礎(四)開發 Flutter 應用前需要掌握的 Basics WidgetFlutter
- 轉型進入IT行業,0基礎學習大資料開發需要什麼基礎?行業大資料
- webpack 基礎入門 - 瞭解webpackWeb
- Express基礎瞭解—中介軟體Express
- Maven基礎瞭解及配置資訊Maven
- Zookeeper必須瞭解的基礎
- OS開發基礎——多執行緒的簡單應用執行緒
- 基於雲資料庫MongoDB版進行應用開發資料庫MongoDB
- .NET 基礎拾遺(5):多執行緒開發基礎執行緒