Отслеживание и синхронизация частичного изменения элементов

Иллюстрации

Показать все

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

Реферат

УРОВЕНЬ ТЕХНИКИ

Переносные, карманные и другие портативные компьютеры или вычислительные устройства выросли в популярности, так как устройства становятся меньшими по габаритам и менее дорогостоящими. Дополнительно, улучшенные быстродействие и вычислительная мощность портативных компьютеров повысили их популярность. Многие портативные компьютеры способны к хранению многочисленных прикладных программ, таких как адресные книги, игры, калькуляторы и тому подобное. Прикладные программы могут навсегда устанавливаться в портативном компьютере во время изготовления (например, в постоянном запоминающем устройстве (ПЗУ, ROM)). В качестве альтернативы, одна или более прикладных программ могут устанавливаться пользователем после покупки портативного компьютера.

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

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

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

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

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

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

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

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

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

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

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

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

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

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

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

Фиг.1A иллюстрирует распределенную систему для синхронизации только групп свойств в соответствии с примерными вариантами осуществления;

Фиг.1B иллюстрирует отображение групп свойств для элемента в соответствии с примерными вариантами осуществления;

Фиг.1С иллюстрирует примерный поток элементов синхронизации в соответствии с примерными вариантами осуществления;

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

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

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

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

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

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

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

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

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

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

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

В своей наиболее базовой конфигурации вычислительная среда 300 типично включает в себя, по меньшей мере, один процессор 302 (устройство обработки данных) и память 304. Память 304 может быть энергозависимой (такой как ОЗУ (оперативное запоминающее устройство, RAM)), энергонезависимой (такой как ПЗУ (постоянное запоминающее устройство, ROM), флэш-память и т.п.) или некоторым сочетанием этих двух. Эта наиболее базовая конфигурация проиллюстрирована на фиг.3 пунктирной линией 306. В этом описании и в формуле изобретения «вычислительная система» определена в качестве любого аппаратного компонента или комбинации аппаратных компонентов, способных к выполнению программного обеспечения, микропрограммного обеспечения или микрокода для выполнения некоторой функции. Вычислительная система может быть даже распределенной для выполнения распределенной функции.

Запоминающие носители могут иметь дополнительные признаки и функциональные возможности. Например, они могут включать в себя дополнительное запоминающее устройство (съемное или несъемное), в том числе, но не в качестве ограничения, карты PCMCIA (Международной ассоциации производителей карт памяти для персональных компьютеров), магнитные и оптические диски и магнитную ленту. Такое дополнительное запоминающее устройство проиллюстрировано на фиг.3 съемным запоминающим устройством 308 и несъемным запоминающим устройством 310. Компьютерные запоминающие носители включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Память 304, съемное запоминающее устройство 308 и несъемное запоминающее устройство 310, все являются примерами компьютерных запоминающих носителей. Компьютерные запоминающие носители включают в себя, но не в качестве ограничения, ОЗУ, ПЗУ, ЭСППЗУ (электрически стираемое программируемое ПЗУ, EEPROM), флэш-память, другую технологию памяти, CD-ROM (ПЗУ на компакт диске), цифровой многофункциональный диск, другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитное дисковое запоминающее устройство, другие магнитные запоминающие устройства и любые другие носители, которые могут использоваться для хранения требуемой информации и которые могут подвергаться доступу вычислительной системой.

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

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

Вычислительная система 300 также может содержать компоненты 314 ввода, такие как клавиатура, мышь, перо, компонент речевого ввода, сенсорное устройство ввода и так далее. Компоненты 316 вывода включают в себя экранные устройства отображения, динамики, принтеры и т.п. и модули воспроизведения (часто называемые «адаптерами») для управления ими. Вычислительная система 300 содержит источник 318 электропитания. Все эти компоненты общеизвестны в данной области техники и не нуждаются в том, чтобы подробно здесь обсуждаться.

Фиг.1A иллюстрирует распределенную систему 100 для синхронизации групп 104 свойств между клиентом 105 и сервером 125 в соответствии с примерными вариантами осуществления. Распределенная система 100 может быть подобна вычислительной системе 300, описанной выше по фиг.3, хотя это не обязано быть именно так. Как показано на фиг.1A, распределенная система 100 включает в себя клиента 105, который может быть одним из некоторого количества вычислительных устройств 110, 115 и т.д. Например, клиент 105 может быть беспроводным устройством, таким как телефон 110, PDA 110, портативный компьютер 115 или любое другое вычислительное устройство.

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

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

