程 健 許宜春 桑 成
(中國(guó)科學(xué)技術(shù)大學(xué)信息科學(xué)技術(shù)學(xué)院 安徽 合肥 230027)
面向物聯(lián)網(wǎng)的閉環(huán)全生命周期管理系統(tǒng)中間件設(shè)計(jì)
程 健 許宜春 桑 成
(中國(guó)科學(xué)技術(shù)大學(xué)信息科學(xué)技術(shù)學(xué)院 安徽 合肥 230027)
為了在閉環(huán)全生命周期管理系統(tǒng)中提供高效的數(shù)據(jù)服務(wù),解決眾多異構(gòu)系統(tǒng)信息交互和全生命周期內(nèi)信息分享等方面的問題,建立了一種基于物聯(lián)網(wǎng)協(xié)議MQTT和NIO框架Netty的中間件。首先,簡(jiǎn)要概述了閉環(huán)生命周期管理的內(nèi)涵和系統(tǒng)架構(gòu);其次,在分析閉環(huán)生命周期管理系統(tǒng)中間件特點(diǎn)的基礎(chǔ)上,設(shè)計(jì)了中間件的軟件架構(gòu)和處理過程;最后,設(shè)計(jì)了測(cè)試實(shí)驗(yàn)并進(jìn)行了測(cè)試。測(cè)試結(jié)果表明,閉環(huán)全生命周期管理系統(tǒng)中間件能夠快速有效地實(shí)現(xiàn)無效產(chǎn)品數(shù)據(jù)過濾,在大數(shù)據(jù)量和數(shù)據(jù)服務(wù)訂閱者模式下,中間件的普通消息處理平均時(shí)間維持在8.56 s以內(nèi),系統(tǒng)平均吞吐率為2 162 packets/s,可以滿足閉環(huán)全生命周期管理數(shù)據(jù)服務(wù)的應(yīng)用需求。同時(shí),該中間件也非常適合于擁有大量傳感器節(jié)點(diǎn)的物聯(lián)網(wǎng)環(huán)境,實(shí)現(xiàn)大數(shù)據(jù)量系統(tǒng)的數(shù)據(jù)采集和分發(fā)基礎(chǔ)服務(wù)。
閉環(huán)全生命周期管理 Message Queue Telemetry Transport(MQTT) Netty 中間件 物聯(lián)網(wǎng)
目前,企業(yè)產(chǎn)品數(shù)據(jù)管理工具主要有:計(jì)算機(jī)輔助設(shè)計(jì)/制造(CAD/CAM)、產(chǎn)品數(shù)據(jù)管理(PDM)、產(chǎn)品生命周期管理(PLM)等。這些工具主要實(shí)現(xiàn)產(chǎn)品設(shè)計(jì)生產(chǎn)階段數(shù)據(jù)的管理,無法形成產(chǎn)品全生命周期信息流閉環(huán)管理。閉環(huán)全生命周期管理CL2M(Closed-Loop Lifecycle Management)[1]為解決上述問題提供了新思路,它主張?jiān)诋a(chǎn)品中嵌入信息裝置PEID(Product Embedded Information Device),跟蹤和收集產(chǎn)品數(shù)據(jù),建立產(chǎn)品數(shù)據(jù)&知識(shí)管理PDKM(Product Data & Knowledge Management)系統(tǒng),存儲(chǔ)、分享產(chǎn)品數(shù)據(jù)、信息和知識(shí),從而達(dá)到高效管理產(chǎn)品全生命周期活動(dòng)的目的[2]。
CL2M系統(tǒng)的體系結(jié)構(gòu)如圖1[3]所示。數(shù)據(jù)獲取層實(shí)現(xiàn)產(chǎn)品全生命周期數(shù)據(jù)獲取,數(shù)據(jù)管理層提供基礎(chǔ)中間件、數(shù)據(jù)存儲(chǔ)、決策DSS(Decision Support System)與數(shù)據(jù)挖掘等核心功能。PLM商業(yè)應(yīng)用層依托數(shù)據(jù)管理層提供個(gè)性化產(chǎn)品服務(wù)與物聯(lián)網(wǎng)服務(wù),如租賃型產(chǎn)品服務(wù)、產(chǎn)品故障診斷與預(yù)測(cè)維護(hù)服務(wù)等。
圖1 CL2M系統(tǒng)體系結(jié)構(gòu)[3]
CL2M系統(tǒng)中間件又稱CL2M數(shù)據(jù)服務(wù),旨在為CL2M系統(tǒng)構(gòu)建基礎(chǔ)產(chǎn)品數(shù)據(jù)服務(wù)網(wǎng)絡(luò),并通過通用信息交換標(biāo)準(zhǔn)接口為系統(tǒng)其他組件(如PEIDs、PDKM、DSS)和第三方組織等異構(gòu)系統(tǒng)(如倉(cāng)儲(chǔ)管理系統(tǒng)、移動(dòng)應(yīng)用等)提供產(chǎn)品全生命周期數(shù)據(jù)獲取、持久化與分享等服務(wù)。CL2M系統(tǒng)中間件具有以下特點(diǎn):
1) 提供通用信息交換標(biāo)準(zhǔn)接口,實(shí)現(xiàn)CL2M系統(tǒng)不同組件和后端系統(tǒng)集成,并與其他異構(gòu)系統(tǒng)信息交互。
2) 安全和隱私。不同用戶對(duì)產(chǎn)品數(shù)據(jù)擁有不同權(quán)限,必須保證用戶在權(quán)限允許范圍內(nèi)獲取正確的產(chǎn)品數(shù)據(jù)。
3) 持久化服務(wù)[4]。請(qǐng)求數(shù)據(jù)不可達(dá)或用戶不可達(dá)時(shí)持久化請(qǐng)求或響應(yīng)數(shù)據(jù)。
4) 支持訂閱服務(wù)[4]。通過訂閱關(guān)注產(chǎn)品,用戶便能獲得不斷更新的產(chǎn)品全生命周期數(shù)據(jù)。
5) 支持無效數(shù)據(jù)過濾。中間件涉及不同產(chǎn)品數(shù)據(jù)源交互,數(shù)據(jù)繁多,為提高處理效率,須對(duì)無效數(shù)據(jù)過濾,防止無效數(shù)據(jù)充斥數(shù)據(jù)服務(wù)網(wǎng)絡(luò)。
6) 并發(fā)性、實(shí)時(shí)性。傳統(tǒng)企業(yè)應(yīng)用環(huán)境下,與中間件交互的節(jié)點(diǎn)有限,并發(fā)性要求不高。但CL2M系統(tǒng)擴(kuò)展至物聯(lián)網(wǎng)中所有節(jié)點(diǎn)生命周期管理時(shí),并發(fā)性則是一項(xiàng)重要性能指標(biāo)。中間件沒有強(qiáng)實(shí)時(shí)要求,但必須保證一定的消息處理實(shí)時(shí)性。
目前,針對(duì)CL2M系統(tǒng)及其中間件已有一定研究成果。J.Cassina、D.Kiritsis等研究了物聯(lián)網(wǎng)環(huán)境下CL2M系統(tǒng)架構(gòu),提出PMI(PROMISE Message Interface)作為系統(tǒng)中間件通用信息交換接口[5-6]。Kary Framling等基于Dialog架構(gòu)與CL2M系統(tǒng)架構(gòu)的相似性,研究了在Dialog代理中構(gòu)建CL2M中間件問題[7-8]。Sylvain Kubler等從產(chǎn)品生命周期管理角度出發(fā),研究并提出了將產(chǎn)品管理擴(kuò)展至物聯(lián)網(wǎng)“萬物”管理的中間件信息交換標(biāo)準(zhǔn)QLM(Quantum Lifecycle Management)[4,9]。國(guó)內(nèi),王旭等對(duì)CL2M理念進(jìn)行了綜述研究[10],劉剛研究了產(chǎn)品全生命周期數(shù)據(jù)的統(tǒng)一建模與各個(gè)階段數(shù)據(jù)映射理論[11],對(duì)于CL2M系統(tǒng)中間件及其信息交換標(biāo)準(zhǔn)的研究尚屬空白。
但,文獻(xiàn)[7-8]基于Dialog設(shè)計(jì)的系統(tǒng)中間件更適合產(chǎn)品物流管理,文獻(xiàn)[4-6,9]提出的中間件信息交換標(biāo)準(zhǔn)依賴HTTP等協(xié)議,并不適合于物聯(lián)網(wǎng)環(huán)境中資源受限的設(shè)備。本文在輕量級(jí)物聯(lián)網(wǎng)協(xié)議MQTT(Message Queue Telemetry Transport,消息隊(duì)列遙測(cè)傳輸)基礎(chǔ)上,提出滿足CL2M系統(tǒng)信息交互環(huán)境的CL2M系統(tǒng)中間件設(shè)計(jì),并擴(kuò)展至物聯(lián)網(wǎng)環(huán)境下大量傳感器節(jié)點(diǎn)管理的基礎(chǔ)數(shù)據(jù)中間件服務(wù)應(yīng)用。
CL2M系統(tǒng)中間件典型實(shí)現(xiàn)模式為點(diǎn)對(duì)點(diǎn)P2P,而發(fā)布/訂閱(Publication/Subscribe,Pub/Sub)作為一種新的消息中間件實(shí)現(xiàn)模式,具有異步、松耦合互聯(lián)、多對(duì)多通信、體系結(jié)構(gòu)開放和資源重組靈活等特點(diǎn)[12]。MQTT是一種基于發(fā)布/訂閱模式設(shè)計(jì)的物聯(lián)網(wǎng)消息傳輸協(xié)議,協(xié)議開放、簡(jiǎn)單、易用,非常適合網(wǎng)絡(luò)、處理器、存儲(chǔ)等資源受限的環(huán)境[13],因而適合作為CL2M系統(tǒng)中間件通用信息交換接口。而非阻塞異步框架Netty則是一種優(yōu)秀的、用于高性能服務(wù)器開發(fā)的編程框架。
因此,本文基于MQTT和Netty設(shè)計(jì)CL2M系統(tǒng)中間件,包括發(fā)布/訂閱核心執(zhí)行引擎(包括消息收發(fā)、消息緩存池、消息過濾、訂閱管理)、身份驗(yàn)證管理、ACL管理、自動(dòng)訂閱管理和心跳機(jī)制模塊,同時(shí)為了便于用戶通過瀏覽器主動(dòng)請(qǐng)求獲取產(chǎn)品生命周期數(shù)據(jù),提供了Web服務(wù)。整個(gè)中間件的軟件架構(gòu)如圖2所示。
圖2 CL2M系統(tǒng)中間件軟件架構(gòu)
2.1 身份驗(yàn)證和ACL管理模塊
產(chǎn)品的全生命周期階段涉及設(shè)計(jì)人員、制造商、物流公司、產(chǎn)品用戶、維護(hù)/維修專家及回收操作員等用戶。為規(guī)范用戶操作行為,確保數(shù)據(jù)的安全和隱私,基于用戶名和用戶密碼設(shè)計(jì)身份驗(yàn)證表,基于產(chǎn)品消息主題和用戶ID設(shè)計(jì)主題訪問權(quán)限控制表ACL(Access Control List)。
用戶第一次發(fā)起連接請(qǐng)求時(shí),身份驗(yàn)證模塊利用連接包中的用戶名和密碼實(shí)現(xiàn)身份驗(yàn)證。
用戶訂閱或發(fā)布主題消息時(shí),ACL管理模塊用于驗(yàn)證用戶是否具有對(duì)該主題訂閱或發(fā)布的權(quán)限,若用戶擁有權(quán)限則進(jìn)行后續(xù)操作,否則拒絕訂閱或發(fā)布操作。
2.2 自動(dòng)訂閱模塊
實(shí)際應(yīng)用中,用戶手動(dòng)訂閱產(chǎn)品數(shù)據(jù)主題,但對(duì)于訂閱大量產(chǎn)品主題消息的用戶,重復(fù)性手動(dòng)訂閱不僅影響用戶體驗(yàn),同時(shí)也占用了大量的網(wǎng)絡(luò)資源。
因此用戶第一次發(fā)起連接請(qǐng)求后,一旦身份驗(yàn)證模塊通過身份驗(yàn)證,自動(dòng)訂閱模塊便根據(jù)用戶ID和ACL表為用戶自動(dòng)訂閱權(quán)限范圍內(nèi)的產(chǎn)品數(shù)據(jù)主題,自動(dòng)訂閱模塊的處理流程如圖3所示。
圖3 自動(dòng)訂閱流程
2.3 訂閱管理模塊
訂閱管理模塊是CL2M系統(tǒng)中間件核心處理引擎,負(fù)責(zé)訂閱請(qǐng)求及發(fā)布消息的集中處理。
訂閱管理模塊處理訂閱消息的過程如圖4所示。數(shù)據(jù)收發(fā)模塊收到客戶端C發(fā)出的主題T訂閱請(qǐng)求“Subscribe(C,T)”后交由消息緩存池模塊進(jìn)行消息解析、分類,確定為訂閱消息后由訂閱管理模塊利用ACL管理模塊查詢客戶端對(duì)主題T的訂閱權(quán)限,若客戶端擁有對(duì)主題T的訂閱權(quán)限則更新產(chǎn)品主題訂閱表,并返回訂閱成功確認(rèn)信息;否則,則直接返回訂閱失敗確認(rèn)信息。
圖4 訂閱產(chǎn)品消息處理過程
產(chǎn)品全生命消息的發(fā)布處理過程與訂閱過程類似。當(dāng)產(chǎn)品數(shù)據(jù)源發(fā)布的主題消息成功由消息過濾模塊過濾后,訂閱管理模塊利用ACL模塊實(shí)現(xiàn)發(fā)布權(quán)限管理,具有發(fā)布權(quán)限時(shí)則根據(jù)主題訂閱表將該消息在數(shù)據(jù)庫(kù)中持久化并轉(zhuǎn)發(fā)給訂閱該主題的用戶,否則拒絕發(fā)布操作。
產(chǎn)品主題訂閱表采用訂閱樹機(jī)制,即產(chǎn)品生命周期數(shù)據(jù)主題根據(jù)主題層級(jí)分隔符(‘/’)組織成樹,從樹的根節(jié)點(diǎn)至樹中任意非根節(jié)點(diǎn)都構(gòu)成一組產(chǎn)品生命周期數(shù)據(jù)數(shù)據(jù)主題,每一主題維護(hù)一組該主題的訂閱者列表和主題消息隊(duì)列。
2.4 消息緩存池模塊
消息緩存池模塊統(tǒng)一管理和緩存CL2M系統(tǒng)中間件收發(fā)消息,分為接收消息緩存池和發(fā)送消息緩存池。
2.4.1 接收消息緩存池
產(chǎn)品在生產(chǎn)、使用過程中,一些故障信息需要優(yōu)先處理和分發(fā),因此CL2M系統(tǒng)中間件處理的信息分為緊急信息、環(huán)境信息和一般產(chǎn)品使用消息。
為了達(dá)到緊急消息優(yōu)先處理和分發(fā)的目的,接收消息緩存池基于區(qū)分優(yōu)先級(jí)的多隊(duì)列技術(shù)實(shí)現(xiàn)。接收緩存池的設(shè)計(jì)如圖5所示。
圖5 接收緩存池
總體緊急因子TEF(Total Emergency Factor)分類根據(jù)消息TEF值完成不同優(yōu)先級(jí)消息入隊(duì)。多優(yōu)先級(jí)的多隊(duì)列調(diào)度算法采用優(yōu)先級(jí)加權(quán)輪詢機(jī)制,即為不同優(yōu)先級(jí)隊(duì)列分配不同時(shí)間片處理權(quán)重。高優(yōu)先級(jí)隊(duì)列為空或時(shí)間片用完后輪詢較低優(yōu)先級(jí)隊(duì)列,依次循環(huán)。這樣既能防止優(yōu)先級(jí)較高的隊(duì)列持續(xù)占用處理資源,又避免了低優(yōu)先級(jí)隊(duì)列出現(xiàn)饑餓問題。隊(duì)列內(nèi)部采用先進(jìn)先服務(wù)FCFS(Fisrt Come First Serve)策略。
2.4.2 發(fā)送消息緩存池
發(fā)送消息緩存池緩存反饋確認(rèn)消息和CL2M系統(tǒng)中間件分發(fā)給不同訂閱者的消息。緩存池維護(hù)5個(gè)消息緩存隊(duì)列(包括outboundQoS2、outboundQoS1、 pendingMessages、pendingFlows、emergeningMessages),緩存池結(jié)構(gòu)如圖6所示。
圖6 發(fā)送消息緩存池
區(qū)分outboundQoS2、outboundQoS1兩個(gè)緩存的作用一方面用于提供不同服務(wù)質(zhì)量的產(chǎn)品消息分發(fā)服務(wù),另一方面用于在CL2M系統(tǒng)中間件異常崩潰狀態(tài)下從文件系統(tǒng)中恢復(fù)消息發(fā)送現(xiàn)場(chǎng)。pendingMessages緩存從outboundQoS2、outboundQoS1取出的產(chǎn)品數(shù)據(jù)消息,pendingFlows主要緩存連接、訂閱、發(fā)布等消息的確認(rèn)消息。emergeningMessages緩存需要優(yōu)先路由分發(fā)的消息。Send Handler對(duì)這3個(gè)緩存隊(duì)列的處理優(yōu)先順序依次為emergeningMessages、pendingFlows和pendingMessages,并分配不同的處理時(shí)間片。
2.5 消息過濾模塊
消息過濾模塊實(shí)現(xiàn)非法或無效發(fā)布消息過濾。由于產(chǎn)品消息基于主題形式發(fā)布至中間件系統(tǒng),而主題數(shù)目存在一定范圍動(dòng)態(tài)變化,因此,在允許一定假陽(yáng)性誤判概率情況下非常適合采用計(jì)數(shù)布隆濾波器CBF(Counting Bloom Filter)[14]實(shí)現(xiàn)快速消息過濾算法。
CBF繼承了標(biāo)準(zhǔn)BF優(yōu)秀的空間效率和查詢時(shí)間,同時(shí)支持規(guī)則集動(dòng)態(tài)變化時(shí)刪除操作。CBF將標(biāo)準(zhǔn)BF的V向量的bit位擴(kuò)展為計(jì)數(shù)器(Counter),通過對(duì)計(jì)數(shù)器的加減操作完成規(guī)則集的添加和刪除。計(jì)數(shù)器擴(kuò)展至4 bit即可滿足大多數(shù)應(yīng)用[15]。
基于CBF的消息過濾算法描述如下:(1) 主題規(guī)則集T={T1,T2,…,Tn}共有n個(gè)元素,通過哈希函數(shù)集H={h1,h2,…,hk}計(jì)算每一規(guī)則集元素的k個(gè)哈希值(值域?yàn)閧0,1,…,m-1}),映射至長(zhǎng)度為m的計(jì)數(shù)器數(shù)組,將對(duì)應(yīng)k個(gè)計(jì)數(shù)器加1;(2) 對(duì)需要過濾的主題消息采用相同的哈希函數(shù)集計(jì)算k個(gè)哈希值,若對(duì)應(yīng)k個(gè)計(jì)數(shù)器值都大于等于1則消息屬于主題規(guī)則集,消息進(jìn)行持久化并交由訂閱管理模塊分發(fā)。否則,判定不屬于主題規(guī)則集,消息丟棄,不再進(jìn)行后續(xù)處理。
消息過濾算法偽代碼如下:
Algorithm: DataFilter (element)
Require: element is not null
1: CBF←GetCBF()
2: if CBF is null then
3: CBF←CreateCBF(p,T)
4: Hash1←GetHash1(element)
5: Hash2←GetHash2(element)
6: for i=0 to k-1 do
7: Addri←Hash1+i*Hash2 mod m
8: if CBF[Addri]= 0 then
9: Return false
10: Return true
2.6 心跳機(jī)制模塊
CL2M系統(tǒng)中間件通過心跳機(jī)制模塊確保與之交互的客戶端連接,從而及時(shí)發(fā)現(xiàn)異常斷開情況。若客戶端在規(guī)定的可設(shè)置時(shí)間戳內(nèi)沒有與CL2M系統(tǒng)中間件交互的需求,需向中間件發(fā)送PING消息,告知連接正常,心跳機(jī)制模塊返回PINGRESP消息。若CL2M系統(tǒng)中間件在規(guī)定時(shí)間超時(shí)后未收到PING消息,則判定該連接異常,斷開超時(shí)連接。斷開連接之前,心跳機(jī)制模塊根據(jù)客戶端初始發(fā)起連接時(shí)指定的CleanSession值決定是否保存會(huì)話狀態(tài)。若CleanSession=0則保存會(huì)話狀態(tài),在下次重新連接時(shí)恢復(fù)會(huì)話狀態(tài),客戶端就不用重新進(jìn)行消息主題訂閱等操作;否則,丟棄之前所有會(huì)話狀態(tài)。
實(shí)驗(yàn)測(cè)試環(huán)境:一臺(tái)部署CL2M系統(tǒng)中間件的服務(wù)器(Ubuntu12.04OS,IntelCorei5CPU,2.2GHz,8GBMemory)和若干臺(tái)基于低溫等離子體設(shè)備系統(tǒng)應(yīng)用場(chǎng)景設(shè)計(jì)的產(chǎn)品嵌入式信息裝置(PEID)[16]。
3.1 數(shù)據(jù)過濾有效性測(cè)試
為了測(cè)試設(shè)計(jì)的數(shù)據(jù)過濾算法對(duì)無效產(chǎn)品數(shù)據(jù)過濾的有效性,構(gòu)建了200個(gè)產(chǎn)品主題消息匹配規(guī)則集和800個(gè)不匹配規(guī)則集,分別測(cè)試了在不同期望假陽(yáng)性誤判率下設(shè)計(jì)的CBF數(shù)據(jù)過濾的實(shí)際誤判率,測(cè)試結(jié)果如表1所示。
表1 主題消息誤判率測(cè)試結(jié)果
從測(cè)試結(jié)果表中可以看出,通過合理選擇期望假陽(yáng)性誤判率和哈希函數(shù)個(gè)數(shù)k,能夠有效保證較低的實(shí)際假陽(yáng)性誤判率,從而在允許一定誤判率情況下有效實(shí)現(xiàn)無效數(shù)據(jù)過濾,滿足實(shí)際應(yīng)用需求。
3.2 實(shí)時(shí)性測(cè)試
圖7 不同緊急性消息平均響應(yīng)處理時(shí)間
從圖7中可以看出隨著數(shù)據(jù)服務(wù)訂閱者個(gè)數(shù)的增加,中間件系統(tǒng)處理時(shí)間呈現(xiàn)上升態(tài)勢(shì)。處理時(shí)間增加的根本原因是訂閱者個(gè)數(shù)的增加導(dǎo)致中間件需要分發(fā)的產(chǎn)品數(shù)據(jù)量增大,但不同緊急性消息的平均處理時(shí)間都低于8.56s,系統(tǒng)響應(yīng)時(shí)間能夠滿足實(shí)際應(yīng)用需求。
另外,不同緊急性消息平均處理時(shí)間不同,緊急性高的消息平均處理時(shí)間明顯低于緊急性低的處理時(shí)間。在訂閱者為600時(shí),星形曲線表示的高緊急性消息平均處理時(shí)間低于2.12s,菱形曲線表示的中等緊急性消息低于5.03s,方形曲線表示的普通消息低于8.56s。
3.3 吞吐率測(cè)試
大數(shù)量下,系統(tǒng)吞吐率是衡量CL2M系統(tǒng)中間件一項(xiàng)重要的性能指標(biāo),定義為單位時(shí)間內(nèi)CL2M系統(tǒng)中間件能夠成功處理和分發(fā)的數(shù)據(jù)包個(gè)數(shù)。為了測(cè)試吞吐率,3臺(tái)PEID作為中間件客戶端,向不同緊急性的3個(gè)產(chǎn)品主題(緊急消息、產(chǎn)品使用環(huán)境消息、普通消息)分別周期性發(fā)布100、500和500條產(chǎn)品主題消息。模擬緊急消息數(shù)據(jù)服務(wù)訂閱者個(gè)數(shù)為100,環(huán)境消息和普通消息訂閱者分別為300和200,對(duì)應(yīng)共有26萬條消息測(cè)試吞吐率。通過實(shí)際測(cè)試實(shí)驗(yàn),約在130s內(nèi)能夠完成所有消息的處理和分發(fā),吞吐率測(cè)試結(jié)果如圖8所示。
圖8 系統(tǒng)吞吐率
從圖8可以看出在大數(shù)據(jù)量下,CL2M系統(tǒng)中間件能夠維持較高的吞吐率,平均吞吐率約為2 162packets/s,滿足CL2M系統(tǒng)應(yīng)用要求,同時(shí)非常適合于傳感器節(jié)點(diǎn)眾多、數(shù)據(jù)量大的物聯(lián)網(wǎng)環(huán)境下系統(tǒng)數(shù)據(jù)采集和分發(fā)基礎(chǔ)中間件服務(wù)。
為了有效提供CL2M系統(tǒng)基礎(chǔ)產(chǎn)品數(shù)據(jù)中間件服務(wù),本文在分析CL2M系統(tǒng)中間件特點(diǎn)的基礎(chǔ)上,結(jié)合物聯(lián)網(wǎng)協(xié)議MQTT和非阻塞異步框架Netty設(shè)計(jì)了滿足CL2M系統(tǒng)應(yīng)用需求的基礎(chǔ)數(shù)據(jù)服務(wù)中間件。通過最終實(shí)際測(cè)試表明,該中間件能夠有效實(shí)現(xiàn)無效產(chǎn)品數(shù)據(jù)過濾,并具有良好的系統(tǒng)處理性能,因此也非常適合于擴(kuò)展至傳感器節(jié)點(diǎn)眾多、數(shù)據(jù)量大的物聯(lián)網(wǎng)環(huán)境下系統(tǒng)數(shù)據(jù)采集和分發(fā)基礎(chǔ)中間件服務(wù)應(yīng)用。
[1]MerinaMaharjan.EnablingClosedLoopLifecycleManagementwithInformationExchangeStandards[D].AaltoUniversity,2013.
[2]XinY,XintongZ.PLMforMultipleLifecycleProduct:Concepts,terminologies,processesforcollaborativeinformationmanagement[D].KTHRoyalInstituteofTechnology,2013,12.
[3] 徐亭.低溫等離子體設(shè)備C-LPLM系統(tǒng)的研究與開發(fā)[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2015.
[4]KublerS,MadhikermiM,BudaA,etal.QLMmessagingstandards:introduction&comparisonwithexistingmessagingprotocols[M].ServiceOrientationinHolonicandMulti-AgentManufacturingandRobotics.SpringerInternationalPublishing,2014:237-256.
[5]CassinaJ,TaischM,PotterD,etal.DevelopmentofPROMISEarchitectureandPDKMsemanticobjectmodel[C]//ICEConferenceProceedings,2008:23-25.
[6]DimitrisKiritsis.Closed-loopPLMforintelligentproductsintheeraoftheInternetofthings[J].Computer-AidedDesign,2011(43):479-233.
[7]Fr?mlingK,NymanJ.Informationarchitectureforintelligentproductsintheinternetofthings[J].BeyondBusinessLogisticsProceedingsofNofoma,2008.
[8]JanAxelNyman.Productdatagatheringusingadistributedsoftwarearchitectureandproductembeddedinformationdevices[D].Espoo:HelsinkiUniversityofTechnology,2008.
[9]KaryFramling,SylvainKubler,AndreaBuda.UniversalMessagingStandardsfortheIoTFromaLifecycleManagementPerspective[J].IEEEInternetofThingsJournal,2014,1(4):319-327.
[10] 王旭,李文川.制造業(yè)的新理念—閉環(huán)產(chǎn)品生命周期管理[J].中國(guó)機(jī)械工程,2010,21(14):1687-1693.
[11] 劉剛.基于產(chǎn)品形態(tài)的生命周期數(shù)據(jù)閉環(huán)管理研究[D].濟(jì)南:山東大學(xué),2012.
[12] 王重楠,王宗陶,鮑忠貴,等.發(fā)布/訂閱模式測(cè)控消息中間件系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2015,35(3):878-881.
[13]MQTTVersion3.1.1.EditedbyAndrewBanksandRahulGupta.29October2014.OASISStandard[EB/OL].http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html.Latestversion:http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html.
[14] 謝鯤,文吉?jiǎng)?張大方,等.布魯姆過濾器查詢算法[J].軟件學(xué)報(bào),2009,20(1):96-108.
[15]KirschA,MitzenmacherM.Lesshashing,sameperformance:BuildingabetterBloomfilter[J].RandomStructures&Algorithms,2005,33(2):187-218.
[16] 許宜春,徐亭,桑成.產(chǎn)品全生命周期數(shù)據(jù)自動(dòng)采集PEID研制[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(12):93-99.
DESIGN OF MIDDLEWARE IN CLOSED-LOOP LIFECYCLE MANAGEMENT SYSTEM FOR INTERNET OF THINGS
Cheng Jian Xu Yichun Sang Cheng
(CollegeofInformationScienceandTechnology,UniversityofScienceandTechnologyofChina,Hefei230027,Anhui,China)
In order to provide a more efficient data service in closed-loop lifecycle management system and solve the problem of interacting and sharing lifecycle information in many heterogeneous systems, a middleware based on MQTT and NIO framework Netty is proposed. Firstly, the connotation and architecture of closed-loop lifecycle management system are summarized briefly. Then, the architecture and process of the middleware are designed based on the analysis of characteristics of middleware in closed-loop lifecycle management system. Finally, an experiment is designed. Experimental results show that the middleware can quickly and efficiently implement invalid product data filtering. In the mode with mass data and data service subscribers, the average processing time of normal message keeps less than 8.56 s, and the average system throughput is 2 162 packets per second, which both meet the requriements of closed-loop lifecycle management data service. Meanwhile, the middleware is also well suitable for Internet of things with a large number of sensor nodes, implementing basic data collection and distribution service.
Closed-loop lifecycle management Message queue telemetry transport (MQTT) Netty Middleware Internet of things
2016-03-07。程健,高級(jí)工程師,主研領(lǐng)域:分布式網(wǎng)絡(luò)測(cè)控技術(shù)及應(yīng)用,智能儀器與自動(dòng)檢測(cè)技術(shù),嵌入式系統(tǒng)(包括FPGA、DSP)及其應(yīng)用,物聯(lián)網(wǎng)環(huán)境下閉環(huán)生命周期管理系統(tǒng)。許宜春,碩士生。桑成,碩士生。
TP393
A
10.3969/j.issn.1000-386x.2017.04.004