Высокоточное отображение документов в клиентах просмотра

Изобретение относится к инструментам и технологиям для высокоточного отображения документов в клиентах просмотра. Техническим результатом является расширение функциональных возможностей отображения документов за счет автоматического предоставления данных для просмотра клиенту в зависимости от его аппаратных возможностей. Способы, обеспеченные этими инструментами и технологиями, могут обнаруживать, имеет ли клиентская система подключаемый программный модуль, установленный для отображения содержимого с высокой точностью, в ответ на обнаружение, что данная клиентская система имеет установленный подключаемый программный модуль отображения, эти способы могут выбрать первый формат высокой точности, совместимый с упомянутым подключаемым программным модулем, для отображения содержимого на клиентской системе. Однако в ответ на обнаружение того, что данная клиентская система не имеет установленного подключаемого программного модуля отображения, данные способы могут выбрать второй формат высокой точности для отображения содержимого на клиентской системе без установки упомянутого подключаемого программного модуля на клиентской системе. 3 н. и 17 з.п. ф-лы, 8 ил.

 

ОПИСАНИЕ ПРЕДШЕСТВУЮЩЕГО УРОВНЯ ТЕХНИКИ

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

На фигуре 1 приведена объединенная функциональная схема и блок-схема, иллюстрирующие системы или операционные среды, позволяющие высокоточное отображение документов в клиентах просмотра.

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

На фигуре 3 показана блок-схема, иллюстрирующая процессы, продолжающие процессы, показанные на фигуре 2.

На фигуре 4 показана блок-схема, иллюстрирующая процессы, продолжающие процессы, показанные на фигуре 3.

На фигуре 5 показана блок-схема, иллюстрирующая процессы для форматирования страниц для программ просмотра на стороне клиента.

На фигуре 6 показана блок-схема, иллюстрирующая процессы для ответа на пользовательские выборы содержимого, как предусмотрено для программ просмотра на стороне клиента.

На фигуре 7 показана блок-схема, иллюстрирующая процессы для ответа на дополнительные команды пользователя.

На фигуре 8 показана блок-схема, иллюстрирующая процессы, посредством которых подсистема просмотра на стороне клиента может позволить клиентской системе проводить поиск в содержимом, расположенном удаленно от данной клиентской системы.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

Нижеследующее подробное описание направлено на технологии для высокоточного отображения документов в клиентах подсистемы просмотра. Хотя объект изобретения, описанный в настоящем документе, представлен в общем контексте программных модулей, которые исполняются в сочетании с выполнением операционной системы и программных приложений на компьютерной системе, специалисты в данной области техники признают, что другие реализации можно совершить в сочетании с другими видами программных модулей. Как правило, программные модули включают в себя подпрограммы, программы, компоненты, структуры данных и другие виды структур, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Более того, специалисты в данной области техники оценят, что объект изобретения, описанный в настоящем документе, можно применить с другими конфигурациями компьютерных систем, включая в себя портативные устройства, мультипроцессорные системы, микропроцессорную или программируемую бытовую электронную технику, миникомпьютеры, универсальные ЭВМ и тому подобное.

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

На фигуре 1 показаны системы или операционные среды, обозначаемые в целом как пункт 100, которые позволяют высокоточное отображение документов в клиентах просмотра. Эти системы 100 могут включать в себя одну или несколько клиентских систем 102, которые позволяют одному или нескольким пользователям 104 выдавать соответствующие команды 106 для загрузки документов в одну или несколько серверных систем 108. На фигуре 1 предоставлен пример, включающий в себя одного пользователя, одну клиентскую систему и одну серверную систему только для ясности и иллюстрации. Однако варианты реализации данного изобретения могут включать в себя любое число пользователей, клиентских систем и серверных систем.

Клиентские системы 102 и их серверные системы 108 могут обмениваться данными посредством одной или нескольких промежуточных сетей 110 связи. Эти сети по своему характеру могут быть глобальными, региональными, местными или персональными и могут применять различные протоколы, целесообразные в различных вариантах реализации.

Графические элементы, использованные на фигуре 1 для обозначения клиентских систем и серверных систем, выбраны только для облегчения иллюстрации и не ограничивают возможные варианты реализации данного изобретения. Более конкретно, на фигуре 1 показаны примеры, в которых серверная система 108 является централизованной компьютерной системой, возможно разделяемой более чем одной клиентской системой. Клиентская система 102 может представлять собой относительно стационарные настольные системы, также как мобильные компьютерные системы (например, компактные компьютеры, блокнотные компьютеры и другие виды портативных компьютерных систем). В дополнение к этому, клиентская система 102 может представлять собой карманные персональные компьютеры (PDA) с возможностями беспроводной передачи данных и установленными на них программными компонентами для выполнения различных инструментов и технологий, описанных в настоящем документе. Однако настоящее изобретение также предполагает и другие виды клиентских систем и серверных систем, включая в себя, но не ограничиваясь теми, что показаны на фигуре 1.

Обращаясь к клиентским системам 102 более подробно, данные клиентские системы могут включать в себя один или несколько процессоров 112, которые могут иметь определенный вид или архитектуру, выбранные в соответствии с определенными вариантами реализации. Процессоры 112 могут подключаться к одной или нескольким системам шин 114, выбранным для совместимости с данными процессорами 112.

Клиентские системы 102 также могут включать в себя один или несколько вариантов машиночитаемого носителя 116 данных, которые подключаются к системам шин 114. Данные системы шин могут позволять процессорам 112 считывать код и/или данные на/из машиночитаемого носителя 116 данных. Носитель 116 может представлять собой запоминающие устройства, реализованные с использованием любой подходящей технологии, включая в себя, но не ограничиваясь, полупроводники, магнитные материалы, оптические средства или что-либо в этом роде. Носитель 116 может включать в себя запоминающие устройства, которые классифицируются как ОЗУ, ПЗУ, флэш-память или другие виды, а также могут представлять собой накопители на жестких магнитных дисках.

Носитель 116 данных может содержать один или несколько модулей инструкций, которые, в случае загрузки в процессор 112 и исполнения, вызывают выполнение клиентской системой 102 различных технологий для высокоточного отображения документов в клиентах просмотра, как предназначено клиентским системам 102 в данном описании. Как подробно описано на протяжении всего данного описания, клиентские системы 102 и серверные системы 108 могут взаимодействовать для предоставления различных услуг, описанных в настоящем документе.

Машиночитаемый носитель 116 данных может содержать один или несколько модулей, предоставляющих программы 118 просмотра на стороне клиента. Данные программы 118 просмотра на стороне клиента могут включать в себя программное обеспечение обозревателя, улучшенное возможностями, описанными в настоящем документе, для поддержки нескольких высокоточных форматов при отображении содержания документов на клиентской системе. В некоторых отдельных случаях данные клиентские системы могут содержать подключаемое программное обеспечение, позволяющее программам просмотра отображать содержимое с высокой точностью на данном клиенте, используя данный формат отображения. Примеры подобного подключаемого программного обеспечения могут включать в себя мультимедийные технологии FLASH™, доступные от Adobe Systems, подключаемый программный модуль обозревателя SILVERLIGHT™, доступный от корпорации Microsoft, или другие подключаемые программные модули обозревателя, предлагающие похожие возможности.

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

Первоначально программа просмотра на стороне клиента может принять команду на загрузку одного или более документов на серверную систему 108 через сеть 110 передачи данных. На фигуре 1 загружаемый документ, передаваемый из клиентской системы на серверную систему, в целом обозначен пунктом 120.

