亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于SpringDM的動(dòng)態(tài)模型及其在RFID中間件持久層的應(yīng)用的制作方法

文檔序號(hào):6606768閱讀:186來源:國知局
專利名稱:基于SpringDM的動(dòng)態(tài)模型及其在RFID中間件持久層的應(yīng)用的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種J2EE持久層的構(gòu)件化方法及其應(yīng)用,特別是在RFID中間件持久 層的應(yīng)用。
背景技術(shù)
基于構(gòu)件的軟件開發(fā)(Component-Based Software Development, CBSD)和面向 服務(wù)體系結(jié)構(gòu)(Service Oriented Architecture, S0A)的思想和技術(shù)提高了軟件的復(fù)用 程度和設(shè)計(jì)、部署的靈活性,已成為現(xiàn)代軟件工程十分提倡的模型。現(xiàn)有技術(shù)開發(fā)了基于 OSGi (Open Service Gateway Initiative)框架的可重構(gòu)RFID中間件,其中RFID中間件的 設(shè)備管理層和應(yīng)用層事件處理層、Web表示層及工作流引擎都已經(jīng)成功地完成了構(gòu)件化開 發(fā),實(shí)現(xiàn)了 RFID中間件核心部分及表示層可定制、可重構(gòu)的目標(biāo)。在傳統(tǒng)的企業(yè)應(yīng)用中,用于數(shù)據(jù)訪問的代碼在代碼總量中總是占有相當(dāng)大的比 重,其復(fù)雜度和開發(fā)工作量也是首屈一指的。雖然在OSGi的規(guī)范中也有負(fù)責(zé)持久數(shù)據(jù)、屬 性的服務(wù)規(guī)范,但對(duì)于企業(yè)級(jí)應(yīng)用而言顯然是不夠的。因此,為了支撐可重構(gòu)的RFID中間 件持久層的企業(yè)級(jí)應(yīng)用,就需要將J2EE持久層框架集成到OSGi中來。然而,目前多數(shù)的 J2EE持久層框架并不兼容OSGi。也有一些團(tuán)隊(duì)在做部分流行的J2EE開源框架與OSGi的 集成工作,但他們的實(shí)現(xiàn)風(fēng)格并不統(tǒng)一。在RFID中間件這類企業(yè)級(jí)的持久層構(gòu)件化開發(fā)過 程中,又經(jīng)常可能需要選擇不同的持久化策略,但由于缺少統(tǒng)一和高效的部署模型的支持, 導(dǎo)致策略之間切換起來具有相當(dāng)?shù)碾y度。然而目前,持久層多訪問數(shù)據(jù)策略切換的研究仍 處于空白階段。Spring框架是一套領(lǐng)先而完備的Java/J2EE應(yīng)用框架。它提供了一個(gè)輕量 級(jí)的容器和一種非侵入性編程模型,它基于IOCanversion of Control,控制反轉(zhuǎn))、 AOP (Aspect-Oriented Programming,面向方面編程)和可移植服務(wù)抽取。SpringDM正是致 力于整合Spring框架和OSGi平臺(tái),它集兩家之所長,允許透明的導(dǎo)入和導(dǎo)出OSGi服務(wù)、進(jìn) 行生命周期管理和控制。SpringDM使得編寫一個(gè)可部署在OSGi執(zhí)行環(huán)境下的Spring應(yīng)用 程序變得輕松,同時(shí)它也可以利用OSGi框架提供的服務(wù)。SpringDM提供了一個(gè)基于OSGi 內(nèi)核、OSGi Bundle模式的IoC模式的應(yīng)用。Spring框架的IoC特性通過SpringDM在OSGi 之上得到了很好的應(yīng)用。綜上所述,將SpringDM引入到OSGi框架之中,可以出色的完成RFID中間件對(duì)其 持久層的特殊要求,可以達(dá)到數(shù)據(jù)訪問策略可以動(dòng)態(tài)隨意切換的目的。

