JP4406609B2 - 単一のインターフェイスからのデータの多重階層を管理するための手法 - Google Patents

単一のインターフェイスからのデータの多重階層を管理するための手法 Download PDF

Info

Publication number
JP4406609B2
JP4406609B2 JP2004551876A JP2004551876A JP4406609B2 JP 4406609 B2 JP4406609 B2 JP 4406609B2 JP 2004551876 A JP2004551876 A JP 2004551876A JP 2004551876 A JP2004551876 A JP 2004551876A JP 4406609 B2 JP4406609 B2 JP 4406609B2
Authority
JP
Japan
Prior art keywords
management server
data
resource management
hierarchy
foreign
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2004551876A
Other languages
English (en)
Other versions
JP2006505872A (ja
Inventor
マーシー,ラビ
アガルバル,ニプン
セドラー,エリック
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2006505872A publication Critical patent/JP2006505872A/ja
Application granted granted Critical
Publication of JP4406609B2 publication Critical patent/JP4406609B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Description

関連出願との相互参照
本出願は、2002年11月6日に出願された仮出願番号第60/424,543号の利益を主張しており、その内容全体は、米国特許法第119(e)条の下に、ここに十分に述べられているかのようにここに引用により援用される。
発明の分野
この発明は、階層型データを管理するための手法に関し、特に、単一の統合されたインターフェイスからのデータの多重階層を管理するための手法に関する。
発明の背景
データの中には生来、階層として編成されているものがある。階層は周知の数学的構成体である。一般に、階層は多数のレベルのノードで構成される。各レベルのノードは各々、異なるレベルの1つ以上のノードにリンクされている。トップレベルの下のレベルにある各ノードは、上のレベルの1つ以上の親ノードの子ノードである。ツリー階層では、各子ノードは親ノードを1つだけ有するが、親ノードは多数の子ノードを有していてもよい。ツリー階層では、親ノードがリンクされていないノードはルートノードであり、子ノードがリンクされていないノードはリーフノードである。ツリー階層は通常、単一のルートノードを有する。
たとえば、コンピュータ読み取り可能な媒体上に内容を記憶させるためにコンピュータオペレーティングシステムによって使用されるフレキシブルなファイルシステムは、往々にして、「フォルダ」または「ディレクトリ」の階層へと編成されている。各フォルダは、コンピュータ読み取り可能な媒体上にデータを記憶させる任意の数のファイルと、任意の数の他のフォルダとを含むことができる。ファイルおよび他のフォルダを含むフォルダは、それらのファイルおよびフォルダの親ノードである。ファイルおよび他のフォルダは、そのフォルダの子ノードである。このシステムは通常、1つのルートフォルダを有する。
拡張可能マークアップ言語(XML)のデータ要素も、ツリー階層に構成される。XMLは、データを記憶させ、独立したアプリケーション間でデータを交換するために幅広く使用されている。XMLの各データ要素は、ゼロ以上の子要素で構成されてもよい。各要素はまた、要素名と、ゼロ以上の追加の要素属性とを有する。XML文書は単一のルート要素である。
ファイルシステムおよびXML文書といった階層により編成されるデータに対する動作は、多くの目的にとって便利であるものの、表現するのが難しい場合がある。動作は、たとえば、ファイルまたはXML要素といった階層のノードを作成すること、それからデータを検索すること、それにデータを書込むこと、それをコピー、移動、および削除することを含み得る。ノードおよび動作の表現は、階層型データシステムによって異なり得る。多重階層中に分布しているデータに対して、ノードおよび動作について単一の1組の表現を使用する単一の統合されたインターフェイスを用いて動作を行なうことは、便利である。
一アプローチでは、多重階層からのノードは、ユーザの装置(以下、ユーザの「ネイティブシステム」と呼ぶ)上で機能する確立した、かつ便利なインターフェイスを用いて、
1つのシステムへとアセンブルされる。たとえば、あるネイティブシステムでは、階層におけるノードはリレーショナルデータベースのノードテーブルに記憶され、親子関係が階層型インデックスに記憶される。そのようなインデックスは、たとえば、親ノードをすべて列挙していてもよく、また、各親ノードについて、階層において親ノードのすぐ下にある子ノードをすべて列挙していてもよい。そのようなシステムでは、ある基準を満たすノードを列挙するために、SQLコマンドが使用可能である。ノードに対する動作は、1つ以上の記憶されたプロシージャによって実行可能である。
このようにノードテーブルと階層型インデックスとを維持することにより、ファイルシステム上でSQLクエリーを用いて、ルートフォルダからある特定のフォルダへの経路、または、フォルダ属性もしくはファイル属性に対するある基準を満たすファイルを見つけることができる。たとえば、「所有者」および「作成日」がノードテーブル内のファイルの属性であると仮定して、スコット(Scott)というユーザが所有する、2001年1月1日から2001年1月10日までの間に作成されたすべてのファイルについて、ファイル名、およびルートフォルダからの経路を取得することができる。次に、それらのファイルを新しいフォルダにコピーするか、または他の方法でそれらのファイルに対して動作を行なうことができる。
このアプローチは階層に編成されている多くの種類のデータにとって良好に作用するものの、いくつかの欠点を有する。たとえば、多くの場合、非ネイティブ(つまりフォーリン)階層型データシステムは、データを記憶し、検索するためのリソースを提供する。そのデータをネイティブシステムにインポートすることにより、ネイティブシステムは、それ自体のリソースを、既に別の場所に記憶されているデータを記憶するために充てるようになる。これは、ネイティブシステムを維持する経費を非常に増加させるおそれがある。
さらに、フォーリンシステムにおけるノードの数は多い場合があるが、にもかかわらず、ネイティブシステムのユーザがそれらのノードに対する動作を望む頻度が少ない場合がある。これらのノードすべてをネイティブシステムにインポートすることは、ネイティブシステムの階層型インデックスを肥大化させ得る。肥大化したインデックスは、ネイティブシステムによる応答時間の増加および全体的な性能劣化につながり得る。
加えて、新しいフォーリンシステムを取入れることは、新しいフォーリンシステムにおけるデータの量とともに増加するユーザのシステム上のリソースを消費する。新しいシステムのデータ内容は、新しいシステムからネイティブシステムにコピーされなければならず、ネイティブインデックスは更新されなければならない。同様に、フォーリンシステムを切り離すことも、フォーリンシステムにおけるデータの量とともに増加するリソースを消費する。データ内容はネイティブシステムから削除されなければならない場合があり、ネイティブインデックスは更新されなければならない。フォーリンシステムの内容が変更される場合、ネイティブシステムは、フォーリンシステムの古いバージョンを切り離し、かつ新しいバージョンを取入れなければならない。フォーリンシステムの接続および切り離しにそれほど多くのリソースを消費することは、ネイティブシステムによる全体的な性能劣化をもたらし得る。
さらに、フォーリンデータをネイティブシステムにインポートすることを含まないデータセキュリティの局面があり得る。たとえば、フォーリンシステムは、ネイティブシステムでは表現または実施するのが難しい、もしくは許されないかもしれない珍しい、または固有のセキュリティモデルに基づいて、フォーリン階層におけるデータへのアクセスを制御するかもしれない。
前述の事項に基づき、上述の欠点を被らない、多重階層における階層型データを単一のインターフェイスを用いて管理する手法に対する明らかな要望が存在する。特に、全データを単一の階層型データシステムにインポートすることなく、多重階層中に分散されたデータを単一のインターフェイスを用いて管理する手法に対する要望が存在する。
この項に記載された過去のアプローチは追求可能であるが、それらは必ずしも、以前に考えられまたは追求されたアプローチであるとは限らない。したがって、ここに特に示されていない限り、この項に記載されたアプローチは、この背景の項に存在するというだけの理由で、本出願の請求項に対する先行技術として考えられるべきではない。
この発明を、添付図面の図において、限定のためではなく例示のために説明する。図中、同じ参照番号は同様の要素を指す。
発明の詳細な説明
多重階層に構成されたデータコンテナを管理するための手法が記載される。以下の記載では、説明のため、数多くの特定の詳細がこの発明の完全な理解を提供するために述べられる。しかしながら、この発明がこれらの特定の詳細なしで実践され得ることは明らかである。他の点では、この発明を不必要に不明瞭にしないよう、周知の構造および装置はブロック図の形で示される。
以下において、この発明の実施例が、リレーショナルデータベースに記憶されたネイティブ階層型ファイルシステムからの多数の階層型ファイルシステムを管理するという状況で説明される。しかしながら、ここに説明する手法およびメカニズムは、この状況に限定されない。他の実施例では、ネイティブシステムは、データコンテナの階層についての別の管理システムである。
ここで使用されているように、「データコンテナ」という用語は、ノードに関連するデータを示し、そのデータは、フォルダ、ファイル、XML要素、または階層におけるデータの何か他のグルーピング、たとえばリレーショナルデータベーステーブルの1つ以上の列におけるエントリのいずれであってもよい。実施例によっては、他の階層型データ、たとえばXML文書が、データコンテナの階層の1つ以上を形成していてもよい。
一実施例によれば、単一のネイティブ階層からのデータコンテナの多重階層を管理する手法は、以下を含む。
・ネイティブ階層ではない各階層について1組のルーチンを登録する。各階層について、その1組のルーチンは、階層におけるデータコンテナに対して1組の動作を行なう
・ネイティブ階層のノードに対応していないある特定のデータコンテナに対するある特定の動作を示すユーザ要求を受取る
・ユーザ要求に基づいて、ネイティブ階層ではない第1の階層の1つ以上のノードの第1の組に対する第1の動作を判断する
・登録ステップ中、第1の階層について登録された第1の1組のルーチンからの第1の動作に対応するある特定のルーチンを選択する
・特定のルーチンを呼出して、1つ以上のノードの第1の組に対する動作を行なう。
ここに説明された手法により、ユーザは、ネイティブ階層を管理するシステムに登録されたどの階層のデータコンテナにも到達するために、ネイティブ階層との一貫したインターフェイスを採用できるようになる。フォーリンデータコンテナに到達するために、登録
された関数が呼出されるため、フォーリンデータコンテナに含まれるデータはネイティブ階層に取入れられる必要はない。このため、フォーリンデータコンテナにおいてデータを検索するため、またはフォーリンデータコンテナすべての内容を取入れるか切り離すために消費される、ネイティブ階層を管理するシステムのリソースはより少なくなる。
例示的な階層型ファイルシステム
図1は、一実施例に従った、多重ファイルシステムにおけるノードおよびリンクの多重階層100を示すブロック図である。ネイティブ階層101は多数のノード110を含み、それらは各々、ネイティブファイルシステムのフォルダまたはファイルに対応している。ノード110a、110b、110c、110e、110fはファイルシステムのフォルダに対応しており、1つ以上の他のノードの親ノードである。ノード110d、110gはファイルシステムのファイルに対応しており、それらは常に、他のどのノードにとっても親ではないリーフノードである。「リソース」という用語は以下、フォルダまたはファイルのいずれかであり得る項目を指すために使用される。このため、全ノード110はリソースに対応している。省略記号111は、ファイルシステムの他のリソースに対応している階層101の他のノード110を示す。
ノード110はリンク120によって他のノード110に接続される。リンク120は、1つのノード110を異なる単一のノード110と関連付ける。リンク120aは親ノード110aを子ノード110bと関連付ける。同様に、リンク120b、120c、120d、120e、120f、120g、および120hは、1つの親ノード110を1つの子ノード110と関連付ける。省略記号121は、ファイルシステムの他のリソース間での1対1の関連に対応している階層101の他のリンク120を示す。
図1は2つのフォーリン階層102、103も示しており、それらは2つの独立したフォーリンファイルシステムにおいて管理されるリソースを含んでいる。フォーリン階層102は、以下フォーリンノード130として総称されるノード130a、130b、130c、および省略記号131により示される他のノードを含み、それらは各々、フォーリンファイリングシステムのうちの1つにおけるリソースに対応している。ノード130aおよび130bはフォーリンファイルシステムのフォルダに対応しており、1つ以上の他のノードにとって親ノードである。ノード130cはフォーリンファイルシステムのファイルに対応しており、それはリーフノードである。フォーリン階層102は、以下フォーリンリンク140として総称されるリンク140a、140b、および省略記号141により示される他のリンクを含む。
フォーリン階層103は、以下フォーリンノード150として総称されるノード150a、150b、150c、および省略記号151により示される他のノードを含み、それらは各々、第2のフォーリンファイリングシステムにおけるリソースに対応している。ノード150aおよび150cは第2のフォーリンファイルシステムのフォルダに対応しており、1つ以上の他のノードにとって親ノードである。ノード150bはフォーリンファイルシステムのファイルに対応しており、それはリーフノードである。フォーリン階層103は、以下フォーリンリンク160として総称されるリンク160a、160b、および省略記号161により示される他のリンクを含む。
各ノード110、130、150は、対応するリソースのプロパティに対応している1つ以上の属性を有する。たとえば、ノード属性は、リソース名、リソースタイプ(ファイルかフォルダかを示す、もしくはファイルタイプかフォルダタイプかを示す)、リソース作成日、リソース修正日、リソース所有者、リソースサイズ、1人以上のリソース作者のリスト、およびリソースの他のプロパティのうちの1つ以上に対応していてもよい。
各リンク120、140、160は、リンクが接続するノード間の関連を記述する1つ以上の属性を有する。たとえば、リンク属性は、リンク名、リンクタイプ(たとえばリンクが親子関係、または別の関係、たとえば兄弟関係、祖父母と孫の関係、もしくは叔母と姪の関係を表わすかどうかを示す)、リンク作成日、リンク修正日、リンク所有者、リンク所有者タイプ(たとえば、子を作成または削除する所有者が1人だけであるソフトリンク、または、多数の所有者を有し、それらのいずれかが子を作成してもよく、それらのすべてが子を削除しなければならないハードリンク)、リンク記述テキスト、およびリンクの他のプロパティのうちの1つ以上に対応していてもよい。
多くのファイルシステムでは、すべてのリンクが暗示されている。暗示されたリンクは同じタイプ(たとえば親子のソフトリンク)であり、ノードから独立した名前を持たず、属性を何も持たない。
経路は、階層における1つのノード(開始ノード)から別のノード(終了ノード)への一連のリンクを表わす。当該技術分野において公知の、経路を特定する任意の方法が使用されてもよい。しばしば、経路は、開始ノードと終了ノードとの間のリンクを列挙する経路名によって特定される。多くのファイルシステムでは、経路名は、開始ノードから終了ノードへのトラバーサルの順序で、範囲を定める1組の1つ以上の特殊文字によって隔てられたリンクのリンク名を組合せることによって構築される。開始ノードはしばしば、階層のルートノードである。たとえば、フォルダ110aからファイル110dへの経路は、経路名/L120a/L120cで与えられ、ここで、LXはリンク“X”の名前を指し、Xは図1のリンクを表わす数字によって置換えられる。文字“/”はリンク名の範囲を定めるために使用される。暗示されたリンク、または少なくとも暗示されたリンク名を採用するファイルシステムでは、リンク名の代わりに、リンクに関連した親ノードおよび子ノードの名前が使用される。経路名では、経路に沿った中間ノードの名前は、1つのリンクにおける子としての、かつ次のリンクにおける親としてのその役割については繰返されず、一度しか使用されない。そのようなファイルシステムでは、フォルダ110aからファイル110dへの経路は、経路名/N110a/N110b/N110dによって与えられ、ここで、NYはノード“Y”の名前を指し、Yは図1のノードを表わす数字によって置換えられる。
経路は、リレーショナルデータベースシステムからの出力として有用である。なぜなら、異なるフォルダにおけるリソースが同じ名前を有することができ、それらのリソースがそれらに至る経路によって区別されるためである。ある特定のリソースは、経路名およびリソース名によって示される。ファイルシステムは、経路によって一意的に特定されるリソースからのデータ(たとえばファイル内のデータ、またはフォルダ内のファイルのリスト)に対して動作を行なう。
図1に示すように、階層の中には、同じノードに至る2つ以上の経路が存在するかもしれないものがある。たとえば、3つの経路がルートノード110aからファイル110gに通じている。
/L120a/L120d/L120g
/L120b/L120f/L120h
/L120b/L120e/L120g。
2つの以上の経路が子ノードに至る階層は、サイクルを含むと言われる。そのような階層は、ツリーというよりもむしろグラフとして表わされる。
図1は、以下仮想リンク190として総称される2つの仮想リンク190aおよび19
0bも示している。仮想リンク190は、フォーリン階層を管理するフォーリンファイルシステムへの参照を含む。仮想リンク190は、ネイティブ階層のフォルダを、フォーリン階層のノードに対する親ノードとする。
機能的概要
この発明の実施例によれば、フォーリン階層102、103におけるリソース130、150およびリンク140、160は、ネイティブ階層101における仮想リソースと考えられる。フォーリン階層102、103は、以下仮想リンク190として総称される対応する仮想リンク190a、190bを介して、ネイティブ階層に接続される。フォーリン階層のリソースおよびリンクに対して1組の基本ファイルシステム動作を行なうための関数が、仮想リンク190によって接続された各フォーリン階層について登録される。
目標仮想リソースにかかわる動作中にネイティブフォルダから仮想リソースに仮想リンクのうちの1つをトラバースする際、登録された関数の内の1つが呼出される。呼出される登録された関数は、目標仮想リソースに対して行なうある特定の動作に対応している。呼出された関数の入力パラメータは、目標仮想リソースを示している。
登録された関数を呼出すことにより、ファイルシステム動作がフォーリンファイルシステムのノードおよびリンクに対して、これらのノードまたはリンクをネイティブファイルシステムにインポートすることなく実行可能である。ノードおよびリンクがネイティブシステムにインポートされないため、ネイティブシステムは、これらのフォーリンノードおよびリンクを管理するのにネイティブシステムリソースを費やさない。これにより、ユーザは、フォーリンファイルシステムのノードまたはリンクをインポートすることなく、ネイティブ階層に登録されたどのフォーリン階層のデータコンテナにも到達するために、ネイティブ階層との一貫したインターフェイスを採用することができる。
構造的概要
図2は、一実施例に従った、多重階層におけるリソースを管理するためのシステム200を示すブロック図である。システム200は、リソース管理サーバ220と、1つ以上のリソースクライアント210と、1つ以上のフォーリン階層サーバ240とを含む。
図示された実施例では、リソース管理サーバ220は、ファイルシステムのリソースにファイルシステムサービスを提供するアプリケーションである。周知のファイルシステムサービスは、フォルダの内容を列挙すること、フォルダにリソースを作成すること、フォルダからリソースを削除すること、ファイルからデータを取得すること、リソースのプロパティを取得すること、リソースを1つのフォルダから別のフォルダに移動させること、およびリソースを1つのフォルダから別のフォルダにコピーすることを含む。
リソースクライアント210は、1つ以上の階層におけるリソースにかかわるファイルシステムサービスを、リソース管理サーバ220に要求する任意のアプリケーションを含む。例示された実施例では、リソースクライアント210は、リソースクライアント210a、リソースクライアント210b、および省略記号211によって表わされる他のリソースクライアントを含む。
フォーリン階層サーバ240は、フォーリンファイルシステムのリソースに対してファイルシステムサービスを提供する任意のアプリケーションを含む。例示された実施例では、フォーリン階層サーバ240は、フォーリン階層サーバ240a、フォーリン仮想サーバ240b、および省略記号241によって表わされる他のフォーリン階層サーバを含む。各フォーリン階層サーバ240は、対応するフォーリン階層のノードおよびリンクに対応しているリソースおよびリンクを表わすデータを含む。例示された実施例では、フォー
リン階層サーバ240aは、図1のフォーリン階層102のリソースおよびリンクを含み、フォーリン階層サーバ240bは、図1のフォーリン階層103のリソースおよびリンクを含む。フォーリン階層サーバ240のうちの1つ以上が、リソース管理サーバ220と同じホスト上に存在していてもよい。フォーリン階層サーバ240のいずれかまたはすべてが、リソース管理サーバ220のホストとは異なる1つ以上のホスト上に存在していてもよい。
他の実施例では、リソース管理サーバ220はデータコンテナ管理サーバによって置換えられ、それは、ファイルシステムではないかもしれない他の階層型システムにおけるデータコンテナ、たとえばXML文書にサービスを提供するアプリケーションである。データコンテナへのサービスは、ファイルシステムサービスと同様のサービス、たとえば、親コンテナの内容を列挙すること、親コンテナに子コンテナを作成すること、親コンテナから子コンテナを削除すること、コンテナからデータを取得すること、コンテナのプロパティを取得すること、コンテナを1つの親コンテナから別の親コンテナに移動させること、およびコンテナを1つの親コンテナから別の親コンテナにコピーすることを含んでいてもよい。他の実施例では、リソースクライアント210はデータコンテナクライアントによって置換えられ、それは、1つ以上の階層にかかわるデータコンテナサービスを要求するアプリケーションである。他の実施例では、フォーリン階層サーバは、階層型データコンテナ、たとえばフォーリンファイルシステム、およびXML文書の内容を編集するための異なるシステムを管理するフォーリンシステムである。
リソース管理サーバ
リソース管理サーバ220は、ネイティブ階層データ222と、階層型処理エンジン230と、クライアントインターフェイス232と、登録された関数セット234a、登録された関数セット234b、および省略記号231により表わされる他の登録された関数セットを含む登録された関数セット234とを含む。
ネイティブ階層データ222は、図1の階層101のようなネイティブ階層のノードおよびリンクに対応しているリソースおよびリンクを含む。リソース管理サーバ220が実現される際、当該技術分野において公知の、ネイティブ階層を表わすための任意の方法が採用されてもよい。たとえば、リソースおよびリンクを表わすデータは、アガーワル(Agarwal)に記載されているように構成される。
クライアントインターフェイス232は、リソース管理サーバ220のサービスへの要求を送信するための1つ以上のクライアントへのアクセスを提供する。クライアント210によって送信される要求は、当該技術分野において公知の任意の態様で表現され得る。実施例によっては、要求は、1つのホスト上で実行中のクライアント210から別のホスト上で実行中のリソース管理サーバ220に、メッセージ交換プロトコルを用いてネットワークを通して送信されるメッセージである。たとえば、実施例によっては、要求は、当該技術分野において周知のファイル転送プロトコル(FTP)要求である。実施例によっては、要求はハイパーテキスト転送プロトコル(HTTP)要求である。実施例によっては、要求は、一般的なファイルシステムを模倣するインターネット上での階層型動作をサポートするためにHTTPを拡張する、ウェブベースの分散型オーサリングおよびバージョニング(WebDAV)と呼ばれるプロトコルを使用する。アガーワルのシステムでは、メッセージは、ファイルシステムのリソースおよびリンクを表わす階層型データを管理するリレーショナルデータベース管理システムの構造化照会言語(SQL)におけるステートメントを含む。
実施例によっては、クライアント要求はメッセージとしては表現されず、アプリケーションプログラミングインターフェイス(API)において特定されたルーチンへの呼出し
として表現される。各APIは、高レベルのプログラミング言語、たとえばJAVA(登録商標)(以下、“Java”(登録商標)と呼ぶ)、C、およびPL/SQLと呼ばれるSQL手続型言語について特定される。APIの使用は、当該技術分野において周知である。APIは、クライアントによって呼出され得るルーチンに命名し、ルーチンが呼出されると引数として使用されるパラメータおよびパラメータの型を列挙する。ある実施例によれば、いくつかのプログラミング言語におけるAPIは、リソース管理サーバ220からファイルシステムサービスを取得するために提供される。
階層型処理エンジン230は、ネイティブ階層およびフォーリン階層の1つ以上のリソースまたはリンクに対する動作を判断し、実行するプロセスであり、その動作は、クライアント210から受取られた要求を満たすことに関与している。図3を参照して、階層型処理エンジン230を以下の項により詳細に説明する。
登録された関数セット234は、フォーリン階層サーバ240からのサービスに対する要求を行なうプロセスである。登録された各関数セットのプロセスをプロセッサに実行させる命令を含むデータモジュールが、リソース管理サーバ220に登録され、これらの命令は、階層型処理エンジン230が関数セットから関数を呼出すと実行される。別のプロセスにより実行される命令のそのようなモジュールは、当該技術分野において「プラグイン」モジュールとして周知である。登録された各関数セットについてのモジュールを登録するための方法を、図3を参照して以下の項に説明する。
実施例によっては、1つ以上のフォーリン階層サーバ240の各々は、リソース管理サーバ220のようなリソース管理サーバであり、それは、それにとっては外部の1つ以上の階層サーバのための、それ自体のネイティブ階層データおよび登録された関数セットを有する。
リソース管理サーバ220を用いて、クライアントは単一のインターフェイス232と相互作用し、ネイティブ階層および1つ以上のフォーリン階層を含むいくつかの階層のいずれかからリソースを取得してもよい。
多重階層を管理するための方法
図3は、一実施例に従った、多重階層におけるリソースを管理するための方法を高レベルで示すフローチャートである。図3ではステップがある特定の順序で提示されているが、他の実施例では、ステップは異なる順序で行なわれてもよく、または時間が重複していてもよい。
登録された関数セット
ステップ310で、リソース管理サーバ220によって管理されるべきリソースの各フォーリン階層について、関数セット234が登録される。1つ以上の関数の組を別のアプリケーションに登録するための任意の方法が使用されてもよい。例示された実施例では、階層型処理エンジン230によってなされる関数呼出しのためのAPIが確立され、そのAPIと整合された命令を含むモジュールが、フォーリン階層を取込みたいインテグレーションアドミニストレータによって、リソース管理サーバ220に提供される。リソース管理サーバ220は、各フォーリン階層と対応するモジュールとの間の関連を記憶する。
例示された一実施例では、関数セットは、表1に列挙された基本ファイルシステム動作を行なう関数を含む。
Figure 0004406609
他の実施例では、より多い、またはより少ない動作および対応する関数が、各関数セットに含まれていてもよい。たとえば、動作および対応する関数が、各関数セットに含まれていてもよい。たとえば、リンクを削除、改名、およびコピーするための動作が追加されてもよく、または、コピーおよび改名のための動作は、削除および作成動作の組合せで置換えることによって省略可能である。
実施例によっては、モジュール内の各関数は、基本動作名に整合する名前と、オペランドに整合するパラメータリストとを有する。各関数は次に、その動作のために、対応するフォーリン階層サーバに表1に記載された動作を実行させるコマンドを生成する1つ以上の命令を含む。
ステップ310の最中、フォーリン階層サーバ240によって管理される各フォーリン階層について、表1の動作を行なう関数を有する1つ以上のモジュールが、リソース管理サーバ220に登録される。実施例によっては、フォーリンノードがネイティブ階層にリンクされるべき経路またはフォルダの名前も特定される。実施例によっては、モジュールが登録されると、フォーリン階層の他のプロパティも特定される。たとえば、フォーリン階層のリソースが修正されてもよいか否かが特定される。修正不能なリソースは「読出専用」であるといわれ、修正可能なリソースは「修正可能」であるといわれる。フォーリン階層のリソースまたはリンクが、そのリソースまたはリンクのプロパティまたは内容について検索されることによって発見可能かどうかが特定されてもよい。そのような検索を可能にするフォーリン階層は「検索可能」であるといわれる。フォーリン階層が検索可能である場合、実施例によっては、1つ以上の検索関数が関数セットに追加され、フォーリン階層の検索能力を呼出すモジュールが登録中に提供される。フォーリン階層のリソースまたはリンクが修正可能である場合、そのような修正が加えられる際に、自動的にコミットされる(「自動コミット」と呼ばれる)か、または、いくつかのステップのトランザクションが完了されて、コミット関数を呼出すといった明示されたコミット動作が取られる場合にのみコミットされる(「トランザクショナル」)かどうかが特定されてもよい。実施例によっては、フォーリン階層のルートノードが、デフォルトにより、仮想リンクへの特定された経路名と関連付けられる。実施例によっては、フォーリン階層の非ルートノードが仮想リンクと関連付けられる。そのような実施例では、関連付けられた非ルートノードへのフォーリン階層での経路名も、ステップ310での登録中に含まれる。
実施例によっては、ネイティブ階層のフォルダをフォーリン階層のノードと関連付ける仮想リンク190への経路名に、そのフォーリン階層についての関数セットを関連付けるマッピングが、ステップ310の最中に生成される。実施例によっては、マッピングはモジュール内の個々の関数のレベルで行なわれ、そのため関数は1つ以上のモジュールにわたって分布していてもよく、関数名は表1の基本動作名と異なっていてもよい。
実施例によっては、ネイティブ階層のリンクプロパティは、リンクが仮想リンク190であるかどうか、および、そうである場合、関数セットが記憶されているモジュールの名前、または関数セットの各関数のモジュールおよび関数名のリストを示す属性を含む。経路をトラバースする間、仮想リンクに遭遇すると、関連するモジュールまたは関数を用いて、仮想リンクに沿った経路の部分上のリソースに対して動作が行なわれる。
例示のため、“create_virtual_folder”と呼ばれるリソース管理サーバ220のルーチンを呼出し、以下の情報を以下の順序でのそのルーチンのパラメータとして特定することによって、関数セットの登録が行なわれることが仮定される。
1.仮想フォルダがネイティブフォルダと関連付けられている経路名
2.表1の順序での基本動作についてのモジュールおよび関数名
3.検索可能か、読出専用か、トランザクショナルかどうかを示すフラグ。
この実施例では、仮想フォルダは常に、フォーリン階層のルートノードである。例示のため、“Basic102A”および“Basic102B”と命名されたモジュールが図1に示すフォーリン階層102についての関数セットを含み、かつ、フォーリン階層102が検索可能でも修正可能でもない、ということがさらに仮定される。次に、フォーリン階層102は、ネイティブ階層101に対し、図1に示すようにフォルダ110eの下に、以下のステートメントを用いてリソース管理サーバ220に登録され得る。
Figure 0004406609
実施例によっては、リンク名は、親リソースおよび子リソースのリソース名によって暗示される。そのような実施例では、create_virtual_folderルーチンの第1の引数としての経路名“/L120a/L120d/L190a”は、経路名“/N110a/N110b/N110e/N130a”によって置き換えられる。
例示のため、“BasicOp103”と命名されたモジュールが図1に示すフォーリン階層103についての関数セットを含み、かつ、フォーリン階層103が修正可能ではあるが検索可能ではなく、修正は自動的にコミットされる、ということがさらに仮定される。次に、フォーリン階層103は、ネイティブ階層101に対し、図1に示すようにフォルダ110fの下に、以下のステートメントを用いてリソース管理サーバ220に登録され得る。
Figure 0004406609
これらの登録の結果は、表2に要約されたようなマッピングである。
Figure 0004406609
プロセスクライアント要求
ステップ320で、多重階層100のファイルおよびフォルダに対して動作を行なうために、ファイルシステム要求がクライアント210からリソース管理サーバ220で受取られる。たとえば、フォルダ110eの下の内容をすべて列挙するために、要求がインターフェイス232で受取られる。この要求は、当該技術分野において公知の任意の態様、たとえばHTTP/WebDAVメッセージで受取られてもよい。たとえば、要求は「フォルダ/L120a/L120d/N110eの下のすべてを列挙する」という表現を含む。この要求の所望された結果は、そのフォルダの下のリソースの名前のリスティングであり、たとえば、ネイティブファイル110gの名前N110g、フォーリンフォルダ130aの名前N130a、フォーリンフォルダ130bの名前N130b、フォーリンファイル130cの名前N130c、および適切な経路名によって先行される、省略記号131により示される他のリソースの名前である。
ステップ330で、階層型処理エンジン230は、要求に基づいて、ネイティブリソースまたはリンクに対するネイティブ動作、およびフォーリンリソースまたはリンクに対するフォーリン動作を、もしあれば判断する。たとえば、エンジン230は、すべてを列挙する要求がフォルダ110eの内容を取得する次のネイティブ動作に関わることを判断する。
ステップ350で、次のネイティブ動作が実行され、それはネイティブリンク120gについての識別情報をネイティブファイル110gに、仮想リンク190aについての識
別情報をフォーリンフォルダ130aに戻す。例示のため、仮想リンク190aがネイティブ階層データ222に記憶され、フォーリン階層102のルートノードの名前を含むことが仮定される。リンクおよびリソースの名前は、クライアントに戻すための結果データ構造に挿入される。例示のため、結果データ構造が、R1で示す以下を含むよう更新されることが仮定される。
Figure 0004406609
例示された実施例では、ステップ330はステップ350と時間が重複しており、そのため、上述のように、ステップ350でネイティブ動作が実行された後、処理エンジン230はステップ330で次のフォーリン動作を判断する。ステップ330で、階層型処理エンジン230は、ネイティブファイル110gは子を持たないが、フォルダ130aは子を持つかもしれない、ということを認識する。例示された実施例では、上述のステップ310での登録中、リンク190aで終わる経路をフォーリン階層102についての関数セットと関連付けるマッピングが記憶されている。このため、階層型処理エンジン230は、フォルダ130aが、リンク190aの下にあるために、階層102にとってフォーリンフォルダである、ということを知っている。したがって、例示された実施例では、次のフォーリン動作は、/L190a/N130aに対するget-folder-contents動作である。表2のマッピングにおける経路名を使用して、フォーリン動作が、経路名/L120a/L120d/L190aに関連付けられた、表2の中央の列のものであることが判断される。
ステップ360で、次のフォーリン動作に対応するある特定の関数が、特定のフォーリン階層について登録された関数セットから選択される。例示的な実施例では、関数“Basic102A.get_folder”が選択される。表2に示すように、“Basic102A.get_folder”は、フォーリン階層102についてリンク190aの下に登録された基本動作“get-folder-contents”に対応している。
ステップ370で、選択された関数が呼出される。例示された実施例では、関数“Basic102A.get_folder”が、基本動作、経路名、およびフォルダのフォルダ名について特定されたオペランドを用いて呼出される。オペランドの経路名およびファイル名は、どのフォーリン階層かを示す仮想経路190aの下にある。たとえば、関数は、フォーリン関数呼出し1(FFI1)で示す以下の表現において呼出される。
Figure 0004406609
それは/L140a/130b、L140b/130cを戻す。
ステップ380で、ネイティブおよびフォーリン動作からの結果が任意の実存する結果と組合され、要望通り経路名を追加する。たとえば、ステップ380の後、結果データ構造は、R2で示す以下を含む。
Figure 0004406609
ステップ390で、ステップ350および370で実行された動作が、クライアントからの要求を満たすことに関わる最後の動作であるかどうかが判断される。そうではない場合、制御はステップ330に戻り、実行すべき次のネイティブおよびフォーリン動作を判断する。たとえば、ステップ370でフォルダ130aの内容を取得した後、階層型処理エンジン230は依然としてフォルダ130bの内容を取得すべきであり、そのため制御はステップ330に戻る。ステップ330で、次の動作はフォルダ/L190a/140a/130bの内容を取得することであると判断される。このフォルダは/L190aの下にあるため、それは階層102のフォーリンフォルダである。制御はステップ360へ渡り、フォルダ内容を取得する正しい関数を選択するが、それはここでも“Basic102A.get_folder”である。ステップ370で、フォルダ/L190a/L140a/N130bの内容を、以下の表現FFI2に示すような、L190aの下の経路名の部分を用いて取得するために、関数が呼出される。
Figure 0004406609
取得されたいかなる結果も、ステップ380で、結果データ構造に追加される。フォーリン階層102にフォルダが残らなくなるまで、ステップ330からステップ390へのループは継続する。
ステップ390でクライアント要求を満たすために最後の動作が実行されたと判断された場合、制御はステップ395に渡る。ステップ395で、結果はリソース管理サーバ220からクライアント210に戻される。
他の実施例では、フォルダ110eの内容を取得するネイティブ動作の結果は、次のノードへのリンクを生み出すが、ノード名は生み出さない。ノードに関連する名前は、get-resource-properties動作から取得される。リンク120g上の子ノードの名前を取得するために、ネイティブノード110gに対するネイティブ動作が行なわれる。仮想リンク190a上の子ノードの名前を取得するには、フォーリン階層に関連する関数が呼出されなければならない。この場合、ステップ330は、1)ノード110gについての名前を取得するためにネイティブ関数get-resource-propertiesを判断する、および2)ノード130aについての名前を取得するために対応するフォーリン関数が使用されるべきであることを判断することを伴う。こうして、ネイティブ動作およびフォーリン動作は、フォルダ110eの内容を列挙するクライアント要求に基づいて判断される。
要求例:ファイル取得
多重階層上のリソースを管理するための方法300の使用をさらに説明するため、階層102上のファイルの内容を取得するクライアント要求を説明する。クライアント210aのユーザが、上述の「すべてを列挙する」要求の結果として、ファイル130cが経路/L120a/L120d/L190a/L140b/上に存在することを知っている、と仮定する。ここで考慮される次の要求では、クライアント210aは、このファイルの内容を取得する要求を、リソース管理サーバ220から送信する。
ステップ330で、階層型処理エンジン230は、/L120a/L120d/L19
0a/L140b/N130cについてファイル内容を取得する要求を受取り、これを、ネイティブリソースに対するネイティブ動作とフォーリンリソースに対するフォーリン動作とに分割する。具体的には、階層型処理エンジン230は、ネイティブ動作get-file-contents from/L120a/L120d/L190a、およびフォーリン動作get-file-contents from/L140b/N130cを判断する。
ステップ350で、ネイティブ動作が、もしあれば実行される。経路/L120a/L120d/L190aはファイルを示していないため、ステップ350の最中、ファイル内容は取得されない。
ステップ360で、get-file-contentsに対応するフォーリン関数が表2のマッピングから選択される。L190aの下の階層は階層102である。階層102の下で、対応するフォーリン関数はBasic102A.get_fileである。
ステップ370で、フォーリン目標/L140b/N130cに対してフォーリン関数が呼出される。階層型処理エンジンによって形成される表現は、FFI3によって与えられる。
Figure 0004406609
FFI3の結果は、ファイル130cからの内容のデータストリームである。
ステップ380で、そのデータストリームが結果データ構造内におかれる。ステップ390で、ユーザ要求を満たすために実行すべき動作が他にないことが判断される。ステップ395で、データストリームはクライアント210aに、クライアント210aへの1つ以上のメッセージで送られる。
こうして、ネイティブ動作およびフォーリン動作は、ファイル130cの内容を取得するクライアント要求に基づいて判断される。
要求例:ファイルコピー
多重階層上のリソースを管理するための方法300の使用をさらに説明するため、階層102上のファイルを階層103のフォルダにコピーするクライアント要求を説明する。クライアント210aのユーザが、上述の「すべてを列挙する」要求の結果として、ファイル130cが経路/L120a/L120d/L190a/L140b/上に存在することを知っている、と仮定する。さらに、クライアント210aのユーザが、フォルダ110fに対するすべてを列挙する要求の結果として、フォルダ150cが経路/L120b/L120f/L190b/L160b/上に存在することを知っている、と仮定する。
ここで考慮される要求では、クライアント210aは、ファイル130cをフォルダ150cにコピーする要求を、表現Q1を用いてリソース管理サーバ220に送信する。
Figure 0004406609
ステップ330で、階層型処理エンジン230は要求Q1を受取り、これを、一連のネイティブリソースに対するネイティブ動作とフォーリンリソースに対するフォーリン動作とに分割する。ソースファイルと宛先ファイルとが同じフォーリン階層内にないため、フォーリン階層ではコピー動作は実行できない。その代わり、ソースフォーリン階層のファイル内容に基づいて、宛先フォーリン階層103にファイルが作成されなければならない。例示された実施例では、階層型処理エンジン230は以下の特定の一連の動作を判断する。
1./L120a/L120d/L190aからのネイティブ動作get-resource-properties
2.L190aの下の/L140b/N130cからのフォーリン動作get-resource-properties
3./L120a/L120d/L190aからのネイティブ動作get-file-contents
4.L190aの下の/L140b/N130cからのフォーリン動作get-file-contents
5.名前N130c、現在のプロパティ、およびget-file-contents動作からのデータストリームを用いた、フォルダ/L120b/L120f/L190bでのネイティブ動作create-file
6.名前N130c、現在のプロパティ、およびget-file-contents動作からのデータストリームを用いた、L190bの下のフォルダ/L160b/150cでのフォーリン動作create-file。
ステップ350で、次のネイティブ動作(1)が、もしあれば実行される。経路/L120a/L120d/L190aはリソースを示していないため、ステップ350の最中、リソースプロパティは取得されない。
ステップ360で、get-resource-propertiesである次のフォーリン動作(2)に対応するフォーリン関数が、表2のマッピングから選択される。L190aの下の階層は階層102である。階層102の下で、対応するフォーリン関数はBasic102A.get_attributesである。
ステップ370で、フォーリン目標/L140b/N130cに対してフォーリン関数が呼出される。階層型処理エンジンによって形成される表現は、FFI4によって与えられる。
Figure 0004406609
FFI4の結果は、所有者、作成日といったファイル130cについての属性の値の現在の属性データ構造である。
ステップ380で、結果データ構造に記録された結果はない。コピー動作が行なわれる
際、結果はクライアントに戻されない。
ステップ390で、ユーザ要求を満たすために実行される他の動作、すなわち上に列挙した動作3、4、5、6があると判断される。
ステップ350の次の繰返しの際、次のネイティブ動作(3)が実行される。経路/L120a/L120d/L190aはファイルを示していないため、ステップ350の最中、ファイル内容は取得されない。
ステップ360の次の繰返しの際、get-file-contentsである次のフォーリン動作(4)に対応するフォーリン関数が、表2のマッピングから選択される。L190aの下の階層は階層102である。階層102の下で、対応するフォーリン関数はBasic102A.get_fileである。
ステップ370で、フォーリン目標/L140b/N130cに対してフォーリン関数が呼出される。階層型処理エンジンによって形成される表現は、FFI5(前の項で説明したFFI3と同様)によって与えられる。
Figure 0004406609
FFI5の結果は、ファイル130cからの内容のデータストリームである。
ステップ390で、ユーザ要求を満たすために実行される他の動作、すなわち、上に列挙した動作5、6があることが判断される。
ステップ350の次の繰返しの際、create-file動作である次のネイティブ動作(5)が実行される。経路/L120a/L120d/L190aはフォルダを示していないため、ステップ350の最中、ファイルは作成されない。
ステップ360の次の繰返しの際、create-fileである次のフォーリン動作(6)に対応するフォーリン関数が、表2のマッピングから選択される。L190bの下の階層は階層103である。階層103の下で、対応するフォーリン関数はBasicOp103.new_fileである。
ステップ370で、フォーリン目標/L160b/N150cに対してフォーリン関数が呼出される。階層型処理エンジンによって形成される表現は、FFI6によって与えられる。
Figure 0004406609
ここで、プロパティは、現在の属性データ構造における値を示している。FFI6の結果は、ファイル130cからの属性および内容のデータストリームに基づいた、階層103内の新しいファイルである。
こうして、いくつかのネイティブ動作およびいくつかのフォーリン動作が、フォーリン階層102のファイル130cの内容をフォーリン階層103のフォルダ150cにコピーするクライアント要求に基づいて判断される。
ハードウェア概要
図4は、この発明の一実施例が実現され得るコンピュータシステム400を示すブロック図である。コンピュータシステム400は、情報を通信するためのバス402または他の通信メカニズムと、情報を処理するためにバス402と結合されたプロセッサ404とを含む。コンピュータシステム400はまた、プロセッサ404により実行されるべき命令および情報を記憶するためにバス402に結合された、ランダムアクセスメモリ(RAM)または他のダイナミック記憶装置といったメインメモリ406も含む。メインメモリ406は、プロセッサ404により実行されるべき命令の実行中に一時的な変数または他の中間情報を記憶するためにも使用されてもよい。コンピュータシステム400はさらに、プロセッサ404用の命令およびスタティック情報を記憶するためにバス402に結合された読出専用メモリ(ROM)408または他のスタティック記憶装置を含む。磁気ディスクまたは光ディスクといった記憶装置410が、情報および命令を記憶するために提供され、バス402に結合されている。
コンピュータシステム400は、情報をコンピュータユーザに表示するためのブラウン管(CRT)などのディスプレイ412に、バス402を介して結合されていてもよい。英数字キーおよび他のキーを含む入力装置414が、情報およびコマンド選択をプロセッサ404に通信するためにバス402に結合されている。ユーザ入力装置の別の種類は、方向情報およびコマンド選択をプロセッサ404に通信し、ディスプレイ412上のカーソルの動きを制御するための、マウス、トラックボール、またはカーソル方向キーといったカーソル制御416である。この入力装置は通常、2つの軸、つまり第1の軸(たとえばx)および第2の軸(たとえばy)において2つの自由度を有しており、それによりこの装置は平面における場所を特定することができる。
この発明は、ここに説明された手法を実現するためのコンピュータシステム400の使用に関する。この発明の一実施例によれば、それらの手法は、プロセッサ404がメインメモリ406に含まれる1つ以上の命令の1つ以上のシーケンスを実行するのに応じて、コンピュータシステム400によって実行される。そのような命令は、記憶装置410などの別のコンピュータ読み取り可能な媒体からメインメモリ406に読込まれてもよい。メインメモリ406に含まれる命令のシーケンスの実行により、プロセッサ404は、ここに説明されたプロセスステップを実行するようになる。代替的な実施例では、この発明を実現するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組合わせて、ハードワイヤード回路が使用されてもよい。このため、この発明の実施例は、ハードウェア回路とソフトウェアとのどの特定の組合せにも限定されない。
ここで用いられるような用語「コンピュータ読み取り可能な媒体」とは、プロセッサ404に命令を実行用に提供することに関与するあらゆる媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体、および通信媒体を含むもののそれらに限定されない多くの形態を取り得る。不揮発性媒体はたとえば、記憶装置410などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ406などのダイナミックメモリを含む。通信媒体は、バス402を構成する配線を含む、同軸ケーブル、銅線および光ファイバを含む。通信媒体はまた、無線周波数および赤外線データ通信中に発生するものといった音波または光波の形も取り得る。
コンピュータ読み取り可能な媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁
気媒体、CD−ROM、任意の他の光媒体、パンチカード、紙テープ、孔のパターンを有する任意の他の物理的媒体、RAM、PROM、EPROM、FLASH−EPROM、任意の他のメモリチップまたはカートリッジ、以下に説明するような搬送波、または、コンピュータがそこから読み取り可能な任意の他の媒体を含む。
コンピュータ読み取り可能な媒体のさまざまな形態は、プロセッサ404への1つ以上の命令の1つ以上のシーケンスを実行用に保持することに関与していてもよい。たとえば、命令はまず、遠隔コンピュータの磁気ディスク上に保持されてもよい。遠隔コンピュータは命令をそのダイナミックメモリにロードし、電話回線を通してモデムを用いて命令を送信することができる。コンピュータシステム400にとってローカルなモデムは、電話回線上のデータを受信し、赤外線送信機を用いてデータを赤外線信号に変換することができる。赤外線検出器は赤外線信号で搬送されたデータを受信でき、適切な回路がデータをバス402上に配置することができる。バス402はデータをメインメモリ406に搬送し、そこからプロセッサ404が命令を検索して実行する。メインメモリ406によって受信された命令は、プロセッサ404による実行の前または後のいずれかで、記憶装置410上に随意に記憶されてもよい。
コンピュータシステム400はまた、バス402に結合された通信インターフェイス418も含む。通信インターフェイス418は、ローカルネットワーク422に接続されたネットワークリンク420に双方向データ通信結合を提供する。たとえば、通信インターフェイス418は、データ通信接続を対応する種類の電話回線に提供するデジタル相互サービス網(ISDN)カード、またはモデムであってもよい。別の例として、通信インターフェイス418は、データ通信接続を互換性があるLANに提供するローカルエリアネットワーク(LAN)カードであってもよい。無線リンクも実現され得る。任意のそのような実現化例では、通信インターフェイス418は、さまざまな種類の情報を表わすデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送信および受信する。
ネットワークリンク420は通常、1つ以上のネットワークを介して、他のデータ装置にデータ通信を提供する。たとえば、ネットワークリンク420は、ローカルネットワーク422を介して、ホストコンピュータ424に、またはインターネットサービスプロバイダ(ISP)426により運営されるデータ装置に、接続を提供してもよい。ISP426は次に、現在一般に「インターネット」428と呼ばれている全世界的パケットデータ通信ネットワークを介して、データ通信サービスを提供する。ローカルネットワーク422およびインターネット428は双方とも、デジタルデータストリームを搬送する電気信号、電磁信号または光信号を使用する。コンピュータシステム400へ、またはコンピュータシステム400からデジタルデータを搬送する、さまざまなネットワークを通る信号、ネットワークリンク420上の信号、および通信インターフェイス418を通る信号は、情報を運ぶ搬送波の例示的な形態である。
コンピュータシステム400は、ネットワーク、ネットワークリンク420および通信インターフェイス418を介して、メッセージを送信し、プログラムコードを含むデータを受信する。インターネットの例では、サーバ430は、アプリケーションプログラム用の要求されたコードを、インターネット428、ISP426、ローカルネットワーク422、および通信インターフェイス418を介して送信してもよい。
受信されたコードは、受信された際にプロセッサ404によって実行されてもよく、および/または、後での実行用に記憶装置410または他の不揮発性ストレージに記憶されてもよい。このように、コンピュータシステム400は、搬送波の形をしたアプリケーションコードを取得し得る。
前述の明細書において、この発明を、その特定の実施例を参照して説明してきた。しかしながら、この発明のより幅広い精神および範囲を逸脱することなく、様々な修正および変更がそれになされてもよいことは、明らかである。したがって、明細書および図面は、限定的な意味というよりもむしろ例示的な意味で考慮されるべきである。
一実施例に従った、多重ファイルシステムにおけるノードおよびリンクの多重階層を示すブロック図である。 一実施例に従った、多重階層におけるリソースを管理するためのシステムを示すブロック図である。 一実施例に従った、多重階層におけるリソースを管理するための方法を高レベルで示すフローチャートである。 この発明の一実施例が実施され得るコンピュータシステムを示すブロック図である。