Как показано на фиг.1A, сервер 125 включает в себя множество папок 165 (например, папку «А»), при этом каждая папка 165 может представлять или включать в себя определенные типы элементов 170. Например, папка 165 может содержать или включать в себя сообщения элементов электронной почты, при этом другая папка 165 может включать в себя информацию элемента делового контакта. Конечно, как упомянуто ранее, может быть широкое многообразие типов элементов, которые могут синхронизироваться в соответствии с примерными вариантами осуществления, предложенными в материалах настоящей заявки. В дополнение, другие топологии и конфигурации данных, иные, чем папки 165, могут использоваться при осуществлении настоящего изобретения на практике. Например, таблицы или другие способы разделения и сохранения по-разному разных типов элементов 170 также пригодны для настоящего изобретения. Соответственно, любая конкретная топология, формат данных и/или иерархия хранения используются в материалах настоящей заявки только в иллюстративных целях и не подразумеваются для ограничения и сужения иным образом объема настоящего изобретения.

Каждая папка 165, как упомянуто ранее, будет содержать множество элементов 170 (например, элемент «А»). Ассоциативно связанным с каждым элементом 170 является идентификатор 175 (ID) изменения элемента, который, как более подробно описано ниже, может использоваться для идентификации, когда элемент 170 и его свойство были изменены с момента последней синхронизации между сервером 125 и клиентом 105. (Также включенными в каждый элемент 170 являются группы 180 свойств (например, группа «А» свойств)). Как упомянуто ранее, группы 180 свойств предопределены на основании отраслевого опыта и понимания семантики в отношении того, каким образом связаны свойства в пределах каждой из множества групп 180 свойств. Например, группы свойств могут быть определены на основании изменчивости свойств, типичных требований емкости памяти и/или других соображений. Кроме того, группа 180 свойств может включать в себя свойства, которые высоко изменчивы, такие как состояние сообщения, флажковый признак контроля исполнения, флажковый признак приоритета или другие свойства, которые часто модифицируются и/или изменяются.

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

Отметим, что, хотя группы 180 свойств предопределены на основании текущего отраслевого опыта, такое знание является подвергающимся изменению. Соответственно, варианты осуществления предусматривают, что группы 180 свойств являются расширяемыми, встраиваемыми и масштабируемыми. То есть группы 180 свойств сконфигурированы таким образом, что свойства в пределах каждой группы 180 свойств могут перемещаться, удаляться, добавляться и/или модифицироваться иным образом. Подобным образом сами группы 180 свойств могут переопределяться, создаваться и/или удаляться. В дополнение, определение групп 180 свойств может изменяться в зависимости от типа элемента 170. Например, группы 180 свойств, определенные для элемента 170 электронного письма, могут быть иными, чем группы 180 свойств, определенные для элементов 170 деловых контактов. По существу - как будет более подробно описано ниже - клиенту 105 будет необходимо знать надлежащее отображение 190, которое является используемым для каждого элемента 170 в пределах различных папок 165.

Независимо от того, каким образом определены группы 180 свойств, каждая группа 180 свойств типично будет иметь назначенный вместе с ней ID 185 изменения группы свойств, который может использоваться для идентификации, когда произошли изменения в отношении такой конкретной группы 180 свойств. Например, модуль 150 группы свойств/элемента может контролировать изменения, происходящие в отношении элемента 170, а также для каждой группы 180 свойств в пределах такого элемента 170. В то время как происходят изменения, формирователь 160 ID изменения может изменять ID 175 изменения элемента и соответствующий ID 185 изменения группы свойств.

В некоторых вариантах осуществления ID 175 изменения элемента и ID 185 изменения свойств могут быть одним и тем же идентификатором, например, указывающим, что элемент и группа свойств обновлялись одновременно. Отметим, однако, что это не обязано быть именно так, например, в тех случаях, когда используются глобально универсальные идентификаторы (GUID). Дополнительно должно быть отмечено, что ID 175, 185 изменений могут быть любым общеизвестным алфавитно-цифровым или другим идентифицирующим объектом данных. Например, ID 175, 185 изменений могли бы быть хеш-функцией элемента 170 и/или группы 180 свойств соответственно. Конечно, как упомянуто ранее, идентификаторы 175, 185 изменений могут формироваться на основании простого счетчика GUID. Также отметим, что другие механизмы для идентификации изменений в отношении элементов 170 и групп 180 свойств также пригодны для настоящего изобретения. Соответственно, любой определенный тип идентификатора 175, 185 изменений и/или его использование, как описано в материалах настоящей заявки, предназначены только для иллюстративных целей и не подразумеваются для ограничения или сужения иным образом объема настоящего изобретения, пока не заявлено в прямой форме.

Независимо от типа идентификаторов 175, 185 или того, каким образом идентифицируются изменения в отношении групп свойств, когда модуль 150 свойств/элемента в пределах сервера 125 идентифицирует изменение одного или более элементов 170, уведомление о таком изменении 120 элементов может отправляться на клиента 105 в попытке побудить клиента 105 синхронизироваться с сервером 125. Конечно, другие механизмы для побуждения клиента 105 синхронизироваться с сервером 125 также пригодны для настоящего изобретения. Например, клиент 105 может периодически, то есть с некоторыми предопределенными интервалами, запрашивать сервер 125 для синхронизации с ним. Соответственно, любое определенное инициирование последовательности операций синхронизации между клиентом 105 и сервером 125 в материалах настоящей заявки используется только в иллюстративных целях и не подразумевается для ограничения или сужения иным образом объема настоящего изобретения.

Тем не менее, при инициировании последовательности операций синхронизации сервер 125 должен принимать запрос 130 синхронизации от клиента 105. Примерные варианты осуществления предусматривают, что запрос 130 синхронизации может включать в себя один или более маркеров 135 элемента (например, маркер «А» элемента), которые могут использоваться при определении, произошли ли изменения с момента последней синхронизации между клиентом 105 и сервером 125. Перед обсуждением маркера 135 элемента более подробно отметим, что маркерам 135 элементов не обязательно нужно включаться в запрос 130 синхронизации. Например, другие механизмы обмена с квитированием могут иным образом побуждать клиента 105 отправлять маркеры 135 элементов на сервер 125. В качестве альтернативы, маркеры 135 элементов уже могут храниться на сервере 125. Соответственно, включение маркеров 135 элементов в пределы запроса 130 синхронизации в материалах настоящей заявки используется только в иллюстративных целях и не подразумевается для ограничения или сужения иным образом объема настоящего изобретения, пока не заявлено в прямой форме.

Ассоциативно связанным с каждым маркером 135 элемента является ID 140 изменения элемента. Для каждого ID 140 изменения элемента или маркера 135 элемента также есть множество ID 145 изменений группы свойств (например, ID изменений группы «А» свойств). ID 140 изменения элемента и ID 145 изменений группы свойств представляют те идентификаторы, которые ассоциативно связывались с элементами 170 и соответствующими группами 180 свойств в течение последней синхронизации между клиентом 105 и сервером 125. Другими словами, маркеры 135 элементов могли быть оставлены клиенту 105 в качестве большого двоичного объекта данных, которые должны сохраняться во время последней синхронизации с сервером 125. Этот большой двоичный объект данных 135 затем может использоваться блоком 155 сравнения идентификаторов изменения при определении тех элементов 170, а более точно, тех групп 180 свойств в пределах каждого элемента 170, которые изменились с момента последней синхронизации.

Например, каждый маркер 135 элемента может сравниваться с каждым элементом 170. Более точно, ID 175, 140 изменений и ID 185, 145 групп свойств в обоих, маркерах 135 элементов и фактических элементах 170, могут сравниваться с использованием блока 155 сравнения идентификаторов изменений. Если значения отличаются, то есть ID 140 изменения элемента и ID 145 группы свойств для маркера 135 элемента не соответствуют ID 175 изменения элемента и ID 185 группы свойств, то произошло изменение в элементе 170 и группах 180 свойств. Как отмечено ранее, хотя ID изменений для маркеров 135 элементов сравниваются с элементами 170 и группами 180 свойств на сервере 125 при определении, когда элементы 170 и группы 180 свойств изменились с момента последней синхронизации, другие способы определения, когда или произошли ли изменения в отношении элементов 170 и групп 180 свойств, также пригодны для настоящего изобретения. Например, сервер 125 может хранить всю из информации, необходимой для определения, каки