JP2005122493A - サーバ装置、情報の提供方法、及びプログラム - Google Patents

サーバ装置、情報の提供方法、及びプログラム Download PDF

Info

Publication number
JP2005122493A
JP2005122493A JP2003357084A JP2003357084A JP2005122493A JP 2005122493 A JP2005122493 A JP 2005122493A JP 2003357084 A JP2003357084 A JP 2003357084A JP 2003357084 A JP2003357084 A JP 2003357084A JP 2005122493 A JP2005122493 A JP 2005122493A
Authority
JP
Japan
Prior art keywords
information
resource
access
information element
client device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003357084A
Other languages
English (en)
Other versions
JP4729844B2 (ja
Inventor
Taro Terao
太郎 寺尾
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2003357084A priority Critical patent/JP4729844B2/ja
Priority to US10/959,053 priority patent/US20050086213A1/en
Publication of JP2005122493A publication Critical patent/JP2005122493A/ja
Application granted granted Critical
Publication of JP4729844B2 publication Critical patent/JP4729844B2/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】 利用者ごとの管理を行うことなく、アクセス制御を実現でき、利便性を向上できるサーバ装置、情報の提供方法、及びプログラムを提供する。
【解決手段】 情報要素をノードとして含んでなる非循環有向グラフ状の情報要素ネットワークを保持するデータベースと、クライアント装置とに接続されるサーバ装置であって、データベース内に保持されている情報要素ネットワーク上の情報要素に係るアクセスの要求を、前記クライアント装置から受け入れて、当該クライアント装置から、情報要素ネットワークに含まれる情報要素への過去のアクセス履歴に関連する情報を取得し、当該取得した情報に基づいて、要求に係る情報要素へのアクセスの可否を決定するサーバ装置である。
【選択図】 図1

Description

本発明は、ドキュメント等の情報要素をクライアント側に提供するサーバ装置、及びそれにおける情報の提供方法、及びプログラムに関する。
近年、コンピュータネットワークの発展に伴い、種々の情報がネットワークを介して提供されるようになってきている。こうしたネットワーク上における情報へのアクセス例について、従来のウエブサーバを例にとって、図12を参照しながら説明する。
図12は、一般的なコンピュータネットワークシステムを例示する構成ブロック図である。従来一般的なコンピュータネットワークシステムには、図12に示すように、ウエブサーバ装置1と、クライアント装置2と、これらを相互に接続するネットワーク3とを含む。ここでネットワーク3は、一般的なイーサネット(登録商標)で形成されたものでよい。最も簡単な例としては、ハブ装置を設けて、より対線(ツイストペア)ケーブルによってウエブサーバ装置1のネットワークインタフェースカードとハブ装置との間、並びにクライアント装置2のネットワークインタフェースカードと上記ハブ装置との間を結線した電気的通信経路とすることである。
また、ウエブサーバ装置1及びクライアント装置2は、例えば非特許文献1の第80ページから第258ページに開示されているような、一般的なコンピュータ装置を用いて実現できる。
ウエブサーバ装置1は、ウエブサーバプログラムを記憶しており、このウエブサーバプログラムに従って次のように動作している。
[ウエブサーバプログラムの動作]
次の説明にあたり、各用語を先に規定しておく。なお、以下のウエブサーバプログラムの説明は、インターネットにおける技術標準の提案文書であるRFC(Request for comments)2616番に記述された内容に則して行うこととする。
[用語]
「接続する」とは、通信を行うため、二つのプログラムの間で確立されるトランスポート層の仮想的な通信路を形成することである。具体的にこの接続は、TCP/IP等のプロトコルを介して行われる。TCP/IPに関する説明は、例えば非特許文献2等に開示されている。
「メッセージ」とは、所定の規則で配列されたオクテット列であり、ウエブサービスにおける通信の単位となるものである。
「リクエスト」とは、アクセス要求を表現するメッセージである。
「レスポンス」とは、アクセス要求に対する応答を表現するメッセージである。
「リソース」とは、通信網上のデータやサービスである。
「エンティティ」とは、リクエストやレスポンスとともに転送される情報の実体をいう。このエンティティは、エンティティヘッダフィールド形式のメタ情報と、エンティティボディ形式のコンテントを含む。
「URI(Uniform Resource Identifier)」とは、リソースごとに固有の識別子である。その一例は、URL(Uniform Resource Locator)と呼ばれ、一般にプロトコル名(スキームと呼ばれる)と、文字「:」(コロン)と、ネットパス(文字「//」(2つのスラッシュ)で始る文字列であって、サーバを特定する文字列と、当該特定されたサーバにおけるリソースを特定させるための文字列とを含んでなる文字列)とを含む。また、URLには、リソースに対して提供されるべきパラメータ情報(クエリとも呼ばれる)が文字「?」(疑問符)に引続いて含められてもよい。このURL構文や意味については、インターネットにおける技術標準の提案文書であるRFC2396番等に詳細な記載があるので、ここでのこれ以上の説明は省略する。
[ウエブサーバとクライアントとの間の通信例]
ウエブサーバ装置1は、クライアント装置2からネットワーク3を介してリクエストの列(Request chain)を受信し、このリクエストの列に応答してレスポンスの列(Response chain)を、クライアント装置2に対して送出する。ここでリクエストの列には、リクエストメソッド、URI、プロトコルバージョン、リクエスト修飾子、クライアント情報等を含む。
レスポンスの列には、メッセージのプロトコルバージョンと、応答の成功又はエラーコードを含むステータス行、及びサーバ情報、エンティティに関する情報、そして応答に成功する際には、エンティティボディを含む。
ある例では、リクエスト列に含まれる行は、
メソッド SP URI SP プロトコルバージョン CRLF
との構造を有する。ここでSPは、半角のスペース、CRLFは、キャリッジリターン及びラインフィードを表す制御文字である。
メソッドは、ウエブサーバ装置1上のリソースに対してのアクセス種別を表現したもので、主として、「GET」(リソースの取得要求)等がある。このGETメソッドは、引き続くURIによって識別されるリソースからの情報を取得するための要求であり、当該リソースがドキュメントであればその内容を取得する要求であり、当該リソースが何らかのデータを出力するプログラムであれば、当該出力されるデータの内容を取得する要求となる。
またプロトコルバージョンは、「HTTP/1.1」のようにプロトコルを表す文字列とバージョンを表す文字列との連結からなる。従って、ある例によると、リクエスト列に含まれる行は、
GET http://168.0.0.1/index.html HTTP/1.1
というようになる。
この場合、ウエブサーバ装置1のネットワークインタフェースカードに168.0.0.1なるIPアドレスが割当てられていれば、この要求の文字列がウエブサーバ装置1によって受信され、ウエブサーバ装置1は、ドキュメント・ルートとして予め指定されているレポジトリ(例えばディスク上のディレクトリ)から「index.html」という名称で識別されるドキュメント(この場合はHTMLファイル)を読み出して、レスポンスの列として、ネットワーク3を介して送出する。
レスポンス列の具体的な例を示すと、次のようになる。ウエブサーバ装置1は、レスポンス列の先頭にステータス行を含み、このステータス行は、例えば「HTTP/1.1 200 OK」といった文字列となる。この後にCRLFが続いて送出され、付加的な情報(レスポンスヘッダ)とさらにCRLFが送出され、続いてメッセージ本体が送出される。ここでメッセージ本体は、例えばエンティティボディを含み、例えば上記の例で、index.htmlなるドキュメント内に、「ABC」なる文字列が含められていれば、エンティティヘッダフィールド形式のメタ情報として、「Content-Type:
text/html」等の文字列に続いて、文字列「ABC」が送出される。
また、クライアント装置2が要求したURIが、ウエブサーバ装置1側のプログラムを示している場合は、ウエブサーバ装置1は、当該プログラムの実行を開始し、当該プログラムの実行結果として得られる文字列をエンティティとして、上記レスポンス列を生成し、クライアント装置2に対してネットワークを介して送出することになる。
この送出したレスポンス列に含まれる文字列は、ネットワークインタフェースカードによって電気信号に変換される。そしてこの電気信号が、ネットワーク3を構成するツイストペアケーブルとハブとを介してクライアント装置2側に到来する。
[クライアント装置2の動作]
クライアント装置2は、ウエブサーバ装置1からネットワーク3を介して到来した電気信号を受けて、この電気信号をレスポンス列に含まれる文字列に変換する。そしてこのレスポンス列に含まれる文字列に基づいてウエブクライアント(いわゆるブラウザ)としての所定の処理を行う。この所定の処理は、例えば当該文字列を画面上に表示するといったものでもよい。
なお、近年では、こうしたレスポンス列に含むエンティティボディ内の文字列にプログラム記述を含めておき、クライアント装置2側で当該プログラム記述に従った動作を行うようにすることもできるようになっている。例えばJavaScriptといった、スクリプト言語と呼ばれる言語規則で記述されたプログラム記述が一般的である。
[従来の情報提供処理の例]
ここまででは、ウエブサーバ装置1とクライアント装置2との間で電気的信号を利用して文字列の情報を送受し、当該文字列の情報によってウエブサーバ装置1側に指示(メソッド)や指示の対象となるリソース(ドキュメントやプログラム等)の指定を伝達して、当該対象となったリソースの提供や実行といった処理をウエブサーバ装置1に行わせる技術や、クライアント装置2側で受け取った文字列に基づいて、当該文字列を表示したり、当該文字列をプログラム記述として、当該記述に従って処理を行ったりといった技術が存在していることを示してきた。
次に、こうした技術を利用して、特定の利用者に対してのみ情報提供を行う場合の従来の処理について、その一例を挙げながら説明する。
この例ではウエブサーバ装置1が備える磁気ディスク内には情報提供の対象となるドキュメント(ここでは対象リソースと呼ぶ)が少なくとも一つ記録されているものとする。またこの例では、クライアント装置2の利用者以外の利用者に対しては当該ドキュメントの提供が行われないような処理が実現される。
ウエブサーバ装置1の磁気ディスク内には、クライアント装置2の利用者の名称(ユーザ名)と、当該利用者が選択したパスワード文字列とが関連づけて記録されている。この関連づけは、例えばデータベースを用いて行うことができる。データベースを実現するため、これらユーザ名やパスワードを関連づけて記録するための基本的なデータ構造等については、例えば二分木(B--Tree)を利用した方法など広く知られた方法があり、その例が[非特許文献3]等に開示されている通りであるから、ここでの詳細な説明を省略する。
これら複数の情報を互いに関連づけたデータベース構造は、概念的には図13に示すごときテーブルとして表現可能であるので、以下、かかるデータベース構造については、テーブルを用いて説明することとする。
さて、このテーブルを用いた表現によると、ユーザ名とパスワードとを関連づけて記録するデータベースは、図13のように概念的に示すことができる。
また、ウエブサーバ装置1では、クライアント装置2からユーザ名とパスワードとが送信されてきたときに、図13に示したテーブルを参照し、当該送信されてきたユーザ名をキーとして、当該キーとなったユーザ名に関連づけられたパスワードを検索し、検索の結果得られたパスワードと、クライアント装置2から送信されてきたパスワードとを照合して、一致しているときに、対象リソースの内容を送信するプログラム(パスワード照合プログラム)を磁気ディスク内に保持している。
ウエブサーバ装置1は、クライアント装置2から対象リソースの取得要求(GETメソッドと対象リソースを識別するURIとを含むリクエスト列)を受け入れると、クライアント装置2に対してユーザ名とパスワードとを入力させるためのレスポンス列を送信する。
クライアント装置2では、当該レスポンス列を受信して、ユーザ名とパスワードとを入力させる画面を表示する。ここでHTTP認証が要求された場合には、それに対する処理を行う。あるいは、HTML(Hyper Text Markup Language)を用いた記述に従い、例えばマイクロソフト(商号)社のインターネット・エクスプローラ(商標)をウエブクライアントとして用いて表示させることができるものである。なお、HTMLは、W3C(World Wide Web Consortium)と呼ばれる非営利団体によりその仕様が策定されている言語であり、この言語の一部として、文字のみならず、文字列の入力欄(フィールド)を表示する指示や、当該入力された文字列をウエブサーバ装置1側にURIと同様の記述方法で送信するための指示などが含まれている。これらの指示やURIと同様の記述方法での送信(GETやPOSTなどのメソッドを用いた方法)などについては、非特許文献4や非特許文献5等に詳細に説明されているので、ここではこれ以上の説明をしないこととする。
クライアント装置2は、利用者がキーボードやマウス等を操作して、ユーザ名やパスワードを入力し、その入力した文字列の送信指示を行うと、パスワード照合プログラムのリソースの取得要求とともに、当該入力されたユーザ名やパスワードをウエブサーバ装置1側に送信する。
すると、ウエブサーバ装置1が指定されたリソースであるパスワード照合プログラムの処理を開始し、当該送信されたユーザ名をキーとして、ユーザ名とパスワードとを関連づけて記録するデータベースを参照して、当該キーとなったユーザ名に対応づけて、当該データベースに記録されているパスワードを取り出して、クライアント装置2側から送信されてきたパスワードと、当該取り出したパスワードとを照合する。そして、これらのパスワードが一致したときに、当該クライアント装置2に対して、先に要求されていた対象リソースの内容を磁気ディスクから読み出して送信する。
一方、パスワードが一致しなかった場合は、「パスワードが一致しません」等の文字列をクライアント装置2に送出する。なお、データベースを参照したときに、キーとなったユーザ名が当該データベース内に記録されていない場合も、「パスワードが一致しません」等の文字列をクライアント装置2に送出することとしてもよい。この文字列は、「ユーザ名が登録されていません」のようなものでもよい。
このような処理が行われる結果、利用者がキー操作を誤ってユーザ名やパスワードの文字列として誤った文字列を送信した場合や、又は当該利用者以外の者が、例えばランダムに選択したユーザ名やパスワードを入力した場合などには、ユーザ名やパスワードがデータベース内に記録されているものに一致しないので、「パスワードが一致しません」などの表示が現れ、指定したリソースの内容が提供されることがない。
また、リソースごとに設定されたアクセスキーの情報を事前にクライアント装置2側に記録させ、リソースへのアクセス要求を行う際に、当該記録されているアクセスキーを送信させて、当該アクセスキーをウエブサーバ装置1側で受信し、正当性を検証するというような、いわばケーパビリティベースのアクセス制御を行うシステムの例も考えられている。
馬場敬信著,「コンピュータアーキテクチャ」,改訂2版,オーム社,平成12年2月25日 トランジスタ技術,2002年12月号,CQ出版社,第134ページから第137ページ 情報処理学会編,「エンサイクロペディア情報処理2000/2001」,第1版,オーム社,平成12年3月25日,第302ページから第303ページ アンク著,「ホームページ辞典」,初版,株式会社翔泳社,2000年5月10日 秋本祥一、古川剛著,「CGIプログラミング入門」,初版,株式会社翔泳社,1997年2月20日 E.Goto "Monocopy and Associate Algorithms in an ExtendedLisp", Technical Report TR 74-3, May1974, University of Tokyo USP5,978,792
しかしながら、上記従来例で説明したような情報提供のシステムなどでは、事前にユーザを登録する必要があったり、利用者側にアクセスキーとなる情報を提供しておく必要があるため、アクセス制御のために利用者ごとの情報を管理するデータベース等が不可欠となって、そのメンテナンスに係る負荷がかかるなど、利便性が低い。
また、ユーザ登録やアクセスキーの配付等、システム運用のポリシー設定がサービス管理側に集中してしまい、この負荷を分散させることが困難であるので、総体として複雑なポリシーが適用しにくいという問題点があった。
本発明は上記実情に鑑みて為されたもので、利用者ごとの管理を行うことなく、アクセス制御を実現でき、またポリシー設定も分散させることができ、利便性を向上できるサーバ装置、情報の提供方法、及びプログラムを提供することを、その目的の一つとする。
上記従来例の問題点を解決するための本発明は、情報要素をノードとして含んでなる情報要素ネットワークを保持するデータベースと、クライアント装置とに接続されるサーバ装置であって、前記データベース内に保持されている情報要素ネットワーク上の情報要素に係るアクセスの要求を、前記クライアント装置から受け入れる手段と、当該クライアント装置から、前記情報要素ネットワークに含まれる情報要素への過去のアクセス履歴に関連する情報を取得する手段と、前記取得した情報に基づいて、前記要求に係る情報要素よりも前記情報要素ネットワーク上で上位の情報要素のいずれか一つが前記クライアント装置によって過去にアクセスされたか否かを判断し、当該判断の結果により、前記クライアント装置からの前記要求に係る情報要素へのアクセスの可否を決定する手段と、を含むことを特徴としている。
ここで、受け入れるアクセスの種別に関連した情報要素であって、当該情報要素に対して前記クライアント装置が過去にアクセスをしたか否かにより、当該情報要素に関連する種別のアクセスの可否が定められる情報要素が、前記データベース内の情報要素ネットワーク内に含められていることとしてもよい。
また上記従来例の問題点を解決するための本発明は、情報要素をノードとして含んでなる情報要素ネットワークを保持するデータベースと、クライアント装置とに接続されるサーバ装置であって、前記情報要素の少なくとも一部について、当該情報要素へのアクセス種別ごとのアクセスキーとなる少なくとも一つの情報要素を関連づけて保持するアクセスキー保持手段と、前記データベース内に保持されている情報要素ネットワーク上の情報要素に係るアクセスの要求を、前記クライアント装置から受け入れる手段と、当該クライアント装置から、前記情報要素ネットワークに含まれる情報要素への過去のアクセス履歴に関連する情報を取得する手段と、前記取得した情報に基づいて、前記要求に係る情報要素について当該要求されたアクセス種別にアクセスキーとして関連づけられた情報要素のいずれか一つが、前記クライアント装置によって過去にアクセスされたか否かを判断し、当該判断の結果により、前記クライアント装置からの前記要求に係る情報要素へのアクセスの可否を決定する手段と、を含むことを特徴としている。
これらのように、クライアント装置の過去のアクセス履歴によってリソースへのアクセス可否が定められるので、事前の利用者登録など、利用者ごとの情報管理の手間なく、アクセス制御が実現される。
またここで情報要素に関連した所定特徴量を演算する特徴量演算手段をさらに含み、前記クライアント装置に対して、当該クライアント装置からの要求に係る情報要素へのアクセスを行わせたときに、当該要求に係る情報要素に関連する関連情報を、前記クライアント装置側に対して送信する手段と、を含み、前記クライアント装置側に保持されている前記関連情報が、前記過去のアクセス履歴に関連する情報としての所定処理に供されることとしてもよい。
これにより、クライアント装置の過去のアクセス履歴によってリソースへのアクセス可否が定められ、事前の利用者登録など、利用者ごとの情報管理の手間なく、アクセス制御が実現される。
さらに、前記特徴量演算手段は、前記過去にアクセスされたノードのリストに関する、別の所定特徴量を演算し、当該演算された所定特徴量が、前記関連情報に関する情報として用いられることとしてもよい。これにより、関連情報をより短いデータで表現可能となる。
この場合に、前記特徴量の演算方法は、当該特徴量がとりうる量全体からなる空間内で、当該とりうる量のうち前記情報要素のいずれかに対応する特徴量の分布確率が所定量以下となるよう定められていることしてもよい。これにより特徴量を推定してアクセス権を獲得する攻撃に対する耐性が向上する。
また、上記従来例の問題点を解決するための本発明は、サーバ装置であって、1以上のリソースを含む構造を持つデータベースを管理するサーバ装置において、前記リソースに対するアクセス要求時に受信したリソース名と、前記データベースに対するアクセス履歴を示すユーザコンテクスト情報とに基づいて、当該リソースに対するアクセス権を判断する判断手段を具備することを特徴とすることとしてもよい。これにより、アカウント登録などの煩雑な事前準備が不要となる。
さらに前記判断手段は、当該リソース名が当該ユーザコンテクスト情報に含まれるかどうかを判断することにより、当該リソースに対するアクセス権を判断することとしてもよい。これによって判断処理が容易となる。
さらに、前記データベースの構造は、前記1以上のリソースが関係付けられる構造であって、前記リソースをノードとするネットワーク構造、前記リソースをノードとする木構造のうち、いずれかを含むものであることとしてもよい。これにより、広範囲のデータベースに適用可能となる。
さらに前記データベースの構造は、複数のノードを有し、各ノードには、ノード間の参照関係情報を持ち、前記ユーザコンテクスト情報は、少なくとも過去にアクセスした参照元ノードとして最上位のノードのリソース名に対応するものを含むものであることとしてもよい。これによって少なくとも最上位のノードのリソースが分かれば、その参照先のアクセスを許可するとすれば、簡単にアクセス権の判断ができる。
さらに、サーバ装置は、ウエブサーバであり、前記リソース名をURLとして受信すると共に、前記コンテキスト情報をクッキー領域の情報として受信するものであることとしてもよい。HTMLなどのマークアップ言語を使用するウエブサーバに対して使用される一般的なメッセージの形式が利用でき、特殊な形式を用いないので、本発明をウエブサーバに容易に適用できる。
また、前記ユーザコンテクスト情報は、リソース名に基づいて算出されたハッシュ値を含むものであることとしてもよい。これによると、リソース名に対応しているので、判断処理が容易となる。
さらに前記ユーザコンテクスト情報は、リソース名及びリソースの内容に基づいて算出されたハッシュ値を含むものであることとしてもよい。リソースの内容も含まれるので、リソース名等に比べて、類推が困難となり、真にリソースに対して閲覧等のアクセスをしたものしかアクセスが出来なくなり、安全性の高いアクセス制御が可能となる。
また、データベースに対する最初のアクセス時には、特殊形のリソース名を受信し、当該リソースに対応する通常のリソース名及びユーザコンテクスト情報を返信し、返信した通常のリソース名及びユーザコンテクスト情報とによる再度のアクセス要求を受信することとしてもよい。特殊形態のリソース名をアクセス権者から受け取れば、初回のアクセスが導入でき、特殊形態のリソース名のリソースに対応する通常のリソース名及びコンテキスト情報返信することにより、2回目以降のアクセス権の判断と同様にできるので、判断処理が簡単となる。
また、特殊形のリソース名を指定したリクエストに対するレスポンスが実体を直接返信しないことにより、特殊形のリソース名の露出が抑制され、安全性が増す。
この場合に、前記データベースは、リソース名と、リソース名に対応したリソースの内容に基づくハッシュ値とを持ち、前記特殊形のリソース名には、当該リソース名に対応するリソースの内容に基づいたハッシュ値を含むものであることとしてもよい。データベースには、リソース名と、リソース名に対応したリソースの内容に基づくハッシュ値とを持つので、特殊形のリソース名に対して、通常のリソース名の対を特別に持つことなく、特殊形のリソース名から通常のリソース名に変換できて、クライアント装置に通常のリソース名として返信できる(リソースの内容が変わっても前のバージョンへのリンクを持つリンクリストを持つことによりリソース名にたどり着くことは可能)。
本発明の一態様に係る情報の提供方法は、情報要素をノードとして含んでなる情報要素ネットワークを保持するデータベースと、クライアント装置とに接続されたサーバ装置を用いて実行され、前記データベース内に保持されている情報要素ネットワーク上の情報要素に係るアクセスの要求を、前記クライアント装置から受け入れる工程と、当該クライアント装置から、前記情報要素ネットワークに含まれる情報要素への過去のアクセス履歴に関連する情報を取得する工程と、前記取得した情報に基づいて、前記要求に係る情報要素よりも前記情報要素ネットワーク上で上位の情報要素のいずれか一つが前記クライアント装置によって過去にアクセスされたか否かを判断し、当該判断の結果により、前記クライアント装置からの前記要求に係る情報要素へのアクセスの可否を決定する工程と、を含む。
また、本発明の別の態様に係るプログラムは、情報要素をノードとして含んでなる情報要素ネットワークを保持するデータベースと、クライアント装置とに接続されたコンピュータによって実行されるもので、前記データベース内に保持されている情報要素ネットワーク上の情報要素に係るアクセスの要求を、前記クライアント装置から受け入れる手順と、当該クライアント装置から、前記情報要素ネットワークに含まれる情報要素への過去のアクセス履歴に関連する情報を取得する手順と、前記取得した情報に基づいて、前記要求に係る情報要素よりも前記情報要素ネットワーク上で、上位の情報要素のいずれか一つが前記クライアント装置によって過去にアクセスされたか否かを判断し、当該判断の結果により、前記クライアント装置からの前記要求に係る情報要素へのアクセスの可否を決定する手順と、を上記コンピュータ実行させることを特徴としている。
これらによれば、クライアント装置の過去のアクセス履歴によってリソースへのアクセス可否が定められるので、事前の利用者登録など、利用者ごとの情報管理の手間なく、アクセス制御が実現され、利便性を向上できる。
[第1実施形態]
本発明の第1の実施の形態について図面を参照しながら説明する。本実施の形態に係るウエブサーバ装置100は、図1に示すように、CPU11と、システムコントローラ12と、スイッチ13と、メモリ14と、バスインタフェース15と、マウス16と、キーボード17と、バス18と、磁気ディスク19と、ネットワークインタフェース(I/F)20と、表示制御部21とを含み、ディスプレイ30に接続されている。なお、この構成は、非特許文献1に記載された構成を簡略に示したものである。このウエブサーバ装置100のネットワークI/F20は、ネットワーク3を介してクライアント装置2に接続されている。
CPU11は、磁気ディスク19に格納されているプログラムを読出して、当該読出したプログラムに従ってウエブサーバとしての処理を実行する。このCPU11によって実行されるウエブサーバとしての処理については、後に詳しく述べる。
システムコントローラ12は、CPU11から入力される指示に従ってCPU11との間で情報を入出力する先を指定する信号をスイッチ13に出力する。スイッチ13は、システムコントローラ12から入力される信号に従って、CPU11との間で情報を入出力するための配線を、メモリ14、バスインタフェース15、表示制御部21といった各部のいずれかに接続する。
メモリ14は、基本的にRAM(Random Access Memory)からなり、CPU11から書込み指示と書込み対象となるデータとの入力を受けて、当該データを記憶する。なお、ここで書込み指示には、メモリ上の書込み位置を表すアドレス情報が含まれている。また、このメモリ14は、CPU14から読出しの指示の入力を受けると、当該読出し指示に含まれているアドレス情報に書込まれているデータを読み出して、CPU11に対して出力する。
バスインタフェース15は、バス18を制御しており、このバス18を介してキーボード17や磁気ディスク19、ネットワークI/F20といった各部との間で信号を授受している。バスインタフェース15は、CPU11から信号が入力されると、当該信号をバス18を介して送出する。また、このバスインタフェース15は、キーボード17や磁気ディスク19、ネットワークI/F20といった各部から信号が入力されると、当該信号をCPU11に送出する。
マウス16は、キーボード17を介してバス18に接続される。このマウス16は、いわゆるポインティングデバイスであり、利用者がマウス本体を机上で移動させると、当該移動量に関する情報をキーボード17を介してバス18に出力する。なお、ここではキーボード17を介してバス18に接続する例を示したが、直接接続する構成となっている装置であっても構わない。
キーボード17は、文字列を入力するためのデバイスであり、利用者の操作によって入力された文字列を表す情報をバス18に出力する。
磁気ディスク19は、ハードディスク等であり、CPU11から書込み命令及び書込みの対象となるデータを、バス18を介して受け入れて、磁気的信号に変換し、磁気ディスク面に記録する。また、この磁気ディスク19は、CPU11からの読出し命令を、バス18を介して受け入れて、磁気ディスク面に記録された情報を磁気ヘッドにて読取って、電気的信号に変換し、バス18に出力する。
ネットワークI/F20は、CPU11から、送信先のアドレス情報を含む送信対象データの入力を受けて、送信対象データをネットワーク3側に適合した電気的信号に変換してネットワーク3に対して送出する。また、このネットワークI/F20は、ネットワーク3側から到来する電気的信号からデータを復調して得て、当該データがネットワークI/F20に対して予め割当てられているアドレスに対応する宛先へのデータであるか否かを調べ、そうでなければ当該データを破棄する。また、当該データがネットワークI/F20に対して予め割当てられているアドレスに対応する宛先へのデータであれば、当該データをバス18に出力する。
すなわち、本実施の形態のウエブサーバ装置100においては、CPU11が磁気ディスク19との間で情報の書込み/読出しを行うときには、次のように動作することになる。まずCPU11はシステムコントローラ12に対してスイッチ13をバスインタフェース15に接続するよう指示する。するとシステムコントローラ12がスイッチ13にCPU11からの信号線をバスインタフェース15に接続するよう指示し、スイッチ13がCPU11からの信号線をバスインタフェース15に接続する。
このようにしてから、CPU11が、信号線を介してバスインタフェース15に対し、磁気ディスク19に信号の書込み命令と書込みの対象となるデータを出力すると、当該データが磁気ディスク19に記録されることとなり、CPU11が、信号線を介してバスインタフェース15に対し、磁気ディスク19に信号の読出し命令を出力すると、当該命令に従ってデータが磁気ディスク19から読出されてバスインタフェース15を介してCPU11に出力されることになる。以下、この動作については、「CPU11が磁気ディスク19にデータを書込む」又は「CPU11が磁気ディスク19からデータを読み出す」といったように略記することとする。
また、ネットワークI/F20についても同様の動作となっており、この動作については、「CPU11がネットワーク3を介してデータを送信する」又は「CPU11がネットワーク3を介してデータを受信する」といったように略記することとする。
磁気ディスク19内にはリソースが保持されている。この磁気ディスク19内には、ドキュメント等の情報要素(リソース)を保持するデータベースが構成されている。以下の説明では、簡単のため、情報要素がドキュメントであるものとして説明する。
本実施の形態において特徴的なことの一つは、ここでの情報要素間で参照関係が規定されており、この参照関係が、情報要素をノードとしたときに非循環有向グラフ状の情報要素ネットワークとなっていることである。ここで非循環有向グラフとは図2(a)のような関係にあるものであり、図2において各ノードは丸印で示され、参照関係が矢印で示されている。例えば「ルート」となっているノードが参照している先は、ノードP0及びP1であり、ノードP0の参照元のノードは「ルート」であるということになる。このように、参照関係は方向性を持っており、ルートから、その参照先であるP0へは参照関係を辿ることができるが、P0から、その参照元であるルートへは参照関係を辿ることができないとして規定されている。なお、この非循環有向グラフには、概念的に図2(b)に示すような有向ツリーが含まれるので、本実施の形態における情報要素の格納状態は、この有向ツリー状の情報要素ネットワークとなっているものも含む。
また、図2(a)では2つのルート以下の情報要素ネットワークを示しているが、このように情報要素ネットワーク全体としては、複数のルートを含んでもよい。また図2(a)に示すように、複数のルートには、同一のノードが、下位に属するノードとしてリンクづけされていてもよい(図2(a)でのノードP0等)。
また、以下では説明のために、いずれかのノードを注目ノードとして、当該注目ノードから参照関係を辿って到達できる別の(注目ノードではない別の)ノードを注目ノードの「下位ノード」と呼び、また、参照関係を辿って注目ノードへ到達できる別の(注目ノードではない別の)ノードを注目ノードの「上位ノード」と呼ぶ。例えば、図2の例でいえば、ノードP2を注目ノードとすると、ノードP5,P7,P8,…が、P2の下位ノードであり、ノードP1と、ルートとがP2の上位ノードである。
具体的にドキュメントがHTMLである場合、参照関係は「Aタグ」を用いて記述することができる。例えばノードP0への参照関係は「<a href="P0">P0</a>」として記述できる(図3)。
また、磁気ディスク19内には、図4に示すように、各ノードであるドキュメントの名称(ノード名)と、当該ドキュメントの内容から演算された特徴量としてのハッシュ値と、当該ドキュメントからの参照先(HTMLのリンク先)となっているノードのリストと、当該ドキュメントへの参照元(HTMLのリンク元)となっているノードのリストとを相互に関連づけて保持している。なお、この図4に示したテーブルも、データベースとして一般的な手法で実際に格納できるものである。なお図4において、リンク先やリンク元がない場合には、理解しやすいように「(なし)」と記している。
ここでハッシュ値は、ドキュメントに含まれる文字列に基づき、所定一方向関数によって演算できる値である。ハッシュ値の演算方法は、広く知られているので、ここでの詳細な説明を省略する。なお、ここでのハッシュ値は20バイト程度の列として表現できるが、これに限られるものではなく、64バイト程度としてもよい。このハッシュ値の長さによって、特徴量がとりうる量全体からなる空間内で、当該とりうる量のうち情報要素のいずれかに対応する特徴量の分布確率が所定量以下となるよう定めることができる。
[CPU11の動作]
次に、CPU11によって行われる処理について説明する。本実施の形態では、従来と同様のウエブサーバとして動作するほか、情報提供のためのプログラムがリソース(以下、このリソースのリソース名が「wiki.cgi」であるものとして説明を続ける)として磁気ディスク19に格納されている。つまり、クライアント装置2からGETメソッドとともに、URIの一種としてURLとして「http://server/wiki.cgi」が指定されると、この情報提供のためのプログラムが起動される。なお、ウエブサーバ装置100のネットワークI/F20に割当てられているIPアドレスに対して、ネットワーク3上に接続されているDNS(ドメインネームシステム)サーバが名称「server」を関連づけて保持しているものとし、クライアント装置2からは、名称「server」により、ウエブサーバ装置100との間の情報通信が可能となっているものとする。
また、本実施の形態では、この情報提供のためのプログラムに対する処理のパラメータとして、要求名と、当該要求名に係る要求の対象となるリソース(上記非循環有向グラフ状の情報要素ネットワーク内のリソース)とが指定されることとなる。ここで本実施の形態の情報提供のためのプログラムは、指定したリソースの閲覧(ビュー:view)、指定したリソースの編集(ある場合には、指定したリソースからの参照先となる新たなリソースの生成も伴う、以下エディット:editと表す)、指定したリソースへの参照元となる新たなリソースの生成(クリエイト:create)、指定したリソースへの初回アクセスの許可(インフォーム:inform)の要求に応答するためのプログラムモジュールを含んでなる。
クライアント装置2は、この要求名と要求名に係る要求の対象となるリソースの指定とを、次の態様(要求文と呼ぶ)で送出するものとする。
http://server/wiki.cgi/resource?edit
ここで、「resource」がリソースの指定に相当し、「?」の次からの文字列は処理パラメータ(クエリ)を示す。ここでは、処理パラメータとして要求名「edit」がそのまま記述されている。なお、基本的な処理である閲覧の処理については、クエリとして「view」と記述しなくても、
http://server/wiki.cgi/resource
とすれば、閲覧が指定されたものとして扱ってもよい。
CPU11は、クライアント装置2からネットワーク3を介して要求文を受信し、処理パラメータが付されているか否かを調べ、付されていなければ閲覧の要求として、閲覧要求に応答する処理を開始する。また、処理パラメータが付されている場合、それが「view」であれば閲覧の要求として、閲覧要求に応答する処理を開始し、「edit」であれば編集の要求として、閲覧要求に応答する処理を開始し、「create」であればクリエイトの要求として、クリエイトの要求に応答する処理を開始し、「inform」であればインフォームの要求として、インフォームの要求に応答する処理を開始する。以下、これらの各要求に応答する処理について説明する。
[要求名viewに対する処理]
まず、要求名viewに対する処理について、図6を参照しながら説明する。CPU11は、まず、指定されたリソースの表現が予め定められた条件に合致する表現(以下、「特殊形の表現」と呼ぶ)であるか否かを調べ(S11)、特殊形の表現でなければ(「N」であれば)、指定されたリソースが予め定められた公開リソースであるか否かを調べる(S12)。
ここで公開リソースは、「index.html」や、「search.html」といったように、公開された(つまりどの利用者からもアクセス可能な)リソースであり、これらのリストが予め設定されて、メモリ14に保持されており、CPU11は、指定されたリソースがこれら設定されたリストに含まれているか否かを調べることになる。
なお、公開リソースには、利用者が過去に参照したリソースの一覧を提供するもの(例えば「index.html」となる)や、利用者が過去に参照したリソース内での情報検索インタフェースを提供するもの(例えば「search.html」となる)などを含んでもよい。また、この公開リソースからのリンク先のリソース(下位ノード)もまた、公開リソースとなる。
処理S12において、指定されたリソースが公開リソースでない場合、CPU11は、クライアント装置2に対してクライアント装置2側に保持されているアクセス履歴を取得する(S13)。ここでクライアント装置2側に保持されているアクセス履歴は、クッキー(cookie)として保持しておくことができ、クッキーは、HTTPリクエストのCookieフィールド等に含められてサーバ装置側に提供される。ここでクッキーにセキュア(secure)属性を付することで、HTTPリクエストが、暗号化されて送信されることが望ましい。
また、アクセス履歴は、具体的にはリソース名のリストそのものであってもよいし、当該利用者が過去にアクセスしたリソースのリストを特定する情報であってもよい。これが本発明のクライアントコンテクストの一例でもある。例えば、利用者が過去にアクセスしたリソースに対応するノード名をキーとし、リソースの内容に基づいて演算されるハッシュ値を「値」としたエントリーを含む連想配列と、当該連想配列のハッシュ値とを、図5に示すように関連づけて格納しておく。
CPU11は、取得したアクセス履歴に基づいて、指定されたリソースへのアクセスが可能か否かを判断する(S14)。ここでの判断は次のようにして行われる。すなわち、CPU11は、アクセス履歴に基づいて、利用者が過去にアクセスしたリソースのリストを特定し、当該リストに指定されたリソースが含まれるか、又は当該リストに含まれるリソースから参照関係を辿って指定されたリソースに到達可能か否か、つまり当該リストに含まれるリソースの少なくとも一つの下位ノードとして指定されたリソースが含まれるか否かを調べる。
具体的に指定されたリソースが図2に示したノードP5に相当するものである場合、当該リソースを要求した利用者が過去にノードP1に相当するリソースにアクセス(この場合は、view、edit等の要求を行って、当該リソースの内容の提供を受けることをアクセスと呼んでいる)したことがあれば、当該利用者のアクセス履歴としてのリソースのリストにはノードP1に対応するリソースが含まれている。
一例として、ノードP0に対応するハッシュ値をH0、ノードP1に対応するハッシュ値をH1…として表記することとするとき、過去にノードP1に対応するリソースにアクセスした利用者のアクセス履歴には、図5に示したように、ノード名「P1」をキーとし、そのハッシュ値「H1」を値としてこれらキーと値とを関連づけるエントリーを含んだ連想配列を特定するためのハッシュ値が設定されていることになる。
そしてCPU11は、クライアント装置2からアクセス履歴として受け入れたハッシュ値に基づいて図5に示したテーブルを参照して連想配列を取得し、当該連想配列に基づいて、クライアント装置2の利用者が過去にアクセスしたノード名のリストを、当該連想配列のキーのリストとして取得し、連想配列に含まれる各ノード名で特定されるノードを起点として、図4に示したテーブルを参照しながら、その下位ノードを参照するリストを用いて再帰的に到達可能なノードを列挙し、指定されたリソースに相当するノードに一致するものがあるか、又はリーフ(末端のノード)まで辿っても、指定されたリソースに相当するノードに一致するものがなかったかを調べることになる。
この探索の結果、指定されたリソースに相当するノードに一致するものが見いだされなければ、指定されたリソースへのアクセスができないと判断することになる。また、探索の結果、指定されたリソースに相当するノードに一致するものが見いだされたならば、指定されたリソースへのアクセスができると判断されることになる。
以上に例示した処理によって、処理S14で指定されたリソースへのアクセスが可能であると判断されると(「Y」であると)、CPU11は、磁気ディスク19から当該指定されたリソースであるドキュメントの内容を読出して、それをエンティティボディとして含むレスポンス列を、ネットワーク3を介してクライアント装置2へ送信する(S15)。なお、当該ドキュメントの内容やアクセス履歴に基づいてエンティティボディを生成してもよい。例えば、指定されたリソースに関連づけられているリンク元のノードのリストに含まれるノード名のうち、アクセス履歴に基づいて取得された連想配列に含まれるノード名へのリンクをバックリンクとして含めてもよい。
そしてCPU11は、当該アクセスされたリソースであるノード名と、アクセスされたリソースの内容に基づいて生成されたハッシュ値とからなるエントリーを、利用者のアクセス履歴に基づいて取得された連想配列に含めて、アクセス履歴の情報を新たに生成する(S16)。また、その含めた後の連想配列に基づくハッシュ値を演算して、図5に示したテーブルに格納する。
例えば、ここでアクセスされたリソースがノードP5に相当するものである場合、それに対応するハッシュ値H5を、ノードP5とハッシュ値H5とを含むエントリーを連想配列に追加して、新たな連想配列を生成し、この連想配列に基づいてハッシュ値を演算し、演算されたハッシュ値と、上記生成した連想配列とを関連づけて、磁気ディスク19内に保持されている、図5に示したテーブルを実現しているデータベースに登録する。
尤も、ドキュメントの内容が変更された場合にはノードに対応するハッシュ値が変わることがある。例えば、ハッシュ値H2がH′2となることがあり、その場合には、図4に示したテーブルを実現するデータベースの内容は更新されるが、連想配列中の情報は変更する必要は必ずしもない。この情報を利用者が過去に見た状態を表す情報として利用することもできるからである。
CPU11は、処理S15で生成したアクセス履歴の情報を、クライアント装置2へ送信してクライアント装置2に保持させる(S17)。この処理S17における処理は、HTTPレスポンスヘッダのSet-Cookie/Set-Cookie2フィールドで指定することで行うことができる。なお、この際、セキュア(Secure)属性を付して、クッキーを暗号化して送信する。CPU11は、これによりクライアント装置2側のアクセス履歴の情報を更新して処理を終了する。
一方、処理S14において、指定したリソースへのアクセスができないと判断された場合は、CPU11は、クライアント装置2に対してリソースの提供ができないことを報知して(S18)、処理を終了する。この報知は、例えばレスポンス列のステータスコードとしてエラーのコードを送信することによって行うことができる。この場合、クライアント装置2がそのウエブクライアントの画面に「401 Unauthorised」のような表示を行うことになる。なお、エラーコードは401だけでなく404であってもよいし、またエラーとせず、エンティティボディを空として送信することとしてもよい。
さらに、処理S11において、指定されたリソースの表現が特殊形である場合、又は処理S12において指定されたリソースが特定リソースである場合、処理S15に移行して処理を続け、当該指定されたリソースに対応するドキュメントの内容が提供されることになる。このときには、新たに生成したアクセス履歴の情報をクッキーとして指定し、ロケーション(Location)フィールドとして通常のノード名に変換したものを指定して、エンティティボディを空などとしたものをHTTPレスポンスとして送信し、クライアント装置2に対して当該ロケーションフィールドで指定したリソースへとアクセスさせる。
[要求名editに対する処理]
次に、要求名editに対する処理について図7を参照しながら説明する。CPU11は、まず、クライアント装置2側に保持されているアクセス履歴を取得する(S23)。そして、CPU11は、取得したアクセス履歴に基づいて、指定されたリソースへのアクセスが可能か否かを判断する(S24)。
ここで処理S23からS24までの処理は、図6の処理11から処理S14におけるものと同様であるので、繰返しての説明は省略する。
この処理S24で指定されたリソースへのアクセスが可能であると判断されると(「Y」であると)、CPU11は、磁気ディスク19から当該指定されたリソースであるドキュメントの内容を読出して、それをエンティティボディとして含むレスポンス列を、ネットワーク3を介してクライアント装置2へ送信して編集させる(S25)。すなわち、ここでの送信は、編集可能な態様で送信されることとなる。例えば、HTMLを利用してドキュメントの内容をフォーム(formタグ内の)のテキストエリア(<textarea>)の内容として含めて送信することになる。
クライアント装置2側からフォームの内容が送信(submit)されると、当該フォームの内容を含むHTTPリクエストが受信され、CPU11は、当該編集内容のコミット処理(編集の内容を確定させる処理)を開始する(S26)。このコミット処理の内容は後に説明する。コミット処理によって、編集の内容が確定される。
一方、処理S24において、指定したリソースへのアクセスができないと判断された場合は、CPU11は、クライアント装置2に対してリソースの提供ができないことを報知して(S28)、処理を終了する。この報知は、例えばレスポンス列のステータスコードとしてエラーのコードを送信することによって行うことができる。この場合、既に述べた例と同様にクライアント装置2がそのウエブクライアントの画面に「401 Unauthorised」のような表示を行うことになる。
次に、コミット処理について説明する。CPU11は、編集後のフォームの内容を含むHTTPリクエストを受信すると、クライアント装置2側に保持されているアクセス履歴を取得し、取得したアクセス履歴に基づいて、指定されたリソースへのアクセスが可能か否かを判断する処理(上記処理S23,24と同様の処理)を行い、アクセスが可能でなければ、CPU11は、クライアント装置2に対してリソースへのアクセスができないことを報知して(上記処理S28と同じ)、処理を終了する。
また、アクセスが可能であれば、図8に示すような処理を開始する。すなわち、CPU11は、そのリソースの編集前の内容と編集後の内容とを比較する(S31)。この比較は、一般的な文書の差分を抽出する処理(例えばUNIX(登録商標)で一般的に用いられているコマンド「diff」を用いて実現できる)でよい。そして編集の結果、新たなリンクが含められたか否かを調べる(S32)。これは「diff」の処理の結果、Aタグが新たに記述されたか否かを調べる。ここで新たなリンクが入った場合は(「Y」の場合は)、編集を行った利用者が、当該新たなリンク先(参照先)にアクセス可能か否かを調べる(S33)。
ここでアクセス可能か否かを調べる処理は、図6における処理S14と同様の処理で実現できる。すなわち、利用者が過去に当該新たなリンク先となったリソースに対して上位のリソースにアクセスしたことがあるか否かを調べる処理で実現できる。
次にCPU11は、情報要素ネットワークの非循環性を維持するため、当該新たに記述されたリンク先から参照関係を辿って(S34)、処理S25で編集の対象となったリソースまで辿ることができるか否か、つまり参照関係が循環参照の関係になっているか否かを調べる(S35)。ここで、循環参照の関係になっていない場合(「N」の場合)、図7の処理S25で行われた編集後の状態でのリソースを磁気ディスク19に格納する(S36)。そしてCPU11は、そのリソースが新たに生成されたものであるか否かを判断して、新たに生成されたものである場合は、リンク先となったリソースを、磁気ディスク19内の情報要素ネットワーク上に保持させる。
また、処理S33において、新規のリンク先にアクセスできないと判断される場合(「N」の場合)や、処理S35において循環参照の関係になっている場合(「Y」の場合)は、当該リンクの記述を削除して(S37)、処理を終了する。ここでリンクの記述の削除は、Aタグのみを削除してもよいし、記述全体を削除してもよい。すなわち、「<a href="Pn">Pn</a>」なるリンク先Pnに利用者がアクセスできない場合、又はリンク先Pnが、編集中のリソースの上位に位置してしまう場合には、「<a href="Pn">」と「</a>」とを削除して、「Pn」のみを残してもよいし、「<a href="Pn">Pn</a>」全体を削除してもよい。
また、処理S32において、リンクが入っていない場合(「N」の場合)、CPU11は、そのまま処理S36に移行する。
[要求名createに対する処理]
次に、要求名createに対する処理について図9を参照しながら説明する。CPU11はまず、指定されたリソースに対して利用者がアクセス可能か否かを調べる(S41)。この処理もまた、図6に示した処理S14における判断と同様の処理で実現できる。そしてこの処理S41において、アクセス可能と判断されると(「Y」であると)、ノード名の入力欄のフォームを含むHTML記述をエンティティボディとするHTTPレスポンスをクライアント装置2側に送信する(S42)。ここでノード名の入力欄には、予め指定されたリソースに対応する入力名を含めておいてもよい。また、ここではこの入力欄は、編集可能としておき、利用者が任意に記述できるようにしておく。
そしてクライアント装置2側でノード名を含むHTTPリクエスト(createに対するコミットの指示)が行われると、当該HTTPリクエストに含まれるノード名に対して利用者がアクセス可能か否かが調べられる(S43)。この処理S43における処理は、コミット処理におけるアクセス権の確認処理であるが、ここでは処理S41におけるものと同様である。
またここで指定したノード名が既に利用されており、かつ、利用者が当該ノード名で特定されるリソースへのアクセス権がない場合は、別のリソース名を指定させる処理を行ってもよい。またここで指定したノード名が既に利用されており、かつ、利用者が当該ノード名で特定されるリソースへのアクセス権がある場合は、当該既存のノード名で特定されるリソースを利用者に閲覧させる。
そして、アクセス権があると判断されれば、指定されたノード名で特定されるノードへのリンクを含むリソースを作成して(S44)、当該作成したリソースを磁気ディスク19内の情報要素ネットワークに格納する。すなわちこの処理は、指定されたリソースの直近の上位に位置する新たなリソースを生成する処理である。
CPU41は、そして当該作成したリソースであるノードに対応するハッシュ値を演算して図4に示したデータベースに新たに追記するとともに、処理S41の過程で取得したクライアント側のアクセス履歴に対し、当該生成したリソースのノード名と当該生成したリソースの内容に基づくハッシュ値とを関連づけたエントリーを追記して、新たなアクセス履歴の情報を生成する(S45)。そしてCPU11は、処理S45で生成したアクセス履歴の情報を、クライアント装置2へ送信してクライアント装置2に保持させる(S46)。この処理S46における処理も、HTTPレスポンスヘッダのSet-Cookie/Set-Cookie2フィールドで指定することで行うことができる。このときも、セキュアの指定が行われ、クッキーは暗号化されて送信される。
また、このHTTPレスポンスにおいては、新たに生成したリソースの閲覧を指定するLocationフィールドが設定され、エンティティボディは空としておく。
CPU11は、これによりクライアント装置2側のアクセス履歴の情報を更新して処理を終了する。または、新たに生成されたリソースの閲覧へリダイレクトしてもよい。
また処理S41、S43において利用者が指定されたリソースにアクセス可能でないと判断された場合(「N」の場合)、要求に応じられない旨の情報をクライアント装置2に送信して利用者に報知する(S47)。この報知は、例えばレスポンス列のステータスコードとしてエラーのコードを送信することによって行うことができる。この場合、クライアント装置2がそのウエブクライアントの画面に「401 Unauthorised」のような表示を行うことになる。
なお、処理S43においては、再度新しいノード名を入力させるフォームを送信するようにしてもよい。
[要求名informに対する処理]
ここまでに説明した通り、本実施の形態のウエブサーバ装置100は、クライアント装置2が過去にアクセスをしたリソースの情報に基づいて、要求されたリソースへのアクセス可否を判断するものである。ここでは、リソースである情報要素をノードとして、非循環有向グラフ状の情報要素ネットワークを形成して磁気ディスク19に保持しておき、リソースを指定して、当該指定したリソースへのアクセスが要求されたときに、当該指定されたリソースに対して上記情報要素ネットワークの上位に位置するリソースのいずれかに、利用者が過去にアクセスしたか否かによって指定されたリソースへのアクセス可否が判断されることになる。
従って、このウエブサーバ装置100に対して初めてアクセスする利用者は、過去にアクセスしたリソースはないので、それより下位のリソースも存在せず、どのリソースにもアクセスできないという状況が生じてしまう(但、公開リソースの下位にはアクセス可能ではある)。
このためリソースへのアクセスを可能とするため、いずれかのリソースに対して初回にアクセスする際に、上位へのアクセスの有無などを判断しないような例外的処理を実装しておかなければならない。
本実施の形態においては、このために要求名「inform」なる処理を実装している。以下、この要求名informに対する処理について、図10を参照しながら説明する。
この処理ではCPU11は、まず、指定されたリソース(informの対象となるリソース)に対して要求を行った利用者がアクセス可能か否かを調べる(S51)。この処理もまた、図6に示した処理S14における処理と同様の処理として実現できる。
この処理S51において、アクセス可能と判断されたときには(「Y」のときには)、指定したリソースに対する特殊形の表現を生成する(S52)。ここで特殊形の表現とは、予め定められた条件に合致する表現であり、例えば乱数発生された特定バイト列であって、かつメモリ14に格納されているバイト列であるとの条件とすることができる。
つまり、処理S52では、バイト列を乱数発生させ、指定したリソース名と当該乱数発生させたバイト列とを関連づけてメモリ14に格納する。そして、CPU11は、予め指定された送信先となっている利用者のクライアント装置2に対してこの生成した表現を含む文字列を送信して(S53)、処理を終了する。この送信は、電子メールによる送信(SMTPサーバを用いた送信)であってよい。SMTPサーバによる送信については、広く知られているので、ここで改めて説明することはしない。
また、処理S51において、アクセスが可能でないと判断されたときには(「N」のときには)、そのまま処理を終了する。
例えばリソース「P5」に対して、乱数発生させたバイト列が「86d49110ad48a5dfc650445897309ac1609e8056」であるとするとき、「http://server/86d49110ad48a5dfc650445897309ac1609e8056」といった文字列が送信先の利用者に送信され、乱数発生させたバイト列「86d49110ad48a5dfc650445897309ac1609e8056」と、リソース名「P5」とを関連づけてメモリ14に格納する。
そして、この文字列「http://server/86d49110ad48a5dfc650445897309ac1609e8056」がクライアント装置2から受け入れられたときに、CPU11は(クエリが付加されていないので)、参照の要求として扱い、図6に示した処理を開始し、処理S11において、指定されたリソースの表現「http://server/86d49110ad48a5dfc650445897309ac1609e8056」が特殊形の表現か否かを調べるため、CPU11は、メモリ14にこのリソースの指定の文字列部分、「86d49110ad48a5dfc650445897309ac1609e8056」がメモリ14に格納されているか否かを調べる。ここでは、メモリ14にバイト列「86d49110ad48a5dfc650445897309ac1609e8056」と、リソース名「P5」とが関連づけて格納されているので、CPU11は、これが特殊形の表現であると判断して、処理S15に移行し、対応するリソース「P5」の内容が当該「http://server/86d49110ad48a5dfc650445897309ac1609e8056」への要求を行ったクライアント装置2に対して提供される。このとき、メモリ14に格納されている、「86d49110ad48a5dfc650445897309ac1609e8056」とそれに対応するリソース名とは削除しておくこととしてもよい。この処理によって、上記特殊形の表現を受取った利用者は、当該表現に関連づけられたリソースへアクセスを行ったとのアクセス履歴を取得することになる。
なお、ここでは乱数生成を利用しているが、リソースの内容のハッシュ値を乱数の代りに利用してもよい。この場合、内容のハッシュ値にはリンク元を関連づけておき、リンク元を辿ってルートを特定できるようにしておき、このルートのヘッダ情報にリソース名を含めるようにしておくことで、内容のハッシュ値からリソース名を取り出すことができるようにしておけばよい。
[他の利用者にリソースをアクセスさせるための他の方法]
ここで他の利用者にリソースへのアクセスをさせるためにインフォーム(inform)の要求を行う例について述べたが、本実施の形態の参照関係を利用しても、他の利用者へ、当該利用者が過去にアクセスしたことのあるリソースから下位のネットワークに属していない、リソースへアクセスをさせることができる場合がある。
これは例えば、図2に示したネットワークにおいて、ある利用者Aが、他の利用者Bに対してノードP6に対応するリソースへアクセスさせたいと考えたとき、「当該他の利用者BがリソースP2にアクセス可能であること」を利用者Aが知っていれば、このリソースP2に対してエディット(edit)を要求して、リソースP6へのリンクを追記してしまえばよい。
これにより、リソースP2にアクセスしたことのある利用者Bは、リソースP6へのアクセス権を獲得できることになる。
[変形例]
また、本実施の形態においては、各要求名に係る処理において、当該各要求の対象として指定されたリソースへのアクセスの可否を略同一の処理によって判断していたので、例えば閲覧は可能であるが、編集は不可能である、といったようなアクセス権を設定することができなかった。そこで、受け入れるアクセスの種別ごとに、それぞれに関連した情報要素を磁気ディスク19内に格納しておき、これらの情報要素に対して利用者が過去にアクセスしたことがあるか否かによって、当該情報要素に関連した種別のアクセスを許可するようにしてもよい。
例えば、生成(create)に関する情報要素として、リソース「create.html」をディスク装置19内に格納しておくとともに、編集(edit)に関する情報要素として、リソース「edit.html」をディスク装置19内に格納しておく。そしてある利用者Aには、リソース「create.html」と、リソース「edit.html」との双方に(例えば上記特殊形の表現を用いて)アクセスさせておく。すると、当該利用者Aが利用しているクライアント装置2には、当該リソース「create.html」と、リソース「edit.html」との双方に関連するアクセス履歴が記録されることになる。
一方、利用者Bには、リソース「edit.html」のみに(例えば上記特殊形の表現を用いて)アクセスさせておく。すると、この利用者Bの利用しているクライアント装置2には、当該リソース「edit.html」を含み、リソース「create.html」を含まない連想配列に関連づけられたハッシュ値がアクセス履歴として記録されることになる。
そしてCPU11は、要求名「edit」に対応する処理においては、図7に示したその処理S24において、利用者のアクセス履歴に、指定したリソースの上位に属するリソースが含まれ(この判断処理は図6に示した処理S14と同じである)、かつリソース「edit.html」へのアクセス履歴が含まれるときに、指定したリソースへのアクセス(この場合は編集のためのアクセス)が可能であると判断して、処理S25以下の処理に移行する。
同様に、要求名「create」に対応する処理においても、図9に示したその処理S41において、利用者のアクセス履歴に、指定したリソースの上位に属するリソースが含まれ(この判断処理は図6に示した処理S14と同じである)、かつリソース「create.html」へのアクセス履歴が含まれるときに、指定したリソースへのアクセス(この場合は編集のためのアクセス)が可能であると判断して、処理S42以下の処理に移行する。
従って、上記の例でいう利用者A,Bについては、要求名「edit」に対応する処理では、双方の利用者にそのアクセス履歴が含まれているので、どちらの利用者も指定したリソースを編集することができる。しかし、要求名「create」に対応する処理では、利用者Aについては、その利用するクライアント装置2が、「create.html」へのアクセス履歴を保持しているので、指定したリソースの直接上位に新たなリソースを生成できる。しかし、利用者Bについては、その利用するクライアント装置2が保持しているアクセス履歴に、「create.html」へのアクセスが含まれていないので、指定したリソースの直接上位に新たなリソースを生成することができず、要求に応じられない旨が報知されることになる(処理S47)。
これにより、アクセスの制御を要求の内容ごとに行うことができるようになる。またこの場合は、例えば、要求名editに対するアクセスができない場合であっても、要求名viewに対するアクセスが可能であるときには、要求名editによるアクセス要求があった場合、その要求に係るリソースについて、要求名viewによるアクセス要求を行わせるようにしてもよい。これは例えば、ロケーションフィールドにおいて要求名を変更した後のURIを記述し、エンティティボディを空などとした文書を提供し、クライアント装置2に対して要求名viewによるアクセスを行わせるよう案内してもよい。この場合、例えば各要求名に選択順位を付しておき、特定の要求名に対するアクセスができない場合、選択順位順にアクセスの可能性を調べ、アクセスが可能な要求名があれば、当該選択順位順に最初に見いだされた要求名でアクセスさせるようにしてもよい。
なお、このようにした場合は、例えば編集の要求(edit)等の処理において、当初のアクセス権確認は要求名viewに対する処理と同じとしておき、コミット処理におけるアクセス権の確認において対応する要求名へのアクセス権の確認を行うようにしてもよい。
例えば、編集の要求があったときに、閲覧(view)のアクセス権があれば編集用のフォームが提供され、当該フォームが送信されたコミットの段階で編集(edit)のアクセス権が確認される。
[第2実施形態]
さらに、リソースごとに要求名ごとのアクセス権設定を可能とする、本発明の第2の実施の形態に係るウエブサーバ装置について説明する。本実施の形態に係るウエブサーバ装置は、第1の実施形態に係るウエブサーバ装置と同様の構成を採るものであるが、CPU11の処理の内容が異なり、磁気ディスク19にさらに別のテーブルが格納されることとなるので、以下、この相違点について説明する。
本実施の形態では磁気ディスク19に、図11に示すように、リソースごとに、各要求名に関するアクセス権を規定するリソースを定義したテーブルを格納している。なお、ここではアクセス許可条件の変更のための要求名「qualify」が新たに付加されている。この要求名に対する処理については後に説明する。
CPU11は、閲覧(view)、編集(edit)、生成(create)、インフォーム(inform)の各要求名に関する処理としてそれぞれ、図6、図7、図9、図10に示した処理を基本的に行うのであるが、図7における処理S24、図9における処理S41、図10における処理S51の内容が異なる。
すなわちCPU11は、例えばリソースP1に対して要求名「edit」のリクエストを受けたときに、editに対する処理を開始し、図7に示した処理S24において、リソースP1と要求名「edit」とに対応して図11に示したテーブルに定義されたリソース名「Px」を取得し、利用者のアクセス履歴に含まれるノード名のリストに、指定したリソースの上位に属するリソースが含まれ(この判断処理は図6に示した処理S14と同じである)、かつここで取得したリソース名「Px」にアクセス可能であるとき(この判断処理は、リソース名「Px」を指定されたリソースとした場合の処理S14と同様の処理であるので、リソース名「Px」より上位のリソースについてのノード名がアクセス履歴に含まれる場合)、指定したリソースへのアクセス(この場合は編集のためのアクセス)が可能であると判断して、処理S25以下の処理に移行する。生成(create)、インフォーム(inform)についても同様に、アクセスの可否の判断の際に図11に示したテーブルが参照され、当該テーブル上で、指示されたリソースと要求名とに関連づけられているリソースが、「利用者が過去にアクセスしたことがあるか、又は過去にアクセスした別のリソースの下位に属している場合」であって、かつ、「指定されたリソースに過去にアクセスしたことがあるか又は過去にアクセスしたことのあるリソースの下位に当該指定されたリソースが属している場合」に、指定されたリソースに対する、指定された要求名のアクセスが可能であると判断されることになる。
[edit、createにより、新たなリソースが生成される場合の処理]
要求名editや、createにより、指定されたリソースからリンクされる新たなリソース(直接下位のリソース)や、指定されたリソースへのリンクを含む新たなリソース(直接上位のリソース)が生成される場合には、図11に、当該リソースに対するエントリーが追加されることになる。
この追加されるエントリーは、要求名editにより指定されたリソースの直接下位のリソースが生成される場合には、当該指定されたリソースと同じ設定となる。例えば図11に示しているリソースP1に対して直接下位のリソースを生成した場合、当該生成したリソースに対するエントリーでは、editに対して「Px」、createに対して「Py」、informに対して「Pz」、qualifyに対して「Pw」が設定されているようになる。
また、この追加されるエントリーは、要求名createにより指定されたリソースの直接上位のリソースが生成される場合には、「qualify」を除く要求名に対応するものについては、当該指定されたリソースと同じ設定となる。例えば図11に示しているリソースP1に対して直接上位のリソース「Pq」を生成した場合、当該生成したリソースに対するエントリーでは、editに対して「Px」、createに対して「Py」、informに対して「Pz」、qualifyに対して「Pq」,つまり自分自身,が設定されているようになる。
[要求名qualifyに対する処理]
この図11に示したアクセスコントロールのリストを編集する要求がクオリファイ(qualify)として定められる。
そこで次に、この要求名qualifyに対する処理について説明する。CPU11はまず、利用者が、指定されたリソースについて、要求名qualifyのアクセスを行うことができるか否かを調べる。具体的に図11に示した設定のときに、リソースP1に関するエントリーを変更する場合、P1と、要求名qualifyとに関連づけられているリソース名「Pw」を取得し、要求をした利用者が「上記取得したリソース名「Pw」自体、又は当該「Pw」より上位のリソースにアクセスしたことがある」場合に、リソースP1に対する各要求名に関連づける値を変更できるようになる。なお、ここではリソース名を関連づけているが、リソース名に代えて当該リソース名から演算されるハッシュ値を関連づけてもよい。
[その他の変形例]
なお、本発明はここまでの第1、第2の実施の形態で説明した態様に限られるものではない。例えば、ここでは磁気ディスク19内に、各テーブルを実現するデータベースや情報要素ネットワークを形成していたが、これらはネットワーク3を介して通信可能となっている他のサーバ装置内のディスク装置等に形成されてもよい。
さらに、ここでは非循環有向グラフ状に情報要素ネットワークが形成され、処理負荷を軽減した状態を示したが、情報要素ネットワークは、これに限られるものではなく、例えば循環的であっても構わない。
また、これら第1、第2の実施の形態で説明した処理の内容を用いれば、上述のようにウエブサーバ装置として構成するだけでなく、ファイルシステムとしての適用も可能である。
本発明の実施の形態に係るウエブサーバ装置と、そのネットワークへの接続状態の例を表す構成ブロック図である。 非循環有向グラフ状の情報要素ネットワークの例を表す説明図である。 非循環有向グラフ状の情報要素ネットワークをHTMLの記述により実現する例を表す説明図である。 情報要素へのアクセス可否を判断する際に参照されるテーブルの例を表す説明図である。 情報要素へのアクセス可否を判断する際に参照される、もう一つのテーブルの例を表す説明図である。 本発明の実施の形態に係るウエブサーバ装置による閲覧の処理の例を表すフローチャート図である。 本発明の実施の形態に係るウエブサーバ装置による編集の処理の例を表すフローチャート図である。 本発明の実施の形態に係るウエブサーバ装置によるコミットの処理の例を表すフローチャート図である。 本発明の実施の形態に係るウエブサーバ装置による生成の処理の例を表すフローチャート図である。 本発明の実施の形態に係るウエブサーバ装置によるインフォームの処理の例を表すフローチャート図である。 情報要素へのアクセス可否を判断する際に参照される、さらに別のテーブルの例を表す説明図である。 ウエブサーバ装置を含む従来一般的なネットワークシステムの例を表す説明図である。 従来一般的なアクセス管理のテーブル例を表す説明図である。
符号の説明
1,100 ウエブサーバ装置、2 クライアント装置、3 ネットワーク、11 CPU、12 システムコントローラ、13 スイッチ、14 メモリ、15 バスインタフェース、16 マウス、17 キーボード、18 バス、19 磁気ディスク、20 ネットワークインタフェース、21 表示制御部、30 ディスプレイ。

Claims (17)

  1. 情報要素をノードとして含んでなる情報要素ネットワークを保持するデータベースと、クライアント装置とに接続され、
    前記データベース内に保持されている情報要素ネットワーク上の情報要素に係るアクセスの要求を、前記クライアント装置から受け入れる手段と、
    当該クライアント装置から、前記情報要素ネットワークに含まれる情報要素への過去のアクセス履歴に関連する情報を取得する手段と、
    前記取得した情報に基づいて、前記要求に係る情報要素よりも前記情報要素ネットワーク上で上位の情報要素のいずれか一つが前記クライアント装置によって過去にアクセスされたか否かを判断し、
    当該判断の結果により、前記クライアント装置からの前記要求に係る情報要素へのアクセスの可否を決定する手段と、
    を含むことを特徴とするサーバ装置。
  2. 請求項1に記載のサーバ装置において、
    受け入れるアクセスの種別に関連した情報要素であって、当該情報要素に対して前記クライアント装置が過去にアクセスをしたか否かにより、当該情報要素に関連する種別のアクセスの可否が定められる情報要素が、前記データベース内の情報要素ネットワーク内に含められていることを特徴とするサーバ装置。
  3. 情報要素をノードとして含んでなる情報要素ネットワークを保持するデータベースと、クライアント装置とに接続され、
    前記情報要素の少なくとも一部について、当該情報要素へのアクセス種別ごとのアクセスキーとなる少なくとも一つの情報要素を関連づけて保持するアクセスキー保持手段と、
    前記データベース内に保持されている情報要素ネットワーク上の情報要素に係るアクセスの要求を、前記クライアント装置から受け入れる手段と、
    当該クライアント装置から、前記情報要素ネットワークに含まれる情報要素への過去のアクセス履歴に関連する情報を取得する手段と、
    前記取得した情報に基づいて、前記要求に係る情報要素について当該要求されたアクセス種別にアクセスキーとして関連づけられた情報要素のいずれか一つが、前記クライアント装置によって過去にアクセスされたか否かを判断し、
    当該判断の結果により、前記クライアント装置からの前記要求に係る情報要素へのアクセスの可否を決定する手段と、
    を含むことを特徴とするサーバ装置。
  4. 請求項1から3のいずれか一項に記載のサーバ装置において、
    情報要素に関連した所定特徴量を演算する特徴量演算手段をさらに含み、
    前記クライアント装置に対して、当該クライアント装置からの要求に係る情報要素へのアクセスを行わせたときに、当該要求に係る情報要素に関連する関連情報を、前記クライアント装置側に対して送信する手段と、
    を含み、
    前記クライアント装置側に保持されている前記関連情報が、前記過去のアクセス履歴に関連する情報としての所定処理に供されることを特徴とするサーバ装置。
  5. 請求項4に記載のサーバ装置であって、
    前記特徴量演算手段は、前記過去にアクセスされたノードのリストに関する、別の所定特徴量を演算し、当該演算された所定特徴量が、前記関連情報に関する情報として用いられることを特徴とするサーバ装置。
  6. 請求項4又は5に記載のサーバ装置において、
    前記特徴量の演算方法は、当該特徴量がとりうる量全体からなる空間内で、当該とりうる量のうち前記情報要素のいずれかに対応する特徴量の分布する確率が所定量以下となるよう定められていることを特徴とするサーバ装置。
  7. 1以上のリソースを含む構造を持つデータベースを管理するサーバ装置において、前記リソースに対するアクセス要求時に受信したリソース名と、前記データベースに対するアクセス履歴を示すユーザコンテキスト情報とに基づいて、当該リソースに対するアクセス権を判断する判断手段を具備することを特徴とするサーバ装置。
  8. 前記判断手段は、当該リソース名が当該ユーザコンテクスト情報に含まれるどうかを判断することにより、当該リソースに対するアクセス権を判断することを特徴とする請求項7記載のサーバ装置。
  9. 前記データベースの構造は、前記1以上のリソースが関係付けられる構造であって、前記リソースをノードとするネットワーク構造、前記リソースをノードとする木構造のうち、いずれかを含むものであることを特徴とする請求項7記載のサーバ装置。
  10. 前記データベースの構造は、複数のノードを有し、各ノードには、ノード間の参照関係情報を持ち、前記ユーザコンテキスト情報は、少なくとも過去にアクセスした参照元ノードとして最上位のノードとしてのリソース名に対応するものを含むものであることを特徴とする請求項7記載のサーバ装置。
  11. サーバ装置は、ウエブサーバであり、前記リソース名をURLとして受信すると共に、前記コンテキスト情報をクッキー領域の情報として受信するものであることを特徴とする請求項7記載のサーバ装置。
  12. 前記ユーザコンテキスト情報は、リソース名に基づいて算出されたハッシュ値を含むものであることを特徴とする請求項7記載のサーバ装置。
  13. 前記ユーザコンテキスト情報は、リソース名及びリソースの内容に基づいて算出されたハッシュ値を含むものであることを特徴とする請求項7記載のサーバ装置。
  14. データベースに対する最初のアクセス時には、特殊形のリソース名を受信し、当該リソースに対応する通常のリソース名及びユーザコンテクスト情報を返信し、返信した通常のリソース名及びユーザコンテクスト情報とによる再度のアクセス要求を受信することを特徴とする請求項7記載のサーバ装置。
  15. 前記データベースは、リソース名と、リソース名に対応したリソースの内容に基づくハッシュ値とを持ち、前記特殊形のリソース名には、当該リソース名に対応するリソースの内容に基づいたハッシュ値を含むものであることを特徴とする請求項14記載のサーバ装置。
  16. 情報要素をノードとして含んでなる情報要素ネットワークを保持するデータベースと、クライアント装置とに接続されたサーバ装置を用い、
    前記データベース内に保持されている情報要素ネットワーク上の情報要素に係るアクセスの要求を、前記クライアント装置から受け入れる工程と、
    当該クライアント装置から、前記情報要素ネットワークに含まれる情報要素への過去のアクセス履歴に関連する情報を取得する工程と、
    前記取得した情報に基づいて、前記要求に係る情報要素よりも前記情報要素ネットワーク上で上位の情報要素のいずれか一つが前記クライアント装置によって過去にアクセスされたか否かを判断し、当該判断の結果により、前記クライアント装置からの前記要求に係る情報要素へのアクセスの可否を決定する工程と、
    を実行することを特徴とする情報の提供方法。
  17. 情報要素をノードとして含んでなる情報要素ネットワークを保持するデータベースと、クライアント装置とに接続されたコンピュータに、
    前記データベース内に保持されている情報要素ネットワーク上の情報要素に係るアクセスの要求を、前記クライアント装置から受け入れる手順と、
    当該クライアント装置から、前記情報要素ネットワークに含まれる情報要素への過去のアクセス履歴に関連する情報を取得する手順と、
    前記取得した情報に基づいて、前記要求に係る情報要素よりも前記情報要素ネットワーク上で上位の情報要素のいずれか一つが前記クライアント装置によって過去にアクセスされたか否かを判断し、当該判断の結果により、前記クライアント装置からの前記要求に係る情報要素へのアクセスの可否を決定する手順と、
    を実行させることを特徴とするプログラム。
JP2003357084A 2003-10-16 2003-10-16 サーバ装置、情報の提供方法、及びプログラム Expired - Fee Related JP4729844B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003357084A JP4729844B2 (ja) 2003-10-16 2003-10-16 サーバ装置、情報の提供方法、及びプログラム
US10/959,053 US20050086213A1 (en) 2003-10-16 2004-10-07 Server apparatus, information providing method and program product therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003357084A JP4729844B2 (ja) 2003-10-16 2003-10-16 サーバ装置、情報の提供方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2005122493A true JP2005122493A (ja) 2005-05-12
JP4729844B2 JP4729844B2 (ja) 2011-07-20

Family

ID=34509818

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003357084A Expired - Fee Related JP4729844B2 (ja) 2003-10-16 2003-10-16 サーバ装置、情報の提供方法、及びプログラム

Country Status (2)

Country Link
US (1) US20050086213A1 (ja)
JP (1) JP4729844B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010082253A1 (ja) * 2009-01-16 2010-07-22 パナソニック株式会社 サーバ認証方法及びクライアント端末
JP2015088122A (ja) * 2013-11-01 2015-05-07 富士ゼロックス株式会社 情報管理装置及びプログラム
JP2017515215A (ja) * 2014-03-31 2017-06-08 アマゾン・テクノロジーズ・インコーポレーテッド 分散格納システムにおける名前空間管理
WO2017164212A1 (ja) * 2016-03-22 2017-09-28 アセンブローグ株式会社 アクセス管理方法、情報処理装置、プログラム、及び記録媒体
CN111712810A (zh) * 2018-02-13 2020-09-25 国际商业机器公司 用于知识图的动态访问控制

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613701B2 (en) * 2004-12-22 2009-11-03 International Business Machines Corporation Matching of complex nested objects by multilevel hashing
US7769579B2 (en) * 2005-05-31 2010-08-03 Google Inc. Learning facts from semi-structured text
US7493344B2 (en) * 2005-04-01 2009-02-17 Schlumberger Technology Corporation Method and system for dynamic data merge in databases
US9547708B2 (en) * 2005-04-01 2017-01-17 Schlumberger Technology Corporation Method and system for database licensing
US8107100B2 (en) * 2006-07-20 2012-01-31 International Business Machines Corporation Post deployment electronic document management and security solution
WO2011097670A1 (en) * 2010-02-09 2011-08-18 Zap Holdings Limited Database access licence management
US9461978B2 (en) * 2012-09-25 2016-10-04 Tata Consultancy Services Limited System and method for managing role based access controls of users
CN113158109B (zh) * 2021-04-28 2023-08-29 郑州悉知信息科技股份有限公司 信息处理的方法及服务器节点

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137799A (ja) * 1994-11-08 1996-05-31 Sony Corp サイバースペースシステム
JP2000330848A (ja) * 1999-05-18 2000-11-30 Mitsubishi Electric Corp アクセス制御方式
JP2003015979A (ja) * 2001-06-27 2003-01-17 Nisshin Seifun Group Inc インターネットのアクセス方法
JP2003122641A (ja) * 2001-10-11 2003-04-25 Nippon Telegraph & Telephone East Corp アクセス制御装置、アクセス制御方法、及びアクセス制御プログラム
JP2003150543A (ja) * 2001-11-12 2003-05-23 Yafoo Japan Corp Cgi不正アクセス防止システム及び方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5235642A (en) * 1992-07-21 1993-08-10 Digital Equipment Corporation Access control subsystem and method for distributed computer system using locally cached authentication credentials
US5956715A (en) * 1994-12-13 1999-09-21 Microsoft Corporation Method and system for controlling user access to a resource in a networked computing environment
US5758145A (en) * 1995-02-24 1998-05-26 International Business Machines Corporation Method and apparatus for generating dynamic and hybrid sparse indices for workfiles used in SQL queries
US5761669A (en) * 1995-06-06 1998-06-02 Microsoft Corporation Controlling access to objects on multiple operating systems
US5745681A (en) * 1996-01-11 1998-04-28 Sun Microsystems, Inc. Stateless shopping cart for the web
US5889952A (en) * 1996-08-14 1999-03-30 Microsoft Corporation Access check system utilizing cached access permissions
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US7912856B2 (en) * 1998-06-29 2011-03-22 Sonicwall, Inc. Adaptive encryption
US5878415A (en) * 1997-03-20 1999-03-02 Novell, Inc. Controlling access to objects in a hierarchical database
US6038563A (en) * 1997-10-31 2000-03-14 Sun Microsystems, Inc. System and method for restricting database access to managed object information using a permissions table that specifies access rights corresponding to user access rights to the managed objects
US6772350B1 (en) * 1998-05-15 2004-08-03 E.Piphany, Inc. System and method for controlling access to resources in a distributed environment
EP1095335A1 (en) * 1998-05-21 2001-05-02 Equifax Inc. System and method for authentication of network users and issuing a digital certificate
US6182142B1 (en) * 1998-07-10 2001-01-30 Encommerce, Inc. Distributed access management of information resources
JP2000148276A (ja) * 1998-11-05 2000-05-26 Fujitsu Ltd セキュリティ監視装置,セキュリティ監視方法およびセキュリティ監視用プログラム記録媒体
US6308181B1 (en) * 1998-12-19 2001-10-23 Novell, Inc. Access control with delayed binding of object identifiers
US6519647B1 (en) * 1999-07-23 2003-02-11 Microsoft Corporation Methods and apparatus for synchronizing access control in a web server
US6510439B1 (en) * 1999-08-06 2003-01-21 Lucent Technologies Inc. Method and system for consistent update and retrieval of document in a WWW server
KR100430147B1 (ko) * 2000-03-15 2004-05-03 인터내셔널 비지네스 머신즈 코포레이션 컴퓨터 액세스 제어
JP2002091851A (ja) * 2000-09-12 2002-03-29 Toshiba Corp 情報提供方法および中継サーバ装置
US20020087625A1 (en) * 2001-01-04 2002-07-04 Kim Toll Sharing user profiles between processor-based systems
US7290266B2 (en) * 2001-06-14 2007-10-30 Cisco Technology, Inc. Access control by a real-time stateful reference monitor with a state collection training mode and a lockdown mode for detecting predetermined patterns of events indicative of requests for operating system resources resulting in a decision to allow or block activity identified in a sequence of events based on a rule set defining a processing policy
GB0207354D0 (en) * 2002-03-28 2002-05-08 Ibm Inheritance of access controls within a hierarchy of data processing system resources
US7120635B2 (en) * 2002-12-16 2006-10-10 International Business Machines Corporation Event-based database access execution
JP2005078612A (ja) * 2003-09-04 2005-03-24 Hitachi Ltd ファイル共有システム及びファイル共有装置間のファイル移行方法
US7251822B2 (en) * 2003-10-23 2007-07-31 Microsoft Corporation System and methods providing enhanced security model
US7506371B1 (en) * 2004-01-22 2009-03-17 Guardium, Inc. System and methods for adaptive behavior based access control
US7924709B2 (en) * 2004-05-12 2011-04-12 Hewlett-Packard Development Company, L.P. Access control of resources using tokens

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137799A (ja) * 1994-11-08 1996-05-31 Sony Corp サイバースペースシステム
JP2000330848A (ja) * 1999-05-18 2000-11-30 Mitsubishi Electric Corp アクセス制御方式
JP2003015979A (ja) * 2001-06-27 2003-01-17 Nisshin Seifun Group Inc インターネットのアクセス方法
JP2003122641A (ja) * 2001-10-11 2003-04-25 Nippon Telegraph & Telephone East Corp アクセス制御装置、アクセス制御方法、及びアクセス制御プログラム
JP2003150543A (ja) * 2001-11-12 2003-05-23 Yafoo Japan Corp Cgi不正アクセス防止システム及び方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010082253A1 (ja) * 2009-01-16 2010-07-22 パナソニック株式会社 サーバ認証方法及びクライアント端末
JP2015088122A (ja) * 2013-11-01 2015-05-07 富士ゼロックス株式会社 情報管理装置及びプログラム
JP2017515215A (ja) * 2014-03-31 2017-06-08 アマゾン・テクノロジーズ・インコーポレーテッド 分散格納システムにおける名前空間管理
JP2020064688A (ja) * 2016-03-22 2020-04-23 アセンブローグ株式会社 アクセス管理方法、情報処理装置、プログラム、及び記録媒体
KR20180126031A (ko) * 2016-03-22 2018-11-26 아셈블로그, 인크. 액세스 관리 방법, 정보 처리 장치, 프로그램, 및 기록 매체
JPWO2017164212A1 (ja) * 2016-03-22 2018-12-13 アセンブローグ株式会社 アクセス管理方法、情報処理装置、プログラム、及び記録媒体
WO2017164212A1 (ja) * 2016-03-22 2017-09-28 アセンブローグ株式会社 アクセス管理方法、情報処理装置、プログラム、及び記録媒体
KR102174032B1 (ko) * 2016-03-22 2020-11-04 아셈블로그, 인크. 액세스 관리 방법, 정보 처리 장치, 프로그램, 및 기록 매체
US10846243B2 (en) 2016-03-22 2020-11-24 Assemblogue, Inc. Access management method, information processing device, program, and recording medium
CN111712810A (zh) * 2018-02-13 2020-09-25 国际商业机器公司 用于知识图的动态访问控制
JP2021513138A (ja) * 2018-02-13 2021-05-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ナレッジ・グラフのための動的アクセス制御
JP7291709B2 (ja) 2018-02-13 2023-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーション ナレッジ・グラフのための動的アクセス制御
CN111712810B (zh) * 2018-02-13 2024-04-26 国际商业机器公司 用于知识图的动态访问控制

Also Published As

Publication number Publication date
US20050086213A1 (en) 2005-04-21
JP4729844B2 (ja) 2011-07-20

Similar Documents

Publication Publication Date Title
JP3807961B2 (ja) セッション管理方法、セッション管理システムおよびプログラム
US5835712A (en) Client-server system using embedded hypertext tags for application and database development
US6832366B2 (en) Application generator
KR101444389B1 (ko) 원격 모듈용 메시지 목록
US20090320119A1 (en) Extensible content service for attributing user-generated content to authored content providers
JP4729844B2 (ja) サーバ装置、情報の提供方法、及びプログラム
US20090049146A1 (en) System and method for data transmission
JP5499524B2 (ja) 中継プログラムおよび中継装置
US9778919B2 (en) Dual context interaction with a content object for facilitating content creation and software development
JP4509671B2 (ja) 文書編集方法及び文書編集システム
JP2009251754A (ja) ページカスタマイズサーバ、ページカスタマイズプログラムおよびページカスタマイズ方法
JP5344680B2 (ja) リンク生成装置およびリンク生成方法
JP2006134102A (ja) ディレクトリ編集支援プログラム、ディレクトリ編集支援方法及びディレクトリ編集支援装置
JP5088269B2 (ja) 画面情報管理方法
JP2010146111A (ja) 多言語データベースサーバ及び多言語データベースシステム
Kelly Aggregating Private and Public Web Archives Using the Mementity Framework
CA2406547C (en) Client-server application development and deployment system and methods
CA2602410C (en) Client-server application development and deployment system and methods
Le Developing a Social Network Using the Symfony Framework
JP2005352583A (ja) コンテンツサーバプログラム
JP2002024078A (ja) イメージファイル管理サーバ
JP2010140112A (ja) 多言語データベースサーバ及び多言語データベースシステム
JP2002032298A (ja) インターネットホームページの更新方法
JP2009252047A (ja) 閲覧データに含まれる部分データを管理する装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060921

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071112

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100820

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110404

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

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees