国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      監(jiān)控探針生成方法和裝置的制作方法

      文檔序號:6340925閱讀:397來源:國知局
      專利名稱:監(jiān)控探針生成方法和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及面向方面編程技術(shù)的軟件開發(fā)領(lǐng)域,尤其涉及一種監(jiān)控探針生成方法 和裝置。
      背景技術(shù)
      近年來,隨著AOP (Aspect Oriented Programming,面向方面編程)技術(shù)的興起, 各種AOP的開發(fā)環(huán)境也迅速出現(xiàn)。傳統(tǒng)的AOP技術(shù)存在以下問題1、無法處理注釋,2、編織 過程中原有代碼的層次結(jié)構(gòu)常常被打亂,3、插入無關(guān)代碼,影響代碼品質(zhì)。為了解決上述問 題,目前通常采用Xweaver作為支持C++語言的主流開發(fā)環(huán)境。Xweaver因具有以下優(yōu)點(diǎn)而 被廣泛的應(yīng)用1、編織代碼時,不影響基代碼的原有層次結(jié)構(gòu),2、插入的代碼與手寫代碼完 全一樣,3、可以添加修改注釋。Xweaver使用XSL作為編織器的實(shí)現(xiàn)語言,由于使用XSL直 接編寫方面轉(zhuǎn)換對開發(fā)人員要求太高,為了能夠方便地使用XML編寫方面程序,定義了一 種基于XML的語言來描述將要插入的方面AspectX。AspectX語言用來為Xweaver方面編織器編寫方面程序,該語言基于XML語法規(guī)則 構(gòu)建,每個AspectX程序被實(shí)現(xiàn)為一個單獨(dú)的XML文件。AspectX語言的語法由XML Schema 定義,Schema是用于描述和規(guī)范XML文檔的邏輯結(jié)構(gòu)的一種語言,其主要作用是驗(yàn)證XML文 件邏輯結(jié)構(gòu)的正確性。一個語法正確的AspectX程序也是一個遵照該XML Schema的合法 XML文件。所以說,AspectX的語法是完全由XML Schema定義的。目前AspectX程序一般都是在XML khema約束下通過XML編程添加切入點(diǎn)、通知、 要注入的代碼形成監(jiān)控探針(即AOP中所述的橫切關(guān)注點(diǎn))。如果監(jiān)控探針文件比較大并 且比較復(fù)雜時,這種編寫方式實(shí)現(xiàn)的監(jiān)控探針不但會出現(xiàn)各種各樣的錯誤,而且效率比較 底,操作也不方便,同時還會增加軟件開發(fā)和維護(hù)的成本。

      發(fā)明內(nèi)容
      為解決上述技術(shù)問題,本發(fā)明的目的在于提供一種監(jiān)控探針生成方法和裝置,用 于解決現(xiàn)有的編寫方式實(shí)現(xiàn)的監(jiān)控探針會出現(xiàn)各種各樣的錯誤,而且效率比較底,操作也 不方便,還會增加開發(fā)和維護(hù)的成本的缺陷。為此,本發(fā)明實(shí)施例提供了如下技術(shù)方案一種監(jiān)控探針生成方法,包括從預(yù)定義的監(jiān)控需求文件中獲取已生成的監(jiān)控需求;匹配所述監(jiān)控需求和預(yù)定義的監(jiān)控探針模板,判斷是否匹配成功,如果是則執(zhí)行 下一步;加工組裝匹配成功的監(jiān)控需求和監(jiān)控探針模板,生成監(jiān)控探針。本發(fā)明實(shí)施例還提供了一種監(jiān)控探針生成裝置,包括監(jiān)控需求獲取模塊,用于從預(yù)定義的監(jiān)控需求文件中獲取已生成的監(jiān)控需求;探針模板匹配模塊,用于匹配所述監(jiān)控需求和預(yù)定義的監(jiān)控探針模板,并判斷是3否匹配成功;探針加工組裝模塊,用于加工組裝匹配成功的監(jiān)控需求和監(jiān)控探針模板,生成監(jiān) 控探針。與現(xiàn)有技術(shù)相比,上述技術(shù)方案具有以下優(yōu)點(diǎn)本發(fā)明實(shí)施例所提供的技術(shù)方案,可以根據(jù)自定義的監(jiān)控探針模板結(jié)合監(jiān)控需求 自動的組裝成符合AspectX語法的監(jiān)控探針,能夠有效的減少監(jiān)控探針中出現(xiàn)的錯誤,提 高軟件開發(fā)效率,便于軟件開發(fā)人員操作使用,可以明顯的減低開發(fā)和維護(hù)的成本。同時, 如果軟件開發(fā)人員需要修改注入的代碼或擴(kuò)展其它需求時,只需修改自定義的監(jiān)控探針模 板即可,無需對程序源代碼進(jìn)行手動的修改,因此可以增強(qiáng)程序的健壯性和可擴(kuò)展性。


      為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。圖1為實(shí)施例一提供的監(jiān)控探針生成方法流程示意圖;圖2為實(shí)施例二提供的監(jiān)控探針生成裝置原理框架示意圖。
      具體實(shí)施例方式隨著對信息化軟件的系統(tǒng)環(huán)境適應(yīng)能力、交互性能及數(shù)據(jù)處理能力越來越高的要 求,如何快速的發(fā)現(xiàn)并定位軟件存在的問題,并以最快的速度解決問題,已經(jīng)成為軟件開發(fā) 及使用人員最關(guān)心的問題。而AOP中所述的橫切關(guān)注點(diǎn),即本申請中所述的監(jiān)控探針即是 用于程序內(nèi)部運(yùn)行狀態(tài)的實(shí)時監(jiān)控,通過在程序的源代碼中注入的具有監(jiān)控能力的監(jiān)控探 針,形成了具有監(jiān)控能力的程序,在程序運(yùn)行過程中,監(jiān)控探針能夠?qū)崟r獲取被監(jiān)控對象的 運(yùn)行信息,幫助軟件開發(fā)和使用人員快速發(fā)現(xiàn)并準(zhǔn)確定位程序代碼中的缺陷之處。正如背景技術(shù)部分所述,現(xiàn)有的監(jiān)控探針生成方法中,如果監(jiān)控探針文件比較大 并且比較復(fù)雜時,其生成的監(jiān)控探針不但會出現(xiàn)各種各樣的錯誤,而且效率比較底,操作也 不方便,還會增加開發(fā)和維護(hù)的成本。為此,本發(fā)明實(shí)施例提供了 一種監(jiān)控探針生成方法和裝置。所述監(jiān)控探針生成方法包括以下步驟從預(yù)定義的監(jiān)控需求文件中獲取已生成的監(jiān)控需求;匹配所述監(jiān)控需求和預(yù)定義的監(jiān)控探針模板,判斷是否匹配成功,如果是則執(zhí)行 下一步;加工組裝匹配成功的監(jiān)控需求和監(jiān)控探針模板,生成監(jiān)控探針。所述監(jiān)控探針生成裝置,包括監(jiān)控需求獲取模塊,用于從預(yù)定義的監(jiān)控需求文件中獲取已生成的監(jiān)控需求;探針模板匹配模塊,用于匹配所述監(jiān)控需求和預(yù)定義的監(jiān)控探針模板,并判斷是 否匹配成功;
      探針加工組裝模塊,用于加工組裝匹配成功的監(jiān)控需求和監(jiān)控探針模板,生成監(jiān) 控探針。本發(fā)明實(shí)施例所提供的技術(shù)方案,可以根據(jù)自定義的監(jiān)控探針模板結(jié)合監(jiān)控需求 自動的組裝成符合AspectX語法的監(jiān)控探針,能夠有效的減少監(jiān)控探針中出現(xiàn)的錯誤,提 高軟件開發(fā)效率,便于軟件開發(fā)人員操作使用,可以明顯的減低開發(fā)和維護(hù)的成本。同時, 如果軟件開發(fā)人員需要修改注入的代碼或擴(kuò)展其它需求時,只需修改自定義的監(jiān)控探針模 板即可,無需對程序源代碼進(jìn)行手動的修改,因此可以增強(qiáng)程序的健壯性和可擴(kuò)展性。以上是本申請的核心思想,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例 中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例, 而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞 動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是本發(fā)明還可以 采用其他不同于在此描述的其它方式來實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的 情況下做類似推廣,因此本發(fā)明不受下面公開的具體實(shí)施例的限制。實(shí)施例一本實(shí)施例提供了一種監(jiān)控探針生成方法,參見圖1所示,為該方法的一種流程示 意圖,其具體包括以下步驟步驟S101,從預(yù)定義的監(jiān)控需求文件中獲取已生成的監(jiān)控需求。本實(shí)施例中,可以預(yù)先設(shè)定監(jiān)控需求文件,首先指定監(jiān)控對象(通常為被監(jiān)控程 序的源代碼),并設(shè)置監(jiān)控對象的展示優(yōu)先級、監(jiān)控屬性及監(jiān)控模式等監(jiān)控控制信息。其中, 監(jiān)控屬性包括運(yùn)行所述程序的計(jì)算機(jī)的地址和端口號等信息,監(jiān)控模式包括本地監(jiān)控 和異地遠(yuǎn)程監(jiān)控等信息。通過結(jié)合監(jiān)控對象和監(jiān)控控制信息得到監(jiān)控需求。上述監(jiān)控需求可以根據(jù)監(jiān)控對象分為四部分,包括全局變量監(jiān)控需求、進(jìn)程監(jiān)控 需求、線程監(jiān)控需求和函數(shù)監(jiān)控需求。其中進(jìn)程監(jiān)控需求,用以描述監(jiān)控進(jìn)程的主函數(shù),進(jìn)程描述,進(jìn)程下的所有線程 以及線程的構(gòu)造函數(shù),析構(gòu)函數(shù)。線程監(jiān)控需求,用以描述監(jiān)控線程的類名,rim方法,run方法下的關(guān)注方法,線程 描述及線程的構(gòu)造函數(shù),析構(gòu)函數(shù)。函數(shù)監(jiān)控需求,函數(shù)分為兩種類型。一種為普通函數(shù),只需要描述函數(shù)的名稱,函 數(shù)描述,函數(shù)所在線程,函數(shù)所在的類名。另一種為服務(wù)入口函數(shù),它描述普通函數(shù)的幾個 方面又關(guān)注函數(shù)中的關(guān)注方法。全局變量監(jiān)控需求,用以描述變量的類型,變量名,變量所在的類名。上述監(jiān)控需求可以保存為XML類型的數(shù)據(jù)文檔,即預(yù)定義的監(jiān)控需求文件,通過 XML解析,可以從預(yù)定義的監(jiān)控需求文件中獲取其中定義的監(jiān)控需求。步驟S102,匹配所述監(jiān)控需求和預(yù)定義的監(jiān)控探針模板,判斷是否匹配成功,如果 是則執(zhí)行下一步;對應(yīng)于步驟SlOl中的四種監(jiān)控需求,所述預(yù)定義的監(jiān)控探針模板也可以分為四 種,包括全局變量監(jiān)控探針模板、進(jìn)程監(jiān)控探針模板、線程監(jiān)控探針模板和函數(shù)監(jiān)控探針 模板。
      上述監(jiān)控探針模板為自定義的模板,其中包括要注入被監(jiān)控程序源代碼的通用代 碼和變量參數(shù),其結(jié)構(gòu)為符合AspectX的通用結(jié)構(gòu),一般以XML文件形式存儲,通過XML解 析,可以從監(jiān)控探針模板文件中獲取其自定義的監(jiān)控探針模板。所述監(jiān)控探針模板為通用的,以普通函數(shù)為例,函數(shù)監(jiān)控探針模板中只有一個普 通函數(shù)的結(jié)構(gòu)及其要注入的代碼模板,用戶在做監(jiān)控需求時可以做任意多個普通函數(shù)的需 求,所以其生成的監(jiān)控探針是動態(tài)的。如果監(jiān)控需求和預(yù)定義的監(jiān)控探針模板不能夠匹配,則可以提示用戶匹配失敗, 并提示用戶核實(shí)監(jiān)控需求文件,當(dāng)用戶核實(shí)后,可以再次執(zhí)行步驟S101,重新獲取監(jiān)控需 求。步驟S103,加工組裝匹配成功的監(jiān)控需求和監(jiān)控探針模板,生成監(jiān)控探針。本步驟中,將匹配成功的監(jiān)控需求和監(jiān)控探針模板組合生成符合AspectX語法的 XML格式代碼片段,即監(jiān)控探針。此外,在應(yīng)用上述方法自動生成監(jiān)控探針之后,可以通過Xweaver將所述監(jiān)控探 針注入到被監(jiān)控程序的源代碼中,形成目標(biāo)代碼,實(shí)現(xiàn)監(jiān)控的目的。本實(shí)施例提供監(jiān)控探針生成方法可較佳的用于檢測C++源代碼的使用場景中,本 領(lǐng)域技術(shù)人員在本實(shí)施例的基礎(chǔ)上,可以將該方案擴(kuò)展到JAVA等其語言的場景中,實(shí)現(xiàn)對 程序的實(shí)時監(jiān)控,都屬于本發(fā)明保護(hù)的范圍。應(yīng)用本實(shí)施例提供的監(jiān)控探針生成方法,可以根據(jù)自定義的監(jiān)控探針模板結(jié)合監(jiān) 控需求自動的組裝成符合AspectX語法的監(jiān)控探針,能夠有效的減少監(jiān)控探針中出現(xiàn)的錯 誤,提高軟件開發(fā)效率,便于軟件開發(fā)人員操作使用,可以明顯的減低開發(fā)和維護(hù)的成本。 同時,如果軟件開發(fā)人員需要修改注入的代碼或擴(kuò)展其它需求時,只需修改自定義的監(jiān)控 探針模板即可,無需對程序源代碼進(jìn)行手動的修改,因此可以增強(qiáng)程序的健壯性和可擴(kuò)展 性。實(shí)施例二 相應(yīng)于上述方法實(shí)施例,本實(shí)施例還提供了一種監(jiān)控探針生成裝置,如圖2所示, 為該裝置的原理框架示意圖,該裝置包括監(jiān)控需求獲取模塊201,用于從預(yù)定義的監(jiān)控需求文件中獲取已生成的監(jiān)控需 求;探針模板匹配模塊202,用于匹配所述監(jiān)控需求和預(yù)定義的監(jiān)控探針模板,匹配成 功后,執(zhí)行下一步加工組裝操作;探針加工組裝模塊203,用于加工組裝匹配成功的監(jiān)控需求和監(jiān)控探針模板,生成 監(jiān)控探針。結(jié)合實(shí)施例提供的監(jiān)控探針生成方法可知監(jiān)控需求文件中定義的監(jiān)控需求可以包括全局變量需求、進(jìn)程需求、線程需求和 函數(shù)需求。所述預(yù)定義的監(jiān)控探針模板可以包括全局變量模板、進(jìn)程模板、線程模板和函數(shù) 模板。所述預(yù)定義的監(jiān)控需求文件可以為XML類型的數(shù)據(jù)文檔;所述預(yù)定義的監(jiān)控探針模板可以存儲在符合AspectX通用結(jié)構(gòu)的XML文件中。
      相應(yīng)于上述監(jiān)控需求文件和監(jiān)控探針模板文件的類型,本實(shí)施例中,所述監(jiān)控探 針生成裝置還可以包括XML解析模塊204,用于解析XML類型的監(jiān)控需求文件和監(jiān)控探針模板文件。上述監(jiān)控探針生成裝置的框架可以分為三個層次,其中,XML解析模塊204為底 層,屬于解析XML部件,主要供中間層的監(jiān)控需求獲取模塊201、探針模板匹配模塊202和探 針加工組裝模塊203調(diào)用,中間層為自動生成監(jiān)控探針的核心。外層接口層用于獲取監(jiān)控 需求構(gòu)件輸出的監(jiān)控需求,以及把生成的監(jiān)控探針傳輸?shù)阶⑷霕?gòu)件,通過接口層,本裝置可 以接入符合結(jié)構(gòu)規(guī)則的任意系統(tǒng)中。由于本實(shí)施例是實(shí)施例一對應(yīng)的裝置實(shí)施例,其類同之處相互參見即可,在此不 再贅述。應(yīng)用本實(shí)施例提供的監(jiān)控探針生成裝置,探針加工組裝模塊可以根據(jù)自定義的監(jiān) 控探針模板結(jié)合監(jiān)控需求自動的組裝成符合AspectX語法的監(jiān)控探針,能夠有效的減少監(jiān) 控探針中出現(xiàn)的錯誤,提高軟件開發(fā)效率,便于軟件開發(fā)人員操作使用,可以明顯的減低開 發(fā)和維護(hù)的成本。同時,如果軟件開發(fā)人員需要修改注入的代碼或擴(kuò)展其它需求時,只需修 改自定義的監(jiān)控探針模板即可,無需對程序源代碼進(jìn)行手動的修改,因此可以增強(qiáng)程序的 健壯性和可擴(kuò)展性。本說明書中各個部分采用遞進(jìn)的方式描述,每個部分重點(diǎn)說明的都是與其他部分 的不同之處,各個部分之間相同相似部分互相參見即可。對所公開的實(shí)施例的上述說明,使 本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技 術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍 的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的實(shí)施例,而是要 符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。權(quán)利要求
      1.一種監(jiān)控探針生成方法,其特征在于,包括從預(yù)定義的監(jiān)控需求文件中獲取已生成的監(jiān)控需求;匹配所述監(jiān)控需求和預(yù)定義的監(jiān)控探針模板,判斷是否匹配成功,如果是則執(zhí)行下一止少;加工組裝匹配成功的監(jiān)控需求和監(jiān)控探針模板,生成監(jiān)控探針。
      2.根據(jù)權(quán)利要求1所述的監(jiān)控探針生成方法,其特征在于監(jiān)控需求文件中定義的監(jiān)控需求包括全局變量監(jiān)控需求、進(jìn)程監(jiān)控需求、線程監(jiān)控需 求和函數(shù)監(jiān)控需求。
      3.根據(jù)權(quán)利要求2所述的監(jiān)控探針生成方法,其特征在于所述預(yù)定義的監(jiān)控探針模板包括全局變量監(jiān)控探針模板、進(jìn)程監(jiān)控探針模板、線程監(jiān) 控探針模板和函數(shù)監(jiān)控探針模板。
      4.根據(jù)權(quán)利要求1所述的監(jiān)控探針生成方法,其特征在于 所述預(yù)定義的監(jiān)控需求文件為XML類型的數(shù)據(jù)文檔;所述預(yù)定義的監(jiān)控探針模板存儲在符合AspectX通用結(jié)構(gòu)的XML文件中。
      5.根據(jù)權(quán)利要求1所述的監(jiān)控探針生成方法,其特征在于,在生成監(jiān)控探針以后,還包括通過Xweaver將所述監(jiān)控探針注入到被監(jiān)控程序的源代碼中。
      6.一種監(jiān)控探針生成裝置,其特征在于,包括監(jiān)控需求獲取模塊,用于從預(yù)定義的監(jiān)控需求文件中獲取已生成的監(jiān)控需求; 探針模板匹配模塊,用于匹配所述監(jiān)控需求和預(yù)定義的監(jiān)控探針模板,并判斷是否匹 配成功;探針加工組裝模塊,用于加工組裝匹配成功的監(jiān)控需求和監(jiān)控探針模板,生成監(jiān)控探針。
      7.根據(jù)權(quán)利要求6所述的監(jiān)控探針生成裝置,其特征在于監(jiān)控需求文件中定義的監(jiān)控需求包括全局變量監(jiān)控需求、進(jìn)程監(jiān)控需求、線程監(jiān)控需 求和函數(shù)監(jiān)控需求。
      8.根據(jù)權(quán)利要求7所述的監(jiān)控探針生成裝置,其特征在于所述預(yù)定義的監(jiān)控探針模板包括全局變量監(jiān)控探針模板、進(jìn)程監(jiān)控探針模板、線程監(jiān) 控探針模板和函數(shù)監(jiān)控探針模板。
      9.根據(jù)權(quán)利要求8所述的監(jiān)控探針生成裝置,其特征在于 所述預(yù)定義的監(jiān)控需求文件為XML類型的數(shù)據(jù)文檔;所述預(yù)定義的監(jiān)控探針模板存儲在符合AspectX通用結(jié)構(gòu)的XML文件中。
      10.根據(jù)權(quán)利要求9所述的監(jiān)控探針生成裝置,其特征在于,還包括 XML解析模塊,用于解析XML類型的監(jiān)控需求文件和監(jiān)控探針模板文件。
      全文摘要
      本發(fā)明實(shí)施例公開了一種監(jiān)控探針生成方法和裝置,所述方法包括從預(yù)定義的監(jiān)控需求文件中獲取已生成的監(jiān)控需求;匹配所述監(jiān)控需求和預(yù)定義的監(jiān)控探針模板,判斷是否匹配成功,如果是則執(zhí)行下一步;加工組裝匹配成功的監(jiān)控需求和監(jiān)控探針模板,生成監(jiān)控探針。該方案能夠有效的減少監(jiān)控探針中出現(xiàn)的錯誤,提高軟件開發(fā)效率,便于軟件開發(fā)人員操作使用,可以明顯的減低開發(fā)和維護(hù)的成本。同時,如果軟件開發(fā)人員需要修改注入的代碼或擴(kuò)展其它需求時,只需修改自定義的監(jiān)控探針模板即可,無需對程序源代碼進(jìn)行手動的修改,因此可以增強(qiáng)程序的健壯性和可擴(kuò)展性。
      文檔編號G06F9/44GK102053839SQ20101061758
      公開日2011年5月11日 申請日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
      發(fā)明者孫冬蓮 申請人:山東中創(chuàng)軟件商用中間件股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1