本發(fā)明涉及一種例如能夠安裝應(yīng)用的圖像形成裝置,并且涉及一種用于清除應(yīng)用程序(以下稱為“應(yīng)用”)的加載區(qū)域的應(yīng)用的刪除方法。
背景技術(shù):
近年來,在圖像形成裝置中,提供有諸如Java(注冊商標(biāo)(以下省略))環(huán)境等的應(yīng)用操作環(huán)境。提出了利用Java的程序可移植性來提供可擴(kuò)展應(yīng)用的技術(shù)。為了提高圖像形成裝置的功能性及可用性,人們創(chuàng)建在諸如上述Java環(huán)境等的環(huán)境下運(yùn)行的應(yīng)用,并將該應(yīng)用安裝在圖像形成裝置中,使得能夠利用該應(yīng)用來實(shí)現(xiàn)所需的功能。應(yīng)用平臺的示例有OSGi(開放服務(wù)網(wǎng)關(guān)計劃)服務(wù)平臺(以下簡稱“OSGi”),這是面向內(nèi)嵌設(shè)備的Java應(yīng)用平臺。OSGi定義“束”(bundle)作為用于管理軟件模塊的單位,并且還定義用于管理包括安裝/開始/停止/更新/卸載的“生命周期”(life cycle)的規(guī)范。這里,“束”是指Java模塊,并且在本說明書中與應(yīng)用同義。因而,在下文中將把應(yīng)用稱為束。這樣的應(yīng)用平臺能夠向束,提供諸如復(fù)印、掃描、打印等的內(nèi)嵌功能。
當(dāng)在這種圖像形成裝置中出現(xiàn)與束相關(guān)的問題時,處置該問題的一種可能方法,是由維修人員清除存儲設(shè)備的束加載區(qū)域,以刪除由束保持的數(shù)據(jù),而后嘗試恢復(fù)功能性。如日本特開平09-034755號公報所公開的,已提出了輕松地選擇并刪除要刪除的文件的方法。此外,可以考慮如下的方法,即一次性刪除束加載區(qū)域和由束保持的數(shù)據(jù)兩者,從而無需由維修人員選擇要刪除的文件。
然而,在后者的情況下,可能也會擦除與問題明顯無關(guān)的束的數(shù)據(jù)。此外,在擦除了數(shù)據(jù)之后,后來安裝的束也必須被重新安裝,這對用戶而言是繁瑣的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種圖像形成裝置以及應(yīng)用的刪除方法,所述圖像形成裝置以及應(yīng)用的刪除方法通過簡化要刪除的數(shù)據(jù)的選擇來提高可操作性,并且有效地刪除所需的應(yīng)用,同時在最大可能的程度上保留與問題的解決無關(guān)的應(yīng)用(或其加載區(qū)域)。
本發(fā)明具有以下的結(jié)構(gòu)。
根據(jù)本發(fā)明的一個方面,提供了一種能夠添加和刪除應(yīng)用的圖像形成裝置,所述圖像形成裝置包括:指定單元,其用于對應(yīng)用和要刪除的文件進(jìn)行指定;以及刪除單元,其用于刪除與由所述指定單元指定的所述應(yīng)用相關(guān)聯(lián)的指定的文件。
根據(jù)本發(fā)明的另一方面,提供了一種圖像形成裝置中的應(yīng)用的刪除方法,所述圖像形成裝置能夠添加和刪除應(yīng)用,所述刪除方法包括:指定步驟,對應(yīng)用和要刪除的文件進(jìn)行指定;以及刪除步驟,刪除與在所述指定步驟中指定的所述應(yīng)用相關(guān)聯(lián)的指定的文件。
根據(jù)本發(fā)明,能夠通過簡單的操作來有效地指定應(yīng)用和刪除對象,并且能夠刪除與指定的應(yīng)用相關(guān)的刪除對象。
通過以下參照附圖對示例性實(shí)施例的描述,本發(fā)明的其他特征將變得清楚。
附圖說明
圖1是例示圖像形成裝置的硬件結(jié)構(gòu)的圖。
圖2是例示圖像形成裝置的軟件模塊層級的圖。
圖3是例示安裝束的流程的框圖。
圖4是例示束的安裝以及安裝束的束加載區(qū)域的框圖。
圖5是例示當(dāng)擦除束加載區(qū)域時的總體操作的框圖。
圖6是例示用于指定清除類型的UI的圖。
圖7是例示清除指定文件的內(nèi)容的示例的圖。
圖8是例示由清除指定文件所指定的束指定和動作指定的表。
圖9是表示清除類型編號與在清除指定文件中記載的內(nèi)容之間的關(guān)系的表。
圖10是例示從指定清除類型編號到重啟后擦除處理的序列的序列圖。
圖11是例示當(dāng)OSGi擴(kuò)展部211在啟動時擦除束加載區(qū)域時執(zhí)行的處理的流程圖。
圖12是例示用于指定在從工廠出貨時執(zhí)行的出廠前清除的UI的圖。
圖13是例示在出廠前清除時使用的清除指定文件的內(nèi)容的示例的圖。
圖14是例示指定對于出廠前清除是否存在例外的清單的圖。
圖15是例示從指定出廠前清除到重啟后擦除處理的序列的序列圖。
圖16是例示當(dāng)OSGi擴(kuò)展部211在出廠前清除期間擦除束加載區(qū)域時執(zhí)行的處理的流程圖。
圖17是例示片段束的概念圖。
圖18是例示針對片段束的清除指定文件的內(nèi)容的示例的圖。
圖19是例示當(dāng)OSGi擴(kuò)展部211在指定了片段束時擦除束加載區(qū)域時執(zhí)行的處理的流程圖。
圖20是例示具有束ID指定的清除指定文件的內(nèi)容的示例的圖。
圖21是例示具有束狀況指定的清除指定文件的內(nèi)容的示例的圖。
具體實(shí)施方式
在下文中,將參照附圖來描述本發(fā)明的實(shí)施例。
第一實(shí)施例
圖像形成裝置的硬件結(jié)構(gòu)
圖1是例示包括打印功能、掃描功能、網(wǎng)絡(luò)通信功能等的圖像形成裝置130的硬件結(jié)構(gòu)的圖。在圖1中,控制器100是圖像形成裝置130的控制器??刂破?00電連接到掃描器單元113、打印機(jī)單元114等,并 且還通過LAN 116連接到外部設(shè)備。
CPU 101基于存儲在ROM 102中的控制程序等,來進(jìn)行對連接的各類硬件的訪問的總體控制,并且還進(jìn)行在控制器內(nèi)執(zhí)行的各類處理的總體控制。ROM 102是只讀的非易失性存儲區(qū)域,并且存儲圖像形成裝置130的引導(dǎo)程序、固件等。RAM 103是用于CPU 101的操作的系統(tǒng)工作存儲器,并且是臨時存儲各類數(shù)據(jù)的存儲器。RAM 103由FRAM(注冊商標(biāo))或SRAM、DRAM等構(gòu)成,其中,F(xiàn)RAM(注冊商標(biāo))或SRAM即使在電源已切斷后也能夠保持存儲的內(nèi)容,DRAM的存儲內(nèi)容在電源被切斷后丟失。HDD 104是非易失性存儲區(qū)域,并且存儲系統(tǒng)束等。在HDD 104中,存儲固件,該固件包括如圖3所示要安裝的、稱為束的應(yīng)用。
操作單元I/F 105是用于將系統(tǒng)總線119和操作單元118連接的接口單元。具體而言,操作單元I/F 105從系統(tǒng)總線119接收要在操作單元118中顯示的數(shù)據(jù),并顯示該數(shù)據(jù),并且把來自操作單元118的輸入信息,輸出到系統(tǒng)總線119。操作單元118被用戶用來向圖像形成裝置130進(jìn)行指示,向圖像形成裝置130提供信息,等等。網(wǎng)絡(luò)I/F 106連接到LAN 116、WAN 117及系統(tǒng)總線119,并且在與外部之間輸入/輸出信息。掃描器I/F108校正、處理和編輯從掃描器單元113接收的圖像數(shù)據(jù)。圖像形成單元109對圖像數(shù)據(jù)進(jìn)行矢量轉(zhuǎn)換、圖像壓縮及解壓縮等。打印機(jī)I/F 110接收從圖像形成單元109發(fā)送的圖像數(shù)據(jù),并且在已形成圖像之后,通過打印機(jī)單元114打印該圖像數(shù)據(jù)。
圖像形成裝置的軟件模塊
圖2是例示根據(jù)本發(fā)明的圖像形成裝置130的軟件模塊層級的圖。請注意,圖2及之后所示的各軟件被存儲在ROM 102或HDD 104中,并且由CPU 101來執(zhí)行。執(zhí)行期間使用的各類信息被存儲在RAM 103或HDD 104中,并且各類信息在軟件功能之間被交換。此外,利用網(wǎng)絡(luò)I/F106來執(zhí)行與外部設(shè)備的通信。
接下來,將描述各軟件。首先,軟件包括操作系統(tǒng)(OS)平臺201。 UI 202是用戶界面模塊,并且是如下的模塊,該模塊在操作者在圖像形成裝置130中進(jìn)行各類操作及設(shè)置時,在裝置與用戶操作之間充當(dāng)接口。該模塊依照由操作者進(jìn)行的操作,將輸入信息轉(zhuǎn)發(fā)到后述的各種模塊以進(jìn)行處理請求、改變數(shù)據(jù)配置,等等。配置數(shù)據(jù)庫204是處置圖像形成裝置130的配置數(shù)據(jù)的數(shù)據(jù)庫。在該數(shù)據(jù)庫中,還保持后述的清除類型的值。該數(shù)據(jù)由配置數(shù)據(jù)管理部203來管理,各束能夠通過向配置數(shù)據(jù)管理部203詢問數(shù)據(jù)值,來獲得數(shù)據(jù)。清除指定文件生成部205是生成清除指定文件的模塊,所述清除指定文件表示當(dāng)從菜單執(zhí)行清除時的清除對象。重啟控制部206是如下的模塊,該模塊響應(yīng)于重啟命令來重啟圖像形成裝置130。
接下來,將描述Java的結(jié)構(gòu)。Java軟件平臺被構(gòu)造為Java VM 207的運(yùn)行時環(huán)境,包括作為解釋器的Java VM 207、庫208以及框架組209。庫208被構(gòu)造為包括標(biāo)準(zhǔn)的API庫。框架組209被構(gòu)造為包括OSGi 210,并且OSGi 210在單個Java VM 207中運(yùn)行多個束。此外,OSGi擴(kuò)展部211表示OSGi 210的功能是按需要而可擴(kuò)展的。OSGi 210和OSGi擴(kuò)展部211提供束生命周期的管理、用于在束間進(jìn)行通信的功能等。
在OSGi 210上,配設(shè)了多個系統(tǒng)服務(wù)212,以及內(nèi)嵌登錄服務(wù)215。在初次啟動時不存在加載目的地文件夾的情況下,或者在預(yù)定位置存在表示有必要更新的更新標(biāo)志的情況下,由OSGi擴(kuò)展部211從存儲的固件來安裝多個系統(tǒng)服務(wù)212和內(nèi)嵌登錄服務(wù)215。在圖4中例示了該安裝。
束管理服務(wù)214是系統(tǒng)服務(wù)212中的一個,并且用于管理多個束組,以及添加新束和更新或刪除束。束管理服務(wù)214利用安裝控制服務(wù)213,來添加、更新和刪除束。
作為內(nèi)嵌登錄服務(wù)215,安裝了能夠用于標(biāo)準(zhǔn)認(rèn)證的登錄束216。因?yàn)樵谟脩舻卿浀耐瑫r,可能從任意給定束、在任意時間詢問登錄信息,因此,登錄束216是如下的束,該束具有不能籍以停止束的特性。例如,在登錄束216被停止的情況下,不能獲得登錄信息;因此,在存在使用與登錄信息相關(guān)聯(lián)的數(shù)據(jù)的束的情況下,數(shù)據(jù)獲得將失敗,并且將發(fā)生 操作錯誤。在此,“登錄信息”是指當(dāng)前登錄到圖像形成裝置130的用戶的、諸如登錄名、電子郵件地址等的信息。因?yàn)槿缟纤觯哂胁荒芗酝V故陨淼膶傩裕虼?,?dāng)圖像形成裝置130正在運(yùn)行時,僅登錄束216的單個實(shí)例始終運(yùn)行。
同時,存在作為后來安裝的類型的后安裝束217。在圖3中例示了束的安裝。作為后安裝束217中的一個,一般束219是如下的附加應(yīng)用,該附加應(yīng)用在圖像形成裝置130中向用戶提供各類處理。例如,存在圖像處理及壓縮束、用于諸如打印限制等的部門管理的束等。還可以安裝相對于標(biāo)準(zhǔn)登錄束216有改變的后安裝登錄束218。
實(shí)現(xiàn)各類功能的一般束219,以及后安裝登錄束218,在束管理服務(wù)214的管理下運(yùn)行。束管理服務(wù)214保持包括在該管理下添加的束的版本的束信息、許可證信息等。
束安裝
圖3是例示用戶從PC 300將束安裝在圖像形成裝置130中的流程的框圖。應(yīng)用安裝UI(用戶界面)301被顯示在PC 300的Web瀏覽器中,并且要安裝的束在該應(yīng)用安裝UI 301中被指定,并且被安裝。接收到通過應(yīng)用安裝UI 301指定的束后,束管理服務(wù)214將該束傳遞到安裝控制服務(wù)213。接收到束文件后,安裝控制服務(wù)213請求OSGi 210安裝該束,并且OSGi 210安裝指定的束。然后,由束管理服務(wù)214來管理安裝的束。
束加載區(qū)域的示例
圖4是例示圖像形成裝置130中的如下流程和加載后束加載區(qū)域的框圖,所述流程是由OSGi擴(kuò)展部211把系統(tǒng)服務(wù)212和內(nèi)嵌登錄服務(wù)215,從固件安裝到束加載區(qū)域402中。在束加載區(qū)域402中存在加載目的地文件夾403。然而,通常在初次啟動時,由OSGi擴(kuò)展部211來創(chuàng)建加載目的地文件夾403。在初次啟動時不存在加載目的地文件夾403、在預(yù)定位置檢測到更新標(biāo)志等的情況下,OSGi擴(kuò)展部211把存儲在固件401中的系統(tǒng)服務(wù)212和內(nèi)嵌登錄服務(wù)215,安裝到束加載區(qū)域402內(nèi)的加載目的地文件夾403中。結(jié)果,通過OSGi 210來管理生命周期。在安裝是 更新的情況下,當(dāng)具有現(xiàn)有束ID的束被加載時,以覆蓋的方式來執(zhí)行安裝。請注意,在安裝是更新的情況下,更新標(biāo)志被設(shè)置在預(yù)定的存儲位置。
接下來,將描述被加載束組404,該被加載束組404附屬于充當(dāng)加載目的地文件夾403的AppFolder,并且從固件401被加載。OSGi擴(kuò)展部211為安裝的每個束,創(chuàng)建具有唯一文件夾名的文件夾。在下文中,該文件夾將被稱為束目錄。在圖4的情況下,系統(tǒng)服務(wù)405被安裝在稱為“SystemApp1”的束目錄中。安裝的jar 406直接位于束目錄之下,名稱為“app0.jar”。由各束使用的、用于存儲數(shù)據(jù)的data文件夾407也位于此處。內(nèi)嵌登錄束408也以與系統(tǒng)服務(wù)405相同的結(jié)構(gòu)被安裝。
接下來,將描述通過圖3中所示的方法,而由用戶后來安裝的后安裝束組409。后安裝登錄束410也以與系統(tǒng)服務(wù)405相同的結(jié)構(gòu)被安裝。同樣,一般束411也以與系統(tǒng)服務(wù)405相同的結(jié)構(gòu)被安裝。
以這種方式,束被安裝在針對該束的文件夾(目錄)中。安裝的文件包括jar文件和data文件夾,并且這二者被統(tǒng)稱為“束關(guān)聯(lián)文件”。請注意,jar文件是如下的文件,在該文件中,Java(注冊商標(biāo))字節(jié)碼(bytecode)(換言之,即實(shí)際的程序內(nèi)容)及其使用的資源被一同存檔,并且也可以被稱為束,或換言之,稱為應(yīng)用程序本身。
擦除束加載區(qū)域的流程
圖5是例示當(dāng)擦除束加載區(qū)域402時的總體流程的框圖。在S500中,通過操作單元118,指定表示清除對象的清除類型,并指定束加載區(qū)域清除的執(zhí)行。指定方法的UI如圖6所示。在從UI接收到執(zhí)行指令時,在S501中,清除指定文件生成部205依照指定的清除類型編號,在HDD 104的預(yù)定位置生成清除指定文件550。圖9例示了清除類型編號與在清除指定文件550中記載的內(nèi)容之間的關(guān)系。然后,在S502中,由用戶重啟圖像形成裝置130。在重啟之后,在S503中,當(dāng)OSGi擴(kuò)展部211檢測到清除指定文件550時,依照在該清除指定文件550中記載的指定,來刪除束加載區(qū)域402的加載目的地文件夾403中的刪除對象。
然后,在S505中,按照需要,把存儲在固件401中的系統(tǒng)服務(wù)212和內(nèi)嵌登錄服務(wù)215,重新加載到束加載區(qū)域中。
用于指定清除類型的UI
圖6是例示在操作單元118中顯示的、用于指定清除類型的UI(清除指定UI)600的圖。維修人員菜單600是顯示維修人員所需的功能的列表的菜單。在用戶已試圖擦除束加載區(qū)域402的情況下,執(zhí)行以下的操作。在選擇了清除類型601之后,輸入諸如清除類型編號602等的代碼,并按下確定(OK)按鈕604。然后,在選擇束加載區(qū)域清除603之后,按下確定按鈕604。該操作創(chuàng)建清除指定文件550,該清除指定文件550隨后被存儲在預(yù)定的存儲位置。然后,當(dāng)圖像形成裝置130被重啟時,依照選擇來刪除束加載區(qū)域402中的對象束。以這種方式,能夠通過圖6中所示的用戶界面,來指定應(yīng)用和刪除對象,或換言之,即與該應(yīng)用相關(guān)聯(lián)的要刪除的文件。如后所述,要刪除的文件包括文件夾。
圖7是例示清除指定文件550的內(nèi)容的示例的圖。在表示要刪除束的關(guān)鍵字符串(TargetApp)之后,表示刪除對象的束指定701指定束類型(在圖7中,是system,login1)。動作指定702對表示要對作為刪除對象的束執(zhí)行表示詳情的關(guān)鍵字符串(Action),以及內(nèi)容(在圖7中,是jar)進(jìn)行指定。
束指定和動作指定
圖8是例示在清除指定文件550中指定的束指定701和動作指定702的表。束指定701(TargetApp)指定哪個束要作為刪除對象。作為用于對這些刪除對象進(jìn)行分類的方法,假定可以通過束類型來進(jìn)行指定。在這種情況下,可以選擇系統(tǒng)束(system)、內(nèi)嵌登錄束(login1)、后安裝登錄束(login2)、一般束(normal)和所有束(all)中的一者。還假定能夠由束指定701來指定多個對象。在圖7中所示的示例中,指定了兩種類型的束,即system和login1,作為刪除對象。系統(tǒng)束也可以被稱為系統(tǒng)的一部分,因而即使在所有的束均已被清除的情況下,在圖像形成裝置被重啟時也重新安裝該系統(tǒng)束。登錄束實(shí)現(xiàn)與登錄相關(guān)的服務(wù),諸 如提供關(guān)于例如登錄的用戶的信息?!耙话闶笔侵钙渌氖⑶夷軌蛟谝院蟮娜掌诒话惭b或卸載。
同時,動作指定702(Action)指定將對對象束701執(zhí)行什么動作。在由動作指定702指定了“jar”的情況下,刪除直接位于各束目錄之下的jar文件406。在這種情況下,重新加載在固件401中存在原始jar的可重新加載束802,諸如系統(tǒng)束或內(nèi)嵌束。為此,在預(yù)定位置設(shè)置更新標(biāo)志。另一方面,對于諸如后安裝登錄束或一般束等的不可重新加載束803,不能重新加載jar文件。因此,即使data文件夾被保留,該文件夾也不會具有后續(xù)的用途,這預(yù)計會導(dǎo)致不必要的文件殘留。因此,在針對不可重新加載束803指定了“jar”的情況下,將束目錄本身刪除。
同時,在由動作指定702指定了“data”的情況下,刪除直接位于各束目錄之下的data文件夾407。
在由動作指定702指定了“all”的情況下,刪除安裝的所有束的整個束目錄。以與指定了“jar”時相同的方式,來重新加載可重新加載束802。為此,在預(yù)定位置設(shè)置更新標(biāo)志。依據(jù)以上所述,接下來將描述具體的實(shí)例。
當(dāng)如同在實(shí)例1中一樣指定了TargetApp=system和login1/Action=j(luò)ar時,刪除系統(tǒng)束和內(nèi)嵌登錄束的jar文件。在后續(xù)的啟動處理中,由OSGi擴(kuò)展部211從固件401中,重新加載刪除的jar文件。
當(dāng)如同在實(shí)例2中一樣指定了TargetApp=system和login1/Action=data時,刪除在系統(tǒng)束和內(nèi)嵌登錄束的束目錄中保持的data文件夾。
當(dāng)如同在實(shí)例3中一樣指定了TargetApp=system和login1/Action=all時,刪除系統(tǒng)束和內(nèi)嵌登錄束的整個束目錄。在后續(xù)的啟動處理中,由OSGi擴(kuò)展部211從固件401中,重新加載刪除的束目錄和jar文件。
當(dāng)如同在實(shí)例4中一樣指定了TargetApp=login2和normal/Action=j(luò)ar時,刪除后安裝登錄束和一般束的整個束目錄。
當(dāng)如同在實(shí)例5中一樣指定了TargetApp=login2和 normal/Action=data時,刪除在后安裝登錄束和一般束的束目錄中保持的data文件夾。
當(dāng)如同在實(shí)例6中一樣指定了TargetApp=login2和normal/Action=all時,刪除后安裝登錄束和一般束的整個束目錄。這是與實(shí)例4中相同的操作。
當(dāng)如同在實(shí)例7中一樣指定了TargetApp=all/Action=j(luò)ar時,刪除可重新加載束802的jar文件。在后續(xù)的啟動處理中,由OSGi擴(kuò)展部211從固件401中,重新加載可重新加載束的刪除的jar文件。另一方面,刪除不可重新加載束803的整個束目錄。
當(dāng)如同在實(shí)例8中一樣指定了TargetApp=all/Action=data時,刪除所有束的data文件夾。
當(dāng)如同在實(shí)例9中一樣指定了TargetApp=all/Action=all時,刪除所有束的整個束目錄。對于可重新加載束802,在后續(xù)的啟動處理中,由OSGi擴(kuò)展部211從固件中,重新加載束目錄和jar文件。
清除類型編號
圖9是表示通過清除指定UI 600指定的清除類型編號與在清除指定文件中記載的內(nèi)容之間的關(guān)系的表。例如,在清除類型編號是0的情況下,在清除指定文件中,記載了在圖8中的實(shí)例9中所示的詳情。通過以這種方式指定清除類型,例如能夠嘗試重新加載jar而不刪除data。因此,在圖像形成裝置130中由束導(dǎo)致問題出現(xiàn)的情況下,通過選擇例如清除類型1,使得能夠嘗試僅重新加載jar而不刪除data,而不像以往的情形中一樣,需要擦除整個束加載區(qū)域。這具有如下的優(yōu)點(diǎn),即如果問題被解決,則沒有必要再徒勞地刪除數(shù)據(jù)。同時,通過選擇清除類型3,使得針對一旦已刪除就必須重新安裝的不可重新加載束,能夠嘗試僅刪除data。這具有如下的優(yōu)點(diǎn),即如果問題被解決,則重新安裝束的負(fù)擔(dān)減輕。
以這種方式,使在圖8中例示的表中所示的實(shí)例1至實(shí)例9中的全部或者一部分代表性的實(shí)例,與清除類型編號相關(guān)聯(lián),這使得能夠利用 簡單的代碼,在清除指定UI 600中指定刪除對象。例如,如圖9所示,可以通過表的形式,來登記清除類型編號,和包括在清除指定文件550中記載的束指定701及動作指定702的集合,由此執(zhí)行上述的關(guān)聯(lián)。當(dāng)然,也可以利用其他方法來執(zhí)行關(guān)聯(lián),諸如在程序中對關(guān)聯(lián)進(jìn)行硬編碼。然后,依照該關(guān)聯(lián),在清除指定文件550中,記載與指定的清除類型編號相關(guān)聯(lián)的束指定701及動作指定702。請注意,在圖8中所示的示例中,如果將清除類型編號分配給實(shí)例,使得實(shí)例1至實(shí)例5能夠被指定,則實(shí)例6至實(shí)例9也能夠被涵蓋。這是因?yàn)?,在?shí)例6和實(shí)例4中執(zhí)行相同的處理,而通過執(zhí)行多次操作,已利用不同的束指定而指定了清除類型編號,使得所有束均被涵蓋,由此能夠?qū)崿F(xiàn)實(shí)例7至實(shí)例9。
刪除處理序列
圖10是例示從指定清除類型編號到重啟后刪除處理的序列的序列圖。在S1000中,用戶從UI 202中選擇清除類型601,并且在該選擇有效的狀態(tài)下,輸入清除類型編號602,并按下確定按鈕。在S1001中,UI向配置數(shù)據(jù)管理部203,請求將輸入的清除類型編號存儲在配置數(shù)據(jù)庫204中。在S1002中,用戶選擇束加載區(qū)域清除,并在該選擇有效的狀態(tài)下,按下確定按鈕。在S1003中,UI指示清除指定文件生成部205清除加載區(qū)域。在S1004中,清除指定文件生成部205獲得由配置數(shù)據(jù)管理部203指定的清除類型的值(清除類型編號)。在S1005中,清除指定文件生成部205基于獲得的清除類型值,來生成清除指定文件550。換言之,在清除指定文件550中,寫入與清除類型編號相關(guān)聯(lián)的束指定701及動作指定702。在S1006中,用戶重啟圖像形成裝置130。在S1007中,OSGi擴(kuò)展部211參照清除指定文件550。在S1008中,OSGi擴(kuò)展部211依照由清除指定文件550進(jìn)行的指定,來擦除束加載區(qū)域402。在圖11中,例示了S1007及S1008中的OSGi擴(kuò)展部211的流程。
由OSGi擴(kuò)展部擦除束加載區(qū)域的流程
圖11是例示當(dāng)OSGi擴(kuò)展部211在啟動時擦除束加載區(qū)域時執(zhí)行的處理的流程圖。在S1100中,束加載區(qū)域刪除處理開始。在S1101中, OSGi擴(kuò)展部211檢查清除指定文件550是否存在。在清除指定文件550不存在的情況下,處理移動到S1118并結(jié)束。然而,在清除指定文件550存在的情況下,處理移動到S1102。在S1102中,OSGi擴(kuò)展部211從清除指定文件550中讀取束指定(以下又稱為“TargetApp”)701的值,并且在存儲器中確保該值,之后,處理移動到S1103。在S1103中,在TargetApp701的值是system(或換言之,即系統(tǒng)束)或者是login1(或換言之,是內(nèi)嵌登錄束)的情況下,處理移動到S1104,并且生成更新標(biāo)志。結(jié)果,在由OSGi擴(kuò)展部211進(jìn)行的后續(xù)啟動處理中,運(yùn)行用于從固件401進(jìn)行重新加載的處理。在S1105中,OSGi擴(kuò)展部211從清除指定文件550中讀取動作指定(以下又稱為“Action”)702的值,并且在存儲器中確保該值,之后,處理移動到S1106。在S1106中,OSGi擴(kuò)展部211獲得在束加載區(qū)域中安裝的束的列表;然后,處理移動到S1107,在S1107中,將每個束作為要處理的束,并且以被處理的束依次改變的方式,來執(zhí)行循環(huán)處理。
在S1107中,檢查被處理的束的束類型是否與TargetApp 701匹配。束類型是一般束(normal)、登錄束(login)及系統(tǒng)束(system)中的一者。在TargetApp 701中指定了“normal”、并且束類型是“一般束”的情況下,認(rèn)為是匹配的。在TargetApp 701中指定了“l(fā)ogin1”(或換言之,即內(nèi)嵌登錄束)或“l(fā)ogin2”(或換言之,即后安裝登錄束)、并且被處理的束的束類型是“登錄束”的情況下,認(rèn)為是匹配的。在TargetApp 701中指定了“system”(或換言之,即系統(tǒng)束)、并且被處理的束的束類型是“系統(tǒng)束”的情況下,認(rèn)為是匹配的。如果在S1107中是不匹配的,則處理移動到S1117。然而,在S1107中匹配的情況下,處理移動到S1108。
在S1108中,在被處理的束的束類型是“system”(或換言之,即系統(tǒng)束)的情況下,處理移動到S1110,在S1110中,將可重新加載標(biāo)志設(shè)置為開(ON)。在S1108中,在束類型是“normal”(或換言之,即一般束)的情況下,處理移動到S1111,在S1111中,將可重新加載標(biāo)志設(shè)置為關(guān)(OFF)。在S1108中,在束類型是“l(fā)ogin”(或換言之,即登錄束)的情 況下,處理移動到S1109。在S1109中,確定登錄束是內(nèi)嵌登錄束還是后安裝登錄束。假定在束被安裝時由OSGi擴(kuò)展部211保持的管理信息中,指明了登錄束是內(nèi)嵌的還是后安裝的。作為另一選擇,可以基于被處理的束的文件夾名,來進(jìn)行確定。在內(nèi)嵌登錄束的情況下,處理移動到S1110,并且將可重新加載標(biāo)志設(shè)置為開。然而,在后安裝登錄束的情況下,處理移動到S1111,并且將可重新加載標(biāo)志設(shè)置為關(guān)。
在S1112中,確定在S1103中讀取的Action 702的值。在S1112中,在Action 702的值是“all”、或換言之表示要刪除整個束目錄的情況下,處理移動到S1115,并且刪除被處理的束的整個束目錄。在S1112中,在Action 702的值是“data”、或換言之表示要刪除數(shù)據(jù)文件夾的情況下,處理移動到S1116,在S1116中,刪除直接位于被處理的束的束目錄之下的data文件夾407。在Action 702的值是“jar”、或換言之表示要刪除jar文件的情況下,處理移動到S1113,在S1113中,確定可重新加載標(biāo)志的值。在S1113中,在可重新加載標(biāo)志是開的情況下,處理移動到S1114,并且刪除直接位于被處理的束的束目錄之下的jar文件406。然而,在S1113中,在可重新加載標(biāo)志是關(guān)的情況下,處理移動到S1115,并且刪除被處理的束的整個束目錄。在S1117中,確定被處理的束是否為最后的束;在束不是最后的束的情況下,處理返回到S1107并重復(fù)。然而,在S1117中確定被處理的束是最后的束的情況下,處理移動到S1118并結(jié)束。
盡管在圖11中未指明,但應(yīng)當(dāng)指出,如上所述,在用于重啟圖像形成裝置的處理中,可重新加載的jar文件被重新加載。
如到此為止所描述的,能夠依照指定的清除類型,來擦除圖像形成裝置130中的束加載區(qū)域。因此,在束中出現(xiàn)了問題的情況下,能夠選擇有效的刪除方法。例如,如果在束指定701中指定了“系統(tǒng)”,并且在動作指定702中指定了“jar”(換言之,即圖9中的清除類型編號1),則重新加載刪除的系統(tǒng)束的jar文件,因而在束已被清除之后,能夠以與束被清除之前相同的方式來使用圖像形成裝置。如果這并未解決問題,則接下來,例如,在束指定701中指定“系統(tǒng)束”,并在動作指定702中指 定“data”,刪除data文件夾,并且確定圖像形成裝置在重啟后是否將正常運(yùn)行;以這種方式,能夠分階段地改變清除對象,從而嘗試消除錯誤。
第二實(shí)施例
存在如下的情況,即當(dāng)圖像形成裝置在工廠被裝配時,安裝了供生產(chǎn)時使用的束。在這樣的情況下,有必要在將裝置從工廠出貨之前,將這些束全部清除,并將裝置恢復(fù)到未安裝束的默認(rèn)狀態(tài)。因此,作為出廠前的最后任務(wù),已有必要通過執(zhí)行出廠前清除,來擦除整個束加載區(qū)域。另一方面,為了減輕安裝的負(fù)擔(dān)等等,可設(shè)想在工廠,預(yù)先安裝將被用戶頻繁使用的束、要推銷的束等。這樣的束被稱為“預(yù)安裝束”。然而,已存在如下的問題,即如上所述執(zhí)行出廠前清除也會擦除這類預(yù)安裝束。例如,當(dāng)圖像形成裝置被裝配時,通過把包括預(yù)先準(zhǔn)備的預(yù)安裝束的固件的影像數(shù)據(jù),復(fù)制到硬盤104,使得能夠在一次操作中安裝完固件,這使得能夠提高生產(chǎn)率。在使用這種生產(chǎn)方法的情況下,在安裝預(yù)安裝束后執(zhí)行出廠前清除是不可避免的。本第二實(shí)施例描述了在將裝置從工廠出貨時擦除束加載區(qū)域的方法,以作為對上述問題的應(yīng)答。
圖12是例示用于指定在從工廠出貨時執(zhí)行的出廠前清除的UI 1200的圖。工廠菜單UI 1200是在工廠中進(jìn)行的任務(wù)所需的功能的菜單。當(dāng)選擇了出廠前清除1201、并在該選擇有效的狀態(tài)下按下確定按鈕1202時,出廠前清除被執(zhí)行。
圖13是例示在出廠前清除時的清除指定文件1300的內(nèi)容的示例的圖。在TargetApp 1301中,指定了表示出廠前清除的“Shipping_Clear”。在這種情況下不參照動作指定,因而可以具有任何內(nèi)容,或者完全沒有內(nèi)容。當(dāng)指定了出廠前清除時,清除指定文件生成部205生成圖13中所示的清除指定文件,并將該文件存儲在預(yù)定位置。
圖14是例示束中的清單文件1400的圖。對于每個束存在清單文件。在清單文件中,記載了版本、Java束中的jar文件的屬性值,等等。該內(nèi)容被記載為清單項及其對應(yīng)的值。例外束(OutOfShippingClear)1401是 清單中的項目之一,并且表示束是否被從出廠前清除中排除,并且,設(shè)置了“true(真)”的值,表示束從出廠前清除中包含的刪除中被排除。另一方面,在值是“false(假)”或者未記載有OutOfShippingClear的情況下,束是出廠前清除中包含的刪除的對象。通過針對預(yù)安裝束將該OutOfShippingClear設(shè)置為“true”,使得能夠?qū)⒃撌鴱某鰪S前清除中排除。
OSGi 210把在束清單中記載的值,在存儲器中保持作為管理信息??梢允褂帽魂P(guān)注的束的束名稱、在清單中記載的項目的值等,來作為關(guān)鍵字,通過指定這些關(guān)鍵字,使得能夠獲得相關(guān)聯(lián)的值。因此,通過使用OutOfShippingClear作為關(guān)鍵字,使得能夠從管理信息中獲得這些值。
出廠前清除期間的刪除處理序列
圖15是例示從出廠前清除時的UI指定到重啟后刪除處理的序列的序列圖。在S1500中,用戶選擇出廠前清除1201,并在該選擇有效的狀態(tài)下,按下確定按鈕。在S1501中,UI向清除指定文件生成部205,指示擦除用于出廠前清除的束加載區(qū)域。在S1502中,清除指定文件生成部205依照該指令,生成清除指定文件1300。在S1503中,用戶重啟圖像形成裝置130。在S1504中,OSGi擴(kuò)展部211參照清除指定文件1300。在S1505中,OSGi擴(kuò)展部211擦除用于出廠前清除的束加載區(qū)域,從而對設(shè)置了OutOfShippingClear的束執(zhí)行清除。在圖16中,例示了S1504及S1505中的OSGi擴(kuò)展部211的流程。
圖16是例示當(dāng)OSGi擴(kuò)展部211在出廠前清除期間擦除束加載區(qū)域時執(zhí)行的處理的流程圖。S1600至S1602執(zhí)行與圖11中的S1100至S1102相同的處理。在S1600中,束加載區(qū)域刪除處理開始。在S1601中,OSGi擴(kuò)展部211檢查清除指定文件1300是否存在。在清除指定文件1300不存在的情況下,處理前進(jìn)到S1610并結(jié)束。然而,在清除指定文件1300存在的情況下,處理前進(jìn)到S1602。在S1602中,OSGi擴(kuò)展部211讀取TargetApp 1301的值,并且在存儲器中確保該值,之后,處理移動到S1603。在S1603中,在TargetApp 1301的值是“shipping_clear”的情況下,處理移動到S1605,并且生成更新標(biāo)志。結(jié)果,在由OSGi擴(kuò)展部211進(jìn)行的后 續(xù)啟動處理中,運(yùn)行用于從固件401進(jìn)行重新加載的處理。在S1603中,在TargetApp 1301的值不是“shipping_clear”的情況下,處理移動到S1604。然后,處理返回到圖11中所示的、在正常啟動期間執(zhí)行的流程,并且從S1103起繼續(xù)進(jìn)行處理。
在S1606中,OSGi擴(kuò)展部211獲得在束加載區(qū)域中安裝的束的列表;然后,處理移動到S1607,在S1607中,將每個束作為被處理的束,并且依次針對每個束執(zhí)行循環(huán)處理。在S1607中,檢查第一個束的清單的OutOfShippingClear值,以查看該值是否為“true”。在該值是“false”、或者OutOfShippingClear未被定義的情況下,處理移動到S1608,并且將該束的整個束目錄設(shè)置為刪除對象。在OutOfShippingClear值是“true”的情況下,處理移動到S1609,并且不針對該束執(zhí)行刪除。在S1609中,確定被處理的束是否為最后的束;在束不是最后的束的情況下,處理返回到S1607并重復(fù)。然而,在S1609中確定循環(huán)到達(dá)末尾的情況下,處理移動到S1610并結(jié)束。
如到此為止所描述的,根據(jù)本第二實(shí)施例,能夠擦除束加載區(qū)域,同時保留特定的束。在這種情況下,例如預(yù)安裝束的清單文件中的OutOfShippingClear項被設(shè)置,或換言之,被設(shè)置為“true”。這樣一來,能夠?qū)崿F(xiàn)出廠前清除,從而在刪除之后重新加載系統(tǒng)束,而不會使預(yù)安裝束被刪除。
第三實(shí)施例
從本第三實(shí)施例起,將考慮刪除安裝的束的使用情況,來描述通過變化刪除單位來獲得效率的刪除方法。首先,將描述片段束的刪除。束包括稱為片段束的一類束。圖17是例示該片段束的概念的圖。圖17例示了如下的示例,即為主束1700,安裝了保持語言本地化資源的片段束1701及片段束1702。為了在主束中安裝片段束,OSGi 210要求指定以下的清單和束權(quán)限。為使描述簡捷,假定片段束是如下的束(應(yīng)用),該束與主束相關(guān)聯(lián),并與該主束協(xié)同運(yùn)行。各片段束能夠自我安裝和卸載。
-主束清單1703
針對Bundle-ManifestVersion指定2。向Bundle-SymbolicName給予在框架中唯一的名稱。
-片段束清單1705
針對Bundle-ManifestVersion指定2。針對Fragment-Host,指定在主束清單1703中記載的<主束符號名>。如果這些值匹配,則表示主束和片段束是同一個束的構(gòu)成要素。
-主束權(quán)限1704
BundlePermission[束符號名,HOST]
-片段束權(quán)限1706
BundlePermission[束符號名,F(xiàn)RAGMENT]
當(dāng)在上述條件滿足的狀態(tài)下安裝片段束時,OSGi 210從片段束的清單信息中指定主束,并把片段束自身的類路徑,添加到主束的類路徑。在此,“類路徑”是如下的項目,該項目指定在執(zhí)行Java束時,Java VM要從何處讀取類文件。此外,由主束的類加載程序,來加載片段束內(nèi)的所有類及資源。在此,“類加載程序”是處置類的加載、資源的搜索等的對象,并且,所有的類均能夠由類加載程序加載到Java VM中,并從束中來使用。
在本示例中,在充當(dāng)主體的主束1700中,安裝充當(dāng)片段束的日文資源1701和中文資源1702,而后,主束1700能夠利用這些日文及中文資源,來切換資源的語言。換言之,雖然主束的UI上的顯示是英文,但是,通過在主束的UI上指定資源切換,使得能夠創(chuàng)建顯示日文、顯示中文等的主束。除了在此描述的語言資源之外,還可以切換影像資源。因此,雖然標(biāo)準(zhǔn)的做法是使用英文顯示的影像,但是,通過在主束的UI上指定資源切換,使得能夠切換到日文或中文顯示的影像。經(jīng)常以這種方式使用片段束來切換資源。
如在該示例中所述,片段束經(jīng)常保持多個語言資源,并且存在如下的情況,即這些資源要被刪除,以便能夠在不考慮這類資源的影響的情 況下,來評價束。在這樣的情況下,可以一次卸載一個片段束,但是也可以如圖18所示,通過在清除指定文件中指定相應(yīng)的操作,而將片段束一次全部刪除。圖18是例示指定片段束的刪除的清除指定文件1800的內(nèi)容的示例的圖。作為束指定的TargetApp1801指定fragmentBundle,從而表示片段束是刪除對象。雖然在此未描述,但請注意,可以不直接記載所述束指定,而是例如如同在第一實(shí)施例中一樣,通過用戶界面來指定清除類型編號,使得當(dāng)指定了特定的編號時,“fragmentBundle”被寫入到清除指定文件的束指定1801中。
片段束的刪除流程
圖19是例示當(dāng)OSGi擴(kuò)展部211在片段束充當(dāng)刪除對象的情況下、擦除束加載區(qū)域時執(zhí)行的處理的流程圖。S1900至S1902執(zhí)行與圖16中的S1600至S1602相同的處理,因而,將省略重復(fù)的描述。在S1903中,在TargetApp 1801的值是“fragmentBundle”的情況下,處理移動到S1905,并且生成更新標(biāo)志。結(jié)果,在由OSGi擴(kuò)展部211進(jìn)行的后續(xù)啟動處理中,運(yùn)行用于從固件401進(jìn)行重新加載的處理。在S1903中,在TargetApp 1801的值不是“fragmentBundle”的情況下,處理移動到S1904。然后,處理返回到圖11中所示的、在正常啟動期間執(zhí)行的流程,并且從S1103起繼續(xù)進(jìn)行處理。在S1904,作為替代,處理可以分支到圖16中的S1603。
在S1905中,OSGi擴(kuò)展部211獲得在束加載區(qū)域中安裝的束的列表;然后,處理移動到S1906,在S1906中,針對各束執(zhí)行循環(huán)處理。在S1906中,檢查第一個束是否為片段束。例如,如果在清單文件中存在fragment host項,或者束權(quán)限1706是“fragment”,則束能夠被確定為是片段束。在被處理的束是片段束的情況下,將該束的整個束目錄設(shè)置為刪除對象。在被處理的束不是片段束的情況下,處理移動到S1908,并且不針對該束執(zhí)行刪除。在S1908中,確定被處理的束是否為最后的束;在束不是最后的束的情況下,處理返回到S1906并重復(fù)。然而,在S1908中確定循環(huán)到達(dá)末尾的情況下,處理移動到S1909并結(jié)束。
如到此為止所描述的,根據(jù)本第三實(shí)施例,能夠擦除僅將片段束作 為刪除對象的束加載區(qū)域。雖然在該示例中處置片段束,但是應(yīng)當(dāng)指出,當(dāng)然可以將其他類型的束設(shè)置為刪除對象。
第四實(shí)施例
在第三實(shí)施例之后,將繼續(xù)考慮刪除束的使用情況,來描述通過變化刪除單位來獲得效率的刪除方法。本實(shí)施例將描述指定束ID的刪除方法。束清單文件始終具有唯一的束ID。因此,如果知道束的束ID,則能夠指定該束。因而,在諸如要刪除給定束的數(shù)據(jù)文件夾的情況下,通過將圖7中所示的動作指定(Action)702=data與束ID組合,使得能夠僅刪除特定束的數(shù)據(jù)。例如,在圖6中所示的用戶界面中,預(yù)先確定用于輸入束ID的清除類型編號??梢圆捎萌缦碌慕Y(jié)構(gòu),即使得當(dāng)該編號被指定時,通過束ID輸入欄來接受ID,并將輸入的ID寫入到清除指定文件中。
圖20是例示清除指定文件2000的內(nèi)容的示例的圖。束指定2001(TargetApp)指定作為刪除對象的束的束ID。如在此所示,例如在字符串“bundleID”之后指定束ID。動作指定(Action)2002指定對作為刪除對象的束要執(zhí)行的詳情。當(dāng)OSGi擴(kuò)展部211在啟動時擦除束加載區(qū)域時,所執(zhí)行的處理的流程與圖11及圖19中所示的相同,因而,將省略相應(yīng)的詳情。作為響應(yīng)于TargetApp 2001中的指定而執(zhí)行的處理,如果在S1906中,束的束ID與在TargetApp 2001中指定的束ID匹配,則將該束設(shè)置為刪除對象。同時,作為響應(yīng)于Action 2002中的指定而執(zhí)行的處理,執(zhí)行與從S1112到S1116相同的處理。換言之,雖然在第一實(shí)施例中指定束的類型,但是作為替代,在本實(shí)施例中指定束ID。
如到此為止所描述的,根據(jù)本第四實(shí)施例,能夠利用具有特定束ID的束作為刪除對象,來刪除束加載區(qū)域內(nèi)的束的data文件夾。
第五實(shí)施例
在第三及第四實(shí)施例之后,將繼續(xù)考慮刪除束的情況,來描述通過 變化刪除單位來獲得效率的刪除方法。本實(shí)施例將描述指定束狀況的刪除方法。安裝的束具有諸如開始/停止等的狀況。由OSGi 210來管理該狀況,并且可以由OSGi擴(kuò)展部211來獲得該狀況。停止的束可以被視為未在使用的束,因而,將考慮如下的情況,即刪除未使用的束的數(shù)據(jù),以便釋放存儲空間。
圖21是例示具有束狀況指定的清除指定文件2100的內(nèi)容的示例的圖。在TargetApp 2101中,指定表示狀況的值。在此,在字符串“status=”之后,“stop”被指定為狀況,這表示束是停止的。Action 2102指定對作為刪除對象的束要執(zhí)行的詳情。
當(dāng)OSGi擴(kuò)展部211在啟動時擦除束加載區(qū)域時,所執(zhí)行的處理的流程與圖11及圖19中所示的相同,因而,將省略相應(yīng)的詳情。作為響應(yīng)于TargetApp 2100中的指定而執(zhí)行的處理,在S1906中確定束的狀況,并且如果該狀況與由TargetApp 2100指定的狀況匹配,則將該束設(shè)置為刪除對象。同時,作為響應(yīng)于Action 2002中的指定而執(zhí)行的處理,執(zhí)行與從S1112到S1116相同的處理。
如到此為止所描述的,根據(jù)本第五實(shí)施例,能夠利用具有特定狀態(tài)的束作為刪除對象,來刪除束加載區(qū)域內(nèi)的束的data文件夾。
其他實(shí)施方式
另外,可以通過讀出并執(zhí)行記錄在存儲介質(zhì)(也可更完整地稱為“非臨時性計算機(jī)可讀存儲介質(zhì)”)上的計算機(jī)可執(zhí)行指令(例如,一個或更多程序)以執(zhí)行上述實(shí)施例中的一個或更多的功能、并且/或者包括用于執(zhí)行上述實(shí)施例中的一個或更多的功能的一個或更多電路(例如,專用集成電路(ASIC))的系統(tǒng)或裝置的計算機(jī),來實(shí)現(xiàn)本發(fā)明的實(shí)施例,并且,可以利用通過由所述系統(tǒng)或裝置的所述計算機(jī)例如讀出并執(zhí)行來自所述存儲介質(zhì)的所述計算機(jī)可執(zhí)行指令以執(zhí)行上述實(shí)施例中的一個或更多的功能、并且/或者控制所述一個或更多電路執(zhí)行上述實(shí)施例中的一個或更多的功能的方法,來實(shí)現(xiàn)本發(fā)明的實(shí)施例。所述計算機(jī)可以包括一 個或更多處理器(例如,中央處理單元(CPU),微處理單元(MPU)),并且可以包括分開的計算機(jī)或分開的處理器的網(wǎng)絡(luò),以讀出并執(zhí)行所述計算機(jī)可執(zhí)行指令。所述計算機(jī)可執(zhí)行指令可以例如從網(wǎng)絡(luò)或存儲介質(zhì)被提供給計算機(jī)。所述存儲介質(zhì)可以包括例如硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、分布式計算系統(tǒng)的存儲器、光盤(諸如壓縮光盤(CD)、數(shù)字通用光盤(DVD)或藍(lán)光光盤(BD)TM)、閃存設(shè)備以及存儲卡等中的一者或更多。
本發(fā)明的實(shí)施例還可以通過如下的方法來實(shí)現(xiàn),即,通過網(wǎng)絡(luò)或者各種存儲介質(zhì)將執(zhí)行上述實(shí)施例的功能的軟件(程序)提供給系統(tǒng)或裝置,該系統(tǒng)或裝置的計算機(jī)或是中央處理單元(CPU)、微處理單元(MPU)讀出并執(zhí)行程序的方法。
雖然參照示例性實(shí)施例對本發(fā)明進(jìn)行了描述,但是應(yīng)當(dāng)理解,本發(fā)明并不限定于所公開的示例性實(shí)施例。所附權(quán)利要求的范圍應(yīng)當(dāng)被賦予最寬的解釋,以便涵蓋所有這類修改以及等同的結(jié)構(gòu)和功能。