RU2348069C2 - Mechanism of modification application to files consisting of multiple parts - Google Patents

Mechanism of modification application to files consisting of multiple parts Download PDF

Info

Publication number
RU2348069C2
RU2348069C2 RU2004119948/09A RU2004119948A RU2348069C2 RU 2348069 C2 RU2348069 C2 RU 2348069C2 RU 2004119948/09 A RU2004119948/09 A RU 2004119948/09A RU 2004119948 A RU2004119948 A RU 2004119948A RU 2348069 C2 RU2348069 C2 RU 2348069C2
Authority
RU
Russia
Prior art keywords
data
stream
list
transform
computer
Prior art date
Application number
RU2004119948/09A
Other languages
Russian (ru)
Other versions
RU2004119948A (en
Inventor
Майкл Дж. ХИЛЛБЕРГ (US)
Майкл Дж. ХИЛЛБЕРГ
Роджер ЧЕНГ (US)
Роджер ЧЕНГ
Дэвид Б. ОРНСТЕЙН (US)
Дэвид Б. ОРНСТЕЙН
Джейсон М. КАХИЛЛ (US)
Джейсон М. КАХИЛЛ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Priority to RU2004119948/09A priority Critical patent/RU2348069C2/en
Publication of RU2004119948A publication Critical patent/RU2004119948A/en
Application granted granted Critical
Publication of RU2348069C2 publication Critical patent/RU2348069C2/en

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

FIELD: physics, computer technology.
SUBSTANCE: invention concerns system and method of modification application to files consisting of multiple parts. Method of implementing modification involves receiving request for access to a stream in file consisting of multiple parts, identification of modification list related to the stream upon receiving request, the list also included to file consisting of multiple parts, and implementation of listed modifications before implementing the request. If recoding is requested data are encoded, and if reading is requested data are decoded. Modification list depends on the order of required modifications and includes data structure with first stream including display for stream comparison to the name of modification list, second stream listing each stream modification, third stream for identification of information related to each listed modification.
EFFECT: possible automatic extraction of auxiliary objects, solution of problems arising therewith by a single addressing main object.
27 cl, 5 dwg

Description

Данная заявка подается как заявка РСТ, поданная 17 мая 2003 г. корпорацией Майкрософт, созданной и находящейся в США, с указанием всех стран, кроме США.This application is filed as a PCT application, filed May 17, 2003 by Microsoft, created and located in the United States, listing all countries except the United States.

Предпосылки изобретенияBACKGROUND OF THE INVENTION

Современные компьютерные системы обычно хранят большой объем данных в нескольких файлах. Формат файлов может быть одним из нескольких разных форматов, совместимых с различными приложениями, например текстовыми редакторами, электронными таблицами и т.п. Часто бывает необходимо передать файл на другой компьютер, чтобы другой пользователь мог видеть данные в файле или манипулировать ими. Иногда, когда файл слишком велик, до отправки файла на другой компьютер над файлом осуществляется преобразование (например, сжатие). Благодаря сжатию файла для отправки файла на другой компьютер требуется меньшая пропускная способность. В других случаях, для защиты данных от доступа со стороны неавторизованных пользователей, можно осуществлять другое преобразование (например, шифрование).Modern computer systems typically store a large amount of data in multiple files. The file format can be one of several different formats compatible with various applications, for example, text editors, spreadsheets, etc. It is often necessary to transfer a file to another computer so that another user can see or manipulate the data in the file. Sometimes, when the file is too large, the file is converted (for example, compression) before the file is sent to another computer. Thanks to file compression, less bandwidth is required to send the file to another computer. In other cases, to protect data from access by unauthorized users, you can perform another conversion (for example, encryption).

Некоторые из этих преобразований имеют особые методы кодирования и используют отдельный файл (например, словарь) для хранения информации о конкретном методе кодирования. Этот отдельный файл должен использоваться при доступе к преобразованному файлу. В случае повреждения, потери или недоступности этого отдельного файла, преобразованный файл оказывается бесполезным. Кроме того, поскольку некоторые из этих преобразований задают свои собственные методы кодирования для перемежения кодированных данных и информации обработки, файл, подвергнутый преобразованию, не подлежит совместному использованию или общей обработке. Кроме того, до преобразования файла современные преобразования требуют, чтобы данные в файле были организованы в виде последовательных байтов. Гарантия того, что байты в файле остаются последовательными, требует больших накладных расходов и нежизнеспособно для часто редактируемых файлов. Таким образом, хотя эти преобразования весьма полезны, способ их реализации не дает пользователям большой свободы действий.Some of these transformations have special encoding methods and use a separate file (for example, a dictionary) to store information about a particular encoding method. This separate file should be used when accessing the converted file. In case of damage, loss or inaccessibility of this separate file, the converted file is useless. In addition, since some of these transformations define their own encoding methods for interleaving the encoded data and the processing information, the converted file is not to be shared or shared processed. In addition, prior to file conversion, modern conversions require that the data in the file be organized in sequential bytes. Ensuring that bytes in a file remain consistent requires a lot of overhead and is not viable for frequently edited files. Thus, although these transformations are very useful, the way they are implemented does not give users much freedom of action.

Сущность изобретенияSUMMARY OF THE INVENTION

Настоящее изобретение относится к системе и способу реализации преобразований, обеспечивающих пользователям повышенную гибкость. В целом, настоящее изобретение обеспечивает механизм сохранения информации преобразования, связанной с одним или несколькими преобразованиями в файле, состоящем из множественных частей. Файл, состоящий из множественных частей, также содержит данные, к которым применяются одно или несколько преобразований. Таким образом, настоящее изобретение обеспечивает формат файла для файла, состоящего из множественных частей, что позволяет приложениям, обращающимся к файлу, легко осуществлять доступ к преобразованным данным. Согласно изобретению, множественные преобразования данных могут образовывать цепь. Эти преобразования данных, составляющие цепь, именуются «пространствами данных». Каждое пространство данных имеет уникальный порядок и тип для преобразований, образующих цепь. Например, два пространства данных могут задавать одни и те же преобразования, но разный порядок применения преобразований. Информация преобразования содержит информацию о пространствах данных.The present invention relates to a system and method for implementing transformations that provide users with increased flexibility. In general, the present invention provides a mechanism for storing transformation information associated with one or more transformations in a file consisting of multiple parts. A file consisting of multiple parts also contains data to which one or more transformations are applied. Thus, the present invention provides a file format for a file consisting of multiple parts, which allows applications accessing the file to easily access the converted data. According to the invention, multiple data transformations can form a chain. These data transformations that make up the circuit are called “data spaces.” Each data space has a unique order and type for the transformations that make up the chain. For example, two data spaces can specify the same transformations, but the order in which transformations are applied is different. Transformation information contains information about data spaces.

Согласно другому аспекту изобретения, файл, состоящий из множественных частей, содержит множество потоков. Каждый поток может быть связан с одним из пространств данных. Таким образом, согласно настоящему изобретению, некоторые потоки в файле, состоящем из множественных частей, могут преобразовываться, тогда как другие потоки могут оставаться в своем естественном формате. Эта способность преобразовывать конкретные потоки без необходимости преобразования всего файла, состоящего из множественных частей, обеспечивает пользователям большую гибкость, например позволяет пользователям шифровать только значимую информацию в файле, состоящем из множественных частей (например, при редактировании документов).According to another aspect of the invention, a multi-part file contains multiple streams. Each stream can be associated with one of the data spaces. Thus, according to the present invention, some streams in a file consisting of multiple parts can be converted, while other streams can remain in their natural format. This ability to convert specific streams without having to convert the entire file consisting of multiple parts provides users with greater flexibility, for example, allows users to encrypt only relevant information in a file consisting of multiple parts (for example, when editing documents).

Таким образом, настоящее изобретение относится к системе и способу применения преобразований к файлам, состоящим из множественных частей. Поступает запрос на доступ к потоку данных в файле, состоящем из множественных частей. По получении запроса идентифицируется список преобразований, связанных с потоком. Список также включается в состав файла, состоящего из множественных частей. Преобразования, указанные в списке преобразований, осуществляются над данными до завершения запроса. Если это запрос на запись, то преобразования кодируют данные. Если это запрос на чтение, то преобразования декодируют данные. Список преобразований зависит от порядка. Список преобразований содержит структуру данных, имеющую первый поток, который включает в себя отображение (соответствие), сопоставляющее поток с именем списка преобразования. Второй поток, перечисляющий все преобразования для потока. Третий поток для каждого из перечисленных преобразований, который идентифицирует информацию, связанную с преобразованием.Thus, the present invention relates to a system and method for applying transformations to files consisting of multiple parts. A request is received to access the data stream in a file consisting of multiple parts. Upon receipt of the request, a list of transformations associated with the stream is identified. The list is also included in the file, consisting of multiple parts. The transformations specified in the list of transformations are performed on the data until the request is completed. If this is a write request, then the transforms encode the data. If it is a read request, then the transforms decode the data. The list of transformations depends on the order. The transformation list contains a data structure having a first stream, which includes a mapping (correspondence) matching the stream with the name of the transformation list. The second thread listing all the conversions for the thread. The third stream for each of these transformations that identifies the information associated with the transform.

Краткое описание чертежейBrief Description of the Drawings

Фиг.1 - функциональная блок-схема вычислительного устройства, которое можно использовать в реализациях настоящего изобретения.Figure 1 is a functional block diagram of a computing device that can be used in implementations of the present invention.

Фиг.2 - функциональная блок-схема, иллюстрирующая в общих чертах процесс преобразования согласно настоящему изобретению.Figure 2 is a functional block diagram illustrating in general terms a conversion process according to the present invention.

Фиг.3 - графическое представление древовидной иерархии, которая представляет метаданные преобразования, показанные на фиг.2.FIG. 3 is a graphical representation of a tree hierarchy that represents the transformation metadata shown in FIG.

Фиг.4 - схема процесса преобразования.4 is a diagram of a conversion process.

Фиг.5 - логическая последовательность операций, иллюстрирующая в общих чертах процесс доступа к преобразованным данным в файле, состоящем из множественных частей, согласно одному варианту осуществления изобретения.5 is a flowchart illustrating a general process for accessing converted data in a file consisting of multiple parts, according to one embodiment of the invention.

Подробное описание предпочтительного варианта осуществленияDetailed Description of a Preferred Embodiment

Изобретение обеспечивает механизм применения преобразований к файлам, состоящим из множественных частей. Механизм предусматривает структуру для задания информации преобразования. Информация преобразования и преобразованные данные сосуществуют в одном и том же документе. Механизм, предусмотренный изобретением, предпочтительно базируется на формате файла, состоящего из множественных частей, который допускает наличие множественных типов потоков в одном документе. Изобретатели определили, что формат составного файла по стандарту связывания и встраивания объектов (OLE) особенно подходит для реализаций изобретения. Таким образом, ниже изобретение описано с использованием формата составного файла. Однако специалистам в данной области, внимательно изучившим нижеследующее описание, будет ясно, что другие форматы мультифайла могут реализовывать настоящее изобретение с различными модификациями механизма, описанными ниже, приспособленными к другим форматам мультифайла. Таким образом, очевидно, что варианты осуществления изобретения не ограничиваются описанными здесь.The invention provides a mechanism for applying transformations to files consisting of multiple parts. The mechanism provides a structure for specifying transformation information. Transformation information and transformed data coexist in the same document. The mechanism contemplated by the invention is preferably based on a multi-part file format that allows for multiple types of streams in a single document. The inventors have determined that the compound file format according to the standard for object linking and embedding (OLE) is particularly suitable for implementing the invention. Thus, the invention is described below using a compound file format. However, it will be clear to those skilled in the art who have carefully studied the following description that other multi-file formats can implement the present invention with various modifications of the mechanism described below, adapted to other multi-file formats. Thus, it is obvious that embodiments of the invention are not limited to those described herein.

Сначала опишем изобретение со ссылкой на один пример иллюстративной вычислительной среды, в которой можно реализовать варианты осуществления изобретения. Затем опишем подробный пример одной конкретной реализации изобретения. Альтернативные варианты осуществления также могут быть включены в отношении определенных деталей конкретной реализации.We first describe the invention with reference to one example illustrative computing environment in which embodiments of the invention may be implemented. Next, we describe a detailed example of one specific embodiment of the invention. Alternative embodiments may also be included with respect to certain details of a particular implementation.

Иллюстративная вычислительная среда, отвечающая изобретениюIllustrative Computing Environment According to the Invention

На фиг.1 показана функциональная блок-схема вычислительного устройства, которое можно использовать в реализациях настоящего изобретения. На фиг.1 показано иллюстративное вычислительное устройство, которое можно использовать в реализациях настоящего изобретения. Согласно фиг.1, в очень общей конфигурации вычислительное устройство 100 обычно содержит, по меньшей мере, один процессор 102 и системную память 104. В зависимости от конкретных конфигурации и типа вычислительного устройства 100 системная память 104 может представлять собой энергозависимое запоминающее устройство (например, ОЗУ), энергонезависимое запоминающее устройство (например, ПЗУ, флэш-память и т.д.) или какую-либо их комбинацию. В системной памяти 104 обычно размещаются операционная система 105, один или несколько программных модулей 106 и, в необязательном порядке, программные данные 107. В качестве примеров программных модулей 106 могут выступать приложение обозревателя (программы просмотра), приложение финансового управления, текстовый редактор и т.д. Эта базовая конфигурация представлена на фиг.1 компонентами, окруженными пунктирной линией 108.Figure 1 shows a functional block diagram of a computing device that can be used in implementations of the present invention. Figure 1 shows an illustrative computing device that can be used in implementations of the present invention. 1, in a very general configuration, computing device 100 typically includes at least one processor 102 and system memory 104. Depending on the specific configuration and type of computing device 100, system memory 104 may be a volatile memory device (e.g., RAM ), non-volatile storage device (for example, ROM, flash memory, etc.) or any combination thereof. System memory 104 typically houses the operating system 105, one or more program modules 106, and optionally program data 107. Examples of program modules 106 may include a browser application (viewer), financial management application, text editor, etc. d. This basic configuration is represented in FIG. 1 by components surrounded by a dashed line 108.

Вычислительное устройство 100 может иметь дополнительные особенности или функции. Например, вычислительное устройство 100 может также включать в себя дополнительные запоминающие устройства со сменными и/или стационарными носителями, в качестве которых могут выступать магнитные диски, оптические диски или лента. Такие дополнительные запоминающие устройства представлены на фиг.1 в виде запоминающего устройства 109 со сменным носителем и запоминающего устройства 110 со стационарным носителем. Компьютерные среды хранения данных могут включать в себя энергозависимые и энергонезависимые, сменные и стационарные среды хранения, реализующие любой способ и любую технологию хранения информации, как то: считываемых компьютером команд, структур данных, программных модулей или иных данных. Системная память 104, запоминающее устройство 109 со сменным носителем и запоминающее устройство 110 со стационарным носителем - все они являются примерами компьютерных сред хранения данных. Компьютерные среды хранения данных включают в себя, но без ограничения, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, запоминающие устройства на основе магнитных дисков или других магнитных носителей, или любую другую среду, которую можно использовать для хранения полезной информации и к которой можно осуществлять доступ посредством вычислительного устройства 100. Любая такая компьютерная среда хранения данных может входить в состав устройства 100.Computing device 100 may have additional features or functions. For example, computing device 100 may also include additional storage devices with removable and / or stationary media, which can be magnetic disks, optical disks, or tape. Such additional storage devices are shown in FIG. 1 in the form of a storage device 109 with removable medium and a storage device 110 with a stationary medium. Computer storage media can include volatile and non-volatile, removable and stationary storage media that implement any method and any technology for storing information, such as computer-readable instructions, data structures, program modules or other data. System memory 104, storage device 109 with removable media and storage device 110 with stationary media are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROMs, digital versatile disks (DVDs) or other optical storage devices, magnetic tapes, magnetic tape, storage devices based on magnetic disks or other magnetic media, or any other medium that can be used to store useful information and which can be accessed by computing device 100. Any such computer storage medium for data may be included in the device 100.

Вычислительное устройство 100 может также содержать устройство(а) 112 ввода, например клавиатуру, мышь, перо, устройство голосового ввода, устройство тактильного ввода и т.д. Оно также может содержать устройство(а) 114 вывода, например дисплей, громкоговорители, принтер и т.д. Эти устройства общеизвестны в технике и не нуждаются в дополнительном описании.Computing device 100 may also comprise an input device (a) 112, for example, a keyboard, mouse, pen, voice input device, tactile input device, etc. It may also comprise an output device (a) 114, for example a display, speakers, printer, etc. These devices are well known in the art and do not need additional description.

Вычислительное устройство 100 также может содержать средства связи 116, позволяющие устройству 100 осуществлять связь с другими вычислительными устройствами 118, например, по сети. Средства связи 116 являются примером сред связи. Среды связи обычно реализуют компьютерно-считываемые команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, например несущей волне или ином транспортном механизме, и включают в себя любые среды доставки данных. Термин «модулированный сигнал данных» означает сигнал, одна или несколько характеристик которого изменяется определенным образом, что позволяет кодировать информацию в сигнале. В порядке примера, но не ограничения, среды связи включают в себя проводные среды, например проводную сеть или прямое проводное соединение, беспроводные среды, например акустические, ВЧ, инфракрасные и другие беспроводные среды. Используемый здесь термин «компьютерно-считываемые среды» подразумевает как среды хранения данных, так и среды передачи данных.Computing device 100 may also include communication means 116, allowing device 100 to communicate with other computing devices 118, for example, over a network. Communications 116 are an example of communications media. Communication media typically implement computer-readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and include any data delivery media. The term "modulated data signal" means a signal, one or more of whose characteristics changes in a certain way, which allows you to encode information in the signal. By way of example, but not limitation, communication media include wired media, such as a wired network or a direct wired connection, wireless media, such as acoustic, RF, infrared, and other wireless media. The term “computer-readable media” as used herein refers to both storage media and data transmission media.

Общее рассмотрение компонентовComponent Overview

На фиг.2 показана функциональная блок-схема, иллюстрирующая в общих чертах компоненты среды, реализующей настоящее изобретение. Проиллюстрирован файл 202, состоящий из множественных частей, предпочтительно составной файл OLE. Модель документа OLE известна в технике и широко используется как механизм содержания многих несопоставимых типов данных в едином документе. Традиционно, составной файл OLE используется совместно с несколькими внедренными файлами или иного содержимого поддержки, связанного с единичным документом. Каждый элемент составного файла хранится так, чтобы приложение, создавшее элемент, могло манипулировать им. Каждый элемент хранится в виде потока, например потоков 204, 206 и 208, показанных на фиг.2. Согласно вышеуказанному, каждый поток может относиться к одному из нескольких типов. Например, поток 204 stream1 может представлять собой документ текстового редактора, поток 206 stream2 может представлять собой электронную таблицу, а поток 208 streamZ может быть графическим файлом.Figure 2 shows a functional block diagram illustrating in General terms the components of the environment that implements the present invention. Illustrated file 202, consisting of multiple parts, preferably a composite file OLE. The OLE document model is well known in the art and is widely used as a mechanism for containing many disparate data types in a single document. Traditionally, an OLE compound file is shared with multiple embedded files or other support content associated with a single document. Each element of a compound file is stored so that the application that created the element can manipulate it. Each element is stored as a stream, for example, streams 204, 206 and 208 shown in FIG. According to the above, each thread can be one of several types. For example, stream 204 stream1 may be a text editor document, stream 206 stream2 may be a spreadsheet, and stream 208 streamZ may be a graphic file.

До настоящего времени после запрашивания преобразования на файле 202, состоящем из множественных частей, требовалось, чтобы все составляющие файла 202, состоящего из множественных частей, (т.е. потоки 204-208) были непрерывными и обрабатывались совместно. Однако, согласно настоящему изобретению, потоки 204-208 не обязаны быть непрерывными. Напротив, потоки 204-208 могут быть основаны на секторах. В нижеследующем рассмотрении под секторизованными файлами будем понимать файлы, в которых сохранены множественные куски (порции) данных, представляющие целый поток. Множественные порции могут храниться последовательно, но обычно хранятся не последовательно. В одном варианте осуществления порции могут иметь фиксированный размер, например 512 байт. Альтернативно, не выходя за рамки объема настоящего изобретения, можно предусмотреть порции переменного размера. При редактировании потока новая порция данных может создаваться и сохраняться в байтах, не последовательных по отношению к другим порциям данных для потока. Таким образом, секторизованные файлы позволяют легко редактировать поток без дополнительных затрат на гарантию, что поток остается непрерывным.Until now, after requesting a conversion on a multiple-part file 202, it was required that all the components of the multiple-part file 202 (i.e., streams 204-208) be continuous and be processed together. However, according to the present invention, streams 204-208 do not have to be continuous. In contrast, flows 204-208 may be sector based. In the following discussion, sectorized files will be understood as files in which multiple pieces (chunks) of data are stored representing the whole stream. Multiple servings can be stored sequentially, but are usually not stored sequentially. In one embodiment, the portions may have a fixed size, for example 512 bytes. Alternatively, without departing from the scope of the present invention, it is possible to provide portions of variable size. When editing a stream, a new chunk of data can be created and stored in bytes that are not consecutive with respect to other chunks of data for the stream. Thus, sectorized files make it easy to edit the stream without the additional cost of ensuring that the stream remains uninterrupted.

Согласно подробно описанному ниже, настоящее изобретение позволяет преобразовывать конкретные порции данных 240, связанные с потоком (например, потоком 206) в файле 202, состоящем из множественных частей, без преобразования других потоков. Поскольку настоящее изобретение позволяет преобразовывать указанные потоки независимо от других потоков, изобретение обеспечивает большую гибкость для защиты данных и управления данными. Например, на фиг.2 показан поток 206 stream2, подвергнутый процессу преобразования. Поток 206 stream2 может представлять собой электронную таблицу, содержащую цены конкретных товаров. Поэтому может быть желательно защищать эту информацию цен, чтобы неавторизованные пользователи не могли видеть цены. Таким образом, данные 240, направляемые в поток 206 stream2, подвергаются цепи преобразований (т.е. преобразованиям 220-224). Специалисту в данной области очевидно, что любое количество преобразований может составлять цепь, и они могут размещаться в цепи в любом порядке. Конкретные преобразования, образующие цепь, и порядок, в котором преобразования размещены в цепи, представляют пространство 230 данных. В целом, пространство данных может задавать одно преобразование, а может задавать множественные преобразования. В вышеприведенном примере последнее преобразование (например, преобразование 224) записывает преобразованные данные в поток 206 stream2, который может размещаться на диске (не показан). Один вариант осуществления для использования механизма применения преобразований к файлам, состоящим из множественных частей, подробно описан ниже со ссылкой на фиг.4.As described in detail below, the present invention allows you to convert specific chunks of data 240 associated with a stream (eg, stream 206) in a multiple-part file 202 without converting other streams. Since the present invention allows these streams to be converted independently of other streams, the invention provides greater flexibility for data protection and data management. For example, FIG. 2 shows a stream 206 stream2 subjected to a conversion process. Stream 206 stream2 may be a spreadsheet containing the prices of specific products. Therefore, it may be desirable to protect this price information so that unauthorized users cannot see prices. Thus, data 240 directed to stream 206 stream2 is subject to a chain of transformations (i.e., transforms 220-224). One skilled in the art will appreciate that any number of transformations can make up a chain, and they can be placed in a chain in any order. The particular transformations forming the chain, and the order in which the transformations are placed in the chain, represent the data space 230. In general, a data space can specify a single transformation, or it can specify multiple transformations. In the above example, the last conversion (e.g., transformation 224) writes the converted data to stream 206 stream2, which can be placed on a disk (not shown). One embodiment for using the mechanism for applying transformations to files consisting of multiple parts is described in detail below with reference to FIG.

Рассмотрение конкретного варианта осуществления изобретенияConsideration of a specific embodiment of the invention

На фиг.3 показано графическое представление одного варианта осуществления древовидной иерархии, которая представляет метаданные 210 преобразования, показанные на фиг.2. В целом, древовидную иерархию можно вводить в состав файла, состоящего из множественных частей, любым способом, совместимым с файлом, состоящим из множественных частей. Ниже описана древовидная иерархия применительно к составным файлам. В целом, составные файлы рассматриваются как «файловая система внутри файла». В составном файле имеется иерархия «хранилищ», аналогичных директориям в файловой системе, и «потоков», аналогичных файлам в файловой системе. На фиг.3 прямоугольники представляют потоки, а овалы представляют хранилища. Прежде чем перейти к описанию метаданных 210 преобразования, отвечающих настоящему изобретению, заметим, что потоки 204-208 (показанные на фиг.2) проиллюстрированы в этой иллюстративной иерархии под корнем 302. Задание потоков под корнем является обычной техникой для форматов составного файла.FIG. 3 is a graphical representation of one embodiment of a tree hierarchy that represents the transformation metadata 210 shown in FIG. 2. In general, a tree hierarchy can be entered into a file consisting of multiple parts in any way compatible with a file consisting of multiple parts. The tree hierarchy for compound files is described below. In general, compound files are considered as a “file system inside a file”. The composite file has a hierarchy of “storages” similar to directories in the file system, and “streams” similar to files in the file system. 3, rectangles represent flows, and ovals represent vaults. Before proceeding to the description of the conversion metadata 210 corresponding to the present invention, note that streams 204-208 (shown in FIG. 2) are illustrated in this illustrative hierarchy under root 302. Defining streams under the root is a common technique for compound file formats.

Теперь рассмотрим более подробно метаданные 210 преобразования, предусмотренные настоящим изобретением. Метаданные 210 преобразования хранятся в особом хранилище, именуемом "\006DataSpaces" 310 от корня 302. Хранилище 310 \006DataSpaces содержит поток 320 DataSpaceMap, хранилище 330 DataSpaceInfo и хранилище 340 TransformInfo. Для данного варианта осуществления имя, выбранное для особого хранилища, "\006DataSpaces", написано в контексте языка программирования С. Таким образом, в данном варианте осуществления имя начинается с единичного не буквенно-цифрового маркера и значения маркера, равного 6. В целом, имя, присвоенное конкретному хранилищу, является произвольным и зависит от реализации пользователя.Now consider in more detail the metadata 210 conversion provided by the present invention. Transformation metadata 210 is stored in a special storage called "\ 006DataSpaces" 310 from root 302. Storage 310 \ 006DataSpaces contains stream 320 DataSpaceMap, storage 330 DataSpaceInfo and storage 340 TransformInfo. For this embodiment, the name selected for the particular repository, "\ 006DataSpaces", is written in the context of the programming language C. Thus, in this embodiment, the name begins with a single non-alphanumeric marker and a marker value of 6. In general, the name assigned to a particular repository is arbitrary and depends on the user's implementation.

Поток 320 DataSpaceMap [отображение пространств данных] отображает (преобразует) потоки (например, потоки 204-208) со связанным с ними пространством данных. В одном варианте осуществления поток 320 DataSpaceMap представляет собой таблицу, имеющую два столбца: столбец 322 ссылок на поток и столбец 324 DataSpaceName [имен пространств данных]. Содержимое столбца 322 ссылок на поток относится к одному из потоков (например, потоков 204-208), хранящихся в составном документе. Содержимое в DataSpaceName относится к конкретному пространству данных, которое задано для соответствующего потока, указанного в столбце 322 ссылки на поток. Одно пространство данных может быть связано с любым количеством потоков. Например, согласно фиг.3, пространство данных, обозначенное "DataSpaceName1", связано с потоком 204 stream1 и потоком 206 stream2. Хотя в вышеприведенном описании поток 320 DataSpaceMap представлен в виде таблицы, специалистам в данной области очевидно, что для идентификации и сопоставления потока с пространством данных можно использовать и другие форматы.Stream 320 DataSpaceMap [mapping data spaces] displays (converts) streams (eg, streams 204-208) with the associated data space. In one embodiment, a DataSpaceMap stream 320 is a table having two columns: a stream reference column 322 and a DataSpaceName column 324 [data space names]. The contents of the stream reference column 322 refers to one of the streams (e.g., streams 204-208) stored in the master document. The content in the DataSpaceName refers to a specific data space that is defined for the corresponding stream indicated in the stream link column 322. One data space can be associated with any number of threads. For example, according to FIG. 3, the data space designated “DataSpaceName1” is associated with stream 204 stream1 and stream 206 stream2. Although the DataSpaceMap stream 320 is presented in tabular form in the above description, it will be apparent to those skilled in the art that other formats can be used to identify and map the stream to the data space.

Хранилище 330 DataSpaceInfo [информация пространства данных] содержит один или несколько потоков DataSpaceName (например, потоки 332 и 334 DataSpaceName). Для описываемого варианта осуществления поток DataSpaceName назван в соответствии со стандартными соглашениями для коротких имен составных файлов. Каждый поток 332 и 334 DataSpaceName идентифицирует список 336 преобразований, связанных с соответствующим потоком 332 и 334 DataSpaceName. В одном варианте осуществления каждый из потоков 332 и 334 DataSpaceName может представлять собой список преобразований, образующих пространство данных. Потому что стек преобразований, порядок в списке 336, важен. В одном варианте осуществления первое преобразование 337 в списке 336 именуется «нижним» преобразованием, что означает, что преобразование 337 расположено ближе всех к битам в нижележащем потоке данных (например, потоке 204). Последнее преобразование 339 в списке 336 именуется «верхним» преобразованием, что означает, что преобразование 339 расположено ближе всех к потребителю/создателю данных (например, приложению). Согласно подробно описанному ниже со ссылкой на фиг.4, порядок, заданный в списке 336, определяет прохождение данных через преобразования.Storage 330 DataSpaceInfo [data space information] contains one or more DataSpaceName streams (for example, streams 332 and 334 DataSpaceName). For the described embodiment, the DataSpaceName stream is named according to standard conventions for short compound file names. Each DataSpaceName stream 332 and 334 identifies a list of 336 transformations associated with a corresponding DataSpaceName stream 332 and 334. In one embodiment, each of DataSpaceName streams 332 and 334 may be a list of transformations forming a data space. Because the conversion stack, the order in list 336, is important. In one embodiment, the first transform 337 in list 336 is referred to as a “lower” transform, which means that transform 337 is located closest to the bits in the underlying data stream (eg, stream 204). The last transform 339 in list 336 is referred to as the “top” transform, which means that transform 339 is closest to the consumer / creator of the data (for example, the application). As described in detail below with reference to FIG. 4, the order specified in list 336 determines the passage of data through transformations.

Хранилище 340 TransformInfo [информация преобразований] содержит одно или несколько хранилищ TransformInstance [экземпляр преобразования] (например, хранилище 342, 344 и 346 TransformInstance). В одном варианте осуществления имена этих подхранилищ являются именами преобразований. В каждом из хранилищ 342, 344 и 346 TransformInstance имеется, по меньшей мере, один поток, названный "\006Primary" 350. Поток 350 \006Primary содержит существенную информацию о конкретном преобразовании, например TransformClassType 354 [тип класса преобразования] и TransformClassName 356 [имя класса преобразования]. Тип 354 TransformClassType обозначает конкретный класс преобразования, который реализует конкретное преобразование (например, LZ-сжатие, защиту «управления правами на цифровое содержимое» (DRM) и т.п.). В одном варианте осуществления имя 356 TransformClassName задано как строка, однозначно идентифицирующая класс (т.е. тип) преобразования. Строка, идентифицирующая класс, может быть именем класса для класса, реализующего преобразование. Тип 354 TransformClassType задает идентификатор типа, который указывает, как интерпретировать строку, заданную в имени 356 TransformClassName. Поток 350 \006Primary может также содержать пространство для данных TransformInstanceData 358 [данные экземпляра преобразования]. В данных 358 TransformInstanceData хранится информация, заданная для преобразования, заданного именем 356 TransformClassName и типом 354 TransformClassType. Например, если преобразование является преобразованием сжатия, то данные 358 TransformInstanceData могут содержать размер окна и т.п.Repository TransformInfo 340 [Transformation information] contains one or more TransformInstance repositories [Transformation instance] (for example, TransformInstance repository 342, 344 and 346). In one embodiment, the names of these stores are transform names. Each of the TransformInstance repositories 342, 344, and 346 has at least one thread named "\ 006Primary" 350 . Stream 350 \ 006Primary contains essential information about a particular transformation, for example TransformClassType 354 [type of transformation class] and TransformClassName 356 [name of transformation class]. The TransformClassType type 354 denotes a particular transformation class that implements a particular transformation (eg, LZ compression, digital rights management (DRM) protection, etc.). In one embodiment, TransformClassName 356 is specified as a string that uniquely identifies the class (i.e. type) of the transform. The string identifying the class may be the class name for the class that implements the conversion. The TransformClassType type 354 specifies a type identifier that indicates how to interpret the string specified in the TransformClassName name 356. Stream 350 \ 006Primary may also contain data space for TransformInstanceData 358 [transform instance data]. The TransformInstanceData data 358 stores information specified for the transformation specified by the TransformClassName name 356 and the TransformClassType type 354. For example, if the transform is a compression transform, then TransformInstanceData data 358 may contain window size or the like.

Для некоторых преобразований данные 358 TransformInstanceData могут не обеспечивать достаточного пространства для хранения необходимой информации. Таким образом, согласно дополнительному усовершенствованию настоящее изобретение позволяет преобразованию сохранять дополнительную информацию в потоке TransformInstanceData (например, потоке 370 TransformInstanceData). Это допустимо, пока нет никаких конфликтов имен с потоком 350 \006Primary. Характер данных экземпляра преобразования изменяется в зависимости от типа преобразования.For some conversions, TransformInstanceData data 358 may not provide enough space to store the necessary information. Thus, according to a further refinement, the present invention allows the transform to store additional information in a TransformInstanceData stream (e.g., TransformInstanceData stream 370). This is valid as long as there are no name conflicts with stream 350 \ 006Primary. The nature of the transform instance data varies with the type of transform.

Хотя вышеуказанная древовидная иерархия описывает один вариант осуществления формата документа для сохранения преобразованных данных совместно с их информацией преобразования, специалистам в данной области очевидно, что иерархия может изменяться, не влияя на работу настоящего изобретения. Поэтому, любая древовидная иерархия, в которой информация преобразования хранится совместно с преобразованными данными, не выходит за пределы настоящего изобретения. На фиг.4 изображена схема процесса преобразования, в котором используется механизм форматирования документов, имеющих преобразованные данные в соответствии с настоящим изобретением. В этом иллюстративном процессе преобразования приложение 400 пытается прочитать и записать файл 202, состоящий из множественных частей, описанный на фиг.2. В целом, каждый экземпляр класса преобразования берет в качестве ввода интерфейс IStream и выводит кодированные (т.е. преобразованные) данные на другой интерфейс IStream. Преобразования (например, преобразования 420 и 422) зарегистрированы, и пространство данных связано с потоком 206, которое уже задано, например, посредством программных интерфейсов приложения, обеспечиваемых составными документами OLE. Например, сначала, при создании потока 206, приложение, создавшее поток 206 в документе 202, состоящем из множественных частей, отвечает за указание, какие преобразования применять к данным. Для этого можно пользоваться списком аргументов, где каждый аргумент относится к (ссылается на) преобразованию.Although the above tree hierarchy describes one embodiment of a document format for storing converted data together with their conversion information, it will be apparent to those skilled in the art that the hierarchy may change without affecting the operation of the present invention. Therefore, any tree hierarchy in which conversion information is stored in conjunction with the converted data does not go beyond the scope of the present invention. Figure 4 shows a diagram of a conversion process that uses a formatting mechanism for documents having converted data in accordance with the present invention. In this illustrative conversion process, an application 400 attempts to read and write a multi-part file 202 described in FIG. 2. In general, each instance of the transformation class takes the IStream interface as input and outputs encoded (i.e., transformed) data to another IStream interface. Mappings (eg, mappings 420 and 422) are registered, and the data space is associated with a stream 206 that is already defined, for example, through application programming interfaces provided by OLE composite documents. For example, first, when creating stream 206, the application that created stream 206 in a multiple-part document 202 is responsible for indicating which transformations to apply to the data. To do this, you can use the argument list, where each argument refers to (refers to) the transformation.

Доступ для чтения и записи осуществляется через уровень ОС. До настоящего времени операция записи предусматривала обращение к потоку 206 stream2 через интерфейс 414 IStream. Однако, согласно настоящему изобретению, перед интерфейсом 414 IStream можно вставить одно или несколько преобразований. Каждое преобразование (например, преобразование 420 и 422) берет интерфейс IStream в качестве ввода (интерфейс 410 и 412 IStream, соответственно) и выводит свои кодированные (т.е. преобразованные) данные на другой интерфейс IStream (интерфейс 412 и 414 IStream, соответственно).Read and write access is through the OS level. To date, the write operation has provided access to stream 206 stream2 through the IStream interface 414. However, according to the present invention, one or more transforms can be inserted in front of the IStream interface 414. Each transform (for example, transform 420 and 422) takes the IStream interface as input (IStream interface 410 and 412, respectively) and outputs its encoded (i.e., converted) data to another IStream interface (IStream interface 412 and 414, respectively) .

Аналогично, когда приложение 400 пытается читать поток 206 stream2 в файле 202, состоящем из множественных частей, можно вставить одно или несколько обратных преобразований (например, обратных преобразований 450 и 452). Количество обратных преобразований равно количеству преобразований, чтобы данные правильно декодировались и, таким образом, приложение могло понимать данные. Теперь, со ссылкой на фиг.5, опишем, как именно преобразования вставляются между приложением 400 и потоком 206.Similarly, when an application 400 tries to read stream 206 stream2 in a multiple-part file 202, one or more inverse transforms (for example, inverse transforms 450 and 452) can be inserted. The number of inverse transforms is equal to the number of transformations so that the data is decoded correctly and thus the application can understand the data. Now, with reference to FIG. 5, we describe how the transforms are inserted between the application 400 and the thread 206.

На фиг.5 показана логическая последовательность операций, иллюстрирующая в целом процесс доступа к преобразованным данным в составном файле, согласно изобретению. Процесс 500 начинается с начального этапа 501, на котором приложение запрашивает доступ к данным в потоке файла, состоящего из множественных частей. Информация 210 преобразования для потока уже задана.5 is a logical flowchart illustrating the overall process of accessing converted data in a composite file according to the invention. Process 500 begins with an initial step 501 where an application requests access to data in a file stream consisting of multiple parts. Conversion information 210 for the stream is already set.

На этапе принятия решения производится определение, является ли поток членом пространства данных. Согласно фиг.3, для одного варианта осуществления, это определение производится путем поиска в отображении пространств данных ссылки 322 на поток, которая идентифицирует запрашиваемый поток. Если ссылка 322 на поток, связанная с потоком, не найдена, значит для потока не задано преобразований, и обработка заканчивается. В этом случае, приложение обращается к данным таким же образом, как это делалось до настоящего изобретения. Если же в отображении пространств данных содержится ссылка 322 на поток, то обработка переходит к этапу 504.At the decision-making stage, a determination is made whether the stream is a member of the data space. Referring to FIG. 3, for one embodiment, this determination is made by searching the mapping of the data spaces for a stream reference 322 that identifies the requested stream. If the link 322 to the stream associated with the stream is not found, then no transforms are specified for the stream, and processing ends. In this case, the application accesses the data in the same way as before the present invention. If the data space mapping contains a link 322 to the stream, processing proceeds to step 504.

Этап 504 обозначает получение имени пространства данных, связанного со ссылкой 322 на поток.Step 504 denotes obtaining a data space name associated with a link 322 to the stream.

На этапе 506 производится поиск в хранилище DataSpaceInfo (информации пространства данных) с использованием имени пространства данных (DataSpaceName), полученного на этапе 504, для идентификации потока DataSpaceName, связанного с именем пространства данных, указанным в отображении пространств данных (DataSpaceMap). Поток DataSpaceName содержит список преобразований, связанных с этим именем пространства данных.At step 506, a search is performed in the DataSpaceInfo store (data space information) using the data space name (DataSpaceName) obtained in step 504 to identify the DataSpaceName stream associated with the data space name specified in the data space map (DataSpaceMap). The DataSpaceName stream contains a list of transformations associated with this data space name.

На этапе 508 производится идентификация преобразования из списка. В зависимости от того, производится ли доступ для чтения или записи, преобразование может кодировать данные или декодировать данные, соответственно. В потоке DataSpaceName перечислены все преобразования в конкретном порядке. Если доступ осуществляется для записи, то порядок будет сверху вниз. Если доступ осуществляется для чтения, то порядок будет снизу вверх.At step 508, a transformation is identified from the list. Depending on whether read or write access is made, the conversion may encode data or decode data, respectively. The DataSpaceName stream lists all the transformations in a specific order. If access is for recording, then the order will be from top to bottom. If access is for reading, then the order will be from bottom to top.

Этап 510 обозначает применение идентифицированного преобразования. При применении преобразования, для правильного преобразования данных используются данные экземпляра преобразования. Если доступ производится для записи, то применяется (кодирующее) преобразование. Если доступ производится для чтения, то применяется обратное (декодирующее) преобразование.Step 510 denotes the application of the identified transformation. When applying a transform, the transform instance data is used to correctly transform the data. If access is made for recording, then a (coding) conversion is applied. If access is made for reading, then the inverse (decoding) conversion is applied.

На этапе 512 принятия решения производится определение, содержит ли пространство данных какие-либо дополнительные преобразования, включенные в цепь. Для этого можно посмотреть, ссылается ли список 336 на какие-либо еще экземпляры преобразования. Если было применено последнее преобразование в пространстве данных, то последнее преобразование выводит данные, и процесс завершается. Если же в списке есть еще одно преобразование, то обработка возвращается к этапу 508 и продолжается, как описано выше, пока не будет применено последнее преобразование.At decision block 512, a determination is made whether the data space contains any additional transformations included in the chain. To do this, you can see if list 336 refers to any other conversion instances. If the last transformation in the data space was applied, then the last transformation outputs the data, and the process ends. If there is another transformation in the list, then the processing returns to step 508 and continues, as described above, until the last transformation is applied.

Кроме того, специалисту в данной области очевидно, что функции, обеспечиваемые процессом 300, могут быть реализованы разными способами. Например, может иметь место отображение непосредственно имени потока в список преобразований (с пропуском использования пространства данных). Таким образом, настоящее изобретение включает в себя этот и другие варианты осуществления для отображения потока в его информацию преобразования. Процесс 500 иллюстрирует один такой вариант осуществления.In addition, it will be apparent to those skilled in the art that the functions provided by process 300 can be implemented in various ways. For example, there may be a mapping of the stream name directly to the list of transformations (with the omission of using the data space). Thus, the present invention includes this and other embodiments for mapping a stream to its conversion information. Process 500 illustrates one such embodiment.

Вышеизложенные описание изобретения, примеры и данные обеспечивают полное описание производства и использования состава изобретения. Поскольку в рамках сущности и объема изобретения возможны множественные варианты осуществления изобретения, изобретение задано нижеприведенной формулой изобретения.The foregoing description of the invention, examples and data provide a complete description of the production and use of the composition of the invention. Since multiple embodiments of the invention are possible within the spirit and scope of the invention, the invention is defined by the claims below.

Claims (27)

1. Реализуемый компьютером способ выполнения преобразований над данными, содержащий этапы, на которых принимают запрос доступа к потоку в файле, состоящем из множественных частей, причем файл, состоящий из множественных частей, включает в себя потоки и пространства данных, при этом каждое пространство данных задает список преобразований, подлежащих применению в заданном порядке к данным внутри потока, идентифицируют пространство данных, которое связано с упомянутым потоком, причем это пространство данных идентифицируют из файла, состоящего из множественных частей, и выполняют преобразования над данными в порядке, указанном в списке преобразований, перед завершением обработки запроса.1. A computer-implemented method for performing transformations on data, comprising the steps of receiving a request for access to a stream in a file consisting of multiple parts, the file consisting of multiple parts including streams and data spaces, each data space defining a list of transformations to be applied in a given order to the data inside the stream, identify the data space that is associated with the stream, and this data space is identified from the file, consisting of multiple parts, and perform transformations on the data in the order specified in the list of transformations before completing the processing of the request. 2. Реализуемый компьютером способ по п.1, отличающийся тем, что файл, состоящий из множественных частей, включает в себя составной файл OLE.2. A computer-implemented method according to claim 1, characterized in that the file consisting of multiple parts includes a composite OLE file. 3. Реализуемый компьютером способ по п.1, отличающийся тем, что при идентификации пространства данных производят поиск отображения пространства данных для потока, причем отображение пространств данных обеспечивает корреляцию между потоком и именем пространства данных, связанным с упомянутым пространством данных.3. The computer-implemented method according to claim 1, characterized in that when identifying the data space, a search is made for displaying the data space for the stream, the display of data spaces providing a correlation between the stream and the name of the data space associated with the data space. 4. Реализуемый компьютером способ по п.1, отличающийся тем, что упомянутый список включает в себя тип и имя каждого преобразования, указанного в списке.4. A computer-implemented method according to claim 1, characterized in that said list includes the type and name of each transformation indicated in the list. 5. Реализуемый компьютером способ по п.1, отличающийся тем, что список дополнительно включает в себя данные экземпляра преобразования для одного из преобразований, указанных в списке, причем данные экземпляра преобразования задают существенную информацию для декодирования данных, преобразованных этим одним преобразованием.5. A computer-implemented method according to claim 1, characterized in that the list further includes transform instance data for one of the transforms indicated in the list, wherein the transform instance data provides essential information for decoding data transformed by this single transform. 6. Реализуемый компьютером способ по п.1, отличающийся тем, что запрос является запросом записи порции данных, и по меньшей мере одно преобразование выполняют над упомянутой порцией данных для создания кодированных данных, которые записывают в среду хранения данных.6. A computer-implemented method according to claim 1, characterized in that the request is a request to write a piece of data, and at least one conversion is performed on said piece of data to create encoded data that is recorded in a data storage medium. 7. Реализуемый компьютером способ по п.6, отличающийся тем, что порция данных не является смежной с другими порциями данных, предварительно записанными в среду хранения данных для этого потока.7. A computer-implemented method according to claim 6, characterized in that the data portion is not adjacent to other data portions previously recorded in the data storage medium for this stream. 8. Реализуемый компьютером способ по п.6, отличающийся тем, что порция данных является порцией фиксированного размера по отношению к другим порциям данных для потока.8. A computer-implemented method according to claim 6, characterized in that the portion of data is a portion of a fixed size in relation to other pieces of data for the stream. 9. Реализуемый компьютером способ по п.1, отличающийся тем, что список включает в себя преобразование сжатия и преобразование шифрования.9. A computer-implemented method according to claim 1, characterized in that the list includes a compression transform and an encryption transform. 10. Реализуемый компьютером способ по п.1, отличающийся тем, что запрос является запросом чтения порции данных, и по меньшей мере одно преобразование осуществляет обратное преобразование над порцией данных, извлеченной из потока, для предоставления запрашивающей стороне декодированных данных.10. A computer-implemented method according to claim 1, characterized in that the request is a request to read a piece of data, and at least one transform performs an inverse transform on a piece of data extracted from the stream to provide decoded data to the requestor. 11. Компьютерная система, имеющая механизм применения преобразований к файлам, состоящим из множественных частей, содержащая процессор, память, распределяемую для множества выполняемых компьютером команд, загружаемых в память для выполнения процессором, причем выполняемые компьютером команды осуществляют способ, содержащий этапы, на которых
принимают запрос доступа к потоку в файле, состоящем из множественных частей, причем файл, состоящий из множественных частей, включает в себя потоки и пространства данных, при этом каждое пространство данных задает список преобразований, подлежащих применению в заданном порядке к данным внутри потока,
идентифицируют упомянутый список преобразований, связанных с потоком, причем список идентифицируют из файла, состоящего из множественных частей, и
выполняют преобразования в порядке, указанном в списке преобразований, над данными перед завершением обработки запроса.
11. A computer system having a mechanism for applying transformations to files consisting of multiple parts, comprising a processor, a memory allocated for a plurality of computer-executable instructions loaded into memory for execution by a processor, the computer-executing instructions performing a method comprising the steps of
receive a request for access to a stream in a file consisting of multiple parts, the file consisting of multiple parts includes streams and data spaces, with each data space defining a list of transformations to be applied in a given order to the data inside the stream,
identifying said list of transformations associated with the stream, the list being identified from a file consisting of multiple parts, and
perform transformations in the order specified in the list of transformations on the data before completing the processing of the request.
12. Компьютерная система по п.11, отличающаяся тем, что файл, состоящий из множественных частей, включает в себя составной файл OLE.12. The computer system according to claim 11, characterized in that the file, consisting of multiple parts, includes a composite OLE file. 13. Компьютерная система по п.11, отличающаяся тем, что при идентификации списка преобразований производят поиск отображения пространства данных для потока, причем упомянутое отображение пространства данных обеспечивает корреляцию между потоком и именем пространства данных, связанным с упомянутым пространством данных.13. The computer system according to claim 11, characterized in that when identifying a list of transformations, a search is made for displaying a data space for a stream, said data space mapping providing a correlation between the stream and the data space name associated with said data space. 14. Компьютерная система по п.11, отличающаяся тем, что список преобразований включает в себя тип и имя каждого преобразования, указанного в списке.14. The computer system according to claim 11, characterized in that the list of transformations includes the type and name of each transformation indicated in the list. 15. Компьютерная система по п.11, отличающаяся тем, что список дополнительно включает в себя данные экземпляра преобразования для одного из преобразований, указанных в списке, причем данные экземпляра преобразования задают существенную информацию для декодирования данных, преобразованных этим одним преобразованием.15. The computer system according to claim 11, characterized in that the list further includes transform instance data for one of the transforms indicated in the list, and the transform instance data provides essential information for decoding data converted by this one transform. 16. Компьютерная система по п.11, отличающаяся тем, что запрос является запросом записи порции данных, и по меньшей мере одно преобразование выполняют над порцией данных для создания кодированных данных, которые записывают в среду хранения данных.16. The computer system according to claim 11, characterized in that the request is a request to write pieces of data, and at least one conversion is performed on the piece of data to create encoded data that is written to the data storage medium. 17. Компьютерная система по п.16, отличающаяся тем, что порция данных не является смежной с другими порциями данных, предварительно записанными в среду хранения данных для потока.17. The computer system according to clause 16, wherein the piece of data is not adjacent to other pieces of data previously recorded in the data storage medium for the stream. 18. Компьютерная система по п.16, отличающаяся тем, что порция данных является порцией фиксированного размера по отношению к другим порциям данных для потока.18. The computer system according to clause 16, wherein the piece of data is a piece of a fixed size in relation to other pieces of data for the stream. 19. Компьютерная система по п.11, отличающаяся тем, что список включает в себя преобразование сжатия и преобразование шифрования.19. The computer system according to claim 11, characterized in that the list includes a compression transform and an encryption transform. 20. Компьютерная система по п.11, отличающаяся тем, что запрос является запросом чтения порции данных, и по меньшей мере одно преобразование осуществляет обратное преобразование над порцией данных, извлеченной из потока, для предоставления декодированных данных запрашивающей стороне.20. The computer system according to claim 11, characterized in that the request is a request to read a piece of data, and at least one transform performs the inverse transform on a piece of data extracted from the stream to provide decoded data to the requestor. 21. Считываемая компьютером среда, в структуре данных которой содержатся кодированные данные, содержащая первый поток, включающий в себя отображение, которое коррелирует поток в файле, состоящем из множественных частей, с именем для списка преобразований, подлежащих применению в заданном порядке к упомянутому потоку,
второй поток, который перечисляет каждое из преобразований для упомянутого потока, и третий поток для каждого из преобразований, причем третий поток идентифицирует информацию, связанную с преобразованием.
21. A computer-readable medium, the data structure of which contains encoded data, comprising a first stream including a display that correlates a stream in a file consisting of multiple parts with a name for a list of transformations to be applied in a given order to said stream,
a second stream that lists each of the transforms for said stream, and a third stream for each of the transforms, the third stream identifying information associated with the transform.
22. Считываемая компьютером среда по п.21, отличающаяся тем, что структура данных включена в файл, состоящий из множественных частей.22. Machine-readable medium according to item 21, wherein the data structure is included in a file consisting of multiple parts. 23. Считываемая компьютером среда по п.21, отличающаяся тем, что имя для списка преобразований может быть коррелировано с множеством потоков в файле, состоящем из множественных частей.23. Machine-readable medium according to item 21, wherein the name for the list of transformations can be correlated with many streams in a file consisting of multiple parts. 24. Считываемая компьютером среда по п.21, отличающаяся тем, что список преобразований зависит от порядка.24. Machine-readable medium according to item 21, wherein the list of transformations depends on the order. 25. Считываемая компьютером среда по п.21, отличающаяся тем, что информация идентифицирует имя класса и тип класса для преобразования.25. The computer-readable medium of claim 21, wherein the information identifies the class name and class type for conversion. 26. Считываемая компьютером среда по п.25, отличающаяся тем, что информация дополнительно идентифицирует данные экземпляра, связанные с преобразованием.26. The computer-readable medium of claim 25, wherein the information further identifies instance data associated with the conversion. 27. Считываемая компьютером среда по п.26, отличающаяся тем, что преобразование включает в себя преобразование сжатия, и данные экземпляра включают в себя размер окна для преобразования сжатия. 27. The computer-readable medium of claim 26, wherein the transform includes a compression transform, and instance data includes a window size for compressing the transform.
RU2004119948/09A 2003-05-17 2003-05-17 Mechanism of modification application to files consisting of multiple parts RU2348069C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2004119948/09A RU2348069C2 (en) 2003-05-17 2003-05-17 Mechanism of modification application to files consisting of multiple parts

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2004119948/09A RU2348069C2 (en) 2003-05-17 2003-05-17 Mechanism of modification application to files consisting of multiple parts

Publications (2)

Publication Number Publication Date
RU2004119948A RU2004119948A (en) 2005-03-27
RU2348069C2 true RU2348069C2 (en) 2009-02-27

Family

ID=35560371

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2004119948/09A RU2348069C2 (en) 2003-05-17 2003-05-17 Mechanism of modification application to files consisting of multiple parts

Country Status (1)

Country Link
RU (1) RU2348069C2 (en)

Also Published As

Publication number Publication date
RU2004119948A (en) 2005-03-27

Similar Documents

Publication Publication Date Title
US7631022B2 (en) Information processing apparatus and recording medium
US6789094B2 (en) Method and apparatus for providing extended file attributes in an extended attribute namespace
JP5612227B2 (en) Document storage using multiple representations
US20050267894A1 (en) XML metabase for the organization and manipulation of digital media
CN101169795B (en) Information processing apparatus, information processing method, program and program recording medium
US7958133B2 (en) Application conversion of source data
US7523221B2 (en) Mechanism for applying transforms to multi-part files
TW200408980A (en) System and method for managing file names for file system filter drivers
KR20080005491A (en) Efficiently describing relationships between resources
KR101535703B1 (en) Apparatus and method for converting Value Object
CN104111922A (en) Processing method and device of streaming document
US20150347353A1 (en) Document layering platform
US20060184554A1 (en) System and method for extensible metadata architecture for digital images using in-place editing
US20060184576A1 (en) System and method for extensible metadata architecture for digital images
US8244694B2 (en) Dynamic schema assembly to accommodate application-specific metadata
US9613089B2 (en) Form template refactoring
US20060242141A1 (en) Abstracted metadata policy component and related architecture
US20110078552A1 (en) Transclusion Process
KR100965709B1 (en) Mechanism for applying transforms to multi-part files
RU2348069C2 (en) Mechanism of modification application to files consisting of multiple parts
US20120109911A1 (en) Compression Of XML Data
US9678983B1 (en) Systems and methods for automatically passing hints to a file system
Rahma et al. Proposed steganographic method for data hiding in Microsoft word documents structure
KR20050006975A (en) Method for Controlling Content Files Using Identification
Kowalczyk Curating Digital Cultural Heritage Materials

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150306

MM4A The patent is invalid due to non-payment of fees

Effective date: 20190518