新四季網

一種熱部署實體類組件的製作方法

2023-09-16 07:22:50 1

專利名稱:一種熱部署實體類組件的製作方法
技術領域:
本發明所述的熱部署實體類組件,是對Java語言中ORM (Object Relational Mapping,對象關係映射)功能的一種實現方 式,用於實現數字媒體資源的數據信息交換和數據傳輸。
技術背景ORM是一種為了解決面向對象與關係資料庫中存在的互不 匹配問題的技術,在多種程式語言中都有所應用的功能模塊。 Hibernate (開放原始碼產品,在市場上是免費且廣泛應用的)就 是在Java領域中ORM功能的典型實現。Hibernate,呈現的是靜 態實體Bean到資料庫的映射,而靜態實體Bean是指程序運行之 前已經預先定義好的具有一系列屬性的數據類型,在運行時不具 備擴展性,從而並不支持對動態實體Bean的熱部署。而所謂熱部署,也稱熱管理,包含但不限於程序、插件、數 據/資料庫、或模塊等等的熱加載、熱安裝、和熱御載,亦即當系 統或者應用程式的結構、功能、內含的數據等有了增加或者減少 等人為或非人為的改變後,無須重啟整個該系統軟體、資料庫、 者應用程式、或該其他系統,也能基本維持該系統或者應用程式 當前正在運行時的狀態,在照樣發揮其原有功能情況下,同時也 得以執行新功能的過程。動態實體Bean是指在程序運行時創建的實體Bean,運行時 具有很高的擴展性,可對屬性內容進行增加。如果不支持動態實體Bean,那麼缺陷是明顯的,即,在業務 實體模型發生變化時,應用Hibernate的系統或者應用程式,就 不能在所部署的系統未重啟的情況下重新載入相應的實體類,從 而無法即時完成實體模型到資料庫表結構的映射。 發明內容本發明主要針對Java Entity Bean,即Java實體類的熱部署目標。這是--種用於熱部署實體類的軟體組件,命名為Yangtse, 基於如下構架以及所帶來的優點,來解決上述缺陷。Yangtse參照JPA 1.0 ( S卩JEE5中關於ORM的規範)中的規 範,來簡化實現ORM。實現Yangtse方案的內容如下先引入一個概念,類加載器,即ClassLoader。在Java中編 譯後的Java類文件是一個imicode,即統一碼文件,當程序運行 時JVM, S卩Java虛擬機(Java Virtual Machine),會根據實際需 求去査找類文件,先把其變成字節碼流,然後把它編譯成可執行 的二進位流,並且放到緩存中,在這個過程中,如果此類文件己 經被加載和編譯,以後使用此類時,將從緩存中直接取出,這樣 一個過程在JVM中是由一個類完成的,這個類就叫類加載器。從而,在Java中對類實現熱部署的原理,就是通過類加載器 動態加載指定類的字節碼和動態刪除指定的類。本發明中,實現 對實體類,即Entity Bean進行熱部署的,就是基於此原理。本發 明所述的Yangtse基於此原理,但又對類加載器查找類的順序又 進行了改進,以滿足實際的需要。 一般Java中類加載器査找類 的默認順序和Yangtse中實體類類加載器查找類系統,分別如圖 1中所示。從圖1的下圖中能看出實體類加載器,即Entity ClassLoader ,是從同級別的實體類加載器中載入類,不是從文件中載入類。從 同級的實體類加載器中載入類,就意味著如果給每個實體類分配 一個實體類加載器,那麼此實體類就可被熱部署。因此,在Yangtse 中,每當添加一個可部署的實體類時,就給其分配一個實體類加 載器;當卸載此實體類時,就刪除此類所在的實體類加載器,然 後將此實體類加載器交給Java垃圾器來處理,而且這些過程都不 需要重新啟動當前應用程式系統。Yangtse完成對實體進行熱部署過程的總流程如圖2所示。 圖2中可見,將實體類字節碼流添加到SessionFactory (Yangtse 中,連接一個數據源時使用的會話工廠類,它負責創建同數據源的會話等功能,相當於JPA中的持久化單元,即Persistence Unit) 中,然後SessionFactory調用前述的熱部署過程的添加操作,並 且返回編譯後的Java類,即完成對實體類的添加功能;當向 SessionFactory發送卸載指定類的指令時,SessionFactory調用上述熱部署過程的卸載操作即完成對此實體類卸載的功能。在添加 新的實體類過程,就是一個新創建的實體類加載器編譯類字節碼 為類的過程。其中,JVM可自動調用圖1下圖所示的查找過程, 來解決對其他類的依賴,尤其是對實體的依賴。在JPA中,每個實體類只從屬於一個持久化單元,所以在這 裡稱非從屬於當前持久化單元的實體類力'— 」彼此互為"外部實體 類"。在Yangtse的編寫過程中,可使用Java格式"標註符 @OutsideEntity"來標註一個關聯實體,該實體屬於外部實體類。 從而,使Yangtse能夠調用其他JPA組件,完成對關聯外部實體 類的延時和及時加載。Yangtse是"聚合傳媒資源目錄交換系統"(以下簡稱"交 換系統")的子項目,即該系統中的所謂熱部署實體類組件,也 可稱熱管理模塊或者組件。所以在該"交換系統"中有著關鍵的 應用。該交換系統屬於計算機網際網路媒體的信息資源交換技術, 用於實現數字媒體資源的元數據信息交換和數據傳輸。在該交換 系統中交換的元數據模型具有高度的可自定義性,即通過讓用 戶在界面上定義元數據模型,當此模型通過審批後,該系統使用 此模型數據,然後調用Yangtse中生成實體類字節碼的功能,來 生成該模型所對應的實體類,然後交由Yangtse來完成對此實體 類的熱部署,從而完成資料庫映射。之後,用戶使用Yangtse就 能夠完成對此實體數據維護,用戶就得以使用面向對象查詢語句 進行查詢。當模型發生改變時,用戶可以先從Yangtse中卸載當 前模型中對應的實體類,然後再添加新生成的實體類,來完成模 型對實體類的熱部署工作。發明將其命名為Yangtse),就能夠實現對動態實體類的熱部署,從而在不重啟當前應用程式或者系統的情況下,使對實體模型的 改動立即生效,基本上不會影響系統的正常運行。


