專利名稱:控制對(duì)系統(tǒng)資源的軟件訪問的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及控制用在計(jì)算機(jī)上運(yùn)行的軟件去訪問計(jì)算機(jī)資源的方法和設(shè)備。較具體地說,本發(fā)明涉及控制用從服務(wù)器計(jì)算機(jī)下載到客戶計(jì)算機(jī)上的軟件在客戶計(jì)算機(jī)上訪問系統(tǒng)的資源的方法和設(shè)備。
出現(xiàn)個(gè)人計(jì)算機(jī)以前,計(jì)算機(jī)用戶局限于利用典型地含有一個(gè)用于輸入數(shù)據(jù)和指令的鍵盤和一個(gè)用于觀看輸出的視頻顯示裝置(或打印機(jī))的終端,去操作在大型主機(jī)上運(yùn)行的軟件。盡管主機(jī)提供了十分有力的計(jì)算平臺(tái),但它們有嚴(yán)重的缺點(diǎn)。尤其是,主機(jī)的安裝和運(yùn)轉(zhuǎn)是昂貴的,而且它們需要所有用戶都通過終端直接與主機(jī)連接,這對(duì)許多人來(lái)說限制了他們對(duì)主機(jī)的訪問。此外,用戶在控制他們的計(jì)算環(huán)境方面的可能性是十分有限的,通常不得不讓他們的工作方式和問題去適應(yīng)主機(jī)的軟件和管理。
從1970年代末期開始,在個(gè)人、商務(wù)和科學(xué)應(yīng)用中個(gè)人計(jì)算機(jī)開始取代主機(jī)作為主要的計(jì)算平臺(tái)。對(duì)單個(gè)的用戶來(lái)說,個(gè)人計(jì)算機(jī)常常能提供與必須同時(shí)地應(yīng)付許多處理任務(wù)和老式主機(jī)相同的計(jì)算速度。此外,在個(gè)人計(jì)算機(jī)上運(yùn)行的軟件變得更為“用戶友好”,使計(jì)算機(jī)用戶可以讓計(jì)算機(jī)和軟件去適應(yīng)他們的特別計(jì)算要求。由于解除了終端對(duì)主機(jī)連接的必要性,個(gè)人計(jì)算機(jī)可以獨(dú)立地位于一個(gè)單位的任何地方或家庭中。由于個(gè)人計(jì)算機(jī)可以放在任何需要它的地方,進(jìn)一步確保了它們對(duì)主機(jī)的優(yōu)勢(shì)地位。用戶不再必須在大的、昂貴的、和苛求的主機(jī)計(jì)算中心去裁剪他們的任務(wù)。
隨著整個(gè)1980年代中個(gè)人計(jì)算機(jī)在計(jì)算能力和數(shù)據(jù)存儲(chǔ)容量的爆炸性發(fā)展,看來(lái)它們的統(tǒng)治地位已得到保證。然而,當(dāng)1980年代快結(jié)束時(shí),開始出現(xiàn)了一個(gè)新的現(xiàn)象,它看來(lái)可能會(huì)超越過去二十年來(lái)的個(gè)人計(jì)算機(jī)革命。現(xiàn)在,愈來(lái)愈多的個(gè)人計(jì)算機(jī)通過高速數(shù)據(jù)網(wǎng)絡(luò)被連接在一起。當(dāng)前最普及的網(wǎng)絡(luò)是“互連網(wǎng)(Internet)”,這是一種包括全球各種商務(wù)、學(xué)術(shù)和個(gè)人計(jì)算機(jī)網(wǎng)點(diǎn)的網(wǎng)絡(luò)。互連網(wǎng)的普及化,尤其是互連網(wǎng)的稱作“環(huán)球網(wǎng)(World Wide Web)”的特點(diǎn),已經(jīng)促使許多單位去構(gòu)筑通常被稱為“內(nèi)部網(wǎng)(intranet)”的內(nèi)部計(jì)算機(jī)網(wǎng)絡(luò)。這種網(wǎng)絡(luò)計(jì)算的好處得益于高速數(shù)據(jù)網(wǎng)絡(luò)和日益先進(jìn)的網(wǎng)絡(luò)服務(wù)器、路徑器以及其他能讓許多獨(dú)立的個(gè)人計(jì)算機(jī)有效地通信的裝置的結(jié)合。
和對(duì)個(gè)人計(jì)算機(jī)的崛起和超越主機(jī)起很大作用的因素一樣,環(huán)球網(wǎng)的吸引力部分地也起因于其高度的可視特性。典型地,環(huán)球網(wǎng)被組織成各種典型地包括一個(gè)向運(yùn)行“瀏覽者”的客戶計(jì)算機(jī)傳送數(shù)據(jù)的服務(wù)器的“網(wǎng)址”。瀏覽者是一個(gè)軟件,它向用戶提供一個(gè)窗口和各種控制,通過它們可以看到和引導(dǎo)來(lái)自服務(wù)器的數(shù)據(jù)。環(huán)球網(wǎng)數(shù)據(jù)的一個(gè)特別有用的特點(diǎn)是它具有通過超文本指令進(jìn)行連接的能力,使用戶可以從一個(gè)文件轉(zhuǎn)到另一個(gè)文件,甚至通過像操作鼠標(biāo)器按鈕這樣十分簡(jiǎn)單的直觀指令而從一個(gè)網(wǎng)址轉(zhuǎn)到另一個(gè)網(wǎng)址。利用環(huán)球網(wǎng)用戶可以觀看和/或下載來(lái)自全世界各地的文本、圖形和聽取來(lái)自全世界各地的聲音。此外,用戶還能夠下載新的軟件或者可以修改已經(jīng)安裝在客戶計(jì)算機(jī)中的程序的軟件。
互連網(wǎng)上環(huán)球網(wǎng)的用戶所能得到的這些特性同樣也可以通過“內(nèi)部網(wǎng)”提供給局域網(wǎng)的用戶,這種“內(nèi)部網(wǎng)”是一個(gè)包括了客戶計(jì)算機(jī)和連接在互連網(wǎng)上的服務(wù)器的非公眾計(jì)算機(jī)網(wǎng)絡(luò)。這種能力已受到許多單位的日益增漲的注意,因?yàn)閷?duì)雇員執(zhí)行他們?nèi)蝿?wù)有用的信息可以很快地分配給該單位內(nèi)網(wǎng)絡(luò)上的所有個(gè)人計(jì)算機(jī)。特別是,許多使用這種內(nèi)部網(wǎng)絡(luò)的單位利用內(nèi)部網(wǎng)絡(luò)向所有個(gè)人提供對(duì)數(shù)據(jù)庫(kù)的訪問和專用的軟件程序。例如,利用JavaTM編程語(yǔ)言(可從加里福尼亞州Palo Alto市的Sun Microsystems公司購(gòu)得)所編寫的專利軟件“小蘋果(applet)”可以與已經(jīng)安裝在遠(yuǎn)處計(jì)算機(jī)(它可以在內(nèi)部網(wǎng)外部,也可在內(nèi)部)上的軟件和數(shù)據(jù)結(jié)合操作,向用戶提供對(duì)專用于他們工作任務(wù)的數(shù)據(jù)和軟件的訪問,而不再會(huì)像傳統(tǒng)做法那樣因?yàn)橐獜?fù)制和保存許多專用軟件而帶來(lái)各種困難。
常常希望軟件能通過一個(gè)安全的內(nèi)部網(wǎng)絡(luò)分配,以使客戶計(jì)算機(jī)可以完全地訪問系統(tǒng)資源,然而在內(nèi)部系統(tǒng)外部的較不安全的網(wǎng)絡(luò)上分布的軟件卻一般不被允許或幾乎不被允許訪問系統(tǒng)資源,例如文件移位能力,因?yàn)檫@種軟件并不總是可信任的。例如,某些軟件應(yīng)用含有在主機(jī)上安裝計(jì)算機(jī)病毒的功能。另一些軟件應(yīng)用可能會(huì)從主機(jī)上拷貝、改變、刪除一些關(guān)鍵數(shù)據(jù),甚至偷偷地把這些數(shù)據(jù)傳送給另一個(gè)計(jì)算機(jī)系統(tǒng)。不幸的是,沒有一種可行的方法或設(shè)備能夠讓可信任的軟件去訪問某些資源,同時(shí)又限制另外的軟件不可以訪問這些資源。因此,用戶只剩下兩種選擇?;蛘咦屗熊浖?不論可信的或有懷疑的)訪問所有的系統(tǒng)資源,或者為了保證用戶系統(tǒng)的安全性而限制所有軟件的訪問。
這樣,如果能提供控制信息和軟件在網(wǎng)絡(luò)上對(duì)資源的訪問,使得上述出現(xiàn)在高度分散的計(jì)算機(jī)網(wǎng)絡(luò)上的問題能夠減輕的方法和系統(tǒng),則對(duì)計(jì)算機(jī)用戶來(lái)說,尤其是對(duì)許多用戶通過計(jì)算機(jī)網(wǎng)絡(luò)連接的單位中的計(jì)算機(jī)用戶來(lái)說,將是十分有益的。如將要說明的那樣,本發(fā)明能滿足這些要求和其他要求。
本發(fā)明在一個(gè)方面通過提供一種方法,系統(tǒng)和軟件來(lái)克服管理在入網(wǎng)的計(jì)算機(jī)之間分配軟件時(shí)所出現(xiàn)的上述困難,這種方法、系統(tǒng)和軟件通過作為客戶計(jì)算機(jī)的第一計(jì)算機(jī)上的選定的軟件應(yīng)用來(lái)控制對(duì)服務(wù)器資源的訪問,其中第一計(jì)算機(jī)在一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)上與一個(gè)作為服務(wù)器計(jì)算機(jī)的第二計(jì)算機(jī)相通信。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種控制在計(jì)算機(jī)上運(yùn)行的軟件程序?qū)Σ僮飨到y(tǒng)資源的訪問程度的方法。對(duì)操作系統(tǒng)資源的訪問程度是對(duì)軟件程序定義的,并且至少在該計(jì)算機(jī)上安裝有一個(gè)含有用來(lái)執(zhí)行該軟件程序的指令的文件。當(dāng)一個(gè)軟件程序?qū)⒁挥?jì)算機(jī)執(zhí)行時(shí),將審查該文件以確定該軟件程序可以具有的系統(tǒng)水平的訪問程度。該軟件程序被執(zhí)行,當(dāng)該軟件程序在計(jì)算機(jī)上執(zhí)行時(shí),請(qǐng)求訪問與該軟件程序相關(guān)的安全資源的程序指令將被截取。然后判斷該程序指令是否含有超出了該軟件程序可以具有的系統(tǒng)水平的訪問程度的操作,如果判定了該軟件程序被允許訪問與該計(jì)算機(jī)相關(guān)連的系統(tǒng)水平資源,并且它們位在該軟件可得到的系統(tǒng)水平訪問程度范圍內(nèi),則執(zhí)行該程序指令。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種控制在運(yùn)行一個(gè)操作系統(tǒng)的客戶計(jì)算機(jī)上運(yùn)行的軟件程序?qū)ο到y(tǒng)資源的訪問程度的方法,其中至少有一些操作系統(tǒng)資源被保存在與該客戶計(jì)算機(jī)相耦合的服務(wù)器計(jì)算機(jī)上。定義該軟件程序?qū)Σ僮飨到y(tǒng)資源的訪問程度,并且在客戶計(jì)算機(jī)上至少安裝一個(gè)含有用來(lái)執(zhí)行該軟件程序的指令的文件。當(dāng)該軟件程序?qū)⒈豢蛻粲?jì)算機(jī)執(zhí)行時(shí),該文件將被審查,以確定該軟件程序可得到的系統(tǒng)水平的訪問程度。當(dāng)該軟件程序在客戶計(jì)算機(jī)上運(yùn)行時(shí),與該軟件程序相關(guān)連的程序指令將被截取。判斷該程序指令是否含有超出了該軟件程序可得到的系統(tǒng)水平的訪問程度的操作,如果判定該軟件程序被允許訪問位在該軟件程序可得到的系統(tǒng)水平的訪問程度范圍之內(nèi)的系統(tǒng)水平資源,則執(zhí)行該程序指令。
當(dāng)結(jié)合附圖閱讀了下面的說明之后,本發(fā)明的這些和其他特點(diǎn)和優(yōu)點(diǎn)將變得清楚明白。
通過閱讀下面結(jié)合附圖所作的說明,可以最好地理解本發(fā)明和它的各種優(yōu)點(diǎn),在附圖中圖1a示出一個(gè)寬域計(jì)算機(jī)網(wǎng)絡(luò),其中用戶和內(nèi)部網(wǎng)都通過互連網(wǎng)上的一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)相耦合。
圖1b示出一個(gè)普通的內(nèi)部網(wǎng)系統(tǒng)。
圖2a示出根據(jù)本發(fā)明一個(gè)實(shí)施例的一組分級(jí)文件。
圖2b示出根據(jù)本發(fā)明一個(gè)實(shí)施例的一種檔案文件數(shù)據(jù)格式。
圖3a示出根據(jù)本發(fā)明一個(gè)實(shí)施例的客戶方目錄的結(jié)構(gòu)。
圖3b示出根據(jù)本發(fā)明一個(gè)實(shí)施例的客戶方構(gòu)形文件的結(jié)構(gòu)。
圖3c示出根據(jù)本發(fā)明一個(gè)實(shí)施例的客戶方訪問文件的結(jié)構(gòu)。
圖3d示出根據(jù)本發(fā)明一個(gè)實(shí)施例的客戶方組規(guī)范文件的結(jié)構(gòu)。
圖4是說明根據(jù)本發(fā)明一個(gè)實(shí)施例的執(zhí)行對(duì)資源的訪問請(qǐng)求的方法的流程圖。
圖5是說明根據(jù)本發(fā)明一個(gè)實(shí)施例的關(guān)于檢驗(yàn)分級(jí)文件有效性的步驟的流程圖。
圖6是說明根據(jù)本發(fā)明一個(gè)實(shí)施例的關(guān)于執(zhí)行“小蘋果(applet)”的步驟的流程圖。
圖7是說明根據(jù)本發(fā)明一個(gè)實(shí)施例的關(guān)于呼叫安全管理員的步驟的流程圖。
圖8示出根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)。
下面將參考
控制用“小蘋果”訪問系統(tǒng)資源的方法和設(shè)備的一些實(shí)施例。
圖1a示出了一個(gè)根據(jù)本發(fā)明的網(wǎng)絡(luò)。圖1a所示網(wǎng)絡(luò)中含有內(nèi)部網(wǎng)102和104以及一個(gè)個(gè)人的外部計(jì)算機(jī)106。下面將參考圖1b對(duì)內(nèi)部網(wǎng)102和104的結(jié)構(gòu)作較詳細(xì)的說明。各內(nèi)部網(wǎng)和用戶都通過各種計(jì)算機(jī)通路(“G/W”)連接到該計(jì)算機(jī)網(wǎng)絡(luò)上。在一些實(shí)施例中,該計(jì)算機(jī)網(wǎng)絡(luò)包括互連網(wǎng)。更仔細(xì)地參閱圖1a,內(nèi)部網(wǎng)102通過總的由108所代表的互連網(wǎng)與內(nèi)部網(wǎng)104和用戶106相耦合。內(nèi)部網(wǎng)102和互連網(wǎng)108之間的連接首先是通過一個(gè)與內(nèi)部網(wǎng)102和一個(gè)“干線”或高容量數(shù)據(jù)線112相耦合的通路110提供。來(lái)自高容量線112的數(shù)據(jù)通過通路114被導(dǎo)過互連網(wǎng)108,通過互連網(wǎng)108的數(shù)據(jù)再通過一個(gè)第二通路116進(jìn)入高容量數(shù)據(jù)線118。熟悉計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的人們可以看到,數(shù)據(jù)線118可以與數(shù)據(jù)線112相同,或者也可以是一個(gè)分開的干線,其上耦合有各個(gè)其他的個(gè)人或用戶和網(wǎng)絡(luò)。
從內(nèi)部網(wǎng)102經(jīng)過互連網(wǎng)108傳送到高速數(shù)據(jù)線118上的數(shù)據(jù)再通過通路120傳向內(nèi)部網(wǎng)104,或者通過通路124傳向用戶106。這樣,根據(jù)所示的實(shí)施例,數(shù)據(jù)可以在用戶106、內(nèi)部網(wǎng)104、和內(nèi)部網(wǎng)102之間傳送。特別是,如剛才所述,該數(shù)據(jù)可以通過互連網(wǎng)108傳送,或者也可以通過干線118在用戶106和內(nèi)部網(wǎng)104之間傳送。在某些實(shí)施例中,內(nèi)部網(wǎng)104和102可以通過本技術(shù)領(lǐng)域內(nèi)稱作為“特別網(wǎng)(extranet)”的網(wǎng)絡(luò)結(jié)構(gòu)直接耦合。特別網(wǎng)是這樣一種網(wǎng)絡(luò)布局,其中一個(gè)指定的網(wǎng)絡(luò)或個(gè)人通過一個(gè)專用的數(shù)據(jù)連接與遠(yuǎn)處網(wǎng)絡(luò)相耦合。這種連接可以是像圖1a所示那樣通過互連網(wǎng)來(lái)導(dǎo)引數(shù)據(jù),或者也可以是通過例如ISDN或T-1數(shù)據(jù)線進(jìn)行直接數(shù)據(jù)傳送。各種布局和建立這類布局的方法及材料對(duì)于熟悉計(jì)算機(jī)網(wǎng)絡(luò)和通信技術(shù)的人們來(lái)說是熟知的。
圖1a中的內(nèi)部網(wǎng)102和104的一個(gè)實(shí)施例示于圖1b(“50”)。典型的內(nèi)部網(wǎng)50含有一個(gè)與客戶計(jì)算機(jī)62和64相耦合的服務(wù)器60。此外,服務(wù)器60可以通過一個(gè)路徑器、分路器或類似的數(shù)據(jù)轉(zhuǎn)送裝置,例如圖中的節(jié)點(diǎn)68,與其他的客戶計(jì)算機(jī)如70、72、74相耦合。還有,遠(yuǎn)處客戶(未示出)也可以通過一個(gè)直接線路或者利用調(diào)制解調(diào)器之類的器件通過電話線路連接到服務(wù)器60上。在某些情形中,對(duì)內(nèi)部網(wǎng)50的訪問由圖中方框75所示的“防火墻”結(jié)構(gòu)而受到高度的控制。位在防火墻外部的用戶,例如遠(yuǎn)處客戶78,可以通過一個(gè)允許訪問被保護(hù)服務(wù)器的通路來(lái)建立通信。這樣的通路由“76”表示。
典型地,服務(wù)器或者直接地或者通過一個(gè)路徑器這樣的器件向與該服務(wù)器通信的各個(gè)客戶提供可訪問的數(shù)據(jù)和軟件。服務(wù)器、路徑器、和各種客戶機(jī)的設(shè)立、維護(hù)和操作是為熟悉本技術(shù)領(lǐng)域的人們所周知的。在一些特定的實(shí)施例中,服務(wù)器60的設(shè)計(jì)使它能提供與例如用來(lái)在環(huán)球網(wǎng)上觀看數(shù)據(jù)的瀏覽器軟件相兼容的數(shù)據(jù)。在一個(gè)實(shí)施例中,服務(wù)器和客戶機(jī)之間不僅能交換數(shù)據(jù),而且能交換具有“小蘋果(applet)”形式的計(jì)算機(jī)軟件,這種軟件例如是可以從加里福尼亞州Palo Alto市的Sun Microsystems公司購(gòu)得的用JavaTM編程語(yǔ)言所編寫的軟件。這里所使用的“小蘋果(applet)”是指這樣一些軟件程序,它們?cè)O(shè)計(jì)得準(zhǔn)備從一個(gè)資源計(jì)算機(jī)(典型地為一個(gè)服務(wù)器)傳送給客戶機(jī),并可與已經(jīng)安裝在客戶機(jī)中的軟件結(jié)合運(yùn)行。在一個(gè)實(shí)施例中,與小蘋果一起運(yùn)行的軟件是上述的瀏覽器軟件。典型地,小蘋果能通過執(zhí)行瀏覽器軟件自身不能執(zhí)行的各種計(jì)算工作而給瀏覽器軟件提供額外的功能。所以,下載了小蘋果的用戶能夠給瀏覽器軟件提供它本來(lái)不具有的額外功能。這種額外功能例如是對(duì)一個(gè)數(shù)據(jù)庫(kù)的專用界面。
一般,一個(gè)客戶機(jī),例如客戶機(jī)62,利用一個(gè)“用戶代理”或?yàn)g覽器進(jìn)入服務(wù)器60。這種用戶代理有可從加里福尼亞州Palo Alto市的SunMicrosystems公司購(gòu)得的Hot JavaTM和可從加里福尼亞州Mountain View市的Netscape Communications公司購(gòu)得的Netscape,但并不限于這兩種。在一個(gè)實(shí)施例中,用戶代理一般含有一個(gè)用來(lái)執(zhí)行小蘋果代碼的處理機(jī)和一個(gè)用來(lái)判斷某個(gè)小蘋果是否可訪問某些系統(tǒng)資源的“安全管理員”。下面將會(huì)給出這種安全管理員的一些例子。
根據(jù)一個(gè)實(shí)施例,一個(gè)或者位在互連網(wǎng)上或者位在內(nèi)部網(wǎng)內(nèi)的服務(wù)器提供含有一些定義了小蘋果的分級(jí)文件的一些分級(jí)圖書館。這種分級(jí)圖書館的一個(gè)例子是JavaTM分級(jí)圖書館。具體地,一個(gè)服務(wù)器可以含有一些構(gòu)成小蘋果的分級(jí)文件和一些含有對(duì)應(yīng)于該小蘋果的HTML碼的特定環(huán)球網(wǎng)網(wǎng)頁(yè)。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,小蘋果可以從由源計(jì)算機(jī)或服務(wù)器下載給客戶機(jī)的分級(jí)文件通過示例得到。各分級(jí)文件可以組合成一個(gè)檔案文件。另外,檔案文件可以用數(shù)字或其他方法予以標(biāo)記,使得能可靠地確定從檔案文件生成的小蘋果的來(lái)源。這樣可以通過確認(rèn)文件檔案的標(biāo)記以確定執(zhí)行小蘋果的計(jì)算機(jī)可以訪問哪些系統(tǒng)資源。采用標(biāo)記使得可以控制客戶機(jī)用小蘋果對(duì)系統(tǒng)資源的訪問,其方法例如是審查產(chǎn)生該小蘋果的服務(wù)器的安全狀態(tài)。舉例來(lái)說,由于各個(gè)客戶機(jī)上與同一個(gè)小蘋果相關(guān)的允許訪問程度可以不同,所以在一個(gè)客戶機(jī)上執(zhí)行的小蘋果和在另一個(gè)客戶機(jī)上執(zhí)行的同一小蘋果可能會(huì)有不同的訪問特權(quán)。因此,這種資源訪問控制使得在保密計(jì)算機(jī)上,例如與含有資源的計(jì)算機(jī)位于同一內(nèi)部網(wǎng)中的計(jì)算機(jī)上的小蘋果比在非保密計(jì)算機(jī)上,例如位于互連網(wǎng)中的計(jì)算機(jī)上的小蘋果能訪問更多的資源。
圖2a示出根據(jù)本發(fā)明一個(gè)實(shí)施例的一組分級(jí)文件。這組分級(jí)數(shù)據(jù)文件的組合格式通常用于服務(wù)器上,其布局不用于接受標(biāo)記。這就是說,每個(gè)分級(jí)文件典型地定義存儲(chǔ)在服務(wù)器上的一個(gè)級(jí)別。這個(gè)格式使得文件組可含有任意多個(gè)級(jí)別,例如級(jí)別“1”202、級(jí)別“2”204、和級(jí)別“N”206。一個(gè)級(jí)別可以被定義成一個(gè)軟件構(gòu)成,后者定義了數(shù)據(jù)和方法,或者一系列對(duì)該數(shù)據(jù)進(jìn)行操作的語(yǔ)句,它們對(duì)其后從該級(jí)別構(gòu)建出的任何小蘋果是專用的。換言之,如前所述,小蘋果可以通過示例一個(gè)以前定義了的級(jí)別來(lái)構(gòu)筑。應(yīng)該指出,一個(gè)級(jí)別可以用來(lái)構(gòu)筑許多小蘋果。
小蘋果的執(zhí)行通常需要訪問系統(tǒng)資源的請(qǐng)求或指令。雖然小蘋果可以含有訪問許多不同系統(tǒng)資源的指令,但由于安全方面的原因,在目前的設(shè)計(jì)的限制下,一個(gè)小蘋果或者被允許訪問所有規(guī)定的系統(tǒng)資源,或者不能訪問任何規(guī)定的系統(tǒng)資源。如上所述,這種對(duì)系統(tǒng)資源訪問的“要么全都可以--要么全都不可以”的方法在下述意義上常常是不希望的,即在一個(gè)內(nèi)部網(wǎng)系統(tǒng)中運(yùn)行的一個(gè)小蘋果例如由于它的來(lái)源已知而被當(dāng)作是“可信任的”,而在該內(nèi)部網(wǎng)的外部運(yùn)行的一個(gè)等價(jià)的小蘋果則被認(rèn)為是不安全的。對(duì)于在內(nèi)部網(wǎng)系統(tǒng)中運(yùn)行的小蘋果和在外部運(yùn)行的一個(gè)等價(jià)小蘋果被賦予相同系統(tǒng)資源訪問特權(quán)的情況,為了保證內(nèi)部網(wǎng)系統(tǒng)的安全,通常只好不賦予小蘋果訪問特權(quán)。
有選擇性地控制小蘋果對(duì)資源的訪問的能力使內(nèi)部網(wǎng)系統(tǒng)中的用戶對(duì)資源的訪問將根據(jù)各自的小蘋果受到限制。與在用于對(duì)小蘋果作出示例的各分級(jí)文件的同時(shí)包含“標(biāo)記”或識(shí)別符,是內(nèi)部網(wǎng)單位有選擇地控制小蘋果的一種方法,給分級(jí)文件以標(biāo)記(或“簽名”)可以確定這些分級(jí)文件的來(lái)源,這使得內(nèi)部網(wǎng)系統(tǒng)能夠確定與從這些分級(jí)文件所產(chǎn)生的小蘋果相對(duì)應(yīng)的適當(dāng)?shù)脑L問特權(quán)。此外,對(duì)分級(jí)文件作標(biāo)記還能夠判斷某個(gè)分級(jí)文件是否受到非法訪問。下面將參考圖2b說明允許對(duì)一組分級(jí)文件進(jìn)行數(shù)字標(biāo)記的檔案文件結(jié)構(gòu)。
通過提供一種可進(jìn)行數(shù)字標(biāo)記的檔案文件,便有可能使一個(gè)根據(jù)該檔案文件中的各分級(jí)文件所構(gòu)成的小蘋果可以訪問內(nèi)部網(wǎng)系統(tǒng)中的一些選定的系統(tǒng)資源,而不論該小蘋果是在內(nèi)部網(wǎng)系統(tǒng)內(nèi)還是在內(nèi)部網(wǎng)系統(tǒng)外運(yùn)行。通過審查檔案文件的數(shù)字標(biāo)記,有可能確定一個(gè)給定的小蘋果是否被非法使用,以及是哪些計(jì)算機(jī)給了該小蘋果以標(biāo)記。這樣,可以根據(jù)小蘋果是來(lái)自一個(gè)安全的或可信任的主機(jī)還是來(lái)自一個(gè)不安全的主機(jī),來(lái)指定訪問特權(quán)。此外,在某些實(shí)施例中,這種訪問特權(quán)的指定使用戶能夠判斷哪些主機(jī)是可信任的,哪些是不可信任的。
圖2b示出根據(jù)本發(fā)明一個(gè)實(shí)施例的檔案文件數(shù)據(jù)格式。該實(shí)施例中檔案格式是JavaTM檔案(JAR)格式。檔案或檔案文件210含有一個(gè)前端標(biāo)記212,這個(gè)標(biāo)記典型地被用戶代理用來(lái)驗(yàn)證檔案210的有效性,以及確定該檔案210可得到的訪問級(jí)別。一般,前端標(biāo)記212是一個(gè)數(shù)字標(biāo)記,它可以是整個(gè)前端部的一個(gè)部分,其中整個(gè)前端部還含有一些其他信息,例如關(guān)于檔案大小的信息。檔案210可以含有任何數(shù)目的有關(guān)級(jí)別,例如級(jí)別“1”202、級(jí)別“2”204和級(jí)別“N”206,小蘋果和相關(guān)的目標(biāo)即從這些級(jí)別示例產(chǎn)生。
此外,檔案210也可以含有一些有關(guān)的數(shù)據(jù)塊,例如數(shù)據(jù)塊214。數(shù)據(jù)塊214可以含有圖像、文本或任何被當(dāng)作是檔案210的一部分的數(shù)據(jù)。在一個(gè)實(shí)施例中,數(shù)據(jù)塊214含有一系列用來(lái)說明與該檔案210相關(guān)連的級(jí)別202、204和206的文本。應(yīng)該指出,在其他的實(shí)施例中檔案210可以不含有數(shù)據(jù)塊。
下面將參考圖3a說明根據(jù)本發(fā)明的關(guān)于客戶目錄結(jié)構(gòu)的一個(gè)實(shí)施例。一個(gè)通過客戶計(jì)算機(jī)請(qǐng)求訪問資源的用戶通常借助于用戶目錄302連接。用戶目錄302有一個(gè)相關(guān)連的瀏覽器或用戶代理瀏覽器可以是任意合適的瀏覽器,例如上述的Hot JavaTM瀏覽器。瀏覽器目錄304含有一個(gè)特性文件306,它適合于用戶所提的請(qǐng)示。典型地,特性文件306含有一些用戶喜愛項(xiàng)308,它們是由用戶提供的一般瀏覽器規(guī)范。這些規(guī)范可以包括,但并不局限于,關(guān)于瀏覽器的建立和與該瀏覽器相關(guān)連的行為特性的數(shù)據(jù)。
特性文件306還包含關(guān)于用戶所提的特定請(qǐng)求的信息。例如,這種信息可能含有圖像數(shù)據(jù)塊310,構(gòu)形文件名稱312、和組規(guī)范文件名稱314。在一個(gè)實(shí)施例中,圖像數(shù)據(jù)塊310含有一些數(shù)據(jù)文件名稱,即指明了與該請(qǐng)求相關(guān)連的任何圖像的數(shù)據(jù)中。構(gòu)形文件名稱312是一個(gè)指明了一個(gè)構(gòu)形文件的數(shù)據(jù)串,該構(gòu)形文件用來(lái)實(shí)現(xiàn)從被請(qǐng)求資源到相關(guān)安全說明符的映射。下面將參考圖3b說明構(gòu)形文件的一個(gè)例子。組規(guī)范(“spec”)文件名稱314是一個(gè)指明了一個(gè)組規(guī)范文件的數(shù)據(jù)串,下面將參考圖3c對(duì)此說明。
圖3b示出根據(jù)本發(fā)明一個(gè)實(shí)施例的構(gòu)形文件的結(jié)構(gòu)。構(gòu)形文件350是被上面參考圖3a所提到的由構(gòu)形文件名稱312所識(shí)別出的一個(gè)構(gòu)形文件的例子。構(gòu)形文件350含有一個(gè)把服務(wù)器上的各資源354(也即客戶機(jī)希望訪問的服務(wù)器上的資源)與各相應(yīng)的訪問文件名稱356聯(lián)系起來(lái)的表格352。這就是說,表格352把資源“列”354中的每個(gè)條目與訪問文件名稱“列”356中的對(duì)應(yīng)條目相聯(lián)系。資源354一般是指明各種系統(tǒng)資源,例如文件、主機(jī)和接口號(hào)碼的分級(jí)器。訪問文件名稱356指明對(duì)應(yīng)的訪問文件,它含有安全描述符和其他關(guān)于與訪問文件相關(guān)連的控制對(duì)系統(tǒng)資源的訪問的信息。下面將參考圖3c更詳細(xì)地說明訪問文件的結(jié)構(gòu)。應(yīng)該指出,由于可以有多于一個(gè)的資源354共用同一個(gè)安全描述符,所以訪問文件名稱,從而訪問文件,可以與多于一個(gè)的資源354相關(guān)連。
現(xiàn)在將參考圖3c說明根據(jù)本發(fā)明一個(gè)實(shí)施例的訪問文件的結(jié)構(gòu)。訪問文件360一般含有一個(gè)用來(lái)聯(lián)系各主體362和各種許可364的表格361。主體362可以是單個(gè)的主機(jī),也可以是主機(jī)組。例如,“java.com”可以是單個(gè)主機(jī)即服務(wù)器,它是一個(gè)主體362?;蛘?,“java.com”和“sun.com”可以構(gòu)成一個(gè)作為主機(jī)組的主機(jī)362。在某些實(shí)施例中,主體362也可以是一些特定檔案的標(biāo)記器。許可364提供對(duì)安全描述符的聚組。就是說,許可364是這樣的安全描述符聚組,它指定了與許可364相關(guān)連的主體362可訪問的資源。
圖3d示出根據(jù)本發(fā)明一個(gè)實(shí)施例的組規(guī)范(“spec”)文件格式。如上所述,圖3a中的組規(guī)范文件名稱314指明一個(gè)組規(guī)范文件,例如組規(guī)范文件370。組規(guī)范文件370含有一個(gè)聯(lián)系組名稱372和任意數(shù)目的組員374的表格371。組名稱372基本上是可以用來(lái)識(shí)別一組組員374的識(shí)別符。例如,組名稱組“1”372a可以與任意數(shù)目的組員,如組員“1”374a和組員“2”374b相關(guān)連。應(yīng)該指出,一個(gè)組員,例如組員“1”374a,可以與多于一個(gè)的組名稱372相關(guān)連。
圖4是一個(gè)處理流程圖,說明根據(jù)本發(fā)明的一個(gè)實(shí)施例的執(zhí)行請(qǐng)求訪問資源的方法。該處理從402開始,并在步驟404中由一個(gè)請(qǐng)求客戶,如圖1b中的客戶機(jī)74,向一個(gè)服務(wù)器,如圖1b中的服務(wù)器60,作出呼叫,以起動(dòng)下載如參考圖2a所說明的至少一個(gè)分級(jí)文件,或者如參考圖2b所說明的一個(gè)檔案文件,在響應(yīng)于通過一個(gè)用戶代理所作出的客戶呼叫時(shí),該請(qǐng)求被服務(wù)器接收,其中的用戶代理是一個(gè)瀏覽器,例如前述的Hot JavaTM瀏覽器或NetscapeNavigator瀏覽器。下載至少一個(gè)分級(jí)文件或檔案文件的起動(dòng)在響應(yīng)于一個(gè)要訪問資源的請(qǐng)示時(shí)鐘發(fā)生,因此它是一個(gè)要執(zhí)行小蘋果的呼叫。在一個(gè)優(yōu)選實(shí)施例中,檔案文件是一個(gè)JAR文件。
在步驟406中,檔案文件或者一些分級(jí)文件被從服務(wù)器安裝到與請(qǐng)求客戶相關(guān)連的存儲(chǔ)器中。一般,如果分級(jí)文件的級(jí)別不在檔案文件內(nèi),例如沒有數(shù)字標(biāo)記,則這些分級(jí)文件將被安裝;如果這些級(jí)別有數(shù)字標(biāo)記,則安裝一個(gè)檔案文件。應(yīng)該指出,該檔案文件含有相關(guān)連的分級(jí)文件。所以,安裝檔案文件也涉及安裝各個(gè)分級(jí)文件。各分級(jí)文件被安裝到存儲(chǔ)器中之后,在步驟408對(duì)安裝的文件進(jìn)行有效性處理。在安裝了檔案文件的情形中,該有效性處理包括檢驗(yàn)與安裝的檔案文件相關(guān)連的前端標(biāo)記是否有效的處理,下面將參考圖5對(duì)此說明。
有效性處理之后,在步驟410把分級(jí)文件轉(zhuǎn)換成一個(gè)小蘋果。也就是說,通過所安裝的分級(jí)文件的示例,在存儲(chǔ)器中生成一個(gè)小蘋果,其中的分級(jí)文件可以是,也可以不是JAR文件的一部分。一旦生成了小蘋果之后,在步驟412中執(zhí)行該小蘋果文件。下面將參考圖6說明與執(zhí)行小蘋果有關(guān)的各個(gè)步驟。
圖5是一個(gè)處理流程圖,說明根據(jù)本發(fā)明一個(gè)實(shí)施例的關(guān)于分級(jí)文件有效性處理,即圖4中的步驟408的處理步驟。該處理從502開始,并在步驟504中判斷被安裝的是檔案文件還是分級(jí)文件。如果安裝的是分級(jí)文件,則流程進(jìn)到步驟506,在那里進(jìn)行標(biāo)準(zhǔn)級(jí)別檢驗(yàn)。典型地,標(biāo)準(zhǔn)級(jí)別檢驗(yàn)包括檢驗(yàn)所有已安裝的分級(jí)文件,從而也檢驗(yàn)了它們的級(jí)別,以確定在這些分級(jí)文件中是否有任何內(nèi)容會(huì)危害安全性。在某些實(shí)施例中,將檢驗(yàn)一個(gè)虛擬計(jì)算機(jī),如JavaTM虛擬計(jì)算機(jī)的安全性是否會(huì)受到損害。標(biāo)準(zhǔn)級(jí)別檢驗(yàn)方法對(duì)于熟悉本領(lǐng)域普通技術(shù)的人們來(lái)說一般是周知的。進(jìn)行了這個(gè)標(biāo)準(zhǔn)級(jí)別檢驗(yàn)后,便在520完成了對(duì)分級(jí)文件的有效性處理。
如果在步驟504判定所安裝的是一個(gè)檔案文件,則在步驟508檢驗(yàn)或認(rèn)證該檔案文件的前端部的有效性。該檔案文件的有效性檢驗(yàn)一般涉及根據(jù)前端標(biāo)記來(lái)識(shí)別該檔案文件的來(lái)源。也就是說,進(jìn)行一個(gè)檢驗(yàn)以建立前端標(biāo)記的來(lái)源,從而確定該檔案文件的來(lái)源。有效性檢驗(yàn)也可以包括檢驗(yàn)與該檔案文件相關(guān)連的數(shù)據(jù)是否完整。應(yīng)該指出,在某些實(shí)施例中檔案文件可能沒有前端標(biāo)記。例如,一個(gè)內(nèi)部網(wǎng)內(nèi)的檔案文件可能沒有予以標(biāo)記。在步驟510,判斷該前端部是否有效。如果前端部無(wú)效,例如該檔案的內(nèi)容與標(biāo)記不對(duì)應(yīng),則在步驟514設(shè)置一個(gè)錯(cuò)誤旗標(biāo)之類的標(biāo)志。在一個(gè)實(shí)施例中,錯(cuò)誤旗標(biāo)可能造成異議。在另一個(gè)實(shí)施例中錯(cuò)誤旗標(biāo)可能造成向請(qǐng)求客戶返回一個(gè)消息。設(shè)置了錯(cuò)誤旗標(biāo)之后,分級(jí)文件有效性檢驗(yàn)處理于520結(jié)束。
如果在步驟510發(fā)現(xiàn)前端部是有效的,則處理從步驟510轉(zhuǎn)到步驟512,判斷在與檔案文件相關(guān)連的各級(jí)別中是否還有待檢驗(yàn)其有效性的級(jí)別。如果有這樣的級(jí)別,則在步驟516進(jìn)行標(biāo)準(zhǔn)級(jí)別檢驗(yàn)。與前面對(duì)步驟506的說明一樣,標(biāo)準(zhǔn)級(jí)別檢驗(yàn)包括檢驗(yàn)在某一給定的級(jí)別是否有任何內(nèi)容可能危害虛擬計(jì)算機(jī)的安全性。例如,如果一個(gè)給定級(jí)別中的某些內(nèi)容可以重寫虛擬計(jì)算機(jī)上的文件或者存儲(chǔ)器,則該虛擬計(jì)算機(jī)的安全性便可能被損害。完成了對(duì)給定級(jí)別的標(biāo)準(zhǔn)級(jí)別檢驗(yàn)之后,流程返回步驟512,判斷是否還有任何級(jí)別有待檢驗(yàn)。步驟512和516之間的循環(huán)一直進(jìn)行到在步驟512中判定不再剩有任何待檢驗(yàn)的級(jí)別,這時(shí)分級(jí)文件的有效性檢驗(yàn)于520完成。
圖6是一個(gè)處理流程圖,說明根據(jù)本發(fā)明一個(gè)實(shí)施例的關(guān)于執(zhí)行小蘋果的步驟。也就是說,將說明圖4中的步驟412。該處理開始于602,并于步驟604檢驗(yàn)該小蘋果是否含有一個(gè)要執(zhí)行某個(gè)操作的指令。該操作一般可以是一個(gè)要求訪問某個(gè)系統(tǒng)水平的資源的調(diào)用。如果該小蘋果不含有要執(zhí)行一個(gè)操作的指令,則執(zhí)行小蘋果的處理于616結(jié)束。如果該小蘋果確實(shí)含有一個(gè)要執(zhí)行操作的指令,則處理進(jìn)入步驟606,判斷這個(gè)要執(zhí)行的操作是否是一個(gè)受保護(hù)的操作,例如一個(gè)安全操作。也就是說,判斷該操作是否是一個(gè)受控制訪問的操作。如果判定該操作是不受保護(hù)的,則于步驟608執(zhí)行該操作,然后處理返回步驟604,判斷是否還有一個(gè)要執(zhí)行其他操作的指令。
如果在步驟606中判定該指令中要執(zhí)行的操作是受保護(hù)的,則處理轉(zhuǎn)向步驟610,調(diào)用小蘋果安全管理員。下面將參考圖7較詳細(xì)地說明調(diào)用安全管理員的處理。小蘋果安全管理員典型地控制可以被給定小蘋果訪問的操作。在一個(gè)實(shí)施例中,小蘋果安全管理員是一個(gè)JavaTM小蘋果安全管理員。在步驟612中,判斷該操作是否許可。換言之,步驟612是一個(gè)關(guān)于小蘋果是否可以訪問所要執(zhí)行的操作的判斷。如果該操作被許可,則于步驟608執(zhí)行該操作。其后流程從步驟608返回步驟604,判斷是否還有一個(gè)要執(zhí)行其他操作的指令。
如果在步驟612中判定該操作是不許可的,則表示出現(xiàn)了一個(gè)錯(cuò)誤情況,這可以通過在步驟614中“提出異議”來(lái)表明,其后該執(zhí)行小蘋果的處理于616結(jié)束。應(yīng)該指出,在某些實(shí)施例中,提出異議的步驟可能涉及調(diào)用一個(gè)“提異議”功能。在另一些實(shí)施例中,提出異議的步驟可能涉及送出個(gè)關(guān)于錯(cuò)誤的消息,后者可以由一個(gè)與請(qǐng)求客戶相關(guān)連的用戶代理顯示出來(lái)。在還有的一些實(shí)施例中,對(duì)錯(cuò)誤的處理可能導(dǎo)致與用戶的對(duì)話,其形式是詢問用戶是否贊同該小蘋果的操作行為。在這些實(shí)施例中,訪問文件可能被更新得永久性地記錄下用戶所作的回答。
下面將參考圖7說明調(diào)用安全管理員的處理,即圖6中步驟610的處理。應(yīng)該指出,一般用戶代理只有一個(gè)相關(guān)連的安全管理員。調(diào)用安全管理員的處理開始于702,并在步驟704中識(shí)別出小蘋果所調(diào)用的操作。雖然該操作可以是許多操作中的任一個(gè),但它通常是一個(gè)讀出操作或?qū)懭氩僮?。處理從步驟704進(jìn)入步驟706,識(shí)別出與該操作相關(guān)連的資源的名稱。在某些實(shí)施例中,資源名稱已被傳送在對(duì)安全管理員的調(diào)用之中,因此它是容易識(shí)別的。然而,對(duì)于資源名稱未被傳送給該調(diào)用的情況,則可以利用前面參考圖3a所說明的特性文件來(lái)識(shí)別相應(yīng)的資源。
一旦在步驟706中識(shí)別示出相應(yīng)的資源,便在步驟708中利用早先參考圖3b所說明的與小蘋果相關(guān)連的構(gòu)形文件來(lái)識(shí)別出對(duì)應(yīng)于該資源的訪問文件的名稱。然后于步驟710從該訪問文件獲得對(duì)應(yīng)于小蘋果的許可情況。應(yīng)該指出,在某些實(shí)施例中,相應(yīng)的訪問文件可以是存儲(chǔ)器中某實(shí)際訪問文件的一個(gè)表示。如前面參考圖3c所說明的,訪問文件把各個(gè)主機(jī)或主機(jī)組與一組許可相關(guān)連。得到了許可之后,對(duì)安全管理員的調(diào)用于712完成。
圖8示出根據(jù)本發(fā)明的一個(gè)典型的計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)830包含任意數(shù)目的處理器832(也稱作中央處理單元,CPU),這些CPU與一些存儲(chǔ)器裝置相耦合,其中包括主存儲(chǔ)裝置834(典型地為只讀存儲(chǔ)器,ROM)和主存儲(chǔ)器裝置836(典型地為隨機(jī)訪問存儲(chǔ)器,RAM)。如本技術(shù)中所周知的,ROM834用來(lái)單向地把數(shù)據(jù)和指令傳送給CPU,而RAM836典型地用來(lái)雙向地傳送數(shù)據(jù)和指令。主存儲(chǔ)裝置834和836都可以含有任何上述適當(dāng)?shù)挠?jì)算機(jī)可讀的媒體。一個(gè)大容量存儲(chǔ)裝置838也與CPU832雙向耦合,提供附加的數(shù)據(jù)存儲(chǔ)能力。大容量存儲(chǔ)裝置838可以用來(lái)存儲(chǔ)程序、數(shù)據(jù)等,它典型地是一個(gè)像硬盤這樣的二級(jí)存儲(chǔ)媒體,其速度要低于主存儲(chǔ)裝置834和836。大容量存儲(chǔ)裝置838的形式可以是磁帶或紙帶讀出器,或者其他的普通裝置。將可看到,保存在大容量存儲(chǔ)裝置838中的信息在適當(dāng)?shù)那闆r下可以作為虛存儲(chǔ)器以標(biāo)準(zhǔn)的方式作為RAM836的一部分。一個(gè)像CD-ROM(緊湊型光盤只讀存儲(chǔ)器)834這樣的指定的大容量存儲(chǔ)裝置也可以單向地向CPU傳送數(shù)據(jù)。
CPU832還與一個(gè)或多個(gè)輸入/輸出裝置840相耦合,后者可以包括,但并不局限于,例如下述這些裝置視頻監(jiān)視器、跟蹤球、鼠標(biāo)、話筒、觸敏顯示器、傳感卡讀出器、磁帶或紙帶讀出器、便箋本、唱針、語(yǔ)音或手寫字識(shí)別器、或其他眾知的輸入裝置,當(dāng)然,還包括例如其他的計(jì)算機(jī)。最后,CPU832也可以利用網(wǎng)絡(luò)連接任選地與總的由812示出的計(jì)算機(jī)或例如互連網(wǎng)或內(nèi)部網(wǎng)等通信網(wǎng)絡(luò)相耦合??梢灶A(yù)料,有了這種網(wǎng)絡(luò)連接之后,CPU在執(zhí)行上述方法的各步驟的過程中可以從網(wǎng)絡(luò)接收信息,或者向網(wǎng)絡(luò)輸出信息。上述的各種裝置和材料對(duì)于熟知計(jì)算機(jī)硬軟件技術(shù)的人們來(lái)說是熟悉的,另外,熟悉本技術(shù)領(lǐng)域的人們應(yīng)可看到,上述的硬件和軟件元件,以及網(wǎng)絡(luò)裝置都是屬于標(biāo)準(zhǔn)設(shè)計(jì)和標(biāo)準(zhǔn)結(jié)構(gòu)的。
這里所說明的用計(jì)算機(jī)實(shí)現(xiàn)的各種方法可以用計(jì)算機(jī)科技中所眾知的在計(jì)算機(jī)系統(tǒng)上執(zhí)行計(jì)算機(jī)程序指令的技術(shù)和設(shè)備來(lái)實(shí)現(xiàn)。這里所使用的術(shù)語(yǔ)“計(jì)算機(jī)系統(tǒng)”被定義為一個(gè)用于處理數(shù)據(jù)和指令的處理裝置(例如中央處理單元,CPU),它與一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)裝置相耦合,后者用來(lái)與該處理單元交換數(shù)據(jù)和指令,其中包括,但不限于RAM、ROM、CD-ROM、硬盤等等。這些數(shù)據(jù)存儲(chǔ)裝置可以是專用的,即直接與處理單元相耦合;也可以是遠(yuǎn)處的,即通過一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)與處理單元相耦合。應(yīng)該指出,通過計(jì)算機(jī)網(wǎng)絡(luò)與處理單元相耦合的遠(yuǎn)處數(shù)據(jù)存儲(chǔ)裝置可以能夠向一個(gè)處理單元發(fā)送程序指令,以在一個(gè)特定的工作站上執(zhí)行。此外,該處理裝置可以通過相同的物理結(jié)構(gòu)(例如并行處理器)或者一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)(例如分布式處理器)與一個(gè)或多個(gè)另外的處理裝置相耦合。使用這種遠(yuǎn)處耦合的數(shù)據(jù)存儲(chǔ)裝置和處理器對(duì)于熟知計(jì)算機(jī)科技的人們來(lái)說是熟悉的(例如見Ralston 1993)。這里所用的“計(jì)算機(jī)網(wǎng)絡(luò)”一詞被定義為與一組能相互通信的計(jì)算機(jī)系統(tǒng)相互連的一組通信通道。這些通信通道可以包括各種傳輸媒體,例如,但不局限于雙絞導(dǎo)線、同軸電纜、光纖、衛(wèi)星連接、或數(shù)據(jù)微波無(wú)線電等。各計(jì)算機(jī)系統(tǒng)可以分布在大的或“寬”域的網(wǎng)絡(luò)(例如超過幾十、幾百或幾千英里的網(wǎng)絡(luò),WAN(寬域網(wǎng)絡(luò)))上,或者也可以分布在局域網(wǎng)絡(luò)(例如幾英尺幾百英尺的網(wǎng)絡(luò),LAN(局域網(wǎng)絡(luò)))上。此外,各種局域和寬域網(wǎng)絡(luò)可以結(jié)合成計(jì)算機(jī)系統(tǒng)的聯(lián)合網(wǎng)絡(luò)。這種聯(lián)合計(jì)算機(jī)網(wǎng)絡(luò)的一個(gè)例子是“互連網(wǎng)”。
雖然上面僅說明了本發(fā)明的幾個(gè)實(shí)施例,但應(yīng)了解,本發(fā)明可以在不偏離其精神或范疇的情況下用許多其他特定的形式來(lái)實(shí)施。舉例來(lái)說,雖然僅說明了一種可以給以標(biāo)記的檔案文件數(shù)據(jù)結(jié)構(gòu)的構(gòu)形,但應(yīng)看到,在本發(fā)明的范疇內(nèi)檔案文件數(shù)據(jù)結(jié)構(gòu)可以有很大的改變。此外,關(guān)于執(zhí)行對(duì)系統(tǒng)資源進(jìn)行訪問的方法中的各個(gè)步驟的次序可以重新組織。在不偏離本發(fā)明精神或范疇的情況下有些步驟也可以刪去或加入。因此,應(yīng)該把所說明的實(shí)施例看作是說明性的,而不是限制性的,本發(fā)明應(yīng)該由下述權(quán)利要求以及它們的完整等價(jià)內(nèi)容來(lái)定義。
權(quán)利要求
1.一種用于控制在一個(gè)運(yùn)行一個(gè)操作系統(tǒng)的計(jì)算機(jī)上運(yùn)行的軟件程序?qū)υ摬僮飨到y(tǒng)資源的訪問程度的方法,該方法包括以下步驟(a)對(duì)上述軟件程序定義對(duì)上述操作系統(tǒng)資源的上述訪問程度;(b)當(dāng)上述軟件程序正被上述計(jì)算機(jī)執(zhí)行時(shí),審查至少一個(gè)與上述軟件程序相關(guān)連的文件,以確定上述軟件程度可得到的系統(tǒng)水平的訪問程度;(c)在上述計(jì)算機(jī)上執(zhí)行上述軟件程序;(d)當(dāng)上述軟件程序在上述計(jì)算機(jī)上執(zhí)行時(shí),截取與上述軟件程序相關(guān)連的程序指令;(e)判斷上述程序指令是否有超出了上述軟件程序可得到的上述系統(tǒng)水平的訪問程度的操作;以及(f)當(dāng)判定上述軟件程序被許可訪問與上述計(jì)算機(jī)相關(guān)連的系統(tǒng)水平的資源并且這些資源屬于上述軟件程序可得到的系統(tǒng)水平訪問程度的范圍時(shí),執(zhí)行上述程序指令。
2.根據(jù)權(quán)利要求1的方法,其中上述判斷上述程序指令是否含有超出上述軟件程序可得到的上述系統(tǒng)水平的訪問程度的操作的步驟包括檢驗(yàn)與上述軟件程序相關(guān)連的識(shí)別符的有效性。
3.根據(jù)前述任一項(xiàng)權(quán)利要求的方法,其中上述執(zhí)行上述程序指令的步驟包括判斷被上述程序指令訪問的上述系統(tǒng)水平的資源是否是受保護(hù)的系統(tǒng)水平資源。
4.根據(jù)前述任一項(xiàng)權(quán)利要求的方法,其中上述軟件程序包括“小蘋果(applet)”。
5.根據(jù)權(quán)利要求4的方法,其中上述小蘋果是Java小蘋果。
6.根據(jù)權(quán)利要求4或5的方法,其中上述小蘋果與一個(gè)前端部相關(guān)連,上述前端部被設(shè)計(jì)得含有一個(gè)識(shí)別符,上述識(shí)別符被設(shè)計(jì)得用來(lái)識(shí)別上述文件的來(lái)源。
7.根據(jù)權(quán)利要求6的方法,它還包括檢驗(yàn)上述識(shí)別符的有效性以確定上述計(jì)算機(jī)是否被許可訪問上述系統(tǒng)水平的資源的步驟。
8.根據(jù)權(quán)利要求4至7中任一項(xiàng)的方法,其中上述計(jì)算機(jī)機(jī)是一個(gè)客戶計(jì)算機(jī),并且上述小蘋果是從一個(gè)服務(wù)器計(jì)算機(jī)下載到上述客戶計(jì)算機(jī)上的。
9.根據(jù)權(quán)利要求8的方法,其中(a)上述審查步驟包括當(dāng)上述小蘋果正被上述客戶計(jì)算機(jī)執(zhí)行時(shí), 根據(jù)上述對(duì)上述小蘋果定義的對(duì)與上述服務(wù)器計(jì)算機(jī)相關(guān)連的上述系統(tǒng)水平資源的訪問程度,來(lái)判定上述小蘋果可得到的對(duì)上述服務(wù)器的系統(tǒng)水平訪問程度;(b)上述判斷步驟包括判斷上述要訪問與上述服務(wù)器計(jì)算機(jī)相關(guān)連的系統(tǒng)水平資源的程序指令是否含有超出了上述小蘋果可得到的上述系統(tǒng)水平的訪問程度的操作;以及(c)上述執(zhí)行步驟包括當(dāng)判定了上述小蘋果被許可訪問與上述服務(wù)器計(jì)算機(jī)相關(guān)連的系統(tǒng)水平資源并且這些資源上述小蘋果可得到的系統(tǒng)水平訪問程度范圍時(shí),執(zhí)行上述訪問與上述服務(wù)器計(jì)算機(jī)相關(guān)連的系統(tǒng)水平資源的程序指令。
10.一種用于控制在一個(gè)運(yùn)行一個(gè)操作系統(tǒng)的客戶計(jì)算機(jī)上運(yùn)行的軟件程序?qū)υ摬僮飨到y(tǒng)的資源的訪問程度的方法,其中至少有一些上述操作系統(tǒng)資源存儲(chǔ)在一個(gè)通過計(jì)算機(jī)網(wǎng)絡(luò)與上述客戶計(jì)算機(jī)相耦合的服務(wù)器計(jì)算機(jī)上,該方法包括以下步驟(a)對(duì)上述軟件程序定義上述對(duì)上述操作系統(tǒng)資源的訪問程度;(b)在上述客戶計(jì)算機(jī)上安裝至少一個(gè)含有用于執(zhí)行上述軟件程序的指令的文件;(c)當(dāng)上述軟件程序正被上述客戶計(jì)算機(jī)執(zhí)行時(shí),根據(jù)定義上述訪問程度的步驟的定義,審查上述至少一個(gè)文件以判定上述軟件程序可得到的系統(tǒng)水平訪問程度;(d)在上述客戶計(jì)算機(jī)上執(zhí)行上述軟件程序;(e)當(dāng)在上述客戶計(jì)算機(jī)上執(zhí)行上述軟件程序時(shí),截取與上述軟件程序相關(guān)連的程序指令;(f)判斷上述程序指令是否有超出了上述軟件程序可得到的上述系統(tǒng)水平訪問程度的操作;以及(g)當(dāng)判定了上述軟件程序被許可訪問屬于上述軟件程序可得到的系統(tǒng)水平訪問程度范圍的系統(tǒng)水平資源時(shí),執(zhí)行上述程序指令。
11.根據(jù)權(quán)利要求10的方法,其中上述判斷上述程序指令是否含有超出了上述軟件程序可得到的上述系統(tǒng)水平訪問程度的操作的步驟包括檢驗(yàn)與上述軟件程序相關(guān)連的識(shí)別符的有效性。
12.根據(jù)權(quán)利要求10或11的方法,其中上述執(zhí)行上述程序指令的步驟包括判斷上述程序指令正訪問的上述系統(tǒng)水平資源是否是受保護(hù)的系統(tǒng)水平資源。
13.根據(jù)權(quán)利要求10至12中任一項(xiàng)的方法,它還包括以下步驟通過上述計(jì)算機(jī)網(wǎng)絡(luò)在上述客戶計(jì)算機(jī)和上述服務(wù)器計(jì)算機(jī)之間建立一個(gè)數(shù)據(jù)傳輸通信連接;以及通過上述計(jì)算機(jī)網(wǎng)絡(luò)從上述服務(wù)器計(jì)算機(jī)向上述客戶計(jì)算機(jī)發(fā)送上述至少一個(gè)文件。
14.一種用于處理客戶對(duì)與一個(gè)第一服務(wù)器相關(guān)連的系統(tǒng)資源的訪問請(qǐng)求的方法,該方法包括以下步驟(a)呼叫一個(gè)第二服務(wù)器以起動(dòng)對(duì)與上述請(qǐng)求有關(guān)的文件的下載;(b)從上述第二服務(wù)器裝載上述相關(guān)文件,上述相關(guān)文件含有一個(gè)檔案文件,上述檔案文件含有至少一個(gè)分級(jí)文件和一個(gè)前端部,上述前端部含有一個(gè)設(shè)計(jì)得用來(lái)指明上述檔案文件的來(lái)源的識(shí)別符;(c)檢驗(yàn)上述檔案文件的有效性;(d)把上述分級(jí)文件轉(zhuǎn)換成小蘋果;以及(e)執(zhí)行上述小蘋果,上述小蘋果至少含有一個(gè)指令,其中上述小蘋果的執(zhí)行使得上述客戶計(jì)算機(jī)可以訪問與上述第一服務(wù)器相關(guān)連的上述系統(tǒng)資源。
15.根據(jù)權(quán)利要求14的處理請(qǐng)求的方法,其中上述檢驗(yàn)上述檔案文件的有效性的步驟包括以下各子步驟(a)認(rèn)證上述前端部;(b)判斷上述前端部是否有效;以及(c)當(dāng)判定了上述前端部是有效的之后執(zhí)行對(duì)上述級(jí)別的級(jí)別驗(yàn)證。
16.根據(jù)權(quán)利要求14或15的處理請(qǐng)求的方法,其中上述執(zhí)行上述小蘋果的步驟包括以下各子步驟(a)判斷上述指令是否是要執(zhí)行一個(gè)受保護(hù)操作的指令;(b)當(dāng)判定了上述指令不是一個(gè)要執(zhí)行一個(gè)受保護(hù)操作的指令時(shí)執(zhí)行上述操作;以及(c)當(dāng)判定了上述指令是一個(gè)要執(zhí)行一個(gè)受保護(hù)操作的指令時(shí)判斷上述操作是否許可。
17.一種用來(lái)控制對(duì)操作系統(tǒng)資源的訪問程度的計(jì)算機(jī)系統(tǒng),它包括一個(gè)與至少一個(gè)其中保持有至少一個(gè)含有用來(lái)執(zhí)行一個(gè)軟件程序的指令的文件的存儲(chǔ)器裝置相耦合的第一計(jì)算機(jī),上述軟件程序在上述第一計(jì)算機(jī)上運(yùn)行,上述第一計(jì)算機(jī)運(yùn)行上述操作系統(tǒng),上述第一計(jì)算機(jī)被設(shè)計(jì)以用來(lái)(a)對(duì)上述軟件程序定義對(duì)上述操作系統(tǒng)資源的上述訪問程度,并且上述設(shè)置的第一計(jì)算機(jī)判斷是否有一個(gè)程序指令與上述軟件相關(guān)連;(b)在上述第一計(jì)算機(jī)上安裝上述至少一個(gè)含有用來(lái)執(zhí)行上述軟件程序的指令的文件;(c)當(dāng)上述軟件程序正被上述第一計(jì)算機(jī)執(zhí)行時(shí),審查上述至少一個(gè)文件以判斷上述軟件程序可得到的系統(tǒng)水平的訪問程度;(d)在上述第一計(jì)算機(jī)上執(zhí)行上述軟件程序;(e)當(dāng)在上述第一計(jì)算機(jī)上執(zhí)行上述軟件程序時(shí)截取與上述軟件程序相關(guān)連的程序指令;(f)判斷上述程序指令是否含有超出了上述軟件程序可得到的上述系統(tǒng)水平訪問程度的操作;以及(g)當(dāng)判定了上述軟件程序被許可訪問與上述第一計(jì)算機(jī)相關(guān)連的系統(tǒng)水平資源并且這些資源屬于上述軟件程序可得到的系統(tǒng)水平訪問程度范圍時(shí),執(zhí)行上述程序指令。
18.根據(jù)權(quán)利要求17的計(jì)算機(jī)系統(tǒng),其中上述第一計(jì)算機(jī)被設(shè)計(jì)以判斷正被上述程序指令訪問的上述系統(tǒng)水平資源是否是受保護(hù)的系統(tǒng)水平資源。
19.一種計(jì)算機(jī)可讀的媒體,它包括一些計(jì)算機(jī)可讀的程序代碼裝置,這些裝置被設(shè)計(jì)以使一個(gè)計(jì)算機(jī)執(zhí)行以下動(dòng)作(a)為上述軟件程序定義對(duì)上述操作系統(tǒng)資源的上述訪問程度;(b)當(dāng)上述軟件程序正被上述計(jì)算機(jī)執(zhí)行時(shí),審查至少一個(gè)與上述軟件程序相關(guān)連的文件,以判斷上述軟件程序可得到的系統(tǒng)水平訪問程度;(c)在上述計(jì)算機(jī)上執(zhí)行上述軟件程序;(d)當(dāng)在上述計(jì)算機(jī)上執(zhí)行上述軟件程序時(shí),截取與上述軟件程序相關(guān)連的程序指令;(e)判斷上述程序指令是否含有超出了上述軟件程序可得到的上述系統(tǒng)水平訪問程度的操作;以及(f)當(dāng)判定了上述軟件程序被許可訪問與上述計(jì)算機(jī)相關(guān)連的系統(tǒng)水平資源并且這些資源屬于上述軟件程序可得到的系統(tǒng)水平訪問程度范圍時(shí),執(zhí)行上述程序指令。
全文摘要
說明了用來(lái)在一個(gè)客戶計(jì)算機(jī)上安裝和操作被選定的軟件應(yīng)用的一些方法、系統(tǒng)和軟件,其中的客戶計(jì)算機(jī)在一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)上與一個(gè)服務(wù)器計(jì)算機(jī)相通信。根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于控制在一個(gè)運(yùn)行一個(gè)操作系統(tǒng)的計(jì)算機(jī)上運(yùn)行的一個(gè)軟件程序?qū)ι鲜霾僮飨到y(tǒng)的資源的訪問程度的方法。如果判定了該軟件程序被許可訪問與該計(jì)算機(jī)相關(guān)連的系統(tǒng)水平資源并且這些資源屬于該軟件可得到的系統(tǒng)水平訪問程度范圍,則執(zhí)行該程序指令。
文檔編號(hào)G06F9/445GK1194411SQ9810022
公開日1998年9月30日 申請(qǐng)日期1998年1月9日 優(yōu)先權(quán)日1997年1月9日
發(fā)明者那吒羅阇·那加萊特那姆, 史蒂文·B·伯恩 申請(qǐng)人:太陽(yáng)微系統(tǒng)公司