JP2004515836A - Xmlドキュメントの効率的管理の方法及び装置 - Google Patents
Xmlドキュメントの効率的管理の方法及び装置 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/123—Storage facilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/221—Parsing markup language streams
Abstract
Description
【発明の属する技術分野】
本発明は情報の格納と取り出しに関し、更に詳細には、拡張マークアップ言語(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処理ステートメント。そのようなステートメントは次のようなフォームになる:
【0027】
2.ファイル内に存在する要素とその関連性を定義するドキュメント・タイプ定義(DTD)。DTDは内部サブセットのファイル内のマークアップ・タグの形式と内容を記述する正式なマークアップ・タグ宣言(大括弧の間)、又は関連マークアップ宣言(外部サブセット)を含むファイルを参照するかのどちらかである。この宣言は次のような形になる:
【0028】
3.ルート要素で構成されるタグ付きドキュメントのインスタンス、これは要素タイプ名がドキュメントタイプ宣言のドキュメントタイプ名と一致しなければならない。他の全てのマークアップ要素はルート要素に入れ子にされる。
【0029】
3つすべてのコンポーネントが存在していて、ドキュメント・インスタンスがDTDに定義されたドキュメント・モデルに適合していれば、ドキュメントは「有効である」とされる。最後のコンポーネントだけが存在していて、正式なドキュメント・モデルが存在しないが、各要素が親要素内に正しく入れ子になり、かつ各属性が属性名とそれに続く値指示子(=)と引用符つき文字列で指定されていれば、ドキュメント・インスタンスは「十分整形されている」と言われる。本発明のシステムは良く整形されたXMLドキュメントで動作しこれを生成できる。
【0030】
ストレージ・マネージャ206内で、XMLドキュメントは、名称「グルーブ・ドキュメント」と集合的に呼ばれるデータ・ストレージ・パーティションにより表現されて、従来のXMLドキュメントとは表示が区別される。各グルーブ・ドキュメントはそのドキュメントを構成する各種要素の間の関連性を正しく識別するDTDによって記述できる。これらのDTDは標準XMLフォーマットに従う。更に、各グルーブ・ドキュメントは定義又はスキーマがあり、これはドキュメントの本体で要素と属性のパターンを記述する。XMLバージョン1.0はスキーマをサポートしていない。そのため、グルーブ・スキーマドキュメントをXMLデータ・ドキュメントに関連付けるには、スキーマへのURI参照を含む特別なXML処理命令をデータ・ドキュメントに含める。この処理命令は次の形である:
【0031】
幾つかの要素はコンテンツがないか必要とせず、どこで何らかのプロセスが行なわれることを示すプレースホルダーとして機能する。タグの特別なフォームをXMLで使用して何のコンテンツも持っていない、従って終了タグのない空の要素を示す。例えば、<ThumbnailBox>要素はテキスト行に埋め込まれた画像のプレースホルダーとして機能する空の要素で次のような宣言をDTDに行なう:
【0032】
要素が可変フォームを持つことができる場合、又は相互にリンクされる必要がある場合、適当な属性を与えてこれに適用されるべきプロパティを指定することができる。これらの属性はリストで指定する。例えば、<ThumbnailBox>要素がLocationとSize属性を含むことがあると決定されるとする。このような属性で適当と思われる属性リスト宣言は次のようになる:
【0033】
これは<ThumbnailBox>要素が要求されたLocationエンティティ(実体)を含みSize属性を含むことがあることをコンピュータに伝える。キーワード#IMPLIEDは<ThumbnailBox>要素の幾つかのインスタンスで属性を除くことが許容されることを表わす。
【0034】
XMLは、幾つかのコンパイラで使用される#DEFINEステートメントと類似のカスタム定義ステートメントも許容している。一般に使用される定義は「エンティティ(実体)」としてDTD内部で宣言できる。典型的なエンティティ(実体)定義は次の形をとれる:
<!ENTITY BinDoc3487 SYSTEM ”./3487.gif” NDATA>
【0035】
これは”BinDoc3487”バイナリ・ドキュメントのファイルの場所を定義する。このような宣言をDTDで一度行なっておけば、ユーザは完全な値のかわりに参照を利用できる。例えば、先に説明した<ThumbnailBox>要素は
として指定できる。この技術を使う利点は、後で定義された値を変更しなければならない場合に、エンティティ(実体)参照は自動的に現在の宣言の内容を使用するので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定義を持ち、これはメタ・スキーマと呼ばれ、次に示すようなものである:
<!−− ドキュメント要素はスキーマのルート要素である −−>
【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ドキュメントについてのスキーマ・ドキュメントのサンプル部分を示す。
【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】
サブドキュメントのリンクは、単純なリンクについての標準定義に従属する。リンクについての代表的な要素定義は次のようなものである:
【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】
【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】
【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】
【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】
【0090】
他のインタフェース902(IGrooveStorageURISyntax)は、統一資源識別子(URI)の形になっている標準名の一部について演算を実行する必要があるストレージ・マネージャのクライアントが使用する。表4はIGrooveStorageURISyntaxインタフェース用のメソッドを含む。
【0091】
【表4】
【0092】
図10は通知システムインタフェースを示す。インタフェース1000(IGrooveLinkCallback)はXMLドキュメント又は要素の入力処理中にリンクへの定義が見付かった場合通知される必要のあるストレージ・マネージャのクライアントで使用するインタフェースである。インタフェースは表5に定義されているメソッドを含む。
【0093】
【表5】
【0094】
他のインタフェース1002(IGrooveRPCServerCallback)は、XMLドキュメント内の要素についてリモート・プロシージャ・コール(RPC)を扱う必要があるストレージ・マネージャのクライアントで使用される。RPCサーバのコールバックは「util」ベースクラスのサブクラスである(後述する)。つまり、IGrooveElementUtilBaseのメソッド全部もIGrooveRPCServerCallbackに適用される。表6はストレージ・マネージャRPCサーバ・コールバック・インタフェースで使用されるメソッドを定義したものである。
【0095】
【表6】
【0096】
図11、図12、図13はドキュメント操作インタフェース、待ち行列、RPCインタフェースを示す。更に詳しくは、図11にはデータベースを操作するために使用するインタフェースを示す。インタフェース1100(IGrooveDatabase)はドキュメントを格納するデータベースを管理する必要があるストレージ・マネージャのクライアントによって使用される。これは表7のメソッドを含む。
【0097】
【表7】
【0098】
表8はプロセス間のアクセスを同期する必要があるストレージ・マネージャのクライアント用インタフェース1102(IGrooveCrossProcessSemaphore)のメソッドを示す。
【0099】
【表8】
【0100】
表9は、データベース内での動作をグループ化する必要があるストレージ・マネージャクライアント用のインタフェース1104(IGrooveTransaction)を示す。トランザクションはプロセス間セマフォのサブクラス、つまりIGrooveCrossProcessSemaphoreのメソッドの全てにもIGrooveTransactionが適用される。ストレージ・マネージャトランザクションインタフェースは次のようなメソッドを含む。
【0101】
【表9】
【0102】
図12は、ストレージ・マネージャのクライアントが、ドキュメントとこれらのドキュメント内の要素を操作できるようにするインタフェースを示す。表10には、データベース内のドキュメントを管理する必要があるストレージ・マネージャのクライアント用インタフェース1200(IGrooveDocument)を示す。ストレージ・マネージャ・ドキュメント・インタフェースは次のようなメソッドを含む。
【0103】
【表10】
【0104】
表11は、データベース内のXMLドキュメントを管理する必要があるストレージ・マネージャのクライアント用インタフェース1202(IGrooveXMLDocument)を示す。XMLドキュメントは、ドキュメントのサブクラス、つまりIGrooveDocumentのメソッドの全部がIGrooveXMLDocumentにも適用される。ストレージ・マネージャXMLドキュメント・インタフェースは次のようなメソッドを含む。
【0105】
【表11】
【0106】
表12はデータベース内でバイナリ・ドキュメントを管理する必要があるストレージ・マネージャのクライアント用インタフェース1204(IGrooveBinaryDocument)のメソッドを示す。バイナリ・ドキュメントはドキュメントのサブクラス、つまりIGrooveDocumentのメソッドの全部もまたIGrooveBinaryDocumentに適用される。
【0107】
【表12】
【0108】
表13はXSLTと呼ばれる仕様に定義されている、ロケータ・クエリを使用して要素を検索する必要があるストレージ・マネージャのクライアント用インタフェース1206(IGrooveLocator)を示す。XSLT仕様の詳細はhttp://www.w3.org/TR/xsltにある。ストレージ・マネージャのロケータ・インタフェースは次のようなメソッドを含む。
【0109】
【表13】
【0110】
表14は、XSLTに定義されているXMLドキュメント変換を実行する必要があるストレージ・マネージャのクライアント用インタフェース1208(IGrooveTransform)を示す。ストレージ・マネージャ変換インタフェースは次のようなメソッドを含む。
【0111】
【表14】
【0112】
表15は、ストレージ・マネージャクライアントがXMLドキュメント内の要素を操作できるようにするインタフェース1210(IGrooveElement)を示す。ストレージ・マネージャの要素インタフェースは次のようなメソッドを含む。
【0113】
【表15】
【0114】
表16は、XMLドキュメント内の読み取り専用要素を操作する必要があるストレージ・マネージャのクライアント用インタフェース1212(IGrooveReadOnlyElement)のメソッドを示してある。読み取り専用要素は要素のサブクラス、すなわちIGrooveElementのメソッドの全部がIGrooveReadOnlyElementにも適用される。
【0115】
【表16】
【0116】
表17は、XMLドキュメント内の要素参照を操作する必要があるストレージ・マネージャのクライアント用インタフェース1214(IGrooveElementReference)を示したものである。ストレージ・マネージャの要素参照インタフェースは次のようなメソッドを含む。
【0117】
【表17】
【0118】
ストレージ・マネージャの他のインタフェース内で使用するインタフェース1216(IGrooveElementUtilBase)を、表18に示す。IGrooveElementUtilBaseは、一般に使用されるオブジェクトのためのインタフェースではないが、共通に使用されるオブジェクトを持っている他のサブクラスについてのベースクラスとして用いることを想定している。”util”インタフェースの全てが要素に関連する。ストレージ・マネージャ要素utilベースインタフェースは次のようなメソッドを含む。
【0119】
【表18】
【0120】
表19は、XMLドキュメント内の要素に関連付けられた実行可能コードを処理する必要があるストレージ・マネージャクライアント用インタフェース1218(IGrooveBoundCode)を示す。ストレージ・マネージャ・バインドコード・インタフェースは次のようなメソッドを含む。
【0121】
【表19】
【0122】
図13は、前述のIGrooveElementUtilBaseベースクラス1300のサブクラスであるインタフェースを示している。表20には、XMLドキュメント内の要素に対するキューを操作する必要があるストレージ・マネージャのクライアント用インタフェース1302(IGrooveElementQueue)を示す。要素キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveElementQueueにも適用される。ストレージ・マネージャ要素キューインタフェースは次のようなメソッドを含む。
【0123】
【表20】
【0124】
表21は、XMLドキュメント内部の要素参照に対するキューを操作する必要があるストレージ・マネージャのクライアント用インタフェース1306(IGrooveElementReferenceQueue)を示す。要素参照キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveElementReferenceQueueにも適用される。ストレージ・マネージャ要素キュー参照インタフェースは次のようなメソッドを含む。
【0125】
【表21】
【0126】
表22は、XMLドキュメント内の要素に対するマルチリーダー/キューから要素を除去する必要があるストレージ・マネージャのクライアント用インタフェース1310(IGrooveMultiReaderElementQueueReader)を示す。マルチリーダー要素キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveMultiReaderElementQueueReaderにも適用される。ストレージ・マネージャ・マルチリーダー要素キュー・リーダーインタフェースは次のようなメソッドを含む。
【0127】
【表22】
【0128】
表23は、XMLドキュメント内の要素についてマルチリーダー・キューへ要素を追加する必要があるストレージ・マネージャのクライアント用インタフェース1314(IGrooveMultiReaderElementQueueWriter)を示す。マルチリーダー要素キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveMultiReaderElementQueueWriterにも適用される。ストレージ・マネージャ・マルチリーダー要素キュー・ライター・インタフェースは次のようなメソッドを含む。
【0129】
【表23】
【0130】
表24は、XMLドキュメント内の要素についてマルチリーダー・キューへの要素参照を追加する必要があるストレージ・マネージャのクライアント用インタフェース1318(IGrooveMultiReaderElementReferenceQueueWriter)を示す。マルチリーダー要素参照キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveMultiReaderElementReferenceQueueWriterにも適用される。ストレージ・マネージャ・マルチリーダー要素参照キューライター・インタフェースは次のようなメソッドを含む。
【0131】
【表24】
【0132】
表25は、XMLドキュメント内の要素についてマルチリーダー・キューから要素参照を除去する必要があるストレージ・マネージャのクライアント用インタフェース1316(IgrooveMultiReaderElementReferenceQueueReader)を示す。マルチリーダー要素参照キューは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveMultiReaderElementReferenceQueueReaderにも適用される。ストレージ・マネージャ・マルチリーダー要素参照キューリーダー・インタフェースは次のようなメソッドを含む。
【0133】
【表25】
【0134】
表26は、XMLドキュメント内の要素についてリモート・プロシージャ・コール(RPC)を実行する必要があるストレージ・マネージャのクライアント用インタフェース1304(IGrooveRPCClient)を示す。RPCクライアントは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveRPCClientにも適用される。ストレージ・マネージャRPCクライアント・インタフェースは次のようなメソッドを含む。
【0135】
【表26】
【0136】
XMLドキュメント内の要素についてリモート・プロシージャ・コール(RPC)を処理する必要があるストレージ・マネージャのクライアント用インタフェース1308(IGrooveRPCServerThread)を、表27に示す。RPCサーバ・スレッドは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveRPCServerThreadにも適用される。ストレージ・マネージャRPC サーバ・コールバック・インタフェースは、それ自体のメソッドを持っておらず、IGrooveElementUtilBaseから継承したメソッドのみである。タイプをチェックするための独立したインタフェースとして提供される。
【0137】
【表27】
【0138】
表28は、XMLドキュメント内の要素についてリモート・プロシージャ・コール(RPC)を処理する必要があるストレージ・マネージャのクライアント用インタフェース1312(IGrooveRPCServer)を示す。RPCサーバは”util”ベースクラスのサブクラス、すなわちIGrooveElementUtilBaseのメソッド全部がIGrooveRPCServerにも適用される。ストレージ・マネージャRPCサーバ・インタフェースは次のようなメソッドを含む。
【0139】
【表28】
【0140】
以下の表は、上記インタフェースにリストアップした列挙データタイプについて許容される値を示したものである。とくに、表29はGrooveSerializeTypeに列挙したデータタイプで許容される値を示す。
【0141】
【表29】
【0142】
表30は、GrooveSerializeOptionsで列挙したデータタイプで許容される値を示す。
【0143】
【表30】
【0144】
表31は、GrooveParseOptionsに列挙したデータタイプで許容される値を示す。
【0145】
【表31】
【0146】
表32は、GrooveContentTypeで列挙したデータタイプで許容される値を示す。
【0147】
【表32】
【0148】
表33は、GrooveXLinkShowで列挙したデータタイプに許容される値である。
【0149】
【表33】
【0150】
表34は、GrooveXLinkActuateで列挙したデータタイプに許容される値である。
【0151】
【表34】
【0152】
表35は、GrooveXLinkSerializeで列挙したデータタイプに許容される値である。
【0153】
【表35】
【0154】
表36は、GrooveMultiReaderQueueOptionsで列挙したデータタイプに許容される値である。
【0155】
【表36】
【0156】
ストレージ・マネージャの基本的データ・モデルはXMLである。XMLは半構造型、階層型、ハイパーリンク型データ・モデルである。多くの実世界の問題はこのような複雑な構造で良く表現されず、タブ型フォームでよりよく表現される。例えば、スプレッドシートやリレーショナル・データベースは単純なタブ型インタフェースを提供する。本発明の1つの態様では、表現を簡単にするため、XML構造は一般に「ワッフル」と呼ばれるタブ型ディスプレイにマッピングされる。ワッフルはデータの集合を表現する。このマッピングはストレージ・マネージャのコンポーネントである集合マネージャにより実行される。
【0157】
集合は集合記述子により定義され、記述子はXMLドキュメントタイプの記述である。ドキュメント・スキーマと同様に、集合記述子は特殊なドキュメントで、集合データそれ自体とは別に保存される。集合データのソースは多く存在するが、集合データの主なソースはレコード・セット・エンジンと呼ばれるソフトウェア・ルーチンである。ユーザのコマンドにより駆動されて、レコード・セット・エンジンは集合の更新の組を集合マネージャへ伝播する。これらの更新に基づいて、集合マネージャはインデックス構造を更新し、通知システムを介してワッフル・ユーザに通知する。ワッフル・ユーザが更新された、あるいは新規の集合データを必要とする場合、ワッフル・ユーザは、集合マネージャを呼び出して更新データを含む新しい結果配列を返してもらう。ワッフル・ユーザはカーソルを使って集合内を移動することもできる。
【0158】
以下のリストは集合記述子ドキュメントのXMLDTDコンテンツを示す。
【0159】
【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】
【0170】
以下の例は、カレンダー・ビューの集合記述子を示す。上の例と同様だが、ソート記述に多少の変化があり、集合は日付間隔の範囲で順序付けられることに注意する。
【0171】
【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】
【0178】
表38は、集合について実行される主な動作についての基本的枠組み(framework)を内包する集合のためのインタフェース1502(IGrooveCollection)を示したものである。集合インタフェースは次のようなメソッドを含む。
【0179】
【表38】
【0180】
表39は、「有意な」イベントが集合内で発生した場合に通知するように希望している集合マネージャのクライアント用インタフェース1504(IGrooveCollectionListener)を示す。有意なイベントはどの時点でも発生することがあり、更新、追加、削除、親再設定、又は集合要素の順列位置での変更を含む。集合マネージャ・リスナー・インタフェースは次のようなメソッドを含む。
【0181】
【表39】
【0182】
表40は、集合内のカーソルを移動したい集合マネージャのクライアント用インタフェース1506(IGrooveCollectionCursor)を示す。集合はあらゆる時点で1つ以上のカーソルをアクティブにして持つことができる。集合マネージャ・カーソル・インタフェースは次のようなメソッドを含む。
【0183】
【表40】
【0184】
以下の表は、上記のインタフェースにリストした列挙データ・タイプについて許容される値を示したものである。更に詳しくは、表41ではGrooveCollationOrderで列挙されたデータ・タイプで許容される値を示す。
【0185】
【表41】
【0186】
表42は、GrooveCollectionNavigationOpで列挙したデータ・タイプについて許容される値を示す。
【0187】
【表42】
【0188】
表43は、GrooveCollectionCursorPosition に列挙したデータタイプで許容される値を示す。
【0189】
【表43】
【0190】
表44は、GrooveCollectionRowType に列挙したデータタイプで許容される値を示す。
【0191】
【表44】
【0192】
表45は、GrooveCollectionSynthTypeで列挙したデータタイプで許容される値を示す。
【0193】
【表45】
【0194】
表46は、GrooveCollectionUpdateOp で列挙したデータタイプに許容される値を示す。
【0195】
【表46】
【0196】
表47は、GrooveCollectionWaffleSystemに列挙したデータタイプで許容される値を示す。
【0197】
【表47】
【0198】
表48は、GrooveCollectionRecordIDに列挙したデータタイプで許容される値を示す。
【0199】
【表48】
【0200】
表49は、GrooveSortOrderに列挙したデータタイプで許容される値を示す。
【表49】
【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)
- メモリ内のXML準拠ドキュメントを表現管理するための装置であって、前記XML準拠ドキュメントは入れ子の関係に構成された複数の要素で構成され、
前記装置は、
複数の要素オブジェクトを含み各要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントと、
前記入れ子の関係になった前記要素を表現する階層に前記複数の要素オブジェクトを構成するためのメカニズムと
を含むことを特徴とする装置。 - 少なくとも前記要素の幾つかはテキスト内容を含むことと、前記要素を表現する要素オブジェクトは前記テキスト内容を含むこと、を特徴とする請求項1に記載の装置。
- 少なくとも前記要素の幾つかは値を持った属性を含み、前記要素を表現する要素オブジェクトは前記属性値を含むこと、を特徴とする請求項1に記載の装置。
- 前記少なくとも幾つかの要素に含まれる前記属性値がタイプ分けされること、を特徴とする請求項3に記載の装置。
- 属性値を含む全ての要素オブジェクトへの一貫したポインタを含む属性インデックスを更に含むこと、を特徴とする請求項3に記載の装置。
- 前記構成メカニズムはデータベースポインタを含み、親要素オブジェクトのデータベースポインタは前記親要素オブジェクトの子オブジェクトを指して階層関係で親オブジェクトと子オブジェクトを構成するようにしてあること、を特徴とする請求項1に記載の装置。
- 前記データ・ドキュメントから参照されるスキーマ・ドキュメントを更に含み、前記スキーマ・ドキュメントは要素オブジェクトと属性のパターン、ドキュメントインデックスの有無と構造、前記データ・ドキュメントで一般に使用される文字列を記述する内容を含むこと、を特徴とする請求項1に記載の装置。
- 前記スキーマ・ドキュメントは前記データ・ドキュメントのXML処理ステートメントにより参照されること、を特徴とする請求項7に記載の装置。
- バイナリ・データを含むデータ・ドキュメントを表現するためのバイナリ・ドキュメント・オブジェクトを更に含むこと、を特徴とする請求項1に記載の装置。
- 前記データ・ドキュメントを表現するためのドキュメント・オブジェクトを更に含むこと、を特徴とする請求項1に記載の装置。
- 前記ドキュメント・オブジェクトは他のドキュメント・オブジェクトへのリンクを含み、前記他のドキュメント・オブジェクトは前記ドキュメント・オブジェクトのサブドキュメントになるようにすること、を特徴とする請求項10に記載の装置。
- 前記要素オブジェクトの各々は前記要素オブジェクトの各々を操作するためのメソッドを含む一様なインタフェースをエクスポートすること、を特徴とする請求項1に記載の装置。
- 複数の要素で構成され各々がタグにより識別され、前記要素が入れ子の関係に構成されているXML準拠ドキュメントの部分へプログラム・コードを結合するための装置であって、前記装置は、
複数の要素オブジェクトを含み、各々の要素オブジェクトは前記XML準拠ドキュメントの一部を表現し、前記複数の要素オブジェクトは前記要素の前記入れ子の関係を表わす階層に構成されてるデータ・ドキュメントと、
前記データ・ドキュメントにより参照され、プログラムIDコードへ前記要素の一つを識別するタグをマッピングするレジストリを含むスキーマ・ドキュメントと、
前記プログラムIDコードを使って前記プログラム・コードを含むオブジェクトを構築するためのメカニズムと
を含むことを特徴とする装置。 - 前記レジストリは要素タグからプログラムIDコードへのマッピングを行なう2カラムのテーブルであること、を特徴とする請求項13に記載の装置。
- 前記メカニズムは前記プログラムIDコードを取り出すメソッド呼び出しに応答して前記プログラム・コードを含む前記オブジェクトを構築すること、を特徴とする請求項13に記載の装置。
- 前記メカニズムはCOMオブジェクト・マネージャであり前記プログラムIDコードはProgIDコードであること、を特徴とする請求項13に記載の装置。
- 前記COMマネージャは前記ProgIDコードを使用して前記プログラム・コードを検索する検索メカニズムと、前記検索したプログラム・コードを内蔵するオブジェクトを構築するオブジェクト・コンストラクタとを含むこと、を特徴とする請求項16に記載の装置。
- 前記スキーマ・ドキュメントはXML処理ステートメントにより前記データ・ドキュメントで参照されること、を特徴とする請求項13に記載の装置。
- メモリ内のXML準拠ドキュメントを表現管理するための装置であって、前記XML準拠ドキュメントは前記メモリ内に第1のアドレス空間を有する第1のプロセスと前記メモリ内に第2のアドレス空間を有する第2のプロセスとにより同時的に更新されるものとし、前記装置は、
構築する前記第1のプロセスにより制御されて前記第1のアドレス空間にあるクラス・コードから、前記第1のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第1のデータを含む少なくとも一つのドキュメント・オブジェクトを構成する第1のストレージ・マネージャと、
構築する前記第2のプロセスにより制御されて、前記第1のアドレス空間にある前記クラスコードと同一クラス・コードである前記第2のアドレス空間にあるクラス・コードから前記第2のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第2のデータを含む少なくとも一つのドキュメント・オブジェクトを構成する第2のストレージ・マネージャと、
前記第1のデータと前記第2のデータが連続的に等価であることを保証する同期メカニズムと
を含むことを特徴とする装置。 - 前記第1のデータは前記第1のアドレス空間にマッピングされたリージョン内に格納され、前記第2のデータは前記第2のアドレス空間内にマッピングされた前記同一リージョン内に格納され、前記同期メカニズムは前記第1と第2のアドレス空間にマッピングされた前記リージョンデータを連続的に等価にすること、を特徴とする請求項19に記載の装置。
- 前記第2のプロセスは前記第2のアドレス空間が前記リージョン・データの最新のコピーを保有していない場合、前記第1のアドレス空間から前記リージョンデータのコピーを要求するメカニズムを含むこと、を特徴とする請求項20に記載の装置。
- 前記第1のプロセスは、前記第1のプロセスが前記第1のアドレス空間にある前記リージョンデータを変更しようとする場合に、前記同期マネージャが前記リージョンデータをロックすることを要求するメソッドを含むこと、を特徴とする請求項20に記載の装置。
- 前記第2のプロセスは、前記第2のプロセスが前記第2のアドレス空間にある前記リージョンデータを変更しようとするときに、前記リージョンデータを前記同期マネージャがロックすることを要求するメソッドを含むこと、を特徴とする請求項20に記載の装置。
- 前記第1のプロセスは、前記リージョンに対して読み取りと書き込み動作を実行でき、前記装置は更にトランザクションへ複数の前記読み取りと書き込み動作をグループ化するメカニズムを含むこと、を特徴とする請求項20に記載の装置。
- 前記第1のプロセスは、トランザクションの全ての読み取りと書き込み動作の処理中に、前記リージョンデータを前記同期マネージャがロックすることを要求するメソッドを含むこと、を特徴とする請求項24に記載の装置。
- トランザクションの全ての読み取りと書き込み動作の処理中に永続的データベースへの復旧ログ・エントリーを定期的に書き込むロギング・システムを更に含むこと、を特徴とする請求項25に記載の装置。
- 前記第1のプロセスは、不揮発性記憶に前記リージョンデータのコピーを格納するためのストレージ・メカニズムを含むこと、を特徴とする請求項19に記載の装置。
- 前記不揮発性記憶がオブジェクト・ストアを含むこと、を特徴とする請求項27に記載の装置。
- 前記不揮発性記憶がファイル・システムを含むこと、を特徴とする請求項27に記載の装置。
- 前記同期メカニズムが分散メモリ・システムを含むこと、を特徴とする請求項19に記載の装置。
- 前記第1と第2のアドレス空間の双方が前記第1と第2のドキュメント・オブジェクトを操作するための同等なプログラム・コードを含むこと、を特徴とする請求項19に記載の装置。
- 前記第1と第2のストレージ・マネージャは、各々が前記第1と第2のプロセスを同期するために使用されるプロセス間同期オブジェクトを構築すること、を特徴とする請求項19に記載の装置。
- メモリ内のXML準拠ドキュメントを表現管理するための装置であって、前記XML準拠ドキュメントは複数の要素で構成され、前記要素は入れ子の関係に構成され、前記装置は
複数の要素オブジェクトを含み、各々の要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントと、
インデックス構造を含むタブ型データ構造へ前記要素オブジェクトをマッピングする集合マネージャと
を含むことを特徴とする装置。 - ユーザ・コマンドに応答して前記集合マネージャに対して前記タブ型データ構造用の更新のセットを伝搬するレコード・セット・エンジンを更に含むこと、を特徴とする請求項33に記載の装置。
- 前記集合マネージャは、前記更新のセットに応答して前記インデックス構造を更新する更新メカニズムを更に含むこと、を特徴とする請求項34に記載の装置。
- 前記集合マネージャは、更に前記タブ型データ構造に対して変更がなされたときに前記ユーザに通知する通知システムを含むこと、を特徴とする請求項35に記載の装置。
- 前記集合マネージャは、更に前記ユーザが前記タブ型データ構造内を移動できるようにするカーソルを作成する誘導メカニズムを含むこと、を特徴とする請求項36に記載の装置。
- メモリ内のXML準拠ドキュメントを表現管理するための方法であって、前記XML準拠ドキュメントは入れ子の関係に構成された複数の要素で構成され、前記方法は、
(a)複数の要素オブジェクトを含み各要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを作成するステップと、
(b)前記入れ子の関係になった前記要素を表現する階層に前記複数の要素オブジェクトを構成するステップと
を含むことを特徴とする方法。 - 少なくとも前記要素の幾つかはテキスト内容を含むことと、前記要素を表現する要素オブジェクトは前記テキスト内容を含むこと、を特徴とする請求項38に記載の方法。
- 少なくとも前記要素の幾つかは値を持った属性を含み、前記要素を表現する要素オブジェクトは前記属性値を含むこと、を特徴とする請求項38に記載の方法。
- 前記少なくとも幾つかの要素に含まれる前記属性値がタイプ分けされること、を特徴とする請求項40に記載の方法。
- 属性値を含む全ての要素オブジェクトへの一貫したポインタを含む属性インデックスを更に含むこと、を特徴とする請求項40に記載の方法。
- 前記ステップ(b)は、親要素オブジェクトでデータベース・ポインタを作成し、前記ポインタが前記親要素オブジェクトの子オブジェクトを指すようにして階層関係で親オブジェクトと子オブジェクトを構成すること、を特徴とする請求項38に記載の方法。
- (c)前記メモリ内にある前記データ・ドキュメントから参照されるスキーマ・ドキュメントを作成し、前記スキーマ・ドキュメントは要素オブジェクトと属性のパターン、ドキュメント・インデックスの有無と構造、前記データ・ドキュメントで一般に使用される文字列を記述する内容を含むステップを更に含むこと、を特徴とする請求項38に記載の方法。
- 前記ステップ(c)は、前記データ・ドキュメントのXML処理ステートメントにより参照される前記スキーマ・ドキュメントを作成すること、を特徴とする請求項44に記載の方法。
- (d)バイナリ・データを含むデータ・ドキュメントを表現するためのバイナリ・ドキュメント・オブジェクトを前記メモリ内に作成するステップを更に含むこと、を特徴とする請求項38に記載の方法。
- (e)前記データ・ドキュメントを表現するためのドキュメント・オブジェクトを前記メモリ内に作成するステップを更に含むこと、を特徴とする請求項38に記載の方法。
- 前記ドキュメント・オブジェクトは他のドキュメント・オブジェクトへのリンクを含み、前記他のドキュメント・オブジェクトは前記ドキュメント・オブジェクトのサブドキュメントになるようにすること、を特徴とする請求項47に記載の方法。
- 前記要素オブジェクトの各々は前記要素オブジェクトの各々を操作するためのメソッドを含む一様なインタフェースをエクスポートすること、を特徴とする請求項38に記載の方法。
- 複数の要素で構成され各々がタグにより識別され、前記要素が入れ子の関係に構成されているXML準拠ドキュメントの部分へメモリ内にあるプログラム・コードを結合するための方法であって、前記XML準拠ドキュメントは前記メモリ内に格納され、前記方法は
(a)複数の要素オブジェクトを含み、各々の要素オブジェクトは前記XML準拠ドキュメントの一部を表現し、前記複数の要素オブジェクトは前記要素の前記入れ子の関係を表わす階層に構成されてるデータ・ドキュメントをメモリ内に作成するステップと、
(b)前記メモリ内にある前記データ・ドキュメントにより参照され、プログラムIDコードへ前記要素の一つを識別するタグをマッピングするレジストリを含むスキーマ・ドキュメントを作成するステップと、
(c)前記プログラムIDコードを使って前記プログラム・コードを含むオブジェクトを構築するステップと
を含むことを特徴とする方法。 - 前記レジストリは、要素タグからプログラムIDコードへのマッピングを行なう2カラムのテーブルであること、を特徴とする請求項50に記載の方法。
- 前記ステップ(c)は、前記プログラムIDコードを取り出すメソッド呼び出しに応答して開始されること、を特徴とする請求項50に記載の方法。
- 前記ステップ(c)はCOMオブジェクト・マネージャにより実行され、前記プログラムIDコードはProgIDコードであること、を特徴とする請求項50に記載の方法。
- 前記COMマネージャは、前記ProgIDコードを使用して前記プログラム・コードを検索するステップと、前記検索したプログラム・コードを内蔵するオブジェクトを構築するステップとを実行すること、を特徴とする請求項53に記載の方法。
- 前記スキーマ・ドキュメントは、XML処理ステートメントにより前記データ・ドキュメントから参照されること、を特徴とする請求項50に記載の方法。
- メモリ内のXML準拠ドキュメントを表現管理するための方法であって、前記XML準拠ドキュメントは前記メモリ内に第1のアドレス空間を有する第1のプロセスと前記メモリ内に第2のアドレス空間を有する第2のプロセスとにより同時的に更新されるものとし、前記方法は、
(a)構築する前記第1のプロセスにより制御される第1のストレージ・マネージャを使用して、前記第1のアドレス空間にあるクラス・コードから、前記第1のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第1のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するステップと、
(b)構築する前記第2のプロセスにより制御される第2のストレージ・マネージャを使用して、前記第1のアドレス空間にある前記クラスコードと同一クラス・コードである前記第2のアドレス空間にあるクラス・コードから前記第2のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第2のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するステップと、
(c)前記第1のデータと前記第2のデータが連続的に等価であることを保証するステップと
を含むことを特徴とする方法。 - 前記第1のデータは前記第1のアドレス空間にマッピングされたリージョン内に格納され、前記第2のデータは前記第2のアドレス空間内にマッピングされた前記同一リージョン内に格納され、前記ステップ(c)は前記第1と第2のアドレス空間にマッピングされた前記リージョンデータを連続的に等価にすることを含むこと、を特徴とする請求項56に記載の方法。
- 前記ステップ(c)は前記第2のアドレス空間が前記リージョン・データの最新のコピーを保有していない場合、前記第1のアドレス空間から前記リージョンデータのコピーを要求することを含むこと、を特徴とする請求項57に記載の方法。
- 前記ステップ(c)は前記第1のプロセスが前記第1のアドレス空間にある前記リージョンデータを変更しようとする場合に、前記リージョンデータをロックすることを含むこと、を特徴とする請求項57に記載の方法。
- 前記ステップ(c)は、前記第2のプロセスが前記第2のアドレス空間にある前記リージョンデータを変更しようとするときに、前記リージョンデータをロックすることを含むこと、を特徴とする請求項57に記載の方法。
- 前記第1のプロセスは、前記リージョンに対して読み取りと書き込み動作を実行でき、前記方法は更に(d)トランザクションへ複数の前記読み取りと書き込み動作をグループ化するステップを含むことを特徴とする請求項57に記載の方法。
- 前記ステップ(c)は、トランザクションの全ての読み取りと書き込み動作の処理中に前記リージョンデータをロックすることを含むこと、を特徴とする請求項61に記載の方法。
- 前記ステップ(c)は、トランザクションの全ての読み取りと書き込み動作の処理中に、永続的データベースへの復旧ログ・エントリーを定期的に書き込むことを更に含むこと、を特徴とする請求項62に記載の方法。
- (e)第1のプロセスの制御下で不揮発性記憶に前記リージョンデータのコピーを格納するステップを更に含むこと、を特徴とする請求項56に記載の方法。
- 前記不揮発性記憶がオブジェクト・ストアを含むこと、を特徴とする請求項64に記載の方法。
- 前記不揮発性記憶がファイル・システムを含むこと、を特徴とする請求項64に記載の方法。
- 前記ステップ(c)が分散メモリ・システムによって実行されること、を特徴とする請求項56に記載の方法。
- (f)前記第1と第2のアドレス空間の双方にある同等なプログラム・コードで前記第1と第2のドキュメント・オブジェクトを操作するステップを更に含むこと、を特徴とする請求項56に記載の方法。
- (g)前記第1と第2のプロセスを同期するために使用されるプロセス間同期オブジェクトを構築するステップを更に含むこと、を特徴とする請求項56に記載の方法。
- メモリ内のXML準拠ドキュメントを表現管理するための方法であって、前記XML準拠ドキュメントは複数の要素で構成され、前記要素は入れ子の関係に構成され、前記方法は
(a)複数の要素オブジェクトを含み、各々の要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを前記メモリ内に作成するステップと、
(b)インデックス構造を含むタブ型データ構造へ前記要素オブジェクトをマッピングするステップと
を含むことを特徴とする方法。 - (c)ユーザ・コマンドに応答して前記集合マネージャに対して前記タブ型データ構造用の更新のセットを伝搬するステップを更に含むこと、を特徴とする請求項70に記載の方法。
- (d)更新のセットに応答して前記インデックス構造を更新するステップを更に含むこと、を特徴とする請求項71に記載の方法。
- (e)前記タブ型データ構造に対して変更がなされたときに前記ユーザに通知するステップを更に含むこと、を特徴とする請求項72に記載の方法。
- (f)前記ユーザが前記タブ型データ構造内を移動できるようにするカーソルを作成するステップを更に含むこと、を特徴とする請求項73に記載の方法。
- メモリ内のXML準拠ドキュメントを表現管理するためのコンピュータ・プログラム製品であって、前記XML準拠ドキュメントは入れ子の関係に構成された複数の要素で構成され、前記コンピュータ・プログラム製品はコンピュータで使用可能な媒体を含み、前記媒体はコンピュータで読み取り可能なプログラム・コードをその上に有し、
複数の要素オブジェクトを含み各要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを作成するプログラム・コードと、
前記入れ子の関係になった前記要素を表現する階層に前記複数の要素オブジェクトを構成するプログラム・コードと
を含むことを特徴とするコンピュータ・プログラム製品。 - 複数の要素で構成され各々がタグにより識別され、前記要素が入れ子の関係に構成されていて、XML準拠ドキュメントの部分へメモリ内にあるプログラム・コードを結合するためのコンピュータ・プログラム製品であって、前記XML準拠ドキュメントは前記メモリ内に格納され、前記コンピュータ・プログラム製品はコンピュータで使用可能な媒体を含み、前記媒体はコンピュータで読み取り可能なプログラム・コードをその上に有し、
複数の要素オブジェクトを含み、各々の要素オブジェクトは前記XML準拠ドキュメントの一部を表現し、前記複数の要素オブジェクトは前記要素の前記入れ子の関係を表わす階層に構成されてるデータ・ドキュメントをメモリ内に作成するプログラム・コードと、
前記メモリ内にある前記データ・ドキュメントにより参照され、プログラムIDコードへ前記要素の一つを識別するタグをマッピングするレジストリを含むスキーマ・ドキュメントを作成するプログラム・コードと、
前記プログラムIDコードを使って前記プログラム・コードを含むオブジェクトを構築するプログラム・コードと、
を含むことを特徴とするコンピュータ・プログラム製品。 - メモリ内のXML準拠ドキュメントを表現管理するための方法であって、前記XML準拠ドキュメントは前記メモリ内に第1のアドレス空間を有する第1のプロセスと前記メモリ内に第2のアドレス空間を有する第2のプロセスとにより同時的に更新されるものとし、前記コンピュータ・プログラム製品はコンピュータで使用可能な媒体を含み、前記媒体はコンピュータで読み取り可能なプログラム・コードをその上に有し、
構築する前記第1のプロセスにより制御される第1のストレージ・マネージャを使用して、前記第1のアドレス空間にあるクラス・コードから、前記第1のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第1のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するプログラム・コードと、
構築する前記第2のプロセスにより制御される第2のストレージ・マネージャを使用して、前記第1のアドレス空間にある前記クラスコードと同一クラス・コードである前記第2のアドレス空間にあるクラス・コードから前記第2のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第2のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するプログラム・コードと、
前記第1のデータと前記第2のデータが連続的に等価であることを保証するプログラム・コードと、
を含むことを特徴とするコンピュータ・プログラム製品。 - メモリ内のXML準拠ドキュメントを表現管理するためのコンピュータ・プログラム製品であって、前記XML準拠ドキュメントは複数の要素で構成され、前記要素は入れ子の関係に構成され、前記コンピュータ・プログラム製品はコンピュータで使用可能な媒体を含み、前記媒体はコンピュータで読み取り可能なプログラム・コードをその上に有し、
複数の要素オブジェクトを含み、各々の要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを前記メモリ内に作成するプログラム・コードと、
インデックス構造を含むタブ型データ構造へ前記要素オブジェクトをマッピングするプログラム・コードと、
を含むことを特徴とするコンピュータ・プログラム製品。 - メモリ内のXML準拠ドキュメントを表現管理するため搬送波上に実現されるコンピュータ・データ信号であって、前記XML準拠ドキュメントは入れ子の関係に構成された複数の要素で構成され、前記コンピュータ・データ信号は
複数の要素オブジェクトを含み各要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを作成するプログラム・コードと、
前記入れ子の関係になった前記要素を表現する階層に前記複数の要素オブジェクトを構成するプログラム・コードと、
を含むことを特徴とするコンピュータ・データ信号。 - 複数の要素で構成され各々がタグにより識別され、前記要素が入れ子の関係に構成されているXML準拠ドキュメントの部分へメモリ内にあるプログラム・コードを結合するための搬送波上に実現されるコンピュータ・データ信号であって、前記XML準拠ドキュメントは前記メモリ内に格納され、前記コンピュータ・データ信号は
複数の要素オブジェクトを含み、各々の要素オブジェクトは前記XML準拠ドキュメントの一部を表現し、前記複数の要素オブジェクトは前記要素の前記入れ子の関係を表わす階層に構成されてるデータ・ドキュメントをメモリ内に作成するためのプログラム・コードと、
前記メモリ内にある前記データ・ドキュメントにより参照され、プログラムIDコードへ前記要素の一つを識別するタグをマッピングするレジストリを含むスキーマ・ドキュメントを作成するプログラム・コードと、
前記プログラムIDコードを使って前記プログラム・コードを含むオブジェクトを構築するプログラム・コードと、
を含むことを特徴とするコンピュータ・データ信号。 - メモリ内のXML準拠ドキュメントを表現管理するため搬送波上に実現されるコンピュータ・データ信号であって、前記XML準拠ドキュメントは前記メモリ内に第1のアドレス空間を有する第1のプロセスと前記メモリ内に第2のアドレス空間を有する第2のプロセスとにより同時的に更新されるものとし、前記コンピュータ・データ信号は
構築する前記第1のプロセスにより制御される第1のストレージ・マネージャを使用して、前記第1のアドレス空間にあるクラス・コードから、前記第1のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第1のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するプログラム・コードと、
構築する前記第2のプロセスにより制御される第2のストレージ・マネージャを使用して、前記第1のアドレス空間にある前記クラスコードと同一クラス・コードである前記第2のアドレス空間にあるクラス・コードから前記第2のアドレス空間に格納された前記XML準拠ドキュメントの一部を表現する第2のデータを含む少なくとも一つのドキュメント・オブジェクトを構成するプログラム・コードと、
前記第1のデータと前記第2のデータが連続的に等価であることを保証するプログラム・コードと、
を含むことを特徴とするコンピュータ・データ信号。 - メモリ内のXML準拠ドキュメントを表現管理するためのコンピュータ・データ信号であって、前記XML準拠ドキュメントは複数の要素で構成され、前記要素は入れ子の関係に構成され、前記コンピュータ・データ信号は
複数の要素オブジェクトを含み、各々の要素オブジェクトが前記XML準拠ドキュメントの一部を表現するデータ・ドキュメントを前記メモリ内に作成するプログラム・コードと、
インデックス構造を含むタブ型データ構造へ前記要素オブジェクトをマッピングするプログラム・コードと、
を含むことを特徴とするコンピュータ・データ信号。
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)
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)
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)
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 |
-
2000
- 2000-06-06 US US09/588,195 patent/US6941510B1/en not_active Expired - Lifetime
-
2001
- 2001-06-01 WO PCT/US2001/017726 patent/WO2001095155A2/en active Application Filing
- 2001-06-01 CA CA2412318A patent/CA2412318C/en not_active Expired - Lifetime
- 2001-06-01 AU AU2001265288A patent/AU2001265288A1/en not_active Abandoned
- 2001-06-01 JP JP2002502637A patent/JP5535420B2/ja not_active Expired - Fee Related
- 2001-06-01 IL IL15326501A patent/IL153265A0/xx unknown
- 2001-06-01 EP EP01939811.4A patent/EP1366431B1/en not_active Expired - Lifetime
- 2001-06-01 CA CA2713439A patent/CA2713439C/en not_active Expired - Lifetime
- 2001-06-01 KR KR1020027016623A patent/KR100836350B1/ko active IP Right Grant
-
2002
- 2002-12-04 IL IL153265A patent/IL153265A/en not_active IP Right Cessation
-
2005
- 2005-03-18 US US11/083,668 patent/US7721194B2/en not_active Expired - Fee Related
- 2005-03-28 US US11/091,306 patent/US7581172B2/en not_active Expired - Fee Related
Patent Citations (5)
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)
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 |