(57)【特許請求の範囲】
【請求項１】
外部の機器から所定のメッセージを受信し、前記メッセージを解析して前記メッセージに応じた処理を実施する、印刷機能を備えた画像処理装置であって、
外部の機器から受信した前記メッセージを解析して印刷に関する処理と、印刷に関する処理以外の処理とを切り分ける処理切り分け手段と、
前記切り分け手段により切り分けられた前記印刷に関する処理の優先順位を所定の要因に基づいて決定する優先順位決定手段と、
前記印刷に関する処理以外の処理を前記印刷に関する処理よりも優先的に実施したあとで前記優先順位に基づいた順番で前記印刷に関する処理を実施する処理実施手段と、
を有し、
前記優先順位決定手段は、前記メッセージに含まれる重み情報，自機内に保存されている優先機器の重み情報，及び前記印刷に関する処理に掛かるデータのデータサイズ毎の重み情報の少なくとも１つ以上を前記要因として、前記印刷に関する処理の優先順位を決定し、
前記処理実施手段は、前記要因とされた前記印刷に関する処理毎の前記重み情報に基づいて前記印刷に関する処理を前記優先順位の異なるキューに入れ、前記重み情報が閾値より大きい前記印刷に関する処理が入れられている第１キューから前記印刷に関する処理を全て取り出して実施したあと、前記重み情報が閾値より小さい前記印刷に関する処理が入れられている第２キューから前記印刷に関する処理を取り出して実施し、
前記第２キューに入れられてから所定時間以上経過した前記印刷に関する処理の前記重み情報に、所定値を加算し、前記重み情報が閾値より大きくなった前記印刷に関する処理を前記第２キューから取り出して第１キューに入れる
ことを特徴とする画像処理装置。
【請求項２】
外部の機器から所定のメッセージを受信し、前記メッセージを解析して前記メッセージに応じた処理を実施する、印刷機能を備えた画像処理装置における優先順位決定方法であって、
処理切り分け手段が、外部の機器から受信した前記メッセージを解析して印刷に関する処理と、印刷に関する処理以外の処理とを切り分ける処理切り分けステップと、
優先順位決定手段が、前記切り分け手段により切り分けられた前記印刷に関する処理の優先順位を所定の要因に基づいて決定する優先順位決定ステップと、
処理実施手段が、前記印刷に関する処理以外の処理を前記印刷に関する処理よりも優先的に実施したあとで前記優先順位に基づいた順番で前記印刷に関する処理を実施する処理実施ステップと、
を有し、
前記優先順位決定ステップは、前記メッセージに含まれる重み情報，自機内に保存されている優先機器の重み情報，及び前記印刷に関する処理に掛かるデータのデータサイズ毎の重み情報の少なくとも１つ以上を前記要因として、前記印刷に関する処理の優先順位を決定し、
前記処理実施ステップは、前記要因とされた前記印刷に関する処理毎の前記重み情報に基づいて前記印刷に関する処理を前記優先順位の異なるキューに入れ、前記重み情報が閾値より大きい前記印刷に関する処理が入れられている第１キューから前記印刷に関する処理を全て取り出して実施したあと、前記重み情報が閾値より小さい前記印刷に関する処理が入れられている第２キューから前記印刷に関する処理を取り出して実施し、
前記第２キューに入れられてから所定時間以上経過した前記印刷に関する処理の前記重み情報に、所定値を加算し、前記重み情報が閾値より大きくなった前記印刷に関する処理を前記第２キューから取り出して第１キューに入れる
ことを特徴とする優先順位決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び優先順位決定方法に係り、特に優先順位に基づいた順番で処理を実施する画像処理装置及び優先順位決定方法に関する。
【背景技術】
【０００２】
画像処理装置の一例としての複合機には、ＰＣ（Personal Computer）等の外部の機器からネットワーク経由で受信した要求に応じて、プロッタやスキャナ等の搭載機能により処理を行うものがあった。例えば従来の複合機には、外部の機器からＸＭＬ（Extensible Markup Language）を利用したＳＯＡＰ（Simple Object Access Protocol）により要求を受信するものがあった。
【０００３】
外部の機器から所定の処理を複合機に対して要求する場合には、外部の機器からの要求を所定の形式で定義した構造化データ（以下、ＳＯＡＰメッセージという）により複合機へ送信し、複合機が要求に応じて処理を行った後に、その結果をまとめたＳＯＡＰデータを外部の機器へ送信するというＳＯＡＰを利用したメッセージ交換方式が広く採用されている。
【０００４】
ＳＯＡＰとは、ＸＭＬをベースとしたメッセージ交換の為のプロトコル仕様で、ＨＴＴＰ（Hypertext Transfer Protocol）やＳＭＴＰ（Simple Mail Transfer Protocol）などのプロトコルの上位に位置し、そのパケットの中でＳＯＡＰメッセージの交換を行うためのプロトコルである。ＳＯＡＰは、送受信するＳＯＡＰメッセージにＩＰアドレスやポート番号などの宛先情報や所定の処理を指示するアクション情報などのＸＭＬ文書本体以外の付加情報を付加できる。
【０００５】
このように、外部の機器とのメッセージ交換にＳＯＡＰを利用することで、複合機は自機の情報を外部の機器に提供したり、外部の機器からの要求に応じてプロッタやスキャナ等の搭載機能により処理を行ったりすることができる。複合機は外部の機器から受信したＳＯＡＰメッセージを解析し、実施する処理の切り分けを行っていた。複合機が実施する処理は、大別すると、印刷に関する処理と、印刷に関する処理以外の処理（以下、その他の処理という）とがある。
【０００６】
従来の複合機は、比較的時間の掛かる印刷に関する処理と、印刷に関する処理よりも比較的時間の掛からない、その他の処理とを異なるキューに入れて実施することで、その他の処理のレスポンスを早めていた。例えば特許文献１には、ジョブを優先度に応じて複数のキューに振り分けて処理を実施する内容が開示されている。
【特許文献１】特開平７−２２５６５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の複合機は印刷に関する処理の実施時であっても、異なるキューに入れて実施することで、その他の処理のレスポンスを早めることができるが、印刷に関する処理のうち、レスポンスを早めたい処理を優先して実施する等、印刷に関する処理の中でレスポンスを早めたい処理に対処することができないという問題があった。
【０００８】
本発明は、上記の点に鑑みなされたもので、印刷に関する処理のうち、レスポンスを早めたい処理に対処することができる画像処理装置及び優先順位決定方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明は、外部の機器から所定のメッセージを受信し、前記メッセージを解析して前記メッセージに応じた処理を実施する、印刷機能を備えた画像処理装置であって、外部の機器から受信した前記メッセージを解析して印刷に関する処理と、印刷に関する処理以外の処理とを切り分ける処理切り分け手段と、前記切り分け手段により切り分けられた前記印刷に関する処理の優先順位を所定の要因に基づいて決定する優先順位決定手段と、前記印刷に関する処理以外の処理を前記印刷に関する処理よりも優先的に実施したあとで前記優先順位に基づいた順番で前記印刷に関する処理を実施する処理実施手段と、を有し、前記優先順位決定手段は、前記メッセージに含まれる重み情報，自機内に保存されている優先機器の重み情報，及び前記印刷に関する処理に掛かるデータのデータサイズ毎の重み情報の少なくとも１つ以上を前記要因として、前記印刷に関する処理の優先順位を決定し、前記処理実施手段は、前記要因とされた前記印刷に関する処理毎の前記重み情報に基づいて前記印刷に関する処理を前記優先順位の異なるキューに入れ、前記重み情報が閾値より大きい前記印刷に関する処理が入れられている第１キューから前記印刷に関する処理を全て取り出して実施したあと、前記重み情報が閾値より小さい前記印刷に関する処理が入れられている第２キューから前記印刷に関する処理を取り出して実施し、前記第２キューに入れられてから所定時間以上経過した前記印刷に関する処理の前記重み情報に、所定値を加算し、前記重み情報が閾値より大きくなった前記印刷に関する処理を前記第２キューから取り出して第１キューに入れることを特徴とする。
【００１０】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、印刷に関する処理のうち、レスポンスを早めたい処理に対処することができる画像処理装置及び優先順位決定方法を提供可能である。
【発明を実施するための最良の形態】
【００１２】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。実施例では、画像処理装置の一例としての複合機を例に説明するが、如何なる画像処理装置であってもよい。
【００１３】
（ハードウェア構成）
本発明による複合機１００のハードウェア構成について図１を用いて説明する。図１は本発明による複合機のハードウェア構成図である。図１の複合機１００は、操作パネル１１と、記憶メディアＩ／Ｆ１２と、コントローラ１３と、データ通信Ｉ／Ｆ１４と、ＨＤＤ（Hard Disk Drive）１７と、スキャナ１５と、プロッタ１６とが、それぞれ相互に接続されるように構成されている。
【００１４】
操作パネル１１は入力装置１１ａと表示装置１１ｂとを有している。入力装置１１ａはハードウェアキーなどで構成されており、複合機１００に各操作信号を入力するのに用いられる。また、表示装置１１ｂは、ディスプレイなどで構成され、例えば画像形成動作に関する各種情報を表示する。データ通信Ｉ／Ｆ１４は、インタフェース装置１４ａを有しており、複合機１００をデータ伝送路であるネットワークなどに接続するインタフェースである。ＨＤＤ１７は複合機１００で取り扱われる受信文書データや読み取り画像データなどの各種データを格納している。また、ＨＤＤ１７は、これらの各種データを、所定のファイルシステムやＤＢ（Data Base）により管理している。
【００１５】
ＨＤＤ１７に格納される各種データの中には、例えば、デジタルカメラ等の外部の機器によって記録された電子データも含まれる。このような場合、電子データはメモリカードなどの記録媒体１２ｂによって複合機１００に提供されるか、データ伝送路であるネットワークなどを通じてアップロードされる。記録媒体１２ｂは、記憶メディアＩ／Ｆ１２が有するドライブ装置１２ａにセットされ、各種データが記録媒体１２ｂからドライブ装置１２ａを介してＨＤＤ１７に格納される。
【００１６】
コントローラ１３はＲＯＭ（Read Only Memory）１３ａ，ＲＡＭ（Random Access Memory）１３ｂ及びＣＰＵ（Central Processing Unit）１３ｃを有している。ＲＯＭ１３ａは複合機１００が起動されるときに実行されるプログラムや各種データを格納している。また、ＲＡＭ１３ｂは、ＲＯＭ１３ａやＨＤＤ１７から読み出された各種プログラムやデータを一時保持する。更に、ＣＰＵ１３ｃは、ＲＡＭ１３ｂが一時保持しているプログラムを実行する。
【００１７】
コントローラ１３は、例えば、データ通信Ｉ／Ｆ１４を介して印刷データを受信した場合に、ＲＯＭ１３ａからＲＡＭ１３ｂ上に読み出された、ＰＤＬ（Page Description Language）を解釈可能なプログラム（ＰＤＬパーサ）をＣＰＵ１３ｃにより実行し、印刷データを解釈してビットマップイメージを生成する。
【００１８】
スキャナ１５は画像読取装置１５ａを有しており、読み取り面に配置された原稿を光学的に読み取り画像データを生成する。プロッタ１６は印刷装置１６ａを有しており、例えば電子写真プロセス方式によってビットマップイメージを記録紙に印刷する。本発明による複合機１００では、上記したハードウェア構成により、コピー、プリンタ、ファクシミリ又はスキャナなどの複数の機能を実現している。
【００１９】
（ソフトウェア構成）
本発明による複合機１００のソフトウェア構成について図２を用いて説明する。図２は本発明による複合機のソフトウェア構成図である。
【００２０】
図２の複合機１００は、図１に示したプロッタ１６と、スキャナ１５と、ファクシミリやＨＤＤ１７などのハードウェアリソース１０１とを有するとともに、起動部１４０により起動されるプラットホーム１２０及びアプリケーション１３０を含むように構成されるソフトウェア群１１０とを備えている。
【００２１】
プラットホーム１２０は、アプリケーション１３０からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービス１５０と、１つ以上のハードウェア資源の管理を行い、コントロールサービス１５０からの獲得要求を調停するＳＲＭ（System Resource Manager）１２３と、ＯＳ（Operating System）１２１とを有する。
【００２２】
コントロールサービス１５０は、複数のサービスモジュールから形成され、ＳＣＳ（System Control Service）１２２と、ＥＣＳ（Engine Control Service）１２４と、ＭＣＳ（Memory Control Service）１２５と、ＯＣＳ（Operation panel Control Service）１２６と、ＦＣＳ（FAX Control Service）１２７と、ＮＣＳ（Network Control Service）１２８とを有するように構成される。
【００２３】
なお、このプラットホーム１２０は、予め定義されたメソッドによりアプリケーション１３０から処理要求を受信可能とするＡＰＩ（Application Program Interface）１０３と、プロッタ１６やスキャナ１５、その他のハードウェアリソース１０１等をハードウェア資源を利用する上位層からの要求に従ってＯＳ１２１を介して制御するときのインタフェースであるエンジンＩ／Ｆ１０２を有する。
【００２４】
ＯＳ１２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム１２０並びにアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００２５】
ＳＲＭ１２３は、ＳＣＳ１２２とともにシステムの制御およびリソースの管理を行うものであり、プロッタ１６やスキャナ１５などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（例えば、セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４ Ｉ／Ｆ、ＲＳ２３２Ｃ Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求に従って調停を行い、実行制御する。
【００２６】
具体的には、このＳＲＭ１２３は要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ１２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など。）を直接実施している。
【００２７】
ＳＣＳ１２２は、アプリ管理、操作部制御、システム画面表示、ＬＥＤ（Light Emitting Diode）表示、リソース管理、割り込みアプリ制御を行うものである。ＥＣＳ１２４は、プロッタ１６、スキャナ１５などから構成されるハードウェア資源のエンジンを制御するものである。
【００２８】
ＭＣＳ１２５は、画像メモリの取得および解放、ＨＤＤの利用、画像データの圧縮および伸張などを行うものである。ＯＣＳ１２６は、オペレータと本体制御間の情報伝達手段となる操作パネル１１を制御するモジュールである。
【００２９】
ＦＣＳ１２７は、システムコントローラの各アプリ層からＰＳＴＮ（Public Switched Telephone Networks）／ＩＳＤＮ（Integrated Services Digital Network）を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ：Static Random Access Memory）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供するものである。ＦＣＳ１２７には、そのサブプロセスであるＦＣＵハンドラ（ＦＣＵＨ）が起動される。このＦＣＵＨは、ＦＣＳ１２７からの指令によりファクシミリ送受信のときにファクシミリエンジンのデバイスドライバを制御するものである。
【００３０】
ＮＣＳ１２８は、ネットワークＩ／Ｏを必要とするアプリケーション１３０に対して共通に利用できるサービスを提供するためのモジュール群である。
【００３１】
本発明によるデータ通信機能は、ＮＣＳ１２８が有している。ＮＣＳ１２８を構成する具体的なソフトウェア部品（プログラム）については、後述の図３を用いて説明する。
【００３２】
アプリケーション１３０は、ＰＣＬやポストスクリプト（ＰＳ）などのＰＤＬパーサを有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクシミリ用アプリケーションであるファックスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５と、工程検査用アプリケーションである工程検査アプリ１１６と、配信用のアプリケーションである配信アプリ１１７とを有している。
【００３３】
これらの各コントロールサービスとＳＲＭ１２３と各アプリケーション１３０とは1つ以上のメソッドを有するオブジェクトであり、このオブジェクトを起動することによりそれぞれプロセスとしてＯＳ１２１上に生成されて実行される。そして、各プロセス内部には複数のスレッドが起動され、ＯＳ１２１の管理下でこれらのスレッドのＣＰＵ占有時間を切り替えることにより並列実行が実現されている。このため、複合機１００はプロセス切り替えによる並列実行と比較して、並列実行時の処理速度の向上が図られている。
【００３４】
なお、各アプリプロセスと各コントロールサービスプロセスとは、メソッドの実行によるプロセス間通信によってメッセージの送受信が行われる。ここからは、複合機１００に含まれるＮＣＳ１２８の詳細について説明する。
【００３５】
図３は、本発明による複合機に含まれるＮＣＳのソフトウェア構成図である。図３に示したＮＣＳ１２８のソフトウェア構成は、主に、各プロトコルによって受信したデータを各アプリケーション１３０に振り分け、各アプリケーション１３０から受信したデータをネットワーク側に送信する際の仲介を行うモジュール群で構成される。そのモジュール群の中には、ＷＳ−ＭＦＰモジュール群２０がある。
【００３６】
ここで上記の「ＷＳ」とは、Ｗｏｒｌｄ Ｗｉｄｅ Ｗｅｂ Ｃｏｎｓｏｒｔｉｕｍ（Ｗ３Ｃ）のワーキンググループ（ＷＧ）により進められているＸＭＬをベースとした標準化Ｗｅｂサービスの意味である。「ＷＳ」については、その詳細が開示されている公開文献「Devices Profile for Web Services」を開示し、ここでの説明を省略する。公開文献の入手先ＵＲＬは、"http://specs.xmlsoap.org/ws/2006/02/devprof/devicesprofile.pdf"である。以降の説明の中で、「ＷＳ」がつく機能名やモジュール名は、この標準化Ｗｅｂサービスに準拠して設計された機能やモジュールである。例えば、ＷＳ−ＭＦＰモジュール群２０は、標準化Ｗｅｂサービスに準拠して設計された複合機用のモジュール群を示している。
【００３７】
図３に示したＷＳ−ＭＦＰモジュール群２０はＷＳ−Ｐｒｉｎｔｅｒ２１及びＷＳ−Ｄｅｖｉｃｅ２２を含むように構成される。ＷＳ−Ｐｒｉｎｔｅｒ２１は、プリンタ関連のデータを外部の機器と複合機１００が有するプリンタアプリ１１１との間で取り扱う。ＷＳ−Ｄｅｖｉｃｅ２２は、外部の機器が複合機１００を利用する為の情報を外部の機器と複合機１００との間で取り扱う。ＷＳ−Ｐｒｉｎｔｅｒ２１及びＷＳ−Ｄｅｖｉｃｅ２２等の上記各ソフトウェア部品は、それぞれ別のプロセスで起動され、動作するように実装される。
【００３８】
複合機１００は、外部の機器と、ＷＳ−Ｐｒｉｎｔｅｒ２１及びＷＳ−Ｄｅｖｉｃｅ２２とのＳＯＡＰメッセージのやり取りにより、複合機１００の状況を外部の機器に把握させることができ、外部の機器からの要求に基づいて印刷等を実施することができる。
【００３９】
図４はＷＳ−Ｄｅｖｉｃｅの処理を表した構成図である。図４のＷＳ−Ｄｅｖｉｃｅ２２は、ＷＳ−Ｐｒｉｎｔｅｒ２１等からプリンタアプリ１１１等のアプリケーション情報を取得し、取得した情報を基に外部の機器に対して、複合機１００が提供可能な標準化Ｗｅｂサービスに関する情報を含む機器情報を送信する。
【００４０】
例えば複合機１００が起動した直後、外部の機器は複合機１００の機器情報（ＩＰアドレスや複合機１００を利用する為に必要なドライバ等）を知らない。そこで、複合機１００のＷＳ−Ｄｅｖｉｃｅ２２は起動後にＳＯＡＰメッセージにより複合機１００の存在を外部の機器に知らせると共に、ＩＰアドレスやドライバのインストールに必要な機器情報などを外部の機器を送信する。これにより、外部の機器は簡単な操作で複合機１００を利用することができる。
【００４１】
図５はＷＳ−Ｐｒｉｎｔｅｒの処理を表した構成図である。図５のＷＳ−Ｐｒｉｎｔｅｒは、ＷＳ−Ｄｅｖｉｃｅ２２からのプリンタアプリ１１１に関する情報の取得要求に応答したり、外部の機器からの印刷要求をプリンタアプリ１１１に通知したりする。上記においてＷＳ−Ｐｒｉｎｔｅｒ２１とＷＳ−Ｄｅｖｉｃｅ２２とは、互いに別のプロセスによって動作しているため、プロセス間通信によりデータの送受信を行う。
【００４２】
外部の機器とのやり取りは全てＳＯＡＰメッセージにより行われる。複合機１００はＳＯＡＰメッセージを出力する場合、一度、ＳＯＡＰメッセージに変換して外部の機器に出力し、メッセージが入力された場合、ＳＯＡＰメッセージを解析して処理を実施する。このように、複合機１００は、上記構成によるＮＣＳ１２８を有することにより、外部の機器との間でデータの送受信を行うことができる。
【００４３】
なお、図５のＷＳ−Ｐｒｉｎｔｅｒ２１は、ＳＯＡＰメッセージを解析して例えばＳｅｎｄＤｏｃｕｍｅｎｔ処理などの印刷に関する処理と、例えばＧｅｔ×××処理などの印刷に関する処理以外の処理（以下、その他の処理という）との切り分けを行う例を示している。
【００４４】
次に、具体的なＳＯＡＰメッセージに基づいて、印刷に関する処理と、その他の処理とを切り分ける方法を説明する。図６は、ＳＯＡＰメッセージを解析して、ＷＳ−Ｐｒｉｎｔｅｒが、印刷に関する処理と、その他の処理との切り分けを行う様子を表した説明図である。
【００４５】
ＷＳ−Ｐｒｉｎｔｅｒ２１は、例えばＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓの要求を表す図７のＳＯＡＰメッセージを受信した場合、図７の記述部分７１により、その他の処理として切り分け、ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ処理のＩ／Ｆを呼び出す。図７はＳＯＡＰメッセージの一例の構成図である。
【００４６】
また、ＷＳ−Ｐｒｉｎｔｅｒ２１は、例えばＳｅｎｄＤｏｃｕｍｅｎｔの要求を表すＳＯＡＰメッセージを受信した場合、印刷に関する処理として切り分け、ＳｅｎｄＤｏｃｕｍｅｎｔ処理のＩ／Ｆを呼び出す。さらに、ＷＳ−Ｐｒｉｎｔｅｒ２１は、例えばＧｅｔＡｃｔｉｖｅＪｏｂｓの要求を表すＳＯＡＰメッセージを受信した場合、その他の処理として切り分け、ＧｅｔＡｃｔｉｖｅＪｏｂｓ処理のＩ／Ｆを呼び出す。
【００４７】
このとき、ＷＳ−Ｐｒｉｎｔｅｒ２１は印刷に関する処理をＳｌｏｗＱｕｅｕｅＴｈｒｅａｄ（スローキュースレッド）にて実施し、その他の処理をＭａｉｎＴｈｒｅａｄ（メインスレッド）にて実施する。なお、メインスレッドはスローキュースレッドよりも優先的に処理が実施される。
【００４８】
このように、印刷に関する処理とその他の処理とを異なるスレッドにて実施することにより、複合機１００は比較的時間の掛かる印刷に関する処理の実施時であっても、早いレスポンスが必要な、その他の処理のレスポンスを早めることができる。
【００４９】
さらに、本発明による複合機１００では印刷に関する処理のうち、レスポンスを早めたい処理を優先して実施する。図８は、ＳＯＡＰメッセージを解析してＷＳ−Ｐｒｉｎｔｅｒが、優先順位に従った印刷処理の実施と、その他の処理の実施とを切り分けて行う様子を表した説明図である。
【００５０】
ステップＳ１では、ＷＳ−Ｐｒｉｎｔｅｒ２１が、受信したＳＯＡＰメッセージを解析して、印刷に関する処理と、その他の処理とに切り分ける。ＷＳ−Ｐｒｉｎｔｅｒ２１はステップＳ２に進み、ステップＳ１で切り分けられた印刷に関する処理の優先順位を後述する要因に基づいて決定する。
【００５１】
つまり、ＷＳ−Ｐｒｉｎｔｅｒ２１は印刷に関する処理と、その他の処理とに切り分けた後、更に印刷に関する処理の優先順位を後述の要因に基づいて決定することで、印刷に関する処理を優先順位に従って実施できる。なお、その他の処理は印刷に関する処理よりも優先的に実施される。
【００５２】
また、印刷に関する処理は、後述のような要因に基づいて決定された優先順位に従って実施されるので、印刷に関する処理のうち、レスポンスを早めたい処理を優先して実施することができる。
【００５３】
次に、印刷に関する処理の優先順位を決定する要因について説明する。優先順位決定の要因は、外部からのＰｒｉｏｒｉｔｙ設定，優先ＩＰアドレスの設定，データサイズの大きさ等が考えられる。
【００５４】
図９は外部からのＰｒｉｏｒｉｔｙ設定の例を表したＳＯＡＰメッセージである。図９のＳＯＡＰメッセージでは、外部からのＰｒｉｏｒｉｔｙ設定として、記述部分９１に重み「５０」が設定されている。
【００５５】
優先ＩＰアドレスの設定は、印刷に関する処理の優先順位を上げたい外部の機器のＩＰアドレスを優先ＩＰアドレスとして複合機１００の内部に予め保存しておくことで、印刷に関する処理の優先順位を上げたい外部の機器からの印刷に関する処理の優先順位を上げるものである。
【００５６】
データサイズの大きさは、印刷に関する処理に掛かるデータ（印刷データ等）のデータサイズ毎に重みを設定しておくことにより、データサイズの小さい印刷データの優先順位を上げ、データサイズの大きい印刷データの優先順位を下げるものである。データサイズの大きさは、例えばＴＣＰのチャンクサイズより判断できる。
【００５７】
以下、前述したような優先順位決定の要因による優先順位の決定と処理方法について説明する。
【実施例１】
【００５８】
ＷＳ−Ｐｒｉｎｔｅｒ２１には、優先順位決定の要因として外部からのＰｒｉｏｒｉｔｙ設定，優先ＩＰアドレスの設定，データサイズの大きさについて、それぞれ重みが図１０のように設定されているものとする。図１０は優先順位決定の要因に対して重みを設定するテーブルの一例の構成図である。
【００５９】
ＷＳ−Ｐｒｉｎｔｅｒ２１は、図１０のテーブルを用いて印刷に関する処理の重みを決定する。ここでは、印刷に関する処理の一例としてジョブ（１）及びジョブ（２）の重みを決定する手順を説明する。
【００６０】
ジョブ（１）は外部からのＰｒｉｏｒｉｔｙ設定として重み「６０」が設定され，優先ＩＰアドレスとしての設定がなく，データサイズの大きさが「大きい」ものとする。またジョブ（２）は、外部からのＰｒｉｏｒｉｔｙ設定として重み「５０」が設定され，優先ＩＰアドレスとしての設定が有り，データサイズの大きさが「小さい」ものとする。
【００６１】
ＷＳ−Ｐｒｉｎｔｅｒ２１は、図１０のテーブルからジョブ（１）の外部からのＰｒｉｏｒｉｔｙ設定，優先ＩＰアドレスの設定，データサイズの大きさについての重みを読み出して、以下の式（１）のようにジョブ（１）の重みを算出する。なお、式（１）におけるアルファベットは図１０に記載されたアルファベットに対応し、重みと優先順位決定の要因との対応関係を表している。
【００６２】
ジョブ（１）の重み＝６０（Ａ）＋５（Ｃ−１）＝６５・・・式（１）
外部からのＰｒｉｏｒｉｔｙ設定：重み「６０」
優先ＩＰアドレスの設定：重み「０」
データサイズの大きさ：重み「５」
ＷＳ−Ｐｒｉｎｔｅｒ２１は、図１０のテーブルからジョブ（２）の外部からのＰｒｉｏｒｉｔｙ設定，優先ＩＰアドレスの設定，データサイズの大きさについての重みを読み出して、以下の式（２）のようにジョブ（２）の重みを算出する。なお、式（２）におけるアルファベットは図１０に記載されたアルファベットに対応し、重みと優先順位決定の要因との対応関係を表している。
【００６３】
ジョブ（２）の重み＝５０（Ａ）＋２０（Ｂ）＋１５（Ｃ−３）＝８５・・・式（２）
外部からのＰｒｉｏｒｉｔｙ設定：重み「５０」
優先ＩＰアドレスの設定：重み「２０」
データサイズの大きさ：重み「１５」
ＷＳ−Ｐｒｉｎｔｅｒ２１は、前述のようにジョブ（１）及びジョブ（２）の重みを決定したあと、印刷に関する処理の一例としてのジョブ（１）及びジョブ（２）と算出した重みとを対応付けたＰｒｉｏｒｉｔｙ表を作成する。なお、ＷＳ−Ｐｒｉｎｔｅｒ２１は受信したＳＯＡＰメッセージから印刷に関する処理が切り分けられると、その印刷に関する処理の重みを算出し、Ｐｒｉｏｒｉｔｙ表に追加する。このように、ＷＳ−Ｐｒｉｎｔｅｒ２１は、印刷に関する処理毎の重みを管理する為のＰｒｉｏｒｉｔｙ表を作成又は更新する。
【００６４】
図１１は優先順位決定の要因による優先順位の決定と処理方法を表した一例のイメージ図である。ステップＳ１及びステップＳ２は図８に示したステップＳ１及びＳ２と同様である。ステップＳ２でＰｒｉｏｒｉｔｙ表を作成又は更新したあと、ＷＳ−Ｐｒｉｎｔｅｒ２１はジョブ（１）及びジョブ（２）をキュー２００に入れる。
【００６５】
ディスパッチャ２０１はＰｒｉｏｒｉｔｙ表を参照し、印刷に関する処理のうち一番重みのある処理をキュー２００から取り出して実施する。なお、ディスパッチャ２０１は印刷に関する処理のうち一番重みのある処理をキュー２００から取り出して実施した後、実施した処理を削除するようにＰｒｉｏｒｉｔｙ表を更新する。
【００６６】
例えば上記のジョブ（１）及びジョブ（２）の場合、ディスパッチャ２０１はＰｒｉｏｒｉｔｙ表を参照し、重み「８５」のジョブ（２）を優先してキュー２００から取り出して実施する。なお、ディスパッチャ２０１はジョブ（２）をキュー２００から取り出して実施した後、ジョブ（２）を削除するようにＰｒｉｏｒｉｔｙ表を更新する。
【００６７】
次に、ディスパッチャ２０１は重み「６５」のジョブ（１）を優先してキュー２００から取り出して実施する。ディスパッチャ２０１はジョブ（１）をキュー２００から取り出して実施した後、ジョブ（１）を削除するようにＰｒｉｏｒｉｔｙ表を更新する。
【００６８】
このように、本発明による複合機１００によれば、印刷に関する処理の優先順位を上記のような要因に基づいて決定し、その優先順位に従って実施されるので、印刷に関する処理のうち、レスポンスを早めたい処理を優先して実施することができる。
【実施例２】
【００６９】
実施例２におけるＰｒｉｏｒｉｔｙ表を作成するまでの処理は、実施例１と同様であるため、説明を省略する。図１２は優先順位決定の要因による優先順位の決定と処理方法を表した他の例のイメージ図である。
【００７０】
キューは任意の数だけ用意する。図１２の例ではＱｕｅｕｅ２００−１及びＱｕｅｕｅ２００−２の二つのキューを用意した例を表している。ディスパッチャ２０１は、Ｐｒｉｏｒｉｔｙ表を参照し、印刷に関する処理のうち、重みが５０以上の処理をＱｕｅｕｅ２００−１に入れ、重みが４９以下の処理をＱｕｅｕｅ２００−２に入れる。ディスパッチャ２０１は、Ｑｕｅｕｅ２００−１にジョブを入れた後、Ｑｕｅｕｅ２００−１に入れたジョブを削除するようにＰｒｉｏｒｉｔｙ表を更新する。
【００７１】
処理スレッド２０２は、まず、Ｑｕｅｕｅ２００−１に入れられているジョブを順番に取り出して全て処理し、Ｑｕｅｕｅ１に処理すべきジョブが無くなり次第、Ｑｕｅｕｅ２００−２に入れられているジョブを順次取り出して処理する。処理スレッド２０２はＱｕｅｕｅ２００−１又はＱｕｅｕｅ２００−２に入れられているジョブを取り出して処理する際、ジョブの重みを考慮しない。処理スレッド２０２はＱｕｅｕｅ２００−２に入れられているジョブを取り出した後、取り出したジョブを削除するようにＰｒｉｏｒｉｔｙ表を更新する。
【００７２】
なお、ディスパッチャ２０１はＱｕｅｕｅ２００−２に入れたジョブの重みを時間経過により増やしていく。ディスパッチャ２０１はＱｕｅｕｅ２００−２に入れたジョブのうち、時間経過により重みが５０以上になったジョブがＱｕｅｕｅ２００−２にあれば、そのジョブをＱｕｅｕｅ２から取り出し、Ｑｕｅｕｅ２００−１に入れる。
【００７３】
このように、本発明による複合機１００では、Ｑｕｅｕｅ２００−２に入れたジョブの重みを時間経過により増やしていくことで、Ｑｕｅｕｅ２００−２に入れられたジョブが長い間、実施されないという状況を避けることができる。
【００７４】
図１３は実施例２におけるディスパッチャの処理手順を表した一例のフローチャートである。ディスパッチャ２０１は、上記のように印刷に関する処理が切り分けられ、その処理の重みが算出されると、図１３のフローチャートに表される処理を開始する。
【００７５】
ステップＳ１１に進み、ディスパッチャ２０１はＰｒｉｏｒｉｔｙ表に処理の重みとタイムスタンプ（ＴｉｍｅＳｔａｍｐ）とを記載する。ディスパッチャ２０１はステップＳ１２に進み、Ｐｒｉｏｒｉｔｙ表を参照し、新たに切り分けられた印刷に関する処理又はＱｕｅｕｅ２００−２にある処理の重みが５０以上であるか否かを判定する。
【００７６】
新たに切り分けられた印刷に関する処理（ジョブ）の重みが５０以上であれば、ディスパッチャ２０１はステップＳ１３に進み、Ｑｕｅｕｅ２００−１にジョブを入れる（ｐｕｓｈする）。また、Ｑｕｅｕｅ２００−２にある処理の内、重みが５０以上のジョブがあれば、ディスパッチャ２０１は重みが５０以上のジョブをＱｕｅｕｅ２００−２から取り出してＱｕｅｕｅ２００−１に入れる。
【００７７】
ステップＳ１３に続いてステップＳ１５に進み、ディスパッチャ２０１はＱｕｅｕｅ２００−１に入れたジョブをＰｒｉｏｒｉｔｙ表から削除する。一方、新たに切り分けられたジョブの重みが５０以上でなければ、ディスパッチャ２０１はステップＳ１４に進み、Ｑｕｅｕｅ２００−２にジョブを入れる。
【００７８】
ステップＳ１４又はステップＳ１５に続いてステップＳ１６に進み、ディスパッチャ２０１はＰｒｉｏｒｉｔｙ表のタイムスタンプを参照し、各ジョブがＱｕｅｕｅ２００−２に入れられてからの時間経過を判定する。ステップＳ１７に進み、ディスパッチャ２０１はＱｕｅｕｅ２００−２に入れたジョブのうち、Ｑｕｅｕｅ２００−２に入れられてから一定時間が経過したジョブがあるか否かを判定する。
【００７９】
Ｑｕｅｕｅ２００−２に入れられてから一定時間が経過したジョブがあれば、ディスパッチャ２０１はステップＳ１８に進み、Ｑｕｅｕｅ２００−２に入れられてから一定時間が経過したジョブの重みを予め定められている値だけ増加させたあと、ステップＳ１９に進む。なお、Ｑｕｅｕｅ２００−２に入れられてから一定時間が経過したジョブがなければ、ディスパッチャ２０１はステップＳ１７に続いてステップＳ１９に進む。
【００８０】
ステップＳ１９では、ディスパッチャ２０１は一定時間待機する。ステップＳ２０に進み、ディスパッチャ２０１はＰｒｉｏｒｉｔｙ表を参照し、Ｑｕｅｕｅ２００−２に入れられているジョブがあるか否かを確認する。ステップＳ２１に進み、ディスパッチャ２０１はＱｕｅｕｅ２００−２にジョブがあれば、ステップＳ１２に戻り処理を続ける。ディスパッチャ２０１はＱｕｅｕｅ２００−２にジョブがなければ、図１３のフローチャートの処理を終了する。
【００８１】
図１４は、実施例２における処理スレッドの処理手順を表した一例のフローチャートである。ステップＳ３１に進み、処理スレッド２０２はＱｕｅｕｅ２００−１にジョブがあるか否かを判定する。Ｑｕｅｕｅ２００−１にジョブがあれば、処理スレッド２０２はステップＳ３２に進み、Ｑｕｅｕｅ２００−１からジョブを順次取り出して処理する。処理スレッド２０２はＱｕｅｕｅ２００−１にジョブが無くなるまでステップＳ３１，Ｓ３２の処理を繰り返す。
【００８２】
Ｑｕｅｕｅ２００−１にジョブが無くなると、処理スレッド２０２はステップＳ３３に進み、Ｑｕｅｕｅ２００−２にジョブがあるか否かを確認する。Ｑｕｅｕｅ２００−２にジョブがあれば、処理スレッド２０２はステップＳ３４に進み、これから取り出して処理するジョブを削除するようにＰｒｉｏｒｉｔｙ表を更新する。ステップＳ３５に進み、処理スレッド２０２はＱｕｅｕｅ２００−２からジョブを取り出して処理し、ステップＳ３１に戻る。Ｑｕｅｕｅ２００−２にジョブがなければ、処理スレッド２０２はステップＳ３３からステップＳ３１に戻る。
【００８３】
このように、本発明による複合機１００によれば、印刷に関する処理の優先順位を上述のような要因に基づいて決定し、その優先順位に従って実施されるので、印刷に関する処理のうち、レスポンスを早めたい処理を優先して実施することができる。
【００８４】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００８５】
【図１】本発明による複合機のハードウェア構成図である。
【図２】本発明による複合機のソフトウェア構成図である。
【図３】本発明による複合機に含まれるＮＣＳのソフトウェア構成図である。
【図４】ＷＳ−Ｄｅｖｉｃｅの処理を表した構成図である。
【図５】ＷＳ−Ｐｒｉｎｔｅｒの処理を表した構成図である。
【図６】ＳＯＡＰメッセージを解析して、ＷＳ−Ｐｒｉｎｔｅｒが、印刷に関する処理と、その他の処理との切り分けを行う様子を表した説明図である。
【図７】ＳＯＡＰメッセージの一例の構成図である。
【図８】ＳＯＡＰメッセージを解析してＷＳ−Ｐｒｉｎｔｅｒが、優先順位に従った印刷処理の実施と、その他の処理の実施とを切り分けて行う様子を表した説明図である。
【図９】外部からのＰｒｉｏｒｉｔｙ設定の例を表したＳＯＡＰメッセージである。
【図１０】優先順位決定の要因に対して重みを設定するテーブルの一例の構成図である。
【図１１】優先順位決定の要因による優先順位の決定と処理方法を表した一例のイメージ図である。
【図１２】優先順位決定の要因による優先順位の決定と処理方法を表した他の例のイメージ図である。
【図１３】実施例２におけるディスパッチャの処理手順を表した一例のフローチャートである。
【図１４】実施例２における処理スレッドの処理手順を表した一例のフローチャートである。
【符号の説明】
【００８６】
１１    操作パネル
１２    記憶メディアＩ／Ｆ
１３    コントローラ
１４    データ通信Ｉ／Ｆ
１５    スキャナ
１６    プロッタ
１７    ＨＤＤ（Hard Disk Drive）
２０    ＷＳ−ＭＦＰモジュール群
２１    ＷＳ−Ｐｒｉｎｔｅｒ
２２    ＷＳ−Ｄｅｖｉｃｅ
１００    複合機
１１１    プリンタアプリ
１２８    ＮＣＳ
２００，２００−１，２００−２    キュー
２０１    ディスパッチャ
２０２    処理スレッド
【図１】
0005211634.tif 000002
【図２】
0005211634.tif 000003
【図３】
0005211634.tif 000004
【図４】
0005211634.tif 000005
【図５】
0005211634.tif 000006
【図６】
0005211634.tif 000007
【図７】
0005211634.tif 000008
【図８】
0005211634.tif 000009
【図９】
0005211634.tif 000010
【図１０】
0005211634.tif 000011
【図１１】
0005211634.tif 000012
【図１２】
0005211634.tif 000013
【図１３】
0005211634.tif 000014
【図１４】
0005211634.tif 000015