專利名稱:一種用于rfid中間件中設(shè)備外掛的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種RFID中間件,尤其涉及面向大型RFID應(yīng)用系統(tǒng),基于現(xiàn)代計算機(jī)的多進(jìn)程、多線程技術(shù),RFID中間件中對RFID設(shè)備外掛進(jìn)行靈活調(diào)度的方法。
背景技術(shù):
RFID 中間件(Radio Frequency Identification middleware)是自動識別設(shè)備和應(yīng)用系統(tǒng)之間通信的橋梁,它可以自動識別和收集RFID設(shè)備的電子標(biāo)簽數(shù)據(jù),廣泛地運用于各種物流、制造及重要物品跟蹤等領(lǐng)域。RFID設(shè)備外掛是RFID中間件中最基礎(chǔ)、底層的功能模塊,RFID中間件就是通過控制眾多的RFID設(shè)備外掛,再通過各設(shè)備外掛,實現(xiàn)對不同廠家RFID設(shè)備的接入。在一個大型的應(yīng)用環(huán)境中,可能有數(shù)百臺各種型號的RFID設(shè)備在同時工作,而 RFID閱讀器工作時,它會不停地讀取標(biāo)簽,這對于RFID中間件的性能提出了嚴(yán)格的要求。 同時,這也對RFID設(shè)備外掛的性能和穩(wěn)定性提出了嚴(yán)格的要求。隨著多核處理器及其硬件體系的日趨成熟,采用多進(jìn)程和多線程技術(shù)來充分挖掘處理器潛力,并提高軟件系統(tǒng)的穩(wěn)定性,正日益成為中間件技術(shù)的一種趨勢。目前在國內(nèi)外的許多應(yīng)用軟件中,已經(jīng)普遍采用多線程的方式來提高數(shù)據(jù)處理能力。但是在RFID中間件中,尚未出現(xiàn)針對RFID應(yīng)用領(lǐng)域特點的基于多進(jìn)程和多線程技術(shù)的RFID設(shè)備外掛計算裝置。中國發(fā)明專利申請公開說明書CN1965^1A公開了一種“具有多進(jìn)程結(jié)構(gòu)的用于運行插件程序代碼模塊的計算裝置”,其具有用于在其自身的專用進(jìn)程中運行插件程序代碼模塊的多進(jìn)程結(jié)構(gòu),從而使用插件程序設(shè)計模型來提高軟件安全性和可靠性。該發(fā)明是一種通用的多進(jìn)程軟件架構(gòu),插件程序必須固定以進(jìn)程方式運行,無法獨立以DLL方式嵌入專用進(jìn)程中。中國發(fā)明專利申請公開說明書CN1427618A公開了一種“基于多進(jìn)程的多視角視頻節(jié)目網(wǎng)絡(luò)轉(zhuǎn)播方法”,通過多進(jìn)程方式,將網(wǎng)絡(luò)復(fù)合視頻信號進(jìn)行分解播放。與前一專利申請類似,它無法適用于RFID中間件,同時該專利申請中的方法,不適用于Windows和 WinCE操作系統(tǒng)。中國發(fā)明專利申請公開說明書CN101373509公開了 “一種基于分布式ALE的RFID 中間件”,采用了分布式資源來并行計算來解決了負(fù)載過度問題。該專利申請采取利用多臺計算機(jī)并行工作來提高系統(tǒng)的負(fù)載,并不經(jīng)濟(jì)而且沒有解決均衡的問題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種用于RFID中間件中設(shè)備外掛的方法,解決大型RFID應(yīng)用系統(tǒng)中,在多設(shè)備同時工作的要求下,響應(yīng)調(diào)度及均衡分配資源的問題。技術(shù)方案
一種用于RFID中間件中設(shè)備外掛的方法,其特征在于在RFID中間件的主模塊內(nèi)設(shè)置
3有對連接的RFID設(shè)備進(jìn)行管理的管理子模塊,所述管理子模塊采用消息隊列機(jī)制,即由管理子模塊發(fā)送指令至多個RFID設(shè)備外掛線程的消息隊列,根據(jù)該指令控制所述多個RFID 設(shè)備外掛線程的工作,并返回數(shù)據(jù)至所述管理子模塊的消息隊列。進(jìn)一步,所述管理子模塊采用消息隊列機(jī)制控制多個RFID設(shè)備外掛線程的工作的步驟如下
(1)首先在RFID中間件中定義每個RFID設(shè)備外掛的運行屬性,包括并發(fā)模式、運行模式、設(shè)備外掛模塊信息及相應(yīng)的設(shè)備信息,其中并發(fā)模式包括單線程模式、指定數(shù)量線程模式、每臺RFID設(shè)備一個線程模式;運行模式包括獨立進(jìn)程模式、嵌入中間件模式;設(shè)備信息包括設(shè)備通信模式、設(shè)備通信地址、設(shè)備輪詢設(shè)定;
(2)在RFID中間件中,定義設(shè)備外掛的公共接口,包括設(shè)備外掛初始化接口、設(shè)備外掛啟停接口、設(shè)備掃描接口、標(biāo)簽寫入接口 ;
(3)在RFID中間件中,提供嵌入式RFID設(shè)備外掛容器和獨立進(jìn)程RFID設(shè)備容器;
(4)在RFID中間件的管理子模塊中,提供RFID標(biāo)簽數(shù)據(jù)接收消息隊列,用于接收來自于設(shè)備外掛的電子標(biāo)簽數(shù)據(jù);
(5)在RFID設(shè)備外掛中,提供指令接收消息隊列,用于接收來自于RFID中間件的設(shè)備信息、設(shè)備掃描指令和設(shè)備寫入指令;
(6)RFID中間件啟動時,讀取每個RFID設(shè)備外掛的運行模式信息對于以獨立進(jìn)程模式運行的設(shè)備外掛,RFID中間件啟動一個新的獨立進(jìn)程RFID設(shè)備容器,由獨立進(jìn)程RFID設(shè)備容器啟動相應(yīng)的RFID設(shè)備外掛;對于以嵌入中間件模式的設(shè)備外掛,RFID中間件在中間件主進(jìn)程內(nèi)創(chuàng)建一個新的嵌入式RFID設(shè)備外掛容器,由該容器啟動RFID設(shè)備外掛;
(7)RFID中間件由不同的容器啟動完成相應(yīng)的RFID設(shè)備外掛之后,向該RFID設(shè)備外掛的消息隊列發(fā)送其并發(fā)模式和相關(guān)RFID設(shè)備信息;
(8)所述RFID設(shè)備外掛收到并發(fā)模式設(shè)定和相關(guān)RFID設(shè)備信息之后,根據(jù)所收到的 RFID設(shè)備的數(shù)量和并發(fā)模式設(shè)定信息,自動調(diào)整工作線程數(shù)量,進(jìn)入正常工作模式;
(9)RFID設(shè)備外掛進(jìn)程在正常工作模式后,根據(jù)RFID中間件發(fā)送的標(biāo)簽采集指令,對設(shè)備內(nèi)標(biāo)簽數(shù)據(jù)進(jìn)行掃描,并返回相關(guān)標(biāo)簽數(shù)據(jù)到RFID標(biāo)簽數(shù)據(jù)接收消息隊列。所述步驟(1)中,RFID中間件中的RFID設(shè)備外掛在物理形態(tài)上,是一個動態(tài)鏈接庫。所述步驟(3)中,在RFID中間件的進(jìn)程模型中,提供了兩種進(jìn)程RFID中間件主進(jìn)程和RFID外掛進(jìn)程。有益效果
本發(fā)明能在大型RFID應(yīng)用系統(tǒng)中,在多設(shè)備同時工作的要求下,充分利用單一計算機(jī)的多核特性,提高RFID中間件的處理能力,區(qū)別于傳統(tǒng)的單進(jìn)程RFID中間件,采用多進(jìn)程方式,可以使得各設(shè)備外掛得到均衡的調(diào)度,避免由于某個RFID設(shè)備外掛異常導(dǎo)致整個 RFID中間件崩潰。
圖1為本發(fā)明實施示例的框圖。
具體實施例方式下面結(jié)合具體實施例和附圖,進(jìn)一步闡述本發(fā)明。本發(fā)明的核心思想是利用多進(jìn)程的設(shè)備外掛,充分利用現(xiàn)代計算機(jī)硬件的多處理器的能力,同時在每個設(shè)備外掛內(nèi),根據(jù)應(yīng)用需求,可設(shè)置不同的并發(fā)模型。由于引入多進(jìn)程的架構(gòu),使得RFID中間件不會由于某個設(shè)備外掛崩潰導(dǎo)致整體失效,降低了單點故障的可能性。如附圖1所示,依照本發(fā)明方法實施的RFID設(shè)備外掛裝置用于RFID中間件中,主要包括RFID中間件主模塊中管理子模塊、嵌入式RFID設(shè)備外掛容器、RFID設(shè)備外掛容器、 RFID外掛指令接收消息隊列和RFID外掛設(shè)備采集線程池。RFID外掛容器是一個獨立進(jìn)程,它和嵌入式RFID設(shè)備外掛容器具有相同的消息隊列接口,它們和RFID中間件中管理子模塊直接僅僅通過消息隊列進(jìn)行數(shù)據(jù)和控制指令的交互。在RFID設(shè)備外掛啟動時,它根據(jù)當(dāng)前應(yīng)用的設(shè)定,根據(jù)相關(guān)設(shè)備的數(shù)量,啟動一個RFID外掛設(shè)備采集線程池,每個線程負(fù)責(zé)一個或多個RFID設(shè)備的掃描/寫入操作。當(dāng)RFID設(shè)備外掛采集到標(biāo)簽數(shù)據(jù)時,它們將數(shù)據(jù)發(fā)送到RFID中間件的標(biāo)簽數(shù)據(jù)接收的消息隊列中,完成標(biāo)簽掃描任務(wù)。當(dāng)需要向電子標(biāo)簽寫入數(shù)據(jù)時,RFID中間件主進(jìn)程通過向相應(yīng)設(shè)備外掛的消息隊列中寫入相應(yīng)控制消息,當(dāng)RFID設(shè)備接收到相應(yīng)控制消息之后,以設(shè)備特定協(xié)議,向消息中指定的RFID設(shè)備發(fā)送標(biāo)簽數(shù)據(jù)寫入/修改指令,并將結(jié)果返回至RFID中間件主進(jìn)程之中,完成標(biāo)簽寫入的整個流程。在RFID中間件的進(jìn)程模型中,存在兩種進(jìn)程RFID中間件主進(jìn)程和RFID設(shè)備外掛進(jìn)程。RFID中間件主進(jìn)程負(fù)責(zé)管理所有的RFID設(shè)備外掛進(jìn)程、向RFID設(shè)備外掛發(fā)出標(biāo)簽采集指令并接受外掛所采集到的電子標(biāo)簽數(shù)據(jù)。RFID設(shè)備外掛進(jìn)程則負(fù)責(zé)完成。RFID 中間件主進(jìn)程和RFID設(shè)備外掛之間,僅僅通過跨進(jìn)程的消息隊列進(jìn)行通信。在運行時,每個RFID設(shè)備外掛,可以以一個獨立進(jìn)程的形式存在,也可以通過 RFID中間件提供的嵌入式RFID外掛容器,嵌入到RFID中間件中運行。當(dāng)配置成獨立進(jìn)程外掛時,RFID設(shè)備外掛作為獨立進(jìn)程存在;當(dāng)配置成嵌入式外掛時,RFID設(shè)備外掛直接嵌入RFID中間件的主進(jìn)程中。對于RFID設(shè)備外掛,它可以有多種并發(fā)模型每個設(shè)備一個線程、每個外掛一個線程和每個外掛指定數(shù)量線程。在最簡單的情況下,每個RFID外掛下的所有設(shè)備共享一個線程,在系統(tǒng)中有多個 RFID設(shè)備的情況下,如果設(shè)備訪問存在阻塞或延遲等現(xiàn)象,則這種模型將必然由于串行處理而導(dǎo)致性能低下。在RFID中間件設(shè)備外掛中,還支持了每個設(shè)備一個線程模式和固定數(shù)量線程。模式顧名思義,每個設(shè)備一個線程模式就是在外掛中為每個RFID設(shè)備外掛分配一個處理線程,由于這種方式可能存在資源浪費,因此產(chǎn)生了一個折中模式——固定數(shù)量線程,以便于根據(jù)實際的運行情況實時調(diào)優(yōu)。本發(fā)明能在大型RFID應(yīng)用系統(tǒng)中,在多設(shè)備同時工作的要求下,充分利用單一計算機(jī)的多核特性,提高RFID中間件的處理能力,區(qū)別于傳統(tǒng)的單進(jìn)程RFID中間件,采用多進(jìn)程方式,可以使得各設(shè)備外掛得到均衡的調(diào)度,避免由于某個RFID設(shè)備外掛異常導(dǎo)致整個RFID中間件崩潰。在不同類型的應(yīng)用中,各種RFID設(shè)備的數(shù)量可能從數(shù)臺到數(shù)百臺之間。在本發(fā)明中,通過為RFID設(shè)備外掛提供靈活的并發(fā)模型,使得每個RFID設(shè)備外掛均可以根據(jù)實際需求,設(shè)定不同的并發(fā)模型。而且實現(xiàn)了僅僅通過配置的修改,即可實現(xiàn)RFID設(shè)備外掛在不同并發(fā)模型之間的切換,甚至通過更改配置,可以實現(xiàn)同一個RFID設(shè)備外掛,既可以運行在獨立進(jìn)程模式下,也可以作為一個動態(tài)鏈接庫模塊,嵌入到RFID中間件中。在本發(fā)明中所描述的方法,可以在所有具有共享內(nèi)存的操作系統(tǒng)上工作,包括 Windows、Win CE、Linux 禾口 Unix 系統(tǒng)。
權(quán)利要求
1.一種用于RFID中間件中設(shè)備外掛的方法,其特征在于在RFID中間件的主模塊內(nèi)設(shè)置有對連接的RFID設(shè)備進(jìn)行管理的管理子模塊,所述管理子模塊采用消息隊列機(jī)制,即由管理子模塊發(fā)送指令至多個RFID設(shè)備外掛線程的消息隊列,根據(jù)該指令控制所述多個 RFID設(shè)備外掛線程的工作,并返回數(shù)據(jù)至所述管理子模塊的消息隊列。
2.如權(quán)利要求1所述的用于RFID中間件中設(shè)備外掛的方法,其特征在于所述管理子模塊采用消息隊列機(jī)制控制多個RFID設(shè)備外掛線程的工作的步驟如下首先在RFID中間件中定義每個RFID設(shè)備外掛的運行屬性,包括并發(fā)模式、運行模式、 設(shè)備外掛模塊信息及相應(yīng)的設(shè)備信息,其中并發(fā)模式包括單線程模式、指定數(shù)量線程模式、每臺RFID設(shè)備一個線程模式;運行模式包括獨立進(jìn)程模式、嵌入中間件模式;設(shè)備信息包括設(shè)備通信模式、設(shè)備通信地址、設(shè)備輪詢設(shè)定;在RFID中間件中,定義設(shè)備外掛的公共接口,包括設(shè)備外掛初始化接口、設(shè)備外掛啟停接口、設(shè)備掃描接口、標(biāo)簽寫入接口 ;在RFID中間件中,提供嵌入式RFID設(shè)備外掛容器和獨立進(jìn)程RFID設(shè)備容器; 在RFID中間件的管理子模塊中,提供RFID標(biāo)簽數(shù)據(jù)接收消息隊列,用于接收來自于設(shè)備外掛的電子標(biāo)簽數(shù)據(jù);在RFID設(shè)備外掛中,提供指令接收消息隊列,用于接收來自于RFID中間件的設(shè)備信息、設(shè)備掃描指令和設(shè)備寫入指令;RFID中間件啟動時,讀取每個RFID設(shè)備外掛的運行模式信息對于以獨立進(jìn)程模式運行的設(shè)備外掛,RFID中間件啟動一個新的獨立進(jìn)程RFID設(shè)備容器,由獨立進(jìn)程RFID設(shè)備容器啟動相應(yīng)的RFID設(shè)備外掛;對于以嵌入中間件模式的設(shè)備外掛,RFID中間件在中間件主進(jìn)程內(nèi)創(chuàng)建一個新的嵌入式RFID設(shè)備外掛容器,由該容器啟動RFID設(shè)備外掛;RFID中間件由不同的容器啟動完成相應(yīng)的RFID設(shè)備外掛之后,向該RFID設(shè)備外掛的消息隊列發(fā)送其并發(fā)模式和相關(guān)RFID設(shè)備信息;所述RFID設(shè)備外掛收到并發(fā)模式設(shè)定和相關(guān)RFID設(shè)備信息之后,根據(jù)所收到的RFID 設(shè)備的數(shù)量和并發(fā)模式設(shè)定信息,自動調(diào)整工作線程數(shù)量,進(jìn)入正常工作模式;RFID設(shè)備外掛進(jìn)程在正常工作模式后,根據(jù)RFID中間件發(fā)送的標(biāo)簽采集指令,對設(shè)備內(nèi)標(biāo)簽數(shù)據(jù)進(jìn)行掃描,并返回相關(guān)標(biāo)簽數(shù)據(jù)到RFID標(biāo)簽數(shù)據(jù)接收消息隊列。
3.如權(quán)利要求2所述的用于RFID中間件中設(shè)備外掛的方法,其特征在于所述步驟 (1)中,RFID中間件中的RFID設(shè)備外掛在物理形態(tài)上,是一個動態(tài)鏈接庫。
4.如權(quán)利要求2所述的用于RFID中間件中設(shè)備外掛的方法,其特征在于所述步驟 (3)中,在RFID中間件的進(jìn)程模型中,提供了兩種進(jìn)程RFID中間件主進(jìn)程和RFID外掛進(jìn)程。
全文摘要
本發(fā)明涉及一種RFID中間件,屬于RFID系統(tǒng)應(yīng)用領(lǐng)域。一種用于RFID中間件中設(shè)備外掛的方法,其特征在于在RFID中間件的主模塊內(nèi)設(shè)置有對連接的RFID設(shè)備進(jìn)行管理的管理子模塊,所述管理子模塊采用消息隊列機(jī)制,即由管理子模塊發(fā)送指令至多個RFID設(shè)備外掛線程的消息隊列,根據(jù)該指令控制所述多個RFID設(shè)備外掛線程的工作,并返回數(shù)據(jù)至所述管理子模塊的消息隊列。本發(fā)明能在大型RFID應(yīng)用系統(tǒng)中,在多設(shè)備同時工作的要求下,采用多進(jìn)程方式,可以使得各設(shè)備外掛得到均衡的調(diào)度,提高RFID中間件的處理能力,避免由于某個RFID設(shè)備外掛異常導(dǎo)致整個RFID中間件崩潰。
文檔編號G06F9/46GK102479102SQ201010554780
公開日2012年5月30日 申請日期2010年11月23日 優(yōu)先權(quán)日2010年11月23日
發(fā)明者崔中發(fā), 李尚春, 李淞, 覃明貴, 陳圣煜, 陳松 申請人:上海寶信軟件股份有限公司