摘要:傳統的供應鏈信息集成只是實現了供應鏈企業間信息的傳遞與共享,供應鏈各結點企業之間的聯接、合作、設計、競爭策略等方面良好的協調是集成化供應鏈管理的關鍵。因此需要供應鏈企業主動獲取供應鏈合作伙伴的信息。
關鍵詞:供應鏈;XML;主動集成;動態檢索;XQuery
中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2010)21-5804-02
Supply Chain Initiative to Integrate Information Technology Research
SUN Wei
(Jiangsu Food Science College, Huai'an 223003, China)
Abstract: The traditional supply chain information integration between enterprises is realized, and sharing information transmission chain of each node connected between enterprises, cooperation, the design, the competition strategy, coordinate the supply chain management is the key. Therefore need to supply chain enterprises to get a supply chain partner information.
Key words: supply chain; XML; proactive integration; dynamic retrieval; XQuery
1 基于XML的動態檢索技術分析
基于XML的動態檢索技術需檢索合作伙伴的信息系統,也就是對RDB進行檢索。由于市場競爭及信息安全的需要,核心企業通常不會開放自己的關系數據庫。因此,用戶必須通過XML視圖而來間接讀取關系數據庫。
XML動態檢索早期的檢索方式是,首先把企業的各種信息轉換成對應的XML視圖,然后查詢XML進行視圖檢索得到結果。這種檢索方式不能動態反映信息的變化,而且轉換頻繁,工作量大,因為它的轉換方法是基于RDB和XML視圖的轉換算法,是在靜態轉換基礎上實現檢索的。
采用了動態檢索機制的供應鏈信息集成技術,是將XML查詢語言XQuery轉換為SQL語言,然后通過SQL語言直接對RDB進行檢索。同時,從XQuery中提取的檢索標記結構,形成XML格式檢索結果,從而實現直接對關系數據庫的動態檢索。這種檢索過程對于企業用戶來說是透明的,就好像用戶自己在操縱XML視圖。
XQuery是一種XML的查詢語言。一句經典的話來形容XQuery,即“XQuery之于XML就象SQL之于數據庫中的表”。XQuery提供名為FLWOR表達式的特性,支持迭代及變量與中間結果的綁定。這類表達式對連接2個或多個文檔的計算、重構數據都很有用。
從FLWOR表達式我們可以看出其結構很像SQL的select語句,因而可以很自然地建立它們之間的對應關系。其中for部分相當于SQL中的from關鍵字,where部分相當于SQL中的where關鍵字,order by部分相當于SQL中的order by關鍵字,return部分相當于SQL中select關鍵字。雖然SQL中沒有與FLWOR表達式中let的直接對應關系,但“let $a=路徑表達式”相當于將路徑表達式對應結點與變量a綁定,在select語句中直接用路徑表達式對應的結點就可以了。圖1是一個簡單的XQuery到SQL的映射:
由于數據在XML模式和關系模式中的組織結構不同,兩種模式需要通過模式映射來建立聯系,因此XQuery到SQL的查詢轉換受限于所采用的模式映射策略。從XQuery到SQL的轉換結構如圖2所示。
模式映射模塊記錄了關系數據庫與XML模式間的對應關系,查詢轉換模塊里的轉換算法則可以根據模式映射模塊中的信息做適當的轉換。當用戶查詢核心企業的信息,首先要根據用戶的XML Schema生成一個XQuery查詢語句,查詢轉換模塊將會根據映射模塊的信息來執行轉換機制,將XQuery查詢轉換成一個相同語義的SQL查詢,在關系數據庫上執行此SQL查詢,并將返回結果轉換為XML格式的數據。
2 模式映射模塊
XQuery語句操作的對象是XML文檔中的元素或屬性,SQL語句操作的對象是關系模式的字段或關系表。在這兩種語句的轉換過程中,必要的模式映射信息主要有:XML模式中的某個元素是映射到關系模式的表還是字段。不同的模式策略,就需用不同的構造方法獲取信息。
因此,模式映射模塊要屏蔽XML模式與關系模式之間的映射,為查詢轉換模塊提供一個透明的模式映射操作接口,沒有必要考慮具體采用的是何種模式映射策略。這里,模式映射模塊主要由模式映射庫和操作接口兩部分組成:
2.1 模式映射庫
XML模式定義在XML Schema文件中,因此需要對Schema文件進行解析,并且將其映射到關系模式。映射信息會按照一定的規范存儲到模式映射庫,產生的關系模式中的表、表的結構等信息同樣也都會存儲在模式映射庫。
同時在映射庫上還要定義模式映射接口,這樣在進行查詢轉換時只用這些定義好的操作接口,而不用考慮下層采用的是何種模式映射策略了。不同的模式映射策略,模式解析策略也是不同的。若用戶希望采用某種特定的模式映射策略,就必需根據需要實現該模塊。
2.2 操作接口
為了使用戶可以較方便地通過操作接口獲得模式映射庫中的信息,從而實現自定義的模式解析。操作接口需要在模式映射庫上提取的一系列的公共操作接口,查詢轉換模塊是這些接口的主要調用者。操作接口主要用來獲取關系模式、XML模式、以及它們之間的映射信息。
由于XQuery中需要使用XPath表達式,因此要提供接口,用于實現XQuery的XPath路徑表達式翻譯成一些SQL表達式。在這一接口中,要定義數組變量XPath用于存儲解析XQuery得到的多條路徑,數組變量SQL存儲轉換結果。查詢轉換模塊調用通過此接口可以實現XPath路徑表達式到SQL表達式的轉換。
因此,模式映射模塊將基于特定模式映射策略的模式信息抽取出來,存儲到模式映射庫;同時定義一系列的操作接口,讓調用者可以透明地訪問需要的模式映射,這為實現查詢轉換模塊的模式映射策略無關化奠定了基礎。
3 查詢轉換模塊
查詢轉換模塊主要用于根據模式映射模塊提供的信息把XQuery查詢語句等價轉換成對應SQL語句,其中包括XQuery查詢語句的解析、綁定變量樹的構造和SQL表達式組合成完整SQL語句。查詢轉換模塊由以下三個子模塊組成:
3.1 XQuery解析
XQuery解析主要依據XQuery表達式的語法,對用戶所輸入的XQuery查詢語句進行詞法分析和語法分析,生成相應的抽象語法樹以進一步構造綁定變量樹。
想實現對輸入的XQuery查詢語句的結構進行識別,就必須設計出相應的詞法分析器。詞法分析器的設計與實現是一件非常艱巨的任務,可以借助現有的編譯器自動生成工具生成詞法分析器。在使用這些生成工具的時候,不需要考慮分析器的具體實現細節,只需要提供用正規式描述的單詞符號的詞法規則就可以了。
JavaCC就是一個詞法分析生成器和語法分析生成器。W3C的XQuery工作組恰好使用JavaCC來構建并測試XQuery語法的版本,并且構建和測試它與XSL組共享的XPath語法。因此可以選用JavaCC進行詞法分析器的構建。
3.2 綁定變量樹構造
綁定變量樹作為一種樹形數據結構,其中每個結點都包含了一個標簽和SQL表達式。綁定變量樹中所有結點、邊和每個結點的XML標簽,表示了XML數據的層次結構;依附于每個結點的SQL表達式定義了XML數據與相應的存儲模式之間的映射。因此,嵌套結構能被準確的體現,也能夠準確的表示XQuery的結構和嵌套關系,同樣它也可以作為查詢轉換模塊內部的中間結構。
如果模式映射庫要獲取一些通用的信息,可以在變量樹構造過程中調用已經定義好的抽象接口。通用模式映射模塊完成一些模式相關的任務,接口中的具體細節不用關心。如果要指定的XPath路徑依照一定的策略映射模式轉換成SQL表達式,那么只需要在接口的具體實現時候把已經被封裝在模式映射模塊中直接調用就可以了。
3.3 SQL構造
SQL構造過程是根據SQL查詢的語法特點來分析綁定變量樹的,目標SQL查詢語句也能從中得出。經SQL構造生成的SQL語句也必然與輸入的XQuery查詢語句等價。
SQL表達式包含于綁定變量樹中的每個結點之中,但都是些零散的SQL表達式語句,不是最終需要的目標SQL表達式。但可以把這些零散的SQL語句收集起來,根據它們之間的關系,按照規則,整合成為完整的等價SQL語句。
查詢轉換模塊接收用戶輸入的XQuery語句,首先對它進行解析、生成語法樹。然根據模式映射模塊提供的信息,構造綁定變量樹。最后在綁定變量樹的基礎上,構造SQL語句。
4 總結
本文討論了供應鏈信息管理方法,設計了基于XML的供應鏈信息集成的系統結構,并確定了研究的角度。分析了目前的供應鏈信息的主動集成技術,然后確立了基于XML的供應鏈信息主動集成方法,最后討論了模式映射與查詢轉換模塊的設計。
參考文獻:
[1] 張青山,張艷輝.供應鏈管理及其動態集成[J].商業研究,2001(6).
[2] 武曉慧.基于XML和Web Service的企業間信息集成研究[D].西安交通大學碩士學位論文,2003.
[3] 陳遠森.商業信息系統中的分布式對象技術[D].中國科學院研究生院碩士學位論文,2000.
[4] 馬士華,林勇,陳志祥.供應鏈管理[M].北京:機械工業出版社,2000.
[5] 莊子明.基于XML的數據庫技術及應用[J].計算機工程,2002(1).
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文