鬼佬大哥大
  • / 12
  • 下載費用:30 金幣  

一種構件管理方法及系統.pdf

關 鍵 詞:
一種 構件 管理 方法 系統
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201110264398.6

申請日:

2011.09.07

公開號:

CN102325180B

公開日:

2015.01.07

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):H04L 29/08申請日:20110907|||公開
IPC分類號: H04L29/08 主分類號: H04L29/08
申請人: 山東中創軟件工程股份有限公司; 山東中創軟件商用中間件股份有限公司
發明人: 陳芳芳; 劉耀; 劉民
地址: 250014 山東省濟南市千佛山東路41-1號
優先權:
專利代理機構: 北京集佳知識產權代理有限公司 11227 代理人: 逯長明
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201110264398.6

授權公告號:

102325180B||||||

法律狀態公告日:

2015.01.07|||2012.03.14|||2012.01.18

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本申請公開了一種構件管理方法及系統,所述方法基于一JMX代理平臺,所述JMX代理平臺中設置有MBean服務器;所述方法包括:對所述構件進行加載并解析所述構件的元數據文件獲取所述元數據文件中的文件數據;依據所述獲取的文件數據將所述構件封裝為動態MBean(Manageable?Bean,管理構件);將所述動態MBean注冊為聲明式框架服務;監聽所述服務的狀態,依據所述服務的不同狀態,將所述服務對應的MBean注冊至所述MBean服務器中,對所述MBean進行管理。本申請提供一種構件管理方法,無需構件實現特定接口而具備JMX管理能力,簡化了開發過程;并且具備更新構件被管理的能力。

權利要求書

1: 一種構件管理方法, 其特征在于, 所述方法基于一 JMX 代理平臺, 所述 JMX 代理平臺 中設置有 MBean 服務器 ; 所述方法包括 : 對所述構件進行加載并解析所述構件的元數據文件獲取所述元數據文件中的文件數 據; 依據所述獲取的文件數據將所述構件封裝為動態 MBean(Manageable Bean, 管理構 件); 將所述動態 MBean 注冊為聲明式框架服務 ; 監聽所述服務的狀態, 依據所述服務的不同狀態, 將所述服務對應的 MBean 注冊至所 述 MBean 服務器中, 對所述 MBean 進行管理。
2: 根據權利要求 1 所述的方法, 其特征在于, 對所述注冊至 MBena 服務器中的 MBean 進 行管理包括 : 讀取和重新改寫 MBean 中的屬性值 ; 執行 MBean 中定義的接口方法 ; 獲取 MBean 中發出的通知事件對象。
3: 根據權利要求 1 所述的方法, 其特征在于, 所述監聽服務狀態, 依據所述服務的不同 狀態, 將所述服務對應的 MBean 注冊至所述 MBean 服務器中包括 : 當監聽得到所述服務狀態改變且所述服務狀態為服務加載時, 將所述服務對應的 MBean 注冊至 MBean 服務器中。
4: 根據權利要求 1 所述的方法, 其特征在于, 所述監聽服務狀態, 依據所述服務的不同 狀態, 將所述服務對應的 MBean 注冊至所述 MBean 服務器中包括 : 當監聽得到所述服務狀態改變且所述服務狀態為服務卸載時, 將所述服務對應的 MBean 反注冊至 MBean 服務器中。
5: 一種構件管理系統, 其特征在于, 所述系統基于一 JMX 代理平臺, 所述 JMX 代理平臺 中設置有 MBean 服務器 ; 所述系統包括 : 加載單元, 用于對所述構件進行加載 ; 解析單元, 用于解析所述構件的元數據文件獲取所述元數據文件中的文件數據 ; 封裝單元, 用于依據所述獲取的文件數據將所述構件封裝為動態 MBean(Manageable Bean, 管理構件 ) ; 注冊單元, 用于將所述動態 MBean 注冊為聲明式框架服務 ; 管理單元, 用于監聽所述服務的狀態, 依據所述服務的不同狀態, 將所述服務對應的 MBean 注冊至所述 MBean 服務器中, 對所述 MBean 進行管理。
6: 根據權利要求 5 所述的方法, 其特征在于, 所述管理單元包括 : 改寫子單元, 用于讀取和重新改寫 MBean 中的屬性值 ; 執行子單元, 用于執行 MBean 中定義的接口方法 ; 獲取子單元, 獲取 MBean 中發出的通知事件對象。
7: 根據權利要求 5 所述的方法, 其特征在于, 所述管理單元包括 : 注冊子單元, 用于當監聽得到所述服務狀態改變且所述服務狀態為服務加載時, 將所 述服務對應的 MBean 注冊至 MBean 服務器中。
8: 根據權利要求 5 所述的方法, 其特征在于, 所述管理單元包括 : 2 反注冊子單元, 用于當監聽得到所述服務狀態改變且所述服務狀態為服務卸載時, 將 所述服務對應的 MBean 反注冊至 MBean 服務器中。

