JP4318305B2 - オブジェクトリンキングを使用する、複合文書中のデータに対して保存およびアクセスを行う方法 - Google Patents
オブジェクトリンキングを使用する、複合文書中のデータに対して保存およびアクセスを行う方法 Download PDFInfo
- Publication number
- JP4318305B2 JP4318305B2 JP2004242981A JP2004242981A JP4318305B2 JP 4318305 B2 JP4318305 B2 JP 4318305B2 JP 2004242981 A JP2004242981 A JP 2004242981A JP 2004242981 A JP2004242981 A JP 2004242981A JP 4318305 B2 JP4318305 B2 JP 4318305B2
- Authority
- JP
- Japan
- Prior art keywords
- storage
- interface layer
- application program
- instance
- layer
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/956—Hierarchical
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
- Computer And Data Communications (AREA)
- Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
- Warehouses Or Storage Devices (AREA)
Description
上記したように、マルチストリームインターフェイスは、IStorage及びIStreamインターフェイスを定める。IStorageインターフェイス及びIStreamインターフェイスは、本発明のハイアラーキストレージを具現化する1組の純粋な仮想メソッドを定める。純粋な仮想メソッドとは、デクラレーションは有するがコードの具現化をもたないファンクションである。これらインターフェイスは、インターフェイスの特定の具現化とは独立してアプリケーションプログラムを開発できるようにする。好ましい具現化について以下に述べるが、IStorage及びIStreamインターフェイスを用いたアプリケーションプログラムは、何らかの具現化に添付したときに何ら変更を行わずに実行することができる(具現化のメソッドにリンクすることは除いて)。
本発明では、ストレージ及びストリームを種々のアクセスモードで開放することができる。アクセスモードは、エレメント(ストレージ又はストリーム)がトランザクションモードで開放されるか、読み取り又は書き込みモードで開放されるか、拒絶読み取り又は拒絶書き込みモードで開放されるかを制御する。
SCODE StgCreateDocfile(lpszName,grfMode,dwIfThere,reserved,ppstg)
StgCreateDocfile関数は、指定された名称を使用して複合文書としてファイルシステムにファイルを形成し、そのファイル内にルートストレージを形成し、そして指定されたアクセスモードでそのルートストレージを開放する。パラメータdwIfThereは、指定された名称のファイルが存在するときにその関数のふるまいを指定する。このようなファイルが存在する場合に、この関数は、任意にエラーを返送し、それを削除しそして新たなファイルを形成するか、或いはそのファイルを、「CONTENT」という名称のストリームを含むルートストレージを含んだファイルと置き換える。ストリームは、古いファイルにあったデータを含む。指定された名称がNULLの場合には、独特の名称をもつ一時的な文書ファイルが形成される。この関数は、ルートストレージに対するIStorageインスタンスを例示し、そしてそれに対するポインタを返送する。
SCODE StgOpenStorage(lpszName,pstgPriority,grfMode,subExclude,reserved,ppstgOpen)
StgOpenStorage関数は、指定された名称の既存の複合文書を指定されたアクセスモードで開放する。ファイルが存在しないか又はストレージではない場合には、エラーが返送される。この関数は、開放されたIStorageインスタンスに対するポインタを返送する。
テーブル1は、IStorageインターフェイスを定めるものである。IStorageインターフェイスのメソッドのパラメータはテーブル2で定められる。各メソッドのふるまいは、これらテーブルの後に指定する。IStorageインターフェイスは、IStreamインスタンス及びIStorageインスタンスを含むことができ、これらは、親IStorageインスタンスのエレメントと称される。
テーブル1
Class IStorage
{
仮想 SCODE Release0=0;
仮想 SCODE CreateStream(lpsName,grfMode,dwIfThere,reserved,ppstm)=0;
仮想 SCODE OpenStream(lpsName,grfMode,reserved,ppstm)=0;
仮想 SCODE CreateStorage(lpszName,grfMode,dwIfThere,reserved,ppstg)=0;
仮想 SCODE OpenStrage(lpszName,pstgPriority,grfMode,subExclude,reserved,ppstg)=0;
仮想 SCODE CopyTo(pstgDest)=0;
仮想 SCODE Commit(grfCommitFlags)=0;
仮想 SCODE Revert 0=0;
仮想 SCODE EnumElements(reserved1,reserved2,reserved3,ppenun)=0;
仮想 SCODE DestroyElement(lpszName)=0;
仮想 SCODE RenameElement(lpszOldName,lpszNewName)=0;
仮想 SCODE Stat(pstatatg)=0.
}
テーブル2
項目 説明
lpszName ストリーム又はストレージの名称(IStorage インスタン
ス内の全てのエレメントは同じ名称空間内にある)
grfMode IStream 又はIStorageインスタンスのアクセスモード
dwIfThere IStream 又はIStorageインスタンスを形成するときに
は、dwIfThere は、同じ名称のエレメントが既に存在
するときのふるまいを指示する
reserved ゼロでなければならない
ppstm IStream インスタンスに対するポインタ
ppstg IStorageインスタンスに対するポインタ
Releaseメソッドは、指定されたIStorageインスタンスを閉じ、インスタンスを無効とする。(以下の説明において、「指定された」という語は、メソッドが呼び出されるインスタンスを指し、そして「指示される」という語はパラメータを指すものとする。)好ましい実施例において、IStorageインターフェイスは、レファレンスカウンタを増加するメソッドを含む。Releaseメソッドはレファレンスカウンタを減少し、カウントが0に達したときに指定されたインスタンスのみを無効にする。
CreateSTreamメソッドは、指定されたIStorageインスタンスのストレージ内に指示された名称の新たなストリームを形成し、そして指定されたアクセスモードでストリームを開放する。パラメータdwIfThereは、指定された名称のエレメントが既に存在するときにこのメソッドのふるまいを指示する。このようなエレメントが存在するときには、このメソッドは任意にエラーを返送するか、又は既存のエレメントを削除して新たなストリームを形成する。このメソッドは、形成されたストリームに対してIStreamインスタンスを例示し、それに対するポインタを返送する。
OpenStreamメソッドは、指定されたIStorageインスタンスのストレージ内で指示された名称の既存のストリームを指示されたアクセスモードで開放する。指示された名称のストリームがストレージ内に存在しないか又は指示されたアクセスモードで開放できない場合には、エラーが返送される。アクセスモードについては以下で詳細に述べる。このメソッドは開放ストリームに対してIStreamインスタンスを例示し、それに対するポインタを返送する。
CreateStorageメソッドは、指定されたIStorageインスタンス内に指示された名称の新たなストレージを形成し、この新たなストレージを指示されたアクセスモードで開放する。パラメータdwIfThereは、指示された名称のエレメントが既に存在するときにこのメソッドのふるまいを指示する。同じ名称のエレメントが存在する場合には、このメソッドは任意にエラーを返送するか又は既存のエレメントを削除して新たなストレージを形成する。同じ名称のストリームが存在する場合には、そのストリームが、「CONTENTS」という名称の1つのストリームを含む新たなストレージと置き換えられる。このストリームは古いストリーム内にあったデータを含む。このメソッドは、形成されたストレージに対しIStorageインスタンス(及びもし必要ならばIStream)を例示する。
OpenStorageメソッドは、指定されたIStorageインスタンス内の指示された名称の既存のストレージを指示されたアクセスモードで開放する。指示された名称のストレージが存在しないか又は指示されたアクセスモードで開放できない場合には、エラーが返送される。
CopyToメソッドは、指定されたIStorageインスタンスのストレージの全内容を指示されたストレージにコピーする。このメソッドは、指示されたストレージの内容を置き換える。指示されたストレージは、指定されたストレージとは異なる具現であってもよい。従って、CopyToの具現は、指示されたストレージのメソッドしか使用してはならない。
Commitメソッドは、指定されたストレージに対するトランザクションをコミットする。Commitメソッドのふるまいは、指定されたストレージが開放されたアクセスモードによって左右される。指定されたストレージが直接モードで開放された場合には、このメソッドは、1つの例外を除いて何の作用も及ぼさない。指定されたIStorageインスタンスがルートストレージである場合、このメソッドは、通常の「フラッシュ」オペレーションのように動作し、これは、内部のメモリバッファがその基礎となる記憶装置へ書き出されるよう確保する。
Revertメソッドは、指定されたストレージが開放されるか又は最後にコミットされて以来(いずれか遅い方)そのエレメントによってストレージにコミットされた全ての変化を破棄する。このメソッドの完了後に、指定されたストレージに対して開放されたいかなるエレメントも無効とされる(Release以外のこれらエレメントの全てのメソッドによってエラーが返送される)。
EnumElementsメソッドは、指定されたIStorageインスタンスのストレージ内に直ちに含まれたエレメントを列挙する。指定されたストレージは、読み取りモードで開放されねばならない。
DestroyElementメソッドは、指示された名称のエレメントを指定されたストレージインスタンスから除去する。この破壊されたエレメントを開放すること(指定されたストレージを介して)は無効になる。エレメントが存在しない場合には、エラーが返送される。
RenameElementメソッドは、指定されたストレージ内の指示されたエレメントを古い名称から新しい名称に変更する。この新しい名称が既に存在する場合、又は古い名称が存在しない場合には、エラーが返送される。
Statメソッドは、ストレージ指定されたIStorageインスタンスに関する統計学的な情報を返送する。
テーブル3は、IStreamインターフェイスを定める。IStreamインターフェイスのメソッドのパラメータはテーブル4に示す。IStreamインターフェイスは、各読み取り及び書き込みのためのストリーム内の位置として使用されるシークポインタを定める。各メソッドのふるまいは以下に指定する。
テーブル3
Class IStream
{
仮想 SCODE Release0=0;
仮想 SCODE Read(pv,cb,pcbRead)=0;
仮想 SCODE Write(pv,cb,pcbWritten)=0;
仮想 SCODE Seek(dlibMove,dwOrigin,plibNewPosition)=0;
仮想 SCODE SetSize(libNewSize)=0;
仮想 SCODE Clone(ppstm)=0;
仮想 SCODE CopyTo(ppstm,cb,pcbRead,pcbWritten)=0;
仮想 SCODE Commit(grfCommitFlags)=0;
仮想 SCODE Revert 0=0;
仮想 SCODE LockRegion(cb,dwLockType)=0;
仮想 SCODE UnlockRegion(cb,dwLockType)=0;
仮想 SCODE Stat(pstatstg)=0;
}
テーブル4
項目 説明
pv 読み取り又は書き込みするためのバッファのポインタ
cb バイト数
ppstm IStream インスタンスのポインタ
pcbWritten ストリームに実際に書き込まれるバイト数で、呼び出
し側に関与しない場合にはNULLである
pcbRead ストリームから実際に読み取られるバイト数で、呼び
出し側に関与しない場合にはNULLである
dlibMove dwOriginによって指示された位置に追加される変位
dwOrigin シークモード
plibNewPosition 更新されたシークポインタ
libNewSize 新たなストリームのサイズ
dwLockType ロックの形式
Releaseメソッドは、指定されたIStreamインスタンスのストリームを閉じる。好ましい実施例では、IStreamインスタンスは、レファレンスカウンタを増加するメソッドを含む。Releaseメソッドは、レファレンスカウンタを減少し、カウントがゼロになったときに指定されたIStreamインスタンスを無効にする。
Readメソッドは、現在シークポインタでスタートして、指定されたIStreamインスタンスのストリームから指示されたバッファへ指示された数のバイトを読み込む。このメソッドは、実際に読まれたバイトの数を返送する。このメソッドは、実際に読まれたバイトの数でシークポインタを調整する。ストリームが読み取りモードで開放されていない場合には、エラーが返送される。実際に読まれたバイトの数は、読み取り中にストリームの終わりに達した場合には、要求されたものより少なくなる。
Writeメソッドは、現在シークポインタでスタートして、指示されたバッファから指定されたIStreamインスタンスのストリームへ指示された数のバイトを書き込む。非ゼロのバイトカウントが指定されそしてシークポインタがストリームの終わりを現在通過したときには、シークポインタに到達するようにストリームのサイズが増加される。加えられたバイトは初期化されない。ストリームが適当なモードで開放していない場合には、エラーが返送される。実際に書き込まれたバイトの数が返送される。シークポインタは、実際に書き込まれたバイトの数で調整される。
Seekメソッドは、指定されたIStreamインスタンスのストリームに対しシークポインタの位置を調整する。ストリームの開始より前ではシークエラーとなる。ストリームの終わりを越えてもシークエラーとならない。パラメータdlibMoveは、パラメータdwOriginによって指示されるように、ストリームの開始、現在シークポインタ、又はストリームの終わりのいずれかからの変位を指示する。新たなシークポインタは、パラメータplibNewPositionにおいて返送され、これは発呼者が新たなシークポインタに関心をもたない場合にゼロとなる。
SetSizeメソッドは、指定されたIStreamインスタンスのストリームのサイズを、パラメータlibNewSizeで指示されたものに変更する。シークポインタは、この動作によって影響されない。ストリームは、サイズが増加されるか又はサイズが減少されるかのいずれかである。ストリームのサイズが増加される場合には、新たなバイトの内容が定められない。
Cloneメソッドは、指定されたIStreamインスタンスと同じ基礎的ストリームを指す新たなIStreamインスタンスを形成する。1つのIStreamインスタンスを介してのストリームの変更は、他のストリームインスタンスを介して直ちに見ることができる。ロック状態(以下に述べる)は、2つのIStreamインスタンス間で分担される。しかしながら、クローンされたIStreamインスタンスは、指定されたIStreamインスタンスのシークポインタとは独立したそれ自身のシークポインタを有する。クローンされたIStreamインスタンスにおけるシークポインタの初期設定は、このCloneメソッドが呼び出されたときには、指定されたIStreamインスタンスにおけるシークポインタの現在設定と同じである。
CopyToメソッドは、指定されたIStreamインスタンスのストリームから(その現在シークポインタでスタートして)、指示されたIStreamインスタンスのストリームへ(その現在シークポインタでスタートして)指定された数のバイトをコピーする。実際に読み取られるか又は書き込まれたバイトの数が返送される。各IStreamインスタンスのシークポインタは、実際に読み取られるか又は書き込まれたバイトの数で調整される。IStreamインスタンスが適当なアクセスモードで開放していない場合には、エラーが返送される。このメソッドは、語義的には、読み取りに続く書き込みと等価である。
Commitメソッドのふるまいは、IStreamインスタンスが開放されるモードに基づいている。直接モードにおいては、このメソッドは何のふるまいももたない。トランザクションモードにおいては、このメソッドは、IStreamインスタンスが開放されるか又は親ストレージに反映されるように最後にコミットされて以来(いずれか遅い方)IStreamインスタンスになされた変化を生じさせる。指示されたコミットモードは、IStorage::Commitメソッドで述べたのと同様に機能する。
Revertメソッドのふるまいは、指定されたIStreamインスタンスのストリームが開放されるモードによって左右される。直接モードにおいては、このメソッドは何の動作も行わない。トランザクションモードにおいては、IStreamインスタンスが開放されるか或いは最後にコミットされて以来(どちらか遅い方)IStreamインスタンスになされた全ての変化が破棄される。
LockRegionメソッドは、指定されたIStreamインスタンスのストリームの領域をロックするように試みる。領域は現在シークポインタで始まり、ストリームの終わりに向かって指示されたバイト数だけ延びる。ストリームの現在終端を越えて延びる領域を指示することは義務である。ストリームに対する領域ロックをサポートすることは任意である。このメソッドは、2つの形式のロック、即ち、他の書き込み者を排除するためのロック(書き込みロック)と、他の書き込み者及び読み取り者を排除するためのロック(排他的ロック)とをサポートする。書き込みロックが許可された場合には、ストリームの指示された領域を読み取りメソッドによりその基礎となるストリームのIStreamインスタンスからアクセスすることができる。しかしながら、指定されたIStreamインスタンス及びそのクローンを除いて、書き込みメソッドがいずれかのIStreamインスタンスを介して呼び出された場合には、エラーが返送される。排他的ロックが許可された場合には、他のIStreamインスタンスを介して呼び出された読み取り及び書き込みメソッドがエラーを返送する。要求されたモードが具現化によってサポートされない場合には、エラーメッセージが返送される。要求されたロックはサポートされるが、他のロックであるために現在許可できない場合には、エラーが返送される。このメソッドでロックされた領域は、全く同じシークポインタと、同じバイトカウントと、同じロック形式とを有するUnLockRegionメソッドを用いて後で特にロック解除しなければならない。従って、2つの隣接領域を別々にロックして1つのアンロックコールでロック解除することはできない。IStreamインスタンスを通るストリームに対する全てのロックは、IStreamインスタンスをリリースする前に明確にロック解除されねばならない。
UnLockRegionメソッドは、指定されたIStreamインスタンスのストリームの以前にロックされた領域をロック解除する。
Statメソッドは、指定されたIStreamインスタンスのストリームの関する情報を返送する。
図4は、本発明の好ましい具現化の全体を示すブロック図である。この好ましい具現化では、IStorage/IStream具現部401と、Docfile具現部402と、ILockBytes具現部403とを含む階層式解決策を用いている。この好ましい具現化は、オブジェクト指向言語のC++言語で行われる。従って、この具現化は、オブジェクト指向の用語で説明する。IStorage/IStream具現部401は、文書ファイルを形成しそして開放する関数と、IStorage及びIStreamのメソッドとを与える。IStorage/IStream具現部401は、トランザクションを実施し、Docfile具現部402のサービスを呼び出す。Docfile具現部402は、文書ファイル内のストレージ及びストリームの永続的記憶に対するインターフェイスを与える。Docfile具現部402は、文書ファイル内のストレージ及びストリームをマップする。Docfile具現部402は、ILockBytesインターフェイスを用いてストレージ及びストリームをその基礎となる永続的ストレージにマップする。ILockBytesインターフェイスは、永続的ストレージを操作するメソッドを定めるアブストラクトクラスとして定義される。好ましい具現化において、ILockBytes具現部403は、その基礎となるファイルシステムを用いてデータを記憶する。或いは又、ILockBytesインターフェイスの具現化は、他のストレージ405で示されたように、他の基礎的な記憶媒体を使用することもできる。
エクスポーズした層は最も外側の層であり、IStrage及びIStreamインターフェイスのメソッドを具現化するものである。このエクスポーズした層はIStrage及びIStreamメソッドのパラメータを有効化する。好ましい実施例においては、ストリームのためのシークポインタのトランザクションは行われない。シークポインタに気付く唯一の層がこのエクスポーズした層である。IStream具現部のこのエクスポーズした層は、シークポインタを維持する。エクスポーズした層のメソッドが、読み取り及び書き込みを行うパブリック層のメソッドを呼び出すときには、これらメソッドに、読み取り又は書き込みするためのオフセットが通される。従って、全ての内部層は、シークポインタを維持しなければならないことから遮断される。
エクスポーズした層はパブリック層を指す。パブリック層は、インスタンスに対してほとんどのアクセスモードを強制する。パブリック層は、その全てのエレメント及びそのアクセスモードのリストを維持する。このリストを使用して、エレメントへの特定のアクセスを許すか拒絶するかを判断する。インスタンスがトランザクションモードにあるときには、パブリック層は、これが指すラップした層のメソッドを呼び出す。さもなくば、パブリック層は直接層を呼び出す。
ラップした層及び直接層は両方とも同じインターフェイスをサポートし、多様に使用することができる。これは、パブリック層がアブストラクトインターフェイスのメソッドを呼び出せるようにし、そしてそれがラップした層の呼び出しであるか直接層の呼び出しであるかは気にしないようにする。ラップした層は、コミット又は復帰のときまで変化のバッファ作用をサポートする。ラップした層は直接層と通信して、そのダーティ情報(トランザクションに対してバッファされたデータ)を管理すると共に、そのベース情報(永続的ストレージにあるデータ)を管理する。又、ラップした層は、あるアクセスモードを強制する。例えば、IStorageインターフェイスは、親のアクセスモードに係わりなく、インスタンスに対して書き込みアクセスモードを要求できることを指定する。これは、親が読み取りのみのアクセスにある間にそのインスタンスを書き込みモードに入れられることを意味する。しかし、親が読み取りのみのアクセスであるから、書き込みアクセスをするインスタンスのコミットはフェイルとなる。直接層は、DocFile具現部のメソッドを直接呼び出して、永続的なストレージを変更する。
好ましい具現化において、各IStrage及びIStreamインスタンスは、直接モード又はトランザクションモードで動作することができる。IStrage及びIStreamインスタンスは、トランザクションモードで開放されたときには、ラップした層と共に例示される。ラップした層は、そのエレメントに対してなされた変化を追跡し、そして要求があった際にコミットするか又は復帰する。
DocFile具現部は、ILockBytesインターフェイスを用いて、IStorage及びIStreamインターフェイスのオブジェクトハイアラーキを永続的ストレージにマップする。ILockBytesインターフェイスは、以下に説明するように、永続的ストレージをバイトのアレイとして見ることができるようにする。DocFile具現部は、このアレイをヘッダ及び複数の固定長さセクタに論理的に分割する。図12は、1つの文書ファイルにおけるセクタのレイアウトを示す図である。この具現化のフォーマットをマルチストリームファイルフォーマット(MSFF)と称する。好ましい実施例では、ヘッダが512バイトである。セクタのサイズはヘッダに記憶され、典型的に、512バイトの倍数である。セクタは、その各々が含む情報の形式に基づいて形式分けされる。これらの形式は、FAT、ディレクトリー、MiniFAT、DIF及びデータである。MSFFは、ファイル割り当てテーブル(FAT)及びダブル間接ファイル割り当てテーブル(DIF)を用いて同じ形式のセクタをリンクし、論理的に隣接するストリームを形成する。
ILockBytes具現部403は、ILockBytesインターフェイスを具現化するものである。以下に述べるように、ILockBytesインターフェイスは、基礎となる記憶媒体のモデルを形成する。好ましい実施例では、ILockBytes具現部403は、基礎となるファイルシステムにおいて動作する。しかしながら、他の媒体で動作するように他の具現部を開発することもできる。IStrage/IStream具現部403の上記説明では、ILockBytesインターフェイスの多数のインスタンスが使用される。1つのインスタンスはスクラッチファイルを指し、そして別のインスタンスは実際に文書ファイルを指すのに用いられる。又、更に別のパラメータをStgCreateDocFile及びStgOpenDocFileファンクションに追加して、アプリケーションプログラムがILockBytesインスタンスを特定できるようにすることができる。
テーブル5
Class ILockBytes
{
仮想 SCODE ReadAt(libOffset,pv,cb,pcbRead)=0;
仮想 SCODE Write(libOffset,pv,cb,pcbWrite)=0;
仮想 SCODE Flush0=0;
仮想 SCODE SetSize(cb)=0;
仮想 SCODE LockRegion(libOffset,cb,dwLockType)=0;
仮想 SCODE UnLockRegion(libOffset,cb,dwLockType)=0;
仮想 SCODE Stat(pstatstg)=0.
}
テーブル6
項目 説明
libOffset 読み取り又は書き込みを始めるところのストレージアレ
イに対するオフセット
pv バッファに対するポインタ
cb ストレージアレイから読み取りを試みるバイト数
pcbRead 実際に読み取られるバイト数
ReadAtメソッドは、指示されたオフセットでスタートして指定されたILockBytesインスタンスのストレージアレイから指示されたバッファへ指示された数のバイトを読み込む。実際に読み取られたバイトの数が返送される。読み取り中にストレージアレイの終わりに達した場合には、実際に読み取られたバイトの数が、要求されたものより少ない。読み取りがストレージアレイの読み取りロック領域にオーバーラップする場合には、エラーが返送される。
WriteAtメソッドは、指示されたバッファから指示されたオフセットでスタートしてILockBytesインスタンスのストレージアレイへ指定された数のバイトを書き込む。オフセットがストレージアレイの現在終了点を越える場合には、ストレージアレイのサイズが初期化されないバイトで増加される。実際に書き込まれたバイトの数はpcbWrittenにおいて返送される。書き込みがロックされた領域にオーバーラップする場合には、エラーが返送される。
Flushメソッドは、指定されたILockBytesインスタンスの具現化によって維持された内部バッファをストレージアレイに書き込む。
SetSizeメソッドは、指定されたILockBytesインスタンスのストレージアレイのサイズを指示されたバイト数に変更する。ストレージアレイのサイズが増加されるか又はサイズが減少される。ストレージアレイのサイズが増加される場合には、新たなバイトの内容が定まらない。
LockRegionメソッドは、指定されたILockBytesインスタンスのストレージアレイの領域をロックするように試みる。領域は指示されたオフセットで始まり、ストレージアレイの終わりに向かって指示されたバイト数だけ延びる。ストレージアレイの現在終了端を越えて延びるバイトの範囲を指示するのは正当である。このメソッドのロック作用のふるまいは、IStream::LockRegionメソッドと同様である。
UnLockRegionメソッドは、指定されたILockBytesインスタンスのストレージアレイの既にロックされた領域をロック解除する。
Statメソッドは、指定されたILockBytesインスタンスのストレージアレイに関連した情報を返送する。
102 IStreamインスタンス
103 IStrageインスタンス
104、105 IStreamインスタンス
201 ワードプロセスプログラム
202 グラフプログラム
203 マルチストリームインターフェイス
204 ファイルシステム
205 複合文書
Claims (20)
- アプリケーションプログラムを有するコンピュータシステムにおける、ストレージエリア内にデータにアクセスするための方法であって、前記アプリケーションプログラムにオブジェクトハイアラーキを与えるアプリケーションプログラムインターフェース層(401)の管理の下に、前記アプリケーションプログラムから前記ストレージエリア内のオブジェクトハイアラーキ中のデータにアクセスする要求を受け取るステップと、
前記要求を受け取ることに応答して、前記ストレージエリアへのアクセスを生じさせるためのストレージインターフェース層(403)の複数の機能の1つまたはそれ以上を呼び出すステップであって、前記ストレージインターフェース層(403)は、バイトのアレーとしてストレージエリアを見ることできるようにするものであり、ファイル具現部(402)が、前記ストレージインターフェース層(403)を使用して、前記アプリケーションプログラムインターフェース層(401)によって与えられた前記オブジェクトハイアラーキを、前記ストレージインターフェース層(403)によって与えられた前記バイトのアレーにマップするものであるステップと、を有し、
前記ストレージインターフェース層(403)は、前記ストレージインターフェース層(403)の前記複数の機能を具現化し、前記複数の機能は、前記ストレージエリアのサイズを変更するための1またはそれ以上の機能を含み、前記アプリケーションプログラムは、前記ストレージインターフェース層(403)の異なる具現化形態を指定することができることを特徴とする方法。 - 前記ストレージインターフェース層(403)の前記複数の機能は、前記ストレージエリアに前記バイトのアレーとしてアクセスするための機能を含む請求項1に記載の方法。
- 前記ストレージインターフェース層(403)の前記複数の機能は、前記アレーのある範囲のバイトをロックしてそのバイトの範囲への競合アクセスを防止する機能を含む請求項2に記載の方法。
- 前記コンピュータシステムは、ファイルシステム(404)を有し、前記ストレージエリアは、ファイルであり、そして前記ストレージインターフェース層(403)の前記複数の機能は、前記ファイルシステム(404)を呼び出して前記ストレージエリアのアクセスを実行する機能を含む請求項1に記載の方法。
- 前記アプリケーションプログラムインターフェース層(401)は、IStorage及びIStreamインターフェースを具現化し、そして前記ストレージインターフェース層(403)は、ILockBytesインターフェースを具現化する請求項4に記載の方法。
- コンピュータシステムのストレージエリアへオブジェクトを保存するためのオブジェクト保存コンピュータシステムにおいて、
アプリケーションプログラムにより呼び出し可能なアプリケーションインターフェース層(401)を備え、該アプリケーションインターフェース層(401)は、オブジェクトのストレージのためのハイアラーキー編成を与え、各オブジェクトは、サブオブジェクトを任意に有すると共に、オブジェクトデータを任意に有し、更に、前記アプリケーションインターフェース層(401)は、オブジェクトのサブオブジェクトを列挙するためのストレージインターフェースを有すると共に、オブジェクトデータにアクセスするためのストリームインターフェースを有し、
更に、前記アプリケーションインターフェース層(401)により呼び出し可能な実装層(402)を備え、前記実装層は、記憶されたオブジェクトの前記ハイアラーキー編成をバイトのアレーにマップし、
更に、前記ストレージエリアにアクセスするために前記実装層(402)により呼び出し可能なストレージインターフェース層(403)を備え、前記アプリケーションプログラムが前記アプリケーションインターフェース層(401)を呼び出すときに、前記アプリケーションインターフェース層(401)が前記実装層(402)を呼び出すと共に、前記実装層が前記ストレージインターフェース層(403)を呼び出して、前記ストレージエリアにアクセスするようにし、そして前記アプリケーションプログラムが前記アプリケーションインターフェース層(401)を呼び出すときに、前記アプリケーションプログラムが、アクセスモードを指定し、オブジェクトの具現化形態が前記指定されたアクセスモードに基づいて変化し、異なるアプリケーションプログラムが指定されるアクセスモードに基づいてオブジェクトの異なる具現化形態を指定できるようにしたオブジェクトストレージコンピュータシステム。 - 前記ストレージインターフェース層(403)は、前記バイトのアレーのサイズを動的に変更するメソッドを含む請求項6に記載のシステム。
- 前記ストレージインターフェース層(403)は、ある範囲のバイトをロックして、そのロックされた範囲への競合アクセスを防止するメソッドを含む請求項7に記載のシステム。
- アプリケーションプログラムを有するコンピュータシステムにおいてストレージエリア内のオブジェクトデータにアクセスするための方法であって、
前記アプリケーションプログラムの制御のもとで、アプリケーションプログラムインターフェース層(401)を呼び出して、オブジェクトデータにアクセスするステップを備え、前記アプリケーションプログラムインターフェース層(401)は、前記オブジェクトデータのストレージのためのハイアラーキー編成を与えるものであり、そしてストレージインターフェース層(403)は、前記オブジェクトデータの前記ストレージをバイトのアレーとして見ることができるようにするものであり、
前記ストレージインターフェース層(403)を呼び出して、前記オブジェクトデータの前記ストレージのための前記バイトのアレーにアクセスするステップであって、ファイル具現部(402)が、前記アプリケーションプログラムインターフェース層(401)によって与えられた前記ハイアラーキー構成を、前記ストレージインターフェース層(403)によって与えられた前記バイトのアレーにマップするものであるステップを更に備え、そして
前記ストレージインターフェース層(403)の制御のもとで、ストレージ層を呼び出して、前記オブジェクトデータが保存された前記ストレージエリアにアクセスするステップを更に備え、
前記アプリケーションプログラムは前記ストレージインターフェース層(403)の具現化形態を指定し、異なるアプリケーションプログラムが前記ストレージインターフェース層の異なる具現化形態を指定して前記オブジェクトデータのアクセスをカスタマイズできるようにした方法。 - 前記ストレージインターフェース層(403)は、前記バイトのアレーにおけるアレーのサイズを動的に変更するメソッドを含む請求項9に記載の方法。
- 前記ストレージインターフェース層(403)は、前記バイトのアレーにおけるある範囲のバイトをロックして、そのロックされた範囲への競合アクセスを防止するメソッドを含む請求項9に記載の方法。
- 前記ストレージ層は、ファイルシステムである請求項9に記載の方法。
- 前記ファイルシステムは、ファイル割り当てテーブルを使用する請求項12に記載の方法。
- 前記アプリケーションプログラムインターフェース層(401)は、データをストリームで保存するメソッドを含む請求項9に記載の方法。
- 前記アプリケーションプログラムインターフェース層(401)は、オブジェクトをハイアラーキー的に保存するメソッドを含む請求項9に記載の方法。
- アプリケーションプログラムの制御のもとで、アプリケーションプログラムインターフェース層(401)を呼び出して、オブジェクトデータにアクセスする手段であって、前記アプリケーションプログラムインターフェース層(401)は、前記オブジェクトデータのストレージのためのハイアラーキー編成を与えるものであり、ストレージインターフェース層(403)は、前記オブジェクトデータの前記ストレージをバイトのアレーとして見ることができるようにするものであり、
前記ストレージインターフェース層(403)を呼び出して、前記バイトのアレーにアクセスする手段であって、ファイル具現部(402)が、前記アプリケーションプログラムインターフェース層(401)によって与えられた前記ハイアラーキー構成を、前記ストレージインターフェース層(403)によって与えられた前記バイトのアレーにマップするものである手段と、
前記ストレージインターフェース層(403)の制御のもとで、ストレージ層を呼び出して、前記オブジェクトデータが保存された前記ストレージエリアにアクセスする手段と、を備え、
前記アプリケーションプログラムは前記ストレージインターフェース層(403)の具現化形態を指定することができ、異なるアプリケーションプログラムが前記ストレージインターフェース層(403)の異なる具現化形態を指定して前記オブジェクトデータのアクセスをカスタマイズできることを特徴とするストレージエリア内のオブジェクトデータにアクセスするためのコンピュータシステム。 - 前記ストレージインターフェース層(403)は、前記バイトのアレーのサイズを動的に変更するメソッドを含む請求項16に記載のコンピュータシステム。
- 前記ストレージインターフェース層(403)は、ある範囲のバイトをロックして、そのロックされた範囲への競合アクセスを防止するメソッドを含む請求項16に記載のコンピュータシステム。
- 前記ストレージエリアは、データベースである請求項6に記載のコンピュータシステム。
- 前記アクセスモードは、トランザクションモード、直接モード、書き込みモード、又は拒絶書き込みを含む請求項6に記載のコンピュータシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/909,533 US5506983A (en) | 1992-07-06 | 1992-07-06 | Method and system for transactioning of modifications to a tree structured file |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16714293A Division JP3672582B2 (ja) | 1992-07-06 | 1993-07-06 | ツリー構造ファイルへの変更を処理する方法及びシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005018803A JP2005018803A (ja) | 2005-01-20 |
JP4318305B2 true JP4318305B2 (ja) | 2009-08-19 |
Family
ID=25427396
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16714293A Expired - Lifetime JP3672582B2 (ja) | 1992-07-06 | 1993-07-06 | ツリー構造ファイルへの変更を処理する方法及びシステム |
JP2004242980A Expired - Lifetime JP3984983B2 (ja) | 1992-07-06 | 2004-08-23 | 小さいオブジェクトデータストリームを使用する、データオブジェクトを保存する方法 |
JP2004242981A Expired - Lifetime JP4318305B2 (ja) | 1992-07-06 | 2004-08-23 | オブジェクトリンキングを使用する、複合文書中のデータに対して保存およびアクセスを行う方法 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16714293A Expired - Lifetime JP3672582B2 (ja) | 1992-07-06 | 1993-07-06 | ツリー構造ファイルへの変更を処理する方法及びシステム |
JP2004242980A Expired - Lifetime JP3984983B2 (ja) | 1992-07-06 | 2004-08-23 | 小さいオブジェクトデータストリームを使用する、データオブジェクトを保存する方法 |
Country Status (7)
Country | Link |
---|---|
US (3) | US5506983A (ja) |
EP (4) | EP1006456A3 (ja) |
JP (3) | JP3672582B2 (ja) |
KR (1) | KR100287046B1 (ja) |
AT (2) | ATE179003T1 (ja) |
CA (3) | CA2320675C (ja) |
DE (2) | DE69332672T2 (ja) |
Families Citing this family (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5506983A (en) * | 1992-07-06 | 1996-04-09 | Microsoft Corporation | Method and system for transactioning of modifications to a tree structured file |
US5812862A (en) * | 1993-05-10 | 1998-09-22 | Apple Computer, Inc. | Computer-human interface system for compound documents |
WO1994027229A1 (en) * | 1993-05-10 | 1994-11-24 | Apple Computer, Inc. | Computer-human interface system which manipulates parts between a desktop and a document |
EP0698242A1 (en) * | 1993-05-10 | 1996-02-28 | Apple Computer, Inc. | System for automatically determining the status of contents added to a document |
US5873097A (en) * | 1993-05-12 | 1999-02-16 | Apple Computer, Inc. | Update mechanism for computer storage container manager |
US5870764A (en) * | 1993-05-12 | 1999-02-09 | Apple Computer, Inc. | Method of managing a data structure for concurrent serial and parallel revision of a work |
US5652879A (en) * | 1993-05-12 | 1997-07-29 | Apple Computer, Inc. | Dynamic value mechanism for computer storage container manager enabling access of objects by multiple application programs |
CA2124752C (en) * | 1993-06-30 | 2005-04-12 | Mark Zbikowski | Meta-data structure and handling |
CA2124754C (en) * | 1993-06-30 | 2005-06-28 | Mark Zbikowski | Storage of file data on disk in multiple representations |
US5922054A (en) * | 1994-08-19 | 1999-07-13 | Canon Kabushiki Kaisha | System for managing external applications and files |
EP0769169B1 (en) | 1995-05-05 | 2004-09-22 | Apple Computer, Inc. | A network component system |
US5740455A (en) * | 1995-05-16 | 1998-04-14 | Apple Computer, Inc. | Enhanced compound document processing architectures and methods therefor |
US5664208A (en) * | 1995-05-16 | 1997-09-02 | Apple Computer, Inc. | Methods and apparatuses for seamless compound document processing |
JP3635765B2 (ja) * | 1996-02-23 | 2005-04-06 | ブラザー工業株式会社 | 印刷特性表示装置 |
US5842219A (en) * | 1996-03-14 | 1998-11-24 | International Business Machines Corporation | Method and system for providing a multiple property searching capability within an object-oriented distributed computing network |
US6119130A (en) * | 1996-03-28 | 2000-09-12 | Oracle Corporation | Method and apparatus for providing schema evolution without recompilation |
US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US6038590A (en) | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US5987245A (en) | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
US6304893B1 (en) | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
US6049832A (en) * | 1996-11-15 | 2000-04-11 | Wall Data Incorporated | Method for accessing information on a host computer from a client computer through an intelligent virtual host component |
US5878206A (en) * | 1997-03-25 | 1999-03-02 | Hewlett-Packard Company | Commit scope control in hierarchical information processes |
US6061696A (en) * | 1997-04-28 | 2000-05-09 | Computer Associates Think, Inc. | Generating multimedia documents |
DE69831229T2 (de) * | 1997-05-14 | 2006-04-13 | Biosite Diagnostics Inc., San Diego | Schnelle bestimmung des verhältnisses von biologischen molekülen |
US7284187B1 (en) * | 1997-05-30 | 2007-10-16 | Aol Llc, A Delaware Limited Liability Company | Encapsulated document and format system |
US6182279B1 (en) * | 1997-08-12 | 2001-01-30 | International Business Machines Corporation | Method and apparatus for storing templates in a component system |
US5970252A (en) * | 1997-08-12 | 1999-10-19 | International Business Machines Corporation | Method and apparatus for loading components in a component system |
US6093215A (en) * | 1997-08-12 | 2000-07-25 | International Business Machines Corporation | Method and apparatus for building templates in a component system |
US6195794B1 (en) | 1997-08-12 | 2001-02-27 | International Business Machines Corporation | Method and apparatus for distributing templates in a component system |
US5978579A (en) * | 1997-08-12 | 1999-11-02 | International Business Machines Corporation | Architecture for customizable component system |
US6067541A (en) * | 1997-09-17 | 2000-05-23 | Microsoft Corporation | Monitoring document changes in a file system of documents with the document change information stored in a persistent log |
US6240414B1 (en) | 1997-09-28 | 2001-05-29 | Eisolutions, Inc. | Method of resolving data conflicts in a shared data environment |
US7447712B2 (en) | 1997-09-28 | 2008-11-04 | Global 360, Inc. | Structured workfolder |
US6237011B1 (en) * | 1997-10-08 | 2001-05-22 | Caere Corporation | Computer-based document management system |
US6070254A (en) * | 1997-10-17 | 2000-05-30 | International Business Machines Corporation | Advanced method for checking the integrity of node-based file systems |
US6018789A (en) * | 1997-11-24 | 2000-01-25 | Western Digital Corporation | Disk drive with cache segment providing adaptively managed chunks |
US6269362B1 (en) * | 1997-12-19 | 2001-07-31 | Alta Vista Company | System and method for monitoring web pages by comparing generated abstracts |
US6163776A (en) * | 1998-03-23 | 2000-12-19 | Software Tree, Inc. | System and method for exchanging data and commands between an object oriented system and relational system |
US6614433B1 (en) * | 1998-06-05 | 2003-09-02 | Unisys Corporation | Method and system for distributed, dynamic generation of graphics files |
US6272607B1 (en) * | 1998-08-28 | 2001-08-07 | International Business Machines Corporation | Method and apparatus for transactional writing of data into a persistent memory |
US6266682B1 (en) | 1998-08-31 | 2001-07-24 | Xerox Corporation | Tagging related files in a document management system |
US6562076B2 (en) | 1998-08-31 | 2003-05-13 | Xerox Corporation | Extending application behavior through active properties attached to a document in a document management system |
US6549918B1 (en) | 1998-09-21 | 2003-04-15 | Microsoft Corporation | Dynamic information format conversion |
US6192376B1 (en) | 1998-11-13 | 2001-02-20 | International Business Machines Corporation | Method and apparatus for shadowing a hierarchical file system index structure to enable error recovery |
JP3756352B2 (ja) * | 1999-06-29 | 2006-03-15 | 富士通株式会社 | コンパイラ装置およびコンパイラを記録したコンピュータ読み取り可能な記録媒体 |
US20060031746A1 (en) * | 1999-11-11 | 2006-02-09 | Toepfer John R | Publishing architecture system and method |
US20020069214A1 (en) * | 1999-12-02 | 2002-06-06 | Smith John M. | Document services architecture |
US6856993B1 (en) * | 2000-03-30 | 2005-02-15 | Microsoft Corporation | Transactional file system |
US20020087579A1 (en) * | 2000-06-23 | 2002-07-04 | Alan Chasanoff | Object universe |
FR2811101B1 (fr) * | 2000-07-03 | 2002-09-20 | Axicare | Procede de traitement de donnees structurees utilisant un langage informatique oriente objet |
SG146434A1 (en) * | 2000-11-29 | 2008-10-30 | British Telecomm | Transmitting and receiving real-time data |
US7386792B1 (en) * | 2001-03-07 | 2008-06-10 | Thomas Layne Bascom | System and method for collecting, storing, managing and providing categorized information related to a document object |
US6618736B1 (en) * | 2001-03-09 | 2003-09-09 | Ensim Corporation | Template-based creation and archival of file systems |
WO2003017567A1 (en) * | 2001-08-15 | 2003-02-27 | Bentley Systems, Incorporated | Method and system for storing large data files |
US7428548B2 (en) * | 2001-08-15 | 2008-09-23 | Bentley Systems, Inc. | Computer readable medium for storing large data files |
EP1428357A1 (en) * | 2001-09-21 | 2004-06-16 | British Telecommunications Public Limited Company | Data communications method and system using receiving buffer size to calculate transmission rate for congestion control |
EP1449331B1 (en) * | 2001-11-30 | 2007-09-19 | British Telecommunications Public Limited Company | Data transmission |
US7134020B2 (en) * | 2002-01-31 | 2006-11-07 | Peraogulne Corp. | System and method for securely duplicating digital documents |
ATE363809T1 (de) * | 2002-03-27 | 2007-06-15 | British Telecomm | Datenstruktur für ein datenübertragungssystem |
EP1359722A1 (en) * | 2002-03-27 | 2003-11-05 | BRITISH TELECOMMUNICATIONS public limited company | Data streaming system and method |
KR100804945B1 (ko) * | 2002-04-29 | 2008-02-20 | 주식회사 포스코 | 롤의 넥크부 정도 유지장치 |
US7548935B2 (en) * | 2002-05-09 | 2009-06-16 | Robert Pecherer | Method of recursive objects for representing hierarchies in relational database systems |
US7234109B2 (en) * | 2002-11-19 | 2007-06-19 | Microsoft Corp. | Equality of extensible markup language structures |
GB0306296D0 (en) * | 2003-03-19 | 2003-04-23 | British Telecomm | Data transmission |
US20030191681A1 (en) * | 2003-05-06 | 2003-10-09 | Gallion Kirk P. | Method for managing a business process related to a document publishing project |
US8238696B2 (en) | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
US8166101B2 (en) | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
US7676481B2 (en) * | 2005-02-24 | 2010-03-09 | Microsoft Corporation | Serialization of file system item(s) and associated entity(ies) |
US8271541B2 (en) * | 2004-03-31 | 2012-09-18 | Fusionops Corporation | Method and apparatus for developing composite applications |
US8683318B1 (en) * | 2004-07-14 | 2014-03-25 | American Express Travel Related Services Company, Inc. | Methods and apparatus for processing markup language documents |
US7457826B2 (en) * | 2004-12-20 | 2008-11-25 | Microsoft Corporation | Systems and methods for synchronization of items without snapshots |
US8521752B2 (en) * | 2005-06-03 | 2013-08-27 | Osr Open Systems Resources, Inc. | Systems and methods for arbitrary data transformations |
US7630998B2 (en) * | 2005-06-10 | 2009-12-08 | Microsoft Corporation | Performing a deletion of a node in a tree data storage structure |
RU2005124030A (ru) * | 2005-07-28 | 2007-02-10 | Александр Михайлович Юров (RU) | Способ визуальной адресации команд в дереве |
CN101000610B (zh) * | 2006-01-11 | 2010-09-29 | 鸿富锦精密工业(深圳)有限公司 | 文件分散式储存系统及方法 |
US8538931B2 (en) | 2006-04-28 | 2013-09-17 | International Business Machines Corporation | Protecting the integrity of dependent multi-tiered transactions |
GB2440357B (en) | 2006-06-30 | 2011-12-07 | Data Equation Ltd | Data processing |
GB2439576B (en) * | 2006-06-30 | 2011-05-04 | Data Equation Ltd | Storing related data fragments in the same block |
GB2439578B (en) * | 2006-06-30 | 2011-11-09 | Data Equation Ltd | Data processing |
GB2439577B (en) * | 2006-06-30 | 2011-12-14 | Data Equation Ltd | Data processing |
GB2439752B (en) * | 2006-06-30 | 2011-11-02 | Data Equation Ltd | Storing and Modifying Data |
US7512748B1 (en) | 2006-08-17 | 2009-03-31 | Osr Open Systems Resources, Inc. | Managing lock rankings |
US8539228B1 (en) | 2006-08-24 | 2013-09-17 | Osr Open Systems Resources, Inc. | Managing access to a resource |
JP2008077173A (ja) * | 2006-09-19 | 2008-04-03 | Sony Computer Entertainment Inc | コンテンツ表示処理装置およびコンテンツ内広告表示方法 |
US8453284B2 (en) * | 2007-02-06 | 2013-06-04 | Zodiac Pool Care South Africa (Pty) Limited | Swimming pool cleaner |
US8024433B2 (en) | 2007-04-24 | 2011-09-20 | Osr Open Systems Resources, Inc. | Managing application resources |
US7949693B1 (en) | 2007-08-23 | 2011-05-24 | Osr Open Systems Resources, Inc. | Log-structured host data storage |
US20100169092A1 (en) * | 2008-11-26 | 2010-07-01 | Backes Steven J | Voice interface ocx |
US8307891B2 (en) * | 2009-01-28 | 2012-11-13 | Baker Hughes Incorporated | Retractable downhole backup assembly for circumferential seal support |
US8134733B2 (en) * | 2009-04-24 | 2012-03-13 | Xerox Corporation | Pre-concatenation execution method and system for automated prepress process nodes |
CN102122284B (zh) | 2010-01-08 | 2014-07-02 | 腾讯科技(深圳)有限公司 | 一种复合文档存储、读写方法和装置 |
US9965224B2 (en) * | 2010-02-24 | 2018-05-08 | Veritas Technologies Llc | Systems and methods for enabling replication targets to reclaim unused storage space on thin-provisioned storage systems |
US9430470B2 (en) * | 2010-05-26 | 2016-08-30 | Content Catalyst Limited | Automated report service tracking system and method |
US8769392B2 (en) * | 2010-05-26 | 2014-07-01 | Content Catalyst Limited | Searching and selecting content from multiple source documents having a plurality of native formats, indexing and aggregating the selected content into customized reports |
US8843814B2 (en) * | 2010-05-26 | 2014-09-23 | Content Catalyst Limited | Automated report service tracking system and method |
US10911550B2 (en) | 2010-11-09 | 2021-02-02 | Microsoft Technology Licensing, Llc | Partial loading and editing of documents from a server |
US10338947B2 (en) | 2011-03-15 | 2019-07-02 | Microsoft Technology Licensing, Llc | Extent virtualization |
US8903874B2 (en) | 2011-11-03 | 2014-12-02 | Osr Open Systems Resources, Inc. | File system directory attribute correction |
US8868531B2 (en) * | 2012-09-10 | 2014-10-21 | Apple Inc. | Concurrent access methods for tree data structures |
US9830329B2 (en) | 2014-01-15 | 2017-11-28 | W. Anthony Mason | Methods and systems for data storage |
US10437564B1 (en) | 2016-09-16 | 2019-10-08 | Software Tree, LLC | Object mapping and conversion system |
DE102018126546A1 (de) * | 2017-12-22 | 2019-06-27 | Odass Gbr | Verfahren zur Reduzierung der Rechenzeit einer Datenverarbeitungseinrichtung |
US10997153B2 (en) * | 2018-04-20 | 2021-05-04 | Hewlett Packard Enterprise Development Lp | Transaction encoding and transaction persistence according to type of persistent storage |
US11243703B2 (en) | 2018-04-27 | 2022-02-08 | Hewlett Packard Enterprise Development Lp | Expandable index with pages to store object records |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4536837A (en) * | 1982-05-25 | 1985-08-20 | Elxsi | Improved disk file allocation and mapping system utilizing cylinder control blocks and file map having unbalanced tree structure |
US4723209A (en) * | 1984-08-30 | 1988-02-02 | International Business Machines Corp. | Flow attribute for text objects |
US4739477A (en) * | 1984-08-30 | 1988-04-19 | International Business Machines Corp. | Implicit creation of a superblock data structure |
JPS6410353A (en) * | 1987-07-03 | 1989-01-13 | Hitachi Ltd | Computer file system |
US4899299A (en) * | 1987-12-23 | 1990-02-06 | International Business Machines Corporation | Method for managing the retention of electronic documents in an interactive information handling system |
JPH01237757A (ja) * | 1987-12-23 | 1989-09-22 | Internatl Business Mach Corp <Ibm> | 情報処理システム中の文書オブジエクトを検索する方法 |
JPH01211067A (ja) * | 1988-02-19 | 1989-08-24 | Hitachi Ltd | 文書編集装置 |
US4953080A (en) * | 1988-04-25 | 1990-08-28 | Hewlett-Packard Company | Object management facility for maintaining data in a computer system |
US4933880A (en) * | 1988-06-15 | 1990-06-12 | International Business Machines Corp. | Method for dynamically processing non-text components in compound documents |
US5359708A (en) * | 1988-06-15 | 1994-10-25 | International Business Machines Corp. | Dynamic in a document processing system for dynamically locating format controls and determining formatting information in effect before and after each format control |
JPH0277872A (ja) * | 1988-09-14 | 1990-03-16 | Hitachi Ltd | 文書処理プログラムを格納した記憶媒体と文書処理装置 |
US4907151A (en) * | 1988-09-30 | 1990-03-06 | Digital Equipment Corporation | System and method for garbage collection with ambiguous roots |
US5029125A (en) * | 1989-03-07 | 1991-07-02 | Drexler Technology Corporation | Method of reading and writing files on nonerasable storage media |
US5339392A (en) * | 1989-07-27 | 1994-08-16 | Risberg Jeffrey S | Apparatus and method for creation of a user definable video displayed document showing changes in real time data |
US5371885A (en) * | 1989-08-29 | 1994-12-06 | Microsoft Corporation | High performance file system |
US5247520A (en) * | 1989-10-13 | 1993-09-21 | International Business Machines Corporation | Communications architecture interface |
JPH03232029A (ja) * | 1989-12-08 | 1991-10-16 | Fuji Photo Film Co Ltd | メモリカードの記憶管理方式 |
GB9005697D0 (en) * | 1990-03-14 | 1990-05-09 | Digital Equipment Int | Data format conversion |
US5535319A (en) * | 1990-04-13 | 1996-07-09 | International Business Machines Corporation | Method of creating and detecting device independent controls in a presentation data stream |
US5297279A (en) * | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
US5317730A (en) * | 1991-01-11 | 1994-05-31 | International Business Machines Corporation | System for modifying persistent database based upon set of data elements formed after selective insertion or deletion |
JPH04275684A (ja) * | 1991-03-01 | 1992-10-01 | Fuji Xerox Co Ltd | 図形情報データベース構築方法およびその方法が適用される装置 |
US5269019A (en) * | 1991-04-08 | 1993-12-07 | Storage Technology Corporation | Non-volatile memory storage and bilevel index structure for fast retrieval of modified records of a disk track |
US5448727A (en) * | 1991-04-30 | 1995-09-05 | Hewlett-Packard Company | Domain based partitioning and reclustering of relations in object-oriented relational database management systems |
US5243518A (en) * | 1991-05-03 | 1993-09-07 | Xerox Corporation | Document services architecture |
US5349658A (en) * | 1991-11-01 | 1994-09-20 | Rourke Thomas C O | Graphical user interface |
US5335290A (en) * | 1992-04-06 | 1994-08-02 | Ricoh Corporation | Segmentation of text, picture and lines of a document image |
US5479656A (en) * | 1992-05-13 | 1995-12-26 | Rawlings, Iii; Joseph H. | Method and system for maximizing data files stored in a random access memory of a computer file system and optimization therefor |
US5423034A (en) * | 1992-06-10 | 1995-06-06 | Cohen-Levy; Leon | Network file management with user determined hierarchical file structures and means for intercepting application program open and save commands for inputting and displaying user inputted descriptions of the location and content of files |
CA2099916C (en) * | 1992-07-06 | 2002-12-24 | Steven J. Sinofsky | Method and system for organizing internal structure of a file |
JP3613401B2 (ja) * | 1992-07-06 | 2005-01-26 | マイクロソフト コーポレーション | オブジェクトの名称を付けて結び付ける方法及びシステム |
US5506983A (en) * | 1992-07-06 | 1996-04-09 | Microsoft Corporation | Method and system for transactioning of modifications to a tree structured file |
US5515536A (en) * | 1992-11-13 | 1996-05-07 | Microsoft Corporation | Method and system for invoking methods of an object through a dispatching interface |
WO1994014115A2 (en) * | 1992-12-01 | 1994-06-23 | Microsoft Corporation | A method and system for in-place interaction with embedded objects |
US5537526A (en) * | 1993-11-12 | 1996-07-16 | Taugent, Inc. | Method and apparatus for processing a display document utilizing a system level document framework |
US5467472A (en) * | 1994-04-15 | 1995-11-14 | Microsoft Corporation | Method and system for generating and maintaining property sets with unique format identifiers |
US5608909A (en) * | 1994-04-15 | 1997-03-04 | Microsoft Corporation | Method and system for caching presentation data of a source object in a presentation cache |
-
1992
- 1992-07-06 US US07/909,533 patent/US5506983A/en not_active Expired - Lifetime
-
1993
- 1993-07-06 EP EP00105871A patent/EP1006456A3/en not_active Ceased
- 1993-07-06 CA CA002320675A patent/CA2320675C/en not_active Expired - Lifetime
- 1993-07-06 KR KR1019930012824A patent/KR100287046B1/ko not_active IP Right Cessation
- 1993-07-06 CA CA002099911A patent/CA2099911C/en not_active Expired - Lifetime
- 1993-07-06 JP JP16714293A patent/JP3672582B2/ja not_active Expired - Lifetime
- 1993-07-06 DE DE69332672T patent/DE69332672T2/de not_active Expired - Lifetime
- 1993-07-06 CA CA002320674A patent/CA2320674C/en not_active Expired - Lifetime
- 1993-07-06 AT AT93110796T patent/ATE179003T1/de not_active IP Right Cessation
- 1993-07-06 EP EP93110796A patent/EP0578204B1/en not_active Expired - Lifetime
- 1993-07-06 EP EP98118766A patent/EP0892355B1/en not_active Expired - Lifetime
- 1993-07-06 AT AT98118766T patent/ATE231997T1/de not_active IP Right Cessation
- 1993-07-06 DE DE69324410T patent/DE69324410T2/de not_active Expired - Lifetime
- 1993-07-06 EP EP00105872A patent/EP1006457A3/en not_active Withdrawn
-
1995
- 1995-06-07 US US08/477,925 patent/US5706504A/en not_active Expired - Lifetime
- 1995-06-07 US US08/474,100 patent/US5715441A/en not_active Expired - Lifetime
-
2004
- 2004-08-23 JP JP2004242980A patent/JP3984983B2/ja not_active Expired - Lifetime
- 2004-08-23 JP JP2004242981A patent/JP4318305B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5506983A (en) | 1996-04-09 |
CA2320674C (en) | 2004-04-27 |
JP2004355660A (ja) | 2004-12-16 |
EP0892355A1 (en) | 1999-01-20 |
DE69324410T2 (de) | 1999-08-05 |
CA2099911A1 (en) | 1994-01-07 |
EP0578204B1 (en) | 1999-04-14 |
DE69332672D1 (de) | 2003-03-06 |
DE69332672T2 (de) | 2003-07-10 |
EP0578204A2 (en) | 1994-01-12 |
EP1006457A3 (en) | 2009-11-25 |
CA2099911C (en) | 2001-11-27 |
CA2320674A1 (en) | 1994-01-07 |
EP1006456A2 (en) | 2000-06-07 |
EP1006457A2 (en) | 2000-06-07 |
ATE231997T1 (de) | 2003-02-15 |
US5715441A (en) | 1998-02-03 |
ATE179003T1 (de) | 1999-04-15 |
JP2005018803A (ja) | 2005-01-20 |
EP0578204A3 (ja) | 1994-03-23 |
EP0892355B1 (en) | 2003-01-29 |
JP3984983B2 (ja) | 2007-10-03 |
CA2320675A1 (en) | 1994-01-07 |
KR940006025A (ko) | 1994-03-22 |
JPH06161849A (ja) | 1994-06-10 |
KR100287046B1 (ko) | 2001-04-16 |
US5706504A (en) | 1998-01-06 |
CA2320675C (en) | 2004-04-13 |
DE69324410D1 (de) | 1999-05-20 |
EP1006456A3 (en) | 2009-12-02 |
JP3672582B2 (ja) | 2005-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4318305B2 (ja) | オブジェクトリンキングを使用する、複合文書中のデータに対して保存およびアクセスを行う方法 | |
US6826582B1 (en) | Method and system for using file systems for content management | |
US5367671A (en) | System for accessing extended object attribute (EA) data through file name or EA handle linkages in path tables | |
US5758347A (en) | Layered storage structure for computer data storage manager | |
US5537592A (en) | System and method for reading and writing disks formatted for an operating system foreign to the host computer | |
US5771384A (en) | Method and system for replacement and extension of container interfaces | |
CA1303747C (en) | Method of rapidly opening disk files identified by path names | |
US5915253A (en) | Method and system for implementing objects in a storage system | |
US5819275A (en) | System and method for superimposing attributes on hierarchically organized file systems | |
JP3041528B2 (ja) | フアイル・システム・モジュール | |
US6850959B1 (en) | Method and system for transparently extending non-volatile storage | |
US6792518B2 (en) | Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies | |
US7676526B1 (en) | System, method and computer program product for multi-level file-sharing by concurrent users | |
JPH06259472A (ja) | マルチメディア情報システム | |
KR101002483B1 (ko) | 문맥 프리젠테이션에 따라 아이템을 사용자에게프리젠팅하기 위한 시스템 및 방법 | |
US4855907A (en) | Method for moving VSAM base clusters while maintaining alternate indices into the cluster | |
US6405217B1 (en) | State-based implementation of transactions on a file system | |
Howell et al. | Integrating the Spiralog File System into the OpenVMS operating system | |
Kifer et al. | FileSys: The File System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060403 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060629 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060704 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061003 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070604 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071003 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071128 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20071203 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20080225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080225 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20080411 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081219 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20081226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090407 |
|
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: 20090525 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120605 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120605 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130605 Year of fee payment: 4 |
|
EXPY | Cancellation because of completion of term |