RFC 8011 | Протокол интернет-печати (IPP)/1.1: модель и семантика

RFC 8011 | Протокол интернет-печати (IPP)/1.1: модель и семантика

Аннотация

Протокол интернет-печати (IPP) — это протокол прикладного уровня для распределенной печати с использованием интернет-инструментов и технологий. Этот документ описывает упрощенную модель, состоящую из абстрактных объектов, атрибутов и операций, которая не зависит от кодирования и транспорта. Модель состоит из нескольких объектов, включая принтеры и рабочие места. Задания по выбору поддерживают несколько документов.

Скачать оригинальный документ на английском языке RFC 8011 PDF

 

Семантика IPP позволяет конечным пользователям и операторам запрашивать возможности принтера; отправить задания на печать; узнать о статусе заданий на печать и принтеров; и отмените, удерживайте и отпустите задания на печать. Семантика IPP также позволяет операторам приостанавливать и возобновлять работу и принтеры.

Проблемы безопасности, интернационализации и каталогов также решаются с помощью модели и семантики. Кодирование и транспортировка сообщений IPP описаны в «Протокол печати через Интернет/1.1: Кодирование и транспортировка» (RFC 8010).

Этот документ устарел RFC 2911, 3381 и 3382.

 

Оглавление

1. Введение
1.1. Упрощенная модель печати
2. Условные обозначения, используемые в этом документе
2.1. Требования языка
2.2. Терминология печати
2.3. Терминология модели
2.3.1. Администратор
2.3.2. Атрибуты
2.3.2.1. Имя группы атрибутов
2.3.2.2. Имя атрибута
2.3.2.3. Синтаксис атрибута
2.3.2.4. Значение атрибута
2.3.3. Конечный пользователь
2.3.4. Отпечаток
2.3.5. Входная страница
2.3.6. Операция по созданию задания
2.3.7. Ключевое слово
2.3.8. Медиа Лист
2.3.9. Оператор
2.3.10. Набор
2.3.11. Поддержка атрибутов
2.3.12. Завершение статуса
2.4. Сокращения
3. Объекты IPP
3.1. Принтер объекта
3.2. Задание объекта
3.3. Отношения объекта
3.4. Идентичность объекта
4. Операции IPP
4.1. Общая семантика
4.1.1. Обязательные параметры
4.1.2. Идентификаторы операций и идентификаторы запросов
4.1.3. Атрибуты
4.1.4. Набор символов и атрибуты задания на естественном языке
4.1.4.1. Атрибуты операции Запроса
4.1.4.2. Атрибуты операции Ответа
4.1.5. Операционные цели
4.1.6. Значения кода состояния ответа операции и сообщения о состоянии
4.1.6.1. «status-code» (type2 enum) — код состояния
4.1.6.2. «status-message» (text(255)) — статус-сообщение
4.1.6.3. «detailed-status-message» (text(MAX)) — подробное статус-сообщение
4.1.6.4. «document-access-error» (text(MAX)) — ошибка доступа к документу
4.1.7. Неподдерживаемые атрибуты
4.1.8. Версии
4.1.9. Операции по созданию задания
4.2. Операции с принтером
4.2.1. Операция задания на печать
4.2.1.1. Запрос задания на печать
4.2.1.2. Ответ задания на печать
4.2.2. Операция печати URI
4.2.3. Операция проверки задания
4.2.4. Операция создания задания
4.2.5. Операция получения атрибутов принтера
4.2.5.1. Запрос на получение атрибутов принтера
4.2.5.2. Ответ на получение атрибутов принтера
4.2.6. Операция на получение задания
4.2.6.1. Запрос на получение задания
4.2.6.2. Ответ на получение задания
4.2.7. Операция паузы принтера
4.2.7.1. Запрос паузы принтера
4.2.7.2. Ответ паузы принтера
4.2.8. Операция возобновления работы принтера
4.2.9. Операция очистки заданий
4.3. Операции Задания
4.3.1. Операция отправки документа
4.3.1.1. Запрос отправки документа
4.3.1.2. Ответ отправки документа
4.3.2. Операция отправки URI
4.3.3. Операция отмены задания
4.3.3.1. Запрос отмены задания
4.3.3.2. Ответ отмены задания
4.3.4. Операция получения атрибутов задания
4.3.4.1. Запрос на получение атрибутов задания
4.3.4.2. Ответ на получение атрибутов задания
4.3.5. Операция задержки задания
4.3.5.1. Запрос удержания задания
4.3.5.2. Ответ задержки задания
4.3.6. Операция выпуска задания
4.3.7. Перезапуск задания
4.3.7.1. Запрос перезапуска задания
4.3.7.2. Ответ перезапуска задания
5. Атрибуты объекта
5.1. Синтаксис атрибутов
5.1.1. Значения вне диапазона — ’unknown’, ’unsupported’, ’no-value’ — «неизвестно», «не поддерживается» и «нет значения»
5.1.2. ’text’ — текст
5.1.2.1. ’textWithoutLanguage’ — текст без языка
5.1.2.2. ’textWithLanguage’ — текст с языком
5.1.3. ’name’ — имя
5.1.3.1. ’nameWithoutLanguage’ — имя без языка
5.1.3.2. ’nameWithLanguage’ — имя с языком
5.1.3.3. Соответствующие значения атрибутов ’name’
5.1.4. ’keyword’ — ключевое слово
5.1.5. ’enum’ — перечисление
5.1.6. ’uri
5.1.7. ’uriScheme’ — схема URI
5.1.8. ’charset’ — кодировка»
5.1.9. ’naturalLanguage’ — естественный язык»
5.1.10. ’mimeMediaType’ — медиа типы MIME
5.1.10.1. ’application/octet-stream’ — автоматическое определение формата документа
5.1.11. ’octetString’ — строка октетов
5.1.12. ’boolean’ — логическое
5.1.13. ’integer’ — целое число
5.1.14. ’rangeOfInteger’ — диапазон целых чисел
5.1.15. ’dateTime’ — дата время
5.1.16. ’resolution’ — разрешающая способность
5.1.17. ’collection’ — коллекция
5.1.18. ’1setOf X’
5.2. Атрибуты шаблона задания
5.2.1. job-priority (integer(1:100)) — приоритет задания
5.2.2. job-hold-until (type2 keyword | name(MAX)) — удержание задания
5.2.3. job-sheets (type2 keyword | name(MAX)) — рабочие листы
5.2.4. multiple-document-handling (type2 keyword) — обработка нескольких документов
5.2.5. copies (integer(1:MAX)) — копии
5.2.6. finishings (1setOf type2 enum) — отделки
5.2.7. page-ranges (1setOf rangeOfInteger(1:MAX)) — диапазоны страниц
5.2.8. sides (type2 keyword) — стороны
5.2.9. number-up (integer(1:MAX)) — число вверх
5.2.10. orientation-requested (type2 enum) — запрашиваемая ориентация
5.2.11. media (type2 keyword | name(MAX)) — медиа
5.2.12. printer-resolution (resolution) — разрешение принтера
5.2.13. print-quality (type2 enum) качество печати
5.3. Описание задания и атрибуты статуса
5.3.1. job-id (integer(1:MAX)) — идентификатор задания
5.3.2. job-uri (uri) — URI задания
5.3.3. job-printer-uri (uri) — URI принтера задания
5.3.4. job-more-info (uri) — больше информации о задании
5.3.5. job-name (name(MAX)) — название задания
5.3.6. job-originating-user-name (name(MAX)) — имя пользователя происходящего задания
5.3.7. job-state (type1 enum) — состояние задания
5.3.7.1. Серверы пересылки
5.3.7.2. Разделение состояний задания
5.3.8. job-state-reasons (1setOf type2 keyword) — причины состояния задания
5.3.9. job-state-message (text(MAX)) — сообщение о состоянии задания
5.3.10. job-detailed-status-messages (1setOf text(MAX)) — сообщения о статусе задания
5.3.11. job-document-access-errors (1setOf text(MAX)) — ошибки доступа к документу задания
5.3.12. number-of-documents (integer(0:MAX)) — количество документов
5.3.13. output-device-assigned (name(127)) — назначенное устройство вывода
5.3.14. Атрибуты статуса задания времени события
5.3.14.1. time-at-creation (integer(MIN:MAX)) — время создания
5.3.14.2. time-at-processing (integer(MIN:MAX)) — время обработки
5.3.14.3. time-at-completed (integer(MIN:MAX)) — время завершения
5.3.14.4. job-printer-up-time (integer(1:MAX)) — время работы задания принтера
5.3.14.5. date-time-at-creation (dateTime|unknown) — дата время при создании
5.3.14.6. date-time-at-processing (dateTime|unknown|no-value) — дата время при обработке
5.3.14.7. date-time-at-completed (dateTime|unknown|no-value) — дата время на завершение
5.3.15. number-of-intervening-jobs (integer(0:MAX)) — количество промежуточных заданий
5.3.16. job-message-from-operator (text(127)) — задание сообщение от оператора
5.3.17. Атрибуты размера задания
5.3.17.1. job-k-octets (integer(0:MAX)) — задание k-октеты
5.3.17.2. job-impressions (integer(0:MAX)) — задание отпечатка
5.3.17.3. job-media-sheets (integer(1:MAX)) — задание медиа листы
5.3.18. Атрибуты прогресса задания
5.3.18.1. job-k-octets-processed (integer(0:MAX)) — k-октеты обрабатываются в задании
5.3.18.2. job-impressions-completed (integer(0:MAX)) — задания отпечатка завершены
5.3.18.3. job-media-sheets-completed (integer(0:MAX)) — рабочие медиа листы завершены
5.3.19. attributes-charset (charset) — кодировка атрибутов
5.3.20. attributes-natural-language (naturalLanguage) — атрибуты естественного языка
5.4. Описание принтера и атрибуты состояния
5.4.1. printer-uri-supported (1setOf uri) — поддерживается URI принтера
5.4.2. uri-authentication-supported (1setOf type2 keyword) — поддерживается URI-аутентификация
5.4.3. uri-security-supported (1setOf type2 keyword) — поддержка uri-безопасности
5.4.4. printer-name (name(127)) — имя принтера
5.4.5. printer-location (text(127)) — местоположение принтера
5.4.6. printer-info (text(127)) — информация о принтере
5.4.7. printer-more-info (uri) — больше информации о принтере
5.4.8. printer-driver-installer (uri) — установщик драйвера принтера
5.4.9. printer-make-and-model (text(127)) — изготовитель и модель принтера
5.4.10. printer-more-info-manufacturer (uri) — принтер больше информации о производителе
5.4.11. printer-state (type1 enum) — состояние принтера
5.4.12. printer-state-reasons (1setOf type2 keyword) — причины состояния принтера
5.4.13. printer-state-message (text(MAX)) — сообщение о состоянии принтера
5.4.14. ipp-versions-supported (1setOf type2 keyword) — поддержка ipp-версий
5.4.15. operations-supported (1setOf type2 enum) — поддерживаемые операции
5.4.16. multiple-document-jobs-supported (boolean) — поддерживается работа с несколькими документами
5.4.17. charset-configured (charset) — настроенная кодировка
5.4.18. charset-supported (1setOf charset) — поддержка кодировки
5.4.19. natural-language-configured (naturalLanguage) — настроенный на естественном языке
5.4.20. generated-natural-language-supported (1setOf naturalLanguage) — сгенерированный естественный язык поддерживается
5.4.21. document-format-default (mimeMediaType) — формат документа по-умолчанию
5.4.22. document-format-supported (1setOf mimeMediaType) — поддерживаемый формат документа
5.4.23. printer-is-accepting-jobs (boolean) — принтер принимает задания
5.4.24. queued-job-count (integer(0:MAX)) — количество заданий в очереди
5.4.25. printer-message-from-operator (text(127)) — принтер сообщение от оператора
5.4.26. color-supported (boolean) — поддержкой цвета
5.4.27. reference-uri-schemes-supported (1setOf uriScheme) — поддержка опорных схем uri
5.4.28. pdl-override-supported (type2 keyword) — поддерживается pdl-переопределение
5.4.29. printer-up-time (integer(1:MAX)) — время работы принтера
5.4.30. printer-current-time (dateTime|unknown) — текущее время принтера
5.4.31. multiple-operation-time-out (integer(1:MAX)) — время ожидания нескольких операций
5.4.32. compression-supported (1setOf type2 keyword) — поддерживается сжатие
5.4.33. job-k-octets-supported (rangeOfInteger(0:MAX)) — поддерживаются задания k-октетов
5.4.34. job-impressions-supported (rangeOfInteger(0:MAX)) — поддержка заданий отпечатков
5.4.35. job-media-sheets-supported (rangeOfInteger(1:MAX)) — поддерживаются листы заданий носителя
5.4.36. pages-per-minute (integer(0:MAX)) — страниц в минуту
5.4.37. pages-per-minute-color (integer(0:MAX)) — страниц в минуту цвет
6. Соответствие
6.1. Требования к клиенту
6.2. Требования соответствия объекта IPP
6.2.1. Объекты
6.2.2. Операции
6.2.3. Атрибуты объекта IPP
6.2.4. Версии
6.2.5. Расширения
6.2.6. Синтаксис атрибутов
6.2.7. Безопасность
6.3. Требования к кодировке и естественному языку
7. Соображения IANA
7.1. Расширяемость объектов
7.2. Расширяемость атрибутов
7.3. Расширяемость ключевых слов
7.4. Расширяемость Enum
7.5. Расширяемость группы атрибутов
7.6. Расширяемость значения атрибута вне диапазона
7.7. Расширяемость синтаксиса атрибута
7.8. Расширяемость операций
7.9. Расширяемость кода состояния
8. Вопросы интернационализации
9. Вопросы безопасности
9.1. Сценарии безопасности
9.1.1. Клиент и Cервер в одном домене безопасности
9.1.2. Клиент и Сервер в разных доменах безопасности
9.1.3. Печать по ссылке
9.2. URI в атрибутах операции, задания и принтера
9.3. URI для каждого механизма аутентификации
9.4. Запрещенные Запросы
9.5. Операции, выполняемые Операторами и Администраторами
9.6. Запросы о заданиях, отправленных с использованием протоколов, отличных от IPP
10. Изменения с RFC 2911
11. Ссылки
11.1. Нормативные ссылки
11.2. Информационные ссылки

