(57)【要約】【課題】画像形成装置と他の装置との間の通信を効率的に中継することのできる中継装置を提供する。【解決手段】中継装置１００は、ＭＦＰ３００−２に適した機能を有さないプリンター４００からＭＦＰ３００−２へのアクセスの指示を受け付けた場合に、プリンター４００の機能がＭＦＰ３００−２に適したものであるか否かを判断する（Ｓ４１）。この場合、中継装置１００は、ＭＦＰ３００−２から操作画面の情報を取得し（Ｓ４２〜Ｓ４４）、当該操作画面に対するユーザーの操作の内容を、ＭＦＰ３００−２に対して送信する（Ｓ４６，Ｓ４９，Ｓ５２）。中継装置１００は、ＭＦＰ３００−２からの、操作内容に対応した処理の結果であるジョブをプリンター４００に対して発行し（Ｓ５４）、プリンター４００に該ジョブを実行させる。【選択図】図８
2015225429.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置と他の装置との間の通信を中継するための中継装置であって、
前記画像形成装置から前記他の装置へのアクセスの指示を受け付けるための受け付け手段と、
前記画像形成装置が前記他の装置の機能に対応した機能を有する装置であるか否かを判断するための第１の判断手段と、
前記第１の判断手段によって、前記画像形成装置が前記他の装置の機能に対応した機能を有する装置であると判断された場合に、前記画像形成装置と前記他の装置との間の通信を中継するための第１の中継手段と、
前記第１の判断手段によって、前記画像形成装置が前記他の装置の機能に対応した機能を有する装置でないと判断された場合に、前記画像形成装置と前記他の装置との間の通信を中継するための第２の中継手段とを備え、
前記第２の中継手段は、
前記他の装置から操作画面の情報を取得するための取得手段と、
前記操作画面に対するユーザーの操作の内容を、前記他の装置に対して送信するための第１の送信手段と、
前記他の装置からの、前記操作内容に対応した処理の結果であるジョブを、前記画像形成装置に対して発行するための発行手段とを含む、中継装置。
【請求項２】
前記第１の中継手段は、前記画像形成装置からの要求に応じてアプリケーションを実行し、その結果を前記画像形成装置に対して提供可能な、前記他の装置としてのサーバーとの間の、前記画像形成装置から前記サーバーへの前記アプリケーションに関するリクエスト、および前記サーバーから前記画像形成装置への前記リクエストに対する応答をやり取りし、
前記サーバーからの前記応答をメモリーにキャッシュするための記憶手段と、
前記画像形成装置から前記リクエストを受け付けると、前記メモリーにキャッシュされた前記リクエストに対する応答を読み出して、前記サーバーから実応答である前記リクエストに対する応答を受け付けるよりも以前に前記読み出した応答を仮応答として前記画像形成装置に対して送信するための第２の送信手段とを備える、請求項１に記載の中継装置。
【請求項３】
前記第１の中継手段は、さらに、
前記実応答と前記仮応答とを比較することで前記仮応答が前記実応答と一致しているか否かを判断するための第２の判断手段と、
前記第１の判断手段において前記仮応答が前記実応答と一致していないと判断されると、前記実応答に応じた応答を、前記リクエストよりも以降の前記画像形成装置からのリクエストに対する応答として前記画像形成装置に対して送信するための第３の送信手段とを含む、請求項２に記載の中継装置。
【請求項４】
前記取得手段は、前記操作画面としてユーザー認証画面の情報を前記他の装置から取得し、
前記第１の送信手段は、前記ユーザー認証画面に対して入力を受け付けた認証情報を前記他の装置に対して送信することで、前記他の装置に対して前記認証情報を用いたユーザー認証を要求し、
前記ユーザー認証が成功の場合に、前記取得手段は、前記操作画面として、前記ユーザーの発行したジョブを選択可能なリスト画面の情報を前記他の装置から取得し、
前記第１の送信手段は、前記リスト画面のうちの選択結果を表わす情報を前記他の装置に対して送信することで、前記他の装置に対して選択されたジョブを要求する、請求項１〜３のいずれかに記載の中継装置。
【請求項５】
前記第２の中継手段は認証手段を含み、
前記取得手段は、前記認証手段でのユーザー認証成功の場合に、前記操作画面として、前記ユーザーの発行したジョブを選択可能なリスト画面の情報を前記他の装置から取得し、
前記第１の送信手段は、前記リスト画面のうちの選択結果を表わす情報を前記他の装置に対して送信することで、前記他の装置に対して選択されたジョブを要求する、請求項１〜３のいずれかに記載の中継装置。
【請求項６】
前記第２の中継手段はジョブリスト表示画面の情報を記憶し、前記操作画面を表示するための情報として前記取得手段でユーザーの発行したジョブの情報を前記他の装置から取得すると、前記ジョブリスト表示画面の情報に前記ジョブの情報を適用することで、前記ユーザーの発行したジョブのリスト画面を表示する、請求項１〜５のいずれかに記載の中継装置。
【請求項７】
前記第２の中継手段は、前記取得手段で、前記他の装置から前記操作画面を表示するための情報として前記ユーザーの発行したジョブの情報を取得するか、前記ユーザーの発行したジョブを選択可能なリスト画面の情報を取得するか、を前記他の措置の機能に応じて判断するための第３の判断手段をさらに含む、請求項６に記載の中継装置。
【請求項８】
前記第２の中継手段は、前記他の装置に対して、他の画像形成装置に対してユーザーの発行したジョブのスプールの有無の問い合わせを要求するための要求手段をさらに含み、
前記取得手段は、前記他の装置から、前記操作画面として、前記ユーザーが発行し、前記他の画像形成装置にスプールされているジョブの情報をリスト表示する画面の情報を取得し、
前記第１の送信手段は、前記リスト表示のうちから処理対象とするジョブの選択結果を前記他の装置に対して送信する、請求項１〜７のいずれかに記載の中継装置。
【請求項９】
画像形成装置と他の装置との間の通信を中継する方法であって、
前記画像形成装置から前記他の装置へのアクセスの指示を受け付けるステップと、
前記画像形成装置が前記他の装置の機能に対応した機能を有する装置であるか否かを判断するステップと、
前記画像形成装置が前記他の装置の機能に対応した機能を有する装置であるか否かを判断結果に応じて、異なる方法で前記画像形成装置と前記他の装置との間の通信を中継するステップとを備え、
前記画像形成装置が前記他の装置の機能に対応した機能を有する装置でないと判断された場合の前記中継するステップは、
前記他の装置から操作画面の情報を取得するステップと、
前記操作画面に対するユーザーの操作の内容を、前記他の装置に対して送信するステップと、
前記他の装置からの、前記操作内容に対応した処理の結果であるジョブを、前記画像形成装置に対して発行するステップとを含む、中継方法。
【請求項１０】
コンピューターに、画像形成装置と他の装置との間の通信を中継する処理を実行させるプログラムであって、
前記画像形成装置から前記他の装置へのアクセスの指示を受け付けるステップと、
前記画像形成装置が前記他の装置の機能に対応した機能を有する装置であるか否かを判断するステップと、
前記画像形成装置が前記他の装置の機能に対応した機能を有する装置であるか否かを判断結果に応じて、異なる方法で前記画像形成装置と前記他の装置との間の通信を中継するステップとを前記コンピューターに実行させ、
前記画像形成装置が前記他の装置の機能に対応した機能を有する装置でないと判断された場合の前記中継するステップは、
前記他の装置から操作画面の情報を取得するステップと、
前記操作画面に対するユーザーの操作の内容を、前記他の装置に対して送信するステップと、
前記他の装置からの、前記操作内容に対応した処理の結果であるジョブを、前記画像形成装置に対して発行するステップとを含む、中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は中継装置、中継方法および中継プログラムに関し、特に、画像形成装置と他の装置との間の通信を中継する中継装置、該中継装置での中継方法および中継プログラムに関する。
【背景技術】
【０００２】
ＭＦＰ（Multi-Functional  Peripheral）などの画像形成装置の中には、通信機能を有し、他の画像形成装置など他の装置と通信可能なものもある。
【０００３】
他の装置と通信することによって、画像形成装置は、他の装置から画像データを取得したり、さらには、当該他の装置に保存されているアプリケーションにアクセスし、このアプリケーションを実行することによる処理結果を取り込んだりすることも可能となる。
【０００４】
画像形成装置は、他の装置と直接通信して上記の情報を取得する場合もあるが、双方のプロトコルの差異の吸収やセキュリティの観点より、通信を中継するための中継装置を介して通信する場合もある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−５１７６号公報
【特許文献２】特開２００９−４４６１９号公報
【特許文献３】特開２０１２−３６６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、画像形成装置と他の装置とが中継装置を介して通信する場合には、直接通信する場合と比較して通信時間が長くなるという問題がある。
【０００７】
一方で、画像形成装置の中には、通信機能は有するものの、他の装置と同程度まで高機能化されていないものもある。こういった高度な機能を有さない画像形成装置で高機能の画像形成装置を利用したいというニーズもある。
【０００８】
本発明はこのような問題に鑑みてなされたものであって、画像形成装置と他の装置との間の通信を効率的に中継したり、画像形成装置の機能を代行し補完するように中継したりすることのできる中継装置、該中継装置での中継方法および中継プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のある局面に従うと、中継装置は、画像形成装置と他の装置との間の通信を中継するための中継装置であって、画像形成装置から他の装置へのアクセスの指示を受け付けるための受け付け手段と、画像形成装置が当該他の装置の機能に対応した機能を有する装置であるか否かを判断するための第１の判断手段と、第１の判断手段によって、画像形成装置が当該他の装置の機能に対応した機能を有する装置であると判断された場合に、画像形成装置と当該他の装置との間の通信を中継するための第１の中継手段と、第１の判断手段によって、画像形成装置が当該他の装置の機能に対応した機能を有する装置でないと判断された場合に、画像形成装置と当該他の装置との間の通信を中継するための第２の中継手段とを備える。第２の中継手段は、当該他の装置から操作画面の情報を取得するための取得手段と、操作画面に対するユーザーの操作の内容を、当該他の装置に対して送信するための第１の送信手段と、当該他の装置からの、操作内容に対応した処理の結果であるジョブを、画像形成装置に対して発行するための発行手段とを含む。
【００１０】
好ましくは、第１の中継手段は、画像形成装置からの要求に応じてアプリケーションを実行し、その結果を画像形成装置に対して提供可能な、上記他の装置としてのサーバーとの間の、画像形成装置からサーバーへのアプリケーションに関するリクエスト、およびサーバーから画像形成装置へのリクエストに対する応答をやり取りし、サーバーからの応答をメモリーにキャッシュするための記憶手段と、画像形成装置からリクエストを受け付けると、メモリーにキャッシュされたリクエストに対する応答を読み出して、サーバーから実応答であるリクエストに対する応答を受け付けるよりも以前に読み出した応答を仮応答として画像形成装置に対して送信するための第２の送信手段とを備える。
【００１１】
好ましくは、第１の中継手段は、さらに、実応答と仮応答とを比較することで仮応答が実応答と一致しているか否かを判断するための第２の判断手段と、第１の判断手段において仮応答が実応答と一致していないと判断されると、実応答に応じた応答を、リクエストよりも以降の画像形成装置からのリクエストに対する応答として画像形成装置に対して送信するための第３の送信手段とを含む。
【００１２】
好ましくは、取得手段は、操作画面としてユーザー認証画面の情報を上記他の装置から取得し、第１の送信手段は、ユーザー認証画面に対して入力を受け付けた認証情報を当該他の装置に対して送信することで、当該他の装置に対して認証情報を用いたユーザー認証を要求し、ユーザー認証が成功の場合に、取得手段は、操作画面として、ユーザーの発行したジョブを選択可能なリスト画面の情報を当該他の装置から取得し、第１の送信手段は、リスト画面のうちの選択結果を表わす情報を他の装置に対して送信することで、他の装置に対して選択されたジョブを要求する。
【００１３】
好ましくは、第２の中継手段は認証手段を含み、取得手段は、認証手段でのユーザー認証成功の場合に、操作画面として、ユーザーの発行したジョブを選択可能なリスト画面の情報を他の装置から取得し、第１の送信手段は、リスト画面のうちの選択結果を表わす情報を他の装置に対して送信することで、当該他の装置に対して選択されたジョブを要求する。
【００１４】
好ましくは、第２の中継手段はジョブリスト表示画面の情報を記憶し、操作画面を表示するための情報として取得手段でユーザーの発行したジョブの情報を他の装置から取得すると、ジョブリスト表示画面の情報にジョブの情報を適用することで、ユーザーの発行したジョブのリスト画面を表示する。
【００１５】
好ましくは、第２の中継手段は、取得手段で、他の装置から操作画面を表示するための情報としてユーザーの発行したジョブの情報を取得するか、ユーザーの発行したジョブを選択可能なリスト画面の情報を取得するか、を、当該他の措置の機能に応じて判断するための第３の判断手段をさらに含む。
【００１６】
好ましくは、第２の中継手段は、他の装置に対して、他の画像形成装置に対してユーザーの発行したジョブのスプールの有無の問い合わせを要求するための要求手段をさらに含み、取得手段は、当該他の装置から、操作画面として、ユーザーが発行し、他の画像形成装置にスプールされているジョブの情報をリスト表示する画面の情報を取得し、第１の送信手段は、リスト表示のうちから処理対象とするジョブの選択結果を当該他の装置に対して送信する。
【００１７】
本発明の他の局面に従うと、中継方法は画像形成装置と他の装置との間の通信を中継する方法であって、画像形成装置から他の装置へのアクセスの指示を受け付けるステップと、画像形成装置が当該他の装置の機能に対応した機能を有する装置であるか否かを判断するステップと、画像形成装置が当該他の装置の機能に対応した機能を有する装置であるか否かを判断結果に応じて、異なる方法で画像形成装置と当該他の装置との間の通信を中継するステップとを備える。画像形成装置が当該他の装置の機能に対応した機能を有する装置でないと判断された場合の中継するステップは、他の装置から操作画面の情報を取得するステップと、操作画面に対するユーザーの操作の内容を、当該他の装置に対して送信するステップと、当該他の装置からの、操作内容に対応した処理の結果であるジョブを、画像形成装置に対して発行するステップとを含む。
【００１８】
本発明のさらに他の局面に従うと、中継プログラムは、コンピューターに画像形成装置と他の装置との間の通信を中継する処理を実行させるプログラムであって、画像形成装置から他の装置へのアクセスの指示を受け付けるステップと、画像形成装置が当該他の装置の機能に対応した機能を有する装置であるか否かを判断するステップと、画像形成装置が当該他の装置の機能に対応した機能を有する装置であるか否かを判断結果に応じて、異なる方法で画像形成装置と当該他の装置との間の通信を中継するステップとをコンピューターに実行させる。画像形成装置が他の装置の機能に対応した機能を有する装置でないと判断された場合の中継するステップは、当該他の装置から操作画面の情報を取得するステップと、操作画面に対するユーザーの操作の内容を、当該他の装置に対して送信するステップと、当該他の装置からの、操作内容に対応した処理の結果であるジョブを、画像形成装置に対して発行するステップとを含む。
【発明の効果】
【００１９】
この発明によると、中継装置を利用して、画像形成装置と他の装置との間の通信を効率的に中継することができる。また、中継装置で画像形成装置の機能を代行し、補完して画像形成装置と他の装置との間の通信を中継することができる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態にかかる画像処理システム（以下、システムと略する）の構成の具体例を表わした図である。
【図２】システムに含まれる中継装置の装置構成の具体例を表わしたブロック図である。
【図３】システムでの動作概要を表わした図である。
【図４】システムでの動作概要を表わした図である。
【図５】システムでの動作概要を表わした図である。
【図６】差し替えコマンドを生成するためのデータベースの具体例を表わした図である。
【図７】差し替えコマンドを生成するためのデータベースの具体例を表わした図である。
【図８】システムでの動作概要を表わした図である。
【図９】中継装置の画面例を表わした図である。
【図１０】中継装置の画面例を表わした図である。
【図１１】中継装置の画面例を表わした図である。
【図１２】中継装置の機能構成の具体例を示すブロック図である。
【図１３】中継装置の機能構成の具体例を示すブロック図である。
【図１４】中継装置での動作の流れの具体例を表わしたフローチャートである。
【図１５】中継装置での動作の流れの具体例を表わしたフローチャートである。
【図１６】中継装置での動作の流れの具体例を表わしたフローチャートである。
【発明を実施するための形態】
【００２１】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００２２】
＜システム構成＞
図１は、本実施の形態にかかる画像処理システム（以下、システム）の構成の具体例を示す図である。図１を参照して、本システムは、大きくは、第１アプリ系と第２アプリ系とからなる。
【００２３】
第１アプリ系は、画像形成装置の一例としての、１台以上のＭＦＰ３００−１Ａ，３００−１Ｂ，３００−１Ｃ，３００−１Ｄ，…と、サーバー５００とを含む。ＭＦＰ３００−１Ａ，３００−１Ｂ，３００−１Ｃ，３００−１Ｄ，…を代表させてＭＦＰ３００−１とも称する。
【００２４】
第２アプリ系は、画像形成装置の一例としての、１台以上のＭＦＰ３００−２Ａ，３００−２Ｂ，…を含む。ＭＦＰ３００−２Ａ，３００−２Ｂ，…を代表させてＭＦＰ３００−２とも称する。第２アプリ系は、さらに、画像形成装置の一例であって、ＭＦＰ３００−２よりも機能の低い画像形成装置の一例であるプリンター４００を含む。ＭＦＰ３００−２およびプリンター４００は、いずれも、ＰＣ（パーソナルコンピューター）２００と通信可能である。
【００２５】
第１アプリ系では、ＭＦＰ３００−１はサーバー５００からジョブを取得し、実行（プリント）する。ＭＦＰ３００−１は、他のＭＦＰや図示しないＰＣからジョブを取得してもよい。第１アプリ系を利用してジョブを実行させようとするユーザーは、図示しないＰＣやＭＦＰ３００−１からジョブをサーバー５００に対して発行する。そして、ユーザーはいずれかのＭＦＰ３００−１にログインして自身の発行したジョブをサーバー５００から取得する。ユーザーのログインしたＭＦＰは、クライアントＭＦＰとも呼ばれる。クライアントＭＦＰは、ユーザー指示に従って、当該ユーザーの発行し、選択したジョブを実行する。このようなプリント方法は、ユビキタスプリントとも呼ばれる。
【００２６】
第２アプリ系では、ＭＦＰ３００−２は、他のＭＦＰからジョブを取得し、実行する。ＭＦＰ３００−２は、ＰＣ２００からジョブを取得してもよい。第２アプリ系を利用してジョブを実行させようとするユーザーは、自身の利用するＰＣ２００からいずれかのＭＦＰ３００−２に対してジョブを発行する。ジョブを受信したＭＦＰ３００−２は、自身のメモリーにジョブを格納（スプール）する。ジョブをスプールするＭＦＰは、ストレージＭＦＰとも呼ばれる。ユーザーはいずれかのＭＦＰ３００−２にログインする。ユーザーのログインしたＭＦＰ３００−２であるクライアントＭＦＰは、ログインユーザーの発行したジョブをストレージＭＦＰから取得し、ユーザー指示に従って実行する。このような、サーバーを利用しないユビキタスプリントの方法は、サーバレスユビキタスプリントも呼ばれる。
【００２７】
なお、第２アプリ系に含まれるプリンター４００は、ＭＦＰ３００−２の有しているログイン機能や高度の表示機能を有さない。すなわち、プリンター４００は、自身にユーザー情報の入力を受け付ける機能やログイン処理を実行する機能を有さないため、ＭＦＰ３００−２からユーザーの発行したジョブを取得して実行する、ユビキタスプリントを実行する機能を有さない。プリンター４００は、ＰＣ２００からジョブを受け取り、その指示に従って実行（プリント）する。
【００２８】
両アプリ系に含まれる画像形成装置は、いずれも、中継装置１００と通信可能である。中継装置１００は、両アプリ系に含まれるいずれの画像形成装置とも通信可能であり、さらに、サーバー５００とも通信可能である。
【００２９】
中継装置１００は、通信機能と表示機能とを有する装置であればよい。中継装置１００の一例として、タブレットなどとも呼ばれる端末装置が挙げられる。中継装置１００は、タブレットのほか、一般的なパーソナルコンピューター（ＰＣ）であってもよい。また、中継装置１００は必ずしもＭＦＰ３００−１やＭＦＰ３００−２と別個の装置でなくてもよく、いずれかのＭＦＰに搭載されていてもよい。
【００３０】
中継装置１００とサーバー５００との間の通信は、インターネットなどのネットワークを介したものであってもよいし、直接であってもよい。また、その通信は、無線であっても有線であってもよい。
【００３１】
＜装置構成＞
図２は、中継装置１００の装置構成の具体例を示すブロック図である。図２を参照して、中継装置１００は、装置全体を制御するためのＣＰＵ（Central  Processing  Unit）１０と、ＣＰＵ１０で実行されるプログラムやその他データを記憶するためのメモリーであるＲＯＭ（Read  Only  Memory）１１と、ＣＰＵ１０でプログラムを実行する際の計算値を記憶したり作業領域になったりするメモリーであるＲＡＭ（Random  Access  Memory）１２と、タッチパネル１３と、両アプリ系に含まれる画像形成装置などの他の装置との間の通信を制御するための通信コントローラー１４とを含む。
【００３２】
ＭＦＰなどの画像形成装置は、通常の画像形成装置であってよい。
＜動作概要＞
中継装置１００は、第１アプリ系では、ＭＦＰ３００−１とサーバー５００との間の通信を中継する。第２アプリ系では、ＭＦＰ３００−２とプリンター４００との間の通信を中継する。
【００３３】
第１アプリ系において、サーバー５００はアプリケーションを記憶しており、ＭＦＰ３００−１からのリクエストに応じてアプリケーションを実行する。そして、サーバー５００は、アプリケーションを実行することによる処理結果を上記リクエストに対する応答としてＭＦＰ３００−１に提供する。これにより、ＭＦＰ３００−１は、サーバー５００のアプリケーションを利用することができる。中継装置１００は、ＭＦＰ３００−１からサーバー５００へのリクエストの送信、およびサーバー５００からＭＦＰ３００−１に対する応答の送信を中継する。その際、中継装置１００は、サーバー５００からの応答をＭＦＰ３００−１からのリクエストに関連付けてキャッシュ（記憶）する。そして、中継装置１００は、キャッシュした応答をサーバー５００から実際の応答を取得するよりも先にＭＦＰ３００−１に対して送信する。
【００３４】
第２アプリ系において、中継装置１００がＭＦＰ３００−２とプリンター４００との間の通信を中継することで、プリンター４００を用いてユビキタスプリントを可能とする。中継装置１００は、ＭＦＰ３００−２とプリンター４００との間の通信を中継する際に、リモートパネル機能を利用する。
【００３５】
すなわち、中継装置１００は、いわゆるリモートパネルと呼ばれる機能を実現するためのアプリケーションを搭載している。中継装置１００は、該アプリケーションを実行することで、プリンター４００からのアクセス先として指定されたＭＦＰ３００−２の操作画面を、自身のタッチパネル１３に表示する。該操作画面に対するユーザー操作（タッチ）を受け付けると、端末装置は操作位置を表わす情報をＭＦＰ３００−２に対して送信し、当該操作位置に応じた操作に従う処理に応じてタッチパネルの操作画面を更新する。ＭＦＰ３００−２は、中継装置１００に表示されている操作画面と操作位置を表わす情報とから処理を特定し、実行する。これにより、ユーザーは、中継装置１００のタッチパネル１３に対する操作でＭＦＰ３００−２を遠隔操作可能となる。
【００３６】
図３は、本システムでの動作概要を表わした図である。図３を参照して、中継装置１００は、本システムに含まれる装置への、画像形成装置からのアクセス要求を受け付ける（ステップ＃１）。ここでのアクセスは、第１アプリ系であればＭＦＰ３００−１からサーバー５００へのアクセス、第２アプリ系であればプリンター４００からＭＦＰ３００−２へのアクセスが該当する。
【００３７】
中継装置１００は、アクセス元となる、ユーザーの操作対象とする画像形成装置（クライアント機）を特定する。そして、中継装置１００は、クライアント機が、アクセス先である装置の機能に対応した機能を有する装置であるか否かを判断する（ステップ＃２）。中継装置１００は、予め本システムに含まれる各画像形成装置の有する機能を記憶しておいてもよい。または、中継装置１００は、対象のクライアント機に対して様々な機能に応じた問い合わせを行ない、その回答、または回答の有無に応じて当該クライアント機の有する機能を特定することができる。
【００３８】
中継装置１００は、上記判断の結果に応じて、第１アプリ系での中継と、第２アプリ系での中継とを切り替える（ステップ＃３）。すなわち、中継装置１００が、クライアント機がアクセス先の装置の機能に対応した機能を有すると判断した場合には、上記ステップ＃１でのアクセスの要求は、第１アプリ系におけるＭＦＰ３００−１からサーバー５００へのアクセスの要求であるといえる。また、サーバー５００と同様に、ＭＦＰ３００−１やＭＦＰ３００−２がアプリケーションを搭載して、他の装置からの要求に応じて該アプリケーションを実行し、その結果を提供する機能を有する場合には、上記アクセス要求は、第１アプリ系におけるＭＦＰ３００−１から他のＭＦＰ３００−１へのアクセス要求、あるいは、第２アプリ系におけるＭＦＰ３００−２から他のＭＦＰ３００−２へのアクセス要求である場合もある。この場合、中継装置１００は、第１アプリ系における中継処理に切り替えて、通信を中継する処理を実行する（ステップ＃４）。
【００３９】
一方、中継装置１００が、クライアント機が第２アプリ系に属する画像形成装置であり、かつ、アクセス先の装置の機能に対応した機能を有していないと判断した場合には、上記ステップ＃１でのアクセスの要求は、第２アプリ系におけるプリンター４００からＭＦＰ３００−２へのアクセスの要求であるといえる。この場合、中継装置１００は、第２アプリ系における中継処理に切り替えて、通信を中継する処理を実行する（ステップ＃４）。
【００４０】
図４および図５は、中継装置１００に対してＭＦＰ３００−１からサーバー５００へのアクセス要求があり、中継装置１００が第１アプリ系における中継処理を実行する場合の、本システムでの動作の流れを表わした図である。
【００４１】
図４を参照して、中継装置１００は、ＭＦＰ３００−１からサーバー５００に対するリクエストを受け付けると（ステップＳ０）、クライアント機であるＭＦＰ３００−１がアクセス先の装置であるサーバー５００の機能に対応した機能を有するか否かを判断する（ステップＳ１）。この例の場合には、ＭＦＰ３００−１はサーバー５００の機能に対応した機能を有する。そのため、中継装置１００は、第１アプリ系における中継処理に切り替えて実行する。
【００４２】
中継装置１００は、自身のメモリーまたは図示しない他のメモリー装置から、上記ステップＳ０でのリクエストに関連付けられている応答を読み出す（ステップＳ２）。そして、中継装置１００は、読み出した応答を、サーバー５００からの応答を受け付けるよりも先にＭＦＰ３００−１に対して送信する（ステップＳ３）。以降の説明において、キャッシュしている応答を仮応答とも称し、サーバー５００から受け付けた応答を実応答とも称する。
【００４３】
図４の例では、ステップＳ０で中継装置１００はサーバー５００に対する接続要求であるリクエスト「Ｒｅｑ＿Ｃｏｎｎｅｃｔ」をＭＦＰ３００−１から受け付けている。そして、中継装置１００は、それに対する応答として、以前にサーバー５００から受け付けてキャッシュしている応答「Ｒｅｓ＿Ｃｏｎｎｅｃｔ」をステップＳ２で読み出して、ステップＳ３でＭＦＰ３００−１に対して仮応答「Ｒｅｓ＿Ｃｏｎｎｅｃｔ（仮）」として送信している。
【００４４】
好ましくは、中継装置１００はその後、上記ステップＳ１でＭＦＰ３００−１から受け付けたリクエストをサーバー５００に対して出力し（ステップＳ４）、その応答である実応答をサーバー５００から受け取る（ステップＳ５）。図４の例では、ステップＳ５で中継装置１００は、実応答「Ｒｅｓ＿Ｃｏｎｎｅｃｔ（実）」をサーバー５００から受け取っている。
【００４５】
中継装置１００は、実応答と仮応答とを比較し、これらが一致するか否かを判断する（ステップＳ６）。図４の例では、上記ステップＳ２でＭＦＰ３００−１に対して接続要求に応じて接続を行なったことを表わす仮応答「Ｒｅｓ＿Ｃｏｎｎｅｃｔ（仮）」を送信しているため、上記ステップＳ６で中継装置１００は、サーバー５００からの実応答として接続を行なったことを表わす応答であるか否かを確認する。
【００４６】
そうであった場合、つまり、実応答と仮応答とが一致したものであった場合には（ステップＳ６でＹＥＳ）、中継装置１００は実応答を上記リクエストに関連付けてキャッシュする（ステップＳ７）。中継装置１００は、上記リクエストに関連付けられた応答をすでにキャッシュしている場合には、ステップＳ７ではキャッシュを上書きすることになる。
【００４７】
中継装置１００は、次にＭＦＰ３００−１からリクエストを受け付けると（ステップＳ８）、同様に、当該リクエストに関連付けられてキャッシュしている応答を読み出す（ステップＳ９）。当該リクエストが同一セッションにおける２回目以降のリクエストである場合には、中継装置１００は、当該セッションにおいてリクエストに対する仮応答が実応答と一致しないものがあったか否かを確認する（ステップＳ１０）。図４の例では、実応答が接続を行なったことを表わす応答であったか否かを確認する。
【００４８】
その結果、当該セッションにおいて実応答と一致しない仮応答があった場合（ステップＳ１０でＮＯ）、中継装置１００は上記ステップＳ９でキャッシュから読み出した応答に含まれるパラメーターを上記の実応答に応じたパラメーターに置き換え（ステップＳ１１）、パラメーターを置き換えた応答をＭＦＰ３００−１に対して送信する（ステップＳ１２）。
【００４９】
図４の例で、中継装置１００は、サーバー５００に対する現在の状態を要求する２度目のリクエスト「Ｒｅｑ＿ＧｅｔＳｔａｔｕｓ」をＭＦＰ３００−１から受け付けた際に、以前の実応答「Ｒｅｓ＿Ｃｏｎｎｅｃｔ（実）」が接続が行なえなかったことを表わす応答であった場合には、上記ステップＳ１０で実応答と一致しない仮応答があったと判断される。この場合、中継装置１００は、ステップＳ１１で、リクエスト「Ｒｅｑ＿ＧｅｔＳｔａｔｕｓ」に対する応答としてキャッシュしている、接続された状態を表わす応答「Ｒｅｓ＿ＧｅｔＳｔａｔｕｓ（Ａｃｋ）」のパラメーター（Ａｃｋ）を実応答に応じて接続されていない状態を表わすパラメーター（ＮＡＣＫ）に置き換える。そして、中継装置１００は、ステップＳ１２で、パラメーターを置き換えた応答「Ｒｅｓ＿ＧｅｔＳｔａｔｕｓ（ＮＡＣＫ）」をＭＦＰ３００−１に対して送信する。
【００５０】
当該セッションにおいてリクエストに対する仮応答が実応答と一致しないものがなかった場合（ステップＳ１０でＹＥＳ）、中継装置１００は上記と同様に動作する。すなわち、キャッシュしている応答を仮応答としてＭＦＰ３００−１に送信した後に（ステップＳ１３）、サーバー５００に対してリクエストを送信し（ステップＳ１４）、その応答を得る（ステップＳ１５）。以降、同じ動作が繰り返される。
【００５１】
図４は、サーバー５００とＭＦＰ３００−１との間のプロトコルが同一である場合の動作を表わしている。この場合、第１アプリ系での中継処理において以上の動作が行なわれることで、仮応答が実応答と一致している場合にはサーバー５００との間の通信よりも以前にＭＦＰ３００−１に対して応答が返されることになるため、ＭＦＰ３００−１は速やかに次の動作に移行することができる。通常、プロトコルが同一である場合にはコマンドレベルでは大半のコマンドがキャッシュしている（以前の）応答を利用することができる。これにより、通信時間を大幅に抑えることができ、ＭＦＰ３００−１のユーザーはパネル操作を速やかに行なうことができる。また、好ましくは、本システムにおいて、さらに、仮応答と実応答とを比較してその結果に応じて動作することで、仮応答が実応答と異なった場合であっても、早いタイミングでその状態がＭＦＰ３００−１に通知され、正常に処理を終了するなど動作させることができる。
【００５２】
しかしながら、サーバー５００とＭＦＰ３００−１との間のプロトコル（またはプロトコルのバージョン）が異なる場合や、サーバー５００側でパラメーターの変更がなされた場合には、キャッシュしている（以前の）応答を用いることができない場合がある。
【００５３】
図５は、サーバー５００側でパラメーターの変更がなされた場合の、第１アプリ系における中継処理の動作概要を表わした図である。図５では、サーバー５００側で、応答をキャッシュした時点では「ｊｐｇ」であったパラメーターが「ＰＤＦ」に変更された例が示されている。
【００５４】
図５を参照して、中継装置１００は、ＭＦＰ３００−１からサーバー５００に対するリクエストを受け付けると（ステップＳ２０）、クライアント機であるＭＦＰ３００−１がアクセス先の装置であるサーバー５００の機能に対応した機能を有するか否かを判断する（ステップＳ２１）。この例の場合にはＭＦＰ３００−１はサーバー５００の機能に対応した機能を有する。
【００５５】
このように判断した場合、中継装置１００は第１アプリ系における中継処理に切り替えて実行する。すなわち、中継装置１００は、当該リクエストに関連付けられてキャッシュしている応答を読み出す（ステップＳ２２）。そして、中継装置１００は、読み出した応答を、サーバー５００からの応答を受け付けるよりも先にＭＦＰ３００−１に対して送信する（ステップＳ２３）。図５の例では、ステップＳ２０で中継装置１００はサーバー５００に対してデフォルト状態を要求するリクエスト「Ｒｅｑ＿ＧｅｔＤｅｆａｕｌｔ」をＭＦＰ３００−１から受け付けている。そして、中継装置１００は、それに対する応答として、以前にサーバー５００から受け付けてキャッシュしてされている応答「Ｒｅｓ＿ＧｅｔＤｅｆａｕｌｔ（Ｄｅｆａｕｌｔ＝ｊｐｇ）」をステップＳ２２で読み出して、ステップＳ２３でＭＦＰ３００−１に対して仮応答「Ｒｅｓ＿ＧｅｔＤｅｆａｕｌｔ（Ｄｅｆａｕｌｔ＝ｊｐｇ）（仮）」として送信している。
【００５６】
次に、中継装置１００は、上記ステップＳ２１でＭＦＰ３００−１から受け付けたリクエストをサーバー５００に対して出力し（ステップＳ２４）、その応答である実応答をサーバー５００から受け取る（ステップＳ２５）。図５の例では、ステップＳ２５で中継装置１００は実応答「Ｒｅｓ＿ＧｅｔＤｅｆａｕｌｔ（Ｄｅｆａｕｌｔ＝ＰＤＦ）（実）」をサーバー５００から受け取っている。
【００５７】
中継装置１００は、実応答と仮応答とを比較することで、実応答に含まれるパラメーターが仮応答に含まれるパラメーターから変更されていると判断することができる（ステップＳ２６でＹＥＳ）。この場合、中継装置１００は、実応答「Ｒｅｓ＿ＧｅｔＤｅｆａｕｌｔ（Ｄｅｆａｕｌｔ＝ＰＤＦ）（実）」を上記リクエスト「Ｒｅｑ＿ＧｅｔＤｅｆａｕｌｔ」に関連付けてキャッシュする（ステップＳ２７）。さらに、中継装置１００は、以降のＭＦＰ３００−１からのリクエストを上記パラメーターの差異に基づいて事前に変換してコマンドを生成し、サーバー５００へ中継するＭＦＰ３００−１からのリクエストを差し替える（ステップＳ２８）。以降、変換したコマンドを差し替えコマンドとも称する。中継装置１００は、生成した差し替えコマンドを、該当するリクエストをＭＦＰ３００−１から受け付けるまでメモリーに一時的に記憶しておく。
【００５８】
その後、中継装置１００はＭＦＰ３００−１からリクエストを受け付けると（ステップＳ２９）、当該リクエストが上記ステップＳ２８で差し替えコマンドを作成したものであるか否かを判断する（ステップＳ３０）。
【００５９】
受け付けたリクエストが差し替えコマンドのあるリクエストであった場合には（ステップＳ３０でＹＥＳ）、中継装置１００は、当該リクエストに対応した差し替えコマンドをサーバー５００に送信し、リクエストを中継する（ステップＳ３１）。そして、中継装置１００は、サーバー５００から応答を受け取り（ステップＳ３２）、ＭＦＰ３００−１に対して送信する（ステップＳ３３）。
【００６０】
図５の例では、仮応答のパラメーター（ｊｐｇ）が上記ステップＳ２５で受け付けた実応答のパラメーター（ＰＤＦ）に変更されている。そこで、中継装置１００は、上記ステップＳ２８で差し替えコマンドを生成する。このとき、中継装置１００は、リクエストと差し替えコマンドとの対応を規定したデータベースを利用する。当該データベースはＲＯＭ１１などのメモリーに記憶されていてもよいし、他のメモリー装置に記憶されていてもよい。
【００６１】
図６および図７は、差し替えコマンドを生成するためのデータベースの具体例を表わした図であって、図６はパラメーターの変更に対応した差し替えコマンドを生成するためのデータベースの具体例を表わしており、図７はプロトコルが異なる場合の差し替えコマンドを生成するためのデータベースの具体例を表わしている。詳しくは、図６を参照して、中継装置１００に対しては、予め、仮応答に含まれるパラメーターからパラメーターが変化している実応答（コマンド）と、そのリクエスト以降のリクエストにおいてパラメーターを実応答に含まれるパラメーターに置き換えるリクエストとが規定されている。たとえば、図６の例では、コマンド「ＧｅｔＤｅｆａｕｌｔ」である実応答に含まれるパラメーターが対応する仮応答に含まれるパラメーターから変化している場合には、コマンド「ＳｔａｒｔＪｏｂ」または「ＳｅｎｄＪｏｂ」であるリクエストにおいてパラメーターを実応答のパラメーターに置き換えてサーバー５００に送信することが規定されている。好ましくは、図６に示されたように、プロトコルごとにパラメーターを置き換えるリクエストが規定されている。
【００６２】
また、図７を参照して、中継装置１００に対しては、予め、サーバー５００からの実応答のプロトコルが仮応答のプロトコルと異なる場合、つまり、サーバー５００の通信プロトコルとＭＦＰ３００−１との通信プロトコルとが異なるものであった場合、コマンドごとにこれらプロトコルの対応が規定されている。たとえば、図７の例では、一方のプロトコルがＡＰＩ（アプリケーションプログラミングインターフェース）プロトコルのバージョン１．０であり、他方がＴＣＰ（トランスミッションコントロールプロトコル）のバージョン１．０である場合、ＡＰＩのコマンド「ＳｃａｎＳｅｔｔｉｎｇ」をコマンド「ＳｃａｎＳｅｔ」に置き換えて差し替えコマンドを生成することが規定されている。さらに、図７のデータベースでは、同一のプロトコルについて、異なるバージョンに関するコマンドの対応も規定されていてもよい。
【００６３】
好ましくは、図６や図７のデータベースは中継装置１００のメモリーに記憶されており、または、外部装置に中継装置１００に関連付けて記憶されており、他の中継装置との間でやり取りが可能である。すなわち、好ましくは、中継装置１００は、他の中継装置から、または他の中継装置に関連付けられたデータベースを取得し、自身のメモリーに記憶されているデータベースを更新する。
【００６４】
図５の例では、上記ステップＳ２８で中継装置１００は図６のデータベースを参照する。そして、コマンド「ＧｅｔＤｅｆａｕｌｔ」でパラメーターが変更されていることから、中継装置１００は、たとえばコマンド「ＳｔａｒｔＪｏｂ（ｊｐｇ）」のパラメーターｊｐｇをパラメーターＰＤＦに置き換えた差し替えコマンド「ＳｔａｒｔＪｏｂ（ＰＤＦ）」を生成し、メモリーに記憶しておく。その後、中継装置１００はＭＦＰ３００−１からリクエスト「Ｒｅｑ＿ＧｅｔＤｅｆａｕｌｔ」を受け付けると、上記ステップＳ３０で差し替えコマンド「ＳｔａｒｔＪｏｂ（ＰＤＦ）」があると判断するため、ステップＳ３１で当該差し替えコマンドをサーバー５００に対して送信する。
【００６５】
なお、サーバー５００からの実応答のプロトコルが仮応答のプロトコルと異なる場合、つまり、サーバー５００の通信プロトコルとＭＦＰ３００−１との通信プロトコルとが異なるものであった場合にも、本システムは図５と同様に動作する。すなわち、中継装置１００が仮応答と実応答とを比較してプロトコルの差異があることを判断すると、図７のデータベースを参照してプロトコルを変換した差し替えコマンドを生成して、ＭＦＰ３００−１からのリクエストを差し替えてサーバー５００に送信する。
【００６６】
第１アプリ系における中継装置で以上の動作が行なわれることで、仮応答が実応答とパラメーターが異なっていたりプロトコルやそのバージョンが異なっていたりしても、その差異が中継装置１００によって吸収され、サーバー５００とＭＦＰ３００−１との間のスムーズで迅速な通信が実現される。そのため、ＭＦＰ３００−１のユーザーはパネル操作を速やかに行なうことができる。
【００６７】
図８は、中継装置１００に対してプリンター４００からＭＦＰ３００−２へのアクセス要求があり、中継装置１００が第２アプリ系における中継処理を実行する場合の、本システムでの動作の流れを表わした図である。このアクセス要求は、プリンター４００のユーザーが発行したジョブのスプールの有無をＭＦＰ３００−２に問い合わせるものが該当する。
【００６８】
図８を参照して、中継装置１００は、タッチパネル１３に対するユーザー操作によって、ＭＦＰ３００−２に対するアクセス要求する要求元装置の選択を受け付ける。一例として、中継装置１００はタッチパネル１３に図９の選択画面を表示し、ユーザーがジョブ処理（プリント）に用いる画像処理装置の選択を受け付ける。
【００６９】
中継装置１００は、図９の選択画面で選択された、クライアント機となる要求元装置が、第２アプリ系に含まれる画像形成装置であり、かつ、アクセス先の装置であるＭＦＰ３００−２の機能に対応した機能を有するか否かを判断する（ステップＳ４１）。この例の場合にはクライアント機として、第２アプリ系に含まれるプリンター４００が選択されており、かつ、プリンター４００はＭＦＰ３００−２の機能に対応した機能を有さない。そのため、中継装置１００は、第２アプリ系における中継処理に切り替えて実行する。
【００７０】
なお、選択されたクライアント機がたとえばＭＦＰ３００−２である場合、中継装置１００は、クライアント機が第２アプリ系に含まれる画像形成装置であっても、アクセス先の装置である（他の）ＭＦＰ３００−２の機能に対応した機能を有すると判断する。この場合には、中継装置１００は、第１アプリ系における中継処理と同様の処理を行なってこれらの通信を中継してもよい。または、中継装置１００は、たとえばメッセージを表示するなどして、第２アプリ系における中継処理を行なうことなく、ＭＦＰ３００−２どうしの直接通信を促してもよい。
【００７１】
中継装置１００は、リモートパネルのためのアプリケーションを実行し、アクセス先であるＭＦＰ３００−２に対して、ユーザー認証のための操作画面を要求する（ステップＳ４２）。当該要求を受けたＭＦＰ３００−２は、自身のリモートパネルのためのアプリケーションを起動する（ステップＳ４３）。そして、ＭＦＰ３００−２は、該アプリケーションに従って、ユーザー認証用の操作画面の情報を中継装置１００に対して送信する（ステップＳ４４）。
【００７２】
中継装置１００は、ＭＦＰ３００−２から受け取った情報に基づいてユーザー認証用の操作画面をタッチパネル１３に表示する（ステップＳ４５）。図１０は、ステップＳ４５で中継装置１００に表示される、認証画面の具体例を表わした図である。ユーザーは、中継装置１００に表示された認証画面に対して、あたかもプリンター４００にログインするように認証情報を入力し、認証処理を指示することができる。
【００７３】
なお、中継装置１００は、予め操作画面のフレーム情報（フォーマット）を記憶しておいてもよい。そして、ＭＦＰ３００−２から受け取った情報を当該フレームに埋込む（適用する）ことで、自身で操作画面を生成してタッチパネル１３に表示してもよい。さらに、中継装置１００は、操作画面ごとに、ＭＦＰ３００−２から画面情報を受け取って表示する、いわゆるリモートパネル方式で表示するか、自身の記憶しているフレーム情報を利用して画面を生成して表示するか、を判断してもよい。中継装置１００は、一例として、ＭＦＰ３００−２の機能に基づいて上記判断を行なう。好ましくは、中継装置１００は、ＭＦＰ３００−２のサポートしているプロトコルやそのバージョンに基づいて上記判断を行なう。
【００７４】
中継装置１００は認証情報の入力を受け付けると、認証情報をＭＦＰ３００−２に対して送信し、認証処理を要求する（ステップＳ４６）。ここでは、リモートパネルアプリケーションの実行に従って、中継装置１００は、入力された情報と共に、認証画面上でのタッチされた位置（「実行」ボタン）を表わす座標情報をＭＦＰ３００−２に対して送信する。
【００７５】
ＭＦＰ３００−２は中継装置１００から情報を受け取ると、タッチ位置を表わす座標情報から認証処理の実行が指示されたことを特定し、受け取った認証情報を用いて認証処理を実行する（ステップＳ４７）。そして、ＭＦＰ３００−２は、認証結果を中継装置１００に対して送信する（ステップＳ４８）。
【００７６】
中継装置１００は、ＭＦＰ３００−２でユーザー認証成功であった場合、ログインユーザーが発行し、スプールされているジョブの一覧であるリストを、ＭＦＰ３００−２に対して要求する（ステップＳ４９）。このとき、中継装置１００は、ＭＦＰ３００−２に対して、さらに、他のＭＦＰ３００−２に当該ユーザーのジョブのスプールの有無を問い合わせることを要求してもよい。ステップＳ４９は、ログイン成功の場合に、自動的に行なわれるようにリモートパネルアプリケーションによって規定されていてもよい。または、中継装置１００は、認証結果の表示画面の情報をＭＦＰ３００−２から受け付けて結果画面をタッチパネル１３に表示し、当該画面に対するユーザー操作に従ってＭＦＰ３００−２に要求するようにしてもよい。
【００７７】
ＭＦＰ３００−２は、中継装置１００から要求されたユーザーの発行したジョブをスプールしている場合、リストを表示するためのリスト画面を生成し、その情報を中継装置１００に対して送信する（ステップＳ５０）。好ましくは、ＭＦＰ３００−２は、中継装置１００から他のＭＦＰ３００−２に当該ユーザーのジョブのスプールの有無を問い合わせることを要求されていた場合、他のＭＦＰ３００−２からリストを取得し、それらすべてのリストを表示するリスト画面を生成する。
【００７８】
中継装置１００はリスト画面をタッチパネル１３に表示し（ステップＳ５１）、ユーザーから実行するジョブの選択を受け付ける。図１１は、ステップＳ５１で中継装置１００に表示される、リスト画面の具体例を表わした図である。ユーザーは、中継装置１００に表示されたリスト画面に対して、あたかもプリンター４００から当該プリンター４００に実行させるジョブを選択しているように、実行対象のジョブを選択する操作を行なうことができる。
【００７９】
中継装置１００は、図１１のリスト画面に対して、実行するジョブを選択し、実行を指示するユーザー操作を受け付けると、ＭＦＰ３００−２に対して該当するジョブを要求する（ステップＳ５２）。ここでは、リモートパネルアプリケーションの実行に従って、中継装置１００は、認証画面上でのタッチされた位置（選択されたジョブおよび「実行」ボタン）を表わす座標情報をＭＦＰ３００−２に対して送信する。
【００８０】
ＭＦＰ３００−２は中継装置１００から情報を受け取ると、タッチ位置を表わす座標情報からジョブが選択されたことを特定し、選択されたジョブを中継装置１００に対して送信する（ステップＳ５３）。中継装置１００は、ＭＦＰ３００−２から受け取ったジョブをプリンター４００に転送し（ステップＳ５４）、実行を指示する。プリンター４００は、受け取ったジョブを実行する（ステップＳ５５）。または、ＭＦＰ３００−２は、選択されたジョブを直接、プリンター４００に転送して実行を指示するようにしてもよい。
【００８１】
これにより、ユーザーは、中継装置１００を利用してＭＦＰ３００−２の操作画面で操作し、ユビキタスプリントのためのログイン機能や画面表示機能を有さないプリンター４００でユビキタスプリント用に発行されたジョブを実行させることができる。つまり、中継装置１００を用いることで、従来のユビキタスプリントのためにプリンター４００が実行すべき処理を中継装置１００に代行させることができる。そのため、当該機能を有さないプリンター４００を利用してユビキタスプリントを実行することができる。さらに、上記のように、中継装置１００は、自動的に第１アプリ系での中継処理と第２アプリ系での中継処理とを切り替えるため、中継装置１００を、第１アプリ系での中継処理用と第２アプリ系での中継処理用とを兼ねて用いることができる。
【００８２】
＜機能構成＞
図１２は、上記動作を行なうための中継装置１００の機能構成の具体例を示すブロック図である。図１２の各機能は中継装置１００のＣＰＵ１０がＲＯＭ１１に記憶されているプログラムをＲＡＭ１２上に読み出して実行することで、主に、ＣＰＵ１０によって実現される。しかしながら、少なくとも一部機能が図２に示された、または図示されない電気回路などの他のハードウェア構成によって実現されてもよい。
【００８３】
図１２を参照して、中継装置１００のＣＰＵ１０は、通信コントローラー１４またはタッチパネル１３を介して、画像形成装置から他の装置へのアクセスを要求する指示を受け付けるためのアクセス要求受付部２０１と、アクセス元である画像形成装置（クライアント機）がアクセス先の装置の機能に対応した機能を有する装置であるか否かを判断するための判断部２０２と、判断部２０２によって、クライアント機が第２アプリ系の装置ではなく、かつ、アクセス先の装置の機能に対応した機能を有する装置であると判断された場合に、第１アプリ系における中継処理を実行することで画形成装置と他の装置との間の通信を中継するための第１中継部２０３と、判断部２０２によって、クライアント機が第２アプリ系の装置であり、かつ、アクセス先の装置の機能に対応した機能を有する装置でないと判断された場合に、第２アプリ系における中継処理を実行することで画像形成装置と他の装置との間の通信を中継するための第２中継部２０４とを含む。
【００８４】
第２中継部２０４は、アクセス先の装置であるＭＦＰ３００−２から操作画面の情報を取得するための画面取得部２０５と、操作画面の情報に基づいて操作画面をタッチパネル１３に表示する処理を行なうための画面表示部２０７と、当該操作画面に対するユーザーの操作を受け付けるための指示入力部２０８と、ユーザーの操作の内容をＭＦＰ３００−２に対して送信するための送信部２０９と、ＭＦＰ３００−２からの、上記操作内容に対応した処理の結果であるジョブをプリンター４００に転送（発行）するためのジョブ転送部２１０とを含む。
【００８５】
画面取得部２０５は、たとえば、操作画面としてユーザー認証画面の情報をＭＦＰ３００−２から取得する。この場合、送信部２０９は、ユーザー認証画面に対して入力された認証情報をＭＦＰ３００−２に対して送信することで、ＭＦＰ３００−２に対して認証情報を用いたユーザー認証を要求する。このユーザー認証が成功の場合に、画面取得部２０５は操作画面として、当該ユーザーの発行したジョブを選択可能なリスト画面の情報をＭＦＰ３００−２から取得する。そして、送信部２０９は、当該リスト画面から選択されたジョブを表わす情報をＭＦＰ３００−２に対して送信することで、ＭＦＰ３００−２に対して選択されたジョブを要求する。
【００８６】
好ましくは、第２中継部２０４は認証部２１２を含んで、上記のユーザー認証画面に対して入力された認証情報を用いてユーザー認証を行なってもよい。すなわち、中継装置１００がユーザー情報を記憶し、またはユーザー情報を記憶している装置にアクセス可能であって、当該ユーザー情報を用いてユーザー認証処理を実行可能であってもよい。この場合、画面取得部２０５は、認証部２１２でのユーザー認証成功の場合に、操作画面として、当該ユーザーの発行したジョブを選択可能なリスト画面の情報をＭＦＰ３００−２から取得する。
【００８７】
なお、画面表示部２０７は、予め操作画面のフレーム情報（フォーマット）を記憶しておいてもよい。たとえば、画面表示部２０７は、ジョブリストを表示するための画面のフレーム情報を記憶しておいてもよい。この場合、画面取得部２０５が操作画面を表示するための情報としてユーザーの発行したジョブを特定する情報をＭＦＰ３００−２から取得する。そして、画面表示部２０７は、記憶しているフレーム情報にジョブを特定する情報を埋込む（適用する）ことで、タッチパネル１３にジョブリストを表示してもよい。
【００８８】
さらにこの場合、第２中継部２０４は、ＭＦＰ３００−２から画面を表示するための情報（画像情報）を取得するか、フレーム情報に埋込む情報のみを取得して記憶しているフレーム情報に埋込むかを、ＭＦＰ３００−２の機能に応じて判断するための判断部２１１をさらに含んでもよい。一例として、判断部２１１は、ＭＦＰ３００−２のサポートしているプロトコルやそのバージョンに応じて、ＭＦＰ３００−２から画面を表示するための情報（画像情報）を取得するか、フレーム情報に埋込む情報のみを取得して記憶しているフレーム情報に埋込むかを判断することができる。さらに、判断部２１１は、ユーザー認証画面のみ画面情報をＭＦＰ３００−２から取得してリスト表示画面は自身のフレーム情報を用いるが、リスト表示画面もＭＦＰ３００−２から画面情報を取得するか、など、画面ごとに判断してもよい。そのため、判断部２１１は、ＭＦＰ３００−２のサポートしているプロトコルやそのバージョンごとに、ＭＦＰ３００−２から画面情報を取得するか自身のフレーム情報を用いるか、を規定する情報を予め記憶しておいてもよい。
【００８９】
好ましくは、画面取得部２０５は、ＭＦＰ３００−２に対して、他のＭＦＰ３００−２に対してログインユーザーの発行したジョブのスプールの有無の問い合わせを要求するための要求部２０６を含む。
【００９０】
図１３は、第１中継部２０３の詳細の具体例を表わしたブロック図である。図１３を参照して、第１中継部２０３は、ＭＦＰ３００−１からサーバー５００宛てのリクエストの入力を受け付けるためのリクエスト入力部１０１と、ＭＦＰ３００−１からのリクエストをサーバー５００に対して出力するためのリクエスト出力部１０２と、サーバー５００からＭＦＰ３００−１宛ての応答の入力を受け付けるための応答入力部１０３と、サーバー５００からの応答をＭＦＰ３００−１に対して出力するための応答出力部１０４とを含む。
【００９１】
さらに、第１中継部２０３は、サーバー５００からの応答をリクエストに関連付けてキャッシュするためのキャッシュ蓄積部１０５と、ＭＦＰ３００−１から受け付けたリクエストに応じて関連する応答をキャッシュから読み出すためのキャッシュ読出部１０６と、読み出した応答を仮応答としてＭＦＰ３００−１に対して送信するための送信部１０７とを含む。
【００９２】
好ましくは、第１中継部２０３は、仮応答と実応答とを比較することでこれらが一致しているか否かを判断するための判断部１０８と、これらが一致していないと判断されると、実応答に応じた応答を、以降のＭＦＰ３００−１からのリクエストに対する応答としてＭＦＰ３００−１に対して送信するために、実応答に応じたパラメーターを含む応答、つまり、キャッシュから読み出した応答に含まれるパラメーターを実応答のパラメーターに置き換えた応答を生成するための第１生成部１０９と、仮応答と実応答とのパラメーターが異なっていたりプロトコルやそのバージョンが異なっていたりなどの属性の異なる場合に、ＭＦＰ３００−１からの以降のリクエストを差し替えるために、メモリーの一例であるＲＯＭ１１に含まれる記憶領域であるＤＢ記憶部１１１に記憶されている、差し替えコマンドを生成するためのデータベースを参照して、当該リクエストの属性を変換して差し替えコマンドを生成するための第２生成部１１０とをさらに含む。
【００９３】
好ましくは、第２生成部１１０は、実応答のパラメーターが仮応答のパラメーターと異なる場合に、ＭＦＰ３００−１からの以降のリクエストに含まれるパラメーターを図６のデータベースを参照して実応答のパラメーターとの関係に応じたパラメーターに置き換えることで差し替えコマンドを生成する。また、好ましくは、第２生成部１１０は、実応答のプロトコルが仮応答のプロトコルと異なる場合に、ＭＦＰ３００−１からの以降のリクエストを図７のデータベースを参照して実応答のプロトコルと仮応答のプロトコルとの関係に応じて置き換えることで差し替えコマンドを生成する。
【００９４】
好ましくは、第１中継部２０３は、他の中継装置に関連付けられた図６や図７のようなデータベースを他の装置から取得し、ＤＢ記憶部１１１に記憶するためのＤＢ蓄積部１１２をさらに含む。
【００９５】
＜動作フロー＞
図１４〜図１６は、中継装置１００での動作の流れの具体例を表わしたフローチャートである。図１４〜図１６のフローチャートに表わされた動作は、中継装置１００のＣＰＵ１０がＲＯＭ１１に記憶されているプログラムをＲＡＭ１２上に読み出して実行し、図１２および図１３の各機能を発揮することによって実現される。
【００９６】
図１４を参照して、中継装置１００が、ネットワークを介して当該画像形成装置から、またはタッチパネル１３での操作によって、第１アプリ系または第２アプリ系いずれかの画像形成装置から他の装置への接続（アクセス）の要求を受け付けると（ステップＳ１０１でＹＥＳ）、ＣＰＵ１０は、アクセス元の画像形成装置（クライアント機）の属するアプリ系および当該クライアント機がアクセス先の装置の機能に応じた（適した）機能を有しているか否か、を判断する。
【００９７】
クライアント機が第２アプリ系に属する画像形成装置であり、かつ、アクセス先であるＭＦＰ３００−２に対応した（適した）機能を有さない装置、つまりプリンター４００である場合（ステップＳ１０３でＹＥＳ）、ＣＰＵ１０は、以降、図１４に表わされた、第２アプリ系における接続処理を実行する（ステップＳ１０７〜Ｓ１１９）。
【００９８】
そうでない場合、つまり、クライアント機が第１アプリ系に属する画像形成装置であるＭＦＰ３００−１である場合、または、第２アプリ系に属する画像形成装置であっても、アクセス先のＭＦＰ３００−２に対応した（適した）機能を有する装置、つまり、他のＭＦＰ３００−２である場合には（ステップＳ１０３でＮＯ）、ＣＰＵ１０は、以降、図１５および図１６に表わされた、第１アプリ系における接続処理を実行する。
【００９９】
詳しくは、第２アプリ系における接続処理を実行する場合、図１４を参照して、ＣＰＵ１０はリモートパネル用のアプリケーションを実行して、アクセス先のＭＦＰ３００−２に対して操作画面を要求する（ステップＳ１０７）。ＭＦＰ３００−２から操作画面の情報を取得すると（ステップＳ１０９でＹＥＳ）、ＣＰＵ１０は、タッチパネル１３に操作画面を表示する（ステップＳ１１１）。
【０１００】
ＣＰＵ１０は、タッチパネル１３に表示している操作画面に対するユーザー操作を受け付けると（ステップＳ１１３でＹＥＳ）、操作位置を表わす情報（たとえば座標情報）をＭＦＰ３００−２に対して送信する（ステップＳ１１５）。
【０１０１】
ＣＰＵ１０は、操作画面に対する操作に応じたＭＦＰ３００−２での処理結果としてのジョブをＭＦＰ３００−２から受け付けるまで、上記ステップＳ１０９〜Ｓ１１５の動作を繰り返す。つまり、ＣＰＵ１０は、ＭＦＰ３００−２からの情報に基づいて、タッチパネル１３に操作画面を表示する。そして、その操作画面に対するユーザー操作を表わす情報（たとえば座標情報）をＭＦＰ３００−２に対して送信する。ＭＦＰ３００−２ではユーザー操作の内容を特定して処理を実行し、その結果、操作画面を更新する。そして。ＭＦＰ３００−２は、更新後の操作画面の情報を中継装置１００に対して送信する。この動作が繰り返される。
【０１０２】
ＭＦＰ３００−２から、ユーザーによって選択されたジョブを受け付けると（ステップＳ１１７でＹＥＳ）、ＣＰＵ１０は、当該ジョブをクライアント機であるプリンター４００に転送し（ステップＳ１１９）、処理（プリント）を指示する。なお、ジョブは、ＭＦＰ３００−２から直接、クライアント機であるプリンター４００に送信されてもよい。
【０１０３】
第１アプリ系における接続処理を実行する場合、図１５を参照して、ＣＰＵ１０は、ＭＦＰ３００−１からサーバー５００宛てのリクエストを受け付けると、キャッシュから当該リクエストに関連付けられている応答を読み出す（ステップＳ２０７、Ｓ２２５）。なお、該当する応答がキャッシュしていない場合には、通常の中継装置と同様に、ＣＰＵ１０は、ＭＦＰ３００−１からのリクエストとサーバー５００からの応答とを、それぞれ直接転送する。
【０１０４】
好ましくはＣＰＵ１０は、ＭＦＰ３００−１からリクエストを受け付けると、ＭＦＰ３００−１とサーバー５００との間の当該セッションにおける以前のＭＦＰ３００−１からのリクエストに対する仮応答のうち、実応答と一致しないものがあるか否かを判断する（ステップＳ２０３）。その結果、実応答と一致しない仮応答がなかった場合（ステップＳ２０３でＹＥＳ）、つまり、すべての仮応答が実応答と一致していた場合には、ＣＰＵ１０はステップＳ２０７でキャッシュを読み出して、その応答を、以降の動作でサーバーから実応答であるリクエストに対する応答を受け付けるよりも以前に、仮応答としてＭＦＰ３００−１に対して送信する（ステップＳ２０９）。その後、ＣＰＵ１０はＭＦＰ３００−１からのリクエストをサーバー５００に対して送信し（ステップＳ２１１）、実応答をサーバー５００から受け付ける（ステップＳ２１３）。その実応答が仮応答と同一であった場合（ステップＳ２１５でＹＥＳ）、ＣＰＵ１０は、実応答を上記リクエストに対する応答としてキャッシュする（ステップＳ２１７）。
【０１０５】
上記ステップＳ２１３で受け付けた実応答がステップＳ２０９でＭＦＰ３００−１に送信した仮応答と一致しない場合であって、プロトコルなどの属性が異なった場合には（ステップＳ２１９でＮＯ）、ＣＰＵ１０は、図７のデータベースを参照して仮応答と実応答との差異に応じてコマンドを変換して差し替えコマンドを生成する（ステップＳ２２１）。生成した差し替えコマンドは、メモリーに一時的に記憶される。そして、ＣＰＵ１０は最初の動作に戻す。
【０１０６】
一方、当該セッションにおいて実応答と一致しない仮応答があり（ステップＳ２０３でＮＯ）、仮応答のプロトコルなどの属性は実応答と一致していた場合には（ステップＳ２２３でＹＥＳ）、ＣＰＵ１０は、キャッシュしている上記ステップＳ２０１で受け付けたリクエストに対する応答に含まれるパラメーターを、仮応答と実応答との差異に応じて置き換える（ステップＳ２２７）。ＣＰＵ１０は、パラメーターを置き換えた応答をＭＦＰ３００−１に対して送信する（ステップＳ２２９）。そして、ＣＰＵ１０は最初の動作に戻す。
【０１０７】
当該セッションにおいて実応答と一致しない仮応答があり（ステップＳ２０３でＮＯ）、仮応答のプロトコルなどの属性が実応答と一致していなかった場合には（ステップＳ２２３でＮＯ）、図１６を参照して、ＣＰＵ１０は、上記ステップＳ２０１でＭＦＰ３００−１から受け付けたリクエストについての差し替えコマンドをキャッシュしているか否かを確認する（ステップＳ２３１）。上記ステップＳ２０１でＭＦＰ３００−１から受け付けたリクエストが差し替えコマンドの記憶されているリクエストであった場合（ステップＳ２３１でＹＥＳ）、ＣＰＵ１０は、差し替えコマンドをサーバー５００に対して送信することで（ステップＳ２３３）、ＭＦＰ３００−１からのリクエストを差し替える。差し替えコマンドが記憶されていない場合には（ステップＳ２３１でＮＯ）、ＣＰＵ１０はＭＦＰ３００−１からのリクエストをサーバー５００に対して送信する（ステップＳ２３５）。
【０１０８】
ＣＰＵ１０はサーバー５００から実応答を受け付けると（ステップＳ２３７）、その実応答をＭＦＰ３００−１に対して送信する（ステップＳ２３９）。そして、ＣＰＵ１０は最初の動作に戻す。
【０１０９】
＜実施の形態の効果＞
本システムが中継装置１００を含んで上記のように動作することによって、第１アプリ系においては、ＭＦＰ３００−１からサーバー５００に対するリクエストに対して、以前の応答のキャッシュを利用してＭＦＰ３００−１に対していったん仮応答が返される。そのため、第１アプリ系における通信速度を速めることができる。
【０１１０】
さらに、第１アプリ系において、仮応答が実応答と異なった場合であっても、いったんＭＦＰ３００−１に対して仮応答が返される。そのため、ＭＦＰ３００−１とサーバー５００との間の通信を遮断することがない。この場合、以降のリクエストにおいて仮応答と実応答との間のパラメーターの変化や属性の変化が修正された応答がＭＦＰ３００−１に対して返されることになる。そのため、通信を継続させつつパラメーターの変化やプロトコルなどの属性の差異を吸収することができる。
【０１１１】
したがって、第１アプリ系においては、通常の中継装置を用いた中継通信よりも、ＭＦＰ３００−１とサーバー５００との間の通信速度を向上させることができ、ＭＦＰ３００−１のユーザーの利便性を向上させることができる。
【０１１２】
また、第２アプリ系においては、第１アプリ系で上記のように用いられる中継装置１００を利用して、いわゆるユビキタスプリントと呼ばれる、ユーザー認証やリスト表示などの高機能を必要とする画像形成処理を、該機能が必要な処理を中継装置１００が代行することで、そのような機能を有していない画像形成装置であるプリンター４００で実現することができる。そのため、ユーザーは、中継装置１００を利用することで、機能に応じてログインする画像形成装置が制限されることなく、利便性を向上させることができる。
【０１１３】
つまり、本システムにおいては、中継装置１００が、画像形成装置と他の装置との間を効率的に中継することができる。
【０１１４】
＜他の例１＞
なお、以上の例では、説明のため、本システムが第１アプリ系と第２アプリ系とに大分できるものとしている。しかしながら、第１アプリ系および第２アプリ系の区別は必須ではない。つまり、中継装置１００は、いずれかの画像形成装置から他の装置へのアクセス要求を受け付けた場合に、アクセス元の画像形成装置の有する機能に基づいて、上記の第１アプリ系の中継処理と上記の第２アプリ系の中継処理とを切り替えてよい。つまり、これら中継処理を切り替える際に、アクセス元の画像形成装置が第１アプリ系に属するか第２アプリ系に属するか、の判断は必ずしも必須のものではない。
【０１１５】
＜他の例２＞
さらに、上述の動作をＣＰＵに実行させるためのプログラムを提供することもできる。該プログラムを提供することで、既存の装置を中継装置１００として動作させることができる。上記のように、中継装置１００はタブレットなどとも呼ばれる端末装置であってもよいし、一般的なＰＣであってもよい。また、中継装置１００はＭＦＰ３００−１やＭＦＰ３００−２に含まれてもよい。そのため、既存の端末装置やＰＣ、ＭＦＰなどに上記プログラムをインストールすることで中継装置１００として動作させることができ、容易に本システムを構築することができる。
【０１１６】
このようなプログラムは、コンピューターに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）、ＲＯＭ、ＲＡＭおよびメモリカードなどのコンピューター読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピューターに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１１７】
なお、本発明にかかるプログラムは、コンピューターのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【０１１８】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【０１１９】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１２０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２１】
１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、１３  タッチパネル、１４  通信コントローラー、１００  中継装置、１０１  リクエスト入力部、１０２  リクエスト出力部、１０３  応答入力部、１０４  応答出力部、１０５  キャッシュ蓄積部、１０６  キャッシュ読出部、１０７，２０９  送信部、１０８，２０２，２１１  判断部、１０９  第１生成部、１１０  第２生成部、１１１  記憶部、１１２  蓄積部、２００  ＰＣ、２０１  アクセス要求受付部、２０３  第１中継部、２０４  第２中継部、２０５  画面取得部、２０６  要求部、２０７  画面表示部、２０８  指示入力部、２１０  ジョブ転送部、２１２  認証部、３００−１，３００−２  ＭＦＰ、４００  プリンター、５００  サーバー。
【図１】
2015225429.tif 000003
【図２】
2015225429.tif 000004
【図３】
2015225429.tif 000005
【図４】
2015225429.tif 000006
【図５】
2015225429.tif 000007
【図６】
2015225429.tif 000008
【図７】
2015225429.tif 000009
【図８】
2015225429.tif 000010
【図９】
2015225429.tif 000011
【図１０】
2015225429.tif 000012
【図１１】
2015225429.tif 000013
【図１２】
2015225429.tif 000014
【図１３】
2015225429.tif 000015
【図１４】
2015225429.tif 000016
【図１５】
2015225429.tif 000017
【図１６】
2015225429.tif 000018