ТИРАЖИРОВАНИЕ ДАННЫХ
DATA REPLICATION

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к тиражированию данных, в частности к тиражированию данных в одноранговой сети.
УРОВЕНЬ ТЕХНИКИ
В одноранговых сетях, таких как приспосабливающиеся сети мобильных устройств, устройства входят в контакт посредством связи друг с другом при перемещении двух пользователей, имеющих при себе эти устройства, в зону действия. Когда это происходит, устройства могут копировать элементы данных на другое устройство. Чем более широко тиражируется элемент данных, то есть чем больше количество устройств, которые хранят элемент данных, тем больше вероятность того, что элемент данных будет доступным при запросе другим устройством, находящимся в зоне действия. Таким образом, с одной стороны, наличие данных широко тиражируемых на одной стороне, может быть полезным, поскольку в таком случае легче получить доступ. Однако, с другой стороны, память имеет ограниченный ресурс.
Следовательно, решение копировать или иначе передавать данные при вхождении двух устройств в зону действия, может иметь большое значение.
Согласно одному аспекту настоящего изобретения предоставлен способ тиражирования данных в одноранговой сети, включающей в себя множество мобильных телефонов, причем каждое устройство хранит множество элементов данных, при этом способ включает в себя этапы, на которых: формируют соединение между первым устройством и вторым устройством; и передают копию элемента данных, которая хранится в первом устройстве, во второе устройство в зависимости от (а) степени, с которой этот элемент данных запрашивается на других устройствах, и (b) степени, с которой этот элемент данных тиражируется на других устройствах.
Так как передача зависит как от (а) степени, с которой этот элемент данных запрашивается на других устройствах, так и (b) от степени, с которой этот элемент данных тиражируется на других устройствах, баланс достигается между необходимостью широко тиражировать данные и необходимостью экономить память.
Согласно другому аспекту настоящего изобретения обеспечено мобильное устройство, содержащее: процессорное средство для обработки данных; память для хранения множества элементов данных; и каскад передачи для передачи и приема элементов данных, причем каскад обработки выполнен с возможностью принятия решения относительно передачи элемента данных в зависимости от указания (а) степени, с которой этот элемент данных запрашивается на других устройствах, и (b) степени, с которой этот элемент данных тиражируется на других устройствах.
Далее настоящее изобретение будет описано только в качестве примера и со ссылкой на следующие чертежи, на которых:
на фиг. 1 показана система 10 связи согласно настоящему изобретению;
на фиг. 2 показано мобильное устройство;
на фиг. 3 показан сервер отслеживания.
На фиг. 1 показана система 10 связи, содержащая множество мобильных устройств 12a, 12b, 12c, 12d и сервер 14 отслеживания. Одно из мобильных устройств 12 более подробно показано на фиг. 2. Каждое из мобильных устройств 12 оборудовано модулем 16 ближней связи для поддержания связи в режиме ближней беспроводной связи, например, использующем протокол Bluetooth. Каждое устройство также имеет модуль 18 дальней связи для поддержания связи в режиме дальней беспроводной связи с одной из множества базовых станций проводной сети (не показано), использующей, например, GSM так, чтобы формировать соответствующий канал 20 связи между сервером 14 отслеживания и каждым устройством. Как правило, мобильные устройства будут представлять собой портативные устройства с функциональными возможностями телефонной связи. Проводная сеть может быть частью Интернета.
Мобильные устройства могут поддерживать связь друг с другом опосредованно через проводную сеть с использованием своих модулей 18 дальней связи. Однако, когда мобильные устройства находятся в зоне действия друг от друга, они могут также поддерживать связь непосредственно друг с другом в режиме ближней связи по беспроводной линии 19 связи ближней связи, при этом дальность действия составляет типично несколько метров, обычно менее 10 м. Так как мобильные устройства переносятся своими соответствующими пользователями, различные устройства перемещаются в и из зоны действия друг друга так, что на сетевом уровне соединения между устройствами изменяются во времени таким образом, что они могут быть случайными, неопределенными или по меньшей мере трудными для предсказания. То есть соединения между устройствами могут формироваться произвольным образом.
Когда два мобильных устройства перемещаются в зону действия друг друга, то есть входят в контакт, каждое устройство может осуществлять обмен данными приспосабливающимся образом друг с другом: то есть каждое устройство может использовать возможность, предоставленную за счет близости другого устройства. Таким образом, мобильные устройства можно рассматривать как формирующие приспосабливающуюся сеть или ad hoc сеть, где каждое устройство действует как равноправный узел в сети.
Возвращаясь к фиг. 2, каждое мобильное устройство 12 имеет блок 22 обработки данных, который оперативно соединен с модулями 16, 18 дальней и ближней связи, чтобы обрабатывать данные, полученные из них, и подготавливать данные для пересылки. Каскад обработки данных имеет процессорное средство 24, а также память 26 для соответственного выполнения операций и хранения данных, включающих в себя данные контента.
В режиме дальней связи каждое мобильное устройство может подсоединиться к Интернет через базовую станцию. В пределах Интернет расположены один или более серверов (не показаны), из которых мобильные устройства могут осуществлять доступ к контенту (альтернативно или дополнительно мобильные устройства могут иметь дополнительный режим связи, такой как Ethernet, или другое электрическое соединение, или другой режим беспроводной связи, такой как WiFi для соединения с Интернетом). Таким образом, пользователи могут загружать контент, такой как мультимедийные данные (например, программу, содержащую видеоданные, аудиоданные или и то и другое) из Интернет в режиме дальней связи и в дальнейшем пересылать контент между собой приспосабливающимся образом с использованием ближней связи.
Рассматривая систему 10 связи в качестве приспосабливающейся сети, сформированной мобильными устройствами, которые поддерживают связь между собой, могут возникнуть ситуации, в которых заданному устройству (или его пользователю) необходимо извлечь конкретный файл. Ясно, чем больше количество других устройств, хранящих файл, тем больше вероятность того, что заданное устройство войдет в контакт с другим устройством, хранящим этот файл. Следовательно, в среднем время, необходимое для извлечения файла заданным устройством, уменьшается, если копии этого файла хранятся на многих устройствах. Однако из-за ограниченности памяти, тиражирование или хранение файла на многочисленных различных устройствах означает то, что будет меньше пространства, оставшегося для хранения других файлов.
Кроме того, возможно, что некоторые файлы будут недостаточно тиражированы, то есть спрос на эти файлы будет выше их предложения (как это выражено степенью тиражирования для этих файлов). Напротив, возможно, что другие файлы будут чрезмерно тиражированы, то есть предложение превысит спрос.
В одном варианте осуществления предложение в зависимости от спроса контролируют для каждого файла путем отслеживания спроса (запросов каждых файлов) и предложения - то есть количества копий файлов, сохраненных в системе. Это можно выполнить централизованным способом в сервере 14 отслеживания или распределенным способом в каждом устройстве 12. Предложение по отношению к спросу выражается значением передачи. Когда значение передачи равно нулю, считается, что это нейтральная точка. Когда значение передачи является положительным, считается, что файл недостаточно тиражирован или является редким, тогда как отрицательное значение показывает чрезмерное тиражирование. Значение передачи, которое также называется здесь как "значение избытка запросов", можно рассматривать как индикацию избытка запросов по отношению к тиражированию файла.
Решение относительно того, передавать или копировать файл из одного устройства в другое, принимается в зависимости от этого значения передачи или, эквивалентно, на основании предложения по отношению к спросу. Так как значение передачи файла данных представляет собой спрос по отношению к предложению этого файла, использование значений передачи при определении того, следует ли копировать файлы, которые пересылаются из одного устройства в другое, приводит обычно к тому, что файлы, которые недостаточно тиражированы, больше тиражируются, и файлы, которые чрезмерно тиражированы, меньше тиражируются.
Кроме того, так как число копий заданного файла данных в системе контролируется, например, с помощью устройства счетчика, вход и выход устройств, хранящих файл, в и из системы можно учитывать, например, путем увеличения или уменьшения значения счетчика.
Более подробно сервер 14 отслеживания показан на фиг. 3. Сервер 14 отслеживания, процессор 28 и память 30 предназначены соответственно для обработки и хранения данных. Сервер отслеживания выполнен с возможностью хранения в памяти таблицы, в которой каждый файл, который хранится в системе, ассоциируется с его ID, который отображается как в (i) значение тиражирования, указывающее количество устройств, хранящих копии этого файла, так и (ii) значение запроса, указывающее количество запросов, которые были сделаны для этого файла.
В одном варианте осуществления, когда мобильное устройство запрашивает заданный файл из другого мобильного устройства, запрашивающее мобильное устройство пересылает сообщение обновления запроса в сервер отслеживания по каналу 20 связи. В ответ на это, сервер отслеживания обновляет значение запроса для этого файла путем увеличения значения на единицу. Аналогичным образом, когда устройство принимает копию файла из другого устройства, принимающее мобильное устройство пересылает сообщение обновления тиражирования в сервер отслеживания, в ответ на которое сервер отслеживания обновляет значение тиражирования для файла, который был скопирован, путем увеличения значения запроса на единицу. Подобным образом, если мобильное устройство удаляет файл, сообщение обновления пересылается в сервер отслеживания, позволяя серверу отслеживания уменьшить значение тиражирования для этого файла. Мобильное устройство, осуществляющее вход в систему, выполнено с возможностью пересылки сообщения обновления, информирующего сервер отслеживания о хранимых им файлах, в ответ на которое сервер отслеживания увеличивает значение тиражирования для каждого из этих файлов.
Таким образом, значения тиражирования для каждого файла можно рассматривать как отдельные счетчики, которые увеличивают или уменьшают свое значение в зависимости от того, копируется файл или удаляется. Значение запроса для каждого файла можно также рассматривать как счетчик, который увеличивает свое значение каждый раз, когда выполнятся запрос, при этом значение запроса время от времени сбрасывается.
Ниже проиллюстрирована ситуация, в которой два мобильных устройства, которые называются в дальнейшем как устройство А и устройство В, находятся в контакте посредством связи по линии ближней связи. Устройство А имеет файлы, помеченные как u, v и w, соответственно, которые хранятся в его памяти. Устройство А пытается получить файл z. Устройство В имеет файлы, помеченные как w, x и y, и пытается получить файл u. Сервер отслеживания содержит для каждого файла u, v, w, x, y, z оценки соответствующих значений p_u, p_v,..., p_z тиражирования и соответствующих значений q_u, q_v,..., q_zзапроса способом, упомянутым выше. Сервер отслеживания осуществляет широковещание текущих значений частоты и текущих значений тиражирования в своей таблице. Значения, соответствующие файлу или файлам, которые хранит мобильное устройство, захватываются этим устройством и загружаются в память для дальнейшего использования их при принятии решения относительно создания копии файла или замены.
При вхождении в контакт устройств А и В выполняются следующие этапы.
Устройство А проверяет (путем пересылки сообщения в устройство В с целью определения), может ли устройство В предоставить желательный файл, то есть файл z. Поскольку устройство В не имеет файла z, оно возвращает отрицательный ответ, и устройство А выполняет следующие дальнейшие этапы.
Устройство А вычисляет избыточные запросы каждого файла, при этом количество имеет вид избыток_u=q_u- K p_u, избыток_v=q_v-K p_v,... для всех файлов, где К - номинальный размер кэш-памяти, в данном случае 3.
Устройство А затем определяет, существуют ли файлы, которые может предоставить устройство В, которые имеют больший уровень избыточных запросов, чем файлы, которые устройство А хранит в текущий момент времени.
В настоящем примере среди файлов, которые хранит устройство В, файл y представляет собой файл с самым большим избытком (избыток_y > избыток_w и > избыток_x). Файл u представляет собой файл с самым маленьким избытком среди файлов, которые хранит устройство А (избыток_u < избыток_v и < избыток_w). Устройство А выполнено с возможностью получения файла y из В и помещает его в свою память вместо файла u, если и только если избыток_y > избыток_u.
Если устройство А не имело запросов на файл устройства В, то устройство В будет следовать той же самой логике, которая была пояснена выше по отношению к устройству А. Однако, поскольку устройство А не имеет запросов на файл устройства В, устройство В просто загружает файл u и выходит из системы без обязательного обновления его значений тиражирования, или выполняет какое-либо другое обновление кэш-памяти, за исключением выгрузки произвольного файла для того, чтобы освободить пространство для получения желательного файла u.
Затем устройства А и В передают релевантные сообщения обновления в сервер отслеживания, указывающие, какие файлы были запрошены и какие файлы были скопированы для того, чтобы сервер отслеживания смог обновить свои значения тиражирования и запроса для каждого переданного и запрошенного файла.
Во втором варианте осуществления вместо централизованного хранения и обновления значений запроса и значений тиражирования отдельные устройства содержат свои собственные оценки для значений запроса и тиражирования своих файлов. Таким образом, вместо того, чтобы сервер отслеживания содержал значения p_u, p_v,..., p_z тиражирования и значения q_u, q_v,...,q_z запроса, устройство А будет поддерживать свои оценки этих значений. То есть для всех файлов u, v, w, x, y, z устройство A поддерживает в своей памяти оценки p_u(A), p_v(A),..., p_z(A) их значений тиражирования, и q_u(A), q_v(A), q_z(A) их значений запроса. Аналогичным образом, для всех файлов u, v, w, x, y, z устройство B поддерживает в своей памяти оценки p_u(B), p_v(B),..., p_z(B) их значений тиражирования и q_u(B), q_v(B),..., q_z(B) их значений запроса.
Этапы, выполняемые устройствами А и В при определении того, копировать ли файл, являются, по существу, такими же как и этапы, выполняемые в первом варианте осуществления. Однако, когда устройство А вычисляет избыточные запросы для каждого элемента, это выполняют с использованием оценок, которые поддерживает устройство А, вместо значений от сервера отслеживания. Аналогичным образом, если устройство В вычисляет избыточные запросы для каждого элемента, это выполняют с использованием оценок, поддерживаемых в устройстве В.
Помимо этого, после помещения в память файла y вместо u, устройство А будет обновлять свои оценки: например: p_u(A)=p_u(A)+r(0-p_u(A)), где r - заранее определенный параметр, и 0 введен постольку, поскольку обнаруженное устройство В не имеет элемента u,,... p_w(A)=p_w(A)+r(1-p_w(A)), где дополнительный член 1 введен постольку, поскольку обнаруженный пользователь В имеет элемент w, и аналогичные обновления выполняются для частот поступления запросов.
Хотя вышеприведенное описание относится к передаче файла, другие объекты данных можно передавать тем же самым образом; то есть те же самые соображения можно применять к другим объектам данных, таким как пакеты, объекты или части данных. Файл может содержать аудиовизуальные данные, то есть контент, такой как фильм. Однако, файл может представлять собой изображение, аудиоданные или другие данные.
В одном варианте осуществления используются оценки для того, чтобы оценить то, сколько пользователей хранят данный элемент данных или сколько пользователей запрашивают его. В одном варианте осуществления каждое мобильное устройство периодически передает в отчете эту информацию в сервер отслеживания (когда мобильные устройства входят или выходят из системы, или когда они изменяют свои контенты). Таким образом, сервер может отслеживать эти значения, тем самым уменьшая потребность в их оценке.
В другом варианте осуществления сервер периодически устанавливает контакт с/производит выборку небольшой части всех узлов, то есть мобильных устройств (скажем 1-10%) и производит опрос относительно того, что они хранят и что они запрашивают. Это позволяет серверу отслеживания оценить реальные значения.
Устройство отслеживания делает их общедоступными для пользователей, которые могут устанавливать контакт с сервером и узнавать эту информацию всякий раз, когда им необходимо это.
Подводя итог вышесказанному, можно привести следующие дополнительные комментарии: рассматривается сценарий, в котором каждый желает получить контент, сохраненный другими мобильными пользователями, то есть, так называемую мобильную одноранговую систему. Один из способов извлечения этого контента выполняется путем обнаружения другого пользователя, который хранит его, и извлечения его через беспроводную передачу данных (например, через WiFi или Bluetooth). Мобильные пользователи могут сразу выйти из системы после того, как они извлекли контент, который интересовал их.
В случае, когда два пользователя обнаруживают друг друга, но никто из них не хранит контент, который интересует другого пользователя, эти пользователи могут, тем не менее, осуществить обмен некоторого количества контента, который они хранят в настоящее время. Они могут сделать это с целью увеличения количества копий элемента контента, который является редким, тем самым позволяя другим пользователям быстро отыскивать его.
Это сопряжено со следующими вопросами: какие элементы контента являются редкими, и какие элементы контента являются избыточными в системе, и как необходимо использовать такую информацию для определения того, сколько мобильных пользователей должны обменяться контентом, когда они приспосабливающимся образом обнаруживают друг друга.
В частности, настоящая система осуществляет поиск с целью точного определения (а) способа идентификации того, какие элементы в системе являются "редкими", и (b) способа использования этой информации для того, чтобы сориентировать относительно того, как мобильные пользователи должны тиражировать контент, который они хранят, когда они обнаруживают других мобильных пользователей.
Предложенная система включает в себя устройство или модуль, который отслеживает, (а) сколько пользователей в настоящее время выполняют запрос данного элемента контента, и (b) сколько пользователей хранят этот элемент. Это устройство называется "устройством отслеживания". Устройство отслеживания использует эту информацию для того, чтобы ассоциировать численное значение с каждым элементом, запрашиваемым пользователями в настоящее время в системе. Положительное численное значение указывает, что элемент "недостаточно тиражирован" или является "редким". Отрицательное численное значение указывает, что элемент "чрезмерно тиражирован" или является "избыточным". Устройство отслеживания осуществляет широковещание численных значений мобильным пользователям. Мобильные пользователи используют в дальнейшем эти значения для того, чтобы определить то, следует ли им при встрече заменить один из элементов, которые они хранят, элементом, извлеченным пользователем, которого они встретили, или (наоборот) переслать один из своих элементов другому пользователю.
Как можно заметить из вышеизложенного, настоящие варианты осуществления относятся к тиражированию данных, в частности, к тиражированию данных в одноранговой сети мобильных устройств. Каждое устройство хранит множество элементов данных. Когда два устройства входят в зону действия, решение относительно того, тиражировать ли элемент данных принимается в зависимости от (а) степени, с которой этот элемент данных запрашивался другими устройствами, и (b) степени, с которой этот элемент данных тиражируется на другие устройства. Таким образом, учитывается как спрос, так и предложение на элемент данных.