JP2004515836A - Xmlドキュメントの効率的管理の方法及び装置 - Google Patents

Xmlドキュメントの効率的管理の方法及び装置 Download PDF

Info

Publication number
JP2004515836A
JP2004515836A JP2002502637A JP2002502637A JP2004515836A JP 2004515836 A JP2004515836 A JP 2004515836A JP 2002502637 A JP2002502637 A JP 2002502637A JP 2002502637 A JP2002502637 A JP 2002502637A JP 2004515836 A JP2004515836 A JP 2004515836A
Authority
JP
Japan
Prior art keywords
document
data
xml
memory
code
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
JP2002502637A
Other languages
English (en)
Other versions
JP5535420B2 (ja
JP2004515836A5 (ja
Inventor
レイモンド・イー・オズィー
ケネス・ジー・ムーア
ランサム・エル・リチャードソン
エドワード・ジェイ・フィッシャー
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 グルーブ・ネットワークス・インコーポレイテッド
Publication of JP2004515836A publication Critical patent/JP2004515836A/ja
Publication of JP2004515836A5 publication Critical patent/JP2004515836A5/ja
Application granted granted Critical
Publication of JP5535420B2 publication Critical patent/JP5535420B2/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/123Storage facilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams

Abstract

インメモリ・ストレージ・マネージャはXML準拠ドキュメントをメモリ内のオブジェクト集合として表現する。オブジェクトの集合であるためストレージ・マネージャはドキュメントあるいはドキュメントの一部を一貫したインタフェースで操作したり、従来のXMLドキュメントでは利用不可能な特徴例えばテキスト以外のタイプの要素属性や、テキスト情報の代わりにバイナリを含むドキュメントなどの特徴を提供できる。更にストレージ・マネージャでは、XML準拠ドキュメントにスキーマ・ドキュメントを関連させ、ドキュメント要素及び属性の構成をここで定義する。ドキュメントに付属するスキーマ・データはドキュメント要素と各要素に関連付けようとするプログラム・コードの間のマッピングを含めることができる。ストレージ・マネージャは要素タグからコードを取り出すメソッドを持っている。取り出したコードは関連する要素からの属性と内容をつかって起動でき、要素は従来のオブジェクトと同様に振る舞う。更に、ストレージ・マネージャにより他のコンテクストで動作する別他のプロセスによるリアルタイム・アクセスが可能となる。ドキュメントを表示するために使用されるオブジェクトは各プロセスでローカルに見られる共通コードから構築される。更にオブジェクト内のデータも各プロセスにローカルなメモリ内に格納される。ローカル・メモリーは他のプロセスの同じ要素のデータ・コピーを連続的に等価化する分散メモリシステムを用いて同期される。クライアントが指定した集合は別個の集合マネージャにより管理される。集合マネージャはタブ・フォームでXMLデータ構造を表現する「ワッフル」と呼ばれるデータ構造を維持する。ユーザ・コマンドによって駆動されるレコード・セット・エンジンはあるコレクションの更新のセットを集合マネージャへ伝搬する。これらの更新に基づいて、集合マネージャはインデックス構造を更新し通知システム経由でワッフル・ユーザに通知できる。

Description

【0001】
【発明の属する技術分野】
本発明は情報の格納と取り出しに関し、更に詳細には、拡張マークアップ言語(XML)で符号化された情報の格納と取り出しに関する。
【0002】
【従来の技術】
最近のコンピュータ・システムは大量のデータの保存、取り出し、管理が可能である。しかし、コンピュータが数値データの処理で高速かつ効率的である一方、テキストデータの操作ではあまり効率的ではなく、人間に読み取り可能なテキストデータの解釈にあっては特に非効率である。一般に、今日のコンピュータは、人間に読み取り可能なテキスト・ドキュメントを含めた情報断片の理解と認識に必要とされる、微妙なコンテクスト情報を理解することができない。その結果、所定のテキスト順序又は断片、例えば画一的な(undifferentiated)テキスト・ドキュメントの単語などを検出できるものの、その情報を定義する単語又は単語群が特定の意味を有する特定の情報断片を、簡単に特定することはできない。例えば、人間の読者は”The attorney will read the text of Mark’s will”という文の中の”will”という単語の違いを識別するのに困難はないが、コンピュータにはこれらの二つの使用方法の識別や、こうした第2の使用方法だけの特定には大きな困難がある。
【0003】
従って、ドキュメントを適切にコーディングすることにより、コンピュータがテキスト・ドキュメントを解釈するのを支援する目的でスキーマが開発された。これらのスキーマの多くは、ドキュメントに「マークアップ・タグ」と呼ばれる情報を付与することでテキスト・ドキュメントの選択した部分を識別するもので、これによりコンピュータが確実に情報を識別できる方法で、異なったドキュメント部分を識別する。このようなスキーマは一般に「マークアップ」言語と呼ばれる。
【0004】
こうした言語のうちの一つが、SGML(汎用マークアップ言語規約)と呼ばれるもので、情報表現についての規格として国際的に合意が得られている。この言語規格は1970年代初頭に行われた、汎用コーディング及びマークアップ言語についての開発作業から発展したものである。様々な研究系統が国際標準化機構(ISO)の分科会であるテキスト記述及び処理言語に関する分科会に統合された。この分科会はSGML規格を1986年に作成した。
【0005】
SGMLそれ自体はマークアップ・タグを定義しておらず、特定の種類のドキュメントに対してマークアップ・テンプレートを提供していない点でマークアップ言語ではない。その代わり、SGMLは汎用記述マークアップ・スキーマを記述し開発する方法を記載している。これらのスキーマが汎用化されているのは、マークアップが特定アプリケーションを指向していないためで、記述的なのはマークアップがテキストでどう表示されるべきかではなく、何を表現するかを記述しているためである。SGMLは規格に準拠して書かれたマークアップ・スキーマにより、ユーザがドキュメント用に自分自身のフォーマットを定義できること、また大量の複雑なドキュメントを扱えること、更に大量の情報リポジトリを管理できることから、非常に柔軟性がある。
【0006】
最近、他の開発が一般的状況を変化させた。インターネットの類を見ない成長と、特にワールドワイドウェブは、簡単かつ安価に電子化文書を国際的な閲覧者に配布するための能力を、著作者又はコンテンツ・プロバイダに対して提供することにより推進された。SGMLは、ウェブ上のアプリケーションには必要のないオプションの機能を多く含み、コスト対利益比では現在のウェブ・ブラウザ・ベンダーにとって魅力がないことが証明された。結果的に、これは一般に使用されていない。その代わりとして、ウェブ上の大半のドキュメントはハイパーテキスト・マークアップ言語、又はHTMLと呼ばれるマークアップ言語で保存また送信されている。
【0007】
HTMLは、SGMLをもとにした単純なマークアップ言語で、ハイパーテキスト、マルチメディア、及びウェブ上で一般的に送信される、小さく十分に単純なドキュメントの表示に好適である。定められた短いマークアップ・タグのセットを使用してドキュメント部分を記述するようになっている。これらのタグはドキュメントの構成を単純化し、アプリケーションの構築を大幅に簡略化する。しかし、タグが定められている為、HTMLは拡張性がなく非常に限られた構造と認証能力しか備えていない。電子化ウェブ・ドキュメントが肥大し更に複雑になるにつれ、HTMLが大規模商業出版に必要とされる能力を持っていないことがますます明らかになった。
【0008】
このような大規模商業出版の要求に対処するためと、新しく勃興してきた分散ドキュメント処理技術を可能にするため、ワールドワイドウェブ・コンソーシアムと呼ばれる業界グループが、HTMLによって提供される能力を越えた能力を必要とするような用途向けに、拡張マークアップ言語(XML)と呼ばれる他のマークアップ言語を開発した。HTMLと同様に、XMLはSGMLの簡略版サブセットで、ウェブ・アプリケーション用に特に設計されており、学習、使用、実装が完全版SGMLより簡単である。HTMLとは異なり、XMLはSGMLの利点である拡張性、構造、認証を保持しているが、XMLではドキュメントの何らかのコンポーネントへのアクセスがインターネット上で現在可能ではない場合に、デフォルトが利用できることを保証するSGML構成の使用を制限している。XMLはまたインターネット統一資源識別子(URL)を使ってどのようにXMLドキュメントのコンポーネント部分を識別するかも定義している。
【0009】
XMLドキュメントは、一連のエンティティ(実体)又はオブジェクトで構成される。各エンティティは1つ以上の論理要素を含み、各要素はこれを処理すべき方法を記述した何らかの属性又はプロパティを持つことができる。XMLはXMLを構成するエンティティ(実体)、要素、属性の間の関係を記述する正式なシンタックス(構文)を提供する。このシンタックスはコンピュータに、各ドキュメントのコンポーネント部分をどのように認識すべきかを伝える。
【0010】
XMLでは一対になったマークアップ・タグを使ってドキュメント・コンポーネントを識別する。詳しくは、各論理要素のはじまりと終わりが要素の前の開始タグと要素の後の終了タグによって明確に識別される。例えば、タグ<to>と</to>は次のようにドキュメントの「受け手(レシピエント)」要素を識別するために使われる:
ドキュメントテキスト…<to>レシピエント…</to>ドキュメントテキスト
【0011】
マークアップ・タグの様式と構造はユーザが定義できるが、ユーザ間の相互運用性を提供する目的で、それを使用する企業やそれと同様の団体が定義することが多い。タグの所定のセットで運用するためには、ユーザはどのようにマークアップ・タグが通常のテキストから分離されるか、また各種要素間での関連性を知る必要がある。例えば、XMLシステムで、要素とその属性はカギ括弧(<...>)の対の間に入力され、エンティティ(実体)の参照はアンパサンド(&)で始まりセミコロン(;)で終わる(&...;)。XMLタグのセットはドキュメントの論理構造に基づいているので、これらは読み易く理解し易い。
【0012】
他のドキュメントは他のパート又はコンポーネントを持っていることから、全てのドキュメントの全ての要素についてタグをあらかじめ定義しておくのは実用的ではない。その代わり、ドキュメントを幾つかの要素を持った「タイプ」に分類することができる。ドキュメント・タイプ定義(DTD)は、あるドキュメント・タイプでどの要素が予想されるかを示し、ドキュメント内に見られる各要素が許容されないか、許容され要求されるか、又は許容されるが要求されないかのいずれかを表わす。各ドキュメント要素の役割をDTDで定義することにより、各要素がドキュメント内の有効な場所に現われることをチェックすることが可能である。例えば、XMLのDTDは第2レベルの見出しが存在しなければ第3レベルの見出しが入力されないことをチェックできるようにする。このような階層型チェックはHTMLでは行なうことができない。ある文書のDTDはドキュメント・ヘッダに挿入されるのが典型的で各要素は識別子例えば<!ELEMENT>でマークされる。
【0013】
【発明が解決しようとする課題】
しかし、SGMLとは異なり、XMLはDTDの存在を必要としない。インターネット上でDTDの全部あるいは一部にアクセスできないか、又はドキュメント作者がDTDの作成に失敗したためのいずれかによって、あるドキュメントにDTDが利用できない場合、XMLシステムはドキュメント内で宣言されていない要素についてデフォルトの定義を割り当てることが可能である。
【0014】
XMLは、ほとんどあらゆる論理テキスト構造、例えば手紙、レポート、メモ、データベース又は辞書などを記述するのに十分な柔軟性のあるコーディング・スキーマを提供する。しかし、XMLはどのようにXML準拠のデータ構造が保存され、表示されるべきかを規定せず、ましてやどのように効率的に保存及び表示されるべきかも規定しない。そのため、XML準拠のドキュメントを効率的に操作し保存することができるストレージ・メカニズムの必要性が存在する。
【0015】
【課題を解決するための手段】
本発明の一つの実施態様によれば、インメモリ・ストレージ・マネージャはメモリ内のオブジェクト集合としてXML準拠ドキュメントを表現する。オブジェクトの集合であるため、ストレージ・マネージャは、ドキュメントあるいはドキュメントの一部を一貫したインタフェースで操作したり、従来のXMLドキュメントでは利用不可能な特徴、例えばテキスト以外のタイプの要素属性や、テキスト情報の代わりにバイナリを含むドキュメントなどの特徴を提供できる。更にストレージ・マネージャでは、XML準拠ドキュメントにスキーマ・ドキュメント(これもXMLドキュメントである)を関連させ、ドキュメント要素及び属性の構成をここで定義する。ストレージ・マネージャは、従来のストレージ・サービスを運用してXML準拠ドキュメントを存続させることができる。ストレージ・コンテナはストレージ・マネージャによって高速で検索できるドキュメント断片を内包する。
【0016】
他の実施態様によれば、ストレージ・マネージャは一貫した方法でドキュメント・コンテンツの要素及び属性にアクセスして操作できるようにする定義済みのメソッドも持っている。例えば、スキーマ・データはドキュメント・コンテンツにアクセスして操作するのに使われるのと同じメソッドでアクセスされ操作出来る。
【0017】
更に他の実施態様では、ドキュメントに関連付けられたスキーマ・データはドキュメント要素と各要素に関連付けられるべきプログラム・コードの間のマッピングを含むことができる。ストレージ・マネージャは、更に要素タグからコードを取り出すためのメソッドも持っている。取り出したコードは関連する要素からの属性と内容をつかって起動でき、要素は従来のオブジェクトと同様に振る舞う。
【0018】
全ての実施態様で、ストレージ・マネージャは多数のコンテクストで多数のプロセスによりダイナミックで、リアルタイムのデータアクセスをクライアントに提供する。同じドキュメントにアクセスする多数のプロセス間の同期は、イベント駆動型キュー及びロックで調整される。ドキュメントを表現するのに使用されるオブジェクトは各プロセスでローカルに見られる共通コードから構築される。更に、オブジェクト内のデータも各プロセスにローカルなメモリ内に格納される。ローカル・メモリは他のプロセスの同じ要素のデータコピーを連続的に等価化する分散メモリシステムにより同期される。
【0019】
更に他の実施態様では、クライアントが指定した集合は別個の集合マネージャにより管理される。集合マネージャはタブ・フォームでXMLデータ構造を表現する「ワッフル」と呼ばれるデータ構造を維持する。ユーザ・コマンドによって駆動されるレコード・セット・エンジンはあるコレクションの更新のセットを集合マネージャへ伝搬する。これらの更新に基づいて、集合マネージャはインデックス構造を更新し、通知システム経由でワッフル・ユーザに通知できる。ワッフル・ユーザもカーソルを用いて集合内を移動できる。
【0020】
【発明の実施の形態】
図1は、典型的なクライアント・コンピュータ100、例えばIBM社製THINKPAD600(R)などのシステム・アーキテクチャを示したもので、この上に本開示のドキュメント管理システムを実装できる。図1の典型的なコンピュータ・システムは説明の目的だけで議論され、本発明の制限と見なされるべきものではない。以下の説明では特定のコンピュータ・システムを説明する際に共通に使用される用語を参照するが、説明する概念は図1に示したアーキテクチャとは異なるアーキテクチャを持ったシステムを含め、他のコンピュータ・システム又コンピュータを内蔵した装置例えばゲーム機やケーブルテレビのセットトップ・ボックスなど、従来はコンピュータと見なされなかったものにも等しく適用される。
【0021】
クライアント・コンピュータ100は、従来のマイクロプロセッサを含む中央演算処理装置(CPU)105、一時的な情報記憶用のランダム・アクセス・メモリ(RAM)110、永久的な情報記憶用のリード・オンリー・メモリ(ROM)115を含む。メモリ・コントローラ120は、システムRAM110を制御するために提供される。バス・コントローラ125は、バス130を制御するために提供されており、割り込みコントローラ135は、他のシステム・コンポーネントからの様々な割り込み信号を受信して処理するために使用される。
【0022】
大容量ストレージは、ディスケット142、CD−ROM147又はハードディスク装置152によって提供できる。データやソフトウェアは、リムーバブル・メディア、例えばディスケット142やCD−ROM147を経由してクライアント・コンピュータ100と交換できる。ディスケット142は、ディスケットドライブ装置141に挿入することができ、ディスケットドライブ装置141は、コントローラ140によってバス130へ接続されている。同様に、CD−ROM147は、CD−ROMドライブ装置146に挿入することができ、CD−ROMドライブ装置146は、コントローラ145によってバス130へ接続されている。最後に、ハードディスク152は、固定ディスクドライブ装置151の一部であり、これはコントローラ150によってバス130へ接続されている。
【0023】
クライアント・コンピュータ100へのユーザ入力は、多数のデバイスによって提供され得る。例えば、キーボード156とマウス157は、キーボード及びマウス・コントローラ155によってバス130へ接続される。オーディオ・トランスデューサ196は、マイクロホン及びスピーカの両者として機能することができるもので、オーディオ・コントローラ197を介してバス130へ接続されている。他の入力デバイス、例えばペン及び/又はタブレットや、音声入力用マイクロホンなどを適当なコントローラとバス130経由でクライアント・コンピュータ100へ接続することができるのは、当業者には明らかであろう。DMAコントローラ160はシステムRAM110へのダイレクト・メモリアクセスを実行するために提供される。視覚表示は、ビデオコントローラ165によって生成され、これがビデオ・ディスプレイ170を制御する。コンピュータ・システム100はまた、クライアント・コンピュータ100がバス191経由でネットワーク195へ相互接続できるようにするネットワーク・アダプタ190も含む。ネットワーク195は、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、又はインターネットでよく、多数のネットワーク・デバイスを相互接続する汎用通信回線を使用出来る。クライアントコンピュータ・システム100は、一般にWINDOWS NT(登録商標)オペレーティングシステム(ワシントン州レドモンドのマイクロソフト社から入手可能)などのオペレーティング・システム・ソフトウェアによって制御調節される。コンピュータ・システム制御機能のなかでも、オペレーティング・システムはシステム資源の割り当てを制御し、プロセスのスケジュール、メモリ管理、ネットワーク及びI/Oサービスなどのタスクを実行する。
【0024】
図2に更に詳細に示してあるように、ストレージ・マネージャ206は、RAM200(図1のRAM110と同等)に常駐し、XMLドキュメント228及び230を使用するアプリケーション・プログラム202と、ドキュメント228及び230が格納される永続的ストレージ208の間のインタフェースを提供する。アプリケーション・プログラム202は、オブジェクトの格納に使用される永続的ストレージ208の種類とは無関係に、一貫したアプリケーション・プログラミング・インタフェース204を用いて、ストレージ・マネージャ206と相互作用出来る。内部的には、ストレージ・マネージャ206は各ドキュメント210、218をオブジェクト212〜216と220〜224の階層列として、各々表現する。ストレージ・マネージャ206は、ドキュメント210及び218を様々なファイルシステム、例えばディレクトリ方式ファイル・サービス、オブジェクト・ストア、リレーショナル・ファイル・システムなどを用いて矢印226で模式的に示してあるようにストレージ208に格納できる。
【0025】
本発明のシステムは、従来のXMLファイルで機能する。完全なXMLファイルは、通常3つのコンポーネントから構成されており、これらは特定のマークアップ・タグにより定義される。最初の二つのコンポーネントはオプションで、最後のコンポーネントは必須であり、コンポーネントは以下のように定義される。
【0026】
1.使用するXMLバージョン、エンコードされた方法、他のファイルを参照しているかどうかを識別するXML処理ステートメント。そのようなステートメントは次のようなフォームになる:
Figure 2004515836
【0027】
2.ファイル内に存在する要素とその関連性を定義するドキュメント・タイプ定義(DTD)。DTDは内部サブセットのファイル内のマークアップ・タグの形式と内容を記述する正式なマークアップ・タグ宣言(大括弧の間)、又は関連マークアップ宣言(外部サブセット)を含むファイルを参照するかのどちらかである。この宣言は次のような形になる:
Figure 2004515836
【0028】
3.ルート要素で構成されるタグ付きドキュメントのインスタンス、これは要素タイプ名がドキュメントタイプ宣言のドキュメントタイプ名と一致しなければならない。他の全てのマークアップ要素はルート要素に入れ子にされる。
【0029】
3つすべてのコンポーネントが存在していて、ドキュメント・インスタンスがDTDに定義されたドキュメント・モデルに適合していれば、ドキュメントは「有効である」とされる。最後のコンポーネントだけが存在していて、正式なドキュメント・モデルが存在しないが、各要素が親要素内に正しく入れ子になり、かつ各属性が属性名とそれに続く値指示子(=)と引用符つき文字列で指定されていれば、ドキュメント・インスタンスは「十分整形されている」と言われる。本発明のシステムは良く整形されたXMLドキュメントで動作しこれを生成できる。
【0030】
ストレージ・マネージャ206内で、XMLドキュメントは、名称「グルーブ・ドキュメント」と集合的に呼ばれるデータ・ストレージ・パーティションにより表現されて、従来のXMLドキュメントとは表示が区別される。各グルーブ・ドキュメントはそのドキュメントを構成する各種要素の間の関連性を正しく識別するDTDによって記述できる。これらのDTDは標準XMLフォーマットに従う。更に、各グルーブ・ドキュメントは定義又はスキーマがあり、これはドキュメントの本体で要素と属性のパターンを記述する。XMLバージョン1.0はスキーマをサポートしていない。そのため、グルーブ・スキーマドキュメントをXMLデータ・ドキュメントに関連付けるには、スキーマへのURI参照を含む特別なXML処理命令をデータ・ドキュメントに含める。この処理命令は次の形である:
Figure 2004515836
【0031】
幾つかの要素はコンテンツがないか必要とせず、どこで何らかのプロセスが行なわれることを示すプレースホルダーとして機能する。タグの特別なフォームをXMLで使用して何のコンテンツも持っていない、従って終了タグのない空の要素を示す。例えば、<ThumbnailBox>要素はテキスト行に埋め込まれた画像のプレースホルダーとして機能する空の要素で次のような宣言をDTDに行なう:
Figure 2004515836
【0032】
要素が可変フォームを持つことができる場合、又は相互にリンクされる必要がある場合、適当な属性を与えてこれに適用されるべきプロパティを指定することができる。これらの属性はリストで指定する。例えば、<ThumbnailBox>要素がLocationとSize属性を含むことがあると決定されるとする。このような属性で適当と思われる属性リスト宣言は次のようになる:
Figure 2004515836
【0033】
これは<ThumbnailBox>要素が要求されたLocationエンティティ(実体)を含みSize属性を含むことがあることをコンピュータに伝える。キーワード#IMPLIEDは<ThumbnailBox>要素の幾つかのインスタンスで属性を除くことが許容されることを表わす。
【0034】
XMLは、幾つかのコンパイラで使用される#DEFINEステートメントと類似のカスタム定義ステートメントも許容している。一般に使用される定義は「エンティティ(実体)」としてDTD内部で宣言できる。典型的なエンティティ(実体)定義は次の形をとれる:
<!ENTITY BinDoc3487 SYSTEM ”./3487.gif” NDATA>
【0035】
これは”BinDoc3487”バイナリ・ドキュメントのファイルの場所を定義する。このような宣言をDTDで一度行なっておけば、ユーザは完全な値のかわりに参照を利用できる。例えば、先に説明した<ThumbnailBox>要素は
Figure 2004515836
として指定できる。この技術を使う利点は、後で定義された値を変更しなければならない場合に、エンティティ(実体)参照は自動的に現在の宣言の内容を使用するのでDTDのエンティティ(実体)宣言だけを更新すればよい点である。
【0036】
ストレージ・マネージャ内部で、各ドキュメント部分は統一資源識別子(URI)で識別され、これはRFC2396に指定されているような標準的フォーマットに準拠する。URIは絶対でも相対でも良いが、相対URIは基礎となる絶対URIのコンテキスト内でのみ使用する必要がある。ドキュメントが永続的ストレージに保存された場合、これの部分は使用している特定のファイルシステムによって割り当てられ、管理される他のSTORAGEURIにより識別できる。
【0037】
本発明の原理によれば、ストレージ・マネージャでは、各ドキュメント部分の内部で、内部メモリがオブジェクトの集合により表現される。例えば、XMLドキュメント内部の他の要素はストレージ・マネージャ内の要素オブジェクトとして表現される。これにより図3に示してあるような構造が得られる。図3において、例示のXMLドキュメント300はストレージ・マネージャ302内のオブジェクト集合として表現されている。更に詳しくは、XMLドキュメント300は、前述したようなXMLバージョン、エンコード方法、及びファイル参照を表わす、従来のXML処理ステートメント304を含む。XMLドキュメント300は、XMLドキュメント300と関連付けられたストレージ・マネージャ302内のスキーマ・ドキュメント320を識別する、XML処理ステートメント306も含む。図示したXMLドキュメントは階層化要素のセットも含み、これには何らかのテキスト318を含むElementA308を含み、ElementAは関連付けられたテキストがないElementB310を含む。ElementBは更にElementC312を含み、これには更に二つの要素が含まれている。つまりElementCは属性(値”foo”の入ったID)を持っているElementD314とElementE316である。
【0038】
ストレージ・マネージャ302では、要素群、ElementA〜ElementEが階層内に構成された要素オブジェクトとして表現される。更に詳しくは、ElementAはElementAオブジェクト322により表現される。各要素オブジェクトは、対応するXML要素に含まれるテキストと属性とを含む。そのため、要素オブジェクト322はテキスト318を含む。同様に、ElementB310は要素オブジェクト324で表現され、ElementC、ElementD、ElementEはそれぞれオブジェクト326、328、330で表現される。要素オブジェクト328は、要素ElementDを表現し、また対応する要素に含まれる属性IDも含む。各要素オブジェクトは、データベース・ポインタ(オブジェクト間の矢印で示す)により子要素オブジェクトを参照し、階層内に要素オブジェクトを構成する。また属性インデックス、例えば要素オブジェクト328内のID属性を表わすインデックス332などもある。
【0039】
オブジェクト集合を用いることによるXMLドキュメント300の表現により、ストレージ・マネージャ302は、以下で詳細に説明するような一貫したインタフェースでXMLドキュメント300の内部表現を操作できる。ストレージ・マネージャ302も従来のXMLドキュメントでは利用できなかった特徴、例えばこれも詳細に以下で説明する集合マネージャ経由で利用できる集合サービスなどを提供する。
【0040】
すでに説明したように、XMLデータを含むグルーブ・ドキュメントはドキュメント本体の要素と属性のパターンを記述した定義、又はスキーマ・ドキュメントを持っている。スキーマ・ドキュメントは、URIで識別される独立したXMLドキュメントに保存される。スキーマ・ドキュメントは標準XML DTD定義を持ち、これはメタ・スキーマと呼ばれ、次に示すようなものである:
<!−− ドキュメント要素はスキーマのルート要素である −−>
Figure 2004515836
Figure 2004515836
【0041】
スキーマ内の要素の各々は、ドキュメント処理中にストレージ・マネージャによって使用される情報を定義する。レジストリ”Registry”セクションはXML要素タグをウィンドウズ(登録商標)のProgIDにマッピングする2カラムのテーブルのXML表現を構成する(マイクロソフト社により開発されたコモン・オブジェクト・モデル(COM)では、ProgIDはCOMシステム内でプログラム・コードのセクションに「結合(bound)」されたかあるいは関連づけられているオブジェクトのテキスト名である。任意のProgIDとプログラム・コードの間のマッピングは、ライブラリに格納されており、ウィンドウズ(登録商標)・レジストリなどの定義領域で指定される)。
【0042】
この構造を図4Aに示し、XMLドキュメント400とこれに関連したスキーマ・ドキュメント402が示してある。これらのドキュメントはどちらもストレージ・マネージャ406に常駐し、実際には図3に示したようなオブジェクトによって表現される。しかし、図4では、ドキュメントは簡略化のため従来のXMLフォーマットで表現してある。図4はウィンドウズ(登録商標)環境で動作するストレージ・マネージャを示してあり、これはワシントン州レドモンドのマイクロソフト社が開発したコモン・オブジェクト・モデル(COM)に従って構築されたオブジェクトを使用するが、同じ原理が他のオペレーティングシステム環境にも適用される。
【0043】
XMLドキュメント400は、XMLバージョン、エンコード方法とファイル参照を識別する通常のXML処理ステートメント414を含む。スキーマXML処理ステートメント416はスキーマ・ドキュメント402を参照し、このスキーマ・ドキュメントはドキュメント400に関連付けられており、名称ステートメント426で定義された名前”urn:groove.net:sample.xml”を持っている。また名称”doc.xml”と”urn:groove.net”として定義された”g”XMLネームスペースを定義しているルート要素418も含む。
【0044】
ドキュメント400は、他に3つの要素があり、タグ”urn:groove.net:AAA”で定義された要素420と、タグ”urn:groove.net:BBB”で定義された要素422と、タグ”urn:groove.net:NoCode”で定義された要素424とを含む。要素424はスキーマ・ドキュメント402に対応する接合コードがなく、また対応するタグからProgIDへのマッピングもない単純要素である。
【0045】
タグ428で定義された「レジストリ”registry”」セクション内でスキーマ・ドキュメント402には2つの要素からCOM ProgIDへのマッピングが定義してある。一方のマッピングはタグ”urn:groove.net:AAA”の要素について定義され、もう一方は”urn:groove.net:BBB”の要素について定義されている。結合コードは、クライアント・アプリケーション404がメソッド”OpenBoundCode()”を呼び出した時にアクセスされる。この呼び出しの書式は表15の下に示したようなもので関係するステップが図4Bに図示してある。OpenBoundCode()メソッドを単純な要素、例えば要素424で呼び出すことで例外を生成する。結合コードを取り出すプロセスは、ステップ434で始まりステップ436に進んでOpenBoundCode()を呼び出す。要素タグ”urn:groove.net:AAA” のついた要素でOpenBoundCode()メソッドを呼び出すとストレージ・マネージャ406にステップ438で説明するように要素タグのついたスキーマ・ドキュメント602のレジストリ要素428を参照させる。セクション430から、ストレージ・マネージャはステップ440に示したようにProgID ”Groove.Command” を取り出す。ステップ442で、ストレージ・マネージャはCOMマネージャ408を呼び出し、このProgIDを持ったオブジェクトを作成するように指示する。従来の周知の方法では、ステップ444で、COMマネージャがウィンドウズ(登録商標)・レジストリ410のキーを使ってProgIDからCSLIDに変換している。ステップ446では、COMマネージャがCSLIDを使ってそのオブジェクトのコードを持っているコード・データベース412でダイナミック・ローダブル・ライブラリ(DLL)ファイルを検索する。最後に、ステップ448で、COMマネージャはオブジェクトを作成してそのオブジェクトへのインタフェース・ポインタをストレージ・マネージャ406に返し、ストレージ・マネージャは更に、ポインタをクライアント・アプリケーション404に返す。ルーチンはこうしてステップ450で終了する。クライアント・アプリケーション404は、ポインタを使って属性と関連要素内のコンテンツを使用するコードでメソッドを起動する。要素は、そして他のCOMオブジェクトと同様に振る舞う。同様のプロセスが、タグ”urn:groove.net:BBB”のついた要素でOpenBoundCode()メソッドを起動した場合にも発生する。
【0046】
”AttrGroup”セクションは、属性についての非XML特性を定義する。属性のデータ形式はテキスト以外の何らかの形式として定義でき、属性はこれを含む要素の高速取り出しを容易にするべくインデックスが付けられる。
【0047】
”ElementDecl”セクションはDTD<!ELEMENT>宣言と同様の要素定義フォームを提供するが、拡張属性の特徴と非包含要素参照の定義を許容する。
【0048】
以下の例では、すでに説明した「テレスペース」を定義するXMLドキュメントについてのスキーマ・ドキュメントのサンプル部分を示す。
Figure 2004515836
Figure 2004515836
【0049】
この例では、TagからProgIDへのマッピングテーブルに二つのエントリがある。最初のエントリはタグ”g:Command”(これはXML名前空間の拡張を使用し”urn:groove.net.schema.1:Command”である)からProgID ”Groove.Command” にマッピングする。属性を定義するセクションで、”ID”属性はインデックス化されていて、NKey属性のデータ形式がバイナリである、と言うように続く。
【0050】
このスキーマ・データは要素オブジェクトによって表現され、以下で詳細に説明するようにドキュメントを操作するために使用するのと同じストレージ・マネージャ要素及び属性インタフェース・メソッドによってアクセス/操作できる。更に詳しくは、ドキュメントを記述する情報がドキュメント内容を操作するのに使用されるのと同じインタフェースを使用して操作できる。
【0051】
本発明の他の態様によれば、サブドキュメントはプライマリ・ドキュメントに関連付けられる。あらゆるドキュメントが任意のドキュメントのサブドキュメントにできる。あるドキュメントが他のドキュメントへのサブドキュメント参照を含む場合、参照されたドキュメントはサブドキュメントである。二つのドキュメントが互いにサブドキュメント参照を含む場合には、各々のドキュメントが他方のドキュメントのサブドキュメントである。各サブドキュメントは、従来からのXMLXLink言語でプライマリ・ドキュメントから参照されるが、この言語はhttp://www.w3.org/TR/xlink/に詳細な説明がある。リンクは、又、完全テキストXMLドキュメントとバイナリ・サブドキュメントとの関連を策定する。バイナリ・ドキュメントはどのような種類のサブドキュメントへのリンクも持たない。リンクがドキュメントの一部への場合、サブドキュメントの関連性はその部分を含むドキュメントに対して設定される。ドキュメントとサブドキュメントとの関連性が図5に示してある。
【0052】
例えば、主ドキュメント500はリンク502を内包し、リンク502は矢印510で示してあるドキュメント504へのリンクと、矢印508で示してあるバイナリ・ドキュメント506へのリンクを含む。従って、ドキュメント504と506は、ドキュメント500のサブドキュメントである。ドキュメント504は更にリンク512を含み、このリンクは矢印514で示されるようにコンテンツ518のあるドキュメント516へのリンクを含む。ドキュメント516はドキュメント500のサブドキュメントである。ドキュメント506はバイナリ・コンテンツ520を含み、そのためサブドキュメントへのリンクを持てない。
【0053】
サブドキュメントのリンクは、単純なリンクについての標準定義に従属する。リンクについての代表的な要素定義は次のようなものである:
Figure 2004515836
【0054】
上記の定義を使用せず、値”simple”のxml:link属性とhref属性とを持ったXMLリンクをドキュメントに追加することでサブドキュメントの関連性を構築することも可能である。このようなリンクはhref属性のURI値によって識別されるドキュメントへのサブドキュメントの関連性を構築する。
【0055】
ドキュメントからこれのサブドキュメントへの関連性ができると、ドキュメントとサブドキュメントの任意のセットのコピーを作ることが可能になる。一つのストレージ・サービス内で、このようなコピーを直接実行することが可能である。ストレージサービスを横断する、あるいは複数ドキュメントを他のマシンへ送信するには、このようなドキュメントの階層全体をシリアル化した方法で「記述可能」にする必要がある。本発明のストレージ・マネージャは、集合ドキュメントのMIME封入(Encapsulation)の仕様に適合するテキスト表現へと、例えばftp://ftp.isi.edu/in−notes/rfc2557.txt/で詳細に説明が見られるHTML(MHTML)などに、多数のドキュメントをシリアル化する。
【0056】
以下のデータ・ストリーム断片はMHTML文字列に見られるようなドキュメントと参照されるサブドキュメントの一例である。本例では、”SP”は一つの空白文字が存在することを意味し、”CRLF”は復帰・改行のアスキー文字対を表わす。他の全ての文字はそのまま送信される。MIMEバージョン・ヘッダは通常のMIMEバージョンであり、グルーブ・プロトコルバージョンはRFC822のコメントにある。コメントは単に単語Grooveとそれに続く整数である。境界セパレータ文字列はユニークなものとし、MIMEとついで各本体部分をパースするシステムが正しく動作するようにする。シリアル化XMLテキストはUTF−8フォーマットで示してあるが、WBXMLフォーマットで送信することもできる。XMLドキュメントはXMLプレフィックスを持ち、これはバージョンならびに文字エンコード方法を含む。バイナリ・ドキュメントはbase64で符号化される。
【0057】
Figure 2004515836
【0058】
文書エディタやインターネット・ブラウザなどの大半のXML処理装置とは異なり、ストレージ・マネージャは、同時的なドキュメント操作を提供する。ドキュメントは同時的に検索され、要素は同時的に作成、削除、更新又は移動される。要素の階層のコピーは、一つのドキュメントから他のドキュメントへ移動できる。大半のXML処理装置では、ドキュメントへの更新の全部が一人のユーザによって行なわれ、このユーザは一台のコンピュータ上の一つのプロセス内の一つのスレッドを制御するのが普通である。
【0059】
ストレージ・マネージャは、多数のユーザが同一のドキュメントを更新する間もXMLドキュメントの完全性を保持するのに、多数のプロセスでの多数のスレッドを使用する。好適な実施態様では、更新の全部が一台のコンピュータ上で発生するが、他にも従来の異なるプロセッサ間通信メカニズムを用いる他の動作実施態様が可能である。図6はストレージ・マネージャの基本構造を示しプロセス間通信の問題からアプリケーション・プログラムをいかに隔離するかを示している。例えば、二つの独立したプロセス600と602が同時に、同じコンピュータ上で又は他のコンピュータ上で動作している。プロセス600は後述するように「ホーム」プロセスで、一方プロセス602はプロセスNとして指定される他のプロセスである。プロセス600内部で、マルチスレッド・クライアント・アプリケーション・プログラム606が動作しており、プロセス602の内部ではマルチスレッド・クライアント・アプリケーション・プログラム616が動作している。
【0060】
各アプリケーション・プログラム606、616は各々参照番号605、615で指定されたストレージ・マネージャとインタフェースする。プロセス600では、ストレージ・マネージャはアプリケーション・プログラム608が使用してストレージ・マネージャを制御し、これとインタフェースするストレージ・マネージャ・インタフェース層608を含む。これは実際にアプリケーションによって操作されるデータベース、ドキュメント、要素、スキーマ・オブジェクトを含む。この層からエクスポートされるAPIについては、以下で詳細に説明する。ストレージ・マネージャ605は分散仮想オブジェクト(DVO)データベース・メソッド610、基本データ形式のためのDVOメソッド612、DVOコモン・システム・メソッド609、分散共有メモリ614も含む。同様に、プロセス602で動作しているストレージ・マネージャはトランザクション層618、DVOデータベースメソッド620、基本データ形式のためのDVOメソッド622、DVOコモン・システム・メソッド617、分散共有メモリ624を含む。
【0061】
二つのプロセス600と602は、従来のメッセージ受け渡しプロトコル又はプロセス間通信(IPC)システム604を介して通信する。一台のコンピュータ上で動作するプロセスでは、このようなシステムは共有メモリバッファを用いてウィンドウズ(登録商標)(R)オペレーティングシステムに実装できる。プロセスが他のコンピュータ上で動作している場合、他のメッセージ受け渡しプロトコル、例えばTCP/IPなどを使用できる。他の従来のメッセージング又は通信システムも本発明の動作を改変することなく使用できる。しかし、図6に示してあるように、アプリケーション・プログラム606と616はメッセージ受け渡しシステム604と直接相互作用しない。その代わり、アプリケーション・プログラム606と616は、各々ストレージ・マネージャ605、615と相互作用し、ストレージ・マネージャ605、615は、分散共有メモリ(DSM)システム614と624が一部を構成するDSMシステムを介してメッセージ受け渡しシステム604と相互作用する。
【0062】
多数の周知のDSMシステムが存在し、本発明での使用に適当である。好適な実施態様において、ストレージ・マネージャで使用されるDSMシステムは、Cリージョン・ライブラリ(CRL)システムと呼ばれる。CRLシステムは全ソフトウェア分散共有メモリシステムで、メッセージ受け渡しマルチコンピュータ分散とシステム上での使用を想定している。CRLシステムとこのようなシステムを実装するためのコードは、”CRL: High−Performance All Software Distributed Memory System”, K. L. Johnson, M. F. Kaashoek and D. A. Wallach, Proceedings of the Fifteenth Symposium on Operating Systems Principles, ACM, December 1995; 及び”CRL version 1.0 User Documentation”, K. L. Johnson, J. Adler and S. K. Gupta, MIT Laboratory for Computer Science, Cambridge, MA 02139, August 1995に詳細に説明されている。どちらの論文も以下のウェブアドレスから入手可能である: http://www.pdos.lcs.mit.edu/crl/。
【0063】
CRLの上に構築される並列アプリケーション、例えばストレージ・マネージャなどはメモリの「リージョン(regions)」からデータを共有する。各リージョンは任意の大きさで、連続したメモリ領域(area)である。共有メモリのリージョンは、DSMシステムの各種関数により作成され、他のプロセスにマッピングされ、マッピング解除され、削除される。本発明で使用するDSMシステムは、CRLDSMシステムで使用されている関数のスーパーセットを提供する。メモリリージョンのユーザは、あるリージョンに対して読み取り又は書き込みが必要な時に、DSMに対して宣言し、リージョンの使用後は、読み込み又は書き込みの完了を宣言することによりアクセスを同期する。書き込み動作の影響は、リージョンを共有している他のプロセスがそれの必要性を宣言するまで伝播されない。基本的共有メモリと同期動作に加えて、DSMはエラー処理とトランザクションの信頼性も提供する。本発明のDSMの全部のインタフェースが表1に示してある:
【0064】
【表1】
Figure 2004515836
【0065】
各ストレージ・マネージャ605、615は、対応するプロセス600、602のアドレス空間内にある1つ以上のDSMリージョン(図6には図示していない)を使用するDSMノードを含む。これらのリージョンはDVOオブジェクトとクラスを含み、ストレージ・マネージャにより管理されるドキュメント、要素、XMLデータのスキーマを表現するために使用できる。ドキュメントの一部、通常は、要素とインデックスセクションがリージョン内部に全体として含まれる。DSMシステムはリージョン共有のための概念的に均一なノード空間を提供するが、特別なタスクを実行する特定ノード又はプロセスを選抜する必要が出て来るという問題がある。
【0066】
結果として、DSM同期プロトコル内で、一つのノードが各リージョンについての「ホーム・ノード」として識別される。1台のコンピュータ上でストレージ・マネージャを動作させている多数のプロセスのうち、「ホーム・プロセス」と呼ばれる一つのプロセスが全てのディスクI/O動作を実行するプロセスである。プロセス間でのデータ移動量を減少するため、ホーム・プロセスは全リージョンについてのホーム・ノードである。全てのノードが全てのリージョンのホームになることができ、全てのプロセスがディスクI/Oを実行するような他の実装も可能である。しかし、1台のディスク・ドライブを持ったパーソナル・コンピュータでは、多数のプロセスにディスクI/Oを実行できるようにすることでI/O同期の必要が発生し、同時にディスク1台であるという主なパフォーマンス上のボトルネックを緩和しなければならない。
【0067】
DSM動作によると、プロセスがあるリージョンの最新コピーを持っている場合、そのリージョンを読み書きできる。それ以外、プロセスはリージョンの読み書きをする前にホーム・プロセスから最新コピーを取り寄せる必要がある。各DSMシステム614、624はノード間通信層(615、625)と呼ばれるインタフェース層を介してメッセージ受け渡しシステム604とインタフェースしており、ノード間通信層が基盤となる伝送メカニズムからDVMシステムを隔離する。これはブロードキャスト・グループへメッセージを送信し、対応するプロセスとホーム・プロセスのアドレスを操作するメソッドを含む。
【0068】
本発明のストレージ・マネージャは、XMLオブジェクトの基礎として共有オブジェクトを使用する。プロセス間やコンピュータ間でオブジェクトを共有する多くのシステムが存在する。このようなオブジェクト共有モデルの一つはオペレーティング・システムにより提供される、共有メモリ機能の使用に基づくものである。このような共有メモリ・モデルで最大の欠点の一つは、メモリへの書き込み失敗による信頼性の欠如で、これは他のプロセスの完全性に影響を与える。例えば、一つのプロセスがオブジェクトの状態を更新するプロセスで、そのプロセスが分かっている良好な状態にオブジェクトをセットする前に失敗すると、他のプロセスからはオブジェクトが無効な状態に見えるか、ブロックされてしまい失敗したプロセスが同期ロックを解除するまで無限に待機することになる。共有メモリ・モデルも緊密に結合したマルチ・コンピュータでの共有メモリのローカリティ制約に苦しめられ、ネットワーク上でオブジェクトを共有する方法が何も提供できない。
【0069】
分散オブジェクト共有及びリモート・メソッドの呼び出しを提供する他のモデルは、Java(登録商標)あるいはObject Management GroupのCORBAシステムで分散オブジェクト管理機能を基盤にしている。コンピュータ・ネットワーク上でオブジェクトを共有する能力が提供されるものの、このようなシステムのクライアントはオブジェクトがローカルなのか、リモートなのかに注意を払う必要がある──オブジェクトはロケーションに依存しない。このアプローチでは、パフォーマンスが他の欠点である。オブジェクトに対する全ての動作はオブジェクト・サーバへ送信する必要があるが、これは、サーバがオブジェクト状態の唯一のコピーを含んでいてそのデータについての同期ポイントとして機能するためである。
【0070】
これらの欠点を克服するため、本発明のストレージ・マネージャは分散仮想オブジェクト(DVO)システムを使用してXMLオブジェクト形式を構築すべきプリミティブ・データ形式を提供する。DVOシステムはまた、データが多数のコンピュータ上の多数のプロセスにある場合でも、又は本当は一つのコンピュータ・ノード上の一つのプロセスに存在していても、全てのデータが一つのコンピュータ・ノード上の一つのプロセスに確実に含まれていると言う錯覚を呼び出し側に提供する。
【0071】
DVOオブジェクト共有モデルを図7に示す。オブジェクトを共有している全てのコンピュータ上の全てのプロセスは、同じメソッド・コードを持っている。例えば、図7のプロセス700とプロセス702は同じオブジェクトのコピーを持っている。つまり、プロセス700、702の各々が同じメソッド・コードのコピー704、706を各々のプロセス・アドレス空間に持っている。あるオブジェクトについて揮発性のデータ状態がDSMリージョンに格納される。つまりプロセス700のオブジェクト・コピーについてオブジェクト・データ708はプロセス700のアドレス空間のリージョン710に格納されている。同様に、プロセス702のオブジェクトコピーについて、オブジェクトデータ712は、プロセス702のアドレス空間のリージョン714に格納される。オブジェクト・メソッドはDSM同期機能を使ってオブジェクトのデータへのアクセスを同期させ、同期機能が矢印716で示したようにリージョンを同期させる。この方法だと、DVOオブジェクトはロケーションに依存せず、失敗は一つのプロセス内部に含まれ、ローカル・オブジェクトに対する多数の変更がノード間伝送によるデータ移動を必要としなくなる。
【0072】
DVOシステムは構築ブロックとして使用され、ストレージ・マネージャ用にXMLドキュメントを管理し、3つの機能部分に分割される基本的オブジェクトを提供する。DVOデータベース610は、各プロセスにローカルなDVOコンテクストを取り扱うオブジェクトと、開いているデータベースに関する情報と、これらのデータベース内に含まれるドキュメントに関する情報を含む共有テーブルとを含む。DVOでは、「データベース」は概念的なストレージ・コンテナであり、何らかのストレージ・サービス609に最終的に保存されるオブジェクトを伝送する。DVOドキュメントにはXML又はバイナリ・ドキュメントが関連し、これらはストレージ・マネージャのクライアントから見ることができる。DVOドキュメントはまた集合に関連付けられたインデックス及びメタデータを内包するためにも使用される。
【0073】
DVOタイプ612は、DVOドキュメント内で使用できるオブジェクト・クラスのセットで、もっと高レベルなデータ・モデル構造を実装する。DVOタイプは単純なデータ包含オブジェクトから複雑なスケーラブルインデックス構造まで範囲が広がる。各DVOタイプは二つのクラスで実装される──そのひとつは「非共有クラス」で、これはオブジェクト参照にメモリ・ポインタを使用するもの、またもう一つは「共有クラス」で、これはオブジェクト参照にデータベース・ポインタと呼ばれる論理アドレスを使用する。「共有クラス」は二つのサブフォームがある──一つは共有DSMリージョンにあるオブジェクトの表現で、他方はオブジェクト格納データベースにディスク上で保存される、あるオブジェクトの表現である。DVOシステム607はこれらの共有と非共有実装の間でオブジェクトを転送するメソッドを提供する。
【0074】
様々なDVOタイプを表2に示す。
【0075】
【表2】
Figure 2004515836
【0076】
DVOシステム607は、物理ストレージとプロセスの局在問題からDVOの上位レベルを隔離する。DVOシステム・オブジェクトはDSMを使用してホーム・プロセスへ/からの要求を起動し処理する。要求にはデータベースを開く、閉じる、消去する、データベース内でドキュメントを検索する、データベース・ドキュメントを開く、閉じる、消去する、書き込むなどの動作を含む。マスター・プロセス600のDVOシステム607はストレージ・サービス609からDVOオブジェクトを取り出すこともできる。ストレージ・サービス、例えばサービス609などは永久媒体から情報を保存したり取り出すユーティリティ・プログラムで、コンテナ、データベース、又はファイルの物理的完全性について責任を担っている。全ての更新が永続的であり全ての内部データ構造(例えばリダイレクト・テーブル、空間割り当てマップ)が常にディスク上で一貫していることを保証する。他のプロセス、例えばプロセス602は直接ストレージ・サービス609にアクセスできないが、DSMリージョン624経由で間接的にシステムへアクセスできる。
【0077】
ストレージ・マネージャ605は他の種類の物理ストレージ・システムで動作でき、これには、コンテナやオブジェクト・ストア、ストリーム・ファイルシステムとZIPファイルを含む。アトム的なコミットを実現するため、オブジェクト・ストア・ストレージ・サービスはページ指向の入出力動作とピンポン・シャドー頁・テーブルを用いて実装できる。
【0078】
個別のストレージ・マネージャ・メソッドはアトム的である。複数のストレージ・マネージャ動作は、異なるドキュメントに対する動作であっても、「トランザクション」にグループ化される。トランザクションはXMLデータの完全性を保護する以外にも、ストレージ・マネージャがリージョンロック動作の個数を減少できるようにしたり、メッセージ受け渡しシステム上でのデータ移動量を減少できるようにするため性能を改善する。
【0079】
ストレージ・マネージャは、上記で参照したDSM文書に記載されているDSM同期プリミティブの上に構築された、読み書き可能及び読み取り専用トランザクションの両方をサポートし、このプリミティブは、多数のプロセス又はコンピュータでの一貫性を保証する。読み書き可能なトランザクションは、データベース読み取りと書き込み動作のセットのアトム性と一貫性を提供する。トランザクションの一部として変更される各リージョンは、トランザクションがコミットされるか中断されるまで「ロック」状態に保持される。これによりトランザクションの一部を構成しない動作で変更されないようにする。更に、各トランザクションは、変更するリージョンの「以前のイメージ」を格納しておき、トランザクションが中断された場合(明示的なAPIコール又は例外の結果として)、トランザクションの影響を取消しできるようにする。性能要求によっては、他の実装で完全な「以前のイメージ」を保存するのではなく、取り消し情報を書き込むことができる。読み取り専用トランザクションは、読み取り書き込みトランザクションと同じインタフェースを使用する。読み取り専用トランザクションは多数の読み取り動作が一貫することを保証する。他のトランザクションと同様に、DSM関数を使って全ての読み取りリージョンを終了まで「読み取り中状態」に保持する。
【0080】
更に、チェックポイントを使って変更が永続的であることを確認し、ストレージ・マネージャ動作の耐久性を提供できる。チェックポイントは何時でも実行できる。チェックポイントはデータ復旧ロギングと組み合わせて使用する。全ての動作がコミット時にシーケンシャルな復旧ログファイルへ「やり直し」情報を書き込む。チェックポイントがコミットされると、復旧ログファイルが永続的ストレージへフラッシュされて動作が復旧できることを保証する。トランザクションはコミットされるまで「やり直し」情報を書き込まないので、チェックポイント動作がトランザクションの半ばで開始されると、トランザクション動作はフラッシュされない。
【0081】
トランザクションは、スレッドとデータベースに範囲が限定される。トランザクションが特定データベースのスレッドで開始されると、そのトランザクションはそのデータベースとスレッドで後続の全てのストレージ・マネージャ動作に自動的に使用される。従来のオペレーティング・システム・スレッドの拡張を使用し、トランザクションが他のスレッド、例えばユーザ・インタフェース・スレッドに整理される必要があるコールを、Grooveシステムの、簡単なmarshalerを使って、正しく処理できるようにする。トランザクションを開始しないスレッドとデータベースに対して行なわれたストレージ・マネージャのコールは、ストレージ・マネージャにコール終了の直前にコミットされる「デフォルト・トランザクション」を作成させる。これ以外に、すでに既存のトランザクションが進行中のスレッドとデータベースに対する新しいトランザクションを開始することで、この新規トランザクションが自動的に既存のトランザクションに「入れ子」にされる。入れ子トランザクションは、外側のトランザクション内にシステムをロールバックする能力を提供する。更に詳しくは、内側の入れ子になったトランザクションは一番外側のトランザクションがコミットされるまで最終的にコミットされない。例えば、入れ子トランザクションがコミットされる場合でこれを内包するトランザクションが後に中止されると、入れ子になったトランザクションも中断される。
【0082】
本発明の好適な実施態様において、ストレージ・マネージャはオブジェクト指向環境で実装される。従って、ストレージ・マネージャそれ自体と、ドキュメントコンポーネント全部、例えばドキュメント、要素、エンティティ(実体)などがオブジェクトとして実装される。これらのオブジェクト、そのインタフェース、基盤となる構造とストレージ・マネージャとのインタフェースに使用されるAPIが図8に示してある。APIは図9から図11との関連で更に詳細に説明する。図8を参照すると、ストレージ・マネージャはドキュメント操作API802経由でドキュメントへの共有アクセスを開始するが、クライアント・アプリケーションの完全なプログラミング・モデルを有効にするため、ドキュメントのコンテキスト内で追加の通信及び同期動作が提供される。例えば、ストレージ・マネージャは待ち行列要素の動作を提供し、これにより一つのプロセスがQueueAPI804経由で他のプロセスへ要素を送信できるようにする。要素は値(要素全体のコピー)又は要素への参照により送信できる。同期動作も1つ以上のスレッドに任意の待ち行列へ入れる要素を待機させるために提供される。ストレージ・マネージャは、またRPCAPI804経由でRPCスタイルの要素通信及び同期を提供する。
【0083】
他のクライアント・コンポーネントは、いつドキュメントがストレージ・マネージャに作成されたか、又は削除されたかを注意する必要がある。そのため、ストレージ・マネージャは通知API800経由でこれらのクライアント・コンポーネントに対して重要性に基づく通知システムへのインタフェースを提供する。通知システム806はドキュメントが作成又は削除された時の重要性を登録したクライアント・コンポーネントへ通知を提供する。
【0084】
ドキュメント・データは、データベースオブジェクト、ドキュメントオブジェクト、要素オブジェクト、スキーマオブジェクト808を含むオブジェクト集合により表現される。オブジェクトはドキュメント操作API802経由で直接操作される。
【0085】
ドキュメント関連オブジェクト808は、上記で詳細に説明した分散仮想オブジェクト・システム810により実際に実装される。分散仮想オブジェクト・システム810はまた要素キューとRPCオブジェクト812により、キュー及びRPCAPI804の制御下に操作することもできる。
【0086】
分散仮想オブジェクト・システム810は、インタフェース814経由で分散共有メモリと通信し、インタフェース816経由でロギング動作と通信する。同様に、分散仮想オブジェクト・システムは、インタフェース818経由でストレージ・サービスと相互作用できる。
【0087】
以下は、本発明のストレージ・マネージャの好適な実施態様を実装するために使用されるオブジェクトの各々についてのインタフェースの説明である。これらのオブジェクトはワシントン州レドモンドのマイクロソフト社から配布されているコモン・オブジェクト・モデル(COM)に準拠して設計されており、COMオブジェクトとしてメモリ内で操作できる。しかし、COMは一つのオブジェクト・モデルと一組のインタフェース方法論に過ぎない。本発明は他のスタイルのインタフェースやオブジェクト・モデルを使って実装することもでき、これにはJava(登録商標)やCORBA オブジェクト・モデルも含みこれに限定されない。
【0088】
図9はストレージ・マネージャ・オブジェクトへのオブジェクトインタフェースを示す。インタフェース900(IGrooveStorageManager)はストレージ・マネージャ用の基本的枠組を内包する。このインタフェースはCOMモデルによって定義された共通クラスであるIDispatchインタフェースのサブクラスである。表3はストレージ・マネージャ・インタフェースに含まれるメソッドの定義である。
【0089】
【表3】
Figure 2004515836
【0090】
他のインタフェース902(IGrooveStorageURISyntax)は、統一資源識別子(URI)の形になっている標準名の一部について演算を実行する必要があるストレージ・マネージャのクライアントが使用する。表4はIGrooveStorageURISyntaxインタフェース用のメソッドを含む。
【0091】
【表4】
Figure 2004515836
【0092】
図10は通知システムインタフェースを示す。インタフェース1000(IGrooveLinkCallback)はXMLドキュメント又は要素の入力処理中にリンクへの定義が見付かった場合通知される必要のあるストレージ・マネージャのクライアントで使用するインタフェースである。インタフェースは表5に定義されているメソッドを含む。
【0093】
【表5】
Figure 2004515836
【0094】
他のインタフェース1002(IGrooveRPCServerCallback)は、XMLドキュメント内の要素についてリモート・プロシージャ・コール(RPC)を扱う必要があるストレージ・マネージャのクライアントで使用される。RPCサーバのコールバックは「util」ベースクラスのサブクラスである(後述する)。つまり、IGrooveElementUtilBaseのメソッド全部もIGrooveRPCServerCallbackに適用される。表6はストレージ・マネージャRPCサーバ・コールバック・インタフェースで使用されるメソッドを定義したものである。
【0095】
【表6】
Figure 2004515836
【0096】
図11、図12、図13はドキュメント操作インタフェース、待ち行列、RPCインタフェースを示す。更に詳しくは、図11にはデータベースを操作するために使用するインタフェースを示す。インタフェース1100(IGrooveDatabase)はドキュメントを格納するデータベースを管理する必要があるストレージ・マネージャのクライアントによって使用される。これは表7のメソッドを含む。
【0097】
【表7】
Figure 2004515836
【0098】
表8はプロセス間のアクセスを同期する必要があるストレージ・マネージャのクライアント用インタフェース1102(IGrooveCrossProcessSemaphore)のメソッドを示す。
【0099】
【表8】
Figure 2004515836
【0100】
表9は、データベース内での動作をグループ化する必要があるストレージ・マネージャクライアント用のインタフェース1104(IGrooveTransaction)を示す。トランザクションはプロセス間セマフォのサブクラス、つまりIGrooveCrossProcessSemaphoreのメソッドの全てにもIGrooveTransactionが適用される。ストレージ・マネージャトランザクションインタフェースは次のようなメソッドを含む。
【0101】
【表9】
Figure 2004515836
【0102】
図12は、ストレージ・マネージャのクライアントが、ドキュメントとこれらのドキュメント内の要素を操作できるようにするインタフェースを示す。表10には、データベース内のドキュメントを管理する必要があるストレージ・マネージャのクライアント用インタフェース1200(IGrooveDocument)を示す。ストレージ・マネージャ・ドキュメント・インタフェースは次のようなメソッドを含む。
【0103】
【表10】
Figure 2004515836
【0104】
表11は、データベース内のXMLドキュメントを管理する必要があるストレージ・マネージャのクライアント用インタフェース1202(IGrooveXMLDocument)を示す。XMLドキュメントは、ドキュメントのサブクラス、つまりIGrooveDocumentのメソッドの全部がIGrooveXMLDocumentにも適用される。ストレージ・マネージャXMLドキュメント・インタフェースは次のようなメソッドを含む。
【0105】
【表11】
Figure 2004515836
【0106】
表12はデータベース内でバイナリ・ドキュメントを管理する必要があるストレージ・マネージャのクライアント用インタフェース1204(IGrooveBinaryDocument)のメソッドを示す。バイナリ・ドキュメントはドキュメントのサブクラス、つまりIGrooveDocumentのメソッドの全部もまたIGrooveBinaryDocumentに適用される。
【0107】
【表12】
Figure 2004515836
【0108】
表13はXSLTと呼ばれる仕様に定義されている、ロケータ・クエリを使用して要素を検索する必要があるストレージ・マネージャのクライアント用インタフェース1206(IGrooveLocator)を示す。XSLT仕様の詳細はhttp://www.w3.org/TR/xsltにある。ストレージ・マネージャのロケータ・インタフェースは次のようなメソッドを含む。
【0109】
【表13】
Figure 2004515836
【0110】
表14は、XSLTに定義されているXMLドキュメント変換を実行する必要があるストレージ・マネージャのクライアント用インタフェース1208(IGrooveTransform)を示す。ストレージ・マネージャ変換インタフェースは次のようなメソッドを含む。
【0111】
【表14】
Figure 2004515836
【0112】
表15は、ストレージ・マネージャクライアントがXMLドキュメント内の要素を操作できるようにするインタフェース1210(IGrooveElement)を示す。ストレージ・マネージャの要素インタフェースは次のようなメソッドを含む。
【0113】
【表15】
Figure 2004515836
Figure 2004515836
Figure 2004515836
Figure 2004515836
【0114】
表16は、XMLドキュメント内の読み取り専用要素を操作する必要があるストレージ・マネージャのクライアント用インタフェース1212(IGrooveReadOnlyElement)のメソッドを示してある。読み取り専用要素は要素のサブクラス、すなわちIGrooveElementのメソッドの全部がIGrooveReadOnlyElementにも適用される。
【0115】
【表16】
Figure 2004515836
【0116】
表17は、XMLドキュメント内の要素参照を操作する必要があるストレージ・マネージャのクライアント用インタフェース1214(IGrooveElementReference)を示したものである。ストレージ・マネージャの要素参照インタフェースは次のようなメソッドを含む。
【0117】
【表17】
Figure 2004515836
【0118】
ストレージ・マネージャの他のインタフェース内で使用するインタフェース1216(IGrooveElementUtilBase)を、表18に示す。IGrooveElementUtilBaseは、一般に使用されるオブジェクトのためのインタフェースではないが、共通に使用されるオブジェクトを持っている他のサブクラスについてのベースクラスとして用いることを想定している。”util”インタフェースの全てが要素に関連する。ストレージ・マネージャ要素utilベースインタフェースは次のようなメソッドを含む。
【0119】
【表18】
Figure 2004515836
【0120】
表19は、XMLドキュメント内の要素に関連付けられた実行可能コードを処理する必要があるストレージ・マネージャクライアント用インタフェース1218(IGrooveBoundCode)を示す。ストレージ・マネージャ・バインドコード・インタフェースは次のようなメソッドを含む。
【0121】
【表19】
Figure 2004515836
【0122】
図13は、前述のIGrooveElementUtilBaseベースクラス1300のサブクラスであるインタフェースを示している。表20には、XMLドキュメント内の要素に対するキューを操作する必要があるストレージ・マネージャのクライアント用インタフェース1302(IGrooveElementQueue)を示す。要素キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveElementQueueにも適用される。ストレージ・マネージャ要素キューインタフェースは次のようなメソッドを含む。
【0123】
【表20】
Figure 2004515836
【0124】
表21は、XMLドキュメント内部の要素参照に対するキューを操作する必要があるストレージ・マネージャのクライアント用インタフェース1306(IGrooveElementReferenceQueue)を示す。要素参照キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveElementReferenceQueueにも適用される。ストレージ・マネージャ要素キュー参照インタフェースは次のようなメソッドを含む。
【0125】
【表21】
Figure 2004515836
【0126】
表22は、XMLドキュメント内の要素に対するマルチリーダー/キューから要素を除去する必要があるストレージ・マネージャのクライアント用インタフェース1310(IGrooveMultiReaderElementQueueReader)を示す。マルチリーダー要素キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveMultiReaderElementQueueReaderにも適用される。ストレージ・マネージャ・マルチリーダー要素キュー・リーダーインタフェースは次のようなメソッドを含む。
【0127】
【表22】
Figure 2004515836
【0128】
表23は、XMLドキュメント内の要素についてマルチリーダー・キューへ要素を追加する必要があるストレージ・マネージャのクライアント用インタフェース1314(IGrooveMultiReaderElementQueueWriter)を示す。マルチリーダー要素キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveMultiReaderElementQueueWriterにも適用される。ストレージ・マネージャ・マルチリーダー要素キュー・ライター・インタフェースは次のようなメソッドを含む。
【0129】
【表23】
Figure 2004515836
【0130】
表24は、XMLドキュメント内の要素についてマルチリーダー・キューへの要素参照を追加する必要があるストレージ・マネージャのクライアント用インタフェース1318(IGrooveMultiReaderElementReferenceQueueWriter)を示す。マルチリーダー要素参照キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveMultiReaderElementReferenceQueueWriterにも適用される。ストレージ・マネージャ・マルチリーダー要素参照キューライター・インタフェースは次のようなメソッドを含む。
【0131】
【表24】
Figure 2004515836
【0132】
表25は、XMLドキュメント内の要素についてマルチリーダー・キューから要素参照を除去する必要があるストレージ・マネージャのクライアント用インタフェース1316(IgrooveMultiReaderElementReferenceQueueReader)を示す。マルチリーダー要素参照キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveMultiReaderElementReferenceQueueReaderにも適用される。ストレージ・マネージャ・マルチリーダー要素参照キューリーダー・インタフェースは次のようなメソッドを含む。
【0133】
【表25】
Figure 2004515836
【0134】
表26は、XMLドキュメント内の要素についてリモート・プロシージャ・コール(RPC)を実行する必要があるストレージ・マネージャのクライアント用インタフェース1304(IGrooveRPCClient)を示す。RPCクライアントは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveRPCClientにも適用される。ストレージ・マネージャRPCクライアント・インタフェースは次のようなメソッドを含む。
【0135】
【表26】
Figure 2004515836
【0136】
XMLドキュメント内の要素についてリモート・プロシージャ・コール(RPC)を処理する必要があるストレージ・マネージャのクライアント用インタフェース1308(IGrooveRPCServerThread)を、表27に示す。RPCサーバ・スレッドは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveRPCServerThreadにも適用される。ストレージ・マネージャRPC サーバ・コールバック・インタフェースは、それ自体のメソッドを持っておらず、IGrooveElementUtilBaseから継承したメソッドのみである。タイプをチェックするための独立したインタフェースとして提供される。
【0137】
【表27】
Figure 2004515836
【0138】
表28は、XMLドキュメント内の要素についてリモート・プロシージャ・コール(RPC)を処理する必要があるストレージ・マネージャのクライアント用インタフェース1312(IGrooveRPCServer)を示す。RPCサーバは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveRPCServerにも適用される。ストレージ・マネージャRPCサーバ・インタフェースは次のようなメソッドを含む。
【0139】
【表28】
Figure 2004515836
【0140】
以下の表は、上記インタフェースにリストアップした列挙データタイプについて許容される値を示したものである。とくに、表29はGrooveSerializeTypeに列挙したデータタイプで許容される値を示す。
【0141】
【表29】
Figure 2004515836
【0142】
表30は、GrooveSerializeOptionsで列挙したデータタイプで許容される値を示す。
【0143】
【表30】
Figure 2004515836
【0144】
表31は、GrooveParseOptionsに列挙したデータタイプで許容される値を示す。
【0145】
【表31】
Figure 2004515836
【0146】
表32は、GrooveContentTypeで列挙したデータタイプで許容される値を示す。
【0147】
【表32】
Figure 2004515836
【0148】
表33は、GrooveXLinkShowで列挙したデータタイプに許容される値である。
【0149】
【表33】
Figure 2004515836
【0150】
表34は、GrooveXLinkActuateで列挙したデータタイプに許容される値である。
【0151】
【表34】
Figure 2004515836
【0152】
表35は、GrooveXLinkSerializeで列挙したデータタイプに許容される値である。
【0153】
【表35】
Figure 2004515836
【0154】
表36は、GrooveMultiReaderQueueOptionsで列挙したデータタイプに許容される値である。
【0155】
【表36】
Figure 2004515836
【0156】
ストレージ・マネージャの基本的データ・モデルはXMLである。XMLは半構造型、階層型、ハイパーリンク型データ・モデルである。多くの実世界の問題はこのような複雑な構造で良く表現されず、タブ型フォームでよりよく表現される。例えば、スプレッドシートやリレーショナル・データベースは単純なタブ型インタフェースを提供する。本発明の1つの態様では、表現を簡単にするため、XML構造は一般に「ワッフル」と呼ばれるタブ型ディスプレイにマッピングされる。ワッフルはデータの集合を表現する。このマッピングはストレージ・マネージャのコンポーネントである集合マネージャにより実行される。
【0157】
集合は集合記述子により定義され、記述子はXMLドキュメントタイプの記述である。ドキュメント・スキーマと同様に、集合記述子は特殊なドキュメントで、集合データそれ自体とは別に保存される。集合データのソースは多く存在するが、集合データの主なソースはレコード・セット・エンジンと呼ばれるソフトウェア・ルーチンである。ユーザのコマンドにより駆動されて、レコード・セット・エンジンは集合の更新の組を集合マネージャへ伝播する。これらの更新に基づいて、集合マネージャはインデックス構造を更新し、通知システムを介してワッフル・ユーザに通知する。ワッフル・ユーザが更新された、あるいは新規の集合データを必要とする場合、ワッフル・ユーザは、集合マネージャを呼び出して更新データを含む新しい結果配列を返してもらう。ワッフル・ユーザはカーソルを使って集合内を移動することもできる。
【0158】
以下のリストは集合記述子ドキュメントのXMLDTDコンテンツを示す。
【0159】
Figure 2004515836
Figure 2004515836
Figure 2004515836
【0160】
全ての集合Collectionは、集合を参照するのに使用する名前を持っている。Start属性は集合の「ルート(root)」をどのように発見するかを指定する。レコード・ルートのある集合は、丁度一組のレコードで、一方インデックスで始まる集合はインデックス、更にレコードの組を経由して移動される。インデックスは一致(conconrdance)又は完全にテキストである。オプションのLocation属性はルートのどこで実際に開始するかを識別する相対URLである。
【0161】
レベル(Level)は出力階層の一部のコンテンツを定義する。あるレベルはそのレベルのカラム、そのレベルにあるレコードの順序又はグループ化、サブレベルの定義で構成される。レベルはマッピング(Mapping)属性を介してソース・レコード・ストリームのレコードに関連付けられる。マッピングがダイレクト(Direct)の場合には、レベルは一つのソースレコード・タイプを表わす。マッピングが水平(Flatten)の場合には、レベルはソースレコード・タイプとそのレコードの全ての子孫を含む。水平(Flatten)マッピングは集合内のそのレベルだけ、又は最低レベルにのみ指定される。リンク(Link)属性は、リンク属性のあるレコードをどのように処理するかを指定する。リンクがTraversedの場合、レコードは独立したレベルとして出力される。リンクがEmbeddedの場合、ソースレコードの子供レコードはちょうどこれがソースレコードの一部であるかのように見える。
【0162】
カラム(Column)は、ソースフィールドと出力配列カラムの間のマッピングを定義する。ソース(Source)属性は、ソースレコードでのXSLTパス表現である。結果(Result)属性は、結果配列のフィールドの名前である。多値(MultiValue)及び多値セパレータ(MultiValueSeparator)属性は、多値ソース値が結果にどのように返されるかを定義する。
【0163】
全ての集合は、少なくとも一つの定義済み順序を持つ必要がある。順序はソート済みcollationか、集合関数による多レベルグループ化ができる。
【0164】
SortColumn要素は、SortDescription内の集合特性を定義する。ソース(Source)属性は、ソートしようとする出力カラムの名前を定義する。順序(Order)は、昇順又は降順のどちらかでなければならない。強度(Strength)と分解(Decomposition)の値は、ユニコード(Unicode)に定義されているのと同じ意味を持つ入力パラメータである。
【0165】
2種類のグループ化は、ユニーク値によるものと単位によるものである。集合がユニーク値によりグループ化された場合、同じGroupColumn値の全部のレコードが同じグループに統合される──グループ間の境界はGroupColumn値の変化で起こる。集合が単位でグループ化される場合、同じGroupColumn値を持つ全てのレコードは、GroupUnitsの値で解決され、同じグループに一緒にされる。例えば、GroupUnitsが”Days”の場合、任意の日(day)についての全レコードが同じグループになる。AtGroupBreakが指定された場合、各々の値又は単位区切り(unit brake)の値で集合関数の結果を含む合成された行が返される。
【0166】
GroupColumnは、グループ化しようとする結果カラムを識別する。
【0167】
インターバル(Interval)は、範囲を定義する各レコードの二つのフィールドを識別する。開始(Start)と終了(End)のデータタイプは数値か日時のどちらかでなければならない。
【0168】
以下の例は6つのソート順序で簡単な文書説明レコード・ビューについての集合記述子文書を示したものである。
【0169】
Figure 2004515836
Figure 2004515836
【0170】
以下の例は、カレンダー・ビューの集合記述子を示す。上の例と同様だが、ソート記述に多少の変化があり、集合は日付間隔の範囲で順序付けられることに注意する。
【0171】
Figure 2004515836
【0172】
基本的ストレージ・マネージャと同様、集合マネージャは、オブジェクト指向環境で実装される。従って、集合マネージャそれ自体と、集合、ワッフル、カーソル、結果配列、レコードセット・エンジンを含む、集合コンポーネントの全部がオブジェクトとして実装される。これらのオブジェクト、そのインタフェース、基盤となる構造や集合マネージャとのインタフェースに使用されるAPIは図14に示してある。APIは図15との関連で更に詳細に説明する。図14を参照すると、集合マネージャは集合操作API1402経由で集合への共有アクセスを提供するが、クライアント・アプリケーションの完全なプログラミング・モデルを有効にするため、集合のコンテクスト内部に追加の通信及び同期動作が提供される。例えば、ユーザはエンジンAPI1404を用いてレコードセット・エンジン1412を制御できる。エンジンAPI1404のコマンド制御下で、レコードセット・エンジン1412は、すでに説明した分散仮想オブジェクト・システム1410へ集合の更新セットを伝播する。これらの更新に基づいて、分散仮想オブジェクト・システム1410はインデックスとやその他の構造を更新する。
【0173】
他のクライアント・コンポーネントは、例えば集合マネージャによって管理されているワッフルなど、コンポーネント内部の変更に注意する必要がある。そのため、集合マネージャはこれらのクライアント・コンポーネントのために重要性に基づく通知システム1406へのインタフェース1400を提供する。通知システム1406は集合を表わすオブジェクト内の値1408が変化したときの重要度を登録してあるクライアント・コンポーネント・リスナーのために通知を提供する。
【0174】
集合データは、集合オブジェクト、レコード・オブジェクト、ワッフル・オブジェクト、カーソル・オブジェクト、結果配列オブジェクトを含む、一組のオブジェクト1408によって表現される。オブジェクトは、集合操作API1402によって直接操作することが可能である。集合関連オブジェクト1408は、実際には、上記で詳細に説明した分散仮想オブジェクト・システム1410によって実装される。
【0175】
図15と以下の表は、本発明の集合マネージャの好適な実施態様を実装するのに使用されるオブジェクトの各々についてのインタフェースの記述を含む。ストレージ・マネージャの実装と同様に、これらのオブジェクトは、コモン・オブジェクト・モデル(COM)に準拠して設計されているが、他のインタフェースのスタイルやオブジェクト・モデルを使用して実装することも可能である。
【0176】
表37は、集合で実行される主要な動作についての基本的枠組み(framework)を内包する集合マネージャについてのインタフェース1500(IGrooveCollectionManager)を示している。集合マネージャのインタフェースは次のようなメソッドを含む。
【0177】
【表37】
Figure 2004515836
【0178】
表38は、集合について実行される主な動作についての基本的枠組み(framework)を内包する集合のためのインタフェース1502(IGrooveCollection)を示したものである。集合インタフェースは次のようなメソッドを含む。
【0179】
【表38】
Figure 2004515836
Figure 2004515836
Figure 2004515836
【0180】
表39は、「有意な」イベントが集合内で発生した場合に通知するように希望している集合マネージャのクライアント用インタフェース1504(IGrooveCollectionListener)を示す。有意なイベントはどの時点でも発生することがあり、更新、追加、削除、親再設定、又は集合要素の順列位置での変更を含む。集合マネージャ・リスナー・インタフェースは次のようなメソッドを含む。
【0181】
【表39】
Figure 2004515836
【0182】
表40は、集合内のカーソルを移動したい集合マネージャのクライアント用インタフェース1506(IGrooveCollectionCursor)を示す。集合はあらゆる時点で1つ以上のカーソルをアクティブにして持つことができる。集合マネージャ・カーソル・インタフェースは次のようなメソッドを含む。
【0183】
【表40】
Figure 2004515836
【0184】
以下の表は、上記のインタフェースにリストした列挙データ・タイプについて許容される値を示したものである。更に詳しくは、表41ではGrooveCollationOrderで列挙されたデータ・タイプで許容される値を示す。
【0185】
【表41】
Figure 2004515836
【0186】
表42は、GrooveCollectionNavigationOpで列挙したデータ・タイプについて許容される値を示す。
【0187】
【表42】
Figure 2004515836
【0188】
表43は、GrooveCollectionCursorPosition に列挙したデータタイプで許容される値を示す。
【0189】
【表43】
Figure 2004515836
【0190】
表44は、GrooveCollectionRowType に列挙したデータタイプで許容される値を示す。
【0191】
【表44】
Figure 2004515836
【0192】
表45は、GrooveCollectionSynthTypeで列挙したデータタイプで許容される値を示す。
【0193】
【表45】
Figure 2004515836
【0194】
表46は、GrooveCollectionUpdateOp で列挙したデータタイプに許容される値を示す。
【0195】
【表46】
Figure 2004515836
【0196】
表47は、GrooveCollectionWaffleSystemに列挙したデータタイプで許容される値を示す。
【0197】
【表47】
Figure 2004515836
【0198】
表48は、GrooveCollectionRecordIDに列挙したデータタイプで許容される値を示す。
【0199】
【表48】
Figure 2004515836
【0200】
表49は、GrooveSortOrderに列挙したデータタイプで許容される値を示す。
【表49】
Figure 2004515836
【0201】
上記の実施態様のソフトウェアによる実装は、例えばコンピュータで読み取り可能な媒体、例えばディスケットや、CD−ROM、ROMメモリ又は固定ディスクなどの有形媒体上に固定されているか、媒体上でモデムを介してあるいは他のインタフェース装置を介して、コンピュータ・システムへ伝送可能な一連のコンピュータ命令を含む。媒体は、光又はアナログ通信線を含み、これに制限されない有形媒体としたり、赤外線又はその他の伝送技術を含み、これに制限されない無線技術で実装することができる。これはインターネットとすることもできる。一連のコンピュータ命令は、本発明に関して本明細書ですでに説明した機能の全部又は一部を実現する。このようなコンピュータ命令が、多くのコンピュータ・アーキテクチャ、あるいはオペレーティング・システムで使用する多数のプログラミング言語で書けることは、当業者には理解されよう。更に、このような命令は、半導体、磁気、光、又はその他のメモリ装置を含み、これに制限されない現在又は将来の何らかのメモリ技術、を用いて保存したり、又は光、赤外線、マイクロ波、あるいはその他の通信技術を含み、これに制限されない現在又は将来の他の通信技術を用いて伝送することができる。このようなコンピュータ・プログラム製品が、印刷した又は電子化された説明を伴ったリムーバブル媒体、例えばシュリンクラップ・ソフトウェアとして配布される、コンピュータ・システムの、例えばシステムのROM又は固定ディスク上にプリロードされる、又は例えばインターネット又はWWW(World Wide Web)などのネットワーク上のサーバ又は電子掲示板システムから配布されることを想定している。本発明の代表的実施態様を開示したが、本発明の利点の幾つかを実現する様々な変化や変更を本発明の精神と範囲から逸脱することなく成し得ることは、当業者には明らかであろう。例えば、説明は特定のハードウェア・システムとオペレーティング・システムを指向したものだったが、他のハードウェアやオペレーティング・システム・ソフトウェアを説明したのと同じ方法で使用できることは、当業者には自明であろう。特定の関数を実現するために使用される特定の命令などの他の態様や、本発明の概念に対するその他の変更は添付の請求の範囲に含まれることを意図している。
【図面の簡単な説明】
【図1】
図1は、本発明のストレージ・マネージャ・システムを実行できるコンピュータ・システムの略図である。
【図2】
図2は、インメモリ・ストレージ・マネージャと永続的ストレージの関連性を示す略ブロック図である。
【図3】
図3は、オブジェクト集合としてストレージ・マネージャ・メモリ上のXMLドキュメント表現を示す略ブロック図である。
【図4】
図4Aは、XML要素にコードを結合する際に関係するコンポーネントを示す略ブロック図である。
図4Bは、要素に結合されたプログラム・コードを取り出す際に関係するステップを示すフローチャートである。
【図5】
図5は、XMLテキスト・ドキュメントとバイナリ・サブドキュメントとの関連を示す。
【図6】
図6は、他のプロセスでのストレージ・マネージャの主要な内部パーツを示す略ブロック図である。
【図7】
図7は、プロセス間のオブジェクトを同期するためのメカニズムを示す。
【図8】
図8は、ストレージ・マネージャの主要内部パーツを介してストレージ・マネージャAPIからの主制御パスを示す略図である。
【図9】
図9は、本発明のオブジェクト指向実装により構築されたストレージ・マネージャインタフェースの略図である。
【図10】
図10は、ストレージ・マネージャにより定義され、リンクの処理中又は要素RPC処理中に呼び出される、本発明のオブジェクト指向実装により構築されたインタフェースの略図である。
【図11】
図11は、本発明のオブジェクト指向実装により構築されたデータベース及びトランザクション・インタフェースの略図である。
【図12】
図12は、本発明のオブジェクト指向実装により構築されたドキュメント及び要素のインタフェースの略図である。
【図13】
図13は、本発明のオブジェクト指向実装により構築された要素通信及び同期インタフェースの略図である。
【図14】
図14は、集合の主要な内部パーツとストレージ・マネージャを介した集合マネージャAPIからの主制御パスを示す略図である。
【図15】
図15は、本発明のオブジェクト指向実装により構築された集合マネージャ・インタフェースの略図である。

Claims (82)

  1. メモリ内のXML準拠ドキュメントを表現管理するための装置であって、前記XML準拠ドキュメントは入れ子の関係に構成された複数の要素で構成され、
    前記装置は、
    複数の要素オブジェクトを含み各要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントと、
    前記入れ子の関係になった前記要素を表現する階層に前記複数の要素オブジェクトを構成するためのメカニズムと
    を含むことを特徴とする装置。
  2. 少なくとも前記要素の幾つかはテキスト内容を含むことと、前記要素を表現する要素オブジェクトは前記テキスト内容を含むこと、を特徴とする請求項1に記載の装置。
  3. 少なくとも前記要素の幾つかは値を持った属性を含み、前記要素を表現する要素オブジェクトは前記属性値を含むこと、を特徴とする請求項1に記載の装置。
  4. 前記少なくとも幾つかの要素に含まれる前記属性値がタイプ分けされること、を特徴とする請求項3に記載の装置。
  5. 属性値を含む全ての要素オブジェクトへの一貫したポインタを含む属性インデックスを更に含むこと、を特徴とする請求項3に記載の装置。
  6. 前記構成メカニズムはデータベースポインタを含み、親要素オブジェクトのデータベースポインタは前記親要素オブジェクトの子オブジェクトを指して階層関係で親オブジェクトと子オブジェクトを構成するようにしてあること、を特徴とする請求項1に記載の装置。
  7. 前記データ・ドキュメントから参照されるスキーマ・ドキュメントを更に含み、前記スキーマ・ドキュメントは要素オブジェクトと属性のパターン、ドキュメントインデックスの有無と構造、前記データ・ドキュメントで一般に使用される文字列を記述する内容を含むこと、を特徴とする請求項1に記載の装置。
  8. 前記スキーマ・ドキュメントは前記データ・ドキュメントのXML処理ステートメントにより参照されること、を特徴とする請求項7に記載の装置。
  9. バイナリ・データを含むデータ・ドキュメントを表現するためのバイナリ・ドキュメント・オブジェクトを更に含むこと、を特徴とする請求項1に記載の装置。
  10. 前記データ・ドキュメントを表現するためのドキュメント・オブジェクトを更に含むこと、を特徴とする請求項1に記載の装置。
  11. 前記ドキュメント・オブジェクトは他のドキュメント・オブジェクトへのリンクを含み、前記他のドキュメント・オブジェクトは前記ドキュメント・オブジェクトのサブドキュメントになるようにすること、を特徴とする請求項10に記載の装置。
  12. 前記要素オブジェクトの各々は前記要素オブジェクトの各々を操作するためのメソッドを含む一様なインタフェースをエクスポートすること、を特徴とする請求項1に記載の装置。
  13. 複数の要素で構成され各々がタグにより識別され、前記要素が入れ子の関係に構成されているXML準拠ドキュメントの部分へプログラム・コードを結合するための装置であって、前記装置は、
    複数の要素オブジェクトを含み、各々の要素オブジェクトは前記XML準拠ドキュメントの一部を表現し、前記複数の要素オブジェクトは前記要素の前記入れ子の関係を表わす階層に構成されてるデータ・ドキュメントと、
    前記データ・ドキュメントにより参照され、プログラムIDコードへ前記要素の一つを識別するタグをマッピングするレジストリを含むスキーマ・ドキュメントと、
    前記プログラムIDコードを使って前記プログラム・コードを含むオブジェクトを構築するためのメカニズムと
    を含むことを特徴とする装置。
  14. 前記レジストリは要素タグからプログラムIDコードへのマッピングを行なう2カラムのテーブルであること、を特徴とする請求項13に記載の装置。
  15. 前記メカニズムは前記プログラムIDコードを取り出すメソッド呼び出しに応答して前記プログラム・コードを含む前記オブジェクトを構築すること、を特徴とする請求項13に記載の装置。
  16. 前記メカニズムはCOMオブジェクト・マネージャであり前記プログラムIDコードはProgIDコードであること、を特徴とする請求項13に記載の装置。
  17. 前記COMマネージャは前記ProgIDコードを使用して前記プログラム・コードを検索する検索メカニズムと、前記検索したプログラム・コードを内蔵するオブジェクトを構築するオブジェクト・コンストラクタとを含むこと、を特徴とする請求項16に記載の装置。
  18. 前記スキーマ・ドキュメントはXML処理ステートメントにより前記データ・ドキュメントで参照されること、を特徴とする請求項13に記載の装置。
  19. メモリ内のXML準拠ドキュメントを表現管理するための装置であって、前記XML準拠ドキュメントは前記メモリ内に第1のアドレス空間を有する第1のプロセスと前記メモリ内に第2のアドレス空間を有する第2のプロセスとにより同時的に更新されるものとし、前記装置は、
    構築する前記第1のプロセスにより制御されて前記第1のアドレス空間にあるクラス・コードから、前記第1のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第1のデータを含む少なくとも一つのドキュメント・オブジェクトを構成する第1のストレージ・マネージャと、
    構築する前記第2のプロセスにより制御されて、前記第1のアドレス空間にある前記クラスコードと同一クラス・コードである前記第2のアドレス空間にあるクラス・コードから前記第2のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第2のデータを含む少なくとも一つのドキュメント・オブジェクトを構成する第2のストレージ・マネージャと、
    前記第1のデータと前記第2のデータが連続的に等価であることを保証する同期メカニズムと
    を含むことを特徴とする装置。
  20. 前記第1のデータは前記第1のアドレス空間にマッピングされたリージョン内に格納され、前記第2のデータは前記第2のアドレス空間内にマッピングされた前記同一リージョン内に格納され、前記同期メカニズムは前記第1と第2のアドレス空間にマッピングされた前記リージョンデータを連続的に等価にすること、を特徴とする請求項19に記載の装置。
  21. 前記第2のプロセスは前記第2のアドレス空間が前記リージョン・データの最新のコピーを保有していない場合、前記第1のアドレス空間から前記リージョンデータのコピーを要求するメカニズムを含むこと、を特徴とする請求項20に記載の装置。
  22. 前記第1のプロセスは、前記第1のプロセスが前記第1のアドレス空間にある前記リージョンデータを変更しようとする場合に、前記同期マネージャが前記リージョンデータをロックすることを要求するメソッドを含むこと、を特徴とする請求項20に記載の装置。
  23. 前記第2のプロセスは、前記第2のプロセスが前記第2のアドレス空間にある前記リージョンデータを変更しようとするときに、前記リージョンデータを前記同期マネージャがロックすることを要求するメソッドを含むこと、を特徴とする請求項20に記載の装置。
  24. 前記第1のプロセスは、前記リージョンに対して読み取りと書き込み動作を実行でき、前記装置は更にトランザクションへ複数の前記読み取りと書き込み動作をグループ化するメカニズムを含むこと、を特徴とする請求項20に記載の装置。
  25. 前記第1のプロセスは、トランザクションの全ての読み取りと書き込み動作の処理中に、前記リージョンデータを前記同期マネージャがロックすることを要求するメソッドを含むこと、を特徴とする請求項24に記載の装置。
  26. トランザクションの全ての読み取りと書き込み動作の処理中に永続的データベースへの復旧ログ・エントリーを定期的に書き込むロギング・システムを更に含むこと、を特徴とする請求項25に記載の装置。
  27. 前記第1のプロセスは、不揮発性記憶に前記リージョンデータのコピーを格納するためのストレージ・メカニズムを含むこと、を特徴とする請求項19に記載の装置。
  28. 前記不揮発性記憶がオブジェクト・ストアを含むこと、を特徴とする請求項27に記載の装置。
  29. 前記不揮発性記憶がファイル・システムを含むこと、を特徴とする請求項27に記載の装置。
  30. 前記同期メカニズムが分散メモリ・システムを含むこと、を特徴とする請求項19に記載の装置。
  31. 前記第1と第2のアドレス空間の双方が前記第1と第2のドキュメント・オブジェクトを操作するための同等なプログラム・コードを含むこと、を特徴とする請求項19に記載の装置。
  32. 前記第1と第2のストレージ・マネージャは、各々が前記第1と第2のプロセスを同期するために使用されるプロセス間同期オブジェクトを構築すること、を特徴とする請求項19に記載の装置。
  33. メモリ内のXML準拠ドキュメントを表現管理するための装置であって、前記XML準拠ドキュメントは複数の要素で構成され、前記要素は入れ子の関係に構成され、前記装置は
    複数の要素オブジェクトを含み、各々の要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントと、
    インデックス構造を含むタブ型データ構造へ前記要素オブジェクトをマッピングする集合マネージャと
    を含むことを特徴とする装置。
  34. ユーザ・コマンドに応答して前記集合マネージャに対して前記タブ型データ構造用の更新のセットを伝搬するレコード・セット・エンジンを更に含むこと、を特徴とする請求項33に記載の装置。
  35. 前記集合マネージャは、前記更新のセットに応答して前記インデックス構造を更新する更新メカニズムを更に含むこと、を特徴とする請求項34に記載の装置。
  36. 前記集合マネージャは、更に前記タブ型データ構造に対して変更がなされたときに前記ユーザに通知する通知システムを含むこと、を特徴とする請求項35に記載の装置。
  37. 前記集合マネージャは、更に前記ユーザが前記タブ型データ構造内を移動できるようにするカーソルを作成する誘導メカニズムを含むこと、を特徴とする請求項36に記載の装置。
  38. メモリ内のXML準拠ドキュメントを表現管理するための方法であって、前記XML準拠ドキュメントは入れ子の関係に構成された複数の要素で構成され、前記方法は、
    (a)複数の要素オブジェクトを含み各要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを作成するステップと、
    (b)前記入れ子の関係になった前記要素を表現する階層に前記複数の要素オブジェクトを構成するステップと
    を含むことを特徴とする方法。
  39. 少なくとも前記要素の幾つかはテキスト内容を含むことと、前記要素を表現する要素オブジェクトは前記テキスト内容を含むこと、を特徴とする請求項38に記載の方法。
  40. 少なくとも前記要素の幾つかは値を持った属性を含み、前記要素を表現する要素オブジェクトは前記属性値を含むこと、を特徴とする請求項38に記載の方法。
  41. 前記少なくとも幾つかの要素に含まれる前記属性値がタイプ分けされること、を特徴とする請求項40に記載の方法。
  42. 属性値を含む全ての要素オブジェクトへの一貫したポインタを含む属性インデックスを更に含むこと、を特徴とする請求項40に記載の方法。
  43. 前記ステップ(b)は、親要素オブジェクトでデータベース・ポインタを作成し、前記ポインタが前記親要素オブジェクトの子オブジェクトを指すようにして階層関係で親オブジェクトと子オブジェクトを構成すること、を特徴とする請求項38に記載の方法。
  44. (c)前記メモリ内にある前記データ・ドキュメントから参照されるスキーマ・ドキュメントを作成し、前記スキーマ・ドキュメントは要素オブジェクトと属性のパターン、ドキュメント・インデックスの有無と構造、前記データ・ドキュメントで一般に使用される文字列を記述する内容を含むステップを更に含むこと、を特徴とする請求項38に記載の方法。
  45. 前記ステップ(c)は、前記データ・ドキュメントのXML処理ステートメントにより参照される前記スキーマ・ドキュメントを作成すること、を特徴とする請求項44に記載の方法。
  46. (d)バイナリ・データを含むデータ・ドキュメントを表現するためのバイナリ・ドキュメント・オブジェクトを前記メモリ内に作成するステップを更に含むこと、を特徴とする請求項38に記載の方法。
  47. (e)前記データ・ドキュメントを表現するためのドキュメント・オブジェクトを前記メモリ内に作成するステップを更に含むこと、を特徴とする請求項38に記載の方法。
  48. 前記ドキュメント・オブジェクトは他のドキュメント・オブジェクトへのリンクを含み、前記他のドキュメント・オブジェクトは前記ドキュメント・オブジェクトのサブドキュメントになるようにすること、を特徴とする請求項47に記載の方法。
  49. 前記要素オブジェクトの各々は前記要素オブジェクトの各々を操作するためのメソッドを含む一様なインタフェースをエクスポートすること、を特徴とする請求項38に記載の方法。
  50. 複数の要素で構成され各々がタグにより識別され、前記要素が入れ子の関係に構成されているXML準拠ドキュメントの部分へメモリ内にあるプログラム・コードを結合するための方法であって、前記XML準拠ドキュメントは前記メモリ内に格納され、前記方法は
    (a)複数の要素オブジェクトを含み、各々の要素オブジェクトは前記XML準拠ドキュメントの一部を表現し、前記複数の要素オブジェクトは前記要素の前記入れ子の関係を表わす階層に構成されてるデータ・ドキュメントをメモリ内に作成するステップと、
    (b)前記メモリ内にある前記データ・ドキュメントにより参照され、プログラムIDコードへ前記要素の一つを識別するタグをマッピングするレジストリを含むスキーマ・ドキュメントを作成するステップと、
    (c)前記プログラムIDコードを使って前記プログラム・コードを含むオブジェクトを構築するステップと
    を含むことを特徴とする方法。
  51. 前記レジストリは、要素タグからプログラムIDコードへのマッピングを行なう2カラムのテーブルであること、を特徴とする請求項50に記載の方法。
  52. 前記ステップ(c)は、前記プログラムIDコードを取り出すメソッド呼び出しに応答して開始されること、を特徴とする請求項50に記載の方法。
  53. 前記ステップ(c)はCOMオブジェクト・マネージャにより実行され、前記プログラムIDコードはProgIDコードであること、を特徴とする請求項50に記載の方法。
  54. 前記COMマネージャは、前記ProgIDコードを使用して前記プログラム・コードを検索するステップと、前記検索したプログラム・コードを内蔵するオブジェクトを構築するステップとを実行すること、を特徴とする請求項53に記載の方法。
  55. 前記スキーマ・ドキュメントは、XML処理ステートメントにより前記データ・ドキュメントから参照されること、を特徴とする請求項50に記載の方法。
  56. メモリ内のXML準拠ドキュメントを表現管理するための方法であって、前記XML準拠ドキュメントは前記メモリ内に第1のアドレス空間を有する第1のプロセスと前記メモリ内に第2のアドレス空間を有する第2のプロセスとにより同時的に更新されるものとし、前記方法は、
    (a)構築する前記第1のプロセスにより制御される第1のストレージ・マネージャを使用して、前記第1のアドレス空間にあるクラス・コードから、前記第1のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第1のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するステップと、
    (b)構築する前記第2のプロセスにより制御される第2のストレージ・マネージャを使用して、前記第1のアドレス空間にある前記クラスコードと同一クラス・コードである前記第2のアドレス空間にあるクラス・コードから前記第2のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第2のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するステップと、
    (c)前記第1のデータと前記第2のデータが連続的に等価であることを保証するステップと
    を含むことを特徴とする方法。
  57. 前記第1のデータは前記第1のアドレス空間にマッピングされたリージョン内に格納され、前記第2のデータは前記第2のアドレス空間内にマッピングされた前記同一リージョン内に格納され、前記ステップ(c)は前記第1と第2のアドレス空間にマッピングされた前記リージョンデータを連続的に等価にすることを含むこと、を特徴とする請求項56に記載の方法。
  58. 前記ステップ(c)は前記第2のアドレス空間が前記リージョン・データの最新のコピーを保有していない場合、前記第1のアドレス空間から前記リージョンデータのコピーを要求することを含むこと、を特徴とする請求項57に記載の方法。
  59. 前記ステップ(c)は前記第1のプロセスが前記第1のアドレス空間にある前記リージョンデータを変更しようとする場合に、前記リージョンデータをロックすることを含むこと、を特徴とする請求項57に記載の方法。
  60. 前記ステップ(c)は、前記第2のプロセスが前記第2のアドレス空間にある前記リージョンデータを変更しようとするときに、前記リージョンデータをロックすることを含むこと、を特徴とする請求項57に記載の方法。
  61. 前記第1のプロセスは、前記リージョンに対して読み取りと書き込み動作を実行でき、前記方法は更に(d)トランザクションへ複数の前記読み取りと書き込み動作をグループ化するステップを含むことを特徴とする請求項57に記載の方法。
  62. 前記ステップ(c)は、トランザクションの全ての読み取りと書き込み動作の処理中に前記リージョンデータをロックすることを含むこと、を特徴とする請求項61に記載の方法。
  63. 前記ステップ(c)は、トランザクションの全ての読み取りと書き込み動作の処理中に、永続的データベースへの復旧ログ・エントリーを定期的に書き込むことを更に含むこと、を特徴とする請求項62に記載の方法。
  64. (e)第1のプロセスの制御下で不揮発性記憶に前記リージョンデータのコピーを格納するステップを更に含むこと、を特徴とする請求項56に記載の方法。
  65. 前記不揮発性記憶がオブジェクト・ストアを含むこと、を特徴とする請求項64に記載の方法。
  66. 前記不揮発性記憶がファイル・システムを含むこと、を特徴とする請求項64に記載の方法。
  67. 前記ステップ(c)が分散メモリ・システムによって実行されること、を特徴とする請求項56に記載の方法。
  68. (f)前記第1と第2のアドレス空間の双方にある同等なプログラム・コードで前記第1と第2のドキュメント・オブジェクトを操作するステップを更に含むこと、を特徴とする請求項56に記載の方法。
  69. (g)前記第1と第2のプロセスを同期するために使用されるプロセス間同期オブジェクトを構築するステップを更に含むこと、を特徴とする請求項56に記載の方法。
  70. メモリ内のXML準拠ドキュメントを表現管理するための方法であって、前記XML準拠ドキュメントは複数の要素で構成され、前記要素は入れ子の関係に構成され、前記方法は
    (a)複数の要素オブジェクトを含み、各々の要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを前記メモリ内に作成するステップと、
    (b)インデックス構造を含むタブ型データ構造へ前記要素オブジェクトをマッピングするステップと
    を含むことを特徴とする方法。
  71. (c)ユーザ・コマンドに応答して前記集合マネージャに対して前記タブ型データ構造用の更新のセットを伝搬するステップを更に含むこと、を特徴とする請求項70に記載の方法。
  72. (d)更新のセットに応答して前記インデックス構造を更新するステップを更に含むこと、を特徴とする請求項71に記載の方法。
  73. (e)前記タブ型データ構造に対して変更がなされたときに前記ユーザに通知するステップを更に含むこと、を特徴とする請求項72に記載の方法。
  74. (f)前記ユーザが前記タブ型データ構造内を移動できるようにするカーソルを作成するステップを更に含むこと、を特徴とする請求項73に記載の方法。
  75. メモリ内のXML準拠ドキュメントを表現管理するためのコンピュータ・プログラム製品であって、前記XML準拠ドキュメントは入れ子の関係に構成された複数の要素で構成され、前記コンピュータ・プログラム製品はコンピュータで使用可能な媒体を含み、前記媒体はコンピュータで読み取り可能なプログラム・コードをその上に有し、
    複数の要素オブジェクトを含み各要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを作成するプログラム・コードと、
    前記入れ子の関係になった前記要素を表現する階層に前記複数の要素オブジェクトを構成するプログラム・コードと
    を含むことを特徴とするコンピュータ・プログラム製品。
  76. 複数の要素で構成され各々がタグにより識別され、前記要素が入れ子の関係に構成されていて、XML準拠ドキュメントの部分へメモリ内にあるプログラム・コードを結合するためのコンピュータ・プログラム製品であって、前記XML準拠ドキュメントは前記メモリ内に格納され、前記コンピュータ・プログラム製品はコンピュータで使用可能な媒体を含み、前記媒体はコンピュータで読み取り可能なプログラム・コードをその上に有し、
    複数の要素オブジェクトを含み、各々の要素オブジェクトは前記XML準拠ドキュメントの一部を表現し、前記複数の要素オブジェクトは前記要素の前記入れ子の関係を表わす階層に構成されてるデータ・ドキュメントをメモリ内に作成するプログラム・コードと、
    前記メモリ内にある前記データ・ドキュメントにより参照され、プログラムIDコードへ前記要素の一つを識別するタグをマッピングするレジストリを含むスキーマ・ドキュメントを作成するプログラム・コードと、
    前記プログラムIDコードを使って前記プログラム・コードを含むオブジェクトを構築するプログラム・コードと、
    を含むことを特徴とするコンピュータ・プログラム製品。
  77. メモリ内のXML準拠ドキュメントを表現管理するための方法であって、前記XML準拠ドキュメントは前記メモリ内に第1のアドレス空間を有する第1のプロセスと前記メモリ内に第2のアドレス空間を有する第2のプロセスとにより同時的に更新されるものとし、前記コンピュータ・プログラム製品はコンピュータで使用可能な媒体を含み、前記媒体はコンピュータで読み取り可能なプログラム・コードをその上に有し、
    構築する前記第1のプロセスにより制御される第1のストレージ・マネージャを使用して、前記第1のアドレス空間にあるクラス・コードから、前記第1のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第1のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するプログラム・コードと、
    構築する前記第2のプロセスにより制御される第2のストレージ・マネージャを使用して、前記第1のアドレス空間にある前記クラスコードと同一クラス・コードである前記第2のアドレス空間にあるクラス・コードから前記第2のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第2のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するプログラム・コードと、
    前記第1のデータと前記第2のデータが連続的に等価であることを保証するプログラム・コードと、
    を含むことを特徴とするコンピュータ・プログラム製品。
  78. メモリ内のXML準拠ドキュメントを表現管理するためのコンピュータ・プログラム製品であって、前記XML準拠ドキュメントは複数の要素で構成され、前記要素は入れ子の関係に構成され、前記コンピュータ・プログラム製品はコンピュータで使用可能な媒体を含み、前記媒体はコンピュータで読み取り可能なプログラム・コードをその上に有し、
    複数の要素オブジェクトを含み、各々の要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを前記メモリ内に作成するプログラム・コードと、
    インデックス構造を含むタブ型データ構造へ前記要素オブジェクトをマッピングするプログラム・コードと、
    を含むことを特徴とするコンピュータ・プログラム製品。
  79. メモリ内のXML準拠ドキュメントを表現管理するため搬送波上に実現されるコンピュータ・データ信号であって、前記XML準拠ドキュメントは入れ子の関係に構成された複数の要素で構成され、前記コンピュータ・データ信号は
    複数の要素オブジェクトを含み各要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを作成するプログラム・コードと、
    前記入れ子の関係になった前記要素を表現する階層に前記複数の要素オブジェクトを構成するプログラム・コードと、
    を含むことを特徴とするコンピュータ・データ信号。
  80. 複数の要素で構成され各々がタグにより識別され、前記要素が入れ子の関係に構成されているXML準拠ドキュメントの部分へメモリ内にあるプログラム・コードを結合するための搬送波上に実現されるコンピュータ・データ信号であって、前記XML準拠ドキュメントは前記メモリ内に格納され、前記コンピュータ・データ信号は
    複数の要素オブジェクトを含み、各々の要素オブジェクトは前記XML準拠ドキュメントの一部を表現し、前記複数の要素オブジェクトは前記要素の前記入れ子の関係を表わす階層に構成されてるデータ・ドキュメントをメモリ内に作成するためのプログラム・コードと、
    前記メモリ内にある前記データ・ドキュメントにより参照され、プログラムIDコードへ前記要素の一つを識別するタグをマッピングするレジストリを含むスキーマ・ドキュメントを作成するプログラム・コードと、
    前記プログラムIDコードを使って前記プログラム・コードを含むオブジェクトを構築するプログラム・コードと、
    を含むことを特徴とするコンピュータ・データ信号。
  81. メモリ内のXML準拠ドキュメントを表現管理するため搬送波上に実現されるコンピュータ・データ信号であって、前記XML準拠ドキュメントは前記メモリ内に第1のアドレス空間を有する第1のプロセスと前記メモリ内に第2のアドレス空間を有する第2のプロセスとにより同時的に更新されるものとし、前記コンピュータ・データ信号は
    構築する前記第1のプロセスにより制御される第1のストレージ・マネージャを使用して、前記第1のアドレス空間にあるクラス・コードから、前記第1のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第1のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するプログラム・コードと、
    構築する前記第2のプロセスにより制御される第2のストレージ・マネージャを使用して、前記第1のアドレス空間にある前記クラスコードと同一クラス・コードである前記第2のアドレス空間にあるクラス・コードから前記第2のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第2のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するプログラム・コードと、
    前記第1のデータと前記第2のデータが連続的に等価であることを保証するプログラム・コードと、
    を含むことを特徴とするコンピュータ・データ信号。
  82. メモリ内のXML準拠ドキュメントを表現管理するためのコンピュータ・データ信号であって、前記XML準拠ドキュメントは複数の要素で構成され、前記要素は入れ子の関係に構成され、前記コンピュータ・データ信号は
    複数の要素オブジェクトを含み、各々の要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを前記メモリ内に作成するプログラム・コードと、
    インデックス構造を含むタブ型データ構造へ前記要素オブジェクトをマッピングするプログラム・コードと、
    を含むことを特徴とするコンピュータ・データ信号。
JP2002502637A 2000-06-06 2001-06-01 Xmlドキュメントの効率的管理の方法及び装置 Expired - Fee Related JP5535420B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/588,195 2000-06-06
US09/588,195 US6941510B1 (en) 2000-06-06 2000-06-06 Method and apparatus for efficient management of XML documents
PCT/US2001/017726 WO2001095155A2 (en) 2000-06-06 2001-06-01 Method and apparatus for efficient management of xml documents

Publications (3)

Publication Number Publication Date
JP2004515836A true JP2004515836A (ja) 2004-05-27
JP2004515836A5 JP2004515836A5 (ja) 2008-09-04
JP5535420B2 JP5535420B2 (ja) 2014-07-02

Family

ID=24352866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002502637A Expired - Fee Related JP5535420B2 (ja) 2000-06-06 2001-06-01 Xmlドキュメントの効率的管理の方法及び装置

Country Status (8)

Country Link
US (3) US6941510B1 (ja)
EP (1) EP1366431B1 (ja)
JP (1) JP5535420B2 (ja)
KR (1) KR100836350B1 (ja)
AU (1) AU2001265288A1 (ja)
CA (2) CA2412318C (ja)
IL (2) IL153265A0 (ja)
WO (1) WO2001095155A2 (ja)

Families Citing this family (184)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356390B2 (en) 1999-06-29 2008-04-08 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US7203491B2 (en) 2001-04-18 2007-04-10 Space Data Corporation Unmanned lighter-than-air safe termination and recovery methods
US7624356B1 (en) 2000-06-21 2009-11-24 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US6948135B1 (en) 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US6883168B1 (en) 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US6832215B2 (en) * 2000-07-21 2004-12-14 Microsoft Corporation Method for redirecting the source of a data object displayed in an HTML document
US7613810B2 (en) * 2000-09-27 2009-11-03 Nokia Inc. Segmenting electronic documents for use on a device of limited capability
US9600842B2 (en) * 2001-01-24 2017-03-21 E-Numerate Solutions, Inc. RDX enhancement of system and method for implementing reusable data markup language (RDL)
US9643706B2 (en) 2001-04-18 2017-05-09 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US9632503B2 (en) 2001-04-18 2017-04-25 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US9908608B2 (en) 2001-04-18 2018-03-06 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US20030093565A1 (en) * 2001-07-03 2003-05-15 Berger Adam L. System and method for converting an attachment in an e-mail for delivery to a device of limited rendering capability
EP1280053B1 (en) * 2001-07-27 2010-02-24 Sap Ag Method and computer system for providing and processing a human interface description
DE60141823D1 (de) * 2001-07-27 2010-05-27 Sap Ag Verfahren und Rechnersystem zum Herstellen und Verarbeiten einer Browser-angepassten Benutzerschnitstelle
EP1280054A1 (en) * 2001-07-27 2003-01-29 Sap Ag Method and computer system for separating and processing layout information and data of a document
US7353287B2 (en) 2001-09-26 2008-04-01 Adobe Systems Incorporated Marked foreign data blocks
US20030120758A1 (en) * 2001-12-21 2003-06-26 Koninklijke Philips Electronics N.V. XML conditioning for new devices attached to the network
US7007024B2 (en) * 2002-03-29 2006-02-28 Panasas, Inc. Hashing objects into multiple directories for better concurrency and manageability
KR20040000894A (ko) * 2002-06-26 2004-01-07 공용해 온톨로지를 바탕으로 한 포괄적 디티디 생성 방법
US7562295B1 (en) 2002-06-28 2009-07-14 Microsoft Corporation Representing spelling and grammatical error state in an XML document
US7584419B1 (en) 2002-06-28 2009-09-01 Microsoft Corporation Representing non-structured features in a well formed document
US7565603B1 (en) 2002-06-28 2009-07-21 Microsoft Corporation Representing style information in a markup language document
US7607081B1 (en) 2002-06-28 2009-10-20 Microsoft Corporation Storing document header and footer information in a markup language document
US7533335B1 (en) * 2002-06-28 2009-05-12 Microsoft Corporation Representing fields in a markup language document
US7650566B1 (en) 2002-06-28 2010-01-19 Microsoft Corporation Representing list definitions and instances in a markup language document
US7523394B2 (en) * 2002-06-28 2009-04-21 Microsoft Corporation Word-processing document stored in a single XML file that may be manipulated by applications that understand XML
US20040034622A1 (en) * 2002-08-13 2004-02-19 Espinoza Danny Javier Applications software and method for authoring and communicating multimedia content in a multimedia object communication and handling platform
EP1543446A4 (en) 2002-08-23 2009-05-13 Lg Electronics Inc METHOD FOR REQUESTING / PROVIDING ELECTRONIC DOCUMENT BASED ON XML
US7130893B2 (en) 2003-05-19 2006-10-31 International Business Machines Corporation System and method for representing MFS control blocks in XML for MFS-based IMS applications
US20040054969A1 (en) * 2002-09-16 2004-03-18 International Business Machines Corporation System and method for generating web services definitions for MFS-based IMS applications
US7421701B2 (en) 2002-09-16 2008-09-02 International Business Machines Corporation System for facilitating transactions between thin-clients and message format service (MFS)-based information management system (IMS) applications
US20040103370A1 (en) * 2002-11-27 2004-05-27 International Business Machines Corporation System and method for rendering MFS XML documents for display
US7167586B2 (en) * 2002-09-30 2007-01-23 Pitney Bowes Inc. Method and system for remote form completion
US7417773B2 (en) * 2002-09-30 2008-08-26 Pitney Bowes Inc. Method and system for creating and sending a facsimile using a digital pen
US7343042B2 (en) * 2002-09-30 2008-03-11 Pitney Bowes Inc. Method and system for identifying a paper form using a digital pen
US7397468B2 (en) * 2002-09-30 2008-07-08 Pitney Bowes Inc. Method and system for creating a document having metadata
KR100636909B1 (ko) 2002-11-14 2006-10-19 엘지전자 주식회사 확장성 표기 언어 기반의 전자문서 버전 매김 및 버전을이용한 갱신 문서 제공 방법
WO2004059505A1 (en) 2002-12-17 2004-07-15 Systemauto System, method and computer program product for sharing information in a distributed framework
US7949937B2 (en) * 2002-12-31 2011-05-24 Business Objects Software Ltd Apparatus and method for delivering portions of reports
US7480657B1 (en) * 2003-01-06 2009-01-20 Cisco Technology, Inc. Caching information for multiple service applications
JP4077329B2 (ja) * 2003-01-31 2008-04-16 株式会社東芝 トランザクション処理システム、並行制御方法及びプログラム
US7120618B2 (en) * 2003-02-28 2006-10-10 Microsoft Corporation System and method for defining and using subclasses declaratively within markup
US7827480B2 (en) * 2003-02-28 2010-11-02 Hewlett-Packard Development Company, L.P. System and method of using a transactional unit comprised of transactional subunits
US9164750B2 (en) * 2003-02-28 2015-10-20 Hewlett-Packard Development Company, L.P. Managing target computer using encapsulated file
US7418659B2 (en) * 2003-02-28 2008-08-26 Microsoft Corporation System and method for declaring a resource within a markup document
US7213201B2 (en) 2003-03-03 2007-05-01 International Business Machines Corporation Meta editor for structured documents
US20040177315A1 (en) * 2003-03-03 2004-09-09 International Business Machines Corporation Structured document bounding language
US7275216B2 (en) * 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7296017B2 (en) 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7653876B2 (en) * 2003-04-07 2010-01-26 Adobe Systems Incorporated Reversible document format
GB2401215A (en) * 2003-05-02 2004-11-03 David Nicholas Rousseau Digital Library System
US7562081B2 (en) * 2003-05-19 2009-07-14 Teradata Us, Inc. Storing element-based descriptions of documents in a database
US20040243559A1 (en) * 2003-05-30 2004-12-02 Brundege Mark Andrew Client-side search engines
US7526753B2 (en) * 2003-06-18 2009-04-28 Microsoft Corporation System and method for creating, managing and using code segments
US7296223B2 (en) * 2003-06-27 2007-11-13 Xerox Corporation System and method for structured document authoring
US7451392B1 (en) 2003-06-30 2008-11-11 Microsoft Corporation Rendering an HTML electronic form by applying XSLT to XML using a solution
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US7370280B2 (en) * 2003-09-23 2008-05-06 International Business Machines Corporation Apparatus, system, and method for defining a web services interface for MFS-based IMS applications
US8055907B2 (en) * 2003-10-24 2011-11-08 Microsoft Corporation Programming interface for a computer platform
US8640090B2 (en) * 2003-11-10 2014-01-28 Sap Ag Active and modifiable data dictionary
US7617447B1 (en) 2003-12-09 2009-11-10 Microsoft Corporation Context free document portions
US7418508B2 (en) 2004-01-26 2008-08-26 International Machines Corporation System and method to facilitate XML enabled IMS transactions between a remote client and an IMS application program
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US20050172217A1 (en) * 2004-02-04 2005-08-04 Yiu-Ming Leung System and method for schemaless data mapping with nested tables
US7430711B2 (en) * 2004-02-17 2008-09-30 Microsoft Corporation Systems and methods for editing XML documents
US7496837B1 (en) 2004-04-29 2009-02-24 Microsoft Corporation Structural editing with schema awareness
US7383500B2 (en) 2004-04-30 2008-06-03 Microsoft Corporation Methods and systems for building packages that contain pre-paginated documents
US8661332B2 (en) 2004-04-30 2014-02-25 Microsoft Corporation Method and apparatus for document processing
KR100627587B1 (ko) * 2004-05-14 2006-09-25 김영근 웹브라우저 상에서 xml 문서를 생성하는 방법
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US20070182990A1 (en) * 2004-06-17 2007-08-09 Objective Systems Pty Limited Reproduction of documents into requested forms
US7108433B2 (en) * 2004-06-24 2006-09-19 Eastman Kodak Company Thermal processor employing varying roller spacing
US7627589B2 (en) * 2004-08-10 2009-12-01 Palo Alto Research Center Incorporated High performance XML storage retrieval system and method
US7730041B2 (en) * 2004-08-25 2010-06-01 Microsoft Corporation Data abstraction based serialization
US7617450B2 (en) * 2004-09-30 2009-11-10 Microsoft Corporation Method, system, and computer-readable medium for creating, inserting, and reusing document parts in an electronic document
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US7957723B2 (en) * 2004-10-01 2011-06-07 Nokia Corporation Sharing information feed data
GB2419436A (en) * 2004-10-25 2006-04-26 Digitalml Ltd Extensible object-modelling mechanism
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US7712022B2 (en) 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US7721190B2 (en) 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7904801B2 (en) 2004-12-15 2011-03-08 Microsoft Corporation Recursive sections in electronic forms
US7617451B2 (en) * 2004-12-20 2009-11-10 Microsoft Corporation Structuring data for word processing documents
US7617444B2 (en) * 2004-12-20 2009-11-10 Microsoft Corporation File formats, methods, and computer program products for representing workbooks
US7614000B2 (en) * 2004-12-20 2009-11-03 Microsoft Corporation File formats, methods, and computer program products for representing presentations
US7620889B2 (en) * 2004-12-20 2009-11-17 Microsoft Corporation Method and system for linking data ranges of a computer-generated document with associated extensible markup language elements
US7752632B2 (en) 2004-12-21 2010-07-06 Microsoft Corporation Method and system for exposing nested data in a computer-generated document in a transparent manner
US7770180B2 (en) 2004-12-21 2010-08-03 Microsoft Corporation Exposing embedded data in a computer-generated document
US7945590B2 (en) 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
US7668873B2 (en) * 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7725834B2 (en) 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US8010515B2 (en) 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US9141402B2 (en) * 2005-04-25 2015-09-22 Aol Inc. Providing a user interface
US7739611B2 (en) * 2005-04-25 2010-06-15 Aol Inc. User interface with connectable elements
US7739691B2 (en) * 2005-04-29 2010-06-15 Microsoft Corporation Framework for declarative expression of data processing
EP1722307A1 (fr) * 2005-05-09 2006-11-15 Amadeus s.a.s Méthode dynamique de génération de documents XML à partir d'une base de données
US20060259854A1 (en) * 2005-05-10 2006-11-16 Microsoft Corporation Structuring an electronic document for efficient identification and use of document parts
US20060271509A1 (en) * 2005-05-24 2006-11-30 Ju Wu Apparatus and method for augmenting a report with parameter binding metadata
JP4110154B2 (ja) * 2005-06-10 2008-07-02 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、コンピュータプログラム、記憶媒体
JPWO2007007529A1 (ja) * 2005-06-24 2009-01-29 株式会社ジャストシステム 文書処理装置および文書処理モジュール
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US7490300B2 (en) 2005-08-12 2009-02-10 Microsoft Corporation Copying and updating files
KR101159341B1 (ko) 2005-08-19 2012-06-25 삼성전자주식회사 Xdm 서비스 정보 관리 시스템 및 방법
US7953696B2 (en) 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
US20070118495A1 (en) * 2005-10-12 2007-05-24 Microsoft Corporation Inverse hierarchical approach to data
JP2007148944A (ja) * 2005-11-30 2007-06-14 Ricoh Co Ltd 通信端末装置
US7574449B2 (en) * 2005-12-02 2009-08-11 Microsoft Corporation Content matching
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US8984397B2 (en) * 2005-12-15 2015-03-17 Xerox Corporation Architecture for arbitrary extensible markup language processing engine
US9207917B2 (en) 2005-12-20 2015-12-08 Oralce International Corporation Application generator for data transformation applications
US7921367B2 (en) * 2005-12-20 2011-04-05 Oracle International Corp. Application generator for data transformation applications
US9286272B2 (en) * 2005-12-22 2016-03-15 Xerox Corporation Method for transformation of an extensible markup language vocabulary to a generic document structure format
US20070162848A1 (en) * 2006-01-09 2007-07-12 Apple Computer, Inc. Predictive styling
US7779343B2 (en) 2006-01-30 2010-08-17 Microsoft Corporation Opening network-enabled electronic documents
US7567956B2 (en) * 2006-02-15 2009-07-28 Panasonic Corporation Distributed meta data management middleware
US7869585B2 (en) * 2006-03-17 2011-01-11 Microsoft Corporation Declarations for transformations within service sequences
US9460064B2 (en) * 2006-05-18 2016-10-04 Oracle International Corporation Efficient piece-wise updates of binary encoded XML data
WO2008020932A2 (en) * 2006-07-10 2008-02-21 Elephantdrive, Llc Abstracted and optimized online backup and digital asset management service
CA2661805A1 (en) * 2006-08-30 2008-03-06 Compsci Resources, Llc Dynamic information retrieval system for xml-compliant data
US20090300482A1 (en) * 2006-08-30 2009-12-03 Compsci Resources, Llc Interactive User Interface for Converting Unstructured Documents
US8230332B2 (en) * 2006-08-30 2012-07-24 Compsci Resources, Llc Interactive user interface for converting unstructured documents
US20090064040A1 (en) * 2007-08-30 2009-03-05 Compsci Resources, Llc Dynamic Multi-Lingual Information Retrieval System for XML-Compliant Data
US8255790B2 (en) * 2006-09-08 2012-08-28 Microsoft Corporation XML based form modification with import/export capability
US9183321B2 (en) 2006-10-16 2015-11-10 Oracle International Corporation Managing compound XML documents in a repository
CN101170540A (zh) * 2006-10-24 2008-04-30 华为技术有限公司 一种xml文档管理方法和客户端、服务器
US20080104203A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Viewing Digital Information Over a Network
JP5003131B2 (ja) * 2006-12-04 2012-08-15 富士ゼロックス株式会社 文書提供システム及び情報提供プログラム
US20070150494A1 (en) * 2006-12-14 2007-06-28 Xerox Corporation Method for transformation of an extensible markup language vocabulary to a generic document structure format
US7676524B2 (en) * 2007-01-31 2010-03-09 Microsoft Corporation Hierarchical cursor-based object model
US8745075B2 (en) 2007-03-26 2014-06-03 Xerox Corporation Notification method for a dynamic document system
US8279865B2 (en) * 2007-04-20 2012-10-02 John Giacomoni Efficient pipeline parallelism using frame shared memory
CN101815997A (zh) * 2007-08-03 2010-08-25 韩国电子通信研究院 用于查询表达的设备和方法
US8291310B2 (en) * 2007-08-29 2012-10-16 Oracle International Corporation Delta-saving in XML-based documents
WO2009043033A2 (en) 2007-09-28 2009-04-02 Xcerion Aktiebolag Network operating system
US7831540B2 (en) * 2007-10-25 2010-11-09 Oracle International Corporation Efficient update of binary XML content in a database system
US20090119415A1 (en) * 2007-11-02 2009-05-07 Chiang Chenhuei J System and method for representing mfs control blocks in xml for mfs-based ims applications
US8352509B2 (en) * 2007-12-19 2013-01-08 International Business Machines Corporation Methods, systems, and computer program products for accessing a multi-format data object
US8589788B2 (en) * 2007-12-19 2013-11-19 International Business Machines Corporation Methods, systems, and computer program products for automatic parsing of markup language documents
US8527867B2 (en) * 2008-01-18 2013-09-03 Oracle International Corporation Enabling users to edit very large XML data
US9058407B2 (en) * 2008-01-22 2015-06-16 Oracle International Corporation Persistent multimedia content versioning
WO2009123614A1 (en) * 2008-03-31 2009-10-08 Hewlett-Packard Development Company, L.P. Updating retrieval codes in response to file transfers
US8195707B1 (en) * 2008-09-30 2012-06-05 Adobe Systems Incorporated Identifying and reacting to changes in an extensible automatic runtime object management system
US10114840B2 (en) * 2009-09-29 2018-10-30 Sap Se Customer data separation in a service provider scenario
US8255372B2 (en) 2010-01-18 2012-08-28 Oracle International Corporation Efficient validation of binary XML data
US8417714B2 (en) * 2010-01-22 2013-04-09 Oracle International Corporation Techniques for fast and scalable XML generation and aggregation over binary XML
US9141344B2 (en) * 2010-02-05 2015-09-22 Red Hat, Inc. Hover help support for application source code
US8631284B2 (en) * 2010-04-30 2014-01-14 Western Digital Technologies, Inc. Method for providing asynchronous event notification in systems
US8762682B1 (en) 2010-07-02 2014-06-24 Western Digital Technologies, Inc. Data storage apparatus providing host full duplex operations using half duplex storage devices
CN101945156B (zh) * 2010-09-01 2014-04-16 惠州Tcl移动通信有限公司 一种移动终端数据信息的备份方法及装置
US8819056B2 (en) * 2010-11-19 2014-08-26 International Business Machines Corporation Facilitation of search, list, and retrieval operations on persistent data set using distributed shared memory
US10756759B2 (en) 2011-09-02 2020-08-25 Oracle International Corporation Column domain dictionary compression
US8515904B1 (en) * 2012-03-29 2013-08-20 Emc Corporation Providing file sytem quota support for a file system having separated data and metadata
GB2507722A (en) * 2012-09-28 2014-05-14 Barclays Bank Plc Document management system taking actions based on extracted data
US8812523B2 (en) 2012-09-28 2014-08-19 Oracle International Corporation Predicate result cache
WO2014153239A1 (en) * 2013-03-14 2014-09-25 Google Inc. Real-time collaboration for binary data files
US10222953B2 (en) * 2014-04-30 2019-03-05 Disney Enterprises, Inc. Systems and methods for editing virtual content of a virtual space
US9560136B2 (en) 2014-08-07 2017-01-31 Sap Se High speed communication protocol
US10887249B2 (en) * 2014-08-29 2021-01-05 Hewlett Packard Enterprise Development Lp Resource trees by management controller
US9703813B2 (en) * 2014-09-30 2017-07-11 Sap Se Data aging in hana using grading attributes
US10528735B2 (en) * 2014-11-17 2020-01-07 Morphisec Information Security 2014 Ltd. Malicious code protection for computer systems based on process modification
WO2016105522A1 (en) 2014-12-24 2016-06-30 Space Data Corporation Breaking apart a platform upon pending collision
US10403160B2 (en) 2014-12-24 2019-09-03 Space Data Corporation Techniques for intelligent balloon/airship launch and recovery window location
US10059421B2 (en) 2014-12-30 2018-08-28 Space Data Corporation Multifunctional balloon membrane
US10275430B2 (en) * 2015-06-29 2019-04-30 Microsoft Technology Licensing, Llc Multimodal sharing of content between documents
CN105302789B (zh) * 2015-12-03 2018-06-26 万达信息股份有限公司 一种卫生信息共享文档模板缓冲存储的编辑方法
CN107239264B (zh) 2016-03-28 2020-06-23 阿里巴巴集团控股有限公司 代码提示信息的生成方法及装置
US11010361B1 (en) * 2017-03-30 2021-05-18 Amazon Technologies, Inc. Executing code associated with objects in a hierarchial data structure
CN107463668B (zh) * 2017-08-02 2019-03-26 湖南新航动力信息科技有限公司 序列化和反序列化的方法及装置、计算机设备及存储介质
US11061880B2 (en) * 2018-01-25 2021-07-13 Hewlett-Packard Development Company, L.P. Data structure with identifiers
US11693832B2 (en) * 2018-03-15 2023-07-04 Vmware, Inc. Flattening of hierarchical data into a relational schema in a computing system
US11175919B1 (en) * 2018-12-13 2021-11-16 Amazon Technologies, Inc. Synchronization of concurrent computation engines
US11100075B2 (en) * 2019-03-19 2021-08-24 Servicenow, Inc. Graphical user interfaces for incorporating complex data objects into a workflow
WO2022046926A1 (en) * 2020-08-26 2022-03-03 Immersive Wisdom, Inc. Real-time geospatial collaboration system
US20230018387A1 (en) * 2021-07-06 2023-01-19 metacluster lt, UAB Dynamic web page classification in web data collection

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991185A (ja) * 1994-07-29 1997-04-04 At & T Corp 分散コンピューティングシステム
JPH1083336A (ja) * 1996-05-01 1998-03-31 Internatl Business Mach Corp <Ibm> オブジェクト指向データ処理方法及びシステム
US5819306A (en) * 1995-02-14 1998-10-06 General Magic Shadow mechanism for a modifiable object oriented system
JPH11238011A (ja) * 1998-02-23 1999-08-31 Nippon Telegr & Teleph Corp <Ntt> オブジェクト移動方法及びシステム及び分散オブジェクト管理装置及び分散オブジェクト管理プログラムを格納した記憶媒体
JP2000500255A (ja) * 1995-09-12 2000-01-11 アルカテル・ユーエスエイ・インコーポレイテッド 多サイトに分散されたオブジェクト管理環境に対するシステム及び方法

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1888162A (en) 1932-11-15 eklund
US1626844A (en) 1925-09-08 1927-05-03 Graham Brothers Finger guard for foldable bus doors
US2557716A (en) 1945-12-07 1951-06-19 Moynahan Bronze Company Safety hinge
US2641792A (en) 1950-01-17 1953-06-16 Noble E Peeler Hinge guard
US2694234A (en) 1953-06-26 1954-11-16 Stanley Works Finger guard for swinging doors
US2910741A (en) 1956-11-02 1959-11-03 George W Houlsby Jr Safety device for swinging doors
US3302690A (en) 1964-05-04 1967-02-07 Raymond M Hurd Guard for multiple sectioned doors
US3359594A (en) 1965-04-02 1967-12-26 Pastoor Beno Johannes Folding closures
US3319697A (en) 1965-06-22 1967-05-16 John M Krohn Garage door guard
FR2282032A1 (fr) 1974-08-13 1976-03-12 Ippolito Marceau Dispositif de securite notamment pour feuillure de porte
US3941180A (en) 1974-12-30 1976-03-02 Winnebago Industries, Inc. Sectional door and guard rail assembly
US4269253A (en) 1979-06-13 1981-05-26 Ziegler Robert J Garage door and safety guard therefor
DE3726699C5 (de) 1987-08-11 2009-05-28 Hörmann KG Brockhagen Sektionaltorblatt
US5001862A (en) 1987-12-18 1991-03-26 Abraham Albenda Safety attachment for hinged side of doors
US4878267A (en) 1988-10-11 1989-11-07 Roach James F Resisting entry of an object into a space between the hinged edge of a door member hingedly attached to a associated jamb member and a surface of the jamb member
US5002114A (en) 1988-11-25 1991-03-26 Hormann Kg Brockhagen Overhead door
US5117350A (en) * 1988-12-15 1992-05-26 Flashpoint Computer Corporation Memory address mechanism in a distributed memory architecture
US5129441A (en) 1989-05-01 1992-07-14 Clopay Corporation Sectional doors and compressible flexible hinge assemblies
US5435108A (en) 1993-12-07 1995-07-25 Clopay Building Products Company Insulated garage door panel
US5522446A (en) 1994-06-15 1996-06-04 Wayne-Dalton Corp. Sectional overhead door
US5761499A (en) * 1995-12-21 1998-06-02 Novell, Inc. Method for managing globally distributed software components
US6061697A (en) 1996-09-11 2000-05-09 Fujitsu Limited SGML type document managing apparatus and managing method
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US5782283A (en) 1997-04-03 1998-07-21 Raynor Garage Doors Garage door construction
US6044438A (en) * 1997-07-10 2000-03-28 International Business Machiness Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
US6049853A (en) * 1997-08-29 2000-04-11 Sequent Computer Systems, Inc. Data replication across nodes of a multiprocessor computer system
US5974470A (en) * 1997-09-03 1999-10-26 Chicago-Soft, Ltd. System for reducing conflicts among dynamic link library modules by aliasing modules
US6633924B1 (en) * 1997-10-02 2003-10-14 Charles Wu Object synchronization between objects stores on different computers
US6442570B1 (en) * 1997-10-27 2002-08-27 Microsoft Corporation Object identification and data communication during an object synchronization process
US6067551A (en) * 1997-11-14 2000-05-23 Microsoft Corporation Computer implemented method for simultaneous multi-user editing of a document
US6219672B1 (en) * 1997-12-11 2001-04-17 Kabushiki Kaisha Toshiba Distributed shared memory system and method of controlling distributed shared memory
US6012098A (en) 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
US6240429B1 (en) * 1998-08-31 2001-05-29 Xerox Corporation Using attached properties to provide document services
US6523166B1 (en) * 1998-09-21 2003-02-18 Microsoft Corporation Method and system for on-demand installation of software implementations
US6389589B1 (en) * 1998-09-21 2002-05-14 Microsoft Corporation Class store schema
US6324544B1 (en) * 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
US6590589B1 (en) * 1998-11-30 2003-07-08 International Business Machines Corporation Automatic generation of fastpath applications
US6381605B1 (en) * 1999-05-29 2002-04-30 Oracle Corporation Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets
US7472349B1 (en) * 1999-06-01 2008-12-30 Oracle International Corporation Dynamic services infrastructure for allowing programmatic access to internet and other resources
US6640241B1 (en) * 1999-07-19 2003-10-28 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a communications manager
US6446113B1 (en) * 1999-07-19 2002-09-03 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager
US6564377B1 (en) * 1999-07-26 2003-05-13 Microsoft Corporation Self-describing components within a software catalog
US6675353B1 (en) * 1999-07-26 2004-01-06 Microsoft Corporation Methods and systems for generating XML documents
US6718516B1 (en) * 1999-09-30 2004-04-06 International Business Machines Corporation Method for verifying context between multiple related XML tags in document object model (DOM)
US7134072B1 (en) * 1999-10-13 2006-11-07 Microsoft Corporation Methods and systems for processing XML documents
US7120863B1 (en) * 1999-11-15 2006-10-10 International Business Machines Corporation Method, system, and program for interfacing with elements in a document
US6854120B1 (en) * 2000-01-14 2005-02-08 International Business Machines Corporation Accessing a ERP application over the internet using strongly typed declarative language files
US6810414B1 (en) * 2000-02-04 2004-10-26 Dennis A. Brittain System and methods for easy-to-use periodic network data capture engine with automatic target data location, extraction and storage
US7072896B2 (en) * 2000-02-16 2006-07-04 Verizon Laboratories Inc. System and method for automatic loading of an XML document defined by a document-type definition into a relational database including the generation of a relational schema therefor
US6490591B1 (en) * 2000-03-13 2002-12-03 Cisco Technology, Inc. Apparatus and method for storing complex structures by conversion of arrays to strings
US6883137B1 (en) * 2000-04-17 2005-04-19 International Business Machines Corporation System and method for schema-driven compression of extensible mark-up language (XML) documents
US7287259B2 (en) * 2000-04-24 2007-10-23 Microsoft Corporation Isolating assembly versions for binding to application programs
US6871344B2 (en) * 2000-04-24 2005-03-22 Microsoft Corporation Configurations for binding software assemblies to application programs
US6957439B1 (en) * 2000-05-09 2005-10-18 International Business Machines Corporation Method, system, and program for mapping objects in different language formats
US6675178B1 (en) * 2000-11-09 2004-01-06 Accenture Llp Method and system for enhancing a commercial transaction conducted via a communications network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991185A (ja) * 1994-07-29 1997-04-04 At & T Corp 分散コンピューティングシステム
US5819306A (en) * 1995-02-14 1998-10-06 General Magic Shadow mechanism for a modifiable object oriented system
JP2000500255A (ja) * 1995-09-12 2000-01-11 アルカテル・ユーエスエイ・インコーポレイテッド 多サイトに分散されたオブジェクト管理環境に対するシステム及び方法
JPH1083336A (ja) * 1996-05-01 1998-03-31 Internatl Business Mach Corp <Ibm> オブジェクト指向データ処理方法及びシステム
JPH11238011A (ja) * 1998-02-23 1999-08-31 Nippon Telegr & Teleph Corp <Ntt> オブジェクト移動方法及びシステム及び分散オブジェクト管理装置及び分散オブジェクト管理プログラムを格納した記憶媒体

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
原 尚広 他: "OS/2へのソフトウェア移植", PFU・テクニカルレビュー, vol. 第3巻 第2号, JPN6013015174, 1 August 1992 (1992-08-01), JP, pages 42 - 50, ISSN: 0002495662 *
岩崎 未知 他: "分散オブジェクト指向シェルHyperShellでの共有オブジェクト管理方式", 情報処理学会研究報告, vol. 第92巻 第86号, JPN6011065096, 5 November 1992 (1992-11-05), JP, pages 81 - 90, ISSN: 0002094200 *
岩崎 未知: "異機種分散環境におけるUI実現方式", 情報処理学会研究報告, vol. 1991, no. 73, JPN6013015173, 6 September 1991 (1991-09-06), JP, pages 1 - 8, ISSN: 0002495661 *
秋山 功: "オブジェクト・トランザクション機能", 技報 UNISYS TECHNOLOGY REVIEW, vol. 第17巻 第3号, JPN6011065098, 30 November 1997 (1997-11-30), pages 11 - 24, ISSN: 0002094201 *
羽田 昭裕: "青山学院バーチャル・キャンパス基盤システムの構築", 技報 UNISYS TECHNOLOGY REVIEW, vol. 第20巻 第1号, JPN6012049430, 31 May 2000 (2000-05-31), pages 39 - 57, ISSN: 0002336131 *
西原 浩 他: "OS/2からUXP/DSへのアプリケーション移植", PFU・テクニカルレビュー, vol. 第4巻 第1号, JPN6013015176, 1 February 1993 (1993-02-01), JP, pages 20 - 28, ISSN: 0002495663 *

Also Published As

Publication number Publication date
US6941510B1 (en) 2005-09-06
CA2412318A1 (en) 2001-12-13
CA2713439C (en) 2013-04-23
WO2001095155A3 (en) 2003-10-02
US20050165815A1 (en) 2005-07-28
IL153265A0 (en) 2003-07-06
WO2001095155A2 (en) 2001-12-13
KR20030047895A (ko) 2003-06-18
JP5535420B2 (ja) 2014-07-02
EP1366431A2 (en) 2003-12-03
CA2412318C (en) 2011-05-03
EP1366431B1 (en) 2018-04-25
US7721194B2 (en) 2010-05-18
AU2001265288A1 (en) 2001-12-17
CA2713439A1 (en) 2001-12-13
US7581172B2 (en) 2009-08-25
KR100836350B1 (ko) 2008-06-09
IL153265A (en) 2011-04-28
US20050171970A1 (en) 2005-08-04

Similar Documents

Publication Publication Date Title
JP5535420B2 (ja) Xmlドキュメントの効率的管理の方法及び装置
Seligman et al. XML's impact an databases and data sharing
CA2522309C (en) Retaining hierarchical information in mapping between xml documents and relational data
US7275087B2 (en) System and method providing API interface between XML and SQL while interacting with a managed object environment
US20030135825A1 (en) Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources
EP1192561A1 (en) Database management system with capability of fine-grained indexing and querying
Bangalore et al. The UMLS Knowledge Source Server: An object model for delivering UMLS data
Rose et al. Virtual XML: A toolbox and use cases for the XML world view
Maluf et al. Netmark: A schema-less extension for relational databases for managing semi-structured data dynamically
Bhowmick et al. Representation of web data in a web warehouse
Brahmia et al. An approach for schema versioning in multi-temporal XML databases
Pokorný XML in enterprise systems
Wu et al. Study on XML-Based Heterogeneous Agriculture Database Sharing Platform
Holupirek Declarative Access to Filesystem Data: New application domains for XML database management systems
Geetha Increasing Concurrency in XML Documents Using Semantic Locks
Davidson et al. Creating and maintaining curated view databases
Phan et al. From Extensional Data to Intensional Data: AXML for XML
Zeyao Review of XML Based on Patent Documents
Maluf et al. NETMARK: Adding Hierarchical Object to Relational Databases with “Schema-less” Extensions
Guo A framework for Java-based client server connectivity for XML
Elsheh Integration of relational database metadata and XML technology to develop an abstract framework to generate automatic and dynamic web entry forms.
Nirmal Efficient storage of XML: A comparative study
Holupirek Declarative Access to Filesystem Data
Rusu et al. The Role Of Xml In The Modeling Process Of A Virtual Business
Maluf et al. NASA web-accessible open Software as a Service framework

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130121

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20130122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130122

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130213

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20130329

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130913

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7435

Effective date: 20130913

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140423

R150 Certificate of patent or registration of utility model

Ref document number: 5535420

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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