準則: 開發 Web 服務
這個準則說明如何使用 RAD 6.0 建模環境來探查、建立、測試、部署及發佈 Web 服務。
關係
相關元素
主要說明

簡介

RAD 6.0 提供一套豐富的工具,支援探查、建立、測試、部署及發佈 Web 服務。 可以根據最新標準來開發 Web 服務,也支援部署到多個執行環境。 這些工具也提供許多精靈,支援和協助不同的開發方法。 本文說明 RAD 6.0 提供的各種 Web 服務開發方法,並討論與 Web 服務部署有關的開發注意事項及互運性選項的層次。

開發方法

RAD 6.0 的 Web 服務精靈可讓您採取由上而下或由下而上的方法來建立 Web 服務。 由上而下的方法可讓您從「Web 服務說明語言 (WSDL)」文件開始,產生可用來建立 Web 服務的綱要 Java Bean 或綱要 Enterprise JavaBean (EJB)。 由下而上的方法可讓您利用現有的 Java Bean、EJB、文件存取定義擴充器 (DADX) 檔案、統一資源定位器 (URL) 或 Web 服務部署描述子 (ISD) 檔案來建立 Web 服務。 圖 1 顯示 RAD 6.0 提供的 Web 服務建立方法。

建立 RAD 6.0 Web 服務的方法

圖 1 - RAD 6.0 Web 服務建立方法

在建立 Web 服務期間,精靈可讓您選擇:

  • 建立 Web 服務之後,立即使用「Web 服務瀏覽器工具」進行測試。
  • 產生用戶端 Proxy,讓您在用戶端應用程式中可以存取 Web 服務。
  • 使用 Universal Test Client (UTC) 工具或此工具產生的 JSP 應用程式範例來測試用戶端 Proxy。
  • 使用「Web 服務瀏覽器工具」將 Web 服務發佈到「廣泛描述、探索與整合 (UDDI)」登錄。

在 RAD 6.0 中開發的 Web 服務必須在 Web 或 EJB 專案中建立,且必須包含符合下列標準的工作成果:

  • Web 服務定義語言 (WSDL) 1.1 版
  • 簡式物件存取通訊協定 (SOAP) 1.1 版(包括 Apache SOAP 2.2 和 2.3 實作)
  • 廣泛描述、探索與整合 (UDDI) 2.0 版
  • Web 服務檢查語言 (WSIL) 1.0 版
  • Java API for XML-based Remote Procedure Call (JAX-RPC),又稱為 JSR-101
  • JSR-109 和 JSR-921(實作企業 Web 服務)
  • Web Services Interoperability (WS-I) Basic Profile 1.0(選用性標準)
  • WS-Security

如需這些主題的相關資訊,請參閱「概念:Web Services for J2EE」。

由上而下的開發

由上而下的開發方法可讓您利用 WSDL 文件包含的 Web 服務抽象定義,並產生具體的實作。 (附註:RAD 6.0 也提供精靈來建立 WSDL 文件)。支援下列兩種方法:

  • 從 WSDL 文件建立綱要 Java Bean

    您可以從 WSDL 文件建立綱要 Java Bean,然後公開為 Web 服務。產生的 Java Bean 方法對應至描述 WSDL 文件的操作,且包含可以取代的不重要實作。 這種方式及產生的工作成果有下列注意事項:

    • 您可以輸入 WSDL 文件的 URI,或者,輸入 WSIL 或 HTML 文件的 URI,指向做為 Web 服務來源的 WSDL 檔案。
    • WSDL 檔案必須包含服務元素。您也可以為產生的 Web 服務產生標準化 WSDL 參照 (WSIL) 文件。
    • 產生的 Web 服務必須在 Web 專案中建立。
  • 從 WSDL 文件建立綱要 EJB

    同上,這種方式也可讓您從 WSDL 文件建立綱要 Stateless Session EJB,並公開為 Web 服務。 EJB 中的方法對應於描述 WSDL 文件的操作,且包含可以取代的不重要實作。 這種方式及產生的工作成果有下列注意事項:

    • 這種方式僅適用於以 IBM WebSphere 第 6 版做為 Web 服務執行環境的情況(請參閱「部署相依性」)
    • 您可以輸入 WSDL 文件的 URI,或者,輸入 WSIL 或 HTML 文件的 URI,指向做為 Web 服務來源的 WSDL 檔案。
    • WSDL 檔案必須包含服務元素。您也可以為產生的 Web 服務產生標準化 WSDL 參照 (WSIL) 文件。
    • 產生的 Web 服務必須在 EJB 專案中建立。 此外,建立的「路由器」專案可讓 Web 服務透過 HTTP 傳輸機制來接收要求(附註:這種方式不支援 JMS 傳輸)。 「路由器」專案可以是 Web 或 EJB 專案,不能是含有 Web 服務的相同專案,但必須在相同的內含 EAR 檔案中。