Обращаясь более подробно к серверной системе 108, данные серверные системы могут включать в себя один или несколько процессоров 122, которые могут быть определенного вида или архитектуры, выбранной в соответствии с определенным вариантом реализации. Процессоры 122 могут иметь, а могут и не иметь ту же архитектуру, что и процессоры 112. Процессоры 122 могут подключаться к одной или нескольким системам шин 124, выбранным для совместимости с процессорами 122, и могут относиться или не относиться к тому же виду или архитектуре, что и системы шин 114.

Серверные системы 108 могут также включать в себя один или несколько вариантов машиночитаемого носителя 126 данных, подключаемых к системам шин 124. Данные системы шин могут позволять процессорам 122 считывать код и/или данные на/из машиночитаемого носителя 126 данных. Носитель 126 может представлять собой запоминающие устройства, реализованные с использованием любой подходящей технологии, включая в себя, но не ограничиваясь, полупроводники, магнитные материалы, оптические средства или что-либо в этом роде. Носитель 126 может включать в себя запоминающие устройства, которые классифицируются как ОЗУ, ПЗУ, флэш-память или другие виды, а также могут представлять собой накопители на жестких магнитных дисках.

Носитель 126 данных может содержать один или несколько модулей инструкций, которые, в случае загрузки в процессор 122 и исполнения, вызывают выполнение клиентской системой 108 различных технологий для высокоточного отображения документов в клиентах просмотра, как предназначено серверным системам 108 в данном описании. Как подробно описано на протяжении всего данного описания, клиентские системы 102 и серверные системы 108 могут взаимодействовать для предоставления различных услуг, описанных в настоящем документе.

Машиночитаемый носитель 126 данных может содержать один или несколько модулей стороны сервера, обеспечивающих предварительный просмотр документа и поисковые услуги, обычно обозначаемые пунктом 128. Первоначально данные услуги 128 могут сохранять загруженный документ 120 в хранилище 130 документов для последующей ссылки пользователем 104 или другими, не показанными, пользователями. На фигуре 1 упомянутый документ обозначен как загруженный в хранилище документов в пункте 132. Хранилище 130 документов может хранить множество документов 134 в интересах ряда различных пользователей 104 и клиентских систем 102.

Документы 134 могут представлять собой документы, доступные для чтения ряду различных соответствующих приложений, будь то приложения, выполняющие электронную обработку текстов, анализ электронных таблиц, ведение базы данных, передачу почты или обмен данными, планирование и тому подобное. В некоторых случаях некоторые или все данные приложения можно объединять и продавать совместно. Например, корпорация Microsoft предлагает наборы подобных приложений под торговой маркой OFFICE®, но другие продавцы программного обеспечения могут предлагать другие наборы приложений, которые могут реализовать данное описание целиком или частично.

Как предоставлено более детально на протяжении этого описания, инструменты и технологии, предоставленные в настоящем документе, позволяют клиентским системам отображать, по меньшей мере, часть документов 134 с высокой точностью без запуска приложений, обычно используемых для открытия и редактирования этих документов. Констатируется, что термин "высокая точность" используется в настоящем документе для проведения отличия от термина "полная точность воспроизведения". Последний из двух терминов предполагает законченную 100% точность между тем, как документ выглядит, при открытии в соответствующем приложении, по сравнению с просмотром в программе 118 просмотра.

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

Описав общие системы или операционные среды 100 на фигуре 1, пояснение теперь переходит к последовательности процессов, посредством которых клиентские системы могут запрашивать конкретные документы для высокоточного просмотра на данных клиентских системах. Это описание предоставлено здесь с фигурой 2.

На фигуре 2 показаны последовательности процессов, обозначенных в целом как пункт 200, посредством которых клиентские системы могут запрашивать конкретные документы для просмотра с высокой точностью на подобных устройствах. Для облегчения упоминаний и описания, но не с целью ограничения возможных вариантов реализации, на фигуру 2 могут переноситься некоторые элементы из предыдущих чертежей, помеченные теми же самыми номерами ссылок. Например, последовательность 200 процессов описана применительно к программе 118 просмотра на стороне клиента и услуге 128 предварительного просмотра документа и поиска на стороне сервера. Однако варианты реализации данного изобретения могут выполнять последовательности 200 процессов на других компонентах, не отклоняясь от объема и сущности данного изобретения.

Обращаясь к последовательностям 200 процессов более подробно, блок 202 в целом представляет собой запрос списка документов, доступных на серверной системе для поиска и просмотра. Например, клиентская система 102 может выполнять блок 202 в ответ на команду от пользователя 104. На фигуре 2 запрос списка документов обозначен пунктом 204.

На сервере блок 206 в целом представляет собой прием запроса на список документов. В свою очередь, услуга 128 поиска может соотнестись с хранилищем 130 документов и определить, какие документы 134 разрешены для доступа пользователю 104.

Блок 208 в целом представляет собой посылку клиентской системе образов доступных документов для представления в программе 118 просмотра на стороне клиента. Эти образы доступных документов в целом обозначены на фигуре 2 как пункт 210.

На клиентской системе блок 212 в целом представляет собой прием образов, доступных запрашивающему пользователю документов, хранящихся на серверной системе. В свою очередь, программа 118 просмотра на стороне клиента может представлять пользователю список этих доступных документов, как представлено в целом в блоке 214. Пользователь может обозревать список доступных документов и выбирать упомянутый документ для просмотра на клиентской системе, как представлено в целом блоком 216.

Для упрощения иллюстрации, но не с целью ограничения возможных вариантов реализации, последовательность 200 процессов продолжается на фигуре 3, как обозначено посредством межстраничной ссылки 218. Теперь рассмотрение продолжается фигурой 3.

На фигуре 3 показаны последовательности процесса, обозначенные в целом как пункт 300, которые, как обозначено межстраничной ссылкой 302, продолжают последовательности 200 процессов, показанные на фигуре 2. Программа 118 просмотра на стороне клиента и услуга 128 поиска и предварительного просмотра документов переходят на фигуру 3.

Блок 304 принятия решения в целом представляет собой оценку, имеет ли данная клиентская система установленный компонент подключаемого программного модуля для упомянутого формата высокой точности. Как описано выше, примеры таких подключаемых программных модулей могут включать в себя компоненты программного обеспечения, предлагаемые под торговыми марками FLASH™, SILVERLIGHT™, или другие компоненты, имеющие схожие возможности.

Из блока 304, если данная клиентская система имеет установленный компонент подключаемого программного модуля, последовательности 300 процессов могут следовать по ветке 306 "Да" в блок 308. Блок 308 представляет собой выбор формата, поддерживаемого подключаемым программным модулем для отображения содержимого на клиентской системе для представления посредством программы 118 просмотра на стороне клиента.

Возвращаясь к блоку 304 принятия решения, если данная система не имеет установленного компонента подключаемого программного модуля, то последовательности 400 процессов могут следовать по ветке 310 "Нет" в блок 312. Блок 312 в целом представляет собой выбор формата изображения для отображения содержания документа с высокой точностью на клиентской системе. Вышеприведенное обсуждение предоставляет пример использования формата изображения PNG; однако в различных вариантах реализации могут быть подходящими другие форматы изображения. Например, если большая часть содержания данной страницы является изображением, то эту конкретную страницу можно отобразить как изображение в формате JPG для обеспечения более высокого качества изображения и более высокого коэффициента сжатия.

