以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
図1は、本発明の実施の形態の1つにおける情報処理システムの全体概要の一例を示す図である。図1を参照して、情報処理システム1は、管理サーバー300と、中継装置として機能するゲートウェイ(G/W)装置200と、複合機であるMFP(Multi Function Peripheral)100,100A,100Bと、を含む。管理サーバー300およびゲートウェイ装置200それぞれは、インターネット5に接続されており、インターネット5を介して互いに通信可能である。さらに、管理サーバー300およびゲートウェイ装置200それぞれは、インターネット5に接続された他のコンピューターと通信可能である。ここでは、インターネット5に接続された他のコンピューターの一例としてクラウドサーバー400を示している。
ゲートウェイ装置200は、さらに、ローカルエリアネットワーク(LAN)3と接続されており、そのLAN3に、MFP100,100A,100Bが接続されている。ゲートウェイ装置200は、LAN3に接続されたMFP100,100A,100Bと通信可能である。さらに、ゲートウェイ装置200およびMFP100,100A,100Bそれぞれは、LAN3に接続された他のコンピューターと通信可能である。
ゲートウェイ装置200は、ファイアーウォール機能を有し、ファイアーウォールの内部のLAN3と、ファイアーウォールの外部のインターネット5とを接続する。ゲートウェイ装置200は、インターネット5に接続された管理サーバー300およびクラウドサーバー400から、LAN3に接続されたMFP100,100A,100Bへのアクセスを制限する。ゲートウェイ装置200が有するファイアーウォール機能は、特に限定するものではないが、パケットに含まれるアドレスに基づいて通信の許可または不許可を判定するパケットフィルター型のファイアーウォール機能である。なお、アプリケーション層のプロトコルのレベルで外部との通信を代替し、制御するアプリケーション型のファイアーウォール機能であってもよい。なお、ゲートウェイ装置200が配置される位置は、ファイアーウォールの内部である。
本実施の形態における情報処理システム1においては、ファイアーウォールの外部のインターネット5に接続されたコンピューター、ここではクラウドサーバー400が、ファイアーウォールの内部のLAN3に接続されたMFP100,100A,100Bのいずれかを制御することを可能にする。MFP100,100A,100Bは、クラウドサーバー400によって制御の対象となる制御対象装置である。クラウドサーバー400は、ファイアーウォールの内部のLAN3に接続されたパーソナルコンピューター(以下「PC」という)からアクセスされて、そのPCを操作するユーザーによる指示にしたがってサービスを提供するための処理を実行する場合と、ファイアーウォールの外部のインターネット5に接続されたPCからアクセスされて、そのPCを操作するユーザーによる指示にしたがってサービスを提供するための処理を実行する場合と、がある。ここでは、一例として、クラウドサーバー400が、それが提供するサービスに基づく処理を実行し、その結果得られるデータに対してMFP100に処理を実行させる場合を例に説明する。この場合、クラウドサーバー400はMFP100に処理を実行させるための制御コマンドを送信する。
クラウドサーバー400がMFP100に送信する制御コマンドが、ゲートウェイ装置200のファイアーウォールを通過するようにするために、ゲートウェイ装置200は、クラウドサーバー400とMFP100との間でトンネル接続を確立する。トンネル接続を確立する技術は、種々の方法があるが、ここでは、管理サーバー300がトンネル接続を支援する方法を例に説明する。
ゲートウェイ装置200は、予め記憶された管理サーバー300のネットワークアドレスを用いて管理サーバー300との間で通信セッションの確立を要求する。ゲートウェイ装置200は、ファイアーウォールの内部であり、管理サーバー300は、ファイアーウォールの外部なので、ファイアーウォールを通過する通信セッションが確立される。この通信セッションを、以下、常時接続セッションという。
ゲートウェイ装置200は、管理サーバー300との間で常時接続セッションを確立すると、LAN3に接続されたMFP100,100A,100Bそれぞれを識別するための装置識別情報を管理サーバー300に常時接続セッションを介して送信する。管理サーバー300においては、ゲートウェイ装置200に接続されたMFP100,100A,100Bを認識する。
次に、クラウドサーバー400が管理サーバー300との間で、通信セッションを確立する。ここで、クラウドサーバー400と管理サーバー300との間で確立される通信セッションをグローバルセッションという。管理サーバー300は、ゲートウェイ装置200から受信されたMFP100,100A,100Bそれぞれの装置識別情報を受信しているので、クラウドサーバー400を操作するユーザーに対して、トンネル接続が可能な装置としてMFP100,100A,100Bのうちからいずれかを選択させる。ここでは、クラウドサーバー400を操作するユーザーによって、トンネル接続する装置としてMFP100が選択される場合を例に説明する。
クラウドサーバー400は、クラウドサーバー400を操作するユーザーによって、トンネル接続する装置としてMFP100が選択される場合、MFP100のアドレス情報と、クラウドサーバー400のアドレス情報と、制御情報と、を含む接続要求を管理サーバー300に送信する。クラウドサーバー400を操作するユーザーによって、トンネル接続する装置として選択されるMFP100は、クラウドサーバー400によって制御の対象となる。
MFP100のアドレス情報は、ゲートウェイ装置200の装置識別情報とMFP100の装置識別情報とを含む。クラウドサーバー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を操作するユーザーによって指定されたサービスに対応するジョブである。クラウドサーバー400のアドレス情報であるURLが、ジョブIDを含むため、そのURLにアクセスしてきた装置をジョブIDにより特定されるジョブと対応付けることができる。換言すれば、クラウドサーバー400を操作するユーザーによって指定されたサービスを提供する処理に対応するジョブを、制御対象装置、ここではMFP100と対応付けることができる。制御情報は、ジョブIDにより特定されるジョブが制御対象装置であるMFP100に実行させる処理の内容を示す。
管理サーバー300は、クラウドサーバー400から接続要求を受信する場合、接続要求に含まれるMFP100のアドレス情報に含まれるゲートウェイ装置200の装置識別情報に基づいてゲートウェイ装置200を特定し、接続要求をゲートウェイ装置200に常時接続セッションを介して転送する。この場合、接続要求を、常時接続セッションに対応するプロトコルに応じてカプセル化して送信する。
ゲートウェイ装置200は、さらに、管理サーバー300から接続要求を受信すると、接続要求に含まれるクラウドサーバー400のアドレス情報に基づいて、クラウドサーバー400との間で通信セッションを確立する。ここで、ゲートウェイ装置200とクラウドサーバー400との間で確立される通信セッションを第1通信セッションという。これにより、ファイアーウォールを通過するトンネル接続が完了する。
ゲートウェイ装置200は、管理サーバー300から接続要求を受信すると、接続要求に含まれるMFP100のアドレス情報に含まれるMFP100の装置識別情報に基づいてMFP100を特定し、MFP100との間で通信セッションを確立する。ここで、ゲートウェイ装置200とMFP100との間で確立される通信セッションを第2通信セッションという。
ゲートウェイ装置200は、クラウドサーバー400との間で確立された第1通信セッションと、MFP100との間で確立された第2通信セッションとを接続することによって、クラウドサーバー400とMFP100との間の通信を中継する。
なお、トンネル接続の方法は、これに限定されることなく、他の方法を用いてもよい。例えば、管理サーバー300がゲートウェイ装置200と同様に、クラウドサーバー400とMFP100との間の通信を中継するようにしてもよい。例えば、ゲートウェイ装置200が、MFP100,100A,100Bそれぞれに対応する常時接続セッションを管理サーバー300との間で確立し、管理サーバー300は、クラウドサーバー400との間で確立したグローバルセッションを、クラウドサーバー400のユーザーにより指定されたMFP100に対応する常時接続セッションとを接続することによって、クラウドサーバー400とMFP100との間の通信を中継する。この場合、クラウドサーバー400は、MFP100のアドレス情報を送信すればよく、クラウドサーバー400のアドレス情報を送信する必要はない。ただし、管理サーバー300が中継のための処理を実行するため、負荷が増大する。
クラウドサーバー400が提供するサービスは、例えば、クラウドサーバー400がMFP100のプログラムのバージョンを管理し、バージョンアップに基づくアップデートを実行するプログラム管理サービス、クラウドサーバー400をファイルサーバーとして機能させるサービス、画像データに対して画像処理を実行するサービスを含む。画像処理は、限定するものではないが、例えば、写真が表された画像データを先鋭化、スムージング等の処理を実行する処理であってもよいし、文字が表された画像データを文字認識する処理であってもよいし、言語を他の言語に翻訳する処理であってもよい。
管理サーバー300、クラウドサーバー400は、一般的なコンピューターであり、それらのハードウェア構成および機能は周知なので、ここでは説明を繰り返さない。MFP100,100A,100Bのハードウェア構成および機能は同じなので、ここでは特に言及しない限りMFP100を例に説明する。
図2は、ゲートウェイ装置のハードウェア構成の概要の一例を示すブロック図である。図2を参照して、本実施の形態におけるゲートウェイ装置200は、ゲートウェイ装置200の全体を制御するためのCPU(Central Processing Unit)201と、CPU201が実行するためのプログラム等を記憶するROM(Read Only Memory)202と、CPU201の作業領域として用いられるRAM(Random Access Memory)203と、データを不揮発的に記憶するフラッシュメモリ204と、第1通信部205と、第2通信部206と、外部記憶装置209と、を含む。
第1通信部205は、ゲートウェイ装置200をインターネット5に接続するための通信インターフェース(I/F)である。第2通信部206は、ゲートウェイ装置200をLAN3に接続するための通信インターフェース(I/F)である。
フラッシュメモリ204は、CPU201が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。CPU201は、フラッシュメモリ204に記録されたプログラムを、RAM203にロードして実行する。外部記憶装置209は、ゲートウェイ装置200に着脱自在であり、プログラムを記憶したCD−ROM209Aが装着可能である。CPU201は、外部記憶装置209を介してCD−ROM209Aにアクセス可能である。CPU201は、外部記憶装置209に装着されたCD−ROM209Aに記録された中継プログラムを、RAM203にロードして実行することが可能である。
なお、CPU201が実行するプログラムとして、フラッシュメモリ204またはCD−ROM209Aに記録されたプログラムについて説明したが、インターネット5に接続された他のコンピューターが、フラッシュメモリ204に記憶されたプログラムを書換えたプログラム、または、追加して書き込んだ新たなプログラムであってもよい。さらに、ゲートウェイ装置200が、インターネット5に接続された他のコンピューターからダウンロードしたプログラムでもよい。ここでいうプログラムは、CPU201が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
なお、CPU201が実行するプログラムを記憶する媒体としては、CD−ROM209Aに限られず、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、ICカード、光カード、マスクROM、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)などの半導体メモリであってもよい。
図3は、MFPのハードウェア構成の概要の一例を示すブロック図である。図3を参照して、MFP100は、メイン回路110と、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、画像が形成された用紙を処理する後処理部155と、ユーザーインターフェースとしての操作パネル160とを含む。
後処理部155は、画像形成部140により画像が形成された1以上の用紙を並び替えて排紙するソート処理、パンチ穴加工するパンチ処理、ステップル針を打ち込むステップル処理を実行する。
メイン回路110は、CPU111と、通信インターフェース(I/F)部112と、ROM113と、RAM114と、大容量記憶装置としてのハードディスクドライブ(HDD)115と、ファクシミリ部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は、ゲートウェイ装置200を介して、インターネットに接続されたコンピューター、例えば、クラウドサーバー400と通信が可能である。
ファクシミリ部116は、公衆交換電話網(PSTN)に接続され、PSTNにファクシミリデータを送信する、またはPSTNからファクシミリデータを受信する。ファクシミリ部116は、受信したファクシミリデータを、HDD115に記憶する、または画像形成部140に出力する。画像形成部140は、ファクシミリ部116により受信されたファクシミリデータを用紙にプリントする。また、ファクシミリ部116は、HDD115に記憶されたデータをファクシミリデータに変換して、PSTNに接続されたファクシミリ装置に送信する。
外部記憶装置117は、CD−ROM(Compact Disk ROM)118が装着される。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が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
図4は、本実施の形態における管理サーバーのハードウェア構成の概要の一例を示すブロック図である。図4を参照して、管理サーバー300は、管理サーバー300の全体を制御するためのCPU301と、CPU301が実行するためのプログラムを記憶するROM302と、CPU301の作業領域として使用されるRAM303と、データを不揮発的に記憶するHDD304と、CPU301をインターネット5に接続する通信部305と、情報を表示する表示部306と、ユーザーの操作の入力を受け付ける操作部307と、外部記憶装置309と、を含む。
外部記憶装置309は、CD−ROM309Aが装着される。CPU301は、外部記憶装置309を介してCD−ROM309Aにアクセス可能である。CPU301は、外部記憶装置309に装着されたCD−ROM309Aに記録されたプログラムをRAM303にロードして実行する。なお、CPU301が実行するプログラムを記憶する媒体としては、CD−ROM309に限られず、光ディスク、ICカード、光カード、マスクROM、EPROM、EEPROMなどの半導体メモリであってもよい。
また、CPU301が実行するプログラムは、CD−ROM309に記録されたプログラムに限られず、HDD304に記憶されたプログラムをRAM303にロードして実行するようにしてもよい。この場合、インターネット5に接続された他のコンピューターが、PC300のHDD304に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、管理サーバー300が、インターネット5に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD304に記憶するようにしてもよい。ここでいうプログラムは、CPU301が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
図5は、管理サーバーが備えるCPUの機能の一例を示すブロック図である。図5に示す機能は、管理サーバー300が備えるCPU301が、ROM302、HDD304またはCD−ROM309Aに記憶された接続支援プログラムを実行することにより、CPU301に形成される機能である。図5を参照して、管理サーバー300が備えるCPU301は、グローバル確立部351と、サーバー側確立部353と、更新決定部355と、実行可否判断部357と、を含む。
サーバー側確立部353は、通信部305を制御して、ゲートウェイ装置200との間で通信セッションを確立する。ここで確立する通信セッションは、常時接続セッションである。サーバー側確立部353は、ゲートウェイ装置200から通信セッションの確立要求を受信することに応じて、通信セッションを確立する。サーバー側確立部353は、装置情報取得部371と、トンネル接続要求部373と、制御不可信号受信部375と、を含む。
装置情報取得部371は、ゲートウェイ装置200との間で確立された常時接続セッションを介して、ゲートウェイ装置200から装置情報を受信する。ゲートウェイ装置200の機能の詳細は後述するが、ゲートウェイ装置200は、LAN3に接続された装置、ここでは、MFP100,100A,100Bそれぞれに対応する装置情報を収集し、収集された装置情報を、常時接続セッションを介して管理サーバー300に送信する。MFP100,100A,100Bそれぞれの装置情報は、MFP100,100A,100Bそれぞれを識別するための装置識別情報と、それぞれの状態を示す状態情報とを含む。装置識別情報は、特に限定するものではないが、MFP100,100A,100Bそれぞれに対してLAN3において割り当てられたローカルIP(Internet Protocol)アドレスである。状態情報は、MFP100,100A,100Bそれぞれにおいて、実行可能な処理を特定する能力情報、処理を実行するために用いられるパラメータの設定値、実行中のジョブに関するジョブ実行情報、操作中の有無を示す操作状態、エラーの発生状態、オプション機器の構成、ファームウェアプログラムのバージョン情報、アプリケーションプログラムのバージョン情報、HDD116の残容量、プリント枚数のカウンター値、待機ジョブの数、等を含む。
装置情報取得部371は、確立時取得部381と、要求時取得部383と、を含む。確立時取得部381は、ゲートウェイ装置200との間で常時接続セッションが確立された直後に、ゲートウェイ装置200が送信する装置情報を受信し、受信される装置情報と、ゲートウェイ装置200の装置識別情報と、をグローバル確立部351に出力する。ゲートウェイ装置200の装置識別情報は、限定するものではないが、インターネット5においてゲートウェイ装置200に割り当てられたグローバルIPアドレスである。要求時取得部383については後述する。
グローバル確立部351は、通信部305を制御して、ファイアーウォールの外部に位置するコンピューターとの間で通信セッションを確立する。ここでは、クラウドサーバー400との間で通信セッションを確立する場合を説明する。ここで確立される通信セッションは、グローバルセッションである。グローバル確立部351は、通信部305を制御して、クラウドサーバー400から通信セッションの確立要求を受信することに応じて、クラウドサーバー400との間でグローバルセッションを確立する。グローバル確立部351は、装置識別情報送信部361と、接続要求受信部363と、接続結果通知部365を含む。
装置識別情報送信部361は、確立時取得部381からゲートウェイ装置200の装置識別情報と、MFP100,100A,100Bそれぞれの装置情報とが入力される。装置識別情報送信部361は、グローバルセッションを介して、クラウドサーバー400にゲートウェイ装置200の装置識別情報と、MFP100,100A,100Bそれぞれの装置識別情報とを送信する。例えば、ゲートウェイ装置200の装置識別情報と、MFP100,100A,100Bそれぞれの装置識別情報と、を含み、ゲートウェイ装置200と、MFP100,100A,100Bのいずれかと、を選択可能な装置選択画面を、クラウドサーバー400に送信する。ここでは、装置選択画面をクラウドサーバー400に送信した後に、クラウドサーバー400において、クラウドサーバー400を操作するユーザーによって、ゲートウェイ装置200の装置識別情報と、MFP100の装置識別情報とが選択される場合を例に説明する。この場合、クラウドサーバー400は、接続要求を管理サーバー300にグローバルセッションを介して送信する。接続要求を送信するコマンドは、装置選択画面に埋め込んでおけばよい。例えば、装置選択画面を、HTML(HyperText Markup Language)、XML(Extensible Markup Language)等のマークアップ言語で記述する場合、接続要求を送信するコマンドを、Java(登録商標)またはJavaScript(登録商標)等のプログラミング言語で装置選択画面に埋め込むことができる。これにより、装置選択画面を表示するクラウドサーバー400において、装置選択画面でMFP100の装置識別情報が指示されることに応じて、接続要求を送信する処理をクラウドサーバー400に実行させることができる。
接続要求は、MFP100のアドレス情報と、クラウドサーバー400のアドレス情報と、制御情報と、を含む。MFP100のアドレス情報は、ゲートウェイ装置200の装置識別情報とMFP100の装置識別情報とを含む。クラウドサーバー400のアドレス情報は、MFP100からクラウドサーバー400にアクセスするためのURLである。URLには、クラウドサーバー400のアドレス(ドメイン名)、ウェブページの識別子、クラウドサーバー400が実行するジョブの識別子(ジョブID)、および待ち受けポートのポート番号が含まれる。制御情報は、ジョブIDにより特定されるジョブが制御対象装置であるMFP100に実行させる処理の内容を示す。
接続要求受信部363は、クラウドサーバー400がグローバルセッションを介して送信する接続要求を受信し、受信された接続要求を、更新決定部355に出力する。
更新決定部355は、装置情報取得部371からMFP100,100A,100Bそれぞれの装置情報が入力され、接続要求受信部363から接続要求が入力される。更新決定部355は、接続要求が入力されることに応じて、接続要求で特定される制御対象装置、ここではMFP100の装置情報を更新するか否かを決定する。更新決定部355は、装置情報を更新することを決定する場合、トンネル接続要求部373に正規接続指示を出力する。正規接続指示は、接続要求受信部363から入力される接続要求を含む。更新決定部355は、装置情報を更新しないことを決定する場合、実行可否判断部357に判断指示を出力する。判断指示は、接続要求受信部363から入力される接続要求を含む。
なお、図中の矢印は、更新決定部355によって更新することが決定された場合の情報の流れを示す矢印を点線で示し、更新決定部355によって更新しないことが決定された場合の情報の流れを示す矢印を太線で示している。
更新決定部355は、処理基準決定部367と、時間基準決定部369と、を含む。処理基準決定部367は、接続要求に含まれる制御情報に基づいて、制御対象装置の装置情報を更新するか否かを決定する。処理基準決定部367は、制御情報が制御対象装置であるMFP100に第1の種類の処理を実行させる内容を示す場合、MFP100の装置情報を更新することを決定する。第1の種類の処理は、例えば、MFP100に画像を形成させる処理、および、MFP100に設定されているパラメータを出力する処理を含む。MFP100が、画像を形成する処理を実行する場合、装置情報が取得された後にMFP100が1以上の画像を形成する処理を実行している場合に、待ち時間が発生する場合があるからである。また、MFP100が、設定されているパラメータを出力する処理を実行する場合、装置情報が取得された後にパラメータが変更されている場合があるからである。
また、処理基準決定部367は、制御情報が、制御対象装置であるMFP100に第2の種類の処理を実行させる内容を示す場合、装置情報を更新しないことを決定する。第2の種類の処理は、制御対象装置であるMFP100が処理を実行するためのパラメータを設定する処理を、含む。MFP100が、処理を実行するためのパラメータを設定する処理を実行する場合、その処理を実行した後にパラメータが設定され、その処理を実行する前のパラメータによって、処理を実行する結果は変わらないからである。
時間基準決定部369は、制御対象装置であるMFP100の装置情報が最後に取得されてからの経過時間が所定の時間以内の場合、更新しないことを決定し、経過時間が所定の時間を超える場合、更新することを決定する。所定の時間経過する場合には、装置情報が変更されている場合があるからである。
<制御情報を更新しない場合>
更新決定部355は、制御情報を更新しないことを決定する場合、実行可否判断部357に判断指示を出力する。判断指示は、接続要求受信部363から入力される接続要求を含む。
実行可否判断部357は、更新決定部355から判断指示が入力され、装置情報取得部371からMFP100,100A,100Bそれぞれの装置情報が入力される。実行可否判断部357に装置情報取得部371から入力されるMFP100,100A,100Bいずれかの装置情報は、更新決定部355から判断指示が入力されるまでに、複数回入力される場合があるが、最後に入力された装置情報を処理対象とする。例えば、要求時取得部383によってMFP100の装置情報が取得される前の段階では、確立時取得部381によって取得された装置情報が処理対象となり、要求時取得部383によってMFP100の装置情報が取得された後の段階では、要求時取得部383によって最後に取得された装置情報が処理対象となる。
実行可否判断部357は、判断指示に含まれる接続要求で特定される制御対象装置であるMFP100の装置情報に基づいて、MFP100が接続要求に含まれる制御情報で特定される処理の実行が可能か否かを判断する。例えば、制御情報で特定される処理が、ジョブを実行する処理の場合、MFP100が別のジョブを実行していなければ実行可能と判断するが、MFP100が別のジョブを実行している場合は、別のジョブと並列で実行可能であることを条件に制御情報で特定される処理を実行可能と判断する。したがって、MFP100が、制御情報で特定される処理を別のジョブと並列で実行できない場合には、制御情報で特定される処理を実行不可能と判断する。
また、制御情報で特定される処理が、HDD115にデータを記憶する処理の場合、HDD115の残容量がデータを記憶するだけ残っていることを条件にデータを記憶する処理を実行可能と判断するが、残容量が残っていない場合はデータを記憶する処理を実行不可能と判断する。さらに、MFP100が、故障でトラブル中の場合には実行不可能と判断する。さらに、制御情報で特定される処理が、MFP100の状態を出力する処理の場合、MFP100が別のジョブを実行していなければ実行可能と判断するが、MFP100が別のジョブを実行している場合は、実行不可能と判断する。
実行可否判断部357は、MFP100が接続要求に含まれる制御情報で特定される処理を実行可能と判断する場合、トンネル接続要求部373に簡易接続指示を出力する。簡易接続指示は、接続要求を含む。
トンネル接続要求部373は、簡易接続要求部395を含む。簡易接続要求部395は、実行可否判断部357から簡易接続指示が入力されることに応じて、常時接続セッションを介して、簡易接続要求を接続要求で特定されるゲートウェイ装置200に送信する。簡易接続要求は、簡易接続指示に含まれる接続要求で特定される制御対象装置、ここでは、MFP100の装置識別情報を含む。簡易接続要求は、常時接続セッションにより定まるプロトコルに適合するようにカプセル化したパケットとして送信される。
実行可否判断部357は、MFP100が接続要求に含まれる制御情報で特定される処理を実行不可能と判断する場合、接続結果通知部365に、実行不可信号を出力する。
簡易接続要求を受信するゲートウェイ装置200は、MFP100との間で通信セッションを確立するが、MFP100との間で通信セッションを確立できない場合には、MFP100を制御できないことを示す制御不可信号を返信する。ゲートウェイ装置200がMFP100との間で通信セッションを確立できない場合は、例えば、MFP100に電源が投入されていない場合、MFP100が通信できないトラブル状態の場合等である。
制御不可信号受信部375は、常時接続セッションを介して、ゲートウェイ装置200が送信する制御不可信号を受信する。制御不可信号受信部375は、制御不可信号をグローバル確立部351の接続結果通知部365に出力する。
接続結果通知部365は、実行可否判断部357から実行不可信号が入力される場合、または、制御不可信号受信部375から制御不可信号が入力される場合、グローバルセッションを介してクラウドサーバー400に、制御対象装置であるMFP100を制御できないことを示す制御不可信号を送信する。クラウドサーバー400においては、クラウドサーバー400のユーザーに制御対象装置であるMFP100を制御不可能であることを示すメッセージを表示するなどして、MFP100を制御できないことを通知することができる。
<制御情報を更新する場合>
更新決定部355は、装置情報を更新することを決定する場合、トンネル接続要求部373に正規接続指示を出力する。正規接続指示は、接続要求受信部363から入力される接続要求を含む。
トンネル接続要求部373は、正規接続要求部391と、接続指示送信部393と、を含む。正規接続要求部391は、更新決定部355から正規接続指示が入力されることに応じて、正規接続要求を、正規接続指示に含まれる接続要求で特定されるゲートウェイ装置200に常時接続セッションを介して送信するとともに、正規接続要求を送信したことを示す信号と接続要求との組を要求時取得部383および接続指示送信部393に出力する。正規接続要求は、正規接続指示に含まれる接続要求で特定される制御対象装置、ここでは、MFP100の装置識別情報を含む。正規接続要求は、常時接続セッションにより定まるプロトコルに適合するようにカプセル化したパケットとして送信される。正規接続要求を受信するゲートウェイ装置200の動作の詳細は後述するが、MFP100との間で通信セッションを確立し、MFP100の装置情報を取得し、取得されMFP100の装置情報を返信する。
装置情報取得部371の要求時取得部383は、正規接続要求部391から正規接続要求を送信したことを示す信号と接続要求との組が入力された後に、ゲートウェイ装置200が送信するMFP100の装置情報を、常時接続セッションを介して受信し、受信されるMFP100の装置情報と接続要求との組を実行可否判断部357に出力する。
実行可否判断部357は、要求時取得部383からMFP100の装置情報と接続要求との組が入力される場合、MFP100の装置情報に基づいて、接続要求で特定される制御情報で特定される処理の実行が可能か否かを判断する。実行可能か否かの判断は、上述したのでここでは説明を繰り返さない。
実行可否判断部357は、MFP100が接続要求に含まれる制御情報で特定される処理を実行可能と判断する場合、接続指示送信部393に送信指示を出力する。
接続指示送信部393は、正規接続要求部391から正規接続要求を送信したことを示す信号が入力された後、実行可否判断部357から送信指示が入力されることに応じて、接続指示をゲートウェイ装置200に常時接続セッションを介して送信する。接続指示は、MFP100の装置識別情報を含む。
実行可否判断部357は、MFP100が接続要求に含まれる制御情報で特定される処理を実行不可能と判断する場合、接続結果通知部365に、実行不可信号を出力する。
正規接続要求を受信するゲートウェイ装置200は、MFP100との間で通信セッションを確立するが、MFP100との間で通信セッションを確立できない場合には、MFP100を制御できないことを示す制御不可信号を返信する。
制御不可信号受信部375、接続結果通知部365の機能は、<制御情報を更新しない場合>において説明した機能と同じなので、ここでは説明を繰り返さない。
図6は、ゲートウェイ装置が備えるCPUの機能の一例を示すブロック図である。図6に示す機能は、ゲートウェイ装置200が備えるCPU201が、ROM202、フラッシュメモリ204またはCD−ROM209Aに記憶された中継プログラムを実行することにより、CPU201に形成される機能である。図6を参照して、ゲートウェイ装置200が備えるCPU201は、常時接続セッション確立部251と、第1セッション確立部253と、装置検出部271と、第2セッション確立部273と、中継部281と、を含む。
中継部281は、制御コマンド抽出部283と、代理送信部285と、代理受信部287と、実行結果受信部291と、実行結果通知部293と、を含む。
また、CPU201は、第1通信制御部250と、第2通信制御部260と、を含む。第1通信制御部250は、第1通信部205を制御し、インターネット5に接続されたコンピューターとの間の通信を制御する。第1通信制御部250は、常時接続セッション確立部251と、第1セッション確立部253と、中継部281に含まれる制御コマンド抽出部283、代理受信部287および実行結果通知部293と、を含む。
第2通信制御部260は、第2通信部206を制御し、LAN3に接続されたMFP100,100A,100Bとの間の通信を制御する。第2通信制御部260は、装置検出部271と、第2セッション確立部273と、中継部281に含まれる代理送信部285および実行結果受信部291と、を含む。
装置検出部271は、ファイアーウォールの内側のLAN3に接続された装置の装置情報を取得する。装置検出部271は、所定のタイミングで、LAN3に接続された装置を探索し、検出される装置の装置情報を取得する。所定のタイミングは、任意に定めることができるが、例えば、ゲートウェイ装置200に電源が投入された時点、または、予め定められた時とすればよい。ここでは、LAN3に接続された装置としてMFP100,100A,100Bを検出する場合を例に説明する。装置検出部271は、第2通信部206を制御してLAN3に接続された装置として検出されるMFP100,100A,100Bそれぞれの装置情報を取得する。装置情報は、MFP100,100A,100Bそれぞれを識別するための装置識別情報と、それぞれの状態を示す状態情報とを含む。装置識別情報は、例えば、ローカルIPアドレスである。装置検出部271は、取得された装置情報を常時接続セッション確立部251に出力する。
常時接続セッション確立部251は、装置検出部271からMFP100,100A,100Bそれぞれの装置識別情報が入力される。常時接続セッション確立部251は、第1通信部205を制御して、管理サーバー300に通信セッションの確立要求を送信し、管理サーバー300との間で通信セッションを確立する。ここで確立される通信セッションは、常時接続される常時接続セッションである。常時接続セッションは、特に限定するものではないが、例えば、XMPP(eXtensible Messaging and Presence Protocol)に基づくメッセージセッションである。フラッシュメモリ204に管理サーバー300のグローバルIPアドレスが予め記憶されており、常時接続セッション確立部251は、フラッシュメモリ204に記憶されているグローバルIPアドレスを用いて管理サーバー300に通信セッションの確立要求を送信し、管理サーバー300と所定のネゴシエーションをすることによって常時接続セッションを確立する。
常時接続セッション確立部251は、起動時装置識別情報送信部255と、トンネル接続要求受信部257と、制御不可通知部259と、を含む。起動時装置識別情報送信部255は、管理サーバー300にファイアーウォール内部のLAN3に接続された装置を通知するために、装置検出部271から入力されるMFP100,100A,100Bそれぞれの装置情報を、常時接続セッションを介して管理サーバー300に送信する。
トンネル接続要求受信部257は、第1通信部205を制御して、管理サーバー300からトンネル接続要求を、常時接続セッションを介して受信する。トンネル接続要求は、管理サーバー300がクラウドサーバー400から受信した接続要求を含む。接続要求は、MFP100のアドレス情報と、クラウドサーバー400のアドレス情報とを含む。MFP100のアドレス情報は、ゲートウェイ装置200の装置識別情報とMFP100の装置識別情報とを含む。クラウドサーバー400のアドレス情報は、MFP100からクラウドサーバー400にアクセスするためのURLである。
トンネル接続要求は、正規接続要求と、簡易接続要求とを含む。正規接続要求および簡易接続要求それぞれは、MFP100のアドレス情報と、クラウドサーバー400のアドレス情報とを含む。トンネル接続要求受信部257は、簡易接続要求受信部261と、正規接続要求受信部263と、確立時装置情報送信部265と、接続指示受信部267と、を含む。なお、図中の矢印は、トンネル接続要求受信部257が簡易接続要求を受信する場合の情報の流れを示す矢印を点線で示し、トンネル接続要求受信部257が正規接続要求を受信する場合の情報の流れを示す矢印を太線で示している。
簡易接続要求受信部261は、管理サーバー300から送信される簡易接続要求を受信する。簡易接続要求受信部261は、簡易接続要求が受信されることに応じて、簡易接続要求に含まれるMFP100のアドレス情報を第1セッション確立部253に出力するとともに、簡易接続要求に含まれるクラウドサーバー400のアドレス情報を第1セッション確立部253に出力するとともに、簡易接続要求に含まれるMFP100のアドレス情報を第2セッション確立部273に出力する。
第1セッション確立部253は、簡易接続要求受信部261からクラウドサーバー400のアドレス情報が入力されることに応じて、第1通信部205を制御して、クラウドサーバー400との間で通信セッションを確立する。ここで確立する通信セッションは、第1通信セッションである。第1セッション確立部253は、第1通信セッションを識別するためのセッション識別情報を中継部281に出力する。
第2セッション確立部273は、簡易接続要求受信部261からMFP100のアドレス情報が入力されることに応じて、第2通信部206を制御して、MFP100に通信セッションの確立要求を送信し、MFP100との間で通信セッションを確立する。ここで確立される通信セッションは第2通信セッションである。第2通信セッションは、特に限定するものではないが、LAN3において用いられる通信プロトコルに準じた通信セッションであればよい。第2セッション確立部273は、第2通信セッションの確立に成功する場合、第2通信セッションを識別するためのセッション識別情報を中継部281に出力する。
正規接続要求受信部263は、管理サーバー300から送信される正規接続要求を受信する。正規接続要求受信部263は、正規接続要求が受信されることに応じて、正規接続要求に含まれるMFP100のアドレス情報を第2セッション確立部273に出力し、正規接続要求に含まれるクラウドサーバー400のアドレス情報を含む受信指示を接続指示受信部267に出力する。
第2セッション確立部273は、正規接続要求受信部263からMFP100のアドレス情報が入力されることに応じて、第2通信部206を制御して、MFP100に通信セッションの確立要求を送信し、MFP100との間で第2通信セッションを確立する。第2セッション確立部273は、第2通信セッションを識別するためのセッション識別情報を中継部281に出力する。
また、第2セッション確立部273は、確立時装置情報取得部275を含む。確立時装置情報取得部275は、第2通信部206を制御して、正規接続要求受信部263から入力されるMFP100のアドレス情報を用いて、第1通信セッションを介して、MFP100から装置情報を取得する。確立時装置情報取得部275は、MFP100から取得された装置情報を確立時装置情報送信部265に出力する。
確立時装置情報送信部265は、確立時装置情報取得部275からMFP100の装置情報が入力されることに応じて、第1通信部205を制御して、MFP100の装置情報を管理サーバー300に常時接続セッションを介して送信する。
接続指示受信部267は、正規接続要求受信部263から受信指示が入力された後、第1通信部205を制御して、管理サーバー300から送信される接続指示を常時接続セッションを介して受信する。接続指示受信部267は、接続指示を受信することに応じて、受信指示に含まれるクラウドサーバー400のアドレス情報を第1セッション確立部253に出力する
第1セッション確立部253は、接続指示受信部267からクラウドサーバー400のアドレス情報が入力されることに応じて、第1通信部205を制御して、クラウドサーバー400との間で第1通信セッションを確立する。第1セッション確立部253は、第1通信セッションを識別するためのセッション識別情報を中継部281に出力する。
第2セッション確立部273は、簡易接続要求受信部261および正規接続要求受信部263のいずれかから制御対象装置、ここではMFP100のアドレス情報が入力される場合、第2通信セッションの確立を確立するが、第2通信セッションの確立に失敗する場合がある。第2セッション確立部273は、第2通信セッションの確立に失敗する場合、制御不可通知部259に制御対象装置と通信できないことを通知する。第2通信セッションが確立されなない場合は、MFP100に電源が投入されていない場合、または、MFP100が通信できないトラブルが発生している場合等である。
制御不可通知部259は、第2セッション確立部273から制御対象装置と通信できないことを通知される場合、制御対象装置を制御できないことを示す制御不可信号を管理サーバー300に常時接続セッションを介して送信する。
中継部281は、第1セッション確立部253から第1通信セッションのセッション識別情報が入力され、第2セッション確立部273から第2通信セッションのセッション識別情報が入力される。中継部281は、第1セッション確立部253により確立された第1通信セッションと、第2セッション確立部273により確立された第2通信セッションとを用いて、クラウドサーバー400とMFP100との間の通信を中継する。中継部281が、クラウドサーバー400とMFP100との間で通信を中継することにより、クラウドサーバー400とMFP100との間でデータの送受信が可能となる。中継部281は、第1通信セッションと第2通信セッションとを関連付け、第1通信セッションを介してクラウドサーバー400から受信されるデータを、第2通信セッションを介してMFP100に送信し、第2通信セッションを介してMFP100から受信されるデータを、第1通信セッションを介してクラウドサーバー400に送信する。
制御コマンド抽出部283は、第1通信セッションを介してクラウドサーバー400から受信するパケットのうち、制御コマンドを含むパケットを取得する。制御コマンドは、クラウドサーバー400がMFP100に宛てて送信するコマンドであり、MFP100に処理を実行させるためのコマンドである。制御コマンドは、MFP100に実行させる処理を特定する。制御コマンド抽出部283は、制御コマンドを含むパケットを取得することに応じて、制御コマンドを、代理送信部285および代理受信部287に出力する。制御コマンドで特定される処理は、ジョブを実行する処理、設定値を変更する処理、装置の状態を取得する処理を含む。
代理受信部287は、制御コマンド抽出部283から入力される制御コマンドがデータを処理させるコマンドの場合、第1通信セッションを介して制御コマンドとともに受信される処理対象となるデータを取得する。代理受信部287は、取得されたデータを代理送信部285に出力する。
代理送信部285は、制御コマンド抽出部283から入力される制御コマンドを、第2通信セッションを介して、クラウドサーバー400に代わってMFP100に送信する。代理送信部285は、制御コマンドの送信元がクラウドサーバー400であることを示す情報を制御コマンドに付して送信する。
代理送信部285は、代理送信指示に含まれる制御コマンドがデータを処理させるコマンドの場合、代理受信部287から入力されるデータを、第2通信セッションを介して、制御コマンドとともにMFP100に送信する。代理送信部285は、制御コマンドをMFP100に送信する場合、制御コマンドをMFP100に送信したことを示す信号を実行結果受信部289に出力する。
実行結果受信部291は、代理送信部285から制御コマンドをMFP100に送信したことを示す信号が入力された後、MFP100から第2通信セッションを介して実行結果を受信する。実行結果受信部291は、受信された実行結果を実行結果通知部293に出力する。
実行結果通知部293は、実行結果受信部291から実行結果が入力されることに応じて、第1通信セッションを介して、実行結果を、クラウドサーバー400にMFP10に代わって送信する。実行結果は、送信元がMFP100であることを示す情報を含む。
図7は、中継処理の流れの一例を示すフローチャートである。中継処理は、ゲートウェイ装置200が備えるCPU201が、ROM202、フラッシュメモリ204またはCD−ROM209Aに記憶された中継プログラムを実行することにより、CPU201により実行される処理である。図7を参照して、ゲートウェイ装置200が備えるCPU201は、第1通信部205を制御して管理サーバー300との間で常時接続セッションを確立する(ステップS01)。フラッシュメモリ204に記憶されている管理サーバー300のグローバルIPアドレスを用いて管理サーバー300に通信セッションの確立要求を送信し、管理サーバー300と所定のネゴシエーションをすることによって常時接続セッションを確立する。常時接続セッションは、特に限定するものではないが、例えば、XMPPに基づくメッセージセッションである。
次のステップS02においては、ファイアーウォールの内側のLAN3に接続された装置を検索する。LAN3にブロードキャストで問い合わせを送信し、MFP100,100A,100Bそれぞれから返信される装置識別情報を取得することによって、MFP100,100A,100Bを検索する。装置識別情報は、限定するものではないが、MFP100,100A,100Bそれぞれに対してLAN3において割り当てられたローカルIPアドレスである。
次のステップS03においては、ステップS02において検出されたMFP100,100A,100Bのうちから処理対象となる1台を選択する。ここではMFP100を選択する場合を例に説明する。
ステップS04においては、処理対象に選択されたMFP100から装置情報を取得する。装置情報は、MFP100の状態を示す情報であり、実行中のジョブに関する情報、操作中状態、エラーの発生状態、オプション機器の構成、ファームウェアプログラムのバージョン情報、アプリケーションプログラムのバージョン情報、HDD116の残容量、プリント枚数のカウンター値、待機ジョブの数、設定値、を含む。
ステップS05においては、MFP100の装置情報をフラッシュメモリ204に記憶し、処理をステップS06に進める。ステップS06においては、処理対象に選択されているMFP100についてステップS04において取得された装置情報を、ステップS01において確立された常時接続セッションを介して管理サーバー300に送信し、処理をステップS07に進める。これにより、管理サーバー300は、ゲートウェイ装置200に接続されたMFP100を認識することができる。
ステップS07においては、ステップS02において検出されたMFP100,100A,100Bのうちで、ステップS03において処理対象に未だ選択されていない装置が存在するか否かを判断する。未選択の装置が存在するならば、処理をステップS03に戻すが、そうでなければ処理をステップS08に進める。ステップS08においては、トンネル接続処理を実行し、処理をステップS09に進める。ステップS09においては、電源がOFFになったか否かを判断する。電源がオフになったならば処理を終了するが、そうでなければ処理をステップS08に戻す。
図8は、トンネル接続処理の流れの一例を示すフローチャートである。トンネル接続処理は、図7のステップS08において、実行される処理である。図8を参照して、CPU201は、簡易接続要求を受信したか否かを判断する(ステップS10)。常時接続セッションを介して簡易接続要求を受信したならば、処理をステップS11に進めるが、そうでなければ処理をステップS22に進める。
ステップS11においては、簡易接続要求に含まれる接続要求に基づいて接続元のアドレス情報を抽出する。そして、接続元のアドレス情報に基づいて接続元の装置を特定する(ステップS12)。ここでは、接続要求が、接続元のアドレス情報としてMFP100のアドレス情報を含み、接続先を特定するアドレス情報としてクラウドサーバー400のアドレス情報を含む場合を例に説明する。この場合、MFP100を接続元の装置に特定する。
次のステップS13においては、第2通信部206を制御して、接続元の装置に特定されたMFP100との間で第2通信セッションを確立する。ステップS12において、接続元の装置に特定されたMFP100に通信セッションの確立要求を送信し、MFP100との間で第2通信セッションを確立する。第2通信セッションを確立したならば、処理をステップS14に進めるが、MFP100との間で第2通信セッションを確立できなければ処理をステップS21に進める。MFP100との間で第2通信セッションを確立できない場合は、例えば、MFP100に電源が投入されていない場合、MFP100が通信できないトラブル状態の場合等である。ステップS21においては、MFP100を制御できないことを示す制御不可信号を、常時接続セッションを介して管理サーバー300に送信し、処理を中継処理に戻す。
ステップS14においては、ステップS10において受信された簡易接続要求に含まれる接続要求から接続先のアドレス情報を抽出する。ここでは、接続要求が、接続先を特定するアドレス情報としてクラウドサーバー400のアドレス情報を含むので、クラウドサーバー400のアドレス情報を抽出する。次のステップS15においては、第1通信部205を制御して、接続先のアドレス情報を用いて、クラウドサーバー400との間で第1通信セッションを確立する。ステップS14において抽出されたクラウドサーバー400のアドレス情報にアクセスすることによって、クラウドサーバー400との間で第1通信セッションを確立する。
ステップS16においては、制御コマンドを受信したか否かを判断する。制御コマンドを受信するまで待機状態となり(ステップS16でNO)、制御コマンドを受信したならば処理をステップS17に進める。第1通信セッションを介してクラウドサーバー400から受信するパケットのうち、制御コマンドを含むパケットを取得する。制御コマンドは、クラウドサーバー400がMFP100に宛てて送信するコマンドであり、MFP100に処理を実行させるためのコマンドである。制御コマンドは、MFP100に実行させる処理を特定する。
ステップS17においては、制御コマンドをクラウドサーバー400に代わってMFP100に第2通信セッションを介して送信し、処理をステップS23に進める。制御コマンドの送信元が、クラウドサーバー400であることを示す情報を制御コマンドに付して送信する。
ステップS18においては、第1通信セッションと第2通信セッションとを用いて、クラウドサーバー400とMFP100との間の通信を中継する。例えば、制御コマンドがデータを処理させるコマンドの場合、制御コマンドとともに受信される処理対象となるデータを第1通信セッションを介して受信し、受信されたデータをクラウドサーバー400に代わってMFP100に第2通信セッションを介して送信する。また、MFP100から実行結果を第2通信セッションを介して受信する場合、実行結果を、クラウドサーバー400にMFP10に代わって第1通信セッションを介して送信する。実行結果は、送信元がMFP100であることを示す情報を含む。
次のステップS19においては、通信が終了したか否かを判断する。例えば、第1通信セッションを介して、クラウドサーバー400から通信終了通知を受信する場合に、通信が終了したと判断する。通信が終了したと判断する場合は(ステップS19でYES)、処理をステップS20に進めるが、通信が終了しないと判断する場合(ステップS19でNO)、処理をステップS16に戻す。ステップS20においては、ステップS13において確立した第2通信セッションを切断し、処理を中継処理に戻す。
ステップS22においては、常時接続セッションを介して正規接続要求を受信したか否かを判断する。正規接続要求を受信したならば、処理をステップS23に進めるが、そうでなければ処理を中継処理に戻す。
ステップS23においては、正規接続要求に含まれる接続要求に基づいて接続元のアドレス情報を抽出する。そして、接続元のアドレス情報に基づいて接続元の装置を特定する(ステップS24)。ここでは、接続要求が、接続元のアドレス情報としてMFP100のアドレス情報を含み、接続先を特定するアドレス情報としてクラウドサーバー400のアドレス情報を含む場合を例に説明する。この場合、MFP100を接続元の装置に特定する。
次のステップS25においては、第2通信部206を制御して、接続元の装置に特定されたMFP100との間で第2通信セッションを確立する。ステップS23において、接続元の装置に特定されたMFP100に通信セッションの確立要求を送信し、MFP100との間で第2通信セッションを確立する。第2通信セッションを確立したならば、処理をステップS26に進めるが、MFP100との間で第2通信セッションを確立できなければ処理をステップS29に進める。ステップS29においては、MFP100を制御できないことを示す制御不可信号を、常時接続セッションを介して管理サーバー300に送信し、処理を中継処理に戻す。
ステップS26においては、第2通信セッションを介してMFP100から装置情報を取得する。次のステップS27においては、MFP100の装置識別情報を、常時接続セッションを介して管理サーバー300に送信し、処理をステップS28に進める。
ステップS28においては、接続指示を受信したか否かを判断する。常時接続セッションを介して、管理サーバー300から接続指示を受信したならば処理をステップS14に進めるが、そうでなければ処理をステップS20に進める。
図9は、接続支援処理の流れの一例を示すフローチャートである。接続支援処理は、管理サーバー300が備えるCPU301が、ROM302、HDD304またはCD−ROM309Aに記憶されたプログラムを実行することにより、CPU301により実行される処理である。図9を参照して、CPU301は、常時接続セッションの確立要求を受信したか否かを判断する(ステップS101)。通信部305が、ゲートウェイ装置200から常時接続のための通信セッションの確立要求を受信したか否かを判断する。常時接続セッションの確立要求を受信したならば処理をステップS102に進めるが、そうでなければ処理をステップS104に進める。
ステップS102においては、ゲートウェイ装置200との間で常時接続セッションを確立し、処理をステップS103に進める。ステップS103においては、常時接続セッションを介して、ゲートウェイ装置200から制御対象装置の装置識別情報を取得する。ここでは、MFP100,100A,100Bそれぞれの装置識別情報を取得する場合を例に説明する。
ステップS104においては、グローバルセッションの確立要求を受信したか否かを判断する。通信部305が、ファイアーウォールの外部に位置するクラウドサーバー400からグローバルセッションの確立要求を受信したか否かを判断する。グローバルセッションの確立要求を受信したならば処理をステップS105に進めるが、そうでなければ処理をステップS101に戻す。ステップS105においては、クラウドサーバー400との間でグローバルセッションを確立し、処理をステップS106に進める。
ステップS106においては、装置選択画面をクラウドサーバー400にグローバルセッションを介して送信する。装置選択画面は、ゲートウェイ装置200の装置識別情報と、MFP100,100A,100Bそれぞれの装置識別情報と、を含み、ゲートウェイ装置200と、MFP100,100A,100Bのいずれかと、を選択可能な画面である。
クラウドサーバー400においては、装置選択画面を受信することにより、トンネル接続する相手の装置を特定することができる。例えば、クラウドサーバー400が、装置選択画面をディスプレイに表示し、クラウドサーバー400を操作するユーザーが、装置選択画面に従って選択した装置を、接続する相手の装置として特定する。ここでは、クラウドサーバー400を操作するユーザーにより、ゲートウェイ装置200とMFP100とが選択された場合を例に説明する。クラウドサーバー400においては、接続先の装置として、ゲートウェイ装置200とMFP100とが選択されると、接続要求を管理サーバー300にグローバルセッションを介して送信する。接続要求は、送信元のアドレス情報としてMFP100のアドレス情報と、送信先のアドレス情報としてクラウドサーバー400のアドレス情報と、制御情報と、を含む。MFP100のアドレス情報は、ゲートウェイ装置200の装置識別情報とMFP100の装置識別情報とを含む。クラウドサーバー400のアドレス情報は、MFP100からクラウドサーバー400にアクセスするためのURLである。URLには、クラウドサーバー400のアドレス(ドメイン名)、ウェブページの識別子、クラウドサーバー400が実行するジョブの識別子(ジョブID)、および待ち受けポートのポート番号が含まれる。制御情報は、ジョブIDにより特定されるジョブが制御対象装置であるMFP100に実行させる処理の内容を示す。
ステップS107においては、接続要求をクラウドサーバー400から受信したか否かを判断する。接続要求を受信したならば(ステップS107でYES)、処理をステップS108に進めるが、そうでなければ(ステップS107でNO)、処理をステップS122に進める。なお、ステップS107において接続要求を受信しないと判断する場合は、ステップS105においグローバルセッションが確立されてから予め定められた所定の時間、例えばタイムアウト期間が経過しても接続要求を受信しなかった場合とするのが好ましい。
ステップS108においては、接続要求に含まれる制御情報を抽出する。そして、更新可否決定処理を実行する。更新可否決定処理の詳細は後述するが、接続要求に含まれる送信元のアドレス情報で特定されるMFP100の装置情報を更新するか否かを決定する処理である。ステップS110においては、更新可否決定処理の実行結果によって処理を分岐する。実行結果が更新不要ならば処理をステップS111に進めるが、そうでなければ処理をステップS114に進める。
ステップS111においては、実行可否判断処理を実行する。実行可否判断処理の詳細は後述するが、ステップS107において受信された接続要求に含まれる送信元のアドレス情報で特定されるMFP100が、ステップS108において抽出された制御情報で特定される処理を、実行可能か否かを判断する処理である。ステップS112においては、実行可否判断処理の実行結果によって処理を分岐する。実行結果が実行可能ならば処理をステップS113に進めるが、そうでなければ処理をステップS121に進める。
ステップS113においては、簡易接続要求をゲートウェイ装置200にステップS101において確立された常時接続セッションを介して送信し、処理をステップS120に進める。簡易接続要求は、接続要求を、常時接続セッションにより定まるプロトコルに適合するようにカプセル化したパケットである。簡易接続要求を受信するゲートウェイ装置200は、MFP100との間で第2通信セッションを確立し、クラウドサーバー400との間で第1通信セッションを確立し、MFP100とクラウドサーバー400との間の通信を中継する。
一方、ステップS114においては、正規接続要求をゲートウェイ装置200にステップS101において確立された常時接続セッションを介して送信し、処理をステップS115に進める。正規接続要求は、接続要求を、常時接続セッションにより定まるプロトコルに適合するようにカプセル化したパケットである。
ステップS115においては、ステップS101において確立された常時接続セッションを介してゲートウェイ装置200から制御対象装置であるMFP100の装置情報を受信したか否かを判断する。MFP100の装置情報を受信するまで待機状態となり(ステップS115でNO)、MFP100の装置情報を受信したならば(ステップS115でYES)、処理をステップS116に進める。ステップS116においては、MFP100の装置情報を、ステップS115において受信された装置情報で更新する。
次のステップS117において、更新後の装置情報に基づいて実行可否判断処理を実行する。次のステップS118においては、ステップS117において実行された実行可否判断処理の実行結果によって処理を分岐する。実行結果が実行可能ならば処理をステップS119に進めるが、そうでなければ処理をステップS123に進める。ステップS123においては、ステップS105において確立されたグローバルセッションを介して、クラウドサーバー400に、制御することができないことを通知し、処理をステップS122に進める。
ステップS119においては、ステップS101において確立された常時接続セッションを介してゲートウェイ装置200に接続指示を送信し、処理をステップS120に進める。ゲートウェイ装置200は、MFP100は、第2通信セッションを確立できない場合に、制御不可信号を送信する。
ステップS120においては、ステップS101において確立された常時接続セッションを介してゲートウェイ装置200から制御不可信号を受信したか否かを判断する。制御不可信号を受信したならば処理をステップS121に進めるが、そうでなければ処理をステップS122に進める。ステップS121においては、ステップS105において確立されたグローバルセッションを介して、クラウドサーバー400に、制御することができないことを通知し、処理をステップS122に進める。ステップS122においては、ステップS105において確立されたグローバルセッションを切断し、処理を終了する。
図10は、更新可否決定処理の流れの一例を示すフローチャートである。更新可否決定処理は、図9のステップS111で実行される処理である。図10を参照して、制御対象装置であるMFP100の装置情報を取得してからの経過時間を算出する(ステップS131)。そして、経過時間を、しきい値Tと比較する(ステップS132)。経過時間がしきい値T以上ならば処理をステップS133に進め、そうでなければ処理をステップS134に進める。ステップS133においては、返り値に更新を設定し、処理を接続支援処理に戻す。
ステップS134においては、接続要求に含まれる制御情報に基づいて処理を特定する。そして、特定された処理が第1の種類の処理か否かを判断する(ステップS135)。第1の種類の処理ならば処理をステップS136に進めるが、そうでなければ処理をステップS137に進める。第1の種類の処理は、例えば、MFP100に画像を形成させる処理、および、MFP100に設定されているパラメータを出力する処理を含む。ステップS136においては、返り値に更新を設定し、処理を接続支援処理に戻す。ステップS137においては、返り値に更新不要を設定し、処理を接続支援処理に戻す。
<更新可否決定処理の変形例>
図11は、変形例における更新可否決定処理の流れの一例を示すフローチャートである。図11を参照して、図10と異なる点は、ステップS135〜ステップS137が、ステップS135A〜ステップS137Aに変更された点である。その他の処理は図10に示した処理と同じなのでここでは説明を繰り返さない。
ステップS135Aにおいては、ステップS134において特定された処理が第2の種類の処理か否かを判断する。第2の種類の処理ならば処理をステップS136Aに進めるが、そうでなければ処理をステップS137Aに進める。第2の種類の処理は、制御対象装置であるMFP100が処理を実行するためのパラメータを設定する処理を、含む。ステップS136Aにおいては、返り値に更新不要を設定し、処理を接続支援処理に戻す。ステップS137Aにおいては、返り値に更新を設定し、処理を接続支援処理に戻す。
図12は、実行可否判断処理の流れの一例を示すフローチャートである。実行可否判断処理は、図9に示した接続支援処理のステップS111、およびステップS117において実行される処理である。実行可否判断処理が実行される前の段階で、制御情報および制御対象装置であるMFP100の装置情報が取得されている。
図12を参照して、CPU301は、制御情報に基づいて処理を特定する(ステップS141)。次のステップS142においては、ステップS141において特定された処理がジョブの実行を指示するジョブ実行処理か否かを判断する。ジョブ実行処理ならば処理をステップS143に進めるが、そうでなければ処理をステップS150に進める。ステップS143においては、装置情報がMFP100でジョブを実行中であることを示す否かを判断する。装置情報がMFP100でジョブを実行中であることを示すならば、処理をステップS144に進めるが、そうでなければ処理をステップS145に進める。
ステップS144においては、ステップS141において特定された処理と、装置情報で特定されるMFP100で実行中のジョブとを、MFP100が並列で実行可能か否かを判断する。MFP100が2つの処理を並列で実行可能ならば処理をステップS145に進めるが、そうでなければ処理をステップS149に進める。例えば、ステップS141において特定された処理がHDD116にデータを記憶する処理で、MFP100で実行されている処理が画像形成部140で画像を形成する処理ならば、並列で実行可能と判断するが、MFP100で実行されている処理が原稿読取部130で読み取った原稿をHDD115に記憶する処理ならば並列で実行不可と判断する。並列で実行可能な処理と、並列で実行できない処理とを定めたテーブルを、予めMFP100から取得しておけばよい。
ステップS145においては、ステップS141において特定された処理が、データを記憶するデータ記憶処理か否かを判断する。データ記憶処理ならば処理をステップS146に進めるが、そうでなければステップS146をスキップして処理をステップS147に進める。ステップS146においては、MFP100の装置情報を参照して、MFP100のHDD115がデータを記憶するだけの記憶容量を有するか否かを判断する。データを記憶するだけの記憶容量を有するならば処理をステップS147に進めるが、そうでなければ処理をステップS149に進める。
ステップS147においては、MFP100の装置情報を参照して、MFP100がトラブル中か否かを判断する。ここでは、ステップS141において特定された処理を実行することができないトラブルが発生しているか否かを判断する。例えば、ステップS141において特定された処理が、画像形成処理の場合には、用紙切れ、用紙の詰まり等の状態は、トラブルが発生していると判断する。MFP100がトラブル中の場合には、処理をステップS148に進めるが、そうでなければ処理をステップS149に進める。
ステップS148においては、返り値に実行可を設定し、処理をステップS150に進める。一方、ステップS149においては、返り値に実行不可を設定し、処理をステップS150に進める。
ステップS150においては、ステップS141において特定された処理がMFP100の状態を取得する状態取得処理か否かを判断する。ステップS141において特定された処理が状態取得処理ならば処理をステップS151に進めるが、そうでなければ処理を接続支援処理に戻す。ステップS151においては、装置情報がMFP100でジョブを実行中であることを示す否かを判断する。装置情報がMFP100でジョブを実行中であることを示すならば、処理をステップS152に進めるが、そうでなければ処理をステップS153に進める。ステップS152においては、返り値に実行可を設定し、処理を接続支援処理に戻す。一方、ステップS153においては、返り値に実行不可を設定し、処理を接続支援処理に戻す。
図13は、装置制御処理の流れの一例を示すフローチャートである。装置制御処理は、クラウドサーバー400が備えるCPUがサービスを提供するためのプログラムを実行することにより、そのCPUにより実行される処理である。ここでは、クラウドサーバー400が実行する処理のうち、クラウドサーバー400がMFP100に処理を実行させる処理を主に示している。図13を参照して、クラウドサーバー400が備えるCPUは、管理サーバーの指定を受け付ける(ステップS201)。ユーザーがMFP100を指定するために入力する管理サーバー300のグローバルIPアドレスを受け付ける。
次のステップS202においては、ステップS201において指定された管理サーバー300との間でグローバルセッションの確立要求を送信する。次のステップS203においては、管理サーバー300とネゴシエーションすることによって、管理サーバー300との間の通信セッションとしてグローバルセッションを確立する。なお、この場合、管理サーバー300は、管理サーバー300に登録されたユーザーであることを認証するために認証情報を要求し、認証に成功することを条件に、通信セッションであるグローバルセッションを確立するようにしてもよい。これにより、ファイアーウォールの内部のMFP100,100A,100Bに対してアクセス可能なユーザーを、管理サーバー300に登録されたユーザーに制限することができる。
次のステップS204においては、制御対象装置の指定を受け付ける。グローバルセッションを介して管理サーバー300から受信される装置選択画面を表示し、クラウドサーバー400を操作するユーザーにより処理を実行させる対象装置として選択された装置の装置識別情報を特定する。装置選択画面は、ゲートウェイ装置200の装置識別情報と、MFP100,100A,100Bそれぞれの装置識別情報と、を含み、ゲートウェイ装置200と、MFP100,100A,100Bのいずれかと、を選択可能な画面である。ここでは、MFP100が制御対象装置として選択された場合を例に説明する。
次のステップS205においては、接続要求を管理サーバー300に、ステップS203において確立されたグローバルセッションを介して送信する。接続要求は、送信元のアドレス情報としてMFP100のアドレス情報と、送信先のアドレス情報としてURLを含む。URLは、クラウドサーバー400のアドレス(ドメイン名)、ウェブページの識別子、クラウドサーバー400が実行するジョブの識別子(ジョブID)、待ち受けポートのポート番号、および制御情報を含む。
ステップS206においては、グローバルセッションを介して管理サーバー300から制御不可通知を受信したか否かを判断する。制御不可通知を受信したならば処理をステップS214に進めるが、そうでなければ処理をステップS207に進める。ステップS214においては、ステップS204において制御対象装置に指定されたMFP100を制御できないことをユーザーに通知し、処理を終了する。
ステップS207においては、通信セッションの確立要求を受信したか否かを判断する。ここでの確立要求は、接続要求に対応する。具体的には、確立要求は、接続要求に含まれるURLへのアクセスである。通信セッションの確立要求を受信したならば処理をステップS208に進めるが、そうでなければ処理をステップS215に進める。ステップS215においては、タイムアウトエラーをユーザーに通知し、処理を終了する。
ステップS208においては、通信セッションの確立要求に対応する第1通信セッションを確立し、処理をステップS209に進める。ステップS209においては、制御コマンドを第1通信セッションを介して送信する。制御コマンドの送信先はゲートウェイ装置200であるが、上述したように第1通信セッションを介して送信されるデータは、ゲートウェイ装置200とMFP100との間で確立された第2通信セッションを介して、ゲートウェイ装置200によってMFP100に送信される。このため、制御コマンドは実際にはMFP100に送信される。
次のステップS210においては、MFP100に送信するデータが存在するか否かを判断する。例えば、制御コマンドがファームウェアの更新処理を示す場合に、更新プログラムがデータとして存在する。また、制御コマンドからデータを記憶する処理を示す場合に、記憶の対象となるデータが存在する。データが存在するならば処理をステップS211に進めるが、そうでなければ処理をステップS212に進める。ステップS211においては、データを第1通信セッションを介して送信し、処理をステップS212に進める。データの送信先は、制御コマンドと同様にゲートウェイ装置200であるが、実際にはMFP100に送信される。
ステップS212においては、実行結果を第1通信セッションを介して受信したか否かを判断する。実行結果を受信したならば、受信された実行結果を、クラウドサーバー400に接続されたクライアント端末に表示し、処理をステップS213に進めるが、そうでなければ処理をステップS209に戻す。これにより、クラウドサーバー400を操作するユーザーに、制御コマンドに基づく処理が、MFP100で実行された結果を通知することができる。ステップS213においては、ステップS203において確立されたグローバルセッションを切断し、処理を終了する。
以上説明したように本実施の形態におけるゲートウェイ装置200は、ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置されたMFP100とファイアーウォールの外部のクラウドサーバー400との間の通信を中継する中継装置として機能する。そして、ゲートウェイ装置200は、クラウドサーバー400とMFP100との間の通信を中継する際に、MFP100から装置情報を取得し、取得された装置情報に基づいて、クラウドサーバー400からMFP100に宛てて送信される制御コマンドにより特定される処理をMFP100が実行可能か否かを判断し、実行不可能と判断される場合、制御コマンドを一時記憶し、制御コマンドが一時記憶された後にMFP100から取得された装置情報に基づいて、実行可能と判断されることに応じて、一時記憶された制御コマンドを、クラウドサーバー400に代わってMFP100に送信する。このため、MFP100が、制御コマンドにより特定される処理を実行できない場合に、制御コマンドを送信しないので、MFP100は制御コマンドに対応する処理を実行する必要がなく、いので負荷が増加しないようにすることができる。また、クラウドサーバー400は、MFP100が処理を実行できるか否かに係わりなく、制御コマンドを送信すればよいので、MFP100の状態を判断するための処理を実行する必要がなく、負荷が増大することがない。その結果、クラウドサーバー400およびMFP100間のファイアーウォールを介した通信の効率を改善することができる。
以上説明したように本実施の形態における管理サーバー300は、ファイアーウォールの外部に配置され、ファイアーウォールの内部に配置されたMFP100とファイアーウォールの外部に配置されたクラウドサーバー400との間の通信の接続を支援する管理サーバーである。また、管理サーバー300は、ゲートウェイ装置200からの要求に基づいて、ゲートウェイ装置200との間で通信するための常時接続通信セッションを確立し、ゲートウェイ装置200との間で常時接続通信セッションが確立される際に、MFP100の装置情報をゲートウェイ装置200から取得し、クラウドサーバー400から接続要求が受信されることに応じて、装置情報を更新するか否かを決定し、装置情報を更新することが決定された後に、装置情報をゲートウェイ装置200から取得する。このため、装置情報を更新しないことが決定された場合は、装置情報をゲートウェイ装置200から取得する必要がないので、クラウドサーバー400から接続要求が受信されてからMFP100をクラウドサーバー400と接続するまでの時間を短くすることができる。
また、管理サーバー300は、接続要求に含まれ、MFP100を制御する内容を示す制御情報に基づいて、更新可否を決定するので、MFP100に実行させる処理の実行可否を判断するのに必要な最新の装置情報を取得することができる。
また、管理サーバー300は、制御情報がMFP100に予め定められた第1の種類の処理を実行させる内容を示す場合、装置情報を更新することを決定するので、MFP100に第1の種類の処理を実行させる場合に限って、最新の装置情報を取得することができる。
また、管理サーバー300は、制御情報がMFP100に予め定められた第2の種類の処理を実行させる内容を示す場合、装置情報を更新しないことを決定するので、MFP100に第2の種類の処理を実行させる場合に限って、装置情報を取得しないようにすることができる。
また、管理サーバー300は、装置情報が最後に取得されてからの経過時間に基づいて、更新可否を決定するので、時間の経過に伴って変化する装置情報を経過時間の短いものを更新しないようにすることができる。
また、管理サーバー300は、装置情報が最後に取得されてからの経過時間が所定の時間以内の場合、更新しないことを決定するので、装置情報を所定の時間以降に取得された装置情報を更新しないようにすることができる。
さらに、管理サーバー300は、制御情報を更新しないことを決定する場合、簡易接続要求をゲートウェイ装置200に送信し、制御情報を更新することが決定される場合、正規接続要求をゲートウェイ装置200に送信し、正規接続要求を受信するゲートウェイ装置200が送信する装置情報を取得する。このため、管理サーバー300は、ゲートウェイ装置200に装置情報を送信させるか否かを制御することができる。
また、ゲートウェイ装置200は、管理サーバー300との間で常時接続セッションを確立し、管理サーバー300がクラウドサーバー400から受信する接続要求を常時接続セッションを介して受信し、受信された接続要求に含まれる接続先であるクラウドサーバー400のアドレス情報を用いて第1通信セッションを確立し、受信された接続要求に含まれる接続元であるMFP100のアドレス情報で特定されるMFP100との間で第2通信セッションを確立する。このため、制御対象装置であるMFP100とクラウドサーバー400との間で、ファイアーウォールを介して通信することができる。
また、ゲートウェイ装置200は、管理サーバー300との間で確立された常時接続セッションを介して、管理サーバー300から正規接続要求を受信することに応じて、当該正規接続要求で特定されるMFP100から第2通信セッションを介して装置情報を取得する。このため、管理サーバー300は、ゲートウェイ装置200に、最新の装置情報を取得させることができる。
また、ゲートウェイ装置200は、管理サーバー300から正規接続要求を受信する場合、管理サーバー300に装置情報を送信した後は、管理サーバー300から接続指示が受信されることを条件に、第1通信セッションを確立するので、管理サーバー300は、ゲートウェイ装置200が第1通信セッションを確立するタイミングを制御することができる。
また、管理サーバー300は、装置情報に基づいて、MFP100が制御情報で特定される処理の実行が可能か否かを判断するが、装置情報を更新することが決定される場合は、その後に取得された装置情報に基づいて実行可否を判断し、装置情報を更新しないことが決定される場合は、クラウドサーバー400から接続要求を受信する前に取得された装置情報に基づいて実行可否を判断する。このため、MFP100が処理を実行可能か否かを適切な装置情報に基づいて判断することができる。
好ましくは、管理サーバー300は、MFP100が制御情報で特定される処理を実行可能な場合に、簡易接続要求を送信するので、MFP100とクラウドサーバー400との間の通信を確実に接続することができる。
また、管理サーバー300は、装置情報を更新することが決定される場合は、クラウドサーバー400から接続要求を受信した後に取得された装置情報に基づいて実行可否を判断し、装置情報を更新しないことが決定される場合は、クラウドサーバー400から接続要求を受信する前に取得された装置情報に基づいて実行可否を判断する。このため、装置情報を更新しないことが決定された場合は、装置情報を中継装置から取得する必要がないので、クラウドサーバーから接続要求が受信されてから制御対象装置をクラウドサーバーと接続するまでの時間を短くすることができる。
また、管理サーバー300は、MFP100が制御情報で特定される処理を実行不可能と判断する場合は、実行できないことをクラウドサーバー400に通知するので、クラウドサーバー400を操作するユーザーにMFP100によって処理が実行されていないことを通知することができる。
また、MFP100は、ゲートウェイ装置200を備えた画像形成装置であって、ゲートウェイ装置200は、MFP100、およびファイアーウォールの内部に配置された他のMFP100A,100Bのうちからクラウドサーバー400を操作するユーザーにより選択された1つとの間で、第2の通信セッションを確立し、選択された1つとクラウドサーバー400との間の通信を中継する。このため、クラウドサーバー400およびファイアーウォールの内部に配置されたMFP100,100A,100Bのいずれかとの間の通信の効率を改善することができる。
なお、上述した実施の形態においては、管理サーバー300を例に説明したが、図9〜図12に示した接続支援処理を、管理サーバー300に実行させる接続支援方法、またはその接続支援方法を管理サーバー300を制御するCPU301に実行させる接続支援プログラムとして、発明を特定することができるのは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
<付記>
(1) 第1の種類の処理は、制御対象装置が画像を形成する処理である、請求項3に記載の管理サーバー。
(2) 第1の種類の処理は、制御対象装置の状態を示す値を出力する処理である、請求項3に記載の管理サーバー。
(3) 第2の種類の処理は、制御対象装置が処理を実行するためのパラメータを設定する処理である、請求項4に記載の管理サーバー。