(57)【要約】【課題】事前に抽選処理を行うことでサーバ装置へのアクセスを制御し、これにより、ネットワークの輻輳とサーバ装置の負荷を低減するアクセス制御方法を提供する。【解決手段】サーバ装置は、トークンをランダムに生成したノードＩＤから特定されるノード装置宛に送信し、クライアント装置は、受信したトークにクライアント情報を追加する。サーバ装置は、トークンに追加されたクライアント情報を収集し、収集したクライアント情報から所定数のクライアント情報を選択し、選択したクライアント情報に対応するクライアント装置の利用者を、サービス提供を行う利用者に決定する。【選択図】図１
2010081298.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード装置で構成され、各ノード装置はノードＩＤを有するネットワークであって、各ノード装置は、ネットワークの一部のノード装置について、そのノードＩＤ及びアドレス情報を有し、アドレス情報を有さないノード装置へのパケットは、アドレス情報を有するノード装置へ送信して転送させ、複数のノード装置は、１つのサーバ装置と複数のクライアント装置に分類されるネットワークにおいて、クライアント装置を選択し、選択したクライアント装置の利用者のみにサービス提供を行うアクセス制御方法であって、
サーバ装置が、トークンを生成し、各トークンをランダムに生成したノードＩＤから特定されるノード装置宛に送信する第１のステップと、
サーバ装置が、クライアント装置によりトークンに追加された、少なくとも該クライアント装置のノードＩＤを含むクライアント情報を収集する第２のステップと、
サーバ装置が、収集したクライアント情報から、所定数のクライアント情報を選択し、選択したクライアント情報に対応するクライアント装置を、前記選択したクライアント装置とする第３のステップと、
を備えているアクセス制御方法。
【請求項２】
サーバ装置が送信したトークンは、トークンに追加されているクライアント情報が所定の数に達するまで宛先を変更されながらネットワーク内を転送され、トークンに追加されているクライアント情報が前記所定の数に達した場合、該トークンはサーバ装置に返送され、
第３のステップにおいて、サーバ装置は、１つのトークンから１つのクライアント情報のみを選択する、
請求項１に記載のアクセス制御方法。
【請求項３】
第３のステップにおいて、サーバ装置は、返送された各トークンのクライアント情報のうち、不正なクライアント情報を削除し、不正なクライアント情報の削除により、クライアント情報の数が所定値未満又は以下となったトークンを削除して、残りのトークンそれぞれから１つのクライアント情報を選択し、
不正なクライアント情報は、前記ネットワークの転送の規則に違反する転送を行ったクライアント装置に対応するクライアント情報である、
請求項２に記載の方法。
【請求項４】
トークンは、提供されるサービスを示す値を含んでおり、
クライアント装置は、サービスを示す値が同一であるトークンを最初に受信したときのみクライアント情報を追加し、
サーバ装置は、返送されたトークンのうち、サービスを示す値が同一であるトークンに複数回追加されているクライアント情報を、不正なクライアント情報とする、
請求項３に記載の方法。
【請求項５】
サーバ装置が送信したトークンは、クライアント装置によりクライアント情報が追加される度に、一旦、サーバ装置に戻され、
サーバ装置は、クライアント情報が追加されたトークンを受信すると該クライアント情報を仮登録し、トークンが宛先ノード装置から返送された場合、該トークンにより仮登録を行ったクライアント情報が不正であるか否かを判定し、不正である場合には、該トークンにより仮登録を行ったクライアント情報を廃棄し、不正でない場合には、該トークンにより仮登録を行ったクライアント情報を本登録し、
前記収集したクライアント情報は、本登録されたクライアント情報であり、
不正であるか否かの判定は、トークンの転送が、前記ネットワークの転送の規則に違反しているか否かにより行う、
請求項１に記載の方法。
【請求項６】
トークンは、提供されるサービスを示す値を含んでおり、
サーバ装置は、仮登録したクライアント情報を廃棄した場合、廃棄したクライアント情報に対応するクライアント装置に、クライアント情報の廃棄を、サービスを示す値と共に通知し、
クライアント装置は、サービスを示す値が同一であるトークンを最初に受信したときと、サーバ装置からクライアント情報廃棄の通知を受信した後、該クライアント情報廃棄の通知で示されたサービスを示す値と、サービスを示す値が同一であるトークンを最初に受信したときのみクライアント情報を追加する、
請求項５に記載の方法。
【請求項７】
クアイアント情報は、クライアント装置の識別子を含み、
クライアント装置のノードＩＤは、クライアント装置の識別子のハッシュ値であり、
クライアント装置の識別子は、クライアント装置の利用者の電子メールアドレス又はクライアント装置のＩＰアドレスに基づく値である、
請求項１から６のいずれか１項に記載の方法。
【請求項８】
複数のノード装置で構成され、各ノード装置はノードＩＤを有するネットワークであって、各ノード装置は、ネットワークの一部のノード装置について、そのノードＩＤ及びアドレス情報を有し、アドレス情報を有さないノード装置へのパケットは、アドレス情報を有するノード装置へ送信して転送させ、複数のノード装置は、１つのサーバ装置と複数のクライアント装置に分類されるネットワークに参加するサーバ装置であって、
ランダムに選択したノードＩＤから特定されるノード装置を宛先とするトークンを生成して送信するトークン生成手段と、
クライアント装置から返送されるトークンに含まれるクライアント情報を収集し、収集したクライアント情報から所定数のクライアント情報を選択する抽選手段と、
を備えているサーバ装置。
【請求項９】
受信したトークンに含まれるクライアント情報が所定の数に達していない場合において、トークンの宛先のノード装置が自装置ではない場合には受信したトークンを宛先のノード装置に向けて転送し、トークンの宛先のノード装置が自装置である場合にはランダムに選択したノードＩＤから特定されるノード装置を宛先ノード装置に変更して受信したトークンを送信する転送処理手段をさらに備えており、
抽選手段は、トークン生成手段によるトークンの送信後、所定の期間内に受信した、クライアント情報が前記所定の数に達したことにより返送されたトークンからクライアント情報を選択し、
選択するクライアント情報は、１つのトークンから１つのみとする、
請求項８に記載のサーバ装置。
【請求項１０】
抽選手段は、
前記返送されたトークンのクライアント情報のうち、不正なクライアント情報を削除し、不正なクライアント情報の削除により、クライアント情報の数が所定値未満又は以下となったトークンを削除するフィルタ手段と、
フィルタ手段によるトークン削除後、残りのトークンそれぞれから１つのクライアント情報を選択するクライアント装置選択手段と、
を備えており、
不正なクライアント情報は、前記ネットワークの転送の規則に違反する転送を行ったクライアント装置に対応するクライアント情報である、
請求項９に記載のサーバ装置。
【請求項１１】
トークン生成手段は、サービスを示す値をトークンに含め、
フィルタ手段は、返送されたトークンのうち、サービスを示す値が同一であるトークンに複数回追加されているクライアント情報を、不正なクライアント情報とする、
請求項１０に記載のサーバ装置。
【請求項１２】
受信したトークンに含まれるクライアント情報を仮登録し、受信したトークンが、該トークンの宛先のクライアント装置から送信されたものではない場合、仮登録したクライアント情報に対応するクライアント装置に該トークンを送信する手段と、
受信したトークンが、該トークンの宛先のクライアント装置から送信されたものである場合、該トークンにより仮登録されたクライアント情報が不正であるか否かを判定し、不正である場合には該トークンにより仮登録されたクライアント情報を廃棄し、不正でない場合には該トークンにより仮登録されたクライアント情報を本登録する手段と、
をさらに備えており、
前記収集したクライアント情報は、本登録されているクライアント情報であり、
不正であるか否かの判定は、トークンの転送が、前記ネットワークの転送の規則に違反しているか否かにより行う、
請求項８に記載のサーバ装置。
【請求項１３】
トークン生成手段は、生成したトークンを本登録されているクライアント情報に対応するクライアント装置の１つに送信する、
請求項１２に記載のサーバ装置。
【請求項１４】
複数のノード装置で構成され、各ノード装置はノードＩＤを有するネットワークであって、各ノード装置は、ネットワークの一部のノード装置について、そのノードＩＤ及びアドレス情報を有し、アドレス情報を有さないノード装置へのパケットは、アドレス情報を有するノード装置へ送信して転送させ、複数のノード装置は、１つのサーバ装置と複数のクライアント装置に分類されるネットワークに参加するクライアント装置であって、
受信したトークンに、少なくとも自装置のノードＩＤを含むクライアント情報を追加するクライアント情報追加手段と、
追加後のクライアント情報が所定の数に達していない場合において、トークンの宛先のノード装置が自装置ではない場合には受信したトークンを宛先のノード装置に向けて転送し、トークンの宛先のノード装置が自装置である場合にはランダムに選択したノードＩＤから特定されるノード装置を宛先ノード装置に変更して受信したトークンを送信し、追加後のクライアント情報が前記所定の数に達した場合には、サーバ装置に返送する判定・転送処理手段と、
を備えているクライアント装置。
【請求項１５】
トークンは、提供されるサービスを示す値を含んでおり、
クライアント情報追加手段は、サービスを示す値が同一であるトークンを最初に受信したときのみクライアント情報を追加する、
請求項１４に記載のクライアント装置。
【請求項１６】
複数のノード装置で構成され、各ノード装置はノードＩＤを有するネットワークであって、各ノード装置は、ネットワークの一部のノード装置について、そのノードＩＤ及びアドレス情報を有し、アドレス情報を有さないノード装置へのパケットは、アドレス情報を有するノード装置へ送信して転送させ、複数のノード装置は、１つのサーバ装置と複数のクライアント装置に分類されるネットワークに参加するクライアント装置であって、
トークンは、提供されるサービスを示す値を含んでおり、
トークンを受信した場合、自装置宛てであるか否かと、サービスを示す値が同一であるトークンを既に受信しているか否かを判定し、
サービスを示す値が同一であるトークンを受信していない場合には、少なくとも自装置のノードＩＤを含むクライアント情報をトークンに追加してサーバ装置に送信し、
サービスを示す値が同一であるトークンを受信している場合において、自装置宛てではない場合には宛先のノード装置に向けて受信したトークンを転送し、自装置宛てである場合には、受信したトークンをサーバ装置に送信する、
クライアント装置。
【請求項１７】
請求項８から１３のいずれか１項に記載のサーバ装置としてコンピュータを機能させるプログラム。
【請求項１８】
請求項１４から１６のいずれか１項に記載のクライアント装置としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置に対するアクセス制御技術に関する。より詳しくは、多数のクライアント装置が１つのサーバ装置に対して同時にアクセスすることにより生じる、当該サーバ装置の処理負荷の増大及びネットワークの輻輳の発生を防ぐアクセス制御技術に関する。
【背景技術】
【０００２】
例えば、人気のあるスポーツイベント又はコンサートのチケットの予約を、インターネット上のサーバ装置で、ある日時から受付を行う場合等、ネットワークに接続したサーバ装置に対して、多数のクライアント装置が同時にアクセスを開始する様な状況が存在する。この場合、サーバ装置やネットワークに大きな負荷が発生することになる。
【０００３】
サーバ装置は、通常、過負荷による種々の弊害を防ぐため、アクセスできるクライアント装置の上限をあらかじめ決めておき、上限を超えたアクセス要求については拒否又は廃棄を行っている。しかしながら、拒否されたクライアント装置は、接続できるまでアクセスを繰り返すことが予想され、よって、ネットワークに生じる輻輳を防ぐことはできない。また、サーバ装置側ではアクセスを拒否するための処理が発生するため、アクセス数の上限を決めておいたとしても、アクセス拒否の処理負荷により、サービスを提供しているクライアント装置に対する応答が遅くなるという問題もある。
【０００４】
一方、インターネット等の既存のネットワーク上に、独自のプロトコルを規定して通信を行うオーバーレイネットワーク又はピア・ツー・ピア（Ｐ２Ｐ）ネットワークの種々の形態が提案されており、非特許文献１には、Ｐ２Ｐネットワークのための分散ハッシュテーブルを用いたルックアッププロトコルであるＣｈｏｒｄが記載されている。
【０００５】
非特許文献１によると、Ｐ２Ｐネットワークに参加する各ノード装置は、ノード装置固有の値をＳＨＡ−１等のハッシュ関数により変換したｎビット長ハッシュ値（ｎは通常１６０）であるノードＩＤを有している。さらに、各ノード装置は、自装置のノードＩＤに２ｍ（ｍ＝０、１、・・・、ｎ−１）を足した値以上であり、かつ、その値に一番近い値をノードＩＤとするノード装置を、隣接ノード装置とし、隣接ノード装置と通信するために必要な情報、例えば、隣接ノード装置のノードＩＤ及びＩＰアドレスとの対応関係をフィンガテーブルに保持している。なお、演算は２ｎを法として、即ち、ｍｏｄ  ２ｎ上で行われる。
【０００６】
Ｃｈｏｒｄにおいて、あるノードＩＤのノード装置にパケットを送信する場合、フィンガテーブルに含まれる隣接ノード装置の内、そのノードＩＤが、宛先ノード装置のノードＩＤより小さくて、かつ、一番近いノード装置にパケットを送信し、パケットを受信したノード装置は、同じく、宛先ノード装置のノードＩＤに基づき隣接ノード装置にパケットの転送を行い、これにより、最終的に宛先ノード装置にパケットが到達することになる。Ｃｈｏｒｄにおいて、パケットは、参加しているノード装置のノードＩＤが増加する方向に転送され、Ｃｈｏｒｄリングと呼ばれている。
【０００７】
【非特許文献１】Ｉ．Ｓｔｏｃｉａ、ｅｔ  ａｌ．、“Ｃｈｏｒｄ：Ａ  Ｓｃａｌａｂｌｅ  Ｐｅｅｒ−ｔｏ−ｐｅｅｒ  Ｌｏｏｋｕｐ  Ｓｅｒｖｉｃｅ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ａｐｐｌｉｃａｔｉｏｎｓ”、ＡＣＭ  ＳＩＧＣＯＭＭ  ２００１、２００１年
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ここで、サーバ装置へのアクセス制御にＣｈｏｒｄを利用することを考える。具体的には、サーバ装置及びこのサーバ装置が提供するサービスの利用を希望する全クライアント装置をノード装置として、まずＣｈｏｒｄリングを構築する。続いて、サーバ装置が、２ｎ−１以下の数をランダムに発生させ、この発生した値未満で、かつ、一番近い値をノードＩＤとするクライアント装置に対して当選通知を行い、当選通知を受け取ったクライアント装置にのみサービス提供を行うことを考える。なお、当選させる数は、例えば、販売するチケットの数の様に、提供するサービス内容により決まる値である。
【０００９】
この場合、当選通知は、Ｃｈｏｒｄによるパケット転送の仕組みから、通常、当選しなかったクライアント装置がその転送に関わることになる。しかしながら、当選しなかったクライアント装置にとって、当選した他のクライアント装置へのパケット転送は意味がなく、逆に、例えば、このパケットを廃棄することで、再抽選が行われる可能性があるため、悪意の利用者による廃棄や改変が行われる可能性が生じる。
【００１０】
つまり、サーバ装置によるサービス提供を受けるクライアント装置を抽選にて決定するために、例えばＣｈｏｒｄ等の、抽選に参加している他のクライアント装置がパケット転送に関わるネットワークを利用する場合、転送に関わるクライアント装置による廃棄や改変を防ぐことが必要となる。
【００１１】
したがって、本発明は、上記廃棄や改変を可能な限り防ぎつつ、抽選によりサービス提供対象者をあらかじめ決定し、これにより輻輳の発生を抑えるアクセス制御方法と、該方法で使用するサーバ装置及びクライアント装置、並びに、コンピュータを前記サーバ装置又はクライアント装置として機能させるプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明におけるアクセス制御方法によれば、
複数のノード装置で構成され、各ノード装置はノードＩＤを有するネットワークであって、各ノード装置は、ネットワークの一部のノード装置について、そのノードＩＤ及びアドレス情報を有し、アドレス情報を有さないノード装置へのパケットは、アドレス情報を有するノード装置へ送信して転送させ、複数のノード装置は、１つのサーバ装置と複数のクライアント装置に分類されるネットワークにおいて、クライアント装置を選択し、選択したクライアント装置の利用者のみにサービス提供を行うアクセス制御方法であって、サーバ装置が、トークンを生成し、各トークンをランダムに生成したノードＩＤから特定されるノード装置宛に送信する第１のステップと、サーバ装置が、クライアント装置によりトークンに追加された、少なくとも該クライアント装置のノードＩＤを含むクライアント情報を収集する第２のステップと、サーバ装置が、収集したクライアント情報から、所定数のクライアント情報を選択し、選択したクライアント情報に対応するクライアント装置を、前記選択したクライアント装置とする第３のステップとを備えていることを特徴とする。
【００１３】
本発明におけるアクセス制御方法の他の実施形態によれば、
サーバ装置が送信したトークンは、トークンに追加されているクライアント情報が所定の数に達するまで宛先を変更されながらネットワーク内を転送され、トークンに追加されているクライアント情報が前記所定の数に達した場合、該トークンはサーバ装置に返送され、第３のステップにおいて、サーバ装置は、１つのトークンから１つのクライアント情報のみを選択することも好ましい。
【００１４】
また、本発明におけるアクセス制御方法の他の実施形態によれば、
第３のステップにおいて、サーバ装置は、返送された各トークンのクライアント情報のうち、不正なクライアント情報を削除し、不正なクライアント情報の削除により、クライアント情報の数が所定値未満又は以下となったトークンを削除して、残りのトークンそれぞれから１つのクライアント情報を選択し、不正なクライアント情報は、前記ネットワークの転送の規則に違反する転送を行ったクライアント装置に対応するクライアント情報であることも好ましい。
【００１５】
さらに、本発明におけるアクセス制御方法の他の実施形態によれば、
トークンは、提供されるサービスを示す値を含んでおり、クライアント装置は、サービスを示す値が同一であるトークンを最初に受信したときのみクライアント情報を追加し、サーバ装置は、返送されたトークンのうち、サービスを示す値が同一であるトークンに複数回追加されているクライアント情報を、不正なクライアント情報とすることも好ましい。
【００１６】
さらに、本発明におけるアクセス制御方法の他の実施形態によれば、
サーバ装置が送信したトークンは、クライアント装置によりクライアント情報が追加される度に、一旦、サーバ装置に戻され、サーバ装置は、クライアント情報が追加されたトークンを受信すると該クライアント情報を仮登録し、トークンが宛先ノード装置から返送された場合、該トークンにより仮登録を行ったクライアント情報が不正であるか否かを判定し、不正である場合には、該トークンにより仮登録を行ったクライアント情報を廃棄し、不正でない場合には、該トークンにより仮登録を行ったクライアント情報を本登録し、前記収集したクライアント情報は、本登録されたクライアント情報であり、不正であるか否かの判定は、トークンの転送が、前記ネットワークの転送の規則に違反しているか否かにより行うことも好ましい。
【００１７】
さらに、本発明におけるアクセス制御方法の他の実施形態によれば、
トークンは、提供されるサービスを示す値を含んでおり、サーバ装置は、仮登録したクライアント情報を廃棄した場合、廃棄したクライアント情報に対応するクライアント装置に、クライアント情報の廃棄を、サービスを示す値と共に通知し、クライアント装置は、サービスを示す値が同一であるトークンを最初に受信したときと、サーバ装置からクライアント情報廃棄の通知を受信した後、該クライアント情報廃棄の通知で示されたサービスを示す値と、サービスを示す値が同一であるトークンを最初に受信したときのみクライアント情報を追加することも好ましい。
【００１８】
さらに、本発明におけるアクセス制御方法の他の実施形態によれば、
クアイアント情報は、クライアント装置の識別子を含み、クライアント装置のノードＩＤは、クライアント装置の識別子のハッシュ値であり、クライアント装置の識別子は、クライアント装置の利用者の電子メールアドレス又はクライアント装置のＩＰアドレスに基づく値であることも好ましい。
【００１９】
本発明におけるサーバ装置によれば、
複数のノード装置で構成され、各ノード装置はノードＩＤを有するネットワークであって、各ノード装置は、ネットワークの一部のノード装置について、そのノードＩＤ及びアドレス情報を有し、アドレス情報を有さないノード装置へのパケットは、アドレス情報を有するノード装置へ送信して転送させ、複数のノード装置は、１つのサーバ装置と複数のクライアント装置に分類されるネットワークに参加するサーバ装置であって、ランダムに選択したノードＩＤから特定されるノード装置を宛先とするトークンを生成して送信するトークン生成手段と、クライアント装置から返送されるトークンに含まれるクライアント情報を収集し、収集したクライアント情報から所定数のクライアント情報を選択する抽選手段とを備えていることを特徴とする。
【００２０】
本発明におけるサーバ装置の他の実施形態によれば、
受信したトークンに含まれるクライアント情報が所定の数に達していない場合において、トークンの宛先のノード装置が自装置ではない場合には受信したトークンを宛先のノード装置に向けて転送し、トークンの宛先のノード装置が自装置である場合にはランダムに選択したノードＩＤから特定されるノード装置を宛先ノード装置に変更して受信したトークンを送信する転送処理手段をさらに備えており、抽選手段は、トークン生成手段によるトークンの送信後、所定の期間内に受信した、クライアント情報が前記所定の数に達したことにより返送されたトークンからクライアント情報を選択し、選択するクライアント情報は、１つのトークンから１つのみとすることも好ましい。
【００２１】
また、本発明におけるサーバ装置の他の実施形態によれば、
抽選手段は、前記返送されたトークンのクライアント情報のうち、不正なクライアント情報を削除し、不正なクライアント情報の削除により、クライアント情報の数が所定値未満又は以下となったトークンを削除するフィルタ手段と、フィルタ手段によるトークン削除後、残りのトークンそれぞれから１つのクライアント情報を選択するクライアント装置選択手段とを備えており、不正なクライアント情報は、前記ネットワークの転送の規則に違反する転送を行ったクライアント装置に対応するクライアント情報であることも好ましい。
【００２２】
さらに、本発明におけるサーバ装置の他の実施形態によれば、
トークン生成手段は、サービスを示す値をトークンに含め、フィルタ手段は、返送されたトークンのうち、サービスを示す値が同一であるトークンに複数回追加されているクライアント情報を、不正なクライアント情報とすることも好ましい。
【００２３】
さらに、本発明におけるサーバ装置の他の実施形態によれば、
受信したトークンに含まれるクライアント情報を仮登録し、受信したトークンが、該トークンの宛先のクライアント装置から送信されたものではない場合、仮登録したクライアント情報に対応するクライアント装置に該トークンを送信する手段と、受信したトークンが、該トークンの宛先のクライアント装置から送信されたものである場合、該トークンにより仮登録されたクライアント情報が不正であるか否かを判定し、不正である場合には該トークンにより仮登録されたクライアント情報を廃棄し、不正でない場合には該トークンにより仮登録されたクライアント情報を本登録する手段とをさらに備えており、前記収集したクライアント情報は、本登録されているクライアント情報であり、不正であるか否かの判定は、トークンの転送が、前記ネットワークの転送の規則に違反しているか否かにより行うことも好ましい。
【００２４】
さらに、本発明におけるサーバ装置の他の実施形態によれば、
トークン生成手段は、生成したトークンを本登録されているクライアント情報に対応するクライアント装置の１つに送信することも好ましい。
【００２５】
本発明におけるクライアント装置によれば、
複数のノード装置で構成され、各ノード装置はノードＩＤを有するネットワークであって、各ノード装置は、ネットワークの一部のノード装置について、そのノードＩＤ及びアドレス情報を有し、アドレス情報を有さないノード装置へのパケットは、アドレス情報を有するノード装置へ送信して転送させ、複数のノード装置は、１つのサーバ装置と複数のクライアント装置に分類されるネットワークに参加するクライアント装置であって、受信したトークンに、少なくとも自装置のノードＩＤを含むクライアント情報を追加するクライアント情報追加手段と、追加後のクライアント情報が所定の数に達していない場合において、トークンの宛先のノード装置が自装置ではない場合には受信したトークンを宛先のノード装置に向けて転送し、トークンの宛先のノード装置が自装置である場合にはランダムに選択したノードＩＤから特定されるノード装置を宛先ノード装置に変更して受信したトークンを送信し、追加後のクライアント情報が前記所定の数に達した場合には、サーバ装置に返送する判定・転送処理手段とを備えていることを特徴とする。
【００２６】
また、本発明におけるクライアント装置によれば、
トークンは、提供されるサービスを示す値を含んでおり、クライアント情報追加手段は、サービスを示す値が同一であるトークンを最初に受信したときのみクライアント情報を追加することも好ましい。
【００２７】
さらに、本発明におけるクライアント装置によれば、
複数のノード装置で構成され、各ノード装置はノードＩＤを有するネットワークであって、各ノード装置は、ネットワークの一部のノード装置について、そのノードＩＤ及びアドレス情報を有し、アドレス情報を有さないノード装置へのパケットは、アドレス情報を有するノード装置へ送信して転送させ、複数のノード装置は、１つのサーバ装置と複数のクライアント装置に分類されるネットワークに参加するクライアント装置であって、トークンは、提供されるサービスを示す値を含んでおり、トークンを受信した場合、自装置宛てであるか否かと、サービスを示す値が同一であるトークンを既に受信しているか否かを判定し、サービスを示す値が同一であるトークンを受信していない場合には、少なくとも自装置のノードＩＤを含むクライアント情報をトークンに追加してサーバ装置に送信し、サービスを示す値が同一であるトークンを受信している場合において、自装置宛てではない場合には、宛先のノード装置に向けて、受信したトークンを転送し、自装置宛てである場合には、受信したトークンをサーバ装置に送信することを特徴とする。
【００２８】
さらに、上記サーバ装置としてコンピュータを機能させるプログラムと、上記クライアント装置としてコンピュータを機能させるプログラムが本発明により提供される。
【発明の効果】
【００２９】
サーバ装置は、クライアント装置を介してアクセスを許可する利用者を選択し、この選択した利用者にのみサービス提供を行うため、サービス開始に伴うネットワーク輻輳及びサーバ装置が過負荷となることを防ぐことができる。本発明において、各クライアント装置は、トークンの転送に関わって初めて当選する余地ができるため、受け取ったトークンを廃棄することなく転送することが期待できる。
【００３０】
また、あるサービスに関する抽選において、抽選対象となるクライアント情報は、各クライント装置共に１つのみとすることでトークンを受信するクライアント装置の偏りを補正し、さらに、規則に違反してクライアント情報を書き込んだクライアント装置や、不正な転送を行ったクライアント装置を抽選対象から削除することで、公平な抽選処理を実現することができる。
【発明を実施するための最良の形態】
【００３１】
本発明を実施するための最良の実施形態について、以下では図面を用いて詳細に説明する。なお、以下の実施形態において、サーバ装置とクライアント装置は、Ｃｈｏｒｄの規定に従いパケットの転送を行うものとする。このため、クライアント装置は、装置又は装置利用者の識別子（以下、クライアント識別子と呼ぶ）のハッシュ関数によるハッシュ値を、ノードＩＤとしてＣｈｏｒｄリングに参加する。また、サーバ装置もＣｈｏｒｄの仕組みにおいては、クライント装置と同じに扱われ、これらをまとめてノード装置と呼ぶ。しかしながら、本実施形態において、サーバ装置は、複数のノードＩＤを用いてＣｈｏｒｄリングに参加を行う。本実施形態によるＣｈｏｒｄリングの例を図７に示す。
【００３２】
図７において、白丸はクライアント装置であり、黒丸はサーバ装置であり、アルファベットは各装置のノードＩＤである。図７において、サーバ装置は１つであるが、“ｃ”、“ｇ”、“ｋ”及び“ｏ”の４つのノードＩＤを用いてＣｈｏｒｄリングに参加している。なお、以下の実施形態においては、クライアント識別子として、当該クライアント装置を利用している利用者の電子メールアドレスに基づき生成した値を使用する。具体的には、抽選ごとに異なるランダムな値をあらかじめ決定し、電子メールアドレスにこのランダムな値を結合した値をクライアント識別子とする。ここで、ランダムな値を結合する目的は、抽選のたびにクライアント装置のノードＩＤをランダムに変化させるためである。なお、サーバ装置が複数のノードＩＤを決める方法は任意であり、例えば、クライアント装置と同じく、サーバ装置を運用しているものの電子メールアドレスに基づくハッシュ値に加え、サーバ装置に関する他の種類の識別子に基づくハッシュ値や、ランダムに直接発生した値を使用することができる。
【００３３】
図１は、本発明の第１実施形態によるアクセス制御方法に関し、サーバ装置における処理の概略を示すフロー図である。ここでは、Ｘ人の当選者を選択するものとする。まず、サーバ装置に、サーバ装置の運用者により残り当選者数Ｘと、当選率Ｗが設定される（Ｓ１）。ここで、当選率Ｗは、０＜Ｗ≦１の値である。
【００３４】
サーバ装置は、残り当選者数Ｘと当選率Ｗに基づき、       ｉｎｔ（Ｘ／Ｗ）個のトークンを生成してＣｈｏｒｄリングに送信する（Ｓ２）。ここで、ｉｎｔ（）は、小数点以下を切り捨てる関数である。なお、各トークンの宛先とするノード装置は、ノードＩＤで指定され、この値は、それぞれ、サーバ装置がランダムに生成を行う。また、サーバ装置は、複数のノードＩＤでＣｈｏｒｄリングに参加しているが、生成したトークンをＣｈｏｒｄリングに投入するに当たり使用するノードＩＤもランダムに選択する。つまり、例えば、図７の状態において、あるトークンは、ノードＩＤが“ｃ”である場合のフィンガテーブルに基づき、ノードＩＤが“ｃ”の位置から送信され、あるトークンは、ノードＩＤが“ｇ”である場合のフィンガテーブルに基づき、ノードＩＤが“ｇ”の位置から送信される。つまり、トークンの投入位置は、総てのトークンで同一ではない。
【００３５】
Ｃｈｏｒｄリングに投入されたトークンは、Ｃｈｏｒｄの転送規則に従い、その宛先であるノード装置に向け転送される。なお、宛先とするノードＩＤは、ランダムに発生したものであるため、そのノードＩＤのノード装置が必ず存在するとは限らない。よって、本発明においては、宛先のノード装置は、宛先のノードＩＤ未満で、かつ、一番近い値をノードＩＤとするノード装置とする。しかしながら、宛先のノード装置が一意に特定できれば良く、本発明はこれに限定されるものではない。
【００３６】
本実施形態において、トークンの転送に関わったクライアント装置と、当該トークンの宛先クライアント装置は、ノードＩＤ及びクライアント識別子を含むクライアント情報をトークンに追加する。宛先のノード装置に到達しても、クライアント情報がＮ個に達しない場合、この宛先のノード装置は、再度、ランダムな値を発生させ、受信したトークンの宛先を、新たに発生した値で上書きし、この新たな宛先に向け、受信したトークンを再度Ｃｈｏｒｄリングに投入する。一方、クライアント情報がＮ個となった場合、クライアント装置は、その時点で、受信したトークンをサーバ装置に返送する。なお、このＮ個はあらかじめ決められた値とする。
【００３７】
サーバ装置は、所定の期間内に返送された、それぞれがＮ個のクライアント情報を有するトークンの選択処理又はフィルタ処理を行う（Ｓ３）。なお、選択処理の詳細は後述する。続いて、サーバ装置は、選択した各トークンから、それぞれ、１つのクライアント情報を選択し、このクライアント情報を追加したクライアント装置の利用者を、サービス提供を行う利用者として決定する（Ｓ４）。つまり、各トークンから１人の当選者を決定する。
【００３８】
サーバ装置は、残り当選者数を更新し（Ｓ５）、この数が０であれば、つまり、Ｘ人の当選者が選択されていれば（Ｓ６）、クライアント識別子である、この当選者の電子メールアドレスに当選の通知を行い（Ｓ７）、Ｘ人に達していなければ、再度、Ｓ２からＳ６を繰り返す。
【００３９】
図２は、第１実施形態におけるサーバ装置を説明するための簡略化したブロック図である。図２によると、サーバ装置は、パラメータ保持部１と、トークン生成部２と、宛先発生部３と、トークン送受信部４と、判定部５と、抽選部６と、当選者管理部７と、転送処理部８と、通知処理部９とを備えている。
【００４０】
パラメータ保持部１は、上述した残り当選者数と当選率の２つの値を保持しており、トークン生成部２は、“残り当選者数／当選率”の小数点以下を切り捨てた数に等しいトークンを生成する。
【００４１】
図３は、第１実施形態で使用するトークンを示す図である。図３に示す様に、トークンは、トークンヘッダ部とトークンペイロード部を有しており、トークンヘッダ部は、宛先ノードＩＤと、サーバＩＰアドレスと、抽選ＩＤと、非対称鍵と、認証子の各フィールドを含んでいる。
【００４２】
宛先ノードＩＤ・フィールドは、上述した様に、トークンの宛先となるノード装置を示すフィールドであり、宛先発生部３がランダムに発生した０から２ｎ−１のいずれかの値が設定される。なお、上述した様に、本実施形態において、宛先ノード装置は、宛先ノードＩＤ・フィールドが示す値未満で一番近い値をノードＩＤとするノード装置である。
【００４３】
サーバＩＰアドレス・フィールドは、サーバ装置のＩＰアドレスを示すフィールドであり、トークンに追加されたクライアント情報がＮ個となったときに、このトークンをサーバ装置に直接送り返すために使用する。また、抽選ＩＤ・フィールドには、抽選を識別する識別子が設定される。具体的には、上述した様に、Ｘ人の当選者を決定するために、図１のＳ２からＳ６の処理が１回以上繰り返され、各処理において１個以上のトークンが生成されるが、このＸ人の当選者を決定するために生成するトークンの抽選ＩＤ・フィールドには総て同じ値を設定する。つまり、抽選ＩＤ・フィールドの値が違うことは、抽選に当選することにより享受できるサービスが異なることを意味する。非対称鍵・フィールドには、公開鍵暗号方式における公開鍵又は秘密鍵の値が設定され、後述するトークンペイロード部の暗号化に使用する。なお、一般的には、公開鍵より秘密鍵のほうが短いため、秘密鍵を設定することが好ましい。最後に、認証子フィールドには、サーバだけが保有する鍵による認証子フィールドを除くトークンヘッダ部の認証子が設定され、トークンヘッダ部改竄の検出に利用する。
【００４４】
トークンペイロード部は、図３に示す様に、サーバ情報と、クライアント情報を含んでいる。ここで、サーバ装置が最初にトークンを生成したときに存在するのはサーバ情報のみであり、Ｎ個のクライアント情報は、このトークンを受信した各クライアント装置が順番に追加するものである。サーバ情報は、トークン番号と宛先ノードＩＤの各フィールドを含み、トークン番号・フィールドには、ある抽選においてトークンごとに異なる値が設定される。つまり、抽選ＩＤが同じ値であるトークンのサーバ情報内のトークン番号・フィールドは、総て異なる値となる。また、サーバ情報の宛先ノードＩＤ・フィールドには、トークンを生成したときにおける、トークンヘッダ部の宛先ノードＩＤ・フィールドと同じ値が設定される。
【００４５】
クライアント情報は、ノードＩＤ、クライアント識別子及び宛先ノードＩＤの各フィールドを含み、ノードＩＤ・フィールドは、このクライアント情報を追加したクライアント装置のノードＩＤを示し、クライアント識別子・フィールドは、このクライアント情報を追加したクライアント装置のクライアント識別子を示すフィールドである。また、宛先ノードＩＤ・フィールドには、このクライアント情報が追加された時点における、トークンヘッダ部の宛先ノードＩＤ・フィールドと同じ値が設定される。なお、クライアント識別子には、電子メールアドレスにランダムな値を結合した値を使用しているが、ランダムな値はサーバ装置も保持しているため、クライアント識別子・フィールドには、このランダムな値を除いた、つまり、本実施形態においては電子メールアドレスのみを含める形であっても良い。
【００４６】
なお、トークンペイロード部は、非対称鍵・フィールドにより示される暗号化鍵で多重暗号化される。図４は、多重暗号化の説明図である。図４において、“ａ１”、“ａ２”、“ａ３”は、それぞれ、サーバ情報、クライアント情報＃１、クライアント情報＃２を表している。サーバ装置は、トークンペイロード部にサーバ情報を追加し、このサーバ情報の部分を、暗号化鍵で暗号化する（図４（ａ））。ここで、“α”は、暗号化されたサーバ情報である。続いて、このトークンを最初に受信したクライアント装置は、クライアント情報＃１を暗号化されたサーバ情報の後に追加し、暗号化されたサーバ情報とクライアント情報をまとめて暗号化鍵で暗号化する（図４（ｂ））。ここで、“ｂ”は、暗号化されたサーバ情報とクライアント情報＃１をまとめて１つの値とみなしたものであり、“β”は、“ｂ”の暗号化後の値である。同様に、次にこのトークンを受信したクライアント装置は、自身のクライアント情報＃２（つまり、“ａ３”）を、トークンペイロードに追加して、暗号化鍵で暗号化する（図４（ｃ））。上記と同様に、“ｃ”は、“ａ３”を追加後であり、かつ、暗号化前のトークンペイロード部を１つの値とみなしたものであり、“γ”は、“ｃ”の暗号化後の値である。
【００４７】
この構成により、各クライアント装置は、他のクライアント装置が追加したクライアント情報の内容を認識することはできず、クライアント装置が、特定のクライアント装置を妨害する目的で、このクライアント装置のクライアント情報を書き換えたり、廃棄したりすることを防ぐことができる。
【００４８】
図２に戻り、トークン送受信部４は、トークン生成部２が生成したトークンをＣｈｏｒｄリングに送信する。なお、上述した様にサーバ装置は、複数のノードＩＤでＣｈｏｒｄリングに参加しており、新規にトークンを投入するに当たり、トークン送受信部４は、投入位置をランダムに変更する。また、トークン送受信部４は、受信したトークンを判定部５に出力する。
【００４９】
判定部５は、受信したトークンが、Ｎ個のクライアント情報が追加されたことにより返送されたものであるか否かを判定し、Ｎ個のクライアント情報が追加されたことにより返送されたものである場合には抽選部６に出力し、それ以外の場合には転送処理部８に出力する。なお、Ｎ個のクライアント情報が追加されているか否かは、トークンペイロード部の長さで判定可能である。
【００５０】
転送処理部８に出力されることとなるトークンは、トークンヘッダ部の宛先ノードＩＤ・フィールドが示す宛先ノード装置への転送途中のもの、又は、宛先ノード装置がサーバ装置であることにより送信されてきたものであり、前者の場合には、フィンガテーブルに基づきトークン送受信部４経由で転送する。また、後者の場合には、トークンヘッダ部の宛先ノードＩＤ・フィールドを、宛先発生部３が生成するランダム値で上書きして、トークン送受信部４経由で再送信する。なお、この場合のトークンのＣｈｏｒｄリングへの投入位置は、このトークンを受信したときの宛先ノードＩＤで特定されるノードＩＤの位置とする。
【００５１】
抽選部６は、トークン生成部２によるトークンの生成及び送信後、タイマーを動作させ、所定期間内に返送されたトークンに基づき当選者を決定し、決定した当選者についての情報、より正確には、各トークンから１つだけ選択したクライアント情報を、当選者管理部７に出力し、当選者管理部７は、パラメータ保持部１の残り当選者数を更新する。サーバ装置は、トークン生成部２によるトークンの生成から、抽選部６による当選者の選択及び当選者管理部７による残り当選者数の更新までを１回の抽選とし、この抽選を残り当選者数が０となるまで複数回繰り返す。残り当選者数が０となった後、通知処理部９は、当選者管理部７が管理しているクライアント情報に基づき、各当選者に当選の通知を行う。具体的には、クライアント識別子である電子メールアドレスに対して、サーバ装置へのアクセスに使用するＵＲＬ情報と、ログインＩＤと、ログインパスワードを通知する。
【００５２】
図５は、第１実施形態におけるクライアント装置を説明する簡略化したブロック図である。図５によると、クライアント装置は、トークン送受信部１１と、判定・転送処理部１２と、追加済抽選ＩＤ管理部１３と、クライアント情報追加部１４と、宛先発生部１５とを備えている。
【００５３】
トークン送受信部１１は、受信したトークンを判定・転送処理部１２に出力し、判定・転送処理部１２は、まず、受信したトークンの抽選ＩＤ・フィールドの値が、追加済抽選ＩＤ管理部１３が管理している抽選ＩＤに含まれているか否かと、このトークンが自装置宛てであるか否かを判定する。まず、追加済抽選ＩＤ管理部１３が管理している抽選ＩＤに含まれている場合、クライアント装置は、自装置のクライアント情報をこのトークンに追加しない。そして、自装置宛てでない場合には、トークン送受信部１１経由で、このトークンを、宛先ノード装置に単に転送し、自装置宛ての場合には、トークンの宛先ノードＩＤ・フィールドを、宛先発生部１５がランダムに発生する０から２ｎ−１のいずれかの値で上書きし、トークン送受信部１１経由で送信を行う。
【００５４】
一方、受信したトークンの抽選ＩＤ・フィールドの値が、追加済抽選ＩＤ管理部１３が管理している抽選ＩＤに含まれていない場合には、抽選ＩＤ・フィールドの値を、追加済抽選ＩＤ管理部１３に出力すると共に、受信したトークンをクライント情報追加部１４に出力する。クライント情報追加部１４は、受信したトークンに自装置のクライアント情報を追加し、受信したトークンの非対称鍵・フィールドに含まれている暗号化鍵で、上述した多重暗号化を行い、再度、判定・転送処理部１２に出力する。判定・転送処理部１２は、クライント情報追加部１４からのトークンのクライアント情報の数を判定し、Ｎ個に達している場合には、トークン送受信部１１経由で、サーバＩＰアドレス・フィールドが示すＩＰアドレスに、つまり、サーバ装置に、このトークンを直接送信する。なお、クライアント情報数は、トークンペイロード部の長さにより判定可能である。
【００５５】
一方、Ｎ個未満の場合には、上述した自装置宛てであるか否かの判定結果に応じて、トークンヘッダ部の宛先ノードＩＤ・フィールドの値を変更せずに転送するか、宛先発生部１５が発生する値で上書きして転送を行う。
【００５６】
以上、本発明によるクライアント装置は、同一の抽選に関するトークンを複数回受信したとしても、自装置のクライアント情報を追加するのは最初の一度だけとする。Ｃｈｏｒｄによる転送において、サーバ装置のノードＩＤにて決まるフィンガテーブルに含まれるノード装置は、他のノード装置よりトークンの転送に関わる機会が通常多くなる。本発明において、サーバ装置は、複数のノードＩＤにてＣｈｏｒｄリングに参加し、これにより、転送に関わるノード装置を分散させてはいるが、やはり偏りは生じるため、ある抽選において、各クライアント装置が追加できるクライアント情報は１回のみとして抽選を公平なものとしている。
【００５７】
続いて、サーバ装置の抽選部６における処理について説明する。図６は、抽選部６のブロック図である。図６によると、抽選部６は、トークン選択部６１と、フィルタ部６２と、クライアント装置選択部６３とを備えている。
【００５８】
まず、所定期間内に返送されたトークンをＳ１個とすると、トークン選択部６１は、このＳ１個のトークンからｉｎｔｕ（Ｓ１×Ｗ）個のトークンを無作為に抽出する。ここで、ｉｎｔｕは小数点未満を切り上げる関数である。
【００５９】
続いて、フィルタ部６２は、トークン選択部６１が選択したトークンそれぞれに含まれるＮ個のクライアント情報のうち、不正なクライアント情報を削除し、さらに、残りのクライアント情報が所定値未満又は以下となったトークンを削除する。つまり、不正なクライアント情報を削除した後のクライアント情報数が、所定値以上又はより大きいトークンのみをクライアント装置選択部６３に出力する。
【００６０】
ここで、不正なクライアント情報とは、例えば、以下のものを言う。
（１）正しく復号できなかったクライアント情報。
なお、正しく復号できたか否かは、例えば、クライアント情報の各フィールドをＴｙｐｅ−Ｌｅｎｇｔｈ−Ｖａｌｕｅ形式にて記述することにより行う。つまり、例えば、各フィールドを示す値とその長さを常にクライアント情報に含め、これらが正しい値に復号できていない場合には不正なクライアント情報と判定する。
（２）複数回出現するクライアント情報。
なお、フィルタ部６２は、受信したトークンのクライアント情報を、ある抽選が終了するまで管理し、これにより複数回出現したクライアント情報を判定する。
（３）ノードＩＤ・フィールドの値とクライアント識別子・フィールドの値が対応しないクライアント情報。
（４）Ｃｈｏｒｄの転送方法とは矛盾する順序で追加されているクライアント情報の送信側のクライアント情報。
Ｃｈｏｒｄのフィンガテーブルによる転送は、ノードＩＤが増加する方向で、かつ、各ノード装置のノードＩＤで決まるフィンガテーブルに含まれるノード装置を経由するといった規則性があり、トークンペイロード部に含まれるサーバ情報の宛先ノードＩＤ・フィールド、並びに、Ｎ個のクライアント情報のノードＩＤ及び宛先ノードＩＤ・フィールドの値がどの様に並んでいるかにより検証が可能である。この場合、不正な転送を行ったクライアント装置のクライアント情報を不正なクライアント情報とし、不正な転送を行ったクライアント装置からトークンを受信したクライアント装置が追加したクライアント情報については、不正なクライアント情報としない。これは、悪意のあるクライアント装置が、特定のクライアント装置の利用者を妨害する目的で、トークンを転送する場合が考えられるからである。
【００６１】
また、例えば、宛先であるクライアント装置が、さらに宛先を上書きして送信する際に、受信したパケットを複数回、異なる宛先に送信した場合、サーバ装置は、同一のトークン番号を示すトークンを複数回受信することになる。この様な場合には、最初に返送されたトークンのみを有効とし、それ以外のトークンは総て削除する。また、有効なトークンのクライアント情報のうち、複数回の転送を行ったクライアント装置についてのクライアント情報は不正なものとして削除する。
【００６２】
最後に、クライアント装置選択部６３は、フィルタ部６２から受け取る複数のトークンそれぞれから、１つだけクライアント情報を無作為に選択し、選択したクライアント情報に対応するクライアント装置の利用者を当選者とする。つまり、フィルタ部６２からＳ２個のトークンを受け取ったとすると、この回の抽選ではＳ２人が当選することになる。
【００６３】
ここで上記（２）の条件は、上述した様に抽選の公平性を保つために設けたものである。なお、ある回までに当選したクライアント情報が、それ以降の回の抽選において返送されたトークンに含まれていた場合、抽選部６のフィルタ部６２は、当選者管理部７にそのクライアント情報を通知し、当選者管理部７は、通知されたクライアント情報を当選者のリストから削除する。
【００６４】
一方（４）の条件は、例えば、トークンを受け取ったクライアント装置が、ある特定のグループのクライアント装置間でトークンを転送し、これにより、このグループの当選確率を上げることを防ぐことを目的としている。ただし、クライアント情報のノードＩＤ及び宛先ノードＩＤ・フィールドに基づく検証は荒く漏れも多いため、本発明においては、１つのトークンから１人だけ当選者を選択する。これにより、Ｃｈｏｒｄの転送方法を無視し、グループのクライアント装置間でトークンを転送できる状況が存在したとしても、このグループからの当選者を１人のみに抑え、残り総てを落選させることができる。
【００６５】
以上、本発明においては、サーバ装置がアクセスを許可してサービス提供を行う利用者を、クライアント装置を介して選択し、この利用者のみに、サーバ装置へのアクセス方法を通知するため、サービス開始に伴うネットワーク輻輳及びサーバ装置が過負荷となることを防ぐことができる。本発明において、各クライアント装置は、トークンの転送に関わって初めて当選する余地ができるため、受け取ったトークンを廃棄することなく転送することが期待できる。なお、ある抽選にて書き込めるクライアント情報は１回のみであるため、例えば、既にクライアント情報を書き込んだクライアント装置が、書き込んだトークンとは異なるトークンを受信した場合、このトークンを転送することによる利点はない。しかしながら、受信したトークンのクライアント情報の数が、自装置が書き込んだときより少なくなっている場合以外、自装置がクライアント情報を既に追加したトークンを再度受信したのか、他のトークンを受信したのかが判定できないため、悪意により廃棄されるトークンの数はそれ程多くならないことが期待できる。
【００６６】
さらに、図６を用いて説明した抽選部６での処理により、悪意のあるグループによる不正も極力抑えることが可能になる。つまり、公平なアクセス制御を実現することが可能になる。なお、Ｃｈｏｒｄを使用する実施形態にて説明を行ったが、本発明は、サーバ装置とクライアント装置で構成され、各装置がある範囲のノードＩＤを有し、パケットの宛先がこのノードＩＤに基づき指定され、さらに、パケットの転送に宛先以外のクライアント装置が関わる総てのネットワークに適用可能である。また、クライアント識別子を電子メールアドレスとし、この電子メールアドレスに当選通知を行ったが、本発明はこれに限定されず、クライアント装置の利用者と通信できる他の値、例えば、クライアント装置のＩＰアドレスを、クライアント識別子としても良い。この場合には、当選通知を、クライアント識別子で示されるＩＰアドレスに送信し、サービス提供も当選したＩＰアドレスのクライアント装置に限定することができる。なお、サービス提供を受けるためにアクセスする装置と、抽選のために使用するクライアント装置は同一でなくても良い。
【００６７】
さらに、本発明においては、通知処理部９が、当選通知に例えばサービス提供のためのＵＲＬ等を含めるため、抽選に用いたサーバ装置と、実際にサービスを提供するための装置を、異なる装置とすることも可能である。異なるものとすることで、抽選にはずれたものが、実際にサービスを提供する装置に妨害目的でアクセスすることを防ぐことができる。また、トークンに追加するクライアント情報の数Ｎは、システムでの所定の値としたが、トークンヘッダ部にクライアント情報数・フィールドを設けて、トークンにて指定する形態であっても良い。
【００６８】
続いて、本発明の第２実施形態について説明する。なお、以下の説明においては第１実施形態との相違点について主に説明し、第１実施形態と同じ部分については説明を省略する。
【００６９】
第１実施形態において、各トークンは、クライアント情報がＮ個となるまでＣｈｏｒｄリング内において転送され、クライアント情報がＮ個となったときにサーバ装置に返送されるものであった。これに対し、本実施形態において、トークンは、その宛先のノード装置への転送途中において、クライアント情報が追加されるたびに一旦サーバ装置に戻され、サーバ装置は、トークンに含まれているクライアント情報を仮登録した後、受け取ったトークンを、トークンを返送したクライアント装置に送信する。トークンが、宛先のノード装置に到達した場合、受け取ったノード装置は必ずこのトークンをサーバ装置に返送し、サーバ装置は、このトークンが宛先ノード装置に到達するまでに、このトークンにより仮登録を行ったクライアント情報の検証を行う。仮登録を行ったクライアント情報の総てに問題が無ければ、総てのクライアント情報を本登録し、仮登録を行ったクライアント情報の１つにでも問題があれば、総てのクライアント情報を廃棄して、廃棄したことを対応するクライアント装置に通知する。本実施形態において、廃棄を通知されたクライアント装置は、既にクライアント情報の追加を行ったトークンと抽選ＩＤ・フィールドの値が同じトークンに対して、クライント情報の追加が可能となる。以後、サーバ装置が１つのトークンを送信し、このトークンが宛先のノード装置からサーバ装置に返送されるまでの単位をスロットと呼ぶ。
【００７０】
図８は、本実施形態において使用するトークンを示す図である。図８に示す様に、トークンは、トークンヘッダ部とトークンペイロード部を有しており、トークンヘッダ部は、宛先ノードＩＤと、サーバＩＰアドレスと、抽選ＩＤと、スロット番号と、シーケンス番号と、非対称鍵と、認証子の各フィールドを含み、スロット番号・フィールドには、ある抽選においてトークンごとに異なる値が設定され、シーケンス番号・フィールドには、クライアント情報の追加に伴いトークンがサーバ装置に返送される度に、１ずつ増加した値が設定される。なお、宛先ノードＩＤ、サーバＩＰアドレス、抽選ＩＤ、非対称鍵及び認証子・フィールドは、第１実施形態と同じであり説明は省略する。
【００７１】
トークンペイロード部は、図８に示す様に、ホップ情報と、クライアント情報を含んでいる。ホップ情報は、クライアント情報を追加することなくトークンを転送するクライアント装置と、トークンの宛先であるクライアント装置が追加するものであり、ノードＩＤと、クライアント識別子と、次ホップノードＩＤの各フィールドを含んでいる。なお、ノードＩＤ及びクライアント識別子・フィールドに設定される値は、第１実施形態と同じであり説明は省略する。次ホップノードＩＤ・フィールドには、Ｃｈｏｒｄの転送規則に基づき、トークンをその宛先のノード装置に送信するため、このトークンを直接送信するノード装置のノードＩＤを設定する。なお、自装置が宛先ノード装置である場合には、次ホップノードＩＤ・フィールドには自装置のノードＩＤを設定する。
【００７２】
本実施形態においては、その抽選において初めてトークンを受信するクライアント装置又は初めてではないが登録廃棄を通知されたクライアント装置が、トークンにクライアント情報を追加し、クライアント情報を追加したクライアント装置は、そのトークンを必ずサーバ装置に返送する。図８に示す様に、本実施形態において、クライアント情報は、ノードＩＤと、クライアント識別子と、ノードＩＰアドレスの各フィールドを含んでおり、ノードＩＰアドレス・フィールドには、このクライアント情報を追加したクライアント装置のＩＰアドレスが設定され、サーバ装置が、トークンをこのクライアント装置に戻すために使用する。その他のフィールドに設定される値は、第１実施形態と同じであり説明は省略する。また、少なくともホップ情報の部分については、第１実施形態で説明したのと同じく多重暗号化する。なお、トークンペイロード部全体を多重暗号化する形態であっても良い。
【００７３】
図９及び図１０は、本実施形態におけるシーケンス図である。なお、図９は、サーバ装置が初めてトークンを生成した場合のシーケンス図であり、図１０は、サーバ装置が最初のトークンによるスロット完了後に生成した２つ目のトークンについてのシーケンス図である。また、図９において、サーバ装置が生成したトークンの宛先は、クライアント装置Ｃであり、サーバ装置からクライアント装置Ｃに送信されるトークンは、Ｃｈｏｒｄの転送規則によりクライント装置Ａ及びＢにより中継されるものとする。さらに、図１０において、サーバ装置が生成したトークンの宛先は、クライアント装置Ｅであり、サーバ装置がこのトークンをクライアント装置Ａに送信した場合、このトークンは、Ｃｈｏｒｄの転送規則によりクライント装置Ｄにより中継されてクライアント装置Ｅに到達するものとする。なお、図９及び図１０において実線の矢印はＣｈｏｒｄに基づく転送を、点線の矢印はＣｈｏｒｄによらない転送を表している。
【００７４】
まず、図９のシーケンス図について説明する。サーバ装置は、生成したトークンをフィンガテーブルに従いクライアント装置Ａに送信する。クライアント装置Ａは、初めて受信したトークンであるためクライアント情報のみを追加し、このトークンをサーバＩＰアドレス・フィールドに設定されているサーバ装置のＩＰアドレスに基づきサーバ装置に返送する。サーバ装置は、受信したトークンに追加されているクライアント情報を仮登録、つまり保存する。また、サーバ装置は、ホップ情報が追加されていないことからトークンが宛先のノード装置に到達していないと判定し、よって、サーバ装置は、トークンからクライアント情報を除去し、トークンヘッダ部のシーケンス番号・フィールドの値を１増加させ、除去したクライアント情報のノードＩＰアドレス・フィールドの値に基づき、このトークンをクライアント装置Ａに送信する。
【００７５】
クライアント装置Ａは、受信したトークンにホップ情報を追加後、フィンガテーブルに従いクライアン装置Ｂに転送する。クライアント装置Ａと同様、クライアント装置Ｂは、受信したトークンにクライアント情報を追加してサーバ装置に返送し、サーバ装置は、受信したトークンに追加されているクライアント情報を仮登録する。なお、このときサーバ装置は、クライアント情報に対応付けてホップ情報も保存する。続いて、サーバ装置は、ホップ情報のノードＩＤ・フィールドと次ノードＩＤ・フィールドの値が同一でないことより、トークンが宛先のノード装置に到達していないと判定し、よって、サーバ装置は、ホップ情報及びクライアント情報を除去し、トークンヘッダ部のシーケンス番号・フィールドの値を１増加させたトークンをクライアント装置Ｂに送信する。
【００７６】
クライアント装置Ｂは、受信したトークンにホップ情報を追加後、フィンガテーブルに従いクライアント装置Ｃに転送する。クライアント装置Ｃは、トークンの宛先であるため、受信したトークンにホップ情報及びクライアント情報を追加してサーバ装置に返送する。ここで、クライアント装置Ｄが追加するホップ情報のノードＩＤ・フィールド及び次ホップノードＩＤ・フィールドには共にクライント装置ＤのノードＩＤが設定される。サーバ装置は、受信したトークンに追加されているクライアント情報を仮登録し、トークンに追加されている２つのホップ情報のうち、最後に追加されているホップ情報のノードＩＤ・フィールドと次ホップノードＩＤ・フィールドの値が同一であることから、このトークンが宛先クライアント装置から返送されたことを認識する。
【００７７】
したがって、サーバ装置は、１つのスロットが終了したことを認識し、仮登録されたクライアント情報が不正なものであるか否かを検査する。検査項目は、第１実施形態と同様以下の項目である。
（１）正しく復号できなかったクライアント情報。
（２）複数回出現するクライアント情報。
（３）ノードＩＤ・フィールドの値とクライアント識別子・フィールドの値が対応しないクライアント情報。
（４）Ｃｈｏｒｄの転送規則に違反する順序で追加されているクライアント情報。
なお、転送規則に違反していることはホップ情報に含まれるノードＩＤ及び次ホップノードＩＤ・フィールドの関係と、各ホップ情報の追加の順番により判定可能である。本実施形態においては、転送に関わった総てのノード装置がホップ情報に現れるため、第１実施形態より良く不正な転送の検出が可能である。サーバ装置は、このスロットにより集めた総てのクライアント情報が不正でなければ、これらクライアント情報を本登録し、１つでも不正なクライアント情報が存在する場合には、このスロットにより集めた総てのクライアント情報を廃棄し、廃棄したクライアント情報に対応するクライアント装置に廃棄の通知を行う。なお、トークンの生成後、所定の期間内にスロットが完了しない場合には、この生成したトークンは不完了とし、所定の期間が経過した段階で仮登録されているクライント情報に対応するクライアント装置に廃棄の通知を行う。また、廃棄の通知後にトークンが返送された場合には、そのトークンを無視する。
【００７８】
続いて。図１０のシーケンス図について説明する。第１実施形態において、サーバ装置は、複数のノードＩＤを用いてＣｈｏｒｄリングに参加していた。しかしながら、本実施形態においては、１つのノードＩＤにてＣｈｏｒｄリングに参加する。１つのノードＩＤにてＣｈｏｒｄリングに参加することにより生ずるトークンを受信するクライアント装置の偏りをなくすため、２回目以降のスロットにおいて、サーバ装置は、トークンの送信先をフィンガテーブルに基づき決定するのではなく、それまでに本登録されているクライアント情報から１つをランダムに選択することにより決定する。図１０においては、１回目のスロットで本登録されたクライアント装置Ａ、Ｂ、Ｃのうち、クライアント装置Ａのクライアント情報が選択され、サーバ装置は、生成したトークンをクライアント装置Ａに直接送信している。なお、一度選択されたクライアント情報は、それ以降のスロットにおけるクライアント情報の選択候補から除外することが望ましい。
【００７９】
クライアント装置Ａは、受信したトークンで特定される抽選に関し、既にクライアン情報を追加しているため、ホップ情報を追加した後、Ｃｈｏｒｄの転送規則に基づき、トークンをクライアント装置Ｄに転送する。クライアント装置Ｄは、クライアント情報を追加後、サーバ装置にトークンを送信し、サーバ装置は、仮登録後、既に説明したのと同じ操作をトークンに行ってクライアント装置Ｄにこのトークンを送信する。
【００８０】
クライアント装置Ｄは、受信したトークンにホップ情報を追加後、フィンガテーブルに従いクライアント装置Ｅに転送する。クライアント装置Ｅは、トークンの宛先であるため、受信したトークンにホップ情報及びクライアント情報を追加してサーバ装置に返送する。サーバ装置は、受信したトークンに追加されているクライアント情報を仮登録し、トークンに追加されている２つのホップ情報のうち、最後に追加されているホップ情報のノードＩＤ・フィールドと次ホップノードＩＤ・フィールドの値が同一であることから、このトークンが宛先クライアント装置から返送されたことを認識する。以後の処理は、図９と同じである。
【００８１】
当選率をＷ、当選者数をＸとしたとき、本実施形態においてサーバ装置は、本登録されているクライアント情報の数が、ｉｎｔ（Ｘ／Ｗ）個を超えるまでスロットを繰り返し、ｉｎｔ（Ｘ／Ｗ）個を超えた場合には、この時点で本登録されているクライアント情報からＸ個のクライアント情報を当選者として選択する。
【００８２】
図１１は、第２実施形態におけるサーバ装置を説明するための簡略化したブロック図である。図１１によると、サーバ装置は、パラメータ保持部２１と、トークン生成部２２と、宛先発生部２３と、トークン送受信部２４と、判定部２５と、抽選部２６と、仮登録部２７と、転送処理部２８と、通知処理部２９と、本登録部３０とを備えている。
【００８３】
トークン生成部２２は、図８を用いて説明したトークンを生成し、宛先発生部２３がランダムに生成した値を宛先ノードＩＤ・フィールドに設定し、トークン送受信部２４は、トークン生成部２２が生成したトークンをＣｈｏｒｄリングに送信する。なお、上述した様に、最初のトークンはフィンガテーブルに従い送信するが、２回目以降のトークンについては、本登録部３０に登録されているクライアント情報に基づきトークン生成部２２が決定する。なお、使用したクライアント情報については本登録部３０に通知し、本登録部３０は使用されたか否かを管理する。また、トークン送受信部２４は、受信したトークンを判定部２５に出力する。
【００８４】
判定部２５は、トークンがクライアント情報の追加により返送されたものであるか否かを判定し、クライアント情報の追加により返送されたものである場合に仮登録部２７に出力する。また、トークンの宛先が自装置である場合にも受信したトークンを仮登録部２７に出力する。それ以外の場合、つまり、宛先のクライアント装置への転送途中のものである場合には転送処理部２８に出力し、転送処理部２８はホップ情報を追加してフィンガテーブルに基づきトークン送受信部２４経由で転送する。
【００８５】
仮登録部２７は、図９及び１０を用いて説明したように、ホップ情報及びクライアント情報を記録し、続いて、ホップ情報に基づき、このトークンが、トークンの宛先のクライアント装置から返送されたものであるか否かを判定する。宛先のクライアント装置から返送されたものではない場合、ホップ情報及びクライアント情報を除去し、トークンヘッダ部のシーケンス番号・フィールドの値を１増加させ、クライアント情報のノードＩＰアドレス・フィールドに設定されているＩＰアドレスと共に転送処理部２８に出力し、転送処理部２８はこのＩＰアドレスに向けてトークン送受信部２４経由でトークンを送信する。
【００８６】
一方、仮登録部２７は、トークンが宛先のクライアント装置から返送されたものである場合、又は、トークンの宛先が自装置である場合には、スロットが終了したと判定し、仮登録されているクライアント情報及びホップ情報を本登録部３０に出力する。本登録部３０は、既に説明した様に、クライアント情報が不正なものであるか否かを判定し、不正なものである場合には、クライアント情報を廃棄すると共に、通知処理部２９に廃棄通知を行わせる。一方、不正でない場合には本登録を行う。続いて本登録部３０は、パラメータ保持部１が保持している当選者数Ｘと当選率Ｗの２つ値を参照し、本登録されているクライアント情報の数がｉｎｔ（Ｘ／Ｗ）個を超えているか否かを判定し、超えていない場合には、トークン生成部２２に新たなトークンを発生させ、超えている場合には、本登録されているクライアント情報を抽選部２６に出力し、抽選部２６は、クライアント情報からＸ個のクライアント情報を当選者として選択し、通知処理部２９に当選通知処理を行わせる。
【００８７】
図１２は、第２実施形態におけるクライアント装置を説明する簡略化したブロック図である。図１２によると、クライアント装置は、トークン送受信部３１と、判定・転送処理部３２と、追加済抽選ＩＤ管理部３３と、クライアント情報追加部３４とを備えている。
【００８８】
トークン送受信部３１は、受信したトークンを判定・転送処理部３２に出力し、判定・転送処理部３２は、抽選ＩＤ・フィールドの値が、追加済抽選ＩＤ管理部３３が管理している抽選ＩＤに含まれているか否かと、このトークンが自装置宛てであるか否かを判定する。まず、追加済抽選ＩＤ管理部３３が管理している抽選ＩＤに含まれている場合には、受信したトークンにホップ情報を追加し、自装置宛てでない場合にはトークン送受信部１１経由でこのトークンを宛先ノード装置に転送し、自装置宛ての場合にはトークン送受信部１１経由でサーバ装置に送信する。なお、ホップ情報は多重暗号化する。
【００８９】
一方、受信したトークンの抽選ＩＤ・フィールドの値が、追加済抽選ＩＤ管理部３３が管理している抽選ＩＤに含まれていない場合には、抽選ＩＤ・フィールドの値を、追加済抽選ＩＤ管理部３３に出力する。そして、このトークンが自装置宛てである場合には、ホップ情報を追加後に、このトークンが自装置宛てでない場合には、ホップ情報を追加することなく、受信したトークンをクライント情報追加部３４に出力する。なお、ホップ情報を追加する場合には多重暗号化する。クライント情報追加部３４は、受信したトークンに自装置のクライアント情報を追加し、必要である場合には多重暗号化を行い、再度、判定・転送処理部３２に出力する。判定・転送処理部３２は、クライント情報追加部３４からのトークンを、トークン送受信部１１経由でサーバ装置に送信する。さらに、判定・転送処理部３２は、サーバ装置からクライアント情報廃棄の通知を受信した場合、追加済抽選ＩＤ管理部３３が管理している抽選ＩＤから、廃棄の通知内で特定された値を削除する。
【００９０】
以上、本実施形態においては、スロットを単位として不正なクライアント情報を判定し、廃棄した場合には通知を行う。第１実施形態においては、トークンに追加したクライアント情報が廃棄されたことをクライアント装置には通知しないため、例えば、不正なクライアント装置がトークンを廃棄することで若干ではあるが当選確率を上げることが可能であった。しかしながら、本実施形態においてはクライアント装置に廃棄の通知が行われるため、その様な状態を防ぐことが可能になる。また、トークンのＣｈｏｒｄリングへの投入場所を、本登録されているクライアント装置から選択することで、トークンを受信するクライアント装置の偏りを抑えることができる。また、第１実施形態においては、クライアント情報がＮ個追加されるまでトークンを転送し続けるため、例えば、不正なクライアント装置が、宛先を勝手に変更し、さらに、不正なクライアント装置に転送する余地があったが、本実施形態においては、クライアント情報の追加の度にサーバ装置に返送し、かつ、宛先の変更を許可していないことから、その様な状態を防ぐことができる。
【００９１】
なお、本発明によるサーバ装置とクライアント装置は、コンピュータを図２、５、６、１１、１２の各部として機能させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。さらに、本発明は、ハードウェア及びソフトウェアの組合せによっても実現可能である。
【図面の簡単な説明】
【００９２】
【図１】第１実施形態によるサーバ装置での処理のフロー図である。
【図２】第１実施形態におけるサーバ装置のブロック図である。
【図３】第１実施形態で使用するトークンを示す図である。
【図４】多重暗号化の説明図である。
【図５】第１実施形態におけるクライアント装置のブロック図である。
【図６】抽選部のブロック図である。
【図７】Ｃｈｏｒｄリングの説明図である。
【図８】第２実施形態で使用するトークンを示す図である。
【図９】第２実施形態における最初のスロットのシーケンス図である。
【図１０】第２実施形態における２回目以降のスロットのシーケンス図である。
【図１１】第２実施形態におけるサーバ装置のブロック図である。
【図１２】第２実施形態におけるクライアント装置のブロック図である。
【符号の説明】
【００９３】
１、２１  パラメータ保持部
２、２２  トークン生成部
３、１５、２３  宛先発生部
４、１１、２４、３１  トークン送受信部
５、２５  判定部
６、２６  抽選部
７  当選者管理部
８、２８  転送処理部
９、２９  通知処理部
１２、３２  判定・転送処理部
１３、３３  追加済抽選ＩＤ管理部
１４、３４  クライアント情報追加部
２７  仮登録部
３０  本登録部
６１  トークン選択部
６２  フィルタ部
６３  クライアント装置選択部
【図１】
2010081298.tif 000003
【図２】
2010081298.tif 000004
【図３】
2010081298.tif 000005
【図４】
2010081298.tif 000006
【図５】
2010081298.tif 000007
【図６】
2010081298.tif 000008
【図７】
2010081298.tif 000009
【図８】
2010081298.tif 000010
【図９】
2010081298.tif 000011
【図１０】
2010081298.tif 000012
【図１１】
2010081298.tif 000013
【図１２】
2010081298.tif 000014