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