周小娟
(西安外事學院 計算機中心,陜西 西安 710077)
在電子商務蓬勃發展的今天,越來越多的企業將產品的銷售重心定位在了電子商務銷售渠道,在淘寶,京東,亞馬遜等電子商務銷售平臺開設銷售旗艦店或者分銷店已經成為一種非常重要的銷售方式。為了能夠將前端銷售平臺產生的大量訂單及時的進行處理,然后快速安排倉儲出貨,物流配送,客服系統售后跟進,并進行企業財務系統賬務處理,就必須在企業網絡系統中存在一種能夠連接前端銷售平臺和企業各個業務子系統的中間件產品,該產品能夠及時準確的從銷售平臺獲取客戶訂單,并將銷售訂單在各個業務子系統之間進行傳輸,并觸發不同的子系統對訂單進行相應的業務處理,從而加快企業對客戶訂單的響應速度。這種中間件產品就是企業服務總線,英文簡稱ESB。
企業服務總線提供了企業網絡中最基本的連接中樞,是構筑企業網絡神經系統的必要元素,企業網絡中各個系統進出的數據和指令都要由企業服務總線進行分發、轉譯、記錄和控制。企業服務總線連接了各個不同的系統,消除了企業不同應用之間的技術差異,讓不同的應用服務器協調運作,實現了不同服務之間的通信與整合,從而加快了業務的處理速度。
在現有的企業服務總線產品中,有IBM的WebSphere ESB,Oracle的BEA Aqua Logic等高端企業服務總線產品;同時,也有類似ServiceMix等低端的開源架構。綜合來看,高端產品過于龐大昂貴,而低端產品又比較死板。本文根據一般中小企業業務靈活多變的特點,研究實現了一種輕量級可配置,并面向電子商務業務的架構,不僅能夠滿足中小企業在電子商務業務方面的需求,還具有高可擴展性,用戶能隨時對功能進行延伸,比如進行更強的日志監控,更多的數據轉換能力等。
企業服務總線在企業網絡中扮演了連接中樞的作用,不同業務類型的企業網絡中,企業服務總線的作用可能各有差別,但主要的功能應當是相同的。面向電子商務業務的企業服務總線在功能上需要實現兩大方面的主要功能:
1)數據交換
數據交換是企業服務總線最主要的功能。淘寶,京東等銷售平臺以及企業的各個業務子系統一般是由不同的軟件供應商提供,開發采用了不同的開發技術,為了將它們接入企業服務總線,企業服務總線必須對不同技術開發的不同子系統提供不同的接入方式。本系統實現了電子商務網絡系統中最常用的兩種接入方式:Http和web service。在各個業務子系統成功接入企業服務總線后,企業服務總線必須能夠對傳輸的業務數據進行解析和轉換,為數據流入下一個子系統進行準備。本系統實現了對xml和jason這兩種最常用的數據格式的解析和轉換。企業服務總線還必須具有路由分發的功能,將不同類型的業務數據分發到不同的業務子系統中去。
2)運營管理
運營管理負責企業服務總線的管理,配置和監控,具體包括企業服務總線的操作用戶管理,權限管理,業務子系統和銷售平臺的接入控制和配置,和各個子系統數據交互的監控,日志管理等等。