發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的在于解決傳統(tǒng)的J2EE持久層框架如Hibernate、iBatis等,均 不具備動(dòng)態(tài)切換的特性,提出了基于SpringDM的框架動(dòng)態(tài)切換模型,該模型可以作為J2EE 持久層框架在OSGi框架上的通用部署形式。
3
本發(fā)明的另一目的在于實(shí)現(xiàn)RFID中間件持久層的構(gòu)件化,由于企業(yè)級(jí)的RFID中 間件要求其數(shù)據(jù)持久層能在多種數(shù)據(jù)訪問策略之間進(jìn)行靈活的切換,因此在基于SpringDM 的框架動(dòng)態(tài)切換模型基礎(chǔ)之上實(shí)現(xiàn)了 RFID中間件持久層的構(gòu)件化,以完善RFID中間件可 定制,可擴(kuò)展的應(yīng)用需求。為了實(shí)現(xiàn)發(fā)明目的一,采用的技術(shù)方案如下一種基于SpringDM的動(dòng)態(tài)模型,該模型集成了多種持久層數(shù)據(jù)訪問策略,并且以 發(fā)布SpringDM服務(wù)的形式為外界提供持久層服務(wù)。該動(dòng)態(tài)模型可以完成多種數(shù)據(jù)訪問策 略的隨意切換,可以作為J2EE持久層框架部署在OSGi中的通用形式,為多框架的OSGi化 提供支持。具體包括如下的操作1)將J2EE持久層數(shù)據(jù)訪問策略組裝成OSGi構(gòu)件;2)為上述的OSGi構(gòu)件創(chuàng)建用于發(fā)布持久層服務(wù)的構(gòu)件,該服務(wù)以SpringDM服務(wù) Bean的形式發(fā)布;3)將上述服務(wù)進(jìn)行封裝,屏蔽不同數(shù)據(jù)訪問策略的實(shí)現(xiàn)細(xì)節(jié),為外界提供統(tǒng)一的 調(diào)用接口。為了實(shí)現(xiàn)發(fā)明目的二,采用的技術(shù)方案如下一種基于SpringDM的動(dòng)態(tài)模型在RFID中間件持久層的應(yīng)用,包括如下操作1)將Hibernate框架,iBatis框架及數(shù)據(jù)訪問策略JDBC組裝成OSGi構(gòu)件,以集 成到OSGi框架上;2)創(chuàng)建 OSGi 構(gòu)件,分別將 Hibernate 框架中的 Sess ionFactory 接口,iBatis 中 的 SqlMapClient 接口及 JDBC 中的 DataSource 接口包裝成 Spring Bean,并且以 SpringDM 的將它們形式發(fā)布成服務(wù);3)創(chuàng)建OSGi構(gòu)件,將上述的接口服務(wù)依次封裝成DAO服務(wù),屏蔽底層實(shí)現(xiàn)細(xì)節(jié),并 將該DAO服務(wù)以SpringDM的形式發(fā)布。本發(fā)明提供一種基于SpringDM的動(dòng)態(tài)模型作為J2EE持久層框架在OSGi框架上 的通用部署形式,用于解決OSGi框架與J2EE開源框架集成時(shí)普遍存在的技術(shù)難點(diǎn)及傳統(tǒng) 持久層框架不具備的動(dòng)態(tài)切換特性的缺點(diǎn)。本發(fā)明解決現(xiàn)有RFID中間件持久層在靈活性、 可定制性以及可擴(kuò)展性上存在的問題,提供一套基于框架動(dòng)態(tài)切換模型的構(gòu)件化方法,將 RFID中間件持久層劃分為RFID中間件基礎(chǔ)構(gòu)件,J2EE持久層框架連接工廠構(gòu)件,持久層 服務(wù)接口構(gòu)件,接口實(shí)現(xiàn)構(gòu)件及其它RFID中間件用戶構(gòu)件。實(shí)現(xiàn)了 RFID中間件持久層的 構(gòu)件化,滿足RFID中間件可定制、可擴(kuò)展的應(yīng)用需求。


