專利名稱:在應用軟件系統中新增信息流管理功能的實現方法
技術領域:
本發明涉及一種軟件功能擴展的方法,尤其涉及一種在WIN32體系平臺上,可不修改應用軟件系統源代碼快速實現在應用軟件系統中新增信息流管理功能的方法。
背景技術:
目前,社會信息化水平逐步提高、信息化建設方興未艾,各行各業都在大量使用各種計算機應用軟件系統,來管理各類信息、實現業務功能、簡化工作流程、提高工作效率。比如,各種ERP系統(企業資源管理系統)、OA系統(辦公自動化系統)、MIS系統(管理信息系統)等。這些應用軟件系統或是成熟的軟件產品,或是根據客戶需求定制開發的。由于WINDOWS操作系統的廣泛應用,這些應用軟件系統大多是運行在WIN32體系平臺之上。隨著互聯網技術的普及,越來越多的應用軟件系統是網絡化的C/S(Client/Server)結構或B/S(Browser/Server)結構模式。
這些應用軟件系統,無論是成熟的軟件產品,或是定制開發的,其應用目的主要是解決客戶的主要業務需求、實現主要業務功能,往往缺少其他信息流的管理功能,尤其是缺少與業務密切相關的圖像、視頻、聲音、動畫等其他信息流的管理功能。
以財務軟件為例,財務軟件是MIS系統的一種,主要是幫助企業完成賬務處理、工資管理、固定資產管理、往來款項管理、報表生成和財務數據分析等財務管理功能。財務軟件中處理的是各種財務數據,原始財務數據通常由財務人員錄入,各種報表和分析數據由財務軟件根據一定的規則運算得出。企業通過財務軟件的應用,可以大大提高其財務管理效率。但是,在財務管理和會計工作中,大量的紙質原始憑證——如發票、報銷單、支票、業務合同等,仍然使用傳統方法進行存儲管理。這些原始憑證又非常重要并且與會計業務緊密相關,雖然這些原始憑證上的數據已經存儲在財務軟件的數據庫中,但當財務人員需要查看這些原始憑證時,仍然需要在大量的紙質賬本或文件夾中去尋找。如果采用信息化的管理手段,通過掃描設備將紙質原始憑證轉換為計算機數字圖像文件,存儲到數據庫中,并通過相關的索引來快速查找、調閱原始憑證的圖像文件,可以方便地對財務原始憑證進行管理。但是,現有的財務軟件沒有提供這種功能;雖然有很多成熟的文檔圖像管理軟件可以實現這樣的功能,但是此類軟件與財務軟件彼此獨立,其提供的圖像管理功能很難與財務管理的業務需求銜接在一起。如果需要在財務軟件中增加與業務緊密相關的其他信息流管理功能,則需要對現有的財務軟件進行改造或二次開發。對于其他應用軟件系統來講,存在著同樣的問題。
對現有應用軟件系統進行改造或二次開發,雖然可以實現其他信息流的業務相關化管理,但是在改造和二次開發過程中,仍然存在如下的問題應用軟件開發者的優勢和專業所在是應用軟件本身的業務和技術方面,對其他多媒體信息流的處理技術方面往往不夠專業。在應用軟件系統中增加與業務相關的其他信息流管理功能時,軟件開發者要么獨立開發信息流管理模塊,要么集成第三方成熟的信息流管理模塊。無論那種方式,都需要編寫或修改大量的軟件源代碼,還要進行大量的單項測試和聯合調試,開發效率不高、開發成本很大。尤其是為客戶定制開發的大型網絡化應用軟件系統(如ERP系統和OA系統),其改造和二次開發的代價有時會使客戶望而卻步。
發明內容
為了解決在現有應用軟件系統基礎上通過修改軟件源代碼新增信息流管理功能所帶來的開發和改造成本大、周期長、效率不高的問題,本發明提供了一種快速開發和改造計算機應用軟件系統的方法,可以不通過修改應用軟件系統的源代碼,就能夠在應用軟件系統中新增信息流管理功能。
本發明實現其目的所采用的技術方案是本發明提供了一種在應用軟件系統中新增信息流管理功能的實現方法,包括以下步驟(1)用戶向應用軟件系統模塊發出操作請求;(2)代碼注入軟件模塊捕獲該操作請求;
(3)代碼注入軟件模塊將捕獲到的操作請求與操作響應模板中指定的操作進行對比,判斷是否屬于需要增加信息流管理功能的操作;(4)若捕獲到的操作請求屬于需要增加信息流管理功能的操作,代碼注入軟件模塊調用信息流管理軟件模塊,執行操作響應模板中定義的響應動作,完成響應動作后,由應用軟件系統模塊按其原有的設定規則繼續響應用戶的操作請求;若捕獲到的操作不屬于需要增加信息流管理功能的操作,則代碼注入軟件模塊不做處理,直接由應用軟件系統模塊按其原有的設定規則繼續響應用戶的操作請求。
作為本發明的一種改進,所述應用軟件系統模塊是處于C/S運行模式或單機運行模式中任意一種應用軟件系統模塊,代碼注入軟件模塊是掛接在應用軟件系統模塊上的HOOK引擎軟件模塊。
作為本發明的一種改進,所述HOOK引擎軟件模塊與操作響應模板位于用戶的客戶端,應用軟件系統模塊位于應用軟件系統服務器或用戶的客戶端,信息流管理軟件模塊位于信息流管理軟件服務器;所述步驟(1)中用戶向應用軟件系統模塊發出操作請求,是通過用戶運行客戶端軟件模塊訪問部署在應用軟件系統服務器上的應用軟件系統模塊或直接運行單機應用軟件系統模塊實現的;所述步驟(2)中代碼注入軟件模塊捕獲操作請求,是通過掛接在客戶端軟件模塊上的HOOK引擎軟件模塊捕獲客戶端軟件模塊上的所有操作響應實現的。
作為本發明的一種改進,所述應用軟件系統模塊是B/S結構的應用軟件系統模塊,代碼注入軟件模塊是掛接在瀏覽器軟件模塊上的BHO瀏覽器插件模塊。
作為本發明的一種改進,所述瀏覽器軟件模塊與操作響應模板位于用戶的客戶端,應用軟件系統模塊位于應用軟件系統服務器,信息流管理軟件模塊位于信息流管理軟件服務器;用戶的客戶端與應用軟件系統服務器和信息流管理系統服務器之間利用HTTP協議通信;所述步驟(1)中用戶向應用軟件系統模塊發出操作請求,是通過用戶運行瀏覽器軟件模塊訪問部署在應用軟件系統服務器上的應用軟件系統模塊實現的;所述步驟(2)中代碼注入軟件模塊捕獲操作請求,是通過掛接在瀏覽器軟件模塊上的BHO瀏覽器插件模塊捕獲瀏覽器軟件模塊上的所有操作響應實現的。
本發明的有益效果是不通過修改應用軟件系統源代碼,即可實現新增其他信息流管理功能。由于不需要修改應用軟件系統的源代碼,在新增信息流管理功能時,避免了大量的軟件代碼編寫和測試工作,軟件升級工作也非常方便,用戶可以在熟悉的操作界面上使用軟件,大大提高了軟件的開發和改造效率,縮短了開發和改造周期,降低了開發和改造成本,具有顯著的社會和經濟效益。
圖1是本發明采用HOOK技術的UML活動圖;圖2是本發明采用BHO技術的UML部署圖;具體實施方式
針對發明目的,本發明提出了一個代碼注入軟件模塊的應用概念,即利用HOOK或BHO技術將信息流管理軟件與應用軟件系統掛接在一起的方法。該方法可以不通過修改應用軟件系統的源代碼,就能夠在應用軟件系統中新增信息流管理功能。
鉤子技術(HOOK)或BHO技術均屬于軟件代碼注入的一種實現方式。在WIN32體系平臺上,利用鉤子技術(HOOK)或BHO技術,在應用軟件系統中注入鉤子引擎(HOOK ENGINE)或BHO瀏覽器插件,通過鉤子引擎或BHO瀏覽器插件將信息流管理軟件(實現其他信息流管理功能的軟件)與應用軟件系統緊密掛接在一起,以實現在應用軟件系統中新增信息流管理功能的目的。具體說明如下(1)對于運行在WIN32體系平臺上的計算機軟件,一個顯著的特征是WIN32API(應用程序編程接口)技術和GUI(圖形化用戶界面)技術的應用。WIN32API技術為運行在WIN32體系平臺上的應用軟件提供大量的開放的對象和方法調用。GUI技術為用戶提供了諸如窗口(Windows)、菜單(Menu)、按鈕(Button)、文本編輯框(TextEdit)等圖形化對象(Graphic Object),用戶通過操作這些對象來實現特定的功能。
(2)WEB瀏覽器(Explorer)是HTTP協議(超文本傳輸協議)的解析器和對象容器(Object Container)。HTTP協議是開放的標準協議,WEB瀏覽器提供了一種可擴展的、可定制的方法和接口——BHO(瀏覽器輔助對象)技術,通過BHO技術可以方便地在瀏覽器上進行功能擴展。
(3)目前,通過對WIN32API和GUI技術的應用,已有非常成熟的技術可以在WIN32體系平臺上實現進程或對象信息的捕獲,這種技術稱之為鉤子技術(HOOK)。通過HOOK技術,可以捕獲到用戶當前在進行何種操作(如單擊鼠標左鍵、移動光標、輸入數據等),以及操作的對象和內容(如運行哪個軟件、打開哪個窗口、單擊哪個按鈕、輸入什么樣的數據等)。通過BHO技術,同樣可以輕松捕獲到用戶在瀏覽器當中正在進行何種操作以及操作的對象和內容。
(4)利用HOOK技術和BHO技術,捕獲到用戶的操作信息后,可以在原有操作功能基礎上擴展應用軟件的功能。比如,當用戶在財務軟件中單擊一個名稱為“增加”的按鈕時,財務軟件本身的功能是增加一條財務數據;通過HOOK技術或BHO技術捕獲到用戶的這個操作后,可以調用另一個軟件來增加一個原始憑證的圖像文件。這種通過HOOK技術或BHO技術實現功能擴展的軟件,稱之為HOOK Engine(鉤子引擎)或BHO瀏覽器插件。
(5)用戶在計算機上操作的軟件、對象、內容雖然很多,卻往往只需要對其中的某幾項操作進行功能擴展。比如,用戶一邊操作財務軟件進行財務管理,一邊操作電子郵件軟件收發電子郵件;用戶操作財務軟件時打開了多個窗口,有的窗口是完成賬務處理的,有的窗口是完成報表分析的;在賬務處理窗口中,有很多按鈕、文本編輯框、菜單,有的按鈕是用來增加一條賬目,有的按鈕是用來刪除一條賬目。而用戶只需要在增加一條賬目時增加該賬目附屬的原始憑證圖像文件,在刪除一條賬目時刪除該賬目附屬的原始憑證圖像文件。為此,需要為鉤子引擎或BHO瀏覽器插件預先定義一個操作響應模板,該模板說明了鉤子引擎或BHO瀏覽器插件在哪個軟件的哪種操作發生時,應該調用哪個信息流管理軟件,完成什么樣的功能擴展。
(6)綜上所述,當需要在現有應用軟件系統上新增其他信息流管理功能時,通過鉤子技術或BHO技術、鉤子引擎或BHO瀏覽器插件,捕獲應用軟件系統的各項操作,和預定義的操作響應模板進行對比,一旦捕獲到需要增加信息流管理功能的操作時,鉤子引擎或BHO瀏覽器插件立即根據預定義模板中設定的響應方法,調用相應的信息流管理軟件,完成相應的信息流管理功能,并通過數據索引將信息流與應用軟件的業務數據流關聯起來。采用上述方法,不需要對現有應用軟件系統做任何代碼修改,只要開發一個通用的鉤子引擎或BHO瀏覽器插件,開發一個通用的信息流管理軟件或使用成熟的第三方信息流管理軟件;然后根據應用軟件系統新增信息流管理功能的具體需求,結合信息流管理軟件的調用方法,預定義一個操作響應模板;再將鉤子引擎或BHO瀏覽器插件、信息流管理軟件安裝到應用軟件系統所在的計算機上,即可實現新增其他信息流管理功能的目的。
(7)對于C/S運行模式或單機運行模式的應用軟件系統,采用鉤子技術和鉤子引擎來新增信息流管理功能;對于B/S結構的應用軟件系統,采用BHO技術和BHO瀏覽器插件來新增信息流管理功能。
如前所述,本發明所述的利用HOOK技術的方法是在應用軟件系統中注入鉤子引擎(HOOK ENGINE),并定義一個操作響應模板,模板中指定了需要增加信息流管理功能的操作,以及對應的響應方法。當用戶運行應用軟件系統時,鉤子引擎也將啟動,并開始捕獲用戶在應用軟件系統上的所有操作,然后將捕獲到的操作與預定義的操作響應模板進行對比,一旦符合模板中指定的需要增加信息流管理功能的操作時,鉤子引擎立即根據預定義模板中設定的響應方法,調用相應的信息流管理軟件,完成相應的信息流管理功能,并通過數據索引將信息流與應用軟件的業務數據流關聯起來。
本發明所述的利用BHO技術的方法是在客戶端瀏覽器上注入BHO插件,并定義一個操作響應模板,模板中指定了需要增加信息流管理功能的操作,以及對應的響應方法。當用戶啟動瀏覽器時,BHO插件也一同被啟動。此后,BHO插件將捕獲瀏覽器上的所有操作,然后與預定義的操作響應模板進行對比,一旦捕獲到需要增加信息流管理功能的操作時,BHO插件立即根據預定義模板中設定的響應方法,在瀏覽器中調用相應的信息流管理軟件,完成相應的信息流管理功能,并通過數據索引將信息流與應用軟件的業務數據流關聯起來。
以下結合附圖分別說明上述兩種方法的實施方式。
利用HOOK技術實現本發明目的的實施方式如圖1所示,包括以下步驟步驟101用戶向應用軟件系統模塊發出操作請求;步驟102掛接在應用軟件系統模塊上的HOOK引擎軟件模塊捕獲該操作請求;步驟103HOOK引擎軟件模塊將捕獲到的操作與操作響應模板中指定的操作進行對比,判斷其是否屬于需要增加信息流管理功能的操作;
步驟104若捕獲到的操作請求屬于需要增加信息流管理功能的操作,HOOK引擎軟件模塊調用信息流管理軟件模塊,執行操作響應模板中定義的響應動作,完成響應動作后,由應用軟件系統模塊按其原有的設定規則繼續響應用戶的操作請求;步驟105若捕獲到的操作不屬于需要增加信息流管理功能的操作,HOOK引擎軟件模塊不做處理,直接由應用軟件系統模塊按其原有的設定規則繼續響應用戶的操作請求。
以C/S結構的財務軟件為例,利用HOOK技術實現在財務軟件中增加原始憑證影像流管理功能的實施方式如下首先,用戶在客戶端啟動財務系統客戶端軟件,HOOK引擎也隨之啟動;然后,用戶在財務系統客戶端軟件中進行各種操作,例如點擊界面中的按鈕新增記賬憑證,HOOK引擎捕獲用戶的這些操作;接著,HOOK引擎將捕獲到的操作與操作響應模板中指定的操作進行對比,判斷其是否屬于需要增加原始憑證影像流管理功能的操作,這里預先定義的操作響應模板中指定,需要增加原始憑證影像流管理功能的操作是用戶點擊記賬憑證錄入界面中的原始憑證數量輸入文本框,而響應動作定義為彈出原始憑證影像流錄入界面;因此,當用戶在財務系統客戶端軟件中錄入某條記賬憑證時,一旦用戶點擊了輸入原始憑證數量的文本框時,HOOK引擎捕獲到這個操作并根據操作響應模板立即調用原始憑證影像流系統,彈出原始憑證影像流錄入界面,用戶在此界面中通過掃描等方式將原始憑證的影像流錄入到原始憑證影像流系統中,并實現與這條記賬憑證的關聯。用戶完成原始憑證的影像流錄入操作并確認關閉錄入界面后,光標又回到財務系統客戶端軟件記賬憑證錄入界面中的原始憑證數量輸入文本框中,用戶繼續在文本框中輸入剛才在原始憑證影像流錄入界面中錄入的原始憑證數量,并繼續在財務系統客戶端軟件進行其他操作。
而根據操作響應模板的定義,用戶在財務系統客戶端軟件中進行除點擊記賬憑證錄入界面中的原始憑證數量輸入文本框之外的其他操作時,HOOK引擎捕獲到這些操作與操作響應模板對比后,不會調用原始憑證影像流系統,而是繼續按照財務軟件原有的設定規則響應用戶的操作請求。
利用BHO技術實現本發明目的的實施方式如圖2所示用戶的客戶端201同應用軟件系統服務器205和信息流管理系統服務器207利用HTTP協議通信。首先在用戶的客戶端201上安裝瀏覽器軟件模塊202,然后在瀏覽器軟件模塊202上注入BHO瀏覽器插件模塊203,并定義一個操作響應模板204。
本實施例具體的實施方式包括以下步驟步驟一用戶運行瀏覽器軟件模塊202訪問部署在應用軟件系統服務器205上的應用軟件系統模塊206,向應用軟件系統模塊206發出操作請求;步驟二掛接在在瀏覽器軟件模塊202上的BHO瀏覽器插件模塊203捕獲瀏覽器軟件模塊202上的操作請求;步驟三BHO瀏覽器插件模塊203將捕獲到的操作與操作響應模板204中指定的操作進行對比,判斷其是否屬于需要增加信息流管理功能的操作;步驟四若捕獲到的操作請求屬于需要增加信息流管理功能的操作,BHO瀏覽器插件模塊203調用部署在信息流管理系統服務器207上的信息流管理軟件模塊208,在瀏覽器軟件模塊202中執行由操作響應模板204定義的響應動作;完成響應動作后,由應用軟件系統模塊206按其原有的設定規則繼續響應用戶的操作請求;步驟五若捕獲到的操作不屬于需要增加信息流管理功能的操作,BHO瀏覽器插件模塊203不做處理,直接由應用軟件系統模塊206按其原有的設定規則繼續響應用戶的操作請求。
以B/S結構的財務軟件為例,利用BHO技術實現在財務軟件中增加原始憑證影像流管理功能的實施方式如下首先,用戶在客戶端啟動瀏覽器軟件,BHO插件也隨之啟動;然后,用戶通過瀏覽器登錄到財務系統,在瀏覽器中打開財務系統的操作界面,并進行各種操作,例如點擊操作界面中的按鈕新增記賬憑證,BHO插件捕獲用戶在瀏覽器中進行的這些操作;接著,BHO插件將捕獲到的操作與操作響應模板中指定的操作進行對比,判斷其是否屬于需要增加原始憑證影像流管理功能的操作,這里預先定義的操作響應模板中指定,需要增加原始憑證影像流管理功能的操作是用戶在瀏覽器中點擊記賬憑證錄入界面中的原始憑證數量輸入文本框,而響應動作定義為在瀏覽器中顯示原始憑證影像流錄入界面;因此,當用戶在瀏覽器中的財務系統界面錄入某條記賬憑證時,一旦用戶點擊了輸入原始憑證數量的文本框時,BHO插件捕獲到這個操作并根據操作響應模板立即調用原始憑證影像流系統,在瀏覽器中顯示原始憑證影像流錄入界面,用戶在此界面中通過掃描等方式將原始憑證的影像流錄入到原始憑證影像流系統中,并實現與這條記賬憑證的關聯。用戶完成原始憑證的影像流錄入操作并確認關閉錄入界面后,光標又回到瀏覽器中記賬憑證錄入界面中的原始憑證數量輸入文本框中,用戶繼續在文本框中輸入剛才在原始憑證影像流錄入界面中錄入的原始憑證數量,并繼續在瀏覽器中進行其他操作。
而根據操作響應模板的定義,用戶在瀏覽器中進行除點擊記賬憑證錄入界面中的原始憑證數量輸入文本框之外的其他操作時,BHO插件捕獲到這些操作與操作響應模板對比后,不會調用原始憑證影像流系統,而是繼續按照財務軟件原有的設定規則響應用戶的操作請求。
顯然,本發明不限于以上實施例,還可以有許多變形。本領域的普通技術人員能從本發明公開的內容直接導出或聯想到的所有變形,均應認為是本發明的保護范圍。
權利要求
1.一種在應用軟件系統中新增信息流管理功能的實現方法,包括以下步驟(1)用戶向應用軟件系統模塊發出操作請求;(2)代碼注入軟件模塊捕獲該操作請求;(3)代碼注入軟件模塊將捕獲到的操作請求與操作響應模板中指定的操作進行對比,判斷是否屬于需要增加信息流管理功能的操作;(4)若捕獲到的操作請求屬于需要增加信息流管理功能的操作,代碼注入軟件模塊調用信息流管理軟件模塊,執行操作響應模板中定義的響應動作,完成響應動作后,由應用軟件系統模塊按其原有的設定規則繼續響應用戶的操作請求;若捕獲到的操作不屬于需要增加信息流管理功能的操作,代碼注入軟件模塊不做處理,直接由應用軟件系統模塊按其原有的設定規則繼續響應用戶的操作請求。
2.根據權利要求1所述的在應用軟件系統中新增信息流管理功能的實現方法,其特征在于,所述應用軟件系統模塊是處于C/S運行模式或單機運行模式中任意一種應用軟件系統模塊,代碼注入軟件模塊是掛接在應用軟件系統模塊上的HOOK引擎軟件模塊。
3.根據權利要求2所述的在應用軟件系統中新增信息流管理功能的實現方法,其特征在于,所述HOOK引擎軟件模塊與操作響應模板位于用戶的客戶端,應用軟件系統模塊位于應用軟件系統服務器或用戶的客戶端,信息流管理軟件模塊位于信息流管理軟件服務器;所述步驟(1)中用戶向應用軟件系統模塊發出操作請求,是通過用戶運行客戶端軟件模塊訪問部署在應用軟件系統服務器上的應用軟件系統模塊或直接運行單機應用軟件系統模塊實現的;所述步驟(2)中代碼注入軟件模塊捕獲操作請求,是通過掛接在客戶端軟件模塊上的HOOK引擎軟件模塊捕獲客戶端軟件模塊上的所有操作響應實現的。
4.根據權利要求1所述的在應用軟件系統中新增信息流管理功能的實現方法,其特征在于,所述應用軟件系統模塊是B/S結構的應用軟件系統模塊,代碼注入軟件模塊是掛接在瀏覽器軟件模塊上的BHO瀏覽器插件模塊。
5.根據權利要求4所述的在應用軟件系統中新增信息流管理功能的實現方法,其特征在于,所述瀏覽器軟件模塊與操作響應模板位于用戶的客戶端,應用軟件系統模塊位于應用軟件系統服務器,信息流管理軟件模塊位于信息流管理軟件服務器;用戶的客戶端與應用軟件系統服務器和信息流管理系統服務器之間利用HTTP協議通信;所述步驟(1)中用戶向應用軟件系統模塊發出操作請求,是通過用戶運行瀏覽器軟件模塊訪問部署在應用軟件系統服務器上的應用軟件系統模塊實現的;所述步驟(2)中代碼注入軟件模塊捕獲操作請求,是通過掛接在瀏覽器軟件模塊上的BHO瀏覽器插件模塊捕獲瀏覽器軟件模塊上的所有操作響應實現的。
全文摘要
本發明涉及軟件功能擴展的方法,旨在提供一種在WIN32體系平臺上,可不修改應用軟件系統源代碼快速實現在應用軟件系統中新增信息流管理功能的方法。包括向應用軟件系統模塊發出操作請求、代碼注入軟件模塊捕獲該操作請求、代碼注入軟件模塊將捕獲到的操作請求與操作響應模板中指定的操作進行對比,判斷是否屬于需要增加信息流管理功能的操作執行或不執行操作響應模板中定義的響應動作。由于不需要修改應用軟件系統的源代碼,在新增信息流管理功能時,避免了大量的軟件代碼編寫和測試工作,軟件升級工作也非常方便,大大提高了軟件的開發和改造效率,縮短了開發和改造周期,降低了開發和改造成本,具有顯著的社會和經濟效益。
文檔編號G06F9/44GK101021789SQ20071006774
公開日2007年8月22日 申請日期2007年3月23日 優先權日2007年3月23日
發明者陳偉 申請人:陳偉