用於商業的XML格式很混亂,而通用商業語言(Universal Business Language,UBL)就志在統一這個混亂的領域。最近,UBL背後的小組首次發布了該產品,供公開評審。本文中,Uche Ogbuji首次對UBL作了深入探討。
正如我在上一篇專欄文章中提到的那樣,通用商業語言(UBL)OASIS技術委員會在2001年10月17日宣告成立。UBL是用於商業交易的文件庫,它是從中小型組織以及大型組織的角度來設計的。UBL背後的委員會(UBL TC)對他們的雄心作了極佳的概括:
UBL TC 的目的是,通過修改現有 XML 模式庫來開發 XML 商業文檔(採購訂單和發票等等)的標準庫,以合并其它現有 XML 商業庫的最佳特性。隨後 TC 將設計一種機制,該機制通過將轉換規則應用於常見的 UBL 源庫,來產生特定於內容相關的商業模式。UBL 旨在成為每個人都不必獲得特許或支付其它費用就可自由使用的電子交易國際標準。
UBL TC 最近生產了首個主要產品:UBL Library Content 0p70,以供公開評審。您可以從其首頁下載評審包(請參閱 參考資料)。我鼓勵任何對此感興趣的人仔細研究 UBL,並向 UBL TC 發送任何意見。使用這一產品無須支付版稅,而且為了避免與此有關的智慧財產權障礙已經做了所有努力。能夠自由使用這麼重要的產品可以產生相當大的公用利益,而且通過改進這一產品,我們都可以獲得許多收益。這個發行版中的材料並不是最終形式:其最終形式可望大約在今年年中完成,甚至到那時,完成的也只是最終 UBL 材料的一部分,因此有充足的時間來對它提出意見並對其內容作補充。您可能想回顧本專欄近期的文章,以瞭解有關 UBL 和相似倡議的大致背景,以及驅動這些倡議的一些核心問題。
UBL 概況
對於 UBL,首先要注意的是它非常大而且內容涉及方方面面。最初的發行版是一個 5.6 MB 的 ZIP 檔案,包含可能是最常見的商業表單(而且最可能作為 XML 文檔提供):買方和賣方之間從訂單到發票的整個貿易過程。特別是,它包含以下交易的規範:
訂單
簡單及複雜訂單回複
取消訂單
發送通知(通常稱為發貨通知)
收據通知
發票
一組基本的商業概念構成了上述規範。它們稱為 基本商業資訊實體(Basic Business Information Entity,BBIE),並用常見的 UBL 模式表示為核心組件類型(Core Component Type,CCT)。除了 BBIE 以外,其它規範定義了它們專門的 商業資訊實體(Business Information Entity,BIE),它們形成了 UBL 概念性模型,從而將商業概念組織到類及其相關組件中。UBL 概念性模型基於諸如整合模組化語言(Unified Modeling Language,UML)和實體/關係(Entity/Relational)建模之類的其它建模系統。實際上,UBL 使用 UML 來提供概念性模型的進階視圖。
但是,管理所有實質性詳細資料時都使用試算表。是的。試算表。它們是一流的方便使用的資訊管理典範。UBL TC 發覺試算表用途最為廣泛且易管理,適用於維護概念詳細資料。UML 類圖從這些試算表產生而來。試算表是以 Microsoft Excel 格式提供的,但是我使用 OpenOffice.org開啟它們時也沒有出現問題。UML 圖表是以簡單 GIF 形式提供的。
遊戲規則
這些概念性模型形成了用於相關商業文檔的 XML 模式基礎。派生這些模式的過程非常嚴格。UBL TC 成立了一個附屬委員會,從事 UBL 命名和設計規則(UBL Naming and Design Rule,NDR)的工作,該附屬委員會建立了一個綜合文檔(有 73 頁),包含 UBL XML 組件中的命名和總體設計規則。這些規則的建立確保了包括在 UBL 中的範圍很廣的 XML 組件的一致性。UBL 命名規則樣本:
XML 構造的名稱必須使用大小寫混合(camel-case)並且第一個字母為大寫,以便名稱中每個內部單詞的第一個字母大寫,其後跟著小寫字母(樣本:AmountContentType)……
XML設計規則樣本:
對於每個基於對象類的複雜類型定義,必須定義其內容模型,以便它將對象類的每個特性反映為一個元素宣告,它在內容模型內的基數和定位由與文法無關的模型詳細資料確定。
以上文檔片段中的資料類型特性指的是 W3C XML Schemas(WXS)資料類型,而且 WXS 確實被選為 UBL 的標準模式語言。作為輔助格式,這些文件類型(也稱為 傳送格式(transfer format))用一號抽象文法標記法(Abstract Syntax Notation number One,ASN.1)模式定義。自二十世紀八十年代中期產生以來,ASN.1 一直被使用至今,它是通訊協定中用於指定資料格式的 ISO 標準。對 UBL 使用 ASN.1 模式讓 UBL 可以使用一大批 ASN.1 工具,而且通過使用 ASN.1 的壓縮編碼規則(Packed Encoding Rule),該模式還允許有效地進行 UBL 編碼,這是很有效二進位編碼,並且因此也非常緊湊。確實,在許多 XML 討論中,每當論及 XML 的冗長並建議對 XML 進行二進位序列化時,對於這樣的情況,賢人智士總是建議映射到 ASN.1。UBL TC 採納了這個建議。