專利名稱:用于產(chǎn)生唯一識(shí)別在用于面向?qū)ο蟪绦虻鹊戎械膶ο箢愋偷淖R(shí)別符的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明總地說是涉及在計(jì)算機(jī)系統(tǒng)或類似的系統(tǒng)中用作處理根據(jù)面向?qū)ο?objeet-oriented)編程技術(shù)等等所設(shè)計(jì)的程序的系統(tǒng)和方法。更具體地說是涉及產(chǎn)生唯一識(shí)別用于那種程序的處理中對象的類型的識(shí)別符的系統(tǒng)和方法。
在使用面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)開發(fā)的計(jì)算機(jī)程序中,典型地開發(fā)研究用于程序處理過程中的“對象”(objects)。典型地說,對象可以包含諸如數(shù)據(jù)組,數(shù)組等,定義步驟和方法的程序代碼等等的元素。在一種面向?qū)ο笥?jì)算機(jī)程序設(shè)計(jì)的語言中,也就是在Java語言規(guī)范中描述的JavaTM程序設(shè)計(jì)語言,程序規(guī)定“類”(classes)和“界面”(interface)。類用來規(guī)定一個(gè)或多個(gè)方法或步驟,它們的每一個(gè)可以由引用調(diào)用給界面。一種界面提供一種機(jī)制,通過該種機(jī)制可以說明每個(gè)方法特別是區(qū)分方法、處理該方法時(shí)所使用的變元的類型,由該方法返回的數(shù)值的數(shù)據(jù)類型,和除去在該方法的處理期間產(chǎn)生的識(shí)別符以外的識(shí)別符。類可以說明在執(zhí)行的具體的一組界面,也就是它們的方法的界面包含編輯程序的代碼。另外,類能夠表示在執(zhí)行可能在另一處說明的具體的界面。不同的類可以表示它們執(zhí)行相同的界面,其中每一個(gè)具有在界面中說明的所有方法的處理中使用的程序代碼。在每個(gè)類中提供的程序代碼可能不同于在另外的類中提供的程序代碼,但是對應(yīng)方法的程序代碼將提供相同的結(jié)果。
當(dāng)Java程序需要由一個(gè)類維持的方法提供的處理服務(wù)時(shí),該類的示例能夠裝入它的執(zhí)行環(huán)境中,或者它能夠調(diào)用在Wollarth等人的專利申請中所描述的方法的遠(yuǎn)程執(zhí)。在兩種情況下,將在執(zhí)行環(huán)境中裝入對象,任何一個(gè)對象包含它自己的類示例,或者在支持遠(yuǎn)程界面的類示例的情況,包含能夠遠(yuǎn)程調(diào)用一種方法的剩余部分類示例的情形。這些對象可能已經(jīng)(和在存根等級(jí)的情況下很可能已經(jīng))分別地和獨(dú)立于將使用它們的程序而產(chǎn)生出來。當(dāng)該程序裝一個(gè)對象時(shí),它(該程序)接收信息流,該信息流將需要處理重建對象和包括例如界面的各種部件,該界面象程序代碼那樣由類說明,程序代碼包含執(zhí)行類的各自的方法。典型地說,類具有諸如對象名稱的識(shí)別符,但是這些識(shí)別符是由程序開發(fā)商所具體賦予的,因此就不是唯一的。因此,有相同名稱的類可能有非常不同的結(jié)構(gòu),因此需要類結(jié)構(gòu)的不同的分類法。另外,需要變化重建類所需的方法時(shí),具有具體名稱的過時(shí)的類結(jié)構(gòu)可能變化了。因此,程序不必要依賴于程序開發(fā)商所提供的名稱的識(shí)別符以確定那種方法用于類的重建。
本發(fā)明提供了一種產(chǎn)生唯一識(shí)別諸如用于面向?qū)ο蟪绦虻鹊鹊奶幚淼念惖膶ο箢愋偷摹爸讣y”識(shí)別符的改進(jìn)的系統(tǒng)和方法。本發(fā)明特別提供了一種使用各自的類的實(shí)際結(jié)構(gòu)和內(nèi)容產(chǎn)生指紋識(shí)別符的系統(tǒng)和方法,以致具有不同的結(jié)構(gòu)和內(nèi)容的類具有不同的指紋識(shí)別符。
總之,本發(fā)明提供了一種在面向?qū)ο蟪绦蛟O(shè)計(jì)方案中產(chǎn)生對象的指紋值的新的指紋產(chǎn)生系統(tǒng),方法和計(jì)算機(jī)程序產(chǎn)品。該對象包括數(shù)字信息流和指紋產(chǎn)生系統(tǒng)由數(shù)字信息流產(chǎn)生固定長度的指紋值。根據(jù)選擇的產(chǎn)生包含指紋值的散列值的散列值產(chǎn)生算法處理包含對象的數(shù)字信息流。從散列值產(chǎn)生算法的等級(jí)選擇的散列值產(chǎn)生算法的特征在于i響應(yīng)所說的輸入數(shù)字信息系統(tǒng),將產(chǎn)生具有預(yù)定的數(shù)字比特?cái)?shù)目的數(shù)字散列值作為輸出;ii該數(shù)字散列值將是數(shù)字信息流的函數(shù),以致(a)給出相同的兩個(gè)輸入流,將產(chǎn)生相同的數(shù)字散列值;但是(b)給不相同的兩個(gè)輸入流,產(chǎn)生相同的數(shù)字散列值是極不可能的;iii當(dāng)作為“基準(zhǔn)對象”的對象包括作為基準(zhǔn)對象的另一個(gè)對象的基準(zhǔn)時(shí),基準(zhǔn)對象的輸入數(shù)字信息僅需要包括為基準(zhǔn)對象先前產(chǎn)生的指紋,而不是基準(zhǔn)對象本身的數(shù)字信息流,根據(jù)選擇的散列值產(chǎn)生算法產(chǎn)生的數(shù)字散列值包含由指紋產(chǎn)生系統(tǒng)產(chǎn)生的指紋。
本發(fā)明結(jié)合所附權(quán)利要求的特點(diǎn)已闡明,結(jié)合說明對附圖所作的說明可以使我們更好地理解本發(fā)明的以上和進(jìn)一步的優(yōu)點(diǎn)。
圖1是包括根據(jù)本發(fā)明的構(gòu)成的對象類型識(shí)別產(chǎn)生系統(tǒng)的計(jì)算機(jī)裝置的功能方框圖;圖2是在圖1中所描述的方案中有用的對象檢驗(yàn)系統(tǒng)的功能方框圖;圖3是有助于理解圖2所示的對象檢驗(yàn)系統(tǒng)的操作的流程圖。
圖1是包括根據(jù)本發(fā)明的構(gòu)成的對象類型識(shí)別產(chǎn)生系統(tǒng)的計(jì)算機(jī)方案10的功能方框圖。參照圖1,計(jì)算機(jī)網(wǎng)絡(luò)10包括由通信鏈路14連接的由12(1)至12(N)的多個(gè)計(jì)算機(jī)(一般由參標(biāo)號(hào)12(n)標(biāo)識(shí))。作為慣例,計(jì)算機(jī)12(n)中的至少一些是作為PC機(jī)(個(gè)人計(jì)算機(jī))或計(jì)算機(jī)工作站的形式,它們中的每一個(gè)包括系統(tǒng)單元,視頻顯示單元和作為鍵盤和鼠標(biāo)的操作輸入單元。計(jì)算機(jī)12(n)是通常的存儲(chǔ)程序計(jì)算機(jī)結(jié)構(gòu)。系統(tǒng)單元一般包括處理,存儲(chǔ)和大規(guī)模存儲(chǔ)裝置,諸如(信息)盤和/或磁帶存儲(chǔ)元件和其他的元件(沒有分別地示出),這包括將計(jì)算機(jī)與通信鏈路接口的網(wǎng)絡(luò)接口裝置18(n)。視頻顯示單元允許計(jì)算機(jī)給用戶顯示處理的數(shù)據(jù)和處理的狀態(tài),操作員輸入裝置能夠使用戶通過計(jì)算機(jī)輸入數(shù)據(jù)和控制處理。計(jì)算機(jī)12(n)在通信鏈路14間通過他們各自的網(wǎng)絡(luò)接口裝置傳送消息形式的信息。
在一個(gè)實(shí)施例中,網(wǎng)絡(luò)10能夠組成“客戶/服務(wù)器”結(jié)構(gòu),在該結(jié)構(gòu)中不同的一些計(jì)算機(jī)作為客戶和服務(wù)器工作,一方面,服務(wù)器計(jì)算機(jī)作為文件服務(wù)器能夠包括大容量的大規(guī)模存儲(chǔ)裝置,該存儲(chǔ)裝置能存儲(chǔ)程序和數(shù)據(jù)的復(fù)制品,用戶計(jì)算機(jī)可以在通信鏈路14上使用他們的處理操作檢索所說的程序和數(shù)據(jù)。用戶計(jì)算機(jī)隨時(shí)能在服務(wù)器計(jì)算機(jī)上存儲(chǔ)數(shù)據(jù),隨后由它(也就是存儲(chǔ)該數(shù)據(jù)的客戶計(jì)算機(jī))或其他的客戶使用他們的處理操作檢索存儲(chǔ)的數(shù)據(jù)。另外,一個(gè)或多個(gè)服務(wù)器計(jì)算機(jī),作為“計(jì)算服務(wù)器”可以響應(yīng)來自客戶的遠(yuǎn)程請求執(zhí)行某些處理操作,和將處理的結(jié)果給請求的客戶以便由它(也就是請求的客戶計(jì)算機(jī))在其隨后的處理中使用之,不論發(fā)生什么情況,服務(wù)器計(jì)算機(jī)可以一般地類似于包含系統(tǒng)單元。視頻顯示單元和操作員輸入裝置的客戶計(jì)算機(jī)和類似客戶計(jì)算機(jī)的方式可以由操作員用作數(shù)據(jù)處理操作,的確,在這種安排方案中,客戶/服務(wù)器的關(guān)系可以認(rèn)為是親戚,由于操作用作服務(wù)器的計(jì)算機(jī)為其他的計(jì)算機(jī)執(zhí)行貯存和/或處理操作,也可以操作用作客戶計(jì)算機(jī)請求其他的計(jì)算機(jī)貯存和處理操作,其他的計(jì)算機(jī)包括有作為服務(wù)器工作的計(jì)算機(jī)(部分)。另外,一些服務(wù)器計(jì)算機(jī)可以只包括用以接收和處理檢索,貯存或來自客戶計(jì)算機(jī)的遠(yuǎn)程處理請求和產(chǎn)生對那里的響應(yīng)的處理,存儲(chǔ),大規(guī)模貯存網(wǎng)絡(luò)接口元件。
象常規(guī)的那樣,在網(wǎng)絡(luò)10中內(nèi)部連接客戶計(jì)算機(jī)12(n)的通信鏈路14包括導(dǎo)線,光纖或傳送在計(jì)算機(jī)12(n)間的表示信息的信號(hào)的介質(zhì)。另外,由數(shù)字14標(biāo)識(shí)的通信鏈路包含諸如公共電話系統(tǒng)和/或Internet(互連網(wǎng)絡(luò))的公共網(wǎng)絡(luò),在互連網(wǎng)絡(luò)上一個(gè)人使用計(jì)算機(jī)12(n)可以從距客戶計(jì)算機(jī)12(n)一些距離處的服務(wù)器計(jì)算機(jī)16存取包括程序和數(shù)據(jù)的信息。如上所敘,每個(gè)計(jì)算機(jī)12(n)典型地具有網(wǎng)絡(luò)接口裝置(由各個(gè)箭頭18(n)表示),該接口裝置適當(dāng)?shù)貙⒎謩e的計(jì)算機(jī)連接到通信鏈路14上。
本發(fā)明提供了一種易于產(chǎn)生在此稱作指紋的識(shí)別符的系統(tǒng)以便唯一地識(shí)別用于面向?qū)ο蟪绦虻鹊鹊奶幚碇械膶ο蟮念愋汀1景l(fā)明將結(jié)合如在Java語言規(guī)范中描述的JavaTM程序設(shè)計(jì)語言中提供的程序進(jìn)行描述,該程序結(jié)合由Java虛(擬)機(jī)器所提供的執(zhí)行環(huán)境被處理。該Java實(shí)際機(jī)器依次在Java虛(擬)機(jī)器的規(guī)范中所規(guī)范。用Java語言規(guī)范中描述的基本知識(shí)的方法,在Java程序設(shè)計(jì)語言中的程序規(guī)定了“類”(classes)和“界面”(interfaces)。類用以規(guī)定一個(gè)或多個(gè)方法或步驟,他們中的每一個(gè)可以由基準(zhǔn)調(diào)用給一個(gè)界面。一個(gè)類可以相關(guān)和延伸一個(gè)“超類”(super-class),和考慮到將所有的界面和超類的方法相結(jié)合,而且還包括另外的界面和/或方法。一個(gè)類還可以有一個(gè)或多個(gè)子類(sub-class)(和因此將組成它的每一個(gè)類的超類),和每個(gè)子類結(jié)合和可能延伸他們的分別的超類。一個(gè)類還可對包括其他的界面和類的其他對象作參考,當(dāng)由類執(zhí)行的方法被處理時(shí),該其他的對象可以被引用。
一個(gè)界面提供用其可以說明一組方法的機(jī)理。在那個(gè)連接中,一個(gè)界面識(shí)別由該界面,例如方法的名稱所說明的每種方法,識(shí)別為該方法提供的變元的數(shù)據(jù)類型,由該方法返回的返回值的數(shù)據(jù)類型和在這種方法的處理期間例外能放棄的識(shí)別符。類本身能說明執(zhí)行的具體的一組界面,或者它能表明它執(zhí)行在別處可能說明的具體的界面,而且在任何一種連接中將包括在界面中已經(jīng)說明的所有的方法的處理中使用的程序代碼。在每個(gè)類中提供的程序代碼可以和其他類中提供的代碼不同,但是對應(yīng)方法的程序代碼將提供相同的結(jié)果。執(zhí)行該方法或使用界面可以調(diào)用的方法能獨(dú)立說明具體類的界面,關(guān)于這一點(diǎn),調(diào)用該方法的一個(gè)類和實(shí)際執(zhí)行該方法的一個(gè)類將不需要分享公共的超類。因此,一個(gè)界面提供一種機(jī)制,通過該機(jī)制不需要提供將用于任何方法的處理中的步驟的指示就能說明一組方法。
如上所示,本發(fā)明提供了一種易于產(chǎn)生唯一識(shí)別能用于面向?qū)ο蟪绦虻鹊鹊奶幚碇械牟煌膶ο蟮闹讣y的系統(tǒng)。在使用Java編程語言產(chǎn)生的程序中各種不同種類的程序元素可以包括對于現(xiàn)時(shí)發(fā)明有特別意義的對象,為了使用已用具體例子說明的類能包含對象。本發(fā)明提供為每個(gè)類產(chǎn)生唯一識(shí)別符或指紋的方案,每個(gè)等級(jí)可以為例如執(zhí)行的環(huán)境所使用,在該環(huán)境中Java程序被處理,當(dāng)該對象裝入該執(zhí)行環(huán)境時(shí)識(shí)別該對象和易于該對象的重建。類的類型的指紋可能有多種目的用途,例如在執(zhí)行環(huán)境中通過程序的執(zhí)行指紋可以用以在處理中使用的正確的類,例如從相同的計(jì)算機(jī)系統(tǒng)或者連接到網(wǎng)絡(luò)10的另一個(gè)計(jì)算機(jī)系統(tǒng)檢索的任何一種(二種)和裝入局部處理的執(zhí)行環(huán)境,或者用于在wollrath等人的專利申請中所敘及的相同的計(jì)算機(jī)系統(tǒng)或者為一種連接到網(wǎng)絡(luò)10的計(jì)算機(jī)系統(tǒng)中調(diào)用由一個(gè)類維持的方法的遠(yuǎn)程處理。
另外,指紋可能用以幫助將類示例裝入執(zhí)行環(huán)境中。典型地,當(dāng)作為等級(jí)示例的對象裝入執(zhí)行環(huán)境中時(shí),作為信息流的對象被接收,以及執(zhí)行環(huán)境將需要將信息流的各種部分與類示例的各種部件相聯(lián)系,因此從信息流重建類示例。執(zhí)行環(huán)境將利用諸如能夠使它(也就是執(zhí)行環(huán)境)接收信息流和重建類示例的編程代碼的資源。由于被檢索的各種對象的結(jié)構(gòu)很可能是唯一的,執(zhí)行環(huán)境將需要確保它(執(zhí)行環(huán)境)具有適合的編程代碼以便當(dāng)接收信息流時(shí)能夠使對象重建。如下面所述,根據(jù)本發(fā)明的系統(tǒng)和方法,根據(jù)實(shí)際的對象的結(jié)構(gòu)和內(nèi)容產(chǎn)生指紋,以致執(zhí)行環(huán)境將能使用對象的指紋將裝入的對象與能用以重建該對象的編程代碼相聯(lián)系。由于指紋是基于對象的結(jié)構(gòu),具有不同的結(jié)構(gòu)的兩個(gè)對象將很可能有不同的指紋,即使其他的識(shí)別符與該對象有關(guān),例如由程序開發(fā)商提供的對象的名稱是相同的。
由于一個(gè)類和以后它的示例說明可以引用其他的“被引用”等級(jí),從而使之出現(xiàn)進(jìn)一步的復(fù)雜化,該基準(zhǔn)等級(jí)包含涉及的等級(jí)能用于它的處理中的問題。在這種情況下,等級(jí)的指紋將不僅需要反映該等級(jí)它本身的各種成分,還要反映由該類引用的被引用類。
用這個(gè)基礎(chǔ)知識(shí)和再次參照圖1,本發(fā)明提供了一種指紋產(chǎn)生器20,以便使用它與一個(gè)或多個(gè)計(jì)算機(jī)12(n)連接,計(jì)算機(jī)12(n)保持和使用各種對象22(m)以為每個(gè)對象產(chǎn)生相應(yīng)的指紋24(m)。該指紋產(chǎn)生器20用下面結(jié)合圖2和圖3所述的方式處理每個(gè)對象22(m)以產(chǎn)生指紋24(m)。檢索的對象的指紋24(m)表示用作識(shí)別對象的類型的指紋的值,它也可以用來識(shí)別由保持對象22(m)的計(jì)算機(jī)系統(tǒng)12(N)處理的程序所使用對象22(m)的類型,或者是由另外的計(jì)算機(jī)系統(tǒng)12(1)至12(N-1)所處理的程序所需要的類型。如果對象22(m)所是的類型是另一個(gè)計(jì)算機(jī)系統(tǒng)12(1)至12(N-1)處理的程序所需要的,計(jì)算機(jī)系統(tǒng)12(N)或者能夠在通信鏈路14上下裝對象22(m)給其他的計(jì)算機(jī)系統(tǒng)12(1)至12(N-1),以便在它的(即其他的計(jì)算機(jī)系統(tǒng)的)處理中使用,或者能夠如前面所述的Wollrath等人的專利申請中所述的遠(yuǎn)程方法調(diào)用操作中執(zhí)行對象本身的處理。在任何情況下,指紋24(m)將適用對對象的類型作唯一的識(shí)別,有效地確保對象所提供的方法,數(shù)據(jù)類型和返回?cái)?shù)據(jù)類型是程序所需要的。裝入該對象的執(zhí)行環(huán)境能夠從信息流重建該對象,該信息流是當(dāng)對象接收到時(shí)接收的。
如上所述,客戶計(jì)算機(jī)12(n)包括指紋產(chǎn)生器20,將結(jié)合圖2描述該產(chǎn)生器20,指紋產(chǎn)生器用以產(chǎn)生指紋24(m)。參照圖2,檢驗(yàn)器20包括對象指紋值產(chǎn)生器31,對象指紋表32和對象存儲(chǔ)器34。對象存儲(chǔ)器34一道接收與對象指紋23(m)對象22(m)的二進(jìn)制編碼。對象指紋值產(chǎn)生器31處理對象22(m)和基準(zhǔn)對象(在圖中未示出)的內(nèi)容作為數(shù)字?jǐn)?shù)據(jù),以產(chǎn)生對象指紋值?;鶞?zhǔn)對象是在存儲(chǔ)器34中的對象中的基準(zhǔn)對象,也就是相對其他等級(jí)的基準(zhǔn)是在與存儲(chǔ)器34中的對象有關(guān)等級(jí)中的基準(zhǔn)。在一般的對象指紋值中,如果對象指紋值產(chǎn)生器31已經(jīng)預(yù)先地產(chǎn)生基準(zhǔn)對象的對象指紋值和將其存儲(chǔ)在對象指紋表32中,它(對象指紋產(chǎn)生器31)能夠使用在對象存儲(chǔ)器34中的為對象產(chǎn)生的對象指紋中的預(yù)先為被引用對象產(chǎn)生的對象指紋信息,否則,如果另一個(gè)對象是由在存儲(chǔ)器34中的對象所引用的,為了為在對象存儲(chǔ)器34中通常的對象產(chǎn)生指紋產(chǎn)生器20將為其他的目標(biāo)產(chǎn)生值。
如上所述,對象指紋值產(chǎn)生器31處理在對象存儲(chǔ)器34中的對象22(m)的復(fù)制品以產(chǎn)生提供給比較器33的對象指紋值。在一個(gè)具體的實(shí)施例中,對象指紋值產(chǎn)生器31使用通常的安全的散列算法處理對象22(m)。為目標(biāo)指紋值產(chǎn)生器31有用的安全散列算法具有如下特征1)當(dāng)執(zhí)行該算法時(shí),作為輸入從數(shù)字信息流接收,一個(gè)固定大小的數(shù)字值(也就是預(yù)先確定固定的數(shù)據(jù)位或字節(jié)數(shù)目)被產(chǎn)生作為輸出;2)數(shù)字輸出值是輸入信息的函數(shù),以致a)給出兩個(gè)相同的輸出流,相同的數(shù)字輸出值將被產(chǎn)生;但是b)給出兩個(gè)不相同的輸出流,極不可能產(chǎn)生相同的數(shù)字輸出值;3)極不可能從數(shù)字輸出值再生輸入流;和4)當(dāng)一個(gè)對象(作為“基準(zhǔn)對象”)包括對另一個(gè)對象的基準(zhǔn),基準(zhǔn)目標(biāo)的輸入流僅需要包括已為基準(zhǔn)對象預(yù)先產(chǎn)生的指紋,而不需要基準(zhǔn)對象本身。這些特征(特別的特征25(a)和25(b))將保證a)如果為兩個(gè)對象由指紋產(chǎn)生器20產(chǎn)生的指紋具有相同的值,他們將是相同的類型,和提供需要相同輸入數(shù)據(jù)類型和提供相同數(shù)據(jù)類型的相同的結(jié)果的相同的方法組,和能使用相同的重建編程代碼重建之;但是b)如果由指紋產(chǎn)生器20為兩個(gè)對象22(m)產(chǎn)生的指紋具有不同的值,他們將是不同的類型,和因此不能提供相同的方法組,或者能需要不同的輸入數(shù)據(jù)類型,或者能用不同的結(jié)果數(shù)據(jù)類型所導(dǎo)致,和在任何情況下可能具有不同的結(jié)構(gòu)。在這個(gè)情形中程序能依靠對象的指紋去唯一地識(shí)別該對象。諸如來自科學(xué)和技術(shù)國家協(xié)會(huì)的可用的安全散列算法,來自RSA公司的可用的RC4和RC5安全散列算法和類似的是說明性的安全散列算法,他們具有這些特征。
現(xiàn)在結(jié)合圖3所示的流程圖描述操作指紋產(chǎn)生器產(chǎn)生指紋。在進(jìn)一步進(jìn)行以前,描敘由指紋產(chǎn)生器20處理對象22(m)的結(jié)構(gòu)以產(chǎn)生對象指紋值是有益的。在一個(gè)實(shí)施例中,對象20是例如用由于Java語言規(guī)范描述的Java編程語言提供的示例類的形式。對象22(m)包括多個(gè)部分,其中包括被引用對象識(shí)別符部分40(m),界面部分41(m),區(qū)段(field)部分42(m)和方法與步驟部分43(m)。如果對象22(m)引用其他的對象,被引用對象識(shí)別符部分40(m)包含識(shí)別其他的對象的識(shí)別符,和提供指示其他的對象如何存取的指示符。如果該對象不引用其他的對象,基準(zhǔn)目標(biāo)識(shí)別符部分40(m)可以是空的。
方法和步驟部分43(m)提供能通過對對象的調(diào)用被調(diào)用的具體的方法、步驟、程序等等。在部分43(m)中提供的方法能夠引用在基準(zhǔn)對象識(shí)別符部分40(m)中識(shí)別的其他的對象。界面部分41(m)有效地包括對象的界面的目錄,它例如包括在部分43(m)中具體方法識(shí)別的名稱和調(diào)用具體方法中提供的參數(shù)。由客戶計(jì)算機(jī)12(n)處理的一個(gè)程序能使用在部分41(m)中的界面目錄可以識(shí)別能夠通過對對象22(m)的訪問調(diào)用的具體的方法。區(qū)段部分42(m)提供例如用于在部分43(m)中定義方法的變量和其他的元素的目錄,和此外能指示是否該變量例如是具體的對象22(m)所專用或者它的限定的部分等等。
用這個(gè)基本知識(shí),將結(jié)合圖3的流程圖敘述由指紋產(chǎn)生器20執(zhí)行的操作。參照圖3,對象指紋值產(chǎn)生器最初地確定是否對象指紋表32已經(jīng)有了識(shí)別的對象的對象指紋值(步驟100)。如果在步驟100中對象指紋值產(chǎn)生器31作出了肯定的確定,它將在它的隨后的處理中使用該對象指紋值(步驟101)。
另一方面,如果在步驟100中對象指紋值產(chǎn)生器31作出了否定的決定,對象指紋表32還沒有識(shí)別對象的對象指紋值,在這種情況下它將進(jìn)行到步驟102以便開始產(chǎn)生該對象的對象指紋的步驟。對象指紋值產(chǎn)生器31在一系列時(shí)序中開始產(chǎn)生對象指紋的步驟。在每個(gè)時(shí)序期間使用安全散列算法去重復(fù)處理在40(m)至43(m)4個(gè)部分中包含的信息以便為對象22(m)產(chǎn)生對象指紋值。
最初在那個(gè)操作中,如果被引用對象識(shí)別符部分40(m)包含一個(gè)或多個(gè)被引用對象識(shí)別符,對象指紋值產(chǎn)生器31將一個(gè)或多個(gè)重復(fù)地處理在被引用對象識(shí)別部分40(m)中識(shí)別的被引用對象的指紋,以及在每個(gè)重復(fù)處理中處理一個(gè)被引用對象的指紋。在每個(gè)重復(fù)中如果在對象指紋表32中存儲(chǔ)了被引用對象的預(yù)先產(chǎn)生的對象指紋值。該對象指紋值產(chǎn)生器31將使用對象指紋表32中的指紋。另一方面,在對象指紋表32中沒有儲(chǔ)存被引用對象的預(yù)先產(chǎn)生的對象指紋值,該對象指紋值產(chǎn)生器31將試圖為被引用對象產(chǎn)生對象指紋值,存儲(chǔ)該對象指紋值在對象指紋表32中,而且在為對象22(m)產(chǎn)生對象指紋值中使用它(被引用對象的對象指紋值)。
更具體地說,對象指紋值產(chǎn)生器31將確定是否被引用對象識(shí)別符部分40(m)包含任何被引用對象識(shí)別符(步驟102),和如果是的話,將從被引用對象識(shí)別部分40(m)檢索被引用對象識(shí)別符的目錄(步驟103)。對象指紋值產(chǎn)生器31根據(jù)預(yù)定的存儲(chǔ)方案的存儲(chǔ)順序安放該目錄。對象指紋值產(chǎn)生器31在使用他們之前在產(chǎn)生對象指紋中存儲(chǔ)被引用對象識(shí)別符以確保他們(被基用對象識(shí)別符)將以相同的順序,以確保相同的指紋值被產(chǎn)生而不管指紋產(chǎn)生的時(shí)間點(diǎn)。
在從部分40(m)存儲(chǔ)被引用對象識(shí)別符以后,對象指紋值產(chǎn)生器31將在存儲(chǔ)目錄中選擇“下一個(gè)”被引用對象識(shí)別符(步驟105),將執(zhí)行在圖3中描述的與由選擇的被引用對象識(shí)別的被引用對象有關(guān)連的操作,以便為被引用對象提供或產(chǎn)生對象指紋值。在該第一個(gè)重復(fù)中,對象指紋值產(chǎn)生器31將在存儲(chǔ)的目錄中選擇第一個(gè)被引用對象識(shí)別符,和在隨后的重復(fù)中(若有的話)將在該存儲(chǔ)的目錄中選擇順序排列的被引用對象指紋。如果該對象指紋表32沒有由選擇的被引用對象識(shí)別符識(shí)別的被引用對象的對象指紋值,和如果計(jì)算機(jī)12(n)沒有該被引用對象的復(fù)制品的話,它(計(jì)算機(jī))從另一個(gè)保持它(被引用對象)的計(jì)算機(jī)檢索該被引用對象。另一方面,如果該計(jì)算機(jī)沒有或不能檢索該被引用對象,該對象指紋值產(chǎn)生器31可能退出。
在產(chǎn)生或檢索選擇的被引用對象的對象指紋值后,對象指紋產(chǎn)生器31處理與安全散列算法關(guān)聯(lián)的對象指紋值以產(chǎn)生中間的對象22(m)的指紋值(步驟106)。此后,對象指紋值產(chǎn)生器31確定在存儲(chǔ)的目錄中有任何另外的被引用對象識(shí)別符(步驟107)。如果對象指紋值產(chǎn)生器31在步驟107中作出肯定的確定,該對象指紋值產(chǎn)生器31返回到步驟104,以便選擇下一個(gè)被引用對象識(shí)別符和因此處理該識(shí)別的對象指紋值。
返回到步驟102,如果被引用對象識(shí)別符部分40(m)是空的,對象指紋值產(chǎn)生器將在那個(gè)步驟作出否定的確定。在這樣的情況下,或者如果在步驟107中對象指紋值產(chǎn)生器31作出否定的確定,它將按步驟的時(shí)序處理可能列入界面部分41(m)中的界面名稱。最初,該對象指紋值產(chǎn)生器31將確定該界面名稱部分40(m)是否包含任何界面名稱(步驟110),和如果是的話,將從界面名稱部分40(m)檢索界面名稱目錄(步驟111)。該對象指紋產(chǎn)生器31將根據(jù)預(yù)定的存儲(chǔ)方案的存儲(chǔ)順序裝入該目錄(步驟112)。由對象指紋值產(chǎn)生器31在使用他們以前在產(chǎn)生對象指紋值中將界面名稱儲(chǔ)存以確保他們(界面名稱)以確保相同的指紋值將產(chǎn)生而不考慮指紋24(m)產(chǎn)生的時(shí)間點(diǎn)的情況下的相同的順序。
在從部分41(m)存儲(chǔ)界面名稱后,對象指紋值產(chǎn)生器31將在儲(chǔ)存的目錄中選擇“下一個(gè)”界面名稱(步驟113)在第一個(gè)重復(fù)中,對象指紋值產(chǎn)生器31將在儲(chǔ)存的目錄中選擇第一個(gè)界面名稱,和隨后的重復(fù)中(如果有的話),它將在儲(chǔ)存的目錄中順序地列出界面名稱。對象指紋產(chǎn)生器31處理與安全散列算法有關(guān)聯(lián)的界面稱名稱以產(chǎn)生對象22(m)的更新的中間指紋值(步驟114)。此后,對象指紋值產(chǎn)生器31確定是否有另外的界面名稱在儲(chǔ)存的界面名稱目錄中(步驟115)。如果對象指紋值產(chǎn)生器在步驟115作出肯定的確定,該對象指紋值產(chǎn)生器31返回到步驟113、以選擇下一個(gè)界面名稱和在相關(guān)的安全散列算法中使用它。
返回到步驟110,如果界面名稱部分41(m)是空的,對象指紋值產(chǎn)生器將在該步驟作出否定的確定。在這種情況下,或者如果對象指紋值產(chǎn)生器31在步驟115中作出否定的確定,它將在系列步驟的時(shí)序中處理在區(qū)段部分42(m)中所列的變量的名稱。最初,對象指紋值產(chǎn)生器31將確定區(qū)段部分42(m)是否包含任何變量的名稱(步驟120)和如果是的話,將從區(qū)段部分42(m)檢索變量名稱的目錄(步驟121)。對象指紋值產(chǎn)生器31然后根據(jù)預(yù)定的存儲(chǔ)方案以存儲(chǔ)的順序排列該目錄(步驟122)。對象指紋產(chǎn)生器31在使用他們以前在產(chǎn)生對象指紋中存儲(chǔ)變量的名稱,以確保他們(變量名稱)以確保在不考慮指紋24(m)產(chǎn)生的時(shí)間點(diǎn)產(chǎn)生相同的指紋值的相同的順序。
在存儲(chǔ)來自區(qū)段42(m)的可變名稱以后,對象指紋值產(chǎn)生器31將在存儲(chǔ)目錄中選擇“下一個(gè)”變量的名稱(步驟123)。在第一個(gè)重復(fù)中,對象指紋值產(chǎn)生器31在儲(chǔ)存的目錄中選擇第一個(gè)變量名稱,和在隨后的重復(fù)中(如果有的話),它將在存儲(chǔ)的對象中選擇順序排列的變量名稱。對象指紋值產(chǎn)生器31處理與安全散列算法關(guān)聯(lián)的變量名稱以產(chǎn)生更新的對象22(m)的中間指紋值(步驟124)。此后,對象指紋值產(chǎn)生器31確定是否有任何另外的變量名稱在該存儲(chǔ)區(qū)段目錄(步驟125)。如果對象指紋產(chǎn)生器在步驟125中作出肯定的確定,對象指紋產(chǎn)生器31返回到步驟123以便選擇下一個(gè)變量名稱和處理與安全散列算法關(guān)聯(lián)的它。
返回到步驟120,如果區(qū)段部分42(m)是空的,對象指紋值產(chǎn)生器將在步驟125中作出否定的確定。在這種情況下,或者對象指紋值產(chǎn)生器31在步驟125中作出否定的確定,它將在系列步驟的時(shí)序中處理在方法和步驟部分43(m)中可列出的方法。最初,對象指紋值產(chǎn)生器31將確定方法和步驟部分43(m)是否包含任何方法(步驟130),和如果是的話,將從部分43(m)檢索方法的目錄(步驟131)。該對象指紋值產(chǎn)生器31將以根據(jù)預(yù)定的存儲(chǔ)方案的存儲(chǔ)順序安排該目錄,使用各自方法的名稱分類(步驟132),該方法由對象指紋值產(chǎn)生器31在使用他們前在產(chǎn)生對象指紋值中分類,以確保該方法以如果方法的順序變化,不考慮指紋24(m)產(chǎn)生的時(shí)間點(diǎn),產(chǎn)生相同的指紋值的相同的順序。
在分類來自部分43(m)的方法以后,對象指紋值產(chǎn)生器31將在存儲(chǔ)的目錄中選擇“下一個(gè)”方法(步驟133)。在第一個(gè)重復(fù)中,對象指紋值產(chǎn)生器31將在分類目錄中選擇第一個(gè)方法,和在隨后的重復(fù)中(如果有的話),它將在分類目錄中選擇順序排列的方法。對象指紋值產(chǎn)生器31處理選擇的與安全散列算法關(guān)聯(lián)的方法,以產(chǎn)生更新的對象22(m)的中間指紋值(步驟134)。此后,對象指紋值產(chǎn)生器31確定在分類目錄中是否有另外的方法(步驟135)。如果對象指紋產(chǎn)生器31在步驟135中作出肯定的確定,對象指紋值產(chǎn)生器31返回到步驟123,以選擇下一個(gè)方法和處理與安全散列算法關(guān)聯(lián)的它。
返回到步驟130,如果方法和步驟部分42(m)是空的,對象指紋值產(chǎn)生器31將在該步驟作出否定的確定。(這個(gè)如果能出現(xiàn),例如,對象說明了一個(gè)界面而不是定義的等級(jí)),在這種情況下,或者如果對象指紋值產(chǎn)生器31在步驟135中作出否定的確定,它將處理與安全散列算法關(guān)聯(lián)的整個(gè)的對象22(m),以致更新的中間指紋值將對應(yīng)對象22(m)的對象指紋值。在這種情況下,對象指紋值產(chǎn)生器31將存儲(chǔ)對象22(m)的對象指紋值在對象指紋表32中(步驟140)。
本發(fā)明提供了一些優(yōu)點(diǎn)。特別是,本發(fā)明提供一種方案,它能夠使客戶計(jì)算機(jī)120以高度的概率確定諸如對象22(m)的對象是特殊的類型和用以在它的處理中重建。本發(fā)明的完成是通過為對象22(m)提供指紋值,該指紋值可能為程序使用,以提供識(shí)別在它的處理中能需要的對象的信息種類。這將能避免使用其他識(shí)別符的必要性,例如對象名稱,它一般不需要是唯一的,在任何情況下,即使在程序不能使用的方式下對象名稱因此能變化,也能使之保持相同。
我們很清楚知道對結(jié)合圖1至圖3上面所述的方案可以作出一些改進(jìn)。例如,雖然該方案結(jié)合了多個(gè)由網(wǎng)絡(luò)內(nèi)部連接的多個(gè)計(jì)算機(jī)系統(tǒng)12(n)我們將清楚該方案能用以連接計(jì)算機(jī)系統(tǒng)以產(chǎn)生對象的指紋,該對象可以由程序在例如計(jì)算機(jī)可讀介質(zhì)(如磁盤或CD-ROM)上分布以便處理單個(gè)或者排成一排的計(jì)算機(jī)。另外,雖然該方案已經(jīng)結(jié)合具有以上結(jié)合圖2描述的40(m)至43(m)四部分的對象,我們清楚它也能用來聯(lián)系具有不同數(shù)目的部分的對象,以及的確不同類型的部分,特別的意義在于產(chǎn)生指紋,以致完全唯一識(shí)別對象的類型,也就是方法,輸入變量的數(shù)據(jù)類型和輸出變量的數(shù)據(jù)類型。
我們知道根據(jù)本發(fā)明的系統(tǒng)可以由整個(gè)的或部分特殊用途的硬件或通用目的的計(jì)算機(jī)系統(tǒng)或者它們的任何結(jié)合所構(gòu)成,它們的任何部分可由適當(dāng)?shù)某绦蚩刂?。任何程序可以完整或部分地組成或以通常的方式存儲(chǔ)在系統(tǒng)上,或者它可以完整或部分地提供給網(wǎng)絡(luò)上的系統(tǒng)或者以通常方式傳送信息的其他機(jī)構(gòu)。另外,我們明白該系統(tǒng)可以被操作和/或否則由操作員使用操作員輸入單元(未示出)提供的信息所控制。該輸入單元可以直接聯(lián)接到系統(tǒng)上,或者它能傳送信息給在網(wǎng)絡(luò)上的系統(tǒng)或以通常方式傳送信息的裝置。
前面所描述的已經(jīng)限定了這個(gè)發(fā)明的具體實(shí)施例。我們清楚可以對本發(fā)明作各種改變和改進(jìn)以達(dá)到本發(fā)明的一些或所有的優(yōu)點(diǎn)。在本發(fā)明真實(shí)目的內(nèi)和范圍內(nèi)的這些和那些改變和改進(jìn)由附屬權(quán)利所覆蓋也就是這個(gè)目的。
權(quán)利要求
1.在面向?qū)ο?object-oriented)編程方案中用以為一個(gè)對象產(chǎn)生指紋值的指紋產(chǎn)生系統(tǒng),該對象包括數(shù)字信息流,該指紋產(chǎn)生系統(tǒng)包括A、用以接收包含該對象的數(shù)字信息流的接收機(jī);B、根據(jù)選擇的散列值產(chǎn)生算法處理數(shù)字信息流的一個(gè)對象指紋產(chǎn)生器,該散列值產(chǎn)生算法是從散列值產(chǎn)生算法的一個(gè)類選擇的,該散列值產(chǎn)生算法的特征是i響應(yīng)所說的輸入數(shù)據(jù)信息流,具有預(yù)定數(shù)目的數(shù)字比特的數(shù)字散列值作為輸出被產(chǎn)生;ii數(shù)字散列值將是數(shù)字信息流的函數(shù),以致(a)給出兩個(gè)相同的輸入流,將產(chǎn)生相同的數(shù)字散列值;但是(b)給出兩個(gè)不相同的輸入流,將極不可能產(chǎn)生相同的數(shù)字散列值;和iii當(dāng)作為“引用對象”的對象包括對作為被引用對象的另一對象的引用,對象指紋值產(chǎn)生器能夠處理包括為被引用對象產(chǎn)生的被引用對象指紋的引用對象的輸入數(shù)字信息流,而不是處理與被引用對象有關(guān)的數(shù)字信息流,根據(jù)該選擇的散列值產(chǎn)生算法產(chǎn)生的數(shù)字輸出值包括由所說的指紋產(chǎn)生系統(tǒng)產(chǎn)生的指紋。
2.根據(jù)權(quán)利要求1定義的指紋產(chǎn)生系統(tǒng),其中從散列值產(chǎn)生的算法的等級(jí)選擇的所說的散列值算法進(jìn)一步的特征是從數(shù)字輸出值極不可能再生數(shù)字輸入流。
3.根據(jù)權(quán)利要求2定義的指紋產(chǎn)生系統(tǒng),其特征是所說對象指紋產(chǎn)生器根據(jù)選擇的作為來自國家科學(xué)和技術(shù)協(xié)會(huì)可用的NIST SHA的識(shí)別的散列值產(chǎn)生算法處理數(shù)字信息流。
4.根據(jù)權(quán)利要求2定義的指紋產(chǎn)生系統(tǒng),其特征是所說的對象指紋產(chǎn)生器根據(jù)選擇的作為來自RSA公司可用的RC4安全散列算法識(shí)別的散列值產(chǎn)生算法處理數(shù)字信息流。
5.根據(jù)權(quán)利要求2定義的指紋產(chǎn)生系統(tǒng),其特征是所說的對象指紋產(chǎn)生器根據(jù)選擇的作為來自RSA公司可用的RC5安全散列算法的識(shí)別的散列值產(chǎn)生算法處理數(shù)字信息流。
6.根據(jù)權(quán)利要求1定義的指紋產(chǎn)生系統(tǒng),其中所說的對象至少包括一個(gè)對個(gè)被引用對象的被引用,該對象指紋值產(chǎn)生器包括A、被引用對象指紋可用性確定單元用以確定它是否具有被引用對象的被引用對象指紋,和B、響應(yīng)由所說的被引用對象指紋可用性確定單元所作的肯定的確定的被引用對象處理單元用以根據(jù)選擇的散列值產(chǎn)生算法處理被引用對象的指紋。
7.根據(jù)權(quán)利要求6所定義的指紋產(chǎn)生系統(tǒng),其中所說的對象指紋值產(chǎn)生器還包括響應(yīng)由所說的被引用對象指紋可用性確定單元的否定的確定為所說的被引用對象檢索被引用對象信息的被引用對象檢索單元,所說的對象指紋值產(chǎn)生器根據(jù)所說的選擇的散列值產(chǎn)生算法處理被引用對象數(shù)字信息流以產(chǎn)生所說的被引用對象指紋。
8.根據(jù)權(quán)利要求7所定義的指紋產(chǎn)生系統(tǒng),其中的由處理被引用對象數(shù)字信息流的所說的對象指紋值產(chǎn)生器使用的選擇的散列值產(chǎn)生算法包括由處理數(shù)字信息流的對象指紋值產(chǎn)生器使用的相同的選擇的散列值產(chǎn)生算法。
9.根據(jù)權(quán)利要求6定義的指紋產(chǎn)生系統(tǒng),其中所說的對象,其中所說的對象包括每一個(gè)對多個(gè)被引用對象的每一個(gè)的多個(gè)引用,對象指紋值產(chǎn)生器還包括根據(jù)預(yù)定的順序分類所說的被引用的分類單元,被引用對象指紋可能性確定單元和在與按所說的順序的被引用系列有關(guān)的重復(fù)系列中工作的被引用對象處理單元。
10.根據(jù)權(quán)利要求1定義的指紋產(chǎn)生系統(tǒng),其中所說的對象包括多個(gè)元素,指紋產(chǎn)生系統(tǒng)還包括用以分類包含根據(jù)產(chǎn)生分類的數(shù)字信息流的分別的元素的數(shù)字信息流的部分的分類單元,對象指紋值產(chǎn)生器以存儲(chǔ)的數(shù)字信息流產(chǎn)生數(shù)字散列值。
11.根據(jù)權(quán)利要求1定義的指紋產(chǎn)生系統(tǒng),其中所說的對象包括一系列的部分,對象指紋值產(chǎn)生器順序地處理連續(xù)的各個(gè)部分。
12.根據(jù)權(quán)利要求11定義的指紋產(chǎn)生系統(tǒng),其中每個(gè)部分還包含多、個(gè)單元,指紋產(chǎn)生系統(tǒng)還包括用以在每個(gè)部分根據(jù)產(chǎn)生存儲(chǔ)的數(shù)字信息流選擇的儲(chǔ)存順序包含分別的單元中間的數(shù)字信息流的部分的分類單元,對象指紋值產(chǎn)生器從儲(chǔ)存的數(shù)字信息流產(chǎn)生數(shù)字散列值。
13.在面向?qū)ο缶幊谭桨钢杏靡詾橐粋€(gè)對象產(chǎn)生指紋值的指紋產(chǎn)生系統(tǒng),該對象包括數(shù)字信息流,該指紋產(chǎn)生方法包括如下步驟A、接收包含對象的數(shù)字信息流;B、根據(jù)選擇的散列值產(chǎn)生算法處理數(shù)字信息流,從散列值產(chǎn)生算法的類中選擇的散列值產(chǎn)生算法的特征在于i響應(yīng)所說的輸入數(shù)字信息流,具有預(yù)定的數(shù)目的數(shù)字比特的數(shù)字散列值將作為輸出產(chǎn)生;ii數(shù)字散列值將是數(shù)字信息流的函數(shù),以致(a)給出兩個(gè)相同的輸入流,將產(chǎn)生相同的數(shù)字散列值;但是(b)給出兩個(gè)不相同的輸入流,將極不可能產(chǎn)生相同的數(shù)字散列值;和iii當(dāng)作為“引用對象”的對象包括對作為被引用對象的另一對象的引用,對象指紋值產(chǎn)生器能夠處理包括為基準(zhǔn)對象產(chǎn)生的基準(zhǔn)對象指紋的參考對象的輸入數(shù)字信息流,而不是與被引用對象有關(guān)的數(shù)字信息流;根據(jù)該選擇的散列值產(chǎn)生算法產(chǎn)生的數(shù)字輸出值包括該指紋。
14.根據(jù)權(quán)利要求13定義的指紋產(chǎn)生方法,其中從所說的散列值產(chǎn)生算法的選擇的所說的散列值產(chǎn)生算法其特征在于極不可能從數(shù)字輸出值再生數(shù)字輸入流。
15.根據(jù)權(quán)利要求14所定義的指紋產(chǎn)生方法,其中,在所說的對象指紋值產(chǎn)生步驟期間,根據(jù)選擇的作為來自國家科學(xué)和技術(shù)協(xié)會(huì)可用的NISTSHA識(shí)別的散列值產(chǎn)生算法處理數(shù)字信息流。
16.根據(jù)權(quán)利要求14定義的指紋產(chǎn)生方法,其中在所說的對象指紋值產(chǎn)生步驟中,根據(jù)選擇的作為從RSA公司來的可用的RC4安全散列算法的識(shí)別的散列值產(chǎn)生算法處理數(shù)字信息流。
17.根據(jù)權(quán)利要求14定義的指紋產(chǎn)生方法,其中在所說的對象指紋值產(chǎn)生的步驟中,根據(jù)選擇的作為從RSA公司來的可用的RC5安全散列算法的識(shí)別的散列值產(chǎn)生算法處理數(shù)字信息流。
18.根據(jù)權(quán)利要求13定義的指紋產(chǎn)生方法,其中所說的對象至少包括一個(gè)對被引用對象的引用,該對象指紋產(chǎn)生步驟包括如下步驟A確定被引用對象指紋是否提供給所說的被引用對象,和B在所說的被引用對象指紋可用性確定步驟中對應(yīng)肯定的確定,根據(jù)選擇的散列值產(chǎn)生算法處理被引用對象指紋。
19.根據(jù)權(quán)利要求18定義的指紋產(chǎn)生方法,其中所說的對象指紋值產(chǎn)生步驟還包括響應(yīng)由被引用對象指紋值可用性確定單元所作的否定的確定,為所說的被引用對象檢索被引用對象數(shù)字信息流的步驟,和根據(jù)產(chǎn)生所說的被引用對象指紋的所說的選擇的散列值產(chǎn)生算法處理被引用對象數(shù)字信息流。
20.根據(jù)權(quán)利要求18定義的指紋產(chǎn)生方法,其中在選擇的散列值產(chǎn)生步驟中,該相同的選擇的散列值產(chǎn)生算法象用來象處理數(shù)字信息流那樣處理被引用對象數(shù)字信息流。
21.根據(jù)權(quán)利要求18定義的指紋產(chǎn)生方法,其中,所說的對象包括每一個(gè)對多個(gè)被引用對象的的每一個(gè)的多個(gè)引用,對象指紋值產(chǎn)生步驟還包括根據(jù)預(yù)定的順序分類所說被引用的步驟,被引用對象指紋可用性確定步驟和在與按所說順序的一系列被引用有關(guān)的重復(fù)的系列中執(zhí)行被引用對象處理的步驟。
22.根據(jù)權(quán)利要求13定義的指紋產(chǎn)生方法,其中所說的對象包括多個(gè)元素,該指紋產(chǎn)生的方法還包括根據(jù)產(chǎn)生分類的數(shù)字信息流的選擇的分類順序分類包含分別的元素的數(shù)字信息流的部分的步驟。
23.根據(jù)權(quán)利要求13所定義的指紋產(chǎn)生方法,其中所說的對象包括一系列的部分,對象指紋值產(chǎn)生步驟包括順序處理串連的各個(gè)部分的步驟。
24.根據(jù)權(quán)利要求23定義的指紋產(chǎn)生方法,其中每一個(gè)部分還包括多個(gè)單元,該指紋產(chǎn)生方法還包括根據(jù)產(chǎn)生分類的數(shù)字信息流的選擇的分類順序在包含分別的單元的每個(gè)部分中分類數(shù)字信息流的部分的步驟,數(shù)字散列值從分類的數(shù)字信息流產(chǎn)生出來。
25.用以控制計(jì)算機(jī)在面向?qū)ο缶幊谭桨钢袨橐粋€(gè)對象產(chǎn)生指紋值的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,該對象包括數(shù)字信息流,該指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品包括在其上具有編碼信息的機(jī)器可讀的介質(zhì)能夠使所說的計(jì)算機(jī)接收包含該對象的數(shù)字信息流的接收機(jī)代碼裝置;對象指紋值產(chǎn)生器代碼裝置能使所說的計(jì)算機(jī)根據(jù)選擇的散列值產(chǎn)生算法處理數(shù)字信息流,從散列值產(chǎn)生算法的一個(gè)類選擇的散列值產(chǎn)生算法的特征在于i響應(yīng)所說的輸入數(shù)字信息流,將產(chǎn)生具有預(yù)定的數(shù)字比特?cái)?shù)目的數(shù)字散列值作為輸出;ii數(shù)字散列值將是數(shù)字信息流的方程,以致(a)給出兩個(gè)相同的輸入流,將產(chǎn)生相同的數(shù)字散列值,但是,(b)給出兩個(gè)不相同的輸入流,將極不可能產(chǎn)生相同的數(shù)字散列值;和iii當(dāng)作為“引用對象”的對象包括對另一個(gè)作為被引用對象的對象的引用,對象指紋值產(chǎn)生器能處理包括為被引用對象產(chǎn)生的被引用對象指紋的參考對象的輸入數(shù)字信息流,而不是與基準(zhǔn)對象關(guān)聯(lián)的數(shù)字信息流,根據(jù)選擇的散列值產(chǎn)生算法產(chǎn)生的數(shù)字輸出值包括由所說的指紋產(chǎn)生系統(tǒng)產(chǎn)生的指紋。
26.根據(jù)權(quán)利要求25定義的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,其中所說的從所說的散列值產(chǎn)生算法的等級(jí)選擇散列值產(chǎn)生系統(tǒng)的進(jìn)一步特征在于極不可能從數(shù)字輸出值再生出數(shù)字輸入流。
27.根據(jù)權(quán)利要求26定義的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,其中所說的對象指紋值產(chǎn)生器代碼裝置能夠使計(jì)算機(jī)根據(jù)選擇的作為來自國家科學(xué)和技術(shù)協(xié)會(huì)的可用的NIST SHA的被識(shí)別的散列值產(chǎn)生算法處理數(shù)字信息流。
28.根據(jù)權(quán)利要求26定義的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,其中所說的對象指紋值產(chǎn)生器代碼裝置能夠使計(jì)算機(jī)根據(jù)選擇的作為來自RSA公司的可用的一種RC4安全散列算法的被識(shí)別的散列值產(chǎn)生算法處理數(shù)字信息流。
29.根據(jù)權(quán)利要求26定義的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,其中所說的對象指紋值計(jì)算機(jī)代碼裝置能夠使所說的計(jì)算機(jī)根據(jù)選擇的作為來自RSA公司可用的一種RC5安全散列算法的被識(shí)別的散列值產(chǎn)生算法處理數(shù)字信息流。
30.根據(jù)權(quán)利要求25定義的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,其中所說的對象至少包括對一個(gè)被引用對象的引用,該對象指紋值產(chǎn)生器代碼裝置包括A、能夠使所說的計(jì)算機(jī)確定是否它具有所說的被引用對象的被引用對象指紋的被引用對象指紋可利用性確定代碼裝置,和B、能夠使所說的計(jì)算機(jī)響應(yīng)由所說的被引用對象指紋可用性確定單元,根據(jù)選擇的散列值產(chǎn)生算法處理被引用對象指紋的被引用對象處理代碼裝置。
31.根據(jù)權(quán)利要求30定義的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,其中所說的對象指紋值產(chǎn)生器代碼裝置還包括被引用對象檢索代碼裝置,它能夠使所說的計(jì)算機(jī)響應(yīng)在所說的被引用對象指紋可用性確定代碼裝置的處理期間的否定的確定以檢索所說的被引用對象的被引用對象數(shù)字信息流。所說的對象指紋值產(chǎn)生器代碼裝置根據(jù)所說的產(chǎn)生被引用對象指紋的選擇的散列值產(chǎn)生算法處理被引用對象數(shù)字信息流。
32.根據(jù)權(quán)利要求31所定義的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,其中所處理被引用對象數(shù)字信息流的所說的對象指紋值產(chǎn)生器代碼裝置的處理期間使用的選擇的散列值產(chǎn)生算法包含與在處理數(shù)字信息流的對象指紋值產(chǎn)生器代碼裝置的處理期間使用的相同的選擇散列值產(chǎn)生算法。
33.根據(jù)權(quán)利要求30定義的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,其中所說的對象包括每一個(gè)對應(yīng)多個(gè)被引用對象中的一些的多個(gè)引用,對象指紋值產(chǎn)生器代碼裝置包括能使計(jì)算機(jī)根據(jù)預(yù)定的順序分類所說的引用的分類單元,和控制所說的計(jì)算機(jī)按與所說的順序的一系列引用有關(guān)的重復(fù)系列工作的被引用對象處理代碼裝置。
34.根據(jù)權(quán)利要求25定義的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,其中所說的對象包含多個(gè)元素,指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品還包括能夠使計(jì)算機(jī)根據(jù)選擇的分類順序分類由分別的元素組成的數(shù)字信息流的部分以產(chǎn)生分類的數(shù)字信息流的分類代碼裝置,該對象指紋值產(chǎn)生器代碼裝置能幫助計(jì)算機(jī)從分類數(shù)字信息流產(chǎn)生數(shù)字散列值。
35.根據(jù)權(quán)利要求25定義的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,所說的對象包括一系列的部分,該對象指紋產(chǎn)生器代碼裝置能使所說的計(jì)算機(jī)順序處理分別的串聯(lián)部分。
36.根據(jù)權(quán)利要求35定義的指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品,其中每個(gè)部分還包括多個(gè)單元,該指紋產(chǎn)生計(jì)算機(jī)程序產(chǎn)品還包括能夠使所說的計(jì)算機(jī)根據(jù)產(chǎn)生分類數(shù)字信息流所選擇的分類順序在每個(gè)由分別的單元組成的部分內(nèi)分類數(shù)字信息流的分類代碼裝置,該對象指紋值產(chǎn)生器代碼裝置能使計(jì)算機(jī)從分類的數(shù)字信息流產(chǎn)生數(shù)字散列值。
37.在面向?qū)ο缶幊谭桨钢杏靡詾橐粋€(gè)對象產(chǎn)生指紋值的一種指紋產(chǎn)生系統(tǒng),該指紋產(chǎn)生系統(tǒng)包括A一個(gè)計(jì)算機(jī);和B控制所說的計(jì)算機(jī)的控制裝置,它包括i能夠使所說的計(jì)算機(jī)接收由對象組成的數(shù)字信息流的模塊;ii能夠使所說的計(jì)算機(jī)處理選擇的散列值產(chǎn)生算法處理該數(shù)字信息流的對象指紋值產(chǎn)生模塊,該散列值產(chǎn)生算法是從散列值產(chǎn)生算法的一個(gè)類中選擇的,它的特征在于a、響應(yīng)所說的輸入數(shù)字信息流,產(chǎn)生具有預(yù)定數(shù)字比特?cái)?shù)目的數(shù)字散列值作為輸出;b、該數(shù)字散列值將是數(shù)字信息流的函數(shù),以致(I)給出兩個(gè)相同的輸入流,將產(chǎn)生相同的數(shù)字散列值;但是(II)給出兩個(gè)不相同的輸入流,將極不可能產(chǎn)生相同的數(shù)字散列值;和c、當(dāng)作為“引用對象”的對象包括對另一個(gè)作為被引用對象的對象的引用,該對象指紋值產(chǎn)生器能夠處理包括為被引用對象產(chǎn)生的被引用對象指紋的參考對象的輸入數(shù)字信息流,而不是與被引用對象相關(guān)聯(lián)的數(shù)字信息流,根據(jù)選擇的散列值產(chǎn)生算法產(chǎn)生的數(shù)字輸入值包括由所說的指紋產(chǎn)生系統(tǒng)產(chǎn)生的指紋。
38.易于在面向?qū)ο缶幊谭桨钢袨橐粋€(gè)對象產(chǎn)生指紋值的與計(jì)算機(jī)連接使用的控制裝置,該對象包括數(shù)字信息流,該控制裝置包括A、能夠使所說的計(jì)算機(jī)接收由對象組成的數(shù)字信息流的接收機(jī)模塊;B、能夠使所說的計(jì)算機(jī)根據(jù)選擇的散列值產(chǎn)生算法處理數(shù)字信息流的對象指紋值產(chǎn)生模塊,該由散列值產(chǎn)生算法的一個(gè)等級(jí)選擇的散列值產(chǎn)生算法的特征在于i響應(yīng)所說的輸入信息流,將產(chǎn)生具有預(yù)定的數(shù)字比特?cái)?shù)目的數(shù)字散列值作為輸出;ii該數(shù)字散列值將是數(shù)字信息流的函數(shù),以致(a)給出兩個(gè)相同的輸入流,將產(chǎn)生相同的數(shù)字散列值,但是(b)給出兩個(gè)不相同的輸入流,將極不可能產(chǎn)生相同的數(shù)字散列值;和iii當(dāng)作為“引用對象”的對象包括作為被引用對象對另一個(gè)對象的參考時(shí),該對象指紋值產(chǎn)生器能夠處理包括為該被引用對象產(chǎn)生的被引用對象指紋的引用對象的輸入數(shù)字信息流,而不是與被引用對象關(guān)聯(lián)的數(shù)字信息流,根據(jù)選擇的散列值產(chǎn)生算法產(chǎn)生的數(shù)字輸出值包含由所說的指紋產(chǎn)生系統(tǒng)產(chǎn)生的指紋。
39.用以分配儲(chǔ)存在計(jì)算機(jī)可讀的介質(zhì)和由計(jì)算機(jī)可執(zhí)行的代碼的系統(tǒng),該代碼包括多個(gè)程序塊、每個(gè)程序塊被構(gòu)成以便在面向?qū)ο缶幊萄b置中控制計(jì)算機(jī)以簡化一個(gè)對象的指紋值的產(chǎn)生,該對象包含數(shù)字信息流,該系統(tǒng)包括A、能夠使所說的計(jì)算機(jī)接收構(gòu)成該對象的數(shù)字信息流的接收機(jī)模塊;B、能夠使所說的計(jì)算機(jī)根據(jù)選擇的散列值產(chǎn)生算法處理數(shù)字信息流的目標(biāo)指紋值產(chǎn)生模塊,從散列值產(chǎn)生算法的一個(gè)類選擇的散列值產(chǎn)生算法的特征在于i響應(yīng)所說的輸入數(shù)字信息流,將產(chǎn)生具有預(yù)定的數(shù)字比特?cái)?shù)目的數(shù)字散列值作為輸出;ii數(shù)字散列值將是數(shù)字信息流的方程,以致(a)給出兩個(gè)相同的輸入流,將產(chǎn)生相同的數(shù)字散列值;但是(b)給出兩個(gè)不相同的輸入流,將極不可能產(chǎn)生相同的數(shù)字散列值,和iii當(dāng)作為“引用對象”的對象包含對另一個(gè)作為被引用對象的對象的引用該對象指紋值產(chǎn)生器能處理包括為該被引用對象產(chǎn)生的被引用對象指紋的引用對象的輸入信息流,而不是與被引用對象有關(guān)聯(lián)的數(shù)字信息流,該根據(jù)選擇的散列值產(chǎn)生算法產(chǎn)生的數(shù)字輸出值包含由所說的指紋產(chǎn)生系統(tǒng)產(chǎn)生的指紋。
全文摘要
在面向?qū)ο缶幊谭桨钢袨橐粋€(gè)對象產(chǎn)生指紋值的指紋產(chǎn)生系統(tǒng)。它的特征在于:響應(yīng)所說的輸入數(shù)字信息流,將產(chǎn)生具有預(yù)定的數(shù)字比特?cái)?shù)目的數(shù)字散列值作為輸出;該數(shù)字散列值將是數(shù)字信息流的函數(shù);當(dāng)作為“引用對象”的對象包括對另一個(gè)作為被引用對象的引用,引用對象的輸入數(shù)字信息流能包括為該被引用對象事先產(chǎn)生的指紋而不是被引用對象本身的數(shù)字信息流,根據(jù)選擇的散列值產(chǎn)生算法產(chǎn)生的數(shù)字散列值包含由所說指紋產(chǎn)生系統(tǒng)產(chǎn)生的指紋。
文檔編號(hào)G06F17/00GK1177776SQ9711364
公開日1998年4月1日 申請日期1997年4月23日 優(yōu)先權(quán)日1997年4月23日
發(fā)明者J·H·維爾多, K·巴列特, R·里格斯 申請人:太陽微系統(tǒng)有限公司