耐障害性サービス提供システム、サーバ装置およびクライアント装置
【課題】 安全かつ耐障害性の高いサービスを提供する。
【解決手段】 サーバ装置10は、自装置に記憶されているユーザ情報やファイル情報を暗号化情報としてクライアント装置20a,20b,20cに送信する。また、サーバ装置10は、決められたアルゴリズムに基づいてあるクライアント装置20aを特定し、このクライアント装置20aに対して暗号化情報の参照制限を解除するための復号化プログラムを送信する。サーバ装置10に動作異常が発生し、サーバ装置10がクライアント装置20に対してサービスを提供することができなくなったときには、復号化プログラムを受信しているクライアント装置20aが暗号化情報を復号化し、この情報を用いて、サーバ装置10の機能の一部を代理して実行する。
【解決手段】 サーバ装置10は、自装置に記憶されているユーザ情報やファイル情報を暗号化情報としてクライアント装置20a,20b,20cに送信する。また、サーバ装置10は、決められたアルゴリズムに基づいてあるクライアント装置20aを特定し、このクライアント装置20aに対して暗号化情報の参照制限を解除するための復号化プログラムを送信する。サーバ装置10に動作異常が発生し、サーバ装置10がクライアント装置20に対してサービスを提供することができなくなったときには、復号化プログラムを受信しているクライアント装置20aが暗号化情報を復号化し、この情報を用いて、サーバ装置10の機能の一部を代理して実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、安全かつ耐障害性の高いサービスを提供するための技術に関する。
【背景技術】
【0002】
多数のユーザ(クライアント装置)間で各ユーザの所持するファイルを直接やりとりする、いわゆるファイル共有サービスが普及してきている。一般に、このファイル共有サービスは「中央サーバ型」と「純粋型」に大別される。
中央サーバ型とは、各ユーザの情報や所有するファイルのリストを中央サーバと呼ばれるサーバ装置が管理し、ユーザは中央サーバから提供される情報に基づいて他のユーザとファイルのやりとりを行うものである。このとき、中央サーバはファイルを検索するためのインターフェースを提供するだけであり、ファイルのやりとり自体はユーザ同士が直接行う。
これに対して、純粋型とは、取得したいファイルの情報をバケツリレー式に各ユーザへと送信していき、目的とするファイルを所持するユーザを見つけたら、そのユーザと直接ファイルのやりとりを行うものである。純粋型は中央サーバのようなサーバ装置を必要としないが、全てのクライアント装置はクライアント装置であると同時にサーバ装置でもあると言える。特許文献1には、この純粋型のファイル共有サービスの一例が示されている。
【0003】
これら2種類のファイル共有サービスはそれぞれに利点を有しているものの、それぞれに欠点も有している。
まず、中央サーバ型のファイル共有サービスは、ファイル検索自体はクライアント装置と中央サーバの間のみで行われるため、ネットワークに対する負担は少なくて済む。また、ファイルのやりとりに必ず中央サーバが関与するため、違法なファイル共有の監視も行うことができる。しかし、何らかの動作異常が発生して中央サーバが利用不能となってしまうと、サービス全体が停止してしまうという問題がある。
一方、純粋型のファイル共有サービスは、あるクライアント装置が利用不能になってもサービス全体が停止してしまうことがなく、耐障害性に優れていると言える。しかし、クライアント装置の増加につれてネットワークのトラフィックも加速度的に増加し、検索速度の低下やネットワークの障害を引き起こすこととなる。加えて、純粋型のファイル共有サービスでは、ユーザ間のファイルのやりとりを監視および規制することが極めて困難であり、音楽ファイルや映像ファイルを違法にコピー・配布されるおそれがある。
【0004】
【特許文献1】特開2002−324004号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
以上のように、従来の2種類のファイル共有サービスは二律背反の関係にあり、違法行為に対する安全性を確保しつつ高い耐障害性を有することは困難であった。
本発明は上述の事情に鑑みてなされたものであり、その目的は、安全かつ耐障害性の高いサービスを提供することにある。
【課題を解決するための手段】
【0006】
上述の目的を達成するために、本発明は、サーバ装置と、当該サーバ装置とネットワークを介して接続された複数のクライアント装置とを備え、前記サーバ装置は、サービスを提供するために必要なサービス情報を記憶する記憶手段と、前記記憶手段によって記憶されているサービス情報に基づいて、複数の前記クライアント装置にサービスを提供するサービス提供手段と、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段とを備え、前記クライアント装置は、前記サーバ装置によって送信されてくる前記制限情報および前記解除データを記憶する記憶手段と、前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、前記サーバ装置における動作異常の発生を検知する検知手段と、前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サーバ装置の付随サービス提供手段が実行する前記制限処理、前記送信処理および前記代理サーバ特定処理を実行するサービス代理手段とを備える耐障害性サービス提供システムを提供する。
この耐障害性サービス提供システムによれば、サーバ装置に動作異常が発生したときに、代理サーバ特定処理により特定されたクライアント装置がサーバ装置の提供していたサービスを代理して実行することが可能となる。
【0007】
また、本発明の耐障害性サービス提供システムは、より好適な態様として、前記サーバ装置が、前記動作異常が解消され、前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置による前記サービスの提供を終了させ、自装置によって当該サービスの提供を開始する。
さらに好適には、前記サーバ装置は、前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置から前記サービス情報を受信してから、当該クライアント装置による前記サービスの提供を終了させる。
このようにすれば、代理サーバとして機能しているクライアント装置は、サーバ装置の動作異常が解消され次第サービスの提供を終了させることができるので、このクライアント装置の不都合を低減させることが可能となる。また、代理サーバによるサービスを終了させる前に代理サーバからサービス情報を受信することにより、サーバ装置はサービス情報の同期を行うことが可能となる。
【0008】
また、本発明は、サービスを提供するために必要なサービス情報を記憶する記憶手段と、前記記憶手段によって記憶されているサービス情報に基づいて、ネットワークを介して接続された複数のクライアント装置にサービスを提供するサービス提供手段と、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を代理サーバとして特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段とを備えるサーバ装置としても特定される。
【0009】
このサーバ装置は、より好適な態様として、前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる代理サービス終了手段と、前記代理サービス終了手段が前記クライアント装置によるサービスを終了させた場合に、自装置によって前記サービスの提供を開始するサービス開始手段とを備える。
さらに好適には、前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる前に、当該クライアント装置から前記サービス情報を受信するサービス情報受信手段を備える。
このようにすれば、サーバ装置の動作異常が解消され次第、代理サーバとして機能しているクライアント装置はサービスの提供を終了させることができ、また、サーバ装置はサービス情報の同期を行うことが可能となる。
【0010】
また、このサーバ装置は、より好適な態様として、前記付随サービス提供手段が、前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する。
さらに好適には、前記サービス情報が前記計測結果を含む。
このようにすれば、解除データを送信するときに、ネットワークにほとんど接続していないクライアント装置等を除外することができる。その結果、代理サーバとしてより信頼性の高いクライアント装置を特定することが可能となる。
【0011】
また、このサーバ装置は、より好適な態様として、前記付随サービス提供手段が、前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する。
このようにすれば、解除データの利用が制限されるので、より安全性の高いサービスを提供することが可能となる。
【0012】
なお、本発明は、サービス情報の少なくとも一部の参照が制限された制限情報と、前記制限情報の参照制限を解除するための解除データとを記憶する記憶手段と、前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、ネットワークを介して接続されたサーバ装置における動作異常の発生を検知する検知手段と、前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行するサービス実行手段とを備えるクライアント装置としても特定される。
【0013】
このクライアント装置は、より好適な態様として、前記検知手段が、さらに、前記サービス代理手段を実行しているクライアント装置における動作異常の発生を検知する。
このようにすれば、サーバ装置の提供していたサービスを代理して実行するクライアント装置に動作異常が発生した場合でも、また別のクライアント装置に当該サービスを代理して実行させることが可能となる。
【0014】
また、このクライアント装置は、より好適な態様として、前記サービス実行手段が、前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する。
さらに好適には、前記サービス情報が前記計測結果を含む。
このようにすれば、解除データを送信するときに、ネットワークにほとんど接続していないクライアント装置等を除外することができる。その結果、代理サーバとしてより信頼性の高いクライアント装置を特定することが可能となる。
【0015】
また、このクライアント装置は、より好適な態様として、前記サービス実行手段が、前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する。
このようにすれば、解除データの利用が制限されるので、より安全性の高いサービスを提供することが可能となる。
【発明の効果】
【0016】
以上のように、本発明によれば、安全かつ耐障害性の高いサービスを提供することが可能となる。
【発明を実施するための最良の形態】
【0017】
(1)構成
(1−a)システム全体構成
図1は、本発明の一実施形態に係るサービス提供システム1を概念的に示した図である。このサービス提供システム1は、サーバ装置10と、クライアント装置20a,20bおよび20cと、ネットワーク30とを備えている。本システムはネットワーク30の規模や有線・無線の別を問わず、ここでは一例としてイントラネットであるとするが、もちろんインターネット等の他のネットワークであってもよい。また、同図では3台のクライアント装置20a,20bおよび20cのみを示したが、実際にはより多数のクライアント装置を備えるものであってもよい。複数のクライアント装置のそれぞれを特に区別する必要がない場合には、以下では「クライアント装置20」と総称する。
なお、サーバ装置10とクライアント装置20のそれぞれには各装置を操作する操作者が存在するが、これらの混同を避けるために、以下ではサーバ装置10の操作者を「管理者」、クライアント装置20の操作者を「ユーザ」という。
続いて、サーバ装置10とクライアント装置20の構成についてそれぞれ説明する。
【0018】
(1−b)サーバ装置の構成
図2は、サーバ装置10のハードウェア構成を示したブロック図である。同図に示されているように、サーバ装置10は、制御部11と、記憶部12と、表示部13と、操作部14と、通信部15とを備えたコンピュータである。制御部11は図示せぬCPU(Central Processing Unit)やRAM(Random Access Memory)等を備えた演算装置であり、後述するサーバプログラムPRG1を実行することにより中央サーバとしての機能を実現する。記憶部12は例えばHDD(Hard Disk Drive)等の大容量の記憶装置であり、クライアント装置20に対する各種機能を実現するためのサーバプログラムPRG1と、本システムに接続されている各クライアント装置20の一覧であるアドレスリストLST1と、各クライアント装置20に記憶されているファイルに関する情報の集合であるファイル情報データベースDB1と、各クライアント装置20を操作するユーザに関する情報の集合であるユーザ情報データベースDB2とを記憶している。表示部13は例えば液晶ディスプレイ等の表示装置であり、サーバ装置10の管理者に対して各種情報を表示する。操作部14は例えばマウスやキーボード等の入力装置であり、管理者からの入力を受け付ける。通信部15はサーバ装置10がネットワーク30を介してクライアント装置20とデータの授受を行うためのインターフェース装置である。
【0019】
ここで、記憶部12に記憶された各種情報の内容について説明する。
図3は、アドレスリストLST1の一例を示した図である。このアドレスリストLST1は、「クライアントID」と「接続開始時間」の2つの項目を含んだ情報の集合であり、各行の情報が1台のクライアント装置20(またはサーバ装置10)に対応している。なお、「行番号」の項目は説明の便宜上付与されたものであり、実際のアドレスリストLST1には含まれていなくともよい。これは、以下のファイル情報データベースDB1やユーザ情報データベースDB2についても同様である。
「クライアントID」とは、各クライアント装置20を一意的に特定するためのデータが記述された項目である。この「クライアントID」は、ここでは一例としてイントラネットにおけるIP(Internet Protocol)アドレスとするが、用いられるネットワークにおいて各クライアント装置20を一意的に特定可能な識別子であれば、記述されるデータの形式を問わない。また、「接続開始時間」とは、各行で表されるクライアント装置20が本システムに接続を開始した時間が、例えば「年.月.日/時.分.秒」という形式で記述された項目である。
すなわち、第1行を例にこのアドレスリストLST1の内容を説明すると、第1行に記述されたクライアント装置20は、そのクライアントIDが「10.0.1.1」であり、本システムに「2004年12月1日12時34分56秒」から接続を開始したことを意味している。
【0020】
アドレスリストLST1には、このような情報が本システムに接続されているクライアント装置20の全てについて記述されており、連続して接続されている時間の長いクライアント装置20ほど上位に記述されている。すなわち、サーバ装置10は各クライアント装置20の接続時間を計測しており、この計測結果をアドレスリストLST1として記憶している。そのため、新たに接続を開始したクライアント装置20や、本システムとの接続を切断したクライアント装置20を検知したときには、サーバ装置10はこのアドレスリストLST1を随時更新する。
なお、アドレスリストLST1の第0行には、「中央サーバ」のクライアントIDが記述されている。この行では、「接続開始時間」の値は特に定めない。アドレスリストLST1の第0行は、クライアント装置20が上述の中央サーバを特定するための情報であり、ここでは中央サーバはサーバ装置10である。中央サーバについての説明は後述する。
【0021】
図4は、ファイル情報データベースDB1の一例を示した図である。このファイル情報データベースDB1は、「ファイル名」と「クライアント名」と「ファイルアドレス」の3つの項目を含んだ情報の集合であり、各行の情報が1つのファイルに対応している。
「ファイル名」とは、ユーザが操作するクライアント装置20に記憶されているファイルの名前が記述された項目である。この「ファイル名」は、必ずしもファイルそのものの名前を用いる必要はなく、例えばMP3フォーマットにおけるID3タグのように、ファイル内に直接埋め込まれた情報を用いてファイルの内容を特定してもよい。
「クライアント名」とは、各行で表されるファイルを記憶しているクライアント装置20を特定する識別子が記述された項目であり、例えばアドレスリストLST1の「クライアントID」と同様のデータが記述されている。
「ファイルアドレス」とは、各行で表されるファイルが実際に記憶されている記憶領域を、クライアント装置20内部において定義されているアドレスで記述した項目である。
すなわち、第1行を例にこのファイル情報データベースDB1の内容を説明すると、ファイル名「abc」で表されるファイルは、クライアント名「10.0.1.1」で表されるクライアント装置20内部に記憶された、ファイルアドレス「D:\Music\abc.mp3」によって特定されるファイルであることを意味している。
【0022】
図5は、ユーザ情報データベースDB2の一例を示した図である。このユーザ情報データベースDB2は、「ユーザ名」と「パスワード」と「ユーザ権限情報」の3つの項目を含んだ情報の集合であり、各行の情報が1人のユーザ(のクライアント装置20)に対応している。
「ユーザ名」および「パスワード」とは、本システムの利用に際してあらかじめ登録されたユーザ認証のための情報が記述された項目である。サーバ装置10は、本システムへの参加(ログイン)を要求するクライアント装置20に対して「ユーザ名」と「パスワード」の入力を要求し、これらの対がユーザ情報データベースDB2に登録されている情報と一致した場合にのみ、このクライアント装置20の参加を許可する。
「ユーザ権限情報」とは、各行で表されるユーザのファイルアクセス権限について記述された項目であり、ここでは当該ユーザがアクセス不可能なファイルやクライアント装置20の「ファイル名」や「クライアント名」が記述されている。
すなわち、第1行を例にこのユーザ情報データベースDB2の内容を説明すると、ユーザ名「xyz」のユーザのパスワードは「xyz0123」であり、このユーザxyzは、クライアント名「10.0.2.1」のクライアント装置20が所有する全てのファイルおよびファイル名「aab」を除いた全てのファイルにアクセス可能であることを意味している。
【0023】
続いて、サーバプログラムPRG1を実行することによって実現される諸機能について説明する。
図6は、サーバ装置10の制御部11がサーバプログラムPRG1を実行することによって実現される諸機能を示した機能ブロック図である。ここにおいて、図中の矢印はデータの流れを表している。同図に示されているように、制御部11はサーバプログラムPRG1を実行することによって、ファイル登録機能111と、ファイル検索機能112と、ユーザ登録機能113と、ユーザ認証機能114と、リスト更新機能115と、暗号化機能116と、復号化プログラム生成機能117と、クライアント特定機能118と、データ送信機能119とを実現する。以下では、これらの機能の概要を説明する。
【0024】
ファイル登録機能111は、ユーザが自身のクライアント装置20に記憶されているファイルを登録する機能である。ユーザは、新たなファイルを取得してこれをクライアント装置20に記憶したときには、サーバ装置10にそのファイルの「ファイル名」と「ファイルアドレス」とを送信する。サーバ装置10の制御部11は、受信したこのデータに基づいてファイル情報データベースDB1を更新する。
ファイル検索機能112は、ユーザが取得しようとするファイル、すなわち自身のクライアント装置20に記憶されていないファイルを検索し、当該ファイルを記憶している別のクライアント装置20から取得するための機能である。ユーザは、例えば取得しようとするファイルの「ファイル名」をクライアント装置20に入力し、これをサーバ装置10に送信する。サーバ装置10の制御部11は、受信したこのデータに基づいてファイル情報データベースDB1内を検索し、合致する情報があればクライアント装置20に通知する。
【0025】
ユーザ登録機能113は、本システムを新たに利用するユーザ(新規ユーザ)を登録したり、既に登録されているユーザのユーザ情報(ユーザ名、パスワード、ユーザ権限情報)を変更して再登録したりする機能である。サーバ装置10の制御部11は、新規ユーザに関するユーザ情報を新たにユーザ情報データベースDB2に登録したり、あるいは既に登録されているユーザのユーザ情報をユーザ情報データベースDB2から検索して、これを書き換えたりする。本実施形態においては、ユーザ登録機能113は管理者のみによって用いられる機能(すなわち、サーバ装置10以外では用いられない機能)とするが、もちろんクライアント装置20のユーザ自身によってユーザ情報の変更が行えるものとしてもよい。ユーザ登録の実行を管理者のみに制限するのは、セキュリティ上の理由である。
ユーザ認証機能114は、サーバ装置10が本システムにログインを試みてきたクライアント装置20の接続の可否を行う機能である。本システムへのログインに際して、サーバ装置10はクライアント装置20に対して「ユーザ名」と「パスワード」の入力を要求する。サーバ装置は入力された「ユーザ名」と「パスワード」の対がユーザ情報データベースDB2に存在するか否かを判断し、この判断結果が肯定的であった場合に限り本システムへのログインを許可する。
【0026】
リスト更新機能115は、アドレスリストLST1の更新を行う機能である。上述したように、アドレスリストLST1には本システムに接続されている全てのクライアント装置20が記述されており、連続して接続されている時間の長いクライアント装置20ほど上位に記述されている。そのため、サーバ装置10は、本システムに新たにログインしたクライアント装置20や、本システムとの接続を切断(ログアウト)したクライアント装置20を検知した場合には、アドレスリストLST1の書き換えを行う。具体的には、クライアント装置20がログインしてきた場合には、サーバ装置10の制御部11はアドレスリストLST1の最下位にこのクライアント装置20の「クライアントID」を追加し、ログインした時刻を取得してこれを「接続開始時間」に書き込む。また、クライアント装置20がログアウトした場合には、サーバ装置10の制御部11はアドレスリストLST1からこのクライアント装置20の「クライアントID」および「接続開始時間」を削除し、このクライアント装置20より下位のクライアント装置20を1ずつ繰り上げる。
【0027】
暗号化機能116は、ファイル情報データベースDB1とユーザ情報データベースDB2の参照を制限するために、これらを暗号化した情報を生成する機能である。暗号化の手法は特に限定されず、周知の種々の手法を用いてよい。また、このときサーバ装置10の制御部11はアドレスリストLST1も参照するが、このアドレスリストLST1については暗号化を行わない。以下では、暗号化されたファイル情報データベースDB1とユーザ情報データベースDB2および暗号化されていないアドレスリストLST1を総称して「暗号化情報」という。
復号化プログラム生成機能117は、上述の暗号化機能116を用いて生成された暗号化情報の参照制限を解除するためのデータとして、この暗号化情報を復号化するプログラム(以下、「復号化プログラム」という)を生成する機能である。この復号化プログラムは期限付きで実行可能となっており、所定の日時(有効期限)を過ぎると暗号化情報を復号化できないようになっている。
【0028】
クライアント特定機能118は、上述の復号化プログラムを送信すべきクライアント装置20を特定する機能である。サーバ装置10の制御部11は、所定のアルゴリズムに基づいて送信すべき1のクライアント装置20を特定するが、本実施形態においては、アドレスリストLST1を参照して、このリストの第1行に記述されているクライアント装置20に対して復号化プログラムを送信する。すなわち制御部11は、本システムに最も長時間連続的に接続している1のクライアント装置20に対して復号化プログラムを送信する。
データ送信機能119は、上述の暗号化情報と復号化プログラムとをクライアント装置20に送信する機能である。サーバ装置10の制御部11はアドレスリストLST1を参照し、このリストに記述されている全てのクライアント装置20に対して暗号化情報を送信し、上述のクライアント特定機能118によって特定された1のクライアント装置20のみに対して復号化プログラムを送信する。
【0029】
ここで、上述した「中央サーバ」について説明する。
中央サーバとは、本システムにおいてサーバの機能を果たすコンピュータのことであり、上述のサーバ装置10と、サーバ装置10のクライアント特定機能118により特定されるクライアント装置20とが中央サーバとなり得る。
ここで「代理サーバ」とは、本システムにおいてファイル登録、ファイル検索、ユーザ認証、リスト更新、暗号化、クライアント特定およびデータ送信の各機能を実現するクライアント装置20のことである。つまり、代理サーバは、上述のサーバプログラムPRG1によって実現される機能からユーザ登録機能と復号化プログラム生成機能とを除いた諸機能を実現するクライアント装置20である。以下では、これらの機能のうち、ファイル登録、ファイル検索およびユーザ認証の各機能のことを「基本サービス」と呼び、リスト更新、暗号化、クライアント特定およびデータ送信の各機能のことを「付随サービス」と呼ぶ。本システムにおいて、「基本サービス」とはファイル共有サービスに直接的に関連した機能のことであり、「付随サービス」とは中央サーバの機能を特定のクライアント装置20に代理させることを実現するための機能のことを指す。
通常、中央サーバの機能はサーバ装置10が果たしているが、何らかの異常が発生してサーバ装置10が利用不能となる場合がある。本発明においては、このような場合にある特定のクライアント装置20が上述の中央サーバの機能を代理することを特徴としている。そこで以下では、このような機能を実現するためのクライアント装置20の構成について説明する。
【0030】
(1−c)クライアント装置の構成
図7は、クライアント装置20のハードウェア構成を示したブロック図である。同図に示されているように、クライアント装置20は、制御部21と、記憶部22と、表示部23と、操作部24と、通信部25とを備えたコンピュータである。これらの各部はサーバ装置10の制御部11〜通信部15と同様の構成要素となっており、異なるのは記憶部内部で記憶しているデータの内容だけである。よって、ここでは上述の各部の説明は省略し、記憶部22の記憶内容について説明する。
記憶部22は、クライアント装置20としての機能を実現するためのクライアントプログラムPRG2と、代理サーバの機能を実現するためのサーバプログラムPRG3と、他のユーザと共有するための複数のファイルFIL1とを記憶している。また、記憶部22には、サーバ装置10から送信された暗号化情報と復号化プログラムとを記憶する記憶領域が設けられている。
【0031】
クライアントプログラムPRG2は、クライアント装置20がサーバ装置10に接続して、上述したユーザ認証やファイル登録、あるいはファイル検索を行う機能と、このファイル検索の結果に応じて他のクライアント装置20からファイルを取得するための機能とを実現するためのプログラムである。また、クライアントプログラムPRG2には、クライアント装置20が中央サーバを特定し、上述の暗号化情報を取得するためのコマンド送信機能も含まれている。
サーバプログラムPRG3は、ファイル登録機能と、ファイル検索機能と、ユーザ認証機能と、リスト更新機能と、暗号化機能と、クライアント特定機能と、データ送信機能とを実現するためのプログラムである。すなわち、サーバプログラムPRG3はクライアント装置20を代理サーバとして機能させるためのプログラムであり、サーバプログラムPRG1からユーザ登録機能と復号化プログラム生成機能とを除外したプログラムに等しい。
【0032】
クライアントプログラムPRG2とサーバプログラムPRG3は択一的に実行されるものである。以下においては、クライアント装置20がクライアントプログラムPRG2を実行している状態のことを「クライアントモード」といい、サーバプログラムPRG3を実行している状態のことを「サーバモード」という。
なお、このサーバモードは、クライアント装置20が暗号化情報と復号化プログラムとを取得し、暗号化情報を復号化可能な状態となって初めて実行され得るものである。なぜなら、暗号化情報を復号化し、ファイル情報データベースDB1,ユーザ情報データベースDB2およびアドレスリストLST1が参照可能な状態にならなければ、クライアント装置20は上述したサービスを実行することは不可能だからである。
【0033】
(2)動作
ここからは、本システムにおけるサーバ装置10とクライアント装置20の具体的な動作について説明する。
本システムにおける基本的な動作は、中央サーバであるサーバ装置10が複数のクライアント装置20に対してファイル検索等の基本サービスを提供し、この検索結果に基づいて、クライアント装置20同士は互いが記憶しているファイルを交換するものである。これらの動作は周知であり、また、図6を用いてその概要は既に説明したため、ここでの詳細な説明は省略する。
【0034】
本発明は、中央サーバが何らかの問題により利用不能となった状態、すなわち動作異常が生じた状態での処理に特徴を有するものである。本システムにおいては、中央サーバとして機能しているサーバ装置10に動作異常が発生して利用不能になったとき、特定のクライアント装置20が「クライアントモード」から「サーバモード」に切り替わり、中央サーバの機能を代理して実行する。その後、サーバ装置10が利用可能な状態となると、それまで中央サーバとして機能していたクライアント装置20がもとの「クライアントモード」に切り替わり、通常の状態に復帰する。
これらの動作を実現するための機能が、上述の付随サービスである。以下においては、この付随サービスに係るサーバ装置10およびクライアント装置20の具体的な処理について説明する。なお、以下では、サーバ装置10が中央サーバとして機能している状態を「通常」の状態、サーバ装置10が利用不能である状態を「異常」の状態であると定義する。
【0035】
(2−a)通常の状態におけるサーバ装置およびクライアント装置の動作
はじめに、通常の状態におけるサーバ装置10およびクライアント装置20の動作について説明する。サーバ装置10は、上述したファイル検索等の基本サービスに加えて、異常の発生に備えるために、基本サービスの提供に必要な情報をクライアント装置20にあらかじめ送信しておく。この情報とは、上述した暗号化情報と復号化プログラムのことである。これらの情報を送信する処理は、クライアント装置20からの要求に応じて行われる。
各クライアント装置20は、中央サーバ(この場合、サーバ装置10)に対して一定の周期で暗号化情報を要求するコマンドを送信している。このコマンドを受信すると、中央サーバであるサーバ装置10は暗号化情報を送信する。このとき、サーバ装置10はアドレスリストLST1を参照し、コマンドを送信してきたクライアント装置20がアドレスリストLST1の第1行に記述されているクライアント装置20であるか否かを判断する。この判断は、例えばコマンド送信元のIPアドレスとアドレスリストLST1の第1行の「クライアントID」とを比較することにより行われる。この判断が肯定的である場合、すなわちコマンドを送信してきたクライアント装置20がアドレスリストLST1の第1行に記述されているクライアント装置20である場合には、サーバ装置10は復号化プログラムを暗号化情報と共に送信する。暗号化情報を受信したクライアント装置20は、それ以前に受信し記憶していた暗号化情報を破棄し、新たな暗号化情報を記憶部12に記憶することで、サーバ装置10内部の情報と同期を行う。
【0036】
(2−b)異常が発生したときのクライアント装置の動作
サーバ装置10とクライアント装置20の間では、上述のような動作が繰り返し行われる。そして、あるタイミングでサーバ装置10に異常が発生して利用不能な状態となると、特定の1のクライアント装置20が中央サーバの機能を代理することとなる。この処理は以下のようにして行われる。
図8は、サーバ装置10の異常に対応するためのクライアント装置20の処理を示したフローチャートである。代理サーバとして機能するのは、ステップS107の処理を実行するクライアント装置20のみであり、その他のクライアント装置20は代理サーバに接続して通常の動作を行う。そこで以下では、まず通常の動作を行うクライアント装置20の処理について説明し、その後に代理サーバとなるクライアント装置20の処理を説明する。なお、ここでは、この処理における動作の主体となるクライアント装置のことを特に「クライアント装置20a」と表記することで、その他のクライアント装置と区別する。
【0037】
まず、クライアント装置20aは、中央サーバに対して暗号化情報を要求するコマンドを送信し(ステップS101)、中央サーバからの応答の有無を判断する(ステップS102)。このコマンドは暗号化情報を要求すると同時に、サーバ装置10あるいは代理サーバの動作異常を検知するものでもある。ここで中央サーバからの応答があれば(ステップS102;YES)、クライアント装置20aは中央サーバに動作異常は発生していないと判断し、暗号化情報を受信して中央サーバとの同期を行ってから通常の動作を行う(ステップS108)。
一方、中央サーバからの応答がなかった場合には(ステップS102;NO)、クライアント装置20aは例えばアドレスリストLST1の第0行を参照するなどして、中央サーバが代理サーバであるか否かを判断する(ステップS103)。中央サーバが代理サーバであるときに(ステップS103;YES)、この代理サーバからの応答がないのであれば、サーバ装置10が利用不能な状態から利用可能な状態へと復帰し、代理サーバとして機能していたクライアント装置20がサーバモードからクライアントモードへと切り替わった場合である可能性がある。そのため、このときクライアント装置20aはサーバ装置10へとコマンドを送信し、サーバ装置10からの応答の有無も判断する(ステップS104)。サーバ装置10からの応答があれば(ステップS104;YES)、クライアント装置20aはこのサーバ装置10が利用可能になったと判断し、アドレスリストLST1の第0行をサーバ装置10に変更することによってこのサーバ装置10を新たに中央サーバとして認識する(ステップS109)。その後クライアント装置20aは、サーバ装置10を中央サーバとして通常の動作を行う(ステップS110)。
【0038】
また、サーバ装置10からの応答がない場合には(ステップS104;NO)、クライアント装置20aは自装置に復号化プログラムが記憶されているか否かを判断することにより、自装置が代理サーバとなり得るか否かを判断する(ステップS105)。自装置に復号化プログラムが記憶されていない場合は(ステップS105;NO)、クライアント装置20aは新たな中央サーバを検索して特定する。具体的には、クライアント装置20aはコマンド要求先をアドレスリストLST1の次の行(この場合、第1行)に変更し(ステップS111)、このクライアント装置20から代理サーバであることを表す応答が返ってくるか否かを判断する(ステップS112)。応答がない場合には(ステップS112;NO)、クライアント装置20aはコマンド要求先をアドレスリストLST1の次の行(この場合、第2行)に変更し(ステップS111)、上述のステップS112と同様の判断を行うという処理を応答があるまで繰り返す。この処理は、クライアント装置20aの記憶しているアドレスリストLST1が中央サーバの記憶している最新のアドレスリストLST1と異なっている可能性があるために行う処理である。そして、あるクライアント装置20から代理サーバであることを表す応答があった場合には(ステップS112;YES)、クライアント装置20aはアドレスリストLST1の第0行を応答のあったクライアント装置20に書き換え(ステップS113)、その後通常の動作を行う(ステップS114)。
クライアント装置20aが通常の動作を行うに至るまでの処理は、以上のようになっている。続いて、クライアント装置20aが代理サーバとして機能する場合の処理について説明する。
【0039】
図8に沿って説明する。まず、上述した通常の場合と同様に、クライアント装置20aは中央サーバに対して暗号化情報を要求するコマンドを送信し(ステップS101)、中央サーバからの応答の有無を判断する(ステップS102)。この応答がなければ(ステップS102;NO)、クライアント装置20aは中央サーバが代理サーバであるか否かを判断する(ステップS103)。中央サーバがサーバ装置10であるか(ステップS103;NO)、または中央サーバが代理サーバであり、かつサーバ装置10からも応答がない場合には(ステップS103;YES,ステップS104;NO)、クライアント装置20aは自装置が復号化プログラムを記憶しているか否かを判断する(ステップS105)。このクライアント装置20aは代理サーバとして機能するので、この判断は肯定的となる(ステップS105;YES)。すると、このクライアント装置20aはクライアントモードからサーバモードへと動作を切り替え(ステップS106)、中央サーバを代理する処理を実行する(ステップS107)。
【0040】
図9は、ステップS107のサーバ代理処理、すなわちクライアント装置20aのサーバモードにおける処理を示したフローチャートである。同図に沿って説明すると、はじめに、サーバモードに切り替わったクライアント装置20a(以下、「代理サーバ」という)は、復号化プログラムを用いて自装置に記憶された暗号化情報を復号化する(ステップS201)。その後、代理サーバは他のクライアント装置20からのコマンド送信の有無を監視し続ける(ステップS202)。コマンドを受信すると(ステップS202;YES)、代理サーバはコマンドを送信してきたクライアント装置20への暗号化情報の送信の可否を判断する(ステップS203)。この判断は、例えばアドレスリストLST1を参照するなどして行う。このコマンドの送信元が許可されていないクライアント装置20であれば(ステップS203;NO)、代理サーバはこのクライアント装置20に対して暗号化情報を送信しない旨の通知を行い、処理を終了させる(ステップS204)。
【0041】
一方、コマンドの送信元が許可されているクライアント装置20であれば(ステップS203;YES)、このクライアント装置20がアドレスリストLST1の第1行に記述されているか否かを判断する(ステップS205)。コマンドの送信元がアドレスリストLST1の第1行に記述されているクライアント装置20,すなわち本システムに最も長時間連続的に接続しているクライアント装置20であれば(ステップS205;YES)、代理サーバは有効期限の設けられた復号化プログラムをこのクライアント装置20に送信し(ステップS206)、続いて暗号化情報をこのクライアント装置20へと送信する(ステップS207)。また、コマンドの送信元がその他のクライアント装置20であれば(ステップS205;NO)、復号化プログラムを送信せずに暗号化情報のみをクライアント装置20へと送信する(ステップS207)。
以上の処理を行うことにより、サーバ装置10の代理をしている代理サーバに異常が発生し、この代理サーバも利用不能となった場合でも、図8と同様の処理を実行することによって、他のクライアント装置20が利用不能となった代理サーバの機能をさらに代理することが可能となっている。
【0042】
また、代理サーバは上述の処理を行うと同時に、本来の中央サーバであるサーバ装置10が利用可能な状態に復帰したか否かの判断を行っている。具体的には、代理サーバは自装置をクライアントモードで動作させることを指示するコマンド(以下、「モード切替コマンド」という)をサーバ装置10から受信したか否かを判断している(ステップS208)。モード切替コマンドを受信していなければ(ステップS208;NO)、代理サーバは上述のステップS202からの処理を繰り返し実行する一方、モード切替コマンドを受信したら(ステップS208;YES)、代理サーバは中央サーバにファイル情報データベースDB1,ユーザ情報データベースDB2およびアドレスリストLST1を送信し(ステップS209)、その後中央サーバとしての機能を停止させる(ステップS210)。そして、代理サーバはサーバモードからクライアントモードへと切り替わり、アドレスリストLST1を書き換えて接続先をサーバ装置10に変更する(ステップS211)。そして最後に、このクライアント装置20aは代理サーバとしての動作を終了した旨のコマンド(以下、「終了コマンド」という)をサーバ装置10に送信する(ステップS212)。これにより、クライアント装置20aの代理サーバとしての処理が終了し、以降はその他のクライアント装置20と同様の動作を行う。
【0043】
(2−c)サーバ装置が利用可能となり、通常の状態に戻るときの動作
図10は、サーバ装置10が利用不能の状態から利用可能な状態へと復帰し、再び中央サーバとして機能するまでの処理を示したフローチャートである。以下、同図に沿って説明する。
利用可能な状態となったサーバ装置10は、アドレスリストLST1を参照して上述したモード切替コマンドを送信する(ステップS301)。なお、サーバ装置10は、この時点ではどのクライアント装置20が代理サーバであるかを認識できない。なぜならば、サーバ装置10が利用不能であった状態が長時間に渡った場合などは、代理サーバは当初代理サーバとして機能していたクライアント装置20とは異なるクライアント装置20となっている可能性もあるからである。そのため、はじめにサーバ装置10はアドレスリストLST1の第1行に記述されているクライアント装置20に対してモード切替コマンドを送信し、この応答がなければ(ステップS302;NO)、同様のモード切替コマンドをアドレスリストLST1の次の行に記述されているクライアント装置20に送信する、という処理を繰り返すことにより、代理サーバの特定を行っている。
モード切替コマンドに対する応答を受信したら(ステップS302;YES)、サーバ装置10はファイル情報データベースDB1,ユーザ情報データベースDB2およびアドレスリストLST1を代理サーバから受信し、更新する(ステップS303)。その後サーバ装置10は、代理サーバとして機能していたクライアント装置20aから終了コマンドが送信されたか否かを判断し(ステップS304)、これを受信したら(ステップS304;YES)、中央サーバとしての機能を開始し、各種サービスを実行する(ステップS305)。
【0044】
以上説明されたように、本実施形態のサービス提供システム1は、中央サーバであるサーバ装置10に異常が発生しても、ある特定のクライアント装置20が代理サーバとして機能することができるため、耐障害性の高いサービスを提供することが可能となる。また、サービスの提供に必要なファイル情報データベースDB1やユーザ情報データベースDB2の参照は暗号化によって制限されており、この制限を解除するための復号化プログラムを有するクライアント装置20しか参照することができないので、従来よりも安全なサービスを提供することが可能となる。
また、復号化プログラムに有効期限が設けられていることや、ユーザ登録をサーバ装置10のみで可能としたことも、本システムの安全性の向上に寄与している。
【0045】
(3)変形例
なお、本発明は上述した実施の形態に限定されるものではなく、種々の変形が可能である。以下にその例をいくつか示す。
まず、上述の実施形態においては、サービス提供システム1において提供されるサービスはファイル共有サービスであるとして説明したが、本発明はもちろんファイル共有サービス以外のサービスにも適用可能である。本発明は、サーバ装置に接続された複数のクライアント装置に提供される種々のサービスに適用可能であり、そのサービスの種類を問わない。また、クライアント装置がやりとりするファイルについても、必ずしもクライアント装置どうしが記憶しているものに限定されない。例えば、クライアント装置はシステム内に備えられたファイルサーバからファイルを取得するものであり、サーバ装置はクライアント装置からファイルの問い合わせを受け、この問い合わせに対してこのファイルサーバ内のファイルアドレスを通知するような仕組みのサービスにおいても、本発明はもちろん適用可能である。
【0046】
また、上述の実施形態においては、クライアント装置20が代理サーバの機能を実現するためのサーバプログラムPRG3をあらかじめ記憶していると説明したが、サーバプログラムPRG3を暗号化情報に含めて送信してもよい。このようにすれば、復号化がされなければサーバプログラムPRG3そのものの実行ができないようにすることができるので、より安全性を高めることが可能である。
【0047】
また、上述の実施形態においては、サーバ装置10は連続して接続されている時間が最も長いクライアント装置20を代理サーバとして特定していたが、これでは全てのクライアント装置20に代理サーバとなり得る可能性がある。そこで、代理サーバとなる権限を決められた一部のクライアント装置20のみに付与し、その他のクライアント装置20には代理サーバとして機能することができないようにしてもよい。このようにすれば、悪意あるユーザによる代理サーバの不正利用を防ぐことが可能となる。このような仕組みは、例えばアドレスリストLST1に代理サーバの実行権限を示すフラグ情報を含むことによって実現できる。
【0048】
また、上述の実施形態においては、サーバ装置10から送信される情報の参照を制限するための手段として暗号化・復号化を用いていたが、このような態様に限定されるものではない。例えば、必要な情報にzip形式の圧縮処理を施し、この圧縮データの解凍にパスワード制限を設けることによっても、情報の参照を制限することが可能となる。この場合、この圧縮データを解凍するためのパスワードを記述したファイルが、上述の実施形態の「復号化プログラム」に相当する。
【0049】
また、上述の実施形態においては、代理サーバとして機能するクライアント装置20は、サーバ装置10が有する機能のうち、ユーザ登録機能と復号化プログラム生成機能とを除いた諸機能を実現するものとして説明した。これは、悪意あるユーザによってユーザ登録や復号化プログラムの生成が無制限に行われることを防ぐことを目的としている。しかしながら、これらの機能の実行は必ずしも制限されるものではなく、代理サーバにサーバ装置10と同等の機能を持たせてもよい。このようにすれば、代理サーバによるサービス提供時においても、ユーザの利便性を損なわないようにすることが可能となる。
あるいは、より高い安全性を求めるのであれば、代理サーバが実行することのできる機能をさらに減らし、代理サーバにより提供されるサービスをさらに制限してもよい。
【0050】
また、上述の実施形態のサーバ装置やクライアント装置は、いわゆるサーバやパーソナルコンピュータ等に限定されるものではなく、例えば携帯電話機やPDA(Personal Digital Assistant)等であってもよい。
【図面の簡単な説明】
【0051】
【図1】本発明の一実施形態に係るサービス提供システムを概念的に示した図である。
【図2】同実施形態におけるサーバ装置のハードウェア構成を示したブロック図である。
【図3】同実施形態におけるアドレスリストの一例を示した図である。
【図4】同実施形態におけるファイル情報データベースの一例を示した図である。
【図5】同実施形態におけるユーザ情報データベースの一例を示した図である。
【図6】同実施形態におけるサーバ装置の諸機能を示した機能ブロック図である。
【図7】同実施形態におけるクライアント装置のハードウェア構成を示したブロック図である。
【図8】同実施形態において、サーバ装置の異常に対応するためのクライアント装置の処理を示したフローチャートである。
【図9】同実施形態におけるサーバ代理処理を示したフローチャートである。
【図10】同実施形態において、サーバ装置10が再び中央サーバとして機能するまでの処理を示したフローチャートである。
【符号の説明】
【0052】
1…サービス提供システム、10…サーバ装置、20,20a,20b,20c…クライアント装置、30…ネットワーク、11,21…制御部、12,22…記憶部、13,23…表示部、14,24…操作部、15,25…通信部。
【技術分野】
【0001】
本発明は、安全かつ耐障害性の高いサービスを提供するための技術に関する。
【背景技術】
【0002】
多数のユーザ(クライアント装置)間で各ユーザの所持するファイルを直接やりとりする、いわゆるファイル共有サービスが普及してきている。一般に、このファイル共有サービスは「中央サーバ型」と「純粋型」に大別される。
中央サーバ型とは、各ユーザの情報や所有するファイルのリストを中央サーバと呼ばれるサーバ装置が管理し、ユーザは中央サーバから提供される情報に基づいて他のユーザとファイルのやりとりを行うものである。このとき、中央サーバはファイルを検索するためのインターフェースを提供するだけであり、ファイルのやりとり自体はユーザ同士が直接行う。
これに対して、純粋型とは、取得したいファイルの情報をバケツリレー式に各ユーザへと送信していき、目的とするファイルを所持するユーザを見つけたら、そのユーザと直接ファイルのやりとりを行うものである。純粋型は中央サーバのようなサーバ装置を必要としないが、全てのクライアント装置はクライアント装置であると同時にサーバ装置でもあると言える。特許文献1には、この純粋型のファイル共有サービスの一例が示されている。
【0003】
これら2種類のファイル共有サービスはそれぞれに利点を有しているものの、それぞれに欠点も有している。
まず、中央サーバ型のファイル共有サービスは、ファイル検索自体はクライアント装置と中央サーバの間のみで行われるため、ネットワークに対する負担は少なくて済む。また、ファイルのやりとりに必ず中央サーバが関与するため、違法なファイル共有の監視も行うことができる。しかし、何らかの動作異常が発生して中央サーバが利用不能となってしまうと、サービス全体が停止してしまうという問題がある。
一方、純粋型のファイル共有サービスは、あるクライアント装置が利用不能になってもサービス全体が停止してしまうことがなく、耐障害性に優れていると言える。しかし、クライアント装置の増加につれてネットワークのトラフィックも加速度的に増加し、検索速度の低下やネットワークの障害を引き起こすこととなる。加えて、純粋型のファイル共有サービスでは、ユーザ間のファイルのやりとりを監視および規制することが極めて困難であり、音楽ファイルや映像ファイルを違法にコピー・配布されるおそれがある。
【0004】
【特許文献1】特開2002−324004号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
以上のように、従来の2種類のファイル共有サービスは二律背反の関係にあり、違法行為に対する安全性を確保しつつ高い耐障害性を有することは困難であった。
本発明は上述の事情に鑑みてなされたものであり、その目的は、安全かつ耐障害性の高いサービスを提供することにある。
【課題を解決するための手段】
【0006】
上述の目的を達成するために、本発明は、サーバ装置と、当該サーバ装置とネットワークを介して接続された複数のクライアント装置とを備え、前記サーバ装置は、サービスを提供するために必要なサービス情報を記憶する記憶手段と、前記記憶手段によって記憶されているサービス情報に基づいて、複数の前記クライアント装置にサービスを提供するサービス提供手段と、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段とを備え、前記クライアント装置は、前記サーバ装置によって送信されてくる前記制限情報および前記解除データを記憶する記憶手段と、前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、前記サーバ装置における動作異常の発生を検知する検知手段と、前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サーバ装置の付随サービス提供手段が実行する前記制限処理、前記送信処理および前記代理サーバ特定処理を実行するサービス代理手段とを備える耐障害性サービス提供システムを提供する。
この耐障害性サービス提供システムによれば、サーバ装置に動作異常が発生したときに、代理サーバ特定処理により特定されたクライアント装置がサーバ装置の提供していたサービスを代理して実行することが可能となる。
【0007】
また、本発明の耐障害性サービス提供システムは、より好適な態様として、前記サーバ装置が、前記動作異常が解消され、前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置による前記サービスの提供を終了させ、自装置によって当該サービスの提供を開始する。
さらに好適には、前記サーバ装置は、前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置から前記サービス情報を受信してから、当該クライアント装置による前記サービスの提供を終了させる。
このようにすれば、代理サーバとして機能しているクライアント装置は、サーバ装置の動作異常が解消され次第サービスの提供を終了させることができるので、このクライアント装置の不都合を低減させることが可能となる。また、代理サーバによるサービスを終了させる前に代理サーバからサービス情報を受信することにより、サーバ装置はサービス情報の同期を行うことが可能となる。
【0008】
また、本発明は、サービスを提供するために必要なサービス情報を記憶する記憶手段と、前記記憶手段によって記憶されているサービス情報に基づいて、ネットワークを介して接続された複数のクライアント装置にサービスを提供するサービス提供手段と、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を代理サーバとして特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段とを備えるサーバ装置としても特定される。
【0009】
このサーバ装置は、より好適な態様として、前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる代理サービス終了手段と、前記代理サービス終了手段が前記クライアント装置によるサービスを終了させた場合に、自装置によって前記サービスの提供を開始するサービス開始手段とを備える。
さらに好適には、前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる前に、当該クライアント装置から前記サービス情報を受信するサービス情報受信手段を備える。
このようにすれば、サーバ装置の動作異常が解消され次第、代理サーバとして機能しているクライアント装置はサービスの提供を終了させることができ、また、サーバ装置はサービス情報の同期を行うことが可能となる。
【0010】
また、このサーバ装置は、より好適な態様として、前記付随サービス提供手段が、前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する。
さらに好適には、前記サービス情報が前記計測結果を含む。
このようにすれば、解除データを送信するときに、ネットワークにほとんど接続していないクライアント装置等を除外することができる。その結果、代理サーバとしてより信頼性の高いクライアント装置を特定することが可能となる。
【0011】
また、このサーバ装置は、より好適な態様として、前記付随サービス提供手段が、前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する。
このようにすれば、解除データの利用が制限されるので、より安全性の高いサービスを提供することが可能となる。
【0012】
なお、本発明は、サービス情報の少なくとも一部の参照が制限された制限情報と、前記制限情報の参照制限を解除するための解除データとを記憶する記憶手段と、前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、ネットワークを介して接続されたサーバ装置における動作異常の発生を検知する検知手段と、前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行するサービス実行手段とを備えるクライアント装置としても特定される。
【0013】
このクライアント装置は、より好適な態様として、前記検知手段が、さらに、前記サービス代理手段を実行しているクライアント装置における動作異常の発生を検知する。
このようにすれば、サーバ装置の提供していたサービスを代理して実行するクライアント装置に動作異常が発生した場合でも、また別のクライアント装置に当該サービスを代理して実行させることが可能となる。
【0014】
また、このクライアント装置は、より好適な態様として、前記サービス実行手段が、前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する。
さらに好適には、前記サービス情報が前記計測結果を含む。
このようにすれば、解除データを送信するときに、ネットワークにほとんど接続していないクライアント装置等を除外することができる。その結果、代理サーバとしてより信頼性の高いクライアント装置を特定することが可能となる。
【0015】
また、このクライアント装置は、より好適な態様として、前記サービス実行手段が、前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する。
このようにすれば、解除データの利用が制限されるので、より安全性の高いサービスを提供することが可能となる。
【発明の効果】
【0016】
以上のように、本発明によれば、安全かつ耐障害性の高いサービスを提供することが可能となる。
【発明を実施するための最良の形態】
【0017】
(1)構成
(1−a)システム全体構成
図1は、本発明の一実施形態に係るサービス提供システム1を概念的に示した図である。このサービス提供システム1は、サーバ装置10と、クライアント装置20a,20bおよび20cと、ネットワーク30とを備えている。本システムはネットワーク30の規模や有線・無線の別を問わず、ここでは一例としてイントラネットであるとするが、もちろんインターネット等の他のネットワークであってもよい。また、同図では3台のクライアント装置20a,20bおよび20cのみを示したが、実際にはより多数のクライアント装置を備えるものであってもよい。複数のクライアント装置のそれぞれを特に区別する必要がない場合には、以下では「クライアント装置20」と総称する。
なお、サーバ装置10とクライアント装置20のそれぞれには各装置を操作する操作者が存在するが、これらの混同を避けるために、以下ではサーバ装置10の操作者を「管理者」、クライアント装置20の操作者を「ユーザ」という。
続いて、サーバ装置10とクライアント装置20の構成についてそれぞれ説明する。
【0018】
(1−b)サーバ装置の構成
図2は、サーバ装置10のハードウェア構成を示したブロック図である。同図に示されているように、サーバ装置10は、制御部11と、記憶部12と、表示部13と、操作部14と、通信部15とを備えたコンピュータである。制御部11は図示せぬCPU(Central Processing Unit)やRAM(Random Access Memory)等を備えた演算装置であり、後述するサーバプログラムPRG1を実行することにより中央サーバとしての機能を実現する。記憶部12は例えばHDD(Hard Disk Drive)等の大容量の記憶装置であり、クライアント装置20に対する各種機能を実現するためのサーバプログラムPRG1と、本システムに接続されている各クライアント装置20の一覧であるアドレスリストLST1と、各クライアント装置20に記憶されているファイルに関する情報の集合であるファイル情報データベースDB1と、各クライアント装置20を操作するユーザに関する情報の集合であるユーザ情報データベースDB2とを記憶している。表示部13は例えば液晶ディスプレイ等の表示装置であり、サーバ装置10の管理者に対して各種情報を表示する。操作部14は例えばマウスやキーボード等の入力装置であり、管理者からの入力を受け付ける。通信部15はサーバ装置10がネットワーク30を介してクライアント装置20とデータの授受を行うためのインターフェース装置である。
【0019】
ここで、記憶部12に記憶された各種情報の内容について説明する。
図3は、アドレスリストLST1の一例を示した図である。このアドレスリストLST1は、「クライアントID」と「接続開始時間」の2つの項目を含んだ情報の集合であり、各行の情報が1台のクライアント装置20(またはサーバ装置10)に対応している。なお、「行番号」の項目は説明の便宜上付与されたものであり、実際のアドレスリストLST1には含まれていなくともよい。これは、以下のファイル情報データベースDB1やユーザ情報データベースDB2についても同様である。
「クライアントID」とは、各クライアント装置20を一意的に特定するためのデータが記述された項目である。この「クライアントID」は、ここでは一例としてイントラネットにおけるIP(Internet Protocol)アドレスとするが、用いられるネットワークにおいて各クライアント装置20を一意的に特定可能な識別子であれば、記述されるデータの形式を問わない。また、「接続開始時間」とは、各行で表されるクライアント装置20が本システムに接続を開始した時間が、例えば「年.月.日/時.分.秒」という形式で記述された項目である。
すなわち、第1行を例にこのアドレスリストLST1の内容を説明すると、第1行に記述されたクライアント装置20は、そのクライアントIDが「10.0.1.1」であり、本システムに「2004年12月1日12時34分56秒」から接続を開始したことを意味している。
【0020】
アドレスリストLST1には、このような情報が本システムに接続されているクライアント装置20の全てについて記述されており、連続して接続されている時間の長いクライアント装置20ほど上位に記述されている。すなわち、サーバ装置10は各クライアント装置20の接続時間を計測しており、この計測結果をアドレスリストLST1として記憶している。そのため、新たに接続を開始したクライアント装置20や、本システムとの接続を切断したクライアント装置20を検知したときには、サーバ装置10はこのアドレスリストLST1を随時更新する。
なお、アドレスリストLST1の第0行には、「中央サーバ」のクライアントIDが記述されている。この行では、「接続開始時間」の値は特に定めない。アドレスリストLST1の第0行は、クライアント装置20が上述の中央サーバを特定するための情報であり、ここでは中央サーバはサーバ装置10である。中央サーバについての説明は後述する。
【0021】
図4は、ファイル情報データベースDB1の一例を示した図である。このファイル情報データベースDB1は、「ファイル名」と「クライアント名」と「ファイルアドレス」の3つの項目を含んだ情報の集合であり、各行の情報が1つのファイルに対応している。
「ファイル名」とは、ユーザが操作するクライアント装置20に記憶されているファイルの名前が記述された項目である。この「ファイル名」は、必ずしもファイルそのものの名前を用いる必要はなく、例えばMP3フォーマットにおけるID3タグのように、ファイル内に直接埋め込まれた情報を用いてファイルの内容を特定してもよい。
「クライアント名」とは、各行で表されるファイルを記憶しているクライアント装置20を特定する識別子が記述された項目であり、例えばアドレスリストLST1の「クライアントID」と同様のデータが記述されている。
「ファイルアドレス」とは、各行で表されるファイルが実際に記憶されている記憶領域を、クライアント装置20内部において定義されているアドレスで記述した項目である。
すなわち、第1行を例にこのファイル情報データベースDB1の内容を説明すると、ファイル名「abc」で表されるファイルは、クライアント名「10.0.1.1」で表されるクライアント装置20内部に記憶された、ファイルアドレス「D:\Music\abc.mp3」によって特定されるファイルであることを意味している。
【0022】
図5は、ユーザ情報データベースDB2の一例を示した図である。このユーザ情報データベースDB2は、「ユーザ名」と「パスワード」と「ユーザ権限情報」の3つの項目を含んだ情報の集合であり、各行の情報が1人のユーザ(のクライアント装置20)に対応している。
「ユーザ名」および「パスワード」とは、本システムの利用に際してあらかじめ登録されたユーザ認証のための情報が記述された項目である。サーバ装置10は、本システムへの参加(ログイン)を要求するクライアント装置20に対して「ユーザ名」と「パスワード」の入力を要求し、これらの対がユーザ情報データベースDB2に登録されている情報と一致した場合にのみ、このクライアント装置20の参加を許可する。
「ユーザ権限情報」とは、各行で表されるユーザのファイルアクセス権限について記述された項目であり、ここでは当該ユーザがアクセス不可能なファイルやクライアント装置20の「ファイル名」や「クライアント名」が記述されている。
すなわち、第1行を例にこのユーザ情報データベースDB2の内容を説明すると、ユーザ名「xyz」のユーザのパスワードは「xyz0123」であり、このユーザxyzは、クライアント名「10.0.2.1」のクライアント装置20が所有する全てのファイルおよびファイル名「aab」を除いた全てのファイルにアクセス可能であることを意味している。
【0023】
続いて、サーバプログラムPRG1を実行することによって実現される諸機能について説明する。
図6は、サーバ装置10の制御部11がサーバプログラムPRG1を実行することによって実現される諸機能を示した機能ブロック図である。ここにおいて、図中の矢印はデータの流れを表している。同図に示されているように、制御部11はサーバプログラムPRG1を実行することによって、ファイル登録機能111と、ファイル検索機能112と、ユーザ登録機能113と、ユーザ認証機能114と、リスト更新機能115と、暗号化機能116と、復号化プログラム生成機能117と、クライアント特定機能118と、データ送信機能119とを実現する。以下では、これらの機能の概要を説明する。
【0024】
ファイル登録機能111は、ユーザが自身のクライアント装置20に記憶されているファイルを登録する機能である。ユーザは、新たなファイルを取得してこれをクライアント装置20に記憶したときには、サーバ装置10にそのファイルの「ファイル名」と「ファイルアドレス」とを送信する。サーバ装置10の制御部11は、受信したこのデータに基づいてファイル情報データベースDB1を更新する。
ファイル検索機能112は、ユーザが取得しようとするファイル、すなわち自身のクライアント装置20に記憶されていないファイルを検索し、当該ファイルを記憶している別のクライアント装置20から取得するための機能である。ユーザは、例えば取得しようとするファイルの「ファイル名」をクライアント装置20に入力し、これをサーバ装置10に送信する。サーバ装置10の制御部11は、受信したこのデータに基づいてファイル情報データベースDB1内を検索し、合致する情報があればクライアント装置20に通知する。
【0025】
ユーザ登録機能113は、本システムを新たに利用するユーザ(新規ユーザ)を登録したり、既に登録されているユーザのユーザ情報(ユーザ名、パスワード、ユーザ権限情報)を変更して再登録したりする機能である。サーバ装置10の制御部11は、新規ユーザに関するユーザ情報を新たにユーザ情報データベースDB2に登録したり、あるいは既に登録されているユーザのユーザ情報をユーザ情報データベースDB2から検索して、これを書き換えたりする。本実施形態においては、ユーザ登録機能113は管理者のみによって用いられる機能(すなわち、サーバ装置10以外では用いられない機能)とするが、もちろんクライアント装置20のユーザ自身によってユーザ情報の変更が行えるものとしてもよい。ユーザ登録の実行を管理者のみに制限するのは、セキュリティ上の理由である。
ユーザ認証機能114は、サーバ装置10が本システムにログインを試みてきたクライアント装置20の接続の可否を行う機能である。本システムへのログインに際して、サーバ装置10はクライアント装置20に対して「ユーザ名」と「パスワード」の入力を要求する。サーバ装置は入力された「ユーザ名」と「パスワード」の対がユーザ情報データベースDB2に存在するか否かを判断し、この判断結果が肯定的であった場合に限り本システムへのログインを許可する。
【0026】
リスト更新機能115は、アドレスリストLST1の更新を行う機能である。上述したように、アドレスリストLST1には本システムに接続されている全てのクライアント装置20が記述されており、連続して接続されている時間の長いクライアント装置20ほど上位に記述されている。そのため、サーバ装置10は、本システムに新たにログインしたクライアント装置20や、本システムとの接続を切断(ログアウト)したクライアント装置20を検知した場合には、アドレスリストLST1の書き換えを行う。具体的には、クライアント装置20がログインしてきた場合には、サーバ装置10の制御部11はアドレスリストLST1の最下位にこのクライアント装置20の「クライアントID」を追加し、ログインした時刻を取得してこれを「接続開始時間」に書き込む。また、クライアント装置20がログアウトした場合には、サーバ装置10の制御部11はアドレスリストLST1からこのクライアント装置20の「クライアントID」および「接続開始時間」を削除し、このクライアント装置20より下位のクライアント装置20を1ずつ繰り上げる。
【0027】
暗号化機能116は、ファイル情報データベースDB1とユーザ情報データベースDB2の参照を制限するために、これらを暗号化した情報を生成する機能である。暗号化の手法は特に限定されず、周知の種々の手法を用いてよい。また、このときサーバ装置10の制御部11はアドレスリストLST1も参照するが、このアドレスリストLST1については暗号化を行わない。以下では、暗号化されたファイル情報データベースDB1とユーザ情報データベースDB2および暗号化されていないアドレスリストLST1を総称して「暗号化情報」という。
復号化プログラム生成機能117は、上述の暗号化機能116を用いて生成された暗号化情報の参照制限を解除するためのデータとして、この暗号化情報を復号化するプログラム(以下、「復号化プログラム」という)を生成する機能である。この復号化プログラムは期限付きで実行可能となっており、所定の日時(有効期限)を過ぎると暗号化情報を復号化できないようになっている。
【0028】
クライアント特定機能118は、上述の復号化プログラムを送信すべきクライアント装置20を特定する機能である。サーバ装置10の制御部11は、所定のアルゴリズムに基づいて送信すべき1のクライアント装置20を特定するが、本実施形態においては、アドレスリストLST1を参照して、このリストの第1行に記述されているクライアント装置20に対して復号化プログラムを送信する。すなわち制御部11は、本システムに最も長時間連続的に接続している1のクライアント装置20に対して復号化プログラムを送信する。
データ送信機能119は、上述の暗号化情報と復号化プログラムとをクライアント装置20に送信する機能である。サーバ装置10の制御部11はアドレスリストLST1を参照し、このリストに記述されている全てのクライアント装置20に対して暗号化情報を送信し、上述のクライアント特定機能118によって特定された1のクライアント装置20のみに対して復号化プログラムを送信する。
【0029】
ここで、上述した「中央サーバ」について説明する。
中央サーバとは、本システムにおいてサーバの機能を果たすコンピュータのことであり、上述のサーバ装置10と、サーバ装置10のクライアント特定機能118により特定されるクライアント装置20とが中央サーバとなり得る。
ここで「代理サーバ」とは、本システムにおいてファイル登録、ファイル検索、ユーザ認証、リスト更新、暗号化、クライアント特定およびデータ送信の各機能を実現するクライアント装置20のことである。つまり、代理サーバは、上述のサーバプログラムPRG1によって実現される機能からユーザ登録機能と復号化プログラム生成機能とを除いた諸機能を実現するクライアント装置20である。以下では、これらの機能のうち、ファイル登録、ファイル検索およびユーザ認証の各機能のことを「基本サービス」と呼び、リスト更新、暗号化、クライアント特定およびデータ送信の各機能のことを「付随サービス」と呼ぶ。本システムにおいて、「基本サービス」とはファイル共有サービスに直接的に関連した機能のことであり、「付随サービス」とは中央サーバの機能を特定のクライアント装置20に代理させることを実現するための機能のことを指す。
通常、中央サーバの機能はサーバ装置10が果たしているが、何らかの異常が発生してサーバ装置10が利用不能となる場合がある。本発明においては、このような場合にある特定のクライアント装置20が上述の中央サーバの機能を代理することを特徴としている。そこで以下では、このような機能を実現するためのクライアント装置20の構成について説明する。
【0030】
(1−c)クライアント装置の構成
図7は、クライアント装置20のハードウェア構成を示したブロック図である。同図に示されているように、クライアント装置20は、制御部21と、記憶部22と、表示部23と、操作部24と、通信部25とを備えたコンピュータである。これらの各部はサーバ装置10の制御部11〜通信部15と同様の構成要素となっており、異なるのは記憶部内部で記憶しているデータの内容だけである。よって、ここでは上述の各部の説明は省略し、記憶部22の記憶内容について説明する。
記憶部22は、クライアント装置20としての機能を実現するためのクライアントプログラムPRG2と、代理サーバの機能を実現するためのサーバプログラムPRG3と、他のユーザと共有するための複数のファイルFIL1とを記憶している。また、記憶部22には、サーバ装置10から送信された暗号化情報と復号化プログラムとを記憶する記憶領域が設けられている。
【0031】
クライアントプログラムPRG2は、クライアント装置20がサーバ装置10に接続して、上述したユーザ認証やファイル登録、あるいはファイル検索を行う機能と、このファイル検索の結果に応じて他のクライアント装置20からファイルを取得するための機能とを実現するためのプログラムである。また、クライアントプログラムPRG2には、クライアント装置20が中央サーバを特定し、上述の暗号化情報を取得するためのコマンド送信機能も含まれている。
サーバプログラムPRG3は、ファイル登録機能と、ファイル検索機能と、ユーザ認証機能と、リスト更新機能と、暗号化機能と、クライアント特定機能と、データ送信機能とを実現するためのプログラムである。すなわち、サーバプログラムPRG3はクライアント装置20を代理サーバとして機能させるためのプログラムであり、サーバプログラムPRG1からユーザ登録機能と復号化プログラム生成機能とを除外したプログラムに等しい。
【0032】
クライアントプログラムPRG2とサーバプログラムPRG3は択一的に実行されるものである。以下においては、クライアント装置20がクライアントプログラムPRG2を実行している状態のことを「クライアントモード」といい、サーバプログラムPRG3を実行している状態のことを「サーバモード」という。
なお、このサーバモードは、クライアント装置20が暗号化情報と復号化プログラムとを取得し、暗号化情報を復号化可能な状態となって初めて実行され得るものである。なぜなら、暗号化情報を復号化し、ファイル情報データベースDB1,ユーザ情報データベースDB2およびアドレスリストLST1が参照可能な状態にならなければ、クライアント装置20は上述したサービスを実行することは不可能だからである。
【0033】
(2)動作
ここからは、本システムにおけるサーバ装置10とクライアント装置20の具体的な動作について説明する。
本システムにおける基本的な動作は、中央サーバであるサーバ装置10が複数のクライアント装置20に対してファイル検索等の基本サービスを提供し、この検索結果に基づいて、クライアント装置20同士は互いが記憶しているファイルを交換するものである。これらの動作は周知であり、また、図6を用いてその概要は既に説明したため、ここでの詳細な説明は省略する。
【0034】
本発明は、中央サーバが何らかの問題により利用不能となった状態、すなわち動作異常が生じた状態での処理に特徴を有するものである。本システムにおいては、中央サーバとして機能しているサーバ装置10に動作異常が発生して利用不能になったとき、特定のクライアント装置20が「クライアントモード」から「サーバモード」に切り替わり、中央サーバの機能を代理して実行する。その後、サーバ装置10が利用可能な状態となると、それまで中央サーバとして機能していたクライアント装置20がもとの「クライアントモード」に切り替わり、通常の状態に復帰する。
これらの動作を実現するための機能が、上述の付随サービスである。以下においては、この付随サービスに係るサーバ装置10およびクライアント装置20の具体的な処理について説明する。なお、以下では、サーバ装置10が中央サーバとして機能している状態を「通常」の状態、サーバ装置10が利用不能である状態を「異常」の状態であると定義する。
【0035】
(2−a)通常の状態におけるサーバ装置およびクライアント装置の動作
はじめに、通常の状態におけるサーバ装置10およびクライアント装置20の動作について説明する。サーバ装置10は、上述したファイル検索等の基本サービスに加えて、異常の発生に備えるために、基本サービスの提供に必要な情報をクライアント装置20にあらかじめ送信しておく。この情報とは、上述した暗号化情報と復号化プログラムのことである。これらの情報を送信する処理は、クライアント装置20からの要求に応じて行われる。
各クライアント装置20は、中央サーバ(この場合、サーバ装置10)に対して一定の周期で暗号化情報を要求するコマンドを送信している。このコマンドを受信すると、中央サーバであるサーバ装置10は暗号化情報を送信する。このとき、サーバ装置10はアドレスリストLST1を参照し、コマンドを送信してきたクライアント装置20がアドレスリストLST1の第1行に記述されているクライアント装置20であるか否かを判断する。この判断は、例えばコマンド送信元のIPアドレスとアドレスリストLST1の第1行の「クライアントID」とを比較することにより行われる。この判断が肯定的である場合、すなわちコマンドを送信してきたクライアント装置20がアドレスリストLST1の第1行に記述されているクライアント装置20である場合には、サーバ装置10は復号化プログラムを暗号化情報と共に送信する。暗号化情報を受信したクライアント装置20は、それ以前に受信し記憶していた暗号化情報を破棄し、新たな暗号化情報を記憶部12に記憶することで、サーバ装置10内部の情報と同期を行う。
【0036】
(2−b)異常が発生したときのクライアント装置の動作
サーバ装置10とクライアント装置20の間では、上述のような動作が繰り返し行われる。そして、あるタイミングでサーバ装置10に異常が発生して利用不能な状態となると、特定の1のクライアント装置20が中央サーバの機能を代理することとなる。この処理は以下のようにして行われる。
図8は、サーバ装置10の異常に対応するためのクライアント装置20の処理を示したフローチャートである。代理サーバとして機能するのは、ステップS107の処理を実行するクライアント装置20のみであり、その他のクライアント装置20は代理サーバに接続して通常の動作を行う。そこで以下では、まず通常の動作を行うクライアント装置20の処理について説明し、その後に代理サーバとなるクライアント装置20の処理を説明する。なお、ここでは、この処理における動作の主体となるクライアント装置のことを特に「クライアント装置20a」と表記することで、その他のクライアント装置と区別する。
【0037】
まず、クライアント装置20aは、中央サーバに対して暗号化情報を要求するコマンドを送信し(ステップS101)、中央サーバからの応答の有無を判断する(ステップS102)。このコマンドは暗号化情報を要求すると同時に、サーバ装置10あるいは代理サーバの動作異常を検知するものでもある。ここで中央サーバからの応答があれば(ステップS102;YES)、クライアント装置20aは中央サーバに動作異常は発生していないと判断し、暗号化情報を受信して中央サーバとの同期を行ってから通常の動作を行う(ステップS108)。
一方、中央サーバからの応答がなかった場合には(ステップS102;NO)、クライアント装置20aは例えばアドレスリストLST1の第0行を参照するなどして、中央サーバが代理サーバであるか否かを判断する(ステップS103)。中央サーバが代理サーバであるときに(ステップS103;YES)、この代理サーバからの応答がないのであれば、サーバ装置10が利用不能な状態から利用可能な状態へと復帰し、代理サーバとして機能していたクライアント装置20がサーバモードからクライアントモードへと切り替わった場合である可能性がある。そのため、このときクライアント装置20aはサーバ装置10へとコマンドを送信し、サーバ装置10からの応答の有無も判断する(ステップS104)。サーバ装置10からの応答があれば(ステップS104;YES)、クライアント装置20aはこのサーバ装置10が利用可能になったと判断し、アドレスリストLST1の第0行をサーバ装置10に変更することによってこのサーバ装置10を新たに中央サーバとして認識する(ステップS109)。その後クライアント装置20aは、サーバ装置10を中央サーバとして通常の動作を行う(ステップS110)。
【0038】
また、サーバ装置10からの応答がない場合には(ステップS104;NO)、クライアント装置20aは自装置に復号化プログラムが記憶されているか否かを判断することにより、自装置が代理サーバとなり得るか否かを判断する(ステップS105)。自装置に復号化プログラムが記憶されていない場合は(ステップS105;NO)、クライアント装置20aは新たな中央サーバを検索して特定する。具体的には、クライアント装置20aはコマンド要求先をアドレスリストLST1の次の行(この場合、第1行)に変更し(ステップS111)、このクライアント装置20から代理サーバであることを表す応答が返ってくるか否かを判断する(ステップS112)。応答がない場合には(ステップS112;NO)、クライアント装置20aはコマンド要求先をアドレスリストLST1の次の行(この場合、第2行)に変更し(ステップS111)、上述のステップS112と同様の判断を行うという処理を応答があるまで繰り返す。この処理は、クライアント装置20aの記憶しているアドレスリストLST1が中央サーバの記憶している最新のアドレスリストLST1と異なっている可能性があるために行う処理である。そして、あるクライアント装置20から代理サーバであることを表す応答があった場合には(ステップS112;YES)、クライアント装置20aはアドレスリストLST1の第0行を応答のあったクライアント装置20に書き換え(ステップS113)、その後通常の動作を行う(ステップS114)。
クライアント装置20aが通常の動作を行うに至るまでの処理は、以上のようになっている。続いて、クライアント装置20aが代理サーバとして機能する場合の処理について説明する。
【0039】
図8に沿って説明する。まず、上述した通常の場合と同様に、クライアント装置20aは中央サーバに対して暗号化情報を要求するコマンドを送信し(ステップS101)、中央サーバからの応答の有無を判断する(ステップS102)。この応答がなければ(ステップS102;NO)、クライアント装置20aは中央サーバが代理サーバであるか否かを判断する(ステップS103)。中央サーバがサーバ装置10であるか(ステップS103;NO)、または中央サーバが代理サーバであり、かつサーバ装置10からも応答がない場合には(ステップS103;YES,ステップS104;NO)、クライアント装置20aは自装置が復号化プログラムを記憶しているか否かを判断する(ステップS105)。このクライアント装置20aは代理サーバとして機能するので、この判断は肯定的となる(ステップS105;YES)。すると、このクライアント装置20aはクライアントモードからサーバモードへと動作を切り替え(ステップS106)、中央サーバを代理する処理を実行する(ステップS107)。
【0040】
図9は、ステップS107のサーバ代理処理、すなわちクライアント装置20aのサーバモードにおける処理を示したフローチャートである。同図に沿って説明すると、はじめに、サーバモードに切り替わったクライアント装置20a(以下、「代理サーバ」という)は、復号化プログラムを用いて自装置に記憶された暗号化情報を復号化する(ステップS201)。その後、代理サーバは他のクライアント装置20からのコマンド送信の有無を監視し続ける(ステップS202)。コマンドを受信すると(ステップS202;YES)、代理サーバはコマンドを送信してきたクライアント装置20への暗号化情報の送信の可否を判断する(ステップS203)。この判断は、例えばアドレスリストLST1を参照するなどして行う。このコマンドの送信元が許可されていないクライアント装置20であれば(ステップS203;NO)、代理サーバはこのクライアント装置20に対して暗号化情報を送信しない旨の通知を行い、処理を終了させる(ステップS204)。
【0041】
一方、コマンドの送信元が許可されているクライアント装置20であれば(ステップS203;YES)、このクライアント装置20がアドレスリストLST1の第1行に記述されているか否かを判断する(ステップS205)。コマンドの送信元がアドレスリストLST1の第1行に記述されているクライアント装置20,すなわち本システムに最も長時間連続的に接続しているクライアント装置20であれば(ステップS205;YES)、代理サーバは有効期限の設けられた復号化プログラムをこのクライアント装置20に送信し(ステップS206)、続いて暗号化情報をこのクライアント装置20へと送信する(ステップS207)。また、コマンドの送信元がその他のクライアント装置20であれば(ステップS205;NO)、復号化プログラムを送信せずに暗号化情報のみをクライアント装置20へと送信する(ステップS207)。
以上の処理を行うことにより、サーバ装置10の代理をしている代理サーバに異常が発生し、この代理サーバも利用不能となった場合でも、図8と同様の処理を実行することによって、他のクライアント装置20が利用不能となった代理サーバの機能をさらに代理することが可能となっている。
【0042】
また、代理サーバは上述の処理を行うと同時に、本来の中央サーバであるサーバ装置10が利用可能な状態に復帰したか否かの判断を行っている。具体的には、代理サーバは自装置をクライアントモードで動作させることを指示するコマンド(以下、「モード切替コマンド」という)をサーバ装置10から受信したか否かを判断している(ステップS208)。モード切替コマンドを受信していなければ(ステップS208;NO)、代理サーバは上述のステップS202からの処理を繰り返し実行する一方、モード切替コマンドを受信したら(ステップS208;YES)、代理サーバは中央サーバにファイル情報データベースDB1,ユーザ情報データベースDB2およびアドレスリストLST1を送信し(ステップS209)、その後中央サーバとしての機能を停止させる(ステップS210)。そして、代理サーバはサーバモードからクライアントモードへと切り替わり、アドレスリストLST1を書き換えて接続先をサーバ装置10に変更する(ステップS211)。そして最後に、このクライアント装置20aは代理サーバとしての動作を終了した旨のコマンド(以下、「終了コマンド」という)をサーバ装置10に送信する(ステップS212)。これにより、クライアント装置20aの代理サーバとしての処理が終了し、以降はその他のクライアント装置20と同様の動作を行う。
【0043】
(2−c)サーバ装置が利用可能となり、通常の状態に戻るときの動作
図10は、サーバ装置10が利用不能の状態から利用可能な状態へと復帰し、再び中央サーバとして機能するまでの処理を示したフローチャートである。以下、同図に沿って説明する。
利用可能な状態となったサーバ装置10は、アドレスリストLST1を参照して上述したモード切替コマンドを送信する(ステップS301)。なお、サーバ装置10は、この時点ではどのクライアント装置20が代理サーバであるかを認識できない。なぜならば、サーバ装置10が利用不能であった状態が長時間に渡った場合などは、代理サーバは当初代理サーバとして機能していたクライアント装置20とは異なるクライアント装置20となっている可能性もあるからである。そのため、はじめにサーバ装置10はアドレスリストLST1の第1行に記述されているクライアント装置20に対してモード切替コマンドを送信し、この応答がなければ(ステップS302;NO)、同様のモード切替コマンドをアドレスリストLST1の次の行に記述されているクライアント装置20に送信する、という処理を繰り返すことにより、代理サーバの特定を行っている。
モード切替コマンドに対する応答を受信したら(ステップS302;YES)、サーバ装置10はファイル情報データベースDB1,ユーザ情報データベースDB2およびアドレスリストLST1を代理サーバから受信し、更新する(ステップS303)。その後サーバ装置10は、代理サーバとして機能していたクライアント装置20aから終了コマンドが送信されたか否かを判断し(ステップS304)、これを受信したら(ステップS304;YES)、中央サーバとしての機能を開始し、各種サービスを実行する(ステップS305)。
【0044】
以上説明されたように、本実施形態のサービス提供システム1は、中央サーバであるサーバ装置10に異常が発生しても、ある特定のクライアント装置20が代理サーバとして機能することができるため、耐障害性の高いサービスを提供することが可能となる。また、サービスの提供に必要なファイル情報データベースDB1やユーザ情報データベースDB2の参照は暗号化によって制限されており、この制限を解除するための復号化プログラムを有するクライアント装置20しか参照することができないので、従来よりも安全なサービスを提供することが可能となる。
また、復号化プログラムに有効期限が設けられていることや、ユーザ登録をサーバ装置10のみで可能としたことも、本システムの安全性の向上に寄与している。
【0045】
(3)変形例
なお、本発明は上述した実施の形態に限定されるものではなく、種々の変形が可能である。以下にその例をいくつか示す。
まず、上述の実施形態においては、サービス提供システム1において提供されるサービスはファイル共有サービスであるとして説明したが、本発明はもちろんファイル共有サービス以外のサービスにも適用可能である。本発明は、サーバ装置に接続された複数のクライアント装置に提供される種々のサービスに適用可能であり、そのサービスの種類を問わない。また、クライアント装置がやりとりするファイルについても、必ずしもクライアント装置どうしが記憶しているものに限定されない。例えば、クライアント装置はシステム内に備えられたファイルサーバからファイルを取得するものであり、サーバ装置はクライアント装置からファイルの問い合わせを受け、この問い合わせに対してこのファイルサーバ内のファイルアドレスを通知するような仕組みのサービスにおいても、本発明はもちろん適用可能である。
【0046】
また、上述の実施形態においては、クライアント装置20が代理サーバの機能を実現するためのサーバプログラムPRG3をあらかじめ記憶していると説明したが、サーバプログラムPRG3を暗号化情報に含めて送信してもよい。このようにすれば、復号化がされなければサーバプログラムPRG3そのものの実行ができないようにすることができるので、より安全性を高めることが可能である。
【0047】
また、上述の実施形態においては、サーバ装置10は連続して接続されている時間が最も長いクライアント装置20を代理サーバとして特定していたが、これでは全てのクライアント装置20に代理サーバとなり得る可能性がある。そこで、代理サーバとなる権限を決められた一部のクライアント装置20のみに付与し、その他のクライアント装置20には代理サーバとして機能することができないようにしてもよい。このようにすれば、悪意あるユーザによる代理サーバの不正利用を防ぐことが可能となる。このような仕組みは、例えばアドレスリストLST1に代理サーバの実行権限を示すフラグ情報を含むことによって実現できる。
【0048】
また、上述の実施形態においては、サーバ装置10から送信される情報の参照を制限するための手段として暗号化・復号化を用いていたが、このような態様に限定されるものではない。例えば、必要な情報にzip形式の圧縮処理を施し、この圧縮データの解凍にパスワード制限を設けることによっても、情報の参照を制限することが可能となる。この場合、この圧縮データを解凍するためのパスワードを記述したファイルが、上述の実施形態の「復号化プログラム」に相当する。
【0049】
また、上述の実施形態においては、代理サーバとして機能するクライアント装置20は、サーバ装置10が有する機能のうち、ユーザ登録機能と復号化プログラム生成機能とを除いた諸機能を実現するものとして説明した。これは、悪意あるユーザによってユーザ登録や復号化プログラムの生成が無制限に行われることを防ぐことを目的としている。しかしながら、これらの機能の実行は必ずしも制限されるものではなく、代理サーバにサーバ装置10と同等の機能を持たせてもよい。このようにすれば、代理サーバによるサービス提供時においても、ユーザの利便性を損なわないようにすることが可能となる。
あるいは、より高い安全性を求めるのであれば、代理サーバが実行することのできる機能をさらに減らし、代理サーバにより提供されるサービスをさらに制限してもよい。
【0050】
また、上述の実施形態のサーバ装置やクライアント装置は、いわゆるサーバやパーソナルコンピュータ等に限定されるものではなく、例えば携帯電話機やPDA(Personal Digital Assistant)等であってもよい。
【図面の簡単な説明】
【0051】
【図1】本発明の一実施形態に係るサービス提供システムを概念的に示した図である。
【図2】同実施形態におけるサーバ装置のハードウェア構成を示したブロック図である。
【図3】同実施形態におけるアドレスリストの一例を示した図である。
【図4】同実施形態におけるファイル情報データベースの一例を示した図である。
【図5】同実施形態におけるユーザ情報データベースの一例を示した図である。
【図6】同実施形態におけるサーバ装置の諸機能を示した機能ブロック図である。
【図7】同実施形態におけるクライアント装置のハードウェア構成を示したブロック図である。
【図8】同実施形態において、サーバ装置の異常に対応するためのクライアント装置の処理を示したフローチャートである。
【図9】同実施形態におけるサーバ代理処理を示したフローチャートである。
【図10】同実施形態において、サーバ装置10が再び中央サーバとして機能するまでの処理を示したフローチャートである。
【符号の説明】
【0052】
1…サービス提供システム、10…サーバ装置、20,20a,20b,20c…クライアント装置、30…ネットワーク、11,21…制御部、12,22…記憶部、13,23…表示部、14,24…操作部、15,25…通信部。
【特許請求の範囲】
【請求項1】
サーバ装置と、当該サーバ装置とネットワークを介して接続された複数のクライアント装置とを備え、
前記サーバ装置は、
サービスを提供するために必要なサービス情報を記憶する記憶手段と、
前記記憶手段によって記憶されているサービス情報に基づいて、複数の前記クライアント装置にサービスを提供するサービス提供手段と、
前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段とを備え、
前記クライアント装置は、
前記サーバ装置によって送信されてくる前記制限情報および前記解除データを記憶する記憶手段と、
前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、
前記サーバ装置における動作異常の発生を検知する検知手段と、
前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サーバ装置の付随サービス提供手段が実行する前記制限処理、前記送信処理および前記代理サーバ特定処理を実行するサービス代理手段とを備える
耐障害性サービス提供システム。
【請求項2】
前記サーバ装置は、
前記動作異常が解消され、前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置による前記サービスの提供を終了させ、自装置によって当該サービスの提供を開始する
請求項1記載の耐障害性サービス提供システム。
【請求項3】
前記サーバ装置は、
前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置から前記サービス情報を受信してから、当該クライアント装置による前記サービスの提供を終了させる
請求項2記載の耐障害性サービス提供システム。
【請求項4】
サービスを提供するために必要なサービス情報を記憶する記憶手段と、
前記記憶手段によって記憶されているサービス情報に基づいて、ネットワークを介して接続された複数のクライアント装置にサービスを提供するサービス提供手段と、
前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を代理サーバとして特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段と
を備えるサーバ装置。
【請求項5】
前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる代理サービス終了手段と、
前記代理サービス終了手段が前記クライアント装置によるサービスを終了させた場合に、自装置によって前記サービスの提供を開始するサービス開始手段とを備える
請求項4記載のサーバ装置。
【請求項6】
前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる前に、当該クライアント装置から前記サービス情報を受信するサービス情報受信手段を備える
請求項5記載のサーバ装置。
【請求項7】
前記付随サービス提供手段は、
前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する
請求項4記載のサーバ装置。
【請求項8】
前記サービス情報が前記計測結果を含む
請求項7記載のサーバ装置。
【請求項9】
前記付随サービス提供手段は、
前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する
請求項4記載のサーバ装置。
【請求項10】
サービス情報の少なくとも一部の参照が制限された制限情報と、前記制限情報の参照制限を解除するための解除データとを記憶する記憶手段と、
前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、
ネットワークを介して接続されたサーバ装置における動作異常の発生を検知する検知手段と、
前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行するサービス実行手段とを備える
クライアント装置。
【請求項11】
前記検知手段は、さらに、前記サービス代理手段を実行しているクライアント装置における動作異常の発生を検知する
請求項10記載のクライアント装置。
【請求項12】
前記サービス実行手段は、
前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する
請求項10記載のクライアント装置。
【請求項13】
前記サービス情報が前記計測結果を含む
請求項12記載のクライアント装置。
【請求項14】
前記サービス実行手段は、
前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する
請求項10記載のクライアント装置。
【請求項1】
サーバ装置と、当該サーバ装置とネットワークを介して接続された複数のクライアント装置とを備え、
前記サーバ装置は、
サービスを提供するために必要なサービス情報を記憶する記憶手段と、
前記記憶手段によって記憶されているサービス情報に基づいて、複数の前記クライアント装置にサービスを提供するサービス提供手段と、
前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段とを備え、
前記クライアント装置は、
前記サーバ装置によって送信されてくる前記制限情報および前記解除データを記憶する記憶手段と、
前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、
前記サーバ装置における動作異常の発生を検知する検知手段と、
前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サーバ装置の付随サービス提供手段が実行する前記制限処理、前記送信処理および前記代理サーバ特定処理を実行するサービス代理手段とを備える
耐障害性サービス提供システム。
【請求項2】
前記サーバ装置は、
前記動作異常が解消され、前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置による前記サービスの提供を終了させ、自装置によって当該サービスの提供を開始する
請求項1記載の耐障害性サービス提供システム。
【請求項3】
前記サーバ装置は、
前記サービスを提供可能となった場合に、前記サービス代理手段を実行しているクライアント装置から前記サービス情報を受信してから、当該クライアント装置による前記サービスの提供を終了させる
請求項2記載の耐障害性サービス提供システム。
【請求項4】
サービスを提供するために必要なサービス情報を記憶する記憶手段と、
前記記憶手段によって記憶されているサービス情報に基づいて、ネットワークを介して接続された複数のクライアント装置にサービスを提供するサービス提供手段と、
前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を代理サーバとして特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行する付随サービス提供手段と
を備えるサーバ装置。
【請求項5】
前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる代理サービス終了手段と、
前記代理サービス終了手段が前記クライアント装置によるサービスを終了させた場合に、自装置によって前記サービスの提供を開始するサービス開始手段とを備える
請求項4記載のサーバ装置。
【請求項6】
前記代理サーバとして特定されるクライアント装置が提供しているサービスを終了させる前に、当該クライアント装置から前記サービス情報を受信するサービス情報受信手段を備える
請求項5記載のサーバ装置。
【請求項7】
前記付随サービス提供手段は、
前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する
請求項4記載のサーバ装置。
【請求項8】
前記サービス情報が前記計測結果を含む
請求項7記載のサーバ装置。
【請求項9】
前記付随サービス提供手段は、
前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する
請求項4記載のサーバ装置。
【請求項10】
サービス情報の少なくとも一部の参照が制限された制限情報と、前記制限情報の参照制限を解除するための解除データとを記憶する記憶手段と、
前記記憶手段に記憶された前記解除データを用いて、前記記憶手段に記憶している前記制限情報の参照制限を解除し、前記サービス情報を得る解除手段と、
ネットワークを介して接続されたサーバ装置における動作異常の発生を検知する検知手段と、
前記検知手段が前記動作異常を検知し、かつ、前記記憶手段が前記解除データを記憶している場合には、前記解除手段によって得られたサービス情報に基づいて、他のクライアント装置に対してサービスを提供するとともに、前記サービスに付随する付随サービスとして、前記サービス情報の少なくとも一部の参照が制限された制限情報を生成する制限処理と、生成された前記制限情報を複数の前記クライアント装置に送信する送信処理と、生成された前記制限情報の参照制限を解除するための解除データを生成する解除データ生成処理と、前記複数のクライアント装置の中から一部のクライアント装置を特定し、そのクライアント装置に前記解除データを送信する代理サーバ特定処理とを実行するサービス実行手段とを備える
クライアント装置。
【請求項11】
前記検知手段は、さらに、前記サービス代理手段を実行しているクライアント装置における動作異常の発生を検知する
請求項10記載のクライアント装置。
【請求項12】
前記サービス実行手段は、
前記代理サーバ特定処理において、複数のクライアント装置のそれぞれが前記ネットワークに接続されている時間を計測し、その計測結果に基づいて前記解除データを送信すべきクライアント装置を特定する
請求項10記載のクライアント装置。
【請求項13】
前記サービス情報が前記計測結果を含む
請求項12記載のクライアント装置。
【請求項14】
前記サービス実行手段は、
前記解除データ生成処理において、前記解除を行える期間が有限の解除データを生成する
請求項10記載のクライアント装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2006−202121(P2006−202121A)
【公開日】平成18年8月3日(2006.8.3)
【国際特許分類】
【出願番号】特願2005−14321(P2005−14321)
【出願日】平成17年1月21日(2005.1.21)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
【公開日】平成18年8月3日(2006.8.3)
【国際特許分類】
【出願日】平成17年1月21日(2005.1.21)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
[ Back to top ]