系統(tǒng)接口調(diào)用記錄的生成方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種系統(tǒng)接口調(diào)用記錄的生成方法和裝置。
【背景技術(shù)】
[0002]隨著計算機技術(shù)的發(fā)展,用戶可以在計算機系統(tǒng)中安裝各式各樣的應(yīng)用程序來滿足其不同的使用需求,對于各種應(yīng)用程序,獲取其使用的頻率,根據(jù)各個應(yīng)用程序的使用頻率來優(yōu)化系統(tǒng)。
[0003]目前大部分基于j2ee的程序都遵循MVCXmodel view controller模型-視圖-控制器)架構(gòu),通過軟件分層來實現(xiàn),基于此架構(gòu)搭建的應(yīng)用系統(tǒng),每一個動作都基本對應(yīng)一個具體的業(yè)務(wù)操作,如創(chuàng)建訂單是一個單獨的動作,如何能統(tǒng)計出每個業(yè)務(wù)操作在服務(wù)器端的系統(tǒng)接口調(diào)用記錄,目前尚沒有很好的解決方案。
【發(fā)明內(nèi)容】
[0004]在下文中給出關(guān)于本發(fā)明的簡要概述,以便提供關(guān)于本發(fā)明的某些方面的基本理解。應(yīng)當(dāng)理解,這個概述并不是關(guān)于本發(fā)明的窮舉性概述。它并不是意圖確定本發(fā)明的關(guān)鍵或重要部分,也不是意圖限定本發(fā)明的范圍。其目的僅僅是以簡化的形式給出某些概念,以此作為稍后論述的更詳細(xì)描述的前序。
[0005]一方面,本發(fā)明提供一種系統(tǒng)接口調(diào)用記錄的生成方法,包括:比較對相同系統(tǒng)接口的連續(xù)N次調(diào)用的調(diào)用信息是否相同,如果相同,則根據(jù)N次調(diào)用信息合并生成調(diào)用記錄,N為大于I的整數(shù)。
[0006]另一方面,本發(fā)明提供了一種系統(tǒng)接口調(diào)用記錄的生成裝置,包括:調(diào)用信息存儲模塊,用于存儲對相同系統(tǒng)接口調(diào)用的調(diào)用信息;調(diào)用信息比較模塊,用于比較存儲起來的調(diào)用信息是否相同;調(diào)用記錄生成模塊,用于當(dāng)所述調(diào)用信息比較模塊反饋相同的信號時,合并相同的調(diào)用信息。
[0007]本發(fā)明提出的系統(tǒng)接口調(diào)用記錄的生成方法和裝置,通過獲取系統(tǒng)接口的調(diào)用信息,比較相同系統(tǒng)的多次調(diào)用信息是否相同,并將相同的調(diào)用信息合并生成一條調(diào)用記錄,該方法可以精確統(tǒng)計調(diào)用信息并合成調(diào)用記錄,做到精確統(tǒng)計的目的,又無需在業(yè)務(wù)代碼里到處做程序調(diào)整,實現(xiàn)方式簡單。
【附圖說明】
[0008]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0009]圖1為本發(fā)明實施例中系統(tǒng)接口調(diào)用記錄的生成方法流程圖;
[0010]圖2至圖6為本發(fā)明實施例中系統(tǒng)接口調(diào)用信息獲取時各攔截對象入棧和出棧示意圖;
[0011]圖7為本發(fā)明實施例中系統(tǒng)接口調(diào)用記錄的生成方法可選的模塊結(jié)構(gòu)圖。
【具體實施方式】
[0012]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。在本發(fā)明的一個附圖或一種實施方式中描述的元素和特征可以與一個或更多個其它附圖或?qū)嵤┓绞街惺境龅脑睾吞卣飨嘟Y(jié)合。應(yīng)當(dāng)注意,為了清楚的目的,附圖和說明中省略了與本發(fā)明無關(guān)的、本領(lǐng)域普通技術(shù)人員已知的部件和處理的表示和描述?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0013]實施例一:
[0014]如圖1所示為本發(fā)明實施例中系統(tǒng)接口調(diào)用記錄的生成方法流程圖,本發(fā)明提供了一種系統(tǒng)接口調(diào)用記錄的生成方法,包括步驟:
[0015]Sll:比較對相同系統(tǒng)接口的連續(xù)N次調(diào)用的調(diào)用信息是否相同;
[0016]S12:如果相同,則根據(jù)N次調(diào)用信息合并生成調(diào)用記錄,N為大于I的整數(shù)。
[0017]在實際使用中,會對系統(tǒng)接口進(jìn)行調(diào)用,會出現(xiàn)對同一個系統(tǒng)接口進(jìn)行多次調(diào)用的情況,每次調(diào)用時的調(diào)用信息都會進(jìn)行存儲,多占了系統(tǒng)的存儲空間,需要將對相同系統(tǒng)接口的多次調(diào)用信息合并起來,生成一條調(diào)用記錄,并且記錄下調(diào)用的次數(shù)即可。將多次相同的調(diào)用記錄合并可以節(jié)省內(nèi)存的空間,并且在查看時只需要查看相同的記錄和調(diào)用次數(shù)即可,操作方便快捷。
[0018]在將多次調(diào)用信息合并起來之前,首先需要比較對相同系統(tǒng)接口的連續(xù)N次調(diào)用的調(diào)用信息是否相同,所述調(diào)用信息為對系統(tǒng)接口發(fā)出的調(diào)用請求,即比較同一個系統(tǒng)接口接收到的調(diào)用請求是否相同,N為大于I的整數(shù);
[0019]如果比較得到同一個系統(tǒng)接口收到的多次調(diào)用請求時相同的,根據(jù)比較得到的調(diào)用請求相同的調(diào)用信息合并起來,生成調(diào)用記錄,并且所述合并生成的調(diào)用記錄包括基于相同調(diào)用信息連續(xù)調(diào)用系統(tǒng)接口的累積次數(shù)。
[0020]所述調(diào)用記錄除了調(diào)用信息之外還有調(diào)用的累積次數(shù),用戶在查看的時候可以很方便的查看到調(diào)用的信息和記錄,方便用戶的查看和操作。
[0021]在上述比較同一個系統(tǒng)接口接收到的調(diào)用請求是否相同之前,需要先獲取系統(tǒng)接口的調(diào)用信息,對系統(tǒng)接口調(diào)用信息的獲取方法為:
[0022]對各層系統(tǒng)接口的調(diào)用請求分別進(jìn)行攔截并生成攔截對象,
[0023]將各攔截對象根據(jù)各層調(diào)用的先后順序入棧;
[0024]按后進(jìn)先出的順序?qū)⒍褩V械母鲾r截對象進(jìn)行出棧處理并添加出棧時刻對應(yīng)的結(jié)束時間戳;
[0025]根據(jù)出棧后的各攔截對象獲取相應(yīng)各層系統(tǒng)接口的調(diào)用信息。
[0026]首先,系統(tǒng)中不同層的接口會發(fā)出調(diào)用請求,首先對不同的系統(tǒng)接口的調(diào)用請求進(jìn)行攔截并分別生成攔截對象,可選的,所述攔截對象包括相應(yīng)系統(tǒng)接口的調(diào)用請求和調(diào)用開始時間戳,即獲取對相應(yīng)系統(tǒng)接口進(jìn)行調(diào)用需要的調(diào)用請求和開始調(diào)用的時間。所述攔截并不是對所有的調(diào)用請求都進(jìn)行攔截,可選的面對各層系統(tǒng)接口的調(diào)用請求,根據(jù)預(yù)設(shè)條件選擇要攔截的指定業(yè)務(wù)操作或者剔除不需要攔截的地址。例如,統(tǒng)計用戶訪問某個鏈接的次數(shù),需要攔截對所述鏈接的訪問,對其他鏈接的訪問則不需要攔截。
[0027]然后將各攔截對象根據(jù)各層調(diào)用的先后順序入棧,可選的,所述系統(tǒng)接口根據(jù)調(diào)用的先后順序分為:WEB層,業(yè)務(wù)層,數(shù)據(jù)層;在業(yè)務(wù)系統(tǒng)中,對不同層進(jìn)行調(diào)用,并且根據(jù)調(diào)用的順序入棧。
[0028]隨后根據(jù)后進(jìn)先出的順序?qū)⒍褩V械母鱾€攔截對象進(jìn)行出棧處理,即對相應(yīng)系統(tǒng)接口的調(diào)用請求和調(diào)用開始時間戳進(jìn)行出棧處理,在出棧的同時添加對應(yīng)的結(jié)束時間戳。
[0029]最后根據(jù)出棧后的各攔截對象,所述攔截對象為對系統(tǒng)接口的調(diào)用請求,調(diào)用開始時間戳和調(diào)用結(jié)束時間戳,根據(jù)上述信息獲取相應(yīng)各層系統(tǒng)的調(diào)用信息。
[0030]對系統(tǒng)接口調(diào)用信息的獲取方法采用異步的方式發(fā)送所述調(diào)用信息。所述異步為一種通訊方式,雙方不需要共同的時鐘,發(fā)送方可以在任何時候進(jìn)行發(fā)送,在發(fā)送的信息中有提示接收方開始接收的信息,例如開始位,結(jié)束的時候有結(jié)束位。本發(fā)明中提到的提示接收方開始接收或結(jié)束接收消息的信號為,調(diào)用開始時間戳和調(diào)用結(jié)束時間戳。
[0031]為了清楚的描述本發(fā)明實施例,首先對本發(fā)明實施例涉及的相關(guān)技術(shù)術(shù)語做一些介紹:
[0032]hornetq是一個支持集群和多種協(xié)議,可嵌入、高性能的異步消息系統(tǒng)。
[0033]Struts2攔截器是在訪問某個Act1n或Act1n的某個方法之前或之后實施攔截。
[0034]Spring框架是一個輕量級控制反轉(zhuǎn)和面向切面的容器框架。
[0035]AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過預(yù)編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)。
[0036]下面以本實施例系統(tǒng)接口調(diào)用信息的獲取方法在hornetq系統(tǒng)中的應(yīng)用,進(jìn)一步說明本發(fā)明的技術(shù)方案??蛇x的,本發(fā)明所述的攔截器可為Struts2攔截器。
[0037]業(yè)務(wù)系統(tǒng)通過統(tǒng)計,收集客戶端程序,通過hornetq消息服務(wù)器將數(shù)據(jù)保存到監(jiān)控平臺的數(shù)據(jù)庫中,用戶通過監(jiān)控中心統(tǒng)一查看調(diào)用堆棧信息。
[0038]每個act1n基本對應(yīng)一個具體的業(yè)務(wù)操作,本實施例對act1n的統(tǒng)計采用struts〗的攔截器技術(shù)進(jìn)行實現(xiàn)的,在該攔截器中可以配置是否啟用此統(tǒng)計功能,通過在該攔截器中設(shè)置一個標(biāo)記位,所述標(biāo)記位默認(rèn)啟用,另外還在該攔截器設(shè)置了需要攔截的名單機制和不需要攔截的名單機制dnclude和exclude名單機制,即業(yè)務(wù)系統(tǒng)可以根據(jù)實際需要選擇要攔截指定的業(yè)務(wù)操作或把不需要攔截的地址剔除掉
[0039]web層以下調(diào)用業(yè)務(wù)層,業(yè)務(wù)層調(diào)用數(shù)據(jù)層統(tǒng)一使用spring框架的aop功能進(jìn)行統(tǒng)一攔截,即當(dāng)執(zhí)行該方法時記錄執(zhí)行的時間和上下文信息。
[0040]舉例來講:創(chuàng)建用戶操作
[0041]http://192.168.1.102:8080/user/createUser.act1n
[0042]該功能對應(yīng)的程序邏輯為:
[0043]CreateUserAct1n.java
[0044]---UserService.java 類的 createUser 方法
[0045]------UserDA0.java 類的 saveUser 方法
[0046]1、用戶訪問某一個業(yè)務(wù)操作鏈接(對