云打印环境下设备接入技术研究*
2017-07-05李春泉莫慧光尚玉玲
李春泉,莫慧光,尚玉玲,张 明
(桂林电子科技大学 机电工程学院,广西 桂林 541004)
云打印环境下设备接入技术研究*
李春泉,莫慧光,尚玉玲,张 明
(桂林电子科技大学 机电工程学院,广西 桂林 541004)
为实现云打印服务平台建设,对打印资源接入和访问控制技术进行了研究。分析了传统打印方式的不足之处,提出了一种以按需服务为宗旨的云打印体系架构及运行模式。针对该云打印体系架构,分析了资源云端化实现流程,重点研究了打印资源接入技术,设计了基于Linux的云打印网络适配器,云打印网络适配器是打印设备与云打印服务平台建立通信的中间件。介绍了其硬件设计方案及打印设备驱动方法,并提出了打印任务管理方法,实现了对多台打印设备的访问控制,为完善云打印服务平台建设奠定了基础。
云打印;资源接入;云端化;体系架构;任务管理
0 引言
在信息技术的不断推动下,打印作为信息输出的主要方式之一,也发生了巨大的变化,不仅表现为打印机硬件的更新,而且打印方式也经历了本地打印、共享打印和网络打印进而发展成为云打印[1]。云打印是云计算由理论研究转向实际应用的一种典型示例,它依托于云制作理论及架构,以互联网为基础,以“按需服务”为宗旨,以访问控制为核心,整合打印资源,构建漫游共享打印平台,向全社会提供随时随地打印服务[2]。
Google率先提出了云打印概念,Google推出的Chrome OS系统,其实质是借助互联网的力量来打破计算机和打印机相连必须安装驱动程序的障碍。通过API技术,将云打印服务器内嵌在Chrome浏览器中,用户可以增加打印机到自己的谷歌账户中,不再需要特殊的打印机驱动程序和控制软件[3]。Google云打印的主要目的是解决传统的打印机与PC机相连要受到打印机驱动的限制,而采取一种免驱动的且支持所有类型打印机的技术标准。其目标是使得桌面操作系统成为打印的通用接口,任何人在任何时候只要使用通用接口就能实现远程打印[4]。
HP的云打印可以简单定义为一项基于互联网的远程打印技术,其本质是智能终端设备到打印机的一种访问控制技术。HP ePrint的工作原理就是为打印机分配一个电子邮箱地址,用户只需发送一封包含待打印文档的电子邮件到打印机地址即可完成打印,其目的是为了推广大量具有云意识功能的打印机的应用[5]。
2014年佳能和百度联合推出了云打印服务,目前正处于测试版阶段。在佳能强有力的硬件和技术支持下,百度云打印给用户带来了自由便捷的云打印体验。目前云打印技术还未成熟,例如:实际测试HP ePrint有时存在文件格式错乱的现象;Google云打印在国内使用较少;百度云打印目前也停留在测试阶段。在分析了云打印体系架构组成的前提下,提出了一种打印设备接入技术及驱动方法,提高了打印设备驱动和文件格式转换的稳定性。
1 传统打印模式
传统打印模式主要包括本地单机打印模式、局域网共享打印模式和网络共享打印模式[6]。
(1)本地打印模式。本地打印模式下一台打印机连接一台PC机,PC机上需安装相应的打印机驱动程序。缺点:打印地点固定且打印机只能由一台PC机控制,降低了打印的便捷性;打印机使用率较低。
(2)局域网共享打印模式。共享打印模式需要一台PC机作为服务器,在其他用户安装打印机驱动程序的前提下,通过局域网向其他用户共享打印设备。缺点:使用范围局限于局域网内;局域网内用户数量有一定的限制;作为服务器的PC主机要一直处于开机状态。
(3)网络打印模式。网络打印不需要配置一台PC机作为服务器,只需将具有网络连接功能的打印机连接到PC所处的网络内,用户就可以直接打印Internet上的文本、数据和图像。缺点:PC机仍需安装相应的打印机驱动程序;对外网环境依赖性强[6]。
2 云打印体系架构及运行模式
2.1 云打印体系架构组成
相比传统打印模式,云打印具有便捷性、开放性、可扩展性等优点。在技术支持和系统平台建设中云打印具备了相关的技术支持和统一的平台,实现对打印资源的按需访问。在云打印服务体系中主要包括云打印资源提供者(Cloud Print Resource Provider,CRP)、云服务提供商(Cloud Service Provider,CSP)和云服务消费者(Cloud Resource Customer,CSC)三种角色[7]。
图1给出了云打印体系架构组成,主要包括硬件层、接入层、服务层和访问层[8]。
硬件层:硬件层主要指由CRP提供的底层打印资源,可以是普通打印设备、专用绘图设备或其他打印设备。
接入层:接入层将底层打印资源进行封装和描述,并通过嵌入式的云打印网络适配器将打印资源接入云打印服务平台,实现打印资源云端化。云打印网络适配器主要实现打印驱动、设备管理、打印任务管理和设备互联等功能[7-8]。
访问层:访问层给用户提供多种服务接口,用户可以使用专用客户端软件、浏览器或其他第三方软件(社交软件、云盘等)提交打印请求。
服务层:服务层给用户提供访问接口,接收访问层发来的打印任务,调用相应的封装函数实现对任务的解析,并通过接入层下发打印任务到打印设备。服务层还包括用户管理、安全管理、支付管理、数据管理、业务管理等功能。
图1 云打印体系架构
2.2 云打印运行模式
云打印资源提供者(CRP)将描述封装后打印资源发布到云打印服务平台,云服务提供商(CSP)整合打印资源,形成大规模、多资源的打印池,并根据云服务消费者(CSC)的需求对资源进行合理的组合和配置,实现动态资源调度[9]。
云打印服务平台综合考虑CSC的地理信息、任务属性、设备状态等因素,实现任务动态分配。打印任务在打印服务站完成,用户可选择自取或物流派送。
3 打印资源云端化理论研究
打印资源云端化是指将底层物理打印设备通过虚拟的网络环境映射到云打印服务平台,使打印资源转变为逻辑上可使用、访问、管理、控制的虚拟打印资源,并实现打印资源的地址分配和任务调度[9]。其实现流程如图2所示。打印资源云端化主要分为以下几个步骤:
图2 打印资源云端化实现流程
(1)打印资源的封装。云打印环境下打印资源具有异构性,首先依据打印设备的统一属性来建立标准封装库,然后根据不同打印设备的地址信息、打印功能、打印能力、打印耗材等自身特征参数来扩充标准封装库,对每一个打印设备建立专有的封装与描述。
(2)打印资源的接入。打印资源的接入是指将封装好的打印资源以虚拟的形式接入云打印服务平台,实现云打印服务平台对打印资源的统一管理和调度。开发基于嵌入式的云打印网络适配器,将云打印网络适配器作为底层打印设备接入云打印服务平台的中间件,对底层打印设备的驱动和打印控制语言进行封装,形成统一的驱动方式和入网协议[9-10]。通过云打印网络适配器获取打印设备的基本属性、性能、工作状态和故障等信息,实现对底层打印设备的反馈控制。
(3)打印资源底层互联。打印资源底层互联是指不同的打印设备可以直接通过云打印网络适配器交互信息,协助完成打印任务,以减轻云打印服务平台的负担,提高服务质量。
4 云打印网络适配器开发
4.1 云打印网络适配器硬件配置
云打印网络适配器作为底层打印设备接入云打印服务平台的中间件,是实现打印资源接入的硬件支持。选用s3c6410作为主控制芯片,主要外设有NAND Flash存储器、SDRAM、以太网接口、USB打印设备接口、UART串行数据接口[11]UART串行数据接口原理图见图3。
(1)电源电路
电路设计为5V和3.3V双电源供电。5V电源由AC-DC-5V开关电源直接提供,并经过AMS1117-3.3芯片稳压到3.3V。
(2)打印设备接口电路
硬件设计使用AU9254A21 USB集线器控制芯片,板载支持4路USB打印接口。
(3)UART串行数据接口电路
在开发时,主要使用UART串行数据接口和上位机终端建立通信。本次设计选用FT232RL芯片,FT232RL可以直接实现USB到串行UART接口的转换,不仅可以省去使用MAX232电平转换芯片,而且简化了电路接口。
图3 UART串行数据接口原理图
(4)以太网接口电路
以太网接口主要用于在云打印网络适配器与云打印服务器之间建立通信,传输打印任务和打印状态等信息。DM9000A是一种高度集成、低成本、具有通用接口的以太网控制芯片,其物理传输速度支持10/100M,内部带有4K双字节SRAM。以太网接口原理图见图4。
图4 以太网接口原理图
4.2 云打印网络适配器打印驱动设计
针对HP打印设备,分析了Linux下打印设备驱动方法,并完成将驱动移植到ARM11处理器。
Linux下HP打印设备打印流程:
首先应用程序将普通的文本文档先转换为PS或PDF格式文档,然后发送至CUPS架构。如果打印机支持PS语言,CUPS可以直接将文件发送至PS打印机实现打印。对于不支持PS语言的打印机,CUPS调用GhostScript应用程序将PostScript/PDF格式文档转换为光栅格式(PBM),然后对于不同的打印机调用其相应的HPLIB过滤器(例如hpijs或foo2zjs)将光栅格式转化为打印机语言,最后将数据发送给打印机实现打印。驱动移植步骤如下:
(1)在编译Linux内核之前配置Linux系统支持USB打印设备。进入内核配置界面[12],选择USB Printer support,将其改为[*]保存退出。在内核文件目录下执行命令:#make zImage。
(2)移植Ghostscript程序。GhostScript程序用于将PostScript/PDF格式文档转换为光栅格式(pbm)。在交叉编译开发环境中编译Ghostscript,编译结束后将会生成gs可执行文件,将该文件拷贝到Linux系统的bin文件夹下。
(3)移植foo2zjs程序。GhostScript负责将postscript格式转换为光栅格式之后,对于HP打印机还需要通过foo2zjs处理,转换为特殊的打印流命令。交叉编译foo2zjs,将生成的的sihp1020.dl、foo2zjs、usb_printerid文件都拷贝至Linux系统的bin目录下。
(4)打印驱动测试。测试打印print.pdf文档使用命令如下:
将pdf或其他格式文件转换为pbm格式文件:
./gs-q-dBATCH-dSAFER-dQUIET-dNOPAUSE-sPAPERSIZE=a4-r580x580-sDEVICE=pbmraw-sOutputFile=print.pbm print.pdf。
使打印节点执行打印:
foo2zjs -z1 -p9 -r600x600 print.pbm > /dev/lp0。
4.3 打印设备状态获取研究
打印任务分配属于一个动态分配问题,打印设备状态会不断变化,如果把一个任务分配给一台已经出现故障的打印设备,将会产生任务阻塞。因此获取打印设备状态是执行任务分配的前提条件。
HPLIP(HP Linux imaging and printing)是linux下的开源打印设备管理系统,HPLIP工作依靠于CUPS程序,HPLIP的主要组件有过滤器、终端、PPD文件和工具包。采用如下步骤来获取打印设备状态信息:
(1)获取打印设备UIR码。UIR是HP打印机的唯一身份识别码。
(2)以特定方式打开设备。打开设备通过调用hpmud_open_device函数来实现,在hpmud.h中定于了7种打开设备的方式。
(3)创建相应通道。通道用于和打印设备进行信息交互,使用hpmud_open_channel函数来创建通道。。
(4)向通道中写入命令。写入命令通过调用hpmud_write_channel函数来实现。对于PJL通信方式,PJL中获取状态的命令为:x1b%-12345X@PJL INFO STATUS/r/n/x1b%-12345X。
(5)读取通道中的数据。读取数据通过调用hpmud_read_channel函数来实现。读取回来的数据中就包含了与打印设备状态相关的信息,将数据与Codes.py中定义的状态码对比即可得到打印设备状态。
4.4 云打印网络适配器任务管理研究
云打印网络适配器主要用于管理一个打印服务站中的多台打印设备,接收来自云服务平台下发的打印任务,完成任务管理和分配。
设任务集合为T={T1,T2,T3...Ti...Tn},Ti表示第i个打印任务。
设集合L={L1,L2,L3...Li...Ln},Li表示第i个打印任务的任务量,
Li=PsCo
(1)
式中,Ps表示所需打印文档的页数,Co表示所需打印份数。
设子任务集合为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为打印设备能够打印纸张的数量,p为该打印设备已经打印纸张的数量,且0≤Rj≤1,Rj越大表示其后备打印能力越大。
设集合S={S1,S2,S3...Sj...Sn},Sj表示第j台打印设备工作状态,取值为-1表示故障,0表示空闲,1表示正在工作。
打印任务分配需要满足如下约束:
(1)每个打印资源在同一时刻内只能对应一个任务,当一个任务打印量较大时,可以将该任务分割成多个子任务,进而分配给多台打印设备处理。
(2)打印资源的打印能力Cj是一定的。
(3)当一个打印资源在执行一个打印任务中出现故障时,该打印资源能够通知调度模块,调度模块将会该打印任务ID号重新放回打印队列,重新分配任务,实现底层设备互联。
打印任务分配流程如图5所示:
首先取出打印任务队列中的第一个任务Ti,然后判断是否需要任务分割。当Li大于默认值时(根据实际设定),将对任务等额分割,产出子任务tin={ti1,ti2,ti3,...tin},当Li小于默认值时Li=ti1,即不对任务进行分割。设备监控模块对打印设备的工作状态Sj,打印能力Cj和后备打印能力Rj等信息定时刷新。当调度模块取到一个任务后,将读取一次所有打印资源的状态信息,并将该任务分配给空闲的设备中具有最大后备打印能力的打印设备。
图5 任务分配流程
5 结论
云打印是云制造由理论走向应用的一种典型实例,是一种以网络为基础的新型打印服务模式。现阶段,云打印服务还不够成熟,本文结合诸多研究者的观点,提出了一种以按需服务为宗旨的云打印体系架构及运行模式,研究了打印资源云端化实现流程。设计了基于Linux的云打印网络适配器,为打印设备接入云打印平台提供了硬件支持,并研究了打印设备驱动方法、设备访问控制技术和任务管理方法,实现了对多台打印设备的访问控制,为建立云打印服务平台提供了思路和基础。
[1] 王思武.云打印服务存在的问题及对策研究[J].统计与管理,2014(9):41-43.
[2] 蔡莉莉,钱海忠,王进华.云打印体系关键技术研究[J].金陵科技学院学报,2015,31(3):36-31.
[3] Jarvis,Deven.Digital Clinic Q+A:Cloud Printing[J].Popular Mechanics,2011,188(12).
[4] 徐文凯.让打印“腾空”浅谈云打印技术[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] 李春泉,张能,尚玉玲,等.云打印体系结构及其关键技术研究[J].组合机床与自动化加工技术,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] 李春泉,何汉钊,张明,等.云制造设备资源组网接入技术研究[J].组合机床与自动化加工技术,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] 许海燕,张曦煌.嵌入式系统Internet打印的设计与实现[J].微计算机信息,2007(2):66-68.
[12] 宋宝华.Linux设备驱动开发详解[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);桂林电子科技大学研究生创新项目(GDYCSZ201443,GDYCSZ201480);广西自动检测技术与仪器重点实验室主任基金(YQ15109)
李春泉(1975—)男,北京人,桂林电子科技大学教授,博士后,研究方向为先进制造技术及微电子制造工程,(E-mail)lichunquan@gmail.com。
TH122;TG506
A