馬 越, 羅漢文
(上海交通大學(xué) 電子信息與電氣工程學(xué)院,上海 200240)
?
三種零售企業(yè)數(shù)據(jù)通信傳輸方法比較
馬越, 羅漢文
(上海交通大學(xué) 電子信息與電氣工程學(xué)院,上海 200240)
摘要:伴隨著零售行業(yè)的迅速發(fā)展,數(shù)據(jù)的種類和復(fù)雜程度不斷增加,尤其單個(gè)數(shù)據(jù)文件之間的數(shù)據(jù)量差別極大.如何能夠在成本固定的基礎(chǔ)上,進(jìn)行準(zhǔn)確、實(shí)時(shí)、高效的數(shù)據(jù)傳輸是一個(gè)非常重要及現(xiàn)實(shí)的問(wèn)題.針對(duì)大量商業(yè)數(shù)據(jù)文件的有效傳輸問(wèn)題,對(duì)現(xiàn)有的3種數(shù)據(jù)傳輸方式進(jìn)行了分析、對(duì)比,結(jié)合企業(yè)數(shù)據(jù)通信系統(tǒng)功能等方面的要求,最終比較得出一種能夠滿足企業(yè)日常業(yè)務(wù)發(fā)展需求,并且具有良好擴(kuò)展性的數(shù)據(jù)通信傳輸方法.
關(guān)鍵詞:零售業(yè); 數(shù)據(jù)傳輸; Webspere MQ
0引言
隨著市場(chǎng)零售行業(yè)的迅速發(fā)展,企業(yè)數(shù)據(jù)的種類和復(fù)雜程度也在不斷增加,尤其單個(gè)數(shù)據(jù)文件之間的數(shù)據(jù)量也存在很大的差異.因此,企業(yè)級(jí)數(shù)據(jù)傳輸對(duì)用于數(shù)據(jù)傳輸?shù)能浖兄韵聨c(diǎn)要求:
(1) 軟件質(zhì)量要求高.企業(yè)要求軟件不僅具有高運(yùn)行效率、高正確性等運(yùn)行性能,亦注重軟件的非運(yùn)行性能,可變更性、可移植性、可重用性.
(2) 軟件結(jié)構(gòu)復(fù)雜.文件傳輸發(fā)送端的地理分布范圍廣,且發(fā)送端和接收端的軟件運(yùn)行環(huán)境涉及大量異構(gòu)的網(wǎng)絡(luò)和硬件,企業(yè)要求軟件必須分布運(yùn)行,并且能夠方便移植,此外還要求服務(wù)器端協(xié)調(diào)好接收文件與數(shù)據(jù)處理兩個(gè)環(huán)節(jié),結(jié)果使軟件結(jié)構(gòu)越來(lái)越復(fù)雜.
(3) 涉及大量底層技術(shù).文件傳輸及數(shù)據(jù)處理軟件涉及到網(wǎng)絡(luò)傳輸、數(shù)據(jù)持久化、分布式事務(wù)處理、負(fù)載平衡、容錯(cuò)等等底層技術(shù).
據(jù)了解,目前國(guó)內(nèi)外大部分企業(yè)在數(shù)據(jù)傳輸?shù)倪^(guò)程中主要采用Database Link(DBLink)或文件傳輸?shù)姆绞?不會(huì)使用到中間件產(chǎn)品.而對(duì)于部分企業(yè),他們則選擇借助中間件產(chǎn)品進(jìn)行數(shù)據(jù)傳輸,WebSphere(WMQ)是其中較為典型的一款中間件產(chǎn)品.
本文作者將模擬日常企業(yè)數(shù)據(jù)通信的模式,對(duì)比上述3種數(shù)據(jù)傳輸模式,驗(yàn)證WMQ在日常企業(yè)數(shù)據(jù)傳輸中的優(yōu)越性.
1Database Link(DBLink)傳輸原理
1.1DBLink簡(jiǎn)介
DBLink指通過(guò)連接到其他數(shù)據(jù)庫(kù)系統(tǒng)的表或者視圖,實(shí)現(xiàn)Oracle對(duì)Oracle數(shù)據(jù)庫(kù)的同步.當(dāng)需要跨本地?cái)?shù)據(jù)庫(kù)訪問(wèn)另外一個(gè)數(shù)據(jù)庫(kù)表中的數(shù)據(jù)時(shí),本地?cái)?shù)據(jù)庫(kù)中就可以創(chuàng)建遠(yuǎn)程數(shù)據(jù)庫(kù)的DBLink,通過(guò)DBLink,本地?cái)?shù)據(jù)庫(kù)可以像訪問(wèn)自身一樣訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)表中的數(shù)據(jù),優(yōu)點(diǎn)是建立同步操作方便快捷,既可以保證數(shù)據(jù)的自動(dòng)更新,又可以保證數(shù)據(jù)庫(kù)間的數(shù)據(jù)保持實(shí)時(shí)一致,實(shí)現(xiàn)兩個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)的有效集成[1-2].
假設(shè)有數(shù)據(jù)庫(kù)服務(wù)器A和B,這兩個(gè)數(shù)據(jù)庫(kù)服務(wù)器要做數(shù)據(jù)同步,如果不使用DBLink,只能先登錄到其中一臺(tái)服務(wù)器上,將數(shù)據(jù)導(dǎo)出后再將數(shù)據(jù)導(dǎo)入到另一臺(tái)服務(wù)器上[3].
圖1 DBLink數(shù)據(jù)同步流程圖
1.2DBLink數(shù)據(jù)同步步驟
DBLink與數(shù)據(jù)庫(kù)中的視圖(view)類似,建立DBLink的時(shí)候需要知道待讀取數(shù)據(jù)庫(kù)的IP地址,服務(wù)集標(biāo)識(shí)符以及數(shù)據(jù)庫(kù)賬號(hào)[4].通過(guò)DBLink建立數(shù)據(jù)庫(kù)間的數(shù)據(jù)同步,需完成如圖1所示的幾個(gè)步驟.
2文件傳輸協(xié)議(FTP)傳輸原理
FTP是使用最為普遍的網(wǎng)絡(luò)協(xié)議之一,由最早的簡(jiǎn)單文件傳輸協(xié)議(TFTP)發(fā)展而來(lái),經(jīng)過(guò)不斷的修正與完善,已成為網(wǎng)絡(luò)間文件傳輸?shù)闹匾獏f(xié)議[5].
從網(wǎng)絡(luò)結(jié)構(gòu)上講,FTP協(xié)議屬于C/S(客戶/服務(wù)器)結(jié)構(gòu),由FTP服務(wù)器與FTP客戶機(jī)兩部分組成,根據(jù)文件傳輸協(xié)議的規(guī)范,客戶機(jī)向服務(wù)器發(fā)出請(qǐng)求,服務(wù)器根據(jù)請(qǐng)求作出相應(yīng)的應(yīng)答.“請(qǐng)求”以命令行的形式發(fā)送;根據(jù)不同的“請(qǐng)求”,服務(wù)器作出相應(yīng)的“應(yīng)答”響應(yīng).
一個(gè)典型的FTP會(huì)話使用兩個(gè)TCP連接來(lái)完成文件傳輸操作.這兩個(gè)TCP連接分別為控制連接和數(shù)據(jù)連接[6].FTP服務(wù)器在端口(協(xié)議口21)執(zhí)行被動(dòng)打開,并等待客戶連接.相應(yīng)地,FTP客戶機(jī)也在這一端口與FTP服務(wù)器聯(lián)系,在程序協(xié)調(diào)下完成一個(gè)TCP連接.控制連接在整個(gè)FTP處理過(guò)程中保持主動(dòng)狀態(tài).客戶機(jī)和服務(wù)器通過(guò)控制連接交換NVTASCII命令串及應(yīng)答碼.FTP建立一個(gè)分立的數(shù)據(jù)連接來(lái)進(jìn)行文件傳送操作[7].
圖2顯示了一個(gè)FTP操作的典型配置.
圖2 FTP操作的典型配置
此操作的核心環(huán)節(jié)是協(xié)議解釋(PI)和數(shù)據(jù)傳輸過(guò)程(DTP).客戶機(jī)和服務(wù)器有它們各自的協(xié)議解釋和數(shù)據(jù)傳輸過(guò)程.數(shù)據(jù)傳輸過(guò)程負(fù)責(zé)建立和管理數(shù)據(jù)連接.協(xié)議解釋部分負(fù)責(zé)解釋命令并通過(guò)客戶PI在FTP會(huì)話一開始建立的控制連接進(jìn)行通信[8].
首先,FTP客戶像其他TCP連接一樣與一個(gè)FTP服務(wù)器建立連接.客戶和服務(wù)器在一端口(協(xié)議口21)建立連接.FTP服務(wù)器接收連接并傳送220號(hào)應(yīng)答碼:220 Service ready.
在FTP客戶接收到一個(gè)220應(yīng)答碼之后,FTP登錄過(guò)程開始,通常FTP服務(wù)器主機(jī)會(huì)要求FTP客戶發(fā)送一個(gè)用戶名及口令字.然后FTP服務(wù)器對(duì)每個(gè)發(fā)送返回一個(gè)應(yīng)答信息.典型的登錄過(guò)程中的FTP命令和服務(wù)器應(yīng)答交換為:USER username;331 User name ok;need password k;PASS secret k;230 User logged in.
登錄之后,用戶可以發(fā)送FTP命令以改變其在FTP服務(wù)器主機(jī)上的工作目錄.用戶在找到要檢索的文件之后,FTP要求客戶和服務(wù)器建立第二個(gè)TCP連接以在文件傳送中傳送數(shù)據(jù).若FTP客戶要求下載服務(wù)器上的文件,則要傳送一個(gè)FTP PORT命令,告知服務(wù)器應(yīng)與它的哪一個(gè)協(xié)議端口連接,然后,客戶傳送一個(gè)RETR命令來(lái)啟動(dòng)文件傳送操作.服務(wù)器則顯示如下相應(yīng)信息:RETR filename k;150 File status okay,about to open data connection.
如果文件傳送成功,服務(wù)器會(huì)傳送一個(gè)226號(hào)應(yīng)答碼為:226 Closing data connection,file transfer successful.FTP客戶向服務(wù)器傳送文件的過(guò)程與此相類似.不同的客戶傳送的是STOR命令而不是RETR命令.對(duì)于一個(gè)匿名FTP登錄來(lái)說(shuō),通常服務(wù)器不接受來(lái)自客戶的文件,這時(shí),客戶和服務(wù)器之間的交互將為:STOR filename k;550 Access denied.
當(dāng)用戶決定結(jié)束FTP會(huì)話時(shí),客戶可以發(fā)送退出(QUIT)命令,且服務(wù)器將做出如下應(yīng)答:QUIT k;221 Good-bye.
3WMQ傳輸原理
WMQ是IBM的商業(yè)通訊中間件.WMQ提供一個(gè)具有工業(yè)標(biāo)準(zhǔn)、安全、可靠的消息傳輸系統(tǒng).它的功能是控制和管理一個(gè)集成的商業(yè)應(yīng)用,使得組成這個(gè)商業(yè)應(yīng)用的多個(gè)分支程序(模塊)之間通過(guò)傳遞消息完成整個(gè)工作流程.WMQ基本由一個(gè)消息傳輸系統(tǒng)和一個(gè)應(yīng)用程序接口組成,其資源是消息和隊(duì)列(Messaging and Queuing).有關(guān)WMQ的幾個(gè)基本概念如下:
消息:消息就是一個(gè)信息單元,這個(gè)信息單元可以是一個(gè)請(qǐng)求(Request message),也可以是一個(gè)應(yīng)答(Reply message),或者是一個(gè)報(bào)告(Report message)或一份報(bào)文(Datagram message).一個(gè)消息包含兩個(gè)因素——消息描述(用于定義諸如消息傳輸目標(biāo)等)和數(shù)據(jù)消息(如應(yīng)用程序數(shù)據(jù)或數(shù)據(jù)庫(kù)查詢等).
隊(duì)列:一個(gè)安全的存儲(chǔ)消息的地方,消息的存儲(chǔ)一般是順序的,隊(duì)列使消息分階段地傳送和接收.因?yàn)橄⒋娣旁陉?duì)列中,所以應(yīng)用程序可以以不同的速度,在不同的時(shí)間,在不同的地點(diǎn)相互獨(dú)立地運(yùn)行.
消息傳輸系統(tǒng):用于確保隊(duì)列之間的消息提供,包括網(wǎng)絡(luò)中不同系統(tǒng)上遠(yuǎn)程隊(duì)列之間的消息提供,并保證網(wǎng)絡(luò)故障或關(guān)閉后的恢復(fù).
應(yīng)用程序接口:應(yīng)用程序和消息系統(tǒng)之間通過(guò)WMQ API實(shí)現(xiàn)的接口.WMQ API在所有WMQ平臺(tái)上是一致的.API只有14個(gè)調(diào)用,2個(gè)關(guān)鍵動(dòng)詞:發(fā)送(PUT)和接收(GET)[9].
如圖3所示,雖然應(yīng)用程序A和應(yīng)用程序B運(yùn)行于同一系統(tǒng)A,它們不需要直接的通訊.應(yīng)用程序A向隊(duì)列1發(fā)送一條消息,而當(dāng)應(yīng)用程序B需要時(shí)就可以得到該消息.如果消息傳輸?shù)哪繕?biāo)改為在系統(tǒng)B上的應(yīng)用程序C,這種變化不會(huì)對(duì)應(yīng)用程序A產(chǎn)生影響,應(yīng)用程序A向隊(duì)列Q2發(fā)送一條消息,系統(tǒng)A的WMQ發(fā)現(xiàn)Q2實(shí)際上在系統(tǒng)B,它將消息放到本地的一個(gè)特殊隊(duì)列-傳輸隊(duì)列(Transmission Queue).系統(tǒng)A的WMQ隨后建立一條到系統(tǒng)B通訊聯(lián)接,傳遞這條消息到系統(tǒng)B,并等待確認(rèn).只有WMQ接到系統(tǒng)B成功地收到消息的確認(rèn)后,才從傳輸隊(duì)列中移走消息.如果通訊線路不通,或系統(tǒng)B不在運(yùn)行,消息會(huì)留在傳輸隊(duì)列中,直到被成功地傳送到目的地.這是WMQ最基本而最重要的技術(shù)—可靠消息傳輸.
事實(shí)上,WMQ具有特殊的技術(shù)防止消息重復(fù)傳送,確保消息一次且僅一次(once-and-only-once)傳遞.
圖3 WMQ消息傳輸示意
43種傳輸方式的比較
4.1準(zhǔn)確性
DBLink:在數(shù)據(jù)傳輸?shù)倪^(guò)程中,如果有涉及到DDL語(yǔ)句,整個(gè)用戶級(jí)別的操作,或者某些特殊規(guī)則,就需要自定義大量的觸發(fā)器來(lái)實(shí)現(xiàn),而這些操作的效率和準(zhǔn)確性都是不確定的,需要花大量時(shí)間去驗(yàn)證.
FTP:不考慮文件自身的內(nèi)容,一味使用ASCII模式傳輸數(shù)據(jù)是不合理的.雖然現(xiàn)在許多Linux和Windows客戶端已經(jīng)支持自動(dòng)傳輸模式,但多達(dá)數(shù)代的UNIX和Windows客戶端都默認(rèn)使用ASCII傳輸模式,這種傳輸模式可能會(huì)造成文件損壞[10].
WMQ:WMQ包含邏輯工作單元支持(logical unit of work),備份和恢復(fù)機(jī)制,大信息傳遞和高性能等特點(diǎn).其中最重要的是確保信息傳輸,意思是一旦WMQ接受一個(gè)信息傳輸?shù)娜蝿?wù),會(huì)確保信息被傳送到目標(biāo)平臺(tái).信息的傳輸是一次且僅一次.另外,強(qiáng)健的中間件機(jī)制保證業(yè)務(wù)數(shù)據(jù)一致性,并可在系統(tǒng)發(fā)生故障時(shí),及時(shí)恢復(fù),業(yè)務(wù)不會(huì)受到影響.
分布式隊(duì)列管理通過(guò)通道兩端的同步點(diǎn)協(xié)調(diào)來(lái)確保消息被正確地傳輸.如果協(xié)調(diào)過(guò)程發(fā)現(xiàn)了錯(cuò)誤,將關(guān)閉通道,把消息安全地存放在傳輸隊(duì)列中,直到通道被重新啟動(dòng).當(dāng)通道啟動(dòng)時(shí),同步過(guò)程可以恢復(fù)可疑(in-doubt)狀態(tài).只有意外的情況,才會(huì)出現(xiàn)通道可疑的情況,一般情況通道能自動(dòng)解決可疑狀態(tài).
4.2實(shí)時(shí)性
DBLink:針對(duì)DBLink的數(shù)據(jù)庫(kù)間傳輸效率問(wèn)題,對(duì)一張具有數(shù)據(jù)記錄數(shù)約5萬(wàn)條且含有大字段CLOB的表進(jìn)行數(shù)據(jù)拷貝.DBLink復(fù)制表的時(shí)間約為14 s.
測(cè)試過(guò)程中會(huì)面臨一個(gè)問(wèn)題,當(dāng)利用DBLink直接查詢表的時(shí)候,若表中含有CLOB大字段,查詢會(huì)報(bào)錯(cuò):“ORA-22992:無(wú)法使用從遠(yuǎn)程表選擇的LOB定位器”,但可用該語(yǔ)句創(chuàng)建表.若同步數(shù)據(jù)量多的話,oracle不具備斷點(diǎn)續(xù)傳功能,如果對(duì)方數(shù)據(jù)庫(kù)出問(wèn)題(undo表空間不足、臨時(shí)表空間不足、其他錯(cuò)誤等)、網(wǎng)絡(luò)問(wèn)題的話,則需要重新同步所有數(shù)據(jù),這就涉及到了效率的問(wèn)題.
FTP:傳統(tǒng)FTP采用單線程上傳文件,在網(wǎng)絡(luò)帶寬有限的條件下,對(duì)帶寬的搶占優(yōu)勢(shì)小,導(dǎo)致上傳速度慢;如果上傳文件容量巨大,使用傳統(tǒng)單線程FTP上傳方式將耗時(shí)更長(zhǎng);而且在傳輸過(guò)程中,可能會(huì)發(fā)生意外斷電或網(wǎng)絡(luò)連接中斷等不可預(yù)知的情況,導(dǎo)致文件重新上傳的操作頻繁,極大影響了數(shù)據(jù)共享的效率[11].
此外,從FTP服務(wù)器上檢索一個(gè)文件,包含繁復(fù)的交換握手步驟,需要經(jīng)過(guò)三次握手來(lái)建立一條TCP Socket連接.傳輸一個(gè)文件,FTP需要往復(fù)10次,這也會(huì)對(duì)傳輸效率造成一定的影響[12].
WMQ:針對(duì)測(cè)試flow “StdTransfer_Test”,使用了包含各種大小(KB級(jí)別和MB級(jí)別)跟類型(xml,pdf,txt等)的測(cè)試數(shù)據(jù).
表1反映了flow “StdTransfer_Test” 在2016.01.29當(dāng)天每個(gè)小時(shí)內(nèi)傳輸?shù)臄?shù)據(jù)量.該flow在當(dāng)日每小時(shí)中最大負(fù)載的極限數(shù)據(jù)處理量為67840條數(shù)據(jù).
表1 WMQ中測(cè)試flow數(shù)據(jù)傳輸速度
而針對(duì)單條數(shù)據(jù)而言,測(cè)試表明數(shù)據(jù)從源系統(tǒng)發(fā)送到目標(biāo)系統(tǒng)時(shí),在WMQ中的處理時(shí)間極短,幾乎沒(méi)有延遲:
由圖4可以看出,WMQ對(duì)單條數(shù)據(jù)的處理速度在微秒級(jí)別,即數(shù)據(jù)在到達(dá)WMQ后,幾乎同時(shí)就可以被發(fā)送往目標(biāo)系統(tǒng),延遲極小.
圖4 WMQ單條數(shù)據(jù)發(fā)送效率示意
4.3安全性
DBLink:這里所說(shuō)的數(shù)據(jù)庫(kù)安全性指針對(duì)非授權(quán)用戶的數(shù)據(jù)庫(kù)保護(hù)措施.安全性問(wèn)題涉及的層面很多,非法用戶可以從以下各層面對(duì)數(shù)據(jù)庫(kù)進(jìn)行竊取或篡改:
(1) 數(shù)據(jù)庫(kù)系統(tǒng)層面:非法用戶可以通過(guò)獲取高級(jí)用戶數(shù)據(jù)庫(kù)權(quán)限的手段對(duì)數(shù)據(jù)庫(kù)進(jìn)行竊取或篡改;
(2) 操作系統(tǒng)層面:非法用戶可以通過(guò)獲取操作系統(tǒng)root權(quán)限的手段,對(duì)數(shù)據(jù)庫(kù)(包括但不僅限于數(shù)據(jù)庫(kù))進(jìn)行竊取或篡改;
(3) 網(wǎng)絡(luò)層面:非法用戶可以通過(guò)網(wǎng)絡(luò)竊聽和身份偽裝竊取線上機(jī)密數(shù)據(jù);
(4) 物理層面:非法用戶可以從物理上進(jìn)行數(shù)據(jù)竊取和破壞存儲(chǔ)設(shè)備.
一般DBLink的數(shù)據(jù)庫(kù)安全性管理從3個(gè)角度入手:服務(wù)器操作系統(tǒng)(OS)登陸身份驗(yàn)證;數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)登陸身份驗(yàn)證;數(shù)據(jù)庫(kù)(DBMS)權(quán)限管理.
權(quán)限管理屬于自定義式(Discretionary)的訪問(wèn)控制,還有一種機(jī)制是強(qiáng)制(Mandatory)訪問(wèn)控制(從安全模型、數(shù)據(jù)對(duì)象標(biāo)簽等角度),一般數(shù)據(jù)庫(kù)具有以下權(quán)限:讀數(shù)據(jù)權(quán)限;插入數(shù)據(jù)權(quán)限;修改數(shù)據(jù)權(quán)限;刪除數(shù)據(jù)權(quán)限;創(chuàng)建刪除索引權(quán)限;關(guān)系創(chuàng)建權(quán)限;關(guān)系修改權(quán)限;關(guān)系刪除權(quán)限…….
前文提及的視圖算是一種權(quán)限管理機(jī)制(用戶訪問(wèn)符合授權(quán)的視圖),除此之外用授權(quán)視圖來(lái)表示權(quán)限管理等級(jí)也是常用方法(用戶和數(shù)據(jù)庫(kù)管理員(DBA)均參與).
還有一個(gè)常見(jiàn)的數(shù)據(jù)庫(kù)安全管理措施叫做審計(jì)跟蹤(Audit Trail),即DBMS在特殊文件或數(shù)據(jù)庫(kù)中記錄每個(gè)用戶的具體操作,那么DBA可以查看記錄是否越權(quán)等,
FTP:在互聯(lián)網(wǎng)早期,文件傳輸協(xié)議(FTP)并沒(méi)有對(duì)密碼安全做出規(guī)定.在FTP客戶端和服務(wù)器端,數(shù)據(jù)以明文的形式傳輸,任何對(duì)通訊路徑上的路由具有控制能力的人,都可以通過(guò)嗅探獲取用戶的密碼和數(shù)據(jù).當(dāng)然,可以使用安全套接層(SSL)封裝FTP,但FTP是通過(guò)建立多次鏈接進(jìn)行數(shù)據(jù)傳輸?shù)?即使保護(hù)了密碼安全,也很難保護(hù)數(shù)據(jù)傳輸?shù)陌踩?
FTP誕生在網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)和防火墻之前,那時(shí)的網(wǎng)絡(luò)還不存在惡意攻擊.當(dāng)今大多數(shù)最終用戶的IPv4地址已不可路由,這是因?yàn)榉阑饓Φ氖褂煤虸Pv4地址的短缺.如果FTP客戶端IP地址不可路由,或者位于防火墻之后,那么就只能使用被動(dòng)傳輸模式進(jìn)行數(shù)據(jù)傳輸.如果服務(wù)器端的IP地址也不可路由,或者位于防火墻之后,則FTP將無(wú)法進(jìn)行數(shù)據(jù)傳輸[13].
現(xiàn)在,許多防火墻適用于NAT環(huán)境,可以使用一些特殊的技巧(hacks)允許FTP在防火墻之后正常工作.當(dāng)然,這需要對(duì)防火墻進(jìn)行配置[14].
WMQ:WMQ 隊(duì)列管理器傳遞的信息可能都是有價(jià)值的數(shù)據(jù),因此需要使用授權(quán)系統(tǒng)來(lái)保證未授權(quán)的用戶無(wú)法訪問(wèn)定義的隊(duì)列管理器.所以WMQ提供以下安全性控制:管理WMQ的權(quán)限,可以定義一些用戶通過(guò)命令來(lái)管理WMQ.使用WMQ對(duì)象的權(quán)限,可以定義哪些用戶(通常是應(yīng)用程序)可以使用 MQI 調(diào)用和 PCF 命令執(zhí)行以下操作:連接到隊(duì)列管理器;訪問(wèn)類似隊(duì)列、名字列表和進(jìn)程的對(duì)象,訪問(wèn)這些對(duì)象的方式;訪問(wèn)WMQ消息;訪問(wèn)與消息相關(guān)聯(lián)的上下文信息.通道安全性:需要確保用于將消息發(fā)送到遠(yuǎn)程系統(tǒng)的通道可以訪問(wèn)必需的資源,還需要確保該通道被已授權(quán)的用戶操縱.
4.4可擴(kuò)展性
DBLink:如果要將幾個(gè)oracle數(shù)據(jù)庫(kù)里的數(shù)據(jù)集中到一個(gè)統(tǒng)合的數(shù)據(jù)庫(kù)中,需要統(tǒng)合的數(shù)據(jù)庫(kù)有SQLSERVER以及ORACLE,但是兩者的字符集又有所區(qū)別.如果僅使用DBLink的話那么就需要手動(dòng)的更新;此外,數(shù)據(jù)庫(kù)的版本也可能會(huì)影響到數(shù)據(jù)傳輸能力,比如“ORA-00600”錯(cuò)誤,就是由于數(shù)據(jù)庫(kù)版本匹配問(wèn)題造成的.
FTP:基于FTP協(xié)議的簡(jiǎn)化文件傳輸組件具有一定的可移植性,但現(xiàn)有的FTP客戶端軟件大多獨(dú)立運(yùn)行,不能很好地嵌入到既有系統(tǒng)之中,且存在無(wú)法定制功能的缺陷[15].
WMQ:WMQ作為標(biāo)準(zhǔn)的商業(yè)中間件,企業(yè)可以借助WMQ很容易地在現(xiàn)有或遺留系統(tǒng)之上或之外增加新的功能模塊或商務(wù)構(gòu)件,并將它們與原有系統(tǒng)無(wú)縫集合.
此外,從經(jīng)濟(jì)及時(shí)間成本的角度分析,WMQ中間件還具有以下優(yōu)勢(shì):
應(yīng)用開發(fā):The Standish Group分析了一百個(gè)關(guān)鍵應(yīng)用系統(tǒng)中的業(yè)務(wù)邏輯程序、應(yīng)用邏輯程序及基礎(chǔ)程序所占的比例,發(fā)現(xiàn)業(yè)務(wù)邏輯程序、應(yīng)用邏輯程序僅占總程序量的30%,而基礎(chǔ)程序卻占了70%.若是以新一代的中間件系列產(chǎn)品來(lái)組合應(yīng)用,同時(shí)配合以可復(fù)用的商務(wù)對(duì)象構(gòu)件,則應(yīng)用開發(fā)費(fèi)用可節(jié)省至80%.
系統(tǒng)運(yùn)行:沒(méi)有使用中間件的應(yīng)用系統(tǒng),其初期投入的資金及運(yùn)行費(fèi)用要比同規(guī)模的使用中間件的應(yīng)用系統(tǒng)多一倍.
開發(fā)周期:時(shí)間限制是所有應(yīng)用系統(tǒng)開發(fā)項(xiàng)目的天敵,而基礎(chǔ)軟件的開發(fā)又是一件極耗時(shí)的工作,若使用標(biāo)準(zhǔn)商業(yè)中間件則可縮短開發(fā)周期50%~75%.
合理運(yùn)用資金:借助標(biāo)準(zhǔn)的商業(yè)中間件,企業(yè)可以很容易地在現(xiàn)有或遺留系統(tǒng)之上或之外增加新的功能模塊,并將它們與原有系統(tǒng)無(wú)縫集合.
系統(tǒng)維護(hù):每年維護(hù)自我開發(fā)的基礎(chǔ)(中間件)軟件的開支是當(dāng)初開發(fā)費(fèi)用的15%~25%,每年應(yīng)用程序的維護(hù)開支則僅需要當(dāng)初項(xiàng)目總費(fèi)用的10%~20%.
質(zhì)量:基于企業(yè)自我建造的基礎(chǔ)(中間件)軟件平臺(tái)上的應(yīng)用系統(tǒng),每增加一個(gè)新的模塊,就要相應(yīng)地在基礎(chǔ)(中間件)軟件之上進(jìn)行改進(jìn).The Standish Group在調(diào)研過(guò)程中,曾在某個(gè)企業(yè)中的一個(gè)應(yīng)用系統(tǒng)里,發(fā)現(xiàn)了有多達(dá)17000多個(gè)模塊接口,而標(biāo)準(zhǔn)的中間件在接口方面都是清晰和規(guī)范的,可以有效地保證應(yīng)用系統(tǒng)質(zhì)量及減少新舊系統(tǒng)維護(hù)開支[9].
5結(jié)論
就DBLink和FTP這兩類數(shù)據(jù)傳輸方式而言,由于傳輸軟件開發(fā)的抽象層次不高,開發(fā)人員更多地將精力集中在建設(shè)底層設(shè)施、保證傳輸?shù)恼_性和提高系統(tǒng)的執(zhí)行效率上.軟件系統(tǒng)的開發(fā)效率低下,軟件系統(tǒng)的可重用性、可擴(kuò)展性不高,不能適應(yīng)用戶對(duì)高質(zhì)量軟件系統(tǒng)的要求.
WMQ則以一致的、可靠的和易于管理的方式來(lái)連接應(yīng)用程序,并為跨部門、企業(yè)范圍的集成提供了可靠的基礎(chǔ).它為重要的消息和事務(wù)提供可靠的、一次且僅一次的傳遞,同時(shí)也可以處理復(fù)雜的通信協(xié)議,并動(dòng)態(tài)地將消息傳遞工作負(fù)載分配給可用的資源.
綜上所述,WMQ由于集成了DBLink與FTP的功能,在準(zhǔn)確性、實(shí)時(shí)性、安全性上具有良好的表現(xiàn),且具有強(qiáng)大的可擴(kuò)展性,并有效地降低了時(shí)間和經(jīng)濟(jì)成本、提升了項(xiàng)目開發(fā)的成功率,是零售企業(yè)用于數(shù)據(jù)通信傳輸?shù)淖罴压ぞ?
參考文獻(xiàn):
[1]Chen S J,Chen X J,Zhang P.Research and implementation of data synchronization based on DBLink [J].Computer programming skills and maintenance,2015(8):71-72.
[2]Zheng Y J.Application integration research in digital campus [J].Journal of Nanningpolytechnic,2010,15(2):96-100.
[3]Shi Z Y,Feng Q Q.Application of heterogeneous data integration in the digital campus [J].Journal of Air Force Radar Academy,2010,24(1):54-57.
[4]Zhang J.Analysis and design on college heterogeneous data integration [J].Science & Technology Economy Market,2010 (7):3-5.
[5]GrayCat.FTP Must Die [EB/OL].(2016-2-15)[2016-3-1].http://mywiki.wooledge.org/FtpMustDie.
[6]Gong L,Mao X J.Implementation of FTP client based on C# [J].Computer Programming Skills and Maintenance,2010(24):94-95.
[7]Li L.Design and implementation of distributed FTP system [J].Journal of Liaoning Technical University,2005,24(2):232-234.
[8]Yu Y S.Web common transceiver system development based on FTP protocol [J].Modern Computer,2009,26(9):183-185.
[9]Gan Q.IBM WebSphere MQ basic course [M].Beijing:Publishing House of Electronics Industry,2004.
[10]Zhang G X,Chen H.Research ofautomatically updates for cross-platform systems based on FTP and message mechanism [J].Computer security,2010,31(9):16-18.
[11]Wu K,Lu B L,Zhang L.Implementation of client software based on FTP protocol [J].Journal of Shenyang Institute of Aeronautical Engineering,2006,23(4):39-42.
[12]Qu T.Data communications and network infrastructure [M].Wuhan:Huazhong University of Science and Technology Press,1996.
[13]Zheng M.Classic examples for C++ Builder and Windows API [M].Beijing:Tsinghua University Press,2002.
[14]Lei Z J,Ma Y X.Computer network [M].Xi′an:Xi′an Electronic Science &Technology University Press,1996.
[15]KrisJamsa D,Wright C.C# programming tips and techniques [M].Osborne:McGraw-Hill,2001.
(責(zé)任編輯:包震宇)
Comparison of three retail data communication andtransmission methods
MA Yue, LUO Hanwen
(School of Electronic Information and Electrical Engineering,Shanghai Jiao Tong University,Shanghai 200240,China)
Abstract:With the rapid development of retail trade,the type and complexity of data keep increasing,and single data file size has a great difference between each other.How to realize an accurate,real-time and efficient data transmission based on a fixed cost is an important problem.Regarding the problem of effective transmission for business data files,this article implements analysis and comparison on 3 existing data transmission methods,considering the requirements on aspects like function in enterprise data communication system,we get a conclusion that which method can both meet the enterprise daily business development requirement better and have good extension ability.
Key words:WebSphere MQ; retail trade; data transmission
中圖分類號(hào):TN 919.3
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1000-5137(2016)02-0142-08
通信作者:羅漢文,中國(guó)上海市閔行區(qū)東川路800號(hào),上海交通大學(xué)電子信息與電氣工程學(xué)院,郵編:200240,E-mail:hwluo@sjtu.edu.cn
收稿日期:2016-03-03
上海師范大學(xué)學(xué)報(bào)·自然科學(xué)版2016年2期