周小娟
(西安外事學(xué)院 計(jì)算機(jī)中心,陜西 西安 710077)
在電子商務(wù)蓬勃發(fā)展的今天,越來越多的企業(yè)將產(chǎn)品的銷售重心定位在了電子商務(wù)銷售渠道,在淘寶,京東,亞馬遜等電子商務(wù)銷售平臺開設(shè)銷售旗艦店或者分銷店已經(jīng)成為一種非常重要的銷售方式。為了能夠?qū)⑶岸虽N售平臺產(chǎn)生的大量訂單及時(shí)的進(jìn)行處理,然后快速安排倉儲出貨,物流配送,客服系統(tǒng)售后跟進(jìn),并進(jìn)行企業(yè)財(cái)務(wù)系統(tǒng)賬務(wù)處理,就必須在企業(yè)網(wǎng)絡(luò)系統(tǒng)中存在一種能夠連接前端銷售平臺和企業(yè)各個(gè)業(yè)務(wù)子系統(tǒng)的中間件產(chǎn)品,該產(chǎn)品能夠及時(shí)準(zhǔn)確的從銷售平臺獲取客戶訂單,并將銷售訂單在各個(gè)業(yè)務(wù)子系統(tǒng)之間進(jìn)行傳輸,并觸發(fā)不同的子系統(tǒng)對訂單進(jìn)行相應(yīng)的業(yè)務(wù)處理,從而加快企業(yè)對客戶訂單的響應(yīng)速度。這種中間件產(chǎn)品就是企業(yè)服務(wù)總線,英文簡稱ESB。
企業(yè)服務(wù)總線提供了企業(yè)網(wǎng)絡(luò)中最基本的連接中樞,是構(gòu)筑企業(yè)網(wǎng)絡(luò)神經(jīng)系統(tǒng)的必要元素,企業(yè)網(wǎng)絡(luò)中各個(gè)系統(tǒng)進(jìn)出的數(shù)據(jù)和指令都要由企業(yè)服務(wù)總線進(jìn)行分發(fā)、轉(zhuǎn)譯、記錄和控制。企業(yè)服務(wù)總線連接了各個(gè)不同的系統(tǒng),消除了企業(yè)不同應(yīng)用之間的技術(shù)差異,讓不同的應(yīng)用服務(wù)器協(xié)調(diào)運(yùn)作,實(shí)現(xiàn)了不同服務(wù)之間的通信與整合,從而加快了業(yè)務(wù)的處理速度。
在現(xiàn)有的企業(yè)服務(wù)總線產(chǎn)品中,有IBM的WebSphere ESB,Oracle的BEA Aqua Logic等高端企業(yè)服務(wù)總線產(chǎn)品;同時(shí),也有類似ServiceMix等低端的開源架構(gòu)。綜合來看,高端產(chǎn)品過于龐大昂貴,而低端產(chǎn)品又比較死板。本文根據(jù)一般中小企業(yè)業(yè)務(wù)靈活多變的特點(diǎn),研究實(shí)現(xiàn)了一種輕量級可配置,并面向電子商務(wù)業(yè)務(wù)的架構(gòu),不僅能夠滿足中小企業(yè)在電子商務(wù)業(yè)務(wù)方面的需求,還具有高可擴(kuò)展性,用戶能隨時(shí)對功能進(jìn)行延伸,比如進(jìn)行更強(qiáng)的日志監(jiān)控,更多的數(shù)據(jù)轉(zhuǎn)換能力等。
企業(yè)服務(wù)總線在企業(yè)網(wǎng)絡(luò)中扮演了連接中樞的作用,不同業(yè)務(wù)類型的企業(yè)網(wǎng)絡(luò)中,企業(yè)服務(wù)總線的作用可能各有差別,但主要的功能應(yīng)當(dāng)是相同的。面向電子商務(wù)業(yè)務(wù)的企業(yè)服務(wù)總線在功能上需要實(shí)現(xiàn)兩大方面的主要功能:
1)數(shù)據(jù)交換
數(shù)據(jù)交換是企業(yè)服務(wù)總線最主要的功能。淘寶,京東等銷售平臺以及企業(yè)的各個(gè)業(yè)務(wù)子系統(tǒng)一般是由不同的軟件供應(yīng)商提供,開發(fā)采用了不同的開發(fā)技術(shù),為了將它們接入企業(yè)服務(wù)總線,企業(yè)服務(wù)總線必須對不同技術(shù)開發(fā)的不同子系統(tǒng)提供不同的接入方式。本系統(tǒng)實(shí)現(xiàn)了電子商務(wù)網(wǎng)絡(luò)系統(tǒng)中最常用的兩種接入方式:Http和web service。在各個(gè)業(yè)務(wù)子系統(tǒng)成功接入企業(yè)服務(wù)總線后,企業(yè)服務(wù)總線必須能夠?qū)鬏數(shù)臉I(yè)務(wù)數(shù)據(jù)進(jìn)行解析和轉(zhuǎn)換,為數(shù)據(jù)流入下一個(gè)子系統(tǒng)進(jìn)行準(zhǔn)備。本系統(tǒng)實(shí)現(xiàn)了對xml和jason這兩種最常用的數(shù)據(jù)格式的解析和轉(zhuǎn)換。企業(yè)服務(wù)總線還必須具有路由分發(fā)的功能,將不同類型的業(yè)務(wù)數(shù)據(jù)分發(fā)到不同的業(yè)務(wù)子系統(tǒng)中去。
2)運(yùn)營管理
運(yùn)營管理負(fù)責(zé)企業(yè)服務(wù)總線的管理,配置和監(jiān)控,具體包括企業(yè)服務(wù)總線的操作用戶管理,權(quán)限管理,業(yè)務(wù)子系統(tǒng)和銷售平臺的接入控制和配置,和各個(gè)子系統(tǒng)數(shù)據(jù)交互的監(jiān)控,日志管理等等。
圖1 企業(yè)服務(wù)總線在企業(yè)網(wǎng)絡(luò)中的位置圖Fig.1 Position of enterprise service bus within the enterprise network
企業(yè)服務(wù)總線在設(shè)計(jì)中必須遵循以下兩個(gè)原則:
1)對各個(gè)接入系統(tǒng)透明
企業(yè)服務(wù)總線的主要作用是整合已有的子系統(tǒng)及其服務(wù),而不是直接在企業(yè)服務(wù)總線上開發(fā)新的業(yè)務(wù)功能模塊。因此對于各個(gè)接入系統(tǒng)的體系架構(gòu),企業(yè)服務(wù)總線的引入所帶來的重構(gòu)影響應(yīng)當(dāng)控制在最小。企業(yè)服務(wù)總線對于接入系統(tǒng)來說是應(yīng)當(dāng)是透明的,即接入子系統(tǒng)在使用Web服務(wù)的時(shí)候不用知道企業(yè)服務(wù)總線的存在,它向某個(gè)預(yù)先配置的地址發(fā)送Web服務(wù)請求,并期望得到預(yù)期的結(jié)果。接入子系統(tǒng)無需區(qū)分它訪問的服務(wù)是實(shí)際的Web服務(wù)還是企業(yè)服務(wù)總線。同樣,企業(yè)服務(wù)總線對于提供服務(wù)的子系統(tǒng)也是透明的。服務(wù)提供方只需在企業(yè)服務(wù)總線上注冊了一個(gè)服務(wù),便能接受來自于企業(yè)服務(wù)總線的服務(wù)請求。服務(wù)提供方無需分辨服務(wù)調(diào)用者來自何處,而只需處理請求并返回相應(yīng)的結(jié)果即可。
2)組件動(dòng)態(tài)裝配
在企業(yè)服務(wù)總線的設(shè)計(jì)中,對于接入系統(tǒng)的接口都是以組件的形式存在的。另外,對于不同的接入系統(tǒng)的消息轉(zhuǎn)譯也是通過組件實(shí)現(xiàn)。消息在企業(yè)服務(wù)總線流轉(zhuǎn)時(shí),可以給消息數(shù)據(jù)選擇合適的傳入/傳出轉(zhuǎn)譯器。對于服務(wù)的特殊要求,如日志管理,緩存管理,異常管理等,用戶都能通過擴(kuò)展組件的方式,在需要的時(shí)候配置組裝上去。這些組件的組裝,不是在代碼中寫死,而是由企業(yè)服務(wù)總線系統(tǒng)提供配置文件供用戶來裝配。在裝配過程中,無需修改源代碼,且支持即插即用,而無需重啟企業(yè)服務(wù)總線的服務(wù)器。所有組件都可以隨時(shí)根據(jù)需求變換升級,這些變化對于其它組件是透明的。
基于上一節(jié)的設(shè)計(jì)原則,本文所實(shí)現(xiàn)的企業(yè)服務(wù)總線整個(gè)系統(tǒng)包括7大模塊:接入控制、消息分發(fā)、消息轉(zhuǎn)譯、服務(wù)端接口調(diào)用、配置管理、日志管理、接口適配器。
圖2 企業(yè)服務(wù)總線的設(shè)計(jì)框架圖Fig.2 Framework of Enterprise Service Bus
服務(wù)消費(fèi)者一般指業(yè)務(wù)的發(fā)起者,在本系統(tǒng)中就是淘寶,京東等銷售平臺,當(dāng)用戶在這些平臺購買產(chǎn)品產(chǎn)生訂單后,這些訂單會被定時(shí)同步到總線并會觸發(fā)后續(xù)的業(yè)務(wù)流程。服務(wù)生產(chǎn)者是指在業(yè)務(wù)流程運(yùn)行的過程中需要訪問的各個(gè)業(yè)務(wù)子系統(tǒng),包括企業(yè)財(cái)務(wù)系統(tǒng),物流系統(tǒng),倉儲系統(tǒng),客服系統(tǒng)等等。
接入控制模塊負(fù)責(zé)和各個(gè)接入系統(tǒng)建立通信連接、解析控制信息、權(quán)限控制等功能。本企業(yè)服務(wù)總線系統(tǒng)提供http reset,web service接入方式建立企業(yè)服務(wù)總線和各個(gè)子系統(tǒng)的通訊連接。在連接建立后通過對子系統(tǒng)和銷售平臺的應(yīng)用標(biāo)識及認(rèn)證key進(jìn)行驗(yàn)證,來校驗(yàn)接入系統(tǒng)的合法性。接入校驗(yàn)通過后,本企業(yè)服務(wù)總線平臺會進(jìn)一步校驗(yàn)應(yīng)用系統(tǒng)對服務(wù)的訪問權(quán)限,如果應(yīng)用系統(tǒng)沒有訪問該服務(wù)的權(quán)限,則直接拒絕。
消息分發(fā)模塊根據(jù)消息控制信息中的功能編碼將消息交由相應(yīng)的功能組件進(jìn)行處理,同時(shí)判斷組件的隊(duì)列情況對流量進(jìn)行控制。
消息轉(zhuǎn)譯模塊用于翻譯消息的內(nèi)容,使得不同平臺之間能夠相互理解。信息轉(zhuǎn)譯部分包括兩個(gè)子模塊,傳入信息轉(zhuǎn)譯和傳出信息轉(zhuǎn)譯。傳入信息轉(zhuǎn)譯指將前端客戶端發(fā)出的消息格式轉(zhuǎn)化為目標(biāo)服務(wù)能理解的格式;而傳出信息轉(zhuǎn)譯是指將目標(biāo)服務(wù)處理完成后的反饋信息轉(zhuǎn)化為前端客戶能理解的格式,將結(jié)果反饋給前端。消息轉(zhuǎn)譯在客戶端和后端服務(wù)之間架設(shè)了一座橋梁,使得兩者能夠無障礙通訊。
服務(wù)端接口調(diào)用模塊根據(jù)服務(wù)注冊信息調(diào)用服務(wù)生成者提供的服務(wù),并將處理結(jié)果傳送給消息轉(zhuǎn)譯組件進(jìn)行處理,最終將服務(wù)生產(chǎn)者處理的結(jié)果返回給服務(wù)消費(fèi)者。
配置管理模塊用于管理所有的這些組件的配置管理工作,使得系統(tǒng)能夠動(dòng)態(tài)的加載或更新這些信息。配置管理包括:服務(wù)注冊、權(quán)限配置等。
日志管理模塊負(fù)責(zé)運(yùn)行日志管理、消息監(jiān)控。通過運(yùn)行日志,可以查看企業(yè)服務(wù)總線平臺的運(yùn)行情況及在異常時(shí)分析問題發(fā)生的原因。根據(jù)消息流水號可以查詢到消息的執(zhí)行情況,如:接收數(shù)據(jù)包、發(fā)送數(shù)據(jù)包、執(zhí)行時(shí)間等,同時(shí)也可以方便的統(tǒng)計(jì)出各個(gè)應(yīng)用及服務(wù)的訪問情況,如:應(yīng)用訪問總數(shù)、服務(wù)訪問總數(shù)、執(zhí)行時(shí)間、成功率等。
接口適配器模塊的主要功能就是在客戶端不作任何改動(dòng)的前提下,使得其能將信息發(fā)送給企業(yè)服務(wù)總線,并能幫助客戶端理解企業(yè)服務(wù)總線傳回來的反饋信息。在實(shí)際工作時(shí),接口適配器接收企業(yè)服務(wù)總線發(fā)來的信息,并將之轉(zhuǎn)化為服務(wù)生產(chǎn)者所能理解的格式。另一方面,當(dāng)服務(wù)生產(chǎn)者發(fā)回反饋信息后,將其包裝成企業(yè)服務(wù)總線能理解的標(biāo)準(zhǔn)格式反饋回去。
本文實(shí)現(xiàn)的企業(yè)服務(wù)總線主要提供如下三類功能的接口:
1)獲取訂單數(shù)據(jù)接口
訂單數(shù)據(jù)接口通過獨(dú)立的定時(shí)任務(wù)從外網(wǎng)銷售平臺定時(shí)獲取一定時(shí)間段的訂單,并將獲
取的訂單同步給訂單處理業(yè)務(wù)子系統(tǒng)。
通過消息訂閱或輪詢的方式從淘寶、拍拍、碰碰、官網(wǎng)商城等渠道獲取訂單列表信息,訂單列表只包含訂單號、訂單生成時(shí)間等基本信息,為了保障訂閱消息接收或輪詢的速度,在獲取訂單列表信息后對消息不作處理,而將原始訂單信息記錄同步給訂單處理業(yè)務(wù)子系統(tǒng)。不同的渠道處理方式不一樣,對于提供了消息訂閱的渠道(如:淘寶),采用訂閱消息接收+輪詢的方式從獲取訂單列表信息,對于未提供消息訂閱的渠道,采用輪詢的方式獲取訂單列表。
企業(yè)服務(wù)總線平臺需要能夠手工添加訂單,或者對于沒有提供自動(dòng)接口的銷售渠道平臺能夠通過excel的方式將訂單導(dǎo)入到接口隊(duì)列。
2)訂單流轉(zhuǎn)接口
訂單處理子系統(tǒng)在處理訂單的流程中需要與外圍其它業(yè)務(wù)子系統(tǒng)進(jìn)行數(shù)據(jù)交換,這類接口大部分都是雙向的,既有企業(yè)服務(wù)總線對外發(fā)送請求,也有外圍系統(tǒng)返回信息給企業(yè)服務(wù)總線。
訂單處理子系統(tǒng)在任務(wù)單調(diào)度時(shí),在某些環(huán)節(jié)需要將指令發(fā)送給外圍系統(tǒng),如:在安排倉庫時(shí)需要將指令發(fā)送給物流寶、SPD等物流系統(tǒng),在安排貨運(yùn)時(shí)需要將指令發(fā)送給物流寶、SPD、宅急送等運(yùn)輸系統(tǒng)。此時(shí)訂單處理子系統(tǒng)將指令發(fā)送給調(diào)度任務(wù)接口適配器,由調(diào)度任務(wù)接口適配器將訂單處理子系統(tǒng)的指令轉(zhuǎn)換為企業(yè)服務(wù)總線能夠識別的指令與外圍系統(tǒng)交互。這里也需要對指令執(zhí)行過程進(jìn)行監(jiān)控,能夠查詢指令的執(zhí)行情況,如:執(zhí)行結(jié)果、執(zhí)行時(shí)間、接口數(shù)據(jù)等。
3)對外服務(wù)接口
提供服務(wù)給外圍接入系統(tǒng)調(diào)用,如:查詢庫存信息、查詢訂單信息、查詢產(chǎn)品信息等,提供http rest及web service兩種方式接入。
企業(yè)服務(wù)總線的部署需要部署在一臺獨(dú)立的應(yīng)用服務(wù)器上,為了最大化的發(fā)揮企業(yè)服務(wù)總線的性能,其數(shù)據(jù)庫也要求部署在獨(dú)立的服務(wù)器上。
圖3 企業(yè)服務(wù)總線的接口分布Fig.3 Interface of enterprise service Bus
軟件方面,企業(yè)服務(wù)總線應(yīng)用服務(wù)器需要安裝JDK1.6版本,以及Tomcat應(yīng)用容器進(jìn)行服務(wù)的發(fā)布,數(shù)據(jù)庫軟件可以使用Oracle或者M(jìn)ySQL。
圖4 企業(yè)服務(wù)總線的部署圖Fig.4 Deployment diagram of Enterprise Service Bus
本文通過對電子商務(wù)[8]環(huán)境下企業(yè)運(yùn)營現(xiàn)狀的研究,提出并實(shí)現(xiàn)了一種適合中小企業(yè)電子商務(wù)業(yè)務(wù)的企業(yè)服務(wù)總線。該總線具有輕量級,可配置,高擴(kuò)展性等特點(diǎn),能夠很好的接入各類企業(yè)電子商務(wù)銷售渠道平臺,以及企業(yè)各個(gè)業(yè)務(wù)子系統(tǒng)。該企業(yè)服務(wù)總線的實(shí)現(xiàn)可以極大的加快中小企業(yè)訂單的響應(yīng)速度,使得從客戶在網(wǎng)站下單到物流配送,倉儲管理業(yè)務(wù)一體化連續(xù)化,從而加快訂單的處理速度,減少人力成本,提高客戶的滿意度,為企業(yè)創(chuàng)造更大的效益。
[1]陳坤,楊社堂.企業(yè)服務(wù)總線在跨行現(xiàn)金管理系統(tǒng)中的應(yīng)用研究[J].電腦開發(fā)與應(yīng)用,2010(12):34.CHEN Kun,YANG She-tang.Research and application of enterprise service bus in the cross bank cash system[J].Computer Development&Applications,2010(12):34.
[2]孫垚,廉東本.一種基于ESB的高效可靠的動(dòng)態(tài)路由模型[J].計(jì)算機(jī)系統(tǒng)應(yīng)用, 2011(2):43.SUN Tu,LIAN Dong-ben.An efficient and reliable dynamic routing model based on ESB[J].Computer System Applications,2011(2):43.
[3]胡澤,廖聞劍,彭艷兵.WebService技術(shù)研究及應(yīng)用[J].硅谷, 2009(5):48.HU Ze,LIAO Wen-jian,PENG Yan-bing.Research and application of web service technology[J].Silicon Valley,2009(5):48.
[4]胡方霞,曾一,高旻.Web Services技術(shù)應(yīng)用與探討[J].計(jì)算機(jī)科學(xué),2007,43(3):75-77.HU Fang-xia,ZENG Yi,GAO Wen.Application and discussion of web service technology[J].Computer Science,2007,43(3):75-77.
[5]楊文志.云計(jì)算技術(shù)指導(dǎo)南[M].北京:北京工業(yè)出版社,2010.
[6]李銀勝,付勇.面向服務(wù)架構(gòu)與應(yīng)用[M].北京:清華大學(xué)出版社,2008.
[7]孟瓊.Spring框架事務(wù)處理技術(shù)研究[J].計(jì)算機(jī)與現(xiàn)代化,2012(12):25.MENG Qiong.Research of Spring framework transaction processing[J].Computer and Modernization,2012(12):25.
[8]潘雨相.基于PKI技術(shù)的電子商務(wù)安全支付系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014(12):93-95.PAN Yu-xiang.Design of E-commerce security payment system based on PKI technology[J].Modern Electronics Technique,2014(12):93-95.