由下而上的開發

由下而上開發的目標將現有的應用程式元件或資源公開為 Web 服務。以下討論各種方法。

  • 從 Java Bean 建立 Web 服務

    這種方式可讓您選取現有的 Java Bean,並將方法公開為 Web 服務。產生的工作成果包括:

    • WSDL 檔案:這個檔案說明 Web 服務,副檔名為 .wsdl。您有三種 WSDL 樣式可以選擇(Document/Literal、RPC/Literal 及 RPC/Encoded)。關於每一個選項的互運性影響,請參閱 WS-I Basic Profile 標準。
    • 服務端點介面 (SEI):此 Java 介面定義 Web 服務的方法。檔名具有 _SEI 字尾。
    • Web 服務部署描述子:webservices.xml 檔案指定 Web 服務的實作和部署詳細資料。
    • JAX-RPC 對映檔:這些檔案定義 Web 服務的 Java 元素和 WSDL 之間的對映。
  • 從 EJB 建立 Web 服務

    您可以將 Stateless Session Bean 的方法公開為 Web 服務。產生的工作成果類似於 Java Bean 產生的工作成果, 且包含 WSDL 檔案、SEI、Web 服務部署描述子及 JAX-RPC 對映檔。這種方式及產生的工作成果有下列注意事項:

    • 產生的 Web 服務必須在 EJB 專案中建立。
    • 必須建立「路由器」專案,Web 服務才能接收用戶端的要求。如果您使用 SOAP over HTTP 做為傳輸方法,請將「路由器」專案建立為 Web 專案。 否則,如果用戶端使用 SOAP over JMS,請建立為 EJB 專案(在此情況下,JMS 路由器實作為訊息驅動 Bean)。 「路由器」和 Web 服務專案不能相同,但必須放在相同的 EAR 檔案中。
    • 如果您使用 SOAP over JMS 傳輸,則必須在伺服器中配置 JMS 提供者。您也無法利用 Web 服務瀏覽器來測試 Web 服務。
  • 從 DADX 檔案建立 Web 服務

    這種方式可讓您將透過 DB2 XML Extender 或一般 SQL 陳述式存取的 DB2 資料包裝在 Web 服務內。 透過 DB2 XML Extender 存取的資料由 XML 文件組成,這些文件利用「文件存取定義 (DAD)」文件來對映至 DB2 資料庫。 此方法的起點是 DADX 檔案,指定如何使用一般 SQL 陳述式或 DAD 檔案中定義的操作來建立 Web 服務。 產生的工作成果包含標準的 WSDL 檔案、SEI、Web 服務部署描述子及 JAX-RPC 對映檔。這種方式及產生的工作成果有下列注意事項:

    • 這種方式僅適用於以 IBM SOAP 做為 Web 服務執行環境的情況(請參閱「部署相依性」)。
    • 您可以選擇利用一或多個 SQL 陳述式、儲存程序及 DAD 檔案的組合來產生 DADX 檔案。
    • DADX 檔案應該放在 DADX 群組中,定義群組中的 DADX 檔案所共用的 JDBC 連線及其他資訊。
    • 產生的 Web 服務必須在 Web 專案中建立。
  • 從 URL 建立 Web 服務

    您可以從 URL 建立 Web 服務,直接存取遠端伺服器上執行的 servlet。 此精靈可讓您用埠、操作及參數來描述 servlet 的介面,並產生 WSDL 文件來描述產生的 Web 服務。 這種方式及產生的工作成果有下列注意事項:

    • 這種方式僅適用於以 IBM SOAP 做為 Web 服務執行環境的情況(請參閱「部署相依性」)。
    • 通常,埠對應於 URL 的網域/主機名稱、操作對應於 Servlet 環境定義根目錄和 URI 部分,參數對應於 servlet 的輸入參數。
    • 產生的 Web 服務必須在 Web 專案中建立。
    • 由於已由主動式 URL 實作,沒有可部署的 Web 服務。
  • 從部署描述子 (ISD) 檔案建立 Web 服務

    部署 Web 服務時,配置和執行時期屬性已定義在 ISD 部署描述子檔案中。 這個檔案對於 SOAP 執行環境提供給用戶端的服務提供相關資訊,例如,URI、方法、實作類別(JavaBeans 和 EJB)、序列化常式及解除序列化常式。 您可以利用這項資訊從 ISD 檔案建立 Web 服務。 這可讓您包裝現有的 Web 服務實作,並重新部署為新的 Web 服務,不必重新指定配置和對映資訊。這種方式及產生的工作成果有下列注意事項:

    • 這種方式僅適用於以 IBM SOAP 做為 Web 服務執行環境的情況(請參閱「部署相依性」)。
    • 產生的 Web 服務必須在 Web 專案中建立

