ISO/IEC 29341-7-11 — UPnP 打印机设备 — 作业服务 v2

打印机作业服务 v2 — 作业管理、事件通知、优先级调度与核算

UPnP打印机作业服务v2架构

ISO/IEC 29341-7-11定义了打印机作业服务v2,这是UPnP打印机设备v2规范的核心组件,为提交到网络打印机的打印作业提供标准化管理。作业服务通过提供对单个打印作业的精细控制——作业进度跟踪、作业取消、作业优先级管理和详细的作业核算信息——补充了基本服务(作业提交)和状态服务(设备监控)。该服务由URN标识。

将打印功能分为三个不同的服务——基本服务、状态服务和作业服务——遵循UPnP的服务粒度原则,允许设备仅实现它们需要的服务。简单的打印机可能只实现基本和状态服务,而具有高级作业管理功能的生产型多功能打印机则实现所有三个服务。

作业服务维护一个作业表,包含每个活动、排队和最近完成的作业条目。每个作业条目包括提交时分配的唯一JobID、作业当前状态(待处理、处理中、已完成、已取消、异常终止)、优先级级别、提交时间、处理时间、页数和客户端标识信息。该服务支持通过GetJobInfo查询单个作业详情,或通过GetJobList枚举所有作业。可以按状态或客户端ID过滤作业。

作业状态 描述 可取消? 可暂停? 转换至
待处理 已排队,尚未开始 不适用 处理中
处理中 正在打印 已完成、已暂停、已取消、异常终止
已暂停 打印已挂起 不适用 处理中、已取消
已完成 成功完成 终止状态
已取消 用户请求停止 终止状态
异常终止 因错误失败 终止状态

作业管理动作与事件通知

作业服务提供丰富的管理动作集。GetJobList根据状态、客户端ID或其他条件返回过滤后的作业条目列表。GetJobInfo返回指定作业的详细信息,包括当前状态、进度指标和作业属性。CancelJob请求终止指定作业,由服务负责优雅地中止打印流并重置打印机状态。PauseJob和ResumeJob允许临时挂起和继续活动作业——对于中断长打印任务以处理紧急作业特别有用。

CancelJob动作需要在打印机端仔细实现。简单地在页面中间终止打印流可能使打印机处于不一致状态。作业服务规范建议打印机在取消前完成当前页面的渲染,然后从输入缓冲区刷新任何部分接收的作业数据。对于暂停的作业,服务必须维护足够的状态信息以便从精确的中断点恢复。

作业事件通知是该服务的关键特性。通过UPnP事件通知机制,控制点可以订阅JobState事件通知,并在作业通过状态机推进时接收实时更新。服务还通过JobListChanged状态变量提供聚合事件通知,每当作业表被修改时触发。这使得打印管理控制台无需轮询即可维护打印机作业队列的同步视图。

作业服务v2相比v1引入了增强的作业优先级管理。作业可以分配从1(最高)到100(最低)的优先级级别,默认优先级为50。服务必须严格按照优先级顺序处理作业,相同优先级作业之间采用轮询调度。这使得企业打印管理系统能够确保时间敏感文档优先于批量报告打印。

作业核算是另一个重要功能。服务跟踪每个已完成作业的资源消耗:使用的纸张数量、碳粉覆盖率百分比、总处理时间和作业提交到完成的周期时间。此信息通过GetJobAccounting动作可访问,并可导出用于计费核算、部门成本分摊和环境可持续性报告。服务根据可配置的保留策略在作业表中保留已完成作业的核算记录。

错误处理与恢复

健壮的错误处理对作业服务至关重要。当打印机在作业处理过程中遇到错误时,受影响的作业转换为”已暂停”状态而非立即变为”异常终止”,给操作员解决问题和恢复打印的机会。JobServiceErrorStatus变量提供与受影响作业ID相关的详细错误信息。服务为临时错误实现可配置的重试策略——例如,卡纸清除后自动重试作业而无需操作员干预。

作业服务的一个关键设计考虑是跨打印机电源周期的作业数据持久性。规范建议将活动作业数据存储在非易失性存储器中,以便排队的作业在意外断电后仍能保留。电源恢复后,服务应恢复作业表,将任何中断的作业标记为”异常终止”并附带指示电源故障的错误码,然后准备好接受新提交。未能实现适当的持久性可能导致打印作业丢失和用户不满。

服务还定义了与基本服务和状态服务的跨服务协调要求。当基本服务提交新作业时,它必须通知作业服务创建相应的作业条目。当状态服务检测到阻止打印的严重错误时,它必须与作业服务协调以暂停受影响的作业。UPnP设备规范要求所有三个服务从一致的状态机运行并共享相同的作业表,确保通过作业服务取消的作业立即反映在基本服务的作业跟踪和状态服务的队列大小报告中。

问:作业服务如何处理同时提交的多个作业?

答:服务通过基本服务序列化作业提交并分配顺序的JobID。所有提交的作业进入作业表中的”待处理”状态。打印机按优先级顺序处理作业,相同优先级作业采用轮询调度。每次作业表修改后触发JobListChanged事件通知,保持所有订阅的控制点同步。

问:作业服务能否区分不同用户?

答:可以。每个作业条目包含标识提交作业的用户或应用程序的JobOriginatingUserID字段。这实现了按用户跟踪作业、执行使用配额和部门计费。该字段值通常在作业提交期间由基本服务基于认证的用户身份设置。

问:作业在打印中途被取消会发生什么?

答:打印机应完成当前页面的渲染,然后丢弃所有剩余作业数据。如果该作业是唯一正在打印的作业,打印机转换回空闲状态。其他排队的作业不受影响。如果暂停的作业被取消,打印机丢弃任何部分渲染的页面并从作业表中完全移除该作业。

问:已完成作业在作业表中保留多长时间?

答:保留周期通过JobHistoryLimit状态变量配置。典型配置将已完成作业记录保留最短30分钟到最长数天。一旦达到保留限制,最早完成的作业条目自动从作业表中移除。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注