專利名稱:向打印機(jī)傳輸文檔和資源的系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于打印設(shè)備和諸如個(gè)別用戶的個(gè)人計(jì)算機(jī)或共享打印機(jī)服務(wù)器等客戶機(jī)之間的交互的打印機(jī)協(xié)議。
背景技術(shù):
每當(dāng)計(jì)算機(jī)向設(shè)備(如打印機(jī))發(fā)送文檔用于繪制時(shí),如果該設(shè)備沒有將整個(gè)文檔儲(chǔ)存在存儲(chǔ)器中的資源,則必須使用某些機(jī)制來使設(shè)備能夠僅使用對(duì)其可用的有限資源再現(xiàn)整個(gè)文檔。在本文檔中,術(shù)語“打印客戶機(jī)”用于指個(gè)人計(jì)算機(jī)和共享打印機(jī)服務(wù)器。
對(duì)于基于光柵的文檔格式,這通常通過以帶(band)或塊(tile)向設(shè)備發(fā)送文檔來完成。一旦一個(gè)帶被處理,則將下一個(gè)帶發(fā)送到打印機(jī)。
對(duì)于基于矢量的文檔,用有限資源打印的問題更復(fù)雜。如果文檔按照諸如直線、曲線和字形等繪元來描述,則該文檔被認(rèn)為是基于矢量的。直線的特征為繪制的起始和終止端點(diǎn)、直線的寬度以及可能繪制的顏色。曲線添加了曲率半徑的復(fù)雜度。字形是符號(hào)或字符的片斷。在羅馬字母表中,在字母及其字形之間幾乎有一對(duì)一的對(duì)應(yīng)性。在阿拉伯和東亞書面語言中,字母通常由兩個(gè)或多個(gè)字形組成。在典型的矢量語言中通常有更多的繪元,如梯度、字母混合、多邊形等等?;谑噶康奈臋n通常嵌入諸如字體或圖片等資源,并且繪元可用于指這些附加資源。情況通常是整個(gè)文檔或包含在文檔內(nèi)的整個(gè)資源或組件都不能由繪制設(shè)備或機(jī)制保存在存儲(chǔ)器中。這一情況意味著設(shè)備必須零碎地繪制文檔甚至是圖元。
現(xiàn)有技術(shù)是以這樣一種方式來格式化文檔,即以確保頁面的文檔資源在需要時(shí)可用的方式將它們下載到打印機(jī)。在這一解決方案中,打印客戶機(jī)在控制之下。在PDL(頁面文檔語言)中需要精細(xì)的機(jī)制來管理文檔資源的生命周期和可用性。
為使這一機(jī)制健壯,實(shí)現(xiàn)以下三種策略之一1)打印客戶機(jī)將頁面的文檔資源嵌入到每一頁面中并將其發(fā)送到打印機(jī)。這能起作用,但是如果在許多頁面上出現(xiàn)資源(諸如對(duì)許多頁面公用的水印或字體字形),則從帶寬觀點(diǎn)來看它是低效的。如果單個(gè)頁面的資源要求超出了設(shè)備的能力,則該頁面不能被打印。
2)打印客戶機(jī)需要從PDL生成器(打印客戶機(jī)驅(qū)動(dòng)程序的繪制部分)到打印機(jī)的雙向通信信道。以便2a)監(jiān)視所消耗的打印機(jī)資源的量,并在PDL流負(fù)責(zé)這一行動(dòng)的情況下在PDL流中采取行動(dòng)來釋放某些資源。
2b)查詢先前向下發(fā)送的文檔資源是否仍然可用,并且僅當(dāng)它不可用時(shí)再次發(fā)送它。
3)缺少來自PDL生成器的雙向通信信道,則生成器可試圖估算它消耗的打印機(jī)資源的量,并基于這一估算實(shí)現(xiàn)(上述)選項(xiàng)2a。當(dāng)然,這并非100%可靠的,因?yàn)轵?qū)動(dòng)程序從不確保打印機(jī)如何實(shí)現(xiàn)PDL。
第三個(gè)選項(xiàng)(諸如WindowsXP等Windows操作系統(tǒng)當(dāng)前實(shí)現(xiàn)的選項(xiàng))的一個(gè)優(yōu)點(diǎn)是打印客戶機(jī)和打印機(jī)之間的通信只需是單向的。
使用第三種策略,當(dāng)應(yīng)用程序希望開始使用打印機(jī)時(shí),應(yīng)用程序首先獲取到打印機(jī)設(shè)備上下文的句柄,它使打印機(jī)設(shè)備驅(qū)動(dòng)程序庫模塊(具有.DLL擴(kuò)展名的文件和其它數(shù)據(jù)文件)被加載到存儲(chǔ)器中并初始化其自身。打印機(jī)驅(qū)動(dòng)程序由操作系統(tǒng)圖形來協(xié)助以繪制到PDL。所得的對(duì)打印機(jī)資源的需求甚至對(duì)于單個(gè)頁面就可以很高。為解決這一問題,一種現(xiàn)有技術(shù)方法是細(xì)分字體并可能減小圖像的大小。尤其第三種策略給予打印機(jī)大量它所不能處理的數(shù)據(jù)(導(dǎo)致出錯(cuò)消息和打印的中止)的可能性由客戶機(jī)和打印機(jī)之間的簡單的、本質(zhì)上單向的通信來彌補(bǔ),這是當(dāng)將數(shù)據(jù)從并行打印機(jī)端口或打印機(jī)所連接的現(xiàn)有網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的優(yōu)點(diǎn)。
發(fā)明概述一種示例性系統(tǒng)控制設(shè)備上文本、圖像等的繪制。建立一通信信道,以至少提供客戶機(jī)和設(shè)備之間的半雙工或更好的雙向通信路徑。在一個(gè)典型的應(yīng)用中,設(shè)備是用于在紙張上印記文本圖像等的打印機(jī)??蛻魴C(jī)可以是被配置為客戶機(jī)的計(jì)算機(jī),即在網(wǎng)絡(luò)上運(yùn)行客戶機(jī)軟件的節(jié)點(diǎn),或者可選地為通過多個(gè)可能的通信協(xié)議之一進(jìn)行通信的單個(gè)計(jì)算機(jī)。打印設(shè)備包括用于基于由打印客戶機(jī)通過雙向通信路徑發(fā)送到打印設(shè)備的數(shù)據(jù)來儲(chǔ)存打印數(shù)據(jù)并繪制圖像的打印資源。
客戶機(jī)通過發(fā)送對(duì)涉及打印作業(yè)的打印服務(wù)的初始請(qǐng)求,啟動(dòng)打印設(shè)備的繪制。依照一個(gè)實(shí)施例,這一初始請(qǐng)求指示打印作業(yè)中的數(shù)據(jù)量以及該數(shù)據(jù)的特征。這一初始請(qǐng)求由打印設(shè)備確認(rèn)并請(qǐng)求初始數(shù)量的數(shù)據(jù)。打印客戶機(jī)通過發(fā)送初始數(shù)量的數(shù)據(jù)并等待對(duì)更多數(shù)據(jù)的額外請(qǐng)求,或在打印作業(yè)的所有打印數(shù)據(jù)都響應(yīng)于初始請(qǐng)求而發(fā)送的情況下等待該打印作業(yè)的打印已完成的指示,來作出響應(yīng)。
依照一個(gè)替換實(shí)施例,作業(yè)的啟動(dòng)者不知道要在作業(yè)初始化時(shí)發(fā)送的數(shù)據(jù)量。盡管如此,打印機(jī)需要能夠以“流”模式操作,其中,啟動(dòng)者通知打印機(jī)保持所請(qǐng)求的數(shù)據(jù),直到?jīng)]有剩下任何數(shù)據(jù)要打印。這一前提類似于上述實(shí)施例,但是差別在于打印機(jī)保持在頁面級(jí)作出對(duì)數(shù)據(jù)的請(qǐng)求,直到?jīng)]有剩下任何數(shù)據(jù)要發(fā)送,并且客戶機(jī)用沒有更多數(shù)據(jù)(NAK)消息來響應(yīng)。
本發(fā)明的這些和其它目的、優(yōu)點(diǎn)和特征結(jié)合附圖來描述。
附圖的簡要描述
圖1是示例性計(jì)算機(jī)系統(tǒng)的示意描述;圖2是通過通信路徑通信的打印機(jī)和打印客戶機(jī)的示意圖;圖3是在打印打印作業(yè)期間打印機(jī)和打印客戶機(jī)之間的通信序列的示意描述;圖4A和4B描述了具有用于打印打印作業(yè)的不同資源的打印機(jī);以及圖5是儲(chǔ)存在打印客戶機(jī)上的打印作業(yè)的示意描述。
用于實(shí)施本發(fā)明的示例性模式轉(zhuǎn)向附圖,其中描述了本發(fā)明的示例性實(shí)施例。由本發(fā)明解決的任務(wù)是將用于繪制的文檔傳輸?shù)街T如打印機(jī)等設(shè)備的過程。圖2描述了一種典型的打印情形。打印客戶機(jī)102通過通信路徑106與打印機(jī)104通信。計(jì)算機(jī)和打印機(jī)之間的通信會(huì)話在可支持查詢/響應(yīng)類型通信的任一通信信道上實(shí)現(xiàn)。示例是TCP、USB、1394、藍(lán)牙、HTTP、SSL??墒褂萌我话腚p工或更好的信道。HTTP尤其適合用作本發(fā)明的這一示例性實(shí)施例的載波。示例性打印客戶機(jī)102的另外的細(xì)節(jié)參考圖1來描述。
打印任務(wù)通過希望打印文檔的設(shè)備(很可能是打印客戶機(jī)或PC 102,此后稱為客戶機(jī))和打印機(jī)之間的來回通信來實(shí)現(xiàn)。打印客戶機(jī)向打印機(jī)104發(fā)送初始請(qǐng)求110。在一個(gè)示例性實(shí)施例中,初始請(qǐng)求包含a)打印作業(yè)的唯一標(biāo)識(shí)符;b)文檔類型;以及c)可檢索文檔資源的地址(很可能是客戶機(jī)的地址)。注意,盡管這可以是計(jì)算機(jī)的地址,然而地址也可能是通過與打印機(jī)104通信的單獨(dú)通信信道可用的另一計(jì)算機(jī)或資源的地址。
初始請(qǐng)求110也包括應(yīng)用于文檔的打印機(jī)設(shè)置,如要打印的頁面范圍、副本數(shù)等等。諸如總大小等關(guān)于文檔的元數(shù)據(jù)也被發(fā)送到打印機(jī)。最后,初始請(qǐng)求包括超時(shí)打印機(jī)心跳(heartbeat)。心跳讓客戶機(jī)知道打印機(jī)具有排隊(duì)的作業(yè)或?qū)嶋H上正在打印作業(yè)。打印機(jī)周期性地(由超時(shí)指定)向客戶機(jī)發(fā)送消息,通知客戶機(jī)打印作業(yè)請(qǐng)求仍在兌現(xiàn)中。這給予客戶機(jī)知道作業(yè)由于諸如打印機(jī)斷電等某些無法預(yù)料的原因而是否被作廢的能力。
打印機(jī)104用響應(yīng)112回復(fù)來自客戶機(jī)的請(qǐng)求,該響應(yīng)指示文檔打印請(qǐng)求是否可被接受。如果打印作業(yè)被接受,則響應(yīng)112也包括打印機(jī)104上打印作業(yè)的唯一標(biāo)識(shí)符。如果打印作業(yè)被接受,則客戶機(jī)假定打印機(jī)在將來會(huì)兌現(xiàn)該請(qǐng)求。打印機(jī)可能將若干作業(yè)排隊(duì)??蛻魴C(jī)102可使用這一標(biāo)識(shí)符稍后通過管理協(xié)議來操縱打印機(jī)上的文檔。打印機(jī)104可耦合至網(wǎng)絡(luò),并可從其它資源接收對(duì)打印多個(gè)打印作業(yè)的請(qǐng)求,并且因此,每一作業(yè)由打印機(jī)分配一唯一作業(yè)標(biāo)識(shí)符,并且打印機(jī)進(jìn)而知道由客戶機(jī)分配給該作業(yè)的唯一打印作業(yè)指示符。
考慮圖4A和4B中描述的兩個(gè)打印機(jī)130、132的資源。每一打印機(jī)包括打印頭134、135,用于基于由其各自的打印機(jī)發(fā)送到打印頭的數(shù)據(jù)繪制圖像。代表性的打印頭可包括激光或噴墨打印頭。兩個(gè)打印機(jī)130、132也包括存儲(chǔ)器區(qū)域136、138,用于格式化打印作業(yè)的文檔頁面。在兩個(gè)打印機(jī)中,該存儲(chǔ)器136、138近似為相同的大小,并且對(duì)于典型的打印機(jī)可包括若干兆字節(jié)的RAM。
打印機(jī)130具有附加的打印機(jī)資源140,它包括附加的高速存儲(chǔ)器、硬盤驅(qū)動(dòng)器和可能的專用圖形處理器。打印機(jī)130也包括計(jì)算硬件144,用于操縱從客戶機(jī)接收的數(shù)據(jù)并格式化該數(shù)據(jù)以傳輸?shù)酱鎯?chǔ)器136。打印機(jī)132具有更有限的資源150,可能包括少量的附加存儲(chǔ)器。第二打印機(jī)132中的計(jì)算硬件154也從客戶機(jī)接收數(shù)據(jù),并以在存儲(chǔ)器138中存儲(chǔ)的格式組織該數(shù)據(jù)。
打印機(jī)130在它具有更多資源的意義上比打印機(jī)132更強(qiáng)大。它具有完整地儲(chǔ)存例如用于來自多個(gè)來源的多個(gè)打印作業(yè)的全部資源的容量。打印機(jī)132更有限。它具有用于占據(jù)一頁以上文檔的任何打印作業(yè)的僅一部分的資源。對(duì)于某些光柵打印機(jī),打印機(jī)可能沒有足夠的資源來儲(chǔ)存甚至一頁內(nèi)容。這類打印機(jī)在它們打印每一頁時(shí)被強(qiáng)制到內(nèi)容的帶/塊頁。
一旦打印機(jī)準(zhǔn)備好繪制文檔,它發(fā)送對(duì)由客戶機(jī)指定的地址處的處的文檔數(shù)據(jù)的請(qǐng)求114。在圖3描述的數(shù)據(jù)互換中,客戶機(jī)和找到數(shù)據(jù)的地址是相同的。請(qǐng)求114基于從客戶機(jī)發(fā)送的信息標(biāo)識(shí)文檔。依照該示例性系統(tǒng)的一個(gè)實(shí)施例,數(shù)據(jù)請(qǐng)求114是3元組(x,y,z),其中,x標(biāo)識(shí)了文檔中要檢索的資源,y是到資源數(shù)據(jù)的偏移,而z是從y開始要檢索的數(shù)據(jù)量。其它格式的請(qǐng)求也是可能的,而不會(huì)脫離本發(fā)明的范圍。作為一個(gè)示例,字形范圍可由打印機(jī)請(qǐng)求。由于兩個(gè)打印機(jī)130、132之間的能力差異,這一請(qǐng)求對(duì)于不同的打印機(jī)將是完全不同的。打印機(jī)可通過URI(統(tǒng)一資源指示符)來引用打印所需的資源。打印機(jī)的計(jì)算硬件可用包含在請(qǐng)求中的范圍和屬性信息(長度、數(shù)據(jù)格式、壓縮級(jí)別、圖像分辨率等)來請(qǐng)求資源,從客戶機(jī)返回的數(shù)據(jù)應(yīng)當(dāng)符合這些信息。
文檔資源的描述x與文檔格式相聯(lián)系。打印機(jī)知道該格式,因?yàn)樵诔跏颊?qǐng)求110中向它通知了該格式。打印機(jī)必須理解文檔格式。例如,當(dāng)打印作業(yè)開始時(shí),打印機(jī)將要求打印偏移0處的第一頁的頁面描述,并指定要檢索的數(shù)據(jù)的某一方便的大小。稍后,它可要求文檔中的其它資源。
圖5示出了由多個(gè)文檔構(gòu)成的打印作業(yè)160,其每一個(gè)可包括多個(gè)頁面。文檔的一個(gè)示例是依照XML標(biāo)記語言格式化的文檔。每一文檔頁面可包括嵌入的ascii文本以及文本字體、字符間距等細(xì)節(jié)。此外,頁面可包括對(duì)由文檔中的XML標(biāo)簽定義的位置處的圖像(jpeg、bmp等)的引用,這些圖像不是文檔的一部分,但是在客戶機(jī)上儲(chǔ)存在資源162的目錄或文件夾中。文檔文件也可能存在于客戶機(jī)或數(shù)據(jù)源上,并且ascii和其它資源可能儲(chǔ)存在不同數(shù)據(jù)流中的單個(gè)文檔文件中。
對(duì)該請(qǐng)求的客戶機(jī)響應(yīng)116包括由打印機(jī)104請(qǐng)求的數(shù)據(jù)。如果完成作業(yè)所需的剩余數(shù)據(jù)少于自然請(qǐng)求的量,則返回少于所請(qǐng)求的數(shù)據(jù)。在某些情況下,打印機(jī)在啟動(dòng)請(qǐng)求110時(shí)不知道作業(yè)大小。因此,對(duì)于打印機(jī)和客戶機(jī)能夠?qū)崿F(xiàn)流模式有需求,其中,打印機(jī)在頁面級(jí)要求更多的數(shù)據(jù),直到?jīng)]有額外的數(shù)據(jù)要發(fā)送。這一需求的一個(gè)示例是對(duì)具有上萬條目的薪水作業(yè)的批運(yùn)行。在啟動(dòng)作業(yè)時(shí),客戶機(jī)不知道打印作業(yè)的數(shù)據(jù)的全長。在這一替換實(shí)施例中,客戶機(jī)需要發(fā)送初始請(qǐng)求110而不對(duì)作業(yè)指明指定大小的能力。
在接收之后,打印機(jī)處理該數(shù)據(jù),并基于數(shù)據(jù)包含什么向客戶機(jī)104發(fā)出對(duì)額外數(shù)據(jù)的進(jìn)一步或額外請(qǐng)求118。如果頁面包含圖片或可能包含字體,則打印機(jī)可再次請(qǐng)求字體或圖片。如果由于打印機(jī)處缺乏資源,這一數(shù)據(jù)先前用于格式化頁面,但由于對(duì)格式化其它頁面的需求(可能由于來自其它來源的其它打印作業(yè)的需求)而被丟棄,則會(huì)發(fā)生這一情況。
一般而言,打印機(jī)和客戶機(jī)將數(shù)據(jù)組織成頁面。當(dāng)具有有限資源的打印機(jī)132打印頁面時(shí),它發(fā)出對(duì)檢索下一頁的數(shù)據(jù)的請(qǐng)求。即使該請(qǐng)求也可被復(fù)雜化,因?yàn)樵谥T如打印機(jī)132等具有有限資源的打印機(jī)中,請(qǐng)求可以例如交織文本和圖像數(shù)據(jù),并每次將一帶的數(shù)據(jù)加載到專用的頁面存儲(chǔ)器138中。打印機(jī)對(duì)數(shù)據(jù)的請(qǐng)求以及從客戶機(jī)到打印機(jī)的用數(shù)據(jù)的響應(yīng)被重復(fù),直到所請(qǐng)求的整個(gè)作業(yè)被打印。如果不被其它作業(yè)超負(fù)載,則打印機(jī)130可以在其對(duì)數(shù)據(jù)的請(qǐng)求114中僅要求作業(yè)160的所有資源。由于打印機(jī)130具有用于儲(chǔ)存數(shù)據(jù)的大資源,字體甚至圖像的細(xì)節(jié)可以已經(jīng)儲(chǔ)存在打印機(jī)130的資源區(qū)140中。
依照一種操作模式,在初始請(qǐng)求110中向打印機(jī)發(fā)送文檔大小,因此它能夠判定(基于文檔大小和頁面范圍)它是否具有足夠的資源來簡化圖3所示的來回對(duì)話。打印機(jī)可在一個(gè)請(qǐng)求114中要求所有的資源。這對(duì)于具有大量資源的打印機(jī)是一種優(yōu)化。這是很有效的,因?yàn)槿绻蛻魴C(jī)希望打印整個(gè)文檔而打印機(jī)具有這些資源,則最快的方法是一次接收所有的文檔資源。
在一個(gè)替換操作模式中,初始請(qǐng)求110不知道作業(yè)或文檔大小。打印機(jī)必須響應(yīng)開口的請(qǐng)求或除完整文檔打印模式之外的“流”模式,其中,它保存請(qǐng)求數(shù)據(jù)直到?jīng)]有任何剩余的數(shù)據(jù)要發(fā)送??蛻魴C(jī)僅當(dāng)該頁面的所有數(shù)據(jù)都可用時(shí)才開始發(fā)送新頁。當(dāng)沒有更多的頁面可用時(shí),客戶機(jī)發(fā)送“沒有更多數(shù)據(jù)”消息,并且打印機(jī)終止打印操作。
在第一實(shí)施例中,存在當(dāng)要求打印機(jī)開始打印時(shí)文檔已完成,或者文檔(其大小已知)的內(nèi)容比打印機(jī)能夠消耗它的速度更快地創(chuàng)建的潛在假設(shè)。這通常是真的,但并非總是真的。為解決這一潛在問題,引入兩個(gè)概念。
每當(dāng)打印機(jī)發(fā)送對(duì)資源的請(qǐng)求114時(shí),來自客戶機(jī)的響應(yīng)116可表明該資源不可用。這一響應(yīng)包括超時(shí)。打印機(jī)在這一點(diǎn)上停止處理作業(yè)。打印客戶機(jī)現(xiàn)在必須在所請(qǐng)求的數(shù)據(jù)變得可用時(shí)向打印機(jī)發(fā)送另一請(qǐng)求。打印機(jī)用確認(rèn)響應(yīng)資源可用消息。打印機(jī)現(xiàn)在通過重新發(fā)送對(duì)資源的請(qǐng)求來恢復(fù)作業(yè)。如果資源在超時(shí)內(nèi)未變得可用,但是內(nèi)容仍被添加到文檔,則客戶機(jī)通過發(fā)送帶有新超時(shí)的另一資源不可用請(qǐng)求來復(fù)位超時(shí)。打印機(jī)繼續(xù)等待。
對(duì)資源請(qǐng)求的每一響應(yīng)116具有指示內(nèi)容是否仍被添加到文檔的標(biāo)志。這對(duì)于要求打印機(jī)打印整個(gè)文檔而打印機(jī)以比創(chuàng)建文檔更快的速度消耗文檔的情況是重要的。打印機(jī)可不斷地要求新頁。如果頁尚未存在,則客戶機(jī)用內(nèi)容不可用消息來響應(yīng)。打印機(jī)在看見沒有設(shè)置內(nèi)容被添加標(biāo)志的響應(yīng)時(shí)知道所有的頁都被打印。對(duì)資源請(qǐng)求的所有響應(yīng)包應(yīng)當(dāng)正確地設(shè)置該標(biāo)志。
打印機(jī)具有各種資源,本發(fā)明的一個(gè)特征是處理打印機(jī)一次要求一段文檔或作業(yè)的資源的情況的能力。在一個(gè)簡單的示例中,打印機(jī)要求文檔的第一頁的1000字節(jié),然后要求下1000字節(jié)等等,直到它到達(dá)頁1的末端。在一個(gè)更實(shí)際的情形中,文檔格式包括具有頁大小和頁描述的頁索引,它包括嵌入的資源引用的資源大小,以使客戶機(jī)和打印機(jī)之間的通信變得有效。
打印機(jī)向客戶機(jī)發(fā)送標(biāo)識(shí)作業(yè)已完成的請(qǐng)求118。如果在任何時(shí)刻客戶機(jī)無法響應(yīng)來自打印機(jī)的請(qǐng)求或響應(yīng)文檔不存在(指示文檔可能被取消),則打印機(jī)必須取消該作業(yè)。如果認(rèn)為適當(dāng),可允許打印機(jī)重試該請(qǐng)求。
圖3所示的通信交互序列示出了用于打印文檔的一種基本格式。構(gòu)想向該基本思想提供附加特征的某些增強(qiáng)。如果打印機(jī)104從由客戶機(jī)102發(fā)送的元數(shù)據(jù)中確定它具有足夠的資源來處理整個(gè)文檔,則打印機(jī)可作出對(duì)傳輸整個(gè)文檔的請(qǐng)求。
一旦諸如打印機(jī)130等強(qiáng)大的打印機(jī)下載了資源或資源的一部分,則它可將其儲(chǔ)存在擊中(hit)高速緩存中。當(dāng)資源未被使用或當(dāng)向高速緩存添加新資源時(shí),資源超出高速緩存的時(shí)效。在這一情形中,打印機(jī)在需要發(fā)出對(duì)資源的請(qǐng)求時(shí)首先核查高速緩存。這減少了通信量、降低了協(xié)議的羅嗦性(chattiness)、并增強(qiáng)了繪制的性能。
計(jì)算機(jī)系統(tǒng)圖1描述了一個(gè)示例性數(shù)據(jù)處理設(shè)備。圖1所示的數(shù)據(jù)處理設(shè)備可擔(dān)當(dāng)客戶機(jī)102。諸如圖1所示的設(shè)備也可擔(dān)當(dāng)諸如打印機(jī)130等更強(qiáng)大打印機(jī)的計(jì)算硬件。該系統(tǒng)包括常規(guī)計(jì)算機(jī)20形式的通用計(jì)算裝置,包括一個(gè)或多個(gè)處理單元21、系統(tǒng)存儲(chǔ)器22以及將包括系統(tǒng)存儲(chǔ)器的各類系統(tǒng)組件耦合至處理單元21的系統(tǒng)總線23。系統(tǒng)總線23可以是若干種總線結(jié)構(gòu)類型的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線以及使用各類總線體系結(jié)構(gòu)的局部總線。
系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器(ROM)24和隨機(jī)存取存儲(chǔ)器(RAM)25?;据斎?輸出系統(tǒng)26(BIOS),包含如在啟動(dòng)時(shí)協(xié)助在計(jì)算機(jī)20內(nèi)的元件之間傳輸信息的基本例程,可儲(chǔ)存在ROM 24中。
計(jì)算機(jī)20也包括用于對(duì)硬盤(未示出)進(jìn)行讀寫的硬盤驅(qū)動(dòng)器27、用于對(duì)可移動(dòng)磁盤29進(jìn)行讀寫的磁盤驅(qū)動(dòng)器28以及用于對(duì)可移動(dòng)光盤31如CD ROM或其它光介質(zhì)進(jìn)行讀寫的光盤驅(qū)動(dòng)器30。硬盤驅(qū)動(dòng)器27、磁盤驅(qū)動(dòng)器28以及光盤驅(qū)動(dòng)器30分別通過硬盤驅(qū)動(dòng)器接口32、磁盤驅(qū)動(dòng)器接口33和光盤驅(qū)動(dòng)器接口34連接至系統(tǒng)總線23。驅(qū)動(dòng)器及其相關(guān)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)20提供了計(jì)算機(jī)可執(zhí)行指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲(chǔ)。盡管這里描述的示例環(huán)境采用了硬盤、可移動(dòng)磁盤29以及可移動(dòng)光盤31,然而本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,在示例性操作環(huán)境中也可以使用可儲(chǔ)存計(jì)算機(jī)可訪問的數(shù)據(jù)的其它類型的計(jì)算機(jī)可讀介質(zhì),包括盒式磁帶、閃存卡、數(shù)字視頻盤、Bernoulli盒式磁盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等等。
多個(gè)程序模塊可儲(chǔ)存在硬盤、磁盤29、光盤31、ROM 24或RAM 25中,包括操作系統(tǒng)35、一個(gè)或多個(gè)應(yīng)用程序36、其它程序模塊37以及程序數(shù)據(jù)38。用戶可以通過諸如鍵盤40和定位設(shè)備42等輸入設(shè)備向計(jì)算機(jī)20輸入命令和信息。其它輸入設(shè)備(未示出)可包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備通常通過耦合至系統(tǒng)總線的串行端口接口46連接到處理單元21,但也可以通過其它接口連接,如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器47或其它類型的顯示設(shè)備也通過接口,如視頻適配器48連接到系統(tǒng)總線23。除監(jiān)視器之外,個(gè)人計(jì)算機(jī)通常包括其它外圍輸出設(shè)備(未示出),如揚(yáng)聲器和打印機(jī)。
計(jì)算機(jī)20可以在使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)49的邏輯連接的網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)49可以是另一個(gè)人計(jì)算機(jī)、客戶機(jī)、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公用網(wǎng)絡(luò)節(jié)點(diǎn),并通常包括許多或所有上下文中相對(duì)于計(jì)算機(jī)20所描述的元件,盡管在圖1中僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備50。圖1描述的邏輯連接包括局域網(wǎng)(LAN)51和廣域網(wǎng)(WAN)52。這類網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)20通過網(wǎng)絡(luò)接口或適配器53連接至局域網(wǎng)51。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)20通常包括調(diào)制解調(diào)器54或用于通過廣域網(wǎng)52,如因特網(wǎng)建立通信的其它裝置。調(diào)制解調(diào)器54可以是內(nèi)置或外置的,通過串行端口接口46連接至系統(tǒng)總線23。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)20所描述的程序模塊或其部分可儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。可以理解,示出的網(wǎng)絡(luò)連接是示例性的,也可以使用在計(jì)算機(jī)之間建立通信鏈路的其它裝置。
盡管用大量的細(xì)節(jié)描述了本發(fā)明的示例性實(shí)施例,然而本發(fā)明旨在包括落入所附權(quán)利要求書的范圍或精神內(nèi)的所揭示的設(shè)計(jì)的所有修改和替換。
權(quán)利要求
1.一種控制設(shè)備的繪制的方法,包括a)至少提供客戶機(jī)和繪制設(shè)備之間的半雙工或更好的雙向通信路徑;所述設(shè)備包括用于儲(chǔ)存數(shù)據(jù)以及用于基于由所述客戶機(jī)通過所述雙向通信路徑發(fā)送給所述設(shè)備的數(shù)據(jù)來繪制圖像的資源;以及b)通過以下步驟協(xié)調(diào)所述設(shè)備的繪制i)向所述設(shè)備發(fā)送對(duì)涉及作業(yè)的服務(wù)的初始請(qǐng)求,該請(qǐng)求指示了所述作業(yè)的特征;ii)確認(rèn)所述初始請(qǐng)求并請(qǐng)求要發(fā)送的繪制數(shù)據(jù);以及iii)響應(yīng)于對(duì)繪制數(shù)據(jù)的請(qǐng)求,發(fā)送繪制數(shù)據(jù)并等待對(duì)更多數(shù)據(jù)的額外請(qǐng)求,或者在作業(yè)的所有數(shù)據(jù)已被發(fā)送到所述繪制設(shè)備的情況下,等待所述作業(yè)的繪制已完成的指示。
2.如權(quán)利要求1所述的方法,其特征在于,與所述初始請(qǐng)求一起發(fā)送的特征包括所述作業(yè)的數(shù)據(jù)量。
3.如權(quán)利要求1所述的方法,其特征在于,所述初始請(qǐng)求指示所述作業(yè)中的數(shù)據(jù)量未知。
4.如權(quán)利要求1所述的方法,其特征在于,發(fā)送到所述設(shè)備的數(shù)據(jù)包括一數(shù)據(jù)不可用指示符,它向所述設(shè)備指示所述作業(yè)的數(shù)據(jù)當(dāng)前不可用,并且所述數(shù)據(jù)還包括一超時(shí),在該超時(shí)期間,所述設(shè)備掛起所述作業(yè)的處理直到數(shù)據(jù)變得可用。
5.如權(quán)利要求1所述的方法,其特征在于,當(dāng)令所述數(shù)據(jù)對(duì)所述客戶機(jī)可用時(shí)所述客戶機(jī)向所述繪制設(shè)備發(fā)送數(shù)據(jù),并且其中,所述繪制設(shè)備等待更多數(shù)據(jù)的接收或數(shù)據(jù)指示符的結(jié)束。
6.如權(quán)利要求1所述的方法,其特征在于,所述設(shè)備丟棄已發(fā)送到所述設(shè)備的數(shù)據(jù),以容納來自所述打印客戶機(jī)的額外數(shù)據(jù)。
7.如權(quán)利要求6所述的方法,其特征在于,所述設(shè)備作出對(duì)先前在繪制作業(yè)過程中被丟棄的數(shù)據(jù)的重新發(fā)送的請(qǐng)求,以供在繪制中隨后使用。
8.如權(quán)利要求1所述的方法,其特征在于,所述繪制設(shè)備是打印機(jī),并且所述數(shù)據(jù)由所述客戶機(jī)組織成頁,并且其中,由所述打印機(jī)發(fā)送到客戶機(jī)的對(duì)數(shù)據(jù)的請(qǐng)求滿足了對(duì)打印一個(gè)或多個(gè)頁的需求。
9.如權(quán)利要求8所述的方法,其特征在于,所述初始請(qǐng)求包括作業(yè)中的數(shù)據(jù)量,并且其中,在所述打印機(jī)從由所述客戶機(jī)發(fā)送的初始請(qǐng)求中確定它具有足夠的資源來處理整個(gè)文檔的情況下,所述打印機(jī)請(qǐng)求用于打印整個(gè)文檔的傳輸數(shù)據(jù)。
10.如權(quán)利要求1所述的方法,其特征在于,所述繪制設(shè)備是打印機(jī),并且所述打印機(jī)包括儲(chǔ)存文檔資源或文檔資源的一部分的存儲(chǔ)器,并且其中,所述打印機(jī)維護(hù)一擊中高速緩存,并當(dāng)所述資源最近未被使用或者當(dāng)向高速緩存添加新資源時(shí)從高速緩存中刪除所述資源。
11.如權(quán)利要求10所述的方法,其特征在于,當(dāng)所述打印機(jī)需要發(fā)出對(duì)資源的請(qǐng)求時(shí),它首先核查所述高速緩存。
12.如權(quán)利要求1所述的方法,其特征在于,響應(yīng)于所述初始請(qǐng)求要求繪制數(shù)據(jù)實(shí)際上立即執(zhí)行或在由于其它客戶機(jī)使用資源來繪制數(shù)據(jù)而引起的延遲之后執(zhí)行。
13.一種用于控制打印機(jī)的打印作業(yè)的打印的過程,包括從客戶機(jī)向所述打印機(jī)發(fā)送打印作業(yè)請(qǐng)求,所述請(qǐng)求包括所述作業(yè)的唯一來源標(biāo)識(shí)符;構(gòu)成所述打印作業(yè)的一個(gè)或多個(gè)文檔的類型;可檢索多個(gè)文檔資源的源地址;應(yīng)用于所述一個(gè)或多個(gè)文檔的打印機(jī)設(shè)置;關(guān)于所述一個(gè)或多個(gè)文檔的元數(shù)據(jù);以及打印機(jī)超時(shí);用初始響應(yīng)回復(fù)所述請(qǐng)求,所述響應(yīng)指示所述文檔打印請(qǐng)求是否能被接受,并且如果它被接受,則向打印機(jī)提供打印機(jī)上的所述打印作業(yè)的標(biāo)識(shí)符,以供所述客戶機(jī)隨后標(biāo)識(shí)打印機(jī)上的所述打印作業(yè);提交對(duì)所述源地址處的文檔數(shù)據(jù)的數(shù)據(jù)請(qǐng)求;所述數(shù)據(jù)請(qǐng)求標(biāo)識(shí)了要檢索的文檔中的資源,以及要檢索的資源數(shù)據(jù)量;將所請(qǐng)求的文檔數(shù)據(jù)發(fā)送給所述打印機(jī);以及在所述打印機(jī)處處理所述數(shù)據(jù),并基于所述文檔數(shù)據(jù)的內(nèi)容向所述客戶機(jī)發(fā)出對(duì)額外文檔數(shù)據(jù)的額外請(qǐng)求。
14.如權(quán)利要求13所述的過程,其特征在于,所述元數(shù)據(jù)包括所述一個(gè)或多個(gè)文檔的大小和類型。
15.如權(quán)利要求13所述的過程,其特征在于,所述數(shù)據(jù)請(qǐng)求包括到資源數(shù)據(jù)集合的偏移。
16.如權(quán)利要求15所述的過程,其特征在于,所述資源數(shù)據(jù)集合是字形或字形范圍。
17.如權(quán)利要求13所述的過程,其特征在于,所述資源包含圖片或字體,并且其中,所述打印機(jī)發(fā)出檢索所述字體或圖片的數(shù)據(jù)的新請(qǐng)求。
18.如權(quán)利要求13所述的過程,其特征在于,所述打印機(jī)一次格式化一頁,并且在每一頁之后,所述打印機(jī)發(fā)出檢索下一頁的數(shù)據(jù)的請(qǐng)求。
19.如權(quán)利要求13所述的過程,其特征在于,對(duì)打印資源的請(qǐng)求被重復(fù),直到打印了完整的作業(yè)。
20.如權(quán)利要求13所述的過程,其特征在于,所述打印機(jī)向所述客戶機(jī)發(fā)送指示所述作業(yè)已完成的消息。
21.如權(quán)利要求13所述的過程,其特征在于,所述打印作業(yè)請(qǐng)求指示一流模式,其中,一旦打印機(jī)接受了所述打印作業(yè),當(dāng)數(shù)據(jù)變得對(duì)所述客戶機(jī)可用時(shí),所述數(shù)據(jù)從客戶機(jī)發(fā)送到所述打印機(jī)。
22.如權(quán)利要求13所述的過程,其特征在于,所述初始請(qǐng)求指示所述作業(yè)中的數(shù)據(jù)量未知。
23.如權(quán)利要求13所述的過程,其特征在于,發(fā)送到所述打印機(jī)的數(shù)據(jù)包括一數(shù)據(jù)不可用指示符,它向所述打印機(jī)指示所述作業(yè)的數(shù)據(jù)當(dāng)前不可用,并且所述數(shù)據(jù)還包括一超時(shí),在該超時(shí)期間,所述設(shè)備掛起所述作業(yè)的處理,直到數(shù)據(jù)變得可用。
24.如權(quán)利要求13所述的方法,其特征在于,當(dāng)令所述數(shù)據(jù)對(duì)所述客戶機(jī)可用時(shí),所述客戶機(jī)向所述打印機(jī)發(fā)送數(shù)據(jù),并且其中,所述打印機(jī)等待接收更多數(shù)據(jù)或數(shù)據(jù)指示符的結(jié)束。
25.一種用于打印文檔的系統(tǒng),包括a)客戶機(jī),用于將打印數(shù)據(jù)格式化成頁以供傳輸;b)打印機(jī),用于從所述客戶機(jī)接收打印數(shù)據(jù)以及用于基于所述打印數(shù)據(jù)繪制圖像;c)通信信道,用于至少提供客戶機(jī)和打印機(jī)之間的半雙工或更好的雙向通信路徑;所述打印機(jī)包括用于儲(chǔ)存打印數(shù)據(jù)以及用于基于由所述客戶機(jī)通過所述雙向通信路徑發(fā)送給打印機(jī)的數(shù)據(jù)繪制圖像的打印資源;以及d)包括在所述打印機(jī)或客戶機(jī)內(nèi)的組件,用于通過以下步驟協(xié)調(diào)所述打印機(jī)的圖像繪制i)向所述打印機(jī)發(fā)送對(duì)涉及打印作業(yè)的服務(wù)的初始請(qǐng)求,所述請(qǐng)求指示所述作業(yè)的特征;ii)確認(rèn)所述初始請(qǐng)求并請(qǐng)求要發(fā)送的打印數(shù)據(jù);以及iii)響應(yīng)于所述對(duì)打印數(shù)據(jù)的請(qǐng)求,發(fā)送打印數(shù)據(jù)并等待對(duì)更多數(shù)據(jù)的額外請(qǐng)求,或者在作業(yè)的所有數(shù)據(jù)已被發(fā)送到所述打印機(jī)的情況下,等待所述作業(yè)的打印已完成的指示。
26.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述打印機(jī)包括用于儲(chǔ)存數(shù)據(jù)頁的頁存儲(chǔ)器,還包括與所述頁存儲(chǔ)器通信的打印頭,所述打印頭用于基于所述頁存儲(chǔ)器的內(nèi)容繪制圖像。
27.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述打印機(jī)包括資源,用于儲(chǔ)存打印數(shù)據(jù)以避免所述打印客戶機(jī)重復(fù)請(qǐng)求打印數(shù)據(jù)。
28.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述打印機(jī)包括存儲(chǔ)器,它高速緩存文檔資源或文檔資源的一部分,并且其中,所述打印機(jī)包括計(jì)算設(shè)備,它維護(hù)一擊中高速緩存并當(dāng)所述資源最近未被使用或向所述高速緩存添加新資源時(shí)從所述高速緩存刪除所述資源。
29.如權(quán)利要求28所述的系統(tǒng),其特征在于,所述打印機(jī)的計(jì)算設(shè)備在需要發(fā)出對(duì)資源的請(qǐng)求時(shí)首先核查所述高速緩存。
30.一種用于控制設(shè)備的繪制的裝置,包括a)用于至少提供客戶機(jī)和設(shè)備之間的半雙工或更好的雙向通信路徑的裝置;所述設(shè)備包括用于儲(chǔ)存數(shù)據(jù)以及用于基于由所述客戶機(jī)通過所述雙向通信路徑發(fā)送到所述設(shè)備的數(shù)據(jù)繪制圖像的資源;以及b)用于通過以下步驟協(xié)調(diào)所述設(shè)備的繪制的裝置i)向所述設(shè)備發(fā)送對(duì)涉及作業(yè)的服務(wù)的初始請(qǐng)求,所述請(qǐng)求指示所述作業(yè)的特征;ii)確認(rèn)所述初始請(qǐng)求并請(qǐng)求要發(fā)送的繪制數(shù)據(jù);以及iii)響應(yīng)于所述對(duì)繪制數(shù)據(jù)的請(qǐng)求,發(fā)送繪制數(shù)據(jù)并等待對(duì)更多數(shù)據(jù)的額外請(qǐng)求,或者在作業(yè)的所有數(shù)據(jù)已被發(fā)送到所述繪制設(shè)備的情況下,等待所述作業(yè)的繪制已完成的指示。
31.一種包含用于控制打印機(jī)的打印的指令的計(jì)算機(jī)可讀介質(zhì),包括a)實(shí)現(xiàn)客戶機(jī)和打印機(jī)之間的半雙工或更好的雙向通信連接,所述打印機(jī)包括用于儲(chǔ)存數(shù)據(jù)以及用于基于由所述客戶機(jī)通過所述雙向通信路徑發(fā)送給所述打印機(jī)的數(shù)據(jù)繪制圖像的資源;以及b)通過以下步驟協(xié)調(diào)所述打印機(jī)的打印i)向所述打印機(jī)發(fā)送對(duì)涉及作業(yè)的服務(wù)的初始請(qǐng)求,所述請(qǐng)求指示打印作業(yè)的特征;ii)確認(rèn)所述初始請(qǐng)求并請(qǐng)求要發(fā)送的繪制數(shù)據(jù);以及iii)響應(yīng)于所述對(duì)繪制數(shù)據(jù)的請(qǐng)求,發(fā)送繪制數(shù)據(jù)并等待對(duì)更多數(shù)據(jù)的額外請(qǐng)求,或者在打印作業(yè)的所有數(shù)據(jù)已被發(fā)送到所述打印機(jī)的情況下,等待所述打印作業(yè)的繪制已完成的指示。
全文摘要
一種用于控制打印機(jī)的打印作業(yè)的打印的系統(tǒng)和過程。打印機(jī)請(qǐng)求從客戶機(jī)發(fā)送到打印機(jī)。該請(qǐng)求包括打印作業(yè)的唯一來源標(biāo)識(shí)符;構(gòu)成打印作業(yè)的一個(gè)或多個(gè)文檔的類型;可檢索多個(gè)文檔資源的源地址;以及應(yīng)用于一個(gè)或多個(gè)文檔的打印機(jī)設(shè)置,并包括涉及期望打印時(shí)間的打印機(jī)超時(shí)間隔。可以向打印機(jī)通知作業(yè)的大小,或者打印機(jī)可以在流模式中操作,其中數(shù)據(jù)在變得可用時(shí)被發(fā)送到打印機(jī)。打印機(jī)用指示打印作業(yè)請(qǐng)求是否可被接受的初始響應(yīng)來響應(yīng)于該初始請(qǐng)求,如果該請(qǐng)求可被接受,則向打印機(jī)提供打印機(jī)上該作業(yè)的打印機(jī)標(biāo)識(shí)符,以供客戶機(jī)用于隨后標(biāo)識(shí)打印機(jī)上的作業(yè)。打印機(jī)提交對(duì)源地址處的文檔數(shù)據(jù)的數(shù)據(jù)請(qǐng)求。數(shù)據(jù)請(qǐng)求標(biāo)識(shí)要檢索的文檔中的資源、到資源數(shù)據(jù)集合的偏移以及要檢索的資源數(shù)據(jù)量。所請(qǐng)求的文檔數(shù)據(jù)由打印機(jī)請(qǐng)求,并且在滿足數(shù)據(jù)請(qǐng)求的剩余數(shù)據(jù)小于所請(qǐng)求的量的情況下,所有的剩余數(shù)據(jù)被發(fā)送到打印機(jī)。發(fā)送到打印機(jī)的數(shù)據(jù)被處理,并基于文檔數(shù)據(jù)的內(nèi)容,將對(duì)資源的額外的一個(gè)或多個(gè)請(qǐng)求發(fā)送到客戶機(jī)用于額外的文檔數(shù)據(jù)。
文檔編號(hào)G06K1/00GK1864165SQ200480001728
公開日2006年11月15日 申請(qǐng)日期2004年7月30日 優(yōu)先權(quán)日2003年12月11日
發(fā)明者E·格瑞夫, C·麥克盧科 申請(qǐng)人:微軟公司