Claims (15)

  1. データコンテナの複数の階層を管理するためのリソース管理サーバであって、各階層は複数のノードを含み、各ノードはデータコンテナに対応しており、
    前記リソース管理サーバは、
    前記複数のノードのうちのクライアントの外部のノードに対応するデータコンテナに対して前記リソース管理サーバが行なう動作のための関数の組をリソース管理サーバに登録する手段を含み、その関数が呼出されると、前記リソース管理サーバは、前記複数のノードのうちのクライアントの外部のノードに対応するデータコンテナに対して前記動作の組のうちのいずれかの動作を行ない、
    前記複数のノードのうちの前記クライアントの外部のノードに対応するデータコンテナに対して前記リソース管理サーバが行なう動作を示すユーザ要求を受取る手段と、
    登録された関数の中から、ユーザ要求により示された動作に対応する関数を選択する選択手段と、
    前記選択手段により選択された関数を呼出すことにより、前記クライアントの外部のノードに対応するデータコンテナに対して前記リソース管理サーバが動作を行なわせる呼出手段とを含み、
    前記動作の組は、
    データコンテナを作成する動作と、
    データコンテナからデータを取得する動作と、
    データコンテナ内のデータを更新する動作と、
    データコンテナを削除する動作とを含む、リソース管理サーバ。
  2. データコンテナのネイティブ階層からのデータコンテナの複数の階層をリソース管理サーバにより管理するための方法であって、各階層は複数のノードを含み、各ノードはデータコンテナに対応しており、前記データコンテナのネイティブ階層はリレーショナルデータベース内に記憶され、
    前記方法は、
    前記ネイティブ階層以外の各フォーリン階層について、前記リソース管理サーバが、1組の動作に対応する1組のルーチンを登録するステップを含み、前記1組のルーチンから
    ルーチンが呼出されると、前記フォーリン階層における1つ以上のデータコンテナに対して1組の動作のうちの1つ以上の動作を前記リソース管理サーバが行ない、特定のフォーリン階層について特定の組のルーチンが前記リソース管理サーバに登録可能であり
    前記登録するステップは、ルーチンの組と仮想リンクへの経路と関連づけるマッピングを前記リソース管理サーバが生成するステップを含み、前記仮想リンクは、ナイティブ階層内のデータコンテナとフォーリン階層内のデータコンテナとを関連付け、前記方法はさらに、
    第1のフォーリン階層のノードに対応している特定のデータコンテナに対するある特定の動作を示すユーザ要求を前記リソース管理サーバが受取るステップと、
    ユーザ要求に基づいて、前記第1のフォーリン階層の1つ以上のデータコンテナの第1の組に対して行なう第1の動作を前記リソース管理サーバが判断するステップと、
    マッピングに基づいて、前記第1のフォーリン階層に対して登録された第1の組のルーチンを前記リソース管理サーバが選択するステップと、
    前記第1のフォーリン階層について登録された前記第1の組のルーチンから、第1の動作に対応するある特定のルーチンを前記リソース管理サーバが選択するステップと、
    1つ以上のデータコンテナの前記第1の組を前記ネイティブ階層にインポートせずに、1つ以上のデータコンテナの前記第1の組に対して動作を行なうよう、前記特定のルーチンを前記リソース管理サーバが呼出すステップとを含む、方法。
  3. 前記リソース管理サーバがユーザ要求を受取る前記ステップはさらに、
    複数の階層のいずれかにおける1つ以上のデータコンテナに対して動作を行なう要求を特定するための制御を用いて、単一のインターフェイスをユーザに前記リソース管理サーバが提示するステップと、
    制御のうちの少なくとも1つのユーザ起動に基づいてユーザ入力を前記リソース管理サーバが受取るステップと、
    ユーザ要求を、ユーザ入力に基づいて、1つ以上のデータコンテナに対する1組の1つ以上の動作として前記リソース管理サーバが形成するステップとを含む、請求項に記載の方法。
  4. 1組の動作は、
    データコンテナを作成する動作と、
    データコンテナからデータを取得する動作と、
    データコンテナ内のデータを更新する動作と、
    データコンテナを削除する動作と、
    1つの親データコンテナのデータコンテナを別の親データコンテナにコピーする動作と、
    データコンテナを、前記第1の親データコンテナから前記第1の親データコンテナとは異なる第2の親データコンテナに移動させる動作とを含む、請求項に記載の方法。
  5. 1組の動作は、親データコンテナによって所有される子データコンテナにわたって繰返す動作を含む、請求項に記載の方法。
  6. データコンテナにわたって繰返す動作は、
    繰返しを開始する動作と、
    次の子データコンテナを提供する動作と、
    繰返しを終了する動作とを含む、請求項に記載の方法。
  7. 第1の動作は特定の動作と同じである、請求項に記載の方法。
  8. 第1の動作は特定の動作とは異なる、請求項に記載の方法。
  9. 前記リソース管理サーバが判断するステップは、ユーザ要求に基づいて、ネイティブ階層の1つ以上のデータコンテナの第2の組に対する第2の動作を前記リソース管理サーバが判断するステップをさらに含む、請求項2に記載の方法。
  10. 第2の動作は特定の動作と同じである、請求項に記載の方法。
  11. 第2の動作は特定の動作とは異なる、請求項に記載の方法。
  12. 特定のルーチンを前記リソース管理サーバが呼出すステップから戻された第1の結果を含む応答をユーザに前記リソース管理サーバが送るステップをさらに含む、請求項に記載の方法。
  13. 特定のルーチンを前記リソース管理サーバが、呼出すステップから戻された第1の結果第2の動作からの第2の結果と組合わせてユーザへの応答とするステップと、
    応答をユーザに前記リソース管理サーバが送るステップとをさらに含む、請求項に記載の方法。
  14. 前記リレーショナルデータベースは第1のホストから管理され、前記第1の階層の第1の組の1つ以上のデータコンテナは、前記第1のホストとは異なる第2のホスト上に存在するフォーリン階層サーバ内に記憶される、請求項2に記載の方法。
  15. 1つ以上のプロセッサにより実行される際、1つ以上のプロセッサに請求項1〜14のいずれかに記載の方法を実行させるプログラムを記憶するコンピュータ読み取り可能な媒体。
