吳 瑩,林 聰
(柳州職業(yè)技術(shù)學(xué)院,廣西壯族自治區(qū) 柳州 545000)
在物聯(lián)網(wǎng)快速發(fā)展的背景下,車聯(lián)網(wǎng)綜合信息平臺在基于不同功能需求的基礎(chǔ)上對車輛運(yùn)行狀況進(jìn)行有效監(jiān)管,并且提供綜合性服務(wù)。車聯(lián)網(wǎng)綜合信息平臺包含多種應(yīng)用系統(tǒng),具備較大的數(shù)據(jù)信息。消息隊(duì)列技術(shù)在車聯(lián)網(wǎng)平臺當(dāng)中的運(yùn)用,可以提升數(shù)據(jù)處理速度,保障系統(tǒng)運(yùn)行性能的穩(wěn)定。
消息隊(duì)列技術(shù)作為現(xiàn)代化技術(shù),應(yīng)用范圍逐漸擴(kuò)展。這項(xiàng)技術(shù)是通過消息傳送機(jī)制或消息隊(duì)列模型而產(chǎn)生的中間件技術(shù)。消息隊(duì)列技術(shù)能夠有效提升系統(tǒng)的響應(yīng)速度,保障系統(tǒng)的穩(wěn)定性。在車聯(lián)網(wǎng)綜合信息平臺系統(tǒng)當(dāng)中,數(shù)據(jù)的傳輸與日志的處理會應(yīng)用消息隊(duì)列中間件相關(guān)技術(shù),以此來促進(jìn)車聯(lián)網(wǎng)綜合信息平臺系統(tǒng)的良好運(yùn)行。在當(dāng)前時(shí)代背景下,信息化程度不斷加深,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的覆蓋范圍逐步擴(kuò)展。消息隊(duì)列技術(shù)可以劃分為 KafKA、ActiveMQ、ZeroMQ 等多種形式。不同形式的消息隊(duì)列使用的場景存在區(qū)別,通過選擇消息隊(duì)列的形式,能夠?qū)⒓夹g(shù)優(yōu)勢得以充分展現(xiàn)。
中間件作為通用服務(wù),主要用于應(yīng)用程序與平臺系統(tǒng)之間的中間服務(wù)。在技術(shù)運(yùn)用過程中,邏輯層是主要的技術(shù)支撐,向上會運(yùn)用邏輯索引的方式獲取客戶端需求,向下整合分析各項(xiàng)應(yīng)用信息,及時(shí)處理應(yīng)用程序的請求。依據(jù)程序運(yùn)行需求將處理后的請求輸送至后端服務(wù)器。另外,中間件能夠與應(yīng)用端進(jìn)行管理,將系統(tǒng)平臺的數(shù)據(jù)歸納結(jié)果進(jìn)行傳輸。通過運(yùn)用中間件可以令各個部分的網(wǎng)絡(luò)實(shí)現(xiàn)良好的互通互信,此階段需要各部分網(wǎng)絡(luò)根據(jù)自身程序接口情況和協(xié)調(diào)條件進(jìn)行調(diào)整。通過相應(yīng)的調(diào)整,能夠在更換平臺和操作系統(tǒng)的情況下繼續(xù)實(shí)現(xiàn)協(xié)議條件下的接口對接,促進(jìn)不同平臺下信息訪問交換的便捷性。中間件技術(shù)在互聯(lián)網(wǎng)領(lǐng)域當(dāng)中屬于快速發(fā)展的技術(shù),具備了易于集成、易于升級以及可靠性的技術(shù)優(yōu)點(diǎn)。在易于集成方面,中間件能夠有效深入到開發(fā)應(yīng)用當(dāng)中,適應(yīng)所需的環(huán)境,便于應(yīng)用終端進(jìn)行定位。同時(shí)也可以將中間件當(dāng)中包含的數(shù)據(jù)信息進(jìn)行分享,實(shí)現(xiàn)易于集成的效果。在易于升級方面,為了滿足更高的技術(shù)需求情況下需要升級中間件某個部分時(shí),升級操作不會對系統(tǒng)其他部分造成影響,能夠維護(hù)系統(tǒng)其他部分的正常運(yùn)作,確保中間件性能與其他應(yīng)用程序終端不會產(chǎn)生互相干擾。另外,中間件技術(shù)的運(yùn)用具有較高的可靠性,由于中間件自身功能與接收的數(shù)據(jù)可以實(shí)現(xiàn)管理處理與恢復(fù)。使項(xiàng)目業(yè)務(wù)中關(guān)鍵數(shù)據(jù)信息能夠得到記憶儲存保障,避免重要數(shù)據(jù)信息就是對業(yè)務(wù)項(xiàng)目開展造成阻礙。
Oracle 數(shù)據(jù)庫的應(yīng)用主要是為了保證使用效率和使用性能。因?yàn)殡S著數(shù)據(jù)信息的逐漸增多,存儲數(shù)據(jù)信息的特定區(qū)域剩余容量逐漸減少。如果數(shù)據(jù)信息在文件集合的情況下繼續(xù)增多,區(qū)域的各項(xiàng)性能會受到影響。不僅會影響到信息查詢速度,也會降低應(yīng)用系統(tǒng)的綜合性能。所以在設(shè)計(jì)數(shù)據(jù)庫的時(shí)候,需要在車聯(lián)網(wǎng)信息平臺系統(tǒng)中的框架,預(yù)測分析公司將來的業(yè)務(wù)需求變化情況。為了解決這種情況,需要對這個特定區(qū)域進(jìn)行分區(qū)。根據(jù)技術(shù)要求,將大數(shù)據(jù)對象劃分為相對獨(dú)立的小物理段,由這些小物理段代表大數(shù)據(jù)的分區(qū)。分區(qū)表中每個分區(qū)的列名數(shù)據(jù)類型都需要相同的邏輯結(jié)構(gòu),而各個分區(qū)所在的表空間的物理存儲路徑會存在一定差別。但是從邏輯上來講,仍然是一張完整的表。從計(jì)算機(jī)應(yīng)用程序角度來看,采取分區(qū)之后的表和索引與之前的表索引以及SQL 相比不會存在較大的區(qū)別。分區(qū)字段屬性查詢時(shí)需要在相應(yīng)的分區(qū)對應(yīng)段空間來查找數(shù)據(jù),這樣可以有效提升數(shù)據(jù)信息的查詢效率,縮短查詢時(shí)間。除此之外,分區(qū)后對某個特定區(qū)域的數(shù)據(jù)進(jìn)行處理,相關(guān)操作只會針對特定分區(qū)不會影響到其他分區(qū)狀態(tài)。
消息隊(duì)列中間件是本地或異地負(fù)責(zé)接收消息的程序,會將之前程序應(yīng)用者保存在消息隊(duì)列中的數(shù)據(jù)信息進(jìn)行相應(yīng)的處理操作。如圖1 所示。
圖1 消息隊(duì)列原理圖
消息隊(duì)列性能與排隊(duì)機(jī)制具有緊密關(guān)系。主要排隊(duì)機(jī)制可以劃分為先進(jìn)先出、優(yōu)先排隊(duì)、公平排隊(duì)、加權(quán)公平排隊(duì)幾種形式。先進(jìn)先出的排隊(duì)機(jī)制是較為常見,也較為簡單的排隊(duì)機(jī)制。這種排隊(duì)機(jī)制是通過系統(tǒng)算法執(zhí)行先到先處理的原則。優(yōu)先排隊(duì)則是在多個隊(duì)列的基礎(chǔ)上,根據(jù)各個隊(duì)列的特點(diǎn)和使用需求制定級別。通過劃分級別使隊(duì)列由高到低的進(jìn)行排序。如果在系統(tǒng)運(yùn)行過程中出現(xiàn)數(shù)據(jù)擁堵的情況,會優(yōu)先處理級別較高的隊(duì)列信息。公平排隊(duì)則是依據(jù)分配比例對應(yīng)的接口寬帶進(jìn)行數(shù)據(jù)信息的處理,不會因數(shù)據(jù)級別的高低而產(chǎn)生差異。公平排隊(duì)會依照高低順序輪流的方式執(zhí)行循環(huán)處理,能夠令優(yōu)先排隊(duì)的信息數(shù)據(jù)盡快得到處理服務(wù)。加權(quán)公平排隊(duì),這種排隊(duì)機(jī)制是優(yōu)先排隊(duì)和公平排隊(duì)機(jī)制的整合。依據(jù)權(quán)重來進(jìn)行通訊隊(duì)列寬帶的劃分,依據(jù)特殊處理方式達(dá)到減緩延遲的目的。
通過分析車聯(lián)網(wǎng)系統(tǒng)的總體框架展開對應(yīng)用軟件開源項(xiàng)目的技術(shù)選型。在新版車聯(lián)網(wǎng)綜合信息平臺當(dāng)中增加了許多新的功能與服務(wù)項(xiàng)目,并且系統(tǒng)數(shù)據(jù)庫方面進(jìn)行了優(yōu)化設(shè)計(jì),以此來保證數(shù)據(jù)庫的相關(guān)功能可以滿足實(shí)際需求。通過對車聯(lián)網(wǎng)綜合信息平臺系統(tǒng)架構(gòu)進(jìn)行分析研究可以得知數(shù)據(jù)傳輸?shù)膸讉€特點(diǎn)。首先,數(shù)據(jù)來源呈現(xiàn)多樣性。數(shù)據(jù)來源會通過多種渠道來獲得,這是因?yàn)橄到y(tǒng)終端設(shè)備比較多,能夠?yàn)橄到y(tǒng)提供GPS 終端數(shù)據(jù),同時(shí)會運(yùn)用傳感器OBD 來獲取其他的相關(guān)數(shù)據(jù)。其次,數(shù)據(jù)類型的復(fù)雜性。在車聯(lián)網(wǎng)綜合信息平臺系統(tǒng)當(dāng)中傳輸?shù)臄?shù)據(jù)類型結(jié)構(gòu)復(fù)雜,類型也比較多,版本升級更新的過程中,為了滿足功能需求會出現(xiàn)多種數(shù)據(jù)類型。最后,數(shù)據(jù)傳輸量大。當(dāng)車聯(lián)網(wǎng)綜合信息平臺系統(tǒng)與車輛保持交互之后,雙方之間會建立信息傳輸關(guān)系,終端的使用會對車輛信息展開詳細(xì)記錄,并且通過終端設(shè)備上傳至數(shù)據(jù)庫當(dāng)中,因此會有較大規(guī)模的數(shù)據(jù)需要進(jìn)行傳輸。
當(dāng)前,隨著車聯(lián)網(wǎng)系統(tǒng)的升級優(yōu)化,老版本當(dāng)中的歷史數(shù)據(jù)與數(shù)據(jù)信息需要進(jìn)行處理,因此需要認(rèn)真思考如何來促進(jìn)系統(tǒng)讀寫,審查速度與性能的提升,以便于數(shù)據(jù)信息的有效管理。由于車聯(lián)網(wǎng)系統(tǒng)存在數(shù)據(jù)量較大,管理難度比較大。同時(shí)還存在數(shù)據(jù)庫性能不佳等問題,面對這樣的情況,可以采取以下應(yīng)對方案:
方案一:對代碼進(jìn)行改寫。將車聯(lián)網(wǎng)系統(tǒng)中的判定條件添加至全部DML 語句當(dāng)中。但是這個方案存在嚴(yán)重的曲線,因?yàn)橄到y(tǒng)架構(gòu)的功能模塊比較多,在業(yè)務(wù)邏輯方面也會呈現(xiàn)出復(fù)雜性,各項(xiàng)應(yīng)用程序會涉及到龐大的代碼量。如果運(yùn)用這個方案對系統(tǒng)代碼進(jìn)行整體修改,不僅工作難度大,工作量會比較多,所消耗的時(shí)間與精力可以重新開發(fā)一套新的車聯(lián)網(wǎng)數(shù)據(jù)庫系統(tǒng)。因此這個方案綜合來講不可取。
方案二:在原有系統(tǒng)應(yīng)用程序不受到改動的情況下,對系統(tǒng)進(jìn)行優(yōu)化,為數(shù)據(jù)庫中的各個模塊搭建相應(yīng)的建物化視圖。在此過程中,如果在沒有考慮數(shù)據(jù)庫性能的情況下,這樣的方法具有一定的可行性。但是由于數(shù)據(jù)庫中模塊包含的表量以及數(shù)據(jù)量較為龐大,想要構(gòu)建相應(yīng)的物化圖會帶來較大的工作量。因此這樣的改進(jìn)方式會對數(shù)據(jù)庫的運(yùn)行速度以及數(shù)據(jù)的管理效率都造成一定影響,因此這種方法也是不可取的。
方案三:在數(shù)據(jù)庫當(dāng)中使用Oracle 分區(qū)技術(shù)。通過運(yùn)用這個技術(shù),可以對大數(shù)據(jù)量的表實(shí)現(xiàn)分表處理,提升工作效率與質(zhì)量。例如在日志表方面,依據(jù)日期來存儲數(shù)據(jù)。在I/O 平衡方面,Oracle 能夠?qū)⒉煌謪^(qū)進(jìn)行映射,使其可以存儲于不同磁盤當(dāng)中,有效提升了系統(tǒng)操作速度,使用性能得到了加強(qiáng)。因此這個方案具有較高的可行性。
在運(yùn)用高級隊(duì)列進(jìn)行車聯(lián)網(wǎng)數(shù)據(jù)傳輸?shù)倪^程中,可能會出現(xiàn)以下幾種情況。首先,高級隊(duì)列作為一類消息中間件,由于車聯(lián)網(wǎng)系統(tǒng)數(shù)據(jù)呈現(xiàn)出一定的復(fù)雜性。因此,數(shù)據(jù)的梳理分析和處理是非常重要的任務(wù)。通過規(guī)范數(shù)據(jù)結(jié)構(gòu),保證數(shù)據(jù)的輸出和傳遞效果。
2.3.1 車聯(lián)網(wǎng)系統(tǒng)數(shù)據(jù)在高級隊(duì)列的組織
車聯(lián)網(wǎng)內(nèi)部數(shù)據(jù)的存儲操作非常重要,需要認(rèn)真思考如何將其存儲于高級隊(duì)列中。在Orcale 數(shù)據(jù)庫當(dāng)中包含多項(xiàng)功能,在這些功能當(dāng)中高級隊(duì)列的功能是最重要的功能。存儲數(shù)據(jù)的時(shí)候把數(shù)據(jù)信息看作一個基本單元。相關(guān)數(shù)據(jù)會在系統(tǒng)中數(shù)據(jù)運(yùn)輸過程中得到運(yùn)用。分析數(shù)據(jù)庫中的定義對象類型來選擇數(shù)據(jù)信息的結(jié)構(gòu)類型。另外,控制信息作為隊(duì)列中的一類,也能轉(zhuǎn)變?yōu)閭鬏旊A段的基本單位。根據(jù)對原隊(duì)列定義的條件進(jìn)行消息的傳遞,隨后將隊(duì)列存放到列表當(dāng)中并將列表存儲于數(shù)據(jù)庫內(nèi)。
2.3.2 車聯(lián)網(wǎng)系統(tǒng)中數(shù)據(jù)在高級隊(duì)列中的傳輸途徑
在Orcale 當(dāng)中會包含命名為DBM AQ 的包,里面包括Enqueue 子程序,它在系統(tǒng)當(dāng)中起到了車聯(lián)網(wǎng)數(shù)據(jù)封裝的作用。通過將數(shù)據(jù)進(jìn)行封裝并且將封裝的數(shù)據(jù)轉(zhuǎn)換成隊(duì)列消息,使這些消息能夠順利輸送至目標(biāo)隊(duì)列中。在這種數(shù)據(jù)傳輸方式當(dāng)中,需要對傳輸途徑與條件進(jìn)行提前設(shè)定,保證數(shù)據(jù)傳輸?shù)捻槙?。在信息輸送到目?biāo)隊(duì)列后,運(yùn)用Oracle 數(shù)據(jù)庫DBM AQ 包Dnqueue 子程序提取數(shù)據(jù)信息,并對這些數(shù)據(jù)信息進(jìn)行還原操作。
隨著物聯(lián)網(wǎng)的發(fā)展,為了有效監(jiān)控行車狀態(tài),提供不同功能需求的綜合服務(wù),車聯(lián)網(wǎng)綜合信息平臺應(yīng)運(yùn)而生。由于車聯(lián)網(wǎng)綜合信息平臺具有一定復(fù)雜性,包含各種不同的應(yīng)用系統(tǒng),同時(shí)擁有海量實(shí)時(shí)數(shù)據(jù)。如今,各個系統(tǒng)平臺間的數(shù)據(jù)傳輸和管理系統(tǒng)海量數(shù)據(jù)存儲已成為車聯(lián)網(wǎng)綜合信息平臺的核心內(nèi)容。深入思考管理海量數(shù)據(jù)存在的難題,運(yùn)用合理的技術(shù)手段提升數(shù)據(jù)庫性能,運(yùn)用相應(yīng)的網(wǎng)絡(luò)協(xié)議和結(jié)構(gòu)提升系統(tǒng)運(yùn)行效果。為此,相關(guān)人員應(yīng)當(dāng)深入思考應(yīng)用怎樣的技術(shù)手段來實(shí)現(xiàn)不同應(yīng)用系統(tǒng)之間的數(shù)據(jù)通信和傳輸。將消息隊(duì)列技術(shù)應(yīng)用于車聯(lián)網(wǎng)數(shù)據(jù)信息平臺系統(tǒng)當(dāng)中,能夠保證系統(tǒng)的穩(wěn)定運(yùn)行。在具體應(yīng)用過程中,需要正確了解消息隊(duì)列技術(shù)的特點(diǎn)與類型,分析高級隊(duì)列技術(shù)的車聯(lián)網(wǎng)系統(tǒng)應(yīng)用的可行性方案,保證消息隊(duì)列技術(shù)的運(yùn)用能夠?yàn)檐嚶?lián)網(wǎng)數(shù)據(jù)信息平臺性能的提升帶來有利條件。