軟體組件管理系統的製作方法
2023-06-07 09:40:11 3
專利名稱:軟體組件管理系統的製作方法
技術領域:
本發明涉及計算機領域,具體而言,尤其涉及一種軟體組件的管理技術。
背景技術:
組件是近代工業發展的產物,目的是功能模塊化,構成產品的各個功能組件,分別 可由專業的廠商生產,提高了質量,降低了成本,同時對於同樣的組件,可應用於多類產品 和多個領域,極大的拓展了技術的移植和應用。軟體工程中的組件,或者說軟體組件是指「系統中一種物理的、可代替的部件、它 封裝了實現並提供了一系列可用的接口。一個組件代表一個系統中實現的物理部分,包括 軟體代碼(原始碼,二進位代碼,可執行代碼)或者一些類似內容,如腳本或者命令文件。」 使用軟體組件技術的一個最大的好處就是通過將軟體組件化來分解軟體,從而降低的軟體 的複雜度,提高了軟體的集成度和可重用度。在目前現有使用軟體組件化技術的軟體產品中,通常存在著程序啟動速度慢、內 存佔用多、CPU佔用率高等問題,這是因為程序啟動時,加載了過多的組件,而每個組件又會 佔用一定的內存空間和CPU,從而導致整個程序臃腫不堪。而對於組件的動態管理,目前只 有在嵌入式系統中使用了類似的技術,但這些技術的實現較為複雜,且受限於嵌入式系統 自身所支持的技術。
發明內容
針對現有技術中組件化軟體產品中存在的程序啟動時,加載了過多的組件而導致 整個程序運行慢的問題提出本發明。為此,本發明的主要目的在於提供一種軟體組件管理 系統及方法,以解決上述問題至少之一。根據本發明的一個方面,本發明提出了一種軟體組件管理系統,包括啟動模塊、組 件管理器、公共接口、至少一個軟體組件;其中,啟動模塊整個程序的入口,與組件管理器交互,通過組件管理器來加載各軟體組 件;組件管理器用來對軟體組件進行管理,動態實現加載、卸載軟體組件等功能;公共接口 定義了一個所有接口必須共同遵守的公共標準和公共能力,所述公共 標準是指包含計數器,所述公共能力是指增加計數的能力和減少計數的能力;軟體組件作為所述軟體組件管理系統的管理對象,為程序提供業務功能的各模 塊組件。 進一步地,所述組件管理器具體包括,配置文件負責存放軟體組件的配置信息,所述組件的配置信息包括組件唯一 標識、組件在物理設備上的訪問路徑、組件包含的接口、組件存活時間;接口查詢單元用於通過接口唯一標識來查詢接口入口地址;組件加載單元組件加載單元根據組件配置信息從物理設備上將組件加載到應用程式系統中;響應時間記錄單元用於記錄當前已加載每個組件的上次響應時間,即當前已加 載的每個組件所包含的接口上一次被調用的時間;組件卸載單元負責組件的卸載。進一步地,所述公共接口具體指,每個接口都包含計數器,當接口在被使用時所述 計數器增加、接口被使用完畢後所述計數器減少、所述計數器增加時的步進必須和減少時 的步進一致,所述計數器記錄了這個接口目前正在被多少使用者所使用。進一步地,軟體組件包括業務組件、功能組件,所述軟體組件所包含的接口都是由 公共接口繼承而來的,遵守公共接口的標準。進一步地,所述組件包含的接口為一個或者多個,是組件的唯一標識與接口唯一 標識的對照關係表。進一步地,所述組件存活時間,是指當一個已加載的組件持續未活動的時間,超出 所述組件存活時間時,卸載該組件。進一步地,所述組件卸載單元在程序啟動時啟動,定期檢測當前已加載的所有軟 件組件,當某個軟體組件達到了卸載條件時,將該組件卸載。進一步地,所述組件的卸載條件指該組件包含的所有接口目前都沒有被使用,並 且該組件上次響應時間已超出了預定的組件存活時間。與現有技術相比,本發明定義一個具有計數器的公共接口,通過組件管理器管理 每個組件的生命周期,在保持整個軟體程序原有功能不變的情況下,更有效率的分配和使 用系統資源,從而提高了系統的效率。
圖1為本發明組件管理系統結構圖; 圖2為根據本發明優選實施例的程序啟動時的示意圖;圖3為根據本發明優選實施例的組件動態加載時的示意圖;圖4為根據本發明優選實施例的組件動態卸載時的示意圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚,以下結合附圖對本發明作進一步 地詳細說明。本發明的核心思想是定義一個具有計數器的公共接口作為所有接口的共同標準, 通過制定一定策略來控制組件的生命周期,從而實現組件動態加載和卸載的管理過程。為更好了理解本發明的實施,這裡先對相關專業技術的術語進行簡單的說明。接口 我們可以將之理解為調用一項「服務」的入口,這項「服務」能夠提供某種能 力(如打電話、進行文字聊天、進行某項數學計算等),並具有一系列的屬性(如接口的 唯一標識、接口當前被使用的次數等)。每個接口都具有唯一標識,唯一標識是指該接口區 別於其他接口的一個標籤,它可以是一組具有特殊意義的數字,也可以是一串特殊內容的 文本,且並不局限於以上兩種方式,唯一標識並不一定是絕對唯一、不會重複的,它僅在使 用該標識的工作環境內保持唯一即可。
繼承可以理解為在某「接口」的基礎上,延伸而出一種新的「接口」,新的接口不但 包含原有接口的功能和屬性,並且可以包含新接口自身的新功能和新屬性,而這種延伸我 們就稱之為「繼承」。例如已存在一個「對話框服務」,我們由此服務延伸出了 「聊天室對話
框服務」、「系統設置對話框服務」、「通訊錄對話框服務」等......我們就稱後三種延伸出來
的服務是繼承於「對話框服務的」,如果我們在「聊天室對話框服務」的基礎上繼續延伸出了 「包含視頻功能的聊天室對話框服務」,我們就稱「包含視頻功能的聊天室對話框服務」是直 接繼承於「聊天室對話框服務」,且間接繼承於「對話框服務」。如圖1所示,為本發明的軟體組件管理系統,該軟體組件管理系統包括啟動模塊, 組件管理器、公共接口,至少一個軟體組件,其中啟動模塊整個程序的入口,與組件管理器交互,通過組件管理器來加載各軟體組 件;組件管理器用來對軟體組件進行動態管理,動態實現加載、卸載軟體組件等功 能。公共接口 包含一個計數器,接口在被使用時計數器增加、接口被使用完畢後計數 器減少、計數器增加時的步進必須和減少時的步進一致。所謂「計數器」,它記錄了這個接口 目前正在被多少使用者所使用(使用者並不局限為是用戶,也可能是另一個服務),而當接 口被使用時,計數器則會增加N(N為整數),當接口被使用完畢後,計數器則會減少N。需要說明的是本發明所說的公共接口的設置是出於管理組件和接口的目的,特 別定義出的一個抽象的接口,它僅包含了所有接口必須共同遵守的一個公共標準,而不包 含具體的業務能力和屬性。軟體組件是指為程序提供業務功能的各模塊,例如文字聊天組件、語音通話組 件、文件傳輸組件、系統設置組件等。這些組件所包含的接口都是由公共接口繼承而來的, 遵守公共接口的標準,並根據各組件的業務定位不同擴展出各自的業務功能,它們是組件 管理系統的管理對象。本發明實施例中的組件管理器進一步包括配置文件、組件加載單元、接口查詢單 元、響應時間記錄單元和組件卸載單元配置文件負責存放組件的配置信息,所述組件的配置信息包括組件唯一標識、 組件在物理設備上的訪問路徑、組件所包含的接口、組件在無響應時的最大存活時間。其 中,組件唯一標識,是指在一定的工作環境內,用來區分和定位組件唯一性的標識。組件在物理設備上的訪問路徑,是指組件在電腦系統中物理存在的絕對或相對路 徑,組件管理器能夠根據組件的訪問路徑,正常的訪問該組件,如加載組件。組件所包含的接口 一個組件可能包含一個或多個接口,所以組件所包含的接口 實際上也就是一組組件唯一標識與接口唯一標識的對照關係表。由組件和接口的包含關係 可知,當某項服務需要被使用時,首先需要加載包含提供該服務接口的組件,然後才能夠通 過接口使用該服務,如果組件已經加載,則無需重複加載。組件存活時間,是指當一個已加載的組件持續未活動的時間超出該組件在無響應 時的最大存活時間時,卸載該組件。該時間是為了避免頻繁的加載卸載組件而設置的卸載 組件的時間延遲。該時間通常由本專利的使用者根據自己所開發的應用程式的業務特性具體而定。組件加載單元根據組件配置信息從物理設備上將組件加載到應用程式系統中;接口查詢單元用於通過接口唯一標識來查詢接口入口地址。響應時間記錄單元用於記錄當前已加載每個組件的上次響應時間,即當前已加 載的每個組件所包含的接口上一次被調用的時間。一旦組件所包含的任何一個接口被使 用,則上次響應時間會立即更新。組件卸載單元負責組件的卸載,在程序啟動時一同啟動,定期檢測當前已加載的 所有組件,一旦某個組件達到了卸載的條件,就會將該組件卸載。組件卸載單元是一個獨立 運行的單元,組件卸載條件包括該組件提供的所有接口目前都沒有被使用,並且該組件上 次響應時間已超出了組件存活時間。接口的使用者通過接口查詢單元查詢其希望調用的接口地址。接口查詢單元首先 查詢配置文件,得到包含該接口的組件的唯一標識。然後接口查詢單元去查詢響應時間記 錄單元,如果發現該組件唯一標識目前沒有被記錄活動時間,則說明該組件目前尚未被加 載。於是接口查詢單元通知組件加載單元來加載該組件,加載成功後,接口查詢單元將接口 地址返回給查詢者,並將通知響應時間記錄單元記錄該組件的活動時間。組件在被組件卸 載單元卸載後,組件卸載單元會通知響應時間記錄單元刪除該組件的活動時間記錄。基於上述軟體組件管理系統,本發明的軟體組件管理方法如下步驟1、程序啟動時,啟動模塊開始運行,啟動模塊將啟動組件管理器,組件管理器 通過讀取配置文件,將當前需要使用的軟體組件加載(如程序主界面組件)。步驟2、當程序啟動後,如果需要使用某軟體組件提供的業務時,使用者通過組件 管理器查詢提供該業務的接口,如果包含被查詢接口的組件目前尚未被加載,則組件管理 器讀取配置文件,得到該組件的訪問路徑,先將該組件加載,然後將該組件接口的訪問入口 地址返回給使用者。例如當一個使用者需要使用A接口,使用者通過組件管理器的接口查詢單元得 到A接口的訪問入口地址,此時A接口增加計數1次,當A接口被使用完畢後,A接口減少 計數1次,當A接口的計數器減少為0時(假設計數器初始是從0開始計數的),則表示A 接口當前已經沒有任何使用者在使用了,已經可以銷毀了,此時A接口會通知組件管理器 將自身銷毀。步驟3、組件管理器中會記錄該組件的當次活動情況,將組件所包含接口的計數器 最近一次改變的時間記錄為該組件的上次響應時間,如果在持續一段時間內該組件所包含 的所有接口一直未被調用,當該時間超過該組件存活時間後,組件管理器的組件卸載單元 就會將該組件卸載。如果在無響應的時間達到該組件存活時間之前,該組件的接口被再次 訪問,則上次響應時間會重新記錄。如圖2所示,為本發明優選實施例的程序啟動時的示意圖,包括1、應用程式啟動時,啟動模塊啟用組件管理器,組件管理器通過讀取配置文件中 的組件配置信息,調用登錄界面接口、登錄業務接口、TCP通訊接口、主界面接口,所以組件 管理器加載了當前需要的組件,如圖中底層通訊組件(ID :01)、登錄組件(ID :02)、主界面 組件(ID 03)。需要說明的是在程序啟動時,還不需要使用電話功能、文字聊天功能、文件傳輸功能等,所以其相關的組件均未被加載,如圖中電話組件(ID:04)、文字聊天組件(ID:05)、 通訊錄組件(ID 06)、系統設置組件(ID 07)、文件傳輸組件(ID 08)。2、組件管理器記錄了各組件的上次響應時間;各被調用的接口的計數。如圖3所示意,為本發明優選實施例的組件動態加載時的示意圖,包括1、在程序的應用過程中,用戶在主界面上點擊通訊錄功能標籤,希望打開通訊錄 界面進行通訊錄查詢,所以主界面接口(03a)通過組件管理器查詢通訊錄界面接口(06a)。2、組件管理器在收到主界面接口(03a)的查詢請求後,組件管理器檢查配置文 件,發現通訊錄界面接口(06a)是屬於通訊錄組件(06)的,而通訊錄組件(06)目前尚未加 載,所以組件管理器首先加載通訊錄組件(06),然後將通訊錄界面接口(06a)返回給調用 者,通訊錄界面接口(06a)計數器增加1。用戶操作通訊錄界面進行查詢,通訊錄界面接口(06a)向組件管理器查詢通訊錄 業務接口(06b),組件管理器檢查配置文件,發現通訊錄業務接口(06b)是屬於通訊錄組件 (06)的,而通訊錄組件(06)目前已加載,所以組件管理器直接返回通訊錄業務接口(06b)。通訊錄業務接口(06b)在查詢過程中需要與遠程的通訊錄資料庫建立連接,所以 通訊錄業務接口(06b)向組件管理器查詢TCP通訊接口(01a),組件管理器檢查配置文件, 發現TCP通訊接口(Ola)是屬於底層通訊組件(01)的,而底層通訊組件(01)目前已加載, 所以組件管理器直接返回TCP通訊接口(Ola)。因為此時程序已經啟動和登錄完畢,所以登錄過程中使用到的TCP通訊接口計數 減少1 (變為0),登錄界面接口計數減少1 (變為0),登錄業務接口計數減少1 (變為0)。而在通訊錄查詢的過程中,所使用到的TCP通訊接口計數增加1 (變為1),通訊錄 界面接口增加1(變為1),通訊錄業務接口增加1(變為1)。主界面因為一直在使用,所以其接口計數器不變。如圖4所示,為本發明優選實施例的組件動態卸載時的示意圖,包括若預先設置的組件存活時間為10分鐘,當程序在登錄了 10分鐘後,因為登錄界面 接口(02a)計數器為0,登錄業務接口(02b)計數器為0,且登錄組件(02)達到了其配置的 無響應時的最大存活時間,此時已達到了組件卸載的條件,組件卸載單元自動將登錄組件 (02)卸載。綜上所述,本發明提出的軟體組件的管理系統及方法,通過定義一個具有計數器 的公共接口作為所有接口的共同標準,通過組件管理器依靠計數器和組件響應時間的處理 策略,來控制組件的生命周期,從而實現組件的動態加載和卸載的管理過程。本方案可擴展 性強,機制簡單,本領域普通技術人員可以通過上述實施例的描述和附圖來學習和使用。
權利要求
一種軟體組件管理系統,包括啟動模塊、組件管理器、公共接口、至少一個軟體組件;其中,啟動模塊整個程序的入口,與組件管理器交互,通過組件管理器來加載各軟體組件;組件管理器用來對軟體組件進行管理,動態實現加載、卸載軟體組件等功能;公共接口定義了一個所有接口必須共同遵守的公共標準和公共能力,所述公共標準是指包含計數器,所述公共能力是指增加計數的能力和減少計數的能力;軟體組件作為所述軟體組件管理系統的管理對象,為程序提供業務功能的各模塊組件。
2.如權利要求1所述的管理系統,其特徵在於,所述組件管理器具體包括,配置文件負責存放軟體組件的配置信息,所述組件的配置信息包括組件唯一標識、 組件在物理設備上的訪問路徑、組件包含的接口、組件存活時間; 接口查詢單元用於通過接口唯一標識來查詢接口入口地址; 組件加載單元組件加載單元根據組件配置信息從物理設備上將組件加載到應用程式 系統中;響應時間記錄單元用於記錄當前已加載每個組件的上次響應時間,即當前已加載的 每個組件所包含的接口上一次被調用的時間; 組件卸載單元負責組件的卸載。
3.如權利要求1所述的管理系統,其特徵在於,所述公共接口具體指,每個接口都包含計數器,當接口在被使用時所述計數器增加、接 口被使用完畢後所述計數器減少、所述計數器增加時的步進必須和減少時的步進一致,所 述計數器記錄了這個接口目前正在被多少使用者所使用。
4.如權利要求2所述的管理系統,其特徵在於,軟體組件包括業務組件、功能組件,所 述軟體組件所包含的接口都是由公共接口繼承而來的,遵守公共接口的標準。
5.如權利要求2或3所述的管理系統,其特徵在於,所述組件包含的接口為一個或者多個,是組件的唯一標識與接口唯一標識的對照關係表。
6.如權利要求2或3所述的管理系統,其特徵在於,所述組件存活時間,是指當一個已加載的組件持續未活動的時間,超出所述組件存活 時間時,卸載該組件。
7.如權利要求2或3所述的管理系統,其特徵在於,所述組件卸載單元在程序啟動時啟動,定期檢測當前已加載的所有軟體組件,當某個 軟體組件達到了卸載條件時,將該組件卸載。
8.如權利要求7所述的管理系統,其特徵在於,所述組件的卸載條件指該組件包含的所有接口目前都沒有被使用,並且該組件上次響 應時間已超出了預定的組件存活時間。
全文摘要
本發明提出了一種軟體組件的管理系統及方法,通過定義一個具有計數器的公共接口作為所有接口的共同標準,通過組件管理器依靠計數器和組件響應時間的處理策略,來控制組件的生命周期,從而實現組件的動態加載和卸載的管理過程。本方案可擴展性強,機制簡單,在保持整個軟體程序原有功能不變的情況下,更有效率的分配和使用系統資源,從而提高了系統的效率。
文檔編號G06F9/445GK101989203SQ201010547288
公開日2011年3月23日 申請日期2010年11月9日 優先權日2010年1月5日
發明者李俊敏, 楊志鵬, 範國華 申請人:深圳中興網信科技有限公司