開發準則

下列各節說明在 RAD 6.0 中開發 Web 服務的重要事項。其中根據 Web 服務的部署和 WS-I 標準需求來描述可用的開發選項。

部署相依性

可用來建立 Web 服務的方法(由上而下和由下而上)取決於您鎖定部署的執行環境。RAD 6.0 支援下列 Web 服務執行環境:

  • IBM WebSphere 第 6 版

    這是 RAD 6.0 中預設的 Web 服務執行環境,也是正式作業中建議採用的執行環境。 支援 JMS 和 HTTP 傳輸通訊協定,因為可讓 Web 服務用戶端和伺服器透過 HTTP 連線或 JMS 佇列與主題來通訊。 請注意,如果會透過 JMS 傳輸來存取 Web 服務,則 Web 服務必須實作為 EJB。

  • IBM SOAP

    IBM SOAP 執行環境支援 Apache SOAP 2.2 和 2.3 版通訊協定(請參閱「資源」),也是 WebSphere Studio 5.0 版和更早以前的版本唯一支援的 Web 服務執行環境。 應該只基於向後相容性來使用。

  • Apache Axis 1.0

    此執行環境支援 Apache Axis 1.0 版 SOAP 實作(請參閱「資源」)。 不建議在正式作業中使用,因為可能會有 Web 服務互運性的問題(請參閱工具說明內容的「使用 Apache Axis 1.0 執行環境的問題」)

建議您選擇 IBM WebSphere 第 5 版執行環境,除非部署目標另外需要使用 Apache SOAP 或 Apache Axis 實作 (如真如此,請注意工具的「Web 服務限制」說明內容中描述的相關限制)。 表 1 彙總 RAD 6.0 在每一個執行環境中支援的 Web 服務建立方法。

Approach IBM WebSphere 第 6 版 IBM SOAP Apache Axis 1.0
從 WSDL 文件建立綱要 JavaBean
從 WSDL 文件建立綱要 EJB
從 JavaBean 建立 Web 服務
從 EJB 建立 Web 服務
從 DADX 建立 Web 服務
從 URL 建立 Web 服務
從 Web 服務部署描述子 (ISD) 建立 Web 服務

表 1 - 執行環境支援的 Web 服務建立方法

WS-I 基本設定檔標準

Web Services-Interoperability (WS-I) Basic Profile 是 WS-I 組織公佈的一套需求,提倡跨平台、作業系統及程式設計語言的 Web 服務互運性。 其中定義 WSDL 和通訊協定 (SOAP/HTTP) 流量需求,Web 服務必須滿足這些需求,才符合 WS-I 標準。 RAD 6.0 包含驗證工具,可用來驗證 Web 服務是否符合 WS-I Basic Profile 1.0 需求。 在開發 Web 服務或在開發後執行驗證工具之前,您可以設定工作區或專案的 WS-I 依循層次(需要、建議或忽略(預設值))。

建議您開發符合 WS-I Basic Profile 的 Web 服務。應該遵循下列準則以符合此標準:

  • 使用 Document/literal 或 RPC/literal 做為 WSDL 樣式(RPC/encoded 不符合 WS-I 標準)
  • 使用 SOAP over HTTP 做為訊息和傳輸通訊協定(SOAP over JMS 不符合 WS-I 標準)
  • 不使用 Web 服務的任何安全選項(XML 數位簽章和 XML 加密不符合 WS-I 標準)

用戶端 Proxy 注意事項

  • 在建立 Web 服務時,您可以選擇產生兩種用戶端 Proxy:
  • Java Bean Proxy

此 Java Bean 用戶端 Proxy 可讓您透過遠端程序呼叫來呼叫 Web 服務方法。 如果選擇 IBM SOAP 或 Apache Axis 1.0 做為用戶端執行環境,則只能在用戶端 Web 專案中建立。 否則,如果在 IBM WebSphere 第 6 版用戶端執行環境中,則可以在 Web、Java、EJB 或「應用程式用戶端」專案中建立。

  • Web 服務使用者定義的函數

這個選項可讓您對於要呼叫的 Web 服務的每一個方法建立 DB2 使用者定義的函數 (UDF)。 資料庫中必須安裝 DB2 Web 服務消費者 UDF 套件和 DB2 XML Extender。 UDF 建立之後要新增至資料庫定義中,而所有相關的用戶端工作成果儲存在 Web 專案中。

  • 對 Web 服務和 Web 服務用戶端選取不同的 EAR,以避免發生執行時期錯誤。 切記,用戶端和 Web 服務是不同的應用程式,且 Web 服務主要不是用於應用程式之間的通訊。

資源

如需下列主題的相關資訊,請參閱相對應的鏈結。