Приложение А. Форматы для заявок на регистрацию IPP
A.1. Регистрация атрибутов
А.2. Регистрация значения атрибута type2 ’keyword’
А.3. Регистрация значения атрибута type2 ’enum’
А.4. Регистрация операций
А.5. Регистрация кода состояния

 

Приложение B. Значения кода состояния и рекомендуемые сообщения кода состояния
B.1. Значения «Status-Code» — кода состояния
B.1.1. «Информационные» значения кода состояния
B.1.2. «Успешные» значения кодов состояния
B.1.2.1. successful-ok (0x0000) — успешно-нормально
B.1.2.2. successful-ok-ignored-or-substituted-attributes (0x0001) — успешно-нормально-игнорируемые-или-замещенные-атрибуты
B.1.2.3. successful-ok-conflicting-attributes (0x0002) — успешно-нормально-конфликтующие атрибуты
B.1.3. Значения кода состояния «Redirection» — перенаправление
B.1.4. Значения кода состояния «Client Error» — ошибки клиента
B.1.4.1. client-error-bad-request (0x0400) — ошибка клиента плохой запрос
B.1.4.2. client-error-forbidden (0x0401) — ошибка клиента запрещено
B.1.4.3. client-error-not-authenticated (0x0402) — ошибка клиента не аутентифицировано
B.1.4.4. client-error-not-authorized (0x0403) — ошибка клиента не авторизовано
B.1.4.5. client-error-not-possible (0x0404) — ошибка клиента невозможно
B.1.4.6. client-error-timeout (0x0405) — ошибка клиента перерыв
B.1.4.7. client-error-not-found (0x0406) — ошибка клиента не найдено
B.1.4.8. client-error-gone (0x0407) — ошибка клиента ушло израсходовано
B.1.4.9. client-error-request-entity-too-large (0x0408) — ошибка клиента слишком большой объект запроса
B.1.4.10. client-error-request-value-too-long (0x0409) — ошибка клиента значение запроса слишком длинное
B.1.4.11. client-error-document-format-not-supported (0x040a) — ошибка клиента формат документа не поддерживается
B.1.4.12. client-error-attributes-or-values-not-supported (0x040b) — ошибка клиента атрибуты или значения не поддерживаются
B.1.4.13. client-error-uri-scheme-not-supported (0x040c) — ошибка клиента uri-схема не поддерживается
B.1.4.14. client-error-charset-not-supported (0x040d) — ошибка клиента кодировка не поддерживается
B.1.4.15. client-error-conflicting-attributes (0x040e) — ошибка клиента конфликтующие атрибуты
B.1.4.16. client-error-compression-not-supported (0x040f) — ошибка клиента сжатие не поддерживается
B.1.4.17. client-error-compression-error (0x0410) — ошибка клиента ошибка сжатия
B.1.4.18. client-error-document-format-error (0x0411) — ошибка клиента ошибка формата документа
B.1.4.19. client-error-document-access-error (0x0412) — ошибка клиента ошибка доступа
B.1.5. Значения кода состояния «Server Error» — ошибки сервера
B.1.5.1. server-error-internal-error (0x0500) — ошибка сервера внутренняя ошибка
B.1.5.2. server-error-operation-not-supported (0x0501) — ошибка сервера операция не поддерживается
B.1.5.3. server-error-service-unavailable (0x0502) — ошибка сервера сервис недоступен
B.1.5.4. server-error-version-not-supported (0x0503) — ошибка сервера версии не поддерживается
B.1.5.5. server-error-device-error (0x0504) — ошибка сервера ошибка оборудования
B.1.5.6. server-error-temporary-error (0x0505) — ошибка сервера временная ошибка
B.1.5.7. server-error-not-accepting-jobs (0x0506) — ошибка сервера нет принятых заданий
B.1.5.8. server-error-busy (0x0507) — ошибка сервера занято
B.1.5.9. server-error-job-canceled (0x0508) — ошибка сервера задание отменено
B.1.5.10. server-error-multiple-document-jobs-not-supported (0x0509) — ошибка сервера несколько заданий документа не поддерживается
B 2. Значения кода состояния для операций IPP

