способ, устройство и компьютерное программное изделие для определения сигнатур данных в сети динамически распределенных устройств
Классы МПК: | G06F11/14 обнаружение и исправление ошибок в данных с помощью избыточности операций,например с использованием различных последовательностей операций, приводящих к тому же результату |
Автор(ы): | БОЛДЫРЕВ Сергей (FI), ОЛИВЕР Айан (FI), ХОНКОЛА Юкка (FI) |
Патентообладатель(и): | Нокиа Корпорейшн (FI) |
Приоритеты: |
подача заявки:
2009-09-11 публикация патента:
10.01.2014 |
Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности обработки данных. Устройство для определения сигнатур данных в сети динамически распределенных устройств, содержащее процессор, сконфигурированный для приема первого запроса; генерации локального частичного замыкания данных, идентифицированных первым запросом; синтеза сигнатуры данных локального частичного замыкания, причем сигнатура данных представляет собой неприводимое полиномиальное выражение и ортогональна удаленным сигнатурам данных, генерированным на основе удаленных частичных замыканий; и сохранения сигнатуры данных в банке информации в пределах сети динамически распределенных устройств. 4 н. и 16 з.п. ф-лы, 3 ил.
Формула изобретения
1. Устройство для определения сигнатур данных в сети динамически распределенных устройств, содержащее процессор, сконфигурированный для:
приема первого запроса;
генерации локального частичного замыкания данных, идентифицированных первым запросом;
синтеза сигнатуры данных локального частичного замыкания, причем сигнатура данных представляет собой неприводимое полиномиальное выражение и ортогональна удаленным сигнатурам данных, генерированным на основе удаленных частичных замыканий; и
сохранения сигнатуры данных в банке информации в пределах сети динамически распределенных устройств.
2. Устройство по п.1, отличающееся тем, что процессор конфигурирован для синтеза сигнатуры данных с помощью расширений круговых полиномов.
3. Устройство по п.1 или 2, отличающееся тем, что процессор также конфигурирован для повторного синтеза сигнатуры данных в ответ на изменения данных, идентифицированных первым запросом.
4. Устройство по п.1 или 2, отличающееся тем, что процессор также конфигурирован для:
приема второго запроса;
генерации целевой сигнатуры на основе второго запроса;
определения местоположения по меньшей мере первой сигнатуры данных и второй сигнатуры данных на основе целевой сигнатуры, при этом первая сигнатура данных ортогональна второй сигнатуре данных; и
объединения первой сигнатуры данных со второй сигнатурой данных для генерации дедуктивной сигнатуры данных, при этом дедуктивная сигнатура данных представляет полное замыкание данных.
5. Устройство по п.4, отличающееся тем, что процессор также конфигурирован для преобразования дедуктивной сигнатуры данных в полное замыкание данных, удовлетворяющее запросу.
6. Устройство по п.4, отличающееся тем, что процессор, конфигурированный для определения местоположения первой сигнатуры данных и второй сигнатуры данных, также конфигурирован для приема первой сигнатуры данных из одного из множества процессоров, расположенных в сети динамически распределенных устройств.
7. Устройство по п.1 или 2, также содержащее запоминающее устройство, на котором хранятся доступные процессору инструкции машинно-читаемого программного кода, предназначенные для конфигурирования процессора.
8. Устройство по п.1 или 2, отличающееся тем, что оно представляет собой мобильный терминал.
9. Машинно-читаемый носитель информации, на котором хранятся инструкции исполняемого машинно-читаемого программного кода, конфигурированные для:
приема первого запроса;
генерации локального частичного замыкания данных, идентифицированных первым запросом;
синтеза сигнатуры данных локального частичного замыкания, причем сигнатура данных представляет собой неприводимое полиномиальное выражение и ортогональна удаленным сигнатурам данных, генерированным на основе удаленных частичных замыканий; и
сохранения сигнатуры данных в банке информации в пределах сети динамически распределенных устройств.
10. Машинно-читаемый носитель информации по п.9, отличающийся тем, что инструкции машинно-читаемого программного кода конфигурированы для синтеза сигнатуры данных с помощью расширений круговых полиномов.
11. Машинно-читаемый носитель информации по п.9 или 10, отличающийся тем, что инструкции машинно-читаемого программного кода также конфигурированы для повторного синтеза сигнатуры данных в ответ на изменения данных, идентифицированных первым запросом.
12. Машинно-читаемый носитель информации по п.9 или 10, отличающийся тем, что инструкции машинно-читаемого программного кода также конфигурированы для:
приема второго запроса;
генерации целевой сигнатуры на основе второго запроса;
определения местоположения по меньшей мере первой сигнатуры данных и второй сигнатуры данных на основе целевой сигнатуры, при этом первая сигнатура данных ортогональна второй сигнатуре данных; и
объединения первой сигнатуры данных со второй сигнатурой данных для генерации дедуктивной сигнатуры данных, при этом дедуктивная сигнатура данных является представлением полного замыкания данных.
13. Машинно-читаемый носитель информации по п.12, отличающийся тем, что инструкции машинно-читаемого программного кода также конфигурированы для преобразования дедуктивной сигнатуры данных в полное замыкание данных, удовлетворяющее запросу.
14. Способ определения сигнатур данных в сети динамически распределенных устройств, включающий:
прием первого запроса;
генерацию локального частичного замыкания данных, идентифицированных первым запросом;
выполняемый с помощью процессора синтез сигнатуры данных локального частичного замыкания, причем сигнатура данных представляет собой неприводимое полиномиальное выражение и ортогональна удаленным сигнатурам данных, генерированным на основе удаленных частичных замыканий; и
сохранение сигнатуры данных в банке информации в пределах сети динамически распределенных устройств.
15. Способ по п.14, отличающийся тем, что синтез сигнатуры данных включает выполнение синтеза сигнатуры данных с помощью расширений круговых полиномов.
16. Способ по п.14 или 15, включающий также повторный синтез сигнатуры данных в ответ на изменения данных, идентифицированных первым запросом.
17. Способ по п.14 или 15, включающий также:
прием второго запроса;
генерацию целевой сигнатуры на основе второго запроса;
определение местоположения по меньшей мере первой сигнатуры данных и второй сигнатуры данных на основе целевой сигнатуры, при этом первая сигнатура данных ортогональна второй сигнатуре данных; и
объединение первой сигнатуры данных со второй сигнатурой данных для генерации дедуктивной сигнатуры данных, при этом дедуктивная сигнатура данных является представлением полного замыкания данных.
18. Способ по п.17, включающий также преобразование дедуктивной сигнатуры данных в полное замыкание данных, удовлетворяющее запросу.
19. Устройство для определения сигнатур данных в сети динамически распределенных устройств, содержащее:
средства для приема первого запроса;
средства для генерации локального частичного замыкания данных, идентифицированных первым запросом;
средства для синтеза сигнатуры данных локального частичного замыкания, причем сигнатура данных представляет собой неприводимое полиномиальное выражение и ортогональна удаленным сигнатурам данных, генерированным на основе удаленных частичных замыканий; и
средства для сохранения сигнатуры данных в банке информации в пределах сети динамически распределенных устройств.
20. Устройство по п.19, содержащее также:
средства для приема второго запроса;
средства для генерации целевой сигнатуры на основе второго запроса;
средства для определения местоположения по меньшей мере первой сигнатуры данных и второй сигнатуры данных на основе целевой сигнатуры, при этом первая сигнатура данных ортогональна второй сигнатуре данных; и
средства для объединения первой сигнатуры данных со второй сигнатурой данных для генерации дедуктивной сигнатуры данных, при этом дедуктивная сигнатура данных является представлением полного замыкания данных.
Описание изобретения к патенту
ОБЛАСТЬ ТЕХНИКИ
Варианты осуществления настоящего изобретения в основном относятся к хранению и поиску информации в сети, а более конкретно, к способу, устройству и компьютерному программному изделию для определения сигнатур данных в сети динамически распределенных устройств.
УРОВЕНЬ ТЕХНИКИ
В эпоху развития современных средств связи огромное значение приобретают беспроводные сети. К настоящему времени разработаны технологии сетевого взаимодействия различных типов, а также разрабатываются новые технологии, в результате чего наблюдается беспрецедентное расширение компьютерных, телевизионных, телефонных и других сетей связи. По мере эволюции новых сетевых технологий запросы пользователей являются движущим фактором в области использования сетей. Целью развития беспроводных и мобильных технологий сетевого взаимодействия является постоянное удовлетворение соответствующих запросов пользователей и обеспечение при этом большего уровня гибкости и оперативности передачи информации.
По мере возрастания уровня гибкости и функциональности устройств мобильной связи продолжается развитие различных вариантов реализации технологий сетевого взаимодействия. Например, вследствие развития устройств мобильной связи становятся чрезвычайно практичными технологии, связанные с сетями динамически распределенных устройств или сетями с динамической архитектурой, такими как интеллектуальные пространства (smart space).
Интеллектуальное пространство может представлять собой среду, в которой некоторое количество устройств могут использовать общее представление о ресурсах и услугах, предоставляемых для доступа к информации в этой среде. В этом отношении интеллектуальные пространства могут обеспечить повышенное качество интерфейсов пользователя путем предоставления этим пользователям возможностей гибкого подключения новых устройств и доступа из любого устройства, расположенного в среде, ко всей или большей части информации, доступной в этой среде с множеством устройств.
Однако процесс обработки информации и маршрутизации сообщений в интеллектуальных пространствах может быть достаточно сложным, поскольку сетевая топология интеллектуальных пространств не является статической. В результате часто возникают трудности, связанные с процессом обработки информации в устройствах, расположенных в интеллектуальном пространстве, с учетом того, что устройства и связанная с ними информация в любой момент могут стать недоступными, поскольку устройство может выйти из области интеллектуального пространства.
Для обработки непредсказуемых отказов при доступе к информации в множестве обычных сетей интеллектуального пространства используются алгоритмы распределения. С помощью алгоритмов распределения можно разделять наборы данных на подмножества или частичные замыкания (partial closures) и распределять эти частичные замыкания по различным устройствам, расположенным в интеллектуальном пространстве. В соответствии с многочисленными традиционными решениями частичные замыкания могут генерироваться таким образом, чтобы для реконструкции исходного набора данных требовались не все частичные замыкания. Таким образом, отсутствует единая точка доступа к набору данных, и риск потери данных уменьшается, поскольку для восстановления всех данных достаточно использовать не все частичные замыкания данных.
Хотя использование алгоритмов распределения и частичных замыканий данных может устранить некоторые проблемы, связанные с обработкой информации, распределенной в интеллектуальном пространстве, по-прежнему требуется разработка алгоритмов передачи частичных замыканий данных и их использования. Вследствие размера (например, в байтах) частичного замыкания данных в процессе обращения к частичным замыканиям данных и использования этих данных может возрасти нагрузка в сети интеллектуального пространства и уменьшиться эффективность этого пространства из-за чрезмерного использования полосы пропускания и увеличения объема трафика, проходящего по каналам связи в среде интеллектуального пространства.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Далее описываются способ, устройство и компьютерное программное изделие, предназначенные для определения сигнатур данных с целью уменьшения нагрузки в интеллектуальном пространстве и других сетях динамически распределенных устройств с учетом использования распределенных данных. В этой связи примеры осуществления настоящего изобретения позволяют преобразовать или синтезировать частичные замыкания данных, например с помощью расширений круговых полиномов, в неприводимые полиномиальные выражения или в сигнатуры данных. Частичные замыкания данных могут быть локальными по отношению к устройству, находящемуся в сети динамически распределенных устройств, и могут генерироваться на основе принятого запроса. В некоторых примерах осуществления настоящего изобретения сигнатуры данных представляют собой пакеты данных меньшего размера по сравнению с частичными замыканиями данных, которые могут использоваться для воспроизведения полного или дедуктивного замыкания данных в процессе объединения и преобразования. В соответствии с различными примерами осуществления настоящего изобретения сигнатура данных может быть распределена в интеллектуальном пространстве с использованием технологий распределения, таких как равномерная или ассиметричная/неравномерная технология. Вследствие изменений, происходящих в сети динамически распределенных устройств, и/или связанных с этим изменений данных в этой сети сигнатуры данных могут регулярно или через неравномерные промежутки времени повторно синтезироваться или обновляться для обеспечения точности представления данных, на которых основаны эти сигнатуры. Сигнатуры данных могут далее сохраняться для простоты использования этих сигнатур с учетом последующих запросов.
Согласно различным примерам осуществления настоящего изобретения запрос можно принимать с использованием распределенных и обновленных сигнатур данных. Для генерации целевой сигнатуры запрос также может быть преобразован с помощью, например, расширений круговых полиномов. Целевая сигнатура затем может использоваться для нахождения в интеллектуальном пространстве или в другой динамически распределенной сети сигнатур данных, которые удовлетворяют целевой сигнатуре. Две или более ортогональные сигнатуры данных могут впоследствии объединяться для генерации дедуктивной сигнатуры данных. Дедуктивная сигнатура данных может представлять полное замыкание данных, требуемых в запросе. В некоторых примерах осуществления настоящего изобретения дедуктивная сигнатура данных может преобразовываться для генерации полного замыкания данных, удовлетворяющих запросу.
Целью некоторых примеров осуществления настоящего изобретения является уменьшение нагрузки на инфраструктуру связи сети динамически распределенных устройств за счет использования сигнатур данных относительно небольшого размера. Кроме того, согласно примерам осуществления настоящего изобретения оптимизируется баланс между приоритетной обработкой данных с учетом запроса (например, предварительный расчет замыканий данных) и динамическим созданием полных или дедуктивных замыканий данных. Кроме того, согласно примерам осуществления настоящего изобретения обеспечивается отслеживание соответствующих фрагментов данных в масштабируемых решениях. Помимо этого, согласно примерам осуществления настоящего изобретения также обеспечивается эффективность использования энергии вследствие пониженной нагрузки на инфраструктуру связи и благодаря сохранению данных. Примеры осуществления настоящего изобретения также не зависят от платформ, на которых реализованы устройства, и позволяют различным платформам устройств взаимодействовать в рамках ограничений предлагаемого решения.
Согласно примеру осуществления настоящего изобретения предлагается устройство для определения сигнатур данных. Типовое устройство может содержать процессор, который может быть сконфигурирован для приема первого запроса и генерации локального частичного замыкания данных, идентифицированных первым запросом. Процессор может быть также сконфигурирован для синтеза сигнатуры данных локального частичного замыкания. Сигнатура данных может представлять собой неприводимое полиномиальное выражение, и сигнатура данных может быть ортогональна удаленным сигнатурам данных, сгенерированным на основе удаленных частичных замыканий. Кроме того, процессор может быть сконфигурирован для сохранения сигнатуры данных в банке информации в пределах сети динамически распределенных устройств.
В другом примере осуществления настоящего изобретения предлагается компьютерное программное изделие для определения сигнатур данных. Типовое компьютерное программное изделие содержит по меньшей мере один машинно-читаемый носитель информации, на котором хранятся инструкции исполняемого машинно-читаемого программного кода. Инструкции исполняемого машинно-читаемого программного кода могут быть сконфигурированы для приема первого запроса и генерации локального частичного замыкания данных, идентифицируемых первым запросом. Инструкции исполняемого машинно-читаемого программного кода могут быть также сконфигурированы для синтеза сигнатуры данных локального частичного замыкания. Сигнатура данных может представлять собой неприводимое полиномиальное выражение, и сигнатура данных может быть ортогональна удаленным сигнатурам данных, генерированным на основе удаленных частичных замыканий. Кроме того, инструкции исполняемого машинно-читаемого программного кода могут быть сконфигурированы для сохранения сигнатуры данных в банке информации в пределах сети динамически распределенных устройств.
Согласно другому примеру осуществления настоящего изобретения предлагается способ для определения сигнатур данных. Способ включает прием первого запроса и генерацию локального частичного замыкания данных, идентифицированных первым запросом. Способ может также включать синтез сигнатуры данных локального частичного замыкания. Сигнатура данных может представлять собой неприводимое полиномиальное выражение, и сигнатура данных может быть ортогональна удаленным сигнатурам данных, сгенерированным на основе удаленных частичных замыканий. Кроме того, способ может также включать сохранение сигнатуры данных в банке информации в пределах сети динамически распределенных устройств.
Согласно еще одному примеру осуществления настоящего изобретения предлагается устройство для определения сигнатур данных. Типовое устройство содержит средства для приема первого запроса и средства для генерации локального частичного замыкания данных, идентифицированных первым запросом. Типовое устройство может также содержать средства для синтеза сигнатуры данных локального частичного замыкания. Сигнатура данных может представлять собой неприводимое полиномиальное выражение, и сигнатура данных может быть ортогональна удаленным сигнатурам данных, сгенерированным на основе удаленных частичных замыканий. Кроме того, типовое устройство может также содержать средства для сохранения сигнатуры данных в банке информации в пределах сети динамически распределенных устройств.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
В рамках общего описания настоящего изобретения используются ссылки на прилагаемые чертежи, на которых не обязательно соблюдается масштаб и на которых:
на фиг.1 показан алгоритм, иллюстрирующий способ определения сигнатур данных в соответствии с различными примерами осуществления настоящего изобретения;
на фиг.2 показана блок-схема устройства для определения и использования сигнатур данных в сети динамически распределенных устройств в соответствии с различными примерами осуществления настоящего изобретения; и
на фиг.3 показан алгоритм, иллюстрирующий способ определения и использования сигнатур данных в соответствии с различными примерами осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
Далее более подробно описываются варианты осуществления настоящего изобретения со ссылкой на прилагаемые чертежи, на которых показаны некоторые, но не все, варианты осуществления. Безусловно, изобретение может быть реализовано с использованием множества других вариантов, и возможности его реализации не ограничиваются приведенными в этом описании вариантами; а эти варианты осуществления настоящего изобретения приведены для того, чтобы раскрытие изобретения удовлетворяло требованиям законодательства. В этом описании одинаковые цифровые ссылки соответствуют одинаковым элементам. Далее, термины "данные", "содержимое", "информация" и подобные им термины могут использоваться взаимозаменяемо для указания на данные, которые можно передавать, принимать, обрабатывать и/или сохранять в соответствии с вариантами осуществления настоящего изобретения. Далее, термины "запрос", "сообщение" и подобные им термины могут использоваться взаимозаменяемо для указания на взаимодействие, осуществляемое в интеллектуальном пространстве в соответствии с вариантами осуществления настоящего изобретения. В этом описании термин "локальный", употребляемый по отношению к устройству, относится к объекту, расположенному в этом же устройстве, а термин "удаленный", употребляемый по отношению к устройству, относится к объекту, расположенному вне этого устройства и, возможно, в отдельном устройстве, доступ к которому может осуществляться через сеть. Кроме того, в этом описании термин "сообщение" и подобные ему термины могут использоваться взаимозаменяемо для указания на связь, выполняемую в интеллектуальном пространстве в соответствии с вариантами осуществления настоящего изобретения. Кроме того, термин "типовой", используемый в этом описании, не предполагает каких-либо качественных оценок, а служит только для иллюстрации приводимого примера.
Архитектура интеллектуального пространства или других сетей динамически распределенных устройств может быть определена как динамическая, то есть в этом случае сеть распределенных устройств имеет динамическую топологию, в соответствии с которой любое устройство в любой момент времени может покидать пределы сети и появляться в сети. В некоторых примерах осуществления настоящего изобретения интеллектуальное пространство может содержать узлы и банки информации.
Узлы могут представлять собой действующих лиц в интеллектуальном пространстве, таких как приложения или другие элементы, которые запрашивают данные или обмениваются данными с помощью, например, запросов. В этом отношении узел может представлять собой любое приложение или часть приложения, выполняемого устройством, подключенным к интеллектуальному пространству. Узел может быть осведомлен о других узлах интеллектуального пространства, таких как смежные узлы. Приложением узла может являться любое приложение, которое может выполнять сохранение, поиск, обработку, передачу и прием информации. В различных вариантах осуществления настоящего изобретения узел может представлять приложения, выполняемые различными устройствами, например, в некоторых примерах осуществления настоящего изобретения функция узла может выполняться одним и тем же устройством, или одно устройство может выполнять функции множества узлов. Кроме того, в некоторых вариантах осуществления настоящего изобретения один узел может быть реализован несколькими устройствами, так что устройства совместно используют этот узел.
Узел может содержать внешний интерфейс, интерфейс хранения информации узла и задачу. Внешний интерфейс можно рассматривать как средство взаимодействия узла с внешней средой (например, с пользователем). Интерфейс хранения информации узла может использоваться для передачи информации в банк информации и поиска информации в этом банке через интеллектуальное пространство. Задача может определять взаимоотношения между внешним интерфейсом и интерфейсом хранения информации узла. Например, если пользователю требуется найти некоторую информацию в банке информации и записать ее в узел, то может быть генерирована задача поиска (например, сообщение с запросом). Узел может взаимодействовать с банком информации различным образом. Узел может записывать информацию, удалять/перемешать информацию, запрашивать информацию, подписываться на использование банка информации посредством постоянного запроса (например, с помощью подписки) и отменять такие подписки (например, путем отказа от подписки). Различные типы взаимодействия между узлами и банками информации, в целом, можно определить как запросы. Узел через интеллектуальное пространство может передавать запросы в банк информации и принимать информацию из такого банка. Узел в общем может быть осведомлен об интеллектуальном пространстве, но ему не требуется иметь сведения о возможностях соединения внутри интеллектуального пространства.
Банки информации интеллектуального пространства могут представлять собой пассивные объекты в интеллектуальном пространстве, в которых хранятся данные. В этом отношении банк информации в интеллектуальном пространстве может рассматриваться по своей природе как носитель информации свободного формата, для реализации которого используются семантические ресурсы, веб-ресурсы или информационные ресурсы пространства. Любое устройство, оснащенное перезаписываемой памятью и подключенное к интеллектуальному пространству, может выполнять функции банка информации. Устройства, выполняющие функции банка информации, способны сохранять, искать, вычислять, передавать и принимать информацию. Соответственно в некоторых вариантах осуществления настоящего изобретения банк информации может представлять собой логический объект, описывающий местоположение, в котором может храниться информация. В соответствии с различными вариантами осуществления настоящего изобретения банк информации может распределяться по множеству устройств. Банки информации могут сохранять информацию, связанную с интеллектуальным пространством, и информацию, доступную через интеллектуальное пространство.
Поскольку банки информации могут быть реализованы с помощью любого устройства, подключаемого к интеллектуальному пространству, данные интеллектуального пространства могут быть распределены или рассредоточены в интеллектуальном пространстве по различным устройствам хранения информации. В этом отношении данные в интеллектуальном пространстве могут обрабатываться с помощью алгоритма распределения. Для распределения данных между банками информации в интеллектуальном пространстве может использоваться любой известный алгоритм распределения (например, частичные замыкания данных, сигнатуры данных и т.д.).
В некоторых примерах осуществления настоящего изобретения алгоритм распределения может также использоваться для разложения набора данных на частичные замыкания (также называемые частичными замыканиями данных), и частичные замыкания могут распределяться в интеллектуальном пространстве. В соответствии с различными примерами осуществления настоящего изобретения исходный набор данных или достоверный прогноз исходного набора данных может генерироваться из двух или более частичных замыканий.
Согласно вариантам осуществления настоящего изобретения также обеспечивается преобразование или синтез частичных замыканий в неприводимые полиномиальные выражения требуемой степени или в сигнатуры данных с использованием алгоритма разложения или других математических операций (например, расширений круговых полиномов). При этом для генерации частичного замыкания может быть принят запрос, идентифицирующий данные (например, локальные данные). Эти сигнатуры данных можно рассматривать как относительно облегченную версию частичных замыканий, поскольку сигнатуры данных меньше по размеру, чем соответствующие частичные замыкания. В некоторых примерах осуществления настоящего изобретения размер сигнатур данных меньше, поскольку устраняются избыточные данные. Сигнатуры данных содержат достаточно информации для использования в функциях выполнения запросов. Для упрощения процесса поиска данных, удовлетворяющих последующим запросам, сигнатуры данных могут храниться в банках информации интеллектуального пространства.
В примере интеллектуального пространства различные сигнатуры данных могут генерироваться в качестве отклика на запрос или другое инициирующее сообщение. В этом случае может генерироваться локальное частичное замыкание. Кроме того, в других устройствах могут быть генерированы удаленные замыкания данных, а также удаленные сигнатуры данных. По существу, сигнатуры данных могут располагаться во множестве устройств интеллектуального пространства. В соответствии с различными примерами осуществления настоящего изобретения сигнатуры данных могут генерироваться таким образом, чтобы обеспечить ортогональность по меньшей мере между некоторыми сигнатурами данных, расположенными в других устройствах.
Для генерации целевой сигнатуры содержимое запроса может быть преобразовано с использованием того же способа. Целевая сигнатура может быть распределена по интеллектуальному пространству, чтобы упростить идентификацию сигнатур данных, соответствующих требуемому содержимому запроса. Для того чтобы генерировать дедуктивную сигнатуру, после идентификации соответствующих сигнатур данных могут непосредственно объединяться сигнатуры данных. В некоторых примерах осуществления настоящего изобретения сигнатуры данных, используемые в процессе синтеза, являются ортогональными по отношению друг к другу. Дедуктивная сигнатура затем с помощью функции доступа или ключа может быть преобразована в полное замыкание данных, требуемых в запросе. По существу, примеры осуществления настоящего изобретения позволяют посредством целевых сигнатур и сигнатур данных обеспечить надежный и непротиворечивый процесс динамической дедукции результата запроса данных в интеллектуальном пространстве, выполняемый с помощью частичной распределенной информации.
Соответственно, примеры осуществления настоящего изобретения обеспечивают баланс между вычислениями замыканий, предшествующими запросу, и определением функции доступа. Таким образом, согласно примерам осуществления настоящего изобретения можно динамически или по требованию генерировать результаты запроса. Кроме того, в процедуре определения результатов запроса можно объединять смешанные вычисления извлекаемой информации, выполняемые с обратной/прямой связью, наряду с поддержанием баланса между различными факторами.
В этом отношении для рассмотрения текущего состояния некоторого слова (например, частичного замыкания или сигнатуры данных) могут быть представлены три отдельных элемента информации, подлежащей идентификации или использованию. Этими элементами могут быть наблюдения, касающиеся текущей ситуации, общие знания о любых подобных ситуациях и представления относительно косвенных наблюдаемых характеристиках текущей ситуации. В случае логических подходов наблюдения и общие знания могут быть закодированы на некотором логическом языке. В случае использования вероятностных подходов общие знания могут быть смоделированы посредством распределения вероятностей в наборе возможных ситуаций. Наблюдения могут в результате приводить к частичному созданию экземпляров некоторых переменных. Заключения в отношении данных, расположенных в интеллектуальном пространстве, могут состоять в предположениях на основе наблюдений и общих знаний, которые предполагаются действительными в множестве ситуаций.
В случае использования логических подходов эти заключения могут выводиться с помощью логической дедукции. В теории вероятностей заключение может следовать из вычислений условных вероятностей соответствующих суждений, причем при формировании условий для событий могут накапливаться доступные наблюдения. Наблюдения могут быть надежными и непротиворечивыми, в то время как вычисленные предположения могут, с другой стороны, считаться верными. В результате между логическим и вероятностным подходами для вывода заключений может существовать значительное сходство. В некоторых случаях доверительные взаимосвязи между информацией, совместимой с механизмами дедуктивных замыканий, могут быть заменены семейством вероятностных отношений. Семейство вероятностных отношений может характеризовать один и тот же набор принятых предположений. В результате может быть генерировано надежное распределенное дедуктивное замыкание. Задача разложения дедуктивного замыкания может, таким образом, объединяться с задачей поиска и выделения набора фактов (например, набора данных) в непересекающемся транзитивном замыкании, генерированном с использованием характеристик среды интеллектуального пространства. По существу, примеры осуществления настоящего изобретения позволяют использовать неразложимые компоненты или минимальные компоненты, являющиеся устойчивыми и пригодными для рассмотрения и объединения.
Для рассмотрения процесса генерации распределенного дедуктивного замыкания может быть использовано следующее предположение. Исходя из критерия неразложимости для элементарных теорий и основанных на разделении логических рассуждений для теорий первого порядка и теорий исчисления высказываний, наборы фактов (например, наборы данных) могут распознаваться как неразложимое дедуктивное замыкание с точки зрения соответствующей сигнатуры. В некоторых случаях это может быть верным, если дедуктивное замыкание представлено в форме исчисления предикатов всех наборов фактов ряда частичных замыканий с ортогональными сигнатурами. После объединения или синтеза ортогональные сигнатуры могут воспроизводить полную или дедуктивную сигнатуру данных.
В этом отношении набор фактов (например, набор данных в одном или более банках информации) может быть представлен тройным форматом фактов, а именно: субъект-предикат-объект (Subject-Predicate-Object), при этом предикат может быть непротиворечивым и, таким образом, может упрощать процесс формирования необходимой сигнатуры частичного замыкания (например, сигнатуры данных), которая ортогональна любой другой сигнатуре частичного замыкания. Таким образом, предикат может формировать набор потенциальной информации путем постановки цели и определения.
Таким образом, задача генерации распределенного дедуктивного замыкания может заключаться в формировании полного или кластерного образа предикатов на основе всей доступной информации. Для обеспечения независимости от связности предикатов могут генерироваться и идентифицироваться некоторые соответствующие разложимые фрагменты в терминах сигнатур.
Соответственно, в некоторых примерах осуществления настоящего изобретения существуют два таких замыкания, что связанные с ними сигнатуры могут объединяться с целью формирования сигнатуры конечного дедуктивного замыкания для конкретного информационного пространства. В этом отношении, если существует факт (например, подмножество множества фактов), который является частью сигнатуры конечного дедуктивного замыкания, то согласно различным примерам осуществления настоящего изобретения существуют по меньшей мере два других факта (например, подмножества множества фактов) таких, что соответствующие им сигнатуры ортогональны сигнатуре конечного дедуктивного замыкания.
Таким образом, из этого следует, что каждый факт (например, подмножество множества фактов) конечного дедуктивного замыкания, который не является разложимым в этом замыкании, содержит субъект-предикат-объект только из одного компонента разложения замыкания. Соответственно, может использоваться разделение сигнатуры, также как и компонентов замыкания, на основе, по меньшей мере частично, системы привил (аксиом) замыкания.
С учетом описанной выше структуры сигнатур действительный неприводимый полином с соответствующим ключом может служить для создания и подтверждения правильности сигнатур. Примеры механизмов синтеза распределенных дедуктивных замыканий могут быть описаны, принимая во внимание ортогональность, по определению, характеристик полинома и использование части предиката в качестве непротиворечивого представления частичного замыкания в пределах всего объема доступной информации.
В том, что касается функционирования сети (например, интеллектуального пространства), факты или данные могут добавляться или удаляться, и запросы могут добавляться и/или удовлетворяться. Факты и запросы могут быть распределены или рассредоточены равномерно или ассиметрично/неравномерно. Кроме того, в некоторых примерах осуществления настоящего изобретения факты и запросы могут быть закодированы посредством некоторого вектора. В результате факты и запросы могут приниматься в качестве входных параметров некоторой предопределенной полиномиальной формы, и неприводимый полином может использоваться в качестве механизма распределения.
Поскольку неприводимые полиномы могут создаваться с помощью алгоритма разложения, результирующее неприводимое выражение может быть представлено в виде произведения требуемого количества отдельных неприводимых полиномов определенной степени. По существу, процесс передачи информации может быть представлен через накопленный набор отдельных неприводимых полиномов и может быть транслирован в один или более неприводимых полиномов. Таким образом, наиболее существенное логическое замыкание первого порядка, являющееся набором фактов с избыточностью, может быть представлено в виде предопределенной формы полиномиального выражения. В результате задача идентификации наиболее общего дедуктивного замыкания, также называемого D-ядром (D kernel), может быть сведена к задаче обновления неприводимых полиномиальных выражений D-ядра. Синтез дедуктивного замыкания может, таким образом, представлять собой результат вывода обновляемых неприводимых полиномиальных выражений.
Принимая во внимание задачу обновления неприводимых полиномиальных выражений, процесс синтеза дедуктивного замыкания (генерация замыкания фактов) может играть роль правила обновления неприводимых полиномиальных выражений. Обновления могут проводиться в совокупной форме, и каждое обновление может контролироваться и проверяться с учетом своей полезности. Если определяется, что обновление не способствует появлению полезной информации, то соответствующее неприводимое полиномиальное выражение может быть проигнорировано, так же как и связанные с ним факты.
Согласно примерам осуществления настоящего изобретения также обеспечивается подходящий механизм для формирования образа (например, образа ядра) дедуктивного замыкания и отслеживания и сохранения наиболее существенных и легкодоступных фактов. Этот механизм, таким образом, позволяет отслеживать наиболее общее или полезное дедуктивное замыкание и выполнять соответствующее обслуживание на основе ограничений, налагаемых интеллектуальным пространством и подключенными к нему устройствами. Дедуктивное замыкание, таким образом, может быть сформировано с помощью полезных фрагментов информации, которые могут быть структурированными или неструктурированными. В результате дедуктивное замыкание можно рассматривать и как статическое, и как динамическое замыкание.
На фиг.1 показан способ, который позволяет упростить процесс синтеза распределенного дедуктивного замыкания в соответствии с примером осуществления настоящего изобретения. В рамках этого алгоритма на шаге 100 в сеть (например, в сеть динамически распределенных устройств) могут поступать запросы. Запросы могут поступать в виде сообщения любого типа, такого, например, как запрос выборки или сохранения информации. На шаге 105 может выполняться процедура определения возможности разложения запроса на составные части. Если это сделать можно, то на шаге 120 запрос может быть распределен по сети. Если запрос нельзя разложить на части, то этот запрос на шаге 110 может быть переадресован в пределах обновляемого тракта. Запросы, которые разложить нельзя, могут затем на шаге 115 передаваться через тракт в сети, и с учетом этих запросов может осуществляться выбор частичных замыканий. Запросы затем могут обрабатываться одним или более отдельных устройств сети для преобразования с помощью операций, указанных посредством ссылки на блок 101 алгоритма, изображенный с точки зрения одного устройства.
Разложимые запросы могут быть распределены на шаге 120 и приняты одним или более устройствами в сети. После приема запрос может обрабатываться отдельным устройством согласно операциям, представленным в блоке 101 алгоритма. На шаге 125 может выполняться процесс выбора частичных замыканий и кодирования запросов. В этом отношении информационный домен 130 может предоставлять данные, обрабатываемые в ходе процесса 135 анализа сохраненных информационных метаданных, для процесса 125 выбора частичных замыканий и кодирования информации. Информационный домен 130 может представлять собой домен, специфичный для данных, который обеспечивает метаданные, включая фактическое содержимое и содержимое, связанное с запросом. Специфическая для данных информация может поставляться инфраструктурой файловой системы распределенных объектов и может включать в свой состав информацию о распределении и иерархии объектов метаданных.
Кроме того, локальный кэш полиномов может предоставлять данные для процесса выбора частичного замыкания и кодирования информации. На шаге 145 запросы и/или данные, принятые через информационный домен 130, могут быть сокращены путем формирования, например, расширений круговых полиномов. На шаге 150 может быть сформирован полином для частичного замыкания, который может быть сохранен в локальном кэше 140 полиномов. Сформированные полиномы могут объединяться на шаге 155. Результат затем может быть упрощен с помощью разложения, например с помощью алгоритма математического разложения. Операции 145-160 могут выполняться через регулярные или нерегулярные интервалы для поддержания точности полиномиальных выражений относительно данных для частичных замыканий.
На шаге 165 может выполняться формирование полиномов посредством или с учетом расширений (например, расширений круговых полиномов). Результаты могут сохраняться в кэше 175 полиномов для использования в сети. В этом отношении содержимое кэша полиномов может быть распределено по сети на шаге 120, например, согласно алгоритму распределения. На шаге 170 могут быть восстановлены дедуктивные замыкания в той точке сети, в которой принят запрос, или в другом подходящем местоположении.
На фиг.2 показан пример устройства 200, выполненного с возможностью синтеза распределенного дедуктивного замыкания в сети динамически распределенных устройств, в соответствии с различными вариантами осуществления настоящего изобретения. Устройство 200, в частности процессор 205, может быть сконфигурировано для выполнения операций и функций, в целом описанных выше, например, для генерации и распределения сигнатур данных и обработки запроса для поиска данных. Кроме того, устройство 200, и в частности процессор 205, могут быть сконфигурированы для выполнения некоторых или всех операций, описанных со ссылкой на фиг.1 и фиг.3.
В некоторых примерах осуществления настоящего изобретения устройство 200 может быть реализовано в виде вычислительного устройства и/или устройства связи (либо включено в эти устройства в качестве компонента) с возможностями проводной или беспроводной связи. В некоторых примерах осуществления настоящего изобретения устройство 200 включает в свой состав компьютер, сервер, мобильный терминал, такой как мобильный телефон, персональное информационное устройство (PDA, portable digital assistant), пейджер, мобильное телевизионное устройство, игровое устройство, мобильный компьютер, портативный компьютер, видеокамеру, видеомагнитофон, аудио/видео проигрыватель, радиоприемник и/или устройство системы глобального позиционирования (GPS, global positioning system), сетевой объект, такой как точка доступа, например базовая станция, или любую комбинацию указанных устройств и т.п. Кроме того, устройство 200 может быть выполнено с возможностью реализации различных описываемых здесь аспектов настоящего изобретения, включая, например, различные примеры способов осуществления настоящего изобретения, причем способы могут быть реализованы посредством аппаратного и/или программно сконфигурированного процессора (например, процессора 205), машинно-читаемого носителя информации и т.п.
Устройство 200 может содержать процессор 205, запоминающее устройство 210 и интерфейс 215 связи или осуществлять связь с этими компонентами. Кроме того, в некоторых вариантах осуществления настоящего изобретения, например в тех, в которых устройство 200 представляет собой мобильный терминал, устройство 200 также содержит пользовательский интерфейс 225. Процессор 205 может быть реализован в виде различных средств, включая, например, микропроцессор, сопроцессор, контроллер или другие различные устройства обработки, включая интегральные микросхемы, такие, например, как ASIC (application specific integrated circuit, специализированная интегральная схема), FPGA (field programmable gate array, программируемая пользователем вентильная матрица) или аппаратный ускоритель. Процессор, реализованный в виде FPGA, ASIC и т.п., может быть специальным образом аппаратно сконфигурирован для выполнения описываемых операций, относящихся к процессору 205. В примере осуществления настоящего изобретения процессор 205 сконфигурирован для выполнения инструкций, хранимых в запоминающем устройстве 210, или, в альтернативном варианте, инструкций, доступных процессору 205. Процессор 205 может быть сконфигурирован для поддержки связи через интерфейс 215 связи с помощью, например, управляющего аппаратного и/или программного обеспечения, включенного в интерфейс 215 связи.
Запоминающее устройство 210 может быть сконфигурировано для хранения различной информации, задействованной в вариантах осуществления настоящего изобретения, такой, например, как целевая сигнатура и сигнатура данных. Запоминающее устройство 210 может представлять собой машинно-читаемый носитель информации, который может содержать модули энергозависимой и/или энергонезависимой памяти. Например, в состав запоминающего устройства 210 может входить оперативная память (RAM, Random Access Memory), включая динамические и/или статические модули RAM, внутренняя или внешняя кэш-память и т.п. Кроме того, запоминающее устройство 210 может содержать энергонезависимую память, которая может быть встроенной и/или съемной и включать в свой состав, например, постоянную память, флэш-память, накопители на магнитных дисках (например, жесткие диски, накопители на гибких дисках, магнитные ленты и т.д.), накопители и/или носители на оптических дисках, энергонезависимую оперативную память (NVRAM, nonvolatile random access memory) и т.п. Запоминающее устройство 210 может содержать область кэш-памяти для временного хранения данных. При этом некоторые или все запоминающие устройства 210 могут включаться в состав процессора 205.
Кроме того, запоминающее устройство 210 может быть сконфигурировано для хранения информации, данных, приложений, инструкций машинно-читаемого программного кода и т.п., которые позволяют процессору 205 и устройству 200 выполнять различные функции в соответствии с примерами осуществления настоящего изобретения. Например, запоминающее устройство 210 может быть сконфигурировано для буферизации входных данных с целью последующей их обработки процессором 205. Дополнительно или в качестве альтернативы запоминающее устройство 210 может быть сконфигурировано для сохранения инструкций, подлежащих выполнению процессором 205.
Пользовательский интерфейс 225 может осуществлять связь с процессором 205 для приема данных, вводимых пользователем через интерфейс 225, и/или передачи пользователю информации, такой, например, как звуковая, визуальная, механическая или иная выходная индикация. Пользовательский интерфейс 225 может содержать, например, клавиатуру, мышь, джойстик, дисплей (например, сенсорный экран), микрофон, спикер или другие устройства ввода/вывода информации. В некоторых примерах осуществления настоящего изобретения дисплей пользовательского интерфейса 225 может быть выполнен с возможностью представления результатов запроса, полученных в соответствии с вариантами осуществления настоящего изобретения.
Интерфейс 215 связи может представлять собой любое устройство или средства, реализованные с помощью аппаратного обеспечения, компьютерного программного изделия или комбинации аппаратного и программного обеспечения, сконфигурированного для приема и/или передачи данных из/в сеть, и/или в любое другое устройство или модуль, взаимодействующий с устройством 200. Интерфейс 215 связи может содержать, например, антенну, передатчик, приемник, приемопередатчик и/или вспомогательную аппаратуру, включая процессор или компьютерное программное изделие для выполнения связи с сетью 220. Сеть 220 может представлять собой интеллектуальное пространство или иную сеть динамически распределенных устройств. Устройство 200 может являться одним из множества устройств, входящих в состав сети динамически распределенных устройств (например, сети 220), определяемой как сеть, в которой устройства в любой момент времени могут покидать пределы сети и появляться в сети. В некоторых вариантах осуществления настоящего изобретения сеть 220 может служить примером сети одноранговых соединений. С помощью интерфейса 215 связи устройство 200 может осуществлять связь с другими различными сетевыми объектами.
Интерфейс 215 связи может быть сконфигурирован для обеспечения связи в соответствии с любым стандартом проводной или беспроводной связи. Например, интерфейс 215 связи может быть сконфигурирован для выполнения связи в соответствии с протоколами IS-136 беспроводной связи второго поколения (2G) (множественный доступ с временным разделением (TDMA, time division multiple access)), GSM (global system for mobile communication, глобальная система мобильной связи), IS-95 (множественный доступ с кодовым разделением (CDMA, code division multiple access)), протоколами беспроводной связи третьего поколения (3G), такими как универсальная система мобильной связи (UMTS, Universal Mobile Telecommunications System), CDMA2000, широкополосным протоколом CDMA (WCDMA, wideband CDMA), синхронным протоколом CDMA с разделением по времени (TD-SCDMA, time division-synchronous CDMA), протоколами беспроводной связи поколения 3.9 (3.9G), такими как развитая универсальная наземная сеть радиодоступа (E-UTRAN, Evolved Universal Terrestrial Radio Access Network), протоколами беспроводной связи четвертого поколения (4G), усовершенствованными протоколами международной мобильной связи (IMT-Advanced, international mobile telecommunications advanced), протоколами технологии долгосрочного развития (LTE, Long Term Evolution), включая усовершенствованный протокол LTE (LTE-advanced), и т.п. Кроме того, интерфейс 215 связи может быть сконфигурирован для выполнения связи в соответствии с такими технологиями, как, например, радиочастотная связь (RF, radio frequency), инфракрасная связь (IrDA, infrared), или любыми другими различными технологиями беспроводного сетевого взаимодействия, включая технологии WLAN, такие как IEEE 802.11 (например, 802.1 la, 802.1 Ib, 802.1 Ig, 802.1 In и т.д.), протоколы беспроводной локальной сети (WLAN, wireless local area network), технологии глобальной совместимости для микроволнового доступа (WiMAX, world interoperability for microwave access), такие как IEEE 802.16, и/или технологии локальной беспроводной сети (WPAN, wireless Personal Area Network), такие как IEEE 802.15, BlueTooth (ВТ), сверхширокополосная сеть (UWB, ultra wideband), и т.п.
Синтезатор 240 сигнатур и диспетчер 245 запросов устройства 200 могут представлять собой любые средства или устройства, реализованные с помощью аппаратного обеспечения, компьютерного программного изделия или комбинации аппаратного и программного обеспечения, такого как процессор 205, выполняющий программные инструкции, или процессор 205, сконфигурированный аппаратно для выполнения функций синтезатора 240 сигнатур и/или диспетчера 245 запросов таким образом, как это описывается в данном документе. В примере осуществления настоящего изобретения процессор 205 может содержать синтезатор 240 сигнатур и/или диспетчер 245 запросов или управлять этими устройствами. В различных примерах осуществления настоящего изобретения синтезатор 240 сигнатур и/или диспетчер 245 запросов могут размещаться в различных устройствах таким образом, чтобы некоторые или все функции синтезатора 240 сигнатур и/или диспетчера 245 запросов могли выполняться первым устройством, а остальные функции синтезатора 240 сигнатур и/или диспетчера 245 запросов могли выполняться одним или более других устройств.
Синтезатор 240 сигнатур может быть сконфигурирован для приема запроса и генерации локального частичного замыкания данных, идентифицированных запросом. Синтезатор 240 сигнатур может быть также сконфигурирован для синтеза сигнатуры данных локального частичного замыкания с помощью, например, расширений круговых полиномов. В этом отношении сигнатура данных может представлять собой неприводимое полиномиальное выражение. Кроме того, сигнатура данных может быть ортогональна удаленным сигнатурам данных, генерированным на основе удаленных частичных замыканий. В некоторых примерах осуществления настоящего изобретения удаленные сигнатуры данных могут быть генерированы в других удаленных устройствах и/или процессорах, которые входят в состав сети динамически распределенных устройств. Кроме того, синтезатор 240 сигнатур может быть сконфигурирован для сохранения сигнатуры данных в банке информации (например, в запоминающем устройстве 210) в пределах сети динамически распределенных устройств. В некоторых примерах осуществления настоящего изобретения синтезатор 240 сигнатур может быть также сконфигурирован для повторного синтеза сигнатуры данных, выполняемого регулярно, нерегулярно и/или в ответ, например, на изменения данных, идентифицированных запросом, или на изменения топологии сети.
Синтезатор 240 сигнатур может быть, таким образом, конфигурирован для обработки и обновления сигнатур данных в процессе подготовки к последующим запросам.
Диспетчер 245 запросов может быть конфигурирован для обработки запросов данных и получения результатов запросов. В этом отношении диспетчер 245 запросов может быть сконфигурирован для приема запроса, например, из узла, реализованного в устройстве, подключенном к сети 220. Диспетчер 245 запросов может быть также сконфигурирован для генерации целевой сигнатуры на основе запроса. В некоторых примерах осуществления настоящего изобретения целевая сигнатура может представлять собой преобразование запроса в формат неприводимого полиномиального выражения.
Диспетчер 245 запросов может быть также сконфигурирован для определения местоположения по меньшей мере первой и второй сигнатур данных в сети динамически распределенных устройств на основе целевой сигнатуры. В некоторых примерах осуществления настоящего изобретения диспетчер 245 запросов сконфигурирован для передачи целевой сигнатуры множеству процессоров. Процессоры могут быть реализованы в виде устройств, входящих в состав сети динамически распределенных устройств, или могут содержаться в таких устройствах. Процессор, принимающий целевую сигнатуру (например, процессор 205), может быть сконфигурирован для сравнения целевой сигнатуры с сигнатурами данных, расположенными в банке информации, доступном процессору, с целью идентификации соответствия. В этом отношении сигнатуры данных могут быть распределены в пределах сети динамически распределенных устройств. Распределение сигнатур данных может основываться на алгоритме распределения, в соответствии с которым выполняется равномерное распределение сигнатур данных и/или лежащих в основе данных (например, частичных замыканий) или ассиметричное/неравномерное распределение сигнатур данных. Кроме того, диспетчер 245 запросов может быть сконфигурирован для приема сигнатур данных (например, первой и по меньшей мере второй сигнатуры данных) из по меньшей мере одного из множества процессоров, расположенных в сети динамически распределенных устройств. В некоторых примерах осуществления настоящего изобретения диспетчер 245 запросов может принимать одну или более сигнатур данных из банка информации (например, из банка информации, реализованного в виде запоминающего устройства 210), доступного для устройства 200.
Сигнатуры данных, найденные диспетчером 245 запросов, могут представлять собой неприводимые полиномиальные выражения. Сигнатуры данных могут быть генерированы путем преобразования или приведения данных частичных замыканий в неприводимые полиномиальные выражения с помощью, например, расширений круговых полиномов. Диспетчер 245 запросов может быть также сконфигурирован для объединения по меньшей мере двух сигнатур данных (например, первой и второй сигнатуры данных) с целью генерации дедуктивной сигнатуры данных. Дедуктивная сигнатура данных может представлять полное замыкание данных. Диспетчер 245 запросов может быть также сконфигурирован для объединения сигнатур данных, ортогональных по отношению друг к другу (например, первая сигнатура данных может быть ортогональна второй сигнатуре данных). В различных примерах осуществления настоящего изобретения диспетчер 245 запросов также сконфигурирован для преобразования дедуктивной сигнатуры данных в полное замыкание данных, удовлетворяющих запросу.
На фиг.3 и фиг.1, описанных выше, показаны алгоритмы работы системы, способа и компьютерного программного изделия в соответствии с примерами осуществления настоящего изобретения. Следует принимать во внимание, что каждый блок, шаг или операция и/или комбинации блоков, шагов или операций, изображенных на алгоритмах, могут быть реализованы с помощью различных средств. К примерам средств для реализации блоков, шагов или операций и/или комбинации блоков, шагов или операций, изображенных на алгоритмах, относятся аппаратное, микропрограммное обеспечение и/или компьютерное программное изделие, включая запоминающее устройство, в котором хранится одна или более инструкций компьютерного программного кода, программных инструкций или исполняемых инструкций машинно-читаемого программного кода. К примерам средств для реализации блоков, шагов или операций и/или комбинации блоков, шагов или операций, изображенных на алгоритмах, также относится процессор, такой как процессор 205. Процессор может быть, например, сконфигурирован для осуществления операций, показанных на фиг.1 и/или фиг.3, путем выполнения аппаратно реализованных логических функций, исполнения записанных инструкций или исполнения алгоритмов для выполнения каждой из операций. В альтернативном варианте к примерам устройства могут относиться средства для выполнения каждой из операций алгоритма. В этом отношении согласно примеру осуществления настоящего изобретения к примерам средств для выполнения операций, показанных на фиг.1 и/или фиг.3, могут относиться процессор 205, такой как процессор, выполняющий алгоритм обработки информации таким образом, как это описано выше, синтезатор 240 сигнатур и/или диспетчер 245 запросов.
В одном из примеров осуществления настоящего изобретения одна или более описываемых процедур могут быть реализованы с использованием компьютерного программного изделия, содержащего инструкции программного кода. В этом отношении инструкции программного кода, которые реализуют описываемые процедуры, могут сохраняться или храниться в запоминающем устройстве, таком как запоминающее устройство 210, входящее, например, в состав устройства 200, и выполняться процессором, таким как процессор 205. Следует иметь в виду, что любые такие инструкции программного кода могут быть загружены в компьютер, процессор или другое программируемое устройство (например, процессор 205, запоминающее устройство 210) для формирования машины, которая, в свою очередь, содержит средства для реализации функций, обозначенных в блоке (блоках), на шаге (шагах) или в рамках операции (операций) алгоритма. В некоторых примерах осуществления настоящего изобретения эти инструкции программного кода также хранятся на машинно-читаемом носителе информации, который позволяет компьютеру, процессору или другому программируемому устройству функционировать таким образом, чтобы хранимые на машинно-читаемом носителе информации инструкции формировали изделие, которое также обеспечивает средства для выполнения функций, обозначенных в блоке (блоках), на шаге (шагах) или в рамках операции (операций) алгоритма. Инструкции программного кода могут быть также загружены в компьютер, процессор или другое программируемое устройство для инициализации выполнения ряда операций компьютером, процессором или другим программируемым устройством с целью формирования процесса, реализуемого компьютером таким образом, чтобы инструкции, исполняемые компьютером, процессором или другим программируемым устройством, позволяли выполнять шаги для реализации функций, обозначенных в блоке (блоках), на шаге (шагах) или в рамках операции (операций)алгоритма.
Соответственно, блоки, шаги или операции алгоритмов поддерживают комбинации средств, шагов и инструкций программного кода для выполнения указанных функций. Следует также иметь в виду, что в некоторых примерах осуществления настоящего изобретения один или более блоков, шагов или одна или более операций алгоритмов, или комбинации блоков, шагов или операций алгоритмов могут быть реализованы с помощью специализированных аппаратных компьютерных систем или процессоров, которые выполняют указанные функции или шаги, или с помощью комбинаций специализированного аппаратного обеспечения и инструкций программного кода.
На фиг.3 показан алгоритм, иллюстрирующий пример способа определения сигнатуры данных в сети динамически распределенных устройств. В соответствии с различными примерами осуществления настоящего изобретения операции, показанные на фиг.3, выполняются процессором 205, который специальным образом сконфигурирован для выполнения этих операций.
Пример способа включает получение на шаге 300 первого запроса и генерацию на шаге 310 локального частичного замыкания данных, идентифицированных первым запросом. На шаге 320 может быть синтезирована сигнатура данных на основе локального замыкания данных. В некоторых примерах осуществления настоящего изобретения сигнатура данных может быть синтезирована с использованием расширений круговых полиномов. Сигнатура данных может представлять собой неприводимое полиномиальное выражение, и сигнатура данных может быть ортогональна одной или более удаленным сигнатурам данных, генерированным на основе удаленных частичных замыканий. Кроме того, пример способа может включать сохранение сигнатуры данных в банке информации в пределах сети динамически распределенных устройств. На шаге 330 может снова осуществляться переход к началу выполнения способа, то есть к шагу 300, или последующий переход к шагу 300, например на шаге 320, для повторного синтеза или обновления сигнатуры данных на основе, например, изменений данных или изменений в топологии сети.
В качестве составной части процедуры запроса для поиска набора данных пример способа, показанный на фиг.3, в соответствии с некоторыми примерами осуществления настоящего изобретения также включает прием второго запроса на шаге 340 и генерацию на шаге 350 целевой сигнатуры на основе запроса. На шаге 360 пример способа включает определение местоположения по меньшей мере первой сигнатуры данных и второй сигнатуры данных на основе целевой сигнатуры. В этом отношении первая и вторая сигнатуры данных могут представлять собой неприводимые полиномиальные выражения. Неприводимые полиномиальные выражения могут быть генерированы путем синтеза соответствующих частичных замыканий данных. Например, в некоторых примерах осуществления настоящего изобретения частичные замыкания данных синтезируют с помощью расширений круговых полиномов для генерации неприводимых полиномиальных выражений или сигнатур данных. В некоторых примерах осуществления настоящего изобретения процедура определения местоположения сигнатур данных может включать определение местоположения сигнатур данных, которые были распределены в сети динамически распределенных устройств в соответствии с алгоритмом равномерного или ассиметричного/неравномерного распределения. Кроме того, процедура определения местоположения сигнатур данных может включать передачу целевой сигнатуры множеству процессоров в сети динамически распределенных устройств и/или прием сигнатур данных из одного из множества процессоров, расположенных в сети динамически распределенных устройств.
На шаге 370 пример способа также включает объединение первой сигнатуры данных со второй сигнатурой данных для генерации дедуктивной сигнатуры данных. Дедуктивная сигнатура данных может быть представлением полного замыкания данных. В некоторых примерах осуществления настоящего изобретения способ на шаге 380 также включает преобразование дедуктивной сигнатуры данных в полное замыкание данных, удовлетворяющих запросу.
Различные изменения и другие варианты осуществления настоящего изобретения могут быть реализованы специалистом в этой области техники на основе идей, изложенных в приведенном выше описании и прилагаемых чертежах. Таким образом, следует понимать, что настоящее изобретение не ограничено конкретными раскрытыми вариантами его осуществления, и такие изменения и другие варианты осуществления входят в объем прилагаемой формулы изобретения. Более того, хотя в изложенном выше описании и связанных с ним чертежах приводятся примеры осуществления настоящего изобретения в контексте определенных комбинаций элементов и/или функций, следует принимать во внимание, что в других вариантах осуществления могут использоваться другие комбинации элементов и/или функций в рамках прилагаемой формулы изобретения. Например, комбинации элементов и/или функций, отличные от тех, которые явно описаны выше, также рассматриваются в качестве комбинаций, которые могут быть изложены в некоторых пунктах прилагаемой формулы изобретения. Хотя в этом описании используются конкретные термины, эти термины применяются только в общем и описательном смысле и не служат для ограничения изобретения.
Класс G06F11/14 обнаружение и исправление ошибок в данных с помощью избыточности операций,например с использованием различных последовательностей операций, приводящих к тому же результату