JP2004551876A 2002-11-06 2003-11-06 単一のインターフェイスからのデータの多重階層を管理するための手法 Expired - Lifetime JP4406609B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US42454302P 2002-11-06 2002-11-06
US10/305,990 US6947950B2 (en) 2002-11-06 2002-11-26 Techniques for managing multiple hierarchies of data from a single interface
PCT/US2003/035552 WO2004044781A2 (en) 2002-11-06 2003-11-06 Techniques for managing multiple hierarchies of data from a single interface

Publications (2)

Publication Number Publication Date
JP2006505872A JP2006505872A (ja) 2006-02-16
JP4406609B2 true JP4406609B2 (ja) 2010-02-03

Family

ID=32179505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004551876A Expired - Lifetime JP4406609B2 (ja) 2002-11-06 2003-11-06 単一のインターフェイスからのデータの多重階層を管理するための手法

Country Status (8)

Country Link
US (1) US6947950B2 (ja)
EP (1) EP1559036B1 (ja)
JP (1) JP4406609B2 (ja)
AU (1) AU2003290655B2 (ja)
CA (1) CA2505158C (ja)
DE (1) DE60325758D1 (ja)
HK (1) HK1077107A1 (ja)
WO (1) WO2004044781A2 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271971B2 (en) * 2002-11-26 2012-09-18 Hewlett-Packard Development Company, L.P. System and method for automated program updating in a remote appliance
US7257598B2 (en) * 2002-12-19 2007-08-14 Nokia Corporation System and method for generating descriptive link names
US7493309B2 (en) * 2003-01-16 2009-02-17 International Business Machines Corporation Framework for dynamic analysis of varying structured data using multiple analysis techniques
US7209925B2 (en) * 2003-08-25 2007-04-24 International Business Machines Corporation Method, system, and article of manufacture for parallel processing and serial loading of hierarchical data
US20050065937A1 (en) * 2003-09-22 2005-03-24 International Business Machines Corporation Virtual resources method, system, and service
WO2005114396A2 (en) * 2004-05-21 2005-12-01 Computer Associates Think, Inc. Reporting module definition language system and method
US20060122959A1 (en) * 2004-11-08 2006-06-08 Chris Hample Systems and methods for organizing, sharing, and communicating data
US7801854B2 (en) * 2004-11-15 2010-09-21 Microsoft Corporation Managing lists and other items in an electronic file system
US7801755B2 (en) * 2005-05-11 2010-09-21 Oracle Inernational Corporation Management hierarchy for enterprise applications and methods and systems for generating reports using same
US7818344B2 (en) 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US20070073663A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for providing full-text searching of managed content
US20070073638A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for using soft links to managed content
US7917537B2 (en) * 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US7680905B1 (en) * 2005-09-30 2010-03-16 Emc Corporation Methods and system for viewing SAN resources
US8949455B2 (en) * 2005-11-21 2015-02-03 Oracle International Corporation Path-caching mechanism to improve performance of path-related operations in a repository
US8015165B2 (en) * 2005-12-14 2011-09-06 Oracle International Corporation Efficient path-based operations while searching across versions in a repository
US7472140B2 (en) * 2005-12-20 2008-12-30 Oracle International Corporation Label-aware index for efficient queries in a versioning system
US7543004B2 (en) * 2005-12-22 2009-06-02 Oracle International Corporation Efficient support for workspace-local queries in a repository that supports file versioning
US7533136B2 (en) * 2005-12-22 2009-05-12 Oracle International Corporation Efficient implementation of multiple work areas in a file system like repository that supports file versioning
US7730032B2 (en) 2006-01-12 2010-06-01 Oracle International Corporation Efficient queriability of version histories in a repository
US9229967B2 (en) * 2006-02-22 2016-01-05 Oracle International Corporation Efficient processing of path related operations on data organized hierarchically in an RDBMS
US20070219929A1 (en) * 2006-03-14 2007-09-20 Jochen Steinbach Planning granularity in manufacturing computing systems
JP4492569B2 (ja) * 2006-03-20 2010-06-30 日本電気株式会社 ファイル操作制御装置、ファイル操作制御システム、ファイル操作制御方法及びファイル操作制御プログラム
US20070250527A1 (en) * 2006-04-19 2007-10-25 Ravi Murthy Mechanism for abridged indexes over XML document collections
US8060833B2 (en) 2007-02-21 2011-11-15 International Business Machines Corporation Method and system for computer folder management
US10007668B2 (en) * 2008-08-01 2018-06-26 Vantrix Corporation Method and system for triggering ingestion of remote content by a streaming server using uniform resource locator folder mapping
US20100131513A1 (en) 2008-10-23 2010-05-27 Lundberg Steven W Patent mapping
US9904726B2 (en) 2011-05-04 2018-02-27 Black Hills IP Holdings, LLC. Apparatus and method for automated and assisted patent claim mapping and expense planning
CN103548020B (zh) * 2011-05-12 2017-06-27 华为技术有限公司 用于由小树进行的大小可变分层名称的最长前缀匹配的方法和系统
US20130086033A1 (en) 2011-10-03 2013-04-04 Black Hills Ip Holdings, Llc Systems, methods and user interfaces in a patent management system
US20130086044A1 (en) * 2011-10-03 2013-04-04 Steven W. Lundberg System and method for patent activity profiling
US9237190B2 (en) * 2012-04-18 2016-01-12 Samsung Electronics Co., Ltd. Node and method for generating shortened name robust against change in hierarchical name in content-centric network (CCN)
US11487707B2 (en) * 2012-04-30 2022-11-01 International Business Machines Corporation Efficient file path indexing for a content repository
WO2014106274A1 (en) * 2012-12-31 2014-07-03 Perinote LLC Methods and systems for organizing information
US11074231B1 (en) * 2013-03-15 2021-07-27 Informatica Llc Validating modifications to mapping statements for processing hierarchical data structures
US20170322696A1 (en) 2016-05-07 2017-11-09 Perinote LLC Selecting and performing contextual actions via user interface objects
US11500862B2 (en) * 2020-07-23 2022-11-15 Pivotal Software, Inc. Object relational mapping with a single database query

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US101194A (en) * 1870-03-22 Improvement in sliding doors
US5257365A (en) 1990-03-16 1993-10-26 Powers Frederick A Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records
JPH0667951A (ja) 1992-05-20 1994-03-11 Nec Corp データベース管理システム
JPH0619763A (ja) * 1992-07-02 1994-01-28 Nec Corp ファイル名/ディレクトリ名拡張方式
US5463772A (en) * 1993-04-23 1995-10-31 Hewlett-Packard Company Transparent peripheral file systems with on-board compression, decompression, and space management
JP3335801B2 (ja) * 1995-07-05 2002-10-21 株式会社日立製作所 異種ファイルへのアクセスを可能とする情報処理システム及びその制御方法
US5893109A (en) 1996-03-15 1999-04-06 Inso Providence Corporation Generation of chunks of a long document for an electronic book system
US5893104A (en) * 1996-07-09 1999-04-06 Oracle Corporation Method and system for processing queries in a database system using index structures that are not native to the database system
US6208993B1 (en) 1996-07-26 2001-03-27 Ori Software Development Ltd. Method for organizing directories
US6226649B1 (en) * 1997-06-23 2001-05-01 Oracle Corporation Apparatus and method for transparent access of foreign databases in a heterogeneous database system
GB2329044B (en) 1997-09-05 2002-10-09 Ibm Data retrieval system
US6141655A (en) 1997-09-23 2000-10-31 At&T Corp Method and apparatus for optimizing and structuring data by designing a cube forest data structure for hierarchically split cube forest template
US5974407A (en) 1997-09-29 1999-10-26 Sacks; Jerome E. Method and apparatus for implementing a hierarchical database management system (HDBMS) using a relational database management system (RDBMS) as the implementing apparatus
US6487546B1 (en) 1998-08-27 2002-11-26 Oracle Corporation Apparatus and method for aggregate indexes
US6279007B1 (en) 1998-11-30 2001-08-21 Microsoft Corporation Architecture for managing query friendly hierarchical values
US6704739B2 (en) * 1999-01-04 2004-03-09 Adobe Systems Incorporated Tagging data assets
US6370537B1 (en) * 1999-01-14 2002-04-09 Altoweb, Inc. System and method for the manipulation and display of structured data
US6427123B1 (en) 1999-02-18 2002-07-30 Oracle Corporation Hierarchical indexing for accessing hierarchically organized information in a relational system
HK1020419A2 (en) * 1999-03-16 2000-03-17 Shi Piu Joseph Fong Frame model for universal database in database reengineering and integration
US6496842B1 (en) 1999-05-28 2002-12-17 Survol Interactive Technologies Navigating heirarchically organized information
US6470344B1 (en) 1999-05-29 2002-10-22 Oracle Corporation Buffering a hierarchical index of multi-dimensional data
US6721727B2 (en) 1999-12-02 2004-04-13 International Business Machines Corporation XML documents stored as column data
US6604100B1 (en) * 2000-02-09 2003-08-05 At&T Corp. Method for converting relational data into a structured document
EP1275054A1 (en) 2000-02-11 2003-01-15 Acta Technologies, Inc. Nested relational data model
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
US20020056025A1 (en) 2000-11-07 2002-05-09 Qiu Chaoxin C. Systems and methods for management of memory
US6681221B1 (en) * 2000-10-18 2004-01-20 Docent, Inc. Method and system for achieving directed acyclic graph (DAG) representations of data in XML
US6785718B2 (en) 2000-10-23 2004-08-31 Schneider Logistics, Inc. Method and system for interfacing with a shipping service
US6611843B1 (en) * 2000-10-26 2003-08-26 Docent, Inc. Specification of sub-elements and attributes in an XML sub-tree and method for extracting data values therefrom
US6542911B2 (en) 2001-03-01 2003-04-01 Sun Microsystems, Inc. Method and apparatus for freeing memory from an extensible markup language document object model tree active in an application cache
US6968334B2 (en) 2001-05-15 2005-11-22 Nokia Corporation Method and business process to maintain privacy in distributed recommendation systems
US6725212B2 (en) * 2001-08-31 2004-04-20 International Business Machines Corporation Platform-independent method and system for graphically presenting the evaluation of a query in a database management system
AU2002334721B2 (en) 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
WO2003058375A2 (en) * 2001-10-26 2003-07-17 Zeosoft Corporation Development, management of distributed clients and servers
US7487168B2 (en) 2001-11-01 2009-02-03 Microsoft Corporation System and method for loading hierarchical data into relational database systems
US9374451B2 (en) 2002-02-04 2016-06-21 Nokia Technologies Oy System and method for multimodal short-cuts to digital services
US7570943B2 (en) 2002-08-29 2009-08-04 Nokia Corporation System and method for providing context sensitive recommendations to digital services
US7350077B2 (en) * 2002-11-26 2008-03-25 Cisco Technology, Inc. 802.11 using a compressed reassociation exchange to facilitate fast handoff
US7634480B2 (en) 2003-05-08 2009-12-15 Microsoft Corporation Declarative rules for metadirectory