Приложение C. Обработка атрибутов IPP
C.1. Точность
С.2. Переопределение языка описания страниц (PDL)
С.3. Использование атрибутов шаблона задания при обработке документа

Приложение D. Общая схема каталогов
Подтверждения
Адреса авторов

 

Статус этой заметки

Это документ по отслеживанию стандартов Интернета.

Этот документ является продуктом Инженерной рабочей группы по Интернету (IETF). Он представляет собой консенсус сообщества IETF. Он получил общественное обозрение и был одобрен для публикации Руководящей группой по Интернет-разработкам (IESG). Дополнительная информация о Интернет-стандартах доступна в Разделе 2 RFC 7841.

Информацию о текущем состоянии этого документа, любых ошибках и способах предоставления отзывов о нем можно получить по адресу http://www.rfc-editor.org/info/rfc8011.

 

Уведомление об авторских правах

Copyright (c) 2017 IETF Trust и лица, указанные в качестве авторов документа. Все права защищены.

На данный документ распространяется действие ПП 78 и Правовые положения IETF Trust, относящиеся к документам IETF (http://trustee.ietf.org/license-info), действующие на дату публикации этого документа. Пожалуйста, внимательно ознакомьтесь с этими документами, так как они описывают ваши права и ограничения в отношении этого документа. Компоненты кода, извлеченные из этого документа, должны включать в себя текст упрощенной лицензии BSD, как описано в разделе 4.e Правил доверия, и предоставляются без гарантии, как описано в упрощенной лицензии BSD.

 

1. Введение

Протокол интернет-печати (IPP) — это протокол прикладного уровня для распределенной печати с использованием интернет-инструментов и технологий. Версия 1.1 IPP (IPP / 1.1) фокусируется в основном на функциональности конечного пользователя, включая несколько административных операций. Версии IPP 2.0, 2.1 и 2.2 предоставляют много новых операций и определяются отдельно.

Этот документ является лишь одним из набора документов, которые полностью определяют IPP. Полный комплект документов IETF IPP включает в себя:

  • Цели разработки протокола печати через Интернет [RFC2567]
  • Обоснование структуры модели и протокола для печати через Интернет [RFC2568]
  • Протокол интернет-печати / 1.1: Модель и семантика (данный документ)
  • Протокол интернет-печати / 1.1: Кодирование и транспорт [RFC8010]
  • Протокол интернет-печати / 1.1: Руководство для разработчика [RFC3196]
  • Протокол интернет-печати / 1.1: Схема IPP URL [RFC3510]
  • Протокол интернет-печати (IPP) через транспортную привязку HTTPS и схему URI «ipps» [RFC7472]
  • Протокол интернет-печати (IPP): требования к административным операциям задания, принтера и устройства [RFC3239]
  • Протокол интернет-печати (IPP): задания и операции по настройке принтера [RFC3380]
  • Протокол интернет-печати (IPP): административные операции заданий и принтеров [RFC3998]
  • Протокол интернет-печати (IPP): требования к уведомлениям IPP [RFC3997]
  • Интернет-протокол печати (IPP): уведомления о событиях и подписки [RFC3995]
  • Протокол интернет-печати (IPP): метод доставки ippget для уведомлений о событиях [RFC3996]
  • Сопоставление протоколов LPD и IPP [RFC2569]

Всем, кто читает эти документы впервые, настоятельно рекомендуется прочитать документы IPP в указанном выше порядке. Дополнительные спецификации IPP были опубликованы рабочей группой IPP рабочей группы IEEE-ISTO по печати [PWG-IPP-WG]. Следующие стандарты настоятельно рекомендуются к прочтению:

  • Стандартизированные имена PWG Media 2.0 (MSN2) [PWG5101.1]
  • IPP Finishings 2.0 (FIN) [PWG5100.1]
  • Протокол печати через Интернет (IPP): расширение атрибута «выходной лоток» [PWG5100.2]
  • Протокол интернет-печати (IPP): Атрибуты производственной печати — набор 1 [PWG5100.3] (для атрибута шаблона задания «media-col»)
  • Стандарт для протокола печати через Интернет (IPP): объект документа [PWG5100.5]
  • Стандарт для протокола печати через Интернет (IPP): переопределение страниц [PWG5100.6]
  • Стандарт для протокола печати через Интернет (IPP): продление рабочих мест [PWG5100.7]
  • Стандарт для протокола печати через Интернет (IPP): атрибуты «-actual» [PWG5100.8]
  • Протокол печати через Интернет (IPP): расширения состояния принтера v1.0 [PWG5100.9]
  • Протокол интернет-печати (IPP): задания и расширения принтера — набор 2 (JPS2) [PWG5100.11]
  • IPP версии 2.0, 2.1 и 2.2 [PWG5100.12]
  • IPP: задания и расширения принтера — набор 3 (JPS3) [PWG5100.13]
  • IPP везде [PWG5100.14]
  • Служба факсов IPP [PWG5100.15]
  • Расширения печати на основе транзакций IPP [PWG5100.16]
  • Служба сканирования IPP (SCAN) [PWG5100.17]
  • Расширения общей инфраструктуры IPP (INFRA) [PWG5100.18]
  • Руководство по внедрению IPP v2.0 (IG) [PWG5100.19]

Этот документ организован следующим образом:

  • Остальная часть Раздела 1 представляет собой введение в упрощенную модель IPP для распределенной печати;
  • Раздел 2 определяет терминологию и условные обозначения, используемые в этом документе;
  • Раздел 3 знакомит с типами объектов, описанными в этом документе, с их базовым поведением, атрибутами и взаимодействиями;
  • Раздел 4 определяет основные операции для IPP / 1.1. Операции IPP являются синхронными — каждая операция имеет запрос и ответ;
  • Раздел 5 определяет основные атрибуты (и их синтаксис), которые используются в модели;
  • Разделы 6 и 7 суммируют требования соответствия реализации для объектов, которые поддерживают соображения протокола и IANA соответственно;
  • Разделы 8 и 9 охватывают вопросы интернационализации и безопасности для IPP; а также
  • Приложения предоставляют ссылку на значения кода состояния, обработку атрибутов IPP и общую схему каталогов.

1.1. Упрощенная модель печати

Для достижения своей цели реализации работоспособного протокола печати для Интернета протокол Интернет-печати (IPP) основан на упрощенной модели печати, которая абстрагирует многие компоненты реальных печатных решений. Интернет является распределенной вычислительной средой, в которой заказчики услуг печати (клиенты, приложения, драйверы принтеров и т. Д.) Взаимодействуют и взаимодействуют с поставщиками услуг печати. Этот документ (иногда называемый здесь документом «Модель и семантика») описывает простую абстрактную модель для IPP, даже если базовые конфигурации могут быть сложными «n-уровневыми» системами клиент / сервер. Важным упрощающим этапом в модели IPP является раскрытие только ключевых объектов и интерфейсов, необходимых для печати. Модель, описанная в этом документе, не включает функции, интерфейсы и отношения, которые выходят за рамки IPP / 1.1. IPP / 1.1 включает в себя многие соответствующие идеи и уроки, извлеченные из других спецификаций и разработок [HTPP] [ISO10175] [LDPA] [P1387.4] [PSIS] [RFC1179] [SWP]. На IPP сильно влияет модель печати, представленная в стандарте Приложения для печати документов (DPA) [ISO10175]. Хотя DPA определяет как конечного пользователя, так и административные функции, в IPP / 1.1 основное внимание уделяется функциональности конечного пользователя с несколькими дополнительными необязательными операциями для администраторов и операторов.

Модель IPP включает важные компоненты распределенной печати в следующие типы объектов IPP:

Каждый тип объекта имеет связанный набор операций (см. Раздел 4) и атрибутов (см. Раздел 5).

Однако важно понимать, что в реальных реализациях системы (которые лежат под абстрактной моделью IPP) существуют другие компоненты службы печати, которые явно не определены в модели IPP. На следующем рисунке показано, где IPP подходит по отношению к этим другим компонентам.

Рисунок 1 - Модель протокола IPP
Рисунок 1 — Модель протокола IPP

Объект «IPP Printer» («Принтер») включает функции, обычно связанные с физическими устройствами вывода, а также функции буферизации, планирования и управления несколькими устройствами, часто связанные с сервером печати. Принтеры при желании регистрируются в качестве записей в каталоге, где Конечные пользователи находят и выбирают их на основе какого-то отфильтрованного механизма контекстного поиска (см. Приложение D). Каталог используется для хранения относительно статичной информации о принтере, что позволяет конечным пользователям искать и находить принтеры, которые соответствуют их критериям поиска — например, имя, местоположение, контекст, возможности принтера и т. Д. Более динамичная информация, такая как Состояние загруженного и готового носителя, количество заданий на принтере, ошибки, предупреждения и т. д. напрямую связаны с самим принтером, а не с записью в каталоге, которая ссылается только на принтер.

Клиенты IPP («Клиенты») внедряют IPP на стороне Клиента и дают Конечным пользователям (или программам, выполняющимся от имени Конечных пользователей) возможность запрашивать Принтеры и отправлять задания на печать и управлять ими. Сервер IPP — это та часть объекта Printer, которая реализует протокол на стороне сервера. Остальная часть объекта «Принтер» реализует семантику приложения самой службы печати (или шлюзы). Принтеры могут быть встроены в устройство вывода или реализованы на хосте в сети, который обменивается данными с устройством вывода.

Когда задание отправляется на принтер, и принтер проверяет атрибуты в запросе на отправку, принтер создает новый объект задания IPP («Задание»). Затем конечный пользователь взаимодействует с этим новым заданием, запрашивая его состояние и отслеживая ход выполнения задания. Конечный пользователь также может отменить свои задания на печать, используя операцию отмены задания. Конечный пользователь также может удерживать, отпускать и перезапускать свои задания на печать, используя, если они реализованы, дополнительные операции удержания задания, освобождения задания и повторного запуска задания.

Привилегированный оператор или администратор принтера может отменить, удержать, разблокировать и перезапустить любое задание пользователя, используя ОБЯЗАТЕЛЬНОЕ задание отмены и необязательные операции удержания задания, освобождения задания и повторного запуска задания. Кроме того, привилегированный оператор или администратор принтера может приостановить, возобновить или очистить (задание) принтера с помощью опциональных операций Pause-Printer, Resume-Printer и Purge-Jobs, если они реализованы.

Служба уведомлений определена в «Протокол печати через Интернет (IPP): уведомления о событиях и подписки» [RFC3995]. Используя такую службу уведомлений, Конечный пользователь может асинхронно регистрироваться и получать события, относящиеся к принтеру и заданию. В противном случае конечный пользователь может запросить состояние принтеров и может отслеживать ход выполнения заданий, опрашивая операции Get-Printer-Attributes, Get-Jobs и Get-Job-Attributes.

 

2. Условные обозначения, используемые в этом документе

2.1. Требования языка

Ключевые слова «ОБЯЗАН — MUST», «НЕ ОБЯЗАН — MUST NOT», «ТРЕБУЕТСЯ — REQUIRED», «ДОЛЖЕН — SHALL», «НЕ ДОЛЖЕН — SHALL NOT», «СЛЕДУЕТ — SHOULD», «НЕ СЛЕДУЕТ — SHOULD NOT», «РЕКОМЕНДУЕТСЯ — RECOMMENDED», «НЕ РЕКОМЕНДУЕТСЯ — NOT RECOMMENDED», «ВОЗМОЖЕН — MAY» и «ДОПОЛНИТЕЛЬНО — OPTIONAL» в этом документе интерпретироваться как описано в [RFC2119].

1. ОБЯЗАН — MUST. Это слово или термины «ТРЕБУЕТСЯ — REQUIRED» или «ДОЛЖЕН — SHALL» означают, что определение является абсолютным требованием спецификации.

2. НЕ ОБЯЗАН — MUST NOT. Эта фраза или фраза «НЕ ДОЛЖЕН — SHALL NOT» означают, что определение является абсолютным запретом спецификации.

3. СЛЕДУЕТ — SHOULD. Это слово или прилагательное «РЕКОМЕНДУЕТСЯ — RECOMMENDED» означают, что могут существовать веские причины в определенных обстоятельствах игнорировать конкретный элемент, но все последствия должны быть поняты и тщательно взвешены, прежде чем выбрать другой курс.

4. НЕ СЛЕДУЕТ — SHOULD NOT. Эта фраза или фраза «НЕ РЕКОМЕНДУЕТСЯ — NOT RECOMMENDED» означают, что могут существовать веские причины в определенных обстоятельствах, когда конкретное поведение является приемлемым или даже полезным, но все последствия должны быть поняты, а случай тщательно взвешен, прежде чем реализовывать какое-либо поведение. описано с этим ярлыком.

5. ВОЗМОЖЕН — MAY. Это слово, или прилагательное «ДОПОЛНИТЕЛЬНО — OPTIONAL», означает, что предмет действительно необязателен. Один продавец может включить товар, потому что этого требует конкретный рынок, или потому что продавец чувствует, что он улучшает продукт, в то время как другой продавец может опустить тот же товар. Реализация, которая не включает в себя конкретную опцию, «ОБЯЗАН — MUST» быть подготовлена ​​к взаимодействию с другой реализацией, которая включает опцию, хотя, возможно, с уменьшенной функциональностью. В том же духе реализация, которая включает конкретную опцию, «ОБЯЗАН — MUST» быть подготовлена ​​к взаимодействию с другой реализацией, которая не включает эту опцию (за исключением, конечно, функции, предоставляемой опцией).

Ключевое слово «УСТАРЕЛО» в этом документе относится к операции, атрибуту или значению, которые НЕ ДОЛЖНЫ использоваться или поддерживаться в новых реализациях.

2.2. Терминология печати

Клиент: Инициатор исходящих запросов сеанса IPP и отправитель исходящих запросов операции IPP (пользовательский агент протокола передачи гипертекста (HTTP / 1.1), как определено в [RFC7230]).

Документ: объект, созданный и управляемый принтером, который содержит описание, обработку и информацию о состоянии. Объект Document может иметь прикрепленные данные и привязан к одному заданию [PWG5100.5].

URI «ipp»: URI IPP, как определено в [RFC3510].
URI «ipps»: URI IPP, как определено в [RFC7472].

Задание: объект, созданный и управляемый принтером, который содержит описание, обработку и информацию о состоянии. Задание также содержит ноль или более объектов Document.

Логическое устройство: сервер печати, служба программного обеспечения или шлюз, который обрабатывает задания и либо пересылает, либо сохраняет обработанное задание, либо использует одно или несколько физических устройств для визуализации вывода.

Устройство вывода: одно логическое или физическое устройство.

Физическое устройство: аппаратная реализация устройства конечной точки, например механизм маркировки, факс-модем и т. Д.

Принтер: прослушиватель для входящих запросов сеанса IPP и приемник входящих запросов операции IPP (сервер HTTP / 1.1, как определено в [RFC7230]), который представляет одно или несколько физических устройств или логическое устройство.

2.3. Терминология модели

2.3.1. Администратор

Конечный пользователь, который также уполномочен управлять всеми аспектами устройства вывода или принтера, включая создание экземпляров принтера и управление авторизацией других конечных пользователей и операторов [RFC2567].

2.3.2. Атрибуты

Атрибут — это элемент информации, который связан с экземпляром объекта IPP (принтер, задание и т. д.). Атрибут состоит из имени атрибута и одного или нескольких значений атрибута. Каждый атрибут имеет определенный синтаксис атрибута. Все атрибуты объекта определены в Разделе 5, а все атрибуты операций определены в Разделе 4.

Атрибуты шаблона задания описаны в разделе 5.2. Клиент дополнительно предоставляет атрибуты шаблона задания в запросе на создание задания (запросы операции, которые создают объекты задания). Объект «Принтер» имеет связанные атрибуты, которые определяют поддерживаемые значения по умолчанию для принтера.

2.3.2.1. Имя группы атрибутов

Связанные атрибуты сгруппированы в именованные группы. Название группы является ключевым словом. Имя группы можно использовать вместо явного именования всех атрибутов в группе. Группы атрибутов определены в разделе 4.

2.3.2.2. Имя атрибута

Каждый атрибут уникально идентифицирован в этом документе по имени атрибута. Имя атрибута является ключевым словом. Имя атрибута ключевого слова дается в заголовке раздела в этом документе, который описывает этот атрибут. При выполнении текста в этом документе имена атрибутов указываются внутри двойных кавычек («), где кавычки не являются частью самого ключевого слова.

2.3.2.3. Синтаксис атрибута

Каждый атрибут определяется с использованием явного синтаксического типа. В этом документе каждый тип синтаксиса определяется как ключевое слово с определенным значением. Документ «Кодирование и транспорт» [RFC8010] указывает действительные правила кодирования «на проводе» для каждого типа синтаксиса. Типы синтаксиса атрибутов определены в разделе 5.1.

2.3.2.4. Значение атрибута

Каждый атрибут имеет одно или несколько значений. Значения атрибута представлены в синтаксическом типе, указанном для этого атрибута. При выполнении текста в этом документе значения атрибутов указываются внутри одинарных кавычек (’), независимо от того, является ли их синтаксис атрибута ключевым словом, целым числом, текстом и т. д., Где кавычки не являются частью самого значения.

2.3.3. Конечный пользователь

Конечный пользователь — это лицо или программный процесс, которому разрешено выполнять основные функции печати, включая поиск / обнаружение принтера, создание локального экземпляра принтера, просмотр состояния принтера, просмотр возможностей принтера, отправку задания на печать, просмотр состояния задания на печать. и изменение атрибутов задания на печать [RFC2567].

2.3.4. Отпечаток

Отпечаток — это содержимое, наложенное на одну сторону листа носителя с помощью механизма маркировки, независимо от того, сколько раз сторона листа прошла какой-либо маркер. Impression содержит одну или несколько входных страниц, которые накладываются (масштабируются, переводятся и / или поворачиваются) во время обработки данных документа.

2.3.5. Входная страница

Страница ввода — это страница в соответствии с определением «страниц» на языке, который используется для выражения данных документа.

2.3.6. Операция по созданию задания

Операция создания задания — это любая операция, которая вызывает создание объекта задания, например операции Create-Job, Print-Job и Print-URI, определенные в этом документе.

2.3.7. Ключевое слово

Ключевые слова используются в этом документе в качестве идентификаторов семантических объектов в абстрактной модели (см. Раздел 5.1.4). Имена атрибутов, некоторые значения атрибутов, синтаксисы атрибутов и имена групп атрибутов представлены в виде ключевых слов.

2.3.8. Медиа Лист

Лист носителя — это отдельный экземпляр носителя, независимо от того, выполняется ли печать на одной или обеих сторонах носителя. Носители также включают разделы рулонных носителей.

2.3.9. Оператор

Оператор — это Конечный пользователь, который также имеет особые права на устройство вывода или принтер. Оператор обычно контролирует состояние принтера, а также управляет заданиями на устройстве вывода [RFC2567] и контролирует их. Оператор может запрашивать и контролировать принтер, задания и документы на основе политики сайта.

2.3.10. Набор

Набор — это логическая граница между доставленными листами печатных материалов. Например, в случае единого документа на десять страниц с разбором страниц и запроса на 50 копий каждая из 50 печатных копий документа составляет набор. Если бы страницы не были совмещены, то 50 экземпляров каждой из отдельных страниц в документе представляли бы каждый комплект. Отделочные процессы работают на наборах.

2.3.11. Поддержка атрибутов

По определению принтер поддерживает атрибут только в том случае, если этот принтер принимает его в запросе или отвечает соответствующим атрибутом, заполненным некоторыми значениями в ответе на запрос этого атрибута. Принтер поддерживает значение атрибута, если это один из атрибутов «поддерживаемых значений» принтера. Устройство позади принтера может демонстрировать поведение, которое соответствует некоторому атрибуту IPP, но если принтер, когда запрашивается для этого атрибута, не отвечает с атрибутом, то, что касается IPP, эта реализация не поддерживает эту функцию , Если атрибут «xxx-поддерживаемый» принтера не заполнен конкретным значением (даже если это значение является допустимым значением для этого атрибута), то этот принтер не поддерживает это конкретное значение.

Соответствующая реализация поддерживает все ОБЯЗАТЕЛЬНЫЕ атрибуты. Однако даже для ОБЯЗАТЕЛЬНЫХ атрибутов соответствие IPP не требует, чтобы все реализации поддерживали все возможные значения, представляющие все возможные способы и функции обработки заданий. Например, если данный экземпляр принтера поддерживает только определенные форматы документа, то этот принтер отвечает атрибутом «document-format-support», заполненным набором значений или, возможно, только одним значением, взятым из всего возможного набора значения, определенные для этого атрибута. Этот ограниченный набор значений представляет набор поддерживаемых форматов документов для принтера. Поддержка атрибута и некоторого набора значений для этого атрибута позволяет конечным пользователям IPP знать и использовать функции, связанные с этим атрибутом, и этими значениями. Если реализация решит не поддерживать атрибут или какое-либо конкретное значение, то конечные пользователи IPP не смогут использовать эту функцию в контексте самого IPP. Однако из-за существующей практики и унаследованных систем, которые не поддерживают IPP, может быть какой-то другой механизм, выходящий за рамки IPP, для управления или запроса «неподдерживаемой» функции (такой как встроенные инструкции в самих данных документа).

Например, рассмотрим следующее для атрибута «finishings-supported» (отделка поддерживается).

1) Если принтер физически не способен сшивать, атрибут «отделка поддерживается» НЕ ДОЛЖЕН заполняться значением «сшивание».

2) принтер физически способен сшивать; однако реализация выбирает не поддерживать сшивание в атрибуте «отделки» IPP. В этом случае, «штапель» НЕ ДОЛЖЕН быть значением в атрибуте «Описание отделки поддерживается». Без поддержки значения ‘staple’ у конечного пользователя IPP не будет средств в самом протоколе для запроса сшивания задания. Однако существующий форматер данных документа может быть в состоянии запросить сшивание документа напрямую с помощью встроенной инструкции в данных документа. В этом случае реализация IPP не поддерживает «сшивание»; однако, Конечный пользователь все еще может иметь некоторый контроль над сшиванием завершенного задания.

3) Принтер физически способен сшивать, а реализация выбирает поддержку сшивания в атрибуте IPP «отделка». В этом случае, «штапель» ДОЛЖЕН быть значением в атрибуте принтера «отделка поддерживается». Это позволяет конечным пользователям узнавать и использовать функцию сшивания с использованием атрибутов IPP.

Несмотря на то, что поддержка атрибутов шаблонов заданий принтером является необязательной в IPP / 1.1, принтеры, чье связанное устройство (устройства) способно реализовать любую функцию или функцию, соответствующую атрибуту IPP и некоторому связанному значению, ДОЛЖНЫ поддерживать этот атрибут и значение IPP.