圖1為基于SpringDM的多持久層框架構(gòu)件化系統(tǒng)架構(gòu)圖;圖2為RFID中間件持久層基于動(dòng)態(tài)模型實(shí)現(xiàn)的各種持久層服務(wù)。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的說明。 圖1為基于SpringDM的多持久層框架構(gòu)件化系統(tǒng)架構(gòu)圖。為了滿足RFID中間件 對(duì)不同訪問數(shù)據(jù)策略的需要,應(yīng)當(dāng)在RFID中間件中集成多個(gè)J2EE數(shù)據(jù)訪問策略,本發(fā)明共將框架Hibernate,iBatis及JDBC集成在了 RFID中間件的持久層實(shí)現(xiàn)中。所述多框架集成步驟如下1)封裝各個(gè)框架的源碼包成Bundle,在源碼包中的Manifest文件中添加export package項(xiàng),將框架的源碼包暴露出來;2)將數(shù)據(jù)庫驅(qū)動(dòng)源碼打包成Bundle,同時(shí)在源碼包中的Manifest文件中添加 export package項(xiàng),將驅(qū)動(dòng)的核心源碼包暴露出來;3)創(chuàng)建用于發(fā)布Hibernate框架中的SessionFactory接口,iBatis框架的 SqlMapClient接口,及JDBC中的DataSource接口的OSGi Bundle,它應(yīng)當(dāng)依賴于上述構(gòu) 件所導(dǎo)出的包,并且在該Bundle中的Spring配置文件中聲明OSGiService,將這些接口以 SpringDM服務(wù)的形式發(fā)布出去;對(duì)Hibernate框架,發(fā)布SessionFactory接口的具體方法如下創(chuàng)建SessionFactory接口發(fā)布構(gòu)件,并且在該構(gòu)件的META-INF/Spring文件下的 *. xml文件中,添加如下的內(nèi)容<osgiservice ref = “ sessionFactory“ interface = “ org. hibernate. SessionFactory“ />< ! —Hibernate SessionFactory—><bean id = “ sessionFactory"class = “ org. springframework. orm. hibernate3. LocalSessionFactoryBean" >〈property name = " dataSource" ><reflocal = " dataSource" /></property>< ! —Must references all OR map ping files.—>〈property name=" mappingResources" ><list><value>edu/scut/emos/rfid/model/user. hbm. xml</value></list></property>〈property name=" hibernateProperties" ><ref local=" hibernateProperties" /></property></bean>經(jīng)過這一步驟之后,其它的構(gòu)件中就可以直接使用<osgi!reference id = “ sessionFactory “ interface = “ org. hibernate. SessionFactory" />在其它的構(gòu)件中引用這個(gè)服務(wù)。而對(duì)JDBC,發(fā)布DataSource接口的方法具體如下創(chuàng)建接口發(fā)布構(gòu)件,在該構(gòu)件的META-INF/spring的xml文件中添加如下的內(nèi) 容
<osgiserviceref =“dataSource“interface = “ org. springframework. jdbc. datasource. DriverManagerDataSource“ /><bean id = “ dataSource“class = “ org. springframework. jdbc. datasource. DriverManagerDataSource" >〈property name = " driverClassName" value = " com. mysql. jdbc. Driver" />〈property name = " url " value = " jdbc:mysql:// localhost:3306/rfid" />〈property name=" username" value=" root" />〈property name = " password" value = " " /></bean>這樣dataSource就被當(dāng)作了 SpringDM服務(wù)發(fā)布了出去;而對(duì)iBatis框架,SqlMapClient的發(fā)布方法如下創(chuàng)建接口發(fā)布構(gòu)件,并且在該構(gòu)件的META-INF/Spring文件下的xml文件中,添 加如下的內(nèi)容<osgiservice ref = “ sqlMapClient “interface = “ org. springframework. orm. ibatis. SqlMapClientFactoryBean“ />〈bean id =〃 sqlMapClient"class=" org. springframework. orm. ibatis. SqlMapClientFactoryBean" >〈propertyname ="configLocation"value =" META-INF/spring/SqlMapConfig. xml" /></bean>里面所提到的SqlMapConfig. xml便是普通的iBatis配置文件,其中又記錄了所 有的映射文件;4)DAO(DataAccess Object,數(shù)據(jù)訪問對(duì)象)是一種常用的設(shè)計(jì)模式,以便將低級(jí) 別的數(shù)據(jù)訪問邏輯與高級(jí)別的業(yè)務(wù)邏輯分離。因此在RFID中間件應(yīng)用中,創(chuàng)建OSGi構(gòu)件, 將上述的接口服務(wù)依次封裝成DAO服務(wù),屏蔽底層實(shí)現(xiàn)細(xì)節(jié),并將該DAO服務(wù)以SpringDM 的形式發(fā)布。根據(jù)“接口與實(shí)現(xiàn)分離”的原理,首先在應(yīng)用中創(chuàng)建服務(wù)聲明構(gòu)件,這個(gè)構(gòu)件用來 聲明dao服務(wù)所提供的接口,然后再創(chuàng)建dao服務(wù)實(shí)現(xiàn)構(gòu)件,并且在構(gòu)件中創(chuàng)建Dao類,用 來封裝持久層服務(wù)。對(duì)Hibernate框架,具體的構(gòu)件創(chuàng)建方法如下上述的Dao類它繼承自org. springframework. orm. hibernate3. support. HibernateDaoSupport 類并實(shí)現(xiàn)dao服務(wù)接口,這樣它就會(huì)有默認(rèn)成員變量sessionFactory。在META-INF/Spring文件 夾下的*. xml中加入如下的內(nèi)容<osgiservice ref =“ hibernateDao“interface = “ edu. scut. emos. rfid. db. service. IService “ /><bean id =〃 hibernateDao" scope =〃 bundle"class = " edu. scut. emos. rf id. db. hibernatedao. HibernateDao " >〈property name=" sessionFactory" ><ref local=" sessionFactory" /></property></bean><osgi:reference id = " sessionFactory " interface = " org. hibernate. SessionFactory" />在這個(gè)構(gòu)件中主要是引用了上述構(gòu)件發(fā)布的sessonFactory服務(wù),并且包裝成自 己的DAO服務(wù),使用服務(wù)的方式又將自己發(fā)布了出去。這樣其它的客戶構(gòu)件就可以通過<osgi!reference id = “ hibernateDao“ interface = “ edu. scut. emos. rfid. db. service. IService“ />來引用這個(gè)dao服務(wù)了。而對(duì)JDBC及iBatis而言,具體實(shí)現(xiàn)同上述Hibernate框架大同小異,因此不再贅 述。圖2為RFID中間件持久層基于動(dòng)態(tài)模型實(shí)現(xiàn)的各種持久層服務(wù)。在完成了上述 的幾個(gè)步驟后,OSGi總線中就已經(jīng)存在JDBC的DataSource服務(wù)、iBatis的SqlMapClient 服務(wù),Hibernate的SessionFactory服務(wù)及基于上述服務(wù)的JDBCDA0和iBatis DA0, Hibernate DA0,而其它的聲明為Spring特性的構(gòu)件均可以直接引用這些服務(wù),或者根據(jù)自 己的需要?jiǎng)?chuàng)建新的DAO對(duì)象,或者直接使用DAO服務(wù)進(jìn)行數(shù)據(jù)訪問,而這些DAO服務(wù)可以被 視為統(tǒng)一的持久層服務(wù)接口,為其它的用戶構(gòu)件提供統(tǒng)一的持久層服務(wù)調(diào)用,這樣就屏蔽 了低層因不同數(shù)據(jù)訪問策略而產(chǎn)生的各種差異。用戶就可以自由的選擇基于何種數(shù)據(jù)訪問 策略去實(shí)現(xiàn)持久化層,而在它們之間實(shí)現(xiàn)切換也非常簡單,只需要引用不同的服務(wù)就可以 采用不同的解決方案。而之間的具體實(shí)現(xiàn)對(duì)用戶是透明的,用戶所看到的只是SpringDM架 構(gòu)上的可以被引用的服務(wù)。這樣,本方案不僅在細(xì)粒度上實(shí)現(xiàn)了接口與實(shí)現(xiàn)的分離,而且在更高級(jí)的層次上 實(shí)現(xiàn)了多種數(shù)據(jù)訪問服務(wù)的自由透明的切換,使得基于OSGi的RFID中間件持久層擁有了 更高的健壯性及多樣性。
權(quán)利要求
一種基于SpringDM的動(dòng)態(tài)模型,其特征在于該動(dòng)態(tài)模型集成了兩種或兩種以上持久層數(shù)據(jù)訪問策略,并且以發(fā)布SpringDM服務(wù)的形式為外界提供持久層服務(wù),所述動(dòng)態(tài)模型作為J2EE持久層框架部署在OSGi中的通用形式,為多框架的OSGi化提供支持,并能夠完成多種數(shù)據(jù)訪問策略的隨意切換。
2.根據(jù)權(quán)利要求1所述的基于SpringDM的動(dòng)態(tài)模型,其特征在于所述動(dòng)態(tài)模型的具體 工作流程包括如下步驟1)將J2EE持久層數(shù)據(jù)訪問策略組裝成OSGi構(gòu)件;2)為步驟1)所建立的OSGi構(gòu)件創(chuàng)建用于發(fā)布持久層服務(wù)的構(gòu)件,并以SpringDM服務(wù) Bean的形式發(fā)布;3)將服務(wù)進(jìn)行封裝,屏蔽不同數(shù)據(jù)訪問策略的實(shí)現(xiàn)細(xì)節(jié),為外界提供統(tǒng)一的調(diào)用接口。
3.根據(jù)權(quán)利要求1或2所述的基于SpringDM的動(dòng)態(tài)模型,其特征在于所述動(dòng)態(tài)模型集 成的持久層數(shù)據(jù)訪問策略包括JDBC、Hibernate、iBatis。
4.一種權(quán)利要求1或2或3所述基于SpringDM的動(dòng)態(tài)模型在RFID中間件持久層的應(yīng) 用,其特征在于將持久層數(shù)據(jù)訪問策略JDBC,持久層數(shù)據(jù)訪問框架Hibernate,iBatis同時(shí) 集成在了 OSGi框架之上,并且以發(fā)布SpringDM服務(wù)的形式,為RFID中間件提供持久層服 務(wù),RFID中間件能夠通過選擇不同的服務(wù)來實(shí)現(xiàn)數(shù)據(jù)訪問策略的隨機(jī)切換。
5.根據(jù)權(quán)利要求4所述的基于SpringDM的動(dòng)態(tài)模型在RFID中間件持久層的應(yīng)用,其 特征在于所述RFID中間件持久層構(gòu)件化開發(fā)過程包括如下步驟1)將Hibernate框架,iBatis框架及數(shù)據(jù)訪問策略JDBC組裝成OSGi構(gòu)件,以集成到 OSGi框架上;2)創(chuàng)建OSGi構(gòu)件,分別將Hibernate框架中的SessionFactory接口,iBatis中的 SqlMapClient 接口及 JDBC 中的 DataSource 接口包裝成 Spring Bean,并且以 SpringDM 的 將它們形式發(fā)布成服務(wù);3)創(chuàng)建OSGi構(gòu)件,將上述的接口服務(wù)依次封裝成DAO服務(wù),屏蔽底層實(shí)現(xiàn)細(xì)節(jié),并將該 DAO服務(wù)以SpringDM的形式發(fā)布。
全文摘要
本發(fā)明提供了一種基于SpringDM的框架動(dòng)態(tài)切換模型,可以將多種持久層數(shù)據(jù)訪問策略部署在該動(dòng)態(tài)模型之上,并且以發(fā)布SpringDM服務(wù)的形式,為外界提供持久層服務(wù)。該動(dòng)態(tài)模型可以完成多種數(shù)據(jù)訪問策略的隨意切換,可以作為J2EE持久層框架部署在OSGi中的通用形式,為多框架的OSGi化提供支持。本發(fā)明將該動(dòng)態(tài)模型應(yīng)用在了RFID中間件的持久層實(shí)現(xiàn)中,由于企業(yè)級(jí)的RFID中間件要求其數(shù)據(jù)持久層能在多種數(shù)據(jù)訪問策略之間進(jìn)行靈活的切換,因此將持久層數(shù)據(jù)訪問策略JDBC,持久層數(shù)據(jù)訪問框架Hibernate,iBatis同時(shí)集成在了OSGi框架之上,并且以發(fā)布SpringDM服務(wù)的形式,為RFID中間件提供持久層服務(wù),RFID中間件可以通過選擇不同的服務(wù)來實(shí)現(xiàn)數(shù)據(jù)訪問策略的隨機(jī)切換。
文檔編號(hào)G06F9/44GK101907993SQ20101023966
公開日2010年12月8日 申請(qǐng)日期2010年7月27日 優(yōu)先權(quán)日2010年7月27日
發(fā)明者劉發(fā)貴, 楊平安, 林躍東, 申維 申請(qǐng)人:華南理工大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1