摘 要: 介紹一種新的電子信息交換語言標(biāo)準(zhǔn)UBL,,簡述了其產(chǎn)生和發(fā)展以及在供應(yīng)鏈信息交換之中的應(yīng)用框架,,并通過實例介紹UBL的語法結(jié)構(gòu)、特點及其意義,。
關(guān)鍵詞: 供應(yīng)鏈 信息交換 UBL XML-EDI
在當(dāng)今的供應(yīng)鏈信息交換過程中,,XML已經(jīng)成為主流技術(shù),并作為電子商務(wù)信息交換的一個重要手段被廣泛應(yīng)用于商業(yè)領(lǐng)域中,。但是在XML應(yīng)用中存在一個重要問題,,即信息交換語言標(biāo)準(zhǔn)問題,。XML要應(yīng)用到實際的電子商務(wù)之中,就必須滿足每一個商業(yè)領(lǐng)域的特殊需要,。因此產(chǎn)生了許多不同的、用來滿足不同商業(yè)領(lǐng)域需求的XML版本,。這也導(dǎo)致了XML在使用中存在以下問題[1]:
(1)對不同版本的相同商務(wù)文檔(如購買訂單和發(fā)票)進行開發(fā)和維護,,工作重復(fù),浪費時間和人力,。
(2)開發(fā)和維護多種能滿足跨商業(yè)領(lǐng)域交易關(guān)系的適配器,,是項艱巨的工作。
(3)由于多種XML版本的出現(xiàn),,后臺辦公系統(tǒng)中的XML信息整合工作變得更加困難,。
(4)需要花費大量的資金購買能夠支持多種XML版本的軟件,而且軟件維護困難,。
事實上,,不同的XML版本之中都包括一些基本的文檔,如購買訂單,、貨運通知和發(fā)票等,,而這些版本中文檔的格式、名目,、數(shù)據(jù)類型不同,。如果有一個通用的語言標(biāo)準(zhǔn),使之能符合各個領(lǐng)域的要求,,就可以滿足所有用戶的需要,。
OASIS的UBL[1](Universal Business Language)作為一個基于XML的信息交換通用語言標(biāo)準(zhǔn)可以解決上述問題。它為商業(yè)文檔定義一個通用的XML交換格式,,并可以通過擴展?jié)M足特殊領(lǐng)域的要求,。
1 UBL的產(chǎn)生和發(fā)展
近年來隨著XML的普及,電子商務(wù)進入了XML和EDI結(jié)合的電子商務(wù)數(shù)據(jù)交換新時代[2]?,F(xiàn)在流行使用的XML-EDI模式有很多種,,xCBL[4](XML Common Business Library)是其中影響較大的一種。它定義了一組可重用的,、標(biāo)準(zhǔn)的XML組件標(biāo)準(zhǔn),,以此為基礎(chǔ)構(gòu)成電子商務(wù)數(shù)據(jù)交換的XML文檔。xCBL不是一個產(chǎn)品或一種業(yè)務(wù),,而是一種任何組織和個人都可以獲得的免費標(biāo)準(zhǔn)框架,。為了更好地支持電子商務(wù)中的信息交換,OASIS在2001年10月17日宣布以xCBL 3.0為起點,,基于其他XML商業(yè)庫或類似技術(shù)的信息交換經(jīng)驗,,對xCBL 3.0進行修改,,開發(fā)了UBL。因此UBL將在很多方面與xCBL很類似,,并會繼續(xù)以xCBL 3.0為核心,。2004年5月1日OASIS正式發(fā)布了UBL 1.0版本,本文所提到的UBL指的就是UBL的1.0版本,。
UBL是用于商業(yè)交易的文檔庫,,它是面向中小型組織以及大型組織設(shè)計。UBL的目的是通過修改現(xiàn)有XML模式庫來開發(fā)XML商業(yè)文檔的標(biāo)準(zhǔn)庫,,繼承和發(fā)揚其他現(xiàn)有XML商業(yè)庫的最佳特性,。隨后UBL將產(chǎn)生一種機制,并通過該機制將轉(zhuǎn)換規(guī)則應(yīng)用到通用的UBL源庫,,生成適用于特定商業(yè)環(huán)境的商業(yè)模式,。UBL旨在成為不必獲得特許或支付其他費用就可自由使用的電子交易標(biāo)準(zhǔn)。
2 UBL在供應(yīng)鏈中的通用應(yīng)用框架
供應(yīng)鏈中最常見的交易過程是買方和賣方之間從訂單到發(fā)票的訂貨-發(fā)貨交易過程,,UBL支持這種交易過程中常用的商業(yè)表單,。除此之外,UBL還包含以下的功能:具有一個可以重用數(shù)據(jù)組件的XML模式庫,,可以重用地址,、貨物、應(yīng)付款等日常商業(yè)文檔中經(jīng)常使用的數(shù)據(jù)元素,;擁有一套通用商業(yè)文檔的XML模式,,在組件庫中構(gòu)建了訂單、發(fā)貨通知,、收據(jù)等元素,,這些元素都能應(yīng)用到一般的訂貨-發(fā)貨交易過程之中;在特殊交換關(guān)系中UBL可以進行特殊定制,。
訂貨-發(fā)貨交易過程是供應(yīng)鏈中最常見的從買方到賣方的交易過程,,其中主要包括三個主體:貨物的買方、賣方和貨物的接收方(可能是也可能不是買方),。UBL所提供的文檔模式支持整個交易過程,,其具體的交易流程如圖1所示[1]。
UBL描述了通用的訂貨—發(fā)貨過程中需要的商業(yè)規(guī)范,。其中主要包括:
(1)訂單,。訂單指出了貨物、供應(yīng)量以及付費說明,。付費說明包括收費方式和付費人,,還包括一個默認的全局流通貨幣單位。訂單還提供了許多訂單行,每個訂單行都詳細說明了一批貨物的送貨地點,、數(shù)量和需求時間,。
(2)簡要訂單回復(fù)。簡要訂單回復(fù)是賣方確認收到買方發(fā)出訂單的一種方法,。它表明了買方對待訂單的態(tài)度:不接收訂單或者不作任何修改的接收訂單,。
(3)詳細訂單回復(fù)。賣方對訂單進行了修改,,然后以詳細訂單回復(fù)的形式發(fā)出并覆蓋原來的訂單,,這是賣方用來向買方確定和提供訂單相關(guān)細節(jié)的一種方法。詳細訂單回復(fù)包括:貨運時間,、價格、交易折扣,、費用,、商品分類編碼等信息。
(4)訂單更改,。買方通過訂單更改項修改以前接收的訂單,,比如改變訂單貨物、數(shù)量,、送貨日期,、收貨地點等。供應(yīng)商可以用詳細訂單回復(fù)或者簡要訂單回復(fù)接收或者拒絕訂單更改,。
(5)訂單取消,。在交易過程中,買方可以通過訂單取消來取消已建立的訂單事務(wù),。但是合法合同,、交易協(xié)議和商業(yè)規(guī)范都對訂單取消的時間做了一定的約束。
(6)發(fā)貨通知,。發(fā)貨通知應(yīng)該包括下列信息:運輸?shù)姆椒?、模式、多種貨運平臺,、時間,、地點,發(fā)貨時的包裝類型和標(biāo)識,。在發(fā)貨通知中,,還需表明貨物的來源及其危險性。
(7)收貨通知,。收貨通知由接收方發(fā)給賣方,,用來確認收到貨物并報告貨物的短缺和損壞情況。在收貨通知中,,接收者可以從發(fā)貨貨物中找出缺點并因特定原因拒絕貨物接收,。
(8)收據(jù),。收據(jù)包括計價時需要的信息,不會重申任何訂單,、訂單更改,、訂單回復(fù)、發(fā)貨通知和接收通知中已經(jīng)存在的不必要的信息,。如有必要,,收據(jù)可以提供訂單、發(fā)貨通知和接收通知接口,,其中每行都對應(yīng)訂單,、發(fā)貨通知或接收通知中的相應(yīng)行。
UBL作為一個通用商業(yè)信息交換語言標(biāo)準(zhǔn),,很好地支持了供應(yīng)鏈中通用的商業(yè)交換流程,。但是由于各個行業(yè)及領(lǐng)域的特殊性,還需要結(jié)合特定的接口才能應(yīng)用到實際的供應(yīng)鏈活動中,。
3 UBL應(yīng)用實例
下面將通過一個UBL的應(yīng)用實例來說明UBL的結(jié)構(gòu)及語法,。這是一個公司的訂單以及其供應(yīng)方的訂單回復(fù)實例XML的源代碼,使用的是UBL 1.0語言,。
(1)訂單
1. <po:Order xmlns:po=″urn:oasis:names:tc:ubl:Order:1.0:
0.70″xmlns=″urn:oasis:names:tc:ubl:CommonAggregate-
Types:1.0:0.70″>
2. <ID>4500004875</ID>
3. <IssueDate>2004-09-08</IssueDate>
4. <BuyerParty>
5. <ID>R300</ID>
6. <PartyName>
7. <Name>IDE INC UK</Name>
8. </PartyName>
9. <Address>
10. <ID></ID>
11. <Street>West Pike</Street>
12. <CityName>Paris</CityName>
13. <CountrySub-EntityCode listID=″3166-2″ listAgencyID
=″ISO″>NY</CountrySub-EntityCode>
14. <Country>
15. <Code listID=″3166-1″ listAgencyID=″ISO″>US
</Code>
16. </Country>
17. </Address>
18. <BuyerContact>
19. <ID></ID>
20. <Name>Joe Blog</Name>
21. </BuyerContact>
22. </BuyerParty>
23. <OrderLine>
24. <BuyersID></BuyersID>
25. <Quantity unitCode=″unit″>10</Quantity>
26. <Item>
27. <ID>R100016</ID>
28. <Description>Tuner X300</Description>
29. <BasePrice>
30. <PriceAmount currencyID=″USD″>350</PriceAmount>
31. </BasePrice>
32. </Item>
33. </OrderLine>
34. </po:Order>
第1~3行說明了訂單的基本信息,,表明訂單開始。其中包括訂單的名稱po,,格式UBL 1.0中的訂單格式以及訂單的ID 4500004875(這是訂單在買方公司的ID),,還有訂單的日期2004年9月8日。第4~22行記述了買方的資料,。其中第6行的<BuyerParty>表示買方資料的開始,。買方資料包括買方的ID R300、買方的公司名IDE INC UK,、公司的地址,、公司的ID(在此例中因為只有一個地址所以為空)、公司所在街道,、公司所在城市,、所在州信息ISO 3166-2 NY、所在國家的信息ISO 3166-1 US以及買方的聯(lián)系方式,。第22行</BuyerParty>表示買方資料結(jié)束,。第23~33行記述了訂單行信息。其中第24行<OrderLine>表明訂單行信息開始,,訂單行包括買方的ID(此例中因為該ID與上面買方資料的ID相同,,所以省略為空)、貨物數(shù)量10、貨物信息,、貨物ID R100016,、貨物描述Tuner X300和貨物基本價格350 USD(即35美元)。第33行表示訂單行信息結(jié)束,。第34行表示訂單po結(jié)束,。
(2)簡單訂單回復(fù)
1. <ors:OrderResponseSimple xmlns:ors=″urn:oasis:names:
tc:ubl:OrderResponseSimple:1.0:0.70″ xmlns=″urn:oasis:
names:tc:ubl:CommonAggregateTypes:1.0:0.70″>
2. <ID>6489105763</ID>
3. <IssueDate>2004-09-09</IssueDate>
4. <AcceptedIndicator>true</AcceptedIndicator>
5. <OrderReference>
6. <BuyersID> R300</BuyersID>
7. <SellersID>154135798</SellersID>
8. <IssueDate>2004-09-08</IssueDate>
9. </OrderReference>
10. <BuyerParty>
11. <Party>
12. <PartyName>
13. <Name> IDES Retail INC US </Name>
14. </PartyName>
15. </Party>
16. </BuyerParty>
17. <SellerParty>
18. <Party>
19. <PartyName>
20. <Name>Joes Supply</Name>
21. </PartyName>
22. </Party>
23. <OrderContact>
24. <Name>Betty Jo </Name>
25. </OrderContact>
26. </SellerParty>
27. </ors:OrderResponseSimple>
第1~2行說明了簡要訂單回復(fù)的基本信息,表明簡要訂單回復(fù)開始,。簡要訂單回復(fù)名稱為ors,,其格式使用UBL 1.0中的簡要訂單回復(fù)格式。
第3行表明了簡要訂單回復(fù)的ID為6489105763,,此ID為訂單在賣方公司的ID,。
第4行表明簡要訂單回復(fù)的日期為2004年9月9日。
第5行表明了簡要訂單回復(fù)對訂單的接受狀態(tài)為真,,即無改變的接收訂單,。
第6~10行記述了訂單接口。其中第6行的<OrderReference>表示訂單接口的開始,,訂單接口包括買方的ID R300、賣方的ID 154135798,、訂單的日期2004-09-08,。訂單接口的內(nèi)容與其要回復(fù)的訂單內(nèi)容相符,使訂單和訂單回復(fù)能一一對應(yīng),。
第11~17行定義了買方資料,,由于是簡要訂單回復(fù),這里只說明了買方名字為IDES INC US,。根據(jù)UBL 1.0格式要求,,需要定義在party中的partyname中的name屬性中。
第18~27行定義了賣方的資料,。其中第18行表明了賣方資料定義的開始,,賣方資料包括賣方名字Joes Supply、訂單聯(lián)系人屬性,。第27行表明賣方資料結(jié)束,。
第28行表明簡要訂單回復(fù)ors結(jié)束。
通過以上二個實例可以看出:UBL與XML一樣,,文檔中的各項元素都用<元素名>開始,,以</元素名>結(jié)束,中間的內(nèi)容就是該項元素的數(shù)據(jù),。與其他語言不同的是,,其他語言對元素名沒有特殊的要求,而UBL將訂貨—發(fā)貨交易過程中各個階段中常用的元素名都進行了統(tǒng)一定義。UBL委員會成立了一個附屬委員會,,從事 UBL 命名和設(shè)計規(guī)則(UBL Naming and Design Rule,,NDR)工作,該附屬委員會編寫了一個綜合文檔,,包含UBL XML組件中的命名和總體設(shè)計規(guī)則,。這些規(guī)則的建立確保了包括在UBL中的XML組件的一致性。具體規(guī)則請參考http://www.oasis-open.org/committees/download.php/9236/cd-UBL-NDR-1.0.pdf,。
UBL構(gòu)造的名稱必須使用大小寫混合(camel-case),,第一個字母為大寫,以后名稱中每個內(nèi)部單詞的第一個字母大寫,,其后跟著小寫字母,,如:AmountType。
對于每個基于對象類的復(fù)雜類型定義,,必須定義其內(nèi)容模型,,以便它將對象類的每個特性反映為一個元素聲明,它在內(nèi)容模型內(nèi)的基數(shù)和定位由與語法無關(guān)的模型詳細信息確定,。數(shù)據(jù)類型的特性指的是W3C XML Schemas(WXS)數(shù)據(jù)類型,,它被選為UBL的標(biāo)準(zhǔn)模式語言。作為輔助格式,,這些文檔類型用ASN.1(Abstract Syntax Notation number One)模式定義,。
UBL中的屬性名結(jié)合了各個語言之所長,更加適合實際的運用,。
4 結(jié)束語
綜上所述,,UBL在供應(yīng)鏈中的訂貨—發(fā)貨交易過程中對常用的元素做了定義和規(guī)范。這使各個公司之間的交易信息交換變得更加容易,,不會再因為同一元素的命名不同或者不同元素的同一命名造成誤解以及交易失誤,。
UBL可以很好地解決現(xiàn)今電子商務(wù)信息交換,尤其是供應(yīng)鏈中的信息交換問題,。它定義嚴(yán)格,,利用并參考了其他技術(shù)成果。由于它無需支付版稅,,因此被廣泛采用,。
現(xiàn)在的UBL才剛剛起步,短期內(nèi)并不會取代目前已經(jīng)比較成熟的xCBL,。由于xCBL是UBL的基礎(chǔ),,xCBL的發(fā)展并不會阻礙UBL的發(fā)展,而會促進UBL的發(fā)展,。這樣,,UBL一定會在xCBL的基礎(chǔ)上健康成長,,最終取代xCBL而成為電子商務(wù)信息交換的主要模式。
參考文獻
1 OASIS.Universal Business Language 1.0.http://www.oasisopen.org/committees/tc_home.php? wg_abbrev=ubl.2004
2 牟彤華.從EDI到XML-EDI——企業(yè)電子商務(wù)模式的演變.企業(yè)經(jīng)濟,,2002,;(7)
3 顧穗珊,張治江.XML/EDI:新型的電子商務(wù)數(shù)據(jù)交換模式. 情報科學(xué),,2003,;(5)
4 flyspace.xCBL.http://blog.csdn.net/flyspace/archive/2003/05/15/4298.aspx.2003