專利名稱:基于用戶使用習慣的gis系統模塊加載方法
技術領域:
本發明屬于地理信息應用軟件領域。具體涉及一種基于用戶歷史操作記錄數據的智能模塊加載方法。
背景技術:
在GIS (Geographic Information System,地理信息系統)領域,隨著 GIS 軟件的應用領域日益廣泛,用戶需求顯著增加,GIS軟件的功能也越來越趨于多樣化,專業化。與此同時,更多的代碼模塊被加入到軟件當中來實現更多的功能,并且每當軟件啟動時,這些模塊都要進行預加載。但是大部分預加載的模塊并沒有被用戶使用到。這些未被使用到的預加載模塊極大地降低了軟件的啟動速度并且耗費了相當數量的內存空間,造成了時間和空間上的浪費。在動態加載方面,德國學者Kapitza等[I]做過CORBA(Common ObjectRequest Broker Architecture,公共對象請求代理體系結構)動態加載相關的研究,而基于用戶歷史數據的推薦算法被廣泛應用在網頁推薦和排序上[2] [3],但關于GIS相關軟件的智能加載,目前還沒有人給出一個合適的解決方案。
發明內容
本發明提出了一種智能的動態控制模塊預加載的方案。該方法以工程為單位,對用戶操作使用的歷史數據進行分析,并由此找出不應該被預加載的模塊,從而實現對啟動模塊加載的優化。本發明的技術方案如下:一種基于用戶使用習慣的GIS系統模塊加載方法,其特征是,
一、預處理階段:I)把GIS系統的模塊劃分為基本模塊、核心模塊和外圍模塊三種,所述基本模塊指的是GIS系統啟動以及正常運行所必需的模塊,所述核心模塊指的是超過一半以上的用戶操作所需要的預加載的模塊(表現為在步驟2)中二元關系矩陣中本模塊對應的向量元素為I的數量超過向量所包含總元素個數的一半),GIS系統的其余模塊為外圍模塊;2)通過二進制矩陣來分別建立用戶在GIS系統中的操作與核心模塊以及與外圍模塊之間多對多的二元關系映射;GIS系統中的每個核心模塊和外圍模塊對應矩陣中的一列,GIS系統中的每個操作對應矩陣中的一行,當調用GIS系統的這個操作,需要調用模塊時,這個矩陣中的對應元素被賦為1,否則為O ;3)收集用戶在GIS系統中的操作的歷史記錄,通過分析這些歷史記錄,抽取出對該用戶來說在啟動GIS系統時需要加載的核心模塊與外圍模塊列表;4)把用戶和啟動GIS系統時需要加載的核心模塊與外圍模塊列表建立對應關系,保存到數據庫中;二、啟動GIS系統時:用戶啟動GIS系統時,從數據庫中讀取和該用戶對應的核心模塊與外圍模塊列表,然后加載基本模塊以及所述核心模塊與外圍模塊列表中的所有核心模塊和外圍模塊。所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,進一步包括:三、GIS系統關閉時:當GIS系統關閉時,通過GIS系統生成LOG記錄,對數據庫中的記錄進行更新,來更好地適應用戶下次的使用需求。所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,所述一個操作對應于一個核心模塊或外圍模塊。所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,所述一個操作對應于多個核心模塊和/或外圍模塊。所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,所述用戶操作的歷史記錄,由GIS系統自動產生或者用戶編寫LOG記錄模塊產生。所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,當GIS系統啟動后,用戶操作所涉及的核心與外圍模塊未加載時,GIS系統動態加載所需的核心模塊與外圍模塊。所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,所述的數據庫為文本文件、桌面型數據庫或關系數據庫。
所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,在數據庫中為每一個GIS工程文件建立一個配置文件,保存在啟動該GIS工程文件時需要加載的核心模塊與外圍模塊列表,在打開該工程時自動加載所述核心模塊和外圍模塊,這樣直接把GIS工程文件與加載模塊對應,在啟動該工程文件時不加載與該用戶對應的核心模塊和外圍模塊,僅加載該工程文件需要加載的核心模塊和外圍模塊,進一步加快了加載速度。所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,在該GIS工程文件進行過程中,根據對核心模塊和外圍模塊的調用情況,動態更新其在數據庫中的配置文件。本發明的有益效果:本發明能使GIS軟件啟動加載的速度顯著加快,占用內存減少。并避免在軟件使用過程中部分模塊的反復加載帶來的空間上和時間上的浪費。
具體實施例方式1.建立用戶操作和GIS系統模塊的對應的二元映射關系。列出用戶操作和所述模塊的二維二進制矩陣{au},當某一用戶操作i需要預加載第j個模塊時,設置au = I,反之則為au = O。2.對模塊進行分類,將軟件啟動必須的模塊(如:控制線程調度,用戶界面等功能)設定為基本模塊,這部分模塊在任何情況下都會被預加載。將超過一半以上的用戶操作所需要的預加載的模塊(表現為在上文中提到的二元關系矩陣中本模塊對應的向量元素為I的數量超過向量所包含總元素個數的一半)設定為核心模塊,其他的設定為外圍模塊。3.以工程為單位,通過歷史數據計算評價指標向量并保存在配置文件中。對于核心模塊,我們設定一個二進制元素組成的向量H來進行描述,H中任意元素Hi用來描述一個核心模塊,當本工程使用過需要預加載某基本模塊所需要的用戶操作時,那么這個核心模塊對應的元素為1,反之則為O。對于外圍模塊,則采用向量μ來衡量用戶對模塊的使用頻率以及判斷是否需要被預加載,μ中的任意一個元素為一個在ο-1之間的小數,μ j的計算方法為:使用本工程內使用第j模塊的用戶操作數+工程內總用戶操作數(Σ μ j)。4.加載推薦。當新建一個工程的時候,使用最近修改時間離現在最近的n(n可以由用戶設定,默認值為7)個工程的上述配置文件參與計算,對于核心模塊的η個配置向量,進行按位或運算,所得向量中值為I的需要加載。對于外圍模塊的η個配置向量按照時間順序權重依次衰減的順序進行加權平均,得到新配置向量μ,對所得值進行排序,在導入每個模塊再被預加載時所占用的內存大小數據,在占用內存不超過I (I由當全部外圍模塊被加載到內存當中,所占用總內存的比例所確定,初始值為1/2)可以由用戶設定,默認值為1/2) (MB)的情況下,選取盡可能多的前Μ(Μ為系統生成)個作為需要預加載的模塊。5.當本工程使用結束時,由用戶操作數據生成基本模塊配置向量存入配置文件中(生成方法見步驟3),而將由用戶操作數據生成的核心模塊配置向量(生成方法見步驟3),與之前得到的向量μ求平均值,將得到的值存入配置文件中。6.當打開舊有工程文件時,只讀取本文件的配置文件,進行步驟4中涉及到的相關計算,求出需要預加載的模塊,當本工程關閉時,利用用戶操作數據來進行計算對配置文件進行更新。實施例:下面以開源軟件QuantumGIS的部分加載模塊為例,詳述本發明的實施方式。我們為QuantumGIS的每個工程文件添加一個自定義的配置文件,并將這個配置文件與工程文件的讀取路徑進行關聯,用于實現上述方法。當新建工程一個QuantumGIS工程文件(.qgs文件)時:
1.讀取最后修改時間距離當前時間最近的η個工程文件中的配置文件。2.對這η個配置文件中的代表模塊元素進行計算(基本模塊為按位或運算,核心模塊為權重依據時間衰減的加權平均運算),計算出本工程文件的配置文件,并依照配置向量確定所有需要預加載模塊。3.當用戶在本工程文件操作時,后臺程序在內存中記錄用戶使用行為,簡單統計用戶操作,不進行相關計算。當本工程文件被關閉時,對用戶調用的不同操作數依照之前預定義的描述用戶操作和后臺代碼模塊之間關系的二進制矩陣進行演算,將用戶操作數轉換為模塊調用次數。基本模塊按照是否被調用來更新本工程配置文件,核心模塊把所得模塊調用次數/操作數,生成一個核心模塊配置向量,再將在2中由核心模塊歷史配置文件生成的核心模塊配置向量求出平均值,得到核心模塊的配置向量。將最后生成的基本模塊配置向量和核心模塊配置向量存入本工程配置文件中。當打開一個舊有的QuantumGIS工程文件時:1.只讀取本工程文件的配置文件。2.依照本工程的配置文件確定所有預加載模塊。3.執行新建一個QuantumGIS工程文件的步驟3。參考文獻[1]Kapitza, Riidiger, and Franz Hauck." DLS:a CORBA service for dynamicloading of code." On The Move to Meaningful Internet Systems 2003:CoopIS,D0A,and ODBASE (2003):1333-1350.
[2]Page,Lawrence, et al.〃 The PageRank citation ranking:bringing orderto the web." (1999).
[3]Xueming Yang." Personalized Web Recommending Based on OntologyLearnin g.〃 Journal of Intelligence 28.3 (2009):171-174.
權利要求
1.一種基于用戶使用習慣的Gis系統模塊加載方法,其特征是, 一、預處理階段: 1)把GIS系統的模塊劃分為基本模塊、核心模塊和外圍模塊三種,所述基本模塊指的是GIS系統啟動以及正常運行所必需的模塊,所述核心模塊指的是超過一半以上的用戶操作所需要的預加載的模塊,GIS系統的其余模塊為外圍模塊; 2)通過二進制矩陣來建立用戶在GIS系統中的操作與核心模塊以及與外圍模塊之間多對多的二兀關系映射;GIS系統中的每個核心模塊和外圍模塊對應矩陣中的一列,GIS系統中的每個操作對應矩陣中的一行,當調用GIS系統的這個操作,需要調用模塊時,這個矩陣中的對應元素被賦為1,否則為O ; 3)收集用戶在GIS系統中的操作的歷史記錄,通過分析這些歷史記錄,抽取出對該用戶來說在啟動GIS系統時需要加載的核心模塊與外圍模塊列表; 4)把用戶和啟動GIS系統時需要加載的核心模塊與外圍模塊列表建立對應關系,保存到數據庫中; 二、啟動GIS系統時: 5)用戶啟動GIS系統時,從數據庫中讀取和該用戶對應的核心模塊與外圍模塊列表,然后加載基本模塊以及所述核心模塊與外圍模塊列表中的所有核心模塊和外圍模塊。
2.如權利要求1所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,進一步包括: 三、GIS系統關閉時: 當GIS系統關閉時,通過GIS系統生成L`OG記錄,對數據庫中的記錄進行更新,來更好地適應用戶下次的使用需求。
3.如權利要求1或2所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,所述一個操作對應于一個核心模塊或外圍模塊。
4.如權利要求1或2所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,所述一個操作對應于多個核心模塊和/或外圍模塊。
5.如權利要求1或2所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,所述用戶操作的歷史記錄,由GIS系統自動產生或者用戶編寫LOG記錄模塊產生。
6.如權利要求1或2所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,當GIS系統啟動后,用戶操作所涉及的核心與外圍模塊未加載時,GIS系統動態加載所需的核心模塊與外圍模塊。
7.如權利要求1或2所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,所述的數據庫為文本文件、桌面型數據庫或關系數據庫。
8.如權利要求1或2所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,在數據庫中為每一個GIS工程文件建立一個配置文件,保存在啟動該GIS工程文件時需要加載的核心模塊與外圍模塊列表,在打開該工程時自動加載所述核心模塊和外圍模塊。
9.如權利要求8所述的基于用戶使用習慣的GIS系統模塊加載方法,其特征是,在該GIS工程文件進行過程中,根據對核心模塊和外圍模塊的調用情況,動態更新其在數據庫中的配置文件。
全文摘要
本發明公布了一種基于用戶操作日志的智能控制模塊加載的方法。包括通過事先建立的二元映射關系來確定將界面操作模塊與后臺加載模塊對應起來;設計一套合理的將用戶操作數據與模塊使用狀況對應起來的一套評價指標;根據用戶歷史操作數據計算出評價指標并生成與工程文件配套的配置文件;當工程文件被開啟或者新建時基于配置文件來確定需要預加載的模塊并實施;當工程關閉時基于新生成的用戶操作數據對配置文件進行更新。所述方法能夠達到節省內存空間,提高加載速度的目的。
文檔編號G06F9/445GK103246539SQ201310194998
公開日2013年8月14日 申請日期2013年5月21日 優先權日2013年5月21日
發明者高勇, 李浩然, 郁浩, 劉磊, 郭瀟 申請人:北京大學