JP2018124777A - 情報処理装置、制御方法およびプログラム - Google Patents

情報処理装置、制御方法およびプログラム Download PDF

Info

Publication number
JP2018124777A
JP2018124777A JP2017016203A JP2017016203A JP2018124777A JP 2018124777 A JP2018124777 A JP 2018124777A JP 2017016203 A JP2017016203 A JP 2017016203A JP 2017016203 A JP2017016203 A JP 2017016203A JP 2018124777 A JP2018124777 A JP 2018124777A
Authority
JP
Japan
Prior art keywords
program
predetermined
server
job
communication device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017016203A
Other languages
English (en)
Other versions
JP2018124777A5 (ja
JP6768544B2 (ja
Inventor
弘明 守本
Hiroaki Morimoto
弘明 守本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2017016203A priority Critical patent/JP6768544B2/ja
Priority to US15/870,440 priority patent/US10277765B2/en
Publication of JP2018124777A publication Critical patent/JP2018124777A/ja
Publication of JP2018124777A5 publication Critical patent/JP2018124777A5/ja
Application granted granted Critical
Publication of JP6768544B2 publication Critical patent/JP6768544B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • H04N1/00941Interaction of different applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1207Improving or facilitating administration, e.g. print management resulting in the user being informed about print result after a job submission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1259Print job monitoring, e.g. job status
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Abstract

【課題】 より適切な排他制御を実行することを目的とする。
【解決手段】 所定のプログラム及び、前記所定のプログラム以外の少なくとも1つの他のプログラムを有する情報処理装置のコンピュータに、ジョブが生成される前に、排他オブジェクトを取得するための取得処理を前記所定のプログラムを用いて実行する取得ステップと、前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態では、前記所定のプログラムを用いて前記ジョブを生成し、前記所定のプログラムが用いられて実行された前記取得処理によって前記排他オブジェクトが取得されない状態では、前記所定のプログラムを用いて前記ジョブを生成しない生成ステップと、を実行させるプログラムを提供することによって課題を解決する。
【選択図】 図1

Description

本発明は、情報処理装置、制御方法およびプログラムに関する。
通信装置にジョブを送信可能な情報処理装置において、第1プログラムと第2プログラムを含む複数のプログラムが動作する形態が知られている。このような形態では、例えば、ある通信装置との第1プログラムによる指示に基づく通信と第2プログラムによる指示に基づく通信とが、同一の通信経路で並行して実行される状況が生じ得る。
しかしながら、ある通信装置との第1プログラムによる指示に基づく通信と第2プログラムによる指示に基づく通信とが並行して実行される場合、例えば、通信されるデータの混在が生じてしまうおそれがある。そこで、通信されるデータの混在が生じることを抑制するために、ある通信装置との第1プログラムによる指示に基づく通信と第2プログラムによる指示に基づく通信とが並行して実行されないようにする制御を実行する形態が知られている。このような制御を、排他制御という。また、このような形態の情報処理装置は、例えば、排他オブジェクトと呼ばれる情報を情報処理装置のOSから取得することで排他制御を実現している。排他オブジェクトとしては、例えば、特許文献1に記載されているようなMutexオブジェクト等が利用される。
特開2006−215805号
ところで、排他制御を実行する通信装置が普及するにつれて、より適切な排他制御を実行することが可能な通信装置が要望されている。
本発明は上記課題を鑑みてなされたもので、より適切な排他制御を実行することを目的とする。
上記目的を達成するために本発明のプログラムは、通信装置に所定の処理を実行させるためのジョブを生成する所定のプログラムであって、
前記所定のプログラム及び、前記所定のプログラム以外の少なくとも1つの他のプログラムを有する情報処理装置のコンピュータに、
前記ジョブが生成される前に、排他オブジェクトを取得するための取得処理を前記所定のプログラムを用いて実行する取得ステップと、
前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態では、前記所定のプログラムを用いて前記ジョブを生成し、前記所定のプログラムが用いられて実行された前記取得処理によって前記排他オブジェクトが取得されない状態では、前記所定のプログラムを用いて前記ジョブを生成しない生成ステップと、を実行させ、
前記所定のプログラムが用いられて生成された前記ジョブは、前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で前記通信装置に送信され、
前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されていない状態では、前記他のプログラムに基づいた前記通信装置との通信が実行可能であり、前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態では、前記他のプログラムに基づいた前記通信装置との通信が行われないことを特徴とする。
また、本発明のプログラムは、通信装置に所定の処理を実行させるためのジョブを生成する所定のプログラムであって、前記所定のプログラムを有する情報処理装置のコンピュータに、
前記所定のプログラムが用いられて前記ジョブが生成される前に、排他オブジェクトを取得するための取得処理をサーバが有する所定のサーバ側プログラムを用いて実行させるための指示を前記サーバに送信する指示ステップと、
前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で、前記所定のプログラムを用いて前記ジョブを生成し、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により前記排他オブジェクトが取得されない状態では、前記所定のプログラムを用いて前記ジョブを生成しない生成ステップと、
を実行させ、
前記所定のプログラムによって生成された前記ジョブは、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で前記サーバを介して前記通信装置に送信され、
前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されていない状態では、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムに基づいた前記通信装置との通信が実行可能であり、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態では、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムによる指示に基づいた前記通信装置との通信が行われないことを特徴とする。
本発明によれば、より適切な排他制御を実行することが可能となる。
通信装置と情報処理装置によって構成される印刷システムを示すブロック図 情報処理装置が備えるプリンタドライバがV3ドライバである場合に、情報処理装置が備えるソフトウェアの構成 V3ドライバにおけるランゲージモニタが、印刷ジョブの送信時に実行する従来の処理を示すフローチャート USB通信アプリが実行する処理を示すフローチャート 情報処理装置が備えるプリンタドライバがV4ドライバである場合に、情報処理装置が備えるソフトウェアの構成 コマンド生成フィルタが印刷ジョブの送信時に実行する処理を示すフローチャート 第1実施形態において、コマンド生成フィルタが実行する印刷ジョブ生成処理の詳細を示すフローチャート コマンド生成フィルタが実行する終了処理を示すフローチャート サーバ/クライアント環境を構成している印刷システムを示すブロック図 第2実施形態において、コマンド生成フィルタが実行する印刷ジョブ生成処理の詳細を示すフローチャート 常駐プログラムの処理を示すフローチャート 第3実施形態において、コマンド生成フィルタが実行する印刷ジョブ生成処理の詳細を示すフローチャート
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
<第1実施形態>
本発明を適用した通信装置について説明する。通信装置は、情報処理装置からジョブを受信可能な装置である。本実施形態においては、通信装置としてインクジェット方式の複合機(MFP)を例示している。MFPとは、プリント、スキャナ、コピー、ファックス等の複数の機能を有する装置である。なお、通信装置は、例えば、複写機やファクシミリ装置、スキャナ、パーソナルコンピュータ(PC)、スマートホン、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ、音楽再生デバイス等であっても良い。また、通信装置がプリンタである場合は、利用する印刷方式はインクジェット方式に限定されず、例えば電子写真方式であっても良い。さらに、通信装置は、MFPではなく、単機能の装置(SFP)であっても良い。情報処理装置は、通信装置にジョブを送信可能な装置である。本実施形態においては、情報処理装置として、携帯端末を例示している。なお、情報処理装置は、例えば、PCやスマートホン、タブレット端末、PDA、カメラ等であっても良い。また、以下の説明においては、情報処理装置及び通信装置間で扱われるジョブとして、通信装置が印刷処理を実行するための印刷ジョブを例示しているが、この形態に限定されない。例えば、通信装置がスキャン処理を実行するためのスキャンジョブや、通信装置がコピー処理を実行するためのコピージョブ等であっても良い。なお、ここで印刷処理とは、インク等の記録剤を用いて、紙等の記録媒体上に画像を形成する処理を示す。また、スキャン処理とは、図示しないスキャナ部によって原稿を読み取って、当該原稿に基づく画像データを生成する処理を指す。
図1は情報処理装置110と情報処理装置110に接続された通信装置120により構成される通信システムの全体構成を示すブロック図の一例である。情報処理装置110は入力I/F111、CPU112、ROM113、出力I/F114、外部記憶装置115、RAM116、入力装置117、出力装置118(表示部)、入出力I/F119を有する。CPU112はROM113等に保存されている制御命令に従い情報処理装置110を制御する。ROM113は初期化プログラムを記憶し、外部記憶装置115は、CPU112が実行する制御プログラムや組込オペレーティングシステム(以下、OS)、プリンタドライバやその他各種のデータを記憶している。本実施形態では、外部記憶装置115に格納されている制御プログラムは、外部記憶装置115に格納されている組込OSの管理下で、スケジューリングやタスクスイッチ等のソフトウェア制御を行う。RAM116は外部記憶装置115に保存される各種プログラムがワークメモリーとして使用する。入力装置117はデータ入力や動作指示に使用され入力I/F111に接続されている。出力装置118はデータ表示や状態の通知に使用され出力I/F114に接続されている。
通信装置120はRAM121、ROM122、プリントエンジン123、CPU124、入出力I/F125から構成される。情報処理装置110と通信装置120はUSB(Universal Serial Bus)(登録商標)ケーブル130により接続されている。すなわち、本実施形態では、通信装置120と情報処理装置110間の通信は、USB通信方式によって行われるものとする。なお、例えば、通信装置120と情報処理装置110間の通信がUSB通信方式以外の方式(無線通信方式等)で行われても良いし、いずれの通信方式が用いられるかが選択可能な形態であっても良い。RAM121はCPU124のワークメモリーとして使用され、受信したデータの一時保存用バッファとしても利用される。ROM122は制御命令を保存している。プリントエンジン123はRAM121に保存されたデータに基づき印刷を行う。CPU124はROM122等に保存されている制御命令に従い通信装置120を制御する。なお、本実施形態においては情報処理装置110および通信装置120の処理分担を前記のように示したが、処理の分担形態はこれに依らない。
本実施形態では、情報処理装置110が備えるプリンタドライバは、Microsoft社のWindows(登録商標)で採用される、Version3ドライバ(V3ドライバ)か、Version4ドライバ(V4ドライバ)であるものとする。なお、プリンタドライバは、例えば、ユーザがアプリケーションを介して印刷の実行を指示した場合等に起動する。
ここで、情報処理装置110が備えるプリンタドライバがV3ドライバである場合の、情報処理装置110が備えるソフトウェアの構成を説明する。また、情報処理装置110が備えるプリンタドライバがV3ドライバである場合に情報処理装置110が実行する従来の処理について説明する。
図2は、情報処理装置110が備えるプリンタドライバがV3ドライバである場合に、情報処理装置110が備えるソフトウェアの構成を示す図である。それぞれの構成が実行する処理は、実際には、CPU112が、それぞれの構成に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。
図2に示す構成のうち、構成202、203、204、209がOSのモジュール、構成206、207、208がプリンタドライバのモジュールとしているが、それぞれの構成は、OSとプリンタドライバのうちいずれのモジュールであっても良い。
アプリケーション201は、外部記憶装置115に保存されているアプリケーションプログラムであり、印刷する有償コンテンツ等の画像情報や文字情報を含む描画情報、用紙サイズやレイアウト等の印刷設定情報等を含む印刷データを作成する機能を有する。なお、アプリケーション201は、ユーザから印刷指示の入力を受け付けることで印刷データの作成を開始する。アプリケーション201が作成した印刷データは、OSの印刷サポート機能202を介し、スプールデータ205としてスプーラ203のジョブキュー204に一時的に蓄積される。なお、アプリケーション201は、OSの印刷サポート機能202を介して、ベンダー固有のユーザインターフェースモジュール207から受信した印刷設定情報を印刷データに付加する。なお、受信される印刷設定情報は例えば、ユーザから印刷指示の入力を受け付ける前に、ベンダー固有のユーザインターフェースモジュール207を介してユーザによって設定・入力された印刷設定に関する情報である。ベンダー固有のユーザインターフェースモジュール207とは、プリンタドライバのベンダーによって任意に設計される印刷設定画面を表示するためのモジュールである。ユーザは、当該印刷設定画面に対して操作を行うことで、任意の印刷設定の入力を行うことができる。
スプーラ203は、ジョブ管理機能を有し、渡されたスプールデータ205を、スプールデータ205に対応する印刷ジョブの送信が完了したと認識するまで保持し管理する。具体的には、スプーラ203は、例えば、プリンタ毎に、印刷ジョブのサイズ、ジョブ名、送信するジョブ順番等を管理し、管理している情報をステータス表示アプリケーションに伝達することで、当該情報を出力装置118等に表示する。また、紙ジャムなどのエラー発生時に備え、印刷データを含む印刷ジョブそのものをジョブ終了まで保持するようにしても良い。なお、ジョブキュー204に保存されているスプールデータ205の情報は、例えば、ベンダー固有のユーザインターフェースモジュール207、アプリケーション201などを介して所定のインタフェース関数を用いて参照することできる。
コマンド生成フィルタ206は、ジョブキュー204に蓄積されたスプールデータ205を、スプールデータ205に付加されている印刷設定情報に基づいて、通信装置120が解釈可能な印刷ジョブに変換することで、印刷ジョブを生成する。
すなわち、コマンド生成フィルタ206は、印刷ジョブを生成するための生成モジュールとして動作する。なお、コマンド生成フィルタ206への印刷データの入力処理や、コマンド生成フィルタ206による印刷データの変換処理は、不図示のOSのコマンド生成フィルタ制御機能により制御される。その後、コマンド生成フィルタ206は、生成した印刷ジョブを、情報処理装置110のRAM116、及び外部記憶装置115に順次出力する。また、RAM116及び外部記憶装置115へ出力された印刷ジョブは、スプーラ203によって管理されている処理順番に従って順に処理される。印刷ジョブが処理される場合、当該印刷ジョブはまず、スプーラ203により読み出され、特定サイズのパケット毎に分割される。そして、分割されたジョブが順次ランゲージモニタ208に出力される。以後、1つの印刷ジョブが分割されることで取得される複数のジョブのそれぞれを、分割ジョブと言う。すなわち、分割ジョブが複数合わさることで、1つの印刷ジョブが形成される。
ランゲージモニタ208は、通信装置120との双方向通信する機能(双方向通信機能)を担うモジュールである。具体的には、ランゲージモニタ208は、入力された分割ジョブを順次USBポートモニタ209に入力する。これにより、印刷ジョブが通信装置120へ送信される。また、例えば、ランゲージモニタ208は、通信装置120のステータスや、ジョブの処理状況等の情報を、通信装置120から取得する機能も担う。
ところで、例えば、双方向通信機能の設定を変更可能な情報処理装置110がある。このような情報処理装置110においては、双方向通信機能が有効に設定されていた場合に、ランゲージモニタ208が動作する。すなわち、印刷ジョブが、ランゲージモニタ208を介して通信装置120に送信される。また、例えば、通信装置120のステータスや、ジョブの処理状況等の情報が適宜ランゲージモニタ208によって取得される。一方、双方向通信機能が無効に設定されていた場合には、ランゲージモニタ208が動作しない。この場合は、印刷ジョブが、ランゲージモニタ208を介さずに通信装置120に送信される。具体的には、印刷ジョブがスプーラ203からUSBポートモニタ209に直接入力される。また、例えば、通信装置120のステータスや、ジョブの処理状況等の情報がランゲージモニタ208によって取得されない。すなわち、双方向通信機能が無効に設定されている状態では、プリンタドライバは、通信装置120との一方向の通信(データの送信)のみ行う。
USBポートモニタ209とは、USBによる通信を制御するためのモジュールである。具体的には、USBポートモニタ209は、ランゲージモニタ208から入力された印刷ジョブを、USBポートモニタ209が制御している装置に送信する。また、USBポートモニタ209は、USB通信アプリ210から入力された各種コマンドに応じて、USBポートモニタ209が制御している装置との通信を行う。本実施形態では、情報処理装置110は、USBによって通信装置120と接続しているため、USBポートモニタ209によって制御される装置は、通信装置120となる。なお、例えば、USBによって接続している装置が複数ある場合は、USBポートモニタ209は複数あっても良い。この場合、1つのUSBポートモニタ209が、USBによって接続している1つの装置を制御するものとする。そして、ランゲージモニタ208やUSB通信アプリ210は、複数のUSBポートモニタ209のうち、通信相手となる装置を制御しているUSBポートモニタ209に、情報を入力する。
USB通信アプリ210とは、USBポートモニタ209によって制御されている装置との通信を行うアプリケーションプログラムである。具体的にはUSB通信アプリ210は、例えば、通信装置120の使用状況を調査するためのプログラムや、通信装置120が処理したジョブの詳細情報(履歴)を取得するためのプログラムである。USB通信アプリ210は、USBポートモニタ209によって制御されている装置との通信を行う場合、USB通信アプリ210が実行したい制御に対応するコマンドをUSBポートモニタ209に入力する。
なお、USB通信アプリ210は、プリンタドライバとは別体のプログラムであり、プリンタドライバとは独立した制御で(プリンタドライバの動作状態を考慮せずに)、USBポートモニタ209によって制御されている装置との通信を行う。すなわち、USB通信アプリ210は、プリンタドライバとは独立した制御で動作する。そのため、ある通信装置とのUSB通信アプリ210によるUSB通信と、プリンタドライバによるUSB通信とが、同一の通信経路で並行して実行される状況が生じ得る。
しかしながら、USB通信アプリ210によるUSB通信と、プリンタドライバによるUSB通信とが同一の通信経路で並行して実行される場合、例えば、通信されるデータの混在が生じてしまうおそれがある。また、例えば、USB通信アプリ210によるUSB通信に対する通信装置120からのレスポンスが、プリンタドライバによって取得されてしまうおそれがある。このような課題を生じさせないために、情報処理装置110は、USB通信アプリ210によるUSB通信と、プリンタドライバによるUSB通信とが同一の通信経路で並行して実行されないようにする制御(排他制御)を実行する。
具体的には、情報処理装置110は、あるモジュールによってUSB通信を行う場合に、排他オブジェクトと呼ばれる情報を当該モジュールに取得させる。より具体的には、当該モジュールが、情報処理装置110が有するOSに対し、排他オブジェクトの生成を指示する。そして、OSが作成した排他オブジェクトを、当該モジュールが取得する。排他オブジェクトは、排他制御に利用される情報であり、Mutexオブジェクト等の情報である。なお、Mutexオブジェクトとは、Mutex(mutual exclusion service)と呼ばれる排他制御の仕組みにおいて利用される情報である。排他オブジェクトは、例えば、排他制御のための所定のフラグや、ファイル等であっても良い。
情報処理装置110は、排他オブジェクトを保持しているモジュールでUSB通信を実行し、あるモジュールによって排他オブジェクトが保持されている状態では、排他オブジェクトを保持していないモジュールによってUSB通信を実行しないように制御する。すなわち、情報処理装置110が備える所定のプログラムによって排他オブジェクトが取得・保持されている場合、情報処理装置110が備えるプログラムのうち、所定のプログラム以外の排他制御に係わるプログラムによる通信装置120との通信が行われない。このような制御により、USB通信アプリ210によるUSB通信と、プリンタドライバによるUSB通信とが同一の通信経路で並行して実行されないように制御することができる。
なお、所定のプログラムによって排他オブジェクトが破棄された場合、情報処理装置110が備えるプログラムのうち、排他オブジェクトを保持していた所定のプログラム以外のプログラムによる通信装置120とのUSB通信が実行可能となる。
図4は、USB通信アプリ210が実行する処理を示すフローチャートである。USB通信アプリ210が実行する処理は、実際には、CPU112が、USB通信アプリ210に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。なお、本フローチャートが示す処理は、USB通信アプリ210が、USBポートモニタ209によって制御されている装置との通信を開始する場合に開始される。
まず、USB通信アプリ210は、S401にて、通信に利用するUSBポートモニタ209に関連付けられた排他オブジェクトを保持しているか否かを判定する。USB通信アプリ210は、排他オブジェクトを保持していると判定した場合、S404に進み、排他オブジェクトを保持していないと判定した場合、S402に進む。
USB通信アプリ210は、S402では、通信に利用するUSBポートモニタ209に関連付いた排他オブジェクトの取得(排他オブジェクト取得処理)を試みる。なお、例えば、プリンタドライバの構成(ランゲージモニタ208等)等の、USB通信アプリ210以外のソフトウェアによって、当該排他オブジェクトが保持されている状態では、USB通信アプリ210は、当該排他オブジェクトを取得できない。すなわち、当該状態では、排他オブジェクト取得処理が失敗する。USB通信アプリ210は、排他オブジェクト取得処理が成功した場合は、当該排他オブジェクトを取得する。
次に、USB通信アプリ210は、S403にて、S402における排他オブジェクト取得処理が成功したか否かを判定する。USB通信アプリ210は、排他オブジェクト取得処理が成功したと判定したと判定した場合、S404に進む。一方、USB通信アプリ210は、排他オブジェクト取得処理が成功していない(失敗した)と判定した場合、再度S402の処理を実行し、排他オブジェクト取得処理が成功するまで処理を繰り返す。すなわち、USB通信アプリ210は、USB通信アプリ210以外のソフトウェアが排他オブジェクトを破棄することで、新たに排他オブジェクトの取得が可能となるまで処理を繰り返す。なおこのとき、USB通信アプリ210は、処理を繰り返した回数が所定回数を超えた場合は、S404に進んでも良い。またUSB通信アプリ210は、処理の繰り返しにかかった時間が所定時間を超えた(USB通信アプリ210によって排他オブジェクトが保持されていない状態が所定の時間以上続いた)場合は、S404に進んでも良い。これにより、エラー等により排他オブジェクトが取得できない場合に、データ通信がいつまでも実行できない事態が生じてしまうことを抑制できる。
また、USB通信アプリ210は、例えば、USB通信アプリ210以外のソフトウェアが排他オブジェクトを保持しているか否かを判定し、保持していないと判定した場合は、S404に進んでも良い。これは、たとえば、OSにエラーが生じている場合には、USB通信アプリ210以外のソフトウェアが排他オブジェクトを保持していないにも係わらず排他オブジェクト取得処理が失敗するケースがあるためである。また、例えば、USB通信アプリ210は、後述の所定のデータを送信せずに処理を終了しても良い。また、このとき、USB通信アプリ210は、出力装置118に、エラーを通知する画面を表示しても良い。
USB通信アプリ210は、S404では、通信に利用するUSBポートモニタ209に、所定のデータを送信する。具体的には、USB通信アプリ210は、データをUSBポートモニタ209を介して通信装置120に送信するための関数と共に、所定のデータをUSBポートモニタ209へ入力する。なお、所定のデータとは具体的には、USB通信アプリ210が実行したい機能に関するコマンドや、USB通信アプリ210が通信装置120に送信したい情報である。
次に、USB通信アプリ210は、S405にて、保持している排他オブジェクトを破棄し、排他オブジェクトを保持している状態から排他オブジェクトを保持していない状態に遷移する。その後、処理を終了する。
このように、USB通信アプリ210は、USBポートモニタ209が制御している装置との通信を行う際には、通信に利用するUSBポートモニタ209に関連付いた排他オブジェクトを取得する。これにより、USB通信アプリ210が、USBポートモニタ209を介した通信を行っている間は、プリンタドライバ等のUSB通信アプリ210と異なるソフトウェアによるUSBポートモニタ209を介した通信が行われなくなる。このような形態とすることで、例えば、プリンタドライバによって送信される印刷ジョブと、USB通信アプリ210が通信するデータとが混在してしまうことを抑制できる。
図3は、V3ドライバにおけるランゲージモニタ208が、印刷ジョブの送信時に実行する従来の処理を示すフローチャートである。なお、ランゲージモニタ208が実行する処理は、実際には、CPU112が、ランゲージモニタ208に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。また、本フローチャートが示す処理は、コマンド生成フィルタ206によって少なくとも1部分の印刷ジョブが生成された後に実行される。
ランゲージモニタ208は、S301にてスプーラ203から分割ジョブを受信する。なお、スプーラ203は、印刷ジョブを分割してランゲージモニタ208に送信する。そのため、ランゲージモニタ208はこのとき、コマンド生成フィルタ206によって生成された印刷ジョブの一部を受信することになる。
次に、ランゲージモニタ208は、受信した分割ジョブの転送先のUSBポートモニタ209に関連付けられた排他オブジェクトを保持しているか否かをS302にて判定する。ランゲージモニタ208は、排他オブジェクトを保持していないと判定した場合、S303に進み、排他オブジェクトを保持していると判定した場合、S305に進む。
ランゲージモニタ208は、S303では、受信した分割ジョブの転送先のUSBポートモニタ209に関連付いた排他オブジェクトの取得(排他オブジェクト取得処理)を試みる。なお、例えば、USB通信アプリ210等の、ランゲージモニタ208以外のソフトウェアによって、当該排他オブジェクトが保持されている状態では、ランゲージモニタ208は、当該排他オブジェクトを取得できない。すなわち、当該状態では、排他オブジェクト取得処理は失敗する。ランゲージモニタ208は、排他オブジェクト取得処理が成功した場合は、当該排他オブジェクトを取得する。
その後、ランゲージモニタ208は、S304にて、S303における排他オブジェクト取得処理が成功したか否かを判定する。ランゲージモニタ208は、排他オブジェクト取得処理が成功したと判定した場合、S305へ進む。一方、ランゲージモニタ208は、排他オブジェクト取得処理が成功していない(失敗した)と判定した場合、再度S303の処理を実行し、排他オブジェクト取得処理が成功するまで処理を繰り返す。なお、このとき、ランゲージモニタ208は、処理を繰り返した回数が所定回数を超えた場合や、処理の繰り返しにかかった時間が所定時間を超えた場合は、S305に進んでも良い。これにより、エラー等により排他オブジェクトが取得できない場合に、データ通信がいつまでも実行できない事態が生じてしまうことを抑制できる。また、ランゲージモニタ208は、例えば、ランゲージモニタ208以外のソフトウェアが排他オブジェクトを保持しているか否かを判定し、保持していないと判定した場合は、S305に進んでも良い。また、例えば、ランゲージモニタ208は、印刷ジョブを送信せずに処理を終了しても良い。また、このとき、ランゲージモニタ208は、出力装置118に、エラーを通知する画面を表示しても良い。具体的には、例えば、ランゲージモニタ208は、出力装置118に印刷ジョブや通信装置120に関する情報を表示する機能を有するモジュールやOSに、エラーを通知する画面を表示するように指示しても良い。
ランゲージモニタ208は、S305では、USBポートモニタ209へ分割ジョブを送信する。具体的には、ランゲージモニタ208は、データをUSBポートモニタ209を介して通信装置120に送信するための関数と共に、分割ジョブをUSBポートモニタ209へ入力する。
そして、ランゲージモニタ208は、S306にて、送信対象の印刷ジョブの全て(送信対象の印刷ジョブに対応する全ての分割ジョブ)を送信した否かを判定する。ランゲージモニタ208は、送信対象の印刷ジョブの全てを送信したと判定した場合、S307に進み、送信対象の印刷ジョブの全てを送信していないと判定した場合、S301に戻り、送信対象の印刷ジョブの残り(未送信の分割ジョブ)を受信する。なお、ランゲージモニタ208は、S301で受信される分割ジョブを解析することで、当該分割ジョブが、送信対象の印刷ジョブが分割されて取得される複数の分割ジョブのうち、最後に送信される分割ジョブか否かを判定することができる。そして、ランゲージモニタ208は、最後に送信される分割ジョブであると判定した場合、送信対象の印刷ジョブの全てを送信したと判定し、最後に送信される分割ジョブでないと判定した場合、送信対象の印刷ジョブの全てを送信していないと判定する。送信対象の印刷ジョブの全てがUSBポートモニタ209へ送信された場合、送信対象の印刷ジョブが通信装置120に送信される。そのため、ランゲージモニタ208は、送信対象の印刷ジョブの全てを、通信装置120に送信しているとみなすこともできる。これにより、送信対象の印刷ジョブに基づく印刷が、通信装置120によって実行される。
ランゲージモニタ208は、S307では、保持している排他オブジェクトを破棄する。
その後、ランゲージモニタ208は処理を終了する。
このように、ランゲージモニタ208は、USBポートモニタ209が制御している装置に印刷ジョブを送信する際には、送信に利用するUSBポートモニタ209に関連付いた排他オブジェクトを取得する。具体的には、ランゲージモニタ208は、コマンド生成フィルタ206によって生成された印刷ジョブを受信した後、当該排他オブジェクトを取得する。これにより、ランゲージモニタ208が、USBポートモニタ209を介して印刷ジョブを送信している間は、プリンタドライバ等のUSB通信アプリ210と異なるソフトウェアによるUSBポートモニタ209を介した通信が行われなくなる。このような形態とすることで、例えば、プリンタドライバによって送信される印刷ジョブと、USB通信アプリ210が通信するデータとが混在してしまうことを抑制できる。
しかしながら、上述の形態は、排他オブジェクトの取得をランゲージモニタ208が担っているため、例えば、V4ドライバのような、ランゲージモニタ208を有しないプリンタドライバを有する情報処理装置110には適用できない。また、上述したように、V3ドライバにおいて、双方向通信機能が無効化されている場合はランゲージモニタ208が動作しない。そのため、上述の形態は、例えば、双方向通信機能が無効化されているプリンタドライバを有する情報処理装置110には適用できない。
また、例えば、何らかの原因で排他オブジェクトの取得が失敗し続けることによりジョブが長い時間送信されない場合は、ユーザやプリンタドライバによる指示によりジョブの送信が中止されることがある。なお例えば、排他オブジェクトの取得を試みるプログラム以外のプログラムが既に排他オブジェクトを保持している場合やエラーが生じた場合等に、排他オブジェクトの取得が失敗する。上述の形態のように、印刷ジョブを生成した後に排他オブジェクトの取得を行う形態では、例えば、ジョブの送信が中止された場合等には、ジョブの生成処理が無駄に行われることとなる。
そこで、上述の課題を解決するための形態について以下に説明する。具体的には、以下に説明する形態では、ランゲージモニタ208ではなく、コマンド生成フィルタ206によって排他オブジェクトの取得を実行させる。また、以下に説明する形態では、コマンド生成フィルタ206によって印刷ジョブが生成される前に、排他オブジェクトの取得を実行させる。なお、ランゲージモニタ208がない、あるいは動作しない(無効化されている)環境では、コマンド生成フィルタ206によって印刷ジョブが生成されると、生成された印刷ジョブの通信装置120への送信がすぐに開始されてしまう。そのため、コマンド生成フィルタ206によって印刷ジョブが生成される前に、排他オブジェクトの取得を実行させることで、排他オブジェクトが取得される前に印刷ジョブが送信されてしまうことを抑制できる。
なお、以下において、情報処理装置110が備えるプリンタドライバがV4ドライバである形態について説明するが、本発明は、情報処理装置110が備えるプリンタドライバがV4ドライバ以外のドライバ(V3ドライバ等)である形態にも適用可能である。
図5は、情報処理装置110が備えるプリンタドライバがV4ドライバである場合に、情報処理装置110が備えるソフトウェアの構成を示す。それぞれの構成が実行する処理は、実際には、CPU112が、それぞれの構成に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。図2を用いて説明した構成と同様の構成については説明を省略する。
図5に示す構成のうち、構成202、203、204、209、501がOSのモジュール、構成206がプリンタドライバのモジュールとしているが、それぞれの構成は、OSとプリンタドライバのうちいずれのモジュールであっても良い。
V4ドライバは、V3ドライバと異なり、ベンダー固有のユーザインターフェースモジュール207と、ランゲージモニタ208を有していない。そのため、V4ドライバは、双方向制御機能が常に無効と設定されている状態である。
また、V4ドライバ環境では、OSは、OSのユーザインターフェースモジュール501を有しているものとする。OSのユーザインターフェースモジュール501は、ベンダー固有のユーザインターフェースモジュール207と同様、ユーザから印刷設定の入力を受け付けるための画面を表示する。また、OSのユーザインターフェースモジュール501は、受け付けた印刷設定に関する情報をアプリケーション201に渡すことで、印刷データに印刷設定情報を付加する。
図6は、本実施形態において、ユーザから印刷ジョブの送信が指示された場合にコマンド生成フィルタ206が実行する処理を示すフローチャートである。コマンド生成フィルタ206が実行する処理は、実際には、CPU112が、コマンド生成フィルタ206に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。
まず、コマンド生成フィルタ206は、S601にて、スプーラ203からスプールデータ(印刷データ)を受信する。なお、このとき、コマンド生成フィルタ206は、印刷データの全てを一括で受信するのではなく、印刷データの一部を取得するものとする。
続いて、コマンド生成フィルタ206は、S602にて、情報処理装置110と通信装置120間の、印刷ジョブの送信に利用する接続が、USBによる接続か否かを判定する。コマンド生成フィルタ206は、USBによる接続であると判定した場合、S603に進み、USBによる接続でないと判定した場合、S605に進む。USBでない接続とは、例えば、無線LANや有線LANによる接続である。なおこの判定は、具体的には、印刷ジョブの送信に利用する通信ポートの名前を参照することで行われる。コマンド生成フィルタ206は例えば、通信ポートが、USBポートである場合にはUSBによる接続であると判定し、Web Service on Devices(WSD)ポートやTCP/IPポートである場合にはUSBによる接続でないと判定する。このように、本実施形態では、接続形態に応じて処理を切り替える。具体的には、情報処理装置110は、USBによる接続である場合、排他オブジェクトを取得し、USBによる接続でない場合、排他オブジェクトを取得しない。これは、例えば、USBによる接続を介さない通信に関する排他制御を、通信装置120側で実行する形態があるためである。すなわち、このような形態では、情報処理装置110側で、USBによる接続を介さない通信に関する排他制御を実行する必要はないためである。
コマンド生成フィルタ206は、S603では、双方向通信機能が有効か否かを判定する。なお、双方向通信機能が有効か否かの判定は、具体的には、双方向通信機能に関する設定を確認することで行われる。なお、V4ドライバのような、ランゲージモニタ208がない形態は、双方向通信機能が無効な状態であるものとして扱われる。また、V4ドライバ内のコマンド生成フィルタ206であれば、S603の処理を省略して、S604を実行しても良い。コマンド生成フィルタ206は、双方向通信機能が有効であると判定した場合、S605に進み、双方向通信機能が有効でないと判定した場合、S604に進む。S604の詳細な説明は、図7にて後述する。なお、コマンド生成フィルタ206によって双方向通信機能が有効であると判定された場合は、図3の説明で示したようにして、ランゲージモニタ208によって排他オブジェクトが取得される。
コマンド生成フィルタ206は、S605では、スプーラ203から受信したスプールデータ(印刷データ)を、印刷ジョブに変換する。
そして、コマンド生成フィルタ206は、S606にて、S605で生成した印刷ジョブを、OSが管理する所定の記憶領域に出力する。なお、コマンド生成フィルタ206により所定の記憶領域に出力された印刷ジョブは、スプーラ203により順次ランゲージモニタ208やUSBポートモニタ209へ転送される。具体的には例えば、データをUSBポートモニタ209を介して通信装置120に送信するための関数と共に、印刷ジョブがUSBポートモニタ209へ入力される。
その後、コマンド生成フィルタ206は、S607にて、変換処理が完了したか否かを判定する。具体的には、コマンド生成フィルタ206は、変換対象のスプールデータの全てが印刷ジョブへ変換されたか否かを判定する。コマンド生成フィルタ206は、変換対象のスプールデータの全てが印刷ジョブへ変換されていないと判定した場合、S601へ戻り、残りのスプールデータを受信する。なお、コマンド生成フィルタ206は、S601に戻った後は、S602の処理を省略して、S605の処理を行っても良い。
S607にてスプールデータの全てが印刷ジョブへ変換済みであると判断された場合、コマンド生成フィルタ206は印刷ジョブ生成処理を終了する。
図7は、本実施形態において、コマンド生成フィルタ206が実行するS604の印刷ジョブ生成処理の詳細を示すフローチャートである。コマンド生成フィルタ206が実行する処理は、実際には、CPU112が、コマンド生成フィルタ206に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。
まず、コマンド生成フィルタ206は、S701にて、印刷ジョブの送信に利用するUSBポートモニタ209に関連付けされた排他オブジェクトを保持しているか否かを判定する。コマンド生成フィルタ206は、排他オブジェクトを保持していないと判定した場合、S702に進み、排他オブジェクトを保持していると判定した場合、S704に進む。
コマンド生成フィルタ206は、S702では、印刷ジョブの送信に利用するUSBポートモニタ209に関連付けされた排他オブジェクトの取得を試みる。なお、例えば、USB通信アプリ210等の、コマンド生成フィルタ206以外のソフトウェアによって、当該排他オブジェクトが保持されている状態では、コマンド生成フィルタ206は、当該排他オブジェクトを取得できない。すなわち、当該状態では、排他オブジェクト取得処理が失敗する。コマンド生成フィルタ206は、排他オブジェクト取得処理が成功した場合は、当該排他オブジェクトを取得する。
その後、コマンド生成フィルタ206は、S703にて、S702における排他オブジェクト取得処理が成功したか否かを判定する。コマンド生成フィルタ206は、排他オブジェクト取得処理が成功したと判定したと判定した場合、S704に進む。一方、コマンド生成フィルタ206は、排他オブジェクト取得処理が成功していない(失敗した)と判定した場合、再度S702の処理を実行し、排他オブジェクト取得処理が成功するまで処理を繰り返す。すなわち、コマンド生成フィルタ206は、コマンド生成フィルタ206以外のソフトウェアが排他オブジェクトを破棄することで、新たに排他オブジェクトの取得が可能となるまで処理を繰り返す。なおこのとき、コマンド生成フィルタ206は、処理を繰り返した回数が所定回数を超えた場合は、S704に進んでも良い。またコマンド生成フィルタ206は、処理の繰り返しにかかった時間が所定時間を超えた(コマンド生成フィルタ206によって排他オブジェクトが保持されていない状態が所定の時間以上続いた)場合は、S704に進んでも良い。また、コマンド生成フィルタ206は、例えば、コマンド生成フィルタ206以外のソフトウェアが排他オブジェクトを保持しているか否かを判定し、保持していないと判定した場合は、S704に進んでも良い。また、例えば、コマンド生成フィルタ206は、印刷ジョブを送信せずに処理を終了しても良い。また、このとき、コマンド生成フィルタ206は、出力装置118に、エラーを通知する画面を表示しても良い。
コマンド生成フィルタ206は、S704では、スプーラ203から受信したスプールデータ(印刷データ)を印刷ジョブへ変換する。
その後、コマンド生成フィルタ206は、S705にて、S704で生成した印刷ジョブを、OSが管理する所定の記憶領域に出力する。なお、コマンド生成フィルタ206により所定の記憶領域に出力された印刷ジョブは、スプーラ203により順次USBポートモニタ209へ転送される。具体的には、データをUSBポートモニタ209を介して通信装置120に送信するための関数と共に、印刷ジョブがUSBポートモニタ209へ入力される。
続いて、コマンド生成フィルタ206は、S706にて、変換処理が完了したか否かを判定する。具体的には、コマンド生成フィルタ206は、変換対象のスプールデータの全てが印刷ジョブへ変換されたか否かを判定する。コマンド生成フィルタ206は、変換対象のスプールデータの全てが印刷ジョブへ変換されていないと判定した場合、S601へ戻り、残りのスプールデータを印刷ジョブへ変換する。なお、コマンド生成フィルタ206は、S601に戻った後は、S602やS603の処理を省略して、S604の処理を行っても良い。一方、コマンド生成フィルタ206は、変換対象のスプールデータの全てが印刷ジョブへ変換されたと判定した場合、処理を終了する。
図8は、本実施形態においてコマンド生成フィルタ206が実行する終了処理を示すフローチャートである。終了処理とは、排他オブジェクトを破棄するために、コマンド生成フィルタ206が実行する処理である。なお、コマンド生成フィルタ206は、終了処理を、送信対象の印刷ジョブの全てが通信装置120に送信された後であれば、任意のタイミングで実行して良い。例えば、コマンド生成フィルタ206は、送信対象の印刷ジョブの全てが通信装置120に送信された直後に、終了処理を実行して良い。
また、例えば、情報処理装置110が有するプリンタドライバのなかには、ジョブ保持処理を実行可能なものがある。ジョブ保持処理とは、通信装置120に送信されたジョブの処理が通信装置120によって終了されるまで、ジョブキューにジョブを保持し続ける処理である。プリンタドライバは、ジョブキュー内に保持されているジョブの状態に関する情報を適宜受信及び取得(情報受信)するための機能を有している。そのため、プリンタドライバは、ジョブ保持処理を実行することで、ジョブキューから当該ジョブが削除されるまでジョブの状態を認識し、ジョブの状態に関する情報をユーザに通知することができる。なお、具体的には、プリンタドライバは、USBポートモニタにジョブの状態に関する情報を取得させることで、ジョブの状態を認識する。すなわち、ジョブの状態に関する情報の取得がUSB通信を介して行われる。上述したように、複数のアプリケーションにより同一の経路が用いられて通信が行われると、情報の混在等の課題が生じるため、プリンタドライバによりジョブの状態に関する情報の取得が行われる際にも排他制御が行われていることが好ましい。そのため、例えば、コマンド生成フィルタ206は、通信装置120に送信されたジョブの処理が通信装置120によって終了された場合に、終了処理を実行しても良い。
なお、コマンド生成フィルタ206が実行する処理は、実際には、CPU112が、コマンド生成フィルタ206に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。
まず、コマンド生成フィルタ206は、S801にて、排他オブジェクトを保持しているか否かを判定する。コマンド生成フィルタ206は、排他オブジェクトを保持していると判定した場合、S802に進み、排他オブジェクトを保持していないと判定した場合、処理を終了する。
コマンド生成フィルタ206は、S802では、保持している排他オブジェクトを破棄し、排他オブジェクトを保持している状態から排他オブジェクトを保持していない状態に遷移する。その後、処理を終了する。
このような形態とすることで、ランゲージモニタ208がない、あるいは、ランゲージモニタ208が動作しない(無効化されている)状況下においても、通信における排他制御を適切に実行することができる。また、排他オブジェクトを取得できない状況下で印刷ジョブの送信が中止された場合等にも、印刷ジョブの生成が無駄に行われてしまうことを抑制できる。
<第2実施形態>
一般に、コマンド生成フィルタ206を有する情報処理装置(クライアント)が、クライアントにネットワークを介して接続された情報処理装置(サーバ)を介して、印刷ジョブを通信装置120に送信する形態が知られている。このような形態における通信環境を、サーバ/クライアント環境と言う。サーバ/クライアント環境において、例えば、サーバがUSB通信アプリ210を有しており、且つサーバと通信装置120がUSBで接続しているとする。この形態において、サーバから通信装置120への印刷ジョブの送信と、サーバで動作するUSB通信アプリ210が実行する通信装置120との通信が同一の通信経路で並行して実行される場合、例えば、通信されるデータの混在が生じてしまうおそれがある。そのため、サーバと通信装置120間におけるUSB通信についても排他制御が実行される必要があるが、印刷ジョブの生成元であるクライアントが排他オブジェクトを取得する形態では、サーバと通信装置120間の排他制御を実行できない。そこで、本実施形態では、サーバ/クライアント環境において、サーバと通信装置120間の排他制御が適切に実行されるように制御する形態について説明する。
図9は本実施形態の通信システムを示す。本実施形態の通信システムは、サーバ/クライアント環境を構成しているものとする。本実施形態において、情報処理装置901がクライアント、情報処理装置904がサーバとして動作するものとする。なお、情報処理装置901及び情報処理装置904の構成は、第1実施形態で説明した情報処理装置110の構成と同様である。
情報処理装置901および情報処理装置904は、ネットワークI/F903を介して相互に接続されている。なお、ネットワークI/F903の通信方式は特に限定されないため、ネットワークI/F903は、無線であっても有線であっても良い。また、通信装置906及び情報処理装置904は、USBI/F905を介して相互に接続されている。USBI/F905は、USB通信方式によって通信するためのインタフェースである。すなわち、通信装置906と情報処理装置904間の通信は、USB通信方式によって行われるものとする。
本実施形態では、情報処理装置901は、プリンタドライバ902を有している。プリンタドライバ902は、第1実施形態で説明したV4ドライバと同様の構成を有しているものとする。なお、情報処理装置901は、ローカル環境においてUSB通信を実行するために、USB通信アプリや後述の常駐プログラムを有していても良い。また、情報処理装置904は、プリンタドライバ909とUSB通信アプリ908、常駐プログラム907を有している。本実施形態では、情報処理装置904に含まれるプリンタドライバは、情報処理装置901に含まれるプリンタドライバと同様のものであるものとする。また、USB通信アプリ908は、第1実施形態にて説明したUSB通信アプリと同様のものであるものとする。情報処理装置904がサーバとして動作するため、プリンタドライバ909とUSB通信アプリ908、常駐プログラム907がサーバ側プログラムとなる。
本実施形態では、プリンタドライバ902のコマンド生成フィルタ206によって生成された印刷ジョブは、ネットワークI/F903を介して情報処理装置904へと送信される。そして、情報処理装置901から印刷ジョブを受信した情報処理装置904は、受信した印刷ジョブを、プリンタドライバ909のスプーラ203に格納する。そして、情報処理装置904は、受信した印刷ジョブを、情報処理装置904が備えるUSBポートモニタ209及びUSBI/F905を介して通信装置906へと送信する。なお、印刷ジョブへの変換処理は情報処理装置901側で既に完了されているため、印刷ジョブの送信は、プリンタドライバ909のコマンド生成フィルタ206を介さずに行われる。
常駐プログラム907は、情報処理装置904の起動(電源ON)と同時に動作を開始し、情報処理装置904の終了(電源OFF)やユーザ操作により動作を終了するプログラムである。常駐プログラム907は、情報処理装置904にプリンタドライバ909がインストールされる際に、プリンタドライバ909と一緒に情報処理装置904にインストールされる。すなわち、常駐プログラム907は、プリンタドライバ909のベンダーと同じベンダーにより提供されるプログラムであり、プリンタドライバ909に対応しているプログラムである。常駐プログラム907は、情報処理装置904とネットワークI/F903を介して接続されている任意の情報処理装置からの遠隔操作指示に応じて、任意の処理を行うことが可能である。また、例えば、常駐プログラム907は、印刷ジョブの送信が開始された場合に、ジョブに関する情報を取得するモジュールであるステータスモニタを起動させる。また、常駐プログラム907は、サーバとして動作する情報処理装置904で動作するため、サーバ側プログラムとして扱われる。
図6は、本実施形態において、ユーザから印刷ジョブの送信が指示された場合に、プリンタドライバ902のコマンド生成フィルタ206が実行する処理を示すフローチャートである。すなわち、以下に説明する処理は、クライアント側で実行される処理である。コマンド生成フィルタ206が実行する処理は、実際には、CPU112が、コマンド生成フィルタ206に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。
S601及びS603、S605〜S607の処理は、第1実施形態で説明した処理と同様であるため説明を省略する。
コマンド生成フィルタ206は、S602では、情報処理装置904(サーバ)と通信装置120間の、印刷ジョブの送信に利用される接続が、USBによる接続か否かを判定する。コマンド生成フィルタ206は、この判定のために、情報処理装置904と通信装置120間の接続形態を情報処理装置904に問い合わせても良い。コマンド生成フィルタ206は、USBによる接続であると判定した場合、S603に進み、USBによる接続でないと判定した場合、S605に進む。判定の詳細は、第1実施形態で説明した内容と同様である。
本実施形態におけるS604の処理の詳細は、図10を用いて後述する。
このように、本実施形態においては、サーバと通信装置120間の接続形態に応じて処理を切り替える。
図10は、本実施形態において、プリンタドライバ902のコマンド生成フィルタ206が実行するS604の印刷ジョブ生成処理の詳細を示すフローチャートである。コマンド生成フィルタ206が実行する処理は、実際には、CPU112が、コマンド生成フィルタ206に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。また、常駐プログラム907が実行する処理は、実際には、CPU112が、常駐プログラム907に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。なお、上述のCPU112、外部記憶装置115及びRAM116は、情報処理装置901が備える構成である。
まず、コマンド生成フィルタ206は、S1001にて、印刷ジョブの送信に利用するUSBポートモニタ209に関連付けされた排他オブジェクトを、情報処理装置904の常駐プログラム907が保持しているか否かを判定する。具体的には、本判定は、後述のS1003で取得される取得成否情報を参照することで行われる。コマンド生成フィルタ206は、取得成否情報が、排他オブジェクトの取得の成功を示す場合に、常駐プログラム907が排他オブジェクトを保持していると判定する。そして、取得成否情報が、排他オブジェクトの取得の失敗を示す場合に、常駐プログラム907が排他オブジェクトを保持していないと判定する。そのため、未だS1003の処理を実行してない段階では、S1001の処理を省略して、S1002の処理を実行しても良い。なお、例えば、排他オブジェクトの取得の成功を示す取得成否情報が排他オブジェクトそのものである場合は、コマンド生成フィルタ206は、S1001にて、排他オブジェクトを自身が保持しているか否かを判定しても良い。コマンド生成フィルタ206は、排他オブジェクトを保持していないと判定した場合、S1002に進み、排他オブジェクトを保持していると判定した場合、S1005に進む。
次にコマンド生成フィルタ206は、S1002にて、情報処理装置904で動作し且つ印刷ジョブの送信に利用されるUSBポートモニタ209に関連付けされた排他オブジェクトを取得するように、サーバ側プログラムの常駐プログラム907に対し指示する。すなわち、コマンド生成フィルタ206は、遠隔操作指示として、排他オブジェクト取得指示を常駐プログラム907に送信する。なお、このとき、プリンタドライバ909でなく、常駐プログラム907に指示が行われるのは、指示時にプリンタドライバ909が動作しておらず、プリンタドライバ909には指示が届かない可能性があるためである。常駐プログラム907は、上述したように、情報処理装置904の起動と同時に動作を開始するため、指示を受け取れる可能性が高い。
なお、コマンド生成フィルタ206は、プリンタドライバ909が動作している場合は、プリンタドライバ909に指示を送信しても良い。その場合、以下の説明において、常駐プログラム907の代わりにプリンタドライバ909のモジュールが排他オブジェクトを取得することで、排他制御を実現する。
常駐プログラム907によって排他オブジェクトが取得・保持されている場合、情報処理装置904が備えるプログラムのうち、常駐プログラム907以外の排他制御に係わるプログラム(USB通信アプリ908等)による通信装置120との通信が行われない。また、常駐プログラム907によって排他オブジェクトが破棄された場合、情報処理装置904が備えるプログラムのうち、排他オブジェクトを保持していた常駐プログラム907以外のプログラムによる通信装置120とのUSB通信が実行可能となる。
その後、コマンド生成フィルタ206は、S1003にて、常駐プログラム907による排他オブジェクトの取得が成功したか否かを示す取得成否情報を、情報処理装置904から受信する。なお、取得成否情報は、例えば、取得した排他オブジェクトそのものであっても良いし、取得の成否を示すフラグ等のその他の情報であっても良い。
そして、コマンド生成フィルタ206は、S1004にて、受信した取得成否情報が排他オブジェクト取得の成功を示すものか否かを判定する。言いかれば、コマンド生成フィルタ206は、常駐プログラム907による排他オブジェクトの取得が成功したか否かを判定する。コマンド生成フィルタ206は、常駐プログラム907による排他オブジェクトの取得が成功したと判定した場合、S1005に進む。一方、コマンド生成フィルタ206は、常駐プログラム907による排他オブジェクトの取得が成功していない(失敗した)と判定した場合、再度S1002の処理を実行し、常駐プログラム907による排他オブジェクトの取得が成功するまで処理を繰り返す。なおこのとき、コマンド生成フィルタ206は、処理を繰り返した回数が所定回数を超えた場合は、S1005に進んでも良い。またコマンド生成フィルタ206は、処理の繰り返しにかかった時間が所定時間を超えた(コマンド生成フィルタ206によって排他オブジェクトが保持されていない状態が所定の時間以上続いた)場合は、S1005に進んでも良い。また、コマンド生成フィルタ206は、例えば、常駐プログラム907以外の情報処理装置904が有しているソフトウェアが排他オブジェクトを保持しているか否かを判定し、保持していないと判定した場合は、S1005に進んでも良い。また、例えば、コマンド生成フィルタ206は、印刷ジョブを送信せずに処理を終了しても良い。また、このとき、コマンド生成フィルタ206は、出力装置118に、エラーを通知する画面を表示しても良い。
常駐プログラム907による排他オブジェクトの取得が成功していれば、USB通信アプリ908等の、情報処理装置904で動作する他のソフトウェアは、印刷ジョブの送信に利用されるUSBポートモニタ209を介した通信を実行しない。なお、上述したように、情報処理装置901から受信される印刷ジョブの送信処理は、プリンタドライバ909のコマンド生成フィルタ206を介さずに行われる。すなわち、当該送信処理は、排他オブジェクトを保持していない場合に通信を止める機能を有するモジュールを介さずに行われる。そのため、プリンタドライバ909は、常駐プログラム907が排他オブジェクトを保持していても、当該送信処理を行うことができる。これにより、情報処理装置904は、データの混在等を生じさせることなく、印刷ジョブを送信することができる。
コマンド生成フィルタ206は、S1005では、スプーラ203から受信したスプールデータ(印刷データ)を印刷ジョブへ変換する。
その後、コマンド生成フィルタ206は、S1006にて、S1005で生成した印刷ジョブを、OSが管理する所定の記憶領域に出力する。なお、コマンド生成フィルタ206により所定の記憶領域に出力された印刷ジョブは、スプーラ203により順次情報処理装置904へ転送される。
続いて、コマンド生成フィルタ206は、S1007にて、変換対象のスプールデータの全てが印刷ジョブへ変換されたか否かを判定する。コマンド生成フィルタ206は、変換対象のスプールデータの全てが印刷ジョブへ変換されていないと判定した場合、S601へ戻り、残りのスプールデータを印刷ジョブへ変換する。一方、コマンド生成フィルタ206は、変換対象のスプールデータの全てが印刷ジョブへ変換されたと判定した場合、処理を終了する。
図11は、本実施形態において、情報処理装置904上で動作する常駐プログラム907が実行する処理を示すフローチャートである。すなわち、以下に示す処理は、サーバ側で行われる処理である。常駐プログラム907が実行する処理は、実際には、CPU112が、常駐プログラム907に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。なお、上述のCPU112、外部記憶装置115及びRAM116は、情報処理装置904が備える構成である。
まず、常駐プログラム907は、S1101にて、ネットワークI/F903を介して情報処理装置904に接続されたクライアント(情報処理装置901等)から、遠隔操作指示を受信する。
その後、常駐プログラム907は、S1102にて、S1101で受信した遠隔操作指示の内容を判定する。常駐プログラム907は、遠隔操作指示の内容が排他オブジェクト取得指示であると判定した場合、S1105に進む。また、常駐プログラム907は、遠隔操作指示の内容が排他オブジェクト破棄指示と判定した場合、S1103に進む。排他オブジェクト破棄指示は、コマンド生成フィルタ206が実行する終了指示にて送信される指示であり、詳細は後述する。また、常駐プログラム907は、遠隔操作指示の内容が排他オブジェクト破棄指示でも排他オブジェクト取得指示でもないその他の指示であると判定した場合、S1104に進む。
常駐プログラム907は、S1103では、保持している排他オブジェクトを破棄する。その後、常駐プログラム907は、S1107に進む。
常駐プログラム907は、S1104では、S1101で受信した遠隔操作指示(その他の指示)に応じた処理を実行する。その後、常駐プログラム907は、S1107に進む。
常駐プログラム907は、S1105では、情報処理装置904で動作し且つ印刷ジョブの送信に利用されるUSBポートモニタ209に関連付けされた排他オブジェクトの取得を試みる。なお、例えば、USB通信アプリ908等の、常駐プログラム907以外のソフトウェアによって、当該排他オブジェクトが保持されている状態では、常駐プログラム907は、当該排他オブジェクトを取得できない。すなわち、当該状態では、排他オブジェクト取得処理が失敗する。常駐プログラム907は、排他オブジェクト取得処理が成功した場合は、当該排他オブジェクトを取得する。
次に、常駐プログラム907は、S1106にて、S1101で受信した遠隔操作指示の送信元である情報処理装置に対し、取得成否情報を送信する。具体的には、常駐プログラム907は、排他オブジェクト取得処理が成功した場合は、排他オブジェクト取得処理が成功したことを示す取得成否情報を送信する。また、常駐プログラム907は、排他オブジェクト取得処理が失敗した場合は、排他オブジェクト取得処理が失敗したことを示す取得成否情報を送信する。
次に、常駐プログラム907は、S1107にて、動作を終了するか否かを判定する。常駐プログラム907は、情報処理装置904の動作が終了する(電源がOFFされる)か、ユーザ操作により常駐プログラム907に対し終了通知が発行された場合に、動作を終了すると判定する。常駐プログラム907は、動作を終了すると判定した場合、全ての処理を終了し、動作を終了しないと判定した場合、S1101に戻って、新たな遠隔操作指示を受信するのを待つ。
図8は、本実施形態において情報処理装置901のコマンド生成フィルタ206が実行する終了処理を示すフローチャートである。すなわち、以下に説明する処理は、クライアント側で実行される処理である。コマンド生成フィルタ206は、終了処理を任意のタイミングで実行して良い。例えば、コマンド生成フィルタ206は、送信対象の印刷ジョブの全てが通信装置120に送信された場合に、終了処理を実行して良い。また、例えば、ジョブ保持処理を実行可能な形態であれば、通信装置120に送信されたジョブの処理が通信装置120によって終了された場合に、終了処理を実行しても良い。
なお、コマンド生成フィルタ206が実行する処理は、実際には、CPU112が、コマンド生成フィルタ206に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。なお、上述のCPU112、外部記憶装置115及びRAM116は、情報処理装置901が備える構成である。
まず、コマンド生成フィルタ206は、S801にて、常駐プログラム907が排他オブジェクトを保持しているか否かを判定する。コマンド生成フィルタ206は、常駐プログラム907が排他オブジェクトを保持していると判定した場合、S802に進み、常駐プログラム907が排他オブジェクトを保持していないと判定した場合、処理を終了する。
コマンド生成フィルタ206は、S802では、遠隔操作指示として、常駐プログラム907が保持している排他オブジェクトを破棄させるための指示(排他オブジェクト破棄指示)を送信する。これにより、常駐プログラム907が、排他オブジェクトを保持している状態から排他オブジェクトを保持していない状態に遷移する。その後、処理を終了する。
このように、本実施形態では、クライアントとして動作する情報処理装置は、サーバとして動作する情報処理装置を介して通信装置に印刷ジョブを送信する際、サーバとして動作する情報処理装置に排他オブジェクト取得指示を送信する。そして、サーバとして動作する情報処理装置によって指示が受け付けられることで、サーバとして動作する情報処理装置において動作する常駐プログラムが排他オブジェクトを取得する。このような形態とすることで、サーバ/クライアント環境においても、排他制御を実現することが可能となり、データの混在等の課題が生じることを抑制できる。
<第3実施形態>
第1実施形態で説明したような、サーバを介さずに通信装置120に印刷ジョブを送信可能な環境をローカル環境という。例えば、サーバ/クライアント環境と、ローカル環境の両方で動作可能な情報処理装置がある。本実施形態では、そのような情報処理装置110が、自身の属する環境に応じた適切な排他制御を実行する形態について説明する。
本実施形態では、情報処理装置110は、第1実施形態で説明したV4ドライバと同様の構成のプリンタドライバを有しているものとする。
図12は、本実施形態において、ユーザから印刷ジョブの送信が指示された場合に、当該指示に基づいて印刷ジョブを生成する情報処理装置110のコマンド生成フィルタ206が実行する処理を示すフローチャートである。コマンド生成フィルタ206が実行する処理は、実際には、CPU112が、コマンド生成フィルタ206に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。
S1201の処理は、第1実施形態にて説明したS601の処理と同様であるため説明を省略する。
コマンド生成フィルタ206は、S1202では、情報処理装置110の印刷環境が、サーバ/クライアント環境か否かを判定する。具体的にはこのとき、コマンド生成フィルタ206は、OSに対し、情報処理装置110のプリンタドライバに対応する印刷装置(ここでは、通信装置120)の名前の問い合わせを行う。このとき、OSは、情報処理装置110の印刷環境がローカル環境であれば、問い合わせに応じない。そのため、コマンド生成フィルタ206は、問い合わせに応答がなかった場合は、情報処理装置110の印刷環境が、サーバ/クライアント環境でない(ローカル環境である)と判定し、S1204に進む。一方、OSは、情報処理装置110の印刷環境がサーバ/クライアント環境であれば、問い合わせに応じて、コマンド生成フィルタ206に対して情報を通知する。具体的には、OSは、情報処理装置110のプリンタドライバに対応する印刷装置の名前及び、当該印刷装置に直接(サーバを介さず)接続している装置の名前の情報をコマンド生成フィルタ206に送信する。そのため、コマンド生成フィルタ206は、問い合わせに応答があった場合は、情報処理装置110の印刷環境が、サーバ/クライアント環境であると判定し、S1203に進む。
コマンド生成フィルタ206は、S1203では、サーバ/クライアント環境において、情報処理装置110がクライアントとして動作しているか否かを判定する。具体的にはこのとき、コマンド生成フィルタ206は、問い合わせに対する応答としてOSから取得した情報を参照する。コマンド生成フィルタ206は、印刷装置に直接接続している装置の名前が、情報処理装置110の名前であった場合、情報処理装置110がクライアントとして動作していない(サーバとして動作している)と判定し、S1204に進む。ユーザから印刷ジョブの送信指示を受け付けて、当該指示に基づいて印刷ジョブの生成を行う情報処理装置110がサーバとして動作している場合、情報処理装置110と通信装置120間の通信は、他の装置を介さずに行われる。すなわち、サーバ/クライアント環境であっても、実質的にローカル環境と同様の通信が行われることになるため、コマンド生成フィルタ206は、S1203より後は、ローカル環境であるケースと同様の処理を行う。
一方、コマンド生成フィルタ206は、印刷装置に直接接続している装置の名前が、情報処理装置110の名前でなかった場合、情報処理装置110がクライアントとして動作していると判定し、S1210に進む。
S1204〜S1209の処理は、第1実施形態にて説明したS601〜S607の処理と同様である。すなわち、情報処理装置110の印刷環境がローカル環境である場合、又は情報処理装置110の印刷環境がサーバ/クライアント環境であり、且つ情報処理装置110がサーバとして動作する場合は、排他オブジェクトの取得を、情報処理装置110が適宜行う。
また、S1210〜S1215の処理は、第2実施形態にて説明したS601〜S607の処理と同様である。すなわち、情報処理装置110の印刷環境がサーバ/クライアント環境であり、且つ情報処理装置110がクライアントとして動作する場合は、排他オブジェクトの取得を、情報処理装置110が接続しているサーバに適宜行わせる。
このような形態とすることで、情報処理装置110は、自身の印刷環境に応じた排他制御を適切に実行することができる。
<その他の実施形態>
上述では、排他オブジェクトの取得を、コマンド生成フィルタによって印刷ジョブが生成される前に実行させる形態が、V4ドライバを有する情報処理装置110に適用されている例を説明したが、この形態に限定されない。排他オブジェクトの取得を、印刷ジョブが生成される前にコマンド生成フィルタによって実行させる形態が、V3ドライバ等のV4ドライバ以外のドライバを有する情報処理装置110に適用されても良い。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワークや各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行する処理でも実現可能である。また、プログラムは、1つのコンピュータで実行されても、複数のコンピュータが連動することで実行されてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしてもよい。また、1つのCPUで全ての処理を行う形態に限らず、複数のCPUが適宜連携をしながら処理を行う形態としてもよい。また、上述した処理のうち、いずれかの処理を1つのCPUが実行し、その他の処理を複数のCPUが連携しながら処理を行う形態としても良い。

Claims (39)

  1. 通信装置に画像処理を実行させるためのジョブを生成する所定のプログラム及び、前記所定のプログラム以外の少なくとも1つの他のプログラムを有する情報処理装置の制御方法であって、
    前記ジョブが生成される前に、排他オブジェクトを取得するための取得処理を前記所定のプログラムを用いて実行する取得ステップと、
    前記所定のプログラムが用いられて実行された前記取得処理によって前記排他オブジェクトが取得されない状態では、前記所定のプログラムを用いて前記ジョブを生成せず、前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で、前記所定のプログラムを用いて前記ジョブを生成する生成ステップと、
    を有し、
    前記所定のプログラムが用いられて生成された前記ジョブは、前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で前記通信装置に送信され、
    前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されていない状態では、前記他のプログラムに基づいた前記通信装置との通信が実行可能であり、前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態では、前記他のプログラムに基づいた前記通信装置との通信が行われないことを特徴とする制御方法。
  2. 前記他のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている場合、前記所定のプログラムが用いられて実行された前記取得処理により前記排他オブジェクトが取得されず、前記他のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されていない場合、前記所定のプログラムが用いられて実行された前記取得処理により前記排他オブジェクトが取得されないことを特徴とする請求項1に記載の制御方法。
  3. 前記所定のプログラムが用いられて前記取得処理が実行された後、前記所定のプログラムが用いられて実行された前記取得処理によって前記排他オブジェクトが取得されない状態が所定の時間以上続いた場合、前記所定のプログラムが用いられて前記ジョブが生成されることを特徴とする請求項1又は2に記載の制御方法。
  4. 前記所定のプログラムが用いられて生成された前記ジョブが前記通信装置に送信された場合、前記所定のプログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトを破棄する破棄ステップを更に有し、
    前記所定のプログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄された場合、前記他のプログラムに基づいた前記通信装置との通信が実行可能となることを特徴とする請求項1乃至3のいずれか1項に記載の制御方法。
  5. 前記通信装置に送信された前記ジョブに基づく処理が前記通信装置によって完了されるまで、前記通信装置に送信された前記ジョブに関する情報を前記通信装置から受信する受信ステップと、
    前記通信装置に送信された前記ジョブに基づく処理が前記通信装置によって完了された場合、前記所定のプログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトを破棄する破棄ステップを更に有し、
    前記所定のプログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄された場合、前記他のプログラムに基づいた前記通信装置との通信が実行可能となることを特徴とする請求項1乃至3のいずれか1項に記載の制御方法。
  6. 前記所定のプログラムが用いられて生成される前記ジョブがサーバを介して前記通信装置に送信される場合、前記所定のプログラムが用いられて前記ジョブが生成される前に、前記サーバが有する所定のサーバ側プログラムを用いた前記取得処理を実行させるための指示を前記サーバに送信する指示ステップを更に有し、
    前記所定のプログラムが用いられて生成される前記ジョブが前記サーバを介さず前記通信装置に送信される場合、前記所定のプログラムが用いられて前記ジョブが生成される前に、前記所定のプログラムが用いられて前記取得処理が実行され、
    前記指示が前記サーバにより受け付けられた場合、前記所定のサーバ側プログラムが用いられて前記取得処理が実行され、
    前記所定のプログラムが用いられて生成される前記ジョブが前記サーバを介して前記通信装置に送信される場合、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で、前記所定のプログラムが用いられて前記ジョブが生成され、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により前記排他オブジェクトが取得されない状態で、前記所定のプログラムが用いられて前記ジョブが生成されず、
    前記所定のプログラムが用いられて生成された前記ジョブは、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で前記サーバを介して前記通信装置に送信され、
    前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態では、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムに基づいた前記通信装置との通信が行われないことを特徴とする請求項1乃至5のいずれか1項に記載の制御方法。
  7. 前記所定のプログラムが用いられて生成された前記ジョブが前記サーバを介して前記通信装置に送信された場合、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄され、
    前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄された場合、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムに基づいた前記通信装置との通信が実行可能となることを特徴とする請求項6に記載の制御方法。
  8. 前記通信装置に送信された前記ジョブに基づく処理が前記通信装置によって完了されるまで、前記通信装置に送信された前記ジョブに関する情報を前記サーバを介して前記通信装置から受信する情報受信ステップを更に有し、
    前記通信装置に送信された前記ジョブに基づく処理が前記通信装置によって完了された場合、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄され、
    前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄された場合、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムに基づいた前記通信装置との通信が実行可能となることを特徴とする請求項6に記載の制御方法。
  9. 前記所定のサーバ側プログラムは、前記サーバが有するプリンタドライバに対応するプログラムであり、
    前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムは、前記サーバが有するプリンタドライバ以外のプログラムであることを特徴とする請求項6乃至8のいずれか1項に記載の制御方法。
  10. 前記所定のプログラムが用いられて生成される前記ジョブは、記録剤を用いて記録媒体上に画像を形成する印刷処理を前記通信装置に実行させるための印刷ジョブ又は原稿を読み取って、当該原稿に基づく画像データを生成させるためのスキャンジョブであり、
    前記通信装置は、前記印刷ジョブを受信した場合、前記印刷処理を実行することを特徴とする請求項1乃至9のいずれか1項に記載の制御方法。
  11. 前記所定のプログラムは、プリンタドライバであることを特徴とする請求項1乃至10のいずれか1項に記載の制御方法。
  12. 前記所定のプログラムは、ランゲージモニタを有しないプリンタドライバであることを特徴とする請求項1乃至11のいずれか1項に記載の制御方法。
  13. 前記所定のプログラムは、Version4ドライバであることを特徴とする請求項1乃至12のいずれか1項に記載の制御方法。
  14. 前記所定のプログラムが用いられて生成された前記ジョブの送信と、前記他のプログラムに基づいた前記通信装置との通信とが、同じ通信経路で行われることを特徴とする請求項1乃至13のいずれか1項に記載の制御方法。
  15. 前記同じ通信経路は、Universal Serial Bus(登録商標)であることを特徴とする請求項14に記載の制御方法。
  16. 通信装置に画像処理を実行させるためのジョブを生成する所定のプログラムであって、
    前記所定のプログラム及び、前記所定のプログラム以外の少なくとも1つの他のプログラムを有する情報処理装置のコンピュータに、
    前記ジョブが生成される前に、排他オブジェクトを取得するための取得処理を前記所定のプログラムを用いて実行する取得ステップと、
    前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態では、前記所定のプログラムを用いて前記ジョブを生成し、前記所定のプログラムが用いられて実行された前記取得処理によって前記排他オブジェクトが取得されない状態では、前記所定のプログラムを用いて前記ジョブを生成しない生成ステップと、を実行させ、
    前記所定のプログラムが用いられて生成された前記ジョブは、前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で前記通信装置に送信され、
    前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されていない状態では、前記他のプログラムに基づいた前記通信装置との通信が実行可能であり、前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態では、前記他のプログラムに基づいた前記通信装置との通信が行われないことを特徴とするプログラム。
  17. 前記他のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている場合、前記所定のプログラムが用いられて実行された前記取得処理により前記排他オブジェクトが取得されず、前記他のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されていない場合、前記所定のプログラムが用いられて実行された前記取得処理により前記排他オブジェクトが取得されないことを特徴とする請求項16に記載のプログラム。
  18. 前記所定のプログラムが用いられて前記取得処理が実行された後、前記所定のプログラムが用いられて実行された前記取得処理によって前記排他オブジェクトが取得されない状態が所定の時間以上続いた場合、前記所定のプログラムが用いられて前記ジョブが生成されることを特徴とする請求項16又は17に記載のプログラム。
  19. 前記所定のプログラムが用いられて生成された前記ジョブが前記通信装置に送信された場合、前記所定のプログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトを破棄する破棄ステップを更に実行させ、
    前記所定のプログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄された場合、前記他のプログラムによる指示に基づいた前記通信装置との通信が実行可能となることを特徴とする請求項16乃至18のいずれか1項に記載のプログラム。
  20. 前記通信装置に送信された前記ジョブに基づく処理が前記通信装置によって完了されるまで、前記通信装置に送信された前記ジョブに関する情報を前記通信装置から受信する受信ステップと、
    前記通信装置に送信された前記ジョブに基づく処理が前記通信装置によって完了された場合、前記所定のプログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトを破棄する破棄ステップを更に実行させ、
    前記所定のプログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄された場合、前記他のプログラムによる指示に基づいた前記通信装置との通信が実行可能となることを特徴とする請求項16乃至19のいずれか1項に記載のプログラム。
  21. 前記所定のプログラムが用いられて生成される前記ジョブがサーバを介して前記通信装置に送信される場合、前記所定のプログラムが用いられて前記ジョブが生成される前に、前記サーバが有する所定のサーバ側プログラムに前記取得処理を実行させるための指示を送信する指示ステップをさらに実行させ、
    前記所定のプログラムが用いられて生成される前記ジョブが前記サーバを介さず前記通信装置に送信される場合、前記所定のプログラムが用いられて前記ジョブが生成される前に、前記所定のプログラムが用いられて前記取得処理が実行され、
    前記指示が前記サーバにより受け付けられた場合、前記所定のサーバ側プログラムが用いられて前記取得処理が実行され、
    前記所定のプログラムが用いられて生成される前記ジョブが前記サーバを介して前記通信装置に送信される場合、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で、前記所定のプログラムが用いられて前記ジョブが生成され、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により前記排他オブジェクトが取得されない状態で、前記所定のプログラムが用いられて前記ジョブが生成されず、
    前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態では、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムに基づいた前記通信装置との通信が行われないことを特徴とする請求項16乃至20のいずれか1項に記載のプログラム。
  22. 前記所定のプログラムが用いられて生成された前記ジョブが前記サーバを介して前記通信装置に送信された場合、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄され、
    前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄された場合、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムによる指示に基づいた前記通信装置との通信が実行可能となることを特徴とする請求項21に記載のプログラム。
  23. 前記通信装置に送信された前記ジョブに基づく処理が前記通信装置によって完了されるまで、前記通信装置に送信された前記ジョブに関する情報を前記サーバを介して前記通信装置から受信する情報受信ステップをさらに実行させ、
    前記通信装置に送信された前記ジョブに基づく処理が前記通信装置によって完了された場合、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄され、
    前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄された場合、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムによる指示に基づいた前記通信装置との通信が実行可能となることを特徴とする請求項21に記載のプログラム。
  24. 前記所定のサーバ側プログラムは、前記サーバが有するプリンタドライバに対応するプログラムであり、
    前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムは、前記サーバが有するプリンタドライバ以外のプログラムであることを特徴とする請求項21乃至23のいずれか1項に記載のプログラム。
  25. 前記所定のプログラムが用いられて生成される前記ジョブは、記録剤を用いて記録媒体上に画像を形成する印刷処理を前記通信装置に実行させるための印刷ジョブであり、
    前記通信装置は、前記印刷ジョブを受信した場合、前記印刷処理を実行することを特徴とする請求項16乃至24のいずれか1項に記載のプログラム。
  26. プリンタドライバであることを特徴とする請求項16乃至25のいずれか1項に記載のプログラム。
  27. ランゲージモニタを有しないプリンタドライバであることを特徴とする請求項14乃至24のいずれか1項に記載のプログラム。
  28. Version4ドライバであることを特徴とする請求項16乃至27のいずれか1項に記載のプログラム。
  29. 前記所定のプログラムが用いられて生成された前記ジョブの送信と、前記他のプログラムに基づいた前記通信装置との通信とが、同じ通信経路で行われることを特徴とする請求項16乃至28のいずれか1項に記載のプログラム。
  30. 前記同じ通信経路は、Universal Serial Bus(登録商標)であることを特徴とする請求項29に記載のプログラム。
  31. 通信装置に画像処理を実行させるためのジョブを生成する所定のプログラム及び、前記所定のプログラム以外の少なくとも1つの他のプログラムを有する情報処理装置であって、
    前記ジョブが生成される前に、排他オブジェクトを取得するための取得処理を前記所定のプログラムを用いて実行する取得手段と、
    前記所定のプログラムが用いられて実行された前記取得処理によって前記排他オブジェクトが取得されない状態では、前記所定のプログラムを用いて前記ジョブを生成せず、前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で、前記所定のプログラムを用いて前記ジョブを生成する生成手段と、を有し、
    前記所定のプログラムが用いられて生成された前記ジョブは、前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で前記通信装置に送信され、
    前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されていない状態では、前記他のプログラムに基づいた前記通信装置との通信が実行可能であり、前記所定のプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態では、前記他のプログラムに基づいた前記通信装置との通信が行われないことを特徴とする情報処理装置。
  32. 通信装置に画像処理を実行させるためのジョブを生成する所定のプログラムであって、前記所定のプログラムを有する情報処理装置のコンピュータに、
    前記所定のプログラムが用いられて前記ジョブが生成される前に、排他オブジェクトを取得するための取得処理をサーバが有する所定のサーバ側プログラムを用いて実行させるための指示を前記サーバに送信する指示ステップと、
    前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で、前記所定のプログラムを用いて前記ジョブを生成し、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により前記排他オブジェクトが取得されない状態では、前記所定のプログラムを用いて前記ジョブを生成しない生成ステップと、
    を実行させ、
    前記所定のプログラムによって生成された前記ジョブは、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態で前記サーバを介して前記通信装置に送信され、
    前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されていない状態では、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムに基づいた前記通信装置との通信が実行可能であり、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている状態では、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムに基づいた前記通信装置との通信が行われないことを特徴とするプログラム。
  33. 前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されている場合、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により前記排他オブジェクトが取得されず、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムが用いられて実行された前記取得処理により取得される前記排他オブジェクトが保持されていない場合、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により前記排他オブジェクトが取得されないことを特徴とする請求項32に記載のプログラム。
  34. 前記所定のプログラムが用いられて生成された前記ジョブが前記サーバを介して前記通信装置に送信された場合、前記所定のサーバ側プログラムによって保持されている前記排他オブジェクトが破棄され、
    前記所定のプログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄された場合、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムによる指示に基づいた前記通信装置との通信が実行可能となることを特徴とする請求項32又は33に記載のプログラム。
  35. 前記通信装置に送信された前記ジョブに基づく処理が前記通信装置によって完了されるまで、前記通信装置に送信された前記ジョブに関する情報を前記サーバを介して前記通信装置から受信する情報受信ステップを更に実行させ、
    前記通信装置に送信された前記ジョブに基づく処理が前記通信装置によって完了された場合、前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄され、
    前記所定のサーバ側プログラムが用いられて実行された前記取得処理により取得されたことで保持されている前記排他オブジェクトが破棄された場合、前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムによる前記通信装置との通信が実行可能となることを特徴とする請求項32又は33に記載のプログラム。
  36. 前記所定のサーバ側プログラムは、前記サーバが有するプリンタドライバに対応するプログラムであり、
    前記サーバが有し、且つ前記所定のサーバ側プログラム以外の少なくとも1つのプログラムは、前記サーバが有するプリンタドライバ以外のプログラムであることを特徴とする請求項32乃至35のいずれか1項に記載のプログラム。
  37. 前記所定のプログラムは、プリンタドライバであることを特徴とする請求項32乃至36のいずれか1項に記載のプログラム。
  38. 前記所定のプログラムは、ランゲージモニタを有しないプリンタドライバであることを特徴とする請求項32乃至37のいずれか1項に記載のプログラム。
  39. 前記所定のプログラムは、Version4ドライバであることを特徴とする請求項32乃至38のいずれか1項に記載のプログラム。
JP2017016203A 2017-01-31 2017-01-31 情報処理装置、制御方法およびプログラム Active JP6768544B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017016203A JP6768544B2 (ja) 2017-01-31 2017-01-31 情報処理装置、制御方法およびプログラム
US15/870,440 US10277765B2 (en) 2017-01-31 2018-01-12 Information processing device, control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017016203A JP6768544B2 (ja) 2017-01-31 2017-01-31 情報処理装置、制御方法およびプログラム

Publications (3)

Publication Number Publication Date
JP2018124777A true JP2018124777A (ja) 2018-08-09
JP2018124777A5 JP2018124777A5 (ja) 2019-05-09
JP6768544B2 JP6768544B2 (ja) 2020-10-14

Family

ID=62980806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017016203A Active JP6768544B2 (ja) 2017-01-31 2017-01-31 情報処理装置、制御方法およびプログラム

Country Status (2)

Country Link
US (1) US10277765B2 (ja)
JP (1) JP6768544B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020042717A (ja) * 2018-09-13 2020-03-19 京セラドキュメントソリューションズ株式会社 印刷ジョブ送信装置、印刷ジョブ送信プログラムおよび印刷システム
JP2021193502A (ja) * 2020-06-08 2021-12-23 キヤノン株式会社 情報処理方法、情報処理装置およびプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11191089A (ja) * 1997-12-26 1999-07-13 Canon Inc データ処理装置のポート獲得解放処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2001092604A (ja) * 1999-09-20 2001-04-06 Canon Inc 印刷システムおよび情報処理装置およびホストベースプリンタ及びその制御方法
CN1628990A (zh) * 2003-12-15 2005-06-22 佳能株式会社 打印系统及其控制方法和打印方法、主设备及所用打印机
US20090303521A1 (en) * 2008-06-06 2009-12-10 Moschip Seminconductor Technology Limited Method and system for sharing of a usb printer to all clients
JP2013012247A (ja) * 2012-10-04 2013-01-17 Canon Imaging Systems Inc デバイス共有クライアント及びデバイス共有方法
JP2016164767A (ja) * 2015-02-27 2016-09-08 キヤノン株式会社 情報処理装置、制御方法、制御プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905582A (en) * 1994-11-14 1999-05-18 Canon Kabushiki Kaisha Image processing apparatus for processing image data in response to signals from an external apparatus
JP2000118087A (ja) * 1998-10-14 2000-04-25 Seiko Epson Corp プリンタの制御装置およびプリンタ並びにプログラムを記録した記録媒体
US7773248B2 (en) * 2003-09-30 2010-08-10 Brother Kogyo Kabushiki Kaisha Device information management system
JP4425808B2 (ja) 2005-02-03 2010-03-03 株式会社リコー 印刷情報処理装置、印刷情報処理プログラム及び記録媒体
JP5473756B2 (ja) * 2010-04-27 2014-04-16 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
JP5473755B2 (ja) * 2010-04-27 2014-04-16 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
JP6011167B2 (ja) * 2012-09-03 2016-10-19 ブラザー工業株式会社 通信中継プログラム、及び、通信中継装置
JP6075010B2 (ja) * 2012-10-31 2017-02-08 ブラザー工業株式会社 通信中継プログラム、及び、画像処理装置
JP6343913B2 (ja) * 2013-03-04 2018-06-20 株式会社リコー 画像形成装置及び画像形成装置の制御方法
US9753682B2 (en) * 2013-12-27 2017-09-05 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and computer-readable storage medium

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11191089A (ja) * 1997-12-26 1999-07-13 Canon Inc データ処理装置のポート獲得解放処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2001092604A (ja) * 1999-09-20 2001-04-06 Canon Inc 印刷システムおよび情報処理装置およびホストベースプリンタ及びその制御方法
CN1628990A (zh) * 2003-12-15 2005-06-22 佳能株式会社 打印系统及其控制方法和打印方法、主设备及所用打印机
JP2005202912A (ja) * 2003-12-15 2005-07-28 Canon Inc 印刷システム及びその制御方法、印刷方法、ホスト装置、プリンタ
US20090303521A1 (en) * 2008-06-06 2009-12-10 Moschip Seminconductor Technology Limited Method and system for sharing of a usb printer to all clients
JP2013012247A (ja) * 2012-10-04 2013-01-17 Canon Imaging Systems Inc デバイス共有クライアント及びデバイス共有方法
JP2016164767A (ja) * 2015-02-27 2016-09-08 キヤノン株式会社 情報処理装置、制御方法、制御プログラム

Also Published As

Publication number Publication date
US20180220025A1 (en) 2018-08-02
JP6768544B2 (ja) 2020-10-14
US10277765B2 (en) 2019-04-30

Similar Documents

Publication Publication Date Title
KR102549370B1 (ko) 정보 처리 장치, 제어 방법 및 프로그램
US9086832B2 (en) Printer
JP6604834B2 (ja) 情報処理装置及びその制御方法、プログラム
JP5919930B2 (ja) プログラム、情報処理装置、記憶媒体
CN110321086B (zh) 非暂时性计算机可读记录介质以及控制信息处理装置的方法
JP2006277749A (ja) プリンタ管理方法、プリンタ管理システム及びプリンタ管理の記憶媒体
JP2011019197A (ja) データ処理装置、データ処理処理方法、プログラム
JP6204821B2 (ja) 画像形成装置、その制御方法、及びプログラム
JP6768544B2 (ja) 情報処理装置、制御方法およびプログラム
JP5736802B2 (ja) 画像形成装置及び画像形成方法
JP2014041599A (ja) プログラム、情報処理装置、システム
JP2010092327A (ja) 画像形成装置および端末装置
JP2012038076A (ja) 情報処理装置、ジョブ処理システム、ジョブ送信経路制御方法、及びプログラム、並びに記録媒体
JP4640694B2 (ja) 携帯端末文書の印刷システム、サーバ装置および印刷方法
US20130135664A1 (en) Storage of processed content for printing
JP6602053B2 (ja) 情報処理装置、制御方法及びプログラム
JP2016021157A (ja) Usb接続の一台の機器で複数の機能を持つことを可能にするプログラム
JP5046818B2 (ja) 画像形成装置、画像形成装置内のデータ処理方法、及びデータ処理プログラム
JP2009134584A (ja) 情報処理装置管理システム及び情報処理装置管理方法ならびに、プログラムおよび記憶媒体
JP5108571B2 (ja) 機器、データ転送システム、データ転送方法、プログラムおよび記録媒体
JP5546189B2 (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
KR20080113957A (ko) 잡 컨트롤 장치 및 복합장치 그리고 그들의 동작 방법
JP2005108237A (ja) 異なる種類の画像形成装置が同じ種類の装置として作動するのを可能にするシステム及び方法
JP4536439B2 (ja) 画像処理装置
JP2015111337A (ja) 画像処理システム、画像処理装置、処理方法、および制御プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190322

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200610

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200825

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200923

R151 Written notification of patent or utility model registration

Ref document number: 6768544

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151