以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰り返さない。
図1は、本発明の実施の形態の1つにおける情報処理システムおよび支援サーバーの概要の一例を示す図である。図1を参照して、情報処理システム1は、画像処理装置として機能するMFP(Multi Function Peripheral)100,100A,100Bと、MFP100,100A,100Bを管理する管理サーバー300と、サービスを提供するサービス提供サーバー400と、ゲートウェイ(G/W)装置500と、を含む。サービス提供サーバー400が提供するサービスは、MFP100,100A,100Bを制御して処理を実行させるサービスを含む。したがって、MFP100,100A,100Bは、サービス提供サーバー400による制御の対象となる制御対象装置として機能する。
管理サーバー300およびサービス提供サーバー400それぞれは、一般的なコンピューターである。管理サーバー300、サービス提供サーバー400、およびゲートウェイ装置500それぞれは、インターネット5に接続されており、インターネット5を介して互いに通信可能である。
さらに、インターネット5に支援サーバー200が接続されている。このため、支援サーバー200、管理サーバー300、サービス提供サーバー400、およびゲートウェイ装置500それぞれは、インターネット5を介して互いに通信可能であり、また、インターネットに接続された他のコンピューターと通信可能である。支援サーバー200は、情報処理システム1を支援する。
ゲートウェイ装置500は、さらに、ローカルエリアネットワーク(LAN)3と接続されている。MFP100,100A,100BそれぞれはLAN3に接続されている。ゲートウェイ装置500は、LAN3に接続されたMFP100,100A,100Bと通信可能である。さらに、ゲートウェイ装置500およびMFP100,100A,100Bそれぞれは、LAN3に接続された他のコンピューターと通信可能である。
ゲートウェイ装置500は、ファイアーウォール機能を有し、ファイアーウォールの内部のLAN3と、ファイアーウォールの外部のインターネット5とを接続する。ゲートウェイ装置500は、インターネット5に接続されたコンピューターから、LAN3に接続されたMFP100,100A,100Bへのアクセスを制限する。このため、支援サーバー200、管理サーバー300およびサービス提供サーバー400によるMFP100,100A,100Bへのアクセスが制限される。ゲートウェイ装置500が有するファイアーウォール機能は、特に限定するものではないが、パケットに含まれるアドレスに基づいて通信の許可または不許可を判定するパケットフィルター型のファイアーウォール機能である。なお、アプリケーション層のプロトコルのレベルで外部との通信を代替し、制御するアプリケーション型のファイアーウォール機能であってもよい。
図2は、本実施の形態における支援サーバーのハードウェア構成の概要の一例を示すブロック図である。図2を参照して、支援サーバー200は、支援サーバー200の全体を制御するための中央演算装置(CPU)201と、CPU201が実行するためのプログラムを記憶するROM(Read Only Memory)202と、CPU201の作業領域として使用されるRAM(Random Access Memory)203と、データを不揮発的に記憶するHDD(Hard Disk Drive)204と、CPU201をインターネット5に接続する通信部205と、情報を表示する表示部206と、ユーザーの操作の入力を受け付ける操作部207と、外部記憶装置208と、を含む。CPU201、ROM202、RAM203、HDD204、通信部205、表示部206、操作部207および外部記憶装置208それぞれはバス209に接続される。
外部記憶装置208は、CD-ROM208A(Compact Disk ROM)が装着される。CPU201は、外部記憶装置208を介してCD-ROM208Aにアクセス可能である。CPU201は、外部記憶装置208に装着されたCD-ROM208Aに記録されたプログラムをRAM203にロードして実行する。
なお、CPU201が実行するプログラムを記憶する媒体としては、CD-ROM208Aに限られず、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、ICカード、光カード、マスクROM、EPROMErasable Programmable ROM))などの半導体メモリであってもよい。
また、CPU201が実行するプログラムは、CD-ROM208Aに記録されたプログラムに限られず、HDD204に記憶されたプログラムをRAM203にロードして実行するようにしてもよい。この場合、インターネット5に接続された他のコンピューターが、支援サーバー200のHDD204に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、支援サーバー200が、インターネット5に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD204に記憶するようにしてもよい。ここでいうプログラムは、CPU201が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
MFP100,100A,100Bのハードウェア構成および機能は同じなので、ここでは特に言及しない限りMFP100を例に説明する。
図3は、MFPのハードウェア構成の概要の一例を示すブロック図である。図3を参照して、MFP100は、メイン回路110と、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、画像が形成された用紙を処理する後処理部155と、ユーザーインターフェースとしての操作パネル160とを含む。
後処理部155は、画像形成部140により画像が形成された1以上の用紙を並び替えて排紙するソート処理、パンチ穴加工するパンチ処理、ステープル針を打ち込むステープル処理を実行する。
メイン回路110は、CPU111と、通信インターフェース(I/F)部112と、ROM113と、RAM114と、大容量記憶装置としてのHDD115と、ファクシミリ部116と、CD-ROM118が装着される外部記憶装置117と、を含む。CPU111は、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、後処理部155および操作パネル160と接続され、MFP100の全体を制御する。
ROM113は、CPU111が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。RAM114は、CPU111がプログラムを実行する際の作業領域として用いられる。また、RAM114は、原稿読取部130から連続的に送られてくる読取データ(画像データ)を一時的に記憶する。
操作パネル160は、MFP100の上面に設けられ、表示部161と操作部163とを含む。表示部161は、液晶表示装置(LCD)、有機ELD(Electro-Luminescence Display)等の表示装置であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部163は、複数のキーからなるハードキー部167を備え、キーに対応するユーザーの操作による各種の指示、文字、数字などのデータの入力を受け付ける。操作部163は、表示部161上に設けられたタッチパネル165をさらに含む。
通信I/F部112は、MFP100をLAN3に接続するためのインターフェースである。CPU111は、通信I/F部112を介して、LAN3に接続された装置との間で通信し、データを送受信する。さらに、通信I/F部112は、ゲートウェイ装置500を介して、インターネット5に接続されたコンピューター、例えば、管理サーバー300、サービス提供サーバー400および支援サーバー200と通信が可能である。
ファクシミリ部116は、公衆交換電話網(PSTN)に接続され、PSTNにファクシミリデータを送信する、またはPSTNからファクシミリデータを受信する。ファクシミリ部116は、受信したファクシミリデータを、HDD115に記憶する、または画像形成部140に出力する。画像形成部140は、ファクシミリ部116により受信されたファクシミリデータを用紙にプリントする。また、ファクシミリ部116は、HDD115に記憶されたデータをファクシミリデータに変換して、PSTNに接続されたファクシミリ装置に送信する。
外部記憶装置117は、CD-ROM118が装着される。CPU111は、外部記憶装置117を介してCD-ROM118にアクセス可能である。CPU111は、外部記憶装置117に装着されたCD-ROM118に記録されたプログラムをRAM114にロードして実行する。なお、CPU111が実行するプログラムを記憶する媒体としては、CD-ROM118に限られず、光ディスク(MO/MD/DVD)、ICカード、光カード、マスクROM、EPROM、EEPROMなどの半導体メモリであってもよい。
また、CPU111は、HDD115に記憶されたプログラムをRAM114にロードして実行するようにしてもよい。この場合、LAN3またはインターネット5に接続された他のコンピューターが、MFP100のHDD115に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、MFP100が、LAN3またはインターネット5に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD115に記憶するようにしてもよい。ここでいうプログラムは、CPU111が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
本実施の形態における情報処理システム1においては、ファイアーウォールの外部のインターネット5に接続されたサービス提供サーバー400が、ファイアーウォールの内部のLAN3に接続されたMFP100,100A,100Bのいずれかを制御することを可能にする。サービス提供サーバー400は、ファイアーウォールの内部のLAN3に接続されたパーソナルコンピューター(以下「PC」という)からアクセスされて、そのPCを操作するユーザーによる指示にしたがってサービスを提供するための処理を実行する。また、サービス提供サーバー400は、ファイアーウォールの外部のインターネット5に接続されたPCからアクセスされて、そのPCを操作するユーザーによる指示にしたがってサービスを提供するための処理を実行する。
ここでは、サービス提供サーバー400がMFP100にプリントジョブを実行させるサービスを提供する場合を例に説明する。サービス提供サーバー400がMFP100に送信するプリントジョブが、ゲートウェイ装置500のファイアーウォールを通過するようにするために、MFP100は、サービス提供サーバー400とMFP100との間でトンネル接続を確立する。情報処理システム1においては、管理サーバー300がサービス提供サーバー400とMFP100との間を仲介する。
ここで、情報処理システム1におけるトンネル接続の手順について説明する。情報処理システム1において、MFP100,100A,100Bそれぞれには、管理サーバー300と通信し、管理サーバー300との間でトンネル接続を確立する処理を定めたトンネル接続プログラムがインストールされている。このトンネル接続プログラムは、MFP100,100A,100Bが起動した時点で実行される。例えば、MFP100において、CPU111は、起動した時点でトンネル接続プログラムを実行し、CPU111がトンネル接続プログラムを実行するタスクがCPU111に常駐する。
図4は、情報処理システムにおけるトンネル接続手順の一例を示す図である。図4を参照して、MFP100は、管理サーバー300のネットワークアドレスを予め記憶しており、そのネットワークアドレスを用いて管理サーバー300と通信するための接続を要求する。管理サーバー300は、MFP100から接続が要求されることに応じてMFP100との間で通信するための常時接続を確立する。常時接続は、MFP100と管理サーバー300との間で通信するための通信セッションである。MFP100はファイアーウォールの内部であり、管理サーバー300はファイアーウォールの外部である。したがって、常時接続はファイアーウォールを通過する通信セッションである。なお、MFP100とは別のMFP100A,100Bそれぞれにおいても管理サーバー300との間で常時接続が確立される。このため、管理サーバー300は、MFP100,100A,100Bそれぞれとの間で確立された常時接続を介して通信することができる。
次に、サービス提供サーバー400が管理サーバー300に制御対象装置に対する制御を要求する。この要求とともに、制御対象装置のアドレス情報と、サービス提供サーバー400のアドレス情報とがサービス提供サーバー400から管理サーバー300に通知される。制御対象装置のアドレス情報は、サービス提供サーバー400を操作するユーザーによって、制御対象装置が選択されることにより決定される。ここでは、制御対象装置をMFP100としているので、ユーザーによりMFP100が選択される。なお、管理サーバー300は、MFP100,100A,100Bとの間で常時接続を確立しているので、それぞれのアドレス情報を受信している。サービス提供サーバー400が管理サーバー300からMFP100,100A,100Bそれぞれのアドレス情報を取得すれば、サービス提供サーバー400はユーザーにMFP100,100A,100Bのうちから制御対象装置を選択させることができる。
サービス提供サーバー400のアドレス情報は、サービス提供サーバー400のネットワークアドレスと、サービス提供サーバー400が実行するジョブのジョブIDと、を含む。ジョブは、サービス提供サーバー400がアプリケーションプログラムを実行するタスクである。ここでは、サービス提供サーバー400のアドレス情報を、MFP100からサービス提供サーバー400にアクセスするためのURL(Uniform Resource Locator)としている。URLには、例えば「https://www.example.com/print_service?job_id=j00123:60001」のように、サービス提供サーバー400のネットワークアドレス(ドメイン名)、ウェブページの識別子、サービス提供サーバー400が実行するジョブの識別子(ジョブID)、および待ち受けポートのポート番号などが含まれる。待ち受けポートとして、所定の範囲のポートのうち未使用のものが用いられる。また、ジョブIDとして、ユニークなIDが発行される。サービス提供サーバー400が実行するジョブは、サービス提供サーバー400が提供するサービスのうちサービス提供サーバー400を操作するユーザーによって指定されたサービスに対応するジョブである。
管理サーバー300は、サービス提供サーバー400から制御対象装置の制御が要求される場合、その要求とともに通知される制御対象装置のアドレス情報からMFP100を特定し、常時接続を介してMFP100にサービス提供サーバー400への接続を指示する。この指示とともに、サービス提供サーバー400からの要求とともに通知されるサービス提供サーバー400のアドレス情報がMFP100に通知される。
MFP100は、管理サーバー300からサービス提供サーバー400への接続が指示されると、サービス提供サーバー400のアドレス情報に基づいて、サービス提供サーバー400にトンネル接続を要求する。サービス提供サーバー400は、MFP100からトンネル接続が要求されることに応じてMFP100との間でサービス接続を確立する。サービス接続は、MFP100とサービス提供サーバー400との間で通信するための通信セッションである。MFP100はファイアーウォールの内部であり、サービス提供サーバー400はファイアーウォールの外部である。したがって、サービス接続はファイアーウォールを通過する通信セッションである。
上述したように、サービス提供サーバー400のアドレス情報であるURLが、ジョブIDを含む。このため、MFP100からトンネル接続が要求されるサービス提供サーバー400は、制御対象装置をジョブIDにより特定されるジョブと対応付けることができる。換言すれば、サービス提供サーバー400を操作するユーザーによって指定されたサービスに対応する処理を実行するジョブを、制御対象装置であるMFP100と対応付けることができる。サービス提供サーバー400は、ジョブを実行することによりサービスを提供する。ここでは、サービスに対応する処理を制御対象装置にプリントジョブを実行させる処理としているので、サービス提供サーバー400は、プリントジョブを制御対象装置であるMFP100にサービス接続を介して送信する。
MFP100は、サービス接続を介してサービス提供サーバー400からプリントジョブを受信すると、そのプリントジョブを実行する。MFP100は、プリントジョブの実行が完了すると、サービス接続を切断する。なお、サービス接続を、サービス提供サーバー400が切断してもよい。
次に、支援サーバー200が情報処理システム1を支援する場合におけるトンネル接続の手順を説明する。支援サーバー200は、情報処理システム1におけるサービス接続の確立を支援する。情報処理システム1が支援サーバー200により支援される場合、サービス提供サーバー400は、制御対象装置を制御する要求を、管理サーバー300でなく支援サーバー200に送信するように設定される。また、MFP100,100A,100Bそれぞれにおいて、支援サーバー200と通信するための装置支援プログラムがインストールされる。そして、MFP100,100A,100Bそれぞれにおいて、起動した時点で装置支援プログラムが実行されるように設定され、トンネル接続プログラムを実行しないように設定される。したがって、例えば、MFP100において、CPU111は、起動した時点で装置支援プログラムが実行されるが、トンネル接続プログラムは実行されない。このため、CPU111が起動した時点で、CPU111が装置支援プログラムを実行するタスクが常駐するが、トンネル接続プログラムを実行するタスクは常駐しない。
図5は、支援サーバーにより支援される情報処理システムにおけるトンネル接続手順の一例を示す図である。図5を参照して、MFP100は、支援サーバー200のネットワークアドレスを予め記憶しており、そのネットワークアドレスを用いて支援サーバー200と通信するための接続を要求する。支援サーバー200は、MFP100から接続が要求されることに応じてMFP100との間で通信するための支援用接続を確立する。支援用接続は、MFP100と支援サーバー200との間で通信するための通信セッションである。MFP100はファイアーウォールの内部であり、支援サーバー200はファイアーウォールの外部である。したがって、支援用接続はファイアーウォールを通過する通信セッションである。なお、MFP100とは別のMFP100A,100Bそれぞれにおいても支援サーバー200との間で支援用接続が確立される。このため、支援サーバー200は、MFP100,100A,100Bそれぞれと通信することができる。
上述した情報処理システム1においては、MFP100,100A,100Bそれぞれが起動した時点で、管理サーバー300との間で常時接続が確立される。情報処理システム1が支援サーバー200により支援される場合は、MFP100,100A,100Bそれぞれが起動した時点では常時接続が確立されることなく、支援サーバー200との間で支援用接続が確立される。
次に、サービス提供サーバー400が支援サーバー200に制御対象装置に対する制御を要求する。この要求とともに、制御対象装置のアドレス情報と、サービス提供サーバー400のアドレス情報とがサービス提供サーバー400から支援サーバー200に通知される。上述した情報処理システム1においては、サービス提供サーバー400が管理サーバー300に制御対象装置に対する制御を要求したが、支援サーバー200により支援される場合には、サービス提供サーバー400は、管理サーバー300ではなく支援サーバー200に制御対象装置に対する制御を要求する。なお、支援サーバー200は、MFP100,100A,100Bとの間で支援用接続を確立しているので、それぞれのアドレス情報を受信している。サービス提供サーバー400が支援サーバー200からMFP100,100A,100Bそれぞれのアドレス情報を取得すれば、サービス提供サーバー400を操作するユーザーにMFP100,100A,100Bのうちから制御対象装置を選択させることができる。
支援サーバー200は、サービス提供サーバー400から制御対象装置に対する制御が要求される場合、その要求とともに通知される制御対象装置のアドレス情報からMFP100を特定する。支援サーバー200は、支援用接続を介してMFP100に常時接続を確立するタスクの起動を指示する。
MFP100は、常時接続を確立するタスクの起動が指示されると、トンネル接続プログラムを実行する。MFP100が備えるCPU111がトンネル接続プログラムを実行すると、CPU111がトンネル接続プログラムを実行するタスクが起動する。CPU111がトンネル接続プログラムを実行する場合の動作は、支援サーバー200により支援されない場合におけるMFP100の動作と同様である。すなわち、MFP100は、管理サーバー300に接続を要求する。管理サーバー300は、MFP100からの要求に応じてMFP100との間で常時接続を確立する。
また、支援サーバー200は、サービス提供サーバー400から制御対象装置に対する制御が要求される場合、サービス提供サーバー400に代わって管理サーバー300に制御対象装置に対する制御を要求する。管理サーバー300は、支援サーバー200から制御対象装置に対する制御が要求される場合、サービス提供サーバー400から制御対象装置に対する制御が要求される場合と同様に処理する。具体的には、管理サーバー300は、その要求とともに通知される制御対象装置のアドレス情報からMFP100を特定し、MFP100に常時接続を介してサービス提供サーバー400への接続を指示する。この指示とともに、サービス提供サーバー400から通知されるサービス提供サーバー400のアドレス情報が通知される。
MFP100が管理サーバー300からサービス提供サーバー400への接続が指示される場合の動作は、支援サーバー200により支援されない場合と同様である。すなわち、MFP100は、サービス提供サーバー400のアドレス情報に基づいて、サービス提供サーバー400にトンネル接続を要求する。サービス提供サーバー400は、MFP100からトンネル接続が要求されることに応じてMFP100との間でサービス接続を確立する。
そして、サービス提供サーバー400は、プリントジョブを制御対象装置であるMFP100にサービス接続を介して送信する。MFP100は、サービス提供サーバー400からプリントジョブを受信すると、そのプリントジョブを実行する。MFP100は、プリントジョブの実行が完了すると、サービス接続を切断する。
さらに、支援サーバー200は、所定の条件の成立により、制御対象装置であるMFP100に常時接続の切断を指示する。これに応じて、MFP100は、常時接続を切断する。
情報処理システム1は、支援サーバー200により支援される場合は、管理サーバー300とMFP100,100A,100Bそれぞれとの間で常時接続が常に確立されていない。具体的には、サービス提供サーバー400を操作するユーザーにより制御対象装置が選択される場合に、制御対象装置と管理サーバー300との間で常時接続が確立される。このため、情報処理システム1が支援サーバー200により支援される場合は管理サーバー300の負荷が低減する。
図6は、支援サーバーが備えるCPUが有する機能の一例を示すブロック図である。図6に示す機能は、支援サーバー200が備えるCPU201が、ROM202、HDD204またはCD-ROM208Aに記憶されたトンネル接続支援プログラムを実行することにより、CPU201により実現される機能である。図6を参照して、支援サーバー200が備えるCPU201は、装置支援部221と、サービス支援部223と、管理サーバー支援部225と、を含む。
装置支援部221は、MFP100,100A,100Bを支援する。装置支援部221は、起動部231と、支援用接続確立部233と、切断指示部235と、を含む。サービス支援部223は、サービス提供サーバー400を支援する。サービス支援部223は、制御要求受付部241と、エラー通知部243と、を含む。管理サーバー支援部225は、管理サーバー300を支援する。管理サーバー支援部225は、代理要求部251を含む。
支援用接続確立部233は、MFP100,100A,100Bのいずれかから接続が要求されることに応じて、MFP100,100A,100Bそれぞれとの間で支援用接続を確立する。具体的には、通信部205がMFP100,100A,100Bのいずれかから支援用接続の確立を要求する信号を受信すると、支援用接続を確立する。支援用接続確立部233は、支援用接続を識別するための支援用接続IDを起動部231および切断指示部235に出力する。
制御要求受付部241は、サービス提供サーバー400が制御対象装置の制御を要求する制御要求情報を受信する。具体的には、制御要求受付部241は、通信部205を制御してサービス提供サーバー400が送信する制御要求情報を受信する。制御要求情報は、制御対象装置のアドレス情報と、サービス提供サーバー400のアドレス情報とを含む。制御要求受付部241は、制御要求情報を起動部231および代理要求部251に出力する。
起動部231は、制御要求受付部241から制御要求情報が入力されることに応じて、制御要求情報に含まれる制御対象装置のアドレス情報からMFP100を特定する。起動部231は、支援用接続を介してMFP100に起動指示を送信する。起動指示は、トンネル接続プログラムの実行を指示するコマンドである。起動指示を受信するMFP100は、トンネル接続プログラムを実行する。これにより、MFP100が管理サーバー300に常時接続の確立を要求するので、MFP100と管理サーバー300との間で常時接続が確立される。
起動部231が起動指示を送信した後にMFP100と管理サーバー300との間で常時接続が確立されない場合がある。MFP100は常時接続が確立されない場合にエラー信号を返信する。起動部231は、通信部205がMFP100からエラー信号を受信する場合は、エラー通知部243に通知指示を出力する。
エラー通知部243は、起動部231から通知指示が入力されることに応じて、サービス提供サーバー400にエラーであることを通知する。具体的には、制御対象装置を制御できないことを示すエラー情報を送信する。これにより、サービス提供サーバー400を操作するユーザーに、制御対象装置を制御できないことを通知することができる。
代理要求部251は、制御要求受付部241から制御要求情報が入力されることに応じて、サービス提供サーバー400に代わって制御要求情報を管理サーバー300に送信する。管理サーバー300は、支援サーバー200から制御要求情報を受信する場合、サービス提供サーバー400から制御要求情報を受信する場合と同様に処理する。具体的には、管理サーバー300は、制御要求情報に含まれる制御対象装置のアドレス情報からMFP100を特定し、常時接続を介してMFP100に接続指示を送信する。接続指示は、サービス提供サーバー400へのアクセスを指示するコマンドである。接続指示は、制御要求情報に含まれるサービス提供サーバー400のアドレス情報を含む。MFP100は、管理サーバー300から接続指示を受信すると、サービス提供サーバー400のアドレス情報に基づいて、サービス提供サーバー400にトンネル接続を要求する。サービス提供サーバー400は、MFP100からトンネル接続が要求されることに応じてMFP100との間で通信するためのサービス接続を確立する。
切断指示部235は、切断条件が成立する場合、切断条件が成立した装置に、支援用接続を介して切断指示を送信する。切断指示は、常時接続の切断を指示するコマンドである。例えば、MFP100において切断条件が成立する場合にMFP100に切断指示が送信される。MFP100は、切断指示を受信する場合、管理サーバー300との間で確立されている常時接続を切断する。具体的には、MFP100は、切断指示を受信する場合、MFP100が備えるCPU111がトンネル接続プログラムを実行するタスクを終了させる。
切断条件は、制御対象装置に起動指示を送信してから所定の時間が経過する条件である。支援サーバー200がサービス提供サーバー400からジョブの内容を取得する場合、切断指示部235は所定の時間を決定できる。例えば、所定の時間は、制御対象装置がサービス提供サーバー400から受信されるジョブの種類に基づいて決定される。例えば、切断指示部235は、ジョブがプリントジョブの場合には、そのプリント枚数からジョブが実行される時間を所定の時間として算出する。また、切断指示部235は、ジョブが画像処理の場合、画像処理の対象となるデータのサイズおよび画像処理の内容から所定の時間を算出する。画像処理は、画像のエッジを強調するエッジ強調処理、画像に表される文字を認識する文字認識処理等である。また、切断条件は、サービス接続が切断されてから所定の時間が経過する条件としてもよい。
MFP100,100A,100Bの複数に起動指示を送信し、常時接続が確立されている装置が複数の場合がある。切断条件は、常時接続が確立されている装置が所定数以上の場合は起動指示が送信された日時が最も先の装置とする条件であってもよい。また、切断条件は、常時接続が確立されている装置が所定数以上の場合は過去に起動指示が送信された回数が最小の装置とする条件であってもよい。
図7は、MFPが備えるCPUが有する機能の一例を示す図である。図7に示す機能は、MFP100が備えるCPU111がトンネル接続プログラムおよび装置支援プログラムを実行することによりCPU111に実現される機能である。図7を参照して、MFP100が備えるCPU111は、常時接続確立部51と、接続指示受信部53と、サービス接続確立部55と、処理実行部57と、支援部61と、を含む。
支援部61は、CPU111が装置支援プログラムを実行することによりCPU111に実現される機能である。したがって、支援部61は、MFP100が起動した時点でCPU111に実現される機能である。支援部61は、支援用接続要求部63と、起動制御部65と、停止制御部67と、を含む。
支援用接続要求部63は、HDD115に記憶された支援サーバー200のネットワークアドレスを用いて支援サーバー200に支援用接続の確立を要求し、支援サーバー200との間で支援用接続を確立する。具体的には、CPU111は、通信I/F部112を制御して、支援サーバー200に支援用接続の確立を要求する信号を送信し、支援用接続を確立する。支援用接続要求部63は、支援用接続が確立されると、それを識別するための支援用接続IDを起動制御部65および停止制御部67に出力する。
起動制御部65は、通信I/F部112を制御して支援用接続を介して支援サーバー200から起動指示を受信すると、CPU111にトンネル接続プログラムを実行させる。
また、支援サーバー200から接続指示が受信された時点で、HDD115の予め定められた領域に常時接続の確立の要求先が設定されていない場合がある。常時接続の確立の要求先は、トンネル接続プログラムにより定められる。具体的には、常時接続の確立の要求先は、HDD115のトンネル接続プログラムにより定められた領域に設定される。CPU111がトンネル接続プログラムを実行するタスクが、HDD115のトンネル接続プログラムにより定められた領域にアクセスして常時接続の確立の要求先を取得する。
起動制御部65は、HDD115のトンネル接続プログラムにより定められた領域に管理サーバー300のアドレスが記憶されていない場合、その領域に管理サーバー300のアドレスを格納する。HDD115のトンネル接続プログラムにより定められた領域に管理サーバー300のアドレスが記憶されていない場合は、その領域にアドレスが設定されていない場合、または、その領域にアドレスが設定されているが管理サーバー300のアドレスと異なる場合を含む。HDD115に管理サーバー300のアドレスが予め記憶されており、起動制御部65は、HDD115に記憶された管理サーバー300のアドレスを、HDD115のトンネル接続プログラムにより定められた領域に格納されたアドレスと比較する。起動制御部65は、HDD115のトンネル接続プログラムにより定められた領域に格納されたアドレスが管理サーバー300のアドレスと同じ場合は、HDD115のトンネル接続プログラムにより定められた領域に管理サーバー300のアドレスを格納しない。このため、起動制御部65は、HDD115のトンネル接続プログラムにより定められた領域に管理サーバー300のアドレスが格納された後には、再度更新する処理を実行しないようにして、MFP100に常時接続を早期に確立させることができる。
CPU111がトンネル接続プログラムを実行すると、CPU111に常時接続確立部51、接続指示受信部53およびサービス接続確立部55が実現される。
常時接続確立部51は、HDD115のトンネル接続プログラムにより定められた領域に格納された管理サーバー300のアドレスを取得する。そして、常時接続確立部51は、管理サーバー300のアドレスを用いて、管理サーバー300に常時接続の確立を要求し、管理サーバー300との間で常時接続を確立する。具体的には、CPU111は、通信I/F部112を制御して、管理サーバー300に常時接続の確立を要求する信号を送信し、管理サーバー300との間で常時接続を確立する。常時接続確立部51は、常時接続が確立されると、それを識別するための常時接続IDを接続指示受信部53に出力する。
常時接続確立部51が管理サーバー300に常時接続の確立を要求しても常時接続が確立されない場合がある。例えば、通信エラーなどが原因で、常時接続が確立されない場合がある。起動制御部65は、CPU111がトンネル接続プログラムを実行するタスクを監視しており、常時接続が確立されたか否かを判断する。常時接続が確立されない場合に、常時接続が確立されなかったことを示すエラー情報を支援サーバー200に支援用接続を介して送信する。
接続指示受信部53は、通信I/F部112を制御して、常時接続を介して管理サーバー300から接続指示を受信する。管理サーバー300からは、接続指示とともにサービス提供サーバー400のアドレス情報が送信されるので、接続指示受信部53はサービス提供サーバー400のアドレス情報を受信する。接続指示受信部53は、接続指示を受信することに応じて、サービス提供サーバー400のアドレス情報をサービス接続確立部55に出力する。
サービス接続確立部55は、サービス提供サーバー400のアドレス情報を用いて、サービス提供サーバー400にトンネル接続を要求する。具体的には、サービス接続確立部55は、通信I/F部112を制御して、サービス提供サーバー400のアドレス情報宛てに通信の開始を要求する信号を送信する。これにより、MFP100とサービス提供サーバー400との間でサービス接続が確立される。
サービス提供サーバー400は、サービス接続が確立されると、制御対象装置であるMFP100を制御する。処理実行部57は、サービス接続を介してサービス提供サーバー400から受信される指令に従って処理を実行する。例えば、サービス提供サーバー400がプリントジョブをMFP100にサービス接続を介して送信する場合、処理実行部57はそのプリントジョブを実行する。
サービス接続確立部55は、サービス提供サーバー400による制御が終了すると、サービス接続を切断する。例えば、処理実行部57がサービス提供サーバー400から受信されたプリントジョブの実行する場合、処理実行部57はプリントジョブの実行結果をサービス提供サーバー400に返信する。サービス接続確立部55は、プリントジョブの実行結果がサービス提供サーバー400に返信された後にサービス接続を切断する。
停止制御部67は、通信I/F部112が支援用接続を介して支援サーバー200から切断指示を受信することに応じて、常時接続確立部51により確立された常時接続を切断する。具体的には、CPU111がトンネル接続プログラムを実行するタスクを終了させる。これにより、管理サーバー300においてMFP100との間で常時接続が確立される時間をできるだけ短くすることができる。
図8は、トンネル接続支援処理の流れの一例を示すフローチャートである。トンネル接続支援処理は、支援サーバー200が備えるCPU201が、ROM202、HDD204またはCD-ROM208Aに記憶されたトンネル接続支援プログラムを実行することにより、CPU201により実行される処理である。図8を参照して、支援サーバー200が備えるCPU201は、通信部205がMFP100,100A,100Bのいずれかから支援用接続の確立を要求する信号を受信したか否かを判断する(ステップS01)。支援用接続の確立を要求する信号が受信されたならば処理はステップS02に進むが、そうでなければ処理はステップS03に進む。ステップS02においては、支援用接続の確立を要求する信号を送信してきた装置との間で支援用接続が確立される。MFP100,100A,100Bそれぞれは、起動すると支援用接続の確立を要求する信号を送信するので、MFP100,100A,100Bのうち起動している装置のすべてと支援用接続が確立される。
ステップS03においては、通信部205がサービス提供サーバー400から制御要求情報を受信したか否かが判断される。制御要求情報は、サービス提供サーバー400が制御対象装置の制御を要求する情報である。制御要求情報が受信されたならば処理はステップS04に進むが、そうでなければ処理はステップS10に進む。制御要求情報は、制御対象装置のアドレス情報と、サービス提供サーバー400のアドレス情報とを含む。
ステップS04においては、接続先が特定され、処理はステップS05に進む。接続先は、サービス提供サーバー400が制御の対象とする装置である。制御要求情報に含まれる制御対象装置のアドレス情報に基づいて接続先が特定される。ステップS05においては、接続先の制御対象装置に起動指示が送信され、処理はステップS06に進む。ステップS01において接続先の制御対象装置との間で確立された支援用接続を介して、起動指示が送信される。起動指示は、トンネル接続プログラムの実行を指示するコマンドである。ステップS06においては、通信部205が支援用接続を介してエラー情報を受信したか否かが判断される。エラー情報は、制御対象装置において管理サーバー300との間で常時接続が確立されない場合に制御対象装置から送信される。エラー情報が受信されたならば処理はステップS09に進むが、そうでなければ処理はステップS07に進む。ステップS09においては、サービス提供サーバー400にエラーが通知され、処理はステップS01に戻る。具体的には、制御対象装置を制御できないことを示すエラー信号がサービス提供サーバー400に送信される。これにより、サービス提供サーバー400を操作するユーザーに、制御対象装置を制御できないことを通知することができる。
ステップS07においては、履歴が記憶され、処理はステップS08に進む。履歴は、制御対象装置がトンネル接続をする期間を示す。具体的には、履歴には、制御対象装置を識別するための装置IDと、トンネル接続を開始した開始日時と、トンネル接続を終了した終了日時とが含まれる。ここでは、装置IDに制御対象装置の装置IDが設定され、制御対象装置に起動指示が送信された日時が開始日時に設定された履歴が生成され、HDD115に記憶される。
ステップS08においては、管理サーバー300に制御要求情報がサービス提供サーバー400に代わって送信され、処理はステップS01に戻る。制御要求情報は、ステップS03においてサービス提供サーバー400から受信された情報である。これにより、管理サーバー300は、制御要求情報を受信する場合、サービス提供サーバー400から制御要求情報を受信する場合と同様に処理する。具体的には、管理サーバー300は、制御要求情報に含まれる制御対象装置のアドレス情報からMFP100を特定し、常時接続を介してMFP100に接続指示を送信する。
ステップS10においては、切断条件が成立したか否かが判断される。切断条件が成立したならば処理はステップS11に進むが、そうでなければ処理はステップS01に戻る。切断条件を、トンネル接続が確立されてからの経過時間が所定の時間以上となる条件とする場合、HDD115に記憶された履歴を参照して、終了日時が設定されていない履歴の開始日時からの経過時間が算出される。所定の時間は、制御対象装置がサービス提供サーバー400から受信されるジョブの種類に基づいて決定した時間である。例えば、ジョブがプリントジョブの場合には、そのプリント枚数からジョブが実行される時間を所定の時間に決定する。ジョブが画像処理の場合、画像処理の対象となるデータのサイズおよび画像処理の内容から所定の時間を決定する。
また、MFP100からサービス接続が切断されたことが通知される場合、切断条件を、サービス接続が切断されてからの経過時間が所定の時間以上となる条件とすることができる。この場合、MFP100からサービス接続が切断されたことの通知を受けてから所定の時間が経過すると切断条件が成立したと判断される。
また、起動指示を送信した装置が複数の場合、切断条件を起動指示が送信された日時が最も先の装置としてもよい。この場合、HDD115に記憶された履歴を参照して、終了日時が設定されていない履歴のうちで開始日時が最も先の装置に対して切断条件が成立したと判断する。また、切断条件を、常時接続が確立されている装置が所定数以上の場合は過去にトンネル接続が確立された回数が最小の装置とする条件としてもよい。この場合、HDD115に記憶された履歴を参照して、終了日時が設定されている履歴の数が最も少ない装置に対して切断条件が成立したと判断される。
ステップS11においては、切断条件が成立した装置に切断指示が送信され、処理はステップS12に進む。切断指示は、常時接続の切断を指示するコマンドである。切断指示を受信する装置は、管理サーバー300との間で確立されている常時接続を切断する。
次のステップS12においては、履歴が更新され、処理はステップS01に戻る。HDD115に記憶された履歴のうち切断条件が成立した装置の装置IDを含む履歴の終了日時に切断指示が送信された日時が設定される。
図9は、装置支援処理の流れの一例を示すフローチャートである。装置支援処理は、MFP100が備えるCPU111が装置支援プログラムを実行することによりCPU111により実行される処理である。図9を参照して、MFP100が備えるCPU111は、通信I/F部112を制御して、支援サーバー200に支援用接続の確立を要求する信号を送信し(ステップS21)、処理をステップS22に進める。ステップS22においては、支援サーバー200との間で支援用接続が確立されたか否かが判断される。支援用接続が確立されるまで待機状態となり(ステップS22でNO)、支援用接続が確立されたならば(ステップS22でYES)、処理はステップS23に進む。
ステップS23においては、通信I/F部112が支援用接続を介して支援サーバー200から起動指示を受信したか否かが判断される。起動指示が受信されるまで待機状態となり(ステップS23でNO)、起動指示が受信されたならば(ステップS23でYES)、処理はステップS24に進む。
ステップS24においては、常時接続の確立の要求先が設定されているか否かが判断される。常時接続の確立の要求先は、トンネル接続プログラムにより定められる。常時接続の確立の要求先が設定されているならば処理はステップS26に進むが、常時接続の確立の要求先が設定されていなければ処理はステップS25に進む。ステップS25においては、常時接続の確立の要求先に管理サーバー300のアドレスが設定され、処理はステップS26に進む。常時接続の確立の要求先に管理サーバー300のアドレスが設定されている場合はステップS25が実行されないので、常時接続を早期に確立させることができる。
ステップS26においては、トンネル接続プログラムが起動され、処理はステップS27に進む。トンネル接続プログラムで定められる処理の詳細は後述するが、起動すると管理サーバー300のアドレスを用いて、管理サーバー300に常時接続の確立を要求する。ステップS27においては、管理サーバー300との間で常時接続が確立されたか否かが判断される。常時接続が確立されたならば処理はステップS28に進むが、そうでなければ処理はステップS30に進む。
ステップS28においては、支援用接続を介して支援サーバー200から切断指示が受信されたか否かが判断される。切断指示が受信されるまで待機状態となり(ステップS28でNO)、切断指示が受信されたならば(ステップS28でYES)、処理はステップS29に進む。ステップS29おいては、CPU111は、ステップS26で起動したトンネル接続プログラムを実行するタスクを終了させ、処理をステップS23に戻す。
一方、ステップS30においては、支援用接続を介して支援サーバー200に常時接続が確立されなかったことを示すエラー情報が送信され、処理はステップS29に進む。ステップS29においては、CPU111は、ステップS26で起動したトンネル接続プログラムを実行するタスクを終了させ、処理をステップS23に戻す。
図10は、トンネル接続処理の流れの一例を示すフローチャートである。トンネル接続処理は、MFP100が備えるCPU111がトンネル接続プログラムを実行することによりCPU111により実行される処理である。図10を参照して、MFP100が備えるCPU111は、管理サーバー300に常時接続の確立を要求する信号を送信し(ステップS31)、処理をステップS32に進める。ステップS32においては、常時接続が確立されたか否かを判断する。常時接続が確立されるまで待機状態となり(ステップS32でNO)、常時接続が確立されたならば(ステップS32でYES)、処理はステップS33に進む。
ステップS33においては、常時接続を介して管理サーバー300から接続指示が受信されたか否かが判断される。接続指示が受信されるまで待機状態となり(ステップS33でNO)、接続指示が受信されたならば処理はステップS34に進む。管理サーバー300からは、接続指示とともにサービス提供サーバー400のアドレス情報が送信されるので、接続指示とともにサービス提供サーバー400のアドレス情報が受信される。
ステップS34においては、サービス提供サーバー400のアドレス情報を用いて、サービス提供サーバー400にトンネル接続が要求され、処理はステップS35に進む。具体的には、CPU111は、通信I/F部112を制御して、サービス提供サーバー400のアドレス情報宛てに通信の開始を要求する信号を送信する。
ステップS35においては、サービス提供サーバー400との間でサービス接続が確立されたか否かが判断される。サービス接続が確立されるまで待機状態となり(ステップS35でNO)、サービス接続が確立されたならば(ステップS35でYES)、処理はステップS36に進む。ステップS36においては、サービス接続を介してサービス提供サーバー400からジョブが受信されたか否かが判断される。ジョブが受信されるまで待機状態となり(ステップS36でNO)、ジョブが受信されると(ステップS36でYES)、処理はステップS37に進む。ステップS37においては、サービス提供サーバー400から受信されたジョブが実行され、処理はステップS38に進む。
ステップS38においては、サービス接続が切断され、処理はステップS33に戻る。なお、ジョブを実行した結果をサービス提供サーバー400にサービス接続を介して送信した後に、サービス接続が切断される。
図11は、トンネル接続仲介処理の流れの一例を示すフローチャートである。トンネル接続仲介処理は、管理サーバー300が備えるCPUがトンネル接続仲介プログラムを実行することにより、管理サーバー300が備えるCPUにより実行される処理である。図11を参照して、管理サーバー300が備えるCPUは、MFP100,100A,100Bのいずれかから常時接続の確立を要求する信号を受信したか否かを判断する(ステップS51)。常時接続の確立を要求する信号が受信されたならば処理はステップS52に進むが、そうでなければ処理はステップS53に進む。ステップS52においては、常時接続の確立を要求する信号を送信してきた装置との間で常時接続を確立し、処理はステップS51に戻る。常時接続が確立される場合、常時接続と、常時接続の確立を要求してきた装置とを関連付けた常時接続情報が生成され、記憶される。
ステップS53においては、支援サーバー200から制御要求情報が受信されたか否かが判断される。制御要求情報は、サービス提供サーバー400が制御対象装置の制御を要求する情報である。制御要求情報が受信されたならば処理はステップS54に進むが、そうでなければ処理はステップS57に進む。制御要求情報は、制御対象装置のアドレス情報と、サービス提供サーバー400のアドレス情報とを含む。本実施の形態においては、制御要求情報はサービス提供サーバー400から支援サーバー200に送信されるが、支援サーバー200がサービス提供サーバー400に代わって管理サーバー300に送信する。このため、制御要求情報は、支援サーバー200から受信される。
ステップS54においては、接続先が特定され、処理はステップS55に進む。接続先は、サービス提供サーバー400が制御の対象とする装置である。制御要求情報に含まれる制御対象装置のアドレス情報に基づいて接続先が特定される。ステップS55においては、接続先の制御対象装置に対して確立された常時接続が特定され、処理はステップS56に進む。ステップS56においては、特定された常時接続を介して制御対象装置に接続指示が送信され、処理はステップS51に戻る。接続指示とともに、制御要求情報に含まれるサービス提供サーバー400のアドレス情報が送信される。
ステップS57においては、常時接続が切断されたか否かが判断される。常時接続が切断されたならば処理はステップS58に進むが、そうでなければ処理はステップS51に戻る。ステップS58においては、常時接続情報が消去され、処理はステップS51に戻る。ステップS52において常時接続が確立される段階で生成される常時接続情報が消去される。
以上説明したように本実施の形態における支援サーバー200は、情報処理システム1を支援するために、制御対象装置であるMFP100,100A,100Bそれぞれからの要求に応じてMFP100,100A,100Bそれぞれとの間で通信するための支援用接続を確立し、サービス提供サーバー400から例えばMFP100の制御が要求される場合に、サービス提供サーバー400に代わって管理サーバー300にMFP100の制御を要求し、サービス提供サーバー400からMFP100の制御が要求される場合に、支援用接続を介してMFP100を制御して、MFP100に管理サーバー300との間で常時接続を確立させる。管理サーバー300は、MFP100からの要求に応じて制御対象装置との間で通信するための常時接続を確立し、サービス提供サーバー400からMFP100の制御が要求される場合に常時接続を介してMFP100を制御してサービス提供サーバー400にアクセスさせる。サービス提供サーバー400からMFP100の制御が要求される場合に、支援用接続を介してMFP100を制御して、MFP100に管理サーバー300との間で常時接続を確立させる。このため、MFP100によって管理サーバー300との間で常時接続が確立されるので、管理サーバー300においてMFP100との間で常時接続を常に確立しておく必要がない。また、サービス提供サーバー400からMFP100の制御が要求される場合に、サービス提供サーバー400に代わって管理サーバー300に制御対象装置の制御が要求されるので、管理サーバー300がMFP100を制御してサービス提供サーバー400にアクセスさせる。このため、管理サーバー300の機能が維持される。その結果、情報処理システム1の機能を維持しつつ情報処理システム1の負荷を低減することができる。
また、管理サーバー300は、サービス提供サーバー400が提供するサービスを示す接続先アドレス情報を含む接続要求を、サービス提供サーバー400に代わる支援サーバー200から受けることに応じて、サービス提供サーバー400から受けた場合と同様に、MFP100に接続先アドレス情報を含む接続指示を常時接続を介して送信する。支援サーバー200は、MFP100を制御して、管理サーバー300に常時接続を要求させ、管理サーバー300から常時接続を介して接続指示が受信されることに応じて、接続指示に含まれる接続先アドレス情報を用いてサービス提供サーバー400にアクセスさせる。このため、情報処理システム1を改変することなく、情報処理システム1を機能させることができる。
また、MFP100が常時接続を確立した後に支援用接続を介してMFP100を制御して常時接続を切断させる。このため、MFP100と管理サーバー300との間で常時接続が確立される期間を短くすることができ、管理サーバー300の負荷を低減することができる。
また、支援サーバー200は、MFP100がサービス提供サーバー400により制御されて実行する処理の種類に基づいて、MFP100に常時接続を切断させるタイミングを決定する。このため、MFP100がサービス提供サーバー400により制御される時間を確保しつつ、常時接続が確立される期間をできるだけ短くすることができる。
また、支援サーバー200は、MFP100,100A,100Bのうち常時接続を確立した装置が所定数以上の場合、所定数以上の装置のうちで最も先に常時接続を確立した装置に常時接続を切断させる。このため、管理サーバー300との間で常時接続を確立する装置が所定数より少なくなるので、管理サーバー300の負荷が大きくならないようにできる。
また、支援サーバー200は、MFP100,100A,100Bのうち常時接続を確立した装置が所定数以上の場合、所定数以上の装置のうちでサービス提供サーバー400から制御が要求された回数が最小の装置に常時接続を切断させる。このため、管理サーバー300との間で常時接続を確立する装置が所定数より少なくなるので、管理サーバー300の負荷が大きくならないようにできる。
また、MFP100,100A,100Bそれぞれは、常時接続の要求先として管理サーバー300のアドレスが設定されていない場合に管理サーバー300のアドレスを常時接続の要求先として設定する。このため、常時接続の要求先に管理サーバー300のアドレスが設定されている場合には設定しないので、処理を省略して常時接続が確立するまでの時間を短くすることができる。
また、支援サーバー200は、MFP100が常時接続を確立しない場合、サービス提供サーバー400にMFP100を制御できないことを通知する。このため、サービス提供サーバー400を操作するユーザーの利便性が向上する。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。