Web 服務效能最佳實務

瞭解 Web 服務應用程式效能的最佳實務。

Web 服務是根據 Web Services for Java™ Platform, Enterprise Edition (Java EE) 規格所提供的標準以及 Java API for XML-Based Web Services (JAX-WS) 和 Java Architecture for XML Binding (JAXB) 程式設計模型來開發和部署的,是用來存取 Web 服務的機制。 說明這個規格所支援之 Web 服務的效能考量。

當您開發或部署 Web 服務時,需要一些構件,其中包括「Web 服務說明語言 (WSDL)」檔。 WSDL 檔說明 Web 服務輸入及輸出 SOAP 訊息的格式和語法。 當在 WebSphere® Application Server 執行時期中實作 Web 服務時,會根據 Java EE 要求來轉換 SOAP 訊息。 之後,再將基於 Java EE 的回應轉換回 SOAP 訊息。

最重要的效能考量是 XML 型 SOAP 訊息和 Java 物件之間的轉換。 WebSphere Application Server 中的 Web 服務實作具備高效能,不過,應用程式設計、部署和調整都可以改進。 請參閱監視 Web 服務應用程式效能的相關資訊,以進一步瞭解 Web 服務的分析和調整。

如果您使用針對第 6 版之前的 WebSphere Application Server 版本而開發的 Web服務應用程式,您可以執行 wsdeploy 指令來達到更好的效能。 wsdeploy 指令會重新產生 Web 服務構件類別,以提高序列化和解除序列化的效能。

Java API for XML-Based RPC (JAX-RPC) 應用程式支援 wsdeploy 指令。 應用程式伺服器所實作的 Java API for XML-Based Web Services (JAX-WS) 程式設計模型不支援 wsdeploy 指令。 如果您的 Web 服務應用程式只含有 JAX-WS 端點,您不需要執行 wsdeploy 指令,因為這個指令只用來處理 JAX-RPC 端點。

高效能 Web 服務應用程式的基本考量

以下是設計 Web 服務應用程式時所應知道的基本考量:
  • 利用一些高功能 API(而不是若干簡單 API)來減少 Web 服務要求。
  • 設計您的 WSDL 檔介面來限制 SOAP 訊息的大小和複雜度。
  • 當您產生 WSDL 檔時,使用 document/literal 樣式參數。
  • 利用針對 WebSphere Application Server 提供的快取功能。
  • 測試 Web 服務的效能。

將 WebSphere Application Server 的 JAX-WS Web 服務效能最佳化

依您的 Web 服務使用實務而定,您可以利用下列 JVM 自訂內容來最佳化 JAX-WS Web 服務效能。 變更這些 JVM 自訂內容的值之後,必須重新啟動 WebSphere Application Server,變更才會生效。

  • 在 WebSphere Application Server 8.5.5.2 或更新版本中,請利用下列自訂內容,將 JAXB 效能最佳化:
    com.ibm.websphere.webservices.jaxwsOptimizeLevelOne
    將這個自訂內容配置成 true,可開啟層次 1 的 JAX-WS 效能最佳化。
    預設值為 false。
    註: 當啟用這個自訂內容時,部分規格外的 JAXB 行為可能會變更。 如果您的應用程式會相依於這類規格外行為,且您發現它會導致應用程式執行不成功,請停用這個內容。
    註: 您可能會發現 SOAP 訊息中 XML 標籤的順序與舊版本不同。
  • 在 WebSphere Application Server 8.5.5.0 或更新版本中,請將下列自訂內容用於 JAX-WS 引擎廣域處理程式效能最佳化。 當您啟用下列自訂內容時,請特別小心。 否則,對應的 Web 服務會無法運作。 此外,下列 JVM 內容不會影響使用者定義的 JAX-WS 處理程式。
    com.ibm.ws.websvcs.disableWSDMHandler
    請利用這個內容來控制是否要針對 WSDM(Web 服務分散式管理)功能來停用 Web 服務 JAX-WS 引擎處理程式。 預設值為 false。
    com.ibm.ws.websvcs.disableWSSecurityHandler
    請利用這個內容來控制是否要針對 WS-Security 功能來停用 Web 服務 JAX-WS 引擎處理程式。 預設值為 false。
    com.ibm.ws.websvcs.disableWSTXHandler
    請利用這個內容來控制是否要針對 WS-Transaction 功能來停用 Web 服務 JAX-WS 引擎處理程式。 預設值為 false。
    com.ibm.ws.websvcs.disableWSRMHandler
    請利用這個內容來控制是否要針對 WS-RM 功能來停用 Web 服務 JAX-WS 引擎處理程式。 預設值為 false。
    com.ibm.ws.websvcs.disablePMIHandler
    請利用這個內容來控制是否要針對 Web 服務 PMI 資料收集功能來停用 Web 服務 JAX-WS 引擎處理程式。 預設值為 false。
    com.ibm.ws.websvcs.disablePMIRMHandler
    請利用這個內容來控制是否要針對 WS-RM 功能之 Web 服務 PMI 資料收集來停用 Web 服務 JAX-WS 引擎處理程式。 預設值為 false。
    com.ibm.ws.websvcs.disableAddressingHandler
    請利用這個內容來控制是否要針對 WS-Addressing 功能來停用 Web 服務 JAX-WS 引擎處理程式。 預設值為 false。
    com.ibm.ws.websvcs.disableDefaultGlobalHandlers
    請利用這個內容來控制是否要停用所有預設的 Web 服務 JAX-WS 引擎處理程式。 如果這個內容配置為 true,它會置換下列自訂內容的值,並將它們的值設為 true。
    • com.ibm.ws.websvcs.disableWSDMHandler
    • com.ibm.ws.websvcs.disableWSSecurityHandler
    • com.ibm.ws.websvcs.disableWSTXHandler
    • com.ibm.ws.websvcs.disableWSRMHandler
    • com.ibm.ws.websvcs.disablePMIHandler
    • com.ibm.ws.websvcs.disablePMIRMHandler
    • com.ibm.ws.websvcs.disableAddressingHandler
    這個自訂內容的預設值為 false。

您可以利用的其他 Web 服務效能特性

  • 進行中的 Web 服務最佳化,在位於相同應用程式伺服器程序的 Web 服務用戶端應用程式和 Web 儲存器之間,可將通訊路徑最佳化。 如需關於啟用這個特性的詳細資料,請參閱 Web 服務用戶端至 Web 儲存器最佳化通訊的資訊。
  • 經由多重傳輸通訊協定來存取 Web 服務,會延伸現有的 Java API for XML-based Remote Procedure Call (JAX-RPC) 功能,以支援 RMI/IIOP 和 JMS 之類的非 SOAP 連結。 這些替代傳輸可以改進 Web 服務的效能和服務品質等方面。 如需更詳細的資訊,請參閱「使用 JAX-RPC 的 RMI-IIOP」資訊。
  • SOAP with Attachments API for Java (SAAJ) 1.2 版會關聯於 JAX-RPC 來提供 Web 服務的程式設計模型。 SAAJ API 提供利用 XML API 來建立和處理 SOAP 要求的功能。 SAAJ 支援即時剖析及其他內部演算法。 如需 SAAJ 或 Web 服務程式設計的相關資訊,請參閱 SOAP with Attachments API for Java 資訊。

    SAAJ 1.3 為根據 Java API for XML Web Services (JAX-WS) 程式設計模型而開發和實作的 Web 服務提供支援。

  • Web 服務工具會針對所有 JAX-RPC Bean 來產生更高效能的自訂解除序列化程式。 將 5.x 版應用程式重新部署到第 6 版執行時期,可以縮短大型訊息的處理時間。
  • 已加強序列化和解除序列化執行時期來快取常用的序列化程式和解除序列化程式。 這可以縮短大型訊息的處理時間。

IBM® 針對 Web 服務應用程式的設計和開發,提供了大量的文件和最佳實務,詳細討論了這些項目及其他事項。


指出主題類型的圖示 參照主題



時間戳記圖示 前次更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_perfbestpractices
檔名:rwbs_perfbestpractices.html