ПОДДЕРЖАНИЕ ИНФОРМАЦИИ ВРЕМЕНИ-ДАТЫ ДЛЯ СИНХРОНИЗАЦИИ УСТРОЙСТВ С НИЗКОЙ ДОСТОВЕРНОСТЬЮ ДАННЫХ
SUPPORTING TIME AND DATE INFORMATION FOR SYNCHRONISATION OF DEVICES WITH LOW DATA INTEGRITY

Настоящее изобретение относится, в общем, к синхронизации данных в распределенной вычислительной системе. Более конкретно, настоящее изобретение обеспечивает следующее: (1) поддержание информации времени-даты для свойств при разрешении конфликтов синхронизации между двумя устройствами, при этом одно из устройств не предоставляет базы данных с полями времени-даты, соответствующими упомянутым свойствам; (2) определение того, изменилось ли значение свойства в удаленном устройстве с низкой достоверностью данных с момента последней синхронизации с локальной машиной; (3) сохраняют ресурсы памяти посредством ограничения информации времени-даты для поднабора свойств, при этом информация времени-даты используется для разрешения конфликтов между синхронизируемыми значениями.
Предшествующий уровень техники
Популярность компактных, карманных и других портативных компьютеров или вычислительных устройств возрастает, поскольку эти устройства становятся меньше по размеру и стоимости. Помимо этого повышенные быстродействие и производительность повысили их популярность. Многие портативные компьютеры выполнены с возможностью хранения множества прикладных программ, таких как адресные книги, игры, калькуляторы и т.п. Прикладные программы могут быть установлены на постоянной основе в портативный компьютер во время изготовления (например, в постоянное запоминающее устройство (ПЗУ, ROM)). В качестве альтернативы, одна или более прикладных программ могут быть установлены пользователем после приобретения портативного компьютера.
По мере нарастания популярности и производительности таких устройств, люди начинают хранить данные и приложения, используя более чем просто отдельное вычислительное устройство. Многие люди, например, часто используют портативные компьютеры в дополнение к их обычному настольному компьютеру. Другие устройства, такие как сотовые телефоны, персональные цифровые информационные устройства (PDA), службы Интернет и т.п. также используются для хранения данных и приложений.
Каждое из этих вычислительных устройств может быть частью распределенной вычислительной системы, в которой соответствующая информация может быть коррелирована и сохранена на множестве подобных устройств. Например, пользователь может иметь цифровую адресную книгу, хранящуюся на его настольном рабочем компьютере, на его PDA, на его сотовом телефоне, в службе Интернет и т.п. Соответственно, при работе может оказаться удобным для пользователя осуществлять доступ к контактной информации, которая может включать в себя телефонные номера и другую общую контактную информацию. Однако, находясь вне рабочего места пользователь может использовать адресную книгу в мобильной форме, например, посредством персонального цифрового информационного устройства (PDA) или другой мобильной системы хранения информации. В идеале, контактная информация PDA должна совпадать с контактной информацией в настольном рабочем компьютере.
Когда одинаковая или соответствующая информация хранится в двух местах, может иметь место ситуация, когда данные изменились в одном местоположении и не изменились в другом. Эту проблему можно преодолеть посредством синхронизации, которая представляет собой автоматический процесс, задачей которого является обеспечение того, что каждое устройство в распределенной системе имеет наиболее новую информацию или данные. Однако для синхронизации характерен собственный ряд проблем. Например, когда синхронизацию инициализируют между двумя устройствами, соответствующие текущему моменту системы обнаруживают измененные значения свойств посредством сравнения соответствующих значений свойств от каждого устройства. Такое сравнение, однако, не дает никакого указания на то, какое устройство сделало изменение. В результате, когда на каком-либо устройстве имело место изменение свойства, происходит конфликт и должен быть выполнен процесс разрешения конфликта.
Другие системы помечают измененное свойство ярлыком, указывающим на то, что произошло изменение, например, “изменение”, “удаление” и “добавление” или другой ярлык, в зависимости от ситуации. Однако в таких системах, когда два устройства начинают синхронизацию, локальное устройство может создать эти метки в памяти после сравнения данных, к которым их требуется применить. Помимо этого поскольку эти ярлыки только отслеживаются в памяти, эти ярлыки не хранятся в удаленной базе данных для использования во время синхронизации с другими устройствами. Иными словами, сначала необходимо уладить конфликты, а затем можно пометить свойства и отслеживать их только в локальной памяти.
Обычно конфликты можно разрешить посредством сравнения метаданных, связанных со значениями свойств, которые обеспечивают, например, информацию времени-даты. Самая последняя информация времени-даты считается новейшей, и свойства можно обновить соответствующим образом. Разрешение конфликта посредством сравнения информации времени-даты становится исключительно проблематичным, когда подлежащие синхронизации данные не включают в себя информации времени-даты, которые называются данными низкой достоверности. Например, многие малые вычислительные устройства имеют ограниченные физические ресурсы и не имеют возможности поддержания информации времени-даты для свойств элемента структуры данных. В результате, когда компьютер выполняет входящую синхронизацию данных от такого устройства с низкой достоверностью данных, он не знает, когда пользователь первоначально установил это свойство. Это препятствует компьютеру выполнить входящую синхронизацию свойства от другого вычислительного устройства и уверенно использовать логическую схему разрешения по принципу приоритета последнего записавшего для фиксации наиболее новой версии свойства. Даже если конфликта и не было, обычно нет возможности синхронизовать изменение свойств для принимающего устройства без процесса разрешения конфликтов.
Сущность изобретения
Вышеизложенные недостатки и проблемы известных систем синхронизации преодолеваются посредством настоящего изобретения. Например, в распределенной вычислительной системе, выполненной с возможностью синхронизации данных между устройствами, может присутствовать устройство, которое хранит в базе данных свойство без соответствующего поля времени-даты. В таких случаях настоящее изобретение обеспечивает возможность ассоциирования информации времени-даты со значением свойства в базе данных.
Иллюстративные варианты осуществления обеспечивают возможность идентификации информации времени-даты, соответствующей значениям удаленных свойств в удаленной базе данных, которая хранит свойства без соответствующего поля времени-даты. Идентифицированную информацию времени-даты форматируют в соответствии со стандартным форматом, допускающим синтаксический анализ со стороны устройств распределенной вычислительной системы. Отформатированную информацию времени-даты посылают в удаленную базу данных для хранения в поле, ассоциированном со значениями удаленных свойств.
Другие иллюстративные варианты осуществления обеспечивают для распределенной вычислительной системы возможность иметь устройство, которое хранит свойства в базе данных без соответствующего поля времени-даты. Отформатированную информацию времени-даты принимают в стандартном формате, допускающем синтаксический анализ посредством устройств в распределенной вычислительной системе, при этом отформатированную информацию времени-даты ассоциируют со значениями свойств. Кроме того, отформатированную информацию времени-даты сохраняют в поле базы данных, ассоциированном со значениями свойств, так что эту отформатированную информацию времени-даты можно использовать для разрешения конфликтов данных, вовлекающих эти значения свойств.
Дополнительные варианты осуществления обеспечивают возможность разрешения конфликта данных между устройствами в распределенной вычислительной системе. Значение удаленного свойства принимают для удаленного свойства. Также принимают соответствующую информацию удаленного времени-даты из базы данных без соответствующего поля времени-даты. Информация удаленного времени-даты отформатирована в соответствии со стандартным форматом, допускающим синтаксический анализ со стороны устройств в распределенной вычислительной системе. Кроме того, обнаруживают конфликт между удаленным значением и соответствующим значением локального свойства. Синтаксический анализ информации удаленного времени-даты выполняют согласно упомянутому стандартному формату с целью идентификации удаленных времени и даты, которые указывают, когда произошло изменение значений удаленных свойств. Помимо этого удаленные время и дату сравнивают с локальными временем и датой, при этом локальные время и дата указывают, когда произошло изменение одного или более значений локальных свойств. Затем на основе результатов сравнения разрешают конфликт.
Другие проблемы и недостатки известных систем синхронизации преодолеваются настоящим изобретением. Например, в распределенной вычислительной системе, выполненной с возможностью синхронизации данных между устройствами, иллюстративные варианты осуществления обеспечивают возможность определения того, изменилось ли значение свойства на удаленном устройстве с момента последней синхронизации этого свойства между данным удаленным устройством и локальной машиной.
Иллюстративные варианты осуществления обеспечивают то, что во время синхронизации данных между удаленным устройством и локальным устройством принимают текущее значение для удаленного свойства и удаленное представление для предшествующего значения этого удаленного свойства. Затем генерируют локальное представление удаленного свойства на основе текущего значения для этого удаленного свойства. Соответственно, удаленное представление сравнивают с локальным представлением и на основе результата сравнения определяют, что предшествующее значение удаленного свойства было изменено после генерации удаленного представления.
Другие иллюстративные варианты осуществления обеспечивают то, что во время синхронизации данных между удаленным устройством и локальным устройством принимают удаленное значение для удаленного свойства и удаленное представление для данного удаленного значения упомянутого удаленного свойства. Затем генерируют локальное представление удаленного свойства на основе удаленного значения для удаленного свойства. Соответственно, удаленное представление сравнивают с локальным представлением и на основе результата сравнения определяют, что удаленное значение удаленного свойства не изменилось после генерации удаленного представления.
Другие проблемы и недостатки известных систем синхронизации преодолеваются посредством настоящего изобретения. Например, иллюстративные варианты осуществления обеспечивают возможность сохранения ресурсов памяти посредством выбора значений свойств, которым должна быть назначена информация времени-даты, используемая при разрешении конфликтов между синхронизируемыми значениями.
Иллюстративные варианты осуществления обеспечивают возможность приема множества значений свойств от удаленного устройства. На основе доступных ресурсов удаленного устройства выбирают ограниченный набор значений свойств из упомянутого множества значений свойств. Кроме того, идентифицируют набор информации времени-даты из множества информации времени-даты, соответствующей упомянутому множеству значений свойств. Каждое из значений свойств в упомянутом ограниченном наборе соответствует отличающейся части набора информации времени-даты и указывает на то, когда каждое из значений свойств в пределах упомянутого ограниченного набора было модифицировано последний раз. Упомянутые отличающиеся части информации времени-даты затем сохраняют в удаленной базе данных удаленного устройства.
Другие иллюстративные варианты осуществления обеспечивают возможность того, что выбор ограниченного набора значений свойств может также основываться на статистической информации, ассоциированной с изменением упомянутого множества значений свойств. Например, статистическая информация может представлять собой частоту, с которой изменяют каждое из упомянутого множества значений свойств, и можно выбрать наиболее часто изменяемые значения свойств. В качестве альтернативы или дополнения статистической информации может быть информация времени-даты для упомянутого множества значений свойств, и можно выбрать наиболее редко изменяемые значения свойств.
Другие иллюстративные варианты осуществления обеспечивают возможность идентификации части информации времени-даты из ранее идентифицированного множества информации времени-даты для оставшихся значений свойств, не находящихся в пределах упомянутого ограниченного набора значений свойств. Упомянутая часть информации времени-даты соответствует тому, когда одно или более из упомянутых оставшихся значений свойств были изменены пользователем. Идентифицированную часть информации времени-даты можно затем сохранить в одном местоположении в удаленной базе данных так, чтобы идентифицированная часть информации времени-даты соответствовала всем из упомянутых одного или более оставшихся значений свойств.
Дополнительные признаки и преимущества настоящего изобретения будут изложены в нижеследующем описании и частично станут очевидны из описания, либо их можно изучить при практическом использовании настоящего изобретения. Признаки и преимущества настоящего изобретения могут быть реализованы и получены посредством инструментальных средств и комбинаций, конкретно указанных в прилагающейся формуле изобретения. Эти и другие признаки настоящего изобретения станут понятны более полно из нижеследующего описания и прилагаемой формулы изобретения, либо могут быть изучены при практическом применении настоящего изобретения в соответствии с нижеприведенным изложением.
Перечень фигур чертежей
Для описания способа, которым вышеизложенные и другие преимущества и признаки изобретения могут быть получены, более детальное описание изобретения, кратко описанного выше, будет выполнено посредством ссылки на конкретные варианты его осуществления, которые проиллюстрированы на прилагаемых чертежах. Следует понимать, что эти чертежи иллюстрируют только типичные варианты осуществления изобретения и, таким образом, они не должны рассматриваться как ограничивающие его объем, при этом изобретение будет описано и пояснено с дополнительными подробностями и деталями посредством использования сопровождающих чертежей, на которых:
Фиг. 1А - иллюстрация распределенной системы с устройствами с высокой достоверностью данных и устройствами с низкой достоверностью данных, в которой может быть реализовано настоящее изобретение.
Фиг. 1В - иллюстрация обнаружения конфликта между двумя устройствами в распределенной системе в соответствии с иллюстративными вариантами осуществления настоящего изобретения.
Фиг. 2 - иллюстрация обновления и использования информации времени-даты в распределенной системе с устройством с низкой достоверностью данных в соответствии с иллюстративными вариантами осуществления настоящего изобретения.
Фиг. 3 - пример иллюстративного стандартного формата информации времени-даты в поле в соответствии с иллюстративными вариантами осуществления настоящего изобретения.
Фиг. 4 - блок-схема последовательности операций способа ассоциирования информации времени-даты со значением свойства в базе данных без соответствующего поля времени-даты согласно иллюстративным вариантам осуществления.
Фиг. 5 - блок-схема последовательности операций способа приема и сохранения информации времени-даты со значением свойства в базе данных без соответствующего поля времени-даты согласно иллюстративным вариантам осуществления.
Фиг. 6 - блок-схема последовательности операций способа разрешения конфликтов между устройствами в распределенной вычислительной системе с использованием информации времени-даты, принятой из базы данных без соответствующего поля времени-даты, согласно иллюстративным вариантам осуществления.
Фиг. 7 - блок-схема последовательности операций способа определения того, когда значение для свойства на удаленном устройстве изменилось с момента последней синхронизации данного свойства согласно иллюстративным вариантам осуществления.
Фиг. 8 - блок-схема последовательности операций способа выбора из множества значений свойств ограниченного набора значений свойств, которым должна быть назначена информация времени-даты, согласно иллюстративным вариантам осуществления.
Фиг. 9 - иллюстративная система, которая обеспечивает подходящую рабочую среду для настоящего изобретения.
Подробное описание предпочтительных вариантов осуществления
Настоящее изобретение охватывает способы, системы и компьютерные программные продукты для хранения и поддержания информации времени-даты для устройства, которое хранит свойства в базе данных без соответствующего поля времени-даты. Помимо этого настоящее изобретение обеспечивает возможность идентификации того, когда данные были изменены на удаленном устройстве. Настоящее изобретение также обеспечивает возможность выбора ограниченного набора значений свойств для назначения информации времени-даты для сохранения ограниченных ресурсов памяти. Варианты осуществления настоящего изобретения могут содержать компьютер общего или специального назначения, включающий в себя разнообразное аппаратное обеспечение компьютера, как описывается ниже более подробно.
В общем случае, настоящее изобретение обеспечивает распределенную вычислительную систему, которая выполнена с возможностью ассоциирования информации времени-даты со значением свойства в базе данных. Распределенная вычислительная система содержит устройство, которое хранит свойства в базе данных без соответствующих полей времени-даты и, таким образом, считается устройством с низкой достоверностью данных или наследуемым устройством. Иллюстративные варианты осуществления обеспечивают то, что информацию времени-даты, соответствующую значениям удаленных свойств, можно идентифицировать и форматировать в соответствии со стандартным форматом, допускающим синтаксический анализ посредством одного или более устройств в распределенной вычислительной системе. Отформатированную информацию времени-даты посылают в удаленную базу данных для сохранения в поле, ассоциированном со значениями удаленных свойств. Затем отформатированную информацию времени-даты можно использовать при разрешении конфликтов между значениями свойств.
Другие иллюстративные варианты осуществления обеспечивают возможность определения того, когда значение для свойства на удаленном устройстве изменилось с момента последней синхронизации данного свойства между удаленным устройством и локальной машиной. Кроме того, другие иллюстративные варианты осуществления обеспечивают возможность выбора ограниченного набора значений свойств из множества значений свойств на основе доступных ресурсов удаленного устройства.
Далее делается ссылка на фигуры, на которых для идентичных структур предусмотрены аналогичные или идентичные ссылочные обозначения. Следует понимать, что чертежи представляют собой примеры схематических представлений вариантов осуществления изобретения и не подразумеваются для ограничения или иного сужения объема настоящего изобретения.
Фиг. 1А иллюстрирует несколько узлов в распределенной вычислительной сети 100 для иллюстрации соединений и того, как каждый узел выполняет синхронизацию с другими узлами в данной системе. Например, как показано в распределенной вычислительной системе 100, рабочий компьютер 105 может выполнить синхронизацию с несколькими различными устройствами, такими как сервер 100 электронной почты, PDA 115, мобильный телефон 120 и сервер 125 мгновенного обмена сообщениями. Целью синхронизации данных в такой распределенной вычислительной системе является гарантия того, что наиболее новая информация подается на все устройства, используемые одним или более пользователями.
Данные, в отношении которых требуется выполнить синхронизацию, могут представлять собой контактную информацию, в которой каждый элемент соответствует информации об отдельном индивидууме, компании, корпорации или другом аналогичном контакте. Примером свойств, ассоциированных с каждым элементом контактной информации, может быть имя, отчество, фамилия, название компании, адрес, номер телефона, адрес электронной почты, информация Web-сайта и т.д. Однако, очевидно, локальные данные могут представлять собой информацию, отличную от контактной информации. Например, локальные данные могут представлять собой календарную информацию и/или информацию планирования, файл, приложение или любую другую подобную информацию, синхронизацию которой требуется выполнить между двумя устройствами. Следовательно, ссылка на контактную информацию используется исключительно в иллюстративных целях и не предполагается в качестве ограничения или иного сужения объема настоящего изобретения сверх того, как оно явным образом заявлено.
Подобно рабочему компьютеру 105, домашний портативный компьютер 130 может быть выполнен с возможностью синхронизации с сервером 125 мгновенного обмена сообщениями, мобильным телефоном 120, PDA 115 и сервером 110 электронной почты. Распределенная вычислительная система 100 может быть скомпонована из устройств с низкой достоверностью данных (например, устройств, база данных которых не выполнена с возможностью хранения информации времени-даты для свойств) и устройств с высокой достоверностью данных. Это важно для рассмотрения, поскольку в идеальном варианте каждая база данных имела бы информацию времени-даты для каждого свойства в элементе для указания момента времени, когда пользователь последний раз изменил данное свойство. Если бы это было так, то адаптеры синхронизации могли бы использовать правило приоритета последнего записавшего для обеспечения возможности по последней информации времени-записи определить победителя. Это решило бы некоторые проблемы зацикливания и привело бы к тому, что наилучшее свойство оказывалось бы победителем в каждом конфликте (при условии того, что часы, используемые в пределах распределенной вычислительной системы также синхронизированы). Поскольку многие распределенные вычислительные системы 100 скомпонованы из по меньшей мере нескольких клиентов с низкой достоверностью данных или наследуемых клиентов с ресурсами памяти, ограниченными для хранения такой информации времени-даты, и поскольку желательной является поддержка таких наследуемых клиентов, требуются иные пути для разрешения конфликтов между устройствами во избежание потенциально бесконечных циклов синхронизации.
Фиг. 1В иллюстрирует часть распределенной вычислительной системы 100 с удаленными устройствами 116 (такими как мобильный телефон 120 или PDA 115) и локальной машиной 132 (такой как домашний портативный компьютер 120 или рабочий компьютер 105). Как показано, удаленное устройство 116 изменило значение свойства с А на В в некоторый момент времени после того, как синхронизация между двумя устройствами 116, 132 была выполнена в последний раз. Аналогично, локальная машина 132 изменила значение того же самого свойства с А на С после того, как синхронизация между двумя устройствами 116, 132 была выполнена в последний раз. В результате, удаленное устройство 116 имеет стрелку 135 “требуется синхронизация”, показывающую, что должна быть выполнена синхронизация значения В для свойства по направлению к локальной машине 132. Аналогично, локальная машина 132 имеет стрелку 140 “требуется синхронизация”, показывающую, что должна быть выполнена синхронизация значения С по направлению к удаленному устройству 116. Поскольку оба устройства 116, 132 имеют стрелки “требуется синхронизация”, направленные вверх и вниз, соответственно, соответствующие синхронизации значений свойства, может возникнуть конфликт.
Как было сказано ранее, обычно конфликты, подобные конфликту, обозначенному на Фиг. 1В, могут быть разрешены посредством сравнения информации времени-даты, ассоциированной со значениями свойств. Однако разрешение конфликта посредством сравнения информации времени-даты становится весьма проблематичным, когда подлежащие синхронизации данные не включают в себя информацию времени-даты, как в случае устройств с низкой достоверностью данных. Это не дает возможности компьютеру выполнить входящую синхронизацию свойства от другого вычислительного устройства и уверенно использовать логическую схему разрешения по принципу приоритета последнего записавшего с целью выделения наиболее нового свойства. Кроме того, другая проблема, связанная с устройствами с низкой достоверностью данных, состоит в отсутствии возможности идентификации того, когда изменилось свойство. Соответственно, даже если информацию времени-даты можно ассоциировать с данными низкой достоверности, такая информация, или информация времени-даты, потенциально является недостоверной в силу того факта, что свойства могут изменяться на устройстве с низкой достоверностью данных.
Вышеупомянутые недостатки и проблемы известных распределенных вычислительных систем преодолеваются посредством иллюстративных вариантов осуществления настоящего изобретения. Например, настоящее изобретение обеспечивает возможность ассоциирования информации времени-даты со значениями свойств в базе данных, в которой устройство хранит свойства без соответствующего поля времени-даты (то есть устройство с низкой достоверностью данных). Кроме того, настоящее изобретение обеспечивает возможность определения того, когда значение для свойства на удаленном устройстве изменилось с момента последней синхронизации данного свойства, даже если удаленным устройством является устройство с низкой достоверностью данных.
Фиг. 2 иллюстрирует распределенную вычислительную сеть 200 с системой, выполненной с возможностью создания, использования и обновления информации времени-даты для устройства с низкой достоверностью данных в соответствии с иллюстративными вариантами осуществления настоящего изобретения. Распределенная вычислительная система 200 включает в себя две машины с высокой достоверностью данных, локальную машину 210 и удаленную машину 220. В состав распределенной вычислительной системы 200 также входит устройство с низкой достоверностью данных, а именно удаленное устройство 205. Удаленное устройство 205 обладает низкой достоверностью данных в том плане, что база данных, ассоциированная с удаленным устройством 205, не может хранить информацию времени-даты с каждым свойством. Иными словами, удаленное устройство 205 хранит свойства в своей базе данных без соответствующего поля времени-даты.
Хотя удаленное устройство 205 не имеет полей времени-даты для свойств в своей базе данных, иллюстративные варианты осуществления обеспечивают возможность ассоциирования информации времени-даты со значениями свойств в удаленном устройстве 205 и обеспечивают возможность удаленному устройству 205 хранить информацию времени-даты в стандартном формате внутри неиспользуемого поля. Например, локальная машина 210 может идентифицировать информацию времени-даты, соответствующую значениям удаленных свойств, в базе данных удаленного устройства 205. Идентифицированную информацию времени-даты можно затем отформатировать согласно стандартному формату, допускающему синтаксический анализ со стороны некоторых устройств в распределенной вычислительной системе 200. Стандартный формат может соответствовать, например, универсальному идентификатору информационного ресурса (URI). Например, URI может быть в форме синхронизированного универсального указателя информационного ресурса (Sync URL), который идентифицирует свойство и включает в себя идентифицированную информацию времени-даты, ассоциированную с каждым свойством. Как будет описано ниже более подробно в отношении Фиг. 3, этот формат Sync URL является предпочтительным, поскольку он без труда идентифицирует и допускает синтаксический анализ посредством многих устройств, иными словами, фактически идеален в качестве стандартного формата.
Локальная машина 210 может послать удаленному устройству 205 отформатированную информацию времени-даты, которая будет сохранена в поле, ассоциированном со значениями удаленных свойств. Например, как показано на Фиг. 2, локальная машина 210 посылает элемент 1 (215) с информацией времени-даты (T/D) и обновленные свойства при синхронизации с удаленным устройством 205. Удаленное устройство 205 затем сохраняет элемент 1 (215), который включает в себя информацию времени-даты. Отформатированную информацию времени-даты сохраняют в неиспользуемом поле свойства на удаленном устройстве 205. Например, удаленное устройство 205 может хранить отформатированную информацию времени-даты в нормальном свойстве, скрытом свойстве, частном расширенном свойстве или даже присоединить его к концу поля заметок. Следует отметить, что хотя в поле свойства можно хранить другую информацию (например, текст в поле заметок), согласно настоящему изобретению такие поля считаются неиспользуемыми, поскольку такое поле не зарезервировано для хранения информации времени-даты. Соответственно, понятие “неиспользуемое” поле свойства следует интерпретировать настолько широко, что при этом подразумевается любое поле свойства, не зарезервированное для хранения информации времени-даты.
Иллюстративные варианты осуществления обеспечивают возможность использования отформатированной информации времени-даты для нескольких разных целей или идентификации того, когда изменилось свойство. Например, синхронизацию инициируют между удаленным устройством 205 и удаленной машиной 220. Соответственно, элемент 1 (215) можно послать на удаленную машину 220 со свойствами и отформатированной информацией времени-даты. Поскольку форматирование информации времени-даты выполняется согласно стандартному формату, допускающему синтаксический анализ, удаленная машина 220 может выполнить синтаксический анализ в отношении удаленной информации времени-даты и идентифицировать удаленную информацию времени-даты, ассоциированную с каждым свойством. Эту удаленную информацию времени-даты затем можно сравнивать с информацией времени-даты удаленной машины 220 при разрешении любых конфликтов между значениями свойств.
Другие иллюстративные варианты осуществления обеспечивают возможность обнаружения того, когда свойство изменилось на удаленном устройстве 205. Например, отформатированная информация времени-даты в элементе 1 (215) может включать в себя представление значения свойства, соответствующего последней синхронизации с локальной машиной 210, в каждом сегменте информации времени-даты. Упомянутое представление может, например, иметь форму результата хэширования, который является результатом хэширования значения свойства, соответствующего последней синхронизации, которое было ассоциировано с информацией времени-даты. Когда удаленная машина 220 принимает элемент 1 (215) для синхронизации, принятые в элементе 1 свойства также могут быть хэшированы с использованием той же самой стандартной функции хэширования, которая использовалась для хэширования значения свойства, соответствующего последней синхронизации. Стандартные функции хэширования, которые могут быть использованы, включают в себя, но не в ограничительном смысле, SHA-1, MD5 или другие подобные функции хэширования.
Хэшированное значение в составе отформатированной информации времени-даты можно сравнить с хэшированным значением, сгенерированным удаленной машиной 220. Если значения не совпадают, можно сделать вывод о том, что значение свойства, ассоциированное с информацией времени-даты, было изменено на удаленном устройстве 205. Соответственно, информация времени-даты потенциально является недостоверной и, таким образом, может быть сброшена удаленной машиной 220. В таком случае, поскольку информация времени-даты потенциально является недостоверной, пользователю может быть предоставлен пользовательский интерфейс с целью разрешения данного конфликта. Естественно, доступны также и другие пути разрешения этого конфликта посредством использования стандартных практических подходов, широко известных в данной области техники.
Следует отметить, что вышеописанное использование результата хэширования или представления свойства в целях определения того, когда имело место изменение на удаленном устройстве 205, не ограничивается отформатированной информацией времени-даты. Например, сравнение представлений свойства в целях определения того, когда изменилось значение свойства, можно использовать без информации времени-даты. Такие примеры могут оказаться полезны при определении того, когда требуется выполнить синхронизацию свойств в направлении от удаленного устройства 205 без необходимости сравнения значений свойств, хранящихся на удаленной машине 220. Соответственно, использование результата хэширования или представления удаленного свойства в Sync URL или отформатированной информации времени-даты используется исключительно в иллюстративных целях и не подразумевается в качестве ограничения или иного сужения объема настоящего изобретения, если явным образом не приведено в формуле изобретения.
Фиг.3 иллюстрирует то, как информацию времени-даты можно отформатировать и сохранить на удаленном устройстве 205. Как показано на Фиг.3, элемент 355 имеет различные поля для контактной информации, которые включают в себя идентификаторы свойств, имена свойств и начальное значение для свойств. Естественно, другие элементы, свойства, поля и т.п. также доступны, за исключением зарезервированного поля свойства времени-даты. Соответственно, упоминание контактной информации элемента 355 и полей внутри него используется исключительно в иллюстративных целях и не подразумевается в качестве ограничения или иного сужения объема настоящего изобретения, если явным образом не приведено в формуле изобретения.
Также согласно Фиг. 3 отформатированная информация времени-даты может быть сохранена в поле 375 свойства в качестве значения 350 поля. Иллюстративные варианты осуществления обеспечивают возможность того, что форматирование может иметь форму Sync URL, как изображено в поле 350. Покомпонентное представление частей поля 350, в отношении которых выполнен синтаксический анализ, также показано на Фиг. 3. Первая часть поля 350 включает в себя Sync URL 305. Эта часть показывает устройствам, которые сканируют элемент 355, что следующие сегменты Sync URL включают в себя информацию времени-даты для различных свойств в элементе 355. Следует отметить, что заполнитель 315, обычно резервируемый для информации указателя в Sync URL 305, может как использоваться, так и не использоваться.
Каждый из следующих сегментов может быть отделен амперсантом 340 и идентифицирован посредством идентификационных данных свойств, например значения 310 свойства. Также в каждый сегмент Sync URL 305 в поле 350 включена информация времени-даты, ассоциированная с идентификационными данными свойств (например, время_дата_1 330 ассоциирована с идентификатором ID_1 свойства). Иллюстративные варианты осуществления обеспечивают возможность того, что простое представление информации времени-даты можно использовать в целях экономии ценных ресурсов памяти. Например, информация времени-даты может быть сохранена в качестве шестнадцатеричного числа. Для сохранения большего пространства, информация времени-даты также может быть сохранена с меньшим разрешением. Например, значения времени-даты обычно сохраняются с точностью до тысячной доли секунды. Однако иллюстративные варианты осуществления обеспечивают возможность формирования отформатированной информации времени-даты или Sync URL со значениями времени-даты, сохраненными с точностью до секунды или минуты. Помимо этого иллюстративные варианты осуществления обеспечивают возможность сохранения информации времени-даты независимым от временной зоны образом. Соответственно, это обеспечивает сравнимые времена, когда узлы в топологии синхронизации находятся в разных временных зонах.
В каждом сегменте Sync URL 305 также обеспечено представление свойства, например, представление 320 свойства. Иллюстративные варианты осуществления обеспечивают возможность того, что представление 320 свойства может иметь форму результата хэширования, который, в соответствии с вышеприведенным описанием, можно использовать при определении того, было ли изменено значение свойства с момента создания представления 320 свойства. Это служит показателем того, является ли информация 330 времени-даты потенциально недостоверной.
За исключение некоторых полей, таких как поля заметок, память, доступная для хранения отформатированной информации времени-даты, ограничена. Как таковая, память для хранения информации времени-даты для каждого свойства может не быть доступна или практически пригодна. Соответственно, настоящее изобретение обеспечивает возможность определения и выбора ограниченного набора значений свойств среди общего количества значений свойств в элементе 355. Выбор значений свойств для включения информации времени-даты в Sync URL 305 согласно настоящему изобретению может быть реализован на основе различных соображений. Например, данный выбор может основываться на тех значениях свойств, которые изменились наиболее недавно. В качестве альтернативы, значения свойств, выбранные в качестве имеющих информацию времени-даты, ассоциированную с ними в Sync URL 305 или отформатированной информации времени-даты, могут основываться на эвристических данных, таких как частота изменения для конкретного значения свойства. Естественно, предусматривается любое другое количество разнообразных путей для выбора значений свойств для ассоциирования с информацией времени-даты. Соответственно, то, каким образом выбираются свойства, например, наиболее редко изменяемые свойства, используется исключительно в иллюстративных целях и не подразумевается в качестве ограничения или иного сужения объема настоящего изобретения, если явным образом не приведено в формуле изобретения.
Поскольку пространство памяти является предметом рассмотрения, и обычно требуется выбрать поднабор свойств в качестве имеющих ассоциированную с ними информацию времени-даты, настоящее изобретение также может обеспечить возможность определения того, изменились ли другие свойства с момента последней синхронизации, а также ассоциирования с ними информации времени-даты в пределах ограниченного пространства. Например, настоящее изобретение обеспечивает возможность представления оставшихся свойств в урезанном формате и ассоциирования информации времени-даты, соответствующей верхней и/или нижней границе, для представления. Например, как показано на Фиг. 3, к концу Sync URL 305 в поле 350 присоединен сегмент с идентификатором 360 свойства, содержащим оставшееся значение. Идентификатор 360 свойства указывает устройствам, которые сканируют Sync URL 305, что свойства, которые не имеют конкретной ассоциированной с ними информации времени-даты, представлены в этом сегменте. Соответственно, можно использовать представление 365 свойства для упомянутых оставшихся значений свойств.
Как и в случае вышеописанных представлений других свойств, например представления 320 свойства, представление 365 свойства для оставшихся свойств может иметь форму результата хэширования значений всех оставшихся свойств. Как таковое, это представление 365 свойства можно использовать способом, аналогичным ранее описанному в отношении представлений свойств, с целью идентификации того, когда одно из значений оставшихся свойств изменилось с момента последней синхронизации между удаленной машиной и локальной машиной. Другие варианты осуществления также обеспечивают возможность ассоциирования информации 370 времени-даты с оставшимся свойством путем задания верхней и/или нижней границы, когда оставшиеся значения свойств изменились.
Хотя оставшийся сегмент был описан в качестве дополнительного сегмента Sync URL, следует понимать, что оставшийся сегмент может быть отформатирован в своем собственном поле. Например, в случае, когда требуется зарезервировать пространство или память, оставшийся сегмент можно использовать для идентификации того, когда одно или более свойств во всем элементе 355 изменились. Соответственно, использование оставшегося сегмента, присоединенного к концу Sync URL 305, задействуется исключительно в иллюстративных целях и не подразумевается в качестве ограничения или иного сужения объема настоящего изобретения, если явным образом не приведено в формуле изобретения.
Настоящее изобретение также может быть описано в терминах способов, содержащих функциональные этапы и/или нефункциональные действия. Далее следует описание этапов и действий, которые могут быть выполнены при практической реализации настоящего изобретения. Обычно функциональные этапы описывают изобретение в терминах достигаемых результатов, в то время как нефункциональные действия описывают более специфические действия для достижения конкретного результата. Хотя функциональные этапы и нефункциональные действия могут быть описаны или охарактеризованы в формуле изобретения в каком-либо конкретном порядке, настоящее изобретение не ограничивается каким-либо конкретным порядком или конкретной комбинацией действий и/или этапов. Помимо этого действия и/или этапы в формуле изобретения и в нижеследующем описании блок-схем последовательностей операций по Фиг. 4-8 используются для указания желаемого конкретного использования таких терминов.
На Фиг. 4-8 представлены иллюстративные блок-схемы последовательностей операций для различных вариантов осуществления настоящего изобретения. В нижеследующем описании Фиг. 4-8 время от времени будут делаться ссылки на соответствующие элементы с Фиг. 1В, 2 и 3. Хотя ссылка может делаться на конкретный элемент с этих фигур, такие элементы используются исключительно в иллюстративных целях и не подразумеваются в качестве ограничения или иного сужения объема настоящего изобретения, если явным образом не приведены в формуле изобретения.
На Фиг. 4 показана иллюстративная блок-схема последовательности операций способа 400 ассоциирования информации времени-даты со значением свойства в удаленной базе данных, которая хранит свойства без соответствующего поля времени-даты. Способ 400 включает в себя действие 405 идентификации информации времени-даты. Информация времени-даты будет соответствовать одному или более значениям свойств в удаленной базе данных. Способ 400 также включает в себя действие 410 форматирования идентифицированной информации времени-даты. Информацию времени-даты форматируют согласно стандартному формату, допускающему синтаксический анализ со стороны одного или более устройств 210, 220 в распределенной вычислительной системе 200. Стандартный формат может иметь вид URI, например, Sync URL 305. В отношении Sync URL 305 можно выполнять синтаксический анализ с разбиением на сегменты, разделенные амперсантом 340. Каждый сегмент может включать в себя идентификатор (ID) 310 свойства, представление 320 значений свойств и информацию 330 времени-даты, соответствующую значениям свойств. Иллюстративные варианты осуществления обеспечивают возможность того, что представление 320 значений свойств может представлять собой результат хэширования конкретного значения свойства. Кроме того, представлением информации времени-даты может быть шестнадцатеричное число, и/или данное представление можно хранить с точностью до секунды или минуты и/или в независимом от временной зоны формате.
Способ 400 также включает в себя действие 420 посылки отформатированной информации времени-даты. Например, отформатированная информация времени-даты может быть послана в удаленную базу данных для сохранения в поле 350, ассоциированном со значениями удаленных свойств. Поле 350 может представлять собой, например, поле заметок, скрытое поле, расширенное частное поле или какое-либо другое аналогичное неиспользуемое поле.
Другие иллюстративные варианты осуществления обеспечивают возможность того, что значения свойств, которые имеют ассоциированную с ними информацию времени-даты в поле 305, представляют собой поднабор общего количества значений свойств. Упомянутый поднабор можно выбрать на основе значений, ассоциированных с информацией времени-даты. Например, самую последнюю информацию времени-даты можно использовать для выбора значений свойств, включаемых в упомянутый поднабор. В качестве альтернативы, для выбора упомянутого поднабора можно использовать частоту, с которой менялись значения свойств.
Еще в одних вариантах осуществления оставшуюся часть значений свойств из общего количества значений свойств можно объединить в значении 365 представления и ассоциировать с ним информацию 370 времени-даты. Например, информацией 370 времени-даты может быть наиболее редко изменяемое значение для общего количества свойств среди оставшихся свойств. В качестве альтернативы, она также может быть ограничена информацией 370 времени-даты нижней границы, указывающей, когда одно из свойств в оставшейся части значений свойств оказывается свойством, синхронизация в отношении которого должна быть выполнена через наименьшее время. Помимо этого значение 365 объединенного представления может иметь форму результата хэширования оставшейся части значений свойств.
Фиг. 5 иллюстрирует способ приема и сохранения информации времени-даты со значением свойства в базе данных, в которой свойства хранятся без соответствующего поля времени-даты. Способ 500 включает в себя действие 505 приема отформатированной информации времени-даты. Информация времени-даты ассоциирована со значениями свойств и отформатирована согласно стандартному формату, допускающему синтаксический анализ со стороны одного или более устройств 210, 220 в распределенной вычислительной системе 200. Способ 500 также включает в себя действие 510 сохранения отформатированной информации времени-даты. Отформатированную информацию времени-даты можно хранить в поле 350 базы данных, ассоциированном со значением свойства, так что эту отформатированную информацию времени-даты можно использовать для разрешения конфликтов данных, вовлекающих значения свойств.
Иллюстративные варианты осуществления также обеспечивают возможность идентификации и обновления отформатированной информации времени-даты. Например, при изменении значения свойства отформатированную информацию времени-даты можно идентифицировать как являющуюся ассоциированной со значениями свойств. Затем эту отформатированную информацию времени-даты можно обновить в поле базы данных в соответствии с измененным значением свойства. Иллюстративные варианты осуществления обеспечивают возможность того, что это может быть выполнено удаленным устройством 205 с помощью соответствующего прикладного программного обеспечения. Например, отформатированная информация времени-даты может быть принята и сохранена в удаленной базе данных 205, и пользователь удаленного устройства может выполнить изменение. В качестве альтернативы, изменение может быть выполнено локальной машиной 210, 220. Локальная машина 210, 220 сохраняет неформатированную информацию времени-даты для свойств, ассоциированную с одним или более значениями свойств в базе данных, и хранит данную информацию в соответствующих полях времени-даты. Иными словами, локальная машина 210, 220 представляет собой устройство с высокой достоверностью данных.
Фиг.6 иллюстрирует способ разрешения конфликта данных между устройствами в распределенной системе. Одно из устройств в распределенной вычислительной системе хранит свойства в базе данных без соответствующего поля времени-даты. Способ 600 включает в себя действие 605 приема значения удаленного свойства. Принимают значение удаленного свойства для удаленного свойства, а также соответствующую удаленную информацию удаленного времени-даты. Помимо этого информация удаленного времени-даты отформатирована согласно стандартному формату, допускающему синтаксический анализ со стороны одного или более устройств в распределенной вычислительной системе, например формату URI или Sync URL. Способ 600 также включает в себя действие 610 обнаружения конфликта. Конфликт имеет место между значением удаленного свойства и соответствующим значением локального свойства.
Способ 600 может также включать в себя функциональный этап 620, ориентированный на результат, на котором используют информацию удаленного времени-даты. Информацию времени-даты можно использовать для выбора надлежащего значения свойства для синхронизации между локальным устройством и удаленным устройством. Этап 620 может включать в себя действие 622 синтаксического анализа информации удаленного времени-даты. Информация удаленного времени-даты, в отношении которой выполнен синтаксический анализ согласно стандартному формату, идентифицирует удаленные время и дату, которые показывают, когда было изменено значение удаленного свойства. Этап 620 также может включать в себя действие 624 сравнения удаленных времени и даты с локальными временем и датой. Локальные время и дата показывают, когда было изменено значение локального свойства. Этап 620 может включать в себя действие 626 разрешения конфликта. Разрешение конфликта основывается на результатах сравнения.
В соответствии с вышесказанным, стандартный формат может представлять собой любую форму URI. Например, URI может представлять собой URL, в отношении которого выполнен синтаксический анализ с разбиением на сегменты. Сегменты могут включать в себя идентификационные данные свойства, соответствующие значению удаленного свойства, представление значения удаленного свойства и представление информации времени-даты. Помимо этого представление значения удаленного свойства может быть результатом хэширования, а представление информации времени-даты может быть шестнадцатеричным числом.
Другие варианты осуществления обеспечивают возможность генерирования локального представления удаленного свойства на основе значения удаленного свойства. Затем локальное представление можно сравнивать с вышеупомянутым удаленным представлением с целью определения того, было ли изменено значение удаленного свойства.
Фиг.7 иллюстрирует способ 700 определения того, когда значение для свойства было изменено с момента последней синхронизации этого свойства между удаленным устройством и локальной машиной. Способ 700 включает в себя действие 705 приема текущего значения для удаленного свойства. Помимо этого принимают также удаленное представление предыдущего значения удаленного свойства. Способ 700 также может включать в себя действие 710 генерирования локального представления удаленного свойства. Локальное представление генерируют на основе текущего значения для удаленного свойства. Способ 700 также включает в себя действие 715 сравнения удаленного представления с локальным представлением. Наконец, способ 700 включает в себя действие 720 определения того, что удаленное свойство изменилось. Это определение показывает, что значение свойства было изменено после генерации удаленного представления. Соответственно, если информация времени-даты ассоциирована с удаленным свойством, например, в Sync URL 305, такая информация является потенциально недостоверной и может быть сброшена.
Фиг.8 иллюстрирует способ выбора ограниченного набора значений свойств из множества значений свойств. Значения свойств должны быть назначены информации времени-даты для устройства, которое хранит свойства в базе данных без соответствующих полей времени-даты. Способ 800 включает в себя действие 805 приема значений свойств от удаленного устройства. Способ 800 также включает в себя действие 810 выбора ограниченного набора информации времени-даты. Ограниченный набор значений свойств может быть выбран из множества значений свойств на основе доступных ресурсов удаленного устройства. Способ 800 также включает в себя действие 815 идентификации набора информации времени-даты. Каждое из значений свойств в упомянутом ограниченном наборе соответствует отличающейся от других части набора информации времени-даты. Способ 800 также включает в себя действие 820 сохранения отличающихся частей информации времени-даты в удаленной базе данных.
Способ 800 может также включать выполнение идентификации оставшихся частей значений свойств, сохранения их в качестве значения представления и ассоциирования с ними информации времени-даты. Например, часть информации времени-даты для оставшихся значений свойств может быть идентифицирована (при этом оставшиеся значения свойств не находятся в упомянутом ограниченном наборе значений свойств). Идентифицированную часть информации времени-даты можно сохранить в одном местоположении в удаленной базе данных таким образом, что данная идентифицированная часть информации времени-даты будет соответствовать всем из оставшихся значений свойств.
Варианты осуществления в рамках объема настоящего изобретения также включают в себя машиночитаемые носители, предназначенные для хранения на них машиноисполняемых команд или структур данных. Такие машиночитаемые носители могут представлять собой любые доступные носители, к которым компьютер общего или специального назначения может осуществить доступ. В качестве примера, но не ограничения, такие машиночитаемые носители могут включать в себя оперативное запоминающее устройство (ОЗУ, RAM), постоянное запоминающее устройство (ПЗУ, ROM), электрически стираемое программируемое ПЗУ (EEPROM), ПЗУ на компакт-диске (CD-ROM) или другой оптический дисковый накопитель, магнитный дисковый накопитель или другие магнитные устройства хранения данных, либо любой другой носитель, который можно использовать для переноса или хранения требующихся средств программного кода в форме машиноисполняемых команд или структур данных и к которому компьютер общего или специального назначения может осуществить доступ. Когда информацию переносят или передают через сеть или другое коммуникационное соединение (либо проводное, либо беспроводное, либо комбинацию проводного и беспроводного) на компьютер, данный компьютер надлежащим образом считает это соединение машиночитаемым носителем. Таким образом, применение к такому соединению термина “машиночитаемый носитель” является корректным. Комбинации вышеописанных носителей также охватываются понятием “машиночитаемый носитель”. Машиноисполняемые команды включают в себя, например, команды и данные, которые предписывают компьютеру общего назначения, компьютеру специального назначения или устройству обработки данных специального назначения выполнить определенную функцию или группу функций.
Фиг.9 и нижеследующее изложение предназначены для предоставления краткого, общего описания подходящей вычислительной среды, в которой может быть реализовано настоящее изобретение. Хотя этого не требуется, изобретение будет описано в общем контексте машиноисполняемых команд, таких как программные модули, исполняемые компьютерами в сетевых средах. В общем случае, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют определенные абстрактные типы данных. Машиноисполняемые команды, ассоциированные структуры данных и программные модули представляют собой примеры средств программного кода для выполнения этапов раскрытых здесь способов. Конкретная последовательность таких исполняемых команд или ассоциированных структур данных представляет примеры соответствующих действий для реализации функций, описанных на таких этапах.
Специалистам в данной области техники должно быть понятно, что настоящее изобретение может быть реализовано на практике в сетевых вычислительных средах с многими типами конфигураций компьютерных систем, включая персональные компьютеры, карманные устройства, многопроцессорные системы, основывающуюся на микропроцессорах или программируемую бытовую электронику, сетевые персональные компьютеры (ПК, РС), миникомпьютеры, универсальные компьютеры (мейнфреймы) и т.п. Изобретение также может быть реализовано на практике в распределенных вычислительных средах, в которых задачи выполняются локальными и удаленными устройствами обработки данных, которые связаны (либо посредством проводных линий связи или беспроводных линий связи, либо посредством комбинации проводных и беспроводных линий связи) через сеть связи. В распределенной вычислительной среде программные модули могут быть размещены как в локальных, так и в удаленных устройствах хранения данных.
Согласно Фиг.9 иллюстративная система для реализации настоящего изобретения включает в себя вычислительное устройство общего назначения в форме обычного компьютера 920, включающего в себя процессор 921, системную память 922 и системную шину 923, которая связывает различные компоненты системы, включая системную память 922, с процессором 921. Системная шина 923 может относиться к любому из нескольких типов структур шин, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, используя любую из разнообразия архитектур шин. Системная память включает в себя постоянное запоминающее устройство (ПЗУ) 924 и оперативное запоминающее устройство (ОЗУ) 925. Базовая система 926 ввода/вывода (BIOS), содержащая основные процедуры, помогающие переносить информацию между элементами персонального компьютера 920, например, при запуске, хранится в ПЗУ 924.
Компьютер 920 может также включать в себя накопитель 927 на жестких магнитных дисках для считывания с жесткого магнитного диска 939 и записи на него, магнитный дисковод 928 для считывания со съемного магнитного диска 929 или записи на него и оптический дисковод 930 для считывания со съемного оптического диска, такого как CD-ROM или другой оптический носитель, или записи на него. Накопитель 927 на жестких магнитных дисках, магнитный дисковод 928 и оптический дисковод 930 подсоединены к системной шине 923 посредством интерфейса 932 накопителя на жестких магнитных дисках, интерфейса 933 магнитного дисковода и интерфейса 934 оптического дисковода соответственно. Накопители и дисководы и связанные с ними машиночитаемые носители обеспечивают энергонезависимое хранение машиноисполняемых команд, структур данных, программных модулей и других данных для компьютера 920. Хотя в описанных здесь иллюстративных вариантах осуществления используются жесткий магнитный диск 939, съемный магнитный диск 929 и съемный оптический диск 931, можно использовать другие типы машиночитаемых носителей для хранения данных, включая магнитные кассеты, карты флэш-памяти, цифровые многофункциональные диски, картриджи Бернулли, оперативные запоминающие устройства, постоянные запоминающие устройства и т.п.
Средства программного кода могут храниться на жестком диске 939, магнитном диске 929, оптическом диске 931, в ПЗУ 924 или ОЗУ 925, включая операционную систему 935, одну или более прикладных программ 936, другие программные модули 937 и данные 938 программ. Пользователь может вводить команды и информацию в компьютер 920 посредством клавиатуры 940, указательного устройства 942 или других устройств ввода (не показаны), таких как микрофон, джойстик, игровая панель, спутниковая параболическая антенна, сканер и т.п. Эти и другие устройства ввода зачастую подсоединены к процессору 921 посредством интерфейса 946 пользовательского ввода, который подключен к системной шине 923. В качестве альтернативы, устройства ввода могут быть подсоединены посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 947 или устройство отображения другого типа также подсоединены к системной шине 923 через интерфейс, такой как видеоинтерфейс 948. В дополнение к монитору, персональные компьютеры обычно включают в себя другие периферийные устройства вывода (не показаны), такие как принтеры и громкоговорители.
Компьютер 920 также может работать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами, например, удаленными компьютерами 949а и 949b. Каждый из удаленных компьютеров 949а и 949b может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой обычный сетевой узел и обычно включает в себя многие или все элементы, описанные применительно к компьютеру 920, хотя на Фиг. 9 показаны только запоминающие устройства 950а и 950b и связанные с ними прикладные программы 936а и 936b. Логические соединения, показанные на Фиг. 9, включают в себя локальную сеть (LAN) 951 и глобальную сеть (WAN) 9523, которые представлены в настоящем описании в качестве примера, но не ограничения. Такие сетевые среды обычно имеют место в учреждениях, компьютерных сетях масштаба предприятия, интрасетях и сети Интернет.
При использовании в сетевой среде LAN компьютер 920 соединен с локальной сетью 951 через сетевой интерфейс или адаптер 953. При использовании в сетевой среде WAN, компьютер 110 обычно включает в себя модем 954, беспроводную линию связи или иное средство для установления связи через глобальную сеть 952, такую как Интернет. Модем 954, который может быть внутренним или внешним, подключен к системной шине 923 через интерфейс 946 последовательного порта. В сетевой среде программные модули, показанные применительно к компьютеру 920, или их части, могут храниться в удаленном запоминающем устройстве. Следует понимать, что показанные сетевые соединения являются иллюстративными и могут использоваться другие средства установления связи через глобальную сеть 952.
Настоящее изобретение может быть осуществлено в других специфических формах, не отходя от его сущности и существенных характеристик. Описанные варианты осуществления во всех отношениях следует считать только иллюстративными, а не ограничительными. Таким образом, объем изобретения определяется прилагаемой формулой изобретения, а не предшествующим описанием. Все изменения, соответствующие значению и диапазону эквивалентов формулы изобретения, охватываются объемом, определяемым прилагаемой формулой изобретения.