通過Java編程處理XML 服務SOA發布者:本站 時間:2020-05-06 15:05:45
很多大型軟件供應商還在開發各自的 SOA 產品。因此,SOA 領域目前綜合了各種技術,包括 Java Business Integration (JBI)、Intelligent Event Processing 和 Business Process Execution Language (BPEL) 服務器。因此,在將各種技術融入到一個解決方案之前,想要從 SOA 中受益的用戶組織很可能需要進行大量投資。通過對 SOA 布置如此高的復雜性,行業提前為實現供應商定位鋪好了道路,即使 SOA 其中的一項承諾是實現基于標準、面向組件、獨立于供應商的計算。在開始代價高昂的遷移過程前,用戶組織能夠獲得一些實用的 SOA 使用體驗嗎?
為回答這個問題,本文通過簡單的 XML 和一些 Java 代碼演示了幾個重要的 SOA 原理。本文并不打算介紹 SOA 領域中的所有內容;相反,我們只介紹其中的一些關鍵部分。例如,您可以考慮使用 RSS 發布 XML 服務定義。但是,在本文的例子中,傳輸機制使用的是 Java 工具。
Java 技術和 XML
Java 技術和 XML 幾乎成為了同義詞。實際上,我通過 IBM 工具對整篇文章應用了 XML 格式。盡管 XML 取得了顯而易見的巨大成功,仍需注意 XML 是一種相當笨拙的技術,例如 和 標簽會增加大量帶寬并在通過網絡傳輸數據時處理系統開銷。然而,忽略這種特性,XML 確實提供了一些強大的處理工具。這些工具(本文將探討其中的兩種)基本上解決了數據表示和解析問題(后者長久以來一直難以解決)。現在,通過使用 XML 工具,各種技術級別的程序員都可以實現專業的標準化解析。
Java 技術為 XML 數據處理提供了一些真正強大的工具(請參見側欄 Java 技術和 XML)。如果將 清單 1 中的內容看作是給定數據集的基于 XML 的呈現,那么您還可以使用其他方式進行呈現。構成 清單 1 基本內容的原始數據一般保存在數據庫中。因此,您如何將這些數據打包成 XML?
這種聚焦式方法的優點就是用戶組織中的 Java 開發人員可以使用其中的理念構建自己的簡單的試驗性 SOA。這種試驗模式有助于組織實現 SOA 的商業效益。后者包含對業務服務建模,例如計算服務、用戶自助服務、更好的自動化服務和更具響應性的服務。您可以將上述的遷移作為一個獨立試驗實現,與現有業務流程并行運作。
用戶組織不需要進行大型投資就可實現一個試驗性質的 SOA。通過這種方式,陳述特定于組織的 SOA 需求時可以脫離任何供應商實現。實際上,某些較小的用戶組織可以繼續使用他們的試驗性 SOA 模式,只在后期遷移到軟件供應商提供的大型商用解決方案。
自助服務趨勢
對于大多數服務提供商來說,自助服務正在發展為一種趨勢 — 特別是那些資金緊張的 ISP。因此,如果您需要更多帶寬(進行下載或玩在線游戲),您可以登錄到提供商的 Web 站點并通過 Web 頁面自動升級與提供商的連接。讓我們看一個具體的例子:清單 1 展示了一個簡單的基于 XML 的用戶服務配置文件。
清單 1. 一個簡單的基于 XML 的服務描述
< ServiceInstance>
< Customer>Josephine Bloggs< /Customer>
< Package>Internet< /Package>
< Bandwidth>1mbps< /Bandwidth>
< DownloadLimit>1Gbyte< /DownloadLimit>
< Uptime>95< /Uptime>
< /ServiceInstance>
代碼解釋了這個用戶 XML 服務模型。該模型包括:
一個服務實例
客戶名字
服務包的名稱
已配置的帶寬量
每月允許的下載限度
提供商正常運行時間保證
無疑,服務定義可以比此處的例子復雜很多。其他內容可能包括客戶地址、賬單明細、往返延遲、加密和服務信用信息等。重點是,越來越多的提供商提供如 清單 1 所示的 Web 訪問細節。某種程度上講,這種嘗試可以減少支持電話的花銷和發生頻度。有趣的是,這種基于 Web 的服務可以使用戶覺得為他們提供服務的是較為先進的提供商。這實現了雙贏的局面,因為客戶可以更好地訪問他們的服務數據,而提供商可以銷售無需他們插手的服務包。授權的用戶可以修改如 清單 1 所示的一些服務參數 — 例如,配置的帶寬。隨之修改的是用戶每月的訂購費用。
因此,清單 1 中的代碼形成了基于 XML 的服務模型的基礎。通過簡單地與在線表單進行交互,用戶可以修改可寫的服務元素(例如帶寬)。通過在線表單進行的修改將被記錄,然后反映到可由用戶配置文件修改的后端服務中。這是一種實現自助服務的標準方法。
然而,您將要了解的是另一種更加松散耦合的自助服務 — 使用這種服務,用戶可以通過在網絡中傳輸 清單 1 中的 XML 內容修改數據。在這種場景中,所傳輸的 XML 內容可通過一個 Java 客戶機進行修改,后者可運行在臺式機、筆記本電腦、甚至某種資源受限的設備上(例如手機),然后將數據發回給網絡服務提供商。這種機制超越了基本的 HTML 頁面模型并采納了 SOA 思想。
將服務定義 XML 文檔傳輸給使用 Java 技術的客戶機
清單 2 中的內容摘取自本文附帶的 Java 文件 encodeXML.java.(相關文件可從 下載 部分獲得)。encodeXML.java 類對 XMLEncoder 類的對象進行了實例化。如您所見,這個對象隨后在當前目錄中創建了名為 xmldata.xml 的文件。下一步是將 XML 數據值插入到文件中,這可以通過調用一連串的 writeObject() 方法實現(清單 2 對此進行了說明)。顯然,在生產環境中,清單 2 中硬編碼的文本字符串將來自數據庫這樣的持久性存儲。無論何種情況,可以看到 XML 數據文件的創建非常簡單。
清單 2. 使用 XML 格式編碼數據
選擇我們,優質服務,不容錯過
1. 優秀的網絡資源,強大的網站優化技術,穩定的網站和速度保證
2. 15年上海網站建設經驗,優秀的技術和設計水平,更放心
3. 全程省心服務,不必擔心自己不懂網絡,更省心。
------------------------------------------------------------
24小時聯系電話:021-58370032