Блок 314 в целом представляет собой запрос предварительного просмотра документа, выбранного в блоке 216. Блок 314 может включать в себя запрос на представление предварительного просмотра документа в формате, определенном блоком 304 принятия решения. На фигуре 3 в пункте 316 в целом представлен запрос выбранного документа вместе с обозначением формата, поддерживаемого клиентской системой.

На серверной системе блок 318 в целом представляет собой прием запроса 316 на выбранный документ. Блок 318 может включать в себя прием обозначения формата, поддерживаемого клиентской системой.

Блок 320 в целом представляет собой извлечение выбранного документа в ответ на запрос 316. Блок 320 может включать в себя извлечение запрашиваемого документа из хранилища документов (например, 130 на фигуре 1).

Блок 322 в целом представляет собой форматирование страниц в запрашиваемом документе соответствующим образом для клиента просмотра. Например, блок 322 может содержать преобразование или отображение страниц в представление в виде изображения, или представление XAML. Например, этот процесс преобразования может включать в себя использование файлов .dll, разделяемых с клиентским приложением, чтобы загрузить и/или прочитать страницы документа, разбить содержание документа на страницы, кадры или другие удобные представления. Преобразование также может включать в себя выполнение эмуляции процесса печати в расширенном формате метафайла (например, EMF, как более подробно описано ниже) и использование упомянутого EMF для страницы для получения для данной страницы или представления в виде изображения, или представления XAML. Как дополнительно подробно описано ниже, этот процесс преобразования также может создавать позиционные метаданные, используемые в операциях выбора/поиска, предоставленных в настоящем описании.

После того как блок 322 отформатирует некоторый поднабор страниц в запрашиваемом документе, блок 324 обозначает посылку поднабора размеченных страниц запрашивающей клиентской системе. На фигуре 3 поднабор размеченных страниц в целом обозначен как пункт 326.

Параллельно с блоком 324, в котором поднабор страниц посылается клиентским системам, блок 322 может продолжать форматирование дополнительных страниц документа, как обозначено в целом посредством стрелки 328. Таким образом, как дополнительно описано ниже, услуга 128 поиска и предварительного просмотра документа может позволить программе 118 просмотра на стороне клиента начать представление приготовленного набора страниц в то время, пока сервер продолжает преобразование оставшейся части документа в соответствующий формат. Таким образом, клиентская система не ждет, пока сервер отформатирует весь документ до возможности видеть, по меньшей мере, часть содержания документа. Иначе говоря, приписывание в настоящем документе позволяет клиентской системе и серверу обеспечить инкрементный просмотр содержания документа.

Обращаясь к программе 118 просмотра на стороне клиента, блок 330 в целом представляет собой прием поднабора размеченных страниц 326. В свою очередь, блок 332 представляет собой воспроизведение этого поднабора страниц через программу 118 просмотра. Таким образом, блок 332 может дать возможность пользователю (например, 104) предварительно просмотреть, например, несколько первых страниц в данном документе в выбранном формате высокой точности, без ожидания, пока сервер отформатирует или преобразует весь упомянутый документ.

Для упрощения иллюстрации, но не с целью ограничения возможных вариантов реализации, описание иллюстративных последовательностей 300 процессов продолжается на фигуре 4, как обозначено межстраничной ссылкой 334. Описание этих последовательностей процессов теперь продолжится с фигурой 4.

На фигуре 4 показаны продолжающиеся аспекты, обозначенные в целом пунктом 400, последовательностей процессов, перешедшие с фигур 2 и 3. На фигуре 4 имеется межстраничная ссылка 402, соединяющая последовательности 400 процессов с последовательностями 300 процессов, показанными на фигуре 3. Для облегчения упоминаний и описания, но не с целью ограничения возможных вариантов реализации, на фигуру 4 могут переноситься некоторые элементы из предыдущих чертежей, помеченные теми же самыми номерами ссылок. Например, на фигуру 4 перенесена программа 118 просмотра на стороне клиента и услуга 128 поиска и предварительного просмотра документа на стороне сервера.

Обращаясь более подробно к последовательностям 400 процессов, блок 404 в целом представляет собой ответ на команды пользователя, направленные на страницы, ранее воспроизведенные в блоке 332. Эти команды могут включать в себя, например, команды перемещения или прокрутки, посредством которых пользователь может просматривать начальный поднабор страниц, полученный из упомянутого документа.

Блок принятия решения 406 представляет определение того, запрашивают ли выданные пользователем команды страницы, не доступные в настоящий момент программе просмотра на стороне клиента. Иначе говоря, блок 406 может определять, запрашивал ли пользователь страницу из содержания документа, не включенного в начальный поднабор полученных и размеченных страниц, обозначенный пунктом 326 на фигуре 3. Если блок 406 принятия решения определяет, что запрос пользователя можно удовлетворить страницами, доступными в настоящий момент в программе просмотра на стороне клиента, то последовательности 400 процессов могут выбрать ветку 408 "Нет" для возвращения в блок 404, который был описан выше.

Возвращаясь к блоку 406 принятия решения, если команды, выданные пользователем, запрашивают страницы, не включенные в начальный поднабор 326 страниц, последовательности 400 процессов могут выбрать ветку 410 "Да" к блоку 412. Блок 412 представляет собой запрос дополнительных страниц документа от сервера, при этом запрос в целом обозначен пунктом 414. Запрос 414 может указывать формат отображения для запрашивающего клиента, и также может указывать, посылать ли оставшиеся неотправленные страницы документа, или послать некоторый поднабор оставшихся неотправленных страниц.

На сервере блок 416 в целом представляет собой прием запроса 414 на дополнительные страницы упомянутого документа. Как представлено пунктом 328 на фигуре 3, пока клиент просмотра воспроизводит подготовленный поднабор размеченных и полученных страниц 326, серверная система параллельно работает над форматированием дополнительных страниц для возможной последующей посылки и представления клиентом просмотра. Таким образом, если от клиента просмотра прибывает запрос 414 на дополнительные страницы, серверная система может послать дополнительные страницы клиенту просмотра, как представлено в целом в пункте 418. Блок 418 может включать в себя посылку всех оставшихся неотправленных страниц документа, или может включать в себя другой поднабор этих оставшихся страниц. На фигуре 4 эти дополнительные страницы в целом обозначены пунктом 420.

Возвращаясь к клиентской системе, блок 422 в целом представляет собой прием дополнительных страниц 420 в ответ на запрос 414. В свою очередь, блок 424 представляет собой воспроизведение дополнительных страниц в программе 118 просмотра на стороне клиента. Как показано стрелкой, соединяющей блок 424 с блоком 404, последовательности 400 процессов могут возвращаться к блоку 404 для ожидания и ответа на пользовательские команды, направленные на дополнительные страницы, воспроизводимые в блоке 424.

Описав последовательности процессов, показанных на фигурах 2, 3 и 4, рассмотрение теперь обращается к описанию дополнительных подробностей, относящихся к форматированию страниц для клиентов просмотра. Это описание предоставлено здесь вместе с фигурой 5.

На фигуре 5 показаны последовательности процессов, в целом обозначенные пунктом 500, которые предоставляют дополнительные подробности, относящиеся к форматированию страниц для клиентов просмотра. Для облегчения упоминаний и описания, но не с целью ограничения возможных вариантов реализации, на фигуру 5 могут переноситься некоторые элементы из предыдущих чертежей, обозначенные теми же самыми номерами ссылок. Например, на фигуру 5 перенесена услуга 128 поиска и предварительного просмотра документа на стороне сервера. Более конкретно, последовательности 500 процессов конкретизируют блок 322 процесса, показанный на фигуре 3.

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

