摘要: 為了應對供應鏈集成的新發展,Web Services 提供基于XML消息交換的、跨平臺、跨語言的解決方案。本文結合實例分析了利用XML描述業務文檔交互的過程。
關鍵詞: Web Services 供應鏈集成 業務文檔交互 XML
供應鏈集成就是將企業內部供應鏈與外部供應鏈的供應商和用戶集成起來,形成一個集成化供應網絡,使企業間達到信息共享和信息交互,達到相互操作的一致性。
為了應對供應鏈集成的新發展,在IT技術上需要有能夠實現動態的、廣為支持的且較容易跨越組織邊界的技術體系出現,而Web Services就是這樣一種技術體系。它可以提供基于XML消息交換的、跨平臺、跨語言的解決方案, 客戶端發出的對Web Services 的請求以XML文件的形式到達。Web Services通過響應把XML文件返回給客戶端。
供應鏈的集成框架覆蓋了業務文檔、業務流程、消息處理的業務與技術面,但不局限于這三個層次[1]。下面筆者就從業務文檔來描述一下基于Web Services的供應鏈集成的交互操作問題。
1.業務文檔交互
這個問題主要解決的是供應鏈集成過程中關于共享什么樣的信息。例如貿易伙伴甲發了一個采購訂單給貿易伙伴乙,則該訂單里面應該有些什么內容,就是業務文檔交互方面的問題了。它應當包含客戶的姓名、產品名稱、產品代號、產品數量等,至于采取什么表述形式則可以有多種選擇。
傳統的交互則是電子數據交換EDI,它是20世紀八十年代發展起來的,它是為支持事務處理,在異構的平臺或應用之間用電子格式通過一個內部網進行數據傳遞和交換的方式。但是EDI技術本身的特點,使它的發展和系統擴展受到限制,也使得它在企業間的信息交換中存在著許多缺陷。基于Web Services的供應鏈集成框架一般會選用XML來描述業務文檔。
2.XML介紹
可擴充的標記語言(XML1.0)標準是一個基于文本的World Wide Web協會(3W)規范的標記語言[2],現已成為一種人們廣泛接受的用于描述數據和創建標記語言的標準。數據獨立性是XML的主要特征,XML文檔包含數據,但不包含格式化指令,因此處理XML文檔的應用程序必須確定如何顯示文檔中的數據。采用了XML的應用程序將可以互相通信,只要它們能夠互相理解對方的XML標記。這種高級別的可互操作性使XML成為Web Services所需的一種理想技術。Web Services能在各系統之間進行通信,且不論其操作系統。
因為XML具有以下一些特點使得它能承擔描述業務文檔的要求。
(1)可擴展性。
XML讓使用者創建和使用他們自己的標記,而不是僅限于使用HTML的有限詞匯表。可擴展性是至關重要的,因為不僅企業希望用XML為電子商務和供應鏈集成等應用定義自己的標記語言,甚至各個行業也希望能夠定義它們所在行業的標記語言,以作為行業的信息共享和數據交換的標準。
(2)靈活性。
由于HTML是格式、超文本和圖形用戶界面語義的混合體,要同時發展這些混合在一起的功能是很困難的。為此XML提供了一種結構化的數據表示方式,使得用戶界面與結構化數據相分離。在XML中,使用者可以使用樣式表,如XSL(可擴展樣式語言)和CSS(層疊樣式表)將數據呈現到瀏覽器中。另外,XML文檔之間的超鏈接功能由獨立的XLink(可擴展鏈接語言)來支持。所有這些方面都可以相互獨立地改進并同時發展。所以,Web用戶所追求的許多先進功能在XML環境下更容易實現。
(3)自描述性。
XML文檔通常包含一個文檔類型聲明,因而XML文檔是自描述的:不僅人能讀懂XML文檔,計算機也能處理XML文檔中的數據,它可以被任何能夠對XML數據進行解析的應用程序所提取、分析和處理,并以所需格式顯示。所以,XML文檔被看作是文檔的數據庫化和數據的文檔化。
(4)簡明性[3]。
作為SGML的一個優秀子集,XML只有SGML的20%的復雜性,但具有SGML約80%的功能。XML簡單得多,易學、易用并易實現。
3.實例分析
XML可以支持世界上幾乎所有的主要語言,并且不同語言的文本可以在同一文檔中混合使用。支持XML的軟件能處理所有這些語言的任何組合。所有這一切將使XML成為數據表示的一個開放標準,它將為網絡計算注入新的活力,并為信息技術帶來新的機遇。下面是使用XML來描述訂單的一個簡單例子。
程序(a1)
程序(b1)
<1D>乙<.....
程序(c1)
該程序說明貿易伙伴甲從數據庫中查詢生成一個購買訂單,并發送出去,貿易伙伴乙收到該訂單并將其存入數據庫的分析過程。
在上述程序中,每個XML文檔是構成良好的,但是乙只能理解業務文檔(c1),業務文檔應當與程序所描述的Schema或DTD一致。一般通過DTD或Schema中提供詞匯。對于程序(a1)的文檔,詞匯分析識別不了元素Buyer ID和Se11er ID。因為這些元素不在詞匯中,因此就不是詞匯有效的文檔了。從上述程序語法分析中,我們就會發現元素ID是在詞匯中,但其位置與Schema的要求無法匹配,并且因為元素Seller與Buyer在文檔中未出現,因此程序(b1)是語法無效文檔。程序(c1)則是一個有效的XML文檔。根據供應鏈相關的行業詞匯表,我們可以知道,元素Purchase Order顯示該文檔是一個采購訂單。Buyer和Seller則會包含買方與賣方的信息,而ID則是貿易雙方的名稱。因此根據行業詞匯,乙方可以將文檔映射到數據庫中的訂單相關的庫表中,但是語義分析并不能將文檔的數據映射到正確的庫表列。對于實效分析,如果ID是在Buyer中,則它的內容是顧客的名稱,如果ID是在Seller中則是供應商的名稱。因為乙是供應商,因此它把訂單數據存入數據庫表中之前,則必須保證訂單是給乙的。
自動的業務文檔通信一般有語法與語義的解釋。語法的解釋又可以具體分為詞匯與句法的分析,語義的解釋可以分為語義分析與實效分析。
詞匯分析掃描業務文檔的字符根據已接受的詞匯表生成記號。如果生成的符號的意義是獨立于語言結構的,則XML已足夠了。
4.結語
Web Services對于業務文檔交互特別是跨越組織邊界的交互更合適,因為特有的松散耦合、跨平臺、跨語言的特點使其具有其它體系無法替代的用途。因此基于XML描述的Web Services的供應鏈集成能夠實現業務文檔層次的交互,而傳統的供應鏈集成則基本只是業務文檔的交換,需要手工處理大量的信息。
參考文獻:
[1]潘一毅等.供應鏈管理系統的Web實現技術及應用.廈門大學學報,2002,1.
[2]Simon St.Laurent著.康曉林,伊希榮等譯.XML基礎教程(第二版).電子工業出版社.
[3]孫自龍.基于web供應鏈集成及研究.四川大學論文,2005,5.