СПОСОБ, СИСТЕМА И ЧИТАЕМЫЙ КОМПЬЮТЕРОМ НОСИТЕЛЬ ИНФОРМАЦИИ ДЛЯ СИНХРОНИЗАЦИИ ПОДДАЮЩИХСЯ ИЗМЕНЕНИЮ ДОКУМЕНТОВ ДЛЯ МНОЖЕСТВА КЛИЕНТОВ
METHOD, SYSTEM AND COMPUTER READABLE DATA CARRIER FOR SYNCHRONISING MODIFIABLE DOCUMENTS FOR MULTIPLE CLIENTS

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Варианты воплощения данного изобретения касаются области синхронизации и обновления документов, доступных и поддающихся изменению множеством клиентов на разнообразных устройствах через сеть. В частности, варианты воплощения этого изобретения касаются способов, читаемых компьютером носителей информации, и структур данных, способных к синхронизации относительно больших документов среди множества клиентов на постепенной, по требованию, основе, посредством чего передаются только части документов, представляющих интерес для каждого конкретного клиента, для ускорения коммуникации и уменьшения требований по размеру файла.
УРОВЕНЬ ТЕХНИКИ
Множество организаций используют относительно большие, общедоступные документы, сохраненные в различных форматах, типа HTML (Язык разметки гипертекста), Microsoft Word, формат PDF (Формат Электронной версии документа), и текст, среди прочих. Например, такие большие документы могут включать в себя общедоступные правовые документы, поддерживаемые юридическими фирмами, или общедоступные технические документы, поддерживаемые проектными фирмами или корпорациями. Три важных качества таких документов вызывают трудности в их использовании на обычных устройствах: (1) документы могут стать весьма большими, (2) документы часто изменяются, и (3) документы, возможно, не в том формате, который может читаться и отображаться специфическим устройством (включая мобильные устройства), используемым каждым клиентом. Специфически, многие мобильные устройства сегодня отстают от настольных устройств по меньшей мере в трех областях: обеспечение связи, память и функциональные возможности. Например, коммуникация GPRS (общая служба пакетной передачи данных) показывает низкую пропускную способность и высокое время ожидания. Кроме того, типичное для нижнего ценового диапазона, обычное мобильное устройство может иметь приблизительно 32 Мбайта памяти, которая строго ограничивает размер документов, которые могут быть сохранены. Кроме того, не существуют код или программы для обращения и просмотра документов для многих устройств. Кроме того, некоторые форматы могут отображаться лучше, чем другие, из-за возможностей масштабирования пользовательского интерфейса. Кроме того, некоторые форматы документов могут использовать меньше памяти для расширения, чем другие. Все эти проблемы вместе могут мешать широкому распространению совместного использования относительно больших документов на различных, особенно мобильных, устройствах.
Другой проблемой с загрузкой, просмотром, редактированием и выгрузкой относительно больших документов на устройства является время, требуемое для загрузки такого документа. Как пример, если относительно большой документ уже загружен на устройство и требуется только небольшая модификация в документе, загрузка всего документа может потратить впустую недостаточные ресурсы пропускной способности, памяти, времени и денег (например, где сеть оплачивается по количеству переданных данных).
Обычные системы пытаются решить эти проблемы системами и способами синхронизации файлов. Обычные решения для синхронизации файлов требуют, чтобы весь документ был скопирован на устройство. Хотя некоторые приложения на основе PC идут вперед в перекодировании документа в формат, который устройство может читать, проблемы с любым из этих обычных решений все еще многочисленны. Например, полная синхронизация всех документов требует, чтобы все устройства были в состоянии хранить все содержание документа в ограниченных объемах памяти, как обсуждалось выше. Кроме того, изменение малой части документа вызывает загрузку на устройство всего документа. Из-за обычной низкой пропускной способности и характеристик высокого времени ожидания беспроводных сетей (например, GPRS) и обычной структуры цены на байт переданных данных загрузка всего документа на устройство становится дорогой (и по деньгам, и по времени). В другом обычном примере индивидуальные страницы длинного документа могут быть загружены один к одному для того, чтобы уменьшить количество данных, переданных однажды. Это решение, однако, применимо только к поточным файлам (например, файлы html) и не дает возможность хорошего редактирования клиентом, получающим страницы, часто из-за различий между клиентским устройством и программами. Кроме того, этот процесс предназначен только для загрузки информации и не предусматривает редактирование и загрузку модификаций клиента. Другая обычная система синхронизирует данные автономно, избегая проблем, связанных с ненадежным подключением. Это решение, однако, не в состоянии решить вопросы неадекватной памяти и времени передачи, которое все еще может быть проблемой для автономной синхронизации из-за больших размеров документа.
К сожалению, эти вопросы не решаются никакой обычной системой. Соответственно, желательно иметь решение, которое улучшает синхронизацию больших документов среди множества клиентов.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Соответственно, способ (или читаемые компьютером носители информации, или структура данных), для того чтобы синхронизировать относительно большие документы среди множества клиентов на постепенной, по требованию, основе, посредством чего посылка только части документов, представляющих интерес, каждому конкретному клиенту, желателен для того, чтобы избавиться от одного или более этих и других недостатков. Полезен по меньшей мере один вариант воплощения данного изобретения индивидуального преобразования каждой части документа в формат, понимаемый специфическим мобильным устройством. Кроме того, вместо того, чтобы загрузить весь измененный подраздел каждый раз, когда изменение сделано, по меньшей мере один вариант воплощения изобретения загружает команды для того, чтобы изменить только те измененные части документа, на которые подписался клиент. Вообще, аспекты изобретения разрешают синхронизировать документы с множеством клиентов, получая команды от одного или более клиентов относительно предпочтительного формата данных, определяя подразделы оригинала документа, генерируют идентификатор подраздела, идентифицирующий каждый из подразделов, посылая список идентификаторов подраздела к одному или более клиентам, получая запрос от по меньшей мере одного или более клиентов, чтобы подписаться на один или более подразделов, преобразовывают, в ответ на запрос, один или более подразделов в предпочтительный формат каждого клиента, и посылают преобразованные, подписанные подразделы согласно соответствующим запросам подписки клиента. Например, варианты воплощения изобретения хорошо подходят для взаимодействия группы клиентов, каждый из которых использует отдельные устройства, на одном большом, общедоступном документе.
В одном аспекте изобретения раскрыт способ для того, чтобы синхронизировать документы с множеством клиентов. Способ содержит команды получения от одного или более клиентов относительно формата, в котором один или более клиентов желают получать данные. Способ также определяет подразделы оригинала документа, потенциально интересного одному или более клиентам. Подразделы соответствуют семантическим перерывам в пределах оригинала документа. Способ также содержит генерацию идентификатора подраздела, идентифицирующего каждый из подразделов, и посылающего список идентификаторов подраздела одному или более клиентам. Способ также содержит получение запроса от по меньшей мере одного из одного или более клиентов, чтобы подписаться на один или более подразделов и преобразовать, в соответствии с запросом, один или более подразделов оригинала документа, на который один или больше клиентов желают подписаться в формат, в котором соответствующий один или более клиентов желают получить данные. Способ также содержит направление преобразованных, подписанных подразделов к одному или более клиентам согласно их соответствующим подписанным запросам.
В другом аспекте изобретения система для того, чтобы синхронизировать документы с множеством клиентов, приспособленным к подключению с системой через сеть, содержит сервер и базу данных. Система также приспособлена к подключению к сети и приспособлена к тому, чтобы получать команды от одного или более клиентов относительно формата, в котором каждый один или более клиентов желает получать данные от сервера через сеть. Система также содержит базу данных, приспособленную к подключению к серверу для того, чтобы хранить оригинал документа, потенциально интересного одному или более клиентов. Сервер также сконфигурирован для того, чтобы определить подразделы оригинала документа, сохраненного в базе данных. Определенные подразделы соответствуют семантическим разрывам в оригинале документа. Система также генерирует идентификатор подраздела, идентифицирующий каждый из подразделов, и посылает список идентификаторов подраздела к каждому из одного или более клиентов через сеть. Система также получает запрос от по меньшей мере одного из этих одного или более клиентов, чтобы подписаться на один или более подразделов через сеть. Система также преобразует, в ответ на полученный запрос, один или более подразделов оригинала документа, на который один или более клиентов желают подписаться, и посылают преобразованные, подписанные подразделы одному или более клиентам, согласно их соответствующим подписанным запросам.
В еще одном аспекте изобретения раскрыт читаемый компьютером носитель информации, содержащий выполняемые компьютером команды для получения, определения, генерации, посылки, преобразования и посылки по существу, как сформулировано выше относительно способа и системы в соответствии с предложенным изобретением.
Альтернативно, изобретение может включать в себя другие различные способы, читаемые компьютером носители информации, системы и структуры данных.
Другие особенности будут частично очевидны и частично указаны в дальнейшем.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 - диаграмма системы данного изобретения;
Фиг.2 - диаграмма документа с множеством подразделов, согласно данному изобретению;
Фиг.3-3D - блок-схемы способов данного изобретения;
Фиг.4 - диаграмма читаемого компьютером носителя информации (CRM) данного изобретения; и
Фиг.5 - блок-схема, иллюстрирующая один пример подходящей компьютерной системной среды, в которой может быть осуществлено изобретение.
Соответствующие ссылочные позиции указывают соответствующие части всюду по чертежам.
ПОДРОБНОЕ ОПИСАНИЕ РАСКРЫТИЯ ИЗОБРЕТЕНИЯ
Обратимся теперь к Фиг.1, диаграмме, изображающей систему, обозначаемую в общем случае позицией 21, данного изобретения для того, чтобы синхронизировать документы с множеством клиентов 25, приспособленных к соединению с системой через сеть 29. Детали этой системы 21 обсуждаются подробно здесь, и будут упомянуты в течение следующего обсуждения. Система 21 содержит сервер 33 и базу 37 данных. Сервер 33 в проиллюстрированном варианте воплощения приспособлен к соединению с сетью 29 для того, чтобы посылать команды (позиция 41) клиентам 25 через сеть и для того, чтобы получить команды (позиция 45) от одного или более клиентов через сеть. База 37 данных приспособлена к соединению с сервером 33 для того, чтобы хранить оригинал документа, потенциально интересного одному или более клиентам 25. Кроме того, сервер 33 может посылать команды (позиция 49) к базе 37 данных и получать команды (позиция 51) от базы данных. Каждый из клиентов 25 сконфигурирован для того, чтобы общаться непосредственно (позиция 55) с сетью 29, включая отправку коммуникации в сеть и получение коммуникации от сети. Сервер 33 и база 37 данных из системы 21 также сконфигурированы для того, чтобы обеспечить функциональные возможности, рассмотренные ниже, вместе с множеством способов данного изобретения.
Способ синхронизации документов с множеством клиентов
Обратимся к Фиг.1 и 3-3D, где способ для того, чтобы синхронизировать документы с множеством клиентов 25, раскрыт и будет описан в отношении системы 21, описанной непосредственно выше, и блок-схем Фиг.3-3D. Как это используется здесь, количество клиентов или пользователей 21, связывающихся через устройство, может быть любым, представляя людей, группы людей, или автоматизированные устройства, функционирующие под управлением одного или более людей, в том числе. Термин устройство, компьютер или компьютерное устройство, как это используется здесь, может включать в себя разнообразие других устройств, включая в себя, но не ограничиваясь, персональный компьютер, ноутбук или карманный компьютер, так же как сотовые телефоны, личные цифровые помощники и другие портативные устройства носителей информации, в том числе.
Другие устройства или средства для того, чтобы обращаться к документам, определенно не упомянутые здесь, также рассматриваются как находящиеся в рамках данного изобретения.
Согласно представленному способу сервер 33 может получить команды (позиция 45) от одного или более клиентов 25 относительно формата, в котором каждый из одного или более клиентов желает получить данные (см. Фиг.3). В одном примере этот выбор формата может произойти рано в процессе для того, чтобы гарантировать, что вся связь с устройством находится в понятном формате, хотя рассматривается, что такой выбор может произойти в более позднее время в процессе. Каждый клиент может запросить любое число различных форматов, включая формат html, форматированные текстовые документы (например, документы Microsoft Word, документы формата RTF, Формат электронной версии документа (формат PDF), и т.д.), текст в формате ASCII, в том числе. Система 21 и способ данного изобретения могут использовать эти команды формата, когда преобразуют данные для отправки (позиция 41) каждому клиенту 25 для того, чтобы гарантировать, что посланные данные будут доступны каждому из клиентов.
Обратимся теперь к Фиг.2, где диаграмма документа относительно потенциального интереса одного или более клиентов 25 вообще обозначена позицией 61. Множество клиентов 25, совместно использующих и взаимодействующих с общим документом, извлекут выгоду из системы и способа данного изобретения. В частности, клиенты 25, совместно использующие особенно большие документы, будут в состоянии получить существенные функциональные возможности, используя систему и способ данного изобретения. Принятый документ 61 Фиг.2 является относительно большим документом, и способ данного изобретения также определяет (позиция 75) подразделы A-F, каждый из которых указывает (позиция 65) оригинал документа (см. Фиг.3). Эти подразделы 65 соответствуют семантическим или логическим разрывам в пределах оригинала документа 61. В одном примере подразделы 65 могут быть установлены согласно оглавлению, связанному с оригиналом документа 61. Используя оглавление или другую логическую организационную схему документа 61, чтобы установить подразделы, данное изобретение может разделить документ на логические подразделы, которые будут иметь смысл для клиентов 25. Кроме того, подразделы 65, более вероятно, начнутся и закончатся в логических местоположениях в пределах документа. Эта специфическая схема является намного более интуитивной и полезной, чем обычные способы, которые могут разделить документы, основанные на конце страницы текста, числе слов в каждом подразделе, распределение памяти каждого подраздела, или другой произвольной меры.
В одном примере определение, в 75, подразделов 65 из оригинала документа 61, содержит разделение документа, также в 75, на подразделы, основанные на оглавлении, связанном с документом, идентифицирующим логические разрывы в документе (см. Фиг.3). Использование таких оглавлений гарантирует, что соответствующие подразделы 65 определены, потому что оглавление уже было логически создано разработчиком документа 61 в соответствии с содержанием документа. В одном примере такое оглавление, возможно, определено клиентом. Когда никакое оглавление не присутствует, подразделы 65 из оригинала документа 61 могут быть определены, генерируя оглавление, основываясь непосредственно на врожденной структуре документа. Например, автоматическая генерация оглавления может произойти любым числом путей, включая в себя представление схемы документа Microsoft Word, использование заголовков и подзаголовков, включенных в документ, и использование распознавания незаполненного пространства в документе. Другие способы для автоматического установления оглавления также рассмотрены, как находящиеся в рамках формулы изобретения.
Представленный способ также дает возможность генерировать идентификатор подраздела (позиция 79), идентифицируя каждый из подразделов 65 (см. Фиг.3). Эти идентификаторы подраздела могут быть структурированы любым числом логических путей для простого обзора и просмотра клиентами. В одном примере генерация идентификатора подраздела может включать в себя соединение также (позиция 79), название подраздела 65 и местоположения подраздела в документе. Этим способом, и общее содержание подраздела 65, и его относительное местоположение относительно других подразделов, известно просто с помощью просмотра идентификатора подраздела. Для подразделов 65 из Фиг.2, например, идентификаторы подраздела могут быть столь же простыми, как IA, 2B, 3C, 4D, 5E, и 6F, где числовая часть идентификатора подраздела указывает местоположение подраздела в пределах документа 61, и символы A-F указывают тему, обсуждаемую в подразделе. В примерном варианте воплощения Фиг.2 символы A-F можно заменить актуальными заголовками, показательными для содержания подраздела (например, 1 яблоки, 2 бананы, и т.д.). Как очевидно для специалиста в данной области техники, другие способы идентификации таких идентификаторов подраздела могут также использоваться, не отступая от сущности данного изобретения.
Как только идентификаторы подраздела определены, сервер 33 посылает список идентификаторов подраздела (позиция 41) одному или более клиентам 25 через сеть 29 так, чтобы клиенты могли сделать обзор идентификаторов подраздела и определить, на какие подразделы они желают подписаться (см. Фиг.1 и 3). Этим способом клиенты 25 могут быстро просмотреть идентификаторы подраздела документа 61, и таким образом реферат их содержания, чтобы определить, хотели ли они подписаться на любой из подразделов 65, без необходимости загружать весь документ, или даже часть документа перед рассмотрением идентификаторов подраздела.
Каждый клиент 25 имеет опцию отправки запроса (позиция 55) через сеть 29, чтобы подписаться на один или более подразделов 65. Сервер 33 получает такой запрос (позиция 83) от по меньшей мере одного из одного или более клиентов 25, чтобы подписаться на один или более подразделов 65 (см. Фиг.3). Сервер 33 может получить различный запрос подписки от каждого клиента 25, разрешая каждому клиенту настроить свой вид документа 61 на своем устройстве. Например, как показано на Фиг.1 и 2, сервер 33 может получить запрос (позиция 45) от Клиента 1, чтобы получить подраздел A, в то время как Клиент 2 выбирает для получения подразделы A, C и F, в то время как Клиент 3 выбирает получение только подраздела F. В этом примере вместо того, чтобы посылать весь документ каждому клиенту 25, система 21 может просто послать подраздел или подразделы 65 соответствующему клиенту, делающему запрос.
Перед отправкой данных к одному или более клиентам (позиция 41) сервер 33 дополнительно преобразует (позиция 87) в ответ на запрос(ы) клиента один или более подразделов 65 из оригинала документа 61, на которые один или более клиентов 25 пожелали подписаться в формате, в котором соответствующий один или более клиентов желают получить данные (см. Фиг.3). В примере, обсуждаемом выше, каждый из подписанных подразделов 65 может быть преобразован для доступа и модификации согласно специфическим требованиям формата каждого из клиентов 25. Как это используется здесь, преобразованный элемент является элементом, который отформатирован или сконфигурирован так, чтобы к нему можно было обратиться, просмотреть, изменить и/или иначе использовать на различных платформах, независимо от используемого приложения, используемого языка, используемого устройства просмотра, или требуемого протокола коммуникации. Используя преобразованные документы или обеспечивая преобразованные виды, несколько различных клиентов 25 способны к просмотру одного и того же документа 61 или файла на различных устройствах, используя различные программы, экраны, протоколы и т.д. Это допускает сотрудничество группы клиентов 25, каждое из которых использует отдельные устройства, на одном большом, общедоступном документе 61. Как должно быть отмечено здесь, преобразование может альтернативно происходить на клиенте 25.
Однажды преобразовав, сервер 33 может послать (позиция 91) преобразованные подписанные подразделы 65 к одному или более клиентам 25 согласно их соответствующим подписным запросам (см. Фиг.3). Клиенты 25 могут тогда просмотреть содержание подразделов 65, на которые они подписались. В одном примере сервер 33 посылает только подразделы, на которые подписан специфический клиент 25. В этом примере сервер 33 не будет посылать клиенту подраздел, на который не подписан клиент. Каждый клиент может индивидуально изменить свои подписки в любое время, добавляя подразделы, удаляя подразделы или изменяя подразделы, как подробно обсуждается ниже.
Осуществление выборки подраздела
В другом примере способ, воплощающий аспекты данного изобретения, может дополнительно обеспечить (позиция 95) осуществление выборки 71 из подраздела 65 для неподписанного клиента 25 так, чтобы делать обзор типовой части содержания подраздела (см. Фиг.3A). В некоторых случаях идентификатор подраздела один, возможно, не предоставил адекватную информацию каждому неподписанному клиенту 25 относительно подписки на подраздел 65 из документа 61. Система 21 может дополнительно предложить типовую часть 71 из одного или более подразделов 65 для обзора клиенту. В одном примере система 21 также обеспечивает (позиция 97) элемент выбора неподписавшемуся клиенту 25 для того, чтобы запросить типовую часть 71 из одного или более подразделов 65 (см. Фиг.3A). В другом примере система 21 автоматически обеспечивает типовую часть 71 с одним, некоторыми или всеми подразделами 65. Где типовая часть 71 включена с идентификатором подраздела, система 21 может также обеспечить (позиция 99) элемент выбора неподписавшемуся клиенту для того, чтобы выбрать подписку или не подписываться на выбранный подраздел 65. Другие особенности также позволяют легко использовать данный способ, уменьшая количество данных, загруженных или выгруженных с любого специфического клиента 25. В частности, обеспечение типовой части 71 из подраздела 65 может также включать в себя обеспечение (позиция 95) типовой части, установленной по размеру для разумной загрузки и хранения на устройство неподписавшегося клиента 25, основываясь на возможностях по меньшей мере одного из сети и устройства. Для специалиста в данной области техники также должно быть понятно, как выбрать правильно установленную по размеру типовую часть 71, не выходя за рамки предложенного изобретения, а именно используя пропускную способность и память устройства клиента и сетей в минимальной величине, требуемой для удовлетворения запросов специфического клиента 25.
Выбранные элементы обеспечиваются здесь вообще для того, чтобы позволить клиентам 25 взаимодействовать с сервером 33 из системы 21, согласно существующим способам. В одном примере сервер 33 обеспечивает такие функциональные возможности, обеспечивая (позиция 103) пользовательский интерфейс для взаимодействия с клиентом 25, включенным в устройство клиента (см. Фиг.3). Такой пользовательский интерфейс может, например, включать в себя по меньшей мере один элемент выбора, разрешающий клиенту подписаться или аннулировать подписку к подразделам 65 из документа 61. Как обсуждается здесь, другие элементы выбора можно также обеспечить каждому клиенту 65 через пользовательский интерфейс.
Модификация подразделов клиента
После обзора специфического подраздела 65 клиент 25 может использовать приложение на своем устройстве, чтобы сделать одну или более модификаций к подразделу. Эти модификации могут быть любым числом вещей, включая в себя добавление текста, удаление текста, изменение текста, перестройка текста, и это только некоторые вещи. В частности, сервер 33 получает (позиция 105) по меньшей мере одну операцию (позиция 45) от одного из подписавшихся клиентов 25, содержащую команду изменить содержание подраздела 65, представляющего интерес, добавить содержание к подразделу, представляющему интерес, или удалить содержание из подраздела, представляющего интерес (см. Фиг.3). Комбинация одной или более этих операций может также быть получена сервером 33 согласно данному способу. Такие модификации можно послать серверу 33 или автоматически, или как специально определено клиентом 25. Важно отметить здесь, что весь измененный подраздел 65 нельзя послать серверу 33, а только операции, инициализированные одним из подписавшихся на подраздел клиентов 25. Например, если клиент 25 должен был удалить всю ссылочную информацию из первой текстовой строки (например, "Всемирная паутина") и заменить их второй текстовой строкой (например, "WWW"), только относительно простая операция замены первой строки на вторую строку должна быть отправлена серверу 33 для приложения к подразделу 65 для каждого из подписчиков. Посылая и получая только операции, а не весь измененный подраздел, намного меньше данных передается, уменьшая, таким образом, требуемые объемы и конфигурации памяти и увеличивая скорость, на которой обновления получаются сервером 33 и посылаются назад подписавшимся клиентам 25.
Обратимся теперь к Фиг.3D, где аспекты изобретения также позволяют проверять синхронизацию. Периодически или в ответ на информацию, полученную сервером 33, указывающим, что специфический подраздел 65, возможно, был изменен клиентом 25, сервер существующей системы 21 может сравнить подраздел, сохраненный в базе 37 данных, с одним, некоторыми или всеми подразделами, сохраненными на устройствах клиента. В этом одном примере система 21 хэширует (позиция 107) подраздел(ы) 65 представляющего интерес оригинала документа 61, на который один или более клиентов 25 подписан, в числовом значении, показательным для содержания подраздела оригинала документа (см. Фиг.3D). Система 21 тогда хэширует (позиция 109) измененный подраздел 65 из оригинала документа 61 в числовое значение, показательное для содержания по меньшей мере одного измененного подраздела. С этими двумя значениями хэша система 21 может тогда сравнить (позиция 111) числовое значение подраздела 65 из оригинала документа 61 с числовым значением измененного подраздела для определения, был ли подраздел оригинала документа изменен (см. Фиг.3D). Поскольку модификация, которая может также быть просто добавлением или удалением данных, обнаружена, система 21 обеспечивает (позиция 113) операцию(и), связанную с измененным подразделом 65, клиентам 25, подписанным на подраздел, для использования в изменении подраздела для каждого клиента. После такой модификации каждый клиент 25 имеет идентичную копию измененного подраздела, таким образом, имея готовый вид и доступ к последним изменениям в документе 61. В одном примере сервер 33 посылает (позиция 115) обновленный список идентификаторов подраздела всем клиентам, когда операция(и) добавляет содержание к подразделу 65 (см. Фиг.3C). Это действие предоставляет подписчикам информацию, касающуюся подраздела 65, к которому они демонстрировали специфический интерес, и не подписчикам с возможностью подписаться на подраздел, если добавленное содержание может быть особенно интересным.
В другом примере, где операция(и) только изменяет или удаляет содержание подраздела 65, сервер 33 посылает (позиция 117) операцию(и) от одного из подписавшихся клиентов 25 всем подписавшимся клиентам (см. Фиг.3C). В этом примере подписчики демонстрировали желание поддержать обновленную версию подраздела 65 на их устройстве. Сервер не посылает им модификацию или операции удаления неподписавшимся клиентам 25, однако потому что удаление или модификация информации в подразделе 65 будут вряд ли представлять интерес для неподписчика.
В другом примере система 21 может удалить (позиция 119) форматирующие признаки одного или более подразделов 65 прежде хэширования одного или более подразделов оригинала документа 61 и перед хэшированием измененного подраздела оригинала документа (см. Фиг.3D). Это гарантирует, что форматирование изменений, которые, возможно, произошли с подразделом 65 на устройстве клиента, не создает ложную уверенность для измененного подраздела документа, сравнивая хэш оригинального подраздела и потенциально измененного подраздела.
В дополнение к отправке модификаций подписавшимся клиентам 25 система также посылает уведомление об измененном подразделе 65 клиентам, не подписавшимся на измененный подраздел. В одном примере отправка уведомления об измененном подразделе 65 клиентам 25, не подписавшимся на измененный подраздел, содержит обновленный (позиция 115) список идентификаторов подраздела, чтобы указать измененный подраздел (см. Фиг.3C). Этим способом не подписавшийся клиент 25 может просто сделать обзор обновленного списка идентификаторов подраздела, чтобы определить, изменились ли какие-нибудь подразделы вновь, не загружая каждый подраздел.
В еще одном примере два или более клиентов 25 могут попытаться изменить тот же самый подраздел документа 65, требуя, чтобы система 21 использовала способ разрешения противоречий. В таком случае сервер 33 может получить (позиция 121) по меньшей мере одну операцию от двух или более из подписавшихся клиентов 25 (например, Клиент 1 и Клиент 2), чтобы изменить тот же самый подписанный подраздел (см. Фиг.3B). Сервер 33 решает (позиция 123) любой конфликт между операцией(ми), полученной от одного из подписавшихся клиентов 25, и операцией(ми), полученной от другого из подписавшихся клиентов, чтобы изменить тот же самый подписанный подраздел 65, используя способ разрешения противоречий. В одном примере сервер 33 применяет иерархию полномочия модификации, чтобы решить, применить ли по меньшей мере одну операцию от Клиента 1 или Клиента 2, основываясь на позиции каждого клиента подписки 25 в иерархии. Например, где Клиент 2 ранжирован выше Клиента 1 в иерархии полномочий модификации, модификации Клиента 2 используются вместо модификаций Клиента 1. В другом примере сервер 33 решает любой конфликт, используя полученную операцию, которая удовлетворяет временному требованию, основанному на времени, когда каждая из операций была инициализирована подписавшимися клиентами 25. Сервер 33 может использовать раннюю из двух операций модификации, последнюю из двух операций модификации, или операции модификации, самой близкой к определенному времени, или другие методы. Система 21 может также или альтернативно уведомить клиента 25, что если ее модификации остались неиспользованными из-за разрешения противоречий, так, чтобы клиент знал, что такие изменения не будут использоваться.
В другом примере сервер 33 получает по меньшей мере одну операцию от Клиента 1 и Клиента 2 и посылает операции одного клиента (например, Клиента 1) другому клиенту (например, Клиенту 2). С его собственными операциями на руках и операциями Клиента 1, посланными с сервера, Клиент 2 может тогда сделать обзор каждого из предложенных изменений вместе, чтобы определить, какие операции, если они есть в наличии, из обоих наборов операций, должны быть приняты. Этим способом один из клиентов 25 выполняет роль разрешения противоречий. Как должно быть понято специалистам в данной области техники, любое число различных схем разрешения противоречий может использоваться, не отступая от объема формулы изобретения.
Читаемый компьютером носитель информации для синхронизации документов с множеством клиентов
Фиг.4 - диаграмма читаемого компьютером носителя информации (CRM) данного изобретения, обозначенность позицией 125. Читаемый компьютером носитель информации содержит исполняемые компьютерные команды для того, чтобы синхронизировать документы с множеством клиентов. Исполняемые компьютерные команды, для того чтобы выполнять этапы, содержат команды получения для того, чтобы получить команды от одного или более клиентов относительно формата, в котором каждый из одного или более клиентов желают получить данные. Исполняемые компьютерные команды также содержат команды определения для того, чтобы определить подразделы оригинала документа, оригинал документа, представляющий потенциальный интерес для одного или более клиентов, подразделы, соответствующие семантическим разрывам в оригинале документа. Исполняемые компьютерные команды также содержат команды генерации для генерации идентификатора подраздела, идентифицирующего каждый из подразделов и посылающий команды для того, чтобы послать список идентификаторов подраздела к одному или более клиентам. Исполняемые компьютерные команды дополнительно содержат команды получения для получения запроса от по меньшей мере одного из одного или более клиентов, чтобы подписаться на один или более подразделов. Исполняемые компьютерные команды также содержат команды преобразования для преобразования, в ответ на запрос, одного или более подразделов оригинала документа, на который один или более клиентов желают подписаться в формате, в котором соответствующий один или более клиентов желают получить данные. Исполняемые компьютерные команды также содержат команды отправки для того, чтобы послать преобразованные, подписанные подразделы к одному или более клиентам согласно их соответствующим подписным запросам.
В другом примере, также изображенном на Фиг.4, исполняемые компьютерные команды также содержат команды получения для того, чтобы получить по меньшей мере одну операцию от одного из подписавшихся клиентов, чтобы изменить подписанный подраздел оригинала документа. Исполняемые компьютерные команды также содержат команды хэширования для хэширования одного или более подразделов оригинала документа, на который один или более клиентов подписаны, в числовое значение, показательное для содержания оригинала документа и команды хэширования для хэширования измененного подраздела оригинала документа в числовое значение, показательное для содержания по меньшей мере одного измененного подраздела. Исполняемые компьютерные команды также содержат команды сравнения для того, чтобы сравнить числовое значение подраздела оригинала документа с числовым значением измененного подраздела для того, чтобы определить, был ли подраздел оригинала документа изменен. Исполняемые компьютерные команды также содержат команды обеспечения для того, чтобы обеспечить по меньшей мере одну операцию, связанную с подразделом для клиентов, подписавшимся на подраздел, для использования в изменении подраздела для клиента.
Пример
Следующий пример демонстрирует примерный алгоритм синхронизации данного изобретения. Как обсуждалось выше, клиент 25 начинает с определения на сервере 33 формата данных, которые он желает получать (например, документ 61 сервера может быть сохранен в формате Microsoft Word Document, тогда как устройство понимает только базовый HTML). Вот примерный запрос клиента:
После определения пяти подразделов 65 из оригинала документа 61 в этом примере и генерации уникальных идентификаторов подраздела (например, Part1, Part2, и т.д.) идентифицирующий каждый из подразделов сервер 33 отвечает, посылая (позиция 41) список идентификаторов подраздела клиенту 25, после чего клиент может "подписаться" на специфический подраздел документа. Примерный ответ сервера был бы:
Заголовок Part1 раздела преобразован в формат HTML
Заголовок Part2 раздела преобразован в формат HTML
Заголовок Part3 раздела преобразован в формат HTML
Заголовок Part4 раздела преобразован в формат HTML
Заголовок Part5 раздела преобразован в формат HTML
После показа идентификаторов подраздела клиенту 25 клиент тогда посылает запрос серверу 33 определения подразделов 65, на который клиент хотел бы подписаться. Подраздел 65 идентифицирован в соответствии с идентификатором подраздела в следующем примере такого запроса:
Сервер 33 определяет набор добавлений подраздела, изменений и удалений, которые посылаются соответствующему клиенту 25. Определяя удаления, сервер 33 уведомляет, что специфический подраздел 65 исчез из документа 61. Определяя изменения, сервер 33 уведомляет, что хэш содержания изменен для подраздела 65, на который уже подписался клиент 25. Определяя добавление, сервер 33 уведомляет, что или новый подраздел 65 был введен в документ 61, или клиента 25, подписанного на подраздел, на который он подписался прежде. Ответ (позиция 41) сервером 33 будет включать в себя добавления, изменения и удаления для индивидуальных подразделов клиента. Изменения, посланные (позиция 41) клиенту 25, будут содержать только подраздел 65 содержания, если клиент подписался на этот подраздел. Иначе, клиент 25 будет уведомлен относительно изменения, и в некоторых примерах, основные изменения идентификатора подраздела. Следующее является примером типичного ответа сервера 33:
Это - данные в части одного из документов. Обратите внимание, что идентификатор подраздела не отправлялся. Сервер посылает эти данные потому, что клиент подписался на Part 1 документа.
Обратить внимание, что сервер не посылал Part 2, потому что не было никакого изменения.
Заголовок Part 4 изменился. Обратите внимание, что сервер послал заголовок даже при том, что клиент не подписался на Part 4. Это позволяет клиенту разумно решать начинать подписаться на Part 4 в случае необходимости.
Новый подраздел (Part 6) был введен в документ. Клиент может захотеть подписаться на него при последующей синхронизации.
Обратить внимание, что каждый подраздел 65 содержит представление преобразованного подраздела, а не оригинального подраздела непосредственно. Это позволяет серверу 33 приспосабливать предоставленное содержание подраздела к специфическим ограничениям устройства (например, устройство поддерживает только просмотр базового HTML и может хранить только единственный подраздел в один момент времени).
Универсальное компьютерное устройство
Фиг.5 показывает один пример универсального компьютерного устройства в виде компьютера 130. В одном варианте воплощения изобретения компьютер 130 является подходящим для использования в других чертежах, проиллюстрированных и описанных здесь. В одном примере компьютер клиента или устройство, как обсуждалось выше, могут быть воплощены посредством компьютера 130. Компьютер 130 также имеет один или более процессоров или процессорных модулей 132 и системную память 134. В иллюстрированном варианте воплощения системная шина 136 соединяет различные системные компоненты, включая системную память 134, к процессорам 132. Шина 136 представляет собой один или более любого из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину, ускоренный порт графических символов и процессорную или локальную шину, используя любое разнообразие шинной архитектуры. В качестве примера, но не ограничения, такая архитектура включает шину архитектуры промышленного стандарта (ISA), шину микроканальной архитектуры (MCA), усовершенствованную ISA (EISA) шину, локальную шину Ассоциации Стандартов Видео Электроники (VESA), и шину стандарта PCI (PCI), также известная как шина Mezzanine.
Компьютер 130 типично имеет по меньшей мере некоторую форму компьютерночитаемых носителей информации. Компьютерночитаемые носители информации, которые включают в себя и энергозависимые, и энергонезависимые носители информации, сменные и несменные носители информации, любые возможные доступные носители информации, к которым можно обратиться компьютером 130. Посредством примера, но не ограничения, компьютерночитаемые носители информации включают в себя компьютерные носители данных и коммуникационные носители. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, сменные и несменные носители информации, осуществленные любым способом или технологией для хранения информации, типа компьютерных читаемых команд, структур данных, модулей программы или других данных. В одном примере компьютерные носители данных включают в себя RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другую оптическую память на диске, магнитные кассеты, магнитную ленту, магнитную память на диске или другие магнитные запоминающие устройства, или любая другая среда, которая может использоваться, чтобы хранить желательную информацию и можно обратиться компьютером 130. Коммуникационные носители типично воплощают компьютерночитаемые команды, структуры данных, модули программы или другие данные в модулированном сигнале данных, типа несущей или другом транспортном механизме и включают в себя любые информационные носители доставки. Специалисты в данной области техники знакомы с модулированным сигналом данных, который имеет один или более его набора характеристик, измененных таким способом, чтобы закодировать информацию в сигнале. Проводные носители, типа проводного сетевого или прямого проводного подключения, и беспроводные носители, типа акустических, RF, инфракрасных и других беспроводных носителей, являются примерами коммуникационных носителей. Комбинации любых из вышеупомянутых элементов также относятся к компьютерночитаемым носителям.
Системная память 134 включает в себя компьютерные носители данных в форме сменной и/или несменной, энергозависимой и/или энергонезависимой памяти. В проиллюстрированном варианте воплощения системная память 134 включает в себя постоянное запоминающее устройство (ROM) 138 и оперативную память (RAM) 140. Базовая система 142 ввода-вывода (BIOS) содержит основные подпрограммы, которые помогают передавать информацию между элементами в пределах компьютера 130, например, во время запуска, типично сохраняется в ROM 138. Оперативная память 140 типично содержит данные и/или модули программы, которые являются немедленно доступными и/или управляемыми процессором 132. Посредством примера, но не ограничения, Фиг.5 иллюстрирует операционную систему 144, прикладные программы 146, другие модули 148 программы и программные данные 150.
Компьютер 130 может также включать в себя другие сменные и/или несменные, энергозависимые/энергонезависимые компьютерные носители данных. В одном примере Фиг.5 иллюстрирует жесткий диск 154, который читает или пишет на несменный, энергонезависимый магнитный носитель информации. Фиг.5 также показывает магнитный дисковод 156, который читает или пишет на сменный, энергонезависимый магнитный диск 158, и оптический дисковод 160, который читает или пишет на сменный, энергонезависимый оптический диск 162, типа CD-ROM или другой оптический носитель. Другие сменные и/или несменные, энергозависимые/энергонезависимые компьютерные носители данных, которые могут использоваться в примерной среде, включают в себя, но не ограничены, кассеты магнитной ленты, платы флэш-памяти, цифровые универсальные диски, цифровую видеоленту, твердотельный RAM, твердотельный ROM и т.п. Жесткий диск 154 и магнитный дисковод 156, и оптический дисковод 160 типично связываются с системной шиной 136 энергонезависимым интерфейсом памяти, типа интерфейса 166.
Диски или другие запоминающие устройства большой емкости и их связанные компьютерные носители данных, упомянутые выше и проиллюстрированные в соответствии с Фиг.5, обеспечивают хранение компьютерночитаемых команд, структур данных, модулей программы и других данных для компьютера 130. На Фиг.5, например, жесткий диск 154 проиллюстрирован как хранилище операционной системы 170, прикладных программ 172, других модулей 174 программы и программных данных 176. Следует отметить, что эти компоненты могут быть тем же самым, или отличными от операционной системы 144, прикладные программы 146, другие модули 148 программы и программные данные 150. Операционной системе 170, прикладным программам 172, другим модулям 174 программы и программным данным 176 здесь даны различные позиции для того, чтобы отметить тот факт, что они, как минимум, являются различными копиями.
Пользователь может ввести команды и информацию в компьютер 130 через устройства ввода данных или устройства выбора пользовательского интерфейса, типа клавиатуры 180 и устройства 182 управления позицией (например, мыши, координатного шара, пера, или сенсорной клавиатуры). Другие устройства ввода данных (не показанные здесь) могут включать в себя микрофон, джойстик, игровую клавиатуру, камеру, сканер или подобное. Эти и другие устройства ввода данных связаны с процессором 132 через пользовательский входной интерфейс 184, который соединен с системной шиной 136, но может быть связан другим интерфейсом и шинными структурами, типа параллельного порта, игрового порта, или универсальной последовательной шины (USB). Монитор 188 или другой тип устройства отображения также связан с системной шиной 136 через интерфейс, типа видеоинтерфейса 190. В добавление к монитору 188, компьютеры часто включают в себя другие периферийные устройства вывода (не показанные здесь), типа принтера и динамиков, которые могут быть связаны через интерфейс внешнего устройства вывода (не показанный здесь).
Компьютер 130 может работать в сетевом окружении, используя логические подключения к одному или более удаленным компьютерам, типа удаленного компьютера 194. Удаленный компьютер 194 может быть персональным компьютером, сервером, маршрутизатором, сетевым PC, одноранговым устройством или другим обычным сетевым узлом, и типично включает в себя многие или все элементы, описанные выше относительно компьютера 130. Логические подключения, изображенные на Фиг.5, включают в себя локальную сеть (LAN) 196 и глобальную сеть (WAN) 198, но могут также включать в себя и другие сети. LAN 136 и/или WAN 138 может быть проводной сетью, беспроводной сетью, их комбинацией, и так далее. Такие сетевые среды являются обычными в офисах, компьютерных сетях масштаба предприятия, интранете и глобальных компьютерных сетях (например, Интернет).
При использовании в локальной сетевой среде компьютер 130 связан с LAN 196 через сетевой интерфейс или адаптер 186. При использовании в глобальной сетевой среде компьютер 130 типично включает модем 178 или другие средства для того, чтобы установить связь по глобальной сети 198, типа сети Интернет. Модем 178, который может быть внутренним или внешним, связан с системной шиной 136 через пользовательский интерфейс 184 ввода, или другой соответствующий механизм. В сетевом окружении модули программы, изображенные относительно компьютера 130 или его частей, могут быть сохранены в удаленном запоминающем устройстве (не показано). Посредством примера, но не ограничения, Фиг.5 иллюстрирует удаленные прикладные программы 192 как постоянно находящиеся на устройстве памяти. Необходимо отметить, что сетевые подключения, которые показаны, являются примерными, и могут использоваться другие средства установления связи между компьютерами.
Вообще, процессоры компьютера 130 запрограммированы посредством команд, сохраненных в разное время в различных читаемых компьютером носителях данных компьютера. Программы и операционные системы типично распространяются, в одном примере, на гибких дисках или CD-ROM. Оттуда они устанавливаются или загружаются во вторичную память компьютера. При выполнении они загружаются, по меньшей мере частично, в первичную электронную память компьютера. Изобретение, описанное здесь, включает в себя эти и другие различные типы читаемых компьютером носителей данных, когда такие носители содержат команды или программы, чтобы осуществить операции, описанные ниже вместе с микропроцессором или другим процессором.
В целях иллюстрации программы и другие выполнимые компоненты программы, типа операционной системы, проиллюстрированы здесь как отдельные блоки. Однако признается, что такие программы и компоненты постоянно находятся в различное время в различных компонентах памяти компьютера, и выполняются процессором(ми) обработки данных компьютера.
Хотя описание используется вместе с примерной компьютерной системной средой, содержащей компьютер 130, изобретение может функционировать с многочисленными другими универсальными или специальными компьютерными системными средами или конфигурациями. Компьютерная системная среда не предназначена для того, чтобы накладывать любое ограничение относительно возможностей использования или функциональных возможностей изобретения. Кроме того, компьютерная системная среда не должна интерпретироваться как имеющая зависимость или требования, касающиеся любого или комбинации компонентов, проиллюстрированных в примерной среде. Примеры известных компьютерных систем, сред и/или конфигураций, которые могут быть подходящими для использования с изобретением, включают в себя, но не ограничены, персональные компьютеры, серверные компьютеры, карманные или ноутбуки, многопроцессорные системы, системы на основе микропроцессора, приставки к телевизору, программируемую бытовую электронику, мобильные телефоны, сетевые PC, миникомпьютеры, универсальные компьютеры, распределенные компьютерные среды, которые включают в себя любую из вышеупомянутых систем или устройств, и т.п.
При функционировании компьютер 130 действует как сервер 33, выполняющий способ, типа описанного выше для того, чтобы синхронизировать документы с множеством клиентов. Компьютер 130 или его команды получения компонентов от одного или более клиентов относительно формата, в котором каждый из одного или более клиентов желает получить данные. Компьютер 130 или его компоненты, определяющие подразделы оригинала документа, оригинал документа, представляющий потенциальный интерес для одного или более клиентов, подразделы, соответствующие семантическим разрывам в пределах оригинала документа. Компьютер 130 или его компоненты генерируют идентификатор подраздела, идентифицирующего каждый из подразделов. Компьютер 130 или его компоненты посылают список идентификаторов подраздела к одному или более клиентам. Компьютер 130 или его компоненты получают запрос от по меньшей мере одного из одного или более клиентов, чтобы подписаться на один или более подразделов. Компьютер 130 или его компоненты преобразуют, в ответ на запрос, один или более подразделов оригинала документа, на которые один или более клиентов желают подписаться в формате, в котором соответствующий один или более клиентов желают получить данные. Компьютер 130 или его компоненты посылают преобразованные подписанные подразделы к одному или более клиентам согласно их соответствующим запросам подписки.
Специалисты в данной области техники отметят, что порядок выполнения или выполнение способов, иллюстрированных и описанных здесь, не является необходимым, если не определено иначе. Таким образом, как рассмотрено выше, этапы способов могут быть выполнены в любом порядке, если не определено иначе, и что способы могут включать в себя большее или меньшее количество этапов, чем раскрыто здесь.
При описании данного изобретения или вариантов его воплощения(й) неопределенные артикли «a», «an», определенный артикль «the» и термин "указанный" предназначены для того, чтобы обозначать, что есть один или более элементов. Термины "содержащие", "включающие в себя" и "имеющие" предназначены для того, чтобы быть включенными и означать, что могут быть дополнительные элементы, кроме перечисленных элементов.
Ввиду вышеизложенного следует отметить, что показаны несколько объектов изобретения и описаны достигаемые результаты.
Поскольку различные изменения могут быть сделаны в вышеупомянутых вопрощениях, не отступая от сущности изобретения, оно предназначено для того, чтобы все аспекты, содержавшиеся в вышеупомянутом описании и показанные в приложенных чертежах, должны интерпретироваться как иллюстративные, а не как ограничивающие.