基于Jini技術(shù)的RFID中間件平臺(tái)
1 相關(guān)工作
基于EPC規(guī)范的RFID中間件設(shè)計(jì),是RFID中間件進(jìn)一步研究的基礎(chǔ)與前提,在分布式技術(shù)廣泛應(yīng)用的今天,將RFID中間件與分布式技術(shù)結(jié)合也是勢(shì)在必行的,目前已經(jīng)有學(xué)者展開基于中間件的分布式系統(tǒng)開發(fā)過(guò)程的相關(guān)研究?,F(xiàn)有的RFID中間件是采用了基于消息的中間件系統(tǒng)(MOM),其主要特點(diǎn)是支持同步和異步兩種通訊方式,這使它有助于事件驅(qū)動(dòng)型應(yīng)用的開發(fā),而對(duì)過(guò)程處理型應(yīng)用的開發(fā)沒有太多益處,其互操作性、API的一致性都比較差,造成基于MOM應(yīng)用的可移植性差。同時(shí),現(xiàn)在的許多分布式計(jì)算技術(shù)在RFID產(chǎn)品中的應(yīng)用主要是集中在RFID中間件應(yīng)用層面上的研究,對(duì)RFID中問(wèn)件與各種商務(wù)應(yīng)用平臺(tái)的對(duì)接,企業(yè)的業(yè)務(wù)流程整合等方面的分布式計(jì)算技術(shù)進(jìn)行融合,例如,在IBM的RFID中間件的架構(gòu)中就有專門的設(shè)計(jì)模塊來(lái)對(duì)RFID的中間件模塊與商務(wù)應(yīng)用模塊之間數(shù)據(jù)的分配與管理進(jìn)行研究,來(lái)適應(yīng)企業(yè)中的各種分布式平臺(tái),而RFID中間件本身進(jìn)行分布式管理并沒有太多研究;SUN公司曾經(jīng)將RFID中間件借助分布式系統(tǒng)進(jìn)行配置與管理,但SUN推出的RFID中間件不是基于EPCglobal標(biāo)準(zhǔn)的中間件體系,無(wú)法得以普及。在基于EPC規(guī)范的RFID中間件中,在設(shè)備管理層及應(yīng)用層事件的設(shè)計(jì)與研究方面,有基于Agent的設(shè)備管
理方法、輕量級(jí)ALE的嵌入式中間件技術(shù)以及分布式ALE的相關(guān)研究¨44引,然而這些研究與設(shè)計(jì)中均未能實(shí)現(xiàn)RFID中間件平臺(tái)中的設(shè)備的自動(dòng)配置與智能管理的即插即用功能。
在眾多的分布式系統(tǒng)中,Jini是以Java技術(shù)為核心的分布式系統(tǒng).它通過(guò)使用一個(gè)簡(jiǎn)易的“即捅即用”模型,能夠隨時(shí)改變硬件或者軟件的配置,從而提供一個(gè)支持快速配置的分布式計(jì)算環(huán)境;它使各種數(shù)字設(shè)備無(wú)需配置、安裝或者人工干預(yù),就能夠在一個(gè)臨時(shí)的稱為服務(wù)聯(lián)盟(Federations of Services)的設(shè)備集合中共同工作。聯(lián)盟中的任何設(shè)備無(wú)論大小都可以自行管理,共同組成一個(gè)服務(wù)網(wǎng)絡(luò),聯(lián)盟中的每一個(gè)成員都可以為其它成員提供資源或服務(wù),同時(shí)又可以從其它成員那里獲取自己所需的資源和服務(wù);它提供一套完善的機(jī)制使得硬件設(shè)備或軟件組件能夠隨時(shí)加入或者退出聯(lián)盟。作為一個(gè)主動(dòng)的、響應(yīng)式的分布式基礎(chǔ)結(jié)構(gòu),它提供了在分布式環(huán)境中進(jìn)行服務(wù)的建立、查找、通訊和凋用的一整套機(jī)制,它本身與平臺(tái)無(wú)關(guān),采用它的器件不再受到所用軟件、處理器、設(shè)備驅(qū)動(dòng)器或傳統(tǒng)網(wǎng)絡(luò)協(xié)議的制約,只要有Java的虛擬機(jī)就可以了iS-6l。服務(wù)是Jini體系結(jié)構(gòu)中一個(gè)非常重要的概念,它可以用來(lái)表示組織在一起形成Jini聯(lián)盟的各個(gè)實(shí)體。Jini中的每個(gè)服務(wù)都有一個(gè)接口描述,該接口定義了客戶可以向這個(gè)服務(wù)請(qǐng)求的所有操作,并且反應(yīng)了服務(wù)的類型。這里的服務(wù)可以是硬件、軟件或軟硬件的結(jié)合。
自1999年1月25日SUN的Jini規(guī)范發(fā)布以來(lái),布式環(huán)境下網(wǎng)絡(luò)人們對(duì)利用Jini技術(shù)實(shí)現(xiàn)分資源有效共享的實(shí)現(xiàn)機(jī)制和模式進(jìn)行了研究。其研究目標(biāo)嗣繞創(chuàng)造強(qiáng)有力的系統(tǒng)和應(yīng)用程序,從而更好地利用網(wǎng)絡(luò)資源、使用分散的資源來(lái)解決大型的問(wèn)題。雖然將該目標(biāo)變?yōu)槌墒斓默F(xiàn)實(shí)應(yīng)用還需要較長(zhǎng)時(shí)間的努力,但Jini至少使人們構(gòu)建動(dòng)態(tài)的自配置、自管理和自恢復(fù)的分布式網(wǎng)絡(luò)成為可能。有學(xué)者已經(jīng)對(duì)Jini 技術(shù)等網(wǎng)上即插即用性、分布式系統(tǒng)及信息家電等相關(guān)方面進(jìn)行研究。
Jini技術(shù)的發(fā)展也是在不斷開發(fā)與探索中進(jìn)行,Jini系統(tǒng)也在實(shí)際的應(yīng)用中繼續(xù)改進(jìn)與成熟,這為將Jini技術(shù)與RFID中間件技術(shù)結(jié)合創(chuàng)造了條件。由于Jini是基于Java的開源系統(tǒng),具有不錯(cuò)的可移植性、操作性等,所以將RFID中間件與Jini技術(shù)結(jié)合成為了可能,同時(shí)利用分布式系統(tǒng)的優(yōu)勢(shì),可以將RFID設(shè)備管理在分布式環(huán)境下得到優(yōu)化,這也是RFID中間件發(fā)展的趨勢(shì)。
2 基于Jini技術(shù)的RnD中間件平臺(tái)架構(gòu)
本文通過(guò)Jini分布式技術(shù)與RFID中間件技術(shù)的結(jié)合,解決分布式環(huán)境下RFID中間件中的設(shè)備配置與管理所存在的問(wèn)題,實(shí)現(xiàn)設(shè)備的自動(dòng)配置與智能管理的即插即用功能,基于Jini技術(shù)的RFID中間件平臺(tái)架構(gòu)如圖l所示。
圖1 基于Jini的RFID中間件平臺(tái)架構(gòu)
在對(duì)基于Jini的RFID中間件平臺(tái)的設(shè)計(jì)時(shí),主要是利用RMI通信方式解決RFID設(shè)備在網(wǎng)絡(luò)中的自動(dòng)識(shí)別和“即插即用”、RFID中間件在分布式環(huán)境下的自動(dòng)配置的問(wèn)題,確保RFID中問(wèn)件進(jìn)行通信時(shí)能有效地借助基于EPCglobal規(guī)范的RFID中間件通信模塊進(jìn)行通信,并且能對(duì)中間件的配置進(jìn)行“定制”;而在網(wǎng)絡(luò)環(huán)境下做好了以上的步驟后,RFID設(shè)備與中間件即在網(wǎng)絡(luò)環(huán)境下成功加載,閱讀器管理層(Manager)在接入網(wǎng)絡(luò)后,通過(guò)Jini平臺(tái)找到可以使用的RFID中間件的設(shè)備代理層(Agent),它們之間的通信即可正常進(jìn)行而無(wú)需Jini平臺(tái)的干預(yù)。
基于Jini的RFID中間件平臺(tái)的設(shè)計(jì),其主要思路如下:
RFID設(shè)備作為服務(wù)接入Jini網(wǎng)絡(luò):首先,在實(shí)驗(yàn)室的環(huán)境下用軟件虛擬了RFID設(shè)備,將其按照J(rèn)ini的規(guī)范封裝成服務(wù);然后,通過(guò)Jini系統(tǒng)的發(fā)現(xiàn)(Dis—covery)協(xié)議和加入(Join)協(xié)議使設(shè)備服務(wù)成為Jini聯(lián)盟中的一員。
RFID中間件設(shè)備代理層(Agent)的配置:RFID設(shè)備服務(wù)接入Jini后,要想正常運(yùn)行必須要將RHD中間件設(shè)備代理層(Agent)進(jìn)行正確配置。首先。A—gent接入Jini網(wǎng)絡(luò)(還沒有進(jìn)行配置的AgentO),在網(wǎng)絡(luò)中找到Jini的查找服務(wù)(LookupServiee)的地址并且注冊(cè),讓自己作為Jini聯(lián)盟中的一員;然后,Agent0在查找服務(wù)(LookupServiee)中查詢配置自己需要的服務(wù),按照預(yù)留的服務(wù)接口來(lái)找到實(shí)現(xiàn)這些接口的服務(wù)對(duì)象,查找服務(wù)(I_ookupService)匹配到合適的服務(wù)之后會(huì)將服務(wù)的副本和服務(wù)提供者的地址返回給還未配置的AgentO,AgentO通過(guò)地址找到服務(wù)的提供者(如圖1中所示:正常運(yùn)行的RFID中間件Agentl),從而獲得服務(wù)實(shí)例。當(dāng)然,前提條件是在ini網(wǎng)絡(luò)中應(yīng)該存在多臺(tái)正常運(yùn)行的RFID中問(wèn)件,而Agent(}要配置自己,可以從一個(gè)或者多個(gè)服務(wù)提供者中獲取服務(wù)對(duì)象。
閱讀器管理層(Manager)與設(shè)備代理層(Agent)的通信:Manager要想獲得標(biāo)簽數(shù)據(jù)則需要與設(shè)備代理層進(jìn)行通信,Manager可以作為一個(gè)客戶接入Jini中,在Jini中通過(guò)查找服務(wù)(100kup service)找到某臺(tái)設(shè)備的地址(IP地址),就緒的Agent已經(jīng)在Jini聯(lián)盟中獲得了配置自己的設(shè)備管理服務(wù)對(duì)象,當(dāng)Manager獲得了Agent的IP地址后,Manager能夠與Agent建立實(shí)際的通信通道進(jìn)行通信,從而獲得標(biāo)簽數(shù)據(jù)等信息。同時(shí),Manager與Agent中保留了傳統(tǒng)的XML配置方式,在Manager與Agent之問(wèn)已經(jīng)建立了端對(duì)端的連接后,它們之問(wèn)的通信無(wú)需Jini進(jìn)行干預(yù),所以它們既可以按照設(shè)備默認(rèn)的配置獲得數(shù)據(jù),也可以通過(guò)XML方式自己來(lái)定制設(shè)備的配置信息,使設(shè)備按照需要進(jìn)行工作。
{$page$}
RFID中間件在Jini中的管理優(yōu)化:由于Manager與Agent之間是透明的,Manager依靠Jini平臺(tái)為其分配需要的Agent,而在實(shí)際的運(yùn)行中發(fā)現(xiàn),Manager從Jini中獲取的Agent有的時(shí)候是處于工作狀態(tài),從而使獲得的服務(wù)無(wú)效,這樣就造成效率上的損失,因?yàn)镸anager是在獲得服務(wù)實(shí)例之后才能判斷該服務(wù)是否可以使用。所以,針對(duì)這樣的情況,本文進(jìn)一步進(jìn)行了優(yōu)化管理,讓Manager在Jini中查找時(shí)就能獲知Agent的狀態(tài),從而改進(jìn)管理。
3 咖中間件在Jini中的配置與管理
在基于Jini技術(shù)的RFID中問(wèn)件平臺(tái)中,RFID設(shè)備作為服務(wù)加入到Jini中.RFID中間件將自動(dòng)進(jìn)行配置.設(shè)備要工作需要配置好設(shè)備代理層(Agent),它是RFID中間件的一部分,負(fù)責(zé)對(duì)RFID閱讀器設(shè)備的管理。首先,對(duì)兩種設(shè)備代理層(Agent)進(jìn)行區(qū)分:Agentl和Agent0。
(1)AgentI——包含RFID中間件設(shè)備代理層的“設(shè)備管理服務(wù)”集合和一個(gè)“配置服務(wù)端”,Jini聯(lián)盟中至少有一個(gè)Agentl。
(2)AgentO——代表某臺(tái)在Jini中還未被配置的RFID中間件,具有一個(gè)“配置客戶端”。這里Agentl和AgentO都要有Jini環(huán)境,“配置服務(wù)端”和“配置客戶端”在后面將有詳細(xì)介紹。同上,將配置Agent所需要的服務(wù)統(tǒng)稱為“設(shè)備管理服務(wù)”。
在基于Jini技術(shù)的RFID中間件平臺(tái)中,對(duì)Agent的配置非常關(guān)鍵,其簡(jiǎn)單的配置流程如圖2所示。
在設(shè)備接入后.正常運(yùn)行的Agentl一旦監(jiān)聽到Jini的查找服務(wù)中有RFID設(shè)備服務(wù)對(duì)象進(jìn)行了注冊(cè),它會(huì)在Jini的查找服務(wù)(LookupService)上根據(jù)服務(wù)的屬性等信息來(lái)查詢?cè)O(shè)備服務(wù)對(duì)象,查找服務(wù)(LookupServiee)會(huì)將查詢后的結(jié)果返回.如果Agentl決定使用,查找服務(wù)(LookupServiee)會(huì)將服務(wù)的副本返回給Agentl,Agentl在從中獲得服務(wù)提供者信息,與服務(wù)提供者進(jìn)行通信,獲得RFID設(shè)備服務(wù)對(duì)象,同時(shí)定義生成各種設(shè)備管理服務(wù)的服務(wù)對(duì)象,并將這些服務(wù)對(duì)象與RFID設(shè)備服務(wù)對(duì)象綁定,在Jini上注冊(cè);而未被配置的Agent0在監(jiān)聽到Jini的查找服務(wù)中有RFID設(shè)備管理服務(wù)對(duì)象注冊(cè)后,會(huì)在Jini的查找服務(wù)(LookupServiee)上查詢相關(guān)的服務(wù)信息,查找服務(wù)
將查詢結(jié)果返回,如果Agent0認(rèn)為返回的服務(wù)信息符合,決定采用,查詢服務(wù)會(huì)將服務(wù)的副本返回給Agent0,從中獲得服務(wù)提供者(這里是Agentl)信息,與服務(wù)提供者通信,獲得服務(wù)實(shí)例,從而完成配置。
4 測(cè)試與分析
為了驗(yàn)證RFID設(shè)備在Jini平臺(tái)上的“即插即用”性,本文通過(guò)軟件模擬RFID閱讀器,將虛擬閱讀器按照J(rèn)ini的規(guī)范封裝成服務(wù),Jini的配置服務(wù)端(ContigServer)開啟,監(jiān)聽設(shè)備服務(wù)(VirtualReader)是否加入到Jini中,如圖2所示。
圖2等待設(shè)備加入
設(shè)備加入后,對(duì)設(shè)備進(jìn)行配置,如圖3所示。
圖3 配置Agent
設(shè)備加入到Jini之后,配置服務(wù)端監(jiān)聽到設(shè)備加入,會(huì)對(duì)設(shè)備的Agent進(jìn)行自動(dòng)配置,通過(guò)以上測(cè),可以看到RFID設(shè)備在Jini中的即插即用。
{$page$}
同時(shí)進(jìn)行性能上的檢測(cè)。對(duì)Agent的配置,以使用的方法是XML進(jìn)行配置,通過(guò)XML的方式將配置信息傳遞到Agent,Agent按照配置信息生成配置象并進(jìn)行映射。而現(xiàn)在在Jini平臺(tái)上采用RMI技術(shù)進(jìn)行配置,設(shè)備在Jini中被識(shí)別并注冊(cè)之后,配置服務(wù)端會(huì)以RMI的方式將生成的服務(wù)對(duì)象傳遞到Agent,從而完成配置。本文將兩種配置方式的性能進(jìn)行比較,測(cè)試結(jié)果如下:
一臺(tái)Manager服務(wù)器配置多個(gè)Agent,采用兩種方式進(jìn)行配置的:
(1)Xml方式進(jìn)行配置:配置1個(gè)Agent耗時(shí)9秒;配置2個(gè)Agent耗時(shí)19秒;配置3個(gè)Agent耗時(shí)26秒;配置4個(gè)Agent耗時(shí)37秒;配置5個(gè)Agent耗時(shí)45秒。
(2)RMI方式進(jìn)行配置:配置1個(gè)Agent耗時(shí)3秒;配置2個(gè)Agent耗時(shí)4秒;配置3個(gè)Agent耗時(shí)3秒;配置4個(gè)Agent耗時(shí)3秒;配置5個(gè)Agent耗時(shí)3秒。
圖4中黑實(shí)線條是采用XML方式對(duì)RFID中間件檢進(jìn)行配置的時(shí)間曲線,黑虛線條是采用RMI方式對(duì)RFID中間件進(jìn)行配置的時(shí)間曲線。由圖4中可以看出,隨著Agent數(shù)量的增加,采用XML方式進(jìn)行中間置的時(shí)間也會(huì)增加,近似成正比的增加,而采用對(duì)RMI方式進(jìn)行配置的時(shí)間不隨Agent數(shù)量的增加而增,幾乎保持水平。從而說(shuō)明了采用RMI的方式進(jìn)行間件配置時(shí),時(shí)間減少,效率增加,同時(shí)配置時(shí)間的長(zhǎng)短不會(huì)隨著Agent的增加而改變。
通過(guò)以上的測(cè)試分析,可以看出在Jini中對(duì)RFID中間件進(jìn)行配置的效率得到了提高。本文是在對(duì)網(wǎng)絡(luò)的擁塞考慮較少的情況下進(jìn)行的測(cè)試,在實(shí)際中會(huì)受到網(wǎng)絡(luò)環(huán)境的影響,數(shù)據(jù)會(huì)有所偏差。當(dāng)然,在兩種方式的比較中,雖然XML方式的效率較低,但這種配置方式不受編程語(yǔ)言、操作平臺(tái)等限制,而RMI方式只能適用于Java語(yǔ)言的編程與實(shí)現(xiàn),所以在本文中將兩種方式都加以保留。
5 結(jié)束語(yǔ)
本文通過(guò)對(duì)傳統(tǒng)的應(yīng)用系統(tǒng)模式和分布式計(jì)算模式的研究和比較,對(duì)傳統(tǒng)的RFID中間件進(jìn)行了分析,提出了RFID中間件在分布式環(huán)境下進(jìn)行管理的思想。通過(guò)引入Jini技術(shù),設(shè)計(jì)基于Jini技術(shù)的RFID中間件平臺(tái)架構(gòu)并介紹其配置與管理方案。通過(guò)模擬實(shí)驗(yàn)驗(yàn)證了該中間件的正確性。
在RFID中間件與Jini技術(shù)結(jié)合的研究中,筆者的進(jìn)一步工作將加強(qiáng)RFID中間件在Jini中的管理優(yōu)化。在本文中只是因?yàn)槌霈F(xiàn)了實(shí)際的問(wèn)題,針對(duì)該問(wèn)題進(jìn)行了改進(jìn),但為了更加優(yōu)化管理,對(duì)多個(gè)Manager接入Jini聯(lián)盟時(shí),可以按照優(yōu)先級(jí)進(jìn)行管理,并設(shè)計(jì)快速選擇的調(diào)度算法;可以更好地利用租賃機(jī)制,讓租期長(zhǎng)短更合理,使資源的分配更合理;同時(shí),在需要的時(shí)候,還可以利用Jini的事務(wù)管理機(jī)制,在Jini聯(lián)盟中實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)。