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