Набор значений в любом из поддерживаемых атрибутов значений устанавливается (заполняется) каким-либо административным процессом или механизмом автоматического определения, который выходит за рамки этого документа. Из соображений административной политики и контроля Администратор может сделать так, чтобы конечному пользователю было доступно только подмножество возможных значений. В этом случае реальное устройство вывода за абстракцией принтера IPP может быть способным к определенной функции; однако администратор указывает, что доступ к этой функции не будет предоставляться конечному пользователю через IPP. Кроме того, поскольку принтер может представлять логическое устройство печати (а не только физическое устройство), фактический процесс поддержки значения не определен и оставлен на усмотрение реализации. Однако, если принтер поддерживает значение, для реализации семантического действия, связанного со значением, могут потребоваться какие-то ручные действия со стороны человека, но действия конечного пользователя не требуются.

Например, если одно из значений в атрибуте «отделка поддерживается» — «сшивание», фактическим процессом может быть автоматическое сшивание физическим устройством, управляемое какой-либо командой, отправленной на устройство. Или фактический процесс сшивания может быть ручным действием оператора на принтере с участием оператора.

В качестве другого примера функционирования поддерживаемых атрибутов рассмотрим администратора, который хочет контролировать все задания на печать, чтобы листы заданий не печатались для экономии бумаги. Чтобы запретить использование листов заданий, администратор устанавливает единственное поддерживаемое значение для атрибута «поддерживаются листы заданий» равным «нет». В этом случае, если клиент запрашивает что-либо, кроме «none», запрос на создание задания отклоняется или значение «листов заданий» игнорируется (в зависимости от значения «ipp-attribute-fidelity»). Чтобы принудительно использовать начальные / конечные листы заданий во всех заданиях, администратор не включает значение «none» в атрибут «поддерживаются задания». В этом случае, если клиент запрашивает «нет», запрос на создание задания отклоняется или значение «листы заданий» игнорируется (опять же, в зависимости от значения «ipp-attribute-fidelity»).

