IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECプラットフォームズ株式会社の特許一覧

特許7525225情報処理装置、ファイル管理方法およびプログラム
<>
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図1
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図2
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図3
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図4
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図5
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図6
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図7
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図8
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図9
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図10
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図11
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図12
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図13
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図14
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図15
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図16
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図17
  • 特許-情報処理装置、ファイル管理方法およびプログラム 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-07-22
(45)【発行日】2024-07-30
(54)【発明の名称】情報処理装置、ファイル管理方法およびプログラム
(51)【国際特許分類】
   G06F 16/13 20190101AFI20240723BHJP
   G06F 16/176 20190101ALI20240723BHJP
【FI】
G06F16/13 200
G06F16/176
【請求項の数】 7
(21)【出願番号】P 2023039277
(22)【出願日】2023-03-14
【審査請求日】2023-03-14
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】高橋 正幸
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2009-026258(JP,A)
【文献】特開2017-211922(JP,A)
【文献】特開平10-154091(JP,A)
【文献】特開2007-164597(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
ファイルを記憶する記憶手段と、
前記ファイルの保存場所である仮想ディレクトリを指定するタグを作成するタグ管理手段と、
クライアント毎に、当該クライアントの接続先情報と、当該クライアントが利用する階層ルールと、当該階層ルールに対応する仮想ディレクトリ構成とを示すエントリを保持する対応テーブルと、
前記仮想ディレクトリの構成を指定する階層ルールを作成する階層ルール管理手段と、
前記階層ルールに基づいて、仮想ディレクトリを階層的に構成し、前記タグに基づいて、前記階層的に構成された仮想ディレクトリのいずれかに前記ファイルを配置した仮想ディレクトリ構成を作成する仮想ディレクトリ構成形成手段と、
クライアントから前記ファイルへのアクセスがあると、当該クライアントの接続先情報と、当該クライアントが利用する階層ルールとに対応するエントリを前記対応テーブルから特定し、前記特定したエントリに示される仮想ディレクトリ構成に基づいてファイルリストを作成し、前記作成したファイルリストを前記クライアントに応答する仮想ファイル手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記仮想ディレクトリ構成形成手段は、
前記階層ルールに基づいて、仮想ディレクトリを階層的に構成した仮想ディレクトリ構成を作成する仮想ディレクトリ配置手段と、
前記仮想ディレクトリ構成に対して、前記タグに基づいて、前記仮想ディレクトリ配置手段により階層的に構成された仮想ディレクトリのいずれかに前記ファイルを配置する仮想ファイル配置手段と、
を含むことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記タグ管理手段は、
前記クライアントからタグ設定コマンドを受け付けると、前記タグ設定コマンドで指定されたファイルの保存場所である仮指定想ディレクトリを指定するタグを作成する、
ことを特徴とする請求項に記載の情報処理装置。
【請求項4】
前記階層ルール管理手段は、
前記クライアントから階層ルール設定コマンドを受け付けると、前記階層ルール設定コマンドで指定されたディレクトリ構成に基づいて、仮想ディレクトリの構成を指定する階層ルールを作成する、
ことを特徴とする請求項に記載の情報処理装置。
【請求項5】
前記仮想ファイル手段は、
前記クライアントから階層ルール選択コマンドを受け付けると、前記クライアントの接続先情報に対応付けて、前記クライアントが利用する階層ルールと、当該階層ルールに対応する前記仮想ディレクトリ構成とを設定したエントリを、前記対応テーブル上に作成する、
ことを特徴とする請求項に記載の情報処理装置。
【請求項6】
情報処理装置が、
クライアント毎に、当該クライアントの接続先情報と、当該クライアントが利用する階層ルールと、当該階層ルールに対応する仮想ディレクトリ構成とを示すエントリを保持する対応テーブルを記憶し、
ファイルの保存場所である仮想ディレクトリを指定するタグを作成し、
前記仮想ディレクトリの構成を指定する階層ルールを作成し、
前記階層ルールに基づいて、仮想ディレクトリを階層的に構成し、前記タグに基づいて、前記階層的に構成された仮想ディレクトリのいずれかに前記ファイルを配置した仮想ディレクトリ構成を作成し、
クライアントから前記ファイルへのアクセスがあると、当該クライアントの接続先情報と、当該クライアントが利用する階層ルールとに対応するエントリを前記対応テーブルから特定し、前記特定したエントリに示される仮想ディレクトリ構成に基づいてファイルリストを作成し、前記作成したファイルリストを前記クライアントに応答する
ファイル管理方法。
【請求項7】
クライアント毎に、当該クライアントの接続先情報と、当該クライアントが利用する階層ルールと、当該階層ルールに対応する仮想ディレクトリ構成とを示すエントリを保持する対応テーブルを記憶する情報処理装置のコンピュータを、
ファイルの保存場所である仮想ディレクトリを指定するタグを作成するタグ管理機能、 前記仮想ディレクトリの構成を指定する階層ルールを作成する階層ルール管理機能、 前記階層ルールに基づいて、仮想ディレクトリを階層的に構成し、前記タグに基づいて、前記階層的に構成された仮想ディレクトリのいずれかに前記ファイルを配置した仮想ディレクトリ構成を作成する仮想ディレクトリ構成形成機能、
クライアントから前記ファイルへのアクセスがあると、当該クライアントの接続先情報と、当該クライアントが利用する階層ルールとに対応するエントリを前記対応テーブルから特定し、前記特定したエントリに示される仮想ディレクトリ構成に基づいてファイルリストを作成し、前記作成したファイルリストを前記クライアントに応答する仮想ファイル機能、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、ファイル管理方法およびプログラムに関する。
【背景技術】
【0002】
仮想ファイルシステムにおけるファイルサーバは、クライアントに対して、記憶媒体におけるファイルの物理的な保存位置ではなく、ファイルや、ディレクトリなどのメタデータに従って作成した仮想ディレクトリ構成に基づいて、ルートをはじまりとして階層的に構成された複数のディレクトリと、各ディレクトリに配置されたファイルとを提示する。
【0003】
例えば、特許文献1では、データファイルに係る関連情報をデータファイルと関連付けるためのインデックスファイルの情報を外部機器の有するファイルシステムの構造に変換することで、インデックスファイルと同様のファイル構成およびファイル名で表示させる技術が提案されている。また、特許文献2では、ファイルシステムにおけるディレクトリとファイルとの階層構造を、利用者の利用状況に応じて動的に構成する技術が提案されている。
【0004】
上述した特許文献1、2のいずれにおいても、クライアント/ユーザが異なっていても、共有ファイルシステムを同じディレクトリ構成で提示している。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2006-133882号公報
【文献】特開2005-174063号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述したように、特許文献1、2では、クライアント/ユーザが異なっていても、共有ファイルシステムを同じディレクトリ構成で提示するため、共有ファイルシステムを複数のユーザで利用している場合、他のユーザが勝手にディレクトリを作成したり、ファイルの配置を変えられたりすると、目的のファイルを見つけるのが困難になるという問題があった。
【0007】
そこで本発明は、上述の課題を解決する情報処理装置、ファイル管理方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0008】
この開示の第1の態様によれば、情報処理装置は、ファイルを記憶する記憶手段と、前記ファイルの保存場所である仮想ディレクトリを指定するタグを作成するタグ管理手段と、前記仮想ディレクトリの構成を指定する階層ルールを作成する階層ルール管理手段と、前記階層ルールに基づいて、仮想ディレクトリを階層的に構成し、前記タグに基づいて、前記階層的に構成された仮想ディレクトリのいずれかに前記ファイルを配置した仮想ディレクトリ構成を作成する仮想ディレクトリ構成形成手段と、を備える。
【0009】
この開示の第2の態様によれば、ファイル管理方法は、ファイルの保存場所である仮想ディレクトリを指定するタグを作成するステップと、前記仮想ディレクトリの構成を指定する階層ルールを作成するステップと、前記階層ルールに基づいて、仮想ディレクトリを階層的に構成し、前記タグに基づいて、前記階層的に構成された仮想ディレクトリのいずれかに前記ファイルを配置した仮想ディレクトリ構成を作成するステップと、を含むことを特徴とする。
【0010】
この開示の第3の態様によれば、情報処理装置のコンピュータを、ファイルの保存場所である仮想ディレクトリを指定するタグを作成するタグ管理機能、前記仮想ディレクトリの構成を指定する階層ルールを作成する階層ルール管理機能、前記階層ルールに基づいて、仮想ディレクトリを階層的に構成し、前記タグに基づいて、前記階層的に構成された仮想ディレクトリのいずれかに前記ファイルを配置した仮想ディレクトリ構成を作成する仮想ディレクトリ構成形成機能、として機能させる。
【発明の効果】
【0011】
以上説明したように、クライアント/ユーザに応じて、ディレクトリ構成およびファイルの配置を異ならせて提示することができるという利点が得られる。
【図面の簡単な説明】
【0012】
図1】本発明の実施形態によるファイルサーバ101の構成を示すブロック図である。
図2】本実施形態において、ファイル601、602に設定されたタグ801、802の一例を示す概念図である。
図3】本実施形態において、ファイル共有サービスに対して設定された階層ルール701、702の一例を示す概念図である。
図4】本実施形態における仮想ディレクトリ構成(dentry)311、312、313の一例を示す概念図である。
図5】本実施形態によるファイルサーバ101のタグ設定時の動作を説明するためのフローチャートである。
図6】本実施形態によるファイルサーバ101の初期状態を説明するための概念図である。
図7】本実施形態によるファイルサーバ101のタグ設定時の一動作例を説明するための概念図である。
図8】本実施形態によるファイルサーバ101の階層ルール設定時の動作を説明するためのフローチャートである。
図9】本実施形態によるファイルサーバ101の階層ルール設定時の一動作例を説明するための概念図である。
図10】本実施形態によるファイルサーバ101の階層ルール選択時#1の動作を説明するためのフローチャートである。
図11】本実施形態によるファイルサーバ101の階層ルール選択時#2の動作を説明するためのフローチャートである。
図12】本実施形態によるファイルサーバ101の階層ルール選択時#2の動作を説明するためのフローチャートである。
図13】本実施形態によるファイルサーバ101に対してクライアント103が階層ルール選択コマンドを実行したときの一動作例を説明するための概念図である。
図14】本実施形態によるファイルサーバ101に対してクライアント104が階層ルール選択コマンドを実行したときの一動作例を説明するための概念図である。
図15】本実施形態によるファイルサーバ101に対してクライアント103、104からのファイルリストアクセス時の動作を説明するためのフローチャートである。
図16】本実施形態によるファイルサーバ101に対してクライアント103、104からのファイルリストアクセス時の一動作例を説明するための概念図である。
図17】本実施形態によるファイルサーバ101の階層ルール削除時の動作を説明するためのフローチャートである。
図18】本実施形態によるファイルサーバの最小構成を示すブロック図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態を、図面を参照して説明する。
【0014】
A.実施形態の構成
図1は、本発明の実施形態によるファイルサーバ101の構成を示すブロック図である。ファイルサーバ(情報処理装置)101は、ネットワーク100を介して、クライアント103、104と、認証サーバ102とに接続されている。クライアント103、104は、それぞれ認証サーバ102上に登録されているユーザ901、902によって利用され、認証サーバ102のそれらユーザの認証が成功した場合に、ファイルサーバ101が公開するファイル共有サービスにCIFS(Common Internet File System)などでアクセスする。
【0015】
ファイルサーバ101は、CLI(Command Line Interface;コマンドラインインターフェース)機能201と、ファイル共有機能202と、VFS(Virtual Filesystem System;仮想ファイルシステム、仮想ファイル手段)301と、ローカルファイルシステム401と、ストレージ(記憶手段)501とから構成されている。なお、上記ファイル共有サービスの機能は、ファイル共有機能202とVFS301から提供される
【0016】
CLI機能201は、クライアント103、104からのコマンドを処理する。CLI機能201は、クライアント103、104からのコマンド受付時にコマンドの内容に応じて、タグ801、802を設定するタグ設定手段211と、階層ルール701、702を設定する階層ルール設定手段212と、階層ルール701、702の選択を行う階層ルール選択手段213と、階層ルール701、702の削除を行う階層ルール削除手段214とを備えている。
【0017】
タグ801、802は、ファイル601、602毎に付与されており、ファイル601、602を配置するディレクトリを示す情報であって、ファイル601、602のメタデータ511に保持される。階層ルール701、702は、ディレクトリの見え方(階層構造)を示す情報であり、ファイルシステムのメタデータ511に保持される(iノードやスーパーブロックなど)。階層ルール701、702は、複数持つことができ、その数分dentryキャッシュ(ディレクトリとファイルの管理情報;以下、単にdentryともいう)311、312、313を持つ。例えば、ユーザが所属する組織における部門#1では階層ルール#1、部門#2では階層ルール#2を適用するようにした場合、階層ルール#1を変更しても、部門#2側でのディレクトリ構成の見え方には影響しない。また、ファイルの作成/削除、タグの付け外し、階層ルールの作成、修正を行うと、dentry311、312、313は、マウント時に、作成されるか、または切り替えられる。
【0018】
ファイル共有機能202は、クライアント103、104からのファイル共有アクセスを処理する。ファイル共有機能202は、VFS301が提供するファイルシステムに紐づくファイル共有サービスを公開する。ファイル共有機能202は、クライアント103、104からのアクセス時に、どのユーザでアクセスしているかを確認可能な接続先管理手段215を有する。
【0019】
VFS301は、ローカルファイルシステム401の差異を吸収し、システムコールを利用したファイル601、602へのアクセスを提供する。VFS301は、仮想ディレクトリ配置手段(仮想ディレクトリ構成形成手段)331と、仮想ファイル配置手段(仮想ディレクトリ構成形成手段)332と、タグ管理手段333と、階層ルール管理手段334と、対応テーブル321と、dentryキャッシュ(dentry311、312、313…)とから構成されている。
【0020】
仮想ディレクトリ配置手段331は、ローカルファイルシステム401を介してストレージ501上のメタデータ511に記録された階層ルール701、702を読み出して、dentryキャッシュ上に仮想ディレクトリのdentry311、312、313を作成し、階層的なディレクトリ構成を作成する。仮想ファイル配置手段332は、同様にメタデータ511に記録されたファイル601、602に対応するタグ801、802を読み出してdentry311、312、313上の階層的なディレクトリ構成の該タグ801、802の内容に対応した位置に、ファイル601、602を配置するようにdentry311、312、313を作成する。
【0021】
タグ管理手段333は、CLI機能201からタグ設定を受け付けたときにメタデータ上のタグ801、802を保持/更新する。階層ルール管理手段334は、CLI機能201から階層ルール設定を受け付けたときにメタデータ511上に階層ルール701、702を保持/更新する。対応テーブル321は、どのクライアントのどのユーザがどの階層ルール701、702を利用しているか、また該階層ルール701、702に対応するdentry311、312、313がどれであるかを示すエントリを管理する。
【0022】
dentry311、312、313は、ファイル名、ディレクトリ階層構造、キャッシュの管理を担うデータ構造の一つであり、タグ801、802の設定内容および階層ルール701、702の設定内容に基づいて、ディレクトリの階層構成およびファイルの配置を示す情報である。dentry311、312、313は、クライアント103、104からのファイルアクセスや、階層ルール選択などに応じて、仮想ディレクトリ配置手段331と仮想ファイル配置手段332によって作成される。
【0023】
ローカルファイルシステム401とストレージ501とは、メタデータ511と、ユーザ実データ512とを保持する。ストレージ501は、物理的にファイル601、602や、ディレクトリのデータなどを記録する。メタデータ511上には、ファイル601、602のそれぞれに対応するタグ801、802と階層ルール701、702とが保持される。
【0024】
本実施形態において、ファイルサーバ101では、タグ801、802をファイル601、602毎のメタデータ511に、階層ルール701、702をファイルシステムのメタデータ511に持たせる。例えば、ファイルシステムをマウントしたときに、これらの情報を読み込み、タグ801、802と階層ルール701、702に従ってdentry311、312、313を作成する。こうしてメモリ上にディレクトリのツリー構造を再現することで、実際にはディレクトリが作られていなくても、仮想ディレクトリ構成としてアクセス可能にする。
【0025】
クライアント103、104からは、ファイル601、602に対してタグの付け外しを可能とし、階層ルール701、702を設定、選択できるようにすることで、例えば、共有をマウントするときに階層ルール701、702を指定すると、その指定内容に従ったディレクトリ構成でファイル601、602にアクセスできるようになる。また、クライアント103、104が重要視するファイル601またはファイル602が上位層のディレクトリに配置されるように、当該ファイル601またはファイル602に付与されるタグ801またはタグ802の設定内容、および階層ルール701または階層ルール702によるディレクトリ構成を意図的に変更するなどして、見え方/まとめ方を柔軟に変えることができる。
【0026】
図2(a)、(b)は、本実施形態において、ファイルに設定されたタグ801、802(タグ情報)の一例を示す概念図である。図2(a)に示す例では、“File”で示される“ファイル601”に対して、“TAG”の“name”の項目が示す「ユーザ対応」と「対応中」の2つの“name”を示すタグ801が設定されていることを示している。また、図2(b)に示す例では、“File”で示される“ファイル602”に対して、“TAG”の“name” の項目が示す「ユーザ対応」の1つの“name”を示すタグ802が設定されていることを示している。
【0027】
図3(a)、(b)は、本実施形態において、ファイル共有サービスに対して設定された階層ルール701、702の一例を示す概念図である。図3(a)に示す例では、“name”の項目において名前が指定された“階層ルール701”であって、ファイル共有サービスのルートディレクトリを基準とした階層ルールとして、共有サービスのルートディレクトリ直下に、“DIR”の“name”で示される「ユーザ対応」の名称のディレクトリを持ち、またその配下に“subdir”の“name”で示される「対応中」の名称のディレクトリを持つことが示されている。また、図3(b)に示す例では、“name”の項目において名前が指定された“階層ルール702”であって、共有サービスのルートディレクトリ直下に、“DIR”の“name”で示される「対応中」の名称のディレクトリを持つことが示されている。
【0028】
図4(a)~(c)は、本実施形態における仮想ディレクトリ構成(dentry)311、312、313の一例を示す概念図である。図4(a)に示す例は、dentry311(仮想ディレクトリ構成1001)として、ファイル共有サービスのroot(「/」)の直下に各ファイル601、602が配置されることを示している(初期状態)。また、図4(b)に示す例は、図2(a)に示すように、ファイル601に対して、タグとして「ユーザ対応」、「対応中」の2つの“name”を示すタグが設定され、図2(b)に示すように、ファイル602に対して、タグとして「ユーザ対応」の1つの“name”を示すタグが設定されている場合の仮想ディレクトリ構成(dentry)の例である。すなわち、dentry312(仮想ディレクトリ構成1002)として、ファイル共有サービスのroot(「/」)の直下に、/ユーザ対応/対応中/ファイル601と配置され、/ユーザ対応/ファイル602と配置されることを示している。同様に、図4(c)に示す例は、ファイル601に対してのみ、タグとして「対応中」の1つの“name”を示すタグが設定されている場合の仮想ディレクトリ構成(dentry)の例である。すなわち、dentry313(仮想ディレクトリ構成1003)として、root(「/」)直下に、/対応中/ファイル601、/未定義/ファイル602と配置されることを示している。なお、「未定義」ディレクトリは、ファイルにタグが付いていない場合や、共有サービス直下に配置される仮想ディレクトリにマッチするタグが付いていないファイルを配置するために、システム側において自動で作成される。
【0029】
B.実施形態の動作
図5は、本実施形態によるファイルサーバ101のタグ設定時の動作を説明するためのフローチャートである。CLI機能201が、クライアント(例えば、ユーザ901が操作しているクライアント103)からタグ設定コマンドC1を受け付けると(ステップS10)、タグ設定手段211が、VFS301にシステムコールSCを送る(ステップS12)。タグ設定コマンドC1には、ユーザ901が指定したファイルのファイル名やタグファイルのファイル名が含まれてよい。またタグ設定コマンドC1と共に、クライアント103はユーザの操作により設定コマンドC1により指定したタグファイル801が送信されてよい。タグファイル801により階層を指定しようとしているファイル601やファイル602は予めストレージ501のルートディレクトリ直下に置かれているとする。システムコールSCを受け取ったVFS301は、タグ設定コマンドC1で指定されたファイル名に対応するファイル(例えばファイル601)のストレージ501における存在をチェックし(ステップS14)、指定されたファイル名に対応するファイルが存在するか(記録されているか)否かを判断する(ステップS16)。そして、指定されたファイルが存在しない場合には(ステップS16のNO)、VFS301は、システムコールSCに対する応答(エラー)をCLI機能201に返す(ステップS18)。次に、CLI機能201は、クライアント(例えば、クライアント103)に対してコマンドの実行結果を応答(エラー)する(ステップS20)。その後、当該処理を終了する。
【0030】
一方、今ファイル601等が置かれているとしたので、タグ設定コマンドC1で指定されたファイルが存在する場合には(ステップS16のYES)、タグ管理手段333が、ファイル(例えばファイル601)に対応するメタデータのタグの設定内容を、タグ設定コマンドC1で指定された内容に修正する(ステップS22)。例えばファイルに対応するメタデータのタグの設定内容を、タグ設定コマンドC1で指定された内容に書き換える。またはタグ管理手段333は受信したタグファイル801の内容に更新してもよい。次に、VFS301は、対応テーブル321にいずれかの階層ルールを利用するエントリがあるかを確認する(ステップS24)。つまりVFS301は、タグ設定コマンドC1で指定されたクライアントとユーザに対応する階層ルールがあるかを確認する。なお、対応テーブルはどのクライアントの、どのユーザが、どの階層ルールを使用するか、またその階層ルールに対応するdentryはどれかを指定するためのテーブルであり、初期においては対応テーブルに記述はない。VFS301は、対応テーブル321に指定されたクライアントとユーザに対応するエントリがあるか否かを判断する(ステップS26)。そして、対応テーブル321にエントリがない場合には(ステップS26のNO)、VFS301は、システムコールSCに対する応答(正常)をCLI機能201に返す(ステップS30)。次に、CLI機能201は、クライアント(例えば、クライアント103)に対してタグ設定コマンドC1の実行結果を応答する(ステップS32)。この場合、クライアント(例えば、クライアント103)には、default情報として、図4(a)に示すdentry311(仮想ディレクトリ構成1001)に従うファイルリストが送信される。その後、当該処理を終了する。
【0031】
一方、対応テーブル321にエントリがある場合には(ステップS26のYES)、対応テーブル321のエントリからdentryと階層ルールとを特定し、dentry更新(後述する図11のステップS100)へ進む(ステップS28)。
【0032】
図6は、本実施形態によるファイルサーバ101の初期状態を説明するための概念図である。図6に示す例は、クライアント103のユーザ901がファイルサーバ101のファイル共有サービスにアクセスし、ファイル601、602を作成した状態である。dentry311における仮想ディレクトリ構成1001は、図4(a)に示すように、ファイル共有サービスのroot直下に各ファイル601、602が配置された状態(初期状態)になっている。
【0033】
初期状態では、ファイル601とファイル602を持つ、ローカルファイルシステム401を、VFS301を通して、ファイル共有機能202が共有名サービスとしてファイル共有している。この初期状態において、ユーザ901がネットワーク100を介してファイルサーバ101のファイル共有サービスにアクセスすると、対応テーブル321には、まだエントリがないため、default情報として、図4(a)に示すdentry311(仮想ディレクトリ構成1001)に応じたファイルリストがクライアント103に返される。
【0034】
図7は、本実施形態によるファイルサーバ101のタグ設定時の一動作例を説明するための概念図である。上述した初期状態において、図7に示すように、例えば、クライアント103のユーザ901が、ファイル601、602に対してタグを付与するためのタグ設定コマンドC1を、ネットワーク100を介して送信すると、タグ設定コマンドC1を受け付けたCLI機能201は、図7に示すように、タグ設定手段211を呼び出し、システムコールSCをVFS301に送る。VFS301では、指定されたファイル601、602の存在をチェックし、指定されたファイル601、602が存在する場合には、タグ管理手段333が、タグ設定コマンドC1の内容に基づいて、メタデータ511上にファイル601に対応するタグ801と、ファイル602に対応するタグ802とを修正して保存する。このとき、対応テーブル321には、エントリが無いため、タグ設定コマンドC1が正常終了したとして、CLI機能201からクライアント103に応答が返信される。
【0035】
図8は、本実施形態によるファイルサーバ101の階層ルール設定時の動作を説明するためのフローチャートである。CLI機能201は、クライアント(例えば、クライアント103)から階層ルール設定コマンドC2を受け付けると(ステップS30)、階層ルール設定手段212を呼び出し、階層ルール管理手段334を呼び出すためのシステムコールSCをVFS301に送る(ステップS32)。VFS301では、呼び出された階層ルール管理手段334が、階層ルール設定コマンドC2で指定された階層ルールが存在するかメタデータをチェックし(ステップS34)、指定された階層ルールが存在するか否かを判断する(ステップS36)。そして、指定された階層ルールが存在しない場合には(ステップS36のNO)、階層ルール管理手段334は、メタデータ511上に、階層ルール設定コマンドC2と共にクライアント(例えばクライアント13)から受信した階層ルール701のファイル(データ)を保存する(ステップS38)。VFS301は、システムコールSCに対する応答をCLI機能201に返し(ステップS46)、CLI機能201は、クライアント(例えば、クライアント103)に対して階層ルール設定コマンドC2の実行結果を応答する(ステップS48)。その後、当該処理を終了する。
【0036】
一方、指定された階層ルールが存在する場合には(ステップS36のYES)、メタデータ上の該当階層ルールの設定内容を、階層ルール設定コマンドC2で指定された内容、またはクライアントから受信した階層ルール701のファイル内の情報に修正する(ステップS40)。次に、VFS301は、対応テーブル321に該当階層ルールを利用するエントリがあるか確認し(ステップS42)、対応テーブル321にエントリがあるか否かを判断する(ステップS44)。そして、対応テーブル321にエントリがない場合には(ステップS44のNO)、上述したように、VFS301は、システムコールSCに対する応答をCLI機能201に返し(ステップS46)、CLI機能201は、クライアント(例えば、クライアント103)に対して階層ルール設定コマンドC2の実行結果を応答する(ステップS48)。その後、当該処理を終了する。
【0037】
一方、対応テーブル321にエントリがある場合には(ステップS44のYES)、対応テーブル321のエントリからdentryと階層ルールとを特定し、dentry更新(後述する図11のステップS100)へ進む(ステップS50)。
【0038】
図9は、本実施形態によるファイルサーバ101の階層ルール設定時の一動作例を説明するための概念図である。例えば、クライアント103のユーザ901が、ファイルサーバ101のファイル共有サービスに、階層ルール701を設定するための階層ルール設定コマンドC2を、ネットワーク100を介して送信する。階層ルール設定コマンドC2を受け付けたCLI機能201は、階層ルール設定手段212を呼び出し、図9に示すように、階層ルール管理手段334を呼び出すためのシステムコールSCをVFS301に送る。VFS301では、階層ルール管理手段334が、指定された階層ルール701の存在を確認し、指定された階層ルール701が存在しない場合には、階層ルール設定コマンドC2で指定されたディレクトリ構成に基づいて、メタデータ511上に階層ルール701を保存する。そして、階層ルール設定コマンドC2が正常終了したとして、CLI機能201は、クライアント103に応答を返す。
【0039】
図10は、本実施形態によるファイルサーバ101の階層ルール選択時#1の動作を説明するためのフローチャートである。ユーザは、ファイルサーバ101に保存したファイルに対して階層ルールを選択して適用する必要がある。CLI機能201は、クライアント(例えば、クライアント103)から階層ルール選択コマンドC3を受け付けると(ステップS60)、階層ルール選択手段213を呼び出し、接続先管理手段215で接続先情報を調べ、引数で指定される接続先情報(例えば、クライアント103のユーザ901に関する情報や階層ルールの名称などの識別子)を含むシステムコールSCをVFS301に送る(ステップS62)。次に、VFS301では、階層ルール管理手段334が、指定された接続先情報の階層ルールの存在を階層ルールの名称などの識別子に基づいてチェックし(ステップS64)、指定された接続先情報の階層ルールが存在しない場合には(ステップS66のNO)、VFS301は、システムコールSCに対する応答(エラー)をCLI機能201に返す(ステップS68)。次に、CLI機能201は、クライアント(例えば、クライアント103)に対して階層ルール選択コマンドC3の実行結果を応答(エラー)する(ステップS70)。その後、当該処理を終了する。
【0040】
一方、指定された階層ルールが存在する場合には(ステップS66のYES)、VFS301は、対応テーブル321にCLI機能201から通知された接続先情報に関するエントリがあるか確認し(ステップS72)、対応テーブル321にエントリが存在するか否かを判断する(ステップS74)。そして、対応テーブル321に通知された接続先情報に関するエントリが無い場合には(ステップS74のNO)、VFS301は、対応テーブル321に接続先情報に関するエントリを作成する(ステップS76)。
【0041】
一方、対応テーブル321に通知された接続先情報に関するエントリが既にあった場合(ステップS74のYES)、あるいはステップS76でエントリを作成した後、VFS301は、対応テーブル321に該当階層ルールに関するエントリがあるか否かを確認し(ステップS78)、対応テーブル321に該当階層ルールに関するエントリがあるか否かを判断する(ステップS80)。そして、対応テーブル321にさらに、該当階層ルールに関するエントリがある場合には(ステップS80のYES)、VFS301は、接続先情報に関するエントリで参照するdentryキャッシュを、階層ルールに関するエントリのdentryキャッシュに書き換える(ステップS82)。次に、VFS301は、システムコールSCに対する応答をCLI機能201に返す(ステップS84)。CLI機能201は、クライアント(例えば、クライアント103)に対して階層ルール選択コマンドC3の実行結果を応答する(ステップS86)。その後、当該処理を終了する。
【0042】
一方、対応テーブル321に該当階層ルールに関するエントリがない場合には(ステップS80のNO)、指定された階層ルールからdentry作成(後述する図11のステップS102)へ進む(ステップS88)。
【0043】
図11および図12は、本実施形態によるファイルサーバ101の階層ルール選択時#2の動作を説明するためのフローチャートである。なお、上述した図5のステップS28、図8のS50からは、当該フローチャートのステップS100へ進み、図10のステップS88からは、ステップS102へ進む。
【0044】
まず、VFS301は、特定されたdentryを削除(更新)し(ステップS100)、メタデータから指定された階層ルールの設定内容を確認する(ステップS102)。次に、仮想ディレクトリ配置手段331は、rootディレクトリ直下に、「未定義」ディレクトリを設定したdentryを作成し(ステップS104)、階層ルールの設定内容に従って、ディレクトリを設定したdentryを作成する(ステップS106)。
【0045】
次に、仮想ディレクトリ配置手段331は、階層ルールの設定内容にサブディレクトリがあるかをチェックし(ステップS108)、サブディレクトリがあるか否かを判断する(ステップS110)。そして、サブディレクトリがある場合には(ステップS110のYES)、サブディレクトリを設定したdentryを作成する(ステップS112)。その後、サブディレクトリがなくなるまで、ステップS108~S112で、サブディレクトリを設定したdentryを作成する。
【0046】
一方、階層ルールの設定内容にサブディレクトリがない場合には(ステップS110のNO)、仮想ディレクトリ配置手段331は、階層ルールの設定内容の最後であるかをチェックし(ステップS114)、設定内容の最後であるか否かを判断する(ステップS116)。そして、設定内容の最後でない場合には(ステップS116のNO)、仮想ディレクトリ配置手段331は、ステップS106に戻る。その後、ステップS106~S112を繰り返し、階層ルールの設定内容に従って、全てのディレクトリおよびサブディレクトリを設定したdentryを作成する。
【0047】
一方、階層ルールの設定内容の最後である場合には(ステップS116のYES)、仮想ファイル配置手段332は、存在するファイルについて、root直下の仮想ディレクトリ名とマッチするタグが存在するかをチェックし(ステップS118)、マッチするタグが存在するか否かを判断する(ステップS120)。そして、root直下の仮想ディレクトリ名とマッチするタグが存在しない場合には(ステップS120のNO)、当該ファイルを、「未定義」ディレクトリに配置するようにdentryを作成する(ステップS122)。
【0048】
一方、root直下の仮想ディレクトリ名とマッチするタグが存在する場合には(ステップS120のYES)、仮想ファイル配置手段332は、その仮想ディレクトリ配下の仮想ディレクトリ名とマッチするタグが存在するかをチェックし(ステップS124)、マッチするタグが存在するか否かを判断する(ステップS126)。そして、その仮想ディレクトリ名とマッチするタグが存在する場合には(ステップS126のYES)、仮想ファイル配置手段332は、配下の仮想ディレクトリへ進み(ステップS128)、ステップS124に戻り、上述したチェックと判断を繰り返す。
【0049】
一方、その仮想ディレクトリ名とマッチするタグが存在しない場合には(ステップS126のNO)、仮想ファイル配置手段332は、当該ファイルを、最後にマッチした仮想ディレクトリに配置するようにdentryを作成する(ステップS130)。
【0050】
次に、ステップS130でdentryの作成後、あるいはステップS122で「未定義」ディレクトリにファイルを配置するようにdentryを作成した後、仮想ファイル配置手段332は、最後のファイルであるかメタデータをチェックし(ステップS132)、最後であるか否かを判断する(ステップS134)。そして、最後のファイルでない場合には(ステップS134のNO)、ステップS118に戻り、上述した処理を繰り返す。
【0051】
一方、最後のファイルである場合には(ステップS134のYES)、対応テーブル321のエントリに該dentryの識別子(dentry312など)を記憶する(ステップS136)。次に、VFS301は、システムコールSCに対する応答をCLI機能201に返す(ステップS138)。CLI機能201は、クライアント(例えば、クライアント103)に対して階層ルール選択コマンドC3の実行結果を応答する(ステップS140)。その後、当該処理を終了する。
【0052】
図13は、本実施形態によるファイルサーバ101に対してクライアント103が階層ルール選択コマンドを実行したときの一動作例を説明するための概念図である。例えば、図13に示すように、クライアント103のユーザ901が、ファイルサーバ101のファイル共有サービスに、メタデータ511上に登録済の階層ルール701を適用するための階層ルール選択コマンドC3を実行する。CLI機能201は、階層ルール選択コマンドC3を受け付けると、図13に示すように、階層ルール選択手段213を呼び出し、引数で指定されるユーザ901に関する接続先情報を含むシステムコールSCをVFS301に送る。VFS301は、階層ルール管理手段334によって、指定された階層ルール701の存在を確認し、指定された接続先情報の階層ルール701が存在する場合には、対応テーブル321上にクライアント103/ユーザ901に関するエントリが存在するか確認する。そして、エントリが無い場合には、図13に示すように、VFS301は、対応テーブル321上にクライアント103/ユーザ901の接続先情報に対応付けて、階層ルール701と、該階層ルール701に対応するdentry312とを設定したエントリ(図示の例では「クライアント103 ユーザ901 階層ルール701 dentry312」)を作成する。
【0053】
仮想ディレクトリ配置手段331は、階層ルール701の設定内容を確認し、まず、root直下に「未定義」ディレクトリを設定したdentry312(仮想ディレクトリ構成1002)を作成する。次に、仮想ディレクトリ配置手段331は、図3(a)に示す階層ルール701の設定内容に従って、root直下に「ユーザ対応」ディレクトリを設定したdentry312(仮想ディレクトリ構成1002)を作成する(図4(b)を参照)。さらに、「ユーザ対応」にはサブディレクトリの設定があるため、仮想ディレクトリ配置手段331は、「ユーザ対応」ディレクトリのサブディレクトリとして「対応中」ディレクトリを設定したdentry312(仮想ディレクトリ構成1002)を作成する(図4(b)を参照)。
【0054】
このように、仮想ディレクトリ配置手段331が、階層ルール701の設定内容に従って順次ディレクトリ構成を構築し、最後の設定まで仮想ディレクトリを作成し終えると、VFS301は、仮想ファイル配置手段332を呼び出す。仮想ファイル配置手段332は、メタデータ511上のすべてのファイル601、602のメタデータ511を確認し、タグ801、802が設定されていないファイルがroot直下の「未定義」ディレクトリに配置されるようにdentry312(仮想ディレクトリ構成1002)を作成する。
【0055】
例えば、ファイル601とファイル602に、図2(a)、(b)に示すようにタグが設定されている場合、rootから仮想ディレクトリの名前を順次チェックし、タグと同じディレクトリ名がある場合には、その仮想ディレクトリに進んで、配下の仮想ディレクトリの名前をチェックし、最後にマッチした仮想ディレクトリに配置するようにdentry312(仮想ディレクトリ構成1002)を作成する。
【0056】
ファイル601の場合には、図2(a)に示すように、タグとして「ユーザ対応」、「対応中」が設定されているため、/ユーザ対応/対応中/ファイル601と配置されるようにdentry312(仮想ディレクトリ構成1002)が作成される(図4(b)を参照)。同様に、ファイル602の場合、図2(b)に示すように、タグとして「ユーザ対応」が設定されているため、/ユーザ対応/ファイル602と配置されるようにdentry312(仮想ディレクトリ構成1002)が作成される(図4(b)を参照)。
【0057】
そして、メタデータ上のファイル全てについて配置し終えると、VFS301は、システムコールSCの応答をCLI機能201に返し、CLI機能201は、階層ルール選択コマンドC3の実行結果をクライアント103に応答する。
【0058】
図14は、本実施形態によるファイルサーバ101に対してクライアント104が階層ルール選択コマンドを実行したときの一動作例を説明するための概念図である。例えば、図14に示すように、クライアント104のユーザ902が、ファイルサーバ101のファイル共有サービスに、メタデータ511上に登録済の階層ルール702を適用するための階層ルール選択コマンドC3を実行する。CLI機能201は、階層ルール選択コマンドC3を受け付けると、図14に示すように、階層ルール選択手段213を呼び出し、引数で指定されるユーザ901を含むシステムコールSCをVFS301に送る。VFS301では、階層ルール管理手段334が、階層ルール選択コマンドC3で指定された階層ルール702の存在を確認し、指定され階層ルール702が存在する場合には、対応テーブル321上にクライアント104/ユーザ902に関するエントリが存在するか確認する。そして、エントリが無い場合には、図14に示すように、VFS301は、対応テーブル321上にクライアント104/ユーザ902の接続先情報に対応付けて、階層ルール702と、該階層ルール702に対応するdentry313とを設定したエントリ(図示の例では「クライアント104 ユーザ902 階層ルール702 dentry313」)を作成する。
【0059】
仮想ディレクトリ配置手段331は、階層ルール701の設定内容を確認し、まず、root直下に「未定義」ディレクトリを設定したdentry313(仮想ディレクトリ構成1003)を作成する。次に、仮想ディレクトリ配置手段331は、図3(b)に示す階層ルール702の設定に従って、root直下に「対応中」ディレクトリを設定したdentry312(仮想ディレクトリ構成1002)を作成する(図4(c)を参照)。この場合、「対応中」にはサブディレクトリの設定がないため、「対応中」ディレクトリのみを設定したdentry312(仮想ディレクトリ構成1002)となる(図4(c)を参照)。
【0060】
仮想ディレクトリを作成し終えると、VFS301は、仮想ファイル配置手段332を呼び出す。仮想ファイル配置手段332は、メタデータ511上のすべてのファイルのメタデータを確認し、タグが設定されていないファイルがroot直下の「未定義」ディレクトリに配置されるようにdentry312(仮想ディレクトリ構成1002)を作成する。
【0061】
ファイル601の場合には、図2(a)に示すように、タグとして「ユーザ対応」、「対応中」が設定されているため、/対応中/ファイル601と配置されるようにdentry313(仮想ディレクトリ構成1003)が作成される。そして、ファイル602の場合には、図2(b)に示すように、タグとして「ユーザ対応」が設定されているが、「ユーザ対応」ディレクトリはないため、/未定義/ファイル602と配置されるようにdentry313(仮想ディレクトリ構成1003)が作成される(図4(c)を参照)。
【0062】
そして、メタデータ上のファイル全てについて配置し終えると、VFS301は、システムコールSCの応答をCLI機能201に返し、CLI機能201は、階層ルール選択コマンドC3の実行結果をクライアント103に応答する。
【0063】
図15は、本実施形態によるファイルサーバ101に対してクライアント103、104からのファイルリストアクセス時の動作を説明するためのフローチャートである。クライアント103のユーザ901と、クライアント104のユーザ902とが、ファイルサーバ101のファイル共有サービスにファイル共有機能202を通してアクセスすると、CLI機能201は、クライアント103、104からファイルリストを読み込む(ステップS160)。次に、ファイル共有機能202の接続先管理手段215が、接続先情報(クライアント/ユーザ)を調べ、該当接続先情報(クライアント/ユーザ)を含むシステムコールSCをVFS301に送る(ステップS162)。
【0064】
次に、VFS301は、受け取った接続先情報(クライアント/ユーザ)に対応するエントリが存在するか対応テーブル321をチェックし(ステップS164)、エントリが存在するか否かを判断する(ステップS166)。そして、接続先情報に対応するエントリが対応テーブル321に存在する場合には(ステップS166のYES)、VFS301は、接続情報に基づく該当エントリから該当するdentryキャッシュを選択する(ステップS168)。一方、接続先情報に対応するエントリが対応テーブル321に無い場合には(ステップS166のNO)、VFS301は、標準のdentryキャッシュを選択する(ステップS170)。
【0065】
上記ステップS168、S170のいずれかが終了後、VFS301は、選択したdentryキャッシュからファイルリストを作成し(ステップS172)、システムコールSCに対する応答をファイル共有機能202に返す(ステップS174)。ファイル共有機能202は、クライアント(例えば、クライアント103)に対して、上記ファイルリストを応答する(ステップS176)。その後、当該処理を終了する。
【0066】
図16は、本実施形態によるファイルサーバ101に対してクライアント103、104からのファイルリストアクセス時の一動作例を説明するための概念図である。上述した対応テーブル321へのエントリ登録後、クライアント103のユーザ901と、クライアント104のユーザ902とが、ファイルサーバ101のファイル共有サービスにファイル共有機能202を通してアクセスすると、ファイル共有機能202の接続先管理手段215が、接続先情報(クライアント/ユーザ)を調べ、該当接続先情報(クライアント/ユーザ)を含むシステムコールSCをVFS301に送信する。
【0067】
VFS301は、受け取った接続先情報(クライアント/ユーザ)に対応するエントリがあるか対応テーブル321を調べる。クライアント103/ユーザ901からのアクセスに対しては、エントリ「クライアント103 ユーザ901 階層ルール701 dentry312」が対応するので、VFS301は、図4(b)に示すdentry312(仮想ディレクトリ構成1002)に従って、クライアント103にファイルリストを返す。同様に、クライアント104/ユーザ902からのアクセスに対しては、エントリ「クライアント104 ユーザ902 階層ルール702 dentry313」が対応するので、VFS301は、図4(c)に示すdentry313(仮想ディレクトリ構成1003)に従って、クライアント104にファイルリストを返す。
【0068】
図17は、本実施形態によるファイルサーバ101の階層ルール削除時の動作を説明するためのフローチャートである。CLI機能201が、クライアント(例えば、クライアント103)から階層ルール削除コマンドC4を受け付けると(ステップS190)、階層ルール削除手段214は、VFS301にシステムコールSCを送る(ステップS192)。システムコールSCを受け取ったVFS301は、削除が指定された階層ルールが存在するかメタデータ511をチェックし(ステップS194)、該当階層ルールが存在するか否かを判断する(ステップS196)。そして、該当階層ルールが無い場合には(ステップS196のNO)、VFS301は、システムコールSCに対する応答(エラー)をCLI機能201に返す(ステップS202)。CLI機能201は、クライアント(例えば、クライアント103)に対して階層ルール削除コマンドC4の実行結果を応答(エラー)する(ステップS204)。その後、当該処理を終了する。
【0069】
一方、削除が指定された階層ルールが存在する場合には(ステップS196のYES)、階層ルール管理手段334は、該当階層ルールが利用するエントリが対応テーブル321に存在するか確認し(ステップS198)、該当階層ルールが利用するエントリが存在するか否かを判断する(ステップS200)。そして、該当階層ルールが利用するエントリが存在する場合には(ステップS200のYES)、VFS301は、システムコールSCに対する応答(エラー)をCLI機能201に返す(ステップS202)。CLI機能201は、クライアント(例えば、クライアント103)に対して階層ルール削除コマンドC4の実行結果を応答(エラー)する(ステップS204)。その後、当該処理を終了する。
【0070】
一方、該当階層ルールが利用するエントリが対応テーブル321に無い場合には(ステップS200のNO)、階層ルール管理手段334は、メタデータ511上の該当階層ルールを削除する(ステップS206)。次に、VFS301は、システムコールSCに対する応答をCLI機能201に返す(ステップS208)。CLI機能201は、クライアント(例えば、クライアント103)に対して階層ルール削除コマンドC4の実行結果を応答する(ステップS210)。その後、当該処理を終了する。
【0071】
上述したように、本実施形態では、まず、図2(a)、(b)に示すように、ファイル601に「ユーザ対応」と「対応中」のタグ801を、ファイル602に「ユーザ対応」のタグ802を設定する。次に、ユーザ901が、図3(a)に示すように、ファイル共有サービスに対する階層ルールとして、共有サービス直下に「ユーザ対応」を、その配下に「対応中」をディレクトリとして持つ階層ルール701を設定する。また、ユーザ902が、図3(b)に示すように、共有サービス直下に「対応中」をディレクトリとして持つ階層ルール702を設定する。
【0072】
その後、ユーザ901とユーザ902が階層ルール701と階層ルール702をそれぞれ選択することで、図4(b)、(c)にあるような仮想ディレクトリ構成を持つ共有サービスとしてアクセスできるようにする。すなわち、階層ルール701を選択したユーザ901に対しては、図4(b)に示す仮想ディレクトリ構成に従ったファイルリストが返され、階層ルール702を選択したユーザ902に対しては、図4(c)に示す仮想ディレクトリ構成に従ったファイルリストが返される。
【0073】
上述した実施形態によれば、クライアント/ユーザ毎に階層ルール701、702を設定可能とし、その階層ルール701、702の設定内容に従ってdentry(仮想ディレクトリ構成)312、313を作成し、ファイル601、602毎に付与したタグ801、802に従って仮想ディレクトリ下にファイル601、602を配置するようにしたので、クライアント/ユーザ側からのアクセス時には、クライアント/ユーザ毎に、異なるディレクトリ構成およびファイルの配置を提示することができる。
【0074】
また、ユーザの意図したディレクトリ構成になるように、階層ルール701、702の設定内容を変更可能としたので、ディレクトリ構成を容易に並び替えることができ、ユーザの利便性を向上させることができる。例えば、ユーザが所属する部門で同じ階層ルールを利用すれば、同じ見え方、使い方ができる。また、重視するタグほど上位階層にくるように階層ルール701、702を変更可能とすることで、例えば、「年度毎」や「ユーザ毎」などにまとめ直すことが容易に実現できる。
【0075】
上述した実施形態によれば、クライアント毎に、当該クライアントの接続先情報(クライアント103、104)と、当該クライアントが利用する階層ルール701、702と、当該階層ルール701、702に対応するdentry312、313とを示すエントリを対応テーブル321に保持しておき、クライアント103、104からファイルへのアクセスがあると、VFS301は、当該クライアント103、104の接続先情報と、複数の階層ルール701、702のうち、当該クライアント103、104が利用する階層ルール701、702に対応するエントリを対応テーブル321から特定し、特定したエントリに示されるdentry312、313に基づいてファイルリストを作成してクライアント103、104に応答するようにしたので、クライアント/ユーザ毎に、異なるディレクトリ構成およびファイルの配置を提示することができる。
【0076】
また、上述した実施形態によれば、仮想ディレクトリ配置手段331が、階層ルール701、702に基づいて、仮想ディレクトリを階層的に構成したdentry312、313を作成し、仮想ファイル配置手段332が、dentry312、313に対して、タグ801、802に基づいて、階層的に構成された仮想ディレクトリにファイル601、602を配置するようにしたので、クライアント/ユーザ毎に、異なるディレクトリ構成およびファイルの配置を容易に提示することができる。
【0077】
また、上述した実施形態によれば、タグ管理手段333が、クライアント103、104からタグ設定コマンドC1を受け付けると、タグ設定コマンドC1で指定されたファイル601、602の保存場所である仮指定想ディレクトリを指定するタグ801、802を作成するようにしたので、クライアント/ユーザ毎に、異なるディレクトリ構成およびファイルの配置を容易に提示することができる。
【0078】
また、上述した実施形態によれば、階層ルール管理手段334が、クライアント103、104から階層ルール設定コマンドC2を受け付けると、階層ルール設定コマンドC2で指定されたディレクトリ構成に基づいて、仮想ディレクトリの構成を指定する階層ルール701、702を作成するようにしたので、クライアント/ユーザ毎に、異なるディレクトリ構成およびファイルの配置を容易に提示することができる。
【0079】
また、上述した実施形態によれば、VFS301が、クライアント103、104から階層ルール選択コマンドC3を受け付けると、クライアント103、104の接続先情報に対応付けて、クライアント103、104が利用する階層ルール701、702と、当該階層ルール701、702に対応するdentry312、313とを設定したエントリを、対応テーブル321上に作成するようにしたので、クライアント/ユーザ毎に、異なるディレクトリ構成およびファイルの配置を容易に提示することができる。
【0080】
図18は、本実施形態によるファイルサーバの最小構成を示すブロック図である。
本実施形態によるファイルサーバは、少なくとも、記憶手段1100と、タグ管理手段1110と、階層ルール管理手段1120と、仮想ディレクトリ構成形成手段1130とを備えればよい。記憶手段1100は、ファイル1140を記憶する。タグ管理手段1110は、ファイル1140の保存場所である仮想ディレクトリを指定するタグ1150を作成する。階層ルール管理手段1120は、仮想ディレクトリの構成を指定する階層ルール1160を作成する。仮想ディレクトリ構成形成手段11306は、階層ルール1160に基づいて、仮想ディレクトリを階層的に構成し、タグ1150に基づいて、階層的に構成された仮想ディレクトリのいずれかにファイル1140を配置した仮想ディレクトリ構成1170を作成する。
【0081】
以上、この発明のいくつかの実施形態について説明したが、この発明は、これらに限定されるものではなく、特許請求の範囲に記載された発明とその均等の範囲を含むものである。
【0082】
以下に、本願出願の特許請求の範囲に記載された発明を付記する。
【0083】
(付記1)
ファイルを記憶する記憶手段と、前記ファイルの保存場所である仮想ディレクトリを指定するタグを作成するタグ管理手段と、前記仮想ディレクトリの構成を指定する階層ルールを作成する階層ルール管理手段と、前記階層ルールに基づいて、仮想ディレクトリを階層的に構成し、前記タグに基づいて、前記階層的に構成された仮想ディレクトリのいずれかに前記ファイルを配置した仮想ディレクトリ構成を作成する仮想ディレクトリ構成形成手段と、を備えることを特徴とする情報処理装置。
【0084】
(付記2)
クライアント毎に、当該クライアントの接続先情報と、当該クライアントが利用する階層ルールと、当該階層ルールに対応する仮想ディレクトリ構成とを示すエントリを保持する対応テーブルと、クライアントから前記ファイルへのアクセスがあると、当該クライアントの接続先情報と、当該クライアントが利用する階層ルールとに対応するエントリを前記対応テーブルから特定し、前記特定したエントリに示される仮想ディレクトリ構成に基づいてファイルリストを作成し、前記作成したファイルリストを前記クライアントに応答する仮想ファイル手段と、をさらに備えることを特徴とする付記1に記載の情報処理装置。
【0085】
(付記3)
前記仮想ディレクトリ構成形成手段は、前記階層ルールに基づいて、仮想ディレクトリを階層的に構成した仮想ディレクトリ構成を作成する仮想ディレクトリ配置手段と、前記仮想ディレクトリ構成に対して、前記タグに基づいて、前記仮想ディレクトリ配置手段により階層的に構成された仮想ディレクトリのいずれかに前記ファイルを配置する仮想ファイル配置手段と、を含む、ことを特徴とする付記1または付記2に記載の情報処理装置。
【0086】
(付記4)
前記タグ管理手段は、クライアントからタグ設定コマンドを受け付けると、前記タグ設定コマンドで指定されたファイルの保存場所である仮指定想ディレクトリを指定するタグを作成する、ことを特徴とする付記1から付記3の何れか一つに記載の情報処理装置。
【0087】
(付記5)
前記階層ルール管理手段は、前記クライアントから階層ルール設定コマンドを受け付けると、前記階層ルール設定コマンドで指定されたディレクトリ構成に基づいて、仮想ディレクトリの構成を指定する階層ルールを作成する、ことを特徴とする付記1から付記4の何れか一つに記載の情報処理装置。
【0088】
(付記6)
前記仮想ファイル手段は、前記クライアントから階層ルール選択コマンドを受け付けると、前記クライアントの接続先情報に対応付けて、前記クライアントが利用する階層ルールと、当該階層ルールに対応する前記仮想ディレクトリ構成とを設定したエントリを、前記対応テーブル上に作成する、ことを特徴とする付記1から付記5の何れか一つに記載の情報処理装置。
【0089】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより特典情報の制御処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0090】
また、上述した機能の一部または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【0091】
100 ネットワーク
101 ファイルサーバ
102 認証サーバ
103、104 クライアント
201 CLI機能
202 ファイル共有機能
211 タグ設定手段
212 階層ルール設定手段
213 階層ルール選択手段
214 階層ルール削除手段
215 接続先管理手段
311 仮想ディレクトリ配置手段
321 対応テーブル
331 仮想ディレクトリ配置手段
332 仮想ファイル配置手段
333 タグ管理手段
334 階層ルール管理手段
401 ローカルファイルシステム
501 ストレージ
511 メタデータ
512 ユーザ実データ
601、602 ファイル
701~702 階層ルール
801、802 タグ
901、902 クライアント
901、902 ユーザ
1001~1003 仮想ディレクトリ構成
C1 タグ設定コマンド
C2 階層ルール設定コマンド
C3 階層ルール選択コマンド
C4 階層ルール削除コマンド
SC システムコール
【要約】
【課題】クライアント/ユーザに応じて、ディレクトリ構成およびファイルの配置を異ならせて提示する。
【解決手段】タグ管理手段333は、ファイル601に「ユーザ対応」と「対応中」のタグ801を、ファイル602に「ユーザ対応」のタグ802を設定する。階層ルール管理手段334は、root直下に「ユーザ対応」を、その配下に「対応中」をディレクトリとして持つ階層ルール701を設定し、root直下に「対応中」をディレクトリとして持つ階層ルール702を設定する。階層ルール701を選択したユーザ901には、dentry312に従ったファイルリストを返し、階層ルール702を選択したユーザ902には、dentry313に従ったファイルリストを返す。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18