開始之前
關於本系列
本教程是前兩篇關於 WSRF::Lite 的教程的後續文章。第一篇教程 “使用 WSRF::Lite 構建 WS-Resources” 介紹了 WSRF、WS-Addressing 標準和 WSRF::Lite (它是用 Perl 實現的 WSRF)。其中示範了如何使用 WSRF::Lite 構造一個類比計數器的 WS-Resource,以及如何構造客戶機來查詢或更新計數器 WS-Resource。
第二篇教程 “Build secure WS-Resources with WSRF::Lite and WS- Security” 採用了第一篇教程中的計數器 WS-Resource 樣本,說明了如何使這一示 例更加安全。文中採用了兩種方法:一種方法使用了傳輸層安全性(Transport-level Security ,TLS);另一種方法使用 WS-Security 建立數位簽章訊息。
關於本教程
本教程採用 “使用 WSRF::Lite 構建 WS-Resources” 中的計數器 WS- Resource 樣本,在本文中您將學習如何使用 網頁瀏覽器查詢和更新該計數器。文章首先簡 要回顧了 WSRF、WSRF::Lite 和計數器 WS-Resource,然後介紹了在 WSRF::Lite 中如何使 用 HTTP 訪問 WS-Resources,接下來介紹了 XSLT,說明了如何使用 XSLT 將計數器 WS- Resource 的 XML ResourcePropertyDocument 轉換成 HTML,以便使其顯示在瀏覽器中。最 後,介紹了如何使用 JavaScript 代碼自動更新瀏覽器頁面以及如何修改計數器 WS- Resource 的值。
先決條件
您應該熟悉 Perl、WSRF 和 WSRF::Lite。如何不熟悉 WSRF::Lite 或者 WSRF,建議您 先閱讀本系列文章的第一篇教程 “使用 WSRF::Lite 構建 WS-Resources ”。 但是不必閱讀第二篇教程 “Build secure WS-Resources with WSRF::Lite and WS- Security” ,因為這篇教程著眼於安全性。文中介紹並討論了 XSLT、CSS 和 JavaScript 編碼,但是您會發現參考 參考資料 中更詳細的背景知識(包括一些教程), 可能更有裨益。
系統需求
要運行本教程中的樣本,需要在電腦上運行 Linux® 和 WSRF::Lite V0.8.2(或 更高版本),還必須安裝 Perl 模組 XML::CanonicalizeXML。運行 WSRF::Lite 並不需要 該模組,但是它可以支援使用 Ajax 的訪問,這也是本教程的重點之一。需要使用 Mozilla Firefox 或 Windows® Internet Explorer® 來查詢並更新本文使用的樣本計數器 WS-Resource。此外,還需要使用 HTTP 客戶機命令列,例如 curl 或 wget。
WSRF 和 WSRF::Lite
本小節簡要回顧 WSRF 和 WSRF::Lite。請參閱 參考資料 獲得更多的詳細介紹。如果您 熟悉 WSRF::Lite,或者剛剛學習了前一篇教程 “使用 WSRF::Lite 構建 WS- Resources”,您可以跳過本小節,直接閱讀下一個小節。
Web 服務資源架構
WSRF 是一個 OASIS 標準集,用於通過 Web 服務介面操縱有狀態的資源。WSRF 中的重 要概念是 WS-Resource,它由一個資源和 Web 服務構成,通過其中的 Web 服務可以訪問其 資源。與每個 WS-Resource 相關聯的是一個屬性集,稱為 ResourceProperties,通過 WSRF 定義的一組操作可以對該屬性集進行查詢和修改 。
WSRF 還定義了一些 WS-Resource 可具有的標準 ResourceProperties — 例如當 前時間,這樣在客戶查詢 WS-Resource 時,就可以確定 WS-Resource 的 ResourceProperties 在什麼時候具有某組特定值。ResourceProperties 的完整集合稱為 ResourcePropertyDocument,WSRF 定義了一個(GetResourcePropertyDocument) 操作來 擷取完整的 ResourcePropertyDocument,還定義了另一個操作 (PutResourcePropertyDocument),用於使用新的 ResourcePropertyDocument 代替 WS- Resource 現有的 ResourcePropertyDocument,這樣客戶機就可以更新 WS-Resource。
WS-Resource 可以是持久的,也可以是暫時的。為了對 WS-Resource 的暫時特性提供支 持,WSRF 定義一個名為 TerminationTime 的 ResourceProperty。客戶可以改變這個 ResourceProperty 來控制 WS-Resource 的生存期,還可以使用 Destroy 操作來請求立即 終止 WS-Resource。
WSRF 很有用,因為它提供了一種標準方法來處理帶有一些相關狀態的實體。這種方法允 許重用客戶機和伺服器代碼,提高了實現互操作的可能性。WSRF 的標準集包括: