專利名稱:一種軟件監控方法及軟件監控裝置的制作方法
技術領域:
本發明涉及軟件調試技術領域,特別是一種軟件監控方法及軟件監控裝置。
背景技術:
為了保證軟件運行的穩定性,需要對軟件進行調試,現有的調試方式中, 通常采用串口打印方式,然而上述的采用串口打印方式進行調試的方法至少必 須使用串口線連接系統設備和客戶端,導致應用不方便。
為了解決采用串口打印方式進行調試的方法的不便,目前還可以通過
Telnet來進行調試。
Telnet主要用于Internet會話,其允許用戶登錄進入遠程主機系統,并能
夠將所有用戶輸入送到遠方主機進行處理的簡單的終端程序。 然而使用Telnet來進行調試來進行調試至少存在如下缺點 使用Telnet來進行調試是一種基于命令的交互方式,客戶端輸入命令,監
控端的Telnet服務回應命令結果,因此其無法得到軟件內部的其他數據,無法
滿足軟件監控的更進一 步的需求。
發明內容
本發明的目的是提供一種軟件監控方法及軟件監控裝置,為客戶端提供軟 件內部數據,滿足軟件監控的進一步需求。
為了實現上述目的,本發明實施例提供了一種軟件監控方法,包括 在軟件內部設置重定向開關;
在接收到第 一客戶端發送的字符串后,根據預先設置的字符串與執行指令 的映射關系,確定與所述第一客戶端發送的字符串相對應的執行指令;
在與所述客戶端發送的字符串相對應的執行指令為預設的第 一執行指令時,打開所述重定向開關,并通過所述重定向開關將軟件內部數據重定向到一 傳輸通道,以通過所述傳輸通道將所述軟件內部數據發送到第二客戶端。
上述的軟件監控方法,其中,所述第一客戶端和第二客戶端是不同的客戶 端時,所述字符串中包括一用于確定所述傳輸通道的傳輸通道標識。
上述的軟件監控方法,其中,還包括
時,執行所述第二執行指令,并將所述第二執行指令的執行結果重定向到第一 客戶端對應的傳輸通道,將所述執行結果發送到所述客戶端。
上述的軟件監控方法,其中,在接收到第一客戶端發送的字符串后,根據 預先設置的字符串與執行指令的映射關系,確定與所述第一客戶端發送的字符
串相對應的執行指令具體包括 接收用戶輸入的字符; 判斷是否接收到命令輸入結束字符;
在接收到命令輸入結束字符后,根據預先設置的字符串與執行指令的映射 關系,確定一與接收到命令輸入結束字符之前接收到的字符所形成的字符串對 應的執行指令。
上述的軟件監控方法,其中,所述傳輸通道為Telnet通道。 上述的軟件監控方法,其中,應用于嵌入式設備。 為了實現上述目的,本發明實施例提供了一種軟件監控裝置,包括 設置模塊,用于在軟件內部設置重定向開關;
指令確定模塊,用于在接收到第一客戶端發送的字符串后,根據預先設置 的字符串與執行指令的映射關系,確定與所述第一客戶端發送的字符串相對應
的執行指令;
第一執行模塊,用于在與所述第一客戶端發送的字符串相對應的執行指令 為預設的第一執行指令時,打開所述重定向開關,并通過所述重定向開關將軟 件內部數據重定向到一傳輸通道,以通過所述傳輸通道將所述軟件內部數據發 送到所述第一客戶端。
上述的軟件監控裝置,其中,所述第一客戶端和第二客戶端是不同的客戶 端時,所述字符串中包括一用于確定所述傳輸通道的傳輸通道標識。上述的軟件監控裝置,其中,還包括
第二執行模塊,用于在與所述客戶端發送的字符串相對應的執行指令為預 設的第二執行指令時,監控裝置執行所述第二執行指令,并將所述第二執行指 令的執行結果重定向到第 一客戶端對應的傳輸通道,將所述^t丸行結果發送到所 述客戶端。
上述的軟件監控裝置,其中,所述指令確定模塊具體包括 接收單元,用于接收用戶輸入的字符; 判斷單元,用于判斷是否接收到命令輸入結束字符; 指令獲取單元,用于在接收到命令輸入結束字符后,根據預先設置的字符 串與執行指令的映射關系,確定一與接收到命令輸入結束字符之前接收到的字
符所形成的字符串第對應的執行指令。
本發明實施例具有以下的有益效果
本發明實施例中,從終端用戶角度出發,提供命令交互功能,讓用戶可以 通過命令對軟件進行控制,同時,通過重定向開關的設置,使得用戶可以通過 命令方式打開該重定向開關,進而使得軟件內部數據也能夠返回客戶端,使用 戶可以更加自由地有控制地了解軟件內部相關性數據和運行狀態,極大地提高 了對軟件監控的力度,滿足了軟件監控的進一 步需求。。
圖1為本發明實施例的軟件監控方法的流程示意圖; 圖2為本發明實施例的軟件控制裝置的結構示意圖; 圖3為本發明實施例的應用場景意圖。
具體實施例方式
本發明實施例中,通過解析接收到的命令字符串,確定對應的命令后,執 行相應的命令,打開重定向開關,將內部數據和狀態返回客戶端。
如圖l所示,本發明實施例的軟件監控方法,利用監控裝置對軟件進行控
制,包括
步驟ll,監控裝置在所述軟件內部設置重定向開關;
6步驟12,監控裝置接收到第一客戶端發送的字符串后,根據預先設置的字符串與執行指令的映射關系,確定與所述客戶端發送的字符串相對應的執行
指令;
步驟13,在與所述客戶端發送的字符串相對應的執行指令為預設的第一執行指令時,監控裝置打開預先設置于所述軟件中的重定向開關,并通過所述重定向開關將軟件內部數據重定向到一傳輸通道,以通過所述傳輸通道將所述軟件內部數據發送到第二客戶端。
在本發明的具體實施例中,該第 一客戶端和第二客戶端可以是相同的客戶端,也可以是不同的客戶端。
在本發明的具體實施例中,該第一客戶端和第二客戶端是不同的客戶端時,所述字符串中包括一用于確定所述傳輸通道的傳輸通道標識。
當然,本發明實施例的方法還包括
步驟14,在與所述第一客戶端發送的字符串相對應的執行指令為預設的第二執行指令時,監控裝置執行所述第二執行指令,并將所述第二執行指令的執行結果重定向到第一客戶端與所述監控裝置之間的傳輸通道(也就是第一客戶端對應的傳輸通道),將所述執行結果發送到所述第一客戶端。
本發明實施例的軟件控制裝置,用于對軟件進行監控,如圖2所示,包括
設置模塊,用于在所述軟件內部設置重定向開關;
指令確定模塊,用于在接收到第一客戶端發送的字符串后,根據預先設置的字符串與執行指令的映射關系,確定與所述字符串相對應的執行指令;
第 一執行模塊,用于在與所述客戶端發送的字符串相對應的執行指令為預設的第一執行指令時,監控裝置打開預先設置于所述軟件中的重定向開關,并通過所述重定向開關將軟件內部數據重定向到一傳輸通道,以通過所述傳輸通道將所述軟件內部數據發送到第二客戶端。
在本發明的具體實施例中,該軟件控制裝置還包括
第二執行模塊,用于在與所述字符串相對應的執行指令為預設的第二執行指令時,執行所述第二執行指令,并將所述第二執行指令的執行結果重定向到第一客戶端與所述監控裝置之間的傳輸通道,將所述執行結果發送到所述第一客戶端。在本發明的具體實施例中,指令確定模塊包括接收單元,用于接收用戶輸入的字符;判斷單元,用于判斷是否接收到命令輸入結束字符;指令獲取單元,用于在接收到命令輸入結束字符后,根據預先設置的字符串與執行指令的映射關系,確定一與接收到命令輸入結束字符之前接收到的字
符所形成的字符串第對應的執行指令。
下面對上述的指令確定過程進行詳細描述。
識別命令的過程是逐字符的,每當用戶通過客戶端鍵入一個字符,該字符都會通過傳輸通道發送給監控裝置,由接收單元接收,并累計用戶鍵入的字符,當用戶輸入命令完成之后會鍵入特定的字符(如換行符),此時該換行符也會發送到監控裝置,由接收單元接收。
判斷單元判斷每一個字符是否為命令輸入結束字符,如果是,就將之前收到的字符組成字符串,否則繼續從傳輸通道接收字符,并判斷。
在得到用戶輸入的字符串之后,就根據預先設置的字符串與執行指令的映射關系,查找與該確定的字符串相對應的第 一執行指令。
從上述描述可以發現,需要根據預先設置的字符串與執行指令的映射關系才能確定第一執行指令,下面對預先設置的字符串與執行指令的映射關系進行詳細i兌明如下。
該字符串可以是指令名稱,也可以是指令的ID,當然該字符串具體如何設置可以根據需要而定,如在要求輸入簡單的情況下,可以是指令ID,如果要求直觀,則可以使用指令名稱,當然還可以使用其他的方式,只要能標識一個執行指令即可。
而該映射關系可以是如下的映射關系
指令ID與指令函數地址的映射關系,而根據預先設置的字符串與執行指令的映射關系,可以確定該指令函數的地址,進而根據地址確定指令函數。
其中該指令函數可以是已有的函數,也可以是用戶自己定義的函數,在此不作具體限定。
而在步驟13中,當與所述客戶端發送的字符串相對應的執行指令為預設的第一執行指令時(打開重定向開關指令),監控裝置打開預先設置于所述軟
8件中的重定向開關,而在重定向開關打開時,所述軟件內部數據被重定向到所述傳輸通道,并通過該傳輸通道返回客戶端。
在本發明的具體實施例中,該軟件內部數據可以是如下的 一 些數據表明軟件當前狀態的數據;
軟件運行過程中產生的數據,如寄存器中的數據;軟件的配置數據。
當然,只要與軟件相關的數據都可以得到,并不局限于上述的例子。如果該軟件內部數據的獲取可以通過在軟件中設置獲取模塊來實現,并為該獲取模塊設置重定向開關,在重定向開關關閉時,該獲取模塊所得到的數據并不會輸出, 一旦重定向開關打開,該獲取模塊所得到的數據就會被重定向到該傳輸通道,并通過傳輸通道返回客戶端。
當然,對于任何軟件而言,在其運行過程中產生的數據都會保存或者暫存在一個位置,當然,也可以通過在該位置設置重定向開關,將其在運行過程中產生的數據重定向到該傳輸通道,并通過傳輸通道返回客戶端,以便用戶進行觀察。
在本發明的具體實施例中,該傳輸通道可以是各種通道(如TCP傳輸通道),下面軟件調試領域常用的Telnet通道為例對本發明實施例進行詳細"i兌明。
重定向技術不影響串口的輸出,而是在串口的基礎上增加了面向客戶端的重定向,其不但包括單個命令交互執行的重定向,還包括軟件內部數據的重定向,在初始狀態下,重定向開關的狀態為關閉,其可以通過命令打開,從而實現內部監控數據和狀態輸出的重定向,為排查問題提供有力的手段。
下面對本發明的應用場景進行說明。
如圖3所示,其中包括設置有Telnet服務的客戶端,客戶端通過串口或者網線等方式連接到服務器端,該服務器端也設置有Telnet服務。
利用本發明的方法和Telnet方式的處理流程如下,包括
用戶通過客戶端連接服務器端的Telnet服務,首先進行用戶認證,用戶輸入用戶名和密碼,完成認證。
認i正通過后,進入命令處理流程;
用戶通過客戶端逐個鍵入字符,用戶鍵入的字符按序通過傳輸通道發送給
9監控裝置;
監控裝置接收字符并暫存;
監控裝置監控到特定的字符(如換行符)后,判斷出接收到命令輸入結束字符,則將之前收到的字符組成字符串;
監控裝置根據預先設置的字符串與執行指令的映射關系,查找與該確定的字符串相對應的執行指令。
如果該執行指令為預設的特定指令,則打開重定向開關;
重定向開關打開后,軟件內部預設的數據被所述重定向開關引導,重定向
到所述傳輸通道,以通過所述傳輸通道將所述軟件內部數據發送到所述客戶
二山彿。
如果該執行指令為通常指令,則執行該指令,并將所述第二執行指令的執行結果重定向到所述傳輸通道,以通過所述傳輸通道將所述執行結果發送到所述客戶端。
下面以一個例子來說明。
設有3個客戶端A、 B和C通過各自的傳輸通道連接到監控裝置,監控裝置在接收連接時進行處理,以傳輸通道標識A、 B、 C來標識3個傳輸通道。
假定用戶通過客戶端A輸入如下字符串ListAllConn,在監控裝置通過標識為A的連接接收到該ListAllConn之后,根據映射關系確定對應的執行指令為連接信息查詢命令,然后執行該連接信息查詢命令,并將查詢結果重定向到傳輸通道A,傳回發送字符串的客戶端。
假定用戶通過客戶端A輸入如下字符串OutputRedirect B,在監控裝置通過標識為A的連接接收到該OutputRedirect B之后,根據映射關系確定對應的執行指令為重定向命令,然后打開對應的重定向開關,并通過所述重定向開關將軟件內部數據重定向到傳輸通道B,以通過傳輸通道B將所述軟件內部數據發送到客戶端B。
本發明從終端用戶角度出發,提供命令交互功能,讓用戶可以通過命令對軟件進行控制,并通過重定向開關的設置,使得軟件內部數據也能夠返回客戶端,使用戶可以更加自由地有控制地了解軟件內部相關性數據和運行狀態,極大地提高了對軟件監控的力度。同時,本發明實施例可以應用于嵌入式設備,也可以應用于非嵌入式的領域,應用范圍廣。
以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以作出若千改進和潤飾,這些改進和潤飾也應^f見為本發明的保護范圍。
權利要求
1.一種軟件監控方法,其特征在于,包括在軟件內部設置重定向開關;在接收到第一客戶端發送的字符串后,根據預先設置的字符串與執行指令的映射關系,確定與所述第一客戶端發送的字符串相對應的執行指令;在與所述第一客戶端發送的字符串相對應的執行指令為預設的第一執行指令時,打開所述重定向開關,并通過所述重定向開關將軟件內部數據重定向到一傳輸通道,以通過所述傳輸通道將所述軟件內部數據發送到第二客戶端。
2. 根據權利要求1所述的軟件監控方法,其特征在于,所述第一客戶端 和第二客戶端是不同的客戶端,所述字符串中包括一用于確定所述傳輸通道的 傳輸通道標識。
3. 根據權利要求1或2所述的軟件監控方法,其特征在于,還包括在與所述客戶端發送的字符串相對應的執行指令為預設的第二執行指令 時,執行所述第二執行指令,并將所述第二執行指令的執行結果重定向到第一 客戶端對應的傳輸通道,將所述執行結果發送到所述客戶端。
4. 根據權利要求1或2所述的軟件監控方法,其特征在于,在接收到第 一客戶端發送的字符串后,根據預先設置的字符串與執行指令的映射關系,確 定與所述第一客戶端發送的字符串相對應的執行指令具體包括接收用戶輸入的字符; 判斷是否接收到命令輸入結束字符;在接收到命令輸入結束字符后,根據預先設置的字符串與執行指令的映射 關系,確定一與接收到命令輸入結束字符之前接收到的字符所形成的字符串對 應的執行指令。
5. 根據權利要求1或2所述的軟件監控方法,其特征在于,所述傳輸通 道為Telnet通道。
6. 根據權利要求1或2所述的軟件監控方法,其特征在于,應用于嵌入 式設備。
7. —種軟件監控裝置,其特征在于,包括設置模塊,用于在軟件內部設置重定向開關;指令確定模塊,用于在接收到第一客戶端發送的字符串后,根據預先設置 的字符串與執行指令的映射關系,確定與所述第一客戶端發送的字符串相對應的執行指令;第一執行模塊,用于在與所述第一客戶端發送的字符串相對應的執行指令 為預設的第一執行指令時,打開所述重定向開關,并通過所述重定向開關將軟 件內部數據重定向到一傳輸通道,以通過所述傳輸通道將所述軟件內部數據發 送到第二客戶端。
8. 根據權利要求7所述的軟件監控裝置,其特征在于,所述第一客戶端 和第二客戶端是不同的客戶端,所述字符串中包括一用于確定所述傳輸通道的 傳輸通道標識。
9. 根據權利要求7或8所述的軟件監控裝置,其特征在于,還包括第二執行模塊,用于在與所述第一客戶端發送的字符串相對應的執行指令 為預設的第二執行指令時,監控裝置執行所述第二執行指令,并將所述第二執 行指令的執行結果重定向到第一客戶端對應的傳輸通道,將所述執行結果發送 到所述第一客戶端。
10. 根據權利要求7或8所述的軟件監控裝置,其特征在于,所述指令確 定模塊具體包括接收單元,用于接收用戶輸入的字符;判斷單元,用于判斷是否接收到命令輸入結束字符;指令獲取單元,用于在接收到命令輸入結束字符后,根據預先設置的字符 串與執行指令的映射關系,確定一與接收到命令輸入結束字符之前接收到的字 符所形成的字符串第對應的執行指令。
全文摘要
本發明提供了一種軟件監控方法及軟件監控裝置,為客戶端提供軟件內部數據,滿足軟件監控的進一步需求,該方法包括在軟件內部設置重定向開關;在接收到第一客戶端發送的字符串后,根據預先設置的字符串與執行指令的映射關系,確定與所述第一客戶端發送的字符串相對應的執行指令;在與所述第一客戶端發送的字符串相對應的執行指令為預設的第一執行指令時,打開所述重定向開關,并通過所述重定向開關將軟件內部數據重定向到一傳輸通道,以通過所述傳輸通道將所述軟件內部數據發送到第二客戶端。本發明能夠為客戶端提供軟件內部數據,滿足了軟件監控的進一步需求。
文檔編號G06F11/36GK101667155SQ20091009356
公開日2010年3月10日 申請日期2009年9月25日 優先權日2009年9月25日
發明者王魏強, 陳志太 申請人:中興通訊股份有限公司