圖1為對傳統技術和本發明的加載實體類順序的比較示意圖;.圖2為本發明中實現熱管理示意圖。
具體實施方式
下面以實例來進一步說明權利要求書和發明內容。 圖1為對傳統技術和本發明各自方案的加載類順序進行比較 的示意圖。在圖中Parent ClassLoader (即父類加載器)、Entity ClassLoader (實體類力口載器)、禾口 ClassLoader Controller (類力口 載器控制器)都是類加載器,因所處的角色不同而給予的不同命 名。有向線,即箭頭線表示查找動作的方向,線上的數字表示査 找動作的歩驟,反映了順序;虛線表示該類加載器可有多個。圖1中的上圖為現有技術中系統加載類的默認順序,詳細步 驟如下步驟1.檢測該類是否載入過,即檢測在緩存cache中是否 有此類。如果有則到步驟5,如果沒有則到步驟2 。如上圖中的 線1;步驟2.然後從父類加載器(如果沒有父類加載器,則使用 默認的類加載器作為父類加載器)載入,如果找不到則到步驟3, 如果找到則到歩驟5。如上圖的線2;歩驟3.從與此類加載器相關的類路徑中尋找類文件,從文 件中載入類。如果找不到則到歩驟4,如果找到則到步驟5。如 上圖的線3;歩驟4.拋出找不到指定類的異常;歩驟5.返回類。圖1中的下圖為Yangtse實體類加載器査找類的順序,詳細 說明如下步驟1.檢測此類是否載入過,即在緩存cache中查是否有此類。如果有則到步驟4,如果沒有則到步驟2。如下圖的線l;歩驟2.然後從類加載控制器載入(這個過程就是系統加載 類的默認順序)。如果找不到,則到從其管轄的其它實體類加載器的緩存中載入類,如線2.2,這樣的實體類加載器可以有N個, 以便使該査找過程,即線2.2所示的過程重複N次;如果找到即 到步驟4,否則到步驟3。如下圖中的線2;歩驟3.拋出找不到指定類的異常;歩驟4.返回類。比較上述兩個過程能夠看出,Yangtse是從同級的實體類加 載器載入類,不從文件中載入類。從同級的實體類加載器中載入 類,意味著如果給每個實體類分配--個實體類加載器,那麼此實 體類就可以被熱部署。此實體類在被熱部署後,實體類之間的依 賴關係就能夠正常運行。而不從文件中載入,是因為需要熱部署 的實體類都是動態生成的,所以在Yangtse裡面,實體類加載器 中不必加入此過程。圖2為本發明所述的組件實現熱管理示意圖。 本發明所述的Yangtse中,連接一個數據源時使用的是一種 SessionFactory (會話工廠類)。通過這種類,來創建同數據源的 會話等功能,它相當於JPA中所謂的持久化單元(Persistence Unit)。當用戶把實體類字節碼流添加到SessionFactory中,然後 SessionFactory調用類加載控制器,把類字節碼流交給類加載控制 器處理;類加載控制器創建一個新的實體類加載器,並使用該實 體類加載器編譯傳進來的字節碼,使之變成Java類。新創建的實 體類加載器編譯類字節碼為類的過程中,JVM自動調用圖1下圖 所示的査找過程,來解決對其他類的依賴,尤其是對實體的依賴。 然後返回此新創建的Java類,即完成了對實體類的熱添加功能。 當用戶向SessionFactory發送卸載指定的類,然後SessionFactory 將此命令轉發給類加載控制器,類加載控制器卸載此類的類加載 器,即完成把此實體類卸載的過程。其中,在上述新創建的實體類加載器編譯類字節碼為類的過 程中,編譯器要找到此類所引用的類,稱"依賴類",以檢測依 賴類是否存的問題,然後檢測這個的問題,最後完成整個編譯過 程,以保證此類在程序運行時能夠被正常執行。在這個査找依賴 類的過程中,編譯器會自動調用圖1下圖所述的過程來查找依賴 類,如果找不到依賴類則通不過編譯;如果能夠找到類,就能解 決編譯時類所依賴的問題。在上述編譯進行過程中,必須對關聯實體類(或依賴類)進 行查找由於需要給每個實體類分配了一個實體類加載器,以保 證每個實體都能夠被熱部署,所以需要通過同級別的實體類加載 器來査找關聯實體類。這也是本發明所述的熱部署實體類組件Yangtse區別於傳統技術的主要地方。
權利要求
1.一種熱部署實體類組件,其特徵在於該組件包括對話工廠類、類加載控制器、類加載器,工作步驟為用戶把實體類字節碼流添加到對話工廠類中,然後該對話工廠類調用所述類加載控制器,把實體類字節碼流交給類加載控制器處理;該類加載控制器創建一個新的實體類加載器,並使用該實體類加載器編譯傳進來的所述字節碼,將其作為新創建的實體類;將此新創建的實體類通過所述類加載控制器,被送回對話工廠,完成對實體類的熱添加;以及,當用戶向所述對話工廠類發送卸載指定類的指令,該對話工廠則將此指令轉發給所述類加載控制器;該類加載控制器即刪除此類的類加載器,並從緩存中清除和銷毀,完成此實體類的熱卸載。
2. 根據權利要求1所述的熱部署實體類組件,其特徵在於所述新創建的實體類加載器把類字節碼編譯為實體類的過 程中,由程序語言編制的虛擬機中的實體類加載器,自動查找關 聯的實體類,查找類的順序如下歩驟一,檢測此類是否載入過,即在緩存中查是否有此類, 如果有則到步驟四,如果沒有則到步驟二 ;歩驟二,從類加載控制器載入,如果找不到,則到從其管轄 的其它實體類加載器的緩存中載入類,這樣的實體類加載器,級 別相同,可以有複數個,從而使該查找過程重複複數次;如果找 到即到步驟四,否則到步驟三;步驟三,拋出找不到指定類的異常;步驟四,返回類。
3. 根據權利要求2所述的熱部署實體類組件,其特徵在於所述程序語言編制的虛擬機為Java虛擬機。
4. 根據權利要求1所述的熱部署實體類組件,其特徵在於所述新創建的實體類為Java類。
5. 根據權利要求2所述的熱部署實體類組件,其特徵在於-所述關聯的實體類或者實體,為複數個,分別標註以不同名 稱,該複數個實體類或者實體彼此互不隸屬、互處於彼此的外部。
6.根據權利要求5所述的熱部署實體類組件,其特徵在於-所述名稱的格式,為Java格式,g口,標註符(OutsideEntity'
全文摘要
一種熱部署實體類組件,是對象關係映射的一種實現方式,用於實現數字媒體資源的數據信息交換和數據傳輸。包括對話工廠類、類加載控制器、類加載器。步驟為把類字節碼流添加到對話工廠類,由其調用所述類加載控制器,把實體類字節碼流交給類加載控制器處理;該類加載控制器創建新的實體類加載器,並編譯傳進來的所述字節碼作為新創建的實體類;將此實體類通過所述類加載控制器送回對話工廠,完成對實體類的熱添加。向所述對話工廠類發送卸載指定類的指令,該對話工廠則將此指令轉發給所述類加載控制器;該類加載控制器即刪除此類的類加載器,並從緩存中清除和銷毀,完成此實體類的熱卸載。
文檔編號G06F9/445GK101236503SQ200810007889
公開日2008年8月6日 申請日期2008年2月27日 優先權日2008年2月27日
發明者王曉菁, 鞠京佳 申請人:鞠京佳;王曉菁

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