李春泉,莫慧光,尚玉玲,張 明
(桂林電子科技大學 機電工程學院,廣西 桂林 541004)
?
云打印環(huán)境下設備接入技術(shù)研究*
李春泉,莫慧光,尚玉玲,張 明
(桂林電子科技大學 機電工程學院,廣西 桂林 541004)
為實現(xiàn)云打印服務平臺建設,對打印資源接入和訪問控制技術(shù)進行了研究。分析了傳統(tǒng)打印方式的不足之處,提出了一種以按需服務為宗旨的云打印體系架構(gòu)及運行模式。針對該云打印體系架構(gòu),分析了資源云端化實現(xiàn)流程,重點研究了打印資源接入技術(shù),設計了基于Linux的云打印網(wǎng)絡適配器,云打印網(wǎng)絡適配器是打印設備與云打印服務平臺建立通信的中間件。介紹了其硬件設計方案及打印設備驅(qū)動方法,并提出了打印任務管理方法,實現(xiàn)了對多臺打印設備的訪問控制,為完善云打印服務平臺建設奠定了基礎。
云打??;資源接入;云端化;體系架構(gòu);任務管理
在信息技術(shù)的不斷推動下,打印作為信息輸出的主要方式之一,也發(fā)生了巨大的變化,不僅表現(xiàn)為打印機硬件的更新,而且打印方式也經(jīng)歷了本地打印、共享打印和網(wǎng)絡打印進而發(fā)展成為云打印[1]。云打印是云計算由理論研究轉(zhuǎn)向?qū)嶋H應用的一種典型示例,它依托于云制作理論及架構(gòu),以互聯(lián)網(wǎng)為基礎,以“按需服務”為宗旨,以訪問控制為核心,整合打印資源,構(gòu)建漫游共享打印平臺,向全社會提供隨時隨地打印服務[2]。
Google率先提出了云打印概念,Google推出的Chrome OS系統(tǒng),其實質(zhì)是借助互聯(lián)網(wǎng)的力量來打破計算機和打印機相連必須安裝驅(qū)動程序的障礙。通過API技術(shù),將云打印服務器內(nèi)嵌在Chrome瀏覽器中,用戶可以增加打印機到自己的谷歌賬戶中,不再需要特殊的打印機驅(qū)動程序和控制軟件[3]。Google云打印的主要目的是解決傳統(tǒng)的打印機與PC機相連要受到打印機驅(qū)動的限制,而采取一種免驅(qū)動的且支持所有類型打印機的技術(shù)標準。其目標是使得桌面操作系統(tǒng)成為打印的通用接口,任何人在任何時候只要使用通用接口就能實現(xiàn)遠程打印[4]。
HP的云打印可以簡單定義為一項基于互聯(lián)網(wǎng)的遠程打印技術(shù),其本質(zhì)是智能終端設備到打印機的一種訪問控制技術(shù)。HP ePrint的工作原理就是為打印機分配一個電子郵箱地址,用戶只需發(fā)送一封包含待打印文檔的電子郵件到打印機地址即可完成打印,其目的是為了推廣大量具有云意識功能的打印機的應用[5]。
2014年佳能和百度聯(lián)合推出了云打印服務,目前正處于測試版階段。在佳能強有力的硬件和技術(shù)支持下,百度云打印給用戶帶來了自由便捷的云打印體驗。目前云打印技術(shù)還未成熟,例如:實際測試HP ePrint有時存在文件格式錯亂的現(xiàn)象;Google云打印在國內(nèi)使用較少;百度云打印目前也停留在測試階段。在分析了云打印體系架構(gòu)組成的前提下,提出了一種打印設備接入技術(shù)及驅(qū)動方法,提高了打印設備驅(qū)動和文件格式轉(zhuǎn)換的穩(wěn)定性。
傳統(tǒng)打印模式主要包括本地單機打印模式、局域網(wǎng)共享打印模式和網(wǎng)絡共享打印模式[6]。
(1)本地打印模式。本地打印模式下一臺打印機連接一臺PC機,PC機上需安裝相應的打印機驅(qū)動程序。缺點:打印地點固定且打印機只能由一臺PC機控制,降低了打印的便捷性;打印機使用率較低。
(2)局域網(wǎng)共享打印模式。共享打印模式需要一臺PC機作為服務器,在其他用戶安裝打印機驅(qū)動程序的前提下,通過局域網(wǎng)向其他用戶共享打印設備。缺點:使用范圍局限于局域網(wǎng)內(nèi);局域網(wǎng)內(nèi)用戶數(shù)量有一定的限制;作為服務器的PC主機要一直處于開機狀態(tài)。
(3)網(wǎng)絡打印模式。網(wǎng)絡打印不需要配置一臺PC機作為服務器,只需將具有網(wǎng)絡連接功能的打印機連接到PC所處的網(wǎng)絡內(nèi),用戶就可以直接打印Internet上的文本、數(shù)據(jù)和圖像。缺點:PC機仍需安裝相應的打印機驅(qū)動程序;對外網(wǎng)環(huán)境依賴性強[6]。
2.1 云打印體系架構(gòu)組成
相比傳統(tǒng)打印模式,云打印具有便捷性、開放性、可擴展性等優(yōu)點。在技術(shù)支持和系統(tǒng)平臺建設中云打印具備了相關的技術(shù)支持和統(tǒng)一的平臺,實現(xiàn)對打印資源的按需訪問。在云打印服務體系中主要包括云打印資源提供者(Cloud Print Resource Provider,CRP)、云服務提供商(Cloud Service Provider,CSP)和云服務消費者(Cloud Resource Customer,CSC)三種角色[7]。
圖1給出了云打印體系架構(gòu)組成,主要包括硬件層、接入層、服務層和訪問層[8]。
硬件層:硬件層主要指由CRP提供的底層打印資源,可以是普通打印設備、專用繪圖設備或其他打印設備。
接入層:接入層將底層打印資源進行封裝和描述,并通過嵌入式的云打印網(wǎng)絡適配器將打印資源接入云打印服務平臺,實現(xiàn)打印資源云端化。云打印網(wǎng)絡適配器主要實現(xiàn)打印驅(qū)動、設備管理、打印任務管理和設備互聯(lián)等功能[7-8]。
訪問層:訪問層給用戶提供多種服務接口,用戶可以使用專用客戶端軟件、瀏覽器或其他第三方軟件(社交軟件、云盤等)提交打印請求。
服務層:服務層給用戶提供訪問接口,接收訪問層發(fā)來的打印任務,調(diào)用相應的封裝函數(shù)實現(xiàn)對任務的解析,并通過接入層下發(fā)打印任務到打印設備。服務層還包括用戶管理、安全管理、支付管理、數(shù)據(jù)管理、業(yè)務管理等功能。
圖1 云打印體系架構(gòu)
2.2 云打印運行模式
云打印資源提供者(CRP)將描述封裝后打印資源發(fā)布到云打印服務平臺,云服務提供商(CSP)整合打印資源,形成大規(guī)模、多資源的打印池,并根據(jù)云服務消費者(CSC)的需求對資源進行合理的組合和配置,實現(xiàn)動態(tài)資源調(diào)度[9]。
云打印服務平臺綜合考慮CSC的地理信息、任務屬性、設備狀態(tài)等因素,實現(xiàn)任務動態(tài)分配。打印任務在打印服務站完成,用戶可選擇自取或物流派送。
打印資源云端化是指將底層物理打印設備通過虛擬的網(wǎng)絡環(huán)境映射到云打印服務平臺,使打印資源轉(zhuǎn)變?yōu)檫壿嬌峡墒褂?、訪問、管理、控制的虛擬打印資源,并實現(xiàn)打印資源的地址分配和任務調(diào)度[9]。其實現(xiàn)流程如圖2所示。打印資源云端化主要分為以下幾個步驟:
圖2 打印資源云端化實現(xiàn)流程
(1)打印資源的封裝。云打印環(huán)境下打印資源具有異構(gòu)性,首先依據(jù)打印設備的統(tǒng)一屬性來建立標準封裝庫,然后根據(jù)不同打印設備的地址信息、打印功能、打印能力、打印耗材等自身特征參數(shù)來擴充標準封裝庫,對每一個打印設備建立專有的封裝與描述。
(2)打印資源的接入。打印資源的接入是指將封裝好的打印資源以虛擬的形式接入云打印服務平臺,實現(xiàn)云打印服務平臺對打印資源的統(tǒng)一管理和調(diào)度。開發(fā)基于嵌入式的云打印網(wǎng)絡適配器,將云打印網(wǎng)絡適配器作為底層打印設備接入云打印服務平臺的中間件,對底層打印設備的驅(qū)動和打印控制語言進行封裝,形成統(tǒng)一的驅(qū)動方式和入網(wǎng)協(xié)議[9-10]。通過云打印網(wǎng)絡適配器獲取打印設備的基本屬性、性能、工作狀態(tài)和故障等信息,實現(xiàn)對底層打印設備的反饋控制。
(3)打印資源底層互聯(lián)。打印資源底層互聯(lián)是指不同的打印設備可以直接通過云打印網(wǎng)絡適配器交互信息,協(xié)助完成打印任務,以減輕云打印服務平臺的負擔,提高服務質(zhì)量。
4.1 云打印網(wǎng)絡適配器硬件配置
云打印網(wǎng)絡適配器作為底層打印設備接入云打印服務平臺的中間件,是實現(xiàn)打印資源接入的硬件支持。選用s3c6410作為主控制芯片,主要外設有NAND Flash存儲器、SDRAM、以太網(wǎng)接口、USB打印設備接口、UART串行數(shù)據(jù)接口[11]UART串行數(shù)據(jù)接口原理圖見圖3。
(1)電源電路
電路設計為5V和3.3V雙電源供電。5V電源由AC-DC-5V開關電源直接提供,并經(jīng)過AMS1117-3.3芯片穩(wěn)壓到3.3V。
(2)打印設備接口電路
硬件設計使用AU9254A21 USB集線器控制芯片,板載支持4路USB打印接口。
(3)UART串行數(shù)據(jù)接口電路
在開發(fā)時,主要使用UART串行數(shù)據(jù)接口和上位機終端建立通信。本次設計選用FT232RL芯片,F(xiàn)T232RL可以直接實現(xiàn)USB到串行UART接口的轉(zhuǎn)換,不僅可以省去使用MAX232電平轉(zhuǎn)換芯片,而且簡化了電路接口。
圖3 UART串行數(shù)據(jù)接口原理圖
(4)以太網(wǎng)接口電路
以太網(wǎng)接口主要用于在云打印網(wǎng)絡適配器與云打印服務器之間建立通信,傳輸打印任務和打印狀態(tài)等信息。DM9000A是一種高度集成、低成本、具有通用接口的以太網(wǎng)控制芯片,其物理傳輸速度支持10/100M,內(nèi)部帶有4K雙字節(jié)SRAM。以太網(wǎng)接口原理圖見圖4。
圖4 以太網(wǎng)接口原理圖
4.2 云打印網(wǎng)絡適配器打印驅(qū)動設計
針對HP打印設備,分析了Linux下打印設備驅(qū)動方法,并完成將驅(qū)動移植到ARM11處理器。
Linux下HP打印設備打印流程:
首先應用程序?qū)⑵胀ǖ奈谋疚臋n先轉(zhuǎn)換為PS或PDF格式文檔,然后發(fā)送至CUPS架構(gòu)。如果打印機支持PS語言,CUPS可以直接將文件發(fā)送至PS打印機實現(xiàn)打印。對于不支持PS語言的打印機,CUPS調(diào)用GhostScript應用程序?qū)ostScript/PDF格式文檔轉(zhuǎn)換為光柵格式(PBM),然后對于不同的打印機調(diào)用其相應的HPLIB過濾器(例如hpijs或foo2zjs)將光柵格式轉(zhuǎn)化為打印機語言,最后將數(shù)據(jù)發(fā)送給打印機實現(xiàn)打印。驅(qū)動移植步驟如下:
(1)在編譯Linux內(nèi)核之前配置Linux系統(tǒng)支持USB打印設備。進入內(nèi)核配置界面[12],選擇USB Printer support,將其改為[*]保存退出。在內(nèi)核文件目錄下執(zhí)行命令:#make zImage。
(2)移植Ghostscript程序。GhostScript程序用于將PostScript/PDF格式文檔轉(zhuǎn)換為光柵格式(pbm)。在交叉編譯開發(fā)環(huán)境中編譯Ghostscript,編譯結(jié)束后將會生成gs可執(zhí)行文件,將該文件拷貝到Linux系統(tǒng)的bin文件夾下。
(3)移植foo2zjs程序。GhostScript負責將postscript格式轉(zhuǎn)換為光柵格式之后,對于HP打印機還需要通過foo2zjs處理,轉(zhuǎn)換為特殊的打印流命令。交叉編譯foo2zjs,將生成的的sihp1020.dl、foo2zjs、usb_printerid文件都拷貝至Linux系統(tǒng)的bin目錄下。
(4)打印驅(qū)動測試。測試打印print.pdf文檔使用命令如下:
將pdf或其他格式文件轉(zhuǎn)換為pbm格式文件:
./gs-q-dBATCH-dSAFER-dQUIET-dNOPAUSE-sPAPERSIZE=a4-r580x580-sDEVICE=pbmraw-sOutputFile=print.pbm print.pdf。
使打印節(jié)點執(zhí)行打?。?/p>
foo2zjs -z1 -p9 -r600x600 print.pbm > /dev/lp0。
4.3 打印設備狀態(tài)獲取研究
打印任務分配屬于一個動態(tài)分配問題,打印設備狀態(tài)會不斷變化,如果把一個任務分配給一臺已經(jīng)出現(xiàn)故障的打印設備,將會產(chǎn)生任務阻塞。因此獲取打印設備狀態(tài)是執(zhí)行任務分配的前提條件。
HPLIP(HP Linux imaging and printing)是linux下的開源打印設備管理系統(tǒng),HPLIP工作依靠于CUPS程序,HPLIP的主要組件有過濾器、終端、PPD文件和工具包。采用如下步驟來獲取打印設備狀態(tài)信息:
(1)獲取打印設備UIR碼。UIR是HP打印機的唯一身份識別碼。
(2)以特定方式打開設備。打開設備通過調(diào)用hpmud_open_device函數(shù)來實現(xiàn),在hpmud.h中定于了7種打開設備的方式。
(3)創(chuàng)建相應通道。通道用于和打印設備進行信息交互,使用hpmud_open_channel函數(shù)來創(chuàng)建通道。。
(4)向通道中寫入命令。寫入命令通過調(diào)用hpmud_write_channel函數(shù)來實現(xiàn)。對于PJL通信方式,PJL中獲取狀態(tài)的命令為:x1b%-12345X@PJL INFO STATUS/r/n/x1b%-12345X。
(5)讀取通道中的數(shù)據(jù)。讀取數(shù)據(jù)通過調(diào)用hpmud_read_channel函數(shù)來實現(xiàn)。讀取回來的數(shù)據(jù)中就包含了與打印設備狀態(tài)相關的信息,將數(shù)據(jù)與Codes.py中定義的狀態(tài)碼對比即可得到打印設備狀態(tài)。
4.4 云打印網(wǎng)絡適配器任務管理研究
云打印網(wǎng)絡適配器主要用于管理一個打印服務站中的多臺打印設備,接收來自云服務平臺下發(fā)的打印任務,完成任務管理和分配。
設任務集合為T={T1,T2,T3...Ti...Tn},Ti表示第i個打印任務。
設集合L={L1,L2,L3...Li...Ln},Li表示第i個打印任務的任務量,
Li=PsCo
(1)
式中,Ps表示所需打印文檔的頁數(shù),Co表示所需打印份數(shù)。
設子任務集合為tin={ti1,ti2,ti3,...tin},tin表示第i個打印任務被分割成的第n個子任務。
設集合lin={li1,li2,li3,...lin},lin表示第i個打印任務中第n個子任務的任務量,
設集合P={P1,P2,P3...Pi...Pn},Pi表示該打印服務站中第j臺打印設備;
設集合C={C1,C2,C3...Cj...Cn},Cj表示第j臺打印設備的打印能力,Cj的值為該打印設備每分鐘的出紙速度,即打印速度。
設集合R={R1,R2,R3...Rj...Rn},Rj表示第j臺打印設備的后備打印能力。
(2)
其中,m為打印設備能夠打印紙張的數(shù)量,p為該打印設備已經(jīng)打印紙張的數(shù)量,且0≤Rj≤1,Rj越大表示其后備打印能力越大。
設集合S={S1,S2,S3...Sj...Sn},Sj表示第j臺打印設備工作狀態(tài),取值為-1表示故障,0表示空閑,1表示正在工作。
打印任務分配需要滿足如下約束:
(1)每個打印資源在同一時刻內(nèi)只能對應一個任務,當一個任務打印量較大時,可以將該任務分割成多個子任務,進而分配給多臺打印設備處理。
(2)打印資源的打印能力Cj是一定的。
(3)當一個打印資源在執(zhí)行一個打印任務中出現(xiàn)故障時,該打印資源能夠通知調(diào)度模塊,調(diào)度模塊將會該打印任務ID號重新放回打印隊列,重新分配任務,實現(xiàn)底層設備互聯(lián)。
打印任務分配流程如圖5所示:
首先取出打印任務隊列中的第一個任務Ti,然后判斷是否需要任務分割。當Li大于默認值時(根據(jù)實際設定),將對任務等額分割,產(chǎn)出子任務tin={ti1,ti2,ti3,...tin},當Li小于默認值時Li=ti1,即不對任務進行分割。設備監(jiān)控模塊對打印設備的工作狀態(tài)Sj,打印能力Cj和后備打印能力Rj等信息定時刷新。當調(diào)度模塊取到一個任務后,將讀取一次所有打印資源的狀態(tài)信息,并將該任務分配給空閑的設備中具有最大后備打印能力的打印設備。
圖5 任務分配流程
云打印是云制造由理論走向應用的一種典型實例,是一種以網(wǎng)絡為基礎的新型打印服務模式?,F(xiàn)階段,云打印服務還不夠成熟,本文結(jié)合諸多研究者的觀點,提出了一種以按需服務為宗旨的云打印體系架構(gòu)及運行模式,研究了打印資源云端化實現(xiàn)流程。設計了基于Linux的云打印網(wǎng)絡適配器,為打印設備接入云打印平臺提供了硬件支持,并研究了打印設備驅(qū)動方法、設備訪問控制技術(shù)和任務管理方法,實現(xiàn)了對多臺打印設備的訪問控制,為建立云打印服務平臺提供了思路和基礎。
[1] 王思武.云打印服務存在的問題及對策研究[J].統(tǒng)計與管理,2014(9):41-43.
[2] 蔡莉莉,錢海忠,王進華.云打印體系關鍵技術(shù)研究[J].金陵科技學院學報,2015,31(3):36-31.
[3] Jarvis,Deven.Digital Clinic Q+A:Cloud Printing[J].Popular Mechanics,2011,188(12).
[4] 徐文凱.讓打印“騰空”淺談云打印技術(shù)[J].今日印刷,2014(6):50-53.
[5] Wu Yun.Research of Cloud Print Key Technology Base on Identity Card[J].Third World Congress on Software Engineering,2011:176-178.
[6] 吳煬,吳遠征.基于“云計算”的云打印服務提升對策研究[J].科技管理研究,2014,39(1):184-188.
[7] 李春泉,張能,尚玉玲,等.云打印體系結(jié)構(gòu)及其關鍵技術(shù)研究[J].組合機床與自動化加工技術(shù),2015(10):150-153.
[8] Xiuli Shao,Guoqi Cui,Huadong Zhang,et al.Design and Implementation of 3D Cloud Print Service Platform Based on Internet[J].Computer Science and Application,2015:25-33.
[9] 李春泉,何漢釗,張明,等.云制造設備資源組網(wǎng)接入技術(shù)研究[J].組合機床與自動化加工技術(shù),2014(10):44-46.
[10] Zhu Yuqing,Wu Weili,Wu Lidong,et al.SmartPrint:A Cloud Print System for Office[J].IEEE 9thInternational Conference on Mobile Ad-hoc and Sensor Networks(MSN),2013:95-100.
[11] 許海燕,張曦煌.嵌入式系統(tǒng)Internet打印的設計與實現(xiàn)[J].微計算機信息,2007(2):66-68.
[12] 宋寶華.Linux設備驅(qū)動開發(fā)詳解[M].北京:中國郵電出版社,2011.
(編輯 李秀敏)
Equipment of Resources Cloud Access Technology Based on Cloud Print
LI Chun-quan, MO Hui-guang, SHANG Yu-ling, ZHANG Ming
(School of Mechanical & Electrical Engineering, Guilin University of Electronic Technology,Guilin Guangxi 541004,China)
In order to realize the construction of cloud print service platform, the technology of print resource access and access control is studied. The shortcomings of traditional printing methods are analyzed, and a kind of Cloud Print architecture and operation mode is proposed, which is based on the requirement of service. According to the Cloud Print architecture, the implementation process of resource cloud is analyzed, and the access technology of print resources is studied, and designs the cloud print network adapter base on Linux,which is the middleware of the printing equipment and the cloud print service platform to establish the communication.The hardware design scheme and the driving method of printing equipment are introduced,print task management method is proposed to achieve the access control of multiple print devices, which lays the foundation for improving the construction of cloud print service platform.
cloud print; resource access; cloud terminalization; system structure; task management
1001-2265(2017)06-078-04
10.13462/j.cnki.mmtamt.2017.06.020
2016-08-28;
2016-10-25
國家自然科學基金(61661013,51465013);桂林電子科技大學研究生創(chuàng)新項目(GDYCSZ201443,GDYCSZ201480);廣西自動檢測技術(shù)與儀器重點實驗室主任基金(YQ15109)
李春泉(1975—)男,北京人,桂林電子科技大學教授,博士后,研究方向為先進制造技術(shù)及微電子制造工程,(E-mail)lichunquan@gmail.com。
TH122;TG506
A