В некоторых вариантах реализации позиционные метаданные можно создавать в формате XML. Дополнительно, позиционные метаданные можно получить из представлений расширенного формата метафайла (EMF), произведенных серверной системой, в качестве промежуточного этапа в форматировании или преобразовании страниц документа для программ просмотра на стороне клиента. Тогда как EMF представления предоставлены здесь в качестве примера, варианты реализации данного изобретения могут использовать другие эквивалентные представления, предоставляющие признаки или возможности, сходные с EMF. Для примера, записи комментариев, относящихся к этим представлениям, могут задать структуру документа, а также предоставить семантическую информацию, которая обозначает, где начинается и заканчивается текст. Эта семантическая информация также может идентифицировать внутренние и внешние гиперссылки, встречающиеся на страницах данного документа. Представление EMF также может обозначать, где в документе встречаются чертежи или изображения.

Посредством объединения описанной выше структурной и семантической информации с информацией о чертежах или изображениях блок 502 может устанавливать различные виды информации, относящейся к данному документу, и включать эту информацию в метаданные, создаваемые для страниц упомянутого документа. К примеру, блок 504 представляет собой указание абзацев в данном документе. Более конкретно, блок 504 может содержать точное определение, для различных абзацев в документе, числа, обозначающего прядок, в котором данные абзацы встречаются в документе применительно к другим абзацам, таблицам, фигурам, изображениям и тому подобному.

Блок 506 представляет собой указание элементов в таблице, встречающейся в документе. Более конкретно, блок 508 представляет собой, для различных таблиц в данном документе, точное определение числа, обозначающего порядок, в котором данные таблицы встречаются в данном документе применительно к другим абзацам, таблицам, фигурам, изображениям и тому подобному. В дополнение, блок 510 представляет собой указание различных строк таблиц в данной таблице, и блок 512 представляет собой указание различных ячеек в данной строке в данной таблице.

Блок 514 в целом представляет собой вычисление ограничивающего прямоугольника для упомянутого отрезка текста, встречающегося в строке в данном документе. Например, блок 514 может включать в себя вычисление верхнего левого угла ограничивающего прямоугольника вместе с длиной и шириной данного прямоугольника. В некоторых вариантах реализации блок 514 также может включать в себя определение строки Юникода, представляющей собой символические знаки в данном отрезке текста. Ограничивающий прямоугольник можно выразить в пересчете на точки и можно определить относительно верхнего левого угла страницы, на которой встретился упомянутый отрезок текста. Хотя, некоторые варианты реализации могут вычислять эти прямоугольники, другие варианты реализации могут вычислять положение для конкретных символических знаков или символов в отрезке текста и передавать эти положения далее программе просмотра на стороне клиента. Эти последние из двух варианты осуществления могут позволить выбор на уровне отдельных символов.

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

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

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

Услуга 128 поиска и предварительного просмотра документа может предоставлять клиентской системе позиционные метаданные для использования программой просмотра на стороне клиента (например, 118). Например, метаданные можно вложить как часть страниц 326 и/или 420, как показано на фигурах 3 и 4, соответственно. Нижеследующий XML предоставляет пример позиционных метаданных, но следует понимать, что этот пример предоставлен только с целью иллюстрации данного описания, а не с целью ограничения возможных вариантов реализации настоящего изобретения:

<page id="l">

<paragraph order="l">

<line top="10px" left="15px" width="700px" height="8px"

text="Это первая строка в параграфе 1."/>

<line top="20px" left="15px" width="700px" height="8px"

text="Это вторая строка в параграфе 1."/>

</paragraph>

<table order="2">

<tr>

<td>

<paragraph order="3">

<line top="30px" left="30px" width="200px"

height="8px" text="Это первая ячейка в данной таблице."/>

</paragraph>

</td>

<td>

<paragraph order="4">

<line top="30px" left="400px" width="200px"

height="8px" text="Это вторая ячейка в таблице."/>

</paragraph>

</td>

</tr>

</table>

</page>

Описав последовательности 500 процессов, предоставляющие дополнительные подробности, относящиеся к форматированию страниц для клиентов просмотра, описание теперь переходит к более подробному описанию различных видов пользовательских команд, на которые может отвечать программа просмотра на стороне клиента. Это описание представлено здесь с фигурой 6.

На фигуре 6 показаны последовательности процессов, в целом обозначенные пунктом 600, которые предоставляют дополнительные подробности, относящиеся к отклику на выбор пользователем содержимого, как предусмотрено программой просмотра на стороне клиента. Для облегчения упоминаний и описания, но не с целью ограничения возможных вариантов реализации, на фигуру 6 могут переноситься некоторые элементы из предыдущих чертежей, помеченные теми же самыми номерами ссылок. Например, на фигуру 6 перенесена программа 118 просмотра на стороне клиента. Более конкретно, последовательности 600 процессов конкретизируют блок 404 процессов, показанный на фигуре 4.

Обращаясь к последовательностям 600 процессов более подробно, позиционные метаданные, как описано выше на фигуре 5 и как предусмотрено программой 118 просмотра на стороне клиента, могут позволить программе просмотра откликаться на ряд различных пользовательских команд, представленных в целом в блоке 404. Например, пользователь может выбрать конкретное содержимое, показанное в программе просмотра, как представлено в целом в пункте 602. Это содержимое может содержать представление текста, показанного в данной программе просмотра, а также таблиц, диаграмм, форм, изображений или других видов содержимого, показанного в программе просмотра. Это действие 602 выбора может содержать пользовательский щелчок или другой вызов устройства указания в некотором положении на данной странице отображенного содержимого и перетаскивание указателя над некоторой частью содержимого, таким образом, выбор блока подобного содержимого. Действие 602 выбора также может содержать многократный пользовательский щелчок на содержимом страницы (например, данном слове, абзаце, таблице, изображении или чем-то в этом роде).

В ответ на действие выбора блок 604 представляет собой определение содержимого страницы, содержащего положение, в котором случилось действие выбора на данной странице. Примеры этого выбранного содержимого могут включать в себя отрезки текста, строки, абзацы, формы, таблицы, изображения или тому подобное, как было описано выше. Например, приняв обозначение, что пользователь щелкнул в некотором положении на данной странице, блок 604 может содержать поиск позиционных метаданных для этой страницы, чтобы определить, случился ли упомянутый щелчок на строке и/или абзаце данной страницы, и если так, то определение строки и/или абзаца, щелкнутого пользователем. На основании описания Фигуры 5, где блок 514 представляет собой вычисление ограничительных рамок для различных отрезков текста, блок 604 может содержать поиск представлений этих ограничительных рамок с координатами данного щелчка, чтобы определить, попадают ли эти координаты в любую из ограничительных рамок.

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

Блок 608 в целом представляет собой создание визуального представления выбора прямоугольника, имеющего координаты, вычисленные в блоке 606. Например, блок 608 может содержать подсвечивание выделенного содержимого соответствующим прозрачным фоном (например, голубым фоном). Более конкретно, блок 608 может включать создание HTML-команды "div" с размерами прямоугольника выбора и наложением фона на выбранное содержимое. Это подсвечивание может показать пользователю, что данное содержимое теперь выбрано.

