(57)【要約】【課題】  受信したジョブをバッファからキューに転送し終える前に、バッファがフル状態に遷移することを確実に検出する。【解決手段】    所定の機能処理を実行する処理手段と、外部装置から処理すべきジョブを受信する受信手段と、受信されたジョブを受信バッファを介して前記処理手段に送信する通信手段と、前記受信バッファのバッファサイズと、受信するジョブのサイズとを比較して、前記受信バッファのバッファサイズを超えるように前記ジョブのサイズを調整して前記通信手段に出力する調整手段と、を備えることを特徴とする。【選択図】  図６
2016092616.tif 000002
【特許請求の範囲】
【請求項１】
所定の機能処理を実行する処理手段と、
外部装置から処理すべきジョブを受信する受信手段と、
前記受信手段によって受信されたジョブを受信バッファを介して前記処理手段に送信する通信手段と、
前記受信バッファのバッファサイズと、取得するジョブのサイズとを比較して、前記受信バッファのバッファサイズを超えるように前記ジョブのサイズを調整して前記通信手段に出力する調整手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記調整手段は、前記ジョブのヘッダ部にダミーデータを付加して前記受信バッファのバッファサイズを超えるように前記ジョブのサイズを調整することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記処理手段が実行する所定の機能処理は、前記ジョブから生成される送信データを送信するファクシミリ機能処理、前記ジョブから生成される印刷データを印刷手段に出力する印刷機能処理を含むことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記通信手段から送信される複数のジョブをキューに記憶して管理する管理手段を備えることを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記受信手段によって受信されたジョブを特定する識別情報を付加する付加手段と、
前記管理手段から受信するジョブの一覧に前記特定の識別情報が付加されたジョブがあるかどうかを判断する判断手段と、
を備えることを特徴とする請求項４記載の情報処理装置。
【請求項６】
情報処理装置の制御方法であって、
処理手段を用いて所定の機能処理を実行する処理工程と、
外部装置から処理すべきジョブを受信する受信工程と、
受信されたジョブを受信バッファを介して前記処理手段に送信する通信工程と、
前記受信バッファのバッファサイズと、取得するジョブのサイズとを比較して、前記受信バッファのバッファサイズを超えるように前記ジョブのサイズを調整して出力する調整工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項７】
請求項６に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
従来、ＰＣなどの端末から画像データをネットワーク経由で情報処理装置、例えば画像処理装置へ送信して画像処理装置に印刷を実行させる機能や、ファクス送信させる機能が知られている。この場合において、ＰＣ上のアプリケーションソフトウェアから画像処理装置に対して印刷要求したりファクス送信要求したりする場合がある。また、画像処理装置上のアプリケーションソフトウェアから印刷要求したりファクス送信要求したりする場合もある。
【０００３】
この機能において、画像処理装置では１回の印刷やファクス送信をジョブ（印刷ジョブもしくはファクス送信ジョブ）として管理するが、メモリ等のリソースや処理負荷を鑑みてジョブの受け付けを制限することがある。ある画像処理装置では単純に受け付け可能なジョブ数を制限値として持つこともあれば、他の画像処理装置ではリソースや処理負荷状況に応じて制限する・しないを判断することもある。
【０００４】
ジョブの受け付けを制限している場合、画像処理装置は画像データを含む印刷要求やファクス送信要求がネットワーク経由で送信されてくると、送信元に受け付けエラーを返信する。画像データを送信した送信元は、受け付けエラーを受信することにより印刷やファクス送信ができないことを検知することになる。
【０００５】
また、画像処理装置は、ネットワーク経由でデータを送受信する場合、スループットの向上のためにバッファを用意する。従来の画像処理装置には、印刷ジョブをネットワーク経由で受け取る際にバッファ内に既にある印刷ジョブデータを制御して、効率的に印刷を実行する処理を施したものがある（特許文献１参照）。
特許文献１では、ネットワーク経由で受け取る印刷ジョブデータがバッファの空き容量に収まらない場合、既に記憶している印刷ジョブデータの中で印刷指定時刻が遅い印刷ジョブデータを削除して、優先度の高い印刷ジョブを実行する処理が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−８３４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＰＣ上や画像処理装置上のアプリケーションソフトウェア側がネットワーク経由で画像処理装置に送信した印刷要求やファクス送信要求が受け付けられたと認識したにも関わらず、画像処理装置側がジョブ自体を生成せずデータ自体が消失してしまう場合がある。
【０００８】
ＰＣ上や画像処理装置上のアプリケーションソフトウェアがネットワーク経由で印刷要求やファクス送信要求を画像処理装置に送信する場合、ＴＣＰ／ＩＰ層で通信コネクションを確立し通信を行う。このとき、画像処理装置側では前記通信コネクション用のバッファを用意し、画像データを含む印刷要求やファクス送信要求を一時的に受信した順にバッファに格納し、受信した順に読み出していく。
また、画像処理装置は、印刷要求もしくはファクス送信要求のデータ全て（終端まで）をバッファに格納できた時点で通信を終了し、前記通信コネクションを切断、シャットダウンする。その後、画像処理装置は、受信した印刷要求もしくはファクス送信要求をジョブとして受け付け、処理を実行していく。
【０００９】
このとき、印刷要求もしくはファクス送信要求を送信したＰＣ上や画像処理装置上のアプリケーションソフトウェアは、前記通信コネクションがシャットダウンされた時点で送信した要求が受け付けられたと認識する。
【００１０】
したがって、画像処理装置が前記通信コネクションをシャットダウンし、受信した印刷要求もしくはファクス送信要求をジョブとして受け付けるまでの間に、画像処理装置の電源断等でバッファ中の印刷要求もしくはファクス送信要求が削除される場合がある。
【００１１】
つまり、ＰＣ上や画像処理装置上のアプリケーションソフトウェアが印刷要求もしくはファクス送信要求を受け付けられたと認識したにも関わらず、場合によって画像処理装置で受信した印刷要求もしくはファクス送信要求が削除されてしまう課題がある。
【００１２】
この課題は、画像処理装置でジョブの受け付けを制限している場合に、バッファサイズよりも小さなデータサイズの要求を画像処理装置が受信するようなケースで発生しやすい。
例えば、既に受け付けたジョブの処理に時間がかかる、処理負荷が高い、といった状況で、ファクス送信要求などバッファサイズよりも小さなデータサイズになりうる要求を画像処理装置が受信するような場合に想定される課題である。
【００１３】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、受信したジョブをバッファからキューに転送し終える前に、バッファがフル状態に遷移することを確実に検出できる仕組みを提供することである。
【課題を解決するための手段】
【００１４】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
所定の機能処理を実行する処理手段と、外部装置から処理すべきジョブを受信する受信手段と、受信されたジョブを受信バッファを介して前記処理手段に送信する通信手段と、前記受信バッファのバッファサイズと、受信するジョブのサイズとを比較して、前記受信バッファのバッファサイズを超えるように前記ジョブのサイズを調整して前記通信手段に出力する調整手段と、を備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、受信したジョブをバッファからキューに転送し終える前に、バッファがフル状態に遷移することを確実に検出できる。
【図面の簡単な説明】
【００１６】
【図１】画像処理システムを示す図である。
【図２】図１に示したＭＦＰのハードウェア構成図である。
【図３】ファイルサーバおよびＰＣのハードウェア構成図である。
【図４】ＭＦＰのソフトウェア構成図である。
【図５】図１に示したＰＣ上のソフトウェア構成を示す図である。
【図６】情報処理装置の制御方法を説明するフローチャートである。
【図７】情報処理装置の制御方法を説明するフローチャートである。
【図８】ファクス送信ジョブを実行するまでのデータの流れを示す図である。
【図９】ＭＦＰが管理するバッファサイズテーブルを示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施の形態を詳しく説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
＜システム構成の説明＞
〔第１実施形態〕
【００１８】
まず、本発明の第１の実施形態について説明する。
図１は、本実施形態を示す情報処理装置を適用可能な画像処理システムを示す図である。本実施形態では、所定の機能処理、例えば送信データを送信するファクシミリ機能処理、印刷データを印刷する印刷機能処理を実行する情報処理装置を例とする。ここで、情報処理装置には、上記所定の機能処理を実行する複合機（ＭＦＰ）が含まれる。
図１において、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１００上には、ＭＦＰ（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１０１及びファイルサーバ１０２、ＰＣ１０３が互いに通信可能に接続されている。ＭＦＰ１０１は、画像処理装置の一例である。
ファイルサーバ１０２は、外部サーバの一例である。ＰＣ１０３は画像処理装置に処理依頼する端末の一例である。ここではＭＦＰ１０１及びファイルサーバ１０２、ＰＣ１０３を含む全体を画像処理システムとするが、ＭＦＰ１０１のみを画像処理システムと称することもできる。
【００１９】
ＭＦＰ１０１は、ＰＳＴＮ（Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋｓ）１０４に接続され、図示しないファクシミリ装置との間で画像データをファクシミリ通信することができる。
【００２０】
図２は、図１に示したＭＦＰ１０１のハードウェア構成図である。
図２において、ＣＰＵ２１１を含む制御部２１０は、ＭＦＰ１０１全体の動作を制御する。ＣＰＵ２１１は、ＲＯＭ２１２に記憶された制御プログラムを読み出して、読取／印刷／通信などの各種制御を行う。ＲＡＭ２１３は、ＣＰＵ２１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。なお、ＭＦＰ１０１は１つのＣＰＵ２１１が１つのメモリ（ＲＡＭ２１３またはＨＤＤ２１４）を用いて後述するフローチャートに示す各処理を実行するものとするが、他の態様であっても構わない。例えば、複数のＣＰＵや複数のＲＡＭまたはＨＤＤを協働させてフローチャートに示す各処理を実行するようにすることもできる。
【００２１】
ＨＤＤ２１４は、画像データや各種プログラムを記憶する。操作部Ｉ／Ｆ２１５は、操作部２２０と制御部２１０を接続する。操作部２２０には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられており、ユーザによる操作／入力／指示を受け付ける受付部としての役割を担う。
【００２２】
プリンタＩ／Ｆ２１６は、プリンタ２２１と制御部２１０を接続する。プリンタ２２１で印刷すべき画像データはプリンタＩ／Ｆ２１６を介して制御部２１０から転送され、プリンタ２２１により記録媒体上に印刷される。
【００２３】
スキャナＩ／Ｆ２１７は、スキャナ２２２と制御部２１０を接続する。スキャナ２２２は、原稿上の画像を読み取って画像データを生成し、スキャナＩ／Ｆ２１７を介して制御部２１０に入力する。ＭＦＰ１０１は、スキャナ２２２で生成された画像データをファイル送信またはメール送信することができる。
【００２４】
モデムＩ／Ｆ２１８は、モデム２２３と制御部２１０を接続する。モデム２２３は、図示しないファクシミリ装置との間における画像データのファクシミリ通信を実行する。ネットワークＩ／Ｆ２１９は、制御部２１０（ＭＦＰ１０１）をＬＡＮ１００に接続する。ＭＦＰ１０１は、ネットワークＩ／Ｆ２１９を用いてＬＡＮ１００上の外部装置（ファイルサーバ１０２など）に画像データや情報を送信したり、各種情報を受信したりする。
【００２５】
図３は、図１に示したファイルサーバ１０２およびＰＣ１０３のハードウェア構成図である。
図３において、ＣＰＵ３１１を含む制御部３１０は、ファイルサーバ１０２全体の動作を制御する。ＣＰＵ３１１は、ＲＯＭ３１２に記憶された制御プログラムを読み出して各種制御処理を実行する。ＲＡＭ３１３は、ＣＰＵ３１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ３１４は、画像データや各種プログラムを記憶する。
【００２６】
ネットワークＩ／Ｆ３１５は、制御部３１０（ファイルサーバ１０２）をＬＡＮ１００に接続する。ファイルサーバ１０２は、ネットワークＩ／Ｆ３１５を用いてＬＡＮ１００上の他の装置との間で各種情報を送受信する。
【００２７】
図４は、図１に示したＭＦＰ１０１のソフトウェア構成図である。
図４において、ＭＦＰ１０１は、ネイティブ機能部４１０と追加アプリケーション４２０、ネットワーク通信部４３０の大きく３つに分けられる。ネイティブ機能部４１０に含まれる各部はＭＦＰ１０１に標準的に備えられたものであるのに対し、追加アプリケーション４２０はＭＦＰ１０１に追加インストールされたアプリケーションである。追加アプリケーション４２０はＪａｖａ（登録商標）をベースとしたアプリケーションであり、ＭＦＰ１０１への機能追加を容易に実現できる。なお、ＭＦＰ１０１には図示しない他の追加アプリケーションがインストールされていても良い。
ネットワーク通信部４３０は、ＴＣＰ／ＩＰ層でのネットワーク通信およびＴＣＰ／ＩＰ層で送受信したデータをネイティブ機能部４１０、追加アプリケーション４２０とやり取りする。
【００２８】
データ通信部４３１は、ＰＣ１０２もしくは追加アプリケーション４２０からの接続要求によりネイティブ機能部４１０もしくは追加アプリケーション４２０とのＴＣＰ／ＩＰ層でのネットワーク通信用コネクションを確立する。
また、データ通信部４３１は、ネイティブ機能部４１０もしくは追加アプリケーション４２０からの接続要求によりＰＣ１０２やファイルサーバ１０３とのＴＣＰ／ＩＰ層でのネットワーク通信用コネクションを確立する。つまり、ネイティブ機能部４１０および追加アプリケーション４２０とＰＣ１０２、ファイルサーバ１０３など外部とのネットワーク通信用コネクションを確立する。
ここで、データ通信部４３１はネットワーク通信用コネクション毎にネイティブ機能部４１０および追加アプリケーション４２０へデータ受け渡し時のスループットの向上のために揮発性のバッファを用意する。データ通信部４３１は受信したデータを一時的にバッファに溜めてネイティブ機能部４１０および追加アプリケーション４２０に受け渡す。
このとき、データ通信部４３１は受信バッファ内のデータをバッファに溜まったデータ順にネイティブ機能部４１０および追加アプリケーション４２０に受け渡す。また、データ通信部４３１が外部から受信したデータを全てバッファに取り込んだ時点で、外部とのネットワーク通信用コネクションを切断する。
【００２９】
以上のようにして、データ通信部４３１は、外部から追加アプリケーション４２０へのデータ通信の場合は追加アプリケーション４２０にデータを受け渡す。また、データ通信部４３１は、外部から印刷要求、ファクス送信要求などのデータを受け取った場合にはネイティブ機能部４１０にデータを受け渡す。
【００３０】
ジョブ管理部４１１は、後述するデータ通信部４３１からのファクス送信要求もしくは印刷要求を受けて、それぞれのジョブを生成し管理する。最初にファクス送信要求を受けた場合のジョブ管理部４１１の動作について説明する。ファクス送信要求を受けた場合、ジョブ管理部４１１は要求に従いファクス送信ジョブを生成し、ファクス送信ジョブ管理キューに登録する。ファクス送信ジョブ管理キューに登録できた場合、ジョブ管理部４１１はデータ通信部４３１に対してファクス送信要求応答に成功した旨を含め返信する。
【００３１】
ファクス送信ジョブ管理キューに登録されているファクス送信ジョブ数が最大ファクス送信ジョブ数に達している場合、ジョブ管理部４１１はデータ通信部４３１に対してファクス送信要求応答に登録失敗した旨を含め返信する。ジョブ管理部４１１はファクス送信ジョブ管理キューに登録された順にファクス送信ジョブ実行要求をファクス送信部４１２に送信する。ファクス送信ジョブ実行要求は、データ通信部４３１で受信したファクス送信ジョブを含む。
【００３２】
ファクス送信部４１２は、ジョブ管理部４１１からのファクス送信ジョブ実行要求を受けて、ファクス送信ジョブを実行する。ファクス送信ジョブを実行する際、ファクス送信部４１２は、ファクス送信ジョブのヘッダ部分に記載されている送信先や使用回線などの情報を読み取る。次にファクス送信部４１２は、モデムＩ／Ｆ２１８を介して指定された使用回線を使ってファクス送信ジョブに含まれる画像データを指定された送信先のファクシミリ装置にＰＳＴＮ１０４経由で送信する。
【００３３】
図８は、前述したデータ通信部４３１がファクス送信ジョブを受信してファクス送信部４１２がファクス送信ジョブを実行するまでのデータの流れを模式的に図４に追加したものである。従来技術における課題は、ファクス送信ジョブ管理キューにジョブが一杯の状態で新規ジョブが受け付けられない状態で、かつ、ファクス送信ジョブ自体はバッファに一時的に格納されファクス送信ジョブの送信元との通信が終了している状態で発生する。この状態のときに、画像処理装置の電源断等でバッファに格納されたファクス送信ジョブが消失されてしまう、というのが従来技術における課題である。
【００３４】
次に印刷要求を受けた場合のジョブ管理部４１１の動作について説明する。印刷要求を受けた場合、ジョブ管理部４１１は要求に従い印刷ジョブを生成し、印刷ジョブ管理キューに登録する。印刷ジョブ管理キューに登録できた場合、ジョブ管理部４１１はデータ通信部４３１に対して印刷要求応答に成功した旨を含め返信する。
【００３５】
印刷ジョブ管理キューに登録されている印刷ジョブ数が最大印刷ジョブ数に達している場合、ジョブ管理部４１１はデータ通信部４３１に対して印刷要求応答に登録失敗した旨を含め返信する。ジョブ管理部４１１は印刷ジョブ管理キューに登録された順に印刷ジョブ実行要求を印刷部４１３に送信する。印刷ジョブ実行要求には、データ通信部４３１で受信した印刷ジョブが含む。
【００３６】
印刷部４１３は、ジョブ管理部４１１からの印刷ジョブ実行要求を受けて、印刷ジョブを実行する。印刷ジョブを実行する際、印刷部４１３は、印刷ジョブのヘッダ部分に記載されている印刷設定情報を読み取る。次に印刷部４１３は、印刷設定情報にしたがって印刷ジョブに含まれる画像データをプリンタＩ／Ｆ４１６を介してプリンタ２２１に印刷出力する。
【００３７】
なお、ここではジョブ管理部４１１がジョブ管理キューに登録できないことを判定する際の判定基準としてジョブ数を用いたが、判定基準としてはメモリ等のリソースや処理負荷状況を用いても構わない。
【００３８】
追加アプリケーション４２０は、外部のファイルサーバ１０３に格納されるファクス送信ジョブを取得し、ネイティブ機能部４１０にファクス送信要求として取得したファクス送信ジョブを送信するアプリケーションである。追加アプリケーション４２０は、ＭＦＰ１０１への機能追加を実現するアプリケーションの一例であって、取得するジョブが印刷ジョブで、かつ、ネイティブ機能部４１０に印刷要求として取得した印刷ジョブを送信するアプリケーションでも構わない。
【００３９】
ファクス送信ジョブ検知部４２１は、予め指定されたファイルサーバ１０３の共有フォルダを監視し、ファクス送信ジョブデータを含むファイルが格納された否かを検知する。ファクス送信ジョブ検知部４２１は前記ファイルが格納されたことを検知すると、ファクス送信ジョブ取得部４２２にファクス送信ジョブ取得要求を送信する。
【００４０】
ファクス送信ジョブ取得部４２２は、ファクス送信ジョブ検知部４２１からのファクス送信ジョブ取得要求にしたがって、ファイルサーバ１０３にアクセスし前記ファクス送信ジョブデータを含むファイルを取得する。ファクス送信ジョブ取得部４２２は取得したファクス送信ジョブをファクス送信ジョブ送信部４２３へ送信する。
【００４１】
ファクス送信ジョブ送信部４２３は、ファクス送信ジョブ取得部４２２から受信したファクス送信ジョブのデータサイズを取得し、ファクス送信ジョブデータ制御部４２４にファクス送信ジョブにダミーデータを付与するか否かを問い合わせる。ファクス送信ジョブ送信部４２３は後述のファクス送信ジョブデータ制御部４２４からの問い合わせ結果値のサイズのダミーデータをファクス送信ジョブのヘッダ部に付与する。
ファクス送信ジョブの画像データではなくヘッダ部にダミーデータを付与することで、ＭＦＰ１０１のファクス送信部４１２がファクス送信ジョブを実行する際にダミーデータは無視され、画像データにも影響なく送信先にファクス送信することができる。
【００４２】
ファクス送信ジョブデータ制御部４２４は、ファクス送信ジョブ送信部４２３からの問い合わせによって、ファクス送信ジョブのデータサイズが送信先のＭＦＰ１０１のデータ通信部４３１のバッファサイズより小さいか否かを判定する。ファクス送信ジョブのデータサイズが送信先のＭＦＰ１０１のデータ通信部４３１のバッファサイズ以下の場合、ファクス送信ジョブデータ制御部４２４はデータ通信部４３１のバッファサイズとファクス送信ジョブのデータサイズの差を計算する。
ファクス送信ジョブデータ制御部４２４は、前記の計算値をファクス送信ジョブ送信部４２３に問い合わせ結果として返信する。ファクス送信ジョブのデータサイズが送信先のＭＦＰ１０１のデータ通信部４３１のバッファサイズより大きい場合、ファクス送信ジョブデータ制御部４２４はファクス送信ジョブ送信部４２３に問い合わせ結果として値０を返信する。
【００４３】
図５は、図１に示したＰＣ１０３上のアプリケーション５１０がドライバ５２０経由でファクス送信ジョブや印刷ジョブをＭＦＰ１０１へ送信する際のソフトウェア構成図である。なお、実際には、ドライバから出力されたジョブデータは一旦ＯＳ上のスプーラに蓄積されるが、本実施形態では説明を省略する。
【００４４】
アプリケーション５１０は、文書作成や図作成を行うためのアプリケーションソフトウェアである。アプリケーション５１０は図示されないユーザーインターフェースからのユーザー操作により、ファクス送信、印刷などが指示される。本実施形態ではアプリケーション５１０にファクス送信指示された場合を説明する。
【００４５】
画像生成部５１１は、前記ユーザー操作によるファクス送信指示をトリガにして、ファクス送信する画像データを生成し、ジョブ設定部５１２に送信する。ジョブ設定部５１２は、前記画像データと図示されないユーザーインターフェースからユーザー入力されたファクス送信番号などの情報をドライバ５２０のジョブ生成部５２１に送信する。ジョブ生成部５２１は、ジョブ設定部５１２から受信した情報にもとづいてファクス送信ジョブを生成し、ジョブ送信部５２２へ送信する。
【００４６】
ジョブ送信部５２２は、ジョブ生成部５２１から受信したファクス送信ジョブのデータサイズを取得し、ジョブデータ制御部５２３にファクス送信ジョブにダミーデータを付与するか否かを問い合わせる。ジョブ送信部５２２は後述のジョブデータ制御部５２３からの問い合わせ結果値のサイズのダミーデータをファクス送信ジョブのヘッダ部に付与する。ファクス送信ジョブの画像データではなくヘッダ部にダミーデータを付与することで、ＭＦＰ１０１のファクス送信部４１２がファクス送信ジョブを実行する際にダミーデータは無視され、画像データにも影響なく送信先にファクス送信することができる。
【００４７】
ジョブデータ制御部５２３は、ジョブ送信部５２２からの問い合わせによって、ファクス送信ジョブのデータサイズが送信先のＭＦＰ１０１のデータ通信部４３１のバッファサイズより小さいか否かを判定する。ファクス送信ジョブのデータサイズが送信先のＭＦＰ１０１のデータ通信部４３１のバッファサイズより小さい場合、ジョブデータ制御部５２３はデータ通信部４３１のバッファサイズとファクス送信ジョブのデータサイズの差を計算する。ジョブデータ制御部５２３は、前記の計算値をジョブ送信部５２２に問い合わせ結果として返信する。ファクス送信ジョブのデータサイズが送信先のＭＦＰ１０１のデータ通信部４３１のバッファサイズより大きい場合、ジョブデータ制御部５２３はジョブ送信部５２２に問い合わせ結果として値０を返信する。
【００４８】
図６は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、追加アプリケーション４２０がファイルサーバ１０３に格納されたファクス送信ジョブデータを取得してネイティブ機能部４１０経由でファクス送信するための動作例である。なお、各動作（ステップ）は、ＭＦＰ１０１のＣＰＵ２１１がＨＤＤ２１４に記憶された制御プログラムを実行することにより実現される。以下の説明では、ＣＰＵ２１１が実行する図４に示したモジュールを主体として説明する。
【００４９】
Ｓ６０１において、ファクス送信ジョブ検知部４２１は、予め指定されたファイルサーバ１０３の共有フォルダを監視し、ファクス送信ジョブデータを含むファイルが新規ファイルとして作成された否かを検知する。ここで、検知方法としては、ＯＳ機能として提供されるイベントを監視してもよい。また、独自に予め監視対象のファルダに格納されているファイルリストを取得しておき、以降定期的に取得したファイルリストと比較することで新たにファイルが作成されたことを検知してもよい。
ファクス送信ジョブ検知部４２１は前記のように新規ファイルが監視対象のフォルダに作成されたことを検知すると、当該ファイルを読み出し、ファクス送信ジョブデータフォーマットで記載されているか否かを確認する。ファクス送信ジョブ検知部４２１は当該ファイルがファクス送信ジョブデータフォーマットで記載されていた場合、ファクス送信ジョブデータを含むファイルが新規ファイルとして作成されたと判断する。次に、ファクス送信ジョブ検知部４２１は、ファクス送信ジョブ取得部４２２に当該ファイルのファイルパスを含むファクス送信ジョブ取得要求を送信する。
【００５０】
Ｓ６０２において、ファクス送信ジョブ取得部４２２は、ファクス送信ジョブ検知部４２１からのファクス送信ジョブ取得要求に含まれるファイルパスに格納されるファイルをファイルサーバ１０３にアクセスし取得する。次にファクス送信ジョブ取得部４２２は、取得したファクス送信ジョブをファクス送信ジョブ送信部４２３へ送信する。
【００５１】
Ｓ６０３において、ファクス送信ジョブ送信部４２３はファクス送信ジョブ取得部４２２から受信したファクス送信ジョブのデータサイズを取得する。次にファクス送信ジョブ送信部４２３は、ファクス送信ジョブデータ制御部４２４に前記取得したデータサイズを含めファクス送信ジョブデータ調整値算出要求を送信する。
【００５２】
Ｓ６０４において、ファクス送信ジョブデータ制御部４２４はＭＦＰ１０１のデータ通信部４３１のバッファサイズを取得する。本実施形態では、ファクス送信ジョブデータ制御部４２４は、ＭＦＰ１０１のデータ通信部４３１のバッファサイズとして固定値を保持することを想定して説明する。しかしながら、ＭＦＰ１０１は機種や仕様によってデータ通信部４３１のバッファサイズが異なる場合も想定される。したがって、ファクス送信ジョブデータ制御部４２４が図９に示すようなデバイスバッファサイズテーブルを持ち、送信先のＭＦＰ１０１の機種に合わせてバッファサイズを取得できるようにしてもよい。
【００５３】
Ｓ６０５において、ファクス送信ジョブデータ制御部４２４はファクス送信ジョブデータ調整値算出要求に含まれるデータサイズと前記Ｓ６０４で取得したバッファサイズを比較する。ファクス送信ジョブのデータサイズが送信先のＭＦＰ１０１のデータ通信部４３１のバッファサイズ以下の場合、ファクス送信ジョブデータ制御部４２４はデータ通信部４３１のバッファサイズとファクス送信ジョブのデータサイズの差を計算する。
ファクス送信ジョブデータ制御部４２４は、前記の計算値をファクス送信ジョブ送信部４２３にファクス送信ジョブデータ調整値として返信する。次にＳ６０６に進む。
【００５４】
ファクス送信ジョブのデータサイズが送信先のＭＦＰ１０１のデータ通信部４３１のバッファサイズより大きい場合、ファクス送信ジョブデータ制御部４２４はファクス送信ジョブ送信部４２３にファクス送信ジョブデータ調整値０を返信する。次にＳ６０７に進む。
【００５５】
Ｓ６０６において、ファクス送信ジョブ送信部４２３は前記ファクス送信ジョブデータ調整値よりデータサイズが大きいサイズのダミーデータをファクス送信ジョブのヘッダに付加して追加する。ファクス送信ジョブの画像データではなくヘッダ部にダミーデータを付与することで、ＭＦＰ１０１のファクス送信部４１２がファクス送信ジョブを実行する際にダミーデータは無視され、画像データにも影響なく送信先にファクス送信することができる。
【００５６】
Ｓ６０７において、ファクス送信ジョブ送信部４２３はファクス送信ジョブ投入用のポートにアクセスし、ＭＦＰ１０１のデータ通信部４３１を介してジョブ管理部４１１と通信コネクションを確立する。次にファクス送信ジョブ送信部４２３は確立した通信コネクション経由でファクス送信ジョブデータを送信する。
なお、Ｓ６０６とＳ６０７との間に、受信バッファに記憶したジョブを所定時間内にキューへ送信し終えているかどうかを判断する処理を実行することで、受信エラーをジョブの送信先へ通知することが可能となる。
【００５７】
以上説明した通り、本実施形態では、ＭＦＰ１０１のデータ通信部４３１のバッファサイズ以上のファクス送信ジョブを送信することができる。このことによって、ジョブ管理部４１１がファクス送信ジョブ管理キューにジョブを登録する前に、１つのファクス送信ジョブデータ全てがバッファに溜められてしまうことを回避できる。つまり、ジョブ管理部４１１がファクス送信ジョブ管理キューにジョブを登録する前に、データ通信部４３１と追加アプリケーション４２０との通信が終了してしまう状態を回避できる。したがって、追加アプリケーション４２０がファクス送信ジョブをジョブ管理部４１１に投入したと認識したにもかかわらずジョブ管理部４１１ではファクス送信ジョブが未投入の状態を回避できる。
また、情報処理装置で受信した印刷要求もしくはファクス送信要求がジョブとして管理されるまで、ＰＣ上や情報処理装置上のアプリケーションソフトウェアが印刷要求もしくはファクス送信要求を受け付けられたと認識しないようにすることができる。
これによって、ＰＣ上や情報処理装置上のアプリケーションソフトウェアが印刷要求もしくはファクス送信要求を受け付けられたと認識したにも関わらず、情報処理装置で受信した印刷要求またはファクス送信要求が削除される現象を回避することができる。
また、情報処理装置側のネットワーク層、特にＴＣＰ／ＩＰ層といったＯＳレベルでの基本機能部分での処理で対応する必要なく、比較的安価に課題を解決することが可能となる。
【００５８】
なお、本実施形態では追加アプリケーション４２０からＭＦＰ１０１へファクス送信ジョブを投入する場合を説明したが、Ｓ６０３〜Ｓ６０７の処理をＰＣ１０３のドライバ５２０のジョブ送信部５２２、ジョブデータ制御部５２３で行っても構わない。また、追加アプリケーション４２０やアプリケーション５１０が印刷ジョブと投入する場合に、印刷ジョブのデータとＭＦＰ１０１のデータ通信部４３１のバッファサイズを比較して印刷ジョブのデータサイズを調整しても構わない。
【００５９】
〔第２実施形態〕
次に、本発明の第２実施形態について説明する。
第２の実施形態では、ファクス送信ジョブを投入後に追加アプリケーション４２０がジョブ管理部４１１にファクス送信ジョブ管理キーにジョブが登録されたか否かを確認する場合の動作について説明する。
【００６０】
第２の実施形態では、第１の実施形態で説明した図６のフローチャートに代えて図７に示すフローチャートを説明する。なお、その他の構成について第１の実施形態で説明したものと同様であるため説明は省略する。
【００６１】
図７は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、追加アプリケーション４２０がファイルサーバ１０３に格納されたファクス送信ジョブデータを取得してネイティブ機能部４１０経由でファクス送信するための動作例である。なお、図７のフローチャートに示す各動作（ステップ）は、ＭＦＰ１０１のＣＰＵ２１１がＨＤＤ２１４に記憶された制御プログラムを実行することにより実現される。なお、図７におけるＳ６０１、Ｓ６０２は、上述した第１実施形態と同様の構成であるため、詳細な説明は省略する。以下の説明では、ＣＰＵ２１１が実行する図４に示したモジュールを主体として説明する。
【００６２】
Ｓ７０１において、ファクス送信ジョブ送信部４２３はファクス送信ジョブ取得部４２２から受信したファクス送信ジョブの属性Ｂｉｌｌｉｎｇ Ｃｏｄｅに一意のＩＤ（識別情報）を埋め込む。次に、ファクス送信ジョブ送信部４２３はファクス送信ジョブ投入用のポートにアクセスし、ＭＦＰ１０１のデータ通信部４３１を介してジョブ管理部４１１と通信コネクションを確立する。次にファクス送信ジョブ送信部４２３は確立した通信コネクション経由でファクス送信ジョブデータを送信する。
【００６３】
Ｓ７０２において、ファクス送信ジョブ送信部４２３はジョブ管理部４１１からファクス送信ジョブ管理キューに登録されているジョブリスト（ジョブリスト一覧）を取得する。次にファクス送信ジョブ送信部４２３は取得したジョブリストに含まれるそれぞれのファクス送信ジョブの属性Ｂｉｌｌｉｎｇ Ｃｏｄｅを確認し、Ｓ７０１に埋め込んだＩＤと同じＩＤが埋め込まれているジョブの有無を確認する。
【００６４】
Ｓ７０３において、ファクス送信ジョブ送信部４２３はＳ７０２の確認結果としてＳ７０１に埋め込んだＩＤと同じＩＤが埋め込まれているジョブが存在した場合、「ファクス送信ジョブが投入されている」と判断する。ファクス送信ジョブ送信部４２３はＳ７０２の確認結果としてＳ７０１に埋め込んだＩＤと同じＩＤが埋め込まれているジョブが存在しない場合、「ファクス送信ジョブがまだ投入されていない」と判断する。
ここで、ファクス送信ジョブ送信部４２３が「ファクス送信ジョブが投入されている」と判断した場合、ファクス送信ジョブ送信部４２３は、本処理を終了する。
一方、「ファクス送信ジョブがまだ投入されていない」とファクス送信ジョブ送信部４２３が判断した場合、ファクス送信ジョブ送信部４２３はＳ７０２に戻り、追加アプリケーション４２０としてはファクス送信ジョブが投入されていない状態を維持する。
【００６５】
以上説明した通り、本実施形態では、ジョブ管理部４１１がファクス送信ジョブ管理キューにジョブを登録する前に、追加アプリケーション４２０が「ファクス送信ジョブが投入されている」と判断してしまう状態を回避できる。したがって、追加アプリケーション４２０がファクス送信ジョブをジョブ管理部４１１に投入したと認識したにもかかわらずジョブ管理部４１１ではファクス送信ジョブが未投入の状態を回避できる。
【００６６】
なお、本実施形態では、ファクス送信ジョブを一意に特定するための情報としてＢｉｌｌｉｎｇ  ＣｏｄｅにＩＤを埋め込むものとした。Ｂｉｌｌｉｎｇ  Ｃｏｄｅはもともとジョブ実行に対して課金を行う際に請求先などを特定するために埋め込まれるジョブの属性の１つである。しかしながら、ジョブ名などジョブを一意に特定できる情報であれば他の属性を使用してもかまわない。また、本実施形態では追加アプリケーション４２０からＭＦＰ１０１へファクス送信ジョブを投入する場合を説明したが、Ｓ７０１〜Ｓ７０３の処理をＰＣ１０３のドライバ５２０のジョブ送信部５２２で行っても構わない。また、追加アプリケーション４２０やアプリケーション５１０が印刷ジョブと投入する場合に、印刷ジョブにジョブを一意に特定するための情報を埋め込んでジョブの投入確認を行っても構わない。
【００６７】
本発明は、上述の実施形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えばＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６８】
１０１  ＭＦＰ
【図１】
2016092616.tif 000003
【図２】
2016092616.tif 000004
【図３】
2016092616.tif 000005
【図４】
2016092616.tif 000006
【図５】
2016092616.tif 000007
【図６】
2016092616.tif 000008
【図７】
2016092616.tif 000009
【図８】
2016092616.tif 000010
【図９】
2016092616.tif 000011