(57)【要約】【課題】  他通信装置のソケットに空きが無くても当該他通信装置の機能を利用できる通信システムを提供する。【解決手段】  通信ノード１が、通信ノード２，３のソケットの使用数と、使用中のソケットに関係付けられているアプリケーションとを含むソケットの使用状態を調査し、通信ノード２が備えているアプリケーションを実行させるときに、調査した結果に基づいて通信ノード２が保有するソケットに空きがない場合、当該通信ノード３をソケットを用いて通信ノード２との間で通信を中継するように通信ノード３の中継用のアプリケーションを通信先として設定する。【選択図】      図１３
2012133527.tif 000002
【特許請求の範囲】
【請求項１】
アドレス及びポート番号を含むソケット単位で通信を行う複数の通信装置を有する通信システムにおいて、
前記通信装置は、
自通信装置のソケット及び他通信装置のソケットを用いて、自通信装置のアプリケーションと他通信装置のアプリケーションとの間で情報の授受を行うアプリケーション処理手段と、
自通信装置及び他通信装置のソケットの使用数と、当該使用中のソケットに関係付けられているアプリケーションとを含むソケットの使用状態を調査する調査手段と、
第１の他通信装置が備えているアプリケーション処理を実行させるときに、前記調査手段により調査した結果に基づいて当該第１の他通信装置が保有するソケットに空きがない場合、当該第１の他通信装置以外の第２の他通信装置をソケットを用いて前記第１の他通信装置と前記自己の通信装置との間で通信を中継するように前記第２の他通信装置の中継用のアプリケーションを通信先として設定する中継設定手段とを備えること
を特徴とする通信システム。
【請求項２】
複数のアプリケーション処理を行う場合に、使用中の複数のソケットを１つのソケットに集約して、使用中のソケットを未使用のソケットに集約するソケット集約手段を備え、
前記アプリケーション処理手段は、前記ソケット集約手段により未使用とされたソケットを用いて情報の授受を行うこと
を特徴とする請求項１に記載の通信システム。
【請求項３】
前記アプリケーション処理手段によるソケットを使用した接続先としての他通信装置と、当該ソケットを使用して情報の授受をしたアプリケーションと、アプリケーションの使用状態の履歴とを含む履歴情報を取得する履歴情報取得手段を備え、
前記ソケット集約手段は、前記履歴情報取得手段により取得された履歴情報に基づいて、通信相手が同じ他通信装置であって使用率の高い複数のソケットを優先して集約し、
前記アプリケーション処理手段は、前記ソケット集約手段により集約されたソケットを用いて複数のアプリケーション処理により実行された情報の授受を行うこと
を特徴とする請求項２に記載の通信システム。
【請求項４】
アドレス及びポート番号を含むソケット単位で通信を行う通信装置において、
自通信装置のソケットを用いて、自通信装置のアプリケーションと他通信装置のアプリケーションとの間で情報の授受を行うアプリケーション処理手段と、
自通信装置及び他通信装置のソケットの使用数と、当該使用中のソケットに関係付けられているアプリケーションとを含むソケットの使用状態を調査する調査手段と、
第１の他通信装置が備えているアプリケーション処理を実行させるときに、前記調査手段により調査した結果に基づいて当該第１の他通信装置が保有するソケットに空きがない場合、当該第１の他通信装置以外の第２の他通信装置をソケットを用いて前記第１の他通信装置と前記自己の通信装置との間で通信を中継するように前記第２の他通信装置の中継用のアプリケーションを通信先として設定する中継設定手段とを備えること
を特徴とする通信装置。
【請求項５】
アドレス及びポート番号を含むソケット単位で通信を行う通信装置のプログラムにおいて、
自通信装置のソケットを用いて、自通信装置のアプリケーションと他通信装置のアプリケーションとの間で情報の授受を行うアプリケーション処理手段と、
自通信装置及び他通信装置のソケットの使用数と、当該使用中のソケットに関係付けられているアプリケーションとを含むソケットの使用状態を調査する調査手段と、
第１の他通信装置が備えているアプリケーション処理を実行させるときに、前記調査手段により調査した結果に基づいて当該第１の他通信装置が保有するソケットに空きがない場合、当該第１の他通信装置以外の第２の他通信装置をソケットを用いて前記第１の他通信装置と前記自己の通信装置との間で通信を中継するように前記第２の他通信装置の中継用のアプリケーションを通信先として設定する中継設定手段として機能させることを特徴とする通信装置のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションデータの授受を行う通信システム、通信装置及びプログラムに関する。
【背景技術】
【０００２】
従来より、多数の通信ノード間で通信を行うことによって、ある特定の通信ノードが他の通信ノードに備えられている機能（アプリケーション）を遠隔で利用する技術が知られている（例えば下記の特許文献１、２）。
【０００３】
この技術では、特定の通信ノードが他通信ノードの機能を利用開始するときには特定の通信ノードと他通信ノードとの間で、他通信ノードのソケットを確保し、他通信ノードの機能を利用終了するときには他通信ノードのソケットを開放するというトランザクションが必要である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開５−５３８６４号公報
【特許文献２】特開５−６１７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の技術では、機能が利用される他の通信ノードに、特定の通信ノードとの間で通信を行うためのソケットがない場合には、当該特定の通信ノードは、他の通信ノードの機能を利用できないという問題があった。
【０００６】
そこで、本発明は、上述した実情に鑑みて提案されたものであり、他通信装置のソケットに空きが無くても当該他通信装置の機能を利用できる通信システム、通信装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決する第１の発明に係る通信システムは、アドレス及びポート番号を含むソケット単位で通信を行う通信装置を有する通信システムにおいて、前記通信装置は、自通信装置のソケット及び他通信装置のソケットを用いて、自通信装置のアプリケーションと他通信装置のアプリケーションとの間で情報の授受を行うアプリケーション処理手段と、自通信装置及び他通信装置のソケットの使用数と、当該使用中のソケットに関係付けられているアプリケーションとを含むソケットの使用状態を調査する調査手段と、第１の他通信装置が備えているアプリケーション処理を実行させるときに、前記調査手段により調査した結果に基づいて当該第１の他通信装置が保有するソケットに空きがない場合、当該第１の他通信装置以外の第２の他通信装置をソケットを用いて前記第１の他通信装置と前記自己の通信装置との間で通信を中継するように前記第２の他通信装置の中継用のアプリケーションを通信先として設定する中継設定手段とを備えることを特徴とする。
【０００８】
第１の発明に係る通信システムであって、第２の発明は、複数のアプリケーション処理を行う場合に、使用中の複数のソケットを１つのソケットに集約して、使用中のソケットを未使用のソケットに集約するソケット集約手段を備え、前記アプリケーション処理手段は、前記ソケット集約手段により未使用とされたソケットを用いて情報の授受を行うことを特徴とする。
【０００９】
第２の発明に係る通信システムであって、第３の発明は、前記アプリケーション処理手段によるソケットを使用した接続先としての他通信装置と、当該ソケットを使用して情報の授受をしたアプリケーションと、アプリケーションの使用状態の履歴とを含む履歴情報を取得する履歴情報取得手段を備え、前記ソケット集約手段は、前記履歴情報取得手段により取得された履歴情報に基づいて、通信相手が同じ他通信装置であって使用率の高い複数のソケットを優先して集約し、前記アプリケーション処理手段は、前記ソケット集約手段により集約されたソケットを用いて複数のアプリケーション処理により実行された情報の授受を行うことを特徴とする。
【００１０】
第４の発明に係る通信装置は、アドレス及びポート番号を含むソケット単位で通信を行う通信装置において、自通信装置のソケットを用いて、自通信装置のアプリケーションと他通信装置のアプリケーションとの間で情報の授受を行うアプリケーション処理手段と、自通信装置及び他通信装置のソケットの使用数と、当該使用中のソケットに関係付けられているアプリケーションとを含むソケットの使用状態を調査する調査手段と、第１の他通信装置が備えているアプリケーション処理を実行させるときに、前記調査手段により調査した結果に基づいて当該第１の他通信装置が保有するソケットに空きがない場合、当該第１の他通信装置以外の第２の他通信装置をソケットを用いて前記第１の他通信装置と前記自己の通信装置との間で通信を中継するように前記第２の他通信装置の中継用のアプリケーションを通信先として設定する中継設定手段とを備えることを特徴とする。
【００１１】
第５の発明に係る通信装置のプログラムは、アドレス及びポート番号を含むソケット単位で通信を行う通信装置のプログラムにおいて、自通信装置のソケットを用いて、自通信装置のアプリケーションと他通信装置のアプリケーションとの間で情報の授受を行うアプリケーション処理手段と、自通信装置及び他通信装置のソケットの使用数と、当該使用中のソケットに関係付けられているアプリケーションとを含むソケットの使用状態を調査する調査手段と、第１の他通信装置が備えているアプリケーション処理を実行させるときに、前記調査手段により調査した結果に基づいて当該第１の他通信装置が保有するソケットに空きがない場合、当該第１の他通信装置以外の第２の他通信装置をソケットを用いて前記第１の他通信装置と前記自己の通信装置との間で通信を中継するように前記第２の他通信装置の中継用のアプリケーションを通信先として設定する中継設定手段として機能させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、他通信装置が保有するソケットに空きがない場合、当該他通信装置以外の他通信装置をソケットを用いて中継させるので、希望するアプリケーションが動作する通信装置のソケット数に空きが無くても、他の通信装置の中継用のアプリケーション処理を起動させ、当該中継用のアプリケーションを通信先として、希望するアプリケーション処理をさせる通信装置との間で通信を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態として示す通信システムの構成を示すブロック図である。
【図２】通信システムにおいて、アプリケーションを利用したい通信ノードにソケットに空きがない状態を示すブロック図である。
【図３】通信システムにおいて、アプリケーションの提供側の通信ノードにソケットに空きがない状態を示すブロック図である。
【図４】本発明の一実施形態として示す通信システムにおいて、ソケットに空きがある通信ノードに中継させた状態を示すブロック図である。
【図５】本発明の一実施形態として示す通信システムにおいて、各通信ノードの構成及びソケット状態テーブルを示すブロック図である。
【図６】本発明の一実施形態として示す通信システムにおけるアプリケーション管理テーブルを示す図であり、（ａ）は通信ノード１に格納されているアプリケーション管理テーブルであり、（ｂ）は通信ノード２に格納されているアプリケーション管理テーブルであり、（ｃ）は通信ノード３に格納されているアプリケーション管理テーブルである。
【図７】本発明の一実施形態として示す通信システムにおける利用可能アプリケーションテーブルを示す図である。
【図８】本発明の一実施形態として示す通信システムにおいて、アプリケーション使用状態テーブルを示す図であり、（ａ）は通信ノード１に格納されているアプリケーション使用状態テーブルであり、（ｂ）は通信ノード２に格納されているアプリケーション使用状態テーブルであり、（ｃ）は通信ノード３に格納されているアプリケーション使用状態テーブルである。
【図９】本発明の一実施形態として示す通信システムにおいて、最大接続数テーブルを示す図である。
【図１０】本発明の一実施形態として示す通信システムにおいて、アプリケーションを利用したい通信ノードと、アプリケーションの提供側の通信ノードとの処理手順を示すフローチャートである。
【図１１】本発明の一実施形態として示す通信システムにおいて、空きのソケットを中継用にするシーケンス図である。
【図１２】本発明の一実施形態として示す通信システムにおいて、空きのソケットが中継用とされた通信ノードのソケット状態テーブルを示す図である。
【図１３】本発明の一実施形態として示す通信システムにおいて、各通信ノードの構成及び中継用のソケットが設定された後のソケット状態テーブルを示すブロック図である。
【図１４】本発明の一実施形態として示す通信システムにおいて、空きのソケットが中継用とされた通信ノードのソケットの利用状態を示すブロック図である。
【図１５】通信システムにおいて、アプリケーションを利用したい通信ノードにソケットに空きがない状態を示すブロック図である。
【図１６】本発明の一実施形態として示す通信システムにおいて、ソケットを集約した状態を示すブロック図である。
【図１７】本発明の一実施形態として示す通信システムにおいて、ソケットの集約が可能となる状態を示すブロック図である。
【図１８】本発明の一実施形態として示す通信システムにおいて、ソケットの集約が可能となる他の状態を示すブロック図である。
【図１９】本発明の一実施形態として示す通信システムにおいて、ソケットを集約するときのシーケンス図である。
【図２０】本発明の一実施形態として示す通信システムにおいて、ソケットの集約が必要となるときの状態を示すブロック図である。
【図２１】本発明の一実施形態として示す通信システムにおいて、アプリケーション使用状態テーブルを示す図であり、（ａ）は通信ノード１のアプリケーション使用状態テーブル、（ｂ）は通信ノード２のアプリケーション管理テーブルである。
【図２２】本発明の一実施形態として示す通信システムにおいて、ソケットを集約した後のソケット状態テーブル及び通信ノードの構成を示すブロック図である。
【図２３】本発明の一実施形態として示す通信システムにおいて、空きのソケットが中継用とされた通信ノードのソケット状態テーブルを示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照して説明する。
【００１５】
本発明を適用した通信システムは複数の通信ノードを含むものであり、例えば図１に示すように、本実施形態では５つの通信ノード１〜５を含む例について説明する。特に、この通信システムは、アドレス及びポート番号を含むソケット単位で通信を行う通信装置間で通信を行うものである。
【００１６】
各通信ノード１〜５は、それぞれ一又は複数のアプリケーションＡＰ１，・・，ＡＰｎが実装されている。通信ノード１〜５は、自己のアプリケーション又は他通信ノードのアプリケーションを利用することができる。通信ノード１〜５は、他通信ノードのアプリケーションにコマンドを供給し、当該他通信ノードで実行されたアプリケーションの処理結果としてのアプリケーションデータを受信できる。逆に、通信ノード１〜５は、他通信ノードからのコマンドが供給された場合、自己のアプリケーションを実行し、処理結果としてのアプリケーションデータを他通信ノードに送信する。
【００１７】
各通信ノード１〜５は、予め自己のメモリ又は処理能力によって、アドレス及びポート番号を含むソケットの同時使用可能数が制限されている。通信ノード１〜５は、例えば、ＤＶＤプレーヤやラジオ機器、ディジタルカメラ等の通信のためのメモリ容量や処理能力がパーソナルコンピュータ等に比べて低い機器が挙げられる。
【００１８】
この実施形態においては、各通信ノード１〜５は、３つのソケットが最大同時使用可能数であるとする。通信ノード１〜５は、他通信ノードとの間でアプリケーションデータの授受を行う場合に、相互の通信ノードが、一つのソケットを使用することとなる。
【００１９】
このような通信システムにおいて、図２に示すように、通信ノード１〜３のうち、通信ノード１は同時使用可能なソケット１ａ，１ｂ，１ｃの全てを使用して通信ノード２及び通信ノード３と通信をしている。この状態において、通信ノード１が更にディジタルフォトフレームを使用したいという要求が有る場合には、使用可能なソケットがないために、他通信ノード２，３とは通信不能となる。
【００２０】
逆に、図３に示すように、通信ノード１が通信したい通信ノード３の同時使用可能なソケット３ａ，３ｂ，３ｃの全てが使用中である場合がある。このとき、通信ノード１がディジタルフォトフレームを使用したいために、ディジタルカメラと接続された通信ノード３と通信を開始する要求を送信しても、通信ノード３の同時使用可能なソケット３ａ，３ｂ，３ｃの全てが使用中であり、通信接続が拒否されることとなる。
【００２１】
このような場面において、通信ノード１は、図４に示すように、未使用のソケットを有する他通信ノードを調査し、通信ノード５に未使用のソケットがあることを検出する。そして、通信ノード１は、通信ノード５に対して中継要求を送信し、通信ノード５の中継用のアプリケーションを起動させる。これにより、通信ノード５は、中継用のアプリケーションによってソケット５ａを用いて通信ノード３との間でディジタルカメラのアプリケーションデータを受信可能となり、通信ノード１に中継できる。
【００２２】
上述した通信ノード１〜３は、例えば図５に示すように構成される。なお、以下に説明する通信ノードの機能的な構成は、図示しない記憶部に動作プログラムを格納しておき、ＣＰＵが実行することによって実現できることは勿論である。
【００２３】
通信ノード１〜３は、通信ソケット部１０１，１０３，１０５と、管理ソケット部１０２，１０４，１０６と、管理テーブル１１０，１１１，１１２とを含む。また、通信ノード１〜３はそれぞれ異なるアプリケーションを有している。通信ノード１は、アプリケーション２０１，２０２，２０３を有する。通信ノード２はアプリケーション３０１，３０２，３０３を有する。通信ノード３はアプリケーション４０１を有する。
【００２４】
これらのアプリケーションは、自通信ノードのソケット及び他通信ノードのソケットを用いて、自通信ノードのアプリケーションと他通信ノードのアプリケーションとの間で情報の授受を行うアプリケーション処理手段として機能する。
【００２５】
通信ソケット部１０１，１０３，１０５は、アプリケーションによって作成されたアプリケーションデータ又はコマンドを送信すると共に、他通信ノードから送信されたアプリケーション及びコマンドを受信する。通信ソケット部１０１，１０３，１０５は、アプリケーション及びコマンドを他通信ノードと通信する場合、１つのソケットを用いる。
【００２６】
管理ソケット部１０２，１０４，１０６は、自通信ノード及び他通信ノードのソケットの使用数と、当該使用中のソケットに関係付けられているアプリケーションとを含むソケットの使用状態を調査する調査手段として機能する。また、管理ソケット部１０２，１０４，１０６は、第１の他通信ノードが備えているアプリケーション処理を実行させるときに、調査した結果に基づいて当該第１の他通信ノードが保有するソケットに空きがないか否かを判定する。その結果、第１の他通信ノードが保有するソケットに空きがない場合、当該第１の他通信ノード以外の第２の他通信ノードをソケットを用いて第１の他通信ノードと自己の通信ノードとの間で通信を中継するように第２の他通信ノードの中継用のアプリケーションを通信先として設定する。これにより、管理ソケット部１０２，１０４，１０６は、中継設定手段として機能する。
【００２７】
管理テーブル１１０，１１１，１１２には、装置識別子、ソケット状態、アプリ接続状態が対応付けられたソケット状態テーブルが記憶されている。このソケット状態テーブルは、管理ソケット部１０２，１０４，１０６が調査した結果として作成され、所定時間毎に更新される。
【００２８】
装置識別子は、自通信ノード及び他通信ノードをそれぞれ識別する値である。この装置識別子は、ＩＰアドレスでも良く、ＩＰアドレスの最下位バイトであっても良い。ソケット状態は、自通信ノード及び他通信ノードのソケットの使用数であって、使用中のソケット数／同時使用可能なソケットを示す。アプリ接続状態は、各ソケットを使用している自通信ノードのアプリケーション識別子と他通信ノードのアプリケーション識別子との対応関係を示す。すなわち、使用中のソケットに関係付けられているアプリケーションとを含むソケットの使用状態である。
【００２９】
また、通信ノード１〜３の管理テーブル１１０，１１１，１１２には、図６（ａ）、（ｂ）、（ｃ）に示すようなアプリケーション管理テーブルが記憶されている。このアプリケーション管理テーブルは、装置識別子、アプリケーション識別子、ポート番号、アプリケーション状態が対応付けられている。ポート番号は、アプリケーションを識別する目のＴＣＰで使用する番号である。アプリケーション状態は、アプリケーション識別子で特定されるアプリケーションが実際に作動中で他のソケットと接続されている“活動”状態か、他通信ノードに通信接続を要求している“要求”状態か、停止している“休止”かを表す。このアプリケーション管理テーブルは、管理ソケット部１０２，１０４，１０６が通信ソケット部１０１，１０３，１０５の動作状態を監視することによって作成される。
【００３０】
更に、通信ノード１〜３の管理テーブル１１０，１１１，１１２には、図７に示すように、通信システムで使用可能なアプリケーションの識別子を格納した利用可能アプリケーションテーブルが記憶されている。この利用可能アプリケーションテーブルは、管理ソケット部１０２，１０４，１０６が他の通信ノードに通知することによって、各通信ノード１〜３にて作成される。
【００３１】
更に、管理テーブル１１０，１１１，１１２には、図８（ａ）、（ｂ）、（ｃ）に示すような、アプリケーション使用状態テーブルを記憶している。このアプリケーション管理テーブルは、管理ソケット部１０２，１０４，１０６が通信ソケット部１０１，１０３，１０５によって作成される。例えば、管理ソケット部１０２，１０４，１０６が、netstatコマンドを用いて、自己の通信ソケット部１０１，１０３，１０５のネットワーク接続状態やソケットごとのネットワーク統計などを確認する。このアプリケーション管理テーブルは、利用プロトコル、自通信ノードのＩＰアドレス及び利用ポート番号、他通信ノードのＩＰアドレス及び利用ポート番号、接続状態、ポート番号、ＰＩＤ（プロセス識別子）、アプリケーション識別子を対応付けている。
【００３２】
このプロセス識別子（プロセスＩＤ）は、各通信ノードのＯＳ中でアプリケーションのインスタンス（実体）を識別する識別子である。一方、アプリケーション識別子は、プロセス識別子が持つアプリケーションの名前である。これにより、通信ノードのＯＳによって、プロセス識別子に基づいてアプリケーションの実体を識別し、当該アプリケーション名前をアプリケーション識別子に基づいて識別する。
【００３３】
更に、管理テーブル１１０，１１１，１１２には、図９に示すように、装置識別子と最大接続数とを対応付けた最大接続数テーブルを記憶している。
【００３４】
このような通信システムは、図１０に示すように、アプリケーションを利用したい要求側通信ノードとアプリケーションを提供する応答側通信ノードとの間で処理を行う。先ず要求側通信ノードは、応答側通信ノードのアプリケーションとの間での通信を要求されると（ステップＳＴ１）、要求を応答側通信ノードに送信する（ステップＳＴ２）。
【００３５】
応答側通信ノードは、当該要求を受信すると（ステップＳＴ３）、管理テーブルに記憶されているテーブルを抽出し、又は、中継用のアプリケーションを起動する（ステップＳＴ４）。ここで、応答側通信ノードは、自己のアプリケーションを起動することが要求された場合には上記の各テーブルを返信し、中継の要求がされた場合には中継用のアプリケーションを起動すると判定する。そして、応答側通信ノードは、各テーブル又は中継用のアプリケーションを起動したことの応答を作成し（ステップＳＴ５）、要求側通信ノードに送信する（ステップＳＴ６）。
【００３６】
次に、要求側通信ノードは、応答側通信ノードから送信された要求を受信し（ステップＳＴ７）、自己の管理テーブルに格納されている各テーブルを構築する（ステップＳＴ８）。これにより、要求側通信ノードは、応答側通信ノードのアプリケーションとの間の通信を確立し、又は、応答側通信ノードの中継用のアプリケーションとの間の通信を確立する（ステップＳＴ９）。
【００３７】
上述したソケット状態テーブル、アプリケーション管理テーブル、利用可能アプリケーションテーブル、アプリケーション使用状態テーブルは、図１１に示すような処理により作成できる。なお、図１１は、通信ノード１の管理ソケット部１０２によって、各テーブルを作成するときの通信シーケンス図である。
【００３８】
先ず管理ソケット部１０２は通信ソケット部１０１に対して要求Ｃ１を送信する。これに応じ、通信ソケット部１０１は、応答Ｒ１として、図６（ａ）のアプリケーション管理テーブル、図７の利用可能アプリケーションテーブル、図８（ａ）のアプリケーション使用状態テーブル、図９の最大接続数テーブルを送る。
【００３９】
次に管理ソケット部１０２は通信ノード２の管理ソケット部１０４に対して要求Ｃ２を送信する。これに応じ、通信ノード２の管理ソケット部１０４は、応答Ｒ２として、図６（ａ）のアプリケーション管理テーブル、図７の利用可能アプリケーションテーブル、図８（ａ）のアプリケーション使用状態テーブル、図９の最大接続数テーブルを送る。
【００４０】
次に管理ソケット部１０２は通信ノード３の管理ソケット部１０６に対して要求Ｃ３を送信する。これに応じ、通信ノード３の管理ソケット部１０６は、応答Ｒ３として、図６（ｂ）のアプリケーション管理テーブル、図７の利用可能アプリケーションテーブル、図８（ｂ）のアプリケーション使用状態テーブル、図９の最大接続数テーブルを送る。
【００４１】
次に管理ソケット部１０２は通信ノード２の管理ソケット部１０４に対して要求Ｃ２を送信する。これに応じ、通信ノード２の管理ソケット部１０４は、応答Ｒ２として、図６（ｃ）のアプリケーション管理テーブル、図７の利用可能アプリケーションテーブル、図８（ｃ）のアプリケーション使用状態テーブル、図９の最大接続数テーブルを送る。
【００４２】
これによって、通信ノード１の管理ソケット部１０２は、通信ノード１〜３の各テーブルを取得し、図５のソケット状態テーブルを作成できる。通信ノード１のアプリケーション２０３が通信ノード２に接続したい場合、管理ソケット部１０２は、ソケット状態テーブルを参照して、通信ノード２の使用可能なソケットが無く、通信ノード３には未使用のソケットがあることを認識できる。
【００４３】
管理ソケット部１０２は、図６（ａ）のアプリケーションの使用状態を参照することによって、アプリケーション２０３によって通信ノード２のアプリケーション３０３と接続を要求していることを認識する。これは、同じポートにアクセスすることから、関連するアプリケーション３０３を特定できる。しかし、管理ソケット部１０２は、通信ノード２の管理ソケット部１０４から受信したアプリケーション管理テーブル及びアプリケーション使用状態テーブルを参照して、図９の最大接続数テーブルの３のソケットを使用中であることを認識する。
【００４４】
一方、管理ソケット部１０２は、通信ノード３から受信したアプリケーション管理テーブル及びアプリケーション使用状態テーブルから、最大接続数テーブルの３を使用していなく、空きのソケットがあることを認識できる。
【００４５】
そこで、管理ソケット部１０２は、図１１のように、中継用のアプリケーションを起動する要求Ｃ４を通信ノード３に送信する。これに対し、管理ソケット部１０６は、管理テーブル１１２のうち、図６（ｃ）のアプリケーション管理テーブルを、図１２のように更新する。管理ソケット部１０６は、新たに、中継用のアプリケーション：３０４，ポート番号：１０２６を起動する。同時に、通信ノード３の管理ソケット部１０６は、応答Ｒ４として、変更後のアプリケーション管理テーブルを通信ノード１の管理ソケット部１０２に送信する。
【００４６】
これにより、通信ノード１のソケット状態テーブルは、図１３に示すように、アプリケーション２０３と通信ノード３の中継用のアプリケーション３０４との間で通信を行うようソケットが設定される。また、通信ノード１のソケット状態テーブルは、通信ノード３の中継用のアプリケーション３０４と通信ノード２のアプリケーション３０３との間で通信を行うようソケットが設定される。
【００４７】
このように、通信ノード１の管理ソケット部１０２は、通信ノード２が保有するソケットに空きがない場合、当該通信ノード２以外の通信ノード３をソケットを用いて通信ノード２と自己との間で通信を中継するように通信ノード３の中継用のアプリケーションを通信先として設定できる。
【００４８】
これによって、通信ノード３は、図１４に示すように、中継用のアプリケーション３０４とソケット３ａとの間でパスＰ１が形成される。これによって、通信ノード３は、ソケット３ａを用いて通信ノード２との間で、通信ノード１と通信ノード２との間で授受されるアプリケーションデータを中継できる。また、通信ノード３は、中継用のアプリケーション３０４を起動する前に起動していたアプリケーション４０１も、パスＰ３を介して、ソケット３ａを用いて通信ノード２と通信できる。更に、通信ノード３は、通信ノード１との間では中継用のアプリケーション３０４とソケット３ｂとの間のパスＰ２を介して、アプリケーションデータを中継する。
【００４９】
以上説明したように、この通信システムによれば、他通信ノードが保有するソケットに空きがない場合、当該他通信ノード以外の他通信ノードをソケットを用いて中継させることができる。これにより、希望するアプリケーションが動作する通信ノードのソケット数に空きが無くても、他の通信ノードの中継用のアプリケーション処理を起動させ、当該中継用のアプリケーションを通信先として、希望するアプリケーション処理をさせる通信ノードとの間で通信を行うことができる。
【００５０】
つぎに、上述した通信システムにおいて、空きのソケットがない場合に、自通信ノード又は他通信ノードのソケットを集約するものについて説明する。
【００５１】
例えば図１５に示すように、通信ノード１が全てのソケットを使用している場合、更に通信ノード１のソケットを使用しようとしても、通信ノード１のソケットには空きがないので、通信ノード２とは通信できない。すなわち、ソケット１ａはモニタのアプリケーションＡＰ５に使用されており、ソケット１ｂはコントローラのアプリケーションＡＰ６に使用されており、ソケット１ｃはラジオコントローラのアプリケーションＡＰ７に使用されている。また、ソケット１ａ、１ｂは通信ノード１と通信ノード２間の通信に用いられており、ソケット１ｃは通信ノード３との通信に用いられている。
【００５２】
しかし、この通信システムは、図１６に示すように、使用中のソケット１ａ，１ｂを集約して空きソケットを作成できる。このとき、通信ノード１は、ソケット１ａを用いていたモニタのアプリケーションＡＰ５とソケット１ｂを用いていたコントローラのアプリケーションＡＰ６とを集約して、ソケット１ａのみを用いて通信を行わせる。
【００５３】
また、他の例としては、通信確立をしている通信ノード同士のアプリケーションが密接に関連する組み合わせである場合に、双方で使用しているソケットを集約できる。例えば、図１７に示すように、通信ノード１のソケット１ａと通信ノード２のソケット２ａとが接続され、通信ノード１のソケット１ｂと通信ノード２のソケット２ｂとが接続されているとする。このとき、通信ノード１のテレビＴＶ１のアプリケーションＡＰ５によって、通信ノード２のカメラＣＡＭ２のアプリケーションＡＰ１のアプリケーションを再生しているとする。一方、通信ノード２のテレビＴＶ２のアプリケーションＡＰ２によって、通信ノード１のカメラＣＡＭ１のアプリケーションＡＰ６のアプリケーションを再生しているとする。
【００５４】
この場合、通信ノード１，２は、図１８に示すように、２組のソケットを、１組のソケットに集約する。これにより、通信システムは、通信ノード１のソケット１ａと通信ノード２のソケット２ａとを接続して、通信ノード１のテレビＴＶ１のアプリケーションＡＰ５によって、通信ノード２のカメラＣＡＭ２のアプリケーションＡＰ１のアプリケーションを再生する。同様に、同じソケット１ａ，２ａを用いて、通信ノード２のテレビＴＶ２のアプリケーションＡＰ２によって、通信ノード１のカメラＣＡＭ１のアプリケーションＡＰ６のアプリケーションを再生できる。
【００５５】
更に、通信システムは、自通信ノードと他通信ノードとの間で使用しているアプリケーションの情報を交換して、自通信ノード及び他通信ノードによってソケットを集約できるかを判定しても良い。
【００５６】
例えば、図１９に示すように、先ず通信ノード１の通信ソケット部１０１は、「ＣＡＭ２をＴＶ１によって見る」ことを示す通知メッセージＳ１を通信ノード２に送信する。次に通信ノード２の通信ソケット部１０３は、「ＣＡＭ１をＴＶ２によって見る」ことを示す通知メッセージＳ２を通信ノード１に送信する。これにより、通信ノード１及び通信ノード２の間で２組のソケットが確保される。通信ノード２のＣＡＭ２のアプリケーションＡＰ１から通信ノード１のＴＶ１のアプリケーションＡＰ５にカメラのアプリケーションデータが提供される。同様に、通信ノード１のＣＡＭ１のアプリケーションＡＰ６から通信ノード２のＴＶ２のアプリケーションＡＰ２にカメラのアプリケーションデータが提供される。
【００５７】
次に、通信ノード１の管理ソケット部１０２は、ステップＳＴ１１において、自身のアプリケーションの使用状況を確認する。このとき、管理ソケット部１０２は、通信ソケット部１０１からアプリケーションの使用状況ＭＮＧ１を取得する。このアプリケーションの使用状況は、アプリケーション識別子及び使用時間（使用率）が分かる内容となっている。そして、管理ソケット部１０２は、ステップＳＴ１２において、特定のアプリケーションの使用時間が長いものとなっているか否かを判定する。具体的には、規定タイムスロット内で、所定時間のｔｍ時間以上、同じ通信相手と特定のアプリケーションを利用しているか否かを判定する。
【００５８】
通信ノード１の管理ソケット部１０２は、特定のアプリケーションの使用状況が長い場合、ソケットを集約する通知Ｇ１を通信ノード２に送信する。この通知Ｇ１は、通信ノード１のテレビのアプリケーションＡＰ５と通信ノード２のカメラのアプリケーションＡＰ１の使用時間ｔ１と、通信ノード２のテレビのアプリケーションＡＰ２と通信ノード１のカメラのアプリケーションＡＰ６の使用時間ｔ２とを含む。
【００５９】
通信ノード２の管理ソケット部１０４は、通知Ｇ１を受信すると、当該通知Ｇ１を記憶し、確認メッセージＳ４を通信ノード１に送信する。
【００６０】
その後、通信ノード１は、テレビのアプリケーションＡＰ５及びカメラのアプリケーションＡＰ６で使用するソケットを集約する。また、通信ノード２は、テレビのアプリケーションＡＰ２及びカメラのアプリケーションＡＰ１で使用するソケットを集約する。
【００６１】
これによって、通信システムは、通信ノード１及び通信ノード２において、特定のアプリケーションを相互に使用している場合に、ソケットを集約できる。
【００６２】
このような通信システムは、例えば図２０のソケット状態テーブルに示すように、通信ノード１及び通信ノード２の全てのソケットが使用中のときに、通信ノード１が新たなアプリケーション２０４を起動して通信したい要求が発生した場合、ソケットを集約する。
【００６３】
ここで、アプリケーション使用状態テーブルを図２１に示すように、通信ノード１と通信ノード２との通信のみによって全てのソケットを使用している最中である。図２１（ａ）に示すように、通信ノード１は、アプリケーション２０１を３０分使用している最中であり、アプリケーション２０２を３０分使用している最中であり、アプリケーション２０３を１分使用している最中である。また、図２１（ｂ）に示すように、通信ノード２は、アプリケーション３０１を３０分使用している最中であり、アプリケーション３０２を３０分使用している最中であり、アプリケーション３０３を１分使用している最中である。
【００６４】
このように、アプリケーション使用状態テーブルは、通信ノードのアプリケーションによるソケットを使用した接続先としての他通信ノードと、当該ソケットを使用して情報の授受をしたアプリケーションと、アプリケーションの使用状態の履歴とを含む履歴情報を表している。
【００６５】
通信ノード１の管理ソケット部１０２は、アプリケーションの使用状態がアプリケーション使用状態テーブルに格納された履歴情報（接続時間：使用率）に基づいて所定の率以上で使用されている場合に、当該ソケットを集約する。ここで、履歴情報は接続時間に限らず、使用頻度等の使用率を表すものであれば良い。
【００６６】
図２１の場合、アプリケーション使用状態テーブルから接続時間が長い通信接続を一つのソケットに集約させる。この結果、通信ノード１は、アプリケーション２０２とアプリケーション３０２との通信で使用中のソケット１ｂを閉じて、当該通信をアプリケーション２０１とアプリケーション３０１の通信に使用しているソケット１ａに集約することを判断する。
【００６７】
同様に、通信ノード２の管理ソケット部１０４も、アプリケーション２０２とアプリケーション３０２との通信で使用中のソケット２ｂを閉じて、当該通信をアプリケーション２０１とアプリケーション３０１の通信に使用しているソケット２ａに集約することを判断する。
【００６８】
この通信ノード１及び通信ノード２のソケットを集約する判断結果は、管理ソケット部１０２によって、通信ノード１から通信ノード２に送信される。通信ノード２の管理ソケット部１０４は、ソケットを集約する判断結果を受信することによって、通信ノード１と同様にソケットを集約する処理を行う。
【００６９】
ソケットを集約するとき、管理ソケット部１０２は、図２２に示すように、ソケット状態テーブルにおけるソケット状態を３／３から２／３に変更し、新たにアプリケーション２０４とアプリケーション３０４との関係を追加する。また、管理ソケット部１０４も同様にソケット状態テーブルを更新する。
【００７０】
このような通信システムは、図２３に示すように、要求側通信ノードと応答側通信ノードとの間で処理を行う。先ず要求側通信ノードは、応答側通信ノードのアプリケーションとの間での新たな通信を要求されると（ステップＳＴ１）、要求を応答側通信ノードに送信する（ステップＳＴ２）。
【００７１】
応答側通信ノードは、当該新たな要求を受信すると（ステップＳＴ３）、管理テーブルに記憶されているテーブルを抽出し、又は、ソケットを集約する（ステップＳＴ４’）。ここで、応答側通信ノードは、自己のアプリケーションを起動することが要求された場合には上記の各テーブルを返信し、ソケットの集約をする場合にはソケットの集約の判断を行う。そして、応答側通信ノードは、各テーブル又はソケットの集約することの応答を作成し（ステップＳＴ５）、要求側通信ノードに送信する（ステップＳＴ６）。
【００７２】
次に、要求側通信ノードは、応答側通信ノードから送信された要求を受信し（ステップＳＴ７）、自己の管理テーブルに格納されている各テーブルを構築する（ステップＳＴ８）。これにより、要求側通信ノードは、応答側通信ノードのアプリケーションとの間の通信を確立し、又は、ソケットの集約を行って通信を確立する（ステップＳＴ９’）。
【００７３】
以上のように、通信システムによれば、複数のアプリケーション処理を行うために、使用中の複数のソケットを１つのソケットに集約して、使用中のソケットを未使用のソケットに集約する。したがって、この通信システムによれば、自身が保有するソケットの全てが使用中である場合であっても、空きのソケットを作成して、希望するアプリケーションを使用できる。
【００７４】
また、この通信システムによれば、現在のアプリケーションの履歴によって使用率の高いソケットを優先的に集約するので、よく使われる通信サービスのみを集約できる。
【００７５】
なお、上述した例では、通信ノード１及び通信ノード２のアプリケーションで使用されているソケットを集約したが、他通信ノードから中継用のアプリケーションを起動する要求があった場合であっても、自通信ノードのソケットの使用率に基づいてソケットを集約しても良い。これにより、他通信ノード間のアプリケーションデータを中継でき、他通信ノード及び自通信ノードに空きのソケットが無い場合であっても通信を行うことができる。
【００７６】
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【符号の説明】
【００７７】
１〜５  通信ノード
１０１，１０３，１０５  通信ソケット部
１０２，１０４，１０６  管理ソケット部
１１０，１１１，１１２  管理テーブル
２０１，２０２，２０３，２０４，３０１，３０２，３０３，３０４，４０１  アプリケーション
【図１】
2012133527.tif 000003
【図２】
2012133527.tif 000004
【図３】
2012133527.tif 000005
【図４】
2012133527.tif 000006
【図５】
2012133527.tif 000007
【図６】
2012133527.tif 000008
【図７】
2012133527.tif 000009
【図８】
2012133527.tif 000010
【図９】
2012133527.tif 000011
【図１０】
2012133527.tif 000012
【図１１】
2012133527.tif 000013
【図１２】
2012133527.tif 000014
【図１３】
2012133527.tif 000015
【図１４】
2012133527.tif 000016
【図１５】
2012133527.tif 000017
【図１６】
2012133527.tif 000018
【図１７】
2012133527.tif 000019
【図１８】
2012133527.tif 000020
【図１９】
2012133527.tif 000021
【図２０】
2012133527.tif 000022
【図２１】
2012133527.tif 000023
【図２２】
2012133527.tif 000024
【図２３】
2012133527.tif 000025