專利名稱:通信設(shè)備、程序和記錄介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及確保通信設(shè)備中的數(shù)據(jù)安全的技術(shù)。
背景技術(shù):
使用具有分組通信功能的移動電話從連接到因特網(wǎng)的服務(wù)器下載程序,這已經(jīng)成為一種非常普遍的實踐。
雖然因特網(wǎng)能使全世界的人們自由交換程序,但它也存在著固有風(fēng)險,其中包括例如從通信設(shè)備竊取數(shù)據(jù)。此外還有可能會在毫無惡意的情況下提供一個導(dǎo)致通信設(shè)備出現(xiàn)故障的程序。有鑒于這些風(fēng)險,用戶隱私是主要關(guān)注的問題。
有可能對提供給移動電話的程序功能加以限制。例如,一個可以執(zhí)行那些用Java編寫的程序的移動電話將會強行限制這些程序。具體地說,這些程序只允許訪問以下資源1)下載一個或多個程序的服務(wù)器,2)分配給一個或多個程序的存儲區(qū),并且這些程序不準(zhǔn)許訪問用戶電話號碼、電子郵件地址或電話簿數(shù)據(jù)這樣的資源。此外,移動電話只使用本機程序來處理這種個人信息,由此能夠確保通信設(shè)備中保存的個人信息的安全。以下參考文獻對這種技術(shù)的一個實例進行了描述i Apuricontentsukaihatsuguide for 504i Syousaihen Internet<URL http//www.nttdocomo.co.jp/p_s/imode/java/>.
在這里,本機程序是指寫入到尚未公開使用的移動電話的存儲器的程序。
如上所述,這種限制訪問資源的機制為移動電話用戶提供了某種安全性。然而,它在下載程序的操作中產(chǎn)生了各種限制。也就是說,它限制了程序的多樣化。本發(fā)明旨在克服上述問題,并且本發(fā)明的目的是提供一種技術(shù),用于在確保移動電話這類通信設(shè)備中保存的數(shù)據(jù)安全性的同時提供各種不同的程序。
發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明提供了一種通信設(shè)備,其中包括一個用于保存數(shù)據(jù)的存儲裝置,一個使用一種訪問數(shù)據(jù)的方法來獲取程序的獲取裝置,一個用于執(zhí)行程序并且根據(jù)所述程序來使用那些準(zhǔn)許所述程序使用的數(shù)據(jù)的執(zhí)行裝置,一個從存儲裝置保存的數(shù)據(jù)中指定程序所用數(shù)據(jù)的指定裝置,一個為程序選擇不完全封裝對象或完全封裝對象的選擇裝置,其中不完全封裝對象是一個使用方法來把該對象中包含的數(shù)據(jù)提供給訪問該對象的程序的對象,完全封裝對象則是并未使用這種方法的對象,所述通信設(shè)備還包括一個根據(jù)選擇裝置做出的選擇來為程序產(chǎn)生不完全封裝對象或完全封裝對象的對象生成裝置,其中生成的對象包括指定裝置所指定的數(shù)據(jù),此外,所述通信設(shè)備包括一個控制裝置,用于控制對指定裝置所指定數(shù)據(jù)的訪問,并且允許執(zhí)行裝置僅僅經(jīng)由對象生成裝置為程序生成的對象來訪問數(shù)據(jù)。
根據(jù)本發(fā)明,通信設(shè)備接收一個程序和用于該程序的識別信息,從存儲數(shù)據(jù)中指定執(zhí)行程序時使用的數(shù)據(jù),為所述程序選擇不完全封裝對象或完全封裝對象中的一個對象,產(chǎn)生選定對象,產(chǎn)生的對象包括指定數(shù)據(jù),在執(zhí)行程序時,僅僅經(jīng)由生成的對象來使用數(shù)據(jù)。
圖1是顯示根據(jù)本發(fā)明第一實施例的通信系統(tǒng)結(jié)構(gòu)的框圖。
圖2是顯示根據(jù)第一實施例的移動電話硬件結(jié)構(gòu)的框圖。
圖3是顯示根據(jù)第一實施例的移動電話非易失存儲器中保存的ADF數(shù)據(jù)配置的圖示。
圖4是對根據(jù)第一實施例的移動電話中的JAVA AP執(zhí)行環(huán)境加以說明的圖示。
圖5是對根據(jù)第一實施例的移動電話中的封裝對象加以說明的視圖。
圖6是舉例說明根據(jù)第一實施例的移動電話中的不完全封裝對象的視圖。
圖7是舉例說明根據(jù)第一實施例的移動電話中的完全封裝對象的視圖。
圖8是對根據(jù)第一實施例的移動電話中的CPU所執(zhí)行的對象生成處理操作加以說明的流程圖。
圖9是對根據(jù)第一實施例的移動電話中的CPU所執(zhí)行的訪問管理處理加以說明的流程圖。
圖10是對根據(jù)本發(fā)明第一實施例的移動電話中的CPU所執(zhí)行的Java AP終止操作加以說明的流程圖。
圖11是顯示存入根據(jù)第二實施例的移動電話非易失存儲器的重要性表格的數(shù)據(jù)配置的圖示。
圖12是顯示存入根據(jù)第二實施例的移動電話非易失存儲器的應(yīng)用數(shù)據(jù)表格的數(shù)據(jù)配置的圖示。
圖13是對根據(jù)第二實施例的移動電話中的CPU所執(zhí)行的對象應(yīng)用管理處理的操作加以說明的流程圖。
圖14是顯示存入根據(jù)本發(fā)明某些修改的移動電話非易失存儲器的應(yīng)用數(shù)據(jù)表格的數(shù)據(jù)配置的圖示。
圖15是對根據(jù)本發(fā)明某些修改的Java執(zhí)行環(huán)境的改動加以說明的圖示。
圖16是舉例說明根據(jù)本發(fā)明某些修改的通信系統(tǒng)改動的圖示。
具體實施例方式
1.第一實施例以下將參考圖示來描述本發(fā)明的第一實施例。在圖中,相同的數(shù)字表示相同的部件。
1-1.實施例的構(gòu)造1-1-1.通信系統(tǒng)的結(jié)構(gòu)圖1是顯示根據(jù)本發(fā)明第一實施例的通信系統(tǒng)1的結(jié)構(gòu)的框圖。如圖中所示,通信系統(tǒng)1包括一個內(nèi)容服務(wù)器10、因特網(wǎng)20、移動分組通信網(wǎng)絡(luò)30以及移動電話40。通常,多個移動電話40會位于所述通信系統(tǒng)1。然而為了簡化起見,圖1只顯示了一個移動電話40。出于同樣原因,圖1只顯示了一個內(nèi)容服務(wù)器10、一個網(wǎng)關(guān)服務(wù)器31和一個基站32。
內(nèi)容服務(wù)器10具有經(jīng)由因特網(wǎng)20以及移動分組通信網(wǎng)絡(luò)30而與移動電話40進行分組通信的功能。諸如程序這種提供給移動電話40的內(nèi)容或圖像數(shù)據(jù)和音樂數(shù)據(jù)都保存在內(nèi)容服務(wù)器10上。其中一種內(nèi)容是可以在移動電話40中執(zhí)行的Java應(yīng)用程序(下文稱為“JAVA AP”)。
移動分組通信網(wǎng)絡(luò)30是一個通信網(wǎng)絡(luò),用于提供與移動電話40所進行的分組通信服務(wù)。網(wǎng)關(guān)服務(wù)器31對移動分組通信網(wǎng)絡(luò)30與因特網(wǎng)20之間的數(shù)據(jù)發(fā)送與接收進行中繼。另外,多個基站32位于移動分組通信網(wǎng)絡(luò)30的通信服務(wù)區(qū)以內(nèi),而基站32則與移動電話40進行無線電通信。
移動電話40與基站32進行無線電通信。另外,移動電話40具有通過移動分組通信網(wǎng)絡(luò)30以及因特網(wǎng)20而與內(nèi)容服務(wù)器10進行分組通信的功能,并且移動電話40能夠從內(nèi)容服務(wù)器10下載內(nèi)容。
1-1-2.移動電話的結(jié)構(gòu)圖2是一個顯示移動電話40的硬件結(jié)構(gòu)的框圖。如圖所示,移動電話40包括一個無線電通信單元401、操作輸入單元402、呼叫處理單元403、通信接口404、CPU 405、液晶顯示器單元406以及存儲器單元407,所述這些設(shè)備通過總線411相互連接。
無線電通信單元401具有天線401a,所述單元對與基站32進行的無線電通信進行控制。在CPU 405的控制下,無線電通信單元401把語音數(shù)據(jù)或分組通信數(shù)據(jù)疊加到載波上,從而產(chǎn)生一個傳輸信號并將此信號發(fā)送到基站32。另外,無線電通信單元401通過天線401a來接收基站32發(fā)送的無線電信號,并且通過解調(diào)這個信號來獲取關(guān)于移動電話40的語音數(shù)據(jù)以及分組通信數(shù)據(jù)。
操作輸入單元402具有多個按鍵,用于輸入數(shù)字、字符、操作指令等等以及向CPU 405輸出對應(yīng)于按鍵操作的操作信號。另外,舉例來說,處理單元403具有一個麥克風(fēng)、一個揚聲器、一個語音處理單元以及其他設(shè)備,在CPU 405的控制下,所述處理單元執(zhí)行一個包含呼叫連接/斷開的呼叫處理。
通信接口404對與那些經(jīng)由通信電纜連接的電子設(shè)備所進行的有線通信加以控制。另外,CPU 405通過執(zhí)行存儲單元407中保存的不同程序來控制經(jīng)由總線411連接的各個控制單元。此外,液晶顯示單元406包括一個液晶顯示面板和一個用于執(zhí)行液晶顯示面板的顯示控制的驅(qū)動電路。
存儲單元407包括ROM 408、RAM 409以及非易失存儲器410,其中所述非易失存儲器410可以是例如SRAM(靜態(tài)RAM)和EEPROM(電可擦可編程序ROM)。諸如移動電話40的操作系統(tǒng)(下文稱為“OS”)以及網(wǎng)絡(luò)瀏覽器這類軟件或者構(gòu)造Java執(zhí)行環(huán)境的軟件都保存在ROM中。另外,RAM 409被用作CPU 405的一個工作區(qū),CPU 405執(zhí)行的各種程序和數(shù)據(jù)都臨時保存在RAM409中。
從移動電話40出貨時起,為移動電話40設(shè)計的程序就保存在非易失存儲器410中。從內(nèi)容服務(wù)器10下載的Java AP等內(nèi)容則保存在非易失存儲器410中。此外,各種數(shù)據(jù)都保存在非易失存儲器410中,例如包含了用于顯示電話號碼或電子郵件地址的地址薄數(shù)據(jù)、所接收或發(fā)送的電子郵件數(shù)據(jù)、來話呼叫和出話呼叫的歷史數(shù)據(jù)或者顯示用戶銀行帳號以便進行電子支付的數(shù)據(jù),以及顯示信用卡號碼的數(shù)據(jù)。
在下文中,將移動電話40出貨時即被存入ROM 408和非易失存儲器410的程序稱為“本機程序”(native program),以便區(qū)別于下載的Java AP。并且為本機程序提供了一個用于顯示所述程序是本機程序的識別信息。
此外,非易失存儲器410包括一個JAR(Java歸檔)存儲器410a、一個單獨便箋式存儲器410b和一個公共便箋式存儲器410c。
在這里,下載到移動電話40的Java AP是在單獨便箋式存儲器410b和公共便箋式存儲器410c之前得到描述的。Java AP包括作為Java AP主程序的JAR文件以及在執(zhí)行Java AP主程序時一起使用的圖像文件和聲音文件,此外還包括一個ADF(應(yīng)用描述文件)文件,在所述ADF文件中寫入了各種控制信息,以便安裝和激活JAR文件并控制網(wǎng)絡(luò)接入。下載的JAR文件和ADF文件則保存在非易失存儲器410中。
如圖3所示,在這個實施例中,除了顯示Java AP的“AppName”、顯示JAR文件URL的“PackageURL”、顯示JAR文件大小的“Appsize”以及顯示最后更新日期的“Lastmodified”等現(xiàn)有技術(shù)的已知數(shù)據(jù)之外,還將一個“信任應(yīng)用識別符”包含在ADF中。信任應(yīng)用識別符是用于識別Java AP和不同于Java AP的程序的數(shù)據(jù),并且還用于識別哪些內(nèi)容受到第三方檢查并被證明滿足指定標(biāo)準(zhǔn)的Java AP,其中所述第三方可以是一個電信運營商,它對移動分組通信網(wǎng)絡(luò)30以及CA(證書認(rèn)證)進行管理。這些標(biāo)準(zhǔn)的某些實例是;程序能在不遺漏數(shù)據(jù)的情況下管理移動電話40中保存的數(shù)據(jù),以及在移動電話40中以常規(guī)方式運行一個程序。由于上述第三方受到參與所提供通信服務(wù)的所有各方的信任,因此經(jīng)過第三方認(rèn)證的程序是可以信任的。因此,這種程序稱為“信任(trusted)應(yīng)用”,其他程序則稱為“不信任(non-trusted)應(yīng)用”。如果信任應(yīng)用識別符的值為零,那么信任應(yīng)用識別符顯示與一個ADF文件相對應(yīng)的Java AP是一個不信任應(yīng)用,如果信任應(yīng)用識別符的值為1,那么信任應(yīng)用識別符顯示與一個ADF文件相對應(yīng)的Java AP是一個信任應(yīng)用。
Java AP的存儲區(qū)安裝在JAR存儲器410a以及所下載的各個Java AP的單獨便箋式存儲器410b中。關(guān)于Java AP的JAR文件保存在JAR存儲器410a的各個存儲區(qū)。此外,舉例來說,如果JavaAP是一個游戲程序,那么,根據(jù)Java AP的用途而為Java AP生成的數(shù)據(jù)保存在單獨便箋式存儲器410b的各個存儲區(qū),例如過去得分?jǐn)?shù)據(jù)或存盤數(shù)據(jù)。此外,多個Java應(yīng)用程序通常使用的數(shù)據(jù)保存在公共便箋式存儲器410c中。
此外,在下載之后,當(dāng)在移動電話40中執(zhí)行Java AP時,移動電話40能夠訪問的資源限制在內(nèi)容服務(wù)器10、分配給Java AP的存儲區(qū)、JAR存儲器410a、單獨便箋式存儲器410b以及公共便箋式存儲器410c,其中程序就是從所述內(nèi)容服務(wù)器下載的。移動電話40并不準(zhǔn)許訪問其他資源。
1-1-3.Java執(zhí)行環(huán)境圖4是對移動電話40中的Java AP執(zhí)行環(huán)境加以說明的圖示。在這個圖中,構(gòu)造Java AP執(zhí)行環(huán)境(KVM(K虛擬機))的軟件、一種結(jié)構(gòu)(CLDC(連接受限設(shè)備配置))以及一個簡表(電信運營商最初開發(fā)的原始擴展庫)都保存在移動電話40中。
KVM是為小型電子設(shè)備重新設(shè)計的JVM(Java虛擬機),它把一個Java AP執(zhí)行文件格式的字節(jié)代碼轉(zhuǎn)換成一個CPU 405能夠經(jīng)由OS解釋/執(zhí)行的指令代碼。此外,CLDC類庫是一個用于CLDC的類庫。
原始擴展庫是一個基于CLDC來為移動電話提供指定功能的類庫。例如,用戶接口API(應(yīng)用程序接口)、網(wǎng)絡(luò)API、便箋式存儲器API、完全封裝API、不完全封裝API及其他API都包含在原始擴展庫中。
在這里,用戶接口API是用于支持移動電話40的用戶接口功能的API,網(wǎng)絡(luò)API是對訪問URL(統(tǒng)一資源定位碼)所指示網(wǎng)絡(luò)資源提供支持的API。此外,便箋式存儲器API是對關(guān)于單獨便箋式存儲器410b和公共便箋式存儲器410c的數(shù)據(jù)寫入或讀取提供支持的API。另外,完全封裝API是用于產(chǎn)生完全封裝對象的API,而不完全封裝API則是用于產(chǎn)生不完全封裝對象的API。
此外,除了CLDC類庫和原始擴展庫之外,移動電話40還具有一個制造商原始擴展庫。制造商原始擴展庫是這樣一個類庫,經(jīng)由該類庫,移動電話40的各個制造商提供了初始功能。
接下來在OS的控制下,JAM(Java應(yīng)用管理器)具有對下載到移動電話40的Java AP、完全封裝對象以及不完全封裝對象等等進行管理的功能。舉例來說,Java具有如下功能更新和刪除JavaAP的安裝,顯示存入非易失存儲器410的Java AP列表,執(zhí)行JavaAP的運行/管理(例如激活和強制終止),在執(zhí)行Java AP時對移動電話40的訪問加以限制,以及產(chǎn)生、更新及刪除完全封裝對象和不完全封裝對象。
此外,如圖所示,提供電話簿功能、瀏覽器功能及其他功能的本機程序是在OS的控制下直接執(zhí)行的。
1-1-4.對象的結(jié)構(gòu)接下來描述的是一個對象。對象是一組數(shù)據(jù)(Java程序設(shè)計語言中的“字段”)和操作(Java程序設(shè)計語言中的“方法”)。在Java程序設(shè)計語言中,訪問指示符“私有”聲明對象中的各個字段都是私有字段,它被用于封裝私有字段中保存的數(shù)據(jù)。封裝對象是經(jīng)由封裝而產(chǎn)生的。
圖5是說明一個封裝對象的視圖。如圖所示,封裝對象包括封裝數(shù)據(jù)的一個以上的數(shù)據(jù)項,以及一種以上的方法,用于從封裝對象外部對所述對象中的各個數(shù)據(jù)項進行可能的操作。
如圖所示,封裝對象具有兩個數(shù)據(jù)項,即數(shù)據(jù)1和數(shù)據(jù)2,并且顯示了兩種方法,即方法1和方法2。由于數(shù)據(jù)1和數(shù)據(jù)2是在封裝對象中進行封裝的,因此無法從對象外部直接讀取或?qū)懭霐?shù)據(jù)1和數(shù)據(jù)2。這樣一來,當(dāng)下載的程序訪問封裝對象中的數(shù)據(jù)1和數(shù)據(jù)2時,所述程序(=執(zhí)行指令的程序)必須使用方法1和方法2來指示封裝對象操作目標(biāo)數(shù)據(jù)1和數(shù)據(jù)2。
在圖中,舉例來說,當(dāng)方法1是一種將指定數(shù)據(jù)提供給執(zhí)行指令的程序的方法的時候,執(zhí)行所述指令的程序可以使用方法1來獲取封裝對象中的可選數(shù)據(jù)1和數(shù)據(jù)2。此外,舉例來說,當(dāng)圖中的方法2是一種在液晶顯示器上顯示指定數(shù)據(jù)的方法的時候,執(zhí)行指令的程序可以使用方法2來顯示封裝對象中的可選對象1和對象2。其要點在于對于使用方法2而將封裝對象的可選數(shù)據(jù)1和數(shù)據(jù)2顯示在顯示器上的程序而言,即使程序本身并未得到所要顯示的數(shù)據(jù),它也可以通過使用方法2來命令所述封裝對象顯示可選數(shù)據(jù)1和數(shù)據(jù)2。
更具體地說,在封裝對象(完全封裝對象)沒有任何方法來把數(shù)據(jù)提供給執(zhí)行指令的程序的情況下,所述執(zhí)行指令的程序無法得到那些保存在封裝對象中的數(shù)據(jù),但卻可以使用屬于封裝對象的方法來控制那些保存在封裝對象中的數(shù)據(jù)。
因此,在執(zhí)行指令的程序是一個不信任應(yīng)用的情況下,當(dāng)程序訪問的數(shù)據(jù)作為完全封裝對象而被管理的時候,由于并未將數(shù)據(jù)提供給所述程序,因此移動電話40中的數(shù)據(jù)是安全的。此外,即使執(zhí)行指令的程序是一個不信任應(yīng)用,所述程序仍然可以使用屬于封裝對象的方法來訪問數(shù)據(jù),例如那些通常因為安全原因而不能訪問的地址薄數(shù)據(jù)和電子郵件數(shù)據(jù)。
圖6是舉例說明涉及電話簿數(shù)據(jù)的不完全封裝對象的視圖。如上所述,在Java程序設(shè)計語言中,借助于通常所說的訪問限定語“私有”來聲明對象中的各個字段是私有字段,由此對保存在私有字段中的數(shù)據(jù)進行封裝。換句話說,對象中的每個字段都是一個私有字段,而保存在私有字段中的數(shù)據(jù)是無法從對象外部讀取的。在這種情況下,為使執(zhí)行指令的程序能夠從對象外部訪問數(shù)據(jù),該程序需要使用歸屬于所述對象的方法來指示所述對象控制(訪問)各個私有字段中保存的數(shù)據(jù)。
圖中,在不完全封裝對象中安裝了兩個私有字段,并且,電話簿的字符串?dāng)?shù)據(jù)、“私有字符值[1]”以及“私有字符值[2]”都保存在一個不完全封裝對象中。此外,一個不完全封裝對象具有兩種方法,也就是通常所說的“getBytes()”和“drawstring()”。getBytes()是一種用于向執(zhí)行指令的程序提供那些保存在以比特陣列為形式的對象中的數(shù)據(jù)的方法。因此,下載的Java AP能夠使用方法“getBytes()”來獲取不完全封裝對象中保存的電話簿字符串?dāng)?shù)據(jù)、“私有字符值[1]”以及“私有字符值[2]”。此外,Java AP能夠把所獲取的保存在不完全封裝對象中的電話簿字符串?dāng)?shù)據(jù)發(fā)送到內(nèi)容服務(wù)器10(一個執(zhí)行下載Java AP的服務(wù)器)。
此外,drawString()是一種用于在移動電話40的液晶顯示器上顯示對象中所保存數(shù)據(jù)的方法。Java AP能在移動電話40的液晶顯示器上顯示不完全封裝對象中保存的電話簿字符串?dāng)?shù)據(jù)(“私有字符值[1]”和“私有字符值[2]”)。
圖7是舉例說明涉及電話簿數(shù)據(jù)的完全封裝對象的視圖。對圖7的完全封裝對象以及圖6的不完全封裝對象而言,二者的不同之處在于完全封裝對象不具有向執(zhí)行指令的程序提供對象中保存的數(shù)據(jù)的方法。
更具體地說,由于對象是經(jīng)過“完全”封裝的,因此它并不具有向執(zhí)行指令的程序提供對象中所保存數(shù)據(jù)的方法。因此,下載的Java AP能夠使用通常所說的方法“drawstring()”而在移動電話40的液晶顯示器上顯示不完全封裝對象中保存的電話簿的字符串?dāng)?shù)據(jù)(“私有字符值[1]”和“私有字符值[2]”),但卻無法得到電話簿的字符串?dāng)?shù)據(jù)。由于上述原因,即使將不信任應(yīng)用下載到了移動電話40,也無法將電話簿數(shù)據(jù)提供給不信任應(yīng)用,由此無法將電話簿數(shù)據(jù)發(fā)送到移動電話40的外部(例如服務(wù)器)。
對象中保存的電話簿字符串?dāng)?shù)據(jù)是使用方法“drawstring()”來顯示的,完全封裝對象和不完全封裝對象使用ROM 408或非易失存儲器410中作為本機程序保存的顯示控制程序而把電話簿的字符串?dāng)?shù)據(jù)顯示在液晶顯示器上。如果Java AP能夠使用顯示控制程序來獲取顯示數(shù)據(jù),那么使用完全封裝對象和不完全封裝對象將不會得到任何好處。
然而,在執(zhí)行所下載的Java AP的時候,上述JAM的訪問限制功能將移動電話40限制在Java AP執(zhí)行過程中的訪問資源。在執(zhí)行Java AP的過程中,由于顯示控制程序并未包含在移動電話40準(zhǔn)許訪問的資源中,因此Java AP不可能從顯示控制程序中得到所顯示的數(shù)據(jù)。
此外,可以在程序設(shè)計語言的級別上封裝對象或者在可執(zhí)行代碼(機器語言或字節(jié)代碼)的級別上封裝對象,這一點似乎是合理的。然而,如果在程序設(shè)計語言等級上使用一種完全方式來封裝所述對象,則不可能在可執(zhí)行代碼的等級上使用一種完全方式來封裝所述對象,由此并未以一種完全方式來封裝數(shù)據(jù)。舉例來說,使用C++(程序設(shè)計語言)的程序能夠產(chǎn)生一個具有私有字段的封裝對象,但是使用C++的程序只能在程序設(shè)計語言的等級上實現(xiàn)完全封裝。
更具體地說,當(dāng)使用C++的程序來把對象中保存的各個字段聲明為私有字段,并且產(chǎn)生一個封裝對象的時候,如果所述程序編譯了一個直接讀寫私有字段中保存的數(shù)據(jù)的源代碼,那么由于編譯錯誤,將不會產(chǎn)生一個執(zhí)行碼。
應(yīng)該注意的是,執(zhí)行碼僅僅是由一個編譯器來確定的。舉例來說,帶有惡意的第三者可以產(chǎn)生一個可執(zhí)行代碼,以便通過修改編譯器來直接讀寫對象私有字段中保存的數(shù)據(jù)。此外,這個人可以創(chuàng)建一個程序來產(chǎn)生一個可執(zhí)行代碼,所述代碼使用用戶輸入等方法來讀取對象中保存的數(shù)據(jù)。另外,只要某人通過請求一個指針而獲取了對于存儲器的直接訪問,則很有可能得到對象中保存的數(shù)據(jù)。
另一方面,對Java而言,聲明為私有字段的字段是使用顯示所述字段具有私有屬性的Java字節(jié)代碼來編譯的。當(dāng)KVM將一個類文件擴展到RAM 409時,歸檔的文件將會保持它的私有屬性。因此,如果第三者通過修改編譯器而產(chǎn)生了一個用于讀取對象私有字段中保存的數(shù)據(jù)的字節(jié)代碼,那么KVM或JAM將會檢測到所述代碼的生成,由此第三者無法獲取對象中保存的數(shù)據(jù)。此外,Java并不支持指針,因此,帶有惡意的第三者無法借助指針來獲取對于存儲器的直接訪問,由此無法得到對象中保存的數(shù)據(jù)。
根據(jù)上述理由,在Java中,對象是在字節(jié)代碼等級和程序設(shè)計語言等級上以一種完全的方式來進行封裝的。
1-2.實施例的操作接下來是實施例的操作。
假設(shè)移動電話40經(jīng)由分組通信網(wǎng)絡(luò)30以及因特網(wǎng)20而與內(nèi)容服務(wù)器10進行分組通信,并且移動電話40從內(nèi)容服務(wù)器10下載Java AP并將其保存在非易失存儲器410中。另外,除了下載的JavaAP(JAR文件和ADF文件),地址薄數(shù)據(jù)、電子郵件數(shù)據(jù)以及用戶數(shù)據(jù)也保存在非易失存儲器410中。
1-2-1.對象的生成處理移動電話40中的CPU 405所執(zhí)行的對象生成處理將參考圖8來進行描述。對象生成處理是作為一個JAM的功能而由CPU 405來執(zhí)行的,舉例來說,所述處理是在通過操作輸入而從顯示器顯示的程序列表中指定了所執(zhí)行程序的時候才得以執(zhí)行的。舉例來說,當(dāng)在預(yù)定時間指示執(zhí)行一個程序的時候,當(dāng)其他已執(zhí)行程序指示執(zhí)行一個程序的時候,或者在經(jīng)由電子郵件等等而從移動電話40外部指示執(zhí)行一個程序的時候,用于指示執(zhí)行一個程序的實施例并不局限于操作輸入。
如圖所示,移動電話40中的CPU 405經(jīng)由一個輸入操作而將指定的程序規(guī)定為所執(zhí)行的程序(步驟S501)。接下來,CPU 405判定所指定的程序是下載的Java AP還是本機程序(步驟S102)。如上所述,為了顯示所述程序是一個本機程序,將識別信息提供給了本機程序。因此,CPU 405通過確定是否向所述程序提供上述識別信息來確定所述程序是下載的Java AP還是本機程序。
因此,如果CPU 405判定所述程序是一個本機程序(步驟S102否),那么CPU 405將會終止對象生成處理并且開始執(zhí)行作為所執(zhí)行程序的本機程序。然后,CPU 405基于所執(zhí)行的本機程序來進行處理。
在這種情況下,當(dāng)所要執(zhí)行的程序是一個本機程序時,沒有必要使用完全封裝對象或不完全封裝對象,也沒有必要在執(zhí)行本機程序的時候操作JAM的一個訪問限制功能。因此,在執(zhí)行本機程序的時候并沒有執(zhí)行一個依據(jù)JAM的訪問限制。因此,本機程序可以訪問移動電話40中保存的可選資源,也可以訪問網(wǎng)絡(luò)上的可選資源。
另一方面,如果CPU 405判定所述程序是下載的Java AP(步驟S102是),那么,舉例來說,CPU 405通過為Java AP分析程序內(nèi)容而從非易失存儲器410保存的不同數(shù)據(jù)中指定那些在Java AP中使用的數(shù)據(jù)。當(dāng)Java AP指定了所要使用的數(shù)據(jù)的時候,由于JAR文件中保存的數(shù)據(jù)是內(nèi)容供應(yīng)商為了提供Java AP而作為執(zhí)行Java AP所必需的數(shù)據(jù)來準(zhǔn)備的,因此,保存在JAR文件中的數(shù)據(jù)將會作為未指定數(shù)據(jù)而被排除。
接下來,CPU 405參考ADF文件中包含的信任應(yīng)用識別符,由此確定管理指定數(shù)據(jù)的對象類型是“完全封裝對象”還是“不完全封裝對象”(步驟S104)。舉例來說,當(dāng)信任應(yīng)用識別符為“1”時,與ADF文件相對應(yīng)的Java AP是一個信任應(yīng)用,因此CPU 405把管理指定數(shù)據(jù)的對象類型判定為“完全封裝對象”。
基于步驟S103的指定數(shù)據(jù)以及步驟S104的已確定對象類型,CPU 405產(chǎn)生一個完全封裝對象或是一個不完全封裝的對象(步驟105)。舉例來說,在步驟104,如果CPU 405把管理數(shù)據(jù)的對象類型確定為“完全封裝對象”,那么CPU 405會把一個完全封裝API激活到原始擴展庫中,并且為指定數(shù)據(jù)的各個數(shù)據(jù)項產(chǎn)生完全封裝對象。此外,在步驟S104,如果把管理數(shù)據(jù)的對象類型確定為“不完全封裝對象”,那么CPU 405將會把一個不完全封裝的API激活到原始擴展庫中,并為指定數(shù)據(jù)的每個數(shù)據(jù)項產(chǎn)生不完全封裝對象。
接下來,CPU 405將一個對象存入單獨的便箋式存儲器410b(步驟S106)并且終止了對象生成處理,其中所述對象即為生成的完全封裝對象或生成的不完全封裝對象。在步驟S105,生成的完全封裝對象或不完全封裝對象可以保存在公共便箋式存儲器410c中。
1-2-2.訪問管理的處理接下來參考圖9來描述移動電話40中的CPU所執(zhí)行的訪問管理處理。訪問管理處理是作為JAM的一個功能而由CPU 405執(zhí)行的,當(dāng)在下載的Java AP執(zhí)行過程中產(chǎn)生了一個訪問請求的時候,所述訪問處理是作為一個中斷處理來執(zhí)行的。
如圖所示,移動電話40中的CPU 405辨別所請求的接入點是否處于預(yù)先批準(zhǔn)的資源范圍以內(nèi),并且確定(對于所述資源的)所述訪問是否得到許可(步驟S201)。為了確定訪問授權(quán),在執(zhí)行下載的Java AP的時候,CPU 405會在Java AP的執(zhí)行過程中把資源局限于如下所示下載Java AP的內(nèi)容服務(wù)器10,其中所述Java AP是由寫入Java AP的AD之中的URL來指定的,指派給Java AP的JAR存儲器410a,在單獨便箋式存儲器410b之中的存儲區(qū)以及公共便箋式存儲器410c。
因此,在所請求的一個或多個訪問點是上述任何資源的情況下,CPU 405批準(zhǔn)所述訪問。然而,如果所請求的一個或多個訪問點并不處于上述一種或多種資源之中,那么CPU 405不會批準(zhǔn)所述訪問。
接下來,CPU 405向請求下載所述訪問的Java AP告知所述訪問是否得到授權(quán)(步驟S202)并且終止訪問管理的處理。此外,當(dāng)處于執(zhí)行的Java AP接收到JAM執(zhí)行的授權(quán)結(jié)果時,在批準(zhǔn)訪問的時候,Java AP將會基于訪問請求來執(zhí)行所述處理;然而,在并未批準(zhǔn)訪問的時候,Java AP會基于訪問請求來取消所述處理。
當(dāng)移動電話40中的CPU 405執(zhí)行所下載的Java AP的時候,CPU 405會在圖8所示對象生成處理之后激活Java AP。此外,在執(zhí)行所下載的Java AP的過程中,CPU 405會執(zhí)行圖9所示的訪問管理處理。因此,在執(zhí)行所下載的Java AP的過程中,移動電話40總是限于訪問資源。舉例來說,移動電話40無法訪問地址薄數(shù)據(jù),電子郵件數(shù)據(jù)、呼入和呼出歷史數(shù)據(jù)、用戶數(shù)據(jù)以及諸如內(nèi)容這樣的其他數(shù)據(jù)。
出于上述原因,移動電話40中的CPU 405會在對象生成處理中指定Java AP使用的數(shù)據(jù),從而將其激活,并且為所述指定數(shù)據(jù)產(chǎn)生一個完全封裝對象或不完全封裝對象,以及將其保存在便箋式存儲器410b中。如上所述,公共便箋式存儲器410c是準(zhǔn)許移動電話40訪問的資源,即使是在所述訪問受到JAM限制的情況下。下載到移動電話40的Java AP以這樣一種方式生成,其中Java AP訪問一個完全封裝對象或一個不完全封裝對象,這兩個對象都保存在公共便箋式存儲器410c中,所述Java AP通過使用歸屬于所述對象的方法來指示所述對象管理對象中的數(shù)據(jù)。
舉例來說,在產(chǎn)生了一個使用地址薄數(shù)據(jù)的不信任應(yīng)用的時候,上述對象生成處理會為地址薄數(shù)據(jù)產(chǎn)生一個完全封裝對象,所述完全封裝對象將會保存在公共便箋式存儲器410c中。此外,不信任應(yīng)用通過使用歸屬于所述對象的方法來命令完全封裝對象管理所述對象中的數(shù)據(jù),其中完全封裝對象是為地址薄數(shù)據(jù)產(chǎn)生的。因此,在顯示器上將會顯示一部分歸屬于完全封裝對象的地址薄數(shù)據(jù),但不會將歸屬于完全封裝對象的數(shù)據(jù)提供給不信任應(yīng)用。
在現(xiàn)有技術(shù)中,Java AP不能訪問地址薄數(shù)據(jù)、電子郵件數(shù)據(jù)、呼入和呼出歷史數(shù)據(jù)、用戶數(shù)據(jù)以及其他數(shù)據(jù),由此相對于所下載的Java AP來確保數(shù)據(jù)安全。與之相反,根據(jù)本發(fā)明,由于并未使用完全封裝對象來向Java AP提供數(shù)據(jù),因此有可能相對于所下載的Java AP來確保安全性,并且經(jīng)由一個完全封裝對象來顯示那些不準(zhǔn)許訪問的數(shù)據(jù)。因此,在本發(fā)明中,下載的Java AP能夠執(zhí)行移動電話40中的不同功能。換句話說,Java AP的功能將會變得更加豐富。
此外,根據(jù)本發(fā)明,Java程序員能在不考慮數(shù)據(jù)訪問方法或是數(shù)據(jù)安全性的情況下編制一個程序來訪問數(shù)據(jù)。因此,在生產(chǎn)率和程序可靠性方面,程序員能夠更有效的進行工作。
1-2-3.Java AP終止處理接下來參考圖10來描述移動電話40中的CPU 405所執(zhí)行的Java AP終止處理。Java AP終止處理是作為一個JAM功能而由CPU 405執(zhí)行的,在產(chǎn)生了Java AP的一個執(zhí)行終止請求的時候,所述處理是作為中斷處理來執(zhí)行的。
如圖所示,在產(chǎn)生了一個Java AP終止請求的時候,移動電話40中的CPU 405將會刪除公共便箋式存儲器401c中保存的完全封裝對象和不完全封裝對象(步驟S301)。在步驟S301中刪除的完全封裝對象和不完全封裝對象是在Java AP激活處理的對象生成處理中產(chǎn)生(參見圖8)并且保存在公共便箋式存儲器410c中。在從公共便箋式存儲器410c中刪除所述對象之后,CPU 405將會結(jié)束所述JavaAP終止處理。
此外,在激活所下載的Java AP的時候,通過生成完全封裝對象和不完全封裝對象,以及將所述對象存入公共便箋式存儲器401c,并且在停止執(zhí)行所下載的Java AP的時候,通過從公共便箋式存儲器410c中刪除完全封裝對象和不完全封裝對象,確保了移動電話40的存儲器資源的有效使用。
2.第二實施例在第一實施例中,無論Java AP是一個信任應(yīng)用還是一個不信任應(yīng)用,不管數(shù)據(jù)類型怎樣,都會產(chǎn)生一個完全封裝對象或不完全封裝對象。然而在第二實施例中,完全封裝對象或不完全封裝對象取決于提供給Java AP的信任等級以及確保數(shù)據(jù)安全所需要的重要性等級。此外,可用對象是根據(jù)Java AP的信任等級來決定的。
2-1.實施例的結(jié)構(gòu)在第一實施例中,在并未向一個Java AP給予信任的情況下,ADF的信任應(yīng)用識別符的值為零,在向Java AP給予了信任的情況下,所述值為1。然而在第二實施例中,根據(jù)給予一個Java AP的信任等級而設(shè)定了等級“高”、“中”、“低”(下文稱為“JavaAP的信任等級”)。舉例來說,“提供給Java AP的信任等級是高”意味著Java AP恰當(dāng)管理數(shù)據(jù)的概率要高于預(yù)定的標(biāo)準(zhǔn)概率。
2-1-1.移動電話的結(jié)構(gòu)如圖11所示,重要性等級表格410d安裝在移動電話40的非易失存儲器410中。
如圖所示,對那些需要確保較高等級的數(shù)據(jù)而言,例如地址薄數(shù)據(jù)、電子郵件數(shù)據(jù)、呼入和呼出歷史數(shù)據(jù)、用戶數(shù)據(jù)等等,它們各自保存在移動電話40中,其重要性等級設(shè)定為“高”。此外,對那些需要在中間等級受到保護的數(shù)據(jù)而言,其重要性等級將會設(shè)定為“中”,而對那些需要得到低等級保護的數(shù)據(jù)而言,其重要性等級將會設(shè)定為“低”。
此外,如圖12所示,在移動電話40的非易失存儲器410中安裝了應(yīng)用數(shù)據(jù)關(guān)系表格410e。在這個表格中,基于數(shù)據(jù)重要性等級以及Java AP信任等級來確定將數(shù)據(jù)作為完全封裝類型或是不完全封裝類型來進行管理。舉例來說,在這個圖中,在Java AP處于高信任等級的情況下,無論數(shù)據(jù)重要性怎樣,都會設(shè)定一個完全封裝類型。此外,相對于處在中等信任等級的Java AP而言,完全封裝類型將會設(shè)定在高或中的數(shù)據(jù)重要性等級,不完全封裝類型將會設(shè)定為低的重要性等級。
此外,根據(jù)Java AP信任等級,在應(yīng)用數(shù)據(jù)關(guān)系表格410e中安裝了一個可用對象。舉例來說,在圖中,當(dāng)Java AP處于高信任等級的時候,Java AP能夠使用一個完全封裝對象和一個不完全封裝對象。因此,無論數(shù)據(jù)重要性等級怎樣,Java AP都能使用一個所要生成的不完全封裝對象。此外,處于低信任等級的Java AP能夠使用一個完全封裝對象和一個不完全封裝對象。因此,在數(shù)據(jù)重要性等級為高或中的時候,Java AP能夠使用一個完全封裝對象,而在數(shù)據(jù)重要性等級為低的時候,Java AP能夠使用一個不完全封裝對象。
上述重要性等級表格410d以及應(yīng)用數(shù)據(jù)關(guān)系表格410e的內(nèi)容是在移動電話40發(fā)貨的時候預(yù)先注冊的;然而,對于從服務(wù)器下載的內(nèi)容而言,數(shù)據(jù)是在下載的時候保存在重要性等級表格410d中的。此外,用戶可以使用移動電話40來將數(shù)值輸入上述表格。
除了這個實施例中描述的結(jié)構(gòu)之外,其他結(jié)構(gòu)都與第一實施例相同,因此將會省略這些描述。
2-2.實施例的操作以下描述本實施例的操作。
下載的Java AP、地址薄數(shù)據(jù)、電子郵件數(shù)據(jù)、用戶數(shù)據(jù)等等都保存在非易失存儲器410中,并且圖11和圖12所顯示的數(shù)據(jù)內(nèi)容保存在重要性等級表格410d和應(yīng)用數(shù)據(jù)關(guān)系表格410e中。
2-2-1.對象生成處理接下來參考圖8所示的流程圖來描述對象生成處理。
從步驟S101到步驟S103的操作與第一實施例相同。接下來,CPU 405通過使用非易失存儲器410來引用一個與Java AP相對應(yīng)的ADF信任識別符,并且獲取Java AP的信任等級。然后,CPU 405引用應(yīng)用數(shù)據(jù)關(guān)系表格410e,并且基于數(shù)據(jù)的重要性等級以及JavaAP的信任等級來確定管理數(shù)據(jù)的對象類型是“完全封裝類型”還是“不完全封裝類型”(步驟S104)。舉例來說,在Java AP所用數(shù)據(jù)是地址薄數(shù)據(jù)的情況下,CPU 405通過參考重要性等級表格410d來讀出地址薄數(shù)據(jù)的重要性等級,并且將所述重要性等級當(dāng)作“高”。此外,舉例來說,在從對應(yīng)于Java AP的ADF信任識別符中獲取的信任等級為“低”的時候,通過應(yīng)用數(shù)據(jù)關(guān)系表格410e而將管理地址薄數(shù)據(jù)的對象類型確定為“完全封裝類型”。
基于步驟S103的指定數(shù)據(jù)以及步驟S104的已確定對象類型,CPU 405產(chǎn)生一個完全封裝對象或不完全封裝對象(步驟S104)。在步驟S104中確定的對象類型是完全封裝類型的情況下,CPU 405把完全封裝API激活到原始擴展庫中,并且產(chǎn)生一個完全封裝對象。此外,在步驟S104中確定的對象類型是不完全封裝類型的情況下,CPU 405把不完全封裝API激活到原始擴展庫中,并且產(chǎn)生一個不完全封裝對象。
接下來,CPU 405將生成的完全封裝對象或不完全封裝對象存入便箋式存儲器410c(步驟S106),并且終止對象生成處理。
此外,在Java AP所使用的多個數(shù)據(jù)是在步驟S103中指定的情況下,將會為數(shù)據(jù)的各個數(shù)據(jù)項重復(fù)步驟S104到S106的處理,以便為指定數(shù)據(jù)的各個數(shù)據(jù)項產(chǎn)生完全封裝對象或不完全封裝對象,并將所述對象保存在公共便箋式存儲器410c中。然后,CPU 405激活一個指定為所執(zhí)行的程序的Java AP,在終止了對象生成處理之后,CPU 405基于所述程序來執(zhí)行所述處理。
2-2-2.對象應(yīng)用管理的處理接下來參考圖13來描述移動電話40中的CPU 405所執(zhí)行的對象應(yīng)用管理的處理。
如圖所示,當(dāng)Java AP產(chǎn)生了一個要求在Java AP執(zhí)行過程中使用對象的請求的時候,移動電話40中的CPU 405通過參考應(yīng)用數(shù)據(jù)關(guān)系表格410e來判別是否批準(zhǔn)Java AP使用該對象,并且確定是否批準(zhǔn)使用該對象(步驟S401)。在這種情況下,如應(yīng)用數(shù)據(jù)關(guān)系表格410e(圖12)中所示,完全封裝對象和不完全封裝對象都是可用的,因此將會批準(zhǔn)使用一個對象。
接下來,CPU 405向請求使用所述對象的Java AP通知是否批準(zhǔn)使用所述對象(步驟S202),并且終止對象應(yīng)用管理處理。當(dāng)處于執(zhí)行過程中的Java AP接收到上述通知時,在批準(zhǔn)使用對象的情況下,Java AP將會基于請求來執(zhí)行處理,或在并未批準(zhǔn)使用所述對象的情況下,Java AP將會基于請求而取消處理。
在這種情況下,完全封裝對象和不完全封裝對象都被批準(zhǔn)使用,并且Java AP通過使用完全封裝對象或不完全封裝對象來訪問數(shù)據(jù)。
由于生成的一個對象是基于Java AP信任等級以及數(shù)據(jù)重要性等級來確定的,并且所使用的對象是基于Java AP的信任等級來確定的,因此,使Java AP能夠訪問數(shù)據(jù)的授權(quán)等級(1.提供給Java AP的數(shù)據(jù),2.Java AP獲取的數(shù)據(jù)而不是提供給Java AP的數(shù)據(jù),3.既沒有提供也沒有得到的數(shù)據(jù))是根據(jù)數(shù)據(jù)和Java AP的不同組合來設(shè)定的。因此,不同的Java AP(應(yīng)用程序)是通過保持?jǐn)?shù)據(jù)安全性而在移動電話40中得以執(zhí)行的。此外,可以通過使用重要性等級表格410d以及應(yīng)用數(shù)據(jù)關(guān)系表格410e來設(shè)定授權(quán)等級。然后,當(dāng)Java程序員編寫一個訪問數(shù)據(jù)的程序時,Java程序員能夠在不考慮數(shù)據(jù)訪問方法的情況下使用一個對象,其中所述對象的授權(quán)等級是在上述表格中預(yù)先確定的。因此,就生產(chǎn)率和程序可靠性而言,程序員能夠更有效地進行工作。
3.修改雖然參考本發(fā)明最為公知的操作模式以及實施例而對本發(fā)明進行了描述,但是對本領(lǐng)域的技術(shù)人員來說,本發(fā)明的其他模式、實施例和優(yōu)點也是顯而易見的,在這里將會考慮這些內(nèi)容。盡管本領(lǐng)域技術(shù)人員承認(rèn)可以預(yù)見到本發(fā)明的其他實施例,但是以下權(quán)利要求將會定義本發(fā)明的較寬范圍。此外,本發(fā)明可以具有如下修改。
(1)在第二實施例中,將應(yīng)用數(shù)據(jù)關(guān)系表格410e中設(shè)定的內(nèi)容顯示為一個實例。圖14中顯示的內(nèi)容也可以如應(yīng)用數(shù)據(jù)關(guān)系表格410e所示來加以設(shè)定。通過參考應(yīng)用數(shù)據(jù)關(guān)系表格410e,無論信任應(yīng)用識別符的信任等級如何,在數(shù)據(jù)重要性等級為“高”的情況下,CPU 405都會產(chǎn)生一個完全封裝對象,而在數(shù)據(jù)重要性等級為“中”或“低”的情況下,CPU 405會產(chǎn)生一個不完全封裝對象。然后,在執(zhí)行Java AP的過程中,在與Java AP相對應(yīng)的信任應(yīng)用識別符的信任等級為“低”的情況下,Java AP既不使用完全封裝對象也不使用不完全封裝對象,在信任應(yīng)用識別符的信任等級為“中”的情況下,Java AP僅使用完全封裝對象,而在信任應(yīng)用識別符的信任等級為“高”的情況下,Java AP既使用完全封裝對象又使用不完全封裝對象。
由此使得CPU 405能夠僅僅基于數(shù)據(jù)重要性等級來確定所要生成的對象,并且在使用所生成對象的情況下,僅僅基于提供給JavaAP的信任等級來確定是否使用所生成的對象。
(2)在第二實施例中使用了重要性等級表格410d和應(yīng)用數(shù)據(jù)關(guān)系表格410e。然而,這些表格僅僅是數(shù)據(jù)配置的實例,并且可以根據(jù)通信設(shè)備來選擇最佳數(shù)據(jù)配置。舉例來說,在向地址薄數(shù)據(jù)、電子郵件數(shù)據(jù)以及內(nèi)容這些數(shù)據(jù)提供了顯示重要性等級的數(shù)據(jù)的情況下,毫無必要使用重要性等級表格410d。
(3)在以上實施例中,在與Java AP相對應(yīng)的ADF中包含的信任應(yīng)用識別符被用于識別所下載的Java AP是一個信任應(yīng)用還是一個不信任應(yīng)用,所述信任應(yīng)用識別符也可用于識別Java AP的信任等級。然而,這僅僅是一個實例。另一個實例則如下所示為了管理那些與提供給Java AP的信任等級相關(guān)聯(lián)的數(shù)據(jù)(例如Java AP的信任等級或者證明Java AP是一個信任應(yīng)用),通過安裝一個管理服務(wù)器設(shè)備,在將與提供給Java AP的信任等級相關(guān)聯(lián)的數(shù)據(jù)存入一個管理服務(wù)器的情況下,移動電話40中的CPU 405從管理服務(wù)器設(shè)備接收數(shù)據(jù)。此外,在上述實施例中描述的是使用一個Java AP,其中所述Java AP是從連接到因特網(wǎng)20的內(nèi)容服務(wù)器10下載的。然而,本發(fā)明作用于一個并非本機程序的程序,也就是在售出移動電話40之后而被存入移動電話40的存儲器的程序。舉例來說,在包含紅外接口的移動電話40通過紅外通信而從諸如具有紅外接口的個人計算機這類通信設(shè)備接收程序的情況下,以及在提供給程序的信任等級之上,從管理服務(wù)器接收數(shù)據(jù)的情況下。
(4)在上述實施例中,完全封裝對象和不完全封裝對象是在指示執(zhí)行所下載的Java AP的情況下產(chǎn)生的,用于產(chǎn)生完全封裝對象和不完全封裝對象的定時并不局限于指示執(zhí)行Java AP的時間。舉例來說,對象也可以在Java AP引用數(shù)據(jù)的時候產(chǎn)生。
(5)在上述實施例中,內(nèi)容服務(wù)器10連接到因特網(wǎng)20。然而,內(nèi)容服務(wù)器10也可以直接連接到移動分組通信網(wǎng)絡(luò)30中的網(wǎng)關(guān)服務(wù)器31。
(6)在上述實施例中,如圖15中通過陰影線所示,已經(jīng)描述了將本發(fā)明應(yīng)用于移動電話40,其中作為一種結(jié)構(gòu),所述移動電話包含KVM、CLDC,并且J2ME具有原始Java擴展簡表。然而,Java執(zhí)行環(huán)境并不僅僅局限于KVM和J2ME的組合。此外,本發(fā)明中使用的通信設(shè)備并不局限于移動電話。
舉例來說,如圖所示,可以將MIDP(移動信息設(shè)備簡表)用作一個J2ME簡表,以此取代原始Java擴展簡表。此外,可以在所述結(jié)構(gòu)中將JVM而不是KVM以及CDC(連接設(shè)備配置)而不是CLDC用于J2ME的結(jié)構(gòu)。此外,在所述結(jié)構(gòu)中,可以把用于具有液晶顯示器的電話的簡表、用于TV的簡表、用于汽車導(dǎo)航系統(tǒng)等等的簡表用作J2ME的簡表。此外,還可以在所述結(jié)構(gòu)中使用熱點、J2SE(Java2標(biāo)準(zhǔn)版)或J2EE(Java2企業(yè)版)。
(7)從上述Java執(zhí)行環(huán)境的修改中可以明顯看出,本發(fā)明可以應(yīng)用于具有通信功能的各種電子設(shè)備,例如PHS(個人手持電話系統(tǒng))、PDA(個人數(shù)字助理)、汽車導(dǎo)航設(shè)備或個人計算機。此外,本發(fā)明并不局限于那些保存在移動分組通信網(wǎng)絡(luò)30中的通信設(shè)備。舉例來說,本發(fā)明可以應(yīng)用于圖16所示的通信系統(tǒng)2中的個人計算機70A、70B和70C。
(8)此外,在上述實施例中,已經(jīng)描述了使用一個以Java程序設(shè)計語言編寫的Java AP,然而所述程序設(shè)計語言并不局限于Java。舉例來說,根據(jù)系統(tǒng)所需要的安全性等級,可以使用C++來構(gòu)造所述系統(tǒng)。
如上所述,由于對于存入通信設(shè)備的數(shù)據(jù)所進行的訪問控制是根據(jù)提供給下載程序的信任等級以及數(shù)據(jù)重要性等級來執(zhí)行的,因此本發(fā)明可以通過確保數(shù)據(jù)安全而由不同程序來管理數(shù)據(jù)。
權(quán)利要求
1.一種通信設(shè)備,包括一個用于保存數(shù)據(jù)的存儲裝置;一個使用一種訪問數(shù)據(jù)的方法來獲取一個程序的獲取裝置;一個用于執(zhí)行所述程序并且根據(jù)所述程序來使用那些允許所述程序使用的數(shù)據(jù)的執(zhí)行裝置;一個從所述存儲裝置保存的數(shù)據(jù)中指定所述程序所要使用的數(shù)據(jù)的指定裝置;一個為所述程序選擇不完全封裝對象或完全封裝對象的選擇裝置,其中不完全封裝對象是一個使用方法來把該對象中包含的數(shù)據(jù)提供給訪問該對象的程序的對象,并且完全封裝對象則是并未使用這種方法的對象;一個根據(jù)所述選擇裝置做出的選擇來為所述程序產(chǎn)生一個不完全封裝對象或一個完全封裝對象的對象生成裝置,其中生成的對象包括所述指定裝置所指定的數(shù)據(jù);以及一個訪問控制裝置,用于控制對于所述指定裝置所指定的數(shù)據(jù)的訪問,并且允許所述執(zhí)行裝置僅僅經(jīng)由所述對象生成裝置為所述程序生成的對象來訪問數(shù)據(jù)。
2.根據(jù)權(quán)利要求1的通信設(shè)備,其中所述程序包括指示所述程序可靠性的信息,并且所述選擇裝置基于該信息來選擇所述對象。
3.根據(jù)權(quán)利要求1的通信設(shè)備,其中所述程序包括指示所述數(shù)據(jù)所需安全等級的第一信息以及指示所述程序可靠性的第二信息;所述選擇裝置基于第一信息來選擇所述對象;以及所述訪問控制裝置基于第二信息來確定所述執(zhí)行裝置是否使用所述對象來訪問所述數(shù)據(jù)。
4.根據(jù)權(quán)利要求1的通信設(shè)備,其中在所述程序的可靠性為高的情況下,所述執(zhí)行裝置允許使用所述不完全封裝對象以及所述完全封裝對象;在所述程序的可靠性為中的情況下,所述執(zhí)行裝置只允許使用所述完全封裝對象;在所述程序的可靠性為低的情況下,所述執(zhí)行裝置既不允許使用所述不完全封裝對象也不允許使用完全封裝對象。
5.根據(jù)權(quán)利要求1的通信設(shè)備,其中所述程序包括指示所述數(shù)據(jù)所需安全等級的第一信息以及指示所述程序的可靠性的第二信息;所述選擇裝置基于第一信息和第二信息來選擇所述對象;以及所述訪問控制裝置基于第二信息來確定所述執(zhí)行裝置是否使用所述對象來訪問所述數(shù)據(jù)。
6.根據(jù)權(quán)利要求1的通信設(shè)備,其中所述通信設(shè)備還包括一個刪除裝置,用于在結(jié)束執(zhí)行所述程序的時候刪除所述生成裝置產(chǎn)生的所述對象。
全文摘要
移動電話接收一個程序和關(guān)于該程序的信任應(yīng)用的識別信息,指定那些在執(zhí)行程序的過程中將要使用的數(shù)據(jù),基于信任應(yīng)用的識別信息來選擇將要產(chǎn)生的不完全封裝對象或完全封裝對象,由此產(chǎn)生其中一種對象,并且在執(zhí)行程序的時候,僅僅使用所生成的對象來使用數(shù)據(jù)。
文檔編號G06F21/00GK1499359SQ200310102960
公開日2004年5月26日 申請日期2003年10月30日 優(yōu)先權(quán)日2002年10月30日
發(fā)明者神谷大, 山田和宏, 近藤隆, 宏 申請人:株式會社Ntt都科摩