В вариантах реализации, в которых клиентская система имеет установленный подключаемый программный модуль для отображения содержимого с высокой точностью (например, SILVERLIGHT™), HTML-команда "div" может накладываться на управление, относящееся к данному отображению, с высокой точностью. Таким образом, блоки 604-608 могут выполняться одинаково, независимо от того, установлен подключаемый программный модуль в данной клиентской системе или нет.

Блок 610 в целом представляет собой ожидание команды пользователя, направленной против содержимого в прямоугольнике выбора, созданном в блоке 608. Как не ограничивающий пример, пользователь может выдать команду копирования, как в целом представлено пунктом 612. В ответ на эту примерную команду копирования последовательности 600 процессов могут перейти к блоку 614, который в целом представляет собой объединение любого содержимого в одной или нескольких строках выбранного содержимого (при условии, что пользователь выделил блок из нескольких строк содержимого). В свою очередь, блок 616 представляет собой копирование выбранного содержимого в буфер системы, или другой подходящей структуры данных, в которое содержимое можно вырезать и/или скопировать в данном приложении или между различными приложениями.

Возвращаясь к блоку 404 на фигуре 6, блок 404 также может содержать прием щелчка или другого эквивалентного действия на данной странице содержимого, как в целом представлено пунктом 618. Действие 618 щелчка отличается от щелчка-протаскивания или других действий, выбирающих блок, представленных в пункте 602. Например, действие 618 щелчка может содержать одиночный щелчок в пределах страницы содержимого.

Блок 620 принятия решения в целом представляет собой определение, щелкнул ли пользователь по гиперссылке, заданной на данной странице содержимого. Возвращаясь к описанию фигуры 5, блок 516 представляет собой вычисление ограничительного прямоугольника для любых гиперссылок на данной странице содержимого. Таким образом, блок 620 может содержать сравнение координат щелчка с ограничивающими прямоугольниками для гиперссылок, встречающихся в пределах страницы, чтобы определить, попадает ли упомянутый щелчок в один из данных ограничивающих прямоугольников для гиперссылок.

Если щелчок совершен на гиперссылке, в противоположность действию щелчка-перетаскивания, выбирающему некоторый блок содержимого, то последовательности 600 процессов могут отказаться от создания "подсвеченной" HTML-команды "div" с прозрачным фоном, которое было представлено в блоке 608. Иначе, общий механизм выбора может действовать аналогично, щелкнул ли пользователь на гиперссылки или выбрал блок содержимого. В некоторых случаях пользователь может щелкнуть-перетащить, чтобы выбрать или активировать текст гиперссылки.

Из блока 620 принятия решения, если щелчок попал на гиперссылку, последовательности 600 процессов могут проследовать по ветке 622 "Да" к блоку 624, который представляет собой определение цели, заданной данной гиперссылкой в позиционных метаданных. Как было описано выше, цель гиперссылки может быть внешней для упомянутого документа (например, внешний URL). Вместе с тем, цель гиперссылки может быть внутренней для данного документа (например, ссылкой на другую строку на данной странице, ссылкой на другую страницу и тому подобным). В свою очередь, блок 626 представляет собой перемещение к внутренней или внешней цели гиперссылки.

Возвращаясь к блоку 620 принятия решения, если щелчок пользователя не попадает по гиперссылке, то последовательности 600 процессов могут проследовать по ветке 628 "Нет" к блоку 630. Блок 630 может включать в себя помещение текстового курсора или другого схожего элемента UI на содержимое в точке, в которой пользователь совершил щелчок. Из блока 630 последовательности 600 процессов могут проследовать в блок 610 для ожидания следующей команды или действия, которые в этом сценарии могут быть действием выбора или перемещения, введенными посредством манипуляции с клавиатуры или другим подходящим механизмом.

Описав на фигуре 6 дополнительные аспекты отклика на выбор пользователем содержимого, обсуждение теперь переходит к описанию дополнительных команд, на которые может откликаться программа просмотра на стороне клиента. Это обсуждение теперь представлено с фигурой 7.

На фигуре 7 показаны последовательности процессов, в целом обозначенные пунктом 700, служащие примерами дополнительных команд, на которые может откликаться программа просмотра на стороне клиента. Для облегчения упоминаний и описания, но не с целью ограничения возможных вариантов реализации, на фигуру 7 могут переноситься некоторые элементы из предыдущих чертежей, помеченные теми же самыми номерами ссылок. Например, на фигуру 7 переносится программа 118 просмотра на стороне клиента. Более конкретно, последовательности 700 процессов дополнительно конкретизируют блок 404 процессов, как показано на фигуре 4.

Обращаясь более подробно к последовательностям 700 процессов, на фигуре 7 показан примерный сценарий, в котором пользователь может выдавать команды нахождения или поиска (в дальнейшем в этом документе - команду "находить") программе просмотра на стороне клиента, как представлено в пункте 702. Однако последовательности 700 процессов могут запускаться в ответ на команды поиска, выданные поисковой системой web-страницы. Эти последовательности процессов также могут запуститься в ответ на команду поиска, выданную приложением электронной почты. Например, упомянутый пользователь может пожелать найти его или ее электронные письма для данной строки поиска. В другом примере, в обстановке организации, последовательности 700 процессов могут запуститься в ответ на команды поиска или нахождения, выданные в переделах совместного использования документа или среды совместной работы.

Эти команды нахождения могут ссылаться на один или несколько элементов поиска (поисковых термов), обозначенных в целом 704. В ответ на команду нахождения блок 706 может сравнить входные элементы поиска с содержимым на данной странице, отображенной программой просмотра на стороне клиента. Например, блок 706 может включать в себя выполнение построчного сравнения элементов поиска относительно текста в Юникоде для различных строк на данной странице. В свою очередь, блок 708 принятия решения может определять, встречаются ли введенные элементы поиска в пределах содержимого страницы. Если введенные элементы поиска не встречаются в пределах данной страницы, то последовательности 700 процессов могут перейти по ветке 710 "Нет" к блоку 712, который представляет собой оповещение о том, что данные элементы поиска не найдены.

Возвращаясь к блоку 708 принятия решения, если вводимые элементы поиска встречаются, по меньшей мере, однажды в данной странице содержимого, то последовательности 700 процессов могут перейти по ветке 714 "Да" к блоку 716, который представляет собой вычисление ограничительных рамок для любого подходящего содержания страницы. На основании предшествующего описания фигуры 5 позиционные метаданные, вычисленные в блоке 514, могут включать в себя ограничительные прямоугольники для различных отрезков текста. Когда символы в этих отрезках текста совпадают с введенными элементами поиска, блок 716 может извлечь из метаданных ограничительные прямоугольники, соответствующие совпадающему тексту.

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

Возвращаясь к блоку 404, который представляет собой отклики на различные пользовательские команды в соответствии с указаниями программы 118 просмотра на стороне клиента, пользователь может выдавать команды масштабирования, обозначенные в целом пунктом 720. В ответ на прием команды масштабирования последовательности 700 процессов могут перейти к блоку 722 принятия решения, который представляет собой определение, имеет ли клиентская система, на которой запущена данная программа просмотра на стороне клиента, установленный подключаемый программный модуль для отображения содержимого с высокой точностью. Программа 118 просмотра на стороне клиента может обеспечивать функции масштабирования независимо от того, установлен ли данный подключаемый программный модуль на клиентской системе. Однако программа просмотра может обеспечивать способность масштабирования, используя различные технологии, в зависимости от того, установлен ли данный подключаемый программный модуль на клиентской системе или нет.

