(57)【要約】【課題】自己が参加可能なチャットルームをクライアント装置側で一元的に管理することが可能なチャットシステムの提供。【解決手段】クライアント装置１は、チャットルームへの参加によってマッチングサーバ３から受信するチャット履歴情報を、その受信日時とチャットルームを特定するルーム特定情報とに関連付けて記憶部１５に記憶し、チャット履歴情報を時系列に並べた画像を、チャットルームのチャット画面に含めて、モニタ装置１０に表示する。【選択図】図２
2010224842.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置とサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムの前記情報処理装置であって、
前記チャットシステムにおいて当該情報処理装置が参加可能なチャットルームを特定するルーム特定情報と、このルーム特定情報に関連付けられたルーム属性情報とを記憶する記憶手段と、
前記ルーム特定情報と前記ルーム属性情報とが関連付けられていることが視認可能な態様で、前記ルーム特定情報に対応するルーム対応画像と前記ルーム属性情報とを表示手段に表示する表示制御手段と、を備えた
ことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記サーバ装置のチャットルームへの参加によって前記情報処理装置が前記サーバ装置から受信するチャット履歴情報を、その受信日時と前記チャットルームを特定するルーム特定情報とに関連付けて前記記憶手段に記憶する記憶制御手段を備え、
前記表示制御手段は、前記ルーム特定情報と前記チャット履歴情報とが関連付けられていることが視認可能な態様で、前記ルーム特定情報に対応するルーム対応画像と前記チャット履歴情報とを表示手段に表示する
ことを特徴とする情報処理装置。
【請求項３】
請求項１又は請求項２に記載の情報処理装置であって、
前記ルーム属性情報は、前記チャットルームに参加したことがあるか否かを示す情報である
ことを特徴とする情報処理装置。
【請求項４】
請求項１〜請求項３の何れか１項に記載の情報処理装置であって、
前記ルーム属性情報は、前記チャットルームに参加中か否かを示す情報である
ことを特徴とする情報処理装置。
【請求項５】
請求項１〜請求項４の何れか１項に記載の情報処理装置であって、
前記ルーム対応画像の一つを特定する操作入力に応じて、当該ルーム対応画像に対応するチャットルームへ参加するための処理を実行する参加処理実行手段を備えた
ことを特徴とする情報処理装置。
【請求項６】
情報処理装置とサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムの前記情報処理装置であって、
記憶手段と、
前記サーバ装置のチャットルームへの参加によって前記情報処理装置が前記サーバ装置から受信するチャット履歴情報を、その受信日時と前記チャットルームを特定するルーム特定情報とに関連付けて前記記憶手段に記憶する記憶制御手段と、
前記チャット履歴情報を時系列に並べた画像を、前記チャットルームのチャット画面に含めて表示手段に表示する表示制御手段と、を備えた
ことを特徴とする情報処理装置。
【請求項７】
請求項６に記載の情報処理装置であって、
前記記憶手段は、前記ルーム特定情報に関連付けられたルーム属性情報を記憶し、
前記表示制御手段は、前記チャットルームのルーム特定情報に関連付けられたルーム属性情報を、当該チャットルームのチャット画面に含めて表示する
ことを特徴とする情報処理装置。
【請求項８】
情報処理装置とサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムの前記情報処理装置が実行する画像表示方法であって、
チャットシステムにおいて当該情報処理装置が参加可能なチャットルームを特定するルーム特定情報と、このルーム特定情報に関連付けられたルーム属性情報とを、記憶手段が記憶し、
前記ルーム特定情報と前記ルーム属性情報とが関連付けられていることが視認可能な態様で、前記ルーム特定情報に対応するルーム対応画像と前記ルーム属性情報とを、表示制御手段が表示手段に表示する
ことを特徴とする画像表示方法。
【請求項９】
情報処理装置とサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムの前記情報処理装置が実行する画像表示方法であって、
前記サーバ装置のチャットルームへの参加によって前記情報処理装置が前記サーバ装置から受信するチャット履歴情報を、その受信日時と前記チャットルームを特定するルーム特定情報とに関連付けて、記憶制御手段が記憶手段に記憶し、
前記チャット履歴情報を時系列に並べた画像を、前記チャットルームのチャット画面に含めて、表示制御手段が表示手段に表示する
ことを特徴とする画像表示方法。
【請求項１０】
情報処理装置とサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムの前記情報処理装置のコンピュータを、
前記チャットシステムにおいて当該情報処理装置が参加可能なチャットルームを特定するルーム特定情報と、このルーム特定情報に関連付けられたルーム属性情報とを記憶する記憶手段と、
前記ルーム特定情報と前記ルーム属性情報とが関連付けられていることが視認可能な態様で、前記ルーム特定情報に対応するルーム対応画像と前記ルーム属性情報とを表示手段に表示する表示制御手段と、して機能させる
ことを特徴とする画像処理プログラム。
【請求項１１】
情報処理装置とサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムの前記情報処理装置のコンピュータを、
前記サーバ装置のチャットルームへの参加によって前記情報処理装置が前記サーバ装置から受信するチャット履歴情報を、その受信日時と前記チャットルームを特定するルーム特定情報とに関連付けて記憶手段に記憶する記憶制御手段と、
前記チャット履歴情報を時系列に並べた画像を、前記チャットルームのチャット画面に含めて表示手段に表示する表示制御手段と、して機能させる
ことを特徴とする画像処理プログラム。
【請求項１２】
請求項１０又は請求項１１に記載の画像処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置、画像表示方法、画像処理プログラム、画像処理プログラムが記憶された記憶媒体に関する。
【背景技術】
【０００２】
一般に、テキストチャットシステムでは、クライアント端末が利用するチャットルームやチャットログデータは、サーバによって管理される。このため、クライアント端末は、自己が参加可能なチャットルームを一元的に管理することができない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１７８０１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記一般的なテキストチャットシステムでは、クライアント端末が利用するチャットルームやチャットログデータがサーバによって管理されるため、クライアント端末は、自己が参加可能なチャットルームを一元的に管理することができない。
【０００５】
本発明は、自己が参加可能なチャットルームをクライアント装置側で一元的に管理することが可能なチャットシステムの提供を目的とする。
【課題を解決するための手段】
【０００６】
本発明は、情報処理装置とサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムの情報処理装置であり、記憶手段と表示制御手段とを備える。
【０００７】
記憶手段には、チャットシステムにおいて情報処理装置が参加可能なチャットルームを特定するルーム特定情報と、このルーム特定情報に関連付けられたルーム属性情報とが記憶される。
【０００８】
表示制御手段は、ルーム特定情報とルーム属性情報とが関連付けられていることが視認可能な態様で、ルーム特定情報に対応するルーム対応画像とルーム属性情報とを表示手段に表示する。
【発明の効果】
【０００９】
本発明によれば、自己が参加可能なチャットルームをクライアント装置側で一元的に管理することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るチャットシステムの概要を示す図である。
【図２】クライアント装置の構成を機能的に示すブロック図である。
【図３】クライアント装置の構成の一例を示すブロック図である。
【図４】マッチングサーバの構成を機能的に示すブロック図である。
【図５】マッチングサーバの構成の一例を示すブロック図である。
【図６】同実施形態に係るチャットプログラムを示すフローチャートである。
【図７】同実施形態に係るルーム名入力画面を例示する図である。
【図８】同実施形態に係る招待者選択画面を例示する図である。
【図９】同実施形態に係るチャットプログラムを示すフローチャートである。
【図１０】同実施形態に係るルーム選択画面を例示する図である。
【図１１】同実施形態に係るチャットプログラムを示すフローチャートである。
【図１２】同実施形態に係るチャット画面を例示する図である。
【図１３】同実施形態に係るチャット情報報知画面を例示する図である。
【発明を実施するための形態】
【００１１】
＜チャットシステムの構成＞
図１は、本実施形態に係るチャットシステムの概要を示す模式図である。チャットシステムＳＹＭは、複数のクライアント装置１Ａ，１Ｂと、サーバ装置２とを備える。サーバ装置２は、複数のマッチングサーバ３Ａ，３Ｂ，３Ｃと、メッセージサーバ４とを含む。各クライアント装置１と各マッチングサーバ３とメッセージサーバ４とは、インターネット３０に接続され、インターネット３０を介してデータ通信を行う。以下の説明において、これらのクライアント装置１Ａ，１Ｂの各ユーザを、それぞれユーザＡ，Ｂと称する。クライアント装置１Ａ，１Ｂについて、区別して記載する必要がない場合には、単にクライアント装置１と記載し、各クライアント装置やその各構成要素について区別して記載する必要がある場合には、各々符号の後ろにＡ，Ｂを付記する。同様に、マッチングサーバ３Ａ，３Ｂ，３Ｃについても、区別して記載する必要がない場合には、単にマッチングサーバ３と記載し、各マッチングサーバやその各構成要素について区別して記載する必要がある場合には、各々符号の後ろにＡ，Ｂ，Ｃを付記する。クライアント端末１及びマッチングサーバ３の数は例示であり、上記に限定されるものではない。マッチングサーバ３とメッセージサーバ４とは、一つのサーバ装置２に含まれている必要はなく、個別に設けられていてもよい。
【００１２】
クライアント装置１は、一つのチャットルームを特定可能な参加要求情報を、チャットシステムＳＹＳへのユーザからの参加要求に応じて生成する。また、チャットルームを特定可能な退室要求情報を、ユーザからの退室要求に応じて生成する。クライアント端末装置１は、参加要求情報の生成に応じて参加要求情報を送信し、退室要求情報の生成に応じて退室要求情報を送信する。
【００１３】
チャットシステムＳＹＳへのユーザからの参加要求は、チャットルームの開設要求とチャットルームへの入室要求とを含む。この場合、クライアント装置１は、開設要求に応じた参加要求情報として設定要求情報を生成し、入室要求に応じた参加要求情報として入室要求情報を生成する。
【００１４】
マッチングサーバ３は、参加要求情報と退室要求情報とをそれぞれ受信する。マッチングサーバ３の記憶部１７（図４に示す）には、クライアント装置１とチャットルームとが相互に関連付けて登録可能である。
【００１５】
マッチングサーバ３は、受信した参加要求情報によって特定される一つのチャットルームが記憶部１７に登録されているとき、クライアント装置１をそのチャットルームに関連付けて記憶部１７に登録する。また、受信した参加要求情報によって特定される一つのチャットルームが記憶部１７に登録されていないとき、クライアント装置１とチャットルームとを相互に関連付けて記憶部１７に登録する。
【００１６】
マッチングサーバ３は、クライアント装置１から設定要求情報を受信したときには、クライアント装置１とチャットルームとを相互に関連付けて記憶部１７に登録する。クライアント装置１から入室要求情報を受信したときには、受信した入室要求情報によって特定されるチャットルームが記憶部１７に登録されているか否かを判定し、当該チャットルームが記憶部１７に登録されていると判定した場合は、クライアント装置１を当該チャットルームに関連付けて記憶部１７に登録しする。当該チャットルームが記憶部１７に登録されていないと判定した場合は、クライアント装置１と当該チャットルームとを相互に関連付けて記憶部１７に登録する
マッチングサーバ３は、一つのチャットルームに対して関連付けて登録された複数のクライアント装置１間において、メッセージデータの送受信によるチャットの実行を制御する。
【００１７】
マッチングサーバ３は、退室要求情報を受信したとき、退室要求情報によって特定される一つのチャットルームに関連付けられたクライアント装置１の登録を抹消する。また、登録されている一つのチャットルームに対してクライアント装置１が全く登録されていないとき、当該一つのチャットルームの登録を抹消する。
【００１８】
すなわち、各マッチングサーバ３は、後述するチャット管理プログラムを実行することにより、クライアント装置１からの設定要求（参加要求）に応じてチャットルームを開設し、各クライアント装置１からの入室要求（入室要求）に応じてそのクライアント端末１のチャットルームへの入室（参加）を許可し、チャットルームに入室しているクライアント装置１間でのメッセージデータ（テキストデータ）の送受信を中継する。また、マッチングサーバ３は、開設中のチャットルームから全てのクライアント装置１が退室したときに当該チャットルームを消去する。さらに、マッチングサーバ３は、既に消去したチャットルームに対してクライアント装置１から入室要求を受けたときには、そのチャットルームを再度開設する。すなわち、各マッチングサーバ３には、１つ以上のクライアント装置１が入室しているアクティブなチャットルームのみが存在し、クライアント装置１が全く入室していないインアクティブなチャットルームは存在しない。なお、メッセージサーバ４も、クライアント装置１間でのメッセージデータ（テキストデータ）の送受信を中継するが、チャットルームへの入室を条件としていない点でマッチングサーバ３とはその機能が相違する。なお、以下の説明において、マッチングサーバ３に対して送受信するメッセージデータをチャットデータと称して、メッセージサーバ４に対して送受信するメッセージデータと区別する。
【００１９】
各クライアント装置１には、コントローラ２０とモニタ装置１０とがそれぞれ接続ケーブル１９を介して接続される。コントローラ２０は、ユーザによって操作される操作端末であり、ユーザからの操作に応じた操作信号をクライアント装置１に供給する。なお、コントローラ２０は、ユーザの操作に応じた操作信号（入力信号）をクライアント装置１に供給可能な入力装置であればよく、キーボードタイプやゲーム用コントローラなど様々な種類のものが適用可能である。
【００２０】
モニタ装置１０は、クライアント装置１から供給された映像信号に基づいて画像を表示する。チャットの開始時（チャットルームへの入室時）には、ルーム選択画面がモニタ装置１０に表示される。ルーム選択画面には、ユーザが選択可能なチャットルームを示す画像が配列されて表示される。ユーザがチャットルームに入室してチャットを実行しているときには、そのチャットルームに対応したチャット画面が表示される。チャット画面は、ユーザからの指示に応じて表示状態と非表示状態とに切り替わる。チャット画面が非表示状態であり他の画面が表示されているときに、入室中のチャットルームに対する他のクライアント装置１の入室や退室が行われた場合や、他のクライアント装置１からのチャットデータが送信された場合等には、それらを報知するチャット情報報知画面が上記他の画面上に重ねて表示される。
＜クライアント装置の主要構成＞
次に、図２を参照しながら、クライアント装置の内部構成のうち本発明に関連する主要な構成について説明する。
【００２１】
クライアント装置１は、通信部８０とチャット実行部１３と表示制御部１４と記憶部１５とから構成され、これらはバスを介して接続される。クライアント装置１は、記憶部１５に記憶されたチャット実行プログラムに従って、以下の各処理（開設要求処理、入室要求処理、退室要求処理、チャット実行処理、招待送信処理、招待受信処理、ルーム選択画面表示処理、チャット画面表示処理等）を実行する。以下の説明において、ユーザ特定情報とは、クライアント装置１を識別可能な固有の情報であり、記憶部１５に記憶されている。ユーザ特定情報としては、例えばクライアント装置１のユーザに対して予め付与された固有のユーザＩＤ、クライアント装置１に対して予め付与された装置ＩＤ、ユーザのメールアドレスなどが用いられる。
【００２２】
記憶部１５には、友人を登録するためのフレンド管理テーブルが設定されている。フレンド管理テーブルには、チャットシステムＳＹＭを利用可能な他のユーザ（友人）のユーザ特定情報とユーザ属性情報とが、相互に関連付けられて記憶されている。ユーザがコントローラ２０を操作して所定の入力を行うことにより、ユーザ特定情報がフレンド管理テーブルに登録される。ユーザ属性情報は、ユーザのメールアドレス、ユーザのニックネーム、ユーザによって選択されたアバターの画像データなどの情報を含む。
【００２３】
開設要求処理は、チャットルームの新規開設を指示する所定の操作入力をコントローラ２０がユーザから受け付け、クライアント装置１がコントローラ２０から操作信号（ルーム開設指示信号）を受信することによって実行される。開設要求処理は、サーバ決定処理とルーム情報決定処理とを含む。サーバ決定処理において、チャット実行部１３は、予め定められた方法に従ってサーバ選択基礎情報（サーバキー）を決定し、複数のマッチングサーバ３Ａ，３Ｂ，３Ｃのうちチャットルームを開設するマッチングサーバ３を、予め定められた所定の対応関係に従って、上記サーバ選択基礎情報から求めて決定する。ルーム特定情報決定処理において、チャット実行部１３は、チャットルームに固有なルーム特定情報（ルームキー）を予め定められた所定の方法に従って決定する。
【００２４】
チャット実行部１３は、自己のユーザ特定情報を含む開設要求情報を生成し、通信部８０は、生成された開設要求情報を上記決定したマッチングサーバ３へ送信する。また、チャット実行部１３は、上記決定されたルーム特定情報と自己のユーザ特定情報とを含む設定要求情報を生成し、通信部８０は、生成された設定要求情報を上記決定したマッチングサーバ３へ送信する。開設要求処理は、開設されたチャットルームのルーム識別情報（ルームＩＤ）を通信部８０がマッチングサーバ３から受信することによって終了する。
【００２５】
チャット実行部１３は、上記決定されたルーム特定情報とサーバ選択基礎情報とを関連付けて記憶部１５に記憶する。また、チャット実行部１３は、チャットルームの開設情報を、チャット履歴情報としてルーム特定情報に関連付けて記憶する。チャットルームの開設情報は、チャットルームの開設日時を示す情報を含む。チャットルームの開設日時は、開設要求処理の実行開始時の他、開設要求処理の実行終了時（通信部８０がマッチングサーバ３からルーム識別情報を受信した時）など、開設要求処理の実行時期を特定する日時であればよい。開設情報を記憶するタイミングは、開設要求処理の実行終了時が好ましい。なお、日や時刻を示す種々の情報は、クライアント装置１が自己の内部クロックから取得する。
【００２６】
サーバ選択基礎情報を決定する上記所定の方法とは、固有のサーバ選択基礎情報を決定可能な方法であればよく、例えば、ユーザ特定情報と開設要求処理を開始した時刻とを組み合わせた基礎データから、所定のハッシュ関数を用いてハッシュ値を演算する方法を用いることができる。この場合、演算によって得られたハッシュ値がサーバ選択基礎情報となる。ハッシュ値が演算される基礎データに時刻を組み合わせることにより、同じクライアント装置１において重複したサーバ選択基礎情報が生成されてしまう不都合を最大限に回避することができる。
【００２７】
チャットルームを開設する一つのマッチングサーバ３を複数のマッチングサーバ３Ａ，３Ｂ，３Ｃから選択して決定する上記所定の対応関係とは、複数のマッチングサーバ３に対してチャットルームが均等に分散して割り振られる関係（マッチングサーバ３にそれぞれ付与された固有のサーバＩＤの一つと上記決定されたサーバ選択情報とが均等に対応する関係）であればよく、例えば、サーバ基準基礎情報（上記ハッシュ値）から一つのサーバＩＤがランダムに算出されるように設定されたハッシュ関数を用いることができる。この場合、チャットルームを開設するマッチングサーバ３のサーバＩＤは、サーバ基準基礎情報のハッシュ値として算出される。
【００２８】
チャットルームに固有なルーム特定情報を決定する上記所定の方法とは、固有のルーム特定情報を決定可能な方法であればよく、例えば、ユーザ特定情報とサーバＩＤとを組み合わせた基礎データから、所定のハッシュ関数を用いてハッシュ値を演算する方法を用いることができる。この場合、演算によって得られたハッシュ値がルーム特定情報となる。
【００２９】
なお、マッチングサーバ３を選択して決定するための上記所定の対応関係は、マッチングサーバ３の数の増減に応じて更新される。例えば、サーバ装置２の管理者等がマッチングサーバ３の数を増減すると、サーバ装置２は、増減後のサーバ数に適合した対応関係（新）を含むサーバ数更新情報を各クライアント装置１へ送信する。サーバ数更新情報を受信したクライアント装置１は、記憶されている対応関係（旧）を、受信した対応関係（新）に書き換える。
【００３０】
開設要求処理において、チャット実行部１３は、開設するチャットルームのルーム名の入力をコントローラ２０を介してユーザから受け付け、入力されたルーム名を、ルーム属性情報としてルーム特定情報に関連付けて記憶する。ユーザからルーム名が入力されない場合は、予め設定されたデフォルトのルーム名を記憶する。
【００３１】
入室要求処理は、チャットルームを指定し入室を指示する所定の操作をコントローラ２０がユーザから受け付け、クライアント装置１がコントローラ２０から操作信号（入室指示信号）を受信することによって実行される。入室要求処理において、チャット実行部１３は、指定されたチャットルームに対応するサーバ選択基礎情報及びルーム特定情報を記憶部１５から読み出し、上記開設要求処理の場合と同様に（読み出したサーバ選択基礎情報を用いて上記所定の方法に従って）、チャットルームが開設されたマッチングサーバ３を特定する。
【００３２】
チャット実行部１３は、ユーザ特定情報と上記読み出したルーム特定情報とを含む入室要求情報を生成し、通信部８０は、生成された入室要求情報を上記特定したマッチングサーバ３へ送信する。ルーム特定情報は、マッチングサーバ３においてチャットルームを検索するために用いられる。入室要求処理は、自己に対する入室完了情報をマッチングサーバ３から通信部８０が受信することによって終了する。
【００３３】
一方、指定したチャットルームが既に消去されている場合には、マッチングサーバ３においてチャットルームが抽出されず、入室に失敗する。入室に失敗した場合、通信部８０は、チャットルームへの入室に失敗した旨を示す入室失敗情報をマッチングサーバ３から受信する。通信部８０が入室失敗情報を受信すると、上記開設要求処理に移行する。すなわち、チャット実行部１３は、自己のユーザ特定情報を含む開設要求情報と、上記指定したチャットルームのルーム特定情報と自己のユーザ特定情報とを含む設定要求情報とを生成し、通信部８０は、生成された開設要求情報及び設定要求情報を、上記入室要求情報を送信したマッチングサーバ３へ送信する。
【００３４】
チャット実行部１３は、チャットルームに入室したことを示す入室情報（自己の入室情報）を、チャット履歴情報としてルーム特定情報に関連付けて記憶する。自己の入室情報は、チャットルームへの入室日時を示す情報を含む。チャットルームへの入室日時は、入室要求処理の実行開始時の他、入室要求処理の実行終了時（通信部８０がマッチングサーバ３から自己の入室完了情報を受信した時）など、チャットルームへの入室時期を特定する日時であればよい。自己の入室情報を記憶するタイミングは、入室要求処理の実行終了時が好ましい。
【００３５】
また、本実施形態では、開設要求処理が終了すると、ユーザからの操作入力を要件とせずに入室要求処理が実行される。なお、この場合、開設要求処理においてチャットルームが既に特定されているため、マッチングサーバ３及びチャットルームを特定するための上記処理は省略可能である。また、入室要求処理は、複数のチャットルームに対してそれぞれ独立して実行される処理であり、クライアント装置１は、一のチャットルームへの入室を維持したままで、他のチャットルームに入室することができる。
【００３６】
退室要求処理は、チャットルームを指定し退室を指示する所定の操作をコントローラ２０がユーザから受け付け、クライアント装置１がコントローラ２０から操作信号（退室指示信号）を受信することによって実行される。退室要求処理において、チャット実行部１３は、ユーザ特定情報及びサーバＩＤを含む退室要求情報を生成し、通信部８０は、生成された退室要求情報をマッチングサーバ３へ送信する。退室要求処理は、自己に対する退室完了情報をマッチングサーバ３から通信部８０が受信することによって終了する。
【００３７】
チャット実行部１３は、チャットルームから退室したことを示す退室情報（自己の退室情報）を、チャット履歴情報としてルーム特定情報に関連付けて記憶する。自己の退室情報は、チャットルームからの退室日時を示す情報を含む。チャットルームからの退室日時及び退室情報を記憶するタイミングは、退室要求処理の実行開始時の他、退室要求処理の実行終了時や、通信部８０がマッチングサーバ３から自己の退室完了情報を受信した時など、チャットルームからの退室時期を特定する日時であればよい。
【００３８】
チャット実行処理は、チャットルームへの入室している間（入室要求処理の終了から退室要求処理の終了までの間）、継続して実行される。チャット実行処理において、チャット実行部１３は、コントローラ２０からの操作信号に基づいてチャットデータを生成する。チャット実行部１３は、コントローラ２０を介したユーザからの送信指示に応じて、上記生成したチャットデータとユーザ特定情報とを含む送信データを生成し、通信部８０は、入室中のチャットルームのうちユーザから指定されたチャットルーム（マッチングサーバ３）に対して、上記生成された送信データを送信する。
【００３９】
通信部８０は、チャットルームへの他のクライアント装置１の入室を示す他人の入室完了情報、チャットルームからの他のクライアント装置１の退室を示す他人の退室完了情報、又はマッチングサーバ３から送信されたチャットデータ（受信チャットデータ）と、それぞれの実行主体を示すクライアント装置１のユーザ特定情報とを含む受信データを、マッチングサーバ３から受信する。
【００４０】
チャット実行部１３は、通信部８０が受信した他人の入室完了情報、他人の退室完了情報、及び受信チャットデータを示す受信メッセージ情報と、それぞれに対応するユーザ特定情報とを、チャット履歴情報としてルーム特定情報に関連付けて記憶する。記憶される他人の入室完了情報、他人の退室完了情報、及び受信メッセージ情報は、その受信日時を示す情報をそれぞれ含む。
【００４１】
招待送信処理は、他のユーザ（他のクライアント装置１）をチャットルームに招待するための所定の操作をコントローラ２０がユーザから受け付け、クライアント装置１がコントローラ２０から操作信号（招待指示信号）を受信することによって実行される。招待送信処理において、チャット実行部１３は、ユーザから指定されたチャットルーム（ルーム特定情報）に関連付けられたサーバ選択基礎情報とルーム特定情報とルーム属性情報とを記憶部１５から読み出し、チャットルームへ招待する旨を示すメッセージデータ、自己のユーザ特定情報、サーバ選択基礎情報、ルーム特定情報、及びルーム属性情報を含む招待情報を生成する。通信部８０は、生成された招待情報を、上記指定した他のクライアント装置１に対してメッセージサーバ４を介して送信する。なお、招待情報を送信した他のクライアント装置１のユーザ特定情報を、ルーム属性情報又はチャット履歴情報としてルーム特定情報に関連付けて記憶してもよい。
【００４２】
招待受信処理は、通信部８０がメッセージサーバ４を介して他のクライアント装置１から招待情報を受信することによって実行される。招待受信処理において、チャット実行部１３は、通信部８０が受信した招待情報に含まれているサーバ選択基礎情報とルーム特定情報とユーザ特定情報とルーム属性情報とを相互に関連付けて、記憶部１５に記憶する。ユーザ特定情報は、ルーム属性情報として記憶される。
【００４３】
ルーム選択画面表示処理は、ルーム選択画面の表示を指示する所定の操作をコントローラ２０がユーザから受け付けることによって実行される。ルーム選択画面表示処理において、表示制御部１４は、ルーム選択画面をモニタ装置１０に表示する。ルーム選択画面には、ユーザが選択可能なチャットルームを示す画像（ルーム対応画像）が配列されて表示される。各ルーム対応画像は、各チャットルーム（ルーム特定情報）に関連付けて記憶されたチャット履歴情報及びルーム属性情報のうち少なくとも一つの情報を含む。ユーザがコントローラ２０を操作し、一つのチャットルーム（表示されたルーム対応画像の中の一つ）を選択して指定すると、指定したチャットルームに対する上記入室要求処理が実行される。
【００４４】
チャット画面表示処理は、ルーム選択画面が表示された状態で一つのチャットルームが選択され指定されることによって実行される。チャット画面表示処理において、表示制御部１４は、チャット画面をモニタ装置１０に表示する。チャット画面には、指定されたチャットルームに関連付けて記憶されたチャット履歴情報のうち最新の情報（日時が遅い情報）を含む少なくとも一部の情報と、ルーム属性情報のうち少なくともルーム名を含む一部の情報とが表示される。チャット履歴情報は、最新の情報から時系列に並べて表示される。
【００４５】
表示制御部１４は、コントローラ２０を介したユーザからの指示に応じて、チャット画面を表示状態と非表示状態とに切り替える。非表示状態が指示されると、チャット画面表示処理が一時的に中断され、チャット画面は表示されない。但し、チャット画面表示処理の終了ではなく一時的な中断であるため、表示状態への切り替え指示を受けると即時にチャット画面が表示される。
【００４６】
チャット画面が非表示状態に設定されて他の画面が表示されているときに、入室中のチャットルームのルーム属性情報が追加されると（ルーム属性情報がルーム特定情報に関連付けて新たに記憶されると）、表示制御部１４は、追加されたルーム属性情報を報知するチャット情報報知画面を、上記他の画面上に重ねて表示する。
【００４７】
チャット画面表示処理は、上記退室要求処理の終了（チャットルームからの退室）によって終了する。
＜クライアント装置の例示＞
次に、図３を参照しながら、上記図２の構成が実装されたクライアント装置１の一例について説明する。
【００４８】
クライアント装置１は、中央演算処理装置（ＣＰＵ：Central Processing Unit）４１及びその周辺装置等からなる制御系４０と、ＨＤＤ（Hard Disc Drive）４５と、フレームバッファ５３に描画を行う画像処理装置（ＧＰＵ：Graphics Processing Unit）５２等からなるグラフィックシステム５０と、楽音、効果音等を発生する音声処理装置（ＳＰＵ：Sound Processing Unit）６１等からなるサウンドシステム６０と、アプリケーションプログラムが記録されている光ディスクの制御を行う光ディスク制御部７０と、通信部８０と、インターフェース部９０と、上記の各部が接続されているバス等を備えて構成されている。ＣＰＵ４１はチャット実行部１３及び表示制御部１４として機能し、グラフィックシステム５０は表示制御部１４として機能する。
【００４９】
制御系４０は、ＣＰＵ４１と、割り込み制御やダイレクトメモリアクセス（ＤＭＡ：Direct Memory Access）転送の制御等を行う周辺装置制御部４２と、ＲＡＭ（Random Access Memory）からなるメインメモリ４３と、ＲＯＭ（Read Only Memory）４４とを備えている。メインメモリ４３は記憶部１５として機能する。
【００５０】
ＲＯＭ４４には、クライアント装置１の各部を制御するためのオペレーティングシステム等のプログラムや、各種機能を実現させるためのアプリケーションプログラムが記憶されている。ＣＰＵ４１は、ＲＯＭ４４に記憶されているオペレーティングシステムをメインメモリ４３に読み出し、読み出したオペレーティングシステムを実行することにより、このクライアント装置１の全体を制御する。
【００５１】
ＨＤＤ４５には、各種データや、チャットを実現させるためのプログラム（チャット実行プログラム）などの各種アプリケーションプログラムが記憶されている。ＣＰＵ４１は、ＨＤＤ４５に記憶されているチャット実行プログラムをメインメモリ４３に読み出し、読み出したチャット実行プログラムを実行する。
【００５２】
サウンドシステム６０は、制御系４０の制御の下、音声信号を制御するＳＰＵ６１と、音声再生の際の波形データ等が記録されるサウンドバッファ６２と、ＳＰＵ６１によって発生される楽音、効果音等を出力するスピーカ６３とを備えている。サウンドシステム６０には、マイクロフォン１２から出力された音声信号とボイス・ディテクト値とが入力される。サウンドシステム６０は、入力された音声信号をデジタル変換し、音声コーデックにより符号化して通信部８０に供給する。また、サウンドシステム６０には、インターネット３０を介して取得された音声データが、通信部８０から供給される。サウンドシステム６０は、当該音声データを音声コーデックにより復号し、アナログ変換して波形データを生成し、これをサウンドバッファ６２に記録し、これをスピーカ６３に供給する。
【００５３】
光ディスク制御部７０は、光ディスクに記録されたプログラムやデータ等を再生する光ディスク装置７１と、例えばエラー訂正符号(ＥＣＣ：Error Correction Code)が付加されて記録されているプログラム、データ等を復号するデコーダ７２と、光ディスク装置７１からのデータを一時的に記憶することにより、光ディスクからのデータの読み出しを高速化するバッファ７３とを備えている。上記のデコーダ７２には、サブＣＰＵ７４が接続されている。
【００５４】
インターフェース部９０は、パラレルＩ／Ｏインターフェース（ＰＩＯ）９１と、シリアルＩ／Ｏインターフェース（ＳＩＯ）９２とを備えている。これらは、図示しないメモリカードとクライアント装置１とを接続するためのインターフェースである。
【００５５】
グラフィックシステム５０は、ジオメトリトランスファエンジン（ＧＴＥ：Geometry Transfer Engine）５１と、ＧＰＵ５２と、フレームバッファ５３と、画像エンコーダ・デコーダ５４とを備えている。このグラフィックシステム５０には、制御系４０がＨＤＤ４５から読み出した画像データやビデオカメラ１１からの映像信号が供給される。
【００５６】
ＧＴＥ５１は、例えば複数の演算を並列に実行する並列演算機構を備え、上記ＣＰＵ４１からの演算要求に応じて座標変換、光源計算、行列あるいはベクトルなどの演算を高速に行う。そして、制御系４０は、ＧＴＥ５１による演算結果に基づいて三角形や四角形などの基本的な単位図形（ポリゴン）の組み合わせとして３次元モデルを定義して３次元画像を描画するための各ポリゴンに対応する描画命令をＧＰＵ５２に送る。
【００５７】
ＧＰＵ５２は、制御系４０からの描画命令に従って、フレームバッファ５３に対して多角形（ポリゴン）等の描画を行う。フレームバッファ５３は、ＧＰＵ５２により描画された画像を記憶する。このフレームバッファ５３は、いわゆるデュアルポートＲＡＭからなり、ＧＰＵ５２からの描画あるいはメインメモリ４３からの転送と、表示のための読み出しとを同時に行うことができる。また、このフレームバッファ５３には、ビデオ出力として出力される表示領域の他に、ＧＰＵ５２がポリゴン等の描画を行う際に参照するカラールックアップテーブル（ＣＬＵＴ：Color Lock Up Table）が記憶されるＣＬＵＴ領域と、描画時に座標変換されてＧＰＵ５２によって描画されるポリゴン等の中に挿入（マッピング）される素材（テクスチャ）が記憶されるテクスチャ領域が設けられている。これらのＣＬＵＴ領域とテクスチャ領域は、表示領域の変更等に従って動的に変更される。
【００５８】
画像エンコーダ・デコーダ５４は、上記の制御系４０からの制御により、静止画あるいは動画の画像の符号化及び復号化や、デジタル変換及びアナログ変換などの各種処理を行う。
【００５９】
通信部８０は、制御系４０の制御の下、インターネット３０を介して、サーバ装置２を含む他の情報処理装置とのデータ通信を制御する。
＜マッチングサーバの主要構成＞
次に、図４を参照しながら、マッチングサーバ３の内部構成のうち本発明に関連する主要な構成について説明する。
【００６０】
マッチングサーバ３は、通信部２４０とチャット管理部１６と記憶部１７とから構成され、これらはバスを介して接続される。マッチングサーバ３は、記憶部１７に記憶されたチャット管理プログラムに従って、以下の各処理（ルーム開設処理、入室処理、退室処理、チャット管理処理）を実行する。記憶部１７には、ルーム情報記憶領域２３０ａが設けられている。このルーム情報記憶領域２３０ａは、ルーム特定情報とルーム識別情報とユーザ特定情報と少なくとも最新のチャットデータとが相互に関連付けられて記憶される領域である。本実施形態のルーム情報記憶領域２３０ａは、各情報が登録されることによって相互に関連付けられるルーム情報登録テーブルによって構成されている。なお、クライアント装置１から受信する各情報に含まれるユーザ特定情報が送信先のアドレス情報として機能しない場合、記憶部１７には、ユーザ特定情報と送信先のアドレス情報との対応関係が記憶されたアドレステーブルが予め設定され、マッチングサーバ３は、送信先のユーザ特定情報に対応するアドレス情報をアドレステーブルから読み出すことによって、クライアント装置１に対する送信処理を実行する。
【００６１】
ルーム開設処理は、通信部２４０がクライアント装置１から開設要求情報及び設定要求情報を受信することによって実行される。ルーム開設処理において、チャット管理部１６は、通信部２４０が受信した開設要求情報に応じてチャットルームを開設する。このチャットルームの開設とは、ルーム情報登録テーブルに新規のチャットルームのための記憶領域を設定することである。チャットルームを開設すると、ルーム情報登録テーブルの上記設定した記憶領域に、通信部２４０が受信したルーム特定情報を登録する。このルーム特定情報の登録に際して、チャット管理部１６は、生成したチャットルームをマッチングサーバ３内で識別するためのルーム特定情報をルーム識別情報に関連付けて登録し、通信部２４０は、上記開設要求を行ったクライアント装置１に対してルーム識別情報を送信する。チャットルームに入室中のクライアント装置１は、マッチングサーバ３内におけるチャットルームの宛先としてルーム識別情報を用いる。
【００６２】
入室処理は、通信部２４０がクライアント装置１から入室要求情報を受信することによって実行される。入室処理において、チャット管理部１６は、通信部２４０が受信したルーム特定情報がルーム情報登録テーブルに登録されているか否かを検索する（存在するか否かを判定する）。ルーム特定情報が登録されている場合（ルーム特定情報を抽出した場合）、チャット管理部１６は、通信部２４０が受信したユーザ特定情報を、抽出したルーム特定情報に対応付けてルーム情報登録テーブルに登録する。ユーザ特定情報の登録によって、クライアント装置１がチャットルームに入室した状態となる。チャット管理部１６は、入室完了情報を生成し、通信部２４０は、生成された入室完了情報を、そのチャットルームに関連付けて登録されている全てのクライアント装置１（入室要求を行ったクライアント装置１を含む）に対して送信する。
【００６３】
一方、ルーム特定情報が登録されてない場合（ルーム特定情報を抽出できなかった場合）、チャット管理部１６は、入室失敗情報を生成し、通信部２４０は、生成された入室失敗情報をクライアント装置１へ送信する。続いて、通信部２４０はクライアント装置１から開設要求情報及び設定要求情報を受信し、チャット管理部１６は、上記ルーム開設処理を実行する。
【００６４】
退室処理は、通信部２４０がクライアント装置１から退室要求情報を受信することによって実行される。退室処理において、チャット管理部１６は、退室要求情報に含まれたルームＩＤに関連付けられているユーザ特定情報の中から、受信したユーザ特定情報を抽出して消去する。ユーザ特定情報の消去によって、クライアント装置１がチャットルームから退室した状態となる。チャット管理部１６は、退室完了情報を生成し、通信部２４０は、生成された退室完了情報を、そのチャットルームに関連付けて登録されている全てのクライアント装置１（退室要求を行ったクライアント装置１を含む）に対して送信する。
【００６５】
また、チャットルームから全てのクライアント装置１が退室すると（登録されたルーム特定情報に関連付けられたユーザ特定情報が全て消去されると）、チャット管理部１６は、そのチャットルーム（ルーム特定情報）に関する全ての情報（ルーム特定情報とこれに関連付けて記憶された全てのデータ）を、ルーム情報登録テーブルから消去する。関連する全ての情報の消去によって、チャットルームが消去された状態となる。
【００６６】
チャット管理処理は、ルーム情報登録テーブルにルーム特定情報が登録されている間（チャットルームに入室中のクライアント装置１が存在している間）、継続して実行される。チャット管理処理において、そのチャットルームに対応するルーム特定情報を含む送信データを通信部２４０がクライアント装置１から受信すると、チャット管理部１６は、通信部２４０が受信したルーム特定情報に関連付けられて登録されたユーザ特定情報に関連付けられた全てのクライアント装置１に対して、上記送信データを送信する。なお、チャット管理部１６は、上記受信した送信データをそのまま転送せず、送信データに含まれるメッセージデータに不適切な表現や文章が含まれていないか否かを判定し、不適切な表現や文章が含まれていると判定した場合には、該当する部分を無関係な文字や記号（例えばｘなど）に置換して、クライアント装置１に送信してもよい。
＜マッチングサーバの例示＞
次に、図５を参照しながら、上記図４の構成が実装されたマッチングサーバ３の一例について説明する。
【００６７】
マッチングサーバ３は、ＣＰＵ２００、ＲＯＭ２１０、ＲＡＭ２２０、ＨＤＤ（Hard Disc Drive）２３０、通信部２４０等から構成され、これらはバスを介して接続される。ＣＰＵ２００は、チャット管理部１６として機能し、ＲＡＭ２２０及びＨＤＤ２３０は記憶部１５として機能する。
【００６８】
ＲＯＭ２１０には、サーバ装置２の各部を制御するためのオペレーティングシステムや各種プログラムが記憶されている。ＣＰＵ２００は、サーバ装置２の起動時にＲＯＭ２１０に記憶されているオペレーティングシステムをＲＡＭ２１０に読み出し、読み出したオペレーティングシステムを実行することにより、サーバ装置２の各部の動作を制御する。
【００６９】
ＨＤＤ２３０には、各種データや、チャットを実現させるためのプログラム（チャット管理プログラム）などの各種アプリケーションプログラムが記憶されている。ＣＰＵ２００は、ＨＤＤ２３０に記憶されているチャット管理プログラムをＲＡＭ２２０に読み出し、読み出したチャット管理プログラムを実行する。
【００７０】
通信部２４０は、ＣＰＵ２００の制御の下、インターネット３０を介したデータ通信を制御する。
＜メッセージサーバの構成＞
メッセージサーバ４は、ＣＰＵと、ＲＯＭと、ＲＡＭと、ＨＤＤ（Hard Disc Drive）と、通信部、バス等を有し、基本的な構成はマッチングサーバ３と同様であるため、その詳しい説明は省略する。
（２）動作
次に、チャットシステムＳＹＳにおいて実行される動作の一例を説明する。
【００７１】
クライアント装置１では、図示しない電源が投入され、ＲＯＭ４４に記憶されたオペレーティングシステムなどのプログラムがＣＰＵ４１によってメインメモリ４３に読み出されて実行され、ユーザによってそれぞれ指示が入力されることにより、ＲＯＭ４４や光ディスク装置７１に装着された光ディスクからメインメモリ４３に読み出された各種プログラムがＣＰＵ４１によって実行され、上述の構成欄で述べた各種機能が実現される。
【００７２】
マッチングサーバ３では、図示しない電源が投入され、ＲＯＭ２１０に記憶されたオペレーティングシステムなどの各種プログラムがＣＰＵ２００によってＲＡＭ２２０に読み出されて実行されることにより、上述の構成欄で述べた各種機能が実現される。なお、メッセージサーバについても同様である。
【００７３】
チャットシステムＳＹＳを利用してチャットを開始する場合、ユーザは、（１）自分でチャットルームを開設して他のユーザを招待すること、及び（２）他人から招待されたチャットルームに入室することが可能である。
【００７４】
以下の説明は、クライアント装置２０ＡのユーザＡがチャットルームを開設し、そのチャットルームにクライアント装置２０ＢのユーザＢを招待する場合、及び招待されたユーザＢがチャットルームに入室（チャットに参加）する場合の動作であり、各種設定は、以下のとおりである。ユーザ特定情報は、ユーザＩＤである。サーバキー（サーバ選択基礎情報）は、ユーザＩＤと開設要求処理の開始時刻との組み合わせから算出したハッシュ値である。チャットルームを開設するマッチングサーバ３のサーバＩＤは、サーバキーのハッシュ値として算出される。ルームキー（ルーム特定情報）は、時刻（例えば、上記開設要求処理の開始時刻）とマッチングサーバ３から受信したルームＩＤとの組み合わせである。
＜チャットルームの開設・友人の招待＞
ユーザＡがチャットルームＲＡを新規に開設する場合のクライアント装置２０Ａ及びマッチングサーバ３の動作を、図６〜図９を参照して説明する。
【００７５】
図６に示すように、ユーザＡがコントローラ２０Ａを操作してチャットルームＲＡの新規開設を指示する所定の入力を行い、クライアント装置１Ａがコントローラ２０からルーム開設指示信号を受信すると（ステップＳ１０）、クライアント装置１Ａが開設要求処理を開始する。
【００７６】
開設要求処理では、クライアント装置１Ａの内部クロックからルーム開設指示信号の受信時刻Ｔａを取得し、記憶部１５ＡからユーザＡのユーザＩＤ（Ａ）を読み出し、ユーザＩＤ（Ａ）の文字列と時刻Ｔａの文字列とを連結することによって基礎データ（ユーザＩＤ（Ａ） Ｔａ）を生成し、予め設定されたハッシュ関数（hashＡ）を用いて、基礎データ（ユーザＩＤ（Ａ） Ｔａ）からハッシュ値（hashＡ（ユーザＩＤ（Ａ） Ｔａ））を演算する（ステップＳ１１）。このハッシュ値（hashＡ（ユーザＩＤ（Ａ） Ｔａ））は、複数のマッチングサーバ３から一つのマッチングサーバ３を偏り無く選択する際に使用可能なサーバキーＳＫａとして機能する。
【００７７】
次に、予め設定されたハッシュ関数（hashＢ）を用いて、サーバキーＳＫａのハッシュ値（hashＢ（ＳＫａ））を演算する（ステップＳ１２）。このハッシュ値（hashＢ（ＳＫａ））は、複数のマッチングサーバ３から偏り無く選択された一つのマッチングサーバ３のサーバＩＤである。この例では、算出されたサーバＩＤ（Ａ）がマッチングサーバ３ＡのサーバＩＤであり、マッチングサーバ３Ａが選択されたとする。
【００７８】
次に、ユーザＩＤ（Ａ）を含む開設要求情報をマッチングサーバ３Ａへ送信する（ステップＳ１３）。
【００７９】
マッチングサーバ３Ａは、開設要求情報の受信に応じて（ステップＳ２０）、ルーム開設処理を実行する（ステップＳ２１）。ルーム開設処理では、ルームＩＤを生成し、生成したルームＩＤをルーム情報登録テーブルに新規に登録する。マッチングサーバ３Ａは、生成したルームＩＤを、クライアント装置１Ａへ送信する（ステップＳ２２）。この際、クライアント装置１Ａ側において上記開設要求情報に対応したルームＩＤであることが判別可能なように、ルームＩＤを受信した開設要求情報に対応付けた状態で送信する。
【００８０】
ルームＩＤを受信したクライアント装置１Ａは、受信したルームＩＤと時刻とを組み合わせることにより、チャットルームＲＡに固有なルームキーＲＫａを設定する（ステップＳ１５）。
【００８１】
次に、ルームキーＲＫａ及びルームＩＤを含む設定要求情報をマッチングサーバ３Ａへ送信する（ステップＳ１５）。
【００８２】
マッチングサーバ３Ａは、設定要求情報を受信すると（ステップＳ１６）、受信した設定要求情報に含まれるルームキーＲＫａを、開設したチャットルームＲＡ（受信した設定要求情報に含まれるルームＩＤ）に関連付けてルーム情報登録テーブルに登録する（ステップＳ１７）。これにより、マッチングサーバ３ＡにおけるチャットルームＲＡの開設（上記開設処理及び登録処理）が完了し、マッチングサーバ３Ａは、開設完了情報を生成してルームＩＤに関連付けてクライアント装置１Ａに送信する（ステップＳ１８）。
【００８３】
クライアント装置１Ａは、開設完了情報の受信により開設要求処理を終了する（ステップＳ１９）。
【００８４】
クライアント装置１Ａは、開設要求処理に続いて入室要求処理を実行し、チャットルームＲＡへ入室する。なお、入出要求処理の詳細については後述する。
【００８５】
クライアント装置１Ａは、ステップＳ１１で算出したサーバキーＳＫａとステップＳ１４で設定したルームキーＲＫａとを、相互に関連付けて記憶部１５に記憶する。また、チャットルームＲＡの開設日時を示す情報をルームキーＲＫａに関連付けて記憶する。
【００８６】
また、開設要求処理において、クライアント装置１Ａは、例えば図７に示すように、チャットルームＲＡのルーム名入力画面１００をモニタ装置１０Ａに表示させる。ルーム名入力画面１００には、「チャットルーム名を入力してください」などの文章１０１と、ルーム名入力欄１０２と、確定アイコン１０３とが表示される。ユーザＡがコントローラ１０Ａを操作してルーム入力欄１０２にカーソルを設定してルーム名を入力し、確定アイコン１０３にカーソルを移動させて所定のＹＥＳボタンを押すと、クライアント装置１Ａは、入力されたルーム名をルームキーＲＫａに関連付けて記憶する。なお、ユーザＡがルーム名を入力せずに、確定アイコン１０３にカーソルを設定してＹＥＳボタンを押すと、クライアント装置１Ａはデフォルトのルーム名を記憶する。
【００８７】
ルーム名の入力が完了すると、クライアント装置１Ａは、モニタ装置１０Ａの表示を、ルーム名入力画面１００から、例えば図８に示すような招待者選択画面１１０に切り替える。招待者選択画面１１０には、「招待する友人を選んでください」などの文章１１１と、友人として登録された各ユーザのニックネーム（はな子、タロー、次郎、ポチなど）１１２と、各ユーザのアバター１１３と、選択の有無を入力するチェックボックス１１４と、選択された合計人数を示す人数表示欄１１５と、確定アイコン１１６とが表示される。ニックネーム１１２とアバター１１３とは、記憶部１５Ａのフレンド管理テーブルから読み出され、各ユーザ毎に横並びに配置される。チェックボックス１１４は、ユーザに対して１つずつ設けられ、デフォルトは矩形枠状（中抜き）の非選択表示である。ユーザＡがコントローラ１０Ａを操作してカーソルを上下に移動させ、所望のユーザにカーソルを設定してＹＥＳボタンを押すと、対応するチェックボックス１１４の表示が切り替わる。非選択表示の場合には、選択表示（例えば、塗り潰された状態）に切り替わり、選択表示の場合には、非選択表示に切り替わる。人数表示欄１１５には、招待者として選択しているユーザの数が、各チェックボックス１１４の選択／非選択の切り替えに応じて増減して表示される。図８は、ニックネーム「タロー」のみが選択され、「人数表示欄」の「１」の数字が表示された状態を示している。ユーザＡがチャットルームＲＡに招待したい１人以上のユーザを選択し（対応するチェックボックス１１４を選択態様に変更し）、確定アイコン１１１６にカーソルを設定してＹＥＳボタンを押すと、コントローラ２０Ａからクライアント装置１Ａへ招待指示信号が送信される。招待指示信号を受信したクライアント装置１Ａは、招待状の送信指示があったと判断し、招待対象のユーザを確定させて、招待送信処理を開始する。この例では、ユーザＢが招待対象として確定したとする。
【００８８】
招待送信処理を開始すると、クライアント装置１Ａは、図９に示すように、ユーザＡから指定されたチャットルーム（ルーム特定情報）に関連付けられたサーバキー、ルームキー、及びルーム名を記憶部１５から読み出す（ステップＳ３０）。チャットルーム開設時の招待発信処理では、開設を要求しているチャットルームＲＡがユーザＡから指定されたチャットルームとなり、サーバキーＳＫａ（図６のステップＳ１１）とルームキーＲＫａ（図６のステップＳ１４）及び入力されたルーム名を読み出す。
【００８９】
次に、クライアント装置１Ａは、チャットルームＲＡへ招待する旨を示すメッセージデータ、自己のユーザＩＤ（Ａ）、読み出したサーバキーＳＫａとルームキーＲＫａとルーム名を含む招待情報を生成し、生成した招待情報を、クライアント装置Ｂを宛先としてメッセージサーバ４へ送信する（ステップＳ３１）。
【００９０】
メッセージサーバ４は、クライアント装置１Ａから招待情報を受信すると、これをクライアント装置１Ｂへ送信する（ステップＳ３２）。
【００９１】
クライアント装置１Ｂは、招待情報を受信し（ステップＳ３３）、招待受信処理を実行する。すなわち、受信した招待情報に含まれているサーバキーＳＫａとルームキーＲＫａとユーザＩＤ（Ａ）とルーム名とを相互に関連付けて、記憶部１５Ｂに記憶する（ステップＳ３４）。
＜チャットルームへの入室＞
ユーザＢがチャットルームＲＡに入室する場合のクライアント装置２０Ｂ及びマッチングサーバ３の動作を、図１０及び図１１を参照して説明する。
【００９２】
ユーザＡから招待されたチャットルームＲＡへ入室する場合、ユーザＢは、自己が入室可能なチャットルームの中からチャットルームＲＡを選択して指定するため、コントローラ２０Ｂを操作して所定の入力を行い、図１０に示すようなルーム選択画面１２０をモニタ装置１０Ｂに表示させる。
【００９３】
ルーム選択画面１２０には、ユーザＢが選択可能なチャットルームを示すルーム対応画像１２１が縦方向に配列されて表示される。ルーム対応画像１２１は、そのチャットルームに関連付けられたルーム属性情報又はチャット履歴情報に基づいて分類され、且つソートされている。
【００９４】
図１０の例では、５つのチャットルームが選択可能な状態であり、５つのルーム対応画像１２１ａ〜１２１ｅが上下方向に並んでいる。ルーム対応画像１２１は、現在入室中（参加中）のチャットルームのルーム対応画像１２１ａ，１２１ｂと、招待されたが一度も入室していない新着のチャットルームのルーム対応画像１２１ｃ，１２１ｄと、過去に入室したことがあるが現在は入室していない退室中のチャットルーム１２１ｅとに分類され、入室中、新着、退室中の順に上方から下方に並んでいる。
【００９５】
各ルーム対応画像１２１ａ〜１２１ｅには、ルーム名（「映画の部屋」、「待合室」、「おしゃべり用」、「ゲームしながら話そう」、「パズル同好会」）と、ニックネーム（次郎、ポチ、イチロー、はな子、次郎）がそれぞれ含まれる。ルーム対応画像１２１ａ，１２１ｂには現在入室中であることを示す入室中表示画像１２２が、ルーム対応画像１２１ｃ〜１２１ｅには現在退室中であることを示す退室中表示画像１２３がそれぞれ含まれる。退室中のルームのうち新着ルーム（他のユーザから招待されて未だ一度も入室していないルーム）のルーム対応画像１２１ｃの場合、新着であることを示す新着表示画像１２４が退室中表示画像１２３に付されて表示される。なお、これらの表示画像１２２〜１２４は、対応するルームが現在入室中であるか、退室中で且つ新着（未入室）であるか、或いは退室中で過去に入室したことがあるかを識別可能に表示するものであれば、上記に限定されない。
【００９６】
現在入室中のルーム対応画像１２１ａ，１２１ｂには、最終発言者（クライアント装置１Ｂがマッチングサーバ３から最後に受信したチャットデータ（最新のチャットデータ）の送信元のユーザ）のアバター１２５と、最終発言者の発言内容（クライアント装置１Ｂがマッチングサーバ３から最後に受信したチャットデータ（最新のチャットデータ））とがそれぞれ含まれる。最終発言者がユーザＢ（自己）の場合、ユーザＢが予め記憶部１５に登録した自己のアバターの画像データが読み出され、最終発言者のアバター１２５として表示され、クライアント装置１Ｂがマッチングサーバ３から最後に受信した自己からのチャットデータ（ユーザＢの発言内容）が、最終発言者の発言内容として表示される。
【００９７】
ルーム対応画像１２１ｃ〜１２１ｅには、招待者（招待情報を送信したユーザ）のアバター１２６，１２７がそれぞれ含まれる。招待者が自己（ユーザＢ）の友人として登録されている場合（招待者のユーザＩＤが記憶部１５Ｂのフレンド管理テーブルに記憶されている場合）、招待者のユーザＩＤに対応するアバターの画像データがフレンド管理テーブルから読み出され、招待者のアバター１２６，１２７として表示される。自己のフレンド管理テーブルに登録されていないユーザから招待された新着ルームの場合、チャットシステムＳＹＳを利用するユーザのユーザＩＤとアバターの画像データ及びニックネームとの対応関係が登録されたユーザ情報登録テーブルが、インターネット上の記憶部（例えばマッチングサーバ３の記憶部１７）に予め設定され、招待者のユーザＩＤに対応するアバターの画像情報やニックネームがネットワークを介してユーザ登録テーブルから取得され、招待者のアバター１２６やニックネームとして表示される。自己（ユーザＢ）が開設したルームの場合には、ユーザＢのアバター及びニックネームが招待者のアバター１２７及びニックネームとして表示される。なお、一度設定されたユーザＩＤとアバターの画像データやニックネームとの対応関係は、チャット画面表示処理のために記憶部１５Ｂに記憶される。
【００９８】
また、ルーム対応画像１２１ａ，１２１ｂにカーソルを合わせると最終発言日時が表示され、ルーム対応画像１２１ｃ，１２１ｄにカーソルを合わせると招待情報の受信日時が表示され、ルーム対応画像１２１ｅにカーソルを合わせると最終退室日時が表示される。
【００９９】
ユーザＢがルーム選択画面１２０に表示されたルーム対応画像１２１から所望の一つを選択し、選択したルーム対応画像１２１にカーソルを移動させてＹＥＳボタンを押すことにより、チャットルームの選択が確定し、コントローラ２０Ｂからクライアント装置１Ｂに入室指示信号が送信される。この例では、チャットルームＲＡが選択されたとする。
【０１００】
図１１に示すように、クライアント装置１Ｂは、入室指示信号を受信することによって入室要求処理を開始し（ステップＳ４０）、チャットルームＲＡに対応するサーバキーＳＫａとびルームキーＲＫａとを記憶部１５Ｂから読み出し（ステップＳ４１）、上記開設要求処理の場合（図６のステップＳ１２）と同様に、サーバキーＳＫａを用いてサーバＩＤを算出して、入室を要求するマッチングサーバ３を特定する（ステップＳ４２）。この場合、サーバキーＳＫａを用いているので、図６のステップＳ１２と同様にサーバＩＤ（Ａ）が算出される。
【０１０１】
次に、クライアント装置１０Ｂは、自己のユーザＩＤ（Ｂ）とルームキーＲＫａとを含む入室要求情報を生成し、これをサーバＩＤ（Ａ）に対応するマッチングサーバ３Ａへ送信する（ステップＳ４３）。
【０１０２】
マッチングサーバ３Ａは、入室要求情報を受信することによって、入室処理を開始する（ステップＳ４４）。入室処理では、まず、受信した入室要求情報に含まれるルームキーＲＫａがルーム情報登録テーブルに登録されているか否か（チャットルームＲＡが存在するか否か）を判定する（ステップＳ４５）。
【０１０３】
登録されていると判定した場合（ルームキーＲＫａを抽出した場合）、入室処理が実行可能であるため、ユーザＩＤ（Ｂ）をルームキーＲＫａに対応付けてルーム情報登録テーブルに登録する（ステップＳ４６）。ユーザＩＤ（Ｂ）の登録によって、クライアント装置１ＢがチャットルームＲＡに入室した状態となり、チャットルームＲａに関連付けて登録されている全てのクライアント装置１（クライアント装置１Ｂを含む）に対して入室完了情報を送信する（ステップＳ４７）。
【０１０４】
クライアント装置１Ｂは、自己に対する入室完了情報をマッチングサーバ３から受信することによって、入室要求処理を終了する（ステップＳ４８）。
【０１０５】
一方、チャットルームＲＡが既に消去されている等の理由により、ステップＳ４５においてルームキーＲＫａが登録されてないと判定した場合（ルームキーＲＫａを抽出できなかった場合）、入室失敗情報をクライアント装置１Ｂへ送信する（ステップＳ４９）。
【０１０６】
入室失敗情報を受信したクライアント装置１Ｂは、上記開設要求処理に移行する。すなわち、自己のユーザＩＤ（Ｂ）を含む開設要求情報と、チャットルームＲＡのルームＲＫａと自己のユーザＩＤ（Ｂ）とを含む設定要求情報とを、マッチングサーバ３Ａへ送信すする。これにより、マッチングサーバ３ＡにチャットルームＲＡが開設され、そのチャットルームＲＡにクライアント装置１Ｂが入室する。
【０１０７】
クライアント装置１Ｂは、チャットルームＲＡに入室している間（入室要求処理の終了から退室要求処理の終了までの間）、チャットルームＲＡに対するチャット実行処理を継続して実行する。クライアント装置１Ｂは、コントローラ２０Ｂからの操作信号に基づいてチャットデータを生成し、コントローラ２０Ｂを介したユーザからの送信指示に応じて、生成したチャットデータとユーザＩＤ（Ｂ）とを含む送信データを生成し、マッチングサーバ３ＡのチャットルームＲＡに対して、生成した送信データを送信する。
【０１０８】
また、クライアント装置１Ｂは、チャットルームＲＡへの他のクライアント装置１の入室を示す他人の入室完了情報、チャットルームＲＡからの他のクライアント装置１の退室を示す他人の退室完了情報、又はマッチングサーバ３Ａから送信されたチャットデータ（受信チャットデータ）と、それぞれの実行主体を示すクライアント装置１のユーザＩＤとを含む受信データを、マッチングサーバ３から受信する。クライアント装置１Ｂは、受信した他人の入室完了情報、他人の退室完了情報、及び受信チャットデータを示す受信メッセージ情報と、それぞれに対応するユーザＩＤとを、チャット履歴情報としてルーム特定情報に関連付けて記憶する。記憶される他人の入室完了情報、他人の退室完了情報、及び受信メッセージ情報は、その受信日時を示す情報をそれぞれ含む。
【０１０９】
また、チャットルームＲＡに入室中のクライアント装置１Ｂは、例えばユーザＢがチャットを実行している間、チャット画面表示処理を実行し、図１２に示すようなチャット画面１３０をモニタ装置１０Ｂに表示する。
【０１１０】
チャット画面１３０には、チャットルームＲＡに関連付けて記憶されたチャット履歴情報のうち最新の情報（受信日時が遅い情報）を含む少なくとも一部の情報と、ルーム属性情報のうち少なくともルーム名を含む一部の情報とが表示される。チャット履歴情報は、最新の情報から時系列に並べて表示される。
【０１１１】
図１２に示す例のチャット画面１３０は、ルーム名（映画の部屋）が表示されるルーム名表示欄１３２、発言者（チャットデータを送信したユーザ）のアバターとニックネームと発言内容（受信したチャットデータ）とが、発言時（受信時刻）を基準に時系列で並んで表示される発言表示欄１３３、ユーザＢが発言を書き込む（チャットデータを入力する）発言入力欄１３４、入室中のユーザの人数を示す人数表示欄１３５、発言表示欄１３３をスクロールさせるためのスクロールバー１３６、フレンドリスト表示用のアイコン１３７、及び参加者リスト表示用のアイコン１３８が含まれる。
【０１１２】
フレンドリスト表示用のアイコン１３７にカーソルを移動させてＹＥＳボタンを押すと、図８に示す招待者選択画面１１０と同様の画面が表示され、所定の操作入力を行うことによって、当該チャットルームに他のユーザを招待することができる。また、参加者リスト表示用のアイコン１３８にカーソルを移動させてＹＥＳボタンを押すと、当該チャットルームに入室（参加）している全てのユーザのリスト（例えば、ニックネームとアバターのリスト）が表示される。
【０１１３】
チャット画面１３０は、コントローラ２０を介したユーザからの指示に応じて表示状態と非表示状態とに切り替わり、非表示状態が指示されると、チャット画面表示処理が一時的に中断され、チャット画面１３０は表示されない。
【０１１４】
チャット画面１３０が非表示状態に設定されて他の画面が表示されているとき（例えば、ゲームの実行中であり、そのゲーム画面が表示されているとき）に、入室中のチャットルームのルーム属性情報が追加されると（ルーム属性情報がルーム特定情報に関連付けて新たに記憶されると）、追加されたルーム属性情報を報知するチャット情報報知画面が、ゲーム画面上に重ねて表示される。
【０１１５】
例えば、図１３に示すように、「待合室」というルーム名のチャットルームに入室し、チャット画面を非表示状態に設定し、ゲーム画面１４０を表示しているときに、「待合室」に対して、ニックネーム「ポチ」さんが「了解です」と発言したとき（「了解です」というメッセージデータを、ニックネーム「ポチ」さんに対応するユーザＩＤに関連付けられて受信したとき）、これらの情報を含むチャット情報報知画面１４１が表示される。また、ニックネーム「はな子」さんが「待合室」に入室したとき、「はな子さんが待合室に参加しました」という文章を含むチャット情報報知画面が表示される。なお、チャット情報報知画面１４１を表示する範囲及び位置は、ゲームの実行に支障がないように、可能な限り狭く且つゲーム画像１４０の周縁の近くであることが好ましい。
＜チャットルームからの退室＞
ユーザＢがチャットルームＲＡから退室する場合のクライアント装置２０Ｂ及びマッチングサーバ３の動作を説明する。
【０１１６】
ユーザＢが、コントローラ２０Ｂを操作することによりチャットルームＲＡを指定し退室を指示すると、クライアント装置１Ｂは、コントローラ２０Ｂから退室指示信号を受信し、退室要求処理を開始する。退室要求処理では、ユーザＩＤ（Ｂ）及びサーバＩＤを含む退室要求情報をマッチングサーバ３Ａへ送信する。
【０１１７】
退室要求情報を受信したマッチングサーバ３Ａは、退室処理を開始する。退室処理において、マッチングサーバ３Ａは、受信した退室要求情報に含まれるルームＩＤに関連付けて登録されているユーザＩＤの中から、受信したユーザＩＤ（Ｂ）を抽出して消去する。ユーザＩＤ（Ｂ）の消去によって、クライアント装置１ＢがチャットルームＲＡから退室した状態となる。そして、マッチングサーバ３Ａは、退室完了情報を、チャットルームＲＡに関連付けて登録されている全てのクライアント装置１（退室要求を行ったクライアント装置１Ｂを含む）に対して送信する。
【０１１８】
チャットルームＲＡから全てのクライアント装置１が退室すると（チャットルームＲＡに関連付けて登録されたユーザＩＤが全て消去されると）、マッチングサーバ３Ａは、チャットルームＲＡに関する全ての情報（ルームキーＲＫａとこれに関連付けて記憶された全てのデータ）を、ルーム情報登録テーブルから消去する。関連する全ての情報の消去によって、チャットルームＲＫａが消去された状態となる。
【０１１９】
クライアント装置１Ｂにおける退室要求処理は、自己に対する退室完了情報をマッチングサーバ３Ａから受信することによって終了する。
【０１２０】
以上説明したように、マッチングサーバ３は、開設中のチャットルームから全てのクライアント装置１が退室したときに当該チャットルームを消去する。また、マッチングサーバ３は、既に消去したチャットルームに対してクライアント装置１から入室要求を受けたときには、そのチャットルームを再度開設する。
【０１２１】
すなわち、各マッチングサーバ３には、１つ以上のクライアント装置１が入室しているアクティブなチャットルームのみが存在し、クライアント装置１が全く入室していないインアクティブなチャットルームは存在しないことになる。
【０１２２】
従って、インアクティブな状態のチャットルームの存在によってマッチングサーバ３の記憶部１５の残容量が圧迫されてしまうことがなく、記憶部１５に必要な記憶容量を最小限に抑えることができ、記憶部１５の効率的な利用が可能となる。
【０１２３】
クライアント装置１がチャットルームへの入室を要求した際にそのチャットルームが消去されている場合には、チャットルームが消去されていることがユーザに全く報知されないまま、クライアント装置１は、入室要求処理に続けて開設要求処理を実行し、マッチングサーバ３にチャットルームを開設して入室する。従って、チャットシステムＳＹＳを利用するユーザに対して、違和感を与えることがない。
【０１２４】
チャットルームから退室中の各クライアント装置１は、そのチャットルームが存在するマッチングサーバ３のサーバＩＤをサーバキーのハッシュ値として算出し、その算出に使用するサーバＩＤとハッシュ関数とは、各クライアント装置１の間で同一である。また、ハッシュ関数は、複数のマッチングサーバ３が偏り無く選択されるように設定され、マッチングサーバ３の増減に応じて適宜更新される。すなわち、チャットルームから全てのクライアント装置１が退室している間に、マッチングサーバ３が増設され、上記ハッシュ関数が更新され、算出されるサーバＩＤが変更されてしまう場合であっても、各クライアント装置１において算出されるサーバＩＤは、全て同じマッチングサーバ３に対応するように変更される。従って、マッチングサーバ３の増設後のサーバ負荷の分散を効率よく行うことができる。
【０１２５】
チャットの開始時（チャットルームへの入室時）には、ルーム選択画面１２０がモニタ装置１０に表示される。ルーム選択画面１２０には、選択可能なチャットルームを示すルーム対応画像１２１が配列表示され、各ルーム対応画像１２１は、各チャットルームに関連付けて記憶されたチャット履歴情報及びルーム属性情報のうち少なくとも一つの情報を含む。従って、ユーザは、入室可能な各チャットルームの内容を容易に把握して、所望のチャットルームに入室することができる。
【０１２６】
ユーザは、自己が参加可能なチャットルームをクライアント装置２０側で一元的に管理することができる。
【０１２７】
ユーザがチャットルームに入室してチャットを実行しているときには、そのチャットルームに対応したチャット画面１３０がモニタ装置１０に表示される。また、チャット画面１３０には、そのチャットルームに関連付けられたチャット履歴情報のうち最新の情報を含む少なくとも一部の情報と、ルーム属性情報のうち少なくともルーム名を含む一部の情報とが表示される。従って、チャットシステムＳＹＳのユーザは、サーバ装置が全てのチャット履歴情報を記憶して一元的に管理し、各クライアント装置がサーバ装置からチャット履歴情報の提供を受けて表示する場合とする場合と同様の感覚でチャットを行うことができる。
【０１２８】
チャット画面１３０は、ユーザからの指示に応じて表示状態と非表示状態とに切り替わり、チャット画面１３０が非表示状態で他の画面（例えばゲーム画面１４０）が表示されているときに、入室中のチャットルームに対する他のクライアント装置１の入室や退室が行われた場合や、他のクライアント装置１からのチャットデータが送信された場合等には、それらを報知するチャット情報報知画面１４１が他の画面（ゲーム画面１４０）上に重ねて表示される。従って、ゲームなどの他の処理を実行しならが、他のユーザとのチャットを容易に行うことができる。
【０１２９】
なお、上記実施形態では、マッチングサーバ３に存在しないチャットルームに対してクライアント装置１が入室を要求した場合、マッチングサーバ３は、クライアント装置１からチャットルームの開設要求を受けること開始条件としてチャットルームを開設するが、マッチングサーバ３に存在しないとの判定を開始条件としてチャットルームを開設してもよい。
【０１３０】
上述の各実施の形態の説明は本発明の一例である。このため、本発明は上述の各実施の形態に限定されることはなく、本発明に係る技術的思想を逸脱しない範囲であれば、上述の実施の形態以外であっても種々の変更が可能であることは勿論である。
【産業上の利用可能性】
【０１３１】
本発明は、メッセージデータによるチャットシステムに好適に用いることができる。
【符号の説明】
【０１３２】
１・・・クライアント装置、２・・・サーバ装置、１０・・・モニタ装置、１３・・・チャット実行部、１４・・・表示制御部、１５・・・記憶部、１６・・・チャット管理部、１７・・・記憶部、ＳＹＭ・・・チャットシステム
【図１】
2010224842.tif 000003
【図２】
2010224842.tif 000004
【図３】
2010224842.tif 000005
【図４】
2010224842.tif 000006
【図５】
2010224842.tif 000007
【図６】
2010224842.tif 000008
【図７】
2010224842.tif 000009
【図８】
2010224842.tif 000010
【図９】
2010224842.tif 000011
【図１０】
2010224842.tif 000012
【図１１】
2010224842.tif 000013
【図１２】
2010224842.tif 000014
【図１３】
2010224842.tif 000015