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