[發明專利]用于加載程序模塊的方法和系統有效
| 申請號: | 201110144285.2 | 申請日: | 2011-05-31 |
| 公開(公告)號: | CN102810065A | 公開(公告)日: | 2012-12-05 |
| 發明(設計)人: | 戴海斌;S.海尼斯;J.加里;鄔海杰 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445;H04L29/08 |
| 代理公司: | 北京市柳沈律師事務所 11105 | 代理人: | 黃小臨 |
| 地址: | 美國紐*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 加載 程序 模塊 方法 系統 | ||
技術領域
應用程序處理領域。更具體地,本發明尤其涉及對應用程序中具有層級關系的程序模塊進行加載的方法及系統。
背景技術
隨著計算機應用程序的規模、代碼量日益龐大以及程序模塊化程度的不斷提升,越來越多的程序開發人員通過引用已有的通用代碼(例如通用庫文件Common?Library)來避免重復性的編程工作。這些具有復用性的代碼可能包括程序類Class以及其它代碼包,它們是構成一個應用程序的組件或模塊。一個大型應用程序可能由多個這樣的程序模塊構成,并且這些程序模塊間往往存在者層級關系(也可理解為父子關系或調用的依賴關系)。目前很多應用程序在開發、測試或運行時,需要通過網絡傳輸/調用/加載這些可復用的存在層級關系的眾多程序組件或模塊。
目前存在以下幾種通過網絡傳輸程序模塊的技術方案。第一種是加載整個庫文件(Library)。由于庫文件通常體積龐大,而真正需要調用其實只是庫文件中的部分模塊,因此加載整個庫文件會導致不必要的內容傳輸,延長了加載的時間。
第二種現有技術中的技術方案是僅加載所需要的代碼單元。例如,客戶端的微件Widget?A需要某個庫文件中的100個代碼包,而客戶端的微件Widget?B需要該庫文件中的50個代碼包(其中有一些代碼包和Widget?A需要的代碼包相同),雖然在傳輸的過程中Widget?A和B均可以只請求服務器端傳輸其所需的代碼包,并且也可以避免傳輸相同的代碼包,可以避免不必要的及重復的代碼內容傳輸,但是由于Widget?A和B需要對其所需的每個代碼包向服務器發出一個請求(request),導致網絡請求的數量劇增,同樣會大大延長加載的時間。
第三種現有技術中的技術方案是由程序開發人員事先將客戶端不同的應用(例如Widget)所需要的代碼包進行打包,然后在每個Widget調用時直接將打包好的程序包發送至客戶端。這種技術方案的好處是可以避免加載整個庫文件,也可以避免過多的網絡請求,但缺點是可能有大量的重復的代碼包被發送至客戶端,因為客戶端的Widget?A所需要的代碼包與Widget?B所需要的代碼包存在重復,在松耦合(Loose-Coupling)程序開發的情形下(松耦合是指某一應用程序存在多個開發人員,例如Widget?A的開發人員和WidgetB的開發人員彼此不知曉對方所開發的Widget里面是否需要調用相同的代碼包),不同的程序開發者無法事先知曉哪些代碼包是重復的。
發明內容
考慮到上述存在的問題,本發明的目的之一在于提供一種能夠在松耦合的情況下加載具有層級關系的程序模塊的方法或系統。本發明的又一目的在于提供一種能夠在松耦合的情況下加載具有層級關系的程序模塊,并且能夠避免重復代碼傳輸。本發明的又一目的在于提供一種能夠在松耦合的情況下加載具有層級關系的程序模塊,并且能夠避免不必要的代碼傳輸。本發明的又一目的在于提供一種能夠在松耦合的情況下加載具有層級關系的程序模塊,并且能夠避免大量的或復雜的網絡請求。上述四個子目的彼此獨立,本發明的發明目的并非要同時達到上述四個子目的,而是可能僅實現目的之一或任意數量的組合。
根據本發明的一個方面,提供了一種用于加載具有層級關系的程序模塊的方法,包括:接收來自客戶端的加載程序模塊的請求,所述請求中包含待加載程序模塊中的根模塊信息;根據所述請求中的根模塊信息,獲取所述待加載根模塊以及所述待加載根模塊的子模塊;以及將所述根模塊以及所述根模塊的子模塊發送至所述客戶端。
根據本發明的一個實施例,上述方法還包括:接收來自客戶端的關于已加載的程序模塊的通知,所述通知中包含已加載的程序模塊中的根模塊信息;以及根據所述通知中的根模塊信息,獲取已加載的根模塊以及所述已加載的根模塊的子模塊信息。
根據本發明的另一方面,提供了一種用于加載具有層級關系的程序模塊的系統,包括:請求接收裝置,被配置為接收來自客戶端的加載程序模塊的請求,所述請求中包含待加載程序模塊中的根模塊信息;第一獲取裝置,被配置為根據所述請求中的根模塊信息,獲取所述待加載根模塊以及所述待加載根模塊的子模塊;以及加載裝置,被配置為將所述根模塊以及所述根模塊的子模塊發送至所述客戶端。
根據本發明的一個實施例,上述系統還包括:通知接收裝置,被配置為接收來自客戶端的關于已加載的程序模塊的通知,所述通知中包含已加載的程序模塊中的根模塊信息;以及第二獲取裝置,被配置為根據所述通知中的根模塊信息,獲取已加載的根模塊以及所述已加載的根模塊的子模塊信息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110144285.2/2.html,轉載請聲明來源鉆瓜專利網。





