穎科DB2XML白皮書
InfOnCall DB2XML
2001/12/05
1.術(shù)語
JDBC, ODBC, XML parser, DB2XML
2. 簡介
InfOnCall 的DB2XML工具產(chǎn)品,讓您不必編寫代碼就可以從關(guān)系數(shù)據(jù)庫中得到結(jié)構(gòu)化的XML文檔,它是數(shù)據(jù)庫整合、數(shù)據(jù)庫交換以及數(shù)據(jù)庫轉(zhuǎn)換的必備工具。它可以工作在任何的平臺(UNIX/NT)中,連接到任何存在的數(shù)據(jù)庫(MS SQL Server, IBM DB2, Oracle, MySQL, MS Access, Informix, Sybase 等等 )。除此以外,DB2XML工具還提供了非常靈活、容易使用的樹型結(jié)構(gòu)的查詢工具,讓你能夠從復(fù)雜的數(shù)據(jù)中選取出你所需要的數(shù)據(jù),并且非常方便地發(fā)布為與應(yīng)用有關(guān)的XML或者HTML格式的數(shù)據(jù)。
InfOnCall DB2XML包含了一些Java類,這些類可以當(dāng)作API,在一個單獨的運用程序中被調(diào)用,也可以當(dāng)成一個Java Servlet,提供基于Web的可視化轉(zhuǎn)換界面。該產(chǎn)品是基于模型驅(qū)動的,根據(jù)用戶特定的一個或者多個SELECT聲明,將XML文檔模型化成一系列的表對象?梢赃x定需要輸出的標(biāo)志名稱,以及是否包括文檔中的數(shù)據(jù)庫元數(shù)據(jù)。返回結(jié)果可以是一個文件,或者數(shù)據(jù)流、DOM對象和一個支持傳輸?shù)腦SL。轉(zhuǎn)換后的XML文檔可以通過XSL輸出為靈活的表現(xiàn)格式。
3. 背景
目前許多的Internet站點都建立在主流的客戶機/服務(wù)器結(jié)構(gòu)之上,其中后臺(服務(wù)器端)的數(shù)據(jù)的存儲和獲取必然離不開數(shù)據(jù)庫,F(xiàn)在幾乎所有的信息應(yīng)用系統(tǒng)都涉及到數(shù)據(jù)庫,因此數(shù)據(jù)庫的存在已經(jīng)非常普遍和深入。數(shù)據(jù)庫技術(shù)從最初的層次型數(shù)據(jù)庫到面向?qū)ο髷?shù)據(jù)庫已經(jīng)經(jīng)歷了深刻的發(fā)展,數(shù)據(jù)庫應(yīng)用產(chǎn)品也層出不窮,如Foxbase, Informix, Sybase到SQL Server,DB2,Oracle等等,從產(chǎn)品的種類到不同的版本,數(shù)據(jù)庫的功能和特性在不斷的演進之中。
Internet應(yīng)用和技術(shù)的發(fā)展,特別是XML技術(shù)推出,使得傳統(tǒng)的面向?qū)ο蟮姆植加嬎惴绞街饾u演化到消息驅(qū)動的服務(wù)方式。數(shù)據(jù)庫和應(yīng)用之間的耦合關(guān)系也將越來越松散,取而代之的將是以XML方式編碼的數(shù)據(jù)在不同的應(yīng)用之間通過Internet協(xié)議的傳輸。隨著XML和相關(guān)標(biāo)準(zhǔn)的完善和應(yīng)用的日益廣泛,許多企業(yè)和應(yīng)用開發(fā)者迫切能提供方便有效的工具,能夠?qū)⑻峁⿺?shù)據(jù)庫和XML文件之間的數(shù)據(jù)轉(zhuǎn)換。穎科公司提供的DB2XML(InfOnCall DB2XML )轉(zhuǎn)換工具即是滿足該應(yīng)用需求的產(chǎn)品。
4. 系統(tǒng)架構(gòu)
DB2XML中通過JDBC或JDBC-ODBC橋接各種現(xiàn)存的數(shù)據(jù)庫,訪問數(shù)據(jù)庫中的表;通過XML parser構(gòu)造出代表數(shù)據(jù)庫內(nèi)容的XML文件。DTD文件描述了從數(shù)據(jù)庫中的表到XML文件的對應(yīng)關(guān)系。上圖描述了DB2XML的輸入輸出關(guān)系。事實上DB2XML是按照以下步驟完成轉(zhuǎn)化工作的:
5. 產(chǎn)品特性
InfOnCall的DB2XML的功能特性在于:
我們都熟悉從關(guān)系型數(shù)據(jù)庫查詢成為平整數(shù)據(jù)的查詢結(jié)果。根據(jù)該平整的輸出結(jié)果,你必須針對每種情景編寫許多的代碼,這不僅浪費了時間,也增加了成本。然而,InfOnCall的DB2XML能夠自動將查詢結(jié)果轉(zhuǎn)換為層次結(jié)構(gòu)的XML格式,這樣保留了數(shù)據(jù)之間的關(guān)系,并且刪除多余的數(shù)據(jù)。這使得后續(xù)的對數(shù)據(jù)的使用和處理相當(dāng)?shù)暮唵魏挽`活,極大地節(jié)省了時間、降低了成本。
目前很多的數(shù)據(jù)庫都已經(jīng)部分的提供了對XML的支持,如在SQL Server2000和Oracle9i中。這樣的數(shù)據(jù)庫支持有兩個特點:一是和特定的數(shù)據(jù)庫系統(tǒng)緊密結(jié)合,其優(yōu)點是利用該數(shù)據(jù)庫對XML的處理比較穩(wěn)定高效,但是如果要應(yīng)用于不同數(shù)據(jù)庫之間的數(shù)據(jù)轉(zhuǎn)換或者數(shù)據(jù)同步它就無能為力了,同時應(yīng)用的場合(平臺或者編程語言)都有一定的限制;另外一個特點是XML輸出結(jié)構(gòu)比較固定,不便于靈活的處理和發(fā)布。而用戶往往需要按照自己的要求靈活地進行發(fā)布和輸出,既要滿足穩(wěn)定有效而且要有靈活易用的優(yōu)點。
InfOnCall的DB2XML充分地考慮到以上一些用戶需求,考慮了不同數(shù)據(jù)庫的數(shù)據(jù)類型、操縱方法、數(shù)據(jù)文件格式等差異,它的設(shè)計和應(yīng)用層次建立在更通用的數(shù)據(jù)庫開放連接接口基礎(chǔ)上(如JDBC),而不是針對特定的數(shù)據(jù)庫,可以靈活地從數(shù)據(jù)庫中導(dǎo)出數(shù)據(jù),也可以在不同類型的數(shù)據(jù)庫之間交換數(shù)據(jù)(如數(shù)據(jù)復(fù)制或同步更新),而不必定制專門的轉(zhuǎn)換程序。
所有從你的數(shù)據(jù)庫中輸出的數(shù)據(jù)都是樹型的結(jié)構(gòu)化數(shù)據(jù),是標(biāo)準(zhǔn)的XML 格式。這樣使得你能夠通過一個數(shù)據(jù)源提供多種不同的顯示。你能用來將同一數(shù)據(jù)發(fā)布在網(wǎng)站和無線設(shè)備中,以及用數(shù)據(jù)交換和數(shù)據(jù)庫轉(zhuǎn)換等你需要的場合。這可以通過結(jié)合XSLT來實現(xiàn)。除了輸出為XML格式之外,所有的輸出都可以格式化為HTML,這樣就非常便于在Web應(yīng)用中使用。
InfOnCall 的DB2XML產(chǎn)品具有跨平臺和數(shù)據(jù)庫的特點。它可以通過JDBC和ODBC(借助于JDBC-ODBC橋)訪問所有的數(shù)據(jù)庫。能夠支持多項數(shù)據(jù)庫Schema,多個數(shù)據(jù)庫連接以及多種數(shù)據(jù)庫對于跨項目和平臺的設(shè)計顧問或開發(fā)者,DB2XML正是你追求的最佳助手
所有由InfOnCall的DB2XML工具產(chǎn)生的XML文檔都完全遵循W3C制定的XML1.0標(biāo)準(zhǔn)。目前這些文檔具有格式良好的特。在以后的版本中將添加語義有效性的檢查,即提供對DTD和XML Schema的支持。
I nfOnCall的DB2XML的工具使用很簡單方便,在實現(xiàn)和再次開放是非常便捷,用戶只要有基本的SQL和數(shù)據(jù)庫的支持就可以操作使用,基本不需要陡峭的學(xué)習(xí)曲線。在實際使用時,用戶通過Web訪問登陸頁面,設(shè)置數(shù)據(jù)庫的連接方式、數(shù)據(jù)源的URL、數(shù)據(jù)庫訪問帳號(用戶名和密碼)以及查詢SQL語句。當(dāng)運行轉(zhuǎn)換按鈕時,將訪問和查詢相應(yīng)的數(shù)據(jù)庫并輸出為XML的各式。另外用戶也可以方便地指定結(jié)合的XSL文件,將其轉(zhuǎn)換為其他各式的XML文件。
6. 應(yīng)用前景
1)電子商務(wù)應(yīng)用中的數(shù)據(jù)交換
在E-Commerce應(yīng)用系統(tǒng)中,往往需要在多種應(yīng)用、平臺之間共享、交換數(shù)據(jù)。為了解決異構(gòu)應(yīng)用系統(tǒng)之間的通信問題,DB2XML將E-Commerce應(yīng)用中原有系統(tǒng)的數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一格式的XML。XML的靈活性和擴展性使其可以對不同應(yīng)用甚至是差異很大的應(yīng)用間的數(shù)據(jù)進行描述,尤其是對于那些專用于記錄數(shù)據(jù)的應(yīng)用。另外,XML具有自我描述的特性,結(jié)果是數(shù)據(jù)可以在不同的應(yīng)用間進行交換與處理而不必要求相應(yīng)的應(yīng)用程序是針對該數(shù)據(jù)定制的。
2)強大的網(wǎng)站內(nèi)容管理
目前HTML的將內(nèi)容和表現(xiàn)形式捆綁在一起的固有缺點使得原來的網(wǎng)站模式很難符合新的需求,特別是在商務(wù)之間相互通信的場合。XML的產(chǎn)生和相關(guān)技術(shù)的成熟,特別是基于XML的XHTML逐漸更新HTML,使得越來越多的網(wǎng)站逐漸升級到基于XML設(shè)計的網(wǎng)站。在這個過程中既要將新的內(nèi)容以XML的方式存儲和發(fā)布,同時也要考慮到兼容原來的數(shù)據(jù)。這就需要將原來的數(shù)據(jù)進行組織和轉(zhuǎn)換。對于數(shù)據(jù)庫,可以通過DB2XML將數(shù)據(jù)庫中的內(nèi)容轉(zhuǎn)化到XML來實現(xiàn)(Infoncall也提供了通用的HTML到XML的轉(zhuǎn)化工具HTML2XML)。用戶只要在目標(biāo)XML的DTD文件中定義一系列有意義的標(biāo)記,這樣基于該DTD文件從數(shù)據(jù)庫中產(chǎn)生出來的XML文檔就可以按照任意的條件進行查詢和檢索,甚至實現(xiàn)計算機自動檢索,而相應(yīng)的檢索引擎可以是通用的而不必局限于具體的應(yīng)用。
3)多種信息發(fā)布模式支持
Infoncall DB2XML也提供了這樣機制,既可以將HTML轉(zhuǎn)換為獨立于應(yīng)用的XML通用格式,然后通過XSL將 XML繼續(xù)格式化成HTML、WML或VoiceXML等。這樣通一次數(shù)據(jù)庫到XML的轉(zhuǎn)化,可以將數(shù)據(jù)庫中的內(nèi)容發(fā)布到Web、 Wap或語音渠道等。這將是新一代網(wǎng)站發(fā)展中的重要環(huán)節(jié)。
穎科公司供稿 CTI論壇編輯