Область техники
Изобретение относится, в целом, к компьютерным сетевым системам и, в частности, к распечатыванию документов в сетевой среде.
Предпосылки изобретения
В традиционных сетях, содержащих принтеры, сервер печати связан с одним или несколькими физическими принтерами и с одним или несколькими клиентами печати. Обычно эти компьютеры-клиенты посылают информацию, подлежащую распечатыванию, в виде документа, именуемого заданием печати, кодированного в некотором промежуточном формате данных, на сервер печати совместно с информацией о том, какой принтер надлежит использовать. Получив задание печати и информацию о принтере, сервер печати маршрутизирует задание в соответствующую очередь печати, связанную с выбранным принтером. Когда сервер печатает задания из очереди на присоединенный принтер, он интерпретирует и «транслирует» задания печати с использованием сохраненной информации, касающейся принтера, в том числе административных настроек, настроек принтера и драйвера принтера. Затем сервер печати «транслирует» задания печати из перенесенного промежуточного формата данных на собственный язык принтера и отправляет их на принтер. Процесс «трансляции» - это просто преобразование из некоторого промежуточного формата данных в окончательный формат, зависящий от принтера, который можно направлять непосредственно на принтер.
Эта технология тонкого клиента и надежного сервера обладает рядом недостатков. Важнейшей проблемой «трансляции» на сервере, наделенном максимальными ресурсами, является трудность масштабирования серверных сетей. Поскольку клиенты располагают незначительными возможностями печати, при передаче этих заданий на сервер количество активно печатающих клиентов, подключенных к серверу печати, должно быть строго ограниченным во избежание перегрузки сервера. Другая трудность состоит в том, что к заданию печати, поступившему на сервер, применяются административные настройки и настройки принтера без ведома клиента. Если клиент не знает, какие административные настройки действуют, фактический результат печати может быть непредсказуемым. Еще один недостаток обычной сетевой печати проявляется в тех случаях, когда клиент направляет задание печати в промежуточном формате данных, заданном драйвером конкретного принтера. Если по какой-то причине на сервере и на клиенте хранятся разные драйверы принтера, то сервер может не справиться с переводом этого промежуточного формата данных, что приведет к снижению производительности печати. Наконец, поскольку очередь заданий печати формируется только на сервере, «трансляция» на сервере препятствует автономной печати. В обычной сети печати, когда сервер работает автономно, клиент не только не способен использовать принтер, подключенный к этому серверу, но и не может помещать документы в очередь для этого автономного принтера. Таким образом, пользователю клиента, чтобы распечатать конкретный документ, приходится следить, когда сервер снова станет доступен. В некоторых вариантах реализации сетевой печати удалось решить некоторые, но не все, вышеописанные проблемы. Так, например, в некоторых сетях печати поддерживается «трансляция» на клиенте. В реализации «трансляции» на клиенте сервер печати маршрутизирует задания печати на соответствующие принтеры, но «трансляцию» документа в промежуточном формате данных на собственный язык принтера осуществляет клиент. Хотя клиенты способны передавать этот документ на сервер печати в формате принтера, проблема состоит в том, что при таком форматировании клиент может применить административные настройки, не совпадающие с теми, которые хранятся на сервере. Кроме того, автономная «трансляция» документа клиентом может нарушать административные мандаты и потому часто бывает запрещена.
В других сетях печати предусмотрена передача клиенту административных настроек, но клиент не может «транслировать» документ и, вместо этого, направляет промежуточный формат данных для «трансляции» на сервер печати. В этих сетях остается много вышеописанных проблем. В этих сетях масштабирование сервера печати остается практически невозможным, поскольку серверы по-прежнему обременены задачей «трансляции» документов, и драйверы печати на сервере и на клиенте должны быть тщательно согласованы.
Таким образом, остается необходимость в сети печати, которая поддерживает автономную печать в качестве автоматизированного и прозрачного решения печати.
Сущность изобретения
Задачей настоящего изобретения является постановка в очередь и «трансляция» задания печати на клиенте с использованием административных настроек, хранящихся на клиенте, перед отправкой «транслированного» задания печати на сервер печати. Задача настоящего изобретения также состоит в том, чтобы дать возможность пользователю выполнять команду печати, когда принтер печати недоступен, и маршрутизировать эти задания печати через соответствующий сервер печати, когда он снова станет доступен.
В одном варианте осуществления настоящего изобретения клиент осуществляет связь через сеть с сервером печати, имеющим доступ к, по меньшей мере, одному принтеру. На сервере печати хранится вся информация, необходимая для печати на удаленном принтере, включая настройки принтера, драйверы принтера и административные настройки. На клиенте функции печати обеспечивают два различных модуля: система удаленной печати и система локальной печати. Система удаленной (дистанционной) печати связывается с сервером печати, кэшируя настройки принтера и административные настройки, относящиеся к удаленному принтеру. Система печати также периодически обновляет эти сохраненные настройки, чтобы поддерживать синхронизацию с самыми последними настройками сервера печати. Кроме того, драйвер принтера для удаленного принтера также хранится на клиенте и доступен для систем удаленной и локальной печати.
Когда приложение на клиенте посылает команду печати на удаленный принтер, приложение и соответствующие программы прежде всего переводят задание печати в некоторый промежуточный формат данных. Затем задание печати поступает на систему удаленной (дистанционной) печати. После этого задание печати не сразу поступает на сервер печати, как в современной сетевой печати, а маршрутизируется на систему локальной печати, где сохраняется в локальной очереди и, в конце концов, «транслируется» машиной локальной печати с использованием сохраненного драйвера принтера. Процесс «трансляции» осуществляется в соответствии с сохраненными настройками принтера и административными настройками. Поскольку эти настройки хранятся на клиенте, состояние режима «онлайн» (оперативного режима) сервера прозрачно для приложения. Машина локальной печати посылает полностью «транслированное» задание печати через систему дистанционной печати на сервер печати.
Если, в тот момент, когда машина локальной печати начинает передавать задание печати через систему дистанционной печати, сервер печати недоступен, система локальной печати просто задерживает очередь заданий печати, пока сервер печати снова не выйдет на связь. Для облегчения этого процесса система дистанционной печати с определенной периодичностью опрашивает сеть на предмет сервера печати, а также опрашивает всякий раз, получив извещение, что новый сетевой узел может быть доступен. Как только сервер печати вновь логически подключается к клиенту, система локальной печати направляет задание печати через архитектуру дистанционной печати на сервер печати.
Дополнительные признаки и преимущества изобретения явствуют из нижеприведенного подробного описания иллюстративных вариантов осуществления со ссылкой на прилагаемые фигуры.
Краткое описание чертежей
Хотя признаки настоящего изобретения подробно изложены в прилагаемой формуле изобретения, изобретение, совместно с его задачами и преимуществами, можно лучше понять из нижеследующего подробного описания, приведенного в сочетании с прилагаемыми чертежами, в которых:
фиг.1 - обобщенная блок-схема иллюстративной компьютерной системы, используемой согласно варианту осуществления изобретения;
фиг.2 - блок-схема иллюстративной структуры программ для реализации варианта осуществления изобретения;
фиг.3 - логическая блок-схема последовательности операций, иллюстрирующая этапы печати, выполняемые компьютерной системой согласно варианту осуществления изобретения;
фиг.4 - логическая блок-схема последовательности операций, иллюстрирующая реализацию удаленного принтера согласно варианту осуществления изобретения;
фиг.5 - подробная логическая блок-схема последовательности операций, иллюстрирующая реализацию удаленного принтера с использованием иллюстративной структуры программ, изображенной на фиг.2, согласно варианту осуществления изобретения;
фиг.6 - логическая блок-схема последовательности операций, иллюстрирующая печать из приложения на удаленном принтере согласно варианту осуществления изобретения;
фиг.7 - подробная логическая блок-схема последовательности операций, иллюстрирующая печать из приложения на удаленном принтере с использованием иллюстративной структуры программ, изображенной на фиг.2, согласно варианту осуществления изобретения.
Подробное описание
Описание изобретения применительно к вычислительной среде приведено ниже со ссылкой на чертежи, где подобные элементы обозначены подобными позициями. Хотя это и не требуется для практического применения изобретения, оно описано в порядке реализации посредством выполняемых на компьютере команд, например, программных модулей, выполняемых на ПК. В общем случае программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задания или реализуют отдельные абстрактные типы данных.
Изобретение можно реализовать в конфигурациях компьютерной системы, отличных от ПК. Например, изобретения можно реализовать в портативных устройствах, многопроцессорных системах, программируемой бытовой электронике на основе микропроцессора, сетевых ПК, миникомпьютерах, универсальных компьютерах и т.п. Изобретение также можно осуществлять на практике в распределенных вычислительных средах, где задания выполняются удаленными обрабатывающими устройствами, связанными друг с другом посредством сети связи. В распределенной вычислительной среде программные модули могут размещаться как в локальных, так и в удаленных запоминающих устройствах.
Хотя изобретение можно использовать в вычислительных средах многих типов, которые перечислены выше, нижеследующее подробное описание изобретения изложено применительно к иллюстративному вычислительному устройству общего назначения в виде традиционного ПК 20.
Прежде чем перейти к подробному описанию изобретения, ниже описана вычислительная среда, в которой применяется изобретение, со ссылкой на фиг.1.
ПК 20 содержит процессор 21, системную память 22 и системную шину 23, которая подключает различные компоненты системы, включая системную память, к процессору 21. Системная шина 23 может относиться к любому из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, в которых используется любая из разнообразных архитектур шины. Системная память включает в себя постоянную память (ПЗУ) 24 и оперативную память (ОЗУ) 25. Базовая система ввода/вывода (BIOS) 26, содержащая основные процедуры, помогающие переносить информацию между элементами ПК 20, например, при запуске, хранится в ПЗУ 24. ПК 20 также содержит привод 27 жесткого диска для считывания с жесткого диска 60 или записи на него и привод 28 магнитного диска для считывания со сменного магнитного диска 29 или записи на него.
Привод 27 жесткого диска и привод 28 магнитного диска подключены к системной шине 23 через интерфейс 32 привода жесткого диска и интерфейс 33 привода магнитного диска соответственно. Приводы и соответствующие компьютерно-считываемые носители обеспечивают энергонезависимое хранение компьютерно-считываемых команд, структур данных, программных модулей и других данных для ПК 20. Хотя в описанной здесь вычислительной среде используются жесткий диск 60 и сменный магнитный диск 29, специалистам в данной области известно, что для хранения данных с возможностью компьютерного доступа в иллюстративной вычислительной среде можно использовать другие типы компьютерно-считываемых носителей, например приводы оптического диска и сами оптические диски, магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли, оперативные запоминающие устройства, постоянные запоминающие устройства и т.д.
На жестком диске 60, магнитном диске 29, ПЗУ 24 или ОЗУ 25 может храниться ряд программных модулей, в том числе операционная система 35, одна или несколько прикладных программ 36, другие программные модули 37 и программные данные 38. Пользователь может вводить команды или информацию в ПК 20 посредством устройств ввода, например, клавиатуры 40 и указательного устройства 42. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровой пульт, спутниковую антенну, сканнер и т.п. Для подключения этих и других устройств ввода к процессору 21 часто используют интерфейс 46 последовательного порта, подключенного к системной шине, но можно использовать и другие интерфейсы, например последовательный порт 34, игровой порт или универсальную последовательную шину (УПШ, USB). Монитор 47 или устройство отображения другого типа также может подключаться к системной шине 23 через интерфейс, например, видеоадаптер 48. Помимо монитора, ПК обычно содержат другие периферийные устройства вывода, например громкоговорители и принтер 30, подключенный к системной шине 23 через интерфейс 34 параллельного порта. ПК 20 может работать в сетевой среде с использованием логических соединений с одним или несколькими удаленными компьютерами, например сервером 49 печати. Сервер 49 печати может представлять собой другой ПК, сервер, маршрутизатор, сетевой ПК, равноправное устройство или другой общий узел сети и обычно содержит многие из элементов, описанных выше применительно к ПК 20, хотя сервер 49 печати предназначен для маршрутизации запросов печати с ПК 20 на присоединенные принтеры 50. Логические соединения, обозначенные на фиг.1, включают в себя локальную сеть (ЛС) 51 и глобальную сеть (ГС) 52. Такие сетевые среды обычно реализуются в виде компьютерных сетей в пределах учреждения, предприятия, интранетов и Интернета.
При использовании в сетевой среде ЛС, ПК 20 подключен к локальной сети 51 через сетевой интерфейс или адаптер 53. При использовании в сетевой среде ГС, ПК 20 обычно содержит модем 54 или иное средство установления соединений по ГС 52. Модем 54, который может быть внутренним или внешним, подключен к системной шине 23 через интерфейс 46 последовательного порта. В сетевой среде программные модули, указанные применительно к ПК 20, или их фрагменты, могут храниться в удаленном запоминающем устройстве. Очевидно, что показанные сетевые соединения являются иллюстративными, и что для установления каналов связи между компьютерами можно использовать другие средства.
Нижеследующее описание изобретения относится к действиям и символическим представлениям операций, которые осуществляются одним или несколькими компьютерами, если не указано обратное. Соответственно, следует понимать, что такие действия и операции, которые иногда называют выполняемыми на компьютере, включают в себя манипуляции, осуществляемые процессором компьютера над электрическими сигналами, представляющими данные в структурированном виде. Эти манипуляции обеспечивают преобразование данных или их поддержку в ячейках системы памяти компьютера, что приводит к перенастройке или иному изменению работы компьютера способами, хорошо известными специалистам в данной области. Структуры данных, где поддерживаются данные, представляют собой физические ячейки памяти, которые имеют конкретные свойства, определенные форматом данных. Однако, хотя изобретение описано в вышеуказанном контексте, это не значит, что оно ограничивается им, поскольку специалистам в данной области известно, что различные действия и операции, описанные выше, можно также реализовать аппаратными средствами.
Согласно одному важному аспекту изобретения клиентский ПК 20 локально «транслирует» документы с использованием сохраненных административных настроек, синхронизованных с административными настройками, хранящимися на сервере 49 печати, и локально помещает документы в очередь прежде, чем переслать их на сервер 49 печати на соответствующем собственном языке принтера.
Согласно изобретению клиентский ПК 20 также способен подготавливать документы к «трансляции» для передачи на удаленный принтер 50 даже в отсутствие логического соединения с сервером 49 печати. Затем клиентский ПК 20 может опрашивать сервер 49 печати, пока тот не станет доступен, и «транслировать» документы и пересылать их для распечатывания позднее.
На фиг.2 изображена иллюстративная архитектура программного обеспечения для реализации варианта осуществления изобретения. На клиентском ПК 20 показано единичное приложение 36, работающее на пользовательском уровне, т.е. уровне, на котором программы, работающие на компьютере, взаимодействуют с пользователем компьютера. В других вариантах осуществления на клиентском ПК 20 может одновременно действовать несколько приложений, каждое из которых может обращаться к подсистемам 202-203 печати. Чтобы печатать на принтерах, локально или дистанционно подключенных к ПК 20, большинство приложений 36 не сами реализуют все необходимые функции, но используют внешние модули. Однако в альтернативных вариантах осуществления подсистемы печати могут входить в состав самого приложения 36, операционной системы 35 или являться отдельной программой, использующей функции операционной системы более низкого уровня.
Согласно варианту осуществления, показанному на фиг.2, приложение 36, требующее распечатки документа, прежде всего связывается с модулями 35 операционной системы. Эти модули 35 операционной системы совместно с приложением 36 обеспечивают функциональные возможности, необходимые для преобразования данных документа в формате приложения в более универсальный промежуточный формат данных, и передают переформатированный документ подсистеме печати. В другом варианте осуществления приложение 36 самостоятельно, без помощи операционной системы 35, преобразует данные документа в формате приложения в универсальный промежуточный формат данных. В еще одном варианте осуществления приложение 36 направляет данные документа в формате приложения на подсистему печати совместно с некоторым указанием, какое приложение их направило, и подсистема печати может переводить данные в формате приложения на собственный язык принтера. Альтернативно приложение 36 самостоятельно реализует подсистему печати, и последняя переводит данные в формате приложения непосредственно на собственный язык принтера.
После преобразования данных из формата приложения в промежуточный формат данных модули 35 операционной системы пересылают документ на маршрутизатор 201 печати, первый уровень подсистемы печати. Этот маршрутизатор 201 печати маршрутизирует задание печати в соответствии с его принтером назначения, будь то удаленный принтер 50, подключенный к клиентскому ПК 20 через сервер 49 печати, или локальный принтер 30, подключенный логически к клиентскому ПК 20 через интерфейс 34 параллельного порта или какую-либо другую среду связи без использования сервера 49 печати. В одном варианте осуществления маршрутизатор 201 печати принимает это решение на основании дистанционного (удаленного) или локального указателя, поступающего от модулей 35 операционной системы или приложения 36 совместно с заданием печати. Альтернативно маршрутизатор 201 печати может получать указатель из самого документа. Если задание печати предназначено для удаленного принтера 50, то его принимает и обрабатывает группа подмодулей, предназначенных для функции 202 дистанционной печати. С другой стороны, если задание печати предназначено для локального принтера 30, то его принимает и обрабатывает группа подмодулей, выделенных для функции 203 локальной печати. В других вариантах осуществления маршрутизатор 201 печати может быть необязательным компонентом подсистемы печати. В этих случаях клиентский ПК 20 может печатать либо на удаленных, либо на локальных принтерах, в соответствии с чем реализуется только этот конкретный набор подмодулей. Клиентский ПК 20 также может печатать как на удаленных, так и на локальных принтерах, но может повторно использовать многие из тех же подмодулей для обеих функций печати.
Согласно варианту осуществления, представленному на фиг.2, подсистема 203 локальной печати содержит показанные компоненты, хотя в других вариантах осуществления функции подсистемы 203 локальной печати, представленные этими компонентами, могут быть реализованы в меньшем или большем количестве компонентов. «Локальный провайдер» (модуль обеспечения локальной печати) 220 координирует работу других компонентов подсистемы 203 и организует весь процесс локальной печати от начала до конца. Функции 221 операционной системы выполняют разнообразные функции перевода и передачи, обеспечивая доступ к тому, что уже реализовано операционной системой 35. Когда локальный принтер 30 впервые регистрируется с помощью операционной системы 35 для активной печати, подсистема 203 локальной печати сохраняет данные принтера в списке 223 принтеров. Эти данные часто включают в себя технические характеристики локального принтера 30 и используемые драйвер и настройки. В альтернативных вариантах осуществления принтер 30 регистрируется только при отправке задания печати, и различные настройки, указанные в списке 223 принтеров, извлекаются и применяются во время печати.
Если задание печати маршрутизировано на локальный провайдер 220, то задание сначала регистрируется компонентом диспетчера 224, который помещает задание в соответствующую очередь 225 буферных файлов. В этих буферных файлах хранится информация, представляющая документ в промежуточном формате данных и различные характеристики печати, которые следует использовать при «трансляции» документа. Когда задание готово к выгрузке из буфера (т.е. готово к распечатыванию), диспетчер 224 переносит буферизованный файл из очереди 225 на процессор 222 печати, который подготавливает документ к распечатыванию. Затем компонент процессора 222 печати пересылает документ драйверу 226 принтера для «трансляции» на собственный язык принтера. «Транслированный» документ, теперь отформатированный специально для локального принтера 30, отправляется обратно на локальный провайдер 220, который посылает «транслированный» документ на соответствующий принтер, пользуясь функциями операционной системы, обеспечиваемыми монитором 204 портов. Когда принтером назначения является локальный принтер 30, монитор 204 портов может использовать, например, интерфейс 34 параллельного порта. С помощью функций операционной системы монитор 204 портов может потенциально осуществлять связь через большое количество различных сред связи и отслеживать их.
Альтернативные варианты осуществления не предусматривают поддержку очереди 225 буферных файлов подсистемой 203 локальной печати, но предусматривают ее реализацию в операционной системе 35 или в приложении 36. Например, приложение 36, тесно взаимодействуя с подсистемой 203 печати, будет начинать печать нового документа, как только старый документ будет полностью напечатан. Хотя локальная система 203, описанная со ссылкой на фиг.2, обычно присутствует на многих современных ПК 20, в других вариантах осуществления различные компоненты, описанные со ссылкой на фиг.2, могут быть заменены аналогичными, но другими модулями.
Согласно настоящему изобретению, как показано на фиг.2, подсистема 202 дистанционной (удаленной) печати состоит из показанных компонентов. Согласно другим вариантам осуществления, функции, представленные этими компонентами, реализуются в меньшем или большем количестве компонентов. Первый компонент, ядро 210, обеспечивает функции, аналогичные тем, которые обеспечивает компонент 220 локального провайдера; оно организует и координирует разные другие удаленные компоненты, отслеживая конкретное задание печати от получения до завершения.
В одном варианте осуществления при выборе удаленного принтера 50 для обеспечения функциональной возможности активной печати ядро 210 подсистемы 202 дистанционной печати связывается через менеджер 217 соединений, имеющий доступ к различным сетевым протоколам (например, SMB 219 - блок серверных сообщений и RPC 218 - удаленный вызов процедуры), с сервером 49 печати, к которому присоединен удаленный принтер 50. Затем менеджер 217 соединений принимает информацию, касающуюся удаленного принтера 50, включая административные настройки, настройки принтера, драйверы и другие настройки. Эта информация поступает обратно в ядро 210, которое использует в качестве области памяти как список 223 принтеров подсистемы локальной печати, так и кэш-менеджер 215. Менеджер 216 синхронизации периодически синхронизирует эту сохраненную информацию для согласования с самой последней информацией, хранящейся на сервере 49 печати. В некоторых вариантах осуществления менеджер 216 синхронизации запрашивает обновленную информацию по прошествии определенного времени. В других вариантах осуществления менеджер 216 синхронизации обновляет сохраненную информацию только после приема уведомления, что изменение информации запрошено на сервере 49 печати. В других вариантах осуществления, когда информация, хранящаяся на сервере 49 печати, модифицируется ядром 210 на клиенте, эти настройки преимущественно помещаются в кэш.
Затем, когда задание печати маршрутизируется на подсистему 202 дистанционной печати, ядро 210 гарантированно обновляет различные настройки и драйверы с использованием менеджера 216 синхронизации, а затем «транслирует» и печатает задание с использованием функций локальной печати и дистанционной печати. Если сервер 49 печати, к которому присоединен удаленный принтер 50, недоступен, то ядро 210 дает команду системе 212 обнаружения событий доступности опрашивать сеть на предмет сервера 49 печати. Когда сервер 49 печати становится доступным, ядро 210 получает извещение и отправляет «транслированное» задание печати. В других вариантах осуществления, когда сервер 49 печати недоступен, задание печати отменяется, или функции самого приложения 36 или другой системы продолжают отправлять задание печати с определенной периодичностью, пока сервер 49 печати снова не войдет в режим «онлайн». Согласно варианту осуществления, раскрытому на фиг.2, хотя выше описано, что с сервером 49 печати связываются различные компоненты, логическое соединение с сервером 49 печати имеет только менеджер 217 соединений, и весь обмен информацией маршрутизируется через менеджер 217 соединений. В альтернативных вариантах осуществления эти другие компоненты осуществляют доступ сетевому оборудованию посредством тех же сетевых протоколов, которые использует менеджер 217 соединений.
Остальные компоненты подсистемы 202 дистанционной печати обеспечивают поддержку вышеописанных компонентов. Менеджер 211 событий предназначен для передачи различных извещений о событиях между компонентами в подсистеме 202 дистанционной печати. Монитор 213 портов координирует обмен информацией через сеть 51 с сервером 49 печати и отвечает на системные запросы аналогично внешнему монитору 204 портов. Наконец, «очиститель» (модуль «сборки мусора») 214 удаляет экземпляры принтеров и заданий, которые по тем или иным причинам стали не нужны (например, если запрашивающий пользователь отключил клиентский ПК 20 от сети).
Архитектуру программного обеспечения подсистемы 202 дистанционной печати, описанную со ссылкой на фиг.2, можно лучше понять, обратившись к фиг.3-7, где более подробно представлены различные функции, осуществляемые архитектурой.
Согласно фиг.3 службы печати согласно настоящему изобретению осуществляют ряд важных задач по поддержке на клиенте «трансляции» и административной информации. На этапе 301 службы печати координируют сохранение административной информации и информации устройства, относящиеся к конкретному принтеру 50, которая поступает от сервера 49 печати. В одном варианте осуществления компоненты служб печати координируют получение административной информации и информации устройства от сервера 49 печати. Затем эта информация сохраняется в структурах данных, размещенных на клиентском ПК 20, к которой можно впоследствии обращаться для правильной печати документов. На этапе 303, пока принтер 50 остается активным, службы печати продолжают синхронизировать административную информацию и информации устройства на клиенте 20 с информацией, хранящейся на сервере 49 печати. В одном варианте осуществления эта синхронизация осуществляется путем периодической замены информации, хранящейся на клиенте 20, той, которая хранится на сервере 49 печати. В другом варианте осуществления информация синхронизируется только после того, как сервер 49 печати обновит некоторый фрагмент информации, относящийся к соответствующему принтеру 50. В еще одном варианте осуществления реализуются оба эти способа синхронизации, что увеличивает сетевой трафик, но, в то же время, повышает точность информации, хранящейся на клиентском ПК 20.
На этапе 305 службы печати применяют сохраненные административные настройки и настройки устройства к документу. Применение этих настроек позволяет службам печати гарантировать правильное форматирование документа и обеспечение сетевой безопасности. Поскольку эти настройки относительно близки к хранящимся на сервере 49 печати, облегчается автономная «трансляция» в случае недоступности сервера. Применение этих настроек подробно описано ниже.
Наконец, на этапе 307 службы печати направляют «транслированный» документ на сервер 49 печати для пересылки на принтер 50. «Трансляции» документа на клиентском ПК 20 позволяет освободить сервер 49 печати от значительной вычислительной нагрузки, что облегает его масштабирование. Поскольку настройки на сервере 49 и клиенте 20 часто синхронизируются согласно этапу 303, процесс «трансляции» с большой вероятностью проходит одинаково на обоих, что позволяет избегать процессов искаженной печати.
Вышеописанные этапы дают весьма общее представление о работе системы, поэтому для более подробного описания вариантов осуществления настоящего изобретения обратимся к фиг.4-7. Первый этап печати документа на указанном удаленном принтере 50 состоит в регистрации принтера 50 с помощью операционной системы 35 для будущих задач печати. Хотя регистрация принтера хорошо известна в технике, отдельные аспекты настоящего изобретения делают процесс регистрации, раскрытый на фиг.4 и 5, уникальным. На фиг.4 представлен общий процесс, в котором операционная система 35 регистрирует принтер 50 согласно настоящему изобретению, а на фиг.5 показано, как это происходит в иллюстративной архитектуре программного обеспечения, представленной на фиг.2.
Как хорошо известно в технике, данный вариант осуществления предусматривает способ добавления нового удаленного принтера 50 в операционной системе 35 на этапе 401, чтобы последующие команды печати могли идентифицировать принтер 50. В одном варианте реализации операционная система 35 «просматривает» сеть, извлекая из доступных серверов 49 печати списки связанных с ними удаленных принтеров 50. Затем операционная система 35 добавляет эти удаленные принтеры 50 в базу данных автоматически или позволяет пользователю выбирать те принтеры 50, на которых он желает направлять задания печати. В других вариантах осуществления пользователь указывает сетевой путь к удаленному принтеру 50, который он желает добавить, и этот новый принтер регистрируется в базе данных операционной системы. В других вариантах осуществления операционная система 35 не осуществляет эту первоначальную регистрацию, и последующие этапы 403-407 выполняются, только когда приложение 36 отправляет конкретное задание печати.
После того как пользователь зарегистрировал удаленный принтер 50, службы, управляющие печатью, на этапе 403, получают от сервера 49 печати административную информацию и информацию устройства. В других реализациях эти службы печати реализованы в приложении 36, операционной системе 35 или подсистемах 202, 203 печати. Информация устройства, полученная от сервера 49 печати, содержит информацию о версии драйвера, сам драйвер принтера, технические характеристики принтера, модификации, осуществленные в принтере, предпочтительный выходной результат принтера и т.д. Административные настройки для сервера 49 печати содержат предпочтительные настройки удаленного принтера 50, конкретные настройки, допустимые для удаленного принтера 50, уровень доступа, допустимый для клиентских ПК 20 и т.д. Чтобы извлечь эту информацию, клиентский ПК 20 запрашивает эту информацию у сервера 49 печати при регистрации. В одном варианте осуществления это извлечение является асинхронным процессом, который не замедляет работу ПК 20. В другом варианте осуществления информация извлекается из сервера 49 печати только непосредственно перед обработкой задания печати.
На этапе 405 эта принятая информация сохраняется на клиентском ПК 20. Локальное сохранение этой информации позволяет клиентскому ПК 20 впоследствии «транслировать» документы с использованием административных настроек и настроек принтера без доступа к серверу 49 печати. Это позволяет ускорить процесс «трансляции» (поскольку клиентскому ПК 20 не нужно ждать результатов сетевой связи), а также допускает автономную «трансляцию» (поскольку клиентский ПК 20 может использовать сохраненные административные настройки). В одном варианте осуществления доступ к этой сохраненной информации могут иметь подсистемы печати, приложения 36 и операционная система 35.
На этапе 407 на клиентском ПК 20 с использованием информации устройства, принятой от сервера 49 печати, создается экземпляр принтера. Экземпляр принтера - это просто ссылка на абстракцию данных, в которой хранится связка информации устройства, к которой службы печати могут обращаться при обработке задания печати. Благодаря раздельному хранению информации устройства, представляющей разные принтеры, применение экземпляров принтера облегчает выполнение команды печати, направленной приложением 36 на конкретный принтер. Как хорошо известно в технике, экземпляры принтера часто поддерживаются на клиентах 20 для представления локально подключенных принтеров 30 с помощью информации, вводимой пользователем или определенной посредством общего интерфейса связи, например интерфейса 34 параллельного порта, USB и т.д. В одной реализации экземпляр принтера, представляющий удаленный принтер 50, хранится в формате, аналогичном формату экземпляров принтера, представляющих локальные принтеры 30.
Наконец, на этапе 409 некоторый компонент служб печати синхронизирует административную информацию и информацию устройства с той, которая хранится на сервере печати. Этот этап, по существу, идентичен вышеописанному этапу 303. Благодаря согласованию административной информации и информации устройства, хранящейся на клиенте 20, с хранящейся на сервере 49 печати, этот вариант осуществления повышает точность печати и автономной «трансляции».
Этапы, указанные на фиг.4, раскрыты в общем виде, а ниже со ссылкой на фиг.5, представлена одна реализация регистрации принтера в иллюстративной архитектуре программного обеспечения, представленной на фиг.2. Первый этап, 501, идентичен этапу 401 и зависит от аналогичных традиционных протоколов, реализуемых операционной системой. Остальные этапы группируются примерно следующим образом: этапы 503-507 соответствуют этапу 403, этапы 509-511 соответствуют этапу 405, и этап 513 соответствует этапу 407.
После того как пользователь добавил новый удаленный принтер 50, операционная система 35 пересылает извещение компоненту ядра 210 подсистемы 202 дистанционной печати. На этапе 503 ядро 210 запрашивает у менеджера 217 соединений административные настройки и информацию устройства, относящиеся к удаленному принтеру 50. В альтернативных вариантах осуществления эти функции не нужно реализовывать в разных компонентах. На самом деле, ядро 210 и менеджер 217 соединений могут составлять часть операционной системы 35 или приложения 36.
Получив этот запрос, менеджер 217 соединений на этапе 505 извлекает информацию из сервера 49 печати с использованием соответствующего сетевого протокола 218, 219. В одном варианте осуществления менеджер 217 соединений предпочитает использовать для связи с сервером 49 печати протокол 218 вызова удаленных процедур (RPC), в то же время сохраняя возможность связи с использованием других популярных протоколов, например SMB 219 (или Samba в среде UNIX). В альтернативных вариантах осуществления для реализации канала связи между клиентским ПК 20 и сервером 49 печати используются другие протоколы. В случае, когда либо клиентский ПК 20, либо сервер 49 печати не поддерживает конкретный сетевой протокол, два компьютера пытаются использовать альтернативные протоколы, пока не выберут взаимно понимаемый протокол. Сервер 49 печати обычно сохраняет административную информацию и информацию устройства в абстракции данных, аналогичной вышеописанному экземпляру принтера. Таким образом, в одном варианте осуществления менеджер 217 соединений запрашивает информацию о конкретном удаленном принтере 50, и сервер 49 печати согласовывает сетевой идентификатор принтера 50 с соответствующими характеристиками принтера, хранящимися в абстракции данных, и возвращает (выдает) эти соответствующие характеристики.
Получив эту информацию, менеджер 217 соединений, на этапе 507, пересылает ее на ядро 210 для обработки. В одном варианте осуществления ядро 210, на этапе 509, сохраняет административные настройки, применяемые сервером 49 печати, в кэш-ячейках кэш-менеджера 215 дистанционной подсистемы. Кэш-менеджер 215 представляет собой структуру данных, содержащую кэш-ячейки, в которых хранится информация. В одном варианте осуществления эти кэш-ячейки связаны с соответствующими удаленными принтерами посредством таблицы идентификаторов, предпочтительно хэш-таблицы, что ускоряет доступ к кэш-ячейкам. Альтернативно, для сохранения административных настроек и доступа к ним используются другие средства хранения, общеизвестные в технике.
В одном варианте осуществления административные настройки сохраняются в подсистеме 202 дистанционной печати, а информация устройства, полученная ядром 210, пересылается локальному провайдеру 220 на этапе 511. На этапе 513 локальный провайдер 220 создает экземпляр локального дублирующего принтера, представляющий удаленный принтер 50 в своем списке принтеров 223. Этот экземпляр локального дублирующего принтера, соответствующий удаленному принтеру 50, форматирован идентично экземплярам локального принтера, соответствующим вышеописанным локальным принтерам 30. Однако в то время как экземпляры локального принтера, представляющие локальные принтеры 30, передают задания печати через внешний монитор 204 портов, экземпляры локального дублирующего принтера, представляющие удаленные принтеры 50, передают задания печати через монитор 213 портов подсистемы дистанционной печати. Предпочтительно, подсистема 203 локальной печати обрабатывает эти экземпляры локального дублирующего принтера так же, как все остальные экземпляры локального принтера, используя функции локальной печати при обработке команд печати на этих удаленных принтерах 50.
На этапе 515 процесс в подсистеме 202 дистанционной печати обеспечивает синхронизацию административной информации и информацию устройства, хранящиеся на клиентском ПК 20, с хранящейся на сервере 49 печати. В одном варианте осуществления менеджер 216 синхронизации периодически запрашивает у сервера 49 печати обновленную информацию, которой затем заменяет информацию, хранящуюся в кэш-менеджере 215 и в подсистеме 203 локальной печати. В другом варианте осуществления менеджер 216 синхронизации периодически сравнивает локально сохраненную административную информацию и информацию устройства с информацией на сервере 49 печати. Если они отличаются, то менеджер 216 синхронизации заменяет отличающуюся информацию, хранящуюся в кэш-менеджере 215 и подсистеме 203 локальной печати. В еще одном варианте осуществления ядро 210 через менеджер 217 соединений опрашивает сервер 49 печати, чтобы определить, изменились ли административные настройки и настройки устройства на сервере 49 печати. Сервер 49 печати может поддерживать небольшую структуру данных, указывающую, произошло ли изменение, и ядро 210 может иметь доступ к этой структуре данных. Ответ, полученный ядром 210, посылается на менеджер 216 синхронизации, который соответственно обновляет локально сохраненные настройки. Эти способы являются исключительно иллюстративными, и для согласования административных настроек и настроек устройства менеджер 216 синхронизации или другой компонент подсистемы 202 дистанционной печати может использовать другие способы.
После того как удаленный принтер 50 зарегистрировался с помощью операционной системы 35, приложение 36 может посылать ему задания печати. На фиг.6 и 7 описан уникальный процесс печати, предусмотренный настоящим изобретением. Фиг.6 описывает в общем виде процесс печати из приложения 36 на удаленном принтере 50, а фиг.7 описывает один способ его реализации в иллюстративной архитектуре программного обеспечения, представленной на фиг.2.
Первый этап печати данных на удаленном принтере 50 состоит, конечно, в доступе к приложению 36, имеющему возможность печати, и в использовании этой возможности. Таким образом, на этапе 601 пользователь посылает из приложения 36 некоторую команду печати, указывающую, что документ должен быть направлен на удаленный принтер 50. В других приложениях для выполнения этой функции можно использовать другие способы. В одной реализации изобретения пользователь выбирает команду «печать» из меню или нажимает комбинацию или последовательность клавиш на клавиатуре 40. Эта команда печати независимо от способа ее вызова запрашивает у пользователя ввод данных, указывающих принтер. В альтернативных реализациях удаленный принтер 50 может быть заранее выбран как текущий, «принятый по умолчанию» принтер.
Обработав эту команду печати, приложение 36 на этапе 603 с помощью модулей 35 операционной системы, преобразует документ, сохраненный в собственном формате приложения, в промежуточный формат данных. Этот промежуточный формат данных содержит достаточный объем информации для точной печати документа на удаленном принтере 50. Однако этот промежуточный формат данных не является специфическим ни для удаленного принтера 50, ни для приложения 36. Это позволяет форматировать и модифицировать документ безотносительно к его источнику и принтеру назначения, и подсистемы, выполняющие эти преобразования, могут быть в большой степени независимы от выбора принтера 50 или приложения 36. Однако другие варианты осуществления могут не требовать промежуточного формата данных. В вышеописанном случае, когда приложение 36 печатает непосредственно на удаленном принтере 50, не обращаясь к функциям, обеспечиваемым более низким уровнем операционной системы 35, приложение 36 просто использует свой собственный формат приложения, пока не потребуется перевести файл на собственный язык принтера для передачи. В других вариантах осуществления подсистемы печати изменяют форматирование документов в каждом из различных форматов приложения, что позволяет избежать перевода в промежуточный формат данных.
На этапе 607 созданный промежуточный файл помещают в очередь на клиенте 20. В одном варианте осуществления эта очередь представляет структуру данных, в которой с каждым экземпляром принтера связана одна очередь. Очередь, в которую добавляют документы, имеет формат «первым вошел, первым обслужен» за некоторыми исключениями, известными специалистам в данной области. Первый документ, добавленный в очередь, первым распечатывается на удаленном принтере 50. Сервер 49 печати, присоединенный к удаленному принтеру 50, также направляет данные, относящиеся к его собственной очереди, клиенту 20, и два компьютера могут объединять свои очереди, что позволяет клиенту 20 направить задание печати в подходящее время относительно других заданий печати, поступающих на сервер 49 печати. Клиент 20 может также использовать принятые данные, чтобы информировать пользователя, когда его задание печати будет выполнено, и в каком порядке по отношению к другим документам пользователя. В других вариантах осуществления очередь реализуется в приложении 36 или не реализуется никакой очереди, и в случае отклонения первоначального запроса печати приложение 36 направляет запросы печати с определенной периодичностью.
Когда документ достигает головы очереди и готов к отправке на удаленный принтер 50, клиент 20 на этапе 609 определяет, доступен ли сервер 49 печати. Как известно из уровня техники, клиент 20 определяет это одним из нескольких возможных способов, в том числе: простым тестовым опросом сервера 49 печати с использованием сетевых функций более низкого уровня, с использованием одного из согласованных по сети протоколов, запрашивая сервер 49 печати, может ли он принять задания печати, или, исходя из предположения, что сервер 49 печати доступен, пока не придет отказ на запрос печати. Если клиент 20 определяет, что сервер 49 печати доступен, то на этапе 611 промежуточный файл «транслируется» на собственный принтерный язык удаленного принтера 50, и документ в окончательном виде поступает на сервер 49 печати.
Благодаря сохранению информации, касающейся драйвера удаленного принтера 50, настроек принтера и административных настроек на клиенте 20, что описано на этапах 405-407, можно эффективно «транслировать» промежуточный файл на собственный язык принтера. Эти сохраненные настройки могут быть устаревшими настройками, сохраненными при последнем обновлении менеджером 216 синхронизации, или свежими настройками, принятыми от сервера 49 печати непосредственно перед печатью конкретного документа. В одном варианте осуществления предпочтительно использовать свежие настройки, хотя при этом возрастает сетевой трафик. В альтернативных вариантах осуществления предпочтительны устаревшие настройки, хотя при этом возрастает вероятность десинхронизации настроек сервера 49 и клиента 20. Хотя настройки устройства и принтера характеризуют физические атрибуты удаленного принтера 50, административные настройки, предпочтительно, обеспечивают различные особенности форматирования и печати (например, печать страниц на двух сторонах листа), подлежащие осуществлению в промежуточном файле при его «трансляции». В других вариантах осуществления приложение 36 принимает административные настройки до этапа 603, и использует эти настройки для создания промежуточного файла, к которому уже применены административные настройки. В других вариантах осуществления сначала к промежуточному файлу применяются настройки принтера и административные настройки, а затем, с использованием настроек и драйвера принтера, промежуточный файл преобразуется в документ, воспринимаемый удаленным принтером 50. Такой документ написан на собственном принтерном языке удаленного принтера 50. После «трансляции» документ поступает на сервер 49 печати, который маршрутизирует его на соответствующий удаленный принтер 50. Сервер 49 печати, при необходимости, добавляет этот документ в очередь соответствующего принтера, но, в отличие от обычной сетевой печати, серверу 49 печати не нужно осуществлять никаких преобразований файла или изменений форматирования до отправки файла на принтер 50. «Трансляция» документа на клиенте 20 позволяет освободить ресурсы сервера 49 печати для других задач.
Если опрос, произведенный клиентом 20, показывает, что сервер 49 печати недоступен, то промежуточный файл просто остается в очереди для этого принтера на этапе 613. В одном варианте осуществления клиент 20 опрашивает сервер 49 печати с определенной периодичностью, чтобы определить, стал ли он доступен. Клиент 20 может также ожидать действия сети или устройства, указывающее, что сервер 49 печати может стать доступен. Чтобы обеспечить печать как можно быстрее, клиент 20 производит опрос как периодически, так и после определенного действия. В альтернативных вариантах осуществления клиент 20 опрашивает сервер 49 принтера с определенной периодичностью. К сожалению, периоды времени обычно либо слишком велики и перекрывают возможный период ожидания перед печатью документа, либо слишком коротки, из-за чего при опросе используются значительные ресурсы сети и ЦП. В другом варианте осуществления клиент 20 отслеживает действия устройства и сети и опрашивает сервер 49 печати после получения извещения. Однако, если клиент 20 пропустит извещение устройства или сети, он не станет опрашивать сервер 49 печати и не напечатает документ. Благодаря объединению этих двух способов, первый вариант осуществления использует преимущества обоих, устраняя при этом их недостатки.
Описав эти этапы в общем плане, перейдем к описанию, со ссылкой на фиг.7, одной реализации процесса печати согласно варианту осуществления настоящего изобретения в иллюстративной архитектуре программного обеспечения, представленной на фиг.2. Первые этапы, 701-703, идентичны этапам 601 и 603. Остальные этапы группируются следующим образом: этапы 705-707 соответствуют этапу 605, этапы 709-711 соответствуют этапу 607, этап 713 соответствует этапу 609, этапы 715-717 соответствуют этапу 611, и этапы 719-721 соответствуют этапу 613. Поскольку начальные этапы отправки команды печати через приложение 36 и создания файла в промежуточном формате данных достаточно подробно описаны выше, начнем описание с этапа 705.
После того как приложение 36 и модули 35 операционной системы создали файл в промежуточном формате, маршрутизатор 201 печати на этапе 705 маршрутизирует промежуточный файл на ядро 210 подсистемы дистанционной печати. В одном варианте осуществления маршрутизатор 201 печати поддерживает список удаленных и локальных принтеров, зарегистрированных операционной системой 35, и при поступлении задания печати на маршрутизатор 201 оно отправляется на соответствующую подсистему печати в зависимости от того, в какой список входит принтер назначения. В альтернативных вариантах осуществления задание печати сопровождается отдельным указателем, предназначено ли задание печати для удаленного или локального принтера, и маршрутизатор 201 перехватывает и обрабатывает этот указатель.
Приняв и обработав промежуточный файл, ядро на этапе 709 пересылает промежуточный файл на локальный провайдер 220. В одном варианте осуществления локальный провайдер 220 принимает и обрабатывает направленный ему файл как задание на локальную печать. Таким образом, в этом варианте осуществления изобретения дистанционная печать выполняется с использованием функций локальной печати, что позволяет избежать необходимости дублирования многих из этих функций. На этапе 711 локальный провайдер 220 определяет, какому экземпляру локального дублирующего принтера адресовано задание печати, и помещает его в очередь, связанную с этим экземпляром локального дублирующего принтера. В альтернативных вариантах осуществления подсистема 202 дистанционной печати сама реализует функции локальной печати и поэтому помещает задание печати в очередь дистанционной печати, освобождая подсистему 203 локальной печати для выполнения заданий локальной печати.
Когда задание печати достигает головы соответствующей очереди, перед отправкой «транслированного» документа на сервер 49 печати монитор 213 портов дистанционной печати на этапе 713 определяет, доступен ли сервер 49 печати. В одном варианте осуществления монитор 213 портов дистанционной печати проверяет доступность до того, как подсистема 203 локальной печати произведет какую-либо «трансляцию». В альтернативном варианте осуществления предусмотрена конвейерная обработка фрагментов печатаемого документа. Поэтому удаленный монитор 213 портов проверяет доступность только после того, как подсистема 203 локальной печати произведет какую-либо «трансляцию». Однако в случае обнаружения недоступности сервера оба варианта осуществления действуют одинаково (сходятся), поскольку данные, частично «транслированные» согласно второму варианту осуществления, теряются.
Если сервер 49 печати доступен, то, в иллюстративном варианте осуществления, локальный провайдер 220 пересылает задание печати на процессор 222 печати, которые применяет сохраненные настройки устройства и административные настройки, связанные с экземпляром локального дублирующего принтера. Эти административные настройки включают в себя настройки, описанные выше в отношении этапа 611. Поскольку кэш-ячейки, сохраненные кэш-менеджером 215, согласовывают административные настройки с соответствующими удаленными принтерами 50 и серверами 49 печати, идентификатор принтера посылают кэш-менеджеру 215 и возвращают запрашиваемые настройки. В некоторых случаях ядро 210 удостоверяется в том, что хранящиеся в данный момент настройки синхронизированы с хранящимися на сервере 49 печати. В одном варианте осуществления ядро 210, совместно с менеджером 216 синхронизации, использует менеджер 217 соединений для обновления кэш-менеджера 215 последними административными настройками, как описано выше на этапе 509. Однако, если в этом процессе сервер 49 печати недоступен, то процессор 222 печати использует сохраненные настройки устройства и административные настройки, не обновляя их. Благодаря тому, что процесс может продолжаться без обновления сохраненных настроек, этот вариант осуществления облегчает печать и «трансляцию» в автономном режиме. В других вариантах осуществления для продолжения процесса печати ядро 210 требует обновления административных настроек с помощью сервера 49 печати, препятствуя печати и «трансляции» в автономном режиме. В других вариантах осуществления ядро 210 не обновляет административные настройки, но использует настройки администратора, последний раз синхронизированные менеджером 216 синхронизации, пока не получит явное предписание на обновление.
На этапе 715 драйвер 226 принтера и функции 221 операционной системы, хранящиеся на клиенте 20, транслируют документ на соответствующий собственный язык принтера. Это применение настроек устройства и административных настроек и трансляция в соответствии с драйвером принтера осуществляются известными в технике способами. Фактически, в одном варианте осуществления эти функции выполняются в значительной степени немодифицированными, имеющимися подсистемами 203 локальной печати, для которых окончательный пункт назначения файла прозрачен.
Согласно варианту осуществления изобретения обработка фрагментов печатаемого документа производится в конвейерном режиме. Так, на этапе 717, фрагменты документа, уже на собственном языке принтера, передаются через монитор 213 портов подсистемы дистанционной печати. «Транслированные» фрагменты документа отправляются, пока последующие фрагменты «транслируются». Конечно, как описано выше, удаленный монитор 213 портов только организует эти задания. Монитор 213 портов дистанционной печати связывается с менеджером 217 соединений, который реализует сетевые протоколы, необходимые для отправки заданий печати на сервер 49 печати. В альтернативных вариантах осуществления монитору 213 портов дистанционной печати не требуется отправлять документ по мере его «трансляции». Напротив, локальный провайдер 220 сначала «транслирует» документ, а потом помещает его в очередь 225 буферных файлов, или же локальный провайдер 220 сначала полностью «транслирует» документ из очереди, а потом отправляет его на монитор 213 портов. Как именно выполняются указанные операции, несущественно для реализации изобретения.
Как указано на этапе 713 фиг.7, если монитор 213 портов дистанционной (удаленной) печати определяет, что сервер 49 печати недоступен, происходит переход к этапу 719, на котором подсистема 203 локальной печати приостанавливает применение настроек и трансляцию, и организованная на клиенте очередь, соответствующая серверу 49 печати, переходит в состояние ожидания. Затем, на этапе 721, клиент 20 начинает опрашивать сервер 49. В одном варианте осуществления очередь, управляемая локальным провайдером 220, приостанавливается по сигналу монитора 213 портов дистанционной печати, поскольку это простой общеизвестный способ обработки отказа принтера во многих существующих подсистемах 203 локальной печати. Согласно альтернативным вариантам осуществления в подсистеме 203 локальной печати реализован любой конкретный способ обработки отказа принтера, включая отмену всех заданий печати и предписание приложению 36 на повторную отправку данных задания печати некоторое время спустя.
Согласно варианту осуществления изобретения на этапе 721 система 212 обнаружения события доступности, входящая в состав подсистемы 202 дистанционной печати, использует менеджер 217 соединений для опроса сервера 49 печати. Система 212 обнаружения события доступности предпочтительно реализует один из способов опроса, описанных выше в отношении этапа 613. Когда система 212 обнаружения события доступности дистанционной печати посылает извещение ядру 210 о том, что сервер 49 печати доступен, движение в очереди возобновляется, и операция печати переходит к этапу 715, на котором промежуточный файл обрабатывается и отправляется на сервер 49 печати.
На случай отказа всех или некоторых компонентов подсистемы дистанционной печати или выхода пользователя из сети до выполнения всех заданий печати, один вариант осуществления изобретения также предусматривает компонент 214 очистителя (модуля «сбора мусора»). Очиститель 214 обеспечивает удаление любых экземпляров локального дублирующего принтера, кэш-ячеек или буферных файлов, соответствующих заданиям, которые были отменены или которые уже не нужно выполнять. Таким образом, функции этого компонента позволяют избежать возможных трудностей, связанных с координированием заданий печати на множественных подсистемах и компонентах.
Ввиду того, что принципы этого изобретения можно применять к большому количеству возможных вариантов осуществления, следует понимать, что варианты осуществления, описанные здесь со ссылкой на чертежи, носят исключительно иллюстративный характер, и их не следует рассматривать в плане ограничения объема изобретения. Например, специалистам в данной области очевидно, что элементы проиллюстрированных вариантов осуществления, показанные в программном обеспечении, можно реализовать аппаратно, и наоборот, или что проиллюстрированные варианты осуществления можно модифицировать в отношении структуры и деталей, не выходя за рамки сущности изобретения. Кроме того, иллюстративные этапы можно модифицировать, добавлять и/или переупорядочивать без отрыва от объема изобретения. Таким образом, вышеописанное изобретение охватывает все варианты осуществления, которые отвечают объему нижеследующей формулы изобретения и ее эквивалентов.
Изобретение относится к компьютерным сетевым системам и, в частности, к печати документов в сетевой среде. Изобретение позволяет пользователю выполнять команду печати, когда сервер печати недоступен, и маршрутизировать задания печати через соответствующий сервер печати, когда он снова станет доступен. В сети, облегчающей функции печати, предусмотрено средство «трансляции» на компьютере-клиенте задания печати, адресованного удаленному принтеру, с использованием сохраненных административных настроек. Прозрачно для приложений клиента компьютер-клиент поддерживает синхронизацию сохраненных административных настроек для удаленного принтера с хранящимися на сервере печати. Используя сохраненные административные настройки, клиент «транслирует» задание печати на собственный язык принтера, непосредственно воспринимаемый принтером, прежде, чем отправить этот «транслированный» файл на сервер печати для пересылки на принтер. Благодаря организации очереди этих заданий удаленной печати, состояние режима онлайн соответствующего сервера печати также прозрачно для приложений клиента, что облегчает автономную печать. 4 н. и 21 з.п. ф-лы, 7 ил.
сохраняют на компьютере-клиенте административные настройки для сетевого печатающего устройства назначения, применяемые компьютером-сервером печати, при этом административные настройки включают в себя по меньшей мере информацию, достаточную для того, чтобы разрешить компьютеру-клиенту транслировать документ на собственный язык принтера сетевого печатающего устройства назначения;
обновляют, используя менеджер синхронизации на компьютере-клиенте, сохраненные административные настройки, чтобы поддерживать синхронизацию с текущими административными настройками на компьютере-сервере печати, при этом менеджер синхронизации выполнен с возможностью выполнять обновление через периодические интервалы времени;
применяют сохраненные административные настройки к документу на компьютере-клиенте;
на основе административных настроек транслируют документ на собственный язык принтера сетевого печатающего устройства назначения на компьютере-клиенте; и
отправляют транслированный документ на компьютер-сервер печати без дополнительного преобразования транслированного документа сервером печати.
операционную систему для обработки и интерпретации команды печати, маршрутизатор печати для маршрутизации команды печати на подсистему дистанционной печати в соответствии с указанным сетевым печатающим устройством назначения,
подсистему дистанционной печати для сохранения административных настроек, принятых от компьютера-сервера печати, и для пересылки на компьютер-сервер печати документа, преобразованного на собственный язык принтера, чтобы вызвать печать преобразованного документа без дополнительного преобразования посредством компьютера-сервера печати, причем административные настройки включают в себя по меньшей мере информацию, достаточную для того, чтобы разрешить системе компьютера-клиента преобразовывать документ в собственный язык принтера сетевого печатающего устройства назначения,
подсистему трансляции для применения сохраненных административных настроек к документу и для преобразования документа в соответствии с собственным языком принтера, используемым сетевым печатающим устройством назначения, и
менеджер синхронизации для запрашивания у компьютера-сервера печати текущих административных настроек для сетевого печатающего устройства назначения, при этом менеджер синхронизации выполнен с возможностью выполнять обновление через периодические интервалы времени.
сохраняют на компьютере-клиенте административные настройки для сетевого печатающего устройства назначения, применяемые компьютером-сервером печати, при этом упомянутые административные настройки включают в себя по меньшей мере информацию, достаточную для разрешения компьютеру-клиенту транслировать документ в собственный язык принтера сетевого печатающего устройства назначения,
обновляют, используя менеджер синхронизации на компьютере-клиенте,
сохраненные административные настройки для поддержания
синхронизации с текущими административными настройками
компьютера-сервера печати, при этом менеджер синхронизации выполнен с возможностью выполнять обновление через периодические интервалы времени,
применяют сохраненные административные настройки к документу на компьютере-клиенте,
на основе административных настроек транслируют документ в собственный язык принтера сетевого печатающего устройства назначения на компьютере-клиенте, и
отправляют транслированный документ на компьютер-сервер печати для печати без дополнительного преобразования транслированного документа сервером печати.
компьютер-клиент, содержащий
операционную систему для обработки и интерпретации команды печати, маршрутизатор печати для маршрутизации команды печати на подсистему дистанционной печати в соответствии с указанным сетевым печатающим устройством назначения,
подсистему дистанционной печати для сохранения административных настроек, принятых от компьютера-сервера печати, и для пересылки на компьютер-сервер печати документа, преобразованного в собственный язык принтера, причем административные настройки включают в себя по меньшей мере информацию, достаточную для того, чтобы разрешить компьютеру-клиенту преобразовать документ в собственный язык принтера сетевого печатающего устройства назначения,
подсистему трансляции для применения сохраненных административных настроек к документу и для преобразования документа в соответствии с собственным языком принтера, используемым сетевым печатающим устройством назначения, и
менеджер синхронизации для запрашивания от компьютера-сервера печати текущих административных установок для сетевого печатающего устройства назначения, причем менеджер синхронизации выполнен с возможностью выполнять запрос через периодические интервалы времени,
компьютер-сервер печати для поддержки текущих административных настроек для сетевого печатающего устройства назначения, для отправки текущих административных настроек на компьютер-клиент после приема запроса, и для пересылки преобразованного документа на сетевое печатающее устройство назначения без дополнительного преобразования преобразованного документа сервером печати, и
сетевое печатающее устройство назначения для формирования выходного результата из преобразованного документа.
Топчак-трактор для канатной вспашки | 1923 |
|
SU2002A1 |
СПОСОБ НАПЕЧАТАНИЯ ДОКУМЕНТА С ПОМОЩЬЮ АВТОМАТИЧЕСКОГО БАНКОВСКОГО АППАРАТА, АВТОМАТИЧЕСКИЙ БАНКОВСКИЙ АППАРАТ (ВАРИАНТЫ) И СПОСОБ ПЕЧАТАНИЯ ДОКУМЕНТА С ЕГО ПОМОЩЬЮ | 1999 |
|
RU2189638C2 |
US 5580177 A, 03.12.1996 | |||
JP 2000330734 A, 30.11.2000 | |||
US 6043898 A, 28.03.2000 | |||
JP 2001222481 A, 17.08.2001. |
Авторы
Даты
2009-03-20—Публикация
2003-12-26—Подача