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