以下、本発明の実施の形態におけるゲートウェイ装置を用いた画像形成システムの一例について説明する。
画像形成システムは、いわゆるクラウドコンピューティング技術を用いたものである。例えば、所定のLAN(ローカルエリアネットワーク)などに配置された、イントラネット内の画像形成装置による出力を、インターネットを介して、外部の端末から行うことが可能である。また、例えば、イントラネット内の画像形成装置により得られた情報を、インターネットを介して、外部の端末を用いて取得したり閲覧したりすることが可能である。インターネット側には、このようなサービスを提供するクラウドサーバと、クラウドサーバとイントラネットとの接続を行うための情報を管理する管理サーバとが設けられている。イントラネット側には、インターネットとの通信について中継機能を実行するゲートウェイ装置が設けられている。
ゲートウェイ装置として機能する画像形成装置や、クラウドサーバと通信を行う画像処理装置として機能する画像形成装置は、モノクロ/カラーの複写機、プリンタ、ファクシミリ装置などいずれであってもよい。また、画像形成装置は、スキャナ機能、複写機能、プリンタとしての機能、ファクシミリ機能、データ通信機能、及びサーバ機能を備えたMFP(Multi Function Peripheral)であってもよい。スキャナ機能は、セットされた原稿の画像を読み取ってそれをHDD(Hard Disk Drive)等に蓄積する機能である。複写機能は、さらにそれを用紙等に印刷(プリント)する機能である。プリンタとしての機能は、PC等の外部端末から印刷指示を受けるとその指示に基づいて用紙に印刷を行う機能である。ファクシミリ機能は、外部のファクシミリ装置等からファクシミリデータを受信してそれをHDD等に蓄積する機能である。データ通信機能は、接続された外部機器との間でデータを送受信する機能である。サーバ機能は、複数のユーザでHDD等に記憶したデータなどを共有可能にする機能である。
[第1の実施の形態]
図1は、本発明の第1の実施の形態における画像形成システムの構成を示す図である。
図1に示されるように、画像形成システム(画像処理システムの一例)10は、大まかに、インターネット(第1のネットワークの一例)側に設けられている装置群とイントラネット(第2のネットワークの一例)側に設けられている装置群とに分かれている。
画像形成システム10のインターネット側には、クラウドサーバ(サーバ装置の一例)60と、管理サーバ(管理装置の一例)70とが設けられている。クラウドサーバ60と管理サーバ70とは、インターネット90を通じて互いにHTTP等の通信プロトコルを用いて通信可能である。
なお、これらのクラウドサーバ60や管理サーバ70などを用いた構成は、担当する機能毎に抽象化して示されるクラウドシステムの1つの例に過ぎず、実際にこのような機能を実現する具体的な機器の構成は、多様なものが考えられる。例えば、クラウドサーバ60が、管理サーバ70の役割も担うように構成されていてもよい。また、クラウドサーバ60や管理サーバ70のそれぞれは、単一の計算機であってもよいし、複数の計算機が連携して動作するものであってもよい。また、各計算機においては、仮想的に動作するように設定された1つ又は複数の計算機が用いられていてもよい。
画像形成システム10のイントラネット側には、ゲートウェイ装置内蔵MFP(以下、単にゲートウェイ装置ということがある)101と、複数のMFP(画像処理装置の一例)511,521,531,541,…(以下、これらを区別せずに総称して、それぞれMFP501ということがある。)とが設けられている。ゲートウェイ装置101と各MFP501とは互いにLANに接続されており、イントラネット92が構築されている。
ゲートウェイ装置101は、いわゆるファイアウォール95を介して、インターネット90に接続されている。
各MFP501は、それぞれ、ゲートウェイ装置101を介して、インターネット90上の装置にアクセス可能である。
図2は、画像形成システム10の構成を示すブロック図である。
図2において、画像形成システム10に含まれる複数のMFP501は、これらを互いに区別せずに、代表して1つのMFP501として示されている。
図2に示されるように、クラウドサーバ60は、クラウドアプリケーション(制御プログラムの一例;単にアプリケーションということがある)61をクラウドアプリプラットフォーム上で動作させ、種々の制御動作を実行させる。クラウドサーバ60は、HTTPトンネル通信部63と管理サーバ通信部65とを有しており、インターネット90を介して外部機器と通信可能である。
また、クラウドサーバ60は、記憶部69を有している。記憶部69には、制御プログラム69bと、デバイスリスト69cとが記憶されている。CPU(図示せず)が制御プログラム69bに基づいて動作することで、クラウドサーバ60の種々の動作が実行される。デバイスリスト69cについては、後述する。
管理サーバ70は、デバイス情報管理部71と、通信処理部73とを有している。管理サーバ70は、通信処理部73により、インターネット90を介して外部機器と通信可能である。管理サーバ70は、ゲートウェイ装置101と常時接続されている。デバイス情報管理部71は、クラウドサーバ60が通信を行う対象となるMFP501等の情報を管理している。MFP501等と通信しようとする機器は、管理サーバ70で管理されている情報に基づいて、それらの機器と通信することができる。
MFP501は、通信部502及び画像形成部503などを有している。通信部502は、MFP501とクラウドサーバ60等との通信に関する制御を行う。
ゲートウェイ装置101は、大まかに、ゲートウェイ部121と、画像形成部111と、記憶部119とを有する、MFPである。すなわち、ゲートウェイ装置101は、それ自体、画像形成部111によって印刷ジョブを実行して用紙に画像を形成して出力したり、種々の画像処理動作を実行したりすることができる。
記憶部119には、ゲートウェイ装置101が動作するときに用いる種々のデータが記憶されている。記憶部119には、例えば、制御プログラム119bが記憶されている。CPU(図示せず)が制御プログラム119bに基づいて動作することで、ゲートウェイ装置101の種々の動作が実行される。また、記憶部119には、例えば、ジョブ分割可能リスト119cが記憶されている。ジョブ分割可能リスト119cの詳細については、後述する。
ゲートウェイ部121は、例えば、管理サーバ通信部123、HTTPトンネル通信部125、デバイス通信部127、及び処理部129などを有している。ゲートウェイ装置101は、HTTPトンネル通信部125、デバイス通信部127や処理部129などの動作に基づいて、クラウドサーバ60と通信したり、クラウドサーバ60とMFP501等との間の通信を制御したりする。また、ゲートウェイ装置101は、管理サーバ通信部123の動作に基づいて、管理サーバ70と通信する。これにより、ゲートウェイ装置101は、クラウドサーバ60とMFP501等との間の通信を中継することができる(中継機能)。
[ゲートウェイ装置101を介した中継通信の概略説明]
次に、ゲートウェイ装置101を介して行われる中継通信について説明する。例えばクラウドサーバ60とMFP511との間で通信が行われる場合、ゲートウェイ装置101は、次のようにして通信制御を行い、クラウドサーバ60とMFP511との間の通信を中継する。これにより、クラウドサーバ60とMFP511との間で通信可能になる。
図3は、ゲートウェイ装置101により行われる中継機能について説明する図である。
図3に示されるように、画像形成システム10では、ステップS100において、ゲートウェイ装置101が、主にその起動時に、管理サーバ70とのメッセージセッションを生成する。このとき、ゲートウェイ装置101は、MFP511のうち自身が接続可能なものの識別情報を管理サーバ70に送信する。メッセージセッションは、例えばXMPP(Extensible Messaging and Presence Protocol)などのプロトコルで生成される。メッセージセッションが生成されると、常時接続状態を維持するため、キープアライブ(keepalive)パケットが適当な間隔で送信し続けられる。
ステップS101において、クラウドサーバ60のアプリケーション61は、MFP511と通信を行うために、管理サーバ70に接続を要求する。
ステップS103において、管理サーバ70は、メッセージセッションを通じて、ゲートウェイ装置101にトンネル接続要求を送信する。
ステップS105において、ゲートウェイ装置101は、トンネル接続要求を受信すると、それに基づいて、クラウドサーバ60とゲートウェイ装置101とを接続するHTTPセッションを確立する。ゲートウェイ装置101は、このように確立されたHTTPセッションを介して、クラウドサーバ60とMFP511との間の通信を中継する。すなわち、アプリケーション61は、このHTTPセッションをトンネルとして、ファイアウォールなどの影響を受けることなく、データを送信できる。
ステップS109において、ゲートウェイ装置101は、アプリケーション61から受信したデータをMFP511に送信する。また、MFP511から受信したデータをアプリケーション61に送信する。これにより、ゲートウェイ装置101による中継機能を利用した中継通信が、アプリケーション61が動作するクラウドサーバ60とMFP511との間で行われる。
なお、このような通信は、例えば、インターネット90に接続されたPCや携帯端末等の端末(図示せず)が、クラウドサーバ60が提供するアプリケーション61を利用して、MFP511を指定して画像の出力を行ったりその他の画像処理動作を行ったりする場合において行われる。
中継通信が行われる具体的な例として、端末が保有する書類データなどに基づき、MFP511を用いて出力を行う場合を想定する。このとき、アプリケーション61に対して、端末から、書類データ及びそれをMFP511を用いて出力する旨の指示を送信する。そうすると、アプリケーション61が上述のように動作し、クラウドサーバ60とMFP511との間の通信がゲートウェイ装置101の中継機能に基づいて可能になる。通信が可能になると、次のような動作が行われる。
図4は、ゲートウェイ装置101が行う基本的な中継動作の一例について説明する図である。
図4に示されるように、ステップS11において、クラウドサーバ60は、MFP511に対して、HTTPトンネルを通じて、ゲートウェイ装置101にHTTPデータ2を送信する。HTTPデータ2は、大まかに、HTTPヘッダ(HTTP Header;以下単にヘッダということがある)2aとHTTPボディ(HTTP Body;以下単にボディということがある)2bとに分かれている。HTTPボディ2bには、ジョブ実行情報4が含まれている。ジョブ実行情報4は、例えば、書類データ及び出力指示を含む印刷データである。ヘッダ2aには、後述のように、HTTPで通信を行うための種々の情報が含まれる。例えば、接続を継続する旨の宣言などプロトコルで標準的に含まれるヘッダや、HTTPトンネルを特定するIDや通信符号などを含むトンネル通信用のヘッダなどが含まれる。
ゲートウェイ装置101は、HTTPデータ2が送信されると、ステップS12において、HTTPデータ2を解析し、解析結果に従って動作を行う。例えば、ゲートウェイ装置101は、その中に含まれるジョブ実行情報4をMFP511に送信する。MFP511は、受信したジョブ実行情報4に基づいて、ジョブを実行する(例えば、プリントジョブを実行する。)。ジョブが完了すると、MFP511からクラウドサーバ60にその旨の情報が送信され、アプリケーション61が、ジョブが完了した旨を端末に通知する。これにより、端末は、アプリケーション61を通じて、MFP511を用いてジョブを実行させることができる。
なお、クラウドアプリケーション61を利用して行われるジョブとしては、このような印刷(プリント)ジョブのほか、スキャンジョブ、ファクシミリ送信ジョブ、サーチャブルPDF作成ジョブ、及びファイル形式変換ジョブなど、種々の画像処理動作についてのジョブがある。それぞれのジョブは、そのジョブを実行する機能を保有するMFP501が指定されることで、そのMFP501で実行される。
[ゲートウェイ装置101の負荷軽減]
ここで、本実施の形態において、クラウドサーバ60は、ゲートウェイ装置101に接続されているMFP501の情報を取得し、取得された情報とジョブの種類とに基づいて、ゲートウェイ装置101に対して指示情報を送信したり、所定の処理を自ら実行したりするように構成されている。指示情報は、ゲートウェイ装置101にジョブの実行に関する判断をさせたり、所定のジョブ分割処理を実行させたりするための情報である。これにより、ゲートウェイ装置101の負荷が増大しないようにしながら、ジョブの実行先となるMFP501においてジョブが実行できないというようなエラーが生じたりMFP501の処理負荷が増大したりという問題の発生を防止できる。以下、このような動作について説明する。
本実施の形態において、クラウドサーバ60は、デバイスリスト69cに基づいて、上述のような動作を実行する。
図5は、デバイスリスト69cの一例を示す。
デバイスリスト69cは、クラウドサーバ60の記憶部69に記憶されている。デバイスリスト69cには、ゲートウェイ装置101に接続されているMFP501等の機器の情報がまとめられている。具体的には、デバイスリスト69cには、ゲートウェイ装置101に接続されているMFP501等が、自社製(ここでは、クラウドサーバ60及びゲートウェイ装置101を利用したクラウドサービスに適合するように製造されたものをいう)であるか否かについての情報(適合情報)を含む。
具体的には、例えば、図5に示されるように、デバイスリスト69cには、ゲートウェイ装置101に接続されているMFP501等のデバイスの名称(「デバイス名」)と、そのデバイスのIPアドレス(「IP」)と、適合情報(「自社製デバイス」)とが含まれている。図5に示される例においては、適合情報は、「○」と「×」とのいずれかの記号で示されている。「○」は、クラウドサービスに適合しているものであることすなわち自社製のデバイスであることを示す。「×」は、クラウドサービスに適合していないものであることすなわち自社製のデバイスではないことを示す。図5に示される例では、「デバイス1」は自社製のデバイスではなく、そのIPアドレスは「xxx.yyy.xxx.zzz」であること、及び「デバイス2」は自社製のデバイスであって、そのIPアドレスは「yy.xxx.zzz.xx」であることが見て取れる。
デバイスリスト69cは、例えば、クラウドサーバ60がゲートウェイ装置101により収集された情報を取得することで記憶部69に記憶されていてもよいし、ゲートウェイ装置101に対するユーザの入力操作やクラウドサーバ60に対するユーザの入力操作等に基づく情報をクラウドサーバ60が取得することで記憶部69に記憶されていてもよい。
ゲートウェイ装置101は、上述のようなクラウドサーバ60から送信された指示情報に応じた動作を、ジョブ分割可能リスト119cに基づいて実行する。
図6は、ジョブ分割可能リスト119cの一例を示す。
ジョブ分割可能リスト119cは、ゲートウェイ装置101の記憶部119に記憶されている。ジョブ分割可能リスト119cには、クラウドサービスを用いて実行を指示されるジョブについて、そのジョブを2以上の異なるジョブに分割する組合せが示されている。
具体的には、例えば、図6に示されるように、CPDFスキャンジョブ(「スキャン(CPDF)」と、XPSスキャンジョブ(「スキャン(XPS)」)とのそれぞれについて、ジョブを2つのジョブに分割する組合せが示されている。
ここで、CPDFスキャンジョブは、書類をスキャンして、その結果に基づいてCPDF(いわゆるコンパクトPDF)形式のファイルを生成するものである。CPDF形式のファイルは、スキャナで読み取ったドキュメント画像の文字と写真等とを分離し、それぞれ異なる方法で圧縮したうえでPDF(Portable Document Format)形式のファイルとしてまとめたものである。CPDF形式のファイルは、ドキュメント画像をJPEG圧縮して生成した通常のPDF形式のファイルよりもファイルサイズが小さくなる。
また、XPSスキャンジョブは、書類をスキャンして、その結果に基づいてXPS(XML Paper Specification)形式のファイルを生成するものである。
図6に示されるように、CPDFスキャンジョブについては、例えば3種類のジョブの分割方法がある。すなわち、第1にPDFスキャンジョブ(「スキャン(PDF)」)及びPDF−CPDF変換ジョブ(「PDF→CPDF」)の組合せがある。第2にXPSスキャンジョブ及びXPS−CPDF変換ジョブ(「XPS→CPDF」)の組合せがある。第3にJPEGスキャンジョブ(「スキャン(JPG)」)及びJPEG−CPDF変換ジョブ(「JPG→CPDF」)の組合せがある。
また、XPSスキャンジョブについては、例えば2種類のジョブの分割方法がある。すなわち、第1にPDFスキャンジョブ及びPDF−XPS変換ジョブ(「PDF→XPS」)の組合せがある。第2にJPEGスキャンジョブ及びJPEG−XPS変換ジョブ(「JPG→XPS」)の組合せがある。
なお、ジョブを分割する組合せはこれに限られるものではない。
図7は、ゲートウェイ装置101とMFP511とがそれぞれ有するジョブ機能の一例を示す図である。
図7においては、「○」がそのデバイスでそのジョブを実行可能であること、「×」がそのデバイスではそのジョブが実行不可能であること、を示している。本実施の形態において、ゲートウェイ装置101は、CPDFスキャンジョブ、PDFスキャンジョブ、PDF−CPDF変換ジョブのいずれも、実行可能である。他方、MFP511では、PDFスキャンジョブは実行可能であるが、CPDFスキャンジョブとPDF−CPDF変換ジョブとは実行不可能である。
以下の説明において、MFP511は、図5で示されるように自社機でないものであって、また、図7で示されるようにジョブの種類によっては実行不可能なものがある場合を想定する。
図8は、第1の実施の形態における画像形成システム10の動作の一例を示す図である。
図8においては、ユーザがウェブブラウザ経由でクラウドサーバ60にアクセスし、MFP511からのプルスキャン(MFP511によるスキャン結果の取得)を行う場合の例が示されている。この場合において、MFP511でジョブの実行についてエラーが発生したときには、ゲートウェイ装置101においてジョブ分割が行われることで、ユーザにエラー通知が行われることなく、発生したエラーへの対処が行われる。このようなエラーへの対処は、予めクラウドサーバ60がゲートウェイ装置101に対して指示情報が送信されることで実現される。
図8に示されるように、ユーザは、クラウドサーバ60にアクセスし、MFP511に対して、CPDFスキャンジョブのジョブ実行要求をする(S311)。ジョブ実行要求が行われると、クラウドサーバ60は、自身が保有するデバイスリスト69cを参照し、ジョブ実行要求先であるMFP511が他社機であるか否か(自社機ではないか自社機であるか)を判断する。
MFP511が他社機である(自社機ではない)場合には、クラウドサーバ60は、次のようにゲートウェイ装置101に指示情報を送信する(S312)。すなわち、クラウドサーバ60は、ゲートウェイ装置101に、所定のフラグを立てたうえで、CPDFスキャンジョブ4aのジョブ実行要求を行う。ジョブ実行要求は、HTTPデータ2として送信される。HTTPデータ2のうち、ヘッダ2aには所定のフラグ「JUDGE−Flag」が含まれ、このフラグ「JUDGE−Flag」の値が「1」とされる(「JUDGE−Flag:1」)。このように所定のフラグが立てられたHTTPデータ2が送信されることは、MFP511でジョブを実行したときにエラーが検出された場合にはジョブ分割処理を実行するように、予めゲートウェイ装置101に指示が行われることを意味する(指示情報の送信)。
ゲートウェイ装置101は、ジョブ実行要求を受け取ると、ヘッダ2aに含まれるフラグ「JUDGE−Flag」を確認する。そして、MFP511に対して、CPDFスキャンジョブ4aのジョブ実行要求を行う(S313)。
ここで、本実施の形態において、MFP511は、上述の通り、CPDFスキャンジョブ4aを実行することができない。そのため、ジョブの実行エラーが発生する。MFP511は、エラー通知をゲートウェイ装置101に対して行う(S314)。
ゲートウェイ装置101は、エラー通知を受け取ると、ヘッダ2aのフラグ「JUDGE−Flag」の値に基づいて動作を行う。すなわち、フラグ「JUDGE−Flag」が「1」であるので、ゲートウェイ装置101は、エラーとなったジョブチケットを解析し、ジョブ分割可能リスト119cに基づいて、ジョブを分割できるか否かを判断する。本例では、CPDFスキャンジョブ4aは、第1のジョブ(PDFスキャンジョブ)と、第2のジョブ(PDF−CPDF変換ジョブ)とに分割することができるので、ゲートウェイ装置101は、分割できると判断する。
ジョブを分割可能であれば、ゲートウェイ装置101は、MFP511のジョブ実行履歴を参照し、MFP511が第1のジョブを実行できるか否かを判断する。また、ゲートウェイ装置101は、自身が保有する自身の実行可能機能リストを参照し、第2のジョブを実行できるか否かを判断する。
第1のジョブ及び第2のジョブがそれぞれMFP511とゲートウェイ装置101とで実行できる場合には、ゲートウェイ装置101は、ジョブを分割し、第1のジョブ4bを新たなジョブチケットとして生成し、MFP511に対してジョブ実行要求を行う(S315)。
MFP511は、第1のジョブ4bを実行し、その結果をゲートウェイ装置101に送信する。すなわち、PDFスキャンジョブによりスキャンされたPDF形式のファイル(PDFデータ)5aをゲートウェイ装置101に送信する(S316)。
ゲートウェイ装置101は、第2のジョブ4cのジョブ実行要求を自身に対して行う。ゲートウェイ装置101は、第1のジョブ4bの実行結果であるPDFデータ5aについて、コンパクトPDFのファイル5bに変換する画像変換処理(PDF−CPDF変換ジョブ)を実行する。
ゲートウェイ装置101は、第2のジョブ4cの実行結果を、クラウドサーバ60に送信する。すなわち、PDF−CPDF変換ジョブにより生成されたCPDF形式のファイル(CPDFデータ)5bをクラウドサーバ60に送信する(S317)。これにより、ユーザは、クラウドサーバ60を介して、CPDFデータ5bを取得できる(S318)。
図9は、CPDFスキャンジョブの分割について説明する図である。
図9に示されるように、元々のジョブとしてCPDFスキャンジョブ4aがジョブ実行要求されている場合において(S251)、分割が可能であるか否かを判断するとき、ゲートウェイ装置101は、ジョブ分割可能リスト119cに基づいてそれを判断する。
ジョブの分割が行われる場合、分割後のジョブは、第1のジョブ(PDFスキャンジョブ)4bと第2のジョブ(PDF−CPDF変換ジョブ)4cとに分かれることになる(S252)。このとき、PDFスキャンジョブについては、ゲートウェイ装置101は、MFP511のジョブ実行履歴に基づいて、MFP511で実行可能であるか否かを判断する。他方、PDF−CPDF変換ジョブについては、ゲートウェイ装置101は、ゲートウェイ装置101自身の機能リストに基づいて、ゲートウェイ装置101で実行可能であるか否かを判断する。両ジョブ4b,4cが実行可能であると判断されれば、各ジョブ4b,4cがMFP511とゲートウェイ装置101で実行され、CPDF形式のファイル5bが生成される。生成されたファイル5bは、クラウドサーバ60に送信される。
図10は、第1の実施の形態における画像形成システム10の動作の流れを説明するフローチャートである。
図10において、ステップS212,S213は、クラウドサーバ60により実行される処理である。ステップS214,S216,S217,S218は、ゲートウェイ装置101により実行される処理である。ステップS215,S219,S220,S221は、MFP511で実行される処理である。
図10に示されるように、ステップS211において、MFP511を利用して行うCPDFスキャンジョブのジョブ実行要求が、ユーザからのクラウドサーバ60に対して行われる。
ステップS212において、クラウドサーバ60は、MFP511が他社製であるか否かを判断する。ステップS212において他社製でなければ、クラウドサーバ60は、ヘッダ2aにおいてフラグを立てずに(「JUDGE−Flag:0」としたうえで)CPDFスキャンジョブのジョブ実行要求をHTTPデータ2としてゲートウェイ装置101に送信する。そして、ステップS215の処理に進む。
他方、ステップS212において他社製であれば、ステップS213において、クラウドサーバ60は、ヘッダ2aにおいてフラグを立てたうえで(「JUDGE−Flag:1」としたうえで)HTTPデータ2をゲートウェイ装置101に送信する。
ステップS214において、ゲートウェイ装置101は、CPDFスキャンジョブをMFP511に送信する。すなわち、MFP511からエラー通知があるか否かを確認し、MFP511にCPDFスキャンジョブを実行する機能があるか否かを確認する。エラー通知がないとき(ジョブの実行機能があるとき)、ステップS215の処理に進む。
ステップS215において、MFP511は、CPDFスキャンジョブを実行する。これにより、図4に示されるように、そのままMFP511で要求通りのジョブが実行されることになる。
他方、ステップS214においてエラー通知があれば(ジョブの実行機能がなければ)、ステップS216以降の処理が行われる。すなわち、ステップS216において、ゲートウェイ装置101は、ジョブの分割が可能であるか否かを判断する。
ステップS216でジョブ分割が可能であると判断されれば、ステップS217において、ゲートウェイ装置101は、第1のジョブがMFP511で実行可能であるか否かを判断する。
ステップS217において第1のジョブがMFP511で実行可能であると判断されれば、ステップS218において、ゲートウェイ装置101は、第2のジョブがゲートウェイ装置101で実行可能であるか否かを判断する。
ステップS218において第2のジョブがゲートウェイ装置101で実行可能であると判断されれば、CPDFスキャンジョブが分割して実行される。すなわち、まず、ステップS219において、MFP511は、PDFスキャンジョブを実行する。
ステップS220において、ゲートウェイ装置101は、MFP511によるジョブの実行結果に基づいて、PDF−CPDF変換ジョブを実行する。
他方、ステップS216でジョブ分割が不可能であると判断されたとき、ステップS217で第1のジョブが実行不可能であると判断されたとき、又はステップS218で第2のジョブが実行不可能であると判断されたときには、ゲートウェイ装置101は、ジョブの実行エラーであると判断する。これにより、ステップS221において、ゲートウェイ装置101は、エラー通知を行う。エラー通知が行われると、クラウドサーバ60を経由し、ユーザにその旨が通知される。
このように、本実施の形態においては、まず、デバイスリスト69cに基づいて、クラウドサーバ60側でMFP511が他社機であるか否かが判断され、その結果に応じて、ゲートウェイ装置101が、MFP511がジョブを実行可能であるか否かの判断や、ジョブを分割して行うか否かの判断を行う。したがって、ゲートウェイ装置101において常にMFP511に関する判断が行われることがなくなり、ゲートウェイ装置101の処理負担が軽減される。
ここで、ジョブの実行対象となるMFP511が、自社機であるがそのジョブを実行可能でない場合も考えられる。このような場合には、次のような制御が行われる。すなわち、ゲートウェイ装置101に対して判断指示(エラー対処の指示)が行われず、MFP511でジョブの実行エラーが起きるたびにクラウドサーバ60からジョブが発行される。
図11は、画像形成システム10の上述とは異なる動作の一例を説明する第1の図である。
図11においては、MFP511を実行先とするXPSダイレクトプリントジョブの実行要求がユーザから行われた場合において、MFP511がそのジョブを実行可能でない場合が示されている。ここで、MFP511は、自社製のものであって、デバイスリスト69cにもその旨の適合情報が記録されている場合を想定する。
図11に示されるように、ステップS331においてユーザからジョブの実行指示があると、クラウドサーバ60が処理を実行する。すなわち、ステップS332において、クラウドサーバ60は、デバイスリスト69cに基づいてMFP511が自社製品であることを判断し、それに応じて、HTTPデータ2をゲートウェイ装置101に送信する。このとき、ボディ2bにはXPSダイレクトプリントジョブ4dのジョブ実行要求が含められる。
ここで、MFP511は自社製品であるので、HTTPデータ2のヘッダ2aにおいて、フラグ「JUDGE−Flag」は「0」とされる。すなわち、上述のようにMFP511が他社製のものである場合の例とは異なり、フラグを立てずに、HTTPデータ2が送信される。これは、ゲートウェイ装置101に対して、上述のようなエラー発生時においてゲートウェイ装置101に対応する処理を実行させるための指示をしないことを意味する。
ステップS333において、ゲートウェイ装置101は、HTTPデータ2を受信し、XPSダイレクトプリントジョブ4dのジョブ実行要求を受け取ると、MFP511に対して、XPSダイレクトプリントジョブ4dのジョブ実行要求を行う。このとき、ゲートウェイ装置101は、HTTPデータ2のヘッダ2aにおいてフラグ「JUDGE−Flag」は「0」であることを確認し、ジョブ実行要求をそのままMFP511に送信する。
ここで、MFP511は、XPSダイレクトプリント機能を有しないので、XPSダイレクトプリントジョブ4dを実行することができない。したがって、ステップS334,S335において、MFP511は、ゲートウェイ装置101を介して、エラー通知をクラウドサーバ60に送信する。このとき、ゲートウェイ装置101は、エラー通知に対して自身が特別な処理を行うことなく、エラー通知をクラウドサーバ60に中継する処理を行う。
図12は、画像形成システム10の上述とは異なる動作の一例を説明する第2の図である。
図12に示されるように、クラウドサーバ60は、エラー通知を受信すると、エラーとなったXPSダイレクトプリントジョブ4dのジョブチケットを解析し、新たなジョブチケットを生成する。ここでは、例えば、PDFダイレクトプリントジョブ4eを生成する。ステップS336において、クラウドサーバ60は、PDFダイレクトプリントジョブ4eのジョブ実行要求を含むHTTPデータ2をゲートウェイ装置101に送信する。この場合も、HTTPデータ2のヘッダ2aにおいて、フラグは立てられない(「JUDGE−Flag:0」とされる)。
ステップS337において、ゲートウェイ装置101は、HTTPデータ2を受信し、PDFダイレクトプリントジョブ4eのジョブ実行要求を受け取ると、MFP511に対して、PDFダイレクトプリントジョブ4eのジョブ実行要求を行う。このとき、ゲートウェイ装置101は、HTTPデータ2のヘッダ2aにおいてフラグ「JUDGE−Flag」は「0」であることを確認し、ジョブ実行要求をそのままMFP511に送信する。
MFP511は、PDFダイレクトプリント機能を保有している。そのため、PDFダイレクトプリントジョブ4eのジョブ実行要求を受け取ると、ステップS338において、MFP511は、PDFダイレクトプリントジョブ4eを実行する。
PDFダイレクトプリントジョブ4eが実行されると、ステップS339,S340において、MFP511は、生成されたPDF形式のファイル5cを、ゲートウェイ装置101を介してクラウドサーバ60に送信する。
クラウドサーバ60にPDF形式のファイル5cが送信されると、ステップS341において、ジョブの実行結果として、ユーザの端末が、ファイル5cを取得可能になる。
このように、MFP511が自社機である場合において、ジョブを実行できないときでも、ゲートウェイ装置101を経由してエラー通知がクラウドサーバ60に通知され、エラー通知に対して代替のジョブ実行要求を行うというような所定の処理がクラウドサーバ60により実行される。したがって、ユーザは、所望のジョブの実行結果に替えて、代替のジョブの実行結果をスムーズに得ることができる。
[第2の実施の形態]
第2の実施の形態における画像形成システムの基本的な構成は、第1の実施の形態におけるそれと同じであるためここでの説明を繰り返さない。第2の実施の形態においては、ゲートウェイ装置101に接続されている各MFP501の動作状態に基づいて種々の処理が行われる点が第1の実施の形態と異なる。
図13は、第2の実施の形態における画像形成システム10bの構成を示すブロック図である。
図13において、画像形成システム10bに含まれる複数のMFP501は、これらを互いに区別せずに、代表して1つのMFP501として示されている。
図13に示されるように、第2の実施の形態において、画像形成システム10bのクラウドサーバ60とゲートウェイ装置101とのそれぞれは、第1の実施の形態とは若干異なる情報を保有している。その他のハードウェイ構成等については、画像形成システム10bと第1の実施の形態における画像形成システム10とで略同様である。
すなわち、クラウドサーバ60の記憶部69には、デバイス状態リスト69dが記憶されている。
また、ゲートウェイ装置101の記憶部119には、デバイスリスト119dが記憶されている。
図14は、デバイス状態リスト69dの一例を示す図である。
図14に示される例では、ゲートウェイ装置101に接続されている複数のMFP501、すなわち、MFP511(デバイス1)、MFP521(デバイス2)、MFP531(デバイス3)、MFP541(デバイス4)のそれぞれについての情報が含まれている。デバイス状態リスト69dには、各MFP501(デバイス1〜4)についての、イントラネット92におけるIPアドレスと、状態情報とが含まれている。
ここで、状態情報としては、そのMFP501が処理を実行中であるか(BUSYであるか)否かについての情報が含まれている。図14において、MFP501がBUSYであるときには状態情報として「BUSY」が、そうでないときには状態情報として「−」が示されている。図14に示される例では、MFP511,531,541がBUSYであり、MFP521はBUSYではないという状態が見て取れる。
クラウドサーバ60は、このような各MFP501のIPアドレスや状態情報などをゲートウェイ装置101を通じて取得し、デバイス状態リスト69dとして記憶する。
図15は、デバイスリスト119dの一例を示す図である。
図15に示される例では、図14と同様に、ゲートウェイ装置101に接続されている複数のMFP501、すなわち、MFP511(デバイス1)、MFP521(デバイス2)、MFP531(デバイス3)、MFP541(デバイス4)のそれぞれについての情報が含まれている。デバイスリスト119dには、各MFP501(デバイス1〜4)についての、イントラネット92におけるIPアドレスと、保有機能情報と、状態情報とが含まれている。IPアドレスと状態情報とについては、上述のデバイス状態リスト69dと同様の内容が含まれている。
デバイスリスト119dには、各MFP501についての保有機能情報が含まれる。すなわち、各MFP501は、保有機能情報で示される機能についてのジョブを実行可能である。図15に示される例においては、MFP511,521,531は、いずれも、プリント機能、スキャン機能、ファクシミリ(FAX)送信機能、及びサーチャブルPDF作成機能を保有している。他方、MFP541は、プリント機能、スキャン機能、及びPDF−CPDF変換機能(「PDF→CPDF変換」)を保有している。
図16は、第2の実施の形態における画像形成システム10bの動作の一例を説明する図である。
以下、各MFP501の保有機能が図15に示されるようになっており、各MFP501の動作状態が図14で示されるようになっている場合を想定して、画像形成システム10bの動作について説明する。
図16においては、ユーザがウェブブラウザ経由でクラウドサーバ60にアクセスし、クラウドサーバ60が保有しているPDF形式のファイル5fについて、MFP511にファクシミリ送信を実行させる場合の例が示されている。
図16に示されるように、ユーザは、クラウドサーバ60にアクセスし、MFP511に対して、ファクシミリ送信ジョブのジョブ実行要求をする(S351)。ジョブ実行要求が行われると、クラウドサーバ60は、自身が保有するデバイス状態リスト69dを参照し、ジョブ実行要求先であるMFP511について、状態情報を確認する。
このとき、クラウドサーバ60は、ジョブ実行要求を行う対象となるMFP511がBUSYであるか否かを判断する。本例では、MFP511がBUSYであるので、クラウドサーバ60は、ジョブの実行を他のMFP521,531,541等に代行させるか否かについてゲートウェイ装置101に判断させるための指示を行う。すなわち、クラウドサーバ60は、ステップS352において、HTTPデータ2のヘッダ2aのフラグ「JUDGE−Flag」を「1」として(フラグを立てて)、HTTPデータ2をゲートウェイ装置101に対して送信することで、PDF形式のファイル5fについてのファクシミリ送信ジョブ4gのジョブ実行要求をゲートウェイ装置101に対して行う。このように所定のフラグが立てられたHTTPデータ2が送信されることが、ゲートウェイ装置101に対して上記判断を実行するように指示が行われることを意味する(指示情報の送信)。
ゲートウェイ装置101は、ジョブ実行要求を受け取ると、ヘッダ2aに含まれるフラグ「JUDGE−Flag」を確認する。フラグが「1」であるので、ゲートウェイ装置101は、上記の判断を行う。すなわち、ゲートウェイ装置101は、保有するデバイスリスト119dを参照し、それに基づいて、複数のMFP501のうち、ファクシミリ送信ジョブを実行可能であって(ファクシミリ送信機能を有し)、かつ、BUSYではないものを検索する。本例の場合には、ファクシミリ送信ジョブを実行可能であってBUSYではないMFP521が存在することがわかる。
そうすると、ステップS353において、ゲートウェイ装置101は、このように検索して抽出されたMFP521に対して、ファイル5fについてのファクシミリ送信ジョブ4gのジョブ実行要求を行う。
ステップS354において、MFP521は、ジョブ実行要求に応じて、ファクシミリ送信ジョブを実行する。
なお、クラウドサーバ60は、ジョブ実行先として指定されているMFP511がBUSYでなければ、フラグを立てることなく、HTTPデータ2をゲートウェイ装置101に送信する。このとき、ゲートウェイ装置101は、フラグが立てられていないことを確認すると、上記のような判断を実行することなく、MFP511に対してファクシミリ送信ジョブの実行を要求する。これにより、BUSYではないMFP511により適切にジョブが実行される。
このように、本実施の形態においては、BUSYではなく、かつ、ジョブを実行可能なMFP521によって、ファクシミリ送信ジョブが代行される。したがって、特定のMFP501がBUSY状態であっても、そのMFP501の負荷を増大させることなく、速やかに、他のMFP501でジョブを実行させることができる。ジョブを代行させるMFP501の選択は、クラウドサーバ60から、所定のフラグを立てることにより指示があった場合に、ゲートウェイ装置101が行う。したがって、常にゲートウェイ装置101が判断を行う必要はなく、ゲートウェイ装置101の負荷が増大することを防止できる。
なお、このような動作は、ユーザが実行を指示したジョブの種類に応じて行うか否かが決定されてもよい。例えば、ファクシミリ送信ジョブは、自社機であるか他社機であるかに関わらず、一般的なMFP501であれば実行可能である場合が多い。このようなジョブについての実行が指示されるときに、ジョブの実行を代行させるか否かの判断や、代行先となるMFP501の選択等が行われるようにすればよい。反対に、自社に特徴的な処理を含むジョブを実行させるときには、第1の実施の形態に示されるように、まずMFP501が自社製であるか否かを判断し、その判断結果に応じて、動作が行われるようにすればよい。
[第3の実施の形態]
第3の実施の形態における画像形成システムの基本的な構成は、第1の実施の形態におけるそれと同じであるためここでの説明を繰り返さない。第3の実施の形態においては、ゲートウェイ装置101に接続されている各MFP501の機能に基づいて種々の処理が行われる点が第1の実施の形態と異なる。
図17は、第3の実施の形態における画像形成システム10cの構成を示すブロック図である。
図17において、画像形成システム10cに含まれる複数のMFP501は、これらを互いに区別せずに、代表して1つのMFP501として示されている。
図17に示されるように、第3の実施の形態において、画像形成システム10cのクラウドサーバ60とゲートウェイ装置101とのそれぞれは、第1の実施の形態とは若干異なる情報を保有している。その他のハードウェイ構成等については、画像形成システム10bと第1の実施の形態における画像形成システム10とで略同様である。
すなわち、クラウドサーバ60の記憶部69には、ジョブ代行可能リスト69eが記憶されている。
また、ゲートウェイ装置101の記憶部119には、デバイスリスト119eが記憶されている。
図18は、ジョブ代行可能リスト69eの一例を示す図である。
ジョブ代行可能リスト69eは、画像形成システム10cにおいていずれかのMFP501で代行が可能となるジョブ(代行可能ジョブ)の情報を示すものである。すなわち、ジョブ代行可能リスト69eにある種類のジョブは、対象と指定されたMFP501で実行不可能であっても、他のMFP501で代行して実行させることができるものである。
具体的には、図18に示されるように、代行可能ジョブとしては、次のようなものがある。すなわち、PDF−CPDF変換ジョブ、PDF−XPS変換ジョブ、PDF−JPEG変換ジョブ、XPS−CPDF変換ジョブ、XPS−PDF変換ジョブ、XPS−JPEG変換ジョブ、JPEG−CPDF変換ジョブ、JPEG−PDF変換ジョブ、JPEG−XPS変換ジョブ、サーチャブルPDF化ジョブ、及びクラウドサーバ60が記憶しているデータのファクシミリ送信ジョブなどがある。
クラウドサーバ60は、このような代行可能ジョブ情報を、例えばゲートウェイ装置101を通じて取得し、ジョブ代行可能リスト69eとして記憶する。なお、クラウドサーバ60は、画像形成システム10cのユーザ(管理者など)等により予め入力された情報を取得して、ジョブ代行可能リスト69eとして記憶するように構成されていてもよい。また、クラウドサーバ60は、ゲートウェイ装置101から、ゲートウェイ装置101に接続されている各MFP501の保有機能情報を取得し、それに基づいてジョブ代行可能リスト69eとして記憶するように構成されていてもよい。
図19は、デバイスリスト119eの一例を示す図である。
図19に示される例では、上述の第2の実施の形態と同様に、ゲートウェイ装置101に接続されている複数のMFP501、すなわち、MFP511(デバイス1)、MFP521(デバイス2)、MFP531(デバイス3)、MFP541(デバイス4)のそれぞれについての情報が含まれている。デバイスリスト119eには、各MFP501(デバイス1〜4)についての、イントラネット92におけるIPアドレスと、保有機能情報と、状態情報とが、第2の実施の形態におけるデバイスリスト119dと同様の要領で含まれている。図19に示される例では、状態情報について、MFP531のみがBUSYとなっていて他のMFP511,521,541がBUSYではないであるほかには、デバイスリスト119dに示されるのと同様の情報が含まれている。
ここで、第3の実施の形態において、デバイスリスト119eには、各MFP501についてのクラウド登録情報(「クラウド登録」)及びハードウェアコーデック情報(「HWコーデック」)が含まれる。
クラウド登録情報は、そのMFP501が、クラウド登録されているか、すなわちクラウドサーバ60が提供するクラウドアプリにおいて、ジョブの実行対象として指定され得る状態にあるか否かを示す。図19に示されている例では、MFP511とMFP541とがクラウド登録されていることが見て取れる。
ハードウェアコーデック情報は、そのMFP501がジョブを実行するための専用のハードウェアコーデックを搭載しているか否かを示す。図19に示されている例では、MFP521,531,541がそれぞれハードウェアコーデックを有している。ハードウェアコーデックを搭載しているMFP501は、一般に、そのハードウェアコーデックに対応する種類のジョブを、速やかに、低負荷のままで実行することができる。なお、図19に示される例においては、ハードウェアコーデック情報については簡略化されて示されているが、実際には、対応するジョブの種類別にハードウェアコーデック情報が記録されていてもよい。
図20は、第3の実施の形態における画像形成システム10cの動作の一例を説明する図である。
以下、各MFP501が図19に示されるような状態である場合を想定して、画像形成システム10cの動作について説明する。
図20においては、ユーザがウェブブラウザ経由でクラウドサーバ60にアクセスし、クラウドサーバ60が保有しているPDF形式のファイル5fについて、MFP511にサーチャブルPDF作成ジョブを実行させる場合の例が示されている。
図20に示されるように、ユーザは、クラウドサーバ60にアクセスし、MFP511に対して、サーチャブルPDF作成ジョブのジョブ実行要求をする(S371)。ジョブ実行要求が行われると、クラウドサーバ60は、自身が保有するジョブ代行可能リスト69eを参照し、サーチャブルPDF作成ジョブが代行可能ジョブであるか否かを判断する。
本例では、サーチャブルPDF作成機能は代行可能ジョブであるので、クラウドサーバ60は、ジョブの実行に適した他のMFP501にジョブの実行を代行させるかるか否かについてゲートウェイ装置101に判断させるための指示を行う。すなわち、クラウドサーバ60は、ステップS372において、HTTPデータ2のヘッダ2aのフラグ「JUDGE−Flag」を「1」として(フラグを立てて)、HTTPデータ2をゲートウェイ装置101に対して送信することで、PDF形式のファイル5fについてのサーチャブルPDF作成ジョブ4jのジョブ実行要求をゲートウェイ装置101に対して行う。このように所定のフラグが立てられたHTTPデータ2が送信されることが、ゲートウェイ装置101に対して上記判断を実行するように指示が行われることを意味する(指示情報の送信)。
ゲートウェイ装置101は、ジョブ実行要求を受け取ると、ヘッダ2aに含まれるフラグ「JUDGE−Flag」を確認する。フラグが「1」であるので、ゲートウェイ装置101は、上記の判断を行う。すなわち、ゲートウェイ装置101は、ユーザがジョブ実行要求先として指定したMFP511よりもジョブを高速に処理できるデバイスを検索する。検索は、ゲートウェイ装置101が保有するデバイスリスト119eを参照して行われる。
より具体的には、ゲートウェイ装置101は、MFP501のうち、実行されるべきサーチャブルPDF作成ジョブを実行可能であること、サーチャブルPDF作成ジョブを高速に処理可能なハードウェアコーデックを有していること、状態情報がBUSYでないこと、の各条件をできるだけ多く満たすものがMFP511の他にあるかどうかを検索する。このとき、検索は、クラウド登録されていないMFP501を含めて行われる。図19に示される例では、MFP511はサーチャブルPDF作成機能についてのハードウェアコーデックを有していないものである。他方、MFP521は、上記の各条件をすべて満たしている。そこで、ゲートウェイ装置101は、検索の結果、MFP521を条件にマッチするものとして抽出する。
そうすると、ステップS373において、ゲートウェイ装置101は、このように検索して抽出されたMFP521に対して、ファイル5fについてのサーチャブルPDF作成ジョブ4jのジョブ実行要求を行う。
ステップS374において、MFP521は、ジョブ実行要求に応じて、サーチャブルPDF作成ジョブを実行する。
ステップS375,S376において、ジョブの実行結果のデータ5gが、ゲートウェイ装置101を経由して、クラウドサーバ60に送信される。
クラウドサーバ60にデータ5gが送信されると、ステップS377において、ジョブの実行結果として、ユーザの端末が、データ5gを取得可能になる。
なお、クラウドサーバ60は、ジョブが代行可能ジョブでなければ、フラグを立てることなく、HTTPデータ2をゲートウェイ装置101に送信する。このとき、ゲートウェイ装置101は、フラグが立てられていないことを確認すると、上記のような判断を実行することなく、指定されているMFP511に対してそのジョブの実行を要求する。これにより、MFP511によりジョブが実行される。
このように、第3の実施の形態においては、専用のハードウェアコーデックを有するMFP501が存在すれば、そのMFP501によってジョブが代行される。したがって、より高速に、ジョブが実行される。代行可能なジョブが実行される場合にのみゲートウェイ装置101によって判断が行われるので、ゲートウェイ装置101の負荷が軽減される。
なお、仮に、図19に示されるような状態において、MFP511を実行先として指定したPDF−CPDF変換ジョブのジョブ実行要求が行われた場合を想定する。このとき、代行可能ジョブであるため、ゲートウェイ装置101からフラグを立てた状態でHTTPデータ2が送信され、ゲートウェイ装置101によって上述のような判断が行われる。すなわち、PDF−CPDF変換ジョブを実行可能であるのはMFP541のみであるため、ゲートウェイ装置101は、MFP541に対して、ジョブ実行情報を送信する。これにより、MFP541によって、ジョブが代行して実行される。
[実施の形態における効果]
以上説明したように、各実施の形態では、クラウドサーバが、ゲートウェイ装置による判断が必要だと判断したときにのみ、ゲートウェイ装置によって、ジョブの解析や適切なMFPへの割り振りなどの判断が行われる。したがって、ゲートウェイ装置の負荷が比較的軽減される。また、画像形成システムにおいて実行可能なジョブであれば、1回のジョブ実行要求を行った後にユーザがエラー通知を受けることがなくなる。したがって、例えばユーザがジョブを実行できる別のMFPを指定し直すことなどを行う必要がなく、ユーザの操作負担を軽減させることができる。
[その他]
ゲートウェイ装置に判断を実行させるか否かの基準となるフラグ(指示情報)は、必ずしもHTMLヘッダに含まれなくてもよい。例えば、HTMLボディに指示情報が含まれるようにし、ゲートウェイ装置がHTMLボディを解析してその指示情報を取得し、それに基づいて判断及び動作を行うようにしてもよい。
ゲートウェイ装置は、MFPに内蔵されていなくてもよい。すなわち、ゲートウェイ装置は、画像形成機能を有しない装置であってもよい。
画像形成システムは、クラウドサーバ等を用いたものに限られず、比較的単純な構成のクライアントサーバシステムにおいてゲートウェイ装置を介してサーバとデバイスとの間で通信を行うようなものや、ピアツーピアネットワークにおいて端末同士がゲートウェイ装置を介して通信を行うようなものなどであってもよい。このような場合であっても、ゲートウェイ装置が上述と同様に機能することで、上述と同様の効果が得られる。
画像形成システムを構成する各装置のハードウェア構成は上述に限られるものではない。また、各装置は、例えば、MFPであってもよいし、コンピュータ又はコンピュータを用いた他の用途で主に使用される装置であってもよい。
デバイスとしては、モノクロ/カラーの複写機、プリンタ、ファクシミリ装置やこれらの複合機(MFP)などいずれであってもよい。電子写真方式により画像を形成するものに限られず、例えばいわゆるインクジェット方式により画像を形成するものであってもよい。また、本発明において画像形成システムで用いられるデバイスは、画像形成装置に限られない。例えば、デバイスは、画像データを読み取るスキャナ装置や、撮像装置や、画像データ送受信装置など、種々の装置に用いられる画像処理装置であってもよい。
上述の実施の形態における処理は、ソフトウェアによって行っても、ハードウェア回路を用いて行ってもよい。
上述の実施の形態における処理を実行するプログラムを提供することもできるし、そのプログラムをCD−ROM、フレキシブルディスク、ハードディスク、ROM、RAM、メモリカードなどの記録媒体に記録してユーザに提供することにしてもよい。プログラムはインターネットなどの通信回線を介して、装置にダウンロードするようにしてもよい。上記のフローチャートで文章で説明された処理は、そのプログラムに従ってCPUなどにより実行される。
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。