図1は、本発明による文書管理サーバの一例のハードウェア構成図である。図1では説明に必要な構成を表し、説明に必要の無い構成を省略してある。以下の図においても同様である。
図1に示されるハードウェア構成は、それぞれバスBで相互に接続されているドライブ装置21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23と、CPU(Central Processing Unit)24と、インターフェース装置25と、HDD(Hard Disk Drive)26と、から構成されている。
インターフェース装置25は、文書管理サーバ10をネットワークに接続するインターフェースである。
文書管理サーバ10のプログラム(以下、単に文書管理プログラムという)は、例えば、CD−ROMなどの記録媒体27によって文書管理サーバ10に提供されるか、ネットワークを通じてダウンロードされる。記録媒体27は、ドライブ装置21にセットされ、データや文書管理プログラムが記録媒体27からドライブ装置21を介してHDD26にインストールされる。
ROM22は、データ等を格納する。RAM23は、文書管理サーバ10の起動時にHDD26から文書管理プログラムを読み出して格納する。CPU24は、RAM23に読み出され格納された文書管理プログラムに従って処理を実行する。
HDD26は、フォルダ又はディレクトリを有し、データやファイル、文書、文書管理プログラム等を格納する。
以下、本発明における文書管理サーバ10の一例の機能構成を、図2に示す。図2は、本発明における文書管理サーバの機能構成図(その1)である。
図2に示されるように、文書管理サーバ10は、チケット取得要求受信部101と、チケット作成部102と、チケット送信部103と、チケット要求受信部104と、有効性判定部105と、チケット管理部106と、チケットデータ変更部107と、を含む。
チケット取得要求受信部101は、クライアント(例えば後述するクライアントA)から文書管理サーバ10において管理している文書の利用許可を証明する証明情報である文書チケット又は文書管理サーバ10のフォルダの利用許可を証明する証明情報であるフォルダチケットの取得要求を受信する。
チケット作成部102は、チケット取得要求受信部101が受信した文書チケット又はフォルダチケットの取得要求に含まれる、該文書チケット又はフォルダチケットの利用期限に係る情報及び/又は前記証明情報の利用回数に係る情報等に基づいて、文書チケット又はフォルダチケットを作成する。
チケット送信部103は、チケット作成部102が作成した文書チケット又はフォルダチケットを識別する文書チケットID又はフォルダチケットID等を要求元のクライアント(例えば後述するクライアントA)に送信する。
チケット要求受信部104は、クライアント(例えば後述するクライアントA又はクライアントB)から、文書チケットID又はフォルダチケットIDを含んだ要求(例えば後述するセッション開始リクエスト)を受信する。
有効性判定部105は、チケット要求受信部104が受信した要求に含まれる文書チケットID又はフォルダチケットIDに基づいて、チケット管理部106が管理している対応する文書チケット又はフォルダチケットを参照し、該文書チケット又はフォルダチケットの利用回数や、利用期限に基づいて、文書チケット又はフォルダチケットの有効性を判定する。
チケット管理部106は、文書チケット又はフォルダチケットを、RAM23上又はHDD26上に保存し、管理する。
チケットデータ変更部107は、文書チケット又はフォルダチケットの利用回数を変更したり、クライアント(例えばクライアントB)等からの要求に応じて、文書チケット又はフォルダチケットの利用期限を変更したりする。
なお、以下では説明の簡略化のため、主にフォルダチケットを用いて本発明の実施例を説明する。但し、このことは、本発明の実施を制限するものではない。
以下、文書の格納を例にとって、本発明における基本的な処理の概要を、図3を用いて説明する。図3は、本発明における処理の概要を説明するためのシーケンス図である。
初めに、クライアントAは、クライアントAと、文書管理サーバ10と、のセッションの開始リクエスト(セッション開始リクエスト)を作成し、文書管理サーバ10に送信する(シーケンスSQ10。)。
セッション開始リクエストの一例は、後述する図4を用いて説明する。
セッションの開始リクエストを受信した文書管理サーバ10は、セッション開始リクエストに含まれているユーザIDやパスワード等の認証情報に基づいて、認証を行う。文書管理サーバ10は、有効な認証情報であると判定すると、セッションを作成し、該セッションを識別するセッションID含むセッション開始レスポンスを作成し、要求元のクライアントAに送信する(シーケンスSQ11。)。
なお、セッション開始レスポンスの一例は、後述する図5を用いて説明する。
文書管理サーバ10は、作成したセッションと、該セッションを識別するセッションIDと、を対応付けて管理する。
セッション開始レスポンスを受信したクライアントAは、セッション開始レスポンスに含まれるセッションIDを含む、文書管理サーバ10のフォルダの利用許可を証明する証明情報であるフォルダチケットの取得リクエスト(フォルダチケット取得リクエスト)を作成し、文書管理サーバ10に送信する(シーケンスSQ12。)。
なお、フォルダチケット取得リクエストの一例は、後述する図6を用いて説明する。
フォルダチケット取得リクエストを受信した文書管理サーバ10は、受信したフォルダチケット取得リクエストに含まれるセッションIDに基づいて、対応するセッションを参照し、有効なリクエストかどうかを判定する。文書管理サーバ10は、有効なリクエストであると判定すると、フォルダを識別するフォルダID等を含む、フォルダチケット取得リクエストに応じたファオルダチケットを作成し、該フォルダチケットを識別するフォルダチケットIDを含むフォルダチケット取得レスポンスを作成し、クライアントAに送信する(シーケンスSQ13。)。
なお、フォルダチケット取得レスポンスの一例は、後述する図7を用いて説明する。
文書管理サーバ10は、作成したフォルダチケットと、該フォルダチケットを識別するフォルダチケットIDと、を対応付けて管理する。
フォルダチケット取得レスポンスを受信したクライアントAは、フォルダチケット取得レスポンスに含まれるフォルダチケットIDと、文書管理サーバ10を識別する識別情報(例えば、文書管理サーバ10のURL)と、を含む文書の格納を指示する文書格納指示リクエストを作成し、クライアントBに送信する(シーケンスSQ14。)。
なお、文書格納指示リクエストの一例は、後述する図8を用いて説明する。
文書格納指示リクエストを受信したクライアントBは、文書格納指示リクエストに対応する文書格納指示レスポンスを作成し、クライアントAに送信する(シーケンスSQ15。)。
なお、文書格納指示レスポンスの一例は、後述する図9を用いて説明する。
また、クライアントBは、文書格納指示リクエストに含まれるフォルダチケットIDを含む、クライアントBと、文書管理サーバ10と、のセッションの開始リクエスト(フォルダチケットによるセッション開始リクエスト)を作成し、文書格納指示リクエストに含まれる文書管理サーバ10を識別する識別情報に基づいて、対応する文書管理サーバ10に、フォルダチケットによるセッション開始リクエストを送信する(シーケンスSQ16。)。
なお、フォルダチケットによるセッション開始リクエストの一例は、後述する図10を用いて説明する。
フォルダチケットによるセッション開始リクエストを受信した文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケットを参照し、後述するように、フォルダチケットに含まれる利用期限や利用回数等に基づいて、有効なリクエストかどうかを判定する。文書管理サーバ10は、有効なリクエストであると判定すると、フォルダチケットIDを含むセッションを作成し、該フォルダチケットによるセッションを識別するセッションIDを含むフォルダチケットによるセッション開始レスポンスを作成し、クライアントBに送信する(シーケンスSQ17。)。
なお、フォルダチケットによるセッションの一例を、後述する図11を用いて説明する。また、フォルダチケットによるセッション開始レスポンスの一例は、後述する図12を用いて説明する。
文書管理サーバ10は、作成したフォルダチケットによるセッションと、該セッションを識別するセッションIDと、を対応付けて管理する。
フォルダチケットによるセッション開始レスポンスを受信したクライアントBは、フォルダチケットによるセッション開始レスポンスに含まれる、フォルダチケットによるセッションを識別するセッションIDと、シーケンスSQ14において取得したフォルダチケットIDと、を含む、該フォルダチケットIDに対応するフォルダチケットに含まれるフォルダIDの取得リクエスト(フォルダID取得リクエスト)を文書管理サーバ10に送信する(シーケンスSQ18。)。
なお、フォルダID取得リクエストの一例は、後述する図13を用いて説明する。
フォルダID取得リクエストを受信した文書管理サーバ10は、フォルダID取得リクエストに含まれるセッションIDに基づいて、対応するフォルダチケットによるセッションを参照し、有効なリクエストかどうかを判定する。
文書管理サーバ10は、有効なリクエストであると判定すると、フォルダチケットIDに対応するフォルダチケットより、該フォルダチケットに含まれるフォルダIDを取得して、該フォルダIDを含むフォルダID取得レスポンスを作成し、クライアントBに送信する(シーケンスSQ19。)。
なお、フォルダID取得レスポンスの一例は、後述する図14を用いて説明する。
フォルダID取得レスポンスを受信したクライアントBは、フォルダチケットによるセッションを識別するセッションIDと、フォルダID取得レスポンスに含まれるフォルダIDと、格納する文書と、を含む文書格納リクエストを作成し、文書管理サーバ10に送信する(シーケンスSQ20。)。
なお、文書格納リクエストの一例は、後述する図15を用いて説明する。
文書格納リクエストを受信した文書管理サーバ10は、文書格納リクエストに含まれるセッションIDに基づいて、対応するフォルダチケットによるセッションを参照し、有効なリクエストかどうかを判定する。
文書管理サーバ10は、有効なリクエストであると判定すると、文書格納リクエストに含まれる文書を、フォルダIDによって指定されるフォルダに格納し、格納した文書を識別する文書IDを含む文書格納レスポンスを作成し、クライアントBに送信する(シーケンスSQ21。)。
なお、文書格納レスポンスの一例は、後述する図16を用いて説明する。
図3に示した方法によると、ユーザは、クライアントAからクライアントBにフォルダチケットIDを渡すことによって、クライアントBから直接文書管理サーバ10に文書を格納することができる。
したがって、クライアントAは、一度クライアントBから文書を取得した後、文書管理サーバ10に文書を送信して、該文書を格納する必要がなく、ネットワークに負荷を掛けることがない。
また、図3には示していないが、もちろんクライアントAがフォルダチケットIDを用いて、自身が保持、又は作成した文書を文書管理サーバ10に格納してもよい。
以下、セッション開始リクエストの一例を、図4を用いて説明する。図4は、セッション開始リクエストの一例を説明するための図である。
図4に示されるように、セッション開始リクエストの<userid></userid>のタグにはユーザIDが格納されている。また、セッション開始リクエストの<password></password>のタグにはパスワードが格納されている。また、セッション開始リクエストの<timeLimit></timeLimit>のタグには、セッションチケットの有効時間が秒数を単位に格納されている。
以下、セッション開始レスポンスの一例を、図5を用いて説明する。図5は、セッション開始レスポンスの一例を説明するための図である。
図5に示されるように、セッション開始レスポンスの<returnValue></returnValue>のタグには、クライアントAと、文書管理サーバ10と、のセッションを識別するセッションIDが格納されている。
以下、フォルダチケット取得リクエストの一例を、図6を用いて説明する。図6は、フォルダチケット取得リクエストの一例を説明するための図である。
図6に示されるように、フォルダチケット取得リクエストの<sessionId></sessionId>のタグには、クライアントAと、文書管理サーバ10と、のセッションを識別するセッションIDが格納されている。また、フォルダチケット取得リクエストの<folderId></folderId>のタグにはユーザが利用を許可して欲しいフォルダを識別するフォルダIDが格納されている。
なお、フォルダチケット取得リクエストに、フォルダチケットの利用期限に係る情報や、フォルダチケットの利用回数に係る情報等が含まれる例は、後述する図23や図26、図29、図32、図36、図39、図42、図45等を用いて説明する。
以下、フォルダチケット取得レスポンスの一例を、図7を用いて説明する。図7は、フォルダチケット取得レスポンスの一例を説明するための図である。
図7に示されるように、フォルダチケット取得レスポンスの<returnValue></returnValue>のタグには、フォルダチケットIDが含まれる。
以下、文書格納指示リクエストの一例を、図8を用いて説明する。図8は、文書格納指示リクエストの一例を説明するための図である。
図8に示されるように、文書格納指示リクエストの<ticket></ticket>のタグには、図7のフォルダチケット取得レスポンスでクライアントAが取得したフォルダチケットIDが格納されている。また、文書格納指示リクエストの<targetUrl></targetUrl>のタグには、文書管理サーバ10のURLが格納されている。
なお、図8の文書格納指示リクエストでは、クライアントBをスキャナであると想定している。また、図8の文書格納指示リクエストに文書管理サーバ10のフォルダの階層情報を含めてもよい。
以下、文書格納指示レスポンスの一例を、図9を用いて説明する。図9は、文書格納指示レスポンスの一例を説明するための図である。
クライアントBは、クライアントAより図8に示されるような文書格納指示リクエストを受信すると、図9に示されるような文書格納指示レスポンスをクライアントAに送信する。
以下、フォルダチケットによるセッション開始リクエストの一例を、図10を用いて説明する。図10は、フォルダチケットによるセッション開始リクエストの一例を説明するための図である。
図10に示されるように、フォルダチケットによるセッション開始リクエストの<ticket></ticket>のタグには、クライアントAより受信したフォルダチケットIDが格納されている。また、セッション開始リクエストの<timeLimit></timeLimit>のタグには、フォルダチケットによるセッションの有効時間が格納されている。
以下、フォルダチケットによるセッションの一例を、図11を用いて説明する。図11は、フォルダチケットによるセッションの一例を説明するための図である。
図11に示されるように、フォルダチケットによるセッションには、該フォルダチケットによるセッションを識別するセッションIDと、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDと、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットによるセッションの有効時間と、が含まれている。
なお、図11においては、有効時間として、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットによるセッションの有効時間がそのまま含まれている構成としたが、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに基づいて、該フォルダチケットによるセッションを作成した時刻も更に含めるように構成してもよい。以下、特に言及しないが、他のチケットにおいても、該チケットが作成された時刻をチケットの構成に含むようにしてもよい。
以下、フォルダチケットによるセッション開始レスポンスの一例を、図12を用いて説明する。図12は、フォルダチケットによるセッション開始レスポンスの一例を説明するための図である。
図12に示されるように、フォルダチケットによるセッション開始レスポンスの<returnValue></returnValue>のタグには、フォルダチケットによるセッションを識別するセッションIDが格納されている。
以下、フォルダID取得リクエストの一例を、図13を用いて説明する。図13は、フォルダID取得リクエストの一例を説明するための図である。
図13に示されるように、フォルダID取得リクエストの<sessionId></sessionId>のタグには、フォルダチケットによるセッションを識別するセッションIDが格納されている。
また、フォルダID取得リクエストの<ticket></ticket>のタグには、クライアントAより受信したフォルダチケットIDが格納されている。
以下、フォルダID取得レスポンスの一例を、図14を用いて説明する。図14は、フォルダID取得レスポンスの一例を説明するための図である。
図14に示されるように、フォルダID取得レスポンスの<returnValue></returnValue>のタグには、フォルダIDが格納されている。
以下、文書格納リクエストの一例を、図15を用いて説明する。図15は、文書格納リクエストの一例を説明するための図である。
図15に示されるように、文書格納リクエストの<sessionId></sessionId>のタグには、フォルダチケットによるセッションを識別するセッションIDが格納されている。また、文書格納リクエストの<folderId></folderId>のタグには、文書管理サーバ10のフォルダを識別するフォルダIDが格納されている。また、文書格納リクエストの<title></title>のタグには、フォルダIDで識別されるフォルダに格納する文書のタイトルが格納されている。また、文書格納リクエストの<creator></creator>のタグには、文書を作成した作成者を識別する識別子(例えばユーザID等)が格納されている。また、文書格納リクエストの<content></content>のタグには、文書の内容が格納されている。
なお、図15に示される文書格納リクエストに文書管理サーバ10のフォルダの階層情報を含めてもよい。図15に示される文書格納リクエストに文書管理サーバ10のフォルダの階層情報を含めることによって、例えば、文書管理サーバ10は、指定されたフォルダの配下にサブフォルダを作成し、文書を格納することもできる。
以下、文書格納レスポンスの一例を、図16を用いて説明する。図16は、文書格納レスポンスの一例を説明するための図である。
図16に示されるように文書格納レスポンスの<returnValue></returnValue>のタグには、格納した文書を識別する文書IDが格納されている。
以下、クライアントAからの要求に基づいて、文書管理サーバ10において作成されるフォルダチケットの種類の一例を、図17を用いて説明する。図17は、フォルダチケットの種類の一例を説明するための図である。
図17に示されるように、フォルダチケットには、利用回数及び利用期限を有する一時シングルチケット及び一時有限チケットと、利用回数を有し、利用期限は無期限な、永続シングルチケット及び永続有限チケットと、利用回数は無制限で、利用期限を有する、一時マルチプルチケット及び一時無限チケットと、利用回数は無期限で、利用期限も無期限な、永続マルチプルチケット及び永続無限チケットと、を有する。
利用回数及び利用期限を有する一時シングルチケット及び一時有限チケットは、文書管理サーバ10、クライアントA、クライアントB等が存在するシステムの運用において、他の種類のフォルダチケットに比べて安全性が1番高いが、フォルダチケットの利用回数及び利用期限を管理するため、文書管理サーバ10等においてフォルダチケットに係るリソースを保持する必要がある。また、利用回数又は利用期限が切れた場合は、クライアントA又はクライアントBは、フォルダチケットを再取得する必要がある。
一方、利用回数を有し、利用期限は無期限な、永続シングルチケット及び永続有限チケットは、利用回数を制限しているものの、利用期限が無期限のため、安全性は低い。また、フォルダチケットの利用回数を管理するため、文書管理サーバ10等においてフォルダチケットに係るリソースを保持する必要がある。ただ、利用回数が切れた場合にのみ、クライアントA又はクライアントBは、フォルダチケットを再取得すればよく、一時シングルチケット及び一時有限チケットに比べて、ユーザの利便性は高い。
一方、利用回数は無制限で、利用期限を有する、一時マルチプルチケット及び一時無限チケットは、利用回数は無制限であるものの、利用期限を制限しているため、安全性は高い。また、利用期限が切れた場合にのみ、クライアントA又はクライアントBは、フォルダチケットを再取得すればよく、一時シングルチケット及び一時有限チケットに比べて、ユーザの利便性は高い。ただ、フォルダチケットの利用期限を管理するため、文書管理サーバ10等においてフォルダチケットに係るリソースを保持する必要がある。
一方、利用回数は無期限で、利用期限も無期限な、永続マルチプルチケット及び永続無限チケットは、安全性は低いが、文書管理サーバ10等においてフォルダチケットに係るリソースを保持する必要がない。また、クライアントA又はクライアントBは、フォルダチケットを再取得する必要がないため、他の種類のフォルダチケットに比べて利便性は1番高い。
なお、文書管理サーバ10は、クライアントA又はクライアントB又は文書管理サーバ10の管理者等からの要求に基づいて、フォルダチケットをキャンセルすることができるため、システムの最低限の安全性は保持することができる。
以下、例えばクライアントA等がフォルダチケットの利用期限を指定する一例を、図18を用いて説明する。図18は、フォルダチケットの利用期限を指定する一例を説明するための図である。
図18に示されるように、例えばクライアントAは、図6に示したようなフォルダチケット取得リクエストのgetFolderTicketメソッドに、DURATIONプロパティを追加する。クライアントAは、DURATIONプロパティにTEMPORARYを格納することによって、一時的(又はクライアントAが指定した)期限、有効なフォルダチケットの作成を文書管理サーバ10に要求することができる。また、クライアントAは、DURATIONプロパティにPERMANENTを格納することによって、永続的に有効なフォルダチケットの作成を文書管理サーバ10に要求することができる。
以下、例えばクライアントA等がフォルダチケットの利用回数を指定する一例を、図19を用いて説明する。図19は、フォルダチケットの利用回数を指定する一例を説明するための図である。
図19に示されるように、例えばクライアントAは、図6に示したようなフォルダチケット取得リクエストのgetFolderTicketメソッドに、ENTRY_LIMITプロパティを追加する。クライアントAは、ENTRY_LIMITプロパティにSINGLEを格納することによって、一回限り有効なフォルダチケットの作成を文書管理サーバ10に要求することができる。また、クライアントAは、ENTRY_LIMITプロパティにMULTIPLEを格納することによって、無制限有効なフォルダチケットの作成を文書管理サーバ10に要求することができる。
以下、例えばクライアントA等がフォルダチケットの利用回数を指定する他の例を、図20を用いて説明する。図20は、フォルダチケットの利用回数を指定する他の例を説明するための図である。
図20に示されるように、例えばクライアントAは、図6に示したようなフォルダチケット取得リクエストのgetFolderTicketメソッドに、ENTRY_LIMITプロパティを追加する。クライアントAは、ENTRY_LIMITプロパティに正の整数を格納することによって、指定有限回有効なフォルダチケットの作成を文書管理サーバ10に要求することができる。また、クライアントAは、ENTRY_LIMITプロパティに−1を格納することによって、無限回有効なフォルダチケットの作成を文書管理サーバ10に要求することができる。
以下、例えばクライアントA等が利用期限又は利用回数が切れたフォルダチケットの権限を指定する一例を、図21を用いて説明する。図21は、利用期限又は利用回数切れのフォルダチケットの権限を指定する一例を説明するための図である。
図21に示されるように、例えばクライアントAは、図6に示したようなフォルダチケット取得リクエストのgetFolderTicketメソッドに、OVERDUE_TICKETプロパティを追加する。クライアントAは、OVERDUE_TICKETプロパティにINVALIDを格納することによって、利用期限又は利用回数が切れた場合、フォルダチケットの権限を無効とするフォルダチケットの作成を文書管理サーバ10に要求することができる。また、クライアントAは、OVERDUE_TICKETプロパティにREAD_ONLYを格納することによって、利用期限又は利用回数が切れた場合、文書の読み取りのみ可能なフォルダチケットの作成を文書管理サーバ10に要求することができる。
以下、getFolderTicketメソッドのENTRY_LIMITプロパティにSINGLE又はMULTIPLEが格納されていた場合を例にとって、文書管理サーバ10における処理の一例を、図22から図34を用いて説明する。
図22は、フォルダチケット作成を説明するためのフローチャート(その1)である。
ステップS30において、文書管理サーバ10は、例えばクライアントAより、後述する図23や図26、図29、図32等に示されるようなフォルダチケット取得リクエストを受信する。
ステップS30に続いてステップS31に進み、文書管理サーバ10は、フォルダチケット取得リクエストに含まれる<duration></duration>のタグに格納されている値を参照し、TEMPORARY(一時)か、又はPERMANENT(永続)か、を判定する。
文書管理サーバ10は、<duration></duration>のタグに格納されている値がTEMPORARY(一時)であると判定すると、ステップS32に進み、PERMANENT(永続)であると判定すると、ステップS33に進む。
ステップS32では、文書管理サーバ10が、フォルダチケット取得リクエストに含まれる<entry_limit></entry_limit>のタグに格納されている値を参照し、SINGLE(シングル)か、又はMULTIPLE(マルチプル)か、を判定する。
文書管理サーバ10は、<entry_limit></entry_limit>のタグに格納されている値がSINGLE(シングル)であると判定すると、ステップS34に進み、MULTIPLE(マルチプル)であると判定すると、ステップS35に進む。
また、ステップS33では、文書管理サーバ10が、フォルダチケット取得リクエストに含まれる<entry_limit></entry_limit>のタグに格納されている値を参照し、SINGLE(シングル)か、又はMULTIPLE(マルチプル)か、を判定する。
文書管理サーバ10は、<entry_limit></entry_limit>のタグに格納されている値がSINGLE(シングル)であると判定すると、ステップS36に進み、MULTIPLE(マルチプル)であると判定すると、ステップS37に進む。
ステップS34では、文書管理サーバ10が、後述する図24に示すようなフォルダチケットの一つである一時シングルチケットを作成する。
また、ステップS35では、文書管理サーバ10が、後述する図27に示すようなフォルダチケットの一つである一時マルチプルチケットを作成する。
また、ステップS36では、文書管理サーバ10が、後述する図30に示すようなフォルダチケットの一つである永続シングルチケットを作成する。
また、ステップS37では、文書管理サーバ10が、後述する図33に示すようなフォルダチケットの一つである永続マルチプルチケットを作成する。
ステップS38では、文書管理サーバ10が、作成したフォルダチケットを識別するフォルダチケットIDを含む図7に示したようなフォルダチケット取得レスポンスを作成する。
ステップS38に続いてステップS39に進み、文書管理サーバ10は、ステップS38において作成したフォルダチケット取得レスポンスを、要求元(例えばクライアントA)に送信する。
図22に示すような処理を行うことによって、文書管理サーバ10は、例えばクライアントA等からのフォルダチケット取得リクエストに応じて、対応するフォルダチケットを作成することができる。また、該作成したフォルダチケットを識別するフォルダチケットIDを含むフォルダチケット取得レスポンスを作成し、要求元(例えばクライアントA)に送信することができる。
該フォルダチケット取得レスポンスを受信したクライアントAは、図3に示したように、フォルダチケット取得レスポンスに含まれるフォルダチケットIDを例えばクライアントBに渡すことによって、クライアントBは、フォルダチケットによるセッション開始リクエストを文書管理サーバ10に送信し、フォルダチケットを用いた文書管理サーバ10とのセッションを張ることができる。
以下、フォルダチケット(一時シングルチケット)取得リクエストの一例を、図23を用いて説明する。図23は、フォルダチケット(一時シングルチケット)取得リクエストの一例を説明するための図である。
図23に示されるように、フォルダチケット(一時シングルチケット)取得リクエストに含まれる<folderId></folderId>のタグには、図6において説明したように、フォルダIDが格納されている。
また、図23のフォルダチケット(一時シングルチケット)取得リクエストに含まれる<validDurationHint></validDurationHint>のタグには、作成するフォルダチケットの利用期限(時間)が秒数を単位として格納されている。
また、図23のフォルダチケット(一時シングルチケット)取得リクエストに含まれる<duration></duration>のタグには、TEMPORARYが格納されている。
また、図23のフォルダチケット(一時シングルチケット)取得リクエストに含まれる<entry_limit></entry_limit>のタグには、SINGLEが格納されている。
また、図23のフォルダチケット(一時シングルチケット)取得リクエストに含まれる<overdue_ticket></overdue_ticket>のタグには、READ_ONLYが格納されている。
図23に示されるように、例えばクライアントBは、<validDurationHint></validDurationHint>と、<duration></duration>と、のタグに値を格納することによって、フォルダチケットの有効期限(図23の例においては1800秒)を指定することができる。
また、図23に示されるように、例えばクライアントBは、<entry_limit></entry_limit>のタグに値を格納することによって、フォルダチケットの利用回数(図23の例においては1回)を指定することができる。
また、図23に示されるように、例えばクライアントBは、<overdue_ticket></overdue_ticket>のタグに値を格納することによって、利用期限又は利用回数が切れたフォルダチケットの権限(図23の例においては読み取り権限)を指定することができる。
以下、図23のフォルダチケット(一時シングルチケット)取得リクエストに基づいて、文書管理サーバ10が作成したフォルダチケット(一時シングルチケット)の一例を、図24を用いて説明する。図24は、フォルダチケット(一時シングルチケット)の一例を説明するための図である。
図24に示されるように、フォルダチケット(一時シングルチケット)には、該フォルダチケット(一時シングルチケット)を識別するフォルダチケットIDと、該フォルダチケット(一時シングルチケット)が利用を許可するフォルダを識別するフォルダID、図24の例においては結果的にフォルダチケット(一時シングルチケット)取得リクエストの<folderId></folderId>のタグに格納されていた値、と、該フォルダチケットの利用期限(時間)、図24の例においては結果的にフォルダチケット(一時シングルチケット)取得リクエストの<validDurationHint></validDurationHint>のタグに格納されていた値、と、フォルダチケット(一時シングルチケット)取得リクエストの<duration></duration>のタグに格納されていた値と、フォルダチケット(一時シングルチケット)取得リクエストの<entry_limit></entry_limit>のタグに格納されていた値と、フォルダチケット(一時シングルチケット)取得リクエストの<overdue_ticket></overdue_ticket>のタグに格納されていた値と、が含まれている。
なお、図24には図示していないが、図24に示されるようなフォルダチケット(一時シングルチケット)に、現在の利用回数(例えば、最初は0、1回利用するごとに1つずつインクリメントされる値)を含むようにしてもよい。以下においては、説明の簡略化のため、フォルダチケット(一時シングルチケット)に、現在の利用回数が含まれるものとして説明を行う。
文書管理サーバ10は、図24に示されるような、フォルダチケット(一時シングルチケット)を保持、管理する。
以下、フォルダチケット(一時シングルチケット)によるセッション開始の一例を、図25を用いて説明する。図25は、フォルダチケット(一時シングルチケット)によるセッション開始の一例を説明するためのフローチャートである。
ステップS50において、文書管理サーバ10は、例えばクライアントB等より図10に示されるようなフォルダチケットによるセッション開始リクエストを受信する。
ステップS50に続いてステップS51に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時シングルチケット)を参照し、該フォルダチケットは永続チケットかどうかを判定する。なお、永続チケットとは、フォルダチケットに、利用期限としてPERMANENTが含まれているチケットのことをいう。以下においても同様である。
文書管理サーバ10は、永続チケットであると判定すると(ステップS51においてYES)、ステップS52に進み、永続チケットでないと判定すると(ステップS51においてNO)、ステップS53に進む。
ステップS52では、文書管理サーバ10が、永続チケットによるセッション開始処理を行う。
一方、ステップS53では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時シングルチケット)を参照し、該フォルダチケットはマルチプルチケットかどうかを判定する。なお、マルチプルチケットとは、フォルダチケットに、利用回数としてMULTIPLEが含まれているチケットのことをいう。以下においても同様である。
文書管理サーバ10は、マルチプルチケットであると判定すると(ステップS53においてYES)、ステップS54に進み、マルチプルチケットでないと判定すると(ステップS53においてNO)、ステップS55に進む。
ステップS54では、文書管理サーバ10が、一時マルチプルチケットによるセッション開始処理を行う。
一方、ステップS55では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時シングルチケット)を参照し、フォルダチケット(一時シングルチケット)の現在の利用回数が有効な利用回数内かどうかを判定する。
文書管理サーバ10は、現在の利用回数が有効な利用回数内、図25の例においては現在の利用回数が0、であると判定すると(ステップS55においてYES)、ステップS56に進み、現在の利用回数が有効な利用回数外、図25の例においては現在の利用回数が1以上、であると判定すると(ステップS55においてNO)、ステップS57に進む。
ステップS56では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時シングルチケット)を参照し、現在の時刻が有効な期限内かどうかを判定する。
文書管理サーバ10は、現在の時刻が有効な期限内であると判定すると(ステップS56においてYES)、ステップS58に進み、現在の時刻が有効な期限内でないと判定すると(ステップS56においてNO)、ステップS57に進む。
ステップS57では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時シングルチケット)を参照し、フォルダチケットに、利用期限又は利用回数が切れたフォルダチケットの権限としてREAD_ONLYが含まれているかどうかを判定する。
文書管理サーバ10は、READ_ONLYが含まれていると判定すると(ステップS57においてYES)、ステップS58に進み、READ_ONLYが含まれていないと判定すると(ステップS57においてNO)、処理を終了する。
一方、ステップS58では、文書管理サーバ10が、図11に示したようなフォルダチケットによるセッションを作成する。
なお、ステップS57においてフォルダチケット(一時シングルチケット)にREAD_ONLYが含まれていると判定されて、ステップS58に進んできた場合は、ステップS58において、文書の読み取りのみ可能な、権限が制限されたセッションを作成する必要があるため、図11に示したようなセッションに、該セッションの権限として、例えばREAD_ONLYを含めたようなセッションを作成するようにしてもよい。
ステップS58に続いてステップS59に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時シングルチケット)に含まれる現在の利用回数を1つインクリメントする。
ステップS59に続いてステップS60に進み、文書管理サーバ10は、図12に示したような、フォルダチケットによるセッション開始レスポンスを作成する。
ステップS60に続いてステップS61に進み、文書管理サーバ10は、ステップS60において作成したセッション開始レスポンスを、要求元(例えばクライアントB)に送信する。
以下、フォルダチケット(一時マルチプルチケット)取得リクエストの一例を、図26を用いて説明する。図26は、フォルダチケット(一時マルチプルチケット)取得リクエストの一例を説明するための図である。
図26に示されるように、フォルダチケット(一時マルチプルチケット)取得リクエストに含まれる<folderId></folderId>のタグには、図6において説明したように、フォルダIDが格納されている。
また、図26のフォルダチケット(一時マルチプルチケット)取得リクエストに含まれる<validDurationHint></validDurationHint>のタグには、作成するフォルダチケットの利用期限(時間)が秒数を単位として格納されている。
また、図26のフォルダチケット(一時マルチプルチケット)取得リクエストに含まれる<duration></duration>のタグには、TEMPORARYが格納されている。
また、図26のフォルダチケット(一時マルチプルチケット)取得リクエストに含まれる<entry_limit></entry_limit>のタグには、MULTIPLEが格納されている。
また、図26のフォルダチケット(一時マルチプルチケット)取得リクエストに含まれる<overdue_ticket></overdue_ticket>のタグには、READ_ONLYが格納されている。
図26に示されるように、例えばクライアントBは、<validDurationHint></validDurationHint>と、<duration></duration>と、のタグに値を格納することによって、フォルダチケットの有効期限(図26の例においては1800秒)を指定することができる。
また、図26に示されるように、例えばクライアントBは、<entry_limit></entry_limit>のタグに値を格納することによって、フォルダチケットの利用回数(図26の例においては無制限)を指定することができる。
また、図26に示されるように、例えばクライアントBは、<overdue_ticket></overdue_ticket>のタグに値を格納することによって、利用期限が切れたフォルダチケットの権限(図26の例においては読み取り権限)を指定することができる。
以下、図26のフォルダチケット(一時マルチプルチケット)取得リクエストに基づいて、文書管理サーバ10が作成したフォルダチケット(一時マルチプルチケット)の一例を、図27を用いて説明する。図27は、フォルダチケット(一時マルチプルチケット)の一例を説明するための図である。
図27に示されるように、フォルダチケット(一時マルチプルチケット)には、該フォルダチケット(一時マルチプルチケット)を識別するフォルダチケットIDと、該フォルダチケット(一時マルチプルチケット)が利用を許可するフォルダを識別するフォルダID、図27の例においては結果的にフォルダチケット(一時マルチプルチケット)取得リクエストの<folderId></folderId>のタグに格納されていた値、と、該フォルダチケットの利用期限(時間)、図27の例においては結果的にフォルダチケット(一時マルチプルチケット)取得リクエストの<validDurationHint></validDurationHint>のタグに格納されていた値、と、フォルダチケット(一時マルチプルチケット)取得リクエストの<duration></duration>のタグに格納されていた値と、フォルダチケット(一時マルチプルチケット)取得リクエストの<entry_limit></entry_limit>のタグに格納されていた値と、フォルダチケット(一時マルチプルチケット)取得リクエストの<overdue_ticket></overdue_ticket>のタグに格納されていた値と、が含まれている。
文書管理サーバ10は、図27に示されるような、フォルダチケット(一時マルチプルチケット)を保持、管理する。
以下、フォルダチケット(一時マルチプルチケット)によるセッション開始の一例を、図28を用いて説明する。図28は、フォルダチケット(一時マルチプルチケット)によるセッション開始の一例を説明するためのフローチャートである。
ステップS70において、文書管理サーバ10は、例えばクライアントB等より図10に示されるようなフォルダチケットによるセッション開始リクエストを受信する。
ステップS70に続いてステップS71に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時マルチプルチケット)を参照し、該フォルダチケットは永続チケットかどうかを判定する。
文書管理サーバ10は、永続チケットであると判定すると(ステップS71においてYES)、ステップS72に進み、永続チケットでないと判定すると(ステップS71においてNO)、ステップS73に進む。
ステップS72では、文書管理サーバ10が、永続チケットによるセッション開始処理を行う。
一方、ステップS73では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時マルチプルチケット)を参照し、該フォルダチケットはマルチプルチケットかどうかを判定する。
文書管理サーバ10は、マルチプルチケットであると判定すると(ステップS73においてYES)、ステップS75に進み、マルチプルチケットでないと判定すると(ステップS73においてNO)、ステップS74に進む。
ステップS74では、文書管理サーバ10が、図25のステップS55からの処理を行う。
一方、ステップS75では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時マルチプルチケット)を参照し、現在の時刻が有効な期限内かどうかを判定する。
文書管理サーバ10は、現在の時刻が有効な期限内であると判定すると(ステップS75においてYES)、ステップS77に進み、現在の時刻が有効な期限内でないと判定すると(ステップS75においてNO)、ステップS76に進む。
ステップS76では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時マルチプルチケット)を参照し、フォルダチケットに、利用期限が切れたフォルダチケットの権限としてREAD_ONLYが含まれているかどうかを判定する。
文書管理サーバ10は、READ_ONLYが含まれていると判定すると(ステップS76においてYES)、ステップS77に進み、READ_ONLYが含まれていないと判定すると(ステップS76においてNO)、処理を終了する。
一方、ステップS77では、文書管理サーバ10が、図11に示したようなフォルダチケットによるセッションを作成する。
なお、ステップS76においてフォルダチケット(一時マルチプルチケット)にREAD_ONLYが含まれていると判定されて、ステップS77に進んできた場合は、ステップS77において、文書の読み取りのみ可能な、権限が制限されたセッションを作成する必要があるため、図11に示したようなセッションに、該セッションの権限として、例えばREAD_ONLYを含めたようなセッションを作成するようにしてもよい。
ステップS77に続いてステップS78に進み、文書管理サーバ10は、図12に示したような、フォルダチケットによるセッション開始レスポンスを作成する。
ステップS78に続いてステップS79に進み、文書管理サーバ10は、ステップS78において作成したセッション開始レスポンスを、要求元(例えば、クライアントB)に送信する。
以下、フォルダチケット(永続シングルチケット)取得リクエストの一例を、図29を用いて説明する。図29は、フォルダチケット(永続シングルチケット)取得リクエストの一例を説明するための図である。
図29に示されるように、フォルダチケット(永続シングルチケット)取得リクエストに含まれる<folderId></folderId>のタグには、図6において説明したように、フォルダIDが格納されている。
また、図29のフォルダチケット(永続シングルチケット)取得リクエストに含まれる<duration></duration>のタグには、PERMANENTが格納されている。
また、図29のフォルダチケット(永続シングルチケット)取得リクエストに含まれる<entry_limit></entry_limit>のタグには、SINGLEが格納されている。
また、図29のフォルダチケット(永続シングルチケット)取得リクエストに含まれる<overdue_ticket></overdue_ticket>のタグには、READ_ONLYが格納されている。
図29に示されるように、例えばクライアントBは、<duration></duration>のタグに値を格納することによって、フォルダチケットの有効期限(図29の例においては永続)を指定することができる。
また、図29に示されるように、例えばクライアントBは、<entry_limit></entry_limit>のタグに値を格納することによって、フォルダチケットの利用回数(図29の例においては1回)を指定することができる。
また、図29に示されるように、例えばクライアントBは、<overdue_ticket></overdue_ticket>のタグに値を格納することによって、利用回数が切れたフォルダチケットの権限(図29の例においては読み取り権限)を指定することができる。
以下、図29のフォルダチケット(永続シングルチケット)取得リクエストに基づいて、文書管理サーバ10が作成したフォルダチケット(永続シングルチケット)の一例を、図30を用いて説明する。図30は、フォルダチケット(永続シングルチケット)の一例を説明するための図である。
図30に示されるように、フォルダチケット(永続シングルチケット)には、該フォルダチケット(永続シングルチケット)を識別するフォルダチケットIDと、該フォルダチケット(永続シングルチケット)が利用を許可するフォルダを識別するフォルダID、図30の例においては結果的にフォルダチケット(永続シングルチケット)取得リクエストの<folderId></folderId>のタグに格納されていた値、と、フォルダチケット(永続シングルチケット)取得リクエストの<duration></duration>のタグに格納されていた値と、フォルダチケット(永続シングルチケット)取得リクエストの<entry_limit></entry_limit>のタグに格納されていた値と、フォルダチケット(永続シングルチケット)取得リクエストの<overdue_ticket></overdue_ticket>のタグに格納されていた値と、が含まれている。
なお、図30には図示していないが、図30に示されるようなフォルダチケット(永続シングルチケット)に、現在の利用回数(例えば、最初は0、1回利用するごとに1つずつインクリメントされる値)を含むようにしてもよい。以下においては、説明の簡略化のため、フォルダチケット(永続シングルチケット)に、現在の利用回数が含まれるものとして説明を行う。
文書管理サーバ10は、図30に示されるような、フォルダチケット(永続シングルチケット)を保持、管理する。
以下、フォルダチケット(永続シングルチケット)によるセッション開始の一例を、図31を用いて説明する。図31は、フォルダチケット(永続シングルチケット)によるセッション開始の一例を説明するためのフローチャートである。
ステップS80において、文書管理サーバ10は、例えばクライアントB等より図10に示されるようなフォルダチケットによるセッション開始リクエストを受信する。
ステップS80に続いてステップS81に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続シングルチケット)を参照し、該フォルダチケットは永続チケットかどうかを判定する。
文書管理サーバ10は、永続チケットであると判定すると(ステップS81においてYES)、ステップS83に進み、永続チケットでないと判定すると(ステップS81においてNO)、ステップS82に進む。
ステップS82では、文書管理サーバ10が、一時チケットによるセッション開始処理を行う。なお、一時チケットとは、フォルダチケットに、利用期限としてTEMPORARYが含まれているチケットのことをいう。以下においても同様である。
一方、ステップS83では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続シングルチケット)を参照し、該フォルダチケットはマルチプルチケットかどうかを判定する。
文書管理サーバ10は、マルチプルチケットであると判定すると(ステップS83においてYES)、ステップS84に進み、マルチプルチケットでないと判定すると(ステップS83においてNO)、ステップS85に進む。
ステップS84では、文書管理サーバ10が、永続マルチプルチケットによるセッション開始処理を行う。
一方、ステップS85では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続シングルチケット)を参照し、フォルダチケット(永続シングルチケット)の現在の利用回数が有効な利用回数内かどうかを判定する。
文書管理サーバ10は、現在の利用回数が有効な利用回数内、図31の例においては現在の利用回数が0、であると判定すると(ステップS85においてYES)、ステップS87に進み、現在の利用回数が有効な利用回数外、図31の例においては現在の利用回数が1以上、であると判定すると(ステップS85においてNO)、ステップS86に進む。
ステップS86では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続シングルチケット)を参照し、フォルダチケットに、利用回数が切れたフォルダチケットの権限としてREAD_ONLYが含まれているかどうかを判定する。
文書管理サーバ10は、READ_ONLYが含まれていると判定すると(ステップS86においてYES)、ステップS87に進み、READ_ONLYが含まれていないと判定すると(ステップS86においてNO)、処理を終了する。
一方、ステップS87では、文書管理サーバ10が、図11に示したようなフォルダチケットによるセッションを作成する。
なお、ステップS86においてフォルダチケット(永続シングルチケット)にREAD_ONLYが含まれていると判定されて、ステップS87に進んできた場合は、ステップS87において、文書の読み取りのみ可能な、権限が制限されたセッションを作成する必要があるため、図11に示したようなセッションに、該セッションの権限として、例えばREAD_ONLYを含めたようなセッションを作成するようにしてもよい。
ステップS87に続いてステップS88に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続シングルチケット)に含まれる現在の利用回数を1つインクリメントする。
ステップS88に続いてステップS89に進み、文書管理サーバ10は、図12に示したような、フォルダチケットによるセッション開始レスポンスを作成する。
ステップS89に続いてステップS90に進み、文書管理サーバ10は、ステップS89において作成したセッション開始レスポンスを、要求元(例えばクライアントB)に送信する。
以下、フォルダチケット(永続マルチプルチケット)取得リクエストの一例を、図32を用いて説明する。図32は、フォルダチケット(永続マルチプルチケット)取得リクエストの一例を説明するための図である。
図32に示されるように、フォルダチケット(永続マルチプルチケット)取得リクエストに含まれる<folderId></folderId>のタグには、図6において説明したように、フォルダIDが格納されている。
また、図32のフォルダチケット(永続マルチプルチケット)取得リクエストに含まれる<duration></duration>のタグには、PERMANENTが格納されている。
また、図32のフォルダチケット(永続マルチプルチケット)取得リクエストに含まれる<entry_limit></entry_limit>のタグには、MULTIPLEが格納されている。
図32に示されるように、例えばクライアントBは、<duration></duration>のタグに値を格納することによって、フォルダチケットの有効期限(図32の例においては永続)を指定することができる。
また、図32に示されるように、例えばクライアントBは、<entry_limit></entry_limit>のタグに値を格納することによって、フォルダチケットの利用回数(図32の例においては無制限)を指定することができる。
以下、図32のフォルダチケット(永続マルチプルチケット)取得リクエストに基づいて、文書管理サーバ10が作成したフォルダチケット(永続マルチプルチケット)の一例を、図33を用いて説明する。図33は、フォルダチケット(永続マルチプルチケット)の一例を説明するための図である。
図33に示されるように、フォルダチケット(永続マルチプルチケット)には、該フォルダチケット(永続マルチプルチケット)を識別するフォルダチケットIDと、該フォルダチケット(永続マルチプルチケット)が利用を許可するフォルダを識別するフォルダID、図33の例においては結果的にフォルダチケット(永続マルチプルチケット)取得リクエストの<folderId></folderId>のタグに格納されていた値、と、フォルダチケット(永続マルチプルチケット)取得リクエストの<duration></duration>のタグに格納されていた値と、フォルダチケット(永続マルチプルチケット)取得リクエストの<entry_limit></entry_limit>のタグに格納されていた値と、が含まれている。
文書管理サーバ10は、図33に示されるような、フォルダチケット(永続マルチプルチケット)を保持、管理する。
以下、フォルダチケット(永続マルチプルチケット)によるセッション開始の一例を、図34を用いて説明する。図34は、フォルダチケット(永続マルチプルチケット)によるセッション開始の一例を説明するためのフローチャートである。
ステップS100において、文書管理サーバ10は、例えばクライアントB等より図10に示されるようなフォルダチケットによるセッション開始リクエストを受信する。
ステップS100に続いてステップS101に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続マルチプルチケット)を参照し、該フォルダチケットは永続チケットかどうかを判定する。
文書管理サーバ10は、永続チケットであると判定すると(ステップS101においてYES)、ステップS103に進み、永続チケットでないと判定すると(ステップS101においてNO)、ステップS102に進む。
ステップS102では、文書管理サーバ10が、一時チケットによるセッション開始処理を行う。
一方、ステップS103では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続マルチプルチケット)を参照し、該フォルダチケットはマルチプルチケットかどうかを判定する。
文書管理サーバ10は、マルチプルチケットであると判定すると(ステップS103においてYES)、ステップS105に進み、マルチプルチケットでないと判定すると(ステップS103においてNO)、ステップS104に進む。
ステップS104では、文書管理サーバ10が、図31のステップS85からの処理を行う。
一方、ステップS105では、文書管理サーバ10が、図11に示したようなフォルダチケットによるセッションを作成する。
ステップS105に続いてステップS106に進み、文書管理サーバ10は、図12に示したような、フォルダチケットによるセッション開始レスポンスを作成する。
ステップS106に続いてステップS107に進み、文書管理サーバ10は、ステップS106において作成したセッション開始レスポンスを、要求元(例えば、クライアントB)に送信する。
以下、getFolderTicketメソッドのENTRY_LIMITプロパティに正の整数又は−1が格納されていた場合を例にとって、文書管理サーバ10における処理の一例を、図35から図47を用いて説明する。
図35は、フォルダチケット作成を説明するためのフローチャート(その2)である。
ステップS110において、文書管理サーバ10は、例えばクライアントAより、後述する図36や図39、図42、図45等に示されるようなフォルダチケット取得リクエストを受信する。
ステップS110に続いてステップS111に進み、文書管理サーバ10は、フォルダチケット取得リクエストに含まれる<duration></duration>のタグに格納されている値を参照し、TEMPORARY(一時)か、又はPERMANENT(永続)か、を判定する。
文書管理サーバ10は、<duration></duration>のタグに格納されている値がTEMPORARY(一時)であると判定すると、ステップS112に進み、PERMANENT(永続)であると判定すると、ステップS113に進む。
ステップS112では、文書管理サーバ10が、フォルダチケット取得リクエストに含まれる<entry_limit></entry_limit>のタグに格納されている値を参照し、正の整数(有限)か、又は−1(無限)か、を判定する。
文書管理サーバ10は、<entry_limit></entry_limit>のタグに格納されている値が正の整数(有限)であると判定すると、ステップS114に進み、−1(無限)であると判定すると、ステップS115に進む。
また、ステップS113では、文書管理サーバ10が、フォルダチケット取得リクエストに含まれる<entry_limit></entry_limit>のタグに格納されている値を参照し、正の整数(有限)か、又は−1(無限)か、を判定する。
文書管理サーバ10は、<entry_limit></entry_limit>のタグに格納されている値が正の整数(有限)であると判定すると、ステップS116に進み、−1(無限)であると判定すると、ステップS117に進む。
ステップS114では、文書管理サーバ10が、後述する図37に示すようなフォルダチケットの一つである一時有限チケットを作成する。
また、ステップS115では、文書管理サーバ10が、後述する図40に示すようなフォルダチケットの一つである一時無限チケットを作成する。
また、ステップS116では、文書管理サーバ10が、後述する図43に示すようなフォルダチケットの一つである永続有限チケットを作成する。
また、ステップS117では、文書管理サーバ10が、後述する図46に示すようなフォルダチケットの一つである永続無限チケットを作成する。
ステップS118では、文書管理サーバ10が、作成したフォルダチケットを識別するフォルダチケットIDを含む図7に示したようなフォルダチケット取得レスポンスを作成する。
ステップS118に続いてステップS119に進み、文書管理サーバ10は、ステップS118において作成したフォルダチケット取得レスポンスを、要求元(例えばクライアントA)に送信する。
図35に示すような処理を行うことによって、文書管理サーバ10は、例えばクライアントA等からのフォルダチケット取得リクエストに応じて、対応するフォルダチケットを作成することができる。また、該作成したフォルダチケットを識別するフォルダチケットIDを含むフォルダチケット取得レスポンスを作成し、要求元(例えばクライアントA)に送信することができる。
該フォルダチケット取得レスポンスを受信したクライアントAは、図3に示したように、フォルダチケット取得レスポンスに含まれるフォルダチケットIDを例えばクライアントBに渡すことによって、クライアントBは、フォルダチケットによるセッション開始リクエストを文書管理サーバ10に送信し、フォルダチケットを用いた文書管理サーバ10とのセッションを張ることができる。
以下、フォルダチケット(一時有限チケット)取得リクエストの一例を、図36を用いて説明する。図36は、フォルダチケット(一時有限チケット)取得リクエストの一例を説明するための図である。
図36に示されるように、フォルダチケット(一時有限チケット)取得リクエストに含まれる<folderId></folderId>のタグには、図6において説明したように、フォルダIDが格納されている。
また、図36のフォルダチケット(一時有限チケット)取得リクエストに含まれる<validDurationHint></validDurationHint>のタグには、作成するフォルダチケットの利用期限(時間)が秒数を単位として格納されている。
また、図36のフォルダチケット(一時有限チケット)取得リクエストに含まれる<duration></duration>のタグには、TEMPORARYが格納されている。
また、図36のフォルダチケット(一時有限チケット)取得リクエストに含まれる<entry_limit></entry_limit>のタグには、10が格納されている。
また、図36のフォルダチケット(一時有限チケット)取得リクエストに含まれる<overdue_ticket></overdue_ticket>のタグには、READ_ONLYが格納されている。
図36に示されるように、例えばクライアントBは、<validDurationHint></validDurationHint>と、<duration></duration>と、のタグに値を格納することによって、フォルダチケットの有効期限(図36の例においては1800秒)を指定することができる。
また、図36に示されるように、例えばクライアントBは、<entry_limit></entry_limit>のタグに値を格納することによって、フォルダチケットの利用回数(図36の例においては10回)を指定することができる。
また、図36に示されるように、例えばクライアントBは、<overdue_ticket></overdue_ticket>のタグに値を格納することによって、利用期限又は利用回数が切れたフォルダチケットの権限(図36の例においては読み取り権限)を指定することができる。
以下、図36のフォルダチケット(一時有限チケット)取得リクエストに基づいて、文書管理サーバ10が作成したフォルダチケット(一時有限チケット)の一例を、図37を用いて説明する。図37は、フォルダチケット(一時有限チケット)の一例を説明するための図である。
図37に示されるように、フォルダチケット(一時有限チケット)には、該フォルダチケット(一時有限チケット)を識別するフォルダチケットIDと、該フォルダチケット(一時有限チケット)が利用を許可するフォルダを識別するフォルダID、図37の例においては結果的にフォルダチケット(一時有限チケット)取得リクエストの<folderId></folderId>のタグに格納されていた値、と、該フォルダチケットの利用期限(時間)、図37の例においては結果的にフォルダチケット(一時有限チケット)取得リクエストの<validDurationHint></validDurationHint>のタグに格納されていた値、と、フォルダチケット(一時有限チケット)取得リクエストの<duration></duration>のタグに格納されていた値と、フォルダチケット(一時有限チケット)取得リクエストの<entry_limit></entry_limit>のタグに格納されていた値と、フォルダチケット(一時有限チケット)取得リクエストの<overdue_ticket></overdue_ticket>のタグに格納されていた値と、が含まれている。 なお、図37には図示していないが、図37に示されるようなフォルダチケット(一時有限チケット)に、現在の利用回数(例えば、最初は0、1回利用するごとに1つずつインクリメントされる値)を含むようにしてもよい。以下においては、説明の簡略化のため、フォルダチケット(一時有限チケット)に、現在の利用回数が含まれるものとして説明を行う。
文書管理サーバ10は、図37に示されるような、フォルダチケット(一時有限チケット)を保持、管理する。
以下、フォルダチケット(一時有限チケット)によるセッション開始の一例を、図38を用いて説明する。図38は、フォルダチケット(一時有限チケット)によるセッション開始の一例を説明するためのフローチャートである。
ステップS120において、文書管理サーバ10は、例えばクライアントB等より図10に示されるようなフォルダチケットによるセッション開始リクエストを受信する。
ステップS120に続いてステップS121に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時有限チケット)を参照し、該フォルダチケットは永続チケットかどうかを判定する。
文書管理サーバ10は、永続チケットであると判定すると(ステップS121においてYES)、ステップS122に進み、永続チケットでないと判定すると(ステップS121においてNO)、ステップS123に進む。
ステップS122では、文書管理サーバ10が、永続チケットによるセッション開始処理を行う。
一方、ステップS123では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時有限チケット)を参照し、該フォルダチケットは無限チケットかどうかを判定する。なお、無限チケットとは、フォルダチケットに、利用回数として−1が含まれているチケットのことをいう。以下においても同様である。
文書管理サーバ10は、無限チケットであると判定すると(ステップS123においてYES)、ステップS124に進み、無限チケットでないと判定すると(ステップS123においてNO)、ステップS125に進む。
ステップS124では、文書管理サーバ10が、一時無限チケットによるセッション開始処理を行う。
一方、ステップS125では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時有限チケット)を参照し、フォルダチケット(一時有限チケット)の現在の利用回数が有効な利用回数内かどうかを判定する。
文書管理サーバ10は、現在の利用回数が有効な利用回数内であると判定すると(ステップS125においてYES)、ステップS126に進み、現在の利用回数が有効な利用回数外であると判定すると(ステップS125においてNO)、ステップS127に進む。
ステップS126では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時有限チケット)を参照し、現在の時刻が有効な期限内かどうかを判定する。
文書管理サーバ10は、現在の時刻が有効な期限内であると判定すると(ステップS126においてYES)、ステップS128に進み、現在の時刻が有効な期限内でないと判定すると(ステップS126においてNO)、ステップS127に進む。
ステップS127では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時有限チケット)を参照し、フォルダチケットに、利用期限又は利用回数が切れたフォルダチケットの権限としてREAD_ONLYが含まれているかどうかを判定する。
文書管理サーバ10は、READ_ONLYが含まれていると判定すると(ステップS127においてYES)、ステップS128に進み、READ_ONLYが含まれていないと判定すると(ステップS127においてNO)、処理を終了する。
一方、ステップS128では、文書管理サーバ10が、図11に示したようなフォルダチケットによるセッションを作成する。
なお、ステップS127においてフォルダチケット(一時有限チケット)にREAD_ONLYが含まれていると判定されて、ステップS128に進んできた場合は、ステップS128において、文書の読み取りのみ可能な、権限が制限されたセッションを作成する必要があるため、図11に示したようなセッションに、該セッションの権限として、例えばREAD_ONLYを含めたようなセッションを作成するようにしてもよい。
ステップS128に続いてステップS129に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時有限チケット)に含まれる現在の利用回数を1つインクリメントする。
ステップS129に続いてステップS130に進み、文書管理サーバ10は、図12に示したような、フォルダチケットによるセッション開始レスポンスを作成する。
ステップS130に続いてステップS131に進み、文書管理サーバ10は、ステップS130において作成したセッション開始レスポンスを、要求元(例えばクライアントB)に送信する。
以下、フォルダチケット(一時無限チケット)取得リクエストの一例を、図39を用いて説明する。図39は、フォルダチケット(一時無限チケット)取得リクエストの一例を説明するための図である。
図39に示されるように、フォルダチケット(一時無限チケット)取得リクエストに含まれる<folderId></folderId>のタグには、図6において説明したように、フォルダIDが格納されている。
また、図39のフォルダチケット(一時無限チケット)取得リクエストに含まれる<validDurationHint></validDurationHint>のタグには、作成するフォルダチケットの利用期限(時間)が秒数を単位として格納されている。
また、図39のフォルダチケット(一時無限チケット)取得リクエストに含まれる<duration></duration>のタグには、TEMPORARYが格納されている。
また、図39のフォルダチケット(一時無限チケット)取得リクエストに含まれる<entry_limit></entry_limit>のタグには、−1が格納されている。
また、図39のフォルダチケット(一時無限チケット)取得リクエストに含まれる<overdue_ticket></overdue_ticket>のタグには、READ_ONLYが格納されている。
図39に示されるように、例えばクライアントBは、<validDurationHint></validDurationHint>と、<duration></duration>と、のタグに値を格納することによって、フォルダチケットの有効期限(図39の例においては1800秒)を指定することができる。
また、図39に示されるように、例えばクライアントBは、<entry_limit></entry_limit>のタグに値を格納することによって、フォルダチケットの利用回数(図39の例においては無限回)を指定することができる。
また、図39に示されるように、例えばクライアントBは、<overdue_ticket></overdue_ticket>のタグに値を格納することによって、利用期限が切れたフォルダチケットの権限(図39の例においては読み取り権限)を指定することができる。
以下、図39のフォルダチケット(一時無限チケット)取得リクエストに基づいて、文書管理サーバ10が作成したフォルダチケット(一時無限チケット)の一例を、図40を用いて説明する。図40は、フォルダチケット(一時無限チケット)の一例を説明するための図である。
図40に示されるように、フォルダチケット(一時無限チケット)には、該フォルダチケット(一時無限チケット)を識別するフォルダチケットIDと、該フォルダチケット(一時無限チケット)が利用を許可するフォルダを識別するフォルダID、図40の例においては結果的にフォルダチケット(一時無限チケット)取得リクエストの<folderId></folderId>のタグに格納されていた値、と、該フォルダチケットの利用期限(時間)、図40の例においては結果的にフォルダチケット(一時無限チケット)取得リクエストの<validDurationHint></validDurationHint>のタグに格納されていた値、と、フォルダチケット(一時無限チケット)取得リクエストの<duration></duration>のタグに格納されていた値と、フォルダチケット(一時無限チケット)取得リクエストの<entry_limit></entry_limit>のタグに格納されていた値と、フォルダチケット(一時無限チケット)取得リクエストの<overdue_ticket></overdue_ticket>のタグに格納されていた値と、が含まれている。 文書管理サーバ10は、図40に示されるような、フォルダチケット(一時無限チケット)を保持、管理する。
以下、フォルダチケット(一時無限チケット)によるセッション開始の一例を、図41を用いて説明する。図41は、フォルダチケット(一時無限チケット)によるセッション開始の一例を説明するためのフローチャートである。
ステップS140において、文書管理サーバ10は、例えばクライアントB等より図10に示されるようなフォルダチケットによるセッション開始リクエストを受信する。
ステップS140に続いてステップS141に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時無限チケット)を参照し、該フォルダチケットは永続チケットかどうかを判定する。
文書管理サーバ10は、永続チケットであると判定すると(ステップS141においてYES)、ステップS142に進み、永続チケットでないと判定すると(ステップS141においてNO)、ステップS143に進む。
ステップS142では、文書管理サーバ10が、永続チケットによるセッション開始処理を行う。
一方、ステップS143では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時無限チケット)を参照し、該フォルダチケットは無限チケットかどうかを判定する。
文書管理サーバ10は、無限チケットであると判定すると(ステップS143においてYES)、ステップS145に進み、無限チケットでないと判定すると(ステップS143においてNO)、ステップS144に進む。
ステップS144では、文書管理サーバ10が、図38のステップS125からの処理を行う。
一方、ステップS145では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時無限チケット)を参照し、現在の時刻が有効な期限内かどうかを判定する。
文書管理サーバ10は、現在の時刻が有効な期限内であると判定すると(ステップS145においてYES)、ステップS147に進み、現在の時刻が有効な期限内でないと判定すると(ステップS145においてNO)、ステップS146に進む。
ステップS146では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(一時無限チケット)を参照し、フォルダチケットに、利用期限が切れたフォルダチケットの権限としてREAD_ONLYが含まれているかどうかを判定する。
文書管理サーバ10は、READ_ONLYが含まれていると判定すると(ステップS146においてYES)、ステップS147に進み、READ_ONLYが含まれていないと判定すると(ステップS146においてNO)、処理を終了する。
一方、ステップS147では、文書管理サーバ10が、図11に示したようなフォルダチケットによるセッションを作成する。
なお、ステップS146においてフォルダチケット(一時無限チケット)にREAD_ONLYが含まれていると判定されて、ステップS147に進んできた場合は、ステップS147において、文書の読み取りのみ可能な、権限が制限されたセッションを作成する必要があるため、図11に示したようなセッションに、該セッションの権限として、例えばREAD_ONLYを含めたようなセッションを作成するようにしてもよい。
ステップS147に続いてステップS148に進み、文書管理サーバ10は、図12に示したような、フォルダチケットによるセッション開始レスポンスを作成する。
ステップS148に続いてステップS149に進み、文書管理サーバ10は、ステップS148において作成したセッション開始レスポンスを、要求元(例えば、クライアントB)に送信する。
以下、フォルダチケット(永続有限チケット)取得リクエストの一例を、図42を用いて説明する。図42は、フォルダチケット(永続有限チケット)取得リクエストの一例を説明するための図である。
図42に示されるように、フォルダチケット(永続有限チケット)取得リクエストに含まれる<folderId></folderId>のタグには、図6において説明したように、フォルダIDが格納されている。
また、図42のフォルダチケット(永続有限チケット)取得リクエストに含まれる<duration></duration>のタグには、PERMANENTが格納されている。
また、図42のフォルダチケット(永続有限チケット)取得リクエストに含まれる<entry_limit></entry_limit>のタグには、10が格納されている。
また、図42のフォルダチケット(永続有限チケット)取得リクエストに含まれる<overdue_ticket></overdue_ticket>のタグには、READ_ONLYが格納されている。
図42に示されるように、例えばクライアントBは、<duration></duration>のタグに値を格納することによって、フォルダチケットの有効期限(図42の例においては永続)を指定することができる。
また、図42に示されるように、例えばクライアントBは、<entry_limit></entry_limit>のタグに値を格納することによって、フォルダチケットの利用回数(図42の例においては10回)を指定することができる。
また、図42に示されるように、例えばクライアントBは、<overdue_ticket></overdue_ticket>のタグに値を格納することによって、利用回数が切れたフォルダチケットの権限(図42の例においては読み取り権限)を指定することができる。
以下、図42のフォルダチケット(永続有限チケット)取得リクエストに基づいて、文書管理サーバ10が作成したフォルダチケット(永続有限チケット)の一例を、図43を用いて説明する。図43は、フォルダチケット(永続有限チケット)の一例を説明するための図である。
図43に示されるように、フォルダチケット(永続有限チケット)には、該フォルダチケット(永続有限チケット)を識別するフォルダチケットIDと、該フォルダチケット(永続有限チケット)が利用を許可するフォルダを識別するフォルダID、図43の例においては結果的にフォルダチケット(永続有限チケット)取得リクエストの<folderId></folderId>のタグに格納されていた値、と、フォルダチケット(永続有限チケット)取得リクエストの<duration></duration>のタグに格納されていた値と、フォルダチケット(永続有限チケット)取得リクエストの<entry_limit></entry_limit>のタグに格納されていた値と、フォルダチケット(永続有限チケット)取得リクエストの<overdue_ticket></overdue_ticket>のタグに格納されていた値と、が含まれている。
なお、図43には図示していないが、図43に示されるようなフォルダチケット(永続有限チケット)に、現在の利用回数(例えば、最初は0、1回利用するごとに1つずつインクリメントされる値)を含むようにしてもよい。以下においては、説明の簡略化のため、フォルダチケット(永続有限チケット)に、現在の利用回数が含まれるものとして説明を行う。
文書管理サーバ10は、図43に示されるような、フォルダチケット(永続有限チケット)を保持、管理する。
以下、フォルダチケット(永続有限チケット)によるセッション開始の一例を、図44を用いて説明する。図44は、フォルダチケット(永続有限チケット)によるセッション開始の一例を説明するためのフローチャートである。
ステップS150において、文書管理サーバ10は、例えばクライアントB等より図10に示されるようなフォルダチケットによるセッション開始リクエストを受信する。
ステップS150に続いてステップS151に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続有限チケット)を参照し、該フォルダチケットは永続チケットかどうかを判定する。
文書管理サーバ10は、永続チケットであると判定すると(ステップS151においてYES)、ステップS153に進み、永続チケットでないと判定すると(ステップS151においてNO)、ステップS152に進む。
ステップS152では、文書管理サーバ10が、一時チケットによるセッション開始処理を行う。
一方、ステップS153では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続有限チケット)を参照し、該フォルダチケットは無限チケットかどうかを判定する。
文書管理サーバ10は、無限チケットであると判定すると(ステップS153においてYES)、ステップS154に進み、無限チケットでないと判定すると(ステップS153においてNO)、ステップS155に進む。
ステップS154では、文書管理サーバ10が、永続無限チケットによるセッション開始処理を行う。
一方、ステップS155では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続有限チケット)を参照し、フォルダチケット(永続有限チケット)の現在の利用回数が有効な利用回数内かどうかを判定する。
文書管理サーバ10は、現在の利用回数が有効な利用回数内であると判定すると(ステップS155においてYES)、ステップS157に進み、現在の利用回数が有効な利用回数外であると判定すると(ステップS155においてNO)、ステップS156に進む。
ステップS156では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続有限チケット)を参照し、フォルダチケットに、利用回数が切れたフォルダチケットの権限としてREAD_ONLYが含まれているかどうかを判定する。
文書管理サーバ10は、READ_ONLYが含まれていると判定すると(ステップS156においてYES)、ステップS157に進み、READ_ONLYが含まれていないと判定すると(ステップS156においてNO)、処理を終了する。
一方、ステップS157では、文書管理サーバ10が、図11に示したようなフォルダチケットによるセッションを作成する。
なお、ステップS156においてフォルダチケット(永続有限チケット)にREAD_ONLYが含まれていると判定されて、ステップS157に進んできた場合は、ステップS157において、文書の読み取りのみ可能な、権限が制限されたセッションを作成する必要があるため、図11に示したようなセッションに、該セッションの権限として、例えばREAD_ONLYを含めたようなセッションを作成するようにしてもよい。
ステップS157に続いてステップS158に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続有限チケット)に含まれる現在の利用回数を1つインクリメントする。
ステップS158に続いてステップS159に進み、文書管理サーバ10は、図12に示したような、フォルダチケットによるセッション開始レスポンスを作成する。
ステップS159に続いてステップS160に進み、文書管理サーバ10は、ステップS159において作成したセッション開始レスポンスを、要求元(例えばクライアントB)に送信する。
以下、フォルダチケット(永続無限チケット)取得リクエストの一例を、図45を用いて説明する。図45は、フォルダチケット(永続無限チケット)取得リクエストの一例を説明するための図である。
図45に示されるように、フォルダチケット(永続無限チケット)取得リクエストに含まれる<folderId></folderId>のタグには、図6において説明したように、フォルダIDが格納されている。
また、図45のフォルダチケット(永続無限チケット)取得リクエストに含まれる<duration></duration>のタグには、PERMANENTが格納されている。
また、図45のフォルダチケット(永続無限チケット)取得リクエストに含まれる<entry_limit></entry_limit>のタグには、−1が格納されている。
図45に示されるように、例えばクライアントBは、<duration></duration>のタグに値を格納することによって、フォルダチケットの有効期限(図45の例においては永続)を指定することができる。
また、図45に示されるように、例えばクライアントBは、<entry_limit></entry_limit>のタグに値を格納することによって、フォルダチケットの利用回数(図45の例においては無限回)を指定することができる。
以下、図45のフォルダチケット(永続無限チケット)取得リクエストに基づいて、文書管理サーバ10が作成したフォルダチケット(永続無限チケット)の一例を、図46を用いて説明する。図46は、フォルダチケット(永続無限チケット)の一例を説明するための図である。
図46に示されるように、フォルダチケット(永続無限チケット)には、該フォルダチケット(永続無限チケット)を識別するフォルダチケットIDと、該フォルダチケット(永続無限チケット)が利用を許可するフォルダを識別するフォルダID、図46の例においては結果的にフォルダチケット(永続無限チケット)取得リクエストの<folderId></folderId>のタグに格納されていた値、と、フォルダチケット(永続無限チケット)取得リクエストの<duration></duration>のタグに格納されていた値と、フォルダチケット(永続無限チケット)取得リクエストの<entry_limit></entry_limit>のタグに格納されていた値と、が含まれている。
文書管理サーバ10は、図46に示されるような、フォルダチケット(永続無限チケット)を保持、管理する。
以下、フォルダチケット(永続無限チケット)によるセッション開始の一例を、図47を用いて説明する。図47は、フォルダチケット(永続無限チケット)によるセッション開始の一例を説明するためのフローチャートである。
ステップS170において、文書管理サーバ10は、例えばクライアントB等より図10に示されるようなフォルダチケットによるセッション開始リクエストを受信する。
ステップS170に続いてステップS171に進み、文書管理サーバ10は、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続無限チケット)を参照し、該フォルダチケットは永続チケットかどうかを判定する。
文書管理サーバ10は、永続チケットであると判定すると(ステップS171においてYES)、ステップS173に進み、永続チケットでないと判定すると(ステップS171においてNO)、ステップS172に進む。
ステップS172では、文書管理サーバ10が、一時チケットによるセッション開始処理を行う。
一方、ステップS173では、文書管理サーバ10が、フォルダチケットによるセッション開始リクエストに含まれるフォルダチケットIDに基づいて、対応するフォルダチケット(永続無限チケット)を参照し、該フォルダチケットは無限チケットかどうかを判定する。
文書管理サーバ10は、無限チケットであると判定すると(ステップS173においてYES)、ステップS175に進み、無限チケットでないと判定すると(ステップS173においてNO)、ステップS174に進む。
ステップS174では、文書管理サーバ10が、図44のステップS155からの処理を行う。
一方、ステップS175では、文書管理サーバ10が、図11に示したようなフォルダチケットによるセッションを作成する。
ステップS175に続いてステップS176に進み、文書管理サーバ10は、図12に示したような、フォルダチケットによるセッション開始レスポンスを作成する。
ステップS176に続いてステップS177に進み、文書管理サーバ10は、ステップS176において作成したセッション開始レスポンスを、要求元(例えば、クライアントB)に送信する。