Область изобретения
Данное изобретение относится в целом к компьютерной печати, в частности к способу дать возможность пользователям мобильных вычислительных устройств с удобством печатать документы.
Существующий уровень техники
По мере совершенствования сети Интернет все больше и больше функций, таких как электронная почта, календарь, сохранение файлов, аутентификация и т.п., вносится во всемирную паутину на основе Интернет. С ростом доступности высокоскоростного доступа к Интернет из любого места абоненты смещают свои приоритеты к основанным на Интернет мобильным сценариям, особенно с беспроводным подключением к Интернет. Таким образом, многие мобильные вычислительные устройства снабжаются теперь возможностью беспроводного доступа к Интернет, и происходит распространение новых, пригодных для работы в Интернет устройств в широком диапазоне видов, таких как сотовые веб-телефоны (т.е. телефоны с возможностью беспроводного соединения с Интернет) и т.п. Сейчас имеются миллионы людей, которые «на ходу» обращаются к данным, документам и электронной почте со своих сотовых телефонов и других ручных устройств.
Даже хотя мобильные устройства дают своим пользователям свободу обращаться к Интернет или иным сетям, не имея связи с их настольными компьютерами, большинство малых мобильных устройств, таких как ПЦА (персональные цифровые ассистенты) или сотовые веб-телефоны, имеют очень малые отображающие экраны, и представляется несколько неудобным, а часто затруднительным считывать обычные документы (например, развернутый лист) на таких малых экранах. По этой причине пользователи малых мобильных устройств могут желать распечатать документы и читать распечатанные документы. В конце концов, бумага является великим просмотровым носителем, который портативен, легко читается и легко распространяется. К тому же, она не требует энергии. Комбинация богатого содержания, доступного в Интернет, и физическое ограничение малых устройств означает, что пользователи хотели бы время от времени распечатывать содержание в любом месте, где это содержание может быть доступно.
В настоящее время, однако, нет удобного способа для пользователей мобильных устройств распечатывать документы, когда они удалены от своих настольных компьютеров. Традиционно даже для пользователей носимых компьютеров трудно распечатывать документы вне своих рабочих помещений. К примеру, когда пользовательница несет свой носимый компьютер в другое здание своей компании для встречи, даже если она может зарегистрироваться в корпоративной интрасети и извлечь документ, в котором она нуждается для встречи, может оказаться, что она неспособна легко распечатать этот документ. Для того чтобы распечатать документ на принтере в этом здании, она должна, во-первых, узнать, где в этом здании находятся принтеры, выбрать принтер, который ближе к ней, и загрузить драйвер этого принтера в свой носимый компьютер. Затем она запускает для конкретного формата этого документа подходящее программное приложение (например, Microsoft Word, Adobe Acrobat Reader и т.п.), которое преобразует документ в доступном для принтера формате и использует драйвер принтера для распечатки документа. Когда пользовательница перемещается в новое местоположение и хочет распечатать документ на ином принтере, она должна повторить процесс инсталляции принтера.
По сравнению с распечаткой с помощью носимых компьютеров распечатывать документы для пользователей малых Интернет- устройств еще труднее. В настоящее время имеется широкий набор платформ аппаратного обеспечения и операционных систем для таких устройств "тонких клиентов". Такая широта делает очень затруднительной разработку надежного набора принтерных драйверов для каждой платформы аппаратного обеспечения/операционной системы. Кроме того, преобразование печати требует большой мощности центрального процессора и использования памяти. Многие малые мобильные устройства просто не имеют объема памяти для хранения программных приложений или драйверов принтера либо мощности обработки, требующейся для операции печати.
Таким образом, имеется необходимость в эффективном решении пользователям различных типов мобильных устройств для распечатки документов, когда бы и где бы им не потребовались эти документы, даже если эти устройства не подключены непосредственно к каким-либо принтерам и даже если они не имеют способности или программного обеспечения для выполнения задачи распечатывания.
Сущность изобретения
С учетом предыдущего, настоящее изобретение предлагает сетевую услугу распечатки, которая позволяет мобильным вычислительным устройствам, таким как носимый (портативный) компьютер, устройства персональных цифровых ассистентов (ПЦА) (PDA), сотовым веб-телефонам и т.п., легко распечатывать документы, даже если они не подключены непосредственно к принтеру и не поддерживают программные приложения и драйверы принтеров для печати. Когда пользователь мобильного вычислительного устройства хочет распечатать документ, мобильное устройство используется для доступа к сети, такой как Интернет, в которой находится служба печати. Эта служба печати включает в себя интерфейс службы печати для взаимодействия с клиентом, чтобы принимать данные запроса на печать, компонент маршрутизации для обработки запроса на печать и компонент визуализации для преобразования документов из исходного формата документа в конечный формат для печати. С помощью интерфейса службы печати пользователь вводит запрос на печать, который идентифицирует местоположение документа в сети (например, в терминах УУР [унифицированного указателя ресурсов, URL] документа). Альтернативно, документ может непосредственно направляться из мобильного устройства в службу печати. Если это приемлемо, пользователь также определяет конечный принтер с помощью того же самого интерфейса. Когда служба печати принимает этот запрос, если запрос задает УУР документа, она извлекает документ, соответствующий этому УУР, преобразует документ в подходящем конечном формате и распечатывает этот документ, как запрошено пользователем.
Сетевая оболочка службы печати по изобретению может воплощаться не только на основе Интернет, но также в сетях различных размеров, таких как корпоративные интрасети, домашние локальные сети и тому подобное.
Краткое описание чертежей
Хотя приложенная формула изобретения подробно излагает признаки настоящего изобретения, это изобретение вместе с его задачами и преимуществами можно лучше понять из нижеследующего подробного описания совместно с сопровождающими чертежами, на которых:
фиг.1 представляет собой блок-схему, иллюстрирующую в целом примерную компьютерную систему, в которой может быть реализовано настоящее изобретение;
фиг.2 представляет схематично схему, показывающую примерный вариант выполнения службы печати, предусмотренной в Интернет для обработки запросов на печать пользователями мобильных Интернет- устройств;
фиг.3 представляет схематично схему, показывающую другой примерный вариант выполнения службы печати в Интернет;
фиг.4 представляет схематично схему, показывающую вариант выполнения шлюза службы печати, находящегося в пользовательском персональном компьютере и доступного по корпоративной интрасети.
Подробное описание предпочтительных вариантов выполнения
На чертежах, где подобные ссылочные позиции относятся к одинаковым элементам, изобретение иллюстрируется воплощенным в подходящей вычислительной среде. Хотя это и не требуется, изобретение будет описываться в общем контексте исполняемых на компьютере команд, таких как программные модули, исполняемые персональным компьютером. В общем случае программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или воплощают конкретные абстрактные типы данных. Кроме того, специалисты поймут, что изобретение можно осуществить с другими конфигурациями компьютерных систем, включая ручные устройства, многопроцессорные системы, микропроцессорную или программируемую потребительскую электронику, сетевые ПК, мини-компьютеры, центральные ЭВМ и тому подобное. Изобретение можно осуществить в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны по сети связи. В распределенной вычислительной среде программные модули могут располагаться как в локальных, так и в удаленных запоминающих устройствах.
Нижеследующее описание начинается с описания универсального вычислительного устройства, которое можно использовать в примерной системе для воплощения изобретения, и изобретение будет описываться более подробно со ссылкой на фиг.2-4. На фиг.1 универсальное вычислительное устройство показано в виде обыкновенного персонального компьютера 20, включающего в себя блок 21 обработки, системную память 22 и системную шину 23, которая связывает разные системные компоненты, в том числе системную память с блоком 21 обработки. Системная шина 23 может быть любой из нескольких типов шинных структур, в том числе шиной памяти или контроллером памяти, периферийной шиной и локальной шиной, с использованием любой из множества архитектур. Системная память включает в себя постоянное запоминающее устройство (ПЗУ) (ROM) 24 и оперативное запоминающее устройство (ОЗУ) (RAM) 25. В ПЗУ 24 хранится базовая система ввода-вывода (BIOS) 26, содержащая базовые подпрограммы, которые помогают переносить информацию между элементами внутри персонального компьютера 20, например, во время запуска. Персональный компьютер 20 включает в себя далее дисковод 27 жесткого диска для считывания с жесткого диска 60 и записи на него, дисковод 28 магнитного диска для считывания со съемного магнитного диска 29 и записи на него и дисковод 30 оптического диска для считывания со съемного оптического диска 31, такого как ПЗУ-КД (CD-ROM) или иного оптического носителя данных, и записи на него.
Дисковод 27 жесткого диска, дисковод 28 магнитного диска и дисковод 30 оптического диска подключены к системной шине 23 соответственно интерфейсом 32 дисковода жесткого диска, интерфейсом 33 дисковода магнитного диска и интерфейсом 34 дисковода оптического диска. Эти дисководы и связанные с ними машиночитаемые носители данных обеспечивают энергонезависимое хранение исполняемых компьютером команд, структур данных, программных модулей и других данных для компьютера 20. Хотя в описанной здесь примерной среде применяют жесткий диск 60, съемный магнитный диск 29 и съемный оптический диск 31, специалистам понятно, что в примерной операционной среде могут использоваться и другие типы машиночитаемых носителей данных с возможностью хранения данных, к которым может обращаться компьютер, такие как магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли, оперативные запоминающие устройства, постоянные запоминающие устройства, сети с областями памяти и т.п.
Несколько программных модулей могут храниться на жестком диске 60, магнитном диске 29, оптическом диске 31, ПЗУ 24 или ОЗУ 25, в том числе операционная система 35, одна или более прикладных программ 36, другие программные модули 37 и программные данные 38. Пользователь может вводить в персональный компьютер 20 команды и информацию через устройства ввода, такие как клавиатура 40 и позиционирующее устройство 42. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер и т.п. Эти и другие устройства часто подключаются к блоку 21 обработки через интерфейс 46 последовательного порта, соединенный с системной шиной, но могут подключаться и посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (УПШ) (UBS). Монитор 47 или иное отображающее устройство также подключается к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору персональные компьютеры включают в себя, как правило, и другие периферийные устройства вывода (не показаны), такие как громкоговорители и принтеры.
Персональный компьютер 20 может работать в сетевой среде с помощью логических соединений с одним или более удаленными компьютерами, такими как удаленный компьютер 49. Удаленный компьютер 49 может быть другим персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим общим сетевым узлом и, как правило, включает в себя многие или все из элементов, описанных выше в отношении персонального компьютера 20, хотя на фиг.1 проиллюстрировано только запоминающее устройство 50. Отображенные на фиг.1 логические соединения включают в себя локальную сеть (ЛС) (LAN) 51 и глобальную сеть (ГС) (WAN) 52. Такие сетевые среды являются общепринятыми в учрежденческих и фирменных компьютерных сетях, внутренних сетях (интрасетях) и Интернет.
При использовании в сетевой среде ЛС персональный компьютер 20 подключается к локальной сети 51 через сетевой интерфейс или адаптер 53. При использовании в сетевой среде ГС персональный компьютер 20, как правило, включает в себя модем 54 или другое средство для установления связи по глобальной сети 52. Модем 54, который может быть внутренним или внешним, подключается к системной шине 23 через интерфейс 46 последовательного порта. В сетевой среде программные модули, отображенные относящимися к персональному компьютеру 20, или их части могут храниться в удаленном запоминающем устройстве. Понятно, что показанные сетевые соединения являются примерными и что можно использовать другие средства для установления связи между компьютерами. К примеру, компьютер может быть в виде носимого компьютера и снабжен беспроводной передачей и сетевыми средствами для беспроводных соединений с Интернет или иными сетями.
В нижеследующем описании изобретение будет описываться со ссылкой на действия и символические представления операций, которые выполняются одним или более компьютерами, если не указано иное. По существу, понятно, что такие действия и операции, которые время от времени называются компьютерно исполняемыми, включают в себя манипуляцию блоком обработки компьютера над электрическими сигналами, представляющими данные в структурированном виде. Эта манипуляция преобразует данные или сохраняет их в местоположениях запоминающей системы компьютера, при этом она переконфигурирует или иным образом изменяет работу компьютера понятным для специалистов образом. Структуры данных, где сохраняются данные, являются физическими местоположениями памяти, которые имеют конкретные свойства, определенные форматом данных. Однако, хотя изобретение и описывается в вышеуказанном контексте, это не означает, что оно не ограничивается им, как понимают специалисты, и что описанные далее различные действия и операции могут также воплощаться аппаратно.
На фиг.2 настоящее изобретение направлено на архитектуру службы печати, которая позволяет пользователю мобильного вычислительного устройства, такого как носимый компьютер, ПЦА, сотовый веб-телефон (или "интеллектуальный сотовый телефон") и т.д., печатать документы, даже если это мобильное устройство не имеет непосредственного соединения с принтером или управления над ним и даже если это устройство не имеет мощности для обработки или возможности запоминания для программных приложений и драйверов принтера, требующихся для выполнения операций по распечатке. В соответствии с изобретением мобильному устройству не требуется заниматься преобразованием документа в формат, доступный для принтера, и даже не нужно знать, где расположен этот принтер. Вместо этого мобильное устройство должно лишь установить службу печати в сети, с которой это мобильное устройство соединено, указать службе печати, где находится документ, или передать этот документ службе печати, а служба печати будет управлять операцией распечатки, чтобы распечатать документ, как запрошено.
Фиг.2 иллюстрирует вариант выполнения, в котором служба 70 печати воплощена как часть веб-сервера в сети Интернет 72. Понятно, однако, что архитектура службы печати согласно изобретению масштабируется так, что она может использоваться в других сетях, таких как корпоративные интрасети для выполнения печатных работ, как будет более подробно описано далее. Как показано на фиг.2, пользовательское мобильное устройство, которое в этом варианте выполнения может быть сотовым веб-телефоном 76, ПЦА 78, носимым компьютером 80 или иным Интернет- устройством, подключается к Интернет 72.
В качестве примера, в одном сценарии пользовательница 82, именуемая Джейн, может нести сотовый веб-телефон 76 во время своего путешествия. Когда она регистрируется в гостинице, она дает гостинице свое "Интернет-удостоверение". Гостиница имеет в Интернет веб-сайт 86, который располагает службой 70 печати. Позже при подготовке ко встрече с клиентами Джейн хочет распечатать документ, предполагается, что ее документы 92, в том числе и тот, который она хочет распечатать, хранятся в веб-хранилище 90 во всемирной паутине. Она использует свой сотовый веб-телефон 76, чтобы подключиться к Интернет 72 и обратиться (с помощью беспроводного прикладного протокола (БПП) (WAP)) к веб-сайту 86 гостиницы, который предоставляет интерфейсную страницу 88 службы печати, включающую в себя запросы и опции для печатной работы. Через интерфейсную веб-страницу 99 Джейн входит в информацию, касающуюся печатной работы, в том числе местоположение документа, данные конкретизации печати (например, цветная или черно-белая, сшитая скобками или скрепленная, число копий и так далее) и любую другую требуемую информацию. В этом примере местоположение документа 94, подлежащего печати, конкретизируется универсальным указателем ресурса (УУР) (URL) этого документа. Она может также конкретизировать, следует ли доставить распечатанный документ в ее гостиничный номер или послать в конторку при входе, чтобы она забрала его сама. Затем она подает запрос 96 на печать и принимает по сотовому веб-телефону 76 подтверждение 98 от службы печати о приеме запроса на печать.
Служба 70 печати включает в себя компонент 100, именуемый далее шлюзом службы печати (ШСП) (PSG), для обработки запросов на печать по Интернет от различных пользователей. Когда принимается запрос 96 на печать от Джейн, ШСП проверяет ее статус гостиничного постояльца путем проверки базы данных гостиничных постояльцев. Он также оценивает запрос на печать, чтобы посмотреть, содержит ли он требуемую информацию. Если имеется какая-либо проблема, ШСП немедленно известит Джейн по ее сотовому телефону. Если и пользовательский статус, и запрос на печать подтверждаются как правильные, шлюз 100 службы печати использует Интернет-удостоверение Джейн, чтобы получить доступ к ее веб-хранилищу 90, где она хранит свои документы, и использует УУР конкретного документа 94, чтобы извлечь этот документ. После извлечения документа шлюз 100 службы печати выбирает принтер из фонда 106 принтеров для осуществления печатной работы и преобразует документ в готовый для печати формат, подходящий для выбранного принтера. Преобразование может выполняться с помощью подходящего программного приложения для конкретного формата документа (например, Microsoft Word). Для этой цели служба печати может хранить множество программных приложений 110 для обращения с различными типами документов. Альтернативно, служба печати может использовать внешние службы преобразования в Интернет, такие как службы 112, 114, 116 преобразования на фиг.2. В этом случае, программные приложения не требуются. Преобразованный документ посылается затем на выбранный принтер для распечатки, и распечатанный документ доставляется, как конкретизировано в запросе на печать.
Даже хотя в этом примере мобильное устройство является сотовым веб-телефоном, понятно, что конкретный вид мобильного устройства, использованного для подачи запроса на печать, не является критическим и пользователи носимых компьютеров и иных Интернет-устройств могут использовать службу 70 печати тем же самым образом, чтобы распечатать документ.
Из этого примера можно видеть, что пользовательскому мобильному устройству не требуется носить конкретный документ для распечатки. В этом примере сотовый веб-телефон 76 может даже не иметь способности сохранять копии этого документа. Вместо этого пользователь должен лишь конкретизировать, где можно найти документ, и служба печати автоматически извлечет документ на основании этой информации и с помощью пользовательских удостоверений, необходимых для получения доступа к документу. В этом отношении пользовательское удостоверение либо уже доступно для службы печати (например, предоставлено во время выписки чека в гостиницу), либо предоставлено вместе с запросом на печать, как при использовании сертификата или «паспорта» Интернет.
Возможно, однако, что пользовательское мобильное устройство уже несет (хранит) документ. Это может быть в случае, к примеру, когда пользовательское мобильное устройство является "богатым клиентом", таким как носимый компьютер. В этом сценарии пользовательница может переслать документ непосредственно со своего устройства в шлюз службы печати в качестве части данных в запросе на печать.
Понятно, что пользовательское мобильное устройство не должно выполнять какого-либо преобразования документа или управления операцией распечатки. В результате мобильному устройству нет необходимости иметь программное приложение (например, Microsoft Word или Adobe Acrobat Reader) для конкретного формата документа и не нужно загружать в этом устройстве драйвер принтера. Это важное преимущество, т.к. многие мобильные устройства, такие как ПЦА или сотовые веб-телефоны, не имеют мощности обработки для преобразования документов для печати или емкости памяти для размещения программных приложений и драйверов принтера. Кроме того, даже если мобильное устройство является "богатым клиентом", таким как носимый компьютер, который имеет достаточные мощность обработки и емкость памяти, поиск правильного драйвера для загрузки в это устройство, а затем использование этого устройства для управления работой принтера представляет собой довольно сложный процесс. За счет делегирования печатной работы службе печати в сети (например, в Интернет), доступной легкими по весу мобильными устройствами, пользовательница может использовать это мобильное устройство, чтобы распечатать документы практически повсюду, куда она идет, и тогда, когда ей хочется (с ограничением по сетевому подключению), без необходимости вникать в подробности операции распечатки.
Чтобы проиллюстрировать применимость архитектуры службы печати согласно изобретению, ниже со ссылкой на фиг.3 описывается другой сценарий. В этом сценарии Джейн является агентом по торговле недвижимостью. По пути на встречу со своим клиентом она хочет распечатать перечень домов на сегодняшний день со своего сотового телефона 76. Чтобы сделать это, она щелкает мышью на функции "найти ближайший печатный центр" в меню, представленном на ее сотовом телефоне. В этом примере поставщик сотового телефона Джейн имеет службу "Желтых страниц", которая включает в себя веб-указатели к веб-страницам коммерческих печатных центров. Когда она щелкает мышью на функции "найти ближайший печатный центр", ее сотовый телефон определяет ее текущее местоположение и просматривает свой перечень печатных центров. Он представляет первые пять возможных выборов в порядке увеличения расстояния от ее текущего местоположения. Из этого перечня Джейн выбирает печатный центр 124 с франшизным названием, к примеру, "АВС", щелкая мышью на указателе для этого печатного центра. Затем она соединяется с веб-сервером 120 АВС, и ей предоставляется веб-страница 122 АВС для ввода ее запроса. Она далее вводит свой запрос на печать и информацию по оплате через веб-страницу АВС.
Аналогично примеру фиг.2 веб-сервер 120 печатного центра АВС командует шлюзу 126 службы печати принимать запросы на печать. Когда пользовательница вводит запрос на печать, шлюз службы печати извлекает документ по УУП, конкретизированному в этом запросе, преобразует этот документ для печати и распечатывает на принтере в печатном центре 124 АВС, выбранном Джейн. В этом варианте выполнения, поскольку документы должны распечатываться в печатных центрах, выбранных потребителями, служба печати АВС во всемирной паутине не обязана иметь местные принтеры.
Структура службы печати согласно изобретению масштабируется и может использоваться в сетях различных размеров. В качестве примера, ниже описывается другой сценарий мобильной печати со ссылкой на фиг.4, которая иллюстрирует вариант выполнения, где служба 132 печати воплощена в интрасети 136 корпорации. В этом сценарии пользователь 140 по имени Крис идет на встречу в конференц-зал в другом здании своей компании, неся с собой свой подключенный к сети ПЦА 138. Будучи в конференц-зале, он осознает, что ему нужно распечатать документ для встречи. Чтобы сделать это, Крис не должен знать, где в этом здании находятся принтеры совместного пользования или как инсталлировать драйверы принтера. Он использует свой ПЦА для обращения по корпоративной интрасети 136 к шлюзу 142 службы печати, который является сетевым узлом на его настольном персональном компьютере (ПК) (РС) 132 в его офисе. Шлюз 142 службы печати имеет доступ ко всем корпоративным сетевым принтерам, которые иным образом доступны для ПК 132 Криса. Он помогает Крису выбрать конкретный принтер, как, к примеру, с помощью карты расположения принтеров. С помощью ПЦА Крис взаимодействует со шлюзом 142 службы печати и посылает запрос 148 на печать к шлюзу службы печати. Запрос на печать идентифицирует подлежащий печати документ, который может храниться в его настольном ПК или в местоположении в интрасети 136, посредством его УУР. Он также идентифицирует конечный принтер на основании информации, такой как местоположение принтера. Компьютер Криса инсталлирует, если это необходимо, нужные драйверы принтера для конечного принтера по требованию. Затем Крис идет к идентифицированному принтеру, чтобы забрать распечатанный документ.
На фиг.2 в одном варианте выполнения служба 70 печати включает в себя один или более серверов, каждый из которых имеет компонент 100 шлюза службы печати, и совокупность программных приложений 110, которые используются, чтобы работать с разными форматами документов. К примеру, эти программные приложения могут включать в себя Microsoft Internet Explorer для документов HTML, Adobe Acrobat Reader для файлов с расширением ".PDF" и Microsoft Word для документов с расширением ".DOC" и т.д. В проиллюстрированном примере выполнения служба печати включает в себя также фонд 106 принтеров и соответствующие драйверы принтеров, которые могут использоваться программными приложениями, чтобы вырабатывать готовые к печати выходные данные. Набор драйверов принтеров меняется в зависимости от конкретных принтеров, которые поддерживает эта служба. Например, гостиничная служба печати может использовать одну и ту же модель принтера по всей гостинице, и ей потребуется только один драйвер принтера, тогда как службе печати на предприятии может потребоваться много драйверов принтеров вследствие накопления различных моделей принтеров.
Служба 70 печати включает в себя компонент 150 пользовательского интерфейса к службе печати, который обеспечивает пользовательский интерфейс, чтобы позволить пользователям вводить запросы на печать и получать подтверждение этих запросов. Он может также предоставлять сегодняшний статус по пользовательским запросам на печать и службу печати в целом. Этот компонент пользовательского интерфейса меняется в зависимости как от службы, так и от клиента (например, носимые компьютеры против ПЦА с малыми экранами). За пользовательским интерфейсом имеется интерфейс программирования для шлюза службы печати, который определяет то, как составить запрос на печать к службе печати и принять обратную связь по Интернет (или интрасети). В одном варианте выполнения компонент пользовательского интерфейса создает реальный пакет запроса на печать и посылает его к шлюзу службы печати). В другом варианте выполнения клиент может непосредственно обратиться к интерфейсу программирования шлюза службы печати и послать запрос на печать (в формате XML) прямо в службу печати.
В одном варианте осуществления содержание запроса на печать включает в себя следующие данные:
1. Пользовательское "Интернет-удостоверение" или веб-идентификатор. Эта информация необходима для аутентификации пользователя для доступа к документу, равно как и для доступа к службе печати. Оно может также использоваться при регистрации и выписке счета.
2. Содержимое документа или его УУР.
3. Необязательно, формат документа. Если эта информация не предоставлена, служба печати определит этот формат через анализ содержимого, хотя это в общем случае неэффективно.
4. Необязательно, УУР конечного принтера и характеристики, такие как название модели, идентификатор PnP, защитный код доступа и т.д.
5. Необязательно, критерии выбора конечного принтера (например, местоположение). Если эта информация пропущена и не задано УУР принтера, служба печати выберет конечный принтер на основании своих собственных критериев, таких как выравнивание загрузки и приоритетность.
6. Необязательно, требования к печати, такие как цвет, дублирование, скрепление. Если эта информация пропущена, будут использоваться установки по умолчанию.
Содержимое ответа, вырабатываемого службой 70 печати, включает в себя либо подтверждение того, что запрос принят, либо отклонение запроса и, если приемлемо, идентификатор работы, который используется при загрузке и выписке счета. Запрос на печать может отклоняться вследствие любой из нижеследующих и/или иных причин: пользователь не идентифицирован для использования службы печати; служба печати отключена от сети; содержимое документа нельзя извлечь; формат документа не поддерживается; конкретизированный принтер не поддерживается; и конкретные требования к печати нельзя удовлетворить (такие как цветная печать).
Некоторые устройства "богатых клиентов", такие как носимые компьютеры, имеют больше мощности обработки и широкую базу программных приложений). Они могут быть более усложненными в терминах подачи запросов на печать, так что пользователи могут получать более высокие качество печати и рабочие характеристики, например, устройство может запрашивать перечень поддерживаемых форматов документа (к примеру, чтобы снизить предпочтения).
В проиллюстрированном на фиг.2 варианте выполнения для мобильной печати по сети Интернет шлюз 100 службы печати (ШСП) включает в себя маршрутизирующий компонент 160, преобразующий компонент 162 и компонент 166 регистрации и выписки счета. Маршрутизирующий компонент 160 выполняет следующие функции:
- Интерпретация поступающих запросов на печать.
- Аутентификация пользователя на использование службы печати.
- Переговоры с клиентом, касающиеся возможностей печати (например, форматы документов). Это позволит более мощным клиентам предлагать предпочтительный формат для лучших результатов.
- Извлечение содержимого документа, если это потребуется. Пользование предоставленным пользовательским удостоверением, если документ имеет ограниченный доступ.
- Проверка правильности пользовательского запроса и установление обратной связи. Эта функция включает в себя вызов преобразующего PSG компонента для проверки того, поддерживается ли преобразование из заданного исходного формата в заданный формат назначения.
- Буферизация и планирование запросов для дальнейшей обработки (преобразование и/или распечатка).
- Перенаправление запроса на печать другой службе печати, если это приемлемо. Это можно использовать для сортировки служб.
К примеру, гостиничная служба печати может просто пропускать все запросы на печать к поставщику услуги печати для действительной обработки и распечатки.
Преобразующий компонент 162 шлюза 100 службы печати является ответственным за преобразование исходного формата документа в конечный формат, который обычно является готовым для печати форматом. Этот компонент хранит информацию об отображении между поддерживаемыми входными форматами и выходными форматами. Такая информация включает в себя информацию о том, что это за форматы и какое нужно прикладное программное обеспечение или внешнее преобразующее устройство для выполнения конкретного отображения. Для обеспечения расширяемости используется управляемый данными подход.
Когда преобразование форматов осуществляется локально, подходящие прикладное программное обеспечение и драйверы принтера инсталлируются локально. Если используются выделенные преобразующие печать услуги, то шлюз службы печати просто пропускает через себя содержимое (например, файлы.PS) без какого бы то ни было преобразования. Чтобы увеличить надежность преобразования формата, очень выгодно иметь один канонический промежуточный формат, который могут использовать все клиенты, чтобы подать данные документа. Такой формат может быть независимым от устройства усечением стандартного формата. Служба печати может ограничить форматы до набора, который удовлетворяет критерии надежности.
Другим компонентом веб-службы печати является компонент регистрации и выписки счета, который работает с операциями регистрации и выписки счета для обслуживания запросов на печать. Он предоставляется для поддержки бизнес-модели Интернет и, вероятно, не требуется, если сетевая служба печати воплощается в различных типах сети. К примеру, в то время как гостиничная служба печати потребует функцию выписки счета, служба печати в интрасети корпорации может и не потребовать.
Как описано выше, служба печати предоставляет интерфейс программирования, который позволяет клиенту подавать запросы на печатные работы и запрашивать статус работы. В одном варианте выполнения имеется три обязательных метода, которые поддерживает веб-служба печати:
СоздатьРаботуПечати (CreatePrintJob): позволяет клиенту подать запрос на печать.
ОтменитьРаботуПечати (CancelPrintJob): позволяет клиенту отменить запрос на печать, поданный ранее.
ПолучитДанныеРаботыПечати (GetPrintJobData): позволяет клиенту запросить состояние запроса на печать, поданного ранее.
Имеется также три необязательных метода, которые веб-служба печати может поддерживать, чтобы оптимизировать операции:
ПоддерживаетсяФормат (IsFormatSupported): позволяет клиенту отыскать, поддерживается ли конкретный формат документа службой печати. Клиент может захотеть использовать этот метод, чтобы сначала проверить формат, особенно при непосредственном внедрении содержания документа в запрос на печать.
ПолучитьПоддерживаемыеФорматы (GetSupportedFormats): позволяет клиенту получить перечень поддерживаемых форматов документов. Клиент может захотеть использовать этот метод, чтобы выбрать оптимальный формат для подачи исходного документа, особенно когда клиент (например, носимый компьютер) имеет способность осуществлять некоторые виды преобразования форматов.
ПолучитьМоделиПринтеров (GetPrinterModels): позволяет клиенту находить перечень моделей принтеров, используемых службой печати, и связанные с ними инсталлируемые установки (такие как установлен дуплексер или нет). Это позволит богатым клиентам (таким как носимый компьютер) вырабатывать высокоточные готовые к печати данные и пропускать их через службу печати сразу на принтер. Ожидается, что этот метод будут поддерживать немногие службы печати, а именно те службы, которые принимают лишь готовые к печати данные.
Подробности каждого вышеназванного метода описываются ниже. Вслед за описанием каждого метода идет перечень "Аргументы", которые детализирует эти параметры. Он имеет следующие атрибуты:
Поле данных (Data Field): название параметра. Оно следует за VisualStudio.NET, именующим преобразование.
Напр (Dir): направление параметра, IN, OUT или IN/OUT ('ref' в C#).
Тип (Type): тип данных, как определено в C#.
М/О: указывает, является ли параметр обязательным ('M') или опциональным (необязательным)('O'). Комментарии (Comments): определяют значение параметра и его использование.
Если один и тот же параметр появляется во многих методах, он имеет одно и то же значение и определяется только в одном месте.
После перечня "Аргументы" идет перечень кодов ошибок. Код ошибки завершается в элементе <SOAP:fault>. Коды ошибок выделяются из статуса IPP и именуются вслед за C#, именующим преобразование.
1. СоздатьРаботуПечати
Когда вызывается метод СоздатьРаботуПечати, служба печати создаст новую работу печати, чтобы представить новый запрос на печать и назначить уникальный идентификатор работы. Она обновляет данные работы на основании того, что предоставил клиент и что может реально поддерживаться. Если предоставлен указатель УУР документа, она извлекает содержимое документа от имени пользователя. Если все признано достоверным, она устанавливает рабочее состояние на "принято" и отвечает клиенту, продолжая распечатывать документ. Клиент позже запрашивает состояние запроса на печать, такое как ожидаемое время завершения или реальные установки принтера, с помощью метода ПолучитьДанныеРаботыПечати. Во всех случаях в ее ответе устанавливается соответствующий код ошибки операции.
Отметим, что если служба печати выбирает принять готовые к печати данные, она должна поддерживать параметр "jobTicket", который заключает в себе полный набор установок печати, используемых для выработки готовых к печати данных. "JobTicket" основан на стандартной схеме системы печати Windows. Если служба печати не может обработать все установки в "jobTicket", она должна отменить этот запрос на печать и возвратить ClientErrorNotPossible (Невозможно-Ошибка Клиента).
Аргументы:
Поле данных: jobID (идентификатор работы)
Напр: OUT; Тип: unit; M/O: M
Комментарии: Уникальный идентификационный номер работы печати, созданный службой печати в диапазоне от 1 до 232-1. Служба печати может повторно использовать идентификаторы работы, гарантируя, что никакие два активных запроса на печать не имеют одинаковых идентификаторов. Этот идентификатор используется для последующих операций, таких как ОтменитьРаботуПечати и ПолучитьДанныеРаботыПечати.
Поле Данных: jobname (название работы)
Напр: IN; Тип: string (строка); М/О: М
Комментарий: Название запроса на печать, такое как название подлежащего распечатке документа.
Поле Данных: userName (имя Пользователя)
Напр: IN; Тип: string (строка); М/О: М
Комментарий: Имя пользователя, который подал запрос на печать.
Поле Данных: UserCredential (Удостоверение пользователя)
Напр: IN; Тип: string (строка); М/О: О
Комментарии: Закодированные пользовательские паспортные идентификатор входа и пароль. Это удостоверение будет использоваться для аутентификации использования службы печати и для извлечения службой печати содержимого документа от имени пользователя, когда используется УУР документа. Если служба печати, такая как коммерческие магазины печати, требует удостоверение пользователя, пользователь должен предоставить эти данные. В противном случае он получит "ClientErrorNotAutenticated" (Не Аутентифицирован-Ошибка Клиента).
Поле Данных: docLink (указатель документа)
Напр: IN; Тип: string (строка); М/О: О
Комментарий: УУР подлежащего распечатке документа. Если это пропущено, службе печати следует предполагать, что клиент пошлет содержимое документа непосредственно через параметр "docContent" (Содержание документа). В большинстве случаев параметр "docContent" предоставляется, например, печать посредством ссылки. Если служба печати поддерживает прием множества документов в одной работе, клиент может предоставить множество УУР в одном запросе СоздатьРаботуПечати.
Поле Данных: docContent (Содержимое документа)
Напр: IN; Тип: byte[] (байт []); М/О: О
Комментарий: Последовательность байтов, представляющих содержимое подлежащего распечатке документа. Если это нулевое и "docLink" тоже нулевое, служба печати вернет с кодом ошибки "ClientErrorDocumentAccessError (Ошибка Доступа к Документу Ошибка Клиента).
Поле Данных: docFormat (Формат документа)
Напр: IN; Тип: string (строка); М/О: О
Комментарий: Формат содержимого документа, такой как "PostScript Level 2" или "DOC". Если этот параметр не предоставлен, служба печати не должна будет анализировать название файла и/или содержимое для того, чтобы вычислить (понять) формат.
Поле данных: targetPrinter (Конечный принтер)
Напр: IN; Тип: string (строка); М/О: О
Комментарий: Название конечного принтера.
Поле Данных: numOfCopies (число Копий)
Напр: IN; Тип: unit; M/O: O
Комментарий: Число копий, подлежащих распечатке. По умолчанию равно 1. Все отпечатанные страницы будут упорядочены.
Поле Данных: duplex (двунаправленная передача)
Напр: IN; Тип: string (строка); M/O: O
Комментарий: Определяет, как будут печататься логические страницы на физических страницах. Опции включают в себя: "односторонняя печать", "двусторонняя печать вдоль длинного края" и "двусторонняя печать вдоль короткого края".
Поле Данных: nUp
Напр: IN; Тип: string (строка); M/O: O
Комментарий: Определяет, как будут размещаться логические страницы на одной стороне физической страницы. Выбор из "1-up", "2-up" и "4-up".
Поле Данных: isColor (Цветной)
Напр: IN; Тип: bool (булевый); M/O: O
Комментарий: Если этот параметр "истинен", документ печатается в цвете. В противном случае он печатается черно-белым. По умолчанию он черно-белый.
Поле Данных: paperType (Тип бумаги) Напр: IN; Тип: string (строка); M/O: O
Комментарий: Тип бумаги для использования при распечатке документа, такой как "Стандартная белая бумага 201b". По умолчанию устанавливается каждой службой печати. Если этот параметр конкретизируется клиентом, он будет проверен по другим требованиям к работе. Если имеет место конфликт, служба должна принять подходящий тип бумаги на основании своих приоритетов и, соответственно, обновить данные работы.
Поле Данных: bindingType (Тип скрепления)
Напр: IN; Тип: string (строка); M/O: O
Комментарий: Тип скрепления, который следует использовать, такой как "никакой", "спиралью", "комб.", "скобкой". По умолчанию - "никакой". Если он конкретизируется клиентом, он будет проверен по другим требованиям к работе. Если имеет место конфликт, служба должна принять подходящий тип скрепления и, соответственно, обновить данные работы.
Поле Данных: jobTicket (рабочий Билет)
Напр: IN; Тип: Byte [] (байт []); M/O: O
Комментарий: Двоичный блок в формате XML, который описывает полный набор установок печати, используемых для выработки готовых к печати данных. Используется только при подаче готовых к печати ("непосредственных") документов. Следует стандартной схеме системы печати Windows.
Поле Данных: <custom fields> (пользовательские поля)
Напр: IN; Тип: N/A; M/O: O
Комментарий: Каждая служба печати может определять дополнительные поля, такие как "рекламный код".Код ошибки:
Код 0×000; Значение: SuccessfulOK (ОК успешно); Использование: Операция успешна.
Код: 0×0400; Значение: ClientErrorBadRequest (Плохой Запрос - Ошибка Клиента); Использование: Запрос неверно составлен, к примеру, с неверными значениями параметров.
Код: 0×0402; Значение: ClientErrorNotAuthenticated (Не Аутентифицирован - Ошибка Клиента); Использование: Пользователь не аутентифицирован для пользования службой печати.
Код: 0×0403; Значение: ClientErrorNotAuthorized (Не Санкционирован - Ошибка Клиента); Использование: Пользователь не санкционирован для создания работы по распечатке.
Код: 0×0404; Значение: ClientErrorNotPossible (Нет Возможности - Ошибка Клиента); Использование: Служба печати не может удовлетворить требованиям, так как не способна обработать все установки в jobTicket, когда клиент подает готовые к печати данные.
Код: 0×040а; Значение: ClientErrorDoumentFormatNotSupported (Формат Документа Не Поддерживается - Ошибка Клиента); Использование: Исходный формат документа не поддерживается.
Код: 0×0411; Значение: ClientErrorDocumentFormatError (Ошибка Формата Документа - Ошибка Клиента); Использование: Исходный документ неверно составлен.
Код: 0412; Значение: ClientErrorDocumentAccessError (Ошибка Доступа к Документу - Ошибка Клиента); Использование: Служба печати не может обратиться к содержанию документа.
Код: 0×0500; Значение: ServerErrorInternalError (Внутренняя Ошибка - Серверная Ошибка); Использование: Это код улавливания всех ошибок для всех внутренних ошибок.
Код: 0×0506; Значение: ServerErrorNotAcceptingJobs (Нет Приема Работ - Серверная Ошибка); Использование: Служба печати по некоторым причинам не принимает новых работ печати.
Код: 0×0509; Значение: ServerErrorMultipleDocumentJobsNotSupported (Работы с Множеством Документов Не Поддерживаются - Серверная Ошибка); Использование: Служба печати не принимает запроса на печать, который содержит множество документов.
2. ОтменитьРаботуПечати
Служба печати исключает заданную работу печати после проверки пользовательского удостоверения.
Аргументы:
Поле Данных: jobID (Идентификатор работы)
Напр: IN; Тип: unit; M/O: M
Комментарий: Уникальный идентификационный номер работы при возвращении в ответе СоздатьРаботуПечати.
Поле Данных: userCredential (пользовательское Удостоверение)
Напр: IN; Тип: string (строка); М/О: О
Комментарий: Если работа была создана с пользовательским удостоверением, то для ее отмены требуется то же самое удостоверение.
Код Ошибки:
Код: 0×0000; Значение кода: SuccessfulOK (ОК Успешно); Использование: Работа успешно исключена.
Код: 0×0400; Значение кода: ClientErrorBadRequest (Плохой запрос - Ошибка Клиента); Использование: Запрос неверно составлен, например недостоверный идентификатор работы или работа уже отменена.
Код: 0×0402; Значение кода: ClientErrorNotAuthenticated (Не Аутентифицирован - Ошибка Клиента); Использование Пользователь не аутентифицирован.
Код: 0×0403; Значение кода: ClientErrorNotAuthorized (Не Санкционирован - Ошибка Клиента); Использование: Пользователь не санкционирован исключать заданную работу (к примеру, чью-то еще работу).
Код: 0×0500; Значение кода: Код улавливания всех ошибок для всех внутренних ошибок.
3. ПолучитьДанныеРаботыПечати
Этот метод возвращает набор данных работы печати, связанный с заданным идентификатором работы, как перечисляется ниже. Работа может быть в любом из состояний: "принято", "распечатка", "отменено" или "завершено". Каждая служба печати решает, как долго она будет поддерживать данные для работы по распечатке.
Отметим, что когда запрос на печать включает в себя не зависящий от устройства формат документа (такой как .DOC), установки печати, которые поступают вместе с запросом, рассматриваются как "рекомендации". Служба может регулировать установки для того, чтобы разрешить конфликты (такие как "цветная" И "двусторонняя печать") на основании своих возможностей. Клиент может вызвать ПолучитьДанныеРаботыПечати, чтобы найти действительные установки и известить пользователя, если это нужно. Аргументы:
Поле Данных: jobID (Идентификатор работы)
Напр: IN; Тип: unit; M/O: M
Комментарий: Уникальный идентификационный номер работы при возвращении в отклике СоздатьРаботуПечати.
Поле Данных: userCredential (пользовательское Удостоверение)
Напр: IN; Тип: string (строка); М/О: О
Комментарий: Требуется, если работа по распечатке создавалась с пользовательским удостоверением.
Поле Данных: jobState (Состояние работы)
Напр: OUT; Тип: string (строка); М/О: М
Комментарий: Текущий статус работы: "принято", "распечатка", "отменено" или "завершено".
Поле Данных: timeOfSubmission (время Подачи)
Напр: OUT; Тип: string (строка); М/О: М
Комментарий: Закодированная отметка времени, когда принята работа по распечатке. Формат - ISO 8601. Местное время представляется как ГГГГММДДВЧЧММСС, а универсальное скоординированное время (UTC) как ГГГГММДДВЧЧММССZ.
Поле Данных: jobName (Название работы)
Напр: OUT; Тип: string (строка); М/О: М
Комментарий: Название работы по распечатке.
Поле данных: userName (Имя пользователя)
Напр: OUT; Тип: string (строка); М/О: М
Комментарий: Имя пользователя, кому принадлежит эта работа.
Поле данных: printer (принтер)
Напр: OUT; Тип: string (строка); М/О: О
Комментарий: Принтер, к которому посылается работа по распечатке.
Поле Данных: numOfCopies (число Копий)
Напр: OUT; Тип: unit; M/O: M
Комментарий: Число копий, подлежащих распечатке.
Поле Данных: nUp
Напр: OUT; Тип: string (строка); M/O: M
Комментарий: Описание размещения. Если пользователь конкретизировал формат размещения при создании работы печати, он может быть модифицирован для разрешения конфликтов и иных ограничений.
Поле Данных: duplex (двунаправленной передачи)
Напр: IN; Тип: string (строка); M/O: М
Комментарий: Установка двунаправленной передачи. Если пользователь конкретизировал установку двунаправленной передачи при создании работы печати, он может быть модифицирован для разрешения конфликтов и иных ограничений.
Поле Данных: isColor (Цветной)
Напр: OUT; Тип: bool (булевый); M/O: M
Комментарий: Указывает, цветная это работа или нет.
Поле Данных: paperType (Тип бумаги)
Напр: OUT; Тип: string (строка); M/O: M
Комментарий: Тип бумаги, используемый для работы по распечатке. Если пользователь конкретизировал тип бумаги при создании работы печати, он может быть модифицирован для разрешения конфликтов и иных ограничений.
Поле Данных: bindingType (Тип скрепления)Напр: OUT; Тип: string (строка); M/O: M
Комментарий: Тип скрепления, используемый для работы печати. Если пользователь конкретизировал тип скрепления при создании работы печати, он может быть модифицирован для разрешения конфликтов и иных ограничений.
Поле Данных: completionTime (Время завершения)
Напр: OUT; Тип: Byte [] (байт []); M/O: O
Комментарий: Предельный срок, когда ожидается завершение и работы печати. Формат - ISO 8601. Местное время представляется как ГГГГММДДВЧЧММСС, а универсальное скоординированное время (UTC) как ГГГГММДДВЧЧММССZ.
Поле Данных: printingCost (Стоимость распечатки)
Напр: OUT; Тип: string (строка); M/O: O
Комментарий: Используется, когда служба выставляет счет за печать.
Поле Данных: mailingCost (Стоимость пересылки)
Напр: OUT; Тип: string (строка); М/О: О
Комментарий: Используется, когда распечатанные страницы посылаются пользователю.
Код ошибки:
ПолучитДанныеРаботыПечати имеет тот же самый набор кодов ошибки, что и ОтменитьРаботуПечати.
4. ПоддерживаетсяФормат
Если служба печати поддерживает этот метод, она должна возвратить "истинно", если данный формат поддерживается. В противном случае возвращается "ложно".
Аргументы:Поле Данных: docFormat (Формат документа)
Напр: IN; Тип: string (строка); М/О: М
Комментарий: Название формата документа.
Поле данных: supported (поддерживается)
Напр: OUT; Тип: bool (булевый); М/О: М
Комментарий: истинно или ложно.
Код Ошибки:
Код: 0×0000; Значение кода: SuccessfulOK (ОК Успешно); Использование: Запрос успешно выполнен.
Код: 0×0400; Значение кода: ClientErrorBadRequest (Плохой Запрос - Ошибка Клиента); Использование: Запрос неверно составлен, например, с нулевым параметром 'docFormat'.
Код: 0×0500; Значение кода: ServerErrorInternalError (Внутренняя Ошибка - Серверная Ошибка); Использование: Код улавливания всех ошибок для всех внутренних ошибок.
Код: 0×0501; Значение кода: ServerErrorOperationNotSupported (Операция Не Поддерживается - Серверная Ошибка); Использование: Служба печати не поддерживает этот способ.
5. ПолучитьПоддерживаемыеФорматы
Если служба печати поддерживает этот метод, она должна возвратить перечень поддерживаемых форматов документов.
Аргументы:
Поле Данных: supportedFormats (поддерживаемые Форматы)
Напр: OUT; Тип: string (строка); М/О: М
Комментарий: Набор форматов документов.
Код Ошибки:
Имеет тот же самый набор кодов ошибки, что и ПоддерживаетсяФормат.
Отметим, что если клиент имеет средство (такое как специальный драйвер принтера), чтобы выполнить преобразования форматов документов (например, из формата Visio в PDF), он может использовать метод ПолучитьПоддерживаемыеФорматы, чтобы найти оптимальный формат подачи запроса. В противном случае, он может использовать метод ПоддерживаетсяФормат, чтобы запросить, можно ли распечатать интересующий его документ. Клиент не должен вызывать какой-либо метод, чтобы подтвердить правильность формата документа. Если он этого не делает, а поданный формат не поддерживается, служба печати возвратит код ошибки ClientErrorDocumentFormatNotSupported (Формат Документа Не Поддерживается - Ошибка Клиента).
6. ПолучитьМоделиПринтеров
Если служба печати поддерживает этот метод, она должна возвратить перечень названий принтеров (например, "HP LaserJet 8000"), которые используются. Этот метод предназначен для богатых клиентов ПК, чтобы посылать готовые к печати данные к службе печати непосредственно для оптимального визуализирующего печать качества.
Аргументы:
Поле Данных: printerModels (Модели принтеров)
Напр: OUT; Тип: string (строка); М/О: М
Комментарий: Матрица названий моделей принтеров.
Код Ошибки:
Тот же самый, что и для ПоддерживаетсяФормат.
ОПРЕДЕЛЕНИЕ ЯОВС (ЯЗЫКА ОПИСАНИЯ ВЕБ-СЛУЖБЫ) (WSDL) В соответствии с признаком варианта выполнения согласно изобретению для того, чтобы повысить универсальность интерфейса службы печати для веб-служб печати в Интернет, для описания интерфейса службы печати предлагается Язык Описания Веб-Службы (ЯОВС) (WSDL), основанный на XML. Он определяет форматы сообщений, которым необходимо следовать, когда клиенты обмениваются сообщениями в веб-службой печати. Отметим, что для конкретного воплощения описание ЯОВС может слегка изменяться в терминах требуемых и необязательных параметров ('minOccurs'). Кроме того, нужно будет модифицировать пространство имен по умолчанию и местоположение службы печати.
<?xml version="1.0" encoding="utf-8"?>
<definitions
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:s0="http://tempuri.org/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://tempuri.org/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified"
targetNamespace="http://tempuri.org/">
<s:element name="CreatePrintJob">
<s:complexType><s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="jobName" type="s:string" />
<s:element minOccurs="1" maxOccurs="1"
name="userName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
"name="userCredential" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="docLink" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="docContent" type="s:base64Binary"/>
<s:element minOccurs="0" maxOccurs="1"
name="docFormat" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="targetPrinter" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="numOfCopies" type="s:unsignedInt" />
<s:element minOccurs="0" maxOccurs="1"
name="duplex" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="nUp" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="isColor" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1"
name="paperType" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="bindingType" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1"
name="jobTicket" type="s:base64Binary" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="CreatePrintJobResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="CreatePrintJobResult" type="s:unsignedInt" />
<s:element minOccurs="1" maxOccurs="1"
name="jobID" type="s:unsignedInt" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="CancelPrintJob">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="jobID" type="s:unsignedInt" />
<s:element minOccurs="0" maxOccurs="1" name="userCredential" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="CancelPrintJobResponse">
<s:complexType><s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="CancelPrintJobResult" type="s:unsignedInt" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetPrintJobData">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="jobID" type="s:unsignedInt" />
<s:element minOccurs="0" maxOccurs="1" name="userCredential" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetPrintJobDataResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="GetPrintJobDataResult" type="s:unsignedInt" />
<s:element minOccurs="1" maxOccurs="1"
name="jobState" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="errorCode" type="s:unsignedInt" />
<s:element minOccurs="1" maxOccurs="1"
name="timeOfSubmission" type="s:string" /><s:element minOccurs="1" maxOccurs="1"
name="jobName" type="s:string" />
<s:element minOccurs="1" maxOccurs="1"
name="userName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="printer" type="s:string" />
<s:element minOccurs="1" maxOccurs="1"
name="numOfCopies" type="s:unsignedInt" />
<s:element minOccurs="1" maxOccurs="1"
name="duplex" type="s:string" />
<s:element minOccurs="1" maxOccurs="1"
name="nUp" type="s:string" />
<s:element minOccurs="1" maxOccurs="1"
name="isColor" type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1"
name="paperType" type="s:string" />
<s:element minOccurs="1" maxOccurs="1"
name="bindingType" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="completionTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="printingCost" type="s:string" />
<s:element minOccurs="0" maxOccurs="1"
name="mailingCost" type="s:string" />
</s:sequence>
</s:complexType>
</s:element><s:element name ="IsFormatSupported">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="docFormat" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="IsFormatSupportedResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="IsFormatSupportedResult" type="s:unsignedInt" />
<s:element minOccurs="1" maxOccurs="1"
name="supported" type="s:boolean" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetSupportedDocFormats">
<s:complexType />
</s:element>
<s:element name="GetSupportedDocFormatsResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="GetSupportedDocFormatsResult" type="s:unsignedInt" />
<s:element minOccurs="1" maxOccurs="1"name="supportedDocFormats" type="s0:ArrayOfString" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfString">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
</s:sequence>
</s:complexType>
<s:element name="GetPrinterModels">
<s:complexType />
</s:element>
<s:element name="GetPrinterModelsResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
names"GetPrinterModelsResult" type="s:unsignedInt" />
<s:element minOccurs="1" maxOccurs="1" name="printerModels" type="s0:ArrayOfString" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="unsignedInt" type="s:unsignedInt" />
</s:schema>
</types>
<message name="CreatePrintJobSoapIn"><part name="parameters" element="s0:CreatePrintJob" />
</message>
<message name="CreatePrintJobSoapOut">
<part name="parameters"
element="s0:CreatePrintJobResponse" />
</message>
<message name="CancelPrintJobSoapIn">
<part name="parameters" element="s0:CancelPrintJob" />
</message>
<message name="Cancel PrintJobSoapOut">
<part name="parameters"
element="s0:CancelPrintJobResponse" />
</message>
<message name="GetPrintJobDataSoapIn">
<part name="parameters" element="s0:GetPrintJobData" />
</message>
<message name="GetPrintJobDataSoapOut">
<part name="parameters" element="s0:GetPrintJobDataResponse" />
</message>
<message name="IsFormatSupportedSoapIn">
<part name="parameters" element="s0:IsFormatSupported" />
</message>
<message name="IsFormatSupportedSoapOut">
<part name="parameters"
element="s0:IsFormatSupportedResponse" />
</message><message name="GetSupportedDocFormatsSoapIn">
<part name="parameters"
element="s0:GetSupportedDocFormats" />
</message>
<message name="GetSupportedDocFormatsSoapOut">
<part name="parameters" element="s0:GetSupportedDocFormatsResponse" />
</message>
<message name="GetPrinterModelsSoapIn">
<part name="parameters" element="s0:GetPrinterModels" />
</message>
<message name="GetPrinterModelsSoapOut">
<part name="parameters" element="s0:GetPrinterModelsResponse" />
</message>
<portType name="WebPrintServiceSoap">
<operation name="CreatePrintJob">
<input message="s0:CreatePrintJobSoapIn" />
<output message="s0:CreatePrintJobSoapOut" />
</operation>
<operation name="CancelPrintJob">
<input message="s0:CancelPrintJobSoapIn" />
<output message="s0:CancelPrintJobSoapOut" />
</operation>
<operation name="GetPrintJobData">
<input message="s0:GetPrintJobDataSoapIn" />
<output message="s0:GetPrintJobDataSoapOut" /></operation>
<operation name="IsFormatSupported">
<input message="s0:IsFormatSupportedSoapIn" />
<output message="s0:IsFormatSupportedSoapOut" />
</operation>
<operation name="GetSupportedDocFormats">
<input message="s0:GetSupportedDocFormatsSoapIn" />
<output message="s0:GetSupportedDocFormatsSoapOut" />
</operation>
<operation name="GetPrinterModels">
<input message="s0:GetPrinterModelsSoapIn" />
<output message="s0:GetPrinterModelsSoapOut" />
</operation>
</portType>
<binding name="WebPrintServiceSoap"
type="s0:WebPrintServiceSoap">
<soap:binding
transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<operation name="CreatePrintJob">
<soap:operation
soapAction="http://tempuri.org/CreatePrintJob"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output><soap:body use="literal" />
</output>
</operation>
<operation name="CancelPrintJob">
<soap:operation
soapAction="http://tempuri.org/CancelPrintJob"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="GetPrintJobData">
<soap:operation
soapAction="http://tempuri.org/GetPrintJobData"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="IsFormatSupported">
<soap:operationsoapAction="http://tempuri.org/IsFormatSupported"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="GetSupportedDocFormats">
<soap:operation
soapAction="http://tempuri.org/GetSupportedDocFormats" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="GetPrinterModels">
<soap:operation
soapAction="http://tempuri.org/GetPrinterModels" style="document" />
<input>
<soap:body use="literal" />
</input><output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="WebPrintService">
<documentation>web print service.</documentation>
<port name="WebPrintServiceSoap" binding="s0:WebPrintServiceSoap">
<soap:address
location="http://localhost/PCPrintPortal/WebPrintService.asmx"/>
</port>
</service>
</definitions>
Учитывая многие возможные варианты выполнения, к которым можно применить принципы данного изобретения, следует понимать, что описанный здесь вместе с чертежами вариант выполнения считается лишь иллюстративным и не должен приниматься как ограничивающий объем изобретения. Поэтому описанное здесь изобретение предполагает все такие варианты выполнения как входящие в объем нижеследующей формулы изобретения и эквивалентов.
Изобретение относится к компьютерной службе печати. Техническим результатом является предоставление пользователям мобильных вычислительных устройств, таких как носимые компьютеры, персональные цифровые ассистенты (ПЦА) и сотовые веб-телефоны, возможности распечатывать документы без непосредственного подключения к принтеру с помощью подключения к сети, такой как Интернет или корпоративная интрасеть. Когда пользователь мобильного устройства хочет распечатать документ, мобильное устройство использует доступ к службе печати и посылает запрос на печать, который включает в себя данные, идентифицирующие подлежащий распечатке документ и формат документа, выбранный клиентом из списка форматов документов, поддерживаемых службой печати. На основе данных запроса на печать служба печати определяет местоположение клиента и целевой принтер из фонда, состоящего из одного и более принтеров, соответствующих упомянутому местоположению, проверяет достоверность запроса на печать, извлекает документ, преобразует документ для распечатки и печатает документ в соответствии с запросом пользователя. Мобильным устройством службе печати может быть предоставлен непосредственно сам документ или доступ к унифицированному указателю ресурсов (УУР), идентифицирующему его местоположение в сети. 3 н. и 29 з.п.ф-лы, 4 ил.
ЕР 1193911 А2, 03.04.2002 | |||
СПОСОБ ПРЕДОСТАВЛЕНИЯ ПОЛЬЗОВАТЕЛЯМ ТЕЛЕКОММУНИКАЦИОННОЙ СЕТИ ДОСТУПА К ОБЪЕКТАМ | 1998 |
|
RU2169437C1 |
US 2002013869 А1, 31.01.2002 | |||
US 2002042263 А1, 11.04.2002. |
Авторы
Даты
2008-05-27—Публикация
2003-06-25—Подача