周崢
摘要:傳統(tǒng)的EDI系統(tǒng)數(shù)據(jù)格式嚴(yán)格,轉(zhuǎn)換復(fù)雜,使用成本高,未能普及應(yīng)用?;赬ML的EDI克服了傳統(tǒng)EDI的不足,為企業(yè)建立了一個(gè)高效的、低成本的、可編輯性強(qiáng),使用范圍更廣的電子數(shù)據(jù)共享與交換模式。隨著XML/EDI架構(gòu)的出現(xiàn),解決了EDI在圖書行業(yè)電子數(shù)據(jù)交換中無法普及的現(xiàn)狀。本文結(jié)合實(shí)例說明,XML/EDI在圖書行業(yè)信息共享與交換中的應(yīng)用,解決了圖書行業(yè)上下游信息無法流通的問題。
關(guān)鍵詞:XML;EDI;數(shù)據(jù)交換;圖書貿(mào)易
中圖分類號:TP312 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2019)05-0040-03
0 引言
隨著Internet的電子商務(wù)急劇發(fā)展,電子數(shù)據(jù)交換(EDI)以其高效的、無紙化、低誤差的數(shù)據(jù)交換方式成為了貿(mào)易公司用于交換貿(mào)易信息的主要方式。它簡化了訂貨過程,減小了庫存壓力,降低了貿(mào)易成本,增強(qiáng)了企業(yè)競爭力。雖然EDI技術(shù)已成熟,但并未得到普及應(yīng)用。主要原因是跨平臺、跨系統(tǒng)間的EDI數(shù)據(jù)交換,格式嚴(yán)格,需要參與企業(yè)有一套特定軟件用來轉(zhuǎn)換EDI數(shù)據(jù),并通過專用網(wǎng)或增值網(wǎng)進(jìn)行傳輸數(shù)據(jù),成本高,難度大,只能在大型企業(yè)間應(yīng)用,中小企業(yè)難以接受。隨著xml語言的出現(xiàn),使得在不同平臺、不同系統(tǒng)間實(shí)現(xiàn)數(shù)據(jù)交換成為可能,電子數(shù)據(jù)交換也從傳統(tǒng)的EDI發(fā)展成為新的基于XML的EDI模式。
1 圖書信息共享中傳統(tǒng)EDI的應(yīng)用
電子數(shù)據(jù)交換(EDI)是指按照標(biāo)準(zhǔn)協(xié)議,對具有結(jié)構(gòu)特征的標(biāo)準(zhǔn)化貿(mào)易信息,通過專用網(wǎng)或增值網(wǎng),在貿(mào)易伙伴的計(jì)算機(jī)系統(tǒng)之間進(jìn)行交換和自動處理的過程。EDI信息傳輸速度快、 數(shù)據(jù)處理效率高、業(yè)務(wù)處理差錯(cuò)率低是國際上廣泛用來處理貿(mào)易信息的方式, 是電子商務(wù)的重要組成部分。EDI系統(tǒng)主要是由計(jì)算機(jī)應(yīng)用、通信網(wǎng)絡(luò)和數(shù)據(jù)標(biāo)準(zhǔn)化組成的。EDI系統(tǒng)模型如圖1所示。
隨著電子商務(wù)的高速發(fā)展,EDI技術(shù)的應(yīng)用越來越廣泛, 其在圖書行業(yè)的應(yīng)用中,主要涉及到圖書商品信息、 庫存信息、 訂單信息、物流信息等數(shù)據(jù)的共享與交換。在實(shí)際的圖書信息共享與交換中,主要過程是:出版社將內(nèi)部各種數(shù)據(jù)源的圖書商品信息,通過翻譯軟件,按照交換協(xié)議翻譯成一種標(biāo)準(zhǔn)格式的EDI數(shù)據(jù),利用通信網(wǎng)絡(luò),將圖書商品信息提供給圖書經(jīng)銷商或圖書館采購人員。圖書經(jīng)銷商收到圖書商品信息后,通過內(nèi)部的EDI翻譯軟件將書目信息翻譯成內(nèi)部系統(tǒng)可讀文件,然后導(dǎo)入系統(tǒng)進(jìn)行后續(xù)圖書采購訂單的制作流程。圖書經(jīng)銷商將圖書采購訂單通過翻譯軟件將訂單信息翻譯為EDI數(shù)據(jù),通過通信網(wǎng)絡(luò)傳送給出版社,出版社收到采購訂單后,同樣需要先對訂單進(jìn)行翻譯,然后再導(dǎo)入應(yīng)用系統(tǒng)進(jìn)行后續(xù)的訂單處理與發(fā)貨流程。全部過程交換的信息都是遵照協(xié)議的標(biāo)準(zhǔn)格式數(shù)據(jù),可全部由EDI系統(tǒng)自動完成。
雖然傳統(tǒng)EDI技術(shù)成熟,但在圖書行業(yè)的信息交換中始終無法得到普及應(yīng)用,主要是存在以下幾方面的不足:(1)數(shù)據(jù)共享或交換是一對一的進(jìn)行,需要采用專網(wǎng)或增值網(wǎng)絡(luò),只能在有限的貿(mào)易伙伴間共享或交換;(2)傳統(tǒng)EDI系統(tǒng)有嚴(yán)格的信息格式編碼,格式復(fù)雜,應(yīng)用困難,不易編輯維護(hù),缺少靈活性;(3)EDI傳輸受限,只能使用指定的網(wǎng)絡(luò)協(xié)議和安全保密協(xié)議,且網(wǎng)絡(luò)搭建費(fèi)用較高,限制了中小企業(yè)的使用;(4)參與信息交換的企業(yè)需要配備一套專屬的EDI系統(tǒng)及信息翻譯軟件,EDI數(shù)據(jù)轉(zhuǎn)換的成本高,許多中小企業(yè)難以承受。
因此,傳統(tǒng)EDI已經(jīng)無法滿足圖書行業(yè)信息交換的需求, 我們急需一種新的方式來解決圖書行業(yè)信息上下游不能流通共享的現(xiàn)狀?;赬ML/EDI的出現(xiàn),使出版社與圖書經(jīng)銷之間通過不同平臺、不同應(yīng)用系統(tǒng)間進(jìn)行數(shù)據(jù)共享與交換成為可能。
2 基于XML的EDI的優(yōu)勢
隨著新的互聯(lián)網(wǎng)數(shù)據(jù)交換語言—可擴(kuò)展標(biāo)記語言XML出現(xiàn)后,誕生了新一代的基于XML的EDI,解決了許多基于WEB的EDI的困擾:
(1)XML文檔的內(nèi)容和結(jié)構(gòu)完全分離。在XML文檔中,數(shù)據(jù)的顯示樣式已從文檔中分離出來,放入樣式表文件中。系統(tǒng)架構(gòu)師只關(guān)注流程中各環(huán)節(jié)的接口定義,業(yè)務(wù)部門則可以專注在內(nèi)容發(fā)布和信息維護(hù)之上。
(2)易閱讀且數(shù)據(jù)清晰。XML是一種通用的數(shù)據(jù)結(jié)構(gòu),是文本格式文件,適合各種平臺環(huán)境的數(shù)據(jù)交換。作為純文本文件格式,有便于閱讀、方便檢索、易注釋的特點(diǎn)。解決了傳統(tǒng)EDI格式固定的困擾。
(3)規(guī)范統(tǒng)一。XML具有統(tǒng)一的標(biāo)準(zhǔn)語法,任何系統(tǒng)和產(chǎn)品所支持的XML文檔,都具有統(tǒng)一的格式和語法。這樣就使得XML具有了跨平臺跨系統(tǒng)的特性。解決了傳統(tǒng)EDI一對一交換的限制。
(4)支持不同文字、語種間的信息交換。XML所依賴的Unicode標(biāo)準(zhǔn),是一個(gè)支持多種語言的混合文字符號編碼系統(tǒng)。所以,XML技術(shù)不但可以將各種信息跨系統(tǒng)、跨平臺之間交換,還能跨語種、跨文化進(jìn)行交換。
(5)方便的可擴(kuò)展性。XML允許建立適合他們自己的標(biāo)記庫,并且這些標(biāo)記集合可以迅速地投入到互聯(lián)網(wǎng)的使用中。實(shí)際上,現(xiàn)在許多行業(yè)和機(jī)構(gòu)都再利用XML制訂業(yè)內(nèi)使用的標(biāo)記語言標(biāo)準(zhǔn)。比如:數(shù)學(xué)標(biāo)記語言MathML、化學(xué)標(biāo)記語言CML、矢量圖形標(biāo)記語言VML等。
3 基于XML的EDI模型架構(gòu)及實(shí)例
3.1 基于XML的EDI模型架構(gòu)
將XML和EDI相結(jié)合得到新架構(gòu)XML/EDI系統(tǒng),具體模型如下圖2所示。
在XML/EDI系統(tǒng)中,主要是由企業(yè)內(nèi)部EDI服務(wù)器和與互聯(lián)網(wǎng)相連的XML服務(wù)器的兩部分構(gòu)成。其中XML服務(wù)器一端與EDI服務(wù)器相連,實(shí)現(xiàn)XML數(shù)據(jù)的轉(zhuǎn)化,另一端則通過互聯(lián)網(wǎng)與客戶端相連,用于接收客戶端的請求并處理。從上圖的XML/EDI框架圖可以看出,客戶可通過Internet利用XML/EDI進(jìn)行電子數(shù)據(jù)交換。中小企業(yè)不必再受EDI系統(tǒng)及翻譯軟件高昂費(fèi)用的困擾,可輕松通過瀏覽器與XML服務(wù)器相連,以Web表單的形式提交需要傳遞的商業(yè)數(shù)據(jù),之后由服務(wù)器負(fù)責(zé)處理EDI信息的轉(zhuǎn)換與傳輸。對于交換數(shù)據(jù)量較小的企業(yè),這無疑是一種優(yōu)化方案。
3.2 XML/EDI在圖書信息交換中的實(shí)例應(yīng)用
由于EDI需要專用系統(tǒng)與翻譯軟件,通過專用網(wǎng)絡(luò)來進(jìn)行數(shù)據(jù)交換,且是一對一的數(shù)據(jù)交換,系統(tǒng)學(xué)習(xí)、應(yīng)用較復(fù)雜,使用費(fèi)用高,許多中小型出版社或圖書經(jīng)銷商難以承受,因此EDI在圖書行業(yè)的應(yīng)用并不普及。這就使得圖書行業(yè)內(nèi)數(shù)據(jù)缺乏銜接,數(shù)據(jù)孤島現(xiàn)象嚴(yán)重,與行業(yè)外數(shù)據(jù)難以有效關(guān)聯(lián)。行業(yè)內(nèi)上下游之間由于缺少健全合理的數(shù)據(jù)交換共享機(jī)制,造成數(shù)據(jù)流通不暢,數(shù)據(jù)應(yīng)用不充分。隨著XML/EDI的出現(xiàn),上述問題得到有效解決。依據(jù)圖書行業(yè)信息流通標(biāo)準(zhǔn),定義出結(jié)構(gòu)化的XML文件,使得行業(yè)內(nèi)上下游之間能夠通過WEB瀏覽器進(jìn)行圖書信息的共享與交互。
3.2.1 出版社圖書信息xml文件的存取
圖書信息的源頭通常是出版社內(nèi)部一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)中存儲的元數(shù)據(jù)。在與圖書經(jīng)銷商或讀者進(jìn)行數(shù)據(jù)共享與交換之前,首先需要將元數(shù)據(jù)從各個(gè)數(shù)據(jù)庫中提取出來,通過應(yīng)用軟件將元數(shù)據(jù)轉(zhuǎn)換為XML數(shù)據(jù)然后發(fā)布到互聯(lián)網(wǎng)上,與客戶端進(jìn)行數(shù)據(jù)交互。XML是一種表示數(shù)據(jù)的標(biāo)準(zhǔn)語法,而且是可擴(kuò)展的自描述的。系統(tǒng)開發(fā)人員通過創(chuàng)建格式文件,定制標(biāo)記來描述自己各種類型的數(shù)據(jù)對象??蓪⒏鞣N類型的元數(shù)據(jù)集成到一個(gè)標(biāo)準(zhǔn)格式的XML文檔中。下面示例1示范了出版社內(nèi)部應(yīng)用系統(tǒng)通過應(yīng)用軟件將各個(gè)子系統(tǒng)中的圖書信息元數(shù)據(jù)匯總在一起,依據(jù)行業(yè)內(nèi)圖書信息交換規(guī)則,提取為標(biāo)準(zhǔn)格式的“圖書庫存信息”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("重復(fù)");
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? 提取標(biāo)準(zhǔn)“圖書庫存信息”xml文件
3.2.2 標(biāo)準(zhǔn)圖書信息XML文件
制約圖書出版行業(yè)數(shù)據(jù)流通不暢的問題包括,一是數(shù)據(jù)標(biāo)準(zhǔn)不統(tǒng)一,內(nèi)容資源描述與標(biāo)識、產(chǎn)品數(shù)據(jù)描述與記錄、產(chǎn)品流通規(guī)則等缺乏行業(yè)標(biāo)準(zhǔn)。二是數(shù)據(jù)體系不健全,行業(yè)內(nèi)外數(shù)據(jù)沒有有效關(guān)聯(lián)。三是數(shù)據(jù)流通不順暢,缺少健全合理的數(shù)據(jù)交換共享機(jī)制,造成行業(yè)內(nèi)上下游之間數(shù)據(jù)流通不暢,行業(yè)內(nèi)與行業(yè)外的數(shù)據(jù)交換模式尚未建立。四是數(shù)據(jù)應(yīng)用不充分,對數(shù)據(jù)的價(jià)值認(rèn)識不到位。
面對現(xiàn)實(shí)存在的問題,“圖書信息交換規(guī)則”解決了行業(yè)內(nèi)數(shù)據(jù)標(biāo)準(zhǔn)不統(tǒng)一的問題。圖書出版行業(yè)上下游之間的數(shù)據(jù)交換,都遵循此規(guī)則。通過的標(biāo)準(zhǔn)的圖書商品信息xml文件進(jìn)行上下游的數(shù)據(jù)共享與交換。下面示例2節(jié)選行業(yè)內(nèi)標(biāo)準(zhǔn)的“圖書庫存信息”的xml文件片段,其描述了標(biāo)準(zhǔn)圖書庫存數(shù)據(jù)的元素和屬性。