圖1 企業服務總線在企業網絡中的位置圖Fig.1 Position of enterprise service bus within the enterprise network
企業服務總線在設計中必須遵循以下兩個原則:
1)對各個接入系統透明
企業服務總線的主要作用是整合已有的子系統及其服務,而不是直接在企業服務總線上開發新的業務功能模塊。因此對于各個接入系統的體系架構,企業服務總線的引入所帶來的重構影響應當控制在最小。企業服務總線對于接入系統來說是應當是透明的,即接入子系統在使用Web服務的時候不用知道企業服務總線的存在,它向某個預先配置的地址發送Web服務請求,并期望得到預期的結果。接入子系統無需區分它訪問的服務是實際的Web服務還是企業服務總線。同樣,企業服務總線對于提供服務的子系統也是透明的。服務提供方只需在企業服務總線上注冊了一個服務,便能接受來自于企業服務總線的服務請求。服務提供方無需分辨服務調用者來自何處,而只需處理請求并返回相應的結果即可。
2)組件動態裝配
在企業服務總線的設計中,對于接入系統的接口都是以組件的形式存在的。另外,對于不同的接入系統的消息轉譯也是通過組件實現。消息在企業服務總線流轉時,可以給消息數據選擇合適的傳入/傳出轉譯器。對于服務的特殊要求,如日志管理,緩存管理,異常管理等,用戶都能通過擴展組件的方式,在需要的時候配置組裝上去。這些組件的組裝,不是在代碼中寫死,而是由企業服務總線系統提供配置文件供用戶來裝配。在裝配過程中,無需修改源代碼,且支持即插即用,而無需重啟企業服務總線的服務器。所有組件都可以隨時根據需求變換升級,這些變化對于其它組件是透明的。
基于上一節的設計原則,本文所實現的企業服務總線整個系統包括7大模塊:接入控制、消息分發、消息轉譯、服務端接口調用、配置管理、日志管理、接口適配器。

圖2 企業服務總線的設計框架圖Fig.2 Framework of Enterprise Service Bus
服務消費者一般指業務的發起者,在本系統中就是淘寶,京東等銷售平臺,當用戶在這些平臺購買產品產生訂單后,這些訂單會被定時同步到總線并會觸發后續的業務流程。服務生產者是指在業務流程運行的過程中需要訪問的各個業務子系統,包括企業財務系統,物流系統,倉儲系統,客服系統等等。
接入控制模塊負責和各個接入系統建立通信連接、解析控制信息、權限控制等功能。本企業服務總線系統提供http reset,web service接入方式建立企業服務總線和各個子系統的通訊連接。在連接建立后通過對子系統和銷售平臺的應用標識及認證key進行驗證,來校驗接入系統的合法性。接入校驗通過后,本企業服務總線平臺會進一步校驗應用系統對服務的訪問權限,如果應用系統沒有訪問該服務的權限,則直接拒絕。
消息分發模塊根據消息控制信息中的功能編碼將消息交由相應的功能組件進行處理,同時判斷組件的隊列情況對流量進行控制。
消息轉譯模塊用于翻譯消息的內容,使得不同平臺之間能夠相互理解。信息轉譯部分包括兩個子模塊,傳入信息轉譯和傳出信息轉譯。傳入信息轉譯指將前端客戶端發出的消息格式轉化為目標服務能理解的格式;而傳出信息轉譯是指將目標服務處理完成后的反饋信息轉化為前端客戶能理解的格式,將結果反饋給前端。消息轉譯在客戶端和后端服務之間架設了一座橋梁,使得兩者能夠無障礙通訊。
服務端接口調用模塊根據服務注冊信息調用服務生成者提供的服務,并將處理結果傳送給消息轉譯組件進行處理,最終將服務生產者處理的結果返回給服務消費者。
配置管理模塊用于管理所有的這些組件的配置管理工作,使得系統能夠動態的加載或更新這些信息。配置管理包括:服務注冊、權限配置等。
日志管理模塊負責運行日志管理、消息監控。通過運行日志,可以查看企業服務總線平臺的運行情況及在異常時分析問題發生的原因。根據消息流水號可以查詢到消息的執行情況,如:接收數據包、發送數據包、執行時間等,同時也可以方便的統計出各個應用及服務的訪問情況,如:應用訪問總數、服務訪問總數、執行時間、成功率等。
接口適配器模塊的主要功能就是在客戶端不作任何改動的前提下,使得其能將信息發送給企業服務總線,并能幫助客戶端理解企業服務總線傳回來的反饋信息。在實際工作時,接口適配器接收企業服務總線發來的信息,并將之轉化為服務生產者所能理解的格式。另一方面,當服務生產者發回反饋信息后,將其包裝成企業服務總線能理解的標準格式反饋回去。
本文實現的企業服務總線主要提供如下三類功能的接口:
1)獲取訂單數據接口
訂單數據接口通過獨立的定時任務從外網銷售平臺定時獲取一定時間段的訂單,并將獲
取的訂單同步給訂單處理業務子系統。
通過消息訂閱或輪詢的方式從淘寶、拍拍、碰碰、官網商城等渠道獲取訂單列表信息,訂單列表只包含訂單號、訂單生成時間等基本信息,為了保障訂閱消息接收或輪詢的速度,在獲取訂單列表信息后對消息不作處理,而將原始訂單信息記錄同步給訂單處理業務子系統。不同的渠道處理方式不一樣,對于提供了消息訂閱的渠道(如:淘寶),采用訂閱消息接收+輪詢的方式從獲取訂單列表信息,對于未提供消息訂閱的渠道,采用輪詢的方式獲取訂單列表。
企業服務總線平臺需要能夠手工添加訂單,或者對于沒有提供自動接口的銷售渠道平臺能夠通過excel的方式將訂單導入到接口隊列。
2)訂單流轉接口
訂單處理子系統在處理訂單的流程中需要與外圍其它業務子系統進行數據交換,這類接口大部分都是雙向的,既有企業服務總線對外發送請求,也有外圍系統返回信息給企業服務總線。
訂單處理子系統在任務單調度時,在某些環節需要將指令發送給外圍系統,如:在安排倉庫時需要將指令發送給物流寶、SPD等物流系統,在安排貨運時需要將指令發送給物流寶、SPD、宅急送等運輸系統。此時訂單處理子系統將指令發送給調度任務接口適配器,由調度任務接口適配器將訂單處理子系統的指令轉換為企業服務總線能夠識別的指令與外圍系統交互。這里也需要對指令執行過程進行監控,能夠查詢指令的執行情況,如:執行結果、執行時間、接口數據等。
3)對外服務接口
提供服務給外圍接入系統調用,如:查詢庫存信息、查詢訂單信息、查詢產品信息等,提供http rest及web service兩種方式接入。
企業服務總線的部署需要部署在一臺獨立的應用服務器上,為了最大化的發揮企業服務總線的性能,其數據庫也要求部署在獨立的服務器上。

