(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
MFPは、通常オフィス内で、クライアント用PC(Personal Computer)や、ファイルサーバと接続され動作している。これに対し、クラウドシステムはインターネット上で多くのユーザに共有される。クラウドシステムは、CPU(Central Processing Unit)リソースを多く必要とする処理を、個々のシステムでの処理を代替して提供する。ユーザは、このクラウドシステムを利用することで処理の時間短縮や広範な機能提供、リソース共有型新機能の提供等のサービスを享受することが可能となる。
【0011】
しかし、一旦ネットワーク障害や、デマンド集中などが発生すると、それらの利点を享受できなくなる。
【0012】
そこで、実施形態では、クラウドシステムとMFPの中間に位置づけられる、ローカルサーバを介してクラウドシステムで提供される機能を提供する形態を取る。ローカルサーバは、クラウドシステムからの機能提供が滞った際に、同一機能を代替提供し、MFPから要求される処理をローカルサーバで引き継いで実行する。
【0013】
ローカルサーバは、クラウドシステムと比較して処理性能が下がるものの、機能を代替的に提供して処理を継続させることができる。またユーザは、クラウドシステムで処理するか、ローカルサーバで処理するかを、選択することができる。
【0014】
ローカルサーバは、機能提供が完了し次第、MFP側に処理結果のデータやメッセージなどの、処理結果に関するデータを送信する。これにより、MFPを使用するユーザの使用制限を緩和することが可能になる。ローカルサーバの機能は、MFP内部に設けても同様の機能を実現することが可能である。
【0015】
図1は、実施形態のクラウド連携システムを示す模式図である。クラウド連携システム100は、ローカルサーバ10(以降サーバ10と記載する)、MFP20、PC30、クラウドシステム40を有する。サーバ10、MFP20、PC30は、LAN60(LAN:ローカルエリアネットワーク)により接続されている。またクラウドシステム40は、外部ネットワークであるインターネット50を介してLAN60に接続される。
【0016】
図2は、従来および実施形態の連携フロー(データの流れ)を示した図である。まず、プリント処理について、本実施形態および従前の態様も含めて
図2(A)を用いて説明する。従来のクラウドシステムにおいて、高負荷印刷データはユーザPC30からMFP20へ送られる(R1の経路)。その後、印刷データはR2に示す経路によりインターネット50を介してクラウドシステム40へ送られる。クラウドシステム40で展開、処理された印刷用画像データは、R3に示す経路で再度MFP20へ送り返され、MFP20はその画像データを印刷する。
【0017】
しかしながら、印刷データの送信中、または処理中に何らかの障害によりクラウドシステムが応答しなくなった場合には、ユーザは待たされるか、途中でキャンセル等の操作が必要となる事態に陥る。そこで本実施形態では、MFP20とクラウドシステム40との間、すなわち、MFP20の設置されるLAN60内に、サーバ10を設置し、クラウドシステム40が応答しなくなった場合でも、その役割をサーバ10に代替させる。
【0018】
本実施形態のシステム連携の動作について、
図2(B)、
図2(C)を用いて説明する。MFP20は、R1の経路で受け取った処理対象の印刷データを、クラウドシステム40に送信する代わりにサーバ10に送信する(
図2(B)の経路R2−1)。
【0019】
サーバ10は、受信した印刷データをR2−2で示す経路によりクラウドシステムへ送信する。この際、サーバ10は、クラウドシステム40より何ら応答が無い場合には、印刷データを送ることを止め、サーバ10の自己のシステム内で処理するよう切り替える。サーバ10は、自己のシステム内で処理した画像データを、
図2(C)のR3−2で示される経路で、MFP20に返信し、MFP20はその受信した画像データを印刷出力する。
【0020】
クラウドシステムからの応答があり、問題無く処理される場合には、サーバ10は、
図2(C)のR3−1に示す経路で、処理後の画像データを受け取り、R3−1の経路でMFP20へ転送する。MFP20は、受信した印刷用画像データを印刷する。
【0021】
次に、ユーザがMFP20の操作パネルを使用してスキャン処理を実行する場合の動作について、同様に
図2を用いて説明する。尚、スキャン機能自体はMFP20にも備わっているが、CPU性能を多く使用する高画質化処理や、高圧縮化処理等をクラウドシステム40で高速処理することで、ユーザの待ち時間を短縮させることができる。
【0022】
スキャン処理の従前の態様は、上記プリント処理と同様に、MFP20がスキャナで読み取った画像データをクラウドシステム40宛てに送信し(
図2(A)のR2)、クラウドシステム40は、R3示す経路で処理後のデータ(ファイル)を返信する。
【0023】
しかし、LAN60とクラウドシステム40との間にある、例えばネットワーク50がダウンしたり、クラウドシステム40が高負荷状況になったりする場合があり、常に高速な応答を実現することは難しい可能性がある。よって本実施形態では、上記のようにLAN60内にサーバ10を設置することで対処する。
図2(B)、(C)を用いて説明すると、MFP20でスキャンされた画像データは、R2−1の経路でMFP20からサーバ10へ送られる。サーバ10は、R2−2の経路でインターネット50を介して接続されるクラウドシステム40宛てに画像データを送信する。クラウドシステム40で処理されたデータは、R3−1の経路でサーバ10に返信される。サーバ10はR3−2の経路でデータをMFP20へ転送する。クラウドシステム40からの応答が無い場合、サーバ10は自己のリソースを使用して代替処理を行い、R3−2の経路で処理後のデータをMFP20へ返送する。
【0024】
図3はサーバ10の内部構成例を示す図である。サーバ10は、制御を司り、周辺回路を含んだSoC(System-on-a-chip)構成且つマルチコア構成であるプロセッサ101を有する。サーバ10は、ワークエリアとして使用する揮発性記憶装置であるRAM(Random Access Memory)102、起動等に使用するプログラムデータを含むROM(Read only Memory)103を有する。サーバ10は、アプリケーションプログラムや、受信画像データ、送信データを保管するHDD(Hard Disk Drive)110を有す。サーバ10は、計算能力を向上させるために内部に含まれる、GPGPU(General Purpose Graphic Processing Unit)を含むACC104(ACC:アクセラレータ)を有する。またサーバ10は、LAN接続に使用されるネットワークI/F105を有する。サーバ10は、さらに、システム管理者等がサーバ10の設定変更や動作状況確認等に使用する出力装置121、入力装置131を有する。尚、HDD110は、記憶容量拡大可能なように複数台の装置を接続する構成となっている。また、ACC104は、様々な構成のものに対応するために、ボード形式の拡張ユニットがPCIe(ピーシーアイエクスプレス)等の汎用拡張バスとなっており、入替、増設が可能な構成となっている。
【0025】
またHDD110には、アプリケーションプログラム151が事前にインストール、もしくはオプションとして導入される。プログラム151は、例えばOCR(Optical Character Recognition)機能を実現するアルゴリズムが組み込まれている。プログラム151は、スキャン画像データをOCR処理し、受信スキャンデータより特定のキーワードを検索する。ここで、特定のキーワードは、「機密」、「社外秘」等の文字列や、社名、個人情報等、社外への持ち出しを禁止すべきドキュメントを特定できる用語とし、事前に設定登録しておく。サーバ10は、処理対象データを受信すると、データ内に登録した特定キーワードがあるか否かを判定する。ここで、サーバ10は特定キーワードが無いと判定した場合、処理対象データをクラウドシステム40に転送し、特定キーワードがあると判定した場合、サーバ10は自己のリソースを用いて処理対象データに対しての処理を実行する。
【0026】
図4は、上記で説明したスキャン処理におけるサーバ10内の動作例を示したフローチャートである。尚、以降に説明するフローチャートは、サーバ10内のプロセッサ101が、プログラム151をRAM102に展開して演算実行することで、また各ハードウェアと協働することで実現される。
【0027】
サーバ10が、ネットワークIF105経由で、スキャン画像データをMFP20から受け取ると(ACT001)、プロセッサ101は、クラウドシステム40を使用できるか否かを、判定する(ACT002)。クラウドシステム40より、使用可能を示す応答を受信すると(ACT002、Yes)、プロセッサ101は、MFP20の操作者にクラウドシステム40による処理で良いか否かを問合せるメッセージを送信する(ACT020)。MFP20より、ネットワークIF105経由で操作者から了解を示す応答を受信した場合(ACT021、Yes)、プロセッサ101は、処理実行中とするメッセージをMFP20に送信し(ACT022)、ネットワークI/F105経由でそのスキャン画像データをクラウドシステム40へ送信する(ACT023)。プロセッサ101は、クラウドシステム40から処理の完了を示す信号を受信するまで待機する(ACT024、Noのループ)。尚、操作者からクラウドシステム40の使用について了解が得られない場合(ACT021、No)、処理はACT003に進む。
【0028】
プロセッサ101は、クラウドシステム40から処理済みデータを受信すると(ACT024、Yes)、そのデータをスキャンジョブとして事前に設定される送付先へ転送し、或いは処理データをHDD110に記憶(登録)する(ACT025)。プロセッサ101は、ネットワークIF105を制御してMFP20の操作者へ処理完了の通知を行う(ACT026)。
【0029】
ACT002の判定で、クラウドシステム40が何らかの原因で使用できない場合(ACT002、No)、サーバ10での処理を試行する。プロセッサ101は、まずは高速処理を優先するよう、ACC104のリソース割り当てが可能か否かを判定する(ACT003)。リソース割り当てが可能な場合(ACT003、Yes)、プロセッサ101は、MFP20の操作者へ、ACC104にて処理することを確認するメッセージを送信する(ACT004)。
【0030】
操作者からACC104にて処理することの了解を得られると(ACT005、Yes)、プロセッサ101は、ACC104を制御し、当該処理を実施する(ACT006)。プロセッサ101は、処理後のデータをACC104から受信すると、スキャンジョブとして事前に設定される送付先へ送信し、或いはHDD110に記憶(登録)する(ACT007)。プロセッサ101は、ネットワークI/F105を制御してMFP20の操作者へ処理完了の通知を行う(ACT008)。
【0031】
ACT003において、ACC104の割り当てが不可能な場合(ACT003、No)、プロセッサ101は、MFP20の操作者へ、サーバ内のソフトウェアを使用して処理を実施することについての確認を行う(ACT010)。ソフトウェアによる処理の了解が操作者から得られると(ACT011、Yes)、プロセッサ101は、ACC104を使用せずに自己のソフトウェアを用いて処理を遂行する(ACT012)。この際、処理用のプログラム(例えばプログラム151)をロードして実行する。プロセッサ101は、処理後のデータをスキャンジョブとして事前に設定される送付先へ送信し、或いは処理データをHDD110に記憶(登録)する(ACT013)。プロセッサ101は、ネットワークIF105を制御してMFP20の操作者へ処理完了の通知を行う(ACT014)。
【0032】
ACT005、ACT011で、操作者より了解が得られない場合(ACT005、No、ACT011、No)、本例では終了となる。
【0033】
また、本例では、操作者からクラウドシステム40の使用について了解が得られない場合(ACT021、No)の例としては、処理する文書が機密文書であるなどセキュリティ上の理由がある。
【0034】
図5は、プリント処理におけるサーバ10内の動作例を示すフローチャートである。PC30の操作者は、展開負荷が重いと思われるデータを印刷する場合、クラウドシステム40でのデータ展開を選択することが可能で、また処理実行指示を行うことが可能である。
【0035】
図5に示すプリント処理の大部分の動作は、
図4で説明したものと同様であるが、問い合わせメッセージ等の送信先がMFP20ではなく、操作者が今現在使用しているPC30となる(ACT104、ACT108、ACT110、ACT114、ACT120、ACT122、ACT126)。また、クラウドシステム40或いはサーバ10で処理したデータは、MFP20に送信され、MFP20によりシート上に印刷される(ACT107、ACT113、ACT125)。これら各動作以外は、
図4と同様の動作となるため、説明を割愛する。
【0036】
尚、セキュリティ上の理由や情報漏えい防止の観点で、クラウドシステム40での処理を避けるべき場合には、サーバ10はPC30の操作者へその旨通知し、クラウドシステム40での処理を選ばないようにさせることも可能である。障害や高負荷などによりクラウドシステム40が使用できない場合と、上記理由や観点で使用しない場合には、サーバ10内のACC104を割り当てて処理するか、マルチコアのプロセッサ101を利用したソフトウェア処理で対応することも可能である。
【0037】
図6は、MFP20での操作パネル上でのスキャン処理用メニュー画面の表示例である。MFP20のホームメニューから、スキャン処理メニューを選択することで、
図6のメニューが表示される。またユーザは、タッチパネルの操作により、各メニューの操作を行うことができる。
【0038】
画面右端上方には、ホームメニューへ戻るためのボタンB1が設置されている。また画面左側にはスキャン処理での基本設定(解像度、カラー/モノクロ、画像処理モード、原稿サイズ)の設定領域A1がある。領域A1をタッチパネルで操作することで、ユーザは必要に応じて各種設定を行う。またADFモード設定領域A2は、スキャン原稿が片面か両面かの設定が可能である。
【0039】
サーバスキャン設定領域A3では、ユーザはサーバ10での処理のON/OFFを選択することができる。サーバスキャン設定がONの場合、サーバ10もしくはクラウドシステム40で処理を行う設定となり、OFFの場合、MFP20内のみでの処理となる。また領域A3では、処理モード設定、処理後のデータ送付先設定を行うことができる。また領域A3は、サーバの処理状況やメッセージ表示にも対応することができる。
【0040】
領域A3は、さらにローカルサーバ/クラウドシステムの選択メニューボタンB2、B3を含み、ユーザは、サーバ10に処理させるか、クラウドシステム40に処理させるかをボタン押下で選択的に指定することができる。ボタンB2、B3は排他的に押下される構成となっており、ボタンB3が押下されると、
図4のフローチャートに従い、クラウドシステム40で優先的に処理する動作となる。一方、機密データであるなどの理由からボタンB2が押下されると、サーバ10内のみでの処理となる。尚、クラウドシステム40で処理させる場合、クラウドシステム40へ直接処理対象データを送信する制御(
図2(A)に示す連携フロー)であってもよい。
【0041】
領域A4は、処理終了時の通知先の設定を行う領域である。ユーザは、領域A4を用いて処理が終了した時の通知先を設定することができる。通知先の設定は、規定のファイルサーバの識別情報やEメールアドレスを設定する。Eメールアドレスの場合、ユーザはEメールとして通知を受け取ることができる。通常は磁気カード/無線IDカード/ユーザ認証により操作者がMFP20により特定された時点で、この通知先は事前に設定されている値が表示されるが、ユーザの手動入力、変更・追加も許容する。
【0042】
必要なスキャンメニュー設定が終了すると、ユーザは画面右下のスキャンスタートボタンB4を押下する。MFP20はADFにセットされた原稿のスキャン動作を開始する。MFP20は、スキャン設定に基づいてサーバ10経由でスキャン画像データをクラウドシステム40へ送信し、処理を実行させたり、中継するサーバ10内でのクラウドシステム代替処理を実行させたりすることが可能である。
【0043】
図7はプリント処理の際にPC30で表示されるメニュー画面である。本画面は、PC30に事前に導入されているドライバプログラムと、サーバ10上で動作する
図5のフローチャートに従ったプログラムとの連携によって表示される。当該メニュー画面には、印刷出力先のプリンタ/MFPを選択できる領域A11があり、各種印刷設定を行う領域A12がある。本例での印刷設定は、印刷サイズ/用紙選択、印刷頁選択、両面方向設定、余白設定、綴じ位置設定、給紙段選択、印刷方向選択などが含まれる。
【0044】
また
図6の領域A3と同様に、負荷の重い印刷データ展開用にサーバ処理印刷の設定が可能な領域A13がある。領域A13では、ローカルサーバ処理のON/OFF設定ボタンB11、及びクラウドシステム/ローカルサーバのいずれで処理を実行するかの選択ボタンB12を有し、サーバ処理種別の設定が可能となる。
【0045】
図7に示す画面例では、選択されたプリンタ/MFPの選択状況やその状態を視覚的に表示する模式
図G1も用意されている。模式
図G1により、選択された給紙段の状況の他、ADFやフィニッシャ等のオプション装着状況も一瞥で確認可能である。各種設定後、ユーザは、印刷スタートボタンB13を押下することで、印刷開始となる。
【0046】
このように、本実施形態では、クラウドシステムによる処理が可能な場合でも、処理データの内容から秘匿性を確保したい場合や、クラウドシステムの利用により生ずる費用を押さえたい場合などの理由で、外部への処理を意図的に選択しない、という操作が可能となっている。また逆に、クラウドシステム40との接続性の問題によってサーバ10による処理が選択された場合、低速性や画質等の問題により印刷を止める、という選択も可能である。停止操作は、例えばボタンB2B3やB11、B12を再押下して解除する操作となる。
【0047】
ここで、
図4のACT002、
図5のACT102で示したクラウドシステム40の利用可否判定について、
図8、
図9を参照しつつ説明する。
図8は、サーバ10でのクラウドシステム40との接続性を確認するフローチャートであり、
図9は、接続性確認処理の際に使用される閾値テーブルである。クラウドシステム40との接続性確認は、使用環境に依存して変化するため、
図9に示すように閾値が複数用意されている。サーバ10の管理者は、必要に応じて各閾値を切り替えることができる。
【0048】
プロセッサ101は、
図9の閾値テーブルで設定された閾値を取得する(ACT201)。プロセッサ101は、実行要求をクラウドシステム40に送信し、この要求に対する受信応答が、設定時間内に返信されるかを判定する(ACT202)。すなわち、プロセッサ101は、
図9に示すように1秒、5秒、10秒のいずれかの時間内に応答があるかを判定する。
【0049】
設定時間内に返信がある場合(ACT202、Yes)、プロセッサ101は、クラウドシステム40と接続可能であるものとみなす(ACT203)。一方、設定時間内に返信がない場合(ACT202、No)、プロセッサ101は、クラウドシステム40と接続不可であるものとみなす(ACT204)。プロセッサ101は、この判定結果に基づき、ACT002、ACT102の判定を行う。
【0050】
図10は、サーバ10内のリソース管理動作の一例を示すフローチャートであり、
図11は、この処理の際に使用されるリソース管理テーブルを示す図である。本実施形態では、クラウドシステム40との接続性が確保できない場合や、サーバ10での処理を選択した場合、サーバ10は、新たにジョブを処理するためのリソースが残っているかを確認し、残余リソースがある場合はリソースを確保する。
【0051】
図11に示すリソース管理テーブルは、主にACC104やプロセッサ101のコア数(リソース)の残量を管理するために用いられる。例えばACC104にボード単位で2880個程度のコアが含まれており、高画質化/高圧縮処理や、高負荷プリント画像展開処理に320個/ジョブ単位のコアを割り当てて対応する場合、最大9ジョブまでは、ACC104を使った処理を行うことができる。
【0052】
図10のフローチャートに基づき説明する。プロセッサ101は、ジョブの要求があるまで待機する(ACT301、Noのループ)。ジョブ要求が発生すると(ACT301、Yes)、リソースを割り当てる際に必要となる値を算出する(ACT302)。本例では、以下の数値を算出する。
(ACT302−1)実行可能なジョブ数(J_r)を1減算した値
(ACT302−2)プロセッサの残余コア数(C_r)から今回使用する予測コア数(C_u)を減算した値
(ACT302−3)ACCの残余コア数(ACC_r)から今回使用する予測コア数(ACC_u)を減算した値
(ACT302−4)メモリの残余サイズ(M_r)から今回使用する予測メモリサイズ(M_u)を減算した値
【0053】
プロセッサ101は、ACC104のリソース割り当てが可能かを判定する(ACT303)。プロセッサ101は、一例として、ACT302−1の結果がプラスもしくはゼロの場合、且つACT302−3の結果がプラスもしくはゼロの場合、割り当て可能と判定し、いずれか一方でもマイナスの場合、割り当て不可と判定する。割り当て可能の場合(ACT303、Yes)、プロセッサ101は、ACC104での処理として扱う(ACT309)。尚、
図11に示す実行可能なジョブ数(J_r)および残余ACCコア数(ACC_r)の値は、
図4、
図5のACT006で実際にACC104での処理が実行される前に更新される。
【0054】
ACC104の割り当てが不可である場合(ACT303、No)、プロセッサ101は、自己のリソース(ソフトウェアリソース)の割り当てが可能かを判定する(ACT304)。プロセッサ101は、一例としてACT302−1の結果がプラスもしくはゼロの場合、且つACT302−2の結果がプラスもしくはゼロの場合、割り当て可能と判定し、いずれか一方でもマイナスの場合、割り当て不可と判定する。ソフトウェアリソースの割り当てが可能の場合(ACT304、Yes)、プロセッサ101は、ソフトウェア処理となるように扱う(ACT308)。尚、
図11に示す実行可能なジョブ数(J_r)および残余コア数(C_r)の値は、
図4、
図5のACT012で実際に処理が実行される前に更新される。
【0055】
ソフトウェアリソースの割り当てが不可の場合(ACT304、No)、プロセッサ101は、当該ジョブを予約することが可能か否かを判定する(ACT305)。この判定は、例えば現在の空待ちジョブ数(J_w)が規定範囲内か否かの判定や、利用者宛てにメッセージを送信し、了解が得られるか否かの判定となる。ジョブ予約が可能である場合(ACT305、Yes)、プロセッサ101は、空待ちジョブ数(J_w)を1加算して、当該ジョブを例えば待ちキューに登録する(ACT307)。ジョブ予約が不可である場合(ACT305、No)、プロセッサ101は、当該ジョブのキャンセル処理を行う(ACT306)。
【0056】
尚、各ジョブが処理されて終了する際には、その処理内で使用したリソースを開放し、
図11に示すリソース管理テーブルを改訂し正規残量に戻す処理を実施することで、リソースの有効活用を実現する。
【0057】
このように、通常のMFPに使用されるプロセッサよりも強力なマルチコアプロセッサを用いることで、MFP上でのソフトウェア処理よりも高速に処理することが可能である。よって、搭載メモリ量や採用プロセッサのコア数により、ソフトウェア処理による対応ジョブ数を予め決めておき、その数でローカルサーバでの対応ジョブを管理することが可能となる。またローカルサーバでの処理ジョブは順次処理されるため、短時間であれば上記のように予約処理も対応可能で、予め決めておいた数で管理することも可能である。
【0058】
図12は、サーバ10内に増設されるACC104と同等機能を有するアクセラレータを、サーバ10では無く、MFP20のシステムボードに増設した場合のブロック図である。
図12に示すMFP20は、プロセッサ201、RAM202、ROM203、NVRAM(Non-volatile RAM)205、スキャナ206、プリンタ207、HDD208、ネットワークIF209を有する。ここまでの構成は、従前のMFPと同様である。尚、オプションとしてADF221、フィニッシャ222を有する構成でもよい。このような構成のMFP20に対し、本例では、サーバ10のACC104と同等のACC204を組み込む。また本例のMFP20は、サーバ10に導入されているプログラム151と同程度のプログラムを含み、OCR機能をさらに追加したプログラム251をHDD208に導入する。半導体プロセスの微細化と高速化低価格化が進むと、本例のMFP20のようにシステムボード内に専用アクセラレータを設け、高性能化を実現することも可能である。また必要に応じてネットワークを介した協調動作も対応可能である。この実装により、上記サーバ10の機能をMFP20に持たせることができる。
【0059】
本実施形態では装置内部に発明を実施する機能が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、CD−ROM等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のOS(オペレーティング・システム)等と協働してその機能を実現させるものであってもよい。
【0060】
以上に詳説したように、実施形態では、MFPとクラウドシステムとの間にローカルサーバを用意し、MFPとクラウドシステムとの接続状況に依らず継続して高速化処理機能をユーザに提供可能となる。また必要に応じてユーザの意図によってクラウドシステムに接続せずローカルサーバを選択した高速化処理に対応することができる。
【0061】
本発明は、その精神または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、なんら拘束されない。さらに、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、すべて本発明の範囲内のものである。