JP2006526191A - マルチパートファイルに変換を適用する機構 - Google Patents

マルチパートファイルに変換を適用する機構 Download PDF

Info

Publication number
JP2006526191A
JP2006526191A JP2005500404A JP2005500404A JP2006526191A JP 2006526191 A JP2006526191 A JP 2006526191A JP 2005500404 A JP2005500404 A JP 2005500404A JP 2005500404 A JP2005500404 A JP 2005500404A JP 2006526191 A JP2006526191 A JP 2006526191A
Authority
JP
Japan
Prior art keywords
data
stream
list
transformation
computer
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2005500404A
Other languages
English (en)
Other versions
JP4378342B2 (ja
Inventor
ジェイ.ヒルバーグ マイケル
チェン ロジャー
ビー.オルンステイン デービッド
エム.カヒル ジェイソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006526191A publication Critical patent/JP2006526191A/ja
Application granted granted Critical
Publication of JP4378342B2 publication Critical patent/JP4378342B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/542Intercept

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

マルチパートファイル(202)に変換を適用するシステムおよび方法を記載する。マルチパートファイル中のストリームにアクセスする要求が受け取られる。要求を受け取ると、そのストリームに関連付けられた変換のリストが識別される(210)。このリストもマルチパートファイル(202)中に含まれる。要求を完了する前に、変換リスト中で指定される変換がデータに行われる。要求が書き込みである場合、変換でデータを符号化する(414)。要求が読み取りである場合は、変換でデータを復号する(430)。変換リストは順序に影響される。変換リストは、ストリームと変換リストの名前とを関係付けるマップを含む第1のストリーム、ストリームについての各変換をリストする第2のストリーム、ならびに、変換に関連付けられた情報を識別する、リストされる各変換についての第3のストリームを有するデータ構造を含む。

Description

本発明は、マルチパートファイルに変換を適用する機構に関する。
本願は、米国籍および居住者であるマイクロソフト社により2003年5月17日に出願されたPCT出願として出願され、米国を除くすべての国を指定する。
今日のコンピュータシステムは、通例、大量のデータを数個のファイルに格納する。ファイルのフォーマットは、ワードプロセッサ、表計算などの各種アプリケーションと互換性のある数個の異なるフォーマットの1つである。別のユーザがファイル内のデータを閲覧または操作できるように、別のコンピュータにファイルを送信することが必要となることが頻繁にある。時に、ファイルが相当に大きい場合は、ファイルをもう一方のコンピュータに送信する前にファイルに変換(例えば圧縮)を行う。ファイルを圧縮することにより、もう一方のコンピュータにデータを送信するのに必要な帯域幅が少なくなる。他の状況では、別の変換(例えば暗号化)を行って、権限のないユーザによりデータが見られないようにすることができる。
こうした変換方法の一部は、固有の符号化方式を有し、別個のファイル(例えばディクショナリ)を使用してその固有の符号化方式についての情報を格納する。変換されたファイルにアクセスする際には、この別個のファイルを使用しなければならない。別個のファイルが破損、損失した場合、あるいはその他の理由で利用できなくなった場合は、変換されたファイルは使用法がなくなる。また、こうした変換方法の一部は、符号化データをインターリーブし、情報を処理するための独自の符号化方式を定義するので、一旦ファイルが変換されると、ファイルを共有する、あるいはファイルに共通の処理を行うことができなくなる。また、ファイルを変換する前に、現在の変換方法ではファイル中のデータを隣接したバイトに編成することが必要とされる。ファイルのバイトが隣接した状態を保つようにすることは、多量のオーバーヘッドを費やし、かなり頻繁に編集されるファイルには実行することができない。したがって、こうした変換は非常に有用であるが、それが実施される方式は、多面的に利用できる体験をユーザにもたらさない。
本発明は、ユーザにより高い柔軟性を提供する変換を実施するシステムおよび方法を対象とする。簡潔に述べると、本発明は、1つまたは複数の変換に関連付けられた変換情報をマルチパートファイル(multi−part file)に格納する機構を提供する。マルチパートファイルは、その1つまたは複数の変換が適用されるデータも含む。したがって、本発明は、マルチパートファイルのためのファイルフォーマットを提供し、データにアクセスするアプリケーションは、変換されたデータに容易にアクセスすることができる。本発明によれば、複数のデータ変換をともに連鎖化する(chain)ことができる。それら連鎖化されたデータ変換を「データ空間」と称する。各データ空間は、ともに連鎖化された変換の一意の順序とタイプを有する。例えば、2つのデータ空間が同じ変換を指定することができるが、その変換を適用する異なる順序を指定することができる。変換情報は、データ空間についての情報を含む。
本発明の別の態様によれば、マルチパートファイルは、複数のストリームを含む。各ストリームは、データ空間の1つに関連付けることができる。したがって、本発明によれば、マルチパートファイル中の一部のストリームを変換し、一方、その他のストリームが各自のネイティブフォーマットを保つことができる。マルチパートファイル全体の変換を必要とせずに特定のストリームを変換するこの能力は、ユーザがマルチパートファイル中の機密性のある情報だけを暗号化する(ドキュメントの編集など)ことができるなど、高い柔軟性をユーザにもたらす。
したがって、本発明は、マルチパートファイルに変換を適用するシステムおよび方法を対象とする。マルチパートファイル中のストリームへのアクセスを求める要求が受け取られる。要求を受け取ると、そのストリームに関連付けられた変換のリストが識別される。このリストもマルチパートファイル中に含まれている。要求を完了する前に、変換リスト中で指定される変換がデータに行われる。要求が書き込みである場合は、変換でデータを符号化する。要求が読み取りである場合は、変換でデータを復号する。変換のリストは順序に影響される。変換リストは第1のストリームを有するデータ構造を含み、第1のストリームは、当該ストリームを変換リストの名前に関連付けるマップを含む。そのストリームの各変換をリストする第2のストリーム。その変換に関連付けられた情報を識別する、リストされた各変換についての第3のストリーム。
本発明は、マルチパートファイルに変換を適用する機構を提供する。この機構は、変換情報を指定する構造を提供する。変換情報および変換されたデータは、同一のドキュメント中に共存する。本発明の機構は、1つのドキュメント中に複数タイプのストリームを可能にするマルチパートファイルフォーマットに好ましく基づく。発明者は、OLE(Object Linking and Embedding)の複合ファイルフォーマットが本発明の実施に特に適していると判断した。したがって、以下の説明では、複合ファイルフォーマットを使用して本発明を説明する。しかし、当業者は、以下の説明を注意深く読んだ後に、下記の機構に各種の変更を加えて他のマルチファイルフォーマットが本発明を実施することにより、そうした他のマルチファイルフォーマットに対応できることを認識されよう。したがって、本発明の実施形態は、ここに記載される実施形態に限定されないことが理解されよう。
本明細書では、まず本発明の実施形態を実施することが可能な例示的コンピューティング環境の一例を参照して本発明を説明する。次いで、本発明の特定の一実施の詳細な例を説明する。特定の実施形態の一定の詳細に関しては、代替の実施も含めることができる。
本発明の例示的コンピューティング環境
図1は、本発明の実施に使用することが可能なコンピューティングデバイスを示す機能ブロック図である。図1は、本発明の例示的実施で使用することができる例示的コンピューティングデバイスを示す。図1を参照すると、非常に基本的な構成で、コンピューティングデバイス100は、通例、少なくとも1つの処理装置102とシステムメモリ104を含む。コンピューティングデバイス100の正確な構成とタイプに応じて、システムメモリ104は、揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、またはこの2種の何らかの組み合わせとすることができる。システムメモリ104は通例、オペレーティングシステム105、1つまたは複数のプログラムモジュール106を含み、プログラムデータ107を含むことができる。プログラムモジュール106の例には、ブラウザアプリケーション、金融管理アプリケーション、ワードプロセッサなどがある。この基本的構成を図1では点線108内の構成要素で表す。
コンピューティングデバイス100は、これに追加的な機能を有することができる。例えば、コンピューティングデバイス100は、例えば磁気ディスク、光ディスク、またはテープなどの追加的なデータ記憶装置(取り外し可能および/または取り外し不能)も含むことができる。そのような追加的ストレージを図1では取り外し可能ストレージ109と取り外し不能ストレージ110で表す。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶する任意の方式または技術として実施された揮発性および不揮発性、取り外し可能および取り外し不能の媒体が含まれる。システムメモリ104、取り外し可能ストレージ109、および取り外し不能ストレージ110はすべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体には、これらに限定しないが、RAM、ROM、EEPROM、フラッシュメモリ、その他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、その他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、その他の磁気記憶装置、または所望の情報の記憶に使用することができ、コンピューティングデバイス100によるアクセスが可能な任意の他の媒体が含まれる。そのようなコンピュータ記憶媒体をいずれもコンピューティングデバイス100の一部とすることができる。コンピューティングデバイス100は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置112も有することができる。ディスプレイ、スピーカ、プリンタなどの出力装置114も含めることができる。これらの装置は当技術分野でよく知られており、ここで詳細に説明する必要はない。
コンピューティングデバイス100は、コンピューティングデバイス100がネットワークを介してなど他のコンピューティングデバイス118と通信することを可能にする通信接続116も含むことができる。通信接続116は、通信媒体の一例である。通信媒体は通例、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって、搬送波や他のトランスポート機構などの変調データ信号として実施されることができ、任意の情報伝達媒体を含む。用語「変調データ信号」とは、信号中に情報を符号化するような形でその特性の1つまたは複数を設定または変化させた信号を意味する。例として、これに限定しないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、RF、赤外線、およびその他の無線媒体などの無線媒体が含まれる。本明細書で使用する用語「コンピュータ可読媒体」には、記憶媒体と通信媒体の両方が含まれる。
構成要素の概説
図2は、本発明を実施する環境の構成要素の概要を示す機能流れ図である。図には、好ましくはOLE複合ファイルであるマルチパートファイル202を示す。OLEドキュメントモデルは当技術分野で知られており、多数の異種タイプのデータを単一ドキュメントに含めるための機構として広く認識されている。従来、OLE複合ファイルは、数個の埋め込みファイルまたは他の支援内容を単一のドキュメントに関連付けることと併せて使用される。複合ファイル中の各要素は、その要素を作成したアプリケーションによる操作を可能とする方式で格納される。各要素は、図2に示すストリーム204、206、および208などのストリームとして格納される。上記のように、各ストリームは、数個のタイプの1つである。例えば、ストリーム1 204はワードプロセッシングドキュメントであり、ストリーム2 206は表計算であり、ストリームZ 208はグラフィックファイルとすることができる。
従来は、マルチパートファイル202に対する変換を要求する際には、マルチパートファイル202の内容全体(すなわちストリーム204〜208)が隣接していることが必要とされ、ともに変換されていた。しかし、本発明によれば、ストリーム204〜208は隣接している必要はない。ストリーム204〜208は、セクタ単位(sector−based)とすることができる。以下の説明では、セクタ単位のファイルとは、格納され、ストリーム全体に相当する複数のデータのチャンク(固まり)を有するファイルを指す。複数のチャンクは隣接して格納することができるが、通例は隣接せずに格納される。一実施形態では、このチャンクは、512バイトに固定するなど固定サイズとすることができる。あるいは、本発明の範囲から逸脱せずに、チャンクは様々に異なるサイズにしてもよい。ストリームが編集される際は、新しいデータのチャンクを作成し、そのストリームの他のデータのチャンクとの関係で隣接しないバイトに格納することができる。したがって、セクタ単位のファイルにより、ストリームが隣接した状態を保つようにするオーバーヘッドを無しにストリームを容易に編集することが可能になる。
下記で詳細に説明するように、本発明は、マルチパートファイル202中のストリーム(例えばストリーム206)に関連付けられた、指定されたデータのチャンク240を他のストリームを変換せずに変換できるようにする。本発明は、指定されたストリームを他のストリームから独立して変換することを可能にするので、本発明は、データを保護し、制御する多大な柔軟性を提供する。例えば、図2に、変換プロセスを受けるストリーム2 206を示す。ストリーム2 206は、特定品目に関連付けられた費用を含む表計算を表すものとする。したがって、権限のないユーザが費用を見ることができないように、この費用情報を保護することが望ましい場合がある。したがって、ストリーム2 206を行き先とするデータ240は、一連の変換(すなわち変換220〜224)を受ける。当業者には理解されるように、任意数の変換を連鎖化することができ、またどのような順序で連鎖化してもよい。連鎖化される特定の変換とそれら変換を連鎖化する順序がデータ空間230を表す。一般に、データ空間は、1つの変換を指定しても、複数の変換を指定してもよい。上記の例では、最後の変換(例えば変換224)が、変換後のデータを、例えばディスク(図示せず)に存在するストリーム2 206に書き込む。マルチパートファイルに変換を適用する機構を使用する一実施形態については、下記で図4と併せて詳細に説明する。
本発明の特定の実施形態の説明
図3は、図2に示す変換メタデータ210を表すツリー階層の一実施形態の図式表現である。一般に、ツリー階層は、マルチパートファイルと互換性のある任意の方式でマルチパートファイル中に含めることができる。以下の説明では、複合ファイルを参照してこのツリー階層を説明する。一般に、複合ファイルは、通例「ファイル中のファイルシステム」と考えられる。複合ファイル中には、ファイルシステム中のディレクトリに類似する「ストレージ」の階層と、ファイルシステム中のファイルに類似する「ストリーム」がある。図3では、長方形の枠がストリームを表し、長円形の枠がストレージを表す。本発明の変換メタデータ210を説明する前に、この例示的階層ではストリーム204〜208(図2に示す)がルート302の下に描かれていることに気づかれよう。ルートの下にストリームを定義することは、複合ファイルフォーマットに一般的な手法である。
本発明によって提供される変換メタデータ210についてさらに詳細に説明する。ルート302から分岐した「\006DataSpace」310と名づける特別なストレージが変換メタデータ210を格納する。\006DataSpaceストレージ310は、DataSpaceMapストリーム320、DataSpacelnfoストレージ330、およびTransformInfoストレージ340を含んでいる。この実施形態では、特別なストレージに選択した名前「\006DataSpaces」は、Cプログラミング言語に即して書かれている。したがって、この実施形態では、この名前は、単一の非英数文字のトークンと、トークン値6で始まる。一般に、この特別なストレージに割り当てられる名前は、任意であり、ユーザの実装に依存する。
DataSpaceMapストリーム320は、ストリーム(例えばストリーム204〜208)を各自に割り当てられたデータ空間にマッピングする。一実施形態では、DataSpaceMapストリーム320は、ストリーム参照の列322とDataSpaceNameの列324の2つの列を有する表である。ストリーム参照列322の内容は、複合ドキュメントに格納されたストリーム(例えばストリーム204〜208)の1つを参照する。DataSpaceNameの内容は、ストリーム参照列322内で識別される、関連付けられたストリームに定義された固有のデータ空間を参照する。1つのデータ空間を任意数のストリームに関連付けることができる。例えば、図3に示すように、「DataSpaceName1」と識別されるデータ空間は、ストリーム1 204とストリーム2 206に関連付けられている。上記のDataSpaceMapストリーム320の説明ではDataSpaceMapストリーム320を表としたが、当業者は、他のデータフォーマットを使用してストリームを識別し、データ空間に関係付けることが可能であることを認識されよう。
DataSpacelnfoストレージ330は、1つまたは複数のDataSpaceNameストリーム(例えばDataSpaceNameストリーム332および334)を含む。ここに記載する実施形態では、DataSpaceNameストリームは、標準的な複合ファイルのショートネームの慣習に従って名前をつけている。各DataSpaceNameストリーム332および334は、個々のDataSpaceNameストリーム332および334に関連付けられた変換のリスト336を識別する。一実施形態では、DataSpaceNameストリーム332および334はそれぞれ、データ空間を構成する順序付けられた変換リストとすることができる。変換はスタック状になるので、リスト336内の順序は重要である。一実施形態では、リスト336内の第1の変換337を「最下位」の変換と称し、これは、変換337が、基礎となるデータストリーム(例えばストリーム204)中のビットに最も近いことを意味する。リスト336内の最後の変換339を「最上位」変換と称し、これは、変換339が、データの消費側/作成側(例えばアプリケーション)に最も近いことを意味する。下記で図4との関連でより詳細に説明するように、リスト336内で指定される順序が、変換を通じたデータの流れを決定する。
TransformInfoストレージ340は、1つまたは複数のTransformInstanceストレージ(例えばTransformInstanceストレージ342、344、および346)を含む。一実施形態では、これらの下位ストレージの名前は、変換の名前である。各TransformInstanceストレージ342、344、および346内には、少なくとも1つの「\006Primary」と称するストリーム350がある。\006Primaryストリーム350は、TransformClass Type354およびTransformClass Name356など、特定の変換についての関連情報を含んでいる。TransformClass Type354は、特定の変換(例えばLZ圧縮、デジタル著作権管理(DRM)保護など)を実装する特定の変換クラスを表す。一実施形態では、TransformClass Name356が、変換のクラス(すなわちタイプ)を一意に識別するストリングに指定される。クラスを識別するストリングは、その変換を実装するクラスのクラス名とすることができる。TransformClass Type354は、TransformClass Name356に指定されるストリングをどのように解釈するかを示すタイプインディケータを指定する。\006Primaryストリーム350は、TransformInstance Data358の空間も含むことができる。TransformInstanceData358は、TransformClass Name356およびTransformClass Type354によって指定された変換に対して指定された情報を格納する。例えば、変換が圧縮変換である場合、TransformInstanceData358は、ウィンドウサイズなどを含むことができる。
ある変換については、TransformInstanceData358は、必要な情報を格納するのに十分な空間を提供しない場合がある。したがって、さらなる改良として、本発明は、変換が、TransformInstanceDataストリーム(例えばTransformInstanceDataストリーム370)に追加的な情報を格納することを可能にする。これは、\006Primaryストリーム350と名前の衝突がない限り許可される。TransformlnstanceDataの性質は、変換のタイプに応じて異なる。
上記のツリー階層では、変換後のデータをその変換情報とともに格納するドキュメントフォーマットの一実施形態を説明したが、当業者は、この階層は、本発明の動作に影響を与えずに変えることが可能であることを認識されよう。したがって、変換情報が変換後のデータとともに格納されるツリー階層はいずれも本発明から逸脱しない。図4は、本発明による変換後のデータを有するドキュメントをフォーマットする機構が使用される変換プロセスの図である。この例示的変換プロセスでは、アプリケーション400が、図2に示したマルチパートファイル202の読み取りおよび書き込みを試みる。一般に、変換クラスの各インスタンスは、IStreamインタフェースを入力として受け取り、符号化された(変換後の)データを別のIStreamインタフェースに出力する。変換(例えば変換420および422)は登録されており、ストリーム206に関連付けられたデータ空間は、OLE複合ドキュメントによって提供されるアプリケーションプログラミングインタフェースを介するなどしてすでに指定されている。例えば、ストリーム206が最初に作成された時に、ストリーム206をマルチパートドキュメント202中に作成したアプリケーションは、データに適用すべき変換を指定する責任があった。これは、各引数が変換を参照する引数リストを介して行うことができる。
読み取りと書き込みのアクセスは、OS層を介して行われる。従来は、書き込みの動作は、IStreamインタフェース414を介してストリーム2 206にアクセスしていた。しかし、本発明では、IStreamインタフェース414の前に1つまたは複数の変換を挿入することができる。各変換(例えば変換420および422)は、IStreamインタフェース(それぞれIStreamインタフェース410と412)を入力として受け取り、各自の符号化した(変換後の)データを別のIStreamインタフェース(それぞれIStreamインタフェース412と414)に出力する。
同様に、アプリケーション400がマルチパートファイル202中のストリーム2 206の読み取りを試みる際には、1つまたは複数の逆変換(例えば逆変換450および452)を挿入することができる。逆変換の個数は、データを正しく復号してアプリケーションがデータを理解できるように、変換の数と同じにする。アプリケーション400とストリーム206の間に変換が挿入される方式について、次いで図5との関連で説明する。
図5は、本発明による複合ファイル内の変換後のデータにアクセスするプロセスを概説する論理流れ図である。プロセス500は開始ブロック501で開始し、この時点でアプリケーションがマルチパートファイルのストリーム中のデータへのアクセスを要求している。そのストリームには、変換情報210がすでに指定されている。
判定ブロックで、ストリームがデータ空間のメンバであるかどうかの判定を行う。図3を参照すると、一実施形態では、この判定は、要求されるストリームを識別するストリーム参照322を求めてDataSpaceMap内を検索することによって行われる。ストリームに関連付けられたストリーム参照322が見つからない場合はそのストリームには定義された変換がないことになり、処理は終了に進む。その状況では、アプリケーションは、本発明以前に行われていた方式でデータにアクセスする。しかし、ストリーム参照322がDataSpaceMap内に含まれている場合は、処理はブロック504に進む。
ブロック504で、ストリーム参照322に関連付けられたDataSpaceNameを取得する。DataSpaceNameは、ストリングまたは他のフォーマットである。
ブロック506で、ブロック504で得たDataSpaceNameを使用して、DataSpaceInfoストレージを検索して、DataSpaceMap内で識別されたDataSpaceNameに関連付けられたDataSpaceNameストリームを識別する。DataSpaceNameストリームは、このデータ空間名に関連付けられた変換のリストを含んでいる。
ブロック508で、リスト中から変換が識別される。アクセスが書き込みであるか読み取りであるかに応じて、この変換でそれぞれデータを符号化するか、またはデータを復号することができる。DataSpaceNameストリームは、各変換を特定の順序でリストする。アクセスが書き込みである場合、この順序は、最上位から最下位の順序になる。アクセスが読み取りである場合、この順序は最下位から最上位の順序になる。
ブロック510で、識別された変換が適用される。変換を適用する際、変換のインスタンスデータを使用してデータを正しく変換する。アクセスが書き込みである場合は、変換(符号化)が適用される。アクセスが読み取りである場合は、逆変換(復号)が適用される。
判定ブロック512で、データ空間が連鎖化された変換をさらに含むかどうかの判定を行う。これは、リスト336がさらに多くの変換インスタンスを参照するかどうかを調べることによって判定することができる。データ空間中の最後の変換が適用されている場合は、最後の変換がデータを出力し、プロセスが完了する。しかし、さらに別の変換がリストされている場合は、処理はブロック508にループバックし、最後の変換が適用されるまで上記の要領で進行する。
また、当業者は、プロセス300によって提供される機能は各種方式で実装できることを理解されよう。例えば、ストリーム名から変換リストに直接マッピングを行うことができる(データ空間の使用を省く)。したがって、本発明は、ストリームをその変換情報にマッピングするための上記およびその他の実施形態を含む。プロセス500は、そのような実施形態の1つを例示する。
上記の詳述、例、およびデータは、本発明の構成の作成と使用についての完全な説明を提供する。本発明の精神および範囲から逸脱せずに本発明の多数の実施形態を作成することができるので、本発明は、添付の特許請求の範囲に存在する。
本発明の実施に使用することが可能なコンピューティングデバイスを示す機能ブロック図である。 本発明による変換プロセスの概要を概説する機能流れ図である。 図2に示す変換メタデータを表す例示的ツリー階層の図式表現図である。 変換プロセスの図である。 本発明の一実施形態による、マルチパートファイル中の変換後データにアクセスするプロセスを概説する論理流れ図である。

Claims (27)

  1. マルチパートファイル中のストリームにアクセスする要求を受け取るステップと、
    前記ストリームに関連付けられた少なくとも1つの変換のリストを識別するステップであって、前記リストは前記マルチパートファイル中から識別されるステップと、
    前記要求を完了する前に、前記変換リスト中で指定された変換をデータに行うステップと
    を備えることを特徴とするコンピュータ実施方法。
  2. 前記マルチパートファイルは、OLEの複合ファイルを含むことを特徴とする請求項1に記載のコンピュータ実施方法。
  3. 前記変換リストを識別するステップは、前記ストリームを求めてデータ空間マップを検索するステップを備え、前記データ空間マップは、前記ストリームと、データ空間に関連付けられたデータ空間名との関係付けを提供し、前記データ空間が前記リストを定義することを特徴とする請求項1に記載のコンピュータ実施方法。
  4. 前記少なくとも1つの変換のリストは、リストされる各変換のタイプおよび名前を含むことを特徴とする請求項1に記載のコンピュータ実施方法。
  5. 前記リストはさらに、前記リスト中で識別される変換の1つについての変換インスタンスデータを含み、前記変換インスタンスデータは、前記1つの変換によって変換されたデータを復号するための関連情報を指定することを特徴とする請求項1に記載のコンピュータ実施方法。
  6. 前記要求は、データチャンクの書き込み要求であり、前記少なくとも1つの変換が前記データチャンクに行われて、記憶媒体に書き込まれる符号化データを作成することを特徴とする請求項1に記載のコンピュータ実施方法。
  7. 前記データチャンクは、前記ストリームについて前記記憶媒体に以前に書き込まれた他のデータチャンクと隣接しないことを特徴とする請求項6に記載のコンピュータ実施方法。
  8. 前記データチャンクは、前記ストリームについての他のデータチャンクを伴う固定サイズのチャンクであることを特徴とする請求項6に記載のコンピュータ実施方法。
  9. 前記リストは、圧縮変換および暗号化変換を含むことを特徴とする請求項1に記載のコンピュータ実施方法。
  10. 前記要求は、データチャンクの読み取り要求であり、前記少なくとも1つの変換は、前記ストリームから取り出された前記データチャンクに逆変換を行って復号後のデータを要求元に提供することを特徴とする請求項1に記載のコンピュータ実施方法。
  11. マルチパートファイルに変換を適用する機構を有するコンピュータシステムであって、
    プロセッサと、
    複数のコンピュータ実行可能命令のために割り振られたメモリであって、前記複数のコンピュータ実行可能命令は、前記プロセッサによる実行のために前記メモリにロードされるメモリと
    を備え、前記コンピュータ実行可能命令は、
    マルチパートファイル中のストリームにアクセスする要求を受け取るステップと、
    前記ストリームに関連付けられた少なくとも1つの変換のリストを識別するステップであって、前記リストは前記マルチパートファイル中から識別されるステップと、
    前記要求を完了する前に、前記変換リスト中で指定された変換をデータに行うステップと
    を備える方法を行うことを特徴とするコンピュータシステム。
  12. 前記マルチパートファイルは、OLEの複合ファイルを含むことを特徴とする請求項11に記載のコンピュータシステム。
  13. 前記変換リストを識別するステップは、前記ストリームを求めてデータ空間マップを検索するステップを備え、前記データ空間マップは、前記ストリームと、データ空間に関連付けられたデータ空間名との関係付けを提供し、前記データ空間が前記リストを定義することを特徴とする請求項11に記載のコンピュータシステム。
  14. 前記少なくとも1つの変換のリストは、リストされる各変換のタイプおよび名前を含むことを特徴とする請求項11に記載のコンピュータシステム。
  15. 前記リストはさらに、前記リスト中で識別される変換の1つについての変換インスタンスデータを含み、前記変換インスタンスデータは、前記1つの変換によって変換されたデータを復号するための関連情報を指定することを特徴とする請求項11に記載のコンピュータシステム。
  16. 前記要求は、データチャンクの書き込み要求であり、前記少なくとも1つの変換が前記データチャンクに行われて、記憶媒体に書き込まれる符号化データを作成することを特徴とする請求項11に記載のコンピュータシステム。
  17. 前記データチャンクは、前記ストリームについて前記記憶媒体に以前に書き込まれた他のデータチャンクと隣接しないことを特徴とする請求項16に記載のコンピュータシステム。
  18. 前記データチャンクは、前記ストリームについての他のデータチャンクを伴う固定サイズのチャンクであることを特徴とする請求項16に記載のコンピュータシステム。
  19. 前記リストは、圧縮変換および暗号化変換を含むことを特徴とする請求項11に記載のコンピュータシステム。
  20. 前記要求は、データチャンクの読み取り要求であり、前記少なくとも1つの変換は、前記ストリームから取り出された前記データチャンクに逆変換を行って復号後のデータを要求元に提供することを特徴とする請求項11に記載のコンピュータシステム。
  21. データ構造が符号化されたコンピュータ可読媒体であって、
    マルチパートファイル中のストリームを変換リストの名前と関係付けるマップを含む第1のストリームと、
    前記ストリームについての各前記変換をリストする第2のストリームと、
    前記変換に関連付けられた情報を識別する、各前記変換についての第3のストリームと
    を備えることを特徴とするコンピュータ可読媒体。
  22. 前記データ構造は、前記マルチパートファイル中に含まれることを特徴とする請求項21に記載のコンピュータ可読媒体。
  23. 前記変換リストの名前は、前記マルチパートファイル中の複数のストリームと関係付けることができることを特徴とする請求項21に記載のコンピュータ可読媒体。
  24. 前記変換リストは順序に影響されることを特徴とする請求項21に記載のコンピュータ可読媒体。
  25. 前記情報は、前記変換のクラス名とクラスタイプを識別することを特徴とする請求項21に記載のコンピュータ可読媒体。
  26. 前記情報はさらに、前記変換に関連付けられたインスタンスデータを識別することを特徴とする請求項25に記載のコンピュータ可読媒体。
  27. 前記変換は圧縮変換を含み、前記インスタンスデータは前記圧縮変換のウィンドウサイズを含むことを特徴とする請求項26に記載のコンピュータ可読媒体。
JP2005500404A 2003-05-17 2003-05-17 マルチパートファイルに変換を適用する機構 Expired - Fee Related JP4378342B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2003/015707 WO2004107198A1 (en) 2003-05-17 2003-05-17 Mechanism for applying transorms to multi-part files

Publications (2)

Publication Number Publication Date
JP2006526191A true JP2006526191A (ja) 2006-11-16
JP4378342B2 JP4378342B2 (ja) 2009-12-02

Family

ID=33449011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005500404A Expired - Fee Related JP4378342B2 (ja) 2003-05-17 2003-05-17 マルチパートファイルに変換を適用する機構

Country Status (9)

Country Link
EP (1) EP1625510A4 (ja)
JP (1) JP4378342B2 (ja)
KR (1) KR100965709B1 (ja)
CN (1) CN100430916C (ja)
AU (1) AU2003241506B8 (ja)
BR (1) BR0306999A (ja)
CA (1) CA2470720C (ja)
MX (1) MXPA04007407A (ja)
WO (1) WO2004107198A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012507072A (ja) * 2008-10-24 2012-03-22 マイクロソフト コーポレーション 分散ストレージシステムにおけるデータのアトミックな複合変形
US8886796B2 (en) 2008-10-24 2014-11-11 Microsoft Corporation Load balancing when replicating account data
US9996572B2 (en) 2008-10-24 2018-06-12 Microsoft Technology Licensing, Llc Partition management in a partitioned, scalable, and available structured storage

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4862079B2 (ja) * 2006-05-31 2012-01-25 サイトリックス システムズ, インコーポレイテッド ゲートウェイでのリクエスト提出復号用文字セット符号化決定のためのシステムおよび方法
CN108337208B (zh) * 2017-01-19 2020-11-24 中国电信股份有限公司 基于云存储的数据保护方法、替换装置以及云存储系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8901827A (nl) * 1989-07-14 1991-02-01 Oce Nederland Bv Systeem voor het verwerken van in bestanden georganiseerde gegevens, alsmede beheersmodule ten gebruike daarin en opslagmedium, voorzien van de programmatuur van deze beheersmodule.
JP3308770B2 (ja) * 1994-07-22 2002-07-29 三菱電機株式会社 情報処理装置および情報処理装置における計算方法
US5742818A (en) * 1995-12-15 1998-04-21 Microsoft Corporation Method and system of converting data from a source file system to a target file system
US6339775B1 (en) * 1997-11-07 2002-01-15 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6314208B1 (en) * 1998-07-21 2001-11-06 Hewlett-Packard Company System for variable quantization in JPEG for compound documents
US6357042B2 (en) * 1998-09-16 2002-03-12 Anand Srinivasan Method and apparatus for multiplexing separately-authored metadata for insertion into a video data stream
SE513356C2 (sv) * 1998-11-20 2000-08-28 Ericsson Telefon Ab L M Förfarande och anordning för kryptering av bilder
US7644366B1 (en) * 1999-07-30 2010-01-05 Computer Associates Think, Inc. Method and system for displaying a plurality of discrete files in a compound file
US6529948B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Multi-object fetch component
US20020003886A1 (en) * 2000-04-28 2002-01-10 Hillegass James C. Method and system for storing multiple media tracks in a single, multiply encrypted computer file
EP1189432A3 (en) * 2000-08-14 2004-10-20 Matsushita Electric Industrial Co., Ltd. A hierarchical encryption scheme for secure distribution of predetermined content

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012507072A (ja) * 2008-10-24 2012-03-22 マイクロソフト コーポレーション 分散ストレージシステムにおけるデータのアトミックな複合変形
US8886796B2 (en) 2008-10-24 2014-11-11 Microsoft Corporation Load balancing when replicating account data
KR101573965B1 (ko) 2008-10-24 2015-12-02 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 분산형 저장 시스템 내의 데이터의 원자 다중 변경
US9996572B2 (en) 2008-10-24 2018-06-12 Microsoft Technology Licensing, Llc Partition management in a partitioned, scalable, and available structured storage

Also Published As

Publication number Publication date
AU2003241506B2 (en) 2009-11-26
CN1615477A (zh) 2005-05-11
WO2004107198A1 (en) 2004-12-09
KR100965709B1 (ko) 2010-06-24
KR20060037217A (ko) 2006-05-03
EP1625510A1 (en) 2006-02-15
MXPA04007407A (es) 2005-02-17
AU2003241506B8 (en) 2010-01-07
AU2003241506A1 (en) 2005-01-21
BR0306999A (pt) 2005-02-09
CA2470720A1 (en) 2004-11-17
JP4378342B2 (ja) 2009-12-02
CN100430916C (zh) 2008-11-05
CA2470720C (en) 2011-10-18
EP1625510A4 (en) 2008-03-12

Similar Documents

Publication Publication Date Title
US7631022B2 (en) Information processing apparatus and recording medium
US7523221B2 (en) Mechanism for applying transforms to multi-part files
US7917845B2 (en) System and method for managing dynamic document references
US7496586B1 (en) Method and apparatus for compressing data in a file system
US9460060B2 (en) System and method for managing dynamic document references
JP4406225B2 (ja) 宛先記憶媒体、イメージファイルの作成方法、データ復元方法およびプログラム
US10726147B2 (en) File encryption support for FAT file systems
JP4406224B2 (ja) イメージファイル管理方法及びその記録媒体
US8261187B2 (en) System and method for managing dynamic document references
US20080228770A1 (en) Method for Performing Recoverable Live Context Migration in a Stacked File System
US8250468B2 (en) System and method for managing dynamic document references
JP2008537259A (ja) 資源間の関係の効率的記述
KR101535703B1 (ko) 데이터 객체 변환 장치 및 방법
US20070156743A1 (en) System and method for managing dynamic document references
JP2005301853A (ja) 情報処理装置および情報処理方法、並びにプログラムおよび記録媒体
JP4378342B2 (ja) マルチパートファイルに変換を適用する機構
JP2005108239A (ja) 階層的データ構造体にデータを記憶する記憶システム
RU2348069C2 (ru) Механизм применения преобразований к файлам, состоящим из множественных частей
CN105243090A (zh) 一种独占文件的获取方法和系统
WO2020175306A1 (ja) 匿名化装置、匿名化方法、プログラム
JP2004362206A (ja) ストレージ装置およびデータ変換プログラム
Wirth et al. Sequential input and output

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090518

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090814

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090914

R150 Certificate of patent or registration of utility model

Ref document number: 4378342

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120918

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120918

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130918

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees