RU2337398C2 - Способ и устройство для синхронизации того, как данные сохраняются в различных хранилищах данных - Google Patents
Способ и устройство для синхронизации того, как данные сохраняются в различных хранилищах данных Download PDFInfo
- Publication number
- RU2337398C2 RU2337398C2 RU2004131856/09A RU2004131856A RU2337398C2 RU 2337398 C2 RU2337398 C2 RU 2337398C2 RU 2004131856/09 A RU2004131856/09 A RU 2004131856/09A RU 2004131856 A RU2004131856 A RU 2004131856A RU 2337398 C2 RU2337398 C2 RU 2337398C2
- Authority
- RU
- Russia
- Prior art keywords
- data
- message
- client
- server
- information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Abstract
Изобретение относится к передаче данных, в которых синхронизируется структура данных в хранилищах данных, содержащих элементы данных из одного или более приложений, таких как календари или электронная почта настольных компьютеров. Технический результат - повышение точности синхронизации. Для этого в способе, включающем в себя SyncML или иной сходный язык разметки, посредством чего два устройства синхронизируют то, как организуются данные в соответствующих хранилищах данных, поддерживаемых этими устройствами, которые работают согласно способу, а также соответствующей компьютерной программе, посредством которой любое из упомянутых устройств работает согласно этому способу. Согласно способу два устройства синхронизируют свои соответствующие хранилища данных в отношении папок для содержания блоков данных и, возможно, других папок при помощи обмена сообщениями, которые включают в себя элементы идентификации данных, которые ссылаются на папки, чтобы было возможно синхронизировать хранилища данных в отношении папок, причем элементы идентификации данных предусмотрены в сообщении внешними для любых ссылок на блоки данных. 4 н. и 20 з.п. ф-лы, 4 ил.
Description
Область, к которой относится изобретение
Настоящее изобретение относится к тому, каким образом синхронизируются перспективные хранилища данных, содержащие элементы данных из одного или более приложений, таких как календари или электронная почта настольных компьютеров. Конкретнее, настоящее изобретение касается того, как синхронизируется структура данных в таких хранилищах данных.
Уровень техники
В настоящее время деловому человеку можно использовать приложение электронной почты и приложение календаря (для отслеживания встреч) в мобильном телефоне или миниатюрном (ручном) компьютере (или каком-либо ином мобильном терминале) и иметь помощника, использующего то же самое приложение в настольном компьютере, чтобы отслеживать электронную почту, посылаемую и принимаемую этим помощником от имени делового человека, и отслеживать встречи для этого делового человека. В такой компоновке часто случается, что группы данных (называемые также блоками данных) для приложения электронной почты и группы данных для календаря содержатся в хранилище данных в мобильном телефоне и в другом хранилище данных в настольном компьютере. Таким образом, когда делаются изменения в любом из этих хранилищ данных, каждое из которых включает в себя группы данных как для приложения электронной почты, так и для приложения календаря, эти хранилища данных должны синхронизироваться. При синхронизации соответствующих хранилищ данных (т.е. синхронизации как групп данных, так и структуры данных двух этих хранилищ данных), используемых двумя приложениями, исполняемыми на различном оборудовании, содержания этих двух хранилищ данных устанавливают так, чтобы они соответствовали друг другу, на основании протокола, по которому сообщаются изменения с момента последней синхронизации, разрешаются конфликты между изменениями, сделанными на обеих частях этого оборудования (согласно некоторой политике), и вносятся изменения или в элементы данных, или в их организацию, либо и в то и в другое в одном или обоих хранилищах данных.
Для синхронизации таких хранилищ данных разрабатываются средства на основании того, что называется SyncML (synchronization markup language) (язык разметки синхронизации), разрабатываемый по так называемой Инициативе SyncML (информацию о SyncML, в том числе стандарты и описания для SyncML, и об Инициативе SyncML, специально включающей в себя Протокол представления SyncML и Протокол синхронизации SyncML, см. http:// www.syncml.org/). SyncML представляет собой открытый промышленный стандарт для общего языка для универсальной синхронизации удаленных данных (т.е. групп данных, хранящихся в различном оборудовании и, следовательно, в различных хранилищах данных) и личной информации по множеству сетей, платформ и устройств. С помощью SyncML группы данных - но все же не структура данных - могут быть синхронизированы на различных устройствах, соединенных через одну или более взаимосвязанных сетей, включающих, к примеру, универсальную систему мобильной связи (УСМС) (UMTS), сеть радиодоступа (СРД) (UTRAN) и Интернет, где связь может быть беспроводной в целом или частично, либо проводной. Таким образом, устройства могут осуществлять связь через, например, фиксированные сети (в том числе беспроводные сети), инфракрасные, кабельные или Bluetooth.
Помимо использования для синхронизации хранилищ данных, SyncML (т.е. язык) можно использовать для управления устройствами и более точно, для переноса управляющих действий между клиентом и управляющим сервером для клиента. Описание Протокола управления устройствами SyncML см. http://ww.syncml.org. Протокол управления устройствами SyncML позволяет управляющим командам выполняться в управляемых объектах, и он использует формат пакетов, аналогичный Протоколу синхронизации SyncML и Протоколу представления SyncML. Управляемый объект может отражать набор параметров конфигурации для устройства. Действия, которые можно предпринимать по отношению к этому объекту, могут включать в себя считывание и установку ключей и значений параметров. Другим управляемым объектом может быть среда выполнения реального времени для программных приложений в устройстве. Действия, которые можно предпринимать в отношении этого типа объекта, включают в себя инсталляцию, обновление или деинсталляцию программных элементов. Действия представляются командами Протокола управления устройствами SyncML, которые описываются в Протоколе представления SyncML, Пользование управлением устройствами. Используемые команды и структура сообщений идентичны тем, что содержатся в Протоколе синхронизации SyncML. (Таким образом, так называемое определение типа документа для Протокола управления представляет собой определение типа документа из Протокола синхронизации SyncML).
До настоящего времени развитие синхронизации мобильной передачи данных в наибольшей степени определялось ограничениями. Синхронизация хранилищ данных основана на наборе различных проприетарных протоколов, и функционирующих каждый с очень ограниченным числом устройств, систем и типов данных. Эти не взаимодействующие друг с другом технологии усложняют задачи пользователей, производителей, поставщиков услуг и разработчиков. Далее, расширение числа различных проприетарных протоколов синхронизации хранилищ данных является преградой для широкого использования мобильных устройств, ограничивает доступ к данным и доставку данных и ограничивает мобильность пользователей.
По мере роста популярности мобильных вычислительных и связных устройств пользователи хотят обращаться к обновляемым информации и приложениям, где бы они ни находились и какие бы устройства ни использовали, подталкивая к необходимости открытого стандарта, такого как стандарт SyncML.
SyncML использует синтаксис так называемого расширяемого языка разметки (XML), как установлено в документе Extensible Markup Language (XML) 1.0, продукт учреждения XML в консорциуме World Wide Web Consortium (W3C), имеющего вебсайт по адресу http://www.w3.org. За информацией о XML следует обращаться по адресу http://www.w3.org/XML.
Как используется в настоящем описании, термин группа данных или блок данных указывает блок данных, которые организованы в то, что в настоящем описании называется папка, что в свою очередь составляет то, что в настоящем описании называется структура директории, также называемая в настоящем описании структура данных. На фиг.4 структура директории показана включающей в себя различные папки, каждая из которых включает в себя один или более блоков данных.
Выражение структура директории или структура данных и выражение папка следует понимать широко. Во-первых, папку следует понимать как любое вместилище блоков данных. Таким образом, к примеру, то, что называется папка в разных операционных системах (таких как Windows, доступная от Microsoft Corporation), нужно понимать под термином папка, как он используется в настоящем описании, но это и запись в таблице реляционной базы данных, поскольку запись в такой таблице включает в себя поля, которые являются блоками данных. Каждое такое поле можно рассматривать как папку, поскольку поле содержит знаки, числа или иные элементы, которые можно рассматривать как блоки данных, а тем самым каждое поле является папкой.
Выражение структура директории или структура данных указывает размещение папок в хранилище данных, как, например, древовидная структура папок в директории, поддерживаемой операционной системой, и в этом случае блоки данных будут папками. Но следует также понимать, что выражение структура директории или структура данных охватывает структуры директории, поддерживаемые внутренне приложениями, т.е. не поддерживаемые операционной системой, но вместо этого поддерживаемые приложением, работающим под управлением операционной системы. Примером является структура директории, поддерживаемая большинством приложений электронной почты, которые обычно всегда включают в себя по меньшей мере две папки: папку принятой электронной почты (поступило) и папку переданной электронной почты (отправлено). Кроме того, следует понимать также, что выражение структура директории или структура данных охватывает внутренние структуры директорий, которые используются совместно различными приложениями (так что структура директории не является внутренней только для одного приложения, а для нескольких, обычно хорошо взаимосвязанных приложений, любое из которых может вносить в нее изменения). Далее, следует понимать, что выражение структура директории или структура данных охватывает как структуры системной директории, так и структуры внутренней директории. В случае внутренней директории, поддерживаемой приложением электронной почты, блок данных будет электронной почтой, видом внутреннего файла. В структуре директории любого типа папка может включать в себя, в общем случае, блоки данных, которые принадлежат различным приложениям, и приложение знает, принадлежит ли блок данных ему или другому приложению, либо на основании некоторого атрибута, поддерживаемого в связи с этим блоком данных, либо на основании приложения, хранящего закрытую для доступа таблицу всех блоков данных, которые принадлежат ему, где бы они ни были расположены. Также, поскольку, как уже пояснено, папка может указывать, к примеру, запись в таблице базы данных или даже поле в такой записи, следует также понимать, что выражение структура директории или структура данных охватывает структуру базы данных (когда папка является записью) или структуру записи (когда папка является полем). Важно понимать, что выражение папка используется, таким образом, расширительно, чтобы указывать любое вместилище блоков данных, и выражение структура директории или структура данных имеет соответствующее расширительное значение.
Пользователь приложения может вносить изменения как в блоки данных, которые принадлежат приложению (такие как добавление новых блоков данных или замена блока данных обновленной версией, потому что пользователь воспользовался приложением для изменения содержания блока данных, и т.д.), так и в то, как сохраняются группы данных (такие как добавление новой папки и перемещение некоторых блоков данных из уже существующей папки в новую папку), т.е. как в блоки данных, так и в папки (т.е. вся структура директории). Однако, согласно существующему SyncML, если пользователь меняет папки на устройстве, SyncML не может использоваться для синхронизации хранилища данных в этом устройстве с соответствующим хранилищем данных, поддерживаемым в другом устройстве; прототип SyncML позволяет лишь синхронизацию в отношении изменений блоков данных.
Сообщение SyncML представляет собой вложенную структуру, и одно или более сообщений SyncML могут связываться с тем, что называется пакет SyncML. Сообщение SyncML является отдельным документом XML, состоящим из одного или более типов элементов. Этот документ состоит из заголовка, определяемого типом элемента ЗаголСинхр (SyncHdr), и тела, определяемого типом элемента ТелоСинхр (SyncBody). Заголовок SyncML конкретизирует информацию маршрутизации и контроля версий о сообщении SyncML. Тело SyncML представляет собой вместилище для одной или более команд SyncML. Команды SyncML конкретизируются отдельными типами элементов. Команды SyncML действуют как вместилища для других типов элементов, которые описывают подробности команды SyncML, в том числе любые данные или мета-информацию.
SyncML определяет команды запроса и команды ответа. Команды запроса включают в себя, например, команды: добавить (команда, которая позволяет отправителю просить, чтобы один или более блоков данных были добавлены к данным, доступным для получателя); уведомить (позволяющая отправителю известить получателя о состоянии); копировать (позволяющая отправителю просить, чтобы копировались один или более блоков данных, доступных для получателя); удалить (позволяющая отправителю просить, чтобы были удалены или архивированы один или более блоков данных, доступных для получателя); получить (позволяющая отправителю просить один или более блоков данных от получателя) и искать (позволяющая отправителю просить, чтобы выполнялся введенный запрос относительно одного или более блоков данных, доступных для получателя). Единственными командами ответа в настоящее время являются: статус (указывающая статус завершения операции или тот факт, что произошла ошибка при обработке предыдущего запроса) и результат (используемая для возвращения результатов данных на команду SyncML либо Получить, либо Искать).
SyncML использует идентификаторы, чтобы идентифицировать блоки данных или папки. Идентификаторы включаются в то, что называется типами Исходных и Целевых элементов, и могут быть комбинациями, унифицированными идентификаторами ресурсов (УИР) (URIs), унифицированными названиями ресурсов (УНР) (URNs) и текстовыми названиями. (Чтобы указать международный идентификатор мобильного оборудования (МИМО) (IMEI), SyncML использует тип УНР МИМО. Это УНР МИМО определяет достоверный 15-разрядный МИМО. Вдобавок, SyncML использует тип УНР SyncML, чтобы идентифицировать в SyncML конкретные пространства названий и уникальные названия. Иные типы УНР также могут использоваться в типе элемента МестнУИР (LocUPI)).
Как уже пояснялось, протокол представления SyncML (т.е. сообщение SyncML) представляет собой разметку документа, состоящую из типов элементов XML. Эти типы элементов определяются в терминах своего назначения или использования, родительских элементов, любых ограничений на содержание или использование и контентной модели. Эти типы элементов включают в себя так называемые элементы общего пользования, элементы вместилища сообщений, элементы описания данных, элементы управления протоколом и элементы команд протокола.
Элементы общего пользования представляют собой типы элементов, используемые другими типами элементов SyncML, и включают в себя, например, «архивировать» для указания того, что данные, конкретизированные в команде «удалить», должны архивироваться получателем команды «удалить», а не просто удаляться. Тем самым команда «удалить» может использовать элемент общего пользования «архивировать», а потому называется родительским элементом для типа элемента общего пользования «архивировать» в этом контексте. Другим типом команды общего пользования является тип элемента Кмд (Cmd), который используется для конкретизации команды SyncML, на которую ссылается тип элемента Статус (а потому тип элемента Статус является родительским элементом в этом контексте). Другим является тип элемента ИДКмд (CmdID), который используется для конкретизации идентификатора уникальной для сообщения команды SyncML и может иметь разные родительские элементы, в том числе: Добавить, Уведомить, Элементарный, Копировать, Удалить, Исполнять, Получить, Отображать, Поместить, Заменить, Результаты, Искать, Последовательность, Статус и Синхронизировать.
В отношении изобретения особо отметим типы общих элементов МестнНазвание, МестнУИР, Исходный и Целевой. МестнНазвание используется для конкретизации названия дисплея для целевого или исходного адреса, а потому может иметь в качестве родительских элементов Целевой или Исходный. МестнУИР конкретизирует целевой или исходный конкретный адрес и также может иметь в качестве родительских элементов Целевой или Исходный. Тип общего элемента Исходный используется для конкретизации исходной информации маршрутизации или отображения; его родительские элементы включают в себя: Элемент, Отображение, ЭлемОтображения, Искать, Синхронизировать и ЗаголСинхр. Целевой используется для конкретизации целевой информации маршрутизации или отображения, и его родительские элементы включают в себя: Элемент, Отображение, ЭлемОтображения, Искать, Синхронизировать и ЗаголСинхр.
Типы элементов вместилища сообщений обеспечивают поддержку основного вместилища для сообщений SyncML. Тремя такими типами элементов являются: SyncML, для конкретизации вместилища для сообщения SyncML, не имеющий родителей, поскольку он является тем, что называется корневым или документным элементом; ЗаголСинхр, для конкретизации вместилища для информации пересмотра или информации маршрутизации, в качестве родительского элемента имеющий элемент SyncML; и ТелоСинхр, для конкретизации вместилища для тела или содержания в сообщении SyncML, также в качестве родительского элемента имеющий элемент SyncML.
Элементы описания данных используются в качестве элементов вместилища для данных, обмениваемых в сообщении SyncML; элементы описания данных включают в себя следующие типы элементов: Данные, для конкретизации дискретных данных SyncML, используемый (родительскими элементами) типами элементов Уведомить, Полномоч., Элемент, Статус и Искать; Элемент, для конкретизации вместилища для групп данных, используемый (родительскими элементами) типами элементов Добавить, Уведомить, Копировать, Исполнять, Получать, Поместить, Заменить, Результаты и Статус; и Мета, для конкретизации мета-информации о типе родительских элементов, используемый (родительскими элементами) типами элементов Добавить, Элементарный, Запросить, Копировать, Полномоч., Удалить, Получить, Элемент, Отображать, Поместить, Заменить, Результаты, Искать, Последовательность и Синхронизировать.
Элементы руководства протоколом включают в себя в настоящее время только тип элемента Статус, для конкретизации кода статуса требования на указанную команду SyncML, используемый (родительским элементом) ТелоСинхр.
Наконец, имеются элементы команд протокола. Они включают в себя уже упомянутые элементы команд, т.е., к примеру, Добавить, для конкретизации того, что данные подлежат добавлению к набору данных, используемый (родительскими элементами) Элементарный, Последовательность, Синхронизировать, ТелоСинхр, Удалить, Заменить и т.д.
Все об этих типах элементов установлено в стандарте, протоколе представления SyncML, доступном в Интернете по адресу:
http://www.syncml.org/docs/syncml_represent_v11_20020215.pdf.
Сообщение об изменениях в структуре директории не является проблематичным, если одно и то же приложение заботится о манипулировании данными и о манипулировании связью согласно протоколу синхронизации. Но в случае более общей задачи, в котором на каждом устройстве несколько приложений совместно используют хранилище данных, организованный как структура директории, сохраняя свои соответствующие блоки данных в одной или более папок в этой структуре директории, неясно, как лучше построить протокол синхронизации для этого. Согласно открытому стандарту - протоколу синхронизации SyncML, продукту Инициативы SyncML, - каждое из двух удаленных устройств, имеющих соответствующие хранилища данных, подлежащие синхронизации (в любом отношении), включает в себя агент синхронизации (sync) (один на устройство, а потому обслуживающий, возможно, много различных приложений) и один или более прикладных объектов, а нижеследующий протокол синхронизации (т.е. обеспечение связи согласно этому протоколу синхронизации, установленному в стандарте) несет ответственность не за эти приложения, а за агентов синхронизации. (Только агент синхронизации, а не приложения, понимает SyncML.) Но только приложения знают, заменен ли блок данных после самой свежей уже выполненной синхронизации. Имеется несколько опций, относящихся к расширению протокола синхронизации SyncML, которые требуют включить в каждое из приложений знание SyncML наподобие того, что кодируется в агенте синхронизации, и некоторые опции, которые требуют, чтобы агент синхронизации был способен интерпретировать блоки данных таким образом, как это делают различные приложения.
Поэтому необходимо, чтобы SyncML (или любой аналогичный язык синхронизации) ссылался на такие аспекты организации данных, как папки в структуре директории, так, чтобы минимизировать запросы агента синхронизации и приложения и тем самым избегать необходимости тиражировать информацию кода или папки.
Раскрытие изобретения
Соответственно, в первом аспекте изобретения предлагается способ для использования первым агентом синхронизации, работающим совместно с первым хранилищем данных, и вторым агентом синхронизации, работающим совместно со вторым хранилищем данных, посредством чего первое хранилище данных синхронизируется со вторым хранилищем данных, причем эти хранилища данных используются для хранения данных как блоков данных в папках первым и вторым соответствующими приложениями, отличными от первого и второго агентов синхронизации, при этом папки в сочетании определяют структуру данных, содержащий: этап, в котором первый и второй агенты синхронизации устанавливают транспортное соединение для обеспечения связи между первым и вторым агентами синхронизации; и этап, в котором второй агент синхронизации передает по транспортному соединению сообщение первому агенту синхронизации, причем это сообщение выражается с помощью языка разметки и имеет по меньшей мере один элемент идентификации данных (выражение элемент идентификации данных используется здесь, чтобы указать либо на то, что в SyncML называется Целевым элементом, либо на то, что в SyncML называется Исходным элементом, но следует также понимать, что оно охватывает подобные же элементы в любом языке разметки, похожем на SyncML, так что выражение элемент идентификации данных противопоставляется выражению элемент данных, которое относится к элементу в SyncML или подобном языке, который содержит блок данных); при этом информация об изменении в структуре данных первого или второго хранилищ данных передается в упомянутом сообщении; и дополнительно при этом упомянутая информация об изменении в структуре данных первого или второго хранилища данных помещается в по меньшей мере один элемент идентификации данных.
В соответствии с первым аспектом изобретения по меньшей мере один элемент идентификации данных может быть внешним для элемента данных, т.е. не содержащимся в этом элементе данных (т.е. особый тип элемента идентификации данных в языке разметки SyncML или подобный же элемент сходного языка разметки). Также в соответствии с первым аспектом изобретения информация об изменении в структуре данных первого или второго хранилища данных может включать в себя идентификацию папки. Также по меньшей мере один элемент идентификации данных может быть либо целевым элементом, либо исходным элементом. К тому же, элемент идентификации данных может содержаться в командном элементе протокола, и этот командный элемент протокола в комбинации с элементом идентификации данных может индицировать информацию об изменении в структуре данных первого или второго хранилища данных. И еще, элемент идентификации данных может содержать так называемый (в языке разметки SyncML) элемент МестнУИР (или подобный же элемент в сходном языке разметки), назначенный вторым агентом синхронизации, и информация об изменении структуры данных первого или второго хранилища данных может быть представлена в элементе МестнУИР.
Помимо этого, в соответствии с первым аспектом изобретения первое устройство может выполнять роль ведущего для первого агента синхронизации, а также для первого хранилища данных и первого приложения, а второе устройство может выполнять роль ведущего для второго агента синхронизации, а также второго хранилища данных и второго приложения. Далее, первое устройство может функционировать в качестве клиента в протоколе клиент/сервер, а второе устройство может функционировать в качестве сервера в протоколе клиент/сервер, и сообщение может поставляться клиентом серверу. Далее также первое устройство может функционировать в качестве сервера в протоколе клиент/сервер, а второе устройство может функционировать в качестве клиента в протоколе клиент/сервер, и сообщение может поставляться сервером клиенту, а шаг передачи сообщения может быть откликом на клиентское сообщение и может (также) включать в себя разрешение любых конфликтов, вызванных клиентским сообщением в отношении хранилища данных, для которого роль ведущего выполняет сервер.
Также в соответствии с первым аспектом изобретения первое приложение может быть откликом на любой элемент данных, включенный в сообщение, а первый агент синхронизации может быть откликом на элемент идентификации данных и может вносить изменения в структуру данных первого хранилища данных на основании информации, переданной элементом идентификации данных, перед тем, как первое приложение внесет какие-либо изменения в блоки данных хранилища данных на основании информации, переданной любыми элементами данных, включенными в это сообщение. Также второй агент синхронизации может представлять в элементе идентификации данных информацию об изменении в структуре данных первого или второго хранилища данных, а второе приложение может представлять в элементе данных информацию об изменении в блоках данных в первом или втором хранилище данных. Помимо этого, первый агент синхронизации в ответ на это сообщение может извлекать информацию об изменении в структуре данных из элемента идентификации данных и может представлять эту информацию как процессору синхронизации, так и прикладному объекту.
Во втором аспекте изобретения предлагается устройство, работающее согласно первому аспекту изобретения в отношении работы первого устройства, а также в отношении работы второго устройства. В соответствии со вторым аспектом изобретения это устройство может быть терминалом беспроводной связи. Также это устройство может быть, вместо того, терминалом проводной связи. Еще это устройство может функционировать как сервер в модели клиент-сервер и может включать в себя процессор синхронизации для разрешения конфликтов, вызванных сообщением.
В третьем аспекте изобретения предлагается система, содержащая первое устройство как во втором аспекте изобретения, при этом первое устройство функционирует как сервер в модели клиент-сервер и включает в себя процессор синхронизации для разрешения конфликтов, вызванных сообщением; а также содержащая второе устройство во втором аспекте изобретения, при этом второе устройство функционирует как клиент в модели клиент-сервер.
В четвертом аспекте изобретения предлагается компьютерная программа для индикации операционных команд для устройства (11 12) связи, чтобы это устройство (11 12) связи работало согласно первому аспекту изобретения в отношении первого устройства, а также в отношении второго устройства.
В пятом аспекте изобретения предлагается компьютерная программа для индикации операционных команд для агента синхронизации, чтобы этот агент синхронизации работал согласно первому аспекту изобретения в отношении первого агента синхронизации, а также в отношении второго агента синхронизации.
Таким образом, изобретение расширяет SyncML, чтобы обеспечить путь для синхронизации хранилищ данных к изменениям в папках, причем тех хранилищ данных, которые могут использоваться приложениями либо в связи с пользовательскими данными, либо в связи с руководством устройствами; теперь как изменения в папках, так и изменения в блоках данных в одном хранилище данных могут отражаться в другом хранилище данных.
Изобретение имеет преимущество в том, что не требует, чтобы каждое приложение в устройстве кодировалось для понимания SyncML, а только для взаимодействия с агентом синхронизации для устройства и - в сервере - для процессора синхронизации. Вдобавок изобретение избегает необходимости включать в агент синхронизации в каждом устройстве какое-либо знание о том, как интерпретировать блоки данных для различных приложений, совместно использующих хранилище данных, синхронизируемое с соответствующим хранилищем данных в другом устройстве.
Краткое описание чертежей
Вышеуказанные и другие цели, признаки и преимущества изобретения станут понятны из рассмотрения последующего подробного описания, представленного вместе с сопровождающими чертежами, на которых:
Фиг. 1 является блок-схемой/схемой сигналов клиента (такого как мобильный телефон) и сервера (такого как сетевой сервер или ПК), обменивающихся сообщениями SyncML для синхронизации их соответствующих хранилищ данных согласно изобретению;
Фиг. 2 представляет собой схему сообщения SyncML согласно изобретению;
Фиг.3 является блок-схемой алгоритма, иллюстрирующей одно размещение для взаимодействия между компонентами клиента и сервера во время синхронизации с помощью сообщений, построенных согласно изобретению; и
Фиг.4 представляет собой схему структуры директории (согласно прототипу).
Наилучший режим осуществления изобретения
На фиг.1 клиент 11 показан синхронизирующим клиентское хранилище 11с данных с серверным хранилищем 12с данных в сервере 12. (Эти хранилища данных могут использоваться либо в руководстве устройствами, либо для хранения пользовательских данных, таких, к примеру, как электронная почта). Хранилище данных в общем случае может включать в себя одну (или даже больше) структуру системной директории и возможно также одну или более структур внутренней директории (т.е. структура внутренней директории является структурой, поддерживаемой одним или более приложениями в противоположность операционной системе) с любой структурой директории, способной быть представленной, как проиллюстрировано на фиг.4, чтобы структура директории представляла собой древовидную структуру папок, а каждая папка способна включать в себя один или более блоков данных (таких как файлы, т.е. блоки данных, поддерживаемые в структуре системной директории, или блоки либо данные, поддерживаемые приложениями во внутренней директории, такими как электронная почта, поддерживаемая приложением электронной почты) и одну или более других папок древовидной структуры. Синхронизация происходит через обмен сообщениями SyncML, хотя могут также использоваться сообщения согласно любому, подобным же образом структурированному или аналогичному языку. Некоторые из обмениваемых сообщений SyncML включают в себя команды для синхронизации хранилищ 11с 12с данных в отношении блоков данных, а некоторые - для синхронизации хранилищ данных в отношении организации данных, т.е. чтобы оба хранилища данных имели эквивалентную структуру в терминах папок, по меньшей мере постольку, поскольку приложения касаются того, в чью пользу выполняется синхронизация. Клиент 11 представляет собой любое устройство, которое играет роль клиента в модели клиент-сервер, и согласно протоколу SyncML клиент (обычно носимый компьютер, или портативный телефон, или иной беспроводный терминал) посылает все изменения в своем хранилище 11с данных на сервер 12с - устройству (обычно, к примеру, настольный компьютер), играющему роль сервера в модели клиент-сервер. (Обычно предполагается, что из двух устройств, синхронизирующих свои соответствующие хранилища данных, устройство с наибольшей вычислительной способностью будет играть роль сервера).
Клиент 11 и сервер 12 включают в себя один или более соответствующих прикладных объектов 11а 12а, и они также включают в себя (родительские, т.е. не конкретизированные для конкретного приложения) соответствующие агенты 11b 12b синхронизации. Прикладной объект 12а сервера отличается от прикладного объекта 11а клиента в том, что он не только взаимодействует с серверным агентом синхронизации, но также взаимодействует с серверным процессором 12f синхронизации, который не имеет аналога в клиенте 11. Аналогично, серверный агент 12с синхронизации отличается от клиентского агента 11с синхронизации в том, что он также взаимодействует с серверным процессором 12f синхронизации. Прикладной объект 11а-12а клиента-сервера представляет собой, к примеру, приложение календаря, используемое для отслеживания встреч для торговца. Если встреча назначена на клиентском устройстве 11, то информация о встрече сохраняется в клиентском хранилище 11с данных в качестве нового файла. Позже, либо по запросу клиента 11, либо по подсказке сервера 12, хранилище 12с данных синхронизируется с клиентским хранилищем 11с данных в отношении новых данных (т.е. нового файла). Кроме этого, если изменение сделано в структуре директории в клиентском хранилище 11с данных, то опять клиентское хранилище 11с данных и серверное хранилище 12с данных должны синхронизироваться в этом случае в отношении структуры директории, т.е. по отношению к тому, что для хранения блоков данных для приложения используются папки. Также любое изменение, сделанное в серверном хранилище 12с данных, в том числе изменения либо в папках, либо в блоках данных для приложений 11а 12а, потребуют синхронизации клиентского хранилища 11с данных и серверного хранилища 12с данных путем обмена сообщениями SyncML.
Также на фиг. 1 сообщения SyncML могут передаваться согласно разным транспортным соединениям 14, в том числе, например, гипертекстовый транспортный протокол (НТТР), беспроводной сеансовый протокол (WSP) и протокол обмена объектами (ОВЕХ). (Транспортные соединения могут обеспечиваться с помощью любого вида соединения физического уровня, в том числе либо беспроводное соединение, либо проводное соединение). Как показано, когда сервер 12 передает сообщение SyncML клиенту 11 (и наоборот), серверный агент 12b использует интерфейс 12d синхронизации, чтобы предоставить сообщение на серверный адаптер 12е синхронизации, который, в свою очередь, предоставляет это сообщение SyncML клиенту 11 по транспортному соединению 14. На принимающем конце клиентский адаптер 11е синхронизации принимает сообщение SyncML и пропускает его на клиентский интерфейс 11d синхронизации, который, в свою очередь, предоставляет его клиентскому агенту 11b синхронизации.
Теперь, чтобы обеспечить синхронизацию хранилищ 11с 12с данных по отношению к изменениям в папках, равно как и в блоках данных (чтобы одни и те же блоки данных находились в одних и тех же или эквивалентных папках каждого устройства и содержимое каждого соответствующего блока данных было тем же самым), изобретение имеет SyncML, использующий те же самые команды для изменения папок, которые используются для изменения блоков данных; тем самым, изменения в папки делаются путем отправки сообщений, передающих операционные элементы (командные элементы протокола), такие как Синхронизировать, Добавить, Заменить и Удалить, в которых на затронутые папки делаются ссылки внутри того, что называется Элементы идентификации данных, означающие либо Целевые, либо Исходные элементы, внешние к Элементам данных. Чтобы внести изменение в блок данных, SyncML согласно прототипу вызывает сообщение, ссылаясь на блок данных внутри Элемента данных, вложенного в операционный элемент. Как раз использование ссылки на затронутые папки, внешней к Элементу данных (т.е. элемент описания данных), и дает изобретению преимущество над остальными возможными компоновками для ссылки на затронутые папки (а именно, отсутствие необходимости дублировать код, позволяющий SyncML делать синтаксический разбор каждого приложения, и отсутствие необходимости включать в каждый агент синхронизации код для интерпретации блоков данных каждого отличающегося приложения).
На фиг. 2, таким образом, согласно изобретению, папки (а тем самым и организация данных в терминах директорий), затронутые в ходе синхронизации хранилищ 11с 12с данных, идентифицируются или индицируются в элементах 26а 27а МестнУИР Исходного элемента 26 и Целевого элемента 27 в командном элементе 25 протокола (таком как Заменить), внешним для элемента 28 29 данных, т.е. не содержащимся в этом элементе данных (т.е. особый тип элемента описания данных). Как Целевой, так и Исходный элементы называются здесь Элементами идентификации данных, чтобы противопоставить их элементам данных 28 29, которые содержатся в блоках данных. Элементы идентификации данных согласно изобретению обычно внедрены во вместилище элементов не-данных (такое как элемент группы), которое, в свою очередь, внедрено в командный элемент 24 протокола. Командный элемент 24 протокола передается как часть элемента 23 вместилища ТелоСинхр вместе с элементом 22 вместилища ЗаголСинхр, которые оба включены в элемент вместилища SyncML, т.е. сообщение 21 SyncML.
Когда изменения сделаны как в блоки данных, так и в папки, эти папки должны синхронизироваться первыми, и сообщения формулируются так, чтобы сначала делались изменения папок, а затем изменения блоков данных. Каждое изменение (либо в блоки данных, либо в папки) совершается через операционный элемент. Изменения в папки следует расположить так, чтобы они поступили перед какими-либо изменениями в блоках данных.
Таким образом, согласно изобретению, при посылке изменения папок в сообщении, например, при добавлении новой папки клиенту, элемент данных (т.е. конкретный тип элемента описания данных) операционного элемента «добавить» оставляется пустым, либо такой элемент («добавить») не указывается в сообщении, и информация папки (идентификатор папки и полный тракт) передается внутри элемента МестнУИР элемента идентификации данных (Исходного элемента или Целевого элемента), внешнего для любого элемента данных.
Нижеследующий фрагмент сообщения SyncML показывает, как в команде Заменить нужно адресовать папку, имеющую идентификатор 7 и расположенную внутри папки, имеющей идентификатор 1.
При адресации блока данных в папке (в противоположность самой папке) идентификатор папки и тракт папки по отношению к корню структуры директории (в случае древовидной структуры) переносится внутри МестнУИР Целевого и Исходного типов общего элемента в операционном элементе, т.е. командном элементе протокола (таком как Заменить или Удалить). Приведенный ниже пример показывает, как адресовать группу, имеющую локально уникальный идентификатор (ЛУИ) (LUID) 123 в папке, имеющей идентификатор 7, когда папка 7 располагается внутри папки, имеющей идентификатор 1.
Ниже дан пример сообщения SyncML согласно изобретению, включающего операционные элементы (команды), используемые для создания информации папки на принимающем конце (который может быть либо клиентом, либо сервером). В этом примере используется открытый текст XML; в беспроводной среде открытый текст обычно не используется, и вместо него используется беспроводный двоичный XML (WBXML).
Вышеприведенный фрагмент сообщения переименовывает папку, имеющую МестнУИР./100/, чтобы она имела название «Моя папка».
СИНХРОНИЗАЦИЯ
Согласно изобретению (двусторонняя) синхронизация может проводиться, как описано, например, в описании SyncML Synchronization Protocol (Протокол синхронизации SyncML), версия 1.1, дополненном следующим образом.
Если имеются модификации в структуре клиентской папки после предыдущей синхронизации, то нужно соблюдать следующие требования к операционным элементам (например, Заменить, Добавить и Удалить) внутри элемента SyncML.
Отправка информации папки должна осуществляться перед отправкой каких-либо объектов сообщения, т.е. команды Заменить должны конкретизироваться в упаковке модификаций перед конкретизацией команд, определяющих какие-либо модификации для объектов сообщения.
Элемент данных не должен конкретизироваться для элемента Группы.
Если операция не является удалением, следует использовать Маркировочный элемент внутри Мета элемента в элементе Группы, чтобы нести информацию о папке (например, тип папки).
Если операция не является удалением, элемент МестнНазвание внутри Исходного в элементе Группы должен конкретизировать отображаемое название папки.
Элемент МестнУИР внутри Исходного или Целевого элемента должен конкретизировать идентификатор папки и весь тракт этой папки, т.е. идентификаторы всех возможных подпапок также должны быть конкретизированы в элементе МестнУИР. Идентификаторы папок должны отграничиваться знаком косой черты (слэш) («/»).
Если имеются модификации в объектах сообщения в клиенте после предыдущей синхронизации, то нужно соблюдать следующие требования к операционным элементам внутри элемента SyncML.
Если операция не является удалением, элемент МестнНазвание внутри Исходного в элементе Группы должен конкретизировать отображаемое название сообщения.
Если операция не является удалением, следует использовать Маркировочный элемент внутри Мета элемента в элементе Группы, чтобы нести информацию о состоянии сообщения (например, считывать/не считывать информацию).
Элемент МестнУИР внутри Исходного или Целевого элемента должен конкретизировать идентификатор группы, в том числе весь тракт, т.е. идентификаторы всех возможных папок и подпапок также должны быть конкретизированы в элементе МестнУИР. Идентификатор группы (т.е. ЛУИ) всегда должен быть представлен как последнее значение элемента МестнУИР. Идентификаторы папок должны отграничиваться знаком косой черты (слэш) («/»).
Ниже следует пример клиента, посылающего модификации к серверу.
Если имеются модификации в структуре серверной папки после предыдущей синхронизации, то нужно соблюдать следующие требования к операционным элементам внутри элемента SyncML.
Отправка информации папки должна осуществляться перед отправкой каких-либо объектов сообщения, т.е. команды Заменить должны конкретизироваться в упаковке модификаций перед конкретизацией каких-либо команд, определяющих модификации для объектов сообщения.
Элемент данных не должен конкретизироваться для элемента Группы.
Если операция не является удалением, следует использовать Маркировочный элемент внутри Мета элемента в элементе Группы, чтобы нести информацию о папке (например, тип папки).
Если операция не является удалением, элемент МестнНазвание внутри Исходного в элементе Группы должен конкретизировать отображаемое название папки.
Если операция является добавлением, то МестнНазвание Исходного элемента должно конкретизировать отображаемое название папки.
Элемент МестнУИР внутри Целевого в элементе Группы должен конкретизировать идентификатор папки клиентской стороны и весь тракт этой папки, т.е. идентификаторы всех возможных подпапок также должны быть конкретизированы в элементе МестнУИР. Идентификаторы папок должны отграничиваться знаком косой черты (слэш) («/»).
Если операция является добавлением, то МестнУИР Исходного элемента должен конкретизировать идентификатор папки серверной стороны и тракт. МестнУИР Целевого элемента должен конкретизировать тракт папки у клиента. Идентификатор папки не должен конкретизироваться в Целевом МестнУИР.
Если имеются какие-либо модификации в объектах сообщения в сервере после предыдущей синхронизации, то нужно соблюдать следующие требования к операционным элементам внутри элемента SyncML.
В случае, если операция является добавлением, то элемент МестнУИР внутри Исходного в элементе Группы должен конкретизировать отображаемое название сообщения. Элемент МестнУИР внутри Исходного в элементе Группы должен конкретизировать идентификатор группы, включая и весь тракт, т.е. идентификаторы всех возможных папок и подпапок также должны быть конкретизированы в элементе МестнУИР. Идентификатор группы (т.е. ЛУИ) всегда должен быть представлен как последнее значение в элементе МестнУИР. Идентификаторы папок должны отграничиваться знаком косой черты (слэш) («/»). МестнУИР Целевого элемента должен конкретизировать тракт папки у клиента, но идентификатор группы не должен быть конкретизирован внутри Целевого МестнУИР.
Если операция является модификацией, то элемент МестнНазвание внутри Целевого в элементе Группы должен конкретизировать отображаемое название сообщения. Элемент МестнУИР внутри Целевого в элементе Группы должен конкретизировать идентификатор группы, включая и весь тракт, т.е. идентификаторы всех возможных папок и подпапок также должны быть конкретизированы в элементе МестнУИР. Идентификатор группы (т.е. ЛУИ) всегда должен быть представлен как последнее значение в элементе МестнУИР. Идентификаторы папок должны отграничиваться знаком косой черты (слэш) («/»).
Если операция является удалением, то элемент МестнУИР внутри Исходного в элементе Группы должен конкретизировать идентификатор группы на клиентской стороне, включая и весь тракт клиента, т.е. идентификаторы всех возможных папок и подпапок также должны быть конкретизированы в элементе МестнУИР. Идентификаторы папок должны отграничиваться знаком косой черты (слэш) («/»).
Если операция не является удалением, следует использовать Маркировочный элемент внутри Мета элемента в элементе Группы, чтобы нести информацию о состоянии сообщения (например, считывать/не считывать информацию).
Ниже следует пример сервера, посылающего модификации к клиенту.
В вышеприведенной команде, имеющей идентификатор команды 5, сервер использует глобально уникальный идентификатор (ГУИ) (GUID)./4044/223/ для папки с названием «Мои собственные сообщения». Как установлено в Протоколе синхронизации SyncML (стандарте), версия 1.1, в разделе 5.3, агент синхронизации клиента назначит ЛУИ для папки, а затем вернет серверу отображение, показывающее, как ЛУИ (клиента) относится к ГУИ (сервера). (См. пример, данный в разделе 5.3.1.)
НЕКОТОРЫЕ МАНИПУЛЯЦИИ С ПАПКАМИ
Как уже пояснялось, папка представляет собой просто иной объект в сеансе синхронизации. Возьмем в качестве примера случай, когда пользователь создал новую папку в клиентском устройстве (например, переносном компьютере или мобильном телефоне), так что клиент должен послать команду Заменить, содержащую информацию о новой папке в следующем сеансе синхронизации. Это будет сделано в следующем фрагменте сообщения SyncML согласно изобретению.
Когда получатель принимает операцию (т.е. Заменить или Добавить), которая не содержит элемент Данных, он должен предположить, что эта операция является операцией манипулирования папкой.
Создание папок
Создание папок осуществляется конкретизацией команды Заменить или Добавить. Нижеследующее является примером того, как создать новую папку, имеющую идентификатор 7, в папке Поступило клиента (с папкой Поступило, имеющей идентификатор 1011, на клиентской стороне).
Клиент должен вернуть на сервер информацию отображения, указывающую для сервера, как соотносить идентификатор серверной папки с идентификатором клиентской папки, а сервер должен идентифицировать папки, использующие идентификаторы клиентских папок. Тем самым, Целевой элемент внутри Группы операционного элемента, посланного сервером, всегда должен содержать тракт папки на клиентской стороне.
В случае, когда новая папка создана на сервере и к этой папке добавлено сообщение, сервер должен послать свои операции с папкой (т.е. команду Добавить, содержащую информацию папки) в первом сообщении упаковки модификаций сервера, и в этом сообщении не должен быть конкретизирован конечный флаг. Клиент должен быть способен вернуть отображающую идентификатор папки информацию на сервер в последующем сообщении, чтобы сервер мог конкретизировать идентификатор папки клиента внутри Целевого в операции Добавить, содержащей действительное сообщение.
Переименование папок
Поскольку отображаемое имя папки переносится внутри элемента МестнНазвание, нет специальной операции для переименования папок. Поэтому, когда отображаемое название папки изменено, должна быть послана команда Заменить, а элемент МестнНазвание должен содержать новое отображаемое название папки.
Перемещение папок
Поскольку весь путь к папке переносится внутри элемента МестнУИР, нет специальной операции для перемещения папок. Поэтому, когда папка перемещена в другую папку, должна быть послана команда Заменить, и новый путь к папке должен быть включен в элемент МестнУИР. Если новая папка создана в сервере, а существующая папка перемещена в новую папку, сервер должен сначала добавить новую папку клиенту, а после получения отображающей информации для идентификатора папки сервер должен переместить существующую папку, т.е. он должен затем послать команду Заменить, содержащую новый путь к папке на клиентской стороне.
ВЗАИМОДЕЙСТВИЕ МЕЖДУ ЭЛЕМЕНТАМИ ПРИЛОЖЕНИЙ, ЭЛЕМЕНТАМИ СИНХРОНИЗАЦИИ И ПРОЦЕССОРОМ СИНХРОНИЗАЦИИ
Одна возможная схема, посредством которой клиентское и серверное приложения 11а 12а и элементы 11b 12b и серверный процессор 12 синхронизации взаимодействуют, чтобы манипулировать изменениями в организации данных (структуре директории), указана на фиг. 1, а также на фиг. 3, но такие схемы не являются предметом изобретения. Важно понимать, что изобретение обеспечивает, чтобы элементы 11b 12b синхронизации клиента и сервера не нуждались в синтаксическом анализе сообщения SyncML до уровня элемента данных, чтобы извлечь информацию для действий с изменениями в организации данных, и что клиентское и серверное приложения 11а 12а не нуждаются в понимании чего бы то ни было о структуре директории, чтобы обращаться к своим соответствующим хранилищам 11с 12с данных, которые должны быть способны к добавлению, замене или удалению данных.
Тем не менее, возвращаясь к фиг. 1 и 3, в одном размещении для синхронизации двух хранилищ 11с 12с данных на первом шаге 31а агент 12b синхронизации сервера устанавливает транспортное соединение с агентом 11b синхронизации клиента (обратное действие, предпринимаемое агентом синхронизации клиента, предполагается, но не показано на фиг. 3). На следующем шаге 31b клиентское приложение 11а (предположим, только одно приложение, хотя может быть и больше одного, причем все совместно используют одно и то же хранилище данных) находит изменения в хранилище 11с данных клиента с момента последней синхронизации, а агент синхронизации клиента делает то же самое для папок в хранилище 11с данных. Вслед за этим, на шаге 31с агент синхронизации помещает изменения папок в команды (командные элементы протокола) с помощью элементов идентификации данных, чтобы сослаться на затронутые папки, при этом, как поясняется выше, элементы идентификации данных являются внешними для любых элементов данных. Далее, на шаге 31d приложение помещает изменения блока данных в команды с помощью элемента описания данных (элемент данных, группы или мета). Затем, на шаге 31е агент синхронизации посылает на сервер 12 сообщение, несущее команды с элементами описания данных и элементами идентификации данных (внешними для любых элементов данных).
Затем, на сервере 12, на следующем шаге 31f агент 12b синхронизации выделяет изменения папок из любых команд с элементами идентификации данных клиента, внешними для любых элементов данных, и на основании того, какие команды содержат элементы идентификации данных клиента, указывает процессору 12f синхронизации, какие изменения были сделаны в структуре данных клиентского хранилища данных с момента последней синхронизации. На следующем шаге 31g процессор синхронизации разрешает конфликты папок и предоставляет чистые изменения папок агенту 12b синхронизации сервера; агент 12b синхронизации сервера делает соответствующие изменения папок в хранилище 12с данных сервера; и затем агент синхронизации сервера предоставляет (серверному) процессору синхронизации остальное сообщение (передающее любые изменения блока данных клиентом). На следующем шаге 31h процессор 12f синхронизации разрешает любые конфликты блоков данных с хранилищем данных сервера, которые появились бы, если изменения, сделанные в хранилище 11с данных клиента, были сделаны также в хранилище 12с данных сервера, и предоставляет чистые изменения блока данных серверному приложению 12а. На следующем шаге 31i серверное приложение делает указанные изменения блока данных в хранилище 12с данных сервера и помещает эти чистые изменения блока данных в хранилище 11с данных клиента в соответствующих командах. Затем, на следующем шаге 31j агент синхронизации сервера собирает чистые изменения, которые должны быть сделаны в папках в хранилище 11с данных клиента, и добавляет соответствующие команды, включающие в себя элементы идентификации данных, указывающие затронутые папки, причем эти элементы идентификации данных помещаются снаружи от любых элементов данных внутри сообщения. (Это сообщение затем отправляется клиенту).
Когда клиент 11 принимает серверное сообщение, на следующем шаге 31k агент 11b синхронизации клиента выделяет все изменения папок путем синтаксического разбора команд вплоть до - но все же не включая - элементы данных, включенные в команды, изменяет соответственно хранилище 11с данных клиента и предоставляет приложению 11а все команды для изменений блока данных. Наконец, на шаге 31m приложение 11а изменяет хранилище 11с данных клиента согласно командам, предоставленным агентом 11b синхронизации клиента.
ОБЪЕМ ИЗОБРЕТЕНИЯ
Следует понимать, что вышеописанные размещения являются лишь иллюстрациями применения принципов настоящего изобретения. Специалисты могут придумать множество модификаций и альтернативных размещений без отхода от объема настоящего изобретения, и приложенная формула изобретения направлена на то, чтобы покрыть такие модификации и размещения.
Claims (24)
1. Способ для синхронизации хранилища данных, предназначенный для, по меньшей мере, частичной синхронизации первого хранилища данных, размещенного в первом устройстве для манипуляции с данными, и второго хранилища данных, размещенного во втором устройстве для манипуляции с данными, причем каждое хранилище данных используется для хранения данных в виде блоков данных в папках, при этом папки в сочетании определяют структуру данных, указанный способ содержит этапы, на которых:
первое устройство для манипуляции с данными отправляет сообщение второму устройству для манипуляции с данными;
при этом информацию о, по меньшей мере, некоторых данных блока данных, размещенных в структуре данных в первом хранилище данных, передают в указанном сообщении и информацию о размещении также передают в указанном сообщении в элементе или поле указанного сообщения; и
при этом указанную информацию о, по меньшей мере, некоторых данных блока данных в первом хранилище данных помещают в элементе или поле, отличном от элемента или поля, в котором помещена информация о размещении.
2. Способ по п.1, в котором элемент или поле, в котором помещена информация о, по меньшей мере, некоторых данных блока данных в первом хранилище данных, или элемент или поле, в котором помещена информация о размещении, представляют собой поле указанного сообщения.
3. Способ по п.1, в котором информация о, по меньшей мере, некоторых данных блока данных в первом хранилище данных включена в элемент данных указанного сообщения.
4. Способ по п.3, в котором элемент данных представляет собой элемент данных командного элемента протокола.
5. Способ по п.1, в котором информация о размещении включена в не относящийся к данным элемент сообщения.
6. Способ по п.5, в котором не относящийся к данным элемент представляет собой не относящийся к данным элемент командного элемента протокола.
7. Способ по п.1, в котором информация о размещении включает в себя информацию о папке.
8. Способ по п.1, в котором элемент идентификации данных содержится в командном элементе протокола в сообщении, при этом командный элемент протокола в сочетании с элементом идентификации данных представляет информацию о размещении.
9. Способ по п.1, в котором элемент идентификации данных содержится в сообщении, при этом информация о размещении предоставляется в элементе идентификации данных.
10. Способ по п.1, в котором первое устройство для манипуляции с данными функционирует в качестве клиента протокола клиент-сервер и второе устройство для манипуляции с данными функционирует в качестве сервера протокола клиент-сервер.
11. Способ по п.1, в котором первое устройство для манипуляции с данными функционирует в качестве сервера протокола клиент-сервер и второе устройство для манипуляции с данными функционирует в качестве клиента протокола клиент-сервер, при этом этап отправки первым устройством для манипуляции с данными сообщения является ответным на клиентское сообщение из второго устройства для манипуляции с данными и включает в себя разрешение любых конфликтов, возникающих от клиентского сообщения в отношении первого хранилища данных.
12. Способ по п.1, в котором данные в хранилищах данных используются для управления устройством приложениями, выполняемыми на указанных устройствах.
13. Способ по п.1, в котором данные в хранилищах данных используются в качестве пользовательских данных приложениями, выполняемыми на указанных устройствах.
14. Машиночитаемый носитель данных, несущий код компьютерной программы, включающий в себя инструкции для выполнения этапов способа по п.1.
15. Первое устройство для манипуляции с данными, выполненное с возможностью, по меньшей мере, частичной синхронизации первого хранилища данных, размещенного в первом устройстве для манипуляции с данными, со вторым хранилищем данных, размещенным во втором устройстве для манипуляции с данными, причем каждое хранилище данных используется для хранения данных в виде блоков данных в папках, при этом папки в сочетании определяют структуру данных, указанное первое устройство для манипуляции с данными содержит:
средство для отправки сообщения второму устройству для манипуляции с данными;
при этом информацию о, по меньшей мере, некоторых данных блока данных, размещенных в структуре данных в первом хранилище данных, передают в указанном сообщении, и информацию о размещении также передают в указанном сообщении в элементе или поле указанного сообщения; и
при этом указанную информацию о, по меньшей мере, некоторых данных блока данных в первом хранилище данных помещают в элементе или поле, отличном от элемента или поля, в котором помещена информация о размещении.
16. Устройство по п.15, в котором устройство представляет собой либо терминал беспроводной связи, либо терминал проводной связи.
17. Устройство по п.15, в котором первое устройство функционирует в качестве клиента модели клиент-сервер.
18. Устройство по п.15, в котором устройство функционирует в качестве сервера в модели клиент-сервер и дополнительно включает в себя средство для приема запроса синхронизации от второго устройства и последующей отправки сообщения в ответ на запрос синхронизации.
19. Устройство по п.15, дополнительно включающее в себя средство для приема сообщения, при этом устройство функционирует в качестве сервера в модели клиент-сервер и включает в себя средство для разрешения конфликтов, вызванных сообщением.
20. Устройство по п.15, в котором данные в хранилищах данных используются для управления устройством приложениями, выполняемыми на указанных устройствах.
21. Устройство по п.15, в котором данные в хранилищах данных используются в качестве пользовательских данных приложениями, выполняемыми на указанных устройствах.
22. Система для манипуляции с данными, содержащая первое устройство для манипуляции с данными, в котором размещено первое хранилище данных, и второе устройство для манипуляции с данными, в котором размещено второе хранилище данных, причем каждое хранилище данных используется для хранения данных в виде блоков данных в папках, при этом папки в сочетании определяют структуру данных, указанная система для манипуляции с данными дополнительно содержит:
средство для отправки сообщения второму устройству для манипуляции с данными;
при этом информацию о, по меньшей мере, некоторых данных блока данных, размещенных в структуре данных в первом хранилище данных, передают в указанном сообщении и информацию о размещении также передают в указанном сообщении в элементе или поле указанного сообщения; и
при этом указанную информацию о, по меньшей мере, некоторых данных блока данных в первом хранилище данных помещают в элементе или поле, отличном от элемента или поля, в котором помещена информация о размещении.
23. Система по п.22, в которой первое устройство для манипуляции с данными функционирует в качестве сервера модели клиент-сервер и второе устройство для манипуляции с данными функционирует в качестве клиента модели клиент-сервер.
24. Система по п.23, в которой средство для отправки сообщения второму устройству отвечает второму устройству на запрос синхронизации, посланный вторым устройством.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/115,268 | 2002-04-02 | ||
US10/115,268 US6721871B2 (en) | 2002-04-02 | 2002-04-02 | Method and apparatus for synchronizing data stores with respect to changes in folders |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2004131856A RU2004131856A (ru) | 2005-05-10 |
RU2337398C2 true RU2337398C2 (ru) | 2008-10-27 |
Family
ID=28673745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2004131856/09A RU2337398C2 (ru) | 2002-04-02 | 2003-03-26 | Способ и устройство для синхронизации того, как данные сохраняются в различных хранилищах данных |
Country Status (8)
Country | Link |
---|---|
US (2) | US6721871B2 (ru) |
EP (1) | EP1490779A4 (ru) |
JP (1) | JP4405812B2 (ru) |
KR (1) | KR100994139B1 (ru) |
CN (1) | CN1656468B (ru) |
AU (1) | AU2003212573A1 (ru) |
RU (1) | RU2337398C2 (ru) |
WO (1) | WO2003083684A1 (ru) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8074231B2 (en) | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
RU2477884C1 (ru) * | 2011-10-13 | 2013-03-20 | Открытое акционерное общество "Концерн "Созвездие" | Способ повышения скорости поиска данных с использованием адаптивных носителей данных |
US8789063B2 (en) | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
US8849968B2 (en) | 2005-06-20 | 2014-09-30 | Microsoft Corporation | Secure and stable hosting of third-party extensions to web services |
RU2617593C2 (ru) * | 2012-10-19 | 2017-04-25 | ЗетТиИ Майкроэлектроникс Текнолоджи Ко., Лтд. | Способ и устройство обработки контента домашней сети |
Families Citing this family (180)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
KR100317303B1 (ko) * | 2000-01-10 | 2001-12-22 | 구자홍 | 방송 프로그램 녹화 및 재생시 a/v와 데이터간 동기화장치 |
EP1225516A1 (en) * | 2001-01-22 | 2002-07-24 | Sun Microsystems, Inc. | Storing data of an XML-document in a relational database |
US7596565B2 (en) * | 2001-08-07 | 2009-09-29 | Good Technology | System and method for maintaining wireless file folders at a wireless device |
US7155483B1 (en) | 2001-08-07 | 2006-12-26 | Good Technology, Inc. | Apparatus and method for conserving bandwidth by batch processing data transactions |
US7243163B1 (en) * | 2001-08-07 | 2007-07-10 | Good Technology, Inc. | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US7962622B2 (en) | 2001-08-07 | 2011-06-14 | Motorola Mobility, Inc. | System and method for providing provisioning and upgrade services for a wireless device |
US7743119B2 (en) | 2001-08-07 | 2010-06-22 | Motorola, Inc. | System and method for mapping identification codes |
US8290505B2 (en) | 2006-08-29 | 2012-10-16 | Telecommunications Systems, Inc. | Consequential location derived information |
US9154906B2 (en) | 2002-03-28 | 2015-10-06 | Telecommunication Systems, Inc. | Area watcher for wireless network |
US8027697B2 (en) | 2007-09-28 | 2011-09-27 | Telecommunication Systems, Inc. | Public safety access point (PSAP) selection for E911 wireless callers in a GSM type system |
US8918073B2 (en) | 2002-03-28 | 2014-12-23 | Telecommunication Systems, Inc. | Wireless telecommunications location based services scheme selection |
US8126889B2 (en) | 2002-03-28 | 2012-02-28 | Telecommunication Systems, Inc. | Location fidelity adjustment based on mobile subscriber privacy profile |
US7426380B2 (en) | 2002-03-28 | 2008-09-16 | Telecommunication Systems, Inc. | Location derived presence information |
US7447799B2 (en) * | 2002-04-24 | 2008-11-04 | Good Technology, Inc. | System and method for automatically updating a wireless device |
US7606881B2 (en) * | 2002-04-25 | 2009-10-20 | Oracle International Corporation | System and method for synchronization of version annotated objects |
US7076567B1 (en) * | 2002-04-25 | 2006-07-11 | Oracle International Corporation | Simplified application object data synchronization for optimized data storage |
US7707175B1 (en) * | 2002-05-02 | 2010-04-27 | Palmsource Inc. | Single ended synchronization agents |
US7031973B2 (en) * | 2002-06-10 | 2006-04-18 | Microsoft Corporation | Accounting for references between a client and server that use disparate e-mail storage formats |
US7428544B1 (en) | 2002-06-10 | 2008-09-23 | Microsoft Corporation | Systems and methods for mapping e-mail records between a client and server that use disparate storage formats |
US9813514B2 (en) | 2002-06-12 | 2017-11-07 | Good Technology Holdings Limited | Information repository system including a wireless device and related method |
US20030236842A1 (en) * | 2002-06-21 | 2003-12-25 | Krishnamurti Natarajan | E-mail address system and method for use between disparate client/server environments |
AU2002314432A1 (en) * | 2002-06-28 | 2004-01-19 | Nokia Corporation | Method and device for retrieving data store access information |
US8516034B1 (en) | 2002-07-08 | 2013-08-20 | Good Technology Software, Inc | System and method for modifying application behavior based on network bandwidth |
US7222139B2 (en) * | 2002-07-30 | 2007-05-22 | International Business Machines Corporation | Method, system and program for synchronizing data |
US7787489B2 (en) * | 2002-10-07 | 2010-08-31 | Oracle International Corporation | Mobile data distribution |
AU2002351015C1 (en) * | 2002-11-21 | 2009-06-25 | Nokia Technologies Oy | Method and device for defining objects allowing to establish a device management tree for mobile communication devices |
US7216133B2 (en) * | 2003-07-29 | 2007-05-08 | Microsoft Corporation | Synchronizing logical views independent of physical storage representations |
US8166101B2 (en) | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
US7401104B2 (en) * | 2003-08-21 | 2008-07-15 | Microsoft Corporation | Systems and methods for synchronizing computer systems through an intermediary file system share or device |
US8238696B2 (en) | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
US20050055698A1 (en) * | 2003-09-10 | 2005-03-10 | Sap Aktiengesellschaft | Server-driven data synchronization method and system |
US7080104B2 (en) | 2003-11-07 | 2006-07-18 | Plaxo, Inc. | Synchronization and merge engines |
US7389324B2 (en) | 2003-11-07 | 2008-06-17 | Plaxo, Inc. | Viral engine for network deployment |
US20070180127A1 (en) * | 2003-11-11 | 2007-08-02 | Nokia Corporation | Preconfigured syncml profile categories |
US7424293B2 (en) | 2003-12-02 | 2008-09-09 | Telecommunication Systems, Inc. | User plane location based service using message tunneling to support roaming |
US7260186B2 (en) | 2004-03-23 | 2007-08-21 | Telecommunication Systems, Inc. | Solutions for voice over internet protocol (VoIP) 911 location services |
US20080126535A1 (en) | 2006-11-28 | 2008-05-29 | Yinjun Zhu | User plane location services over session initiation protocol (SIP) |
US20080090546A1 (en) | 2006-10-17 | 2008-04-17 | Richard Dickinson | Enhanced E911 network access for a call center using session initiation protocol (SIP) messaging |
US7797386B2 (en) * | 2004-02-27 | 2010-09-14 | Research In Motion Limited | System and method for remotely configuring a desktop mailbox |
US7433936B2 (en) * | 2004-03-11 | 2008-10-07 | Microsoft Corporation | Connectivity objects under a mobile device management tree |
US20050240680A1 (en) * | 2004-04-27 | 2005-10-27 | Jose Costa-Requena | Method and apparatus for a life management server |
US7778962B2 (en) * | 2004-04-30 | 2010-08-17 | Microsoft Corporation | Client store synchronization through intermediary store change packets |
US7395446B2 (en) * | 2004-05-03 | 2008-07-01 | Microsoft Corporation | Systems and methods for the implementation of a peer-to-peer rule-based pull autonomous synchronization system |
US20050262166A1 (en) * | 2004-05-05 | 2005-11-24 | Microsoft Corporation | Method and system for synchronizing data between electronic devices |
US20050273472A1 (en) * | 2004-06-04 | 2005-12-08 | Prakash Reddy | Verifying incremental updates to hierarchicaly structured information |
US7672978B2 (en) * | 2004-08-20 | 2010-03-02 | Nokia Corporation | Handling of content in a data processing device |
US7702669B2 (en) | 2004-09-02 | 2010-04-20 | Ringcentral, Inc. | Synchronization in unified messaging systems |
US7629926B2 (en) | 2004-10-15 | 2009-12-08 | Telecommunication Systems, Inc. | Culled satellite ephemeris information for quick, accurate assisted locating satellite location determination for cell site antennas |
US6985105B1 (en) | 2004-10-15 | 2006-01-10 | Telecommunication Systems, Inc. | Culled satellite ephemeris information based on limiting a span of an inverted cone for locating satellite in-range determinations |
US20060136473A1 (en) * | 2004-12-20 | 2006-06-22 | Lamb James A | Service data organization |
CN100388209C (zh) * | 2005-01-05 | 2008-05-14 | 英业达股份有限公司 | 防止数据处理混乱的方法 |
US7996493B2 (en) * | 2005-03-10 | 2011-08-09 | Microsoft Corporation | Framework for managing client application data in offline and online environments |
US20060212846A1 (en) * | 2005-03-21 | 2006-09-21 | Dexterra, Inc. | Data management for mobile data system |
US7353034B2 (en) | 2005-04-04 | 2008-04-01 | X One, Inc. | Location sharing and tracking using mobile phones or other wireless devices |
US8117277B2 (en) * | 2005-04-27 | 2012-02-14 | Microsoft Corporation | Component based infrastructure for sharing files |
US7634514B2 (en) * | 2005-05-09 | 2009-12-15 | Microsoft Corporation | Synchronizing file system directories |
US7734737B2 (en) * | 2005-05-26 | 2010-06-08 | Nokia Corporation | Device management with configuration information |
NO20052719D0 (no) * | 2005-06-06 | 2005-06-06 | Ericsson Telefon Ab L M | Synkronisering av informasjonsenheter med tilhorende referanser |
US8401002B2 (en) | 2005-06-22 | 2013-03-19 | Research In Motion Limited | Exchange and use of globally unique device identifiers for circuit-switched and packet switched integration |
US8626128B2 (en) * | 2011-04-07 | 2014-01-07 | Microsoft Corporation | Enforcing device settings for mobile devices |
US8660573B2 (en) | 2005-07-19 | 2014-02-25 | Telecommunications Systems, Inc. | Location service requests throttling |
CA2513010A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A method for detecting state changes between data stored in a first computing device and data retrieved from a second computing device |
CA2513018A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | Method for training a proxy server for content delivery based on communication of state information from a mobile device browser |
CA2513014A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A method of controlling delivery of multi-part content from an origin server to a mobile device browser via a proxy server |
CA2513019A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A method for communicating state information between a server and a mobile device browser with version handling |
CA2513016A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A secure method of synchronizing cache contents of a mobile browser with a proxy server |
CA2513022A1 (en) | 2005-07-22 | 2007-01-22 | Research In Motion Limited | System and method for communicating state management between a browser user-agent and a mobile data server |
US20070049288A1 (en) * | 2005-08-24 | 2007-03-01 | Lamprecht Leslie J | Creating optimum temporal location trigger for multiple requests |
US20070077920A1 (en) * | 2005-09-15 | 2007-04-05 | Phillip Weeks | Methods, systems and computer program products for aggregating communications and media data |
US9282451B2 (en) | 2005-09-26 | 2016-03-08 | Telecommunication Systems, Inc. | Automatic location identification (ALI) service requests steering, connection sharing and protocol translation |
US7825780B2 (en) | 2005-10-05 | 2010-11-02 | Telecommunication Systems, Inc. | Cellular augmented vehicle alarm notification together with location services for position of an alarming vehicle |
US8467320B2 (en) | 2005-10-06 | 2013-06-18 | Telecommunication Systems, Inc. | Voice over internet protocol (VoIP) multi-user conferencing |
US7907551B2 (en) | 2005-10-06 | 2011-03-15 | Telecommunication Systems, Inc. | Voice over internet protocol (VoIP) location based 911 conferencing |
CN1956452B (zh) * | 2005-10-27 | 2012-02-29 | 华为技术有限公司 | 一种实现数据同步的方法、系统、客户端及服务器 |
US8015319B2 (en) * | 2005-10-27 | 2011-09-06 | Huawei Technologies Co., Ltd. | Method, system, client and server for implementing data sync |
CN1794724A (zh) * | 2005-10-27 | 2006-06-28 | 华为技术有限公司 | 在SyncML层实现数据同步的方法 |
KR100705238B1 (ko) * | 2005-11-15 | 2007-04-06 | 엘지전자 주식회사 | 에러 체크 코드를 이용한 데이터 동기화 방법과 이를 위한이동 통신 단말기 및 서버 |
US8291101B1 (en) * | 2005-12-08 | 2012-10-16 | Juniper Networks, Inc. | Synchronization of mutually shared data stored on network devices |
US7653650B2 (en) * | 2005-12-13 | 2010-01-26 | International Business Machines Corporation | Apparatus, system, and method for synchronizing change histories in enterprise applications |
US7739234B1 (en) * | 2005-12-15 | 2010-06-15 | Teradata Us, Inc. | Techniques for synchronizing data store tables |
KR100765770B1 (ko) * | 2006-01-23 | 2007-10-15 | 삼성전자주식회사 | 가상 장치를 이용한 휴대용 기기의 데이터 관리 방법, 장치및 사용자 인터페이스 방법 |
CN100493090C (zh) * | 2006-01-25 | 2009-05-27 | 中国移动通信集团公司 | 移动终端与服务器之间的数据同步方法 |
US8150363B2 (en) | 2006-02-16 | 2012-04-03 | Telecommunication Systems, Inc. | Enhanced E911 network access for call centers |
US8059789B2 (en) | 2006-02-24 | 2011-11-15 | Telecommunication Systems, Inc. | Automatic location identification (ALI) emergency services pseudo key (ESPK) |
US7620392B1 (en) | 2006-02-27 | 2009-11-17 | Good Technology, Inc. | Method and system for distributing and updating software in wireless devices |
US7471236B1 (en) * | 2006-03-01 | 2008-12-30 | Telecommunication Systems, Inc. | Cellular augmented radar/laser detector |
US9167553B2 (en) | 2006-03-01 | 2015-10-20 | Telecommunication Systems, Inc. | GeoNexus proximity detector network |
US7899450B2 (en) | 2006-03-01 | 2011-03-01 | Telecommunication Systems, Inc. | Cellular augmented radar/laser detection using local mobile network within cellular network |
CN100391168C (zh) * | 2006-03-08 | 2008-05-28 | 华为技术有限公司 | 一种管理同步标记语言终端设备的方法、系统及终端 |
CN100450108C (zh) * | 2006-03-23 | 2009-01-07 | 华为技术有限公司 | 一种采用数据同步处理电子邮件的系统、装置及方法 |
KR100782858B1 (ko) * | 2006-04-11 | 2007-12-06 | 삼성전자주식회사 | 홈 네트워크 디바이스들의 컨텐츠를 동기화하는 방법 및장치 |
US8208605B2 (en) | 2006-05-04 | 2012-06-26 | Telecommunication Systems, Inc. | Extended efficient usage of emergency services keys |
CN101083537B (zh) * | 2006-05-31 | 2011-10-05 | 华为技术有限公司 | 一种实现设备管理的方法、装置和系统 |
US7958270B2 (en) * | 2006-06-09 | 2011-06-07 | Laurent Frederick Sidon | Distribution of files from mobile devices |
US7577691B2 (en) * | 2006-08-02 | 2009-08-18 | Microsoft Corporation | Extending hierarchical synchronization scopes to non-hierarchical scenarios |
US20080057902A1 (en) * | 2006-08-30 | 2008-03-06 | Laurent Frederick Sidon | Distribution of customized ringtones for mobile devices |
US7966013B2 (en) | 2006-11-03 | 2011-06-21 | Telecommunication Systems, Inc. | Roaming gateway enabling location based services (LBS) roaming for user plane in CDMA networks without requiring use of a mobile positioning center (MPC) |
US7774464B2 (en) * | 2006-12-28 | 2010-08-10 | Nokia Corporation | Automatic syncML client profile creation for new servers |
US7739410B2 (en) * | 2007-01-07 | 2010-06-15 | Apple Inc. | Synchronization methods and systems |
US7805403B2 (en) | 2007-01-07 | 2010-09-28 | Apple Inc. | Synchronization methods and systems |
US7778971B2 (en) * | 2007-01-07 | 2010-08-17 | Apple Inc. | Synchronization methods and systems |
US7761414B2 (en) * | 2007-01-07 | 2010-07-20 | Apple Inc. | Asynchronous data synchronization amongst devices |
US7660831B2 (en) * | 2007-01-07 | 2010-02-09 | Apple Inc. | Synchronization methods and systems |
US20080163743A1 (en) * | 2007-01-07 | 2008-07-10 | Freedman Gordon J | Synchronization methods and systems |
US8239504B2 (en) * | 2007-01-07 | 2012-08-07 | Apple Inc. | Synchronization methods and systems |
US20080195962A1 (en) * | 2007-02-12 | 2008-08-14 | Lin Daniel J | Method and System for Remotely Controlling The Display of Photos in a Digital Picture Frame |
US7751807B2 (en) * | 2007-02-12 | 2010-07-06 | Oomble, Inc. | Method and system for a hosted mobile management service architecture |
US8050386B2 (en) | 2007-02-12 | 2011-11-01 | Telecommunication Systems, Inc. | Mobile automatic location identification (ALI) for first responders |
US7716281B2 (en) * | 2007-02-12 | 2010-05-11 | Oomble, Inc. | Method and system for transferring content from the web to mobile devices |
US8024400B2 (en) | 2007-09-26 | 2011-09-20 | Oomble, Inc. | Method and system for transferring content from the web to mobile devices |
US8375086B2 (en) * | 2007-05-31 | 2013-02-12 | International Business Machines Corporation | Shared state manager and system and method for collaboration |
US8209540B2 (en) * | 2007-06-28 | 2012-06-26 | Apple Inc. | Incremental secure backup and restore of user settings and data |
CN101355726A (zh) * | 2007-07-25 | 2009-01-28 | 国际商业机器公司 | 基于多媒体消息传递服务的数据库同步方法和系统 |
US8185494B2 (en) * | 2007-09-14 | 2012-05-22 | Microsoft Corporation | Data-driven synchronization |
WO2009038726A1 (en) | 2007-09-17 | 2009-03-26 | Telecommunication Systems, Inc. | Emergency 911 data messaging |
US7929530B2 (en) | 2007-11-30 | 2011-04-19 | Telecommunication Systems, Inc. | Ancillary data support in session initiation protocol (SIP) messaging |
US9130963B2 (en) | 2011-04-06 | 2015-09-08 | Telecommunication Systems, Inc. | Ancillary data support in session initiation protocol (SIP) messaging |
US8068587B2 (en) | 2008-08-22 | 2011-11-29 | Telecommunication Systems, Inc. | Nationwide table routing of voice over internet protocol (VOIP) emergency calls |
US8892128B2 (en) | 2008-10-14 | 2014-11-18 | Telecommunication Systems, Inc. | Location based geo-reminders |
EP2347395A4 (en) | 2008-10-14 | 2016-11-02 | Telecomm Systems Inc | Location Based Approach Alert |
KR100935831B1 (ko) | 2008-11-17 | 2010-01-08 | 우용태 | 복수의 이벤트 식별자가 포함된 데이타구조체를 이용한 데이타동기화 방법 및 상기 방법을 이용한 데이타 백업솔루션 |
US8799214B2 (en) * | 2008-11-21 | 2014-08-05 | At&T Intellectual Property I, L.P. | Methods, computer program products, and systems for automatically synchronizing directory structures across different applications |
JP2012510118A (ja) * | 2008-11-26 | 2012-04-26 | カルガリー・サイエンティフィック・インコーポレイテッド | アプリケーションプログラムの状態への遠隔アクセスを提供するための方法およびシステム |
US8051209B2 (en) * | 2008-11-26 | 2011-11-01 | Microsoft Corporation | Minimizing conflicts when synchronizing interrelated data between two systems |
CN101778486B (zh) | 2008-11-27 | 2012-09-05 | 华为终端有限公司 | 设备管理服务器、客户端及目标操作对象定位方法 |
US20100153335A1 (en) | 2008-12-12 | 2010-06-17 | Microsoft Corporation | Synchronizing multiple classes with disparate schemas in the same collection |
US10055105B2 (en) | 2009-02-03 | 2018-08-21 | Calgary Scientific Inc. | Method and system for enabling interaction with a plurality of applications using a single user interface |
US9301191B2 (en) | 2013-09-20 | 2016-03-29 | Telecommunication Systems, Inc. | Quality of service to over the top applications used with VPN |
US8867485B2 (en) | 2009-05-05 | 2014-10-21 | Telecommunication Systems, Inc. | Multiple location retrieval function (LRF) network having location continuity |
US20110145187A1 (en) * | 2009-12-16 | 2011-06-16 | Sap Ag | Conflict framework for guided structure synchronization |
US9026582B2 (en) * | 2010-03-23 | 2015-05-05 | Htc Corporation | Device management methods and related apparatus for enhancing applicability of status messages in response to commands |
US8336664B2 (en) | 2010-07-09 | 2012-12-25 | Telecommunication Systems, Inc. | Telematics basic mobile device safety interlock |
WO2012005769A1 (en) | 2010-07-09 | 2012-01-12 | Telecommunication Systems, Inc. | Location privacy selector |
US8688087B2 (en) | 2010-12-17 | 2014-04-01 | Telecommunication Systems, Inc. | N-dimensional affinity confluencer |
US8942743B2 (en) | 2010-12-17 | 2015-01-27 | Telecommunication Systems, Inc. | iALERT enhanced alert manager |
WO2012087353A1 (en) | 2010-12-22 | 2012-06-28 | Telecommunication Systems, Inc. | Area event handling when current network does not cover target area |
US9741084B2 (en) | 2011-01-04 | 2017-08-22 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
WO2012141762A1 (en) | 2011-02-25 | 2012-10-18 | Telecommunication Systems, Inc. | Mobile internet protocol (ip) location |
US8700567B2 (en) * | 2011-02-28 | 2014-04-15 | Hitachi, Ltd. | Information apparatus |
CA2734860A1 (en) | 2011-03-21 | 2012-09-21 | Calgary Scientific Inc. | Method and system for providing a state model of an application program |
ES2870588T3 (es) * | 2011-04-29 | 2021-10-27 | American Greetings Corp | Sistemas, procedimientos y aparatos para crear, editar, distribuir y visualizar tarjetas de felicitación electrónicas |
RU2625525C2 (ru) | 2011-08-15 | 2017-07-14 | Калгари Сайентифик Инк. | Бесконтактный удаленный доступ к программному приложению |
CA2844851A1 (en) | 2011-08-15 | 2013-02-21 | Calgary Scientific Inc. | Method for flow control and for reliable communication in a collaborative environment |
US8649806B2 (en) | 2011-09-02 | 2014-02-11 | Telecommunication Systems, Inc. | Aggregate location dynometer (ALD) |
US9479344B2 (en) | 2011-09-16 | 2016-10-25 | Telecommunication Systems, Inc. | Anonymous voice conversation |
CN103959708B (zh) | 2011-09-30 | 2017-10-17 | 卡尔加里科学公司 | 包括用于协作远程应用共享和注释的交互式数字表层的非耦合应用扩展 |
US8831556B2 (en) | 2011-09-30 | 2014-09-09 | Telecommunication Systems, Inc. | Unique global identifier header for minimizing prank emergency 911 calls |
CN104040946B (zh) | 2011-11-23 | 2017-07-14 | 卡尔加里科学公司 | 用于协作远程应用程序共享和会议的方法和系统 |
US9264537B2 (en) | 2011-12-05 | 2016-02-16 | Telecommunication Systems, Inc. | Special emergency call treatment based on the caller |
US9313637B2 (en) | 2011-12-05 | 2016-04-12 | Telecommunication Systems, Inc. | Wireless emergency caller profile data delivery over a legacy interface |
US8984591B2 (en) | 2011-12-16 | 2015-03-17 | Telecommunications Systems, Inc. | Authentication via motion of wireless device movement |
US9384339B2 (en) | 2012-01-13 | 2016-07-05 | Telecommunication Systems, Inc. | Authenticating cloud computing enabling secure services |
US9602581B2 (en) | 2012-03-02 | 2017-03-21 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (DLL) injection |
US8688174B2 (en) | 2012-03-13 | 2014-04-01 | Telecommunication Systems, Inc. | Integrated, detachable ear bud device for a wireless phone |
US9307372B2 (en) | 2012-03-26 | 2016-04-05 | Telecommunication Systems, Inc. | No responders online |
US9544260B2 (en) | 2012-03-26 | 2017-01-10 | Telecommunication Systems, Inc. | Rapid assignment dynamic ownership queue |
US9575816B2 (en) * | 2012-03-29 | 2017-02-21 | Via Technologies, Inc. | Deadlock/livelock resolution using service processor |
US9338153B2 (en) | 2012-04-11 | 2016-05-10 | Telecommunication Systems, Inc. | Secure distribution of non-privileged authentication credentials |
US9729673B2 (en) | 2012-06-21 | 2017-08-08 | Calgary Scientific Inc. | Method and system for providing synchronized views of multiple applications for display on a remote computing device |
CN110543461A (zh) * | 2012-07-27 | 2019-12-06 | 三星电子株式会社 | 执行数据同步的终端及其方法 |
WO2014028712A1 (en) | 2012-08-15 | 2014-02-20 | Telecommunication Systems, Inc. | Device independent caller data access for emergency calls |
US9208346B2 (en) | 2012-09-05 | 2015-12-08 | Telecommunication Systems, Inc. | Persona-notitia intellection codifier |
US9456301B2 (en) | 2012-12-11 | 2016-09-27 | Telecommunication Systems, Inc. | Efficient prisoner tracking |
US9727268B2 (en) * | 2013-01-08 | 2017-08-08 | Lyve Minds, Inc. | Management of storage in a storage network |
US8983047B2 (en) | 2013-03-20 | 2015-03-17 | Telecommunication Systems, Inc. | Index of suspicion determination for communications request |
US9282169B1 (en) * | 2013-07-12 | 2016-03-08 | Oxygen Cloud, Inc. | Real-time user interaction-based alterations to the scope of data synchronization between client and remote devices |
US9408034B2 (en) | 2013-09-09 | 2016-08-02 | Telecommunication Systems, Inc. | Extended area event for network based proximity discovery |
US9516104B2 (en) | 2013-09-11 | 2016-12-06 | Telecommunication Systems, Inc. | Intelligent load balancer enhanced routing |
US9479897B2 (en) | 2013-10-03 | 2016-10-25 | Telecommunication Systems, Inc. | SUPL-WiFi access point controller location based services for WiFi enabled mobile devices |
EP3075111B1 (en) | 2013-11-29 | 2017-12-20 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
US9678678B2 (en) | 2013-12-20 | 2017-06-13 | Lyve Minds, Inc. | Storage network data retrieval |
US10243891B2 (en) * | 2014-08-14 | 2019-03-26 | Oath Inc. | Cross-device integration system and method |
CN107431630B (zh) | 2015-01-30 | 2021-06-25 | 卡尔加里科学公司 | 高度可扩展、容错的远程访问架构和与之连接的方法 |
US10015264B2 (en) | 2015-01-30 | 2018-07-03 | Calgary Scientific Inc. | Generalized proxy architecture to provide remote access to an application framework |
CN105634925B (zh) * | 2016-01-20 | 2018-11-09 | 北京乐动卓越科技有限公司 | 一种用户间可扩展的通信方法及系统 |
US11310314B1 (en) * | 2017-07-28 | 2022-04-19 | Zero Cognitive Systems, Inc. | Automatic data synchronization across applications installed on multiple devices via mail server |
RU2750642C2 (ru) * | 2019-11-27 | 2021-06-30 | Акционерное общество "Лаборатория Касперского" | Система и способ регистрации уникального идентификатора мобильного устройства |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5592664A (en) | 1991-07-29 | 1997-01-07 | Borland International Inc. | Database server system with methods for alerting clients of occurrence of database server events of interest to the clients |
US5392390A (en) | 1992-04-10 | 1995-02-21 | Intellilink Corp. | Method for mapping, translating, and dynamically reconciling data between disparate computer platforms |
DE69433372T2 (de) | 1993-04-05 | 2004-10-14 | Motorola, Inc., Schaumburg | Selektivruf mit mehreren verteilten Ausgängen |
US5758354A (en) | 1995-04-28 | 1998-05-26 | Intel Corporation | Application independent e-mail synchronization |
US5647002A (en) | 1995-09-01 | 1997-07-08 | Lucent Technologies Inc. | Synchronization of mailboxes of different types |
US5774717A (en) * | 1995-12-15 | 1998-06-30 | International Business Machines Corporation | Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts |
US5806074A (en) * | 1996-03-19 | 1998-09-08 | Oracle Corporation | Configurable conflict resolution in a computer implemented distributed database |
US5778389A (en) * | 1996-05-23 | 1998-07-07 | Electronic Data Systems Corporation | Method and system for synchronizing computer file directories |
US5948059A (en) | 1997-03-21 | 1999-09-07 | International Business Machines Corporation | Method and apparatus for synchronizing multimedia messages in different servers |
US5924096A (en) * | 1997-10-15 | 1999-07-13 | Novell, Inc. | Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand |
US6018762A (en) | 1998-03-31 | 2000-01-25 | Lucent Technologies Inc. | Rules-based synchronization of mailboxes in a data network |
KR100521332B1 (ko) | 1998-07-14 | 2006-03-09 | 삼성전자주식회사 | 외부 전자 장치들과 통신 가능한 카드 타입의 개인 정보 관리시스템 및 그의 통신 방법 |
GB2342258B (en) | 1998-09-30 | 2003-07-23 | Sony Uk Ltd | Data symbol counting device synchronising device and method |
US6480953B1 (en) * | 1999-12-13 | 2002-11-12 | International Business Machines Corporation | Method and apparatus for ensuring system configuration data structure coherency across multiple controllers in a data storage system |
KR100541756B1 (ko) | 1999-12-17 | 2006-01-10 | 주식회사 케이티 | 무선통신 시스템에서 대용량 데이터 전송방법 |
US6820088B1 (en) * | 2000-04-10 | 2004-11-16 | Research In Motion Limited | System and method for synchronizing data records between multiple databases |
US6697805B1 (en) * | 2000-04-14 | 2004-02-24 | Microsoft Corporation | XML methods and systems for synchronizing multiple computing devices |
US20050055382A1 (en) * | 2000-06-28 | 2005-03-10 | Lounas Ferrat | Universal synchronization |
US20020059299A1 (en) * | 2000-07-14 | 2002-05-16 | Frederic Spaey | System and method for synchronizing databases |
US20020090934A1 (en) * | 2000-11-22 | 2002-07-11 | Mitchelmore Eliott R.D. | Content and application delivery and management platform system and method |
US8463744B2 (en) | 2001-01-03 | 2013-06-11 | International Business Machines Corporation | Method and system for synchronizing data |
US6941326B2 (en) * | 2001-01-24 | 2005-09-06 | Microsoft Corporation | Accounting for update notifications in synchronizing data that may be represented by different data structures |
CA2438481A1 (en) * | 2001-03-27 | 2002-10-03 | British Telecommunications Public Limited Company | File synchronisation |
US6839564B2 (en) | 2001-04-25 | 2005-01-04 | Nokia Corporation | Synchronization of database data |
US20040093342A1 (en) * | 2001-06-27 | 2004-05-13 | Ronald Arbo | Universal data mapping system |
US20030078890A1 (en) * | 2001-07-06 | 2003-04-24 | Joachim Schmidt | Multimedia content download apparatus and method using same |
US7058948B2 (en) * | 2001-08-10 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Synchronization objects for multi-computer systems |
US7149813B2 (en) * | 2001-08-14 | 2006-12-12 | Microsoft Corporation | Method and system for synchronizing mobile devices |
US7526575B2 (en) * | 2001-09-28 | 2009-04-28 | Siebel Systems, Inc. | Method and system for client-based operations in server synchronization with a computing device |
US7570668B2 (en) * | 2001-10-03 | 2009-08-04 | Nokia Corporation | Data synchronization |
US7155521B2 (en) * | 2001-10-09 | 2006-12-26 | Nokia Corporation | Starting a session in a synchronization system |
KR100959019B1 (ko) | 2003-02-14 | 2010-05-24 | 주식회사 케이티 | SIP 기반의 프락시 서버에서의 SIP 메시지forking을 이용한 실시간 과금 데이터 수집 방법 |
-
2002
- 2002-04-02 US US10/115,268 patent/US6721871B2/en not_active Expired - Lifetime
-
2003
- 2003-03-26 CN CN038122456A patent/CN1656468B/zh not_active Expired - Lifetime
- 2003-03-26 AU AU2003212573A patent/AU2003212573A1/en not_active Abandoned
- 2003-03-26 RU RU2004131856/09A patent/RU2337398C2/ru active
- 2003-03-26 EP EP03708398A patent/EP1490779A4/en not_active Ceased
- 2003-03-26 KR KR1020047015714A patent/KR100994139B1/ko active IP Right Grant
- 2003-03-26 JP JP2003581039A patent/JP4405812B2/ja not_active Expired - Lifetime
- 2003-03-26 WO PCT/IB2003/001097 patent/WO2003083684A1/en active Application Filing
-
2004
- 2004-02-17 US US10/781,325 patent/US9594821B2/en not_active Expired - Lifetime
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8849968B2 (en) | 2005-06-20 | 2014-09-30 | Microsoft Corporation | Secure and stable hosting of third-party extensions to web services |
US8074231B2 (en) | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
US8789063B2 (en) | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
RU2477884C1 (ru) * | 2011-10-13 | 2013-03-20 | Открытое акционерное общество "Концерн "Созвездие" | Способ повышения скорости поиска данных с использованием адаптивных носителей данных |
RU2617593C2 (ru) * | 2012-10-19 | 2017-04-25 | ЗетТиИ Майкроэлектроникс Текнолоджи Ко., Лтд. | Способ и устройство обработки контента домашней сети |
Also Published As
Publication number | Publication date |
---|---|
KR100994139B1 (ko) | 2010-11-15 |
JP2005521946A (ja) | 2005-07-21 |
EP1490779A4 (en) | 2008-06-18 |
US6721871B2 (en) | 2004-04-13 |
US9594821B2 (en) | 2017-03-14 |
RU2004131856A (ru) | 2005-05-10 |
US20040225731A1 (en) | 2004-11-11 |
CN1656468A (zh) | 2005-08-17 |
JP4405812B2 (ja) | 2010-01-27 |
US20030191827A1 (en) | 2003-10-09 |
KR20040099392A (ko) | 2004-11-26 |
WO2003083684A1 (en) | 2003-10-09 |
CN1656468B (zh) | 2010-06-23 |
AU2003212573A1 (en) | 2003-10-13 |
EP1490779A1 (en) | 2004-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2337398C2 (ru) | Способ и устройство для синхронизации того, как данные сохраняются в различных хранилищах данных | |
US7877682B2 (en) | Modular distributed mobile data applications | |
US6694335B1 (en) | Method, computer readable medium, and system for monitoring the state of a collection of resources | |
US7738503B2 (en) | Multi-way, peer-to-peer synchronization | |
CN1656480B (zh) | 允许同步具备不同能力的不同设备中的数据的方法和设备 | |
US7860825B2 (en) | Method for synchronizing software application and user data for asynchronous client-server and peer to peer computer networks | |
US6578069B1 (en) | Method, data structure, and computer program product for identifying a network resource | |
US7966426B2 (en) | Offline synchronization capability for client application | |
Swierk et al. | The Roma personal metadata service | |
US7634728B2 (en) | System and method for providing a runtime environment for active web based document resources | |
US8166101B2 (en) | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system | |
US7177865B2 (en) | Data synchronization method and system | |
US20080141136A1 (en) | Clipping Synchronization and Sharing | |
US20050160088A1 (en) | System and method for metadata-based distribution of content | |
EP1422901A1 (en) | Client driven synchronization of file and folder content in web publishing | |
US20120030166A1 (en) | System integration architecture | |
US20060271384A1 (en) | Reference data aggregate service population | |
CN101689135A (zh) | 使用联合储存库增加文件存储规模 | |
US20050055465A1 (en) | Generic API for synchronization | |
US8463744B2 (en) | Method and system for synchronizing data | |
US20080086483A1 (en) | File service system in personal area network | |
Lim et al. | Design and implementation of a collaborative team-based cloud storage system | |
Alliance | SyncML Representation Protocol, Data Synchronization Usage | |
JP2000076263A (ja) | コンテンツ連携システムおよびコンテンツ連携方法 | |
Mehta et al. | Mobile AJAX Applications: Going Far Without The Bars |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20160602 |