基于SOA應(yīng)用JMX和JMS技術(shù)的RFID中間件設(shè)計(jì)
企業(yè)實(shí)施RFID方案的最終目的是將RFID產(chǎn)生的海量信息為業(yè)務(wù)所用。這就需要解決企業(yè)現(xiàn)有的業(yè)務(wù)系統(tǒng)如何與RFID系統(tǒng)接口的問題,包括連接RFID設(shè)備、處理RFID數(shù)據(jù)、將其轉(zhuǎn)換成業(yè)務(wù)信息等。為了避免因標(biāo)簽種類變化、系統(tǒng)業(yè)務(wù)邏輯改變而需要重新編寫業(yè)務(wù)信息的情況,需要將RFID硬件模塊的連接控制、中間數(shù)據(jù)處理與上層應(yīng)用軟件分開,因此引入了RFID中間件的概念。
此外,利用SOA系統(tǒng)具有可擴(kuò)展性高、可維護(hù)性好的特點(diǎn),以便為用戶提供靈活的維護(hù)服務(wù),還引入了面向服務(wù)體系架構(gòu)SOA(Service Oriented Architecutures)。
基于上述分析,本文提出了一種基于SOA的RFID中間件方案。該方案可把各個(gè)應(yīng)用RFID技術(shù)的功能抽象成服務(wù),應(yīng)用基于J2EE構(gòu)建方法,綜合應(yīng)用JMX、JMS、Struts等技術(shù)。企業(yè)應(yīng)用系統(tǒng)通過請(qǐng)求服務(wù)的方式來獲取RFID中間件提供的服務(wù)。用XML進(jìn)行數(shù)據(jù)傳輸,并提供Web Service接口。
1 技術(shù)基礎(chǔ)
1.1 RFID中間件
RFID中間件是實(shí)現(xiàn)RFID硬件設(shè)備與應(yīng)用系統(tǒng)之間數(shù)據(jù)傳輸、過濾、數(shù)據(jù)格式轉(zhuǎn)換的一種中間程序,將RFID閱讀器讀取的各種數(shù)據(jù)信息,經(jīng)過中間件提取、解密、過濾、格式轉(zhuǎn)換、導(dǎo)入企業(yè)的管理信息系統(tǒng),并通過應(yīng)用系統(tǒng)反映在程序界面上,供操作者瀏覽、選擇、修改、查詢。中間件技術(shù)也降低了應(yīng)用開發(fā)的難度,使開發(fā)者不需要直接面對(duì)底層架構(gòu),而是通過中間件進(jìn)行調(diào)用。
RFID中間件是一種消息導(dǎo)向的軟件中間件,信息是以消息的形式從一個(gè)程序模塊傳遞到另一個(gè)或多個(gè)程序模塊。消息可以非同步的方式傳送,所以傳送者不必等待回應(yīng)。RFID中間件是在企業(yè)應(yīng)用原有的中間件發(fā)展的基礎(chǔ)上,結(jié)合自身應(yīng)用特性進(jìn)一步擴(kuò)展并深化了中間件的應(yīng)用,使得RFID應(yīng)用系統(tǒng)的開發(fā)變得更容易,提高了軟件的可移植性,增強(qiáng)了系統(tǒng)的可維護(hù)性和可靠性,所以它的架構(gòu)設(shè)計(jì)解決方案是RFID應(yīng)用的一項(xiàng)極為重要的核心技術(shù)[1]。
目前提供RFID中間件平臺(tái)的廠商主要有IBM、Oracle、Microsoft、SAP、Sun公司。對(duì)于這些廠商,RFID中間件只是其現(xiàn)有軟件的擴(kuò)展,其RFID產(chǎn)品可以迅速方便地與各自現(xiàn)有的軟件產(chǎn)品線集成在一起。但缺點(diǎn)是其產(chǎn)品對(duì)該廠商其他軟件產(chǎn)品的依賴性比較大。
1.2 面向服務(wù)的體系結(jié)構(gòu)SOA
面向服務(wù)的體系結(jié)構(gòu)是一種技術(shù)架構(gòu)風(fēng)格,它代表了一種開放的、敏捷的、可擴(kuò)展的、可組合的架構(gòu)[2],定義了服務(wù)提供者和消費(fèi)者之間的松散耦合關(guān)系。其業(yè)務(wù)敏捷的特點(diǎn),幫助企業(yè)把業(yè)務(wù)變得更加靈活,能夠適時(shí)、快速地響應(yīng)變化。SOA的核心概念就是服務(wù)[3],其基本結(jié)構(gòu)如圖1所示。其中包含服務(wù)的3個(gè)基本角色:服務(wù)提供者、服務(wù)請(qǐng)求者和服務(wù)注冊(cè)。在這些角色之間使用了3種操作:服務(wù)發(fā)布、服務(wù)發(fā)現(xiàn)和服務(wù)綁定。作為SOA的一種實(shí)現(xiàn)技術(shù),Web Services提供了基于XML的標(biāo)準(zhǔn)接口,具有完好的封裝性、松散的耦合性、協(xié)議規(guī)范的標(biāo)準(zhǔn)性以及高度的可集成性等特點(diǎn),能夠良好地滿足SOA應(yīng)用模式的需求。本文引用地址:http://m.butianyuan.cn/article/157365.htm
1.3 JMX和JMS
Java管理擴(kuò)展JMX(Java Management Extensions)是一個(gè)為應(yīng)用程序、設(shè)備、系統(tǒng)等植入管理功能的框架。在JMX規(guī)范中,管理組件是一個(gè)能代表管理資源的Java對(duì)象,遵從一定的設(shè)計(jì)模式,實(shí)現(xiàn)該規(guī)范定義的特定的接口。該定義保證了所有的管理組件以一種標(biāo)準(zhǔn)的方式來表示被管理資源。管理接口就是被管理資源暴露出的一些信息,通過對(duì)這些信息的修改能夠控制被管理資源。管理接口包括:能被接觸的屬性值、能夠執(zhí)行的操作、能發(fā)出的通知事件等[4]。
JMS(Java Message Service)是訪問企業(yè)消息系統(tǒng)的標(biāo)準(zhǔn)API,定義了Java中訪問消息中間件的接口,但JMS只是接口,并沒有給予實(shí)現(xiàn),實(shí)現(xiàn)JMS接口的消息中間件稱為JMS提供者(JMS Provider)。在JMS框架中運(yùn)轉(zhuǎn)的方法如下:
(1)得到1個(gè)JNDI初始化上下文(Context)。
(2)根據(jù)上下文以查找1個(gè)連接工廠。
(3)從連接工廠得到1個(gè)連接(Connect)。
(4)通過連接以建立1個(gè)會(huì)話(Session)。
(5)查找目的地(Topic/Queue)。
(6)根據(jù)會(huì)話以及目的地以建立消息制造者(TopicPub
lisher/QueueSender)和消費(fèi)者(TopicSubscrib-er/QueueReceiver)。
評(píng)論