周崢
摘要:傳統的EDI系統數據格式嚴格,轉換復雜,使用成本高,未能普及應用?;赬ML的EDI克服了傳統EDI的不足,為企業建立了一個高效的、低成本的、可編輯性強,使用范圍更廣的電子數據共享與交換模式。隨著XML/EDI架構的出現,解決了EDI在圖書行業電子數據交換中無法普及的現狀。本文結合實例說明,XML/EDI在圖書行業信息共享與交換中的應用,解決了圖書行業上下游信息無法流通的問題。
關鍵詞:XML;EDI;數據交換;圖書貿易
中圖分類號:TP312 文獻標識碼:A 文章編號:1007-9416(2019)05-0040-03
0 引言
隨著Internet的電子商務急劇發展,電子數據交換(EDI)以其高效的、無紙化、低誤差的數據交換方式成為了貿易公司用于交換貿易信息的主要方式。它簡化了訂貨過程,減小了庫存壓力,降低了貿易成本,增強了企業競爭力。雖然EDI技術已成熟,但并未得到普及應用。主要原因是跨平臺、跨系統間的EDI數據交換,格式嚴格,需要參與企業有一套特定軟件用來轉換EDI數據,并通過專用網或增值網進行傳輸數據,成本高,難度大,只能在大型企業間應用,中小企業難以接受。隨著xml語言的出現,使得在不同平臺、不同系統間實現數據交換成為可能,電子數據交換也從傳統的EDI發展成為新的基于XML的EDI模式。
1 圖書信息共享中傳統EDI的應用
電子數據交換(EDI)是指按照標準協議,對具有結構特征的標準化貿易信息,通過專用網或增值網,在貿易伙伴的計算機系統之間進行交換和自動處理的過程。EDI信息傳輸速度快、 數據處理效率高、業務處理差錯率低是國際上廣泛用來處理貿易信息的方式, 是電子商務的重要組成部分。EDI系統主要是由計算機應用、通信網絡和數據標準化組成的。EDI系統模型如圖1所示。
隨著電子商務的高速發展,EDI技術的應用越來越廣泛, 其在圖書行業的應用中,主要涉及到圖書商品信息、 庫存信息、 訂單信息、物流信息等數據的共享與交換。在實際的圖書信息共享與交換中,主要過程是:出版社將內部各種數據源的圖書商品信息,通過翻譯軟件,按照交換協議翻譯成一種標準格式的EDI數據,利用通信網絡,將圖書商品信息提供給圖書經銷商或圖書館采購人員。圖書經銷商收到圖書商品信息后,通過內部的EDI翻譯軟件將書目信息翻譯成內部系統可讀文件,然后導入系統進行后續圖書采購訂單的制作流程。圖書經銷商將圖書采購訂單通過翻譯軟件將訂單信息翻譯為EDI數據,通過通信網絡傳送給出版社,出版社收到采購訂單后,同樣需要先對訂單進行翻譯,然后再導入應用系統進行后續的訂單處理與發貨流程。全部過程交換的信息都是遵照協議的標準格式數據,可全部由EDI系統自動完成。
雖然傳統EDI技術成熟,但在圖書行業的信息交換中始終無法得到普及應用,主要是存在以下幾方面的不足:(1)數據共享或交換是一對一的進行,需要采用專網或增值網絡,只能在有限的貿易伙伴間共享或交換;(2)傳統EDI系統有嚴格的信息格式編碼,格式復雜,應用困難,不易編輯維護,缺少靈活性;(3)EDI傳輸受限,只能使用指定的網絡協議和安全保密協議,且網絡搭建費用較高,限制了中小企業的使用;(4)參與信息交換的企業需要配備一套專屬的EDI系統及信息翻譯軟件,EDI數據轉換的成本高,許多中小企業難以承受。
因此,傳統EDI已經無法滿足圖書行業信息交換的需求, 我們急需一種新的方式來解決圖書行業信息上下游不能流通共享的現狀。基于XML/EDI的出現,使出版社與圖書經銷之間通過不同平臺、不同應用系統間進行數據共享與交換成為可能。
2 基于XML的EDI的優勢
隨著新的互聯網數據交換語言—可擴展標記語言XML出現后,誕生了新一代的基于XML的EDI,解決了許多基于WEB的EDI的困擾:
(1)XML文檔的內容和結構完全分離。在XML文檔中,數據的顯示樣式已從文檔中分離出來,放入樣式表文件中。系統架構師只關注流程中各環節的接口定義,業務部門則可以專注在內容發布和信息維護之上。
(2)易閱讀且數據清晰。XML是一種通用的數據結構,是文本格式文件,適合各種平臺環境的數據交換。作為純文本文件格式,有便于閱讀、方便檢索、易注釋的特點。解決了傳統EDI格式固定的困擾。
(3)規范統一。XML具有統一的標準語法,任何系統和產品所支持的XML文檔,都具有統一的格式和語法。這樣就使得XML具有了跨平臺跨系統的特性。解決了傳統EDI一對一交換的限制。
(4)支持不同文字、語種間的信息交換。XML所依賴的Unicode標準,是一個支持多種語言的混合文字符號編碼系統。所以,XML技術不但可以將各種信息跨系統、跨平臺之間交換,還能跨語種、跨文化進行交換。
(5)方便的可擴展性。XML允許建立適合他們自己的標記庫,并且這些標記集合可以迅速地投入到互聯網的使用中。實際上,現在許多行業和機構都再利用XML制訂業內使用的標記語言標準。比如:數學標記語言MathML、化學標記語言CML、矢量圖形標記語言VML等。
3 基于XML的EDI模型架構及實例
3.1 基于XML的EDI模型架構
將XML和EDI相結合得到新架構XML/EDI系統,具體模型如下圖2所示。
在XML/EDI系統中,主要是由企業內部EDI服務器和與互聯網相連的XML服務器的兩部分構成。其中XML服務器一端與EDI服務器相連,實現XML數據的轉化,另一端則通過互聯網與客戶端相連,用于接收客戶端的請求并處理。從上圖的XML/EDI框架圖可以看出,客戶可通過Internet利用XML/EDI進行電子數據交換。中小企業不必再受EDI系統及翻譯軟件高昂費用的困擾,可輕松通過瀏覽器與XML服務器相連,以Web表單的形式提交需要傳遞的商業數據,之后由服務器負責處理EDI信息的轉換與傳輸。對于交換數據量較小的企業,這無疑是一種優化方案。
3.2 XML/EDI在圖書信息交換中的實例應用
由于EDI需要專用系統與翻譯軟件,通過專用網絡來進行數據交換,且是一對一的數據交換,系統學習、應用較復雜,使用費用高,許多中小型出版社或圖書經銷商難以承受,因此EDI在圖書行業的應用并不普及。這就使得圖書行業內數據缺乏銜接,數據孤島現象嚴重,與行業外數據難以有效關聯。行業內上下游之間由于缺少健全合理的數據交換共享機制,造成數據流通不暢,數據應用不充分。隨著XML/EDI的出現,上述問題得到有效解決。依據圖書行業信息流通標準,定義出結構化的XML文件,使得行業內上下游之間能夠通過WEB瀏覽器進行圖書信息的共享與交互。
3.2.1 出版社圖書信息xml文件的存取
圖書信息的源頭通常是出版社內部一個或多個計算機系統中存儲的元數據。在與圖書經銷商或讀者進行數據共享與交換之前,首先需要將元數據從各個數據庫中提取出來,通過應用軟件將元數據轉換為XML數據然后發布到互聯網上,與客戶端進行數據交互。XML是一種表示數據的標準語法,而且是可擴展的自描述的。系統開發人員通過創建格式文件,定制標記來描述自己各種類型的數據對象。可將各種類型的元數據集成到一個標準格式的XML文檔中。下面示例1示范了出版社內部應用系統通過應用軟件將各個子系統中的圖書信息元數據匯總在一起,依據行業內圖書信息交換規則,提取為標準格式的“圖書庫存信息”xml文件:
public void kcXml(List
KCMsg kc = new KCMsg();
kc.setKcxm(itemList);
KCHead head = new KCHead();
long l = System.currentTimeMillis();
Date date = new Date(l);
System.out.println(dateFormat.format(date));
head.setFilename("庫存-出版社"+dateFormat.format(date)+".xml");
head.setCount(con);
head.setSjbs("Title");
head.setCsbs("重復");
head.setCsfjgdm("101-1101-0003-4");
head.setJsfjgdm("503-5301-0001-0");
head.setSjcsf("出版社");
head.setSjjsf("新華書店");
head.setGhsid("7-00-01");
head.setCgsid("0000000");
head.setCgsmc("新華書店");
head.setCreateDate(sjFormat.format(date));
kc.setKcHead(head);
XStream xStream = new XStream();
String xmlHeader = "<? xml version=\"1.0\" encoding=\"GBK\"?>";
String xml2 = xmlHeader + "\r\n" +XStreamUtil.objectToXml(kc);
String lujing = "c:\\kc\\庫存-出版社"+dateFormat.format(date)+".xml";
File file = new File(lujing);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
try {
FileWriter fw = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(xml2);
bw.flush();
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
示例1? 提取標準“圖書庫存信息”xml文件
3.2.2 標準圖書信息XML文件
制約圖書出版行業數據流通不暢的問題包括,一是數據標準不統一,內容資源描述與標識、產品數據描述與記錄、產品流通規則等缺乏行業標準。二是數據體系不健全,行業內外數據沒有有效關聯。三是數據流通不順暢,缺少健全合理的數據交換共享機制,造成行業內上下游之間數據流通不暢,行業內與行業外的數據交換模式尚未建立。四是數據應用不充分,對數據的價值認識不到位。
面對現實存在的問題,“圖書信息交換規則”解決了行業內數據標準不統一的問題。圖書出版行業上下游之間的數據交換,都遵循此規則。通過的標準的圖書商品信息xml文件進行上下游的數據共享與交換。下面示例2節選行業內標準的“圖書庫存信息”的xml文件片段,其描述了標準圖書庫存數據的元素和屬性。