(57)【特許請求の範囲】
【請求項１】
多数のクライアントの回答をサーバーで集計する回答集計システムにおいて、
直接通信が可能なループを構成するクライアントのうちの下担当でも上担当でもないクライアントは、自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第１の回答送信手段を備え、
前記ループを構成するクライアントのうちの下担当のクライアントは、
自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第２の回答送信手段と、
自己の所属する前記ループの直下の複数ループに所属する各上担当のクライアントから当該直下の各ループ以下の回答の集計結果を受信する第１の集計結果受信手段と、
前記第１の集計結果受信手段により受信された複数のループの集計結果を合算する第１の集計手段と、
前記第１の集計手段により合算された集計結果を自己の所属する前記ループの上担当のクライアントに送信する第１の集計結果送信手段と、
を備え、
前記ループを構成するクライアントのうちの上担当のクライアントは、
前記第１および第２の回答送信手段により送信されてきた各クライアントの回答を受信する回答受信手段と、
前記第１の集計結果送信手段により送信されてきた複数の下担当のクライアントの各集計結果を受信する第２の集計結果受信手段と、
前記第２の集計結果受信手段により複数の下担当のクライアントから受信した複数の集計結果を照合する第１の集計結果照合手段と、
自己の回答、前記回答受信手段により受信された回答および前記第１の集計結果照合手段により照合された集計結果から、自己の所属する前記ループ以下の回答の集計結果を算出する第２の集計手段と、
前記第２の集計手段により算出された集計結果を自己の所属する前記ループの直上のループの下担当のクライアントまたは前記サーバーに送信する第２の集計結果送信手段と、
を備え、
前記サーバーは、
サーバの直下の複数ループに所属する各上担当のクライアントから当該直下の各ループ以下の回答の集計結果を受信する第３の集計結果受信手段と、
前記第３の集計結果受信手段により受信された複数のループの集計結果を合算する第３の集計手段と、
を備えたことを特徴とする回答集計システム。
【請求項２】
前記サーバーは、さらに、前記第３の集計手段により合算された集計結果を自己の直下のループの上担当のクライアントに送信する第１の回答状況送信手段を備え、
前記上担当のクライアントは、さらに、
前記第１の回答状況送信手段から送信されてきた集計結果を受信する第１の回答状況受信手段と、
前記第１の回答状況受信手段により受信された集計結果を自己の所属する前記ループの他のクライアントに送信する第２の回答状況送信手段と、
を備え、
前記下担当のクライアントは、さらに、
前記第２の回答状況送信手段により送信されてきた集計結果を受信する第２の回答状況受信手段と、
前記第２の回答状況受信手段により受信された集計結果を自己の所属する前記ループの直下のループの上担当のクライアントに送信する第３の回答状況送信手段と、
を備えたことを特徴とする前記請求項１に記載の回答集計システム。
【請求項３】
前記サーバーは、さらに、前記第３の集計結果受信手段により同一のループに所属する複数の上担当のクライアントから各集計結果を受信し、上担当のクライアントから受信した複数の集計結果を照合する第２の集計結果照合手段を備えたことを特徴とする前記請求項１または請求項２に記載の回答集計システム。
【請求項４】
前記第１および第２の集計結果照合手段は、前記複数の集計結果のうち、二つ以上一致した結果が得られれば当該結果を正解と判断し、二つ以上一致した結果が得られなければ前記複数の集計結果の平均値を正解と判断することを特徴とする前記請求項１〜請求項３のいずれか一つに記載の回答集計システム。
【請求項５】
多数のクライアントの回答をサーバーで集計する回答集計方法において、
直接通信が可能なループを構成するクライアントのうちの下担当でも上担当でもないクライアントが自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第１の回答送信工程と、
前記ループを構成するクライアントのうちの下担当のクライアントが自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第２の回答送信工程と、
前記下担当のクライアントが自己の所属する前記ループの直下の複数ループに所属する各上担当のクライアントから当該直下の各ループ以下の回答の集計結果を受信する第１の集計結果受信工程と、
前記下担当のクライアントが前記第１の集計結果受信工程で受信された複数のループの集計結果を合算する第１の集計工程と、
前記下担当のクライアントが前記第１の集計工程で合算された集計結果を自己の所属する前記ループの上担当のクライアントに送信する第１の集計結果送信工程と、
前記ループを構成するクライアントのうちの上担当のクライアントが前記第１および第２の回答送信工程で送信された各クライアントの回答を受信する回答受信工程と、
前記上担当のクライアントが前記第１の集計結果送信工程で送信された複数の下担当のクライアントの各集計結果を受信する第２の集計結果受信工程と、
前記上担当のクライアントが前記第２の集計結果受信工程で複数の下担当のクライアントから受信した複数の集計結果を照合する第１の集計結果照合工程と、
前記上担当のクライアントが自己の回答、前記回答受信工程で受信された回答および前記第１の集計結果照合工程で照合された集計結果から、自己の所属する前記ループ以下の回答の集計結果を算出する第２の集計工程と、
前記上担当のクライアントが前記第２の集計工程で算出された集計結果を自己の所属す
る前記ループの直上のループの下担当のクライアントまたは前記サーバーに送信する第２の集計結果送信工程と、
前記サーバーが直下の複数ループに所属する各上担当のクライアントから当該直下の各ループ以下の回答の集計結果を受信する第３の集計結果受信工程と、
前記サーバーが前記第３の集計結果受信工程で受信された複数のループの集計結果を合算する第３の集計工程と、
を含んだことを特徴とする回答集計方法。
【請求項６】
さらに、前記サーバーが前記第３の集計工程で合算された集計結果を自己の直下のループの上担当のクライアントに送信する第１の回答状況送信工程と、
前記上担当のクライアントが前記第１の回答状況送信工程で送信された集計結果を受信する第１の回答状況受信工程と、
前記上担当のクライアントが前記第１の回答状況受信工程で受信された集計結果を自己の所属する前記ループの他のクライアントに送信する第２の回答状況送信工程と、
前記下担当のクライアントが前記第２の回答状況送信工程で送信された集計結果を受信する第２の回答状況受信工程と、
前記下担当のクライアントが前記第２の回答状況受信工程で受信された集計結果を自己の所属する前記ループの直下のループの上担当のクライアントに送信する第３の回答状況送信工程と、
を含んだことを特徴とする前記請求項５に記載の回答集計方法。
【請求項７】
さらに、前記サーバーが前記第３の集計結果受信工程で同一のループに所属する複数の上担当のクライアントから各集計結果を受信し、複数の上担当のクライアントから受信した複数の集計結果を照合する第２の集計結果照合工程を含んだことを特徴とする前記請求項５または請求項６に記載の回答集計方法。
【請求項８】
前記第１および第２の集計結果照合工程は、前記複数の集計結果のうち、二つ以上一致した結果が得られれば当該結果を正解と判断し、二つ以上一致した結果が得られなければ前記複数の集計結果の平均値を正解と判断することを特徴とする前記請求項５〜請求項７のいずれか一つに記載の回答集計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、多数のクライアントの回答をサーバーで集計する回答集計システム、回答集計方法、回答集計方法をコンピュータに実行させるプログラム、およびそのプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
始動を始めたデジタル放送では、双方向性を一つの目玉としている。視聴者の声をリアルタイムに番組に反映できる双方向性は非常に注目されている技術の一つである。ただし、現状では機器が高価であるなどの問題があり、一般への普及はまだ先のことと予想されている。一方インターネットでは、マルチキャストなど大容量のコンテンツを単一のパケットで多数のユーザーに同時に配布する技術が導入されつつあり、放送機能を完全に取り込んでしまうのもそう先のことではない。
【０００３】
【発明が解決しようとする課題】
しかしながら、インターネットにおける双方向性はまだ貧弱である。たとえば、インターネットで多数のユーザーが同時に参加するクイズを実施し、現時点での回答者は何人であり、うち正解者は何人であるなどといった回答状況を、随時各参加者に通知することを考える。
【０００４】
この集計結果の配信にマルチキャストを利用すると、マルチキャストに対応しているプロバイダが現時点ではまだ少数のため、サービスを受けられるユーザーが限定されてしまう。また、従来技術のブロードキャスト（指定されたネットワーク内のすべてのポイントに対して、単一のパケットを送信する情報配信方式）は、参加者が同一ネットワークに属する全ユーザーであるという特殊なケースを除いて、利用することができない。
【０００５】
そこで、この集計結果を従来技術のユニキャスト（指定された個々のポイントに対してパケットを作成・送信する情報配信方式）により全参加者に配信しようとすると、１秒で１０００件を処理したとしても参加者が１００万人いれば１６分以上となり、とてもリアルタイムとはいなくなってしまうという問題があった。
【０００６】
また、そもそも通知以前に通知する回答状況の取りまとめ、すなわち１００万人単位の参加者からの回答を受け付けて回答者数や正解者数の集計をおこなうにも、相当の時間を要するため、集計結果の配信開始の時点ですでに即時性が欠けているという問題もあった。
【０００７】
この発明は上記従来技術による問題点を解決するため、多数のユーザーが同時に参加する双方向コンテンツにおいて、全参加者の回答状況をリアルタイムに集計しかつ配信することが可能な回答集計システム、回答集計方法、回答集計方法をコンピュータに実行させるプログラム、およびそのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、この発明にかかる回答集計システムは、多数のクライアントの回答をサーバーで集計する回答集計システムにおいて、直接通信が可能なループを構成するクライアントのうちの下担当でも上担当でもないクライアントは、自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第１の回答送信手段を備え、前記ループを構成するクライアントのうちの下担当のクライアントは、自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第２の回答送信手段と、自己の所属する前記ループの直下のループの上担当のクライアントから当該直下のループ以下の回答の集計結果を受信する第１の集計結果受信手段と、前記第１の集計結果受信手段により受信された複数の集計結果を合算する第１の集計手段と、前記第１の集計手段により合算された集計結果を自己の所属する前記ループの上担当のクライアントに送信する第１の集計結果送信手段と、を備え、前記ループを構成するクライアントのうちの上担当のクライアントは、前記第１および第２の回答送信手段により送信されてきた各クライアントの回答を受信する回答受信手段と、前記第１の集計結果送信手段により送信されてきた集計結果を受信する第２の集計結果受信手段と、自己の回答、前記回答受信手段により受信された回答および前記第２の集計結果受信手段により受信された集計結果から、自己の所属する前記ループ以下の回答の集計結果を算出する第２の集計手段と、前記第２の集計手段により算出された集計結果を自己の所属する前記ループの直上のループの下担当のクライアントまたは前記サーバーに送信する第２の集計結果送信手段と、を備え、前記サーバーは、前記第２の集計結果送信手段により送信されてきた集計結果を受信する第３の集計結果受信手段と、前記第３の集計結果受信手段により受信された複数の集計結果を合算する第３の集計手段と、を備えたことを特徴とする。
【０００９】
この発明によれば、ループ化されたクライアントがサーバーを頂点とするツリー状に配置されるとともに、クライアントの回答はツリーの末端に位置するループからサーバーに向かって、経路上の各ループにおいて段階的に集計されてゆく。
【００１０】
また、この発明にかかる回答集計システムは、上記の発明において、前記サーバーは、さらに、前記第３の集計手段により合算された集計結果を自己の直下のループの上担当のクライアントに送信する第１の回答状況送信手段を備え、前記上担当のクライアントは、さらに、前記第１の回答状況送信手段から送信されてきた集計結果を受信する第１の回答状況受信手段と、前記第１の回答状況受信手段により受信された集計結果を自己の所属する前記ループの他のクライアントに送信する第２の回答状況送信手段を備え、前記下担当のクライアントは、さらに、前記第２の回答状況送信手段により送信されてきた集計結果を受信する第２の回答状況受信手段と、前記第２の回答状況受信手段により受信された集計結果を自己の所属する前記ループの直下のループの上担当のクライアントに送信する第３の回答状況送信手段と、を備えたことを特徴とする。
【００１１】
この発明によれば、サーバーからツリーの経路上のループを経由してその末端に位置するループまで、全クライアントの回答の集計結果が順次転送されてゆく。
【００１２】
また、この発明にかかる回答集計システムは、上記の発明において、前記上担当のクライアントは、さらに、前記第２の集計結果受信手段により複数の下担当のクライアントから受信した複数の集計結果を照合する集計結果照合手段を備えたことを特徴とする。
【００１３】
この発明によれば、各ループの上担当においてその直下のループまでの集計結果の正確性や正当性が、複数の下担当から複数の経路で受信した複数の集計結果の照合により確認される。
【００１４】
また、この発明にかかる回答集計システムは、上記の発明において、前記サーバーは、さらに、前記第３の集計結果受信手段により複数の上担当のクライアントから受信した複数の集計結果を照合する集計結果照合手段を備えたことを特徴とする。
【００１５】
この発明によれば、サーバーにおいてその直下のループまでの集計結果の正確性や正当性が、直下のループの複数の上担当から複数の経路で受信した複数の集計結果の照合により確認される。
【００１６】
また、この発明にかかる回答集計システムは、上記の発明において、前記集計結果照合手段が、前記複数の集計結果のうち、二つ以上一致した結果が得られれば当該結果を正解と判断し、二つ以上一致した結果が得られなければ前記複数の集計結果の平均値を正解と判断することを特徴とする。
【００１７】
この発明によれば、集計結果の平均を取ることで、より迅速な回答の集計をおこなうことができる。
【００１８】
また、この発明にかかる回答集計方法は、多数のクライアントの回答をサーバーで集計する回答集計方法において、直接通信が可能なループを構成するクライアントのうちの下担当でも上担当でもないクライアントが自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第１の回答送信工程と、前記ループを構成するクライアントのうちの下担当のクライアントが自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第２の回答送信工程と、前記下担当のクライアントが自己の所属する前記ループの直下のループの上担当のクライアントから当該直下のループ以下の回答の集計結果を受信する第１の集計結果受信工程と、前記下担当のクライアントが前記第１の集計結果受信工程で受信された複数の集計結果を合算する第１の集計工程と、前記下担当のクライアントが前記第１の集計工程で合算された集計結果を自己の所属する前記ループの上担当のクライアントに送信する第１の集計結果送信工程と、前記ループを構成するクライアントのうちの上担当のクライアントが前記第１および第２の回答送信工程で送信された各クライアントの回答を受信する回答受信工程と、前記上担当のクライアントが前記第１の集計結果送信工程で送信された集計結果を受信する第２の集計結果受信工程と、前記上担当のクライアントが自己の回答、前記回答受信工程で受信された回答および前記第２の集計結果受信工程で受信された集計結果から、自己の所属する前記ループ以下の回答の集計結果を算出する第２の集計工程と、前記上担当のクライアントが前記第２の集計工程で算出された集計結果を自己の所属する前記ループの直上のループの下担当のクライアントまたは前記サーバーに送信する第２の集計結果送信工程と、前記サーバーが前記第２の集計結果送信工程で送信された集計結果を受信する第３の集計結果受信工程と、前記サーバーが前記第３の集計結果受信工程で受信された複数の集計結果を合算する第３の集計工程と、を含んだことを特徴とする。
【００１９】
この発明によれば、ループ化されたクライアントがサーバーを頂点とするツリー状に配置されるとともに、クライアントの回答はツリーの末端に位置するループからサーバーに向かって、経路上の各ループにおいて段階的に集計されてゆく。
【００２０】
また、この発明にかかる回答集計方法は、上記の発明において、さらに、前記サーバーが前記第３の集計工程で合算された集計結果を自己の直下のループの上担当のクライアントに送信する第１の回答状況送信工程と、前記上担当のクライアントが前記第１の回答状況送信工程で送信された集計結果を受信する第１の回答状況受信工程と、前記上担当のクライアントが前記第１の回答状況受信工程で受信された集計結果を自己の所属する前記ループの他のクライアントに送信する第２の回答状況送信工程と、前記下担当のクライアントが前記第２の回答状況送信工程で送信された集計結果を受信する第２の回答状況受信工程と、前記下担当のクライアントが前記第２の回答状況受信工程で受信された集計結果を自己の所属する前記ループの直下のループの上担当のクライアントに送信する第３の回答状況送信工程と、を含んだことを特徴とする。
【００２１】
この発明によれば、サーバーからツリーの経路上のループを経由してその末端に位置するループまで、全クライアントの回答の集計結果が順次転送されてゆく。
【００２２】
また、この発明にかかる回答集計方法は、上記の発明において、さらに、前記上担当のクライアントが前記第２の集計結果受信工程で複数の下担当のクライアントから受信した複数の集計結果を照合する集計結果照合工程を含んだことを特徴とする。
【００２３】
この発明によれば、各ループの上担当においてその直下のループまでの集計結果の正確性や正当性が、複数の下担当から複数の経路で受信した複数の集計結果の照合により確認される。
【００２４】
また、この発明にかかる回答集計方法は、上記の発明において、さらに、前記サーバーが前記第３の集計結果受信工程で複数の上担当のクライアントから受信した複数の集計結果を照合する集計結果照合工程を含んだことを特徴とする。
【００２５】
この発明によれば、サーバーにおいてその直下のループまでの集計結果の正確性や正当性が、直下のループの複数の上担当から複数の経路で受信した複数の集計結果の照合により確認される。
【００２６】
また、この発明にかかる回答集計方法は、この発明において、前記集計結果照合工程が、前記複数の集計結果のうち、二つ以上一致した結果が得られれば当該結果を正解と判断し、二つ以上一致した結果が得られなければ前記複数の集計結果の平均値を正解と判断することを特徴とする。
【００２７】
この発明によれば、集計結果の平均を取ることで、より迅速な回答の集計をおこなうことができる。
【００２８】
また、この発明にかかるプログラムは、上記の発明にかかる方法をコンピュータに実行させることができる。
【００２９】
また、この発明にかかるコンピュータ読み取り可能な記録媒体は、上記の発明にかかるプログラムを記録したことを特徴とする。
【００３０】
この発明によれば、上記の発明にかかる方法をコンピュータに実行させるプログラムを記録したことで、そのプログラムを機械読み取り可能となり、これによって、上記の発明にかかる動作をコンピュータによって実現することができる。
【００３１】
【発明の実施の形態】
以下に添付図面を参照して、この発明による回答集計システム、回答集計方法、回答集計方法をコンピュータに実行させるプログラム、およびそのプログラムを記録したコンピュータ読み取り可能な記録媒体の好適な実施の形態を詳細に説明する。
【００３２】
（実施の形態）
まず、この発明の実施の形態による回答集計システムのシステム構成について説明する。図１は、この発明の実施の形態による回答集計システムのシステム構成を示す説明図である。
【００３３】
１０１はサーバー、また１０２ａ〜１０２ｊはプロバイダＸ１０６を介して、１０３ａ〜１０３ｉはプロバイダＹ１０７を介して、１０４ａ〜１０４ｆはプロバイダＺ１０８を介して、１０５ａ〜１０５ｅはプロキシ１０９を介して、それぞれインターネット１００に接続しているクライアントである。
【００３４】
サーバー１０１はクライアント１０２ａ〜１０５ｅからの参加要求を受信して、参加ＩＤの付与や受け入れ先のループの決定など後述の受付処理をおこなうとともに、その保持するコンテンツを要求元に対して送信する。また、サーバー１０１はコンテンツに対する回答状況、たとえば現在までの回答者は何人でありうち正解者は何人であるかなどをリアルタイムに集計して、当該集計結果を定期的に全クライアントに向けて発信する。
【００３５】
つぎに、図２はこの発明の実施の形態による回答集計システムのシステム構成を、概念的・模式的に示す説明図である。同図は図１のように、サーバーやクライアントの物理的な接続関係を示すものではなく、後述する集計の経路、および集計結果の配信の経路を示している。図示するように、複数のクライアントによって一つのグループが形成され（同図では、各グループは三つのクライアントからなる三角形により示されている）、各グループがサーバーを頂点とするツリー状に配置されている。
【００３６】
もっとも、図２はシステム全体を俯瞰するための簡略な図であって、実際にはより複雑である。図３は、図２の一部（点線内）をより詳細に示す説明図である。同図に示す各ループすなわち各グループは、（１）直接通信が可能で、かつ（２）できるだけ電子的な距離の近い（アドレスの近い、といってもよい）三つ以上のクライアントから構成されている。
【００３７】
たとえば図１に示すように、ダイヤルアップＩＰ接続によりインターネットに接続しているクライアント１０２ａ〜１０４ｆには、通常はそれぞれのプロバイダ１０６〜１０８への接続時に、ＤＨＣＰによりグローバルＩＰアドレスが割り当てられている。そして、グローバルＩＰアドレスを有するクライアント間であれば、接続しているプロバイダの異同にかかわらず、ＵＤＰによる直接通信が可能である。
【００３８】
したがって、上記（１）の観点からはこれらのクライアントは一つのループにまとめてしまってもよいのであるが、上記（２）の観点から、通常は同じプロバイダに接続しているクライアントごとに一つのループを形成することになる。ただし、一つのループ内のメンバー数が多くなりすぎるときは、複数のループに分割・分散される。
【００３９】
図３において、１０２はプロバイダＸ１０６のユーザーであるクライアント１０２ａ〜１０２ｊからなるループ、１０３はプロバイダＹ１０７のユーザーであるクライアント１０３ａ〜１０３ｉからなるループ、１０４はプロバイダＺ１０８のユーザーであるクライアント１０４ａ〜１０４ｆからなるループを、それぞれ示している。
【００４０】
上記に対して、ＬＡＮなどからプロキシ１０９を介してインターネットに接続しているクライアント１０５ａ〜１０５ｅは、通常はプライベートＩＰアドレスを割り当てられており、原則として同一ＬＡＮ内のクライアントとしか通信することができない。そこで、このようなクライアントは、上記（１）の観点からも（２）の観点からもこれらのみで一つのループを形成することになる。図３の１０５は、同一ＬＡＮ内のユーザーであるクライアント１０５ａ〜１０５ｅからなるループを示している。
【００４１】
もっとも、データをエンコードしてＨＴＴＰプロトコルにより送信する、静的ＮＡＴを設定する、あるいは専用のプロキシを設置するなどの対策を講じれば、ＬＡＮの内部から外部に接続することは可能である。ただ、いずれにせよルータやプロキシサーバーに負荷がかかるので、このようなクライアントはまとめて、ツリーの末端に配置する。
【００４２】
なお、各ループには役割分担担当のクライアントが一つ、上担当のクライアントが三つ、および当該ループがその下にループを有する場合には下担当のクライアントが少なくとも三つ、それぞれ存在する。ループ内のいずれのクライアントを上担当や下担当とするかは、役割分担を担当するクライアントが各クライアントの負荷などを勘案したうえで決定・変更する。
【００４３】
図３に示すループ１０３において上担当の一つに選任されているクライアント１０３ｂは、当該ループの一つ上のループ１０２内の、下担当のクライアント１０２ｉとの通信をおこなう。同様に、ループ１０３の他の上担当１０３ｃ・１０３ｄは、それぞれループ１０２の他の下担当１０２ｈ・１０２ｆとの通信をおこなう。
【００４４】
また、ループ１０３の下担当の一つに選任されているクライアント１０３ｇは、当該ループの一つ下のループ１０４・１０５内の、上担当のクライアント１０４ｄ・１０５ｅとの通信をおこなう。同様に、ループ１０３の他の下担当１０３ｈ・１０３ｉも、それぞれループ１０４の上担当１０４ｃ・１０４ｂおよびループ１０５の上担当１０５ｄ・１０５ｃとの通信をおこなう。このように、下担当は三つ一組で、直下につながる複数のループとの通信を担当するが、担当するループの数が増えるなどして負荷が大きくなってきたときは、役割分担担当のクライアントはさらに別の三つのクライアントを一組の下担当として選任する。
【００４５】
つぎに、この発明の実施の形態による回答集計システムを構成する、個々のコンピュータのハードウエア構成について説明する。図４は、この発明の実施の形態による回答集計システム内のコンピュータの、ハードウエア構成の一例を示す説明図である。同図に示す構成は典型例であって、実際にはコンテンツに参加するクライアントの多様性を反映して、そのハードウエア構成も様々である。
【００４６】
同図において、４０１は装置全体を制御するＣＰＵを、４０２は基本入出力プログラムを記憶したＲＯＭを、４０３はＣＰＵ４０１のワークエリアとして使用されるＲＡＭを、それぞれ示している。
【００４７】
また、４０４はＣＰＵ４０１の制御にしたがってＨＤ（ハードディスク）４０５に対するデータのリード／ライトを制御するＨＤＤ（ハードディスクドライブ）を、４０５はＨＤＤ４０４の制御にしたがって書き込まれたデータを記憶するＨＤを、それぞれ示している。また、４０６はＣＰＵ４０１の制御にしたがってＦＤ（フロッピーディスク）４０７に対するデータのリード／ライトを制御するＦＤＤ（フロッピーディスクドライブ）を、４０７はＦＤＤ４０６の制御にしたがって書き込まれたデータを記憶する着脱自在のＦＤを、それぞれ示している。
【００４８】
また、４０８はカーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示するディスプレイを、４０９は公衆電話回線４１０を介してインターネット１００への、またはインターネット１００からのデータの送受信をおこなうモデムを、それぞれ示している。また、４１１は文字、数値、各種指示などの入力のための複数のキーを備えたキーボードを、４１２は各種指示の選択や実行、処理対象の選択、カーソルの移動などをおこなうマウスを、それぞれ示している。
【００４９】
また、４１３は文字や画像を光学的に読み取るスキャナを、４１４は文字や画像を用紙上に印刷するプリンタを、４１５は着脱可能な記録媒体であるＣＤ−ＲＯＭを、４１６はＣＤ−ＲＯＭ４１６に対するデータのリードを制御するＣＤ−ＲＯＭドライブを、４００は上記各部を接続するためのバスまたはケーブルを、それぞれ示している。
【００５０】
つぎに、この発明の実施の形態による回答集計システム内の、サーバー１０１の機能的構成について説明する。図５は、この発明の実施の形態による回答集計システム内の、サーバー１０１の構成を機能的に示す説明図である。
【００５１】
５００はコンテンツ管理部であり、たとえば図６に示すような三択形式（三つの選択肢の中から一つの回答を選択する形式）のクイズからなるコンテンツ５００ａを保持している。なお、このコンテンツ５００ａは通信量の削減のため、所定の形式により圧縮されている。また、コンテンツ管理部５００は後述する参加受付部５０２からの指示に応じて、コンテンツ送信部５００ｂによりこのコンテンツ５００ａを指定されたクライアントに対して送信する。
【００５２】
５０１は参加者管理部であり、図２や図３に示すループの上下関係や各ループの構成メンバー、および各参加者の詳細情報、たとえばその参加ＩＤ、ＩＰアドレス、ポート番号などが記述された参加者リスト５０１ａを保持している。なお、これらが保持できる限り、参加者リスト５０１ａはどのような構造を有するものであってもよい。
【００５３】
５０２は参加受付部であり、クライアントからコンテンツへの参加要求を受信して、参加のために必要な情報を当該クライアントに返信する。参加受付部５０２は、参加ＩＤ付与部５０２ａと、配置決定部５０２ｂと、参加情報送信部５０２ｃとを含む構成である。参加要求を受信すると、参加受付部５０２はまず参加ＩＤ付与部５０２ａで、要求元のクライアントに一意な識別番号である参加ＩＤを割り振る。
【００５４】
つぎに、参加受付部５０２は配置決定部５０２ｂで、図２や図３に示す階層構造内での上記クライアントの位置を決定する。まず、配置決定部５０２ｂは参加者管理部５０１に依頼して、参加者リスト５０１ａ内から上記クライアントとの通信が容易なクライアントからなるループ、たとえば上記クライアントと同一のプロバイダに接続しているクライアントからなるループを検索させる。そして、検索されたループすなわち上記クライアントの受け入れ先のループ内の全メンバーの詳細情報、たとえばその参加ＩＤ、ＩＰアドレスおよびポート番号などを、参加者リスト５０１ａから抽出させる。
【００５５】
なお、ループ内での各メンバーの配置すなわち順序は、ＩＤの順序で機械的に決められているものとする。このため参加ＩＤと受け入れ先のループとが決まれば、当該ループ内での新たなメンバーの割り込み位置、すなわち新たなメンバーがどのメンバーとどのメンバーとの間に割り込むかは自動的に決定される。
【００５６】
さらに、参加受付部５０２は参加情報送信部５０２ｃで、参加ＩＤ付与部５０２ａにより付与された参加ＩＤ、および配置決定部５０２ｂにより決定された受け入れ先ループの全メンバーの詳細情報を、参加情報として上記クライアントに送信する。また、同時にコンテンツ管理部５００に指示して、その保持するコンテンツ５００ａをコンテンツ送信部５００ｂにより上記クライアントに送信させる。
【００５７】
なお、参加者管理部５０１では、上記の参加受付と並行してその保持する参加者リスト５０１ａの更新をおこなう。すなわち、参加要求に添付されたＩＰアドレスやポート番号、参加ＩＤ付与部５０２ａで付与された参加ＩＤ、配置決定部５０２ｂで決定された受け入れ先のループなどを、参加者リスト５０１ａに登録する。
【００５８】
つぎに、５０３は集計部であり、集計要求送信部５０３ａと、集計結果受信部５０３ｂと、集計結果照合部５０３ｃと、全クライアント集計部５０３ｄとを含む構成である。集計部５０３は、図２や図３に示すツリー構造においてサーバー１０１の直下に位置するループの上担当、たとえばループ１０２のクライアント１０２ｂ・１０２ｃ・１０２ｅに対して、集計要求送信部５０３ａにより回答の集計を開始するよう要求する。
【００５９】
そして、集計結果受信部５０３ｂで直下の上担当から直下のループ以下の回答の集計結果を受け取り、これらを集計結果照合部５０３ｃで照合するとともに全クライアント集計部５０３ｄで合算することで、クライアント全体の回答の集計をおこなう。この集計部５０３の機能については、後述するフローチャートでより詳細に説明する。
【００６０】
なお、この集計結果受信部５０３ｂが請求項にいう「第３の集計結果受信手段」に、そのおこなう処理が請求項にいう「第３の集計結果受信工程」に、それぞれ相当する。また、この集計結果照合部５０３ｃが請求項にいう「集計結果照合手段」に、そのおこなう処理が請求項にいう「集計結果照合工程」に、それぞれ相当する。さらに、この全クライアント集計部５０３ｄが請求項にいう「第３の集計手段」に、そのおこなう処理が請求項にいう「第３の集計工程」に、それぞれ相当する。
【００６１】
さらに、５０４は回答状況通知部であり、集計部５０３で算出された最終的な集計結果すなわち全クライアントの回答状況を、直下の上担当に送信して、直下のループ以下の全クライアントに順次転送させるようにする。この回答状況通知部５０４の機能については、後述するフローチャートでより詳細に説明する。
【００６２】
なお、この回答状況通知部５０４が請求項にいう「第１の回答状況送信手段」に、そのおこなう処理が請求項にいう「第１の回答状況送信工程」に、それぞれ相当する。
【００６３】
なお、コンテンツ管理部５００、参加者管理部５０１、参加受付部５０２、集計部５０３および回答状況通知部５０４は、それぞれＨＤ４０５やＦＤ４０７、あるいはＣＤ−ＲＯＭ４１５などの各種記録媒体からＲＡＭ４０３に読み出されたプログラムの命令にしたがって、ＣＰＵ４０１などが命令処理を実行することにより、各部の機能を実現するものである。
【００６４】
つぎに、この発明の実施の形態による回答集計システム内の、各クライアントの機能的構成について説明する。クライアントの機能的構成は、
（１）上担当にも下担当にも選任されていないクライアント
（２）下担当に選任されているクライアント
（３）下担当が選任されていないループ（すなわちツリーの末端に位置するループ）において上担当に選任されているクライアント
（４）下担当が選任されているループ（すなわちツリーの末端に位置するループ以外のループ）において上担当に選任されているクライアント
によって異なる。以下、順次説明する。
【００６５】
（１）上担当にも下担当にも選任されていないクライアントの機能的構成
図７は、この発明の実施の形態による回答集計システム内の、上担当にも下担当にも選任されていないクライアントの構成を機能的に示す説明図である。これに該当するクライアントは、具体的には図３に示すクライアント１０２ａ・１０２ｄ・１０２ｇ・１０２ｊ・１０３ａ・１０３ｅ・１０３ｆ・１０４ａ・１０４ｅ・１０４ｆ・１０５ａ・１０５ｂである。
【００６６】
まず、７００は参加部であり、サーバー１０１にコンテンツへの参加を要求してＩＤや受け入れ先などの参加情報を取得してから、受け入れ先のループの全メンバーに対して自己の参加を通知する。この参加部７００は、参加要求部７００ａと、参加情報管理部７００ｂと、コンテンツ管理部７００ｃと、参加通知送受信部７００ｄとを含む構成である。
【００６７】
参加部７００は参加要求部７００ａにより、サーバー１０１の参加受付部５０２に対して、自己のＩＰアドレスやポート番号を添えてコンテンツへの参加要求を送信する。そして、サーバー１０１の参加情報送信部５０２ｃから送信されてきた参加情報を、参加情報管理部７００ｂにより受信・保持する。
【００６８】
なお、実際には上記参加要求には、ＩＰアドレスなどとともに今回の通信で使用するクライアント側の公開鍵が添付されており、参加要求とその添付情報全体が、あらかじめ通知されているサーバー側の公開鍵で暗号化されている。そして、参加要求に応じて返信されてくる参加情報は、上記クライアント側の公開鍵で暗号化されている。このように暗号化をおこなうことで、通信の秘密が保たれる。
【００６９】
また、コンテンツ管理部７００ｃはサーバー１０１のコンテンツ送信部５００ｂから送信されてきたコンテンツ５００ａを受信して、これをディスプレイなどに表示するとともに、ハードディスクなどに保存する。なお、実際にはコンテンツ５００ａは上述のように圧縮されているので、その解凍をおこなわなければならない。
【００７０】
また、参加通知送受信部７００ｄは参加情報管理部７００ｂで受信した参加情報を参照して、自己の参加ＩＤ、ＩＰアドレスおよびポート番号を受け入れ先ループの全メンバーに対して通知する。この参加通知を各々の参加通知送受信部７００ｄで受信した各メンバーは、その参加情報管理部７００ｂに指示して、保持している参加情報に新たなメンバーの参加ＩＤ、ＩＰアドレスおよびポート番号を追加させる。
【００７１】
このように、所属するループ内のメンバー構成が変化した場合、参加情報管理部７００ｂは保持する参加情報の更新を随時おこなう。なお、参加以外にも意図的な参加中止（退出）や意図しない接続断などによりループのメンバー構成は変化するが、本発明の中心内容ではないため、その場合の処理については説明を省略する。
【００７２】
つぎに、７０１は集計部であり、集計要求受信部７０１ａと、回答送信部７０１ｂとを含む構成である。集計部７０１は、サーバー１０１の集計要求送信部５０３ａから自己の所属するループすなわち同一ループ内の上担当を介して送信されてきた集計要求を、集計要求受信部７０１ａで受信する。そして、これを受けて回答送信部７０１ｂで、コンテンツに対する自己の回答を当該上担当に送信する。この集計部７０１の機能については、後述するフローチャートでより詳細に説明する。
【００７３】
なお、この回答送信部７０１ｂが請求項にいう「第１の回答送信手段」に、そのおこなう処理が請求項にいう「第１の回答送信工程」に、それぞれ相当する。
【００７４】
また、７０２は回答状況通知部であり、回答状況受信部７０２ａと、回答状況表示部７０２ｂとを含む構成である。回答状況通知部７０２は、サーバー１０１の回答状況通知部５０４から同一ループ内の上担当を介して送信されてきた、全クライアントの回答の集計結果すなわち回答状況を回答状況受信部７０２ａで受信して、これを回答状況表示部７０２ｂによりディスプレイなどに表示する。この回答状況通知部７０２の機能については、後述するフローチャートでより詳細に説明する。
【００７５】
（２）下担当に選任されているクライアントの機能的構成
図８は、この発明の実施の形態による回答集計システム内の、下担当に選任されているクライアントの構成を機能的に示す説明図である。これに該当するクライアントは、具体的には図３に示すクライアント１０２ｆ・１０２ｈ・１０２ｉ・１０３ｇ・１０３ｈ・１０３ｉである。
【００７６】
８００は参加部であり、図７に示す参加部７００と同一であるので説明を省略する。つぎに、８０１は集計部であり、集計要求受信部８０１ａと、集計要求送信部８０１ｂと、回答送信部８０１ｃと、集計結果受信部８０１ｄと、下ループ集計部８０１ｅと、集計結果送信部８０１ｆとを含む構成である。図７に示す集計部７０１に、集計要求送信部８０１ｂと集計結果受信部８０１ｄ以下とを追加した構成といってもよい。
【００７７】
集計部８０１は、サーバー１０１の集計要求送信部５０３ａから同一ループ内の上担当を介して送信されてきた集計要求を、集計要求受信部８０１ａで受信する。そして、これを集計要求送信部８０１ｂにより直下のループの上担当に転送するとともに、この要求を受けて回答送信部８０１ｃで、コンテンツに対する自己の回答を同一ループ内の上担当に送信する。
【００７８】
そして、複数ある直下のループのそれぞれの上担当から送信されてきた集計結果を、集計結果受信部８０１ｄにより受信し、これらを下ループ集計部８０１ｅで合算して、この合算結果を集計結果送信部８０１ｆにより同一ループ内の上担当に送信する。この集計部８０１の機能については、後述するフローチャートでより詳細に説明する。
【００７９】
なお、この回答送信部８０１ｃが請求項にいう「第２の回答送信手段」に、そのおこなう処理が請求項にいう「第２の回答送信工程」に、それぞれ相当する。また、この集計結果受信部８０１ｄが請求項にいう「第１の集計結果受信手段」に、そのおこなう処理が請求項にいう「第１の集計結果受信工程」に、それぞれ相当する。また、この下ループ集計部８０１ｅが請求項にいう「第１の集計手段」に、またそのおこなう処理が請求項にいう「第１の集計工程」に、それぞれ相当する。さらに、この集計結果送信部８０１ｆが請求項にいう「第１の集計結果送信手段」に、そのおこなう処理が請求項にいう「第１の集計結果送信工程」に、それぞれ相当する。
【００８０】
また、８０２は回答状況通知部であり、回答状況受信部８０２ａと、回答状況送信部８０２ｂと、回答状況表示部８０２ｃとを含む構成である。図７に示す回答状況通知部７０２に、回答状況送信部８０２ｂを追加した構成といってもよい。
【００８１】
回答状況通知部８０２は、サーバー１０１の回答状況通知部５０４から同一ループ内の上担当を介して送信されてきた全クライアントの回答状況を、回答状況受信部８０２ａにより受信する。そして、これを回答状況送信部８０２ｂにより直下のループの上担当に転送するとともに、回答状況表示部８０２ｃによりディスプレイなどに表示する。この回答状況通知部８０２の機能については、後述するフローチャートでより詳細に説明する。
【００８２】
なお、この回答状況受信部８０２ａが請求項にいう「第２の回答状況受信手段」に、そのおこなう処理が請求項にいう「第２の回答状況受信工程」に、それぞれ相当する。また、この回答状況送信部８０２ｂが請求項にいう「第３の回答状況送信手段」に、そのおこなう処理が請求項にいう「第３の回答状況送信工程」に、それぞれ相当する。
【００８３】
（３）下担当が選任されていないループ（すなわちツリーの末端に位置するループ）において上担当に選任されているクライアントの機能的構成
図９は、この発明の実施の形態による回答集計システム内の、下担当が選任されていないループにおいて上担当に選任されているクライアントの構成を機能的に示す説明図である。これに該当するクライアントは、具体的には図３に示すクライアント１０４ｂ・１０４ｃ・１０４ｄ・１０５ｃ・１０５ｄ・１０５ｅである。
【００８４】
９００は参加部であり、図７に示す参加部７００や図８に示す参加部８００と同一であるので説明を省略する。つぎに、９０１は集計部であり、集計要求受信部９０１ａと、集計要求送信部９０１ｂと、回答送信部９０１ｃと、回答受信部９０１ｄと、ループ内集計部９０１ｅと、集計結果送信部９０１ｆとを含む構成である。図８に示す集計部８０１の、集計結果受信部８０１ｄに代えて回答受信部９０１ｄを、また下ループ集計部８０１ｅに代えてループ内集計部９０１ｅを、それぞれ設けた構成といってもよい。
【００８５】
集計部９０１は、サーバー１０１の集計要求送信部５０３ａから、あるいは直上のループの下担当の集計要求送信部８０１ｂから送信されてきた集計要求を、集計要求受信部９０１ａで受信する。そして、これを集計要求送信部９０１ｂにより同一ループ内のすべてのメンバーに転送するとともに、この要求を受けて回答送信部９０１ｃで、コンテンツに対する自己の回答を同一ループ内の他の上担当に送信する。
【００８６】
そして、同一ループ内の他のメンバーから送信されてきたそれぞれの回答を、回答受信部９０１ｄにより受信し、これらと自己の回答とをループ内集計部９０１ｅで集計して、この集計結果を集計結果送信部９０１ｆによりサーバー１０１の集計結果受信部５０３ｂ、あるいは直上のループの下担当の集計結果受信部８０１ｄに送信する。この集計部９０１の機能については、後述するフローチャートでより詳細に説明する。
【００８７】
また、９０２は回答状況通知部であり、回答状況受信部９０２ａと、回答状況送信部９０２ｂと、回答状況表示部９０２ｃとを含む構成である。これは図８に示す回答状況通知部８０２と同様の構成であって、ただ回答状況受信部９０２ａと回答状況送信部９０２ｂのそれぞれの通信相手が異なるのみである。すなわち、回答状況受信部９０２ａはサーバー１０１の回答状況通知部５０４から、あるいは直上のループの下担当の回答状況送信部８０２ｂから送信されてきた全クライアントの回答状況を受信し、回答状況送信部９０２ｂはこれを同一ループ内のすべてのメンバーに転送する。この回答状況通知部９０２の機能については、後述するフローチャートでより詳細に説明する。
【００８８】
（４）下担当が選任されているループ（すなわちツリーの末端に位置するループ以外のループ）において上担当に選任されているクライアントの機能的構成
図１０は、この発明の実施の形態による回答集計システム内の、下担当が選任されているループにおいて上担当に選任されているクライアントの構成を機能的に示す説明図である。これに該当するクライアントは、具体的には図３に示すクライアント１０２ｂ・１０２ｃ・１０２ｅ・１０３ｂ・１０３ｃ・１０３ｄである。
【００８９】
１０００は参加部であり、図７に示す参加部７００や図８に示す参加部８００、あるいは図９に示す参加部９００と同一であるので説明を省略する。つぎに、１００１は集計部であり、集計要求受信部１００１ａと、集計要求送信部１００１ｂと、回答送信部１００１ｃと、回答受信部１００１ｄと、集計結果受信部１００１ｅと、集計結果照合部１００１ｆと、ループ以下集計部１００１ｇと、集計結果送信部１００１ｈとを含む構成である。図９に示す集計部９０１に、集計結果受信部１００１ｅと集計結果照合部１００１ｆとを追加するとともに、そのループ内集計部９０１ｅをループ以下集計部１００１ｇに代えた構成といってもよい。
【００９０】
集計部１００１は、サーバー１０１の集計要求送信部５０３ａから、あるいは直上のループの下担当の集計要求送信部８０１ｂから送信されてきた集計要求を、集計要求受信部１００１ａで受信する。そして、これを集計要求送信部１００１ｂにより同一ループ内のすべてのメンバーに転送するとともに、この要求を受けて回答送信部１００１ｃで、コンテンツに対する自己の回答を同一ループ内の他の上担当に送信する。
【００９１】
そして、同一ループ内の他のメンバーから送信されてきたそれぞれの回答を、回答受信部１００１ｄにより受信する。また、同一ループ内の下担当三つからそれぞれ送信されてきた集計結果を、集計結果受信部１００１ｅで受信し、さらにこれら三つの集計結果を集計結果照合部１００１ｆで照合して、二つ以上が一致すれば正しい集計結果であると判断する。
【００９２】
そして、ループ以下集計部１００１ｇで、下担当から送信されてきた正しい集計結果に自己の回答と同一ループ内の他のメンバーの回答とを反映し、新たな集計結果すなわち自己の所属するループとその下につながる全ループとの集計結果を、集計結果送信部１００１ｈによりサーバー１０１の集計結果受信部５０３ｂ、あるいは直上のループの下担当の集計結果受信部８０１ｄに送信する。この集計部１００１の機能については、後述するフローチャートでより詳細に説明する。
【００９３】
なお、この回答受信部１００１ｄが請求項にいう「回答受信手段」に、そのおこなう処理が請求項にいう「回答受信工程」に、それぞれ相当する。また、この集計結果受信部１００１ｅが請求項にいう「第２の集計結果受信手段」に、そのおこなう処理が請求項にいう「第２の集計結果受信工程」に、それぞれ相当する。また、この集計結果照合部１００１ｆが請求項にいう「集計結果照合手段」に、そのおこなう処理が請求項にいう「集計結果照合工程」に、それぞれ相当する。また、このループ以下集計部１００１ｇが請求項にいう「第２の集計手段」に、そのおこなう処理が請求項にいう「第２の集計工程」に、それぞれ相当する。さらに、この集計結果送信部１００１ｈが請求項にいう「第２の集計結果送信手段」に、そのおこなう処理が請求項にいう「第２の集計結果送信工程」に、それぞれ相当する。
【００９４】
また、１００２は回答状況通知部であり、図８に示す回答状況通知部８０２や図９に示す回答状況通知部９０２と同一である。この回答状況通知部１００２の機能については、後述するフローチャートでより詳細に説明する。
【００９５】
なお、この回答状況受信部１００２ａが請求項にいう「第１の回答状況受信手段」に、そのおこなう処理が請求項にいう「第１の回答状況受信工程」に、それぞれ相当する。また、この回答状況送信部１００２ｂが請求項にいう「第２の回答状況送信手段」に、そのおこなう処理が請求項にいう「第２の回答状況送信工程」に、それぞれ相当する。
【００９６】
なお、参加部７００・８００・９００・１０００、集計部７０１・８０１・９０１・１００１および回答状況通知部７０２・８０２・９０２・１００２は、コンテンツへの参加に先立ってあらかじめ各クライアントにダウンロードされているプログラムを、ＣＰＵ４０１が実行することによって実現されるものである。このプログラムはＪａｖａにより記述されているので、種々のクライアントのプラットフォーム上で実行可能である。なお、このプログラムはネットワーク経由のほか、ＲＯＭ、ＨＤ、ＦＤ、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＩＣカードなどのＣＰＵで読み取り可能な記録媒体に記録して配布することができ、これらの記録媒体からＲＡＭ４０３に読み出されＣＰＵ４０１で実行されることにより、上記の各部が実現される。
【００９７】
つぎに、この発明の実施の形態による回答集計システムにおける、クライアント全体の回答集計処理および当該集計結果の配信処理について説明する。図１１は、この発明の実施の形態による回答集計システムの、図３に示す範囲内での回答集計処理および当該集計結果の配信処理の手順を示すフローチャートである。
【００９８】
まず、ステップＳ１１０１で、サーバー１０１から全クライアントに対する回答の集計要求を送信する。図１２は、ステップＳ１１０１における集計要求の転送経路を示す説明図である。サーバー１０１の集計要求送信部５０３ａから発信された集計要求は、まずその直下のループ１０２の上担当１０２ｂ・１０２ｃ・１０２ｅの集計要求受信部１００１ａにより受信され、さらにその集計要求送信部１００１ｂにより、ループ１０２内の他のメンバーに転送される。
【００９９】
ループ１０２の上担当以外のメンバーは、当該上担当から送信されてきた集計要求を、集計要求受信部７０１ａ・８０１ａで受信する。なお、これらのメンバーは三つの上担当のそれぞれから重複する三つの集計要求を受信することになるが、うち二つを受信した時点で、正しい要求を受けたと判断して以後の処理をおこなう。
【０１００】
上担当１０２ｂ・１０２ｃ・１０２ｅから集計要求を受信した下担当１０２ｆは、さらにその集計要求送信部８０１ｂにより、上記集計要求を直下のループ１０３の上担当１０３ｄに転送する。同様に、ループ１０２の下担当１０２ｈはループ１０３の上担当１０３ｃへ、ループ１０２の下担当１０２ｉはループ１０３の上担当１０３ｂへ、それぞれ集計要求を転送する。ループ１０３のこれらの上担当は、転送されてきた集計要求を集計要求受信部１００１ａにより受信するとともに、これを集計要求送信部１００１ｂにより、ループ１０３内の他のメンバーにさらに転送する。
【０１０１】
ループ１０３の上担当以外のメンバーは、当該上担当から送信されてきた集計要求を、集計要求受信部７０１ａ・８０１ａで受信する。また、そのうち下担当１０３ｇ・１０３ｈ・１０３ｉは、さらにその集計要求送信部８０１ｂにより、上記集計要求を直下のループ１０４の上担当１０４ｄ・１０４ｃ・１０４ｂ、および同じく直下のループ１０５の上担当１０５ｅ・１０５ｄ・１０５ｃにさらに転送する。
【０１０２】
ループ１０４・１０５のこれらの上担当は、転送されてきた集計要求を集計要求受信部９０１ａにより受信するとともに、これを集計要求送信部９０１ｂにより、同一ループ内の他のメンバーにさらに転送する。そして、ループ１０４・１０５の上担当以外のメンバーは、当該上担当から送信されてきた集計要求を、集計要求受信部７０１ａで受信する。これにより、ツリーの頂点に位置するサーバー１０１から、その末端に位置するループ１０４・１０５内のクライアントまで、集計要求が順次伝達されたことになる。
【０１０３】
図１１に戻り、つぎにステップＳ１１０２で、まずツリーの末端に位置するループ１０４およびループ１０５で、個々にそれぞれのループ内での回答集計をおこなう。図１３は、ステップＳ１１０２における各ループでの集計経路を示す説明図である。
【０１０４】
上担当でない１０４ａ・１０４ｅ・１０４ｆは、その回答送信部７０１ｂにより、同一ループ内の上担当１０４ｂ・１０４ｃ・１０４ｄのそれぞれに対して自己の回答を送信する。これらの上担当は、その回答受信部９０１ｄによりこれらの回答を受信し、さらにループ内集計部９０１ｅでこれらの回答を集計する。
【０１０５】
このようにして算出されたループ１０４単独の集計結果は、ループ１０４の上担当１０４ｂの集計結果送信部９０１ｆから、その直上のループ１０３の下担当１０３ｉの集計結果受信部８０１ｄへと送信される。同様に、ループ１０４の上担当１０４ｃからループ１０３の下担当１０３ｈ、ループ１０４の上担当１０４ｄからループ１０３の下担当１０３ｇへも、それぞれループ１０４の集計結果が個々に送信される。また、ループ１０５においても、上記と並行して上記と同様の処理がおこなわれる。
【０１０６】
図１１に戻り、つぎにステップＳ１１０３で、ループ１０４およびループ１０５の直上のループ１０３単独の回答集計をおこなう。図１４は、ステップＳ１１０３におけるループ１０３での集計経路を示す説明図である。
【０１０７】
上担当でない１０３ａと１０３ｅ〜１０３ｉとは、その回答送信部７０１ｂ・８０１ｃにより、同一ループ内の上担当１０３ｂ・１０３ｃ・１０３ｄのそれぞれに対して自己の回答を送信する。これらの上担当は、その回答受信部１００１ｄによりこれらの回答を受信し、さらにループ以下集計部１００１ｇでこれらの回答を集計する。
【０１０８】
図１１に戻り、つぎにステップＳ１１０４で、ループ１０３以下の回答集計すなわちループ１０３とその下につながるループ１０４およびループ１０５全体の回答集計をおこなう。図１５は、ステップＳ１１０４におけるループ１０３での集計経路を示す説明図である。
【０１０９】
ループ１０３の下担当１０３ｇ・１０３ｈ・１０３ｉは、さきにステップＳ１１０２で受信したループ１０４の集計結果とループ１０５の集計結果とを、それぞれその下ループ集計部８０１ｅで合算する。そして、この合算結果を、集計結果送信部８０１ｆにより同一ループ内の上担当１０３ｂ・１０３ｃ・１０３ｄのそれぞれに送信する。
【０１１０】
上担当１０３ｂ・１０３ｃ・１０３ｄは、この集計結果を集計結果受信部１００１ｅで受信する。そして、さらに集計結果照合部１００１ｆにより、下担当１０３ｇ・１０３ｈ・１０３ｉのそれぞれから受信した集計結果が一致するかどうかを検査し、二つ以上の集計結果が一致した場合に当該集計結果は正確であると判断して、これをループ以下集計部１００１ｇに引き渡す。
【０１１１】
正常に処理がおこなわれていれば三つの集計結果は一致するはずであるが、何らかの理由で三者が一致しない、あるいは下担当の一つとの通信が不調で、集計結果が二つしか得られずかつその二つが一致しないなどの場合は、集計結果照合部１００１ｆは各集計結果の平均を取るなどの適切な補正をおこなって、これをループ以下集計部１００１ｇに引き渡す。
【０１１２】
そして、上担当１０３ｂ・１０３ｃ・１０３ｄはそのループ以下集計部１００１ｇで、この下担当１０３ｇ・１０３ｈ・１０３ｉから受信したループ１０４・１０５の集計結果を、さきにステップＳ１１０３で算出したループ１０３単独の集計結果と合算する。さらに、この合算結果を、集計結果送信部１００１ｈにより直上のループ１０２の下担当１０２ｉ・１０２ｈ・１０２ｆに送信し、これらの下担当はその集計結果受信部８０１ｄで、このループ１０３以下の集計結果を受信する。
【０１１３】
図１１に戻り、つぎにステップＳ１１０５で、ループ１０３の直上のループ１０２単独の回答集計をおこなう。図１６は、ステップＳ１１０５におけるループ１０２での集計経路を示す説明図である。このステップＳ１１０５での処理は、上述したステップＳ１１０３での処理と同様である。
【０１１４】
つぎに、ステップＳ１１０６で、ループ１０２以下の回答集計すなわちループ１０２とその下につながるループ１０３、ループ１０４およびループ１０５全体の回答集計をおこなう。図１７は、ステップＳ１１０６におけるループ１０２での集計経路を示す説明図である。このステップＳ１１０６での処理は、上述したステップＳ１１０４での処理と同様である。
【０１１５】
さらに、ステップＳ１１０７で、サーバー１０１において全クライアントの回答集計をおこなう。サーバー１０１はその直下のループ１０２の上担当１０２ｂ・１０２ｃ・１０２ｅそれぞれから送信されてきた、ループ１０２以下の集計結果を集計結果受信部５０３ｂで受信する。そして、これらを集計結果照合部５０３ｃで照合して、二つ以上一致した結果が得られれば正確と判断し、正確でない場合には平均を取るなどの適切な補正をおこなう。さらに、ループ１０２以外の直下のループ（図１７では図示を省略している）からの集計結果の受信・照合も同様におこない、各ループからの集計結果を全クライアント集計部５０３ｄで合算することで、クライアント全体の回答集計をおこなう。
【０１１６】
そして、ステップＳ１１０８で、この全クライアントの回答集計結果すなわち全クライアントの回答状況を、サーバー１０１の回答状況通知部５０４から全クライアントに向けて配信する。この回答状況の転送経路は、図１２に示した集計要求の転送経路と同一であり、各クライアントは二つ以上の一致した情報を受信した時点でこれを正確と判断して、そのディスプレイへの表示や他のクライアントへの転送などをおこなう。そして、すべてのクライアントに回答状況が行き渡った時点で、本フローチャートによる処理を終了する。
【０１１７】
図１８は、各クライアントでの回答状況の表示の一例を示す説明図である。ここでは全クライアント中での回答者数と、そのうちの正解者数（すなわち特定の選択肢を選んだクライアントの数）とが示されている。これに加えて、回答者と未回答者とを含む全クライアントの総数を示したり、あるいはコンテンツがクイズでなくアンケートなどである場合には、特定の選択肢に限らず各選択肢ごとにその人数を示したりするようにしてもよい。
【０１１８】
上記はクライアント間でやり取りする集計データの内容を変更することで実現可能である。なお、サーバー１０１から発信する集計要求内で、集計の対象となる項目（回答者数、未回答者数、正解者数、一定時間内に正解した正解者数、など）をその都度指定できるようにしておき、要求ごとに種々の項目の集計ができるようにしてもよい。
【０１１９】
以上説明した実施の形態によれば、サーバーはその直下に位置する数個のループからの集計結果を受信して、これを合算して直下のループに返信するだけでよく、クライアント数に比例するサーバーの負荷増大を回避できる。また、クライアント数が多くなっても集計や集計結果の配信は指数的にしか遅くならないので、回答状況をリアルタイムに把握し、かつリアルタイムに全クライアントに通知することが可能である。
【０１２０】
なお、上述した実施の形態では、クライアントの参加受付やコンテンツの配布、回答集計や集計結果の配信を同一のサーバー１０１でおこなうようにしたが、各機能を物理的にどのコンピュータに持たせるかは重要ではなく、たとえばこれらをそれぞれ別個のコンピュータでおこなわせるようにしてもよい。また、現実には数百万レベルといった大量のクライアントを想定しているため、複数のサーバー間で負荷を分散しながら処理を進めることになる。
【０１２１】
また、本発明はクイズやアンケートに限らず、たとえば多人数が同時に参加するオークション、参加者の総意を反映して内容が変化するコンテンツなどに応用することができる。さらに、ユーザーが入力した回答に限らず、ＯＳやアプリケーションからの回答の集計などにも応用することができ、たとえば多数のコンピュータの稼働状況をリアルタイムに監視することなどが可能となる。
【０１２２】
また、上述のような経路での情報配信は、多数のクライアントに同時に配布しなければならない情報であれば、集計結果以外にも種々のものについて応用することができる。たとえば、全参加者の時刻合わせが必要なコンテンツにおいて、同期のためのデータを上述の経路にしたがって配信するようにしてもよい。
【０１２３】
また、上述した実施の形態では、他のループとの通信を上担当三つと下担当三つとで三重におこなうようにしているので、いずれかの通信で異常が発生したり、いずれかのクライアントで集計結果が偽造・破壊されたりしても、他の経路から正確な集計結果を取得することができ、照合によって不正な集計結果を破棄するなどの対応が可能である。
【０１２４】
また、本実施の形態で説明した回答集計方法は、あらかじめ用意されたプログラムをパーソナル・コンピューターやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フロッピーディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、上記記録媒体を介して、インターネット等のネットワークを介して配布することができる。
【０１２５】
【発明の効果】
以上説明したようにこの発明によれば、多数のクライアントの回答をサーバーで集計する回答集計システムにおいて、直接通信が可能なループを構成するクライアントのうちの下担当でも上担当でもないクライアントは、自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第１の回答送信手段を備え、前記ループを構成するクライアントのうちの下担当のクライアントは、自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第２の回答送信手段と、自己の所属する前記ループの直下のループの上担当のクライアントから当該直下のループ以下の回答の集計結果を受信する第１の集計結果受信手段と、前記第１の集計結果受信手段により受信された複数の集計結果を合算する第１の集計手段と、前記第１の集計手段により合算された集計結果を自己の所属する前記ループの上担当のクライアントに送信する第１の集計結果送信手段と、を備え、前記ループを構成するクライアントのうちの上担当のクライアントは、前記第１および第２の回答送信手段により送信されてきた各クライアントの回答を受信する回答受信手段と、前記第１の集計結果送信手段により送信されてきた集計結果を受信する第２の集計結果受信手段と、自己の回答、前記回答受信手段により受信された回答および前記第２の集計結果受信手段により受信された集計結果から、自己の所属する前記ループ以下の回答の集計結果を算出する第２の集計手段と、前記第２の集計手段により算出された集計結果を自己の所属する前記ループの直上のループの下担当のクライアントまたは前記サーバーに送信する第２の集計結果送信手段と、を備え、前記サーバーは、前記第２の集計結果送信手段により送信されてきた集計結果を受信する第３の集計結果受信手段と、前記第３の集計結果受信手段により受信された複数の集計結果を合算する第３の集計手段と、を備えたので、ループ化されたクライアントがサーバーを頂点とするツリー状に配置されるとともに、クライアントの回答はツリーの末端に位置するループからサーバーに向かって、経路上の各ループにおいて段階的に集計されてゆき、これによって、多数のユーザーが同時に参加する双方向コンテンツにおいて、全参加者の回答状況をリアルタイムに集計することが可能な回答集計システムが得られるという効果を奏する。
【０１２６】
また、この発明によれば、上記の発明において、前記サーバーは、さらに、前記第３の集計手段により合算された集計結果を自己の直下のループの上担当のクライアントに送信する第１の回答状況送信手段を備え、前記上担当のクライアントは、さらに、前記第１の回答状況送信手段から送信されてきた集計結果を受信する第１の回答状況受信手段と、前記第１の回答状況受信手段により受信された集計結果を自己の所属する前記ループの他のクライアントに送信する第２の回答状況送信手段を備え、前記下担当のクライアントは、さらに、前記第２の回答状況送信手段により送信されてきた集計結果を受信する第２の回答状況受信手段と、前記第２の回答状況受信手段により受信された集計結果を自己の所属する前記ループの直下のループの上担当のクライアントに送信する第３の回答状況送信手段と、を備えたので、サーバーからツリーの経路上のループを経由してその末端に位置するループまで、全クライアントの回答の集計結果が順次転送されてゆき、これによって、多数のユーザーが同時に参加する双方向コンテンツにおいて、全参加者の回答状況をリアルタイムに集計しかつ配信することが可能な回答集計システムが得られるという効果を奏する。
【０１２７】
また、この発明によれば、上記の発明において、前記上担当のクライアントは、さらに、前記第２の集計結果受信手段により複数の下担当のクライアントから受信した複数の集計結果を照合する集計結果照合手段を備えたので、各ループの上担当においてその直下のループまでの集計結果の正確性や正当性が、複数の下担当から複数の経路で受信した複数の集計結果の照合により確認され、これによって、全参加者の回答状況をリアルタイムに、かつ正確に集計することが可能な回答集計システムが得られるという効果を奏する。
【０１２８】
また、この発明によれば、上記の発明において、前記サーバーは、さらに、前記第３の集計結果受信手段により複数の上担当のクライアントから受信した複数の集計結果を照合する集計結果照合手段を備えたので、サーバーにおいてその直下のループまでの集計結果の正確性や正当性が、直下のループの複数の上担当から複数の経路で受信した複数の集計結果の照合により確認され、これによって、全参加者の回答状況をリアルタイムに、かつ正確に集計することが可能な回答集計システムが得られるという効果を奏する。
【０１２９】
また、この発明によれば、上記の発明において、前記集計結果照合手段が、前記複数の集計結果のうち、二つ以上一致した結果が得られれば当該結果を正解と判断し、二つ以上一致した結果が得られなければ前記複数の集計結果の平均値を正解と判断するため、これによって、全参加者中の回答者数と正解者数とをリアルタイムに集計しかつ配信することが可能な回答集計システムが得られるという効果を奏する。
【０１３０】
また、この発明によれば、多数のクライアントの回答をサーバーで集計する回答集計方法において、直接通信が可能なループを構成するクライアントのうちの下担当でも上担当でもないクライアントが自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第１の回答送信工程と、前記ループを構成するクライアントのうちの下担当のクライアントが自己の回答を自己の所属する前記ループの上担当のクライアントに送信する第２の回答送信工程と、前記下担当のクライアントが自己の所属する前記ループの直下のループの上担当のクライアントから当該直下のループ以下の回答の集計結果を受信する第１の集計結果受信工程と、前記下担当のクライアントが前記第１の集計結果受信工程で受信された複数の集計結果を合算する第１の集計工程と、前記下担当のクライアントが前記第１の集計工程で合算された集計結果を自己の所属する前記ループの上担当のクライアントに送信する第１の集計結果送信工程と、前記ループを構成するクライアントのうちの上担当のクライアントが前記第１および第２の回答送信工程で送信された各クライアントの回答を受信する回答受信工程と、前記上担当のクライアントが前記第１の集計結果送信工程で送信された集計結果を受信する第２の集計結果受信工程と、前記上担当のクライアントが自己の回答、前記回答受信工程で受信された回答および前記第２の集計結果受信工程で受信された集計結果から、自己の所属する前記ループ以下の回答の集計結果を算出する第２の集計工程と、前記上担当のクライアントが前記第２の集計工程で算出された集計結果を自己の所属する前記ループの直上のループの下担当のクライアントまたは前記サーバーに送信する第２の集計結果送信工程と、前記サーバーが前記第２の集計結果送信工程で送信された集計結果を受信する第３の集計結果受信工程と、前記サーバーが前記第３の集計結果受信工程で受信された複数の集計結果を合算する第３の集計工程と、を含んだので、ループ化されたクライアントがサーバーを頂点とするツリー状に配置されるとともに、クライアントの回答はツリーの末端に位置するループからサーバーに向かって、経路上の各ループにおいて段階的に集計されてゆき、これによって、多数のユーザーが同時に参加する双方向コンテンツにおいて、全参加者の回答状況をリアルタイムに集計することが可能な回答集計方法が得られるという効果を奏する。
【０１３１】
また、この発明によれば、上記の発明において、さらに、前記サーバーが前記第３の集計工程で合算された集計結果を自己の直下のループの上担当のクライアントに送信する第１の回答状況送信工程と、前記上担当のクライアントが前記第１の回答状況送信工程で送信された集計結果を受信する第１の回答状況受信工程と、前記上担当のクライアントが前記第１の回答状況受信工程で受信された集計結果を自己の所属する前記ループの他のクライアントに送信する第２の回答状況送信工程と、前記下担当のクライアントが前記第２の回答状況送信工程で送信された集計結果を受信する第２の回答状況受信工程と、前記下担当のクライアントが前記第２の回答状況受信工程で受信された集計結果を自己の所属する前記ループの直下のループの上担当のクライアントに送信する第３の回答状況送信工程と、を含んだので、サーバーからツリーの経路上のループを経由してその末端に位置するループまで、全クライアントの回答の集計結果が順次転送されてゆき、これによって、多数のユーザーが同時に参加する双方向コンテンツにおいて、全参加者の回答状況をリアルタイムに集計しかつ配信することが可能な回答集計方法が得られるという効果を奏する。
【０１３２】
また、この発明によれば、上記の発明において、さらに、前記上担当のクライアントが前記第２の集計結果受信工程で複数の下担当のクライアントから受信した複数の集計結果を照合する集計結果照合工程を含んだので、各ループの上担当においてその直下のループまでの集計結果の正確性や正当性が、複数の下担当から複数の経路で受信した複数の集計結果の照合により確認され、これによって、全参加者の回答状況をリアルタイムに、かつ正確に集計することが可能な回答集計方法が得られるという効果を奏する。
【０１３３】
また、この発明によれば、上記の発明において、さらに、前記サーバーが前記第３の集計結果受信工程で複数の上担当のクライアントから受信した複数の集計結果を照合する集計結果照合工程を含んだので、サーバーにおいてその直下のループまでの集計結果の正確性や正当性が、直下のループの複数の上担当から複数の経路で受信した複数の集計結果の照合により確認され、これによって、全参加者の回答状況をリアルタイムに、かつ正確に集計することが可能な回答集計方法が得られるという効果を奏する。
【０１３４】
また、この発明によれば、上記の発明において、前記集計結果照合工程が、前記複数の集計結果のうち、二つ以上一致した結果が得られれば当該結果を正解と判断し、二つ以上一致した結果が得られなければ前記複数の集計結果の平均値を正解と判断するため、これによって、全参加者中の回答者数と正解者数とをリアルタイムに集計しかつ配信することが可能な回答集計方法が得られるという効果を奏する。
【０１３５】
また、この発明によれば、上記の発明にかかる方法をコンピュータに実行させることによって、上記の発明にかかる動作をコンピュータによって実現することが可能なプログラムが得られるという効果を奏する。
【０１３６】
また、この発明によれば、上記の発明にかかる方法をコンピュータに実行させるプログラムを記録したことで、そのプログラムを機械読み取り可能となり、これによって、上記の発明にかかる動作をコンピュータによって実現することが可能な記録媒体が得られるという効果を奏する。
【図面の簡単な説明】
【図１】この発明の実施の形態による回答集計システムのシステム構成を示す説明図である。
【図２】この発明の実施の形態による回答集計システムのシステム構成を、概念的・模式的に示す説明図である。
【図３】図２の一部をより詳細に示す説明図である。
【図４】この発明の実施の形態による回答集計システムを構成する各コンピュータのハードウエア構成の一例を示す説明図である。
【図５】この発明の実施の形態による回答集計システム内の、サーバー１０１の構成を機能的に示す説明図である。
【図６】この発明の実施の形態による回答集計システムにおいて提供されるコンテンツの一例を示す説明図である。
【図７】この発明の実施の形態による回答集計システム内の、上担当にも下担当にも選任されていないクライアントの構成を機能的に示す説明図である。
【図８】この発明の実施の形態による回答集計システム内の、下担当に選任されているクライアントの構成を機能的に示す説明図である。
【図９】この発明の実施の形態による回答集計システム内の、下担当が選任されていないループにおいて上担当に選任されているクライアントの構成を機能的に示す説明図である。
【図１０】この発明の実施の形態による回答集計システム内の、下担当が選任されているループにおいて上担当に選任されているクライアントの構成を機能的に示す説明図である。
【図１１】この発明の実施の形態による回答集計システムの、回答集計処理および当該集計結果の配信処理の手順を示すフローチャートである。
【図１２】図１１のステップＳ１１０１における集計要求の転送経路を示す説明図である。
【図１３】図１１のステップＳ１１０２における各ループでの集計経路を示す説明図である。
【図１４】図１１のステップＳ１１０３におけるループ１０３での集計経路を示す説明図である。
【図１５】図１１のステップＳ１１０４におけるループ１０３での集計経路を示す説明図である。
【図１６】図１１のステップＳ１１０５におけるループ１０２での集計経路を示す説明図である。
【図１７】図１１のステップＳ１１０６におけるループ１０２での集計経路を示す説明図である。
【図１８】この発明の実施の形態による各クライアントにおける、回答状況の表示の一例を示す説明図である。
【符号の説明】
１００  インターネット
１０１  サーバー
１０２ａ〜１０２ｊ，１０３ａ〜１０３ｉ，１０４ａ〜１０４ｆ，１０５ａ〜１０５ｅ  クライアント
１０６，１０７，１０８  プロバイダ
１０９  プロキシ
４００  バスまたはケーブル
４０１  ＣＰＵ
４０２  ＲＯＭ
４０３  ＲＡＭ
４０４  ＨＤＤ
４０５  ＨＤ
４０６  ＦＤＤ
４０７  ＦＤ
４０８  ディスプレイ
４０９  モデム
４１０  公衆電話回線
４１１  キーボード
４１２  マウス
４１３  スキャナ
４１４  プリンタ
４１５  ＣＤ−ＲＯＭ
４１６  ＣＤ−ＲＯＭドライブ
５００  コンテンツ管理部
５０１  参加者管理部
５０２  参加受付部
５０３  集計部
５０４  回答状況通知部
７００，８００，９００，１０００  参加部
７０１，８０１，９０１，１００１  集計部
７０２，８０２，９０２，１００２  回答状況通知部
【図１】
0004235370.tif 000002
【図２】
0004235370.tif 000003
【図３】
0004235370.tif 000004
【図４】
0004235370.tif 000005
【図５】
0004235370.tif 000006
【図６】
0004235370.tif 000007
【図７】
0004235370.tif 000008
【図８】
0004235370.tif 000009
【図９】
0004235370.tif 000010
【図１０】
0004235370.tif 000011
【図１１】
0004235370.tif 000012
【図１２】
0004235370.tif 000013
【図１３】
0004235370.tif 000014
【図１４】
0004235370.tif 000015
【図１５】
0004235370.tif 000016
【図１６】
0004235370.tif 000017
【図１７】
0004235370.tif 000018
【図１８】
0004235370.tif 000019