Из блока 722 принятия решения, если клиентская система имеет установленный подключаемый программный модуль, последовательности 700 процессов могут следовать по ветке 724 "Да" к блоку 726, который в целом представляет собой применение функции масштабирования, используя операции изменения, поддерживаемые упомянутым подключаемым программным модулем. Например, полагая, что подключаемый программный модуль является подключаемым программным модулем обозревателя SILVERLIGHT™, блок 726 может включать в себя использование элемента XAML RenderTransform для применения изменения масштабирования содержимого на полотне страницы. Однако эти примеры предоставлены только с целью иллюстрации и не ограничивают возможные варианты реализации, которые могут содержать ряд различных подключаемых программных модулей и операций изменения, поддерживаемых этими подключаемыми программными модулями. В целом, последовательности 700 процессов могут обеспечить эти функциональные свойства локально на клиентской системе без двусторонней передачи сообщений между клиентской системой и сервером.

Возвращаясь к блоку 722 принятия решений, если клиентская система не имеет установленного подключаемого программного модуля, то последовательности 700 процессов могут перейти по ветке 728 "Нет" к блоку 730, который представляет собой применение операции масштабирования, используя изменение масштаба изображения, поддерживаемое обозревателем. Независимо от того, установлен подключаемый программный модуль или нет, программа 118 просмотра на стороне клиента может обеспечивать ряд различных уровней масштабирования относительно заданного диапазона (например, приблизительно от 33% и приблизительно до 400%). В примерном сценарии программа 118 просмотра на стороне клиента может воспроизводить содержание страницы со 100% масштабированием.

Предоставив вышеприведенные примеры различных команд на фигурах 6 и 7, следует отметить, что эти примеры по своему характеру скорее иллюстративные, чем ограничительные. Более конкретно, варианты реализации настоящего изобретения могут включать в себя иные команды, чем те, что предоставлены в этих примерах, не покидая объем и сущность настоящего изобретения.

Описав последовательности 700 процессов на фигуре 7, обсуждение теперь переходит к описанию последовательностей процессов, посредством которых программа просмотра на стороне клиента может позволить клиентской системе искать в содержимом, находящемся удаленно от клиентской системы. Это описание предоставлено здесь с фигурой 8.

На фигуре 8 показаны последовательности процессов, обозначенных в целом пунктом 800, которые обеспечивают последовательности процессов, посредством которых программа просмотра на стороне клиента может позволить клиентской системе искать в содержимом, расположенном удаленно от клиентской системы. Для облегчения упоминаний и описания, но не с целью ограничения возможных вариантов реализации, на фигуру 8 могут переноситься некоторые элементы из предыдущих чертежей, помеченные теми же самыми номерами ссылок. Например, на фигуру 8 перенесена программа 118 просмотра на стороне клиента и услуга 128 поиска и предварительного просмотра документа на стороне сервера. Кроме того, с целью описания, но не ограничения возможных вариантов осуществления, некоторые части последовательностей 800 процессов распределены и показаны как выполняющиеся программой просмотра на стороне клиента и услугой поиска и предварительного просмотра документа. Однако другие компоненты могут выполнять части последовательностей 800 процессов, не покидая сущность и объем настоящего изобретения.

Обращаясь к последовательностям 800 процессов более подробно, блок 802 представляет собой программу просмотра на стороне клиента, принимающую один или несколько элементов поиска. Блок 802 может включать в себя прием элементов поиска, предоставленных пользователем (например, 104 на фигуре 1). В свою очередь, блок 804 представляет собой посылку поискового запроса 806 услуге 128 поиска и предварительного просмотра документов для поиска. Поисковый запрос 806 может содержать один или несколько введенных элементов 808 поиска и также может задавать формат 810 высокой точности, используемый для отображения содержимого на клиентской системе.

В услуге 128 поиска и предварительного просмотра документов, блок 812 представляет собой прием введенного элемента поиска и формата отображения. В свою очередь, блок 814 представляет собой поиск для введенного элемента, по меньшей мере, в одном хранилище данных, доступном услуге поиска и предварительного просмотра документов. Возвращаясь к предшествующему описанию фигуры 1, услуга 128 поиска и предварительного просмотра документов может поддерживать хранилище 130 документов, содержащее множество документов 134, а блок 814 может содержать поиск введенного элемента в одном или нескольких подобных хранилищах документов.

Блок 816 в целом представляет собой создание предварительных просмотров документов, указывающих, где введенные элементы поиска встречаются в одном или нескольких документах, просмотренных в блоке 814. Блок 816 может включать создание предварительных просмотров документов на основании формата 810 отображения, заданного в поисковом запросе 806. Возвращаясь к предшествующему описанию, в различных сценариях клиентская система, выполняющая программу просмотра на стороне клиента, может иметь, а может не иметь установленный компонент подключаемого программного модуля, поддерживающий высокоточное отображение содержимого в программе просмотра. Формат 810 отображения может указывать, имеет или не имеет программа просмотра на стороне клиента установленный подключаемый программный модуль.

Блок 816 может включать в себя создание списка результатов поиска, а также может включать в себя создание предварительного просмотра результатов поиска, как они встречаются в одном или нескольких документах. Более конкретно, блок 816 может содержать создание предварительного просмотра, отображаемого в заданном формате в программе просмотра на стороне клиента. Как часть создания предварительного просмотра, блок 816 может содержать обращение к позиционным метаданным, вычисленным для документа, в котором случилось совпадение. В свою очередь, блок 818 в целом представляет собой посылку любых результатов поиска и связанных с этим предварительных просмотров документов программе просмотра на стороне клиента, как в целом обозначено пунктом 820. Если позиционные метаданные для данного документа еще не были посланы программе просмотра на стороне клиента, результаты поиска и предварительные просмотры 820 могут содержать эти метаданные для использования программой просмотра на стороне клиента.

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

Блок 824 представляет собой представление результатов поиска в программе просмотра на стороне клиента, а блок 826 представляет собой отображение предварительных просмотров "совпадений", встречающихся в одном или нескольких документах, содержащих заданные элементы 808 поиска. В примерных вариантах реализации результаты поиска можно представить соответственно рядом с предварительными просмотрами, показывая, где в данных документах встречаются данные элементы поиска. Блок 826 может содержать подсвечивание элементов поиска, по мере расположения в документе. Дополнительно, блок 826 может содержать прокрутку в документе к странице, на которой случилось первое совпадение.

Блок 828 в целом представляет собой прием команд от пользователя, направленных на результаты поиска и/или предварительные просмотры документов, представленных в блоке 824 и 826. Например, пользователь может выбрать для открытия в программе просмотра на стороне клиента документ, в котором обнаружено содержание одного или более случаев употребления введенного элемента поиска. В этом примере любое подсвечивание, примененное к "совпадениям", можно поддерживать при открытии данного документа. Как другой пример, пользователь может перемещаться или пролистывать по результатам поиска и/или предварительным просмотрам документов. Следует понимать, что эти примеры команд являются по своему характеру показательными и не ограничивающими, и варианты реализации настоящего изобретения могут включать в себя другие команды.

Блок 830 представляет собой исполнение или выполнение команд, принятых в блоке 828. В некоторых случаях, при выполнении этих команд, блок 830 может включать в себя обращение к позиционным метаданным. Например, блок 830 может обращаться к этим метаданным для выполнения любых других функций, показанных на фигурах 6 и 7 в поисковой среде, показанной на фигуре 8.

