田程元
摘要:該文是以我國物流路由為背景,通過基于web的開發(fā)程序,對我國物流路由進行實時數(shù)據(jù)的交互,并對數(shù)據(jù)進行分析,預警,處理,然后反饋給前端,讓前端對物流的流程進行操作。該文的研究重點是esper技術。在物流交通的背景下,對物流交通的系統(tǒng)進行技術優(yōu)化,通過運用esper技術,極大的提高物流訂單處理的效率,在極短的時間內(nèi)處理訂單,完成操作,反饋正確的信息給系統(tǒng)。
關鍵詞:物流;路由;esper;cep;esp
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)08-0274-05
1 背景與現(xiàn)狀
隨著電子商務的澎湃發(fā)展,網(wǎng)購已經(jīng)成為生活中必不可缺的一部分。尤其是節(jié)假日,如11月11日達到日均過億物流訂單的情況下,各類商家,各類每家在網(wǎng)絡營銷和網(wǎng)購中大大地滿足了各自的需求。
Esper通過對數(shù)據(jù)流接收后的實時處理等機制,在遇到大數(shù)據(jù)時,逐步替代了之前查詢較慢,需要不斷訪問數(shù)據(jù)庫的關系型數(shù)據(jù)庫。Esper技術在物流中的應用,對訂單的實時分析,車輛的實時分析,能夠在極短的事件內(nèi)處理大量的訂單,車輛數(shù)據(jù),從而能夠及時地對出錯的信息進行正確的反饋,以避免不必要的損失和采取及時的補救措施。
大數(shù)據(jù)是繼互聯(lián)網(wǎng),云計算,移動的迅猛發(fā)展后的又一個新鮮概念。CEP復雜事件處理引擎,和低延遲消息傳遞中間件是大數(shù)據(jù)處理中應用軟件設施的基礎。在物流行業(yè)中,SOA/CEP的提出與實施,有效地提高了物流產(chǎn)業(yè)對市場的及時響應變化,在看似無關的事件中,辨識及預測出機會與陷進?,F(xiàn)在的復雜事件處理越來越趨向于一個追求:更快,不貴,不復雜。如今,CEP已經(jīng)很好的融合了物流市場,行業(yè)中的需求很大。
1.2 本文所做的工作
本文的主要工作即:展示物流系統(tǒng)的Esper技術的應用。
2 Esper技術簡介
2.1 概述
Esper是一個Java開發(fā)的事件流處理(ESP:Event Stream Processing)和復雜事件處理(CEP:Complex Event Processing)引擎。CEP:是一種實時事件處理并從大量事件數(shù)據(jù)流中挖掘復雜模式的技術。ESP:是一種從大量事件數(shù)據(jù)流中過濾,分析有意義的事件,并能夠?qū)崟r取得這些有意義的信息的技術。當數(shù)百萬數(shù)量級的事件同時發(fā)生時,我們不可能用關系數(shù)據(jù)庫來存儲和查詢,esper正是轉(zhuǎn)為這樣的大批量關聯(lián)事件而設計的,它使應用程序的過程中收到的事件大量快速發(fā)張。Esper在雙2GHz CPU的Intel系統(tǒng)測試環(huán)境下,處理超過500 000個事件/秒;在VWAP基準測試中在有1000語句的情況下,引擎延時平均小于3微妙(在10us時超過99%的預測準確率)——最高時有70 Mbit/s流量并占用85%的CPU資源。該引擎可應用于網(wǎng)絡入侵探測,SLA監(jiān)測,RFID讀取,航空運輸調(diào)控,金融方面(風險管理,欺詐探測)等領域。
2.2 Esper中epl規(guī)則庫簡介
Esper提供一個定制的事件處理語言(epl),是esper應用中的核心,事件流根據(jù)epl規(guī)則庫進行分析,在大數(shù)據(jù)的傳輸中,這種分析是非常迅速而且有效的。該語言類似于SQL,條件表達更加豐富。其更為突出的是可以設置時間窗,從而減少開發(fā)工作,可以對復雜的事件進行反映,減少了對數(shù)據(jù)庫中的表的操作,從而大大地提高了效率。
2.3 Esper架構(gòu)
1)創(chuàng)建java object的事件
2)創(chuàng)建一個聲明(statement)
3 物流監(jiān)控預警系統(tǒng)中Esper應用具體實現(xiàn)
3.1 基本設計概念和流程
在基本設計概念和流程中最重要的邏輯處理是物流的監(jiān)控預警。在物流的監(jiān)控預警中,主要有以下幾種判定機制運用到了esper技術:
車輛錯誤:
1)車輛所在gps坐標是否在設定路線上,如果沒有,返回車輛物流運輸出錯;
2)車輛半小時是否有信息傳回,如果沒有,返回車輛信號丟失;
3)車輛的半小時內(nèi)所行距離(無中轉(zhuǎn)站的情況下),如果太快則返回車輛速度過快信息,太慢則返回車輛速度過慢信息。
在這幾種判定機制下,就需要在系統(tǒng)開始運行時,傳入數(shù)據(jù)庫中的路線流進入esper引擎中,然后隨著訂單流和車輛流的傳入,做出判定,然后將信息反饋給前端,顯示出詳細信息,并對錯誤信息進行預警,還有一步異步操作是把數(shù)據(jù)同時更新到數(shù)據(jù)庫中。
3.2 車輛管理模塊設計說明
1)程序描述:該模塊設計可以分為兩部分。第一部分:車輛信息從webservice傳入,然后直接放到esper監(jiān)聽引擎中,esper引擎通過epl規(guī)則庫做復雜事件流處理,然后如果有錯誤生成錯誤消息存入系統(tǒng),以便管理員查看。同時無論有無錯誤消息,esper引擎在新車輛進入后都會更新當前在引擎中的事件流信息存入到內(nèi)存中,以便頁面調(diào)用是調(diào)用或者在20秒一次的推送中用到,同時還會把車輛信息存入到數(shù)據(jù)庫中。第二部分:管理員通過該模塊對程序進行車輛相應的操作,管理員通過查看車輛管理頁面列表將當前esper引擎中正在處理的車輛信息顯示出來,而且頁面每過一分鐘都會刷新,或者手動刷新。管理員通過搜索或者查看車輛信息將數(shù)據(jù)庫中的車輛信息調(diào)用出來,顯示車輛詳情。
2)特點:此程序模塊有幾個難點,一個是epl規(guī)則庫的書寫,一個是對webservice接口的書寫。
3)功能:系統(tǒng)接收每隔幾分鐘或者十幾分鐘從車載終端傳輸一次的車輛信息,然后從esper引擎中做大部分能判斷處理,而要在數(shù)據(jù)庫中判定當前車輛位置是否在規(guī)定路線上的處理,然后將處理信息寫到內(nèi)存中,更新到數(shù)據(jù)庫中以供前端調(diào)用。
4)性能:能夠在最小反應時間盡量處理最多的數(shù)據(jù)
5)輸入項:查詢時需要輸入車輛號
6)輸出項:顯示當前車輛信息列表;顯示個別車輛信息列表
7)算法:無
8)限制條件:無
9)程序流程圖:
10)后端邏輯處理具體實現(xiàn):通過后端的doget方法的車輛的ID,然后調(diào)入esper引擎中處理信息,隨后調(diào)入storeitem存入數(shù)據(jù)庫的同時異步傳輸esper中處理車輛信息中的最新車輛信息給前端顯示。
1)當前所有車輛信息中長達10分鐘沒有信號傳輸?shù)能囕v
說明:和訂單消息類似,當10分鐘內(nèi)沒有傳輸信號時,說明車輛出現(xiàn)危險緊急狀況或者硬件出現(xiàn)問題的可能。在epl處理中,notime放的是每次車輛傳入的時間。首先,獲得車輛事件流中所有的唯一的id最近消息以及時間Select notime,id from com.project.controller.event.TruckEvent.std:unique(id).win:time然后在監(jiān)聽mylistener那里的繼承函數(shù)中,將notime與獲取當前時間相減然后將數(shù)值超過10分鐘的id信息傳遞給控制層。
2)當前ID車輛是否運送過快或者運送過慢
說明:當車輛信息的路線在10分鐘內(nèi)保持不變時,則默認車輛沒有到過中轉(zhuǎn)站,也沒有停下來則開始判定ID訂單,如果按notime時間排序車輛中每次傳入兩點的直線坐標的距離過大或者過小都不符合條件,會返回錯誤信息給系統(tǒng)。首先,得到10分鐘內(nèi)車輛車輛的路線保持不變的訂單id以及他們的坐標。Select TruckID,pr,pl,routine from com.project.controller.event.TruckEvent.win(time:10 min)group by TruckID.ext.sort(notime dsc);然后,在監(jiān)聽mylistener那里的繼承函數(shù)中,運用for循環(huán)將routine保持不變的找出來,然后將所有的兩點的距離按經(jīng)緯度坐標求直線,然后全部想加,得出的結(jié)果除以10min得出結(jié)果。將速度過快者,反饋給前端。當然,這么計算有些誤差,但是確實估算到了訂單的大致車輛行駛速度
3)當前車輛是否在預定路線中
說明:當車輛傳入時,關于路線的點集在路線流中,通過路線號能夠得出路線在路線流中的所有點的點集。然后找出最近點判斷即可,假定兩點之間的密集程度為5公里,則當前點與最近一點的距離不能大于2.5公里,如果所有點于當前點的距離大于2.5公里,則說明訂單不在預定路線中,需要返回錯誤信息。由于這個只需要判定當前剛進入的車輛,所以要過濾其他在event中的id。首先,找出select a.TruckID,a.npr,a.npl,b.apr,b.apl from com.project.controller.event.ItemEvent as a(TruckID=”A100001”), com.project.controller.event.GPSEvent as b(a.routine=b.routine);然后,在監(jiān)聽mylistener那里的繼承函數(shù)中,運用for循環(huán)將距離最近的點和期間的距離找出來,判斷如果其大于2.5公里,則返回錯誤信息給系統(tǒng)管理員。
4 結(jié)束語
本文首先對當前的信息化時代有了一個簡單的介紹和了解,分析了當前信息化大數(shù)據(jù)時代的到來,各種信息化產(chǎn)品更新的迫在眉睫。尤其是隨著硬件設施的飛速發(fā)展,軟件技術的進一步更新,物流系統(tǒng)存在了一部分的不足。由于這些不足之處,對本軟件的開發(fā)提供了一個明確的目標,之后的設計和開發(fā)都是圍繞著盡最大可能通過軟件的方式解決物流過程中的不足之處。接下來提出的研究目標與所做工作,都是為了說明這項研究的簡略研究內(nèi)容及其在社會中的價值所在。
在第二部分中,本文對在物流監(jiān)控預警系統(tǒng)中所運用到的技術進行了詳簡有序的介紹,著重介紹了esper技術,以及esper中的事件匹配處理機制epl。這是此物流監(jiān)控系統(tǒng)中的核心,也是物流監(jiān)控系統(tǒng)提高效率完成大數(shù)據(jù)處理的關鍵所在。然后介紹的技術,如基于rest的webservice,goolge api的調(diào)用,敏捷開發(fā)都是開發(fā)物流監(jiān)控系統(tǒng)中必不可少的一部分,證明了這些技術的可行性。
在第三部分鐘,詳細介紹了物流監(jiān)控系統(tǒng)的需求分析,概要設計和詳細設計以及具體實現(xiàn),也對實現(xiàn)部分給出了必要的講解和說明。
綜上所述,本文成功的構(gòu)建了一個物流實時監(jiān)控預警系統(tǒng)。
參考文獻:
[1] 溫德成. 制造業(yè)企業(yè)如何挖掘第三利潤源泉[J]. 物流技術, 2002(4).
[2] 孫穎, 陳通, 毛維. 物流信息服務企業(yè)服務創(chuàng)新過程的關鍵影響要素研究[J]. 科學學與科學技術管理, 2009(8).
[3] 劉萌, 藍必華, 高本河, 等. 第三方物流與制造業(yè)結(jié)合發(fā)展的途徑[J]. 中國物流與采購, 2006(9).
[4] 孫穎,陳通, 毛維,等. 物流信息服務概念的深入解析[J]. 現(xiàn)代管理科學, 2009(7).
[5] 徐凡, 李之棠, 任杰麟. 網(wǎng)絡安全事件的關聯(lián)分析方法的比較研究[J]. 信息安全與通信保密, 2006(2).
[6] 沈星星, 程學旗. 基于數(shù)據(jù)流管理平臺的網(wǎng)絡安全事件監(jiān)控系統(tǒng)[J]. 小型微型計算機系統(tǒng), 2006(2).
[7] 張佩云, 孫亞民. 動態(tài)web服務組合研究[J]. 計算機科學, 2007(5).
[8] 吳恒, 吳泉源, 劉家紅, 梅彪. 一種改進的動態(tài)路由服務模型[J]. 計算機工程, 2008, 34 (9).
[9] 于寶琴, 楊寶強. 企業(yè)物流信息系統(tǒng)整合與應用[M]. 北京: 中國物質(zhì)出版社, 2007.
[10] 何為超, 李宏, 張雯. 網(wǎng)絡安全管理系統(tǒng)的設計與實現(xiàn)[J]. 信息安全與通信保密, 2006(9).