說明書


一種構件管理方法及系統

    【技術領域】
     本申請涉及 OSGI 框架領域, 特別是涉及一種基于 JMX 的遠程構件管理的方法及系統。 背景技術 聲明式服務是一種在 OSGI 框架中簡化的面向服務構件編程模型, 此模型的可擴 展性、 提供服務的簡化方式等優點備受開發人員的青睞。聲明式服務提供了一種全新的開 發 OSGI 環境中服務構件的方式, 它使用聲明式的方式來發布、 查找和綁定 OSGI 的服務, 這 種方式簡化服務構件實現中因為管理動態環境而導致的非功能性需求, 從而使開發人員更 加專注于自己的功能性業務邏輯實現。
     在使用聲明式服務方式進行構件開發時, 涉及到如何對構件進行本地和遠程管理 的問題 ; 通常使用 JMX 對受管資源進行管理 ; 服務構件的本地和遠程管理, 按照 JMX 規范所 描述的原則開發的管理構件, 稱為 Manageable Bean(MBean) ; MBean 的構造必須遵循由 JMX
     規范所描述的涉及模式及相關接口, 這樣可以保證所有的 MBean 都可以以標準的形式提供 被管理的資源設備。
     為使構件具備被 JMX 管理的能力, 開發人員需要熟悉 JMX 的相關內容, 并且構件需 要實現特定接口 ( 標準 MBean、 DynamicMBean 等 ), 標志自己為可被管理的對象, 這樣會使 開發變得相對復雜 ; 而且構件在聲明式服務構架上運行時可進行加載、 卸載和替換, 若構件 已被卸載就不應該具備被管理的能力, 如何根據不同狀態實時改變被管理的狀態也是一個 待研究的重要問題。 發明內容 為解決上述技術問題, 本申請實施例提供一種構件管理方法及系統, 無需構件實 現特定接口而具備 JMX 管理能力, 簡化了開發過程 ; 并且具備更新構件被管理的能力。
     技術方案如下 :
     一種構件管理方法, 所述方法基于一 JMX 代理平臺, 所述 JMX 代理平臺中設置有 MBean 服務器 ; 所述方法包括 :
     對所述構件進行加載并解析所述構件的元數據文件獲取所述元數據文件中的文 件數據 ;
     依據所述獲取的文件數據將所述構件封裝為動態 MBean(Manageable Bean, 管理 構件 ) ;
     將所述動態 MBean 注冊為聲明式框架服務 ;
     監聽所述服務的狀態, 依據所述服務的不同狀態, 將所述服務對應的 MBean 注冊 至所述 MBean 服務器中, 對所述 MBean 進行管理。
     上述的方法, 優選的, 對所述注冊至 MBena 服務器中的 MBean 進行管理包括 :
     讀取和重新改寫 MBean 中的屬性值 ;
     執行 MBean 中定義的接口方法 ;
     獲取 MBean 中發出的通知事件對象。
     上述的方法, 優選的, 所述監聽服務狀態, 依據所述服務的不同狀態, 將所述服務 對應的 MBean 注冊至所述 MBean 服務器中包括 :
     當監聽得到所述服務狀態改變且所述服務狀態為服務加載時, 將所述服務對應的 MBean 注冊至 MBean 服務器中。
     上述的方法, 優選的, 所述監聽服務狀態, 依據所述服務的不同狀態, 將所述服務 對應的 MBean 注冊至所述 MBean 服務器中包括 :
     當監聽得到所述服務狀態改變且所述服務狀態為服務卸載時, 將所述服務對應的 MBean 反注冊至 MBean 服務器中。
     一種構件管理系統, 所述系統基于一 JMX 代理平臺, 所述 JMX 代理平臺中設置有 MBean 服務器 ; 所述系統包括 :
     加載單元, 用于對所述構件進行加載 ;
     解析單元, 用于解析所述構件的元數據文件獲取所述元數據文件中的文件數據 ;
     封 裝 單 元, 用于依據所述獲取的文件數據將所述構件封裝為動態 MBean(Manageable Bean, 管理構件 ) ;
     注冊單元, 用于將所述動態 MBean 注冊為聲明式框架服務 ;
     管理單元, 用于監聽所述服務的狀態, 依據所述服務的不同狀態, 將所述服務對應 的 MBean 注冊至所述 MBean 服務器中, 對所述 MBean 進行管理。
     上述的系統, 優選的, 所述管理單元包括 :
     改寫子單元, 用于讀取和重新改寫 MBean 中的屬性值 ;
     執行子單元, 用于執行 MBean 中定義的接口方法 ;
     獲取子單元, 獲取 MBean 中發出的通知事件對象。
     上述的系統, 優選的, 所述管理單元包括 :
     注冊子單元, 用于當監聽得到所述服務狀態改變且所述服務狀態為服務加載時, 將所述服務對應的 MBean 注冊至 MBean 服務器中。
     上述的系統, 優選的, 所述管理單元包括 :
     反注冊子單元, 用于當監聽得到所述服務狀態改變且所述服務狀態為服務卸載 時, 將所述服務對應的 MBean 反注冊至 MBean 服務器中。
     由以上本申請實施例提供的技術方案可見, 本發明提供的構件管理方法及系統, 基于 JMX 代理平臺, 在所述 JMX 平臺中設置有 MB 服務器 ; 將需要管理的構件進行加載, 解析 所述構件元數據文件中的文件數據, 依據所述文件數據將所述構件封裝為動態 MBean ; 將 所述動態 MBean 注冊為聲明式框架服務 ; 監聽所述服務的狀態, 依據所述服務的不同狀態, 將所述服務對應的 MBean 注冊至所述 MBean 服務器中, 對所述 MBean 進行管理。本發明提 供的構件管理方法及系統提供了元數據聲明的方式或者注解的方式來配置管理能力, 這樣 用戶不需要關心 JMX 規范所定義的內容, 只需要關心構件的管理能力 ; 另外, 本發明提供了 維護構件管理的生命周期能力, 能夠動態跟蹤構件所在的 bundle 在框架中的狀態, 根據管 理構件的不同狀態做相關處理, 從而實現了構件的管理僅在運行期有效的動態管理能力。附圖說明 為了更清楚地說明本申請實施例或現有技術中的技術方案, 下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹, 顯而易見地, 下面描述中的附圖僅僅是本 申請中記載的一些實施例, 對于本領域普通技術人員來講, 在不付出創造性勞動的前提下, 還可以根據這些附圖獲得其他的附圖。
     圖 1 為本申請實施例一提供的一種構件管理方法的流程圖 ;
     圖 2 為本申請實施例一提供的加載管理構件的方法流程圖 ;
     圖 3 為本申請實施例一提供的卸載管理構件的方法流程圖 ;
     圖 4 為本申請實施例一提供的 MBean 遠程管理示意圖 ;
     圖 5 為本申請實施例二提供的一種構件管理系統的結構示意圖 ;
     圖 6 為本申請實施例二提供的一種構件管理系統的又一結構示意圖。
     具體實施方式
     為了使本技術領域的人員更好地理解本申請方案。 下面將結合本申請實施例中的 附圖, 對本申請實施例中的技術方案進行清楚、 完整地描述, 顯然, 所描述的實施例僅僅是 本申請一部分實施例, 而不是全部的實施例。 基于本申請中的實施例, 本領域普通技術人員 在沒有做出創造性勞動前提下所獲得的所有其他實施例, 都應當屬于本申請保護的范圍。 實施例一
     本申請實施例提供的一種構件管理方法的流程圖如圖 1 所示, 所述方法基于一 JMX 代理平臺, 所述 JMX 代理由 MBean 服務器、 一組 MBean、 代理服務、 還有協議適配器 ( 連 接器 ) 等組件構成, 這些代理級對象充當管理應用程序和受控資源之間的橋梁, 直接管理 受控資源, 并且使受控資源可以通過連接器或協議適配器與管理應用程序通信 ; 服務構件 在該聲明式服務平臺上運行時, 可進行動態加載、 卸載和替換, 本申請實施例提供的方法增 加了構件的服務監聽機制, 當服務構件狀態發生改變時, 可實時監聽到服務狀態改變的信 息;
     所述方法包括 :
     步驟 S101 : 對所述構件進行加載并解析所述構件的元數據文件獲取所述元數據 文件中的文件數據 ;
     步驟 S102 : 依據所述獲取的文件數據將所述構件封裝為動態 MBean ;
     管理構件加載到聲明式框架并處于激活狀態, 聲明式服務框架負責解析管理構 件的元數據文件, 根據元數據文件的數據將其封裝為動態 MBean ; 本申請實施例提供的方 法定義了配置管理構件的元數據文件的 schema 文件, 管理構件需依照此 schema 文件配 置被包裝為 MBean 的一些屬性信息, 以及暴露的屬性 Property 和方法 Method 信息, 其中 Property 元素用于定義 MBean 暴露字段的屬性, Method 元素用于定義 MBean 暴露方法的屬 性;
     步驟 S103 : 將所述動態 MBean 注冊為聲明式框架服務 ;
     注冊動態 MBean 為聲明式服務框架可管理的服務, 本申請實施例提供的方法由于 增加了服務監聽機制, 監聽到此服務注冊后, 就可以通過框架獲取此服務 ;
     步驟 S104 : 監聽所述服務的狀態, 依據所述服務的不同狀態, 將所述服務對應的
     MBean 注冊至所述 MBean 服務器中, 對所述 MBean 進行管理 ;
     通過框架獲取服務后, 通過服務的屬性信息識別是否為 MBean 對象, 若未 MBean 對 象, 將此 MBean 注冊到 MBeanServer 中 ; 通過對 MBeanRegistration 接口的實現, 管理構件 可以添加 MBean 注冊與注銷時機的控制 ;
     注冊到 MBean 服務器之后, 就可以在程序中讀取和重新改寫 MBean 上的屬性值, 執 行 MBean 上定義的接口方法和獲取 MBean 上發出來的通知事件對象 ;
     MBean 服務器負責 MBean 的生命周期控制, 當監聽到管理構件的服務狀態發生變 化 ( 加載、 卸載、 替換 ), 本申請實施例提供的方法就會根據這些狀態做相關處理 ; 當服務構 件加載時, 注冊 MBean 對象到 MBean 服務器中 ; 當服務構件卸載時, 反注冊 MBean 對象 ; 當 服務構件替換時, 先反注冊 MBean 對象, 再重新注冊 MBean 對象到 MBean 服務器中 ; 并且, 當 MBean 的注冊 / 反注冊事件前后, MBean 服務器都會動態檢查 “管理構件” 是否實現了 MBeanRegistration 接口, 如果返回結果為真, MB 服務即會調用相應的回調函數 ; 本申請實 施例提供的加載管理構件和卸載管理構件的流程圖分別如本申請實施例提供的圖 2 及圖 3 所示 :
     如圖 2 所示, 包括 :
     步驟 S201 : 封裝管理構件為動態 MBean ; 步驟 S202 : 注冊動態 MBean 為框架的服務 ; 步驟 S203 : 監聽框架的服務構件狀態 ; 步驟 S204 : 監聽服務狀態是否改變 ; 如改變執行步驟 S205 ; 否則, 返回執行步驟S203 ; 步驟 S205 : 監聽服務狀態是否注冊, 如已注冊, 執行步驟 S206 ;
     步 驟 S206 : 通 過 獲 取 服 務 屬 性 獲 取 ObjectName 名 稱, 注 冊 此 MBean 到 MBeanServer 中。
     圖 3 所示, 包括 :
     步驟 S301 : 監聽框架的服務構件狀態 ;
     步驟 S302 : 監聽服務狀態是否改變 ; 如未改變返回執行步驟 S301, 否則, 執行步驟 S303 ;
     步驟 S303 : 監聽狀態是否反注冊 ; 如已反注冊, 執行步驟 S304 ;
     步 驟 S304 : 通 過 獲 取 服 務 屬 性 獲 取 ObjectName 名 稱, 反 注 冊 此 MBean 到 MBeanServer 中。
     本申請實施例提供的對構件遠程管理的工作原理為 : 通過對相應的連接器服務端 (connector server) 發出請求, 一個遠程管理應用程序可以與 JMX 代理建立連接, 隨后才 可以通過其本地的連接器客戶端 (connector client) 調用遠程 MBean 所提供的操作 ; 典型 的, 一個遠程客戶通過 MBeanServer 的一個接口方法子集, 該子集來自 MBeanServer 接口的 父接口 (parent interface) 所定義的方法集。
     本申請實施例中, 對于遠程管理 MBean 的一示意圖如圖 4 所示, 連接器客戶端指定 MBean 服務器的遠程代表的角色, 管理程序向其發出 getState 的方法調用, 這種方式的動 態調用通常是與 MBean 的自省 (introspection) 機制協作的, 通過 MBean 的自省, 可以動態 的發現管理接口提供的屬性集合方法集以及其他所有 MBean 對象特征, 對本地和遠程都一
     樣; 代理對象通常由 MBean 類自動產生, 管理應用程序直接向代理對象提出 getState 方法的調用請求, 代理對象再依賴連接器客戶端將此請求傳送給遠程的 JMX 代理層, 最后 傳給目標 MBean, 請求的響應則以相反的路徑傳回。
     對于前述的方法實施例, 為了簡單描述, 故將其都表述為一系列的動作組合, 但是 本領域技術人員應該知悉, 本發明并不受所描述的動作順序的限制, 因為依據本發明, 某些 步驟可以采用其他順序或者同時進行。 其次, 本領域技術人員也應該知悉, 說明書中所描述 的實施例均屬于優選實施例, 所涉及的動作和模塊并不一定是本發明所必須的。
     實施例二
     針對以上方法實施例, 本申請實施例還提供了一種構件管理系統, 所述系統基于 一 JMX 代理平臺, 所述 JMX 代理平臺中設置有 MBean 服務器 ; 其結構示意圖如圖 5 所示, 包 括:
     加載單元 401、 解析單元 402、 封裝單元 403、 注冊單元 404 和管理單元 405 ;
     其中 :
     加載單元 401, 用于對所述構件進行加載 ;
     解析單元 402, 用于解析所述構件的元數據文件獲取所述元數據文件中的文件數據; 封 裝 單 元 403, 用于依據所述獲取的文件數據將所述構件封裝為動態 MBean(Manageable Bean, 管理構件 ) ;
     注冊單元 404, 用于將所述動態 MBean 注冊為聲明式框架服務 ;
     管理單元 405, 用于監聽所述服務的狀態, 依據所述服務的不同狀態, 將所述服務 對應的 MBean 注冊至所述 MBean 服務器中, 對所述 MBean 進行管理。
     本申請實施例還提供了構件管理系統的另一結構示意圖如圖 6 所示, 其中管理單 元 405 包括 :
     改寫子單元 406, 用于讀取和重新改寫 MBean 中的屬性值 ;
     執行子單元 407, 用于執行 MBean 中定義的接口方法 ;
     獲取子單元 408, 獲取 MBean 中發出的通知事件對象。
     本申請實施例提供的管理單元中, 還包括 :
     注冊子單元 409, 用于當監聽得到所述服務狀態改變且所述服務狀態為服務加載 時, 將所述服務對應的 MBean 注冊至 MBean 服務器中。
     反注冊子單元 410, 用于當監聽得到所述服務狀態改變且所述服務狀態為服務卸 載時, 將所述服務對應的 MBean 反注冊至 MBean 服務器中。
     對于系統實施例而言, 由于其基本相應于方法實施例, 所以描述的比較簡單, 相關 之處參見方法實施例的部分說明即可。
     本說明書中的各個實施例均采用遞進的方式描述, 各個實施例之間相同相似的部 分互相參見即可, 每個實施例重點說明的都是與其他實施例的不同之處。以上所述僅是本 申請的具體實施方式, 應當指出, 對于本技術領域的普通技術人員來說, 在不脫離本申請原 理的前提下, 還可以做出若干改進和潤飾, 這些改進和潤飾也應視為本申請的保護范圍。
    

關于本文
本文標題:一種構件管理方法及系統.pdf
鏈接地址:http://www.wwszu.club/p-6420976.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大