Хотя на фигуре 8 в целях иллюстрации показана одна итерация последовательности 800 процесса, следует отметить, что варианты реализации этой последовательности процесса могут повторяться любое число раз для различных элементов поиска. Кроме того, последовательности 800 процессов можно реализовать на любом числе клиентских систем (например, 102) и соответствующих программах просмотра на стороне клиента (например, 118).

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

Приведенное выше описание можно предоставить в сочетании с одной или несколькими функциональными схемами или структурными схемами для иллюстрации различных процессов. Эти процессы показаны как происходящие по порядку только для облегчения настоящего описания, а не для ограничения возможных вариантов реализации. Более конкретно, эти процессы или их компоненты, могут продолжаться в порядке, отличном от того, что показан в настоящем документе, не покидая сущности и объема настоящего изобретения.

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

1. Машиночитаемый носитель данных (116), содержащий сохраненные на нем выполняемые компьютером команды (118), которые при выполнении компьютером вызывают выполнение упомянутым компьютером способа предоставления высокоточного отображения содержимого документа на клиентской системе (102) без установки на клиентской системе подключаемого программного модуля для отображения содержимого, причем способ содержит: обнаружение (302) того, содержит ли клиентская система установленный подключаемый программный модуль отображения;
в ответ на обнаружение того, что клиентская система содержит установленный подключаемый программный модуль отображения, выбор (308) первого формата высокой точности, совместимого с подключаемым программным модулем для отображения содержимого;
в ответ на обнаружение того, что клиентская система не содержит установленный подключаемый программный модуль отображения, выбор (312) второго формата высокой точности для отображения содержимого на клиентской системе без установки подключаемого программного модуля на клиентской системе;
запрос (314), по меньшей мере, одного документа, имеющего множество страниц, для отображения на клиентской системе в выбранном формате; и прием (330) поднабора (326) страниц документа в выбранном формате.

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

3. Носитель данных по п.1, причем команды для выбора второго формата высокой точности включают в себя команды для выбора формата переносимой сетевой графики (PNG).

4. Носитель данных по п.1, дополнительно содержащий команды для запроса, по меньшей мере, одной дополнительной страницы документа, причем, по меньшей мере, одна дополнительная страница не входит в упомянутый поднабор, и дополнительно содержащий команды для приема, по меньшей мере, упомянутых дополнительных страниц.

5. Носитель данных по п.1, дополнительно содержащий команды для показа данного поднабора страниц документа на клиентской системе и дополнительно содержащий команды для обеспечения функций детализации изображения локально на клиентской системе без двухстороннего потока сообщений между клиентской системой и сервером.

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

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

8. Носитель данных по п.1, дополнительно содержащий команды для приема позиционных метаданных, вычисленных для данного содержимого.

9. Носитель данных по п.8, дополнительно содержащий команды для отклика на пользовательские команды посредством обращения к этим позиционным метаданным.

10. Машиночитаемый носитель (126) данных, содержащий хранящиеся в нем выполняемые компьютером команды (128), которые при выполнении компьютером (108) вызывают выполнение упомянутым компьютером способа обеспечения высокоточного отображения содержимого документа на клиентской системе (102) без установки подключаемого программного модуля для отображения данного содержимого на клиентской системе, причем способ содержит:
прием (318) запроса (316) на, по меньше мере, один выбранный документ (134), содержащий множество страниц, причем запрос задает один из, по меньшей мере, двух форматов отображения с высокой точностью, поддерживаемых данной клиентской системой, причем первый из форматов отображения совместим с упомянутым подключаемым программным модулем, и причем второй из форматов отображения предназначен для отображения содержимого на клиентской системе без установки упомянутого подключаемого программного модуля на клиентской системе;
форматирование (322) поднабора страниц в заданном формате отображения; посылку (324) данного поднабора (326) страниц клиентской системе для отображения;
прием (416) второго запроса (414) на, по меньшей мере, дополнительную страницу (420), не включенную в упомянутый поднабор страниц;
форматирование (328), по меньшей мере, дополнительной страницы в заданном формате отображения; и
посылку (418), по меньшей мере, дополнительной страницы клиентской системе для отображения.

11. Носитель данных по п.8, дополнительно содержащий команды для создания позиционных метаданных для содержимого, включенного в упомянутый документ.

12. Носитель данных по п.9, в котором команды для создания позиционных метаданных включают в себя команды для распределения абзацев в данном документе.

13. Носитель данных по п.9, в котором команды для создания позиционных метаданных включают в себя команды для распределения элементов таблиц в данном документе.

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

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

16. Носитель данных по п.9, дополнительно содержащий команды для посылки этих позиционных метаданных клиентской системе.

17. Носитель данных по п.8, дополнительно содержащий команды для выполнения составления, по меньшей мере, одного отрезка текста, встречающегося в данном документе.

18. Машиночитаемый носитель (126) данных, содержащий хранящиеся в нем исполняемые компьютером команды (128), которые при выполнении компьютером (108) вызывают выполнение упомянутым компьютером способа обеспечения высокоточного отображения содержимого (130) документа на клиентской системе (102) без установки подключаемого программного модуля для отображения упомянутого содержимого на клиентской системе, причем способ содержит:
прием (812) от клиентской системы запроса (806) на поиск, по меньшей мере, одного элемента (808) во множестве (134) документов, загруженных на серверную систему (108), причем запрос задает один из, по меньшей мере, двух форматов отображения с высокой точностью, поддерживаемых клиентской системой, причем первый из форматов отображения совместим с упомянутым подключаемым программным модулем, и причем второй из форматов отображения предназначен для отображения содержимого на клиентской системе без установки упомянутого подключаемого программного модуля на клиентской системе;
поиск (814) упомянутого элемента в данных документах;
в ответ на определение местонахождения, по меньшей мере, одного случая употребления упомянутого элемента, по меньшей мере, в одном из данных документов:
создание (816) предварительного просмотра документа в заданном формате отображения с указанием, по меньшей мере, одного случая употребления упомянутого элемента поиска в данном документе;
создание результатов (820) поиска с указанием того, где в упомянутых документах встретился упомянутый элемент поиска; и
посылку (818) упомянутого предварительного просмотра документа и данных результатов поиска клиентской системе.

19. Носитель данных по п.18, дополнительно содержащий команды для посылки клиентской системе позиционных метаданных, вычисленных для, по меньшей мере, одного документа.

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



 

Похожие патенты:

Изобретение относится к области вычислительной техники и может использоваться в высокопроизводительных системах обработки больших массивов данных, передаваемых по высокоскоростным каналам передачи (приема), в том числе и в режиме реального времени.

Изобретение относится к области управления обновлениями компоновки в элементах пользовательского интерфейса. .

Изобретение относится к способу и устройству построения интерфейса пользователя для чтения диалогов по электронной почте. .

Изобретение относится к области информационно-измерительной техники и может быть использовано для построения распределенных информационно-измерительных и измерительно-управляющих систем с удаленным доступом к объектам исследования, средствам управления и измерения с многопользовательским удаленным доступом.

Изобретение относится к системам для определения распределенных сетевых атак за счет анализа поведенческого взаимодействия пользователей с защищаемым ресурсом. .

Изобретение относится к технологиям управления электронной информацией, а именно к системе и способу для упрощения передачи контента между клиентскими устройствами в электронной сети.

Изобретение относится к вычислительным устройствам с программно-определенным радиоустройством. .

Изобретение относится к области вычислительной техники. .

Изобретение относится к способам обмена данными между клиентскими и серверным предложениями, например, в среде электронной почты. .

