專利名稱:一種獲得程序模塊間調(diào)用關(guān)系的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,特別是涉及獲得程序模塊間調(diào)用關(guān)系的方法及裝置。
背景技術(shù):
信息作為現(xiàn)代企業(yè)的寶貴資源,占據(jù)著越來越重要的地位,已經(jīng)成為現(xiàn)代 企業(yè)科學(xué)管理的基礎(chǔ),正確決策的前提,有效調(diào)控的手段。能否擁有及時(shí)、準(zhǔn) 確、全面的信息已經(jīng)成為衡量一個(gè)企業(yè)是否具有發(fā)展?jié)摿Φ囊粋€(gè)重要指標(biāo)。隨 著這種需求的不斷增加,數(shù)據(jù)倉(cāng)庫的應(yīng)用在企業(yè)中得到普及。其中,數(shù)據(jù)抽取、
轉(zhuǎn)換和加載過程(Extract Transform Load, ETL)是建立數(shù)據(jù)倉(cāng)庫的重要環(huán)節(jié)。 ETL過程主要完成以下幾項(xiàng)任務(wù)1、數(shù)據(jù)抽取從各種不同結(jié)構(gòu)和形態(tài) 的數(shù)據(jù)源中提取數(shù)據(jù),如從ERP、 CRM和財(cái)務(wù)管理等方面的數(shù)據(jù)源中提取數(shù) 據(jù)。2、數(shù)據(jù)轉(zhuǎn)換根據(jù)企業(yè)的特定規(guī)則,對(duì)抽取的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,為統(tǒng)計(jì)、 分析等特定業(yè)務(wù)服務(wù)。3、數(shù)據(jù)清洗企業(yè)的數(shù)據(jù)往往存在著大量的質(zhì)量問題, 從簡(jiǎn)單的數(shù)據(jù)格式的不一致、數(shù)據(jù)輸入4f^、數(shù)據(jù)不完整到相對(duì)較復(fù)雜的數(shù)據(jù) 不一致性等問題。顯然數(shù)據(jù)的質(zhì)量將直接影響基于這些數(shù)據(jù)的信息服務(wù)的質(zhì) 量。數(shù)據(jù)清洗的目標(biāo)是通過各種措施從準(zhǔn)確性、無冗余、符合應(yīng)用的需求等方 面提高數(shù)據(jù)的質(zhì)量。4、數(shù)據(jù)加載將抽取、轉(zhuǎn)換及清洗過的數(shù)據(jù)正確的加載 到數(shù)據(jù)倉(cāng)庫中,并且對(duì)數(shù)據(jù)處理的過程進(jìn)行監(jiān)督和管理,以保證整個(gè)ETL過 程的準(zhǔn)確和高效率。
ETL過程通過shdl (為UNIX或LINUX操作系統(tǒng)中的功能模塊,程序代 碼的載體)之間的相互調(diào)用、存儲(chǔ)過程(procedure)之間的相互調(diào)用、以及shell 對(duì)存儲(chǔ)過程的調(diào)用來實(shí)現(xiàn)。獲得shell和存儲(chǔ)過程的調(diào)用關(guān)系,^:設(shè)計(jì)和維護(hù) ETL過程架構(gòu)的重要環(huán)節(jié)。目前獲得shell和存儲(chǔ)過程的調(diào)用關(guān)系均是由人工實(shí)現(xiàn),工作量較大,效率較低,并且容易出錯(cuò)。
發(fā)明內(nèi)容
本申請(qǐng)實(shí)施例提供一種獲得程序才莫塊間調(diào)用關(guān)系的方法及裝置,用于提高 獲得調(diào)用關(guān)系的效率。
一種獲得程序it塊間調(diào)用關(guān)系的方法,包括以下步驟 獲得第一 shell,并記錄獲得的第一 shell的標(biāo)識(shí);
將第一 shell中的字符與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配,在匹配成功時(shí),獲得匹 配成功的字符位置之前的字符,其中該獲得的字符在與匹配成功的字符位置最 近的符號(hào)之后;
根據(jù)獲得的字符確定調(diào)用對(duì)象,并建立調(diào)用對(duì)象與第一 shell之間的調(diào)用 關(guān)系。
一種用于獲得程序模塊間調(diào)用關(guān)系的裝置,包括 讀取4莫塊,用于獲得shell,并記錄獲得的shell的標(biāo)識(shí); 匹配模塊,用于將shdl中的字符與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配; 提取溪塊,用于在匹配成功時(shí),獲得匹配成功的字符之前的字符,其中該 獲得的字符在與匹配成功的字符最近的符號(hào)之后;
關(guān)系模塊,用于根據(jù)獲得的字符確定調(diào)用對(duì)象,并建立調(diào)用對(duì)象與第一 shell之間的調(diào)用關(guān)系。
本申請(qǐng)實(shí)施例通過將shell中的字符與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配來確定shell 是否有調(diào)用對(duì)象,當(dāng)有調(diào)用對(duì)象時(shí),通過讀取匹配成功的字符之前的字符來獲 得調(diào)用對(duì)象的標(biāo)識(shí),并進(jìn)一步建立shell與調(diào)用對(duì)象之間的調(diào)用關(guān)系。從而實(shí) 現(xiàn)了自動(dòng)獲得調(diào)用關(guān)系,提高了效率和減少了錯(cuò)誤率,同時(shí)節(jié)省了大量人力資 源。
圖1為本申請(qǐng)實(shí)施例中裝置的主要結(jié)構(gòu)圖;圖2為本申請(qǐng)實(shí)施例中裝置的詳細(xì)結(jié)構(gòu)圖3為本申請(qǐng)實(shí)施例中獲得調(diào)用關(guān)系的主要方法流程圖4為本申請(qǐng)實(shí)施例中獲得調(diào)用關(guān)系的詳細(xì)方法流程圖。
具體實(shí)施例方式
獲得函數(shù)之間的調(diào)用關(guān)系。由于多個(gè)函數(shù)再加上內(nèi)部的邏輯控制才能封裝成一 個(gè)shell或存儲(chǔ)過程,因此,采用詞法分析無法獲得shell和存儲(chǔ)過程之間的調(diào) 用關(guān)系。為解決該問題,本申請(qǐng)實(shí)施例通過關(guān)鍵字的匹配來確定shell和存儲(chǔ) 過程之間的調(diào)用關(guān)系。
本申請(qǐng)實(shí)施例利用計(jì)算機(jī)讀取shell中的字符,并將shell中的字符與預(yù)設(shè) 的關(guān)鍵字進(jìn)行匹配,在匹配成功的情況下,確定該shell調(diào)用了其它shell或存 儲(chǔ)過程,若未匹配成功,則說明該shell未調(diào)用其它對(duì)象。以及在匹配成功的 情況下獲得調(diào)用對(duì)象(即shell或存儲(chǔ)過程),并建立shell與調(diào)用對(duì)象之間的調(diào) 用關(guān)系。重復(fù)該過程,可以利用計(jì)算機(jī)獲得所有shell和存儲(chǔ)過程之間的調(diào)用 關(guān)系,基本不會(huì)有遺漏,準(zhǔn)確性較高,并且提高了獲得調(diào)用關(guān)系的效率。
本申請(qǐng)實(shí)施例中字符包括字母、數(shù)字和符號(hào)。符號(hào)為除字母和數(shù)字以外的 字符,如"/"、"-"和空格等。
參見圖1,本實(shí)施例中用于獲得程序模塊間調(diào)用關(guān)系的裝置包括讀^Mt塊 101、匹配模塊102、提^f莫塊103和關(guān)系模塊104。
讀取4莫塊101用于獲得shell,并記錄獲得的shell的標(biāo)識(shí)。其中,shell通 常由文本文件保存,獲得shell就是打開shell的文本文件并將其中的程序代碼 讀到內(nèi)存。由于shell可以調(diào)用存儲(chǔ)過程,但是存儲(chǔ)過程不能調(diào)用shell,所以 本實(shí)施例讀恥漠塊101需要先獲得shell,而獲M儲(chǔ)過程不是必須的過程。
匹配模塊102用于將shell中的字符與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配。其中,關(guān) 鍵字包括用于表示shell的第一關(guān)鍵字和用于表示存儲(chǔ)過程的第二關(guān)鍵字。第 一關(guān)鍵字如".sh", ".sh"為shell標(biāo)識(shí)的后綴。第二關(guān)鍵字如".exec", ".exec"為存儲(chǔ)過程的標(biāo)識(shí)的后綴。匹配模塊102在匹配成功時(shí)觸發(fā)提取模塊103動(dòng)作, 否則說明該shell沒有調(diào)用其它的shell或存儲(chǔ)過程,對(duì)該shell的調(diào)用關(guān)系的分 析結(jié)束??蛇M(jìn)一步觸發(fā)讀取模塊101獲得下一個(gè)shell。匹配模塊102可以用關(guān) 鍵字依次與shell中的字符進(jìn)行比較?;蛘撸捎诒緦?shí)施例中的關(guān)鍵字為后綴, 通常出現(xiàn)在段落的末尾,因此匹配模塊102也可以用關(guān)鍵字與shell中每段的 最后幾個(gè)字符進(jìn)行比較,以減少匹配次數(shù),縮短匹配過程。
提取模塊103用于在匹配成功時(shí),獲得匹配成功的字符之前的字符,其中 該獲得的字符在與匹配成功的字符最近的符號(hào)之后。shell中的字符按照通常的 書寫和閱讀順序(如從左到右及從上到下)進(jìn)行排列。獲得的字符在匹配成功 的字符之前,是指按照書寫和閱讀的順序,在位置上,獲得的字符在匹配成功 的字符之前。同理,獲得的字符在與匹配成功的字符最近的符號(hào)之后,是指按 照書寫和閱讀的順序,在位置上,獲得的字符在與匹配成功的字符最近的符號(hào) 之后。本申請(qǐng)所說的字符和符號(hào)的含義并不完全相同,符號(hào)特指"+"和"/" 等,符號(hào)包括在字符之中。例如, 一段shell內(nèi)的程序代碼如get "c:〃aaa/bbb/ccc.sh"。關(guān)鍵字為.sh,則在匹配成功的字符之前的字符有g(shù)et "c:〃aaa/bbb/ccc,與匹配成功的字符最近的符號(hào)為最右邊的7",在"/"之后 的字符即為ccc,該ccc就是調(diào)用的shell的標(biāo)識(shí),0://&&3/1^1)/為調(diào)用的shell的 路徑。
關(guān)系模塊104用于根據(jù)獲得的字符確定調(diào)用對(duì)象,并建立調(diào)用對(duì)象與第一 shell之間的調(diào)用關(guān)系。具體的,將獲得的字符作為調(diào)用對(duì)象的標(biāo)識(shí)建立與shell 的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,以建立shell與調(diào)用對(duì)象之間的調(diào)用關(guān)系。其中,調(diào)用對(duì) 象包括shell和存儲(chǔ)過程。如果是通過第一關(guān)鍵字確定的調(diào)用對(duì)象,則該調(diào)用 對(duì)象為shell;如果是通過第二關(guān)鍵字確定的調(diào)用對(duì)象,則該調(diào)用對(duì)象為存儲(chǔ)過 程。
所述裝置還可以包括存儲(chǔ)模塊105,參見圖2所示,存儲(chǔ)模塊105用于保 存shell和存儲(chǔ)過程等,即保存shell和存儲(chǔ)過程的文本文件等。讀和漠塊101可以一次從存儲(chǔ)模塊105中獲得一個(gè)shell,由匹配模塊102 和提取模塊103等進(jìn)行后續(xù)操作,然后讀^Uf莫塊101再獲得下一個(gè)shell,直到 獲得所有的shell,這樣可以獲得所有的shell與其調(diào)用對(duì)象之間的關(guān)系。讀取 模塊101可以從存儲(chǔ)才莫塊105保存的目錄文件中獲得所有shell的標(biāo)識(shí)和對(duì)應(yīng) 的文本文件的存儲(chǔ)路徑,并根據(jù)shell的標(biāo)識(shí)和對(duì)應(yīng)的文本文件的存儲(chǔ)路徑獲 得shell.當(dāng)調(diào)用對(duì)象為存儲(chǔ)過程時(shí),讀取模塊IOI還可以依據(jù)調(diào)用對(duì)象的標(biāo)識(shí) 獲得存儲(chǔ)過程,即將存儲(chǔ)過程的文本文件中的字符讀到內(nèi)存。然后匹配模塊102 將存儲(chǔ)過程中的字符與第二關(guān)鍵字進(jìn)行匹配,判斷該存儲(chǔ)過程是否調(diào)用其它的 存儲(chǔ)過程,即是否有調(diào)用對(duì)象。如果有,匹配模塊102觸發(fā)提取模塊103獲得 匹配成功的字符之前的字符,其中該獲得的字符在與匹配成功的字符最近的符 號(hào)之后;關(guān)系模塊104將獲得的字符作為調(diào)用對(duì)象的標(biāo)識(shí)建立與存儲(chǔ)過程的標(biāo) 識(shí)的對(duì)應(yīng)關(guān)系,以建立存儲(chǔ)過程與調(diào)用對(duì)象之間的調(diào)用關(guān)系。通過以上過程可 以獲得所有的shell與其調(diào)用對(duì)象的調(diào)用關(guān)系,以及獲得存儲(chǔ)過程與其調(diào)用對(duì) 象的調(diào)用關(guān)系,在調(diào)用關(guān)系中調(diào)用者為父節(jié)點(diǎn),調(diào)用對(duì)象為子節(jié)點(diǎn),相當(dāng)于獲 得了多個(gè)僅包括一個(gè)父結(jié)點(diǎn)和一個(gè)子節(jié)點(diǎn)的樹結(jié)構(gòu)。在上述調(diào)用關(guān)系中,可能 存在這種情況, 一個(gè)調(diào)用關(guān)系為A調(diào)用B (可表示為A->B ),另 一個(gè)調(diào)用關(guān)系 為B調(diào)用C (可表示為B->C),這兩個(gè)調(diào)用關(guān)系可合并為一個(gè)調(diào)用關(guān)系流,則 得到A->B->C,以便更清楚的了解備shell和存儲(chǔ)過程之間的調(diào)用關(guān)系。其中, 調(diào)用關(guān)系流包^"一個(gè)4艮節(jié)點(diǎn)到其所有葉子節(jié)點(diǎn)之間的調(diào)用關(guān)系。
為了獲得較佳的調(diào)用關(guān)系流,所述裝置還包括合并模塊106,用于在關(guān)系 模塊104建立多個(gè)調(diào)用關(guān)系后,將調(diào)用關(guān)系中的調(diào)用對(duì)象作為子節(jié)點(diǎn),調(diào)用對(duì) 象的調(diào)用者作為父節(jié)點(diǎn),將一個(gè)調(diào)用關(guān)系中的父節(jié)點(diǎn)與另 一個(gè)調(diào)用關(guān)系中的子 節(jié)點(diǎn)進(jìn)行比較,在比較一致的情況下,合并兩個(gè)調(diào)用關(guān)系為一個(gè)調(diào)用關(guān)系流。 如果比較不一致,則檢查是否有未參加比較的調(diào)用關(guān)系,如果有則繼續(xù)比較, 否則結(jié)束流程。
讀取厲塊101也可以不獲得所有的shell,只需依據(jù)shell列表中的養(yǎng)外層shell的標(biāo)識(shí),獲得最外層的shell.最外層的shell是指在調(diào)用關(guān)系中不被其它 對(duì)象調(diào)用的shell,即調(diào)用關(guān)系或調(diào)用關(guān)系流中的根結(jié)點(diǎn)。提和漠塊103在獲得 調(diào)用對(duì)象的標(biāo)識(shí)后,可觸發(fā)讀取^莫塊101,由讀取4莫塊101依據(jù)調(diào)用對(duì)象的標(biāo) 識(shí)獲得shell或者存儲(chǔ)過程,匹配模塊102重復(fù)將shell或者存儲(chǔ)過程中的字符 與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配的步驟。循環(huán)執(zhí)行獲得shell或存儲(chǔ)過程、匹配、提 取和建立調(diào)用關(guān)系的過程,直到不再有調(diào)用對(duì)象。此時(shí),關(guān)系模塊104可獲得 一個(gè)最外層shell下的所有調(diào)用對(duì)象,包括多層調(diào)用關(guān)系中的調(diào)用對(duì)象,得到 一個(gè)樹狀的調(diào)用關(guān)系流。讀取模塊101可從shell列表中的shell標(biāo)識(shí)獲得下一 個(gè)最外層的shell,繼續(xù)循環(huán)上述過程,直到獲得所有最外層的shell的所有調(diào) 用對(duì)象。這樣,關(guān)系模塊104得到以最外層的shell為根節(jié)點(diǎn)的多個(gè)樹狀的調(diào) 用關(guān)系流。由于多個(gè)shell可以調(diào)用同一個(gè)shell,為了減少數(shù)據(jù)的冗余,合并 模塊106再次將一個(gè)調(diào)用關(guān)系中的父節(jié)點(diǎn)與另一個(gè)調(diào)用關(guān)系中的子節(jié)點(diǎn)進(jìn)行比 較,以便將多個(gè)樹狀的調(diào)用關(guān)系流合并為森林。
本實(shí)施例中關(guān)系模塊104和合并模塊106得到的調(diào)用關(guān)系和調(diào)用關(guān)系流可 以以文件形式存在存儲(chǔ)才莫塊105中。
所述裝置還包括計(jì)時(shí)模塊107,用于周期性觸發(fā)讀取模塊101,以便開始 獲得調(diào)用關(guān)系。該周期為預(yù)先設(shè)置,可設(shè)得較長(zhǎng),如1個(gè)月。
所述裝置可以位于一臺(tái)計(jì)算機(jī)內(nèi),或者所述裝置中的各才莫塊位于不同的計(jì) 算機(jī)內(nèi),由多個(gè)計(jì)算機(jī)協(xié)作完成所述裝置的功能。
通過以上描述了解了用于獲得調(diào)用關(guān)系的裝置的結(jié)構(gòu)和功能,下面通過流 程來介紹獲得調(diào)用關(guān)系的方法。
參見圖3,本實(shí)施例中獲得程序模塊間調(diào)用關(guān)系的主要方法流程如下
步驟301:獲得shell,并記錄獲得的shell的標(biāo)識(shí)。
步驟302:將shell中的字符與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配。
步驟303:在匹配成功時(shí),獲得匹配成功的字符之前的字符,其中該獲得 的字符在與匹配成功的字符最近的符號(hào)之后。步驟304:根據(jù)獲得的字符確定調(diào)用對(duì)象,并建立調(diào)用對(duì)象與第一 shell 之間的調(diào)用關(guān)系。具體的,將獲得的字符作為調(diào)用對(duì)象的標(biāo)識(shí)建立與shell的 標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,以建立shell與調(diào)用對(duì)象之間的調(diào)用關(guān)系。
步驟305:在匹配失敗時(shí),結(jié)束本次流程??蛇M(jìn)一步檢查是否有未分析的 shell,如果有,則獲得該shell,重復(fù)步驟301-305,否則說明已獲得所有shell 的調(diào)用關(guān)系,結(jié)束流程。
下面以獲得最外層的shell為例詳細(xì)介紹獲得調(diào)用關(guān)系的實(shí)現(xiàn)過程。 參見圖4,本實(shí)施例中獲得程序模塊間調(diào)用關(guān)系的詳細(xì)方法流程如下 步驟401:從shell列表中讀取一個(gè)shell標(biāo)識(shí)及對(duì)應(yīng)的路徑??蓪hell標(biāo) 識(shí)及對(duì)應(yīng)的路徑保存到某個(gè)文件中(如文件A),式件A可以是臨時(shí)文件,在 執(zhí)行步驟409后釋放文件A。
步驟402:依據(jù)shell的路徑和標(biāo)識(shí)獲得最外層的shell。 步驟403:將shell中的字符與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配。 步驟404:在匹配成功時(shí),獲得匹配成功的字符之前的字符,其中該獲得 的字符在與匹配成功的字符最近的符號(hào)之后。獲得的字符作為調(diào)用對(duì)象的標(biāo)識(shí) 可存于文件A中。繼續(xù)步驟406。同時(shí),依據(jù)關(guān)鍵字確定匹配成功的字符為shell 的標(biāo)識(shí)或?yàn)榇鎯?chǔ)過程的標(biāo)識(shí),若為shell的標(biāo)識(shí),則繼續(xù)步驟402, shell的路徑 可依據(jù)shell的標(biāo)識(shí)從目錄文件中獲得。若為存儲(chǔ)過程的標(biāo)識(shí),則繼續(xù)步驟407。 其中,從目錄文件中獲得shell的路徑只是一種實(shí)現(xiàn)方式,也可以從調(diào)用者中 獲得其調(diào)用對(duì)象的路徑,該路徑為調(diào)用命令(如get)與標(biāo)識(shí)之間的字符。
步驟405:所有字符均匹配失敗時(shí),檢查shell列表中是否有未讀取的shell 標(biāo)識(shí)及對(duì)應(yīng)的路徑,若有,則繼續(xù)步驟401,否則繼續(xù)步驟409。
步驟406:將獲得的字符作為調(diào)用對(duì)象的標(biāo)識(shí)建立與調(diào)用者的標(biāo)識(shí)的對(duì)應(yīng) 關(guān)系,以建立調(diào)用者與調(diào)用對(duì)象之間的調(diào)用關(guān)系。此步驟可以在每次執(zhí)行時(shí)獲 得一個(gè)調(diào)用關(guān)系流,如A->B和B->C,或者在重復(fù)執(zhí)行步驟401之前的多次執(zhí) 行時(shí)獲得一個(gè)調(diào)用關(guān)系流,如A》B》C。步驟407:依據(jù)存儲(chǔ)過程的標(biāo)識(shí)和從目錄文件中獲得的路徑,獲得存儲(chǔ)過程。
步驟408:將存儲(chǔ)過程中的字符與預(yù)設(shè)的第二關(guān)鍵字進(jìn)行匹配。繼續(xù)步驟 404或405。
經(jīng)過上述流程的多次循環(huán),可獲得多個(gè)調(diào)用關(guān)系。尤其是在多次執(zhí)行步驟 401后,得到多個(gè)調(diào)用關(guān)系流。則需要繼續(xù)步驟409。
步驟409:將一個(gè)調(diào)用關(guān)系中的父節(jié)點(diǎn)與另 一個(gè)調(diào)用關(guān)系中的子節(jié)點(diǎn)進(jìn)行 比較,在比較一致的情況下合并兩個(gè)調(diào)用關(guān)系為一個(gè)調(diào)用關(guān)系流。通過此步驟 也可以將多個(gè)樹狀的調(diào)用關(guān)系流合并為森林,即獲得了關(guān)于所有shell和存儲(chǔ) 過程的調(diào)用關(guān)系。
用于實(shí)現(xiàn)本申請(qǐng)實(shí)施例的軟件可以存儲(chǔ)于軟盤、硬盤、光盤和閃存等存儲(chǔ) 介質(zhì)。
本申請(qǐng)實(shí)施例通過將shell中的字符與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配來確定shell 是否有調(diào)用對(duì)象,當(dāng)有調(diào)用對(duì)象時(shí),通過讀取匹配成功的字符之前的字符來獲 得調(diào)用對(duì)象的標(biāo)識(shí),并進(jìn)一步建立shell與調(diào)用對(duì)象之間的調(diào)用關(guān)系。從而實(shí) 現(xiàn)了自動(dòng)獲得調(diào)用關(guān)系,提高了效率和減少了錯(cuò)誤率,同時(shí)節(jié)省了大量人力資 源。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)進(jìn)行各種改動(dòng)和變型而不脫離本申 請(qǐng)的精神和范圍。這樣,倘若對(duì)本申請(qǐng)的這些修改和變型屬于本申請(qǐng)權(quán)利要求 及其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1、一種獲得程序模塊間調(diào)用關(guān)系的方法,其特征在于,包括以下步驟獲得第一shell,并記錄獲得的第一shell的標(biāo)識(shí);將第一shell中的字符與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配,在匹配成功時(shí),獲得匹配成功的字符位置之前的字符,其中該獲得的字符在與匹配成功的字符位置最近的符號(hào)之后;根據(jù)獲得的字符確定調(diào)用對(duì)象,并建立調(diào)用對(duì)象與第一shell之間的調(diào)用關(guān)系。
2、 如權(quán)利要求1所述的方法,其特征在于,根據(jù)獲得的字符確定調(diào)用對(duì) 象并建立調(diào)用對(duì)象與shell之間的調(diào)用關(guān)系的步驟包括將獲得的字符作為調(diào) 用對(duì)象的標(biāo)識(shí)建立與第一 shell的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,以建立第一 shell與調(diào)用對(duì) 象之間的調(diào)用關(guān)系。
3、 如權(quán)利要求l所述的方法,其特征在于,所述獲得的第一 shell,是最 外層shell;獲得最外層shell的步驟包括:依據(jù)shell列表中記錄的的最外層shell 的標(biāo)識(shí),獲得最外層的shell。
4、 如權(quán)利要求1所述的方法,其特征在于,所述關(guān)鍵字包括用于表示shell 的第一關(guān)鍵字和用于表示存儲(chǔ)過程的笫二關(guān)鍵字;相應(yīng)的,調(diào)用對(duì)象包括shdl 和存儲(chǔ)過程。
5、 如權(quán)利要求4所述的方法,其特征在于,當(dāng)調(diào)用對(duì)象為shell時(shí),所述 方法還包括步驟依據(jù)調(diào)用對(duì)象的標(biāo)識(shí)獲得第二 shell,并重復(fù)將shell中的字 符與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配。
6、 如權(quán)利要求4所述的方法,其特征在于,當(dāng)調(diào)用對(duì)象為存儲(chǔ)過程時(shí), 所述方法還包括步驟依據(jù)調(diào)用對(duì)象的標(biāo)識(shí)獲得存儲(chǔ)過程,將存儲(chǔ)過程中的字 符與第二關(guān)鍵字進(jìn)行匹配,在匹配成功時(shí),獲得匹配成功的字符之前的字符, 其中該獲得的字符在與匹配成功的字符最近的符號(hào)之后;將獲得的字符作為調(diào) 用對(duì)象的標(biāo)識(shí)建立與存儲(chǔ)過程的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,以建立存儲(chǔ)過程與調(diào)用對(duì)象之間的調(diào)用關(guān)系。
7、 如權(quán)利要求1所述的方法,其特征在于,建立多個(gè)調(diào)用關(guān)系后,將調(diào) 用關(guān)系中的調(diào)用對(duì)象作為子節(jié)點(diǎn),調(diào)用調(diào)用對(duì)象的調(diào)用者作為父節(jié)點(diǎn),將一個(gè) 調(diào)用關(guān)系中的父節(jié)點(diǎn)與另 一個(gè)調(diào)用關(guān)系中的子節(jié)點(diǎn)進(jìn)行比較,在比較一致的情 況下,合并兩個(gè)調(diào)用關(guān)系為一個(gè)調(diào)用關(guān)系流。
8、 一種用于獲得程序模塊間調(diào)用關(guān)系的裝置,其特征在于,包括 讀取模塊,用于獲得shell,并記錄獲得的shell的標(biāo)識(shí); 匹配模塊,用于將shell中的字符與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配; 提取漠塊,用于在匹配成功時(shí),獲得匹配成功的字符之前的字符,其中該獲得的字符在與匹配成功的字符最近的符號(hào)之后;關(guān)系模塊,用于根據(jù)獲得的字符確定調(diào)用對(duì)象,并建立調(diào)用對(duì)象與第一 shell之間的調(diào)用關(guān)系。
9、 如權(quán)利要求8所述的裝置,其特征在于,關(guān)系模塊,用于將獲得的字 符作為調(diào)用對(duì)象的標(biāo)識(shí)建立與shell的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,以建立shell與調(diào)用對(duì) 象之間的調(diào)用關(guān)系。
10、 如權(quán)利要求8所述的裝置,其特征在于,所述獲得的第一 shell,是最 外層shell;讀取^莫塊依據(jù)shell列表中記錄的的最外層shell的標(biāo)識(shí),獲得最外 層的shell。
11、 如權(quán)利要求8所述的裝置,其特征在于,關(guān)4建字包括用于表示shell 的第一關(guān)鍵字和用于表示存儲(chǔ)過程的第二關(guān)鍵字;相應(yīng)的,調(diào)用對(duì)象包括shell 和存儲(chǔ)過程。
12、 如權(quán)利要求11所述的裝置,其特征在于,當(dāng)調(diào)用對(duì)象為shell時(shí),讀 取模塊依據(jù)調(diào)用對(duì)象的標(biāo)識(shí)獲得shell;匹配模塊重復(fù)將shell中的字符與預(yù)設(shè) 的關(guān)鍵字進(jìn)行匹配的步驟,
13、 如權(quán)利要求ll所述的裝置,其特征在于,當(dāng)調(diào)用對(duì)象為存儲(chǔ)過程時(shí), 讀取模塊依據(jù)調(diào)用對(duì)象的標(biāo)識(shí)獲得存儲(chǔ)過程;匹配模塊將存儲(chǔ)過程中的字符與第二關(guān)鍵字進(jìn)行匹配;提^4莫塊在匹配成功時(shí),獲得匹配成功的字符之前的字 符,其中該獲得的字符在與匹配成功的字符最近的符號(hào)之后;關(guān)系模塊將獲得的字符作為調(diào)用對(duì)象的標(biāo)識(shí)建立與存儲(chǔ)過程的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,以建立存儲(chǔ)過 程與調(diào)用對(duì)象之間的調(diào)用關(guān)系。
14、如權(quán)利要求8所述的裝置,其特征在于,還包括合并模塊,用于在關(guān)系模塊建立多個(gè)調(diào)用關(guān)系后,將調(diào)用關(guān)系中的調(diào)用對(duì) 象作為子節(jié)點(diǎn),調(diào)用調(diào)用對(duì)象的調(diào)用者作為父節(jié)點(diǎn),將一個(gè)調(diào)用關(guān)系中的父節(jié) 點(diǎn)與另一個(gè)調(diào)用關(guān)系中的子節(jié)點(diǎn)進(jìn)行比較,在比較一致的情況下,合并兩個(gè)調(diào) 用關(guān)系為一個(gè)調(diào)用關(guān)系流。
全文摘要
本申請(qǐng)公開了一種獲得程序模塊間調(diào)用關(guān)系的方法,用于提高獲得調(diào)用關(guān)系的效率。所述方法包括獲得shell,并記錄獲得的shell的標(biāo)識(shí);將shell中的字符與預(yù)設(shè)的關(guān)鍵字進(jìn)行匹配,在匹配成功時(shí),獲得匹配成功的字符之前的字符,其中該獲得的字符在與匹配成功的字符最近的符號(hào)之后;根據(jù)獲得的字符確定調(diào)用對(duì)象,并建立調(diào)用對(duì)象與第一shell之間的調(diào)用關(guān)系。本申請(qǐng)還公開了用于實(shí)現(xiàn)所述方法的裝置。
文檔編號(hào)G06F17/30GK101604262SQ20091015851
公開日2009年12月16日 申請(qǐng)日期2009年7月8日 優(yōu)先權(quán)日2009年7月8日
發(fā)明者林正華 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司