図2は、本発明に係るシステムの一例を説明するための図である。また、図3は、図2の文書管理サーバの構成例を示す図である。
本発明の一実施形態に係るサービス提供方法は、文書チケットを使って、文書管理サーバ1とのセッションを開始するようにしたものである。なお、このサービス提供方法を実行させるサービス提供プログラム、及び記録媒体に関する説明も、基本的にサービス提供方法及び文書管理サーバ1の説明をもって代用する。
ここで例示する文書管理サーバ1は、ネットワークを介した一般的なサーバクライアントシステム(後述)のサーバ側として構成され、該文書管理サーバ1には、クライアントの1つとしてクライアントA(2)と、また、文書管理サーバ1のアカウントを持たない他のクライアントとしてクライアントB(3)と、がネットワークを介して接続されている。なお、本発明に係るサービス提供装置としては、画像形成装置なども適用可能である。この場合には、例えば図2であれば文書管理サーバ1に担当する部分の役割を画像形成装置が果たし、複合機(MFP)などの画像形成装置内の記憶装置に記憶されている文書画像などを文書チケットによって操作する。このときクライアントからは、画像形成装置が文書管理サーバ1(この場合は、画像データサーバともいえる)として見える。
なお、クライアントB(3)が文書管理サーバ1のアカウントを持つ場合でも、所定の文書のアクセス権を持たない場合には、本発明は適用可能であり、文書チケットを使って、文書管理サーバ1とのセッションを開始することで、その文書チケットに係わる所定文書(クライアントB(3)がアクセス権を持たない文書)に関する処理を行うことができる。
なお、文書チケットが改ざんされたり、他のユーザに取得されたりしないように、ネットワークのセキュリティを強化しておくことが好ましい。ネットワークとしては、電話回線、通信回線(有線、無線に限らず)を使用したインターネット、イントラネット、エクストラネットなどのネットワークシステムで構成される。このネットワークシステムはLAN環境に限らずサーバの設置場所によってはWAN環境やMAN環境で構築される場合もある。
また、よりセキュリティを強化するため、文書管理サーバ1は、文書チケット又は文書チケットの一部又は後述するチケットIDなどを暗号化してクライアントに送信するようにしてもよい。また、図2においては、文書管理サーバ1と、クライアントA(2)と、クライアントB(3)と、は、ネットワークを介して接続されているよう説明したが、文書管理サーバ1とクライアントA(2)又はクライアントB(3)、又は、クライアントA(2)とクライアントB(3)、又は文書管理サーバ1とクライアントA(2)とクライアントB(3)とが同じ装置(サーバ)内にあってもよい。なお、以下では説明の簡略化のため、文書管理サーバ1と、クライアントA(2)と、クライアントB(3)と、は、ネットワークを介して接続されているものとして説明する。
図3を参照して文書管理サーバ1の構成を説明する。図3に示されるように、文書管理サーバ1は、チケット取得要求受信手段11と、チケット作成手段12と、チケット管理手段13と、チケットID送信手段14と、セッション開始要求受信手段15と、チケット解析手段16と、文書検索手段17と、セッション作成手段18と、セッション管理手段19と、セッションID送信手段20と、要求受付手段21と、要求実行手段22と、を含む。なお、文書管理サーバ1には、各手段11〜22に加えて、要求実行手段22で要求される処理(又はメソッド)である各種サービス提供手段が少なくとも備えられているものとする。次にこれら各手段11〜22を簡単に説明するが、その詳細や他の形態に関する説明は、後述のサービス提供方法における各処理の説明を参照すればよく、省略する。
チケット取得要求受信手段11は、クライアントA(2)からの文書チケットの取得要求を受信する。なお、後述するように、文書チケットの取得要求には、文書を識別する文書識別子のリスト及び文書に係るサービス(例えば、文書プロパティの取得や、文書内容の取得など)を識別するサービス識別子が含まれていてもよい。
チケット作成手段12は、チケット取得要求受信手段11において受信した文書チケットの取得要求に応じて、文書チケットを作成する。なお、文書チケットには、チケットIDと、ユーザアカウント(例えばクライアントA(2)のユーザのユーザアカウント)と、該文書チケットで利用可能な文書IDのリストと、文書名のリストと、当該文書チケットの有効期限と、が形態に応じて含まれている。また、文書チケットに、そのチケットがクライアントC、D用のチケットでありクライアントBでは使用できない、といったクライアント別の使用クライアント制限情報、或いはクライアントがPCの場合には使用できず、プリンタである場合には使用できるといったクライアント種別による使用クライアント制限情報を組み込んでおいてもよい。
チケット管理手段13は、チケット作成手段12において作成した文書チケットを管理する。なお、後述するように、チケット管理手段13は、文書チケットと、該文書チケットで利用可能な文書に係るサービス(例えば、文書プロパティの取得や、文書内容の取得など)を識別するサービス識別子又はサービス名などを関連付けて管理する。
チケットID送信手段14は、文書チケットに含まれるチケットIDを文書チケットとしてクライアントA(2)に送信する。なお、チケットIDの代わりに、文書チケット自体をクライアントA(2)に送信するようにしてもよいし、文書チケットの一部をクライアントA(2)に送信するようにしてもよい。
セッション開始要求受信手段15は、クライアントB(3)からの文書チケット又は文書チケットの一部又はチケットIDを含むセッションの開始要求を受信する。
チケット解析手段16は、セッション開始要求受信手段15が受信したセッションの開始要求に含まれる文書チケット又は文書チケットの一部又はチケットIDに基づいて、対応する文書チケットの解析を行う。例えば、チケット解析手段16は、セッション開始要求受信手段15において受信したセッションの開始要求に含まれる文書チケット又は文書チケットの一部又はチケットIDに基づいて、有効な文書チケット又は文書チケットの一部又はチケットIDかどうかを、チケット管理手段13などを参照し、解析する。
文書検索手段17は、文書チケットに対応する文書を検索し、存在の有無を確認する。なお、文書は、文書管理サーバ1内に格納されていてもよいし、文書管理サーバ1以外の装置(サーバ)などに格納されていてもよい。但し以下では説明の簡略化のため、文書は、文書管理サーバ1内に格納されているものとして説明を行う。
セッション作成手段18は、セッション開始要求に対して新規セッションを作成する。なお、該セッションには、セッションIDと、当該セッションの有効期限と、が含まれる。また、セッションに、対応するチケットID又は文書チケットを含めるようにしてもよいし、対応する文書チケットに含まれる文書IDのリスト等を含めるようにしてもよい。
セッション管理手段19は、セッション作成手段18において作成したセッションを管理する。セッションID送信手段20は、セッション作成手段18において作成したセッションを識別するセッションIDをクライアントB(3)へ送信する。
要求受付手段21は、クライアントB(3)からのセッションIDを含む処理(又はメソッド)の要求を受け付ける。要求実行手段22では、クライアントB(3)から受け付けた要求を実行する(要求されたサービス提供処理を、対応する手段に実行させる)。
ここで言う「要求」としては、一部後述するように、文書プロパティの要求、文書の要求(文書内容の要求;クライアントBがプリンタ或いはプリントサーバであるときには特に印刷データとしての文書の要求)、その他、文書が複合文書である場合には、所定の版(変更履歴)或いは複合文書内の1又は複数の文書の要求など、様々な要求が挙げられ、また、それらのうち1つの要求だけではなく、複数個の要求でもよい。実際、本発明においては、文書チケットにより文書管理サーバ1とのセッションを開始することが可能であり、開始したセッション内ではその1つの文書チケットにより複数の要求にも対応可能である。
従って、本発明により、例えば1つの文書チケット(後述するように各処理の間に一度セッションを終わらせる場合にはこの文書チケットから作成される新たな文書チケットも使用する)で、文書を取得し、その内容を変更し、文書管理サーバ1へ登録することなども可能である。また、文書ファイルI、II、IIIから構成される複合文書の取得は、1つの文書チケットで各文書ファイル単独でも複数でも実行でき、3つの文書ファイルを取得する場合にはメソッド「getDocElementlist()」によりファイルリストを取得して、メソッド「getDocContent(I)」などにより個々の文書ファイルを取得すればよい。
本実施形態に係るサービス提供方法においては、まず、クライアントA(2)が、ユーザの要求に基づいて、文書管理サーバ1上の文書aにアクセスし、その文書aへのアクセス権を持った文書チケットbの取得要求を行う(ステップi)。文書管理サーバ1は、クライアントA(2)からの要求に基づき、クライアントA(2)の利用者が要求中の文書aに対するアクセス権を持っているかどうかを確認した後に、文書チケットbを作成し、クライアントA(2)にその文書aに対するアクセス権を持った文書チケットbを返信する(ステップii)。
クライアントA(2)は、文書管理サーバ1から返信された文書チケットbを信頼できる別のクライアントB(3)に渡し、その文書に対する処理を、処理項目を指定するなどして命令する(ステップiii)。ここではクライアントB(3)はプリンタであるとし、クライアントA(2)はクライアントB(3)に対して文書の印刷を要求するものとして説明する。
クライアントA(2)から文書チケットbで印刷要求を受けたクライアントB(3)は、受け取った文書チケットbを文書管理サーバ1に渡し、文書チケットbを用いた文書に係る権限が制限されたセッションの開始を要求する(ステップiv)。クライアントB(3)から文書チケットbでセッション開始要求を受けた文書管理サーバ1は、この文書チケットbが、クライアントA(2)の要求に基づいて作成したものであることを確認し、セッションを作成し、セッションIDを返す(ステップv)。このように、文書チケットによるセッション開始要求に対してセッションIDが返ってきたことは、クライアントB(3)がクライアントA(2)の権限を(制限されて)委譲されていること、すなわちクライアントB(3)が仮のアカウントを持つことを示している。ここで、このステップvを詳細に説明する。
図4は、文書チケットによるセッション開始の処理手順を説明するためのフロー図である。
文書管理サーバ1における、文書チケットbによるセッション開始の処理では、まず、文書チケットを引数として、セッション開始要求を受け付け(ステップS1)、指定された文書チケットを解析する(ステップS2)。次に、この文書チケットが正しいチケットか否かを判定し(ステップS3)、正しいチケットでなかった場合にエラーを出力する(ステップS7)。一方、正しいチケットであった場合、該当する文書が存在するか否かを判定し(ステップS4)、存在しなかった場合にはステップS7へ進み、存在した場合にはステップS5へ進む。ステップS5においては、新規セッションを作成し、そのセッションに文書IDのリストを登録し、チケットで開始したセッションであることを示すフラグを立てる。ここでは、チケットを引数としてセッションを開始するときに必要となる、そのセッションがチケットで開始したセッションであることを示すフラグを立てている。なお、フラグは「0」又は「1」などの値であってもよいし、チケットID又は文書チケットそのものであってもよい。最後に、セッションIDをクライアントB(3)へ返す(ステップS6)。セッションIDはランダムなものでよい。
ステップvに続き、クライアントB(3)は、文書チケットbに含まれる文書IDのリストを文書管理サーバ1に問い合わせ、文書管理サーバ1は、セッションIDに対応するセッション(又は文書チケット)に含まれる文書IDのリストをクライアントB(3)に返答する。
次に、クライアントB(3)は、受け取ったセッションIDと文書IDリストに含まれる文書IDを利用して文書のプロパティの取得要求を行う(ステップvi)。この文書プロパティには文書名、作成者などの情報が含まれている。また、この要求に関し、クライアントA(2)のユーザがその要求まで指定して文書処理を行うようクライアントB(3)へ指示する形態が挙げられるが、クライアントB(3)のユーザがその要求を行う形態でも構わない。文書管理サーバ1は、クライアントB(3)から要求された文書IDが、セッションIDに対応するセッション(又は文書チケット)に含まれているか否かを確認し、含まれているならば文書プロパティを返答し、セッションIDに対応するセッション(又は文書チケット)に含まれていない文書IDのプロパティを要求された場合は、不正なアクセスとしてエラーとする(ステップvii)。ここで、このステップviiを詳細に説明する。
図5は、文書チケットで開始したセッションによる文書プロパティ提供手順を説明するためのフロー図である。
文書管理サーバ1における、文書チケットで開始したセッションによる文書プロパティ取得の処理では、まず、文書チケットで開始したセッションのセッションIDと、プロパティを取得したい文書の文書IDとを引数として、文書プロパティ取得要求を受け付ける(ステップS11)。次に、文書チケットbで開始したセッションか否かを判定し(ステップS12)、文書チケットbで開始したセッションでない場合にはエラーを出力し(ステップS16)、文書チケットbで開始したセッションである場合には、指定されたセッションに登録されている文書IDを得る(ステップS13)。次に、指定された文書IDがセッションに登録されているか否かを判定し(ステップS14)、登録されていなければステップS16へ進み、登録されていれば文書プロパティをクライアントB(3)へ返す(ステップS15)。このように、文書管理サーバ1では、まずそのセッションが文書チケットbで開始したセッションであるかをチェックし、そうであれば指定された文書IDがそのセッションに登録されているかをチェックする。
ステップviiに続き、クライアントB(3)は、文書プロパティの場合と同様に、セッションIDと文書IDとを利用して、文書内容取得要求を文書管理サーバ1に渡す(ステップviii)。文書管理サーバ1は、文書プロパティの場合と同様に、クライアントB(3)から要求された文書IDが、このセッションで利用できる正当なものかどうかを確認し、文書内容又はエラーを返す(ステップix)。ここで、このステップixを詳細に説明する。
図6は、文書チケットで開始したセッションによる文書内容提供手順を説明するためのフロー図である。
文書管理サーバ1における、文書チケットで開始したセッションによる文書内容取得の処理では、まず、文書チケットで開始したセッションのセッションIDと、取得したい文書(内容を取得したい文書)の文書IDとを引数として、文書内容取得要求を受け付ける(ステップS21)。次に、文書チケットbで開始したセッションか否かを判定し(ステップS22)、文書チケットbで開始したセッションでない場合にはエラーを出力し(ステップS26)、文書チケットbで開始したセッションである場合には、指定されたセッションに登録されている文書IDを得る(ステップS23)。次に、指定された文書IDがセッションに登録されているか否かを判定し(ステップS24)、登録されていなければステップS26へ進み、登録されていれば文書内容(文書a)をクライアントB(3)へ返す(ステップS25)。このように、文書管理サーバ1では、まずそのセッションがチケットで開始したセッションであるかをチェックし、そうであれば指定された文書IDがそのセッションに登録されているかをチェックする。
ステップixに続き、クライアントB(3)は、取得したプロパティと文書内容を使ってクライアントA(2)から要求された処理(例えば印刷など)を行う。
なお、以上では、クライアントB(3)が、文書プロパティ取得と文書内容取得とを行う例を示したが、例えば、クライアントB(3)が、文書チケットを用いて張ったセッションを識別するセッションIDを用いて、そのいずれかの処理や他の処理を行うようにしてもよい。
本実施形態によれば、文書管理サーバ1に対する直接のアクセス権を必要とせずに、各種文書に係るサービスを提供することができる。また、上述の例でいうと、文書チケットによる処理であるので、クライアントB(3)にクライアントA(2)の認証情報などを伝えてしまうこともない。
図7は、文書チケットで開始したセッションで提供可能なサービスを表す管理表の一例を示す図である。また、図8は、本発明の他の実施形態に係るサービス提供方法における、文書チケットで開始したセッションによる文書プロパティ提供手順を説明するためのフロー図である。
本発明の他の実施形態に係るサービス提供方法として、図2乃至図6で説明したサービス提供方法において、文書チケットによって開始したセッションで利用できるサービスを制限するようにしてもよい。図7及び図8を参照して、文書チケットで開始したセッションに対し、文書プロパティ取得は行えるが文書内容取得は行えないという設定を行う場合を仮定して説明する。この制限を管理する表は、図7に示す管理表31のようになる。ここで例示する管理表31では、文書プロパティ取得は文書チケットで開始したセッションで許可され、文書内容取得は文書チケットで開始したセッションで許可されていないものとする。
文書管理サーバ1における、文書チケットによって開始したセッションでの文書プロパティ取得の処理では、まず、文書チケットで開始したセッションのセッションIDと、プロパティを取得したい文書の文書IDとを引数として、文書プロパティ取得要求を受け付ける(ステップS31)。次に、文書チケットbで開始したセッションか否かを判定し(ステップS32)、文書チケットbで開始したセッションでない場合にはエラーを出力し(ステップS37)、文書チケットbで開始したセッションである場合には、この処理が管理表31で実行可能となっているか否かを判定する(ステップS33)。ステップS33において、実行可能となっていない場合にはステップS37へ進み、実行可能となっている場合には、指定されたセッションに登録されている文書IDを得る(ステップS34)。次に、指定された文書IDがセッションに登録されているか否かを判定し(ステップS35)、登録されていなければステップS37へ進み、登録されていれば文書プロパティをクライアントB(3)へ返す(ステップS36)。ここで、管理表31に従えば、文書プロパティ取得は文書チケットで開始したセッションで許可されているので、文書プロパティの取得が行われることとなる。なお、管理表31は、例えば、セッション管理手段19などにおいて管理される。
図9は、本発明の他の実施形態に係るサービス提供方法における、文書チケットで開始したセッションによる文書内容提供手順を説明するための図である。
本実施形態に係るサービス提供方法を、図7及び図9を参照して、文書チケットで開始したセッションに対し、文書プロパティ取得は行えるが文書内容取得は行えないという設定を行う場合を仮定して説明する。この制限を管理する表は、図7に示す管理表31である。
文書管理サーバ1における、文書チケットで開始したセッションによる文書内容取得の処理では、まず、文書チケットで開始したセッションのセッションIDと、内容を取得したい文書の文書IDとを引数として、文書内容取得要求を受け付ける(ステップS41)。次に、文書チケットbで開始したセッションか否かを判定し(ステップS42)、文書チケットbで開始したセッションでない場合にはエラーを出力し(ステップS47)、文書チケットbで開始したセッションである場合には、この処理が管理表31で実行可能となっているか否かを判定する(ステップS43)。ステップS43において、実行可能となっていない場合にはステップS47に進み、実行可能となっている場合には、指定されたセッションに登録されている文書IDを得る(ステップS44)。次に、指定された文書IDがセッションに登録されているか否かを判定し(ステップS45)、登録されていなければステップS47へ進み、登録されていれば文書内容(文書a)をクライアントB(3)へ返す(ステップS46)。ここで、管理表31に従えば、文書内容取得は文書チケットで開始したセッションで許可されていないので、文書内容の取得に対しエラーを出力することとなる。
本実施形態によれば、文書管理サーバ1に対する直接のアクセス権を必要とせずに、各種文書に係るサービスを提供することができる上に、文書管理サーバ1に対するアクセス権を抑制できるので、セキュリティを保つことが可能となる。
図10は、本発明の他の実施形態に係るサービス提供方法における、文書チケット取得時に利用可能メソッドを登録する処理手順を説明するためのフロー図である。
本発明の他の実施形態に係るサービス提供方法として、図7乃至図9で説明したサービス提供方法において、文書チケットを取得するときに、その文書チケットにより開始できるセッションで、利用できるサービスの制限を指定できるようにしてもよい。図10で説明する処理は、図2のステップiiの他の形態に相当する。
文書管理サーバ1における文書チケット取得処理では、まず、クライアントA(2)から、文書IDのリストと実行可能なメソッドのリストを引数として、文書チケット取得要求を受け付ける(ステップS51)。次に、新規チケットを作成し(ステップS52)、文書IDをこのチケットに登録する(ステップS53)。最後に、チケットIDと処理可能なメソッドとを、文書チケットで実行できるメソッドの管理表に登録する(ステップS54)。このように、文書管理サーバ1では、文書チケットを作成することで文書チケットを取得し、その文書チケットで開始したセッションで実行可能なメソッドを、文書チケットで実行できるメソッドの管理表に登録する。
図11は、文書チケットで実行できるメソッドの管理表の一例を示す図である。
図11に例示する、文書チケットで実行できるメソッドの管理表32では、各チケットID毎に、各サービスの可不可を登録しており、この例では、ticket1、ticket2、ticket3のチケットIDに対し、それぞれ、文書プロパティ及び文書内容取得可、文書プロパティのみ取得可、文書プロパティ及び文書内容取得不可と、登録されている。なお、図11に示されるメソッドの管理表は、例えばチケット管理手段13などにおいて管理される。また、図11では、メソッドの管理表として説明したが、文書チケット自体に、各サービスの可不可を含めるようにしてもよい。
本実施形態によれば、文書管理サーバ1に対する直接のアクセス権を必要とせずに、各種文書に係るサービスを提供することができる上に、文書チケット毎に文書管理サーバ1に対するアクセス権を抑制できるので、柔軟なアクセス制御を行うことが可能となる。
図12は、本発明の他の実施形態に係るサービス提供方法における、文書チケットで開始したセッションによる文書プロパティ提供手順を説明するためのフロー図である。
本発明の他の実施形態に係るサービス提供方法として、上述した各実施形態に係るサービス提供方法において、文書チケットを取得した後に文書のアクセス権が変更された場合に、その文書チケットで開始したセッションも文書に対するアクセス権が変更されるようにしてもよい。
文書管理サーバ1における、文書チケットによって開始したセッションでの文書プロパティ取得の処理では、まず、文書チケットで開始したセッションのセッションIDと、プロパティを取得したい文書の文書IDとを引数として、文書プロパティ取得要求を受け付ける(ステップS61)。次に、文書チケットbで開始したセッションか否かを判定し(ステップS62)、文書チケットbで開始したセッションでない場合にはエラーを出力し(ステップS67)、文書チケットbで開始したセッションである場合には、このセッションのユーザが、指定した文書IDにアクセス権があるか否かを判定する(ステップS63)。ステップS63において、アクセス権がない場合にはステップS67へ進み、アクセス権がある場合には、指定されたセッションに登録されている文書IDを得る(ステップS64)。次に、指定された文書IDがセッションに登録されているか否かを判定し(ステップS65)、登録されていなければステップS67へ進み、登録されていれば文書プロパティをクライアントB(3)へ返す(ステップS66)。このように、文書管理サーバ1では、プロパティ取得処理を行う前に、そのセッションのユーザ(文書チケットを取得したユーザ)が、指定した文書IDの文書に対してアクセス権を持っているかどうかをチェックする。
本実施形態によれば、文書管理サーバ1に対する直接のアクセス権を必要とせずに、各種文書に係るサービスを提供することができる上に、アカウント情報が第三者に漏曳した場合に、そのアカウントを無効にするだけで、文書チケット及び文書チケットで開始したセッションも無効にすることが可能となる。
図13は、本発明の他の実施形態に係るサービス提供方法における、文書チケットによるセッション開始時に旧チケットを破棄する処理手順を説明するためのフロー図である。
本発明の他の実施形態に係るサービス提供方法として、上述した各実施形態に係るサービス提供方法において、文書チケットで新しくセッションを開始したときに、元の文書チケットを更新するようにしてもよい。
文書管理サーバ1における、文書チケットによるセッション開始時に旧チケットを破棄する処理では、まず、文書チケットを引数としてセッション開始要求を受け付け(ステップS71)、指定された文書チケットを解析する(ステップS72)。次に、この文書チケットが正しいチケットであるか否かを判定し(ステップS73)、正しいチケットでなかった場合にはエラーを出力する(ステップS79)。一方、正しいチケットであった場合、該当する文書が存在するか否かを判定し(ステップS74)、存在しなかった場合にはステップS79へ進み、存在した場合にはステップS75へ進む。ステップS75においては、チケット情報をコピーし、新しい文書チケットを作成する。ここで作成する文書チケットはコピーとはいっても例えばランダム情報や時刻情報などが旧文書チケットと異なる。次に、古い文書チケットの使いまわしを避けるため、古い文書チケットを破棄する(ステップS76)。また、新旧いずれかの文書チケットから、新規セッションを作成し、セッションに文書IDのリストを登録し、文書チケットで開始したセッションであることを示すフラグを立てる(ステップS77)。なお、ステップS76とステップS77との間の順序は問わない。ここでは、チケットを引数としてセッションを開始するときに必要となる、そのセッションがチケットで開始したセッションであることを示すフラグを立てている。最後に、セッションIDをクライアントB(3)へ返す(ステップS78)。セッションIDはランダムなものでよい。
このように、文書管理サーバ1では、正当な文書チケットであることを確認した後に、古い文書チケットをコピーして新しい文書チケットを作成する。古い文書チケットは破棄する。なお、ここで作成された新しい文書チケットは、クライアントB(3)から、直接或いはクライアントA(2)を介して、他のクライアントCへ渡され、クライアントCにて使用することも可能であるし、クライアントB(3)が複数のメソッドを複数回に分けて実行するときなどに使用することも可能である。
本実施形態によれば、文書管理サーバ1に対する直接のアクセス権を必要とせずに、各種文書に係るサービスを提供することができる上に、同じ文書チケットで二度セッションを開始できないので、文書チケットの流用を防ぐことが可能となる。
なお、古い文書チケットは破棄せずに、使用不可能のフラグなどを該古いチケットに立てるようにしてもよい。
以上、本発明のサービス提供方法及びサービス提供装置について、各実施形態を説明してきたが、上述した各実施形態における文書管理サーバ1を、サーバ及びクライアントからなるCSシステムにて実現する場合の形態の一構成例を、図14に示す一般的なCSシステムのハードウェアを例に挙げて説明する。図14は、一般的なCSシステムのハードウェアの例を示す図である。このCSシステムは、データ管理システムとしての文書管理サーバ1が、ネットワーク7を介してクライアント2、3、...に接続されて構成される。なお、本発明に係る文書管理サーバ1は、図3で説明した各手段の一部をハードモジュールとして構成することも可能である。
本発明に係る文書管理サーバ1で取り扱われるデータは、その処理時に一時的にRAM(Random Access Memory)などのメモリ42に蓄積される。また、コンピュータをそれらシステムとして(例えば、図3の各手段として)機能させるための、CPU(中央演算処理装置)41の処理を記述するサービス提供プログラム及び必要なデータが、ROMなどのハードディスク43などでなる記憶部に蓄積されている。CPU41はこの制御プログラムを読み出すことにより、本発明に係るサービス提供方法を実施し、管理表や作成された文書チケットなどを、ハードディスク43又はリムーバブルディスク46へ格納しておく。なお、文書管理サーバ1側のCPU41、メモリ42やハードディスク43の記憶部、リムーバブルディスク46は、バス(内部バス)47により接続されるか、各要素の一部がLANなどのネットワークを介して接続されていればよい。また、文書管理サーバ1が階層構造をもつ形態を採用してもよい。なお、ネットワーク7を介した通信も、CPU41(及びCPU51、61)による指示に従って制御されることとなる。
クライアント2、3側では、その制御プログラムによりネットワーク7を介して受け取った文書チケットやデータプロパティ、データ内容などを、CRT、LCD、PDPなどのディスプレイ55や接続されたプリンタ、通信ポートなどの出力装置に出力することとなる。また、クライアント2、3には、ユーザが使用する際に容易となるようなディスプレイ55用のグラフィカルユーザインターフェース(GUI)を備え、GUIを介してユーザに各種データが提示され、必要な場合には、キーボード54a、64aやマウス(ポインティングデバイス)54b、64bなどからユーザが処理に必要なパラメータ(文書チケット取得時に必要となるユーザ情報(ユーザアカウント情報)など)を入力することで指定するようにすればよい。また、その他の処理の実行中に作られる中間データもRAMなどのメモリ52、62に蓄積され、必要に応じて、CPU51、61によって読み出し、書き込みが行われる。なお、クライアント2(3)側のCPU51(61)、メモリ52(62)やハードディスク53(63)の記憶部、入力装置54a、54b(64a、64b)、ディスプレイ55(65)や出力装置は、バス(内部バス)57(67)により接続されるか、各要素の一部がLANなどのネットワークを介して接続されていればよい。
以上、本発明のサービス提供装置、サービス提供方法を中心に各実施形態を説明してきたが、CPUの処理で説明したように、本発明は、コンピュータをサービス提供装置として機能させるための、或いはコンピュータにサービス提供方法(の処理手順)を実行させるためのサービス提供プログラムとしての形態も可能である。
さらに、本発明は、そのサービス提供プログラムや該サービス提供プログラムを記録したコンピュータ読み取り可能な記録媒体としての形態も可能である。記録媒体としては、具体的には、CD−ROM、光磁気ディスク、DVD−ROM、FD、フラッシュメモリ、メモリスティック、及びその他各種ROMやRAMなどが想定でき、これら記録媒体に上述した本発明の各実施形態の方法をコンピュータ(サーバ側)に実行させ、サービス提供方法の機能を実現するためのサービス提供プログラムを記録して流通させることにより、当機能の実現を容易にする。そして図14で説明したような文書管理サーバ1において、例えばリムーバブルディスク46の駆動装置に上述のごとくの記録媒体を装着して、CPUによりプログラムを読み出すか、若しくはハードディスク43に当プログラムを記憶させておき、必要に応じて読み出すことにより、本発明に係わるサービス提供方法の機能を実行することができる。なお、上述のごとくクライアント側にもGUI用プログラムや単なるブラウザなど、文書管理サーバ1へのアクセスに必要なプログラムが格納され、実行可能となっている必要がある。なお、サービス提供プログラムを、画像形成装置にインストールし、上述したような処理を行うサービス提供サーバとして動作させてもよい。
上述した実施例1では、説明を省略したが、例えば図2において、クライアントA(2)が、文書管理サーバ1に文書チケットの取得要求を送信する際は、該文書チケットの取得要求にセッションIDを含めて、文書管理サーバ1に文書チケットの取得要求を送信する。文書管理サーバ1は、要求に含まれているセッションIDを参照して、有効なセッションかどうかを判定し、有効なセッションであると判定すると、要求に応じた処理を行う。つまり、クライアントA(2)と、文書管理サーバ1とは、初めにセッションを張る。
以下、文書管理サーバ1と、クライアントA(2)とのセッションの開始処理の一例を、図15を用いて説明する。図15は、文書管理サーバと、クライアントAとのセッションの開始処理の一例を説明するための図である。
クライアントA(2)は、例えばユーザ名とパスワードとを含んだセッションの開始要求を文書管理サーバ1に送信する(シーケンスSQ1)。
文書管理サーバ1は、セッションの開始要求に含まれる例えば、ユーザ名とパスワードとに基づいて、認証を行い、正しい組み合わせの場合、セッションを作成し、該セッションを識別するセッションIDをクライアントA(2)に送信する(シーケンスSQ2)。
クライアントA(2)は、取得したセッションIDを用いて、例えば文書管理サーバ1が管理している文書の内容(Attachment)の取得を文書管理サーバ1に要求する。
以下、文書管理サーバ1が提供する文書内容取得メソッドの一例を、図16を用いて説明する。図16は、文書内容取得メソッドの一例を説明するための図である。
図16に示される文書内容取得メソッドは、セッションID(sessionId)と、文書ID(docId)と、を引数として取得して、文書内容を戻り値として返す。クライアントA(2)は、図15に示されるような文書管理サーバ1が提供する文書内容取得メソッドを、セッションIDと、文書IDとを渡して呼び出して、文書内容を取得する。
ここで、実施例1においては、クラインアントA(2)が、文書管理サーバ1より文書チケットを取得して、該文書チケットをクライアントB(3)に渡すことによって、クライアントB(3)は、文書管理サーバ1と、権限が制限されたセッションを張って、文書管理サーバ1が提供する文書に係るサービスを利用していた。
しかしながら、文書チケットを用いず、クライアントA(2)と文書管理サーバ1とのセッションを識別するセッションIDを、クライアントA(2)又は文書管理サーバ1が加工して、該加工したセッションIDを、クライアントB(3)に渡すことによって、実施例1において説明したように、クライアントB(3)が、制限された中で、文書に係るサービスを利用できるようにしてもよい。
以下では、加工した、クライアントA(2)と文書管理サーバ1とのセッションを識別するセッションIDを用いた、サービス提供方法及び/又はサービス提供装置(本実施例においては、文書管理サーバ1)の実施例を説明する。なお、文書管理サーバ1や、クライアントA(2)、クライアントB(3)のハードウェア構成は、実施例1において説明したものと同様である。ただ、文書管理サーバ1や、クライアントA(2)、クライアントB(3)に、以下に示すような動作を行うプログラムが格納され、該プログラムに従って、文書管理サーバ1や、クライアントA(2)、クライアントB(3)は処理を行う。
以下、加工されたセッションIDを用いた文書内容の取得処理の一例を、図17を用いて説明する。図17は、加工されたセッションIDを用いた文書内容取得に係る処理を説明するための図(その1)である。
クライアントA(2)は、例えばユーザ名とパスワードとを含んだセッションの開始要求を文書管理サーバ1に送信する(シーケンスSQ10)。
文書管理サーバ1は、セッションの開始要求に含まれる例えば、ユーザ名とパスワードとに基づいて、認証を行い、正しい組み合わせの場合、セッションを作成し、該セッションを識別するセッションIDをクライアントA(2)に送信する(シーケンスSQ11)。
クライアントA(2)は、取得したセッションIDに、操作対象となる文書IDを付加して、セッションID’を作成する。
図18は、セッションID’を説明するための図(その1)である。
図18に示されるように、シーケンスSQ11において文書管理サーバ1より取得したセッションIDが、「5468746165416878746」で、操作対象の文書IDが「D123543843483456856」であった場合、クライアントA(2)は、元のセッションIDを加工して、セッションID’「 5468746165416878746?did=D123543843483456856」を作成する。ここで、“?”は、セパレータである。なお、図18においては、文書IDを1つ付加した例を示しているが、これは本発明の実施を制限するものではない。操作対象の複数の文書IDをセッションIDに付加して新たなセッションID’としてもよい。以下においても同様である。
図17において、クライアントA(2)は、作成したセッションID’を、クライアントB(3)に送信する(シーケンスSQ12)。
クライアントB(3)は、クライアントA(2)から受信したセッションID’を含む文書内容の取得要求を文書管理サーバ1に送信する(シーケンスSQ13)。
文書管理サーバ1は、セッションID’の有効性等を判定し、有効なセッションID’であった場合、文書IDに対応する文書内容を取得して、クライアントB(3)に送信する(シーケンスSQ14)。
クライアントB(3)は、例えば文書管理サーバ1が提供する文書内容取得メソッドを、getDocContent(“5468746165416878746?did=D123543843483456856”,“D123543843483456856”);のような形で呼び出す。
以下、図17に示される文書管理サーバ1の一例の機能構成を、図19を用いて説明する。図19は、図17に示される文書管理サーバの一例の機能構成図である。
図19に示されるように文書管理サーバ1は、セッション開始要求受信手段71と、セッション作成手段72と、セッション管理手段73と、セッションID送信手段74と、要求受付手段75と、加工セッションID解析手段76と、文書検索手段77と、要求実行手段78と、を含む。
セッション開始要求受信手段71は、クライアントA(2)からのセッションの開始要求を受信する。なお、セッションの開始要求には、例えばユーザ名とパスワードとが含まれる。
セッション作成手段72は、セッション開始要求受信手段71が受信したセッションの開始要求に応じて、クライアントA(2)と、当該文書管理サーバ1とのセッションを作成する。なお、該セッションには、例えば当該セッションを識別するセッションIDや、該セッションの有効期限等が含まれる。
セッション管理手段73は、セッション作成手段72において作成したセッションを管理する。
セッションID送信手段74は、セッション作成手段72において作成したセッションを識別するセッションIDを、要求元のクライアントA(2)に送信する。
要求受付手段75は、加工されたセッションID(セッションID’)を含む、文書に係る処理(又はメソッド)の要求を受け付ける。
加工セッションID解析手段76は、要求受付手段75において受付けた要求に含まれる加工されたセッションID(セッションID’)を解析する。
文書検索手段77は、要求受付手段75において受付けた要求に含まれる文書IDに対応する文書を検索し、存在の有無を確認する。
要求実行手段78は、要求受付手段75において受け付けた要求を実行する(要求されたサービス提供処理を、対応する手段に実行させる)。
以下、文書管理サーバ1における、セッションID’を用いた文書内容取得に係る処理の一例を、図20を用いて説明する。図20は、文書管理サーバにおける、セッションID’を用いた文書内容の取得に係る処理を説明するためのフローチャート(その1)である。
ステップS80において、文書管理サーバ1は、クライアントB(3)から、図18において説明したセッションID’を含む文書内容の取得要求を受信する。
ステップS80に続いてステップS81に進み、文書管理サーバ1は、ステップS80において受信した文書内容の取得要求に含まれるセッションID’を解析し、加工前の元のセッションIDと、セッションID’に含まれる文書IDとを取り出す。
ステップS81に続いてステップS82に進み、文書管理サーバ1は、セッションID’が有効なセッションID’かどうかを判定する。有効なセッションID’ であると判定すると(ステップS82においてYES)、ステップS83に進み、有効なセッションID’でないと判定すると(ステップS82においてNO)、ステップS85に進む。
例えば、文書管理サーバ1は、セッションID’に含まれる元のセッションIDに基づいて、セッション管理手段73等を参照し、有効なセッションIDかどうかをチェックすることによって、有効なセッションID’かどうかを判定する。
ステップS83では、文書管理サーバ1が、セッションID’に含まれる文書IDと、文書内容の取得対象として渡された文書IDとが同じ文書IDかどうかを判定する。同じ文書IDであると判定すると(ステップS83においてYES)、ステップS84に進み、同じ文書IDでないと判定すると(ステップS83においてNO)、ステップS85に進む。
例えば、文書管理サーバ1は、上述したgetDocContentメソッドの第一引数のセッションID’に含まれる文書IDと、第二引数の文書IDとが同じかどうかを判定する。
ステップS84では、文書管理サーバ1が、文書IDに対応する文書が存在するかどうかを判定する。文書IDに対応する文書が存在すると判定すると(ステップS84においてYES)、ステップS86に進み、文書IDに対応する文書が存在しないと判定すると(ステップS84においてNO)、ステップS85に進む。
ステップS85では、文書管理サーバ1は、エラー処理を行う。例えば、文書管理サーバ1は、エラーメッセージを作成して、クライアントB(3)に送信する。
ステップS86では、文書管理サーバ1は、文書IDに対応する文書の内容を取得してクライアントB(3)に送信する。
図17〜図20に示したように、クライアントA(2)がセッションIDを加工し、セッションID’を作成し、該セッションID’をクライアントB(3)に渡すことによって、クライアントB(3)は、セッションID’を用いて、文書管理サーバ1が提供する文書に係るサービスを、権限が制限された中で利用することができる。
以下、加工されたセッションIDを用いた文書内容取得に係る処理の他の例を、図21を用いて説明する。図21は、加工されたセッションIDを用いた文書内容取得に係る処理を説明するための図(その2)である。
クライアントA(2)は、例えばユーザ名とパスワードとを含んだセッションの開始要求を文書管理サーバ1に送信する(シーケンスSQ20)。
文書管理サーバ1は、セッションの開始要求に含まれる例えば、ユーザ名とパスワードとに基づいて、認証を行い、正しい組み合わせの場合、セッションを作成し、該セッションを識別するセッションIDをクライアントA(2)に送信する(シーケンスSQ21)。
クライアントA(2)は、取得したセッションIDに、操作対象となる文書IDを付加して、セッションID'を作成する。
図22は、セッションID'を説明するための図(その2)である。
図22に示されるように、シーケンスSQ21において文書管理サーバ1より取得したセッションIDが、「5468746165416878746」で、操作対象の文書IDが「D123543843483456856」であった場合、クライアントA(2)は、元のセッションIDを加工して、XML形式のセッションID'を作成する。
図21において、クライアントA(2)は、作成したXML形式のセッションID'を、クライアントB(3)に送信する(シーケンスSQ22)。
クライアントB(3)は、クライアントA(2)から受信したXML形式のセッションID'を含む文書内容の取得要求を文書管理サーバ1に送信する(シーケンスSQ23)。
文書管理サーバ1は、セッションID'の有効性等を判定し、有効なセッションID’であった場合、文書IDに対応する文書内容を取得して、クライアントB(3)に送信する(シーケンスSQ24)。
図21の文書管理サーバ1の機能構成は、図19において説明した機能構成と同様である。
以下、文書管理サーバ1における、セッションID'を用いた文書内容取得に係る処理の他の例を、図23を用いて説明する。図23は、文書管理サーバにおける、セッションID'を用いた文書内容の取得に係る処理を説明するためのフローチャート(その2)である。
ステップS90において、文書管理サーバ1は、クライアントB(3)から、図22において説明したXML形式のセッションID'を含む文書内容の取得要求を受信する。
ステップS90に続いてステップS91に進み、文書管理サーバ1は、ステップS90において受信した文書内容の取得要求に含まれるXML形式のセッションID'を解析し、加工前の元のセッションIDと、セッションID'に含まれる文書IDとを取り出す。
ステップS91に続いてステップS92に進み、文書管理サーバ1は、XML形式のセッションID'が有効なセッションID'かどうかを判定する。有効なセッションID’ であると判定すると(ステップS92においてYES)、ステップS93に進み、有効なセッションID'でないと判定すると(ステップS92においてNO)、ステップS95に進む。
例えば、文書管理サーバ1は、XML形式のセッションID'に含まれる元のセッションIDに基づいて、セッション管理手段73等を参照し、有効なセッションIDかどうかをチェックすることによって、有効なセッションID’かどうかを判定する。
ステップS93では、文書管理サーバ1が、XML形式のセッションID'に含まれる文書IDと、文書内容の取得対象として渡された文書IDとが同じ文書IDかどうかを判定する。同じ文書IDであると判定すると(ステップS93においてYES)、ステップS94に進み、同じ文書IDでないと判定すると(ステップS93においてNO)、ステップS95に進む。
ステップS94では、文書管理サーバ1が、文書IDに対応する文書が存在するかどうかを判定する。文書IDに対応する文書が存在すると判定すると(ステップS94においてYES)、ステップS96に進み、文書IDに対応する文書が存在しないと判定すると(ステップS94においてNO)、ステップS95に進む。
ステップS95では、文書管理サーバ1は、エラー処理を行う。例えば、文書管理サーバ1は、エラーメッセージを作成して、クライアントB(3)に送信する。
ステップS96では、文書管理サーバ1は、文書IDに対応する文書の内容を取得してクライアントB(3)に送信する。
図21〜図23に示したように、クライアントA(2)がセッションIDを加工し、XML形式のセッションID’を作成し、該XML形式のセッションID’をクライアントB(3)に渡すことによって、クライアントB(3)は、XML形式のセッションID’を用いて、文書管理サーバ1が提供する文書に係るサービスを、権限が制限された中で利用することができる。
以下、加工されたセッションIDを用いた文書内容取得に係る処理の他の例を、図24を用いて説明する。図24は、加工されたセッションIDを用いた文書内容取得に係る処理を説明するための図(その3)である。
クライアントA(2)は、例えばユーザ名とパスワードとを含んだセッションの開始要求を文書管理サーバ1に送信する(シーケンスSQ30)。
文書管理サーバ1は、セッションの開始要求に含まれる例えば、ユーザ名とパスワードとに基づいて、認証を行い、正しい組み合わせの場合、セッションを作成し、該セッションを識別するセッションIDをクライアントA(2)に送信する(シーケンスSQ31)。
クライアントA(2)は、取得したセッションIDに、操作対象となる文書IDを付加して、図18又は図22に示したようなセッションID'を作成する。また、クライアントA(2)は、作成したセッションID'を、文書管理サーバ1との共通鍵を用いて暗号化する。
クライアントA(2)は、暗号化したセッションID'を、クライアントB(3)に送信する(シーケンスSQ32)。
クライアントB(3)は、クライアントA(2)から受信した暗号化されたセッションID'を含む文書内容の取得要求を文書管理サーバ1に送信する(シーケンスSQ33)。
文書管理サーバ1は、暗号化されたセッションID'をクライアントA(2)との共通鍵で復号化し、復号化したセッションID'の有効性等を判定し、有効なセッションID’であった場合、文書IDに対応する文書内容を取得して、クライアントB(3)に送信する(シーケンスSQ34)。
以下、図24の文書管理サーバ1の一例の機能構成を、図25を用いて説明する。図25は、図24に示される文書管理サーバの一例の機能構成図である。
図25に示されるように文書管理サーバ1は、セッション開始要求受信手段71と、セッション作成手段72と、セッション管理手段73と、セッションID送信手段74と、要求受付手段75と、加工セッションID解析手段76と、文書検索手段77と、要求実行手段78と、復号化手段79と、を含む。
復号化手段79は、クライアントB(3)からの文書に係る処理(又はメソッド)の要求に含まれる暗号化されたセッションID’を、クライアントA(2)との共通鍵を用いて復号化する。なお、復号化手段79以外の手段は、図19において説明した手段と同様である。
以下、文書管理サーバ1における、セッションID'を用いた文書内容取得に係る処理の他の例を、図26を用いて説明する。図26は、文書管理サーバにおける、セッションID'を用いた文書内容の取得に係る処理を説明するためのフローチャート(その3)である。
ステップS100において、文書管理サーバ1は、クライアントB(3)から、クライアントA(2)において暗号化されたセッションID'を含む文書内容の取得要求を受信する。
ステップS100に続いてステップS101に進み、文書管理サーバ1は、ステップS100において受信した文書内容の取得要求に含まれるセッションID'を、クライアントA(2)との共通鍵を用いて復号化する。
ステップS101に続いてステップS102に進み、文書管理サーバ1は、ステップS101において復号化したセッションID'を解析し、加工前の元のセッションIDと、セッションID'に含まれる文書IDとを取り出す。
ステップS102に続いてステップS103に進み、文書管理サーバ1は、セッションID'が有効なセッションID'かどうかを判定する。有効なセッションID’ であると判定すると(ステップS103においてYES)、ステップS104に進み、有効なセッションID'でないと判定すると(ステップS103においてNO)、ステップS106に進む。
例えば、文書管理サーバ1は、セッションID'に含まれる元のセッションIDに基づいて、セッション管理手段73等を参照し、有効なセッションIDかどうかをチェックすることによって、有効なセッションID’かどうかを判定する。
ステップS104では、文書管理サーバ1が、セッションID'に含まれる文書IDと、文書内容の取得対象として渡された文書IDとが同じ文書IDかどうかを判定する。同じ文書IDであると判定すると(ステップS104においてYES)、ステップS105に進み、同じ文書IDでないと判定すると(ステップS104においてNO)、ステップS106に進む。
ステップS105では、文書管理サーバ1が、文書IDに対応する文書が存在するかどうかを判定する。文書IDに対応する文書が存在すると判定すると(ステップS105においてYES)、ステップS107に進み、文書IDに対応する文書が存在しないと判定すると(ステップS105においてNO)、ステップS106に進む。
ステップS106では、文書管理サーバ1は、エラー処理を行う。例えば、文書管理サーバ1は、エラーメッセージを作成して、クライアントB(3)に送信する。
ステップS107では、文書管理サーバ1は、文書IDに対応する文書の内容を取得してクライアントB(3)に送信する。
クライアントB(3)は、例えば文書管理サーバ1が提供する文書内容取得メソッドを、共通鍵で暗号化されたセッションID’を第一引数、文書IDを第二引数、として呼び出す。
図24〜図26に示したように、クライアントA(2)がセッションIDを加工し、セッションID'を作成し、該セッションID'を文書管理サーバ1との共通鍵を用いて暗号化して、該暗号化したセッションID’をクライアントB(3)に渡すことによって、クライアントB(3)は、暗号化されたセッションID'を用いて、セキュリティを保って、文書管理サーバ1が提供する文書に係るサービスを、権限が制限された中で利用することができる。
以下、加工されたセッションIDを用いた文書内容取得に係る処理の他の例を、図27を用いて説明する。図27は、加工されたセッションIDを用いた文書内容取得に係る処理を説明するための図(その4)である。
クライアントA(2)は、例えばユーザ名とパスワードとを含んだセッションの開始要求を文書管理サーバ1に送信する(シーケンスSQ40)。
文書管理サーバ1は、セッションの開始要求に含まれる例えば、ユーザ名とパスワードとに基づいて、認証を行い、正しい組み合わせの場合、セッションを作成し、該セッションを識別するセッションIDをクライアントA(2)に送信する(シーケンスSQ41)。
クライアントA(2)は、取得したセッションIDを含む、文書管理サーバ1の公開鍵の取得要求を、文書管理サーバ1に送信する(シーケンスSQ42)。
文書管理サーバ1は、公開鍵の取得要求に含まれるセッションIDの有効性を判定し、有効なセッションIDであると判定すると、公開鍵をクライアントA(2)に送信する(シーケンスSQ43)。
クライアントA(2)は、シーケンスSQ41において取得したセッションIDを図18又は図22に示したよう加工し、セッションID'を作成し、文書管理サーバ1より取得した文書管理サーバ1の公開鍵を用いて該セッションID'を暗号化する。
クライアントA(2)は、暗号化したセッションID'を、クライアントB(3)に送信する(シーケンスSQ44)。
クライアントB(3)は、クライアントA(2)から受信した暗号化されたセッションID'を含む文書内容の取得要求を文書管理サーバ1に送信する(シーケンスSQ45)。
文書管理サーバ1は、暗号化されたセッションID'を秘密鍵で復号化し、復号化したセッションID'の有効性等を判定し、有効なセッションID’であった場合、文書IDに対応する文書内容を取得して、クライアントB(3)に送信する(シーケンスSQ46)。
以下、図27の文書管理サーバ1の一例の機能構成を、図28を用いて説明する。図28は、図27に示される文書管理サーバの一例の機能構成図である。
図28に示されるように文書管理サーバ1は、セッション開始要求受信手段71と、セッション作成手段72と、セッション管理手段73と、セッションID送信手段74と、要求受付手段75と、加工セッションID解析手段76と、文書検索手段77と、要求実行手段78と、復号化手段79と、公開鍵取得要求受信手段80と、公開鍵送信手段81と、を含む。
図28に示される復号化手段79は、クライアントB(3)からの文書に係る処理(又はメソッド)の要求に含まれる暗号化されたセッションID’を、秘密鍵を用いて復号化する。
公開鍵取得要求受信手段80は、クライアントA(2)からの公開鍵の取得要求を受信する。なお、公開鍵の取得要求には、セッションIDが含まれる。
公開鍵送信手段81は、クライアントA(2)からの公開鍵の取得要求に応じて、公開鍵をクライアントA(2)に送信する。
なお、復号化手段79、公開鍵取得要求受信手段80、公開鍵送信手段81以外の手段は、図19において説明した手段と同様である。
また、図27の文書管理サーバ1における暗号化されたセッションID’ を用いた文書内容取得に係るフローチャートは、図26に示したのと同様である。ただ、図27の文書管理サーバ1の場合、セッションID’は、文書管理サーバ1の公開鍵で暗号化されているため、図26のステップS101に対応する処理で、秘密鍵を用いて、暗号化されたセッションID’を復号化する。
図27の場合、クライアントB(3)は、例えば文書管理サーバ1が提供する文書内容取得メソッドを、公開鍵で暗号化されたセッションID’を第一引数、文書IDを第二引数、として呼び出す。
図27及び図28に示したように、クライアントA(2)がセッションIDを加工し、セッションID'を作成し、該セッションID'を文書管理サーバ1より取得した公開鍵を用いて暗号化して、該暗号化したセッションID'をクライアントB(3)に渡すことによって、クライアントB(3)は、暗号化されたセッションID'を用いて、セキュリティを保って、文書管理サーバ1が提供する文書に係るサービスを、権限が制限された中で利用することができる。
以下、加工されたセッションIDを用いた文書内容取得に係る処理の他の例を、図29を用いて説明する。図29は、加工されたセッションIDを用いた文書内容取得に係る処理を説明するための図(その5)である。
クライアントA(2)は、例えばユーザ名とパスワードとを含んだセッションの開始要求を文書管理サーバ1に送信する(シーケンスSQ50)。
文書管理サーバ1は、セッションの開始要求に含まれる例えば、ユーザ名とパスワードとに基づいて、認証を行い、正しい組み合わせの場合、セッションを作成し、該セッションを識別するセッションIDをクライアントA(2)に送信する(シーケンスSQ51)。
クライアントA(2)は、取得したセッションIDと、操作対象の文書IDと、を含む、セッションID’の取得要求を、文書管理サーバ1に送信する(シーケンスSQ52)。
文書管理サーバ1は、セッションID’の取得要求に含まれるセッションIDの有効性を判定し、有効なセッションIDであると判定すると、セッションIDを図18又は図22に示したよう加工し、セッションID'を作成し、該セッションID’をクライアントA(2)に送信する(シーケンスSQ53)。
クライアントA(2)は、取得したセッションID’をクライアントB(3)に送信する(シーケンスSQ54)。
クライアントB(3)は、クライアントA(2)から受信したセッションID'を含む文書内容の取得要求を文書管理サーバ1に送信する(シーケンスSQ55)。
文書管理サーバ1は、クライアントB(3)から送信された文書内容の取得要求に含まれるセッションID’ の有効性等を判定し、有効なセッションID’であった場合、文書IDに対応する文書内容を取得して、クライアントB(3)に送信する(シーケンスSQ56)。
以下、図29の文書管理サーバ1の一例の機能構成を、図30を用いて説明する。図30は、図29に示される文書管理サーバの一例の機能構成図である。
図30に示されるように文書管理サーバ1は、セッション開始要求受信手段71と、セッション作成手段72と、セッション管理手段73と、セッションID送信手段74と、要求受付手段75と、加工セッションID解析手段76と、文書検索手段77と、要求実行手段78と、加工セッションID取得要求受信手段82と、セッションID加工手段83と、加工セッションID送信手段84と、を含む。
加工セッションID取得要求受信手段82は、クライアントA(2)からのセッションID’の取得要求を受信する。なお、セッションID’の取得要求には、セッションIDと、操作対象の文書IDと、が含まれる。
セッションID加工手段83は、加工セッションID取得要求受信手段82が受信したセッションID’の取得要求に応じて、該取得要求に含まれるセッションIDを図18又は図22に示したよう加工し、セッションID'を作成する。
加工セッションID送信手段84は、セッションID加工手段83においてセッションIDを加工して作成したセッションID’を、要求元のクライアントA(2)に送信する。
なお、加工セッションID取得要求受信手段82、セッションID加工手段83、加工セッションID送信手段84以外の手段は、図19において説明した手段と同様である。
以下、図29に示される文書管理サーバ1におけるセッションIDの加工に係る処理の一例を、図31を用いて説明する。図31は、図29に示される文書管理サーバにおけるセッションIDの加工に係る処理を説明するためのフローチャートである。
ステップS110において、文書管理サーバ1は、クライアントA(2)より、セッションID’の取得要求を受信する。
ステップS110に続いてステップS111に進み、文書管理サーバ1は、ステップS110において受信した要求が有効な要求かどうかを判定する。有効な要求であると判定すると(ステップS111においてYES)、ステップS113に進み、有効な要求でないと判定すると(ステップS111においてNO)、ステップS112に進む。
文書管理サーバ1は、例えば、ステップS110において受信したセッションID’の取得要求に含まれるセッションIDを取得して、セッション管理手段73等を参照し、有効なセッションIDかどうかを判定し、有効なセッションIDであると判定すると、有効な要求であると判定する。
ステップS112では、文書管理サーバ1は、エラー処理を行う。例えば、文書管理サーバ1は、エラーメッセージを作成して、クライアントA(2)に送信する。
ステップS113では、文書管理サーバ1が、セッションIDを図18又は図22に示したよう加工し、セッションID'を作成する。
ステップS113に続いてステップS114に進み、文書管理サーバ1は、ステップS113において加工し、作成したセッションID’を、要求元のクライアントA(2)に送信する。
ここで、文書管理サーバ1が提供し、クライアントA(2)が呼び出す、加工セッションID(セッションID’)の取得メソッドの一例を、図32に示す。図32は、加工セッションID取得メソッドの一例を説明するための図である。
図32に示される加工セッションID取得メソッドは、セッションID(sessionId)と、文書ID(docId)と、を引数として取得して、加工セッションID(セッションID’)を戻り値として返す。クライアントA(2)は、図32に示されるような文書管理サーバ1が提供する加工セッションID取得メソッドを、セッションIDと、文書IDとを渡して呼び出して、加工セッションID(セッションID’)を取得する。
なお、図29における文書内容の取得に係る処理は、図20等において説明したのと同様である。
図29〜図32に示したように、クライアントA(2)からの要求に基づいて、文書管理サーバ1がセッションIDを加工し、セッションID'を作成するようにしてもよい。クライアントA(2)よりセッションID’を受け取ったクライアントB(3)は、該セッションID'を用いて、文書管理サーバ1が提供する文書に係るサービスを、権限が制限された中で利用することができる。
以下、加工されたセッションIDを用いた文書内容取得に係る処理の他の例を、図33を用いて説明する。図33は、加工されたセッションIDを用いた文書内容取得に係る処理を説明するための図(その6)である。
クライアントA(2)は、例えばユーザ名とパスワードとを含んだセッションの開始要求を文書管理サーバ1に送信する(シーケンスSQ60)。
文書管理サーバ1は、セッションの開始要求に含まれる例えば、ユーザ名とパスワードとに基づいて、認証を行い、正しい組み合わせの場合、セッションを作成し、該セッションを識別するセッションIDをクライアントA(2)に送信する(シーケンスSQ61)。
クライアントA(2)は、取得したセッションIDと、操作対象の文書IDと、を含む、セッションID'の取得要求を、文書管理サーバ1に送信する(シーケンスSQ62)。
文書管理サーバ1は、セッションID'の取得要求に含まれるセッションIDの有効性を判定し、有効なセッションIDであると判定すると、セッションIDを図18又は図22に示したよう加工し、セッションID'を作成する。
文書管理サーバ1は、作成したセッションID'を暗号化し、該暗号化したセッションID'をクライアントA(2)に送信する(シーケンスSQ63)。
クライアントA(2)は、取得した暗号化されたセッションID'をクライアントB(3)に送信する(シーケンスSQ64)。
クライアントB(3)は、クライアントA(2)から受信した暗号化されたセッションID'を含む文書内容の取得要求を文書管理サーバ1に送信する(シーケンスSQ65)。
文書管理サーバ1は、クライアントB(3)から送信された文書内容の取得要求に含まれる暗号化されたセッションID'を復号化し、該復号化したセッションID' の有効性等を判定し、有効なセッションID’であった場合、文書IDに対応する文書内容を取得して、クライアントB(3)に送信する(シーケンスSQ66)。
以下、図33の文書管理サーバ1の一例の機能構成を、図34を用いて説明する。図34は、図33に示される文書管理サーバの一例の機能構成図である。
図34に示されるように文書管理サーバ1は、セッション開始要求受信手段71と、セッション作成手段72と、セッション管理手段73と、セッションID送信手段74と、要求受付手段75と、加工セッションID解析手段76と、文書検索手段77と、要求実行手段78と、復号化手段79と、加工セッションID取得要求受信手段82と、セッションID加工手段83と、加工セッションID送信手段84と、暗号化手段85と、を含む。
加工セッションID取得要求受信手段82は、クライアントA(2)からのセッションID'の取得要求を受信する。なお、セッションID'の取得要求には、セッションIDと、操作対象の文書IDと、が含まれる。
セッションID加工手段83は、加工セッションID取得要求受信手段82が受信したセッションID'の取得要求に応じて、該取得要求に含まれるセッションIDを図18又は図22に示したよう加工し、セッションID'を作成する。
暗号化手段85は、セッションID加工手段83において加工し、作成したセッションID'を暗号化する。
加工セッションID送信手段84は、暗号化手段85において暗号化されたセッションID'を、要求元のクライアントA(2)に送信する。
復号化手段79は、暗号化手段85において暗号化したセッションID'を復号化する。
なお、復号化手段79、加工セッションID取得要求受信手段82、セッションID加工手段83、加工セッションID送信手段84、暗号化手段85、以外の手段は、図19において説明した手段と同様である。
以下、図33に示される文書管理サーバ1におけるセッションIDの加工に係る処理の一例を、図35を用いて説明する。図35は、図33に示される文書管理サーバにおけるセッションIDの加工に係る処理を説明するためのフローチャートである。
ステップS120において、文書管理サーバ1は、クライアントA(2)より、セッションID'の取得要求を受信する。
ステップS120に続いてステップS121に進み、文書管理サーバ1は、ステップS120において受信した要求が有効な要求かどうかを判定する。有効な要求であると判定すると(ステップS121においてYES)、ステップS123に進み、有効な要求でないと判定すると(ステップS121においてNO)、ステップS122に進む。
文書管理サーバ1は、例えば、ステップS120において受信したセッションID'の取得要求に含まれるセッションIDを取得して、セッション管理手段73等を参照し、有効なセッションIDかどうかを判定し、有効なセッションIDであると判定すると、有効な要求であると判定する。
ステップS122では、文書管理サーバ1は、エラー処理を行う。例えば、文書管理サーバ1は、エラーメッセージを作成して、クライアントA(2)に送信する。
ステップS123では、文書管理サーバ1が、セッションIDを図18又は図22に示したよう加工し、セッションID'を作成する。
ステップS123に続いてステップS124に進み、文書管理サーバ1は、ステップS123において加工し、作成したセッションID'を暗号化する。
ステップS124に続いてステップS125に進み、文書管理サーバ1は、ステップS124において暗号化したセッションID'を要求元のクライアントA(2)に送信する。
なお、図33における文書内容の取得に係る処理は、図26等において説明したのと同様である。ただ、図33の文書管理サーバ1の場合、セッションID’は、文書管理サーバ1において暗号化しているため、図26のステップS101に対応する処理で、当該文書管理サーバ1自身が暗号に用いた、対応する鍵を用いて、暗号化されたセッションID’を復号化する。
図33〜図35に示したように、クライアントA(2)からの要求に基づいて、文書管理サーバ1がセッションIDを加工し、セッションID'を作成し、該セッションID’を暗号化するようにしてもよい。クライアントA(2)より暗号化されたセッションID’を受け取ったクライアントB(3)は、該暗号化されたセッションID'を用いて、セキュリティを保って、文書管理サーバ1が提供する文書に係るサービスを、権限が制限された中で利用することができる。
なお、上述した例においては、文書内容の取得のメソッドを例に挙げて説明を行ったが、文書管理サーバ1は、例えば文書の属性情報の取得メソッド(getProps(セッションID’、文書ID);)や、文書の保存(putDocContent(セッションID’、文書ID);)等、他のメソッドも提供することもできる。
また、上述した例においては、文書管理サーバ1又はクライアントA(2)が、セッションIDに、操作対象の文書IDを付加することによって、セッションIDを加工し、セッションID’を作成したが、上述した例と同様に、文書管理サーバ1又はクライアントA(2)が、セッションIDに、利用可能なメソッドを付加することによって、セッションIDを加工し、セッションID’を作成するようにしてもよい。
図36は、セッションID'を説明するための図(その3)である。
図36に示されるように、元のセッションIDが、「5468746165416878746」で、利用可能なメソッド名(又はメソッドの識別子)が、「getDocContent,getProps,putDocContent」の3つであった場合、文書管理サーバ1又はクライアントA(2)は、元のセッションIDを加工して、セッションID’「 5468746165416878746?method=getDocContent,getProps,putDocContent」を作成する。ここで、“?”は、セパレータである。なお、図36においては、セッションID’に、利用可能なメソッド名として3つのメソッドを含む場合を例にとって説明を行ったが、これは本発明の実施を制限するものではない。利用可能なメソッドは、1つであってもよいし、複数でもよい。また、図22において説明したように、図36のセッションID’がXMLの形式をとるようにしてもよい。
以下、図17に対応させてクライアントA(2)が、図36に示すようなセッションID’を作成するものとして、文書の属性情報取得に係る処理を、図37を用いて説明する。図37は、加工されたセッションIDを用いた文書属性情報取得に係る処理の一例を説明するための図である。
クライアントA(2)は、例えばユーザ名とパスワードとを含んだセッションの開始要求を文書管理サーバ1に送信する(シーケンスSQ70)。
文書管理サーバ1は、セッションの開始要求に含まれる例えば、ユーザ名とパスワードとに基づいて、認証を行い、正しい組み合わせの場合、セッションを作成し、該セッションを識別するセッションIDをクライアントA(2)に送信する(シーケンスSQ71)。
クライアントA(2)は、取得したセッションIDに、操作対象のメソッド名を付加して、図36において説明したようなセッションID'を作成する。
クライアントA(2)は、作成したセッションID'を、クライアントB(3)に送信する(シーケンスSQ72)。
クライアントB(3)は、クライアントA(2)から受信したセッションID'を含む文書の属性情報の取得要求を文書管理サーバ1に送信する(シーケンスSQ73)。
文書管理サーバ1は、セッションID'の有効性等を判定し、有効なセッションID’であった場合、文書IDに対応する文書の属性情報を取得して、クライアントB(3)に送信する(シーケンスSQ74)。
クライアントB(3)は、例えば文書管理サーバ1が提供する文書属性情報取得メソッドを、getProps(“5468746165416878746?method=getDocContent,getProps,putDocContent”,“D123543843483456856”);のような形で呼び出す。
図37に示される文書管理サーバ1の機能構成は、図19において説明した文書管理サーバ1の機能構成と同様である。
以下、文書管理サーバ1におけるセッションID’を用いた文書属性情報取得に係る処理の一例を、図38を用いて説明する。図38は、文書管理サーバにおけるセッションID’を用いた文書属性情報取得に係る処理の一例を説明するためのフローチャートである。
ステップS130において、文書管理サーバ1は、クライアントB(3)から、図36において説明したセッションID'を含む文書の属性情報の取得要求を受信する。
ステップS130に続いてステップS131に進み、文書管理サーバ1は、ステップS130において受信した文書の属性情報の取得要求に含まれるセッションID'を解析し、加工前の元のセッションIDと、セッションID'に含まれるメソッド名と、文書IDと、を取り出す。
ステップS131に続いてステップS132に進み、文書管理サーバ1は、セッションID'が有効なセッションID'かどうかを判定する。有効なセッションID’ であると判定すると(ステップS132においてYES)、ステップS133に進み、有効なセッションID'でないと判定すると(ステップS132においてNO)、ステップS135に進む。
例えば、文書管理サーバ1は、セッションID'に含まれる元のセッションIDに基づいて、セッション管理手段73等を参照し、有効なセッションIDかどうかをチェックすることによって、有効なセッションID’かどうかを判定する。
ステップS133では、文書管理サーバ1が、セッションID'に含まれるメソッド名と、呼び出されたメソッドのメソッド名とが同じメソッド名かどうかを判定する。同じメソッド名であると判定すると(ステップS133においてYES)、ステップS134に進み、同じメソッド名でないと判定すると(ステップS133においてNO)、ステップS135に進む。
例えば、文書管理サーバ1は、上述したgetPropsメソッドの第一引数のセッションID'に含まれるメソッド名と、呼び出されたメソッド(getPropsメソッド)のメソッド名とが同じかどうかを判定する。
ステップS134では、文書管理サーバ1が、文書IDに対応する文書が存在するかどうかを判定する。文書IDに対応する文書が存在すると判定すると(ステップS134においてYES)、ステップS136に進み、文書IDに対応する文書が存在しないと判定すると(ステップS134においてNO)、ステップS135に進む。
ステップS135では、文書管理サーバ1は、エラー処理を行う。例えば、文書管理サーバ1は、エラーメッセージを作成して、クライアントB(3)に送信する。
ステップS136では、文書管理サーバ1は、文書IDに対応する文書の属性情報を取得してクライアントB(3)に送信する。なお、文書の属性情報としては、文書名や、該文書の作成者、該文書を作成した作成日等がある。
図36〜図38を用いて示したように、セッションIDに利用可能なメソッドを付加することによって、セッションID’を作成し、該セッションID'をクライアントB(3)に渡すことによって、クライアントB(3)は、セッションID'を用いて、文書管理サーバ1が提供する文書に係るサービスを、権限が制限された中で利用することができる。
なお、図37及び図38では、クライアントA(2)が、図36を作成する例を用いて説明を行ったが、図29〜図35を用いて説明したように、文書管理サーバ1で、図36に示されるようにセッションID’を作成したり、作成したセッションID’を文書管理サーバ1において暗号化したりしてもよい。また、図24から図28を用いて説明したように、クライアントA(2)が、共通鍵や公開鍵で図36に示されるセッションID’を暗号化し、文書管理サーバ1において復号化するようにしてもよい。
また、図18と図36を組み合わせて、セッションID’に、操作対象の文書IDと、利用可能なメソッドと、を含めるようにしてもよい。
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。