(57)【特許請求の範囲】
【請求項１】
ネットワーク上に存在する印刷仲介サーバコンピュータを含む他の情報処理装置と通信を行う情報処理装置であって、
前記印刷仲介サーバコンピュータに当該情報処理装置側で行われた所定の印刷処理に関連した処理を行わせるための要求を、予め定めたメソッドとして送信する送信部と、
該送信時に生じ得る通信の切断や当該情報処理装置側の処理プログラムのハングアップなどの通信の支障が解消されたときに前記印刷仲介サーバコンピュータに送信すべき復旧情報を生成する生成部と、
前記支障が解消されたときに、前記復旧情報を自動的に前記印刷仲介サーバコンピュータに送信する復旧情報送信部と、
を備え、
更に、前記生成部は、前記メソッドの種類と前記通信の支障が発生し得るタイミングに関連付けて、前記生成した復旧情報を保存する複数のタイミングを予め記憶しており、前記通信の支障が生じる際には、前記予め記憶した複数のタイミングのうち、前記メソッドの種類と前記通信の支障が発生したタイミングとに基づいて選択されたタイミングで、前記復旧情報を保存する処理を行なう情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、更に、
前記印刷仲介サーバコンピュータから前記メソッドとして送信された要求に対する応答を受信する受信部を備え、
前記生成部は、前記受信時に生じ得る前記通信の支障が解消されたときに前記印刷仲介サーバコンピュータに送信すべき復旧情報であって、前記メソッドの送信のタイミングに関連づけて予め定めたタイミングで保存される復旧情報を生成する、
情報処理装置。
【請求項３】
請求項１記載の情報処理装置であって、更に、
前記送信時に前記通信の支障が生じたか否かを判断する判断部を備え、
前記生成部において前記復旧情報を保存するとして予め記憶された複数の前記タイミングの一つは、前記判断部によって前記支障が生じたと判断された場合である、
情報処理装置。
【請求項４】
請求項２記載の情報処理装置であって、更に、
前記受信時に通信の支障が生じたか否かを判断する判断部を備え、
前記生成部において前記復旧情報を保存するとして予め記憶された複数の前記タイミングの一つは、前記判断部によって前記支障が生じたと判断された場合である、
情報処理装置。
【請求項５】
請求項１記載の情報処理装置であって、
前記生成部において前記復旧情報を保存するとして予め記憶された複数の前記タイミングの一つは、前記支障が生じる前であり、前記生成部は、前記通信が正常に完了したときに前記復旧情報を削除する、
情報処理装置。
【請求項６】
請求項５記載の情報処理装置であって、
前記生成部において当該情報処理装置側で前記所定の処理が正常に終了したことを示す前記復旧情報を保存するとして予め記憶された複数の前記タイミングの一つは、前記処理が行われた後である、
情報処理装置。
【請求項７】
請求項５記載の情報処理装置であって、
前記生成部において当該情報処理装置側で前記所定の処理が異常終了したことを示す前記復旧情報を保存するとして予め記憶された複数の前記タイミングの一つは、前記処理が行われる前である、
情報処理装置。
【請求項８】
請求項１記載の情報処理装置であって、
前記復旧情報送信部は、前記復旧情報の送信が完了したときに前記復旧情報を削除する、
情報処理装置。
【請求項９】
請求項１記載の情報処理装置であって、
前記印刷仲介サーバコンピュータは、前記ネットワーク上に存在し、当該情報処理装置の管理下にある印刷装置を、当該情報処理装置からの登録要求に応じて登録し、前記印刷装置によって印刷すべき所定の印刷ジョブを、当該情報処理装置からの前記印刷ジョブの送信要求である所定のメソッドに応じて当該情報処理装置に送信する手段を備え、
前記メソッドの一つは、前記印刷装置の登録の解除の通知を行うメソッドである、
情報処理装置。
【請求項１０】
請求項９記載の情報処理装置であって、
前記印刷仲介サーバコンピュータは、更に、前記印刷装置の能力に関する能力情報を登録する手段を備え、
前記メソッドの一つは、前記能力情報の通知を行うメソッドである、
情報処理装置。
【請求項１１】
請求項９記載の情報処理装置であって、
前記印刷仲介サーバコンピュータは、更に、前記印刷ジョブが複数存在する場合に、１の前記印刷ジョブを当該情報処理装置に送信した後、該情報処理装置から当該印刷ジョブの処理の完了の通知であるメソッドを受信した後に、当該情報処理装置に他の前記印刷ジョブを送信するよう構成され、
前記メソッドの一つは、前記印刷ジョブの処理の完了の通知を行うメソッドである、
情報処理装置。
【請求項１２】
ネットワーク上に存在する印刷仲介サーバコンピュータを含む印刷仲介サーバコンピュータと通信を行う情報処理装置を制御する制御方法であって、
（ａ）前記印刷仲介サーバコンピュータに当該情報処理装置側で行われた所定の印刷処理に関連した処理を行わせるための要求を、当該情報処理装置が、予め定めたメソッドとして送信する工程と、
（ｂ）該送信時に生じ得る通信の切断や当該情報処理装置側の処理プログラムのハングアップなどの通信の支障が解消されたときに前記印刷仲介サーバコンピュータに送信すべき復旧情報を、前記情報処理装置が生成する工程と、
（ｘ）前記メソッドの種類と前記通信の支障が発生し得るタイミングに関連付けて、前記生成した復旧情報を保存する複数のタイミングを予め記憶しておく工程と、
（ｙ）前記通信の支障が生じる際には、前記予め記憶した複数のタイミングのうち、前記メソッドの種類と前記通信の支障が発生したタイミングとに基づいて選択されたタイミングで、前記復旧情報を保存する処理を行なう工程と、
（ｃ）前記支障が解消されたときに、前記復旧情報を自動的に前記印刷仲介サーバコンピュータに送信する工程と、
を備える制御方法。
【請求項１３】
ネットワーク上に存在する印刷仲介サーバコンピュータを含む他の情報処理装置と通信を行う情報処理装置を制御するためのコンピュータプログラムであって、
前記印刷仲介サーバコンピュータに当該情報処理装置側で行われた所定の印刷処理に関連した処理を行わせるための要求を、予め定めたメソッドとして送信する機能と、
該送信時に生じ得る通信の切断や当該情報処理装置側の処理プログラムのハングアップなどの通信の支障が解消されたときに前記印刷仲介サーバコンピュータに送信すべき復旧情報を生成する機能と、
前記メソッドの種類と前記通信の支障が発生し得るタイミングに関連付けて、前記生成した復旧情報を保存する複数のタイミングを予め記憶しておく機能と、
前記通信の支障が生じる際には、前記予め記憶した複数のタイミングのうち、前記メソッドの種類と前記通信の支障が発生したタイミングとに基づいて選択されたタイミングで、前記復旧情報を保存する処理を行なう機能と、
前記支障が解消されたときに、前記復旧情報を自動的に前記印刷仲介サーバコンピュータに送信する機能と、
をコンピュータに実現させるためのコンピュータプログラム。
【請求項１４】
請求項１３記載のコンピュータプログラムをコンピュータ読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上における情報処理装置の通信制御に関する。
【０００２】
【従来の技術】
従来、サーバとクライアントとの間で通信を行うことによって、一連の処理を実現するシステムがある。例えば、インターネットに接続されたサーバとクライアントとプリンタとの間で通信を行い、印刷を実行する印刷システムがある。
【０００３】
このような印刷システムでは、印刷を実行するために、サーバとクライアントとで種々の情報を管理する。例えば、サーバは、印刷システムで利用できるプリンタのアドレスや、その能力情報等を、登録管理する。この登録内容は、クライアントからの要求に応じて設定変更可能である。また、サーバは、登録されたプリンタごとに印刷ジョブを受け付け、保持するとともに、クライアントからの要求に応じて印刷ジョブを送信する。クライアントは、サーバから送信された印刷ジョブをプリンタによって印刷する。サーバは、また、クライアント側での印刷ジョブのステータスを管理し、クライアントから印刷完了の通知を受けた後、印刷ジョブを削除する。
【０００４】
【発明が解決しようとする課題】
上記印刷システムを円滑に動作させるためには、登録されたプリンタについて、クライアント側での管理情報と、サーバ側での管理情報とが一致していることが望まれる。上述した各種の処理の途中に、サーバとクライアントとの間の通信に支障が生じた場合には、両者間で要求および応答のやり取りに支障が生じ、処理が正常に完了しないという不具合が生じ得た。
【０００５】
例えば、プリンタの登録内容の変更処理を行う過程で、通信に支障が生じた場合には、クライアント側で管理情報の変更を行ったにも関わらず、サーバ側の管理情報が変更されない可能性があった。この結果、通信が復旧しても、上記印刷システムの不適切な動作を招くおそれがあった。また、印刷処理を行う過程で、通信に支障が生じた場合には、クライアント側で印刷処理が完了したにも関わらず、サーバは処理が完了していないものと判断する可能性があった。この結果、通信が復旧しても、サーバが印刷完了の通知を待ち続ける可能性があった。
【０００６】
このような通信の支障に起因する課題は、上述した印刷システムに限らず、ネットワーク上に存在するサーバとクライアントとが通信によって一連の処理を行うシステムにおいて同様に生じ得る。
【０００７】
本発明は、上述の課題を解決するためになされたものであり、ネットワーク上に存在するサーバとクライアントとの通信に支障が生じた場合の管理情報の不整合を回避することを目的とする。
【０００８】
【課題を解決するための手段およびその作用・効果】
上述課題の少なくとも一部を解決するため、本発明では、以下の構成を採用した。
本発明の情報処理装置は、
ネットワーク上に存在する印刷仲介サーバコンピュータを含む他の情報処理装置と通信を行う情報処理装置であって、
前記印刷仲介サーバコンピュータに当該情報処理装置側で行われた所定の印刷処理に関連した処理を行わせるための要求を、予め定めたメソッドとして送信する送信部と、
該送信時に生じ得る通信の切断や当該情報処理装置側の処理プログラムのハングアップなどの通信の支障が解消されたときに前記印刷仲介サーバコンピュータに送信すべき復旧情報を生成する生成部と、
前記支障が解消されたときに、前記復旧情報を自動的に前記印刷仲介サーバコンピュータに送信する復旧情報送信部と、
を備え、
更に、前記生成部は、前記メソッドの種類と前記通信の支障が発生し得るタイミングに関連付けて、前記生成した復旧情報を保存する複数のタイミングを予め記憶しており、前記通信の支障が生じる際には、前記予め記憶した複数のタイミングのうち、前記メソッドの種類と前記通信の支障が発生したタイミングとに基づいて選択されたタイミングで、前記復旧情報を保存する処理を行なうこと
を要旨とする。
【０００９】
復旧情報としては、例えば、通信の支障のために未送信である要求が挙げられる。こうすることによって、他の情報処理装置への要求の送信時に通信の支障が生じても、当該情報処理装置の再起動などによって通信の支障が解消されたときに、復旧情報を他の情報処理装置に自動的に送信することができる。この結果、他の情報処理装置と当該情報処理装置との管理情報の不整合を回避することができる。
【００１０】
本発明の情報処理装置において、更に、
前記他の情報処理装置から前記要求に対する応答を受信する受信部を備え、
前記生成部は、前記受信時に生じた通信の支障が解消されたときに前記他の情報処理装置に送信すべき復旧情報を生成するようにしてもよい。
【００１１】
他の情報処理装置と当該情報処理装置との通信において、当該情報処理装置が他の情報処理装置に対して要求を送信し、他の情報処理装置からその要求に対する応答を受信することによって一連の処理が完了する場合がある。この場合、当該情報処理装置が他の情報処理装置から応答を受信する前に通信に支障が生じると、当該情報処理装置は、他の情報処理装置側で要求を正常に受信したか否かが不明になる。本発明の情報処理装置は、応答の受信時に通信の支障が生じた場合に、他の情報処理装置に復旧情報を送信することによって、他の情報処理装置が当該情報処理装置からの要求を正常に受信したか否かを確認できるので、両者の管理情報の不整合を回避することができる。
【００１２】
本発明の情報処理装置において、更に、
前記送信時に通信の支障が生じたか否かを判断する判断部を備え、
前記生成部は、前記判断部によって前記支障が生じたと判断された場合に、前記復旧情報を生成するようにしてもよい。
【００１３】
こうすることによって、要求の送信時に通信の支障が生じたときに、判断部の判断によって自動的に復旧情報を生成することができる。
【００１４】
上記受信部を備える情報処理装置において、更に、
前記受信時に通信の支障が生じたか否かを判断する判断部を備え、
前記生成部は、前記判断部によって前記支障が生じたと判断された場合に、前記復旧情報を生成するようにしてもよい。
【００１５】
こうすることによって、応答の受信時に通信の支障が生じたときに、判断部の判断によって自動的に復旧情報を生成することができる。
【００１６】
本発明の情報処理装置において、
前記生成部は、送信すべき復旧情報が予め明らかな場合には、前記支障が生じる前に前記復旧情報を生成し、前記通信が正常に完了したときに前記復旧情報を削除するようにしてもよい。
【００１７】
通信に支障が生じる前に復旧情報を生成することによって、通信時に当該情報処理装置がハングアップしても、再起動時に復旧情報を送信することができる。また、当該情報処理装置がハングアップせずに要求の送信が完了したときには、復旧情報を削除するので、処理の完了後に処理済みの要求を送信することを回避することもできる。
【００１８】
上記情報処理装置において、
前記生成部は、当該情報処理装置側で前記所定の処理が行われた後に、該処理が正常に終了したことを示す前記復旧情報を生成するようにしてもよい。
【００１９】
こうすることによって、当該情報処理装置側で所定の処理が行われた後で通信の支障が生じた場合に、他の情報処理装置に復旧情報を送信することができる。
【００２０】
また、前記生成部は、当該情報処理装置側で前記所定の処理が行われる前に、該処理が異常終了したことを示す前記復旧情報を生成するようにしてもよい。
【００２１】
他の情報処理装置は、当該情報処理装置側での処理の状況、例えば、処理の完了の通知を受信した後に当該情報処理装置に応答を送信する場合がある。この場合、当該情報処理装置での処理中に通信の支障が生じても、他の情報処理装置は、当該情報処理装置からの通知を待ち続けることになる。当該情報処理装置は、処理を行う前に、例えば、「エラー終了」の通知を行う復旧情報を生成しておくことによって、処理中に通信に支障が生じたときに復旧情報の送信を行うことができる。
【００２２】
本発明の情報処理装置において、
前記復旧情報送信部は、前記復旧情報の送信が完了したときに前記復旧情報を削除するようにすることが好ましい。
【００２３】
こうすることによって、復旧情報を繰り返し送信することを回避することができる。また、メモリ内の復旧情報の増加を防止し、メモリの消費を抑制することができる。
【００２４】
本発明の情報処理装置において、
前記他の情報処理装置は、前記ネットワーク上に存在し、当該情報処理装置の管理下にある印刷装置を、当該情報処理装置からの登録要求に応じて登録し、前記印刷装置によって印刷すべき所定の印刷ジョブを、当該情報処理装置からの前記印刷ジョブの送信要求に応じて当該情報処理装置に送信する情報処理装置であり、
前記要求は、前記印刷装置の登録の解除の通知を含むようにすることが好ましい。
【００２５】
先に説明したように、他の情報処理装置と当該情報処理装置との通信によって印刷を実行する印刷システムでは、両者間で登録管理されている印刷装置が整合していることが望まれる。当該情報処理装置側での印刷装置の登録が解除されたにも関わらず、他の情報処理装置側での登録が解除されない場合には、他の情報処理装置は、解除されているはずの印刷装置用の印刷ジョブを受け付けてしまうという不具合が発生する。本発明の情報処理装置が他の情報処理装置に送信する要求は、印刷装置の登録の解除の通知を含むので、印刷装置の登録の解除の通知を復旧情報として送信することができる。この結果、他の情報処理装置と当該情報処理装置とで管理されている印刷装置の不整合を回避することができる。
【００２６】
上記情報処理装置において、
前記他の情報処理装置は、更に、前記印刷装置の能力に関する能力情報を登録可能な他の情報処理装置であり、
前記要求は、前記能力情報の通知を含むようにするようにすることが好ましい。
【００２７】
先に説明した印刷システムでは、他の情報処理装置が登録されている印刷装置の能力情報（例えば、カラー印刷が可能か否か）に応じた印刷ジョブを当該情報処理装置に送信する場合がある。本発明では、このような場合に、印刷装置の能力情報を復旧情報として送信することができる。この結果、印刷装置の能力情報の不整合を回避することができる。
【００２８】
上記情報処理装置において、
前記他の情報処理装置は、更に、前記印刷ジョブが複数存在する場合に、１の前記印刷ジョブを当該情報処理装置に送信した後、当該情報処理装置から当該印刷ジョブの処理の完了の通知を受信した後に、当該情報処理装置に他の前記印刷ジョブを送信する情報処理装置であり、
前記要求は、前記印刷ジョブの処理の完了の通知を含むようにすることが好ましい。
【００２９】
こうすることによって、当該情報処理装置側で印刷ジョブの処理が完了した後に通信の支障が生じ、通知を送信できなかった場合でも、印刷ジョブの処理の完了の通知を復旧情報として自動的に送信することができる。この結果、他の情報処理装置は、印刷ジョブの処理の完了の通知を受信し、次の処理を続行することができる。
【００３０】
本発明は、上述の情報処理装置としての構成の他、情報処理装置の制御方法の発明として構成することもできる。また、これらを実現するコンピュータプログラム、およびそのプログラムを記録した記録媒体、そのプログラムを含み搬送波内に具現化されたデータ信号など種々の態様で実現することが可能である。なお、それぞれの態様において、先に示した種々の付加的要素を適用することが可能である。
【００３１】
本発明をコンピュータプログラムまたはそのプログラムを記録した記録媒体等として構成する場合には、情報処理装置を駆動するプログラム全体として構成するものとしてもよいし、本発明の機能を果たす部分のみを構成するものとしてもよい。また、記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置などコンピュータが読み取り可能な種々の媒体を利用できる。
【００３２】
【発明の実施の形態】
以下、本発明の実施の形態について、実施例に基づき以下の順で説明する。
Ａ．印刷システムの構成：
Ｂ．印刷仲介サーバ：
Ｃ．エージェント：
Ｄ．エージェントにおける処理：
Ｅ．登録プリンタ解除処理：
Ｆ．プリンタ能力情報変更処理：
Ｇ．エージェント終了処理：
Ｈ．エージェント起動処理：
Ｉ．未送信メソッドのＩＮＩファイルへの保存タイミング：
Ｊ．印刷処理：
Ｋ．変形例：
【００３３】
Ａ．印刷システムの構成：
図１は、本発明の情報処理装置を適用した一実施例としての印刷システム１０００の概略構成を示す説明図である。印刷システム１０００は、印刷仲介サーバコンピュータ（以下、単に「印刷仲介サーバ」という）１００と、コンテンツ・プロバイダＣＰと、インターネットに接続可能な携帯電話ＭＢと、２台のプリンタＰＲＴ１，ＰＲＴ２とローカル接続されたパーソナルコンピュータＰＣとから構成されている。携帯電話ＭＢの代わりに、汎用のパーソナルコンピュータや、ＰＤＡなど、通信装置を備えた情報端末を用いるものとしてもよい。パーソナルコンピュータＰＣは、インターネット・サービス・プロバイダＩＳＰおよびインターネットＩＮＴを介して、印刷仲介サーバ１００、コンテンツ・プロバイダＣＰ、携帯電話ＭＢと接続されている。パーソナルコンピュータＰＣは、印刷仲介サーバ１００との通信により、プリンタごとに所定の印刷ジョブを受信し、印刷処理を実行する。
【００３４】
印刷仲介サーバ１００は、プリンタＰＲＴ１，ＰＲＴ２のアドレスおよびＩＤや、その能力情報などを登録管理している。プリンタの能力情報には、レーザプリンタ、インクジェットプリンタ等プリンタの種別や、カラー印刷が可能か否かなどの情報が含まれる。印刷仲介サーバ１００は、また、携帯電話ＭＢから指定された印刷ジョブを、出力すべきプリンタごとに受け付け、管理する。印刷仲介サーバ１００は、本発明の「他の情報処理装置」に相当する。
【００３５】
コンテンツ・プロバイダＣＰは、メールサーバや、コンテンツサーバを備えており、電子メール文書や、ＨＴＭＬ等で作成された文書、画像などのコンテンツを配信する。
【００３６】
携帯電話ＭＢは、ブラウザを備えており、コンテンツ・プロバイダＣＰによって提供されるコンテンツを表示可能である。携帯電話ＭＢは、表示したコンテンツや、その所在を表すＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を印刷ジョブとして、出力すべきプリンタの指定とともに印刷仲介サーバ１００に転送する。
【００３７】
パーソナルコンピュータＰＣは、エージェントと呼ばれるソフトウェアを備えている。このパーソナルコンピュータＰＣは、本発明の情報処理装置に相当する。エージェントは、印刷仲介サーバ１００との通信によって、印刷仲介サーバ１００へのプリンタの登録・解除・変更や、印刷ジョブのダウンロード、印刷処理などを行うための各種モジュールを備えたソフトウェアである。エージェントの詳細については後述する。
【００３８】
Ｂ．印刷仲介サーバ：
図２は、印刷仲介サーバ１００の概略構成を示す説明図である。印刷仲介サーバ１００は、主制御部１０と、通信制御部２０と、ＵＩ提供部３０と、ユーザ管理部４０と、印刷ジョブ管理部５０と、ＰＤＦ変換部６０と、モジュール管理部７０とを備えている。これらの各機能ブロックは、ソフトウェア的に構成されている。これらの各機能ブロックは、ハードウェア的に構成することも可能である。また、本実施例では、説明の便宜上、単体のサーバ内に各機能ブロックが構成されている状態を例示したが、複数のサーバを用いた分散処理システムとして構成することも可能である。
【００３９】
主制御部１０は、印刷仲介サーバ１００内の各機能ブロックの動作制御を行う。
【００４０】
通信制御部２０は、受信部２２と、送信部２４とを備えており、他のサーバや、クライアントとしてのパーソナルコンピュータＰＣ（エージェント）との通信の制御を行う。
【００４１】
ＵＩ提供部３０は、携帯電話ＭＢや、エージェントからの要求に従い、ＨＴＭＬによるユーザインタフェースを提供する。ＵＩ提供部３０は、例えば、携帯電話ＭＢには、印刷ジョブや、プリンタの指定を行うためのユーザインタフェースを提供し、エージェントには、ユーザ登録などを行うためのユーザインタフェースを提供する。
【００４２】
ユーザ管理部４０は、ユーザＩＤおよびパスワードや、印刷システム１０００で利用されるプリンタＩＤの管理を行う。ユーザ管理部４０は、エージェントからのプリンタの登録、解除等の要求があった場合には、設定の変更を行う。
【００４３】
印刷ジョブ管理部５０は、携帯電話ＭＢから指定された印刷ジョブを、ユーザ管理部４０で管理されているプリンタごとに管理する。
【００４４】
ＰＤＦ変換部６０は、エージェントから印刷ジョブの転送要求があった場合に、印刷ジョブをＰＤＦファイルに変換する。ＰＤＦ変換部６０は、印刷ジョブ管理部５０で管理されている印刷ジョブが単にコンテンツの所在を表すＵＲＬである場合には、そのＵＲＬ先のコンテンツサーバからＨＴＭＬ文書や画像を取得してＰＤＦファイルに変換する。本実施例では、印刷仲介サーバ１００は、印刷ジョブをＰＤＦファイルでエージェントに配信する。
【００４５】
モジュール管理部７０は、エージェントが備えるべき最新の各種モジュールを管理しており、エージェントからの要求に応じて、最新のモジュールを提供する。
【００４６】
Ｃ．エージェント：
図３は、エージェント２００の内部構成を示す説明図である。エージェント２００は、エージェント管理モジュール２１０と、通信実装モジュール２２０と、エージェントブラウザモジュール２３０と、プリンタ管理ＤＬＬ２４０と、印刷処理モジュール２４２と、プリンタ設定ＤＬＬ２４４と、プリンタ登録モジュール２４６と、プリンタ管理拡張ＤＬＬ２４８と、モジュール管理ＤＬＬ２５０と、バージョンアップ処理モジュール２５２と、エージェント起動ランチャモジュール２６０と、エージェント設定モジュール２７０とを備えている。これらの各機能ブロックは、ソフトウェア的に構成されている。これらの各機能ブロックは、ハードウェア的に構成することも可能である。
【００４７】
エージェント管理モジュール２１０は、エージェント２００内の各部を統括管理する。エージェント管理モジュール２１０は、各モジュール、ＤＬＬからの要求を通信実装モジュール２２０に転送し、印刷仲介サーバ１００から受信した戻り値を要求元の各モジュールに振り分ける。
【００４８】
通信実装モジュール２２０は、印刷仲介サーバ１００とＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）による通信（ＨＴＴＰ通信）を行うための通信手段を実現する。通信実装モジュール２２０は、エージェント管理モジュール２１０から転送された要求を格納するためのキュー（図示省略）を備えており、キューに格納された順序で要求をＨＴＴＰリクエストに変換し、印刷仲介サーバ１００へ送信する。また、送信した要求に対する印刷仲介サーバ１００からのＨＴＴＰレスポンスの受信を行う。また、エージェントブラウザモジュール２３０からＨＴＴＰ通信を行うためのゲートウェイ機能も提供する。通信実装モジュール２２０は、また、印刷仲介サーバ１００との通信が切断されたか否かの判断も行う。通信実装モジュール２２０は、本発明の送信部、受信部、判断部に相当する。
【００４９】
プリンタ管理ＤＬＬ２４０は、エージェント２００で使用するプリンタの監視、印刷の実行および印刷状況の監視を行う。即ち、プリンタ管理ＤＬＬ２４０は、プリンタ管理拡張ＤＬＬ２４８によって、プリンタＰＲＴ１，ＰＲＴ２との通信を行い、プリンタステータスやジョブステータスを取得し、その変化を監視する。また、プリンタ管理ＤＬＬ２４０は、印刷処理モジュール２４２によって、印刷処理を実行する。印刷処理モジュールは、エージェント管理モジュール２１０、プリンタ管理ＤＬＬ２４０からの指示に従い、印刷仲介サーバ１００から受信した印刷ジョブとしてのＰＤＦファイルからデータを読み込み、プリンタへ出力する。
【００５０】
プリンタ設定ＤＬＬ２４４は、エージェント２００で使用するプリンタの登録、解除、プリンタ能力情報の変更の設定を行う。これらの設定は、プリンタ登録モジュール２４６が提供するユーザインタフェースから行われる。設定された内容は、レジストリに保存され、管理される。設定の変更などがあった場合には、レジストリの内容が変更される。
【００５１】
モジュール管理ＤＬＬ２５０は、エージェント２００を構成する各モジュール、ＤＬＬのバージョンを管理し、また、各プロセスの稼動状況を監視する。バージョンアップ処理モジュール２５２は、印刷仲介サーバ１００のモジュール管理部７０から最新のモジュール、ＤＬＬをダウンロードし、インストールする。
【００５２】
エージェント起動ランチャモジュール２６０は、ユーザがエージェント２００の起動処理や終了処理を実行するための手段を提供する。
【００５３】
エージェント設定モジュール２７０は、ユーザがエージェント２００の各種設定を行うためのユーザインタフェースを提供する。本実施例では、インターネット接続（ダイヤルアップ接続するか否か、ダイヤルアップ接続の接続先）や、印刷ジョブのチェック（印刷ジョブの有無をチェックする時間間隔）、各モジュールのバージョンアップ（自動バージョンアップを行うか否か）に関する各種設定を行うことができる。
【００５４】
エージェントブラウザモジュール２３０は、印刷システム１０００で使用するプリンタのオーナー登録や、印刷仲介サーバ１００から印刷ジョブをダウンロードしたときの印刷指示などを行うためのユーザインタフェースを提供する。
【００５５】
エージェント２００と印刷仲介サーバ１００との通信および各モジュール間の通信は、後述するメソッドのやり取りによって行われる。このメソッドは、エージェント２００と印刷仲介サーバ１００との通信を、通信実装モジュール２２０で一元化し、通信プロトコルの変更に柔軟に対応するために定義されたものである。
【００５６】
図４は、本実施例で用いられるメソッドを示す説明図である。本実施例では、図示した７種類のメソッドが用意されている。以下、各メソッドを、略称を用いて呼ぶ。
【００５７】
ＲＰメソッドは、印刷システム１０００で利用するプリンタの印刷仲介サーバ１００への登録するためのメソッドである。
【００５８】
ＤＰメソッドは、印刷仲介サーバ１００に登録されているプリンタの登録を解除するためのメソッドである。
【００５９】
ＧＪメソッドは、印刷仲介サーバ１００から印刷ジョブファイルをダウンロードするためのメソッドである。
【００６０】
ＰＳメソッドは、印刷仲介サーバ１００にプリントステータスを通知するためのメソッドである。
【００６１】
ＪＳメソッドは、印刷仲介サーバ１００にジョブステータスを通知するためのメソッドである。
【００６２】
ＰＣメソッドは、印刷仲介サーバ１００にプリンタ能力情報を通知するためのメソッドである。ＰＣメソッドは、プリンタ能力情報の変更時に用いられる。
【００６３】
ＮＪメソッドは、印刷仲介サーバ１００に新たな印刷ジョブがあるか否かを問い合わせるためのメソッドである。
【００６４】
Ｄ．エージェントにおける処理：
図５は、エージェント２００の起動から終了までの処理の流れを示すフローチャートである。まず、エージェント２００の起動処理を行う（ステップＳ１００）。エージェント２００の起動処理では、先に説明した各モジュールの起動および初期化を行う。そして、プリンタ状態監視処理（ステップＳ２００ａ）、モジュール稼動状態監視処理（ステップＳ２００ｂ）、バージョンアップ処理（ステップＳ２００ｃ）、プリンタ登録・解除・変更処理（ステップＳ２００ｄ）、印刷処理（ステップＳ２００ｅ）、エラー処理（ステップＳ２００ｆ）を適宜行いつつ、通信処理を実行する（ステップＳ２００）。各処理が終了すると、エージェント２００の終了処理を行う（ステップＳ３００）。
【００６５】
先に説明したように、通信処理において、通信の切断や、エージェント２００のハングアップなど、通信に支障が生じた場合、処理の種類によっては印刷システム１０００が円滑に動作しなくなる場合がある。ここでは、処理の完了前に通信に支障が生じた場合に不適切な動作を招く可能性が高い「登録プリンタの解除処理」、「プリンタ能力情報変更処理」に着目して説明する。
【００６６】
Ｅ．登録プリンタ解除処理：
図６は、印刷仲介サーバ１００に登録されているプリンタを解除する処理の流れを示すフローチャートである。図６には、通信の支障が生じることなく、正常に処理が行われる場合のフローチャートを示した。まず、プリンタ登録モジュール２４６を用い、レジストリから所望のプリンタのプリンタＩＤおよびプリンタ能力情報を削除する（ステップＳ２１０）。そして、通信実装モジュール２２０から印刷仲介サーバ１００へ、登録プリンタの解除を行うためのＤＰメソッドを送信する（ステップＳ２１２）。通信実装モジュール２２０が印刷仲介サーバ１００から“ＯＫ”の戻り値を有するＤＰメソッドを受信すると（ステップＳ２１４）、登録プリンタ解除処理を終了する。ステップＳ２１２またはステップＳ２１４の通信時に支障が生じた場合には、ＤＰメソッドは、通信実装モジュール２２０のキューに残ったままとなる。
【００６７】
Ｆ．プリンタ能力情報変更処理：
図７は、印刷仲介サーバ１００に登録されているプリンタの能力情報を変更する処理の流れを示すフローチャートである。図７には、正常に処理が行われる場合のフローチャートを示した。まず、プリンタ登録モジュール２４６を用い、レジストリのプリンタ能力情報を変更する（ステップＳ２２０）。そして、通信実装モジュール２２０から印刷仲介サーバ１００へ変更後の内容を通知するためのＰＣメソッドを送信する（ステップＳ２２２）。通信実装モジュール２２０が印刷仲介サーバ１００から“ＯＫ”の戻り値を有するＰＣメソッドを受信すると（ステップＳ２２４）、プリンタ能力情報変更処理を終了する。ステップＳ２２２またはステップＳ２２４の通信時に支障が生じた場合には、ＰＣメソッドは、通信実装モジュール２２０のキューに残ったままとなる。
【００６８】
本実施例では、上述した登録プリンタ解除処理およびプリンタ能力情報変更処理の際に通信の支障が生じた場合に備えて、以下に説明するエージェント終了処理およびエージェント起動（再起動）処理を行う。
【００６９】
Ｇ．エージェント終了処理：
図８は、エージェント２００の終了処理の流れを示すフローチャートである。ユーザがエージェント起動ランチャモジュール２６０から「エージェント終了」を実行すると、まず、通信実装モジュール２２０のキュー内に未送信のメソッドがあるか否かを判断する（ステップＳ３０２）。キュー内に未送信のメソッドがなければ、各モジュールを終了し、エージェント終了処理を終了する。
【００７０】
キュー内に未送信のメソッドがあれば、通信実装モジュール２２０は、そのメソッドを印刷仲介サーバ１００に送信する（ステップＳ３０４）。そして、通信実装モジュール２２０が送信したメソッドに対する印刷仲介サーバ１００からの応答を受信したか否かを判断する（ステップＳ３０６）。通信実装モジュール２２０が応答を受信した場合は、印刷仲介サーバ１００での処理が完了したものと判断して、各モジュールを終了し、エージェント終了処理を終了する。通信実装モジュール２２０が応答を受信できなかった場合は、通信の支障が生じたと判断して、その内容を未送信メソッドとしてＩＮＩファイルに保存して（ステップＳ３０８）、各モジュールを終了する。そして、エージェント終了処理を終了する。
【００７１】
なお、本実施例では、ＩＮＩファイルに保存する未送信メソッドは、先述したＤＰメソッド、ＰＣメソッドおよび後述するＪＳメソッドとした。他のメソッドについては、エージェント２００と印刷仲介サーバ１００との間で同期をとる必然性が低いので、保存しないものとした。
【００７２】
Ｈ．エージェント起動処理：
図９は、エージェント２００の起動（再起動）処理の流れを示すフローチャートである。ユーザがエージェント起動ランチャモジュール２６０から「エージェント起動」を実行すると、まず、各モジュールを起動する（ステップＳ１０１）。そして、ＩＮＩファイルに未送信メソッドが保存されているか否かを判断する（ステップＳ１０２）。未送信メソッドが保存されていなければ、起動処理を終了する。
【００７３】
ＩＮＩファイルに未送信メソッドが保存されていれば、未送信メソッドを読み出し（ステップＳ１０３）、通信実装モジュール２２０から印刷仲介サーバ１００に送信する（ステップＳ１０４）。そして、通信実装モジュール２２０が送信したメソッドに対する印刷仲介サーバからの応答を受信した後（ステップＳ１０５）。ＩＮＩファイルの未送信メソッドに関する記述を削除し（ステップＳ１０６）、エージェント起動処理を終了する。
【００７４】
こうすることによって、メソッドを通信実装モジュール２２０のキューに格納した後に通信の支障が生じても、エージェント２００の終了時にＩＮＩファイルに未送信メソッドが保存されるので、エージェント２００の再起動時には、ＩＮＩファイルから未送信メソッドを読み出し、送信することができる。従って、エージェント２００と印刷仲介サーバ１００でのプリンタに関する管理情報の不整合を回避することができる。なお、ＩＮＩファイルに保存された未送信メソッドの内容は、本発明の復旧情報に相当する。また、通信実装モジュール２２０は、本発明の生成部、復旧情報送信部にも相当する。
【００７５】
Ｉ．未送信メソッドのＩＮＩファイルへの保存タイミング：
本実施例において、通信実装モジュール２２０がＩＮＩファイルに未送信メソッドを保存する適切なタイミングは、通信の支障の態様や、支障の発生タイミングや、メソッドの種類によって異なる。
【００７６】
通信の支障の態様としては、
（１）通信の切断と、
（２）エージェント２００のハングアップと、
の２通りがある。
【００７７】
そして、これら支障の発生タイミングとしては、
（ａ）メソッドの送信前、更には、
（ａ１）エージェント２００での処理前と、
（ａ２）エージェント２００での処理後と、
（ｂ）メソッドの送信後（応答受信前）と、
の３通りがある。
【００７８】
図１０は、通信の支障の態様、その発生タイミング、メソッドの種類に応じたＩＮＩファイルへの未送信メソッドの保存タイミングを示す説明図である。
【００７９】
先に説明したＤＰメソッド、ＰＣメソッドについての保存タイミングは、（１）と、（ａ２）または（ｂ）との組み合わせの場合に対応している。（１）の場合には、エージェント２００はハングアップしていないので、通信の支障が発生した後でメソッドをＩＮＩファイルへ保存すれば足りる。通信の支障が生じる前（メソッドをキューに格納後）にメソッドをＩＮＩファイルに保存するようにしてもよい。なお、ＤＰメソッド、ＰＣメソッドは、エージェント２００での処理が終了した後でなければ、その内容を確定できないメソッドであるから、（１）と（ａ１）の組み合わせの場合には、メソッドをＩＮＩファイルに保存することができない。（２）に対処するためには、支障の発生後は、エージェント２００が動作しないので、メソッドをキューに格納後すぐにＩＮＩファイルに保存することが好ましい。
【００８０】
エージェント２００と印刷仲介サーバ１００との間での通信に支障が生じた場合に、両者間で同期をとる必然性が高いメソッドとしては、上述したＤＰメソッド、ＰＣメソッドの他にＪＳメソッドがある。本実施例の印刷システム１０００では、印刷仲介サーバ１００は、エージェント２００から、「印刷完了」や、「エラー終了」等、処理の終了を示すジョブステータスの通知を待って、次の処理を行うからである。ＪＳメソッドの通信時に支障が生じた場合には、印刷仲介サーバ１００は、エージェント２００からのジョブステータスの通知を待ち続けてしまう。
【００８１】
ＪＳメソッドは、ジョブステータスを通知するためのメソッドであり、その内容が処理の経過とともに変化するものである。従って、ＪＳメソッドは、印刷が完了する前であってもＩＮＩファイルに保存することが可能である。この場合、プリンタ管理ＤＬＬ２４０が監視するジョブステータスに応じて、ＩＮＩファイルに保存するメソッドの内容を随時更新することも可能ではあるが、本実施例では、上記（２）に対処するために、印刷を実行する前に、予め「エラー終了」を通知するためのＪＳメソッドをＩＮＩファイルに保存することとした。ただし、「エラー終了」のＪＳメソッドをＩＮＩファイルに保存後、印刷の実行が完了した場合には、通信の支障が生じた後で、「印刷完了」を通知するためのＪＳメソッドをＩＮＩファイルに保存することとした。
【００８２】
Ｊ．印刷処理：
図１１は、印刷処理の流れを示すフローチャートである。まず、通信実装モジュール２２０から印刷仲介サーバ１００へ、印刷ジョブの有無を問い合わせるためのＮＪメソッドを送信する（ステップＳ２３０）。通信実装モジュール２２０が印刷仲介サーバ１００から印刷ジョブありとのＮＪメソッドを受信すると（ステップＳ２３１）、「エラー終了」を通知するためのＪＳメソッドをＩＮＩファイルに保存する（ステップＳ２３２）。こうすることによって、この後、印刷処理がエラー終了した場合に、エージェント２００の再起動時に、印刷処理のエラー終了を通知するためのＪＳを印刷仲介サーバ１００に自動的に送信することができる。
【００８３】
そして、通信実装モジュール２２０から印刷仲介サーバ１００に印刷ジョブファイルをダウンロードするためのＧＪメソッドを送信して（ステップＳ２３３）、印刷ジョブファイル（ＰＤＦファイル）を受信する（ステップＳ２３４）。そして、印刷を実行する（ステップＳ２３５）。印刷が完了すると、印刷ジョブファイルを破棄し（ステップＳ２３６）、「印刷完了」を通知するためのＪＳメソッドを送信する（ステップＳ２３７）。そして、ＩＮＩファイルに保存した「エラー終了」のＪＳメソッドを削除する（ステップＳ２３８）。「エラー終了」のＪＳメソッドは、印刷完了後に削除されるので、印刷完了後に、印刷実行前に予め保存された「エラー終了」のＪＳメソッドが送信されることはない。通信実装モジュール２２０が印刷仲介サーバ１００から“ＯＫ”の戻り値を有するＪＳメソッドを受信すると（ステップＳ２３９）、印刷処理を終了する。
【００８４】
このようにすることによって、印刷仲介サーバ１００が、エージェントからのＪＳメソッドの送信を待ち続けてしまうことを回避することができる。
【００８５】
本実施例のエージェント２００によれば、印刷仲介サーバ１００とエージェント２００との通信に支障が生じた場合に、送信すべきメソッドをＩＮＩファイルに保存し、エージェント２００の再起動時に読み出して自動的に送信することができるので、両者の管理情報の不整合を回避することができる。
【００８６】
Ｋ．変形例：
以上、本発明のいくつかの実施の形態について説明したが、本発明はこのような実施の形態になんら限定されるものではなく、その要旨を逸脱しない範囲内において種々なる態様での実施が可能である。例えば、以下のような変形例が可能である。
【００８７】
Ｋ１．変形例１：
上記実施例では、プリンタＰＲＴ１，ＰＲＴ２は、パーソナルコンピュータＰＣとローカル接続されているのもとしたが、これに限られない。プリンタＰＲＴ１，ＰＲＴ２は、ネットワーク、例えば、インターネット上に存在し、パーソナルコンピュータＰＣ（エージェント２００）の管理下にあればよい。
【００８８】
Ｋ２．変形例２：
上記実施例では、エージェント２００の再起動時に未送信メソッドを印刷仲介サーバ１００に送信するものとしたが、再起動の有無によらず、通信の支障が生じ、支障が解消した後に送信するものとしてもよい。
【００８９】
Ｋ３．変形例３：
上記実施例では、通信の支障が生じたときに、未送信メソッドをＩＮＩファイルに保存するものとしたが、これに限られない。他のファイルに保存するようにしてもよい。
【００９０】
Ｋ４．変形例４：
上記実施例では、本発明の情報処理装置を、印刷システム１０００を例に説明したが、これに限られない。ネットワーク上に存在する情報処理装置間の通信によって一連の処理を行うシステムにおいて同様に適用可能である。従って、上記実施例では、本発明の情報処理装置をクライアント（パーソナルコンピュータＰＣ）側に適用したが、サーバ（印刷仲介サーバ１００）側に適用してもよい。
【図面の簡単な説明】
【図１】本発明の情報処理装置を適用した一実施例としての印刷システム１０００の概略構成を示す説明図である。
【図２】印刷仲介サーバ１００の概略構成を示す説明図である。
【図３】エージェント２００の内部構成を示す説明図である。
【図４】本実施例で用いられるメソッドを示す説明図である。
【図５】エージェント２００の起動から終了までの処理の流れを示すフローチャートである。
【図６】印刷仲介サーバ１００に登録されているプリンタを解除する処理の流れを示すフローチャートである。
【図７】印刷仲介サーバ１００に登録されているプリンタの能力情報を変更する処理の流れを示すフローチャートである。
【図８】エージェント２００の終了処理の流れを示すフローチャートである。
【図９】エージェント２００の起動（再起動）処理の流れを示すフローチャートである。
【図１０】通信の支障の態様、その発生タイミング、メソッドの種類に応じたＩＮＩファイルへの未送信メソッドの保存タイミングを示す説明図である。
【図１１】印刷処理の流れを示すフローチャートである。
【符号の説明】
１０００…印刷システム
１０…主制御部
２０…通信制御部
２２…受信部
２４…送信部
３０…ＵＩ提供部
４０…ユーザ管理部
５０…印刷ジョブ管理部
７０…モジュール管理部
１００…印刷仲介サーバ
２００…エージェント
２１０…エージェント管理モジュール
２２０…通信実装モジュール
２３０…エージェントブラウザモジュール
２４０…プリンタ管理ＤＬＬ
２４２…印刷処理モジュール
２４４…プリンタ設定ＤＬＬ
２４６…プリンタ登録モジュール
２５０…モジュール管理ＤＬＬ
２５２…バージョンアップ処理モジュール
２６０…エージェント起動ランチャモジュール
２７０…エージェント設定モジュール
【図１】
0003624902.tif 000002
【図２】
0003624902.tif 000003
【図３】
0003624902.tif 000004
【図４】
0003624902.tif 000005
【図５】
0003624902.tif 000006
【図６】
0003624902.tif 000007
【図７】
0003624902.tif 000008
【図８】
0003624902.tif 000009
【図９】
0003624902.tif 000010
【図１０】
0003624902.tif 000011
【図１１】
0003624902.tif 000012