(57)【要約】      （修正有）【課題】ＭＦＰの機能を拡張する。【解決手段】ＭＦＰ１０４とネットワーク接続された拡張コンピューティング・デバイスにより、ＭＦＰ装置をサポートするための付加機能性と能力をイネーブルする。ＭＦＰ装置が実時間でより重要なタスクに対処できるように印刷ジョブ及びその他のタスクは拡張コンピューティング・デバイスで実行することができる。ＭＦＰ装置又はそのエンジン１０６と連携する必要なく、拡張コンピューティング・デバイスは印刷ジョブを受信して処理する。【選択図】図１
2019135641.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された多機能印刷（ＭＦＰ）装置で文書を処理するための拡張コンピューティング・デバイスであって、
前記ネットワークを介して受信された印刷ジョブの予定を立てるための印刷ジョブマネージャーと、
前記印刷ジョブが拡張コマンド又はページ記述言語（ＰＤＬ）の印刷ジョブを含むかどうか判定するための拡張エンジンと、
前記印刷ジョブマネージャーからの前記ＰＤＬの印刷ジョブを処理して文書画像を生成するためのラスター画像処理（ＲＩＰ）ファームウェアと、
外部のデバイス及び前記ＭＦＰ装置とインターフェース接続するための通信レイヤと、
前記文書画像を記憶するための記憶装置と、
を備え、
前記拡張エンジンは、前記拡張コマンドに応じて前記拡張コンピューティング・デバイス内で機能を実行する拡張コンピューティング・デバイス。
【請求項２】
請求項１に記載の拡張コンピューティング・デバイスであって、さらに、
電源を備える拡張コンピューティング・デバイス。
【請求項３】
請求項２に記載の拡張コンピューティング・デバイスであって、さらに、
前記電源を前記ＭＦＰ装置に接続するためのコネクタを備える拡張コンピューティング・デバイス。
【請求項４】
請求項１乃至３のいずれか１項に記載の拡張コンピューティング・デバイスであって、
前記拡張コマンドは、前記ＭＦＰ装置に前記印刷ジョブを前記拡張コンピューティング・デバイスに転送させる拡張コンピューティング・デバイス。
【請求項５】
請求項１乃至４のいずれか１項に記載の拡張コンピューティング・デバイスであって、さらに、
前記拡張エンジンによって起動される少なくとも一つのファームウェア・アプリケーション・システム・サービスを備える拡張コンピューティング・デバイス。
【請求項６】
請求項５に記載の拡張コンピューティング・デバイスであって、
前記少なくとも一つのファームウェア・アプリケーション・システム・サービスは、文書記憶サービスを含む拡張コンピューティング・デバイス。
【請求項７】
請求項１乃至６のいずれか１項に記載の拡張コンピューティング・デバイスであって、さらに、
前記拡張コンピューティング・デバイス内で実行するためのオペレーティングシステムを備える拡張コンピューティング・デバイス。
【請求項８】
請求項１乃至７のいずれか１項に記載の拡張コンピューティング・デバイスであって、さらに、
前記印刷ジョブマネージャーによる動作に先立ち前記ＭＦＰ装置から受信した印刷ジョブを記憶するためのメモリを備える拡張コンピューティング・デバイス。
【請求項９】
多機能印刷（ＭＦＰ）装置に接続された拡張コンピューティング・デバイスで印刷ジョブを処理するための方法であって、
拡張コマンドを含む印刷ジョブを前記ＭＦＰ装置から受信する工程と、
ラスター化された文書画像を生成するために印刷ジョブマネージャー及びラスター画像処理（ＲＩＰ）ファームウェアを用いて前記拡張コンピューティング・デバイスで前記印刷ジョブを処理する工程と、
前記拡張コンピューティング・デバイスの拡張エンジンによってアクセス可能な記憶装置内に前記ラスター化された文書画像を記憶する工程と、
を備える方法。
【請求項１０】
請求項９に記載の方法であって、さらに、
前記印刷ジョブが前記拡張コンピューティング・デバイスに送信されることを判定する工程を備える方法。
【請求項１１】
請求項９又は１０に記載の方法であって、さらに、
前記拡張エンジンによって指示された場合には、前記記憶装置から前記ラスター化された文書画像を取得する工程を備える方法。
【請求項１２】
請求項１１に記載の方法であって、さらに、
ネットワークを介して、前記ＲＩＰファームウェアに対するアップグレードをソースから取得する工程を備える方法。
【請求項１３】
請求項９乃至１２のいずれか１項に記載の方法であって、さらに、
前記拡張コンピューティング・デバイス内にある前記記憶装置にアクセスする工程を備える方法。
【請求項１４】
請求項９乃至１３のいずれか１項に記載の方法であって、さらに、
前記ラスター化された文書画像を含むリストを前記ＭＦＰ装置に提供する工程を備える方法。
【請求項１５】
請求項１１又は１２に記載の方法であって、さらに、
前記取得された、ラスター化された文書画像を前記ＭＦＰ装置で印刷する工程を備える方法。
【請求項１６】
多機能印刷（ＭＦＰ）装置と共に拡張コンピューティング・デバイスを用いるための方法であって、
印刷ジョブのヘッダを分析する工程と、
前記印刷ジョブが文書記憶に関する拡張コマンドを含むかどうか前記ヘッダに従って判定する工程と、
前記印刷ジョブを前記拡張コンピューティング・デバイスに転送する工程と、
ラスター化された文書画像を生成するために前記拡張コンピューティング・デバイスで前記印刷ジョブを処理する工程と、
前記ラスター化された文書画像を前記拡張コンピューティング・デバイスに関連付けられた記憶装置内に記憶する工程と、
指示された場合に前記ラスター化された文書画像を前記記憶装置から取得する工程と、
前記ラスター化された文書画像を前記ＭＦＰ装置に送信する工程と、
を備える方法。
【請求項１７】
請求項１６に記載の方法であって、
前記印刷ジョブを処理する工程は、前記ラスター化された文書画像をレンダリングするために前記拡張コンピューティング・デバイス内のラスター画像処理（ＲＩＰ）ファームウェアを使用する工程を含む方法。
【請求項１８】
請求項１６又は１７に記載の方法であって、さらに、
前記印刷ジョブがＰＤＬの印刷ジョブであることを判定する工程を備える方法。
【請求項１９】
請求項１６乃至１８項のいずれか１項に記載の方法であって、さらに、
前記ラスター化された文書画像を含むリストについて前記拡張コンピューティング・デバイスに問い合わせをする工程を備える方法。
【請求項２０】
請求項１９に記載の方法であって、さらに、
前記リストから前記ラスター化された文書画像を選択する工程を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は多機能印刷デバイスに対するコンピューティング機能及び能力を拡張するための携帯型デバイスに関する。
【背景技術】
【０００２】
プリンタ及び関連設備はアップグレードのサイクルがゆっくりで古いプリンタエンジンを保持している。プリンタエンジンの初期費用が高いために、使用されていなくても事業所で古いプリンタエンジンが長期間維持される結果となっている。新しいプリンタエンジンやその他の機能に対する需要は少ない。さらに、ハードウェア及びソフトウェアの開発課題のために製品のリリース間隔が数か月にわたる場合がある。さらに、ファームウェアの問題の解決あるいはファームウェアのアップグレードを行う費用が高い場合がある。ハードウェアの交換あるいはソフトウェアのアップデートという点のみならず、技術者がこれらの活動を実行するために顧客を訪問する点も合わせてである。
【発明の概要】
【０００３】
多機能印刷（ＭＦＰ）装置で文書を処理するための拡張コンピューティング・デバイスを開示する。拡張コンピューティング・デバイスはＭＦＰ装置に接続されており、次にＭＦＰ装置はネットワークに接続される。拡張コンピューティング・デバイスはネットワークを介して受信された印刷ジョブの予定を立てるための印刷ジョブマネージャーを含む。拡張コンピューティング・デバイスは、印刷ジョブが拡張コマンド又はページ記述言語（ＰＤＬ）の印刷ジョブであるかどうかを判定するための拡張エンジンも含む。拡張コンピューティング・デバイスは、印刷ジョブマネージャーからのＰＤＬの印刷ジョブを処理して、文書画像を生成するためのラスター画像処理（ＲＩＰ）ファームウェアも含む。拡張コンピューティング・デバイスは、外部のデバイス及びＭＦＰ装置とインターフェース接続するための通信レイヤも含む。拡張コンピューティング・デバイスは、文書画像を記憶するための記憶装置も含む。拡張エンジンは、拡張コマンドに応じて拡張コンピューティング・デバイス内の機能を実行する。
【０００４】
多機能印刷（ＭＦＰ）装置に接続された拡張コンピューティング・デバイスで印刷ジョブを処理するための方法を開示する。方法は、ＭＦＰ装置から印刷ジョブを受信する工程を含み、その印刷ジョブは拡張コマンドを含む。方法は、ラスター化された文書画像を生成するために、印刷ジョブマネージャー及びラスター画像処理（ＲＩＰ）ファームウェアを用いて拡張コンピューティング・デバイスで印刷ジョブを処理する工程も含む。方法は、拡張コンピューティング・デバイスの拡張エンジンがアクセス可能な記憶装置内にラスター化された文書画像を記憶する工程も含む。
【０００５】
多機能印刷（ＭＦＰ）装置と共に拡張コンピューティング・デバイスを使用するための方法を開示する。方法は印刷ジョブのヘッダを分析する工程を含む。方法は、印刷ジョブが文書記憶に関する拡張コマンドを含むかどうかヘッダに従って判定する工程も含む。印刷ジョブを拡張コンピューティング・デバイスに転送する工程も含む。方法は、ラスター化された文書画像を生成するために拡張コンピューティング・デバイスで印刷ジョブを処理する工程も含む。方法は、拡張コンピューティング・デバイスに関連付けられた記憶装置内にラスター化された文書画像を記憶する工程も含む。方法は、指示された場合に記憶装置からラスター化された文書画像を取得する工程も含む。方法はラスター化された文書画像をＭＦＰ装置に送信することも含む。
【図面の簡単な説明】
【０００６】
本発明の他の様々な機能及び付随する利点は、添付図面と併せて考慮するとより十分に理解されるであろう。
【図１】本開示の実施形態に係る携帯型拡張コンピューティング・デバイスを使用して印刷動作を実行するためのシステムのブロック図を示す。
【図２】本開示の実施形態に係る携帯型拡張コンピューティング・デバイスと併せて使用されるＭＦＰのコンポーネントのブロック図を示す。
【図３】本開示の実施形態に係る拡張コンピューティング・デバイス用のコンポーネントのブロック図を示す。
【図４】本開示の実施形態に係るファームウェア・アプリケーション・システム・サービスとともに使用するためのコンポーネントのブロック図を示す。
【図５】本開示の実施形態に係るＭＦＰに接続された場合の拡張コンピューティング・デバイスを構成するためのフローチャートを示す。
【図６】本開示の実施形態に係る拡張コンピューティング・デバイスを使用して印刷ジョブ及び拡張コマンドを処理するためのフローチャートを示す。
【図７】本開示の実施形態に係るＭＦＰにある文書及びジョブ・ストレージに対する印刷ジョブを処理するためのフローチャートを示す。
【図８】本開示の実施形態に係る拡張コンピューティング・デバイスにある文書及びジョブ・ストレージに対する印刷ジョブを処理するためのフローチャートを示す。
【図９】本開示の実施形態に係るＭＦＰでオンデマンド印刷及び文書取得を行うためのフローチャートを示す。
【図１０】本開示の実施形態に係る拡張コンピューティング・デバイスでオンデマンド印刷及び文書取得を行うためのフローチャートを示す。
【発明を実施するための形態】
【０００７】
本発明の具体的な実施形態について詳細に説明する。これらの実施形態の例は添付図面に示されている。本発明について十分な理解が得られるように具体的な詳細を数多く記載する。実施形態は図面と併用して説明するが、以下の説明は本発明をいずれか一つの実施形態に限定することを意図していないことは理解されよう。逆に、以下の説明は、添付の請求項の主旨と範囲内に含まれ得る代替、変更、及び同意義を含めることを意図するものである。本発明ついて十分な理解が得られるように具体的な詳細を数多く記載する。
【０００８】
多機能印刷（ＭＦＰ）装置等の画像装置のためのコントローラ及びその他のファームウェアコンポーネントを設計する場合、ユーザ及び顧客に対してその目的を果たすためにＭＦＰが要望どおり機能することを保証するためにいくつかの設計要因が考慮される。ハードウェアの設計要因の中にはファームウェア、プロセッサの能力、及び記憶容量のすべてに対するメモリサイズ、集積チップの能力があり得る。実施形態によっては、ＭＦＰ内の集積チップがホストできるファームウェアの量について制限がある。例えば、ＭＦＰ内の記憶容量が不足するためにアップグレードされた及び新しいアプリケーションをインストールできないものもある。
【０００９】
従って、本開示の実施形態はアプリケーションのアンインストール若しくは再インストールの必要がなく様々なアプリケーションを保持するため実質上無制限の容量を提供する。この機能により画像装置の価値が向上する。ファームウェアの開発がディスク容量、読み込み専用メモリ、及び集積チップの容量等のＭＦＰ内のハードウェアコンポーネントの容量に対して制限されない場合、より多くの機能を開発、インストール、及びパッケージ化することが可能である。開発者はより高い柔軟性を持って革新し、古いデバイスに機能を追加する。
【００１０】
非ハードウェア設計要因には、印刷、スキャン、ファックス、複写等のあらゆる種類のジョブの処理に関する性能又は効率が挙げられる。印刷ジョブは印刷物に対する待ち時間を低減するために速やかに処理されるべきである。時には、特に忙しい職場では、プリンタが他のジョブにかかりきりなのでプリントアウトを待たなければならない。印刷ジョブの実行中の処理性能を改善する方法があれば、ＭＦＰに価値を付加するであろう。
【００１１】
本開示の実施形態は、ＭＦＰのハードウェア及びファームウェアコンポーネントからいくつかの機能をオフロードすることもある。オフロードされる機能には、印刷のワークフローに対して重要でないＣＰＵを消費する処理が挙げられる。そのような働き及び処理の例として、文書格納、ユーザアカウント管理、ジョブアカウント処理、ウェブサービス、診断ツール、ＭＦＰファームウェアのアップグレードサービス、リモートアクセス等が挙げられる。
【００１２】
処理がオフロードされてＭＦＰ外部で実行される場合、デバイスは、重要な印刷処理及び画像処理に利用できる主要なエンジン・プロセッサとファームウェアを有してもよい。重要でない処理はバックグラウンドであるいは他のコンピューティングスペースで行われてもよい。この機能は純粋なマルチタスクすなわちマルチスレディングシステムとは異なる、なぜならばそのようなシステムはなお動作を実行するためにプロセッサ、ストレージ、及びメモリを共用するからである。主要なハードウェアリソースが共用されると、ＭＦＰが行うことができる機能の数及び処理の量に対して依然として制限が存在する。
【００１３】
こうして、本開示の実施形態は、ＭＦＰの重要でない処理をオフロードして主要で重要なリソースへの負荷を低減できる別個であるがアクセス可能なシステムを提供する。ＭＦＰの拡張コンピューティング・デバイスは、ＭＦＰの主要なコンピューティング・コンポーネントと別個でかつ外部にあるコンピューティング・デバイスの開発により能力を提供する。拡張コンピューティング・デバイスは、プロセッサ、メモリ、ストレージ、及びファームウェアコンポーネントを含む携帯型コンピューティング・デバイスである。文書格納、ユーザアカウント管理、ウェブサービス、診断ツール等のアプリケーションは、拡張コンピューティング・デバイスにホストされ、データはＭＦＰ又は主要な画像装置で必要に応じて利用可能となる。
【００１４】
拡張コンピューティング・デバイスは、携帯性、ＭＦＰ間で共用可能なデバイス、共用データという利点、並びに簡単なアップグレード及びメンテナンス能力を提供する。同時に、拡張コンピューティング・デバイスは、既成産業の標準コネクタ／アダプタ及び異なる種類のデータ通信に関する業界標準プロトコル経由で拡張コンピューティング・デバイス（ＥＣＤ）とＭＦＰ間の直接的接続性を提供することも可能である。これらの利点は以下において詳細に開示する。
【００１５】
携帯性は、同じ拡張コンピューティング・デバイスが様々な画像装置に接続可能であることを指す。共用のコンピューティング・デバイスとして、様々な画像装置に接続された場合、拡張コンピューティング・デバイスからインストール、ホスト、及び実行されるサービス、アプリケーション、及び機能が共用され、機能することは全て可能である。拡張コンピューティング・デバイスは、画像装置又はＭＦＰの機種を検知し、接続された画像装置に対して働く機能と能力をイネーブルして提供する。ＥＣＤ及びＭＦＰのデバイス間の通信の種類に基づいてＥＣＤ及びＭＦＰのデバイスを接続するために、拡張コンピューティング・デバイスは、ＵＳＢ接続，ＨＤＭＩ（登録商標）接続，ＵＳＢ‐ＵＡＲＴ（汎用非同期送受信器）接続、又はダイレクトＵＡＲＴポート（ＲＸ、ＴＸ等）接続、ＵＳＢ‐ＯＴＧ等のような直接接続経由でＭＦＰのデバイスに接続することができる。例えば、ＨＤＭＩ（登録商標）接続は，ＤＶＩインターフェースのようなバルク・ラスター・データを転送するために使用することができる。ＵＳＢ‐ＵＡＲＴ又はＵＡＲＴポート接続はコマンド／ステータス通信をサポートすることに役立つ。ＵＳＢ‐ＯＴＧは、ＥＣＤが臨機応変にホスト／デバイス等として働くようにする。ＥＣＤは、ＵＳＢ‐ＯＴＧ接続において、デバイスモードのＭＦＰのデバイスの大規模ストレージの役割を果たすように使用することができる。
【００１６】
拡張コンピューティング・デバイスは、また、サービス、アプリケーション、及び機能のような機能をｗｉｆｉ、ＮＦＣ、ブルートゥース（登録商標）等の無線接続により要求し、必要とし及び依頼することがある遠隔の画像装置に対してそれらを許可し、応える共用デバイスである。換言すると、多くのＭＦＰとそのエンジンは、ネットワークの共通の拡張コンピューティング・デバイスを使用することができ、それによって、デバイスにより提供される様々な機能を簡単に使用することができる。共用可能なデバイスとして、別の利点は、いくつかの機能、サービス、又はアプリケーションがユーザのデータ、文書データ、又はデバイスデータを含み、管理する場合、そのデータは拡張コンピューティング・デバイスに接続する全ての画像装置にとって利用できることである。そのデータはだれでもまたどこからでも利用できるようになるであろう。
【００１７】
別の拡張コンピューティング・デバイスの利点は、アップグレード及びメンテナンスが容易であることである。なぜならば、拡張コンピューティング・デバイスは共用され、画像装置の数と比較して、事務所にあるデバイスあるいは場所の数が低減されるためである。したがって、メンテナンス及びアップグレードは高い費用がかからない及び困難でなくなる。
【００１８】
本開示の実施形態は、ページ記述言語（ＰＤＬ）システム及びラスター画像プロセッサ（ＲＩＰ）システムを有する携帯型印刷コンピューティング・デバイスを含む。拡張コンピューティング・デバイスはコンピュータ処理装置、メモリ、及びオペレーティングシステムを備える外部コンピューティング・デバイスであり得る。拡張コンピューティング・デバイスは、既存のプリンタ装置に接続するための接続インターフェースも含む。また、拡張コンピューティング・デバイスは、別のプリンタ装置としてネットワーク上で自身を公表するネットワーク能力も履行する。
【００１９】
開示された拡張コンピューティング・デバイスは、プリンタ装置との接続インターフェース及び新しいＰＤＬ技術をサポートする。拡張コンピューティング・デバイスは、また、エンジンファームウェアのアップグレード又はメンテナンスを行うために、ファームウェア・アップグレードをサーバから受信する。接続されたとき、拡張コンピューティング・デバイスは、プリンタ装置でサポートされるネイティブＰＤＬを検知し、そのＰＤＬに対するパススルーを提供する。拡張コンピューティング・デバイスは、サポートされていないＰＤＬを、ネイティブＰＤＬ、又はプリンタエンジンによりサポートされているＪＰＥＧ／ＴＩＦＦのような基本的なラスターフォーマットに翻訳することができる。この機能により、すべてのプリンタ（他の製造会社のプリンタでも）との互換性が可能になる。
【００２０】
拡張コンピューティング・デバイスは、また、デバイスのＰＤＬのＲＩＰファームウェアがより「最新版」で、プリンタエンジンに欠けている新しい機能を含む場合エンジンファームウェアコンポーネントに優先する。拡張コンピューティング・デバイスは、また、ファームウェア・アップグレードがエンジンに対して最終のファームウェア・アップグレードとしてインストールされる前にファームウェア・アップグレードをテストするのにも役立つ。ダムプリンタは、ＲＩＰ機能がプリンタの外部に存在して動作するようにＲＩＰオーバーライド機能付きで開発されてもよい。また、拡張コンピューティング・デバイスは、プリンタエンジンに出力するために、モバイルアプリケーション、ウェブアプリケーション、あるいはデスクトップデバイスから画像若しくはデータを受信する画像アプリケーションをホストしてもよい。拡張コンピューティング・デバイスは、デバイスの管理容易性のために企業のプリンタ管理ツールに登録してもよい。
【００２１】
既存のプリンタドライバとそれに関連する印刷キューは、通常通り、引き続き利用可能である。換言すると、ユーザが印刷装置に関連付けられている印刷キューを選択した場合、ユーザは、印刷キューに関して古いプリンタエンジンとプリンタドライバにより提供されるものと同じプリンタ機能及び能力を有することになる。拡張コンピューティング・デバイスに対する印刷キューは、古い及び第３者の印刷装置に追加される新しい機能と能力を可能にするために、新しい印刷キューとして現れる。
【００２２】
別の実施形態では、印刷キュー又はプリンタドライバは、通常はＭＦＰ又はプリンタに向くように構成されているプリンタポートを有するが、代わりにＭＦＰの拡張コンピューティング・デバイスに向くプリンタポートを有するように構成されてもよい。オペレーティングシステムにおけるプリンタポート等のプリンタポートは、ポートモニタによって管理され、プリンタドライバ又は印刷キューとプリンタとの間の接続として働くが、プリンタドライバ又は印刷キューとＭＦＰの拡張コンピューティング・デバイスとの間の接続手段でもあり得る。この構成では、プリンタドライバは、ＭＦＰの拡張コンピューティング・デバイスのＩＰアドレスとして構成されるポートを通して、プリンタドライバが生成した印刷ジョブをネットワークで接続されたＭＦＰの拡張コンピューティング・デバイスに送信する。この構成では、ユーザはプリンタドライバの機能を利用することができるとともに、ＭＦＰの拡張デバイスの機能を適用し、かつ利用することができる。これは、さらに、あらゆるプリンタドライバをネットワークで接続されたＭＦＰの拡張コンピューティング・デバイスに向けて、そして関連付けることができることを意味する。
【００２３】
ユーザが拡張コンピューティング・デバイスの印刷キューを印刷ジョブの目標として選択した場合、プリンタエンジンに必ずしも存在しない及びサポートされていないが拡張コンピューティング・デバイスによってサポートされている新しい機能がユーザにとって利用可能となる。ユーザは携帯型印刷コンピューティング・デバイスが実行できる新しい印刷機能にアクセスしてプリンタエンジンを用いて印刷することができる。
【００２４】
定義
ＭＦＰ―多機能（若しくは機能的）プリンタ及び印刷デバイス．
ＰＤＬ―ページ記述言語、印刷ジョブにおける文書及びページを記述するプログラミング言語の種類。ＰＤＬの例としては、プリンタ・コマンド言語（ＰＣＬ）５、ＰＣＬＸＬ、又はＰＣＬ６、及びポストスクリプトがある。ポータブル・ドキュメント・フォーマット（ＰＤＦ）及びＸＭＬペーパー仕様（ＸＰＳ）もまたこのグループに属する。ＪＰＧ及びＴＩＦＦ等の画像フォーマットは、印刷も可能であるが、ＰＤＬによって取り扱われる特殊なケースである。
ＲＩＰ―ラスター画像プロセッサ、ＰＤＬインタープリターを含むファームウェアコンポーネント。この機能は以下において詳細に開示する。
印刷ファイル、印刷ジョブ、及びテストファイルーＰＤＬコマンドを含むコンピュータファイルでＭＦＰに対する未処理の印刷可能データである。印刷ジョブはプリンタドライバの出力である。ＰＣＬ、ＰＤＦ、又はＸＰＳ等のＰＤＬフォーマットの一つの２進表現である。
グラフィックス・レンダリング・コンポーネント―ＰＤＬコマンド及びデータをＭＦＰエンジンが理解できるバイナリデータに変換するＲＩＰファームウェアの内部コンポーネント。これは、コンピューティング・デバイスが理解できるようにプログラミング言語が翻訳される機械語と同様である。バイナリデータはグラフィックス・レンダリング・レベルがハードウェアによって理解されて用紙上で実際の図あるいはピクセルに変換されるものである。このコンポーネントは以下で詳細に開示する。
ＧＥＵ―グラフィックス・実行ユニット、グラフィックス・レンダリング・コンポーネントにより生成されるオーダーリストを実行して印刷ジョブ又は文書のラスター表現を作成するエンジンにあるハードウェアコンポーネント。
プリンタドライバ―文書を印刷ジョブに変換するＷｉｎｄｏｗｓ（商標）又は他のオペレーティングシステムのデバイスドライバ。
グラフィックス・オーダーリスト―ＰＤＬコマンドがグラフィック・レンダリング・コンポーネントにより変換されるバイナリデータ表現。グラフィックス・オーダーリストは、ＭＦＰのハードウェアがページ上で実際のマーキングに変換するために理解し処理する下位レベルのグラフィックス指示である。コンピュータの機械語のように、グラフィックス・オーダーリストはＭＦＰが理解する言語である。
バンドデータ―グラフィックス・オーダーリストの処理の結果のバイナリデータの行。ページのピックスマップすなわちビットマップ画像表現のように見える。ページはバンドデータの行から成る。各行の大きさは、１２８バイト等同じであってもよい。実施形態によっては、各バンドの高さはダイナミックである。幅は、レンダリングされるページの幅であってもよい。
ダムプリンタ―ＲＩＰファームウェアを持たないプリンタエンジンという考えである。ラスター画像処理はプリンタの外部で行われる。プリンタは、プリンタエンジンが用紙上で実際のマーキングに対して処理ができるグラフィックス・オーダーリスト形式及びラスター形式（バンドデータ）のいずれかで完全にレンダリングされたページを受信する。
【００２５】
図１は本開示の実施形態に係る拡張コンピューティング・デバイス１０２を用いた印刷動作を実行するためのシステム１００のブロック図を示す。システム１００は、拡張コンピューティング・デバイス１０２をＭＦＰ１０４と併せて使用する方法を例示するためのネットワーク・アーキテクチャの例であり得る。図で示されるように、拡張コンピューティング・デバイス１０２はＭＦＰ１０４に装着可能な別個のコンポーネントである。拡張コンピューティング・デバイス１０２は、ＵＳＢポートをＭＦＰ１０４に連結するＵＳＢデバイスでもよい。
【００２６】
拡張コンピューティング・デバイス１０２は、また、ネットワーク１０８に接続してモバイルデバイス１１０、コンピュータ１１２、及びサーバ１１４等のシステム１００内の他のコンポーネントと通信する。理解できるように、システム１００はＭＦＰ１０４にタスクを送信する多くの付加コンポーネントを含んでもよい。モバイルデバイス１１０は、ＭＦＰ１０４によって処理するためのファイルを送信するスマートフォン等のハンドヘルドすなわち携帯型のコンピューティング・デバイスであってもよい。例えば、モバイルデバイス１１０はＭＦＰ１０４で印刷される画像を送信してもよい。コンピュータ１１２は、同様にＭＦＰ１０４を利用するためにネットワーク１０８に接続されるデスクトップ又はラップトップコンピュータであってもよい。サーバ１１４はＭＦＰ１０４にアップグレードを提供するデータ記憶装置であってもよい。これらのアップグレードは、ソフトウェアのアップグレード及びＭＦＰ１０４のソフトウェア又はファームウェアコンポーネントのためのパッチであってもよい。サーバ１１４は、また、拡張コンピューティング・デバイス１０２と通信してもよい。拡張コンピューティング・デバイス１０２とＭＦＰ１０４は記憶のためにサーバ１１４に情報を送信してもよい。モバイルデバイス１１０、コンピュータ１１２、及びサーバ１１４は、印刷及びスキャン動作を実行するために内部でアプリケーションを実行してもよい。クラウドストレージ１１６はインターネット又はクラウドベースの記憶場所であってもよい。
【００２７】
拡張コンピューティング・デバイス１０２は、ＭＦＰ１０４のエンジン１０６に接続してもよい。この接続はＨＤＭポート又はＵＳＢ／ＵＡＲＴポートの組み合わせにより生じてもよい。ＨＤＭポートは、バルク・ラスター・データの転送用で、ＵＳＢ／ＵＡＲＴポートはコマンド／ステータス通信用であってもよい。拡張コンピューティング・デバイス１０２は、エンジン１０６及びＭＦＰ１０４のユーザで利用可能である新しいＰＤＬ及びモバイルアプリケーション等の新しい技術のすべてを提供する。上で述べたように、拡張コンピューティング・デバイス１０２は、ＭＦＰ１０４に装着される別個のコンピューティング・デバイスであってもよい。ネットワークに接続されるコンピューティング・デバイスとして、拡張コンピューティング・デバイス１０２は、また、協調するデバイスのクラスター・フリートとして組織化されて、古い及び第３者のエンジンに対するサポートを含めて、ネットワーク１０８全体にわたって新しい技術を利用できるようにしてもよい。拡張コンピューティング・デバイス１０２は、遠隔処理のため、印刷デバイス１０２Ｘ及び１０２Ｙ、及びＭＦＰ１２０等のプリンタ等の他の携帯型印刷コンピューティング・デバイスから印刷ジョブ部分を受信してもよい。この機能は多忙なプリンタエンジン及び多忙な携帯型印刷デバイスの助けとなる。
【００２８】
拡張コンピューティング・デバイス１０２は、外部ではあるが携帯型のソフトウェア、ファームウェア、及びデバイスとして様々な接続機能をサポートすることが可能である。接続機能には、これに限定されないが、ｗｉｆｉ、ローカルエリア・ネットワーク、ＮＦＣ、パラレルポート、シリアルポート、ＵＳＢプリンタポート、ＵＳＢデータポート、ブルートゥース（登録商標）、インターネット等が挙げられる。さらなるプリンタ、コンピュータへの接続機能が、有線及び無線の両方で、追加され、統合され、サポートされ得る。接続機能には、これに限定されないが、ｗｉｆｉ、ローカルエリア・ネットワーク、ＮＦＣ、パラレルポート、シリアルポート、ＵＳＢプリンタポート、ＵＳＢデータポート、ブルートゥース（登録商標）、ＨＤＭＩ（登録商標）ポート，ＤＶＩポート，ＵＳＢ／ＵＡＲＴポート，ＵＡＲＴポート，インターネット等が挙げられる。
【００２９】
拡張コンピューティング・デバイス１０２の入力データは接続部１２２から受信でき、接続部１２２は無線であってもよい。例えば、拡張コンピューティング・デバイス１０２がＵＳＢコンピューティング・デバイスである場合、データは、ネットワーク１０８に接続された無線又は有線の接続部１２２を通して来てもよい。拡張コンピューティング・デバイス１０２がモバイルコンピュータである場合は、データは、無線又は有線の接続部１２２を介して接続されている入力ポートを通して来てもよい。拡張コンピューティング・デバイス１０２は、また、自身の様々な接続ポートを介して出力データを生成する。接続ポートは、ＵＳＢデータポート、ＵＳＢプリンタポート、ｗｉｆｉ、ＮＦＣ、ブルートゥース（登録商標）、ＴＣＰ／ＩＰ等であってもよい。拡張コンピューティング・デバイス１０２は、ＭＦＰ１０４のあらゆる入力ポートに接続してもよいし、また有線、無線、又は直接接続を含んでもよい。接続機能には、これに限定されないが、ｗｉｆｉ、ローカルエリア・ネットワーク、ＮＦＣ、パラレルポート、シリアルポート、ＵＳＢプリンタポート、ＵＳＢデータポート、ブルートゥース（登録商標）、ＨＤＭＩ（登録商標）ポート，ＤＶＩポート，ＵＳＢ／ＵＡＲＴポート，ＵＡＲＴポート，インターネット等が挙げられる。
【００３０】
拡張コンピューティング・デバイス１０２は、ＵＳＢコンピューティング・デバイス、ＨＤＭＩ（登録商標）コンピューティング・デバイス、ブラックベリーＰｉデバイス、パーソナルコンピュータ、モバイル若しくはスマートフォンデバイス、タブレット、ミニパーソナルコンピュータ等であってもよい。実施形態によっては、拡張コンピューティング・デバイス１０２をＭＦＰ１０４内部で統合することが可能であるかもしれない、なぜならば、印刷デバイスはソフトウェア又はハードウェアで全体的に実行できる機能を含むからである。拡張コンピューティング・デバイス１０２は、ＭＦＰファームウェアコンポーネントあるいはフラッシュメモリ領域に存在しホストされるアプリケーションであってもよい。局所的にホストされるアプリケーション又はファームウェアコンポーネントの挙動は、アップグレード可能で下記に開示する機能を提供する限り、下記に開示される拡張コンピューティング・デバイス１０２のように機能することが可能である。開示された実施形態が提供することを意図している能力は、ＭＦＰ１０４のようなあらゆる画像装置又はプリンタエンジンに、有線又は無線のいずれかによって、接続可能なあらゆるコンピューティング・デバイスですべて実行可能である。
【００３１】
拡張コンピューティング・デバイス１０２と一緒にＭＦＰ１０４のアーキテクチャの例を図２に示す。図２に示すアーキテクチャは、文書をスキャンして印刷、記憶、複写等の他の機能を実行するあらゆる多機能プリンタ又は画像形成装置に適用することができる。図示されているように、拡張コンピューティング・デバイス１０２は、エンジン１０６に接続され、エンジン１０６は次にＭＦＰ１０４の他のコンポーネントに接続される。
【００３２】
ＭＦＰ１０４は、これらの機能をサポートするための動作を実行するコンピューティング・プラットフォーム２０１を含む。コンピューティング・プラットフォーム２０１は、コンピュータ処理装置（ＣＰＵ）２０２、画像形成部２０４、メモリ部２０６、及びネットワーク通信インターフェース２１０を含む。他のコンポーネントも含まれる場合があるが簡略化のために示されていない。ＭＦＰ１０４は、コンピューティング・プラットフォーム２０１を用いて、スキャン、複写、印刷、ファクシミリの送受信、あるいは文書処理等の様々な動作を実行するように構成することが可能である。そのため、ＭＦＰ１０４は、スキャナ、並びに複写機、ファクシミリ装置、及びプリンタの一以上の機能を含む印刷デバイス又は多機能周辺装置である場合がある。これらの機能を提供するために、ＭＦＰ１０４は、印刷動作を実行するプリンタコンポーネント２２０、複写動作を実行する複写コンポーネント２２２、スキャナ動作を実行するスキャナコンポーネント２２４、及びファクシミリ文書を送受信するファクシミリコンポーネント２２６を含む。ＣＰＵ２０２は、所望の動作を実行するためにこれらのコンポーネントに指示を出すことができる。
【００３３】
ＭＦＰ１０４は、また、フィニッシャ２１１及び一以上の給紙カセット２１２を含む。フィニッシャ２１１は回転可能な下流側のローラを含み、所望の動作後、表面に画像が形成された用紙をトレイに移動させる。フィニッシャ２１１は、また、仕上がった用紙のソーティング、ステイプルでの用紙綴じ、両面印刷、折り目付け、穴あけ、折り畳み等の付加動作を実行する場合がある。給紙カセット２１２は、用紙に画像が形成された表面を生成するために様々なコンポーネント２２０、２２２、２２４及び２２６の画像を形成するための用紙を供給する。給紙カセット２１２は、様々な大きさ、色、組成等を有する用紙を含む場合がある。給紙カセット２１２は必要に応じて、補充のために取り出すことができる。
【００３４】
文書プロセッサ入力給紙トレイ２３０は、処理される用紙及び文書を受け取るＭＦＰ１０４の物理的コンポーネントであってもよい。文書は、文書をＭＦＰ１０４内の他のコンポーネントに移動させる文書プロセッサ入力給紙トレイ２３０の上若しくは中に置かれる。文書プロセッサ入力給紙トレイ２３０からの文書の動きはユーザが入力した指示によって制御できる。例えば、文書はスキャン動作のためにスキャナのフラットベッドに動かすことができる。これにより、文書プロセッサ入力給紙トレイ２３０はスキャナコンポーネント２２４に文書を供給する。図２に示すように、文書プロセッサ入力給紙トレイ２３０はエンジン１０６と相互作用して所望の動作を実行することができる。
【００３５】
メモリ部２０６は指示２１５を記憶するためのメモリ記憶場所２１４を含む。指示２１５は、ＣＰＵ２０２及びコンポーネント２２０、２２２、２２４又は２２６内のあらゆるプロセッサ等、ＭＦＰ１０４に関連付けられている他のプロセッサで実行可能である。メモリ部２０６は、また、ＭＦＰ１０４に特有のデータと共に、様々なプログラム及びアプリケーションに関する情報を記憶することができる。例えば、記憶場所２１４は、ＭＦＰ１０４内のコンポーネントをサポートするために、コンピューティング・プラットフォーム２０１により実行されるオペレーティングシステムを動作させるためのデータを含む場合がある。メモリ部２０６は揮発性及び非揮発性メモリで構成することができる。揮発性メモリはランダム・アクセス・メモリ（ＲＡＭ）を含んでもよい。非揮発性メモリの例としては、読み出し専用メモリ（ＲＯＭ），フラッシュメモリ，電気的消去・プログラム可能型読み出し専用メモリ（ＥＥＰＲＯＭ），デジタルテープ、ハードディスクドライブ（ＨＤＤ），あるいはソリッド・ステート・ドライブ（ＳＳＤ）を挙げることができる。メモリ部２０６は、また、他の可能性があるメモリデバイスと共に、読み込み可能又は書き込み可能な揮発性メモリ及び非揮発性メモリのあらゆる組み合わせを含む。
【００３６】
コンピューティング・プラットフォーム２０１は、ＣＰＵ２０２等の一以上のプロセッサをホストすることが可能である。これらのプロセッサは一以上の記憶場所２１４に記憶された指示２１５を実行することができる。これらの指示を実行することにより、プロセッサはＭＦＰ１０４に様々な動作を実行させる。プロセッサは、また、特定用途向け集積回路（ＡＳＩＣｓ）及びフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡｓ）等の特定用途向けのプロセシングユニットを内蔵する場合がある。コンポーネント２２０、２２２、２２４、及び２２６に特有の動作を実行するためにその他のプロセッサが含まれる場合がある。換言すると、特定のプロセッサは、ＭＦＰ１０４にプリンタ、複写機、スキャナ、及びファクシミリ装置として動作させる。
【００３７】
ＭＦＰ１０４は、また、コンピューティング・プラットフォーム２０１に接続可能な操作パネル２０８を含む。操作パネル２０８は、ＭＦＰ１０４にコマンドを与えるために表示部２１６とユーザとの対話を促進するための入力部２１７を含む。表示部２１６は液晶ディスプレイ（ＬＣＤ）等のあらゆる電子映像表示部であってもよい。入力部２１７は、ボタン、タッチスクリーン、キーボード若しくはキーパッド、スイッチ、ダイアル等の、ユーザが操作パネル２０８に情報を入力できるデバイスのあらゆる組み合わせを含み得る。入力部２１７は、タッチを検知してユーザからの入力を受け付ける、表示部２１６に重なって表示されるタッチスクリーン・デジタイザを含むことが好ましい。この方法により、ユーザは表示部２１６と対話する。拡張コンピューティング・デバイス１０２は、操作パネル２０８を介してエンジン１０６に接続することができる。
【００３８】
ＭＦＰ１０４は、また、ネットワーク通信処理部２１８を含む。ネットワーク通信処理部２１８は、画像形成システムの一以上の他の画像形成装置及びサーバとの無線又は有線接続等のネットワーク通信を確立することができる。ＣＰＵ２０２は、ネットワーク通信処理部２１８に、ネットワーク通信インターフェース２１０を用いてネットワークを介して情報を送信又は取得するよう指示することができる。データはネットワークを介してコンピューティング・プラットフォーム２０１で受信されるので、ネットワーク通信処理部２１８は着信パケットを復号化してそれをＣＰＵ２０２に配信する。ＣＰＵ２０２は、それに応じて動作し、ＭＦＰ１０４で動作を生じさせる。ＣＰＵ２０２は、また、ＭＦＰ１０４に関する設定等、メモリ部２０６に記憶されている情報を取得することができる。
【００３９】
ＭＦＰ１０４は、また、エンジン１０６を含む。エンジン１０６は、タスクを遂行するために適切に動作するハードウェア、ファームウェア又はソフトウェアコンポーネントの組み合わせであってもよい。例えば、エンジン１０６は、文書を印刷するためのコンポーネントとソフトウェアから成る。エンジン１０６は、ユーザが操作パネル２０８を介して入力した後でコンピューティング・プラットフォーム２０１から指示を受信してもよい。代替案として、エンジン１０６は、拡張コンピューティング・デバイス１０２から指示を受信してもよい。
【００４０】
エンジン１０６は、用紙へトナーを配置するハードウェアコンポーネント等のＭＦＰエンジンの下位機構を管理し動作させる。エンジン１０６は、ハーフトナー、トナーカートリッジ、ローラ、スケジューラ、記憶装置、入力／出力動作等を管理し調整してもよい。ページ記述言語（ＰＤＬｓ）を解釈するラスター画像プロセッサ（ＲＩＰ）ファームウェア２９０は、画像の実際のレンダリング及びＭＦＰ１０４での動作中に用紙へのトナーの塗布のために下位のエンジン１０６に対して指示を送信する。ＲＩＰファームウェア２９０については下記で詳細に開示する。
【００４１】
図３は、本開示の実施形態に係る拡張コンピューティング・デバイス１０２に関するコンポーネントのブロック図を示す。下記に開示されたものの他に、付加コンポーネントが拡張コンピューティング・デバイス１０２内に実装されてもよい。拡張コンピューティング・デバイス１０２は、拡張コンピューティング・デバイス１０２が内部で動作を管理すること及びＭＦＰ１０４及びエンジン１０６と相互作用することを可能にする機能を提供する拡張コンピューティング・システム３００を含む。実施形態によっては、拡張コンピューティング・システム３００は拡張システムと呼ばれることもある。拡張コンピューティング・システム３００については下記で詳細に開示する。
【００４２】
拡張コンピューティング・デバイス１０２は、また、拡張コンピューティング・デバイス１０２がコンピューティング・デバイスとして独立して動作することを可能とする、プロセッサ３０２、記憶装置３０３、メモリ３０４、及びデバイスドライバ３０５等のコンポーネントを含む。プロセッサ３０２は、指示及びコマンドを実行する。プロセッサ３０２は、また、拡張コンピューティング・デバイス１０２内の他のコンポーネントに指示して動作を実行させる。メモリ３０４は、プロセッサ３０２により実行される指示を記憶してもよい。実施形態によっては、メモリ３０４は、実時間で実行される指示をキャッシュに格納するランダム・アクセス・メモリである。記憶装置３０３は、拡張コンピューティング・デバイス１０２に付加メモリ能力を与えるハードドライブであってもよい。記憶装置３０３は、拡張コンピューティング・デバイス１０２内のコンポーネントによる使用のためにデータ及び情報を記憶する。記憶装置３０３は、また、ＭＦＰ１０４からの印刷ジョブ、ファイル等を記憶してもよい。デバイスドライバ３０５は、ＭＦＰ１０４に装着された場合に拡張コンピューティング・デバイス１０２を制御することができる。プロセッサ３０２、記憶装置３０３、メモリ３０４、及びデバイスドライバ３０５はバス３９０により接続することができる。
【００４３】
バス３９０は、また、拡張コンピューティング・デバイス１０２の他のコンポーネントをプロセッサ３０２、記憶装置３０３、及びメモリ３０４に接続する。オペレーティングシステム３０６も提供されている。オペレーティングシステム３０６は、他のプログラムが拡張コンピューティング・デバイス１０２上で動作するようにソフトウェア・プラットフォームを提供するモバイル・オペレーティングシステムであることが好ましい。オペレーティングシステム３０６は、拡張コンピューティング・デバイス１０２で利用可能な機能と特性を決定することに関与する。例えば、オペレーティングシステム３０６は、拡張コンピューティング・システム３００が拡張コンピューティング・デバイス１０２内で動作することを可能にする。オペレーティングシステム３０６は、また、デバイスドライバ３０５と連携して、オペレーティングシステムの包括的な入力／出力指示を、拡張コンピューティング・デバイス１０２内のコンポーネントが理解できるメッセージに変換することができる。
【００４４】
拡張コンピューティング・デバイス１０２は電源３０８を含むことができる。実施形態によっては、電源３０８は、拡張コンピューティング・デバイス１０２が別の電源から電力を引き出す必要がないように、独立していてもよい。電源３０８は、ＭＦＰ１０４等の接続されたデバイスから電力を得ることが好ましい。電源３０８は、電力を引き出すために一以上のコネクタ３１０を使用してもよい。例えば、拡張コンピューティング・デバイス１０２がＵＳＢハブ若しくはポートに接続されている場合、コネクタ３１０は、ＭＦＰ１０４内の電力に接続するためにＵＳＢインターフェース内の２本の線であってもよい。
【００４５】
拡張コンピューティング・デバイス１０２は、また、接続されているＭＦＰ１０４に対してだけでなくネットワーク１０８を介してデータを送受してもよい。入力部３１２と出力部３１４は、無線接続部１２２を介して等、データをやりとりする能力を表す。入力部３１２と出力部３１４は、また、妥当な場合、拡張コンピューティング・デバイス１０２からＭＦＰ１０４までＵＳＢケーブルによる線を有してもよい。出力部３１４が複数の出力ポートを含むことができると同時に入力部３１２も複数の入力ポートを含むことができる。入力部３１２と出力部３１４は、ネットワーク１０８から受信したときのデータを提供するだけでなく拡張コンピューティング・システム３００からコマンドとデータを受信することもできる。
【００４６】
拡張コンピューティング・システム３００は、拡張コンピューティング・システム３００がネットワーク１０８との接続をサポートすることを可能とし、またＭＦＰ１０４とエンジン１０６を管理するための詳細に開示された機能を提供することを可能とするコンポーネントを含むことができる。これらのコンポーネントを図３に示す。
【００４７】
印刷ジョブマネージャー３２０は、ネットワーク１０８又はサポートされる接続方法のいずれかから印刷ジョブを受信するファームウェアコンポーネントを含む。印刷ジョブマネージャー３２０は、また、接続されたＭＦＰ１０４から、ネットワーク１０８から、その他のデバイスから、あるいはネットワーク、Ｗｉ‐Ｆｉ、ＵＳＢ、ブルートゥース（登録商標）、ＮＦＣ等のサポートされている接続方法のいずれかから印刷ジョブを受信することができる。印刷ジョブマネージャー３２０は、着信データを独自の印刷ジョブに整える。印刷ジョブマネージャー３２０は、ジョブスケジューリング、文書追跡の目的、及びジョブ管理目的のためにジョブ識別（ＩＤ）、タイムスタンプ、ユーザ／所有者ＩＤ、及び同様なデータによって各印刷ジョブを特定することができる。これらのタスクを完了した後、印刷ジョブマネージャー３２０は、ＭＦＰ１０４への印刷ジョブの送信予定を立て、ＲＩＰファームウェア３２２にその予定を伝える。
【００４８】
ＲＩＰファームウェア３２２が拡張コンピューティング・デバイス１０２の処理されたジョブを記憶若しくは管理した後、拡張コンピューティング・デバイス１０２は、前に処理されたジョブについてＭＦＰ１０４にダウンロードする依頼を受信することができる。拡張コンピューティング・デバイス１０２は、処理されたジョブあるいはジョブアカウント処理情報、アカウントのログイン、及び認証情報等の他のデータを取得することを印刷ジョブマネージャー３２０に依頼する。印刷ジョブマネージャー３２０の役割で分るように、印刷ジョブマネージャー３２０は、ネットワーク１０８から又はＭＦＰ１０４から印刷ジョブを受信することができる。
【００４９】
印刷ジョブマネージャー３２０は、また、拡張コンピューティング・デバイス１０２が、印刷ジョブ及び他の種類のジョブ又は依頼を、接続されたデバイスのアプリケーションから直接に、ネットワーク１０８から、又はその他の手段によって受信することを可能にする。この機能は、それらのジョブがＭＦＰ１０４をバイパスすることを可能とし、それによって、画像装置をより重要な又は緊急の印刷タスクに使用できるようにする。拡張コンピューティング・デバイス１０２に直接送信ことができる印刷ジョブの種類は、即座に印刷する必要がなく、むしろ後で拡張コンピューティング・デバイスにおいて印刷するために記憶される種類である。例えば、文書記憶ジョブは、印刷ジョブマネージャー３２０の助けを得て拡張コンピューティング・デバイス１０２内で処理してもよい。
【００５０】
接続されたＭＦＰ１０４が印刷ジョブを受信した場合、それらのジョブを拡張コンピューティング・デバイス１０２で処理するために拡張コンピューティング・デバイス１０２に伝えることは可能である。この機能は、どの種類の印刷ジョブ、スキャンされたジョブ、及びジョブアカウント処理又はユーザアカウント管理のような他の依頼を拡張コンピューティング・デバイス１０２でオフロードしたり、実行すなわち処理したりできるかをＭＦＰファームウェアが分かるように、ＭＦＰファームウェアのアップグレードが必要になるかもしれない。これらの実施形態は、下記で詳細に開示する。
【００５１】
ＲＩＰファームウェア３２２は、拡張コンピューティング・システム３００に機能性を提供する完全なラスター画像プロセッサであってもよい。ＲＩＰファームウェア３２２は、用紙上での実際のレンダリングを除いて、プリンタエンジンのＲＩＰファームウェアのすべての能力を提供する。レンダリングはＭＦＰ１０４のエンジン１０６によって行われてもよい。ＲＩＰファームウェア３２２は、以下のサブコンポーネント、ＰＤＬインタープリター３３０及びグラフィックス・レンダリング・コンポーネント３３２を含む。これらについては下記で詳細に開示する。
【００５２】
拡張コンピューティング・デバイス１０２に記憶される印刷ジョブ又はその他の種類のジョブを受信する能力と共に、完全なＲＩＰシステムが必要である。ＲＩＰファームウェア３２２は、拡張コンピューティング・デバイス１０２に送信された重要でない印刷ジョブの構文解析、解釈、及びレンダリングを可能にする。ＲＩＰファームウェア３２２は、また、印刷ジョブを記憶装置３０３、共用ネットワーク、又はクラウドストレージに保管して、オンデマンド印刷のためのデータを引き出すために、ＭＦＰ１０４に後で印刷ジョブを利用できるようにする。
【００５３】
ＲＩＰファームウェア３２２は、直接的な互換性に関して、ＭＦＰ１０４内のＲＩＰファームウェアと同じバージョンであってもよい。あるいは、ＲＩＰファームウェア３２２は、アップグレード可能な異なるバージョンであってもよい。ＲＩＰファームウェア３２２のバージョンが、接続されたＭＦＰ１０４のバージョンより古いということが起こる場合もある。ＭＦＰ１０４が用紙をレンダリングするために処理できる互換性のあるフォーマットで、ＲＩＰファームウェア３２２が画像を生成してレンダリングできる限り、ＲＩＰファームウェア３２２はなお拡張コンピューティング・デバイス１０２の有益なコンポーネントである。ＲＩＰファームウェア３２２は、オンデマンド印刷を対象とした緊急でない印刷ジョブをＭＦＰ１０４が処理するのを省くことを可能とする。
【００５４】
ＰＤＬインタープリター３３０は、印刷ジョブマネージャー３２０により管理される印刷ジョブの構文解析及び処理を実行する。拡張コンピューティング・システム３００及び拡張コンピューティング・デバイス１０２によりサポートされているページ記述言語は、既にインストールされ、エンジン１０６のファームウェアによりポートされているＰＤＬインタープリターのより新しいバージョンすなわちより最新のバージョンであるページ記述言語である。ＰＤＬインタープリター３３０は、また、エンジン１０６用にインストールされたものとは全く異なる、新しい、そしてサポートされていないＰＤＬインタープリターである場合がある。この後者のシナリオでは、ＰＤＬインタープリター３３０は、拡張コンピューティング・デバイス１０２により提供された新しい技術である可能性がある。ＰＤＬインタープリター３３０は、新しいＸＰＳインタープリター，新しいＰＤＦインタープリター，カスタマイズされた印刷マークアップ言語（ＰＰＭＬ）インタープリター、及び何らかの将来のＰＤＬプロセッサであるかもしれない。実施形態によっては、拡張コンピューティング・システム３００は、ＭＦＰ１０４及びネットワーク１０８のニーズに関連するＰＤＬインタープリターを求めていくつかのＰＤＬインタープリターにアクセスすることができてもよい。
【００５５】
グラフィックス・レンダリング・コンポーネント３３２は、ＲＩＰファームウェア３２２の第２のサブコンポーネントである。ＰＤＬインタープリター３３０は、ＰＤＬコマンドの翻訳のためグラフィックス・レンダリング・コンポーネント３３２と相互作用をしてグラフィックス・オーダーリストを生成する。グラフィックス・オーダーリストは、グラフィックス・オーダーのリストである。グラフィックス・オーダーリストは、アッセンブリ言語又はコンピュータの機械語と同様に下位のバイナリデータである。グラフィックス・オーダーは、エンジン１０６が実行し処理することが可能な実コンフィギュレーションであり、また描画コマンドである。グラフィックス・レンダリング・コンポーネント３３２は、文書に適したページの論理表現―ラスター画像又は何らかの他の符号化表現であるがーを生成することができる。実施形態によっては、グラフィックス・レンダリング・コンポーネント３３２は、グラフィックス・オーダーリストを実行、処理して、用紙にマーキングを付ける最後の処理のためにＭＦＰ１０４のエンジン１０６にダウンロードできるいくつかのデータのバンドを生成する。
【００５６】
グラフィックス・レンダリング・コンポーネント３３２からの出力は、エンジン１０６に対して少なくとも３つの方法でパッケージ化されてもよい。一つの方法は、ターゲットのＭＦＰ１０４又はエンジン１０６が処理できるように翻訳されたＰＤＬの印刷ジョブ（ＰＣＬ５、ＰＣＬＸＬ、ＸＰＳ、ＰＤＦ、ＪＰＧ、ＰＮＧ、ＴＩＦＦ等）であってもよい。第２の方法は、純粋にグラフィックス・オーダーから成るページの論理的バイナリ表現として出力データをパッケージ化することである。ＭＦＰ１０４にダウンロードされた場合、その表現は、特定用途向け集積回路（ＡＳＩＣ），ラスター・プロセシング・ユニット（ＲＰＵ），及びグラフィックス実行ユニット（ＧＥＵ）等のハードウェアの画像レンダリング・コンポーネントによって処理されてもよい。
【００５７】
もう一つの方法は、ＭＦＰ１０４に又はプリンタエンジン１０６で直接処理できる新しい種類の印刷ジョブの折返えされたラスター画像でもよい。ラスター画像は、ＰＤＬインタープリター３３０及びグラフィックス・レンダリング・コンポーネント３３２によって処理された後の着信印刷ジョブのバイナリデータ表現である。ＭＦＰ１０４がさらなるＲＩＰ処理を省略することを可能にする、エンジン１０６にダウンロードできる圧縮ラスター画像を生成することが可能である。ラスター画像は、印刷時、用紙へのマーキング付け又はインク付けのために直接処理されてもよい。この動作については下記で詳細に開示する。
【００５８】
実施形態によっては、ＲＩＰファームウェア３２２は、ＭＦＰ１０４内のＲＩＰファームウェアの複製かもしれない。そうである必要はない。ＲＩＰファームウェア３２２は、ＭＦＰ１０４のハードウェアの機種に依存しないより最新のファームウェアであってもよい。これは、拡張コンピューティング・デバイス１０２内のＲＩＰファームウェア３２２のアップグレード可能性に基づいて遂行でき、ＭＦＰのエンジン１０６のＲＩＰファームウェアをアップグレードすることより容易かつ安価に遂行できる。
【００５９】
拡張コンピューティング・システム３００は、また、拡張エンジン３２４を含む。拡張エンジン３２４は主要な拡張コンピューティング・システム３００の機能及び機能性のための管理メカニズムである。拡張エンジン３２４は、データに対応しまた依頼を処理するために、接続されたＭＦＰ１０４と通信する。拡張エンジン３２４は、また、ファームウェア・アプリケーション・システム・サービス３２６と共に管理、立ち上げ、及び調整のサポートをする。拡張エンジン３２４は、また、ネットワーク１０８を介してサーバ１１４又はクラウドストレージ１１６からの新しいバージョンで自身をアップグレードすることができる。拡張エンジン３２４は、また、許可されている場合、接続された画像装置のためのファームウェアのアップグレードをダウンロードしてインストールする。
【００６０】
拡張エンジン３２４は、印刷ジョブに関する少なくとも２種類のデータを受信する場合がある。これらの印刷ジョブは拡張コマンドの「印刷ジョブ」及びＰＤＬの印刷ジョブと呼ばれることがある。印刷ジョブは、それぞれが拡張コンピューティング・デバイス１０２に遂行させるものにおいて異なる。拡張コンピューティング・システム３００に特定の動作を実行するよう指示するものもあれば、ＭＦＰ１０４に指示を送信するだけのものもある。拡張エンジン３２４は、受信した印刷ジョブの種類を判定してそれに応じて動作する。各データの種類に関連付けられる機能については下記で詳細に開示する。
【００６１】
拡張コマンドの印刷ジョブは、管理者、コンピュータ、ネットワーク１０８に接続されたデバイス又はモバイルデバイスから受信することができる。これらのコマンドは、拡張エンジン３２４又はエンジン１０６に対して、アップグレード及び立ち上げ等の一定の動作を実行するよう拡張コンピューティング・デバイス１０２に要求する。拡張コンピューティング・システム３００は、動作を実行する。アップグレードコマンドは、拡張コンピューティング・システム３００にファームウェアのアップグレードを実行するよう指示し、またアップグレードパス等に関連する構文を持つことがある。パスのパラメータは任意であってもよく、またファームウェアのアップグレードパッケージに対するパス向けである。換言すると、「パス」は、システム１００におけるファームウェアのアップグレードパッケージの取得先を拡張コンピューティング・システム３００に指示する。「パス」パラメータがない場合は、拡張コンピューティング・システム３００は、サーバ１１４、相手先商標製品の製造会社（ＯＥＭ）のウェブサイト、又は安全なインターネット／クラウドストレージ１１６等の専用のローカルサーバからファームウェアのアップグレードパッケージを探す。スタンドアローンの拡張コンピューティング・デバイス１０２として、新しいツールは、ＭＦＰ１０４等の接続された画像装置のファームウェアのアップグレードを実行することができる。
【００６２】
拡張コンピューティング・システム３００に対する別のコマンドは、ファームウェア・アプリケーション・サービスを立ち上げることができる。このコマンドは、ａｐｐ＿ｓｅｒｖｉｃｅ＿ｎａｍｅという立ち上げの構文を持つことがある。パラメータ「ａｐｐ＿ｓｅｒｖｉｃｅ＿ｎａｍｅ」は、立ち上げるサービス・アプリケーションを決定することが求められる。拡張コンピューティング・デバイス１０２に対して開発されまたホストされるいくつかのファームウェア・アプリケーション・サービスがあることがある。ローンチコマンドの例としては、ローンチ・スキャナ・モバイルサービス・アプリケーション又はローンチ・文書変換サービス・アプリケーションであろう。
【００６３】
そのほかの拡張コマンドが拡張コンピューティング・システム３００向けに開発、統合、及び実行されてもよい。これらのコマンドは、拡張エンジン３２４に他のプリンタエンジン管理ルーチンを実行する、あるいは他のファームウェア・アプリケーション・サービスを立ち上げるよう指示してもよい。立ち上げられたファームウェア・アプリケーション・サービスは、スマートフォン、ラップトップ、タブレット、デスクトップ等の外部コンピューティング・デバイスにおいて、ＭＦＰ１０４が相互作用できるオフロードされたアプリケーションと接続して機能する。外部のファームウェア・アプリケーションは、外部の文書を処理するための黙示の機能を実行することができる。換言すると、モバイルアプリケーションは、拡張コンピューティング・デバイス１０２と協働して、接続されたＭＦＰ１０４のジョブをダウンロード又は処理するプリンタソフトウェアとして動作する。この処理については下記で詳細に開示する。
【００６４】
拡張コマンドはＰＤＬの印刷ジョブの同じチャネルを介して受信されるので、拡張エンジン３２４は、印刷ジョブを互いに識別する方法を持たなければならない。しかしながら、拡張コマンドは、他のあらゆるＰＤＬの印刷ジョブと同じように見えるように現在のＰＤＬの印刷ジョブの枠組み内で機能するようにパッケージ化されるべきである。従って、拡張コマンドは、メインの拡張エンジンコマンドを包み込むヘッダセクションとトレーラセクションを有してもよい。拡張エンジン３２４及び拡張コンピューティング・システム３００が適切に動作できるように、セクションは、データセグメントを特別な拡張コマンドの「印刷ジョブ」として特定するヘッダデータとトレーラデータを含む。
【００６５】
例えば、可能性がある拡張コマンドの「印刷ジョブ」は、「！ＥＸＴ！」でもよい。
コマンド［パラメータ］
！ＥＸＴ！
【００６６】
ヘッダデータは符号化された開始識別子である。トレーラデータは符号化された終了識別子である。この機能は、さらに強化及び再定義して他の符号化、暗号化、及びＸＭＬ又はＨＴＭＬフォーマティングの使用等のフォーマット標準を使用してもよい。ヘッダセクションとトレーラセクションの間に一以上の拡張コマンドを含めることも可能である。拡張エンジン３２４は、ヘッダデータの事前構文解析を行って、着信印刷ジョブデータがＰＤＬの印刷ジョブか拡張コマンドの印刷ジョブかどうかを特定してもよい。拡張コマンドの動作の例をいくつか挙げると、ファームウェアのアップグレード、モバイルスキャン及び印刷動作、及び文書変換であると言える。これらの例の処理については下記で詳細に開示する。
【００６７】
管理者は、ＭＦＰ１０４に導入するファームウェアのアップグレードを持っていてもよい。管理者は、アップグレードする、ＭＦＰ１０４に接続されている拡張コンピューティング・デバイス１０２に指示を送信してもよい。指示には、「アップグレード」であるコマンド及びファームウェアのアップグレードパッケージへのパスである値若しくはパラメータ等の関連データが含まれてもよい。指示は、また、必要以上のパラメータ無しで、単に「アップグレード」コマンドでもよい。拡張エンジン３２４は、次に、ファームウェアのアップグレードを問い合わせして、ネットワーク１０８の関連付けられているファイルサーバ１１４からダウンロード、ＯＥＭサーバからダウンロード、あるいはクラウドストレージ１１６内の場所からダウンロードする。
【００６８】
モバイルスキャンの例に関して、スキャンサポートを持たないプリンタ及び破損したスキャンハードウェアを有するＭＦＰが実行される場合がある。ユーザは、モバイル・スキャン・アプリケーションを使用してモバイルデバイスで元の文書をスキャンし、拡張コンピューティング・デバイス１０２のスキャン・アプリケーション・サービスに撮影したコピーをダウンロードすることができるであろう。次に、本開示の実施形態は、スキャンされた文書を保存又はプリントアウトする。
【００６９】
拡張エンジン３２４は、また、システム１００内のコンポーネントからＰＤＬの印刷ジョブを受信する。印刷ジョブは、予定されたとおりに、印刷ジョブマネージャー３２０から受信される。印刷ジョブの依頼が正規の印刷ジョブである場合、拡張コンピューティング・デバイス１０２は、いくつかの相違点を除いて、通常の印刷ジョブがＭＦＰ１０４で扱われるようにその印刷ジョブの依頼を扱う。拡張エンジン３２４は、ＲＩＰファームウェア３２２を介して拡張コンピューティング・デバイス１０２において局所的にＰＤＬの印刷ジョブを処理する、及びＭＦＰ１０４に中継して伝える、及びＭＦＰ１０４まで通過させる、のいずれであってもよい。
【００７０】
拡張コンピューティング・システム３００は、また、入力／出力及び通信レイヤ（以下において通信レイヤ）３２８を含み、それは、接続されたデバイス、すなわち、入力部及び出力部の両方の管理のためのインターフェース・レイヤであってもよい。これはデバイスドライバ３０５、オペレーティングシステム３０６、ＴＣＰ／ＩＰインターフェース、又は他の接続技術を使用してもよい。入力態様は、印刷ジョブの受け取りのため印刷ジョブマネージャー３２０と連携し、システム能力に関する問い合わせに対応し、及びファームウェア・アプリケーション・システム・サービス３２６と外部のモバイル・アプリケーション・クライアントとの間で調整し通信することによるネットワーク接続性に対応している。出力態様は、ＭＦＰ１０４又はエンジン１０６等の接続された印刷デバイス又は画像装置との連携に対応している。通信レイヤ３２８は、また、レンダリングされた又は通過させられた印刷ジョブを拡張コンピューティング・システム３００内で送信し及びダウンロードする。通信レイヤ３２８は、有線、無線、又は図３のコネクタ３１０として示される直接接続によってＭＦＰ１０４に接続されてもよい。
【００７１】
拡張コンピューティング・システム３００（「携帯型印刷コンピューティング・システム」とも呼ばれる）は、また、ファームウェア・アプリケーション・システム・サービス３２６を含む。オペレーティングシステム３０６、記憶装置３０３、メモリ３０４、デバイスドライバ３０５、プロセッサ３０２、及び入力部３１２及び出力部３１４によるネットワーク接続性を備える完全に機能的なコンピューティング・デバイスとして、ソフトウェアサービスは、拡張コンピューティング・デバイス１０２においてホストされ、機能し、動作することができる。ＭＦＰ１０４及びエンジン１０６の様々な重要でない処理はオフロードされてもよい。これらの処理は拡張コンピューティング・デバイス１０２においてシステムサービスとして転送され展開される。可能性のあるアプリケーションサービス中には、文書記憶、ユーザアカウント管理、ジョブアカウント処理の管理、ウェブサービス及び診断ツールもあってもよい。
【００７２】
文書記憶またはジョブ記憶されるものは、用紙又はその他の媒体に印刷されていないが、後の印刷のためハードドライブすなわちシステム・ストレージとしての記憶装置３０３に記憶される着信印刷ジョブがレンダリングされたものである。これらの種類の印刷ジョブは、以下の現行のワークフローによってＭＦＰのエンジン１０６において部分的に実行される。
１）ＰＤＬ解釈，
２）グラフィックス・オーダーの生成のためのグラフィックス・レンダリング・コンポーネント処理
３）ＡＳＩＣ又は他のハードウェアコンポーネント技術によるグラフィックス・オーダーの処理、及び
４）レンダリングされた画像のシステムの記憶装置３０３への記憶
【００７３】
一旦、事前レンダリングされた印刷ジョブが拡張コンピューティング・デバイス１０２に記憶されると、データをオンデマンド印刷のために引き出し又は取得することができる。外部で記憶された、事前レンダリングされた印刷ジョブは、どの印刷ジョブを印刷、削除、改名等をするか選択するために、ＭＦＰ１０４用の操作パネル２０８で閲覧することができる。
【００７４】
実施形態によっては、グラフィックス・オーダーはＭＦＰ１０４又はエンジン１０６において処理することができる。エンジン１０６において実行する必要がある上記の唯一のステップは３番目のステップである。なぜならば、ＭＦＰ１０４に存在するＡＳＩＣのようなハードウェアコンポーネントが必要だからである。残りのステップは、拡張コンピューティング・デバイス１０２で実行することができる。他の３つのステップをオフロードし、ＭＦＰ１０４の外部で実行することにより節約される時間により、用紙若しくはその他の媒体に印刷される実際の印刷ジョブを処理するために、ＭＦＰ１０４がより多くの時間と利用可能性を得ることが可能となる。
【００７５】
他の実施形態では、グラフィックス・オーダーは、ソフトウエア・エミュレーションで処理することができる。ＭＦＰ１０４内でハードウェアコンポーネントのソフトウエア・エミュレーションを実行することは可能である。ＡＳＩＣのようなハードウェアコンポーネントは、開発過程においてソフトウェア形式で始まり、後になって集積チップすなわちＡＳＩＣに移植されプログラムされた。従って、すべてではないにしても、ＡＳＩＣの大半の機能はソフトウェアの実行と同意義である。これはソフトウエア・グラフィックス・実行ユニット（ＧＥＵ）と呼ばれることがある。これは、ラスター化された画像を作成することができるように上記のステップ２からグラフィックス・オーダーを処理するものである。これらの実施形態においては、４つのステップのすべてが拡張コンピューティング・デバイス１０２で実行することができる。ＭＦＰ１０４又はエンジン１０６での処理は省略することができる。この機能により、実際の印刷ジョブを処理するために、ＭＦＰ１０４又はエンジン１０６がより多くのリソースと時間を利用できるようにすることが可能となる。
【００７６】
ユーザアカウント管理によって、ユーザアカウント及びその他のユーザデータはＭＦＰ１０４に局所的に存在する必要はない。このデータは画像処理のために使用されるハードウェアコンポーネントを必要としない。共通のユーザアカウント管理システムは拡張コンピューティング・デバイス１０２にオフロードすることができ、それぞれの画像装置に接続された場合あるいは遠隔で多くの画像装置からアクセスされる場合に、いくつかの画像装置間で共有することができる。
【００７７】
異なる管理システムはジョブアカウント処理である。ジョブアカウント処理もまたＭＦＰ１０４に局所的に存在する必要はない。ジョブアカウント処理は、画像処理に対するハードウェアコンポーネントは必要ない。ジョブアカウント処理の管理システムはオフロードされて拡張コンピューティング・デバイス１０２でホストされてもよい。ウェブサービスもＭＦＰ１０４からオフロードされてもよい。コンフィギュレーション、用紙、及びユーザ設定の管理は、通常、ＭＦＰ１０４のウェブサービスとして実施される。これらのサービスはＭＦＰ１０４にある必要はなく、拡張コンピューティング・デバイス１０２でホストされてもよい。
【００７８】
ＭＦＰ１０４のデバッグ、モニタリング、又はメンテナンス用の診断ツールもオフロードして拡張コンピューティング・デバイス１０２で実行されてもよい。こうすることによって、ＭＦＰ１０４内でコンピュータの能力が消費されない。さらに、診断ツールは、ＭＦＰ１０４のリソースに関連付けることなくアップグレードすることが可能である。
【００７９】
実施形態によっては、画像装置と互換性があるラスターフォーマット又はその他のフォーマットでレンダリングされた文書の画像を生成する新しいアプリケーションとサービスを開発することは可能である。これが実現するためには、既存のＭＦＰファームウェアと拡張コンピューティング・デバイス１０２間の通信と調整のための方法があればよい。その方法は２つのデバイス間での指示の受け渡し及び取り扱いに関与して文書データ及びレンダリングされた文書の画像の転送を容易にする。
【００８０】
拡張コンピューティング・デバイス１０２は、管理者がアクセスして、拡張コンピューティング・デバイスで利用可能でかつインストールされた様々な能力を起動、再開、又は実行可能なウェブサービス又はアプリケーションを有してもよい。これにより、管理者は、ＭＦＰの機能及びインストールされているファームウェア・アプリケーション・システム・サービス３２６だけでなく、遠隔で拡張コンピューティング・デバイス１０２を管理することが可能になる。
【００８１】
サーバのようなシステム・サービス・コンポーネントは、拡張コンピューティング・デバイス１０２に統合されて拡張エンジン３２４を介して管理される。拡張エンジン３２４とインターフェース接続することにより、図４に示すように、ファームウェア・アプリケーション・システム・サービス３２６は、拡張コンピューティング・デバイス１０２において局所的に動作することができる。ファームウェア・アプリケーション・システム・サービス３２６のアプリケーションは、上記で開示したように多様な能力を持つことができる。アプリケーション・インターフェース（ＡＰＩ）・サービスは、ネットワーク１０８を介して接続されるコンポーネント又はクライアント・アプリケーション４０２等の、拡張コンピューティング・デバイス１０２の外部にいるクライアントに提供される。クライアント・アプリケーション４０２は、モバイルデバイス１１０又はコンピュータ１１２に存在してもよい。上記で述べたように、クライアント・アプリケーション４０２は、機能が外部のアプリケーションによって提供されてＭＦＰ１０４のエンジンを使用して動作を実行するので、拡張エンジン３２４を介するエンジン１０６に対する拡張として動作してもよい。
【００８２】
ＭＦＰ１０４は、拡張コンピューティング・デバイス１０２から出力データを受信する。ＭＦＰ１０４とエンジン１０６は、他の着信印刷ジョブ又はネットワーク１０８からの通信のようにそのデータを処理する。実施形態によっては、拡張コンピューティング・デバイス１０２が新しい機能と能力を既存のデバイスに提供するのでＭＦＰ１０４又はエンジン１０６のハードウェア及びファームウェアコンポーネントの変更はアップグレードのために必要ない。
【００８３】
ＭＦＰ１０４と拡張コンピューティング・システム３００との間の相互作用の性能及び処理効率を向上し改良するために、開示された技術で明示された技術を統合することは可能である。例えば、ＭＦＰ１０４のエンジン１０６は接続された拡張コンピューティング・デバイス１０２と通信するアップグレードされたファームウェアを有してもよい。拡張コンピューティング・デバイス１０２が処理するすべての着信印刷ジョブは、アップグレードされた相互作用及び通信パスと互換性がある一定の方法でフォーマットすることができる。印刷ジョブも、ＭＦＰ１０４で受信されたとき、より効率的に処理される。
【００８４】
図５は、本開示の実施形態に係るＭＦＰ１０４に接続された場合に拡張コンピューティング・デバイス１０２を設定するためのフローチャート５００を示す。拡張コンピューティング・デバイス１０２が、ＭＦＰ１０４等の画像装置に接続される場合はいつでも、自身の機能及び能力を決定しイネーブルするために自身を設定する。拡張エンジン３２４は、接続された画像装置に関するデータを使用してどのように機能するかを決定することができる。フローチャート５００は設定を完了するために使用されるステップを示す。
【００８５】
各ＭＦＰ１０４には事前にインストールされたエンジンファームウェアとその他のファームウェアが搭載されている。ファームウェアは、ＭＦＰ１０４がオンラインにされる時点で特定のバージョンであってもよい。ファームウェアコンポーネントは、ＭＦＰ１０４が出荷された後でアップグレードすることができる。さらに、すべてのＭＦＰとデバイスは古くなるすなわち陳腐化する。ファームウェアの将来のバージョンは、機能、バグ修正、拡張機能等を含む場合がある。新しいアップグレードは、ＭＦＰ１０４の既存のファームウェアと後方互換性はないかもしれない。アップグレードは、ＭＦＰの製造業者に知られており、また工場又はその他の場所でカタログが作成されているかもしれない。ファームウェアのバージョンマッピングは、例えば、工場で提供され、その後サーバ及びインターネット／クラウドに含まれるかもしれない。マッピングは、データベースにあって、ＳＱＬ接続及びその他の方法を用いてクエリーを通して共有できる。換言すると、ファームウェアのアップグレード及び関連情報は、拡張コンピューティング・デバイス１０２によって、ネットワーク１０８の記憶場所でアクセスすることができる。あるいは、拡張コンピューティング・デバイス１０２を設定するときに、リソースファイルとして及び拡張コンピューティング・デバイス１０２のソフトウェアコンポーネントと静的にリンクされるときのいずれかのとき、このデータをパッケージ化して含めることは可能である。
【００８６】
ステップ５０２では、エンジンの能力の問い合わせを実行する。拡張コンピューティング・システム３００、より具体的には、拡張エンジン３２４は、どんなＰＤＬｓ及び技術がＭＦＰ１０４及びエンジン１０６に対してイネーブルされているか判定するために、サーバ１１４等のサーバにファームウェアバージョンのマッピング及び関連するデータを問い合わせることができる。拡張エンジン３２４は、また、どんな制限、制約、課題等がＭＦＰ１０４に対して適用されるか問い合わせることができる。例えば、拡張エンジン３２４は、ファームウェア・アップグレードの必要性を判定し、及びどんなＰＤＬｓがエンジン１０６でサポートされているかを判定するために、エンジンのファームウェアのバージョン、能力、及びその他の関連情報を問い合わせする。
【００８７】
実施形態によっては、データは静的データとして拡張コンピューティング・デバイス１０２に含まれていてもよい。静的データは、メモリ３０４に記憶されている個別のリソース・ファイルでもよく、あるいは拡張コンピューティング・システム３００に静的にリンクすることができる。拡張エンジン３２４は、拡張コンピューティング・デバイス１０２に局所的にすでに含まれているものよりも新しいデータについてサーバ１１４にのみ問い合わせることができる。換言すると、拡張エンジン３２４は、ＭＦＰ１０４に関するデータもアップグレードする必要があるかどうか判定できる。
【００８８】
ステップ５０４では、ＭＦＰ１０４のエンジン１０６に関するエンジンのパラメータを判定する。拡張エンジン３２４は、エンジンの制約、制限、機能、及びその他の能力に対する問い合わせに関するデータを受信し処理する。このデータにより、拡張エンジン３２４は、接続されるＭＦＰ１０４の能力、又は能力不足を効果的に「知る」。拡張エンジン３２４は、この知識を利用して、ＭＦＰ１０４に対して新しい機能、性能向上、及びアップグレードされた能力及び技術を提供しイネーブルする。
【００８９】
このステップは、また、規則と能力の明確化と呼ぶことができる。拡張エンジン３２４は、少なくとも３つの規則と能力を明確にする。これらは、ステップ５０６乃至５１０に示すことができる。ステップ５０６ではＰＤＬのパススルーサポートを明確にする。ＰＤＬのパススルーサポートは、ＭＦＰ１０４に有効であることが分かっており、また重要な問題がないＰＤＬｓに対してイネーブルされる。印刷ジョブは、通常通り、拡張コンピューティング・システム３００を通過し、更にＭＦＰ１０４への出力のために直接、通信レイヤ３２８に向かってもよい。より新しいファームウェアバージョン又はアップグレードは検知されない。
【００９０】
ファームウェア又はハードウェアのいずれかにおいて、ローカルＰＤＬに重要な問題があることが分かっている場合、拡張エンジン３２４は、着信印刷ジョブを欠陥があるＰＤＬと共に遮断してもよい。拡張エンジン３２４は、ＲＩＰファームウェア３２２を用いて、拡張コンピューティング・システム３００において局所的に印刷ジョブを処理する。拡張エンジン３２４は、次に、処理のためＭＦＰ１０４に印刷ジョブを送信する。ＭＦＰ１０４がローカルＰＤＬの適切なバージョンを含んでいるので、ＰＤＬパススルーのサポートはイネーブルされているが、拡張エンジン３２４は、恐らくＡＳＩＣ、ハーフトーン、ハードドライブ、又はＲＯＭメモリの破損のためにローカルＰＤＬが破損していると判定し、この遮断モードを設定する。拡張エンジン３２４は、ＭＦＰ１０４からローカルＰＤＬに関する情報を受信することができる。
【００９１】
ステップ５０８では、拡張エンジン３２４がＰＤＬの遮断モードを明確化する。ＰＤＬ遮断モードは、上記で明確にされたものと同様である。ＰＤＬ向けの印刷ジョブは遮断されて拡張コンピューティング・システム３００によって処理される。印刷ジョブはＭＦＰ１０４にパススルーされない。ＭＦＰ１０４にインストールされたものよりもより良い新しいバージョンのＰＤＬが印刷ジョブ処理に利用可能な場合、拡張エンジン３２４はＰＤＬと共に印刷ジョブを遮断する。印刷ジョブは、拡張コンピューティング・デバイス１０２で局所的に処理される。処理が完了すると、印刷ジョブはエンジン１０６に出力される。
【００９２】
ステップ５１０ではスピードを最適化する。エンジン１０６のレンダリング能力が判定できた場合、拡張エンジン３２４は、エンジン１０６によってより効率的に処理される形式に、着信印刷ジョブを生成、翻訳、又は変換できるようにしてもよい。例えば、拡張エンジン３２４が、ＭＦＰ１０４が、ＭＦＰの特定用途向け集積回路（ＡＳＩＣ）において、ある圧縮及び解凍アルゴリズムのバージョン２．３を含むと判定した場合、拡張エンジン３２４は、拡張コンピューティング・システム３００のＲＩＰファームウェア３２２にそのようなバージョンについて通知する。ＲＩＰファームウェア３２２は、当該着信印刷ジョブをパススルーモードを経ることなく翻訳、変換してＭＦＰ１０４のＡＳＩＣの既知の圧縮及び解凍アルゴリズムのバージョン２．３に準拠するフォーマットでページのラスター画像表現を生成する。
【００９３】
他の規則は、拡張コンピューティング・デバイス１０２の処理能力及びアップグレードされた機能を利用するために、イネーブル若しくはディスエーブルされてもよい。これらの規則の例としては、制限されたユーザのアクセスを明確化したり、イネーブルしたりする場合がある。ユーザによってはＭＦＰ１０４を使用できない場合があり、これらの規則は時間が経つにつれて変わるかもしれない。拡張コンピューティング・デバイス１０２は、拡張エンジン３２４を用いてこれらの規則を施行することができる。別の例としては、文書の記憶の許可をイネーブルする場合がある。規則には、また、ＭＦＰ１０４に対してカラー若しくは白黒印刷アクセスを明確化し、割り当てることが含まれてもよい。換言すると、ＭＦＰ１０４にアクセスできるもの及び人に適用される規則は、本開示の実施形態に係るデバイス１０２を用いてイネーブルすることができる。
【００９４】
ステップ５１２では、機能をイネーブルする。一旦、拡張コンピューティング・デバイス１０２が構成され、規則が明確化されると、印刷ジョブが受信されるとき、拡張コンピューティング・デバイス１０２は、規則を適用し、実行する。拡張エンジン３２４は、それに応じて印刷ジョブを処理する。デバイス１０２は、また、管理者から、ファームウェア・アップグレードの催促等のコマンドを受信するかもしれない。この場合、ファームウェア・アップグレードは拡張コンピューティング・デバイス１０２で受信してもよい。これにより、拡張エンジン３２４に、ローカルＰＤＬをパススルーパラメータから遮断モードパラメータに移行させてもよい。
【００９５】
図６は、本開示の実施形態に係る拡張コンピューティング・デバイス１０２を用いて印刷ジョブ又は拡張コマンドを処理するためのフローチャート６００を示す。フローチャート６００は、拡張コンピューティング・デバイス１０２がシステム１００内の他のデバイスからデータを受信した場合に起こることを示す。実施形態によっては、ネットワーク１０８を介して接続された外部のデバイスは、文書の印刷又はデバイス１０２への処理の実行の要求等、何らかの動作を実行してもらうためにデータを送信する。従って、ステップ６０２では、外部の、遠隔の、又は接続されたデバイスからの「印刷ジョブ」あるいはアプリケーションを受信する。上記で述べたように、拡張コンピューティング・デバイス１０２は、プリンタ又はＭＦＰ１０４のように、印刷ジョブ又は動作に対する宛先として選択され得る。「印刷ジョブ」という用語を使用しているが、これは拡張コマンド及び実際のＰＤＬの印刷ジョブを指す。
【００９６】
ステップ６０４では、印刷ジョブマネージャー３２０を用いて印刷ジョブの予定を立てる。印刷ジョブマネージャー３２０は、印刷ジョブの依頼を受信し、それに応じて予定を立てる。これは、すべての着信依頼がそのように予定が立てられるので「印刷ジョブ」として取り扱われるひとつの理由である。ジョブは順序正しく処理される。例えば、拡張コマンドは、通常の印刷ジョブよりも優先的な取り扱いを与えられないかもしれない。ステップ６０６では、処理のために予定が立てられた場合、拡張エンジン３２４は印刷ジョブを受信する。拡張エンジン３２４は、印刷ジョブを分析して、拡張コンピューティング・デバイス１０２での取り扱い方法を決定する。
【００９７】
ステップ６０８では、印刷ジョブのヘッダを分析する。上記で述べたように、印刷ジョブは拡張コマンドとして印刷ジョブを特定する特定のヘッダを含む場合がある。そのヘッダのデータは、１６進表記で「！ＥＸＴ！」等の符号化された開始識別子を含む。これは、印刷ジョブが拡張コンピューティング・システム３００に対する拡張コマンドを実際に含むことを拡張エンジン３２４にアラートを出すものである。ヘッダが判定された後、ステップ６１０では、拡張エンジン３２４を用いて印刷ジョブが拡張コマンドを含むかどうかを判定する。実施形態によっては、印刷ジョブは複数の拡張コマンドを含む場合がある。
【００９８】
ステップ６１０が「ＹＥＳ」である場合、次に、拡張エンジン３２４は、拡張コマンドとして印刷ジョブを処理する。拡張エンジン３２４は、拡張コンピューティング・システム３００内のコンポーネントに、コマンドで指定された機能を実行してあるいは拡張コンピューティング・システム３００内のアプリケーションを立ち上げるよう仕事を課してタスクを遂行する。
【００９９】
ステップ６１０で「ＮＯ」である場合、次に、拡張エンジン３２４は、印刷ジョブを通常のＰＤＬの印刷ジョブとして処理する。拡張エンジン３２４は、ＭＦＰ１０４のエンジン１０６ですでにサポートされているＰＣＬＸＬ又はＰＤＦインタープリターのバージョンを判定することができる。この情報により、拡張エンジン３２４は、着信ＰＣＬＸＬ及びＰＤＦ印刷ジョブが通過して、ＭＦＰ１０４によって直接処理されることができるようにしてもよい。何かの理由で、エンジン１０６にインストールされたバージョンがファームウェアのアップグレードによって修正できない既知のバグがある、あるいはエンジン１０６によるサポートに関して何らかの不足がある場合、本開示の実施形態は、事前にレンダリングし、互換性のあるデータのみをＭＦＰ１０４にダウンロードすることによって、拡張コンピューティング・デバイス１０２において着信印刷ジョブを処理することができる。本開示の実施形態は、また、後で使用するために、文書を記憶することもできる。従って、ステップ６１０において印刷ジョブと特定された着信印刷ジョブは、エンジン１０６に直接送信するあるいは拡張コンピューティング・デバイス１０２で処理されるかいずれかでステップ６１４で処理することができる。さらに、遮断モードがイネーブルされている場合、上記で述べたように、次に、印刷ジョブは遮断されて拡張コンピューティング・デバイス１０２によって記憶される。
【０１００】
ステップ６１６では、妥当な場合、ステップ６１２又は６１４の結果をＭＦＰ１０４へ送信する。結果は、拡張コマンド又はＰＤＬの印刷ジョブのいずれかから拡張コンピューティング・システム３００の動作によって生成されたデータであってもよい。結果は、拡張コンピューティング・デバイス１０２の外部デバイスからの着信依頼との相互作用に起因して、ＭＦＰ１０４に提供されるデータである。データは、ＭＦＰ１０４に配置されるアップグレードされたファームウェア又は印刷のため処理された文書であってもよい。実施形態によっては、データはエンジン１０６又はＭＦＰ１０４によって使用可能なフォーマットである。結果は、ＭＦＰ１０４と通信する通信レイヤ３２８から送信される。
【０１０１】
図７は、本開示の実施形態に係るＭＦＰ１０４にある文書又はジョブ・ストレージに対する印刷ジョブを処理するためのフローチャート７００を示す。上記したように、フローチャート７００は、ＭＦＰ１０４で受信されたときの印刷ジョブ又は他の動作を処理するための工程を示す。実施形態によっては、印刷ジョブは拡張コンピューティング・デバイス１０２で受信され、次に、拡張エンジン３２４によって適用される規則に従ってＭＦＰ１０４まで通過させられ、拡張コンピューティング・システム３００を用いて処理される一定の印刷ジョブを遮断する。プリンタドライバは、文書記憶パラメータによって印刷ジョブを特定する。上記の例を用いると、拡張コマンドは、ヘッダにおいて見出されて、印刷ジョブが拡張コンピューティング・デバイスに記憶されるべきであることをＭＦＰ１０４又は拡張エンジン３２４にアラートを出すことができる。プリンタドライバは、通常の印刷向けか又はジョブ・ストレージ向けかという印刷ジョブに対する種類を追加してもよい。プリンタドライバは、現行の通常の方法でこのことを遂行することができる。
【０１０２】
また、プリンタドライバが、拡張コンピューティング・デバイス１０２向けの印刷ジョブとして、印刷ジョブを特定する必要があるかもしれない。これらの例では、プリンタドライバは、印刷ジョブが拡張コンピューティング・デバイス１０２で処理されてもよいことを知っている場合、ＰＪＬリレーコマンドを含む。この動作は、拡張コンピューティング・デバイス１０２が、印刷ジョブを処理するためにアップグレードされたファームウェアをホストする場合に実行されてもよい。拡張コンピューティング・デバイス１０２は、また、接続されたＭＦＰ１０４と異なるプリンタのために印刷ジョブを受信して処理できるので、第３者のプリンタに適用可能なファームウェアを含むことができる。
【０１０３】
ステップ７０２では、印刷ジョブをジョブ・ストレージ向けの印刷ジョブとして特定する。実施形態によっては、このステップは、印刷ジョブをＭＦＰ１０４に送信するデバイスのプリンタドライバで行われてもよい。印刷ジョブは、ジョブ・ストレージ又は文書ストレージ向けにマークされるか、あるいはＰＪＬリレーコマンドを含む。ステップ７０４では、印刷ジョブが拡張コンピューティング・デバイス１０２に転送されるべきであることをＭＦＰ１０４が検知する。ＭＦＰのファームウェアは、ジョブの種類（通常の印刷かジョブ／文書ストレージか）またはＰＪＬリレーコマンドの存在を検知する。ＭＦＰのファームウェアは、ヘッダを点検することによってそのような情報が存在するかどうかを判定することができる。
【０１０４】
ステップ７０６では、印刷ジョブが、ジョブ又は文書ストレージタイプの印刷ジョブかどうかを判定する。「ＹＥＳ」の場合、次に、ステップ７０８で、印刷ジョブを拡張コンピューティング・デバイス１０２に転送する。拡張コンピューティング・デバイス１０２によるその後の動作を図８に開示する。ステップ７０６で「ＮＯ」の場合、次に、ステップ７１０で、ＰＪＬリレーコマンド又はその他の適用可能なコマンドが印刷ジョブに見出されるかどうか判定する。「ＹＥＳ」の場合、次に、ステップ７０８で、上記で述べたように実行される。ステップ７１０で「ＮＯ」の場合、次に、ステップ７１２で、関連付けられたＭＦＰのファームウェア及びエンジン１０６を用いてＭＦＰ１０４の印刷ジョブが印刷される。
【０１０５】
図８は、本開示の実施形態に係る拡張コンピューティング・デバイス１０２で文書又はジョブ・ストレージに対する印刷ジョブを処理するためのフローチャート８００を示す。フローチャート８００は、フローチャート７００と連結して進行する。一旦、ステップ７０８が実行されると、次に、フローチャート８００のステップが実行される。拡張コンピューティング・デバイス１０２はＭＦＰ１０４から転送されたジョブを受信する。拡張コンピューティング・デバイス１０２は、ジョブを処理し、レンダリングされた画像を局所的に、例えば、記憶装置３０３に記憶する。拡張コンピューティング・デバイス１０２は、ＡＰＩ又はレンダリングされた画像をプログラムで転送できるファイル・サーバ・アプリケーションを有してもよい。
【０１０６】
ステップ８０２では、ステップ７０６又は７１０で判定がされた後、ＭＦＰ１０４から中継された印刷ジョブを受信する。ステップ８０４では、拡張コンピューティング・デバイス１０２で印刷ジョブを処理する。拡張コンピューティング・システム３００のコンポーネントは、上記で述べたように、ＲＩＰファームウェア３２２を用いて印刷ジョブを処理することができる。換言すると、印刷ジョブは、あたかもＭＦＰ１０４で処理されているかのように処理される。この機能はＭＦＰ１０４及びそれに関連付けられたファームウェアが緊急でない印刷ジョブの処理をする必要性を軽減する。
【０１０７】
ステップ８０６では、レンダリングされた画像を拡張コンピューティング・デバイス１０２内に記憶する。実施形態によっては、レンダリングされた画像は記憶装置３０３に記憶される。メモリ３０４とは異なり、記憶装置３０３は、内臓ハードドライブ、外部ハードドライブ、クラウド、又はネットワークストレージ等であってもよい。メモリ３０４を使用しないことによって、拡張コンピューティング・デバイス１０２の処理能力は低下しない。ステップ８０８では、印刷ジョブによって指示されたようにその他の動作を実行する。そのような動作には、記憶が完了したことの確認をプリンタドライバに送信することが含まれてもよい。その他の動作には、文書の編集又は変更のためにＭＦＰ１０４に文書の画像を表示することが含まれてもよく、その文書は新しい文書として保存されてもよく、及び元の文書に取って代わってもよい。
【０１０８】
図９は、本開示の実施形態に係るＭＦＰ１０４においてオンデマンド印刷若しくは文書取得を実行するためのフローチャート９００を示す。ＭＦＰ１０４は、拡張コンピューティング・デバイス１０２からデータを引き出すことができる。このデータは、フローチャート８００で処理済の記憶されたジョブである場合がある。ユーザがオンデマンド印刷動作又はプル印刷動作を実行する必要がある場合、次に、ＭＦＰ１０４は、文書ストレージに関するデータ等のデータが必要になる場合がある。ＭＦＰ１０４は、拡張コンピューティング・デバイス１０２にデータを引き出すあるいはダウンロードする指示を送信する。
【０１０９】
ステップ９０２では、ユーザがジョブ又は文書ストレージのメニューを選択する。この動作はＭＦＰ１０４で実行されてもよいが、さらにネットワーク１０８経由で接続されたデバイス等の接続されたデバイスで実行されてもよい。ステップ９０４では、記憶されたジョブ又は文書を拡張コンピューティング・デバイス１０２に問い合わせる。フローチャート９００では、以下に説明するように、フローチャート１０００と相互作用するステップＡを実行することによって問い合わせを実行する。ＭＦＰ１０４は拡張コンピューティング・デバイス１０２からの応答を待つ。ステップＢでは、問い合わせの結果が拡張コンピューティング・デバイス１０２からフローチャート９００に返送される。
【０１１０】
ステップ９０６では、選択されたジョブのリストをＭＦＰ１０４に表示する。例えば、選択されたジョブのリストは操作パネル２０８の表示部２１６に表示されてもよい。ユーザは入力部２１７（「入力パネル」とも呼ばれる）を用いてリストと相互作用することができる。ステップ９０８では、記憶された文書若しくはＭＦＰ１０４を用いて印刷する文書を選択する。入力部２１７及び表示部２１６を用いて、ユーザは印刷する文書を示す。
【０１１１】
ステップ９１０では、記憶された文書又は文書を拡張コンピューティング・デバイス１０２から取得する。取得された文書はＭＦＰ１０４にダウンロードされる。ステップＣでは選択された文書を取得するためにフローチャート１０００と相互作用する。文書は拡張コンピューティング・デバイス１０２に記憶されており、フローチャート１０００とも相互作用するステップＤを用いてＭＦＰ１０４に提供される。実施形態によっては、取得された文書は、ＭＦＰのファームウェア処理を要することなくエンジン１０６に直接送信できる、すでにラスター化された画像である。この機能はＭＦＰ１０４に対する処理要求を軽減する。ステップ９１２では、ＭＦＰのエンジン１０６を用いて文書を印刷する。
【０１１２】
図１０は、本開示の実施形態に係る拡張コンピューティング・デバイス１０２を用いてオンデマンド印刷若しくは文書取得を実行するためのフローチャート１０００を示す。フローチャート１０００は、ＭＦＰ１０４がコマンド及び依頼を、応じて動作する拡張コンピューティング・デバイス１０２に送信すると、ステップＡ及びＣを用いてフローチャート９００と相互作用する。拡張コンピューティング・デバイス１０２はＭＦＰ１０４にレンダリングされた画像を返送する。従って、拡張コンピューティング・デバイス１０２が、ＭＦＰ１０４から「プル」又は同様の依頼を受信した場合、記憶装置３０３から依頼された文書画像を転送若しくは返送する。
【０１１３】
ステップ１００２では、ＭＦＰ１０４から拡張コンピューティング・デバイス１０２にある文書に対する依頼を受信する。あるいは、依頼はＭＦＰのエンジン１０６から受信してもよい。ステップ１００４では、受信された依頼の種類を判定する。フローチャート１０００では２つの種類の依頼が開示されているが、記憶された文書をＭＦＰ１０４の表示部２１６内に表示すること及びネットワーク１０８を介して別のデバイスに文書を転送すること等の他の依頼を受信してもよい。
【０１１４】
依頼がステップＡからである場合、その依頼は拡張コンピューティング・デバイス１０２の記憶されたジョブに対する問い合わせに関連する。ステップ１００６では、記憶装置３０３へアクセスする。アクセスは、また、外部デバイス又はクラウド／ネットワークストレージに対して実行されてもよい。拡張コンピューティング・デバイス１０２は、ネットワーク１０８を介して他のデバイスに依頼を送信し、デバイスに記憶されているジョブを取得してもよい。ステップ１００８では、ユーザのために記憶されたジョブのリストファイルを作成する。ステップ１０１０では、記憶されたジョブのリストファイルをＭＦＰ１０４に返送する。ステップＢでは、フローチャート９００と相互作用して、記憶されたジョブ（若しくは文書）のリストをステップ９０４に提供する。
【０１１５】
依頼がステップＣからである場合、その依頼は拡張コンピューティング・デバイス１０２の一以上の記録された文書に対する取得に関連する。ステップ１０１２では、記憶装置３０３にアクセスする。アクセスは、また、外部のデバイス又はクラウド／ネットワークのストレージに対して実行されてもよい。拡張コンピューティング・デバイス１０２は、ネットワーク１０８を介して他のデバイスに依頼を送信して、デバイスに記憶され、依頼された文書を取得することができる。ステップ１０１４では、記憶され、選択された文書を記憶装置３０３又は該当するストレージから取得する。ステップ１０１６では、ラスター化され、記憶された画像をＭＦＰ１０４へ返送する。ステップＤでは、フローチャート９００と相互作用して、印刷のためラスター化された画像をＭＦＰ１０４に提供する。
【０１１６】
当業者には理解されるように、本発明はシステム、方法、及びコンピュータ・プログラム製品として具現化することができる。その結果、本発明は、全くのハードウェア実施形態、全くのソフトウェア実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、及び、本明細書において、すべて、包括的に「回路」、「モジュール」、又は「システム」と呼ばれることがある、ソフトウェア態様とハードウェア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明は、媒体に具現化されたコンピュータ使用可能なプログラムコードを有する表現のうち、あらゆる物理的な媒体において具現化されたコンピュータ・プログラム製品という形を取ることができる。
【０１１７】
一以上のコンピュータ使用可能又はコンピュータ読み込み可能な媒体の任意の組み合わせを使用することができる。コンピュータ使用可能又はコンピュータ読み込み可能な媒体は、例えばこれに限定されないが、電子的、磁気的、光学的、電磁気的、赤外線式、又は半導体のシステム、装置、機器、及び伝播媒体であってもよい。コンピュータ読み込み可能な媒体のより具体的な例（非網羅的リスト）には、以下があげられる。すなわち、１本以上の線を有する電気的接続、携帯型コンピュータディスク、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ），読み出し専用メモリ（ＲＯＭ），消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光学的記憶装置、インターネット若しくはイントラネットをサポートする伝送媒体等の伝送媒体、及び磁気記憶装置である。コンピュータ使用可能又はコンピュータ読み込み可能な媒体は用紙又はプログラムが印刷されるその他の適切な媒体でもよいことに留意されたい。というのは、プログラムは、例えば、用紙又はその他の媒体の光学的走査によって電子的に取り込まれ、次に、コンパイルされ、解釈され、あるいはそうでなければ、必要に応じて適切な方法で処理され、次にコンピュータのメモリに記憶されるからである。
【０１１８】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のオブジェクト指向プログラミング言語及び「Ｃ」プログラミング言語又は同様のプログラミング言語等の従来の手続き型プログラミング言語を含む一以上のプログラミング言語の任意の組み合わせで書くことができる。プログラムコードは、スタンドアローンのソフトウェアパッケージとして、ユーザのコンピュータで全体的に、又はユーザのコンピュータで部分的に、ユーザのコンピュータで部分的に、又は遠隔のコンピュータで部分的に、及び遠隔のコンピュータ又はサーバで全体的に実行してもよい。後者のシナリオでは、遠隔のコンピュータは、ローカルエリア・ネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含むあらゆる種類のネットワークを介してユーザのコンピュータに接続されてもよい、あるいは外部のコンピュータ（例えば、インターネットサービスプロバイダを用いてインターネットを介して）に接続されてもよい。
【０１１９】
本発明は、方法、装置（システム）及び本発明の実施形態に係るコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明されている。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図のブロックの組み合わせは、コンピュータ・プログラムの指示によって実施することができることは理解されよう。これらのコンピュータ・プログラムの指示は、コンピュータ又はその他のプログラマブルデータ処理装置のプロセッサにより実行される指示が、フローチャート及び／又はブロック図のブロック及びブロック群で規定される機能／動作を実施するための手段を生成するように汎用コンピュータ、専用コンピュータ、又はその他のプログラマブルデータ処理装置のプロセッサに提供されて、機械を製造する。
【０１２０】
図のフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法、及びコンピュータ・プログラム製品の可能な実施に関するアーキテクチャ、機能性、及び動作を例示している。この関連で、フローチャート及びブロック図の各ブロックは、モジュール、セグメント、又はコードの一部を表しており、また、規定された論理機能を実施するための一以上の実行可能な指示から成る。また、代替の実施の中には、ブロックに記載された機能は、図に記載された順序から外れて実行されることがあることに留意されたい。例えば、連続して示される２つのブロックが、実際には、ほとんど同時に実行される場合があり、あるいは、ブロック群が、関連する機能性次第で、逆順に実行される場合もある。また、ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図のブロック群の組み合わせは、規定された機能又は動作を実行する専用ハードウェアベースシステムによって、及び専用ハードウェアとコンピュータの指示の組み合わせよって実行され得ることにも留意されたい。
【０１２１】
本明細書で使用される技術は特定の実施形態を説明することのみが目的であり、本発明を限定することを意図していない。本明細書で使用されるように、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈上で別段明確に示していない限り、複数形も同様に含むことを意図している。さらに、用語「含む（comprise）」及び／又は「含んでいる（comprising）」は、本明細書で使用される場合、記述された機能、整数、ステップ、動作、要素、及び／又はコンポーネントの存在を明示するが、一以上の他の機能、整数、ステップ、動作、要素、コンポーネント、及び／又はそれらのグループの存在又は追加を排除するものではないことは理解されよう。
【０１２２】
実施形態は、コンピュータのプロセス、コンピューティング・システムとして、あるいはコンピュータ読み取り可能な媒体のコンピュータ・プログラム製品等の製品として実施することができる。コンピュータ・プログラム製品は、コンピュータシステムによって読み取り可能で、かつコンピュータのプロセスを実行するためのコンピュータ・プログラムの指示を符号化するコンピュータ記憶媒体であってもよい。アクセスされた場合、上記に開示された機能を実行するために、指示はプロセッサに他のコンポーネントをイネーブルさせる。
【０１２３】
下記の請求項における、機能要素に加えて、すべての手段又はステップの対応する構造、材料、動作、及び同意義物は、具体的に請求されている他の請求要素と一緒に機能の実行をするためのあらゆる構造、材料又は動作を含むことが意図されている。本発明に関する記載は、例示及び説明の目的で提示してきたが、開示された形態で本発明を網羅あるいは限定する意図ではない。本発明の範囲と主旨から逸脱することなく多くの変更及び変形ができることは、当業者にとって明らかであろう。本発明と実用的応用の本質を最もよく説明するために、そして本発明を当業者が理解できるようにするために、考えられる特定の用途に適した様々な変更がされた実施形態について選択して説明されている。
【０１２４】
開示されたネットワーク又はシステムの一以上の部分は、情報及びデータを交換することが可能なネットワークに接続された一以上のＭＦＰシステムに渡って分散されてもよい。ＭＦＰシステムの様々な機能及びコンポーネントが複数のクライアントのコンピュータ・プラットフォームに渡って分散され、あるいは分散システムの一部としてタスクを実行するように構成されてもよい。これらのコンポーネントは、実行可能で、プロトコルを用いてネットワークを介して通信できる中間コード又は解釈済コードであってもよい。コンポーネントは、ネットワーク内でコンポーネントを特定するために特定のアドレス又はその他の指示子を有してもよい。
【０１２５】
本発明の主旨及び範囲を逸脱することなく開示に対して様々な変更ができることは、当業者にとって明らかであろう。従って、変更が請求項とその同意義物の範囲に入ることを条件として、本発明が上記で開示された変更と変形を含むように意図されている。
【符号の説明】
【０１２６】
１００        システム
１０２        デバイス
１０２Ｘ        デバイス
１０２Ｙ        デバイス
１０４        ＭＦＰ
１０６        エンジン
１０８        ネットワーク
１１０        ＭＯＢ
１１２        コンピュータ
１１４        サーバ
１１６        クラウドストレージ
１２０        ＭＦＰ
１２２        無線又は有線接続
【図１】
2019135641.tif 000003
【図２】
2019135641.tif 000004
【図３】
2019135641.tif 000005
【図４】
2019135641.tif 000006
【図５】
2019135641.tif 000007
【図６】
2019135641.tif 000008
【図７】
2019135641.tif 000009
【図８】
2019135641.tif 000010
【図９】
2019135641.tif 000011
【図１０】
2019135641.tif 000012
【手続補正書】
【提出日】平成31年4月16日(2019.4.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークに接続された画像形成装置で文書を処理するための拡張コンピューティング・デバイスであって、
前記ネットワークを介して受信された印刷ジョブの予定を立てるための印刷ジョブマネージャーと、
前記印刷ジョブが拡張コマンド又はページ記述言語（ＰＤＬ）の印刷ジョブを含むかどうか判定するための拡張エンジンと、
前記印刷ジョブマネージャーからの前記ＰＤＬの印刷ジョブを処理して文書画像を生成するためのラスター画像処理（ＲＩＰ）ファームウェアと、
外部のデバイス及び前記画像形成装置とインターフェース接続するための通信レイヤと、
前記文書画像を記憶するための記憶装置と、
を備え、
前記拡張エンジンは、前記拡張コマンドに応じて前記拡張コンピューティング・デバイス内で機能を実行する拡張コンピューティング・デバイス。
【請求項２】
請求項１に記載の拡張コンピューティング・デバイスであって、さらに、
電源を備える拡張コンピューティング・デバイス。
【請求項３】
請求項２に記載の拡張コンピューティング・デバイスであって、さらに、
前記電源を前記画像形成装置に接続するためのコネクタを備える拡張コンピューティング・デバイス。
【請求項４】
請求項１乃至３のいずれか１項に記載の拡張コンピューティング・デバイスであって、
前記拡張コマンドは、前記画像形成装置に前記印刷ジョブを前記拡張コンピューティング・デバイスに転送させる拡張コンピューティング・デバイス。
【請求項５】
請求項１乃至４のいずれか１項に記載の拡張コンピューティング・デバイスであって、さらに、
前記拡張エンジンによって起動される少なくとも一つのファームウェア・アプリケーション・システム・サービスを備える拡張コンピューティング・デバイス。
【請求項６】
請求項５に記載の拡張コンピューティング・デバイスであって、
前記少なくとも一つのファームウェア・アプリケーション・システム・サービスは、文書記憶サービスを含む拡張コンピューティング・デバイス。
【請求項７】
請求項１乃至６のいずれか１項に記載の拡張コンピューティング・デバイスであって、さらに、
前記拡張コンピューティング・デバイス内で実行するためのオペレーティングシステムを備える拡張コンピューティング・デバイス。
【請求項８】
請求項１乃至７のいずれか１項に記載の拡張コンピューティング・デバイスであって、さらに、
前記印刷ジョブマネージャーによる動作に先立ち前記画像形成装置から受信した印刷ジョブを記憶するためのメモリを備える拡張コンピューティング・デバイス。
【請求項９】
画像形成装置に接続された拡張コンピューティング・デバイスで印刷ジョブを処理するための方法であって、
拡張コマンドを含む印刷ジョブを前記画像形成装置から受信する工程と、
ラスター化された文書画像を生成するために印刷ジョブマネージャー及びラスター画像処理（ＲＩＰ）ファームウェアを用いて前記拡張コンピューティング・デバイスで前記印刷ジョブを処理する工程と、
前記拡張コンピューティング・デバイスの拡張エンジンによってアクセス可能な記憶装置内に前記ラスター化された文書画像を記憶する工程と、
を備える方法。
【請求項１０】
請求項９に記載の方法であって、さらに、
前記印刷ジョブが前記拡張コンピューティング・デバイスに送信されることを判定する工程を備える方法。
【請求項１１】
請求項９又は１０に記載の方法であって、さらに、
前記拡張エンジンによって指示された場合には、前記記憶装置から前記ラスター化された文書画像を取得する工程を備える方法。
【請求項１２】
請求項１１に記載の方法であって、さらに、
ネットワークを介して、前記ＲＩＰファームウェアに対するアップグレードをソースから取得する工程を備える方法。
【請求項１３】
請求項９乃至１２のいずれか１項に記載の方法であって、さらに、
前記拡張コンピューティング・デバイス内にある前記記憶装置にアクセスする工程を備える方法。
【請求項１４】
請求項９乃至１３のいずれか１項に記載の方法であって、さらに、
前記ラスター化された文書画像を含むリストを前記画像形成装置に提供する工程を備える方法。
【請求項１５】
請求項１１又は１２に記載の方法であって、さらに、
前記取得された、ラスター化された文書画像を前記画像形成装置で印刷する工程を備える方法。
【請求項１６】
画像形成装置と共に拡張コンピューティング・デバイスを用いるための方法であって、
印刷ジョブのヘッダを分析する工程と、
前記印刷ジョブが文書記憶に関する拡張コマンドを含むかどうか前記ヘッダに従って判定する工程と、
前記印刷ジョブを前記拡張コンピューティング・デバイスに転送する工程と、
ラスター化された文書画像を生成するために前記拡張コンピューティング・デバイスで前記印刷ジョブを処理する工程と、
前記ラスター化された文書画像を前記拡張コンピューティング・デバイスに関連付けられた記憶装置内に記憶する工程と、
指示された場合に前記ラスター化された文書画像を前記記憶装置から取得する工程と、
前記ラスター化された文書画像を前記画像形成装置に送信する工程と、
を備える方法。
【請求項１７】
請求項１６に記載の方法であって、
前記印刷ジョブを処理する工程は、前記ラスター化された文書画像をレンダリングするために前記拡張コンピューティング・デバイス内のラスター画像処理（ＲＩＰ）ファームウェアを使用する工程を含む方法。
【請求項１８】
請求項１６又は１７に記載の方法であって、さらに、
前記印刷ジョブがＰＤＬの印刷ジョブであることを判定する工程を備える方法。
【請求項１９】
請求項１６乃至１８項のいずれか１項に記載の方法であって、さらに、
前記ラスター化された文書画像を含むリストについて前記拡張コンピューティング・デバイスに問い合わせをする工程を備える方法。
【請求項２０】
請求項１９に記載の方法であって、さらに、
前記リストから前記ラスター化された文書画像を選択する工程を備える方法。
【外国語明細書】
PORTABLE MULTI-FUNCTION PRINTING EXTENSION COMPUTING DEVICE AND METHOD
FIELD
[0001]       The present invention relates to a portable device to extend the computing functionalities and capabilities for a multi-functional printing device.
BACKGROUND
[0002]       Printers and associated equipment may have slower upgrade cycles and retain legacy printer engines. The initial high costs of printer engines result in older printer engines being kept longer in offices even if not used. There is less demand for newer printer engines or other features. Further, several months may pass between product releases due to development issues in hardware or software. Moreover, the cost of fixing firmware issues or doing firmware upgrades may be costly. Not only in terms of hardware replacements or software updates, but also with technicians visiting the customers to perform these actions.
SUMMARY
[0003]       An extension computing device for processing documents at a multi-function printing (MFP) device is disclosed. The extension computing device is connected to the MFP, which is, in turn, connected to a network. The extension computing device includes a print job manager to schedule a print job received over the network. The extension computing device also includes an extension engine to determine whether the print job is an extension command or a page description language (PDL) print job. The extension computing device also includes raster image processing (RIP) firmware to process the PDL print job from the print job manager to generate a document image. The extension computing device also includes communication layer to interface with the external device and the MFP device. The extension computing device also includes a storage to store the document image. The extension engine performs a function within the extension computing device in response to the extension command.
[0004]       A method for processing a print job at an extension computing device coupled to a multi-function printing (MFP) device is disclosed. The method includes receiving a print job from the MFP device, wherein the print job includes an extension command. The method also includes processing the print job at the extension computing device using a print job manager and a raster image processing (RIP) firmware to generate a rasterized document image. The method also includes storing the rasterized document image within a storage accessible by an extension engine of the extension computing device.
[0005]       A method for using an extension computing device with a multi-functional printing (MFP) device is disclosed. The method includes analyzing a header of a print job. The method also includes determining whether the print job includes an extension command for document storage according to the header. The method also includes transferring the print job to the extension computing device. The method also includes processing the print job at the extension computing device to generate a rasterized document image. The method also includes storing the rasterized document image within a storage associated with the extension computing device. The method also includes retrieving the rasterized document image from the storage when instructed. The method also includes sending the rasterized document image to the MFP device.
BRIEF DESCRIPTION OF THE FIGURES
[0006]       Various other features and attendant advantages of the present invention will be more fully appreciated when considered in conjunction with the accompanying drawings.
Figure 1 illustrates a block diagram of a system for performing printing operations using a portable extension computing device according to the disclosed embodiments.
Figure 2 illustrates a block diagram of components of the MFP used in conjunction with the portable extension computing device according to the disclosed embodiments.
Figure 3 illustrates a block diagram of the components for an extension computing device according to the disclosed embodiments.
Figure 4 illustrates a block diagram of the components for use with firmware applications system services according to the disclosed embodiments.
Figure 5 illustrates a flowchart for configuring an extension computing device when connected to an MFP according to the disclosed embodiments.
Figure 6 illustrates a flowchart for processing a print job or an extension command using the extension computing device according to the disclosed embodiments.
Figure 7 illustrates a flowchart for processing a print job for a document or job storage at an MFP according to the disclosed embodiments.
Figure 8 illustrates a flowchart for processing a print job for a document or job storage at an extension computing device according to the disclosed embodiments.
Figure 9 illustrates a flowchart for performing on-demand printing or document retrieval at an MFP according to the disclosed embodiments.
Figure 10 illustrates a flowchart for performing on-demand printing or document retrieval at an extension computing device according to the disclosed embodiments.
DETAILED DESCRIPTION
[0007]       Reference will now be made in detail to specific embodiments of the present invention. Examples of these embodiments are illustrated in the accompanying drawings. Numerous specific details are set forth in order to provide a thorough understanding of the present invention. While the embodiments will be described in conjunction with the drawings, it will be understood that the following description is not intended to limit the present invention to any one embodiment. On the contrary, the following description is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the appended claims. Numerous specific details are set forth in order to provide a thorough understanding of the present invention.
[0008]       When designing the controller and other firmware components for an imaging device, such as a multi-function printing (MFP) device, several design factors are considered to ensure that the MFP will function as desired to serve its purpose for users and customers. Some hardware design factors may be memory size, integrated chip capacity for all of the firmware, processor power, and storage capacity. In some embodiments, there is a limitation on how much firmware can be hosted in the integrated chip within the MFP. For example, one may not be able to install upgraded or new applications due to a lack of storage capacity within the MFP.
[0009]       The disclosed embodiments, therefore, provide a virtually unlimited capacity to hold various applications without the need to un-install or re-install the applications. This feature will improve the value of the imaging device. If the development of firmware is not limited to the capacity of the hardware components in the MFP such as disk storage, read-only memory, and integrated chip capacity, which allows more features to be developed, installed, and packaged. Developers innovate with increased flexibility and add features to legacy devices.
[0010]       Non-hardware design factors include performance or efficiency of processing any kind of jobs, such as print, scan, fax, copy, and the like. Print jobs should be processed quickly to reduce the waiting time for the printed materials. At times, one has to wait for a printout because the printer is busy doing another job, especially in busy offices. If there is any way to improve the processing performance during execution of the print jobs, then it will add value to the MFP.
[0011]       The disclosed embodiments may offload some of the features from the hardware and firmware components in the MFP. The offloaded features may include CPU-consuming processes that are not critical to printing workflow. Examples of such activities and processes include document storage, user account management, job accounting, web servicers, diagnostic tools, MFP firmware upgrade service, remote access, and the like.
[0012]       If the processes are offloaded and performed outside of the MFP, then the device may have the main engine processor and firmware available for critical printing and imaging processes. Non-critical processes could be performed in the background or in another computing space. This feature differs from a pure multi-tasking or multi-threading system because such systems still share the processor, storage, and memory to execute operations. When the main hardware resources are shared, limitations still exist on how many functions and how much processing can be done by MFP.
[0013]       Thus, the disclosed embodiments provide a separate but accessible system that may offload non-critical processes and reduce the load on the main critical resources of the MFP. The MFP extension computing device provides capabilities through the development of a computing device that is separate and external from the main computing components of the MFP. The extension computing device is a portable computing device that includes a processor, memory, storage, and firmware components. The applications, such as document storage, user account management, web services, diagnostic tools, and the like will be hosted in the extension computing device and data will become available as-needed for the MFP or main imaging device.
[0014]       An extension computing device provides the benefits of portability, a shareable device between MFPs, shared data, and easy upgrade and maintenance capabilities. It also may provide direct connectivity via the off-the-shelf industry standard connector/adapter and industry standard protocol for the different type of the data communication between the extension computing device (ECD) and MFP. These benefits are disclosed in greater detail below.
[0015]       Portability refers to the same extension computing device being able to connect to various imaging devices. As a shared computing device, it is entirely possible for the services, applications, and features that are installed, hosted, and executed from the extension computing device to be shared and functional when connected to the various imaging devices. The extension computing device will detect the model of the imaging device, or MFP, to enable and provide the features and capabilities that work for the connected imaging device. The extension computing device can be connected to a MFP device via the direct connection like the USB connection, the HDMI connection, USB-UART (The Universal Asynchronous Receiver/Transmitter) connection or direct UART port (RX, TX, and the like) connection, USB-OTG, and the like, in order to connect the ECD and the MFP device depending on the type of the communications between the ECD and MFP device. For example, the HDMI connection can be used to transfer the bulk raster data like the DVI interface. The USB-UART or UART port connection will help support the command/status communication. The USB-OTG will let ECD work as a host/device on the fly, and the like. The ECD can be used to serve a mass storage of MFP device in the device mode in the USB-OTG connection.
[0016]       The extension computing device also is a shareable device that allows and serves the services, applications, and features to remote imaging devices that may require, need, or request such functions through a wireless connection like wifi, NFC, BluetoothTM, and the like. In other words, many MFPs and their engines may use a common extension computing device in a network, thereby simplifying use of the various features provided by the device. As a shareable device, another benefit is that if some features, services, or applications contain and manage user data, document data, or device data, then the data will be available to any imaging device that connects to the extension computing device. The data may become available to anyone and from anywhere.
[0017]       Another benefit of the extension computing device is easy upgrades and maintenance. Because the extension computing device is shared, the number of devices in an office or location would be reduced compared to the number of imaging devices. Thus, maintenance and upgrading would not be costly or difficult.
[0018]       The disclosed embodiments include a portable printing computing device having a page description language (PDL) or raster image processor (RIP) system. The extension computing device may be an external computing device with a computer processing unit, a memory, and an operating system. The extension computing device also includes connectivity interfaces to connect to existing printer devices. It also implements networking capability to advertise itself as another printer device on a network.
[0019]       The disclosed extension computing device supports connectivity interfaces with the printer device and new PDL technologies. It also receives firmware upgrades from servers for performing engine firmware upgrades or maintenance. When connected, the extension computing device detects native PDLs supported in the printer device and provides a pass-through for those PDLs. The extension computing device may translate unsupported PDL to native PDL, or basic raster formats, like JPEG/TIFF supported by the printer engine. This feature allows compatibility with any printer, even those from other manufacturers.
[0020]       The extension computing device also overrides engine firmware components if the PDL RIP firmware in the device is more “up-to-date” and includes new features missing on the printer engine. It also helps test a firmware upgrade before it is installed as a final firmware upgrade to the engine. Dumb printers may be developed with the RIP override feature such that RIP functionality exists and operates externally of the printer. The extension computing device also may host imaging applications that receive images or data from mobile applications, web applications, or desktop devices to print to the printer engine. The extension computing device may register to enterprise printer management tools for device manageability.
[0021]       The existing printer driver and its associated print queue will still be available for use as normal. In other words, if a user selects the print queue associated with the printer device, then the user will have the same printer features and capabilities as provided by the legacy printer engine and printer driver for the print queue. A print queue for the extension computing device will appear as a new print queue to allow the new functionalities and capabilities to be added onto the legacy or third-party printer devices.
[0022]       In another embodiment, the print queue or printer driver, which normally has a printer port configured to point to an MFP or printer, may be configured to have a printer port that points, instead, to a MFP extension computing device. A printer port, such as the one in an operating system, which is managed by a port monitor, and serves as a connection between the printer driver or print queue to a printer, can also be the means of connection between printer driver or print queue and MFP extension computing device. In this configuration, the printer driver, through the port configured as the IP address of the MFP extension computing device, would send the print driver generated print job to the networked MFP extension computing device. In this configuration, the user will be able to take advantage of the printer driver features and at the same time, apply and take advantage of the MFP extension device features. This further implies that any printer driver can be pointed and associated with the networked MFP extension computing device.
[0023]       If the user selects the extension computing device print queue as the destination for a print job, then the new features that are not necessarily present or unsupported in the printer engine but supported by the extension computing device will become available to the user. The user can access the new printer features that the portable printing computing device can perform and print using the printer engine.
[0024]       Definitions:
MFP- Multi-Function (or Functional) Printer or Printing Device.
PDL- Page Description Language, a type of programming language that describes the document or pages in a print job. Examples of PDLs are Printer Command Language (PCL) 5, PCLXL, or PCL 6, and PostScript. Portable Document Format (PDF) and XML Paper Specification (XPS) also belong to this group. Image formats, such as JPG and TIFF, which also can be printed, are special cases that are handled by the PDL.
RIP- Raster Image Processor, a firmware component that includes PDL interpreters. This feature is disclosed in greater detail below.
Print File, Print Job, or Test File- A computer file that contains PDL commands and is raw printable data for the MFP. A print job is the output of the printer driver. It is a binary representation in one of the PDL formats, such as PCL, PDF, or XPS.
Graphics Rendering Component- An internal component in the RIP firmware that translates the PDL commands or data into binary data that that MFP engine can understand. This is similar to machine language to which programming languages are translated so that computing devices can understand. The binary data is such that the Graphics Rendering Level will be understood by the hardware and converted to actual drawing or pixels on the paper. This component is disclosed in greater detail below.
GEU- Graphics Execution Unit, a hardware component at the engine that executes the Orderlist generated from the Graphics Rendering Component to create a raster representation of the print job or document. Printer Driver- A device driver in WindowsTM or other operating systems that translates a document into a print job.
Graphics Orderlist- A binary data representation to which PDL commands are translated by the Graphic Rendering Component. Graphics Orderlists are low-level graphics instructions that the MFP hardware understands and processes to translate to actual markings on a page. Like machine language for a computer, the Graphics Orderlist is a language that the MFP will understand.
Band Data- A row of binary data of results from the processing of the Graphics Orderlist. It appears like a pixmap or bitmap image representation of the page. A page consists of rows of band data. The size of each one may be the same, such as 128 bytes. In some embodiments, the height of each band may be dynamic. The width may be the width of the page to be rendered.
Dumb Printer- An idea of a printer engine that does not have RIP firmware. Raster image processing is performed external of the printer. The printer receives fully rendered pages in either graphics orderlist form or raster form (band data) that the printer engine can process for actual markings on the paper.
[0025]       Figure 1 depicts a block diagram of a system 100 for performing printing operations using an extension computing device 102 according to the disclosed embodiments. System 100 may be an example of network architecture to illustrate how extension computing device 102 is used in conjunction with MFP 104. As shown, extension computing device 102 is a separate component that may attach to MFP 104. Extension computing device 102 may be a USB device to engage a USB port on MFP 104.
[0026]       Extension computing device 102 also connects to network 108 to communicate with other components within system 100, such as mobile device 110, computer 112, or server 114. As can be appreciated, system 100 may include many additional components that send tasks to MFP 104. Mobile device 110 may be a handheld or portable computing device, such as a smartphone, that sends files for processing by MFP 104. For example, mobile device 110 may send pictures to be printed on MFP 104. Computer 112 may be a desktop or laptop computer connected to network 108 to also utilize MFP 104. Server 114 may be a data storage device that provides upgrades to MFP 104. These upgrades may be software upgrades or patches for software or firmware components on MFP 104. Server 114 also may communicate with extension computing device 102. Extension computing device 102 and MFP 104 may send information to server 114 for storage. Mobile device 110, computer 112, and server 114 may run applications internally to perform printing and scanning operations. Cloud storage 116 may be internet or cloud based storage location.
[0027]       Extension computing device 102 may connect to engine 106 of MFP 104. The connection may occur via the combination of an HDM port or a USB/UART port. The HDMI port may be for a bulk raster data transfer and the USB/UART may be for command/status communication. It provides all of the new technologies such as new PDLs and mobile applications to be available for engine 106 and the users of MFP 104. As noted above, extension computing device 102 may be a separate computing device that is attached to MFP 104. As a computing device with networking connectivity, extension computing device 102 also may be organized as a cluster fleet of cooperating devices to make available new technologies throughout network 108, including support for older and third-party engines. Extension computing device 102 may receive print job parts from other portable printing computing devices, such as printing devices 102X and 102Y, or printers, such as MFP 120, for remote processing. This feature assists busy printer engines or busy portable printing devices.
[0028]       Extension computing device 102 may support various connectivity features as an external but portable software, firmware, or device. The connectivity features include, but are not limited to, wifi, local area networks, NFC, parallel port, serial port, USB printer port, USB data port, Bluetooth, internet and the like. Further connectivity features to a printer, computer, both wireless and wired, can be added, integrated, and supported. The connectivity features include, but are not limited to, wifi, local area networks, NFC, parallel port, serial port, USB printer port, USB data port, Bluetooth, HDMI port, DVI port, USB/UART port, UART port, internet and the like.
[0029]       Input data for extension computing device 102 may be received from a connection 122, which may be wireless. For example, if extension computing device 102 is a USB computing device, then the data would come through wireless or wired connection 122 connected to network 108. If extension computing device 102 is a mobile computer, then data may come through input ports connected through a wireless or wired connection 122. Extension computing device 102 also generates output data through its various connectivity ports. The connectivity ports may be a USB data port, a USB printer port, wifi, NFC, Bluetooth, TCP/IP, and the like. Extension computing device 102 may connect to any input ports in MFP 104 and also may include wired, wireless, or direct connections. The connectivity features include, but are not limited to, wifi, local area networks, NFC, parallel port, serial port, USB printer port, USB data port, Bluetooth, HDMI port, DVI port, USB/UART port, UART port, internet and the like.
[0030]       Extension computing device 102 may be a USB computing device, an HDMI computing device, a Blackberry Pi device, a personal computer, a mobile or smartphone device, a tablet, a mini personal computer, and the like. In some embodiments, it may be possible to integrate extension computing device 102 inside MFP 104 because the printing device includes functions that can be implemented entirely in software or firmware. Extension computing device 102 may be MFP firmware component or an application residing and hosted in a flash memory area. The behavior of a locally hosted application or firmware component may function like extension computing device 102, disclosed below, as long as it is upgradeable and provides the features disclosed below. The capabilities that the disclosed embodiments are aiming to provide can all be performed in any computing device that can be connected either by wire or wirelessly to any imaging device like MFP 104 or a printer engine.
[0031]       An example of MFP 104 architecture along with extension computing device 102 may be shown in Figure 2. The architecture shown in Figure 2 may apply to any multi-functional printer or image forming apparatus that scans documents to perform other functions, such as printing, storing, copying, and the like. Extension computing device 102, as shown, is connected to engine 106, which, in turn, is connected to the other components of MFP 104.
[0032]       MFP 104 includes a computing platform 201 that performs operations to support these functions. Computing platform 201 includes a computer processing unit (CPU) 202, an image forming unit 204, a memory unit 206, and a network communication interface 210. Other components may be included but are not shown for brevity. MFP 104, using computing platform 201, may be configured to perform various operations, such as scanning, copying, printing, receiving or sending a facsimile, or document processing. As such, MFP 104 may be a printing device or a multi-function peripheral including a scanner, and one or more functions of a copier, a facsimile device, and a printer. To provide these functions, MFP 104 includes printer components 220 to perform printing operations, copier components 222 to perform copying operations, scanner components 224 to perform scanning operations, and facsimile components 226 to receive and send facsimile documents. CPU 202 may issue instructions to these components to perform the desired operations.
[0033]       MFP 104 also includes a finisher 211 and one or more paper cassettes 212. Finisher 211 includes rotatable downstream rollers to move papers with an image formed surface after the desired operation to a tray. Finisher 211 also may perform additional actions, such as sorting the finished papers, binding sheets of papers with staples, doubling, creasing, punching holes, folding, and the like. Paper cassettes 212 supply paper to image the various components 220, 222, 224, and 226 to create the image formed surfaces on the papers. Paper cassettes 212 may include papers having various sizes, colors, composition, and the like. Paper cassettes 212 may be removed to refill as needed.
[0034]       Document processor input feeder tray 230 may be the physical components of MFP 104 to receive papers and documents to be processed. A document is placed on or in document processor input feeder tray 230, which moves the document to other components within MFP 104. The movement of the document from document processor input feeder tray 230 may be controlled by the instructions input by the user. For example, the document may move to a scanner flatbed for scanning operations. Thus, document processor input feeder tray 230 provides the document to scanner components 224. As shown in Figure 2, document processor input feeder tray 230 may interact with engine 106 to perform the desired operations.
[0035]       Memory unit 206 includes memory storage locations 214 to store instructions 215. Instructions 215 are executable on CPU 202 or other processors associated with MFP 104, such as any processors within components 220, 222, 224, or 226. Memory unit 206 also may store information for various programs and applications, as well as data specific to MFP 104. For example, a storage location 214 may include data for running an operating system executed by computing platform 201 to support the components within MFP 104. Memory unit 206 may comprise volatile and non-volatile memory. Volatile memory may include random access memory (RAM). Examples of non-volatile memory may include read-only memory (ROM), flash memory, electrically erasable programmable read-only memory (EEPROM), digital tape, a hard disk drive (HDD), or a solid-state drive (SSD). Memory unit 206 also includes any combination of readable or writable volatile memories or non-volatile memories, along with other possible memory devices.
[0036]       Computing platform 201 may host one or more processors, such as CPU 202. These processors are capable of executing instructions 215 stored at one or more storage locations 214. By executing these instructions, the processors cause MFP 104 to perform various operations. The processors also may incorporate processing units for specific purposes, such as application-specific integrated circuits (ASICs) and field programmable gate arrays (FPGAs). Other processors may be included for executing operations particular to components 220, 222, 224, and 226. In other words, the particular processors may cause MFP 104 to act as a printer, copier, scanner, and a facsimile device.
[0037]       MFP 104 also includes an operations panel 208, which may be connected to computing platform 201. Operations panel 208 may include a display unit 216 and an input unit 217 for facilitating interaction with a user to provide commands to MFP 104. Display unit 216 may be any electronic video display, such as a liquid crystal display (LCD). Input unit 217 may include any combination of devices that allow users to input information into operations panel 208, such as buttons, a touch screen, a keyboard or keypad, switches, dials, and the like. Preferably, input unit 217 includes a touch-screen digitizer overlaid onto display unit 216 that senses touch to receive inputs from the user. By this manner, the user interacts with display unit 216. Extension computing device 102 may be connected via operations panel 208 to engine 106.
[0038]       MFP 104 also includes network communication processing unit 218. Network communication processing unit 218 may establish a network communication, such as a wireless or wired connection with one or more other image forming apparatuses and a server in an image forming system. CPU 202 may instruct network communication processing unit 218 to transmit or retrieve information over a network using network communication interface 210. As data is received at computing platform 201 over a network, network communication processing unit 218 decodes the incoming packets and delivers them to CPU 202. CPU 202 may act accordingly by causing operations to occur on MFP 104. CPU 202 also may retrieve information stored in memory unit 206, such as settings for MFP 104.
[0039]       MFP 104 also includes engine 106. Engine 106 may be a combination of hardware, firmware, or software components that act accordingly to accomplish a task. For example, engine 106 is comprised of the components and software to print a document. It may receive instructions from computing platform 201 after user input via operations panel 208. Alternatively, engine 106 may receive instructions from extension computing device 102.
[0040]       Engine 106 manages and operates the low-level mechanism of the MFP engine, such as hardware components that actuate placement of toner onto paper. Engine 106 may manage and coordinate the half-toner, toner cartridges, rollers, schedulers, storage, input/output operations, and the like. Raster image processor (RIP) firmware 290 that interprets the page description languages (PDLs) would transmit and send instructions down to the lower-level engine 106 for actual rendering of an image and application of the toner onto paper during operations on MFP 104. RIP firmware 290 may be disclosed in greater detail below.
[0041]       Figure 3 depicts a block diagram of the components for extension computing device 102 according to the disclosed embodiments. Additional components may be implemented within extension computing device 102 beyond what is disclosed below. Extension computing device 102 includes extension computing system 300 that provides the functionality to enable the extension computing device to manage operations internally and interact with MFP 104 and engine 106. In some embodiments, extension computing system 300 may be referred to as an extension system. Extension computing system 300 is disclosed in greater detail below.
[0042]       Extension computing device 102 also includes components that enable the device to stand alone as a computing device, such as processor 302, storage 303, memory 304, and device drivers 305. Processor 302 executes instructions and commands. It also instructs the other components within extension computing device 102 to perform actions. Memory 304 may store the instructions executed by processor 302. In some embodiments, memory 304 is a random access memory that caches instructions to be executed in real-time. Storage 303 may be a hard drive that provides additional memory capability to extension computing device 102. Storage 303 stores data and information for use by components within printing device 102. Storage 303 also may store print jobs, files, and the like from MFP 104. Device drivers 305 may control extension computing device 102 when it is attached to MFP 104. Processor 302, storage 303, memory 304, and device drivers 305 may be connected by bus 390.
[0043]       Bus 390 also connects other components in extension computing device 102 to processor 302, storage 303, and memory 304. Operating system 306 also is provided. Preferably, operating system 306 is a mobile operating system that provides the software platform for other programs to run on extension computing device 102. Operating system 306 is responsible for determining the functions and features available on extension computing device 102. For example, operating system 306 allows extension computing system 300 to run within extension computing device 102. Operating system 306 also may work with device drivers 305 to convert the general input/output instructions of the operating system to messages that components within extension computing device 102 can understand.
[0044]       Extension computing device 102 may include a power supply 308. In some embodiments, power supply 308 may be stand alone, such that extension computing device 102 does not need to draw power from another source. Preferably, power supply 308 obtains power from a connected device, such as MFP 104. Power supply 308 may use one or more connectors 310 to draw power. For example, if extension computing device 102 is connected to a USB hub or port, then connectors 310 may be two wires within the USB interface to connect to power within MFP 104.
[0045]       Extension computing device 102 also may receive and send data over network 108 as well as to the connected MFP 104. Input 312 and output 314 represent the capability to exchange data, such as over wireless connection 122. Input 312 and output 314 also may include having wires through the USB cable to MFP 104 from extension computing device 102, if applicable. Input 312 may include multiple input ports while output 314 may include multiple output ports. Input 312 and output 314 may receive commands and data from extension computing system 300 as well as provide data when received from network 108.
[0046]       Extension computing system 300 may include components that allow it to support connectivity with network 108 and provide the functions disclosed in greater detail to manage MFP 104 and engine 106. These components are shown in Figure 3.
[0047]       Print job manager 320 includes a firmware component that receives print jobs from network 108 or any of the supported connectivity methods. Print job manager 320 also may receive print jobs from connected MFP 104, from network 108, from other devices, or from any of the supported connectivity methods, such as Network, Wi-Fi, USB, BluetoothTM, NFC, and the like. It arranges the incoming data into unique print jobs. Print job manager 320 may identify each print job with a job identification (ID), a timestamp, user/owner IDs, and similar data for the purposes of job scheduling, document tracking, and job management purposes. After completing these tasks, print job manager 320 schedules the sending of the print jobs to MFP 104 and relays them down to RIP firmware 322.
[0048]       After RIP firmware 322 stores or manages the processed jobs in extension computing device 102, the extension computing device may receive requests for the previously processed jobs for downloading to MFP 104. Extension computing device 102 will request to print job manager 320 to retrieve the processed job or other data such as job accounting information, account login, and authentication information. As can be seen in the role of print job manager 320, it may receive print jobs from network 108 or from MFP 104.
[0049]       Print job manager 320 also allows extension computing device 102 to receive print jobs and other kinds of jobs or requests directly from applications on connected devices, from network 108, or through other means. This feature allows those jobs to bypass MFP 104, thereby making the imaging device available to more critical or urgent printing tasks. The types of print jobs that can be sent directly to extension computing device 102 are those that do not need to be printed immediately, but rather stored for later printing at the extension computing device. For example, a document storage job may be handled within extension computing device 102 with the help of print job manager 320.
[0050]       When connected MFP 104 receives print jobs, it is possible to relay those jobs to extension computing device 102 for processing therein. This feature may require an MFP firmware upgrade so that the MFP firmware knows which types of print jobs, scanned jobs, or other requests like job accounting or user account management may be offloaded and performed or processed at extension computing device 102. These embodiments are disclosed in greater detail below.
[0051]       RIP firmware 322 may be a full raster image processor that provides functionality to extension computing system 300. RIP firmware 322 provides all the capabilities of a RIP firmware in a printer engine except for the actual rendering on paper. The rendering may be done by engine 106 of MFP 104. RIP firmware 322 includes the following sub-components of PDL interpreter 330 and graphics rendering component 332. These are disclosed in greater detail below.
[0052]       With the capability to receive print jobs or other kinds of jobs to be stored on extension computing device 102, a full RIP system is needed. RIP firmware 322 allows for parsing, interpretation, and rendering of the non-critical print jobs sent to extension computing device 102. RIP firmware 322 also keeps the print jobs in storage 303, shared network or cloud storage, to make the print jobs available later to MFP 104 to pull the data for on-demand printing.
[0053]       RIP firmware 322 may be the same version as the RIP firmware within MFP 104 for direct compatibility. Alternatively, RIP firmware 322 may be a different version that is upgradeable. It also may happen that the version of RIP firmware 322 is older than the version in the connected MFP 104. As long as RIP firmware 322 can generate and render images on a compatible format that MFP 104 can process to render to paper, RIP firmware 322 is still a valuable component of extension computing device 102. It may save MFP 104 from processing non-urgent print jobs that are intended for on-demand printing.
[0054]       PDL interpreter 330 performs the parsing and processing of the print jobs managed by print job manager 320. The page description languages supported by extension computing system 300 and extension computing device 102 are those that are newer versions or more up-to-date versions of the PDL interpreters already installed and supported by the firmware of engine 106. PDL interpreter 330 also may be a totally different, new, and unsupported PDL interpreter from the one installed for engine 106. In this latter scenario, PDL interpreter 330 may be a new technology provided by extension computing device 102. It may be a new XPS interpreter, a new PDF interpreter, a personalized print markup language (PPML) interpreter, or some future PDL processor. In some embodiments, extension computing system 300 may have access to several PDL interpreters such that it calls on the one related to needs of MFP 104 and network 108.
[0055]       Graphics rendering component 332 is the second sub-component of RIP firmware 322. PDL interpreter 330 interacts with graphics rendering component 332 for the translation of PDL commands to generate a graphics order list. The graphics order list is a list of graphics orders. It is a low-level binary data similar to assembly language or computer machine language. The graphics orders are the actual configuration and drawing commands that may be executed and processed by engine 106. Graphics rendering component 332 may produce a logical representation of the page for the document, which is a raster image or some other encoded representation. In some embodiments, graphics rendering component 332 may execute and process the graphics orderlist to generate several bands of data that can be downloaded to engine 106 of MFP 104 for final processing to put markings on the paper.
[0056]       Output from graphics rendering component 332 may be packaged in at least three ways to engine 106. One way may be the PDL print jobs (PCL5, PCLXL, XPS, PDF, JPG, PNG, TIFF, and the like) translated so that the target MFP 104 or printer engine 106 can process. A second way is to package the output data as a logical binary representation of the page consisting of purely graphics orders. When downloaded to MFP 104, the representation may be processed through the hardware image rendering components such as an Application- Specific Integrated Circuit (ASIC), a Raster Processing Unit (RPU), and a Graphics Execution Unit (GEU).
[0057]       Another way may be a wrapped raster image in a new kind of print job that can be processed directly at MFP 104 or printer engine 106. The raster image is the binary data representation of the incoming print job after getting processed through PDL interpreter 330 and graphics rendering component 332. It is possible to generate a compressed raster image that can be downloaded to engine 106 that would allow MFP 104 to skip further RIP processing. The raster image may be directly processed for putting marking or ink onto the paper when printing. This action is disclosed in greater detail below.
[0058]       In some embodiments, RIP firmware 322 may be a duplicate of the RIP firmware within MFP 104. This does not have to be the case. RIP firmware 322 may be a more up-to-date firmware that is not dependent on the model of the hardware of MFP 104. This may be achieved based on upgradeability of RIP firmware 322 within extension computing device 102, which is easier and cheaper to accomplish than upgrading the RIP firmware on MFP engine 106.
[0059]       Extension computing system 300 also includes extension engine 324. Extension engine 324 is a management mechanism for the main extension computing system 300 features and functionalities. Extension engine 324 communicates with the connected MFP 104 for responding to data and processing requests. It also supports for management, launch, and coordination with firmware applications system services 326. Extension engine 324 also may upgrade itself with a new version from server 114 or cloud storage 116 via network 108. Extension engine 324 also downloads and installs firmware upgrades for connected imaging devices, if permitted.
[0060]       Extension engine 324 may receive at least two types of data for print jobs. These print jobs may be called extension command “print jobs” and PDL print jobs. The print jobs differ in what each one has extension computing device 102 accomplish. Some may instruct extension computing system 300 to perform specific operations while others just may send instructions to MFP 104. Extension engine 324 determines the type of print job received and acts accordingly. The functions associated with each type of data are disclosed in greater detail below.
[0061]       An extension command print job may be received from administrators, computers, devices or mobile devices connected to network 108. These commands may call on extension computing device 102 to perform certain operations on extension engine 324, or engine 106, such as upgrades and launches. Extension computing system 300 will execute the operations. An upgrade command instructs extension computing system 300 to perform a firmware upgrade and may have syntax relating to an upgrade path or the like. The path parameter may be optional and is for the path to firmware upgrade package. In other words, “path” directs extension computing system 300 where to obtain the firmware upgrade package in system 100. If there is no “path” parameter, then extension computing system 300 will look for the firmware upgrade package from a designated local server, such as server 114, an original equipment manufacturer (OEM) website, or safe internet/cloud storage 116. As a stand-alone extension computing device 102, a new tool is capable to perform firmware upgrades on connected imaging devices, such as MFP 104.
[0062]       Another command for extension computing system 300 may launch firmware application services. This command may have syntax of launch app_service_name. The parameter “app_service_name” is desired to determine the service application to launch. There may be several firmware application services that are developed and hosted on extension computing device 102. Examples of launch commands may be launch scanner mobile service application or launch document converter service application.
[0063]       Other extension commands may be developed, integrated, and implemented for extension computing system 300. These commands may instruct extension engine 324 to perform other printer engine management routines or launch other firmware application services. The launched firmware application services would interface with offloaded applications with which MFP 104 can interact in external computing devices, such as smartphones, laptops, tablets, desktops, and the like. The external firmware applications will be able to perform the implied functionalities for processing external documents. In other words, the mobile applications act as printer software that cooperates with extension computing device 102 to download or process a job on the connected MFP 104. This process is disclosed in greater detail below.
[0064]       Because extension commands will be received through the same channels of PDL print jobs, extension engine 324 must have a way to distinguish the print jobs from each other. Extension commands, however, should be packaged to work within the current PDL print job framework so that they look like any other PDL print jobs. Thus, extension commands may have a header section and trailer section that wrap the main extension engine commands. The sections include header data and trailer data that identify the data segment as a special extension command “print job” so that extension engine 324 and extension computing system 300 can act accordingly.
[0065]       For example, a possible extension command “print job” may be:
!EXT!
Command [parameter]
!EXT!
[0066]       The header data is an encoded start identifier. The trailer data is an encoded end identifier. This feature may be enhanced and re-defined further to use other encoding, encryption, and formatting standards, such as the use of XML or HTML formatting. It also is possible to include more than one extension command between the header and trailer sections. Extension engine 324 may do a pre-parsing of the header data to identify whether the incoming print job data is a PDL print job or an extension command print job. Some examples of extension command operations may be as a firmware upgrade, a mobile scanning and print operation, or document conversion. These examples processes are disclosed in greater detail below.
[0067]       An administrator may have a firmware upgrade to be deployed on MFP 104. The administrator may send an instruction to extension computing device 102 that is connected to MFP 104 to be upgraded. The instruction may contain relevant data such as command, which is “upgrade,” and the value or parameter, which is the path to the firmware upgrade package. It also may be just an “upgrade” command without any extra parameter. Extension engine 324 then will query and download the firmware upgrade from its associated file server 114 in network 108, download it from the OEM server, or download it from a location within cloud storage 116.
[0068]       For the mobile scanning example, a printer may be implemented that has no scanning support or an MFP that has broken scanning hardware. User may be able to use a mobile scanning application to scan original documents with a mobile device, download the photographed copy to the scanning application service in extension computing device 102. The disclosed embodiments, in turn, will save or make a print-out of the scanned document.
[0069]       Extension engine 324 also receives PDL print jobs from components within system 100. Print jobs are received, as scheduled, from print job manager 320. If the print job request is a regular print job, then extension computing device 102 treats it like a normal print job would be treated at MFP 104, except with some differences. Extension engine 324 may either process PDL print jobs locally in extension computing device 102 through RIP firmware 322 or relay them down, or pass-through, to MFP 104.
[0070]       Extension computing system 300 also includes input/output and communication layer (hereinafter communication layer) 328, which may be an interface layer for management of connected devices, both input and output. This may be through device drivers 305, operating system 306, a TCP/IP interface, or other connectivity technologies. The input aspect is for networking connectivity by interfacing with print job manager 320 for the receipt of the print jobs, responding to queries for system capabilities, and coordinating and communicating between firmware applications system services 326 and external mobile application clients. The output aspect is for interfacing with the connected printing or imaging device, such as MFP 104 or engine 106. Communication layer 328 also transmits or downloads a rendered or pass-through print job within extension computing system 300. Communication layer 328 may connected to MFP 104 through a wired, wireless, or direction connection, shown as connectors 310 in Figure 3.
[0071]       Extension computing system 300 (which is also referred to as "Portable printing computing system") also includes firmware applications system services 326. As fully functional computing device with operating system 306, storage 303, memory 304, device drivers 305, processor 302, and networking connectivity through input 312 and output 314, software services can be hosted, function, and operate in extension computing device 102. Various non-critical processes from MFP 104 and engine 106 may be offloaded. These processes are transferred and developed as system services in extension computing device 102. Some of the possible application services may be document storage, user account management, job accounting management, web services, and diagnostic tools.
[0072]       Document storage, or job storage, is the rendering of incoming print jobs that are not printed onto paper or other medium, but are stored in storage 303 as hard-drive or system storage for later printing. These kinds of print jobs are performed partially in MFP engine 106 through the following current workflow:
1) PDL Interpretation,
2) graphics rendering component processing for the generation of graphic orders,
3) processing of graphics orders through ASIC or other hardware component technologies, and
4) storing of rendered image(s) into system storage 303.
[0073]       Once the pre-rendered print jobs are stored in extension computing device 102, the data can be pulled or retrieved for on-demand printing. The externally stored pre-rendered print jobs may be browsed at operations panel 208 for MFP 104 to select which print job to print, delete, rename, and the like.
[0074]       In some embodiments, the graphics order may be processed in MFP 104 or engine 106. The only step from above that needs to happen in engine 106 is the third step because it requires hardware components, like the ASIC, that exists in MFP 104. The rest of the steps may be performed in extension computing device 102. The time saved by offloading the other three steps and doing them externally of MFP 104 would allow it to have more time and availability to process real print jobs that would printed onto paper or another medium.
[0075]       In other embodiments, the graphics order may be processed in software emulation. It is possible to perform software emulation of the hardware components within MFP 104. The hardware components, like ASIC, started in software form during development, and were eventually ported and programmed in integrated chips or ASIC. Thus, most, if not all, features of ASIC may have equivalent software implementations. This may be called a software graphics execution unit (GEU). This processes the graphics orders from step 2 above to be able to create the rasterized image. In these embodiments, all of the four steps may be performed in extension computing device 102. Processing in MFP 104 or engine 106 may be skipped. This feature allows MFP 104 or engine 106 to have more resources and time available for processing real print jobs.
[0076]         With user account management, user account and other user data do not need to reside locally in MFP 104. This data do not require hardware components used for image processing. A common user account management system may be offloaded in extension computing device 102 and shared among several imaging devices when connected to each one or when remotely accessed from many imaging devices.
[0077]       A different management system is job accounting. Job accounting does not need to reside locally in MFP 104, either. It does not require hardware components for image processing. The job accounting management system may be offloaded and hosted in extension computing device 102. Web services also may be offloaded from MFP 104. The management of configuration, paper, and user settings usually is implemented as a web service on MFP 104. These services do not need to be in MFP 104 and may be hosted in extension computing device 102.
[0078]       Diagnostic tools for debugging, monitoring, or maintenance of MFP 104 also may be offloaded and performed on extension computing device 102. By doing this, computing power is not consumed inside MFP 104. Further, the diagnostic tools may be upgraded without tying up resources on MFP 104.
[0079]       In some embodiments, it is possible to develop new applications and services that generate rendered document images in raster formats or other formats compatible to imaging devices. For this to happen, a method for communication and coordination between existing MFP firmware and extension computing device 102 will do. The method will involve passing and handling of instructions between the two devices to facilitate the transfer of document data and the rendered document images.
[0080]       Extension computing device 102 may have a web service or application that administrators can access to launch, restart, or perform the various capabilities available and installed in the extension computing device. This will allow administrators to manage extension computing device 102 remotely, and not just the MFP features and firmware applications system services 326 installed within.
[0081]       A server-like system services component is integrated into extension computing device 102, and managed through extension engine 324. By interfacing with extension engine 324, firmware applications system services 326 can run locally in extension computing device 102, as shown in Figure 4. The applications of firmware applications system services 326 can have varied features as disclosed above. Application interface (API) services are provided to clients that would be external to extension computing device 102, such as components connected through network 108, or client applications 402. Client applications 402 may reside on mobile devices 110 or computers 112. As discussed above, client applications 402 may act as an extension to engine 106 via extension engine 324 in that functionality is provided by the external applications to perform operations using the engine in MFP 104.
[0082]       MFP 104 receives the output data from extension computing device 102. MFP 104 and engine 106 process the data like other incoming print jobs or communications from network 108. In some embodiments, no change on the hardware or firmware components of MFP 104 or engine 106 is required for upgrades as extension computing device 102 provides the new features and capabilities to the existing device.
[0083]       It is possible to integrate technologies defined in the disclosed technology in order to enhance and improve the performance and processing efficiency of the interaction between MFP 104 and extension computing system 300. For example, engine 106 of MFP 104 may have an upgraded firmware that communicates with a connected extension computing device 102. All incoming print jobs that extension computing device 102 will process can be formatted in a certain way that is compatible with the upgraded interaction and communication path. The print jobs also are processed more efficiently when received at MFP 104.
[0084]       Figure 5 depicts a flowchart 500 for configuring extension computing device 102 when connected to MFP 104 according to the disclosed embodiments. Whenever extension computing device 102 is connected to an imaging device, such as MFP 104, it will configure itself in order to determine and enable its features and capabilities. Extension engine 324 may use the data about the connected imaging device to determine how it will function. Flowchart 500 shows the steps used to complete the configuration.
[0085]       Each MFP 104 comes with pre-installed engine firmware and other firmware. The firmware may be of a particular version at the time MFP 104 is brought on-line. The firmware components may be upgraded after MFP 104 is shipped. Moreover, all MFPs and devices become old or obsolete. Future versions of the firmware may include features, bug fixes, enhancements, and the like. The new upgrades may not be backward compatible with existing firmware on MFP 104. The upgrades are known to the MFP manufacturer and may be catalogued at the factory or other location. A mapping of firmware versions may be provided at the factory, for example, and then contained in a server or on the internet/cloud. It may be in a database and shared through queries using SQL connections and other methods. In other words, the firmware upgrades and associated information may be accessible at a storage location on network 108 by extension computing device 102. Alternatively, it may be possible to package this data and include it when setting up extension computing device 102, either as a resource file or statically linked with its software components.
[0086]       Step 502 executes by querying engine capabilities. Extension computing system 300, and more specifically, extension engine 324, can query for the mapping of firmware versions and associated data from a server, such as server 114, in order to determine what PDLs and technologies are enabled for MFP 104 and engine 106. It also may query what limitations, restrictions, concerns, and the like might apply to MFP 104. For example, extension engine 324 queries for engine firmware versions, capabilities, and other relevant information in order to determine necessity for firmware upgrades or for determining what PDLs are supported on engine 106.
[0087]       In some embodiments, the data may be included in extension computing device 102 as static data. The static data may be a separate resource file stored in memory 304 or can be statically linked with extension computing system 300. Extension engine 324 may query only server 114 for data that is newer than what is already included locally in extension computing device 102. In other words, extension engine 324 may determine whether data about MFP 104 also needs to be upgraded.
[0088]       Step 504 executes by determining engine parameters for engine 106 of MFP 104. Extension engine 324 receives and processes data for its queries for engine restrictions, limitations, features, and other capabilities. With this data, extension engine 324 effectively “knows” the capabilities, or lack thereof, of connected MFP 104. It may use this knowledge to provide and enable new features, enhancements, and upgraded capabilities and technologies to MFP 104.
[0089]       This step also may be referred to as defining rules and capabilities. Extension engine 324 may define at least three rules and capabilities. These may be shown in steps 506-510. Step 506 executes by defining PDL pass-through support. PDL pass-through support is enabled for PDLs that are known to be working on MFP 104 and have no critical issues. Print jobs may pass through extension computing system 300 as normal, and may even go directly to communication layer 328 for output to MFP 104. Newer firmware versions or upgrades are not detected.
[0090]       If the local PDL is known to have critical issues either in firmware or hardware, extension engine 324 may intercept incoming print jobs with the compromised PDL. Extension engine 324 processes the print jobs locally in extension computing system 300 through RIP firmware 322. It then sends the print job to MFP 104 for processing. Though PDL pass-through support is enabled because MFP 104 includes the proper version of the local PDL, extension engine 324 determines that the local PDL is corrupt, possibly due to ASIC, halftone, hard-drive, or ROM memory corruption and institutes this intercept mode. Extension engine 324 may receive information about the local PDL from MFP 104.
[0091]       Step 508 executes by defining the PDL intercept mode by extension engine 324. The PDL intercept mode is similar to what is defined above. The print job for a PDL is intercepted and processed by extension computing system 300. It is not passed through to MFP 104. If a new version of PDL is available for print job processing that is better than what is installed on MFP 104, then extension engine 324 will intercept the print jobs with the PDL. The print jobs are processed locally on extension computing device 102. Once processing is complete, the print job is output to engine 106.
[0092]       Step 510 executes by optimizing for speed. If the rendering capabilities of engine 106 can be determined, then extension engine 324 may enable generation, translation, or conversion of incoming print jobs to a format that is processed more efficiently on engine 106. For example, if extension engine 324 determines that MFP 104 includes a version 2.3 of some compression and decompression algorithm in the application-specific integrated circuit (ASIC) of the MFP, then the extension engine will inform RIP firmware 322 in extension computing system 300 about such version. RIP firmware 322 would translate and convert applicable incoming print jobs not going through pass-through mode to generate the raster image representation of the pages in a format compliant to version 2.3 of the known compression and decompression algorithm in the ASIC of MFP 104.
[0093]       Other rules may be enabled or disabled in order to take advantage of the processing power and upgraded features in extension computing device 102. Examples of these rules may be defining and enabling restricted user access. Some users may not be able to use MFP 104 and these rules may change over time. Extension computing device 102 can enforce these rules using extension engine 324. Another example may be enabling document storage permissions. Rules also may include defining and assigning color or monochrome printing access on MFP 104. In other words, rules that apply to what or who can access MFP 104 may be enabled using device 102 according to the disclosed embodiments.
[0094]       Step 512 executes by enabling the features. Once extension computing device 102 is configured and the rules are defined, it will apply and perform the rules as print jobs are received. Extension engine 324 will treat print jobs accordingly. Device 102 also may receive commands from administrators, such as pushed firmware upgrades. In this situation, a firmware upgrade may be received at extension computing device 102. This may cause extension engine 324 to move a local PDL from a pass-through parameter to an intercept mode one.
[0095]       Figure 6 depicts a flowchart 600 for processing a print job or an extension command using extension computing device 102 according to the disclosed embodiments. Flowchart 600 shows what happens when extension computing device 102 receives data from another device within system 100. In some embodiments, an external device connected over network 108 sends the data to have some action performed, such as printing a document or asking device 102 to perform a process. Step 602, therefore, executes by receiving a “print job” from an external, remote, or connected device or application. As disclosed above, extension computing device 102 may be selected as a destination for the print job or action, like a printer or MFP 104. The term “print job” is used but this refers to real PDL print jobs as well as extension commands.
[0096]       Step 604 executes by scheduling the print job using print job manager 320. Print job manager 320 receives the print job request and schedules it accordingly. This is one reason all incoming requests are treated as “print jobs” in that they are scheduled as such. The jobs are processed in order. For example, extension commands may not be given preferential treatment over normal print jobs. Step 606 executes by receiving the print job at extension engine 324 when it is scheduled for processing. Extension engine 324 analyzes the print job to determine how it will be treated in extension computing device 102.
[0097]       Step 608 executes by analyzing the header of the print job. As disclosed above, the print job may include a specific header that identifies it as an extension command. The header data includes an encoded start identifier, such as “!EXT!” in hexadecimal form. This alerts extension engine 324 that the print job actually includes an extension command for extension computing system 300. After the header is determined, step 610 executes by determining whether the print job includes an extension command using extension engine 324. In some embodiments, the print job can include a plurality of extension commands.
[0098]       If step 610 is yes, then extension engine 324 will process the print job as an extension command. Extension engine 324 will task components within extension computing system 300 to perform the functionality specified in the command or launch applications within extension computing system 300 to accomplish tasks.
[0099]       If step 610 is no, then extension engine 324 will treat the print job as a normal PDL print job. Extension engine 324 may determine the version of PCLXL or PDF interpreter already supported in engine 106 of MFP 104. With this information, extension engine 324 may allow incoming PCLXL and PDF print jobs to pass-through and processed directly by MFP 104. If for any reason the version installed on engine 106 has a known bug that cannot be fixed with a firmware upgrade or there is some lack of support by engine 106, then the disclosed embodiments may process incoming print jobs in extension computing device 102 by pre-rendering it, and downloading only compatible data to MFP 104. It also may store the document for later use. Thus, incoming jobs identified as print jobs in step 610 may be processed in step 614 either by sending directly to engine 106 or processed in extension computing device 102. Further, if the intercept mode is enabled, as disclosed above, then the print job will be intercepted and stored by extension computing device 102.
[00100]      Step 616 executes by sending a result of steps 612 or 614 to MFP 104, if applicable. The result may be data generated from the actions of extension computing system 300 either from the extension command or PDL print job. The result is the data provided to MFP 104 due to the interaction of extension computing device 102 with the incoming request from an external device. The data may be upgraded firmware to be deployed on MFP 104 or a processed document for printing. In some embodiments, the data is in a format usable by engine 106 or MFP 104. The result comes from communication layer 328 that communicates with MFP 104.
[00101]      Figure 7 depicts a flowchart 700 for processing a print job for a document or job storage at MFP 104 according to the disclosed embodiments. As noted, flowchart 700 shows the process to handle a print job or other operation as it is received at MFP 104. In some embodiments, the print job is received at extension computing device 102 then passed through to MFP 104 according to the rules applied by extension engine 324 to intercept certain print jobs to be processed using extension computing system 300. A printer driver identifies print jobs with a document storage parameter. Using the example above, an extension command may be found in the header to alert MFP 104 or extension engine 324 that the print job is to be stored in the extension computing device. A printer driver may add a type for the print job, whether it is for normal printing or for job storage. It may accomplish this in the current, normal way.
[00102]      There also may be a need for the printer driver to identify print jobs as print jobs for extension computing device 102. In these instances, the printer driver includes the PJL RELAY command when it knows that the print job may be processed in extension computing device 102. This action may be performed when extension computing device 102 hosts upgraded or upgraded firmware to process the print job. Extension computing device 102 also may include firmware applicable to third party printers in that it can receive and process a print job for a printer different from the connected MFP 104.
[00103]      Step 702 executes by identifying the print job as one for job storage. In some embodiments, this step may be done at the printer driver at a device to send the print job to MFP 104. The print job is marked for job storage or document storage, or includes a PJL RELAY command. Step 704 executes by detecting that the print job is to be forwarded to extension computing device 102 by MFP 104. MFP firmware detects the type of job (normal printing or job/document storage) or the presence of the PJL RELAY command. The MFP firmware may determine whether such information exists by reviewing the header.
[00104]      Step 706 executes by determining whether the print job is a job or document storage type print job. If yes, then step 708 executes by transferring the print job to extension computing device 102. Further actions by extension computing device 102 are disclosed in Figure 8. If step 706 is no, then step 710 executes by determining whether the PJL RELAY command, or any other applicable command, is found in the print job. If yes, then step 708 executes as disclosed above. If step 710 is no, then step 712 executes by printing the print job in MFP 104 using the associated MFP firmware and engine 106.
[00105]      Figure 8 depicts a flowchart 800 for processing a print job for a document or job storage at extension computing device 102 according to the disclosed embodiments. Flowchart 800 proceeds in conjunction with flowchart 700. Once step 708 is executed, then the steps of flowchart 800 are executed. Extension computing device 102 receives the transferred job from MFP 104. It processes the job and stores the rendered image locally in, for example, storage 303. Extension computing device 102 may have an API or file server application that can transfer the rendered image programmatically.
[00106]      Step 802 executes by receiving the relayed print job from MFP 104 after the determination is made in step 706 or 710. Step 804 executes by processing the print job in extension computing device 102. The components of extension computing system 300 may process the print job using RIP firmware 322 as disclosed above. In other words, the print job is processed as if it was being processed in MFP 104. This feature alleviates the need for MFP 104 and its associated firmware to process print jobs that are not urgent.
[00107]      Step 806 executes by storing the rendered image within extension computing device 102. In some embodiments, the rendered image is stored in storage 303. Unlike memory 304, storage 303 may be an internal hard drive, an external hard drive, cloud or network storage, and the like. By not using memory 304, the processing capabilities of extension computing device 102 are not compromised. Step 808 executes by performing any other actions as instructed by the print job. Such actions may include sending a confirmation to the printer driver that storage is complete. Other actions may include displaying the document image on MFP 104 for editing or changes on the document, which then may be saved as a new document or replace the original document.
[00108]      Figure 9 depicts a flowchart 900 for performing on-demand printing or document retrieval at MFP 104 according to the disclosed embodiments. MFP 104 may pull data from extension computing device 102. This data may be stored jobs processed in flowchart 800. If a user needs to perform an on-demand or pull printing operation, then MFP 104 may need the data such as for document storage. MFP 104 sends an instruction to extension computing device 102 to pull or download the data.
[00109]      Step 902 executes by selecting the job or document storage menu by the user. This action may be performed at MFP 104, but also at a connected device, such as one connected via network 108. Step 904 executes by querying extension computing device 102 for stored jobs or documents. Flowchart 900 may do this by executing step A which interacts with flowchart 1000, as disclosed below. MFP 104 will wait for the response from extension computing device 102. Step B returns the result of the query from extension computing device 102 to flowchart 900.
[00110]      Step 906 executes by displaying the list of selected jobs on MFP 104. For example, the list of selected jobs may be displayed in display unit 216 of operations panel 208. The user may interact with the list using input unit 217 (which is also referred to as "input panel"). Step 908 executes by selecting a stored document or documents to print using MFP 104. Using input unit 217 and display unit 216, the user indicates the documents to print.
[00111]      Step 910 executes by retrieving the stored document or documents from extension computing device 102. The retrieved documents are downloaded to MFP 104. Step C interacts with flowchart 1000 to obtain the selected document(s). The documents are stored on extension computing device 102 and provided to MFP 104 using step D, which also interacts with flowchart 1000. In some embodiments, the retrieved documents already are rasterized images that may be sent directly to engine 106 without the need for MFP firmware processing. This feature alleviates the processing demands on MFP 104. Step 912 executes by printing the document using MFP engine 106.
[00112]      Figure 10 depicts a flowchart 1000 for performing on-demand printing or document retrieval using extension computing device 102 according to the disclosed embodiments. Flowchart 1000 interacts with flowchart 900 using steps A and C as MFP 104 sends commands and requests to extension computing device 102, which acts accordingly. Extension computing device 102 returns the rendered image to MFP 104. Thus, when extension computing device 102 receives a “pull,” or similar, request from MFP 104, it transfers or returns the requested document image from storage 303.
[00113]      Step 1002 executes by receiving the request for the document(s) at extension computing device 102 from MFP 104. Alternatively, the request may come from MFP engine 106. Step 1004 executes by determining the type of request received. Although flowchart 1000 disclosed two types of requests, other requests may be received such as displaying the stored document within display unit 216 of MFP 104 or forwarding the document to another device over network 108.
[00114]      If the request is from step A, then it pertains to a query for stored jobs in extension computing device 102. Step 1006 executes by accessing storage 303. Access also may be performed for an external device or cloud/network storage. Extension computing device 102 may send a request to the other device over network 108 to obtain the jobs stored on the device. Step 1008 executes by preparing a list file of the stored jobs for the user. Step 1010 executes by returning the list file of stored jobs to MFP 104. Step B interacts with flowchart 900 to provide the list of stored jobs (or documents) to step 904.
[00115]      If the request is from step C, then it pertains to retrieving for one or more stored documents in extension computing device 102. Step 1012 executes by accessing storage 303. Access also may be performed for an external device or cloud/network storage. Extension computing device 102 may send a request to the other device over network 108 to retrieve the requested documents stored on the device. Step 1014 executes by retrieving the selected stored documents from storage 303 or the applicable storage. Step 1016 executes by returning the stored rasterized image to MFP 104. Step D interacts with flowchart 900 to provide the rasterized image(s) to MFP 104 for printing.
[00116]      As will be appreciated by one skilled in the art, the present invention may be embodied as a system, method or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.
[00117]      Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non- exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
[00118]      Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user’s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user’s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
[00119]      The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
[00120]      The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
[00121]      The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a,” “an” and “the” are intended to include plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specific the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
[00122]      Embodiments may be implemented as a computer process, a computing system or as an article of manufacture such as a computer program product of computer readable media. The computer program product may be a computer storage medium readable by a computer system and encoding a computer program instructions for executing a computer process. When accessed, the instructions cause a processor to enable other components to perform the functions disclosed above.
[00123]      The corresponding structures, material, acts, and equivalents of all means or steps plus function elements in the claims below are intended to include any structure, material or act for performing the function in combination with other claimed elements are specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for embodiments with various modifications as are suited to the particular use contemplated.
[00124]      One or more portions of the disclosed networks or systems may be distributed across one or more MFP systems coupled to a network capable of exchanging information and data. Various functions and components of the MFP system may be distributed across multiple client computer platforms, or configured to perform tasks as part of a distributed system. These components may be executable, intermediate or interpreted code that communicates over the network using a protocol. The components may have specified addresses or other designators to identify the components within the network.
[00125]      It will be apparent to those skilled in the art that various modifications to the disclosed may be made without departing from the spirit or scope of the invention. Thus, it is intended that the present invention covers the modifications and variations disclosed above provided that these changes come within the scope of the claims and their equivalents.
REFERENCE SIGNS LIST
[00126]       
100    System
102    Device
102X    Device
102Y    Device
104    MFP
106    Engine
108    Network
110    MOB
112    Computer
114    Server
116    Cloud Storage
120    MFP
122    Wireless or Wired Connection
What is claimed is:
1.    An extension computing device for processing documents at a multi-function printing (MFP) device attached to a network, the extension computing device comprising:
a print job manager to schedule a print job received over the network;
an extension engine to determine whether the print job includes 5 an extension command or a page description language (PDL) print job;
a raster image processing (RIP) firmware to process the PDL print job from the print job manager to generate a document image;
a communication layer to interface with the external device and the MFP device; and
a storage to store the document image,
wherein the extension engine performs a function within the extension computing device in response to the extension command.
2.    The extension computing device of claim 1, further comprising a power supply.
3.    The extension computing device of claim 2, further comprising connectors to connect the power supply to the MFP device.
4.    The extension computing device of any one of claims 1 to 3, wherein the extension command causes the MFP device to transfer the print job to the extension computing device.
5.    The extension computing device of any one of claims 1 to 4, further comprising at least one firmware application system service that is launched by the extension engine.
6.    The extension computing device of claim 5, wherein the at least one firmware application system service includes a document storage service.
7.    The extension computing device of any one of claims 1 to 6, further comprising an operating system to execute within the extension computing device.
8.    The extension computing device of any one of claims 1 to 7, further comprising a memory to store a print job received from the MFP device prior to action by the print job manager.
9.    A method for processing a print job at an extension computing device coupled to a multi-function printing (MFP) device, the method comprising:
receiving a print job from the MFP device, wherein the print job includes an extension command;
processing the print job at the extension computing device using a print job manager and a raster image processing (RIP) firmware to generate a rasterized document image; and
storing the rasterized document image within a storage accessible by an extension engine of the extension computing device.
10.   The method of claim 9, further comprising determining that the print job is to be sent to the extension computing device.
11.   The method of claim 9 or 10, further comprising retrieving the rasterized document image from the storage when instructed by the extension engine.
12.   The method of claim 11, further comprising obtaining an upgrade for the RIP firmware from a source over the network.
13.   The method of any one of claims 9 to 12, further comprising accessing the storage, wherein the storage is within the extension computing device.
14.   The method of any one of claims 9 to 13, further comprising providing a list including the rasterized document image to the MFP device.
15.   The method of claim 11 or 12, further comprising printing the retrieved rasterized document image at the MFP device.
16.   A method for using an extension computing device with a multi-functional printing (MFP) device, the method comprising:
analyzing a header of a print job;
determining whether the print job includes an extension command for document storage according to the header;
transferring the print job to the extension computing device;
processing the print job at the extension computing device to generate a rasterized document image;
storing the rasterized document image within a storage associated with the extension computing device;
retrieving the rasterized document image from the storage when instructed; and
sending the rasterized document image to the MFP device.
17.   The method of claim 16, wherein processing the print job includes using a raster image processing (RIP) firmware within the extension computing device to render the rasterized document image.
18.   The method of claim 16 or 17, further comprising determining that the print job is a PDL print job.
19.   The method of any one of claims 16 to 18, further comprising querying the extension computing device for a list including the rasterized document image.
20.   The method of claim 19, further comprising selecting the rasterized document image from the list.
1.  Abstract
2.  SOLUTION
An extension computing device connects to a multi-function printing (MFP) device to enable additional functionality and capabilities to support the MFP device. Print jobs and other tasks may be performed in the extension computing device so that the MFP device addresses more important tasks in real time. The extension computing device receives and processes a print job without the need to engage the MFP device or its engine. The print job then may be stored in the extension computing device until it is printed on demand by the MFP device. Other applications also may be located in the extension computing device. An extension engine performs tasks to determine when to process the print job in the extension computing device. The extension computing device includes a processor, a print job manager, a storage, an operating system, and input/output capabilities.
3. Representative Drawing: Fig. 1
2019135641.tif 000013
2019135641.tif 000014
2019135641.tif 000015
2019135641.tif 000016
2019135641.tif 000017
2019135641.tif 000018
2019135641.tif 000019
2019135641.tif 000020
2019135641.tif 000021
2019135641.tif 000022