СПОСОБ И СИСТЕМА ВНЕШНЕГО ХРАНЕНИЯ ДАННЫХ
METHOD AND SYSTEM FOR EXTERNAL DATA STORAGE

Область техники, к которой относится изобретение
Настоящее изобретение относится, в общем, к способам внешнего хранения данных, обработанных устройством обработки данных. В частности, изобретение относится к способам внешнего хранения данных, способам импортирования данных и способу обеспечения внешнего хранения данных и импортирования данных. Изобретение также относится к применению таких способов в мультимедийной системе, а также к системе и компьютерной программе для выполнения таких способов.
Предшествующий уровень техники
Примеры способа обеспечения внешнего хранения данных, способа внешнего хранения данных и системы, выполненной с возможностью реализации такого способа известны, например, из US 5757919. В этой публикации раскрыты способ и система для поддержания целостности и секретности страниц, отображаемых во внешнее запоминающее устройство из физически защищенной среды. Эта физически защищенная среда содержит защищенный процессор, подсоединенный посредством шины к оперативному запоминающему устройству. Средство проверки целостности выполняет одностороннее хеширование данных, пересылаемых в виде страниц между защищенной средой и незащищенной средой, в частности, внешним запоминающим устройством. В одном варианте осуществления архитектура процессора соответствует использованию страницы размером 1 кбайт. Главный процессор в незащищенной среде интерпретирует эти страницы защищенного процессора, сохраненные во внешней памяти, как блоки данных размером 1 кбайт. Если страница идентифицирована как необходимо, выполняют определение того, присутствует ли эта страница в защищенной памяти. Если страница имеется, то имеет место удачное обращение к странице, при этом не выполняют никаких дополнительных действий. Если же страницы нет в наличии, то имеет место обращение к отсутствующей странице. В случае, когда имеет место обращение к отсутствующей странице, выполняют определение того, имеется ли пространство, доступное в защищенной памяти, на которое можно отобразить требующуюся страницу. Если пространство недоступно, то выбирают страницу для извлечения из совокупности страниц. Для этого можно использовать различные критерии, например наиболее давно использованную страницу.
Для упомянутых известных способа и системы характерен недостаток, заключающийся в том, что трудно выбрать порцию данных, подлежащую переносу во вторичную систему хранения данных. Поскольку помещение в совокупность страниц и извлечение из совокупности страниц в общем случае приводит к задержке, и службы защиты увеличивают эту задержку в случае обращения к отсутствующей странице, это замедляет обработку активных записей.
Другой пример способа внешнего хранения данных, способа импортирования данных, способ обработки записей в мультимедийной системе и системы, выполненной с возможностью реализации этих способов, раскрыт в FR-A-2 803471. В этой публикации раскрыт процесс управления памятью в телевизионном приемнике. Телевизионная система включает в себя телевизор, встроенное в телевизор средство локальной памяти и связанное с телевизором средство внешней памяти, такое как карта памяти или дисковод. Данная система содержит компьютерную программу, включающую в себя множество исполняемых модулей. Первый модуль принимает и анализирует каждый запрос на сохранение информации в памяти. Если характеристики средства памяти не позволяют осуществить сохранение новой информации, первый модуль запускает второй модуль. Второй модуль высвобождает пространство памяти для соответствия критерию использования сохраненной информации. Эти первый и второй модуль используют ряд простых процедур с целью оптимизации хранения информации. Эти процедуры реализуют, например, удаление данных из первого средства памяти во второе средство памяти.
Проблема этих известных системы и способа состоит в том, что они не позволяют обрабатывать часть записи или всю запись целиком после того, как она была экспортирована. Если бы это имело место и порция данных должна бы была быть перенесена в обратном направлении к телевизору на более поздней стадии, полный набор данных, принадлежащий этой записи, не был бы идентичен полному набору данных, в том виде как он был в последний раз обработан приложением в телевизоре перед экспортом.
Сущность изобретения
Согласно изобретению предоставляется способ обеспечения внешнего хранения данных, способ внешнего хранения данных, способ импортирования записи, способ обеспечения импортирования записи, первичное устройство обработки данных и средство компьютерной программы, которые являются более эффективными в плане количества переносов данных во вторичную систему хранения данных и из нее.
Это достигается посредством предоставления способа обеспечения внешнего хранения данных в системе, включающей в себя первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью обработки активных записей в процессоре и сконфигурированное для хранения данных, принадлежащих активным записям, в первичном устройстве хранения данных; и вторичную систему хранения данных, доступную для первичного устройства обработки данных, при этом данные, принадлежащие активной записи, сохраняют в первичном устройстве хранения данных, и эту запись экспортируют посредством переноса по меньшей мере порции данных, принадлежащей этой записи, во вторичную систему хранения данных для хранения, причем этап экспортирования записи включает в себя этап, на котором принимают по меньшей мере один вызов, инициированный прикладной программой с использованием данных, принадлежащих упомянутой записи, посредством интерфейса прикладного программирования, выполненного с возможностью посылки упомянутой порции данных во вторичную систему хранения данных.
Таким образом, поскольку перенесенная порция данных принадлежит записи, согласно данному способу обеспечивается возможность лучше учитывать тот факт, что процессору первичного устройства обработки данных потребуется доступ к данным, принадлежащим упомянутой записи, по сравнению с подходом, основывающимся на адресах памяти, доступных процессу, выполняемому процессором. Поскольку экспортирование инициируется прикладной программой, фактически использующей данные, принадлежащие записи, проще предсказать, какая запись, а следовательно, и порции данных, с большой вероятностью понадобится в ближайшем будущем.
Изобретение обеспечивает дополнительное преимущество, состоящее в том, что для соотнесения адресов виртуальной памяти с физическими адресами не требуются таблицы страниц.
Предпочтительный вариант осуществления включает в себя прием по меньшей мере одного сообщения экспортирования, включающего в себя информацию, идентифицирующую сегмент данных, включающий в себя данные, соответствующие по меньшей мере ассоциированной части только одной порции данных, и перенос по меньшей мере идентифицированного сегмента данных в ответ на сообщение экспортирования.
Таким образом, каждый сегмент данных, перенесенный во вторичную систему хранения данных для хранения, включает в себя данные, соответствующие ассоциированной части только одной порции данных. В случаях, когда более чем одна запись должна быть экспортирована, это предотвращает сохранение сегментов данных с субсегментом, соответствующим данным, принадлежащим одной записи, и субсегментом, соответствующим данным, принадлежащим другой записи. Иными словами, данные, соответствующие данным, принадлежащим одной записи, всегда хранятся в сегменте данных, отделенном от данных, соответствующих данным, принадлежащим другой записи. Этот вариант осуществления обеспечивает преимущество, состоящее в устранении ненужного переноса данных во вторичную систему хранения данных и, в частности, из нее.
Предпочтительный вариант осуществления включает в себя разделение порции данных на множество частей, прием множества сообщений экспортирования и идентификацию сегмента данных, включающего в себя данные, соответствующие ассоциированной части из упомянутого множества частей, и перенос по меньшей мере идентифицированного сегмента данных в ответ на каждое сообщение экспортирования.
Этот вариант осуществления имеет преимущество, состоящее в том, что обеспечивается адаптируемость к размеру основной памяти, доступной для первичного устройства обработки данных, и/или характеристикам интерфейса к вторичной системе хранения данных, например ширине конвейера данных.
В предпочтительном варианте осуществления данные, соответствующие ассоциированной части, генерируются посредством по меньшей мере частичного шифрования упомянутой ассоциированной части порции данных.
Поскольку сегменты данных, перенесенные во вторичную систему хранения данных для хранения, по меньшей мере частично зашифрованы, только первичное устройство хранения данных и процессор первичного устройства обработки данных необходимо поместить в защищенную среду с целью поддержания абсолютной совокупной защищенности данных. Поскольку для первичного устройства обработки данных необходимо только первичное устройство хранения данных с ограниченной емкостью, благодаря возможности внешнего хранения данных дешевле и проще обеспечивать такую защищенную среду.
Предпочтительный вариант осуществления включает в себя разделение порции данных на последовательность следующих друг за другом частей, прием ряда сообщений экспортирования, каждое из которых включает в себя информацию, идентифицирующую сегмент данных посредством положения соответствующей части в упомянутой последовательности, и включение данных, соответствующих информации, идентифицирующей сегмент данных, в сегмент данных перед его переносом во вторичную систему хранения данных.
Этот вариант осуществления обеспечивает преимущество, состоящее в том, что информация, описывающая порядок, в котором сегменты данных должны быть снова считаны, хранится во вторичной системе хранения данных. Таким образом, в первичном устройстве обработки данных с весьма ограниченной емкостью, в частности ограниченной энергозависимой основной памятью, части сегмента данных, подлежащие загрузке обратно в первичное устройство хранения данных, могут быть обработаны последовательно, без необходимости буферизации составляющих частей или сегментов данных, с которыми эти части ассоциированы.
Предпочтительно, способ включает в себя этапы, на которых вычисляют значение аутентификации для каждой части сегмента данных и включают данные, отражающие это значение аутентификации, в сегмент данных, который включает в себя данные, соответствующие этой части.
Таким образом, оказывается возможным определить на более поздней стадии, были ли подделаны данные в сегменте данных, в частности данные, соответствующие части порции данных, ассоциированной с сегментом данных.
Согласно другому аспекту изобретения предоставляется способ внешнего хранения данных в системе, включающей в себя первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью исполнения прикладных программ для обработки активных записей в процессоре и сконфигурированное для хранения данных, принадлежащих активным записям, в первичном устройстве хранения данных; и вторичную систему хранения данных, доступную первичному устройству обработки данных, при этом способ содержит этапы, на которых загружают данные, принадлежащие активной записи, в первичное устройство хранения данных и экспортируют запись посредством переноса по меньшей мере порции данных, принадлежащих этой записи, во вторичную систему хранения данных для хранения, при этом этап экспортирования включает в себя этапы, на которых выполняют вызов посредством прикладной программы с использованием данных, принадлежащих упомянутой записи, к интерфейсу, выполненному с возможностью переноса порции данных во вторичную систему хранения данных.
При применении этого способа управление внешним хранением данных, принадлежащих записям, передается прикладной программе, фактически использующей эти данные. Вызов может быть выполнен к интерфейсу прикладного программирования, выполненному с возможностью реализации способа обеспечения внешнего хранения данных согласно настоящему изобретению. В качестве альтернативы, способ может быть реализован непосредственно прикладной программой, выполняющейся на первичном устройстве обработки данных. Это, таким образом, дает преимущество, состоящее в обеспечении прикладной программе возможности определить, экспортирована ли запись или нет. Следовательно, прикладная программа может предотвратить перенос во вторичную систему хранения данных порции данных, принадлежащих записи, которую она будет обрабатывать в ближайшем будущем. Исполнение прикладной программы, таким образом, ускоряется, поскольку удается избежать задержки, связанной с экспортированием записи и последующим извлечением порции данных из вторичной системы хранения данных, когда ее необходимо снова изменить.
Предпочтительно, способ включает в себя перенос сегмента данных, включающего в себя данные, соответствующие по меньшей мере ассоциированной части только одной порции данных, принадлежащих записи.
Таким образом, каждая порция данных, переносимая во вторичную систему хранения данных, включает в себя данные, соответствующие ассоциированной части только одной порции данных. В случаях, когда необходимо экспортировать более одной записи, это предотвращает сохранение сегментов данных с субсегментом, соответствующим данным, принадлежащим одной записи, и субсегментом, соответствующим данным, принадлежащим другой записи. Иными словами, данные, соответствующие данным, принадлежащим одной записи, всегда хранятся в сегменте данных, отделенном от данных, соответствующих данным, принадлежащим другой записи. Этот вариант осуществления имеет преимущество, состоящее в устранении ненужного переноса данных во вторичную систему хранения данных и, в частности, из нее.
В предпочтительном варианте осуществления сегмент данных разделяется на множество частей, и при этом множество сегментов данных, каждый из которых включает в себя данные, соответствующие ассоциированной части из упомянутого множества частей, переносится во вторичную систему хранения данных для хранения.
Этот вариант осуществления дает преимущество, состоящее в обеспечении возможности адаптации экспортирования к размеру основной памяти, доступной первичному устройству обработки данных, и/или характеристикам интерфейса ко вторичной системе хранения данных, например ширине конвейера данных.
В предпочтительном варианте осуществления данные, соответствующие ассоциированной части данные генерируются посредством по меньшей мере частичного шифрования упомянутой ассоциированной части порции данных.
Поскольку сегменты данных, перенесенные во вторичную систему хранения данных для хранения, по меньшей мере частично зашифрованы, только для первичного устройства хранения данных и процессора первичного устройства обработки данных требуется помещение в защищенную среду для поддержания абсолютной совокупной защищенности данных. Поскольку первичное устройство обработки данных имеет только первичное устройство хранения данных с ограниченной емкостью, благодаря возможности внешнего хранения данных оказывается дешевле и проще обеспечить такую защищенную среду.
Предпочтительно, способ включает в себя этапы, на которых вычисляют значение аутентификации для каждой части порции данных и включают данные, отражающие это значение аутентификации, в сегмент данных, который включает в себя данные, соответствующие этой части.
Таким образом, можно удостовериться в целостности хранимых внешним образом данных.
Предпочтительный вариант этого варианта осуществления включает в себя вычисление значения аутентификации для по меньшей мере одной части порции данных, используя информацию, полученную из другой части, в качестве входных данных.
Таким образом, где порция данных разделена на части и внешним образом сохранена в отдельных сегментах данных, можно проверить целостность всего набора сегментов данных.
Предпочтительно, способ включает в себя этап, на котором сохраняют эталонный объект данных в устройстве хранения данных первичного устройства обработки данных для каждой экспортированной записи, включающий в себя уникальный идентификатор, при этом данные, отражающие этот уникальный идентификатор, включают в каждый сегмент данных, который включает в себя данные, соответствующие части порции данных, принадлежащих записи.
Таким образом, обеспечивается извлечение различных сегментов данных, содержащих данные, соответствующие порции данных, сохраненной внешним образом.
Предпочтительно, соответствующий настоящему изобретению способ включает в себя этап, на котором сохраняют информацию, отражающую счет версии для экспортированной записи, и увеличивают счет версии перед экспортированием записи.
Таким образом, оказывается возможным отслеживать количество раз, которые запись была экспортирована. Это обеспечивает возможность синхронизации данных, принадлежащих записи, которая хранится в первичном устройстве хранения данных, и порции данных, которая хранится внешним образом.
Согласно другому аспекту изобретения предоставляется способ импортирования записи в системе, включающей в себя первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью обработки активных записей в процессоре и сконфигурированное для хранения данных, принадлежащих активным записям, в первичном устройстве хранения данных; и вторичную систему хранения данных, доступную первичному устройству обработки данных и выполненную с возможностью хранения порции данных, перенесенной посредством способа внешнего хранения данных, соответствующего настоящему изобретению, при этом способ включает в себя этапы, на которых загружают данные, принадлежащие записи, в первичное устройство хранения данных, при этом система включает в себя интерфейс для извлечения порции данных, принадлежащих записи, из вторичной системы хранения данных, и способ дополнительно включает в себя этапы, выполняемые прикладной программой, сконфигурированной для использования данных, принадлежащих записи, на которых определяют, что запись подлежит импортированию, и выполняют по меньшей мере один вызов к упомянутому интерфейсу.
Таким образом, прикладная программа, сконфигурированная для использования данных, принадлежащих записи, определяет, что порция данных, принадлежащих записи, должна быть перенесена в первичное устройство хранения данных из вторичной системы хранения данных. Первичное устройство обработки данных может быть тем же самым, что и первичное устройство обработки данных, задействованное в переносе порции данных во вторичную систему хранения данных, либо может отличаться от него. Таким образом, способ имеет преимущество, состоящее в обеспечении возможности совместного использования данных, принадлежащих записи.
Предпочтительный вариант осуществления изобретения включает в себя прием по меньшей мере одного сегмента данных, включающего в себя данные, соответствующие по меньшей мере ассоциированной части одной порции данных из вторичной системы хранения данных.
Таким образом, сегмент данных включает в себя данные, соответствующие ассоциированной части порции данных, принадлежащей одной записи. Нет необходимости отделять данные, принадлежащие одной записи, от данных, принадлежащих другой записи, а также в ненужной передаче данных, принадлежащих другой записи, с данными, принадлежащими записи, которую прикладная программа определила как необходимую.
Предпочтительно, способ включает в себя этап, на котором извлекают идентификатор, уникальный для записи, из эталонного объекта, хранящегося в устройстве хранения данных первичного устройства обработки данных, при этом сегменты данных хранятся во вторичной системе хранения данных с информацией, отражающей упомянутый уникальный идентификатор, и принимаются в ответ на сообщение импортирования, включающее в себя информацию, отражающую этот уникальный идентификатор.
Таким образом, первичное устройство остается осведомленным о существовании записи и обладает механизмом для доступа к данным, принадлежим ей, даже когда эти данные не хранятся в первичном устройстве хранения данных.
Предпочтительный вариант осуществления изобретения, в котором порция данных содержит множество частей, включает в себя прием некоторого количества сегментов данных, каждый из которых включает в себя данные, соответствующие ассоциированной части из упомянутого их множества.
Таким образом, этот вариант осуществления способа можно выполнять в первичном устройстве обработки данных с ограниченной производительностью, например ограниченной основной памятью, поскольку часть порции данных, принадлежащей записи, импортирование которой выполняется, можно обработать и загрузить в первичное устройство обработки данных последовательно. Этот вариант осуществления также приспособлен учитывать любые ограничения в отношении пропускной способности интерфейса ко вторичной системе хранения данных.
Предпочтительный вариант осуществления включает в себя прием по меньшей мере одного сегмента данных, включающего в себя значение аутентификации, извлечение секретной порции информации, хранящейся в первичном устройстве обработки данных, вычисление проверочного значения аутентификации для каждого сегмента данных на основе по меньшей мере части данных, соответствующей по меньшей мере ассоциированной части порции данных, используя секретную порцию информации, и сравнение проверочного значения аутентификации и значения аутентификации для каждого сегмента данных.
Таким образом, можно определить, являются ли данные, включенные в принятые сегменты данных, подлинными. Вследствие вычисления проверочного значения аутентификации нет необходимости хранить его в первичном устройстве обработки данных, в частности в первичном устройстве хранения данных.
Предпочтительно, способ включает в себя прием сегмента данных, включающего в себя информацию, отражающую счет версии для экспортированной записи и сравнение счета версии с опорным счетом версии.
Это обеспечивает первичному устройству обработки данных возможность проверять, что извлеченные данные являются данными, соответствующими ожидаемой версии записи. Это является особенно полезным, если другое первичное устройство обработки данных могло осуществить доступ к хранящейся внешним образом порции данных.
Согласно еще одному аспекту настоящего изобретения предоставляется способ обеспечения импортирования записи в системе, включающей в себя первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью обработки активных записей в процессоре и сконфигурированное для хранения данных, принадлежащих активной записи, в первичном устройстве хранения данных; и вторичную систему хранения данных, доступную первичному устройству обработки данных и выполненную с возможностью хранения порции данных, перенесенной посредством вышеизложенного способа внешнего хранения данных согласно настоящему изобретению, при этом данные, принадлежащие активной записи, загружают в первичное устройство хранения данных и импортируют запись посредством извлечения по меньшей мере порции данных, принадлежащей записи, из вторичной системы хранения данных, причем этап импортирования записи включает в себя прием по меньшей мере одного вызова, инициированного прикладной программой с использованием данных, принадлежащих записи, посредством интерфейса прикладного программирования, выполненного с возможностью извлечения порции данных из вторичной системы хранения данных.
Этот способ выполняется посредством интерфейса прикладного программирования с целью обеспечения возможности реализации варианта осуществления способа импортирования записи согласно настоящему изобретению. В частности, согласно этому варианту осуществления, некоторые функциональные возможности, необходимые для реализации данного способа, переносятся в интерфейс прикладного программирования, доступный множеству прикладных программ. Таким образом, нет необходимости включать эти функциональные возможности в прикладную программу. Прикладная программа по-прежнему контролирует то, какая запись и когда импортируется, тем самым устраняется большая часть задержки, связанной со слишком часто повторяющимися импортированием и экспортированием. Этот вариант осуществления особенно подходит для использования в первичном устройстве обработки данных с поддержкой многозадачности.
Согласно изобретению также предоставляется способ внешнего хранения данных, способ импортирования данных, способ обработки записей в мультимедийной системе, а также систему и компьютерную программу, которые позволяют первичному устройству обработки данных выполнять проверку целостности данных, принадлежащих записи.
Это достигается посредством предоставления способа внешнего хранения данных в системе, включающей в себя первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью обработки активных записей в процессоре и сконфигурированное для хранения данных, принадлежащих активным записям, в первичном устройстве обработки данных; и вторичную систему хранения данных, доступную первичному устройству обработки данных, при этом способ включает в себя этапы, на которых загружают данные, принадлежащие активной записи, в первичное устройство хранения данных и экспортируют запись посредством переноса по меньшей мере порции данных, принадлежащих этой записи, во вторичную систему хранения данных для хранения, при этом способ включает в себя этап, на котором сохраняют информацию, отражающую счет версии для экспортируемой записи, и увеличивают счет версии перед экспортированием записи.
Таким образом, если после экспортирования любая часть данных, принадлежащих записи, например экспортированная порция данных или любые данные, остающиеся в первичном устройстве хранения данных, изменяется, то можно выполнить сравнение с хранящимся счетом версии с целью определения того, синхронизированы ли по-прежнему части.
Изобретение имеет дополнительное преимущество, состоящее в том, что поскольку поддерживается счет, отражающий количество раз, которые запись была экспортирована, получается мера использования этой записи первичным устройством, что позволяет установить ограничение на это использование. Дополнительный эффект состоит в том, что можно отслеживать то, какая запись экспортируется наиболее часто, так что эту запись можно поддерживать в первичном устройстве хранения данных, а вместо нее экспортировать другую запись.
Предпочтительно, способ включает в себя сохранение эталонного объекта данных в устройстве хранения данных первичного устройства обработки данных, включающего в себя уникальный идентификатор и копию информации, отражающей счет версии.
Таким образом, первичное устройство обработки данных имеет доступ к копии информации, которая не может быть изменена каким-либо другим устройством обработки данных, для которого вторичная система хранения данных также доступна.
Предпочтительный вариант осуществления дополнительно включает в себя перенос по меньшей мере одного сегмента данных, который содержит данные, соответствующие по меньшей мере ассоциированной части порции данных, и данные, соответствующие информации, отражающей счет версии, во вторичную систему хранения данных.
Таким образом, счет версии, действительный для части порции данных, сохраняется во вторичной системе хранения данных с каждым сегментом. Этот вариант осуществления имеет преимущество, состоящее в том, что он позволяет разделить порцию данных на части, которые сохраняются внешним образом так, что можно проверить, что эти части принадлежат одной и той же версии всей совокупности данных, принадлежащих записи. В частности, сегменты данных можно хранить на разных устройствах хранения данных в составе вторичной системы хранения данных и снова собрать в действительную совокупность данных, принадлежащих записи.
Предпочтительный вариант осуществления включает в себя определение того, были ли изменены какие-либо данные, принадлежащие активной записи, после загрузки в первичное устройство хранения данных и увеличение счета версии только после определения того, что некоторые данные, принадлежащие активной записи, были изменены.
Это ограничивает диапазон, в котором может лежать значение счета версии. Это особенно выгодно, когда копия информации, отражающей счет версии, хранится в первичном устройстве хранения данных, поскольку требуется резервировать меньше памяти для хранения этой копии.
Согласно другому аспекту изобретения предоставляется способ импортирования данных в системе, включающей в себя первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью обработки активных записей в процессоре и сконфигурированное для хранения данных, принадлежащих активной записи, в первичном устройстве хранения данных; и вторичную систему хранения данных, доступную первичному устройству обработки данных и выполненную с возможностью хранения порции данных, перенесенных посредством способа, соответствующего одному из вышеизложенных способов внешнего хранения данных согласно настоящему изобретению, при этом по меньшей мере один сегмент данных, включающий в себя данные, соответствующие по меньшей мере ассоциированной части порции данных, извлекают из вторичной системы хранения данных, причем принимают сегмент данных, включающий в себя информацию, отражающую счет версии для экспортированной записи, и сравнивают счет версии с опорным счетом версии.
Этот способ имеет преимущество, состоящее в обеспечении возможности проверки данных, извлекаемых из вторичной системы хранения данных. Он особенно полезен в средах, которые допускают экспортирование и импортирование записей различными первичными устройствами обработки данных. Если запись была экспортирована первым первичным устройством обработки данных и далее импортирована и экспортирована вторым первичным устройством обработки данных, то первое первичное устройство обработки данных может определить с минимальными затратами на обработку данных, что версия записи, которую оно обработало последней, больше недоступна для импортирования. Таким образом, оно знает, что ему потребуется предоставление информации о последней версии, в текущий момент находящейся во вторичной системе хранения данных.
Один вариант осуществления этого способа включает в себя прием опорного счета версии из доверенной сторонней системы.
Это обеспечивает возможность обмена данными (“свопинга”) в первичных устройствах обработки данных. Первое первичное устройство обработки данных может экспортировать запись. Второе первичное устройство обработки данных затем выполняет этот вариант осуществления способа с целью получения возможности импортировать эту запись и продолжить ее обработку. Это особенно полезно в средах, где безопасности уделено повышенное внимание. Доверенная третья сторона управляет доступом к экспортированным записям. А именно, если второе первичное устройство обработки данных экспортирует запись вновь, то счет версии снова увеличивается на единицу. Первое устройство обработки данных может затем только импортировать эту запись, если оно примет обновленный счет версии из доверенной системы третьей стороны.
Преимущество достигается посредством применения любого из вышеизложенных способов в способе обработки записей в мультимедийной системе, выполненной с возможностью предоставления доступа к по меньшей мере одной последовательной порции цифрового контента (информационно значимого содержимого), формирующей событие и включающей в себя подсистему условного доступа, выполненную с возможностью управления доступом к упомянутому событию в соответствии с информацией, содержащейся в по меньшей мере одной записи, при этом мультимедийная система включает в себя защищенное первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью исполнения по меньшей мере одной прикладной программы для обработки активных записей в процессоре, когда к событию осуществляется доступ, и сконфигурированное для хранения данных, принадлежащих активной записи в первичном устройстве хранения данных; и вторичную систему хранения данных, доступную первичному устройству обработки данных.
В контексте настоящего изобретения термин “защищенное” означает, что первичное устройство обработки данных оснащено средством для противостояния инвазивным и неинвазивным атакам в отношении данных, хранящихся в ней и/или обрабатываемых ей, причем это средство может быть реализовано в аппаратном или программном обеспечении, либо реализовано в виде комбинации аппаратного и программного обеспечения. Поскольку стоимость и усилия, задействуемые в том, чтобы сделать первичное устройство обработки данных защищенным от несанкционированного вмешательства, возрастают с увеличением его рабочих показателей, т.е. емкости запоминающего устройства и/или производительности, предпочтительно ограничить размер, в частности размер первичного устройства хранения данных. Изобретение позволяет сделать это при сохранении возможности доступа к большому количеству различных записей, поскольку часть или все данные, принадлежащие записям, можно хранить внешним образом во вторичной системе хранения данных выгодным путем.
Согласно еще одному аспекту изобретения предоставляется первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью обработки активных записей в процессоре, сконфигурированное для хранения данных, принадлежащих активной записи, в первичном устройстве хранения данных и выполненное с возможностью реализации любого из вышеизложенных способов, соответствующих настоящему изобретению.
Согласно еще одному аспекту изобретения предоставляется средство компьютерной программы, которое при исполнении первичным устройством обработки данных, имеющим процессор и первичное устройство хранения данных, обеспечивает первичному устройству обработки данных возможность выполнения вышеизложенных способов согласно настоящему изобретению.
Изобретение далее описывается с дополнительными подробностями со ссылкой на сопровождающие чертежи.
Перечень фигур чертежей
Фиг.1 - схематическое представление типа системы, для которой предназначено настоящее изобретение.
Фиг.2 - схематическая диаграмма базы данных, поддерживаемой первичным устройством обработки данных согласно варианту осуществления изобретения.
Фиг.3 - схематическая диаграмма базы данных, хранящейся во вторичной системе хранения данных в варианте осуществления по Фиг.3.
Фиг.4 - блок-схема последовательности операций, иллюстрирующая создание записи.
Фиг.5 - блок-схема последовательности операций, иллюстрирующая изменение записи первичным устройством обработки данных.
Фиг.6 - блок-схема последовательности операций, иллюстрирующая некоторые этапы при экспортировании записи.
Фиг.7 - пример мультимедийной системы, в которой может быть реализовано настоящее изобретение.
Фиг.8 - пример базовой архитектуры первичного устройства обработки данных, показанного на Фиг.1.
Подробное описание изобретения
Для объяснения общих принципов способа внешнего хранения данных согласно настоящему изобретению, на Фиг.1 показан упрощенный пример системы, в которой он может быть применен. Более конкретный пример будет дополнительно проиллюстрирован ниже со ссылкой на Фиг.7 и 8.
На Фиг.1 первое устройство 1 обработки данных содержит центральный процессор (CPU) 2, основную память 3 и первичное массовое устройство 4 хранения данных. Первое устройство 1 обработки данных может, например, быть реализовано как сервер (например, сервер базы данных), персональный компьютер, персональное цифровое информационное устройство, встроенное устройство обработки данных, мобильный телефон и т.п. Вкратце, любое устройство обработки данных с процессором, устройством хранения данных и средством для доступа к вторичному устройству хранения данных является подходящим для реализации настоящего изобретения. В зависимости от реализации, основная память 3 может быть интегрирована на одном кристалле с CPU 2.
В описываемом здесь примере соответствующий настоящему изобретению способ используется для того, чтобы извлечь максимум из ограниченной емкости первичного массового устройства 4 хранения данных посредством временного переноса данных из первичного массового устройства 4 хранения данных во вторичную систему хранения данных. Однако этот способ может быть с тем же успехом применен для более оптимального использования емкости основной памяти 3 или кэш-памяти (не показана) в CPU 2. Таким образом, используемый здесь термин “первичное устройство хранения данных” может относиться как к энергозависимым, так и к энергонезависимым средствам хранения данных, включая оптические, магнитные и твердотельные устройства хранения данных.
На Фиг.1 первое устройство 1 обработки данных соединено со вторичной системой хранения данных, образованной вторым устройством 5 обработки данных. Соединение реализуется посредством линии 6 передачи данных. Второе устройство 5 обработки данных также содержит центральный процессор (CPU) 7 с основной памятью 8 и первым и вторым вторичными массовыми устройствами 9 и 10 хранения данных, соответственно. Согласно основным вариантам осуществления изобретения не является обязательным требованием, чтобы второе устройство обработки данных содержало CPU 7, хотя некоторая разновидность микропроцессора для направления данных во вторичные массовые устройства хранения данных будет присутствовать, если вторичная система хранения данных реализована как внешнее устройство, такое как второе устройство 5 обработки данных. В своем наиболее простом варианте осуществления изобретение позволяет просто извлечь максимум из ограниченной емкости первичного массового устройства 5 хранения данных посредством временного переноса данных во вторичное массовое устройство хранения данных внутри первого устройства 1 обработки данных.
В предпочтительном варианте осуществления, однако, используется внешнее устройство, поскольку соответствующий настоящему изобретению способ реализуется в системе, в которой первичное устройство обработки данных более сильно защищено от нацеленных на взлом атак, чем вторичное устройство обработки данных. В таких системах соответствующий настоящему изобретению способ исключительно полезен тем, что он обеспечивает механизм, посредством которого емкость и/или размер первичного устройства обработки данных может поддерживаться небольшим, что упрощает и удешевляет защиту.
Линия 6 передачи данных может быть сетевой линией связи, например линией связи Ethernet, IEEE 1394 (Firewire), либо она может быть линией шины данных, например, используя линию связи универсальной последовательной шиной (USB), интерфейса малых компьютерных систем (SCSI), RS-232, Bluetooth или линию связи подобного типа. В зависимости от типа используемой линии связи и производительности, требующейся для обработки сообщений, принадлежащих протоколу, CPU 7 второго устройства обработки данных может быть заменен более простым контроллером.
Первое устройство 1 обработки данных выполнено с возможностью исполнения одной или более прикладных программ, которые исполняются CPU 2. По меньшей мере одна прикладная программа сконфигурирована для обработки записей. Для целей настоящего изобретения запись понимается как совокупность элементов данных, скомпонованных для обработки прикладной программой. Компоновка данных предписана прикладной программой, обрабатывающей их. Изобретение охватывает как записи фиксированной длины, так и записи переменной длины. Согласно настоящему изобретению записи, которые подлежат обработке прикладной программой, исполняющейся в CPU 2, делаются активными. Активные записи, т.е. все данные, принадлежащие записям, делаются активными прикладными программами, исполняющимися на первом устройстве 1 обработки данных в любой момент времени, сохраняются в первичном массовом устройстве 4 хранения данных по меньшей мере на время, пока записи активны. Это не препятствует тому, что копии части или всех данных (возможно, уже не являющиеся текущими) хранились бы также где-нибудь еще, например в одном из вторичных массовых устройств 9, 10 хранения данных.
Согласно настоящему изобретению прикладные программы сконфигурированы для автономного принятия решения в отношении того, сохранять ли часть или все данные внешним образом, т.е. на устройстве хранения данных, отличающемся от первичного массового устройства 4 хранения данных. Правила, согласно которым такие решения принимаются, могут варьироваться. Например, может быть выполнено резервное копирование всех или части данных. Однако изобретение предпочтительно используется для экспортирования записи с целью того, чтобы значительную часть данных, принадлежащих записи, можно было удалить из первичного массового устройства 4 хранения данных для высвобождения пространства. Эта часть, или данные, обеспечивающие ее восстановление, т.е. данные, соответствующие этой части, переносится в одно из вторичных массовых устройств 9, 10 хранения данных для сохранения и последующего извлечения посредством процессов, называемых здесь, соответственно, экспортированием и импортированием.
После принятия решения в отношении того, что запись должна быть экспортирована, прикладная программа выполняет вызов к интерфейсу, выполненному с возможностью переноса порции данных, принадлежащей записи, во вторичное устройство 5 хранения данных. Интерфейс в данном случае определен как физическая и логическая структура, поддерживающая присоединение ко вторичной системе хранения данных. Предпочтительно, на первом устройстве 1 обработки данных установлена дополнительная прикладная программа или операционная система, которая поддерживает интерфейс прикладного программирования, к которому прикладная программа, обрабатывающая подлежащую экспортированию запись, может выполнить вызов. Таким образом, разработчикам прикладных программ для первого устройства 1 обработки данных не требуется самим заботиться о механизме для экспортирования записей. Тем не менее, варианты осуществления, в которых часть или все из логических средств для экспортирования записи содержатся в прикладной программе, не исключены из объема настоящего изобретения. В таких вариантах осуществления упоминаемый интерфейс в основном относится к физическому интерфейсу, т.е. механизму переноса данных через линию 6 передачи данных во вторичное устройство 5 обработки данных.
Следует отметить, что согласно настоящему изобретению прикладная программа, исполняющаяся на первом устройстве 1 обработки данных и обрабатывающая запись, выполняет вызов к интерфейсу для экспортирования записи. Однако другое приложение, использующее принадлежащие записи данные, предоставленные ему приложением, обрабатывающим запись на первом устройстве обработки данных, может также сделать вызов и впоследствии завершить обработку записи прикладной программой, исполняющейся на первом устройстве 1 обработки данных. Это другое приложение может даже исполняться на отдельном устройстве обработки данных, соединенном с первым устройством 1 обработки данных, включая второе устройство 5 обработки данных.
Для обеспечения возможности последующего импортирования записи в первичном устройстве хранения данных из состава первичного устройства 1 обработки данных хранится первичная база данных (Фиг.2). Это предпочтительно является первичным ассовым устройством 4 хранения данных, но также может быть другим устройством хранения данных, например основной памятью 3 или некоторым другим энергозависимым или энергонезависимым запоминающим устройством. Следует отметить, что первичное устройство хранения данных, в котором первое первичное устройство 1 обработки данных хранит первичную базу данных, может также быть периферийным устройством, но предпочтительно является внутренним устройством для более быстрого доступа к первичной базе данных. В любом случае она предпочтительно содержится в защищенной среде, совместно используемой с первым устройством 1 обработки данных.
Компоновка таблицы 11 первичной базы данных в первичной базе данных проиллюстрирована на Фиг.2. Следует отметить, что данная таблица является примером реализации изобретения. Точная структура данных не является важной для настоящего изобретения, лишь бы имелся по меньшей мере один эталонный объект данных для каждой записи, которая была экспортирована. В этом примере имеется запись 12а-12е первичной базы данных, соответствующая строке в таблице 11 первичной базе данных, для каждой экспортированной записи. Каждая запись 12 первичной базы данных содержит поле в столбце 13 индекса, содержащее уникальный ключ или индексный номер, используемый для доступа к записи 12 первичной базе данных. Значение в столбце 13 индекса уникально для каждой экспортированной записи. В столбце 14 номера версии таблицы 11 первичной базы данных хранится номер версии для каждой экспортированной записи. Номером версии может быть простой счетчик, или это может быть информация другого типа, отражающая счет версии для ассоциированной экспортированной записи. Например, если запись содержит некоторое количество полей, каждое из которых имеет конечное количество значений, информация в столбце 14 номера версии может представлять собой информацию, уникальным образом идентифицирующую одну из конечного количества возможных перестановок значений в полях экспортированной записи. Подразумеваются также и другие типы информации, отражающей счет версии.
Согласно настоящему примеру, второе устройство 5 обработки данных поддерживает таблицу 15 записей расширения (Фиг.3) в базе данных, хранящейся на каждом из вторичных массовых устройств 9, 10 хранения данных. Каждая из показанных строк соответствует записи 16а-16е расширения. Каждая запись 16 расширения ассоциирована с экспортированной записью. Элементы в столбце 17 индекса содержат информацию, отражающую идентификатор, уникальный для ассоциированной экспортированной записи. Таблица 15 записей расширения дополнительно содержит первый, второй и третий столбцы 18-21 блоков данных. Таким образом, каждая запись расширения в иллюстративных вторичных массовых устройствах 9, 10 хранения данных может содержать три блока данных. Каждый блок данных в записи 16 расширения для экспортированной записи включает в себя данные, соответствующие по меньшей мере ассоциированной части порции данных, принадлежащих экспортированной записи. Под соответствующими понимается то, что ассоциированная часть порции данных может быть полностью восстановлена из данных в экспортированной записи. Таким образом, данные в блоке данных могут быть зашифрованной, закодированной или уплотненной версией ассоциированной части порции данных, принадлежащих экспортированной записи. Предпочтительно, с каждым блоком данных хранится строка аутентификации. Таблица записей расширения дополнительно включает в себя столбец 21 номера версии, в котором хранится информация, отражающая счет версии для экспортированной записи. То, что было отмечено в отношении элементов в столбце 14 номера версии таблицы 11 первичной базы данных (Фиг.2) также относится к элементам в столбце 21 номера версии, проиллюстрированной на Фиг.3. В альтернативной реализации каждый блок данных в одном из первого, второго и третьего столбцов 18-20 сегментов данных может содержать отдельную информацию, отражающую счет версии, действительный только для этого блока данных, или храниться с такой информацией.
Когда запись создается прикладной программой, исполняемой на первом устройстве 1 обработки данных и использующей настоящее изобретение, первое устройство 1 обработки данных проходит этапы, показанные на Фиг.4. На первом этапе 22 инициализируют счетчик версии. Например, при использовании последовательных номеров счетчик версии устанавливают в нулевое значение, т.е. увеличенное от минус единицы до нуля. Затем прикладная программа делает запись активной и переходит к ее обработке обычным образом. Во время обработки данные, принадлежащие записи, которую модифицирует прикладная программа, сохраняют в первичном массовом устройстве 4 хранения данных. В некоторый момент прикладная программа определит, что запись больше не будет обрабатываться, или что имеется другая причина для экспортирования записи. Таким образом, она будет инициировать экспортирование записи посредством выполнения вызова к интерфейсу. Как было упомянуто, это может быть интерфейс прикладного программирования, обеспечиваемый как часть операционной системы первого устройства 1 обработки данных или другой прикладной программой.
Предполагается, что по меньшей мере CPU 2, основная память 3 и первичное массовое устройство 4 хранения данных являются частью защищенной среды, и что данные, принадлежащие записи, должны быть защищены. Таким образом, на втором этапе 23 данные, принадлежащие записи, шифруют и для этих данных вычисляют по меньшей мере одну строку аутентификации. На последующем этапе 24 первичную запись записывают в таблицу 11 первичной базы данных в первичном массовом устройстве 4 хранения данных. Это приводит к вводу информации, отражающей идентификатор, уникальный для экспортируемой записи, в соответствующий элемент в столбце индекса. Более того, счет версии записывают в элемент в столбце 14 номера версии. Таким образом, эталонный объект данных сохраняют в первичном массовом устройстве 4 данных для экспортированной записи, причем упомянутый эталонный объект данных включает в себя уникальный идентификатор и копию информации, отражающую счет версии.
Далее, на этапе 25, зашифрованную порцию данных, принадлежащих записи, переносят во вторичное устройство 5 обработки данных совместно со строкой аутентификации и информацией, отражающей счет версии. Второе устройство 5 обработки данных сохраняет содержимое перенесенного сегмента данных в таблице 15 записей расширения.
Согласно настоящему изобретению прикладная программа, использующая запись, которая была экспортирована, может также автономно принять решение снова импортировать эту запись. Вариант осуществления процесса импортирования показан на Фиг.5. Таким образом, в некоторый момент прикладная программа, использующая, т.е. сконфигурированная для использования, данные, принадлежащие записи, определяет, что эта запись должна быть импортирована. Прикладная программа выполняет вызов к интерфейсу ко вторичной системе хранения данных. Программное обеспечение, например часть интерфейса ко вторичной системе хранения данных, гарантирует, что сообщение посылается во вторичное устройство 5 обработки данных, запрашивая сегменты данных, включающие в себя данные, соответствующие данным, принадлежащим экспортированной записи. Упомянутое сообщение включает в себя по меньшей мере информацию, отражающую идентификатор, уникальный для экспортированной записи. Эту информацию извлекают из ассоциированного элемента в столбце 13 индекса таблицы 11 первичной базы данных. Интерфейс гарантирует, что по меньшей мере один сегмент данных, включающий в себя данные, соответствующие по меньшей мере ассоциированной части порции данных, хранимых внешним образом, извлекают на этапе 26. Извлеченный сегмент данных включает в себя информацию, отражающую счет версии. Эту информацию получают из ассоциированного элемента в столбце 21 номера версии таблицы 15 записей расширения. На этапе 27 первое устройство 1 обработки данных дешифрует зашифрованную часть порции данных в извлеченном сегменте данных, используя секретный ключ шифрования. Затем оно вычисляет проверочную строку аутентификации на основе дешифрованных данных. Проверочную строку аутентификации на этапе 28 сравнивают со строкой аутентификации, включенной в извлеченный сегмент данных. Если эти две строки совпадают, то из информации, включенной в извлеченный сегмент данных, извлекают счет версии и сравнивают его со счетом версии, полученным из элемента в столбце 14 номера версии таблицы 11 первичной базы данных. Если эти два значения совпадают, то дешифрованную порцию данных используют для сборки теперь импортированной записи. Импортированную запись сохраняют в первичном массовом устройстве 4 хранения данных для использования прикладной программой.
Предполагается, что исполняемая в первом устройстве 1 обработки данных прикладная программа действительно изменяет данные, принадлежащие записи (этап 29). После изменения она может опять принять решение, что запись должна быть экспортирована. В этом случае счет версии обновляют, т.е. увеличивают, например, на единицу, на этапе 30. Порцию данных, принадлежащих записи, шифруют и вычисляют строку аутентификации для нее на этапе 31. Затем первичную запись в таблице 11 первичной базы данных перезаписывают, т.е. информацию, отражающую увеличенный счет версии, записывают в соответствующий элемент в столбце 14 номера версии. Сегмент данных, включающий в себя зашифрованную порцию данных, строку аутентификации и копию информации, отражающей обновленный счет версии, переносят во второе устройство 5 обработки данных, где соответствующую запись 16 расширения в таблице 15 записей расширения обновляют, либо перезаписывают, если она была стерта.
Следует отметить, что в предпочтительном варианте осуществления настоящего изобретения принимаются во внимание характеристики CPU 2 и/или основной памяти 3, и/или линии 6 передачи данных. Это проиллюстрировано на Фиг.6. Пока часть порции данных 34, принадлежащих записи, обрабатывается для включения в сегмент данных, подлежащий переносу или извлечению из извлеченного сегмента данных, она содержится в основной памяти 3. Рабочие характеристики CPU 2 или основной памяти 3 могут, таким образом, установить ограничение на размер упомянутой части, при превышении которого импортирование и экспортирование приведут к нежелательному замедлению первого устройства 1 обработки данных. Другим ограничением на размер упомянутой части порции данных является размер результирующего сегмента данных, включающего в себя зашифрованную часть, строку аутентификации, счет версии и информацию индекса. Принимая во внимание наиболее ограничивающие из вышеупомянутых ограничений, первое устройство 1 обработки данных разделяет порцию данных 34, принадлежащих записи, подлежащей экспортированию, на некоторое количество частей 35-37 на первом этапе 38. В этом случае имеются первая, вторая и третья части 35-37. Разделение на части 35-37 может быть выполнено прикладной программой, обрабатывающей запись, или посредством исполнения модуля, принадлежащего интерфейсу прикладного программирования, к которому выполняет вызов прикладная программа. На последующем этапе 39 каждую из частей 35-37 раздельно шифруют, используя секретный ключ 40 шифрования, хранящийся в защищенной среде, части которой также составляют первичное массовое устройство 4 хранения данных, CPU 2 и основная память 3. Первый блок 41 данных соответствует первой части 35 порции данных 34, принадлежащих экспортируемой записи, второй блок 42 данных соответствует второй части 36 и третий блок 43 данных соответствует третьей части 37.
На следующем этапе 44 первую строку 45 аутентификации вычисляют для первой части 35 порции данных 34, используя первый блок 41 данных в качестве входных данных, а также секретный ключ 46 аутентификации. Секретный ключ 46 аутентификации также хранится в защищенной среде, части которой также составляют первичное массовое устройство 4 хранения данных, CPU 2 и основная память 3. На следующем этапе 47 создают первый сегмент 48 данных. Первый сегмент 48 данных включает в себя первый блок 41 данных, первую строку 45 аутентификации, информацию, соответствующую значению индекса, хранящемуся в элементе в столбце 13 индекса таблицы 11 первичной базы данных, для экспортированной записи, и информацию, отражающую тот факт, что первый сегмент 48 данных ассоциирован с первой частью 35 в последовательности частей 35-37, образующих порцию данных 34. Этот первый сегмент данных затем переносят во второе устройство 5 обработки данных для хранения.
Одновременно, вторую строку 49 аутентификации вычисляют на этапе 50. Вторую строку 49 аутентификации вычисляют на основе второго блока 42 данных и первой строки 45 аутентификации. Это может быть выполнено, например, посредством изначального сочленения второго блока 42 данных с первой строкой 45 аутентификации и последующего применения того же алгоритма аутентификации к результату, используя ключ 46 аутентификации, как он использовался на этапе 44.
На этапе 51 создают второй сегмент 52 данных. Этап 51 соответствует этапу 50. Таким образом, второй сегмент 52 данных содержит второй блок 42 данных, вторую строку 49 аутентификации и информацию, отражающую идентификатор, уникальный для экспортированной записи, а также информацию отражающую тот факт, что второй сегмент 52 данных ассоциирован со второй частью 36 в последовательности частей 35-37, сформированных из порции данных 34.
На этапе 53 вычисляют третью строку аутентификации, используя вторую строку 49 аутентификации в качестве входных данных, а также ключ 46 аутентификации и третий блок 43 данных. Этап 53, по существу, соответствует этапу 50.
На этапе 55 третий сегмент 56 данных создают и переносят во второе устройство 5 обработки данных. Аналогично первому и второму сегментам 48, 52 данных, третий сегмент 56 данных включает в себя третий блок 43 данных, третью строку 54 аутентификации и информацию, отражающую идентификатор, уникальный для экспортированной записи, а также информацию, отражающую тот факт, что третий сегмент 56 данных ассоциирован с третьей частью 37 в последовательности частей, сформированных из порции данных 34.
Следует отметить, что соответствующий настоящему изобретению способ можно одновременно применять к порциям данных, принадлежащим записям, отличающимся от записи, которой принадлежит порция данных 34. Сегменты 48, 52, 56 данных, ассоциированные с частями 35-37 порции данных 34, принадлежащих одной записи, не содержат, тем не менее, блоков данных, ассоциированных с частями порции данных, принадлежащих другой записи. Это гарантирует то, что размер первого, второго и третьего сегментов 48, 52, 56 данных остается соответствующим линии 6 передачи данных. Это также гарантирует эффективную обработку данных вторым устройством 5 обработки данных. В частности, когда запись вновь импортируют, извлекают точные копии первого, второго и третьего сегментов 48, 52, 56 данных. Во избежание ненужных переносов данных, выгодно отделять сегменты данных, созданные для одной записи, от сегментов, созданных для другой записи.
На Фиг.7 проиллюстрирован конкретный пример системы, в которой обрабатываются записи и которая хорошо подходит для применения настоящего изобретения. Иллюстрируемой системой является мультимедийная система, выполненная с возможностью предоставления доступа к по меньшей мере одной последовательной порции цифрового контента и включающая в себя подсистему условного доступа для управления доступом к цифровому контенту. Более конкретно, на Фиг.7 показано персональное устройство 57  видеозаписи, предназначенное для записи и проигрывания данных контента, загруженных или принятых в виде широковещания от распространителя такого контента.
2
Персональное устройство видеозаписи содержит средство 58 настройки (тюнер) для настройки на конкретную несущую частоту. Оно дополнительно включает в себя демодулятор 59, предназначенный для извлечения транспортного потока, включающего в себя один или более элементарных потоков, переносящих цифровой контент. Это могут быть, например, элементарные потоки формата MPEG-2 или потоки модулей доступа формата MPEG-4. Элементарные потоки обрабатываются мультимедийным процессором 60, который имеет доступ к основной памяти 61 для этой цели. Мультимедийный процессор 60 подсоединен к системной шине 62, например к шине IC. Мультимедийный процессор 60 дополнительно подсоединен в видеокодеру 63 и аудиоцифроаналоговому преобразователю (ЦАП, DAC) 64. Таким образом, персональное устройство видеозаписи выполнено с возможностью обеспечения доступности аналоговых аудио- и видеосигналов для устройства воспроизведения, такого как телевизор, через соответствующие выходы. Естественно, в альтернативном варианте осуществления персональное устройство видеозаписи может содержать кодер для обеспечения доступности выходных данных в форме (незащищенного) потока, закодированного согласно MPEG-2, который переносится, например, через домашнюю сеть Ethernet или IEEE 1394 в одно или более оконечных устройств домашней сети.
Контроллер 65 интерфейса также подсоединен к системной шине 62. Контроллер 54 интерфейса ретранслирует команды от пользователя к мультимедийному процессору, осуществляющему управление работой персонального устройства 57 видеозаписи, и в необязательном порядке может предоставлять пользователю информацию обратной связи. Например, контроллер интерфейса мог бы осуществлять управление инфракрасным портом для приема команд от удаленного устройства управления (не показано) или он мог бы осуществлять управление интерфейсом лицевой панели персонального устройства 57 видеозаписи.
Персональное устройство 57 видеозаписи дополнительно содержит контроллер 66 диска, подсоединенный к системной шине 62 и к оптическому дисководу 67 и накопителю 68 на жестких магнитных дисках. Оптический дисковод 67 и накопитель 68 на жестких магнитных дисках следует рассматривать просто как вариант массовых устройств хранения данных, содержащихся во вторичной системе хранения данных, для использования в способе, соответствующем настоящему изобретению.
Подсистема условного доступа содержит модуль 70 условного доступа (САМ), включающий в себя процессор 71, предназначенный для направления обмена данными от модуля 70 условного доступа и к нему. САМ 73 дополнительно содержит криптографический сопроцессор 72, выделенный цифровой процессор сигналов для выполнения операций шифрования и/или дешифрования. Примеры таких модулей САМ 70 известны из реализаций цифрового видеовещания (DVB), в которых САМ 70 осуществляет связь с интегрированным декодером приемника, частным примером которого является персональное устройство 57 видеозаписи, через общий интерфейс (CI). В этих известных реализациях модуль 70 условного доступа имеет форму карты PCMCIA.
Подсистема условного доступа дополнительно включает в себя интеллектуальную карту (смарт-карту) 72, несущую микросхему (IC) смарт-карты. Смарт-карта предпочтительно соответствует стандарту ISO 7816-2. Смарт-карта 72 предпочтительно сопряжена с САМ 72 и через него - с персональным устройством 57 видеозаписи посредством системы физических межсоединений, содержащей контактные площадки (не показаны) на смарт-карте и контактные штыревые выводы (не показаны) в САМ 70, и одного или более программных модулей, реализующих протокол обмена данными.
На Фиг.8 показано, что IC 73 смарт-карты включает в себя центральный процессор (CPU) 74. Она дополнительно включает в себя три типа модулей памяти, а именно постоянное запоминающее устройство маски (ПЗУ маски) 75, оперативное запоминающее устройство (ОЗУ) 76 и электрически стираемое программируемое постоянное запоминающее устройство (EEPROM) 77. Естественно, IC 73 смарт-карты также содержит порт 78 ввода/вывода в качестве части интерфейса к САМ 70. Альтернативные варианты осуществления IC 73 смарт-карты могут содержать ферроэлектрическое оперативное запоминающее устройство вместо EEPROM 77.
ПЗУ 75 маски представляет собой энергонезависимую память. Оперативная система смарт-карты 72 хранится в ПЗУ 75 маски. Примерами подходящих операционных систем являются MULTOS, Javacard и Windows card. Кроме того, в ПЗУ 75 маски могут храниться один или более секретных ключей. ОЗУ 76 формирует рабочее пространство памяти. ОЗУ 76 является энергозависимой памятью, и все данные теряются при отключении питания от IC 73 смарт-карты. EEPROM 77 представляет собой энергонезависимое запоминающее устройство для хранения динамических данных приложений.
Из трех типов памяти, содержащихся в IC 73 смарт-карты, ОЗУ 76 обычно является наиболее дорогостоящей, за ним по стоимости следует EEPROM 77, и наконец ПЗУ 75 маски. Далее выгодно поддерживать объем памяти, особенно более дорогостоящих типов, ограниченным. Посредством импортирования и экспортирования записей, содержащихся в динамических данных приложений, хранящихся в первичном устройстве хранения данных смарт-карты 72, т.е. EEPROM 77, смарт-карта 72 может обходиться ограниченной емкостью EEPROM 77. Посредством деления на части порций данных, принадлежащих записям, которые импортированы или экспортированы как часть соответствующего настоящему изобретению способа, IC 73 смарт-карты может обойтись ОЗУ 76 ограниченного объема и портом 78 ввода/вывода ограниченной пропускной способности.
Широковещательная система, в которой обычно используется мультимедийная система, проиллюстрированная на Фиг.7, содержит систему управления абонентами (SMS), в которой хранится подробная информация о каждом абоненте. Информация, такая как каналы и события, которые разрешены абоненту, его платежный статус, активна ли смарт-карта 72 или нет, и другая информация хранится в SMS. Событие определяется как последовательная порция цифрового контента, например порция услуги MPEG-2 DVB, которая подвержена условному доступу и имеет ассоциированную информацию события. Событие скремблируется одним или более управляющих слов в качестве ключей алгоритма скремблирования. Из SMS рассылаются счета за оплату абонированных услуг. SMS управляет смарт-картами 72, распространенными среди абонентов, посредством посылки им команд через систему условного доступа (СА). Система СА преобразует эти команды в надлежащий формат для смарт-карты 72 и внедряет эти команды в транспортный поток. Другой функцией системы СА является шифрование управляющих слов, с помощью которых событие скремблируется, когда осуществляется его широковещание абонентам. Эти шифрованные управляющие слова передаются совместно с контентом, который формирует событие в качестве сообщений управления доступом (ЕСМ).
В отношении контента по предложению и каждого события, имеющего место в широковещании, осуществляется планирование системой планирования. Контент кодируется/сжимается серверами контента. Отформатированные данные от серверов контента и системы СА мультиплексируются в транспортный поток, который затем модулируется для соответствующей широковещательной сети (т.е. спутниковой, кабельной, наземной, Internet и т.п.).
Персональное устройство 57 видеозаписи использует тюнер 58 и демодулятор 59 для восстановления транспортного потока. Транспортный поток, который скремблирован, направляется в модуль 70 условного доступа мультимедийным процессором 60. Подсистема условного доступа дескремблирует транспортный поток, используя иерархию ключей. В смарт-карте 72 хранится, например в ПЗУ 75 маски, ключ, уникальный для смарт-карты 72, который известен как Х-ключ. В некоторых альтернативных системах может быть иерархия Х-ключей, в которой ключи более высокого уровня называются групповыми ключами и они назначаются группам абонентов. Для простоты, в этом описании подразумевается только один уровень.
Мультимедийная система содержит один или более программных модулей, из которых по меньшей мере некоторые установлены на смарт-карте 72 (остальные могут быть установлены на персональном устройстве 57 видеозаписи или САМ 70), которые реализуют систему управления событиями (EMS). Система управления событиями содержит приложение, исполняемое на смарт-карте 72, которое обрабатывает записи, содержащие информацию, используемую для управления доступом к событиям. Эти записи включают в себя сеансовые записи и записи событий. Пока записи событий и сеансовые записи обрабатываются, они являются активными и хранятся в EEPROM 77. Как записи событий, так и сеансовые записи могут быть экспортированы посредством переноса по меньшей мере порции данных, принадлежащих записи, в устройство хранения данных во вторичной системе хранения данных, например накопитель 68 на жестких магнитных дисках в персональном устройстве 57 видеозаписи.
В иллюстративном варианте осуществления записи событий включают в себя следующие поля: флаг активности, флаг изменения, номер версии, идентификатор записи, счет воспроизведений и счет количества копий. Флаг активности устанавливают каждый раз, когда запись события активна. Запись события активна по меньшей мере когда событие записывают, копируют или воспроизводят. Когда запись события активна, она обрабатывается CPU 74 смарт-карты, и принадлежащие записи данные сохраняют в EEPROM 77. Если в ходе обработки записи события выполняют изменение в отношении каких-либо данных, принадлежащих записи события, устанавливают флаг изменения. Причина присутствия флага изменения состоит в том, что можно избежать ненужных экспортирований. В предпочтительном варианте осуществления, когда принимают команду на экспортирование записи события, вначале выполняют проверку флага изменения. Если он не установлен, то экспортирование не нужно, поскольку копия, хранящаяся в персональном устройстве 57 видеозаписи, по-прежнему точная. Номер версии увеличивают перед каждым экспортированием записи события. Идентификатор записи позволяет идентифицировать запись события при вызовах к интерфейсу прикладного программирования и посредством интерфейса прикладного программирования на смарт-карте 72. Как счет воспроизведений, так и счет количества копий представляют собой типы информации, отражающей счет воспроизведений, который увеличивают всякий раз, когда запись события делают активной для предоставления доступа к ассоциированному событию. Это будет иметь место всякий раз, когда к событию требуется доступ, например, для того, чтобы сделать копию события, дескремблирования и декодирования его, для записи его на оптический диск, вставленный в оптический дисковод 67, или на накопитель 68 на жестких магнитных дисках, и т.п.
Сеансовые записи включают в себя информацию доступа и программные ключи (Р-ключи). Р-ключи требуются для дешифрования зашифрованных управляющих слов, содержащихся в принимаемых сообщениях ЕСМ, и могут быть записаны как часть скремблированного транспортного потока посредством персонального устройства 57 видеозаписи. Р-ключи и информацию доступа для события получают посредством внесения оплаты за это событие, после чего система условного доступа (СА) вещательной компании передает одно или более сообщений санкционирования доступа (ЕММ), содержащих информацию доступа и Р-ключи, зашифрованные Х-ключом смарт-карты 72. Смарт-карта 72 извлекает Р-ключи и информацию доступа из сообщений ЕММ и добавляет их в сеансовую запись. Имеется сеансовая запись для каждого сеанса записи, т.е. каждого последовательного периода времени, в течение которого данные контента записывают на накопитель 68 на жестких магнитных дисках или на диск в оптическом дисководе 67. Каждая сеансовая запись связана с одной или более записями событий и, таким образом, ассоциирована с событиями, с которыми ассоциированы эти записи событий. Доступ к одному или более событиям предоставляется в ходе сеанса просмотра, в течение которого сеансовая запись активна, т.е. данные, принадлежащие сеансовой записи, присутствуют в EEPROM 77. Запись события также активна во время проигрывания события.
Для обеспечения возможности экспортирования и последующего импортирования записей событий и сеансовых записей смарт-карта 72 содержит интерфейс прикладного программирования (API), выполненный с возможностью приема и обработки сообщений от приложения, реализующего EMS и таким образом использующего записи событий и сеансовые записи. Полагая, что событие было записано во время сеанса и что необходимые для доступа Р-ключи были сохранены в ассоциированной сеансовой записи, приложение, управляющее процессом записи и, таким образом, использующее запись события и сеансовую запись, выполняет вызов экспортирования к API смарт-карты, реализующему экспортирование записей, когда процесс записи завершается и немедленного проигрывания не требуется. Нижеследующее описание сфокусировано на экспортировании записи события в контексте понимания того, что экспортирование сеансовой записи выполняется аналогичным путем.
В одном варианте осуществления API разделяет принадлежащую записи порцию данных, которая может содержать все принадлежащие этой записи данные или их поднабор, на последовательность следующих друг за другом частей. Размер каждой части задается в соответствии с максимальной производительностью интерфейса между EEPROM 77 и накопителем на жестких магнитных дисках персонального устройства 57 видеозаписи. Максимальную производительность можно определить объемом RAM 76, производительностью центрального процессора 74, порта 78 ввода/вывода, процессора 70, интерфейса PCMCIA между САМ 69 и персональным устройством 57 видеозаписи или разрядностью системной шины 62, в зависимости от конкретной реализации.
В дальнейшем, API принимает сообщение экспортирования для каждой части, причем каждое сообщение экспортирования представляет запрос на перенос сегмента данных, включающего в себя данные, соответствующие по меньшей мере ассоциированной части подлежащей переносу порции данных. API генерирует сегменты данных, используя способ, изложенный в связи с Фиг.6. Иными словами, каждую часть порции данных, принадлежащей записи события, шифруют и вычисляют для нее значение аутентификации. Для каждой части порции данных создают отдельный сегмент данных, содержащий вычисленное значение аутентификации, шифрованную часть порции данных и положение части в последовательности частей, созданной посредством разделения порции данных на следующие друг за другом части. Помимо этого, сегмент содержит информацию, отражающую номер версии.
API принимает отдельное сообщение экспортирования для каждого сегмента данных. Сегменты данных, созданные с использованием способа, проиллюстрированного на Фиг.6, возвращают один за одним в ответ на ассоциированное сообщение экспортирования. Эти сообщения экспортирования содержат информацию, соответствующую идентификации записи события, и информацию, идентифицирующую сегмент данных посредством положения ассоциированной части порции данных в последовательности частей. В необязательном порядке, API может возвращать информацию, представляющую количество частей в последовательности в качестве ответа на первый принятый вызов.
После переноса последнего сегмента данных приложение посылает запрос подтверждения. Если подтверждено корректное выполнение экспортирования, то флаг изменения в копии данных, принадлежащих записи, содержащейся в EEPROM 77, сбрасывают. Только после этого запись может быть сделана неактивной, и порция данных, принадлежащая записи, которая была перенесена для внешнего хранения, может быть удалена из EEPROM 77. Однако эталонный объект данных сохраняют в EEPROM 77 для каждой экспортированной записи. Эталонный объект данных включает в себя идентификационные данные записи и номер версии.
Когда выполняют повторное импортирование записи события, например, для обеспечения возможности проигрывания ассоциированного события, API смарт-карты принимает вызов от приложения, используя данные, принадлежащие записи события. Затем API извлекает сегменты данных, хранящиеся на накопителе 68 на жестких магнитных дисках. Опять же, сегменты данных извлекают и обрабатывают раздельно. Там, где каждый сегмент данных включает в себя данные, соответствующие части порции данных, принадлежащих записи, с хорошо определенным положением в последовательности, сегменты данных извлекают по порядку. Таким образом, сегмент данных, включающий в себя данные, соответствующие первой части в последовательности, извлекают первым. Это необходимо в целях возможности вычисления опорного значения аутентификации для каждого сегмента без необходимости первоначальной буферизации всех сегментов данных. Только для первого сегмента данных опорное значение аутентификации может быть вычислено без использования опорных значений аутентификации, вычисленных для одного или более других значений данных. Следует отметить, что благодаря использованию вычисленных опорных значений аутентификации можно избежать необходимости хранения опорных значений аутентификации. Необходимо хранить только ключ аутентификации. Ключ аутентификации можно хранить в ПЗУ 75 маски, которое является менее дорогостоящим, чем EEPROM 77. В качестве альтернативы, его можно хранить в EEPROM 77, чтобы позволить изменять ключ аутентификации в течение срока службы смарт-карты 72.
Сегменты данных дешифруют, используя ключ шифрования, хранящийся в смарт-карте 72 (предполагается, что используется симметричный алгоритм). Затем номер версии, включенный совместно с сегментами данных, сравнивают с вычисленным опорным значением аутентификации, и номер версии записи события сравнивают с номером версии, хранящимся в эталонном объекте данных, хранящемся в EEPROM 77. Если они оба верны, то процесс повторяют для каждого из последующих сегментов данных и осуществляют повторную сборку порции данных, принадлежащей записи события, в EEPROM 77. После этого запись события можно активировать и извлечь из нее данные с целью обеспечения возможности подсистеме условного доступа управлять воспроизведением, копированием или иным использованием события, хранящегося на накопителе 68 на жестких магнитных дисках.
Поскольку данные, принадлежащие записи события, хранятся внешним образом в зашифрованной форме, для взломщиков может оказаться затруднительным, например, изменить счет воспроизведений с уменьшением для обеспечения возможности большего количества просмотров, чем разрешено согласно информации доступа в сеансовой записи. Даже если взломщик сможет вывести ключ шифрования, все равно потребуется ключ аутентификации для вычисления нового значения аутентификации для сегмента данных, содержащего информацию, соответствующую измененному с уменьшением счету воспроизведений. Поскольку используется организация цепочки, потребуются также значения аутентификации для всех остальных сегментов данных, ассоциированных с записью события. Не является возможным просто сделать копию более раннего сегмента данных, поскольку его номер версии не совпадает с номером версии, хранящимся в эталонном объекте данных в EEPROM 77 смарт-карты 72, так что более ранние сегменты данных не приведут к успешному импортированию записи события.
Включение номера версии в эталонный объект данных, содержащийся в EEPROM 77 смарт-карты 72, и в сегменты данных, перенесенные в накопитель 68 на жестких магнитных дисках, обеспечивает возможность реализации процесса для замены первой смарт-карты второй смарт-картой, предпочтительно от доверенной третьей стороны, такой как система СА, осуществляющая вещание данных в персональное устройство 57 видеозаписи. Вторая смарт-карта затем может импортировать запись, используя предоставленные данные. Когда она впоследствии выполняет повторное импортирование записи, номер версии увеличивают. Таким образом, первая смарт-карта больше не будет импортировать запись, поскольку она хранит эталонный объект с предыдущим номером версии для этой записи. Естественно, должна быть предоставлена вторая смарт-карта с ключами шифрования и аутентификации, а также эталонным объектом данных.
Изобретение не ограничивается вышеописанным вариантом осуществления и может варьироваться в пределах объема, определяемого приложенной формулой изобретения. Например, система, содержащая персональное устройство 57 видеозаписи и модуль 69 условного доступа со вставленной смарт-картой 72, является представителем подобных мультимедийных систем, которые аналогичным образом хорошо приспособлены для применения в контексте настоящего изобретения. Это относится к системам, включающим в себя телевизионную приставку вместо персонального устройства видеозаписи, персональный компьютер с ассоциированными периферийными аппаратными средствами для приема цифрового контента, защищенного согласно способу условного доступа, или персональное устройство видеозаписи, выполненное с возможностью приема аналогового сигнала.