專利名稱:軟件代理和代理活動(dòng)的驗(yàn)證的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件代理和它們的活動(dòng)的驗(yàn)證,特別是涉及在分布式計(jì)算環(huán)境中軟件代理和它們的活動(dòng)的驗(yàn)證。
在信息密集的計(jì)算環(huán)境中,用戶往往既遭受信息過(guò)量又低效地消耗計(jì)算資源。為了緩解這種過(guò)量和低效,軟件程序設(shè)計(jì)人員編制了通常稱為軟件代理的程序。軟件代理確實(shí)是公知的用戶工具。
軟件代理通常被委托例如代表用戶去完成一個(gè)或多個(gè)任務(wù)。例如,有些軟件代理被委托檢索、篩選、分析信息和賦予信息優(yōu)先級(jí)。再例如,有些軟件代理被委托以敏感任務(wù)及相關(guān)信息,諸如銀行任務(wù)及相關(guān)帳戶信息、電子商務(wù)任務(wù)及相關(guān)信用卡信息,以及其它具有商業(yè)秘密或商業(yè)敏感信息的事務(wù)處理。
為了完成這些任務(wù),軟件代理通常運(yùn)用計(jì)算環(huán)境來(lái)例如獲得由服務(wù)器管理的服務(wù)和/或與其它代理交互。在這種條件下,軟件代理易遭受到各種破壞。例如,諸如用添入病毒或提供無(wú)益功能的手段改變其代碼,軟件代理就可能被損壞。遭病毒破壞的代理通常能在計(jì)算環(huán)境中擴(kuò)散病毒(例如擴(kuò)散到服務(wù)器)和/或?qū)⒉《緮U(kuò)散到它與其交互的其它代理。
再例如,軟件代理自身也能因諸如其代碼中在托管任務(wù)(entrusted task)或與任務(wù)相關(guān)的信息方面的改變而被破壞。就受托以銀行轉(zhuǎn)帳任務(wù)的代理來(lái)說(shuō),如果其代碼被改變得要修改轉(zhuǎn)帳的性質(zhì)和金額,則代理就被破壞。
再例如,軟件代理沒(méi)有破壞,但是代理在功能上/間接地被正在使用的環(huán)境的一部分內(nèi)的惡意操作破壞。為了解釋這個(gè)例子,假設(shè)受托以銀行轉(zhuǎn)帳任務(wù)的代理可能將攜帶請(qǐng)求進(jìn)行某固定金額的轉(zhuǎn)帳并從第一帳戶轉(zhuǎn)往第二帳戶的信息。然而,代理可能會(huì)遭到轉(zhuǎn)帳服務(wù)器本身中出現(xiàn)的惡意的破壞。在這種情況下代理的損壞可能是任務(wù)的執(zhí)行中的變化,諸如因?yàn)?1)轉(zhuǎn)移不同的金額或(2)將該金額轉(zhuǎn)向第三帳戶,或者(3)兼有這兩種情況。如果與此同時(shí)還有向代理或通過(guò)代理或其它方式的虛假報(bào)告一聲稱所請(qǐng)求的任務(wù)得到正確執(zhí)行,則代理的損壞就嚴(yán)重了。
代理?yè)p壞一般是因?yàn)橥ㄟ^(guò)加密技術(shù)得到的保護(hù)不充分。就是說(shuō),盡管加密技術(shù)能驗(yàn)證軟件代理的起源,這些加密技術(shù)阻止破壞的能力通常有限。特別是如果這種破壞能在加密之前或加密后發(fā)生,則加密技術(shù)一般不能阻止代理破壞。
所以,本領(lǐng)域中需要在分布式計(jì)算環(huán)境中驗(yàn)證軟件代理和它們的活動(dòng)的方法和裝置。特別是在環(huán)境中可能出現(xiàn)惡意操作的地方需要這種方法和裝置。
本發(fā)明提供一種驗(yàn)證軟件代理和它們的活動(dòng)的裝置及方法。在分布式計(jì)算環(huán)境中,提供起源資源、目的地資源和受托資源(trustedresource)。起源資源與軟件代理的關(guān)聯(lián)性在于-最概括地說(shuō)-代理的信息和/或托管任務(wù)是與起源資源有關(guān)的。起源資源一般向軟件代理提供信息和/或托管任務(wù),并期待通過(guò)代理的返回(return)或其它方式接收含有關(guān)于代理的活動(dòng)的信息或代理的活動(dòng)的結(jié)果的信息的報(bào)告。
起源資源通常啟動(dòng)軟件代理。然而,軟件代理可以與一個(gè)或多個(gè)起源資源相關(guān)聯(lián),所以,可以由任何這種資源或者由其它某個(gè)資源初始啟動(dòng)(例如軟件代理可由受托資源或目的地資源初始啟動(dòng))。
目的地資源與軟件代理的關(guān)聯(lián)性在于-最概括地說(shuō)-期待推動(dòng)代理執(zhí)行托管任務(wù)。目的地資源通常接收代理,與代理交互并執(zhí)行和/或幫助執(zhí)行代理的一個(gè)或多個(gè)托管任務(wù)。任何一個(gè)軟件代理可以有一個(gè)或多個(gè)相關(guān)聯(lián)的目的地資源。
受托資源與軟件代理的關(guān)聯(lián)性在于,受托資源的作用是提供對(duì)軟件代理及其活動(dòng)的驗(yàn)證。受托資源最好有一些選定的、支持一個(gè)或多個(gè)選定操作的機(jī)構(gòu)與之關(guān)聯(lián)。這些操作諸如有軟件代理的接收/轉(zhuǎn)發(fā);加密/解密部分或整個(gè)軟件代理;軟件代理指紋的獲取、存儲(chǔ)、檢索和比較;執(zhí)行包括用于檢查可變信息的規(guī)則;建立、設(shè)置、更新和檢查返回定時(shí)器(return timers);生成驗(yàn)證通知、報(bào)告或其它有關(guān)代理及其活動(dòng)的驗(yàn)證的回復(fù),這種驗(yàn)證回復(fù)一般被傳送到起源資源和/或啟動(dòng)資源;記錄其與之交互的軟件代理的活動(dòng);剝離(stripping)、屏蔽或以其它方式保護(hù)軟件代理的部分或全部。
受托資源最好是不可破壞的。為此,受托資源的固有硬件和/或軟件最好實(shí)現(xiàn)受托資源本身的安全。這種以安全為導(dǎo)向的硬件/軟件保護(hù)受托資源不遭受無(wú)論是通過(guò)軟件代理還是其它方式導(dǎo)入的例如病毒或其它破壞性影響。此外,假設(shè)發(fā)生對(duì)受托資源的某種破壞時(shí),以安全為目標(biāo)的硬件/軟件最好能確定并更正任何這種破壞,包括對(duì)受托資源相關(guān)的操作系統(tǒng)和應(yīng)用軟件的破壞。
本發(fā)明也提供為能用本發(fā)明的裝置及方法進(jìn)行驗(yàn)證而配置的軟件代理。任何這種代理最好有一個(gè)或多個(gè)固定的和可變的字段。固定字段一般支持地址、規(guī)則、數(shù)據(jù)或其它固定信息(不管受委托要完成的是什么任務(wù)都不改變的信息)??勺冏侄我话阒С植僮鳂?biāo)志(例如新/舊標(biāo)志)、規(guī)則、數(shù)據(jù)或其它可變信息(當(dāng)代理完成其托管任務(wù)時(shí)改變的信息)。任何這種代理最好也支持某些規(guī)則,包括能用以實(shí)現(xiàn)所選擇的操作的規(guī)則-這些操作諸如有,校驗(yàn)對(duì)可變信息的適當(dāng)修改和/或保證TR規(guī)則本身不被破壞。
參照以下結(jié)合各附圖的詳細(xì)說(shuō)明能更好地理解本發(fā)明。下列附圖中類同的成分有相同的編號(hào)
圖1是表示按照本發(fā)明的一個(gè)分布式計(jì)算環(huán)境的框圖;圖2是表示按照本發(fā)明的一個(gè)受托資源的框圖;圖3的流程圖表示按照本發(fā)明的與受托資源相聯(lián)系的驗(yàn)證軟件代理及其活動(dòng)的步驟;圖4是表示按照本發(fā)明的一個(gè)軟件代理的框圖。
對(duì)軟件代理及它們的活動(dòng)的驗(yàn)證包含確定軟件代理信息和任務(wù)是否被破壞。術(shù)語(yǔ)“破壞”及其同義詞在這里所指的情形,并非窮舉,包含下述任何或所有情形(1)代理的誤定向或重定向,(2)代理中含有或具有病毒代碼或其它無(wú)益的功能,(3)對(duì)代理的代換或其它體現(xiàn)(4)以不適當(dāng)?shù)?、不允許的或非授權(quán)的方式對(duì)代理(例如其任務(wù)和/或信息)的其它修改、補(bǔ)充或改變-無(wú)論是全部的還是部分的,(5)偏離對(duì)代理的任務(wù)的預(yù)期執(zhí)行(提供或不提供虛假的執(zhí)行報(bào)告)。
對(duì)軟件代理及它們的活動(dòng)的驗(yàn)證往往隨著代理及其活動(dòng)的重要程度的逐漸增加而增值。重要程度往往存在于例如如下情形中代理被委托以敏感/秘密任務(wù)及相關(guān)信息,諸如a)銀行任務(wù)及相關(guān)帳戶信息;b)電子商務(wù)任務(wù)及相關(guān)信用卡信息;c)其它具有商業(yè)秘密或商業(yè)敏感信息的事務(wù)處理。
按照本發(fā)明,驗(yàn)證裝置和方法在計(jì)算環(huán)境中運(yùn)行,或者是計(jì)算環(huán)境的一部分。這種計(jì)算環(huán)境最好包含一個(gè)分布式計(jì)算環(huán)境,諸如因特網(wǎng)或類似因特網(wǎng)的系統(tǒng),或萬(wàn)維網(wǎng)或類似萬(wàn)維網(wǎng)的系統(tǒng),或任何開(kāi)放式通信網(wǎng)絡(luò),或軟件代理在其中會(huì)遭受破壞、包括被環(huán)境本身一部分內(nèi)的惡意操作破壞的其它環(huán)境。
概括地說(shuō),本發(fā)明的裝置和方法設(shè)想有起源資源、目的地資源和受托資源。起源資源、目的地資源和受托資源每個(gè)包含任何一個(gè)或多個(gè)站點(diǎn)、服務(wù)器、軟件應(yīng)用程序、軟件代理網(wǎng)絡(luò)、固件、或其它硬件、軟件或網(wǎng)絡(luò)資源(物理的和/或邏輯的)、無(wú)論是單獨(dú)的還是組合的(以下通稱為“硬件、軟件和/或網(wǎng)絡(luò)資源”)。
應(yīng)當(dāng)明白,每個(gè)這種起源資源、目的地資源和受托資源都能或者在計(jì)算環(huán)境中的或者在與計(jì)算環(huán)境相關(guān)聯(lián)的一個(gè)物理位置或多個(gè)分布的物理位置中實(shí)現(xiàn)。例如,受托資源可以以在網(wǎng)絡(luò)中一個(gè)網(wǎng)址駐留的服務(wù)器的形式實(shí)現(xiàn),該站點(diǎn)一般包含一個(gè)計(jì)算設(shè)備,其中服務(wù)器被配置得能(直接或間接)與選定的軟件代理交互-軟件代理諸如是通過(guò)從起源資源出發(fā)(或者以起源資源為目標(biāo))和從目的地資源出發(fā)(或者以目的地資源為目標(biāo))的轉(zhuǎn)移而使用環(huán)境的代理。另一個(gè)例子是,受托資源可以以一個(gè)或多個(gè)在計(jì)算環(huán)境的一個(gè)或多個(gè)網(wǎng)絡(luò)中不同網(wǎng)址中有分布的駐留地(residence)的服務(wù)器的形式實(shí)現(xiàn)。盡管舉了這兩個(gè)例子,應(yīng)當(dāng)明白在不偏離本發(fā)明原則的情況下受托資源可以以其它方式實(shí)現(xiàn)。
目的地資源與軟件代理的關(guān)聯(lián)性在于-最概括地說(shuō)-代理的信息和托管任務(wù)是與起源資源有關(guān)的,或者能夠變得與起源資源有關(guān)。起源資源通常通過(guò)向軟件代理提供信息和/或托管任務(wù)來(lái)指定代理。起源資源委托任務(wù)的方式是(a)提供例如形式為代碼的任務(wù);(b)例如如果代理被另一個(gè)資源(諸如受托資源、目的地資源或第二個(gè)起源資源)啟動(dòng),就在所提供的任務(wù)中選擇;(c)(a)和(b)的組合,(d)其它方式。(起源資源在本文中有些被縮寫為“OR”)。
起源資源通常期待接收根據(jù)代理使用計(jì)算環(huán)境的報(bào)告,這種報(bào)告是關(guān)于代理的活動(dòng)的信息或者是代理的活動(dòng)的結(jié)果的信息。然而應(yīng)當(dāng)明白,被委托以特定起源資源提供的、或者特定起源資源的任務(wù)或信息的軟件代理,也可以被委托以與一個(gè)或多個(gè)其它起源資源有關(guān)的信息和/或資源。
起源資源最好能夠啟動(dòng)軟件代理。然而應(yīng)當(dāng)明白,與特定起源資源有關(guān)的軟件代理可以被該起源資源以外的資源初始啟動(dòng)。例如,軟件代理可以被第二個(gè)起源資源-為了與第一和第二起源資源有關(guān)的目的或者完全代表第一起源資源-初始啟動(dòng)。再例如,軟件代理可以被某受托資源-根據(jù)某起源資源或某目的地資源,或者根據(jù)該受托資源自身的要求(例如為了有效地提供其服務(wù))-初始啟動(dòng)。再例如,軟件代理可以被某目的地資源-根據(jù)某起源資源或某受托資源,或者根據(jù)該目的地資源自身的要求(例如為了促進(jìn)其服務(wù))-初始啟動(dòng)。在最后這個(gè)例子中,目的地資源本身可能就是一個(gè)有效的起源資源,在這種情況下,起源資源(或受托資源)可能是有效的目的地資源-即目的地資源可以向代理提供信息和/或委托暗示在起源資源處(例如由最終用戶進(jìn)行的)行動(dòng)的任務(wù)。
由這些例子應(yīng)當(dāng)明白,軟件代理可與一個(gè)或多個(gè)起源資源相關(guān)聯(lián),可由任何這種資源或由任何其它資源初始啟動(dòng),這些都不偏離本發(fā)明的原則。在任何情形中,應(yīng)當(dāng)明白,軟件代理被啟動(dòng)是為了能夠最終變得與某起源資源有關(guān)。
目的地資源與軟件代理的關(guān)聯(lián)性在于-最概括地說(shuō)-期待它實(shí)現(xiàn)托管任務(wù)。通常,目的地資源接收代理,與代理交互并執(zhí)行和/或幫助執(zhí)行代理的一個(gè)或多個(gè)托管任務(wù)的部分或全部(以下用“執(zhí)行”概括地表示對(duì)任務(wù)的實(shí)際執(zhí)行和幫助執(zhí)行任務(wù)這兩層意思)。然而應(yīng)當(dāng)明白,任何一個(gè)軟件代理可以有一個(gè)或多個(gè)相關(guān)聯(lián)的目的地資源。例如,某代理的多個(gè)目的地資源的組織結(jié)構(gòu)可能是(a)單個(gè)的,這樣,每個(gè)都能執(zhí)行任何一個(gè)或多個(gè)任務(wù);(b)形成各種組成的分組,這樣,每個(gè)分組都能執(zhí)行任何一個(gè)或多個(gè)任務(wù)。(目的地資源在本文中有些被縮寫為“DR”)。
受托資源與軟件代理的關(guān)聯(lián)性在于,軟件代理和受托資源的作用是提供對(duì)軟件代理及其活動(dòng)的驗(yàn)證。受托資源最好支持一個(gè)或多個(gè)選定的驗(yàn)證操作。驗(yàn)證操作包括一但不限于軟件代理的接收/傳遞;加密/解密部分或整個(gè)軟件代理;軟件代理指紋的獲取、存儲(chǔ)、檢索和比較;執(zhí)行包括用于檢查可變信息的規(guī)則;建立、設(shè)置、更新和檢查返回定時(shí)器;生成驗(yàn)證通知、報(bào)告或其它有關(guān)代理及其活動(dòng)的驗(yàn)證的回復(fù),這種驗(yàn)證回復(fù)的目標(biāo)一般是起源資源和/或啟動(dòng)資源;記錄其與之交互的軟件代理的活動(dòng);剝離、屏蔽或以其它方式保護(hù)軟件代理的局部或全部。(術(shù)語(yǔ)“指紋”在本文件中指的是軟件代理的指紋、簽名、個(gè)人簡(jiǎn)檔(profile)或其它檢驗(yàn)信息,無(wú)論是單個(gè)的還是聯(lián)合的;也指獲取這些的行為。)受托資源最好是不可破壞的。為此,受托資源的固有硬件和/或軟件最好實(shí)現(xiàn)受托資源本身的安全。就是說(shuō),受托資源最好包含以保護(hù)受托資源不遭受無(wú)論是通過(guò)軟件代理還是其它方式導(dǎo)入的例如病毒或其它破壞性影響為目標(biāo)的硬件、軟件和/或網(wǎng)絡(luò)資源。此外,假設(shè)發(fā)生對(duì)受托資源的某種破壞時(shí),以安全為目標(biāo)的硬件/軟件最好能確定并更正任何這種破壞,包括對(duì)受托資源相關(guān)的操作系統(tǒng)和應(yīng)用軟件的破壞。
在一個(gè)實(shí)施例中,受托資源包含一個(gè)與計(jì)算環(huán)境相連和/或在計(jì)算環(huán)境中的受托服務(wù)器。目的地和起源資源也與計(jì)算環(huán)境相連和/或在計(jì)算環(huán)境中。在每種情況中,連接經(jīng)過(guò)相應(yīng)的通信路徑,這些路徑也包含該計(jì)算環(huán)境的一部分或者與該計(jì)算環(huán)境相關(guān)聯(lián)。在一例情況中,計(jì)算環(huán)境包含因特網(wǎng),通信路徑包含任何或多個(gè)-無(wú)論是單獨(dú)的還是組合的-通信資源,包括光纖電纜、雙扭雙線電話線、同軸電纜、交換和路由電路、用于這種交換和路由的過(guò)程、協(xié)議、固件、以及其它硬件、軟件和/或網(wǎng)絡(luò)資源。
在該實(shí)施例中,目的地資源包含一個(gè)與某因特網(wǎng)站點(diǎn)相關(guān)聯(lián)的服務(wù)器,該站點(diǎn)支持某些操作和功能(例如,某銀行的的萬(wàn)維站點(diǎn)點(diǎn),提供連接該銀行的業(yè)務(wù)的網(wǎng)關(guān),業(yè)務(wù)例如包括用戶帳戶的轉(zhuǎn)帳)。另外在該實(shí)施例中,起源資源包含一個(gè)因特網(wǎng)客戶機(jī),客戶機(jī)能夠指定和啟動(dòng)軟件代理并且通常由最終用戶操作。在起源資源啟動(dòng)軟件代理后,代理使用計(jì)算環(huán)境,于是,起源資源一般就失去對(duì)代理的控制。如果代理遇到其使用的環(huán)境的任何部分內(nèi)的破壞影響,軟件代理受托的任務(wù)或信息可能會(huì)受到各種破壞。然而一般來(lái)說(shuō),對(duì)任何這種破壞,在啟動(dòng)起源資源處和/或代理與之有關(guān)的任何其它起源資源處一直是一無(wú)所知的。此外,即使破壞情況被報(bào)告給起源資源,這種報(bào)告一般要在遭破壞后的相當(dāng)長(zhǎng)的時(shí)間以后才會(huì)發(fā)生,此時(shí)已經(jīng)沒(méi)有補(bǔ)救措施(例如進(jìn)行預(yù)先處理,正確結(jié)束托管任務(wù),查明并消除惡意操作)。
在使用本實(shí)施例中計(jì)算環(huán)境時(shí),軟件代理一般使用一個(gè)或多個(gè)通信路徑來(lái)在起源資源、受托資源和目的地資源之間游歷。就因特網(wǎng)而言,這種使用導(dǎo)致軟件代理被根據(jù)例如網(wǎng)際協(xié)議(“IP”)的協(xié)議的已知操作從一個(gè)站點(diǎn)或服務(wù)器路由/交換到下一個(gè)。在這種情況中,起源、受托和目的地資源支持IP。應(yīng)當(dāng)明白,在不偏離本發(fā)明原則的情況下,可以使用各種協(xié)議,無(wú)論是單獨(dú)使用還是一起使用,無(wú)論是替代IP還是補(bǔ)充IP,這要視具體的計(jì)算環(huán)境而定;并且一般來(lái)說(shuō),起源、受托和目的地資源支持這些沒(méi)有指明的協(xié)議。
盡管遍歷各資源的或者與遍歷各資源相關(guān)聯(lián)的次序、業(yè)務(wù)、操作會(huì)因?qū)嵺`和/或?qū)崿F(xiàn)而不同,應(yīng)當(dāng)明白,按照本發(fā)明,軟件代理的驗(yàn)證要得到支持。特別地,設(shè)想某軟件代理要接受與至少兩個(gè)驗(yàn)證事件有關(guān)的驗(yàn)證操作第一個(gè)驗(yàn)證事件依賴于代理的沒(méi)有與執(zhí)行任務(wù)的資源的任何交互的狀態(tài),第二個(gè)驗(yàn)證事件依賴于代理的必須與執(zhí)行任務(wù)的資源的任何交互的狀態(tài)。
為了確保驗(yàn)證事件,在0R、DR和TR之間的每次遍歷一般考慮到代理與/在受托資源的交互。一般來(lái)說(shuō),軟件代理被從起源資源傳送到受托資源,并最終被受托資源接收/在受托資源被接收。一般來(lái)說(shuō),軟件代理也被從目的地資源傳送到受托資源,并最終被受托資源接收/在受托資源被接收,由此,軟件代理也被傳送到起源資源,并最終被起源資源接收/在起源資源被接收。軟件代理通常也在某個(gè)交互(例如受托資源對(duì)代理執(zhí)行適當(dāng)?shù)尿?yàn)證操作或受托資源執(zhí)行適當(dāng)?shù)呐c代理有關(guān)的驗(yàn)證操作)之后被從受托資源傳送。
受托資源最好有一些選定的、支持一個(gè)或多個(gè)選定的驗(yàn)證操作的硬件、軟件和/或網(wǎng)絡(luò)資源與之關(guān)聯(lián)。這些單獨(dú)的或各種組合形式的硬件、軟件和/或網(wǎng)絡(luò)資源包含多個(gè)機(jī)構(gòu)。典型的受托資源機(jī)構(gòu)包括(a)接收機(jī)構(gòu);(b)轉(zhuǎn)發(fā)機(jī)構(gòu);(c)指紋獲取機(jī)構(gòu);(d)指紋存儲(chǔ)機(jī)構(gòu);(e)指紋比較機(jī)構(gòu);(f)驗(yàn)證回復(fù)機(jī)構(gòu);(g)定時(shí)器機(jī)構(gòu);(h)受托資源規(guī)則機(jī)構(gòu);(i)記錄機(jī)構(gòu);(j)內(nèi)務(wù)機(jī)構(gòu);(k)管理機(jī)構(gòu);(l)安全機(jī)構(gòu);(m)加密機(jī)構(gòu)。盡管是逐個(gè)列舉的,應(yīng)當(dāng)明白,這些機(jī)構(gòu)可以單獨(dú)地、以一種或多種組合形式或者以其它方式實(shí)現(xiàn),這些都不偏離本發(fā)明的原則。
受托資源各機(jī)構(gòu)可以以不同方式實(shí)現(xiàn)。各機(jī)構(gòu)一般是以在一個(gè)或多個(gè)計(jì)算設(shè)備(例如個(gè)人電腦、工作站或服務(wù)器計(jì)算機(jī))上/之間運(yùn)行的軟件的形式實(shí)現(xiàn)的,每個(gè)計(jì)算設(shè)備通常一以選定的組合一包含操作系統(tǒng)(例如Unix、Linux、Windows NT或其它)、通信堆棧、通信硬件、處理器和其它邏輯硬件、存儲(chǔ)系統(tǒng)(例如一個(gè)或多個(gè)高速緩沖存儲(chǔ)器、動(dòng)態(tài)隨機(jī)存儲(chǔ)存儲(chǔ)器、海量存儲(chǔ)器、檔案庫(kù)存儲(chǔ)器和其它)。如果以軟件的形式實(shí)現(xiàn),應(yīng)當(dāng)明白,任何一個(gè)或多個(gè)受托資源的機(jī)構(gòu)都能以面向?qū)ο蟮能浖绦蛑械囊粋€(gè)集成軟件對(duì)象或一系列分立軟件對(duì)象的形式,或者以單一的集成軟件程序的形式,或者以其它形式實(shí)現(xiàn)。類似地,可以實(shí)現(xiàn)資源機(jī)構(gòu)的任何組合,來(lái)共享軟件對(duì)象、模塊或其它軟件部件。此外,應(yīng)當(dāng)明白,任何一個(gè)或多個(gè)受托資源的機(jī)構(gòu),都能全部地、部分地或冗余地以帶有或不帶有軟件部件的硬件(例如包括以固件的形式)實(shí)現(xiàn)。就此而言,如上文對(duì)受托資源概括說(shuō)明的那樣,任何機(jī)構(gòu)都能在計(jì)算環(huán)境中的或與計(jì)算環(huán)境相關(guān)聯(lián)的一個(gè)物理位置中/處或多個(gè)物理位置之間實(shí)現(xiàn)。
接收機(jī)構(gòu)使受托資源能在計(jì)算環(huán)境中接收-特別是接收與起源資源相關(guān)聯(lián)的軟件代理。起源資源在這種情況中通常被允許利用受托資源的服務(wù)-這種服務(wù)需要付費(fèi)、價(jià)值轉(zhuǎn)移或其它考慮,或者不需要付費(fèi)、價(jià)值轉(zhuǎn)移或其它考慮。(以下有時(shí)將這樣被允許利用受托資源的服務(wù)的起源資源稱為已經(jīng)“預(yù)訂過(guò)”、有“預(yù)訂”及其某個(gè)同義詞;類似地,有預(yù)訂的起源資源有時(shí)被稱為“預(yù)訂起源資源”,相關(guān)的軟件代理有時(shí)被稱為“預(yù)訂代理”)。
軟件代理因各種目的-包括因各種驗(yàn)證目的-而被啟動(dòng)到計(jì)算環(huán)境中。由于受托資源可以接收與其驗(yàn)證服務(wù)無(wú)關(guān)的代理,TR的接收機(jī)構(gòu)最好包含一個(gè)過(guò)濾程序部件,該過(guò)濾程序部件通過(guò)分析(對(duì)應(yīng)某驗(yàn)證使能標(biāo)志的)代理的配置和/或規(guī)格(例如)來(lái)確定哪些被接收的代理是預(yù)訂的。盡管可以執(zhí)行一個(gè)過(guò)濾程序,應(yīng)當(dāng)明白,尤其例如如果受托資源在計(jì)算環(huán)境中的實(shí)現(xiàn)是僅僅為了接收預(yù)訂代理時(shí),是不需要執(zhí)行過(guò)濾程序的。
接收機(jī)構(gòu)最好也被賦予一能判定某代理是(例如從起源資源)新接收的還是(例如從目的地資源)返回的-的功能。接收機(jī)構(gòu)例如通過(guò)設(shè)置/重新設(shè)置代理中的或與該代理相關(guān)的接收標(biāo)志來(lái)表示其對(duì)該代理的判定。
轉(zhuǎn)發(fā)機(jī)構(gòu)使受托資源能在計(jì)算環(huán)境中通信。特別地,它使軟件代理能從受托資源開(kāi)始遍歷。這種遍歷一般最終要去往一個(gè)或多個(gè)適當(dāng)?shù)哪康牡刭Y源或起源資源。為此,轉(zhuǎn)發(fā)機(jī)構(gòu)最好以符合適用協(xié)議的方式運(yùn)行。
轉(zhuǎn)發(fā)機(jī)構(gòu)可以以各種方式實(shí)現(xiàn)。例如,轉(zhuǎn)發(fā)機(jī)構(gòu)能被實(shí)現(xiàn)用來(lái)轉(zhuǎn)發(fā)所接收代理的一個(gè)副本,以便使指紋獲取和/或比較機(jī)構(gòu)能與轉(zhuǎn)發(fā)并行地進(jìn)行。此外,轉(zhuǎn)發(fā)機(jī)構(gòu)還能被實(shí)現(xiàn)用來(lái)支持多個(gè)目的地資源、多個(gè)起源資源、和補(bǔ)充的、冗余的或其它額外的受托資源的一個(gè)或多個(gè)。
指紋獲取機(jī)構(gòu)獲取代理的指紋。指紋獲取機(jī)構(gòu)能用各種技術(shù)實(shí)現(xiàn)。在任何實(shí)現(xiàn)中,該技術(shù)最好提供在代理與代理之間實(shí)際上是獨(dú)特的指紋。一例技術(shù)是單向散列函數(shù)(例如MD5)。單向散列函數(shù)用代理作為輸入,產(chǎn)生的散列簽名不僅是獨(dú)一無(wú)二的,也往往能防止反求工程。
指紋獲取機(jī)構(gòu)最好被實(shí)現(xiàn)用來(lái)根據(jù)軟件代理的固定信息印指紋。例如,指紋可以是基于地址信息(例如一個(gè)或多個(gè)起源、目的地和受托資源地址)和/或與代理相關(guān)聯(lián)的信息和托管任務(wù)(和/或其它基本的事務(wù)信息)。然而應(yīng)當(dāng)明白,機(jī)構(gòu)能被實(shí)現(xiàn)用來(lái)根據(jù)代理的可用信息-單獨(dú)的或與固定信息一起的-印指紋(參看本文關(guān)于軟件代理的固定和可變字段的討論)。(以下所述的TR規(guī)則最好不在獲取指紋時(shí)采用。)確實(shí),指紋可包括或者就是整個(gè)代理本身。
可以根據(jù)實(shí)現(xiàn)用一個(gè)或多個(gè)方法來(lái)觸發(fā)指紋獲取機(jī)構(gòu)。在一個(gè)實(shí)施例中,該機(jī)構(gòu)被接收機(jī)構(gòu)為選定的代理觸發(fā)。例如,接收機(jī)構(gòu)能被實(shí)現(xiàn)用來(lái)僅當(dāng)在接收機(jī)構(gòu)的過(guò)濾程序部件判定所接收代理是預(yù)訂的時(shí)觸發(fā)指紋獲取機(jī)構(gòu)。在另一個(gè)實(shí)施例中,該機(jī)構(gòu)被接收機(jī)構(gòu)為所有的代理觸發(fā)。在后一種情況中,如果受托資源預(yù)訂該代理以外的代理時(shí),指紋獲取機(jī)構(gòu)可以被實(shí)現(xiàn)用來(lái)判定或幫助判定所接收代理是否是預(yù)訂的。在其它實(shí)施例中,指紋獲取機(jī)構(gòu)是自觸發(fā)的,或者是由接收機(jī)構(gòu)以外的某個(gè)機(jī)構(gòu)觸發(fā)的。無(wú)論哪種情況,對(duì)至少選定代理的接收最好導(dǎo)致觸發(fā)指紋獲取機(jī)構(gòu)。
指紋存儲(chǔ)機(jī)構(gòu)實(shí)現(xiàn)指紋的存儲(chǔ)和檢索。該存儲(chǔ)機(jī)構(gòu)最好是用某個(gè)存儲(chǔ)系統(tǒng)(例如一個(gè)或多個(gè)高速緩沖存儲(chǔ)器、動(dòng)態(tài)隨機(jī)存儲(chǔ)存儲(chǔ)器、海量存儲(chǔ)器、檔案庫(kù)存儲(chǔ)器和其它-無(wú)論是集中式的還是分布式的)來(lái)實(shí)現(xiàn)。該存儲(chǔ)機(jī)構(gòu)最好也包括控制部件。在典型的實(shí)施例中,控制部件便于將所獲取指紋例如以指紋文件或指紋數(shù)據(jù)庫(kù)中條目的形式存儲(chǔ)在存儲(chǔ)系統(tǒng)的預(yù)定存儲(chǔ)單元中,或者從存儲(chǔ)系統(tǒng)檢索指紋。在一個(gè)例子中,指紋存儲(chǔ)機(jī)構(gòu)被實(shí)現(xiàn)用來(lái)根據(jù)其進(jìn)行的或(例如與印指紋并行的)其它機(jī)構(gòu)進(jìn)行的預(yù)訂判定,只存儲(chǔ)與預(yù)訂代理對(duì)應(yīng)的那些指紋。
可以根據(jù)實(shí)現(xiàn),用一個(gè)或多個(gè)方法來(lái)觸發(fā)指紋存儲(chǔ)機(jī)構(gòu)。在一個(gè)實(shí)施例中,該機(jī)構(gòu)被接收機(jī)構(gòu)為選定的代理觸發(fā)。例如,接收機(jī)構(gòu)能被實(shí)現(xiàn)用來(lái)僅當(dāng)在接收機(jī)構(gòu)的過(guò)濾程序部件判定所接收代理是預(yù)訂的時(shí)觸發(fā)指紋存儲(chǔ)機(jī)構(gòu)。在另一個(gè)實(shí)施例中,該機(jī)構(gòu)被接收機(jī)構(gòu)為所有的代理觸發(fā)。在這后一種情況中,如果受托資源預(yù)訂代理以外的代理時(shí),指紋存儲(chǔ)機(jī)構(gòu)可以被實(shí)現(xiàn)用來(lái)判定或幫助判定所接收代理是否是預(yù)訂的。在另一個(gè)實(shí)施例中,指紋存儲(chǔ)機(jī)構(gòu)被指紋獲取機(jī)構(gòu)為所接收的代理觸發(fā)。在這后一種實(shí)施例中,指紋存儲(chǔ)機(jī)構(gòu)可被實(shí)現(xiàn)用來(lái)根據(jù)其進(jìn)行的或其它機(jī)構(gòu)進(jìn)行的預(yù)訂判定,只存儲(chǔ)與預(yù)訂代理對(duì)應(yīng)的那些指紋。
指紋比較機(jī)構(gòu)對(duì)所獲取的軟件代理的指紋進(jìn)行比較,以便確定可能說(shuō)明有潛在破壞的差異或其它不正常。在典型的實(shí)施例中,該比較機(jī)構(gòu)將(a)以前獲取的在受托資源處返回的某軟件代理的指紋與(b)指紋獲取機(jī)構(gòu)新獲取的該代理的當(dāng)前指紋進(jìn)行比較。
然而應(yīng)當(dāng)認(rèn)識(shí)到,在其它實(shí)施例中,獲取和比較的時(shí)間特征(例如上述的“以前獲取的”、“當(dāng)前的”)可能是基本上或完全不適用的。特別地,設(shè)想某軟件代理要接受與至少兩個(gè)驗(yàn)證事件有關(guān)的驗(yàn)證操作第一個(gè)驗(yàn)證事件依賴于代理的沒(méi)有與執(zhí)行任務(wù)的資源的任何交互的狀態(tài),第二個(gè)驗(yàn)證事件依賴于代理的必須與執(zhí)行任務(wù)的資源的任何交互的狀態(tài)。在按照本發(fā)明的某些實(shí)施例中,這兩個(gè)驗(yàn)證事件可能完全或基本上沒(méi)有時(shí)間差別。
驗(yàn)證回復(fù)機(jī)構(gòu)生成驗(yàn)證通知、報(bào)告或其它有關(guān)代理及其活動(dòng)的驗(yàn)證的回復(fù)(以下單個(gè)地或總地稱為“驗(yàn)證回復(fù)”)。驗(yàn)證回復(fù)機(jī)構(gòu)可以不同方式實(shí)現(xiàn)。例如,驗(yàn)證回復(fù)機(jī)構(gòu)可被實(shí)現(xiàn)用來(lái)將選定的驗(yàn)證回復(fù)傳送給特定的資源。此外,驗(yàn)證回復(fù)機(jī)構(gòu)能被實(shí)現(xiàn)用來(lái)通過(guò)原始代理的返回來(lái)如此地傳送回復(fù),或者由獨(dú)立于原始代理的回復(fù)來(lái)如此地傳送回復(fù),或是以其它方式來(lái)如此地傳送回復(fù)。就第一種情況而言,驗(yàn)證回復(fù)機(jī)構(gòu)最好生成回復(fù),并向轉(zhuǎn)發(fā)機(jī)構(gòu)提供該回復(fù)。就第一種情況而言,驗(yàn)證回復(fù)機(jī)構(gòu)最好支持下列的任何驗(yàn)證或多種組合(a)生成并啟動(dòng)其自己的回復(fù)承載代理,這種啟動(dòng)最好由轉(zhuǎn)發(fā)機(jī)構(gòu)或者與轉(zhuǎn)發(fā)機(jī)構(gòu)協(xié)作進(jìn)行;(b)生成并發(fā)送某個(gè)非代理消息(c)其它解決方案。
此外,按照本發(fā)明,驗(yàn)證回復(fù)能被以各種方式配置。例如,驗(yàn)證回復(fù)可包含一個(gè)根據(jù)是否檢測(cè)到破壞(例如任務(wù)是否成功地完成)而置位或復(fù)位的驗(yàn)證標(biāo)志。再例如,驗(yàn)證回復(fù)可包含關(guān)于在受托資源處進(jìn)行的任何驗(yàn)證操作的結(jié)果的消息內(nèi)容。再例如,驗(yàn)證回復(fù)可包含部分的或全部的關(guān)于代理的活動(dòng)的信息或代理的活動(dòng)的結(jié)果,或這種信息或結(jié)果的表示(例如由受托資源的執(zhí)行而收集的或產(chǎn)生的信息)。再例如,驗(yàn)證回復(fù)可包含旨在使得能進(jìn)行或支持校正行動(dòng)的信息或指示。應(yīng)當(dāng)明白,驗(yàn)證回復(fù)可包含以上的組合,或者以上任何一項(xiàng)或多項(xiàng)與其它回復(fù)的組合。
驗(yàn)證回復(fù)一般被傳送到起源資源。然而,驗(yàn)證回復(fù)也能被傳送到目的地資源以及其它受托資源。更確切地說(shuō),驗(yàn)證回復(fù)被傳送到那些與該代理及其活動(dòng)有關(guān)的資源。一般來(lái)說(shuō),如果某代理在某時(shí)刻被委托以與某起源資源有關(guān)的任務(wù)及相關(guān)的信息,則該代理是與該起源資源有關(guān)的。
驗(yàn)證回復(fù)機(jī)構(gòu)能根據(jù)實(shí)現(xiàn)被用一種或多種方法觸發(fā)。在一個(gè)實(shí)施例中,驗(yàn)證回復(fù)機(jī)構(gòu)被指紋比較機(jī)構(gòu)觸發(fā),無(wú)論指紋的比較是否產(chǎn)生不正常,驗(yàn)證回復(fù)都被傳送。
定時(shí)器機(jī)構(gòu)包含定時(shí)器部件和監(jiān)控部件。在典型的實(shí)施例中,定時(shí)器部件記錄從發(fā)生一個(gè)或多個(gè)選定的第一類定時(shí)器到發(fā)生一個(gè)或多個(gè)選定的第一類定時(shí)器期間所消逝的時(shí)間,這種第一和第二類定時(shí)器事件可以完全相同、完全不同或是部分相同。這種定時(shí)器事件一般反映軟件代理、其信息和任務(wù)、和/或起源或目的地資源。
監(jiān)控部件最好監(jiān)控相關(guān)定時(shí)器部件的消逝時(shí)間。例如,監(jiān)控部件可被實(shí)現(xiàn)用來(lái)監(jiān)控相關(guān)定時(shí)器的超過(guò)預(yù)訂的最大時(shí)段的消逝時(shí)間(該時(shí)段有時(shí)被稱為“超時(shí)時(shí)段”,該定時(shí)器事件有時(shí)被稱為“超時(shí)”)。此外,當(dāng)超時(shí)時(shí),監(jiān)控部件的反應(yīng)最好是產(chǎn)生一個(gè)超時(shí)消息,該消息最好有反映該情形的內(nèi)容和參數(shù)(例如代理、其信息和任務(wù)、和/或起源或目的地資源)。在一個(gè)實(shí)施例中,監(jiān)控部件的超時(shí)消息包含(a)時(shí)間標(biāo)志,(b)代理的原始指紋和/或其它選定的標(biāo)識(shí)軟件代理的信息,(c)其它信息,例如關(guān)于計(jì)算環(huán)境的狀態(tài)的信息,關(guān)于該代理的目的地資源的任何新聞,或其它。在這個(gè)和其它實(shí)施例中,超時(shí)消息最好包含足夠的信息和指示,以便于能采取校正或其它適當(dāng)?shù)男袆?dòng)。
超時(shí)消息最好被傳送給驗(yàn)證回復(fù)機(jī)構(gòu),該回復(fù)機(jī)構(gòu)對(duì)此的反應(yīng)是生成并傳送適當(dāng)?shù)尿?yàn)證回復(fù)。這樣,任何特定超時(shí)消息都被告知該消息與之相關(guān)的一個(gè)或多個(gè)資源。例如在典型的實(shí)施例中,如果軟件代理在超時(shí)時(shí)段內(nèi)未能從與目的地資源的交互中返回驗(yàn)證回復(fù)就被傳送到起源資源;超時(shí)時(shí)段是從預(yù)定事件開(kāi)始計(jì)量的,這種預(yù)定事件例如包含該軟件代理首次在受托資源處被接收/被受托資源接收。撇開(kāi)本例,繼續(xù)前面的說(shuō)明,應(yīng)當(dāng)明白,因上述或其它超時(shí)消息產(chǎn)生的相應(yīng)的驗(yàn)證回復(fù)能被傳送到任何資源,包括目的地資源、其它受托資源或受托資源的其它部分。
定時(shí)器和監(jiān)控部件根據(jù)實(shí)現(xiàn)能被用一種或多種方法觸發(fā)。在一個(gè)實(shí)施例中,定時(shí)器部件因接收機(jī)構(gòu)對(duì)代理(例如預(yù)訂代理)是新接收的或是返回的的判定而被激活。在另一個(gè)實(shí)施例中,定時(shí)器部件因轉(zhuǎn)發(fā)機(jī)構(gòu)將接收的代理例如向到目的地資源的傳送而被激活。
在任何實(shí)施例中,定時(shí)器部件最好支持被去激活。例如在這后一個(gè)實(shí)施例中,如果某第一代理或其它代理在超時(shí)之前到達(dá),則將與該代理相關(guān)聯(lián)的定時(shí)器部件去激活。該定時(shí)器部件最好在如果該代理及其到達(dá)都正確時(shí)被去激活。
就是說(shuō),去激活一般意味著判定某代理已經(jīng)正確地返回到受托資源,這種判定可以由接收機(jī)構(gòu)(例如在確定某個(gè)代理返回事件時(shí))完成,可以由指紋獲取機(jī)構(gòu)(例如在成功獲取代理的當(dāng)前指紋時(shí))完成,可以由指紋存儲(chǔ)機(jī)構(gòu)(例如在成功提取以前存儲(chǔ)的代理的指紋時(shí))完成,或者以其它方式完成。在任何這種實(shí)施例中,恰當(dāng)?shù)赜|發(fā)和控制相關(guān)的監(jiān)控部件是可取的。
規(guī)則機(jī)構(gòu)執(zhí)行受托資源規(guī)則(有時(shí)稱作“TR規(guī)則”)。例如,TR規(guī)則出自起源資源,在受托資源處通過(guò)與起源資源有關(guān)的軟件代理被提供,這種提供最好發(fā)生在軟件代理首次與受托資源交互時(shí)。再例如,TR規(guī)則可出自受托資源自身。在后一個(gè)例子中,TR規(guī)則可以根據(jù)下列而被建立(a)所接收的軟件代理的信息和/或任務(wù),(b)以前由起源資源對(duì)TR的服務(wù)的使用,(c)其它輸入、配置(d)(a)-(c)的組合或其它。
規(guī)則機(jī)構(gòu)可以以各種方式實(shí)現(xiàn),以執(zhí)行TR規(guī)則。例如它能(a)由于與軟件代理與受托資源的首次交互而執(zhí)行TR規(guī)則,或者(b)在代理從目的地資源返回時(shí)而執(zhí)行TR規(guī)則,或者(c)兼有這兩種情況。此外,它還能用軟件代理的固定或可變信息、其它信息或它們的組合來(lái)執(zhí)行TR規(guī)則。
TR規(guī)則便于能實(shí)現(xiàn)選定的操作。這些操作例如包括(a)保證TR規(guī)則本身不受破壞的操作,(b)檢查軟件代理中例如可變信息的破壞情況的操作。就后者而言,在一個(gè)實(shí)施例中,TR規(guī)則被實(shí)現(xiàn)用來(lái)規(guī)定適用于可變信息的數(shù)據(jù)約束(例如范圍、類型等等),以便在代理返回到受托服務(wù)器時(shí),執(zhí)行TR規(guī)則,對(duì)照這類約束檢查實(shí)際的變量信息。
TR規(guī)則最好是計(jì)算環(huán)境的選定部分不能訪問(wèn)的。舉一個(gè)典型的例子,最好將由某OR啟動(dòng)的、具有出自該OR的TR規(guī)則的預(yù)訂軟件代理配置、規(guī)定或處理得使得這類規(guī)則不能在/被目的地資源訪問(wèn)。在這種例子中,這種不可訪問(wèn)性最好在/由受托資源實(shí)現(xiàn)。受托資源最好通過(guò)剝離、屏蔽、編碼、加密或其它適當(dāng)?shù)奶幚硎筎R規(guī)則變得不可訪問(wèn)。這樣做是為了保護(hù)規(guī)則,避免對(duì)規(guī)則的不當(dāng)操作和防止用規(guī)則來(lái)破壞托管任務(wù)和相關(guān)信息(例如在根據(jù)規(guī)則確定給定的可變字段的允許值或狀態(tài)的基礎(chǔ)上進(jìn)行的破壞)。簡(jiǎn)而言之,將TR規(guī)則和相關(guān)信息變得不可使用,有助于防止(以及確定)對(duì)代理及其活動(dòng)的破壞。
記錄機(jī)構(gòu)記錄有關(guān)與某軟件代理相聯(lián)系而發(fā)生的所有或選定事件的信息。為此,記錄機(jī)構(gòu)最好(a)將事件信息保存在例如單獨(dú)的日志中,代理的指紋文件或數(shù)據(jù)庫(kù)中,其它有關(guān)代理信息的數(shù)據(jù)庫(kù)中;(b)提供當(dāng)前的或保存的事件信息用于例如跟蹤軟件代理的歷史活動(dòng);和/或(c)根據(jù)選定標(biāo)準(zhǔn)處理事件信息,以便提供例如關(guān)于一個(gè)代理或關(guān)于各代理分組或各類代理的報(bào)告。例如,記錄機(jī)構(gòu)能被實(shí)現(xiàn)用來(lái)記錄包含-或者經(jīng)處理后能提供關(guān)于-給定代理類型被使用的頻率、總體的代理業(yè)務(wù)量和(總體的或按類別或其它的)歷史返回時(shí)間-的事件信息。除了其它目的,記錄機(jī)構(gòu)最好也被實(shí)現(xiàn)用來(lái)向內(nèi)務(wù)和管理機(jī)構(gòu)提供輸入。
內(nèi)務(wù)機(jī)構(gòu)負(fù)責(zé)維護(hù)受托資源中包含的各種機(jī)構(gòu)和部件,以及支持驗(yàn)證服務(wù)的其它類似功能部件。例如,內(nèi)務(wù)機(jī)構(gòu)最好被實(shí)現(xiàn)用來(lái)根據(jù)預(yù)定的因素(例如驗(yàn)證服務(wù)完成或停滯),全部地或部分地刪除指紋項(xiàng)、記錄、文件、數(shù)據(jù)庫(kù)和其它存儲(chǔ)的信息。再例如,內(nèi)務(wù)機(jī)構(gòu)被實(shí)現(xiàn)用來(lái)根據(jù)預(yù)定的因素(例如為了將信息轉(zhuǎn)移到不活動(dòng)的代理的文件,以便該信息能在不時(shí)對(duì)文件內(nèi)容進(jìn)行的報(bào)告中得到考慮),全部地或部分地更新指紋項(xiàng)、記錄、文件、數(shù)據(jù)庫(kù)和其它存儲(chǔ)的信息。再例如,內(nèi)務(wù)機(jī)構(gòu)被實(shí)現(xiàn)用來(lái)-例如根據(jù)給定代理類型的歷史返回時(shí)間(這種信息一般是由記錄機(jī)構(gòu)提供的)和/或根據(jù)其它參數(shù)(諸如目的地資源或目的地資源類型和/或代理活動(dòng)時(shí)所在的時(shí)間或日期范圍(即時(shí)刻、星期幾或日期)-修改定時(shí)器機(jī)構(gòu)所采用的超時(shí)時(shí)段。
管理機(jī)構(gòu)負(fù)責(zé)管理對(duì)驗(yàn)證服務(wù)來(lái)說(shuō)是外部的功能部件。例如管理機(jī)構(gòu)最好被實(shí)現(xiàn)用來(lái)負(fù)責(zé)開(kāi)發(fā)票和記帳。就開(kāi)發(fā)票而言,管理機(jī)構(gòu)能以各種方式實(shí)現(xiàn)。舉例來(lái)說(shuō),對(duì)驗(yàn)證服務(wù)的使用,可以(通過(guò)起源資源)收取費(fèi)用,這種費(fèi)用是根據(jù)以下的一個(gè)或多個(gè)標(biāo)準(zhǔn)制定的(ⅰ)按代理(ⅱ)按目的地資源,(ⅲ)按代理的類型或性質(zhì),(ⅳ)按起源資源的類型或性質(zhì),(ⅴ)按目的地資源的類型或性質(zhì),(ⅵ)TR規(guī)則的類型或性質(zhì),(ⅶ)其它標(biāo)準(zhǔn)-單獨(dú)的或者與一個(gè)或多個(gè)上述標(biāo)準(zhǔn)組合的。管理機(jī)構(gòu)一般從記錄機(jī)構(gòu)獲得至少一部分有關(guān)開(kāi)發(fā)票的信息。
再例如,管理機(jī)構(gòu)最好被實(shí)現(xiàn)用來(lái)提供評(píng)估描述計(jì)算環(huán)境的特點(diǎn)的各種性能統(tǒng)計(jì)或其它參數(shù)的服務(wù)。為此,最好使管理機(jī)構(gòu)能從預(yù)訂起源資源(或者至少?gòu)哪切┻x擇使用任何這種評(píng)估服務(wù)的起源資源)接收輸入,這種輸入例如包括感興趣的統(tǒng)計(jì)/參數(shù)的標(biāo)識(shí)和對(duì)完成/報(bào)告評(píng)估結(jié)果的任何限制或選擇。舉例來(lái)說(shuō),管理機(jī)構(gòu)能被實(shí)現(xiàn)用來(lái)標(biāo)識(shí)和跟蹤可能與受托資源的驗(yàn)證服務(wù)競(jìng)爭(zhēng)或替代受托資源的驗(yàn)證服務(wù)的其它以驗(yàn)證為導(dǎo)向的服務(wù)產(chǎn)品。為此,管理機(jī)構(gòu)可以限制與競(jìng)爭(zhēng)/替代服務(wù)產(chǎn)品交互的代理的選定的工作特性(例如使用)。再舉例來(lái)說(shuō),管理機(jī)構(gòu)能被實(shí)現(xiàn)用來(lái)評(píng)估計(jì)算環(huán)境的負(fù)荷。為此,起源資源的輸入可包含一個(gè)請(qǐng)求,例如根據(jù)一個(gè)或多個(gè)主要負(fù)荷量,請(qǐng)求對(duì)其一個(gè)或多個(gè)代理從受托資源開(kāi)始的(例如到目的地資源或起源資源的)遍歷延遲或加速或定時(shí),以及請(qǐng)求關(guān)于遍歷的狀態(tài)的進(jìn)展報(bào)告(例如,起源資源可選擇不要進(jìn)展報(bào)告,或者可選擇有關(guān)于延遲的報(bào)告和/或關(guān)于遍歷起始的報(bào)告)。
安全機(jī)構(gòu)負(fù)責(zé)保護(hù)計(jì)算環(huán)境的選定部分不受破壞。安全機(jī)構(gòu)可以以各種方式實(shí)現(xiàn)。例如,安全機(jī)構(gòu)能被實(shí)現(xiàn)用來(lái)處理所接收的代理,以保護(hù)軟件代理、起源資源、目的地資源和受托資源的一個(gè)或多個(gè)不遭受代理本身中潛在的破壞影響-不管是何來(lái)源(例如使用計(jì)算環(huán)境時(shí)附隨的來(lái)源)。為此,一般使安全機(jī)構(gòu)能去除、停用或以其它方式無(wú)效所接收的可能被破壞或破壞性的代理的部分或全部。這種機(jī)構(gòu)最好包括監(jiān)控固件和/或其它硬件,用來(lái)標(biāo)識(shí)代理和其它可能遭破壞的有可能能執(zhí)行的代碼。
再例如,安全機(jī)構(gòu)能被實(shí)現(xiàn)得使受托資源能只執(zhí)行特定的過(guò)程或過(guò)程的集合,這些過(guò)程是由被處理信息、由過(guò)程中的步驟或步驟的組合、由它們生成的結(jié)果或者由其它方式標(biāo)識(shí)的。這種不可破壞的系統(tǒng)例如包括基于功能的系統(tǒng)或體系結(jié)構(gòu)。據(jù)此,為每個(gè)任務(wù)分配一個(gè)標(biāo)記(或其它標(biāo)識(shí)符),只有被適當(dāng)標(biāo)記的任務(wù)才是可執(zhí)行的。關(guān)于基于功能的系統(tǒng)的另外信息可參考M.V.Welbey和R.M.Needham的劍橋CAP計(jì)算機(jī)及其操作系統(tǒng)(操作系統(tǒng)和程序設(shè)計(jì)系統(tǒng)叢書,P.J.Denning編輯,1979,紐約,North Holl and出版),本文引用作為參考。
安全機(jī)構(gòu)可以全部地、部分地或冗余地以硬件(包括以固件的形式)實(shí)現(xiàn),以便使該機(jī)構(gòu)本身完全或基本上是不可破壞的。在該實(shí)現(xiàn)中,最好將其它受托資源及其軟件部件(例如操作系統(tǒng)和通信堆棧)也全部地、部分地或冗余地以硬件(包括以固件的形式)實(shí)現(xiàn)。這樣實(shí)現(xiàn)這些機(jī)構(gòu)(和部件),使(a)受托資源的運(yùn)行能得到基本不受破壞的保護(hù),并且/或者(b)受托資源的所牽涉的機(jī)構(gòu)能不時(shí)地被與例如固件副本比較,使得如果發(fā)現(xiàn)任何破壞,可以實(shí)行校正措施。通常的校正措施包括修改軟件,修改方法例如是重新加載對(duì)象、刪除外加的代碼、引用代碼比較和校正算法或類似的例程和/或其它常規(guī)方法,不管是自動(dòng)執(zhí)行的還是由人工(例如由系統(tǒng)操作員)啟動(dòng)的。
加密機(jī)構(gòu)負(fù)責(zé)加密和解密軟件代理的全部或局部、驗(yàn)證回復(fù)和受托資源所接收或要從受托資源傳遞的其它相關(guān)消息。加密機(jī)構(gòu)能以各種方式實(shí)現(xiàn)。例如,加密機(jī)構(gòu)能用公共密鑰加密加證書來(lái)實(shí)現(xiàn)。如此實(shí)現(xiàn)的加密機(jī)構(gòu)有助于避免計(jì)算環(huán)境中往往固有的各種風(fēng)險(xiǎn),包括(a)中間體為獲得敏感或秘密信息而截獲通信(經(jīng)常稱為“竊聽(tīng)”)的風(fēng)險(xiǎn);(b)因中間體改變通信中的信息/任務(wù)而破壞(經(jīng)常稱為“操縱”)的風(fēng)險(xiǎn);(c)起源資源或目的地資源不真實(shí)(經(jīng)常稱“假冒”)的風(fēng)險(xiǎn)。然而任何加密機(jī)構(gòu)一般都不能在軟件代理從資源被傳遞之前或在軟件代理在資源被接收之后(即加密之前和解密之后)的所有時(shí)間有效地保護(hù)軟件代理。
受托資源最好被實(shí)現(xiàn)用于在所有的或選定的這些機(jī)構(gòu)之間進(jìn)行操作協(xié)調(diào)。這種協(xié)調(diào),根據(jù)各機(jī)構(gòu)的相應(yīng)的實(shí)現(xiàn),能產(chǎn)生各機(jī)構(gòu)之間并行的、順序的、或其它操作。例如在一個(gè)典型實(shí)施例中,將存儲(chǔ)機(jī)構(gòu)與指紋獲取和比較機(jī)構(gòu)協(xié)同使用指紋獲取機(jī)構(gòu)獲取新到達(dá)的代理的指紋后,存儲(chǔ)機(jī)構(gòu)(例如在受托資源的存儲(chǔ)系統(tǒng)中)存儲(chǔ)該指紋,這樣,當(dāng)代理返回到受托資源時(shí),存儲(chǔ)機(jī)構(gòu)能檢索出以前獲取的指紋,提供給比較機(jī)構(gòu),比較機(jī)構(gòu)則將以前獲取的指紋與代理的當(dāng)前指紋比較,這種當(dāng)前指紋是由指紋獲取機(jī)構(gòu)在預(yù)期例如為驗(yàn)證代理而比較時(shí)獲取的。
也是在這個(gè)典型設(shè)施例中,指紋比較機(jī)構(gòu)觸發(fā)驗(yàn)證回復(fù)機(jī)構(gòu)生成驗(yàn)證回復(fù)。最好不管比較結(jié)果是否檢測(cè)出破壞,都提供這種觸發(fā)和生成。然而,如果檢測(cè)到破壞,指紋比較機(jī)構(gòu)最好向驗(yàn)證回復(fù)機(jī)構(gòu)提供信息。最好使驗(yàn)證回復(fù)機(jī)構(gòu)能用這種信息來(lái)生成通知這種破壞的驗(yàn)證回復(fù),也使得能采取校正行動(dòng)。比較機(jī)構(gòu)的信息中例如可包括每個(gè)被比較指紋以及與該指紋的差異。驗(yàn)證回復(fù)可包括所提供的形式的這些信息或者處理過(guò)的形式的這些信息(例如建議采取校正行動(dòng))。驗(yàn)證回復(fù)也可包括其它信息,例如消逝的時(shí)間和任何超時(shí)、(例如以地址為形式的)目的地資源和受托資源可能了解到的關(guān)于代理或關(guān)于破壞的任何其它信息。
另外在這個(gè)典型實(shí)施例中,驗(yàn)證回復(fù)機(jī)構(gòu)一般與轉(zhuǎn)發(fā)機(jī)構(gòu)協(xié)調(diào),以便將回復(fù)傳送給與驗(yàn)證相關(guān)的起源資源。這種傳送一般是通過(guò)將回復(fù)作為被驗(yàn)證代理的一部分傳遞而完成的,這種代理本身是由轉(zhuǎn)發(fā)機(jī)構(gòu)傳遞的。為此,設(shè)想由加密機(jī)構(gòu)對(duì)攜帶回復(fù)的代理進(jìn)行處理,以便保護(hù)代理在向起源資源的移轉(zhuǎn)的過(guò)程中不遭受破壞性影響。為此,也設(shè)想例如由安全機(jī)構(gòu)對(duì)代理進(jìn)行處理,例如通過(guò)去除、停用或以其它方式無(wú)效代理的可能遭到破壞的或破壞性的任何部分或全部,以便保護(hù)驗(yàn)證回復(fù)、軟件代理、起源資源和受托資源的一個(gè)或多個(gè)不遭受返回代理本身潛在有的破壞性影響。
在這個(gè)典型實(shí)施例中,采用定時(shí)器機(jī)構(gòu)的定時(shí)器和監(jiān)控部件。定時(shí)器部件一般是由于軟件代理首次到達(dá)受托資源(例如當(dāng)代理的狀態(tài)沒(méi)有與目的地資源的任何交互時(shí))而被激活的。舉例來(lái)說(shuō),最好根據(jù)代理向目的地資源的傳遞來(lái)激活定時(shí)器部件。
隨著定時(shí)器部件的激活,最好激活至少一個(gè)監(jiān)控部件,以便監(jiān)控該定時(shí)器部件。例如,激活監(jiān)控部件來(lái)監(jiān)控軟件代理從目的地資源的及時(shí)和正確返回這種監(jiān)控最好是對(duì)照預(yù)定的返回超時(shí)時(shí)段進(jìn)行的。這樣,如果代理沒(méi)能在返回超時(shí)發(fā)生時(shí)正確地返回,監(jiān)控部件就生成超時(shí)消息,該消息通過(guò)與具體情況相稱的內(nèi)容和參數(shù)指出該返回超時(shí)事件。超時(shí)消息一般在傳遞驗(yàn)證回復(fù)時(shí)被使用。
在關(guān)于協(xié)調(diào)的其它示意例子中(a)存儲(chǔ)機(jī)構(gòu)與內(nèi)務(wù)機(jī)構(gòu)協(xié)調(diào),以便清除陳舊的指紋,(b)記錄機(jī)構(gòu)最好被實(shí)現(xiàn)用來(lái)(除其它用途外)向內(nèi)務(wù)機(jī)構(gòu)和管理機(jī)構(gòu)提供輸入,以便后兩個(gè)機(jī)構(gòu)有使它們能分別設(shè)置/更新超時(shí)時(shí)段和計(jì)算發(fā)票的信息。
本發(fā)明的軟件代理被實(shí)現(xiàn)用來(lái)啟用采用本發(fā)明的裝置及方法的驗(yàn)證。任何這種代理最好有一個(gè)或多個(gè)固定的和可變的字段。固定字段一般支持地址、規(guī)則、數(shù)據(jù)、代碼、安全協(xié)議或其它固定信息(不管代理被委托要完成的是什么任務(wù)都不改變或不應(yīng)當(dāng)改變的數(shù)據(jù))。例如,固定字段地址可包括起源、目的地和受托資源的地址,這種地址是與計(jì)算環(huán)境相稱的。通過(guò)這些地址,軟件代理適當(dāng)?shù)厥褂糜?jì)算環(huán)境,以便往返于OR、DR和TR之間。
可變字段通常支持操作標(biāo)志(例如新/舊標(biāo)志)、時(shí)間標(biāo)志(例如接收、轉(zhuǎn)發(fā)和/或返回的時(shí)間/日期)、規(guī)則、數(shù)據(jù)(例如驗(yàn)證回復(fù)數(shù)據(jù))、與任務(wù)有關(guān)的信息、與任務(wù)有關(guān)的代碼或者其它可變信息??勺冃畔⒁话惆梢皂憫?yīng)或由于代理的活動(dòng)而在可允許限度內(nèi)改變的信息。這種活動(dòng)例如包括一個(gè)或多個(gè)代理到達(dá)DR、代理完成托管任務(wù)或代理(從OR或DR)到達(dá)TR。盡管可變信息可以改變,這種改變一般受一定的、可允許限度的限制。
按照本發(fā)明的代理最好也支持TR規(guī)則。TR規(guī)則通常啟用選定的操作。這些操作例如包括保證TR規(guī)則本身不被破壞和/或查驗(yàn)可變信息的適當(dāng)修改。對(duì)于后一種情況來(lái)說(shuō),在一個(gè)實(shí)施例中,TR規(guī)則被實(shí)現(xiàn)用來(lái)規(guī)定適用于可變信息的數(shù)據(jù)約束(例如范圍、類型等等),以便在代理返回到受托服務(wù)器時(shí),這些TR規(guī)則被執(zhí)行用來(lái)對(duì)照這些約束校核實(shí)際的可變信息。
通過(guò)其字段,軟件代理含有信息和托管任務(wù)。任何托管任務(wù)一般都以代碼的形式包含在固定字段中,在目的地資源或由于目的地資源而被執(zhí)行。這種執(zhí)行通常導(dǎo)致一個(gè)或多個(gè)可變字段的內(nèi)容的變化。例如,執(zhí)行代碼可修改選定的信息或者向代理添加新數(shù)據(jù),包括從目的地資源獲得的或與目的地資源相關(guān)聯(lián)的數(shù)據(jù)。執(zhí)行代碼也依賴軟件代理中含有的關(guān)聯(lián)信息。這種關(guān)聯(lián)信息一般也以數(shù)據(jù)的形式包含在固定字段中。然而,這種信息可以相反地(或者也)包含在可變字段中。
按照本發(fā)明的軟件代理能被實(shí)現(xiàn)用來(lái)完成一個(gè)以上的任務(wù)和/或與一個(gè)以上的目的地資源交互。相應(yīng)地,代理的轉(zhuǎn)發(fā)能以各種方式完成。例如,軟件代理有與之關(guān)聯(lián)的任務(wù)T1、T2、T3和T4,每個(gè)分別要在目的地資源DR1、DR2、DR3和DR4被執(zhí)行。在一個(gè)實(shí)現(xiàn)中,受托資源TR1將代理的副本并行地轉(zhuǎn)發(fā)到這些目的地資源的每一個(gè)。在另一個(gè)實(shí)施例中,受托資源TR1將代理順序地轉(zhuǎn)發(fā)到這些目的地資源的每一個(gè),這樣各任務(wù)或者以預(yù)定順序被執(zhí)行,或者根據(jù)資源的可用性而被執(zhí)行。在另一個(gè)實(shí)施例中,受托資源TR1綜合并行和順序轉(zhuǎn)發(fā)。
驗(yàn)證具有多個(gè)任務(wù)和/或目的地資源的代理中所涉及的受托資源,就驗(yàn)證操作來(lái)說(shuō)可以以各種方式實(shí)現(xiàn)。例如,管理在目的地資源處的任務(wù)的順序執(zhí)行的受托資源可以被實(shí)現(xiàn)得能(通過(guò)驗(yàn)證回復(fù))發(fā)出關(guān)于-(a)在任何任務(wù)都與失敗的驗(yàn)證相關(guān)聯(lián)時(shí)的整個(gè)序列、(b)與失敗的驗(yàn)證相關(guān)聯(lián)的順序任務(wù)或(c)與失敗的驗(yàn)證相關(guān)聯(lián)的順序任務(wù)以及序列中隨后的所有任務(wù)-的破壞的信號(hào)。再例如,管理在目的地資源處的任務(wù)的并行執(zhí)行的受托資源可以被實(shí)現(xiàn)得能發(fā)出關(guān)于-(a)只是與失敗的驗(yàn)證相關(guān)聯(lián)的那些任務(wù)或(b)在任何任務(wù)都與失敗的驗(yàn)證相關(guān)聯(lián)時(shí)的所有任務(wù)-的破壞的信號(hào)。
特別在涉及與多個(gè)任務(wù)和/或目的地資源相關(guān)聯(lián)的代理的實(shí)施例中,可以使用多個(gè)受托資源。這種使用一般可以通過(guò)對(duì)代理的適當(dāng)配置(例如通過(guò)啟用多個(gè)TR和/或多個(gè)TR的地址的標(biāo)志)和/或?qū)Υ眍A(yù)訂的受托資源的適當(dāng)配置來(lái)實(shí)現(xiàn)。例如,如果代理只預(yù)訂一個(gè)受托資源TR1,該被預(yù)訂資源本身能使用一個(gè)或多個(gè)額外的插入的(interposed)受托資源。為此,TR1一般自己修改代理的受托資源地址信息,以便將代理傳遞給例如每個(gè)這種無(wú)論為并行的、順序的還是其它方式的執(zhí)行而插入的資源。在這個(gè)例子中,代理一般將設(shè)置過(guò)表示啟用多個(gè)TR的標(biāo)志,不過(guò)應(yīng)當(dāng)明白,這種標(biāo)志可以省略,這并不偏離本發(fā)明的原則。
插入的受托資源的使用一般對(duì)由預(yù)訂受托資源對(duì)代理的TR規(guī)則的處理有意義。如前文所述,預(yù)訂受托資源一般被實(shí)現(xiàn)用來(lái)履行代理的TR規(guī)則。為此,要使預(yù)訂受托資源能得到TR規(guī)則。于是,如果插入的受托資源要使用TR規(guī)則,則最好提供對(duì)這種資源的使用。因此,預(yù)訂受托資源最好不要從代理剝離TR規(guī)則。盡管剝離一般是不可取的,應(yīng)當(dāng)明白,在特定的情形中(例如TR規(guī)則是在插入的TR處本地提供的或者TR規(guī)則最終在預(yù)訂TR處執(zhí)行的),可以實(shí)行對(duì)TR規(guī)則的剝離。類似地,對(duì)于在預(yù)訂受托資源處提供的TR規(guī)則的屏蔽、編碼、加密或其它處理來(lái)說(shuō),如果插入的受托資源要執(zhí)行TR規(guī)則,最好使這種資源能去屏蔽、解碼、(例如用公用密鑰技術(shù))解密或進(jìn)行其它方式的反向處理。此外,即使如果任何插入的受托資源的作用是保護(hù)TR規(guī)則的,預(yù)訂和插入的受托資源也最好要協(xié)調(diào),以便預(yù)訂受托資源保持使用權(quán)。
在代理支持多個(gè)任務(wù)的任何情形中,受托資源能被實(shí)現(xiàn)用來(lái)在有任務(wù)與驗(yàn)證失敗相關(guān)聯(lián)時(shí)終止、暫?;蛞云渌绞酵S闷溆嗟娜蝿?wù)。在停用的情況中,最好使受托資源能嘗試對(duì)代理破壞的校正。這種校正一般根據(jù)的是代理的相關(guān)TR指紋文件。此外,如果如此實(shí)現(xiàn)的話,這種校正可以根據(jù)例如來(lái)自所牽涉的起源資源的額外輸入進(jìn)行,這種輸入一般是因傳送到起源資源的有關(guān)驗(yàn)證失敗的驗(yàn)證回復(fù)而產(chǎn)生的。如果校正完成,受托資源最好通知所牽涉的起源資源OS并啟用以前被停用的其余任務(wù)。
所以,本發(fā)明設(shè)想使用多個(gè)受托資源,由此在各受托資源之間驗(yàn)證操作的協(xié)作和(例如動(dòng)態(tài)地)擴(kuò)散(spreading)基礎(chǔ)上使對(duì)代理及代理活動(dòng)的驗(yàn)證高效而富有成果。
參看圖1,所示的實(shí)現(xiàn)本發(fā)明的裝置和方法的系統(tǒng)100包括起源站點(diǎn)102、受托站點(diǎn)104和目的地站點(diǎn)106,這些站點(diǎn)與計(jì)算環(huán)境108通信(最好是后者的一部分)。在計(jì)算環(huán)境108中,站點(diǎn)102、104和106通過(guò)通信路徑110通信。站點(diǎn)102、104和106分別對(duì)應(yīng)于起源資源、受托資源和目的地資源。計(jì)算環(huán)境108通常是因特網(wǎng)的一部分。(本文中分別稱起源資源、受托資源和目的地資源為“OS”、“TS”和“DS”)。
一般來(lái)說(shuō),受托站點(diǎn)104是一個(gè)與軟件一起起著服務(wù)器作用的計(jì)算設(shè)備或計(jì)算系統(tǒng)(兩個(gè)以上的計(jì)算設(shè)備)。如果計(jì)算環(huán)境108是因特網(wǎng),受托站點(diǎn)104就是因特網(wǎng)服務(wù)器。起源和目的地資源102和106可以是任何站點(diǎn),例如包括用戶家中的獨(dú)立的PC或者基于LAN的計(jì)算環(huán)境或任何其它能與環(huán)境108通信、以便將其連接到無(wú)關(guān)的計(jì)算機(jī)平臺(tái)、環(huán)境或其它裝置的本地化/封閉式計(jì)算環(huán)境中的節(jié)點(diǎn)。
參看圖2,所示的一例受托資源200包括處理器(“P”)202、通過(guò)連接206與處理器202相連的存儲(chǔ)系統(tǒng)(“存儲(chǔ)器”)204。處理器可以是任何數(shù)字處理設(shè)備,包括但不限于英特爾公司、摩托羅拉公司、德州儀器公司、IBM、AMD、Cyrix或任何其它數(shù)字處理設(shè)備制造商所制造的微處理器、微控制器等等。受托站點(diǎn)200也可以包括各種外圍設(shè)備,包括但不限于打印機(jī)、顯示終端、電池后備設(shè)備和電源調(diào)節(jié)設(shè)備。
受托服務(wù)器200也包括軟件212。該軟件最好駐留在存儲(chǔ)系統(tǒng)204中。軟件212包括操作系統(tǒng)218,它可以是能夠執(zhí)行用來(lái)啟動(dòng)受托服務(wù)器200所要求的必要任務(wù)的指令的任何操作系統(tǒng)。合適的操作系統(tǒng)包括但不限于視窗操作系統(tǒng)、基于UNIX的操作系統(tǒng)或任何其它操作系統(tǒng)。
軟件212也包括用于驗(yàn)證軟件代理和它們的活動(dòng)的軟件代理驗(yàn)證系統(tǒng)220。軟件代理212也能包括用于保護(hù)TS不受病毒或其它破壞性軟件機(jī)構(gòu)的侵害的安全系統(tǒng)222。要認(rèn)識(shí)到,該安全機(jī)構(gòu)可以與驗(yàn)證系統(tǒng)集成在一起,這并不偏離本發(fā)明的原則。
TS 200也包括輸入端224和輸出端230。輸入端224(通過(guò)連接226)與處理器202相連并且(通過(guò)路徑228)與環(huán)境108相連。輸出端230(通過(guò)連接232)與處理器202相連并且(通過(guò)路徑234)與環(huán)境108相連。
現(xiàn)在參看圖3,流程圖300給出用于實(shí)現(xiàn)受托服務(wù)器200上的驗(yàn)證系統(tǒng)220的一組最佳步驟。流程圖300包括名義上的起始步驟302,它一般在系統(tǒng)啟動(dòng)時(shí)被啟動(dòng)。在記錄更新步驟304中,使驗(yàn)證系統(tǒng)220能在記錄文件中記錄所有的軟件代理活動(dòng)。當(dāng)軟件代理被傳送到受托服務(wù)器200時(shí),驗(yàn)證系統(tǒng)220在接收步驟306中接收該軟件代理,并且,為了維護(hù)TS的完整性,在步驟308中可選地進(jìn)行對(duì)代理的安全檢查。
驗(yàn)證軟件被接收并被可選地進(jìn)行安全測(cè)試后,就執(zhí)行(或保存)構(gòu)成代理的固定代碼部分的一部分的TR規(guī)則,并在步驟309中也剝離代理的TR規(guī)則(或以其它方式保護(hù)這種規(guī)則)。
在步驟310中,系統(tǒng)220打下代理的指紋印。
在步驟312中,驗(yàn)證軟件220為所接收的軟件代理激活返回定時(shí)器。系統(tǒng)220執(zhí)行一個(gè)檢查指紋文件中的代理的超時(shí)條件的超時(shí)步驟314。超時(shí)步驟314可位于如果并且在遇到超時(shí)條件時(shí)就激活的中斷例程中,但是也可是一個(gè)以某預(yù)定間隔在指紋文件中搜索超時(shí)條件的例程。如果遇到超時(shí)條件,控制就沿“是”分支316移轉(zhuǎn)到生成超時(shí)通知步驟318,然后移轉(zhuǎn)到發(fā)送通知步驟320。步驟318和320生成超時(shí)通知并發(fā)送到適當(dāng)?shù)馁Y源(例如起源站點(diǎn)102)。控制然后移轉(zhuǎn)回登錄更新步驟304,過(guò)程繼續(xù)監(jiān)控代理。
如果在步驟314中沒(méi)有遇到超時(shí)條件,控制就沿“否”分支322移轉(zhuǎn)到檢測(cè)所接收代理是否是“新的”的步驟324。如果代理是“新的”,控制就沿“是”分支326移轉(zhuǎn)到將代理的指紋存儲(chǔ)在例如指紋文件中的保存指紋步驟328。指紋存儲(chǔ)之后,系統(tǒng)220執(zhí)行將代理的返回定時(shí)器轉(zhuǎn)為開(kāi)(ON)狀態(tài)的設(shè)置定時(shí)器步驟330。下一步,“是”分支326執(zhí)行設(shè)置舊的步驟332,該步驟將代理添加信息,使系統(tǒng)220將能夠在代理返回到系統(tǒng)使將代理標(biāo)識(shí)為舊的代理。然后移轉(zhuǎn)到發(fā)送通知步驟320。設(shè)置舊的步驟332最好將代理中的標(biāo)志位從“關(guān)”(off)設(shè)置為“開(kāi)”(0→1或1→0)。(此外,該標(biāo)志可包括加密算法,諸如用來(lái)防衛(wèi)搗亂的鎖和密鑰。)“是”分支326然后在發(fā)送代理步驟334中將代理傳遞給其目的地。控制然后被移轉(zhuǎn)回更新記錄步驟304,過(guò)程繼續(xù)監(jiān)控代理。
在步驟324中,如果代理是“舊的”(即不是“新的”,例如因?yàn)橥ㄟ^(guò)以前在步驟332設(shè)置了舊的代理標(biāo)志),控制就被沿“否”分支336移轉(zhuǎn)到將代理返回定時(shí)器轉(zhuǎn)為“關(guān)”狀態(tài)的第二設(shè)置定時(shí)器步驟338?!胺瘛狈种?36執(zhí)行檢索原始指紋步驟340,檢索以前獲取/存儲(chǔ)的與代理相關(guān)聯(lián)的指紋,如果找到指紋,就提取原始代理指紋。然后在指紋比較步驟342將原始指紋與當(dāng)前指紋作比較。比較步驟342判定原始指紋中的信息是否充分地與信息返回指紋一致。
在步驟343中,對(duì)照返回的數(shù)據(jù)信息執(zhí)行TR規(guī)則。如果規(guī)則被滿足并且指紋比較得有利,則表明代理的任務(wù)已經(jīng)成功地完成。目的地站點(diǎn)最好已經(jīng)將完成信息寫入代理,以便指紋的比較和為檢查可變數(shù)據(jù)而對(duì)規(guī)則的執(zhí)行能確立代理的任務(wù)的成功完成。
假設(shè)代理被設(shè)計(jì)得從客戶銀行MYBANK的一個(gè)帳戶向另一個(gè)帳戶轉(zhuǎn)移一定的款額。代理要有TS地址、MYBANK地址、帳號(hào)和要轉(zhuǎn)移的金額。當(dāng)代理到達(dá)TS時(shí),TS驗(yàn)證系統(tǒng)創(chuàng)建一個(gè)含有代理的獨(dú)有標(biāo)識(shí)符并存儲(chǔ)交易信息的文件。目的地站點(diǎn)最好設(shè)計(jì)有軟件,用來(lái)在將代理發(fā)送回TS供驗(yàn)證之前向軟件代理寫入由目的地站點(diǎn)所執(zhí)行的交易的記錄。當(dāng)代理返回時(shí),TS驗(yàn)證系統(tǒng)將原始交易信息與返回的代理中的交易信息作比較并與由目的地站點(diǎn)附加到代理的記錄信息作比較。
由于軟件代理的指紋、簽名、特征數(shù)據(jù)包含的幾乎都是代理的固定信息(即非可變字段或在軟件代理活動(dòng)期間不得修改的字段中的信息),TS上/中駐留的驗(yàn)證檢查算法將能夠查驗(yàn)代理的固定字段的任何部分中的錯(cuò)誤或偏差。此外,代理還可包括包含關(guān)于某些可變字段能以何種方式例如在/被目的地站點(diǎn)改變的可變字段。規(guī)則能告訴TS數(shù)據(jù)變量可取的允許范圍,能告訴TS代理能獲取什么類型的額外代碼,能告訴TS本應(yīng)從代理析取什么類型的代碼,或能告訴TS關(guān)于某些代理的可變字段能以何種方式被改變的相干信息。
在比較步驟342比較兩個(gè)代理指紋并判定比較結(jié)果之后,結(jié)果被傳送到規(guī)則檢查步驟343,后者的結(jié)果被傳送到生成信息步驟344,該步驟接納比較結(jié)果和檢查結(jié)果并生成適當(dāng)?shù)耐ㄖ?。如果比較和檢查表明沒(méi)有異常,生成消息步驟344就生成一個(gè)成功完成的消息或通知(及驗(yàn)證回復(fù))。如果比較和檢查表明沒(méi)有異常,生成消息步驟344就生成一個(gè)向例如起源站點(diǎn)告知異常的消息或通知。
成功完成的消息可包括關(guān)于代理的消息信息或者只包括代理標(biāo)識(shí)符,以便起源站點(diǎn)能更新其記錄。告知起源站點(diǎn)異常的消息最好含有起源站點(diǎn)立即采取校正行動(dòng)所必需的和充分的所有信息。這種信息可包括指紋以及驗(yàn)證系統(tǒng)所跟蹤記錄的所有定時(shí)信息。TS也可包括用于匯報(bào)專門負(fù)責(zé)處理這種異常的諸如銀行委員會(huì)、聯(lián)邦機(jī)構(gòu)、州立機(jī)構(gòu)之類的主管部門的例程。
生成適當(dāng)?shù)耐ㄖ?,“否”分?36能可選地將代理的指紋從指紋文件去除,將指紋轉(zhuǎn)移到不活動(dòng)的代理文件或?qū)Υ碜鳂?biāo)志,這樣,檢索步驟340將在文件檢索中忽略它;或相反,所有的都在修改文件步驟346中提供。然后,在發(fā)送通知步驟348中,通知被發(fā)送到例如起源站點(diǎn)??刂迫缓蟊灰妻D(zhuǎn)到更新記錄步驟304,過(guò)程繼續(xù)監(jiān)控代理。
應(yīng)當(dāng)認(rèn)識(shí)到,這些步驟許多都能被組合起來(lái)、變成全局性的或被共享。例如,發(fā)送和接收步驟可以組合起來(lái)。此外,可以將程序流重新設(shè)計(jì)和分割成被調(diào)用或觸發(fā)的和在執(zhí)行期間交換信息的分立的對(duì)象或模塊。在任何情形中,流程圖300的主要操作被充分地和有效地實(shí)現(xiàn)。
轉(zhuǎn)至圖4,該圖表示了按照本發(fā)明的一例軟件代理的配置。代理的例子400包括固定字段410和可變字段450。固定字段410包括地址字段412。在這個(gè)示意例中,地址字段412包括起源站點(diǎn)地址字段414、受托站點(diǎn)地址字段416和目的地站點(diǎn)地址字段418。固定字段410也包括規(guī)則字段426。可變字段450包括新/舊標(biāo)志452、規(guī)則字段454、結(jié)果字段456、可變的軟件代理可執(zhí)行代碼字段458和可變數(shù)據(jù)字段460。
安全字段422一般包含用于加強(qiáng)起源站點(diǎn)、受托站點(diǎn)、目的地站點(diǎn)、代理(例如新/舊標(biāo)志)或它們的任意組合的安全的信息/協(xié)議。例如,安全字段能準(zhǔn)備加密或不加密的鎖和密鑰協(xié)議。無(wú)論實(shí)行什么安全協(xié)議,起源站點(diǎn)、受托站點(diǎn)和目的地站點(diǎn)都分別有適當(dāng)?shù)?、用于?shí)現(xiàn)安全協(xié)議(例如用于對(duì)代理或其一部分進(jìn)行解鎖或解密)的駐留信息/代碼站點(diǎn)。
盡管結(jié)合若干個(gè)實(shí)施例公開(kāi)了本發(fā)明,應(yīng)當(dāng)明白,本領(lǐng)域的熟練人員通過(guò)閱讀本說(shuō)明會(huì)知道,可以作出不偏離上述的和后文要求權(quán)利的本發(fā)明的范圍和精神的改變和修改。
權(quán)利要求
1.一種計(jì)算環(huán)境,包含一個(gè)能創(chuàng)建和發(fā)送軟件代理400的起源站點(diǎn)102;一個(gè)能接收、執(zhí)行和返回軟件代理400的目的地站點(diǎn)106;一個(gè)在其上實(shí)現(xiàn)有軟件的受托站點(diǎn)104,用于從起源站點(diǎn)102接收軟件代理400,打下軟件代理400的指紋印,向目的地站點(diǎn)106轉(zhuǎn)發(fā)代理400,比較原始的和返回軟件代理的指紋和向原始站點(diǎn)102發(fā)送驗(yàn)證通知;一個(gè)開(kāi)放的通信網(wǎng)絡(luò)110,其中各站點(diǎn)通過(guò)該網(wǎng)絡(luò)互相通信。
2.權(quán)利要求1的環(huán)境,其中,網(wǎng)絡(luò)110是因特網(wǎng)。
3.權(quán)利要求1的環(huán)境,其中,網(wǎng)絡(luò)110用萬(wàn)維網(wǎng)協(xié)議操作。
4.權(quán)利要求1的環(huán)境,其中,指紋是單向散列函數(shù)。
5.權(quán)利要求1的環(huán)境,其中,軟件代理400包含多個(gè)固定字段410和多個(gè)可變字段450,和指紋包含基本上從固定字段410采集的信息。
6.權(quán)利要求5的環(huán)境,其中,固定字段包括一個(gè)規(guī)則集合,該規(guī)則集合使受托站點(diǎn)能查驗(yàn)可變信息已經(jīng)在目的地站點(diǎn)被適當(dāng)修改。
7.一種在分布式計(jì)算環(huán)境的受托站點(diǎn)上實(shí)現(xiàn)的方法,包含的步驟為從起源站點(diǎn)102接收軟件代理400;生成代理400的原始代理指紋;向目的地站點(diǎn)106傳遞代理400;接收從目的地站點(diǎn)106返回的代理400;生成代理400的回復(fù)代理指紋比較原始代理指紋與返回代理指紋;向原始站點(diǎn)102發(fā)送驗(yàn)證回復(fù)。
8.權(quán)利要求7的方法,進(jìn)一步包含的步驟為生成代理返回定時(shí)器;監(jiān)測(cè)代理的返回;如果代理返回定時(shí)器運(yùn)轉(zhuǎn),則向起源站點(diǎn)102發(fā)送超時(shí)通知;執(zhí)行被設(shè)計(jì)用來(lái)通知受托站點(diǎn)104正確處理可變代理信息的代理規(guī)則;在代理從目的地站點(diǎn)104返回后對(duì)照規(guī)則檢查可變代理信息;向起源站點(diǎn)102發(fā)送通知,使起源站點(diǎn)能判定可變信息是否作過(guò)適當(dāng)修改。
9.權(quán)利要求7的方法,其中,環(huán)境包括開(kāi)放式通信網(wǎng)絡(luò)110。
10.權(quán)利要求9的方法,其中,通信網(wǎng)絡(luò)110是因特網(wǎng)。
11.權(quán)利要求6的方法,其中,指紋是單向散列函數(shù)。
12.一種在分布式計(jì)算環(huán)境的受托站點(diǎn)上實(shí)現(xiàn)的方法,包含的步驟為從起源站點(diǎn)102接收軟件代理400;生成原始代理指紋;生成代理返回定時(shí)器;向目的地站點(diǎn)106發(fā)送代理;監(jiān)測(cè)代理的返回;如果代理返回定時(shí)器運(yùn)轉(zhuǎn),則向起源站點(diǎn)102發(fā)送超時(shí)通知;如果在代理返回定時(shí)器超時(shí)之前代理從目的地站點(diǎn)106返回,就生成返回代理指紋;比較原始與返回代理指紋以產(chǎn)生驗(yàn)證結(jié)果;向原始站點(diǎn)102發(fā)送驗(yàn)證結(jié)果。
13.權(quán)利要求12的方法,其中,生成代理指紋導(dǎo)致獲得使用代理400本身全部或部分。
14.權(quán)利要求12的方法,進(jìn)一步包含的步驟為記錄在其它步驟中開(kāi)始的活動(dòng)。
15.權(quán)利要求12的方法,其中,環(huán)境包括開(kāi)放式通信網(wǎng)絡(luò)110。
16.權(quán)利要求15的方法,其中,通信網(wǎng)絡(luò)110是因特網(wǎng)。
17.一種在受托站點(diǎn)的存儲(chǔ)器中實(shí)現(xiàn)的軟件代理,包含一個(gè)路由選擇字段的集合;一個(gè)被保存起來(lái)由受托站點(diǎn)在代理從目的地站點(diǎn)返回受托站點(diǎn)時(shí)執(zhí)行的固定規(guī)則的集合;一個(gè)被設(shè)計(jì)成在任務(wù)執(zhí)行期間保持不變的、包括固定數(shù)據(jù)和可執(zhí)行代碼的固定代碼字段;一個(gè)被設(shè)計(jì)成在任務(wù)執(zhí)行期間要被改變的、包括可變數(shù)據(jù)和可變可執(zhí)行代碼的可變代碼字段。
18.權(quán)利要求17的代理,進(jìn)一步包含一個(gè)用于標(biāo)識(shí)用戶站點(diǎn)和用于鎖定其它指定信息的安全字段。
19.權(quán)利要求17的代理,其中,規(guī)則的集合被設(shè)計(jì)得在代理返回到受托站點(diǎn)時(shí)通過(guò)將基于規(guī)則的信息與可變字段中的信息作比較來(lái)判定給定的代理任務(wù)是否被以預(yù)定方式執(zhí)行。
20.權(quán)利要求19的代理,基于規(guī)則的信息包括每個(gè)與代理相關(guān)聯(lián)的數(shù)據(jù)變量的值的可接受范圍。
全文摘要
本發(fā)明提供對(duì)軟件代理及其活動(dòng)的驗(yàn)證。在分布式計(jì)算環(huán)境中,提供起源資源、目的地資源和受托資源。代理的信息和/或托管任務(wù)與起源資源相關(guān)。目的地資源促進(jìn)代理執(zhí)行托管任務(wù)。受托資源驗(yàn)證軟件代理及其活動(dòng),例如支持:接收/傳遞軟件代理;加密/解密軟件代理;獲取、存儲(chǔ)、檢索和比較軟件代理指紋;執(zhí)行表明與目的地資源交互的合適性的TR規(guī)則;建立、設(shè)置、更新和檢查返回定時(shí)器;生成和傳遞與驗(yàn)證有關(guān)的驗(yàn)證回復(fù);登錄受托資源與之交互的軟件代理的活動(dòng);剝離、屏蔽或軟件代理的部分或全部,特別是TR規(guī)則。
文檔編號(hào)G06F21/22GK1298499SQ99805313
公開(kāi)日2001年6月6日 申請(qǐng)日期1999年11月29日 優(yōu)先權(quán)日1998年12月21日
發(fā)明者M·弗雷曼 申請(qǐng)人:皇家菲利浦電子有限公司