Also Published As

Publication number Publication date
DE60325758D1 (de) 2009-02-26
CA2505158A1 (en) 2004-05-27
CA2505158C (en) 2010-05-04
HK1077107A1 (en) 2006-02-03
US20040088306A1 (en) 2004-05-06
AU2003290655B2 (en) 2008-09-25
AU2003290655A1 (en) 2004-06-03
EP1559036B1 (en) 2009-01-07
WO2004044781A3 (en) 2005-01-20
JP2006505872A (ja) 2006-02-16
EP1559036A2 (en) 2005-08-03
US6947950B2 (en) 2005-09-20
WO2004044781A2 (en) 2004-05-27

Similar Documents

Publication Publication Date Title
JP4406609B2 (ja) 単一のインターフェイスからのデータの多重階層を管理するための手法
JP5787963B2 (ja) コンピュータプラットフォームのプログラミングインターフェース
JP4816281B2 (ja) 文書利用管理システム、文書管理サーバ及びそのプログラム
CA2522309C (en) Retaining hierarchical information in mapping between xml documents and relational data
US7778966B2 (en) Method and system for attribute management in a namespace
JP5710851B2 (ja) 影響分析のためのシステムおよび方法
CA2626844C (en) Managing relationships between resources stored within a repository
US20060195477A1 (en) Storage API for a common data platform
US20100017403A1 (en) System and method for scoping searches using index keys
JP2006107446A (ja) ネットワーク・ドキュメントのバッチ索引付けのためのシステムおよび方法
JP2000090076A (ja) ドキュメント管理方法およびドキュメント管理システム
JP2005182835A (ja) 異種のデータソースのためのデータサーバを生成する方法
JP2007521533A (ja) アプリケーションプログラムをアイテムベースのストレージプラットフォームとインターフェースするためのシステムおよび方法
JP2001101042A (ja) データ管理システム及びデータ管理方法
US7627547B2 (en) Processing path-based database operations
US20040167871A1 (en) Content mining for virtual content repositories
CN100429654C (zh) 用于管理来自单个接口的多层次数据的技术
JP2007521537A (ja) データの編成、検索、および共有のためのストレージプラットフォーム
JPH117445A (ja) 統合化文書管理装置
JPH11161660A (ja) 文書管理方法及びその実施システム並びにその処理プログラムを記録した媒体
JP2002215452A (ja) ファイル情報データベースシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080916

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081215

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090114

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090706

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090713

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: 20091013

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: 20091109

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

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4406609

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131113

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

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

EXPY Cancellation because of completion of term