Полное руководство по Citrix MetaFrame XP

         

Подготовка: как работает печать


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

  • Графический интерфейс устройства (GDI)
  • Драйвер Принтера
  • Спулер печати
  • Монитор Порта
  • Когда вы посылаете задание по выводу на печать на принтер, сначала начинает работу GDI. Он отвечает за создание визуального вывода, независимо от того, экран это или принтер. GDI вызывает соответствующий драйвер принтера, сообщая информацию об используемом устройстве печати, и тип данных, используемый для генерации задания - RAW или EMF. Поскольку мы говорим о задании по выводу на печать, сгенерированном на компьютере Win2K, типом данных всегда будет EMF. Это означает, что задание по выводу на печать будет предварительно отформатировано до того, как оно будет послано на принтер.

    Ядро Win2K ОС не предназначено для непосредственного обращения к принтеру - иначе Microsoft должен был бы встроить в операционную систему поддержку каждого принтера и применять исправления всякий раз, когда выпускается новый принтер. Вместо этого роль посредника между ОС и принтером выполняют драйверы принтера . Драйверы принтера специфичны для конкретной ОС, даже среди семейства ОС Win32. Драйвер принтера не монолитен. Фактически он имеет три поддрайвера, которые работают вместе как модуль. Драйвер графики принтера преобразует команды GDI в команды Интерфейса Драйвера (Device Driver Interface, DDI), которые можно послать на принтер. Драйвер интерфейса принтера обеспечивает информацию о настройке принтера и связь между драйвером графики принтера и файлом данных характеристик. Этот файл обеспечивает информацию о возможностях принтера - о том, что может делать эта конкретная модель принтера: разрешающая способность, поддержка цвета, двусторонняя печать и т.д.

    После того, как драйвер принтера подготовил создание задания на печать для соответствующего принтера, драйвер принтера передает задание в спулер печати (print spooler), набор DLL и драйверов устройств, которые получают, обрабатывают, планируют и распределяют задания по выводу на печать. Подобно драйверу принтера, спулер печати фактически состоит из нескольких частей, работающих вместе: маршрутизатор печати, буферный файл и процессор печати. Маршрутизатор печати клиента (на компьютере, генерирующем задание по выводу на печать) связывается с маршрутизатором печати сервера через вызов удаленных процедур (RPC). Когда маршрутизатор печати сервера печати получает запрос печати, он передает запрос соответствующему провайдеру печати (print provider) - локальному провайдеру печати, если принтер подключен локально, или сетевому провайдеру печати, если принтер сетевой. Чтобы найти правильного правайдера печати, маршрутизатор печати опрашивает провайдера печати Windows. Этот провайдер затем находит соединение, которое распознает имя принтера и посылает RPC маршрутизатору печати, находящемуся на сервере печати. Тот локальный правайдер печати затем пишет содержимое задания в буферный файл (spool file) - файл, который содержит печатную информацию и служебную информацию - и отслеживает управляющую информацию для этого задания. После того, как провайдер печати создал буферный файл, процессор печати работает с драйвером принтера, чтобы послать буферный файл на принтер.

    Монитор печати, последний в этой в цепочке, получает задание по выводу на печать из приложения-клиента на устройство печати. Фактически существует два монитора. Монитор языка, созданный при установки двунаправленного драйвера принтера, который может послать значимые сообщения о состоянии задания на компьютер, устанавливает связь с принтером, а затем передает управление на монитор порта. Монитор порта передает задание либо на устройство печати, либо на другой сервер. Он управляет потоком информации в порту ввода-вывода, с которым связано устройство печати. Задание по выводу на печать было уже сконфигурировано процессором печати, поэтому монитор порта должен только беспокоиться о направлении задания в правильный порт.

    Процесс работает аналогично и при печати из приложения, выполняющегося на сервере MetaFrame. С точки зрения клиента, если принтер доступен, то печать из сеанса ICA обычно не отличается от печати из приложения, выполняющегося на локальном компьютере, будь то печать на сетевой принтер, локальный, подключенный непосредственно к серверу MetaFrame, или клиентский принтер, подключенный к компьютеру клиента и автоматически отображенный в сеансе ICA.

    Людям для выполнения своей работы не обязательно соединяться с определенным сервером MetaFrame, и в сети может быть более одного принтера. Другими словами, каждый сервер MetaFrame должен иметь драйверы для всех принтеров в сети, которые используются пользователями, подключающимися к серверу MetaFrame, независимо от того, используется ли совместный доступ к этим принтерам через сеть, подключены ли они непосредственно к серверу MetaFrame или к компьютеру клиента. Это означает, что вы должны установить драйверы на всех серверах MetaFrame, и вы должны быть абсолютно уверены, что эти драйверы безопасны. Ошибочные драйверы принтера могут вывести из строя компьютер. Сбои печати доставляют головную боль на однопользовательском компьютере, но когда этот компьютер является сервером MetaFrame, предоставляющим доступ множеству людей, сбоев нужно решительно избегать. Однако, способ работы Win2K означает, что драйверы принтера автоматически установливаются при обращении к подключенному принтеру.

    Только отображение клиентских принтеров в сеансах ICA открывает целую кучу проблем. Если клиенты не используют Win2K Pro, имена драйверов, установленных на сервере MetaFrame (который базируется на W2K), могут не совпадать - а они должны совпадать, иначе печать не будет работать. Если задание по выводу на печать посылается на принтер клиента, отображенный в сеансе ICA, оно будет передаваться по одному из каналов ICA, как звук или 24-разрядный цвет. Таким образом, задания по выводу на печать, посланные по медленным сетевым соединениям, не только займут долгое время, но и будут воздействовать на сеансы ICA, пытающиеся использовать этот же сетевой маршрут.



    Содержание раздела