JP3758020B2 - 制御処理開始認識プログラムを記録した媒体、制御処理開始認識システムおよび制御処理開始認識方法 - Google Patents

制御処理開始認識プログラムを記録した媒体、制御処理開始認識システムおよび制御処理開始認識方法 Download PDF

Info

Publication number
JP3758020B2
JP3758020B2 JP35220899A JP35220899A JP3758020B2 JP 3758020 B2 JP3758020 B2 JP 3758020B2 JP 35220899 A JP35220899 A JP 35220899A JP 35220899 A JP35220899 A JP 35220899A JP 3758020 B2 JP3758020 B2 JP 3758020B2
Authority
JP
Japan
Prior art keywords
control
client
peripheral device
control processing
start recognition
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.)
Expired - Fee Related
Application number
JP35220899A
Other languages
English (en)
Other versions
JP2001162906A (ja
Inventor
孝紀 宇野
秀一 山中
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP35220899A priority Critical patent/JP3758020B2/ja
Publication of JP2001162906A publication Critical patent/JP2001162906A/ja
Application granted granted Critical
Publication of JP3758020B2 publication Critical patent/JP3758020B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、周辺機器用に提供される所定のモジュールを起動するための制御処理開始認識プログラムを記録した媒体、制御処理開始認識システムおよび制御処理開始認識方法に関する。
【0002】
【従来の技術】
プリンタ等コンピュータの周辺機器は、一般にはその周辺機器用のドライバが制御している。周辺機器のメーカーは通常その周辺機器にドライバを同梱し、利用者はドライバをコンピュータにインストールして周辺機器を使用する。ドライバは様々な態様で提供されており、各周辺機器メーカーが独自に作成して提供するものや、デバイスドライバキットとよばれるソフトウェアで作成して提供するものがある。このデバイスドライバキットでドライバを作成する際には周辺機器固有の処理のみを開発するだけでよく短期間での開発が可能であり、また、ユーザインタフェースがある程度標準的なものになるなどの利点がある。
【0003】
【発明が解決しようとする課題】
上述した従来のデバイスドライバキットによるドライバにおいては、以下の問題があった。すなわち、このようなドライバでは上述のような利点があるものの、その汎用性によって個々の周辺機器に独自の機能に対応することが制限される。例えば周辺機器のステータスを監視するモジュールをドライバと連動させたいとしても、各周辺機器メーカーが独自に作成するのであればドライバを連動させる処理を作成して実現できるが、デバイスドライバキットでは限られた機能のみしか使用できず、実現できない。
【0004】
本発明は、上記課題にかんがみてなされたもので、デバイスドライバキットで作成したドライバであっても種々の周辺機器用の個別機能に対応することが可能な制御処理開始認識プログラムを記録した媒体、制御処理開始認識システムおよび制御処理開始認識方法の提供を目的とする。
【0005】
【課題を解決するための手段】
上記目的を達成するため、請求項1にかかる発明は、サーバとクライアントとを双方向通信可能に接続させ、クライアントにて所定の制御処理を開始したことを当該クライアントで認識するための制御処理開始認識プログラムを記録した媒体であって、上記サーバ側において、クライアントで実行される周辺機器ドライバであって、クライアントにおける周辺機器のステータス監視モジュールと連動する機能を備えていない周辺機器ドライバから上記双方向通信によってサーバに周辺機器の制御指示が与えられたことを検出する制御指示検出機能と、同制御指示検出機能がクライアントからの制御指示を検出したときに上記双方向通信によってクライアントに対して当該制御指示に基づく上記周辺機器の制御処理が開始されたことを通知する制御処理開始通知機能とを実現させ、上記クライアント側において、上記双方向通信によって上記制御処理開始通知機能による制御処理開始通知がなされたときに上記周辺機器の制御処理を開始したことを認識し、上記周辺機器のステータスを監視するためのステータス監視モジュールを起動する制御処理開始認識機能とを実現させる構成としてある。
【0006】
上記のように構成した請求項1にかかる発明においては、サーバとクライアントとは双方向通信可能に接続されており、クライアントにて所定の制御処理を開始したことを当該クライアントで認識するようになっている。このため、サーバにおいては制御指示検出機能と制御処理開始通知機能とが実現されており、クライアントからサーバに所定の制御指示が与えられたことを検出し、当該クライアントに対して制御処理が開始されたことが通知される。クライアントにおいては、制御処理開始認識機能が実現されており、上記双方向通信によって制御処理開始通知を認識する。すなわち、クライアントにて種々の制御指示を与えたときに、当該クライアントはサーバからの通知によって制御処理の開始を認識するので、クライアントにて制御指示を与えるためのモジュール等になんら変更を加える必要がない。
【0007】
このようにクライアントにて自己の制御指示を認識する場合に好適な構成の一例として、請求項2にかかる発明は、請求項1に記載の制御処理開始認識プログラムを記録した媒体であって、上記サーバは双方向通信を介して周辺機器を制御可能であり、同サーバ側において、上記制御指示検出機能では上記クライアントからの周辺機器の制御指示を検出したときに上記制御指示を与えたクライアントを特定するための情報を抽出可能であり、上記制御処理開始通知機能では上記抽出した情報に基づいて上記制御指示を与えたクライアントに対して上記抽出情報を出力し、上記クライアント側において、上記制御処理開始認識機能では上記出力される抽出情報を受信可能であり、同抽出情報に基づいて上記周辺機器の制御が開始されたことを認識する構成としてある。
【0008】
上記のように構成した請求項2にかかる発明においては、サーバ側は双方向通信を介して周辺機器を制御可能であり、クライアント側では当該周辺機器に対する制御指示を与えることが可能である。ここで、サーバ側では制御指示検出機能においてクライアントを特定するための情報を抽出し、制御処理開始通知機能においては抽出情報に基づいて制御指示を与えたクライアントに対して当該抽出情報を出力して制御処理開始を通知するようになっている。周辺機器をドライバで制御する場合、汎用的なドライバ作成ツールによって提供されるような周辺機器ドライバや周辺機器メーカーが独自に提供する周辺機器ドライバなど、どのようなドライバであっても所定の処理を行うものである。そこで、サーバの周辺機器ドライバがこのような所定の処理を行ったことを検出することによって、周辺機器メーカー所望の処理を付加することができないドライバであってもクライアント側に制御処理開始を通知するための処理を開始することが可能になる。
【0009】
また、サーバとクライアントとが双方向通信可能に接続される場合等には複数のクライアントが接続されていることが考えられるため、サーバの処理においては当該制御の開始を指示したクライアントを特定するための情報を抽出して出力する。この結果、クライアントでは自己からの制御指示によって上記周辺機器の制御が開始されたことが認識可能になる。すなわち、クライアントにおいても周辺機器の制御指示を与えるために周辺機器ドライバをインストールすることが考えられるが、このクライアントの周辺機器ドライバを上記汎用的なドライバ作成ツールによって提供する場合には、やはり所望の機能を付加するのは難しい。そこで、サーバから双方向通信によって上記抽出情報が送信されることをもって制御処理開始を認識するように構成した。従って、クライアントの周辺機器ドライバには全く変更を加えることなく、クライアントで制御処理開始が認識される。
【0010】
また、サーバに制御される周辺機器は種々の態様のものを採用可能である。例えば、上記周辺機器と上記サーバとをネットワーク回線を介して双方向通信可能に接続し、当該周辺機器を周辺機器ドライバによってネットワーク回線を介して制御する構成が考えられる。この場合、周辺機器がサーバとネットワーク回線に接続されているので、この周辺機器はサーバによって所定のプロトコルで制御される。例えば、ネットワーク回線に対して接続されるプリンタやFAX,スキャナ,コピー機の統合機をサーバからTCP/IPにて制御するような場合に本発明を適用することができる。むろん、クライアントも同一ネットワーク回線に接続することが可能である。
【0011】
さらに、上記周辺機器と上記サーバとをローカル接続回線を介して双方向通信可能に接続し、上記周辺機器を周辺機器ドライバによってローカル接続回線を介して制御する構成が考えられる。この場合、周辺機器はサーバに制御され、サーバのパラレルポートにプリンタが接続されている場合や、スキャナがSCSI接続されている場合に本発明を適用することができる。
【0012】
また、クライアントにおいて周辺機器の制御処理の開始を認識することができれば、それに応じてクライアントにおいて種々の処理を行うことが可能となる。そのための好適な一例として、請求項3にかかる発明は、請求項2に記載の制御処理開始認識プログラムを記録した媒体において、上記サーバ側の上記制御指示検出機能では制御対象となっている周辺機器を特定するための情報を抽出し、上記クライアント側の上記制御処理開始認識機能では制御処理開始を認識したときに上記抽出情報に基づいて制御対象となる周辺機器を判別し、判別された制御対象周辺機器用のモジュールを起動する構成としてある。
【0013】
上記のように構成した請求項3にかかる発明においては、サーバから制御対象の周辺機器を特定するための情報を抽出・出力し、クライアントにて当該制御対象周辺機器を判別する。従って、制御対象周辺機器用のモジュールが提供されている場合に、利用者にその実行開始を何ら意識させることなく、また、通常のクライアントの周辺機器ドライバを何ら変更することなくモジュールを実行することができる。モジュールは周辺機器特有の機能を実現するためのものにすることができるので、汎用的なドライバ作成ツールによって提供されるような周辺機器ドライバを使用していても、クライアントで周辺機器特有の機能を実現可能である。
【0014】
このような周辺機器特有の機能としては様々なものが考えられ、その一例としては上記周辺機器のステータスを監視するためのステータス監視モジュールが考えられる。この場合、クライアントにおいて周辺機器の制御指示を与えるとステータス監視モジュールが起動するので、利用者は当該制御対象の周辺機器のステータスを知ることができる。むろんステータス監視モジュールがステータスを監視する態様は様々であり、利用者に対するステータスの通知手法も様々である。例えば、ステータス監視モジュールが起動されても通常は利用者に認知されない状態でモジュールを実行しつつ、エラーが発生したときに利用者に対してそのエラー内容を示すようにすることが考えられる。
【0015】
また、上述のように、サーバにおいては周辺機器ドライバが行う処理に基づいて当該周辺機器の制御が開始されたことを検出することができればよく、種々の態様が採用可能である。その構成の一例として請求項4にかかる発明は、請求項1〜請求項3のいずれかに記載の制御処理開始認識プログラムを記録した媒体において、上記制御指示検出機能は、上記サーバ中の汎用関数実行時の処理情報に基づいて制御指示があったことを検出する構成としてある。
【0016】
すなわち、クライアントからの制御指示に伴って上記周辺機器ドライバ等が処理を行う際には種々の汎用関数が実行されるが、この汎用関数が所定の情報を処理することを検出すれば上記制御指示があったことを検出したことになる。このように、汎用関数は上記汎用的なドライバ作成ツールによって提供されるような周辺機器ドライバを使用していても実行されるので、かかる構成により簡単に制御指示があったことを検出することができる。
【0017】
また、請求項5にかかる発明は、請求項4に記載の制御処理開始認識プログラムを記録した媒体において、上記制御指示検出機能は、上記処理情報からユーザ名とマシン名と周辺機器名とポート名とのいずれかまたは組み合わせを抽出する構成としてある。
上記のように構成した請求項5にかかる発明において、ユーザ名およびマシン名は制御指示を与えた利用者やクライアントを知るとき使用することが可能であり、周辺機器名が分かれば起動するモジュールが簡単に判明し、ポート名が分かればその制御対象周辺機器と通信を行うことが可能になって制御対象を知るための情報を直接得ることができる。
【0018】
より具体的な例としては、WINDOWS系(WINDOWSはマイクロソフトコーポレイションの登録商標)のOSにおいて、StartDocPort関数が実行されたときの処理情報から上記抽出を行うと好適である。この場合には上記制御指示検出機能においてはGetJob()関数を実行することでStartDocPort関数からJobIDを基にJobInfoデータを取得して上記制御指示を与えたクライアントを指定するためにユーザ名とマシン名とを抽出し、制御対象となっている周辺機器を特定するために当該周辺機器名あるいはポート名を抽出することが可能である。この一連の処理は同時に制御処理が開始されたことを判別するための処理と言うこともできる。
【0019】
また、周辺機器を特定するための情報を抽出すると制御処理開始を通知するが、この際に好適な構成の一例として、請求項6にかかる発明は、請求項1〜請求項5のいずれかに記載の制御処理開始認識プログラムを記録した媒体において、上記サーバ側で、上記制御指示検出機能によって上記制御処理開始を検出したときに利用者所望の処理が実行されるように設定する実行処理設定機能を実現させる構成としてある。
【0020】
上記のように構成した請求項6にかかる発明においては、上記制御処理開始を通知するための処理をはじめとする種々の処理が制御処理開始検出時に実行されるよう設定可能である。例えば、WINDOWSパソコンにおいて、レジストリに利用者所望のモジュール名を登録しておくことにより、制御処理開始検出時に当該登録内容を参照してその登録されたモジュールを実行するように構成することができる。むろんこの場合は、上記制御処理開始を通知するための処理は登録されるモジュールの一つとして提供される。
【0021】
また、サーバは上記制御処理開始通知機能によってクライアントに対して上記制御処理の開始を通知するが、このための構成は様々であり、請求項7にかかる発明は、請求項2〜請求項6のいずれかに記載の制御処理開始認識プログラムを記録した媒体において、上記制御処理開始通知機能では、上記抽出した所定の情報に基づいて特定のクライアントを通信相手とするパケットの出力と不特定のクライアントを通信相手とするパケットの出力とのいずれかを実行する構成としてある。
【0022】
上記のように構成した請求項7にかかる発明においては、通信相手を特定して、あるいは特定せずに通信を行うことができる。すなわち、サーバがクライアントと双方向通信を行う際に、相手となるクライアントが特定できればそのクライアントと通信を行い、特定できないときにはクライアントで自己が呼ばれていることを識別可能なデータを通信相手となり得る全てのクライアントに送信する。例えば、前者の場合には宛先特定送信方式で通信を行えばよいし、後者の場合にはブロードキャスト方式で通信を開始し、返答のあったクライアントと通信を行えばよい。
【0023】
このように、サーバはクライアントにおいて自己が呼ばれていることを認識可能に通信を開始するので、上記クライアントはパケットを受信したときに上記制御処理の開始を認識する。従って、上記制御処理開始認識機能においては、上記通信相手を指定して出力されたパケットを受信したときには当該受信をもって制御処理の開始を認識することができる。上記通信相手を指定せずに出力されるパケットを受信したときには当該受信パケットに含まれる上記抽出情報に基づいて自己に対するパケットか否かを判別し、自己に対するパケットであるときに制御処理の開始を認識することができる。
【0024】
また、制御処理の開始を認識した後に適切なモジュールを実行するためには、制御対象周辺機器名を判別することができればよく、そのための構成は様々である。その一例として、請求項8にかかる発明は、請求項3〜請求項7のいずれかに記載の制御処理開始認識プログラムを記録した媒体において、上記制御処理開始認識機能では、上記抽出情報に含まれるポート名を使用して制御対象周辺機器と双方向通信を行って同制御対象周辺機器名を判別可能である構成としてある。
【0025】
上記のように構成した請求項8にかかる発明においては、上記抽出情報に制御対象周辺機器のポート名が含まれる場合に同ポート名で同制御対象周辺機器と通信を行う。そして、制御対象周辺機器のデバイスIDを取得してその中のモデルIDを判別し、このモデルIDとクライアントに登録されているモデルID名とを比較して一致するものを制御対象周辺機器とすれば、制御対象周辺機器名を判別することができる。むろん上記抽出情報に制御対象周辺機器名が含まれる場合には当該名称を使用すればよい。
【0026】
むろん、以上述べてきた記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。その他、供給方法として通信回線を利用して行なう場合であればファイルサーバが本プログラムを記録した媒体となって本発明が利用されていることにはかわりない。
さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合においても発明の思想において全く異なるものではなく、一部を記録媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。
【0027】
このように、クライアントにおいて操作した周辺機器操作の指示等の制御指示に基づいてサーバが双方向通信によって制御処理開始を通知する手法は実体のあるサーバとクライアントとにおいて実現され、その意味で本発明をそのようなサーバとクライアントとからなる装置としても適用可能であることは容易に理解できる。このため、請求項9〜請求項16にかかる発明においても、基本的には同様の作用となる。むろん、このようなシステムは単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものであって、適宜、変更可能である。
【0028】
また、このような制御処理開始認識プログラムはかかる制御に従って処理を進めていく上で、その根底にはその手順に発明が存在するということは当然であり、方法としても適用可能であることは容易に理解できる。このため、請求項17〜請求項24にかかる発明においても、基本的には同様の作用となる。すなわち、必ずしも実体のある媒体などに限らず、その方法としても有効であることに相違はない。
【0029】
【発明の効果】
以上説明したように請求項1、請求項9、請求項17にかかる本発明によれば、クライアントにおいて制御指示を与えるための構成に何ら変更を加えることなく当該クライアントで制御処理の開始を認識することができる。
また、請求項2、請求項10、請求項18にかかる発明によれば、汎用的な周辺機器ドライバを使用していてもクライアントにおいて制御処理の開始を認識することができる。
さらに、請求項3、請求項11、請求項19にかかる発明によれば、汎用的な周辺機器ドライバを使用していてもクライアントにおいて周辺機器特有の機能を実現することができる。
さらに、請求項4、請求項12、請求項20にかかる発明によれば、簡単に制御指示があったことを検出することが可能となる。
【0030】
さらに、請求項5、請求項13、請求項21にかかる発明によれば、通常の制御処理に使用される情報のみに基づいて所定の相手クライアントと通信を行うことができる。
さらに、請求項6、請求項14、請求項22にかかる発明によれば、簡単に利用者所望の処理を行わせることが可能になって汎用性が高くなる。
さらに、請求項7、請求項15、請求項23にかかる発明によれば、簡単にクライアントに対して制御処理開始通知を受信させることができる。
さらに、請求項8、請求項16、請求項24にかかる発明によれば、利用者が何ら意識することなく制御対象周辺機器専用のモジュールを起動することができる。
【0031】
【発明の実施の形態】
以下、図面にもとづいて本発明の実施形態を説明する。
図1はサーバのハードウェア構成を示しており、図2は制御処理の開始を認識するためのサーバおよびクライアントの構成の要部を示している。尚、本実施形態では周辺機器はプリンタである。図1に示すように、サーバ10とクライアント50とプリンタ40aとはUTPケーブル33を介して接続されており、クライアント50からのプリンタ40aの制御指示は一旦サーバ10に入力され、当該サーバ10がプリンタ40aを制御するようになっている。また、サーバ10においてはパラレルケーブル34を介してプリンタ40bをローカル接続することが可能であり、上記と同様にクライアント50からの制御指示に応じてサーバ10がプリンタ40bを制御する。
【0032】
同図において、サーバ10は演算処理の中枢をなすCPU11を備えており、このCPU11はシステムバス12を介してBIOSなどの記載されたROM13やRAM14にアクセス可能となっている。また、システムバス12には外部記憶装置としてのハードディスクドライブ15とフロッピーディスクドライブ16とCD−ROMドライブ17とが接続されており、ハードディスクドライブ15に記憶されたオペレーティングシステム(OS)20やアプリケーション(APL)などがRAM14に転送され、CPU11はROM13とRAM14に適宜アクセスしてソフトウェアを実行する。本実施形態においては、制御処理開始認識プログラムも同様にハードディスクドライブ15からRAM14に転送されて実現されている。
【0033】
シリアル通信用I/O19aにはキーボード31やマウス32の操作用入力機器が接続され、図示しないビデオボードを介して表示用のディスプレイ18も接続されている。さらに、プリンタ40aおよびクライアント50とは10BASE−T用I/O19cを介してUTPケーブル33によって接続可能になっており、プリンタ40bとはパラレル通信用I/O19bを介してパラレル接続が可能となっている。尚、本サーバ10の構成は簡略化して説明しているが、パーソナルコンピュータやワークステーションとして一般的な構成を有するものを採用することができる。
【0034】
むろん、本発明が適用されるサーバはパーソナルコンピュータに限定されるものではない。この実施例はいわゆるデスクトップ型コンピュータであるが、ノート型であるとか、モバイル対応のものであっても良い。また、サーバ10とプリンタ40a,bとの接続インタフェースもパラレル通信用I/O19bや10BASE−T用I/O19cなどに限る必要はなく、通常のシリアルインタフェースやSCSI,USB接続など種々の接続態様を採用可能であるし、今後開発されるいかなる接続態様であっても同様である。
【0035】
また、サーバ10にはパラレル通信用I/O19bと10BASE−T用I/O19cとを介してプリンタ40が接続可能になっているが、必ずしも両I/Oを必要とするわけではなく、どちらかのインタフェースのみを有する構成であってもよい。すなわち、サーバ10に対して周辺機器がネットワーク回線を介して接続される構成およびローカル接続回線を介して接続される構成のどちらに対しても本発明を適用することが可能である。
【0036】
クライアント50のハードウェア構成も図1に示すサーバのハードウェア構成と略同一である。すなわち、パーソナルコンピュータやワークステーションとして一般的な構成を有するものを採用することが可能である。ここで、本発明に関してはクライアント50に周辺機器を接続する必要はないのでパラレル通信用I/O19bを設ける必要はないが、むろん、パラレル通信用I/O19bを介してプリンタ等の周辺機器を接続可能であっても全く問題はない。
【0037】
この例では制御処理開始認識プログラムを含む各プログラムの類はハードディスクドライブ15に記憶されているが、記録媒体はこれに限定されるものではない。例えば、フロッピーディスク16aであるとか、CD−ROM17aであってもよい。これらの記録媒体に記録されたプログラムはフロッピーディスクドライブ16やCD−ROMドライブ17を介してサーバ10やクライアント50にて読み込まれ、ハードディスクドライブ15にインストールされる。そして、ハードディスクドライブ15を介してRAM14上に読み込まれてホストコンピュータを制御することになる。また、記録媒体はこれに限らず、光磁気ディスクなどであってもよい。また、半導体デバイスとしてフラッシュカードなどの不揮発性メモリなどを利用することも可能であるし、モデムや通信回線を介して外部のファイルサーバにアクセスしてダウンロードする場合でもサーバーの記憶部が記録媒体となりうることはいうまでもない。
【0038】
次に、図2に示すサーバ10およびクライアント50の制御系の要部構成を説明する。同図において、サーバ10のOS20にはプリンタドライバ(PRTDRV)21が組み込まれており、同プリンタドライバ21は上記プリンタ40aをTCP/IPで制御する。また、OS20にはStartDocPort関数を実行するTCP/IP印刷モジュール21aが組み込まれている。クライアント50のOS60にはプリンタドライバ61が組み込まれており、また、10BASE−T用I/O19cを介してパケットを受信したか否かを検出するエージェント62を備えている。ここで、クライアント50のプリンタドライバ61はプリンタ40aに対して信号を送信して直接的に制御するためのものではなく、利用者のAPL操作に基づいてサーバ10に対してプリンタ40aの制御指示や印刷イメージやフォント等のデータを送信したりクライアント50のマシン名等を含むJobInfoデータ等を送信したりするためのものである。
【0039】
サーバ10のプリンタドライバ21はこのクライアント50から10BASE−T用I/O19cを介して発信されるプリンタ40aの制御指示に応じてプリンタ40aを制御して所定の印刷等を行うようになっている。また、サーバ10にはこのプリンタドライバ21が処理を開始することに応じてクライアント50に対して制御処理の開始を認識可能にデータを出力するために、印刷通知モジュール22と起動モジュール23とからなる通知モジュール群が備えられている。
【0040】
具体的には、TCP/IP印刷モジュール21aにStartDocPort関数を作成して、プリンタドライバ21にてプリンタ40aの制御処理を行う際に同関数が実行されるように構成してある。このStartDocPort関数にはJobIDと呼ばれるユーザ名とマシン名とポート名とを含む印刷情報へのインデックスが渡されるので、このときに印刷開始を検出することになる。従って、このTCP/IP印刷モジュール21aが上記制御指示検出機能を構成する。また、上記印刷通知モジュール22はGetJob()関数を実行してJobInfoとして上記ユーザ名とマシン名とポート名とを取得するようになっている。印刷通知モジュール22は、これらのユーザ名とマシン名とポート名が出力されたときに予めOS20のレジストリ22aに登録されたモジュールを起動するようになっており、起動モジュール23は起動されるモジュールの一つとして予め登録されている。従って、印刷通知モジュール22とレジストリ22aとが上記実行処理設定機能を構成する。
【0041】
ここで、起動モジュール23は印刷通知モジュール22から上記ユーザ名とマシン名とポート名の情報を取得して、これらの情報に基づいて後述する判断手順に基づいて通信相手や通信形態を判断し、宛先特定送信やブロードキャストを用いて10BASE−T用I/O19cを介してクライアント50に対して所定のデータを所定態様のパケットで送信する。従って、印刷通知モジュール22と起動モジュール23とが上記制御処理開始通知機能を構成する。クライアント50のOS60に組み込まれた上記エージェント62はこの起動モジュール23の制御によって出力されるパケットを受信するか否かを監視している。
【0042】
また、クライアント50には受信パケットに基づいてサーバ10における制御処理の開始を認識し、さらにはプリンタ40aのステータスを監視するためのモジュールを起動するための認識モジュール群が備えられている。より具体的には、認識モジュール群はSTM起動モジュール63とステータスを監視するためのステータスモニタ64とを備えている。上記エージェント62が上記起動モジュール23の制御によって出力されるパケットを受信するとレジストリ65を参照するなどの後述する所定の判断手順に基づいて、パケットが宛先特定送信,ブロードキャストのいずれの手法で送信されたかを判別する。
【0043】
そして、この判別結果に応じて必要なときには上記STM起動モジュール63を起動し、上記ポート名の情報を同STM起動モジュール63に対して出力する。STM起動モジュール63はエージェント62が出力するポート名の情報から、レジストリ65を参照するなどの後述する手順に基づいて、必要なときはプリンタ40aと通信を行って当該クライアント50中のSTMを起動するか否かを判別し、判別の結果に応じてステータスモニタ64を起動する。従って、クライアント50を操作する利用者はプリンタ40aにて印刷エラーが生じたときなどにそのステータスを認識することができる。従って、エージェント62とSTM起動モジュール63とが上記制御処理開始認識機能を構成する。
【0044】
ここで、上記構成によって、クライアント50にて制御指示を出したプリンタ40aに対してサーバ10が制御を開始したときにクライアント50上で利用者がプリンタ40aのステータスを認識することができるが、サーバ10上で利用者がプリンタ40aの制御指示を出し、ステータスを知りたい場合のためにSTM起動モジュール63とステータスモニタ64とをサーバ10備える構成にすることもできる。また、ここで起動されるモジュールはステータスモニタ64に限ることなく、利用者あるいは周辺機器メーカー所望のモジュールを起動可能に構成することができる。
【0045】
さらに、サーバ10が制御するプリンタは上述のようにネットワーク回線を介して接続されたものに限られず、ローカル接続回線で接続されるプリンタ40bであってもかまわない。図3はかかる場合のサーバ10の制御系の要部構成を示しており、同図において、サーバ10のOS20にはプリンタドライバ(PRTDRV)21が組み込まれており、また、OS20にはStartDocPort関数を実行するランゲージモニタ21bが組み込まれている。この場合は、上記クライアント50からの制御指示によってプリンタドライバ21が所定の処理を行う際に、ランゲージモニタ21bのStartDocPort関数にJobIDが渡されることによって印刷開始が検出される。
【0046】
検出後には上述の処理と同様に印刷通知モジュール22が起動される等して、最終的にはクライアント50上でステータスモニタ64が起動する。尚、この場合はプリンタドライバ21はプリンタ40bをパラレル通信用I/O19bを介して制御するようになっており、ランゲージモニタ21bにてJobInfoとしてユーザ名とマシン名とプリンタ名を取得する。従って、上述の態様とではプリンタ名とポート名という情報内容の相違があるが、いずれにしても後述する手順によってステータスモニタ64が起動されることになる。
【0047】
以下、上記構成における上記サーバ10およびクライアント50に備える各モジュールによって実行される処理フローを説明する。図4は上記TCP/IP印刷モジュール21aあるいはランゲージモニタ21bが行う処理のフローである。同図において、プリンタドライバ21が印刷を開始すると、TCP/IP印刷モジュール21aはステップS100にてStartDocPort関数を実行し、ステップS110にてJobIDを受領する。そして、ステップS120においてGetJob()関数を実行してJobInfoとしてユーザ名とマシン名とポート名(プリンタ名)とを取得して、ステップS130において当該取得情報を付加しつつ印刷通知モジュール22を起動する。
【0048】
すなわち、同フローではStartDocPort関数が実行されてJobIDが処理されることをもってJobInfo情報の抽出から印刷通知モジュールの起動まで結びつけており、当該処理において印刷開始を検出しているといえる。尚、ここで、ポート名(プリンタ名)と記載したのは、プリンタがネットワーク回線を介して接続されるかローカル接続回線を介して接続されるかによっていずれか一方が抽出されることを示しており、以下の記載においても同様である。
【0049】
図5は、上記ステップS130にて起動された印刷通知モジュール22のフローである。印刷通知モジュール22はステップS200にて上記ステップS130にて上記ステップS130の起動時に付加されているユーザ名とマシン名とポート名(プリンタ名)を取得する。その後、印刷通知モジュール22はステップS210にてレジストリ22aを参照して当該レジストリ22aに記載されているモジュールを実行し、ステップS220では、同ステップS210にて実行した全てのモジュールに対して上記ステップS200の取得データを出力する。ここで、レジストリ22aには予め起動モジュール23が登録されており、同起動モジュール23は上記ステップS210にて実行される。
【0050】
すなわち、起動モジュール23に対してもこれらのユーザ名とマシン名とポート名(プリンタ名)が出力される。ここで、上記ステップS210において起動モジュール23のように実行されるモジュールをレジストリに登録しておくのは、モジュールを実行させるに当たり簡単に利用者や周辺機器メーカー所望のモジュールを追加可能にして汎用性を向上させるためである。
【0051】
図6は、上記ステップS210にて実行された起動モジュール23のフローである。同起動モジュール23は、所望のクライアント50を通信相手にして双方向通信を行って制御処理開始を認識させるための処理を行う。このため、まずステップS300において、サーバ10のユーザ名とマシン名をレジストリ22aから取得し、上記ステップS220にて出力されるJobInfoデータとしてユーザ名とマシン名とポート名(プリンタ名)を取得する。
【0052】
以下のステップにおいて取得したサーバ10のマシン名等の情報とJobInfoデータのユーザ名等の情報とを比較するが、これは、サーバ10とクライアント50のOSが異なる場合等にJobInfoデータのユーザ名とマシン名が必ずしもクライアント50のユーザ名とマシン名になっていないからである。より具体的には、図13にその一例を示してある。この例は、図12(a)のようにネットワーク回線上にサーバ10とクライアント50と他のクライアントを接続し、サーバ10のユーザ名がA,マシン名がPC1であり、クライアント50のユーザ名がB,マシン名がPC2である場合について示してある。
【0053】
ここで、図13においてはサーバ10あるいはクライアント50のOSが、WINDOWS95あるいはWINDOWSNTのいずれかである場合について全ての組み合わせを表にして示している。同図の例においては、サーバ10のOSとクライアント50のOSとが同一である場合にはJobInfoデータ中のユーザ名はB,マシン名はPC2であり、これらのデータを使用すれば通信相手のクライアントおよび使用ユーザを特定することができる。しかし、サーバ10のOSとクライアント50のOSとが異なる場合にはJobInfoデータからクライアント50のユーザ名とマシン名とを取得することができない。
【0054】
すなわち、サーバ10のOSがWINDOWS95でクライアント50のOSがWINDOWSNTである場合には、JobInfoデータ中のユーザ名はPC2でありマシン名もPC2になってしまう。また、サーバ10のOSがWINDOWSNTでクライアント50のOSがWINDOWS95である場合には、JobInfoデータ中のユーザ名はBでありマシン名がPC1になってしまう。従って、サーバ10で通信相手を特定すべく図6に示すステップS320以降の処理を行っている。
【0055】
同図ステップS320においては、上記ステップS300で取得したサーバ10のマシン名と上記ステップS310で取得したJobInfoデータ中のマシン名とを比較する。ステップS330では、当該比較の結果両者が一致しているか否かを判別する。両者が一致していると判別されないときは、上記図13に示すようにサーバ10とクライアント50のOSが一致している場合か、あるいはサーバ10のOSがWINDOWS95でクライアント50のOSがWINDOWSNTである場合であって、JobInfoデータ中のマシン名はクライアント50のマシン名である。
【0056】
従って通信相手は特定され、ステップS370にて当該マシン名のクライアント50に対して10BASE−T用I/O19c,UTPケーブル33を介して双方向通信によってJobInfoデータに基づくユーザ名とマシン名とポート名(プリンタ名)を出力する。尚、本実施形態においては、このように通信相手を指定して通信を行う際には宛先特定送信方式で通信を行うようになっている。また、ステップS370に示す(J)は出力するユーザ名等のデータはJobInfoデータに基づくものであることを示しており、ステップS360においても同様である。
【0057】
上記ステップS330で両者が一致していると判別されたときには、ステップS340にて上記ステップS300で取得したサーバ10のユーザ名と上記ステップS310で取得したJobInfoデータ中のユーザ名とを比較する。ステップS350では、当該比較の結果両者が一致しているか否かを判別する。両者が一致していると判別されないときは、上記図13に示すようにサーバ10のOSがWINDOWSNTでクライアント50のOSがWINDOWS95である場合のように、マシン名が一致し、ユーザ名が異なる状況である。
【0058】
そこで、かかる場合にはステップS360では通信相手はネットワーク回線に接続されるクライアントのいずれかであるとして、ブロードキャスト方式で全てのクライアントに対して10BASE−T用I/O19c,UTPケーブル33を介してJobInfoデータに基づくユーザ名とマシン名とポート名(プリンタ名)を出力する。この場合は、クライアント50にログオンしているユーザしか特定できないので、当該ブロードキャスト方式で出力されるパケットを受け取った全てのクライアントは、後述するエージェントの処理で受信データ中のユーザ名によって自己に対する発信か否かを判別するようになっている。
【0059】
上記ステップS350で両者が一致していると判別されたときは、図13に示すいずれの状況でもなく、JobInfoデータのユーザ名およびマシン名がサーバ10のユーザ名およびマシン名と一致している状況である。従って、この場合は、クライアントからプリンタ40aの制御指示があったのではなく利用者がサーバ10にてプリンタ40aの制御指示を与えたと考えられる。そこで、かかる場合にはステップS380にてサーバ10のステータスモニタを起動する。
【0060】
図7はクライアント50のOS60に組み込まれたエージェント62のフローを示しており、上記起動モジュール23がステップS360,S370で出力する情報を取得して、自己がプリンタ40aの制御指示を出力したか否かを判別する等の処理を行う。当該エージェント62はOS60に常駐し、ステップS400にて上記ステップS360,S370にてサーバ10が出力するパケットを受信したか否かを判別する。同ステップS400にてパケットを受信したと判別したときには、ステップS410にて当該バケット中の所定位置に記載されたフラグによって当該パケットがブロードキャスト方式による送信であるか否かを判別する。
【0061】
同ステップS410にて当該パケットがブロードキャスト方式であると判別されないとき、この受信パケットは上記宛先特定送信であって受信クライアントを特定して送信したものである。そこで、ステップS420にて上記STM起動モジュール63を起動し、ステップS430ではSTM起動モジュール63が制御対象プリンタ40aに関するモジュールを起動できるように受信パケット中に含まれるJobInfoデータに基づくポート名(プリンタ名)を出力する。ステップS410にて受信パケットがブロードキャスト方式であると判別されたときには、ステップS440にてクライアント50のレジストリ65から当該クライアント50のユーザ名を取得する。
【0062】
そして、ステップS450にて当該クライアント50のユーザ名と上記パケット中に記載されたJobInfoデータに基づくユーザ名とを比較し、ステップS460にて両者が一致するか否かを判別する。同ステップS460にて両者が一致する場合には、プリンタ40aに対して制御指示を与えたクライアントが自己であると認識することができるので、上述のステップS420以降のSTM起動モジュール63を起動する一連の処理を行う。ステップS460にて両者が一致しない場合には、プリンタ40aに対して制御指示を与えたクライアントは自己ではないので、STM起動モジュール63を起動することなく一連の処理を終了する。
【0063】
ここで、本実施形態においては、サーバ10とクライアント50との間でメールスロット方式の双方向通信を採用して、宛先特定送信とブロードキャストとを実現している。また、通信相手においてリプライ用のメールスロットを作成・送信することにより通信の信頼性を向上させている。このために、本実施形態においてサーバ10が上記ステップS360,S370にて出力するバケットは図14に示すような構造体となっている。すなわち、このパケットにはその前半において適正な通信を可能にし、また、信頼性を向上させるためのパケットサイズやカウンタ値等が含まれており、後半にてユーザ名,マシン名,ポート名(プリンタ名)が含まれている。
【0064】
カウンタ値はある情報を含むパケットを一意に特定するためのものであり、後述するようにサーバ10がリトライとして同一情報を含むパケットを再送信した際に、クライアント50にて当該受信パケットがすでに受け取ったものであるか否かを判別することができる。また、パケットの組番号,総数,順序はある情報を複数のパケットに分割して送信する際に、分割されたパケットをクライアント50側で一つの情報として再現するための処理を行うためのものである。すなわち、一つの情報に対して一意に組番号を付与しておき、パケットの分割数を総数とし、分割したパケットに順序を付与することによりクライアント50で共通の組番号を付された情報を順序通りに再現する。また、パケットにはブロードキャストか否かを示すフラグも含まれており、当該フラグにてブロードキャストであることが示されている場合には全てのクライアントは自己が処理を行うべきか否かを判別する。
【0065】
また、メールスロット方式においては送信側と受信側とでやりとりを行うためのメールスロット名を決定し、送信側と受信側とにおいて送信用と受信用のメールスロットを作成する。従って、上記エージェントはそのメールスロットでパケットの受信を待ち、送信側がそのメールスロットへパケットを送信することでやりとりを行う。より具体的には、サーバ10およびクライアント50の両方において「¥¥<コンピュータ名>¥mailslot¥<メールスロット名>」という形式にてメールスロットを作成する。図12(a)においては、メールスロット名は「EPSON¥STM3¥SIDM¥AGENT」となっている。さらに、コンピュータ名を「PC2」とすることによって当該メールスロットは「PC2」を宛先として特定したメールスロットになり、コンピュータ名を「*」にすることによって全クライアントにあてたブロードキャスト方式になる。また、「.」は自己であることを示しており、コンピュータ名として当該指定を行うことによって受信用メールスロットとなる。
【0066】
図8は上述のパケットをサーバ10が上記ステップS360,S370にて出力するときの詳細な通信手順を示している。ステップS361においてサーバ10はメールスロット送信用スレッドを作成し、ステップS362では複数のプリンタが連続して印刷開始した場合などにメールスロット等の資源の取り合いを回避するため、ミューテックスを取得する。次にステップS363で通信の信頼性を向上させるためクライアント50からのリプライを受信するためのメールスロットを作成し、ステップS364にて10BASE−T用I/O19c,UTPケーブル33を介してパケットを出力する。
【0067】
ここで、上記ステップS360の場合は、ブロードキャスト方式の送信なので送信用のメールスロットでコンピュータ名を「*」にしてパケットを出力する。上記ステップS370の場合は、宛先特定送信なのでコンピュータ名を「PC2」などとして具体的に指定しつつパケットを出力する。ステップS365ではクライアント50からのリプライを待つ時間を計測するためにタイマをセットし、ステップS366にて10BASE−T用I/O19c,UTPケーブル33を介してリプライを受信したか否かを判別する。同ステップS366にてリプライを受信したと判別しないときにはステップS367にてタイムアウトになっているかを判別して、当該ステップS367にてタイムアウトと判別されなければステップS366に戻って処理を繰り返す。
【0068】
ステップS366にてリプライを受信したと判別したとき、あるいはステップS367にてタイムアウトと判別されたときには、ステップS368にて所定のリトライ回数を行った否かを判別し、所定のリトライ回数を行ったと判別されないときには上記ステップS364〜S368間でのパケット出力・確認処理を繰り返す。ステップS368にてリトライを行う必要がないと判別されるかリトライ回数を越えたときにはステップS369にてミューテックスを開放してパケット送信のためのスレッドを終了する。すなわち、本実施形態においては、メールスロット方式を採用することによって宛先特定送信であってもブロードキャストであっても簡単な変更のみで対応することが可能であり、また、リプライ受信用メールスロットにてリプライを確認することによって通信の信頼性を向上させている。
【0069】
図9はサーバ10が出力するパケットをクライアント50が上記ステップS400にて受信するときの詳細な通信手順を示している。上述のようにエージェント62はOS60に常駐しており、当該エージェント62がステップS401にてパケット受信したときには、ステップS402にて送信元のサーバ10に対してリプライパケットを送信する。そして、ステップS403にて上記ステップS401にて受信したパケットのカウンタ値を参照し、すでに何らかのパケットを取得済みであってカウンタ値を保持している場合にはステップS404にて、取得したパケットのカウンタ値と保持しているカウンタ値とが一致するか否かを判別する。
【0070】
同ステップS404にてカウンタ値が一致した場合には当該パケットをすでに取得済みであるので当該パケットに関して処理を続行しない。ステップS404にてカウンタ値が一致したと判別されないときにはステップS405にてカウンタ値を保存する。そして、ステップS406においては上記組番号が指定されているような場合に全てのパケットを受領したか否かを判別し、全てのパケットを受領していない場合にはステップS401以降の処理を繰り返す。このように、クライアントにおいては、パケット受信に際して通信の信頼性を向上させるための処理や分割パケット復元等の処理を行っている。この結果、上記図7に示すパケット情報に基づくクライアントにおける処理を行うことが可能になる。
【0071】
図10は上記ステップS420で起動されるSTM起動モジュール63のフローを示しており、上記ステップS430で出力されるポート名(プリンタ名)別に所定の判別を行って制御対象プリンタ40a用のステータスモニタ64を起動する。このため、ステップS500では上記ステップS430で出力されるポート名(プリンタ名)を取得し、ステップS510にて当該取得データがプリンタ名であるか否かを判別する。同ステップS510で取得データがプリンタ名であると判別されたときには、ステップS580にてそのプリンタ名のステータスを監視するためのステータスモニタ64を起動する。
【0072】
上記ステップS510で取得データがプリンタ名であると判別されないときには取得データはポート名であるので、以降の処理でこのポート名を使用して上記プリンタ40aと双方向通信を行って、当該プリンタ40aのプリンタ名を取得する。すなわち、JobInfoデータは元々プリンタ40aを制御するためのデータであって、当該ポート名はプリンタ40aを指定するものである。そこで、ステップS520では上記ステップS500で取得したポート名で示されるプリンタ40aと上記10BASE−T用I/O19c,UTPケーブル33を介して双方向通信を開始する。ここで、ポート名は上記図13に示すように「¥¥Epson_lpr¥192.168.x.x」であり、本実施形態においては当該ポート名を使用してプリンタ40aと双方向通信を行う図示しないモジュールが組み込まれており、当該モジュールの制御に基づいてプリンタ40aと通信を行うようになっている。
【0073】
この双方向通信において、ステップS530ではプリンタ40aのデバイスIDを取得し、同デバイスID中のモデルIDを取得する。一方、上記クライアント50中のOS60に組み込まれたレジストリ65には当該クライアント50で使用する周辺機器であるプリンタ40aのモデルIDおよび出力ポート名が記載されている。そこで、ステップS540ではレジストリ65を参照し、ステップS550で上記取得したモデルIDおよび出力ポート名がレジストリに記載されたモデルIDおよび出力ポート名に一致するものを検出する。
【0074】
ステップS560ではこれらのモデルIDと出力ポート名との組が一致したか否かを判別し、上記ステップS500で取得したものとレジストリ記載のものとが一致するものがあると判別されたときには、ステップS580にて該当するモデルIDおよび出力ポート名を有するプリンタ40aのステータスモニタ64を起動する。ステップS560で一致するものがあると判別されないときには、ステップS570にて上記ステップS500で取得したポート名とレジストリ記載のポート名とが一致するものを検出し、最初に検出されたポート名が一致するプリンタを制御対象と見なしてステップS580にて該当するプリンタのステータスモニタ64を起動する。
【0075】
上記構成によってプリンタ40aの制御を開始したときには、利用者が何ら意識することなくステータスモニタ64が起動し、通常はバックグラウンドでステータスを監視し、印刷エラー等が生じたときにステータスモニタ画面を上記クライアント50のディスプレイ18に表示して利用者にプリンタ40aのステータスを提示する。一方、利用者が望む時にいつでもステータスモニタ64を起動可能であれば便利であり、本実施形態では汎用的なドライバ作成ツールによって提供される周辺機器ドライバを使用しつつもステータスモニタ64を起動可能に構成するため、プリンタのプロパティを起動したときにShellExtensionモジュールを起動するようになっている。
【0076】
具体的には、プリンタのプロパティを起動したときには、図15に示すようにWINDOWSの本体モジュール70がプロパティシート71の画面を生成し、デフォルトで表示するようになっている「全般」「ポート」などのページを追加する。このとき、立ち上げられたプリンタである「LQ−580」のドライバUIモジュール72が起動して「ドライバ」ページを追加するようになっている。本実施形態では「LQ−580」のドライバは汎用的なドライバ作成ツールで提供されているため、ステータスモニタ64を起動するためのボタン等を上記ドライバUIモジュール72が追加するページに設けることができない。
【0077】
そこで、WINDOWS本体モジュール70において呼び出すことが可能なShellExtensionモジュール73にて独自のページを上記プロパティシート71に追加するように構成してある。このShellExtensionモジュール73を使用した拡張は、プリンタであればクライアント50にインストールされている全てのプリンタに対して行われることになり、特定のプリンタのみに対して拡張を行うことはできないようになっている。そこで、本実施形態のShellExtensionモジュールではプリンタをプロパティページの表示内容によっていくつかのタイプに分類し、分類した各タイプ毎にShellExtensionモジュールを用意してある。
【0078】
各タイプのShellExtensionモジュールは自己のタイプ番号を保持しており、レジストリを参照して最終的には「LQ−580」のプロパティシート71に追加すべきページのShellExtensionモジュールのみが起動し続けるようになっている。すなわち、ShellExtensionモジュール73が起動すると、当該プロパティのドライバ名を取得する。そして、レジストリに当該ドライバ名が予め登録されていないものは起動する必要が無いとしてそのまま処理を中断する。
【0079】
また、本手法によるページ追加に対応したプリンタのドライバに対してはレジストリにドライバ毎に予め上記タイプ情報が書き込まれている。そこで、続いて取得したドライバ名のレジストリにタイプ情報が書き込まれているか否かを判別し、タイプ情報が書き込まれていないShellExtensionモジュールも起動する必要が無いとしてそのまま処理を中断する。さらに、ShellExtensionモジュール73はこのタイプ情報が自己のタイプと一致しているか否かを確認して、一致するもののみ起動し続ける。この結果、所望のタイプに対応したページが上記プロパティシート71に追加され、上記ドライバUIモジュール72が提供するページに何ら変更を加えることなく所望の機能を追加することが可能になる。
【0080】
図11(b)は、このようにして提供されるプリンタプロパティページに対してプリンタ独自の機能を実現するページの一例として、利用者所望にステータスモニタ64を起動するためのユーティリティページを示している。同図において、ステータスモニタ64を起動するためのページは、本実施形態においては上記レジストリにタイプ1として登録されており、ステータスモニタ64を起動するためのSTMボタンと当該ステータスモニタ64を表示する条件などを設定するモニタ設定ボタンとが設けられている。尚、レジストリにタイプ2として登録されているページにおいては、さらに用紙登録ユーティリティボタンを追加して表示するようになっており、複数の給紙装置を装着可能なプリンタに対する設定を行うことが可能になっている。
【0081】
むろんここで、タイプはこれらの2つのみである必要はなく、将来のプリンタ機能の拡張に対応させるためなどにタイプを増やすことは可能である。また、ShellExtensionモジュール73を起動するときにはレジストリを参照することが可能であるので当該レジストリの参照を通じて種々の処理を行うことができる。例えば、各言語に対するローカライズ対応をすることが可能である。すなわち、各言語に対応するリソースをDLLモジュールとして実行モジュールとは別に用意し、ShellExtensionモジュールがレジストリ情報を利用して現在の環境にあったりソースDLLを使用するように構成すればよい。
【0082】
このように、本実施形態においては、クライアント50においてプリンタ40aの制御指示を出したときおよび利用者がプリンタのプロパティシートのユーティリティページにてSTMボタンをクリックしたときにステータスモニタ64が起動する。図11はかかる状況を、主にクライアント50のディスプレイ18に表示される画面を示しつつ動作の流れを概念的に示したものである。図11(a)は種々のアプリケーションを使用して文書を作成した後、当該文書を印刷する際に表示される印刷指示画面である。同図(a)には印刷文書の書式を決定するマージン値入力ボックスやフォント種,フォントのポイント数等を入力する入力ボックスが設けられているとともに、設定後に印刷開始を指示するための「OK」ボタンが設けられている。
【0083】
すなわち、利用者が上記クライアント50のマウス32を操作して「OK」ボタンをクリックすると、上記ステータスモニタ64はクライアント50においてバックグラウンドで起動し、エラーが発生するなど利用者にステータスを通知する必要がある時のみに上記クライアント50のディスプレイ18に図11(c)に示すステータスモニタ画面を表示する。一方、利用者がプリンタのプロパティーシートを表示させ、ユーティリティページで「STM」ボタンをクリックすると同図(c)に示すステータスモニタ画面が表示される。
【0084】
以下、上記図11(a)に示す前者の場合の各部の動作を、サーバ10のOS20およびクライアント50のOS60の双方がWINDOWS95である場合(以下(例−1)とする)とサーバ10のOS20がWINDOWSNTであってクライアント50のOS60がWINDOWS95である場合(以下(例−2)とする)とに分けて説明する。また、(例−1)の場合は図12(a)に示すようにUTPケーブル33にクライアント50を含む複数のクライアントが接続され、さらにサーバ10とプリンタ40aとがUTPケーブル33に接続されている。(例−2)の場合は図12(b)に示すようにUTPケーブル33にクライアント50を含む複数のクライアントおよびサーバ10が接続されているようなネットワーク構成であって、プリンタ40bがサーバ10に対してローカル接続されている。さらに、いずれの場合もサーバ10のユーザ名がA,マシン名がPC1、クライアント50のユーザ名がB,マシン名がPC2であるとし、ポート名は「¥¥Epson_lpr¥192.168.x.x」であり、プリンタ名は「LQ−580」であるとする。
【0085】
(例−1)の場合、上述のように利用者が図11(a)に示す画面で「OK」ボタンをクリックすると、上記クライアント50のプリンタドライバ61が印刷データとともにJobInfoデータ等の所定のデータを上記10BASE−T用I/O19c,UTPケーブル33を介して双方向通信にてサーバ10に対して出力する。サーバ10では当該双方向通信によって印刷データ等を受信するとプリンタドライバ21がプリンタ40aに対して当該印刷データに基づく印刷をするように制御処理を開始する。
【0086】
このとき、TCP/IP印刷モジュール21aは上記ステップS100にてStartDocPort関数が実行されたことに基づいて印刷が開始されたことを検出する。そして、ステップS120においてJobInfoデータとしてユーザ名とマシン名とポート名とを抽出し、ステップS130にて印刷通知モジュール22を起動してこれらのユーザ名とマシン名とポート名とを同印刷通知モジュール22に出力する。
【0087】
起動された印刷通知モジュール22は、ステップS210でレジストリ22aを参照し、同レジストリ22aに記載されているモジュールを実行する。ここで、起動モジュール23には印刷通知モジュール22がステップS200で取得してステップS220で出力する上記ユーザ名とマシン名とポート名とが入力される。これらの入力データを用いて起動モジュール23はクライアント50にプリンタ40aの制御処理開始を通知し認識させるための処理を行う。
【0088】
ここで、本(例−1)の場合は図13に示すようにJobInfoのマシン名はPC2でありサーバ10のマシン名はPC1であって、ステップS330でマシン名が一致すると判別されない。従って、ステップS370にてマシン名がPC2であるクライアント50に対して10BASE−T用I/O19c,UTPケーブル33を介して双方向通信を行い、JobInfoデータに基づくユーザ名とマシン名とポート名を出力する。ここでは、通信相手がPC2であると判別されているので、図12(a)に示すようにコンピュータ名を「PC2」にして宛先特定送信方式で通信を行う。
【0089】
クライアント50においては、エージェント62が常駐しているので、当該宛先特定送信方式にかかるパケットがUTPケーブル33を介して送信された後に当該パケットの受信を検出する。そして、ステップS410にて当該パケットがブロードキャストではないことを判別してステップS420〜ステップS430でSTM起動モジュール63を起動してポート名を出力する。尚、この(例−1)ではサーバ10のOS20に組み込まれるモジュールはTCP/IP印刷モジュール21aであるので、JobInfoデータに含まれるデータはプリンタ名ではなくポート名である。
【0090】
従って、STM起動モジュール63ではステップS510にてプリンタ名を取得したとは判別せずに、ステップS520〜S580に示すプリンタ40aとの通信処理を行う。すなわち、JobInfoデータに含まれるポート名は元々プリンタ40aを指定したものであるので、当該ポート名「¥¥Epson_lpr¥192.168.x.x」を使用して10BASE−T用I/O19c,UTPケーブル33を介して双方向通信を行うとプリンタ40aと通信を行うことになる。この結果、プリンタ40aのモデルIDが取得される。その後、ステップS540でクライアント50のレジストリ65を参照し、ステップS550にて通信にて取得したモデルIDおよびポート名の組とクライアント50のレジストリ65に記載されたモデルIDおよびポート名の組で一致するものを検出する。
【0091】
本(例−1)ではこれらが一致し、その結果、プリンタ40aのステータスモニタ64がバックグラウンドで起動する。従って、上記利用者が図11(a)に示す画面で「OK」をクリックしたことによって開始した印刷処理でエラーが発生した場合には、同図11(c)に示すステータスモニタ画面が表示され、エラーの発生やエラー原因等をクライアント50を操作する利用者に認識させる。
【0092】
(例−2)の場合、上述のように利用者が図11(a)に示す画面で「OK」ボタンをクリックすると、上記クライアント50のプリンタドライバ61が印刷データとともにJobInfoデータ等の所定のデータを上記10BASE−T用I/O19c,UTPケーブル33を介して双方向通信にてサーバ10に対して出力する。サーバ10では当該双方向通信によって印刷データ等を受信するとプリンタドライバ21がプリンタ40bに対して当該印刷データに基づく印刷をするように制御処理を開始する。
【0093】
このとき、ランゲージモニタ21bは上記ステップS100にてStartDocPort関数が実行されたことに基づいて印刷が開始されたことを検出する。そして、ステップS120においてJobInfoデータとしてユーザ名とマシン名とプリンタ名とを抽出し、ステップS130にて印刷通知モジュール22を起動してこれらのユーザ名とマシン名とプリンタ名とを同印刷通知モジュール22に出力する。
【0094】
起動された印刷通知モジュール22は、ステップS210でレジストリ22aを参照し、同レジストリ22aに記載されているモジュールを実行する。ここで、起動モジュール23には、印刷通知モジュール22がステップS200で取得してステップS220で出力する上記ユーザ名とマシン名とプリンタ名とが入力される。これらの入力データを用いて起動モジュール23はクライアント50にプリンタ40bの制御処理開始を通知し認識させるための処理を行う。
【0095】
ここで、本(例−2)の場合は図13に示すようにJobInfoのマシン名はPC1でありサーバ10のマシン名はPC1であるので、ステップS330で両者が一致すると判別される。従って、ステップS340にてJobInfoのユーザ名Bとサーバ10のユーザ名Aとが比較され、ステップS350で両者が一致していないと判別される。この結果、全てのクライアントに対して10BASE−T用I/O19c,UTPケーブル33を介してブロードキャストパケットが出力される。このブロードキャストパケットは図12(b)に示すようにサーバ10の送信用メールスロットのコンピュータ名に「*」を指定することによって行われ、JobInfoデータに基づくユーザ名とマシン名とプリンタ名が含まれている。
【0096】
全てのクライアントにおいてエージェント62が常駐しており、受信用メールスロットは図12(b)に示すようにコンピュータ名が「.」である。従って、、当該ブロードキャスト方式にかかるパケットがUTPケーブル33を介して送信された後には、全てのクライアントで当該パケットを受信する。そして、ステップS410にて当該パケットがブロードキャストであることが判別されるが、ステップS440〜ステップS460の判別によってクライアントのユーザ名がBであるもの、すなわち、クライアント50のみがステップS420以降の処理を行う。すなわち、これらのステップS420〜ステップS430でSTM起動モジュール63を起動してプリンタ名を出力する。
【0097】
この(例−2)ではサーバ10のプリンタドライバ21に組み込まれるモジュールはランゲージモニタ21bであるので、JobInfoデータに含まれるデータはポート名ではなくプリンタ名である。従って、STM起動モジュール63ではステップS510にてプリンタ名を取得したか否かを判別し、ステップS580で当該プリンタ名「LQ−580」であるプリンタ40bのステータスモニタ64がバックグラウンドで起動する。従って、上記利用者が図11(a)に示す画面で「OK」をクリックしたことによって開始した印刷処理でエラーが発生した場合には、同図11(c)に示すステータスモニタ画面が表示され、エラーの発生やエラー原因等をクライアント50を操作する利用者に認識させる。
【0098】
このように、本発明においては、クライアントからサーバに制御指示が与えられたことを検出し、サーバは制御指示を検出したときにクライアントに対して制御処理が開始されたことを通知する。従って、クライアントにおいては当該制御処理開始通知がなされることをもって当該クライアントはサーバにおいて制御処理が開始されたことを認識することができる。このクライアントにおける制御処理開始の認識は、クライアントからサーバに対して制御指示を与える際に行う処理に対して何ら影響を与えない。また、クライアントにおいて上記認識後には任意のモジュールを起動するなどして所望の機能を実行することが可能である。従って、デバイスドライバキットで作成したドライバであっても種々の周辺機器用の個別機能に対応することが可能である。
【図面の簡単な説明】
【図1】サーバのハードウェア構成の概略図である。
【図2】サーバおよびクライアントの構成の要部を示す図である。
【図3】サーバの他の構成における要部を示す図である。
【図4】TCP/IP印刷モジュールあるいはランゲージモニタが行う処理のフローチャートである。
【図5】印刷通知モジュールのフローチャートである。
【図6】起動モジュールのフローチャートである。
【図7】エージェントのフローチャートである。
【図8】起動モジュールが通信を行う際の詳細を示すフローチャートである。
【図9】エージェントが通信を行う際の詳細を示すフローチャートである。
【図10】STM起動モジュールのフローチャートである。
【図11】クライアントのディスプレイに表示される画面に基づいて動作の流れを概念的示したである。
【図12】ネットワーク構成および通信方式を示す図である。
【図13】ユーザ名,マシン名,ポート名(プリンタ名)のOSによる違いを示す図である。
【図14】パケットの構造体を示す図である。
【図15】ShellExtensionモジュールの動作を示す図である。
【符号の説明】
10…サーバ
11…CPU
12…システムバス
13…ROM
14…RAM
15…ハードディスクドライブ
16…フロッピーディスクドライブ
16a…フロッピーディスク
17…CD−ROMドライブ
17a…CD−ROM
18…ディスプレイ
19a…シリアル通信用I/O
19b…パラレル通信用I/O
19c…10BASE−T用I/O
20…OS
21a…IP印刷モジュール
21b…ランゲージモニタ
22…印刷通知モジュール
22a…レジストリ
23…起動モジュール
31…キーボード
32…マウス
33…UTPケーブル
34…パラレルケーブル
40a,b…プリンタ
50…クライアント
60…OS
61…プリンタドライバ
62…エージェント
63…STM起動モジュール
64…ステータスモニタ
65…レジストリ
71…プロパティシート
72…ドライバUIモジュール
73…ShellExtensionモジュール

Claims (24)

  1. サーバとクライアントとを双方向通信可能に接続させ、クライアントにて所定の制御処理を開始したことを当該クライアントで認識するための制御処理開始認識プログラムを記録した媒体であって、
    上記サーバ側において、
    クライアントで実行される周辺機器ドライバであって、クライアントにおける周辺機器のステータス監視モジュールと連動する機能を備えていない周辺機器ドライバから上記双方向通信によってサーバに周辺機器の制御指示が与えられたことを検出する制御指示検出機能と、
    同制御指示検出機能がクライアントからの制御指示を検出したときに上記双方向通信によってクライアントに対して当該制御指示に基づく上記周辺機器の制御処理が開始されたことを通知する制御処理開始通知機能とを実現させ、
    上記クライアント側において、
    上記双方向通信によって上記制御処理開始通知機能による制御処理開始通知がなされたときに上記周辺機器の制御処理を開始したことを認識し、上記周辺機器のステータスを監視するためのステータス監視モジュールを起動する制御処理開始認識機能とを実現させることを特徴とする制御処理開始認識プログラムを記録した媒体。
  2. 上記請求項1に記載の制御処理開始認識プログラムを記録した媒体であって、
    上記サーバは双方向通信を介して周辺機器を制御可能であり、
    同サーバ側において、
    上記制御指示検出機能では上記クライアントからの周辺機器の制御指示を検出したときに上記制御指示を与えたクライアントを特定するための情報を抽出可能であり、
    上記制御処理開始通知機能では上記抽出した情報に基づいて上記制御指示を与えたクライアントに対して上記抽出情報を出力し、
    上記クライアント側において、
    上記制御処理開始認識機能では上記出力される抽出情報を受信可能であり、同抽出情報に基づいて上記周辺機器の制御が開始されたことを認識することを特徴とする制御処理開始認識プログラムを記録した媒体。
  3. 上記請求項2に記載の制御処理開始認識プログラムを記録した媒体において、
    上記サーバ側の上記制御指示検出機能では制御対象となっている周辺機器を特定するための情報を抽出し、
    上記クライアント側の上記制御処理開始認識機能では制御処理開始を認識したときに上記抽出情報に基づいて制御対象となる周辺機器を判別し、判別された制御対象周辺機器用のモジュールを起動することを特徴とする制御処理開始認識プログラムを記録した媒体。
  4. 上記請求項1〜請求項3のいずれかに記載の制御処理開始認識プログラムを記録した媒体において、
    上記制御指示検出機能は、上記サーバ中の汎用関数実行時の処理情報に基づいて制御指示があったことを検出することを特徴とする制御処理開始認識プログラムを記録した媒体。
  5. 上記請求項4に記載の制御処理開始認識プログラムを記録した媒体において、
    上記制御指示検出機能は、上記処理情報からユーザ名とマシン名と周辺機器名とポート名とのいずれかまたは組み合わせを抽出することを特徴とする制御処理開始認識プログラムを記録した媒体。
  6. 上記請求項1〜請求項5のいずれかに記載の制御処理開始認識プログラムを記録した媒体において、
    上記サーバ側で、上記制御指示検出機能によって上記制御処理開始を検出したときに利用者所望の処理が実行されるように設定する実行処理設定機能を実現させることを特徴とする制御処理開始認識プログラムを記録した媒体。
  7. 上記請求項2〜請求項6のいずれかに記載の制御処理開始認識プログラムを記録した媒体において、
    上記制御処理開始通知機能では、上記抽出した所定の情報に基づいて特定のクライアントを通信相手とするパケットの出力と不特定のクライアントを通信相手とするパケットの出力とのいずれかを実行することを特徴とする制御処理開始認識プログラムを記録した媒体。
  8. 上記請求項3〜請求項7のいずれかに記載の制御処理開始認識プログラムを記録した媒体において、
    上記制御処理開始認識機能では、上記抽出情報に含まれるポート名を使用して制御対象周辺機器と双方向通信を行って同制御対象周辺機器名を判別可能であることを特徴とする制御処理開始認識プログラムを記録した媒体。
  9. サーバとクライアントとを双方向通信可能に接続させ、クライアントにて所定の制御処理を開始したことを当該クライアントで認識するための制御処理開始認識システムであって、
    上記サーバ側において、
    クライアントで実行される周辺機器ドライバであって、クライアントにおける周辺機器のステータス監視モジュールと連動する機能を備えていない周辺機器ドライバから上記双方向通信によってサーバに周辺機器の制御指示が与えられたことを検出する制御指示検出手段と、
    同制御指示検出手段がクライアントからの制御指示を検出したときに上記双方向通信によってクライアントに対して当該制御指示に基づく上記周辺機器の制御処理が開始されたことを通知する制御処理開始通知手段とを具備し、
    上記クライアント側において、
    上記双方向通信によって上記制御処理開始通知手段による制御処理開始通知がなされたときに上記周辺機器の制御処理を開始したことを認識し、上記周辺機器のステータスを監視するためのステータス監視モジュールを起動する制御処理開始認識手段とを具備することを特徴とする制御処理開始認識システム。
  10. 上記請求項9に記載の制御処理開始認識システムであって、
    上記サーバは双方向通信を介して周辺機器を制御可能であり、
    同サーバ側において、
    上記制御指示検出手段では上記クライアントからの周辺機器の制御指示を検出したときに上記制御指示を与えたクライアントを特定するための情報を抽出可能であり、
    上記制御処理開始通知手段では上記抽出した情報に基づいて上記制御指示を与えたクライアントに対して上記抽出情報を出力し、
    上記クライアント側において、
    上記制御処理開始認識手段では上記出力される抽出情報を受信可能であり、同抽出情報に基づいて上記周辺機器の制御が開始されたことを認識することを特徴とする制御処理開始認識システム。
  11. 上記請求項10に記載の制御処理開始認識システムにおいて、
    上記サーバ側の上記制御指示検出手段では制御対象となっている周辺機器を特定するための情報を抽出し、
    上記クライアント側の上記制御処理開始認識手段では制御処理開始を認識したときに上記抽出情報に基づいて制御対象となる周辺機器を判別し、判別された制御対象周辺機器用のモジュールを起動することを特徴とする制御処理開始認識システム。
  12. 上記請求項9〜請求項11のいずれかに記載の制御処理開始認識システムにおいて、
    上記制御指示検出手段は、上記サーバ中の汎用関数実行時の処理情報に基づいて制御指示があったことを検出することを特徴とする制御処理開始認識システム。
  13. 上記請求項12に記載の制御処理開始認識システムにおいて、
    上記制御指示検出手段は、上記処理情報からユーザ名とマシン名と周辺機器名とポート名とのいずれかまたは組み合わせを抽出することを特徴とする制御処理開始認識システム。
  14. 上記請求項9〜請求項13のいずれかに記載の制御処理開始認識システムにおいて、
    上記サーバ側で、上記制御指示検出手段によって上記制御処理開始を検出したときに利用者所望の処理が実行されるように設定する実行処理設定手段を具備することを特徴とする制御処理開始認識システム。
  15. 上記請求項10〜請求項14のいずれかに記載の制御処理開始認識システムにおいて、
    上記制御処理開始通知手段では、上記抽出した所定の情報に基づいて特定のクライアントを通信相手とするパケットの出力と不特定のクライアントを通信相手とするパケットの出力とのいずれかを実行することを特徴とする制御処理開始認識システム。
  16. 上記請求項11〜請求項15のいずれかに記載の制御処理開始認識システムにおいて、
    上記制御処理開始認識手段では、上記抽出情報に含まれるポート名を使用して制御対象周辺機器と双方向通信を行って同制御対象周辺機器名を判別可能であることを特徴とする制御処理開始認識システム。
  17. サーバとクライアントとを双方向通信可能に接続させ、クライアントにて所定の制御処理を開始したことを当該クライアントで認識するための制御処理開始認識方法であって、
    クライアントで実行される周辺機器ドライバであって、クライアントにおける周辺機器のステータス監視モジュールと連動する機能を備えていない周辺機器ドライバから上記双方向通信によってサーバに周辺機器の制御指示が与えられたことを検出する制御指示検出工程と、
    同制御指示検出工程がクライアントからの制御指示を検出したときに上記双方向通信によってクライアントに対して当該制御指示に基づく上記周辺機器の制御処理が開始されたことを通知する制御処理開始通知工程と、
    上記双方向通信によって上記制御処理開始通知工程による制御処理開始通知がなされたときに上記周辺機器の制御処理を開始したことを認識し、上記周辺機器のステータスを監視するためのステータス監視モジュールを起動する制御処理開始認識工程とを具備することを特徴とする制御処理開始認識方法。
  18. 上記請求項17に記載の制御処理開始認識方法であって、
    上記サーバは双方向通信を介して周辺機器を制御可能であり、
    上記制御指示検出工程では上記クライアントからの周辺機器の制御指示を検出したときに上記制御指示を与えたクライアントを特定するための情報を抽出可能であり、
    上記制御処理開始通知工程では上記抽出した情報に基づいて上記制御指示を与えたクライアントに対して上記抽出情報を出力し、
    上記制御処理開始認識工程では上記出力される抽出情報を受信可能であり、同抽出情報に基づいて上記周辺機器の制御が開始されたことを認識することを特徴とする制御処理開始認識方法。
  19. 上記請求項18に記載の制御処理開始認識方法において、
    上記制御指示検出工程では制御対象となっている周辺機器を特定するための情報を抽出し、
    上記制御処理開始認識工程では制御処理開始を認識したときに上記抽出情報に基づいて制御対象となる周辺機器を判別し、判別された制御対象周辺機器用のモジュールを起動することを特徴とする制御処理開始認識方法。
  20. 上記請求項17〜請求項19のいずれかに記載の制御処理開始認識方法において、
    上記制御指示検出工程は、上記サーバ中の汎用関数実行時の処理情報に基づいて制御指示があったことを検出することを特徴とする制御処理開始認識方法。
  21. 上記請求項20に記載の制御処理開始認識方法において、
    上記制御指示検出工程は、上記処理情報からユーザ名とマシン名と周辺機器名とポート名とのいずれかまたは組み合わせを抽出することを特徴とする制御処理開始認識方法。
  22. 上記請求項17〜請求項21のいずれかに記載の制御処理開始認識方法において、
    上記制御指示検出工程によって上記制御処理開始を検出したときに利用者所望の処理が実行されるように設定する実行処理設定工程を具備することを特徴とする制御処理開始認識方法。
  23. 上記請求項18〜請求項22のいずれかに記載の制御処理開始認識方法において、
    上記制御処理開始通知工程では、上記抽出した所定の情報に基づいて特定のクライアントを通信相手とするパケットの出力と不特定のクライアントを通信相手とするパケットの出力とのいずれかを実行することを特徴とする制御処理開始認識方法。
  24. 上記請求項19〜請求項23のいずれかに記載の制御処理開始認識方法において、
    上記制御処理開始認識工程では、上記抽出情報に含まれるポート名を使用して制御対象周辺機器と双方向通信を行って同制御対象周辺機器名を判別可能であることを特徴とする制御処理開始認識方法。
JP35220899A 1999-12-10 1999-12-10 制御処理開始認識プログラムを記録した媒体、制御処理開始認識システムおよび制御処理開始認識方法 Expired - Fee Related JP3758020B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP35220899A JP3758020B2 (ja) 1999-12-10 1999-12-10 制御処理開始認識プログラムを記録した媒体、制御処理開始認識システムおよび制御処理開始認識方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35220899A JP3758020B2 (ja) 1999-12-10 1999-12-10 制御処理開始認識プログラムを記録した媒体、制御処理開始認識システムおよび制御処理開始認識方法

Publications (2)

Publication Number Publication Date
JP2001162906A JP2001162906A (ja) 2001-06-19
JP3758020B2 true JP3758020B2 (ja) 2006-03-22

Family

ID=18422510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35220899A Expired - Fee Related JP3758020B2 (ja) 1999-12-10 1999-12-10 制御処理開始認識プログラムを記録した媒体、制御処理開始認識システムおよび制御処理開始認識方法

Country Status (1)

Country Link
JP (1) JP3758020B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5022748B2 (ja) * 2007-03-23 2012-09-12 キヤノン株式会社 クライアント装置及び情報処理方法

Also Published As

Publication number Publication date
JP2001162906A (ja) 2001-06-19

Similar Documents

Publication Publication Date Title
JP4240690B2 (ja) 情報処理装置と情報処理方法、及び情報処理システム、並びに記録媒体
US7895609B2 (en) Method for installing driver software, information processing apparatus that employs the method, computer program for performing the method, and storage medium for storing the computer program
US7958275B2 (en) Information processing apparatus, network device, control method therefor, computer program, and computer readable storage medium
US20070086052A1 (en) Network compliant output device, information processing apparatus, control method therefor, computer program, computer-readable storage medium, and network system
JP2012173816A (ja) 印刷システム、制御方法、情報処理装置、デバイスドライバプログラム、およびインストーラプログラム
US8605316B2 (en) Information processing apparatus and control method thereof, and storage medium
JP2003196055A (ja) プリントシステム
JP4870494B2 (ja) 情報処理装置及びプログラム
JP4453593B2 (ja) 分散印刷における印刷経過の監視
JP2002055801A (ja) 情報処理装置及び印刷プレビュー表示方法及びコンピュータ読み取り可能なプログラムを格納した記憶媒体
JP3758020B2 (ja) 制御処理開始認識プログラムを記録した媒体、制御処理開始認識システムおよび制御処理開始認識方法
JP2023053990A (ja) 情報処理装置およびプログラム
JP2007148828A (ja) 情報処理装置及びその制御方法
JP3985135B2 (ja) 制御システムにおけるデバイス初期化方法、制御システム、コンピュータにデバイス初期化方法を実行させるためのプログラム、このプログラムを記録した記録媒体
JP2002007133A (ja) デバイスドライバーのインストール方法
US8395799B2 (en) Printing system, output device, data management system, control method, and program
JP3624166B2 (ja) ネットワークに接続されるスキャナ装置、プリンタ装置およびディジタル複写機
US11977794B2 (en) Information processing device, print system, print control method, and non-transitory computer-readable storage medium storing print control program
US11409485B2 (en) Printing system and control method that maintains a response performance when processing load increases
US11169757B2 (en) Print server system providing functions related to printing
JP4262007B2 (ja) ネットワーク装置及びデータ処理システムの制御方法
JP4996494B2 (ja) ファクシミリデータ送信プログラムおよびファクシミリデータ送信方法
JP2006163568A (ja) ポートモニタ
JP3874161B2 (ja) 印刷システム及び印刷制御装置並びに印刷装置
JPH11353130A (ja) 印刷制御装置及び印刷制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050329

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050720

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050826

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051104

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: 20051207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051220

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100113

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110113

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110113

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120113

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120113

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130113

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130113

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140113

Year of fee payment: 8

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees