(57)【要約】【課題】通信制御の設定に必要な情報である送信元ポート番号が、実際に通信が行われる直前まで確定しない場合であっても、送信元ポート番号に関連する通信制御の設定を予め記述できるようにすること。【解決手段】  処理の一環として通信を行なうソフトウェアが送信元ポート番号を指定しないでコンピュータネットワークを介して通信を行なう際の通信制御方法において、ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行ない、割り当てられた送信元ポート番号を取得し、通信を要求した前記ソフトウェアを識別するソフトウェア識別情報を求め、該ソフトウェア識別情報を検索キーとして予め記憶している通信制御情報を記憶手段から取得し、割り当てられた前記送信元ポート番号で前記通信制御情報を補完し、補完された通信制御情報を用いて前記ソフトウェアがコンピュータネットワークを介して通信を行えるようにする。【選択図】図２
2007087038.tif 000002
【特許請求の範囲】
【請求項１】
処理の一環として通信を行なうソフトウェアがコンピュータネットワークを介して通信を行なう通信制御システムであって、
通信手段と、
該通信手段への前記ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行なう送信元ポート番号自動割当手段と、
割り当てられた送信元ポート番号を取得する送信元ポート番号自動割当結果フック手段と、
通信を要求した前記ソフトウェアに対応する通信制御情報を、割り当てられた前記送信元ポート番号で補完する通信制御情報補完手段と、
補完された通信制御情報を用いて通信の制御を行う通信制御手段と
を備えることを特徴とする通信制御システム。
【請求項２】
通信を要求した前記ソフトウェアを識別するソフトウェア識別情報を求め、該ソフトウェア識別情報に基づいて前記通信制御情報を取得することを特徴とする請求項１に記載の通信制御システム。
【請求項３】
前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する前記通信手段の動作の一環として行われる前記送信元ポート番号自動割当手段での処理であることを特徴とする請求項１または２に記載の通信制御システム。
【請求項４】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項１から３の何れかに記載の通信制御システム。
【請求項５】
前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する前記通信手段の動作とは独立して行なわれる送信元ポート番号自動割当手段により行なわれることを特徴とする請求項１または２に記載の通信制御システム。
【請求項６】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項１、２または５に記載の通信制御システム。
【請求項７】
処理の一環として通信を行なう１個以上のソフトウェアが夫々物理的に独立した１個以上の第１のハードウェアに実装され、前記１個以上のソフトウェアの内の何れかが、第２のハードウェアに実装されたソフトウェアを介してコンピュータネットワークと通信を行う通信制御システムであって、
通信手段と、
ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行なう送信元ポート番号自動割当手段と、
割り当てられた送信元ポート番号を取得する送信元ポート番号自動割当結果フック手段と、
通信を要求したソフトウェア識別するソフトウェア識別情報と、該ソフトウェアが実装されている第１のハードウェアを識別するハードウェア識別情報とを求める識別手段と、
前記ソフトウェア識別情報と前記ハードウェア識別情報との組に基づいて通信制御情報を取得する通信制御情報検索手段と、
割り当てられた前記送信元ポート番号で前記通信制御情報を補完する通信制御情報補完手段と、
補完された通信制御情報を用いて通信の制御を行う通信制御手段と
を備えたことを特徴とする通信制御システム。
【請求項８】
前記通信制御補完手段は、前記識別手段で求めたソフトウェア識別情報とハードウェア識別情報の組と、前記通信制御情報検索手段において通信制御情報の取得に用いたソフトウェア識別情報とハードウェア識別情報の組とを比較することを特徴とする請求項７に記載の通信制御システム。
【請求項９】
前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する前記通信手段の動作の一環として行われる前記送信元ポート番号自動割当手段での処理であることを特徴とする請求項７または８に記載の通信制御システム。
【請求項１０】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項７から９の何れかに記載の通信制御システム。
【請求項１１】
前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する前記通信手段の動作とは独立して行なわれる送信元ポート番号自動割当手段により行なわれることを特徴とする請求項７または８に記載の通信制御システム。
【請求項１２】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項７、８または１１に記載の通信制御システム。
【請求項１３】
処理の一環として通信を行なうソフトウェアがコンピュータネットワークを介して通信を行なう際の通信制御方法であって、
ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行ない、
割り当てられた送信元ポート番号を取得し、
通信を要求した前記ソフトウェアに対応する通信制御情報を、割り当てられた前記送信元ポート番号で補完し、
補完された通信制御情報を用いて前記ソフトウェアがコンピュータネットワークを介して通信を行えるようにすることを特徴とする通信制御方法。
【請求項１４】
通信を要求した前記ソフトウェアを識別するソフトウェア識別情報を求め、該ソフトウェア識別情報に基づいて前記通信制御情報を取得することを特徴とする請求項１３に記載の通信制御方法。
【請求項１５】
前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する通信手段の動作の一環である送信元ポート番号自動割当処理により行なわれることを特徴とする請求項１３または１４に記載の通信制御方法。
【請求項１６】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項１３から１５の何れかに記載の通信制御方法。
【請求項１７】
前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する通信手段の動作とは独立して行なわれる送信元ポート番号自動割当処理により行なわれることを特徴とする請求項１３または１４に記載の通信制御方法。
【請求項１８】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項１３、１４または１７の何れかに記載の通信制御方法。
【請求項１９】
処理の一環として通信を行なう１個以上のソフトウェアが夫々物理的に独立した１個以上の第１のハードウェアに実装され、前記１個以上のソフトウェアの内の何れかが、第２のハードウェアに実装されたソフトウェアを介してコンピュータネットワークと通信を行う際の通信制御方法であって、
(a) ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行ない、
(b) 割り当てられた送信元ポート番号を取得し、
(c) 通信を要求したソフトウェア識別するソフトウェア識別情報と、該ソフトウェアが実装されている第１のハードウェアを識別するハードウェア識別情報とを求め、
(d) 前記ソフトウェア識別情報と前記ハードウェア識別情報との組に基づいて通信制御情報を取得し、
(e) 割り当てられた前記送信元ポート番号で前記通信制御情報を補完し、
補完された通信制御情報を用いて前記ソフトウェアの通信制御を行えるようにすることを特徴とする通信制御方法。
【請求項２０】
ステップ(e)において「送信元ポート番号で前記通信制御情報を補完」する際、ステップ(c)で求めたソフトウェア識別情報とハードウェア識別情報の組と、ステップ(d)で通信制御情報の取得に使用したソフトウェア識別情報とハードウェア識別情報の組とを比較することを特徴とする請求項１９に記載の通信制御方法。
【請求項２１】
前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する通信手段の動作の一環である送信元ポート番号自動割当処理により行なわれることを特徴とする請求項１９または２０に記載の通信制御方法。
【請求項２２】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項１９から２１の何れかに記載の通信制御方法。
【請求項２３】
前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する通信手段の動作とは独立して行なわれる送信元ポート番号自動割当処理により行なわれることを特徴とする請求項１９または２０に記載の通信制御方法。
【請求項２４】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項１９、２０または２３に記載の通信制御方法。
【請求項２５】
処理の一環として通信を行なうソフトウェアがコンピュータネットワークを介して通信を行なう際の通信制御のためのコンピュータプログラムであって、
ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行なうステップと、
割り当てられた送信元ポート番号を取得するステップと、
通信を要求した前記ソフトウェアに対応する通信制御情報を、割り当てられた前記送信元ポート番号で補完するステップと、
補完された通信制御情報を用いて前記ソフトウェアがコンピュータネットワークを介して通信を行えるようにすることを特徴とする通信制御用コンピュータプログラム。
【請求項２６】
通信を要求した前記ソフトウェアを識別するソフトウェア識別情報を求め、該ソフトウェア識別情報に基づいて前記通信制御情報を取得することを特徴とする請求項２５に記載の通信制御コンピュータプログラム。
【請求項２７】
前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する通信手段の動作の一環である送信元ポート番号自動割当処理により行なわれることを特徴とする請求項２５または２６に記載のコンピュータプログラム。
【請求項２８】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項２５から２７の何れかに記載の通信制御用コンピュータプログラム。
【請求項２９】
前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する通信手段の動作とは独立して行なわれる送信元ポート番号自動割当処理により行なわれることを特徴とする請求項２５または２６に記載の通信制御用コンピュータプログラム。
【請求項３０】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項２５、２６または２９に記載の通信制御用コンピュータプログラム。
【請求項３１】
処理の一環として通信を行なう１個以上のソフトウェアが夫々物理的に独立した１個異常の第１のハードウェアに実装され、前記１個以上のソフトウェアの内の何れかが、第２のハードウェアに実装されたソフトウェアを介してコンピュータネットワークと通信を行う際の通信制御用のコンピュータプログラムであって、
(a) ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行なうステップと、
(b) 割り当てられた送信元ポート番号を取得するステップと、
(c) 通信を要求したソフトウェア識別するソフトウェア識別情報と、該ソフトウェアが実装されている第１のハードウェアを識別するハードウェア識別情報とを求めるステップと、
(d) 該ソフトウェア識別情報とハードウェア識別情報との組に基づいて通信制御情報を取得するステップと、
(e) 割り当てられた前記送信元ポート番号で前記通信制御情報を補完するステップと、
を有し、補完された通信制御情報を用いて前記ソフトウェアの通信制御を行えるようにすることを特徴とする通信制御用コンピュータプログラム。
【請求項３２】
ステップ(e)において「送信元ポート番号で前記通信制御情報を補完」する際、ステップ(c)で求めたソフトウェア識別情報とハードウェア識別情報の組と、ステップ(d)で通信制御情報の取得に使用したソフトウェア識別情報とハードウェア識別情報の組とを比較することを特徴とする請求項３１に記載の通信制御用コンピュータプログラム。
【請求項３３】
前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する通信手段の動作の一環である送信元ポート番号自動割当処理により行なわれることを特徴とする請求項３１または３２に記載の通信制御用コンピュータプログラム。
【請求項３４】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項３１から３３の何れかに記載の通信制御用コンピュータプログラム。
【請求項３５】
前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する通信手段の動作とは独立して行なわれる送信元ポート番号自動割当処理により行なわれることを特徴とする請求項３１または３２に記載の通信制御用コンピュータプログラム。
【請求項３６】
前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする請求項３１、３２または３５に記載の通信制御用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信制御システム及び通信制御方法並びに通信制御用プログラムに関し、特にTCP/IP(Transmission Control Protocol/Internet Protocol)またはUDP(User Datagram Protocol)/IP通信に関する通信制御システム及び通信制御方法並びに通信制御用のプログラムに関する。
【背景技術】
【０００２】
コンピュータを用いた通信技術の発達に伴いTCP/IP或いはUDP/IPなどの通信プロトコルを用いてコンピュータネットワークを介した通信が日常的になってきている。本発明は、コンピュータネットワークを介して通信を行なう際の通信制御情報の設定に関するものである。
【０００３】
本発明に直接関係する従来技術を図１１及び図１２を参照して説明する。図１１は通信に関する従来のハードウェアの概要を簡単に示したブロック図であり、図１２は図１１に示したハードウェア上で動作するTCP或いはUDP通信のソフトウェアの機能をブロックで示した図である。
【０００４】
図１１に示すハードウェアは、1個或いは複数の有線又は無線のチャネルを介してネットワークＮＷに接続して通信を行なう通信手段１１００と、この通信手段をプログラム制御により動作させるコンピュータ１１０２と、プログラム及びデータを記憶する記憶装置１１０４とからなる。これらのハードウェアは例えば単一の筺体１１０６に格納されているとする。
【０００５】
図１２には、ソフトウェア（通常はアプリケーションソフトウェア）１２００と、このソフトウェア１２００の実行によってTCP或いはUDP通信を行なうソフトウェア実行環境１２０２とからなる。このソフトウェア実行環境１１０２は、図１１に示したハードウェアとオペレーティングシステム及びミドルウェアを組み合わせた機能を有し、TCP或いはUDP通信手段１２０４と、この通信手段１２０４によるTCPまたはUDP通信を制御する通信制御手段１２０６と、この通信手段１２０６が内部処理の一環として呼び出す送信元ポート番号自動割当手段１２０８とから構成されている。
【０００６】
ソフトウェア１２００は、TCPまたはUDP通信手段１２０４を利用し、ネットワークＮＷを介してTCPまたはUDP通信を行うよう動作し、この際、通信手段１２０４は、その動作の一環として送信元ポート番号自動割当手段１２０８を呼び出して送信元ポート番号の自動割当を要求する。送信元ポート番号自動割当手段１２０８はこの要求に応答して送信元ポート番号を動的に割り当て、通信手段１２０４に割り当てた送信元ポート番号を送り返す。TCPまたはUDP通信制御手段１２０６は、通信手段１２０４によるTCPまたはUDP通信を調査し、TCPまたはUDP通信を制御(帯域配分、通信の転送、通信の遮断などの制御)を行なう。
【０００７】
上述の従来例では、TCPまたはUDP通信手段１２０４が通信接続の直前に送信元ポート番号を動的に決定するため、予め通信制御手段１２０６に送信元ポート番号に関連する通信制御情報を記述しておくことができない。従って、上述の従来例では、ソフトウェアを作成する際、ソフトウェアが通信の接続動作を要求する時に通信制御情報をソフトウェア実行環境１２０２に引き渡すように作成しておく必要があり、このためソフトウェア作成に面倒な作業が要求される。
【０００８】
具体的な従来技術として、特許文献１では、通信制御の一形態であるファイアウォールの設定をソフトウェアの動作と連動して動的に行う技術を開示している。しかしながら、送信元ポート番号に関する情報が実際に通信を行う直前まで決定されない点に対応していないため、通信の接続動作開始時にファイアウォール設定情報をソフトウェアが実行環境へ明示的に引き渡すようにソフトウェアを作成する必要がある。このため、特許文献１に開示された従来技術では、ソフトウェアの通信の接続動作開始部分に従来のソフトウェアをそのまま用いることができないという問題がある。
【特許文献１】特開2004-78507号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、TCP/IP通信の接続動作およびUDP/IP通信の送信動作を開始する際、ソフトウェア実行環境において自動的(動的)に送信元ポート番号が割り当てられる場合であっても、通信制御情報をソフトウェア実行環境に予め設定しておくことができるようにし、これによって、従来例のように通信に使用するソフトウェアを改造しなければならないという問題を解決することである。
【課題を解決するための手段】
【００１０】
（１）本発明は、処理の一環として通信を行なうソフトウェアがコンピュータネットワークを介して通信を行なう通信制御システムであって、通信手段と、該通信手段への前記ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行なう送信元ポート番号自動割当手段と、割り当てられた送信元ポート番号を取得する送信元ポート番号自動割当結果フック手段と、通信を要求した前記ソフトウェアに対応する通信制御情報を、割り当てられた前記送信元ポート番号で補完する通信制御情報補完手段と、補完された通信制御情報を用いて通信の制御を行う通信制御手段とを備えることを特徴とする通信制御システムである。
【００１１】
（２）上記（１）において、通信を要求した前記ソフトウェアを識別するソフトウェア識別情報を求め、該ソフトウェア識別情報に基づいて前記通信制御情報を取得することを特徴としている。
【００１２】
（３）上記（１）または（２）において、前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する前記通信手段の動作の一環として行われる前記送信元ポート番号自動割当手段での処理であることを特徴としてしる。
【００１３】
（４）上記（１）から（３）において、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴としている。
【００１４】
（５）上記（１）または（２）において、前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する前記通信手段の動作とは独立して行なわれる送信元ポート番号自動割当手段により行なわれることを特徴としている。
【００１５】
（６）上記（１）、（２）または（５）において、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴としている。
【００１６】
（７）更に、本発明は、処理の一環として通信を行なう１個以上のソフトウェアが夫々物理的に独立した１個以上の第１のハードウェアに実装され、前記１個以上のソフトウェアの内の何れかが、第２のハードウェアに実装されたソフトウェアを介してコンピュータネットワークと通信を行う通信制御システムであって、通信手段と、ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行なう送信元ポート番号自動割当手段と、割り当てられた送信元ポート番号を取得する送信元ポート番号自動割当結果フック手段と、通信を要求したソフトウェア識別するソフトウェア識別情報と、該ソフトウェアが実装されている第１のハードウェアを識別するハードウェア識別情報とを求める識別手段と、前記ソフトウェア識別情報と前記ハードウェア識別情報との組に基づいて通信制御情報を取得する通信制御情報検索手段と、割り当てられた前記送信元ポート番号で前記通信制御情報を補完する通信制御情報補完手段と、補完された通信制御情報を用いて通信の制御を行う通信制御手段とを備えたことを特徴とする通信制御システムである。
【００１７】
（８）上記（７）において、前記通信制御補完手段は、前記識別手段で求めたソフトウェア識別情報とハードウェア識別情報の組と、前記通信制御情報検索手段において通信制御情報の取得に用いたソフトウェア識別情報とハードウェア識別情報の組とを比較することを特徴とする。
【００１８】
（９）上記（７）または（８）において、前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する前記通信手段の動作の一環として行われる前記送信元ポート番号自動割当手段での処理であることを特徴とする。
【００１９】
（１０）上記（７）から（９）の何れかにおいて、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする。
【００２０】
(１１)上記（７）または（８）において、前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する前記通信手段の動作とは独立して行なわれる送信元ポート番号自動割当手段により行なわれることを特徴としている。
【００２１】
(１２)上記（７）、（８）または（１１）において、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴としている。
【００２２】
（１３）更に本発明は、処理の一環として通信を行なうソフトウェアがコンピュータネットワークを介して通信を行なう際の通信制御方法であって、ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行ない、割り当てられた送信元ポート番号を取得し、通信を要求した前記ソフトウェアに対応する通信制御情報を、割り当てられた前記送信元ポート番号で補完し、補完された通信制御情報を用いて前記ソフトウェアがコンピュータネットワークを介して通信を行えるようにすることを特徴とする通信制御方法である。
【００２３】
(１４)上記（１３）において、通信を要求した前記ソフトウェアを識別するソフトウェア識別情報を求め、該ソフトウェア識別情報に基づいて前記通信制御情報を取得することを特徴としている。
【００２４】
(１５)上記（１３）から（１５）の何れかにおいて、前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する通信手段の動作の一環である送信元ポート番号自動割当処理により行なわれることを特徴としている。
【００２５】
(１６)上記（１３）から（１５）の何れかにおいて、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴としている。
【００２６】
（１７）上記（１３）または（１４）において、前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する通信手段の動作とは独立して行なわれる送信元ポート番号自動割当処理により行なわれることを特徴とする。
【００２７】
(１８)上記（１３）、（１４）または（１７）において、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴としている。
【００２８】
（１９）更に本発明は、処理の一環として通信を行なう１個以上のソフトウェアが夫々物理的に独立した１個以上の第１のハードウェアに実装され、前記１個以上のソフトウェアの内の何れかが、第２のハードウェアに実装されたソフトウェアを介してコンピュータネットワークと通信を行う際の通信制御方法であって、(a) ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行ない、(b) 割り当てられた送信元ポート番号を取得し、(c) 通信を要求したソフトウェア識別するソフトウェア識別情報と、該ソフトウェアが実装されている第１のハードウェアを識別するハードウェア識別情報とを求め、(d) 前記ソフトウェア識別情報と前記ハードウェア識別情報との組に基づいて通信制御情報を取得し、(e) 割り当てられた前記送信元ポート番号で前記通信制御情報を補完し、補完された通信制御情報を用いて前記ソフトウェアの通信制御を行えるようにすることを特徴とする通信制御方法である。
【００２９】
（２０）上記（１９）において、ステップ(e)において「送信元ポート番号で前記通信制御情報を補完」する際、ステップ(c)で求めたソフトウェア識別情報とハードウェア識別情報の組と、ステップ(d)で通信制御情報の取得に使用したソフトウェア識別情報とハードウェア識別情報の組とを比較することを特徴とする。
【００３０】
（２１）上記（１９）または（２０）において、前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する通信手段の動作の一環である送信元ポート番号自動割当処理により行なわれることを特徴とする。
【００３１】
（２２）上記（１９）から（２１）の何れかにおいて、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴としている。
【００３２】
（２３）上記（１９）または（２０）」において、前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する通信手段の動作とは独立して行なわれる送信元ポート番号自動割当処理により行なわれることを特徴とする。
【００３３】
（２４）上記（１９）、（２０）または（２３）において、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴としてしる。
【００３４】
(２５)更に本発明は、処理の一環として通信を行なうソフトウェアがコンピュータネットワークを介して通信を行なう際の通信制御のためのコンピュータプログラムであって、ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行なうステップと、割り当てられた送信元ポート番号を取得するステップと、通信を要求した前記ソフトウェアに対応する通信制御情報を、割り当てられた前記送信元ポート番号で補完するステップと、補完された通信制御情報を用いて前記ソフトウェアがコンピュータネットワークを介して通信を行えるようにすることを特徴とする通信制御用コンピュータプログラムである。
【００３５】
（２６）上記（２５）において、通信を要求した前記ソフトウェアを識別するソフトウェア識別情報を求め、該ソフトウェア識別情報に基づいて前記通信制御情報を取得することを特徴としている。
【００３６】
（２７）上記（２５）または（２６）において、前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する通信手段の動作の一環である送信元ポート番号自動割当処理により行なわれることを特徴とする。
【００３７】
(２８)上記（２５）から（２７）の何れかにおいて、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴としている。
【００３８】
(２９)上記（２５）または（２６）において、前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する通信手段の動作とは独立して行なわれる送信元ポート番号自動割当処理により行なわれることを特徴としている。
【００３９】
(３０)上記（２５）、（２６）または（２９）において、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴としている。
【００４０】
(３１)更に本発明は、処理の一環として通信を行なう１個以上のソフトウェアが夫々物理的に独立した１個異常の第１のハードウェアに実装され、前記１個以上のソフトウェアの内の何れかが、第２のハードウェアに実装されたソフトウェアを介してコンピュータネットワークと通信を行う際の通信制御用のコンピュータプログラムであって、(a) ソフトウェアの通信依頼に応答して送信元ポート番号の割当を行なうステップと、(b)
割り当てられた送信元ポート番号を取得するステップと、(c) 通信を要求したソフトウェア識別するソフトウェア識別情報と、該ソフトウェアが実装されている第１のハードウェアを識別するハードウェア識別情報とを求めるステップと、(d) 該ソフトウェア識別情報とハードウェア識別情報との組に基づいて通信制御情報を取得するステップと、(e) 割り当てられた前記送信元ポート番号で前記通信制御情報を補完するステップと、を有し、補完された通信制御情報を用いて前記ソフトウェアの通信制御を行えるようにすることを特徴とする通信制御用コンピュータプログラムである。
【００４１】
(３２)上記（３１）において、ステップ(e)において「送信元ポート番号で前記通信制御情報を補完」する際、ステップ(c)で求めたソフトウェア識別情報とハードウェア識別情報の組と、ステップ(d)で通信制御情報の取得に使用したソフトウェア識別情報とハードウェア識別情報の組とを比較することを特徴としている。
【００４２】
（３３）上記（３１）または（３２）において、前記送信元ポート番号の割当は、前記ソフトウェアの通信を実行する通信手段の動作の一環である送信元ポート番号自動割当処理により行なわれることを特徴とする。
【００４３】
（３４）上記（３１）から（３３）の何れかにおいて、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴とする。
【００４４】
（３５）上記（３１）または（３２）において、前記送信元ポート番号の割当は、前記ソフトウェアの通信依頼に応答し、前記ソフトウェアの通信を実行する通信手段の動作とは独立して行なわれる送信元ポート番号自動割当処理により行なわれることを特徴とする。
【００４５】
(３６)上記（３１）、（３２）または（３５）において、前記通信はTCP/IP通信或いはUDP/IP通信であることを特徴としている。
【発明の効果】
【００４６】
本発明によれば、個々のソフトウェアが行うTCPまたはUDP通信において、送信元ポート番号が動的に決定される場合でも、予めTCPまたはUDP通信制御情報を記述しておくことができる。このため、送信元ポート番号が動的に決定される場合であっても、個々のソフトウェアを改造する必要がない。
【発明を実施するための最良の形態】
【００４７】
以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００４８】
本発明は、TCP通信の接続動作あるいはUDP通信の送信操作に関連するので、以下の記述では、説明が煩雑になるのを避けるため、通信制御などがTCP或いはUDPであることを特に断らない場合がある。
【００４９】
図１は本発明の第１の実施の形態に使用するハードウェアの概略を簡単に示したブロック図である。図１に示すハードウェアは、有線もしくは無線のチャネル１００を介してネットワークＮＷに接続する少なくとも１個の通信手段１０２と、プログラム制御により動作するコンピュー１０４と、プログラム又はデータ或いは両方を蓄積する記憶装置１０６と有し、これらを、例えば、単一の筐体１０８に格納されている。
【００５０】
図２は、図1に示したハードウェア上で、オペレーティングシステム、ミドルウェア、アプリケーションソフトウェア等のソフトウェアを実行することにより、第1の実施の形態を実現するブロックを機能別に示している。
【００５１】
図２に示した機能ブロックについて説明する。第１の実施の形態の機能は、通信を行うソフトウェア(多くはアプリケーションソフトウェア)２００と、このソフトウェア２００が通信を行う際に利用するTCPまたはUDP通信手段２０２と、通信手段２０２によるTCPまたはUDP通信を制御する通信制御手段２０４と、通信手段２０２が内部処理の一環として呼び出す送信元ポート番号自動割当手段２０６と、ソフトウェア識別手段２０８と、送信元ポート番号自動割当結果フック手段２１０と、通信制御情報検索手段２１２と、通信制御情報保持手段２１４と、通信制御情報補完手段２１６と、通信制御情報設定手段２１８等に分けられる。
【００５２】
参照番号２２０で示したソフトウェア実行環境のうち、本発明の第1の実施の形態に係る部分(即ち本実施の形態による拡張部分)を参照番号２２２で示す。TCPまたはUDP通信によるデータが伝送されるネットワークを、図1と同様にＮＷで示している。
【００５３】
図２に示した機能ブロックの動作について説明する。
【００５４】
ソフトウェア２００は通信手段２０２を利用してTCPまたはUDP通信を行うよう動作し、一方、通信手段２０２は、ソフトウェア２００からの要求に応じて、ネットワークＮＷを介してTCPまたはUDP通信を行うように動作する。
【００５５】
通信制御手段２０４は、通信手段２０２からのTCPまたはUDP通信を受けると共に、通信制御情報設定手段２１８から受け取った通信制御情報に従って、TCPまたはUDP通信制御を行なう。通信制御とは、例えば、帯域配分、通信の転送、通信の遮断などの制御である。送信元ポート番号自動割当手段２０６の動作は、通信手段２０２の内部処理の一環を成しており、ソフトウェア２００が送信元ポート番号を指定せずに通信手段２０２にTCPまたはUDP通信を行うように要求してきた場合に、適切な送信元ポート番号を自動的にTCPまたはUDP通信に割り当てるように動作する。つまり、本実施の形態では、ソフトウェア２００が送信元ポート番号を指定することはない。
【００５６】
ソフトウェア識別手段２０８は、ソフトウェア２００を識別するものであり、例えば、ソフトウェア２００の実行ファイル名などの識別子をソフトウェア識別情報としてソフトウェア２００と関連付ける。
【００５７】
送信元ポート番号自動割当結果フック手段２１０は、ソフトウェア２００が行うTCPまたはUDP通信に対して、送信元ポート番号自動割当手段２０６が動的に割り当てた送信元ポート番号を取得する。上述のソフトウェア識別手段２０８は、フック手段２１０が送信元ポート番号を取得するのに応じて、ソフトウェア識別情報を通信制御情報検索手段２１２に送出する。この検索手段２１２は、ソフトウェア識別情報を検索キーとして通信制御情報保持手段２１４に予め保存されているTCPまたはUDP通信制御情報群の中から、通信を行なおうとしているソフトウェアに対応する通信制御情報を検索して取り出す。なお、通信制御情報保持手段２１４には、ソフトウェア２００が通信手段２０２にTCPまたはUDP通信を要求する以前に上述の通信制御情報群が蓄積されている。
【００５８】
通信制御情報保持手段２１４は、例えばルックアップテーブルなどを利用し、ソフトウェア識別情報と通信制御情報とを関連付けて保持している。ここで、通信制御情報とソフトウェア識別情報との関連付けは1対1或いは1対多であり、ソフトウェア識別情報が特定されればTCPまたはUDP通信制御情報を一意に定めることができる。
【００５９】
なお、通信制御情報保持手段２１４に保持されている通信制御情報には送信元ポート番号に関する情報が欠落しているので、送信元ポート番号に関する情報が取得されるまでは、通信制御手段２０４に設定する通信制御情報として不十分である。
【００６０】
通信制御情報補完手段２１６は、通信制御情報検索手段２１２が通信制御情報保持手段２１４から取得した「ソフトウェア２００に関連する通信制御情報」を、送信元ポート番号自動割当結果フック手段２１０が取得した送信元ポート番号で補完するよう動作する。送信元ポート番号が補完された後の通信制御情報は、通信制御手段２０４に設定する通信制御情報として十分である。通信制御情報設定手段２１８は、通信制御情報補完手段２１６において送信元ポート番号が補完された通信制御情報を通信制御手段２０４に設定する。
【００６１】
次に、図２及び図３を参照して第1の実施の形態の動作について説明する。
【００６２】
図３に示すように、ソフトウェア２００（図２）が、その動作の一部として、TCPまたはUDP通信を行うように通信手段２０２に依頼する（ステップ３００）。この段階でのソフトウェア２００の動作は、TCP/IPの接続動作もしくはUDP/IPの送信動作であり、上述したように、ソフトウェア２００は送信元ポート番号を指定していない。
【００６３】
次に、通信手段２０２は、送信元ポート番号自動割当手段２０６を内部処理の一環として呼び出して送信元ポート番号の自動割当を行う（ステップ３０２）。
【００６４】
さらに、送信元ポート番号自動割当結果フック手段２１０は、送信元ポート番号自動割当手段２０６によって送信元ポート番号の自動割当動作が行われたことを検知して自動割当された送信元ポート番号を取得する（ステップ３０４）。
【００６５】
送信元ポート番号自動割当手段フック手段２１０が送信元ポート番号を取得した後、ソフトウェア識別手段２０８が、通信手段２０２を利用するソフトウェア２００を識別してソフトウェア識別情報を取得する（ステップ３０６）。
【００６６】
通信制御情報検索手段２１２は、取得されたソフトウェア識別情報を用いて通信制御情報保持手段２１４に保持されている「複数の通信制御情報」を検索し、ソフトウェア識別情報に対応する通信制御情報を取得する（ステップ３０８）。上述したように、この時点で得られた通信制御情報には送信元ポート番号に関する情報が欠落しているので通信制御手段２０４に設定する情報としては不完全である。
【００６７】
このため、通信制御情報補完手段２１６は、検索手段２１２から通信制御情報を取得した後、この通信制御情報をステップ３０４で取得した送信元ポート番号に関する情報で補完する（ステップ３１０）。従って、補完された通信制御情報は、通信制御手段２０４に設定する情報として完全となる。次いで、通信制御情報設定手段２１８は、上述の補完された通信制御情報を通信制御手段２０４に設定する（ステップ３１２）。
【００６８】
次に、通信手段２０２は、ソフトウェア２００の依頼（ステップ３００）に基づいてTCPまたはUDP通信を行い（ステップ３１４）、通信制御手段２０４は、ステップ３１２で設定された通信制御情報に基づいて通信を制御する（ステップ３１６）。
【００６９】
上述した第1の実施の形態の効果は次の通りである。即ち、本実施の形態によれば、ソフトウェア２００が、通信手段２０２にTCPまたはUDP通信を依頼すると、送信元ポート番号自動割当手段２０６が送信元ポート番号の自動割当を行う動作を起点とし、通信制御手段２０４の設定までをソフトウェア実行環境２２２の内部で行う。この際、通信制御情報保持手段２１４に予め保持しておく通信制御情報に送信元ポート番号に関する情報が欠落しているが、送信元ポート番号自動割当結果フック手段２１０が取得した送信元ポート番号で補完されるので、送信元ポート番号を明示的に指定しないソフトウェアであっても、予め通信制御情報を記述することができるという効果がある。
【００７０】
また、本実施の形態によれば、ソフトウェア２００は、通信手段２０２にTCPまたはUDP通信を依頼するのみなので、ソフトウェア２００としては従来のものをそのまま利用することができるという効果がある。
【００７１】
次に、本発明の第２の実施の形態について図面を参照して説明する。
【００７２】
図４は、本発明の第２の実施の形態に関連するハードウェアの構成を模式的に示したブロック図である。図４に示すように、第２の実施の形態では、１個以上（即ち１個或いは複数個）の筺体４００(1)〜４００(n)と１個の筐体４０８が設けられている。夫々の筐体４００(1)〜４００(n)のハードウェア構成は同一であり、したがって、筐体４００(1)に収納されたハードウェア４０１について説明する。
【００７３】
筐体４００(1)には、通信チャネルを介して筐体４０８の通信手段４１０と通信を行なう通信手段４０２と、プログラム制御により動作するコンピュータ４０４と、プログラム又はデータ或いは双方を蓄積する記憶手段４０６とが収められている。
【００７４】
筐体４０８を構成するハードウェア４０９は、筐体４００(1)〜４００(n)の内の１個あるいは複数個の筐体のハードウェアと通信を行なう通信手段４１０と、有線もしくは無線チャネルを介してネットワークＮＷと通信する他の通信手段４１２と、プログラム制御により動作するコンピュータ４１４と、プログラムもしくはデータ或いはその双方を蓄積する記憶装置４１６とが格納されている。
【００７５】
図５は、図４に示したハードウェア上で、適切なソフトウェアを実行することにより第２の実施の形態を実現する機能をブロックで示している。ここで、適切なソフトウェアとは、上述の第1の実施の形態と同様に、オペレーティングシステム、ミドルウェア、アプリケーションソフトウェアを指す。
【００７６】
図５において、ソフトウェア５００及びソフトウェア実行環境５２２は、筐体４００(1)のハードウェア４０１上に実装され、一方、ソフトウェア実行環境５２４は筐体４０８のハードウェア４０９上に実装されている。
【００７７】
ソフトウェア５００は、TCPまたはUDP通信を行うソフトウェア（多くはアプリケーションソフトウェア)であり、ソフトウェア実行環境５２２及び５２４は、ソフトウェア５００が通信を行う際に利用する通信手段５０２と、この通信手段５０２が内部処理の一環として呼び出す送信元ポート番号自動割当手段５０４と、通信手段５０２によるTCPまたはUDP通信を制御する通信制御手段５０６と、ソフトウェア識別手段５０８と、ハードウェア識別手段５０９と、送信元ポート番号自動割当結果フック手段５１０と、通信制御情報検索手段５１２と、通信制御情報保持手段５１４と、通信制御情報補完手段５１６と、通信制御情報設定手段５１８とから構成される。なお、ソフトウェア識別手段５０８とハードウェア識別手段５０９とをまとめて参照番号５１９で示している。ネットワークＮＷは、第１の実施の形態と同様に、TCPまたはUDP通信を伝送するネットワークである。
【００７８】
ソフトウェア実行環境５２２の内のソフトウェア実行環境５２６は、本実施の形態のために拡張された部分（即ち本発明による拡張部分）であり、また、ソフトウェア実行環境５２４の内のソフトウェア実行環境５２８は、本実施の形態のために拡張された部分である。
【００７９】
図４に示したハードウェア及び図５に示したソフトウェア機能ブロックは概略つぎのように動作する。
【００８０】
筐体４００(1)のハードウェア４０１に実装されたソフトウェア５００は、TCPまたはUDP通信手段５０２を利用して通信を行うよう動作する。この通信手段５０２は、ソフトウェア５００からの要求に応じて、ハードウェアである通信手段４０２、４１０、４１２を用いて、ネットワークＮＷを介したTCPまたはUDP通信を行うように動作する。送信元ポート番号自動割当手段５０４の動作は、TCPまたはUDP通信手段５０２の内部処理の一環を成しており、ソフトウェア５００が送信元ポート番号を指定せずに通信手段５０２に通信を行うように要求してきた場合に、適切な送信元ポート番号を自動的にTCPまたはUDP通信に割り当てるように動作する。
【００８１】
TCPまたはUDP通信制御手段５０６は、通信手段５０２による通信を監視或いは調査し、通信制御情報設定手段５１８から与えられた通信制御情報に従って通信を制御する。通信制御とは、第１の実施の形態と同様、例えば、帯域配分、通信の転送、通信の遮断などである。
【００８２】
送信元ポート番号自動割当手段５０４は、上述したように、通信手段５０２での処理の一環として動作し、ソフトウェア５００が要求したTCPまたはUDP通信に対して送信元ポート番号を動的に割り当てる。割り当てられた送信元ポート番号は、送信元ポート番号自動割当結果フック手段５１０に取り込まれる。
【００８３】
ソフトウェア識別手段５０８及びハードウェア識別手段５０９は、送信元ポート番号自動割当結果フック手段５１０が送信元ポート番号を取得するのに応答し、それぞれ、ソフトウェア５００を識別すると共に、ソフトウェア５００が実装されている筐体或いはハードウェア（本例の場合は筐体４００(1)或いはハードウェア４０１）を識別する。即ち、ソフトウェア識別手段５０８は、例えば、ソフトウェア５００の実行ファイル名をソフトウェア識別情報として取得し、更に、ハードウェア識別手段５０９は、ソフトウェア５００が実装されている筐体４００(1)のシリアルナンバー等をハードウェア識別情報（即ちソフトウェア実行用ハードウェアの識別情報）として取得する。筐体４００(1)を識別するハードウェア識別情報は、例えば、ソフトウェア５００に予め書き込むようにすればよい。取得された「ソフトウェア識別情報・ハードウェア識別情報」の組は、通信制御情報検索手段５１２に送出される。さらに、この「ソフトウェア識別情報・ハードウェア識別情報」の組は送信元ポート番号自動割当結果フック手段５１０にも送られ、ここで既に取得されている送信元ポート番号と組み合わされ、「送信元ポート番号・ソフトウェア識別情報・ハードウェア識別情報」の組として通信制御情報補完手段５１６に伝達される。
【００８４】
通信制御情報検索手段５１２は、通信制御情報保持手段５１４に予め保存されている通信制御情報群の中から、「ソフトウェア識別情報・ハードウェア識別情報」の組と対応する通信制御情報を検索して取り出し、「通信制御情報・ソフトウェア識別情報・ハードウェア識別情報」の組を通信制御情報補完手段５１６に引き渡す。なお、通信制御情報保持手段５１４は、通信制御情報と、ソフトウェア識別情報およびハードウェア識別情報の対の情報とを関連付けて保持している。ここで、通信制御情報と、ソフトウェア識別情報およびハードウェア識別情報の組の関連付けは、１対１もしくは１対多であり、ソフトウェア識別情報とハードウェア識別情報の両方を特定すれば、関連付けられた通信制御情報を一意に定めることができる。
【００８５】
通信制御情報保持手段５１４に保持されている通信制御情報は、送信元ポート番号に関する情報が欠落しており、送信元ポート番号に関する情報が保管されるまでは、通信制御手段５０６に設定する通信制御情報として不十分である。
【００８６】
通信制御情報補完手段５１６は、通信制御情報検索手段５１２が取得した通信制御情報に欠落している送信元ポート番号を、送信元ポート番号自動割当結果フック手段５１０が取得した送信元ポート番号で補完する。この際、通信制御情報補完手段５１６は、通信制御情報検索手段５１２から渡された「通信制御情報・ソフトウェア識別情報・ハードウェア識別情報」の組の「ソフトウェア識別情報・ハードウェア識別情報」と、送信元ポート番号自動割当結果フック手段５１０から渡された「送信元ポート番号・ソフトウェア識別情報・ハードウェア識別情報」の組の「ソフトウェア識別情報・ハードウェア識別情報」とを比較し、合致していれば、通信制御情報検索手段５１２が取得した通信制御情報に欠落している送信元ポート番号を、送信元ポート番号自動割当結果フック手段５１０が取得した送信元ポート番号で補完する。
【００８７】
この理由は、ソフトウェア実行環境５２２が、同一筐体或いは異なった筐体に収納されている「同一或いは異なったソフトウェア」から、ほぼ同時に通信依頼を受けた場合に、通信制御情報を正しい送信元ポート番号で補完できるようにするためである。
【００８８】
通信制御情報検索手段補完後の通信制御情報は、通信制御手段５０６に設定する通信制御情報として十分である。通信制御情報設定手段５１８は、通信制御情報補完手段５１６が補完した後のTCPまたはUDP通信制御情報を通信制御手段５０６に設定するように動作する。
【００８９】
次に、図５及び図６を参照して本実施の形態の全体の動作について説明する。
【００９０】
まず、ソフトウェア５００が、その動作の一部として、TCPまたはUDP通信を通信手段５０２に依頼する（ステップ６００）。ここでのTCPまたはUDP通信は、TCP/IPの接続動作もしくはUDP/IPの送信動作を含み、送信元ポート番号をソフトウェア５００で明示的に指定しない。
【００９１】
次に、通信手段５０２は、内部処理の一環として、送信元ポート番号自動割当手段５０４を呼び出して送信元ポート番号の自動割当を行う（ステップ６０２）。
【００９２】
さらに、送信元ポート番号自動割当結果フック手段５１０は、送信元ポート番号自動割当手段５０４によって送信元ポート番号の自動割当動作が行われたことを検知し、自動割当された送信元ポート番号を取得する（ステップ６０４）。
【００９３】
送信元ポート番号を取得した後、ソフトウェア識別手段５０８が、通信手段５０２に通信を依頼したソフトウェア５００を識別してソフトウェア識別情報を取得し、ハードウェア識別手段５０９がハードウェア識別情報を取得する（ステップ６０６）。取得された「ソフトウェア識別情報・ハードウェアの識別情報」の組は、通信制御情報検索手段５１２に通信手段４０２を用いて送信され、更に、送信元ポート番号自動割当結果フック手段５１０にも送られる。送信元ポート番号自動割当結果フック手段５１０は、「ソフトウェア識別情報・ハードウェアの識別情報」の組に、既に取得している送信元ポート番号と組み合わせ、「送信元ポート番号・ソフトウェア識別情報・ハードウェア識別情報」の組として通信制御情報補完手段５１６に伝達する。
【００９４】
通信制御情報検索手段５１２が、通信手段４１０を用いて、ソフトウェア識別情報とハードウェアの識別情報の組を取得した後、通信制御情報保持手段５１４に保持されている1個以上の通信制御情報の中から、「ソフトウェア識別情報・ハードウェア識別情報」の組をキーにして、1個の通信制御情報を取得する（ステップ６０８）。この時点でのTCPまたはUDP通信制御情報は、送信元ポート番号に関する情報が欠落しており、通信制御手段５０６に設定する情報としては不完全である。
【００９５】
通信制御情報補完手段５１６は、検索手段５１２から通信制御情報を取得した後、通信制御情報における送信元ポート番号に関する情報の欠落を、ステップ６０４で取得した送信元ポート番号に関する情報を用いて補完する。この際、上述したように、通信制御情報補完手段５１６は、通信制御情報検索手段５１２から渡された「通信制御情報・ソフトウェア識別情報・ハードウェア識別情報」の組の「ソフトウェア識別情報・ハードウェア識別情報」と、送信元ポート番号自動割当結果フック手段５１０から渡された「送信元ポート番号・ソフトウェア識別情報・ハードウェア識別情報」の組の「ソフトウェア識別情報・ハードウェア識別情報」とを比較し、合致していれば、通信制御情報検索手段５１２が取得した通信制御情報を、送信元ポート番号自動割当結果フック手段５１０が取得した送信元ポート番号で補完する（ステップ６１０）。
【００９６】
この時点で、送信元ポート番号に関する情報が通信制御情報に含まれることになり、通信制御手段５０６に設定する情報として完全となる。
【００９７】
通信制御情報設定手段５１８は、送信元ポート番号に関する情報が補完された通信制御情報を通信制御手段５０６に設定する（ステップ６１２）。この時点以降、通信制御手段５０６は、設定された通信制御情報に基づいてTCPまたはUDP通信の制御を行う準備ができたことになる。
【００９８】
最後に、通信手段５０２は、ソフトウェア５００からの依頼（図６のステップ６００）に基づいてTCPまたはUDP通信を行う。このTCPまたはUDP通信の制御は、ステップ６１２で行われた通信制御情報の設定に基づき、通信制御手段５０６において行なわれる。
【００９９】
上述の第２の実施の形態の効果について説明する。
【０１００】
先ず、第１の実施の形態で説明した効果と同様の効果がある。更に、ソフトウェア５００を実行するコンピュータ４０４と、通信制御手段５０６を実行するコンピュータ４１４とが別になっているので、ソフトウェア５００を実行する負荷と、通信制御手段５０６を実行する負荷を分散することができる。
【０１０１】
更にまた、第２の実施の形態によれば、１個以上の筐体４００(1)−４００(n)の夫々に実装されたハードウェアと1個のハードウェア４０９とからなるシステムで構成されているため、１個のハードウェア４０９内の通信制御情報保持手段５１４に通信制御情報を保持することで、１個以上の筐体４００(1)−４００(n)の夫々に実装されたハードウェアでのTCPまたはUDP通信を制御できるという効果がある。
【０１０２】
更にまた、第２の実施の形態によれば、通信制御情報補完手段５１６において通信制御情報に送信元ポート番号を補完する際、検索手段５１２とフック手段５１０から送られてきた「ソフトウェア識別情報・ハードウェア識別情報」の組が合致するかどうかをチェックしている。従って、1個の筐体中で同一のソフトウェアが同時に複数個動作する場合や、1個の筐体中で複数の異なったソフトウェアが同時に動作する場合や、異なる筐体中で同一のソフトウェアが同時に動作する場合にも、通信制御情報補完手段５１６において的確に通信制御情報を送信元ポート番号で補完することができる。
【０１０３】
次に、第３の実施の形態ついて図面を参照して説明する。本実施の形態に係るハードウェアは、上述した第１の実施の形態で説明した図１のハードウェアと同様の構成なので、ハードウェアについての説明は省略する。
【０１０４】
図７は、第３の実施の形態を実現するソフトウェアの機能をブロックで示したものであり、本実施の形態は、図７のソフトウェアの機能ブロックを、図１に示したハードウェア上で適切なソフトウェア(オペレーティングシステム・ミドルウェア・アプリケーションソフトウェア)を実行することにより実現される。
【０１０５】
図７に示すように、第３の実施の形態は、TCPまたはUDP通信を行うソフトウェア７００(多くはアプリケーションソフトウェア)と、このソフトウェア７００がTCPまたはUDP通信を行う際に利用する通信手段７０２と、この通信手段７０２によるTCPまたはUDP通信を制御する通信制御手段７０４と、送信元ポート番号自動割当手段７０６と、ソフトウェア識別手段７０８と、通信手段呼出フック手段７１０と、通信制御情報検索手段７１２と、通信制御情報保持手段７１４と、通信制御情報補完手段７１６と、送信元ポート番号自動割当呼出手段７１８と、送信元ポート自動割当取得手段７２０と、通信制御情報設定手段７２２とから構成される。
【０１０６】
なお、ソフトウェア実行環境７２４の内のソフトウェア実行環境７２６が、本実施の形態を実現するために拡張された部分である。また、TCPまたはUDP通信は、ネットワークＮＷを介して伝送される。
【０１０７】
上述の機能ブロックはそれぞれ次のように動作する。ソフトウェア７００は、通信手段７０２を利用して、TCPまたはUDP通信を行うよう動作する。通信手段７０２は、ソフトウェア７００からの要求に応じて、ネットワークＮＷを介してTCPまたはUDP通信を行うように動作する。通信制御手段７０４は、通信手段７０２によるTCPまたはUDP通信を調査し、通信制御情報設定手段７２２から与えられた通信制御情報に従って、TCPまたはUDP通信を制御(帯域配分、通信の転送、通信の遮断など)するように動作する。
【０１０８】
送信元ポート番号自動割当手段７０６は、後述する通信呼出フック手段７１０及び送信元ポート番号自動割当呼出手段７１８の処理に応答し、通信手段７０２によるTCPまたはUDP通信で用いられる送信元ポート番号を、通信手段７０２が動作する前に、自動的に(ソフトウェア７００に送信元ポート番号を指定されること無く)決定し、TCPまたはUDP通信に割り当てるように動作する。 ソフトウェア識別手段７０８は、ソフトウェア７００を識別するための識別子(例えばソフトウェア７００の実行ファイル名など)を、ソフトウェア識別情報としてソフトウェア７００と関連付ける。
【０１０９】
通信手段呼出フック手段７１０は、ソフトウェア７００が通信手段７０２を呼び出したことを検知し、通信手段７０２が実行される前に、送信元ポート番号自動割当呼出手段７１８から開始される一連の処理を行わせるように動作する。通信制御情報検索手段７１２は、通信制御情報保持手段７１４に、予め保存されている通信制御情報群の中から、ソフトウェア識別情報と対応する通信制御情報を検索して取り出すように動作する。通信制御情報保持手段７１４は、通信制御情報とソフトウェア識別情報とを関連付けて保持している。ここで、ソフトウェア識別情報と通信制御情報との関連付けは、１対１もしくは１対多であり、ソフトウェア識別情報を特定すれば、関連付けられた通信制御情報が一意に定まる。なお、通信制御情報保持手段７１４に保持されている通信制御情報には、送信元ポート番号に関する情報が欠落しており、通信制御手段７０４に設定する通信制御情報として不十分である。
【０１１０】
通信制御情報補完手段７１６は、通信制御情報検索手段７１２が取得した通信制御情報における送信元ポート番号に関する情報の欠落を、送信元ポート自動割当取得手段７２０が取得した送信元ポート番号を用いて補完する。補完された通信制御情報は、通信制御手段７０４に設定する通信制御情報として十分である。送信元ポート番号自動割当呼出手段７１８は、送信元ポート番号自動割当手段７０６を呼び出すよう動作する。送信元ポート自動割当取得手段７２０は、送信元ポート番号自動割当手段７０６で割り当てられた送信元ポート番号を取得し、通信制御情報補完手段７１６に引き渡すように動作する。通信制御情報設定手段７２２は、通信制御情報補完手段７１６が補完した通信制御情報を通信制御手段７０４に設定する。
【０１１１】
次に、図７及び図８を参照して第３の実施の形態の動作について説明する。
【０１１２】
まず、ソフトウェア７００が、その動作の一部として、TCPまたはUDP通信を行うために通信手段７０２を呼び出す（ステップ８００）。ここでのTCPまたはUDP通信は、TCP/IPの接続動作もしくはUDP/IPの送信動作を含み、送信元ポート番号をソフトウェア７００において明示的に指定しない。
【０１１３】
通信手段呼出フック手段７１０は、通信手段７０２が呼び出されたことを検知し、送信元ポート番号自動割当呼出手段７１８を呼び出す（ステップ８０２）。次に、送信元ポート番号自動割当呼出手段７１８が、送信元ポート番号自動割当手段７０６を呼び出し、送信元ポート番号自動割当手段７０６が、適切な送信元ポート番号を自動的に(ソフトウェア７００から送信元ポート番号を指定されること無く)決定して通信用として割り当てる（ステップ８０４）。
【０１１４】
次に、送信元ポート自動割当取得手段７２０は、送信元ポート番号自動割当手段７０６がTCPまたはUDP通信に割り当てた送信元ポート番号を取得し、通信制御情報補完手段７１６に引き渡す（ステップ８０６）。その後、ソフトウェア識別手段７０８が、通信手段７０２を利用しようとするソフトウェア７００を識別してソフトウェア識別情報を取得する（ステップ８０８）。次いで、通信制御情報検索手段７１２が、通信制御情報保持手段７１４に保持されている1個以上のTCPまたはUDP通信制御情報の中から、ソフトウェア識別情報をキーにして、1個の通信制御情報を取得する（ステップ８１０）。この時点での通信制御情報には、送信元ポート番号に関する情報が欠落しており、通信制御手段７０４に設定する情報としては不完全である。
【０１１５】
通信制御情報を取得した後、通信制御情報補完手段７１６は、ステップ８０６で取得した送信元ポート番号に関する情報を用いて上述の通信制御情報における欠落情報を補完し（ステップ８１２）、続いて、補完された通信情報は、通信制御情報設定手段７２２によって通信制御手段７０４に設定される（ステップ８１４）。この時点で通信制御手段７０４は設定された通信制御情報に基づいてTCPまたはUDP通信の制御を行なうことができるので、通信手段７０２は、ソフトウェア７００からの依頼（ステップ８００）に基づいてTCPまたはUDP通信を行う（ステップ８１６）。つまり、通信制御手段７０４は、ステップ８１４で設定された通信制御情報の設定に基づいてTCPまたはUDP通信を制御する（ステップ８１８）。
【０１１６】
第３の実施の形態によれば、上述した第１の実施の形態で説明したと同様の効果が得られる。しかし、第１の実施の形態では、通信手段内部に改造を加えて、送信元ポート番号自動割当結果フック手段が呼び出されるようにする必要があるが、第３の実施の形態によれば、TCPまたはUDP通信手段の開始時点に改造を加えて、通信手段呼出フック手段が呼び出されるようにすればよいので、TCPまたはUDP通信手段の内部構造を詳細に分析しなくても改造を行うことができるという効果が得られる。
【０１１７】
次に、本発明に係る第４の実施の形態について説明する。本実施の形態は、上述した第３の実施の形態を図４に示したハードウェア上に実装するものである。つまり、第３及び第４の実施の形態との関係は、第１及び第２の実施の形態の関係と同様なので、詳細な説明は省略する。
【実施例】
【０１１８】
次に、具体的な実施例を用いて本発明を更に説明する。
【０１１９】
図９は、本発明に係る実施例に使用するハードウェアの構成を簡単に示したものであり、端末装置９００は、有線イーサネットワークＥＮＷ（イーサネットは登録商標である）に接続するための有線イーサネットワークインタフェース９０２と、プログラムにより動作するコンピュータ９０４(CPUと内部メモリを有する)と、コンピュータ９０４の外部記憶装置であるハードディスクドライブ９０６とを備えている。
【０１２０】
図１０は、本発明の実施例を示すブロック図であり、図９に示したハードウェア上でソフトウェア(オペレーティングシステム、ミドルウェア、アプリケーションソフトウェア)を実行することにより実現される。
【０１２１】
本実施例では、Webブラウザ１０００がアプリケーションソフトウェアとして動作している。Webブラウザ１０００は、その動作の一環として、有線イーサネット上のIPネットワーク１００２を介してWebサーバ１００４と通信するため、ネットワーク関連システムコール１００６を呼び出すものとする。ここで例えば、UNIX（登録商標）系のオペレーティングシステムを用いるとすると、具体的なネットワーク関連システムコールとして、socketシステムコール（Webサーバ１００４への接続用ソケット作成要求）１００８、bindシステムコール１０１０、connectシステムコール（Webサーバ１００４への接続要求)１０１２、recvシステムコール（Webサーバ１００４からのデータ取得要求）１０１４等が挙げられる。
【０１２２】
典型的には、Webブラウザ１０００は、socketシステムコール１００８、connectシステムコール１０１２、recvシステムコール１０１４の順でネットワーク関連システムコール１００６を呼び出し、bindシステムコール１０１０は呼び出さない。なぜなら、bindシステムコール１０１０には、送信元ポート番号を明示する働きがあるが、Webブラウザ１０００は、通常、送信元ポート番号を明示的に指定しないよう動作するためである。
【０１２３】
Webブラウザ１０００が、connectシステムコール１０１２を呼び出すと、connectシステムコール１０１２の内部で送信元ポート番号を割り当てるために、送信元ポート番号自動割当用のオペレーティングシステム内部関数１０１６が呼び出される（オペレーティングシステムによっては、独立した関数ではなく、他の関数の処理の一部として実装されている場合もある)。
【０１２４】
送信元ポート番号自動割当用のオペレーティングシステム内部関数１０１６は本発明の実施例のために改造されているものとする。具体的には、送信元ポート番号自動割当用のオペレーティングシステム内部関数１０１６の処理が全て終了した直後にフック関数１０１８が呼び出されるように改造されている。
【０１２５】
フック関数１０１８は、送信元ポート番号自動割当用のオペレーティングシステム内部関数１０１６が割り当てた送信元ポート番号を取得し、パケットフィルタ用制御情報送信元ポート番号補完用ソフトウェア１０２０に引き渡す。引渡しには、例えばUNIXドメインソケットによるプロセス間通信が用いられる。
【０１２６】
また、フック関数１０１８は、Webブラウザ１０００の例えばプロセスIDをpsコマンド等の呼出用ソフトウェア１０２２に引き渡す。引渡しには、例えばUNIXドメインソケットによるプロセス間通信が用いられる。
【０１２７】
なお、UNIX系のオペレーティングシステムでは、動作中ソフトウェアの識別子としてプロセスIDが用いられ、ネットワーク関連システムコール１００６中では、呼出元のソフトウェアのプロセスIDは容易に取得できる。
【０１２８】
psコマンド等呼出用ソフトウェア１０２２は、プロセスIDを引き渡されると、それに対応するソフトウェアの実行ファイル名を特定する。この動作は、例えばUNIX系のオペレーティングシステムでは、通常、psコマンドなどを呼び出すことにより可能となる。また、psコマンド等呼出用ソフトウェア１０２２は、特定した実行ファイル名を、パケットフィルタ用制御情報データベース検索ソフトウェア１０２４に引き渡す。引渡しには、例えばUNIXドメインソケットによるプロセス間通信が用いられる。
【０１２９】
パケットフィルタ用制御情報データベース検索ソフトウェア１０２４は、実行ファイル名を引き渡されると、実行ファイル名をキーとして、パケットフィルタ用制御情報データベース１０２６を検索し、Webブラウザ用制御情報１０２８を取得し、パケットフィルタ用制御情報送信元ポート番号補完用ソフトウェア１０２０に引き渡す。引渡しには、例えばUNIXドメインソケットによるプロセス間通信が用いられる。ここで、Webブラウザ用制御情報１０２８には送信元ポート番号に関する情報が欠落しているので、パケットフィルタ１０３０に引き渡す情報としては不完全である。
【０１３０】
パケットフィルタ用制御情報送信元ポート番号補完用ソフトウェア１０２０は、送信元ポート番号とWebブラウザ用制御情報１０２８とを引き渡されると、Webブラウザ用制御情報１０２８を送信元ポート番号によって補完し、送信元ポート番号補完済みであるWebブラウザ用制御情報１０３２を作成し、パケットフィルタ用制御情報設定ソフトウェア１０３４に引き渡す。引渡しには、例えば、UNIXドメインソケットによるプロセス間通信が用いられる。ここで、送信元ポート番号補完済みWebブラウザ用制御情報１０３２は、送信元ポート番号に関する情報を含んでいるので、パケットフィルタ１０３０に引き渡す情報として完全である。
【０１３１】
パケットフィルタ用制御情報設定ソフトウェア１０３４は、送信元ポート番号補完済みWebブラウザ用制御情報１０３２が引き渡されると、パケットフィルタ１０３０に送信元ポート番号補完済みWebブラウザ用制御情報１０３２を設定する。設定には、パケットフィルタ１０３０固有の設定方法、即ち、通常、パケットフィルタ１０３０の設定ファイルを書き換えてからパケットフィルタ１０３０を再起動する等の方法が用いられる。
【０１３２】
ここまででフック関数１０１８から開始された一連の処理が終了し、Webブラウザ１０００の処理が再開される。Webブラウザ１０００によるネットワーク接続要求(connectシステムコール(10005))が終了したので、Webサーバ１００４からのデータ取得要求(recvシステムコール１０１４)が行われる。このrecvシステムコール１０１４によって、Webサーバ１００４からデータが送られてくると、パケットフィルタ１０３０は、送信元ポート番号補完済みWebブラウザ用制御情報１０３２に従って、データをウィルス検出用ソフトウェア１０３６に転送する。ここで、ウィルス検出用ソフトウェア１０３６への転送はあくまで実際に即した例示であり、その他の制御を行うことも同様に可能である。
【０１３３】
パケットフィルタ１０２０は、ウィルス検出用ソフトウェア１０３６によるウィルスチェックが終了したら、Webサーバ１００４からのデータをWebブラウザ１０００に転送する。
【０１３４】
以上説明した実施例からわかるように、本発明によれば、Webブラウザ１０００を改造することなく、TCP/IP通信の接続要求を含むWebブラウザ１０００の通信動作に対して、パケットフィルタ１０３０による制御が可能であり、かつ、Webブラウザ用制御情報１０２８には送信元ポート番号の情報を記述しておく必要がない。
【産業上の利用可能性】
【０１３５】
本発明は、例えば、パーソナルコンピュータのセキュリティ強化に適用できるし、ソフトウェアが拡張可能な携帯電話のセキュリティ強化にも適用可能である。
【０１３６】
さらに、本発明は、データベースから同義語を検索する情報検索装置や、情報検索装置をコンピュータ上で実現するためのプログラムにも適用できる。
【図面の簡単な説明】
【０１３７】
【図１】本発明に係る第１の実施の形態を実施するためのハードウェアの構成を簡単に示したブロック図。
【図２】本発明に係る第１の実施の形態の動作を説明するための機能ブロック図。
【図３】本発明に係る第１の実施の形態の動作を説明するための流れ図。
【図４】本発明に係る第２の実施の形態を実施するためのハードウェアの構成を簡単に示したブロック図。
【図５】本発明に係る第２の実施の形態の動作を説明するための機能ブロック図。
【図６】本発明に係る第２の実施の形態の動作を説明するための流れ図。
【図７】本発明に係る第３の実施の形態の動作を説明するための機能ブロック図。
【図８】本発明に係る第３の実施の形態の動作を説明するための流れ図。
【図９】本発明に係る実施例に使用するハードウェアの構成を簡単に示したブロック図。
【図１０】本発明に係る実施例の動作を説明するための機能ブロック図。
【図１１】従来例のハードウェアの構成を簡単に示したブロック図。
【図１２】図１１に示した従来例を説明するための機能ブロック図。
【符号の説明】
【０１３８】
１０２，４０２  通信手段（ハードウェア）
１０４，４０４，４１４  コンピュータ
１０６，４０６，４１６  記憶装置
２００，５００，７００  ソフトウェア
２０２，５０２，７０２  ＴＣＰ又はＵＤＰ通信手段
２０４，５０６，７０４  ＴＣＰ又はＵＤＰ通信制御手段
２０６，５０４，７０６  送信元ポート番号自動割当手段
２０８，７０８  ソフトウェア識別手段
２１０，５１０，７２０  送信元ポート番号自動割当結果フック手段
２１２，５１２，７１２  通信制御情報検索手段
２１４，５１４，７１４  通信制御情報保持手段
２１６，５１６，７１６  通信制御情報補完手段
２１８，５１８，７２２  通信制御情報設定手段
２２０，５２４，７２４  ソフトウェア実行環境
５０８  ソフトウェア/ハードウェア識別手段
【図１】
2007087038.tif 000003
【図２】
2007087038.tif 000004
【図３】
2007087038.tif 000005
【図４】
2007087038.tif 000006
【図５】
2007087038.tif 000007
【図６】
2007087038.tif 000008
【図７】
2007087038.tif 000009
【図８】
2007087038.tif 000010
【図９】
2007087038.tif 000011
【図１０】
2007087038.tif 000012
【図１１】
2007087038.tif 000013
【図１２】
2007087038.tif 000014