(57)【要約】【課題】本発明は、複数の送信元アドレスが割り当てられている場合でも適切な送信元アドレスを選択することができ、通信処理中の送信元アドレスの変更に伴う通信エラーを削減することができる通信装置を提供する。【解決手段】クライアントＰＣ１００は、送信される送信データの種別を識別するためのデータ識別、送信されるデータの宛先アドレス、および送信されるデータの送信元アドレスを含む送信情報４０４を管理する送信情報管理部４０２と、送信情報４０４を参照し、送信されるデータの種別及び宛先アドレスに基づいて、複数の送信元アドレスの中から一つの送信元アドレスを決定する送信元アドレス決定部４０５と、決定された送信元アドレスを用いて送信データを送信する送信部４０７を備える。【選択図】図６
2011010206.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク通信に用いられる複数の送信元アドレスが割り当てられた通信装置であって、
データを送信する送信手段と、
前記送信手段により送信されるデータの種別を識別するためのデータ識別、前記送信されるデータの宛先アドレス、および前記送信されるデータの送信元アドレスを含む送信情報を管理する管理手段と、
前記送信手段がデータを送信する際に、前記管理手段により管理されている送信情報を参照し、当該送信されるデータの種別及び宛先アドレスに基づいて、前記通信装置に割り当てられた複数の送信元アドレスの中から一つの送信元アドレスを決定する決定手段と、
前記決定手段により決定された送信元アドレスを用いて前記データを送信するよう前記送信手段を制御する制御手段とを備えることを特徴とする通信装置。
【請求項２】
前記管理手段は、前記送信手段がデータを送信した後、当該送信されたデータから、データ識別、宛先アドレス、および送信元アドレスを含む送信情報を取得し、当該取得した送信情報を管理することを特徴とする請求項１記載の通信装置。
【請求項３】
同一の送信元アドレスを用いて送信する必要があるデータを判定するためのデータ識別と当該データ識別に対応する属性情報とを対応付けて記憶する記憶手段と、
前記記憶手段に記憶された情報を参照し、前記送信手段により送信されるデータに前記属性情報が含まれているか否かを判定する属性判定手段とをさらに備え、
前記決定手段は、前記属性判定手段により前記送信されるデータに前記属性情報が含まれていないと判定された場合は、予め設定された送信元アドレスを設定することを特徴とする請求項１または２記載の通信装置。
【請求項４】
前記決定手段は、前記属性判定手段により前記送信されるデータに前記属性情報が含まれていると判定された場合は、当該属性情報に該当するデータ識別と前記送信されるデータの宛先アドレスとに基づいて、前記管理手段により管理されている送信情報から該当する送信元アドレスを決定することを特徴とする請求項３記載の通信装置。
【請求項５】
前記送信手段により送信されたデータに対して通信エラーが発生したか否かを判定する通信エラー判定手段をさらに備え、
前記管理手段は、前記通信エラー判定手段により通信エラーが発生したと判定された場合、当該管理手段が管理している送信情報から該当する送信情報を削除することを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記管理手段は、データの送信から所定時間経過後または送信回数が設定回数を超えた場合または削除要求時に、前記管理手段が管理している送信情報から該当する送信情報を削除することを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項７】
ネットワーク通信に用いられる複数の送信元アドレスが割り当てられた通信装置の制御方法であって、
データを送信する送信工程と、
前記送信工程で送信されるデータの種別を識別するためのデータ識別、前記送信されるデータの宛先アドレス、および前記送信されるデータの送信元アドレスを含む送信情報を管理する管理工程と、
前記送信工程でデータを送信する際に、前記管理工程で管理された送信情報を参照し、当該送信されるデータの種別及び宛先アドレスに基づいて、前記通信装置に割り当てられた複数の送信元アドレスの中から一つの送信元アドレスを決定する決定工程と、
前記決定工程で決定された送信元アドレスを用いて前記データを送信するよう前記送信工程を制御する制御工程とを備えることを特徴とする制御方法。
【請求項８】
請求項７に記載の制御方法をコンピュータに実行させるためのコンピュータに読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク通信に用いられる複数の送信元アドレスが割り当てられた通信装置及びその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、ＰＣ（パーソナルコンピュータ）やプリンタ、ＭＦＰ（マルチファンクションペリフェラル）などの様々な機器が、イントラネット、インターネット、ＬＡＮ等のネットワークに接続可能な通信装置として用いられている。ネットワークに接続する通信装置で広く用いられているプロトコルは、一般的に、インターネットプロトコル（ＩＰ）である。この方式では、各機器に固有のＩＰアドレスを割り当ててＩＰアドレスベースで各機器が識別しあう。
【０００３】
従来のＩＰ規約（ＩＰｖ４：ＩＰバージョン４）では、ネットワーク上の他の通信装置から識別するためのアドレスは、１つのネットワークインターフェース（Ｉ／Ｆ）について１つのアドレスが付与される場合が一般的であった。一方、近年普及しつつあるＩＰｖ６（ＩＰバージョン６）では、通信装置がルータに接続されると、ルータと通信装置間で通信を行い、通信装置が自動的にＩＰアドレスを取得する。それらのアドレスとは別に、ルータが存在しない場合も通信を行えるように、ネットワークＩ／Ｆ毎にＩＰｖ６アドレスが割り当てられる。さらに、ＤＨＣＰサーバが存在する場合は、通信装置はＤＨＣＰサーバが発行したＩＰアドレスを取得する。
【０００４】
このように、複数のＩＰｖ６アドレスを通信装置の１つのネットワークＩ／Ｆに割り当てることが一般的である。このため、ＩＰｖ６アドレスをサポートする通信装置は、１つのネットワークＩ／Ｆに対して、ＩＰｖ４アドレスや複数のＩＰｖ６アドレスが割り当てられる。これらの複数のＩＰアドレスが割り当てられた通信装置において、適切に通信を行うためのＩＰアドレス選択方法が提案されている（例えば、非特許文献１参照）。
【０００５】
ところで、複数の通信装置で構成されたネットワークシステムには、クライアントの送信元アドレスに応じて、サーバがサービスを提供するものがある。例えば、クライアントの送信元アドレスによって提供する情報を変えるＷｅｂサーバや、クライアントのアドレスベースの認証を行う通信サーバなどである。このようなクライアントのアドレスベースのシステムは、通信プロトコルやアプリケーションの種類に関わらず、広く通信システム一般に使われている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２８２７２８号公報
【非特許文献】
【０００７】
【非特許文献１】Internet Engineering Task Force RFC3484 “Default Address Selection for Internet Protocol version 6 （IPv6)”<URL: http://www.ietf.org/rfc/rfc3484.txt>
【発明の概要】
【発明が解決しようとする課題】
【０００８】
クライアントの送信元アドレスに応じてサーバがサービスを提供する従来のシステムでは、一連の通信処理中にクライアントが複数の送信元アドレスを利用して通信することがある。この場合、クライアントの送信元アドレスによって提供する情報を変える通信サーバやクライアントのアドレスによって認証を行う通信サーバでは、一連のトランザクションの処理中に送信元アドレスが変わった場合は通信エラーが発生することがある。
【０００９】
ＲＦＣ３４８４のソースアドレスセレクションによる送信元アドレスの選択を行った場合でも、ネットワーク環境が動的に変更される。このため、同一の宛先アドレスに対して、常に同じ送信元アドレスが選択されるわけではない。
【００１０】
本発明は、複数の送信元アドレスが割り当てられている場合でも適切な送信元アドレスを選択することができ、通信処理中の送信元アドレスの変更に伴う通信エラーを削減できる通信装置及びその制御方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は、ネットワーク通信に用いられる複数の送信元アドレスが割り当てられた通信装置であって、データを送信する送信手段と、前記送信手段により送信されるデータの種別を識別するためのデータ識別、前記送信されるデータの宛先アドレス、および前記送信されるデータの送信元アドレスを含む送信情報を管理する管理手段と、前記送信手段がデータを送信する際に、前記管理手段により管理されている送信情報を参照し、当該送信されるデータの種別及び宛先アドレスに基づいて、前記通信装置に割り当てられた複数の送信元アドレスの中から一つの送信元アドレスを決定する決定手段と、前記決定手段により決定された送信元アドレスを用いて前記データを送信するよう前記送信手段を制御する制御手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、複数の送信元アドレスが割り当てられている場合でも、通信処理中に適切な送信元アドレスを選択することができ、アドレス選択に起因する通信エラーの発生を低下させることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態に係る通信装置が設置されたネットワーク環境の一例を示すネットワーク構成図である。
【図２】図１におけるクライアントＰＣの構成例を示すブロック図である。
【図３】クライアントＰＣ及びサーバＰＣの機能構成の概略を示すブロック図である。
【図４】図３における送信情報記憶部に記憶された送信情報管理テーブルの一例を示す図である。
【図５】図３における送信データ識別情報記憶部に記憶された送信データ識別情報の一例を示す図である。
【図６】クライアントＰＣのクライアント通信制御部における通信処理の流れを示すフローチャートである。
【図７】本発明の第２の実施形態におけるクライアントＰＣのクライアント通信制御部における通信処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１５】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る通信装置が設置されたネットワーク環境の一例を示すネットワーク構成図である。
【００１６】
図１において、本発明の実施形態に係る通信装置の一例であるクライアントＰＣ１００は、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）等のネットワーク１０６を介してサーバＰＣ１０５に接続されている。
【００１７】
クライアントＰＣ１００は、ネットワーク１０６を介して、サーバＰＣ１０５や不図示の通信装置等と通信を行うためにＩＰアドレスを保持する。サーバＰＣ１０５は、クライアントＰＣ１００からのリクエストに応答するサービスを提供する。サーバＰＣ１０５が提供するサービスとしては、例えば、ＷｅｂやＤＮＳ、メール、ＳＮＭＰエージェント、ＷＳ−Ｅｖｅｎｔｉｎｇなどの機能がある。なお、サーバＰＣ１０５が提供するサービスについて、ＩＰアドレスを利用する通信であれば、プロトコルの種類を限定するものではない。
【００１８】
クライアントＰＣ１００が複数のＩＰアドレスを保持している場合、通信時に、サーバＰＣ１０５のアドレス（ディスティネーションアドレス）に応じた、クライアントＰＣ１００のアドレスの中から適切なアドレスを選択する必要がある。
【００１９】
図示例では、クライアントＰＣ１００、サーバＰＣ１０５、及びネットワーク１０６で構成されているが、これ以外のネットワークデバイス、情報処理装置、通信装置が接続されていてもよい。また、クライアントＰＣ１００とサーバＰＣ１０５との間の通信方式については、ＬＡＮ，ＷＡＮ以外のネットワークやＩＥＥＥ８０２．１１などの無線ＬＡＮ、ＩＥＥＥ１３９４などであってもよいことは云うまでもない。
【００２０】
図２は、図１のクライアントＰＣ１００の構成例を示すブロック図である。
【００２１】
ＣＰＵ１は、システムバス４に接続された各部を統括的に制御する中央処理装置である。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能するメモリである。ＲＯＭ３は、フォント用ＲＯＭ（不図示）、プログラム用ＲＯＭ（不図示）、及びデータ用ＲＯＭ（不図示）などで構成されたメモリである。外部メモリ１１はハードディスク（ＨＤ）、フロッピー(登録商標)ディスク（ＦＤ）等から構成されている。外部メモリ１１は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶する。
【００２２】
フォント用ＲＯＭ或いは外部メモリ１１は、後述する文書処理等の際に使用されるフォントデータ等を記憶する。プログラム用ＲＯＭ或いは外部メモリ１１は、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下、「ＯＳ」と呼ぶ）等を記憶する。データ用ＲＯＭ或いは外部メモリ１１は、後述する文書処理等を行う際に使用する各種データを記憶する。外部メモリ１１に記憶されているプログラムは、実行時にＲＡＭ２に展開されて実行される。
【００２３】
ＣＰＵ１は、ＲＯＭ３のプログラム用ＲＯＭ又は外部メモリ１１に記憶されたアプリケーション（文書処理プログラム等）に基づいて、図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理等の各種処理を実行する。また、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴコントローラ（ＣＲＴＣ）６を介してＣＲＴ１０に表示する。
【００２４】
キーボードコントローラ（ＫＢＣ）５は、各種キーを備えるキーボード（ＫＢ）９やポインティングデバイス（不図示）からの入力情報を制御する。ＣＲＴＣ６は、ＣＲＴ１０への表示を制御する。ＣＲＴ１０は、図形、イメージ文字、表等を表示する表示装置であり、ＣＲＴで構成されているが、液晶やプラズマ等で構成されていてもよい。ディスクコントローラ（ＤＫＣ）７は、外部メモリ１１とのアクセスを制御する。ネットワークコントローラ（ＮＷＣ）８は、双方向性インタフェース２１を介してネットワーク１０６に接続されている。
【００２５】
ＣＰＵ１は、ＣＲＴ１０上のマウスカーソル（不図示）等で指示されたコマンドに基づいて、登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは、後述するクライアントアプリケーション１０１やサーバアプリケーション１０８を使用する際、その設定などの操作に関するウインドウを開き、設定を行うことができる。
【００２６】
なお、図１のサーバＰＣ１０５も図示例と同様の構成を有するものとし、その説明は省略する。
【００２７】
図３は、クライアントＰＣ１００及びサーバＰＣ１０５の機能構成の概略を示すブロック図である。
【００２８】
クライアントＰＣ１００では、クライアントアプリケーション１０１からのリクエストにより、クライアント通信制御部１０２及び通信ライブラリ１０３を介してサーバＰＣ１０５と通信を行う。なお、図示例では、クライアントアプリケーション１０１のみが動作しているが、複数のクライアントアプリケーションが動作していてもよい。
【００２９】
クライアントアプリケーション１０１はクライアント通信制御部１０２との間で通信を行う。クライアント通信制御部１０２は、ＯＳの通信ライブラリ１０３を介してサーバＰＣ１０５と通信を行う。通信ライブラリ１０３はソケット通信を行うが、ＲＰＣ（Remote Procedure Call）やＬＰＣ（Local Procedure Call）、Ｗｅｂサービス等による通信も行うことができる。
【００３０】
サーバＰＣ１０５では、サーバアプリケーション１０８が動作している。サーバアプリケーション１０８は、サーバ通信制御部１０７との間で通信を行う。サーバ通信制御部１０７は、通信ライブラリ１０４からネットワーク１０６を介して、クライアントＰＣ１００と通信を行う。
【００３１】
クライアント通信制御部１０２は、通信制御部４０１、送信情報管理部４０２、送信情報記憶部４０３、送信情報管理テーブル４０４、送信元アドレス決定部４０５、送信データ識別情報記憶部４０６、及び送信部４０７で構成される。
【００３２】
通信制御部４０１は、クライアント通信制御部１０２を構成する各部を利用して送信情報の取得と送信元アドレスの判定を行い、その判定結果に応じて、通信に利用する送信元アドレスを決定する。そして、クライアントＰＣ１００とサーバＰＣ１０５との通信制御が行われる。
【００３３】
送信情報管理部４０２は、送信データ及び通信で利用するアドレスの取得及び管理を行う。送信情報管理部４０２が取得する情報には、例えば、クライアント通信制御部１０２を利用するクライアントアプリケーションを識別するためのアプリケーション識別がある。また、送信データの種別を識別するための送信データ識別がある。また、送信データの宛先アドレスとしてＩＰアドレスとポート番号がある。さらに、送信データの送信元アドレスとしてＩＰアドレスとポート番号がある。
【００３４】
送信情報記憶部４０３は、送信情報管理部４０２が取得した送信データ情報及び各アドレス情報を送信情報管理テーブル４０４として記憶する。送信情報管理テーブル４０４の一例を図４に示す。なお、送信情報記憶部４０３は、実際には外部メモリ１１等に設定された記憶領域であり、該記憶領域に送信情報管理テーブル４０４が記憶されるものとする。
【００３５】
送信元アドレス決定部４０５は、ネットワーク通信に用いられる送信元アドレスを決定する。送信元アドレスの決定は、送信情報記憶部４０３の送信情報管理テーブル４０４内に該当する送信情報が無い場合は、ＲＦＣ３４８４のソースアドレスセレクションに従って行われる。一方、送信情報記憶部４０３の送信情報管理テーブル４０４内に該当する送信情報が有る場合、送信元アドレス決定部４０５は、過去に行ったデータ送信で用いた送信元アドレスを今回の通信で用いる送信元アドレスとして決定する。
【００３６】
送信データ識別情報記憶部４０６は、同一の送信元アドレスを用いて送信する必要がある送信データを判定するための送信データ識別情報４０８を記憶する。送信データ識別情報記憶部４０６が記憶する送信データ識別情報の一例を図５に示す。
【００３７】
送信部４０７は、クライアントアプリケーション１０１の指示により、宛先アドレスに送信データを送信する。このとき、送信元アドレス決定部４０５の決定した送信元アドレスを利用してデータ送信を行う。送信部４０７は、送信データの送信に非コネクション型プロトコルを利用してもよい。また、非コネクションプロトコルはＵＤＰプロトコルであってもよい。
【００３８】
図４は、図３における送信情報記憶部４０３に記憶された送信情報管理テーブル４０４の一例を示す図である。
【００３９】
図４において、送信情報管理テーブル４０４は、送信情報管理部４０２により管理される管理テーブルである。送信情報管理テーブル４０４は、管理番号５０１、アプリケーション識別５０２、送信データ識別５０３、宛先アドレス５０４、送信元アドレス５０５で構成される。
【００４０】
管理番号５０１は、送信データ情報及び各アドレス情報が送信情報記憶部４０３に記憶される際に送信情報管理部４０２により付与される管理番号である。アプリケーション識別５０２は、クライアント通信制御部１０２を利用するクライアントアプリケーションを識別するための識別情報である。送信データ識別５０３は、送信データを識別するための識別情報である。宛先アドレス５０４は、送信データの宛先アドレスであり、ＩＰアドレスとポート番号で構成される。送信元アドレス５０５は、送信データの送信元アドレスであり、ＩＰアドレスとポート番号で構成される。
【００４１】
図示例では、アプリケーション識別５０２の「アプリケーション１」と、送信データ識別５０３の「WS-Eventing［Subscribe］」が対応する。さらに、「アプリケーション１」と「WS-Eventing［Subscribe］」の組合せには、宛先アドレス５０４のＩＰアドレス［2001:a:b::10］とポート番号［80］、及びＩＰアドレス［fd00:1:2::100］とポート番号［80］が対応している。
【００４２】
一方、アプリケーション識別５０２の「アプリケーション１」と、送信データ識別５０３の「SNMP［GetRequest］」が対応する。さらに、「アプリケーション１」と「SNMP［GetRequest］」の組合せには、宛先アドレス５０４のＩＰアドレス［192.168.1.10］とポート番号［161］が対応している。
【００４３】
ここで、アプリケーション１は、例えば、クライアントアプリケーション１０１に割り当てられた識別情報である。その他のクライアントアプリケーションについては、例えば、アプリケーション２，３，・・・等が割り当てられるものとする。なお、この識別情報の形式については、これに限定されるものではない。
【００４４】
従って、「アプリケーション１」が同一の送信元アドレスから送信する必要がある送信データで「WS-Eventing［Subscribe］」に該当するものを所定の宛先アドレスに送信する場合の送信元アドレスは次のように設定される。すなわち、所定の宛先アドレスがＩＰアドレス［2001:a:b::10］、ポート番号［80］である場合、送信元アドレスとしてＩＰアドレス［2001:a:b::200］とポート番号［1025］が設定され、該送信元アドレスを使って通信が行われる。
【００４５】
しかし、「アプリケーション１」が同一の送信元アドレスから送信する必要がある送信データで「WS-Eventing［Subscribe］」に該当するものを送信情報管理テーブル４０４内の宛先アドレス５０４に存在しない宛先アドレスに対して送信する場合は以下となる。例えば、宛先アドレスとしてＩＰアドレス［2001::1000］及びポート番号［80］が宛先アドレス５０４に存在しなかった場合、ＲＦＣ３４８４のソースアドレスセレクションに従って送信元アドレスが決定され、通信（通常の送信）が行われる。そして、送信元アドレスを含む送信情報が送信情報記憶部４０３の送信情報管理テーブル４０４に格納される。
【００４６】
また、「アプリケーション１」が同一の送信元アドレスから送信する必要が無い送信データ（送信データ識別５０３に登録されていないデータ）を送信する場合も同様である。すなわち、ＲＦＣ３４８４のソースアドレスセレクションに従って送信元アドレスが決定され、通信（通常の送信）が行われる。この場合は、同一の送信元アドレスから送信する必要が無いため、送信元アドレスを含む送信情報を送信情報記憶部４０３の送信情報管理テーブル４０４に格納されない。
【００４７】
図５は、図３における送信データ識別情報記憶部４０６に記憶された送信データ識別情報４０８の一例を示す図である。
【００４８】
図５において、送信データ識別情報４０８は、送信データ識別情報記憶部４０６に記憶され、同一の送信元アドレスから送信する必要がある送信データ識別と送信データ識別に対応する属性情報をグループ化した管理テーブルである。送信データ識別情報４０８は、図４における送信データ識別５０３と、送信データ識別に対応する送信データ属性１＿６０１、送信データ属性２＿６０２、送信データ属性３＿６０３、送信データ属性４＿６０４で構成される。なお、図示例では、４つの送信データ属性１〜４が設定されているが、これに限定されるものではない。
【００４９】
送信データ識別５０３が「WS-Eventing［Subscribe］」のグループでは、送信データの属性値として、以下のものが対応付けて登録されている。すなわち、送信データ属性１＿６０１に「Subscribe」、送信データ属性２＿６０２に「Renew」、送信データ属性３＿６０３に「GetStatus」、送信データ属性４＿６０４に「Unsubscribe」である。
【００５０】
送信データ中にWS-Eventingのメッセージの「Subscribe」又は「Renew」または「GetStatus」または「Unsubscribe」が含まれている場合は、「同一の送信元アドレスから送信する必要がある送信データ」として送信処理することを意味する。これらの「同一の送信元アドレスから送信する必要がある送信データ」は、他のプロトコル（ＳＮＭＰ、ＳＭＴＰ、ＨＴＴＰなど）の命令が登録されていてもよい。
【００５１】
また、ＯＳＩ（Open Systems Interconnection）参照モデルの特定層に限定するものではなく、通信装置が解釈可能な送信データであれば複数階層に渡って登録してもよい。
【００５２】
同一の送信元アドレスから送信する必要がある送信データの登録方法としては、例えば、クライアントアプリケーション１０１がクライアント通信制御部１０２経由で送信データ識別情報記憶部４０６に登録する方法がある。また、サーバＰＣ１０５のサーバアプリケーション１０８やサーバ通信制御部１０７からクライアント通信制御部１０２経由で登録する方法もあるが、登録方法を限定するものではない。
【００５３】
図６は、クライアントＰＣ１００のクライアント通信制御部１０２における通信処理の流れを示すフローチャートである。本処理は、クライアントアプリケーション１０１（アプリケーション１）からのデータ送信指示に応じて実行されるサーバＰＣ１０５へのデータ送信処理の一例である。
【００５４】
ステップＳ７０１では、送信元アドレス決定部４０５は、同一の送信元アドレスから送信する必要がある送信データを決定するために、送信データ識別情報記憶部４０６から送信データ識別情報４０８を取得する。例えば、図５では、同一の送信元アドレスから送信する必要がある送信データとして、送信データ識別５０３の「WS-Eventing［Subscribe］」の属性値が取得できる。WS-Eventing［Subscribe］」の属性値は、送信データ属性１＿６０１「Subscribe」、送信データ属性２＿６０２「Renew」、送信データ属性３＿６０３「GetStatus」、送信データ属性４＿６０４「Unsubscribe」である。また、別の送信データ識別５０３の「SNMP［GetRequest］」の属性値として、送信データ属性１＿６０１「GetRequest」、送信データ属性２＿６０２「GetNextRequest」、送信データ属性３＿６０３「SetRequest」が取得できる。
【００５５】
次に、ステップＳ７０２では、送信情報管理部４０２は、ステップＳ７０１で取得した送信データ識別情報を参照し、クライアントアプリケーション１０１が送信指示した送信データに、該当する送信データ属性が含まれているか否かを判定する。ステップＳ７０２は、属性判定手段の一例である。
【００５６】
ステップＳ７０２において、取得した送信データ属性が送信データに含まれていないと判定した場合、送信元アドレス決定部４０５は、ステップＳ７０３の処理を行う。すなわち、送信元アドレス決定部４０５は、クライアントアプリケーション１０１が指示した宛先アドレスから、ＲＦＣ３４８４のソースアドレスセレクションに従ってデフォルトの送信元アドレスを設定する（ステップＳ７０３）。
【００５７】
次に、ステップＳ７０４では、送信部４０７は、ステップＳ７０３で設定された送信元アドレスから送信データをサーバＰＣ１０５に送信して、通信を終了する。
【００５８】
一方、ステップＳ７０２で、取得した送信データ属性が送信データに含まれると判定した場合、ステップＳ７０５へ移行する。ステップＳ７０５では、送信情報管理部４０２は、送信データ識別情報４０８から、送信データに含まれる送信データ属性１＿６０１に該当する送信データ識別５０３を取得する。例えば、送信データがWS-EventingのSubscribeメッセージの場合、図５の送信データ属性１＿６０１の「Subscribe」が該当するため、送信データ識別５０３のWS-Eventing［Subscribe］を取得する。
【００５９】
次に、ステップＳ７０６では、送信元アドレス決定部４０５は、送信情報記憶部４０３に記憶された送信情報管理テーブル４０４を参照し、クライアントアプリケーション１０１が指示した宛先アドレスに基づいて、ステップＳ７０５で取得した送信データ識別５０３に該当する送信元アドレスを取得する。
【００６０】
次に、ステップＳ７０７では、送信元アドレス決定部４０５は、送信情報管理テーブル４０４から該当する送信元アドレスを取得できたか否かを判定する。この結果、該当する送信元アドレスが送信情報管理テーブル４０４に存在せず、送信元アドレスを取得できなかった場合、送信元アドレス決定部４０５は、ステップＳ７０８の処理を行う。すなわち、新規宛先への通信として、クライアントアプリケーション１０１が指示した宛先アドレスから、ＲＦＣ３４８４のソースアドレスセレクションに従ってデフォルトの送信元アドレスを設定する（ステップＳ７０８）。
【００６１】
ステップＳ７０９では、送信部４０７は、ステップＳ７０８で設定された送信元アドレスから送信データをサーバＰＣ１０５に送信する。続いて、ステップＳ７１０では、送信情報管理部４０２は、ステップＳ７０９で送信部４０７が送信した送信情報を取得する。
【００６２】
ステップＳ７１１では、送信情報管理部４０２は、ステップＳ７１０で取得した送信情報を送信情報記憶部４０３の送信情報管理テーブル４０４に格納して、通信を終了する。ステップＳ７１１で送信情報管理テーブル４０４に格納される送信情報には、ステップＳ７０５で取得した送信データ識別、クライアントアプリケーション１０１が指示した宛先アドレス、ステップＳ７０８で設定された送信元アドレスが含まれる。
【００６３】
例えば、送信データ識別「WS-Eventing［Subscribe］」のデータを宛先アドレスのＩＰアドレス［2001::1000］及びポート番号［80］に送信する場合、送信情報管理テーブル４０４には以下の新規レコードが登録される。すなわち、送信情報管理テーブル４０４には、新規レコードとして、「アプリケーション１」、「WS-Eventing[Subscribe］」、宛先アドレスのＩＰアドレス［2001::1000］とポート番号[80］、ステップＳ７０９で送信時に利用した送信元アドレスが登録される。ここで、送信データ識別「WS-Eventing［Subscribe］」のデータは、例えば、WS-Eventingの「Subscribe」「Renew」「GetStatus」「Unsubscribe」が含まれるデータである。
【００６４】
ステップＳ７０７において送信元アドレス決定部４０５が送信情報管理テーブル４０４から該当する送信元アドレスを取得した場合は、送信元アドレス決定部４０５は、ステップＳ７０６で取得されたアドレスを送信元アドレスに設定する（ステップＳ７１２）。送信データ識別「WS-Eventing［Subscribe］」のデータを宛先アドレスのＩＰアドレス［2001:a:b::10］及びポート番号［80］に送信する場合、同一の送信元アドレスのＩＰアドレス［2001:a:b::200］及びポート番号［1025］を使って通信を行う。ここで、送信データ識別「WS-Eventing［Subscribe］」のデータは、例えばWS-Eventingの「Subscribe」「Renew」「GetStatus」「Unsubscribe」が含まれるデータである。
【００６５】
ステップＳ７１３では、送信部４０７は、ステップＳ７１２で設定された送信元アドレスから送信データをサーバＰＣ１０５に送信し、通信を終了する。
【００６６】
ステップＳ７１１において、送信情報管理部４０２が、送信情報管理テーブル４０４に、取得した送信データ識別と宛先アドレスに対応する送信元アドレスが存在しなかった場合は、ステップＳ７０８で設定された送信元アドレスのみを格納するようにしてもよい。
【００６７】
上記第１の実施形態によれば、サーバＰＣがクライアントＰＣの送信元アドレスに応じてサービスを提供する通信システムにおいて、クライアントＰＣが複数の送信元アドレスを保持している場合でも、適切な送信元アドレスを選択することが可能となる。また、通信処理中の送信元アドレスの変更に伴う通信エラーを削減することができ、ネットワークリソースやＰＣリソースの効率的な利用を行うことが可能となる。
【００６８】
本実施形態では、送信元アドレスの決定方法の例として、送信情報記憶部４０３の送信情報管理テーブル４０４内に該当する送信情報が無い場合は、ＲＦＣ３４８４のソースアドレスセレクションに従って決定した。しかし、送信元アドレスの決定方法をこれに限定するものではない。
【００６９】
［第２の実施形態］
本発明の第２の実施の形態に係る通信装置は、その構成（図１〜図３）が上記第１の実施の形態に係る通信装置と同じであり、第１の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第１の実施の形態と異なる点のみを説明する。
【００７０】
上記第１の実施形態では、クライアントアプリケーションが送信データ識別情報記憶部に登録されている送信データ属性を、ＩＰアドレスとポート番号が異なる宛先アドレスに送信部が初回送信したときに、送信情報管理テーブルに送信元アドレスが登録される。
【００７１】
しかしながら、最初に送信したときの送信元アドレスは、通信装置のアドレス変更などにより無効になる場合などが考えられる。送信元アドレスが登録される状態で通信障害が発生した場合は、他の送信元アドレスでの通信が可能な場合も、その送信元アドレスを使い続けると通信ができなくなる。
【００７２】
そこで、本第２の実施形態では、そのような通信エラー時でも、通信可能な送信元アドレスが存在する場合は、通信を可能とする通信装置について説明する。
【００７３】
図７は、本発明の第２の実施形態におけるクライアントＰＣ１００のクライアント通信制御部１０２における通信処理の流れを示すフローチャートである。なお、図示のステップＳ７０１〜Ｓ７１３は、図６におけるステップＳ７０１〜Ｓ７１３と同じであるため、同じステップ番号を付して、それらの説明を省略する。
【００７４】
図７において、ステップＳ７１３では、送信部４０７は、ステップＳ７１２で設定された送信元アドレスから送信データをサーバＰＣ１０５に送信する。このとき、送信部４０７は、ＯＳの通信ライブラリ１０３から送信結果を取得する。
【００７５】
次に、ステップＳ８０１では、送信部４０７は、ステップＳ７１３で取得した送信結果から通信エラー有無の判定を行う。ステップＳ８０１は、通信エラー判定手段の一例である。ステップＳ８０１の判定の結果、通信エラーが無いと判定した場合は、送信部４０７は、通信を終了する。
【００７６】
一方、ステップＳ８０１で通信エラーが有ると判定した場合は、送信部４０７は、送信情報管理テーブル４０４から該当するレコード（送信データ識別５０３、宛先アドレス５０４、送信元アドレス５０５）を削除する（ステップＳ８０２）。そして、ステップＳ７０８へ移行する。
【００７７】
上記処理により、クライアントアプリケーション１０１が、同一の送信データ識別、同一の宛先アドレスに対して、データ再送要求又は新規に送信データを送信する場合、通信可能な送信元アドレスが１つ以上あれば、通信障害発生時でも通信を継続できる。
【００７８】
また、通信制御部４０１は、通信障害やクライアントＰＣ１００のアドレス変更等に伴い、同一の送信データ識別及び宛先アドレスに対する送信元アドレスが変更された場合は、以下にようにしてもよい。すなわち、通信制御部４０１が、通信セッション途中で送信元アドレスが変更されたことを、クライアントアプリケーション１０１に通知することで、ユーザ又は通信システムに知らせることも可能である。
【００７９】
上記実施形態では、ステップＳ８０１における通信エラー有無の判定に応じて、送信情報管理テーブル４０４から該当する通信セッションを削除する構成について説明した。しかしながら、通信エラー有無の判定だけではなく、クライアント通信制御部１０２がクライアントアプリケーション１０１から通信の開始や終了要求を受け、削除要求時に送信情報管理テーブル４０４から該当する通信セッションの削除を行ってもよい。また、送信部４０７によるデータ送信時から所定時間経過後に該当する通信セッションの削除を行ってもよい。さらに、送信部４０７から送信回数が設定回数を超えた場合に該当通信セッションの削除を行ってもよい。これらの該当する通信セッションの削除は、送信情報管理テーブル４０４から該当するレコード（送信データ識別５０３、宛先アドレス５０４、送信元アドレス５０５）を削除することを意味する。
【００８０】
上記第２の実施形態によれば、上記第１の実施形態における効果と同一の効果を奏することができる。さらに、設定した送信元アドレスへのデータ送信に対する通信エラーの有無に応じて、送信情報管理テーブル４０４から該当するレコードを削除する。これにより、通信エラーの発生によるネットワークリソースを削減すると共に、信頼性の高い、効率的な通信装置を提供することができる。
【００８１】
上記第１及び第２の実施形態で説明した送信元アドレス選択方法として、クライアントのＲＦＣ３４８４で規定するPolicy Tableを設定する方法やルーティングテーブルを設定する方法などがあるが、特定の方法に限定するものではない。
【００８２】
また、上記第１及び第２の実施形態では、ＯＳＩ参照モデルの第３層、ネットワーク層、ＩＰアドレスの送信元アドレスの選択例を示した。同様に、ＯＳＩ参照モデルの第４層以上のレイヤに送信元アドレス情報を含む場合も送信元アドレス選択時においても適用可能である。
【００８３】
また、上記第１及び第２の実施形態では、本発明を単一の装置に適用した形態について説明したが、複数の機器から構成されるシステムに適用してもよい。また、上述した本発明の機能が実現されるのであれば、クライアントＰＣ１００及びサーバＰＣ１０５でのプログラムの動作を、プリンタやＭＦＰ（マルチファンクションペリフェラル）上のＣＰＵ、ＲＡＭ，ＲＯＭで実行してもよいことは言うまでもない。
【００８４】
本発明の実施の形態は、ネットワーク又は各種記憶媒体を介して取得したソフトウェア（プログラム）をパーソナルコンピュータ（ＣＰＵ，プロセッサ）にて実行することでも実現できる。
【符号の説明】
【００８５】
１００  クライアントＰＣ
１０５  サーバＰＣ
１０６  ネットワーク
１０１  クライアントアプリケーション
１０２  クライアント通信制御部
４０１  通信制御部
４０２  送信情報管理部
４０３  送信情報記憶部
４０５  送信元アドレス決定部
４０６  送信データ識別情報記憶部
【図１】
2011010206.tif 000003
【図２】
2011010206.tif 000004
【図３】
2011010206.tif 000005
【図４】
2011010206.tif 000006
【図５】
2011010206.tif 000007
【図６】
2011010206.tif 000008
【図７】
2011010206.tif 000009