Способ и устройство для синхронизации данных
Иллюстрации
Показать всеИзобретение относится к технологиям сетевой связи. Технический результат заключается в повышении скорости передачи данных. Способ содержит прием облачным сервером запроса на синхронизацию данных, переданного подвижным терминалом, причем запрос на синхронизацию содержит идентификатор подвижного терминала, время синхронизации данных подвижным терминалом в прошлый раз и учетную запись синхронизации для синхронизации данных между подвижным терминалом и облачным сервером; определение облачным сервером, что время операции записи подлежащих синхронизации данных больше чем время синхронизации данных подвижным терминалом в прошлый раз, при этом подлежащие синхронизации данные являются данными, которые соответствуют идентификатору в учетной записи синхронизации и находятся на облачном сервере; и синхронизацию облачным сервером подлежащих синхронизации данных с подвижным терминалом. 2 н. и 10 з.п. ф-лы, 9 ил.
Реферат
Область техники, к которой относится изобретение
Данное изобретение относится к области связи, и касается, в частности, способа и устройства для синхронизации данных.
Предпосылки создания изобретения
В данном изобретении синхронизация на основе облачной технологии означает то, что подвижный терминал входит в облако с помощью учетной записи пользователя, и затем подвижный терминал и облако выполняют двунаправленную синхронизацию данных. Облако обычно является распределенной системой, и при практическом использовании часто имеет место следующее явление: множество подвижных терминалов одновременно использует одну и ту же учетную запись или различные учетные записи для входа в систему, чтобы выполнить синхронизацию; одна из учетных записей не используется в течение долгого времени, но дерегистрация этой учетной записи облаком не выполняется. Из-за вышеупомянутого явления в известном уровне техники передается слишком много информации, управляющей синхронизацией, и это служит причиной большого трафика. Кроме того, синхронизация в известном уровне техники обеспечивает только то, что контенты, синхронизируемые в множестве подвижных терминалов, соответствующих одной и той же учетной записи, являются идентичными, и поэтому неспособны удовлетворять разнообразные потребности пользователя. Например, учетная запись Vivian читает книгу Java на мобильном телефоне A, и пользователь хочет синхронизировать закладку книги Java между мобильным телефоном A и облаком, тогда как учетная запись Vivian читает книгу C++ на мобильном телефоне B, и пользователь хочет синхронизировать закладку книги C++ между мобильным телефоном В и облаком; то есть пользователь хочет, чтобы учетная запись Vivian синхронизировала данные, соответствующие каждому мобильному телефону, на мобильных телефонах A и B, соответственно, вместо того, чтобы совместно использовать данные книги Java и книги C++ на мобильных телефонах A и B; однако в известном уровне техники, как только синхронизация инициируется, закладки двух книг, то есть, книги C++ и книги Java, будет приняты и на мобильном телефоне A и на мобильном телефоне B, то есть контенты, синхронизируемые мобильными телефонами A и B для одной и той же учетной записи, являются идентичными; следовательно, разнообразные потребности пользователя не могут быть удовлетворены. Между тем, так как идентичная синхронизация данных выполняется среди множества подвижных терминалов для одной и той же учетной записи, трафик, передаваемый во время синхронизации данных, возрастает, и потребление ресурсов в облаке также увеличивается.
Поэтому в вышеупомянутом способе синхронизации данных синхронизация данных среди множестве подвижных терминалов для одной и той же учетной записи ведет к тем проблемам, что трафик, передаваемый во время синхронизации данных, возрастает, и потребление ресурсов в облаке также увеличивается, и в то же самое время способ не может удовлетворить разнообразные потребности пользователя.
Сущность изобретения
Предлагаются способ и устройство для синхронизации данных так, чтобы по меньшей мере решить проблемы известного уровня техники, состоящие в том, что трафик, передаваемый во время синхронизации данных, возрастает, и потребление ресурсов в облаке также увеличивается, что вызывается синхронизацией данных среди множества подвижных терминалов для одной и той же учетной записи.
Согласно одному аспекту данного изобретения предлагается способ синхронизации данных, который включает: прием облачным сервером запроса на синхронизацию данных, переданного подвижным терминалом, причем запрос на синхронизацию содержит идентификатор подвижного терминала, время синхронизации данных подвижным терминалом в прошлый раз, и учетную запись синхронизации для синхронизации данных между подвижным терминалом и облачным сервером; определение облачным сервером, что время операции записи подлежащих синхронизации данных больше чем время синхронизации данных подвижным терминалом в прошлый раз, причем подлежащие синхронизации данные являются данными, которые соответствуют идентификатору в учетной записи синхронизации и находятся на облачном сервере; и синхронизацию облачным сервером подлежащих синхронизации данных с подвижным терминалом.
Предпочтительно, определение облачным сервером, что время операции записи подлежащих синхронизации данных больше чем время синхронизации данных подвижным терминалом в прошлый раз, включает: определение облачным сервером, что время операции записи подлежащих синхронизации данных, соответствующих заранее заданной службе, больше чем время, когда данные были синхронизированы подвижным терминалом в прошлый раз; при этом синхронизация облачным сервером подлежащих синхронизации данных с подвижным терминалом включает: передачу облачным сервером подлежащих синхронизации данных в соответствии с заранее заданной службой в подвижный терминал.
Предпочтительно, запрос на синхронизацию данных, переданный подвижным терминалом и принимаемый облачным сервером, содержит измененные данные подвижного терминала и информацию об атрибуте измененных данных, причем информация об атрибуте данных включает: совместно используемые или монопольно используемые.
Предпочтительно, синхронизация облачным сервером подлежащих синхронизации данных с подвижным терминалом, включает: получение облачным сервером типа операции над измененными данными, и выполнение операции над измененными данными согласно типу операции.
Предпочтительно, выполнение облачным сервером операции над измененными данными согласно типу операции включает: если типом операции является добавление, то добавление облачным сервером измененных данных в облачный сервер и установление времени операции записи измененных данных, которые добавляются, равным времени операции добавления; а если типом операции является удаление или модификация, то определение облачным сервером, является ли атрибут данных, который соответствует измененным данным и записывается облачным сервером, атрибутом "совместно используемые", и если результат определения - да, то удаление или модификацию соответствующих данных на облачном сервере и обновление времени операции записи данных так, чтобы оно было временем операции удаления или операции модификации.
Предпочтительно, синхронизация облачным сервером подлежащих синхронизации данных с подвижным терминалом включает: если типом операции является удаление или модификация, и подвижный терминал и портал облачного сервера одновременно выдают запрос на удаление или модификацию для измененных данных, то выполнение облачным сервером соответствующей операции над измененными данными согласно порядку приоритетов подвижного терминала и портала облачного сервера.
Предпочтительно, синхронизация облачным сервером подлежащих синхронизации данных с подвижным терминалом включает: если множество подвижных терминалов одновременно инициирует синхронизацию подлежащих синхронизации данных, то облачный сервер поочередно синхронизирует подлежащие синхронизации данные с множеством подвижных терминалов.
Предпочтительно, после синхронизации облачным сервером подлежащих синхронизации данных с подвижным терминалом, вышеупомянутый способ дополнительно включает: если облачный сервер определяет, что временной интервал между прошлым разом, когда подвижный терминал синхронизировал данные с облачным сервером, и текущим временем больше чем заданный интервал времени, то удаление всех данных подвижного терминала с облачного сервера.
Согласно другому аспекту данного изобретения предлагается устройство для синхронизации данных, которое содержит: приемный модуль, сконфигурированный для приема запроса на синхронизацию данных, переданного подвижным терминалом, причем запрос на синхронизацию содержит идентификатор подвижного терминала, время синхронизации данных подвижным терминалом в прошлый раз и учетную запись синхронизации для синхронизации данных между подвижным терминалом и облачным сервером; модуль определения, сконфигурированный для определения, что время операции записи подлежащих синхронизации данных больше чем время синхронизации данных подвижным терминалом в прошлый раз, причем подлежащие синхронизации данные являются данными, которые соответствует идентификатору в учетной записи синхронизации и находятся на облачном сервере; и модуль синхронизации, сконфигурированный для синхронизации подлежащих синхронизации данных с подвижным терминалом.
Предпочтительно, приемный модуль дополнительно сконфигурирован для приема переданного подвижным терминалом запроса на синхронизацию данных, который содержит измененные данные подвижного терминала и информацию об атрибуте измененных данных, причем информация об атрибуте включает: совместно используемые или монопольно используемые.
Предпочтительно, модуль синхронизации содержит: блок сбора данных, сконфигурированный для получения типа операции над измененными данными; и первый блок синхронизации, сконфигурированный для выполнения операции над измененными данными согласно типу операции.
Предпочтительно, первый блок синхронизации содержит: второй блок синхронизации, сконфигурированный для добавления измененных данных на облачный сервер и установки времени операции записи измененных данных, которые добавляются, равным времени операции добавления, если типом операции является добавление; и третий блок синхронизации, сконфигурированный для определения, является ли атрибут данных, который соответствует измененным данным и записывается облачным сервером, атрибутом "совместно используемые", если типом операции является удаление или модификация, и если результат определения - да, то удаление или модификацию соответствующих данных на облачном сервере и обновление времени операции записи данных так, чтобы оно было равно времени операции удаления или операции модификации.
В данном изобретении облачный сервер принимает запрос на синхронизацию данных, переданный подвижным терминалом, причем запрос на синхронизацию содержит идентификатор подвижного терминала, время синхронизации данных подвижным терминалом в прошлый раз и учетную запись синхронизации для синхронизации данных между подвижным терминалом и облачным сервером, чтобы гарантировать, что подвижный терминал является терминалом в учетной записи; облачный сервер определяет, что данные, которые были изменены на облачном сервере, являются данными, подлежащими синхронизации, посредством определения, что время операции записи подлежащих синхронизации данных больше чем время, когда подвижный терминал синхронизировал данные в прошлый раз, и в то же самое время подлежащие синхронизации данные являются данными, соответствующими идентификатору подвижного терминала в учетной записи синхронизации на облачном сервере, то есть, подлежащие синхронизации данные разрешается синхронизировать только подвижному терминалу с соответствующим им идентификатором. Это решает проблемы возрастания трафика, передаваемого во время синхронизации данных, а также увеличения потребления ресурсов в облаке, которые вызываются синхронизацией данных множества подвижных терминалов для одной и той же учетной записи, таким образом сокращается передаваемый трафик, вызываемый синхронизацией данных, сокращается потребление ресурсов облачного сервера и облегчается удовлетворение разнообразных требований пользователя.
Краткое описание чертежей
Чертежи, приведенные для более полного понимания данного изобретения и формирующие часть описания, используются для объяснения данного изобретения вместе с формами его осуществления, а не для ограничения данного изобретения, при этом:
На фиг. 1 показана блок-схема способа синхронизации данных согласно форме осуществления данного изобретения.
На фиг. 2 показана схема таблицы данных для управления синхронизацией согласно форме осуществления данного изобретения.
На фиг. 3 схематически показана таблица данных службы согласно форме осуществления данного изобретения.
На фиг. 4 показана блок-схема другого способа синхронизации данных согласно форме осуществления данного изобретения.
На фиг. 5 схематически показана таблица службы контактов согласно форме осуществления данного изобретения.
На фиг. 6 показана блок-схема возврата измененных данных подвижному терминалу согласно форме осуществления данного изобретения.
На фиг. 7 показана структурная схема устройства для синхронизации данных согласно форме осуществления данного изобретения.
На фиг. 8 показана структурная схема модуля синхронизации согласно форме осуществления данного изобретения.
На фиг. 9 показана структурная схема блока синхронизации согласно форме осуществления данного изобретения.
Подробное описание форм осуществления изобретения
Данное изобретение подробно описывается ниже со ссылкой на прилагаемые чертежи и формы осуществления изобретения. Обратим внимание на то, что формы осуществления данного изобретения и их признаки могут быть объединены друг с другом, если при этом нет никакого конфликта.
Форма осуществления 1
Эта форма осуществления обеспечивает предпочтительный способ синхронизации данных. На фиг. 1 показана блок-схема способа синхронизации данных согласно форме осуществления данного изобретения. Как показано на фиг. 1, способ синхронизации данных включает шаги с S102 по S106.
Шаг S102: Облачный сервер принимает запрос на синхронизацию данных, переданный подвижным терминалом, причем запрос на синхронизацию содержит идентификатор подвижного терминала, время синхронизации данных подвижным терминалом в прошлый раз и учетную запись синхронизации для синхронизации данных между подвижным терминалом и облачным сервером.
Шаг S104: Облачный сервер определяет, что время операции записи подлежащих синхронизации данных больше чем время синхронизации данных подвижным терминалом в прошлый раз, причем подлежащие синхронизации данные являются данными, которые соответствуют идентификатору в учетной записи синхронизации и находятся на облачном сервере.
Шаг S106: Подлежащие синхронизации данные синхронизируются между облачным сервером и подвижным терминалом.
Посредством вышеупомянутых шагов облачный сервер принимает запрос на синхронизацию данных, переданный подвижным терминалом, причем запрос на синхронизацию содержит идентификатор подвижного терминала, время синхронизации данных подвижным терминалом в прошлый раз и учетную запись синхронизации для синхронизации данных между подвижным терминалом и облачным сервером, чтобы гарантировать, что подвижный терминал является терминалом в учетной записи; облачный сервер определяет, что измененные данные на облачном сервере являются подлежащими синхронизации данными посредством определения, что время операции записи подлежащих синхронизации данных больше чем время, когда данные были синхронизированы мобильным телефоном в прошлый раз, и в то же самое время подлежащие синхронизации данные являются данными, соответствующими идентификатору подвижного терминала в учетной записи синхронизации на облачном сервере, то есть, подлежащие синхронизации данные могут быть синхронизированы только подвижным терминалом с идентификатором, который соответствует подлежащим синхронизации данным. Это решает проблемы, состоящие в том, что трафик, передаваемый во время синхронизации данных, возрастает, и потребление ресурсов в облаке также увеличивается. Эти проблемы вызываются синхронизацией данных множества подвижных терминалов в одной и той же учетной записи. Таким образом сокращается передаваемый трафик, вызванный синхронизацией данных, сокращается потребление ресурсов облачного сервера и облегчается удовлетворение разнообразных требований пользователей.
Чтобы точно передавать в подвижный терминал подлежащие синхронизации данные, в этой предпочтительной форме осуществления предлагается способ, в котором облачный сервер определяет, что время операции записи подлежащих синхронизации данных больше чем время, когда данные были синхронизированы подвижным терминалом в прошлый раз. Например, облачный сервер определяет, что время операции записи подлежащих синхронизации данных, относящихся к заранее заданной службе, больше чем время синхронизации данных подвижным терминалом в прошлый раз, чтобы отличить измененные данные на облачном сервере в отношении этого подвижного терминала, и передает подлежащие синхронизации данные заранее заданной службы в подвижный терминал, чтобы гарантировать, что подлежащие синхронизации данные, которые передаются на подвижный терминал, являются данными на облачном сервере, которые были изменены в отношении этого подвижного терминала.
Чтобы реализовать двунаправленную синхронизацию данных между облачным сервером и подвижным терминалом, в этой форме осуществления изобретения предлагается предпочтительный способ синхронизации измененных данных на стороне подвижного терминала для облачного сервера. Например, запрос на синхронизацию данных, который принимается облачным сервером и передан подвижным терминалом, содержит измененные данные подвижного терминала и информацию об атрибуте измененных данных, причем информация об атрибуте включает: совместно используемые или монопольно используемые. В этой предпочтительной форме осуществления подвижный терминал передает измененные данные на этот облачный сервер посредством запроса на синхронизацию данных и передает информацию об атрибуте измененных данных, например, являются ли измененные данные совместно используемыми (общими) данными, то есть, могут ли измененные данные быть синхронизированы всеми подвижными терминалами в вышеупомянутой учетной записи синхронизации, чтобы понять, что данные синхронизации могут быть синхронизированы некоторыми из подвижных терминалов в учетной записи синхронизации.
Каждый раз, когда устройство синхронизируется с облаком, синхронизируется только контент измененных данных стороны устройства и/или облака, и сообщение запроса на синхронизацию, передаваемое устройством, каждый раз несет следующий контент: идентификатор устройства (deviceID), учетную запись, пароль, synId, измененные данные на стороне устройства и тип операции над данными, причем, если измененные данные являются добавляемыми данными, то вышеупомянутое сообщение запроса на синхронизацию содержит также идентификатор "share", чтобы идентифицировать, разрешено ли совместно использовать добавляемые данные, и если разрешено совместно использовать добавляемые данные, то тогда облачный сервер может по умолчанию совместно использовать данные со всеми устройствами в учетной записи, а если не разрешено совместно использовать добавляемые данные, тогда только устройству, которое выдает данный запрос на синхронизацию, позволяется синхронизировать добавляемые данные. Понятно, что пользователь может также установить на стороне портала определенные устройства, которые могут совместно использовать добавляемые данные.
Чтобы удовлетворять требования различных операций над измененными данными, в этой предпочтительной форме осуществления облачный сервер сначала получает тип операции над измененными данными, и выполняет операции над измененными данными согласно типу операции, например, типом операции может быть добавление, удаление и модификация, чтобы реализовать синхронизацию измененных данных на сервере облака посредством различных операций. Если типом операции является добавление, то облачный сервер добавляет измененные данные на облачный сервер и устанавливает время операции записи измененных данных, которые добавляются, равным времени операции добавления, выполняемой в настоящее время; если типом операции является удаление или модификация, то облачный сервер определяет, является ли атрибут данных, который соответствует измененным данным и записывается облачным сервером, совместно используемыми, чтобы определить, имеет ли подвижный терминал право выполнить операцию удаления или модификации над измененными данными; если результат определения - да, то соответствующие данные на облачном сервере удаляются или модифицируются, и время операции записи данных обновляется так, чтобы быть равным времени операции удаления или операции модификации, выполняемой в настоящее время.
Чтобы гарантировать устойчивость системы, когда облачный сервер и подвижный терминал одновременно инициируют синхронизацию подлежащих синхронизации данных: если типом операции является удаление или модификация, то подвижный терминал и портал облачного сервера одновременно выдают запрос на удаление или модификацию измененных данных, и облачный сервер выполняет соответствующую операцию над измененными данными согласно порядку приоритетов подвижного терминала и портала облачного сервера. Например, когда подвижный терминал A запрашивает выполнить операцию удаления записи ss, в то время как портал облачного сервера запрашивает выполнить операцию модификации записи ss, соответствующая операция выполняется согласно тому, выше ли приоритет подвижного терминала A, или выше ли приоритет портала облачного сервера, который установлен пользователем, и если приоритет подвижного терминала A выше, то запись ss удаляется с облачного сервера, а если приоритет портала облачного сервера выше, то запись ss, модифицированная облачным сервером, возвращается в терминал для синхронизации. Конечно, "одновременно" здесь относится к одной и той же секунде текущего времени, потому что время измеряется с точностью до секунды, и подвижный терминал и портал облачного сервера могут инициировать синхронизацию одних и тех же данных в одну секунду.
Чтобы дополнительно гарантировать устойчивость системы, облачный сервер синхронизируется с множеством подвижных терминалов поочередно, когда множество подвижных терминалов инициирует синхронизацию подлежащих синхронизации данных. Например, когда подвижный терминал A запрашивает выполнение операции удаления записи ss, подвижный терминал B запрашивает выполнение операции модификации записи ss, и если идентификаторы SynId (эквивалентны последнему разу, когда данные были синхронизированы подвижным терминалом), сохраненные A и B, в настоящее время являются одинаковыми, то есть состояния данных A и B после последней синхронизации являются согласованными, и затем подвижный терминал A и подвижный терминал B инициируют синхронизацию с облачным сервером одновременно, облачный сервер выполняет последовательную операцию над данными ss, то есть выполняет соответствующие операции над данными ss поочередно согласно запросам операций подвижного терминала A и подвижного терминала B, таким образом гарантируя устойчивость системы. Конечно, "одновременно" относится здесь к одной и той же секунде текущего времени, так как время измеряется с точностью до секунды, и множество подвижных терминалов, возможно, инициировало синхронизацию тех же самых данных в одну секунду, применяется способ локального времени + подсчет, чтобы различать очередность для каждого подвижного терминала на выдачу запроса, то есть локальное время плюс подсчет калькулятора. Например, время для первого терминала, который запрашивает синхронизацию для выдачи запроса в текущий момент, равняется текущему времени + 1, время для второго терминала, который запрашивает синхронизацию для выдачи запроса, равняется текущему времени + 2, и т.д., чтобы различать между множеством терминалов, одновременно последовательно выдающих запросы в течение одной секунды.
Чтобы экономить область памяти сервера, дополнительный процессор облачного сервера может очищать релевантную информацию о недопустимом устройстве посредством подпроцесса очистки, например облачный сервер проверяет, превышает ли интервал между device_timestamp (равнозначно последнему времени, когда подвижный терминал синхронизировал данные с облачным сервером) каждого устройства в каждой учетной записи и текущим временем expiretime (равнозначно заданному интервалу времени), и если да, то устройство будет не в состоянии синхронизироваться в учетной записи, и подпроцесс очистки может удалить релевантную информацию об устройстве с облачного сервера.
Ниже приводится подробное описание каждой из вышеупомянутых предпочтительных форм осуществления вместе с прилагаемыми чертежами и примерами.
Чтобы облегчить реализацию вышеупомянутого способа синхронизации данных, может быть принято управление в форме таблиц, например, таблица данных для управления синхронизацией и таблица данных службы каждой службы может быть установлена на стороне сервера. Возьмем синхронизацию sms (short message service - службы передачи коротких сообщений) и данных изображений, например, как показано на фиг. 2, тогда таблица данных для управления синхронизацией может содержать, но не ограничивается этим, следующую информацию:
Поле userInfo: ID учетной записи (равнозначен учетной записи синхронизации).
Поле expiretime (равнозначно заданному интервалу времени): время истечения учетной записи. Если интервал, в котором некоторое устройство не было синхронизировано в течение долгого времени в вышеупомянутой учетной записи, превышает время поля expiretime, то тогда устройство будет не в состоянии синхронизироваться в учетной записи, и чтобы сэкономить область памяти сервера, релевантные данные устройства очищаются. Когда устройство, которое было не в состоянии синхронизироваться, снова начинает синхронизацию с сервером посредством вышеупомянутой учетной записи, требуется восстанавливать синхронизацию всех записей всех служб.
sms_synId (равнозначен последнему разу, когда подвижный терминал синхронизировал данные коротких сообщений с облачным сервером): ID синхронизации последней операции службы передачи коротких сообщений.
pic_SynId (равнозначен последнему разу, когда подвижный терминал синхронизировал данные изображения с облачным сервером): ID синхронизации последней операции службы изображений.
Предпочтительно, возможно дополнительное поле XX_synId (равнозначен последнему разу, когда подвижный терминал синхронизировал данные с облачным сервером) согласно фактическим службам, например, для службы контактов полем является contact_SynId. Вышеупомянутый идентификатор синхронизации (равнозначен последнему разу, когда подвижный терминал синхронизировал данные) состоит из: time + calculator, где time - время, когда выполняется текущая операция синхронизации. Поскольку время измеряется с точностью до секунды, и множество подвижных терминалов, возможно, инициируют синхронизацию одних и тех же данных в одну и ту же секунду, принимается способ local time + calculator, то есть локальное время плюс подсчет калькулятора, чтобы отличить порядок для каждого подвижного терминала на выдачу запроса. Например, CurrentSynId первого терминала, который запрашивает синхронизацию в текущее время, представляет собой текущее время + 1, CurrentSynId второго терминала, который запрашивает синхронизацию в текущее время, представляет собой текущее время + 2 и т.д., чтобы различать между множеством терминалов, одновременно выдающих запросы синхронизации, поочередно в одну секунду.
device_info: запись всех устройств, синхронизируемых в учетной записи. Поле device_info (устройства в одной и той же учетной записи) содержит: поле device_id (равнозначно идентификатору подвижного терминала) и поле device_timestamp (равнозначно времени, когда подвижный терминал синхронизировал данные в последний раз), причем поле device_id - идентификатор устройства, и если подвижный терминал - мобильный телефон, то поле device_id может быть номером международного идентификатора мобильного оборудования (International Mobile Equipment Identity, IMEI); и поле device_timestamp - отметка времени последней синхронизации устройства.
Каждая служба имеет по меньшей мере одну таблицу данных службы, как показано на фиг. 3. Таблица данных службы содержит, но не ограничивается этим, следующую информацию:
ObjectID: ID каждой записи (данные, подлежащие синхронизации).
Countname: ID учетной записи, которой принадлежит запись.
row_timestamp (равнозначно времени операции записи подлежащих синхронизации данных): время самой последней модификации записи.
op_index: тип самой последней операции записи, который может быть разделен на "0" - add (добавление), "1" - change (модификация), и "2" - delete (удаление).
ShareDevice: сохранение идентификатора устройства, которое может совместно использовать запись.
Понятно, что вышеупомянутая таблица данных службы является только предпочтительным примером, и данное изобретение не ограничено этим. Конкретные данные, записываемые в вышеупомянутую таблицу данных службы, также могут добавлять другие поля в таблицу.
Во время синхронизации, которая выполняется посредством вышеупомянутой таблицы данных для управления синхронизацией и таблицы данных службы каждой службы, могут выполняться следующие операции: сначала создание currentSynId согласно текущему времени + калькулятор; в процессе синхронизации сначала выполнение запроса на изменение данных, переданного стороной мобильного телефона, и обновление измененных данных в таблице данных службы в облаке; в то же самое время обновление row_timestamp в таблице данных службы, чтобы оно стало равным значению currentSynId. Если типом операции над измененными данными является добавление и атрибут share добавляемых данных является истинным, то разрешается их совместное использование, и облако сохраняет все идентификаторы device_id в device_info в таблице данных для управления синхронизацией и записывает их в ShareDevice в таблице данных службы, то есть запись может совместно использоваться всеми устройствами в учетной записи; а если атрибут share является ложным (false), то совместное использование не разрешается, и ShareDevice в таблице данных службы сохраняет deviceID только того устройства, которое выдало данный запрос на синхронизацию. Если типом операции над данными является модификация или удаление, то deviceID устройства, выдающего данный запрос на синхронизацию, будет сопоставлен с идентификаторами deviceID в ShareDevice; если совпадение отсутствует, то это указывает, что терминал не имеет права обновить эту запись данных, и возвратит измененные данные на стороне облака в терминал после того, как измененные данные, которые запрашивает терминал, обновляются для облака, причем если synId, переносимый в сообщении запроса на синхронизацию, меньше чем поле xx_synId, то это указывает, что данные на сервере были изменены относительно данных службы в учетной записи устройства, и в этот момент измененные данные на стороне облачного сервера необходимо передать устройству. Все записи в таблице данных службы просматриваются, и записи, у которых synId меньше чем row_timestamp и deviceID совпадает с ShareDevice, выбираются, причем выполняется специальная обработка тех записей, у которых численное значение row_timestamp равняется значению currentSynId, то есть записи, у которых synId меньше чем row_timestamp, и deviceID соответствует ShareDevice, передаются в устройство; если и портал облака и сторона мобильного телефона одновременно изменяют неуникальное поле, то добавляется поле расширения, то есть поле, изменяемое порталом облака, и сторона мобильного телефона обновляется в таблице данных службы в облаке; если и портал облака, и сторона мобильного телефона изменяют уникальное поле одновременно, можно определить, перезаписать ли запись, модифицированную порталом облака, данными, модифицированными стороной мобильного телефона, согласно приоритетам портала облака и стороны мобильного телефона, установленным пользователем, и затем возвратить измененные данные и currentSynId на сторону мобильного телефона, и сторона мобильного телефона продолжит использовать численное значение этого currentSynId, когда выдает запрос на синхронизацию в следующий раз, при этом она берет численное значение currentSynId в качестве SynId и передает его на сервер.
Ниже будет приведено подробное описание вышеупомянутого способа синхронизации данных совместно с прилагаемыми чертежами, при этом таблица данных службы контактов стороны мобильного телефона взята в качестве таблицы данных службы, как показано на фиг. 4. Способ синхронизации данных включает шаги с шага S402 по шаг S448.
Шаг S402: Когда пользователь выдает запрос на синхронизацию, сообщение запроса на синхронизацию передается облаку, это сообщение запроса на синхронизацию содержит измененные данные на стороне мобильного телефона (все данные со стороны терминала передаются облаку во время первой синхронизации, и только измененные данные на стороне терминала передаются облаку во время не первой синхронизации), тип операции над данными, SynId, deviceID, учетную запись и пароль. Если устройство синхронизируется впервые, то SynId равен 0, а если устройство синхронизируется не впервые, то SynId самой последней синхронизации будет передаваться на сервер. Сторона сервера конфигурируется таблицей данных для управления синхронизацией и таблицей данных службы контактов. Таблица данных службы, как показано на фиг. 5, содержит ObjectID, Countname, row_timestamp, op_index, имя контакта, номер контакта, ShareDevice, и Email (адрес электронной почты) контакта, а также другие поля, и когда таблица данных создается впервые, в таблице данных службы первоначально нет никаких данных.
Шаг S404: После того, как облачный сервер принимает сообщение запроса на синхронизацию, проверяется имя пользователя и пароль.
Шаг S406: После того, как имя пользователя и пароль прошли проверку (верификацию), проверяется законность deviceID и synId. Если они законны, выполняется переход к шагу S408, а в противном случае обратно передается сообщение, что запрос на синхронизацию является недопустимым для терминала, причем способ проверки deviceID и synId является следующим: deviceID сравнивается с идентификаторами deviceID в device_info в учетной записи. Если соответствие успешно, то это указывает, что устройство законно, и если synId, переносимый в сообщении запроса на синхронизацию, меньше или равен полю XX_synId, то запрашиваемый synId является законным.
Шаг S408: Генерируется currentSynId (текущий идентификатор синхронизации), и политикой для генерации currentSynId является: локальное время + калькулятор, то есть локальное время плюс подсчет калькулятора, например, currentSynId первого терминала, который запрашивает синхронизацию в текущий момент, равен текущему времени + 1, и currentSynId второго терминала, который запрашивает синхронизацию в текущий момент, равен текущему времени + 2 и т.д., чтобы различать между множеством терминалов, одновременно выдающих запросы синхронизации в течение одной секунды.
Шаг S410: Просматривается каждая часть данных записи, переносимая в сообщении запроса на синхронизацию, переданного терминалом.
Шаг S412: Определяется тип операции, соответствующий каждой части данных записи. Если типом операции является добавление, то выполняется переход к шагу S414, если типом операции является удаление, то выполняется переход к шагу S424, и если типом операции является изменение, то выполняется переход к шагу S440.
Шаг S414: Если типом операции, соответствующей данным, является операция добавления, определяется, является ли истинным share (идентификатор совместного использования), переносимый в сообщении запроса на синхронизацию, если он является истинным, выполняется переход к шагу S416, а если share не является истинным, то есть share является ложным, выполняется переход к шагу S418.
Шаг S416: Если share является истинным, то все идентификаторы device_id в device_info сохраняются в ShareDevice записи в таблице данных службы, то есть всем терминалам в учетной записи разрешается совместно использовать данные записи.
Шаг S418: Если share является ложным, это указывает, что данные записи не являются совместно используемыми (общими), и ShareDevice (поле идентификаторов устройств, совместно использующих данные) записи в таблице данных службы сохраняет deviceID только того устройства, которое выдало данный запрос на синхронизацию, то есть только этому устройству разрешает синхронизировать данные записи.
Шаг S420: Данные записи добавляются в таблицу данных службы в облаке.
Шаг S422: row_timestamp (поле ID времени операции) данных записи в таблице данных службы устанавливаетс