(57)【要約】【課題】サーバ等を用いたコンピュータネットワークにおいて、サーバを経由するトラフィックを軽減して各情報処理装置の利用者間における円滑且つ多様なコミュニケーションを実現する。【解決手段】グローバルＩＰアドレスを有するクライアント間であるパーソナルコンピュータ同士の接続をピアツーピア接続とし、その他のクライアント間の接続をサーバ２を経由したクライアント・サーバ型接続とさせる。ピアツーピア接続はサーバ２から取得した互いのグローバルIPアドレスに基づいて確立され、クライアント・サーバ型接続からピアツーピア型接続への一部遷移によって、トラフィックのサーバ２に対する一局集中を避けることができる。【選択図】図１
2008035537.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して他の情報処理装置と情報通信を行う情報処理装置において、
サーバまたは前記他の情報処理装置と通信を行う通信手段と、
前記通信手段により前記サーバと接続した後、前記サーバに格納されている前記他の情報処理装置のアドレスを取得するアドレス取得手段と、
前記アドレス取得手段が取得したアドレスに基づき、前記他の情報処理装置にグローバルIPアドレスまたはプライベートIPアドレスのいずれが付与されているかを判断する判断手段と、
前記判断手段の判断結果に基づき、前記他の情報処理装置と情報通信を行うために、前記サーバとの接続または前記他の情報処理装置とのピアツーピア接続のいずれかの接続を選択する選択手段と
を備える情報処理装置。
【請求項２】
前記選択手段は、前記判断手段がグローバルIPアドレスが付与されていると判断した場合は前記他の情報処理装置とのピアツーピア接続を選択し、前記判断手段がプライベートIPアドレスが付与されていると判断した場合は前記サーバとの接続を選択する
請求項１に記載の情報処理装置。
【請求項３】
ネットワークを介して他の情報処理装置と情報通信を行う情報処理装置の情報処理方法において、
前記情報処理装置は、サーバまたは前記他の情報処理装置と通信を行う通信手段を備え、
前記通信手段により前記サーバと接続した後、前記サーバに格納されている前記他の情報処理装置のアドレスを取得し、
前記アドレスに基づき、前記他の情報処理装置にグローバルIPアドレスまたはプライベートIPアドレスのいずれが付与されているかを判断し、
判断結果に基づき、前記他の情報処理装置と情報通信を行うために、前記サーバとの接続または前記他の情報処理装置とのピアツーピア接続のいずれかの接続を選択する
ステップを含む情報処理方法。
【請求項４】
ネットワークを介して他の情報処理装置と情報通信を行う情報処理装置のコンピュータに実行させるプログラムにおいて、
前記情報処理装置は、サーバまたは前記他の情報処理装置と通信を行う通信手段を備え、
前記通信手段により前記サーバと接続した後、前記サーバに格納されている前記他の情報処理装置のアドレスを取得し、
前記アドレスに基づき、前記他の情報処理装置にグローバルIPアドレスまたはプライベートIPアドレスのいずれが付与されているかを判断し、
判断結果に基づき、前記他の情報処理装置と情報通信を行うために、前記サーバとの接続または前記他の情報処理装置とのピアツーピア接続のいずれかの接続を選択する
ステップを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はインターネットなどの情報通信網を介してコンピュータやその他の電子機器などの情報処理装置間におけるネットワークアプリケーションを実行し得る情報処理装置及び情報処理方法、更には情報処理装置間におけるネットワークアプリケーションを実行するためのプログラムに関し、特にネットワークにおけるトラフィックを適切に分散できる情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来から、多数のコンピュータ装置が接続されたコンピュータネットワークとして、いわゆるインターネット（The Internet）が広く普及している。インターネットは、ＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）を代表とする各種のプロトコル（相互接続手順）を利用して、コンピュータ同士の間で様々な情報を自在に送受信することが可能とされている。
【０００３】
このうちIPは、OSI参照モデルの第３層であるネットワーク層のプロトコルを意味し、このネットワーク層においては、送信するデータにIPヘッダと呼ばれるフォーマット部分が付加される。このIPヘッダには、送信元のIPアドレス(Source IP Address)とあて先のIPアドレス(Destination IP Address)が含まれる。現在使用されているIPアドレスはIPｖ４ (Internet Protocol version 4)であり、次世代ではIPｖ６(Internet Protocol version ６)が使用される。IPｖ４の場合、IPアドレスは８ビットの数字を４つ並べたもので表記され、インターネット技術の基本要素の１つである。
【０００４】
このIPアドレスには、その管理の上で大きく分けて２つの種類があり、１つはグローバルIPアドレスであり、他の１つはプライベートIPアドレスである。グローバルIPアドレスは、NIC（Network Information Center）から割り当てられたインターネット上で唯一のアドレスであり、インターネットに直接接続されるコンピュータには重複の許されないグローバルIPアドレスが割り当てられる。プライベートIPアドレスは直接インターネットに接続されない例えば企業内LAN（Local Area Network）の各コンピュータに通常そのネットワーク管理者やDHCP(Dynamic Host Configuration Protocol)などによって割り当てられる。プライベートIPアドレスについては、RFC(Request for Comments)1597に、３つのクラスのアドレス範囲が示されており、例えば[192.168.xxx.xxx]のように閉じたLAN内で通常設定されるIPアドレスが予約されている。
【０００５】
ところで、インターネットなどの情報通信網に接続されたコンピュータ装置のユーザの間で、意志や感情の相互伝達（コミュニケーション）を行う場合、電子メールを利用してコミュニケーションを図る手法や、いわゆるチャットプログラムを利用してコミュニケーションを図る手法がとられている。特にチャットプログラムを用いる場合では、コミュニケーションに高いリアルタイム性が伴うと言う利点が有り、最近では、上述したチャットプログラムにおいて送受信する文字データに代えて動画像データを送受信する、いわゆる動画チャットプログラムも実現されている。動画チャットプログラムは、例えば、コンピュータ装置に接続又は搭載された撮像装置により取り込んだユーザの表情などの動画像データをユーザ間で送受信することによって、いわばテレビジョン電話のようにして相手側のユーザとの間で送受信するプログラムであり、最近の通信速度の高速化に応じて普及してきているアプリケーションである。
【０００６】
コンピュータなどの情報処理装置を接続させ相手の装置にデータを送信するための接続形態としては、クライアント・サーバ(client/server)型接続と、ピアツーピア(peer to peer)型接続が存在する。クライアント・サーバ型接続では、クライアントとして機能する情報処理装置とサーバとして機能する情報処理装置が分かれており、特にサーバとして機能する情報処理装置にアクセス制御などの管理機能を持たせることもでき、クライアント・サーバ型接続では、ネットワークの拡張性に優れると言う利点がある。
【０００７】
図１７はクライアント・サーバ型接続の通信形態を示す図である。パーソナルコンピュータ１０１はサーバとして機能し、パーソナルコンピュータ１０２、１０３はクライアントとして機能する。これらパーソナルコンピュータ１０１〜１０３には、共通のコミュニケーションアプリケーションが起動する。パーソナルコンピュータ１０２からパーソナルコンピュータ１０３には、通信路１０４、パーソナルコンピュータ１０１、及び通信路１０５を介してデータが伝送される。サーバとして機能するパーソナルコンピュータ１０１はインターネットを介して接続可能であり、当該パーソナルコンピュータ１０１はグローバルIPアドレスが付与されている。また、送信元のパーソナルコンピュータ１０２は、例えばISP（Internet Service Provider）に接続することで送信可能となり、接続時にグローバルIPアドレスが割り当てられる。クライアントのパーソナルコンピュータ１０３は、クライアント・サーバ接続では、サーバから送出したデータはルータなどのネットワークノードで所要のルーティングが行われることから、プライベートIPアドレスが付与されているだけで良く、グローバルIPアドレスを必要とはしない。
【０００８】
このようなクライアント・サーバ型の接続形態は、図１８のように、パーソナルコンピュータ１０１、１０２の間の通信路１０６がインターネットを含む通信網であり、その通信路１０６に対してルータ１０７を介してクライアントのパーソナルコンピュータ１０３が接続される場合がある。このクライアント・サーバ型接続されたシステムにおいて、パーソナルコンピュータ１０２からパーソナルコンピュータ１０３にデータを送信する時は、サーバとなるパーソナルコンピュータ１０１を介してデータが送信され、パーソナルコンピュータ１０２、１０３の間で直接データを送信することはない。
【０００９】
次にピアツーピア型接続について説明する。図１９はピアツーピア型接続の通信形態を示す図である。ピアツーピア型接続では各パーソナルコンピュータ１０８，１０９，１１０が対等なものとなり、専用のサーバが不要なため比較的に構成が容易となるなどの利点がある。これらパーソナルコンピュータ１０８〜１１０には、共通のコミュニケーションアプリケーションが起動し、パーソナルコンピュータ１０８とパーソナルコンピュータ１０９の間の通信には通信路１１１が用いられ、パーソナルコンピュータ１０８とパーソナルコンピュータ１１０の間の通信には通信路１１２が用いられ、パーソナルコンピュータ１０９とパーソナルコンピュータ１１０の間の通信には通信路１１３が用いられる。このようなピアツーピア型の接続は、図２０のように、パーソナルコンピュータ１０８〜１１０の間のネットワーク１１４がインターネットを含む通信網である場合に、各パーソナルコンピュータ１０８〜１１０にグローバルIPアドレスが付与されていれば良く、例えば図６０でパーソナルコンピュータ１０９とパーソナルコンピュータ１１０の間でデータを送信する場合では、ピアツーピア型接続で最短経路である通信路１１３を介して接続すれば良い。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、上述のごときクライアント・サーバ型接続とピアツーピア型接続の各接続形態には、次のような問題がある。先ず、クライアント・サーバ型接続では、クライアント間のデータ送信の場合に、サーバとして機能するパーソナルコンピュータ１０１を介してデータを送る必要があり、動画を用いたり接続するクライアントの数が増加した場合では、サーバを経由するデータ送信量（トラフィック）が増大して、データ送信の低速化や輻輳などの悪影響が起こりうる。
【００１１】
一方、ピアツーピア型接続では、４台や５台程度のパーソナルコンピュータを用いる小規模LANの構築には適しており、直接相手に対して送信を行うために送信量を小さくすることができるが、現実的には通信網としてインターネットを用いることが必要であり、各ノードがグローバルIPアドレスを有している必要がある。通常、企業内LANにおいては、それぞれのコンピュータはグローバルIPアドレスが付与されておらず、NAT（Network Address Translation）をルータなどによって実行することで、プライベートIPアドレスをグローバルIPアドレスに変換してインターネットに接続される。したがって、企業内LANなどのプライベートLAN内のコンピュータはグローバルIPアドレスを有していないため、直接的なピアツーピア型接続ができないでいる。
【００１２】
本発明は、上述の技術的な課題に鑑み、通信回線の負荷となる過大なトラフィックを抑えつつ同時にプライベートIPアドレスが付与されている情報処理装置に対しても有効なデータ通信が可能となる情報処理システム、このような情報処理システムに適用される情報処理装置及び情報処理方法、更には情報処理装置間におけるネットワークアプリケーションを実行するための情報処理ネットワークプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
また、本発明の一側面の情報処理装置は、ネットワークを介して他の情報処理装置と情報通信を行う情報処理装置であって、サーバまたは前記他の情報処理装置と通信を行う通信手段と、前記通信手段により前記サーバと接続した後、前記サーバに格納されている前記他の情報処理装置のアドレスを取得するアドレス取得手段と、前記アドレス取得手段が取得したアドレスに基づき、前記他の情報処理装置にグローバルIPアドレスまたはプライベートIPアドレスのいずれが付与されているかを判断する判断手段と、前記判断手段の判断結果に基づき、前記他の情報処理装置と情報通信を行うために、前記サーバとの接続または前記他の情報処理装置とのピアツーピア接続のいずれかの接続を選択する選択手段とを備える。
【００１４】
本発明の一側面においては、サーバまたは他の情報処理装置と通信を行う通信手段によりサーバと接続した後、サーバに格納されている他の情報処理装置のアドレスが取得される。そして、そのアドレスに基づき、他の情報処理装置にグローバルIPアドレスまたはプライベートIPアドレスのいずれが付与されているかが判断され、この判断結果に基づき、他の情報処理装置と情報通信を行うために、サーバとの接続または他の情報処理装置とのピアツーピア接続のいずれかの接続が選択される。
【発明の効果】
【００１５】
本発明の一側面によれば、クライアント・サーバ型接続からピアツーピア型接続への遷移によって、サーバに対するトラフィックの一局集中を避けることができ、システム全体としてのトラフィックの最適化を図ることができる。したがって、本発明によれば、画像データ、音声データ、或いは文字データ等の各種情報を情報処理装置間で効率よく伝送することができ、各情報処理装置の利用者間における円滑且つ多様なコミュニケーションを実現することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について図面を参照しながら説明する。図１はクライアント・サーバ型接続とピアツーピア接続を共有するコミュニケーションシステム１の概略図である。図１に示すように、グローバルIPアドレスを有するサーバ2がインターネット（The Internet）などの情報通信網上に置かれており、このサーバ2は後述するようなコミュニケーションアプリケーションを処理することができ、インターネットを介してアクセス可能で且つ情報発信が可能なWWWサーバを構成している。
【００１７】
このサーバ２に対して接続可能な情報処理装置として複数のクライアント、図１では３つのパーソナルコンピュータ３、４、５が存在する。これらパーソナルコンピュータ３、４、５は、サーバ２に対する接続機能を有し、所謂TCP／IP（Transmission Control Protocol / Internet Protocol）プロトコル群を利用して情報処理装置間での情報（データ）の送受信が可能である。本実施形態においては、市販のパーソナルコンピュータがクライアント型情報処理装置として使用されるが、クライアント型情報処理装置としては各種PDA（Personal Digital Assistants）機器やウェブブラウザとしても機能するような携帯電話機などの各種の電子デバイスを含めることが可能であり、更には家庭電化製品などの機器も含まれる。
【００１８】
（１）システムの構成
これらパーソナルコンピュータ３、４、５には、後述するようなコミュニケーションアプリケーションがインストールされており、パーソナルコンピュータ３、４、５はサーバ２に対してクライアント・サーバ型接続を行った場合及び同じコミュニケーションアプリケーションを開いている他のパーソナルコンピュータとの間でピアツーピア型接続を行った場合には、該コミュニケーションアプリケーションが作動して複数のユーザ間で意思や感情の交換も可能となる。ここでクライアント・サーバ型接続は、情報を提供する側と受ける側に分けられる形式の接続の一例であり、情報を提供する側がサーバであり、情報を受ける側がクライアントとされる。サーバ自体は専用装置でも良く或いは複数台の情報処理装置に亘って構成されるものでも良い。また、ピアツーピア型接続は、対等な関係での接続の一例であり、ピアツーピア型接続では両方の情報処理装置がそれぞれ情報を提供する側として機能し得ると共に情報を受ける側としても機能し得る。なお、以下の説明において、情報を提供する側と受ける側に分けられる形式の接続としてクライアント・サーバ型接続を用い、対等な関係での接続としてピアツーピア型接続を用いるが、本発明の情報処理装置、情報処理システムなどはこれらに限定されず、同等若しくは類するような各種の接続形態を含むものである。
【００１９】
これらパーソナルコンピュータ３、４、５の中、パーソナルコンピュータ３、４は直接インターネットに接続できるようにグローバルIPアドレスが付与されている。また、パーソナルコンピュータ５は、サーバ２に対して交信できるが、グローバルIPアドレスは付与されておらず、プライベートIPアドレスが付与された情報処理装置である。
【００２０】
図１は共有接続が行われた状態を示しており、サーバ２は通信路６a、６b、６ｃを介してそれぞれパーソナルコンピュータ３、４、５に接続されている。通信路６a、６b、６ｃは、インターネットを含む様な通信網の一部であり、部分的に電話回線、ケーブルテレビ回線などであっても良い。また、通信路６a、６b、６ｃは有線、無線を問わない。通信路６a、６b、６ｃはサーバ２とそれぞれパーソナルコンピュータ３、４、５の間でクライアント・サーバ型接続をするためのルートとなる。パーソナルコンピュータ３とパーソナルコンピュータ４の間には、ピアツーピア型接続をするための通信路７が形成される。通信路７もインターネットを含む様な通信網の一部であり、部分的に電話回線、ケーブルテレビ回線などであっても良い。また、通信路７は有線、無線を問わない。パーソナルコンピュータ３とパーソナルコンピュータ４にはそれぞれグローバルIPアドレスが付与されており、各グローバルIPアドレスを利用してパーソナルコンピュータ３とパーソナルコンピュータ４がサーバを介さずにピアツーピア型に接続される。
【００２１】
図１の接続状態では、パーソナルコンピュータ３とパーソナルコンピュータ４の間がピアツーピア型接続となり、他の接続はクライアント・サーバ型接続となる。すなわち、クライアント間であるパーソナルコンピュータ３とパーソナルコンピュータ５の間の接続は、サーバ２を介したクライアント・サーバ型接続となる。パーソナルコンピュータ３とパーソナルコンピュータ４の間のピアツーピア型接続は、パーソナルコンピュータ３、パーソナルコンピュータ４はそれぞれ単独では互いのグローバルIPアドレスを知りえないため、サーバ２から取得した互いのグローバルIPアドレスに基づいて接続される。例えばパーソナルコンピュータ３が有するパーソナルコンピュータ４のグローバルIPアドレスは、サーバ２との接続の後にサーバ２の内部のデータから取得したものであり、そのデータを利用してパーソナルコンピュータ３は接続形態をパーソナルコンピュータ４に対してはピアツーピア型接続に遷移させる。このようなクライアント・サーバ型接続からピアツーピア型接続への遷移によって、トラフィックのサーバ２に対する一局集中を避け、システム全体としてのトラフィックの最適化を図ることができる。
【００２２】
図２は図１のより具体的な構成を示す図である。インターネットを含む通信網９に接続するサーバ２及びパーソナルコンピュータ３、４は、それぞれグローバルIPアドレスが付与された装置である。パーソナルコンピュータ３、４は、例えば固定のグローバルIPアドレスを以ってインターネットに接続する装置であったり、或いは、IPS（Internet Service Provider）などから接続の度にグローバルIPアドレスが付与される装置とすることも可能である。クライアントとして機能するパーソナルコンピュータ５は、企業内LANなどに配置される装置であり、ルータ８を介して外部通信網９に接続される。
【００２３】
このようにパーソナルコンピュータ５がルータ８を介して外部に接続する場合には、パーソナルコンピュータ５のプライベートIPアドレスは当該ルータ８でグローバルIPアドレスに変換され、そのルータ８のグローバルIPアドレスがサーバ２に保持される。従って、サーバ２においては、接続先のパーソナルコンピュータのグローバルIPアドレスとしてルータやNATのグローバルIPアドレスも混在することになるが、サーバ２のテーブルに対する付加情報として、例えばコミュニケーションアプリケーションで取り込む情報として予めグローバル／プライベートの区別をするための情報を取り込んで処理する方法や、IPマスカレードなどを採用する場合のポート番号をグローバル／プライベートで異なるようにする方法なども可能である。
【００２４】
（２）データテーブルの例
図３はサーバに格納されるデータテーブルの一例を示しており、当該サーバに対してクライアント・サーバ型接続するクライアント型装置のIPアドレスが例示されている。このデータテーブルはサーバに格納されるアドレスの管理手段である。ルート番号１の装置には、IPアドレス「a.a.a.a」が付与されており、ルート番号２の装置には、IPアドレス「b.b.b.b」が付与されており、ルート番号３の装置には、IPアドレス「d.d.d.d」が付与されている。これら３つのアドレスの中、ルート番号３の装置はルータなどのIPアドレスを格納しているに過ぎず、このためプライベートIPアドレスか否かの部分（Private?）が「YES」となっている。
【００２５】
サーバがこのようなデータを格納するための手段としては、先ずクライアント側においてコミュニケーションアプリケーションが自動的に当該パーソナルコンピュータのネットワークアダプターカードに割り当てられているIPアドレスを読み取り、それがＲＦＣ１５９７で予約されたアドレス、即ち「１０．０．０．０」〜「１０．２５５．２５５．２５５」、「１７２．１６．０．０」〜「１７２．３１．２５５．２５５」、或いは「１９２．１６８．０．０」〜「１９２．１６８．２５５．２５５」の範囲である場合には、そのパーソナルコンピュータがプライベートIPアドレスを有し且つグローバルIPアドレスを有しないものと判断して、サーバ２に対してプライベートである旨の信号を送る。サーバ側では特定の装置からプライベートである旨の信号を受け取った場合には、図３のデータテーブルのプライベートか否かの部分を「YES」に設定する。このようなコミュニケーションアプリケーションによる自動読み取りの他に、ユーザーが自分でプライベートIPアドレスか否かをサーバに対して手動で送信するようにコミュニケーションアプリケーションを構成することも可能であり、また電子メール内に存在するアドレス情報などを利用することも可能である。また、後述するような図１１のユーザリストを利用することも可能である。
【００２６】
ルータ８が拡張されたNAT機能いわゆるNATP（Network Address Translation Protocol）やＩＰマスカレード機能を有している場合には、ルータ８に接続されるポート番号がTCPヘッダやUDPヘッダに書き込まれてWebサーバに送信される。この変換情報はルータ８に保存されるが、変換された後のポート番号もWebサーバに送信されることから、その変換の状態からプライベートIPアドレスか否かを判断するような手段を用いても良い。
【００２７】
クライアント・サーバ型接続を行っていたクライアント型情報処理装置であるパーソナルコンピュータ３は、サーバ２との接続から当該サーバに格納されているデータテーブルの情報を取得し、そのデータテーブルのデータからグローバルIPアドレスであるものを選択する。この時グローバルIPアドレスはプライベートIPアドレスでないものを選択すれば良い。この選択したグローバルIPアドレス（例えば図３における「d.d.d.d」を利用し、サーバを介して接続する関係の他のクライアントであるクライアント型情報処理装置であるパーソナルコンピュータ４に対してピアツーピア型接続を行う。このようなピアツーピア型接続を行うことで、ピアツーピア型の接続にかかるパーソナルコンピュータ同士は直接データ送信を行うことが可能となり、サーバ２へのトラフィックの集中を避けることができ、送信負荷を低減することが可能とされる。
【００２８】
次に、本実施形態のシステムで共通に使用されるコミュニケーションアプリケーションについて説明する。
【００２９】
（３）コミュニケーションプログラムの概略
以下では、後述するコンピュータ装置（図１２参照）により実行されるコミュニケーションプログラムについて説明する。コンピュータ装置で実行されるコミュニケーションプログラムは、他のコンピュータ装置で実行されるコミュニケーションプログラムとの間で、いわゆるサーバ・クライアント方式により通信を行う。すなわち、相互接続状態が確立された複数のコミュニケーションプログラムにおいては、所定のコミュニケーションプログラムによりサーバとしての機能が実現され、他のコミュニケーションプログラムがクライアントとして動作する。ただし、コミュニケーションプログラムは、コンピュータ装置において実行処理が開始され、他のコミュニケーションプログラムとの間で相互接続状態が確立されていない時点、すなわち初期起動状態において、いわば仮想セッションモードでの動作となり、サーバ又はクライアントの区別なく、自分自身でセッションの確立を行うことができる。
【００３０】
ここで、複数のコンピュータ装置で実行される各々のコミュニケーションプログラム間でセッションの確立を行う場合には、これらコミュニケーションプログラム間で接続設定情報の授受が行われる。この接続設定情報は、例えば、コミュニケーションプログラムの起動時にコンピュータ装置によって生成されるものであり、この接続設定情報の送出元となるコンピュータ装置に設定されたＩＰアドレス、及び当該コミュニケーションプログラムで利用されるポート番号などが記述されたファイルにより構成されている。なお、接続設定情報についての詳細は後述する。
【００３１】
そして、コミュニケーションプログラムから、他のコミュニケーションプログラムに対して接続設定情報が送出されると、この接続設定情報を取得したコミュニケーションプログラムは、接続設定情報に記述されたＩＰアドレスやポート番号などに基づいて、送出元であるコンピュータ装置（ひいては、このコンピュータ装置で実行されるコミュニケーションプログラム）に対して、接続処理を行い、セッションが確立される。
【００３２】
このとき、接続設定情報を含むファイルは、例えば拡張子によってコミュニケーションプログラムとの関連付けがなされており、いわゆるダブルクリック操作を行うことなどによってコンピュータ装置上でこのファイルが選択されると、自動的にコミュニケーションプログラムが起動するよう構成されている。
【００３３】
コミュニケーションシステムにおいては、起動時に接続設定情報を生成し、この接続設定情報を他のコミュニケーションプログラムに対して送出した側のコミュニケーションプログラムがサーバとしての機能を果たし、取得した接続設定情報に基づいて起動された側のコミュニケーションプログラムがクライアントとして動作するものとする。
【００３４】
ここで、上述のようにしてコンピュータ装置間で接続設定情報を授受するに際しては、例えば、サーバとなるコンピュータ装置からクライアントとなるコンピュータ装置に対して、接続開始を促すメッセージが記載された電子メールに接続設定情報を含むファイルを添付して送信することにより実現されている。
【００３５】
なお、本例で説明するコミュニケーションシステムにおいては、電子メールを利用して接続設定情報を送出するものとするが、例えば、いわゆるＦＴＰソフトウェアなどのような、インターネットに接続されたコンピュータ装置の間で各種のファイル交換を実現するアプリケーションプログラムを用いることによって、接続設定情報をデータ・ファイル或いはアプリケーション・プログラムの形で送出するとしてもよい。また、例えば、コンピュータ装置の利用者（ユーザ）に対して接続開始を通知することなく、接続設定情報を直接コンピュータ装置間で授受することによって、ユーザに接続の開始（セッションの確立）を意識させることなく自動的にクライアント側のコンピュータ装置上でコミュニケーションプログラムが起動するように構成してもよい。
【００３６】
（４）コミュニケーションプログラムのモジュール構造
ここで、コミュニケーションプログラムにおけるモジュール構造の一例について、図４を参照しながら説明する。コミュニケーションプログラムは、例えば図４の（Ａ）に示すように、コンピュータ装置におけるネットワークインターフェースの動作を制御するインターフェースモジュール５０と、他のコンピュータ装置で実行されるコミュニケーションプログラム間でのセッションの確立などを提供するコアモジュール５１と、コミュニケーションプログラムにおける基本的な機能を提供する基本モジュール５２と、各々個別の機能を提供する複数のアプリケーションモジュール５３と、グラフィカル・ユーザ・インターフェース（以下、ＧＵＩ：Graphical User Interfaceと称する。）を管理するＧＵＩモジュール５４とにより構成されている。
【００３７】
インターフェースモジュール５０は、いわばＡＰＩ（Application Program Interface）として構成されており、インターネット等のコンピュータネットワークを介して他のコンピュータ装置で実行されるプログラムとの間で画像データ、音声データ、或いは文字データ等の各種情報の伝送路を確立し、ネットワーク通信の詳細を簡便な命令体系によって容易に処理可能とするモジュールである。このインターフェースモジュール５０としては、例えば、マイクロソフト株式会社の「Direct Play」などを用いることができる。
【００３８】
コアモジュール５１は、他のコミュニケーションプログラムとの間でセッションの確立を行うとともに、確立されたセッションの管理を行うセッション管理機能を有している。具体的には例えば、接続設定情報を作成する接続設定情報作成機能、セッションを確立するセッション確立機能、コミュニケーションプログラム間でデータの送受信を行うデータ送受信機能、確立されたセッション内のプレーヤーを管理するセッション内プレーヤー管理機能などが、セッション管理機能としてコアモジュール５１により提供される。
【００３９】
ここで、コミュニケーションシステム１においては、サーバとなるコミュニケーションプログラムと、クライアントとなるコミュニケーションプログラムとが存在している。サーバ側のコミュニケーションプログラムは、クライアント側のコミュニケーションプログラムから送出されたデータを、このデータの宛先を参照して、宛先として指定された他のクライアント側のコミュニケーションプログラムに転送するなどの処理が行われる。このため、コミュニケーションシステム１においては、画像データ、音声データ、或いは文字データなどの各種情報を授受するに際して、セッションを確立しておくことが必要となる。そこで、コミュニケーションプログラムにおいては、このようなセッションの確立や管理を行うためのインターフェースとしてセッション管理機能がコアモジュール５１により提供されている。
【００４０】
コアモジュール５１は、ＩＰアドレス及びポート番号などを取得して接続設定情報が記述されたファイルを生成する。また、このファイルに対して暗号化や復号化などを行う。また、コアモジュール５１は、クライアントとして動作する場合に、取得した接続設定情報に記述されたＩＰアドレス及びポート番号などに基づいて、サーバ側となるコンピュータ装置に対する接続を行う。これにより、セッションが確立される。
【００４１】
また、コアモジュール５１は、セッション内に存在するコミュニケーションプログラム（プレイヤー）の管理を行う。具体的には例えば、プレイヤーのリストを生成或いは取得したり、プレイヤー毎に割り当てられた固有の識別情報（プレイヤーＩＤ）の取得或いは管理を行う。また、コアモジュール５１は、新規なプレイヤーとの接続が確立されたり、所定のプレイヤーとの接続が切断されたり、プレイヤー毎の接続状態や接続名などの情報を含むプレイヤー情報が変更されるなどして、イベントが生じた場合に、このイベントを基本モジュール５２及び各アプリケーションモジュール５３に対して通知する。
【００４２】
また、コアモジュール５１は、複数のアプリケーションモジュール５３の各々に対する制御を行うアプリケーションモジュール管理機能を有している。具体的には例えば、各アプリケーションモジュール５３の起動管理や、各アプリケーションモジュール５３との間でデータの送受信などを行う。
【００４３】
コアモジュール５１は、具体的には例えば、コミュニケーションプログラムに実装されているアプリケーションモジュール５３に関するモジュール情報を、コンピュータ装置の所定の記憶領域から取得して、実装済みのアプリケーションモジュール５３をリスト化する。このモジュール情報は、例えば、アプリケーションモジュール毎に固有のモジュール識別情報、ＧＵＩに関する情報であるＧＵＩ情報、或いは、コミュニケーションプログラムの起動と同時に動作を開始するか否かを示すフラグ情報などにより構成されている。そして、コアモジュール５１は、このモジュール情報に基づいて、各アプリケーションモジュール５３の起動状態を管理する。
【００４４】
また、コアモジュール５１は、起動されていないアプリケーションモジュール５３を起動したり、コンピュータ装置の表示部２４に対する表示／非表示の切り替え制御などを行う。
【００４５】
ここで、コアモジュール５１の動作の一例として、クライアント側である一方のコミュニケーションプログラムから他方のコミュニケーションプログラムに対して、サーバ側のコミュニケーションプログラムを介してデータを送信する場合について、図５を参照しながら説明する。
【００４６】
この場合において、データ送信側で動作するコアモジュール５１ａは、基本モジュール５２やアプリケーションモジュール５３から送信されたデータを受信し、このデータに対して送信ヘッダーを付与して、サーバ側のコミュニケーションプログラムに対して送信する。このようにサーバ側に送信するに際しては、受信したデータの内容については関与しない。
【００４７】
一方、サーバ側で動作するコアモジュール５１ｂは、データ送信側から取得したデータに含まれる送信ヘッダーを参照して、この送信ヘッダーに宛先として記述されたデータ受信側のコミュニケーションプログラムに対して、データ送信側から取得したデータを送信する。
【００４８】
また、データ受信側で動作するコアモジュール５１ｃは、取得したデータに含まれる送信ヘッダーを参照して、このデータを所定のアプリケーションモジュール５３に対して受け渡す。このとき、コアモジュール５１ｃは、データ受信側におけるコミュニケーションプログラムでデータの受け渡し先として該当するアプリケーションモジュール５３が起動していない場合に、このアプリケーションモジュール５３を起動処理する。
【００４９】
また、コアモジュール５１ｃは、データ受信側のコミュニケーションプログラムに該当するアプリケーションモジュール５３が存在しない場合に、この旨を示すメッセージをデータ送信側のコミュニケーションプログラムに対して送信する。このとき、コアモジュール５１ｃは、取得したデータを受け渡す対象となるアプリケーションモジュール５３として、全てのアプリケーションモジュール５３が指定されている場合には、起動中であるアプリケーションモジュールにのみ、このデータを受け渡す。
【００５０】
コアモジュール５１は、上述のように動作することによって、クライアントとして動作するコミュニケーションプログラム間でデータの受け渡しを行う。
【００５１】
一方、基本モジュール５２は、コミュニケーションプログラムで用いる各種ウィンドウを用意する機能を有するモジュールである。また、基本モジュール５２は、コミュニケーションプログラムの実行処理に必要となる各種の情報を設定する設定機能、及び、セッションを確立する際に接続設定情報を電子メールに添付してクライアント側に送信する電子メール送信機能などを有する。
【００５２】
また、アプリケーションモジュール５３は、コミュニケーションプログラムに必要に応じて複数実装され、それぞれ独自の機能を提供する機能を有している。本例におけるコミュニケーションプログラムにおいては、アプリケーションモジュール５３として、個人情報管理モジュール５３ａ、画像送信モジュール５３ｂ、音声データ送受信モジュール５３ｃ、Ｗｅｂ機能モジュール５３ｄ、チャット内容転送モジュール５３ｅ、チャットログモジュール５３ｆ、感情表現モジュール５３ｇ、アクションモジュール５３ｈ、及びライブ出演モジュール５３ｉなどが実装されているものとする。
【００５３】
個人情報管理モジュール５３ａは、セッション内に存在する各コミュニケーションプログラム、すなわち各ユーザ（プレイヤー）に対応した画像データや名前情報などの個人情報を管理するモジュールである。
【００５４】
このコミュニケーションプログラムにおいては、最初に起動された状態で、ユーザに対応した画像や名前などの入力及び設定をユーザに要求して取得する。このとき、コアモジュール５１を介して個人情報管理モジュール５３ａに対して、表示要求が送信される。このようにして他のモジュールからの表示要求を受信すると、個人情報管理モジュール５３ａは、ＧＵＩモジュール５４に対して所定の取得要求を送信して、該当する個人情報を取得し、コンピュータ装置に表示されたウィンドウ内の所定の領域に所定の個人情報を表示する。
【００５５】
また、個人情報管理モジュール５３ａは、他のモジュールからのプレイヤー情報更新要求を受信した場合に、ネットワークを介して接続が確立された他のコミュニケーションプログラムにおける個人情報管理モジュール５３ａに対して、個人情報取得要求を送信する。このとき、個人情報取得要求を取得した側の個人情報管理モジュール５３ａは、自分自身の個人情報を取得して表示通知として返信する。
【００５６】
このようなプレイヤー情報更新要求は、例えば、コミュニケーションシステム１に対して新たにユーザが参入した場合に、コアモジュール５１によって個人情報管理モジュール５３ａに対して送信される。
【００５７】
画像送信モジュール５３ｂは、画像データの追加処理、削除処理、或いは選択時の処理などを提供するモジュールである。また、画像送信モジュール５３ｂは、コンピュータ装置に搭載又は接続されたデジタルビデオカメラ２９に対して、撮影状態のオン・オフの切り替え制御などの各種制御を行う。デジタルビデオカメラ２９の撮影状態がオンである場合には、インターネットに対する通信状態の負荷を監視しながら、画像データの送信処理を行う。なお、画像送信モジュール５３ｂにおいては、ユーザによる設定に応じて、他のコミュニケーションプログラムに対する送信を非保証通信で行うこともできる。この場合には、送信した画像データが伝送路の途中で失われた場合であっても再送信を行わない。
【００５８】
音声送受信モジュール５３ｃは、画像送信モジュール５３ｂに相当するものであり、音声データの追加処理、削除処理、或いは選択時の処理などを提供するモジュールである。また、音声送受信モジュール５３ｃは、インターフェースモジュール５０に実装された音声機能を利用して、コミュニケーションプログラム間で音声データの送受信を実現する機能を有している。なお、コミュニケーションシステム１においては、サーバ側のコミュニケーションプログラムにおいて音声出力をオンにしている場合のみ、クライアント側のコミュニケーションプログラムにおいても音声出力をオンとすることが可能とされている。また、クライアント側のコミュニケーションプログラムから送出された音声データは、サーバ側のコミュニケーションプログラムに実装された音声送受信モジュール５３ｃによってミキシングされ、再度各クライアント側のコミュニケーションプログラムに対して送信される。
【００５９】
Ｗｅｂ機能モジュール５３ｄは、コミュニケーションプログラムが実行されるコンピュータ装置、或いはインターネットに接続された他のコンピュータ装置に保持されたハイパーテキストや画像データなどの各種情報を取得して、コミュニケーションプログラムのウィンドウ内における所定の表示領域に、取得した各種情報を表示するＷｅｂ情報表示機能を提供するモジュールである。また、Ｗｅｂ機能モジュール５３ｄは、他のコミュニケーションプログラムとの間で、インターネット上に存在する各種情報（リソース）の所在地及び取得方法を示すＵＲＬ（Uniform Resource Locator）を共有するＵＲＬ共有機能を有する。このＵＲＬ共有機能についての詳細は後述する。
【００６０】
チャット内容転送モジュール５３ｅは、文字データがＧＵＩモジュール５４に対して入力されたことを示すイベントが、このＧＵＩモジュール５４から通知された際に、このイベントに基づいて入力された文字データを取得し、取得した文字データを含むチャットメッセージ通知を、セッションが確立された他のコミュニケーションプログラムの全てに対して送信するモジュールである。また、チャット内容転送モジュール５３ｅは、チャットメッセージ通知を受信すると、このチャットメッセージ通知に含まれる文字データを表示する要求をＧＵＩモジュール５４に対して行う。これにより、コミュニケーションプログラムのウィンドウ内の所定の位置に、いわゆる「吹き出し」状の文字表示領域が確保され、この領域内に文字データが表示される。
【００６１】
チャットログモジュール５３ｆは、チャット内容転送モジュール５３ｅから送信されたチャットメッセージ通知などに基づいて、入力又は受信した文字データを記録してチャットログファイルを生成する。チャットログモジュール５３ｆは、所定の記憶容量分の文字データを、コンピュータ装置のＲＡＭ内に記憶するとともに、必要に応じて、ＲＡＭ内に記憶された文字データをＨＤＤなどに待避させてチャットログファイルを生成する。また、チャットログモジュール５３ｆは、チャットログを表示する要求がなされた場合に、チャットログファイル内に記憶された文字データを取得して、コミュニケーションプログラムのウィンドウ内の所定の領域に表示する機能を有している。
【００６２】
感情表現モジュール５３ｇは、詳細を後述する感情表現に関するアニメーション効果の読み込みや表示などを行うモジュールである。また、感情表現モジュール５３ｇは、感情を表現する際に選択されるボタンの表示などをＧＵＩモジュール５４に要求する。
【００６３】
また、感情表現モジュール５３ｇは、ＧＵＩモジュール５４により所定のボタンが選択された通知を受信すると、このボタンに対応した感情表現データ（アニメーションデータ）を、セッションが確立されている全てのコミュニケーションプログラムに対して送信する。一方、感情表現データを受信した際には、この感情表現データを表示する要求をＧＵＩモジュール５４に対して行う。なお、感情表現についての詳細は後述する。
【００６４】
アクションモジュール５３ｈは、詳細を後述するアクションデータの読み込みや表示などを行うモジュールである。また、アクションモジュール５３ｈは、アクションを表示する際に選択されるボタンの表示などをＧＵＩモジュール５４に要求する。
【００６５】
また、アクションモジュール５３ｈは、アクションを表示する際に選択されるボタンがユーザによって選択されると、選択されたボタンに対応したアクションデータ（アニメーションデータ）を、セッションが確立されている全てのコミュニケーションプログラムに対して送信する。一方、アクションデータを受信した際には、このアクションデータを表示する要求をＧＵＩモジュール５４に対して行う。なお、アクション表示についての詳細は後述する。
【００６６】
ライブ出演モジュール５３ｉは、インターネットを介して画像データや音声データのライブ配信を行うライブ配信プログラムと連携して動作するモジュールである。コミュニケーションプログラムは、ライブ出演モジュール５３ｉが実装されていることにより、外部のライブ配信プログラムとの間で画像データや音声データ等の授受を行うことが可能とされている。
【００６７】
アプリケーションモジュール５３は、上述したような各種のモジュールにより構成されている。なお、コミュニケーションプログラムにおいては、実装されるアプリケーションモジュール５３の数や機能に限定されるものではなく、上述した各種のモジュールの他にも、それぞれ独自の機能を提供するモジュールがアプリケーションモジュール５３のひとつとして実装されていてもよい。また、コミュニケーションプログラムにおいては、必要に応じてアプリケーションモジュール５３の追加又は削除を行うことが可能とされている。
【００６８】
ＧＵＩモジュール５４は、コミュニケーションプログラムで発生するウィンドウ表示等の画面表示を提供するモジュールである。ただし、ダイアロブボックスなどの各種ウィンドウの基本的な描画については、基本モジュール５２により提供される。ＧＵＩモジュール５４は、他のモジュールからなされた画面表示要求に応じて、ウィンドウ内の描画を行い、機能選択ボタンや画像データなどの表示を行う。
【００６９】
このＧＵＩモジュール５４は、機能選択ボタンの位置や並べ方、或いは画像データの表示位置や、ウィンドウ内における全体的な配列・構成に関する情報は有しているが、機能選択ボタンの数や内容に関しては、コアモジュール５１或いは各アプリケーションモジュール５３による要求に含まれるデータを参照することにより表示する。
【００７０】
なお、コミュニケーションプログラムに実装されるアプリケーションモジュール５３は、ＧＵＩモジュール５４に依らずに、独自に描画処理することが可能なアプリケーション表示領域を利用することが可能とされている。このようなアプリケーション表示領域を利用して画面表示を行う場合には、アプリケーションモジュール５３からの要求に応じてＧＵＩモジュールがアプリケーション表示領域を確保し、確保されたアプリケーション表示領域内に対する描画処理は、アプリケーションモジュール５３側で行うことができる。
【００７１】
また、ＧＵＩモジュール５４は、ウィンドウ内に表示された機能選択ボタン等がユーザによって選択された場合に、この機能選択ボタンが選択されたことを示すイベントを、基本モジュール５２やアプリケーションモジュール５３に対して通知する機能を有している。
【００７２】
コミュニケーションプログラムは、上述したように、複数のモジュールによって構成されてなり、各モジュールが必要に応じて適宜連携して動作するように構成されている。
【００７３】
（５）接続設定情報
次に、コミュニケーションシステム１において、コンピュータ装置間でセッションを確立する際に用いられる接続設定情報について説明する。接続設定情報は、サーバとなるコミュニケーションプログラムが実行されるコンピュータ装置において生成される情報である。
【００７４】
接続設定情報は、例えば図４の（Ｂ）に示すように、クライアントとなるコミュニケーションプログラムがサーバとなるコミュニケーションプログラムに対してセッションを確立する際に認証などを行うためのアクセスキー、コミュニケーションプログラムが利用するコンピュータ装置のネットワークインターフェースのポート番号、サーバとなるコミュニケーションプログラムが実行されるコンピュータ装置に設定されたＩＰアドレスの数、及びサーバとなるコミュニケーションプログラムが実行されるコンピュータ装置に設定された一連のＩＰアドレスなどによって構成される。
【００７５】
（６）コミュニケーションプログラムによる基本処理
以下では、上述したコミュニケーションプログラムがコンピュータ装置において実行される場合における基本的な一連の処理について、図６及び図７に示すフローチャートを参照しながら順を追って説明する。
【００７６】
コミュニケーションプログラムは、実行処理が開始（起動）されると、図６に示すステップＳ１０において、機能モジュールリストを参照することにより、起動フラグが立っているモジュールを起動する。機能モジュールリストは、例えば図８に示すようなデータ構造とされており、コミュニケーションプログラムを構成するモジュール毎に、モジュールに固有の識別情報（ＩＤ）と、モジュールに固有のモジュール名と、モジュールの実行形態や利用条件などを示すタイプと、起動時の条件に応じて起動されるか否かを示す起動フラグとにより構成されている。起動フラグについての詳細は後述するが、コミュニケーションプログラムは、機能モジュールリストを参照することによって、起動時の条件に応じて起動するモジュールを選択して起動することが可能とされている。
【００７７】
次に、コミュニケーションプログラムは、ステップＳ１１において、他のコンピュータ装置により実行されるコミュニケーションプログラムから接続設定情報を受信しているか否かを判定する。この判定の結果、受信している場合にはステップＳ１２に処理を進め、受信していない場合にはステップＳ１３に処理を進める。
【００７８】
ここで、コミュニケーションプログラムは、接続設定情報を受信している場合に、当該コミュニケーションプログラムがクライアントとして動作して、接続設定情報の送信元であるサーバ側のコミュニケーションプログラムとの間で各種情報の送受信を行うこととなる。一方、接続設定情報を受信していない場合には、当該コミュニケーションプログラムがサーバとして動作する。
【００７９】
ステップＳ１２において、コミュニケーションプログラムは、受信した接続設定情報に基づいて、この接続設定情報の送信元であるサーバ側のコミュニケーションプログラムとの間でセッションを確立する処理を行う。
【００８０】
ステップＳ１３において、コミュニケーションプログラムは、サーバとして動作することを要求され、サーバ機能を提供するサーバモジュールを起動するか否かを判定する。この判定は、ステップＳ１１における判定に対応しており、接続設定情報を他のコンピュータ装置で実行されるコミュニケーションプログラムから受信したか否かを判定することによって行われる。そして、この判定の結果、サーバモジュールを起動する場合にはステップＳ１４に処理を進め、サーバモジュールを起動せずにクライアントとして動作する場合にはステップＳ１７に処理を進める。
【００８１】
ステップＳ１４において、コミュニケーションプログラムは、自身が起動したサーバモジュールに対してセッションが確立されて接続済みであるか否かを判定する。この判定の結果、未だ接続が行われていない場合にはステップＳ１５に処理を進め、接続済みである場合にはステップＳ１７に処理を進める。
【００８２】
ステップＳ１５において、コミュニケーションプログラムは、サーバ機能を提供するサーバモジュールを起動する。次に、ステップＳ１６において、コミュニケーションプログラムは、自身起動したサーバモジュールに対してセッションを確立して接続を行う。これにより、当該コミュニケーションプログラムにおいては、自身が起動したサーバモジュールによりサーバとしての機能が実現されるとともに、サーバモジュール以外の他のモジュールは、当該サーバモジュールに対して、いわばクライアントとして接続動作することが可能となる。
【００８３】
コミュニケーションプログラムにおいては、このようにサーバ機能がモジュールとして実現されていることから、サーバとして動作する場合であっても、クライアントとして動作する場合と同様な手続きにより、サーバモジュール以外の他のモジュールが、サーバに対してアクセスすることが可能となる。このため、これら他のモジュールにおける処理手続きを簡略化することができる。なお、ステップＳ１６において、サーバモジュールに対するセッションが確立された後に、コミュニケーションプログラムは、ステップＳ１７に処理を進める。
【００８４】
ステップＳ１７において、コミュニケーションプログラムは、コンピュータ装置の画面上にウィンドウを表示し、このウィンドウ内に表示された入力領域や各種の機能選択ボタン等によって、ユーザによる各種指示操作が入力可能な状態となる。そして、ステップＳ１７において、コミュニケーションプログラムは、上述した機能選択ボタンがユーザによって選択され、この機能選択ボタンに対応した機能モジュールを起動するか否かを判定する。この判定の結果、機能モジュールを起動する場合にはステップＳ１８に処理を進め、起動しない場合にはステップＳ１９に処理を進める。
【００８５】
ステップＳ１８において、コミュニケーションプログラムは、ステップＳ１７において選択された機能選択ボタンに対応した機能モジュールを起動する。そして、機能モジュールを起動した後に、コミュニケーションプログラムは、ステップＳ１９に処理を進める。
【００８６】
ステップＳ１９において、コミュニケーションプログラムは、メッセージ送信キューに送信すべきメッセージが存在するか否かを判定する。そして、メッセージ送信キューにメッセージが存在する場合にはステップＳ２０に処理を進め、メッセージが存在しない場合には図７に示すステップＳ２１に処理を進める。
【００８７】
ここで、コミュニケーションプログラムは、他のコミュニケーションプログラムとの間で画像データ、音声データ、或いは文字データなどの各種情報を授受するに際して、これら情報がメッセージと称される情報単位に分割される。そして、相手のコミュニケーションプログラムに対して送信すべきメッセージがメッセージ送信キューに、相手のコミュニケーションプログラムから受信したメッセージがメッセージ受信キューに、それぞれ一時的に蓄積される。なお、メッセージ送信キュー及びメッセージ受信キューは、例えば、コンピュータ装置のＲＡＭにおける記憶領域内に、予め所定の容量だけ確保されている。
【００８８】
ステップＳ２０において、コミュニケーションプログラムは、メッセージ送信キューに存在するメッセージをセッションが確立されているサーバに対して送信する。このステップＳ２０における処理の後に、コミュニケーションプログラムは、処理を図７に示すステップＳ２１に進める。
【００８９】
ステップＳ２１において、コミュニケーションプログラムは、メッセージ受信キューにサーバから受信したメッセージが存在するか否かを判定する。そして、メッセージ受信キューにメッセージが存在する場合には処理をステップＳ２２に進め、メッセージが存在しない場合には処理をステップＳ２５に進める。
【００９０】
ステップＳ２２において、コミュニケーションプログラムは、メッセージの送信先となる機能モジュール、すなわち、このメッセージを利用する機能モジュールが起動済みであるか否かを判定する。この判定の結果、送信先として該当する機能モジュールが未だ起動されていない場合にはステップＳ２３に処理を進め、起動済みである場合にはステップＳ２４に処理を進める。
【００９１】
ステップＳ２３において、コミュニケーションプログラムは、メッセージの送信先となる起動モジュールを起動する。そして、送信先として該当する機能モジュールを起動した後に、コミュニケーションプログラムは、処理をステップＳ２４に進める。
【００９２】
ステップＳ２４において、コミュニケーションプログラムは、メッセージ送信キューに存在するメッセージの送信先として該当する機能モジュールに対して、当該メッセージを送信する。このステップＳ２４における処理の後に、コミュニケーションプログラムは、処理をステップＳ２５に進める。
【００９３】
ステップＳ２５において、コミュニケーションプログラムは、ユーザから所定の指示操作が行われることにより、実行動作を終了することを要求されているか否かを判定する。この判定の結果、終了することを要求されている場合には、処理をステップＳ２６に進め、終了することを要求されていない場合には、処理を図６に示すステップＳ１３に進めて、上述したステップＳ１３以降の一連の処理を繰り返し行う。
【００９４】
ステップＳ２６において、コミュニケーションプログラムは、サーバ機能を実現するサーバモジュールを自身で起動したか否かを判定する。すなわち、当該コミュニケーションプログラムがサーバとして動作しているか否かを判定する。この判定の結果、自身でサーバモジュールを起動した場合には処理をステップＳ２７に進め、自身でサーバモジュールを起動しておらず、クライアントとして動作している場合には、各種の終了処理を行って、一連の処理動作を停止する。
【００９５】
ステップＳ２７において、コミュニケーションプログラムは、ステップＳ１５において自身で起動したサーバモジュールに対して終了処理を行い、このサーバモジュールの動作を停止する。この後に、コミュニケーションプログラムは、各種の終了処理を行って、一連の処理動作を停止する。
【００９６】
つぎに、上述したステップＳ１５において起動されるサーバモジュールにおける一連の処理について、図９及び図１０に示すフローチャートを参照しながら順を追って説明する。
【００９７】
サーバモジュールは、実行処理が開始されると、図９に示すステップＳ５０において、クライアントからの接続要求（セッション確立要求）を受信したか否かを判定する。このとき、クライアントとしては、当該サーバモジュールを起動したコミュニケーションプログラムを構成する他の機能モジュールであってもよいし、他のコンピュータ装置で実行されるコミュニケーションプログラムを構成する機能モジュールであってもよい。そして、この判定の結果、接続要求を受信している場合にはステップＳ５１に処理を進め、受信していない場合にはステップＳ５５に処理を進める。
【００９８】
ステップＳ５１において、サーバモジュールは、現在接続しているユーザの数が、予め設定された最大人数に達しているか否かを判定する。この判定の結果、最大人数に達していない場合にはステップＳ５２に処理を進め、最大人数に達している場合にはステップＳ５５に処理を進める。
【００９９】
ステップＳ５２において、サーバモジュールは、新たに接続要求を行ったユーザに対して、ユーザ毎に固有の情報であるユーザＩＤを生成するとともに、このユーザ側で動作するコミュニケーションプログラムとの間でセッションを確立して接続を行う。これにより、接続要求を行ったユーザ側で動作するコミュニケーションプログラムがクライアントとして、当該サーバモジュールとの間で通信状態が確立され、画像データ、音声データ、或いは文字データなどの各種情報を授受を行うことが可能となる。
【０１００】
次に、ステップＳ５３において、サーバモジュールは、新たに接続要求を行ったユーザ側でコミュニケーションプログラムを実行するコンピュータ装置のＩＰアドレスと、このユーザのユーザ名とを取得するとともに、これらＩＰアドレス及びユーザ名と、ステップＳ５２において生成したユーザＩＤとをユーザリストに追加する。
【０１０１】
ここで、ユーザリストは、例えば図１１に示すようなデータ構造とされており、サーバモジュールに対してセッションの確立が行われたユーザのユーザＩＤと、このユーザのユーザ名と、このユーザ側でコミュニケーションプログラムを実行するコンピュータ装置のＩＰアドレスとにより構成されている。
【０１０２】
次に、ステップＳ５４において、サーバモジュールは、セッションが確立されている全てのクライアントに対して、ステップＳ５３において追加したユーザのユーザＩＤなどを通知する。これにより、サーバモジュールに接続された全てのクライアントは、新たなユーザが接続されたことを知ることができる。このステップＳ５４における処理の後に、サーバモジュールは、ステップＳ５５に処理を進める。
【０１０３】
ステップＳ５５において、サーバモジュールは、セッションが確立されているクライアントとの間で接続状態が切断されたか否かを判定する。この判定の結果、接続状態が切断されている場合にはステップＳ５６に処理を進め、接続状態が切断されていない場合には図１０に示すステップＳ５８に処理を進める。このとき、接続状態が切断される要因としては、例えば、サーバモジュールとクライアントとの間の伝送路において生じた不具合、ユーザによるコミュニケーションモジュールの終了処理などを挙げることができる。
【０１０４】
ステップＳ５６において、サーバモジュールは、ステップＳ５５において接続状態が切断されたと判定されたユーザに関する情報を、ユーザリストから削除する。次に、ステップＳ５７において、サーバモジュールは、ステップＳ５６でユーザリストから削除したユーザに関するユーザＩＤなどの情報を、セッションが確立されている全てのクライアントに対して通知する。これにより、サーバモジュールに接続された全てのクライアントは、当該ユーザの接続が切断されたことを知ることができる。このステップＳ５７における処理の後に、サーバモジュールは、図１０に示すステップＳ５８に処理を進める。
【０１０５】
ステップＳ５８において、サーバモジュールは、接続されたクライアントからメッセージが送信されたか否かを判定する。この判定の結果、送信されている場合にはステップＳ５９に処理を進め、送信されていない場合にはステップＳ６１に処理を進める。
【０１０６】
ステップＳ５９において、サーバモジュールは、メッセージの宛先として指定されたユーザＩＤを参照し、ユーザリストに基づいて当該ユーザＩＤに対応したＩＰアドレスを取得する。次に、ステップＳ６０において、サーバモジュールは、ステップＳ５９において取得したＩＰアドレスが設定されたコンピュータ装置に対して、インターネット等のコンピュータネットワークを介してメッセージを送信する。これにより、メッセージが送信先のコミュニケーションプログラムに届けられる。このステップＳ６０における処理の後に、サーバモジュールはステップＳ６１に処理を進める。
【０１０７】
ステップＳ６１において、サーバモジュールは、コミュニケーションプログラムにからの終了要求を受信したか否かを判定する。そして、この判定の結果、終了要求を受信した場合には、各種の終了処理を行って、一連の処理動作を停止する。また、終了要求を受信していない場合には、処理を図９に示すステップＳ５０に進めて、上述したステップＳ５０以降の一連の処理を繰り返す。このサーバモジュールに対する終了要求は、図７に示したコミュニケーションプログラムの一連の処理におけるステップＳ２７が処理された場合に相当するものである。
【０１０８】
コミュニケーションプログラムは、以上で説明したようにして一連の処理を行うアプリケーション・プログラムである。上述した一連の処理の説明から明らかであるように、コミュニケーションプログラムは、必要に応じてサーバ或いはクライアントとして動作することが可能とされている。
【０１０９】
（７）コンピュータ装置の構成
次に以下では、図１２を参照しながら、上述したコミュニケーションシステムを構成するパーソナルコンピュータであるコンピュータ装置１０の構成について説明する。
【０１１０】
コンピュータ装置１０は、図１２に示すように、各種演算処理を実行するとともに各部を統括して制御するＣＰＵ（Central Processing Unit）２０と、このＣＰＵ２０のワークエリアとして機能するＲＡＭ（Random Access Memory）２１と、ＣＰＵ２０によって実行される各種プログラムを含む情報を格納する読み取り専用のＲＯＭ（Read Only Memory）２２と、ＣＰＵ２０によって実行されるオペレーティング・システム（Operating System）やアプリケーション・プログラム等の各種プログラムが記録され、各種データ等の記録再生が行われるＨＤＤ（Hard Disk Drive）２３と、各種情報を表示する表示部２４と、この表示部２４とＣＰＵ２０との間でのデータの授受を行うための表示用インターフェース２５と、ユーザによって各種情報や指示操作を入力するための操作部２６と、この操作部２６とＣＰＵ２０との間でのデータの授受を行うための操作用インターフェース２７と、上述した公衆回線網１５を介してインターネットに接続された外部装置との間でデータの授受を行うためのネットワークインターフェース２８と、被写体を撮影して映像データや音声データを得るデジタルビデオカメラ２９と、いわゆるＭＰＥＧ２（Moving Picture Experts Group phase 2）方式に基づく圧縮符号化及び復号を行うＭＰＥＧ２コーデック３０とを備える。
【０１１１】
コンピュータ装置１０は、これらの各部のうち、ＣＰＵ２０、ＲＡＭ２１、ＲＯＭ２２、ＨＤＤ２３、表示用インターフェース２５、操作用インターフェース２７、ネットワークインターフェース２８、デジタルビデオカメラ２９、及びＭＰＥＧ２コーデック３０がバス３１を介して接続されて構成される。
【０１１２】
なお、コンピュータ装置１０におけるデジタルビデオカメラ２９は、コンピュータ装置１０に搭載されずに、例えば外部機器接続用の所定のインターフェースや、ネットワークインターフェース２８などを介してバス３１に接続されてもよい。また、コンピュータ装置１０は、必要に応じて、例えば着脱自在とされる記録媒体に対する記録再生を行うリムーバブル型の記録再生装置などがＨＤＤ２３の他に搭載又は接続され、この記録再生装置に対する各種データの記録再生が可能とされていてもよい。
【０１１３】
ＣＰＵ２０は、バス３１を介して、ＲＡＭ２１、ＲＯＭ２２、ＨＤＤ２３、表示用インターフェース２５、操作用インターフェース２７、ネットワークインターフェース２８、デジタルビデオカメラ２９、及びＭＰＥＧ２コーデック３０と接続されている。ＣＰＵ２０は、各部を統括的に制御するとともに、例えばＨＤＤ２３等に記録されているオペレーティング・システムや各種アプリケーション・プログラムを実行処理する。特に、ＣＰＵ２０は、アプリケーション・プログラムのひとつとして構成されたコミュニケーションプログラムの実行を処理する。なお、このコミュニケーションプログラムについての詳細は後述する。
【０１１４】
ＲＡＭ２１は、ＣＰＵ２０が各種プログラムを実行する際のワークエリアとして機能し、ＣＰＵ２０の制御のもとに、各種データを一時記憶する。
【０１１５】
ＲＯＭ２２は、コンピュータ装置１０の起動に必要となる各種プログラムや設定情報などを格納している。このＲＯＭ２２に格納されている各種プログラムや設定情報は、コンピュータ装置１０の起動時に読み出され、ＣＰＵ２０によって利用される。
【０１１６】
ＨＤＤ２３は、オペレーティング・システムやアプリケーション・プログラム等が記録されているとともに、ＣＰＵ２０の制御のもとに各種プログラムやデータ等の記録再生を行う。
【０１１７】
表示部２４は、例えばＬＣＤ（Liquid Crystal Display）からなり、ＣＰＵ２０の制御のもとに、ＨＤＤ２３に記録されているデータ等の各種情報を表示画面に表示する。特に、表示部２４は、ＣＰＵ２０の制御のもとに、後述するコミュニケーションプログラムを実行処理した結果を表示したり、このコミュニケーションプログラムに対して各種の指示操作を行うボタンを表示するためのウィンドウといった、所定のグラフィカル・ユーザ・インターフェースを表示画面に表示する。
【０１１８】
表示用インターフェース２５は、ＣＰＵ２０と表示部２４との間でのデータの授受を行う。すなわち、表示用インターフェース２５は、ＣＰＵ２０からバス３１を介して供給された各種情報を表示部２４に供給する。
【０１１９】
操作部２６は、例えば、キーボード、マウス等のポインティングデバイス、或いはいわゆるジョグダイヤル等回転操作式スイッチなどによるユーザ・インターフェースを用いたユーザによる操作を受け付け、操作内容を示す制御信号を操作用インターフェース２７を介してＣＰＵ２０に供給する。
【０１２０】
操作用インターフェース２７は、ＣＰＵ２０と操作部２６との間でのデータの授受を行う。すなわち、操作用インターフェース２７は、操作部２６から供給された制御信号をバス３１を介してＣＰＵ２０に供給する。
【０１２１】
ネットワークインターフェース２８は、ＣＰＵ２０の制御のもとに、外部との通信を行うインターフェースとして機能する。すなわち、ネットワークインターフェース２８は、インターネットに接続された他のコンピュータ装置１０との間で各種情報の授受を行うために設けられるものである。
【０１２２】
デジタルビデオカメラ２９は、被写体を撮影するための所定の光学系や、ＣＣＤ（Charge Coupled Devices）等の光電変換用のデバイス等からなる。デジタルビデオカメラ２９により得られた映像データや音声データは、ＣＰＵ２０の制御のもとに、バス３１を介してＭＰＥＧ２コーデック３０に供給される。
【０１２３】
ＭＰＥＧ２コーデック３０は、バス３１を介してデジタルビデオカメラ２９から供給された映像データや音声データを、ＣＰＵ２０の制御のもとに、ＭＰＥＧ２方式に基づく圧縮符号化を行う。このとき、ＭＰＥＧ２コーデック３０は、ＣＰＵ２０の制御のもとに、映像データや音声データをリアルタイムに圧縮符号化する。また、ＭＰＥＧ２コーデック３０は、ＭＰＥＧ２方式に基づいて圧縮符号化されたデータを復号することもできる。
【０１２４】
前述のコミュニケーションプログラムは、それぞれ個別の機能を実現する複数のモジュールを組み合わせ自在とされた一連のプログラム群によって構成されており、例えばコンピュータ装置１０のＨＤＤ２３に記録されている。コンピュータ装置１０は、このコミュニケーションプログラムをＣＰＵ２０によって実行することにより、他のコンピュータ装置との間で、画像データ、音声データ、或いは文字データ等の各種情報を授受することによって、各コンピュータ装置のユーザ間での意志や感情の相互伝達（コミュニケーション）を可能とする。なお、コミュニケーションプログラムは、例えばいわゆるコンパクトディスク（Compact Disc）等の所定の記録媒体やインターネット等の伝送媒体によっても提供され得るものである。
【０１２５】
（８）情報処理システムの各手順
次に、本実施形態のクライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの各手順（ステップ）をフローチャートを参照しながら説明する。図１３のフローチャートはクライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの接続時のステップを説明するための図であり、図１４のフローチャートはクライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの通信時のステップを説明するための図であり、図１５のフローチャートはクライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの接続時の更に具体的なステップを説明するための図であり、図１６のフローチャートはクライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの通信時の更に具体的なステップを説明するための図である。
【０１２６】
図１３のフローチャートでは、先ずステップＳ５００で図１のサーバ２に対してパーソナルコンピュータ３がセッションを確立する。この時のサーバ２のパーソナルコンピュータ３に対する接続はクライアント・サーバ型接続となる。
【０１２７】
次にステップＳ５０１でパーソナルコンピュータ３にグローバルＩＰアドレスが割り当てられているか否かが判断される。これはパーソナルコンピュータ３にグローバルＩＰアドレスが割り当てられていない場合は、ピアツーピア型接続が不能であり、他のクライアント型情報処理装置の情報取得が不要であることから、判断の結果、答えが「Ｎｏ」である場合には処理を終了する。
【０１２８】
ステップＳ５０１でパーソナルコンピュータ３にグローバルＩＰアドレスが割り当てられていると判断される場合（答えが「ＹＥＳ」）、続いてパーソナルコンピュータ３はステップＳ５０２でサーバ２から接続中のＰＣ情報を取得する。この時サーバ２から受信するＰＣ情報としては、前述のデータテーブル（図３参照）のクライアントのパーソナルコンピュータのIPアドレスとプライベートＩＰアドレスか否かを記録した部分であり、プライベートＩＰアドレスを有しない即ちグローバルＩＰアドレスを有するクライアントのパーソナルコンピュータが選択される。
【０１２９】
次に、選択されたクライアントのパーソナルコンピュータ即ちグローバルＩＰアドレスを有するパーソナルコンピュータに対してピアツーピア型接続を行う。複数のクライアントのパーソナルコンピュータに対してそれぞれピアツーピア型接続を行うようにしても良く、また、全てのクライアントのパーソナルコンピュータがグローバルＩＰアドレスを有している場合には、それらのパーソナルコンピュータの全部に対してピアツーピア型接続するようにしても良い。
【０１３０】
このようなピアツーピア型接続を行うことで、当該ピアツーピア型の接続にかかるパーソナルコンピュータ同士は直接データ送信を行うことが可能となり、サーバ２へのトラフィックの集中を避けることができ、送信負荷を低減することが可能とされる。
【０１３１】
図１４はクライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの通信時の流れ図である。先ず、パーソナルコンピュータの１つがクライアント・サーバ型接続及びピアツーピア型接続を行なっている場合（ステップS５０４）に、そのパーソナルコンピュータが接続対象としている他のクライアント型パーソナルコンピュータのそれぞれについてピアツーピア型接続されているか否かの確認が行われ（ステップS５０５）、もしピアツーピア型接続がなされていない場合（答えが「ＮＯ」）には、ステップS５０７でサーバにデータが送信されてクライアント・サーバ型接続が行われ、逆にピアツーピア型接続がなされている場合（答えが「ＹＥＳ」）には、ステップS５０６でピアツーピア型接続即ちコンピュータ（相手先）に直接データを送信する。
【０１３２】
次に図１５、図１６を参照して、更に具体的なステップをクライアント側とサーバ側に分けて説明する。図１５はクライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの接続時のフローチャートである。先ず、ステップS５１０でクライアント側のパーソナルコンピュータから、サーバに対して接続を要求する。この接続要求を受けてサーバ側では接続中のクライアントのPC情報として当該クライアント側のパーソナルコンピュータのIPアドレスを取得する（ステップＳ５１１）。このIPアドレスはパーソナルコンピュータのピアツーピア型接続用のデータテーブルに記載される。この時、同時にプライベートIPアドレスかグローバルIPアドレスかのいずれかの情報も該データテーブルに記載するようにしても良い。
【０１３３】
このクライアント側のパーソナルコンピュータのIPアドレスの取得後、ステップＳ５１２で該パーソナルコンピュータの接続要求に応答する。このサーバからの応答によってセッションが確立される（ステップＳ５１２）。セッションの確立後、図１３の場合と同様に、ステップＳ５１３で当該クライアント側のパーソナルコンピュータにグローバルＩＰアドレスが割り当てられているか否かが判断される。これはパーソナルコンピュータにグローバルＩＰアドレスが割り当てられていない場合は、ピアツーピア型接続が不能であり、他のクライアント型情報処理装置の情報取得が不要であることから、判断の結果、答えが「Ｎｏ」である場合には処理を終了する。
【０１３４】
ステップＳ５１３でパーソナルコンピュータにグローバルＩＰアドレスが割り当てられていると判断される場合（答えが「ＹＥＳ」）、続いてパーソナルコンピュータはステップＳ５１４でサーバから現在接続中のパーソナルコンピュータの情報を取得する。この取得手順としてはクライアント側からＰＣ情報の要求（Request）を出し、この要求に応じてＰＣ情報を送信する（ステップＳ５１５）。この時サーバから受信するＰＣ情報としては、前述のデータテーブルのクライアントのパーソナルコンピュータのIPアドレスとプライベートＩＰアドレスか否かを記録した部分である。  
【０１３５】
次に、Ｓ５１５では取得したグローバルＩＰアドレスを利用し、そのグローバルＩＰアドレスを有するパーソナルコンピュータと当該パーソナルコンピュータがピアツーピア接続する。このようなピアツーピア型接続を行うことで、当該ピアツーピア型の接続にかかるパーソナルコンピュータ同士は直接データ送信を行うことが可能となり、サーバへのトラフィックの集中を避けることができ、システムにおける送信負荷を低減できる。  
【０１３６】
図１６はクライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの通信時のフローチャートである。図１５のセッションによって、ステップＳ５２０ではクライアント側のパーソナルコンピュータが前述に共有モデルで接続済みとなり、送信すべきデータに応じてデータのあて先が複数指定されているか否かが判断される（ステップＳ５２１）。
【０１３７】
データの送信先が複数である場合には、ステップＳ５２５に進み、あて先でピアツーピア接続されているものと、されてないものに選別する。続いて、先に取得したグローバルＩＰアドレスを用いピアツーピア接続されているパーソナルコンピュータに対してステップＳ５２６で直接データを送信する。次に、ステップＳ５２７であて先からピアツーピア接続されていない残りのパーソナルコンピュータに対してサーバ経由でデータを送る。これらのステップＳ５２６とＳ５２７でピアツーピア接続されているパーソナルコンピュータとクライアント・サーバ接続されているパーソナルコンピュータの全てにデータが送信されることになる。
【０１３８】
ステップＳ５２１で複数のデータのあて先が指定されていない場合すなわちステップＳ５２１でデータのあて先は単数の場合、そのあて先がピアツーピア接続されているか否かがステップＳ５２２で判断され、否定（「ＮＯ」）の場合、クライアント・サーバ接続が必要となり、ステップＳ５２３であて先を指定してサーバに送信し、処理を終了する。
【０１３９】
ステップＳ５２２であて先とピアツーピア接続されていると判断される場合には、ステップＳ５２４に進み、あて先に直接データ送信がなされ、処理を終了する。
【０１４０】
ステップＳ５２３及びステップＳ５２７でサーバとの接続が必要となるが、その場合にサーバ側では指定されたアドレス（プライベートＩＰアドレス）にデータを転送することになる（ステップＳ５２８）。
【０１４１】
なお、上述においては、本発明の実施の形態として、コミュニケーションシステム１を構成する各情報処理装置上で実行処理されるコミュニケーションプログラムに注目して説明したが、本発明は、このようなコミュニケーションプログラムが実行処理されることにより実現されるコミュニケーションシステム、上述したコミュニケーションプログラムにより実行される処理に相当する手続きが行われることにより実現されるコミュニケーション方法、或いは、上述したコミュニケーションプログラムにより実行される処理に相当する手続きが他のソフトウェア又はハードウェア的手法により実現される情報処理装置に対して、広く適用することができることは述べるまでもない。
【図面の簡単な説明】
【０１４２】
【図１】本発明の実施の形態として示す情報処理システムの全体的な基本構成を示す概略図である。
【図２】本発明の実施の形態として示す情報処理システムの全体的な基本構成を示す他の概略図である。
【図３】本発明の実施の形態として示す情報処理システムのサーバに格納されるデータテーブルの一例を示す図である。
【図４】（Ａ）は同コンピュータ装置上で実行処理されるコミュニケーションプログラムのモジュール構造を示す模式図であり、（Ｂ）は同コミュニケーションプログラムにおいて用いられる接続設定情報のデータ構造を示す模式図である。
【図５】同コミュニケーションプログラムによりデータが送受信されることにより、当該コミュニケーションプログラムを構成するアプリケーションモジュールが起動される場合について説明する模式図である。
【図６】同コミュニケーションプログラムが実行されることによる全体的な処理の流れについて示すフローチャートである。
【図７】同コミュニケーションプログラムで用いられる機能モジュールリストのデータ構造を示す模式図である。
【図８】同コミュニケーションプログラムが実行されることによる全体的な処理の流れについて示すフローチャートである。
【図９】同コミュニケーションプログラムにおいて起動されるサーバモジュールによる処理の流れについて示すフローチャートである。
【図１０】同コミュニケーションプログラムにおいて起動されるサーバモジュールによる処理の流れについて示すフローチャートである。
【図１１】同コミュニケーションプログラムにおいて起動されるサーバモジュールで用いられるユーザリストのデータ構造を示す模式図である。
【図１２】同コミュニケーションシステムに用いられるコンピュータ装置の構成を示す機能ブロック図である。
【図１３】クライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの接続時のステップを説明するためのフローチャートである。
【図１４】クライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの通信時のステップを説明するためのフローチャートである。
【図１５】クライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの接続時の更に具体的なステップを説明するためのフローチャートである。
【図１６】クライアント・サーバ型接続とピアツーピア型接続とを共有とする情報処理システムの通信時の更に具体的なステップを説明するためのフローチャートである。
【図１７】従来の情報処理システムにおけるクライント・サーバ型接続を説明するためのシステム模式図である。
【図１８】従来の情報処理システムにおけるピアツーピア型接続を説明するためのシステム模式図である。
【図１９】従来の情報処理システムにおけるクライント・サーバ型接続を説明するためのシステム模式図であり、ルータを介した例である。
【図２０】従来の情報処理システムにおけるピアツーピア型接続を説明するためのシステム模式図である。
【符号の説明】
【０１４３】
１  コミュニケーションシステム、２  サーバ、３〜５  パーソナルコンピュータ、６，７  通信路、８  ルータ、１０  コンピュータ装置、２０  ＣＰＵ、２１  ＲＡＭ、５０  インターフェースモジュール、５１  コアモジュール、５２  基本モジュール、５３  アプリケーションモジュール、５４  ＧＵＩモジュール
【図１】
2008035537.tif 000003
【図２】
2008035537.tif 000004
【図３】
2008035537.tif 000005
【図４】
2008035537.tif 000006
【図５】
2008035537.tif 000007
【図６】
2008035537.tif 000008
【図７】
2008035537.tif 000009
【図８】
2008035537.tif 000010
【図９】
2008035537.tif 000011
【図１０】
2008035537.tif 000012
【図１１】
2008035537.tif 000013
【図１２】
2008035537.tif 000014
【図１３】
2008035537.tif 000015
【図１４】
2008035537.tif 000016
【図１５】
2008035537.tif 000017
【図１６】
2008035537.tif 000018
【図１７】
2008035537.tif 000019
【図１８】
2008035537.tif 000020
【図１９】
2008035537.tif 000021
【図２０】
2008035537.tif 000022