(57)【特許請求の範囲】
【請求項１】
第１のネットワークを介して通信するための複数の第１の端末と、
第２のネットワークを介して通信するための少なくとも１つの第２の端末と、
前記複数の第１の端末と前記少なくとも第２の端末と通信するためのサーバとを備え、
前記サーバは、前記複数の第１の端末がＰ２Ｐ通信中に、前記第２の端末から前記第１の端末との通信開始要求を受信した際に、前記複数の第１の端末と前記第２の端末とにサーバクライアント方式の通信を開始させる、ネットワークシステム。
【請求項２】
前記複数の第１の端末と通信可能な通信装置をさらに備え、前記通信装置は前記サーバにアクセスし、前記サーバからの要求に応じて前記複数の第１の端末にサーバクライアント方式の通信を開始させ、
前記サーバは、前記第２の端末から前記第１の端末との前記通信開始要求を受信した後に、前記通信装置からの前記アクセスの返答として、前記複数の第１の端末にサーバクライアント方式の通信を開始させるための前記要求を前記通信装置へと送信する、請求項１に記載のネットワークシステム。
【請求項３】
前記複数の第１の端末は前記サーバにアクセスし、
前記サーバは、前記第２の端末から前記第１の端末との前記通信開始要求を受信した後に、前記複数の第１の端末からの前記アクセスの返答として、前記複数の第１の端末にサーバクライアント方式の通信を開始させる、請求項１に記載のネットワークシステム。
【請求項４】
前記サーバは、前記複数の第１の端末と通信中の前記第２の端末が当該通信を終了する際に、前記複数の第１の端末にＰ２Ｐ通信を開始させる、請求項１〜３のいずれかに記載のネットワークシステム。
【請求項５】
第１のネットワークを介して通信するための複数の第１の端末と、第２のネットワークを介して通信するための少なくとも１つの第２の端末と、前記複数の第１の端末と前記少なくとも第２の端末と通信するためのサーバとを含むネットワークシステムにおける通信方法であって、
前記複数の第１の端末が、前記第１のネットワークを介してＰ２Ｐ通信するステップと、
前記第２の端末が、前記サーバに、前記第１の端末と通信するための通信開始要求を送信するステップと、
前記サーバが、前記複数の第１の端末と前記第２の端末とにサーバクライアント方式の通信を開始させるステップとを備える、通信方法。
【請求項６】
第１のネットワークを介して通信するための複数の第１の端末と、第２のネットワークを介して通信するための少なくとも１つの第２の端末と、通信するための通信インターフェイスと、
前記複数の第１の端末がＰ２Ｐ通信中に、前記第２の端末から前記第１の端末との通信開始要求を受信した際に、前記通信インターフェイスを介して前記複数の第１の端末と前記第２の端末とにサーバクライアント方式の通信を開始させるプロセッサとを備える、サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｐ２Ｐ方式やサーバクライアント方式の通信を行うことが可能な複数の端末を含むネットワークシステム、通信方法、およびサーバに関する。
【背景技術】
【０００２】
複数の端末がサーバを介して通信するサーバクライアント方式と、ダイレクトなデータ通信システムとしてのＰ２Ｐ（Peer  to  Peer）方式とが知られている。一般的に、Ｐ２Ｐ方式は、スケーラビリティが高く、耐障害性が高いと言われている。一方、サーバクライアント方式は、システムの中央管理・監視が容易であって、ビジネスモデルの構築が容易であると言われている。
【０００３】
Ｐ２Ｐ方式には、インデックス情報の管理方法などが異なる、ハイブリッドＰ２Ｐ方式とピュアＰ２Ｐ方式とがある。ハイブリッドＰ２Ｐ方式においては、インデックス情報を、サーバが集中して保持する。一方、ピュアＰ２Ｐ方式では、インデックス情報を、各クライアントが分散して保持する。
【０００４】
以下、ハイブリッドＰ２Ｐについて説明する。まずは、クライアント端末１，２の各々がグローバルに固有なＩＰアドレスを有する場合について説明する。
【０００５】
図１２は、グローバルＩＰ（Internet  Protocol）アドレスを持つクライアント端末がＰ２Ｐ通信を行っている状態を示すイメージ図である。なお、図中の一点鎖線の矢印は、クライアント端末１が通信相手（クライアント端末２）を特定するためのサーバとクライアント間のアクセスを示す。白抜きの矢印はクライアント端末間のＰ２Ｐ通信を表している。図１２を参照して、クライアント端末１，２の各々がグローバルに固有なＩＰアドレスを有する場合には、ファイアウォールなどの影響を除けば、インターネットを介してＰ２Ｐ方式での通信が可能である。
【０００６】
次に、同一のプライベートネットワーク（あるいはキャリア網）に属するクライアント端末がＰ２Ｐ通信を行う場合について説明する。
【０００７】
図１３は、同一のプライベートネットワークに属するクライアント端末がＰ２Ｐ通信を行っている状態を示すイメージ図である。図１３を参照して、サーバとクライアント端末間の通信が、ルーターによるＮＡＴ／ＮＡＰＴを介して行われる場合を除けば、図１２と同様に、クライアント端末はＰ２Ｐ方式での通信が可能である。
【０００８】
次に、異なるプライベートネットワークに属するクライアント端末１，３が通信する場合について説明する。
【０００９】
図１４は、異なるプライベートネットワークに属するクライアント端末１，３がＰ２Ｐ方式で通信を試みる状態を示すイメージ図である。図１５は、異なるプライベートネットワークに属するクライアントがサーバクライアント方式で通信を行っている状態を示すイメージ図である。
【００１０】
図１４を参照して、この場合、クライアント端末１，３は異なるプライベートネットワークにおけるプライベートＩＰアドレスを有しているため、直接、Ｐ２Ｐ通信を行うことができない。
【００１１】
あるいは、図１５に示すように、異なるプライベートネットワークに属するクライアント端末１，４は、サーバクライアント方式でネットワークを構成することによって通信を行うことが可能となる。すなわち、クライアント端末１，３は、サーバを介してデータ通信を行ったり、サーバが運営するサイト上で情報を交換したりすることが可能となる。
【００１２】
近年では、Ｐ２Ｐ方式とサーバクライアント方式とを切り替えるための技術が提案されている。特開２００８−９０６５１号公報（特許文献１）には、ネットワークシステムが開示されている。特開２００８−９０６５１号公報（特許文献１）によると、ネットワークの成熟度が低いうちは管理が容易で低コストなピュアＰ２Ｐ方式の通信方式をとる。ネットワークの成熟度が高くなった場合には、データの最新性・整合性・完全性などを考慮して、ピュアＰ２Ｐ方式からサーバクライアント方式へ自動的に移行する。各端末に、情報のやり取りを監視させ、例えば回線速度や端末の処理能力などから情報交換の負荷を算出し、閾値を超えたことを検知して、ピュアＰ２Ｐ方式からサーバクライアント方式へ自動的に移行する。閾値を超えたことを検出したクライアントは、サーバを検索し、そのサーバを介して情報交換を行う。
【００１３】
また、特開２００２−１５７２０５号公報（特許文献２）には、クライアントシステムおよびメッセージ交換方法が開示されている。特開２００２−１５７２０５号公報（特許文献２）によると、クライアントマシンは、メッセンジャで２者間のメッセージ交換を行っている場合に、第３者からのメッセージを受信すると、サーバへチャットルームの開設を要求し、チャットルームへ接続しメッセンジャからチャットアプリケーションを起動して、チャットを行う。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００８−９０６５１号公報
【特許文献２】特開２００２−１５７２０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、従来の技術は、同じ通信キャリア網に属する複数の端末間における通信に向けられたものであった。すなわち、異なる通信キャリアに属する端末間における通信方法の切り替えについては考慮されていなかった。
【００１６】
たとえば、第１のプライベートネットワーク（第１のキャリア網）に属するクライアント端末１，２が既にＰ２Ｐ通信している場合に、第２のプライベートネットワーク（第２のキャリア網）に属するクライアント端末３がアクセスしてきたときには、クライアント端末３はクライアント端末１，２と通信することができない。
【００１７】
図１６は、既にＰ２Ｐ通信しているクライアント端末１，２へアクセス要求が為された状態を示すイメージ図である。図１６を参照して、すでにプライベートネットワークＡ内のクライアント端末１，２がＰ２Ｐ方式で通信している状態では、異なるプライベートネットワークＢに属するクライアント端末３がＰ２Ｐ通信に参加することができない。
【００１８】
本発明は、かかる問題を解決するためになされたものであり、その目的は、異なるネットワークに属する複数の端末間における通信方法を有効に切り替えることができるネットワークシステム、通信方法、およびサーバを提供することである。
【課題を解決するための手段】
【００１９】
この発明のある局面に従うと、第１のネットワークを介して通信するための複数の第１の端末と、第２のネットワークを介して通信するための少なくとも１つの第２の端末と、複数の第１の端末と少なくとも第２の端末と通信するためのサーバとを備えるネットワークシステムが提供される。サーバは、複数の第１の端末がＰ２Ｐ通信中に、第２の端末から第１の端末との通信開始要求を受信した際に、複数の第１の端末と第２の端末とにサーバクライアント方式の通信を開始させる。
【００２０】
好ましくは、ネットワークシステムは、複数の第１の端末と通信可能な通信装置をさらに備える。通信装置はサーバにアクセスし、サーバからの要求に応じて複数の第１の端末にサーバクライアント方式の通信を開始させる。サーバは、第２の端末から第１の端末との通信開始要求を受信した後に、通信装置からのアクセスの返答として、複数の第１の端末にサーバクライアント方式の通信を開始させるための要求を通信装置へと送信する。
【００２１】
好ましくは、複数の第１の端末はサーバにアクセスする。サーバは、第２の端末から第１の端末との通信開始要求を受信した後に、複数の第１の端末からのアクセスの返答として、複数の第１の端末にサーバクライアント方式の通信を開始させる。
【００２２】
好ましくは、サーバは、複数の第１の端末と通信中の第２の端末が当該通信を終了する際に、複数の第１の端末にＰ２Ｐ通信を開始させる。
【００２３】
この発明の別の局面に従うと、第１のネットワークを介して通信するための複数の第１の端末と、第２のネットワークを介して通信するための少なくとも１つの第２の端末と、複数の第１の端末と少なくとも第２の端末と通信するためのサーバとを含むネットワークシステムにおける通信方法が提供される。通信方法は、複数の第１の端末が、第１のネットワークを介してＰ２Ｐ通信するステップと、第２の端末が、サーバに、第１の端末と通信するための通信開始要求を送信するステップと、サーバが、複数の第１の端末と第２の端末とにサーバクライアント方式の通信を開始させるステップとを備える。
【００２４】
この発明の別の局面に従うと、第１のネットワークを介して通信するための複数の第１の端末と、第２のネットワークを介して通信するための少なくとも１つの第２の端末と、通信するための通信インターフェイスと、複数の第１の端末がＰ２Ｐ通信中に、第２の端末から第１の端末との通信開始要求を受信した際に、通信インターフェイスを介して複数の第１の端末と第２の端末とにサーバクライアント方式の通信を開始させるプロセッサとを備える、サーバが提供される。
【発明の効果】
【００２５】
以上のように、本発明によると、異なるネットワークに属する複数の端末間における通信方法を有効に切り替えることができるネットワークシステム、通信方法、およびサーバが提供される。
【図面の簡単な説明】
【００２６】
【図１】本実施の形態に係るネットワークシステム１の全体構成を示す概略図である。
【図２】ネットワークシステム１における動作概要を示すシーケンス図である。
【図３】本実施の形態に係る携帯電話１００のハードウェア構成を示すブロック図である。
【図４】本実施の形態に係るネットワークシステム１における第１の通信処理を示すシーケンス図である。
【図５】本実施の形態に係るネットワークシステム１における第２の通信処理を示すシーケンス図である。
【図６】本実施の形態に係るネットワークシステム１における第３の通信処理を示すシーケンス図である。
【図７】本実施の形態に係るネットワークシステム１における第４の通信処理を示すシーケンス図である。
【図８】本実施の形態に係るネットワークシステム１における第５の通信処理を示すシーケンス図である。
【図９】本実施の形態に係るネットワークシステム１における第６の通信処理を示すシーケンス図である。
【図１０】本実施の形態に係るマッチングサーバ３００における切替処理を示す第１のフローチャートである。
【図１１】本実施の形態に係るマッチングサーバ３００における切替処理を示す第２のフローチャートである。
【図１２】グローバルＩＰ（Internet  Protocol）アドレスを持つクライアント端末がＰ２Ｐ通信を行っている状態を示すイメージ図である。
【図１３】同一のプライベートネットワークに属するクライアント端末がＰ２Ｐ通信を行っている状態を示すイメージ図である。
【図１４】異なるプライベートネットワークに属するクライアント端末１，３がＰ２Ｐ方式で通信を試みる状態を示すイメージ図である。
【図１５】異なるプライベートネットワークに属するクライアントがサーバクライアント方式で通信を行っている状態を示すイメージ図である。
【図１６】既にＰ２Ｐ通信しているクライアント端末１，２へアクセス要求が為された状態を示すイメージ図である。
【発明を実施するための形態】
【００２７】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２８】
また、以下では、携帯電話１００を「通信端末」（または「クライアント端末」）の代表例として説明を行なう。ただし、通信端末は、パーソナルコンピュータ、電子ノート、ＰＮＤ（Personal  Navigation  Device）、ＰＤＡ（Personal  Data  Assistance）、カーナビゲーション装置（Satellite  navigation  system）などのような、他の情報通信機器であってもよい。
【００２９】
＜ネットワークシステム１の全体構成＞
まず、ネットワークシステム１の全体構成について説明する。図１は、本実施の形態に係るネットワークシステム１の全体構成を示す概略図である。図１を参照して、ネットワークシステム１は、携帯電話１００Ａ，１００Ｂ，１００Ｃと、マッチングサーバ３００と、インターネット５００と、第１のキャリア網７００Ａと、第２のキャリア網７００Ｂを含む。
【００３０】
なお、説明の容易化のために、以下では、本実施の形態に係るネットワークシステム１が、第１の携帯電話１００Ａと、第２の携帯電話１００Ｂと、第３の携帯電話１００Ｃとを含む場合について説明する。また、携帯電話１００Ａ，１００Ｂ，１００Ｃの各々に共通の構成や機能を説明する際には、それらを「携帯電話１００」とも総称する。
【００３１】
マッチングサーバ３００は、インターネット５００に接続可能に構成されている。第１の携帯電話１００Ａと第２の携帯電話１００Ｂとは、第１のキャリア網７００Ａに接続可能に構成されている。第３の携帯電話１００Ｃは、第２のキャリア網７００Ｂに接続可能に構成されている。
【００３２】
より詳細には、第１の携帯電話１００Ａおよび第２の携帯電話１００Ｂは、第１のキャリア網７００Ａを介して、インターネット５００に接続可能である。第３の携帯電話１００Ｃは、第２のキャリア網７００Ｂを介して、インターネット５００に接続可能である。このようにして、第１の携帯電話１００Ａ、第２の携帯電話１００Ｂ、および第３の携帯電話１００Ｃは、第１のキャリア網７００Ａ、第２のキャリア網７００Ｂ、およびインターネット５００を介して、互いにデータ通信が可能である。
【００３３】
より詳細には、携帯電話１００には、携帯電話１００を特定するための情報（たとえば、電話番号、メールアドレス、ＩＰ（Internet  Protocol）アドレスなど）が割り当てられる。すなわち、携帯電話１００は、内部の記録媒体に他の通信端末の電話番号を記憶することができ、当該電話番号に基づいてキャリア網７００Ａ，７００Ｂやインターネット５００などを介して当該他の通信端末とデータ通信を行なうことができる。
【００３４】
なお、携帯電話１００は、インターネット５００にアクセスする際に一時的に割り当てられるＩＰアドレスを利用して他の通信端末とデータ送受信を行ってもよい。本実施の形態に係る通信端末は、インターネット５００にアクセスした際に、マッチングサーバ３００あるいは他の図示しないサーバ装置などによってＩＰアドレスが割り当てられるものとする。ＩＰアドレスの割り当て処理の詳細は公知であるので、ここでは説明を繰り返さない。
【００３５】
＜ネットワークシステム１の動作概要＞
次に、本実施の形態に係るネットワークシステム１の動作概要について説明する。図２は、ネットワークシステム１における動作概要を示すシーケンス図である。以下では、ネットワークシステム１のうちの、第１の携帯電話１００Ａ、第２の携帯電話１００Ｂ、第３の携帯電話１００Ｃ、通知装置２００Ａ、通知装置２００Ｂ、マッチングサーバ３００との動作について説明する。なお、第１の携帯電話１００Ａおよび／あるいは第２の携帯電話１００Ｂが通知装置２００Ａの役割を果たしてもよい。同様に、第３の携帯電話１００Ｃが通知装置２００Ｂの役割を果たしてもよい。
【００３６】
図２（ａ）を参照して、第１の携帯電話１００Ａと第２の携帯電話１００ＢとがＰ２Ｐ通信中であるとする。
（１）通信キャリアＡの通知装置２００Ａは、定期的に、マッチングサーバ３００に、Ｐ２Ｐ方式からサーバクライアント方式への切り替えの要否を問合せる。
（２）マッチングサーバ３００は、通知装置２００Ａに、切り替えの要否を返答する。より詳細には、通知装置２００Ａは、通信キャリアＢの第３の携帯電話１００Ｃからの参加要求を待ち受ける。マッチングサーバ３００は、参加要求を受け付けていない場合は、通知装置２００Ａに切り替え不要である旨を伝える。
（３）通信キャリアＢの第３の携帯電話１００Ｃが、ユーザから、通信キャリアＡに属する第１の携帯電話１００Ａあるいは第２の携帯電話１００Ｂとの通信命令を受け付ける。第３の携帯電話１００Ｃは、マッチングサーバ３００へと参加要求を送信する。
（４）通信キャリアＡの通知装置２００Ａは、定期的に、マッチングサーバ３００に、Ｐ２Ｐ方式からサーバクライアント方式への切り替えの要否を問合せる。
（５）マッチングサーバ３００は、通知装置２００Ａに、切り替えの要否を返答する。より詳細には、通知装置２００Ａは、通信キャリアＢの第３の携帯電話１００Ｃからの参加要求を受け付けた場合は、通知装置２００Ａに切り替えが必要である旨（切り替え命令）を伝える。
【００３７】
図２（ｂ）を参照して、通知装置２００Ａは、サーバクライアント方式での通信へ切り替えるための命令を、通信キャリアＡに属する第１の携帯電話１００Ａおよび第２の携帯電話１００Ｂに送信する。
【００３８】
図２（ｃ）を参照して、通信キャリアＡに属する第１の携帯電話１００Ａおよび第２の携帯電話１００Ｂは、マッチングサーバ３００からの切り替え命令に基づいて、サーバクライアント方式の通信を開始する。すなわち、第１の携帯電話１００Ａ、第２の携帯電話１００Ｂ、第３の携帯電話１００Ｃは、サーバクライアント方式の通信を開始することができる。
【００３９】
以下、このような機能を実現するための構成について詳述する。
＜携帯電話１００のハードウェア構成＞
本実施の形態に係る通信端末の一例である携帯電話１００のハードウェア構成について説明する。図３は、本実施の形態に係る携帯電話１００のハードウェア構成を示すブロック図である。
【００４０】
図３を参照して、本実施の形態に係る携帯電話１００は、ＣＰＵ（Central  Processing  Unit）１１０と、メモリ１２０と、ディスプレイ１３０と、入力デバイス１４０と、メモリインターフェイス１６０と、通信インターフェイス１７０とを含む。
【００４１】
メモリ１２０は、ＣＰＵ１１０によって実行されるプログラムや、ＣＰＵ１１０が生成したデータや、各種のデータベースを格納する。
【００４２】
なお、メモリ１２０は、各種のＲＡＭ（Random  Access  Memory）や、ＲＯＭ（Read-Only  Memory）や、ハードディスクなどによって実現される。たとえば、メモリ１２０は、読取用のインターフェイスを介して利用される、ＵＳＢ（Universal  Serial  Bus）メモリ、ＣＤ−ＲＯＭ（Compact  Disc  -  Read  Only  Memory）、ＤＶＤ−ＲＯＭ（Digital  Versatile  Disk  -  Read  Only  Memory）、ＵＳＢ（Universal  Serial  Bus）メモリ、メモリカード、ＦＤ（Flexible  Disk）、ハードディスク、磁気テープ、カセットテープ、ＭＯ（Magnetic  Optical  Disc）、ＭＤ（Mini  Disc）、ＩＣ（Integrated  Circuit）カード（メモリカードを除く）、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）などの、不揮発的にプログラムを格納する媒体などによっても実現される。
【００４３】
ディスプレイ１３０は、ＣＰＵ１１０からデータに基づいて、画像やテキストを表示する。
【００４４】
入力デバイス１４０は、ボタンあるいはタブレットなどによって実現される。入力デバイス１４０は、ユーザからの命令を受け付けて、ＣＰＵ１１０に入力する。
【００４５】
本実施の形態に係る携帯電話１００は、ディスプレイ１３０の上側（表側）に、入力デバイス１４０としてのペンタブレットが敷設されている。すなわち、本実施の形態においては、ディスプレイ１３０とペンタブレットとが、タッチパネル１５０を構成する。これによって、ユーザは、スタイラスペン１９０などを用いることによって、ペンタブレットを介して手書き図形などをＣＰＵ１１０に入力することができる。
【００４６】
メモリインターフェイス１６０は、着脱可能な（接続可能な）外部の記録媒体１６１からデータを読み出すことによってＣＰＵ１１０に当該データを入力したり、ＣＰＵ１１０からのデータを当該記録媒体１６１に格納したりする。
【００４７】
なお、記録媒体１６１としては、ＣＤ-ＲＯＭ（Compact  Disc  -  Read  Only  Memory）、ＤＶＤ-ＲＯＭ（Digital  Versatile  Disk  -  Read  Only  Memory）、ＵＳＢ（Universal  Serial  Bus）メモリ、メモリカード、ＦＤ（Flexible  Disk）、ハードディスク、磁気テープ、カセットテープ、ＭＯ（Magnetic  Optical  Disc）、ＭＤ（Mini  Disc）、ＩＣ（Integrated  Circuit）カード（メモリカードを除く）、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）などの、不揮発的にプログラムを格納する媒体が挙げられる。
【００４８】
通信インターフェイス１７０は、たとえばアンテナや信号処理回路などを含む。通信インターフェイス１７０は、キャリア網７００Ａ，７００Ｂおよびインターネット５００を介して他の通信端末との間でデータ通信を行なう。
【００４９】
ＣＰＵ１１０は、携帯電話１００の各部を制御する。たとえば、ＣＰＵ１１０は、入力デバイス１４０を介してユーザから各種の命令を受け付けて、通信インターフェイス１７０介して外部の通信端末とデータの送受信を行なう。後述するように、ＣＰＵ１１０は、外部からダウンロードした、あるいは予めメモリ１２０に格納されたプログラムに基づいて、後述するシーケンスを実行する。
【００５０】
なお、通知装置２００も、携帯電話１００と同様に、ＣＰＵ２１０、メモリ２２０、ディスプレイ２３０、入力デバイス２４０、メモリインターフェイス２６０、通信インターフェイス２７０を有している。それらの機能は、携帯電話１００のそれと同様であるため、ここでは説明を繰り返さない。
【００５１】
また、マッチングサーバ３００も、携帯電話１００と同様に、ＣＰＵ３１０、メモリ３２０、ディスプレイ３３０、入力デバイス３４０、メモリインターフェイス３６０、通信インターフェイス３７０を有している。それらの機能は、携帯電話１００のそれと同様であるため、ここでは説明を繰り返さない。
【００５２】
＜携帯電話１００と通知装置２００とマッチングサーバ３００が有する機能＞
本実施の形態においては、マッチングサーバ３００は、ＨＴＴＰサーバとして、ＨＴＴＰプロトコルに基づいて、クライアント端末としての複数の携帯電話１００間でデータの送受信を媒介する。一般に、ＨＴＴＰサーバは、ＨＴＭＬ文書や画像などのコンテンツを蓄積し、Ｗｅｂブラウザを搭載したクライアント端末からの要求に応じて、ネットワークを通じて当該コンテンツをクライアント端末へ送信する。ＨＴＴＰサーバは、Ｊａｖａ（登録商標）サーブレットやＪＳＰなどを用いて、クライアント端末からの要求に対して動的にページ生成して応答する機能を有している。これによって、携帯電話１００が、ＨＴＴＰサーバが提供する機能を利用できる。
【００５３】
具体的には、携帯電話１００は、たとえば、以下のようなフォーマットに従って、マッチングサーバ３００が提供する機能を呼び出すことができる。
http://サーバURL?cmd=機能名&param1=パラメータ１&param2=パラメータ２＆…&paramN=パラメータN
一方、マッチングサーバ３００は、たとえば、以下のようなフォーマットに従って、携帯電話１００に返答することができる。
status=結果&result1=パラメータ１&result2=パラメータ２＆…&result=パラメータN
そして、マッチングサーバ３００は、少なくとも以下の機能を携帯電話１００または通知装置２００に提供する。
１）検索（チャット相手をさがす）
２）ルーム作成（通信中のチャットがない場合に、あらたにチャットをおこす）
３）通信への参加要求（通信中のチャットに参加する）
４）通信方式の切り替え問合せ
５）通信方式の切り替え要求
より詳細には、上記４）は、通知装置２００Ａが属するネットワーク内で通信中の携帯電話１００の複数のグループのうち、通信方式を切り替える必要のあるグループに属する携帯電話１００または通信方式を切り換えることが可能なグループに属する携帯電話１００を、マッチングサーバ３００に問合せるための機能である。要求およびレスポンスのフォーマットは、例えば、以下のように規定される。
要求：
cmd=querySwitch
レスポンス（該当するクライアントが存在しない場合）:
status=0&pairs=none
レスポンス（該当するクライアントが存在する場合）:
status=0&pairs=Ｐ２ＰtoSC:roomid1:ipadr10:ipadr11&pairs=roomid2:ipadr20:ipadr21:ipadr22
ここで、「roomid1:ipadr10:ipadr11」は、Ｐ２Ｐ通信中の携帯電話１００のうちそのＩＰアドレスがipadr10とipadr11である携帯電話１００をサーバクライアント方式に切り替える必要があるということ、その際にマッチングサーバ３００が作成したroomid1で特定されるルームで通信を行うことを指示する。また、ipadrxxは、IPv4であれば、192.168.1.10などのＩＰアドレスを表し、roomidxは、1,2,3などの識別番号を表しているものとする。
【００５４】
上記５）は、通信を行ってる携帯電話１００のグループに対して、通信方式を切り替えるように要求する機能であって、要求およびレスポンスのフォーマットは、例えば、以下のように規定される。
要求：
cmd=requestSC&roomid=x&ipadr=ipadr30
レスポンス：
status=0&roomid=y
ここで、「requestSC&roomid=x&ipadr=ipadr30」は、roomid=xで特定されるルームで通信を行っている携帯電話１００をサーバクライアント方式に切り替える要求であって、その要求元が、ＩＰアドレスがipadr30である携帯電話１００であることを意味する。そして、「roomid=y」は、roodid=yで特定されるルームに属する携帯電話１００がサーバクライアント方式による通信を行うことを指示する。
【００５５】
通知装置２００は、各通信キャリアの網の中に少なくともひとつ存在して、以下の機能を有する。
６）通知装置２００は、通信方式を変更する必要のある携帯電話１００または通信方式を変更可能な携帯電話１００が存在するかを確認する。
７）６）において通信方式を変更する必要のある携帯電話１００または通信方式を変更可能な携帯電話１００が存在する場合、このような条件を満たす携帯電話１００に対して通信方式の切り替え指示を行う。
【００５６】
より詳細には、通知装置２００は、上記６）すなわち上記４）において、マッチングサーバ３００に上記４）のquerySwitchを送信する。通知装置２００は、マッチングサーバ３００からのレスポンスを構文解析することによって、条件を満たす携帯電話１００の有無の確認を行う。
【００５７】
通知装置２００は、上記７）において、上記４）のquerySwitchのレスポンスに応じて、当該携帯電話１００に対して通信方式の切り替えを指示する。たとえば、通知装置２００は、携帯電話１００がＰ２Ｐ通信に使用しているポートに対して、例えば、下記のフォーマットに従って当該携帯電話１００に指示する。
switch=Ｐ２ＰtoSC&roomid=z&master=true
なお、switch=Ｐ２ＰtoSCは、Ｐ２Ｐ方式からサーバクライアント方式へ切り替えることを指示するためのものである。roomid=zは、zで特定されるルームで通信を行うことを指示するためのものである。master=trueは、クライアント側が蓄積している通信データをサーバに送信することを指示するためのものである。switch=Ｐ２ＰtoSCおよびroomid=zは対象となる携帯電話１００の全てに送信される。master=trueは、対象となる携帯電話１００のうちの一つに対して指示される。
【００５８】
携帯電話１００は、Ｐ２Ｐ方式、サーバクライアント方式のいずれの通信方式でも他の通信端末と通信を行う機能を有する。そして、以下の機能を有する。
８）携帯電話１００は、通知装置２００からの指示を受け付けて、通信方式を切り替える。
９）携帯電話１００は、通知装置２００からの指示を受け付けて、蓄積した通信データをマッチングサーバ３００に送信する。
【００５９】
携帯電話１００は、上記８）において、通知装置２００からの上記７）の指示のうち、switch=Ｐ２ＰtoSC&roomid=zに基づいて通信方式を切り替える。携帯電話１００は、指定のルームで通信を継続する。
【００６０】
携帯電話１００は、上記９）において、通知装置２００からの上記７）の指示のうち、master=trueに基づいて携帯電話１００内に蓄積した通信データ、あるいは、当該通信データを他の形式に変換したものをマッチングサーバ３００へと送信する。これにより、新たに通信に参加する携帯電話１００が、他のクライアントと同じ状態で通信に参加することが可能となる。
【００６１】
より詳細には、マッチングサーバ３００は、携帯電話１００から上記３）の参加要求を受けたとき、以下の機能を実現する。
１０）マッチングサーバ３００は、携帯電話１００から上記３）の参加要求を受けたとき、それ以降の通知装置２００の上記４）の問合せに対するレスポンスとして、Ｐ２Ｐ通信中の携帯電話１００の通信方法をＰ２Ｐ方式からサーバクライアント方式に変更するか否かを判断する。たとえば、マッチングサーバ３００は、上記１０）として、新たに参加要求してきた携帯電話１００とすでにＰ２Ｐ方式で通信中の携帯電話１００とが同一通信キャリア網に属するかを判断する。そして、新たに通信に参加要求する携帯電話１００が、Ｐ２Ｐ通信中の携帯電話１００の通信キャリア網と異なる通信キャリア網に属する場合には、Ｐ２Ｐ通信中の携帯電話１００の通信方式をサーバクライアント方式へと切り替える。それ以外の場合には、マッチングサーバ３００は、携帯電話１００にＰ２Ｐ方式での通信を継続させる。
【００６２】
なお、各通信キャリアに割り当てられたＩＰアドレス帯域は一般に公開されており、マッチングサーバ３００は、携帯電話１００のＩＰアドレスを当該帯域とを比較することによって、携帯電話１００がどの通信キャリア網に属するかを識別することができることが好ましい。
【００６３】
以上、携帯電話１００からの参加要求を受けた場合に、関連する携帯電話１００の通信方式をＰ２Ｐ方式からサーバクライアント方式に切り替える手段について説明した。同様に、携帯電話１００から退室要求を受けた場合（携帯電話１００が退室した後）、関連する携帯電話１００の通信方式をサーバクライアント方式からＰ２Ｐ方式に切り替えることも可能である。この場合、携帯電話１００と通知装置２００とマッチングサーバ３００は、上述の機能１）〜１０）に加えて、以下の機能を有することが好ましい。
【００６４】
まず、通知装置２００は、上述の６）および７）の機能に加えて、以下の機能を有する。
１１）通知装置２００は、通知装置２００が属する通信キャリア網に、所定の携帯電話１００が存在するかを確認する。
【００６５】
通知装置２００は、上記１１）において、通知装置２００が属する通信キャリア網に、上記４）の問合せに対するレスポンスによって指定される携帯電話１００が存在するか否か確認する。より詳細には、通知装置２００は、当該携帯電話１００に対して、例えば、下記のフォーマットに従って問合せを行う。
inquiry=SC&roomid=x
通知装置２００は、この問合せに対する携帯電話１００からの応答に基づいて当該携帯電話１００の存在を確認する。
【００６６】
次に、携帯電話１００は、上述の８）および９）に加えて、以下の機能を有する。
１２）携帯電話１００は、通知装置２００からの上記１１）の問合せに応答する。
【００６７】
携帯電話１００は、上記１２）において、通知装置２００からの上記１１）の問合せに応じて、自身が指定された条件に該当するかを判断することによって通知装置２００に返答する。
【００６８】
そして、マッチングサーバ３００は、以下の機能を有する。
１３）マッチングサーバ３００は、携帯電話１００からの退室要求を受信した場合、当該携帯電話１００と通信中の他の携帯電話の通信方式を、サーバクライアント方式からＰ２Ｐ方式に切り替えることが可能か否かを判断する。マッチングサーバ３００は、判定結果に基づいて、それ以降に通知装置２００から呼び出される上記４）の問合せに対するレスポンスとして切り替え命令あるいは切り替え不要命令を送信する。
【００６９】
マッチングサーバ３００は、上記１３）において、退室要求した携帯電話１００が退室した後、当該ルームに残ってサーバクライアント方式で通信を継続している携帯電話１００が全て、同一の通信キャリアに属するか否かを判断する。マッチングサーバ３００は、残った携帯電話１００が全て同一通信キャリア網に属する場合には、通信方式をＰ２Ｐ方式に切り替えることが可能と判断し、残った携帯電話１００が全て同じ通信キャリア網に属するわけではない場合はＰ２Ｐ方式への切り替えは不可と判断する。
【００７０】
＜ネットワークシステム１における第１の通信処理＞
次に、本実施の形態に係るネットワークシステム１における第１の通信処理について説明する。ここでは、第１の通信キャリア網７００Ａに属する第１の携帯電話１００Ａと第２の携帯電話１００Ｂと第３の携帯電話１００ＣとがＰ２Ｐ通信する場合について説明する。図４は、本実施の形態に係るネットワークシステム１における第１の通信処理を示すシーケンス図である。
【００７１】
なお、以下では、携帯電話１００による送受信処理は、携帯電話１００のＣＰＵ１１０が、通信インターフェイス１７０を利用することによって実現される。通知装置２００による送受信処理は、通知装置２００のＣＰＵ２１０が、通信インターフェイス２７０を利用することによって実現される。マッチングサーバ３００による送受信処理は、マッチングサーバ３００のＣＰＵ３１０が、通信インターフェイス３７０を利用することによって実現される。
【００７２】
図４を参照して、Ｓ１０２において、通知装置２００は、自身が属する通信キャリア網７００Ａ内に、通信方式の切り替えが必要な携帯電話１００が存在するかを、マッチングサーバ３００に対して問合せる。この問合せは、サーバと携帯電話１００の間、携帯電話１００と携帯電話１００との間の通信とは非同期に、定期的に行われる（Ｓ１１４，Ｓ１２６）。該当する携帯電話１００が存在しない場合、マッチングサーバ３００は、該当する携帯電話１００が存在しない旨のメッセージを通知装置２００に送信する（pairs=none）。
【００７３】
ステップＳ１０４において、第１の携帯電話１００Ａは、他の携帯電話１００との通信を開始するために、第１の携帯電話１００ＡのＩＰアドレスを引数（IP=ipadr1）として、通信用のルームの作成をマッチングサーバ３００に要求する。この要求に対して、マッチングサーバ３００は以下の処理を行う。
【００７４】
マッチングサーバ３００のＣＰＵ３１０は、Ｐ２Ｐ方式で通信を行うためのルームを作成する。ＣＰＵ３１０は、同ルームに一意に識別可能な識別子（roomid=x）を付与する。ＣＰＵ３１０は、同要求の送信元のグローバルＩＰアドレス（gipadr1）を取得する。ＣＰＵ３１０は、ipadr1およびgipadr1をroomid=xに関連付けてメモリ３２０に格納する。ＣＰＵ３１０は、通信インターフェイス３７０を介して、携帯電話１００へルームの識別子（roomid=x）を通知する。なお、ＨＴＴＰ通信においては、要求送信元のグローバルＩＰアドレスを、環境変数REMOTE_HOSTに基づいて知ることができる。
【００７５】
ステップＳ１０６において、第２の携帯電話１００Ｂは、ユーザによって指定された通信相手に関連する情報に基づいて、マッチングサーバ３００にルームの検索要求をする。マッチングサーバ３００は、検索条件に該当するルームの識別子として、roomid=xを返す。
【００７６】
ステップＳ１０８において、第２の携帯電話１００Ｂは、roomid=xによって特定されるルームに接続するために、自身のＩＰアドレス（IP=ipadr2）とルームの識別子（roomid=x）を引数として、マッチングサーバ３００に参加要求する。この要求に応じて、マッチングサーバ３００は以下の処理を行う。
【００７７】
マッチングサーバ３００のＣＰＵ３１０は、当該要求の送信元のグローバルＩＰアドレス（gipadr2）を取得する。ＣＰＵ３１０は、通信方式の切り替えが必要か否かを判断する。たとえば、ＣＰＵ３１０は、サーバクライアント方式への切り替えが不要と判断する。ＣＰＵ３１０は、roomid=xで特定されるルームに関連つけられているＩＰアドレスipadr1を、レスポンスとして第２の携帯電話１００Ｂに送信する。ＣＰＵ３１０は、メモリ３２０に、ipadr2およびgipadr2を、roomid=xで特定されるルームに関連付けて格納する。
【００７８】
ステップＳ１１０においては、第２の携帯電話１００Ｂは、自身のＩＰアドレス（ipadr2）を引数として、ＩＰアドレスipadr1で特定される第１の携帯電話１００Ａに対して、接続要求（参加要求）を行う。第１の携帯電話１００Ａは、接続許可メッセージを第２の携帯電話１００Ｂに送信する。
【００７９】
ステップＳ１１２において、第１の携帯電話１００Ａと第２の携帯電話１００Ｂは互いのＩＰアドレスを交換済みのため、マッチングサーバ３００を介さず、Ｐ２Ｐ方式で通信を行うことが可能となる。
【００８０】
ステップＳ１１４において、ステップＳ１０２と同様に、マッチングサーバ３００は通知装置２００からの問合せに応じて、レスポンスpairs=noneを返す。
【００８１】
ステップＳ１１６において、第３の携帯電話１００Ｃは、ユーザによって指定された通信相手に関連する情報に基づいて、マッチングサーバ３００にルームの検索要求をする。マッチングサーバ３００は、検索条件に該当するルームの識別子として、roomid=xを返す。
【００８２】
ステップＳ１１８において、第３の携帯電話１００Ｃは、roomid=xで特定されるルームに接続するために、自身のＩＰアドレス（IP=ipadr3）とルームの識別子（roomid=x）を引数として、マッチングサーバ３００に参加要求する。この要求に応じて、マッチングサーバ３００は以下の処理を行う。
【００８３】
マッチングサーバ３００のＣＰＵ３１０は、当該要求の送信元のグローバルＩＰアドレス（gipadr3）を取得する。ＣＰＵ３１０は、通信方式の切り替えが必要か否かを判断する。たとえば、ＣＰＵ３１０は、サーバクライアント方式への切り替え不要と判断する。ＣＰＵ３１０は、roomid=xで特定されるルームに関連つけられているＩＰアドレスipadr1とipadr2を、レスポンスとして第３の携帯電話１００Ｃへと送信する。ＣＰＵ３１０は、メモリ３２０に、ipadr3およびgipadr3を、roomid=xで特定されるルームに関連付けて格納する。
【００８４】
ステップＳ１２０およびステップＳ１２２において、第３の携帯電話１００Ｃは、自身のＩＰアドレス（ipadr3）を引数として、ＩＰアドレスipadr1で特定される第１の携帯電話１００Ａ、およびＩＰアドレスipadr2で特定される第２の携帯電話１００Ｂに対して、接続要求を行う。第１の携帯電話１００Ａおよび第２の携帯電話１００Ｂは、接続許可メッセージを第３の携帯電話１００Ｃに送信する。
【００８５】
ステップＳ１２４において、第１の携帯電話１００Ａ、第２の携帯電話１００Ｂ、第３の携帯電話１００Ｃは互いのＩＰアドレスを交換済みのため、マッチングサーバ３００を介さず、Ｐ２Ｐ方式で通信を行うことが可能となる。
【００８６】
ステップＳ１２６において、ステップＳ１０２と同様に、マッチングサーバ３００は通知装置２００からの問合せに対して、レスポンスpairs=noneを通知装置２００に送信する。
【００８７】
＜ネットワークシステム１における第２の通信処理＞
次に、本実施の形態に係るネットワークシステム１における第２の通信処理について説明する。ここでは、第１の通信キャリア網７００Ａに属する第１の携帯電話１００Ａと第２の携帯電話１００ＢとがＰ２Ｐ通信をしている最中に、第２の通信キャリア網７００Ｂに属する第３の携帯電話１００Ｃが第１の携帯電話１００Ａまたは第２の携帯電話１００Ｂとの通信を要求してきた場合について説明する。図５は、本実施の形態に係るネットワークシステム１における第２の通信処理を示すシーケンス図である。
【００８８】
図５を参照して、ステップＳ２０２からステップＳ２１２までの処理は、それぞれ、第１の通信処理（図４）におけるステップＳ１０２からステップＳ１１２までの処理と同様であるため、ここでは説明を繰り返さない。上述したように、ステップＳ２１２において、第１のキャリア網７００Ａに属する第１の携帯電話１００Ａと第２の携帯電話１００ＢとがＰ２Ｐ通信を行っている。
【００８９】
ステップＳ２１４において、第３の携帯電話１００Ｃは、ユーザによって指定された通信相手に関連する情報に基づいて、マッチングサーバ３００にルームの検索要求をする。これに対して、マッチングサーバ３００は、検索条件に該当するルームの識別子として、第３の携帯電話１００Ｃにroomid=xを返信する。
【００９０】
ステップＳ２１６において、第３の携帯電話１００Ｃは、roomid=xで特定されるルームに接続するために、自身のＩＰアドレス（IP=ipadr3）とルームの識別子（roomid=x）を引数として、マッチングサーバ３００に通信への参加を要求する。この要求に対して、マッチングサーバ３００は以下の処理を行う。
【００９１】
マッチングサーバ３００のＣＰＵ３１０は、当該要求の送信元のグローバルＩＰアドレス（gipadr3）を取得する。ＣＰＵ３１０は、通信方式の切り替えが必要か否かを判断する。たとえば、ＣＰＵ３１０は、サーバクライアント方式への切り替えが必要と判断する。ＣＰＵ３１０は、サーバクライアント方式で通信するためのルームを作成し、同ルームを一意に識別可能な識別子（roomid=y）を付与する。ＣＰＵ３１０は、ＩＰアドレスipadr3と、roomid=xで特定されるルームに関連つけられているＩＰアドレスipadr1およびgipadr1とipadr2およびgipadr2とを、roomid=yに関連付けてメモリ３２０に記憶する。ＣＰＵ３１０は、通信インターフェイス３７０を介して、roomid=yをレスポンスとして第３の携帯電話１００Ｃに通知する。
【００９２】
ステップＳ２１８において、通知装置２００は、自身が属する第１の通信キャリア網７００Ａ内に、通信方式の切り替えが必要な携帯電話１００が存在するかを、マッチングサーバ３００に対して問合せる。ここでは、通信方式の切り替えが必要な携帯電話１００が存在するため、マッチングサーバ３００は、レスポンスとして、第１の携帯電話１００Ａを示すipadr1と第２の携帯電話１００Ｂを示すipadr2とを、通知装置２００に送信する（pairs=Ｐ２ＰtoSC:y:ipadr1:ipadr2）。
【００９３】
ステップＳ２２０において、通知装置２００は、第１の携帯電話１００Ａ（ＩＰアドレス=ipadr1）に、通信方式をサーバクライアント方式に切り替えるための命令（switch=Ｐ２ＰtoSC）と、マッチングサーバ３００のroomid=yにアクセスするための命令と、第１の携帯電話１００Ａが蓄積している通信データをマッチングサーバ３００に送信するための命令（master=true）とを送信する。
【００９４】
ステップＳ２２２において、第１の携帯電話１００Ａは、蓄積している通信データをマッチングサーバ３００に送信する。
【００９５】
ステップＳ２２４において、通知装置２００は、第２の携帯電話１００Ｂ（ＩＰアドレス=ipadr2）に、通信方式をサーバクライアント方式に切り替えるための命令（switch=Ｐ２ＰtoSC）と、マッチングサーバ３００のroomid=yにアクセスするための命令とを送信する。
【００９６】
ステップＳ２２６において、第１の携帯電話１００Ａと第２の携帯電話１００Ｂと第３の携帯電話１００Ｃとはサーバクライアント方式で通信することが可能となる。
【００９７】
ステップＳ２２８において、通知装置２００は、自身が属する第１の通信キャリア網７００Ａ内に通信方式の切り替えが必要な携帯電話１００が存在するかを、マッチングサーバ３００に問合せる。ここでは、該当する携帯電話１００が存在しないため、レスポンスとして通知装置２００にpairs=noneを送信する。
【００９８】
＜ネットワークシステム１における第３の通信処理＞
次に、本実施の形態に係るネットワークシステム１における第３の通信処理について説明する。ここでは、第２のプライベートネットワーク７００Ｙに属する第２の携帯電話１００Ｂと、第１のプライベートネットワーク７００Ｘに属する第１の携帯電話１００Ａとが、プロキシサーバ４００を介してマッチングサーバ３００に接続される場合について説明する。図６は、本実施の形態に係るネットワークシステム１における第３の通信処理を示すシーケンス図である。
【００９９】
図６を参照して、ステップＳ３０２において、通知装置２００は、自身が属する第１のプライベートネットワーク７００Ｘ内に通信方式の切り替えが必要な携帯電話１００が存在するかについてマッチングサーバ３００に問合せる。この問合せは、マッチングサーバ３００と携帯電話１００との間、携帯電話１００と携帯電話１００との間の通信とは非同期に、定期的に行われる（ステップＳ３１４、ステップＳ３２０）。マッチングサーバ３００は、該当する携帯電話１００が存在しないため、当該する携帯電話１００が存在しない旨のレスポンスを返す（pairs=none）。
【０１００】
ステップＳ３０４において、第１の携帯電話１００Ａは、他の携帯電話１００と通信を開始するために、第１の携帯電話１００ＡのＩＰアドレスを引数（IP=ipadr1）として、通信用のルームの作成をマッチングサーバ３００に要求する。この要求に対して、マッチングサーバ３００は以下の処理を行う。
【０１０１】
マッチングサーバ３００のＣＰＵ３１０は、Ｐ２Ｐ方式で通信するためのルームを作成する、すなわち同ルームを一意に識別可能な識別子（roomid=x）を生成する。ＣＰＵ３１０は、当該要求の送信元のグローバルＩＰアドレスを取得する。この際、第１の通信処理（図４）の場合と異なり、第１の携帯電話１００Ａと第２の携帯電話１００Ｂと通知装置２００とはプロキシサーバ４００を介してマッチングサーバ３００へのアクセスするため、マッチングサーバ３００は、第１の携帯電話１００ＡのグローバルＩＰアドレス（ipadr1）ではなく、プロキシサーバ４００のグローバルＩＰアドレス（gipadrp）を取得することになる。
【０１０２】
ＣＰＵ３１０は、ipadr1およびgipadrpをroomid=xに関連付けて記憶する。ＣＰＵ３１０は、通信インターフェイス３７０を介して、第１の携帯電話１００Ａへのレスポンスとして、ルームの識別子（roomid=x）を通知する。なお、ＨＴＴＰ通信においては、要求送信元のグローバルＩＰアドレスは、環境変数REMOTE_HOSTに基づいて取得することができる。
【０１０３】
ステップＳ３０６において、第２の携帯電話１００Ｂは、ユーザによって指定された通信相手に関連する情報に基づいて、マッチングサーバ３００にルームの検索要求をする。これに対して、マッチングサーバ３００、検索条件に該当するルームの識別子として、roomid=xを第２の携帯電話１００Ｂに送信する。
【０１０４】
ステップＳ３０８において、第２の携帯電話１００Ｂは、roomid=xで特定されるルームに接続するために、自身のＩＰアドレス（IP=ipadr2）とルームの識別子（roomid=x）を引数として、マッチングサーバ３００に第１の携帯電話１００Ａとの通信を要求する。この要求に対して、マッチングサーバ３００は以下の処理を行う。
【０１０５】
マッチングサーバ３００のＣＰＵ３１０は、当該要求の送信元のグローバルＩＰアドレスを取得する。この際、ステップＳ３０４と同様に、ＣＰＵ３１０は、プロキシサーバ４００のグローバルＩＰアドレスgipadrpを取得することになる。ＣＰＵ３１０は、通信方式の切り替えが必要か否かを判断する。例えば、ＣＰＵ３１０は、サーバクライアント方式への切り替え不要と判断する。ＣＰＵ３１０は、通信インターフェイス３７０を介して、roomid=xで特定されるルームに関連付けられているＩＰアドレスipadr1を、レスポンスとして第２の携帯電話１００Ｂに通知する。ＣＰＵ３１０は、ipadr2およびgipadrpをroomid=xで特定されるルームに関連付けてメモリ３２０に記憶する。
【０１０６】
ステップＳ３１０において、第２の携帯電話１００Ｂは、自身のＩＰアドレス（ipadr2）を引数として、ＩＰアドレスipadr1で特定される第１の携帯電話１００Ａに対して、接続要求を行う。しかしながら、この場合、ＩＰアドレスapadr1とipadr2とは、異なるプライベートネットワークに属するプライベートＩＰアドレスであるため、第１の携帯電話１００Ａと第２の携帯電話１００Ｂとは直接通信することができない。
【０１０７】
本実施の形態においては、ステップＳ３１２において、第２の携帯電話１００Ｂが、ルームの識別子（roomid=x）と自身のＩＰアドレス（IP=ipadr2）とを引数として、マッチングサーバ３００に通信方式の切り替えを要求する。この要求に対して、マッチングサーバ３００は以下の処理を行う。
【０１０８】
マッチングサーバ３００のＣＰＵ３１０は、当該要求の送信元のグローバルＩＰアドレスを取得する。この際、ステップＳ３０４と同様に、ＣＰＵ３１０は、プロキシサーバ４００のグローバルＩＰアドレスgipadrpを取得することになる。ＣＰＵ３１０は、サーバクライアント方式で通信するためのルームを作成し、同ルームを一意に識別可能な識別子（roomid=y）を生成する。ＣＰＵ３１０は、ＩＰアドレスipadr2およびgipadrpと、roomid=xで特定されるルームに関連つけられているＩＰアドレスipadr1およびgipadrpとを、roomid=yに関連付けてメモリ３２０に記憶する。ＣＰＵ３１０は、通信インターフェイス３７０を介して、roomid=yをレスポンスとして第３の携帯電話１００Ｃに送信する。
【０１０９】
ステップＳ３１４において、通知装置２００は、自身が属する第１のプライベートネットワーク７００Ｘ内に、通信方式の切り替えが必要な携帯電話１００が存在するかマッチングサーバ３００に問合せる。ここでは、通信方式の切り替えが必要な第１の携帯電話１００Ａが存在するため、マッチングサーバ３００は、レスポンスとしてipadr1を返す（pairs=P2PtoSC:y:ipadr1）。
【０１１０】
ステップＳ３１６において、通知装置２００は、第１の携帯電話１００Ａ（ＩＰアドレス=ipadr1）に、通信方式をサーバクライアント方式に切り替えるための命令（switch=Ｐ２ＰtoSC）と、マッチングサーバ３００のroomid=yにアクセスするための命令とを、第１の携帯電話１００Ａに送信する。
【０１１１】
ステップＳ３１８において、第１の携帯電話１００Ａと第２の携帯電話１００Ｂとはサーバクライアント方式で通信することが可能となる。
【０１１２】
ステップＳ３２０において、通知装置２００は、自身が属する第１のプライベートネットワーク７００Ｘ内に、通信方式の切り替えが必要なクライアントが存在するかを、サーバに対して問合せを行う。マッチングサーバ３００は、該当する携帯電話１００が存在しないため、通知装置２００にレスポンスpairs=noneを送信する。
【０１１３】
＜ネットワークシステム１における第４の通信処理＞
次に、本実施の形態に係るネットワークシステム１における第４の通信処理について説明する。ここでは、第１の通信キャリア網７００Ａに属する第１の携帯電話１００Ａと第２の携帯電話１００Ｂと、第２の通信キャリア網７００Ｂに属する第３の携帯電話１００Ｃとのサーバクライアント通信から、第３の携帯電話１００Ｃが抜ける場合について説明する。より詳細には、ここでは、クライアント（第１の携帯電話１００Ａ、第２の携帯電話１００Ｂ、第３の携帯電話１００Ｃ）のＩＰアドレスが通信キャリアから割り当てられる場合について説明する。図７は、本実施の形態に係るネットワークシステム１における第４の通信処理を示すシーケンス図である。
【０１１４】
図７を参照して、ステップＳ４０２において、第１の通信キャリア網７００Ａに属する第１の携帯電話１００Ａと第２の携帯電話１００Ｂと、第２の通信キャリア網７００Ｂに属する第３の携帯電話１００Ｃとが、サーバクライアント方式で通信を行っている。
【０１１５】
ステップＳ４０４において、通知装置２００は、第１の通信キャリア網７００Ａ内に、通信方式の切り替えが必要、もしくは通信方式の切り替えが可能な携帯電話１００が存在するかマッチングサーバ３００に対して問合せる。この問合せは、マッチングサーバ３００と携帯電話１００との間、携帯電話１００と携帯電話１００との間の通信とは非同期に、定期的に行われる（ステップＳ４１０，ステップＳ４２０）。ここでは、該当する携帯電話１００が存在しないため、マッチングサーバ３００は、該当する携帯電話１００が存在しない旨のレスポンスを通知装置２００に返す（pairs=none）。
【０１１６】
ステップＳ４０６においては、第３の携帯電話１００Ｃは、通信中のルームから退室するために、第３の携帯電話１００ＣのＩＰアドレス（IP=ipadr3）と同ルームの識別子（roomid=x）を引数として、マッチングサーバ３００に退室を要求する。この要求に対して、マッチングサーバ３００は以下の処理を行う。
【０１１７】
マッチングサーバ３００のＣＰＵ３１０は、当該要求の送信元のグローバルＩＰアドレス（gipadr3）を取得する。ＣＰＵ３１０は、roomid=xに関連付けて記憶しているipadr3およびgipadr3をメモリ３２０から削除する。ＣＰＵ３１０は、第３の携帯電話１００Ｃの退室後、残った第１の携帯電話１００Ａと第２の携帯電話１００Ｂとの通信方式を切り換えることが可能か否かを判断する（図１１を参照）。ここでは、ＣＰＵ３１０は、Ｐ２Ｐ方式に切り換え可能と判断する。ＣＰＵ３１０は、Ｐ２Ｐ方式で通信を行うためのルームを作成し、同ルームを一意に識別可能な識別子（roomid=y）を生成する。
【０１１８】
ステップＳ４０８において、第３の携帯電話１００Ｃの退室により、第１の携帯電話１００Ａと第２の携帯電話１００Ｂとの間で、サーバクライアント方式による通信が継続される。
【０１１９】
ステップＳ４１０において、通知装置２００は、第１の通信キャリア網７００Ａ内に通信方式の切り替えが必要、もしくは通信方式の切り替えが可能な携帯電話１００が存在するかマッチングサーバ３００に問合せる。ここでは、通信方式をサーバクライアント方式からＰ２Ｐ方式に切り換えることが可能な第１の携帯電話１００Ａと第２の携帯電話１００Ｂとが存在するため、第１の携帯電話１００Ａと第２の携帯電話１００Ｂと使用するルームの識別子とをレスポンスとして通知する（pairs=SCtoＰ２Ｐ:y:ipadr1:ipadr2）。
【０１２０】
ステップＳ４１２において、通知装置２００は、第２の携帯電話１００Ｂ（ipadr2）に対して、通信方式をサーバクライアント方式からＰ２Ｐ方式に切り換えるための命令（switch=SCtoＰ２Ｐ）と、Ｐ２Ｐ方式の通信で使用するルームの識別子がyであること（roomid=y）と、通信相手のＩＰアドレスがipadr1であること（ipadr=ipadr1）と、Ｐ２Ｐ通信開始時に携帯電話１００間でデータの同期を取る際にデータの送信元になるための命令（master=true）とを送信する。
【０１２１】
ステップＳ４１４において、通知装置２００は、第１の携帯電話１００Ａ（ipadr1）に対して、通信方式をサーバクライアント方式からＰ２Ｐ方式に切り換えるための命令（switch=SCtoＰ２Ｐ）と、Ｐ２Ｐ方式の通信で使用するルームの識別子がyであること（roomid=y）と、通信相手のＩＰアドレスがipadr1であること（ipadr=ipadr1）とを送信する。
【０１２２】
ステップＳ４１６において、第２の携帯電話１００Ｂは、自身のＩＰアドレス（ipadr2）を引数として、ＩＰアドレスipadr1で特定される携帯電話１００に対して、接続要求を行う。第１の携帯電話１００Ａは、第２の携帯電話１００Ｂに、接続許可を返す。
【０１２３】
ステップＳ４１８において、第１の携帯電話１００Ａと第２の携帯電話１００Ｂとは、互いのＩＰアドレスを交換済みのため、マッチングサーバ３００を介さずにＰ２Ｐ方式で通信を行うことが可能となる。
【０１２４】
ステップＳ４２０において、通知装置２００は、第１の通信キャリア網７００Ａ内に、通信方式の切り替えが必要、もしくは通信方式の切り替えが可能な携帯電話１００が存在するかマッチングサーバ３００に問合せる。第１の通信キャリア網７００Ａ内に該当する携帯電話１００が存在しないため、マッチングサーバ３００は通知装置２００に、当該携帯電話１００が存在しない旨のレスポンスを返す（pairs=none）。
【０１２５】
＜ネットワークシステム１における第５の通信処理＞
次に、本実施の形態に係るネットワークシステム１における第５の通信処理について説明する。ここでは、第１のプライベートネットワーク７００Ｘに属する第１の携帯電話１００Ａと第２の携帯電話１００Ｂと、第２のプライベートネットワーク７００Ｙに属する第３の携帯電話１００Ｃとのサーバクライアント通信から、第３の携帯電話１００Ｃが抜ける場合について説明する。
【０１２６】
より詳細には、第４の通信処理では、クライアントのＩＰアドレスが通信キャリアから割り当てられるものであった。一方、第５の通信処理では、クライアントのＩＰアドレスがＩＳＰ（Internet Services Provider）に割り振られたＩＰアドレスである場合について説明する。たとえば、携帯電話１００Ａ，１００Ｂ，１００Ｃは、いわゆる３Ｇ回線（携帯電話の通信キャリア網）ではなく、WiFiなどを利用することによって無線ルータおよびインターネットを介して、他の装置と通信する。つまり、ここでは、マッチングサーバ３００が、プライベートネットワーク７００に属する複数の携帯電話がＰ２Ｐ方式で通信可能であるか否かをグローバルＩＰアドレスから確定することができない場合について説明する。図８は、本実施の形態に係るネットワークシステム１における第５の通信処理を示すシーケンス図である。
【０１２７】
図８を参照して、ステップＳ５０２およびステップＳ５０４は、第４の通信処理（図７）におけるステップＳ４０２およびステップＳ４０４と同様であるため、ここでは説明を繰り返さない。
【０１２８】
ステップＳ５０６において、第３の携帯電話１００Ｃは、通信中のルームから退室するために、第３の携帯電話１００ＣのＩＰアドレス（IP=ipadr3）と同ルームの識別子（roomid=x）を引数として、マッチングサーバ３００に退室要求する。この要求に対して、マッチングサーバ３００は以下の処理を行う。
【０１２９】
マッチングサーバ３００のＣＰＵ３１０は、当該要求の送信元のグローバルＩＰアドレス（gipadr3）を取得する。ＣＰＵ３１０は、roomid=xに関連付けて記憶されているipadr3およびgipadr3をメモリ３２０から削除する。第３の携帯電話１００Ｃが退室後、残った第１の携帯電話１００Ａと第２の携帯電話１００Ｂの通信方式を切り換えることが可能か否かを判断する（図１１を参照）。ここでは、マッチングサーバ３００は、Ｐ２Ｐ方式に切り換えられる可能性があると判断する。
【０１３０】
ステップＳ５０８において、第３の携帯電話１００Ｃの退室により、第１の携帯電話１００Ａと第２の携帯電話１００Ｂの間で、サーバクライアント方式による通信が継続される。
【０１３１】
ステップＳ５１０において、通知装置２００は、第１のプライベートネットワーク７００Ｘ内に通信方式の切り替えが必要、もしくは切り替えが可能な携帯電話１００が存在するか、マッチングサーバ３００に対して問合せを行う。ここで、通信方式をサーバクライアント方式からＰ２Ｐ方式に切り換えられる可能性がある第１の携帯電話１００Ａと第２の携帯電話１００Ｂとが存在するため、当該第１の携帯電話１００Ａと第２の携帯電話１００Ｂと現在のルームの識別子とをレスポンスとして通知する（pairs=PossibleSCtoＰ２Ｐ:x:ipadr1:ipadr2）。
【０１３２】
ステップＳ５１２において、通知装置２００は、第２の携帯電話１００Ｂ（ipadr2）に対して、第２の携帯電話１００Ｂが以下の条件に合致するかの問合せを行う。
・現在、サーバクライアント方式で通信中であること（inquiry=SC）。
・通信に使用しているルームの識別子がxであること（roomid=x）。
【０１３３】
第２の携帯電話１００Ｂは、上記の２条件に合致するため、通知装置２００に全条件に合致することを返信する（status=0）。
【０１３４】
ステップＳ５１４において、通知装置２００は、第１の携帯電話１００Ａ（ipadr1）に対して、第１の携帯電話１００Ａが以下の条件に合致するかの問合せを行う。
・第１の携帯電話１００Ａがサーバクライアント方式で通信中である（inquiry=SC）。
・通信に使用しているルームの識別子がxであること（roomid=x）。
【０１３５】
第１の携帯電話１００Ａは、上記の２条件に合致するため、通知装置２００に全条件に合致することを返信する（status=0）。
【０１３６】
ステップＳ５１６において、通知装置２００は、第１の携帯電話１００Ａと第２の携帯電話１００ＢのＩＰアドレス（ipadr=1padr1:ipadr2）と、第１の携帯電話１００Ａと第２の携帯電話１００Ｂとが通信を行っているルームの識別子（roomid=x）とを引数として、マッチングサーバ３００にサーバクライアント方式からＰ２Ｐ方式への切り替えを要求する。この要求に対して、マッチングサーバ３００は以下の処理を行う。
【０１３７】
マッチングサーバ３００のＣＰＵ３１０は、Ｐ２Ｐ方式で通信するためのルームを作成し、同ルームを一意に識別可能な識別子（roomid=y）を生成する。ＣＰＵ３１０は、ＩＰアドレスipadr1およびgipadr1とipadr2およびgipadr2をroomid=yに関連付けて記憶する。
【０１３８】
ステップＳ５１８において、通知装置２００は、第１のプライベートネットワーク７００Ｘ内に通信方式の切り替えが必要、もしくは通信方式の切り替えが可能な携帯電話１００が存在するかマッチングサーバ３００に問合せる。このとき、通信方式をサーバクライアント方式からＰ２Ｐ方式に切り換え可能な第１の携帯電話１００Ａおよび第２の携帯電話１００Ｂが存在するため、マッチングサーバ３００は、当該第１の携帯電話１００Ａおよび第２の携帯電話１００ＢのＩＰアドレスと、Ｐ２Ｐ通信に使用するルームの識別子とを返答する（pairs=SCtoＰ２Ｐ:y:ipadr1:ipadr2）。
【０１３９】
なお、ステップＳ５２０〜ステップＳ５２８は、それぞれ、第４の通信処理（図７）におけるステップＳ４１２〜ステップＳ４２０と同様であるため、ここでは説明を繰り返さない。
【０１４０】
＜ネットワークシステム１における第６の通信処理＞
次に、本実施の形態に係るネットワークシステム１における第６の通信処理について説明する。ここでは、第１のプライベートネットワーク７００Ｘに属する第１の携帯電話１００Ａと第２の携帯電話１００Ｂと、第２のプライベートネットワーク７００Ｙに属する第３の携帯電話１００Ｃとのサーバクライアント通信から、第３の携帯電話１００Ｃが抜ける場合について説明する。そして、第２のプライベートネットワーク７００Ｙに属する第３の携帯電話１００Ｂと、第１のプライベートネットワーク７００Ｘに属する第１の携帯電話１００Ａと第２の携帯電話１００Ｂとが、プロキシサーバ４００を介してマッチングサーバ３００に接続される場合について説明する。図９は、本実施の形態に係るネットワークシステム１における第６の通信処理を示すシーケンス図である。
【０１４１】
図９を参照して、ステップＳ６０２およびステップＳ６０４は、第４の通信処理（図７）のステップＳ４０２およびステップＳ４０４と同様であるため、ここでは説明を繰り返さない。
【０１４２】
ステップＳ６０６において、第２の携帯電話１００Ｂは、通信中のルームから退室するために、第２の携帯電話１００ＢのＩＰアドレス（IP=ipadr3）と同ルームの識別子（roomid=x）とを引数として、マッチングサーバ３００に退室を要求する。この要求に対して、マッチングサーバ３００は以下の処理を行う。
【０１４３】
マッチングサーバ３００のＣＰＵ３１０は、当該要求の送信元のグローバルＩＰアドレスを取得する。要求はプロキシサーバ４００を介してマッチングサーバ３００へと送信されるため、マッチングサーバ３００はプロキシサーバ４００のグローバルＩＰアドレス（giadrp）を取得することになる。ＣＰＵ３１０は、roomid=xに関連付けて記憶されているipadr2およびgipadrpをメモリ３２０から削除する。ＣＰＵ３１０は、第２の携帯電話１００Ｂが退室後、残った第１の携帯電話１００Ａおよび第３の携帯電話１００Ｃの通信方式を切り換えることが可能か否か判断する（図１１を参照）。ＣＰＵ３１０は、この場合、Ｐ２Ｐ方式に切り換えられる可能性があると判断する。
【０１４４】
ステップＳ６０８において、第２の携帯電話１００Ｂの退室により、第１の携帯電話１００Ａと第３の携帯電話１００Ｃとの間で、サーバクライアント方式による通信が継続される。
【０１４５】
ステップＳ６１０において、通知装置２００は、第１のプライベートネットワーク７００Ｘ内に通信方式の切り替えが必要、もしくは通信方式の切り替えが可能な携帯電話１００が存在するかマッチングサーバ３００に問合せる。ここでは、通信方式をサーバクライアント方式からＰ２Ｐ方式に切り換えられる可能性がある携帯電話１００が存在するため、マッチングサーバ３００は、当該クライアントと、現在通信に使用されている使用するルームの識別子をレスポンスとして通知する（pairs=PossibleSCtoＰ２Ｐ:x:ipadr1:ipadr3）。
【０１４６】
ステップＳ６１２において、通知装置２００は、第３の携帯電話１００Ｃ（ipadr3）に対して、第３の携帯電話１００Ｃが以下の条件に合致するかの問合せを行う。
・第３の携帯電話１００Ｃがサーバクライアント方式で通信中であること（inquiry=SC）。
・通信に使用しているルームの識別子がxであること（roomid=x）。
【０１４７】
第３の携帯電話１００Ｃは第１のプライベートネットワーク７００Ｘ内に存在しないため、この問合せは失敗する。
【０１４８】
ステップＳ６１４において、通知装置２００は、第１の携帯電話１００Ａ（ipadr1）に対して、第１の携帯電話１００Ａが以下の条件に合致するかの問合せを行う。
・第１の携帯電話１００Ａがサーバクライアント方式で通信中であること（inquiry=SC）。
・通信に使用しているルームの識別子がxであること（roomid=x）。
【０１４９】
第１の携帯電話１００Ａは、上記の２条件に合致するため、通知装置２００に全条件に合致することを返信する（status=0）。
【０１５０】
なお、ステップＳ６１６は、第４の通信処理（図７）におけるステップＳ４２０と同様であるため、ここでは説明を繰り返さない。
【０１５１】
＜マッチングサーバ３００における切替判定処理＞
次に、本実施の形態に係るマッチングサーバ３００における切替判定処理について説明する。図１０は、本実施の形態に係るマッチングサーバ３００における切替判定処理を示す第１のフローチャートである。図１１は、本実施の形態に係るマッチングサーバ３００における切替判定処理を示す第２のフローチャートである。
【０１５２】
図１０および図１１を参照して、ＣＰＵ３１０は、通信インターフェイス３７０を介して、携帯電話１００から参加要求もしくは退室要求を受信した場合、以下の処理を開始する。ＣＰＵ３１０は、携帯電話１００から新たな通信端末の参加要求を受信したか否かを判断する（ステップＳ１０００）。
【０１５３】
新たな携帯電話１００の参加要求を受信した場合（ステップＳ１０００においてＹＥＳである場合）、ＣＰＵ３１０は、通信インターフェイス３７０を介して、要求の発行元のグローバルＩＰアドレス（gipadr）を取得する（ステップＳ１１０２）。また、ＣＰＵ３１０は、ルームroomidで行われている通信方式を取得する。
【０１５４】
ＣＰＵ３１０は、ルームroomidで行われている通信方式がサーバクライアント方式であるかＰ２Ｐ方式であるいかを判断する（ステップＳ１１０４）。ＣＰＵ３１０は、サーバクライアント方式で通信が行われている場合、通信方式の変更は不要と判断する（ステップＳ１１１６）。ＣＰＵ３１０は、切替判定処理を終了する。
【０１５５】
ＣＰＵ３１０は、Ｐ２Ｐ方式で通信が行われている場合、ルームroomidに関連付けられているグローバルＩＰアドレス（以下、gipiadr0〜gipadrn、総称としてgipadrkとする）と、ステップＳ１１０２で取得したgipadrとを比較する（ステップＳ１１０６）。
【０１５６】
ＣＰＵ３１０は、gipadrkとgipadrとが同一の携帯電話用通信キャリアに属するか否かを判断する（ステップＳ１１０８）。なお、通信キャリアのＩＰアドレス帯域は一般に公開されており、ＩＰアドレスからどの通信キャリアに属するかは容易に判断可能である。ＣＰＵ３１０は、gipadrkとgipadrとが同一の携帯電話用通信キャリアに属する場合（ステップＳ１１０８においてＹＥＳである場合）、ＣＰＵ３１０は、ステップＳ１１１６からの処理を実行する。
【０１５７】
一方、ＣＰＵ３１０は、gipadrkとgipadrとが同一の携帯電話用通信キャリアに属さない場合（ステップＳ１１０８においてＮＯである場合）、gipadrkとgipadrとが異なる携帯電話用通信キャリアに属するか否かを判断する（ステップＳ１１１０）。ＣＰＵ３１０は、gipadrkとgipadrとが異なる携帯電話用通信キャリアに属する場合（ステップＳ１１０８においてＹＥＳである場合）、通信方式をサーバクライアント方式に変更する必要があると判断する（ステップＳ１１１８）。
【０１５８】
ＣＰＵ３１０は、通信インターフェイス３７０（および通知装置２００）を介して、gipadrkとgipadrとに対応する通信端末に、サーバクライアント方式で通信するように命令する。より詳細には、ＣＰＵ１１０は、通信インターフェイス３７０を介して、通知装置２００からの次の問い合わせの応答として、通知装置２００を介してサーバクライアント方式で通信するように命令する。ＣＰＵ３１０は、切替判定処理を終了する。
【０１５９】
ＣＰＵ３１０は、gipadrkとgipadrのいずれかが携帯電話用通信キャリアに属しない場合（ステップＳ１１１０においてＮＯである場合）、gipadrkとgipadrの一方が携帯電話用通信キャリア網に属し、他方がＩＳＰ（Internet  Services  Provider）に属するか否かを判断する（ステップＳ１１１２）。ＣＰＵ３１０は、gipadrkとgipadrの一方が携帯電話用通信キャリア網に属し、他方がＩＳＰ（Internet  Services  Provider）に属する場合（ステップＳ１１１２においてＹＥＳである場合）、ステップＳ１１１８からの処理を実行する。
【０１６０】
ステップＳ１１１２においてＮＯである場合、ＣＰＵ３１０は、グローバルＩＰアドレスが一致するか否かを判断する（ステップＳ１１１４）。ＣＰＵ３１０は、グローバルＩＰアドレスが一致する場合（ステップＳ１１１４においてＹＥＳである場合）、ステップＳ１１１６からの処理を実行する。ＣＰＵ３１０は、グローバルＩＰアドレスが一致しない場合（ステップＳ１１１４においてＮＯである場合）、ステップＳ１１１８からの処理を実行する。
【０１６１】
一方、ＣＰＵ３１０は、新たな通信端末の参加要求を受信しなかった場合（ステップＳ１０００においてＮＯである場合）、すなわち通信端末による通信の退室要求を受信した場合、通信インターフェイス３７０を介して、要求の発行元のグローバルＩＰアドレス（gipadr）を取得する（ステップＳ１２０２）。また、ＣＰＵ３１０は、ルームroomidで行われている通信方式を取得する。
【０１６２】
ＣＰＵ３１０は、ルームroomidで行われている通信方式がＰ２Ｐ方式であるかサーバクライアント方式であるかを判断する（ステップＳ１２０４）。ＣＰＵ３１０は、Ｐ２Ｐ方式で通信が行われている場合、通信方式の変更は不要と判断する（ステップＳ１２１８）。ＣＰＵ３１０は、切替判定処理を終了する。
【０１６３】
ＣＰＵ３１０は、サーバクライアント方式で通信が行われている場合、ルームroomidに関連付けられているグローバルＩＰアドレスのうち、ステップＳ１２０２で取得したgipadrを除く全てのグローバルＩＰアドレス（以下、gipiadr0〜gipadrn、総称としてgipadrkとする）を取得する（ステップＳ１２０６）。
【０１６４】
ＣＰＵ３１０は、gipadrkの全てが同一の携帯電話用通信キャリアに属するか否かを判断する（ステップＳ１２０８）。ＣＰＵ３１０は、gipadrkの全てが同一の携帯電話用通信キャリアに属する場合（ステップＳ１２０８においてＹＥＳである場合）、ＣＰＵ３１０は、Ｐ２Ｐ方式への切替が可能であると判断する（ステップＳ１２２０）。
【０１６５】
本実施の形態においては、ＣＰＵ３１０は、通信インターフェイス３７０（および通知装置２００）を介して、gipadrkの携帯電話１００にＰ２Ｐ方式へ切り替えるための命令を送信する。より詳細には、ＣＰＵ１１０は、通信インターフェイス３７０を介して、通知装置２００からの次の問い合わせの応答として、通知装置２００を介してＰ２Ｐ方式で通信するように命令する。ＣＰＵ３１０は、切替判定処理を終了する。
【０１６６】
一方、ＣＰＵ３１０は、gipadrkの全てが同一の携帯電話用通信キャリアに属さない場合（ステップＳ１２０８においてＮＯである場合）、gipadrkの全てが携帯電話用通信キャリアに属するか否かを判断する（ステップＳ１２１０）。ＣＰＵ３１０は、gipadrkの全てが携帯電話用通信キャリアに属する場合（ステップＳ１２１０においてＹＥＳである場合）、ステップＳ１２１８からの処理を実行する。
【０１６７】
ＣＰＵ３１０は、gipadrkのいずれかが携帯電話用通信キャリアに属さない場合（ステップＳ１２１０においてＮＯである場合）、いずれかがＩＳＰに属し、いずれかが携帯電話用通信キャリアに属するか否かを判断する（ステップＳ１２１２）。ＣＰＵ３１０は、gipadrkのいずれかがＩＳＰに属し、いずれかが携帯電話用通信キャリアに属する場合（ステップＳ１２１２においてＹＥＳである場合）、ステップＳ１２１８からの処理を実行する。
【０１６８】
ＣＰＵ３１０は、ステップＳ１２１２においてＮＯである場合、gipadrkの全てのグローバルアドレスが一致するか否かを判断する（ステップＳ１２１４）。ＣＰＵ３１０は、gipadrkの全てのグローバルアドレスが一致する場合（ステップＳ１２１４においてＹＥＳである場合）、Ｐ２Ｐ方式への切替が可能である可能性があると判断する。
【０１６９】
本実施の形態においては、ＣＰＵ３１０は、通信インターフェイス３７０（および通知装置２００）を介して、gipadrkの携帯電話１００にＰ２Ｐ方式へ切り替えるための命令を送信する。より詳細には、ＣＰＵ１１０は、通信インターフェイス３７０を介して、通知装置２００からの次の問い合わせの応答として、通知装置２００を介してＰ２Ｐ方式で通信するように命令する。ＣＰＵ３１０は、切替判定処理を終了する。
【０１７０】
ＣＰＵ３１０は、gipadrkのいずれかのグローバルアドレスが一致しない場合（ステップＳ１２１４においてＮＯである場合）、ステップＳ１２１８からの処理を実行する。
【０１７１】
＜本実施の形態に係るネットワークシステム１のその他の適用例＞
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
【０１７２】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１７３】
プログラムコードを供給するための記録媒体としては、例えば、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード（ＩＣメモリカード）、ＲＯＭ（マスクＲＯＭ、フラッシュＥＥＰＲＯＭなど）などを用いることができる。
【０１７４】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１７５】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１７６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７７】
１  ネットワークシステム、１００，１００Ａ，１００Ｂ，１００Ｃ  携帯電話、１１０，２１０，３１０  ＣＰＵ、１２０，２２０，３２０  メモリ、１３０，２３０，３３０  ディスプレイ、１４０，２４０，３４０  入力デバイス、１５０，２５０，３５０  タッチパネル、１６０，２６０，３６０  メモリインターフェイス、１６１  記録媒体、１７０，２７０，３７０  通信インターフェイス、２００，２００Ａ，２００Ｂ  通知装置、３００  マッチングサーバ、４００  プロキシサーバ、５００  インターネット、７００Ａ  第１のキャリア網，７００Ｂ  第２のキャリア網、７００Ｘ  第１のプライベートネットワーク、７００Ｙ  第２のプライベートネットワーク。
【図１】
0005645608.tif 000002
【図２】
0005645608.tif 000003
【図３】
0005645608.tif 000004
【図４】
0005645608.tif 000005
【図５】
0005645608.tif 000006
【図６】
0005645608.tif 000007
【図７】
0005645608.tif 000008
【図８】
0005645608.tif 000009
【図９】
0005645608.tif 000010
【図１０】
0005645608.tif 000011
【図１１】
0005645608.tif 000012
【図１２】
0005645608.tif 000013
【図１３】
0005645608.tif 000014
【図１４】
0005645608.tif 000015
【図１５】
0005645608.tif 000016
【図１６】
0005645608.tif 000017