JP4167359B2 - データ管理システム及びデータ管理方法 - Google Patents

データ管理システム及びデータ管理方法 Download PDF

Info

Publication number
JP4167359B2
JP4167359B2 JP27826199A JP27826199A JP4167359B2 JP 4167359 B2 JP4167359 B2 JP 4167359B2 JP 27826199 A JP27826199 A JP 27826199A JP 27826199 A JP27826199 A JP 27826199A JP 4167359 B2 JP4167359 B2 JP 4167359B2
Authority
JP
Japan
Prior art keywords
data
module
operation module
information
storage system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP27826199A
Other languages
English (en)
Other versions
JP2001101042A (ja
Inventor
達徳 金井
俊樹 岐津
誠司 前田
浩 矢尾
修 鳥井
浩邦 矢野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP27826199A priority Critical patent/JP4167359B2/ja
Priority to TW089118906A priority patent/TW486634B/zh
Priority to DE60038933T priority patent/DE60038933D1/de
Priority to EP00308108A priority patent/EP1091295B1/en
Priority to US09/666,128 priority patent/US6714946B1/en
Priority to KR10-2000-0057358A priority patent/KR100405745B1/ko
Priority to CNB001292854A priority patent/CN1203430C/zh
Publication of JP2001101042A publication Critical patent/JP2001101042A/ja
Priority to US10/750,889 priority patent/US20040139122A1/en
Application granted granted Critical
Publication of JP4167359B2 publication Critical patent/JP4167359B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、電子計算機においてデータの管理や操作の機能を提供するデータ管理システム及びデータ管理方法に関する。
【0002】
【従来の技術】
電子計算機で扱うデータは、通常、ファイルシステムやデータベース管理システムを用いて管理する。
【0003】
ファイルシステムは、バイト列という非常に基本的なデータを、名前をつけて管理する。ファイルシステムの管理するバイト列のデータをファイルと呼ぶ。アプリケーションは、ファイルに対して、その中にデータを新しく書き込んだり、既に書き込まれているデータを読み出したりする、基本的な操作が可能である。
【0004】
一方、データベース管理システムは、特定のデータモデルを前提にすることで、そのデータモデルに特化した高機能な操作を提供している。最もよく用いられているのは、関係データモデルに基づいた関係データベース管理システムである。関係データベース管理システムでは、すべてのデータをテーブルで表現して管理し、キーを指定してテーブルの中に記憶されているデータを検索したり、JOINと呼ぶ操作によって複数のテーブル中の関連するデータを検索するなどの操作を提供している。アプリケーションプログラムは、必要なデータをテーブルの形で定義することができれば、関係データベース管理システムの提供する様々な操作機能を使って処理を行うことができる。関係データモデルの他にも、ネットワーク型データモデルや、オブジェクトデータモデルなどを用いたデータベース管理システムがある。
【0005】
データベース管理システムを用いてデータを管理する場合、データの管理および操作は、アプリケーションプログラムから切り離され、データベース管理システムの側で行う。すなわち、データの独立性が実現されるため、1つのデータを複数のアプリケーション間で共有して利用しやすくなる。また、トランザクションとしての処理の一貫性の管理や、複数のアプリケーションで共有して処理する場合の排他制御、さらには障害発生時のリカバリ処理などの機能も提供している。
【0006】
【発明が解決しようとする課題】
上記したようにファイルシステムは、バイト列という基本的で柔軟性を備えたデータモデルを提供している。しかし、バイト列は概念的には非常に低レベルのデータモデルであり、実際に計算機によるさまざまな問題解決に用いるためには、アプリケーションプログラムによって、バイト列の上にそのアプリケーション独自のデータの管理構造と操作を定義して使用する必要がある。そのためデータ独立性が低く、複数のアプリケーション間でデータを共有することが難しい。
【0007】
一方、データベース管理システムは、概念的に高いレベルの特定のデータモデルを定めることで、さまざまな管理や操作の機能を提供している。データ独立性が高いので、アプリケーション間のデータの共有も容易である。しかし、データベース管理システムの提供するデータモデルにマッチしたアプリケーションは作りやすく性能も出しやすいが、逆にマッチしないアプリケーションは作りにくく性能も出しにくい。データの柔軟性という観点からはファイルシステムほどの自由度は無く、また、新しいデータやデータモデルの管理・操作機能の拡張性にも欠ける。
【0008】
本発明は、上記事情を考慮してなされたもので、柔軟性と独立性と拡張性に優れたデータ管理システム及びデータ管理方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
本発明は、データストレージシステム(バイナリデータを出力する一般のファイルシステム、例えばハードディスクから読み出したデータをそのまま出力するシステム、バイナリデータを例えばXMLデータに変換して出力する機能を加えた特殊なファイルシステム、等)に記憶されたデータに対する操作をアプリケーションプログラムの処理に供するデータ管理システムであって、データを操作するための、それぞれ操作内容の異なる複数のデータ操作モジュールを記憶する記憶手段と、前記データストレージシステムに記憶されたデータごとに、どの前記データ操作モジュールをどのような順番で用いて当該データに操作を加えるべきかを特定する情報を、当該データに関連付けて前記データストレージシステムに記録する情報記録手段と、前記アプリケーションプログラムが前記データストレージシステムに記憶されたデータに対する操作を行う際に、当該データに関連付けて前記データストレージシステムに記録されている前記情報を参照して、前記複数のデータ操作モジュールの中から、該情報により特定される一つ以上のデータ操作モジュールを選択し、選択されたデータ操作モジュールを該情報により特定される順番で用いて当該データに操作を加え操作手段とを備え、前記情報記録手段は、前記アプリケーションプログラムが前記データストレージシステムに新しいデータを作成する際に、前記アプリケーションプログラムにより指定された当該新しいデータのカテゴリに基づいて、当該新しいデータに係る前記情報を作成し、作成された情報を当該新しいデータに関連付けて前記データストレージシステムに記録することを特徴とする。
【0010】
本発明によれば、あるデータストレージシステムの提供するあるデータモデル、例えば、ファイルシステムの提供するバイナリデータの上に、必要なデータ操作モジュールを組み合わせることで、アプリケーションプログラムの必要とする任意のデータモデル(例えば、データストレージシステムがファイルシステムの場合における、XMLドキュメントや、連想記憶など)を使ったデータ管理や操作を可能にすることで、柔軟なデータ管理機能を提供することができる。
【0011】
また、本発明によれば、アプリケーションプログラムとデータ操作モジュールとが分離しているので、従来のファイルシステムを用いる場合のようにデータ操作に必要な処理の記述をアプリケーションプログラム内に記述する必要が無い、という利点がある。このため、データを複数のアプリケーションプログラムで共有する場合においても、データ操作に必要な処理はデータ操作モジュールにあるので共有をしやすい。また、アプリケーションプログラムを変更することなくデータ操作モジュールを入れ替えたり機能を拡張することができる。つまり、高度なデータ独立性を実現することができる。
【0012】
また、本発明によれば、新しい機能を持つデータ操作モジュールを追加したり、既存のデータ操作モジュールの機能をアプリケーションとは独立に強化したり、あるいは同じカテゴリのデータを扱うデータ操作モジュールでも、さまざまな特色のあるデータ操作モジュールを提供するなどのバリエーションを追加したりするような、拡張性に優れたデータ管理機能を提供することができる。
【0023】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
【0024】
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【0025】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【0026】
本実施形態では、データ管理システムにおいて、データにプロパティを持たせて、階層的な名前空間でデータを管理する場合を例にとって説明する。
【0027】
このようなデータ管理の方式としては、WebDAVを用いることができるが、これに限るものではない。WebDAVの仕様は「HTTP Extensions for Distributed Authoring -- WEBDAV」(RFC2518)に開示されている。
【0028】
本実施形態のデータ管理システムでは、データに階層的な名前を付けて管理するために、その階層構造をディレクトリによって管理する。すなわち、ディレクトリは、その下位の階層に、他のディレクトリとデータを任意数持つことができる。例えば、図1に示した階層構造の具体例においては、3つのデータ「data1」、「data2」、「data3」と3つのディレクトリ「dir1」、「dir2」、「dir3」が示されており、3つのデータはそれぞれ「/dir1/dir2/data1」、「/dir1/dir2/data2」、「/dir1/dir3/data3」といった名前で管理される。なお、上記のWebDAVでは、データやディレクトリはリソースと呼ばれ、ディレクトリはコレクションとも呼ばれる。
【0029】
本実施形態のデータ管理システムの管理するデータは、ファイルシステムのようにバイナリデータであることもあれば、XMLドキュメントのような構造を持つデータである場合もあるし、キーを与えて値をアクセスするデータベース的なデータである場合もある。その他にも、さまざまな拡張したデータモデルに基づいたデータを管理することができる。なお、XMLに関しては「Extensible Markup Language (XML) 1.0」(WorldWide Web Consortium)に開示されている。
【0030】
図1に示すように、それぞれのディレクトリ(201)やデータ(202)は、プロパティ(203)と呼ぶ属性名と属性値との対の集合を持っている。プロパティは、そのディレクトリまたはファイルの作成日、アクセス権限、所有者など、様々な情報を記録するために用いる。
【0031】
本実施形態のデータ管理システムでは、ディレクトリやプロパティもデータとして管理している。例えば、図1の具体例におけるデータの管理構造は、実装面から見ると、図2に示すように、ディレクトリの実体のデータ(例えば302や304)中には、その子供に当たるディレクトリやデータのプロパティ(例えば303や307)を指し示す情報を持ち、さらに、プロパティのデータ(例えば303や307)中には、それに対応するディレクトリまたはデータの実体(例えば304や308)を指し示す情報を持つように管理している。つまり、ディレクトリを表現するデータモデルやプロパティを表現するデータモデルを持っていると言うことができる。
【0032】
図3に、本実施形態に係るデータ管理システムの一般的な構成例を示す。
【0033】
なお、本実施形態では、データストレージシステムとしてファイルシステムを用いた場合について説明する。図中の3がファイルシステムであり、例えばハードディスク31等の安定記憶装置内のファイルを管理する。なお、安定記憶装置とは、例えば、ハードディスク等の、電源を切っても記憶した内容が消えない記憶装置を指す。
【0034】
データ管理システム1は、概略的には、アプリケーションプログラム2からの要求を受けファイルシステム3の管理するファイルの操作を行う(例えば、アプリケーションプログラム2に対して、ファイルシステム3内のデータのデータモデル変換(例えばファイルに記録されたバイナリデータからXMLへの変換)の提供やあるデータモデルにおける操作機能の提供等を行う)。
【0035】
図3に示されるように、データ管理システム1は、リソースマネージャ11、n(nは1以上の整数)種類のデータ操作モジュールマネージャ12−1〜12−n、データ操作モジュールマネージャ12−i(i=1〜n)に対応するn種類のデータ操作モジュール112−iの3種類の構成要素からなる。
【0036】
なお、図3において、点線で囲った内部に存在する矩形は同一の機能のデータ操作モジュールを表す(後に示す図4においても同様である)。例えば、図3において、第1番目のデータ操作モジュールマネージャ12−1に対応して点線で囲われた内部に記述されている3つの矩形は全て同一の機能のデータ操作モジュール112−1を表す(他のデータ操作モジュール(112−2や112−3)についても同様である)。
【0037】
データ操作モジュール112−iは、そのユーザ(アプリケーションプログラム2やリソースマネージャ11)に対して、何らかのデータの管理や操作の機能を提供するものである。例えば、後で説明するように、バイナリファイルをXMLドキュメントとして管理・操作できる機能を提供したり、XMLドキュメントの上にキーと値のペアによる連想記憶機能を提供したりする。すなわち、下位のデータあるいはデータモデルを、別の種類のデータあるいはデータモデルとして見せ、同時にその別の種類としてのデータあるいはデータモデルに対する管理や操作の機能を提供することが、データ操作モジュールの役割である。
【0038】
本実施形態のデータ管理システム1において、データ操作モジュール112−iは、1個以上で組になって、1つのデータに対する管理や操作の機能を、アプリケーションプログラム2やリソースマネージャ11に提供する。すなわち、アプリケーションプログラム2やリソースマネージャ11がデータ管理システム1を利用してファイルシステム3内のデータやディレクトリやプロパティに対して処理を行う場合には、そのデータモデルや操作内容等に応じて、図3に例示されるように、1以上のデータ操作モジュール112−iが組み合わされて使用される。
【0039】
なお、本実施形態では、図7、9、12、15、18、25、28に示されるように、最下位にあたるデータ操作モジュールから、アプリケーションプログラム2等の要求に応じた階層まで、階層的にデータ操作モジュールを組み合わせて使用する場合を例にとって説明する。
【0040】
また、データ操作モジュール112−iは、操作対象のデータ毎に、その実体が存在する。従って、複数の操作主体(アプリケーションプログラム2やリソースマネージャ11)が同時に動作した場合、図3に例示されるように、実際には同じ機能のデータ操作モジュール112−iが複数同時に存在する(もしくは使用される)ことも、1つのみ存在する(もしくは使用される)ことも、また1つも存在しない(もしくは使用されない)こともあり得る。
【0041】
同じ機能のデータ操作モジュール112−iは、対応する1つのデータ操作モジュールマネージャ12−iによって管理される。上記のように、それぞれのデータ操作モジュールマネージャ12−iに対して、それが管理するデータ操作モジュール112−iは複数存在し得る(0または1のこともある)。図3の例では、データ操作モジュールマネージャ(1)は3個のデータ操作モジュール(1)を管理しており、データ操作モジュールマネージャ(2)は5個のデータ操作モジュール(2)を管理しており、データ操作モジュールマネージャ(n)は7個のデータ操作モジュール(n)を管理している。
【0042】
また、本実施形態では、データ操作モジュールマネージャ12−iとデータ操作モジュール112−iとは、オブジェクト指向でいうところのクラスとインスタンスとの関係に相当するものである。実際にオブジェクト指向によってデータ操作モジュールマネージャ12−iとデータ操作モジュール112−iとを実現する場合には、データ操作モジュールマネージャ12−iのみ作成し、データ操作モジュール112−iは動作中に必要に応じて生成・消滅してよいことになる。
【0043】
リソースマネージャ11は、アプリケーションプログラム2からのデータ操作要求を受けて、必要なデータ操作モジュール112−iを組み合わせて、所望の操作ができるようにセットアップする働きを持つ。リソースマネージャ11の中には、現在使用中のデータの名前とデータ操作モジュールとの対応を管理する名前管理表22と、データ操作モジュールを組み合わせるときに使うデータ操作モジュール管理表21を持っている。
【0044】
次に、本データ管理システムをより具体的に説明する。
【0045】
図4に、本データ管理システムのより具体的な構成例を示す。
【0046】
このデータ管理システム1には、ファイルシステムモジュールマネージャ12、XMLモジュールマネージャ13、Key−Valueモジュールマネージャ14、ディレクトリモジュールマネージャ15、プロパティモジュールマネージャ16の5種類のデータ操作モジュールマネージャが存在する。また、それに対応して、5種類のデータ操作モジュール112〜116が適宜使用される。なお、図4におけるデータ操作モジュールの存在状況(使用状況)はある時点での一例であり、データ操作主体によるデータ操作状況に応じて変化するものである。また、図4において、各モジュールに対する参照番号のうち112〜114については、その一部の記述を省いてある。
【0047】
図5に、リソースマネージャ11の中にあるデータ操作モジュール管理表21の持つ構造の一例を示す。
【0048】
データ操作モジュール管理表21には、データ操作モジュールの名前と、そのデータ操作モジュールを管理するデータ操作モジュールマネージャへのポインタの対応が記録される。
【0049】
図5の例では、データ操作モジュールの名前は、XMLのエレメントで指定されている。<propm/>や<xmlm/>などがデータ操作モジュールの名前である。このデータ操作モジュールの名前は、それぞれのデータをアクセスするために必要になるデータ操作モジュールの「組み合わせ方」を記述するときに用いる。
【0050】
図6に、リソースマネージャ11により管理される名前管理表22の持つ構造の一例を示す。
【0051】
名前管理表22には、現在使用しているディレクトリやデータの名前と、そのプロパティのプロパティモジュールへのポインタと、ディレクトリの場合におけるそのディレクトリのディレクトリモジュールへのポインタとの対応が記録される。なお、後で説明するように、プロパティモジュール116は、プロパティを表現するデータ操作モジュールであり、ディレクトリモジュール115は、ディレクトリを表現するデータ操作モジュールである。
【0052】
図6の例では、「/dir1」や「/dir1/dir2/data1」が名前に相当する。また、図6では、プロパティモジュールへのポインタの欄やディレクトリモジュールへのポインタの欄が空になっているが、実際はここに該当するプロパティモジュールへのポインタやディレクトリモジュールへのポインタが入る。
【0053】
以下では、図4の構成例におけるデータ操作モジュールの機能について説明する。
【0054】
第1のデータ操作モジュールは、ファイルシステムモジュールである。
【0055】
ファイルシステムモジュール112は、データ管理システム1の下にあるファイルシステム3を抽象化する働きを持つデータ操作モジュールである。ファイルシステム3中に記録されているバイナリデータに対して読み書きの操作を提供するのがその主な働きである。
【0056】
ファイルシステムモジュール112がバイナリデータに対して提供する操作の例としては、次のようなものがある。
(1)READ:指定したオフセットから指定した長さのデータを読み出す (2)WRITE:指定したオフセットから指定した長さのデータを書き込むファイルシステムモジュール112を使ってバイナリデータにアクセスする場合は、通常、図7に示すようにファイルシステムモジュール112を単独で使用する。この例では、下位のファイルシステム3中に記録されている「f2468」という名前のファイルの内容を、バイナリデータとして上位のアプリケーションプログラム2に見せている。
【0057】
図7のようなバイナリデータをアクセスする場合の「データ操作モジュールの組み合わせ方」は例えば図8のように記述する。ここでは、ファイルシステムモジュールを表す<fsm>というエレメントの下に、下位のファイルシステム3内での管理情報を持つ<file>エレメントを持ち、その下には、<name>f2468</name>で実際の管理名を持っている。
【0058】
このような「データ操作モジュールの組み合わせ方の記述」は、リソースマネージャ11が、それぞれのデータのプロパティの中あるいはディレクトリの実体の中に記述して管理している。
【0059】
第2のデータ操作モジュールは、XMLモジュールである。
【0060】
XMLモジュール113は、その下にあるファイルシステムモジュール112の提供するバイナリデータ上に、XMLドキュメントの木構造データを展開して記憶し、それへの操作、つまり木構造のドキュメントの読み出しや新しい部分木の追加や削除などを可能にする。
【0061】
このとき、XMLドキュメントの木構造データを操作するインタフェースとしては、例えば「Document Object Model (DOM) Level 1 Specification」(World WideWeb Consortium)に開示されているDOMインタフェースを使うことができる。また、それ以外の独自のインタフェースでも構わない。
【0062】
XMLモジュール113がXMLドキュメントに対して提供する操作の例としては、次のようなものがある。
(1)CHILD:最初の子供のエレメントあるいはテキストを取り出す
(2)NEXT:同じ親を持つエレメントあるいはテキストで次のものを取り出す
(3)PREV:同じ親を持つエレメントあるいはテキストで前のものを取り出す
(4)PARENT:親のエレメントを取り出す
(5)REMOVE:指定したエレメントあるいはテキストを削除する
(6)ADDFIRST:新しいエレメントあるいはテキストを最初の子供として追加する
(7)ADDLAST:新しいエレメントあるいはテキストを最後の子供として追加する
XMLモジュール113を使ってXMLドキュメントのデータをアクセスする場合、通常、図9に示すようにXMLモジュール113とファイルシステムモジュール112を組み合わせて用いる。
【0063】
このときの「データ操作モジュールの組み合わせ方」は例えば図10のように記述する。ここでは、XMLモジュールを示す<xmlm>エレメントの下に、その下に来るファイルシステムモジュールの情報を持っている。
【0064】
第3のデータ操作モジュールは、Key−Valueモジュールである。
【0065】
Key−Valueモジュール114は、キーと値の組を複数記憶し、その集合に対してキーを指定した連想アクセスを可能にするデータ操作モジュールである。本実施形態では、Key−Valueモジュール114は、管理するキーと値の組の集合を、XMLドキュメントの形で保存する。そのため、XMLモジュール113の提供するXMLドキュメントの上に、連想記憶機能を提供する。
【0066】
Key−Valueモジュール114が提供する操作の例としては、次のようなものがある。
(1)FIND:指定したキーの値を取り出す
(2)ADD:指定したキーと値の組を登録する
(3)REMOVE:指定したキーとその値の組を削除する
Key−Valueモジュール114は、例えば、図11に示すような形式で、キーと値の組の集合をXMLドキュメントとして管理する。図11では、<entry>エレメントが1つのキーと値の組を持ち、その下の<key>エレメントがキーを、<value>エレメントが値を持っている。この例では、キー「大阪」の値が「たこ焼き」であり、キー「博多」の値が「からし明太子」である状態を記録している。
【0067】
図11の例では、キーと値の組を順に並べて管理しているが、広く知られた2分木やB−TREEなどのデータ構造を用いることで、高速な検索が可能になるように実装することもできる。このようなKey−Valueモジュール114の内部の実装を、Key−Valueモジュール114を使うアプリケーションプログラム2や他のデータ操作モジュールに影響を及ぼさずに変更できるのも、本発明の特長の一つである。
【0068】
Key−Valueモジュール114を使ってデータをアクセスする場合、通常、図12に示すように、Key−Valueモジュール114とXMLモジュール113とファイルシステムモジュール112を組み合わせて用いる。
【0069】
このときの「データ操作モジュールの組み合わせ方」は例えば図13のように記述する。ここでは、Key−Valueモジュールを示す<kvm>エレメントの下に、その下に来るXMLモジュールの情報を持ち、さらにその下にファイルシステムモジュールの情報を持っている。
【0070】
第4のデータ操作モジュールは、プロパティモジュールである。
【0071】
プロパティモジュール116は、データ管理システム1(リソースマネージャ11)が、内部の管理のために用いる。本実施形態では、データ管理システム1は、プロパティの属性名と属性値の組を、Key−Valueモジュール114の提供する連想記憶機能の上に管理する。そして、プロパティモジュール116を使って、例えば次のようなプロパティの操作を提供する。
(1)FINDPROP:指定した属性名の値を検索する
(2)ADDPROP:指定した属性名と属性値の組を追加する
(3)REMPROP:指定した属性名とその属性値の組を削除する
図14に、プロパティモジュール116がプロパティの属性名と属性値の組をKey−Valueモジュール114を使ってXMLドキュメントとして管理している場合のXMLドキュメントの例を示す。図14は、図1に示す「data1」というデータのプロパティの例である。
【0072】
図14において、<key>エレメントはプロパティの属性名を示しており、<value>エレメントはプロパティの属性値を示している。ここでは、データの作成日時を示す「creationdate」、データの所有者を示す「owner」、このデータの実体をアクセスするときに必要なデータ操作モジュールの組み合わせ方を記述する「module」の3つの属性がある。それぞれに対応する<value>エレメントが、その属性値である。
【0073】
ここで、「module」属性が、本実施形態のデータ管理システム1において、データのプロパティからデータの実体を結びつける役割を持っている。後で述べるように、このプロパティを持つデータの実体をアプリケーションプログラム2がオープンしてアクセスする場合には、この「module」属性に書かれた情報をもとに、リソースマネージャ11が必要なデータ操作モジュールを選択して組み合わせる。
【0074】
プロパティモジュール116を使ってデータをアクセスする場合、通常、図15に示すように、プロパティモジュール116とKey−Valueモジュール114とXMLモジュール113とファイルシステムモジュール112を組み合わせて用いる。
【0075】
このときの「データ操作モジュールの組み合わせ方」は例えば図16のように記述する。ここでは、プロパティモジュールを示す<propm>エレメントの下に、Key−Valueモジュールの情報を持ち、その下にXMLモジュールの情報を持ち、さらにその下にファイルシステムモジュールの情報を持っている。
【0076】
第5のデータ操作モジュールは、ディレクトリモジュールである。
【0077】
ディレクトリモジュール115は、プロパティモジュール116と同様、データ管理システム1(リソースマネージャ11)が、内部の管理のために用いる。データ管理システム1は、ディレクトリを、その下に存在するディレクトリ名あるいはデータ名をキーとし、それらのプロパティをアクセスするのに必要なデータ操作モジュールの組み合わせ方の情報を値にして、その対応関係として管理している。本実施形態では、その対応関係は、Key−Valueモジュール114の提供する連想記憶機能の上に管理する。そして、ディレクトリモジュール115を使って、例えば以下のようなディレクトリの操作を提供する。
(1)LOOKUP:指定した名前のデータのプロパティデータを探索する (2)MKDIR:新しいディレクトリを子供として追加する
(3)MKDATA:新しいデータを子供として追加する
(4)RMDIR:ディレクトリの削除する
(5)RMDATA:データの削除する
図17に、ディレクトリモジュール115がその下に存在するディレクトリ名あるいはデータ名と、それらのプロパティをアクセスするのに必要なデータ操作モジュールの組み合わせ方の情報の組を、Key−Valueモジュール114を使ってXMLドキュメントとして管理する場合のXMLドキュメントの例を示す。図17は、図1に示す「dir2」というディレクトリの実体の例である。図17において、<key>エレメントは子供に当たるディレクトリあるいはデータの名前を示しており、<value>エレメントはそれらのプロパティのデータをアクセスするための「データ操作モジュールの組み合わせ方」の情報を示している。ここでは、データ「data1」と「data2」2つのデータを子供として管理している。
【0078】
アプリケーションプログラム2が「data1」のデータのアクセスを要求してきた場合、リソースマネージャ11は、まず、図17に示すディレクトリ「dir2」の実体から、<key>が「data1」であるエントリの<value>を検索し、そこに書かれている記述をもとに、「data1」のプロパティのデータをアクセスするためのデータ操作モジュールを選択して組み合わせる。そうすると、図14に示したような情報を管理するプロパティモジュール116が作られるので、それを名前管理表22に記録するとともに、プロパティのデータの中から「module」属性の値を取り出し、この情報を使って「data1」の実体に当たるXMLドキュメントのデータをアクセスするために必要なデータ操作モジュールを選択して組み合わせ、その結果作成されたXMLモジュール113のポインタをアプリケーションプログラム2に渡す。
【0079】
ディレクトリモジュール115を使ってデータをアクセスする場合、通常、図18に示すように、ディレクトリモジュール115とKey−Valueモジュール114とXMLモジュール113とファイルシステムモジュール112を組み合わせて用いる。
【0080】
このときの「データ操作モジュールの組み合わせ方」は例えば図19のように記述する。ここでは、ディレクトリモジュールを示す<dirm>エレメントの下に、Key−Valueモジュールの情報を持ち、その下にXMLモジュールの情報を持ち、さらにその下にファイルシステムモジュールの情報を持っている。
【0081】
以上の説明にも出てきたように、リソースマネージャ11は、プロパティやディレクトリのデータに記録された記述をもとに、それらの指し示すデータをアクセスするのに必要なデータ操作モジュールを選択して組み合わせる。この動作を図20の例を使って説明する。なお、ここでは、図1や図14などを具体例として使って説明する。
【0082】
図20では、アプリケーションプログラム2が「/dir1/dir2/data1」のデータをオープンすることを、データ管理システム1のリソースマネージャ11に指示した場合の、データ管理システム1の内部の動作を示している。以下、図中の番号に沿って処理の流れを説明する。
【0083】
(1)アプリケーションプログラム2がデータ管理システム1に「/dir1/dir2/data1」のオープンを指示する。この指示はリソースマネージャ11が受ける。
【0084】
ここでは、「/dir1/dir2/data1」のプロパティは既にアクセス可能な状態でリソースマネージャ11が名前管理表22に登録して管理しているものとする。まだ「/dir1/dir2/data1」のプロパティがアクセス可能でなければ、ディレクトリ「dir2」内の情報を使って必要なデータ操作モジュールを組み合わせてアクセス可能な状態にし、名前管理表22にも登録する。
【0085】
上記指示を受けたリソースマネージャ11は、「data1」のプロパティから属性名「module」の値を取り出す。
【0086】
ここでは、その値は、図14に示すように、
Figure 0004167359
である。
【0087】
(2)リソースマネージャ11は、次に、データ操作モジュール管理表21を参照して、<xmlm>に対応するデータ操作モジュールマネージャを調べる。この場合、XMLモジュールマネージャ13を該当するものとして選択する。
そこで、XMLモジュールマネージャ13に、
Figure 0004167359
を使ってXMLモジュール113を作成することをOPEN命令で指示する。
【0088】
(3)OPENで新しくXMLモジュール113を作成するように指示されたXMLモジュールマネージャ13は、まず、自分の使用するバイナリデータをアクセスするのに必要なデータ操作モジュールの作成を、OPEN_MODULEでリソースマネージャ11に依頼する。
このとき、作成してほしいデータ操作モジュールの情報である、
Figure 0004167359
を一緒に渡す。
【0089】
(4)リソースマネージャ11は、OPEN_MODULEの引数の最上位のエレメントである<fsm>に対応するデータ操作モジュールマネージャを、データ操作モジュール管理表21を使って調べる。ここでは、ファイルシステムモジュールマネージャ12であることがわかるのでこれを選択する。
そこで、ファイルシステムモジュールマネージャ12に、
Figure 0004167359
を使ってファイルシステムモジュール112を作成することをOPEN命令で指示する。
【0090】
(5)ファイルシステムモジュールマネージャ12は、OPENの引数に渡されてきたファイルに関する情報から、ファイル名がf3617であることを知り、そのファイルをオープンすることをファイルシステム3に指示する。
【0091】
(6)ファイルシステム3は、指示されたf3617をオープンして、そのハンドルを呼び出しもとのファイルシステムモジュールマネージャ12に返す。
【0092】
(7)ファイルシステムモジュールマネージャ12は、ファイルシステム3中のファイルf3617のハンドルを使うファイルシステムモジュール112を作成する。ここでは、その作成されたファイルシステムモジュールをαと呼ぶ。
【0093】
(8)ファイルシステムモジュールマネージャ12は、作成したファイルシステムモジュールαのハンドルを、呼び出し元のリソースマネージャ11に返す。
【0094】
(9)リソースマネージャ11は、ファイルシステムモジュールαのハンドルを、OPEN_MODULEの呼び出し元であるXMLモジュールマネージャ113に返す。
【0095】
(10)XMLモジュールマネージャ13は、ファイルシステムモジュールαで管理するバイナリデータの上に、XMLドキュメントの構造を実現するXMLモジュール113を作成する。ここでは、その作成されたXMLモジュールをβと呼ぶ。
【0096】
(11)XMLモジュールマネージャ13は、OPENの呼び出し元のリソースマネージャ11に、XMLモジュールβのハンドルを返す。
【0097】
(12)リソースマネージャ11は、XMLモジュールβのハンドルを、OPENの呼び出し元のアプリケーションプログラム2に返す。
【0098】
(13)アプリケーションプログラム2は、以降、XMLモジュールβにXMLドキュメントの操作を指示しながら処理を行う。
【0099】
さて、これまでは、あるデータをアクセスするためのデータ操作モジュールの組み合わせ方が、プロパティやディレクトリに書かれている場合の動作の説明をしてきた。しかし、最初にデータを作る場合には、何らかの方法でデータ操作モジュールの組み合わせ方を決定しなければならない。
【0100】
以下では、このような場合に行うべき手順の一例として、ルールを使って、作成したいデータのカテゴリから、それに必要なデータ操作モジュールの組み合わせ方を決定して行く手順について説明する。
【0101】
ここで、データのカテゴリとは、データの種類を示す名前で、本実施形態には次のカテゴリ名があるものとする。
<property/> …プロパティのカテゴリ名
<directory/> …ディレクトリのカテゴリ名
<association/> …連想記憶のカテゴリ名
<document/> …XMLドキュメントのカテゴリ名
<binary/> …バイナリデータのカテゴリ名
<file/> …ファイルのカテゴリ名
カテゴリと、実際のそのカテゴリのデータを操作できるデータ操作モジュールとの対応は、ルールとして管理している。図21に、このようなルールの例を示す。図21に例示するように、ルールは、どのカテゴリのデータは、どのデータ操作モジュールで実現できるかを記述している。<rule>で始まるルールの中には、<category>で始まるカテゴリ記述部と、<expand>で始まるデータ操作モジュールの記述部とがある。
【0102】
例えば、図21の例では、<property/>というプロパティカテゴリのデータを操作するためには、<propm/>で示すプロパティモジュール(116)を使うというのが第1のルールである。以下、同様に、<directory/>というディレクトリカテゴリのデータなら<dirm/>で示されるディレクトリモジュール(115)を、<document/>というXMLドキュメントカテゴリのデータなら<xmlm/>で示されるXMLモジュール(113)を、という具合に、すべてのカテゴリに対して、少なくとも1つのルールを管理している。
【0103】
このようにルールを使ってカテゴリとデータ操作モジュールとの対応を決める方式を用いることによって、ルールを変えれば、同じカテゴリのデータを作るときでも、使うデータ操作モジュールを変えることができる。
【0104】
なお、カテゴリが<file/>であるルールは、ファイルシステム3に関するパラメタを記述するために用いる。図21の例では、<file/>というカテゴリに対応するルールのデータ操作モジュール記述部には<file/>と記述しており、特別な情報は持っていない。
【0105】
また、例えば、ファイルシステム3が複数のパーティションを持つ場合、図22のように<file/>カテゴリに対応する<file/>の下に<partition/>というエレメントを持たせ、その値が1ならばファイルを1番パーティションに作成する、というようにすることができる。ファイルシステムモジュール112が<file/>カテゴリのデータすなわちファイルを作成しようとしたときには、このルールがあれば、ファイルを1番パーティションに作成する。もし、このルールが無ければ、ファイルシステム3は、デフォルトのパーティションにファイルを作成することになる。
【0106】
次に、図23の例に沿って、本実施形態のデータ管理システムが新しいデータを作成する手順を説明する。なお、ここでは、図21のようなルールが与えられていると仮定する。実際にどのようにルールを与えるかに関しては、後で説明する。
【0107】
図23の例は、アプリケーションプログラム2が、「/dir1/dir2/data3」という名前でXMLドキュメント型のデータの本体を作成することを、CREATE命令でデータ管理システム1に指示した場合の動作例である。以下、図23の番号順に処理手順を説明する。
【0108】
(1)アプリケーションプログラム2が「/dir1/dir3/data3」という名前で<document/>カテゴリのデータを作成することを、CREATEによってデータ管理システム1に指示する。この指示はリソースマネージャ11が受け付ける。
【0109】
ここでは、「/dir1/dir3/data3」のプロパティは既にアクセス可能な状態でリソースマネージャ11が名前管理表22に登録して管理しているものとする。まだ「/dir1/dir3/data3」のプロパティがアクセス可能でなければ、ディレクトリ「dir3」内の情報を使って必要なデータ操作モジュールを組み合わせてアクセス可能な状態にし、名前管理表22にも登録する。
【0110】
(2)上記指示を受けたリソースマネージャ11は、<document/>というカテゴリ名からルールを検索し、それを実現するのはXMLモジュール113であることを知る。そこで、XMLモジュールマネージャ13に対して、CREATE命令で新しくデータの実体を作成することを指示する。
【0111】
(3)XMLモジュールマネージャ13は、自分が使うバイナリデータが必要なので、リソースマネージャ11に<binary/>カテゴリのデータの作成を、CREATE_MODULE命令で依頼する。
【0112】
(4)リソースマネージャ11は、<binary/>カテゴリに対応するルールを検索し、それを実現するのはファイルシステムモジュールであることを知る。そこで、ファイルシステムモジュールマネージャ12に対して、CREATE命令で新しくデータの実体を作成することを指示する。
【0113】
(5)ファイルシステムモジュール112は、自分が使うファイルシステム3にファイルの作成を依頼するための情報が必要なので、リソースマネージャ11に<file/>カテゴリのデータに関する情報の検索を、CREATE_MODULE命令で依頼する。
【0114】
(6)リソースマネージャ11は、<file/>カテゴリに対応するルールを検索し、その<expand/>部の値(ここでは<file/>)を呼び出し元のファイルシステムモジュールマネージャ12に返す。ここで、カテゴリが<file/>の場合の動作は、先に述べた<document/>や<binary/>の場合の動作とは異なるものとなっている。
【0115】
(7)ファイルシステムモジュールマネージャ12は、リソースマネージャ11からもらった情報を使って、ファイルシステム3に対して新しいファイルの作成を指示する。
【0116】
(8)ファイルシステム3は、新しいファイルを作成し、その名前等の情報をファイルシステムモジュールマネージャ12に返す。
【0117】
(9)ファイルシステムモジュールマネージャ12は、以降このデータをオープンするために必要となる、新しく作成したファイルの情報を、リソースマネージャ11に返す。
【0118】
(10)リソースマネージャ11は、ファイルシステムモジュールマネージャ12から返ってきた情報に、それを扱うデータ操作モジュールであるファイルシステムモジュールを識別するための<fsm/>というエレメントを追加し、それをCREATE_MODULE命令を出したXMLモジュールマネージャ13に返す。
【0119】
(11)XMLモジュールマネージャ13は、リソースマネージャ11から、自分が使うバイナリデータをアクセスするのに必要なデータ操作モジュールの記述をもらったので、それを、CREATEの結果として返す。
【0120】
(12)リソースマネージャ11は、XMLモジュールマネージャ13から返ってきた情報に、それを扱うデータ操作モジュールであるXMLモジュールを識別するための<xmlm/>というエレメントを追加する。それが「/dir1/dir3/data1」のデータの実体をアクセスするためのデータ操作モジュールの組み合わせ方を記述しているので、プロパティのmodule属性の値として記録する。これで処理は完了するので、アプリケーションプログラム2に戻る。
【0121】
これまでの手順で、新しく作成するデータをアクセスするためのデータ操作モジュールの組み合わせ方の情報がプロパティに記録される。しかし、この段階では、まだ実際にデータをアクセスできないので、通常は次に、先に述べたデータのオープン処理を行って、実際のデータのアクセスを行う。
【0122】
なお、上記では、データ管理システム1の提供するCREATE操作によってデータをアクセスするためのデータ操作モジュールの組み合わせ方を決定し、その決定結果に従って、同じくデータ管理システムの提供するOPEN操作によって実際にデータ操作モジュールを組み合わせてアクセス可能な状態にする場合を例にとって説明してきたが、もちろん、CREATE操作とOPEN操作を同時に処理してしまうように実施することも容易に可能である。
【0123】
ところで、データのカテゴリからデータ操作モジュールを検索するためのルールには、図24の例のようにコンテクストを記述することができる。
【0124】
図24で<context/>で囲まれているのがコンテクストである。コンテクストには、<document/>のようなカテゴリ名や<xmlm/>のようなデータ操作モジュール名を、<and/>、<or/>、<not/>という論理演算オペレータを使って組み合わせた論理式を指定できる。
【0125】
コンテクストを持つルールは、そのカテゴリが同じだけでなく、そのカテゴリに対応するデータ操作モジュールが使われる位置(例えばデータ操作モジュールの組み合わせの階層における位置もしくは順番)がコンテクストで指定された正しい位置である場合に、<expand/>部にあるデータ操作モジュールを使うことを示している。例えば、図24の例では、<document/>カテゴリの場合、上位に<dtdm/>で示されるデータ操作モジュールがない場合にのみ、<dtdm/>で示されるデータ操作モジュールを使うことを示している。
【0126】
ここで、<dtdm/>で示されるデータ操作モジュールであるDTDモジュール117は、XMLドキュメントに対して、DTD(XMLドキュメントの構造の定義)で与えられた構造を満たしているかどうか監視するデータ操作モジュールである。<dtdm/>が使う下位のモジュールはXMLドキュメントのカテゴリのデータを操作できるものであり、かつ、<dtdm/>自身はそのユーザからはXMLドキュメントのカテゴリのデータを操作するデータ操作モジュールとして振舞う。
【0127】
図24のルールと図21のルールとをこの順番でルールを検索するように組み合わせると、図25に示すように、XMLドキュメントのカテゴリのデータをアクセスする場合は、ファイルシステムモジュール112の上にXMLモジュール113が積まれ、その上にDTDモジュール117が積まれるように、データ操作モジュールが組み合わせられる。
【0128】
なお、DTDモジュール117が使用される場合には、DTDモジュールマネージャが用意される。
【0129】
これまでの説明では、データのカテゴリからデータ操作モジュールを検索するためのルールは予め与えられているとしていた。実際には、このようなルールをディレクトリやデータのプロパティに書いておき、図26に示すような手順で、与えられたカテゴリとコンテクストにマッチするルールを検索するように実施することで、柔軟なルールの適用が可能になる。
【0130】
つまり、あるデータの実体を作成するときには、そのデータからルートに向けてディレクトリをたどって行き(S11,S13)、その途中で一番最初に見つかった、カテゴリとコンテクストの条件を満たすルールを使って(S12,S14)、データ操作モジュールを決定する。
【0131】
このようにすると、例えば、図27(a)に示すように「dir1」の下に「dir2」と「dir3」がある場合において、図27(b)に示すように「dir1」にはパーティション0にファイルを作成するような<file/>のルールを持たせ、図27(c)に示すように「dir2」にはパーティション1にファイルを作成するような<file/>のルールを持たせれば、「dir2」より下に作成するファイルはデフォルトでパーティション1に作成され、その他はデフォルトでパーティション0に作成されるように制御することができる。他のカテゴリのデータに関しても同様で、同じXMLドキュメントでも、ディレクトリによって異なるデータ操作モジュールを使用するように制御できる。
【0132】
例えば、図28(a)に示すように、ディレクトリdir2の下にはdata1という名前のデータがあり、ディレクトリdir3の下にはdata2という名前のデータがあるとする。このとき、dir1には図28(b)に示すようなルールを持たせ、dir2には図28(c)に示すようなルールを持たせる。ここで、<xmls/>はシーケンシャルXMLモジュール、<xmlr/>はランダムXMLモジュールの名前であるとする。シーケンシャルXMLモジュールとランダムXMLモジュールは、どちらも、ファイルシステムモジュールの提供するバイナリデータ上にXMLドキュメントの木構造データを展開して記憶し、それへの操作を提供するデータ操作モジュールであるとする。これらデータ操作モジュールが、それを使う例えばアプリケーションプログラムに対して提供する操作機能はXMLモジュールと同じである。しかし、シーケンシャルXMLモジュールはXMLドキュメントのシーケンシャルなアクセスが高速になる内部データ構造を用いているのに対して、ランダムXMLモジュールはXMLドキュメントのランダムアクセスが高速になるデータ構造を用いているとする。
【0133】
図28(b)および図28(c)のようなルールを持たせることで、dir2の下にXMLドキュメントを作成する場合には、ランダムXMLモジュールを使い、dir1の下(dir3の下も含む。ただし、dir2の下は除外される。)にXMLドキュメントを作成する場合には、シーケンシャルXMLモジュールを使うように制御することができる。
【0134】
図28において、data1およびdata2はどちらもXMLドキュメントとして作成されたデータであるとする。このとき、dir2の下にあるdata1のモジュール階層は、例えば図28(d)のようになる。また、dir3の下にあるdata2のモジュール階層は、例えば図28(e)のようになる。
【0135】
図28の例のように、同じ階層において2以上の異なるデータ操作モジュール(図28の例では、シーケンシャルXMLモジュール(1132)とランダムXMLモジュール(1131))を設け、それらのうちから使用するものを選択できるように実施できる。選択ルールがディレクトリによって異なるように設定したり、また別の方式としては、ルールの<context/>部で条件によって異なるデータ操作モジュールが選択されるようにしてもよい。
【0136】
なお、ルートディレクトリにはすべてのカテゴリにマッチするルールをデフォルトとして持たせておくのが望ましい。それがない場合には、必要なデータ操作モジュールが見つけられなくなる場合があるからである。
【0137】
これまでの例では、データのアクセスに必要なデータ操作モジュールの組み合わせは、単純に上下に積み上げるだけであった。しかし、本実施形態のデータ管理システムでは、複数のデータ操作モジュールを組み合わせて使用するようなデータ操作モジュールも使用できる。
【0138】
図29は、そのようなデータ操作モジュールの例である。
【0139】
ここでは、<association/>カテゴリのデータ操作モジュールで、Key−Valueモジュールを置き換えて使用できる拡張Key−Valueモジュールの例を示す。拡張Key−Valueモジュール118は、XMLドキュメントとしてキーと値の対応を持つのはKey−Valueモジュールと同であるが、別にインデックスをバイナリデータの形で持っており、それを使った高速な検索が可能である。
【0140】
このような拡張Key−Valueモジュール118は例えば図30のような形式でデータ操作モジュールの組み合わせ方を記述する。ここで、<kva/>は、拡張Key−Valueモジュール118を示す名前である。これまでの例では、この下にはそのデータ操作モジュールが使用する下位のデータ操作モジュールの記述が来ていたが、ここでは、<kvainfo/>と呼ぶ<kva/>の独自の情報を持っている。その中には<data/>と<index/>の2つのエレメントがあり、それぞれに、キーと値を記録するXMLドキュメントと、インデックスを記録するバイナリデータをアクセスするための、データ操作モジュールの組み合わせ方を記録している。
【0141】
なお、拡張Key−Valueモジュール118が使用される場合には、拡張Key−Valueモジュールマネージャが用意される。
【0142】
また、本実施形態では、データストレージシステムとして一般のファイルシステムを用いて説明したが、XMLデータ等の他のデータモデルでデータを出力するデータストレージシステムに、本発明を適用することも可能である。データストレージシステムの扱うデータモデルをXMLデータとした場合には、例えば、図4においては、ファイルモジュールとXMLモジュールの階層を省き、必要に応じて、データストレージシステムの扱うXMLモジュールを本データ管理システムに適用させるための新たなXMLモジュールを用意すればよい。
【0143】
また、本実施形態では、データ管理システム1内で、どのデータ操作モジュールを選択しどのような順番で用いるかを特定したが、アプリケーションプログラム2がデータ操作モジュールの組み合わせ方を指示するようにしてもよいし、またそれらを併用してもよい。
【0144】
アプリケーションプログラム2がデータ操作モジュールの組み合わせ方を指示する場合、例えば、データ管理システム1からアプリケーションプログラム2に、どのデータ操作モジュールを選択しどのような順番で用いてデータに操作を加えるべきかを特定できるような情報(例えば、図14の情報)を通知し、この情報をもとにアプリケーションプログラム2がデータ操作モジュールの組み合わせ方を特定してデータ管理システム1に通知するようにしてもよい。あるいは、アプリケーションプログラム2が独自に、どのデータ操作モジュールを選択しどのような順番で用いてデータに操作を加えるべきかを特定できるような情報(例えば、図14の情報)を取得し、この情報をもとにアプリケーションプログラム2がデータ操作モジュールの組み合わせ方を特定してデータ管理システム1に通知するようにしてもよい。
【0145】
例えば、図20の例においては、(1)でアプリケーションプログラム2がデータ管理システム1に「/dir1/dir2/data1」のオープンを、
OPEN(/dir1/dir2/data1)
によって指示する代わりに、
Figure 0004167359
を指示することになる。
【0146】
なお、以上の各機能は、ソフトウェアとしても実現可能である。
【0147】
また、本実施形態は、コンピュータに所定の手段を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムを記録したコンピュータ読取り可能な記録媒体としても実施することもできる。
【0148】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0149】
【発明の効果】
本発明では、データを操作するためのそれぞれ操作内容の異なる複数のデータ操作モジュールを用意し、アプリケーションプログラムから所望のデータに対する処理の要求を受けた場合に、その複数のデータ操作モジュールの中から、該データをアプリケーションプログラムが行いたい処理に適合したデータモデルに従わせるために該データに対して操作を行うべきデータ操作モジュールを選択し、データに操作を加えて提供するようにしたので、柔軟性と独立性と拡張性に優れたデータ管理システム及びデータ管理方法を実現することができる。
【図面の簡単な説明】
【図1】データの管理の一例を示す図
【図2】プロパティとデータの実体の関係の一例を示す図
【図3】本発明の一実施形態に係るデータ管理システムの一般的な構成例を示す図
【図4】同実施形態に係るデータ管理システムのより具体的な構成例を示す図
【図5】データ操作モジュール管理表の一例を示す図
【図6】名前管理表の一例を示す図
【図7】ファイルモジュールの使い方の一例を示す図
【図8】ファイルモジュールの使い方の記述の一例を示す図
【図9】XMLモジュールの使い方の一例を示す図
【図10】XMLモジュールの使い方の記述の一例を示す図
【図11】Key−Valueモジュールがキーと値の組の集合をXMLドキュメントとして管理する管理形式の一例を示す図
【図12】Key−Valueモジュールの使い方の一例を示す図
【図13】Key−Valueモジュールの使い方の記述の一例を示す図
【図14】Key−Valueモジュールによるプロパティの管理の一例を示す図
【図15】プロパティモジュールの使い方の一例を示す図
【図16】プロパティモジュールの使い方の記述の一例を示す図
【図17】Key−Valueモジュールによるディレクトリの管理の一例を示す図
【図18】ディレクトリジュールの使い方の一例を示す図
【図19】ディレクトリジュールの使い方の記述の一例を示す図
【図20】データのオープン処理の流れの一例を示す図
【図21】カテゴリとデータ操作モジュールとの対応を含むルールの一例を示す図
【図22】<file/>に対するルールの一例を示す図
【図23】データの作成処理の流れの一例を示す図
【図24】コンテクストを持つルールの一例を示す図
【図25】コンテクストを持つルールの使用例を示す図
【図26】ルールの探索手順の一例を示すフローチャート
【図27】ルールの格納例を示す図
【図28】同じXMLドキュメントでもディレクトリによって異なるデータ操作モジュールを使用するように制御可能とした例を示す図
【図29】複雑なデータ操作モジュールの使い方の一例を示す図
【図30】複雑なデータ操作モジュールの使い方の記述の一例を示す図
【符号の説明】
1…データ管理システム
11…リソースマネージャ
21…データ操作モジュール管理表
22…名前管理表
12…ファイルシステムモジュールマネージャ
13…KMLモジュールマネージャ
14…Key−Valueモジュールマネージャ
15…ディレクトリモジュールマネージャ
16…プロパティモジュールマネージャ
17…DTDモジュール
18…拡張Key−Valueモジュール
112…ファイルシステムモジュール
113…KMLモジュール
114…Key−Valueモジュール
115…ディレクトリモジュール
116…プロパティモジュール
12−1〜12−n…データ操作モジュールマネージャ
112−1〜112−n…データ操作モジュール
2…アプリケーションプログラム
3…ファイルシステム
31…ハードディスク

Claims (8)

  1. データストレージシステムに記憶されたデータに対する操作をアプリケーションプログラムの処理に供するデータ管理システムであって、
    データを操作するための、それぞれ操作内容の異なる複数のデータ操作モジュールを記憶する記憶手段と、
    前記データストレージシステムに記憶されたデータごとに、どの前記データ操作モジュールをどのような順番で用いて当該データに操作を加えるべきかを特定する情報を、当該データに関連付けて前記データストレージシステムに記録する情報記録手段と、
    前記アプリケーションプログラムが前記データストレージシステムに記憶されたデータに対する操作を行う際に、当該データに関連付けて前記データストレージシステムに記録されている前記情報を参照して、前記複数のデータ操作モジュールの中から、該情報により特定される一つ以上のデータ操作モジュールを選択し、選択されたデータ操作モジュールを該情報により特定される順番で用いて当該データに操作を加え操作手段とを備え、
    前記情報記録手段は、前記アプリケーションプログラムが前記データストレージシステムに新しいデータを作成する際に、前記アプリケーションプログラムにより指定された当該新しいデータのカテゴリに基づいて、当該新しいデータに係る前記情報を作成し、作成された情報を当該新しいデータに関連付けて前記データストレージシステムに記録することを特徴とするデータ管理システム。
  2. 前記操作手段が二つ以上の前記データ操作モジュールを選択した場合には、選択された前記データ操作モジュールのうち最初に用いられるデータ操作モジュールは、前記データストレージシステムから出力されたデータを操作して、一つ後に用いられるデータ操作モジュールに渡し、選択された前記データモジュールのうち最後に用いられるデータ操作モジュールは、一つ前に用いられるデータ操作モジュールから渡されたデータを操作して、前記アプリケーションプログラムに渡すものであることを特徴とする請求項1に記載のデータ管理システム。
  3. 前記操作手段が一つの前記データ操作モジュールのみを選択した場合には、選択された前記データ操作モジュールは、前記データストレージシステムから出力されたデータを操作して、前記アプリケーションプログラムに渡すことを特徴とする請求項1または2に記載のデータ管理システム。
  4. 前記情報記録手段は、前記新しいデータに係る前記情報を作成するにあたって、前記アプリケーションプログラムにより指定された前記新しいデータのカテゴリに基づき、前記操作手段が使用すべきデータ操作モジュールの少なくとも一つを特定し、特定された該データ操作モジュールは、前記操作手段が使用すべき他のデータ操作モジュールか、あるいは該他のデータ操作モジュールを特定可能なカテゴリを指定することを特徴とする請求項1ないし3のいずれか 1 項に記載のデータ管理システム。
  5. データを操作するための、それぞれ操作内容の異なる複数のデータ操作モジュールを記憶する記憶手段と、前記データストレージシステムに記憶されたデータごとに、どの前記データ操作モジュールをどのような順番で用いて当該データに操作を加えるべきかを特定する情報を、当該データに関連付けて前記データストレージシステムに記録する情報記録手段と、操作手段とを備え、データストレージシステムに記憶されたデータに対する操作をアプリケーションプログラムの処理に供するデータ管理システムにおける、データ管理方法であって、
    前記情報記録手段が、前記アプリケーションプログラムが前記データストレージシステムに新しいデータを作成する際に、前記アプリケーションプログラムにより指定された当該新しいデータのカテゴリに基づいて、当該新しいデータに係る前記情報を作成し、作成 された情報を当該新しいデータに関連付けて前記データストレージシステムに記録するステップと、
    前記操作手段が、前記アプリケーションプログラム前記データストレージシステムに記憶されたデータに対する操作を行う際に、当該データに関連付けて前記データストレージシステムに記録されている前記情報を参照して、前記複数のデータ操作モジュールの中から、該情報により特定される一つ以上のデータ操作モジュールを選択し、選択されたデータ操作モジュールを該情報により特定される順番で用いて当該データに操作を加えるステップとを有することを特徴とするデータ管理方法。
  6. 前記操作手段が二つ以上の前記データ操作モジュールを選択した場合には、選択された前記データ操作モジュールのうち最初に用いられるデータ操作モジュールは、前記データストレージシステムから出力されたデータを操作して、一つ後に用いられるデータ操作モジュールに渡し、選択された前記データモジュールのうち最後に用いられるデータ操作モジュールは、一つ前に用いられるデータ操作モジュールから渡されたデータを操作して、前記アプリケーションプログラムに渡すものであることを特徴とする請求項5に記載のデータ管理方法。
  7. 前記操作手段が一つの前記データ操作モジュールのみを選択した場合には、選択された前記データ操作モジュールは、前記データストレージシステムから出力されたデータを操作して、前記アプリケーションプログラムに渡すことを特徴とする請求項5または6に記載のデータ管理方法。
  8. 前記情報記録手段は、前記新しいデータに係る前記情報を作成するにあたって、前記アプリケーションプログラムにより指定された前記新しいデータのカテゴリに基づき、前記操作手段が使用すべきデータ操作モジュールの少なくとも一つを特定し、特定された該データ操作モジュールは、前記操作手段が使用すべき他のデータ操作モジュールか、あるいは該他のデータ操作モジュールを特定可能なカテゴリを指定することを特徴とする請求項5ないし7のいずれか 1 項に記載のデータ管理方法。
JP27826199A 1999-09-30 1999-09-30 データ管理システム及びデータ管理方法 Expired - Fee Related JP4167359B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP27826199A JP4167359B2 (ja) 1999-09-30 1999-09-30 データ管理システム及びデータ管理方法
TW089118906A TW486634B (en) 1999-09-30 2000-09-15 Data management system using multiple data computation module
EP00308108A EP1091295B1 (en) 1999-09-30 2000-09-18 Data management system using a plurality of data operation modules
DE60038933T DE60038933D1 (de) 1999-09-30 2000-09-18 Datenverwaltungssystem mit mehreren Datenbetriebsmodulen
US09/666,128 US6714946B1 (en) 1999-09-30 2000-09-20 Data management system using a plurality of data operating modules
KR10-2000-0057358A KR100405745B1 (ko) 1999-09-30 2000-09-29 다수의 데이터 연산모듈을 이용한 데이터 관리시스템과 데이터 관리방법 및 컴퓨터이용가능 매체
CNB001292854A CN1203430C (zh) 1999-09-30 2000-09-30 数据管理系统和数据管理方法
US10/750,889 US20040139122A1 (en) 1999-09-30 2004-01-05 Data management system using a plurality of data operation modules

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27826199A JP4167359B2 (ja) 1999-09-30 1999-09-30 データ管理システム及びデータ管理方法

Publications (2)

Publication Number Publication Date
JP2001101042A JP2001101042A (ja) 2001-04-13
JP4167359B2 true JP4167359B2 (ja) 2008-10-15

Family

ID=17594885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27826199A Expired - Fee Related JP4167359B2 (ja) 1999-09-30 1999-09-30 データ管理システム及びデータ管理方法

Country Status (7)

Country Link
US (2) US6714946B1 (ja)
EP (1) EP1091295B1 (ja)
JP (1) JP4167359B2 (ja)
KR (1) KR100405745B1 (ja)
CN (1) CN1203430C (ja)
DE (1) DE60038933D1 (ja)
TW (1) TW486634B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262500B2 (en) 2011-08-08 2016-02-16 Kabushiki Kaisha Toshiba Memory system including key-value store
US9361408B2 (en) 2011-08-08 2016-06-07 Kabushiki Kaisha Toshiba Memory system including key-value store

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4378029B2 (ja) * 1999-04-27 2009-12-02 キヤノン株式会社 データ処理方法及び装置及び記憶媒体
EP1304616B1 (en) * 2001-10-18 2010-03-17 Sun Microsystems, Inc. Method for processing a data file using a plug-in
US7617502B2 (en) * 2002-11-06 2009-11-10 Scientific-Atlanta, Llc Managing peripheral device drivers
AU2003292498A1 (en) * 2002-12-11 2004-06-30 Fraysen Systems Limited Process data management
FR2849568B1 (fr) * 2002-12-26 2005-04-29 Orange France Systeme et procede de gestion de ressources dans un terminal relie a un reseau de communication
US20040215747A1 (en) * 2003-04-11 2004-10-28 Jonathan Maron System and method for a configuration repository
US20060069774A1 (en) * 2004-06-17 2006-03-30 International Business Machine Corporation Method and apparatus for managing data center using Web services
US7516122B2 (en) * 2004-12-02 2009-04-07 Computer Associates Think, Inc. System and method for implementing a management component that exposes attributes
JP4804836B2 (ja) * 2005-08-31 2011-11-02 三菱電機株式会社 データ生成装置及びデータ生成プログラム
CN102026147A (zh) * 2009-09-17 2011-04-20 中兴通讯股份有限公司 业务用户数据管理系统及其实现业务用户数据管理的方法
CN101739292B (zh) * 2009-12-04 2016-02-10 曙光信息产业(北京)有限公司 基于应用特征的异构集群作业自适应调度方法和系统
US20120094600A1 (en) 2010-10-19 2012-04-19 Welch Allyn, Inc. Platform for patient monitoring
CN104216729B (zh) * 2013-06-05 2017-10-13 阿里巴巴集团控股有限公司 应用系统的逻辑模块更新实现方法及装置
US10915507B1 (en) * 2014-08-21 2021-02-09 Amazon Technologies, Inc. Data conversion handler for a run-time execution environment
CN105786491A (zh) * 2016-02-23 2016-07-20 浪潮通信信息系统有限公司 一种基于数据描述的命令式智能数据管理系统
CN110019254A (zh) * 2017-07-17 2019-07-16 中兴通讯股份有限公司 规划区增量记录的处理方法、装置及计算机可读存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261080A (en) * 1987-08-21 1993-11-09 Wang Laboratories, Inc. Matchmaker for assisting and executing the providing and conversion of data between objects in a data processing system storing data in typed objects having different data formats
JP2644554B2 (ja) * 1988-11-15 1997-08-25 株式会社日立製作所 情報処理システム
US5113522A (en) * 1989-05-17 1992-05-12 International Business Machines Corporation Data processing system with system resource management for itself and for an associated alien processor
CN1029050C (zh) * 1989-10-13 1995-06-21 国际商业机器公司 在数据库系统中强化实施参照约束
JPH05342179A (ja) * 1992-06-11 1993-12-24 Kobe Nippon Denki Software Kk データベースクライアント・サーバ分散処理システムのデータ処理方法
US5446880A (en) * 1992-08-31 1995-08-29 At&T Corp. Database communication system that provides automatic format translation and transmission of records when the owner identified for the record is changed
JPH0695935A (ja) * 1992-09-11 1994-04-08 Shikoku Nippon Denki Software Kk データベースのレコードフォーマット変更方式
US5504886A (en) * 1993-07-02 1996-04-02 International Business Machines Corporation System and method for applying user supplied relation definitions to application files for a relational database
US5581797A (en) * 1993-10-22 1996-12-03 Lucent Technologies Inc. Method and apparatus for displaying hierarchical information of a large software system
US5727158A (en) * 1995-09-22 1998-03-10 Integra Soft, Inc. Information repository for storing information for enterprise computing system
WO1998055908A2 (en) * 1997-06-04 1998-12-10 Pangea Systems, Inc. Method and apparatus for obtaining results from multiple computer applications
US6167564A (en) * 1998-09-17 2000-12-26 Unisys Corp. Software system development framework
US6523027B1 (en) * 1999-07-30 2003-02-18 Accenture Llp Interfacing servers in a Java based e-commerce architecture
US20020194251A1 (en) * 2000-03-03 2002-12-19 Richter Roger K. Systems and methods for resource usage accounting in information management environments
US6502102B1 (en) * 2000-03-27 2002-12-31 Accenture Llp System, method and article of manufacture for a table-driven automated scripting architecture
US7228407B2 (en) * 2002-08-13 2007-06-05 International Business Machines Corporation Adaptive management method and system with automatic dependency resolution

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262500B2 (en) 2011-08-08 2016-02-16 Kabushiki Kaisha Toshiba Memory system including key-value store
US9361408B2 (en) 2011-08-08 2016-06-07 Kabushiki Kaisha Toshiba Memory system including key-value store
US9953107B2 (en) 2011-08-08 2018-04-24 Toshiba Memory Corporation Memory system including key-value store
US10579683B2 (en) 2011-08-08 2020-03-03 Toshiba Memory Corporation Memory system including key-value store

Also Published As

Publication number Publication date
US6714946B1 (en) 2004-03-30
KR100405745B1 (ko) 2003-11-15
EP1091295A3 (en) 2003-09-03
CN1203430C (zh) 2005-05-25
KR20010067262A (ko) 2001-07-12
TW486634B (en) 2002-05-11
JP2001101042A (ja) 2001-04-13
US20040139122A1 (en) 2004-07-15
EP1091295B1 (en) 2008-05-21
DE60038933D1 (de) 2008-07-03
CN1290899A (zh) 2001-04-11
EP1091295A2 (en) 2001-04-11

Similar Documents

Publication Publication Date Title
JP4167359B2 (ja) データ管理システム及びデータ管理方法
US8856185B2 (en) Method and system for attribute management in a namespace
US6430575B1 (en) Collaborative document management system with customizable filing structures that are mutually intelligible
KR100977360B1 (ko) 다른 유형의, 다른 물리적 위치의 항목들을디스플레이하기 위한 파일 시스템
KR100996763B1 (ko) 가상 폴더들을 사용하는 시스템 및 방법
US7711754B2 (en) System and method for managing data using static lists
US20220245177A1 (en) Method and apparatus for implementing a set of integrated data systems
JP3460597B2 (ja) 複合文書管理システム及び複合文書の構造管理方法ならびに複合文書構造管理プログラムを格納した記録媒体
KR100991027B1 (ko) 파일 시스템 셸
US9128954B2 (en) Hierarchical structured data organization system
US7617250B2 (en) Semantic file system
WO2005045594A2 (en) System and method for virtual folder and sharing items
US9104680B2 (en) Method for accessing files of a file system according to metadata and device implementing the method
JPH0687241B2 (ja) 文書属性の識別方法
US7343378B2 (en) Generation of meaningful names in flattened hierarchical structures
US20020089551A1 (en) Method and apparatus for displaying a thought network from a thought's perspective
JP3707912B2 (ja) グラフィカル・ユーザー・インターフェース
JP4343669B2 (ja) ファイル管理装置,動的名前空間生成方法および動的名前空間生成プログラム
JP2003091535A (ja) データ管理方法及びプログラム並びに装置
US9633028B2 (en) Collaborative and personalized storage and search in hierarchical abstract data organization systems
Albadri et al. VennTags: a file management system based on overlapping sets of tags
WO2004079484A2 (en) Non-hierarchical database
JP2007279960A (ja) 電子帳票提供方法及び電子帳票サーバ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080519

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080729

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080801

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

Free format text: PAYMENT UNTIL: 20110808

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110808

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120808

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees