專利名稱:使用有目標(biāo)的變量輸入來測試數(shù)據(jù)格式的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)格式開發(fā)領(lǐng)域,尤其涉及測試數(shù)據(jù)格式來針對安全問題和其它缺陷進行保護。
背景技術(shù):
在常規(guī)的計算機網(wǎng)絡(luò)中,編譯、儲存并在多個不同的計算設(shè)備之間傳輸大量數(shù)據(jù)。為更安全且更有效地進行數(shù)據(jù)的編譯、存儲和傳輸,開發(fā)了多種不同的數(shù)據(jù)格式。一種類型的數(shù)據(jù)格式是文件格式,它是描述如何組織文件中的數(shù)據(jù)的格式。例如,當(dāng)文字處理程序保存文件時,文字處理程序保存除文件文本之外的格式化信息。該格式化信息通常是字符、指令和/或可被分離或剖析成遵循特定數(shù)據(jù)格式的規(guī)則的標(biāo)記其它信息的集合。
另一種類型的數(shù)據(jù)格式是協(xié)議。協(xié)議是用于在兩個設(shè)備之間傳輸數(shù)據(jù)的格式。協(xié)議描述了諸如要使用的檢錯類型、數(shù)據(jù)壓縮方法、發(fā)送設(shè)備如何指示它完成了發(fā)送消息、以及接收設(shè)備如何指示它已接收到消息等屬性。開放系統(tǒng)互連(“OSI”)是定義用于實現(xiàn)七層協(xié)議的聯(lián)網(wǎng)架構(gòu)的模型。一般而言,控制從一層傳遞到另一層,從一個站中的應(yīng)用層開始,前進到底層,通過信道到達下一站,然后向上反向在該分層結(jié)構(gòu)中前進。該分層結(jié)構(gòu)包括一些層應(yīng)用層、表示層、會話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層以及物理層。
應(yīng)用層協(xié)議是用于在應(yīng)用程序的客戶機和服務(wù)器方之間傳輸信息的協(xié)議。一般而言,應(yīng)用層協(xié)議定義了交換的消息的類型、各種消息類型的句法、以及用于確定應(yīng)用程序何時以及如何發(fā)送和響應(yīng)消息的規(guī)則。可根據(jù)所交換的數(shù)據(jù)的類型采用多種不同的應(yīng)用層協(xié)議。例如,超文本傳輸協(xié)議(HTTP)用于傳輸網(wǎng)頁內(nèi)容,文件傳輸協(xié)議(FTP)用于通過因特網(wǎng)傳輸文件,而簡單郵件傳輸協(xié)議(SMTP)用于傳輸電子郵件。
與數(shù)據(jù)格式尤其是應(yīng)用層協(xié)議相關(guān)聯(lián)的安全缺陷相當(dāng)長時間以來都是行業(yè)級的問題。這一安全缺陷造成了某些非常嚴重的問題,包括但不限于,多種廣泛分布且具破壞性的計算機病毒。盡管與這一安全缺陷相關(guān)聯(lián)的金錢損失有時候是難以計量的,但它們?nèi)钥赡苁橇钊梭@愕的。即使數(shù)據(jù)格式通常被良好地證明和理解,仍存在多種基本的數(shù)據(jù)格式實現(xiàn)問題。一個常見的問題是在描述數(shù)據(jù)格式的規(guī)范與數(shù)據(jù)格式的實際實現(xiàn)之間可能存在偏差或差異。另一個常見的問題出現(xiàn)在對數(shù)據(jù)格式進行實際剖析中存在缺陷的時候。許多這樣的問題將以安全漏洞的形式來表現(xiàn)自己。因此,為降低這些缺陷的可能性,期望在實現(xiàn)之前對數(shù)據(jù)格式執(zhí)行廣泛的測試。
一種可能的數(shù)據(jù)格式測試技術(shù)是試圖預(yù)測與數(shù)據(jù)格式相關(guān)聯(lián)的潛在缺陷,并開發(fā)能解決這些潛在缺陷的測試數(shù)據(jù)格式。盡管在理論上,這看似為一種切合實際的方法,然而試圖事先預(yù)測可能發(fā)生的各種各樣問題并生成解決這些問題的測試數(shù)據(jù)格式要求大量的時間和工作。這一問題的一種更可行的常規(guī)方法涉及形成完全隨機的數(shù)據(jù)并將完全隨機的數(shù)據(jù)傳遞到數(shù)據(jù)格式剖析器。由于隨機數(shù)據(jù)是不可預(yù)測的,因此它提供了對未來數(shù)據(jù)格式的不可預(yù)測特性的合理估計,而無需試圖預(yù)測實際的缺陷是什么。盡管對完全隨機的數(shù)據(jù)的使用在某種程度上是有效的技術(shù),然而隨機數(shù)據(jù)的固有變化導(dǎo)致多種缺點。具體地,對于任何相對復(fù)雜的數(shù)據(jù)格式,完全隨機的數(shù)據(jù)通常將不會足夠密切地符合該數(shù)據(jù)格式以使它能夠在前幾個剖析例程之外測試。由此,該技術(shù)往往無法測試數(shù)據(jù)格式的更復(fù)雜方面。由于這些和其它缺點,本領(lǐng)域中需要一種改進的數(shù)據(jù)格式測試技術(shù)。
發(fā)明內(nèi)容
本發(fā)明針對使用有目標(biāo)的變量輸入來測試數(shù)據(jù)格式的系統(tǒng)和方法。依照本發(fā)明的一方面,數(shù)據(jù)格式可使用諸如巴科斯-諾爾范式(Backus Naur Form)等上下文無關(guān)語法來定義。所得的數(shù)據(jù)格式定義可包括多種不同的標(biāo)記定義。上下文無關(guān)數(shù)據(jù)格式定義然后可被變換成以諸如可擴展標(biāo)記語言(XML)等語言編寫的人類可讀數(shù)據(jù)格式定義。上下文無關(guān)數(shù)據(jù)格式定義中的每一標(biāo)記可成為人類可讀數(shù)據(jù)格式定義中的一個節(jié)點。該數(shù)據(jù)格式定義中一個或多個選中的節(jié)點的值然后可用變量占位符來替換。選中的節(jié)點可基于數(shù)據(jù)格式規(guī)范中的參數(shù)來選擇。在運行時,當(dāng)從數(shù)據(jù)格式定義中生成輸入標(biāo)記流時,每一變量占位符用一隨機值來替換,由此提供了有目標(biāo)的變量輸入??芍貜?fù)地生成新的輸入標(biāo)記流,每一新的流包括關(guān)于每一變量占位符的一個新的隨機值。每一所得的輸入流可被提交給數(shù)據(jù)格式剖析器以供測試。
當(dāng)參考附圖閱讀以下說明性實施例的詳細描述時,可以清楚本發(fā)明的其它特征和優(yōu)點。
在參考附圖閱讀了以下詳細描述之后,可以更好地理解各說明性實施例,附圖中圖1描述了依照本發(fā)明用于測試數(shù)據(jù)格式的示例性系統(tǒng);圖2是依照本發(fā)明用于測試數(shù)據(jù)格式的示例性方法的流程圖;圖3a和3b描述了依照本發(fā)明的示例性數(shù)據(jù)格式定義;圖4a和4b描述了依照本發(fā)明的示例性人類可讀數(shù)據(jù)格式定義;圖5a和5b描述了依照本發(fā)明的示例性變量人類可讀數(shù)據(jù)格式定義;圖6是表示具有其中可實現(xiàn)本發(fā)明的各種計算設(shè)備的示例性網(wǎng)絡(luò)環(huán)境的框圖;以及圖7是表示其中可實現(xiàn)本發(fā)明的示例性計算設(shè)備的示例性框圖。
具體實施例方式
本發(fā)明的主題用細節(jié)來描述以滿足法定要求。然而,該描述本身并不旨在限制本專利的范圍。相反,發(fā)明人構(gòu)想所要求保護的主題也可以結(jié)合其它當(dāng)前或未來的技術(shù)用其它方式來實施,以包括與本文檔中所描述的那些相似的不同動作或元素。
依照本發(fā)明用于測試數(shù)據(jù)格式的一個示例性系統(tǒng)在圖1中示出。如上所述,該數(shù)據(jù)格式可以是例如文件格式、協(xié)議或任何其它類型的數(shù)據(jù)格式。一般而言,該系統(tǒng)包括用于生成有目標(biāo)的變量測試數(shù)據(jù)格式105的一個或多個開發(fā)計算機100。測試數(shù)據(jù)格式105作為輸入被提交給剖析和測試輸入的數(shù)據(jù)格式剖析器107。開發(fā)計算機100或另一可訪問的計算機可提供能夠生成數(shù)據(jù)格式規(guī)范102的文本編輯器界面101。數(shù)據(jù)格式規(guī)范是描述數(shù)據(jù)格式的期望屬性以及其它類似的特征的文檔。文本編輯器界面101也能夠生成數(shù)據(jù)格式定義104。數(shù)據(jù)格式定義104是定義關(guān)于數(shù)據(jù)格式內(nèi)的標(biāo)記的值、設(shè)置標(biāo)記的順序的文檔,并且也可包括關(guān)于數(shù)據(jù)格式的其它信息。數(shù)據(jù)格式定義104可以基于數(shù)據(jù)格式規(guī)范102中的信息生成。在完成之后,使數(shù)據(jù)格式定義104對測試數(shù)據(jù)格式生成器103可用,后者使用其中的信息來生成有目標(biāo)的變量測試數(shù)據(jù)格式105。測試數(shù)據(jù)格式生成過程在下文參考圖2來詳細描述。
如上所述,數(shù)據(jù)格式規(guī)范102描述了數(shù)據(jù)格式的期望屬性。具體地,數(shù)據(jù)格式可具有多個設(shè)置屬性,諸如固定長度屬性、長度前綴屬性以及偏移量屬性。固定長度屬性具有預(yù)先選擇的固定長度,且因此僅包括一個數(shù)據(jù)標(biāo)記。另一方面,長度前綴屬性包括數(shù)據(jù)標(biāo)記以及之前的長度標(biāo)記。數(shù)據(jù)標(biāo)記的長度是由長度標(biāo)記的值來確定的。偏移量屬性包括多個長度標(biāo)記、多個偏移量標(biāo)記以及數(shù)據(jù)標(biāo)記。數(shù)據(jù)標(biāo)記包括多個數(shù)據(jù)集,其每一個具有對應(yīng)的數(shù)據(jù)標(biāo)記和對應(yīng)的偏移量標(biāo)記。每一數(shù)據(jù)集的長度是由其對應(yīng)的長度標(biāo)記的值來確定的,且每一數(shù)據(jù)集在數(shù)據(jù)標(biāo)記中的位置是由其對應(yīng)的偏移量標(biāo)記來確定的。這三個設(shè)置屬性的示例將在下文中提供。
圖2示出了依照本發(fā)明用于生成有目標(biāo)的變量測試數(shù)據(jù)格式105的示例性方法的流程圖。在動作210,由測試數(shù)據(jù)格式生成器103接收數(shù)據(jù)格式定義104。數(shù)據(jù)格式定義104可以用諸如巴科斯-諾爾范式(BNF)等上下文無關(guān)的語法來定義數(shù)據(jù)格式。圖3a和3b中示出了用于兩個不同的示例性數(shù)據(jù)格式的兩個示例性上下文無關(guān)數(shù)據(jù)格式定義。第一種數(shù)據(jù)格式(“P1”)包括固定長度數(shù)據(jù)和長度前綴數(shù)據(jù),而第二種數(shù)據(jù)格式(“P2”)包括偏移量數(shù)據(jù)。
現(xiàn)在參考圖3a,P1數(shù)據(jù)格式定義的第一行指示P1包括三個標(biāo)記“Type(類型)”,之后為“Length(長度)”,之后為“Data(數(shù)據(jù))”?!癟ype”標(biāo)記指定了固定長度數(shù)據(jù),“Length”標(biāo)記指定了長度前綴數(shù)據(jù)的長度,而“Data”標(biāo)記指定了長度前綴數(shù)據(jù)的數(shù)據(jù)。圖3a中剩余的行定義了標(biāo)記的值。具體地,“Type”和“Length”標(biāo)記的每一個包括一字節(jié)的數(shù)據(jù),而“Data”標(biāo)記包括由“Length”標(biāo)記值確定的可變數(shù)量的數(shù)據(jù)字節(jié)。
現(xiàn)在參考圖3b,P2數(shù)據(jù)格式定義的第一行指示P2包括三個標(biāo)記“OffsetLength 1(偏移量長度1)”,之后為“Offset Length 2(偏移量長度2)”,之后為“Data(數(shù)據(jù))”。兩個“Offset Length”標(biāo)記的每一個包括“Offset(偏移量)”標(biāo)記和“Length(長度)”標(biāo)記。“Offset”標(biāo)記指定了“Data”標(biāo)記中對應(yīng)的數(shù)據(jù)集的位置,而“Length”標(biāo)記指定了“Data”標(biāo)記中對應(yīng)的數(shù)據(jù)集的長度。圖3b中的剩余行定義了標(biāo)記的值。具體地,“Offset”和“Length”標(biāo)記的每一個包括一字節(jié)的數(shù)據(jù),而“Data”標(biāo)記包括由“Length”標(biāo)記的組合值確定的可變數(shù)量的數(shù)據(jù)字節(jié)。
返回到圖2,在動作212,將上下文無關(guān)數(shù)據(jù)格式定義變換成人類可讀形式。人類可讀數(shù)據(jù)格式定義可以用諸如可擴展標(biāo)記語言(XML)等語言來定義。上下文無關(guān)數(shù)據(jù)格式定義中的每一標(biāo)記可成為人類可讀數(shù)據(jù)格式定義中的一個節(jié)點。人類可讀定義中的所得的葉層節(jié)點對應(yīng)于一系列一個或多個字節(jié)。人類可讀數(shù)據(jù)格式定義提供了一種直觀且易于理解的模式,其中可設(shè)置標(biāo)記的值。然而,應(yīng)當(dāng)注意,將數(shù)據(jù)格式定義轉(zhuǎn)換成人類可讀形式無需在每一情況下都完成,且動作212是可任選動作。用于數(shù)據(jù)格式P1和P2的示例性人類可讀數(shù)據(jù)格式定義分別在圖4a和4b中示出。這些示例性人類可讀數(shù)據(jù)格式定義是用XML來定義的。
現(xiàn)在參考圖4a,“Type”標(biāo)記的值被設(shè)為4,“Length”標(biāo)記的值被設(shè)為3,“Data”標(biāo)記包括三個字節(jié),其每一個具有二進制值“CC”。如應(yīng)當(dāng)理解的,“Data”標(biāo)記包括三個字節(jié),因為“Length”標(biāo)記具有值3。依照圖4所示的定義所得的用于數(shù)據(jù)格式P1的標(biāo)記流如下P1{04 03 CC CC CC}。
現(xiàn)在參考圖4b,對于“Offset Length 1”,“Offset”標(biāo)記的值被設(shè)為0,“Length”標(biāo)記的值被設(shè)為1。對于“Offset Length 2”,“Offset”標(biāo)記的值被設(shè)為1,“Length”標(biāo)記的值被設(shè)為3?!癉ata”標(biāo)記包括兩個數(shù)據(jù)集。第一個數(shù)據(jù)集對應(yīng)于“OffsetLength 1”,且包括具有二進制值“AA”的數(shù)據(jù)的第一字節(jié)。第二個數(shù)據(jù)集對應(yīng)于“Offset Length 2”,且包括數(shù)據(jù)的第二到第四字節(jié),其每一個都具有二進制值“BB”。如應(yīng)當(dāng)理解的,第一數(shù)據(jù)集在“Data”標(biāo)記中的第一字節(jié)處開始,因為它具有0的偏移量,而第二數(shù)據(jù)集在“Data”標(biāo)記中的第二字節(jié)處開始,因為它具有1的偏移量。依照圖4b所示的定義所得的用于數(shù)據(jù)格式P1的標(biāo)記流如下P2{0001 01 03 AA BB BB BB}。
返回到圖2,在動作214,用變量占位符來替代一個或多個選中的標(biāo)記的值。如上所述,可以在數(shù)據(jù)格式定義104的人類可讀形式中更直觀地進行這一替代。然而,該替代無需從人類可讀數(shù)據(jù)格式定義中作出,且例如可從上下文無關(guān)數(shù)據(jù)格式定義內(nèi)作出。具有某些示例性變量替代的用于P1和P2的數(shù)據(jù)格式定義分別在圖5a和5b中示出。在圖5a中,“Length”標(biāo)記的值用變量占位符來替代,而在圖5b中,“Offset Length 2”的“Length”標(biāo)記的值用變量占位符來替代。依照圖5a所示的定義所得的用于數(shù)據(jù)格式P1的標(biāo)記流如下P1{04 XX CC CC CC},而依照圖5b的P2為P2{00 01 01 XX AA BB BB BB},其中“XX”表示變量占位符。可以用變量占位符替代數(shù)據(jù)格式內(nèi)的一個以上標(biāo)記。
返回到圖2,在動作216,生成輸入測試數(shù)據(jù)格式105。輸入測試數(shù)據(jù)格式105是這樣一種標(biāo)記流,其中每一標(biāo)記具有其自己的來自數(shù)據(jù)格式定義的對應(yīng)值,且變量占位符用隨機值來替代。在動作218,輸入測試數(shù)據(jù)格式105被提交給數(shù)據(jù)格式剖析器107。輸入測試數(shù)據(jù)格式105的生成可以被重復(fù)任意的次數(shù)(如由圖2中的虛線循環(huán)所指示的),每一新的輸入流包括用于每一變量占位符的新的隨機值??梢灾貜?fù)地生成新的輸入流,并將其提交給數(shù)據(jù)格式剖析器107,直到檢測到數(shù)據(jù)格式中的一個或多個缺陷。當(dāng)檢測到缺陷時,可通過在必要時改變數(shù)據(jù)格式來調(diào)試數(shù)據(jù)格式,以緩和該缺陷。當(dāng)然,也可能對給定的一組變量替代沒有檢測到任何缺陷。這可如下確定重復(fù)生成輸入流,直到認為已經(jīng)有了足夠的隨機值采樣來得出對選中的變量標(biāo)記沒有任何缺陷存在的結(jié)論。一旦得出這一結(jié)論,可以返回變量標(biāo)記的實際常數(shù)值,且可選擇數(shù)據(jù)格式中的一個或多個其它標(biāo)記為變量標(biāo)記。
被選中用于變量替換的標(biāo)記可以基于數(shù)據(jù)格式規(guī)范102中的信息以及數(shù)據(jù)格式的其它特征來確定。例如,參考數(shù)據(jù)格式P2,“Offset Length 1”可對應(yīng)于用戶名,而“Offset Length 2”可對應(yīng)于口令。由此,如在圖5b的示例中,“Offset Length2”的“Length”標(biāo)記可用變量占位符來替換,以測試數(shù)據(jù)格式P2如何用變化長度的口令來表現(xiàn)。在這一情形中,“Offset Length 2”的“Length”標(biāo)記可被測試到斷開點,而數(shù)據(jù)格式P2中的其它標(biāo)記保持不變。
有目標(biāo)的變量輸入與完全隨機輸入相反的某些好處可從該示例中容易地看到。具體地,如果沒有將數(shù)據(jù)格式P2的變化的目標(biāo)定為“Offset Length 2”的“Offset”標(biāo)記,則該標(biāo)記相當(dāng)有可能從不被實際測試。為理解這一點,考慮如果數(shù)據(jù)格式P2中的所有標(biāo)記被分配隨機值則可能發(fā)生什么的示例?,F(xiàn)在,為說明起見,假定當(dāng)生成變量輸入流時,向“Offset Length 1”分配偏移量0和長度3,而向“OffsetLength 2”分配偏移量2。在這一情形中,由于“Offset Length 1”的長度大于“OffsetLength 2”的長度,因此檢測到錯誤。由此,由于該錯誤,測試將不會進展到“OffsetLength 2”的“Offset”標(biāo)記。盡管這是一個相對簡單的示例,但是許多數(shù)據(jù)格式要復(fù)雜得多,且涉及更多標(biāo)記,由此提高了并非數(shù)據(jù)格式的所有部分都被測試到的可能性。
除上述上下文無關(guān)語法數(shù)據(jù)格式定義之外,也可能以基于語言的定義來定義數(shù)據(jù)格式。這一基于語言的數(shù)據(jù)格式定義可以類似于功能編程,或可以例如是基于棧的語言定義。數(shù)據(jù)格式P1的一個示例性基于語言的定義示出如下AddByte(0x04)AddRandomByte()AddByte(0xCC)AddByte(0xCC)AddByte(0xCC)
該示例性的基于語言的定義僅列出了每一標(biāo)記的對應(yīng)值,并且還包括由“AddRandomByte(添加隨機字節(jié))”命令表示的變量。當(dāng)然,該定義未示出圖3a中所示的數(shù)據(jù)格式P1的巴科斯-諾爾范式數(shù)據(jù)格式定義中諸如“Length”和“Data”標(biāo)記等標(biāo)記之間的關(guān)系。然而,該基于語言的定義仍提供了與上述有目標(biāo)的變量輸入相關(guān)聯(lián)的優(yōu)點。
除完全隨機的值之外,變量也可以用“智能”值來替代。這些智能值能夠測試標(biāo)記流中的每一標(biāo)記的公知邊界。智能值可包括諸如空值(00)、修正值(N)、中間值(N/2)、最大值、預(yù)定值范圍內(nèi)大于修正值的值(N+X)、以及預(yù)定值范圍內(nèi)小于修正值的值(N-X)等值。例如,對于具有修正值“06”的長度前綴標(biāo)記,可用的智能值可以包括空值(00)、修正值(06)、中間值(03)、比修正值大1的值(07)以及比修正值小1的值(05)。這些智能值可根據(jù)其中替換了這些智能值的特定標(biāo)記來測試不同的屬性。例如,對于長度前綴標(biāo)記,智能值(N-X)和(N+X)僅調(diào)整對應(yīng)數(shù)據(jù)集的長度。然而,對于偏移量標(biāo)記,智能值(N-X)將調(diào)整對應(yīng)數(shù)據(jù)集的位置,使得它位于前一數(shù)據(jù)集內(nèi)的某處,而值(N+X)調(diào)整對應(yīng)數(shù)據(jù)集的位置,使得它位于后一數(shù)據(jù)集內(nèi)的某處。
因此,如上參考圖1-5的示例性系統(tǒng)和方法所述的,本發(fā)明提供了用于生成測試數(shù)據(jù)格式的系統(tǒng)和方法。如可從上述內(nèi)容中清楚的,本發(fā)明的各種系統(tǒng)、方法和方面的全部或部分可用硬件、軟件或兩者的組合來實現(xiàn)。當(dāng)用軟件實現(xiàn)時,本發(fā)明的方法和裝置,或其某些方面或部分,可以用程序代碼(即,指令)的形式來實施。該程序代碼可以儲存在計算機可讀介質(zhì)上,諸如磁、電或光存儲介質(zhì),包括但不限于,軟盤、CD-ROM、CD-RW、DVD-ROM、DVD-RAM、磁帶、閃存、硬盤驅(qū)動器或任何其它機器可讀存儲介質(zhì),其中,當(dāng)程序代碼被加載到諸如計算機或服務(wù)器等機器中并由其執(zhí)行時,該機器變?yōu)橛糜趯嵤┍景l(fā)明的裝置。其上執(zhí)行程序代碼的計算機一般包括處理器、處理器可讀的存儲介質(zhì)(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設(shè)備以及至少一個輸出設(shè)備。程序代碼可以用高級過程語言或面向?qū)ο蟮木幊陶Z言來實現(xiàn)?;蛘?,程序代碼可以用匯編語言或機器語言來實現(xiàn)。在任何情況下,語言可以是已編譯或已解釋語言。
本發(fā)明也可用通過某一傳輸介質(zhì),如通過電線或電纜、通過光纖、通過包括局域網(wǎng)、廣域網(wǎng)、因特網(wǎng)或內(nèi)聯(lián)網(wǎng)的網(wǎng)絡(luò)、或通過任一其它形式的傳輸發(fā)送的程序代碼的形式來實施,其中,當(dāng)程序代碼由諸如計算機等機器接收被裝載到其中由其執(zhí)行時,該機器變?yōu)橛糜趯嵤┍景l(fā)明的裝置。
當(dāng)在通用處理器上實現(xiàn)時,程序代碼可與處理器相結(jié)合,以提供與專用邏輯電路相似地操作的獨特裝置。
此外,本發(fā)明可以結(jié)合任何計算機或其它客戶機或服務(wù)器設(shè)備來實現(xiàn),它們可作為計算機網(wǎng)絡(luò)的一部分部署,或部署在分布式計算環(huán)境中。在這一點上,本發(fā)明涉及具有任意數(shù)量的存儲器或存儲單元,以及跨任意數(shù)量的存儲單元或卷發(fā)生的任意數(shù)量的應(yīng)用程序和進程的任何計算機系統(tǒng)或環(huán)境,它可結(jié)合本發(fā)明來使用。本發(fā)明可應(yīng)用于具有部署在具有遠程或本地存儲的網(wǎng)絡(luò)環(huán)境或分布式計算環(huán)境中的服務(wù)器計算機和客戶機計算機的環(huán)境。本發(fā)明也可應(yīng)用于具有編程語言功能、解釋、以及用于結(jié)合遠程或本地服務(wù)生成、接收和發(fā)送信息的執(zhí)行能力的獨立計算設(shè)備。
分布式計算通過計算設(shè)備和系統(tǒng)之間的交換便于計算機資源和服務(wù)的共享。這些資源和服務(wù)包括,但不限于,信息交換、高速緩存存儲以及用于文件的磁盤存儲。分布式計算利用了網(wǎng)絡(luò)連通性,從而允許客戶機充分利用其集體能力來使整個企業(yè)受益。在這一點上,各種設(shè)備可具有可蘊含結(jié)合本發(fā)明來執(zhí)行的處理的應(yīng)用程序、對象或資源。
圖6提供了示例性聯(lián)網(wǎng)或分布式計算環(huán)境的示意圖。該分布式計算環(huán)境包括計算對象10a、10b等等,以及計算對象或設(shè)備110a、110b、110c等。這些對象可包括程序、方法、數(shù)據(jù)存儲、可編程邏輯等。這些對象可包括諸如PDA、電視機、MP3播放器、個人計算機等的相同或不同設(shè)備的各部分。每一對象可通過通信網(wǎng)絡(luò)14與另一對象通信。該網(wǎng)絡(luò)本身可包括向圖6的系統(tǒng)提供服務(wù)的其它計算對象和計算設(shè)備,并且本身可表示多個互連的網(wǎng)絡(luò)。依照本發(fā)明的一個方面,每一對象10a、10b等或110a、110b、110c等可包含可以利用API或其它對象、軟件、固件和/或硬件來請求對用于實現(xiàn)本發(fā)明的過程的使用的應(yīng)用程序。
可以理解,諸如110c等對象可以主存在另一計算設(shè)備10a、10b等或110a、110b等上。由此,盡管所描述的物理環(huán)境可以將連接的設(shè)備示出為計算機,然而這一說明僅是示例性的,并且該物理環(huán)境可替換地被描繪或描述為包括諸如PDA、電視機、MP3播放器等各種數(shù)字設(shè)備,諸如接口、COM對象等的軟件對象。
有各種支持分布式計算環(huán)境的系統(tǒng)、組件和網(wǎng)絡(luò)配置。例如,計算系統(tǒng)可以通過有線或無線系統(tǒng)、局域網(wǎng)或廣泛分布的網(wǎng)絡(luò)連接在一起。當(dāng)前,許多網(wǎng)絡(luò)耦合至因特網(wǎng),后者為廣泛分布的計算提供了基礎(chǔ)結(jié)構(gòu)并包含許多不同的網(wǎng)絡(luò)。任一基礎(chǔ)結(jié)構(gòu)可用于關(guān)聯(lián)本發(fā)明所作出的示例性通信。
因特網(wǎng)通常指使用TCP/IP協(xié)議套件的網(wǎng)絡(luò)和網(wǎng)關(guān)的集合,該協(xié)議在計算機聯(lián)網(wǎng)領(lǐng)域中是公知的。TCP/IP是“傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議”的縮寫。因特網(wǎng)可被描述為由執(zhí)行允許用戶通過一個或多個網(wǎng)絡(luò)交互和共享信息的聯(lián)網(wǎng)協(xié)議的計算機互連的地理上分布的遠程計算機網(wǎng)絡(luò)系統(tǒng)。由于這類廣泛分布的信息共享,諸如因特網(wǎng)等遠程網(wǎng)絡(luò)至今發(fā)展成一種開放系統(tǒng),開發(fā)者可對該開放系統(tǒng)設(shè)計用于執(zhí)行專用操作或服務(wù)的應(yīng)用程序,在本質(zhì)上沒有限制。
由此,網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)啟用了諸如客戶機/服務(wù)器、對等或混合體系結(jié)構(gòu)等大量網(wǎng)絡(luò)拓撲結(jié)構(gòu)。“客戶機”是使用它所不相關(guān)的另一類或組的服務(wù)的類或組的成員。由此,在計算時,客戶機是進程,即,粗略地而言是一組請求由另一程序提供的服務(wù)的指令或任務(wù)??蛻魴C進程使用所請求的服務(wù),而無需“知道”關(guān)于其它程序或服務(wù)本身的任何工作細節(jié)。在客戶機/服務(wù)器體系結(jié)構(gòu)中,尤其是網(wǎng)絡(luò)化系統(tǒng)中,客戶機通常是訪問由另一計算機,如服務(wù)器提供的共享網(wǎng)絡(luò)資源的計算機。在圖6的示例中,計算機110a、110b等可以被認為是客戶機,而計算機10a、10b等可以被認為是服務(wù)器,盡管任何計算機可以被認為是客戶機、服務(wù)器或兩者,這取決于環(huán)境。這些計算設(shè)備的任一個可以用蘊含本發(fā)明的方式處理數(shù)據(jù)。
服務(wù)器通常是可通過遠程或本地網(wǎng)絡(luò),如因特網(wǎng)訪問的遠程計算機系統(tǒng)??蛻魴C進程可以在第一計算機系統(tǒng)中活動,而服務(wù)器進程可以在第二計算機系統(tǒng)中活動,它們通過通信介質(zhì)彼此通信,由此提供了分布式功能并允許多個客戶機利用服務(wù)器的信息收集能力。依照本發(fā)明使用的任何軟件對象可以在多個計算設(shè)備上分布。
一個或多個客戶機和一個或多個服務(wù)器可使用由協(xié)議層提供的功能彼此通信。例如,超文本傳輸協(xié)議(HTTP)是一種結(jié)合萬維網(wǎng)(WWW)或“Web”使用的常見協(xié)議。通常,計算機網(wǎng)絡(luò)地址,如網(wǎng)際協(xié)議(IP)地址或諸如統(tǒng)一資源定位器(URL)等其它引用,可用于彼此標(biāo)識服務(wù)器或客戶機計算機。網(wǎng)絡(luò)地址可被稱為URL地址。通信可在任何可用通信介質(zhì)上提供。
由此,圖6示出了具有通過網(wǎng)絡(luò)/總線與客戶機計算機通信的服務(wù)器的示例性網(wǎng)絡(luò)化或分布式環(huán)境,其中可實施本發(fā)明。依照本發(fā)明,網(wǎng)絡(luò)/總線14可以是LAN、WAN、內(nèi)聯(lián)網(wǎng)、因特網(wǎng)或某一其它網(wǎng)絡(luò)介質(zhì),它具有多個客戶機或遠程計算設(shè)備110a、110b、110c、110d、110e等,如便攜式計算機、手持式計算機、瘦客戶機、聯(lián)網(wǎng)設(shè)備或其它設(shè)備,如VCR、TV、烤箱、燈、加熱器等等。由此,構(gòu)想本發(fā)明可應(yīng)用于任何計算設(shè)備,期望結(jié)合這些設(shè)備使用有目標(biāo)的變量輸入來測試協(xié)議。
例如,在其中通信網(wǎng)絡(luò)/總線14是因特網(wǎng)的網(wǎng)絡(luò)環(huán)境中,服務(wù)器10a、10b等可以是客戶機110a、110b、110c、110d、110e等通過諸如HTTP等多種已知協(xié)議與其通信的服務(wù)器。服務(wù)器10a、10b等也可擔(dān)當(dāng)客戶機110a、110b、110c、110d、110e等,這可以是分布式計算環(huán)境的特征。
通信可以在適當(dāng)時是有線或無線的??蛻魴C設(shè)備110a、110b、110c、110d、110e等可以通過或不通過通信網(wǎng)絡(luò)/總線14通信,并可具有與其相關(guān)聯(lián)的獨立通信。例如,在TV或VCR的情況下,可以有或沒有其控制的網(wǎng)絡(luò)化方面。每一客戶機計算機110a、110b、110c、110d、110e等以及服務(wù)器計算機10a、10b等可以具備各種應(yīng)用程序模塊或?qū)ο?35,并具有對各種類型的存儲元件或?qū)ο蟮倪B接或訪問,在這些存儲元件或?qū)ο笊峡蓛Υ嫖募驍?shù)據(jù)流,或者可向其下載、發(fā)送或移植文件或數(shù)據(jù)流的一個或多個部分。任一計算機10a、10b、110a、110b等可以負責(zé)數(shù)據(jù)庫、存儲器或用于儲存依照本發(fā)明處理的數(shù)據(jù)的其它存儲元件20的維護和更新。由此,本發(fā)明可以用于具有可訪問計算機網(wǎng)絡(luò)/總線14或與其交互的客戶機110a、110b等,以及可與客戶機計算機110a、110b等交互的服務(wù)器計算機10a、10b等,以及其它類似的設(shè)備和數(shù)據(jù)庫20的計算機網(wǎng)絡(luò)環(huán)境中。
圖7及以下討論旨在提供可結(jié)合其來實現(xiàn)本發(fā)明的合適的計算設(shè)備的簡要概括描述。例如,圖7所示的客戶機和服務(wù)器計算機或設(shè)備的任一個可采用這一形式。然而,應(yīng)當(dāng)理解,所有種類的手持式、便攜式和其它計算設(shè)備和計算對象可被構(gòu)想為結(jié)合本發(fā)明使用,即,計算環(huán)境中的任何地方均可生成、處理、接收和/或發(fā)送數(shù)據(jù)。盡管下文描述了通用計算機,然而這只是一個示例,本發(fā)明可以用具有網(wǎng)絡(luò)/總線互操作性和交互的瘦客戶機來實現(xiàn)。由此,本發(fā)明可以在其中蘊含了極少或最小客戶機資源的網(wǎng)絡(luò)化主存的服務(wù)的環(huán)境中實現(xiàn),如其中客戶機設(shè)備僅擔(dān)當(dāng)如放置在設(shè)備中的對象等對網(wǎng)絡(luò)/總線的接口的網(wǎng)絡(luò)化環(huán)境。本質(zhì)上,可儲存數(shù)據(jù)或從其檢索數(shù)據(jù)或向另一計算機發(fā)送數(shù)據(jù)的任何地方都是用于本發(fā)明的對象持久存儲方法的操作的合乎需要的或合適的環(huán)境。
盡管并非所需,但本發(fā)明可通過由設(shè)備或?qū)ο蟮姆?wù)開發(fā)者使用的操作系統(tǒng)來實現(xiàn),和/或包括在依照本發(fā)明操作的應(yīng)用程序或服務(wù)器軟件中。軟件可以在諸如由客戶機工作站、服務(wù)器或其它設(shè)備等一個或多個計算機執(zhí)行的軟件模塊等計算機可執(zhí)行指令的一般上下文中描述。一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。通常,程序模塊的功能可如各實施例中所需的進行組合或分布。此外,本發(fā)明可以用其它計算機系統(tǒng)配置和協(xié)議來實施。其它適用于本發(fā)明的公知的計算系統(tǒng)、環(huán)境和/或配置包括但不限于,個人計算機(PC)、自動售貨機、服務(wù)器計算機、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程消費者電子產(chǎn)品、網(wǎng)絡(luò)PC、電器、燈、環(huán)境控制元件、小型機、大型計算機等等。
由此,圖7示出了其中可實現(xiàn)本發(fā)明的合適的計算系統(tǒng)環(huán)境700的一個示例,盡管可從上述內(nèi)容中清楚,但計算系統(tǒng)環(huán)境700僅為合適的計算環(huán)境的一個示例,并非對本發(fā)明的使用范圍或功能提出任何局限。也不應(yīng)將計算環(huán)境700解釋為對示例性操作環(huán)境700中示出的任一組件或其組合具有任何依賴或需求。
參考圖7,用于實現(xiàn)本發(fā)明的示例性系統(tǒng)包括計算機110形式的通用計算設(shè)備。計算機110的組件包括,但不限于,處理單元120、系統(tǒng)存儲器130以及將包括系統(tǒng)存儲器的各類系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干種總線結(jié)構(gòu)類型的任一種,包括存儲器總線或存儲器控制器、外圍總線以及使用各類總線體系結(jié)構(gòu)的局部總線。作為示例而非局限,這類體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(VESA)局部總線以及外圍部件互連(PCI)總線(也稱為Mezzanine總線)。
計算機110通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是可由計算機110訪問的任一可用介質(zhì),包括易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。作為示例而非局限,計算機可讀介質(zhì)包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于儲存諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任一方法或技術(shù)實現(xiàn)的易失性和非易失性,可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁盒、磁帶、磁盤存儲或其它磁存儲設(shè)備、或可以用來儲存所期望的信息并可由計算機110訪問的任一其它介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其它傳輸機制的已調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任一信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”指以對信號中的信息進行編碼的方式設(shè)置或改變其一個或多個特征的信號。作為示例而非局限,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接連線連接,以及無線介質(zhì),如聲學(xué)、RF、紅外和其它無線介質(zhì)。上述任一的組合也應(yīng)當(dāng)包括在計算機可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲器130包括以易失性和/或非易失性存儲器形式的計算機存儲介質(zhì),如只讀存儲器(ROM)131和隨機存取存儲器(RAM)132。基本輸入/輸出系統(tǒng)133(BIOS)包括如在啟動時幫助在計算機110內(nèi)的元件之間傳輸信息的基本例程,通常儲存在ROM 131中。RAM 132通常包含處理單元120立即可訪問和/或者當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖7示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計算機110也可包括其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。僅作示例,圖7示出了對不可移動、非易失性磁介質(zhì)進行讀寫的硬盤驅(qū)動器141、對可移動、非易失性磁盤152進行讀寫的磁盤驅(qū)動器151以及對可移動、非易失性光盤156,如CD-RW、DVD-RW或其它光介質(zhì)進行讀寫的光盤驅(qū)動器155??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動器141通常通過不可移動存儲器接口,如接口140連接到系統(tǒng)總線121,磁盤驅(qū)動器151和光盤驅(qū)動器155通常通過可移動存儲器接口,如接口150連接到系統(tǒng)總線121。
上文討論并在圖7示出的驅(qū)動器及其關(guān)聯(lián)的計算機存儲介質(zhì)為計算機110提供了計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。例如,在圖7中,示出硬盤驅(qū)動器141儲存操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同,也可以與它們不同。這里對操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147給予不同的標(biāo)號來說明至少它們是不同的副本。用戶可以通過輸入設(shè)備,如鍵盤162和定位設(shè)備161(諸如鼠標(biāo)、跟蹤球或觸摸板)向計算機110輸入命令和信息。其它輸入設(shè)備(未示出)可包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備通常通過耦合至系統(tǒng)總線121的用戶輸入接口160連接至處理單元120,但是也可以通過其它接口和總線結(jié)構(gòu)連接,如并行端口、游戲端口或通用串行總線(USB)。圖形接口182也可連接到系統(tǒng)總線121。一個或多個圖形處理單元(GPU)184可與圖形接口182通信。監(jiān)視器191或其它類型的顯示設(shè)備也通過接口,如視頻接口190連接至系統(tǒng)總線121,視頻接口進而與視頻存儲器186通信。除監(jiān)視器之外,計算機也可包括其它外圍輸出設(shè)備,如揚聲器197和打印機196,它們通過輸出外圍接口195連接。
計算機110可以使用到一個或多個遠程計算機,如遠程計算機180的邏輯連接在網(wǎng)絡(luò)化或分布式環(huán)境中操作。遠程計算機180可以是個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點,并通常包括許多或所有上面相對于計算機110所描述的元件,盡管在圖7中僅示出了存儲器存儲設(shè)備181。圖7描述的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可包括其它的網(wǎng)絡(luò)/總線。這類網(wǎng)絡(luò)環(huán)境常見于家庭、辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時,計算機110通過網(wǎng)絡(luò)接口或適配器170連接至LAN 171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時,計算機110通常包括調(diào)制解調(diào)器172或用于通過WAN 173,如因特網(wǎng)建立通信的其它裝置。調(diào)制解調(diào)器172可以是內(nèi)置或外置的,通過用戶輸入接口160或其它適當(dāng)?shù)臋C制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對于計算機110所描述的程序模塊或其部分可儲存在遠程存儲器存儲設(shè)備中。作為示例,而非局限,圖7示出遠程應(yīng)用程序185駐留在存儲器設(shè)備181上??梢岳斫?,示出的網(wǎng)絡(luò)連接是示例性的,也可以使用在計算機之間建立通信鏈路的其它裝置。
總結(jié)由此,揭示了使用有目標(biāo)的變量輸入來測試協(xié)議的系統(tǒng)和方法。盡管本發(fā)明是結(jié)合各附圖的較佳實施例來描述的,但是應(yīng)當(dāng)理解,可使用其它類似的實施例或可以對所描述的實施例進行修改或添加,以執(zhí)行本發(fā)明的相同功能,而不偏離本發(fā)明。因此,本發(fā)明不應(yīng)限于任何單個實施例,而是應(yīng)當(dāng)依照所附權(quán)利要求書的寬度和范圍來解釋。
權(quán)利要求
1.一種用于測試數(shù)據(jù)格式的方法,包括接收定義所述數(shù)據(jù)格式內(nèi)的多個標(biāo)記的數(shù)據(jù)格式定義,每一所述標(biāo)記具有對應(yīng)的值,所述標(biāo)記的至少一個具有用變量來替換的其對應(yīng)值;以及依照所述數(shù)據(jù)格式定義生成標(biāo)記流,其中,所述流中的至少一個標(biāo)記具有其對應(yīng)的值,且所述至少一個變量的每一個用隨機值來替換。
2.如權(quán)利要求1所述的方法,其特征在于,包括接收定義協(xié)議的數(shù)據(jù)格式定義。
3.如權(quán)利要求1所述的方法,其特征在于,包括接收定義文件格式的數(shù)據(jù)格式定義。
4.如權(quán)利要求1所述的方法,其特征在于,還包括接收以基于語言的格式定義所述數(shù)據(jù)格式的數(shù)據(jù)格式定義。
5.如權(quán)利要求1所述的方法,其特征在于,還包括接收以上下文無關(guān)語法定義所述數(shù)據(jù)格式的數(shù)據(jù)格式定義。
6.如權(quán)利要求5所述的方法,其特征在于,包括接收以巴科斯-諾爾范式上下文無關(guān)語法定義所述數(shù)據(jù)格式的數(shù)據(jù)格式定義。
7.如權(quán)利要求5所述的方法,其特征在于,還包括將所述上下文無關(guān)語法數(shù)據(jù)格式定義變換成可擴展標(biāo)記語言數(shù)據(jù)格式定義。
8.如權(quán)利要求1所述的方法,其特征在于,包括接收依照固定長度數(shù)據(jù)屬性、長度前綴屬性、以及數(shù)據(jù)偏移量屬性中的至少一個來定義所述數(shù)據(jù)格式的數(shù)據(jù)格式定義。
9.如權(quán)利要求1所述的方法,其特征在于,還包括用一隨機值來替換至少一個所述變量,所述隨機值是從一組智能值中選出的,所述智能值包括以下的至少一個空值、中間值、最大值、修正值、預(yù)定值范圍內(nèi)大于修正值的值、以及預(yù)定值范圍內(nèi)小于修正值的值。
10.一種具有用于執(zhí)行如權(quán)利要求1所述的步驟的計算機可執(zhí)行指令的計算機可讀介質(zhì)。
11.一種用于測試數(shù)據(jù)格式的系統(tǒng),包括定義所述數(shù)據(jù)格式內(nèi)的多個標(biāo)記的數(shù)據(jù)格式定義,每一所述標(biāo)記具有對應(yīng)的值,所述標(biāo)記的至少一個具有用變量來替換的其對應(yīng)值;以及接收所述數(shù)據(jù)格式定義并依照所述數(shù)據(jù)格式定義來生成標(biāo)記流的測試數(shù)據(jù)格式生成器,其中,所述流中的至少一個標(biāo)記具有其對應(yīng)的值,且所述至少一個變量中的每一個用隨機值來替換。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述數(shù)據(jù)格式是文件格式。
13.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述數(shù)據(jù)格式是協(xié)議。
14.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述數(shù)據(jù)格式定義以基于語言的格式定義所述數(shù)據(jù)格式。
15.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述數(shù)據(jù)格式定義以上下文無關(guān)語法定義所述數(shù)據(jù)格式。
16.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述上下文無關(guān)語法是巴科斯-諾爾范式。
17.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述上下文無關(guān)語法數(shù)據(jù)格式定義被變換成人類可讀的數(shù)據(jù)格式定義。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述人類可讀數(shù)據(jù)格式定義以可擴展標(biāo)記語言定義所述數(shù)據(jù)格式。
19.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述數(shù)據(jù)格式包括固定長度數(shù)據(jù)屬性、長度前綴屬性以及數(shù)據(jù)偏移量屬性中的至少一個。
20.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述隨機值是從一組智能值中選出的,所述智能值包括以下的至少一個空值、中間值、最大值、修正值、預(yù)定值范圍內(nèi)大于修正值的值、以及預(yù)定值范圍內(nèi)小于修正值的值。
全文摘要
數(shù)據(jù)格式定義中一個或多個所選擇的節(jié)點的值可用變量占位符來替換。在運行時,從數(shù)據(jù)格式定義生成輸入標(biāo)記流,每一變量占位符將用隨機值來替換,由此提供了有目標(biāo)的變量輸入。
文檔編號H04L12/26GK1825852SQ20061000435
公開日2006年8月30日 申請日期2006年1月25日 優(yōu)先權(quán)日2005年2月25日
發(fā)明者B·薩斯菲爾德 申請人:微軟公司