李 翔
(桂林電子科技大學(xué),桂林 541004)
ERP是以支持企業(yè)內(nèi)部和企業(yè)之間的協(xié)同管理來優(yōu)化企業(yè)資源的新一代信息系統(tǒng),在制造業(yè)中廣泛應(yīng)用。ERP系統(tǒng)將人事管理、生產(chǎn)管理、供應(yīng)鏈管理和財(cái)務(wù)管理集為一體,具有管理架構(gòu)清晰、業(yè)務(wù)流程規(guī)范、部門協(xié)作緊密、信息傳遞通暢等特點(diǎn),達(dá)到了企業(yè)資源優(yōu)化配置的目的,轉(zhuǎn)變了企業(yè)原有的粗放型管理模式,提高了企業(yè)效益與競(jìng)爭(zhēng)力。
在ERP系統(tǒng)中,各個(gè)業(yè)務(wù)部門在工作交接和傳遞過程中,有許多表單需要不同人員進(jìn)行審核,這就要求系統(tǒng)及時(shí)提醒相關(guān)人員進(jìn)行審核操作。特別是行政管理部門,需要緊密聯(lián)系企業(yè)內(nèi)部人員,有各種各樣的通知、報(bào)告等信息隨時(shí)進(jìn)行收發(fā),所以系統(tǒng)必須使用高效的通訊方式讓信息接收者及時(shí)收到提示。
ERP系統(tǒng)在制造業(yè)中得到了廣泛的應(yīng)用,較完整的制造企業(yè)的ERP系統(tǒng)包含了行政管理、銷售、生產(chǎn)、采購(gòu)、庫(kù)存、財(cái)務(wù)等模塊。除了行政管理模塊,其余模塊都是主體業(yè)務(wù)部門,各個(gè)業(yè)務(wù)模塊都與其他部門產(chǎn)生有相應(yīng)的聯(lián)系,如采購(gòu)部門需要提醒財(cái)務(wù)部門付款給供應(yīng)商,還需要提醒庫(kù)存部門接收采購(gòu)物資,采購(gòu)訂單就需要財(cái)務(wù)部門和庫(kù)存部門進(jìn)行審核。
企業(yè)中的行政管理部門,是最需要實(shí)時(shí)通訊機(jī)制的一個(gè)部門。在日常事務(wù)管理中,為了防止信息延遲接收的問題,需要信息發(fā)送方提醒信息接收方刷新頁(yè)面來獲取實(shí)時(shí)信息,這就需要服務(wù)端能一直與客戶端保持通訊,只要客戶端發(fā)送信息,服務(wù)端應(yīng)該立即推送給對(duì)應(yīng)用戶并進(jìn)行提醒。行政人員與職員間的信息交互內(nèi)容如下圖如示。
圖1 行政部門人員與職員間的信息傳遞內(nèi)容
經(jīng)分析,系統(tǒng)對(duì)實(shí)時(shí)通訊的需求主要有:系統(tǒng)內(nèi)可實(shí)現(xiàn)實(shí)時(shí)、動(dòng)態(tài)地產(chǎn)生提示,不用不間斷地發(fā)送請(qǐng)求,節(jié)約帶寬。
隨著HTML5標(biāo)準(zhǔn)規(guī)范最終制定完成,WebSocket協(xié)議是基于HTML5提供的一種在單個(gè)TCP連接上進(jìn)行全雙工通訊的協(xié)議,該協(xié)議本質(zhì)上為通信雙方提供一個(gè)基于TCP連接的雙向通道,所以能夠高效的在雙向通道中實(shí)時(shí)互相發(fā)送信息。
WebSocket是一種協(xié)議,與HTTP協(xié)議一樣位于應(yīng)用層,都是TCP/IP協(xié)議的子集。HTTP協(xié)議是單向通信協(xié)議,只有客戶端發(fā)起HTTP請(qǐng)求,服務(wù)端才會(huì)返回?cái)?shù)據(jù)。而WebSocket協(xié)議是雙向通信協(xié)議,在建立連接之后,客戶端和服務(wù)器都可以主動(dòng)向?qū)Ψ桨l(fā)送或接受數(shù)據(jù)。WebSocket協(xié)議建立的前提需要借助HTTP協(xié)議,建立連接之后,持久連接的雙向通信就與HTTP協(xié)議無關(guān)了。WebSocket協(xié)議的目標(biāo)是在一個(gè)獨(dú)立的持久連接上提供全雙工雙向通信??蛻舳撕头?wù)器可以向?qū)Ψ街鲃?dòng)發(fā)送和接受數(shù)據(jù)。在JS中創(chuàng)建WebSocket后,會(huì)有一個(gè)HTTP請(qǐng)求發(fā)向?yàn)g覽器以發(fā)起請(qǐng)求。在取得服務(wù)器響應(yīng)后,建立的連接會(huì)使用HTTP升級(jí)將HTTP協(xié)議轉(zhuǎn)換為WebSocket協(xié)議。
傳統(tǒng)實(shí)現(xiàn)實(shí)時(shí)通訊的做法就是使用Ajax輪詢技術(shù),每隔一段時(shí)間就發(fā)送一次Ajax請(qǐng)求,查看服務(wù)器端是否有消息需要返回。這種傳統(tǒng)的輪詢技術(shù)其缺點(diǎn)顯而易見,即每次客戶端都要與服務(wù)器端建立連接,并且這個(gè)過程不是由服務(wù)器端主動(dòng)推送的,這就造成了帶寬資源的浪費(fèi)。針對(duì)這種問題,ERP系統(tǒng)采用了WebSocket協(xié)議來進(jìn)行實(shí)時(shí)通信。WebSocket協(xié)議允許服務(wù)器端主動(dòng)向客戶端發(fā)起請(qǐng)求,瀏覽器與服務(wù)器只需要完成一次握手,即可創(chuàng)建一條持久的快速通道,并支持雙向數(shù)據(jù)傳輸。
實(shí)現(xiàn)過程如下圖所示:
圖2 WebSocket客戶端與服務(wù)器的交互
當(dāng)信息成功發(fā)送給相應(yīng)的職員后,這位員工隨即會(huì)在系統(tǒng)界面的右上角看到閃爍的信息圖標(biāo),這時(shí)員工可以直接點(diǎn)擊提醒圖標(biāo)來閱讀通知。
WebSocket是HTML5下一種新的協(xié)議,主要分為兩部分,分別為連接許可驗(yàn)證和驗(yàn)證后的數(shù)據(jù)交互。它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工通信,能更好的節(jié)省服務(wù)器資源和帶寬并達(dá)到實(shí)時(shí)通訊的目的。ERP系統(tǒng)中為了使提示能夠?qū)崟r(shí)、動(dòng)態(tài)地顯示,使用基于WebSocket協(xié)議的實(shí)時(shí)通訊機(jī)制能夠滿足系統(tǒng)的需求。使用標(biāo)準(zhǔn)的HTTP協(xié)議無法實(shí)現(xiàn)WebSocket協(xié)議,只有支持該協(xié)議的專門瀏覽器才能正常工作。隨著WebSocket協(xié)議的不斷完善,基于WebSocket協(xié)議的實(shí)時(shí)通訊機(jī)制已更多地運(yùn)用到實(shí)際中。