Атрибуты шаблона задания обычно будут иметь соответствующие атрибуты «Описание принтера» с поддержкой xxx и «xxx-default», которые содержат поддерживаемые значения и значения по умолчанию для этого атрибута. Для возможностей, которые не связаны с заданием, соглашение должно иметь атрибут «Описание ххх», поддерживаемый принтером, в котором перечислены поддерживаемые значения, и «Ххх-сконфигурированный» атрибут описания принтера, который содержит значение, используемое принтером. Например, атрибут «Описание поддерживаемого charset» принтера (раздел 5.4.18) содержит список поддерживаемых наборов символов для принтера, в то время как атрибут «Описание набора символов» для принтера (раздел 5.4.17) указывает набор символов, используемый Принтер.

2.3.12. Завершение статуса

Конечное состояние для задания или другого объекта называется его завершающим состоянием. Например, состояния «прервано», «отменено» и «выполнено» — это состояния завершения.

2.4. Сокращения

ABNF: Augmented Backus-Naur Form [RFC5234]
ASCII: American Standard Code for Information Interchange [RFC20]
HTTP: Hypertext Transfer Protocol [RFC7230]
HTTPS: HTTP over TLS [RFC2818]
IANA: Internet Assigned Numbers Authority
IEEE: Institute of Electrical and Electronics Engineers
IESG: Internet Engineering Steering Group
IPP: Internet Printing Protocol (this document, [RFC8010], and [PWG5100.12])
ISTO: IEEE Industry Standards and Technology Organization
LPD: Line Printer Daemon Protocol [RFC1179]
PWG: IEEE-ISTO Printer Working Group
RFC: Request for Comments
TCP: Transmission Control Protocol [RFC793]
TLS: Transport Layer Security [RFC5246]
URI: Uniform Resource Identifier [RFC3