本發明專利技術公開了基于網絡的程序計算結果存儲與檢索方法及系統,屬于計算機領域。本發明專利技術所涉及的方法包括:用戶計算機從網絡中程序函數監控規則服務中獲取受監控函數列表;用戶計算機上監控受監控函數實例的執行;從網絡中程序函數計算結果檢索服務中檢索受監控函數實例歷史計算結果,若存在歷史計算結果則作為本次受監控函數實例的計算結果;否則,受監控函數實例在用戶計算機上直接執行出計算結果,并將計算結果通過網絡中程序函數計算結果更新服務存儲到程序函數計算結果存儲庫中。本發明專利技術能夠有效地加速在網絡環境下多臺計算機程序的運行效率,尤其是適合多臺計算機上存在大量公共重復且費時函數的程序。
【技術實現步驟摘要】
基于網絡的程序計算結果存儲與檢索方法及系統
本專利技術屬于計算機領域,主要關注提高網絡環境下程序計算的執行效率。
技術介紹
目前提高程序計算的執行效率主要有兩類手段,一類是提高計算機硬件CPU的處理能力;另外一類是提高程序本身的并發執行度。本專利技術則從網絡上眾多用戶計算機中存在大量相同程序和相同函數以及相同參數值的多次重復調用的事實為出發,通過有效地共享網絡上眾多用戶計算機中存在大量相同程序和相同函數以及相同參數值的歷史計算結果來大大減少相同程序和相同函數及相同參數值情況下的重復執行,從而提高用戶計算機中程序的執行效率。
技術實現思路
本專利技術目的是通過有效地共享網絡上眾多用戶計算機中存在大量相同程序和相同函數以及相同參數值的歷史計算結果來大大減少相同程序和相同函數及相同參數值情況下的重復執行,從而提高用戶計算機中程序的執行效率,提供一種基于網絡的程序計算結果存儲與檢索方法及系統。I.本專利技術提供的基于網絡的程序計算結果存儲與檢索方法,包括具體步驟如下第I、用戶計算機設定“程序函數計算結果服務器”的網絡訪問地址;第2、用戶計算機從網絡中“程序函數計算結果服務器”的“程序函數監控規則檢索服務”中獲取受監控函數列表,并更新到本地受監控函數庫中;若用戶計算機增加新的本地受監控函數,則首先將新增的本地受監控函數到本地受監控函數庫中,并通過網絡中“程序函數計算結果服務器”的“程序函數監控規則更新服務”更新到“程序函數監控規則存儲庫”;第3、用戶計算機中“程序函數監控軟件”加載用戶指定待運行的“用戶程序”到內存,根據本地受監控函數庫來判斷當前用戶程序是否是受監控程序,若是受監控程序,則跳到第4步驟運行;否則跳到第5步驟運行;第4、因用戶程序為受監控程序,因此用戶計算機中“程序函數監控軟件”向網絡中 “程序函數計算結果服務器”的“程序函數計算結果檢索服務”檢索當前用戶程序實例的歷史計算結果,若存在歷史計算結果,則直接作為用戶程序此次運行計算結果,跳到第10步驟;否則跳到第5步驟運行;第5、用戶計算機中“程序函數監控軟件”根據本地受監控函數庫對用戶指定待運行的“用戶程序”設置監控鉤子;第6、用戶計算機中“程序函數監控軟件”運行用戶指定待運行的程序,若執行到監控鉤子時,記錄當前受監控程序函數實例的名稱、參數列表及參數值,并向網絡中“程序函數計算結果服務器”的“程序函數計算結果檢索服務”檢索當前受監控程序函數實例的歷史計算結果,并繼續跳到第7步驟運行;否則用戶計算機上一直運行用戶程序,直至用戶程序結束點,跳到第10步驟運行;第7、若網絡中“程序函數計算結果服務器”的“程序函數計算結果檢索服務”檢索到當前受監控程序函數實例的歷史計算結果,則向用戶計算機中程序函數監控軟件返回當前受監控程序函數實例的歷史計算結果,用戶計算機中程序函數監控軟件將當前受監控程序函數實例的歷史計算結果作為當前受監控程序函數實例的此次運行計算結果,不再進一步在用戶計算機上重新運行當前受監控程序函數實例具體代碼,繼續跳到第6步驟運行; 否則跳到第8步驟運行;第8、若網絡中“程序函數計算結果服務器”的“程序函數計算結果檢索服務”檢索不到當前受監控程序函數實例的歷史計算結果,則用戶計算機上直接運行當前受監控程序函數實例具體代碼,并得出計算結果,并根據更新策略可進一步將當前受監控程序函數實例最新計算結果通過網絡中“程序函數計算結果服務器”的“程序函數計算結果更新服務” 更新到網絡中的“程序函數計算結果存儲庫”,繼續跳到第6步驟運行;第9、若運行用戶程序到程序結束點,用戶計算機中“程序函數監控軟件”記錄當前用戶程序的計算結果,根據本地受監控函數庫來判斷當前用戶程序是否是受監控程序,若是則根據更新策略可通過網絡中“程序函數計算結果服務器”的“程序函數計算結果更新服務”更新到網絡中的“程序函數計算結果存儲庫”;第10、程序執行結束。第I步驟所述的“程序函數計算結果服務器”可以不止一個,多個“程序函數計算結果服務器”之間定期或實時同步“程序函數監控規則存儲庫”和“程序函數計算結果存儲庫”;用戶計算機可增加新的本地受監控函數,并通過網絡中“程序函數計算結果服務器”的 “程序函數監控規則更新服務”更新到“程序函數監控規則存儲庫”;第I步驟所述的“程序函數監控規則存儲庫”存放受監控的函數集合和受監控的程序集合,統稱為“受監控程序函數”。每一個受監控函數的基本信息包括監控程序函數唯一索引號、程序名、函數名、參數個數、{參數名、參數類型}序列表、程序函數摘要、函數執行結果的有效時間、更新策略。程序函數的返回值屬于參數,程序名和函數名至少有一個非空。程序函數摘要為程序及函數代碼的消息摘要,以標識其在網絡范圍內唯一性;受監控的程序函數實例計算結果的更新策略包括全部更新、隨機更新、同步更新、 異步更新多種組合更新策略。第I步驟所述的“程序函數計算結果存儲庫”存放受監控的程序函數實例的歷史上計算結果。每一個受監控程序函數執行實例的參數及執行結果的存儲基本信息包括程序函數唯一索引號、程序名、函數名、參數個數、(參數名,參數值)序列表、函數執行時間、用戶計算機網絡地址、用戶計算機計算環境信息、用戶身份信息。程序名和函數名至少有一個非空。為了快速檢索,在程序函數唯一索引號、函數名、參數名關鍵字段建立索引;第I步驟所述的用戶計算機從網絡中“程序函數計算結果服務器”的“程序函數監控規則服務”中獲取受監控函數列表,既可以是定期執行,也可以是每次用戶計算機重新啟動后執行,也可以是每次運行用戶程序前執行;“程序函數計算結果服務器”的“程序函數監控規則更新服務”根據“程序函數計算結果存儲庫”存放相同受監控的程序函數實例的歷史上多個計算結果,進行程序函數執行性能分析和用戶計算機計算環境信息可靠性分析,動態維護“程序函數監控規則存儲庫”;所述系統包括程序計算裝置和程序函數計算結果服務器裝置。程序計算裝置包括本地受監控函數庫模塊、待運行程序集合模塊、程序函數監控軟件模塊;程序函數計算結果服務器裝置包括“程序函數監控規則檢索服務”模塊、“程序函數監控規則更新服務”模塊、 “程序函數計算結果檢索服務”模塊、“程序函數計算結果更新服務”模塊、“程序函數監控規則存儲庫”持久存儲介質和“程序函數計算結果存儲庫”持久存儲介質;程序計算裝置中的“本地受監控函數庫模塊”通過程序函數計算結果服務器裝置中“程序函數監控規則檢索服務”模塊從“程序函數監控規則存儲庫”持久存儲介質中獲取受監控函數集合,并存儲到程序計算裝置本地存儲中;程序計算裝置中的“程序函數監控軟件模塊”動態監控運行“待運行程序集合模塊”中用戶指定的程序,當執行到受監控函數時, 由程序計算裝置中的“程序函數監控軟件模塊”通過程序函數計算結果服務器裝置中的“程序函數計算結果檢索服務”模塊來檢索受監控函數實例的歷史執行結果,“程序函數計算結果檢索服務”模塊在“程序函數計算結果存儲庫”持久存儲介質查詢是否存在受監控函數實例的歷史執行結果,“程序函數計算結果檢索服務”模塊將查詢結果返回給程序計算裝置中的“程序函數監控軟件模塊”;若存在受監控函數實例的歷史執行結果,則“程序函數監控軟件模塊”跳過受監控函數執行直接使用歷史執行結果,若不存在受監控函數實例的歷史執行結果,則“程本文檔來自技高網...
【技術保護點】
基于網絡的程序計算結果存儲與檢索方法,其特征在于,所述方法包括具體步驟如下:第1、用戶計算機設定“程序函數計算結果服務器”的網絡訪問地址;第2、用戶計算機從網絡中“程序函數計算結果服務器”的“程序函數監控規則檢索服務”中獲取受監控函數列表,并更新到本地受監控函數庫中;若用戶計算機增加新的本地受監控函數,則首先將新增的本地受監控函數到本地受監控函數庫中,并通過網絡中“程序函數計算結果服務器”的“程序函數監控規則更新服務”更新到“程序函數監控規則存儲庫”;第3、用戶計算機中“程序函數監控軟件”加載用戶指定待運行的“用戶程序”到內存,根據本地受監控函數庫來判斷當前用戶程序是否是受監控程序,若是受監控程序,則跳到第4步驟運行;否則跳到第5步驟運行;第4、因用戶程序為受監控程序,因此用戶計算機中“程序函數監控軟件”向網絡中“程序函數計算結果服務器”的“程序函數計算結果檢索服務”檢索當前用戶程序實例的歷史計算結果,若存在歷史計算結果,則直接作為用戶程序此次運行計算結果,跳到第10步驟;否則跳到第5步驟運行;第5、用戶計算機中“程序函數監控軟件”根據本地受監控函數庫對用戶指定待運行的“用戶程序”設置監控鉤子;第6、用戶計算機中“程序函數監控軟件”運行用戶指定待運行的程序,若執行到監控鉤子時,記錄當前受監控程序函數實例的名稱、參數列表及參數值,并向網絡中“程序函數計算結果服務器”的“程序函數計算結果檢索服務”檢索當前受監控程序函數實例的歷史計算結果,并繼續跳到第7步驟運行;否則用戶計算機上一直運行用戶程序,直至用戶程序結束點,跳到第10步驟運行;第7、若網絡中“程序函數計算結果服務器”的“程序函數計算結果檢索服務”檢索到當前受監控程序函數實例的歷史計算結果,則向用戶計算機中程序函數監控軟件返回當前受監控程序函數實例的歷史計算結果,用戶計算機中程序函數監控軟件將當前受監控程序函數實例的歷史計算結果作為當前受監控程序函數實例的此次運行計算結果,不再進一步在用戶計算機上重新運行當前受監控程序函數實例具體代碼,繼續跳到第6步驟運行;否則跳到第8步驟運行;第8、若網絡中“程序函數計算結果服務器”的“程序函數計算結果檢索服務”檢索不到當前受監控程序函數實例的歷史計算結果,則用戶計算機上直接運行當前受監控程序函數實例具體代碼,并得出計算結果,并根據更新策略可進一步將當前受監控程序函數實例最新計算結果通過網絡中“程序函數計算結果服務器”的“程序函數計算結果更新服務”更新到網絡中的“程序函數計算結果存儲庫”,繼續跳到第6步驟運行;第9、若運行用戶程序到程序結束點,用戶計算機中“程序函數監控軟件”記錄當前用戶程序的計算結果,根據本地受監控函數庫來判斷當前用戶程序是否是受監控程序,若是則根據更新策略通過網絡中“程序函數計算結果服務器”的“程序函數計算結果更新服務” 更新到網絡中的“程序函數計算結果存儲庫”;第10、程序執行結束。...
【技術特征摘要】
【專利技術屬性】
技術研發人員:李旭東,
申請(專利權)人:南開大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。