(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
(第1実施形態)
以下、本発明の第1実施形態について説明する。
【0019】
(システム1の構成)
図1は、システム1の概略図である。
【0020】
システム1は、画像形成装置の一例である複数のMFP2(2a,2b,2c)、PC3、クラウド4から構成されている。クラウド4は、データを大容量格納可能なコンピューターであり、センターサーバーとも呼ばれる。MFP2、PC3、クラウド4は、ネットワークで接続されている。詳細には、MFP2a,2b,2c間は専用のケーブルで接続されており、MFP2、PC3、クラウド4間は無線LAN(ローカルエリアネットワーク)で接続されている。なお、
図1では、MFP2が3台の例を示しているが、MFP2は複数あればよく、2台でも4台以上でもよい。
【0021】
システム1は、MFP2a,2b,2cにサーバー機能を組み込んで構成されている。したがって、MFP2a,2b,2cのいずれかに格納されたデータは、データの格納先を意識することなく、どのMFP2、PC3からでも利用可能である(例えば、検索、閲覧、印刷)。これにより、ユーザーは、あたかもユーザーが使用している装置(MFP2、PC3)に全てのデータが格納されているかのようにデータを利用可能である。そして、システム1では、MFP2、PC3がクラウド4とも接続されているので、ユーザーはWebメール等のクラウド4により提供されるサービス(クラウドサービス)を利用することができる。
【0022】
(MFP2の構成)
図2は、MFP2のハードウェア構成図である。なお、ここではMFP2a,2b,2cの構成は全て同じであるとして、MFP2の構成として説明する。
【0023】
MFP2は、ユーザーによって送信された印刷指示を受け付け、印刷指示に応じて印刷処理(画像データを生成し、画像形成を実行する処理)を実行可能であるとともに、クライアント(他のMFP2、PC3、携帯端末等)からの要求に応じてサーバー処理を実行可能な画像形成装置である。MFP2は、タッチパネル21、スキャナー22、プリントエンジン23、外部メモリーインターフェース24、制御部28を備えている。制御部28は、記憶装置25、NIC(Network Interface Controller)26、CPU27を備えている。
【0024】
(タッチパネル21)
タッチパネル21は、図示しない液晶ディスプレイの面上に重ねて設けられ、タッチペンやユーザーの指による接触によってユーザーからの入力を受け付ける。液晶ディスプレイは、各種情報を表示する。なお、液晶ディスプレイは、プラズマディスプレイ、有機ELディスプレイ等であってもよい。
【0025】
(スキャナー22)
スキャナー22は、図示しないADF(Auto Document Feeder)、画像読取センサーから構成される。ADFは、給紙台に載置された用紙束から原稿を1枚ずつ繰り出し、繰り出した用紙を画像読取センサーの読み取り位置を経由して排紙台へ搬送する。画像読取センサーは、ADFによって搬送された用紙、又は、ユーザーによって図示しないプラテンガラス上に載置された用紙の画像を光学的に読み取り、印刷データを生成する。
【0026】
(プリントエンジン23)
プリントエンジン23(印刷処理手段)は、印刷データに基づいて用紙に画像形成を実行する。なお、プリントエンジン23は、用紙に限らず各種媒体(布、ラベル等)に画像を印刷するように構成されていてもよい。
【0027】
(外部メモリーインターフェース24)
外部メモリーインターフェース24は、図示しないUSB(Universal Serial Bus)メモリーやSDカード(Secure Digital memory card)等の外部メモリーをMFP2に接続するための接続口、接続された外部メモリーとデータを授受するためのインターフェース回路で構成される。外部メモリーインターフェース24は、USBメモリー、SDカードそれぞれに対応して複数設けられているが、1つであってもよい。
【0028】
(記憶装置25)
記憶装置25は、ROM(Read Only Memory)25a、RAM(Random Access Memory)25b、HDD(Hard Disk Drive)25cから構成されている。記憶装置25には、各種プログラム及び各種データを格納可能である。
【0029】
(ROM25a)
ROM25aは、不揮発性の記憶装置であり、具体的にはSSD(Solid State Drive)であるが、eMMC(embedded Multi Media Card)等であってもよい。ROM25aは、各種プログラムを格納するための記憶領域、MFP2の状態を示す各種データ(累積印刷枚数、トナー残量等)を格納するための記憶領域、印刷データを一時的に格納するための記憶領域等を備える。
【0030】
(RAM25b)
RAM25bは、揮発性の記憶装置であり、スキャナー22で生成された印刷データ等を一時的に受け取る。
【0031】
(HDD25c)
HDD25cは、大容量かつ不揮発性の記憶装置であり、過去にスキャナー22で生成した印刷データ、外部装置から格納された印刷データ、FAXの送信先、フォント等が格納される。ここで、外部装置は、データの送受信が可能な装置であればよく、例えば、PC3、携帯端末、USBメモリー等である。HDD25cは、印刷データを一時的に格納するための記憶領域をさらに備えている。HDD25cに格納されているデータは、印刷処理を実行するために印刷データが一時的に格納される際、及び、クライアントからアクセスを要求された際にアクセスされる。
【0032】
(NIC26)
NIC26は、外部装置とネットワークで接続される。MFP2は、NIC26を介して外部装置と印刷指示や印刷データを送受信することが可能である。また、NIC26は、ネットワークを介してFAXのデータを送受信したり、スキャナー22で生成した印刷データをメール送信したりすることが可能である。なお、データの送受信では、TCP/IP(Transmission Control Protocol / Internet Protocol)やSMTP(Simple Mail Transfer Protocol、簡易メール転送プロトコル)が利用されるが、FTP(File Transfer Protocol)等、他のプロトコルが利用されてもよい。
【0033】
(CPU27)
CPU27は、記憶装置25に格納されている各種プログラムを実行することにより、MFP2全体を制御する。CPU27は、クライアントからの要求に応じてサーバー処理を実行する。
【0034】
図3は、CPU27の機能構成図である。CPU27は、受付部27a、格納先決定部27b、転送部27c、印刷処理部27d等として機能する。
【0035】
(受付部27a)
受付部27a(受付手段)は、外部装置からの印刷指示及び自装置のタッチパネル21による印刷指示を受け付ける。外部装置からの印刷指示は、外部メモリーインターフェース24又はNIC26を介して受け付けられる。
【0036】
(格納先決定部27b)
格納先決定部27b(格納先決定手段)は、受付部27aが受け付けた印刷指示に関する印刷処理が、印刷データを記憶手段(HDD25c)に一時的に格納する印刷処理である場合に、HDD25cのアクセス状態に基づいて、印刷データの格納先を決定する。格納先決定部27bは、自装置のHDD25c及び他装置のHDD25cの中から印刷データの格納先を決定する。
【0037】
ここで、アクセス状態とは、アクセスの有無、何の処理によるアクセスか、アクセスを要求するクライアントの数、アクセスに関するデータのサイズ等を含む。アクセスに関するデータは、アクセスによって送受信されているデータであり、複数のアクセスがある場合はそれぞれのアクセスについて考慮される。ここで、アクセスがどの程度混雑しているか(以下アクセス混雑度)は、アクセスを要求するクライアントの数、アクセスに関するデータのサイズに依存する。アクセスを要求するクライアントの数が多く、アクセスに関するデータのサイズが大きいほどアクセス混雑度は高い。逆に、アクセスを要求するクライアントの数が少なく、アクセスに関するデータのサイズが小さいほどアクセス混雑度は低い。アクセス混雑度は、例えば(アクセス混雑度)=(アクセスを要求するクライアントの数)×(クライアント当たりのアクセスに関するデータの平均データサイズ)によって算出できる。ここで、平均データサイズは、所定期間(例えば1日)の履歴情報から算出する。
【0038】
(転送部27c)
転送部27c(転送手段)は、格納先決定部27bが印刷データを他装置のHDD25cに格納すると決定した場合に、NIC26を介して印刷データを他装置へ転送する。
【0039】
(印刷処理部27d)
印刷処理部27d(印刷処理手段)は、印刷データを読み込んでラスタライズ等を実行し、画像データを生成する。生成された画像データはプリントエンジン23へ送信され、送信された画像データに基づいて、プリントエンジン23によって画像形成が実行される。
【0040】
(MFP2の制御)
MFP2に外部装置から印刷指示が送信された際の印刷処理制御は、その印刷指示がプリンタードライバーを介して送信されたか、プリンタードライバーを介さずに送信されたかで異なる。MFP2に印刷指示が送信されると、受付部27aは、送信された印刷指示を解析し、印刷指示がプリンタードライバーを介して送信されたか、プリンタードライバーを介さずに送信されたかを判断する。
【0041】
したがって、印刷指示がプリンタードライバーを介して送信された場合は、印刷処理部27dは、送信された印刷データを先頭から順次読み込みながら、印刷データに対してラスタライズ等を実行し、画像データを生成する。この際、送信された印刷データはHDD25cに格納されない。そして、プリントエンジン23は、生成された画像データに基づいて画像形成を実行する。
【0042】
したがって、印刷指示がプリンタードライバーを介して送信された場合は、印刷処理部27dは、送信された印刷データを先頭から順次読み込みながら、印刷データに対してラスタライズを実行し、ビットマップ形式のデータを生成する。この際、送信された印刷データはHDD25cに格納されない。そして、プリントエンジン23は、生成されたビットマップ形式のデータに基づいて画像形成を実行する。
【0043】
一方で、印刷指示がプリンタードライバーを介さずに送信された場合は、印刷指示に続いて送信される印刷データもプリンタードライバーを介さずに送信されるので、印刷データはPDLで記述されておらず、例えば、PDF(Portable Document Format)で記述されている。
【0044】
ここで、PDFで記述された印刷データは、先頭部、本体部、末尾部の3つから構成される。先頭部には、印刷データがPDFで記述されていること、及び、PDFのバージョン等が記述される。本体部には、複数のオブジェクトがオブジェクト番号とともに記述される。オブジェクトとは、文字データや画像データ等の文書を構成する要素である。末尾部には、相互参照表が記述される。相互参照表とは、オブジェクト番号と、オブジェクト番号に対応するオブジェクトの文書中の位置とを対応させた表であり、相互参照表により本体部に記述されたオブジェクトが文書中のどの位置にあるかが記述される。
【0045】
印刷データの本体部に記述される複数のオブジェクトは、文書の先頭に位置するオブジェクトから順に記述されているわけではないので、印刷データの末尾部に記述される相互参照表を読み込むまでオブジェクトが文書中のどの位置にあるかを把握することができない。印刷処理部27dが印刷データに対してラスタライズを実行する際に印刷データがPDFで記述されている場合は、印刷処理部27dは、印刷データの末尾部にある相互参照表を読み込み、相互参照表に基づいて、まず、文書の先頭に位置するオブジェクトを特定し、そのオブジェクトに対してラスタライズを実行する。次に、先頭から2番目に位置するオブジェクトを特定し、そのオブジェクトに対してラスタライズを実行する。このように、相互参照表に基づいて文書の先頭に位置するオブジェクトから順番にオブジェクトを特定しながらラスタライズを実行するので、ラスタライズを実行するためには、まず相互参照表を読み込む必要がある。しがたって、印刷処理部27dは、印刷データの末尾部に記述される相互参照表を読み込むまでラスタライズを実行できないので、印刷データを先頭から順次読み込んでラスタライズを実行できない。
【0046】
そこで、印刷データがプリンタードライバーを介さずに送信された場合は、送信された印刷データは全て一時的にHDD25cに格納される。そして、印刷処理部27dは、HDD25cに格納された印刷データを読み込んでラスタライズを実行し、画像データを生成する。これにより、印刷処理部27dは、外部装置からMFP2へ送信される印刷データを読み込む際に、送信されるデータの順序にとらわれることなく、印刷データの末尾部に記述される相互参照表を読み込んでから印刷データの本体部に記述されるオブジェクトを適宜読み込むことができる。印刷処理部27dによって画像データが生成され、プリントエンジン23によって画像形成が実行されると、HDD25cに格納された印刷データは消去される。
【0047】
なお、印刷指示及び印刷データがプリンタードライバーを介さずに送信される形態としては、携帯端末から送信される形態、Webブラウザを利用してPC3から送信される形態、外部メモリーインターフェース24を介してUSBメモリーから送信される形態等がある。これらのプリンタードライバーを介さない形態による印刷をダイレクトプリントと呼ぶ。なお、USBメモリーから印刷指示及び印刷データが送信される場合は、ユーザーのタッチパネル21による入力によって、USBメモリーに格納されている印刷データの中から印刷処理を実行する印刷データが選択される。
【0048】
(ダイレクトプリントの印刷処理制御)
図4は、第1実施形態に係るダイレクトプリントの印刷処理制御を示すフローチャートである。以下、
図4を参照して、ダイレクトプリントの印刷処理制御について説明する。なお、以下の説明では、MFP2aが自装置、MFP2b,2cが他装置である場合を例に説明する。ただし、他装置の数は1台でも3台以上でもよい。
【0049】
まず、ステップS1では、自装置(MFP2a)に印刷指示が送信されると、受付部27aは、送信された印刷指示を受け付け、印刷指示がダイレクトプリントの印刷指示であることを確認する。ダイレクトプリントの印刷指示は、携帯端末から送信された場合、及び、Webブラウザを利用してPC3から送信された場合はNIC26を介して受け付けられ、USBメモリーから送信される場合は外部メモリーインターフェース24を介して受け付けられる。
【0050】
ここで、ダイレクトプリントでは印刷データを先頭から順次読み込んでラスタライズを実行できないので、送信された印刷データは全て一時的にHDD25cに格納される。格納先決定部27bは、ステップS2以下で、自装置(MFP2a)のHDD25cのアクセス状態に基づいて、自装置のHDD25c及び他装置(MFP2b,2c)のHDD25cの中から印刷データの格納先を決定する。
【0051】
ステップS2では、格納先決定部27bは、自装置(MFP2a)のHDD25cへのアクセスがすでにあるか否かを判断する。自装置のHDD25cへのアクセスがあると判断した場合は(ステップS2でYES)、格納先決定部27bは、自装置のHDD25cへのアクセスがサーバー処理によるアクセスであるか否かを判断する(ステップS3)。
【0052】
ステップS3において、格納先決定部27bが自装置(MFP2a)のHDD25cへのアクセスがサーバー処理によるアクセスであると判断した場合は(ステップS3でYES)、サーバー処理による自装置のHDD25cへのアクセスがすでに存在している。この場合に印刷データが自装置のHDD25cに格納され始めると、印刷データの格納によるアクセスとサーバー処理によるアクセスとによって自装置のHDD25cへのアクセスが混雑する可能性がある。自装置のHDD25cへのアクセスが混雑すると、印刷処理を実行するための印刷データの格納に時間がかかり、サーバー処理では例えばデータの検索に時間がかかってしまう。すなわち、印刷処理及びサーバー処理が完了するまでに時間を要する。
【0053】
そこで、この場合は、格納先決定部27bは、印刷データを自装置(MFP2a)のHDD25cに格納せずに、他装置(MFP2b,2c)のHDD25cのうちいずれかのHDD25cに格納するようにする。ステップS4では、格納先決定部27bは、他装置それぞれに対して他装置のHDD25cそれぞれのアクセス履歴を自装置へ送信するように要求し、他装置のHDD25cそれぞれのアクセス履歴を取得する。アクセス履歴とは、アクセス時間(アクセス1回あたりの平均アクセス時間)、アクセス回数(所定期間内のアクセス回数)等、それぞれの装置のHDD25cへのアクセスの頻度が判断できるデータであり、MFP2a,2b,2cで管理されるデータである。格納先決定部27bは、取得したアクセス履歴に基づいてアクセス頻度が低い順にアクセス状態(ここではアクセスの有無)を確認する(ステップS5)。そして、HDD25cへのアクセスがない他装置があれば(ステップS6でYES)、格納先決定部27bはその他装置に印刷データを格納すると決定し、転送部27cは自装置に印刷データが送信されるとNIC26を介して格納先に決定された他装置へ印刷データを転送する(ステップS7)。
【0054】
ここで、ステップS4〜S7の制御について、具体例に基づいて詳細に説明する。ここでは、ステップS4で取得したアクセス履歴に基づいて、格納先決定部27bは、MFP2bのHDD25cのアクセス頻度がMFP2cのHDD25cのアクセス頻度より低いと判断したとする。ここで、アクセス時間、アクセス回数等に基づいてアクセス頻度を算出するにあたっては、各種アルゴリズムを適用することができる。ステップS5では、格納先決定部27bはアクセス頻度が低い他装置のHDD25cから順にその他装置のHDD25cのアクセスの有無を確認するので、この例では、格納先決定部27bはまずMFP2bのHDD25cへのアクセスがすでにあるか否かを確認する。MFP2bのHDD25cへのアクセスがあったとすると、格納先決定部27bは次にMFP2cのHDD25cへのアクセスがすでにあるか否かを確認する。そして、格納先決定部27bは、MFP2cのHDD25cへのアクセスがないと確認すると(ステップS6でYES)、印刷データをMFP2cのHDD25cに格納すると決定し、転送部27cは印刷データが送信されるとNIC26を介してMFP2cへ印刷データを転送する(ステップS7)。一方で、格納先決定部27bがMFP2cのHDD25cへのアクセスがすでにあるか否かを確認した際に、MFP2cのHDD25cへのアクセスがあった場合は、HDD25cへのアクセスがない他装置(MFP2b,2c)がないことになる(ステップS6でNO)。この場合は、格納先決定部27bは、印刷データを自装置(MFP2a)のHDD25cに格納すると決定する(ステップS9)。
【0055】
なお、ステップS7において、転送部27cが印刷データを他装置(MFP2b,2c)へ転送する際は、まず外部装置から自装置(MFP2a)へ印刷データが送信される。そして、送信された印刷データは、順次自装置のRAM25bで部分的に受け取られ、転送部27cは、部分的な印刷データを順次NIC26を介して他装置へ送信する。したがって、RAM25bには、印刷データが部分的に存在することはあっても、印刷データの全体が存在することはない。なお、転送部27cが印刷データを他装置へ転送する方法はこれに限らず、可能であれば、送信された印刷データを、RAM25bを介さずに他装置へ転送してもよい。
【0056】
ステップS8では、印刷処理部27dは、ステップS7で印刷データを転送した他装置から印刷データを自身に読み込んで画像データを生成する。画像データが生成されると、プリントエンジン23は、生成された画像データに基づいて画像形成を実行する。なお、印刷データを他装置へ転送した後すぐに印刷データを読み込むが、自装置(MFP2a)のHDD25cへのアクセスがなくなってから印刷データを読み込んでもよい。
【0057】
ステップS2において、格納先決定部27bが自装置(MFP2a)のHDD25cへのアクセスがないと判断した場合は(ステップS2でNO)、印刷データが自装置のHDD25cに格納され始めても、自装置のHDD25cへのアクセスは印刷データの格納によるアクセスのみであるため、自装置のHDD25cへのアクセスが混雑することはない。そこで、この場合は、格納先決定部27bは、印刷データを自装置のHDD25cに格納すると決定する(ステップS9)。
【0058】
ステップS3において、格納先決定部27bが自装置(MFP2a)のHDD25cへのアクセスがサーバー処理によるアクセスでない、すなわち、すでに別の印刷データの格納によるアクセスがあると判断した場合は(ステップS3でNO)、自装置は、印刷データが自装置のHDD25cに格納されたとしても、格納中の印刷データに関する画像形成が完了するまでは次の画像形成を実行することができない。つまり、別の印刷データに関する印刷処理の次に実行しようとしている印刷処理は、自装置のHDD25cのアクセス混雑度にかかわらず、プリントエンジン23の処理速度(画像形成速度)によって完了するタイミングが決まる。したがって、この場合は、格納先決定部27bは、印刷データを自装置のHDD25cに格納すると決定し、格納中の印刷データの格納が完了してから自装置のHDD25cに印刷データを格納する(ステップS9)。
【0059】
ステップS10では、印刷処理部27dは、自装置(MFP2a)のHDD25cから印刷データを自身に読み込んで画像データを生成する。画像データが生成されると、プリントエンジン23は、生成された画像データに基づいて画像形成を実行する。
【0060】
(特徴)
以上のように、第1実施形態では、受付部27aが印刷指示を受け付けた際に、格納先決定部27bがHDD25c(第1記憶手段に相当)へのアクセスがあるか否か、及び、何の処理によるアクセスか、等のアクセス状態に基づいて、印刷データの格納先を決定する。ここで、印刷データの格納先は、自装置(MFP2a)のHDD25c及び他装置(MFP2b,2c)のHDD25cの中から決定される。
【0061】
従来は、MFPに印刷データが送信されると、自装置のHDDのアクセス状態を考慮することなく、自装置のHDDに印刷データが格納されていた。したがって、印刷処理を実行するための印刷データの格納によるHDDへのアクセスとサーバー処理によるHDDへのアクセスとが同時に発生し、自装置のHDDへのアクセスが混雑することがあった。そして、自装置のHDDへのアクセスの混雑により、印刷処理及びサーバー処理が完了するまでに時間を要するという問題があった。
【0062】
これに対し、第1実施形態では、格納先決定部27bは、自装置(MFP2a)のHDD25cのアクセス状態に基づいて、印刷データを自装置のHDD25cに格納するか、他装置(MFP2b,2c)のHDD25cに格納するかを決定するので、自装置のHDD25cのアクセス混雑度が所定の混雑度以上になることがない。また、格納先決定27bによって印刷データを他装置のHDD25cに格納すると決定された場合は、転送部27cは印刷データを他装置へ転送し、印刷処理部27dは他装置から印刷データを読み込んで印刷処理を実行するので、印刷データを他装置のHDD25cに格納した場合であっても印刷処理を正常に実行することができる。したがって、印刷処理及び印刷処理以外の処理を迅速に完了させることができる。
【0063】
また、第1実施形態では、格納先決定部27bは、他装置が複数ある場合に、複数の他装置(MFP2b,2c)のHDD25cそれぞれのアクセス状態に基づいて、印刷データの格納先となる他装置を決定する。これにより、アクセス混雑度に余裕がない他装置のHDD25cに印刷データを格納し、他装置のHDD25cのアクセス混雑度が所定の混雑度以上になってしまうことを抑制できるので、自装置(MFP2a)のHDD25cのアクセス混雑度だけでなく、他装置のHDD25cのアクセス混雑度も所定の混雑度以上になることがない。したがって、システム全体(MFP2a,2b,2c)で印刷処理及び印刷処理以外の処理を迅速に完了させることができる。
【0064】
また、第1実施形態では、格納先決定部27bは、他装置が複数ある場合に、複数の他装置(MFP2b,2c)のHDD25cそれぞれのアクセス履歴に基づいて、印刷データの格納先となる他装置を決定する。詳細には、格納先決定部27bは、複数の他装置のHDD25cのアクセス履歴に基づいて、複数の他装置のHDD25cそれぞれのアクセス頻度を算出し、複数の他装置のHDD25cそれぞれのアクセス頻度に基づいて、印刷データの格納先となる他装置を決定する。HDD25cのアクセス頻度が低い他装置は、印刷データの格納中にHDD25cへのさらなるアクセスが発生しにくいので、印刷データの格納中に他装置のHDD25cへさらなるアクセスが発生することによって他装置のHDD25cへのアクセスが所定の状態よりも混雑する可能性を低減できる。したがって、システム全体(MFP2a,2b,2c)で印刷処理及び印刷処理以外の処理を迅速に完了させることができる。
【0065】
また、第1実施形態では、格納先決定部27bは、別の印刷処理に伴う自装置(MFP2a)のHDD25cへのアクセスがあると判断した場合、すなわち別の印刷処理に伴って印刷データの格納が実行されている場合は、印刷データを自装置(MFP2a)のHDD25cに格納すると決定する。別の印刷データの格納処理が実行されている場合は、実行しようとする印刷処理は、自装置のHDD25cのアクセス混雑度にかかわらず、プリントエンジン23の処理能力の制約によって完了するタイミングが決まるので、他装置(MFP2b,2c)のHDD25cに印刷データを格納しても印刷処理を完了するまでに要する時間が変化しない。この場合に他装置のHDD25cに印刷データを格納せずに自装置のHDD25cに印刷データを格納することで、他装置の印刷処理及び印刷処理以外へ影響を与えずに印刷処理を実行できる。したがって、他装置の印刷処理及び印刷処理以外の処理を迅速に完了させることができる。
【0066】
(変形例)
以上、第1実施形態について説明したが、具体的な構成は上記第1実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で変更可能である。以下、第1実施形態の変形例について説明する。
【0067】
(変形例1)
図5は、変形例1に係るダイレクトプリントの印刷処理制御を示すフローチャートである。以下、
図5を参照して、変形例1の制御について、第1実施形態の制御と異なる点のみ説明する。
【0068】
上記第1実施形態では、格納先決定部27bは、自装置(MFP2a)のHDD25cへのアクセスがあると判断し(
図4のステップS2でYES)、かつ、自装置のHDD25cへのアクセスがサーバー処理によるアクセスであると判断した場合に(
図4のステップS3でYES)、印刷データを他装置(MFP2b,2c)に格納すると決定すると説明した。しかし、格納先決定部27bは、自装置のHDD25cのアクセス状態として、アクセスの有無、何の処理によるアクセスかだけでなく、アクセスを要求するクライアントの数、アクセスに関するデータのサイズに基づいて、印刷データの格納先を決定してもよい。
【0069】
図5のステップS24では、格納先決定部27bは、自装置(MFP2a)のHDD25cのアクセス混雑度を算出し、算出したアクセス混雑度が所定の混雑度以上であるか否かを判断する。ここで、格納先決定部27bは、自装置のHDD25cのアクセス混雑度を算出する際、自装置のHDD25cへサーバー処理でアクセスを要求するクライアントの数と、アクセスに関するデータとを取得し、これらに基づいてアクセス混雑度を算出する。そして、格納先決定部27bは、算出したアクセス混雑度が所定の混雑度以上であると判断した場合は(ステップS24でYES)、ステップS25を実行する。一方で、格納先決定部27bは、算出したアクセス混雑度が所定の混雑度以上でないと判断した場合は(ステップS24でNO)、ステップS30を実行する。
【0070】
このように、変形例1では、格納先決定部27bは、アクセスを要求するクライアントの数、アクセスに関するデータに基づいてアクセス混雑度を算出し、算出したアクセス混雑度が所定の混雑度以上でない場合は、印刷データが自装置(MFP2a)のHDD25cに格納され始めても、自装置のHDD25cのアクセス混雑度が所定の混雑度以上になることはないと判断し、自装置のHDD25cに印刷データを格納すると決定する。これにより、自装置のHDD25cのアクセス混雑度に余裕があるにもかかわらず、他装置(MFP2b,2c)のHDD25cに印刷データを格納し、他装置のHDD25cのアクセス混雑度が所定の混雑度以上になってしまうことを抑制できる。したがって、システム全体(MFP2a,2b,2c)で効率良くアクセスを分散でき、印刷処理及び印刷処理以外の処理を迅速に完了させることができる。
【0071】
なお、格納先決定部27bは、自装置(MFP2a)のHDD25cのアクセス混雑度を算出する際、自装置のHDD25cへサーバー処理でアクセスを要求するクライアントの数と、アクセスに関するデータとに基づいてアクセス混雑度を算出すると説明したが、アクセスを要求するクライアントの数、アクセスに関するデータの一方のみに基づいてアクセス混雑度を算出してもよい。例えば、格納先決定部27bは、アクセスを要求するクライアントの数が所定のクライアントの数より少ない場合は、自装置のHDD25cに印刷データを格納すると決定する。
【0072】
また、格納先決定部27bは、アクセスに関するデータに代えてサーバー処理の種類に基づいてアクセス混雑度を算出してもよい。サーバー処理の種類とは、検索、閲覧、印刷等であり、このうち検索のためのアクセスはデータのサイズが大きく、アクセスが混雑しやすい。サーバー処理の種類に基づいてアクセス混雑度を算出することにより、アクセスに関するデータが直接取得できない場合であってもシステム全体(MFP2a,2b,2c)で効率良くアクセスを分散できる。また、アクセスに関するデータに代えてアクセスしているデータの件数に基づいてアクセス混雑度を算出してもよい。この場合もアクセスに関するデータに基づいてアクセス混雑度を算出する場合と同様に、システム全体で効率良くアクセスを分散できる。
【0073】
(変形例2)
図6は、変形例2に係るダイレクトプリントの印刷処理制御を示すフローチャートである。以下、
図6を参照して、変形例2の制御について、第1実施形態の制御と異なる点のみ説明する。
【0074】
変形例1では、格納先決定部27bは、アクセスを要求するクライアントの数、アクセスに関するデータに基づいて印刷データの格納先を決定するが、送信される印刷データのサイズを予め取得できる場合は、送信される印刷データのサイズに基づいて印刷データの格納先を決定してもよい。
【0075】
図6のステップS44では、格納先決定部27bは、送信される印刷データのサイズを取得し、取得した印刷データのサイズが所定のサイズ以上であるか否かを判断する。そして、格納先決定部27bは、印刷データのサイズが所定のサイズ以上であると判断した場合は(ステップS44でYES)、ステップS45を実行する。一方で、格納先決定部27bは、印刷データのサイズが所定のサイズ以上でない場合は(ステップS44でNO)、ステップS50を実行する。
【0076】
このように、変形例2では、格納先決定部27bは、印刷データのサイズが所定のサイズより小さい場合は、印刷データが自装置(MFP2a)のHDD25cに格納され始めても、自装置のHDD25cのアクセス混雑度が所定の混雑度以上になることはないと判断し、印刷データを自装置のHDD25cに格納すると決定する。これにより、自装置のHDD25cのアクセス混雑度に余裕があるにもかかわらず、他装置(MFP2b,2c)のHDD25cに印刷データを格納し、他装置のHDD25cのアクセス混雑度が所定の混雑度以上になってしまうことを抑制できる。したがって、システム全体(MFP2a,2b,2c)で効率良くアクセスを分散でき、印刷処理及び印刷処理以外の処理を迅速に完了させることができる。
【0077】
ここで、印刷データと比較する所定のサイズは、印刷データが自装置(MFP2a)のHDD25cに格納される場合に、自装置のHDD25cのアクセス混雑度が所定の混雑度になるデータのサイズを考慮して設定される。しかし、所定のサイズは、印刷データが自装置のHDD25cに格納される場合の印刷データの格納に必要な時間と、印刷データが他装置(MFP2b,2c)のHDD25cに格納される場合の印刷データの転送に必要な時間とに基づいて、これらの時間が等しくなるデータのサイズを考慮して設定されてもよい。この場合は、格納先決定部27bは、印刷データの格納先として自装置のHDD25cと他装置のHDD25cとを比較し、より必要な時間が短くなるように印刷データの格納先を決定するので、自装置における印刷処理を迅速に完了させることができる。
【0078】
なお、変形例2を変形例1と組み合わせて、アクセスを要求するクライアントの数、アクセスに関するデータ、印刷データのサイズの全部又は一部に基づいて、自装置(MFP2a)に印刷データを格納する場合のアクセス混雑度を算出し、算出したアクセス混雑度が所定の混雑度以上であるか否かを判断することにより、印刷データの格納先を決定してもよい。
【0079】
(変形例3)
上記第1実施形態では、格納先決定部27bは、印刷データの格納先となる他装置(MFP2b,2c)を決定する際に、他装置のHDD25cそれぞれのアクセス履歴を他装置から取得し(
図4のステップS4)、取得したアクセス履歴に基づいてアクセス頻度が低い順にアクセス状態を確認し(
図4のステップS5)、HDD25cへのアクセスがない他装置があれば(
図4ステップS6でYES)、その他装置に印刷データを格納すると決定すると説明した。しかし、格納先決定部27bが印刷データの格納先となる他装置を決定する形態はこれに限らず、格納先決定部27bは、まず他装置のHDD25cそれぞれへのアクセスの有無を確認し、そして、HDD25cへのアクセスがない他装置についてアクセス履歴を取得し、取得したアクセス履歴に基づいてアクセス頻度が最も低い他装置に印刷データを格納すると決定してもよい。
【0080】
(変形例4)
上記第1実施形態では、格納先決定部27bは、受付部27aが印刷指示を受け付けてから、他装置(MFP2b,2c)のHDD25cそれぞれのアクセス履歴を他装置それぞれから取得するが、印刷指示を受け付ける前に他装置それぞれからアクセス履歴を予め取得しておいてもよい。さらに、格納先決定部27bは、取得したアクセス履歴に基づいて、複数の他装置の中で印刷データの格納先としての優先順位を予め決定しておいてもよい。この場合は、格納先決定部27bは、自装置のHDD25cのアクセス状態に基づいて、他装置のHDD25aに印刷データを格納すると判断した場合に、予め決定した優先順位に基づいて優先順位が高い順に他装置のHDD25cへのアクセスの有無を確認する。そして、他装置のHDD25cへのアクセスがない他装置があれば、その他装置に印刷データを格納すると決定する。
【0081】
変形例4では、格納先決定部27bは、印刷データの格納先を決定するにあたり、予め処理を進めておくので、印刷指示を受け付けた際の処理を効率良く実行できる。これにより、自装置(MFP2a)の印刷処理を迅速に完了させることができる。
【0082】
なお、アクセス履歴を他装置それぞれから予め取得しておくタイミングとして、自装置(MFP2a)の待機中に取得すると、自装置の印刷処理及び印刷処理以外の処理へ影響を与えないので、より好ましい。
【0083】
(変形例5)
上記第1実施形態に係るMFP2は、サーバー機能を有しているが、印刷処理及び印刷処理以外の処理を実行可能であればよく、サーバー機能を有していなくてもよい。印刷処理以外の処理の例としては、サーバー処理のほか、アプリ処理がある。アプリ処理の一例として、FAXの送信先やスキャナー22で生成した印刷データをメール送信する際の送信先を住所録として管理するアプリ処理がある。また、MFP2は、印刷処理以外の処理を実行可能であれば、コピー機能、スキャン機能、FAX機能等の機能を有することは必須ではない。
【0084】
MFP2がサーバー機能を有していない場合は、
図4のステップS3において、MFP2aのHDD25cへのアクセスが印刷処理以外の処理(例えばアプリ処理)によるアクセスであるか否かを判断する。
【0085】
変形例5では、印刷処理以外の処理として、サーバー処理以外のアプリ処理等についても、印刷処理とともに迅速に完了させることができる。
【0086】
(変形例6)
上記第1実施形態では、ダイレクトプリントの印刷処理制御について説明したが、送信された印刷データがHDD25c等の記憶手段に格納される形態であれば、ダイレクトプリントに限らず上記第1実施形態で説明した技術的思想を適用してもよい。
【0087】
例えば、送信された印刷データが記憶手段に格納される形態として、ダイレクトプリント以外にコレート機能がある。コレート機能とは、複数部数の印刷処理を実行する場合に、部単位でページの順番をそろえて印刷処理を実行する機能である。コレート機能では、1部目の印刷処理が完了すると、印刷処理部27dは、2部目の印刷処理のために印刷データを再び先頭から読み込む必要があるので、印刷データが記憶手段に格納されている必要がある。
【0088】
(第2実施形態)
以下、第2実施形態について説明する。なお、第1実施形態及び第2実施形態において、ROM25aは、具体的にはSSDであるため、第2実施形態の説明ではSSD25aと表記する。
【0089】
(構成)
第2実施形態では、格納先決定部27bは、自装置(MFP2a)のHDD25c及び他装置(MFP2b,2c)のHDD25c、さらに自装置のSSD25aの中から印刷データの格納先を決定する。
【0090】
第2実施形態のそのほかの構成は、第1実施形態の構成と同様であるため説明を省略し、同じ番号を付す。
【0091】
(制御)
図7は、第2実施形態に係るダイレクトプリントの印刷処理制御を示すフローチャートである。以下、
図7を参照して、第2実施形態の制御について説明する。なお、ステップS61は
図4のステップS1と同様であり、ステップS65〜S74は
図4のステップS2〜10と同様であるため説明を省略する。
【0092】
ステップS62において、格納先決定部27bは、印刷データのサイズが取得可能であるか否かを判断する。格納先決定部27bは、印刷データのサイズが取得可能であると判断した場合は(ステップS62でYES)、印刷データのサイズを取得し、印刷データのサイズが自装置(MFP2a)のSSD25aの空き領域より小さいか否かを判断する(ステップS63)。格納先決定部27bは、印刷データのサイズが自装置のSSD25aの空き領域より小さいと判断した場合は(ステップS63でYES)、自装置のSSD25aに印刷データを格納すると決定する(ステップS64)。
【0093】
ステップS65では、印刷処理部27dは、自装置(MFP2a)のSSD25aから印刷データを自身に読み込んで画像データを生成する。画像データが生成されると、プリントエンジン23は、生成された画像データに基づいて画像形成を実行する。
【0094】
格納先決定部27bは、印刷データのサイズが取得可能でないと判断した場合(ステップS62でNO)、又は、印刷データのサイズが自装置のSSD25aの空き領域以上であると判断した場合は(ステップS63でNO)、ステップS66を実行する。
【0095】
(特徴)
第2実施形態では、SSD25a(第2記憶手段に相当)の空き領域がHDD25cと同様に利用できることに注目し、SSD25aの空き領域が印刷データのサイズに対して十分であり、印刷データの格納先として利用可能であると判断した場合は、格納先決定部27bは、自装置(MFP2a)のSSD25aに印刷データを格納すると決定する。この場合は、自装置のHDD25c及び他装置(MFP2b,2c)のHDD25cに印刷データを格納しないので、自装置の印刷処理以外の処理や、他装置の印刷処理及び印刷処理以外の処理へ影響を与えずに印刷処理を実行できる。したがって、システム全体(MFP2a,2b,2c)で印刷処理及び印刷処理以外の処理を迅速に完了させることができる。
【0096】
(変形例)
第2実施形態では、印刷データの格納先として、自装置(MFP2a)のSSD25aを自装置のHDD25cより優先して利用すると説明したが、HDD25cの利用を優先して、格納先決定部27bは、自装置のHDD25cのアクセス状態に基づいて、自装置のHDD25aに印刷データを格納しないと判断した場合にのみ、自装置のSSD25aに印刷データを格納すると決定してもよい。これにより、SSD25aの耐久性を向上させることができる。
【0097】
なお、第2実施形態に第1実施形態の変形例で説明した技術的思想を組み合わせることも可能である。