УДК 004.7
Аннотация
Тырса С.В., Хубеджев Д.П., Моргайлов Д.Д. Проектирование архитектуры централизованного кроссплатформенного протокола сетевой печати. Выполнен анализ возможностей современных протоколов сетевой печати, выявлены их недостатки и ограничения. Выделены основные требования функциональным характеристикам протоколов сетевой печати. Предложена архитектура централизованного кроссплатформенного протокола сетевой печати.
Ключевые слова: сетевая печать, протокол удаленной печати, централизованная архитектура, кроссплатформенный протокол.
Постановка проблемы. Сетевой протокол печати представляет собой набор правил и действий, которые позволяют выполнить удаленную печать документа.
На данный момент большинство протоколов удаленной печати не удовлетворяют требованиям кроссплатформенности. Зачастую они привязаны к конкретной операционной системе и не позволяют выполнять печать документов тех форматов, которые не поддерживаются операционной системой. Кроме того, большая часть современных протоколов печати реализует доступ к сетевому принтеру исключительно по его адресу, не обеспечивая при этом агрегацию компьютеров в единую виртуальную сеть для предоставлению пользователю информацию о всех доступных принтерах, подключенных к ним.
Цель статьи – анализ возможностей современных протоколов сетевой печати и разработка архитектуры централизованного кроссплатформенного протокола печати.
Анализ современных протоколов печати. Наиболее популярными протоколами сетевой печати являются Microsoft Network Printing, Internet Printing Protocol, FTP Printing, SMTP/POP3 Printing и другие [1].
Протокол Microsoft Network Printing (MNP) является стандартным для операционных систем семейства Windows [1]. Он основан на универсальных протоколах SMB (англ. Server Message Block) и RPC (англ. Remote Procedure Call). Главными достоинствами MNP являются полная поддержка всех возможностей операционных систем Windows и простота в использовании. Для корректной работы протокола необходимо рассылать драйвера принтера на все устройства в данной сети, что делает печать невозможной в случае, когда в сети участвуют устройства, работающие под операционными системами семейства GNU/Linux или Apple Mac OS/OS X. Ещё одним недостатком данной системы является неполноценная работа с IPP (англ. Internet Printing Protocol), что могло бы решить большинство вышеперечисленных проблем.
Internet Printing Protocol (IPP) [2] является переосмысленной версией протокола передачи гипертекста HTTP. Использование IPP существенно упрощает установку принтера на локальной клиентской машине: достаточно указать URL/printers/ и выбрать предпочтительный для клиента принтер из списка. Проблема использования протокола заключается в том, что принтеры, по сути, не собраны в сети, а пользователю приходится явно указывать IP-адреса устройств с подключенным принтером. К тому же, для Windows-систем потребуется установка дополнительного программного обеспечения для работы с протоколом.
Протокол передачи файлов File Transfer Protocol (FTP) [3] адаптируется для нужд печати: каждый принтер, подключённый к серверу, представляется отдельным каталогом, либо существует только корневой каталог, если у сервера всего один порт для принтера. Данный протокол имеет те же недостатки, что и IPP.
Печать посредством протоколов SMTP [4] и POP3 [5] аналогична печати через FTP, только обмен происходит не файлами, а почтовыми сообщениями с вложением файлов. В режиме SMTP сервер печати выглядит как почтовый сервер, принимая подключения и извлекая все файлы из сообщений, чтобы отправить их на принтер. Выбор принтера происходит по имени почтового ящика адресата. В режиме POP3 сервер печати выглядит как почтовый клиент, периодически опрашивая заданный почтовый сервер о наличии новых сообщений, и вы отправляете задания именно на почтовый сервер, но не на сервер печати.
Проектирование архитектуры централизованного протокола печати. Разрабатываемый протокол имеет клиент-серверную архитектуру, в
которой присутствует выделенный центральный сервер, отвечающий за хранение адресов клиентов и общего списка принтеров, а также прием и отправку запросов печати (рис. 1).
Для каждого клиента создается прослушивающий поток, который отлавливает и обрабатывает команды клиента. Клиент, в свою очередь, работает по схеме, показанной на рис. 2.
При старте клиентской программы создается управляющее соединение с центральным сервером, по которому отправляется информация о списке принтеров, подключенных к клиентскому компьютеру. Сервер формирует общий список сетевых принтеров и отправляет их обратно на клиент.
Для передачи файлов на печать создается соединение данных с центральным сервером. На сервере формируются очереди печати для каждого принтера, периодически опрашиваемые клиентскими программами на наличие задач печати.
Клиенты взаимодействуют с сервером посредством кодов команд. Первый байт является уникальным кодом команды. Следующие байты в зависимости от команды могут означать имена/адреса клиентов-приемников или параметры команды, если они требуются.
Центральный сервер обрабатывает запросы печати в асинхронном режиме с использованием пула потоков обслуживания, тем самым увеличивается скорость его работы и не позволяя «медленным» запросам надолго заблокировать процесс обработки.
В основе разрабатываемого протокола печати лежит протокол TCP (рис. 3). Посредством протокола TCP осуществляется мониторинг состояния принтеров в сети, отправка и приём файлов печати.
Для достижения кроссплатформенности протокола используются конвертеры. Это позволило печатать документы «неродных» для операционной системы клиента форматов. Конвертация документа осуществляется в формат .pdf, который является одним из базовых для операционных систем Windows, GNU/Linux, Apple Mac OS/OS X. Применяемые средства конвертации поддерживает форматы документов Microsoft Office, Apache OpenOffice, Apple iWork.
В качестве конвертеров используются стандартные возможности вышеперечисленных программных пакетов, поскольку такой подход гарантирует наиболее точное преобразование. Таким образом, конвертация документов происходит без потери форматирования.
Конвертация выполняется посредством утилит VBScript (MS Office for Windows), AppleScript (MS Office, iWork for Mac) и библиотеки JOD Converter (AOO Windows/OS X).
Выводы. В рамках данной работы был выполнен анализ современных протоколов удаленной печати, спроектирован кроссплатформенный централизованный протокол удаленной печати документов.
В качестве направления дальнейшей работы планируется разработка распределенной архитектуры протокола с несколькими серверами, расположенными в разных сегментах сети, а также системы «умного» поиска потенциального сервера в сети. Кроме того, планируется дополнить протокол поддержкой веб-интерфейса и популярных мобильных платформ Google Android и Apple iOS.
Список литературы
Протоколы сетевой печати [электронный ресурс] // More PC: [информационно-справочный портал]. [2006]. URL: http://www.morepc.ru/net/print/printing_protocols.html
RFC 2910. Internet Printing Protocol/1.1: Encoding and Transport [текст] / Network Working Group; R. Herriot; S. Butler; P. Moore; P. Turner; J. Wenn. [cентябрь, 2003]. – URL: https://tools.ietf.org/html/rfc2910
RFC 448. Print files in FTP [текст] / Network Working Group; R.T. Braden. [февраль, 1973]. – URL: https://tools.ietf.org/html/rfc448
RFC 5321. Simple Mail Transfer Protocol [текст] / Network Working Group; J. Klensin. [октябрь, 2008]. – URL: https://tools.ietf.org/html/rfc5321
RFC 1939. Post Office Protocol - Version 3 [текст] / Network Working Group; J. Myers; M. Rose; [май, 1996]. – URL: https://tools.ietf.org/html/rfc1939