以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための図面において同一の構成要素には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
図1は、実施の形態1に係るクライアント装置を含むネットワークシステムの構成を示している。
ネットワークシステム1は、図1に示すように、クライアント装置10と複数のサーバ装置20,30,40とが通信回線50を介して接続されている。
クライアント装置10はデータの送受信を行う通信手段11を有しており、この通信手段11が、通信回線50を介して複数のサーバ装置20,30,40との通信を行う。
サーバ装置20は複数の通信インタフェース(以下「通信I/F」という。)21,222,23,24を有しており、これらの通信I/F21〜24が通信回線50を介してクライアント装置10との通信を行う。
通信I/F21、通信I/F22、通信I/F23および通信I/F24には、それぞれ例えば「192.168.1.10」、「192.168.1.11」、「192.168.1.12」および「192.168.1.13」のアドレス(IPアドレス)が割り当てられている。
サーバ装置30は複数の通信I/F31,32を有しており、これらの通信I/F31,32が通信回線50を介してクライアント装置10との通信を行う。
通信I/F31および通信I/F32には、それぞれ例えば「192.168.1.20」および「192.168.1.21」のアドレス(IPアドレス)が割り当てられている。
サーバ装置40は通信I/F41を有しており、この通信I/F41が通信回線50を介してクライアント装置10との通信を行う。
通信I/F41には、例えば「192.168.1.30」のアドレス(IPアドレス)が割り当てられている。
通信回線50としては、ローカルエリアネットワーク(LAN:Local Area Network)などネットワークや電話回線などの有線通信回線、無線LANなどの無線通信回線、さらには、これらの通信回線を組み合わせたもの、などが挙げられる。
図2は、クライアント装置10の機能構成を示している。
クライアント装置10は、図2に示すように、ホストリスト制御部110、ホストグループテーブル制御部120、重複判定部130、情報管理アプリケーション140、記憶部150および送受信部160を備えている。
ホストリスト制御110は、次の(A1)および(A2)の生成方法によりホストリストを生成する。
(A1)SNMPで装置(デバイス)例えばサーバ装置を検索するとともに、この検索により応答のあった装置(サーバ装置)のアドレスをホストリストに追加し、さらに応答のあった装置(サーバ装置)に対しトラップ設定する。
(A2)JobMIB要求をブロードキャストして装置(サーバ装置)を検索するとともに、この検索により応答のあった装置(サーバ装置)のアドレスをホストリストに追加する。
SNMP(Simple Network Management Protocol)は、UDP(User Datagram Protocol)/IP(Internet Protocol)で使用されるプロトコル(ネットワーク管理プロトコル)である。MIB(Management Information Base)はSNMPで授受される情報を意味する。
なお、上記(A1)および上記(A2)の各生成方法以外にも、次の(A3)の生成方法によりホストリストは生成される。
(A3)ユーザがエディタにより予めホストリストを作成する。
したがって、ホストリストは、上述したように(A1)から(A3)の3つの生成方法のうち何れかの方法により生成されることになる。生成されたホストリストは記憶部150に記憶される。
ホストグループテーブル制御部120は、次の(B1)から(B3)の3つの生成方法のうち何れかの方法よりホストグループテーブルを生成する。
(B1)PDL(Page Description Language:ページ記述言語)エラーになるジョブを装置例えばサーバ装置へ送信して、ホストグループテーブルを作成する。
(B2)JobMIB取得要求を装置(サーバ装置)へ送信して、取得したJobMIB(ジョブ履歴)を基にしてホストグループテーブルを作成する。
(B3)能動的にJobMIB取得要求を装置へ送信せずに、既に取得してあるジョブ履歴を基にホストグループテーブルを作成する。すなわち、ジョブを送信する毎に、ジョブ履歴を取得しておき、ホストグループを作成するときに、取得されていないホストからジョブ履歴を取得する。
すなわち、本実施の形態1では、ホストリスト制御部110がホストリストを生成(一時的に生成)あるいはユーザがエディタによりホストリストを生成すると、ホストグループテーブル制御部120は、その生成されたホストリストを基にホストグループテーブルを作成するようになっている。このようにして生成されたホストグループテーブルは、記憶部150に記憶される。
ホストリストは図3に示すようなデータ構造になっている。ホストリスト200は、ホスト登録数領域210と、実際のアドレス情報が登録されるアドレス登録領域220とから構成されており、記憶部150に記憶される。
アドレス登録領域220には、符号221で示す如く、サーバ装置20(サーバ装置A)の4つの通信インタフェースにかかわるアドレス(IPアドレス)が、また符号222で示す如く、サーバ装置30(サーバ装置B)の2つの通信インタフェースにかかわるアドレス(IPアドレス)が、さらに符号223で示す如く、サーバ装置40(サーバ装置C)の1つの通信インタフェースにかかわるアドレス(IPアドレス)が、それぞれ登録されている。ホスト登録数領域210の項目には、アドレス登録領域220に登録されているアドレスの数「7」が登録されている。
ホストグループテーブルは図4に示すようなデータ構造になっている。ホストグループテーブル300は、有効ホストアドレス310および破棄対象ホストアドレス320の各項目から構成されており、記憶部150に記憶される。
ホストグループテーブル300において、符号321で示す行(1行目の行)には、ホストリスト200のサーバ装置20(サーバ装置A)の4つの通信インタフェースにかかわるアドレスが登録されている。
また符号322で示す行(2行目の行)には、ホストリスト200のサーバ装置30(サーバ装置B)の2つの通信インタフェースにかかわるアドレスが登録されている。
さらに符号323で示す行(3行目の行)には、ホストリスト200のサーバ装置40(サーバ装置C)の1つの通信インタフェースにかかわるアドレスが登録されている。
本実施の形態1では、複数の通信インタフェースのそれぞれを示す識別情報とは、サーバ装置にかかわる単一または複数の通信インタフェースに対して割り当てられたアドレス(IPアドレス)である。また、通信インタフェースを示す識別情報に関連付けされる有効である旨を示す情報とは、ホストグループテーブル300の有効ホストアドレス310である。
例えば、ホストグループテーブル300のサーバ装置20に注目した場合(符号321で示される行に注目した場合)、有効ホストアドレス310に登録されている1つのアドレスおよび破棄対象ホストアドレス320に登録されている3つのアドレスが、それぞれ通信インタフェースを示す識別情報に対応する。
また、有効ホストアドレス310(の項目情報)が、所定の通信インタフェースを示す識別情報に関連付けされる有効である旨を示す情報である。したがって、有効ホストアドレス310に登録されている1つのアドレスが、所定の通信インタフェースを示す識別情報である。換言すれば、有効ホストアドレス310に登録されている1つのアドレス(IPアドレス)は、所定の通信インタフェースに割り当てられたアドレス(IPアドレス)を意味する。
再度、図2を参照して説明する。重複判定部130は、ホストグループテーブルを基に、同一のホストからの応答かを判断(重複判定)して、情報管理アプリケーション(アプリケーションソフトウェア)140に単一の応答を返す。
記憶部150は、ホストリスト、ホストグループテーブル、送信すべき送信データ、受信された受信データを記憶する。
送受信部160は、図1に示した通信手段11の機能を果たし、通信回線50を介してサーバ装置の通信インタフェースとの間でデータの送受信を行う。
本実施の形態1では、送受信部160は通信手段に対応し、記憶部150は記憶手段に対応し、重複判定部130は判定手段およびデータ処理手段に対応し、ホストグループテーブル制御部120は制御手段に対応する。
次に、ホストリスト制御部110によるホストリストの生成処理について、図5を参照して説明する。ここでは、上記(A1)の生成方法によるホストリストの生成処理について説明する。
図5は、その生成処理の処理手順を示すフローチャートである。
図6(a)に示すネットワークシステム(図1示すネットワークシステム1)において、クライアント装置10では、ホストリスト制御部110は、図6(b)に示すようにホストリスト200を初期化(ホスト数=0)し(ステップS101)、図7(a)に示すようにSNMPで検索パケットをブロードキャスト送信する(ステップS102)。
ホストリスト制御部110は、検索パケットに対する応答のタイムアウトであるか否かを判断し(ステップS103)、この判断した結果、タイムアウトではない場合は、検索パケットに対する応答があるか否かを判断し(ステップS104)、この判断した結果、応答がない場合にはステップS103に戻り、一方、応答がある場合は応答パケットから送信元アドレス(ホストアドレス)を取得する(ステップS105)。
ホストリスト制御部110は、取得した送信元アドレス(ホストアドレス)をホストリスト200に追加するとともに(ステップS106)、ホストリスト200のホスト登録数(ホスト数)のカウントをインクリメントし(ステップS107)、その後、応答したサーバ装置(ホスト)へトラップ設定する(ステップS108)。
なお、ステップS103においてタイムアウトの場合、ホストリスト制御部110は、この処理を終了する。
ここで、ホストリスト200へのアドレスの登録の具体例を説明する。
図7(a)に示したようにホストリスト制御部110がSNMPで検索パケットを送信した後、図8(a)に示すように、サーバ装置20(サーバ装置A)から応答パケットがクライアント装置10へ送信されると、クライアント装置10では、ホストリスト制御部110は、その応答パケットを受信して、その応答パケットを基に送信元アドレス(ホストアドレス)すなわち、「192.168.1.10」、「192.168.1.11」、「192.168.1.12」および「192.168.1.13」を取得する。
ホストリスト制御部110は、図8(b)に示すように、これらのアドレス(ホストアドレス)を順次、ホストリスト200のアドレス登録領域220に登録するとともに、アドレス登録数210の項目の値をインクリメントする。ここでは、符号221で示されるように4つのアドレス(ホストアドレス)が登録されたので、アドレス登録数210の値は「0」から「4」に変化する。
また、図9(a)に示すように、サーバ装置30(サーバ装置B)から応答パケットがクライアント装置10へ送信されると、クライアント装置10では、ホストリスト制御部110は、その応答パケットを受信して、その応答パケットを基に送信元アドレス(ホストアドレス)すなわち、「192.168.1.20」、「192.168.1.21」を取得し、図9(b)に示すように、これらのアドレス(ホストアドレス)を順次、ホストリスト200のアドレス登録領域220に登録するとともに、アドレス登録数210の項目の値をインクリメントする。ここでは、符号222で示されるように2つのアドレス(ホストアドレス)が登録されたので、アドレス登録数210の値は「4」から「6」に変化する。
さらに、図10(a)に示すようにサーバ装置30(サーバ装置B)から応答パケットがクライアント装置10へ送信された場合も、上記同様に、ホストリスト制御部110は、上記同様に、図9(b)に示すように、取得したアドレス(ホストアドレス)をホストリスト200のアドレス登録領域220に登録するとともに、アドレス登録数210の項目の値をインクリメントする。この場合、符号223で示されるように1つのアドレス(ホストアドレス)が登録されるので、アドレス登録数210の値は「6」から「7」に変化する。
次に、ホストリスト制御部110によるホストリストの他の生成処理について、図11を参照して説明する。ここでは、上記(A2)の生成方法によるホストリストの生成処理について説明する。
図11は、その生成処理の処理手順を示すフローチャートである。
ホストリスト制御部110は、上記図5に示した生成処理の場合と同様に、ホストリスト200を初期化(ホスト数=0)し(ステップS201)、JobMIB要求をブロードキャスト送信し(ステップS202)、JobMIB要求に対する応答のタイムアウトであるか否かを判断する(ステップS203)。
ホストリスト制御部110は、ステップS203において、タイムアウトではないと判断した場合は、JobMIB要求に対する応答があるか否かを判断し(ステップS204)、この判断した結果、応答がない場合にはステップS203に戻り、一方、応答がある場合は応答パケットから送信元アドレス(ホストアドレス)を取得する(ステップS205)。
ホストリスト制御部110は、取得した送信元アドレス(ホストアドレス)をホストリスト200に追加するとともに(ステップS206)、ホストリスト200のホスト登録数(ホスト数)のカウントをインクリメントする(ステップS207)。
なお、ステップS203においてタイムアウトの場合、ホストリスト制御部110は、この処理を終了する。
上述した(A2)の生成方法によるホストリストの生成処理においても、サーバ装置20(サーバ装置A)、サーバ装置30(サーバ装置B)およびサーバ装置40(サーバ装置C)から応答パケットがクライアント装置10に向けて送信された場合、ホストリスト200は、図10(b)に示す内容となる。
最後に、ホストリストのさらに他の生成処理について、図12を参照して説明する。ここでは、上記(A3)の生成方法によるホストリストの生成処理について説明する。
図12は、その生成処理の処理手順を示すフローチャートである。
ユーザが、クライアント装置10を操作して、ホストリストファイルをエディタで作成する。またはユーザが、ホストリストを作成するためのアプリケーション例えばGUI(Graphical User Interface:グラフィカル・ユーザ・インタフェース)を起動させ、このGUIを使用してホストリストを作成する(ステップS301)。
そして、ホストリスト制御部110は、ホストリスト200を初期化(ホスト数=0)し(ステップS302)、その後、ホストリストファイルをホストリストにロードする(ステップS303)。
次に、ホストグループテーブル制御部120によるホストグループテーブルの生成処理について、図13を参照して説明する。ここでは、上記(B1)の生成方法によるホストグループテーブルの生成処理について説明する。
図13は、その生成処理の処理手順を示すフローチャートである。
クライアント装置10では、ホストグループテーブル制御部120は、ホストリスト(X台)200を保持するとともに(ステップS401)、ホストグループテーブル300を初期化し(ステップS402)、その後、「X=0」の関係式が成立するか否かを判断する(ステップS403)。
ここで、ホストリスト200に登録されているアドレス数をXとする。
ステップS403において「X=0」の関係式が不成立であると判断したホストグループテーブル制御部120は、ホストリスト200の1番目のアドレス(ホストアドレス)に対応するサーバ装置(ホスト)に対し、PDLエラーになるジョブ(Job)を送信し(ステップS404)、そのサーバ装置から通知されるトラップを受信するまで待機(トラップ通知受信待ち)する(ステップS405)。
上記サーバ装置(ホスト)つまりホストリスト200の1番目のアドレス(ホストアドレス)の通信インタフェースが上記ジョブ(Job)に対する応答をクライアント装置10に向けて送信すると、クライアント装置10では、ホストグループテーブル制御部120は、送受信部160を介してその応答を取得したことを受けて、ホストリスト200の1番目のアドレスを、ホストグループテーブル300の有効ホスト(グループ)つまり有効ホストアドレス310に登録するとともに(ステップS406)、当該1番目のアドレス(ホストアドレス)をホストリスト200から削除し(ステップS407)、さらに、アドレス数Xを「X−1」とする、つまり「X=X−1」を演算する(ステップS408)。
サーバ装置(ホスト)からクライアント装置10へトラップが通知されると、ホストグループテーブル制御部120は、ホストリスト200の1番目のアドレスのサーバ装置からの応答の内容と同じトラップを返してきたサーバ装置(ホスト)を認識するとともに、トラップを返してきたサーバ装置(ホスト)の通信I/Fにかかわるホストアドレスの数を「Y」とする(ステップS409)。
ホストグループテーブル制御部120は、トラップを返してきたサーバ装置(ホスト)のホストアドレスをホストグループテーブル300の破棄対象ホストアドレス320に登録するとともに(ステップS410)、破棄対象ホストアドレス320に登録したアドレス(ホストアドレス)をホストリスト200から削除し(ステップS411)、さらに、アドレス数Xを「X−Y」とする、つまり「X=X−Y」を演算する(ステップS412)、その後、ステップS430に戻る。
なお、ステップS403において「X=0]の関係式が成立する場合、ホストグループテーブル制御部120は、この処理を終了する。
ここで、上記(B1)の生成方法によるホストグループテーブル300の生成処理の具体例について説明する。
図14(a)に示すネットワークシステム(図1示すネットワークシステム1)において、クライアント装置10では、ホストグループテーブル制御部120は、図14(b)に示すようにホストリスト(X台)200を保持するとともに、図14(c)に示すようにホストグループテーブル300を初期化する。ここで、アドレス数Xは「7」である。
(1)サーバ装置20(サーバ装置A)にかかわるホストアドレスのホストグループテーブル300への登録
この場合、図14(b)に示すホストリスト200においては、アドレス数Xは「7」である。そのため、ホストグループテーブル制御部120は、アドレス数Xは「X=7」であるため、図14(a)に示すように、ホストリスト200の1番目のホストアドレス「192.168.1.10」宛てに、PDLエラーになるジョブを送信する。
クライアント装置10が、図15(a)に示すように、サーバ装置20(サーバ装置A)の通信I/F21(ホストアドレス「192.168.1.10」)から送信された応答(PDLエラーになるジョブに対する応答)を受信すると、ホストグループテーブル制御部120は、送受信部160を介してその応答を取得したことを受けて、図15(b)に示すように、ホストリスト200の1番目のアドレス「192.168.1.10」を、ホストグループテーブル300の有効ホスト(グループ)つまり有効ホストアドレス310に登録する。
ホストグループテーブル制御部120は、ホストリスト200の1番目のアドレス「192.168.1.10」をホストリスト200から削除するとともに、「X−1」を新たなアドレス数Xとする。
この場合、新たなアドレス数Xは「X=X−1=7−1=6」となる。
また、サーバ装置20(サーバ装置A)の通信I/F22(ホストアドレス「192.168.1.11」)、通信I/F23(ホストアドレス「192.168.1.12」)、および通信I/F24(ホストアドレス「192.168.1.13」)から、図15(a)に示すように、通信I/F21(ホストアドレス「192.168.1.10」)から送信された応答と同じ内容のトラップがクライアント装置10に返ってきた場合、ホストグループテーブル制御部120は、それらのサーバ装置(ホスト)を認識するとともに、トラップを返してきたサーバ装置(ホスト)の通信I/Fにかかわるホストアドレスの数を「Y」とする。
ここで、トラップを返してきたサーバ装置20(サーバ装置A)の通信I/Fにかかわるホストアドレスの数Yは「3」である。
次に、ホストグループテーブル制御部120は、図15(b)に示すように、トラップを返してきたサーバ装置(ホスト)のホストアドレスつまりホストアドレス「192.168.1.11」、ホストアドレス「192.168.1.12」、およびホストアドレス「192.168.1.13」を破棄対象ホストアドレス320に登録する。
また、ホストグループテーブル制御部120は、これら3つのホストアドレスをホストリスト200から削除する。
この場合、トラップを返してきたサーバ装置(ホスト)の通信I/Fにかかわるホストアドレスの数Yは「3」であるので、新たなアドレス数Xは「X=X−Y=6−3=3」となる。
ここまでの処理が終了した状態では、ホストリスト200は、図15(c)に示す内容(図14(b)のホストリスト200の内容と同等))から図15(d)に示す内容に遷移した状態になっている。また、ホストグループテーブル300は、図14(c)に示す内容から図15(b)に示す内容に遷移した状態になっている。
(2)サーバ装置30(サーバ装置B)にかかわるホストアドレスのホストグループテーブル300への登録
ホストグループテーブル制御部120は、新たなアドレス数Xは「X=3」であるので、図16(a)に示すように、図16(b)に示すホストリスト200(図15(d)のホストリスト200と同等)の1番目のホストアドレス「192.168.1.20」宛てに、PDLエラーになるジョブを送信する。この場合、サーバ装置30(サーバ装置B)の通信I/F21(ホストアドレス「192.168.1.20」)宛てにPDLエラーになるジョブが送信される。
そして、サーバ装置20(サーバ装置B)の場合と同様に、図17(a)に示すように、サーバ装置30(サーバ装置B)の通信I/F31(ホストアドレス「192.168.1.20」)から、PDLエラーになるジョブに対する応答がクライアント装置10に返されると、ホストグループテーブル制御部120は、図17(b)に示すように、ホストアドレス「192.168.1.20」をホストグループテーブル300の有効ホストアドレス310に登録する。
また、ホストグループテーブル制御部120は、ホストリスト200の1番目のアドレス「192.168.1.20」をホストリスト200から削除する。
この場合、新たなアドレス数Xは「X=X−1=3−1=2」となる。
次に、サーバ装置30(サーバ装置B)のホストアドレス「192.168.1.21」の通信I/F32から、図17(a)に示すように、通信I/F31(ホストアドレス「192.168.1.20」)から送信された応答と同じ内容のトラップがクライアント装置10に返ってきた場合、ホストグループテーブル制御部120は、図17(b)に示すように、トラップを返してきたサーバ装置(ホスト)のホストアドレスつまりホストアドレス「192.168.1.21」を破棄対象ホストアドレス320に登録する。
またホストグループテーブル制御部120は、そのホストアドレス「192.168.1.21」をホストリスト200から削除する。
ここで、サーバ装置30(サーバ装置B)の通信I/Fにかかわるホストアドレスの数Yは「1」であるので、新たなアドレス数Xは「X=X−Y=2−1=1」となる。
ここまでの処理が終了した状態では、図17(c)に示すホストリスト200は、図17(d)に示す内容に遷移した状態になる。また、ホストグループテーブル300は、図16(c)に示す内容から図17(b)に示す内容に遷移した状態になっている。
(3)サーバ装置40(サーバ装置C)にかかわるホストアドレスのホストグループテーブル300への登録
ホストグループテーブル制御部120は、新たなアドレス数Xは「X=1」であるので、図18(a)に示すように、図18(b)に示すホストリスト200(図17(d)のホストリスト200と同等)の1番目のホストアドレス「192.168.1.30」宛てに、PDLエラーになるジョブを送信する。この場合、サーバ装置40(サーバ装置C)の通信I/F31(ホストアドレス「192.168.1.30」)宛てにPDLエラーになるジョブが送信される。
そして、サーバ装置20(サーバ装置A)の場合と同様に、図19(a)に示すように、サーバ装置40(サーバ装置C)の通信I/F41(ホストアドレス「192.168.1.30」)から、PDLエラーになるジョブに対する応答がクライアント装置10に返されると、ホストグループテーブル制御部120は、図19(b)に示すように、ホストアドレス「192.168.1.30」をホストグループテーブル300の有効ホストアドレス310に登録する。
またホストグループテーブル制御部120は、ホストリスト200の1番目のアドレス「192.168.1.30」をホストリスト200から削除する。
この場合、新たなアドレス数Xは「X=X−1=1−1=0」となる。
ところで、サーバ装置40(サーバ装置C)は1つの通信I/F41のみを有しているので、サーバ装置40(サーバ装置C)からは、通信I/F31(ホストアドレス「192.168.1.20」)から送信された応答と同じ内容のトラップはクライアント装置10へは返信されない。
すなわち、トラップを返してきたサーバ装置40(サーバ装置C)の通信I/Fにかかわるホストアドレスの数Yは「0」であるので、新たなアドレス数Xは「X=X−Y=0−0=0」となる。
上述したようにしてサーバ装置20(サーバ装置A)、サーバ装置30(サーバ装置B)およびサーバ装置40(サーバ装置C)のそれぞれの通信I/Fにかかわるホストアドレスがホストグループテーブル300の有効ホストアドレス310または破棄対象ホストアドレス320に登録されたときは、図19(c)に示すホストリスト200は、図19(d)に示す内容に遷移した状態になる。また、ホストグループテーブル300は、図18(c)に示す内容から図19(b)に示す内容に遷移した状態になっている。
そして、図19(d)に示すホストリスト200を参照して明らかなように、新たなアドレス数Xは「0」なので(ホストリスト200にはホストアドレスが登録されていないので)、ホストグループテーブル制御部120は、ホストグループテーブルの生成処理を終了する。
次に、ホストグループテーブル制御部120によるホストグループテーブルの他の生成処理について、図20を参照して説明する。ここでは、上記(B2)の生成方法によるホストグループテーブルの生成処理について説明する。
図20は、その生成処理の処理手順を示すフローチャートである。
クライアント装置10では、ホストグループテーブル制御部120は、ホストリスト(X台)200を保持するとともに(ステップS501)、ホストグループテーブル300を初期化し(ステップS502)、その後、「X=0」の関係式が成立するか否かを判断する(ステップS503)。
ここで、ホストリスト200に登録されているアドレス数を「X」とする。
ステップS503において「X=0」の関係式が不成立であると判断したホストグループテーブル制御部120は、ホストリスト200の1番目のアドレス(ホストアドレス#)に対応するサーバ装置(ホスト)に対し、ジョブ(Job)を送信し(ステップS504)、その後、そのサーバ装置に対しジョブ(Job)履歴を要求するとともに、そのサーバ装置からのジョブ(Job)履歴要求に対する応答(ジョブ履歴)を受信する(ステップS505)。
ホストグループテーブル制御部120は、送受信部160を介してジョブ履歴を取得したことを受けて、ホストリスト200の1番目のアドレスを、ホストグループテーブル300の有効ホスト(グループ)つまり有効ホストアドレス310に登録するとともに(ステップS506)、当該1番目のアドレス(ホストアドレス)をホストリスト200から削除し(ステップS507)、さらに、アドレス数Xを「X−1」とする、つまり「X=X−1」を演算する(ステップS508)。
ホストグループテーブル制御部120は、「X=0」の関係式が成立するか否かを判断し(ステップS509)、この判断した結果、「X=0」の関係式が不成立である場合は、p=1とし(ステップS510)、ホストリスト200のp番目のホストアドレスに対応するサーバ装置(ホスト)に対しジョブ(Job)履歴を要求するとともに、そのサーバ装置からのジョブ(Job)履歴要求に対する応答(ジョブ履歴)を受信する(ステップS511)。
ホストグループテーブル制御部120は、送受信部160を介してジョブ履歴を取得したことを受けて、ホストテーブル200から削除前の1番目のホストアドレス#(ステップS504でのホストアドレス#)のサーバ装置(ホスト)からのジョブ履歴と、p番目のホストアドレスのサーバ装置(ホスト)からのジョブ履歴とがマッチングするか否かを判断する(ステップS512)。
ステップS512において上記2つのジョブ履歴がマッチングすると判断したホストグループテーブル制御部120は、p番目のホストアドレスをホストグループテーブル300の破棄対象ホストアドレス320に登録するともに(ステップS513)、p番目のホストアドレスをホストリスト200から削除する(ステップS514)。
ステップS514を終了したホストグループテーブル制御部120は、新たなアドレス数Xを「X−1」とし(ステップS515)、「p>X」の関係式が成立するか否かを判断し(ステップS516)、この判断した結果、「p>X」の関係式が不成立の場合にはステップS511に戻り、一方、「p>X」の関係式が成立する場合はステップS503に戻る。
ステップS512において上記2つのジョブ履歴がマッチングしないと判断したホストグループテーブル制御部120は、新たな「p」を「p+1」とし(ステップS517)、その後、ステップS516へ進む。
なお、ステップS503において「X=0]の関係式が成立する場合、ステップS509において「X=0]の関係式が成立する場合、ホストグループテーブル制御部120は、この処理を終了する。
ここで、上記(B2)の生成方法によるホストグループテーブル300の生成処理の具体例について説明する。
(1)サーバ装置20(サーバ装置A)にかかわるホストアドレスのホストグループテーブル300への登録
(1−1)ホストグループテーブル制御部120は、図21(a)に示すホストリスト200の1番目のホストアドレス#=ホストアドレス「192,168.1.10」に対応する通信I/F21を有するサーバ装置20へジョブを送信し、その後、ホストリスト200の1番目のホストアドレス#=ホストアドレス「192,168.1.10」に対応する通信I/F21を有するサーバ装置20へジョブ履歴要求を送信し、そのジョブ履歴要求に対する応答(ジョブ履歴)を受信する。
この1番目のホストアドレス「192,168.1.10」がホストグループテーブル300の有効ホストアドレス310に登録される。
また、この1番目のホストアドレス「192,168.1.10」がホストリスト200から削除される。この場合、ホストリスト200は、図21(a)に示す内容から図21(b)に示す内容に遷移する。この時点においては、アドレス数Xは「X=X−1=7−1=6」である。またpは「p=1」と定義される。
(1−2)ホストグループテーブル制御部120は、図21(b)に示すホストリスト200のp番目=1番目のホストアドレス192,168.1.11」に対応する通信I/F22を有するサーバ装置20へジョブ履歴要求を送信し、そのジョブ履歴要求に対する応答(ジョブ履歴)を受信する。
(1−3)ホストリスト200の1番目のホストアドレス#=ホストアドレス「192,168.1.10」に対応する通信I/F21を有するサーバ装置20からのジョブ履歴と、p番目=1番目のホストアドレス192,168.1.11」に対応する通信I/F22を有するサーバ装置20からのジョブ履歴とはマッチングする。
(1−4)ホストグループテーブル制御部120は、p番目=1番目のホストアドレス192,168.1.11」をホストグループテーブル300に破棄対象ホストアドレス320に登録し、p番目=1番目のホストアドレス192,168.1.11」をホストリスト200から削除する。この場合、ホストリスト200は、図21(b)に示す内容から図21(c)に示す内容に遷移する。この時点においては、アドレス数Xは「X=X−1=6−1=5」である。またpは「p=1」のままである。
(1−5)ホストグループテーブル制御部120は、図21(c)に示すホストリスト200のp番目=1番目のホストアドレス192,168.1.12」に対応する通信I/F23を有するサーバ装置20へジョブ履歴要求を送信し、そのジョブ履歴要求に対する応答(ジョブ履歴)を受信する。
(1−6)この場合も、ホストリスト200の1番目のホストアドレス#=ホストアドレス「192,168.1.10」に対応する通信I/F21を有するサーバ装置20からのジョブ履歴と、p番目=1番目のホストアドレス192,168.1.12」に対応する通信I/F23を有するサーバ装置20からのジョブ履歴とはマッチングする。
(1−7)ホストグループテーブル制御部120は、p番目=1番目のホストアドレス192,168.1.12」をホストグループテーブル300に破棄対象ホストアドレス320に登録し、p番目=1番目のホストアドレス192,168.1.12」をホストリスト200から削除する。この場合、ホストリスト200は、図21(c)に示す内容から図21(d)に示す内容に遷移する。この時点においては、アドレス数Xは「X=X−1=5−1=4」である。またpは「p=1」のままである。
(1−8)ホストグループテーブル制御部120は、図21(d)に示すホストリスト200のp番目=1番目のホストアドレス192,168.1.13」に対応する通信I/F24を有するサーバ装置20へジョブ履歴要求を送信し、そのジョブ履歴要求に対する応答(ジョブ履歴)を受信する。
(1−9)この場合も、ホストリスト200の1番目のホストアドレス#=ホストアドレス「192,168.1.10」に対応する通信I/F21を有するサーバ装置20からのジョブ履歴と、p番目=1番目のホストアドレス192,168.1.13」に対応する通信I/F24を有するサーバ装置20からのジョブ履歴とはマッチングする。
(1−10)ホストグループテーブル制御部120は、p番目=1番目のホストアドレス192,168.1.13」をホストグループテーブル300に破棄対象ホストアドレス320に登録し、p番目=1番目のホストアドレス192,168.1.13」をホストリスト200から削除する。この場合、ホストリスト200は、図21(d)に示す内容から図21(e)に示す内容に遷移する。この時点においては、アドレス数Xは「X=X−1=4−1=3」である。またpは「p=1」のままである。
(1−11)ホストグループテーブル制御部120は、図21(e)に示すホストリスト200のp番目=1番目のホストアドレス192,168.1.20」に対応する通信I/F31を有するサーバ装置30へジョブ履歴要求を送信し、そのジョブ履歴要求に対する応答(ジョブ履歴)を受信する。
(1−12)この場合は、ホストリスト200の1番目のホストアドレス#=ホストアドレス「192,168.1.10」に対応する通信I/F21を有するサーバ装置20からのジョブ履歴と、p番目=1番目のホストアドレス192,168.1.20」に対応する通信I/F31を有するサーバ装置30からのジョブ履歴とはマッチングしない。
この場合、pは「p+1=1+1=2」と定義される。
(1−13)ホストグループテーブル制御部120は、図21(e)に示すホストリスト200のp番目=2番目のホストアドレス192,168.1.21」に対応する通信I/F32を有するサーバ装置30へジョブ履歴要求を送信し、そのジョブ履歴要求に対する応答(ジョブ履歴)を受信する。
(1−14)この場合は、ホストリスト200の1番目のホストアドレス#=ホストアドレス「192,168.1.10」に対応する通信I/F21を有するサーバ装置20からのジョブ履歴と、p番目=1番目のホストアドレス192,168.1.21」に対応する通信I/F31を有するサーバ装置30からのジョブ履歴とはマッチングしない。
この場合、pは「p+1=2+1=3」と定義される。
(1−15)ホストグループテーブル制御部120は、図21(e)に示すホストリスト200のp番目=3番目のホストアドレス192,168.1.30」に対応する通信I/F41を有するサーバ装置40へジョブ履歴要求を送信し、そのジョブ履歴要求に対する応答(ジョブ履歴)を受信する。
(1−16)この場合は、ホストリスト200の1番目のホストアドレス#=ホストアドレス「192,168.1.10」に対応する通信I/F21を有するサーバ装置20からのジョブ履歴と、p番目=3番目のホストアドレス192,168.1.30」に対応する通信I/F41を有するサーバ装置40からのジョブ履歴とはマッチングしない。
この場合、pは「p+1=3+1=4」と定義される。
上述したように、図21(a)に示すホストリスト200の1番目のホストアドレス#=ホストアドレス「192,168.1.10」に対応する通信I/F21を有するサーバ装置20からのジョブ履歴と、図21(a)に示す2番目のホストアドレスから7番目のホストアドレスまでに対応する通信I/Fを有するサーバ装置からのジョブ履歴とのマッチング処理が実施されたことになる。
この場合は、ホストアドレス「192,168.1.10」に対応する通信I/Fを有するサーバ装置からのジョブ履歴と、ホストアドレス「192,168.1.11」、ホストアドレス「192,168.1.12」およびホストアドレス「192,168.1.13」のそれぞれに対応する通信I/Fを有するサーバ装置からのジョブ履歴とがマッチングしたので、次は、図22(a)に示すホストリスト200(図21(e)に示すホストリストと同等)つまりホストリスト200に登録されているサーバ装置30にかかわるホストアドレスおよびサーバ装置40にかかわるホストアドレスを基に、上記(1−1)以降の処理が実施される。
これにより、ホストリスト200は、図22(a)に示す内容から図22(b)に示す内容に遷移され、さらに図22(b)に示す内容から図22(c)に示す内容に遷移される。
最後に、図22(c)に示すホストテーブル200に登録されているサーバ装置40にかかわるホストアドレスを基に、上記(1−1)以降の処理が実施される。
そして、最終的に、ホストリスト200は図19(d)に示す内容となり、またホストグループテーブル300は図19(b)に示す内容となる。
次に、ホストグループテーブル制御部120によるホストグループテーブルのさらに他の生成処理について、図23を参照して説明する。ここでは、上記(B3)の生成方法によるホストグループテーブルの生成処理について説明する。
図23は、その生成処理の処理手順を示すフローチャートである。
クライアント装置10では、ホストグループテーブル制御部120は、ホストリスト(X台)200を保持するとともに(ステップS601)、ホストグループテーブル300を初期化し(ステップS602)、その後、「X=0」の関係式が成立するか否かを判断する(ステップS603)。
ここで、ホストリスト200に登録されているアドレス数をXとする。
ステップS603において「X=0」の関係式が不成立であると判断したホストグループテーブル制御部120は、ホストリスト200の1番目のアドレス(ホストアドレス#)に対応するサーバ装置(ホスト)にかかわるジョブ(Job)履歴をロードする(ステップS604)。
ステップS604を終了したホストグループテーブル制御部120は、ホストリスト200の1番目のアドレスを、ホストグループテーブル300の有効ホスト(グループ)つまり有効ホストアドレス310に登録するとともに(ステップS605)、当該1番目のアドレス(ホストアドレス)をホストリスト200から削除し(ステップS606)、さらに、アドレス数Xを「X−1」とする、つまり「X=X−1」を演算する(ステップS607)。
ホストグループテーブル制御部120は、「X=0」の関係式が成立するか否かを判断し(ステップS608)、この判断した結果、「X=0」の関係式が不成立である場合は、p=1とし(ステップS609)、ホストリスト200のp番目のホストアドレスに対応するサーバ装置(ホスト)にかかわるジョブ(Job)履歴をロードする(ステップS610)。
ホストグループテーブル制御部120は、ホストテーブル200から削除前の1番目のホストアドレス#(ステップS604でのホストアドレス#)のサーバ装置(ホスト)にかかわるジョブ履歴と、p番目のホストアドレスのサーバ装置(ホスト)にかかわるジョブ履歴とがマッチングするか否かを判断する(ステップS611)。
ステップS611において上記2つのジョブ履歴がマッチングすると判断したホストグループテーブル制御部120は、p番目のホストアドレスをホストグループテーブル300の破棄対象ホストアドレス320に登録するともに(ステップS612)、p番目のホストアドレスをホストリスト200から削除する(ステップS613)。
ステップS613を終了したホストグループテーブル制御部120は、新たなアドレス数Xを「X−1」とし(ステップS614)、「p>X」の関係式が成立するか否かを判断し(ステップS615)、この判断した結果、「p>X」の関係式が不成立の場合にはステップS610に戻り、一方、「p>X」の関係式が成立する場合はステップS603に戻る。
ステップS611において上記2つのジョブ履歴がマッチングしないと判断したホストグループテーブル制御部120は、新たな「p」を「p+1」とし(ステップS616)、その後、ステップS615へ進む。
なお、ステップS603において「X=0]の関係式が成立する場合、ステップS608において「X=0]の関係式が成立する場合、ホストグループテーブル制御部120は、この処理を終了する。
上記(B3)の生成方法によるホストグループテーブル300の生成処理の具体例については、上記(B2)の生成方法によるホストグループテーブル300の生成処理の具体例を参照のこと。
クライアント装置10は、図24に示すように、ホストリストの3つの生成方法((A1)〜(A3))の中から1つのホストリストの生成方法を選択し(ステップS710)、選択した生成方法が、(A1)の生成方法の場合には当該生成方法を実行し(ステップS711)、(A2)の生成方法の場合には当該生成方法を実行し(ステップS712)、(A3)の生成方法の場合には当該生成方法を実行する(ステップS713)。
ここで、ステップS711およびステップS712はホストリスト制御部110によって実施される。ステップS713はユーザの操作に応じて処理するエディタまたはGUIによって実施される。
ステップS711が終了した場合、ステップS712が終了した場合、ステップS713が終了した場合、クライアント装置10は、ホストグループテーブルの3つの生成方法((B1)〜(B3))の中から1つのホストグループテーブルの生成方法を選択し(ステップS720)、選択した生成方法が、(B1)の生成方法の場合には当該生成方法を実行し(ステップS721)、(B2)の生成方法の場合には当該生成方法を実行し(ステップS722)、(B3)の生成方法の場合には当該生成方法を実行する(ステップS723)。
ここで、ステップS721〜S723はホストグループテーブル制御部120によって実施される。
本実施の形態1では、ホストリストの3つの生成方法((A1)〜(A3))とホストグループテーブルの3つの生成方法((B1)〜(B3))の組み合わせ(9通り)により、ホストグループテーブルが作成される、あるいはそれらの生成方法の複合によりホストグループテーブルが更新されるようになっている。
次に、重複判定部130による同一のホストからの応答の重複判定処理について、図25を参照して説明する。
図25は、その重複判定処理の処理手順を示すフローチャートである。
重複判定部130は、送受信部160を介してサーバ装置から送信されたパケットを受信するまで、パケットの受信待ちの状態となり(ステップS801)、パケットを受信したときは、そのパケットに含まれる送信元アドレスがホストグループテーブル300の有効ホストアドレス310に登録されているホストアドレスと一致するか否かを判断し(ステップS802)、この判断した結果、前記2つのアドレスが一致する場合には、情報管理アプリケーション140にパケットデータを渡し(ステップS803)、一方、前記2つのアドレスが一致しない場合はパケットデータを破棄する(ステップS804)。
ステップS803を終了した場合、ステップS804を終了した場合は、ステップS801に戻る。
例えば、クライアント装置10が、図26に示すように、サーバ装置20の通信I/F21に向けて問い合わせ1#を送信すると、サーバ装置20では、複数の通信I/F21,22,23,24がそれぞれ問い合わせ1#を受信するとともに、これら複数の通信I/Fが、それぞれ問い合わせ1#に対する応答1@をクライアント装置20へ送信する。
この場合、複数の応答1@を受信したクライアント装置20では、重複判定部130の重複判定処理により、所定の通信I/Fとしての例えば通信I/F21からの応答を、応答として処理する。他の通信I/Fからの応答は破棄される。
以上説明したように、サーバ装置の複数の通信I/Fのそれぞれから、重複する同一の情報(課金情報知、ファイル転送によるファイル、ステータス通知によるステータス情報など)の通知がクライアント装置に到達した場合であっても、クライアント装置では、複数の通信I/Fの中の1つの通信I/Fから通知された情報のみを処理の対象とし、他の通信I/Fから通知された情報については破棄する。このことは、重複して処理することを防止し、これにより例えば二重課金などの弊害を防止することができる。
図27は、ネットワークシステム1のクライアント装置10のハードウェア構成を示している。
クライアント装置10は、図27に示すように、CPU(中央演算処理装置)101、記憶装置102、ROM(読み出し専用メモリ)103、RAM(随時書き込み読み出しメモリ)104、入力装置105、表示装置106、通信I/F107を備えている。
記憶装置102には、(a)上述したホストリストの生成処理の処理手順(図5、図11参照)に対応するプログラム、(b)上述したホストグループテーブルの生成処理の処理手順(図13.図20、図23参照)に対応するプログラム、(c)上述した重複判定の処理手順(図25参照)に対応するプログラムを含むデータ処理プログラム102Aが格納されている。また、記憶装置102には、情報管理アプリケーション、ホストグループテーブルが格納されている。
なお、上記(a)のプログラムはホストリスト制御部110の機能を実現させるプログラムでもある。また、上記(b)のプログラムはホストグループテーブル制御部120の機能を実現させるプログラムでもある。さらに、上記(c)のプログラムは重複判定部130の機能を実現させるプログラムでもある。
上記データ処理プログラム102Aは、少なくとも次の(1)〜(3)の処理過程を含んでいる。
(1)サーバ装置にかかわる複数の通信インタフェースのそれぞれを示す識別情報と、前記複数の通信インタフェースの中の所定の通信インタフェースを示す識別情報に関連付けされる有効である旨を示す情報とを記憶する記憶処理過程。
(2)受信された受信データに含まれる送信元としての通信インタフェースを示す識別情報が、上記記憶処理過程により記憶されている有効である旨を示す情報に対応する識別情報と一致するか否かを判定する判定処理過程。
(3)上記判定処理過程により上記2つの識別情報が一致すると判定されたときのみ前記受信データを受理し、上記判定処理過程により上記2つの識別情報が一致しないと判定されたときは前記受信データを破棄するデータ処理過程。
ROM103は、データ処理に必要なパラメータやデータなどを記憶している。
RAM104は、記憶装置102から読み込まれたデータ御処理プログラム102Aを記憶する。また、RAM104は、受信された受信データ(ホストアドレス、トラップ、ジョブ履歴など)、送信すべき送信データ(PDLエラーになるジョブ、JobMIB取得要求など)などを記憶する。さらに、RAM104には、ホストリスト制御部110によるホストリストの生成処理、およびホストグループテーブル制御部120によるホストグループテーブルの生成処理を実施するための作業領域(ワークエリア)が割り当てられている。
入力装置105および表示装置106はユーザインタエースとして動作する。通信I/F107は送受信部160(図2参照)に対応する。
CPU101は、ROM102からRAM103へデータ処理プログラム102Aを読み込んで実行することによりデータ御処理を遂行する。また、CPU101は、そのデータ御処理を遂行することにより、ホストリスト制御部110の機能、ホストグループテーブル制御部120の機能、重複判定部130の機能を実現する。また、CPU101はクライアント装置10全体を制御する。
(実施の形態2)
図28は、実施の形態2に係るサーバ装置を含むネットワークシステムの構成を示している。
図28に示すネットワークシステム2において、サーバ装置500は通信回線610および通信回線620に接続されている。クライアント装置600は通信回線610に接続されている。サーバ装置500とクライアント装置600とは通信回線610を介して接続される。
通信回線610,620としては、ローカルエリアネットワーク(LAN:Local Area Network)などネットワークや電話回線などの有線通信回線、無線LANなどの無線通信回線、さらには、これらの通信回線を組み合わせたもの、などが挙げられる。ここでは、通信回線610,620はネットワークを採用する。
本実施の形態2では、サーバ装置は、複数の通信インタフェースを有する印刷装置、ネットワークスキャナ装置、プリンタ機能やスキャナ機能を有するネットワーク複合機(画像形成装置)など、ネットワーク対応型の画像形成装置(デバイス)を想定している。また、クライアント装置は、コンピュータ(ホスト)を想定している。すなわち、サーバ装置はデバイスを意味し、クライアント装置はホストを意味する。
サーバ装置500は、図29に示すように、インタフェース部(以下「I/F部」という。)510、通信プロトコル処理部520、関連付け設定部530、記憶装置540、ジョブ処理部550、ステータス・パラメータ処理部560、ネットワークアプリケーション部、送信処理部580、および時計590を備えている。
I/F部(インタフェース部)510は、クライアント装置(ホスト)との通信を行うネットワークインタフェースとしての複数の通信インタフェース(以下「通信I/F」という。)510−1,510−2,・・・,510−nを有している。これらの通信I/Fには、それぞれユニークなアドレス(IPアドレス)が割り当てられている。
通信プロトコル処理部520は、クライント装置(ホスト)との通信(印刷、設定、参照など)の発生時に、そのホストのアドレス(以下「ホストアドレス」という。)を抽出するとともに、サーバ装置の複数の通信I/Fの中でそのホストとの通信を実施している通信I/Fを抽出する。
関連付け設定部530は、記憶装置540に対し、通信プロトコル処理部520によって抽出されたホストアドレスおよび通信I/Fを出力して、それらの情報を対応付けて記憶(保存)するように指示する。
記憶装置540は、アクセスI/Fテーブル541、上書き優先順位テーブル542、保存有効時間情報543、新規アクセスレベル情報544、デフォルト送信I/F情報545および送信先アドレス帳546を記憶している。
アクセスI/Fテーブル541は、ホストアドレスと通信I/Fとの対応関係を示す対応表(テーブル)を保持する。
アクセスI/Fテーブル541は、図30に示すように、アドレス541a、パケット種類541b、暗号化541c、最終アクセス時間541dおよびアクセスI/F識別子541eの各項目から構成されている。
アドレス541aの項目には、アクセスしてきたホスト(送信元)のホストアドレスつまりインターネットプロトコルアドレス(IPアドレス)が登録される。
パケット種類541bの項目には、ホストから送信されたパケットつまり通信I/Fが受信したパケット(受信パケット)の種類が登録される。
暗号化541cの項目には、暗号化の有無を示す旨が登録される。
最終アクセス時間541dの項目には、アクセスされた最終の時間(アクセス時間)が登録される。
アクセスI/F識別子541eの項目には、ホストから送信されたパケットを受信した通信I/Fを示す識別情報(以下「I/F識別子」という。)が登録される。
なお、本実施の形態2において、アクセスI/Fテーブル541(図29参照)にはアクセスレベル541#が含まれているが、これは、このテーブルの説明のために設けている。実際のアクセスI/Fテーブル541においては、アクセスレベル541#は存在せず、アクセスI/Fテーブル541からは、パケット種類に応じたアクセスレベルを知ることはできない。
そのため、アクセスI/Fテーブル541のパケット種類541bおよび暗号化541cを基に、後述する上書き優先順位テーブル542からアクセスレベルを知る(取得)することになる。なお、パケット種類542および暗号化541cを削除し、これらに代替してアクセスレベル541#の値を保存するようにしてもよい。この場合もアクセスI/Fテーブル541の機能は維持される。
アクセスI/Fテーブル541の更新は、IPアドレスごとに上書き優先順位テーブルを基に、アクセスレベルが高い場合に使用された通信I/Fに書き換えられる。
アクセスレベル541の項目に登録されている値は、上書き優先順位テーブルとの掛け合わせで求められる。これ以外のアドレス541a、パケット種類541b、暗号化541c、最終アクセス時間541eおよびアクセスI/F識別子541fの各項目に登録されている値は保存値である。
本実施の形態2において、アクセスI/Fテーブル541は自動的に作成されるようになっているが、これに限定されることなく、ユーザが所定のユーザインタフェースを利用して、任意のデータを削除、編集などの処理操作ができるようにしてもよい。
再度、図29を参照して説明する。上書き優先順位テーブル542は、同じアドレスでも受信したプロトコルなどで優先順位をつけるためにある。
上書き優先順位テーブル542は、図31に示すように、アクセスレベル542a、パケット種類542b、および暗号化有無あるいは判断材料にしない(以下「暗号化有無等」という。)542cの各項目から構成されている。
基本的に上書き優先順位テーブル542は動的に変化する必要がないので、図31に示す例においては、上記各項目に登録されている値は初期値として保存されている。
本実施の形態2において、上書き優先順位テーブル542(図31参照)のアクセスレベル542a、パケット種類542b、暗号化有無等542cの各項目には、初期値としての値が保存されているが、これに限定されることなく、ユーザが所定のユーザインタフェースを利用して、任意のデータを追加、編集、削除などの処理操作ができるようにしてもよい。
再度、図29を参照して説明する。保存有効時間情報543は、アクセスI/Fテーブル541に登録されているホストアドレスと通信I/Fとを対応付けした情報(行データ)を保存しておく期間(時間)を示す情報(設定値)である。最終アクセス時間(日時)と現在時間(日時)との差分の時間が、保存有効時間情報543を過ぎている場合は、アクセスI/Fテーブル541における当該最終アクセス時間にかかわる行データが破棄されるようになっている。
新規アクセスレベル情報544は、アクセスI/Fテーブル541にパケットの種類を登録するべきことを決定する基準としての、パケットに関する最低レベル(設定値)である。最低レベルの値を大きくした場合には限定された種類のパケットの中で通信I/Fによって受信されたパケットの種類がアクセスI/Fテーブル541に保存され、最低レベルの値を小さくした場合は多種類のパケットの中で通信I/Fによって受信されたパケットの種類がアクセスI/Fテーブル541に保存される。また、それらのパケットの種類に対応して、そのパケットを送信した送信元のアドレス情報がアクセスI/Fテーブル541に保存される。
デフォルト送信I/F情報545は、送信データを送信するときに、送信先のホストアドレスがアクセスI/Fテーブル541に存在しない場合、つまりホストアドレスと通信I/Fとを対応付けした情報(行データ)が存在しない場合に、使用するべき通信I/Fを示す情報(設定値)である。
送信先アドレス帳546は、送信先のアドレスデータを格納する。
ジョブ処理部550は、受信したジョブの処理を行う。このジョブの処理は、アドレス関連付けとは無関係に並行して実行される。
ステータス・パラメータ処理部560は、デバイスパラメータの参照、管理の処理を行う。これらの処理は、アドレス関連付けとは無関係に並行して実行される。
ネットワークアプリケーション部570は、ユーザが所定のユーザインタフェースを用いて、ジョブ送信の処理を行うとともに、内部に発生した所定のイベントを監視してトラップ送信などのイベント情報の送信を行う。ここで、トラップ送信とは、サーバ装置(デバイス)側から自発的にクライアント装置(ホスト)へ情報送信することである。本実施の形態2では、送信される情報は特に規定はしないが、サーバ装置(デバイス)での課金に関わる情報等を想定している
送信処理部580は、ネットワークアプリケーション部570によって抽出された送信先アドレスを基に、記憶装置540のアクセスI/Fテーブル542を参照して、対応する通信I/Fを決定する。なお、アクセスI/Fテーブル542にアドレスが存在しない場合は、デフォルト送信I/F情報545に基づく通信I/Fを一つ選択する。
時計590は、時間を計時する。時計590はタイマであってもよい。
実施の形態2では、I/F部510は通信手段に対応し、複数の通信I/F510−1,510−2,510−3,510−nは複数の通信インタフェースに対応し、記憶装置540(のアクセスI/Fテーブル541)は記憶手段に対応し、送信処理部580は送信制御手段に対応する。
次に、サーバ装置(デバイス)によるアクセスI/Fテーブルの作成処理について、図31を参照して説明する。
図32は、その作成処理の処理手順を示すフローチャートである。
ホストからのデバイスへアクセスが発生したときのデバイスによるアクセスI/Fテーブルの作成処理について説明する。この作成処理には、パケット(ネットワークパケット)の監視およびアクセスI/Fテーブルの作成、更新の処理が含まれる。
I/F部510では、複数の通信I/F510−1,510−2,510−3,・・・,510−3は、それぞれネットワーク上のクライアント装置(ホスト)から送信されたパケットを監視(モニタリング)し、当該サーバ装置(デバイス)宛てにパケットがきたときに、受信したパケットを通信プロトコル処理部520へ渡す(ステップS901、図34のP11参照)。
なお、パケットとしては、ブロードキャスト送信された情報(印刷データなど印刷に関する情報)を含むパケットや、印刷指示などを含むパケットがある。ステップS901においては、I/F部510は、ホストのアドレス情報を抽出するのが目的なので、他のデバイス宛てのパケットもキャプチャ(データの取り込み)して利用可能である。
通信プロトコル処理部520は、I/F部510から渡されたパケットからホストアドレスを抽出するとともに、この抽出したホストアドレス、アクセスのあった通信I/Fを示す識別情報、そのパケットの種類(プロトコルの種類)、暗号化の有無、受信時間を関連付けし、これらの情報をパケット情報として関連付け設定部530へ渡す(ステップS902、図34のP12参照)。
関連付け設定部530は、受け取ったパケット情報を基に、記憶装置540に保存されている上書き優先順位テーブル542から受信パケットのアクセスレベルを決定(取得)する(ステップS903、図34のP13参照)。
また、関連付け設定部530は、記憶装置540に保存されているアクセスI/Fテーブル541から既存の情報(ホストアドレス、パケット種類、最終アクセス時間など)を取得するとともに(ステップS904、図34のP14参照)、受け取ったパケット情報に含まれるホストアドレスが、アクセスI/Fテーブル541のアドレス541aの項目に登録済みのホストアドレスに存在するか否かを判断する(ステップS905)。
ステップS905において、受け取ったパケット情報に含まれるホストアドレスがアクセスI/Fテーブル541に存在すると判断した関連付け設定部530は、アクセスI/Fテーブル541から、前記ホストアドレスに対応するパケット種類情報および暗号化情報を取得するとともに、これら取得した情報を基に上書き優先順位テーブル542からアクセスレベル(現在、登録さているパケット種類に応じたアクセスレベル)を取得する(ステップS906)。
関連付け設定部530は、時計590から現在の時刻情報(日時情報)を取得し(図34のP154参照)、この現在の時刻(日時)と最終アクセス時間(日時)との差分の時間が、記憶装置540に記憶されている保存有効期間情報543の設定値(保存有効期間)以内であるか否かを判断する(ステップS907)。
ステップS907において上記差分の時間が保存有効期間情報543の設定値(保存有効期間)以内であると判断した関連付け設定部530は、ステップS903において取得したアクセスレベル(受信パケットのアクセスレベル)が、ステップS906において取得したアクセスレベル(現在、登録さているパケット種類に応じたアクセスレベル)の値以上であるか否かを判断する(ステップS908)。
ステップS908において、受信パケットのアクセスレベルが、現在、登録さているパケット種類に応じたアクセスレベルの値以上であると判断した関連付け設定部530は、アクセスI/Fテーブル541から、当該登録さているパケット種類に応じたアクセスレベルに対応する情報(行データ)を削除して、アクセスI/Fテーブル541に新しい情報、すなわちホストアドレス、パケット種類、暗号化の有無、最終アクセス時間およびI/F識別子を書き込むことで、上書き更新する(ステップS909、図34のP16参照)。
すなわち、アクセスI/Fテーブル541を更新するに際し、アクセスの種類(ブロードキャスト、パラメータ参照(パラメータの種類)、パラメータ設定、印刷あるいは前回アクセスからの経過時間、暗号化の有無、等)をアクセスレベルとしてそれぞれレベル付けし、上書き優先順位テーブル542を基に、既存情報のアクセスレベルと新たに受信したアクセスレベルとを比較し、上書き可能と判定された場合に、アクセスI/Fテーブル541を更新する。
なお、ステップS909において、2つのアクセスレベルが同じであった場合は、I/F識別子と最終アクセス時間が更新される。
ステップ909を終了した場合、関連付け設定部530は、アクセスI/Fテーブル541をサーチし、記憶装置540に保存されている保存有効期間情報543の設定値(保存有効期間)を超えた古い情報(行データ)を削除し(ステップS910)、その後、ステップS901に戻る。
ところで、ステップS905において、受け取ったパケット情報に含まれるホストアドレスがアクセスI/Fテーブル541に存在しないと判断した関連付け設定部530は、ステップS903において取得したアクセスレベル(受信パケットのアクセスレベル)が、記憶装置540に保存されている新規アクセスレベル情報544の設定値(新規アクセスレベル)以上であるか否かを判断する(ステップS911)。
ステップS911において、受信パケットのアクセスレベルが新規アクセスレベル以上であると判断した関連付け設定部530は、アクセスI/Fテーブル541に、ホストアドレス、パケット種類、暗号化の有無、最終アクセス時間およびI/F識別子を登録し(ステップS912、図34のP16参照)、その後、ステップS910へ進む。
ステップS911において、受信パケットのアクセスレベルが新規アクセスレベル未満であると判断された場合、ステップS910へ進む。
ところで、ステップS907において、上記差分の時間が保存有効期間情報543の設定値(保存有効期間)を超えていると判断した関連付け設定部530は、アクセスI/Fテーブル541から、該当するホストアドレスに対応する情報(行データ)を削除し(ステップS913)、その後、ステップS911へ進む。
次に、サーバ装置(デバイス)によるデータ送信処理について、図33を参照して説明する。
図33は、そのデータ送信処理の処理手順を示すフローチャートである。
ユーザがアプリケーションから送信要求する、あるいはサーバ装置(デバイス)の内部でイベントが発生したことに起因してトラップなどの送信要求が発行された場合、その送信要求がネットワークアプリケーション部570へ渡される(ステップS1001、図34のP21参照)。
ネットワークアプリケーション部570は、送信先ホストの送信アドレスを記憶装置540に保存されている送信アドレス帳546から取得し(図33のP22参照)、この取得した送信アドレスおよび必要なデータ(トラップ情報や送信データ)を送信処理部580へ渡す(ステップS1002、図34のP23参照)。
送信処理部580は、記憶装置540に保存されているアクセスI/Fテーブル541を取得するとともに(図34のP24参照)、この取得しアクセスI/Fテーブル541と、ネットワークアプリケーション部570から渡された送信先アドレスとを基に、使用するべき通信I/Fを決定する処理を開始する(ステップS1003)。
すなわち、送信処理部580は、送信先アドレス(IPアドレス)がアクセスI/Fテーブル541(のアドレス541aの項目)に登録されているホストアドレス(IPアドレス)に存在するか否かを判断し(ステップS1004)、この判断した結果、送信先アドレスと合致するホストアドレスが存在する場合、当該ホストアドレスに対応するI/F識別子および最終アクセス時間を取得する。
次に、送信処理部580は、時計590から現時の時刻(日時)を取得し、この現在の時刻(日時)と最終アクセス時間(日時)との差分の時間が、記憶装置540に記憶されている保存有効期間情報543の設定値(保存有効期間)以内であるか否かを判断する(ステップS1005)。
ステップS1005において上記差分の時間が保存有効期間情報543の設定値(保存有効期間)以内であると判断した送信処理部580は、上記取得したI/F識別子に対応する通信I/Fに対し、必要なデータ(トラップ情報や送信データ)を渡して、データ送信するように送信制御する(ステップS1006、図34のP25参照)。これにより、指定されたI/Fから必要なデータ(トラップ情報や送信データ)が送信先に向けて送信される。
ステップS1004において、送信先アドレスと合致するホストアドレスが存在しないと判断した送信処理部580は、同一のネットワークと思われる他のホストのアドレスがアクセスI/Fテーブル541に存在するか否かを判断する(ステップS1007)。
このステップS1007においては、アクセスI/Fテーブル541に、送信先アドレスと同じサブネット、あるいは同じDNS(Domain Name System)ドメインのアドレスが存在するか検索される。
すなわち、送信先アドレスがアクセスI/Fテーブル541に存在しない場合は、アクセスI/Fテーブル541に登録されている他のホスト情報を参照し、同じサブネットにいると推測される場合は、そのホストに関連付けされた通信I/Fを使用するようにしてもよい。これは、FQDN(Fully Qualified Domain Name)の一部がマッチングしている場合などに有効である。
信処理部580は、ステップS1007において、同一のネットワークと思われる他のホストのアドレスが存在すると判断した場合にはステップS1005へ進み、一方、同一のネットワークと思われる他のホストのアドレスが存在しないと判断した場合は、記憶装置540に保存されているデフォルト送信I/F情報545の設定値(I/F識別子)
を取得し、この取得したI/F識別子に対応する通信I/Fに対し、必要なデータ(トラップ情報や送信データ)を渡して、データ送信するように送信制御する(ステップS1008)。
以上説明したように、サーバ装置(デバイス)が、所定のクライアント装置(ホスト)まで到達できる複数の通信I/Fを有している場合に、サーバ装置(デバイス)が、所定のクライアント装置(ホスト)へ送信するべき情報(例えば課金に関する情報など)を送信するときに、当該サーバ装置(デバイス)が有する通信I/Fから、同じ情報が送信されることを防止することができる。そのため、クライアント装置(ホスト)においては、サーバ装置(デバイス)から送信された送信情報(課金に関する情報)に対する多重処理を防止することができる。
本実施の形態2では、アクセスI/Fテーブルは、サーバ装置(デバイス)に1つのみ保存される構成としているが、これに限定されることなく、次のようにしてもよい。
すなわち、通信I/F毎にアクセスI/Fテーブルを設け(サーバ装置内に複数のアクセスI/Fテーブルを設け)、サーバ装置(デバイス)が、複数のアクセスI/Fテーブルを参照して、送信先アドレスに対応する通信I/Fを決定するようにする。この場合、通信I/Fの数が多い場合でも、通信I/Fの増加によるサーバ装置の資源の消費が最小限に抑制することができ、サーバ装置の資源を有効に使用することができる。
また、本実施の形態2では、アクセスI/Fテーブルは自動的に作成され更新される構成としているが、これに限定されることなく、ユーザがワークステーション(EWS)やコンピュータなどユーザインタフェースを用いてアクセスI/Fテーブルの編集操作を行うようにしてもよい。これにより、アクセスI/Fテーブルをユーザの好みに応じてカスタマイズすることができる。
また、本実施の形態2では、アクセスI/Fテーブルに関し、(1)記憶装置が許す範囲ですべてのアドレスを保存する、(2)一定時間が経過したものは消去する、(3)既存のアドレス帳などの送信先を持つデーターベースと連携し、(3−1)アドレス帳に登録されているアドレスのみを保存する、(3−2)アドレス帳へ通信I/F情報を登録する、など実施するようにしてもよい。
さらに、本実施の形態2では、通信プロトコル毎に、送信先アドレスの情報にかかわるアクセスI/Fテーブルを設けるようにしてもよい。
すなわち、所定の通信プロトコル例えばSNMPのプロトコルでアクセスされた場合に、そのホストに対するSNMP送信時には、SNMPに対応するアクセスI/Fテーブルを参照して、そのホストのホストアドレスに対応する通信I/Fを選択し、この選択した通信I/Fを使用してデータ送信するようにする。これにより、トラップ通知先アドレスなどをSNMPで設定された場合は、その時使用された通信I/Fを使用することにより、トラップ情報を確実に送信することができる。
図35は、ネットワークシステム2のサーバ装置500のハードウェア構成を示している。
サーバ500は、図35に示すように、CPU(中央演算処理装置)501、記憶装置502、ROM(読み出し専用メモリ)503、RAM(随時書き込み読み出しメモリ)504、操作パネル505、画像出力装置506および通信装置506を備えている。
記憶装置502には、(a)上述したアクセスI/Fテーブルの作成処理の処理手順(図32参照)に対応するプログラム、(b)上述したデータ送信処理の処理手順(図33参照)に対応するプログラムを含むデータ処理プログラム102A、アプリケーションプログラム(情報管理アプリケーション)、通信プロトコルを実行するためのプログラム、図29に示した通信プロトコル処理部520、関連付け設定部530、ジョブ処理部550、およびステータス・パラメータ処理部560の各機能のそれぞれに対応するプログラム、など所定のプログラムが格納されている。
さらに、記憶装置502は、記憶装置540(図29参照)の機能を有しており、例えばアクセスI/Fテーブル541、上書き優先順位テーブル542などを記憶している。
なお、データ処理プログラム502Aは、少なくとも次の(1)および(2)の処理過程を含んでいる。
(1)サーバ装置にかかわる複数の通信インタフェースの中の送信元のクライント装置から送信されたデータを受信した通信インタフェースを示す識別情報と、当該送信元のクライアント装置を示す識別情報とを対応付けて記憶する記憶処理過程。
(2)送信先のクライアント装置へ送信データを送信するときは、当該送信先のクライアント装置を示す識別情報と上記記憶処理過程により記憶されている記憶内容とを基に使用すべき通信インタフェースを特定し、この特定した通信インタフェースに対し前記送信データを送信させる制御を行う送信制御処理過程。
ROM503には、画像形成処理を実施するのに必要なパラメータやデータなどが記憶されている。
RAM504は、記憶装置502から読み込まれたデータ処理プログラム502Aを含む所定のプログラム、ROM503から読み込まれたパラメータやデータを記憶する。また、RAM504は、通信装置507を介して送受信されるデータ(受信パケット、送信データなど)など、各種のデータを記憶する。
操作パネル505はユーザインタフェースとして動作し、画像出力装置506は印刷データに基づき画像形成処理(印刷処理)を実施し、印刷処理した結果(印刷物)を出力する。
通信装置507は、I/F部510(図29参照)に対応するものであり、複数の通信インタフェース(通信I/F)507−1,507−2,・・・,507−2を有している。これらの通信I/Fは、例えば有線LANインタフェースや、無線LANインタフェースである。
CPU101は、記憶装置502からRAM504へデータ処理プログラム502Aを読み込んで実行することによりデータ処理を遂行するとともに、図29に示した通信プロトコル処理部520、関連付け設定部530、ジョブ処理部550、およびステータス・パラメータ処理部560の各機能を実現する。
本願明細書において、クライアント装置(図27参照)あるいはサーバ装置(図35参照)の各機能を実現し、上記データ処理プログラム102Aあるいは上記データ処理プログラム502Aなど所定のプログラムを記録媒体としての記憶措置に記録する実施形態として説明したが、当該所定のプログラムを次のようにして提供することも可能である。
すなわち、上記所定のプログラムをROMに格納しておき、CPUが、このプログラムをこのROMから主記憶装置へローディングして実行するようにしても良い。
また、上記所定のプログラムを、DVD−ROM、CD−ROM、MO(光磁気ディスク)、フレキシブルディスク、などのコンピュータ読み取り可能な記録媒体に格納して配布するようにしても良い。この場合、その記録媒体に記録されたプログラムをクライアント装置あるいはサーバ装置がインストールした後、このプログラムをCPUが実行するようにする。このプログラムのインストール先としては、RAM等のメモリやハードディスクなどの記憶装置がある。そして、クライアント装置あるいはサーバ装置は、必要に応じてこの記憶装置に記憶したプログラムを主記憶装置にローディングして実行する。
さらには、クライアント装置あるいはサーバ装置を通信回線(例えばインターネット)を介してファイルサーバ装置やホストコンピュータ等のコンピュータと接続するようにし、当該クライアント装置あるいはサーバ装置が、ファイルサーバ装置やコンピュータから上記所定のプログラムをダウンロードした後、このプログラムを実行するようにしても良い。この場合、このプログラムのダウンロード先としては、RAM等のメモリやハードディスクなどの記憶装置(記録媒体)がある。そして、当該ライアント装置あるいはサーバ装置が、必要に応じてこの記憶装置に記憶された上記プログラムを主記憶装置にローディングして実行するようにする。