圖3 企業服務總線的接口分布Fig.3 Interface of enterprise service Bus
軟件方面,企業服務總線應用服務器需要安裝JDK1.6版本,以及Tomcat應用容器進行服務的發布,數據庫軟件可以使用Oracle或者MySQL。

圖4 企業服務總線的部署圖Fig.4 Deployment diagram of Enterprise Service Bus
本文通過對電子商務[8]環境下企業運營現狀的研究,提出并實現了一種適合中小企業電子商務業務的企業服務總線。該總線具有輕量級,可配置,高擴展性等特點,能夠很好的接入各類企業電子商務銷售渠道平臺,以及企業各個業務子系統。該企業服務總線的實現可以極大的加快中小企業訂單的響應速度,使得從客戶在網站下單到物流配送,倉儲管理業務一體化連續化,從而加快訂單的處理速度,減少人力成本,提高客戶的滿意度,為企業創造更大的效益。
[1]陳坤,楊社堂.企業服務總線在跨行現金管理系統中的應用研究[J].電腦開發與應用,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的高效可靠的動態路由模型[J].計算機系統應用, 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技術研究及應用[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技術應用與探討[J].計算機科學,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]楊文志.云計算技術指導南[M].北京:北京工業出版社,2010.
[6]李銀勝,付勇.面向服務架構與應用[M].北京:清華大學出版社,2008.
[7]孟瓊.Spring框架事務處理技術研究[J].計算機與現代化,2012(12):25.MENG Qiong.Research of Spring framework transaction processing[J].Computer and Modernization,2012(12):25.
[8]潘雨相.基于PKI技術的電子商務安全支付系統設計[J].現代電子技術,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.