ОТСЛЕЖИВАНИЕ ОБЪЕКТОВ МЕЖДУ РАЗЛИЧНЫМИ СТОРОНАМИ
TRACING OBJECTS BETWEEN DIFFERENT PARTIES

Уровень техники
[0001] Различные стороны, такие как отдельные люди, компании, организации или другие хозяйствующие субъекты, обычно имеют свои собственные базы данных для записи интересующих объектов, таких как активы, документы, товары или т.п., между сторонами. Каждая сторона хранит свои собственные записи и периодически сверяется друг с другом, согласуются ли записи друг с другом. Из-за различного формата данных, схемы и частот синхронизации и даже ошибок для всех сторон требуется достигать консенсуса во всех случаях. Другой способ, чтобы организовать деятельность между организациями, включает в себя выбор одной стороны из множества сторон для хранения всех записей или поиск независимой третьей стороны для хранения всех записей. Однако, в этих централизованных решениях сторона, действующая в качестве стороны централизованного управления, может подвергаться атаке. Таким образом, ставится задача надежно управлять и отслеживать движение или распределение объектов между различными сторонами.
Сущность изобретения
[0002] В соответствии с реализациями сущности изобретения, описанной в данном документе, предлагается новый подход для управления и отслеживания объектов между различными сторонами. Для того, чтобы предоставлять возможность одной или более из этих сторон управлять и отслеживать движение объектов между этими различными сторонами, для множества сторон задействуется набор правил. Набор правил определяет ограничение(я) на одну или более операций, связанных с объектом. При приеме запроса операции, связанной с объектом, от стороны запрошенная операция может быть проверена на основе набора правил. Если запрошенная операция является действительной, операция будет выполнена, и для операции будет создана запись, которая является характерной (специфической) для набора правил. Запись затем сохраняется в распределенной базе данных (на основе цепочки блоков, blockchain), доступной множеству сторон. Распределенная база данных, которая может также называться распределенным учетным журналом или распределенной распространяемой базой данных, является распространяемой базой данных, которая поддерживает постоянно растущий список записей данных, защищенных от искажения и редактирования. Таким образом, распространение и движение объекта может эффективно и продуктивно управляться и отслеживаться между различными сторонами.
[0003] Следует понимать, что раздел сущность изобретения не предназначен для того, чтобы идентифицировать ключевые или существенные признаки реализаций сущности изобретения, описанной в данном документе, и не предназначена для того, чтобы использоваться для ограничения объема сущности изобретения, описанной в данном документе. Другие признаки сущности изобретения, описанной в данном документе, станут легко понятными из описания ниже.
Краткое описание чертежей
[0004] Подробности одной или более реализаций сущности изобретения, описанной в данном документе, излагаются на сопроводительных чертежах и в описании ниже. Другие признаки, аспекты и преимущества изобретения станут очевидны из описания, чертежей и формулы изобретения, при этом:
[0005] Фиг. 1 - это схематичный чертеж, иллюстрирующий систему в соответствии с реализациями сущности изобретения, описанной в данном документе;
[0006] Фиг. 2 - это блок-схема последовательности операций, иллюстрирующая способ установки набора правил в соответствии с примерной реализацией сущности изобретения, описанной в данном документе;
[0007] Фиг. 3 - это блок-схема последовательности операций, иллюстрирующая способ выполнения операции, относящейся к объекту, в соответствии с примерной реализацией сущности изобретения, описанной в данном документе;
[0008] Фиг. 4 - это блок-схема последовательности операций, иллюстрирующая способ проверки операции, относящейся к объекту, в соответствии с примерной реализацией сущности изобретения, описанной в данном документе;
[0009] Фиг. 5 - это блок-схема последовательности операций, иллюстрирующая способ для отслеживания объекта в соответствии с примерной реализацией сущности изобретения, описанной в данном документе;
[0010] Фиг. 6 - это блок-схема последовательности операций, иллюстрирующая способ опроса состояния операции в соответствии с примерной реализацией сущности изобретения, описанной в данном документе;
[0011] Фиг. 7 - это блок-схема устройства, подходящего для реализации одной или более реализаций сущности изобретения, описанной в данном документе; и
[0012] Фиг. 8 - это схематичный чертеж, иллюстрирующий примерную визуализацию отслеживания объекта в соответствии с примерной реализацией сущности изобретения, описанной в данном документе.
[0013] Повсюду на чертежах одинаковые или аналогичные номера ссылок будут всегда указывать одинаковые или аналогичные элементы.
Подробное описание изобретения
[0014] Принцип сущности изобретения, описанной в данном документе, будет сейчас описан со ссылкой на некоторые примерные реализации. Следует понимать, что эти реализации описываются только для иллюстрации, чтобы помогать специалистам в области техники понимать и реализовывать сущность изобретения, описанная в данном документе, без предложения каких-либо ограничений относительно объема изобретения. Изобретение, описанное в данном документе, может быть реализовано различными способами, отличными от способов, описанных ниже.
[0015] В контексте настоящего документа термин "включает в себя" и его варианты должны читаться как ничем не ограниченные термины, которые означают "включает в себя, но не только". Термин "основанный на" должен читаться как "основанный, по меньшей мере, частично на". Признак единственного числа должен читаться как "один или более", пока не указано иное. Термины "одна реализация" и "реализация" должны читаться как "по меньшей мере одна реализация". Термин "другая реализация" должен читаться как "по меньшей мере одна другая реализация".
[0016] Кроме того, следует понимать, что в контексте сущности изобретения, описанной в данном документе, термины "первый", "второй", "третий" и т.п. используются, чтобы указывать отдельные элементы или компоненты, без предложения какого-либо ограничения относительно порядка этих элементов. Дополнительно, пока не указано иное, первый элемент может быть или может не быть таким же, что и второй элемент. Другие определения, явные и неявные, могут быть включены ниже.
[0017] Традиционно, как упомянуто выше, сторона, такая как организация, компания, отдельное лицо и т.п., может не иметь возможности надежно управлять и отслеживать то, как объект стороны передается между другими сторонами, после того как объект был передан другой стороне. В контексте настоящего документа, объект может ссылаться на любую цифровую информацию, представляющую документы, товары, активы или т.п. Другими словами, после того как объект покинул границы упомянутой стороны, он может быть неуправляемым. Например, жертвователь в благотворительную организацию захочет управлять и отслеживать движение его пожертвований, после того как пожертвования были сделаны в благотворительную организацию. Таким образом, жертвователь захочет гарантировать, что пожертвования действительно используются, как предполагается. В качестве другого примера, пользователь, который предоставляет совместный доступ к своим фотографиям в социальной сети, также захочет управлять и отслеживать движение фотографий с целью конфиденциальности. Однако, традиционные системы администрирования баз данных, как правило, не могут предоставлять возможность стороне надежно и легко управлять и отслеживать движение его объектов, поскольку каждая сторона поддерживает и управляет своей собственной системой баз данных.
[0018] Для того, чтобы, по меньшей мере, частично решать вышеописанную и другие потенциальные задачи, согласно реализациям сущности изобретения, описанной в данном документе, предлагается новый подход для управления и отслеживания объектов между различными сторонами.
Примерная система
[0019] Ссылка сначала выполняется на фиг. 1, которая показывает схематичный чертеж, иллюстрирующий окружение 100, в котором примерные реализации сущности изобретения, описанной в данном документе, могут быть реализованы.
[0020] Как показано, существует множество сторон 101-105, таких как отдельные лица, организации или любые другие хозяйствующие субъекты. Следует понимать, что, хотя пять сторон 101-105 показано, система 100 может включать в себя любое подходящее число сторон. Каждая сторона может иметь устройство, такое как портативный компьютер, настольный компьютер, планшетный компьютер, сервер, мобильное устройство, переносное устройство или т.п. Стороны 101-105 могут быть соединены с возможностью связи друг с другом через сеть. Примеры сети могут включать в себя, но не только, проводную или беспроводную сеть, такую как локальная вычислительная сеть ("LAN"), городская вычислительная сеть ("MAN"), глобальная вычислительная сеть ("WAN") или Интернет, сеть связи, соединение связ малого радиуса действия или любое их сочетание.
[0021] Окружение 100 также включает в себя распределенную (блокчейн) базу данных 110 и модуль 120 администрирования. Модуль 120 администрирования находится на связи со сторонами 101-105 и управляет распределенной базой данных 110. Т.е., модуль 120 администрирования может рассматриваться в качестве системы управления базой данных (DBMS). Следует понимать, что, хотя показаны в качестве отдельных компонентов, распределенная база данных 110 и модуль 120 администрирования могут быть объединены друг с другом. В частности, в некоторых реализациях модуль 120 администрирования может быть распределенным модулем.
1
2
N
[0022] Распределенная база данных 110 является доступной сторонам 101-105. Распределенная база данных 110 может быть распространяемой базой данных, которая поддерживает список записей данных, защищенных от искажения и редактирования. Записи организованы в блоки данных, при этом каждый блок содержит пакеты отдельных записей. Например, как показано, записи 1-6 хранятся в блоках 130, 130 и 130. В некоторых реализациях блоки могут быть криптографически соединены друг с другом. Блоки могут включать в себя подпись, и подпись одного блока зависит от подписей и записей предшествующих блоков. Например, подпись одного блока может быть вычислена из хэш-значения подписей и записей предшествующих блоков. Будет понятно из последующего описания, что все операции объекта являются неизменными, управляемыми и отслеживаемыми в этой системе администрирования базы данных.
[0023] Как описано выше, один или более объектов могут быть переданы, совместно использованы или могут иначе перемещаться между сторонами 101-105. Примеры объекта включают в себя, но не только, электронные документы, фотографии, видеозаписи, аудиозаписи, активы и т.п. Каждая сторона может выполнять операции над объектом, такие как передача, совместное использование, потребление, удаление или т.п.
[0024] Согласно реализациям сущности изобретения, описанной в данном документе, сторона может определять набор 150 правил, чтобы описывать одно или более ограничений, касающихся одной или более операций, связанных с интересующим объектом. Для простоты обсуждения, в последующем описании, термины "правило(а)" и "набор правил" могут быть использованы взаимозаменяемо.
[0025] Вообще говоря, набор 150 правил может быть связан с любыми аспектами и/или атрибутами, касающимися одной или более операций объекта. Примерный набор 150 правил будет дополнительно описан в последующих абзацах. В некоторых реализациях набор 150 правил может быть инициирован владельцем объекта, например. Конечно, любые другие причастные стороны могут также предлагать набор 150 правил. Для простоты обсуждения, в последующих обсуждениях, предполагается, что сторона 101 инициирует набор 150 правил.
[0026] Набор 150 правил может быть реализован в любых подходящих форматах. Например, в некоторых реализациях, набор 150 правил может включать в себя исполняемый код, написанный посредством любого подходящего языка программирования и/или языка сценариев. Альтернативно, или в дополнение, набор 150 правил может быть описан в виде форматированного текста, такого как текст на расширяемом языке разметки (XML) или простой текст. Набор 150 правил может быть сохранен в распределенной базе данных 110 посредством модуля 120 администрирования или в любом другом подходящем хранилище.
[0027] После приема (160) запроса для установки набора 150 правил от стороны 101 модуль 120 администрирования рассылает набор 150 правил сторонам 102-105. Если сторона одобряет набор 150 правил, сторона может отправлять подтверждающее сообщение обратно модулю 120 администрирования. В некоторых реализациях, если предварительно определенное число сторон в системе подтверждают набор 150 правил, тогда набор 150 правил задействуется. В некоторых реализациях модуль 120 администрирования может отправлять (165) стороне 101, непосредственно или по запросу, уведомление относительно того, был ли одобрен предложенный набор 150 правил другими сторонами и, таким образом, задействован. Примерный процесс в этом аспекте будет описан ниже со ссылкой на фиг. 2.
[0028] Затем сторона может отправлять запрос для инициирования операции объекта. Например, в примере, показанном на фиг. 1, модуль 120 администрирования принимает (170) от стороны 102 запрос для передачи объекта стороне 104. Модуль 120 администрирования проверяет (172) запрошенную операцию на основе набора 150 правил, который был сохранен заранее.
[0029] Если запрошенная операция определяется действительной, модуль 120 администрирования инструктирует выполнение операции. В этом случае модуль 120 администрирования создает запись для операции и сохраняет (174) запись в цепочку блоков 110. Эта запись, среди прочего, может включать в себя идентификатор события (ID), который является характерным (специфичным) для набора 150 правил. Т.е., все операции или действия, выполненные сторонами 101-105 в отношении объекта при соблюдении набора 150 правил, принадлежат одному и тому же событию, и все операции или действия, принадлежащие этому событию, могут быть записаны в цепочке блоков с одним и тем же ID события.
[0030] Распространяемая распределенная база данных 110 включает в себя множество хранилищ. Записи, сохраненные в одном запоминающем устройстве, будут синхронизированы с другими запоминающими устройствами. Например, хранилище будет проверять, являются ли записи, сохраненные в нем, такими же, что и записи, сохраненные в предварительно определенном числе соседних хранилищ. Если записи не являются одинаковыми, это хранилище будет проверять записи, сохраненные в нем, согласно записям, сохраненным в соседних хранилищах. Таким образом, движение объекта является отслеживаемым и неизменным, что будет обсуждено ниже.
[0031] В некоторых реализациях экземпляры модуля 120 администрирования могут быть реализованы на распространяемой распределенной базе данных 110, так что стороны могут взаимодействовать с любым экземпляром или всеми экземплярами модуля 120 администрирования. Альтернативно, экземпляры модуля 120 администрирования могут быть реализованы у сторон, так что отдельные стороны могут взаимодействовать с соответствующими экземплярами модуля 120 администрирования. Соответственно, записи, сохраненные во множестве хранилищ распределенной базы данных 110, будут синхронизированы, так что движение объекта может управляться и отслеживаться.
[0032] В некоторых реализациях различные стороны могут устанавливать одинаковое ограничение(я) на одну или более операций, связанных с их объектом. В таком случае, например, глобально управляемое и случайным образом генерируемое число может быть принято во внимание при формировании соответствующего ID события, чтобы различать различные стороны.
[0033] С другой стороны, если запрошенная операция является недействительной, модуль 120 администрирования может отклонять запрос. Например, модуль 120 администрирования может отправлять (175), непосредственно или по запросу, уведомление узлу 102, чтобы уведомлять о том, была ли выполнена операция. Примерная реализация будет описана со ссылкой на фиг. 3, и примерная реализация в распространении цифрового контента будет обсуждаться в последующих абзацах.
[0034] Когда сторона, такая как сторона 101, хочет отслеживать движение объекта между различными сторонами, она может отправлять запрос отслеживания. После приема (180) запроса модуль 120 администрирования извлекает (182) одну или более записей для операций, относящихся к объекту, из распределенной базы данных 110. В некоторых реализациях запрос отслеживания может включать в себя ID события, и записи для операций, относящихся к объекту, могут быть извлечены на основе ID события. Затем модуль 120 администрирования возвращает (185) извлеченные записи стороне 101. Таким образом, сторона 101 может быть уведомлена о движении или распространении объекта в событии. Если какое-либо нарушение обнаруживается посредством проверки записей, сторона 101 может реагировать соответствующим образом. Примерная реализация будет описана со ссылкой на фиг. 5.
Примерные процессы
[0035] Ниже некоторые примерные реализации вышеописанных процессов описаны подробно. Фиг. 2 - это блок-схема последовательности операций, иллюстрирующая способ 200 установки набора 150 правил в соответствии с примерной реализацией сущности изобретения, описанной в данном документе. На этапе 210 модуль 120 администрирования принимает, от стороны 101, запрос для установки набора 150 правил. Набор 150 правил может быть сохранен заранее, например, в цепочке блоков 110.
[0036] Как упомянуто выше, набор 150 правил может быть связан с любыми аспектами и/или атрибутами, касающимися операций объекта. Например, набор 150 правил может указывать максимальное число раз, которое сторона может передать объект, или цель, которой объект может быть передан или предоставлен для совместного использования. В качестве другого примера, набор 150 правил может указывать условия, при которых стороне предоставляется возможность потреблять объект. Альтернативно, или в дополнение, набор 150 правил может указывать соответствующие уровни разрешения для различных сторон, чтобы управлять отслеживанием объекта. Например, набор 150 правил может препятствовать стороне 102 в отслеживании объекта стороны 101. В еще одной реализации набор 150 правил может указывать таймер для установки предела времени относительно одной или более операций объекта.
[0037] Например, предполагается, что сторона 101 передает объект стороне 102, и что набор 150 правил указывает таймер для установки предела времени в отношении объекта. Например, в случае, когда объект передается или предоставляется стороне, таймер может указывать период времени, в течение которого принимающей стороне предоставляется возможность использовать или потреблять объект. Если принимающая сторона не потребляет объект в течение этого периода времени, объект может быть изъят или удален. В этом случае, объект сначала передается стороне 102, и запись для передачи создается и сохраняется. Если модуль 120 администрирования обнаруживает, что сторона 102 не передает объект стороне 104 в течение предварительно определенного времени, установленного посредством набора 150 правил, модуль 120 администрирования будет инициировать операцию, чтобы возвращать объект обратно стороне 101.
[0038] На этапе 220 модуль 120 администрирования рассылает набор 150 правил множеству сторон, так что другие стороны 102-105 могут каждая выполнять определение относительно того, одобрять ли набор 150 правил, предложенный стороной 101.
[0039] На этапе 230, если подтверждения в отношении набора 150 правил принимаются, по меньшей мере, от одной из сторон 102-105, модуль 120 администрирования может задействовать набор 150 правил. Кроме того, запись может быть создана и сохранена для каждого из принятых подтверждений. Например, предполагается, что стороны 102, 103 и 105 отправляют свои подтверждения модулю 120 администрирования. Подтверждения могут включать в себя подпись сторон 102, 103 и 105, соответственно. Для каждого подтверждения модуль 120 администрирования создает запись, включающую в себя, например по меньшей мере одно из следующего: ID события, характерный (специфичный) для набора 150 правил, описания для подтверждения и временной отметки, указывающей момент времени, когда подтверждение отправлено.
[0040] В некоторых реализациях запись об подтверждении может также включать в себя ссылку на набор 150 правил. Ссылка может быть реализована как указатель или унифицированный указатель ресурса (URI). Альтернативно, или в дополнение, подтверждение может включать в себя подпись соответствующей стороны и открытый ключ для дешифрования подписи. Подпись может быть вычислена, например, посредством шифрования ID события, открытого ключа и/или ссылки на набор 150 правил с помощью закрытого ключа.
[0041] Как описано выше, первоначальная сторона, такая как сторона 101, может инициировать набор 150 правил, касающийся своего объекта, и, таким образом, может управлять тем, как объект передается между другими сторонами, после того как объект был передан другой стороне. Например, пользователь, который предоставляет совместный доступ к его/ее фотографиям в социальной сети, может инициировать набор 150 правил, указывающий, что объект может быть передан лишь в некоторые указанные сети. Иначе, операция совместного использования будет запрещена. Таким образом, распространение фотографий может управляться.
[0042] Фиг. 3 - это блок-схема последовательности операций, иллюстрирующая способ 300 для выполнения операции в отношении объекта в соответствии с примерной реализацией сущности изобретения, описанной в данном документе. На этапе 310 модуль 120 администрирования принимает запрос операции, относящейся к объекту, от стороны, такой как сторона 102. Например, запрошенной операцией является передача или совместное использование, по меньшей мере, части объекта другой сторон(е)ой, такой как сторона 104.
[0043] Запрос может включать в себя описание или ID запрошенной операции, и объект. Дополнительно, в некоторых реализациях, запрос может дополнительно включать в себя по меньшей мере одно из следующего: ID события, который является характерным для набора 150 правил, согласованного сторонами 101-105, ссылку на набор 150 правил, подпись стороны, открытый ключ для дешифрования подписи инициирующей стороны (в этом примере, стороны 102) и отметку времени, указывающую момент времени, когда запрос отправлен. В некоторых реализациях ID для операции может быть вычислен как хэш-значение ID события, описания операции, открытого ключа и ссылки на набор 150 правил.
[0044] На этапе 320 модуль 120 администрирования проверяет запрошенную операцию на основе набора 150 правил, согласованного множеством сторон. Примерная реализация в этом отношении показана на фиг. 4. Модуль 120 администрирования будет сначала проверять распределенную базу данных 110, чтобы определять, существует ли запись для подтверждения, причем запись содержит подпись стороны 102. Затем, на этапе 410, модуль 120 администрирования может извлекать ссылку на набор 150 правил из запроса. На этапе 420 модуль 120 администрирования обращается и извлекает набор 150 правил на основе ссылки. На этапе 430 модуль 120 администрирования проверяет запрошенную операцию, проверяя, соответствует ли описание запрошенной операции набору 150 правил. Например, в случае, когда набор 150 правил содержит исполняемый код, модуль 120 администрирования может инструктировать исполнение кода для проверки того, существует ли какое-либо нарушение.
[0045] Необязательно, в некоторых реализациях, на этапе 440, модуль 120 администрирования может рассылать уведомление, относящееся к операции, множеству сторон. Например, модуль 120 администрирования может рассылать уведомление всем сторонам 101-105, согласившимся с набором 150 правил, чтобы уведомлять о том, что операция проверяется или выполняется. Альтернативно, модуль 120 администрирования может лишь отправлять уведомление некоторой одной или нескольким сторонам, как указано в наборе 150 правил.
[0046] Все еще со ссылкой на фиг. 3, если запрошенная операция определяется как действительная на этапе 320, модуль 120 администрирования инструктирует выполнение операции на этапе 330 и создает запись для операции на этапе 340. Запись, по меньшей мере, включает в себя ID события, который является характерным для используемого набора 150 правил. Дополнительно, в некоторых реализациях, запись об операции может дополнительно включать в себя одно или более из следующего: ссылку на набор 150 правил, ID для операции, описание операции, подпись связанной стороны, открытый ключ для дешифрования подписи и отметку времени, указывающую момент времени, когда запрос отправлен. В некоторых реализациях некоторая или вся информация, которая должна быть включена в запись, может быть получена из запроса операции, например.
[0047] Затем, на этапе 350, созданная запись хранится в распределенной базе данных 110. Таким образом, все операции объекта будут записаны с уникальным ID события. Позже сторона может отслеживать движение этого объекта, отыскивая в цепочке блоков 110 записи с соответствующим ID события, как будет обсуждено ниже.
[0048] С другой стороны, если определяется на этапе 320, что набор 150 правил нарушен, модуль 120 администрирования может отвергать запрос на этапе 360. В таком случае, запись для операции не будет создана. Альтернативно, в других реализациях, модуль 120 администрирования может все еще создавать и сохранять запись для операции и назначать этой записи указатель, что операция была отклонена.
[0049] Поскольку сторона, такая как сторона 102, принимающая объект от первоначальной стороны, такой как сторона 101, может лишь выполнять операции, являющиеся действительными на основе набора 150 правил, первоначальная сторона может управлять тем, как объект передается между другими сторонами, после того как объект был передан другой стороне. Например, в социальной сети совместно используемая фотография может впоследствии совместно использоваться только с другими пользователями, указанными первоначальным владельцем фотографии. В качестве другого примера, жертвователь в благотворительную организацию может указывать, что его пожертвование может быть использовано только для некоторой цели.
[0050] Фиг. 5 - это блок-схема последовательности операций, иллюстрирующая способ 500 для отслеживания объекта в соответствии с примерной реализацией сущности изобретения, описанной в данном документе. На этапе 510 модуль 120 администрирования принимает, от какой-либо стороны из множества сторон 101-105, запрос для отслеживания объекта. В ответ, на этапе 520, модуль 120 администрирования извлекает одну или более записей для операций, относящихся к объекту, из распределенной базы данных 110. На этапе 530 модуль 120 администрирования предоставляет извлеченные записи для запрашивающей стороны. Как описано выше, операции объекта, проверенные на основе набора 150 правил, могут совместно использовать один и тот же ID события. Т.е., записи для операций, принадлежащих некоторому событию, могут быть извлечены по ID события. На основе этих записей запрашивающая сторона может знать, что, например, объект сначала передан от стороны 101 стороне 102, а затем передан от стороны 102 стороне 104, и т.д. В некоторых реализациях извлеченные операции могут быть визуализированы, чтобы ясно представлять движение или распространение объекта. Соответственно, сторона может надежно и легко отслеживать движение своего объекта. Пример визуализации будет описан со ссылкой на фиг. 8.
[0051] Фиг. 6 - это блок-схема последовательности операций, иллюстрирующая способ 600 запроса состояния операции в соответствии с примерной реализацией сущности изобретения, описанной в данном документе. На этапе 610 модуль 120 администрирования принимает запрос состояния операции. В контексте данного документа, термин "состояние" указывает, была ли операция успешно выполнена.
[0052] На этапе 620, в ответ на запрос, модуль 120 администрирования может определять число последующих записей, которые были присоединены к записи для целевой операции в распределенной базе данных 110.
[0053] На этапе 630 модуль 120 администрирования определяет состояние операции на основе числа последующих записей. Может быть известно из механизма распределенной базы данных 110, что, если число последующих присоединенных записей превышает предварительно определенное число, это означает, что запись для операции была одобрена существенно большим числом сторон, задействованных в системе. В этом случае, операция может считаться успешной. Иначе, относительно небольшое число присоединенных записей будет вероятно указывать, что запись об операции не распознана другими сторонами, например, вследствие задержки связи и/или других факторов. В результате, число последующих записей может быть использовано, чтобы определять состояние операции. В некоторых реализациях модуль 120 администрирования может определять состояние операции сам. Альтернативно, модуль 120 администрирования может возвращать блоки последующих записей, присоединенных к записи, запрашивающей стороне 102, так что сторона 102 может определять состояние операции на основе числа последующих записей.
[0054] В результате, запрашивающая сторона может получать текущее состояние операции и определять, предпринимать ли дополнительные операции, на основе состояния. Например, если сторона 102 обнаружила, что ее запрошенная операция запрещена, сторона 102 может отправлять другой запрос операции снова.
[0055] Фиг. 7 - это блок-схема устройства 700, подходящего для реализации одной или более реализаций сущности изобретения, описанной в данном документе. Например, устройство 700 может функционировать как модуль 120 администрирования, как обсуждалось выше со ссылкой на фиг. 2. Следует понимать, что устройство 700 не предназначается, чтобы предлагать какое-либо ограничение относительно объема использования или функциональности сущности изобретения, описанной в данном документе, поскольку различные реализации могут быть реализованы в различных вычислительных окружениях общего назначения или специализированных вычислительных окружениях.
[0056] Как показано, устройство 700 включает в себя по меньшей мере один процессорный блок (или процессор) 710 и память 720. Процессор 710 исполняет компьютерно-исполняемые инструкции и может быть реальным или виртуальным процессором. В многопроцессорной системе, множество обрабатывающих блоков исполняют машиноисполняемые инструкции, чтобы повышать вычислительную мощность. Памятью 720 может быть энергозависимая память (к примеру, регистры, кэш, RAM), энергонезависимая память (к примеру, ROM, EPPROM, флэш-память и т.д.) или какое-либо их сочетание.
[0057] В примере, показанном на фиг. 7, устройство 700 дополнительно включает в себя хранилище 730, одно или более устройств 740 ввода, одно или более устройств 750 вывода и одно или более соединений 760 связи. Механизм межкомпонентного соединения (не показан), такой как шина, контроллер или сеть, соединяет между собой компоненты устройства 700. Типично, программное обеспечение операционной системы (не показано) предоставляет операционное окружение для другого программного обеспечения, исполняющегося в устройстве 700, и координирует действия компонентов устройства 700.
[0058] Хранилище 730 может быть съемным или несъемным и может включать в себя компьютерно-читаемые носители хранения, такие как флеш-накопители, магнитные диски или любой другой носитель, который может быть использован для хранения информации, и к которому может быть осуществлен доступ в устройстве 700. Устройство(а) 740 ввода могут быть одним или более разнообразными различными устройствами ввода. Например, устройство(а) 740 ввода могут включать в себя пользовательское устройство, такое как мышь, клавиатура, трекбол и т.д. Устройство(а) 740 ввода могут реализовывать одну или более технологий естественного пользовательского интерфейса, такие как распознавание речи или распознавание касания и пера. В качестве других примеров, устройство(а) 740 ввода могут включать в себя сканирующее устройство; сетевой адаптер или другое устройство, которое предоставляет входные данные в устройство 700. Устройство(а) 750 вывода могут быть дисплеем, принтером, динамиком, сетевым адаптером или другим устройством, которое обеспечивает вывод из устройства 700. Устройство(а) 740 ввода и устройство(а) 750 вывода могут быть объединены в единую систему или устройство, такое как экран касания или система виртуальной реальности.
[0059] Соединение(я) 760 связи предоставляют возможность связи через среду связи с другим вычислительным объектом. Дополнительно, функциональность компонентов устройства 700 может быть реализована в единственной вычислительной машине или во множественных вычислительных машинах, которые способны осуществлять связь по соединениям связи. Таким образом, устройство 700 может работать в сетевом окружении (например, в окружении 100), использующем логические соединения с одним или более другими серверами, сетевыми PC или другим общим сетевым узлом. В качестве примера, а не ограничения, среда связи включает в себя проводные или беспроводные технологии сетевого взаимодействия.
[0060] В соответствии с реализациями сущности изобретения, описанной в данном документе, модуль 120 администрирования может быть исполнен на устройстве 700, чтобы управлять и отслеживать операции, относящиеся к событию, касающемуся объекта. При исполнении посредством блока 760 обработки, по меньшей мере, часть модуля 120 администрирования будет загружена в память 720. Другая часть (если есть) модуля 120 администрирования может быть сохранена в хранилище 730 или на каком-либо другом энергонезависимом носителе хранения. При эксплуатации модуль 120 администрирования может выполнять один или более способов/процессов, которые описаны выше.
Примерные сценарии
[0061] Сейчас примерные реализации сущности изобретения, описанной в данном документе, будут описаны в контексте администрирования защиты авторских прав в сфере цифровой информации (CRM). Например, сторона (например, издатель) захочет легко и надежно управлять и отслеживать движение своего цифрового контента и гарантировать, что цифровой контент используется предназначенной стороной (например, зрителем) в указанных пределах времени или в количестве указанного числа раз. Примеры цифрового контента включают в себя, но не только, видеозаписи, аудиозаписи, изображения, обзоры или любой другой подходящий цифровой контент.
[0062] Для этого издатель может предписывать набор 150 правил для цифрового контента и сохранять набор 150 правил в цепочке блоков 110 посредством модуля 120 администрирования. Например, набор 150 правил может указывать, что любой зритель, который принимает цифровой контент от издателя, может потреблять цифровой контент лишь в течение 15 дней. Цифровой контент может быть доступен или потреблен зрителем только в течение этого периода. Набор 150 правил может также указывать, что зритель может совместно использовать цифровой контент с другими зрителями не более чем 10 раз.
[0063] В одной реализации настройка и проверка набора 150 правил может быть реализована как исполняемый код. Фрагмент примерного кода показан далее:
content AutoDelete{ // удаление цифрового контента через 15 дней
Unit_64 public start_time;
Unit public digital_content;
Int public lifetime;
function AutoDelete{ // конструктор, вызываемый, когда создается набор 150 правил
lifetime=15 day;
digital_content=0;
start_time=0;
transfer_times=10;
}
function() { // основной код, вызываемый при инициировании
if (msg.sender.type == 'delete' && digital_content && now - start_time> lifetime){ // периодическая системная транзакция проверки удаления
unit object=digital_content;
digital_content=0;
delete (object);
}
else if (msg.sender.type == 'digital_content'){ // передача цифрового контента
start_time=now;
digital_content=msg.sender.object;
}
else if (msg.sender.type == 'viewer' && digital_content && msg.sender.value <= transfer_times){ // обработка цифрового контента
transfer_times -= msg.sender.value;
}
[0064] Издатель отправляет запрос настройки кода модулю 120 администрирования. Модуль 120 администрирования рассылает код для подтверждений другими сторонами. Затем издатель может отправлять запрос передачи цифрового контента первому зрителю. Модуль 120 администрирования будет проверять распределенную базу данных 110, чтобы определять, одобряет ли первый зритель набор 150 правил. Если так, модуль 120 администрирования извлекает ссылку на код из запроса, осуществляет доступ к коду и инструктирует исполнение кода, чтобы проверять, существует ли какое-либо нарушение.
[0065] При определении, что запрошенная операция является действительной, модуль 120 администрирования разрешает распространение цифрового контента первому зрителю. Запись для этой операции распространения создается и сохраняется в цепочке 110 блоков. Эта запись является характерной (специфичной) для набора 150 правил. Как описано выше, все операции или действия, выполняемые издателем и первым зрителем над цифровым контентом при соблюдении набора 150 правил, принадлежат одному и тому же событию. В результате, их записи в цепочке 120 блоков будут иметь одинаковый ID события.
[0066] Предположим, что первый зритель хочет совместно использовать цифровой контент со вторым зрителем. При приеме такого запроса модуль 120 администрирования проверяет запрошенную операцию на основе набора 150 правил. Более конкретно, в этом примере, посредством исполнения кода модуль 120 администрирования может проверять число раз, которое первый зритель уже совместно использовал цифровой контент с другими зрителями. Если число равно десяти (10), модуль 120 администрирования отвергнет запрос для совместного использования цифрового контента.
[0067] Дополнительно, как предписано набором 150 правил, любой зритель может потреблять цифровой контент только в течение 15 дней. Следовательно, после того как цифровой контент распространяется первому зрителю, модуль 120 администрирования может устанавливать таймер, чтобы наблюдать за интервалом времени, которое первый зритель обладает цифровым контентом. После того как 15 дней прошли, модуль 120 администрирования инициирует операцию удаления цифрового контента у первого зрителя.
[0068] Кроме того, издатель и/или зритель могут проверять состояния операций, которые они инициировали. Например, если издатель хочет отслеживать движение цифрового контента между различными сторонами, он может отправлять запрос отслеживания, включающий в себя ID события. В ответ, модуль 120 администрирования извлекает одну или более записей, включающих в себя этот ID события, из распределенной базы данных 110 и возвращает извлеченные записи издателю. В некоторых реализациях эти записи могут быть визуализированы, чтобы представлять движение цифрового контента. Например, фиг. 8 показывает схематичный чертеж пользовательского интерфейса (UI) 800, который показывает движение цифрового контента.
[0069] В показанном состоянии для UI 800 издатель 810 может ясно видеть путь распространения цифрового контента, когда цифровой контент сначала передается первому зрителю 802. Сторона 802, в свою очередь, предоставляет для совместного использования цифровой контент зрителю 803 и 804, и зритель 804 дополнительно совместно использует контент еще с дополнительным зрителем 805. Следует понимать, что UI 800 является лишь примером без предложения каких-либо ограничений относительно объема сущности изобретения, описанной в данном документе. UI любых других подходящих форм могут быть использованы, чтобы представлять движение цифрового контента к конечным пользователям.
[0070] Таким образом, если издатель обнаруживает, что цифровой контент незаконно распространяется некоторой стороне (например, конкуренту), издатель может предпринимать действия для защиты своего авторского права. Таким образом, издатель может эффективно и продуктивно управлять и отслеживать движение своего цифрового контента.
[0071] С целью иллюстрации сущности и принципа сущности изобретения, описанной в данном документе, некоторые конкретные реализации его были описаны выше. Устанавливая набор правил, определяющий одно или более ограничений на одну или более операций, связанных с объектом, и отслеживая объект на основе ID события, одной стороне может быть предоставлена возможность управлять и отслеживать движение или распространение объекта, которым она первоначально владела, между другими сторонами простым, достоверным и надежным образом.
[0072] В целом, различные примерные реализации могут быть реализованы в аппаратных средствах или специализированных схемах, программном обеспечении, логике или любом их сочетании. Некоторые аспекты могут быть реализованы в аппаратных средствах, в то время как другие аспекты могут быть реализованы в микропрограммном или программном обеспечении, которое может быть выполнено контроллером, микропроцессором или другим вычислительным устройством. В то время как различные аспекты примерных реализаций сущности изобретения, описанной в данном документе, иллюстрируются и описываются как блок-схемы, блок-схемы последовательности операций или с помощью некоторого другого иллюстрированного представления, будет понятно, что блоки, устройства, системы, методы или способы, описанные в данном документе, могут быть реализованы, в качестве неограничивающих примеров, в аппаратных средствах, программном обеспечении, микропрограммном обеспечении, специализированных схемах или логике, аппаратных средства общего назначения или контроллере или других вычислительных устройствах, или некотором их сочетании.
[0073] В контексте сущности изобретения, описанной в данном документе, машиночитаемый носитель может быть любым материальным носителем, который может содержать или хранить программу для использования или в соединении с системой исполнения инструкций, аппаратом или устройством. Машиночитаемый носитель может быть машиночитаемым носителем сигнала или машиночитаемым носителем хранения. Машиночитаемый носитель может включать в себя, но не только, электронную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, аппарат или устройство, или любое подходящее сочетание вышеупомянутого. Более конкретные примеры машиночитаемого носителя хранения будут включать в себя электрическое соединение, имеющее один или более проводов, переносную компьютерную дискету, жесткий диск, оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), стираемое программируемое постоянное запоминающее устройство (EPROM или флеш-память), оптоволокно, постоянное запоминающее устройство на переносных компакт-дисках (CD-ROM), оптическое запоминающее устройство, магнитное запоминающее устройство или любое подходящее сочетание вышеупомянутого.
[0074] Компьютерный программный код для выполнения способов сущности изобретения, описанной в данном документе, может быть написан в любом сочетании из одного или более языков программирования. Эти компьютерные программные коды могут быть предоставлены процессору компьютера общего назначения, компьютеру специализированного назначения или другому программируемому устройству обработки данных, так что программные коды, когда исполняются процессором компьютера или другого программируемого устройства обработки данных, инструктируют реализацию функций или операций, указанных в блок-схемах последовательности операций и/или блок-схемах. Программный код может исполняться полностью на компьютере, частично на компьютере, как автономный пакет программного обеспечения, частично на компьютере и частично на удаленном компьютере или полностью на удаленном компьютере или сервере.
[0075] Дополнительно, в то время как операции изображаются в конкретном порядке, это не следует понимать как требование того, что такие операции должны выполняться в конкретном показанном порядке либо в последовательном порядке, или что все проиллюстрированные операции должны выполняться для того, чтобы достигать желаемых результатов. При определенных обстоятельствах может быть преимущественной многозадачная и параллельная обработка. Аналогично, в то время как несколько конкретных деталей реализации содержатся в вышеприведенных обсуждениях, они не должны истолковываться как ограничения объема какого-либо описания изобретения или того, что может быть заявлено, а скорее как описания отличительных признаков, которые могут быть характерными для конкретных реализаций конкретных описаний изобретения. Некоторые отличительные признаки, которые описываются в этой спецификации в контексте отдельных реализаций, могут также быть реализованы в сочетании в одной реализации. Наоборот, различные признаки, которые описываются в контексте одной реализации, могут также быть реализованы во множестве реализаций отдельно или в любой подходящей подкомбинации.
[0076] Теперь только с целью иллюстрации некоторые примерные реализации будут перечислены ниже.
[0077] В некоторых реализациях сущность изобретения, описанная в данном документе, может быть осуществлен как способ. Способ содержит прием, от первой стороны из множества сторон, запроса операции, связанной с объектом; проверку запрошенной операции на основе набора правил, согласованного множеством сторон, причем набор правил определяет одно или более ограничений на одну или более операций, связанных с объектом; и в ответ на проверку того, что запрошенная операция является действительной, инструктирование выполнения операции; создание записи для операции, причем запись является характерной для набора правил; и сохранение записи в распределенной базе данных, которая является доступной множеству сторон.
[0078] В некоторых реализациях способ дополнительно содержит установку набора правил для множества сторон посредством: приема, от второй стороны из множества сторон, запроса для установки набора правил; рассылку набора правил множеству сторон; и в ответ на прием подтверждений в отношении набора правил, по меньшей мере, от одной из множества сторон, задействование набора правил.
[0079] В некоторых реализациях задействование набора правил содержит: в ответ на прием подтверждения по набору правил от третьей стороны из множества сторон, создание записи для подтверждения, запись включает в себя подпись третьей стороны; и сохранение записи для подтверждения в распределенной базе данных.
[0080] В некоторых реализациях способ дополнительно содержит: прием, от четвертой стороны из множества сторон, запроса для отслеживания объекта; в ответ на прием запроса для отслеживания объекта извлечение одной или более записей для операций, связанных с объектом, из распределенной базы данных; и предоставление извлеченных записей четвертой стороне.
[0081] В некоторых реализациях проверка запрошенной операции дополнительно содержит: в ответ на прием запроса для операции, рассылку уведомления, связанного с операцией, множеству сторон.
[0082] В некоторых реализациях проверка запрошенной операции содержит: извлечение, из запроса, ссылки на набор правил; и обращение к набору правил на основе ссылки для проверки.
[0083] В некоторых реализациях набор правил включает в себя исполняемый код, и при этом проверка запрошенной операции содержит: проверку запрошенной операции посредством инструктирования исполнения кода.
[0084] В некоторых реализациях первая запись дополнительно включает в себя по меньшей мере одно из следующего: идентификатор события (ID), характерный для набора правил, ссылку на набор правил, ID для операции, описание операции, подпись первой стороны, открытый ключ для дешифрования подписи первой стороны и отметку времени, указывающую момент времени, когда первый запрос отправлен.
[0085] В некоторых реализациях способ дополнительно содержит: прием запроса состояния операции, причем состояние указывает, выполнена ли операция успешно; в ответ на запрос определение числа последующих записей, присоединенных к записи для операции в распределенной базе данных; и определение состояния операции на основе числа последующих записей.
[0086] В некоторых реализациях сущность изобретения, описанная в данном документе, может быть осуществлен как устройство. Устройство содержит блок обработки и память. Память соединяется с блоком обработки и хранит инструкции для исполнения блоком обработки. Инструкции, когда исполняются блоком обработки, инструктируют устройству принимать, от первой стороны из множества сторон, запрос операции, связанной с объектом; проверять запрошенную операцию на основе набора правил, согласованного множеством сторон, причем набор правил определяет одно или более ограничений в отношении одной или более операций, связанных с объектом; и в ответ на проверку того, что запрошенная операция является действительной, инструктировать выполнение операции, создавать запись для операции, причем запись является характерной для набора правил, и сохранять запись в распределенной базе данных, которая является доступной множеству сторон.
[0087] В некоторых реализациях инструкции, когда исполняются блоком обработки, дополнительно инструктируют устройству устанавливать набор правил для множества сторон посредством: приема, от второй стороны из множества сторон, запроса для установки набора правил; рассылки набора правил множеству сторон; и в ответ на прием подтверждений в отношении набора правил, по меньшей мере, от одной из множества сторон, задействования набора правил.
[0088] В некоторых реализациях задействование набора правил содержит: в ответ на прием подтверждения в отношении набора правил от третьей стороны из множества сторон, создание записи для подтверждения, причем запись включает в себя подпись третьей стороны; и сохранение записи для подтверждения в распределенной базе данных.
[0089] В некоторых реализациях инструкции, когда исполняются блоком обработки, дополнительно инструктируют устройству: принимать, от четвертой стороны из множества сторон, запрос для отслеживания объекта; в ответ на прием запроса для отслеживания объекта извлекать одну или более записей для операций, связанных с объектом, из распределенной базы данных; и предоставлять извлеченные записи четвертой стороне.
[0090] В некоторых реализациях проверка запрошенной операции дополнительно содержит: в ответ на прием запроса для операции рассылку уведомления, связанного с операцией, множеству сторон.
[0091] В некоторых реализациях проверка запрошенной операции содержит: извлечение из запроса ссылки на набор правил; и обращение к набору правил на основе ссылки для проверки.
[0092] В некоторых реализациях набор правил включает в себя исполняемый код, и проверка запрошенной операции содержит: проверку запрошенной операции посредством инструктирования исполнения кода.
[0093] В некоторых реализациях запись дополнительно включает в себя по меньшей мере одно из следующего: ID события, характерный для набора правил, ссылку на набор правил, ID для операции, описание операции, подпись первой стороны, открытый ключ для дешифрования подписи первой стороны и отметку времени, указывающую момент времени, когда запрос отправлен.
[0094] В некоторых реализациях инструкции, когда исполняются процессором, дополнительно инструктируют устройству: принимать запрос состояния операции, причем состояние указывает, выполнена ли операция успешно; в ответ на запрос определять число последующих записей, присоединенных к записи для операции в распределенной базе данных; и определять состояния операции на основе числа последующих записей.
[0095] В некоторых реализациях сущность изобретения, описанная в данном документе, может быть осуществлена как компьютерный программный продукт. Компьютерный программный продукт материально хранится на энергонезависимом машиночитаемом носителе и содержит машиноисполняемые инструкции. Инструкции, когда исполняются на устройстве, инструктируют устройству: принимать, от первой стороны из множества сторон запрос операции, связанной с объектом; проверять запрошенную операцию на основе набора правил, согласованного множеством сторон, причем набор правил определяет одно или более ограничений на одну или более операций, связанных с объектом; и в ответ на проверку того, что запрошенная операция является действительной, инструктировать выполнение операции, создавать запись для операции, причем запись является характерной для набора правил, и сохранять запись в распределенной базе данных, которая является доступной множеству сторон.
[0096] В некоторых реализациях инструкции, когда исполняются на устройстве, дополнительно инструктируют устройству устанавливать набор правил для множества сторон посредством: приема от второй стороны из множества сторон запроса установки набора правил; рассылки набора правил множеству сторон; и в ответ на прием подтверждений в отношении набора правил, по меньшей мере, некоторой из множества сторон, задействования набора правил.
[0097] В некоторых реализациях задействование набора правил содержит: в ответ на прием подтверждения в отношении набора правил от третьей стороны из множества сторон, создание записи для подтверждения, причем запись включает в себя подпись третьей стороны; и сохранение записи для подтверждения в распределенной базе данных.
[0098] В некоторых реализациях инструкции, когда исполняются на устройстве, дополнительно инструктируют устройству: принимать, от четвертой стороны из множества сторон, запрос для отслеживания объекта; в ответ на прием запроса для отслеживания объекта извлекать одну или более записей для операций, связанных с объектом, из распределенной базы данных; и предоставлять извлеченные записи четвертой стороне.
[0099] В некоторых реализациях проверка запрошенной операции дополнительно содержит: в ответ на прием запроса для операции рассылку уведомления, связанного с операцией, множеству сторон.
[00100] В некоторых реализациях проверка запрошенной операции содержит: извлечение, из запроса, ссылки на набор правил; и обращение к набору правил на основе ссылки для проверки.
[00101] В некоторых реализациях набор правил включает в себя исполняемый код, и проверку запрошенной операции содержит: проверку запрошенной операции посредством инструктирования исполнения кода.
[00102] В некоторых реализациях запись дополнительно включает в себя, по меньшей мере, одно из следующего: ID события, характерный для набора правил, ссылку на набор правил, ID для операции, описание операции, подпись первой стороны, открытый ключ для дешифрования подписи первой стороны и отметку времени, указывающую момент времени, когда запрос отправлен.
[00103] В некоторых реализациях инструкции, когда исполняются на устройстве, дополнительно инструктируют устройству: принимать запрос состояния операции, причем состояние указывает, выполнена ли операция успешно; в ответ на запрос определять число последующих записей, присоединенных к записи для операции в распределенной базе данных; и определять состояния операции на основе числа последующих записей.
[00104] Различные модификации, адаптации к вышеупомянутым примерным реализациям этого описания изобретения могут стать очевидными специалистами в связанных областях техники, принимая во внимание вышеприведенное описание, когда читается вместе с сопровождающими чертежами. Какие-либо и все модификации будут все еще попадать в объем неограничивающих и примерных реализаций этого изобретения. Кроме того, другие реализации описаний изобретения, изложенных в данном документе, придут на ум специалисту в области техники, к которой эти реализации изобретения принадлежат, имеющие пользу учений, представленных в вышеприведенных описаниях и чертежах.
[00105] Следовательно, будет понятно, что реализации изобретения не должны ограничиваться конкретными раскрытыми реализациями, и что модификации и другие реализации предназначаются, чтобы быть включенными в объем прилагаемой формулы изобретения. Хотя конкретные термины используются в данном документе, они используются только в общем и описательном смысле, а не в целях ограничения.