本研究實作系統的過程中,需要幾種不同的開發工具,主要開發環境使用
JAVA 程式語言,在本研究中主要使用的工具為 AXIS 與 OMAR,JDOM 的功用
在於 XML 檔案之讀取以及寫入之動作,AXIS 主要用途在於資訊網服務之開發,
而 OMAR 主要用於實作 ebXML 註冊儲存庫,接下來的章節我們分別來探討
JDOM、AXIS 以及 OMAR。
2.5.1 JDOM
一般在控制 XML 檔時,W3C 有提供一套依標準所制定出的 API,稱為 DOM
API ,然而對於 JAVA 程式的程式設計師而言,DOM API 卻不能完全滿足 JAVA
程式設計師的需求,Wes Biggs 與 Harry Evans[21]在文獻中提到當我們在 JAVA
的環境中使用 DOM 所面臨到的限制,而會產生這些限制主要的原因在於 DOM
API 並不是專為 JAVA 所設計的 API,因此對於 JAVA 的程式設計師而言並不方
便,支援度也低,而 JDOM[22]卻改善了這些缺點,主要下面三個優點:
•
JDOM 是 Java 平台專用的:JDOM API 盡可能的使用 Java 語言中所內
建的 String,因此 Text 也是使用 String 實作 。JDOM API 還可以利用Java 2 平台的類(Class),如 List 和 Iterator,JDOM 為程式設計者提供
了一個豐富的並且和 Java 語言類似的環境。
• 沒有層次性:在 JDOM 中,Element 實作了 XML 元素,Attribute 實作
了 XML 屬性,Document 實作了 XML 檔案本身。由於在 XML 中這
些不同的實作都代表了不同的概念,因此在引用時可以依不同的類型
引用,而不是作為一個含糊的「Node」。
• 類(Class)驅動:因為 JDOM 對象就是像 Document 、 Element 和
Attribute 這些類的直接實作,因此創建一個新 JDOM 對象就如在
Java 語言中使用 new 操作符一樣容易。代表著使用 JDOM API 不需
要像 DOM API 一樣進行工廠化介面配置,因此我們可以很簡單的使用
JDOM。
由上述的介紹我們可以得知,在 Java 的環境中,要操控 XML 檔案,對 XML
檔案做存取、處理及輸出 XML 資料之解決方案,最簡單的方法莫過於使用
JDOM,因此在本研究中選擇採用 JDOM 做為解決方案。
2.5.2 Axis
Axis[23]是一個 SOAP 引擎,又不單只是個 SOAP 引擎。Axis 建立在 Apache
SOAP 基礎上的 Apache 專案。此一專案致力於建立一個比 SOAP 更模組化、更有
彈性也更高階的 XML 訊息傳輸架構。透過此架構的建立,可直接由 WSDL 產生
服務架構程式碼,或直接由服務產生 WSDL 描述檔。此專案的發展將使得網路服
務的開發更有效率。Axis 除了 SOAP 引擎的基本功能還包含:
• 一個簡單而獨立的伺服器
• 可被插入(plugs-in)Servlet 引擎(像是 Tomcat)做為一個服務
• 提供對於 WSDL 提供更多的支援
• 一個發行工具,協助將 WSDL 轉換為 Java 程式碼
• 一些網路服務範例程式
• 一個可以用來監視 TCP/IP 封包的工具
Axis 是 Apache SOAP 的第三代工具(Apache SOAP 是由 IBM 的 SOAP4J 專
案演化而來)。在當時 Apache SOAP 第二版的設計者在討論如何將該引擎設計的
更有彈性、更容易安裝、而且可以同時處理 SOAP 和即將被 W3C 通過的 XML
傳輸標準(也就是後來的 WSDL)。經過一連串的討論和提案,最後開展了 Axis
這個專案。
Axis 最主要的價值就在提供數種簡單的模式協助程式設計師開發網路服
務。包括如下:
• 最簡單的模式,直接可以指定將某個物件以網路服務的方式發佈。Axis
會自動產生相關的程式碼和產生 WSDL。程式設計師不需要去瞭解詳
細的網路服務定義即可撰寫網路服務。
• 由 WSDL 產生 Java 程式碼。Axis 會產生此網路服務所需使用到的大
部分程式碼,程式設計師只要針對所提供的服務撰寫關鍵的程式碼(例
如服務規則、和後端系統的連接)即可。
• 由 Java 程式碼產生 WSDL。藉由提供 Java 類別或是介面,可產生出
WSDL 定義檔。在經由此 WSDL 產生必要的程式碼,以建構網路服務。
藉由以上數個模式的提供,程式設計師可以更快速的開發網路服務,而不需
要浪費時間在重複程式碼的撰寫。且此專案目前已經成熟並有發布正式 1.3 版,
因此我們採用該工具開發資訊網服務。
2.5.3 OMAR
Tony Graham [24]在文獻中提到 OMAR(Object Metadata and Repository)是由
freebXML.org 依據 ebXML Registry/Repository 標準所開發的下一代開放式程式碼
之實作。同時 OMAR 支援了 OASIS ebXML Registry 3,.0 版的規格中訂定的所有
必要功能與絕大多數的選擇功能,目前這個實作支援多種的客戶端來存取 OMAR
伺服器,包括 browser-based thin client、Swing-based client 與一個命令列的管理工
具。
OMAR 本身使用 SOAP 與 HTTP 協定,同時也支援在 JAXR provider JVM 的
程序中執行。其他 ebXML 的功能還包括 role-based access control、automated
cataloging of any content、content-based event notification、cooperating registries、
registry-managed version control 與 parameterized stored queries。
OMAR 提供了很多方法供使用者將資料以及該資料的 metadata 放進
repository 中,也提供很多方法讓你對這些資料進行處理,以及將資料由 repository
中取出。
OMAR[18]無論在功能上,或是使用上都逐漸趨向完整,是目前發展狀態最
快的 ebXML Registry 系統,不過也由於目前正處於發展階段,在版本的相容性上
依然有部分的問題存在,而在本研究中採用的是目前最新的 OMAR 3.0 beta1。