新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 無線射頻識別RFID中間件技術

        無線射頻識別RFID中間件技術

        作者: 時間:2010-10-20 來源:網絡 收藏

          3.3狀態(tài)模式模擬規(guī)則的狀態(tài)機

          規(guī)則在其生命周期中擁有不同的狀態(tài),在每個狀態(tài)對一系列操作都有著不同的表現(xiàn),于是可以利用狀態(tài)模式(state)來模擬規(guī)則的狀態(tài)機,將不同狀態(tài)的不同表現(xiàn)作為可變化因素封裝起來,參見代碼示例。

          規(guī)則狀態(tài)接口ECState:

          publicinterfaceECState{

          voidsubscribe(StringspecName,String uri);

          voidunsubscribe(StringspecName,String uri);

        EPCReportspoll(StringspecName);

          }

          未被請求狀態(tài)類ECStateUnrequested:

          publicclassECStateUnrequestedimplements ECState {

          }

          已被請求狀態(tài)類ECStateRequested:

          publicclassECStateRrequestedimplements ECState {

          }

          激活狀態(tài)類ECStateActive:

          publicclassECStateActiveimplements ECState {

          }

          規(guī)則類ECSpec:

          publicclassECSpec{

          privateECStatestate;

          publicECStategetState(){

          return state;

          }

          publicvoidsetState(ECStatestate) {

          this.state = state;

          }

          }

          這樣,在針對規(guī)則實施相應操作的時候,就可以直接把相應操作委派給其狀態(tài)屬性(ECState)去做即可。比如,ECSpec的subscribe操作,只需一行代碼“state.suscribe(specName, uri);”即可。其中,specName、uri為臨時變量,具體取值在方法調用之前確定。

          由面向對象的多態(tài)性特征,根據state字段目前所指向的對象來動態(tài)確定由ECState接口的哪一個具體的實現(xiàn)類的代碼來完成工作。ECState接口的實現(xiàn)類根據實際情況確定是否需要在處理過程中修改ECSpec對象的狀態(tài)屬性(state),此處在應用狀態(tài)模式時,需要設計多個定時器類來輔助狀態(tài)機的跳轉[3]。

          3.4策略模式切換多種報告上傳、命令下發(fā)方式

          事件周期結束之后,需要組裝報告上傳給規(guī)則的預訂者,即應用系統(tǒng)。上傳的方式有多種,如HTTP、Socket、JMS等等。的核心邏輯處理模塊不應該關心具體的上傳技術,相應工作應交給報告上傳模塊來做,核心邏輯處理模塊只須完成自己的工作,然后把一定格式的數(shù)據通過報告上傳模塊發(fā)送,參見代碼示例。

          報告發(fā)送接口ReportSender:

          publicinterfaceReportSender{

          voidsendReport(ECReportsreports);

          }

          通過Http方式發(fā)送報告的ReportSender接口實現(xiàn)類ReportSenderByHttp:

          publicclassReportSenderByHttpimplements ReportSender {

          public void sendReport(ECReports reports) {

          }

          }

          通過Socket方式發(fā)送報告的ReportSender接口實現(xiàn)類ReportSenderBySocket:

          publicclassReportSenderBySocketimplements ReportSender {

          publicvoidsendReport(ECReportsreports) {

          }

          }

          通過JMS方式發(fā)送報告的ReportSender接口實現(xiàn)類ReportSenderByJms:

          publicclassReportSenderByJmsimplements ReportSender {

          publicvoidsendReport(ECReportsreports) {

          }

          }

          報告發(fā)送示例客戶端類

          SendReportWorker:

          publicclassSendReportWorker{

          privateReportSendersender;

          privateECReportsreports;

          publicvoidsetReports(ECReportsreports) {

          this.reports = reports;

          }

          publicstaticvoidmain(String[] args) {

          SendReportWorker worker = new

          SendReportWorker();

          worker.sender.sendReport(reports);

          }

          publicvoidsetSender(ReportSendersender) {

          this.sender = sender;

          }

          }

          這樣,發(fā)送消息的工人類可通過設置ReportSender的實例來靈活設置其發(fā)送方式。

          同樣,的清點命令下發(fā),即中間件與之間的接口,也存在多種方式,如Socket、SOAP等,也可采用類似的設計。

          3.5觀察者模式處理上報消息

          的消息上報轉換為消息對象,對消息對象的接收、分發(fā)可采用經典的觀察者模式實現(xiàn)。 4 中間件發(fā)展方向

          4.1與管理系統(tǒng)的融合

          中間件是閱讀器與后臺應用系統(tǒng)之間的橋梁,而閱讀器通常有設備管理需求,比如軟件版本下載、設備告警管理、參數(shù)配置等等,閱讀器管理系統(tǒng)也是直接與閱讀器交互的軟件模塊。于是,如何處理好中間件與閱讀器管理系統(tǒng)之間的關系成為一個亟待解決的問題。

          從軟件部署(部署在同一臺主機上)、軟件模塊重用(重用閱讀器通信模塊)等角度考慮,中間件與閱讀器管理系統(tǒng)的融合勢必成為中間件本身的一個優(yōu)勢。

          4.2對多標準的支持

          RFID技術在國內外的發(fā)展和應用方興未艾,國際上多個標準組織都試圖統(tǒng)一RFID標準,但在一定的時期內,勢必出現(xiàn)多并存的情況。于是,對多標準的支持也是中間件系統(tǒng)的一個發(fā)展方向。

          4.3對多廠商閱讀器的支持

          中間件與閱讀器之間的接口、通信方式以及信息格式,也無法做到統(tǒng)一標準。對多廠商閱讀器的支持、至少對少數(shù)幾家主流廠商的閱讀器的支持,已經是對中間件所提出的基本要求。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 林周县| 北宁市| 阳原县| 宜良县| 浏阳市| 图木舒克市| 阿拉善左旗| 陆河县| 噶尔县| 大荔县| 华亭县| 平安县| 体育| 兴安县| 沅陵县| 广昌县| 济源市| 杭锦后旗| 北宁市| 大关县| 柘荣县| 涞水县| 内黄县| 米脂县| 上栗县| 弥渡县| 文安县| 苍梧县| 金昌市| 石楼县| 宁都县| 上饶市| 尉氏县| 玉溪市| 紫云| 化德县| 通辽市| 黑龙江省| 巴彦淖尔市| 开封市| 湘乡市|