Изобретение относится к области совместного просмотра документов при разработке документов текстовых редакторов

Изобретение относится к технологиям обработки цифровых данных, в частности к системе и способу передачи файла от нескольких источников при мгновенном обмене сообщениями

Изобретение относится к распределенным приложениям и, более конкретно, к распределенным мультимодальным приложениям, реализуемым в системной среде "клиент - сервер"

Изобретение относится к области развертывания программного обеспечения. Техническим результатом является повышение надежности развертывания программного обеспечения в серверных узлах в больших сетевых системах. Обеспечивается развертывание программного обеспечения в узлах сервера в больших сетевых системах с использованием развертывания на основе образов. Главным образом неизменный образ обеспечивается на центральной службе и передается из центральной службы в узлы сервера. Образ включает в себя базовый образ, который является неизменным, и дополнительный образ, который является перезаписываемым и обеспечивает в базовую часть состояние, специфическое для роли и/или специфическое для узла. Когда узел сервера принимает образ из центрального сервера, узел сервера сохраняет образ нетронутым без установки. Затем узел сервера начинает исполнять программное обеспечение непосредственно из сохраненного образа. 3 н. и 13 з.п. ф-лы, 5 ил.

Изобретение относится к электротехнике, к устройствам для подвода и распределения электрической энергии, а также защиты, управления и частых пусков высоковольтных синхронных и асинхронных двигателей, в том числе насосных станций различного назначения, в том числе и в составе распределительных устройств от 6 кВ до 35 кВ, а также совместно с высоковольтными устройствами плавного пуска, преобразователями частоты, в том числе реализованными по двухтрансформаторной схеме. Технический результат состоит в повышении защиты, контроля и управления высоковольтными синхронными и асинхронными двигателями за счет повышения количества циклов запуска/остановки, частоты их включений. В высоковольтном комплектном распределительном устройстве, состоящем из отдельного металлического шкафа, разделенного на технологические отсеки, выполненного с возможностью одностороннего и двухстороннего обслуживания, и содержащего коммутационный аппарат, микропроцессорную защиту и защиту главных цепей, в качестве коммутационного аппарата применен высоковольтный контактор. Микропроцессорная защита выполнена с возможностью обеспечения совместной работы с датчиками температуры, уровня, сухого хода, датчиками затопления, скорости и давления и возможностью интеграции в системы АСКУЭ и АСУТП. Ввод и отходящие линии выполнены в виде сборных шин или кабельного присоединения. Защита главных цепей выполнена в виде устройства дуговой защиты и разгрузочных клапанов. 3 з.п. ф-лы, 14 ил.

Настоящее изобретение относится к компьютерным технологиям, в частности к способу и системе передачи информации в социальной сети. Технический результат заключается в снижении затрат на передачу информации среди пользователей. Технический результат достигается за счет способа, который включает вычисление пропускной способности передачи информации для полученного пользовательского идентификатора согласно пользовательской информации, соответствующей полученному пользовательскому идентификатору; сохранение пользовательских идентификаторов, для которых значения пропускной способности передачи превышают заданное пороговое значение, в начальной пользовательской очереди раздачи; и передачу пересылаемой информации клиенту, пользовательский идентификатор которого сохранен в начальной пользовательской очереди раздачи. 3 н. и 12 з.п. ф-лы, 4 ил.
Изобретение относится к способам осуществления виртуальных коммуникаций, а также к способам обмена и получения туристической информации. Техническими результатами являются: расширение функциональных возможностей за счет осуществления редактирования и монтажа данных, за счет последовательной выдачи данных путем последовательного активирования участков графического изображения или символов на интерактивном дисплее. В способе осуществления коммуникаций и виртуальных путешествий принимают данные пользователей, осуществляют идентификацию, персонификацию и форматирование данных, размещают данные на поименованных и идентифицируемых участках машиночитаемого носителя, формируют интерактивную систему запросов данных, осуществляют редактирование и/или форматирование данных, а также их трансформирование в пределах системы с помощью соответствующих программ. Способ также включает этап запроса пользователем/пользователями видео-, аудио-, фото- и текстовых данных, включающий последовательное активирование данных программ, ответственных за графическое отображение участков географической карты и/или участков графического изображения и/или символов списка на мониторе/дисплее, и выдачу запрошенных персонифицированных, и/или справочных, и/или информационных данных, соответствующих этим активированным данным программ, на монитор/дисплей и/или устройства вывода пользователей с последующим их просмотром, прослушиванием, прочтением.

Изобретение относится к устройству для осуществления процедуры трансляции информации. Технический результат заключается в повышении эффективности распространения информации за счет анализа метаданных пользователей и распространителей информации. Устройство включает в себя пользовательские устройства, транспортное устройство и транспортный сервер. Пользовательские устройства применяют для коммуникации с информационной службой с целью получения услуг трансляции информационных сообщений. Транспортные устройства осуществляют коммуникацию с пользовательскими устройствами по электронной сети для сбора различных определенных типов метаданных, которые затем используются информационной службой для предоставления выбранной информации целевым пользователям устройств. Транспортный сервер координирует функции транспортных устройств, предоставляя команды заданий и навигации для эффективной эксплуатации транспортных устройств. 2 н. и 11 з.п. ф-лы, 15 ил.

Изобретение относится к системе для реализации сети распространения информации и устройству для поддержки процедуры распространения информации. Технический результат заключается в повышении эффективности распространения информации за счет анализа метаданных пользователя социальной сети, устройства пользователя и рекламодателя. Система включает в себя информационную службу, предназначенную для предоставления услуг распространения информации через сеть по распространению информации, пользовательские устройства, используемые пользователями устройств для связи с упомянутой информационной службой для получения упомянутых услуг распространения информации, при этом подгруппа пользователей устройств с соответствующими пользовательскими устройствами образует социальную сеть, а также транспортную структуру для связи с сетевыми объектами сети распространения информации, причем транспортная структура собирает метаданные для предоставления целевым пользователям устройств выбранной информации от информационной службы. Метаданные включают в себя метаданные по социальной сети, содержащие профиль пользователя и профиль устройства для каждого пользователя устройства из упомянутой подгруппы пользователей устройств. 2 н. и 13 з.п. ф-лы, 14 ил.

Изобретение относится к области систем обработки данных, которые улучшают способность пользователей манипулировать аудио- и видеоносителями и подключаться к ним. Техническим результатом является обеспечение воспроизведения интерактивного сжатого потокового видео с малым временем ожидания вне зависимости от мощности клиентского устройства. Система хостинга онлайн видеоигры или приложения содержит службу хостинга, содержащую один или более серверов, которые выполняют одну или более твич видеоигр или приложений для предоставления одного или более потоков сжатого интерактивного потокового видео с малым временем ожидания, переданных по сети, включающей в себя компоненты общедоступной сети, к по меньшей мере одному клиентскому устройству, удаленному от по меньшей мере одного из серверов. В системе осуществляются операции приема и обеспечения управляющих сигналов к серверам, выполнения одной или более твич видеоигр или приложений на серверах, предоставления потоков сжатого интерактивного потокового видео с малым временем ожидания и декомпрессирования сжатого интерактивного потокового видео с малым временем ожидания. Причем указанные операции производятся с таким временем ожидания, что пользователь, взаимодействующий с по меньшей мере одной из одной или более твич видеоигр или приложений, имеет ощущение, что твич видеоигры или приложения мгновенно отвечают на управляющие сигналы. 24 з.п. ф-лы, 40 ил.
Наверх