專利名稱:圖像處理設(shè)備、圖像處理控制方法、程序和存儲介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像處理設(shè)備、圖像處理控制方法和程序。具體地說,本發(fā)明涉及具有打印機功能等的圖像處理設(shè)備、用于這種圖像處理設(shè)備的圖像處理控制方法、用來使計算機執(zhí)行這種圖像處理控制方法的程序和存儲這種程序的存儲介質(zhì)。
背景技術(shù):
傳統(tǒng)上,圖像處理設(shè)備的軟件主要在實時OS(操作系統(tǒng))上構(gòu)成為靜態(tài)且固定的所謂固件。即使這樣的固件內(nèi)部含有多個模塊,也是整個固件存儲在圖像處理設(shè)備的非易失性存儲器內(nèi),處在靜態(tài)地與單個裝入模塊鏈接的狀態(tài)。因此,在引導(dǎo)OS時,固件從諸如硬盤之類的非易失性存儲器裝入RAM(隨機存取存儲器)并被執(zhí)行,或者固件直接在諸如ROM(只讀存儲器)之類的非易失性存儲器上執(zhí)行。特別是,考慮經(jīng)濟性和安全性,通常將構(gòu)成低價格圖像處理設(shè)備或類似設(shè)備內(nèi)的嵌入式系統(tǒng)的固件構(gòu)成為使得部分模塊不是動態(tài)裝入或鏈接的。也就是說,之所以要如上那樣構(gòu)成固件是由于實現(xiàn)動態(tài)鏈接所必需的符號表的存儲容量、解決符號地址的處理的開銷等會降低設(shè)備的價格性能,而且存在所附加裝入和鏈接的子模塊會損害整個系統(tǒng)在鏈接子模塊前業(yè)已充分評估和達到的質(zhì)量和安全的風(fēng)險。
因此,如本申請人在例如日本專利申請公報No.H11-282684、日本專利申請公報No.2003-256216等中所公開的,開發(fā)了一種圖像處理設(shè)備,其中在嵌入式系統(tǒng)的固件的實時OS上再設(shè)置一軟件操作環(huán)境。具體地說,所公開的圖像處理設(shè)備在如上加入的軟件操作環(huán)境內(nèi)支持諸如動態(tài)裝入、動態(tài)鏈接、動態(tài)存儲器操作之類的軟件動態(tài)特性。所加入的軟件操作環(huán)境由解釋器和一組API(應(yīng)用編程接口)組和框架組組成,并提供一種供軟件在其上運行的OS或所謂的計算平臺。在這里,解釋器順序讀取、解釋和執(zhí)行一系列由包含在預(yù)定指令集內(nèi)的指令組成的指令串。如果認為該指令集相當(dāng)于用于硬件的CPU的指令集,就可以特別將解釋器稱為虛擬機。這組API組和框架組為在軟件操作環(huán)境上運行的軟件提供了對由該軟件操作環(huán)境層的下層內(nèi)存在的實際實時OS提供的資源和從硬件資源抽象化出的各種資源組的訪問。在這里,應(yīng)注意的是,資源包括處理器的指令執(zhí)行上下文以及包括存儲器、文件系統(tǒng)和網(wǎng)絡(luò)接口的各種I/O(輸入/輸出)等。特別是,在指令執(zhí)行上下文中,軟件操作環(huán)境可以獨立地管理指令執(zhí)行上下文而與由實際CPU和實時OS提供的多任務(wù)機制無關(guān)。類似地,在存儲器內(nèi),軟件操作環(huán)境可以提供獨立的存儲器管理。
在以上軟件執(zhí)行環(huán)境上運行的軟件由解釋器順序讀取、解釋和執(zhí)行,從而可以在上述處理期間監(jiān)視指令串,除去對系統(tǒng)有不利影響的操作。此外,在從軟件執(zhí)行環(huán)境上的軟件訪問每個資源中,資源通過軟件執(zhí)行環(huán)境提供的API組和框架組被間接管理,從而可以在上述處理期間可以除去對系統(tǒng)有不利影響的操作。因此,在固件內(nèi)設(shè)置包括解釋器、API組和框架組的軟件執(zhí)行環(huán)境層的這種方法對在基本上要靜態(tài)和固定地構(gòu)成的低成本嵌入式系統(tǒng)的固件內(nèi)部分引入軟件的動態(tài)特性非常有效。
在上述方法中,能用JavaTM虛擬機作為解釋器來實現(xiàn)軟件執(zhí)行環(huán)境層,由此可采用與JavaTM有關(guān)的API組和框架組。要提及的是,本申請人在2003年就將在圖像處理設(shè)備的固件內(nèi)作為含有JavaTM平臺的多功能設(shè)備的MEAPTM(多功能嵌入式應(yīng)用平臺)引入市場。
另一方面,例如日本專利申請公報No.H11-053132(以下稱為JP′132)公開了一種網(wǎng)絡(luò)計算機內(nèi)建打印機和包括這種打印機的計算機網(wǎng)絡(luò)系統(tǒng)。具體地說,在JP′132中,需打印的數(shù)據(jù)文件和與數(shù)據(jù)文件相應(yīng)的應(yīng)用從計算機網(wǎng)絡(luò)下載入內(nèi)部配備有網(wǎng)絡(luò)計算機的應(yīng)用下載型打印機,所下載的應(yīng)用由網(wǎng)絡(luò)計算機啟動,從而將數(shù)據(jù)文件提取出來變換為光柵圖像,并將所獲得的光柵圖像實際打印。此外,JP′132公開了應(yīng)用是JavaTM小程序的情況、應(yīng)用從客戶機與打印數(shù)據(jù)文件一起推送的情況和打印機從應(yīng)用服務(wù)器等拉取應(yīng)用的情況。
此外,日本專利申請公報N0.H11-306107(以下稱為JP′107)公開了一種網(wǎng)絡(luò)通信系統(tǒng),在這種網(wǎng)絡(luò)通信系統(tǒng)內(nèi)多個外圍設(shè)備、多個具有操作外圍設(shè)備的軟件的終端設(shè)備和具有與操作至少外圍設(shè)備的軟件有關(guān)的數(shù)據(jù)庫的服務(wù)器設(shè)備被連接到傳輸信道上,并且在這些設(shè)備之間根據(jù)預(yù)定的通信協(xié)議執(zhí)行網(wǎng)絡(luò)通信。更具體地說,在JP′107中,外圍設(shè)備包括從服務(wù)器設(shè)備請求/獲得與操作外圍設(shè)備的所有或部分軟件或軟件使用的模塊相應(yīng)的最新模塊信息的客戶機控制單元和將所獲得的最新模塊信息傳送給終端設(shè)備的軟件傳送代理。此外,JP′132公開了可以提供JavaTM小程序和JavaTM應(yīng)用作為由軟件用來操作外圍設(shè)備的客戶端模塊。
要提及的是,在PDL(頁面描述語言)打印機中,可能請求諸如自定義、微小校正之類的個別處理。也就是說,客戶的打印環(huán)境和在各自的環(huán)境內(nèi)的請求是各種各樣的。例如,在基本業(yè)務(wù)系統(tǒng)內(nèi),可能構(gòu)成為在每個客戶的環(huán)境內(nèi)獨立開發(fā)的業(yè)務(wù)應(yīng)用直接產(chǎn)生打印數(shù)據(jù)。此外,即使在業(yè)務(wù)應(yīng)用通過打印機驅(qū)動器產(chǎn)生打印數(shù)據(jù)的情況下,用戶對保持一旦開始工作的整個系統(tǒng)的穩(wěn)定性的需要或請求通常也是非常強烈的,從而可能不允許輕易地改變打印機驅(qū)動器。此外,某種類型的打印機具有解釋和打印由其他公司開發(fā)的PDL數(shù)據(jù)的功能。在這種情況下,若干類型的系統(tǒng)可能被構(gòu)成為使得打印通過由第三方開發(fā)的打印機驅(qū)動器、而不是專為該打印機開發(fā)的打印機驅(qū)動器和由PDL開發(fā)源開發(fā)的打印機驅(qū)動器執(zhí)行,從而可以不允許改變打印機驅(qū)動器。也就是說,實際客戶環(huán)境是各種各樣的,因此必須獨立處理這些環(huán)境中的每個環(huán)境。
在對實際打印環(huán)境的這樣一些限制中,打印機廠家必須通過從打印機側(cè)處理不同的客戶請求來滿足這些客戶請求,而不是請求從客戶環(huán)境側(cè)處理。例如,在提供執(zhí)行雙面打印、裝訂等最終處理功能作為打印機新產(chǎn)品的新功能的情況下,如果打印作業(yè)通過與開發(fā)新產(chǎn)品一起開發(fā)的專用打印機驅(qū)動器輸入,或者如果用戶的業(yè)務(wù)應(yīng)用被更新以產(chǎn)生包括新加入的命令串的PDL數(shù)據(jù),那當(dāng)然能充分使用上述新的功能。然而,實際要求的是僅通過從打印機側(cè)處理就能夠使用打印機的新功能,而不影響任何客戶系統(tǒng)。
可替代的是,在多個供應(yīng)廠商提供與某個PDL規(guī)范相應(yīng)的打印機的情況下,始終可能出現(xiàn)在按照供應(yīng)廠商的能力解釋PDL上有差異的兼容性問題。因此,在出現(xiàn)這種類型的問題而且成為實際業(yè)務(wù)的阻礙的客戶環(huán)境中,即使是個別的處理,打印機側(cè)也必須處理和消除該問題。
而且,在極少的情況下,產(chǎn)品可能在帶著由于打印機固件實現(xiàn)(或封裝或安裝)中的問題而對特定模式的PDL數(shù)據(jù)出現(xiàn)的隱錯的情況下。在正常情況下,由于打印機是作為通過充分的質(zhì)量評估的產(chǎn)品發(fā)貨的,在許多客戶打印環(huán)境內(nèi)正常使用該打印機時并不出現(xiàn)上述特定模式的PDL數(shù)據(jù),因此這隱錯根本不成為問題。然而,隱錯可能在例如上述業(yè)務(wù)系統(tǒng)等中可能顯現(xiàn)出來。因此,在這種情況下,當(dāng)然必須特別是在有關(guān)客戶環(huán)境內(nèi)盡快采取對抗這隱錯的措施。
此外,專用應(yīng)用產(chǎn)生的PDL數(shù)據(jù)由于打印機實現(xiàn)中的特性可能包括具有可優(yōu)化的余地的數(shù)據(jù)模式。例如,在將包括冗余描述的PDL數(shù)據(jù)與包括最佳描述的PDL數(shù)據(jù)進行比較時,包括最佳描述的PDL數(shù)據(jù)的打印性能與包括冗余描述的PDL數(shù)據(jù)的打印性能相比較有顯著的改善。因此,在使用以上專用應(yīng)用的客戶打印環(huán)境內(nèi),如果應(yīng)用或打印機驅(qū)動器不能更新,希望通過打印機側(cè)的處理來優(yōu)化PDL數(shù)據(jù)。
為了滿足以上對打印機側(cè)的要求而不影響任何客戶系統(tǒng),有一種改變構(gòu)成打印機的固件和將它釋放用于個別處理的方法,而這種方法可能被實際采用。然而,在為個別處理改變固件的情況下,包括對整個設(shè)備的質(zhì)量重新評估在內(nèi),開發(fā)時間就會拉長,開發(fā)費用也要增加。而且,在更新被嵌入已發(fā)到客戶環(huán)境的設(shè)備內(nèi)的固件的情況下,由于不斷需要由現(xiàn)場工程師等進行高級維護,在及時滿足客戶要求上和在成本效益上都有問題。實際上,即使不改變打印機的整個固件,一部分客戶要求也可以通過在解釋所接收的PDL數(shù)據(jù)流前加入預(yù)處理、并在預(yù)處理中對PDL數(shù)據(jù)流本身執(zhí)行必要的變換來滿足。因此,需要提供一種更動態(tài)的機制,通過該機制,除了另一個固件外,可以以靈活的可擴展方式僅加入用于實現(xiàn)需在解釋所接收的PDL數(shù)據(jù)流前執(zhí)行的預(yù)處理的軟件。
然而,即使準(zhǔn)備用這種背景技術(shù)來滿足以上要求,還是存在以下問題。
在諸如MEAPTM之類的在嵌入式系統(tǒng)的固件內(nèi)含有諸如JavaTM平臺之類的軟件操作環(huán)境層的傳統(tǒng)設(shè)備內(nèi),可以除了固件之外在軟件操作環(huán)境上新開發(fā)新設(shè)備的嵌入式應(yīng)用。因此,JavaTM應(yīng)用可以通過API訪問設(shè)備的打印功能。然而,由于JavaTM平臺處在固件內(nèi)的嵌入式應(yīng)用層,因此作為同一層內(nèi)的本機嵌入式應(yīng)用實現(xiàn)的打印數(shù)據(jù)接收功能和打印服務(wù)器功能就不能轉(zhuǎn)給JavaTM應(yīng)用。也就是說,必須在JavaTM應(yīng)用側(cè)再次實現(xiàn)實現(xiàn)了用于通過網(wǎng)絡(luò)接收打印數(shù)據(jù)的各種打印服務(wù)協(xié)議的打印服務(wù)器功能,從而就開發(fā)裝入、評估裝入、在執(zhí)行打印服務(wù)器功能的情況下的存儲器容量等而言它是低效的。
另一方面,在其他在嵌入式系統(tǒng)的固件內(nèi)不含有軟件操作環(huán)境的傳統(tǒng)設(shè)備內(nèi),整個嵌入式系統(tǒng)構(gòu)成為能采用動態(tài)鏈接和插件。也就是說,整個系統(tǒng)具有動態(tài)結(jié)構(gòu)。在要求具有動態(tài)特性的部分只是以靈活的可擴展方式加入需在解釋所接收的PDL數(shù)據(jù)流前執(zhí)行的預(yù)處理的機構(gòu)的前提下,如上所述的傳統(tǒng)設(shè)備的這些方法不適合低成本的小型系統(tǒng),因為按照將整個系統(tǒng)構(gòu)成為動態(tài)軟件的開銷成本,這將使成本增大而質(zhì)量難以保證。
發(fā)明內(nèi)容
本發(fā)明考慮到如上所述的這些問題而作出,因此它的一個目的是提供一種在對PDL打印機的定制中生產(chǎn)率得到改善的圖像處理設(shè)備、一種用于這種圖像處理設(shè)備的圖像處理控制方法和一種用來使計算機執(zhí)行這種圖像處理控制方法的程序。
本發(fā)明的另一個目的是提供一種圖像處理設(shè)備,這種圖像處理設(shè)備包括打印請求數(shù)據(jù)流接收單元,適于從外部接收外打印請求數(shù)據(jù)流;打印作業(yè)控制器,適于控制解釋打印請求數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè);過濾器單元,適于執(zhí)行對打印請求數(shù)據(jù)流的數(shù)據(jù)處理,從而生成經(jīng)處理的打印請求數(shù)據(jù)流;第一接口,適于將打印請求數(shù)據(jù)流接收單元所接收的打印請求數(shù)據(jù)流發(fā)送給過濾器單元;以及第二接口,適于將過濾器單元所生成的經(jīng)處理的打印請求數(shù)據(jù)流發(fā)送給打印作業(yè)控制器。
在這里,例如,優(yōu)選的是所述圖像處理設(shè)備具有作為根據(jù)由處理器處理的本機指令構(gòu)成的固件的本機環(huán)境,所述本機環(huán)境包括動態(tài)裝入、鏈接和執(zhí)行根據(jù)與所述本機指令獨立地定義的指令集構(gòu)成的程序的解釋器環(huán)境,以及所述打印請求數(shù)據(jù)流接收單元配置在本機環(huán)境上,而所述過濾器單元配置在解釋器環(huán)境上。
在這里,例如,優(yōu)選的是所述圖像處理設(shè)備還包括第三接口單元,其適于將打印請求數(shù)據(jù)流單元所接收的打印請求數(shù)據(jù)流發(fā)送給作業(yè)控制器。
在這里,例如,優(yōu)選的是所述過濾器單元進一步包括模式匹配單元,適于檢測打印請求數(shù)據(jù)流內(nèi)與預(yù)定數(shù)據(jù)模式一致的部分,以及替換單元,適于生成與模式匹配單元檢測到的打印請求數(shù)據(jù)流內(nèi)的一致部分相應(yīng)的預(yù)定部分數(shù)據(jù)流,用所生成的預(yù)定部分數(shù)據(jù)流代替該一致部分。
在這里,例如,優(yōu)選的是所述圖像處理設(shè)備還包括用戶界面構(gòu)成單元,適于在解釋器環(huán)境內(nèi)構(gòu)成通過其用戶對在解釋器環(huán)境上操作的程序進行操作的用戶界面,以及在所述過濾器單元內(nèi)對打印請求數(shù)據(jù)流進行數(shù)據(jù)處理的處理參數(shù)由用戶用用戶界面構(gòu)成單元所構(gòu)成的用戶界面進行操作。
在這里,例如,優(yōu)選的是所述圖像處理設(shè)備還包括線程單元,線程單元適于在解釋器環(huán)境內(nèi)并行執(zhí)行在解釋器環(huán)境上操作的程序的指令的讀取和解釋,以及所述過濾器單元在所述線程單元的獨立執(zhí)行上下文下自主地執(zhí)行對打印請求數(shù)據(jù)流的數(shù)據(jù)處理。
在這里,例如,優(yōu)選的是所述解釋器環(huán)境基于JavaTM平臺。
此外,本發(fā)明的另一個目的是提供一種圖像處理設(shè)備,這種圖像處理設(shè)備包括打印請求數(shù)據(jù)流接收單元,適于從外部接收外打印請求數(shù)據(jù)流;打印作業(yè)控制器,適于控制解釋打印請求數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè);過濾器單元,適于執(zhí)行對打印請求數(shù)據(jù)流的數(shù)據(jù)處理,從而生成經(jīng)處理的打印請求數(shù)據(jù)流;第一接口單元,適于將打印請求數(shù)據(jù)流接收單元所接收的打印請求數(shù)據(jù)流發(fā)送給過濾器單元;第二接口單元,適于將過濾器單元所生成的經(jīng)處理的打印請求數(shù)據(jù)流發(fā)送給打印作業(yè)控制器;以及過濾器管理單元,適于管理多個過濾器單元,控制成能將過濾器單元配置在打印請求數(shù)據(jù)流的數(shù)據(jù)通路內(nèi),以及使所配置的過濾器單元順序處理打印請求數(shù)據(jù)流。
在這里,例如,優(yōu)選的是所述圖像處理設(shè)備還包括過濾器配置操作接受單元,過濾器配置操作接受單元適于接受從過濾器管理單元所管理的多個過濾器單元中有選擇地將所希望的過濾器單元配置在打印請求數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)的用戶操作。
在這里,例如,優(yōu)選的是所述圖像處理設(shè)備還包括第三接口單元,第三接口單元適于在過濾器管理單元不將任何過濾器單元配置在打印請求數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)的情況下直接將打印請求數(shù)據(jù)流接收單元所接收的打印請求數(shù)據(jù)流發(fā)送給打印作業(yè)控制器。
在這里,例如,優(yōu)選的是所述圖像處理設(shè)備還包括過濾器引入單元,適于將過濾器單元從外部引入圖像處理設(shè)備,以便將所引入的過濾器單元置于過濾器管理單元的管理之下。
此外,本發(fā)明的另一個目的是提供一種用于圖像處理設(shè)備的控制方法,圖像處理設(shè)備包括適于從外部接收外打印請求數(shù)據(jù)流的打印請求數(shù)據(jù)流接收單元、適于控制解釋打印請求數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè)的打印作業(yè)控制器和適于執(zhí)行對打印請求數(shù)據(jù)流的數(shù)據(jù)處理從而生成經(jīng)處理的打印請求數(shù)據(jù)流的過濾器單元,所述方法包括將打印請求數(shù)據(jù)流接收單元所接收的打印請求數(shù)據(jù)流發(fā)送給過濾器單元的第一接口步驟;以及將過濾器單元所生成的經(jīng)處理的打印請求數(shù)據(jù)流發(fā)送給打印作業(yè)控制器的第二接口步驟。
在這里,例如,優(yōu)選的是所述控制方法還包括將打印請求數(shù)據(jù)流接收單元所接收的打印請求數(shù)據(jù)流發(fā)送給作業(yè)控制器的第三接口步驟。
此外,本發(fā)明的另一個目的是提供一種用于圖像處理設(shè)備的控制方法,圖像處理設(shè)備包括適于從外部接收外打印請求數(shù)據(jù)流的打印請求數(shù)據(jù)流接收單元、適于控制解釋打印請求數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè)的打印作業(yè)控制器和適于執(zhí)行對打印請求數(shù)據(jù)流的數(shù)據(jù)處理從而生成經(jīng)處理的打印請求數(shù)據(jù)流的過濾器單元,所述方法包括將打印請求數(shù)據(jù)流接收單元所接收的打印請求數(shù)據(jù)流發(fā)送給過濾器單元的第一接口步驟;將過濾器單元所生成的經(jīng)處理的打印請求數(shù)據(jù)流發(fā)送給打印作業(yè)控制器的第二接口步驟;以及管理多個過濾器單元、控制成能將過濾器單元配置在打印請求數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)和使所配置的過濾器單元順序處理打印請求數(shù)據(jù)流的過濾器管理步驟。
在這里,例如,優(yōu)選的是所述控制方法還包括接收從在過濾器管理步驟所管理的多個過濾器單元中有選擇地將所希望的過濾器單元配置在打印請求數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)的用戶操作的過濾器配置操作接受步驟。
在這里,例如,優(yōu)選的是所述控制方法還包括在過濾器管理步驟適合不將任何過濾器單元配置在打印請求數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)的情況下直接將打印請求數(shù)據(jù)流接收單元所接收的打印請求數(shù)據(jù)流發(fā)送給打印作業(yè)控制器的第三接口步驟。
此外,還提供了一種使計算機執(zhí)行上述控制方法的計算機程序和一種存儲使計算機執(zhí)行上述控制方法的計算機程序的計算機可讀存儲介質(zhì)。
按照本發(fā)明,通過將在解釋打印機所接收的PDL數(shù)據(jù)流前執(zhí)行預(yù)處理的濾波器部分實現(xiàn)為靈活的可擴展軟件,從而將所實現(xiàn)的濾波器部分與對穩(wěn)定性有要求的打印機固件的其他部分的實現(xiàn)分開,可以改善PDL打印機定制的生產(chǎn)率。
從以下結(jié)合附圖對示范性的實施例的說明中可以清楚地看到本發(fā)明的上述這些及其他一些目的。
圖1為示出根據(jù)本發(fā)明的第一實施例的圖像處理設(shè)備的硬件組成的方框圖;圖2為示出使圖1所示圖像處理設(shè)備工作的軟件(模塊)的組成的層示意圖;圖3為示出圖2所示的圖像處理設(shè)備內(nèi)的軟件模塊之間的數(shù)據(jù)流的示意圖;圖4為示出在解釋器環(huán)境上構(gòu)成的過濾器框架的類的示意圖;圖5A和5B為示出由在解釋器環(huán)境上構(gòu)成的過濾器框架管理的對象的實例的示意圖;圖6A和6B為示出用來操作過濾器框架的用戶界面的例子的示意圖;圖7為示出過濾器處理的主要流程的流程圖;圖8為說明由第一實施例中的兼容過濾器執(zhí)行的處理的示意圖;圖9為說明由第一實施例中的校正過濾器執(zhí)行的處理的示意圖;圖10為說明由第二實施例中的過濾器執(zhí)行的處理的示意圖;圖11為說明由第三實施例中的過濾器執(zhí)行的處理的示意圖;以及圖12為示出用來操作功能擴展過濾器的用戶界面的例子的示意圖。
具體實施例方式
下面,將結(jié)合
實現(xiàn)本發(fā)明的最佳方式。
(第一實施例)圖1為示出根據(jù)本發(fā)明的第一實施例的圖像處理設(shè)備的硬件組成的方框圖。
在圖1中,打印機1000其中包括打印機控制器1600。
在打印機控制器1600內(nèi),網(wǎng)絡(luò)打印服務(wù)器的CPU(中央處理單元)1根據(jù)存儲在可重寫閃速ROM(只讀存儲器)3內(nèi)的控制程序完全控制從多個外部設(shè)備發(fā)送的打印數(shù)據(jù)和諸如打印機控制指令之類的各種數(shù)據(jù)傳輸/接收請求。這里,多個外部設(shè)備為連接到LAN(局域網(wǎng))2000上的主計算機等(未示出),LAN 2000上的通信由連接到系統(tǒng)總線4上的LANC(局域網(wǎng)控制器)5控制。上述各種數(shù)據(jù)傳輸/接收請求由外部設(shè)備按照預(yù)定的網(wǎng)絡(luò)通信協(xié)議發(fā)送。
CPU 1根據(jù)存儲在ROM 9內(nèi)的控制程序等、存儲在通過DKC(盤控制器)15連接的外部儲存器10內(nèi)的控制程序和資源數(shù)據(jù)等控制對連接到系統(tǒng)總線4上的各個設(shè)備的全部訪問。此外,CPU 1根據(jù)所接收的打印數(shù)據(jù)使光柵控制器12產(chǎn)生輸出圖像信息,還使標(biāo)記引擎16輸出圖像信號。
RAM 2用作CPU 1的主存儲器和諸如工作區(qū)之類的臨時存儲區(qū)。
LED(發(fā)光二極管)6起著顯示打印機控制器1600的操作狀態(tài)的顯示單元的作用。例如,LED 6通過閃爍模式或發(fā)光顏色指示LANC5與LAN 2000之間的電連接狀態(tài)(LINK)和諸如網(wǎng)絡(luò)通信模式(10Base模式或100Base模式;全雙工模式或半雙工模式)之類的各種操作狀態(tài)。
操作面板(操作單元)18包括按鈕、液晶屏、疊加在液晶屏上的觸摸屏和諸如LED之類的顯示部分。這里,按鈕用來設(shè)置打印機1000的操作模式等,執(zhí)行諸如取消打印數(shù)據(jù)之類的各種操作,而液晶屏用來顯示打印機1000的操作狀態(tài)。
要提及的是,標(biāo)記引擎16用來通過使用已知的打印技術(shù)執(zhí)行打印。更具體地說,標(biāo)記引擎16通過電子照相方法(激光束方法)、噴墨方法、染料升華方法(熱轉(zhuǎn)印方法)等在轉(zhuǎn)印紙上形成圖像。
圖2為示出使圖1所示圖像處理設(shè)備工作的軟件(模塊)的組成的層示意圖。
在這里,圖2示出了處在較高層的模塊依賴于處在較低層的模塊,而在用線連接的模塊之間有著強烈的依賴關(guān)系。
標(biāo)號201表示本機代碼(native code)部分,其為構(gòu)成圖像處理設(shè)備的固件的標(biāo)準(zhǔn)部分,包括由硬件CPU 1直接執(zhí)行的本機代碼。此外,本機代碼部分201在開發(fā)圖像處理設(shè)備時作為固件靜態(tài)地鏈接到單個裝入模塊上,在實際制造圖像處理設(shè)備時存儲在圖像處理設(shè)備的非易失性存儲器內(nèi)。在圖像處理設(shè)備開始工作時固件從非易失性存儲器取入RAM 2,在圖像處理設(shè)備工作時,CPU 1從RAM 2順序讀取代碼并對代碼予以解釋。然而,CPU 1不執(zhí)行動態(tài)鏈接。或者,也可以是將固件存儲在CPU能直接讀取和訪問的諸如ROM之類的非易失性存儲器內(nèi),使CPU從ROM順序讀取代碼并對代碼予以解釋,而不將固件取入RAM。
標(biāo)號202表示打印應(yīng)用,它是嵌入式應(yīng)用,為圖像處理設(shè)備提供作為打印機的核心功能。打印應(yīng)用202響應(yīng)來自客戶機的請求提供打印服務(wù),執(zhí)行客戶機通過控制API(應(yīng)用編程接口)204請求的打印作業(yè)。
標(biāo)號203表示打印請求接收模塊,它接收由客戶機輸入的打印作業(yè)。打印請求接收模塊203通過RTOS(實時操作系統(tǒng))209依賴于協(xié)議棧210。來自客戶機的打印請求物理地通過諸如以太網(wǎng)(EthernetTM)之類的網(wǎng)絡(luò)和諸如USB(通用串行總線)、IEEE 1394(電氣和電子工程師協(xié)會1394)之類的各種接口發(fā)送給打印機,并且規(guī)定了按照各自連接模式執(zhí)行打印請求的應(yīng)用協(xié)議。此外,打印請求接收模塊203具有用于打印的應(yīng)用協(xié)議的服務(wù)器功能。相對于例如只有一種網(wǎng)絡(luò)協(xié)議,用于打印服務(wù)的應(yīng)用協(xié)議包括諸如LPR(行式打印機守護協(xié)議)、SMB(服務(wù)器消息塊)、PAP(口令驗證協(xié)議)、NetWare之類的各種規(guī)范,從而為了實現(xiàn)這些規(guī)范,需要巨大的開發(fā)費用和質(zhì)量評估費用。此外,打印請求接收模塊203支持多種協(xié)議,包括用于這些接口中每個接口的各種打印業(yè)務(wù)協(xié)議。
打印請求接收模塊203可以在圖像處理設(shè)備的存儲裝置內(nèi)建立打印作業(yè)隊列,也就是說,打印請求接收模塊203可以具有假脫機功能。在這種情況下,打印請求接收模塊203接收到來自客戶機的打印作業(yè)請求并將其存儲在隊列內(nèi),從而釋放客戶機。要提及的是,存儲在隊列內(nèi)的打印作業(yè)在實際可以執(zhí)行打印作業(yè)時按照調(diào)度算法順序處理。
標(biāo)號204表示控制API,它是訪問圖像處理設(shè)備所提供的設(shè)備服務(wù)的應(yīng)用編程接口。要提及的是,構(gòu)成控制API 204的主接口之一是執(zhí)行和控制打印作業(yè)的接口。
標(biāo)號205表示作業(yè)控制模塊,它控制圖像處理設(shè)備所提供的各種圖像處理作業(yè)。在這里,主要的圖像處理作業(yè)是打印作業(yè)。作業(yè)控制模塊205解釋通過控制API 204請求執(zhí)行的打印作業(yè)的數(shù)據(jù)流,將打印作業(yè)的描述與需打印的打印數(shù)據(jù)的描述分開。在這里,打印作業(yè)的描述包括指定與解釋和提取打印數(shù)據(jù)有關(guān)的操作參數(shù)、指定用來打印的轉(zhuǎn)印紙的進給、指定諸如雙面打印之類的打印模式、指定排紙托盤、指定分類(比較)、指定諸如釘書釘裝訂、書本式裝訂之類的最后處理等等的環(huán)境數(shù)據(jù)。另一方面,打印數(shù)據(jù)由PDL描述,每一頁的描畫主要在其中描述。要提及的是,作業(yè)控制模塊205控制翻譯器206、呈現(xiàn)器207和ME(標(biāo)記引擎)控制模塊208。此外,作業(yè)控制模塊205執(zhí)行對打印數(shù)據(jù)流的調(diào)度,使得處理按照翻譯器206、呈現(xiàn)器207和ME控制模塊208的順序進行。
標(biāo)號206表示翻譯器,它解釋用PDL描述的打印數(shù)據(jù),將它變換成用適合呈現(xiàn)處理的打印中間語言的描述的打印數(shù)據(jù)。在這里,用適合呈現(xiàn)處理的打印中間語言對打印數(shù)據(jù)的描述稱為顯示表。翻譯器206具有對于各種PDL規(guī)范中的每一種規(guī)范不同的固有實現(xiàn),從而任何翻譯器將PDL變換成對于呈現(xiàn)器來說是固有的顯示表。
標(biāo)號207表示呈現(xiàn)器,它將顯示表提取成光柵圖像。在這里,呈現(xiàn)器207通過RTOS 209依賴于呈現(xiàn)器驅(qū)動器212。
標(biāo)號208表示ME控制模塊,它控制在圖像處理設(shè)備內(nèi)執(zhí)行在轉(zhuǎn)印紙上形成圖像的標(biāo)記引擎16。在這里,ME控制模塊208通過RTOS209依賴于ME驅(qū)動器213。
標(biāo)號209表示RTOS,它是提供圖像處理設(shè)備的本機代碼固件的執(zhí)行環(huán)境的平臺。對于在其上操作的軟件來說,RTOS 209提供用于軟件構(gòu)成的基本服務(wù)和抽象化圖像處理設(shè)備的硬件資源的服務(wù),并且為能從軟件方便地使用的接口提供抽象化圖像處理設(shè)備的硬件的設(shè)備驅(qū)動器結(jié)構(gòu)的框架。要提及的是,RTOS 209所提供的功能包括抽象化CPU 1的指令執(zhí)行上下文的任務(wù)管理、通過同時對多個執(zhí)行上下文進行虛擬操作實現(xiàn)并行處理的多任務(wù)機制、在任務(wù)之間交換和同步消息的任務(wù)間通信(消息隊列、信號量等)、各種存儲器管理、定時器、時鐘、中斷管理、DMA(直接存儲器訪問)控制,等等。
標(biāo)號210表示協(xié)議棧,它嵌入RTOS 209的框架,實現(xiàn)等于或低于由較低的外部接口驅(qū)動器211控制的外部接口上的傳輸層的協(xié)議。例如,在網(wǎng)絡(luò)接口的情況下,實現(xiàn)諸如TCP/IP(傳輸控制協(xié)議/網(wǎng)際協(xié)議)、UDP/IP(用戶數(shù)據(jù)報協(xié)議/網(wǎng)際協(xié)議)之類的協(xié)議,通過RTOS209為嵌入式應(yīng)用層提供諸如Berkeley套接字之類的應(yīng)用編程的接口。此外,例如,在外部接口為USB時,實現(xiàn)諸如IEEE標(biāo)準(zhǔn)1284.4之類的協(xié)議。
標(biāo)號211表示外部接口驅(qū)動器,它驅(qū)動提供與網(wǎng)絡(luò)接口和諸如IEEE 1394、USB、RS 232C(推薦標(biāo)準(zhǔn)232版本C)、Centronics接口之類的各種接口的連接的硬件。例如,在網(wǎng)絡(luò)的情況下,外部接口驅(qū)動器211驅(qū)動連接到諸如以太網(wǎng)(EthernetTM)之類的網(wǎng)絡(luò)上的網(wǎng)絡(luò)接口硬件,從而實現(xiàn)物理分層結(jié)構(gòu)協(xié)議。
標(biāo)號212表示呈現(xiàn)器驅(qū)動器,它驅(qū)動呈現(xiàn)器207。呈現(xiàn)器207為將顯示表提取成光柵圖像的硬件,但是可以用軟件實現(xiàn)。
標(biāo)號213表示ME驅(qū)動器,它驅(qū)動在轉(zhuǎn)印紙上執(zhí)行圖像形成的標(biāo)記引擎16。
標(biāo)號214表示操作面板驅(qū)動器,它處理給圖像處理設(shè)備的操作面板18的顯示單元的輸出,以及處理來自鍵和觸摸屏的輸入事件。
標(biāo)號215表示解釋器環(huán)境,它是基于各種解釋器環(huán)境中的JavaTM平臺的運行時環(huán)境的軟件平臺。此外,在圖像處理設(shè)備內(nèi)固有的API組和框架組被加入解釋器環(huán)境215。在這里,這個軟件平臺為在其上操作的、用解釋語言描述的程序提供動態(tài)軟件操作環(huán)境。要提及的是,解釋器環(huán)境215包括用本機代碼實現(xiàn)的部分(包括在本機代碼部分201內(nèi))和作為用解釋語言描述的程序?qū)崿F(xiàn)的部分(包含在解釋器代碼部分220內(nèi))。
標(biāo)號216表示解釋器,它從用預(yù)定的指令集描述的指令串中順序讀取、解釋和執(zhí)行指令。在本實施例中,解釋器216用JavaTM虛擬機形成,指令集用JavaTM字節(jié)代碼表示。
標(biāo)號217表示標(biāo)準(zhǔn)API庫和框架組。在組217內(nèi),由RTOS 209提供的抽象化的各種計算資源進一步用解釋器環(huán)境215內(nèi)固有的模型抽象化,從而提供在其上操作的程序的執(zhí)行環(huán)境。此外,組217由構(gòu)成JavaTM平臺的標(biāo)準(zhǔn)類庫組和OSGi(開放式服務(wù)網(wǎng)關(guān)協(xié)議)框架實現(xiàn)。
上述JavaTM平臺提供了與RTOS 209相應(yīng)的抽象化的功能,例如包括抽象化虛擬機的指令執(zhí)行上下文的線程管理,通過同時對多個執(zhí)行上下文進行虛擬操作實現(xiàn)并行處理的多線程機制,在這些線程之間交換和同步消息的線程間通信,高度抽象的各種存儲器管理(糾錯等),定時器,時鐘,例外管理,對文件系統(tǒng)和網(wǎng)絡(luò)的訪問,與外部輸入/輸出設(shè)備的接口,等等。
此外,OSGi框架對單個JavaTM虛擬機上的多個JavaTM應(yīng)用(服務(wù))進行操作、管理這些應(yīng)用的生存期和提供應(yīng)用間通信功能。要提及的是,多個系統(tǒng)服務(wù)業(yè)已預(yù)裝在OSGi框架上。在這里,所準(zhǔn)備的系統(tǒng)服務(wù)包括在解釋器環(huán)境上加入、更新和刪除新的應(yīng)用的業(yè)務(wù)管理服務(wù),在操作面板18上顯示按照應(yīng)用小程序接口實現(xiàn)的JavaTM類、使得用戶可以對在操作面板18上顯示的類進行操作的應(yīng)用小程序查看服務(wù),對按照服務(wù)小程序接口實現(xiàn)的、作為能從客戶機的瀏覽器操作的web應(yīng)用的JavaTM類進行操作的HTTP(超文本傳輸協(xié)議)服務(wù),等等。特別是,按照應(yīng)用小程序接口實現(xiàn)的JavaTM應(yīng)用可以間接地通過AWT(抽象開窗工具包)的API等與操作面板驅(qū)動器214接口。
標(biāo)號218表示作業(yè)控制庫,它依賴于控制API 204。作業(yè)控制庫218為在解釋器環(huán)境215上操作的程序提供允許執(zhí)行和控制圖像處理作業(yè)的應(yīng)用編程接口。
標(biāo)號219表示過濾器框架,它在執(zhí)行對打印數(shù)據(jù)流的打印作業(yè)請求的情況下通過與打印應(yīng)用202通信來允許從在解釋器環(huán)境215上實現(xiàn)的過濾器程序插入。
標(biāo)號220表示解釋器代碼部分,它實現(xiàn)為用能由解釋器216解釋的解釋語言描述的軟件。此外,解釋器代碼部分220包括構(gòu)成解釋器環(huán)境215的API庫組和框架組的一部分和在解釋器環(huán)境215上運行的程序。要提及的是,對于跨本機代碼部分201和解釋器代碼部分220的軟件來說,必須按照由解釋器環(huán)境215和編程模型定義的固有框架對在各空間之間接口的模塊執(zhí)行編碼。在本實施例中,這些空間的邊界的編程按照JNI(JavaTM本機接口)執(zhí)行。
標(biāo)號221表示過濾器,它是在解釋器環(huán)境215上實現(xiàn)的程序。由于過濾器221按照過濾器框架219的框架實現(xiàn),能對需由打印應(yīng)用202處理的打印數(shù)據(jù)流執(zhí)行處理。標(biāo)號222表示各種應(yīng)用和Web應(yīng)用。
圖3為示出圖2所示的圖像處理設(shè)備內(nèi)的軟件模塊之間的數(shù)據(jù)流的示意圖。
在打印請求接收模塊203不對從客戶機接收到的打印作業(yè)數(shù)據(jù)流執(zhí)行過濾器處理的情況下,打印作業(yè)數(shù)據(jù)流301從打印請求接收模塊203流至作業(yè)控制模塊205。在這里,例如打印作業(yè)數(shù)據(jù)流301用由RTOS 209提供的諸如消息隊列之類的任務(wù)間通信功能發(fā)送。
作業(yè)控制模塊205順序解釋打印作業(yè)數(shù)據(jù)流301,并進一步解釋打印作業(yè)數(shù)據(jù)流301內(nèi)的作業(yè)描述。然后,按照解釋,作業(yè)控制模塊205通過控制通路302控制翻譯器206、呈現(xiàn)器207和ME控制模塊208。
另一方面,打印作業(yè)數(shù)據(jù)流301內(nèi)的打印數(shù)據(jù)是通常用PDL描述的命令序列303,這個命令序列303流至翻譯器206。然后,翻譯器206對打印數(shù)據(jù)進行解釋,產(chǎn)生顯示表304。所產(chǎn)生的顯示表304然后流至呈現(xiàn)器207。接著,呈現(xiàn)器207提取顯示表304,產(chǎn)生光柵圖像數(shù)據(jù)305。在這里,光柵圖像數(shù)據(jù)305可以以頁為單位產(chǎn)生,也可以以通過將頁在副掃描方向上分成多個區(qū)域得到的帶為單位產(chǎn)生。在任何情況下,所產(chǎn)生的光柵圖像數(shù)據(jù)305流至ME控制模塊208。ME控制模塊208將光柵圖像數(shù)據(jù)305傳送給標(biāo)記引擎16,標(biāo)記引擎16由此在轉(zhuǎn)印紙上執(zhí)行圖像形成。
上述處理都由在本機代碼部分201內(nèi)實現(xiàn)的軟件實現(xiàn)。
另一方面,在要對打印作業(yè)數(shù)據(jù)流執(zhí)行過濾器處理的情況下,打印請求接收模塊203從客戶機接收到的打印作業(yè)數(shù)據(jù)流306流至過濾器框架219。在這里,例如打印作業(yè)數(shù)據(jù)流306通過由RTOS 209提供的諸如消息隊列之類的任務(wù)間通信功能發(fā)送。
過濾器框架219的運行時模塊管理在解釋器環(huán)境215上實現(xiàn)的過濾器程序組。過濾器框架219將所接收的打印作業(yè)數(shù)據(jù)流306作為打印作業(yè)數(shù)據(jù)流307流至過濾器221。在這里,例如打印作業(yè)數(shù)據(jù)流307通過由解釋器環(huán)境215提供的線程間通信功能發(fā)送。要提及的是,在配置或設(shè)置有多個過濾器時,打印作業(yè)數(shù)據(jù)流在各過濾器之間流動,而這些打印作業(yè)數(shù)據(jù)流通過由解釋器環(huán)境215提供的線程間通信功能發(fā)送。
過濾器221對所接收的打印作業(yè)數(shù)據(jù)流307執(zhí)行預(yù)定的處理,然后輸出數(shù)據(jù)流308。過濾器221輸出的數(shù)據(jù)流308流至過濾器框架219。例如,數(shù)據(jù)流308用解釋器環(huán)境215提供的線程間通信功能發(fā)送。
過濾器框架219將從過濾器221接收到的數(shù)據(jù)流308作為數(shù)據(jù)流309流至作業(yè)控制模塊205。在這里,例如數(shù)據(jù)流309用RTOS 209提供的諸如消息隊列之類的任務(wù)間通信功能發(fā)送。此后,數(shù)據(jù)就象不使用過濾器221的情況那樣流動。
標(biāo)號310表示從過濾器框架219延伸到打印請求接收模塊203的控制通路。利用控制通路310,從過濾器框架219對將打印作業(yè)數(shù)據(jù)流301從打印請求接收模塊203發(fā)送給作業(yè)控制模塊205進行控制。也就是說,在過濾器框架219所管理的過濾器221配置成處在有效狀態(tài)時,打印作業(yè)數(shù)據(jù)流306有效,從而用過濾器221對打印作業(yè)數(shù)據(jù)流306執(zhí)行預(yù)處理。另一方面,在過濾器框架219所管理的過濾器221沒有配置成處在有效狀態(tài)時,打印作業(yè)數(shù)據(jù)流301有效,從而使從客戶機接收到的打印作業(yè)數(shù)據(jù)流直接流至作業(yè)控制模塊205。在這種情況下,由于能省去過濾器框架219所涉及的開銷,因此就能使打印機發(fā)揮處在根本不應(yīng)用過濾器221所作的任何定制的標(biāo)準(zhǔn)狀態(tài)的數(shù)據(jù)處理性能。
圖4為示出在解釋器環(huán)境215上構(gòu)成的過濾器框架219的類的示意圖。
在圖4中,F(xiàn)ilterManager(過濾器管理器)類(class)401為實現(xiàn)過濾器框架219的運行時環(huán)境的對象(object)的類。FilterManager類401具有作為成分(composition)的一個Connector(連接器)類405的對象。此外,F(xiàn)ilterManager類401還具有包括對多個(n個)Filter(過濾器)抽象類402的對象的引用和對多個(n-1個)Pipe(管道)類406的對象的引用的有序表。此外,F(xiàn)ilterManager類401還包括管理在過濾器框架219的運行時安裝的多個Filter抽象類402中的具體類的installed Filter(安裝的過濾器)屬性。
Filter抽象類402是將各種濾波器類抽象化的抽象類,并Filter抽象類402具有指示過濾器名稱的名稱屬性等。此外,F(xiàn)ilter抽象402具有作為輸入屬性的對繼承InputStream(輸入流)抽象類403的類的對象的引用和作為輸出屬性的對繼承OutputStream(輸出流)抽象類404的類的對象的引用。為Filter抽象類402中的具體類實現(xiàn)Runnable(可運行的)接口,F(xiàn)ilter抽象類402具有運行方法。在FilterManager對象產(chǎn)生所管理的各種過濾器類的實例并且被配置用于數(shù)據(jù)流的過濾器處理時,F(xiàn)ilterManager對象產(chǎn)生與所配置的各過濾器對象對應(yīng)的線程,在并行操作的線程的執(zhí)行上下文內(nèi)執(zhí)行過濾器對象的運行方法。也就是說,將過濾器對象發(fā)送給構(gòu)造器的參數(shù),產(chǎn)生“java.lang.Thread”對象,然后啟動。由此,各過濾器對象自主地進行操作。
InputStream抽象類403為數(shù)據(jù)流的輸入源的抽象類,具有能在每次調(diào)用時順序讀取數(shù)據(jù)的讀取方法。
OutputStream抽象類404為數(shù)據(jù)流的輸出目的地的抽象類,具有能在每次調(diào)用時順序?qū)懭霐?shù)據(jù)的寫入方法。
Connector類405為表示在解釋器環(huán)境215的對象與本機代碼之間交換數(shù)據(jù)流的接觸點的對象的類。而且,Connector類405具有作為繼承InputStream抽象類403的具體類的ConnectorInputStream(連接器輸入流)類的對象來作為成分,可以用它的讀取方法順序讀取從本機代碼的打印請求接收模塊203流出的數(shù)據(jù)流306。此外,Connector類405具有繼承OutputStream抽象類404的ConnectorOutputStream(連接器輸出流)類的對象來作為成分,用它的寫入方法順序?qū)懭氲臄?shù)據(jù)流作為數(shù)據(jù)流309流至本機代碼的作業(yè)控制模塊205。
Pipe類406為在對數(shù)據(jù)流執(zhí)行多個過濾處理時用來鏈接Filter抽象類402的一系列對象的對象的類。Pipe類406具有繼承OutputStream抽象類404的PipedOutputStream(管道輸出流)類的對象和繼承InputStream抽象類403的PipedInputStream(管道輸入流)類的對象來作為成分。在這里,Pipe對象的PipedOutputStream對象和PipedInputStream對象相互連接,從而實現(xiàn)線程間通信。也就是說,對于一個Pipe對象來說,由一個Filter對象通過寫入方法順序?qū)懭朐揚ipe對象的PipedOutputStream對象的數(shù)據(jù)流能由另一個Filter對象通過讀取方法從該Pipe對象的PipedInputStream對象順序讀出。
圖5A和5B為示出由在解釋器環(huán)境215上構(gòu)成的過濾器框架219管理的對象的實例的示意圖。
具體地說,圖5A示出了處在一個過濾器有效的狀態(tài)時由過濾器框架219的運行時管理的對象之間的關(guān)系。
在圖5A中,Connector對象501是Connector類405的對象。
Filter對象502是通過對Filter抽象類402抽象化所得到的抽象類的對象。要提及的是,Connector對象501的ConnectorInputStream對象的引用保持在Filter對象502的輸入屬性內(nèi),而Connector對象501的ConnectorOutputStream對象的屬性保持在Filter對象502的輸出屬性內(nèi)。Filter對象502對從由信號“input(輸入)”指示的ConnectorInputStream對象讀出的數(shù)據(jù)流執(zhí)行過濾器處理,將經(jīng)過濾器處理的數(shù)據(jù)流寫入由信號“output(輸出)”指示的ConnectorOutputStream對象。
以如上所說明的方式,實現(xiàn)對象之間的打印數(shù)據(jù)流的發(fā)送(圖5A中的粗箭頭)。
此外,圖5B示出了處在兩個濾波器有效的狀態(tài)時由過濾器框架219的運行時管理的對象之間的關(guān)系。
過濾器1對象503是通過對過濾器抽象類402抽象化所得到的抽象類的對象。要提及的是,Connector對象501的ConnectorInputStream對象的引用保持在過濾器1對象503的輸入屬性內(nèi),而過濾器1對象503對從由信號“input”指示的ConnectorInputStream對象讀出的數(shù)據(jù)流執(zhí)行過濾器處理。另一方面,Pipe對象504的PipedOutputStream對象的引用保持在過濾器1對象503的輸出屬性內(nèi),而過濾器1對象503將經(jīng)過濾器處理的數(shù)據(jù)流寫入由信號“output”指示的PipedOutputStream對象。
Pipe對象504是Pipe類406的對象,將PipedOutputStream對象和PipedInputStream對象保持在這些對象被連接的狀態(tài)。因此,通過調(diào)用Pipe對象504的PipedOutputStream對象的寫入方法發(fā)送的數(shù)據(jù)流能通過調(diào)用Pipe對象504的PipedInputStream對象的讀取方法作為數(shù)據(jù)流讀出。
過濾器2對象505是通過對Filter抽象類402抽象化所得到的抽象類的對象。要提及的是,Pipe對象504的PipedInputStream的引用保持在過濾器2對象505的輸入屬性內(nèi),而過濾器2對象505對從由信號“input”指示的Pipe對象504讀出的數(shù)據(jù)流執(zhí)行過濾器處理。同時,Connector對象501的ConnectorOutputStream的引用保持在過濾器2對象505的輸出屬性內(nèi),過濾器2對象505將經(jīng)過濾器處理的數(shù)據(jù)流寫入由信號“output”指示的Connector對象501的ConnectorOutputStream內(nèi)。
以如上所說明的方式,實現(xiàn)對象之間的打印數(shù)據(jù)流的發(fā)送(圖5B中的粗箭頭)。類似地,隨著將Pipe對象夾在有關(guān)過濾器對象之間,能配置更多個過濾器對象來對數(shù)據(jù)流進行處理。
圖6A和6B為示出用來操作過濾器框架219的用戶界面的例子的示意圖。
用來操作過濾器框架219的用戶界面通過標(biāo)準(zhǔn)庫和包含在框架217內(nèi)的HTTP服務(wù)實現(xiàn)為Web應(yīng)用(服務(wù)小程序),并且從客戶機端的Web瀏覽器操作。要提及的是,也能構(gòu)成實現(xiàn)為應(yīng)用小程序服務(wù)并且用圖像處理設(shè)備的操作面板操作的用戶界面。
圖6A示出了用來為圖像處理設(shè)備的過濾器框架219另外安裝新的過濾器的用戶界面。
在圖6A中,標(biāo)號601表示過濾器安裝屏幕的例子。
標(biāo)號602表示文件名輸入欄。具體地說,在文件名輸入欄602內(nèi),用戶輸入預(yù)先存儲在客戶計算機的文件系統(tǒng)內(nèi)的、要安裝的過濾器類的類文件的文件路徑。
標(biāo)號603表示引用按鈕。在用戶單擊引用按鈕603時,就打開了由客戶計算機的Web瀏覽器提供的文件選擇對話框。因此,用戶能在客戶計算機的文件系統(tǒng)內(nèi)瀏覽,從而選擇要安裝的過濾器類的類文件。然后,用戶通過文件選擇對話框選擇的文件的文件路徑被自動輸入文件名輸入欄602。
標(biāo)號604表示安裝按鈕。在用戶單擊安裝按鈕604時,輸入文件名輸入欄602的文件路徑的類文件就被發(fā)送給通過客戶計算機的Web瀏覽器安裝新的過濾器的Web應(yīng)用。接收到類文件的Web應(yīng)用將所接收的類文件存儲在圖像處理設(shè)備的非易失性存儲器(閃速ROM 3或外部存儲器10)內(nèi)。此外,類文件動態(tài)地裝入解釋器環(huán)境215,生成對象實例,再將所生成的過濾器對象配置在由過濾器框架219的運行時管理的有效過濾器串的列表的最下游。在這里,如果在過濾器串內(nèi)已經(jīng)存在有效的過濾器對象,也生成鏈接新過濾器對象的新的Pipe對象。
在上述用戶界面已實現(xiàn)為Web應(yīng)用的情況下,將過濾器實現(xiàn)類上載給圖像處理設(shè)備的機構(gòu)通過使用根據(jù)由RFC(請求注解文件)確定的基于HTML(超文本置標(biāo)語言)形式的文件上載規(guī)范執(zhí)行該實現(xiàn)。因此,在這種情況下,文件名輸入欄602和引用按鈕603由客戶計算機的Web瀏覽器顯示,而安裝按鈕604對應(yīng)于“submit(提交)”形式。
此外,在上述用戶界面實現(xiàn)為應(yīng)用小程序服務(wù)的情況下,在圖像處理設(shè)備的操作面板18的顯示部分上顯示過濾器安裝屏幕601。在這里,作為將在文件名輸入欄602內(nèi)指定的文件,在圖像處理設(shè)備安裝有可移動存儲介質(zhì)時,可應(yīng)用在可移動存儲介質(zhì)內(nèi)的文件路徑。否則,可以通過使用URL(統(tǒng)一資源定位符)等指定通過網(wǎng)絡(luò)用諸如HTTP、FTP(文件傳輸協(xié)議)之類的文件傳輸協(xié)議從圖像處理設(shè)備可讀和可訪問的共享文件。
圖6B示出了用來配置安裝在圖像處理設(shè)備的過濾器框架219內(nèi)的過濾器的用戶界面。
在圖6B中,標(biāo)號605表示過濾器配置屏幕的例子。
標(biāo)號606表示列有在過濾器框架的運行時安裝的過濾器組的表。在表606內(nèi),各行分別與所安裝的過濾器一一對應(yīng),“選擇”列包括一些復(fù)選框,與所選的行相應(yīng)的過濾器就選為稍后要說明的操作的目標(biāo)。此外,在表606的“順序”列內(nèi),在過濾器處在未激活狀態(tài)時,顯示消息“非活動”。另一方面,在過濾器處在激活狀態(tài)時,從上到下按遞升次序顯示序號(即,數(shù)據(jù)流處理順序)。此外,在表606的“名稱”列內(nèi)顯示對過濾器對象的名稱屬性所描述的各個過濾器的名稱。
標(biāo)號607至611表示各個用來指示對所選擇的過濾器的操作的按鈕。具體地說,這些按鈕用來指示對在表606的“選擇”列內(nèi)所選中的復(fù)選框所在行內(nèi)所描述的過濾器的操作。
即,在用戶單擊“詳細信息顯示”按鈕607時,就顯示與所選擇的過濾器有關(guān)的詳細信息。在這里,詳細信息包括所選擇的過濾器的名稱和版本、它的說明、類名、安裝源的類文件名(文件路徑或URL)、安裝日期和時間等。
在用戶單擊“向上”按鈕608時,所選擇的過濾器在過濾器串內(nèi)的順序在數(shù)據(jù)流處理中向上游方向移一步。
在用戶單擊“向下”按鈕609時,所選擇的過濾器在過濾器串內(nèi)的順序在數(shù)據(jù)流處理中向下游方向移一步。
在用戶單擊“活動/非活動”切換按鈕610時,將所選擇的過濾器的激活狀態(tài)改變?yōu)槲醇せ顮顟B(tài),或?qū)⑺x擇的過濾器的未激活狀態(tài)改變?yōu)榧せ顮顟B(tài)。未激活過濾器對象被刪除。然而,過濾器類在安裝時仍保留,而所保留的過濾器類由過濾器框架219的運行時管理。
此外,在用戶單擊“卸載”按鈕611時,就從圖像處理設(shè)備的解釋器環(huán)境215刪除所選擇的過濾器的類文件。
圖7為示出過濾器處理的主要過程的流程圖。
在這里,應(yīng)注意的是圖7所示的過程實現(xiàn)為具體過濾器類的運行方法。也就是說,過濾器框架219生成有效過濾器類的對象、建立它的輸入流和輸出流,然后分配線程(線程對象)來執(zhí)行這個對象的運行方法。因此,圖7所示的流程作為并行處理在過濾器框架219所管理的各個過濾器對象內(nèi)自主運行。
首先,在步驟S701,執(zhí)行必需的預(yù)處理。在這里,應(yīng)注意的是,預(yù)處理包括對需由過濾器內(nèi)部使用的屬性的初始化、對需在模式匹配中使用的模式描述的預(yù)處理、為了加入能更方便地使用輸入流和輸出流(例如,能預(yù)先查看輸入流,擴展緩沖以有效使用系統(tǒng)資源)而由合格類(java.io.FilterInputStream或java.io.FilterOutputStream的具體類)對流進行的卷繞處理,等等。
在步驟S702,從設(shè)置在輸入屬性內(nèi)的輸入流讀出模式匹配處理所需量的數(shù)據(jù)。
在步驟S703,執(zhí)行模式匹配,以便從輸入數(shù)據(jù)流中發(fā)現(xiàn)出現(xiàn)需由過濾器操作的數(shù)據(jù)模式的出現(xiàn)。在這里,應(yīng)注意的是,過濾器應(yīng)操作的數(shù)據(jù)模式可以是固定數(shù)據(jù)串本身,也可以由諸如正則表示(regular expression)之類的形式語言描述。此外,還應(yīng)注意的是,在數(shù)據(jù)流內(nèi)發(fā)現(xiàn)符合模式描述的數(shù)據(jù)的出現(xiàn)的各種實現(xiàn)都是已知的(特別,有名的有“grep”、“sed”、“AWK”、“Perl”等)。
有效執(zhí)行模式匹配的算法得到充分研究。也就是說,對于固定模式描述來說,已知的一種方法是將模式描述與部分數(shù)據(jù)流的各自散列函數(shù)相互比較,在所比較的散列函數(shù)的散列值相互一致時判定相關(guān)模式完全一致。此外,所知道的還有Knuth-Morris-Pratt方法、Boyer-Moore方法等。此外,對于利用正則表示等的模式描述來說,已知的有有限自動機等以形式語言理論為背景的各種算法。在較為近來的JavaTM平臺中,通常提供了處理正則表示的類庫(Java.util.regex)。例如,在狀態(tài)按照數(shù)據(jù)流的上游的模式改變、對下游的模式的解釋必需按照改變了的狀態(tài)改變時,就需要用正則表示等很難描述的復(fù)雜的模式匹配。在這種情況下,可以將評估該模式的特性本身的算法寫成JavaTM程序。這樣做,即使如何復(fù)雜的模式匹配,也能很好實現(xiàn)。
在步驟S704,判斷在數(shù)據(jù)流內(nèi)是否發(fā)現(xiàn)與模式描述一致的數(shù)據(jù)。在判定在數(shù)據(jù)流內(nèi)發(fā)現(xiàn)有關(guān)數(shù)據(jù)時,流程進至步驟S705。另一方面,在判定在數(shù)據(jù)流內(nèi)沒有發(fā)現(xiàn)有關(guān)數(shù)據(jù)時,流程進至步驟S706。
然后,在步驟S705,對數(shù)據(jù)流內(nèi)與模式描述一致的那部分數(shù)據(jù)串執(zhí)行與有關(guān)過濾器的對象相應(yīng)的操作,替換所獲取的(與模式描述一致的)數(shù)據(jù)。
接著,在步驟S706,將經(jīng)處理的部分數(shù)據(jù)串寫入輸出流。更具體地說,將沒有出現(xiàn)所監(jiān)視的模式的數(shù)據(jù)串或者包括所監(jiān)視的模式并在步驟S705得到處理的數(shù)據(jù)串寫入輸出流。
然后,在步驟S707判斷輸入流是否結(jié)束。在判定輸入流結(jié)束時,處理終止。另一方面,在判定輸入流沒有結(jié)束時,流程返回步驟S702,重復(fù)以上過程。
圖8為說明由本實施例中的兼容過濾器執(zhí)行的處理的示意圖。
在圖8中,標(biāo)號801表示兼容過濾器類對象(兼容過濾器),它讀取輸入流、執(zhí)行解決在數(shù)據(jù)流內(nèi)出現(xiàn)的兼容性問題的處理,再將經(jīng)處理的數(shù)據(jù)流寫入輸出流。在這里,作為兼容性問題,取基于在實現(xiàn)了作為典型的PDL之一的Adobe的Postscript規(guī)范的各供應(yīng)廠商的打印機之間每個供應(yīng)廠商的解釋中的差異的問題,對它的解決方案的例子進行說明。
按照某個供應(yīng)廠商的打印機,在PostScript的“setpagedevice”中,在“/DeferredMediaSelection”為真時,在面板上顯示對自定義打印紙的打印紙請求。另一方面,在“/DeferredMediaSelection”為假時,在指定的紙張大小的±5的范圍內(nèi)搜索定型紙。如果沒有定型紙,則執(zhí)行實現(xiàn),以便遵從PostScript的Policy(策略)。此外,按照另一個供應(yīng)廠商的打印機,在“/DeferredMediaSelection”為真時,用所指定的尺寸本身(沒有范圍)搜索定型紙。如果沒有定型紙,就將紙?zhí)幚頌樽远x紙。另一方面,在“/DeferredMediaSelection”為假時,在指定的紙張大小的±5的范圍內(nèi)搜索定型紙。如果沒有定型紙,則執(zhí)行實現(xiàn),以便遵從PostScript的Policy。
在這里,假設(shè)由又一個供應(yīng)廠商提供的基本系統(tǒng)的基礎(chǔ)設(shè)施環(huán)境是以基于以上解釋中的后者的行為為前提構(gòu)建的。在這種情況下,在前者的打印機內(nèi),對于這個系統(tǒng)的打印請求來說,在與用戶的期望相反的情況下將紙?zhí)幚頌樽远x紙,從而在操作面板上顯示“沒有打印紙”。因此,出現(xiàn)客戶不能打印的缺點。由于這個原因,要求前者打印機的供應(yīng)廠商盡可能迅速和成本盡可能低地為客戶提供解決這種兼容性問題的方法。通過將出現(xiàn)在打印請求數(shù)據(jù)流內(nèi)的參數(shù)“setpagedevice”的“/DeferredMediaSelection”從“真”變換為“假”,至少可以臨時應(yīng)付這種需要。
兼容過濾器801為有助于解決這個問題的過濾器對象。具體地說,兼容過濾器801對從輸入數(shù)據(jù)流中通過“/DeferredMediaSelection”的“true(真)”指定的“setpagedevice”執(zhí)行模式匹配。在獲得匹配(或一致)時,將“/DeferredMediaSelection”的“true”用它的“false(假)”代替后再輸出輸出數(shù)據(jù)流。
標(biāo)號802表示輸入數(shù)據(jù)流即PostScript的打印數(shù)據(jù)的一個例子。在輸入數(shù)據(jù)流802的第二行上,出現(xiàn)與模式一致的部分數(shù)據(jù)。
標(biāo)號803表示輸出數(shù)據(jù)流即經(jīng)過濾器處理的PostScript的打印數(shù)據(jù)的例子。在輸出數(shù)據(jù)流803的第二行的數(shù)據(jù)內(nèi),字符串“true”已經(jīng)用字符串“false”代替。
圖9為說明由本實施例中的校正過濾器執(zhí)行的處理的示意圖。
上述兼容過濾器用模式匹配和替換技術(shù)來解決基于打印機之間的規(guī)范解釋差異的兼容性問題。在這里應(yīng)注意的是,同樣的技術(shù)也能用來緊急消除打印機實現(xiàn)中的麻煩(例如,固件的隱錯)。例如,假設(shè)在某打印機的某個版本被發(fā)布的情況下,有一個如果在LIPS(LBP圖象打印系統(tǒng))語言的“圖像區(qū)域確保指令(VDM)”內(nèi)指定的圖像的寬度不是8的倍數(shù)就會出現(xiàn)描繪不正確的隱錯。在這里,即使只是在特定應(yīng)用的特定使用中的極少情況下輸出這樣的模式的數(shù)據(jù)流,或者即使上述隱錯必需在諸如翻譯器或呈現(xiàn)器之類的LIPS語言處理系統(tǒng)的核心部分根本得到校正,也必須在實際客戶環(huán)境中盡快地處理這樣的麻煩。這樣的問題由校正過濾器解決。
在圖9中,標(biāo)號901表示校正過濾器,它從包括例如由902表示的數(shù)據(jù)的LIPS數(shù)據(jù)流中發(fā)現(xiàn)引起隱錯的模式(即,VDM的圖像寬度為“225”,不是8的倍數(shù)),用達到等效功能而不會引起隱錯的例如由903表示的數(shù)據(jù)來代替數(shù)據(jù)902(即,VDM的圖像寬度用大于“225”的8的倍數(shù)“232”代替)。
如上所述,按照第一實施例,提供了將靜態(tài)地實現(xiàn)為固件的打印請求接收服務(wù)器所接收的數(shù)據(jù)流發(fā)送給在嵌入式JavaTM環(huán)境上實現(xiàn)的能動態(tài)裝入和動態(tài)鏈接的過濾器軟件的接口,從而能清楚地將穩(wěn)態(tài)部分和動態(tài)部分相互分開。因此,就能避免要將整個設(shè)備固件用動態(tài)和冗余的軟件代替的低效率的情況。此外,還能避免打印請求接收服務(wù)器功能在JavaTM環(huán)境側(cè)重新實現(xiàn)從而成為雙重實現(xiàn)的低效率情況。因此,就能實現(xiàn)設(shè)備成本和開發(fā)負擔(dān)都合理的過濾器框架。此外,對于已經(jīng)交付和裝備在客戶環(huán)境內(nèi)的圖像處理設(shè)備來說還能方便地實現(xiàn)動態(tài)添加和過濾器替換,從而能以低的支持成本盡快地為客戶提供解決方案。
此外,按照第一實施例,過濾器在比嵌入式系統(tǒng)的固件開發(fā)環(huán)境更為復(fù)雜的JavaTM環(huán)境上實現(xiàn),從而能方便地實現(xiàn)由在嵌入式系統(tǒng)內(nèi)通常困難的動態(tài)存儲器管理產(chǎn)生效果的高級模式匹配算法。此外,還能容易地采用基于面向?qū)ο蟮姆独脑O(shè)計模式,因為系統(tǒng)設(shè)計成高度模塊化和可重用性高的軟件。因此,能以高的生產(chǎn)率實現(xiàn)過濾器或過濾部分。
此外,在過濾器內(nèi),通過模式匹配在輸入數(shù)據(jù)流內(nèi)發(fā)現(xiàn)對另一個實現(xiàn)引起兼容性問題的PDL數(shù)據(jù),從而替換所發(fā)現(xiàn)的數(shù)據(jù)。因此,能盡可能迅速和以盡可能低的成本解決兼容性問題。特別是,只是通過封閉到打印機側(cè)的措施就能實現(xiàn)這樣的效果,而不會影響客戶環(huán)境上的系統(tǒng)、應(yīng)用和打印機驅(qū)動器。
而且,在沒有配置過濾器時,構(gòu)成為使得打印請求接收模塊所接收的數(shù)據(jù)流直接流至作業(yè)控制模塊。因此,在過濾器是不必要的情況下,能省去與過濾器框架有關(guān)的開銷,從而能保持打印機所固有的數(shù)據(jù)處理性能。
(第二實施例)下面,將對本發(fā)明的第二實施例進行說明。
在這里,應(yīng)注意的是第二實施例的組成基本上與第一實施例的組成相同。因此,在第二實施例的組成中,與第一實施例的組成中相同的那些部分用相應(yīng)的相同標(biāo)號標(biāo)注,不再對這些相同部分進行說明。也就是說,只對第二實施例中與第一實施例不同的部分進行說明。
圖10為說明由第二實施例中的過濾器執(zhí)行的處理的示意圖。
在圖10中,標(biāo)號1001表示優(yōu)化過濾器類對象,它讀取輸入流,發(fā)現(xiàn)在數(shù)據(jù)流內(nèi)出現(xiàn)的冗余描述的PDL數(shù)據(jù),將所發(fā)現(xiàn)的數(shù)據(jù)變換成更為高效的等效功能數(shù)據(jù),再將經(jīng)變換的數(shù)據(jù)寫入輸出流。打印機驅(qū)動器生成的PDL數(shù)據(jù)流按照客戶機打印請求系統(tǒng)和應(yīng)用側(cè)的原因基本上傾向于包括諸如重復(fù)之類的冗余處理模式。優(yōu)化過濾器類對象1001將上述冗余模式識別為一種“傳統(tǒng)表現(xiàn)”,用更為高效的等效表現(xiàn)來代替這個模式。
標(biāo)號1002表示給優(yōu)化過濾器類對象1001的輸入數(shù)據(jù)流的例子。在輸入數(shù)據(jù)流1002中,如方框1003所示,進行了重復(fù)填充(或涂刷)三個正方形以便填充(或涂刷)景觀矩形的描述。
標(biāo)號1004表示從優(yōu)化過濾器類對象1001輸出的輸出數(shù)據(jù)流。優(yōu)化過濾器類對象1001檢測到冗余重復(fù)模式,將檢測到的模式改寫為如方框1005所示的一個等效景觀矩形填充。
如上所述,按照第二實施例,在可靈活地在JavaTM環(huán)境上擴展的過濾器內(nèi),將冗余描述模式識別為一種“傳統(tǒng)表示”,用更為高效的等效表現(xiàn)代替這個模式。因此,能夠改善打印性能,而完全不觸及PDL處理系統(tǒng)的核心。此外,按照第二實施例,優(yōu)化處理在封閉到打印機側(cè)的狀態(tài)下執(zhí)行,因此不必改變或改造客戶環(huán)境上的系統(tǒng)、應(yīng)用和打印機驅(qū)動器。而且,過濾器生產(chǎn)率高,諸如實現(xiàn)之類的過濾器維護方便。因此,能按照客戶使用的類型提供個別地與客戶相應(yīng)的優(yōu)化。
(第三實施例)下面,將對本發(fā)明的第三實施例進行說明。
在這里,應(yīng)注意的是第三實施例的組成基本上與第一實施例的組成相同。因此,在第三實施例的組成中,與第一實施例的組成中相同的那些部分用相應(yīng)的相同標(biāo)號標(biāo)注,不再對這些相同部分進行說明。也就是說,只對第三實施例中與第一實施例不同的部分進行說明。
圖11為說明由第三實施例中的過濾器執(zhí)行的處理的示意圖。
在圖11中,標(biāo)號1101表示功能擴展過濾器類對象,它讀取輸入流,按照所讀取的數(shù)據(jù)執(zhí)行諸如數(shù)據(jù)變換、數(shù)據(jù)加入之類的處理以加入新的功能,然后將經(jīng)處理的數(shù)據(jù)寫入輸出流。在這里,作為功能擴展的一個例子,將說明在客戶的系統(tǒng)包括專用PDL驅(qū)動器而這個PDL驅(qū)動器與新的打印機的諸如雙面打印、各種最后處理之類的新的性能不對應(yīng)的情況下,通過打印機側(cè)的過濾對應(yīng)來激活圖像處理設(shè)備的新的功能,而不改變專用PDL驅(qū)動器。
功能擴展濾波器1101作為它的屬性具有激活上述過濾器在其中工作的打印機的新性能的打印作業(yè)設(shè)置。過濾器對象的屬性值也存儲在圖像處理設(shè)備的非易失性存儲器內(nèi),從而即使在圖像處理設(shè)備的電源斷開后再接通的情況下也能保持對象的狀態(tài)。
在這里,作業(yè)類型屬性具有諸如“打印”、“安全打印”之類的值。也就是說,作業(yè)類型屬性表示打印機內(nèi)所包括的每種作業(yè)的類型。副本數(shù)量屬性表示應(yīng)該產(chǎn)生多少套打印材料副本。頁面布局屬性表示頁面布局指定。也就是說,可以用這個屬性指示將多頁打印到一張紙(副本)上的指定,諸如“1頁/副本”、“2頁/副本”、“4頁/副本”之類。此外,還可以用這個屬性指示將一頁放大后分開打印到多張紙上的指定,諸如“分打(2×2)”、“分打(3×3)”之類。排列次序?qū)傩跃哂兄T如“從左上向右”、“從左上向下”、“從右上向左”、“從右上向下”之類的值。也就是說,排列次序?qū)傩灾甘緦υ陧撁娌季痔幚碇忻棵嫔系呐帕械闹付?。打印方法屬性具有諸如“單面打印”、“雙面打印”、“裝訂打印”之類的值。也就是說,打印方法屬性指示對打印方法的指定。裝訂方位屬性具有諸如“長邊裝訂(左側(cè))”、“長邊裝訂(右側(cè))”、“短邊裝訂(上側(cè))”、“短邊裝訂(下側(cè))”之類的屬性。也就是說,裝訂方位屬性指示在最后處理中將多張紙裝訂在一起的方位。出紙方法屬性具有諸如“無指定”、“分類”、“訂書釘”、“穿孔”之類的值。也就是說,出紙方法屬性指示最后處理方法。給紙屬性具有諸如“自動”、“人工給紙盤”、“紙盒”、“紙匣”、“普通紙”、“厚紙”、“有色紙”、“OHP”之類的值。也就是說,給紙屬性指示對進給要執(zhí)行形成圖像的紙(轉(zhuǎn)印紙)的指定。
標(biāo)號1102表示給功能擴展濾波器1101的輸入數(shù)據(jù)流的例子。更具體地說,輸入數(shù)據(jù)流1102是包括由傳統(tǒng)的應(yīng)用和打印機驅(qū)動器生成的、僅僅基于每頁的圖像形成描述的PDL和文本的打印數(shù)據(jù)流。
標(biāo)號1103表示由功能擴展濾波器1101順序處理并輸出的輸出數(shù)據(jù)流的例子。除了在輸入數(shù)據(jù)內(nèi)存在的單純打印數(shù)據(jù)流之外,在輸出數(shù)據(jù)流1103內(nèi)還插入了充分使用打印機的新功能的各種打印作業(yè)描述。在這里,應(yīng)注意的是,打印作業(yè)描述可以表示嵌套結(jié)構(gòu),從而能為作業(yè)單元、諸如裝訂多個文件的最后處理的處理單元和單個文件單元的各個層次指定諸如功能擴展濾波器1101的屬性之類的各種屬性。
在輸出數(shù)據(jù)流1103內(nèi),第一行示出了指示作業(yè)的開始的數(shù)據(jù),第二行示出了指示作業(yè)單元內(nèi)的設(shè)置的開始的數(shù)據(jù),而第三行示出了在這個位置存在作業(yè)單元內(nèi)的各種設(shè)置數(shù)據(jù)。此外,第四行示出了指示集中多個文件的單元的開始的數(shù)據(jù),第五示出了指示集中多個文件的單元的設(shè)置的開始的數(shù)據(jù),而第六行示出了在這個位置存在集中多個文件的單元的設(shè)置數(shù)據(jù)。此外,第七行示出了指示文件的開始的數(shù)據(jù),第八行示出了文件單元內(nèi)的設(shè)置的開始的數(shù)據(jù),而第九示出了在這個位置存在文件單元內(nèi)的設(shè)置數(shù)據(jù)。此外,第十行示出了指示文件描述數(shù)據(jù)的開始的數(shù)據(jù),第十一行示出了在這個位置存在表示文件本身的文件描述數(shù)據(jù)。在這種情況下,在這個位置存在在輸入數(shù)據(jù)流1102內(nèi)存在的打印數(shù)據(jù)流。此外,第十二行示出了指示文件的結(jié)束的數(shù)據(jù),第十三行示出了指示集中多個文件的單元的結(jié)束的數(shù)據(jù),而第十四行示出了指示作業(yè)的結(jié)束的數(shù)據(jù)。
圖12為示出用來操作功能擴展過濾器1101的用戶界面的例子的示意圖。
用來操作過濾器的用戶界面由標(biāo)準(zhǔn)庫和包含在框架217(圖2)內(nèi)的HTTP服務(wù)實現(xiàn)為Web應(yīng)用(服務(wù)小程序),從客戶機端的Web瀏覽器操作。要提及的是,也能構(gòu)成實現(xiàn)為應(yīng)用小程序服務(wù)的用戶界面,用圖像處理設(shè)備的操作面板18操作。
在圖12中,標(biāo)號1201表示功能擴展濾波器1101的基本操作屏幕。在基本操作屏幕1201上,能確認和改變過濾器對象屬性。
在位置1202處,處理作業(yè)類型屬性。
在位置1203處,處理副本數(shù)量屬性。
在位置1204處,處理頁面布局屬性。
在位置1205處,處理排列次序?qū)傩浴?br>
在位置1206處,處理打印方法屬性。
在位置1207處,處理裝訂方位屬性。
在位置1208處,處理出紙方法屬性。
在位置1209處,處理給紙屬性。
標(biāo)號1210表示幫助按鈕。在幫助按鈕1210按下時,顯示關(guān)于怎樣使用功能擴展濾波器1101、功能的含意、屬性的含意等的說明。
標(biāo)號1211表示標(biāo)準(zhǔn)化按鈕。在標(biāo)準(zhǔn)化按鈕1211按下時,各種屬性分別返回到各自的缺省值。
標(biāo)號1212表示應(yīng)用按鈕。在應(yīng)用按鈕1212按下時,應(yīng)用屬性值改變操作,從而將新的值實際設(shè)置為過濾器對象的屬性。
標(biāo)號1213表示預(yù)覽圖標(biāo),它示出了與若干重要屬性之一的值相應(yīng)的示意圖,以便幫助用戶確認各種屬性。
如上所述,按照第三實施例,在可在JavaTM環(huán)境上靈活擴展的過濾器內(nèi),加入了激活新的功能所必需的數(shù)據(jù)。因此,即使在過濾器與系統(tǒng)組合在一起的情況下,客戶環(huán)境上的與打印機的新功能不對應(yīng)的應(yīng)用和打印機驅(qū)動器也能充分使用該有關(guān)新功能。
此外,JavaTM環(huán)境還準(zhǔn)備了為在其上進行操作的過濾器實現(xiàn)用戶界面的裝置,作為固件內(nèi)另一層的軟件平臺。因此,可以在過濾器上提供設(shè)置附加功能的用戶界面。
而且,過濾器生產(chǎn)率高,諸如過濾器安裝之類的維護方便。因此,能按照客戶使用的類型提供與顧客單個對應(yīng)的功能擴展。
(其它實施例)要提及的是,能構(gòu)成這樣的功能擴展濾波器,它在發(fā)現(xiàn)在打印目標(biāo)字符數(shù)據(jù)串內(nèi)出現(xiàn)某一字符串模式而所發(fā)現(xiàn)的模式與特定的字符串模式一致的情況下,生成與該字符串相應(yīng)的控制數(shù)據(jù)而不是包括在打印數(shù)據(jù)流內(nèi)的控制數(shù)據(jù),并替換或插入所生成的控制數(shù)據(jù)。在這種情況下,例如,假設(shè)客戶或用戶在例如文字處理器等的普通應(yīng)用中輸入僅作為文本的特定字符串,通過普通打印機驅(qū)動器打印所輸入的字符串。僅僅用這樣一個操作,就能在打印機側(cè)的過濾器內(nèi)將特定字符串變換成描繪與該特定字符串相應(yīng)的圖像(例如,徽標(biāo)、標(biāo)志、水印等)的諸如向量描繪指令之類的指令串。
此外,在上述實施例中,JavaTM虛擬機和環(huán)境用作固件內(nèi)的解釋器環(huán)境215。然而,本發(fā)明并不局限于此。也就是說,即使在諸如另一種腳本語言之類的解釋器環(huán)境被嵌入固件的情況下,也能獲得諸如動態(tài)過濾器加入、固件部分分離之類的同樣效果。而且,解釋器不需要總是一個接一個地解釋和執(zhí)行由解釋器的指令集組成的指令串。也就是說,在執(zhí)行時,解釋器可以集中地將部分或所有的指令串變換成本機指令(即,硬件CPU的指令集)的指令串,集中地執(zhí)行所變換的指令串。
此外,由于有許多諸如面向?qū)ο笾惖哪塬@得高效率開發(fā)的其他解釋器環(huán)境,因此也能使用這些解釋器環(huán)境來獲得諸如過濾器生產(chǎn)率之類的同樣效果。特別是,對于基于模式匹配處理的數(shù)據(jù)流來說,諸如“sed”、“AWK”、“Perl”之類的選項也是適當(dāng)?shù)摹?br>
這里,即使在將存儲實現(xiàn)以上實施例的功能的軟件的程序代碼的存儲介質(zhì)提供給系統(tǒng)或設(shè)備,從而由系統(tǒng)或設(shè)備內(nèi)的計算機(或CPU或MPU)讀出和執(zhí)行存儲在存儲介質(zhì)內(nèi)的程序代碼的情況下,本發(fā)明的目的也能達到。
在這種情況下,從存儲介質(zhì)讀出的程序代碼本身實現(xiàn)本發(fā)明實施例的新穎功能,從而存儲該程序代碼的存儲介質(zhì)和程序構(gòu)成了本發(fā)明。
作為提供程序代碼的存儲介質(zhì),例如可以使用軟盤、硬盤、光盤、磁光盤、CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW、磁帶、非易失性存儲卡、ROM等。
此外,本發(fā)明不僅包括上述實施例的功能通過執(zhí)行由計算機讀出的程序代碼來實現(xiàn)的情況,而且包括在計算機上運行的OS(操作系統(tǒng))等根據(jù)程序代碼的指示執(zhí)行部分或所有的實際處理從而通過這些處理來實現(xiàn)上述實施例的功能的情況。
此外,本發(fā)明還包括在將從存儲介質(zhì)讀出的程序代碼寫入插在計算機內(nèi)的功能擴展卡或連接到計算機上的功能擴展單元內(nèi)的存儲器后、配置在功能擴展卡或功能擴展單元內(nèi)的CPU等根據(jù)程序代碼的指示執(zhí)行部分或所有的實際處理從而通過這些處理來實現(xiàn)上述實施例的功能的情況。
因此,本發(fā)明的保護范圍僅由以下權(quán)利要求確定,而不受說明書的文本的限制,在與權(quán)利要求的范圍等同的范圍內(nèi)所做出的修改均落入本發(fā)明的精神實質(zhì)和保護范圍內(nèi)。
本申請要求2004年3月26日遞交的日本專利申請No.2004-093215的優(yōu)先權(quán),該申請在這里以參考的方式被包含。
權(quán)利要求
1.一種圖像處理設(shè)備,所述圖像處理設(shè)備包括打印數(shù)據(jù)流接收單元,適于從外部接收打印數(shù)據(jù)流;打印作業(yè)控制器,適于控制解釋打印數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè);過濾器單元,適于執(zhí)行對打印數(shù)據(jù)流的數(shù)據(jù)處理,從而生成經(jīng)處理的打印數(shù)據(jù)流;第一接口,適于將所述打印數(shù)據(jù)流接收單元所接收的打印數(shù)據(jù)流發(fā)送給所述過濾器單元;以及第二接口,適于將所述過濾器單元生成的經(jīng)處理的打印數(shù)據(jù)流發(fā)送給所述打印作業(yè)控制器。
2.根據(jù)權(quán)利要求1所述的圖像處理設(shè)備,其中所述圖像處理設(shè)備具有作為根據(jù)將由處理器處理的本機指令構(gòu)成的固件的本機環(huán)境,所述本機環(huán)境包括動態(tài)裝入、鏈接和執(zhí)行根據(jù)與所述本機指令相獨立地定義的指令集構(gòu)成的程序的解釋器環(huán)境,以及所述打印數(shù)據(jù)流接收單元配置在所述本機環(huán)境上,并且所述過濾器單元配置在所述解釋器環(huán)境上。
3.根據(jù)權(quán)利要求1所述的圖像處理設(shè)備,所述圖像處理設(shè)備還包括第三接口單元,所述第三接口單元適于將所述打印數(shù)據(jù)流接收單元所接收的打印數(shù)據(jù)流發(fā)送給所述作業(yè)控制器。
4.根據(jù)權(quán)利要求1所述的圖像處理設(shè)備,其中所述過濾器單元進一步包括模式匹配單元,適于檢測打印數(shù)據(jù)流中與預(yù)定數(shù)據(jù)模式一致的部分,以及替換單元,適于生成與所述模式匹配單元檢測到的、打印數(shù)據(jù)流中的所述一致部分相應(yīng)的預(yù)定部分數(shù)據(jù)流,用所生成的預(yù)定部分數(shù)據(jù)流代替所述一致部分。
5.根據(jù)權(quán)利要求2所述的圖像處理設(shè)備,所述圖像處理設(shè)備還包括用戶界面構(gòu)成單元,適于在所述解釋器環(huán)境內(nèi)構(gòu)成用戶用以操作在所述解釋器環(huán)境上操作的程序的用戶界面,其中用于在所述過濾器單元內(nèi)對打印數(shù)據(jù)流進行數(shù)據(jù)處理的處理參數(shù)由用戶利用所述用戶界面構(gòu)成單元所構(gòu)成的用戶界面進行操作。
6.根據(jù)權(quán)利要求2所述的圖像處理設(shè)備,所述圖像處理設(shè)備還包括線程單元,所述線程單元適于在所述解釋器環(huán)境內(nèi)并行執(zhí)行在所述解釋器環(huán)境上操作的程序的指令的讀取和解釋,其中所述過濾器單元在所述線程單元的獨立執(zhí)行上下文下自主地執(zhí)行對打印數(shù)據(jù)流的數(shù)據(jù)處理。
7.根據(jù)權(quán)利要求2所述的圖像處理設(shè)備,其中所述解釋器環(huán)境基于JavaTM平臺。
8.一種圖像處理設(shè)備,所述圖像處理設(shè)備包括打印數(shù)據(jù)流接收單元,適于從外部接收打印數(shù)據(jù)流;打印作業(yè)控制器,適于控制解釋打印數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè);過濾器單元,適于執(zhí)行對打印數(shù)據(jù)流的數(shù)據(jù)處理,從而生成經(jīng)處理的打印數(shù)據(jù)流;以及過濾器管理單元,適于管理多個過濾器單元,控制成能將過濾器單元配置在打印數(shù)據(jù)流的數(shù)據(jù)通路內(nèi),以及使所配置的過濾器單元順序處理打印數(shù)據(jù)流。
9.根據(jù)權(quán)利要求8所述的圖像處理設(shè)備,所述圖像處理設(shè)備還包括過濾器配置操作接受單元,所述過濾器配置操作接受單元適于接受用于從所述過濾器管理單元所管理的多個過濾器單元中有選擇地將所希望的過濾器單元配置在打印數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)的用戶操作。
10.根據(jù)權(quán)利要求8所述的圖像處理設(shè)備,所述圖像處理設(shè)備還包括第一接口單元,適于將所述打印數(shù)據(jù)流接收單元所接收的打印數(shù)據(jù)流發(fā)送給所述過濾器單元;第二接口單元,適于將所述過濾器單元所生成的經(jīng)處理的打印數(shù)據(jù)流發(fā)送給所述打印作業(yè)控制器;以及第三接口單元,適于在所述過濾器管理單元不將任何過濾器單元配置在打印數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)的情況下,直接將所述打印數(shù)據(jù)流接收單元所接收的打印數(shù)據(jù)流發(fā)送給所述打印作業(yè)控制器。
11.根據(jù)權(quán)利要求8所述的圖像處理設(shè)備,所述圖像處理設(shè)備還包括過濾器引入單元,所述過濾器引入單元適于將過濾器單元從外部引入所述圖像處理設(shè)備,以便將所引入的過濾器單元置于所述過濾器管理單元的管理之下。
12.一種用于圖像處理設(shè)備的控制方法,所述圖像處理設(shè)備包括適于從外部接收打印數(shù)據(jù)流的打印數(shù)據(jù)流接收單元、適于控制解釋打印數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè)的打印作業(yè)控制器和適于執(zhí)行對打印數(shù)據(jù)流的數(shù)據(jù)處理從而生成經(jīng)處理的打印數(shù)據(jù)流的過濾器單元,所述方法包括將打印數(shù)據(jù)流接收單元所接收的打印數(shù)據(jù)流發(fā)送給過濾器單元的第一接口步驟;以及將過濾器單元所生成的經(jīng)處理的打印數(shù)據(jù)流發(fā)送給打印作業(yè)控制器的第二接口步驟。
13.根據(jù)權(quán)利要求12所述的控制方法,還包括將打印數(shù)據(jù)流接收單元所接收的打印數(shù)據(jù)流發(fā)送給作業(yè)控制器的第三接口步驟。
14.一種用于圖像處理設(shè)備的控制方法,所述控制方法包括從外部接收打印數(shù)據(jù)流的打印數(shù)據(jù)流接收步驟;控制解釋打印數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè)的打印作業(yè)控制步驟;執(zhí)行對打印數(shù)據(jù)流的數(shù)據(jù)處理從而生成經(jīng)處理的打印數(shù)據(jù)流的過濾步驟;以及管理多個過濾器單元、控制成能將過濾器單元配置在打印數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)和使所配置的過濾器單元順序處理打印數(shù)據(jù)流的過濾器管理步驟。
15.根據(jù)權(quán)利要求14所述的控制方法,所述控制方法還包括接受從用于在所述過濾器管理步驟所管理的多個過濾器單元中有選擇地將所希望的過濾器單元配置在打印數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)的用戶操作的過濾器配置操作接受步驟。
16.根據(jù)權(quán)利要求14所述的控制方法,所述控制方法還包括將打印數(shù)據(jù)流接收單元所接收的打印數(shù)據(jù)流發(fā)送給過濾器單元的第一接口步驟;將過濾器單元所生成的經(jīng)處理的打印數(shù)據(jù)流發(fā)送給打印作業(yè)控制器的第二接口步驟;以及在所述過濾器管理步驟適于不將任何過濾器單元配置在打印數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)的情況下直接將打印數(shù)據(jù)流接收單元所接收的打印數(shù)據(jù)流發(fā)送給打印作業(yè)控制器的第三接口步驟。
17.一種使計算機執(zhí)行應(yīng)用于圖像處理設(shè)備的控制方法的計算機程序,所述圖像處理設(shè)備包括適于從外部接收打印數(shù)據(jù)流的打印數(shù)據(jù)流接收單元、適于控制解釋打印數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè)的打印作業(yè)控制器和適于執(zhí)行對打印數(shù)據(jù)流的數(shù)據(jù)處理從而生成經(jīng)處理的打印數(shù)據(jù)流的過濾器單元,所述程序包括將打印數(shù)據(jù)流接收單元所接收的打印數(shù)據(jù)流發(fā)送給過濾器單元的第一接口步驟;以及將過濾器單元所生成的經(jīng)處理的打印數(shù)據(jù)流發(fā)送給打印作業(yè)控制器的第二接口步驟。
18.一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲使計算機執(zhí)行應(yīng)用于包括以下部分的圖像處理設(shè)備的控制方法適于從外部接收打印數(shù)據(jù)流的打印數(shù)據(jù)流接收單元、適于控制解釋打印數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè)的打印作業(yè)控制器和適于執(zhí)行對打印數(shù)據(jù)流的數(shù)據(jù)處理從而生成經(jīng)處理的打印數(shù)據(jù)流的過濾器單元,其中所述計算機程序包括將打印數(shù)據(jù)流接收單元所接收的打印數(shù)據(jù)流發(fā)送給過濾器單元的第一接口步驟;以及將過濾器單元所生成的經(jīng)處理的打印數(shù)據(jù)流發(fā)送給打印作業(yè)控制器的第二接口步驟。
19.一種使計算機執(zhí)行應(yīng)用于圖像處理設(shè)備的控制方法的計算機程序,所述程序包括從外部接收打印數(shù)據(jù)流的打印數(shù)據(jù)流接收步驟;控制解釋打印數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè)的打印作業(yè)控制步驟;執(zhí)行對打印數(shù)據(jù)流的數(shù)據(jù)處理從而生成經(jīng)處理的打印數(shù)據(jù)流的過濾步驟;以及管理多個過濾器單元、控制成能將過濾器單元配置在打印數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)和使所配置的過濾器單元順序處理打印數(shù)據(jù)流的過濾器管理步驟。
20.一種存儲使計算機執(zhí)行應(yīng)用于圖像處理設(shè)備的控制方法的計算機程序的計算機可讀存儲介質(zhì),所述程序包括從外部接收打印數(shù)據(jù)流的打印數(shù)據(jù)流接收步驟;控制解釋打印數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè)的打印作業(yè)控制步驟;執(zhí)行對打印數(shù)據(jù)流的數(shù)據(jù)處理從而生成經(jīng)處理的打印數(shù)據(jù)流的過濾步驟;以及管理多個過濾器單元、控制成能將過濾器單元配置在打印數(shù)據(jù)流的數(shù)據(jù)通路內(nèi)和使所配置的過濾器單元順序處理打印數(shù)據(jù)流的過濾器管理步驟。
全文摘要
本發(fā)明所公開的圖像處理設(shè)備包括從外部接收打印請求數(shù)據(jù)流的打印請求數(shù)據(jù)流接收單元、控制解釋打印請求數(shù)據(jù)流和執(zhí)行圖像形成的打印作業(yè)的打印作業(yè)控制器和執(zhí)行對打印請求數(shù)據(jù)流的數(shù)據(jù)處理從而生成經(jīng)處理的打印請求數(shù)據(jù)流的過濾器。這種圖像處理設(shè)備將打印請求數(shù)據(jù)流接收單元所接收的打印請求數(shù)據(jù)流通過第一接口發(fā)送給過濾器,而將過濾器所生成的經(jīng)處理的打印請求數(shù)據(jù)流通過第二接口發(fā)送給打印作業(yè)控制器。
文檔編號G06F9/54GK1934531SQ200580009609
公開日2007年3月21日 申請日期2005年3月24日 優(yōu)先權(quán)日2004年3月26日
發(fā)明者山本雅仁 申請人:佳能株式會社