以下、本実施形態について説明するが、本実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下の説明では、通信システムの実施形態として、サーバ装置110と、このサーバ装置110からのサービスの提供を受ける複数のクライアント端末130と、これらの複数のクライアント端末130の通信設定を行うための設定配布装置150とを含むネットワーク通信システム100を一例として説明する。
図1は、本実施形態によるネットワーク通信システム100のネットワーク環境を示す図である。図1に示すネットワーク通信システム100は、ネットワーク102を介して相互に接続される、DNS(Domain Name Server)サーバ104と、サーバ装置110と、複数のクライアント端末130とを含む。ネットワーク102は、典型的には、IPv4ネットワークと、IPv6ネットワークとが混在したネットワークである。ネットワーク102は、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)などとして構成される。
サーバ装置110は、サーバ・アプリケーションを稼働させており、クライアント端末130などの外部装置に対して所定のサービスを提供する。クライアント端末130は、サーバ装置110上のサーバ・アプリケーションと通信するクライアント・アプリケーションを稼働させており、サーバ装置110からサービスの提供を受けている。
サーバ装置110およびクライアント端末130には、手動設定または自動設定により、IPアドレス(IPv6アドレスおよびIPv4アドレスの一方または両方。)が割り当てられ得る。自動設定としては、IPv4では、DHCP(Dynamic Host Configuration Protocol)設定を挙げることができる。IPv6では、ステートフル設定およびステートレス設定を挙げることができる。IPv6アドレスは、DHCPによるステートフルアドレス、ステートレスアドレス、リンクローカルアドレス、固定アドレスなどの種別がある。
クライアント端末130からサーバ装置110へのネットワーク通信は、典型的には、サーバ装置110のIPv4アドレスまたはIPv6アドレスを直接指定することにより確立することができる。以下、IPv4アドレス空間のアドレスを直接指定する方式をIPv4アドレス指定方式と参照し、IPv6アドレス空間のアドレスを直接指定する方式をIPv6アドレス指定方式と参照する。サーバ装置110には、さらに、特定の規則に従って形成された名前空間でホスト名が割り当てられている場合がある。この場合、クライアント端末130からサーバ装置110へのネットワーク通信は、サーバ装置110のホスト名を指定することにより、DNSサーバ104による名前解決を経て確立することができる。以下、ホスト名を指定する方式を名前解決方式と参照する。いずれの方式で通信の確立が試行されるかは、これらの通信接続方式に設定された優先順位(優先度)に従う。
DNSサーバ104は、サーバ装置110に割り当てられたホスト名と、サーバ装置110に割り当てられたIPアドレスとを対応付ける名前解決を行うサーバである。サーバ装置110は、自身に割り当てられたIPアドレスとホスト名とをDNSサーバに対し登録する。クライアント端末130上で動作するDNSリゾルバは、ホスト名でDNSサーバ104に照会し、ホスト名に対応付けられたIPアドレスを取得する。IPv4アドレスは、Aレコードで取得され、一方、IPv6アドレスは、AAAAレコードで取得される。
事前指定された通信接続方式でネットワーク通信が試行された場合、種々の理由から通信の確立に失敗してしまう場合がある。この場合は、事前定義された優先順位に従って各通信接続方式による通信の確立が試行されて行くことになる。このとき、各クライアント端末130が独立して通信を試行していると、仮にあるクライアント端末で通信に失敗することが判明した後も、すべてのクライアント端末で優先度が高いが失敗してしまう通信接続方式での通信が試行されることになる。このため、システム全体としては、相当量の遅延および相当量の不要な通信トラフィックが発生することになる。
そこで、本実施形態によるネットワーク通信システム100には、クライアント端末130各々での所定通信接続方式による接続の成功および失敗の経験を、複数のクライアント端末130間で共有して活用するための設定配布装置150が設けられる。クライアント端末130は、ネットワーク106を介して設定配布装置150と接続される。なお、図1に示す実施形態では、ネットワーク102およびネットワーク106は、異なるネットワークとしているが、特に限定されるものではなく、同一のネットワークとしてもよい。
本実施形態による設定配布装置150は、サーバ装置110と複数のクライアント端末130各々との間で行われた通信の成否情報を収集し、成否情報の集計結果に基づいて通信接続方式を優先順位付けする。設定配布装置150は、同時に、優先順位付けに基づいて、複数のクライアント端末130に対し、サーバ装置110との通信を確立する際の通信接続方式の優先順位付け情報を含む通信設定情報を配布する。以下、図2〜図6を参照しながら、ネットワーク通信システム100における設定配布装置150の成否情報収集処理および通信設定情報配布処理の詳細について説明する。
図2は、本実施形態によるネットワーク通信システム100上で実現される、成否情報収集処理および通信設定情報配布処理に関連する機能ブロックを示す図である。図2には、サーバ装置110上で実現される機能ブロックと、クライアント端末130上で実現される機能ブロックと、設定配布装置150上で実現される機能ブロックとが示されている。なお、説明する実施形態では、いわゆるクライアント−サーバ・モデルを用いて説明するが、ネットワーク通信システム100が採用し得るアーキテクチャは、特に限定されるものではない。
サーバ装置110上の機能ブロックは、通信部112と、制御部114とを含み構成される。通信部112は、ネットワーク・アダプタなどの通信用のハードウェアを含む。通信部112は、さらに、IPv4プロトコルスタックおよびIPv6プロトコルスタックの両方または一方を実装し、上述した通信プロトコルに従った通信を制御する。制御部114は、CPU(Central Processing Unit)やRAM(Random Access Memory)などのハードウェアを含み構成され、所定のオペレーティング・システム(以下、OSと参照する。)上で種々のアプリケーションを稼働させる。
制御部114で稼働されるアプリケーションとしては、外部装置にサービスを提供するサーバ・アプリケーション116が含まれる。サーバ・アプリケーション116が提供するサービスとしては、特に限定されるものではないが、例えば、複合機やプリンタなどの入出力装置のログを管理するログサーバ、データベース処理、ウェブアプリケーション処理、メールサービス、ファイル転送処理、プリント処理などの各種のサービスを挙げることができる。
クライアント端末130上の機能ブロックは、通信部132と、制御部134と、記憶部136とを含む。通信部132は、ネットワーク・アダプタなどのハードウェアと、IPv4およびIPv6の両方の通信プロトコルスタック132aとを実装し、両通信プロトコルに従った通信をサポートしている。通信部132は、DNSサーバ104と通信して名前解決するためのリゾルバ132bを実装し、名前解決方式にも対応している。
クライアント端末130の制御部134は、CPUやRAMなどのハードウェアを含み構成され、所定のOS上で種々のアプリケーションを稼働させる。制御部134で稼働されるアプリケーションとしては、サーバ装置110からサービスの提供を受けるクライアント・アプリケーション138が含まれる。クライアント・アプリケーション138は、サーバ装置110のサーバ・アプリケーション116に対応して設けられるものであり、例えば、ログ送信を行うクライアント・アプリケーション、データベース接続クライアント、ブラウザ、メールクライアント、FTPクライアントなどを挙げることができる。
記憶部136は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶領域により提供され、各種設定情報を格納する。格納される各種設定情報としては、設定配布装置150との通信のための設定配布装置用通信設定146、DNSサーバ104との通信のためのDNSサーバ用通信設定148、サーバ装置110との通信のためのサーバ装置用通信設定144などが含まれる。
制御部134で稼働されるソフトウェア・コンポーネントとしては、上述したクライアント・アプリケーション138の他、情報通知部140と、通信設定部142とが含まれる。情報通知部140は、サーバ装置110との通信の確立に成功した際およびサーバ装置との通信の確立に失敗した際の一方または両方の際に、サーバ装置110との間での所定通信接続方式による通信の成否情報を設定配布装置150に通知する。このとき、成否情報は、通信で使用された通信接続方式、アドレスの種別、試行回数、再送回数、および通信の成功した時間情報の少なくとも1つの情報を含むことができる。
通信設定部142は、設定配布装置150から配布された通信設定情報に従って、サーバ装置110との通信設定を実施する。この通信設定情報には、通信接続方式を優先順位付けする情報が含まれており、上記通信設定により、各通信接続方式が優先順位付けされる。また、通信設定部142は、起動時に、設定配布装置150に対し起動通知を行うことで、通信設定情報の配布を要求するとともに、配布先として登録するよう要求を行う。
設定配布装置150上の機能ブロックは、通信部152と、制御部154と、記憶部156とを含み構成される。通信部152は、ネットワーク・アダプタなどのハードウェアと、プロトコルスタックとを実装し、クライアント端末130との通信を実現している。制御部154は、CPUやRAMなどのハードウェアを含み構成され、所定のOS上で種々のアプリケーションを稼働させる。記憶部156は、HDDやSSDなどの記憶領域により提供され、クライアント端末130から通知された情報通知の履歴データ172、後述する集計された集計データ174、集計結果に基づくサーバ装置110用の優先設定170などを格納する。
制御部154で稼働されるソフトウェア・コンポーネントとしては、配布部160と、収集部162と、集計部164と、優先順位付け部166とが含まれる。収集部162は、サーバ装置110と複数のクライアント端末130各々との間で行われた所定通信接続方式による通信の成否情報を、各クライアント端末130から収集する。収集された成否情報は、履歴データ172として記憶部156に記憶される。
集計部164は、記憶部156から履歴データ172を読み出し、収集された通信の成否情報を集計する。集計は、例えば、所定の通信接続方式毎、アドレス種別毎の成功数および失敗数の計数や、その成功率の計算、直近で成功した通信接続方式の記録などを含むことができる。集計の際は、成否情報を所定の時間帯でグループ分けしてもよいし、所定期間内の履歴データに集計範囲を限定してもよい。集計結果は、集計データ174として記憶部156に記憶される。
優先順位付け部166は、記憶部156から集計データ174を読み出し、通信の成否情報の集計結果に基づき、サーバ装置110と複数のクライアント端末130各々との間の通信で使用させる通信接続情報を優先順位付けする。優先順位付け部166は、成功数の多いあるいは成功率の高い通信接続方式の優先度が高まるような所定のルールに従って優先度付けすることができる。優先順位付け部166は、直近で成功した通信接続方式の優先度が高まるような所定のルールに従って優先度付けすることができる。順位付けられた結果は、サーバ装置用優先設定170として記憶部156に記憶される。
配布部160は、記憶部156からサーバ装置用優先設定170を読み出し、複数のクライアント端末130各々に対し、通信設定情報を配布する。ここでは、起動時に、起動通知を行ってきたクライアント端末130が配布先となる。通信設定情報は、優先順位付けされた少なくとも1つの通信接続方式を識別する情報(例えば最優先の通信接続方式など)を含み、好ましくは、優先順位付けされた複数の通信接続方式のリストを含むことができる。通信設定情報には、通信接続方式をクライアント側で優先順位付けするための情報の他、アドレス指定方式に対応してサーバ装置110のIPアドレス、名前解決方式に対応してサーバ装置110のホスト名など、各通信接続方式でサーバ装置110と通信するために必要となる種々の情報を含んでいてもよい。
配布処理のタイミングは、特に限定されるものではないが、好適な実施形態では、いずれかのクライアント端末130で通信に失敗した際に情報通知を受信したことに応答して、更新された通信設定情報を配布することができる。これは、通信に失敗した場合は、速やかに関係クライアント端末130に対し周知することが望ましいからである。より好ましい実施形態は、いずれかのクライアント端末130で通信に失敗した場合であって、後続する通信接続方式での通信の確立に成功した際の情報通知を受信したことに応答して、更新された通信設定情報を配布することができる。これは、新たに成功した通信接続方式を、速やかに関係クライアント端末130に対し周知することができるからである。また、配布部160は、クライアント端末130の起動時に起動通知として行われる問い合わせに応答して、問い合わせ元のクライアント端末130に対し通信設定情報を配布することができる。
図3は、本実施形態によるクライアント端末130が実行する起動処理を示すフローチャートである。図3に示す処理は、例えばクライアント端末130に電源が投入され起動されたことに応答して、ステップS100から開始される。ステップS101では、クライアント端末130は、設定配布装置150との通信で用いる設定配布装置用通信設定146を記憶部136から読み出す。
ステップS102では、クライアント端末130は、設定配布装置150に対し起動通知を送信する。ステップS103では、クライアント端末130は、設定配布装置150からの起動通知に対する応答を待ち受けており、応答を受信した場合(YES)は、ステップS104へ処理が進められる。ここでは、クライアント端末130と設定配布装置150とは、適切に通信が確立できるものとする。ステップS104では、クライアント端末130は、受信した応答に含まれる通信設定情報を取得する。ここで、設定配布装置150が管理対象としているサーバ装置が複数あれば、サーバ毎に通信接続方式を優先順位付けするための情報が取得される。なお、説明する実施形態では、説明の便宜上、単一のサーバ装置110用のものが得られるものとする。
ステップS105では、クライアント端末130は、取得した通信設定情報に従って、サーバ装置110用の通信設定を実行し、ステップS106で本起動時の処理を終了させて通常の状態へ移行する。
図4は、本実施形態によるクライアント端末130が実行する、サーバ装置110との通信確立処理を示すフローチャートである。図4に示す処理は、クライアント端末130のクライアント・アプリケーション138において、サーバ装置110上のサーバ・アプリケーション116に対する通信要求が発生したことに応答して、ステップS200から開始される。
ステップS201では、クライアント端末130は、サーバ装置110へ送信するべきデータを準備する。ステップS202では、クライアント端末130は、サーバ装置用通信設定144を読み出す。ステップS203では、クライアント端末130は、未試行の通信接続方式が存在するか否かに応じて処理を分岐させる。ステップS203で、未試行の通信接続方式が存在すると判定された場合(YES)は、ステップS204へ処理が進められる。
ステップS204では、クライアント端末130は、設定された優先順位に従って未試行のもののうちの最も高い優先順位の通信接続方式を試行対象として決定する。ステップS205では、クライアント端末130は、決定された通信接続方式により通信の確立を試行する。ステップS206では、クライアント端末130は、ステップS205の試行により通信が確立されたか否かに応じて処理を分岐させる。クライアント端末130がサーバ装置110へメッセージを送信し、それに対して、所定のタイムアウト時間が経過しても応答が無かった場合は、通信が確立できなかったと判定される。
ステップS206で、通信が確立できなかったと判定された場合(NO)は、ステップS207へ処理が分岐される。ステップS207では、クライアント端末130は、事前設定された最大試行回数に達したか否かを判定する。ここで、最大試行回数は、最初の試行とその後のリトライを含めた試行回数に対する上限値であり、最大試行回数の試行を行っても、通信を確立できなかった場合は、その通信接続方式での通信が失敗したと判定されることになる。ステップS207で、最大試行回数には達していないと判定された場合(NO)は、ステップS205へ処理が分岐されて、再度、同一の通信接続方式による通信の試行が行われる。
一方、ステップS207で、最大試行回数に達したと判定された場合(YES)は、ステップS208へ処理が分岐される。ステップS208では、クライアント端末130は、現在の通信接続方式の失敗を記録し、ステップS203へ処理をループさせる。なお、説明する実施形態では、最大試行回数に達しても応答がなかった場合に通信の確立に失敗したと判定するものとして説明した。しかしながら、通信の成否の判定方法は、特に限定されるものではなく、他の実施形態では、最大試行回数に達した後、所定の待機時間を経た後にさらに再送を行い、最大再送回数だけ再送を行っても応答がなかった場合に失敗を記録するものとしてもよい。
ステップS203で、もう未試行の通信接続方式が存在しないと判定された場合(YES)は、ステップS209へ処理が分岐される。ステップS209では、クライアント端末130は、採用し得るすべての通信接続方式での通信の確立が失敗したという結論を出し、ステップS216で、本処理を終了させる。
一方、ステップS206で、決定された通信接続方式での通信が確立できたと判定された場合(YES)は、ステップS210へ処理が分岐される。ステップS210では、クライアント端末130は、現在試行した通信接続方式の成功を記録する。
ステップS211では、クライアント端末130は、これまで記録された試行結果をまとめて通知情報を生成する。通知情報は、成功した時の通信接続方式、アドレスの種別、試行回数、再送回数、および時刻などの成功情報が含まれる。また、通信を成功させる前に1つ以上失敗した通信接続方式がある場合は、失敗した時の通信接続方式、アドレスの種別、試行回数、再送回数、および時刻などの失敗情報が含まれてもよい。なお、上記アドレスの種別とは、IPv6アドレスの場合にステートフルアドレスであるか、ステートレスアドレスであるか、リンクローカルアドレスであるか、または手動設定されたアドレスであるかといった、IPv6アドレスの種別を識別する情報である。
ステップS212では、クライアント端末130は、設定配布装置用通信設定146を読み出し、生成された通知情報を設定配布装置150に送信する。ステップS213では、クライアント端末130は、失敗した通信接続方式があったか否かを判定する。優先順位の最も高い通信接続方式での通信の確立に失敗した記録がある場合は、ここでは、失敗有りと判定されることになる。
ステップS213で、失敗ありと判定された場合(YES)は、ステップS214へ処理が分岐される。ステップS214では、クライアント端末130は、設定配布装置150からの配布を待ち、更新された通信設定情報を取得する。ステップS215では、クライアント端末130は、更新された通信設定情報に従って、サーバ装置110用のサーバ装置用通信設定144を更新し、ステップS216で本処理を終了させる。ステップS213で、失敗なしと判定された場合(NO)は、ステップS216へ直接処理が分岐され、本処理が終了される。
図5は、本実施形態による設定配布装置150が実行する成否情報収集処理および通信設定情報配布処理を示すフローチャートである。図5に示す処理は、クライアント端末130からの通知情報の受信に応答して、ステップS300から開始される。
ステップS301では、設定配布装置150は、これまで蓄積された履歴データ172を記憶部156から取得する。ステップS302では、設定配布装置150は、新たに受信した通知情報に含まれる成否情報を履歴データ172内に記録するとともに、新たに受信した成否情報を踏まえて集計を行う。
図6(A)は、本実施形態による設定配布装置150で管理される履歴データ172のデータ構造を示す図である。図6(A)に示すように、履歴データは、各成否情報を保持する複数のレコードから構成されている。各レコードは、送信元のクライアント端末の識別情報を保持するフィールドと、宛先のサーバ装置の識別情報を保持するフィールドと、通信接続方式の種別(IPv6アドレスの種別を含む。)を保持するフィールドと、成功または失敗を保持するフィールドと、リトライ回数を保持するフィールドと、通信時刻を保持するフィールドとを含み構成される。通信時刻フィールドは、最新の成否情報を特定し、また時間帯毎にフィルタをかけて集計を行うために利用される。
図6(B)および(C)は、本実施形態による設定配布装置150で集計された集計データ174のデータ構造を示す図である。図6(B)は、特定のサーバ装置についての全体の時間帯での集計結果を示し、図6(C)は、所定の時間帯での集計結果を示す。図6(B)および(C)にそれぞれ示す集計データ174は、フィルタした時間帯を示すフィールドと、本集計データが対象とするサーバ装置の識別情報を保持するフィールドと、フィルタされた時間帯における直近に成功した通信接続方式の種別を保持するフィールドと、各種別に対し計数された成功数、失敗数、あるいは成功率を記録する各フィールドとを含む。
ステップS303では、設定配布装置150は、集計結果を記憶部156に記憶し、集計データ174を更新する。ステップS304では、設定配布装置150は、上記通知情報が対象とするサーバ装置110についての集計データに対し、所定ルールを適用し、通信接続方式の優先順位を決定し、ステップS305では、記憶部156のサーバ装置用優先設定170を更新する。
上述した集計データ174を用いて、どのように優先順位付けを行うかは、ポリシーに依存する。例えば、深夜の時間帯と業務時間帯とでは、ネットワーク上の機器の稼働状況が異なるという経験則に基づいて、時間帯毎に、直近で成功した通信接続方式の種別を最も優先順位が高くなるように決定してもよい。あるいは、新たな情報通知に失敗情報として含まれていた通信接続方式を除き、各通信接続方式を成功率順に優先順位付けてもよい。
ステップS306では、通知情報中に失敗情報が含まれていたか否かに応答して、処理を分岐させる。ステップS306で、失敗ありと判定された場合(YES)は、ステップS307へ処理が分岐される。ステップS307では、設定配布装置150は、失敗の通知情報を送信してきたクライアント端末を含めて、配布先として登録されたすべてのクライアント端末に対し、更新された通信設定情報(サーバ装置用優先設定を含む。)を配布し、ステップS308で本処理を終了させる。これは、速やかに失敗してしまう通信接続方式を関係クライアント端末に周知するための措置である。一方、ステップS306で、通知情報中に失敗情報が含まれていないと判定された場合(NO)は、そのままステップS308へ処理が分岐され、配布処理を行わずに本処理を終了させる。
以下、図7〜図10に示す具体的なケースを参照しながら、クライアント端末130、サーバ装置110および設定配布装置150の各機能手段の連携動作について説明する。
図7は、クライアント起動時のクライアント端末130および設定配布装置150間で行われる動作を示すシーケンス図である。図7に示す処理は、ステップS400で、クライアント端末130の起動を制御部134が検知したことに応答して開始される。ステップS401では、制御部134は、記憶部136から設定配布装置用通信設定を取得する。ステップS402では、制御部134は、取得した設定配布装置用通信設定に基づき、通信部132に対し起動通知を要求する。ステップS403では、通信部132は、通信設定に指定される設定配布装置150のIPアドレスおよびポートに宛てて起動通知を送信する。
ステップS404では、設定配布装置150の通信部152は、クライアント端末130からの起動通知を受信し、制御部154に起動通知の受信を報告する。制御部154は、ステップS405で、記憶部156からサーバ装置用優先設定170を取得し、ステップS406で、通信部152に対し、通信設定情報の配布要求を行う。ステップS407では、通信部152は、起動通知をしてきたクライアント端末130に対し、通信設定情報を配布する。
ステップS408では、クライアント端末130の通信部132は、設定配布装置150からの通信設定情報を受信し、制御部134に通信設定情報の受信を報告する。ステップS409では、制御部134は、通信設定情報に基づいて、記憶部136のサーバ装置用通信設定144を更新設定する。
図8は、クライアントでの通信要求発生時のクライアント端末130、サーバ装置110および設定配布装置150間で行われる動作を示すシーケンス図である。図8に示す処理は、クライアント端末130で通信要求が発生したことに応答して開始され、ステップS500で、制御部134は、サーバ装置110に対し送信するデータを準備する。ステップS501では、制御部134は、記憶部136からサーバ装置110用の通信設定を取得する。ここでは、名前解決方式が最優先で試行されるものとして取得される。ステップS502では、制御部134は、記憶部136からDNSサーバ用通信設定を取得する。
ステップS503では、制御部134は、取得したDNSサーバ用通信設定に基づき、通信部132に対し名前解決を依頼する。ステップS504では、通信部132は、リゾルバ132bにより、DNSサーバ104へ名前解決の問い合わせクエリを発行し、対応するIPアドレスを取得し、これを制御部134に渡す。ステップS505では、制御部134は、通信部132に対し、解決されたIPアドレスに基づき、データ送信要求を行う。ステップS506では、通信部132は、サーバ装置110に対し、データ送信を実行する。
なお、図8中の点線の枠は、名前解決方式の通信の試行が行われる場合に実行される処理を示すものである。いずれかのアドレス指定方式のいずれかの場合は、ステップS502〜S504の処理が行われずに、直接ステップS505で、データ送信要求が行われ、ステップS506で、対応するプロトコルにて指定IPアドレスに宛ててデータ送信が行われる。
ステップS507では、サーバ装置110の通信部112は、クライアント端末130からのデータを受信し、制御部114にデータ受信を報告する。ステップS508では、制御部114は、受信したデータを処理し、処理結果に基づいて、通信部112に対し応答送信要求を行う。ステップS509では、通信部112は、データ送信してきたクライアント端末130に対し、応答送信を行う。
ステップS510では、クライアント端末130の通信部132は、サーバ装置110からの応答を受信し、制御部134に応答受信を報告する。ステップS511では、制御部134は、データ送信に対する応答に基づき、名前解決方式での通信の確立に成功した旨を記録し、その成功情報をまとめて通知情報を生成する。ステップS512では、制御部134は、通信部132に対し、通知情報の送信要求を行う。ステップS513では、通信部132は、設定配布装置150に対し、通知情報を送信する。
ステップS514では、設定配布装置150の通信部152は、クライアント端末130からの通知情報を受信し、制御部154に通知情報の受信を報告する。報告を受けて、制御部154は、ステップS515で、記憶部156から履歴データを取得し、ステップS516で、新たな通知情報を踏まえて再集計し、ステップS517で、記憶部156の履歴データおよび集計データを更新する。ステップS518では、制御部154は、再集計された結果に基づいて、通信接続方式の優先順位を決定し、ステップS519では、記憶部156のサーバ装置用優先設定170を更新する。
図9および図10は、クライアントでの通信要求発生時のクライアント端末130、サーバ装置110および設定配布装置150間で行われる動作を示す他のシーケンス図である。図8は、優先順位が最も高い名前解決方式での通信の確立が成功した場合を例示したが、図9および図10は、優先順位が最も高い名前解決方式での通信の確立が失敗する場合を例示している。
図9および図10に示す処理は、クライアント端末130で通信要求が発生したことに応答して開始され、ステップS600で、制御部134は、サーバ装置110に対し送信するデータを準備する。ステップS601では、制御部134は、記憶部136からサーバ装置110用の通信設定を取得する。ここでは、名前解決方式が最優先で試行されるものとして取得される。
ステップS602では、制御部134は、記憶部136からDNSサーバ用通信設定を取得する。ステップS603では、制御部134は、取得したDNSサーバ用通信設定に基づき、通信部132に対し名前解決を依頼する。ステップS604では、通信部132は、DNSサーバ104へ名前解決の問い合わせクエリを発行し、対応するIPアドレスを取得し、これを制御部134に渡す。
図9および図10に示すシーケンスでは、ステップS605で、通信部132に対しデータ送信要求が行われ、ステップS606で、サーバ装置110に対しデータ送信が実行されるが、ここで通信の確立に失敗する。
ステップS607では、制御部134は、次に優先順位が高いIPv6アドレス指定方式に切り替えて、記憶部136からサーバ装置110のIPv6アドレスを取得する。ステップS608では、制御部134は、通信部132に対しデータ送信要求を行い、ステップS609では、通信部132は、指定されたIPv6アドレスを用いてサーバ装置110に対しデータ送信を実行する。
ステップS610では、サーバ装置110の通信部112は、クライアント端末130からのデータを受信して、制御部114にデータ受信を報告する。ステップS611では、制御部114は、受信したデータの処理結果に基づいて、通信部112に対し応答送信要求を行う。ステップS612では、通信部112は、データ送信してきたクライアント端末130に対し、応答送信を行う。
ステップS613では、クライアント端末130の通信部132は、サーバ装置110からの応答を受信し、制御部134に応答受信を報告する。図10を参照すると、ステップS614では、制御部134は、ステップS606での名前解決方式での通信の失敗と、IPv6アドレス指定方式での通信の確立の成功とに基づいて、その成功情報および失敗情報をまとめて通知情報を生成する。ステップS615〜ステップS620の処理は、図8に示したステップS512〜ステップS517までの処理と同様であるので、詳細な説明は割愛する。
ステップS621では、制御部154は、再集計された結果に基づいて、通信接続方式の優先順位を決定し、ステップS622では、記憶部156のサーバ装置用優先設定170を更新する。ステップS623では、制御部154は、通信部152に対し、通信設定情報の配布要求を行う。ステップS624では、通信部152は、起動通知をしてきていた配布先として登録された各クライアント端末130に対し、通信設定情報を配布する。
ステップS624の配布処理により、複数のクライアント端末それぞれで処理が行われることなるが、ここでは、情報通知を送信したクライアント端末130の動作について代表して説明する。ステップS625では、クライアント端末130の通信部132は、設定配布装置150からの通信設定情報を受信し、制御部134に通信設定情報の受信を報告する。ステップS626では、制御部134は、通信設定情報に基づいて、記憶部136のサーバ装置用通信設定144を更新設定する。
上述までの実施形態によれば、あるクライアント端末での所定通信接続方式による接続の成功および失敗の経験が、他のクライアント端末において活用される。通信に失敗したクライアント端末と同じ失敗を他のクライアントが繰り返すことが防止されるので、不要な失敗を未然に防止することが可能となる。これにより、クライアント端末130の通信が失敗したときのリトライ処理、再送処理、プロトコルの切り替え処理が不要となり、ひいては、サーバ装置110およびクライアント端末130における負荷を低減することができる。特に同一サーバ装置と通信するクライアント端末が多数存在する場合は、システム全体としての遅延および不要な通信トラフィックの発生を好適に防止することができるようになる。
以下、図11を参照して、クライアント端末130のハードウェア構成について説明する。図11は、本実施形態によるクライアント端末130のハードウェア構成図である。図11に示すクライアント端末130は、プリンタやコピー、スキャナ、ファクシミリなど画像処理機能を備えた複合機として構成されている。クライアント端末130は、コントローラ12と、オペレーションパネル42と、FCU(ファクシミリ・コントロール・ユニット)44と、エンジン部46とを含み構成される。コントローラ12は、CPU14と、NB(ノース・ブリッジ)18と、NB18を介してCPU14と接続するASIC20と、システムメモリ16とを含み構成される。ASIC20は、各種画像処理を実行し、AGP(Accelerated Graphic Port)48を介してNB18と接続される。システムメモリ16は、描画用メモリなどとして用いられる。
ASIC20は、ローカルメモリ22と、HDD24と、フラッシュメモリなどの不揮発性メモリ26と接続する。ローカルメモリ22は、コピー用画像バッファや符号バッファとして用いられ、HDD24は、画像データ、文書データ、プログラム、フォントデータやフォームデータなどを蓄積するストレージである。不揮発性メモリ26は、クライアント端末130を制御するためのプログラムや各種システム情報や各種設定情報を格納する。
コントローラ12は、さらにSB(サウス・ブリッジ)28と、NIC(ネットワーク・インタフェース・カード)30と、SD(Secure Digital)カード・スロット32と、USBインタフェース34と、IEEE1394インタフェース36と、セントロニクス・インタフェース38とを含み構成され、これらはPCIバス50を介してNB18と接続される。SB28は、図示しないROMやPCIバス周辺デバイスなどとNB18とを接続するためのブリッジである。NIC30は、クライアント端末130をインターネットやLANなどのネットワークに接続するインタフェース機器であり、ネットワークを介した指令を受付けている。SDカード・スロット32は、図示しないSDカードを着脱可能に装着する。USBインタフェース34、IEEE1394インタフェース36およびセントロニクス・インタフェース38は、それぞれの規格に準じたインタフェースであり、印刷ジョブなどを受付けている。
オペレーションパネル42は、コントローラ12のASIC20と接続され、オペレータからの各種指示の入力を受付けや、画面表示を行なうためのユーザ・インタフェースを提供する。FCU44およびエンジン部46は、PCIバス52を介してASIC20と接続する。FCU44は、G3またはG4といったファクシミリ通信規格に準じた通信方法を実行する。エンジン部46は、アプリケーションが発行したプリント指令やスキャン指令を受け、画像形成処理や画像読取処理を実行する。
なお、図11には、クライアント端末130として複合機を例示しているが、クライアント端末としては、特に限定されるものではなく、プリンタなどの画像形成装置、スキャナなどの画像読取装置、ファクシミリなどの画像通信装置、パーソナル・コンピュータやタブレット端末などの情報端末といった、種々の情報処理装置として構成することができる。また、サーバ装置110および設定配布装置150のハードウェア構成について、詳細に説明しないが、図11に示す構成から、特定の目的に応じて、ハードウェアを適宜追加、削除して実施することができる。
また、上述までの実施形態において、名前解決方式において、同一のホストに対し、IPv4およびIPv6の両方のアドレスが返却される場合は、IPv6の仕様に従えば、IPv6アドレスが優先されて試行される。このとき、あるクライアント端末でIPv6プロトコルでの通信に失敗した場合に、他のクライアント端末130でも、同様にIPv6アドレスが優先されて試行されると、同じ失敗を繰り返すことになる。他の実施形態では、名前解決方式でIPv4およびIPv6の両方のアドレスが返却された場合において、IPv4プロトコルおよびIPv6プロトコルのいずれの通信の確立を先に試行するのかを、収集された通知情報に基づいて優先順位付けしてもよい。
以上説明したように本実施形態によれば、複数の通信条件下で通信可能な環境において、情報処理装置各々と相手方装置との所定の通信条件での通信の成否の情報を収集し、収集された情報を活用して効率的に複数の情報処理装置各々と相手方装置との通信を確立させられる、通信システム、通信設定方法およびプログラムを提供することができる。
なお、上記機能部は、アセンブラ、C、C++、C#、Java(登録商標)などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ROM、EEPROM、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、ブルーレイディスク、SDカード、MOなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。