(57)【特許請求の範囲】
【請求項１】
外部ネットワーク上に存在するサーバ装置と、該サーバ装置の制御に従ってデータ通信を行うことが可能であると共に接続先の設定切替により他のいずれの装置も介さずに互いにデータ通信を可能とする機能を備え、ローカルエリアネットワーク上に存在する複数のクライアント装置と、前記ローカルエリアネットワークと前記外部ネットワークとを接続して前記複数のクライアント装置をそれぞれ前記サーバ装置に接続するための中継装置とを備え、
前記サーバ装置は、
前記複数のクライアント装置のいずれかから前記中継装置を介して送信されたデータの送信要求を受信する送信要求受信手段と、
前記複数のクライアント装置のそれぞれから前記中継装置を介して送信された受信要求を受信する受信要求受信手段と、
前記送信要求受信手段が受信した送信要求と前記受信要求受信手段が受信した受信要求とに従って、データの送信元のクライアント装置と送信先のクライアント装置とが同一のローカルエリアネットワーク上に存在するかどうかを判定することで、該送信先のクライアント装置が他のいずれの装置も介さずに該送信元のクライアント装置からデータを受信可能な状態にあるかどうかを判定する直接通信判定手段と、
前記直接通信判定手段が他のいずれの装置も介さずにデータを受信可能な状態にあると判定したときに、前記送信要求に基づく送信元と送信先のクライアント装置に、それぞれ他の装置を介さないデータ通信が可能である旨の通知を通信相手のクライアント装置を示す相手情報と共に前記中継装置を介して送信する直接通信通知送信手段とを備え、
前記複数のクライアント装置は、それぞれ、
他のクライアント装置にデータを送信する場合に、前記中継装置を介して前記サーバ装置に送信要求を送信する送信要求送信手段と、
他のクライアント装置からのデータを受信すべく前記中継装置を介して前記サーバ装置に受信要求を送信する受信要求送信手段と、
前記直接通信通知送信手段から送信された通知を受信する直接通信通知受信手段と、
前記直接通信通知受信手段が通知を受信した場合に、該通知と共に送られてきた相手情報が示す他のクライアント装置をデータ通信の相手として設定する通信相手設定手段と、
前記通信相手設定手段により通信の相手として設定された他のクライアント装置との間で他のいずれの装置も介在させずにデータを送受信するデータ通信手段とを備える
ことを特徴とするデータ通信システム。
【請求項２】
外部ネットワーク上に存在するサーバ装置と、該サーバ装置の制御に従ってデータ通信を行うことが可能であると共に接続先の設定切替により他のいずれの装置も介さずに互いにデータ通信を可能とする機能を備え、ローカルエリアネットワーク上に存在する複数のクライアント装置と、前記ローカルエリアネットワークと前記外部ネットワークとを接続して前記複数のクライアント装置をそれぞれ前記サーバ装置に接続するための中継装置とを備えるネットワークシステムにおいて実行される方法であって、
他のクライアント装置にデータを送信しようとするクライアント装置が前記中継装置を介して前記サーバ装置に送信要求を送信するステップと、
他のクライアント装置からのデータを受信しようとするクライアント装置が前記中継装置を介して前記サーバ装置に受信要求を送信するステップと、
前記サーバ装置がいずれかのクライアント装置から受信した送信要求と前記サーバ装置がそれぞれのクライアント装置のから受信した受信要求とに従って、データの送信元のクライアント装置と送信先のクライアント装置とが同一のローカルエリアネットワーク上に存在するかどうかを判定することで、該送信先のクライアント装置が他のいずれの装置も介さずに該送信元のクライアント装置からデータを受信可能な状態にあるかどうかを判定するステップと、
前記送信要求に基づく送信元と送信先のクライアント装置が他のいずれの装置も介さずにデータ通信が可能である場合に、その旨の通知を通信相手のクライアント装置を示す相手情報と共に前記サーバ装置から前記中継装置を介して前記送信元及び送信先のクライアント装置に送信するステップと、
前記サーバ装置からの通知を受信した前記送信元及び送信先のクライアント装置が、該通知と共に送られてきた相手情報が示す他のクライアント装置をデータ通信の相手として設定するステップと、
互いを通信の相手として設定した前記送信元及び送信先のクライアント装置同士が、他のいずれの装置も介在させずにデータを送受信するステップと
を含むことを特徴とするデータ通信方法。
【請求項３】
他の装置の制御に従ってデータ通信を行うことが可能であると共に他のいずれの装置も介さずに互いにデータ通信を可能とする機能を備え、ローカルエリアネットワーク上に存在する複数のクライアント装置に、前記ローカルエリアネットワークと外部ネットワークとを接続する中継装置を介して接続され、前記外部ネットワーク上に存在するサーバ装置であって、
前記複数のクライアント装置のいずれかから前記中継装置を介して送信されたデータの送信要求を受信する送信要求受信手段と、
前記複数のクライアント装置のそれぞれから前記中継装置を介して送信された受信要求を受信する受信要求受信手段と、
前記送信要求受信手段が受信した送信要求と前記受信要求受信手段が受信した受信要求とに従って、データの送信元のクライアント装置と送信先のクライアント装置とが同一のローカルエリアネットワーク上に存在するかどうかを判定することで、該送信先のクライアント装置が他のいずれの装置も介さずに該送信元のクライアント装置からデータを受信可能な状態にあるかどうかを判定する直接通信判定手段と、
前記直接通信判定手段が他のいずれの装置も介さずにデータを受信可能な状態にあると判定したときに、前記送信要求に基づく送信元と送信先のクライアント装置に、それぞれ他の装置を介さないデータ通信が可能である旨の通知を通信相手のクライアント装置を示す相手情報と共に前記中継装置を介して送信し、前記送信元と送信先のクライアント装置との間で直接データ通信を行わせる直接通信通知送信手段と
を備えることを特徴とするサーバ装置。
【請求項４】
前記複数のクライアント装置からの送信要求及び受信要求は、互いに異なる中継装置を介して送られてくるものであると共に、ローカルエリアネットワーク毎に固有のＬＡＮ識別情報を含んでおり、
前記直接通信判定手段は、前記接続要求に含まれるＬＡＮ識別情報に従って、データの送信元のクライアント装置と送信先のクライアント装置とが同一のローカルエリアネットワーク上に存在するかどうかを判定する
ことを特徴とする請求項３に記載のサーバ装置。
【請求項５】
前記中継装置は、前記複数のクライアント装置間におけるデータ通信を制御する機能を備え、
前記直接通信判定手段が他のいずれの装置も介さずにデータを受信可能な状態にないと判定したときに、前記送信要求が示すデータの送信先となるクライアント装置が、前記送信要求をした送信元のクライアント装置を接続する中継装置と同一の中継装置に接続可能であるかどうかを判定する同一中継装置判定手段と、
前記同一中継装置判定手段が同一の中継装置に接続可能であると判定した場合に、前記送信要求に基づく送信元と送信先のクライアント装置の双方を接続可能な中継装置に、同一の中継装置を介して通信可能な旨を通知し、前記送信元のクライアント装置と前記送信先のクライアント装置との間におけるデータ通信を該中継装置に制御させる通知手段とをさらに備える
ことを特徴とする請求項３または４のいずれか１項に記載のサーバ装置。
【請求項６】
ローカルエリアネットワーク上に存在し、該ローカルエリアネットワークと外部ネットワークとを接続する中継装置を介して前記外部ネットワーク上に存在するサーバ装置に接続されると共に、他の装置の制御に従ってデータ通信を行うことが可能であると共に接続先の設定切替により他のいずれの装置も介さずに同一のローカルエリアネットワーク上に存在する他のクライアント装置とデータ通信を可能とする機能を備えたクライアント装置であって、
他のクライアント装置にデータを送信する場合に、前記中継装置を介して前記サーバ装置に送信要求を送信する送信要求送信手段と、
他のクライアント装置からのデータを受信すべく前記中継装置を介して前記サーバ装置に受信要求を送信する受信要求送信手段と、
前記送信要求送信手段が送信した送信要求、または他のクライアント装置の送信要求送信手段が送信した送信要求に従って、データ通信の相手となる他のクライアント装置と他のいずれの装置も介さずにデータ通信可能な状態にある旨の通知を、前記中継装置を介して前記サーバ装置から受信する直接通信通知受信手段と、
前記直接通信通知受信手段が通知を受信した場合に、該通知と共に送られてきた相手情報が示す他のクライアント装置をデータ通信の相手として設定する通信相手設定手段と、
前記通信相手設定手段により通信の相手として設定された他のクライアント装置との間で他のいずれの装置も介在させずにデータを送受信するデータ通信手段と
を備えることを特徴とするクライアント装置。
【請求項７】
他の装置の制御に従ってデータ通信を行うことが可能であると共に他のいずれの装置も介さずに互いにデータ通信を可能とする機能を備え、ローカルエリアネットワーク上に存在する複数のクライアント装置に、前記ローカルエリアネットワークと外部ネットワークとを接続する中継装置を介して接続され、前記外部ネットワーク上に存在するコンピュータ装置を、
前記複数のクライアント装置のいずれかから前記中継装置を介して送信されたデータの送信要求を受信する送信要求受信手段、
前記複数のクライアント装置のそれぞれから前記中継装置を介して送信された受信要求を受信する受信要求受信手段、
前記送信要求受信手段が受信した送信要求と前記受信要求受信手段が受信した受信要求とに従って、データの送信元のクライアント装置と送信先のクライアント装置とが同一のローカルエリアネットワーク上に存在するかどうかを判定することで、該送信先のクライアント装置が他のいずれの装置も介さずに該送信元のクライアント装置からデータを受信可能な状態にあるかどうかを判定する直接通信判定手段、及び、
前記直接通信判定手段が他のいずれの装置も介さずにデータを受信可能な状態にあると判定したときに、前記送信要求に基づく送信元と送信先のクライアント装置に、それぞれ他の装置を介さないデータ通信が可能である旨の通知を通信相手のクライアント装置を示す相手情報と共に前記中継装置を介して送信し、前記送信元と送信先のクライアント装置との間で直接データ通信を行わせる直接通信通知送信手段
として機能させるためのプログラム。
【請求項８】
ローカルエリアネットワーク上に存在し、該ローカルエリアネットワークと外部ネットワークとを接続する中継装置を介して前記外部ネットワーク上に存在するサーバ装置に接続されると共に、他の装置の制御に従ってデータ通信を行うことが可能であると共に接続先の設定切替により他のいずれの装置も介さずに同一のローカルエリアネットワーク上に存在する他のクライアント装置とデータ通信を可能とする機能を備えたコンピュータ装置を、
他のクライアント装置にデータを送信する場合に、前記中継装置を介して前記サーバ装置に送信要求を送信する送信要求送信手段、
他のクライアント装置からのデータを受信すべく前記中継装置を介して前記サーバ装置に受信要求を送信する受信要求送信手段、
前記送信要求送信手段が送信した送信要求、または他のクライアント装置の送信要求送信手段が送信した送信要求に従って、データ通信の相手となる他のクライアント装置と他のいずれの装置も介さずにデータ通信可能な状態にある旨の通知を、前記中継装置を介して前記サーバ装置から受信する直接通信通知受信手段、
前記直接通信通知受信手段が通知を受信した場合に、該通知と共に送られてきた相手情報が示す他のクライアント装置をデータ通信の相手として設定する通信相手設定手段、及び、
前記通信相手設定手段により通信の相手として設定された他のクライアント装置との間で他のいずれの装置も介在させずにデータを送受信するデータ通信手段
として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ通信システム等に関し、特に複数のクライアント装置間でデータ通信を行うための技術に関する。
【０００２】
【従来の技術】
クライアント−サーバシステムにおいて、複数のクライアント装置間でメッセージをやりとりするためのサービスとして、インスタントメッセージサービス（以下、ＩＭＳという）が知られている。ＩＭＳにおいては、各クライアント装置ではインスタントメッセンジャー（以下、ＩＭという）というアプリケーションが動作している必要があるが、ログイン管理やクライアント装置のＩＰアドレスを管理するためには、サーバ装置によるサービスも欠かせない。
【０００３】
近年、ＩＭＳにおいて、クライアント装置にボイスチャット（インターネット電話）機能を搭載したものや、ファイル転送機能を搭載したものも増えている。また、企業内ＬＡＮでは、プロキシサーバを介してインターネットなどの外部ネットワークに接続するようにしたものが増えており、プロキシサーバを介してＩＭＳを実現するシステムも存在する。
【０００４】
【発明が解決しようとする課題】
しかしながら、プロキシサーバを利用しているＩＭＳにおいては、同一のＬＡＮ上に存在するクライアント装置間で、ボイスチャット機能やファイル転送機能のようなリッチな機能を実現することができない。それは、ボイスチャット機能やファイル転送機能では、比較的大きなサイズのデータをやりとりする必要があり、送受信されるパケットの数が大きくなってしまうため、プロキシサーバ（特にそこに存在するファイアーウォール機能）に過大な負荷をかけてしまうことになるからである。
【０００５】
同一のＬＡＮ上に存在するクライアント装置では、プロキシサーバを介さずにダイレクトにデータを送受信すれば、ボイスチャットなどの機能を実現できるようになる。既存のＩＭにおいても、このようなことを可能にしたものがあるが、接続先の設定変更は手動で行わなければならない。このため、コンピュータ技術やネットワーク技術に詳しい者でなければ、クライアント装置間をダイレクトに接続してリッチな機能を実現させることがかなり困難であり、また、詳しい者であっても、接続先の設定変更の操作が非常に煩雑に感じてしまうという問題があった。
【０００６】
また、携帯電話機同士の間におけるデータ通信も、上記したインスタントメッセージサービスと同じようなシステム構成で行われる。すなわち、データ通信を行うクライアントである携帯電話機と、それを制御するサーバ装置との間に基地局のコンピュータ装置が存在することとなる。従って、携帯電話機間のデータ通信量が多くなると、サーバ装置及び基地局のコンピュータ装置に負荷がかかることとなる。
【０００７】
ところで、最近登場した第三世代携帯電話では、従来の携帯電話と比べるとデータ通信速度が格段に速く、動画の送信なども可能であり、従来の携帯電話で利用されていたよりも遙かに多くのデータ通信が利用されることが考えられる。このため、携帯電話機間でデータ通信を行うときにサーバ装置及び基地局のコンピュータ装置にかかる負荷の軽減することの重要性が増大すると考えられる。
【０００８】
本発明は、上記従来技術の問題点を解消するためになされたものであり、他の装置に過大な負荷をかけることなく複数のクライアント装置間でデータ通信を行えるようにすることで、大容量のデータ通信を可能としたデータ通信システム等を提供することを目的とする。
【０００９】
本発明は、また、複数のクライアント装置間でデータ通信を行うための接続設定を容易に行えるデータ通信システム等を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点にかかるデータ通信システムは、
外部ネットワーク上に存在するサーバ装置と、該サーバ装置の制御に従ってデータ通信を行うことが可能であると共に接続先の設定切替により他のいずれの装置も介さずに互いにデータ通信を可能とする機能を備え、ローカルエリアネットワーク上に存在する複数のクライアント装置と、前記ローカルエリアネットワークと前記外部ネットワークとを接続して前記複数のクライアント装置をそれぞれ前記サーバ装置に接続するための中継装置とを備え、
前記サーバ装置は、
前記複数のクライアント装置のいずれかから前記中継装置を介して送信されたデータの送信要求を受信する送信要求受信手段と、
前記複数のクライアント装置のそれぞれから前記中継装置を介して送信された受信要求を受信する受信要求受信手段と、
前記送信要求受信手段が受信した送信要求と前記受信要求受信手段が受信した受信要求とに従って、データの送信元のクライアント装置と送信先のクライアント装置とが同一のローカルエリアネットワーク上に存在するかどうかを判定することで、該送信先のクライアント装置が他のいずれの装置も介さずに該送信元のクライアント装置からデータを受信可能な状態にあるかどうかを判定する直接通信判定手段と、
前記直接通信判定手段が他のいずれの装置も介さずにデータを受信可能な状態にあると判定したときに、前記送信要求に基づく送信元と送信先のクライアント装置に、それぞれ他の装置を介さないデータ通信が可能である旨の通知を通信相手のクライアント装置を示す相手情報と共に前記中継装置を介して送信する直接通信通知送信手段とを備え、
前記複数のクライアント装置は、それぞれ、
他のクライアント装置にデータを送信する場合に、前記中継装置を介して前記サーバ装置に送信要求を送信する送信要求送信手段と、
他のクライアント装置からのデータを受信すべく前記中継装置を介して前記サーバ装置に受信要求を送信する受信要求送信手段と、
前記直接通信通知送信手段から送信された通知を受信する直接通信通知受信手段と、
前記直接通信通知受信手段が通知を受信した場合に、該通知と共に送られてきた相手情報が示す他のクライアント装置をデータ通信の相手として設定する通信相手設定手段と、
前記通信相手設定手段により通信の相手として設定された他のクライアント装置との間で他のいずれの装置も介在させずにデータを送受信するデータ通信手段とを備える
ことを特徴とする。
【００１１】
上記データ通信システムでは、送信元と送信先のクライアント装置がいずれの装置も介さずにデータ通信可能な状態にあれば、送信元及び送信先の双方のクライアント装置に、サーバ装置からの通知がなされる。この通知に基づいて、送信元及び送信先のクライアント装置は、データ通信の相手の設定を変更し、中継装置及びサーバ装置を介さずにデータを送受信することができるようになる。このため、クライアント装置のユーザが煩雑な操作を行わず、データ通信の相手方のクライアント装置が他の装置を介さずに通信可能な状態にあるかどうかを意識することなく、クライアント装置間での直接的なデータ通信が行えるようになる。
【００１２】
また、通信相手設定手段によって、送信元及び送信先のクライアント装置同士がデータ通信の相手の設定を変更することによって、サーバ装置や中継装置を介することなく、当該クライアント装置同士で直接的にデータを送受信することとなる。これにより、サーバ装置や中継装置に余分な負荷をかけることなく、直接通信可能な状態にあるクライアント装置同士で大容量のデータをやりとりすることが可能となる。
【００１６】
上記目的を達成するため、本発明の第２の観点にかかるデータ通信方法は、
外部ネットワーク上に存在するサーバ装置と、該サーバ装置の制御に従ってデータ通信を行うことが可能であると共に接続先の設定切替により他のいずれの装置も介さずに互いにデータ通信を可能とする機能を備え、ローカルエリアネットワーク上に存在する複数のクライアント装置と、前記ローカルエリアネットワークと前記外部ネットワークとを接続して前記複数のクライアント装置をそれぞれ前記サーバ装置に接続するための中継装置とを備えるネットワークシステムにおいて実行される方法であって、
他のクライアント装置にデータを送信しようとするクライアント装置が前記中継装置を介して前記サーバ装置に送信要求を送信するステップと、
他のクライアント装置からのデータを受信しようとするクライアント装置が前記中継装置を介して前記サーバ装置に受信要求を送信するステップと、
前記サーバ装置がいずれかのクライアント装置から受信した送信要求と前記サーバ装置がそれぞれのクライアント装置のから受信した受信要求とに従って、データの送信元のクライアント装置と送信先のクライアント装置とが同一のローカルエリアネットワーク上に存在するかどうかを判定することで、該送信先のクライアント装置が他のいずれの装置も介さずに該送信元のクライアント装置からデータを受信可能な状態にあるかどうかを判定するステップと、
前記送信要求に基づく送信元と送信先のクライアント装置が他のいずれの装置も介さずにデータ通信が可能である場合に、その旨の通知を通信相手のクライアント装置を示す相手情報と共に前記サーバ装置から前記中継装置を介して前記送信元及び送信先のクライアント装置に送信するステップと、
前記サーバ装置からの通知を受信した前記送信元及び送信先のクライアント装置が、該通知と共に送られてきた相手情報が示す他のクライアント装置をデータ通信の相手として設定するステップと、
互いを通信の相手として設定した前記送信元及び送信先のクライアント装置同士が、他のいずれの装置も介在させずにデータを送受信するステップと
を含むことを特徴とする。
【００１８】
上記目的を達成するため、本発明の第３の観点にかかるサーバ装置は、
他の装置の制御に従ってデータ通信を行うことが可能であると共に他のいずれの装置も介さずに互いにデータ通信を可能とする機能を備え、ローカルエリアネットワーク上に存在する複数のクライアント装置に、前記ローカルエリアネットワークと外部ネットワークとを接続する中継装置を介して接続され、前記外部ネットワーク上に存在するサーバ装置であって、
前記複数のクライアント装置のいずれかから前記中継装置を介して送信されたデータの送信要求を受信する送信要求受信手段と、
前記複数のクライアント装置のそれぞれから前記中継装置を介して送信された受信要求を受信する受信要求受信手段と、
前記送信要求受信手段が受信した送信要求と前記受信要求受信手段が受信した受信要求とに従って、データの送信元のクライアント装置と送信先のクライアント装置とが同一のローカルエリアネットワーク上に存在するかどうかを判定することで、該送信先のクライアント装置が他のいずれの装置も介さずに該送信元のクライアント装置からデータを受信可能な状態にあるかどうかを判定する直接通信判定手段と、
前記直接通信判定手段が他のいずれの装置も介さずにデータを受信可能な状態にあると判定したときに、前記送信要求に基づく送信元と送信先のクライアント装置に、それぞれ他の装置を介さないデータ通信が可能である旨の通知を通信相手のクライアント装置を示す相手情報と共に前記中継装置を介して送信し、前記送信元と送信先のクライアント装置との間で直接データ通信を行わせる直接通信通知送信手段と
を備えることを特徴とする。
【００２０】
ここで、前記複数のクライアント装置からの送信要求及び受信要求が、互いに異なる中継装置を介して送られてくるものであると共に、ローカルエリアネットワーク毎に固有のＬＡＮ識別情報を含んでいる場合には、
前記直接通信判定手段は、前記接続要求に含まれるＬＡＮ識別情報に従って、データの送信元のクライアント装置と送信先のクライアント装置とが同一のローカルエリアネットワーク上に存在するかどうかを判定するものとすることができる。
【００２１】
一方、  前記複数のクライアント装置からの送信要求及び受信要求が、同一の中継装置を介して送られてくるものである場合には、
前記直接通信判定手段は、前記接続要求を中継した中継装置の識別情報に従って、データの送信元のクライアント装置と送信先のクライアント装置とが同一のローカルエリアネットワーク上に存在するかどうかを判定するものとすることができる。
【００２２】
上記サーバ装置は、
前記中継装置が、前記複数のクライアント装置間におけるデータ通信を制御する機能を備える場合には、
前記直接通信判定手段が他のいずれの装置も介さずにデータを受信可能な状態にないと判定したときに、前記送信要求が示すデータの送信先となるクライアント装置が、前記送信要求をした送信元のクライアント装置を接続する中継装置と同一の中継装置に接続可能であるかどうかを判定する同一中継装置判定手段と、
前記同一中継装置判定手段が同一の中継装置に接続可能であると判定した場合に、前記送信要求に基づく送信元と送信先のクライアント装置の双方を接続可能な中継装置に、同一の中継装置を介して通信可能な旨を通知し、前記送信元のクライアント装置と前記送信先のクライアント装置との間におけるデータ通信を該中継装置に制御させる通知手段とをさらに備えるものとすることができる。
【００２３】
上記サーバ装置は、
自己が制御しているクライアント装置間でのデータ通信の負荷（及び接続されている各中継装置におけるデータ通信の負荷）を判定する通信負荷判定手段を備えていてもよい。この場合において、前記通信負荷判定手段の判定結果に従って、前記送信元のクライアント装置と前記送信先のクライアント装置との間におけるデータ通信を中継装置に制御させるための通知をするものとしてもよい。
【００２７】
上記目的を達成するため、本発明の第４の観点にかかるクライアント装置は、
ローカルエリアネットワーク上に存在し、該ローカルエリアネットワークと外部ネットワークとを接続する中継装置を介して前記外部ネットワーク上に存在するサーバ装置に接続されると共に、他の装置の制御に従ってデータ通信を行うことが可能であると共に接続先の設定切替により他のいずれの装置も介さずに同一のローカルエリアネットワーク上に存在する他のクライアント装置とデータ通信を可能とする機能を備えたクライアント装置であって、
他のクライアント装置にデータを送信する場合に、前記中継装置を介して前記サーバ装置に送信要求を送信する送信要求送信手段と、
他のクライアント装置からのデータを受信すべく前記中継装置を介して前記サーバ装置に受信要求を送信する受信要求送信手段と、
前記送信要求送信手段が送信した送信要求、または他のクライアント装置の送信要求送信手段が送信した送信要求に従って、データ通信の相手となる他のクライアント装置と他のいずれの装置も介さずにデータ通信可能な状態にある旨の通知を、前記中継装置を介して前記サーバ装置から受信する直接通信通知受信手段と、
前記直接通信通知受信手段が通知を受信した場合に、該通知と共に送られてきた相手情報が示す他のクライアント装置をデータ通信の相手として設定する通信相手設定手段と、
前記通信相手設定手段により通信の相手として設定された他のクライアント装置との間で他のいずれの装置も介在させずにデータを送受信するデータ通信手段と
を備えることを特徴とする。
【００２９】
ここで、前記送信要求送信手段が送信する送信要求、及び前記受信要求送信手段が送信する受信要求が、ローカルエリアネットワーク毎に固有のＬＡＮ識別情報を含むものである場合には、
前記直接通信通知受信手段は、同一のＬＡＮ識別情報を含む送信要求及び受信要求が前記サーバ装置において受信された場合に、前記サーバ装置からの通知を受信するものとすることができる。
【００３０】
上記クライアント装置は、
同一のローカルエリアネットワーク上に存在し、当該ローカルエリアネットワークを介して直接的に接続可能な他のクライアント装置に関する情報を管理する直接接続情報管理手段をさらに備えていてもよい。この場合において、
前記接続先設定手段は、前記直接接続情報管理手段によって管理されている情報に従って、接続先の設定変更を行うものとすることができる。
【００３１】
ここで、上記クライアント装置は、前記直接接続情報管理手段によって管理されている情報に従って他のクライアント装置と直接的な接続ができない場合に、その旨を前記中継装置を介して前記サーバ装置に通知する通知手段をさらに備えるものとすることもできる。
【００３４】
上記目的を達成するため、本発明の第５の観点にかかるプログラムは、
他の装置の制御に従ってデータ通信を行うことが可能であると共に他のいずれの装置も介さずに互いにデータ通信を可能とする機能を備え、ローカルエリアネットワーク上に存在する複数のクライアント装置に、前記ローカルエリアネットワークと外部ネットワークとを接続する中継装置を介して接続され、前記外部ネットワーク上に存在するコンピュータ装置を、
前記複数のクライアント装置のいずれかから前記中継装置を介して送信されたデータの送信要求を受信する送信要求受信手段、
前記複数のクライアント装置のそれぞれから前記中継装置を介して送信された受信要求を受信する受信要求受信手段、
前記送信要求受信手段が受信した送信要求と前記受信要求受信手段が受信した受信要求とに従って、データの送信元のクライアント装置と送信先のクライアント装置とが同一のローカルエリアネットワーク上に存在するかどうかを判定することで、該送信先のクライアント装置が他のいずれの装置も介さずに該送信元のクライアント装置からデータを受信可能な状態にあるかどうかを判定する直接通信判定手段、及び、
前記直接通信判定手段が他のいずれの装置も介さずにデータを受信可能な状態にあると判定したときに、前記送信要求に基づく送信元と送信先のクライアント装置に、それぞれ他の装置を介さないデータ通信が可能である旨の通知を通信相手のクライアント装置を示す相手情報と共に前記中継装置を介して送信し、前記送信元と送信先のクライアント装置との間で直接データ通信を行わせる直接通信通知送信手段
として機能させることを特徴とする。
【００３６】
上記目的を達成するため、本発明の第６の観点にかかるプログラムは、
ローカルエリアネットワーク上に存在し、該ローカルエリアネットワークと外部ネットワークとを接続する中継装置を介して前記外部ネットワーク上に存在するサーバ装置に接続されると共に、他の装置の制御に従ってデータ通信を行うことが可能であると共に接続先の設定切替により他のいずれの装置も介さずに同一のローカルエリアネットワーク上に存在する他のクライアント装置とデータ通信を可能とする機能を備えたコンピュータ装置を、
他のクライアント装置にデータを送信する場合に、前記中継装置を介して前記サーバ装置に送信要求を送信する送信要求送信手段、
他のクライアント装置からのデータを受信すべく前記中継装置を介して前記サーバ装置に受信要求を送信する受信要求送信手段、
前記送信要求送信手段が送信した送信要求、または他のクライアント装置の送信要求送信手段が送信した送信要求に従って、データ通信の相手となる他のクライアント装置と他のいずれの装置も介さずにデータ通信可能な状態にある旨の通知を、前記中継装置を介して前記サーバ装置から受信する直接通信通知受信手段、
前記直接通信通知受信手段が通知を受信した場合に、該通知と共に送られてきた相手情報が示す他のクライアント装置をデータ通信の相手として設定する通信相手設定手段、及び、
前記通信相手設定手段により通信の相手として設定された他のクライアント装置との間で他のいずれの装置も介在させずにデータを送受信するデータ通信手段
として機能させることを特徴とする。
【００３８】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【００３９】
［第１の実施の形態］
図１は、この実施の形態に適用されるネットワークシステムの例を示す図である。図示するように、このネットワークシステムは、ＩＭＳサーバ１と、プロキシサーバ２と、複数のＩＭクライアント３とを備えている。プロキシサーバ２及び複数のＩＭクライアント３は、それぞれＬＡＮ４を介して互いに接続されている。プロキシサーバ２は、インターネット５を介してＬＡＮ４の外部に存在するＩＭＳサーバ１と接続される。図に示すＬＡＮ４の他にも、インターネット５を介してＩＭＳサーバ１に接続しているＬＡＮが存在する可能性がある。
【００４０】
ＩＭＳサーバ１は、汎用のサーバコンピュータから構成されている。ＩＭＳサーバ１は、図２に示すように、メッセージ保存部１１と、ＩＰ認識部１２と、ＩＰ保存部１３と、同一ネットワーク推測部１４と、通信制御部１５とを備えている。これらの機能は、ＩＭＳサーバ１のＣＰＵ（Central Processing Unit）が後述するフローチャートに示すようなプログラムを実行することによって実現される。
【００４１】
メッセージ保存部１１は、ＩＭＳサーバ１を介してＩＭクライアント３間でやりとりされるデータ（パケットのメッセージ）を一時的に保存する。ＩＰ認識部１２は、ＩＭＳサーバ１に接続要求したＩＭクライアント３のＩＰアドレス（対応するプロキシサーバ２のＩＰアドレスを含む）を認識する。具体的には、接続要求に対応したメッセージのヘッダに含まれる要求元のＩＭクライアント３のＩＰアドレスを抽出する。ＩＰ保存部１３は、ＩＰ認識部１２が認識したＩＰアドレスのうちで、データの送信のために接続要求をしてきたＩＭクライアント３のＩＰアドレスを一時的に保存する。
【００４２】
同一ネットワーク推測部１４は、ＩＰ認識部１２が新たに認識したＩＰアドレスと同一のＩＰアドレス（プロキシサーバ２のＩＰアドレスが同一であるということを意味する）がＩＰ保存部１３に保存されているかどうかを調べる。同一のＩＰアドレスが保存されている場合に、同一のＬＡＮ４に存在する複数のＩＭクライアント３から接続要求がされたものと判定し、通信制御部１５からプロキシサーバ２を介して対応するＩＭクライアント３にＬＡＮ内接続通知メッセージを送信させる。通信制御部１５は、ＩＭサーバ１とプロキシサーバ２との間におけるデータの送受信を制御する。
【００４３】
図１に示すプロキシサーバ２は、通信プロトコルが互いに異なるＬＡＮ４とインターネット５とを接続し、ＩＭクライアント３からＩＭＳサーバ１へのアクセス制御を行うためのサーバコンピュータであり、ファイアーウォール機能を備えている。このファイアーウォール機能では、ＬＡＮ４とインターネット５との間を通過させてよいパケットを選択している。プロキシサーバ２は、また、いずれかのＩＭクライアント３がアクセスしたページと同じページに他のＩＭクライアント３がアクセスしたときにインターネット５に接続することなく当該他のＩＭクライアント３にページを送信するキャッシュ機能も備えている。
【００４４】
ＩＭクライアント３は、それぞれインスタントメッセンジャーソフトが稼働するパーソナルコンピュータなどによって構成されている。ＩＭクライアント３は、図３に示すように、メッセージ授受部３１と、バディリスト管理部３２と、接続先設定部３３と、通信制御部３４とを備えている。これらの機能は、ＩＭクライアント３のＣＰＵ（Central Processing Unit）が後述するフローチャートに示すようなプログラムを実行することによって実現される。
【００４５】
メッセージ授受部３１は、ＩＭクライアント３が他のコンピュータ（ＩＭＳサーバ１または他のＩＭクライアント３）とやりとりするデータ（メッセージ）について、アプリケーションと通信制御部３４との間での受け渡しを行う。メッセージ授受部３１は、後述する接続要求メッセージなどの各種のメッセージを必要に応じて生成する機能も有している。
【００４６】
バディリスト管理部３２は、同一のＬＡＮ４に存在する他のＩＭクライアント３に関する情報を含むバディリストを記憶管理している。通信制御部３４は、接続先設定部３３による接続先の設定に従って、ＩＭクライアント３が他のコンピュータとの間で行うデータの送受信を制御する。通信制御部３４が送信するメッセージは、パケット化されている。
【００４７】
接続先設定部３３は、ＩＭクライアント３によるデータ通信をプロキシサーバ２を介して行うものとするか、それともＬＡＮ４上の他のＩＭクライアント３とピアツーピアで直接行うものとするかの設定を行う。接続先設定部３３は、通常の場合においてプロキシサーバ２を介してデータ通信を行うものとして接続先を設定している。なお、ピアツーピアの接続とは、ＩＭクライアント３同士がプロキシサーバ２を介さずにＬＡＮ４のみを介してデータ通信を行うことを意味するのであり、ＩＭクライアント３同士が必ずしも専用線で接続されている必要はない。
【００４８】
以下、このネットワークシステムにおける動作について説明する。最初に、ＩＭＳサーバ１とＩＭクライアント３とがそれぞれ実行する処理について、図４及び図５のフローチャートを参照して説明する。ＩＭＳサーバ１及びＩＭクライアント３は、それぞれ様々な処理も並行して行っているものであるが、以下では本発明に関わる処理のみを説明するものとする。
【００４９】
図４は、ＩＭＳサーバ１が実行する処理を示すフローチャートである。ＩＭＳサーバ１では、後述するようにＩＭクライアント３から送られてくる接続要求メッセージの受信を待機している（ステップＳ１０１）。接続要求メッセージを受信した場合には、さらにそれがデータ送信のための接続要求メッセージであるかどうかを判定する（ステップＳ１０２）。
【００５０】
データ送信のための接続要求メッセージであれば、ＩＰ認識部１２は、当該接続要求メッセージに含まれるＩＭクライアント３のＩＰアドレスを抽出し、ＩＰ保存部１３に保存する（ステップＳ１０３）。また、メッセージ保存部１１は、当該接続要求メッセージを保存する（ステップＳ１０４）。そして、ステップＳ１０５の処理に進む。一方、ステップＳ１０２でデータ送信のための接続要求メッセージでなかった場合には、そのままステップＳ１０５の処理に進む。
【００５１】
ステップＳ１０５では、同一ネットワーク推測部１４は、新たにＩＰ認識部１２が認識したＩＭクライアント３のＩＰアドレスと、ＩＰ保存部１３に保存されているＩＭクライアント３のＩＰアドレスとを比較することにより、送受信先が対応する接続要求メッセージがあるかどうかを判定する（ステップＳ１０５）。送受信先が対応する接続要求メッセージがなければ、ステップＳ１０１の処理に戻る。送受信先が対応する接続要求メッセージがあれば、同一ネットワーク推測部１４は、さらにＩＭクライアント３のＩＰアドレスとして含まれているプロキシサーバ２のＩＰアドレスに従って、送信側のＩＭクライアント３と受信側のＩＭクライアント３とが同一のＬＡＮ４上に存在するかどうかを判定する（ステップＳ１０６）。
【００５２】
送信側のＩＭクライアント３と受信側のＩＭクライアント３とが同一のＬＡＮ４上に存在すると判定した場合、同一ネットワーク推測部１４は、当該送信側となるＩＭクライアント３と受信側となるＩＭクライアント３との双方を宛先として、ＬＡＮ内接続通知メッセージを通信制御部１５から送信させる（ステップＳ１０７）。このＬＡＮ内接続通知メッセージは、プロキシサーバ２を介して各ＩＭクライアント３に送られる。また、ＩＰ保存部１３は、当該送信側のＩＭクライアント３のＩＰアドレスを破棄し（ステップＳ１０８）、メッセージ保存部１１は、送信側のＩＭクライアント３から送られてきたメッセージを破棄する（ステップＳ１０９）。そして、ステップＳ１０１の処理に戻る。
【００５３】
ステップＳ１０６において送信側のＩＭクライアント３と受信側のＩＭクライアント３とが同一のＬＡＮ４上に存在しないと判定した場合には、メッセージ保存部１１に保存された対応するメッセージを、受信側となるＩＭクライアント３を宛先として通信制御部１５から送信させる（ステップＳ１１０）。このメッセージは、プロキシサーバ２を介して受信側のＩＭクライアント３に送られる。そして、ステップＳ１０１の処理に戻る。
【００５４】
図５は、ＩＭクライアント３が実行する処理を示すフローチャートである。ＩＭクライアント３では、図５（ａ）に示すＩＭＳ機能を利用して他のＩＭクライアント３にデータを送信する場合にＩＭＳサーバ１に接続要求を送信する処理、図５（ｂ）に示す他のＩＭクライアント３からのデータ受信のためのポーリングの処理、及び図５（ｃ）に示すピアツーピアでＩＭクライアント３同士の間のデータ通信処理が行われる。
【００５５】
アプリケーションによる処理に従って他のＩＭクライアント３にデータを送信しようとする場合、図５（ａ）に示すように、メッセージ授受部３１は、送信すべきデータをパケットサイズに分割し、分割した各データをそれぞれ含むデータ送信のための接続要求メッセージを生成する（ステップＳ２０１）。次に、メッセージ授受部３１は、生成した各接続要求メッセージを通信制御部３４に渡し、通信制御部３４は、各接続要求メッセージをＬＡＮ４を介してプロキシサーバ２に送信する（ステップＳ２０２）。そして、各接続要求メッセージが、プロキシサーバ２からインターネット５を介してＩＭＳサーバ１へと送られる。
【００５６】
また、図５（ｂ）に示すように、メッセージ授受部３１は、データ受信のための接続要求を送信するタイミングとなったかどうかを判定している（ステップＳ２２１）。このタイミングは、所定の期間毎に到来するものとなる。データ受信のための接続要求を送信するタイミングとなった場合、メッセージ授受部３１は、他のＩＭクライアント３からのデータ受信のための接続要求メッセージを生成する（ステップＳ２２２）。次に、メッセージ授受部３１は、生成した接続要求メッセージを通信制御部３４に渡し、通信制御部３４は、この接続要求メッセージをＬＡＮ４を介してプロキシサーバ２に送信する（ステップＳ２２３）。この接続要求メッセージは、プロキシサーバ２からインターネット５を介してＩＭＳサーバ１へと送られる。
【００５７】
また、図５（ｃ）に示すように、メッセージ授受部３１は、前述したようにＩＭＳサーバ１から送信されるＬＡＮ内接続通知メッセージの受信を待機している（ステップＳ２４１）。次に、ＬＡＮ内接続通知メッセージを受信した旨がバディリスト管理部３２に通知され、バディリスト管理部３２は、ＬＡＮ内接続通知メッセージに対応する他のＩＭクライアント３に関する情報について、バディリストを参照する（ステップＳ２４２）。そして、当該他のＩＭクライアント３とＬＡＮ４を介して直接的に接続可能であるかどうかを判定する（ステップＳ２４３）。直接的に接続可能でなければ、ステップＳ２４１の処理に戻る。
【００５８】
直接的に接続可能である場合には、その旨が接続先設定部３３に通知され、接続先設定部３３は、通信制御部３４がデータの送受信を行う場合の接続先をＬＡＮ内接続通知メッセージで示される他のＩＭクライアント３に設定変更する（ステップＳ２４４）。この接続先の設定変更は、データの送信側と受信側のいずれでも行われるものとなり、２つのＩＭクライアント３同士で、プロキシサーバ２などの外部の装置を介することなく、ＬＡＮ４を介してピアツーピアでデータを送受信することが可能となる。
【００５９】
メッセージ授受部３１は、通信制御部３４の接続先が設定変更されると、２つのＩＭクライアント３同士で互いに送受信すべきデータをＬＡＮ４を介してピアツーピアで通信制御部３４に送受信させる（ステップＳ２４５）。このピアツーピアでのデータの送受信が完了すると、接続先設定部３３による接続先の設定を元に戻し（ステップＳ２４６）、ステップＳ２４１の処理に戻る。
【００６０】
次に、このネットワークシステムにおいて、ＩＭクライアント３間でデータを送受信するまでのシステム全体における手順を、図６の説明図を参照して説明する。
【００６１】
まず、図６（ａ）に示すように、送信側のＩＭクライアント３−１が接続要求メッセージをプロキシサーバ２を介してＩＭＳサーバ１に送信する。ＩＭＳサーバ１では、その接続要求メッセージのパケットに含まれるＩＰアドレスをＩＰ認識部１２が抽出してＩＰ保存部１３に保存する。また、受信側のＩＭクライアント３−２が所定のタイミングで接続要求メッセージをプロキシサーバ２を介してＩＭＳサーバ１に送信する。ＩＭＳサーバ１では、その接続要求メッセージのパケットに含まれるＩＰアドレスを抽出する。
【００６２】
次に、図６（ｂ）に示すように、ＩＭＳサーバ１の同一ネットワーク推測部１４は、ＩＰ保存部１３に保存されたＩＰアドレスとＩＰ認識部１２が抽出したＩＰアドレストとを比較し、同一のＬＡＮ４上のものであることを判定する。そして、同一ネットワーク推測部１４により、ＩＭＳサーバ１から２つのＩＭクライアント３−１、３−２にＬＡＮ内接続通知メッセージが送られる。
【００６３】
次に、図６（ｃ）に示すように、ＬＡＮ内接続通知メッセージを受信したＩＭクライアント３−１、３−２では、接続先設定部３３がバディリスト管理部３２で管理されているバディリストに従って接続先の設定を変更する。これにより、ＩＭクライアント３−１と３−２とがプロキシサーバ２を介することなく、ＬＡＮ４を介してピアツーピアで接続される。そして、送信すべきデータがＩＭクライアント３−１から３−２に送られることとなる。
【００６４】
以上説明したように、この実施の形態にかかるネットワークシステムにおいては、同一のＬＡＮ４上にあるＩＭクライアント３同士でデータを送受信しようとして、ＩＭＳサーバ１がそれぞれの接続要求メッセージを受信すると、ＩＭＳサーバ１は、送信側から受信側へのデータ送信を仲介することなく、当該同一ＬＡＮ４上のＩＭクライアント３にＬＡＮ内接続通知メッセージを送信する。このＬＡＮ内接続通知メッセージによって、ＩＭクライアント３同士がピアツーピアで接続される。
【００６５】
同一のＬＡＮ４上のＩＭクライアント３同士がピアツーピアで接続されてデータを送受信することで、ＩＭクライアント３間でデータを送受信する際に、プロキシサーバ２やＩＭＳサーバ１に過大な負荷をかけることがない。このため、同一のＬＡＮ４上に存在するＩＭクライアント３間で大容量のデータを送受信することが可能となる。
【００６６】
また、ＩＭクライアント３においては、ＩＭＳサーバ１からＬＡＮ内接続通知メッセージが送られてくることで接続先設定部３３が自動で接続先を設定変更し、同一ＬＡＮ４上の他のＩＭクライアント３とピアツーピアで接続できるようにしている。このように接続先の設定変更は、ＩＭクライアント３のユーザが煩雑な操作を行わなくても、またコンピュータやネットワークに関する知識がなくても可能となっている。そして、各ＩＭクライアント３のユーザは、データの送信先となる他のＩＭクライアント３が同一のＬＡＮ４上にあるかどうかを意識することなく、同じ操作でＩＭクライアント３間のデータ通信を指示することができるようになる。
【００６７】
［第２の実施の形態］
図７は、この実施の形態に適用されるネットワークシステムの例を示す図である。図示するように、このネットワークシステムは、携帯電話局に設けられるサーバ装置１０１と、基地局に設けられる複数の基地局コンピュータ１０２（１０２−１、１０２−２）と、複数の携帯電話機１０３（１０３−１、１０３−２、１０３−３）とを備えている。サーバ装置１０１と基地局コンピュータ１０２との間は、例えば専用線１０４（１０４−１、１０４−２）によって接続される。携帯電話機１０３と基地局コンピュータ１０２との間は、無線接続される。
【００６８】
携帯電話機１０３は、通常はサーバ装置１０１または基地局コンピュータ１０２が介在することによってパケット交換の形態で互いにデータ通信を行う。携帯電話機１０３は、その位置によって基地局コンピュータ１０２のいずれか１つと信号交換を行っており、信号交換を行っている基地局コンピュータ１０２が他の携帯電話機１０３とのデータ通信のために介在することとなる。また、携帯電話機１０３同士の位置関係によっては赤外線通信機能を用いて直接データをやりとりすることができる。直接データをやりとりすることができる位置関係とは、２つの携帯電話機１０３が数メートル以内の範囲にあり、かつその間に障害物が存在しない場合である。
【００６９】
図８は、携帯電話機１０３の構成を示す。ここでは、本発明に関わる機能のみを示している。図示するように、携帯電話機１０３は、パケット通信部２０１と、赤外線通信部２０２と、接続設定部２０３とを備えている。パケット通信部２０１は、基地局コンピュータ１０２との間でパケットの送受信を行う。パケット通信部２０１は、送信すべきデータをパケットに分割する機能及び受信したパケットを組み立ててデータを表示装置などにより出力する機能も備えている。赤外線通信部２０２は、他の装置を介することなく複数の携帯電話機１０３同士で赤外線信号によりデータ通信を行う。
【００７０】
接続先設定部２０３は、パケット通信部２０１のパケットによるデータ通信を行うか、赤外線通信部２０２の赤外線信号によるデータ通信を行うかの接続先の設定を行う。接続先設定部２０３の接続先の設定は、通常の状態ではパケット通信部２０１になっており、外部からの信号（入力キー（図示せず）からの入力信号または他の携帯電話機１０３からの同期信号）の入力によって、接続先の設定を赤外線通信部２０２に切り替える。
【００７１】
基地局コンピュータ１０２は、携帯電話機１０３から受信したパケットを蓄積する機能と、蓄積したパケットを専用線１０４を介してサーバ装置１０１に転送するかパケットヘッダに従って携帯電話機１０３に送信する機能を備えている。蓄積したパケットをサーバ装置１０１と携帯電話機１０３のいずれに送るかは、サーバ装置１０１から通知されるメッセージに従う。基地局コンピュータ１０２は、また、携帯電話機１０３から分割して送られてくるパケットの１番目のものを受信したときに、当該携帯電話機１０３からデータの送信要求がされたものと判断し、その１番目のパケットをサーバ装置１０１に転送する。
【００７２】
サーバ装置１０１は、携帯電話機１０３がどの基地局コンピュータ１０２と信号交換を行っているかという情報を、基地局コンピュータ１０２から収集している。サーバ装置１０１は、基地局コンピュータ１０２から転送された１番目のパケットを受信したときに、そのパケットヘッダが示す送信元と送信先の携帯電話機１０３が信号交換を行っている基地局コンピュータ１０２を調べ、同一のものであるかどうかを判断する。
【００７３】
同一のものであれば、同一基地局メッセージを前記１番目のパケットを送ってきた基地局コンピュータ１０２に送信し、異なるものであれば、異なる基地局メッセージを当該基地局コンピュータ１０２に送信する。異なる基地局メッセージを送信した場合には、当該基地局コンピュータ１０２に蓄積されたパケットが転送されてくることとなるので、サーバ装置１０１は、それをパケットヘッダが示す送信先の携帯電話機１０３が信号交換を行っている基地局コンピュータ１０２に転送するという、データ転送の制御機能も備えている。
【００７４】
以下、このネットワークシステムにおける動作について説明する。最初に、サーバ装置１０１、基地局コンピュータ１０２及び携帯電話機１０３がそれぞれ実行する処理について、図９〜図１１のフローチャートを参照して説明する。ここでも、本発明に関わる処理のみを説明するものとする。
【００７５】
図９は、サーバ装置１０１が実行する処理を示すフローチャートである。このフローチャートの処理は、互いにデータ通信を行う携帯電話機１０３の組毎に複数のプロセスとして同時に並行して実行されることがある。サーバ装置１０１は、このフローチャートの処理の他に、携帯電話機１０３のそれぞれが信号交換を行っている基地局コンピュータ１０２に関する情報を、各基地局コンピュータ１０２から収集するための処理も行っている。
【００７６】
サーバ装置１０１は、後述するステップＳ４０３で基地局コンピュータ１０２のいずれかから転送されてくる１番目のパケットを受信したかどうかを判定している（ステップＳ３０１）。パケットを受信するまでは、ステップＳ３０１の処理を繰り返して行う。
【００７７】
１番目のパケットを受信すると、サーバ装置１０１は、受信したパケットのパケットヘッダが示す送信元の携帯電話機１０３が信号交換を行っている基地局コンピュータ１０２と、送信先の携帯電話機１０３が信号交換を行っている基地局コンピュータ１０２とが、いずれのものであるかを各基地局コンピュータ１０２から収集している情報に基づいて調べる（ステップＳ３０２）。そして、送信元の携帯電話機１０３が信号交換を行っている基地局コンピュータ１０２と送信先の携帯電話機１０３が信号交換を行っている基地局コンピュータ１０２とが同一のものであるかどうかを判定する（ステップＳ３０３）。
【００７８】
基地局コンピュータ１０２が同一であったならば、サーバ装置１０１は、同一基地局メッセージを、専用線１０４を介してパケットを送ってきた基地局コンピュータ１０２に通知する（ステップＳ３０４）。そして、サーバ装置１０１自体が携帯電話機１０３間のデータ通信を制御することなく、このフローチャートの処理を終了する。
【００７９】
一方、ステップＳ３０３で基地局コンピュータ１０２が異なっていたならば、サーバ装置１０１は、異なる基地局メッセージを、専用線１０４を介してパケットを送ってきた基地局コンピュータ１０２に通知する（ステップＳ３０５）。この通知に基づいて、当該基地局コンピュータ１０２に蓄積された全てのパケットが転送されてくることとなるので（後述するステップＳ４０７参照）、サーバ装置１０１は、転送されてきた各パケットをパケットヘッダが示す送信先の携帯電話機１０３が信号交換を行っている基地局コンピュータ１０２に転送する（ステップＳ３０６）。全てのパケットの転送が終了した後、このフローチャートの処理を終了する。
【００８０】
図１０は、基地局コンピュータ１０２がそれぞれ実行する処理を示すフローチャートである。このフローチャートの処理は、各基地局コンピュータ１０２において常時実行されている。
【００８１】
基地局コンピュータ１０２は、後述するステップＳ５０３で携帯電話機１０３から送信されてくるパケットを受信したかどうかを判定する（ステップＳ４０１）。パケットを受信した場合は、基地局コンピュータ１０２は、受信した関連あるパケットを全て、一時的に内部に蓄積する（ステップＳ４０２）。また、基地局コンピュータ１０２は、そのうちの１番目のパケットの受信で携帯電話機１０３からのデータの送信要求があったものとして、当該１番目のパケットをサーバ装置１０１に転送する（ステップＳ４０３）。
【００８２】
１番目のパケットを転送すると、基地局コンピュータ１０２は、サーバ装置１０１からのメッセージの待機モードに入り、ステップＳ３０４で通知される同一基地局メッセージかステップＳ３０５で通知される異なる基地局メッセージを受信する（ステップＳ４０４）。そして、サーバ装置１０１から通知されたメッセージが、同一基地局メッセージであるか異なる基地局メッセージであるかを判定する（ステップＳ４０５）。
【００８３】
同一基地局メッセージであった場合には、ステップＳ４０２で蓄積した各パケットを、そのパケットヘッダが示す送信先の携帯電話機１０３に転送する（ステップＳ４０６）。異なる基地局メッセージであった場合には、ステップＳ４０２で蓄積した各パケットを、サーバ装置１０１に転送する（ステップＳ４０７）。ステップＳ４０６またはＳ４０７で全てのパケットの転送を終了すると、ステップＳ４０１の処理に戻る。
【００８４】
また、ステップＳ４０１で携帯電話機１０３から送信されてくるパケットを受信していないと判定した場合には、基地局コンピュータ１０２は、ステップＳ３０６でサーバ装置１０１から転送されてくるパケットを受信したかどうかを判定する（ステップＳ４０８）。サーバ装置１０１からもパケットを受信していなければ、ステップＳ４０１の処理に戻る。
【００８５】
サーバ装置１０１から転送されてくるパケットを受信した場合には、基地局コンピュータ１０２は、受信したパケットをそのパケットヘッダが示す送信先の携帯電話機１０３に転送する（ステップＳ４０９）。そして、ステップＳ４０１の処理に戻る。
【００８６】
図１１は、携帯電話機１０３がそれぞれ実行する処理を示すフローチャートである。このフローチャートの処理は、各携帯電話機１０３において常時実行されている。ここで、携帯電話機１０３から他の携帯電話機１０３にデータを送信する場合には、その送信すべきデータは、既に送信元の携帯電話機１０３内に蓄積されているものとする。
【００８７】
携帯電話機１０３は、ユーザのキー操作などにより他の携帯電話機１０３にデータの送信が指示されたかどうかを判定する（ステップＳ５０１）。データの送信が指示された場合には、パケット通信部２０１が、送信すべきデータをパケットのサイズに分割し、それぞれに送信元及び送信先の携帯電話機１０３を示す情報を含むパケットヘッダを付加したパケットを生成する（ステップＳ５０２）。パケット通信部２０１は、ステップＳ５０２で生成した全てのパケットを、当該携帯電話機１０３が信号交換を行っている基地局コンピュータ１０２に送信する（ステップＳ５０３）。そして、ステップＳ５０１の処理に戻る。
【００８８】
一方、ユーザによりデータの送信が指示されていない場合には、パケット通信部２０１が、ステップＳ４０６またはＳ４０９で基地局コンピュータ１０２から送されてくる、他の携帯電話機１０３からのパケットを受信したかどうかを判定する（ステップＳ５０４）。基地局コンピュータ１０２から転送されてくるパケットを受信していなければ、ステップＳ５０１の処理に戻る。
【００８９】
基地局コンピュータ１０２から転送されてくるパケットを受信した場合には、パケット通信部２０１は、受信したパケットを内部に蓄積し（ステップＳ５０５）、一連の全てのパケットを受信したかどうかを判定する（ステップＳ５０６）。一連の全てのパケットを受信していなければ、ステップＳ５０１の処理に戻り、一連の全てのパケットを受信することとなるまで、そのままパケットを内部に蓄積したままとする。
【００９０】
一連の全てのパケットを受信し終わると、パケット通信部２０１は、蓄積した各パケットに分割されているデータを組み立て（ステップＳ５０７）、例えば表示装置に表示するなどして出力する（ステップＳ５０８）。そして、ステップＳ５０１の処理に戻る。
【００９１】
次に、このネットワークシステムにおいて、データ転送を行う２台の携帯電話機１０３の位置関係に応じてシステム全体としてどのような手順が採られるかについて、図１２の説明図を参照して説明する。ここで、携帯電話機１０３−１と携帯電話機１０３−２とは、同一の基地局コンピュータ１０２−１を介してサーバ装置１０１に接続することが可能となっているが、携帯電話機１０３−３は、基地局コンピュータ１０２−１を介してサーバ装置１０１に接続することはできず、基地局コンピュータ１０２−２を介してサーバ装置１０１に接続されることとなっているものとする。
【００９２】
例えば、携帯電話機１０３−１から携帯電話機１０３−２にデータを送信する場合には、図１２（ａ）に示すように、送信側の携帯電話機１０３−１が、送信すべきデータに関する全てのパケットを基地局コンピュータ１０２−１に送信する（▲１▼）。各パケットは、基地局コンピュータ１０２−１内に一時蓄積される。基地局コンピュータ１０２−１は、そのうちで１番目に受信したパケットをサーバ装置１０１に転送する（▲２▼）。
【００９３】
サーバ装置１０１は、基地局コンピュータ１０２−１から受信したパケットのパケットヘッダなどに基づいて、送信側の携帯電話機１０３−１と受信側の携帯電話機１０３−２がいずれも基地局コンピュータ１０２−１と信号交換を行っていることが分かる。そこで、サーバ装置１０１は、同一基地局メッセージを基地局コンピュータ１０２−１に通知する（▲３▼）。この同一基地局メッセージに基づいて、基地局コンピュータ１０２−１は、蓄積していた全てのパケットを携帯電話機１０３−２に転送する（▲４▼）。こうして、携帯電話機１０３−１から送信すべきデータが携帯電話機１０３−２に送られることとなる。
【００９４】
また、携帯電話機１０３−１から携帯電話機１０３−３にデータを送信する場合にも、図１２（ｂ）に示すように、送信側の携帯電話機１０３−１が、送信すべきデータに関する全てのパケットを基地局コンピュータ１０２−１に送信する（▲１▼）。各パケットは、基地局コンピュータ１０２−１内に一時蓄積される。基地局コンピュータ１０２−１は、そのうちで１番目に受信したパケットをサーバ装置１０１に転送する（▲２▼）。
【００９５】
サーバ装置１０１は、基地局コンピュータ１０２−１から受信したパケットのパケットヘッダなどに基づいて、送信側の携帯電話機１０３−１が信号交換を行っている基地局コンピュータ１０２−１は、受信側の携帯電話機１０３−３が信号交換を行っている基地局コンピュータ１０２−２ではないことが分かる。そこで、サーバ装置１０１は、異なる基地局メッセージを基地局コンピュータ１０２−１に通知する（▲３▼）。
【００９６】
基地局コンピュータ１０２−１は、異なる基地局メッセージを受信することによって、蓄積していた全てのパケットをサーバ装置１０１に転送する（▲４▼）。サーバ装置１０１は、基地局コンピュータ１０２−１から転送されてきた各パケットを、そのパケットヘッダなどに基づいて受信側の携帯電話機１０３−３が信号交換を行っている基地局コンピュータ１０２−２に転送する（▲５▼）。基地局コンピュータ１０２−２は、サーバ装置１０１から転送されてきた全てのパケットを携帯電話機１０３−３に転送する（▲６▼）。こうして、携帯電話機１０３−１から送信すべきデータが携帯電話機１０３−３に送られることとなる。
【００９７】
以上説明したように、この実施の形態にかかるネットワークシステムでは、サーバ装置１０１は、送信すべきデータの１番目のパケットに基づいて送信側（送信元）の携帯電話機１０３と受信側（送信先）の携帯電話機１０３とが同じ基地局コンピュータ１０２と信号交換を行っていることが分かると、同一基地局メッセージを当該基地局コンピュータ１０２に通知している。当該基地局コンピュータ１０２は、この同一基地局メッセージに基づいて、サーバ装置１０１を介さずに送信側の携帯電話機１０３から送られてきた各パケットを受信側の携帯電話機１０３に転送するようにしている。このため、サーバ装置１０１に余計な負荷をかけることがない。
【００９８】
また、サーバ装置１０１は、送信すべきデータの１番目のパケットに基づいて送信側（送信元）の携帯電話機１０３と受信側（送信先）の携帯電話機１０３とが同じ基地局コンピュータ１０２と信号交換を行っていないことが分かると、異なる基地局メッセージを送信側が信号交換を行っている基地局コンピュータ１０２に通知している。当該基地局コンピュータ１０２は、この異なる基地局メッセージに基づいて、サーバ装置１０１に送信側の携帯電話機１０３から送られてきた各パケットを送信し、サーバ装置１０１から受信側が信号交換を行っている基地局コンピュータ１０２を介して、各パケットが受信側の携帯電話機１０３に届くようにしている。このため、携帯電話機１０３の間におけるデータ通信に支障が生じることがない。
【００９９】
基地局コンピュータ１０２は、送信側の携帯電話機１０３から送られた１番目のパケットをサーバ装置１０１に転送し、これに基づいてサーバ装置１０１から同一基地局メッセージまたは異なる基地局メッセージが通知されている。通知されたメッセージにより、送信側の携帯電話機１０３からのパケットの転送先を決めることができるので、複雑な接続設定等の処理を行う必要がない。また、各ユーザの携帯電話機１０３では、どの基地局コンピュータ１０２と信号交換を行っているかということを意識する必要はない。
【０１００】
［実施の形態の変形］
本発明は、上記の第１、第２の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【０１０１】
上記の第１の実施の形態では、同一のプロキシサーバ２を経由してＩＭＳサーバ１に接続する複数のＩＭクライアント３は、同一のＬＡＮ４上に存在して、ピアツーピア接続することが可能であることを前提として説明した。しかしながら、異なるＬＡＮ上に存在する複数のＩＭクライアントが同一のプロキシサーバを経由してＩＭＳサーバ１に接続する場合もあり得る。同一のＬＡＮ上に存在する複数のＩＭクライアントが異なるプロキシサーバを経由してＩＭＳサーバ１に接続する場合もあり得る。
【０１０２】
図１３は、異なるＬＡＮ上に存在する複数のＩＭクライアントが同一のプロキシサーバを経由してＩＭＳサーバ１に接続する場合における例を説明する図である。この場合において、送信側の接続要求メッセージと受信側の接続要求メッセージが同一のプロキシサーバ２を介して送られてくるので、上記の実施の形態と同じ処理では、ＩＭＳサーバ１は、ＬＡＮ内接続通知メッセージをＩＭクライアント３−１と３−２とに送信してしまうこととなる。
【０１０３】
しかし、ＩＭクライアント３−１と３−２とでは、ＬＡＮ内接続通知メッセージが送られてきても、バディリスト管理部３２で管理されているバディリストにより、互いに異なるＬＡＮ４−１、４−２上のものであることが分かる（▲１▼）。そこで、それぞれ接続不可通知メッセージをプロキシサーバ２を介してＩＭＳサーバ１に送信する（▲２▼）。この接続不可通知メッセージの受信によって、ＩＭクライアント３−１と３−２との間のデータ通信は、受信側のＩＭクライアント３がポーリング方式で所定期間毎に送る接続要求メッセージに従って行われることとなる。
【０１０４】
図１３に示すようにＩＭＳサーバ１とプロキシサーバ２とＩＭクライアント３−１及び３−２が接続されている場合において、プロキシサーバ２がＩＭＳサーバ１の機能を利用せずにＩＭクライアント３−１と３−２との間のデータ通信を制御できる機能を有し、バディリスト管理部３２で各ＩＭクライアント３が接続するプロキシサーバ２に関する情報も管理するのであれば、さらに次のような変形を加えることもできる。
【０１０５】
ＩＭクライアント３−１と３−２は、ＩＭＳサーバ１からＬＡＮ内接続通知メッセージが通知されると、これとバディリストとに基づいて、同一のＬＡＮに接続はされていないが、それぞれが接続されているＬＡＮ４−１と４−２とが同一のプロキシサーバ２に接続されていることが分かる。プロキシサーバ２でも、ＩＭクライアント３−１と３−２とに転送したＬＡＮ内接続通知メッセージにより、それぞれがＬＡＮ４−１及び４−２のみを介して接続されていることが分かる。
【０１０６】
この場合、ＩＭクライアント３−１と３−２とでは、接続先設定部３３による接続先の設定をプロキシサーバ２を介して行うままとして互いにデータ通信を行う。プロキシサーバ２は、このＩＭクライアント３−１と３−２との間において送受信されるデータをＩＭＳサーバ１に転送することなく、その送受信の処理を制御する。これにより、ＩＭクライアント３−１と３−２との間でデータ通信を行う場合に、ＩＭＳサーバ１に大きな負荷をかける必要がなくなる。
【０１０７】
また、図１４は、同一のＬＡＮ上に存在する複数のＩＭクライアントが異なるプロキシサーバを経由してＩＭＳサーバ１に接続する場合における例を説明する図である。異なるプロキシサーバ２−１、２−２を経由して送られた接続要求メッセージは、上記の実施の形態と同じ処理によっていたのでは、別のＬＡＮ４上に存在するＩＭクライアント３−１、３−２からのものとして判断されてしまうこととなる。
【０１０８】
そこで、ＩＭクライアント３−１と３−２とでは、まずＬＡＮ４毎に固有のグループＩＤを入力する。グループＩＤの入力は、初期設定時に１回だけ行えばよい（▲１▼）。次に、ＩＭクライアント３−１と３−２とからそれぞれＩＭＳサーバ１に接続要求メッセージを送信する場合には、その接続要求通知メッセージにグループＩＤを含ませるものとする（▲２▼）。
【０１０９】
ＩＭＳサーバ１では、同一のＬＡＮ４であるかどうかの判断を、ＩＰアドレスに基づいて行うのではなく、接続要求通知メッセージに含まれるグループＩＤに基づいて行うものとする。グループＩＤに基づいた判断であれば、ＩＭクライアント３−１と３−２とが同一のＬＡＮ４上にあることが分かり、ＩＭＳサーバ１からプロキシサーバ２−１、２−２を介して、ＩＭクライアント３−１、３−２にそれぞれＬＡＮ内接続通知メッセージが送られる（▲３▼）。
【０１１０】
ＩＭクライアント３−１、３−２では、ＩＭＳサーバ１から送られてきたＬＡＮ内接続通知メッセージに基づいてバディリストを参照すると、互いに同一のＬＡＮ４上にあることが分かる。そこで、それぞれ接続先の設定を変更し、プロキシサーバ２−１、２−２やＩＭＳサーバ１を介することなく、ピアツーピアで直接的にデータ通信を行えるようになる。このようにグループＩＤを用いることによって、異なるプロキシサーバ２−１、２−２をそれぞれ経由してＩＭＳサーバ１に接続するＩＭクライアント３−１、３−２同士でも、上記の実施の形態と同様なピアツーピアでのデータ通信が可能となる。
【０１１１】
上記の第１の実施の形態では、同一のＬＡＮ４上に存在するＩＭクライアント３同士をピアツーピアで接続できない場合には、受信側のＩＭクライアント３のポーリングに従ってプロキシサーバ２及びＩＭＳサーバ１を介してデータ通信が行われるものとしていた。しかしながら、このような手法で大容量のデータをＩＭクライアント３間でやりとりすると、ＩＭＳサーバ１やプロキシサーバ２に過大な負荷がかかり、システムがダウンしてしまうような事態も発生する。そこで、ＩＭＳサーバ１は、送信側のＩＭクライアント３から送られてきた接続要求メッセージが一定量を超え、かつ受信側のＩＭクライアント３が同一のＬＡＮ４上にないときは、データ通信不可通知メッセージを送信側のＩＭクライアント３に送信するものとしてもよい。
【０１１２】
上記の第２の実施の形態では、携帯電話機１０３は、いずれか１の基地局コンピュータ１０２と信号交換を行うものとしていたが、複数の基地局コンピュータ１０２と同時に信号交換を行えるようにした携帯電話システムも存在する。図１５は、このようなシステムにおける変形例を示す図である。ここで、送信側の携帯電話機１０３−１は、基地局コンピュータ１０２−１及び１０２−２と信号交換を行っている。受信側の携帯電話機１０３−２は、基地局コンピュータ１０２−２及び１０２−３と信号交換を行っている。
【０１１３】
携帯電話機１０３−１は、送信すべきデータに関するパケットを、自己が信号交換を行っている基地局コンピュータ１０２−１と１０２−２とに送信する（▲１▼）。この時点では、基地局コンピュータ１０２−１と１０２−２の両方が、携帯電話機１０３−１から送られてきたパケットを蓄積している。また、基地局コンピュータ１０２−１と１０２−２とは、いずれも１番目のパケットをサーバ装置１０１に転送する（▲２▼）。
【０１１４】
サーバ装置１０１は、受信したパケットのパケットヘッダなどを調べると、基地局コンピュータ１０２−２は受信側の携帯電話機１０３−２とも信号交換を行っているが、基地局コンピュータ１０２−１は受信側の携帯電話機１０３−２と信号交換を行っていないことが分かる。そこで、サーバ装置１０１は、基地局コンピュータ１０２−２に同一基地局メッセージを通知し（▲３▼）、基地局コンピュータ１０２−１にはパケット破棄メッセージを通知する（▲４▼）。
【０１１５】
パケット破棄メッセージを受信した基地局コンピュータ１０２−１は、これに従って蓄積していた携帯電話機１０３−１からのパケットを全て破棄する。同一基地局メッセージを受信した基地局コンピュータ１０２−２は、これに従って蓄積していた携帯電話機１０３−１からのパケットを、全て受信側の携帯電話機１０３−２に転送する（▲５▼）。こうして、携帯電話機１０３−１から送信すべきデータが携帯電話機１０３−２に送られることとなる。なお、携帯電話機１０３−２が他にも信号交換を行っている基地局コンピュータ１０２−３では、この場合において実行される処理がない。
【０１１６】
図１５に示すシステムにおいて、送信側の携帯電話機１０３−１と受信側の携帯電話機１０３−２とが共通した基地局コンピュータ１０２と信号交換をできていない場合もある。例えば、携帯電話機１０３−２が基地局コンピュータ１０２−３とだけ信号交換を行っている場合である。このような場合には、サーバ装置１０１は、例えば基地局コンピュータ１０２−２に異なる基地局メッセージを通知し、上記した実施の形態のようにサーバ装置１０１が、携帯電話機１０３−１から携帯電話機１０３−２へのデータ転送を制御するようにすればよい。
【０１１７】
また、送信側の携帯電話機１０３−１と受信側の携帯電話機１０３−２とが共通して信号交換を行っている基地局コンピュータ１０２が複数ある場合もある。例えば、携帯電話機１０３−２も基地コンピュータ１０２−１及び１０２−２と信号交換を行っている場合である。このような場合には、サーバ装置１０１は、基地局コンピュータ１０２−１と１０２−２とのいずれかを選んで、例えば基地局コンピュータ１０２−１にパケット破棄メッセージを通知し、基地局コンピュータ１０２−２に同一基地局メッセージを通知するものとすればよい。同一基地局メッセージを通知する基地局コンピュータ１０２の選択は、例えば、各基地局コンピュータ１０２にかかる負荷に基づいて行うことができる。
【０１１８】
さらに、通常の携帯電話網に加えてＰＨＳ網にも接続可能な携帯電話機も存在する。このような携帯電話機は、通常の携帯電話の基地局コンピュータとＰＨＳの基地局コンピュータの両方と信号交換を行っている。例えば、図１５において、基地局コンピュータ１０２−１と１０２−３が通常の携帯電話の基地局に設置され、基地局コンピュータ１０２−２がＰＨＳの基地局に設置されている場合である。
【０１１９】
ここで、携帯電話機１０３−１と１０３−２とのいずれも、基地局コンピュータ１０２−１、１０２−２、１０２−３の全てと信号交換を行っているとすると、いずれの基地局コンピュータ１０２−１、１０２−２、１０２−３に同一基地局メッセージを送ってもよいこととなる。もっとも、一般的には、通常の携帯電話よりもＰＨＳの方が高速なデータ通信を行うことができるので、このような場合には、サーバ装置１０１は、ＰＨＳの基地局コンピュータ１０２−２に同一基地局メッセージを通知し、通常の携帯電話の基地局コンピュータ１０２−１及び１０２−３にパケット破棄メッセージを通知することが好ましい。
【０１２０】
上記の第２の実施の形態では、携帯電話機１０３は、赤外線通信部２０２を有し、基地局コンピュータ１０２やサーバ装置１０１といった他の装置を介さずにデータ通信する機能を備えていた。そこで、何らかの手法によりサーバ装置１０１が、２つの携帯電話機１０３が他の装置を介さずにデータ通信できる位置にあるかどうかを知ることができるのであれば、第１の実施の形態と同様に送信元と送信先の携帯電話機１０３にサーバ装置１０１から直接通信可能な旨の通知を送る。この通知に基づいて、２つの携帯電話機１０３の接続先設定部２０３が赤外線通信部２０２に接続先の設定を切り替え、赤外線通信部２０２により他の装置を介さずに直接データ通信するようにしてもよい。複数の携帯電話機１０３が、赤外線通信部２０２により赤外線通信で直接データ通信する他に、無線ＬＡＮを介して直接データ通信するものであったり、Bluetooth技術を適用して直接データ通信するものであったりしてもよい。
【０１２１】
上記の第２の実施の形態では、携帯電話事業者が１つであり、その電話局のサーバ装置１０１が１つだけであることを前提にして説明した。しかし、現実には複数の携帯電話事業者が存在し、異なる事業者の携帯電話機同士でもデータ通信を可能としている場合がある。図１６は、このような場合の変形例を示す図である。
【０１２２】
ここで、サーバ装置１０１−１、基地局コンピュータ１０２−１及び携帯電話機１０３−１が第１の事業者に属するもの、サーバ装置１０１−２、基地局コンピュータ１０２−２及び携帯電話機１０３−２が第２の事業者に属するものとする。サーバ装置１０１−１と１０２−２とは、互いに異なる事業者に属するが、相互にパケットを転送する機能を備えている。
【０１２３】
送信側の携帯電話機１０３−１は、送信すべきデータに関するパケットを、自己が信号交換を行っている基地局コンピュータ１０２−１に送信する（▲１▼）。基地局コンピュータ１０２−１は、携帯電話機１０３−１からの全てのパケットを一時蓄積すると共に、その１番目のパケットをサーバ装置１０１−１に転送する（▲２▼）。
【０１２４】
サーバ装置１０１−１は、受信したパケットのパケットヘッダから受信側の携帯電話機１０３−２が第２の事業者に属し、基地局コンピュータ１０２−１と信号交換を行えないものであることが分かる。そこで、サーバ装置１０１−１は、異なる基地局メッセージを基地局コンピュータ１０２−１に通知し（▲３▼）、基地局コンピュータ１０２−１は、この異なる基地局メッセージに従って、蓄積していたパケットを全てサーバ装置１０１−１に転送する（▲４▼）。
【０１２５】
サーバ装置１０１−１は、こうして基地局コンピュータ１０２−１から受信したパケットのパケットヘッダから受信側の携帯電話機１０３−２が第２の事業者に属することが分かるので、これらを全て第２の事業者に属するサーバ装置１０１−２に転送する（▲５▼）。
【０１２６】
サーバ装置１０１−２は、サーバ装置１０１−１から送られてきたパケットのパケットヘッダ等を調べると、その送信先となる携帯電話機１０３−２が基地局コンピュータ１０２−２と信号交換していることが分かる。そこで、これらの全てを基地局コンピュータ１０２−２に転送し（▲６▼）、基地局コンピュータ１０２−２から携帯電話機１０３−２に転送する（▲７▼）。つまり、ここでは基地局コンピュータ１０２−２だけでなく、サーバ装置１０１−２もデータ転送を中継するだけの中継装置として機能することとなる。こうして、携帯電話機１０３−１から送信すべきデータが携帯電話機１０３−２に送られることとなる。
【０１２７】
上記の第２の実施の形態では、サーバ装置１０１及び基地局コンピュータ１０２は、単純にパケットヘッダを参照するだけで、携帯電話機１０３の間のデータ転送を行うものとしていた。この場合、最近問題になっている迷惑メールの送信を防ぐことができない。そこで、例えば、携帯電話機１０３のユーザ毎にデータを送信されてもよい相手を登録しておき、次のような処理を行うことで、迷惑メールの送信を防ぐことができる。
【０１２８】
サーバ装置１０１は、ステップＳ３０１で受信したパケットのパケットヘッダが示す送信元の携帯電話機１０３が登録された相手である場合にのみ、同一基地局メッセージまたは異なる基地局メッセージを基地局コンピュータ１０２に通知するものとすればよい。ステップＳ３０１で受信したパケットのパケットヘッダが示す送信元の携帯電話機１０３が登録された相手でない場合には、サーバ装置１０１は、パケット破棄メッセージを基地局コンピュータ１０２に通知するものとすればよい。
【０１２９】
上記の第１の実施の形態では、図４及び図５のフローチャートにそれぞれ示したプログラムは、ＩＭＳサーバ１及びＩＭクライアント３で実行されるものとして説明した。また、上記の第２の実施の形態では、図９〜図１１のフローチャートにそれぞれ示したプログラムは、サーバ装置１０１、基地局コンピュータ１０２及び携帯電話機１０３で実行されるものとしていた。これらのプログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどのコンピュータ読み取り可能な記録媒体に格納して、ハードウェアとは別に配布するものとしてもよい。また、これらの処理プログラムの全部または一部をインターネット５上のＷｅｂサーバ装置が有する固定ディスク装置に格納しておき、各装置からの要求に従って、当該Ｗｅｂサーバ装置からインターネット５を通じて配信するものとしてもよい。
【０１３０】
上記の第１の実施の形態では、ＩＭクライアント３間で送受信するデータについて、どのような種類のデータであるかを特に示してはいなかった。上記の実施の形態に示したようにＩＭクライアント３間で送受信することが有効なデータとして、特に次のようなものを挙げることができる。
（１）著作権その他の知的財産権法上認められる範囲であれば、音楽データ、テレビ及びビデオの映像データ、個人放送局から発信する映像データや音声データ、ウィルス対策用のプログラムなどが適用できる。
（２）公開を目的とした個人情報として、ホームページのコンテンツ、アプリケーション毎の個人設定情報、公開スケジュールの画像データや音声データ（イラストや生声など）、各種の辞書データなどが適用できる。
（３）特定の目的のために通信されるデータとして、インターネット電話（ボイスチャット）の画像データや音声データ、インターネット会議の画像データ、音声データ、ファイル及びイベント通知など、ピアツーピア処理を行うアプリケーションソフトで取り扱う各種データなどが適用できる。また、ＬＡＮ４上に同一のユーザが使用するＩＭクライアント３が複数ある場合には、ユーザ定義のＩＭＥ辞書データや共有ファイルなどが適用できる。
【０１３１】
上記の第２の実施の形態では、複数の携帯電話機１０３の間におけるデータ通信は、パケット通信の形態で行われるものとし、基地局コンピュータ１０２またはサーバ装置１０１で受信される１番目のパケットが、そのデータの送信要求を示すものとして取り扱っていた。これに対して、複数の携帯電話機１０３の間におけるデータ通信を、パケット通信の形態をとらずに同期通信などの形で行ってもよい。この場合には、送信側の携帯電話機１０３は、実際に送信すべきデータを基地局コンピュータ１０２に送信する前に、データの送信要求を基地局コンピュータ１０２を介してサーバ装置１０１に送信するものとすればよい。この送信要求に基づいて、サーバ装置１０１は、携帯電話機１０３の間におけるデータ通信を基地局コンピュータ１０２のみに制御させて行うか、自己による制御でも行うかを決めることができる。
【０１３２】
【発明の効果】
以上説明したように、本発明によれば、煩雑な接続設定を行うことなく、また、他の装置に不必要な負荷をかけることなしに、クライアント装置間でのデータ通信を行えるようになる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に適用されるネットワークシステムの例を示す図である。
【図２】図１のＩＭＳサーバの機能構成を示す図である。
【図３】図１のＩＭクライアントの機能構成を示す図である。
【図４】図１のＩＭＳサーバが実行する処理を示すフローチャートである。
【図５】図１のＩＭクライアントがそれぞれ実行する処理を示すフローチャートである。
【図６】本発明の第１の実施の形態において、ＩＭクライアント間でのデータ転送の手順を説明する図である。
【図７】本発明の第２の実施の形態に適用されるネットワークシステムの例を示す図である。
【図８】図７の携帯電話機の機能構成を示す図である。
【図９】図７のサーバ装置が実行する処理を示すフローチャートである。
【図１０】図７の基地局コンピュータが実行する処理を示すフローチャートである。
【図１１】図７の携帯電話機が実行する処理を示すフローチャートである。
【図１２】本発明の第２の実施の形態において、携帯電話間でのデータの転送を説明する図である。
【図１３】異なるＬＡＮ上に存在する複数のＩＭクライアントが同一のプロキシサーバを経由してＩＭＳサーバに接続する場合における第１の実施の形態の変形例を説明する図である。
【図１４】同一のＬＡＮ上に存在する複数のＩＭクライアントが異なるプロキシサーバを経由してＩＭＳサーバに接続する場合における第１の実施の形態の変形例を説明する図である。
【図１５】複数の基地局と同時に信号交換可能な携帯電話機を適用した場合における第２の実施の形態の変形例を説明する図である。
【図１６】異なる携帯電話事業者が提供する複数の携帯電話機を適用した場合における第２の実施の形態の変形例を説明する図である。
【符号の説明】
１  ＩＭＳサーバ
２  プロキシサーバ
３  ＩＭクライアント
４  ＬＡＮ
５  インターネット
１１  メッセージ保存部
１２  ＩＰ認識部
１３  ＩＰ保存部
１４  同一ネットワーク推測部
１５  通信制御部
３１  メッセージ授受部
３２  バディリスト管理部
３３  接続先設定部
３４  通信制御部
１０１  サーバ装置
１０２  基地局コンピュータ
１０３  携帯電話機
１０４  専用線
２０１  パケット通信部
２０２  赤外線通信部
２０３  接続設定部
【図１】
0003682439.tif 000002
【図２】
0003682439.tif 000003
【図３】
0003682439.tif 000004
【図４】
0003682439.tif 000005
【図５】
0003682439.tif 000006
【図６】
0003682439.tif 000007
【図７】
0003682439.tif 000008
【図８】
0003682439.tif 000009
【図９】
0003682439.tif 000010
【図１０】
0003682439.tif 000011
【図１１】
0003682439.tif 000012
【図１２】
0003682439.tif 000013
【図１３】
0003682439.tif 000014
【図１４】
0003682439.tif 000015
【図１５】
0003682439.tif 000016
【図１６】
0003682439.tif 000017