(57)【要約】【課題】アクセスされないチャットルームが開設されたままの状態を防止する。【解決手段】サーバ通信部４０９が、インターネット５００を介して通信端末からチャットルームの開設要求、参加要求および脱退要求のうちのいずれかを受信する毎に、削除時間設定部４２６は、当該要求受信時からチャットルームをメモリ４０６から削除すべき時までの期間を指す削除期間を、当該チャットルームの開設パラメータに従い算出することによって設定および更新する。ルーム削除部４２２は、チャットルームに参加している端末の数が変化しない期間が、この削除期間を超えたと検出したときに、当該チャットルームをメモリ４０６から削除する。【選択図】図９
2010140245.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末とネットワークを介して通信し、前記複数の端末同士のデータ通信に必要な情報を交換するためのチャットルームを開設する情報処理装置であって、
記憶部と、
前記複数の端末のうちのいずれかから送信された、前記チャットルームの名称と当該チャットルームを開設するための開設パラメータとを含むルーム開設要求を受信する開設要求受信部と、
前記開設要求受信部が受信した前記開設要求に従うデータを、前記記憶部に格納することにより、前記チャットルームを開設するルーム開設部と、
前記複数の端末のうちのいずれかから送信された、当該端末の識別情報を有する前記データ通信するために必要な所定情報を含む前記チャットルームへの当該端末の参加要求を受信する参加要求受信部と、
前記参加要求受信部が受信した前記参加要求に従い、前記記憶部の前記チャットルームに関連付けて当該参加要求の前記所定情報を格納することにより、前記端末のルームへの参加を受付けるルーム参加部と、
前記複数の通信端末のいずれかから送信された、当該端末の識別情報を含む前記チャットルームからの脱退要求を受信する脱退要求受信部と、
前記脱退要求受信部が受信した前記脱退要求に従い、前記記憶部の前記チャットルームに関連付けられた前記所定情報のうちから、当該脱退要求が示す前記端末の識別情報を有する所定情報を削除することにより、前記端末のルームからの脱退を受付けるルーム脱退部と、
前記開設要求、前記参加要求および前記脱退要求のうちのいずれかを受信する毎に、当該要求受信時から前記チャットルームを前記記憶部から削除すべき時までの期間を指す削除期間を、前記開設パラメータに従い算出する期間算出部と、
前記チャットルームに参加している前記端末の数が維持された期間が、前記削除期間を超過していることを検出したことに応じて、当該チャットルームを前記記憶部から削除するルーム削除部とを、備える情報処理装置。
【請求項２】
前記開設パラメータは、前記チャットルームを開設する目的を含む、請求項１に記載の情報処理装置。
【請求項３】
前記開設パラメータは、前記チャットルームに参加が許容される端末の最大台数を指す定員数を含む、請求項１または２に記載の情報処理装置。
【請求項４】
前記期間算出部は、
前記参加要求を受信する毎に、前記削除期間を、前記チャットルームに参加している前記端末の台数と、前記定員数との差分に従い算出する、請求項３に記載の情報処理装置。
【請求項５】
前記期間算出部は、
前記脱退要求を受信する毎に、前記削除期間を、前記チャットルームに参加している前記端末の台数に従い算出する、請求項３または４に記載の情報処理装置。
【請求項６】
複数の端末とネットワークを介して通信し、前記複数の端末同士のデータ通信に必要な情報を交換するためのチャットルームを開設する情報処理装置による情報処理方法であって、
前記情報処理装置は、記憶部と、通信部とを備え、
前記情報処理方法は、
前記複数の端末のうちのいずれかから送信された、前記チャットルームの名称と当該チャットルームを開設するための開設パラメータとを含むルーム開設要求を前記通信部により受信するステップと、
受信した前記開設要求に従うデータを、前記記憶部に格納することにより、前記チャットルームを開設するステップと、
前記複数の端末のうちのいずれかから送信された、当該端末の識別情報を有する前記データ通信するために必要な所定情報を含む前記チャットルームへの当該端末の参加要求を前記通信部により受信するステップと、
受信した前記参加要求に従い、前記記憶部の前記チャットルームに関連付けて当該参加要求の前記所定情報を格納することにより、前記端末のルームへの参加を受付けるステップと、
前記複数の通信端末のいずれかから送信された、当該端末の識別情報を含む前記チャットルームからの脱退要求を前記通信部により受信するステップと、
受信した前記脱退要求に従い、前記記憶部の前記チャットルームに関連付けられた前記所定情報のうちから、当該脱退要求が示す前記端末の識別情報を有する所定情報を削除することにより、前記端末のルームからの脱退を受付けるステップと、
前記開設要求、前記参加要求および前記脱退要求のうちのいずれかを受信する毎に、当該要求受信時から前記チャットルームを前記記憶部から削除すべき時までの期間を指す削除期間を、前記開設パラメータに従い算出するステップと、
前記チャットルームに参加している前記端末の数が維持された期間が、前記削除期間を超過していることを検出したことに応じて、当該チャットルームを前記記憶部から削除するステップとを、備える情報処理方法。
【請求項７】
請求項６に記載の情報処理方法をコンピュータに実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は情報処理装置に関し、特に、サーバ装置などの情報処理装置を介して得た情報に基づき通信端末同士が通信するネットワークに適用される情報処理装置に関する。
【背景技術】
【０００２】
従来、インターネットに接続可能な端末同士間のインターネットを利用したダイレクトのデータ／メッセージ交換の１種であるＰ２Ｐ（peer to peer）通信では、通信に参加するメンバ同士が予め電話や電子メールを用いて、または対面して、Ｐ２Ｐ通信を開始する時刻を決める。そして、予定時刻前に、ネットワークに、各メンバが通信端末をネットワークに接続しメンバのいずれかが、Ｐ２Ｐ通信開始を他のメンバに呼び掛ける。
【０００３】
Ｐ２Ｐ通信に従うメンバ同士のデータ通信の１例としてチャットがある。チャットでは、サーバに開設されたチャットルームにより関係付けされたメンバ同士が、サーバを介さずに直接にメッセージ交換などのデータ通信を行なう。
【０００４】
チャットのための構成は、たとえば、特許文献１−３に開示される。特許文献１−３では、チャットの勧誘や、チャットに必要なＩＰ（Internet Protocol）アドレスなどの予め取得すべき情報を、サーバを経由したメールシステムを利用して交換する構成が示される。
【０００５】
特許文献１では、新規にチャットルームを開設すると、予め登録されているユーザ情報から、チャットルームへの入室を促すユーザを選択し、選択されたユーザに対して、開設したチャットルームへの入室を促す。
【０００６】
特許文献２では、各ユーザは自己のパーソナルコンピュータのＩＰアドレスを添付した電子メールを、希望する通信先である他のユーザのパーソナルコンピュータ宛てに送信することで、Ｐ２Ｐ通信に必要な情報を交換する。
【０００７】
特許文献３では、チャットサーバに接続した携帯電話機は、チャットサーバを介して、チャットに接続していない他の携帯電話機に対して、チャットサーバへの接続を促すチャット勧誘メールを送信すると、チャット勧誘メールを受信した携帯電話機のユーザがチャットサーバへの接続を承諾したとき、当該携帯電話機はチャットサーバに接続される。
【０００８】
特許文献４では、携帯電話はサーバに対して、チャットしたい相手方の携帯電話番号を付与してチャット要求すると、サーバは、相手方の携帯電話にチャット依頼し、相手方は都合に応じて依頼に応答する。
【０００９】
特許文献５では、サーバで自動生成したチャットルームが必要でなくなった時（依頼者と落札者との間の契約完了をもって）、そのチャットルームを削除する構成が記載される。
【００１０】
特許文献６では、同じウェブページを見ているユーザ間の通信を促進するため、チャットルームを自動作成、削除する構成が記載される。
【特許文献１】特開２００４−１９９１３４号公報
【特許文献２】特開２００２−２７８９０３号公報
【特許文献３】特開２００３−９１４９４号公報
【特許文献４】特開２００２−１３２６９４号公報
【特許文献５】特開２００３−１２２９５９号公報
【特許文献６】特表２００５−５３０２３３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
Ｐ２Ｐ通信に従うチャットにおいて、サーバはチャットするメンバ同士を関連付けるために利用されるものであり、Ｐ２Ｐ通信開始後は、関連付けされたメンバ同士が当該サーバを介さずにＩＰアドレス等を用いて直接にメッセージ交換をする。したがって、サーバにおいてメンバ同士を関連付けするために開設されるルームは、全てのメンバがチャットルームをアクセスすることによってＰ２Ｐ通信に必要な情報（ＩＰアドレス等）を交換して、Ｐ２Ｐ通信が開始された後は不要となる。それゆえに、サーバの記憶領域を有効利用するという観点から、不要となったチャットルームは削除することが要求される。
【００１２】
特許文献１と３では、一方のメンバが開設されたチャットルームへの入室を勧誘するメールを他方のメンバに送信して、他方のメンバがメールを受信して勧誘にＯＫすれば（ルームに入室したら）、両者はＰ２Ｐ通信に必要な情報（ＩＰアドレス等）を交換することができる。ここで、情報交換後において一方のメンバは開設したチャットルームを削除するとした場合、少なくとも開設してから他方のメンバが勧誘にＯＫするまでの期間は、アクセスされない状態でチャットルームがサーバに残存し続ける。この期間は、他方のメンバが勧誘メールを受信できない状態にあれば長期化し、勧誘した一方のメンバも、例えば、端末のバッテリ切れなど長時間サーバにアクセスできない状況に陥ればさらに長期化する。
【００１３】
このチャットルームの削除処理に関し、特許文献５や特許文献６のように、サーバ側で不要と判断した時に、チャットルームを削除する構成とすることもできる。しかしながら、複数（３以上）端末のチャット通信を想定すると、ルームを開設してから、全ての端末が当該ルームに入室完了するまでに要する期間において、チャットルームはサーバに存在し続ける。ここで、全ての者が入室完了するのに要する期間は、入室すべき端末台数が多いほど長期化し、端末のバッテリ切れなどサーバにアクセス不可能な状態に陥った端末があればさらに長期化する。したがって、サーバ側の判断により削除するとしても、依然として、利用の可能性がないチャットルームが長期間、サーバに残ることになる。
【００１４】
このように、サーバにおいて長期間、使われることのない無駄なチャットルームが数多く残存すると、ルームを新たに開設するための記憶領域が小さくなり、チャットシステムの運用効率は低下する。
【００１５】
それゆえに、この発明の目的は、アクセスなど利用されないチャットルームが開設されたままの状態を防止する情報処理装置を提供することである。
【課題を解決するための手段】
【００１６】
この発明のある局面に従うと、複数の端末とネットワークを介して通信し、複数の端末同士のデータ通信に必要な情報を交換するためのチャットルームを開設する情報処理装置は、記憶部と、複数の端末のうちのいずれかから送信された、チャットルームの名称と当該チャットルームを開設するための開設パラメータとを含むルーム開設要求を受信する開設要求受信部と、開設要求受信部が受信した開設要求に従うデータを、記憶部に格納することにより、チャットルームを開設するルーム開設部と、複数の端末のうちのいずれかから送信された、当該端末の識別情報を有する前記データ通信するために必要な所定情報を含むチャットルームへの当該端末の参加要求を受信する参加要求受信部と、参加要求受信部が受信した参加要求に従い、記憶部の前記チャットルームに関連付けて当該参加要求の所定情報を格納することにより、端末のルームへの参加を受付けるルーム参加部と、複数の通信端末のいずれかから送信された、当該端末の識別情報を含む前記チャットルームからの脱退要求を受信する脱退要求受信部と、脱退要求受信部が受信した脱退要求に従い、記憶部のチャットルームに関連付けられた所定情報のうちから、当該脱退要求が示す端末の識別情報を有する所定情報を削除することにより、端末のルームからの脱退を受付けるルーム脱退部と、開設要求、参加要求および脱退要求のうちのいずれかを受信する毎に、当該要求受信時からチャットルームを記憶部から削除すべき時までの期間を指す削除期間を、開設パラメータに従い算出する期間算出部と、チャットルームに参加している端末の数が維持された期間が、削除期間を超過していることを検出したことに応じて、当該チャットルームを記憶部から削除するルーム削除部とを、備える。
【００１７】
好ましくは、開設パラメータは、チャットルームを開設する目的を含む。
好ましくは、開設パラメータは、チャットルームに参加が許容される端末の最大台数を指す定員数を含む。
【００１８】
好ましくは、期間算出部は、参加要求を受信する毎に、削除期間を、チャットルームに参加している端末の台数と、定員数との差分に従い算出する。
【００１９】
好ましくは、期間算出部は、脱退要求を受信する毎に、削除期間を、チャットルームに参加している端末の台数に従い算出する。
【００２０】
この発明の他の局面に従うと、複数の端末とネットワークを介して通信し、複数の端末同士のデータ通信に必要な情報を交換するためのチャットルームを開設する情報処理装置による情報処理方法は、複数の端末のうちのいずれかから送信された、チャットルームの名称と当該チャットルームを開設するための開設パラメータとを含むルーム開設要求を、情報処理装置の通信部により受信するステップと、受信した開設要求に従うデータを、情報処理装置の記憶部に格納することにより、チャットルームを開設するステップと、複数の端末のうちのいずれかから送信された、当該端末の識別情報を有するデータ通信するために必要な所定情報を含むチャットルームへの当該端末の参加要求を通信部により受信するステップと、受信した参加要求に従い、記憶部のチャットルームに関連付けて当該参加要求の所定情報を格納することにより、端末のルームへの参加を受付けるステップと、複数の通信端末のいずれかから送信された、当該端末の識別情報を含むチャットルームからの脱退要求を通信部により受信するステップと、受信した脱退要求に従い、記憶部のチャットルームに関連付けられた所定情報のうちから、当該脱退要求が示す端末の識別情報を有する所定情報を削除することにより、端末のルームからの脱退を受付けるステップと、開設要求、参加要求および脱退要求のうちのいずれかを受信する毎に、当該要求受信時からチャットルームを記憶部から削除すべき時までの期間を指す削除期間を、開設パラメータに従い算出するステップと、チャットルームに参加している端末の数が維持された期間が、削除期間を超過していることを検出したことに応じて、当該チャットルームを記憶部から削除するステップとを、備える。
【００２１】
この発明のさらに他の局面に従うと、上述の情報処理方法をコンピュータに実行させるための情報処理プログラムが提供される。
【発明の効果】
【００２２】
本発明によれば、開設要求、参加要求および脱退要求のうちのいずれかを受信する毎に、当該要求受信時からチャットルームを記憶部から削除すべき時までの期間を指す削除期間を、開設パラメータに従い算出することによって設定および更新し、チャットルームに参加している端末の数が変化しない期間が、この削除期間を超えたときに、当該チャットルームは記憶部から削除される。
【００２３】
したがって、削除期間を超えても何ら参加または脱退の要求が受信されない、すなわちアクセスがされないチャットルームが記憶部に開設されたままの状態を防止することができる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２５】
また、以下では、携帯電話１００を「通信端末」の代表例として説明を行う。ただし、通信端末は、パーソナルコンピュータや、カーナビゲーション装置（Satellite navigation system）や、ＰＮＤ（Personal Navigation Device）や、ＰＤＡ（Personal Data Assistance）などのような、他の情報通信機器であってもよい。
【００２６】
＜チャットルームに関する説明＞
本実施の形態では、‘チャット’とは、後述のインターネット５００またはキャリア網７００を介したオンラインサービスによりリアルタイムに通信端末同士がメッセージをやり取りするような通信を指す。たとえば、メールサーバは介さないＩＰアドレスを用いたＰ２Ｐ通信、またはメールサーバ経由の電子メール交換であってもよい。
【００２７】
また、チャットルーム（以下、単にルームと略す）は、一般的には、テーマ・話題毎にデータ交換するために開設されて端末によりアクセスされる。本実施の形態では、通信端末において生成されるルームＩＤ（identifier）であるルーム名毎に開設される。本実施の形態では、‘ルーム’とは、当該ルームのルーム名に対応して、チャットのためのデータ通信（データ交換）を要求するユーザの識別情報を、すなわちユーザの通信端末の識別情報を相互に関係付けるための情報を指す。この通信端末の識別情報は、各通信端末を一意に識別するための情報であって、本実施の形態では各通信端末に割当されたＩＰアドレスとしている。
【００２８】
したがって、本実施の形態では、‘ルームの開設’とは、ルームの生成に相当する。具体的には、所定記憶領域に新規にルーム名を格納するとともに、このルーム名に対応して（関連付けて）ルームの生成を要求したユーザの通信端末の識別情報を格納する動作に相当する。
【００２９】
また、‘ルームへの参加’とは、所定記憶領域に既に格納されたルーム名に対応してチャットを要求するユーザの通信端末の識別情報を格納するともに、当該ユーザに対して当該ルームに参加している、すなわち当該ルーム名に対応して格納されている他のユーザの通信端末の識別情報を配信する動作に相当する。
【００３０】
また、‘ルームからの脱退’とは、所定記憶領域に既に格納されたルーム名に対応して格納された通信端末の識別情報を削除するとともに、当該ルームに参加している端末宛てに、すなわち当該ルーム名に対応して格納されている識別情報が指す通信端末宛てに、削除された識別情報を配信する動作に相当する。
【００３１】
また、‘ルームの削除’とは、削除するべきルームのルーム名および対応する通信端末の識別情報を、所定記憶領域から削除するための動作を指す。
【００３２】
＜ネットワークシステム１の全体構成＞
図１を参照して、本実施の形態に係るネットワークシステム１は、携帯電話１００Ａ，１００Ｂおよび１００Ｃと、マッチングサーバ（第１のサーバ装置）４００と、メールサーバ（第２のサーバ装置）６００と、インターネット（第１のネットワーク）５００と、キャリア網（第２のネットワーク）７００とを含む。また、本実施の形態に係るネットワークシステム１は、車両２５０に搭載されるカーナビゲーション装置２００と、パーソナルコンピュータ（ＰＣ；Personal Computer）３００とを含む。
【００３３】
なお、説明の容易化のために、以下では、本実施の形態に係るネットワークシステム１が、第１の携帯電話１００Ａと、第２の携帯電話１００Ｂと、第３の携帯電話１００Ｃとを含む場合について説明する。また、携帯電話１００Ａ，１００Ｂ，１００Ｃの各々に共通の構成や機能を説明する際には、それらを携帯電話１００とも総称する。そして、携帯電話１００Ａ，１００Ｂ，１００Ｃ、カーナビゲーション装置２００、パーソナルコンピュータ３００の各々に共通の構成や機能を説明する際には、それらを通信端末とも総称する。
【００３４】
携帯電話１００は、キャリア網７００に接続可能に構成されている。カーナビゲーション装置２００は、インターネット５００に接続可能に構成されている。パーソナルコンピュータ３００は、ＬＡＮ（Local Area Network）３５０やＷＡＮ（Wide Area Network
）を介してインターネット５００に接続可能に構成されている。マッチングサーバ４００は、インターネット５００に接続可能に構成されている。メールサーバ６００は、インターネット５００およびキャリア網７００に接続可能に構成されている。
【００３５】
より詳細には、第１の携帯電話１００Ａと、第２の携帯電話１００Ｂと、第３の携帯電話１００Ｃと、カーナビゲーション装置２００と、パーソナルコンピュータ３００とは、キャリア網７００やメールサーバ６００やインターネット５００を介して互いに接続可能であって、互いにデータの送受信が可能である。また、携帯電話１００とカーナビゲーション装置２００とパーソナルコンピュータ３００には、自端末を特定するための識別情報（たとえば、メールアドレスやＩＰ（Internet Protocol）アドレスなど）が割当てられる。すなわち、携帯電話１００とカーナビゲーション装置２００とパーソナルコンピュータ３００は、内部の記録媒体に他の通信端末の識別情報を記憶することができ、当該識別情報に基づいてキャリア網７００やインターネット５００などを介して当該他の通信端末とデータ送受信を行うことができる。
【００３６】
なお、本実施の形態に係る携帯電話１００とカーナビゲーション装置２００とパーソナルコンピュータ３００とは、割当てられるＩＰアドレスを利用して、メールサーバ６００を介さずに他の通信端末とデータ送受信を行うものである。ここでは、各通信端末がマッチングサーバ４００にアクセスする際には、すなわち各通信端末がインターネットにアクセスした際に、マッチングサーバ４００あるいは他の図示しないサーバ装置などによってＩＰアドレスが割当てられるものとする。ＩＰアドレスの割当て処理の詳細は公知であるので、ここでは説明を繰り返さない。
【００３７】
また、本実施の形態に係る携帯電話１００、カーナビゲーション装置２００、パーソナルコンピュータ３００は、自身に割当てられたＩＰアドレスを利用することにより、直接的に相互にネットワークを介してデータ送受信を行うことが可能である。すなわち、本実施の形態に係るネットワークシステム１に含まれる携帯電話１００、カーナビゲーション装置２００、パーソナルコンピュータ３００は、いわゆるＰ２Ｐ通信のネットワークを構成することが可能である。
【００３８】
＜携帯電話１００のハードウェア構成＞
本実施の形態に係る携帯電話１００のハードウェア構成について説明する。図２は、本施の形態に係る携帯電話１００の概観を示す図である。図３は、本施の形態に係る携帯電話１００のハードウェア構成を示す図である。
【００３９】
図２および図３に示すように、本実施の形態に係る携帯電話１００は、外部のネットワークとの間でデータを送受信する他の通信部１０１と、通話のためのＴＥＬ（Telephone）用通信部１０２と、プログラムや各種データベースを記憶する記憶部１０３と、ＣＰＵ（Central Processing Unit）１０６Ａを備えた制御部１０６と、ディスプレイ１０７と、外部から音声を入力するためのマイク１０８と、音声を外部に出力するためのスピーカ１０９と、各種情報の入力を受付ける入力部１１０と、電話および電子メールの着信をベルによる音や振動（バイブレーション）で報知するための第１の報知部１１１と、電話および電子メールの着信を光源（たとえば、ＬＥＤ（Light Emitting Diode））の発光で報知するための第２の報知部１１２とを含む。
【００４０】
本実施の形態に係るディスプレイ１０７は、液晶パネルやＣＲＴ（Cathode Ray Tube）から構成されるタッチパネルである。すなわち、本実施の形態に係る携帯電話１００は、ディスプレイ１０７の下側（裏側）にタブレット１１９が敷設されている。ユーザはスタイラスペン１２０を用いてディスプレイ１０７上に文字・記号・図形などを描画すると、描画による軌跡を示す座標データがタブレット１１９を介して検出されて制御部１０６に与えられる。これにより、スタイラスペン１２０を操作して手書き入力した文字・記号・図形の情報を制御部１０６に入力することができる。ディスプレイ１０７は、制御部１０６が出力した情報に基づいて、手書き入力された画像やテキストを表示する。
【００４１】
入力部１１０は、スイッチ・キー・ボタンなどを備え、ユーザがスイッチ・キー・ボタンを操作することによって入力した情報を受付ける。たとえば、入力部１１０は、通話を受付けたり、通話を発したりするために操作されるＴＥＬボタン１１０Ａと、メールを受付けたり、メールを発したりするために操作されるメールボタン１１０Ｂと、Ｐ２Ｐ通信を受付けたり、Ｐ２Ｐ通信を発したりするために操作されるＰ２Ｐボタン１１０Ｃと、アドレス帳データを参照するために操作されるアドレス帳ボタン１１０Ｄと、各種の処理を終了させるために操作される終了ボタン１１０Ｅとを含む。
【００４２】
第１の報知部１１１は、スピーカ１０９などを介して着信音（たとえばベル音）を出力する。あるいは、第１の報知部１１１は、バイブレーション機能を有する。第１の報知部１１１は、着呼に応じて、またはメール受信に応じて、音声を出力したり、携帯電話１００を振動させたりする。
【００４３】
第２の報知部１１２は、着呼に応じて点滅するＴＥＬ用ＬＥＤ１１２Ａと、メールを受信したときに点滅するメール用ＬＥＤ１１２Ｂと、Ｐ２Ｐ通信に従う信号を受信したときに点滅するＰ２Ｐ用ＬＥＤ１１２Ｃを含む。
【００４４】
制御部１０６は、ＣＰＵ１０６Ａを含むマイクロコンピュータによって実現され、携帯電話１００の各部を制御する。たとえば、入力部１１０を介してユーザから各種の命令を受付けて、他の通信部１０１やＴＥＬ用通信部１０２やネットワークを介して外部の通信端末とデータの送受信を行う。
【００４５】
他の通信部１０１およびＴＥＬ用通信部１０２は、無線通信機能を有し無線通信を行なう。具体的には、制御部１０６からの通信データを通信信号に変換し、その通信信号を図示しないアンテナを介して発信する。他の通信部１０１およびＴＥＬ用通信部１０２は、アンテナを介して受信した通信信号を通信データに変換し、その通信データを制御部１０６に入力する。
【００４６】
記憶部１０３は、作業用メモリとして機能するＲＡＭ（Random Access Memory）や、制御プログラム・データなどを格納するＲＯＭ（Read Only Memory）や、画像データなどを記憶するハードディスクなどによって実現される。図４、図５および図６は、図３の記憶部１０３に格納されるアドレス帳データ、自端末データおよびルームデータベースRMDBを示す図である。
【００４７】
図３に示すように、記憶部１０３の記憶領域１０３Ａには、ルームデータベースRMDBが格納される。図６を参照してルームデータベースRMDBには、当該携帯電話１００が開設または参加するルームのそれぞれに対応して、ルーム名のデータRNと、当該ルームに参加している他の携帯電話１００のＩＰアドレスを指すデータIPAが格納される。
【００４８】
図３の記憶部１０３は、さらに、アドレス帳データAdrDB[]が格納される記憶領域１０３Ｂ、携帯電話１００（自端末）に関するデータを指す自端末データMyAdrが格納される記憶領域１０３Ｃ、生成したルーム名のデータTNMを一時的に格納する記憶領域１０３Ｄ、自端末に割当てられたＩＰアドレスデータMY_IPADRを格納する記憶領域１０３Ｅ、およびマッチングサーバ４００のアドレスデータSEV_ADRを格納する記憶領域１０３Ｆ含む。
【００４９】
上述したデータが格納される記憶部１０３の領域は、携帯電話１００の電源がＯＦＦされても記憶内容が消去しないメモリ、たとえばフラッシュメモリからなる。
【００５０】
図４を参照して、記憶領域１０３Ｂのアドレス帳データAdrDB[]には、宛先（他の通信端末）毎に個別にデータを格納する。具体的には、各通信端末毎に割当された記憶領域には、当該記憶領域を指示するメモリＮｏのデータ１０３１、宛先の名前のデータ１０３２、通話において相手端末を一意に識別するための電話番号のデータ１０３３、およびデータ通信において相手端末を一意に識別するためのメールアドレスを指すデータ１０３４が対応付けて格納される。
【００５１】
図５を参照して、記憶領域１０３Ｃの自端末データMyAdrは、自端末のユーザの名前、自端末を一意に識別するための電話番号およびメールアドレスを指すデータ１０３５、１０３６および１０３７を含む。
【００５２】
＜携帯電話１００の機能構成＞
図７を参照して、本実施の形態に係る携帯電話１００のＣＰＵ１０６Ａは、端末通信部１０６１、フレーム解析部１０６２、フレーム生成部１０６３、入力受付部１０６４、報知処理部１０６５、通話機能に対応する通話処理部１０６６、メール処理部１０６７、Ｐ２Ｐ処理部１０６８、通知処理部１０６９、データ更新部１０７０およびルームアクセス部１０７１を備える。これらの各部の機能は予めプログラム・データとして記憶部１０３の所定記憶領域に格納されており、ＣＰＵ１０６Ａがこれらプログラム・データを記憶部１０３から読出し、実行することにより、各部の機能が実現される。
【００５３】
図７においては、ＣＰＵ１０６Ａが有する各機能とデータ・情報を入出力する周辺回路部のみが示される。
【００５４】
端末通信部１０６１は、電話による通信を制御するためのＴＥＬ用通信部１０２、ならびにサーバとの通信を制御するサーバ通信部１０８１およびＩＰアドレスを用いたＰ２Ｐ通信を制御するためのＰ２Ｐ通信部１０８２を含む。サーバ通信部１０８１およびＰ２Ｐ通信部１０８２はデータ通信部１０１の機能に相当する。
【００５５】
フレーム解析部１０６２は、端末通信部１０６１によって受信されたフレームを入力し、入力したフレームのデータを解析し、解析結果を出力する。フレーム生成部１０６３は、端末通信部１０６１を介して外部ネットワークに送信するべきフレームを生成する。入力受付部１０６４は、タブレット１１９および入力部１１０から入力されたデータを受付ける。報知処理部１０６５は、第１および第２の報知部１１１および１１２の出力動作を制御する。
【００５６】
メール処理部１０６７は、インターネット５００などの通信網を経由する電子メールの通信を処理する。Ｐ２Ｐ処理部１０６８は、Ｐ２Ｐ通信に対応する処理を実行する。通知処理部１０６９は、端末通信部１０６１が外部から受信した通知を入力して、解析し、結果を出力する。データ更新部１０７０は、端末通信部１０６１が外部から受信した通知に従い、記憶部１０３のルームデータベースRMDBのデータを更新する。
【００５７】
ルームアクセス部１０７１は、Ｐ２Ｐ通信に従うチャット通信のためにマッチングサーバ４００に格納されるルームのアクセスを制御する。ルーム名生成部１０７２は、Ｐ２Ｐ通信に従うチャット通信を開始するために、マッチングサーバ４００に開設されるべきルームの名称を所定手順に従い生成する。所定手順は、ルームを一意に識別することのできるルーム名を生成できるものであればよい。ルーム検索要求部１０７３は、ルーム名に基づきルームの検索をマッチングサーバ４００に対して要求する。ルーム開設要求部１０７４は、ルーム名に基づきルームの開設をマッチングサーバ４００に対して要求する。ルーム参加要求部１０７５は、ルーム名に基づきルームへの参加をマッチングサーバ４００に対して要求する。ルーム脱退要求部１０７６はルーム名に基づきルームからの脱退をマッチングサーバ４００に対して要求する。
【００５８】
＜マッチングサーバ４００のハードウェア構成＞
次に、本実施の形態に係るマッチングサーバ４００のハードウェア構成について説明する。なお、メールサーバ６００のハードウェア構成は、マッチングサーバ４００のそれと同様であるので説明は略す。
【００５９】
図８は、本実施の形態に係るマッチングサーバ４００のハードウェア構成を示すブロック図である。図８に示すように、本実施の形態に係るマッチングサーバ４００は、相互に内部バス４０８で接続されたＣＰＵ４０５と、メモリ４０６と、固定ディスク４０７と、サーバ通信部４０９と、現在時刻を計時して時間データを出力する計時部４１０含む。
【００６０】
メモリ４０６は、各種の情報を記憶するものであって、たとえば、ＣＰＵ４０５でのプログラムの実行に必要なデータを一時的に記憶する。固定ディスク４０７は、ＣＰＵ１０５が実行するプログラムやデータベースを記憶する。ＣＰＵ４０５は、マッチングサーバ４００およびメールサーバ６００の各要素を制御するものであって、各種の演算を実施する装置である。
【００６１】
サーバ通信部４０９は、ＣＰＵ４０５が出力したデータを電気信号へと変換して外部へ送信し、外部から受信した電気信号をデータに変換してＣＰＵ４０５に入力する。具体的には、サーバ通信部４０９は、ＣＰＵ４０５からのデータを、インターネット５００やキャリア網７００などを介して携帯電話１００やカーナビゲーション装置２００やパーソナルコンピュータ３００に送信する。そして、インターネット５００やキャリア網７００を介して携帯電話１００やカーナビゲーション装置２００やパーソナルコンピュータ３００から受信したデータを、ＣＰＵ４０５に入力する。
【００６２】
＜マッチングサーバ４００の機能構成＞
図９を参照して、マッチングサーバ４００は、ルーム開設部４２０、ルームへの参加、ルームの検索およびルームからの脱退の要求を受付けて処理する参加受付部４２１Ａ、検索受付部４２１Ｂおよび脱退受付部４２１Ｃを有するルーム受付部４２１、ルーム削除部４２２、フレーム生成部４２３、フレーム解析部４２４、イベント通知部４２５およびルーム毎に当該ルームを削除するべき時間（時刻）を設定する削除時間設定部４２６を含む。これらの各部は、固定ディスク４０７またはメモリ４０６の所定の記憶領域に予めプログラム・データとして格納されており、ＣＰＵ４０５が所定記憶領域からプログラム・データを読出し、実行することにより、各部の機能が実現される。
【００６３】
メモリ４０６には、後述するルーム管理テーブルRMTBL[]、知人用テーブルATBL0およびコミュニティ用テーブルATBL1、ならびにマッチングサーバアドレスのデータMSADが格納される。
【００６４】
ルーム開設部４２０は、メモリ４０６のルーム管理テーブルRMTBL[]に、新たに開設するべきルームに対応するデータを格納することにより、ルームを開設する。ルーム削除部４２２は、要求されたルームをルーム管理テーブルRMTBL[]から削除する。フレーム生成部４２３は、サーバ通信部４０９を介してインターネット５００に送信するべきデータのフレームを生成し、生成したフレームをサーバ通信部４０９に出力する。フレーム解析部４２４は、サーバ通信部４０９がインターネット５００を介して受信したフレームのデータを解析し、解析結果を出力する。
【００６５】
イベント通知部４２５は、参加通知部４２５Ａおよび脱退通知部４２５Ｂを含む。参加通知部４２５Ａは、ルーム管理テーブルRMTBL[]のルームへの参加が検出されたとき、当該ルームに既に参加している他の携帯電話１００宛てに、参加の検出を通知する。脱退通知部４２５Ｂは、ルーム管理テーブルRMTBL[]のルームかからの脱退が検出されたとき、当該ルームに既に参加している他の携帯電話１００宛てに、脱退の検出を通知する。
【００６６】
削除時間設定部４２６は、ルームの開設またはルームへの参加またはルームからの脱退が検出される毎に、当該ルームを削除するべき時間を、知人用テーブルATBL0またはコミュニティ用テーブルATBL1のデータに従い決定する。
【００６７】
＜テーブルの構成＞
図１０を参照して、ルーム管理テーブルRMTBL[]の構成について説明する。ルーム管理テーブルRMTBL[]は、MAX個のルームのデータを格納可能な容量を有し、各ルームに対応してデータRMTBL[i]（ｉは０、１、２、…、（MAX−１）の値）を格納する。
【００６８】
データRMTBL[i]は、当該データが無効または当該ルームが削除済みの場合は値０を示し、当該ルームが削除されておらずデータが有効な場合には値１を示すデータRMTBL[i].FLAG、当該ルームのルーム名（ルームＩＤ（Identification））を示すデータRMTBL[i].RMNM、当該ルームの開設理由、または開設の目的を示すデータRMTBL[i].APL、当該ルームに参加が許容される端末の最大台数を指す定員数（たとえば、１０）を示すデータRMTBL[i].NUM、当該ルームに参加している端末の数を示すデータRMTBL[i].ECNT、当該ルームを削除するべき時間を示すデータRMTBL[i].DELTM、ならびに当該ルームに参加している端末のＩＰアドレスおよびメールアドレスのデータRMTBL[i].IPA[j]およびRMTBL[i].MA[j]（ただしｊ＝０、１、２、…、９）を含む。
【００６９】
データRMTBL[i].FLAGが‘０’を指す場合、当該データRMTBL[i]の領域は１種の空領域を指し、新たなルームのデータを格納することが可能である。
【００７０】
データRMTBL[i].APLの値が“０”を指示する場合、当該ルームは知人への呼びかけのために開設されて、主に知人同士のチャットのために用いられる。値“１”を示す場合には、当該ルームは、不特定多数の者がチャットで集うことによりコミュニティを形成するために用いられる。
【００７１】
上述の削除日時生成用テーブルATBL0は、データRMTBL[i].APLの値が“０”（知人用）を指示するルームを削除するべき時間を設定するために、ルームの開設またはルームへの参加の検出時に、参照される。図１１を参照して、削除日時生成用テーブルATBL0は、ルームの開設またはルームへの参加の検出時点において当該ルームにまだ参加していない端末の台数（＝データRMTBL[i].NUM−現在参加している端末台数）を示すデータA0と、データA0のそれぞれに対応して当該ルームを削除するまでの猶予時間のデータB0を格納する。
【００７２】
たとえば、ルームへの未参加端末台数が１台（A0＝１）であった場合には、未参加端末数が１台である状態が５分間（B0＝５）経過した時点で、当該ルームは削除される。同様に、ルームへの未参加端末台数が２〜５台（A0＝２〜５）のいずれかの値であった場合には、未参加端末台数が増減しない状態が維持されて１０分間（B0＝１０）経過すると、当該ルームは削除される。同様に、ルームへの未参加端末台数が６台以上（A0＝６以上）であった場合には、未参加端末台数が増減しない状態が維持されて所定の最大時間TMAX（たとえば３０分）を経過した時点で当該ルームは削除される。
【００７３】
上述の削除日時生成用テーブルATBL1は、データRMTBL[i].APLの値が“１”（コミュニティ用）を指示するルームを削除するべき時間を設定するために、ルームからの退出の検出時に、参照される。図１２を参照して、削除日時生成用テーブルATBL1は、ルームからの脱退を検出した時点において脱退後に当該ルームに現在参加している端末の台数を示すデータA1と、データA1のそれぞれに対応して当該ルームを削除するまでの猶予時間のデータB1を格納する。
【００７４】
たとえば、ルームに参加している端末台数が１台（A1＝１）であった場合には、参加端末数が１台である状態が１分間（B1＝１）経過した時点で、当該ルームは削除される。同様に、ルームに参加している端末台数が２〜５台（A1＝２〜５）のいずれかの値であった場合には、参加端末台数が増減しない状態が維持されて１０分間（B1＝１０）経過すると、当該ルームは削除される。同様に、ルームに参加している端末台数が６台以上（A1＝６以上）であった場合には、参加端末台数が増減しない状態が維持されて所定の最大時間TMAX（たとえば３０分）を経過した時点で当該ルームは削除される。
【００７５】
＜Ｐ２Ｐ通信の概要＞
図１３は、ネットワークシステム１における通信手順を模式的に示す図である。本実施の形態に係る各通信端末は、Ｐ２Ｐ通信を行うために、はじめに互いのＩＰアドレスを交換（取得）する必要がある。そして、各通信端末は、ＩＰアドレスを取得した後に、Ｐ２Ｐ通信によってメッセージや添付ファイルなどを他の通信端末に送信する。ここでは、携帯電話１００には、予めＩＰアドレスが割当てられていると想定する。
【００７６】
まず、携帯電話１００Ａ（図１３において端末Ａ）は、Ｐ２Ｐ通信を開始するために、たとえば定員数が３の知人用チャットのためのルーム‘Ｒ’の開設要求をマッチングサーバ４００宛てに送信する（ステップＳ００２）。
【００７７】
マッチングサーバ４００では、ルーム‘Ｒ’をルーム管理テーブルRMTBL[]に開設する。ルーム‘Ｒ’のデータRMTBL[i].FLAGは１に更新される。そして、データRMTBL[i].IPA[j]として、携帯電話１００ＡのＩＰアドレス‘Ａ’が設定される。この開設に応じて、削除時間設定部４２６によって、知人用テーブルATBL0を参照して、当該ルームを削除するべき時間のデータRMTBL[i].DELTMが設定される（ステップＳ００３）。
【００７８】
次に、携帯電話１００Ｃはマッチングサーバ４００に開設されているルームを検索することにより、ルーム‘Ｒ’を検出すると、ルーム‘Ｒ’への参加要求を、マッチングサーバ４００宛てに送信する（ステップＳ００８）。また、データRMTBL[i].IPA[j+1]が指す携帯電話１００ＣのＩＰアドレスがルーム管理テーブルRMTBL[]に格納される。この参加の検出に応じて、削除時間設定部４２６によって、知人用テーブルATBL0を参照して、当該ルームを削除するべき時間のデータRMTBL[i].DELTMが更新される（ステップＳ００９）。
【００７９】
マッチングサーバ４００は、ルーム参加要求を受信すると、マッチング処理を開始する。
【００８０】
マッチング処理においては、ルーム‘Ｒ’のデータRMTBL[i]のデータRMTBL[i].IPA[j]が指す携帯電話１００ＡのＩＰアドレスが携帯電話１００Ｃ宛てに送信されて、データRMTBL[i].IPA[j+1]が指す携帯電話１００ＣのＩＰアドレスが携帯電話１００Ａ宛てに送信される（ステップＳ０１０）。
【００８１】
その後、当該ルームへの参加台数が変化しない状態が継続して、その結果、計時部４１０が指す現在時刻データがデータRMTBL[i].DELTMの時間データに一致することが検出されると、ルーム削除部４２２により、当該ルームのデータRMTBL[i].FLAGは０に更新される（ステップＳ０１１）。これにより、当該ルームは削除される。
【００８２】
マッチング処理によって、ルーム名‘Ｒ’のルームに参加した携帯電話１００Ａおよび１００Ｃのユーザは、お互いのＩＰアドレスを交換することができる。以降、両者は、交換により取得したＩＰアドレスを用いてＰ２Ｐ通信を行うことができる。
【００８３】
まず、携帯電話１００Ａは、取得したＩＰアドレス‘Ｃ’に基づいて携帯電話１００ＣにＰ２Ｐ接続要求メッセージ（開始メッセージ）を送信する（ステップＳ０１２）。携帯電話１００Ｃは、接続要求メッセージを受信して、携帯電話１００ＡのＩＰアドレ‘Ａ’に基づいて携帯電話１００Ａに第１の接続承諾メッセージ（返答メッセージ）を送信する（ステップＳ０１４）。携帯電話１００Ａは、携帯電話１００Ｃから第１の接続承諾メッセージを受信して、第２の携帯電話１００Ｃに第２の接続承諾メッセージを送信する（ステップＳ０１６）。
【００８４】
このようにして、携帯電話１００Ａと携帯電話１００Ｃとは、互いに相手を認証する。認証が完了すると、携帯電話１００Ａと携帯電話１００Ｃとは、Ｐ２Ｐ通信を開始する（ステップＳ０１８）。そして携帯電話１００Ａと１００Ｃの間では、Ｐ２Ｐ通信に従うメッセージなどのデータ通信が行なわれる。
【００８５】
その後、携帯電話１００Ａが、携帯電話１００ＣにＰ２Ｐ通信を切断する旨のメッセージを送信すると（ステップＳ０３０）、携帯電話１００Ｃは、携帯電話１００Ａに切断する要求を受付けた旨のメッセージを送信する（ステップＳ０３２）。
【００８６】
＜通信フレームの構成＞
図１４にはフレームの基本的構成が示される。図１５〜図２２には、携帯電話１００とマッチングサーバ４００の間で送受信されるフレームの構成が示され、図２３と図２４には、ルームへの参加またはルームからの脱退というイベントを検出した場合に、当該イベント発生を通知するために、マッチングサーバ４００から当該ルームに参加している携帯電話１００宛てに送信されるフレームの構成が示される。
【００８７】
図１４を参照してフレームは、基本的に、ヘッダ部６１０とデータ部６２０を含む。ヘッダ部６１０には、当該フレームの種別（タイプ）を指示するデータ６１１、当該フレームの宛先‘ＤＤ’を示すデータ６１２および当該フレームの送信元‘ＳＤ’を示すデータ６１３が格納される。データ部６２０は、送信すべきデータを格納する。
【００８８】
データ６１１が示すタイプは、本実施の形態では、要求フレームであることを示す“１”と、要求の受付フレームであることを示す“０”と、通知フレームであることを示す“２”のいずれかの値となる。また、本実施の形態ではフレームは、携帯電話１００とマッチングサーバ４００との間で送受信されるため、データ６１２および６１３としては、携帯電話１００の記憶部１０３から読出されたメールアドレスのデータ１０３７、およびマッチングサーバアドレスのデータMSADまたは記憶領域１０３ＦのアドレスデータSEV_ADRが格納される。
【００８９】
携帯電話１００のルーム検索要求部１０７３が、ルーム管理テーブルRMTBL[]のルームの検索を要求する場合には、フレーム生成部１０６３が図１５のルーム検索要求のフレーム５９９を生成する。生成したフレームはサーバ通信部１０８１によってマッチングサーバ４００宛てに送信される。
【００９０】
フレーム５９９は、データ６１１が“１”を指示し、データ６１２および６１３として、記憶部１０３から読出されたマッチングサーバ４００のアドレスデータSEV_ADRとメールアドレスのデータ１０３７がそれぞれ格納される。また、データ部６２０には、検索の命令コード（‘RM_SEARCH’）６２１と、ルーム名のデータ６２２と、ＩＰアドレスのデータ６２３とが格納される。データ６２２として、検索すべきルームのルーム名のデータが格納される。データ６２３として、送信元の携帯電話１００に予め割当てられたＩＰアドレスのデータMY_IPADRが、記憶部１０３から読出されて格納される。
【００９１】
マッチングサーバ４００は、ルーム検索要求のフレーム５９９を受信した場合に、フレーム生成部４２３は、図１６のルーム検索受付のフレーム６００を生成し、要求元の携帯電話１００宛てに送信する。フレーム６００は、ヘッダ部６１０においてデータ６１１は“０”を示し、データ６１２として受信したフレーム５９９のデータ６１３が格納される。また、データ６１３として、記憶部４０６から読出したマッチングサーバアドレスのデータMSADが格納される。データ部６２０には、命令コード６２１として空データが格納される。また、受信したルーム検索要求のフレーム５９９のデータ６２２が格納される。また、ルーム検索要求に基づき検索受付部４２１Ｂがルーム管理テーブルRMTBL[]を検索した結果のデータ６２６が格納される。データ６２６は、検索が要求されたルームが、すなわちデータ６２２が指すルーム名のデータRMTBL[i].RMNMがルーム管理テーブルRMTBL[]に格納されていた場合には‘０’（＝‘OK’）を指示し、格納されていなかった場合には‘−１’（＝‘ERROR’）を指示する。
【００９２】
携帯電話１００が、ルーム開設を要求する場合には、フレーム生成部１０６３が図１７のルーム開設要求のフレーム６０１を生成する。生成したフレーム６０１は、サーバ通信部１０８１によってマッチングサーバ４００に宛てて送信される。
【００９３】
フレーム６０１は、データ６１１が“１”を指示し、データ６１２および６１３として、記憶部１０３から読出されたマッチングサーバ４００のアドレスデータSEV_ADRとメールアドレスのデータ１０３７がそれぞれ格納される。また、データ部６２０には、開設の命令コード（‘RM_CREATE’）６２１と、ルーム名のデータ６２２と、ＩＰアドレスのデータ６２３と、さらにルーム開設の条件を示すパラメータとしてルーム開設目的のデータ６２７と、当該ルームの定員数のデータ６２８とが格納される。データ６２２として、ルーム名生成部１０７２によって生成されたルーム名のデータが格納される。データ６２３として、送信元の携帯電話１００に予め割当てられたＩＰアドレスのデータMY_IPADRが、記憶部１０３から読出されて格納される。データ６２７および６２８は、たとえば、記憶部１０３の所定領域に予め記憶したデータ、または入力受付部１０６４が外部から入力したデータを指す。
【００９４】
マッチングサーバ４００は、ルーム開設要求のフレーム６０１を受信した場合に、フレーム生成部４２３は、図１８のルーム開設受付のフレーム６０２を生成し、要求元の携帯電話１００宛てに送信する。フレーム６０２は、ヘッダ部６１０においてデータ６１１は“０”を示し、データ６１２として受信したフレーム６０１のデータ６１３が格納される。また、データ６１３として、メモリ４０６から読出したマッチングサーバアドレスのデータMSADが格納される。データ部６２０には、命令コード６２１として空データが格納される。また、受信したルーム開設要求フレーム６０１のデータ６２２が格納される。また、データ６２４として、ルーム開設要求に基づいたルーム開設部４２０によるルーム開設の結果のデータが格納される。データ６２４は、データ６２２が指すルーム名のルーム開設に成功した場合には‘０’（＝‘OK’）を指示し、開設できなかった場合には‘−１’（＝‘ERROR’）を指示する。開設できない場合とは、たとえば、既に、同一ルーム名のルームが開設されている場合、またはルーム管理テーブルRMTBL[]の空領域が無い場合などである。
【００９５】
携帯電話１００のルーム参加要求部１０７５が、ルームへの参加を要求する場合には、フレーム生成部１０６３が図１９のルーム参加要求のフレーム６０３を生成する。生成したフレーム６０３はサーバ通信部１０８１によってマッチングサーバ４００に宛てて送信される。
【００９６】
フレーム６０３は、データ６１１が“１”を指示し、データ６１２および６１３として、記憶部１０３から読出されたマッチングサーバ４００のアドレスデータSEV_ADRとメールアドレスのデータ１０３７がそれぞれ格納される。また、データ部６２０には、参加の命令コード（‘RM_ENTRY’）６２１と、ルーム名のデータ６２２と、ＩＰアドレスのデータ６２３とが格納される。データ６２２として、参加すべきルームのルーム名のデータが格納される。データ６２３として、送信元の携帯電話１００に予め割当てられたＩＰアドレスのデータMY_IPADRが、記憶部１０３から読出されて格納される。
【００９７】
携帯電話１００が図１９のルーム参加要求のフレーム６０３を送信した場合において、マッチングサーバ４００の参加受付部４２１Ａは当該フレーム６０３のデータ６２２が指示するルーム名に基づきルーム管理テーブルRMTBL[]を検索する。検索結果に基づき、図２０に示すルーム参加受付のフレーム６０４が生成されて、要求元の携帯電話１００に送信される。
【００９８】
具体的には、検索結果、データ６２２が指示するルーム名を有するルームが既に開設されていると判定した場合には、マッチング処理により、参加要求元の携帯電話１００と、指示されたルーム名のルームに既に参加していた携帯電話１００のそれぞれに宛てて図２０の参加受付フレーム６０４が生成されて送信される。
【００９９】
参加要求元の携帯電話１００宛のフレーム６０４は、データ部６２０において、ルーム参加要求のフレーム６０３のデータ６２２が格納される。また、当該ルーム参加要求が受付けられたことを示す“参加受付（値‘０’）”を示すデータ６２４と、当該ルームに既に参加している他のユーザの携帯電話１００のＩＰアドレスのデータRMTBL[i].IPA[j]が、ルーム管理テーブルRMTBL[]から読出されてデータ６２５として格納される。
【０１００】
既に当該ルームに参加していた携帯電話１００宛てのフレーム６０４は、ヘッダ部６１０のデータ６１１は“０”を指し、データ６１２はこの携帯電話１００のメールアドレスを指示し、データ６１３はマッチングサーバアドレスのデータMSADを指す。データ６１２のメールアドレスは、ルーム管理テーブルRMTBL[]を検索して読出した当該ルーム名を指示するデータRMTBL[i].RMNMに対応して格納されたメールアドレスのデータRMTBL[i].MA[j]を指す。データ部６２０には、ルーム参加要求のフレーム６０３のデータ６２２が格納される。また、当該ルーム参加要求が受付けられたことを示す“参加受付”（値‘０’）を示すデータ６２４と、当該ルームに参加要求をした他の携帯電話１００のＩＰアドレスを指すデータ６２５が格納される。
【０１０１】
なお、参加の受付けに成功しなかった場合には、すなわち検索結果に基づきルーム管理テーブルRMTBL[]において要求したルームが未開設であると検出した場合には、データ６２４には、参加を受付なったことを指す値‘−１’が設定されたフレーム６０４が要求元の携帯電話１００に送信される。
【０１０２】
携帯電話１００のルーム脱退要求部１０７６が、ルームからの脱退をマッチングサーバ４００に対して要求する場合には、フレーム生成部１０６３が図２１に示すルーム脱退要求のフレーム６０５をマッチングサーバ４００に宛てて送信する。フレーム６０５は、ヘッダ部６１０においてデータ６１１が“１”を指示し、データ６１２および６１３として、記憶部１０３から読出されたマッチングサーバ４００のアドレスデータSEV_ADRとメールアドレスのデータ１０３７がそれぞれ格納される。また、データ部６２０には、脱退の命令コード（‘RM_LEAVE’）６２１と、脱退するべきルームのルーム名のデータ６２２と、ＩＰアドレスのデータ６２３とが格納される。データ６２３として、ルーム脱退要求フレーム送信元の携帯電話１００に予め割当てられたＩＰアドレスのデータMY_IPADRが、記憶部１０３から読出されて格納される。
【０１０３】
マッチングサーバ４００は、ルーム脱退要求のフレーム６０５を受信した場合に、フレーム生成部４２３は、図２２のルーム脱退受付のフレーム６０６を生成し、要求元の携帯電話１００宛てに送信する。フレーム６０６は、ヘッダ部６１０においてデータ６１１は“０”を示し、データ６１２として受信したフレーム６０５のデータ６１３が格納される。また、データ６１３として、記憶部４０６から読出したマッチングサーバアドレスのデータMSADが格納される。データ部６２０には、命令コード６２１として空データが格納される。また、受信したルーム脱退要求のフレーム６０５のデータ６２２が格納される。また、データ６２４として、ルーム脱退要求に基づきルーム脱退受付部４２１Ｃが脱退処理した結果のデータ６２４が格納される。データ６２４は、データ６２２が指すルーム名のルームからの脱退に成功した場合には‘０’（＝‘OK’）を指示し、成功しなかった場合には‘−１’（＝‘ERROR’）を指示する。脱退処理とは、ルーム脱退受付部４２１Ｃが、ルーム脱退要求フレーム６０５のデータ６２２のルーム名を指すデータRMTBL[i].RMNMに対応のデータRMTBL[i].IPA[j]のうち、ルーム脱退要求フレーム６０５のデータ６２３のＩＰアドレスを指すデータを削除する処理をいう。このデータRMTBL[].IPA[j]の削除処理は、当該データRMTBL[i].IPA[j]の領域を新たなＩＰアドレスを格納可能な領域に更新する処理であればよい。たとえば、当該領域に空データ（NULLデータ）を書込むことにより削除するとしてもよい。
【０１０４】
図２３と図２４を参照して参加と脱退のイベント通知のフレームについて説明する。図２３および図２４の通知フレームのいずれも、ヘッダ部６１０においては、種別データ６１１は値“２”を指示し、データ６１２は、当該フレームの宛先アドレス、すなわち当該ルームに参加している携帯電話１００のメールアドレスを示す。このメールアドレスは、参加または脱退の対象ルームのデータRMTBL[i]のデータRMTBL[i].MA[j]を、ルーム管理テーブルRMTBL[]から読出して当該ヘッダ部６１０に格納することにより設定される。データ６１３は送信元アドレス、すなわちメモリ４０６から読出されたマッチングサーバアドレスのデータMSADが読出されて格納される。
【０１０５】
データ部６２０に関して、図２３の参加のイベント通知フレーム６０７では、命令コード６２１としてルームに新たな端末が参加したことを通知するためのコマンドMEM_APPENDが格納され、データ６２２には、端末の参加が検出されたルームのルーム名を指すデータRMTBL[i].RMNMが格納される。データ６２３には、当該ルームに新たに参加した端末のＩＰアドレスのデータRMTBL[i].IPA[j]が、ルーム管理テーブルRMTBL[]から読出されて格納される。
【０１０６】
データ部６２０に関して、図２４の脱退のイベント通知フレーム６０８では、命令コード６２１として脱退端末が発生したことを示すコマンドMEM_LEAVEが格納され、データ６２２には、端末の脱退が生じたルームのルーム名が、すなわちデータRMTBL[i].RMNMが、データ６２３には、脱退を要求した端末のＩＰアドレスのデータRMTBL[i].IPA[j]が、それぞれルーム管理テーブルRMTBL[]から読出されて格納される。
【０１０７】
＜マッチングサーバからの通知に応じた処理＞
携帯電話１００が、マッチングサーバ４００から図２３の参加通知フレーム６０７を受信した場合には、通知処理部１０６９は、参加通知フレーム６０７のデータ６２２に基づきルームデータベースRMDBを検索する。検索結果に基づき、データ６２２のルーム名を指すデータRNに対応するデータIPAに、参加通知フレーム６０７のデータ６２３が指すＩＰアドレスのデータを格納する。これにより、当該ルームに新たに参加したユーザのＩＰアドレスを取得できる。
【０１０８】
また、携帯電話１００が、マッチングサーバ４００から図２４の脱退通知フレーム６０８を受信した場合には、通知処理部１０６９は、脱退通知フレーム６０８のデータ６２２に基づきルームデータベースRMDBを検索する。検索結果に基づき、データ６２２のルーム名を指すデータRNに対応するデータIPAから、脱退通知フレーム６０８のデータ６２３が指すＩＰアドレスのデータを削除する。これにより、当該ルームから脱退したユーザのＩＰアドレスを破棄することができる。
【０１０９】
＜携帯電話の処理＞
図２５を参照して、本実施の形態に係る携帯電話１００におけるルームへのアクセスまたはＰ２Ｐ通信を開始する場合の処理手順について説明する。
【０１１０】
まず、入力受付部１０６４は、タブレット１１９または入力部１１０がユーザによって操作されて、何らかの指示が与えられるか否かを判定する（ステップＳ２０１）。何らの操作もされない間は、ステップＳ２０１の判定処理が繰返される。
【０１１１】
一方、何らかの操作がされて入力が検知されると（ステップＳ２０１でＹＥＳ）、入力受付部１０６４は、タブレット１１９または入力部１１０から与えられる信号に基づき、Ｐ２Ｐボタン１１０Ｃが操作されたか否かを判定する（ステップＳ２０３）。Ｐ２Ｐボタン１１０Ｃ以外の操作がされたと判定すると（ステップＳ２０３でＮＯ）、操作されたボタンの種類に応じた他の処理へ移行する。この他の処理については、説明を略す。
【０１１２】
一方、Ｐ２Ｐボタン１１０Ｃが操作されたと判定すると（ステップＳ２０３でＹＥＳ）、ＣＰＵ１０６Ａは、記憶部１０３の所定記憶領域から読出した画像データに基づき、ディスプレイ１０７に図２６（Ａ）〜（Ｃ）のメニュー画面を表示する（ステップＳ２０５）。
【０１１３】
図２６（Ａ）には、Ｐ２Ｐボタン１１０Ｃが操作された場合のメニュー画面の一例が示される。メニュー画面においては、Ｐ２Ｐ通信の開始およびルームアクセス（開設、参加、検索および脱退）のいずれかを要求するために指定されるアイコン１０７１が表示されるとともに、当該アイコンに示された要求を入力するために操作されるボタン１０７３が表示される。たとえば、ユーザが“ルーム開設”のアイコン１０７１を操作してボタン１０７３を操作すると、ディスプレイ１０７の画面は、図２６（Ｂ）の画面に切り替えられる。図２６（Ｂ）においては“ルーム開設”の要求のアイコン１０７１が選択された状態と、ルーム開設要求のために必要とされるデータの入力をするためのウインドウ１０７２が表示される。ウインドウ１０７２は、開設すべきルームのルーム名、ならびにルーム開設の条件を指すパラメータとしてルームの開設目的（０：知人用のルーム、１：コミュニティ用のルーム）、および当該ルームに参加可能な最大端末数（定員数）を入力するために表示される。
【０１１４】
なお、ルーム名の入力は、スタイラスペン１２０を操作してウインドウ１０７２から直接に所望のルーム名を入力してもよく、または、ルーム名生成のためのパラメータを入力するとしてもよい。パラメータが入力された場合には、ルーム名生成部１０７２は、入力したパラメータに基づき所定手順に従いルーム名を生成する。入力または生成されたルーム名は、記憶部１０３の記憶領域１０３ＤにデータTNMとして格納される。以降の、各種要求フレームの生成時には、当該データTMNが記憶領域１０３Ｄから読出されて用いられる、と想定する。
【０１１５】
図２６（Ｃ）には、図２６（Ａ）のメニュー画面において“ルーム参加”のアイコン１０７１が選択されて、“ルーム参加”の要求が入力された場合の表示画面の一例が示される。図２６（Ｃ）では、参加を希望するルームのルーム名を入力するためのウインドウ１０７２が表示される。このルーム名の入力時には、上述のルーム名の入力・生成の他に記憶部１０３のルームデータベースRMDBから読出したルーム名のデータRNがリスト形式で表示されて、そのリストから選択的に入力するとしてもよい。
【０１１６】
図２６のメニュー画面においてユーザが所望の項目を選択すると、図２５のステップＳ２０７において、入力受付部１０６４は、ユーザが選択した項目を検出する。検出の結果、“Ｐ２Ｐ通信”が選択された場合には、Ｐ２Ｐ処理部１０６８が起動される（ステップＳ２０９）。Ｐ２Ｐ処理部１０６８は、記憶部１０３から読出したＩＰアドレスMY_IPADRとルームデータベースRMDBから読出したユーザが指定するＩＰアドレスのデータIPAを用いてＰ２Ｐ通信部１０８２を介して、Ｐ２Ｐ通信が行なわれる。その後、処理は、終了する。
【０１１７】
“ルーム開設”が選択された場合にはルーム開設要求部１０７４により、ルーム開設要求処理（ステップＳ２１１）が行なわれる。“ルーム参加”が選択された場合にはルーム参加要求部１０７５により、ルーム参加要求処理（ステップＳ２１３）が行なわれる。“ルーム検索”が選択された場合にはルーム検索要求部１０７３によりルーム検索要求処理（ステップＳ２１５）が行なわれる。“ルーム脱退”が選択された場合には、ルーム脱退要求部１０７６により、ルーム脱退要求処理（ステップＳ２１７）が行なわれる。ステップＳ２１１、Ｓ２１３、Ｓ２１５およびＳ２１７の処理後、これら各処理において生成された要求フレームが、サーバ通信部１０８１を介してマッチングサーバ４００宛てに送信される（ステップＳ２１９）。
【０１１８】
マッチングサーバ４００においては、携帯電話１００からステップＳ２１９において送信された要求フレームを受信すると、受信した要求フレームのデータに従う処理を実行し、要求フレームを受付けたことを示す受付フレームを生成し、当該携帯電話１００宛に送信する。要求元の携帯電話１００のサーバ通信部１０８１は、マッチングサーバ４００から、この受付フレームを受信し、フレーム解析部１０６２はフレームのデータを解析し解析結果を、データ更新部１０７０に与えるとともに、通知処理部１０６５に与える。通知処理部１０６５は、与えられる解析結果に基づき、要求の受付結果を、第１の報知部１１１または第２の報知部１１２を制御して、ベルの鳴動、携帯電話１００自体の振動、またはＬＥＤの点灯制御によりユーザに対し報知する（ステップＳ２１３）。この報知は、ディスプレイ１０７において、画像として出力されてもよい。
【０１１９】
データ更新部１０７０は、与えられる解析結果に基づき、記憶部１０３のルームデータベースRMDBを検索し、ルームデータベースRMDBのデータを更新する。具体的には、ルーム開設要求の受付が成功したことを指すフレーム６０２を受信した場合には、フレーム６０２のデータ６２２が指すルーム名のデータRNをルームデータRMDBに格納する。
【０１２０】
ルーム参加要求を受付けた旨のフレーム６０４を受信した場合には、当該フレーム６０４から読出した他の参加端末のＩＰアドレスのデータ６２５を、ルームデータベースRMDBにおいて、当該フレーム６０４のデータ６２２が指すルーム名のデータRNに対応付けて、データIPAとして格納する。
【０１２１】
ルーム検索要求の受付が失敗したことを指すフレーム６００を受信した場合には、当該ルームは開設されていないと判定して、フレーム６００のデータ６２２が指すルーム名のデータRNをルームデータRMDBから削除するようにしてもよい。
【０１２２】
またルーム脱退要求に対する受付フレーム６０６を受信した場合には、脱退を要求したルームのデータRNとこれに対応のデータＩＰＡをルームデータベースRMDBから削除する。その後、処理は終了する。
【０１２３】
＜マッチングサーバの処理＞
図２７を参照して、マッチングサーバ４００において定期的に繰返されるメイン処理について説明する。
【０１２４】
まず、マッチングサーバ４００のサーバ通信部４０９は、インターネット５００から何らかのデータを受信するか否かを判定する（ステップＳ３）。データの受信が検出されないと、後述のルーム削除処理（ステップＳ２７）を開始する。
【０１２５】
一方、データの受信があった場合（ステップＳ３でＹＥＳ）、受信データは、フレーム解析部４２４に与えられる。フレーム解析部４２４は、与えられるデータ、すなわちフレームのデータを解析し、解析結果に基づき、命令コード６２１がRM_CREATE、RM_ENTRY、RM_LEAVEおよびMEM_APPENDのいずれを指示するかを判定する（ステップＳ５、Ｓ１５、Ｓ１９、Ｓ２３）。RM_CREATEを指示すると判定した場合には（ステップＳ５でＹＥＳ）、ルーム開設部２０が起動されて、ルーム開設処理が実行される（ステップＳ７）。RM_ENTRYを指示すると判定した場合には（ステップＳ１５でＹＥＳ）、参加受付部４２１Ａが起動されて、参加受付部４２１Ａにより参加処理が実行される（ステップＳ１７）。RM_LEAVEを指示すると判定した場合には（ステップＳ１９でＹＥＳ）、脱退受付部４２１Ｃが起動されて、脱退受付部４２１Ｃにより脱退処理が実行される（ステップＳ２１）。RM_SEARCHを指示すると判定した場合には（ステップＳ２３でＹＥＳ）、検索受付部４２１Ｂが起動されて、検索受付部４２１Ｂにより検索処理が実行される（ステップＳ２５）。
【０１２６】
ステップＳ７、Ｓ１７、Ｓ２１およびＳ２５の処理の結果を格納した戻り値RTに基づき、ＣＰＵ４０５は、当該戻り値RTがエラー（ERROR）を指示するか否かを判定する（ステップＳ９）。エラーを指示しないと判定した場合には（ステップＳ９でＮＯ）、要求元の携帯電話１００に対し要求を受付けたことを指示する値０（OK）を格納した受付フレームを、フレーム生成部４２３によって生成し、サーバ通信部４０９を介して送信する（ステップＳ１１）。戻り値RTがエラーを指示すると判定すると（ステップＳ９でＹＥＳ）、フレーム生成部４２３によって要求の受付結果として値−１（ERROR）を格納した受付フレームを生成し、サーバ通信部４０９を介して送信する（ステップＳ１３）。受付フレームを送信後は、処理は、ステップＳ３に戻る。
【０１２７】
フレーム解析部４２４の解析結果に基づき、受信フレームの命令コード６２１はRM_CREATE、RM_ENTRY、RM_LEAVEおよびRM_SEARCHのいずれも指示しないと判定すると（ステップＳ５でＮＯ、ステップＳ１５でＮＯ、ステップＳ１９でＮＯ、ステップＳ２３でＮＯ）、ルーム削除部４２２が起動される。
【０１２８】
ルーム削除部４２２は、開設されているルームのうち対応のデータRMTBL[i].DELTMが削除するべき時間を指示しているルームを削除するルーム削除処理を実行する。  具体的には、ルーム検索のための変数ｉに値０を設定し、変数TMに計時部４１０から読出した現在時刻を示す時間データを設定する。
【０１２９】
続いて、ルーム削除部４２２は、ルーム管理テーブルRMTBL[]を検索し、データRMTBL[i].FLAGの値が１を指示するか否かを判定する（ステップＳ２９）。データRMTBL[i].FLAGが１を指示するならば（ステップＳ２９でＹＥＳ）対応するデータRMTBL[i].DELTMの値が変数TMの値と比較され、比較結果に基づき、（RMTBL[i].DELTM＜TM）の条件が成立するか否かが判定される（ステップＳ３１）。
【０１３０】
ステップＳ３１の条件式が成立すると判定されると（ステップＳ３１でＹＥＳ）、すなわち当該ルームのデータRMTBL[i].DELTMは当該ルームを削除すべき時間が経過していることを指示していると判定された場合には、ルーム削除部４２２は、ルーム管理テーブルRMTBL[]のデータRMTBL[i].FLAGの値を０に更新することにより（ステップＳ３３）、当該ルームを削除する。続いて、変数ｉの値が＋１更新され（ステップＳ３５）、その後、変数ｉの値と、ルーム管理テーブルRMTBL[]の格納可能最大ルーム数を示す定数MAXの値と比較されて、比較結果に基づき、（i＝MAX）の条件が成立するか否かが判定される（ステップＳ３７）。成立すると判定されると（ステップＳ３７でＹＥＳ）、すなわちルーム管理テーブルRMTBL[]のすべてのルームについて検索がされたと判定されると、処理は、ステップＳ３に戻り、ステップＳ３以降の処理が同様に繰返される。
【０１３１】
一方、（i＝MAX）の条件が成立しないと判定されると（ステップＳ３７でＮＯ）、処理は、ステップＳ２９に戻り、次位のルームについて、ステップＳ２９以降の処理が同様に繰返される。
【０１３２】
一方、ルームのデータRMTBL[i].FLAGの値が“１”ではない、すなわち当該ルームは削除済み・未開設であると判定されると（ステップＳ２９でＮＯ）、または当該ルームについて（RMTBL[i].DELTM＜TM）の条件が成立しないと判定されると（ステップＳ３１でＮＯ）、ルームの削除処理（ステップＳ３３）は行なわれず、処理は、ステップＳ３５に移行する。
【０１３３】
以上のように、ルーム削除部４２２は、ルーム管理テーブルRMTBL[]に開設された各ルームについて（RMTBL[i].DELTM＜TM）の条件が成立するか否かを判定し、その判定結果に基づき当該ルームを削除（ステップＳ３３）する。したがって、定期的にステップＳ２７〜Ｓ３７のルーム削除処理が実行されることによって、データRMTBL[i].DELTMの時間が経過していると判定されたルームを、ルーム管理テーブルRMTBL[]から自動的に削除することができる。
【０１３４】
＜ルーム開設処理＞
図２８を参照して、図２７のルーム開設処理（ステップＳ７）について説明する。
【０１３５】
ルーム開設部４２０は、まず検索受付部４２１Ｂを起動し、ルーム管理テーブルRMTBL[]の検索を要求する（ステップＳ４１）。検索受付部４２１Ｂによるルーム検索処理については後述する。
【０１３６】
ルーム開設部４２０は、検索受付部４２１Ｂによる検索結果を示す戻り値RTの値が“ERROR”を指示しない、すなわち検索要求したルーム名のルームがルーム管理テーブルRMTBL[]に既に開設されている（既に同一名のルーム名がある）と判定した場合には（ステップＳ４３でＮＯ）、戻り値RTを‘ERROR’に設定し、図２７の処理に戻る（ステップＳ６７）。
【０１３７】
一方、検索処理（ステップＳ４１）の検索結果を示す戻り値RTが“ERROR”を指示すると判定すると（ステップＳ４３でＹＥＳ）、すなわち検索を要求したルーム名を有するルームはルーム管理テーブルRMTBL[]にまだ開設されていないと判定すると、ルーム開設部４２０は、変数ｉに０を設定し（ステップＳ４５）、変数ｉの値を１ずつインクリメントしながら（ステップＳ４９）、ルーム管理テーブルRMTBL[]を検索する。具体的には、変数ｉの値がルーム管理テーブルRMTBL[]に格納可能な最大ルーム数を示す定数MAXの値を指示するまで（ステップＳ５１でＹＥＳ）、各ルームのデータRMTBL[i].FLAGの値が“１”を指示するか否か、すなわち新たなルームを開設可能な空きエリアがあるか否かを判定する（ステップＳ４７）。ルーム管理テーブルRMTBL[]の検索の結果、（ｉ＝MAX）の条件式が成立すると判定すると（ステップＳ５１でＹＥＳ）、すなわち新たなルームを開設するための空きエリアはルーム管理テーブルRMTBL[]には存在しないと判定されると（ステップＳ５１でＹＥＳ）、戻り値RTに“ERROR”を設定して、図２７の処理に戻る（ステップＳ６９）。
【０１３８】
一方、ルーム管理テーブルテーブルRMTBL[]において新たなルームを開設するための空きエリアがあったと判定されると（ステップＳ４７でＮＯ）、ステップＳ５３において、ルーム開設部４２０は、ルーム管理テーブルRMTBL[]の空きエリアに、ルーム開設要求フレーム６０１が指示するルームを開設（ルームの情報を格納）する。
【０１３９】
具体的には、データRMTBL[i].MA[0]、RMTBL[i].IPA[0]、RMTBL[i].RMNM、RMTBL[i].APL、およびRMTBL[i].NUMに、受信したルーム開設要求フレーム６０１の内容に基づくデータを格納する。詳細には、データRMTBL[i].MA[0]には、ルーム開設要求フレーム６０１のデータ６１３のメールアドレスが設定され、データRMTBL[i].IPA[0]には、要求フレーム６０１のデータ６２３が示すＩＰアドレスが設定され、データRMTBL[i].RMNMには、要求フレーム６０１のデータ６２２が示すルーム名が設定され、データRMTBL[i].APLには、要求フレーム６０１のデータ６２７の値（１または０）が設定され、データRMTBL[i].NUMには、要求フレーム６０１のデータ６２８の値が設定される。
【０１４０】
さらに、ステップＳ５３においては、データRMTBL[i].ECNTに、値１が設定される。これにより、当該ルームに現在参加している（脱退要求をしていない）端末数は１台であることが指示される。さらに、変数Nに、（RMTBL[i].RMNM−RMTBL[i].ECNT）の算出結果が格納される。変数Nは、現時点で当該ルームへ新たに参加が許容される端末の台数（以下、現在参加許容台数という）を指示する。
【０１４１】
その後、削除時間設定部４２６が起動されて、削除時間設定処理（TMERSET1）が行なわれる。
【０１４２】
具体的には、削除時間設定部４２６は、検索受付部４２１Ｂを制御して、ルーム管理テーブルRMTBL[]を検索する。検索の結果、開設されたルームのデータRMTBL[i].APLの値が０を指示するか否かを判定する（ステップＳ５５）。“０”を指示しないと判定すると、すなわち当該ルームの開設目的はコミュニティ用であると判定すると（ステップＳ５５でＮＯ）、ステップＳ６５において、削除時間設定部４２６は、今回開設したルームのデータRMTBL[i].DELTMの値に、現在時刻＋定数TMAX（たとえば３０分）を加算した値を設定する（ステップＳ６５）。その後、戻り値RTを“正常”（‘OK’）に設定して、図２７の処理に戻る（ステップＳ７１）。
【０１４３】
一方、今回開設したルームのデータRMTBL[i].APLの値が“０”を指示すると判定すると、すなわち当該ルームの開設目的は知人用であると判定すると（ステップＳ５５でＹＥＳ）、変数Nの値が１を指示するか否かを判定する（ステップＳ５７）。すなわち当該ルームの現在参加許容台数は１台であると判定すると（ステップＳ５７でＹＥＳ）、削除時間設定部４２６は、メモリ４０６の知人用テーブルATBL0を検索して、 “１”を指示するデータＡ０に対応のデータＢ０の値（５分）を読出し、データRMTBL[i].DELTMの値に、現在時刻＋５分を設定する（ステップＳ６１）。その後、処理はステップＳ７１に移る。また、ステップＳ５９において、現在参加許容台数は６台以上であると判定すると（ステップＳ５９でＹＥＳ）、処理は、前述したステップＳ６５の処理に移る。
【０１４４】
一方、６台未満と判定すると（ステップＳ５９でＮＯ）、削除時間設定部４２６は、知人用テーブルATBL0を検索し、２〜５を指示するデータＡ０に対応のデータＢ０の値（１０分）を読出し、当該ルームの対応する変数RMTBL[i].DELTMの値を、現在時刻＋１０分に設定する（ステップＳ６３）。その後、処理は、ステップＳ７１に移る。
【０１４５】
なお、ステップＳ６１、Ｓ６３およびＳ６５における“現在時刻”は、計時部４１０が出力する現在時刻のデータを指す。
【０１４６】
以上のように、削除時間設定部４２６は、ルームが新規に開設される毎に起動されて、当該ルームの開設目的と当該ルームの定員数に基づく現在参加許容台数とに従い、ルームを削除するべき日時のデータRMTBL[i].DELTMを可変に設定する。
【０１４７】
＜ルーム参加処理＞
図２９を参照して、ルーム参加受付部４２１Ａによるルーム参加処理について説明する。
【０１４８】
ルーム参加受付部４２１Ａは、受信したルーム参加要求フレーム６０３のフレーム解析部４２４の解析結果に基づき、検索受付部４２１Ｂを介して、ルーム参加要求フレーム６０３のデータ６２２のルーム名に基づきルーム管理テーブルRMTBL[]を検索する。検索の結果、検索受付部４２１Ｂからの戻り値RTの値が‘ERROR’（エラー）を指示するか否かを判定する（ステップＳ７５）。エラーを指示すると判定すると（ステップＳ７５でＹＥＳ）、すなわちルーム参加要求フレーム６０３によって参加が要求されたルーム名のルームは、ルーム管理テーブルRMTBL[]に開設されていないと判定すると、戻り値RTに‘ERROR’を設定し、図２７の処理に戻る（ステップＳ７７）。
【０１４９】
戻り値RTがエラーを指示しないと判定すると（ステップＳ７５でＮＯ）、すなわち参加要求がされたルームはルーム管理テーブルRMTBL[]に開設されていると判定すると、参加受付部４２１Ａは、変数ｉにステップＳ７３の処理結果を示す戻り値、すなわち参加が要求されたルームのルーム管理テーブルRMTBL[]における記憶位置を示す値を設定し、変数Nに、変数RMTBL[i].NUM−変数RMTBL[i].ECNTの値を、すなわち現在参加許容台数を設定する（ステップＳ７９）。
【０１５０】
変数Nの値（現在参加許容台数）は０であると判定すると、すなわち参加が要求されたルームは定員一杯であることを判定すると（ステップ８１でＹＥＳ）、ステップＳ８３において、戻り値RTを‘ERROR’に設定し、図２７の処理に戻る。
【０１５１】
一方、変数Nの値（現在参加許容台数）は０ではない、すなわち当該ルームは未だ定員一杯になっていないと判定すると（ステップＳ８１でＮＯ）、ステップＳ８５において、変数Nの値を−１だけ更新するとともに、当該ルームへの新たな参加者を登録するために、データRMTBL[i].ECNTの値を、＋１更新する（ステップＳ８５）。
【０１５２】
その後、ステップＳ８９の処理において、参加受付部４２１Ａは変数ｊの値を０に設定する。続いて、ステップＳ９１、ステップＳ９３およびステップＳ９５のＩＰアドレスの格納処理を行なう。具体的には、変数jの値を＋１ずつ更新しながら、当該ルームのデータRMTBL[i].IPA[j]を検索する。検索結果に基づき、まだ値が設定されていないデータRMTBL[i].IPA[j]を検出すると（ステップＳ９１でＹＥＳ）、検出したデータRMTBL[i].IPA[j]に、受信したルーム参加要求フレーム６０３から読出したデータ６２３が示すＩＰアドレスを設定し、対応するデータRMTBL[i].MA[j]に当該ルーム参加要求フレーム６０３から読出したデータ６１２が示すメールアドレスを設定する（ステップＳ９９）。
【０１５３】
その後、ステップＳ１０１において、削除時間設定部４２６が起動されて、削除時間設定処理（TMERSET1：ステップＳ１０１）が実行される。続いて、イベント通知部４２５の参加通知部４２５Ａが起動されて、後述する参加通知処理（図３２参照）が実行される（ステップＳ１０３）。
【０１５４】
その後、参加受付部４２１Ａは変数Nの値が０を指示し、かつ参加要求がされたルームの対応するデータRMTBL[i].APLの値が０を指示すると判定すると（ステップＳ１０５でＹＥＳ）、ステップＳ１０７において当該ルームのデータRMTBL[i].FLAGの値を０に設定する（ステップＳ１０７）。一方、ステップＳ１０５の条件が成立しないと判定すると（ステップＳ１０５でＮＯ）、ステップＳ１０７の処理をスキップして、戻り値RTに‘OK’（正常）を設定し（ステップＳ１０７）、図２７の処理に戻る（ステップＳ１０９）。
【０１５５】
上述のステップＳ１０５およびＳ１０７の処理により、参加要求を受付た結果、ルームが定員一杯となり、かつ当該ルームの開設目的が‘知人用’を指すと判定されると、すなわち、当該ルームに参加するべき知人のすべてに対してＰ２Ｐ通信のためのＩＰアドレスを配信（ＩＰアドレスの交換）が完了したと判定して、当該ルームは削除される。
【０１５６】
ステップＳ９１、Ｓ９３およびＳ９５の処理に戻り、検索の結果、参加を要求したルームのデータRMTBL[i].IPA[j]には、値が設定されていないデータはないと判定されると（ステップＳ９５でＹＥＳ）、これは想定できない（致命的）エラーと判定し、戻り値RTに‘ERROR’を設定し、図２７の処理に戻る（ステップＳ９７）。
【０１５７】
以上のように、ルームへの参加要求が発生し参加受付される毎に、削除時間設定部４２６により、参加受付けしたルームのデータRMTBL[i].DELTMが、当該ルームの開設目的および現在参加許容台数に応じて可変に設定される。
【０１５８】
＜ルーム脱退処理＞
次に図３０を参照して、脱退受付部４２１Ｃによるルーム脱退処理について説明する。脱退受付部４２１Ｃは、フレーム解析部４２４によるルーム脱退要求フレーム６０５の解析結果に基づき、検索受付部４２１Ｂを起動して、ルーム脱退要求フレーム６０５のデータ６２２が指すルーム名に基づきルーム管理テーブルRMTBL[]を検索する（ステップＳ１１１）。検索の結果を示す戻り値RTが“ERROR”を示すか否かを判定する（ステップＳ１１３）。‘ERROR’を指示すると判定すると、すなわち脱退が要求されたルームがルーム管理テーブルRMTBL[]に開設されていないと判定されると（ステップＳ１１３でＹＥＳ）、戻り値RTを‘ERROR’に設定し、処理は図２７に戻る（ステップＳ１１５）。
【０１５９】
一方、戻り値RTが‘ERROR’を指示しない、すなわち脱退要求するルームのデータのルーム管理テーブルRMTBL[]における記憶位置を指示する値を示していると判定すると（ステップＳ１１３でＮＯ）、脱退受付部４２１Ｃは変数ｉに戻り値RTを設定し、変数ｊを０に初期設定する（ステップＳ１１７）。
【０１６０】
続いて、ステップＳ１１９、ステップＳ１２１およびステップＳ１２３の処理において、（ｊ＝１０）の条件が成立するまで（ステップＳ１２３でＹＥＳ）、変数jの値を＋１ずつ更新しながら（ステップＳ１２１）、検索結果が示す脱退が要求されたルームのデータRMTBL[i].IPA[j]のうち、ルーム脱退要求フレーム６０５のデータ６２３が指示するＩＰアドレスに一致するもがあるか否かを判定する（ステップＳ１１９）。
【０１６１】
（ｊ＝１０）の条件が成立すると判定すると（ステップＳ１２３でＹＥＳ）、すなわち脱退要求元の携帯電話１００は当該ルームには参加していなかったと判定されると、戻り値RTを‘ERROR’に設定し、図２７の処理に戻る（ステップＳ１２５）。
【０１６２】
一方、ＩＰアドレスと一致するデータRMTBL[i].IPA[j]が格納されていたと判定した場合には（ステップＳ１１９でＹＥＳ）、ステップＳ１２７において、当該ＩＰアドレスと一致するデータRMTBL[i].IPA[j]と、対応するデータRMTBL[i].MA[j]との値をNULLに設定する。これにより、脱退要求元の携帯電話１００の、当該ルームからの脱退が完了する。
【０１６３】
続いて、ステップＳ１２９において、（RMTBL[i].ECNT＝RMTBL[i].ECNT−１）の演算処理を行うことにより、当該ルームから未だ脱退せずに現在も参加を続ける台数（以下、現在参加台数という）を１台減らす（ステップＳ１２９）。
【０１６４】
続いて、脱退受付部４２１Ｃは、当該ルームのデータRMTBL[i].ECNTの値が０を指示するか否かを判定する（ステップＳ１３１）。０を指示すると判定すると、すなわち当該ルームから全員が脱退し、もはや参加している端末はないと判定すると（ステップＳ１３１でＹＥＳ）、当該ルームの対応するデータRMTBL[i].FLAGの値を０に設定する（ステップＳ１３３）。これにより当該ルームはルーム管理テーブルRMTBL[]から削除される。その後、戻り値RTを‘OK’（正常）に設定し、図２７の処理に戻る（ステップＳ１３５）。
【０１６５】
一方、当該ルームには参加している端末が存在すると判定された場合には（ステップＳ１３１でＮＯ）、脱退受付部４２１Ｃは削除時間設定部４２６を起動する。これにより、削除時間設定部４２６による削除時間設定処理が行なわれる。
【０１６６】
削除時間設定部４２６は、まず当該ルームのデータRMTBL[i].APLが０を指示するか否かを判定する（ステップＳ１３７）。０を指示する、すなわち当該ルームの開設目的は知人用と判定すると、処理は後述する脱退通知処理（図３３参照）に移行する（ステップＳ１４９）。その後、処理は戻り値RTを‘OK’（正常）に設定して、図２７の処理に戻る（ステップＳ１５１）。
【０１６７】
ステップＳ１３７の処理においてデータRMTBL[i].APLの値は０でないと判定されると、すなわち当該ルームの開設目的はコミュニティ用と判定されると（ステップＳ１３７でＮＯ）、ステップＳ１３９において削除時間設定部４２６は、当該ルームのRMTBL[i].ECNTの値が指す現在参加台数が“１”を指示するか否かを判定する（ステップＳ１３９）。１台であると判定すると（ステップＳ１３９でＹＥＳ）、削除時間設定部４２６は、ステップＳ１３７の判定結果に基づきコミュニティ用テーブルATBL1を検索し、当該ルームのデータRMTBL[i].ECNTが指す現在参加台数を示すデータＡ１に対応のデータＢ１（この場合、１分）を読出し、読出したデータと現在時刻とを加算した値を、当該ルームのデータRMTBL[i].DELTMに設定する（ステップＳ１４３）。その後、処理はステップＳ１４９に移行する。
【０１６８】
一方、ステップＳ１３９において現在参加台数は１台ではないと判定されると（ステップＳ１３９でＮＯ）、ステップＳ１４１において現在参加台数は６台以上であるか否かが判定される（ステップＳ１４１）。６台未満であると判定されると（ステップＳ１４１でＮＯ）、削除時間設定部４２６は、検出した現在参加台数に基づきコミュニティ用テーブルATBL1を検索し、現在参加台数を指示するデータＡ１に対応のデータＢ１が指示する時間データ（この場合１０分）を読出し、現在時刻＋読出したデータの算出結果値を変数RMTBL[i].DELTMに設定する（ステップＳ１４５）。その後、処理はステップＳ１４９に移行する。
【０１６９】
一方、現在参加台数は６台以上であると判定されると（ステップＳ１４１でＹＥＳ）、ステップＳ１４７において、削除時間設定部４２６は、検出された台数に基づきコミュニティ用テーブルATBL1を検索し、現在参加台数を示すデータＡ１に対応のデータＢ１が示す時間データ（この場合、定数TMAX（たとえば３０分））の値を読出し、読出した値と現在時刻とを加算した値を、変数RMTBL[i].DELTMに設定する（ステップＳ１４７）。その後、処理はステップＳ１４９に移行する。
【０１７０】
ステップＳ１４３、Ｓ１４５およびＳ１４７で示す“現在時刻”のデータは計時部４１０が出力する現在時刻データによって指示される。
【０１７１】
以上のように、ルームからの脱退要求が発生し受付される毎に、削除時間設定部４２６により、脱退を受付けたルームのデータRMTBL[i].DELTMが、現在参加台数およびルーム開設条件を指すパラメータである当該ルームの開設目的に応じて可変に設定される。
【０１７２】
＜ルーム検索処理＞
次に、図３１を参照して検索受付部４２１Ｂによるルーム検索処理について説明する。
【０１７３】
検索受付部４２１Ｂは、検索が要求されたルームのルーム名を入力すると、当該ルーム名を指示するデータRMTBL[i].RMNMを有するルームデータRMTBL[i]が、ルーム管理テーブルRMTBL[]に格納されているか否かを検索する。なお、検索が要求されるルームは、受信した要求フレーム５９９、６０１、６０３および６０５のデータ６２２のルーム名により指示される。
【０１７４】
具体的には、検索のための制御の変数ｊを０に設定する（ステップＳ１５５）。続いて、検索受付部４２１Ｂは、ルーム管理テーブルRMTBL[]を変数jの値を＋１ずつ更新しながら（ステップＳ１６１）、変数jの値が定数MAXを指示すると判定されるまで（ステップＳ１６３でＹＥＳ）、変数jの値が指示するルームデータRMTBL[j]について、データRMTBL[j].FLAGの値が“１”、すなわち当該ルームは削除されておらず有効に存在する（開設されている）か否かを判定する（ステップＳ１５７）。
【０１７５】
有効に存在するルームを検出すると（ステップＳ１５７でＹＥＳ）、当該ルームのデータRMTBL[j].RMNMは、検索が要求されたルーム名と照合されて、照合結果に基づき一致する否かを判定する（ステップＳ１５９）。一致しないと判定されると（ステップＳ１５９でＮＯ）、処理はステップＳ１５７に戻り、要求されたルーム名を有するルームの検索処理が繰返される。
【０１７６】
一方、一致すると判定されると（ステップＳ１５９でＹＥＳ）、戻り値RTに変数jの値を設定し元の処理に戻る（ステップＳ１６５）。これにより、戻り値RTは、ルーム管理テーブルRMTBL[]における、検索要求されたルーム名のルームデータRMTBL[j]が格納されている位置を指示することになる。
【０１７７】
有効に存在するルームを検出できなかった場合には（ステップＳ１５７でＮＯ、ステップＳ１６３でＹＥＳ）、検索要求されたルームはルーム管理テーブルRMTBL[]に格納されていないと判定されて、戻り値RTに‘ERROR’が設定されて、元の処理に戻る（ステップＳ１６７）。
【０１７８】
＜参加通知処理＞
次に、図３２を参照して、参加通知部４２５Ａによる参加通知処理について説明する。参加通知部４２５Ａは、参加要求を受付けたルームについて、当該ルームに既に参加していたすべての携帯電話１００宛てに、図２３に示すルーム参加端末発生の通知フレーム６０７を送信する。
【０１７９】
具体的には、参加要求を受付けたルームに参加要求受付前から既に参加している携帯電話１００の台数をカウントする変数jを＋１ずつ更新しながら（ステップＳ１７１、Ｓ１７７）、（j＝１０）の条件の成立が検出されるまで（ステップＳ１７９でＹＥＳ）、図２３の通知フレーム６０７をフレーム生成部４２３を制御して生成し、生成したフレームをサーバ通信部４０９を介して当該参加端末宛に送信する（ステップＳ１７３、ステップＳ１７５）。送信後は図２９の処理に戻る（ステップＳ１８０）。
【０１８０】
ステップＳ１７５における通知フレームの生成を説明する。通知フレーム６０７は、参加端末毎に生成されて送信される。データ６１２として、ルーム管理テーブルRMTBL[]から読出したデータRMTBL[i].MA[j]が格納され、データ６１３として、マッチングサーバアドレスのデータMSADが格納され、命令コード６２１として、参加通知のコマンドMEM_APPENDが格納され、データ６２２として、ルーム管理テーブルRMTBL[]から読出したデータRMTBL[i].RMNMが格納され、データ６２３として、今回参加要求を受付けた携帯電話１００のＩＰアドレスを指す図１９のルーム参加要求フレーム６０３のデータ６２３が格納される。
【０１８１】
このように、ルーム参加要求が発生して受付られる毎に、当該ルームに既に参加している他の携帯電話１００のそれぞれは、図２３の通知フレーム６０７を受信することにより、新たな参加端末のＩＰアドレスを取得することができる。
【０１８２】
＜脱退通知処理＞
次に、図３３を参照して、脱退通知部４２５Ｂによる脱退通知処理について説明する。脱退通知部４２５Ｂは、脱退要求を受付けたルームについて、当該ルームに参加しているすべての携帯電話１００宛てに、図２４に示すルーム脱退端末発生の通知フレーム６０８を送信する。
【０１８３】
具体的には、脱退要求を受付けたルームに脱退要求受付後も参加している携帯電話１００の台数をカウントする変数jを＋１ずつ更新しながら（ステップＳ１８１、Ｓ１８７）、（j＝１０）の条件の成立が検出されるまで（ステップＳ１８９でＹＥＳ）、図２４の通知フレーム６０８をフレーム生成部４２３を制御して生成し、生成したフレームをサーバ通信部４０９を介して当該参加端末宛に送信する（ステップＳ１８３、Ｓ１８５）。送信後は、図３０の処理に戻る（ステップＳ１９１）。
【０１８４】
ステップＳ１８５における通知フレームの生成を説明する。通知フレーム６０８は、参加端末毎に生成されて送信される。データ６１２として、ルーム管理テーブルRMTBL[]から読出したデータRMTBL[i].MA[j]が格納され、データ６１３として、マッチングサーバアドレスのデータMSADが格納され、命令コード６２１として、参加通知のコマンドMEM_LEAVEが格納され、データ６２２として、ルーム管理テーブルRMTBL[]から読出したデータRMTBL[i].RMNMが格納され、データ６２３として、今回脱退要求を受付けた携帯電話１００のＩＰアドレスを指すデータ（図２１のルーム脱退要求フレーム６０５のデータ６２３）が格納される。
【０１８５】
このように、ルーム脱退要求が発生して受付られる毎に、脱退要求受付後も当該ルームに参加している他の携帯電話１００のそれぞれは、図２４の通知フレーム６０８を受信することにより、脱退する端末のＩＰアドレスを取得することができる。
【０１８６】
（プログラムおよび記録媒体）
ここで、本実施の形態における、図２６〜図３３のフローチャートに従う機能はプログラムとして提供することができる。このようなプログラムは、マッチングサーバ４００のＣＰＵ４０５のコンピュータに付属する記録媒体に予め記録させて、プログラム製品として提供することもできる。このような記録媒体としては、ＦＤ（Flexible Disc）４１２、ＣＤ（Compact Disc）−ＲＯＭ４１４またはメモリ４０６を構成するＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）、ならびにメモリカードなどのコンピュータ読取り可能な記録媒体がある。あるいは、コンピュータに内蔵する固定ディスク４０７の記録媒体にて記録させて、プログラムを提供することもできる。また、インターネット５００を含む各種ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１８７】
また、携帯電話１００の図２５のフローチャートに従う機能もプログラムとして提供することができる。このようなプログラムは、携帯電話１００のＣＰＵ１０６Ａのコンピュータに付属する記録媒体に予め記録させて、プログラム製品として提供することもできる。このような記録媒体としては、ＦＤ（Flexible Disc）、ＣＤ（Compact Disc）−ＲＯＭまたは記憶部１０３を構成するＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）、ならびにメモリカードなどのコンピュータ読取り可能な記録媒体がある。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、インターネット５００を含む各種ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１８８】
ここで、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１８９】
なお、一般的傾向として、コンピュータのオペレーティングシステムの一部として様々なプログラムモジュールを用意しておき、アプリケーションプログラムはこれらモジュールを所定の配列で必要なときに呼出して処理を進める方式が一般的である。そうした場合、本実施の形態に係るシステムを実現するためのソフトウェア自体にはそうしたモジュールは含まれず、当該コンピュータでオペレーティングシステムと協働してはじめてシステムが実現することになる。しかし、一般的なプラットホームを使用する限り、そうしたモジュールを含ませたソフトウェアを流通させる必要はなく、それらモジュールを含まないソフトウェア自体およびそれらソフトウェアを記録した記録媒体（およびそれらソフトウェアがネットワーク上を流通する場合のデータ信号）が実施の形態を構成すると考えることができる。
【０１９０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され
、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１９１】
【図１】本実施の形態に係るネットワークシステムの一例を示す概略図である。
【図２】本実施の形態に係る携帯電話の概観を示す図である。
【図３】本実施の形態に係る携帯電話のハードウェア構成図である。
【図４】本実施の形態に係るアドレス帳データを示す図である。
【図５】本実施の形態に係る自端末データを示す図である。
【図６】本実施の形態に係るルームデータベースを示す図である。
【図７】本実施の形態に係る携帯電話の機能構成図である。
【図８】本実施の形態に係るマッチングサーバのハードウェア構成図である。
【図９】本実施の形態に係るマッチングサーバの機能構成図である。
【図１０】本実施の形態に係るルーム管理テーブルのデータ構造の一例を示す図である。
【図１１】本実施の形態に係る削除日時生成用テーブルの構成の一例を示す図である。
【図１２】本実施の形態に係る削除日時生成用テーブルの構成の他の例を示す図である。
【図１３】本実施の形態に係る通信手順を模式的に示す図である。
【図１４】本実施の形態に係るフレームの基本構成を説明する図である。
【図１５】本実施の形態に係るルーム検索要求フレームの構成図である。
【図１６】本実施の形態に係るルーム検索受付フレームの構成図である。
【図１７】本実施の形態に係るルーム開設要求フレームの構成図である。
【図１８】本実施の形態に係るルーム開設受付フレームの構成図である。
【図１９】本実施の形態に係るルーム参加要求フレームの構成図である。
【図２０】本実施の形態に係るルーム参加受付フレームの構成図である。
【図２１】本実施の形態に係るルーム脱退要求フレームの構成図である。
【図２２】本実施の形態に係るルーム脱退受付フレームの構成図である。
【図２３】本実施の形態に係る参加通知フレームの構成図である。
【図２４】本実施の形態に係る脱退通知フレームの構成図である。
【図２５】本実施の形態に係る携帯電話の処理フローチャートである。
【図２６】（Ａ）〜（Ｃ）は表示画面の一例を示す図である。
【図２７】本実施の形態に係るマッチングサーバのメイン処理フローチャートである。
【図２８】本実施の形態に係るルーム開設処理フローチャートである。
【図２９】本実施の形態に係るルーム参加処理フローチャートである。
【図３０】本実施の形態に係るルーム脱退処理フローチャートである。
【図３１】本実施の形態に係るルーム検索処理フローチャートである。
【図３２】本実施の形態に係る参加通知処理フローチャートである。
【図３３】本実施の形態に係る脱退通知処理フローチャートである。
【符号の説明】
【０１９２】
１００  携帯電話、１１０Ｃ  Ｐ２Ｐボタン、４００  マッチングサーバ、４２０  ルーム開設部、４２１Ａ  参加受付部、４２１Ｂ  検索受付部、４２１Ｃ  脱退受付部、４２２  ルーム削除部、４２５  イベント通知部、４２５Ａ  参加通知部、４２５Ｂ  脱退通知部、４２６  削除時間設定部、６２７  ルーム開設目的のデータ、６２８  定員数のデータ、RMTBL[]  ルーム管理テーブル、ATBL0  知人用テーブル、ATBL1  コミュニティ用テーブル。
【図１】
2010140245.tif 000003
【図２】
2010140245.tif 000004
【図３】
2010140245.tif 000005
【図４】
2010140245.tif 000006
【図５】
2010140245.tif 000007
【図６】
2010140245.tif 000008
【図７】
2010140245.tif 000009
【図８】
2010140245.tif 000010
【図９】
2010140245.tif 000011
【図１０】
2010140245.tif 000012
【図１１】
2010140245.tif 000013
【図１２】
2010140245.tif 000014
【図１３】
2010140245.tif 000015
【図１４】
2010140245.tif 000016
【図１５】
2010140245.tif 000017
【図１６】
2010140245.tif 000018
【図１７】
2010140245.tif 000019
【図１８】
2010140245.tif 000020
【図１９】
2010140245.tif 000021
【図２０】
2010140245.tif 000022
【図２１】
2010140245.tif 000023
【図２２】
2010140245.tif 000024
【図２３】
2010140245.tif 000025
【図２４】
2010140245.tif 000026
【図２５】
2010140245.tif 000027
【図２６】
2010140245.tif 000028
【図２７】
2010140245.tif 000029
【図２８】
2010140245.tif 000030
【図２９】
2010140245.tif 000031
【図３０】
2010140245.tif 000032
【図３１】
2010140245.tif 000033
【図３２】
2010140245.tif 000034
【図３３】
2010140245.tif 000035