(57)【要約】【課題】      安全かつ耐障害性の高いサービスを提供する。【解決手段】  サーバ装置１０は、自装置に記憶されているユーザ情報やファイル情報を暗号化情報としてクライアント装置２０ａ，２０ｂ，２０ｃに送信する。また、サーバ装置１０は、決められたアルゴリズムに基づいてあるクライアント装置２０ａを特定し、このクライアント装置２０ａに対して暗号化情報の参照制限を解除するための復号化プログラムを送信する。サーバ装置１０に動作異常が発生し、サーバ装置１０がクライアント装置２０に対してサービスを提供することができなくなったときには、復号化プログラムを受信しているクライアント装置２０ａが暗号化情報を復号化し、この情報を用いて、サーバ装置１０の機能の一部を代理して実行する。【選択図】    図１
2006202121.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置と、当該サーバ装置とネットワークを介して接続された複数のクライアント装置とを備え、
前記サーバ装置は、
サービスを提供するために必要なサービス情報を記憶する記憶手段と、
前記記憶手段によって記憶されているサービス情報に基づいて、複数の前記クライアント装置にサービスを提供するサービス提供手段と、
前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段とを備え、
前記クライアント装置は、
前記サーバ装置によって送信されてくる前記制限情報および前記解除データを記憶する記憶手段と、
前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、
前記サーバ装置における動作異常の発生を検知する検知手段と、
前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サーバ装置の付随サービス提供手段が実行する前記制限処理、前記送信処理および前記代理サーバ特定処理を実行するサービス代理手段とを備える
耐障害性サービス提供システム。
【請求項２】
前記サーバ装置は、
前記動作異常が解消され、前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置による前記サービスの提供を終了させ、自装置によって当該サービスの提供を開始する
請求項１記載の耐障害性サービス提供システム。
【請求項３】
前記サーバ装置は、
前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置から前記サービス情報を受信してから、当該クライアント装置による前記サービスの提供を終了させる
請求項２記載の耐障害性サービス提供システム。
【請求項４】
サービスを提供するために必要なサービス情報を記憶する記憶手段と、
前記記憶手段によって記憶されているサービス情報に基づいて、ネットワークを介して接続された複数のクライアント装置にサービスを提供するサービス提供手段と、
前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を代理サーバとして特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段と
を備えるサーバ装置。
【請求項５】
前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる代理サービス終了手段と、
前記代理サービス終了手段が前記クライアント装置によるサービスを終了させた場合に、自装置によって前記サービスの提供を開始するサービス開始手段とを備える
請求項４記載のサーバ装置。
【請求項６】
前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる前に、当該クライアント装置から前記サービス情報を受信するサービス情報受信手段を備える
請求項５記載のサーバ装置。
【請求項７】
前記付随サービス提供手段は、
前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する
請求項４記載のサーバ装置。
【請求項８】
前記サービス情報が前記計測結果を含む
請求項７記載のサーバ装置。
【請求項９】
前記付随サービス提供手段は、
前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する
請求項４記載のサーバ装置。
【請求項１０】
サービス情報の少なくとも一部の参照が制限された制限情報と、前記制限情報の参照制限を解除するための解除データとを記憶する記憶手段と、
前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、
ネットワークを介して接続されたサーバ装置における動作異常の発生を検知する検知手段と、
前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行するサービス実行手段とを備える
クライアント装置。
【請求項１１】
前記検知手段は、さらに、前記サービス代理手段を実行しているクライアント装置における動作異常の発生を検知する
請求項１０記載のクライアント装置。
【請求項１２】
前記サービス実行手段は、
前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する
請求項１０記載のクライアント装置。
【請求項１３】
前記サービス情報が前記計測結果を含む
請求項１２記載のクライアント装置。
【請求項１４】
前記サービス実行手段は、
前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する
請求項１０記載のクライアント装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、安全かつ耐障害性の高いサービスを提供するための技術に関する。
【背景技術】
【０００２】
多数のユーザ（クライアント装置）間で各ユーザの所持するファイルを直接やりとりする、いわゆるファイル共有サービスが普及してきている。一般に、このファイル共有サービスは「中央サーバ型」と「純粋型」に大別される。
中央サーバ型とは、各ユーザの情報や所有するファイルのリストを中央サーバと呼ばれるサーバ装置が管理し、ユーザは中央サーバから提供される情報に基づいて他のユーザとファイルのやりとりを行うものである。このとき、中央サーバはファイルを検索するためのインターフェースを提供するだけであり、ファイルのやりとり自体はユーザ同士が直接行う。
これに対して、純粋型とは、取得したいファイルの情報をバケツリレー式に各ユーザへと送信していき、目的とするファイルを所持するユーザを見つけたら、そのユーザと直接ファイルのやりとりを行うものである。純粋型は中央サーバのようなサーバ装置を必要としないが、全てのクライアント装置はクライアント装置であると同時にサーバ装置でもあると言える。特許文献１には、この純粋型のファイル共有サービスの一例が示されている。
【０００３】
これら２種類のファイル共有サービスはそれぞれに利点を有しているものの、それぞれに欠点も有している。
まず、中央サーバ型のファイル共有サービスは、ファイル検索自体はクライアント装置と中央サーバの間のみで行われるため、ネットワークに対する負担は少なくて済む。また、ファイルのやりとりに必ず中央サーバが関与するため、違法なファイル共有の監視も行うことができる。しかし、何らかの動作異常が発生して中央サーバが利用不能となってしまうと、サービス全体が停止してしまうという問題がある。
一方、純粋型のファイル共有サービスは、あるクライアント装置が利用不能になってもサービス全体が停止してしまうことがなく、耐障害性に優れていると言える。しかし、クライアント装置の増加につれてネットワークのトラフィックも加速度的に増加し、検索速度の低下やネットワークの障害を引き起こすこととなる。加えて、純粋型のファイル共有サービスでは、ユーザ間のファイルのやりとりを監視および規制することが極めて困難であり、音楽ファイルや映像ファイルを違法にコピー・配布されるおそれがある。
【０００４】
【特許文献１】特開２００２−３２４００４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
以上のように、従来の２種類のファイル共有サービスは二律背反の関係にあり、違法行為に対する安全性を確保しつつ高い耐障害性を有することは困難であった。
本発明は上述の事情に鑑みてなされたものであり、その目的は、安全かつ耐障害性の高いサービスを提供することにある。
【課題を解決するための手段】
【０００６】
上述の目的を達成するために、本発明は、サーバ装置と、当該サーバ装置とネットワークを介して接続された複数のクライアント装置とを備え、前記サーバ装置は、サービスを提供するために必要なサービス情報を記憶する記憶手段と、前記記憶手段によって記憶されているサービス情報に基づいて、複数の前記クライアント装置にサービスを提供するサービス提供手段と、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段とを備え、前記クライアント装置は、前記サーバ装置によって送信されてくる前記制限情報および前記解除データを記憶する記憶手段と、前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、前記サーバ装置における動作異常の発生を検知する検知手段と、前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サーバ装置の付随サービス提供手段が実行する前記制限処理、前記送信処理および前記代理サーバ特定処理を実行するサービス代理手段とを備える耐障害性サービス提供システムを提供する。
この耐障害性サービス提供システムによれば、サーバ装置に動作異常が発生したときに、代理サーバ特定処理により特定されたクライアント装置がサーバ装置の提供していたサービスを代理して実行することが可能となる。
【０００７】
また、本発明の耐障害性サービス提供システムは、より好適な態様として、前記サーバ装置が、前記動作異常が解消され、前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置による前記サービスの提供を終了させ、自装置によって当該サービスの提供を開始する。
さらに好適には、前記サーバ装置は、前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置から前記サービス情報を受信してから、当該クライアント装置による前記サービスの提供を終了させる。
このようにすれば、代理サーバとして機能しているクライアント装置は、サーバ装置の動作異常が解消され次第サービスの提供を終了させることができるので、このクライアント装置の不都合を低減させることが可能となる。また、代理サーバによるサービスを終了させる前に代理サーバからサービス情報を受信することにより、サーバ装置はサービス情報の同期を行うことが可能となる。
【０００８】
また、本発明は、サービスを提供するために必要なサービス情報を記憶する記憶手段と、前記記憶手段によって記憶されているサービス情報に基づいて、ネットワークを介して接続された複数のクライアント装置にサービスを提供するサービス提供手段と、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を代理サーバとして特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段とを備えるサーバ装置としても特定される。
【０００９】
このサーバ装置は、より好適な態様として、前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる代理サービス終了手段と、前記代理サービス終了手段が前記クライアント装置によるサービスを終了させた場合に、自装置によって前記サービスの提供を開始するサービス開始手段とを備える。
さらに好適には、前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる前に、当該クライアント装置から前記サービス情報を受信するサービス情報受信手段を備える。
このようにすれば、サーバ装置の動作異常が解消され次第、代理サーバとして機能しているクライアント装置はサービスの提供を終了させることができ、また、サーバ装置はサービス情報の同期を行うことが可能となる。
【００１０】
また、このサーバ装置は、より好適な態様として、前記付随サービス提供手段が、前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する。
さらに好適には、前記サービス情報が前記計測結果を含む。
このようにすれば、解除データを送信するときに、ネットワークにほとんど接続していないクライアント装置等を除外することができる。その結果、代理サーバとしてより信頼性の高いクライアント装置を特定することが可能となる。
【００１１】
また、このサーバ装置は、より好適な態様として、前記付随サービス提供手段が、前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する。
このようにすれば、解除データの利用が制限されるので、より安全性の高いサービスを提供することが可能となる。
【００１２】
なお、本発明は、サービス情報の少なくとも一部の参照が制限された制限情報と、前記制限情報の参照制限を解除するための解除データとを記憶する記憶手段と、前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、ネットワークを介して接続されたサーバ装置における動作異常の発生を検知する検知手段と、前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行するサービス実行手段とを備えるクライアント装置としても特定される。
【００１３】
このクライアント装置は、より好適な態様として、前記検知手段が、さらに、前記サービス代理手段を実行しているクライアント装置における動作異常の発生を検知する。
このようにすれば、サーバ装置の提供していたサービスを代理して実行するクライアント装置に動作異常が発生した場合でも、また別のクライアント装置に当該サービスを代理して実行させることが可能となる。
【００１４】
また、このクライアント装置は、より好適な態様として、前記サービス実行手段が、前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する。
さらに好適には、前記サービス情報が前記計測結果を含む。
このようにすれば、解除データを送信するときに、ネットワークにほとんど接続していないクライアント装置等を除外することができる。その結果、代理サーバとしてより信頼性の高いクライアント装置を特定することが可能となる。
【００１５】
また、このクライアント装置は、より好適な態様として、前記サービス実行手段が、前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する。
このようにすれば、解除データの利用が制限されるので、より安全性の高いサービスを提供することが可能となる。
【発明の効果】
【００１６】
以上のように、本発明によれば、安全かつ耐障害性の高いサービスを提供することが可能となる。
【発明を実施するための最良の形態】
【００１７】
（１）構成
（１−ａ）システム全体構成
図１は、本発明の一実施形態に係るサービス提供システム１を概念的に示した図である。このサービス提供システム１は、サーバ装置１０と、クライアント装置２０ａ，２０ｂおよび２０ｃと、ネットワーク３０とを備えている。本システムはネットワーク３０の規模や有線・無線の別を問わず、ここでは一例としてイントラネットであるとするが、もちろんインターネット等の他のネットワークであってもよい。また、同図では３台のクライアント装置２０ａ，２０ｂおよび２０ｃのみを示したが、実際にはより多数のクライアント装置を備えるものであってもよい。複数のクライアント装置のそれぞれを特に区別する必要がない場合には、以下では「クライアント装置２０」と総称する。
なお、サーバ装置１０とクライアント装置２０のそれぞれには各装置を操作する操作者が存在するが、これらの混同を避けるために、以下ではサーバ装置１０の操作者を「管理者」、クライアント装置２０の操作者を「ユーザ」という。
続いて、サーバ装置１０とクライアント装置２０の構成についてそれぞれ説明する。
【００１８】
（１−ｂ）サーバ装置の構成
図２は、サーバ装置１０のハードウェア構成を示したブロック図である。同図に示されているように、サーバ装置１０は、制御部１１と、記憶部１２と、表示部１３と、操作部１４と、通信部１５とを備えたコンピュータである。制御部１１は図示せぬＣＰＵ（Central Processing Unit）やＲＡＭ（Random Access Memory）等を備えた演算装置であり、後述するサーバプログラムＰＲＧ１を実行することにより中央サーバとしての機能を実現する。記憶部１２は例えばＨＤＤ（Hard Disk Drive）等の大容量の記憶装置であり、クライアント装置２０に対する各種機能を実現するためのサーバプログラムＰＲＧ１と、本システムに接続されている各クライアント装置２０の一覧であるアドレスリストＬＳＴ１と、各クライアント装置２０に記憶されているファイルに関する情報の集合であるファイル情報データベースＤＢ１と、各クライアント装置２０を操作するユーザに関する情報の集合であるユーザ情報データベースＤＢ２とを記憶している。表示部１３は例えば液晶ディスプレイ等の表示装置であり、サーバ装置１０の管理者に対して各種情報を表示する。操作部１４は例えばマウスやキーボード等の入力装置であり、管理者からの入力を受け付ける。通信部１５はサーバ装置１０がネットワーク３０を介してクライアント装置２０とデータの授受を行うためのインターフェース装置である。
【００１９】
ここで、記憶部１２に記憶された各種情報の内容について説明する。
図３は、アドレスリストＬＳＴ１の一例を示した図である。このアドレスリストＬＳＴ１は、「クライアントＩＤ」と「接続開始時間」の２つの項目を含んだ情報の集合であり、各行の情報が１台のクライアント装置２０（またはサーバ装置１０）に対応している。なお、「行番号」の項目は説明の便宜上付与されたものであり、実際のアドレスリストＬＳＴ１には含まれていなくともよい。これは、以下のファイル情報データベースＤＢ１やユーザ情報データベースＤＢ２についても同様である。
「クライアントＩＤ」とは、各クライアント装置２０を一意的に特定するためのデータが記述された項目である。この「クライアントＩＤ」は、ここでは一例としてイントラネットにおけるＩＰ（Internet Protocol）アドレスとするが、用いられるネットワークにおいて各クライアント装置２０を一意的に特定可能な識別子であれば、記述されるデータの形式を問わない。また、「接続開始時間」とは、各行で表されるクライアント装置２０が本システムに接続を開始した時間が、例えば「年．月．日／時．分．秒」という形式で記述された項目である。
すなわち、第１行を例にこのアドレスリストＬＳＴ１の内容を説明すると、第１行に記述されたクライアント装置２０は、そのクライアントＩＤが「１０．０．１．１」であり、本システムに「２００４年１２月１日１２時３４分５６秒」から接続を開始したことを意味している。
【００２０】
アドレスリストＬＳＴ１には、このような情報が本システムに接続されているクライアント装置２０の全てについて記述されており、連続して接続されている時間の長いクライアント装置２０ほど上位に記述されている。すなわち、サーバ装置１０は各クライアント装置２０の接続時間を計測しており、この計測結果をアドレスリストＬＳＴ１として記憶している。そのため、新たに接続を開始したクライアント装置２０や、本システムとの接続を切断したクライアント装置２０を検知したときには、サーバ装置１０はこのアドレスリストＬＳＴ１を随時更新する。
なお、アドレスリストＬＳＴ１の第０行には、「中央サーバ」のクライアントＩＤが記述されている。この行では、「接続開始時間」の値は特に定めない。アドレスリストＬＳＴ１の第０行は、クライアント装置２０が上述の中央サーバを特定するための情報であり、ここでは中央サーバはサーバ装置１０である。中央サーバについての説明は後述する。
【００２１】
図４は、ファイル情報データベースＤＢ１の一例を示した図である。このファイル情報データベースＤＢ１は、「ファイル名」と「クライアント名」と「ファイルアドレス」の３つの項目を含んだ情報の集合であり、各行の情報が１つのファイルに対応している。
「ファイル名」とは、ユーザが操作するクライアント装置２０に記憶されているファイルの名前が記述された項目である。この「ファイル名」は、必ずしもファイルそのものの名前を用いる必要はなく、例えばＭＰ３フォーマットにおけるＩＤ３タグのように、ファイル内に直接埋め込まれた情報を用いてファイルの内容を特定してもよい。
「クライアント名」とは、各行で表されるファイルを記憶しているクライアント装置２０を特定する識別子が記述された項目であり、例えばアドレスリストＬＳＴ１の「クライアントＩＤ」と同様のデータが記述されている。
「ファイルアドレス」とは、各行で表されるファイルが実際に記憶されている記憶領域を、クライアント装置２０内部において定義されているアドレスで記述した項目である。
すなわち、第１行を例にこのファイル情報データベースＤＢ１の内容を説明すると、ファイル名「ａｂｃ」で表されるファイルは、クライアント名「１０．０．１．１」で表されるクライアント装置２０内部に記憶された、ファイルアドレス「D:\Music\abc.mp3」によって特定されるファイルであることを意味している。
【００２２】
図５は、ユーザ情報データベースＤＢ２の一例を示した図である。このユーザ情報データベースＤＢ２は、「ユーザ名」と「パスワード」と「ユーザ権限情報」の３つの項目を含んだ情報の集合であり、各行の情報が１人のユーザ（のクライアント装置２０）に対応している。
「ユーザ名」および「パスワード」とは、本システムの利用に際してあらかじめ登録されたユーザ認証のための情報が記述された項目である。サーバ装置１０は、本システムへの参加（ログイン）を要求するクライアント装置２０に対して「ユーザ名」と「パスワード」の入力を要求し、これらの対がユーザ情報データベースＤＢ２に登録されている情報と一致した場合にのみ、このクライアント装置２０の参加を許可する。
「ユーザ権限情報」とは、各行で表されるユーザのファイルアクセス権限について記述された項目であり、ここでは当該ユーザがアクセス不可能なファイルやクライアント装置２０の「ファイル名」や「クライアント名」が記述されている。
すなわち、第１行を例にこのユーザ情報データベースＤＢ２の内容を説明すると、ユーザ名「ｘｙｚ」のユーザのパスワードは「ｘｙｚ０１２３」であり、このユーザｘｙｚは、クライアント名「１０．０．２．１」のクライアント装置２０が所有する全てのファイルおよびファイル名「ａａｂ」を除いた全てのファイルにアクセス可能であることを意味している。
【００２３】
続いて、サーバプログラムＰＲＧ１を実行することによって実現される諸機能について説明する。
図６は、サーバ装置１０の制御部１１がサーバプログラムＰＲＧ１を実行することによって実現される諸機能を示した機能ブロック図である。ここにおいて、図中の矢印はデータの流れを表している。同図に示されているように、制御部１１はサーバプログラムＰＲＧ１を実行することによって、ファイル登録機能１１１と、ファイル検索機能１１２と、ユーザ登録機能１１３と、ユーザ認証機能１１４と、リスト更新機能１１５と、暗号化機能１１６と、復号化プログラム生成機能１１７と、クライアント特定機能１１８と、データ送信機能１１９とを実現する。以下では、これらの機能の概要を説明する。
【００２４】
ファイル登録機能１１１は、ユーザが自身のクライアント装置２０に記憶されているファイルを登録する機能である。ユーザは、新たなファイルを取得してこれをクライアント装置２０に記憶したときには、サーバ装置１０にそのファイルの「ファイル名」と「ファイルアドレス」とを送信する。サーバ装置１０の制御部１１は、受信したこのデータに基づいてファイル情報データベースＤＢ１を更新する。
ファイル検索機能１１２は、ユーザが取得しようとするファイル、すなわち自身のクライアント装置２０に記憶されていないファイルを検索し、当該ファイルを記憶している別のクライアント装置２０から取得するための機能である。ユーザは、例えば取得しようとするファイルの「ファイル名」をクライアント装置２０に入力し、これをサーバ装置１０に送信する。サーバ装置１０の制御部１１は、受信したこのデータに基づいてファイル情報データベースＤＢ１内を検索し、合致する情報があればクライアント装置２０に通知する。
【００２５】
ユーザ登録機能１１３は、本システムを新たに利用するユーザ（新規ユーザ）を登録したり、既に登録されているユーザのユーザ情報（ユーザ名、パスワード、ユーザ権限情報）を変更して再登録したりする機能である。サーバ装置１０の制御部１１は、新規ユーザに関するユーザ情報を新たにユーザ情報データベースＤＢ２に登録したり、あるいは既に登録されているユーザのユーザ情報をユーザ情報データベースＤＢ２から検索して、これを書き換えたりする。本実施形態においては、ユーザ登録機能１１３は管理者のみによって用いられる機能（すなわち、サーバ装置１０以外では用いられない機能）とするが、もちろんクライアント装置２０のユーザ自身によってユーザ情報の変更が行えるものとしてもよい。ユーザ登録の実行を管理者のみに制限するのは、セキュリティ上の理由である。
ユーザ認証機能１１４は、サーバ装置１０が本システムにログインを試みてきたクライアント装置２０の接続の可否を行う機能である。本システムへのログインに際して、サーバ装置１０はクライアント装置２０に対して「ユーザ名」と「パスワード」の入力を要求する。サーバ装置は入力された「ユーザ名」と「パスワード」の対がユーザ情報データベースＤＢ２に存在するか否かを判断し、この判断結果が肯定的であった場合に限り本システムへのログインを許可する。
【００２６】
リスト更新機能１１５は、アドレスリストＬＳＴ１の更新を行う機能である。上述したように、アドレスリストＬＳＴ１には本システムに接続されている全てのクライアント装置２０が記述されており、連続して接続されている時間の長いクライアント装置２０ほど上位に記述されている。そのため、サーバ装置１０は、本システムに新たにログインしたクライアント装置２０や、本システムとの接続を切断（ログアウト）したクライアント装置２０を検知した場合には、アドレスリストＬＳＴ１の書き換えを行う。具体的には、クライアント装置２０がログインしてきた場合には、サーバ装置１０の制御部１１はアドレスリストＬＳＴ１の最下位にこのクライアント装置２０の「クライアントＩＤ」を追加し、ログインした時刻を取得してこれを「接続開始時間」に書き込む。また、クライアント装置２０がログアウトした場合には、サーバ装置１０の制御部１１はアドレスリストＬＳＴ１からこのクライアント装置２０の「クライアントＩＤ」および「接続開始時間」を削除し、このクライアント装置２０より下位のクライアント装置２０を１ずつ繰り上げる。
【００２７】
暗号化機能１１６は、ファイル情報データベースＤＢ１とユーザ情報データベースＤＢ２の参照を制限するために、これらを暗号化した情報を生成する機能である。暗号化の手法は特に限定されず、周知の種々の手法を用いてよい。また、このときサーバ装置１０の制御部１１はアドレスリストＬＳＴ１も参照するが、このアドレスリストＬＳＴ１については暗号化を行わない。以下では、暗号化されたファイル情報データベースＤＢ１とユーザ情報データベースＤＢ２および暗号化されていないアドレスリストＬＳＴ１を総称して「暗号化情報」という。
復号化プログラム生成機能１１７は、上述の暗号化機能１１６を用いて生成された暗号化情報の参照制限を解除するためのデータとして、この暗号化情報を復号化するプログラム（以下、「復号化プログラム」という）を生成する機能である。この復号化プログラムは期限付きで実行可能となっており、所定の日時（有効期限）を過ぎると暗号化情報を復号化できないようになっている。
【００２８】
クライアント特定機能１１８は、上述の復号化プログラムを送信すべきクライアント装置２０を特定する機能である。サーバ装置１０の制御部１１は、所定のアルゴリズムに基づいて送信すべき１のクライアント装置２０を特定するが、本実施形態においては、アドレスリストＬＳＴ１を参照して、このリストの第１行に記述されているクライアント装置２０に対して復号化プログラムを送信する。すなわち制御部１１は、本システムに最も長時間連続的に接続している１のクライアント装置２０に対して復号化プログラムを送信する。
データ送信機能１１９は、上述の暗号化情報と復号化プログラムとをクライアント装置２０に送信する機能である。サーバ装置１０の制御部１１はアドレスリストＬＳＴ１を参照し、このリストに記述されている全てのクライアント装置２０に対して暗号化情報を送信し、上述のクライアント特定機能１１８によって特定された１のクライアント装置２０のみに対して復号化プログラムを送信する。
【００２９】
ここで、上述した「中央サーバ」について説明する。
中央サーバとは、本システムにおいてサーバの機能を果たすコンピュータのことであり、上述のサーバ装置１０と、サーバ装置１０のクライアント特定機能１１８により特定されるクライアント装置２０とが中央サーバとなり得る。
ここで「代理サーバ」とは、本システムにおいてファイル登録、ファイル検索、ユーザ認証、リスト更新、暗号化、クライアント特定およびデータ送信の各機能を実現するクライアント装置２０のことである。つまり、代理サーバは、上述のサーバプログラムＰＲＧ１によって実現される機能からユーザ登録機能と復号化プログラム生成機能とを除いた諸機能を実現するクライアント装置２０である。以下では、これらの機能のうち、ファイル登録、ファイル検索およびユーザ認証の各機能のことを「基本サービス」と呼び、リスト更新、暗号化、クライアント特定およびデータ送信の各機能のことを「付随サービス」と呼ぶ。本システムにおいて、「基本サービス」とはファイル共有サービスに直接的に関連した機能のことであり、「付随サービス」とは中央サーバの機能を特定のクライアント装置２０に代理させることを実現するための機能のことを指す。
通常、中央サーバの機能はサーバ装置１０が果たしているが、何らかの異常が発生してサーバ装置１０が利用不能となる場合がある。本発明においては、このような場合にある特定のクライアント装置２０が上述の中央サーバの機能を代理することを特徴としている。そこで以下では、このような機能を実現するためのクライアント装置２０の構成について説明する。
【００３０】
（１−ｃ）クライアント装置の構成
図７は、クライアント装置２０のハードウェア構成を示したブロック図である。同図に示されているように、クライアント装置２０は、制御部２１と、記憶部２２と、表示部２３と、操作部２４と、通信部２５とを備えたコンピュータである。これらの各部はサーバ装置１０の制御部１１〜通信部１５と同様の構成要素となっており、異なるのは記憶部内部で記憶しているデータの内容だけである。よって、ここでは上述の各部の説明は省略し、記憶部２２の記憶内容について説明する。
記憶部２２は、クライアント装置２０としての機能を実現するためのクライアントプログラムＰＲＧ２と、代理サーバの機能を実現するためのサーバプログラムＰＲＧ３と、他のユーザと共有するための複数のファイルＦＩＬ１とを記憶している。また、記憶部２２には、サーバ装置１０から送信された暗号化情報と復号化プログラムとを記憶する記憶領域が設けられている。
【００３１】
クライアントプログラムＰＲＧ２は、クライアント装置２０がサーバ装置１０に接続して、上述したユーザ認証やファイル登録、あるいはファイル検索を行う機能と、このファイル検索の結果に応じて他のクライアント装置２０からファイルを取得するための機能とを実現するためのプログラムである。また、クライアントプログラムＰＲＧ２には、クライアント装置２０が中央サーバを特定し、上述の暗号化情報を取得するためのコマンド送信機能も含まれている。
サーバプログラムＰＲＧ３は、ファイル登録機能と、ファイル検索機能と、ユーザ認証機能と、リスト更新機能と、暗号化機能と、クライアント特定機能と、データ送信機能とを実現するためのプログラムである。すなわち、サーバプログラムＰＲＧ３はクライアント装置２０を代理サーバとして機能させるためのプログラムであり、サーバプログラムＰＲＧ１からユーザ登録機能と復号化プログラム生成機能とを除外したプログラムに等しい。
【００３２】
クライアントプログラムＰＲＧ２とサーバプログラムＰＲＧ３は択一的に実行されるものである。以下においては、クライアント装置２０がクライアントプログラムＰＲＧ２を実行している状態のことを「クライアントモード」といい、サーバプログラムＰＲＧ３を実行している状態のことを「サーバモード」という。
なお、このサーバモードは、クライアント装置２０が暗号化情報と復号化プログラムとを取得し、暗号化情報を復号化可能な状態となって初めて実行され得るものである。なぜなら、暗号化情報を復号化し、ファイル情報データベースＤＢ１，ユーザ情報データベースＤＢ２およびアドレスリストＬＳＴ１が参照可能な状態にならなければ、クライアント装置２０は上述したサービスを実行することは不可能だからである。
【００３３】
（２）動作
ここからは、本システムにおけるサーバ装置１０とクライアント装置２０の具体的な動作について説明する。
本システムにおける基本的な動作は、中央サーバであるサーバ装置１０が複数のクライアント装置２０に対してファイル検索等の基本サービスを提供し、この検索結果に基づいて、クライアント装置２０同士は互いが記憶しているファイルを交換するものである。これらの動作は周知であり、また、図６を用いてその概要は既に説明したため、ここでの詳細な説明は省略する。
【００３４】
本発明は、中央サーバが何らかの問題により利用不能となった状態、すなわち動作異常が生じた状態での処理に特徴を有するものである。本システムにおいては、中央サーバとして機能しているサーバ装置１０に動作異常が発生して利用不能になったとき、特定のクライアント装置２０が「クライアントモード」から「サーバモード」に切り替わり、中央サーバの機能を代理して実行する。その後、サーバ装置１０が利用可能な状態となると、それまで中央サーバとして機能していたクライアント装置２０がもとの「クライアントモード」に切り替わり、通常の状態に復帰する。
これらの動作を実現するための機能が、上述の付随サービスである。以下においては、この付随サービスに係るサーバ装置１０およびクライアント装置２０の具体的な処理について説明する。なお、以下では、サーバ装置１０が中央サーバとして機能している状態を「通常」の状態、サーバ装置１０が利用不能である状態を「異常」の状態であると定義する。
【００３５】
（２−ａ）通常の状態におけるサーバ装置およびクライアント装置の動作
はじめに、通常の状態におけるサーバ装置１０およびクライアント装置２０の動作について説明する。サーバ装置１０は、上述したファイル検索等の基本サービスに加えて、異常の発生に備えるために、基本サービスの提供に必要な情報をクライアント装置２０にあらかじめ送信しておく。この情報とは、上述した暗号化情報と復号化プログラムのことである。これらの情報を送信する処理は、クライアント装置２０からの要求に応じて行われる。
各クライアント装置２０は、中央サーバ（この場合、サーバ装置１０）に対して一定の周期で暗号化情報を要求するコマンドを送信している。このコマンドを受信すると、中央サーバであるサーバ装置１０は暗号化情報を送信する。このとき、サーバ装置１０はアドレスリストＬＳＴ１を参照し、コマンドを送信してきたクライアント装置２０がアドレスリストＬＳＴ１の第１行に記述されているクライアント装置２０であるか否かを判断する。この判断は、例えばコマンド送信元のＩＰアドレスとアドレスリストＬＳＴ１の第１行の「クライアントＩＤ」とを比較することにより行われる。この判断が肯定的である場合、すなわちコマンドを送信してきたクライアント装置２０がアドレスリストＬＳＴ１の第１行に記述されているクライアント装置２０である場合には、サーバ装置１０は復号化プログラムを暗号化情報と共に送信する。暗号化情報を受信したクライアント装置２０は、それ以前に受信し記憶していた暗号化情報を破棄し、新たな暗号化情報を記憶部１２に記憶することで、サーバ装置１０内部の情報と同期を行う。
【００３６】
（２−ｂ）異常が発生したときのクライアント装置の動作
サーバ装置１０とクライアント装置２０の間では、上述のような動作が繰り返し行われる。そして、あるタイミングでサーバ装置１０に異常が発生して利用不能な状態となると、特定の１のクライアント装置２０が中央サーバの機能を代理することとなる。この処理は以下のようにして行われる。
図８は、サーバ装置１０の異常に対応するためのクライアント装置２０の処理を示したフローチャートである。代理サーバとして機能するのは、ステップＳ１０７の処理を実行するクライアント装置２０のみであり、その他のクライアント装置２０は代理サーバに接続して通常の動作を行う。そこで以下では、まず通常の動作を行うクライアント装置２０の処理について説明し、その後に代理サーバとなるクライアント装置２０の処理を説明する。なお、ここでは、この処理における動作の主体となるクライアント装置のことを特に「クライアント装置２０ａ」と表記することで、その他のクライアント装置と区別する。
【００３７】
まず、クライアント装置２０ａは、中央サーバに対して暗号化情報を要求するコマンドを送信し（ステップＳ１０１）、中央サーバからの応答の有無を判断する（ステップＳ１０２）。このコマンドは暗号化情報を要求すると同時に、サーバ装置１０あるいは代理サーバの動作異常を検知するものでもある。ここで中央サーバからの応答があれば（ステップＳ１０２；ＹＥＳ）、クライアント装置２０ａは中央サーバに動作異常は発生していないと判断し、暗号化情報を受信して中央サーバとの同期を行ってから通常の動作を行う（ステップＳ１０８）。
一方、中央サーバからの応答がなかった場合には（ステップＳ１０２；ＮＯ）、クライアント装置２０ａは例えばアドレスリストＬＳＴ１の第０行を参照するなどして、中央サーバが代理サーバであるか否かを判断する（ステップＳ１０３）。中央サーバが代理サーバであるときに（ステップＳ１０３；ＹＥＳ）、この代理サーバからの応答がないのであれば、サーバ装置１０が利用不能な状態から利用可能な状態へと復帰し、代理サーバとして機能していたクライアント装置２０がサーバモードからクライアントモードへと切り替わった場合である可能性がある。そのため、このときクライアント装置２０ａはサーバ装置１０へとコマンドを送信し、サーバ装置１０からの応答の有無も判断する（ステップＳ１０４）。サーバ装置１０からの応答があれば（ステップＳ１０４；ＹＥＳ）、クライアント装置２０ａはこのサーバ装置１０が利用可能になったと判断し、アドレスリストＬＳＴ１の第０行をサーバ装置１０に変更することによってこのサーバ装置１０を新たに中央サーバとして認識する（ステップＳ１０９）。その後クライアント装置２０ａは、サーバ装置１０を中央サーバとして通常の動作を行う（ステップＳ１１０）。
【００３８】
また、サーバ装置１０からの応答がない場合には（ステップＳ１０４；ＮＯ）、クライアント装置２０ａは自装置に復号化プログラムが記憶されているか否かを判断することにより、自装置が代理サーバとなり得るか否かを判断する（ステップＳ１０５）。自装置に復号化プログラムが記憶されていない場合は（ステップＳ１０５；ＮＯ）、クライアント装置２０ａは新たな中央サーバを検索して特定する。具体的には、クライアント装置２０ａはコマンド要求先をアドレスリストＬＳＴ１の次の行（この場合、第１行）に変更し（ステップＳ１１１）、このクライアント装置２０から代理サーバであることを表す応答が返ってくるか否かを判断する（ステップＳ１１２）。応答がない場合には（ステップＳ１１２；ＮＯ）、クライアント装置２０ａはコマンド要求先をアドレスリストＬＳＴ１の次の行（この場合、第２行）に変更し（ステップＳ１１１）、上述のステップＳ１１２と同様の判断を行うという処理を応答があるまで繰り返す。この処理は、クライアント装置２０ａの記憶しているアドレスリストＬＳＴ１が中央サーバの記憶している最新のアドレスリストＬＳＴ１と異なっている可能性があるために行う処理である。そして、あるクライアント装置２０から代理サーバであることを表す応答があった場合には（ステップＳ１１２；ＹＥＳ）、クライアント装置２０ａはアドレスリストＬＳＴ１の第０行を応答のあったクライアント装置２０に書き換え（ステップＳ１１３）、その後通常の動作を行う（ステップＳ１１４）。
クライアント装置２０ａが通常の動作を行うに至るまでの処理は、以上のようになっている。続いて、クライアント装置２０ａが代理サーバとして機能する場合の処理について説明する。
【００３９】
図８に沿って説明する。まず、上述した通常の場合と同様に、クライアント装置２０ａは中央サーバに対して暗号化情報を要求するコマンドを送信し（ステップＳ１０１）、中央サーバからの応答の有無を判断する（ステップＳ１０２）。この応答がなければ（ステップＳ１０２；ＮＯ）、クライアント装置２０ａは中央サーバが代理サーバであるか否かを判断する（ステップＳ１０３）。中央サーバがサーバ装置１０であるか（ステップＳ１０３；ＮＯ）、または中央サーバが代理サーバであり、かつサーバ装置１０からも応答がない場合には（ステップＳ１０３；ＹＥＳ，ステップＳ１０４；ＮＯ）、クライアント装置２０ａは自装置が復号化プログラムを記憶しているか否かを判断する（ステップＳ１０５）。このクライアント装置２０ａは代理サーバとして機能するので、この判断は肯定的となる（ステップＳ１０５；ＹＥＳ）。すると、このクライアント装置２０ａはクライアントモードからサーバモードへと動作を切り替え（ステップＳ１０６）、中央サーバを代理する処理を実行する（ステップＳ１０７）。
【００４０】
図９は、ステップＳ１０７のサーバ代理処理、すなわちクライアント装置２０ａのサーバモードにおける処理を示したフローチャートである。同図に沿って説明すると、はじめに、サーバモードに切り替わったクライアント装置２０ａ（以下、「代理サーバ」という）は、復号化プログラムを用いて自装置に記憶された暗号化情報を復号化する（ステップＳ２０１）。その後、代理サーバは他のクライアント装置２０からのコマンド送信の有無を監視し続ける（ステップＳ２０２）。コマンドを受信すると（ステップＳ２０２；ＹＥＳ）、代理サーバはコマンドを送信してきたクライアント装置２０への暗号化情報の送信の可否を判断する（ステップＳ２０３）。この判断は、例えばアドレスリストＬＳＴ１を参照するなどして行う。このコマンドの送信元が許可されていないクライアント装置２０であれば（ステップＳ２０３；ＮＯ）、代理サーバはこのクライアント装置２０に対して暗号化情報を送信しない旨の通知を行い、処理を終了させる（ステップＳ２０４）。
【００４１】
一方、コマンドの送信元が許可されているクライアント装置２０であれば（ステップＳ２０３；ＹＥＳ）、このクライアント装置２０がアドレスリストＬＳＴ１の第１行に記述されているか否かを判断する（ステップＳ２０５）。コマンドの送信元がアドレスリストＬＳＴ１の第１行に記述されているクライアント装置２０，すなわち本システムに最も長時間連続的に接続しているクライアント装置２０であれば（ステップＳ２０５；ＹＥＳ）、代理サーバは有効期限の設けられた復号化プログラムをこのクライアント装置２０に送信し（ステップＳ２０６）、続いて暗号化情報をこのクライアント装置２０へと送信する（ステップＳ２０７）。また、コマンドの送信元がその他のクライアント装置２０であれば（ステップＳ２０５；ＮＯ）、復号化プログラムを送信せずに暗号化情報のみをクライアント装置２０へと送信する（ステップＳ２０７）。
以上の処理を行うことにより、サーバ装置１０の代理をしている代理サーバに異常が発生し、この代理サーバも利用不能となった場合でも、図８と同様の処理を実行することによって、他のクライアント装置２０が利用不能となった代理サーバの機能をさらに代理することが可能となっている。
【００４２】
また、代理サーバは上述の処理を行うと同時に、本来の中央サーバであるサーバ装置１０が利用可能な状態に復帰したか否かの判断を行っている。具体的には、代理サーバは自装置をクライアントモードで動作させることを指示するコマンド（以下、「モード切替コマンド」という）をサーバ装置１０から受信したか否かを判断している（ステップＳ２０８）。モード切替コマンドを受信していなければ（ステップＳ２０８；ＮＯ）、代理サーバは上述のステップＳ２０２からの処理を繰り返し実行する一方、モード切替コマンドを受信したら（ステップＳ２０８；ＹＥＳ）、代理サーバは中央サーバにファイル情報データベースＤＢ１，ユーザ情報データベースＤＢ２およびアドレスリストＬＳＴ１を送信し（ステップＳ２０９）、その後中央サーバとしての機能を停止させる（ステップＳ２１０）。そして、代理サーバはサーバモードからクライアントモードへと切り替わり、アドレスリストＬＳＴ１を書き換えて接続先をサーバ装置１０に変更する（ステップＳ２１１）。そして最後に、このクライアント装置２０ａは代理サーバとしての動作を終了した旨のコマンド（以下、「終了コマンド」という）をサーバ装置１０に送信する（ステップＳ２１２）。これにより、クライアント装置２０ａの代理サーバとしての処理が終了し、以降はその他のクライアント装置２０と同様の動作を行う。
【００４３】
（２−ｃ）サーバ装置が利用可能となり、通常の状態に戻るときの動作
図１０は、サーバ装置１０が利用不能の状態から利用可能な状態へと復帰し、再び中央サーバとして機能するまでの処理を示したフローチャートである。以下、同図に沿って説明する。
利用可能な状態となったサーバ装置１０は、アドレスリストＬＳＴ１を参照して上述したモード切替コマンドを送信する（ステップＳ３０１）。なお、サーバ装置１０は、この時点ではどのクライアント装置２０が代理サーバであるかを認識できない。なぜならば、サーバ装置１０が利用不能であった状態が長時間に渡った場合などは、代理サーバは当初代理サーバとして機能していたクライアント装置２０とは異なるクライアント装置２０となっている可能性もあるからである。そのため、はじめにサーバ装置１０はアドレスリストＬＳＴ１の第１行に記述されているクライアント装置２０に対してモード切替コマンドを送信し、この応答がなければ（ステップＳ３０２；ＮＯ）、同様のモード切替コマンドをアドレスリストＬＳＴ１の次の行に記述されているクライアント装置２０に送信する、という処理を繰り返すことにより、代理サーバの特定を行っている。
モード切替コマンドに対する応答を受信したら（ステップＳ３０２；ＹＥＳ）、サーバ装置１０はファイル情報データベースＤＢ１，ユーザ情報データベースＤＢ２およびアドレスリストＬＳＴ１を代理サーバから受信し、更新する（ステップＳ３０３）。その後サーバ装置１０は、代理サーバとして機能していたクライアント装置２０ａから終了コマンドが送信されたか否かを判断し（ステップＳ３０４）、これを受信したら（ステップＳ３０４；ＹＥＳ）、中央サーバとしての機能を開始し、各種サービスを実行する（ステップＳ３０５）。
【００４４】
以上説明されたように、本実施形態のサービス提供システム１は、中央サーバであるサーバ装置１０に異常が発生しても、ある特定のクライアント装置２０が代理サーバとして機能することができるため、耐障害性の高いサービスを提供することが可能となる。また、サービスの提供に必要なファイル情報データベースＤＢ１やユーザ情報データベースＤＢ２の参照は暗号化によって制限されており、この制限を解除するための復号化プログラムを有するクライアント装置２０しか参照することができないので、従来よりも安全なサービスを提供することが可能となる。
また、復号化プログラムに有効期限が設けられていることや、ユーザ登録をサーバ装置１０のみで可能としたことも、本システムの安全性の向上に寄与している。
【００４５】
（３）変形例
なお、本発明は上述した実施の形態に限定されるものではなく、種々の変形が可能である。以下にその例をいくつか示す。
まず、上述の実施形態においては、サービス提供システム１において提供されるサービスはファイル共有サービスであるとして説明したが、本発明はもちろんファイル共有サービス以外のサービスにも適用可能である。本発明は、サーバ装置に接続された複数のクライアント装置に提供される種々のサービスに適用可能であり、そのサービスの種類を問わない。また、クライアント装置がやりとりするファイルについても、必ずしもクライアント装置どうしが記憶しているものに限定されない。例えば、クライアント装置はシステム内に備えられたファイルサーバからファイルを取得するものであり、サーバ装置はクライアント装置からファイルの問い合わせを受け、この問い合わせに対してこのファイルサーバ内のファイルアドレスを通知するような仕組みのサービスにおいても、本発明はもちろん適用可能である。
【００４６】
また、上述の実施形態においては、クライアント装置２０が代理サーバの機能を実現するためのサーバプログラムＰＲＧ３をあらかじめ記憶していると説明したが、サーバプログラムＰＲＧ３を暗号化情報に含めて送信してもよい。このようにすれば、復号化がされなければサーバプログラムＰＲＧ３そのものの実行ができないようにすることができるので、より安全性を高めることが可能である。
【００４７】
また、上述の実施形態においては、サーバ装置１０は連続して接続されている時間が最も長いクライアント装置２０を代理サーバとして特定していたが、これでは全てのクライアント装置２０に代理サーバとなり得る可能性がある。そこで、代理サーバとなる権限を決められた一部のクライアント装置２０のみに付与し、その他のクライアント装置２０には代理サーバとして機能することができないようにしてもよい。このようにすれば、悪意あるユーザによる代理サーバの不正利用を防ぐことが可能となる。このような仕組みは、例えばアドレスリストＬＳＴ１に代理サーバの実行権限を示すフラグ情報を含むことによって実現できる。
【００４８】
また、上述の実施形態においては、サーバ装置１０から送信される情報の参照を制限するための手段として暗号化・復号化を用いていたが、このような態様に限定されるものではない。例えば、必要な情報にｚｉｐ形式の圧縮処理を施し、この圧縮データの解凍にパスワード制限を設けることによっても、情報の参照を制限することが可能となる。この場合、この圧縮データを解凍するためのパスワードを記述したファイルが、上述の実施形態の「復号化プログラム」に相当する。
【００４９】
また、上述の実施形態においては、代理サーバとして機能するクライアント装置２０は、サーバ装置１０が有する機能のうち、ユーザ登録機能と復号化プログラム生成機能とを除いた諸機能を実現するものとして説明した。これは、悪意あるユーザによってユーザ登録や復号化プログラムの生成が無制限に行われることを防ぐことを目的としている。しかしながら、これらの機能の実行は必ずしも制限されるものではなく、代理サーバにサーバ装置１０と同等の機能を持たせてもよい。このようにすれば、代理サーバによるサービス提供時においても、ユーザの利便性を損なわないようにすることが可能となる。
あるいは、より高い安全性を求めるのであれば、代理サーバが実行することのできる機能をさらに減らし、代理サーバにより提供されるサービスをさらに制限してもよい。
【００５０】
また、上述の実施形態のサーバ装置やクライアント装置は、いわゆるサーバやパーソナルコンピュータ等に限定されるものではなく、例えば携帯電話機やＰＤＡ（Personal Digital Assistant）等であってもよい。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施形態に係るサービス提供システムを概念的に示した図である。
【図２】同実施形態におけるサーバ装置のハードウェア構成を示したブロック図である。
【図３】同実施形態におけるアドレスリストの一例を示した図である。
【図４】同実施形態におけるファイル情報データベースの一例を示した図である。
【図５】同実施形態におけるユーザ情報データベースの一例を示した図である。
【図６】同実施形態におけるサーバ装置の諸機能を示した機能ブロック図である。
【図７】同実施形態におけるクライアント装置のハードウェア構成を示したブロック図である。
【図８】同実施形態において、サーバ装置の異常に対応するためのクライアント装置の処理を示したフローチャートである。
【図９】同実施形態におけるサーバ代理処理を示したフローチャートである。
【図１０】同実施形態において、サーバ装置１０が再び中央サーバとして機能するまでの処理を示したフローチャートである。
【符号の説明】
【００５２】
１…サービス提供システム、１０…サーバ装置、２０，２０ａ，２０ｂ，２０ｃ…クライアント装置、３０…ネットワーク、１１，２１…制御部、１２，２２…記憶部、１３，２３…表示部、１４，２４…操作部、１５，２５…通信部。
【図１】
2006202121.tif 000003
【図２】
2006202121.tif 000004
【図３】
2006202121.tif 000005
【図４】
2006202121.tif 000006
【図５】
2006202121.tif 000007
【図６】
2006202121.tif 000008
【図７】
2006202121.tif 000009
【図８】
2006202121.tif 000010
【図９】
2006202121.tif 000011
【図１０】
2006202121.tif 000012