[發明專利]一種對程序進行無狀態檢測的方法和裝置有效
| 申請號: | 201710582689.7 | 申請日: | 2017-07-17 |
| 公開(公告)號: | CN109426601B | 公開(公告)日: | 2022-05-10 |
| 發明(設計)人: | 焦石;蔣啟剛 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F8/30;G06F8/41 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 羅振安 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 程序 進行 狀態 檢測 方法 裝置 | ||
本公開是關于一種對程序進行無狀態檢測的方法和裝置,屬于軟件編程技術領域。所述方法包括:當檢測到針對目標程序進行無狀態檢測的觸發操作后,執行所述目標程序;如果在執行所述目標程序的過程中,監測到所述目標程序的變量發生更改,且所述變量并非被執行所述目標程序所建立的初始線程所更改,則確定所述變量不符合無狀態設計原則。通過本發明實施例提供的方法,在執行目標程序的過程中,如果監測到目標程序的變量發生更改,且變量并非被執行目標程序所建立的初始線程所更改,則確定變量不符合無狀態設計原則。從根源對目標程序中不符合無狀態設計原則的變量進行識別,無需人工進行檢測,本發明實現了自動化檢測的過程。
技術領域
本公開是關于軟件編程技術領域,尤其是關于一種對程序進行無狀態檢測的方法和裝置。
背景技術
在2000年Roy Fielding發表的博士論文《Architectural styles and thedesign of network-based software architectures(架構風格和基于網絡的程序架構設計)》中,REST(Representational State Transfer,表征性狀態轉移)的概念被首次提出,REST是針對以網絡服務為基礎的程序所提出的,其中,以網絡服務為基礎的程序是指服務器為了響應客戶端的請求所執行的程序。REST描述的是程序設計架構的約束條件和設計原則,如果一個程序的設計架構符合REST的約束條件和設計原則,那么該程序的設計架構就是RESTful架構。具有RESTful架構的程序比一般的程序更簡潔,在客戶端與服務器的交互過程中更易于實現緩存等機制。
要實現RESTful架構就需要滿足RESTful架構設計所需的五大約束條件和設計原則。在上述五大約束條件和設計原則中,最重要的一個約束條件和設計原則,也是本文討論的重點,就是:所有在服務器中的操作都是無狀態的。如果滿足上述條件,也就滿足了無狀態設計原則。
所謂無狀態設計原則,是指服務器不能儲存任何客戶端的狀態相關信息如用戶名、密碼信息。客戶端向服務器發起的每次請求都是獨立的,是不能依賴之前發起過的請求的。客戶端向服務器發起的每次請求中應該包含服務器處理該請求所需要的全部信息。因此,所有客戶端的狀態相關信息都應該保存在客戶端,在每次客戶端向服務器發送請求時,都再發一次客戶端的狀態相關信息,服務器不需要保存任何客戶端的狀態相關信息。以此,可以節省服務器的內存空間,而且當一臺服務器發生故障時,可以迅速以另一臺備用服務器替換發生故障的服務器工作,同時客戶端可以馬上與備用服務器繼續正常進行通信。通過以上可知,程序可以滿足無狀態設計原則的重要性非常高。
在實現本公開的過程中,發明人發現至少存在以下問題:
當程序員編寫好一段程序之后,要怎么樣進行程序的無狀態檢測呢?換句話說,要怎么樣才能知道自己所編寫的程序是不是滿足無狀態設計原則呢?或者,以前編寫好的舊程序是不是滿足無狀態設計原則呢?在現有技術中,都是依靠人工對代碼一行一行的去排查。然而對于規模龐大的程序代碼,人為排查就顯得不可靠了。
發明內容
為了克服相關技術中存在的問題,本公開提供了以下技術方案:
第一方面,提供了一種對程序進行無狀態檢測的方法,該方法包括:當檢測到針對目標程序進行無狀態檢測的觸發操作后,執行目標程序;如果在執行目標程序的過程中,監測到目標程序的變量發生更改,且變量并非被執行目標程序所建立的初始線程所更改,則確定變量不符合無狀態設計原則。
通過本發明實施例提供的方法,在執行目標程序的過程中,如果監測到目標程序的變量發生更改,且變量并非被執行目標程序所建立的初始線程所更改,則確定變量不符合無狀態設計原則。從根源對目標程序中不符合無狀態設計原則的變量進行識別,無需人工進行檢測,本發明實現了自動化檢測的過程。
在一種可能的實現方式中,監測目標程序的變量是否發生更改,包括:通過JVMTI接口監測變量是否發生更改。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710582689.7/2.html,轉載請聲明來源鉆瓜專利網。





