(システムの概要)
以下に図面を参照しながら本発明の実施の形態を説明する。図1に、本発明に係るスキャナ制御システムの概要を示してある。本例のスキャナ制御システム20は、ユーザのパソコン(パーソナルコンピュータ)1にインストールされたネットワーク対応型のTWAINドライバ(第2のスキャン制御装置として機能する)10と、ネットワーク22を介してパソコン1と接続された周辺機器管理装置30との組み合わせで構成されている。TWAINドライバ10は、例えば、後述するCD−ROMリーダ200を介してCD−ROMによってインストールすることができる。もちろん、プレインストールされていてもよい。また、例えば、インターネットを介して、サーバよりダウンロードして、インストールすることができる。その際、TWAINドライバ10を構成するプログラムは、パケット等の搬送波に物理的な信号の形に実体化された形で提供されることができる。
パソコン1は、図18に基づいて説明したものと略同様の構成であり、TWAIN対応のアプリケーション6がOS(オペレーティングシステム)5の上で動作できるようになっている。さらに、本例のパソコン1は、ネットワーク22を経由してデータを交換するために、LANカードなどのハードウェア的なインタフェース機能およびTCP/IPなど適当なネットワークプロトコルをサポートするソフトウェア的なインタフェース機能を備えたネットワークインタフェース(ネットワークモジュール)19を備えており、インストールされたネットワーク対応のTWAINドライバ10がネットワークを介してデータ交換できるようになっている。また、パソコン1は、TWAINドライバ10で取得した画像データを収納できるハードディスク7、さらに、アプリケーションあるいはTWAINドライバ10から適当な表示をOS5を経由して出力できるディスプレイ8、キーボードなどの入力用機器9を備えている。また、プログラム等をインストールするためのCD−ROMリーダ200が接続されている。
本例のTWAINドライバ10は、アプリケーション6に対し従来のTWAINドライバと同様のインタフェースを提供するために、共通のAPIを提供するアプリケーション対応部11と、そのAPIに基づきスキャナ2を操作するためのスキャナ独自、あるいはスキャナメーカ独自の操作コマンドを生成する操作部12と、スキャナ2から取得した画像データを適当なファイル形式に変換してハードディスク7などの記録媒体に格納する画像データ取得部13とを備えている。操作部12は、さらに、TWAINドライバが呼出されたときに詳細なスキャナの条件を設定したり、スキャナ2を直に制御するためのダイアログボックスを表示して操作コマンドを生成し、スキャナ2を制御する機能も備えている。
本例のTWINドライバ10は、これらに加えて、ネットワーク上のスキャナを制御するために、ネットワーク対応部14が設けられており、このネットワーク対応部14の送信部15で操作部12から供給された操作コマンドがパケット化されてネットワーク22経由でスキャナ宛てに送信され、受信部16でスキャナから受信したパケットから応答コマンドを抽出(デコード)して操作部12に供給できるようになっている。また、受信部16は、パケット化された画像データを受信した場合は、その画像データを画像データ取得部13に供給するようになっている。さらに、ドライバ10は、詳しくは後述するが、ネットワーク上のスキャナがすでに使用されているときにスキャナ側から提供されるロック情報を表示する接続確認機能17と、スキャナ側からネットワーク経由で送信されたトリガー情報に基づき画像データを取得する処理を開始するトリガー機能18を備えている。
本例のスキャナ制御システム20を構成するスキャナ2の側のスキャナ制御装置は、スタンドアロンの周辺機器管理装置30として実現されている。もちろん、スキャナ2と一体化されたネットワークスキャナなどの他の形態で提供することも可能である。本例の周辺機器管理装置30は、図1に機能的な概略構成を示してあるように、ネットワーク22と接続してデータ授受を可能とするためのネットワークインタフェース31と、基本的な機能をサポートするOS(オペレーティングシステム)32と、このOS32の上で動作する制御部50とを備えている。さらに、SCSIインタフェース33、セントロニクスインタフェース34などの周辺機器用のインタフェースを備えており、これらにスキャナ2およびプリンタ35が接続されている。
制御部50を実現するためのソフトウエアは、予め周辺機器管理装置30のハードディスク7にインストールしておくことができる。もちろん、ソフトウエアの全部または一部をROMに格納しておくこともできる。このほか、図示していないが、CD−ROMリーダ等を用いて、インストールすることができる。また、ネットワーク22またはインターネットを介してインストールすることも可能である。
また、本例の周辺機器管理装置30は、LCD(液晶ディスプレイ)等のディスプレイと、操作パネルとの機能を持つローカル操作パネル36が接続され、制御部50から制御できるようになっている。このような周辺機器管理装置30は、例えば、CPU、ROM、RAM、インタフェースコントローラおよびこれらを接続するバスなどを備え、それに、ハードディスク7等が接続されるパソコン(パーソナルコンピュータ)などの情報処理装置をベースに構築することができる。もちろん、一部または全部をハードウエアロジックにより実現するようにしてもよい。
周辺機器管理装置30のネットワークインタフェース31は、パソコン1のネットワークインタフェースと同様にネットワーク22を介してデータを授受するためのハードおよびソフト的なサポート機能を備えており、制御部50がネットワーク22を介してパソコン1などとデータの授受ができるようになっている。
制御部50は、ネットワーク経由でコマンドを送受信するための応答部51を備えており、この応答部51の受信機能52でパソコン1から受信したパケットデータから操作コマンドを抽出して、SCSIインタフェース33を経由してスキャナ2に供給できるようになっている。また、応答部51の送信機能53により、スキャナ2から供給された応答コマンドをパケット化してネットワーク経由でパソコン1に送信できるようになっている。
さらに、制御部50は、スキャナ2が使用中のときにネットワーク経由でアクセスしたユーザに対しロック情報を提供したり、あるいはロック情報をローカル操作パネル36に表示するロック機能54、ローカル操作パネル36のスタートボタンが押されたときに、トリガー用のデータをネットワーク経由で送信するスタート機能55、ローカル操作パネル36のストップボタンが押されときにコネクションを強制的に解除する解除機能56を備えている。
さらに、本例の制御部50は、SCSIインタフェース33を介してスキャナ2から受信した画像データをパケット化してネットワーク経由でパソコン1宛てに送信する画像データ出力機能57を備えている。この画像データ出力機能57は、さらに、操作パネル36の操作によって、スキャナ2で得られた画像データを、セントロニクスインタフェース34を経由してローカル接続されたプリンタ35に提供してローカルコピーを行う機能、さらに、ネットワークインタフェース31を介してネットワーク22に接続されたネットワークプリンタ(図示せず)に画像データを提供してネットワークコピーを行う機能もサポートしている。
(処理の概要)
図2および図3に示したフローチャートに基づき、ネットワーク対応型のTWAINドライバ10および周辺機器管理装置30を備えた本実施の形態に係るスキャナ制御システムの処理の概要を説明する。
まず、パソコン1のアプリケーション6からネットワーク対応型のTWAINドライバ(以降においてはドライバ)10が呼び出されると、ステップ101でドライバ10が起動する。ドライバ10が起動すると、ステップ102でOSの種類、ネットワーク環境、例えば、ネットワークモジュールのバージョンチェックなどの動作環境チェックが行われる。そして、ステップ103でネットワーク22を経由して周辺機器管理装置(以降においては管理装置)30宛てにコネクション要求を発送する。
本例のスキャナ制御システムにおいては、ネットワークプロトコルとしてTCP/IPが採用されており、スキャナ制御システムにかかるデータの授受用のポート番号として特定の番号、例えば、1865が割り当てられている。したがって、管理装置30は、ステップ301でそのポート番号宛てにコネクション要求が出されるのを待ち、コネクション要求があるとステップ302以降の処理でそれに対する応答メッセージを返す。
図4に、応答メッセージなど、以降のプロセスにおいてドライバ10と管理装置30との間でネットワーク22を経由して授受されるパケットデータ60の構成例を示してある。パケットデータ60は、12バイトのヘッダーデータ61と、このヘッダーデータ(ヘッダ情報)61に続く実データ62から構成されておいる。全体のデータ長がイーサネットなどのネットワーク22の規格に従った長さに納まるようになっている。ヘッダーデータ61には、スキャナ制御システムのパケットデータであることを示す識別データ63と、パケット化された情報の種別を示すパケット種別64と、実データに収納されたデータの圧縮状態を示すデータ種別65などが含まれている。
パケット種別としては図5に示してあるように、透過モード(スルー)の操作コマンドが含まれているパケット、バッファモードの操作コマンドが含まれているパケット、コネクション要求に対する応答メッセージが含まれているパケット、応答コマンドが含まれているパケット、イメージデータ転送用のパケット、さらには、トリガー情報が含まれているパケットなどの区別ができるようになっている。したがって、これらのパケットを受信した管理装置の制御部50あるいはドライバ10のネットワーク対応部14は、ヘッダーデータ61に基づいてパケットからデータを抽出し、また、必要に応じてバッファリングされたデータのデコードなどの処理を行うことができる。
ステップ302で生成される、クライアント1に返送すべき応答メッセージのパケットは、ヘッダーデータ61のパケット種別64がコネクション応答となり、実データ62として管理装置30に対応するドライバのバージョン情報が含まれたパケットデータとなる。なお、この段階では、応答メッセージは送信されない。さらに、管理装置30に接続されたスキャナ2が他のユーザによって使用されているかを判断する(ステップ303)。使用されていないときは、前記応答メッセージを送信させる(ステップ304a)。そして、ローカル操作パネル36に、スキャナ2が使用可能である旨を表示する。一方、スキャナ2がユーザに使用されている場合には、スキャナ2がロックされた状態であるので、制御部30のロック機能54から、そのジョブの種別と使用中のユーザの情報(ロック情報)がコネクション応答(応答メッセージ)パケットに追加され、応答メッセージを送信させる(ステップ304c)。そして、使用可能でない場合、ロック機能54により、アクセスしたクライアント1とのコネクションは切断され(ステップ304e)、接続待ちの状態に戻る。
ドライバ10は、ステップ104で応答メッセージが送信されているのを待ち、ステップ105でコネクションが確立されたか否かを確認する。そして、コネクションが拒絶された場合は、ステップ106において、ドライバ10のネットワーク対応部14の接続確認機能17が、パソコン1のディスプレイ8に応答メッセージに含まれる関連情報を表示する。
図6には、ドライバ10を始めて起動したとき、あるいは、使用するスキャナの選択(アドレス)を変えたときに示される表示内容を示してある。ドライバ10を起動したときに、初期設定ダイアログ67としてネットワークスキャナの指定入力67aを備えたダイアログが表示され、所望のスキャナをIPアドレスで指定することができる。ドライバ10は、指定されたアドレスの管理装置30に対しコネクション要求を発送し、該当するIPアドレスに管理装置30が存在するか否かを確認し、その結果を表示する。その際、管理装置30に接続されたスキャナ2が使用中であれば、そのジョブ種類と使用中のユーザの情報を表示する。
図6では、ネットワーク上に該当する管理装置が存在するが、そのスキャナは、他のユーザ(IPアドレスで示されている)によってネットワーク対応のTWAINドライバを用いて専有されていることが表示されている。したがって、所望のスキャナ2が接続された管理装置30とのコネクションは確立されず、スキャナをすぐに利用することはできない。
また、図7に示すように、パソコン1にインストールされているドライバ10のバージョンが管理装置30と合っていないと、ネットワークを経由したデータ授受に支障が生ずる可能性がある。したがって、ドライバ10の接続確認機能17では、さらに、応答メッセージに含まれるバージョン情報を確認し、ドライバ10のバージョンと対応していないときは、バージョンアップすることを推奨するコメント68を表示し、コネクションを切断して処理を終了する。
さらに、ドライバ10を用いてアクセスするネットワークスキャナのアドレスがすでに設定されている場合は、そのスキャナの管理装置30にコネクション要求が送らる。また、コネクションが成立しない場合は、その応答メッセージに含まれた情報が図8および図9に示すようなメッセージとして表示される。図8(a)に示したメッセージ69は、管理装置30のスキャナ2が、IPアドレス(符号69a参照)で表示された他のクライアント1によってネットワーク経由で使用されていることを示している。
なお、パソコン1は、IPアドレスと、ユーザデータ(例えば、ユーザ名)を管理するデータサーバがネットワーク22に接続されている場合には、OS5が有する問い合わせ機能を用いて、例えば、図20に示すようなデータサーバに、IPアドレスに対応するユーザ名を問い合わせ、その結果を受け取って、例えば、図8(b)に示すように、“TAROU1”のような表示を行うことができる。
一方、図9(a)に示したメッセージ70aでは、スキャナ2がネットワーク22に接続されたネットワークプリンタにイメージデータを送ってネットワークコピーを行うために使用されていることを示しており、コピー先のプリンタがIPアドレスで表示されている。この場合、OS32が問い合わせを行う機能を有するときには、上述した場合と同様に、データサーバに問い合わせることによってユーザ名を取得して表示させることができる。また、図9(b)に示されたメッセージ70bでは、スキャナ2が管理装置30にローカル接続されたプリンタ35にイメージデータを送ってローカルコピーするために使用されていることを示しており、このケースではユーザの情報は表示されない。
スキャナ2が他のユーザによって使用されているときは、図2に示すように、ステップ304eで、管理装置30の制御部50のロック機構54によってローカル操作パネル36に、図10(a)に示すようなロック情報がローカル表示される。本例では、ロック中であること、および、使用中のユーザの情報がIPアドレスで表示される(符号36c)。このため、ローカルコピーあるいはネットワークコピーなどの目的で管理装置30に接続されたスキャナ2を使用しようとするユーザは、スキャナ2がネットワークを介して使用されていることを一目で把握することができる。したがって、読み取り中に誤って原稿台の原稿を外してデータの取り込みに支障が生じさせたり、あるいは、スキャナがロックされていて使用できないにも関わらず、原稿をセットするなどの無駄な作業を行うのを防止することができる。
なお、この場合にも、IPアドレスを用いてデータサーバに問い合わせることで、ユーザ名を取得して、表示させることができる。図10(b)は、その一例である(符号36d)。
ドライバ10においては、コネクションが成立すると、ステップ107で操作部12によりスキャナの詳細設定および制御を行うためのダイアログがディスプレイ8に表示される。図11にダイアログの一例を示してある。このダイアログ71により、スキャナ2で行うハーフトーン処理などの画像処理、濃度補正などの補正処理、解像度などのデータフォームの設定、読み取りモードなど多くの設定情報が入力できるようになっている。ドライバ10の操作部12は、このダイアログの設定に基づき順番に操作コマンドを生成しスキャナを操作することができる。
ステップ108でダイアログ71を介してスキャナから画像データを取得するための、一連のパラメータの設定が終了すると、ステップ109でスキャナ2による原稿のスキャンを開始する。ステップ109のスキャン開始は、パソコン1の側でダイアログ71に表示された取り込みボタン71aをクリックすることによって指示することができる。また、管理装置30の操作パネル36のスタートボタン36aを操作してもスキャンを開始させることができる。
ネットワーク22に管理装置30を介して接続されたスキャナ2と、クライアント1との距離は一般に離れていることが多い。したがって、スキャナがクライアントにローカルで接続されているときのように、スキャナに原稿をセットしながらクライアントを操作するような環境は期待できない。ネットワークに接続されたスキャナ2を使用する場合は、スキャナ2の原稿台あるいはドキュメントフィーダに原稿をセットした後にクライアント1の側でスキャナのパラメータを設定し、読み取りを開始するパターンと、クライアント1の側でスキャナのパラメータを設定した後に、原稿をスキャナ2にセットして読み取りを開始するパターンが主に考えられる。前者のパターンの場合は、ディスプレイ8に表示されたダイアログ71を操作することによって読み取りを簡単に開始できる。これに対し、後者のパターンでは、ダイアログ71でのみスキャン開始ができるのでは、原稿をスキャナ2にセットした後に、再びパソコン1に戻って操作を行うことが必要となり、無駄な動きが生ずる。
そこで、本例のスキャナ制御システムにおいては、管理装置30の制御部50に、ステップ305でスタートボタン36aが操作されると、ステップ308でトリガー情報をパケット化して接続先のパソコン1に送信するスタート機能55を設けてある。また、スタートボタンが押されない場合、ネットワークからのデータの受信があるかを判断し(ステップ306)、受信している場合には、ステップ310に進む。一方、受信していない場合には、ストップボタンが押されたかを調べる(ステップ307)。押されていない場合には、ステップ305に戻る。押されている場合には、ドライバ10は、ステップ109においてダイアログ71の取り込みボタンの操作のみではなく、送信されたトリガー情報によって操作部12および画像取得部13がコマンドを送受信して画像データを取得する処理を自動的に開始するトリガー機能18をネットワーク対応部14に設けてある。さらに、図5に示したように、パケット種別としてトリガデータであることを示す種別を用意してあり、トリガー機能18はパケット種別を判別してドライバ10の処理を進めることができる。
このようなスタート機能およびトリガー機能を設けることにより、ユーザは原稿をスキャナ2にセットした後に、管理装置30の機側でスタートボタン36aを操作することによりスキャンを開始させ、画像データをパソコン1に送信することが可能となり、その度にパソコン1に戻る必要がなくなる。したがって、スキャナ2とパソコン1が離れている場合であってもスムーズに原稿を読み取らせ、その画像データをパソコン1で取り込むことができる。
スキャンが開始されると、図12に示すように、管理装置30の操作パネル36にはスキャナが読み取り中であることが表示され、スキャナ2を使用中のユーザあるいはスキャナ2を使用するために到来した他のユーザに対しスキャナ2の使用状況が明確に示される。したがって、スキャン中であることが容易に確認でき、原稿を誤って操作するなどの不具合の発生を未然に防止することができる。
さらに、図12に示してあるように、管理装置30の操作パネル36には、スタートボタン36aに加えてストップボタン36bを設けてある。このストップボタン36bを操作すると、制御部50の解除機能56がステップ307でストップボタンが操作されたことを判断し、スキャナが読み取り処理を行っているときは読み取り処理を中断する。そして、ステップ316で作業終了にしてステップ317でパソコン1とのコネクションを切断する。同時に、パソコン1に対しストップボタンが押されたことを示すパケットを送信する。パソコン1のドライバ10は、ストップボタンが押されたことを示すパケットを受信するとステップ116で作業終了を判断する。そして、ディスプレイ8にドライバ10によってストップボタンが押されてコネクションが解除されたことを示す図13のメッセージ72を表示し、ステップ117でコネクションを切断する。
ストップボタン36bによるコネクションの強制解除機能は、スキャナ2に間違った原稿をセットしてしまったときなどに有効であり、さらに、ローカルで緊急にコピーを取りたいときなどにも有効である。また、誤って接続が解除されないままスキャナ2が未使用状態で放置されているような場合にも有効である。さらに、管理装置30の制御部50には、未使用状態で長時間(例えば、15分程度)放置された場合は、自発的にコネクションを切断する機能も設けられている。この機能によってコネクションが切断されると、図14に示したようなメッセージ73がパソコン1のディスプレイ8にドライバ10によって表示され、ドライバは処理を終了する。
図2に戻って、ダイアログ71あるいはローカル操作パネル36のスタートボタン36aでスキャン開始が指示されると、ドライバ10ではコマンドを送受信する処理110が開始され、それに呼応して管理装置30においてもコマンドを送受信する処理310が開始される。ドライバ10においては、ステップ111でダイアログ71の設定に基づいて操作部12から操作コマンドが生成され、ステップ112で送信部15が操作コマンドをパケット化して管理装置30宛てに送信する。
一方、管理装置30においては、応答部51の受信機能52が、ステップ311で、パソコン(クライアント)1から受信したパケット化されたデータから操作コマンドを抽出し、SCSIインタフェース33を介してスキャナ2に供給する。操作コマンドに対するスキャナ2の応答コマンドは、逆のルートを辿り、ステップ312で応答部51の送信機能53によりパケット化されてクライアント(パソコン)1宛てに送信される。クライアント1では、ステップ113で、ネットワーク対応部14の受信部16がパケット化されたデータから応答コマンドを抽出し、操作部12に供給する。そして、ステップ114で、操作部12は、応答コマンドを解析して、操作コマンドにしたがった設定がスキャナ2で行われたか否かなどの判断を行い、次の処理に進む。
このように、本例のスキャナ制御システムにおいては、パソコン1とスキャナ2がネットワークを介して接続されているが、ドライバ10の操作部12で取り扱われるデータは、スキャナをパソコンにローカル接続しているときに授受される操作コマンドおよび応答コマンドそのものである。したがって、TWAINドライバ10の主要な機能はそのまま使用することが可能であり、ネットワーク経由でスキャナと接続されていても、アプリケーション6に対しては、ローカル接続と同様のインタフェースを提供することができる。
また、操作部12の処理内容もローカル接続されているときとほとんど変わりがないので、ドライバをネットワーク化する際の作業時間も短くて済む。さらに、操作部12およびスキャナ本体2で使用されるコマンドをネットワーク対応のデータとするときに、他のコマンド体系、あるいは言語に変換する必要がないので、コマンドを送信および受信するときのデータ変換にかかるオーバヘッドを低減できる。従って、処理速度が速く、パソコン1あるいは管理装置30に対する負荷の少ないスキャナ制御システムを提供することができる。
また、スキャナ2においても、管理装置30から供給される操作コマンドおよび管理装置30に返す応答コマンドは、スキャナ2がローカル接続されている場合と同じである。したがって、従来のローカル接続型のスキャナを、管理装置30を介してネットワーク22に接続することが可能となり、複数のユーザでスキャナを共有することができる。
ステップ110および310で操作コマンドおよび応答コマンドを授受してスキャナ2の設定が終了すると、ステップ115およびステップ315において管理装置30からパソコンのドライバ10に画像データが送信される。画像データもネットワーク22を介して送信できるように、適当なサイズのデータ長でパケット化されて管理装置30の画像データ出力部57からネットワーク22に送り出される。ドライバ10の受信部16は、受信したパケットから画像データを抽出して画像データ取得部13に供給し、画像データ取得部13が所定のフォーマットでハードディスク7などの記録媒体に画像データを収納する。
画像データの送受信が終了すると、ドライバ10および管理装置30は、ステップ116および316で、ジョブが終了したか否かを判断する。ジョブが継続されている場合は、ドライバ10は条件設定のステップ108に戻って新たなパラメータをスキャナ2に設定できる状態となる。また、管理装置30もコマンドを送受信可能な状態に戻る。一方、ダイアログ71の終了ボタンがクリックされたり、あるいはローカル操作パネルのストップボタン36bが操作された場合は、ステップ117および317で接続を切断して処理を終了する。
(コマンドの送受信について)
図3に、操作コマンドおよび応答コマンドをドライバ10と管理装置30の間で授受する処理をさらに詳しく示してある。ステップ111で操作部12において操作コマンドが生成されるたびに、その操作コマンドをパケット化して管理装置30宛てに発送することも可能である。しかしながら、スキャナ2の設定項目は画像処理、補正処理、さらにデータフォームなど多岐にわたるため、操作部12からスキャナ2に提供される操作コマンドの数は多い。さらに、この操作コマンドに対して応答コマンドがスキャナ2から発せられるのでネットワーク22を介して授受するデータ量は非常に多くなる。したがって、スキャナ2をネットワーク22に接続したことによりネットワーク上のトラフィックが増大しネットワークの性能が低下することが懸念される。
このため、本例においては、複数の操作コマンドおよび応答コマンドをバッファリングして一括で送受信し、ネットワークトラフィックを軽減できるようにしている。また、すべての操作コマンドおよび応答コマンドを一括で送受信したのでは、操作コマンドに対する応答コマンドを待って処理を進める機能、例えば、ステータス要求などのスキャナからデータを受信する実行関連の処理では、処理が進まず処理速度が低下してしまう。このため、本例のスキャナ制御システムにおいては、操作コマンドおよび応答コマンドをバッファリングするコマンドと、バッファリングしないコマンド(透過コマンドまたはスルーコマンド)に分けて処理を行うようにしている。
図15に、本例のスキャナ制御システムにおいてスキャナ2と操作部12との間で授受される操作コマンド81の種類と、その操作コマンドのモードとが示され、さらに、操作コマンドに対する応答状態を模式的に示す。本実施の形態のように、スキャナがSCSI接続(ローカル接続)である場合には、コマンドが1つずつ送られていく。一方、ネットワーク接続の場合には、スルーコマンドは、1つずつスキャナに送られるが、バファリングコマンドは、一旦、蓄積され、まとめてスキャナに送られる。
本実施の形態のスキャナ制御システムにおけるスキャナ2に対する操作コマンド81の体系は、「ESC」に続く1文字あるいは数文字のデータで表現される「ESC/I」と呼ばれる体系が採用されている。また、それらの操作コマンド81に応答する応答コマンドはAckまたはAck/Nackの操作コマンドの結果のみを示すものと、所定のデータを伴うものに分けられる。操作コマンド81をバッファリングして良いか否かは、操作コマンド毎に検討されており、主に、単に操作コマンドによる設定が正常に進んだことが確認されれば良い操作コマンドはバッファリングされるようになっている。
これに対し、応答コマンドあるいはそれらに付随するデータを操作部12が解析してエラー表示を行ったり、あるいは、原稿が排紙されたか否かのように、その操作コマンドに対する結果(応答コマンド)を待って次の処理が進む操作コマンドなどはバッファリングされずに、単独でパケット化されて送信される(スルー)ようになっている。本例のスキャナ制御システムにおけるバッファリングとスルーの種別は予め定められている。操作コマンド81がバッファリングされる場合は、応答コマンド82もバッファリングされてパソコン1に返されるようになっている。
図3に戻って、ステップ111において操作部12から操作コマンドが供給されると、ネットワーク対応部14の送信部15は、ステップ121でその操作コマンドがバッファリング指定されているかスルー指定されているかを判断する。
バッファリングするコマンドとして指定されている操作コマンドは、ステップ122で所定のフォーマットでその操作コマンドをバッファリングする。
図16に、操作コマンドをバッファリングするパケットデータ90の構成を示してある。このパケットデータ90には、パケット種別が図5に示したバッファリングモードコマンドにセットされたヘッダ情報61が先頭に設けられており、これに続いて、有効な操作コマンドに相当する位置のビットが立てられたコマンドステータスブロック91が配置され、さらに、操作コマンドに付随するパラメータがそれぞれの操作コマンド毎に定められた位置に収納されるコマンドインフォメーションエリア92が配置されている。
したがって、ステップ122においては、バッファリングする操作コマンドが供給されると、コマンドステータスブロック91内の、その操作コマンド毎に予め定められたビットが立てられ、その操作コマンドがパケットデータ90にバッファリングされる。さらに、その操作コマンドにパラメータが付随している場合は、そのパラメータの内容がコマンドインフォメーションエリア92の所定の領域に収納される。コマンドステータスブロック91およびコマンドインフォメーションエリア92は、バッファリングされる操作コマンドの全てに対し予め定まったビットおよびエリアが予約されており、数10個の操作コマンドを1つのパケットデータ90としてネットワーク22を介して管理装置30に送ることができる。
これらの操作コマンドに対応して管理装置30からドライバ10に返送される応答コマンドも、図17に示す、上記と同様の方法でバッファリングされて送られるようになっている。応答コマンド用のパケットデータ95は、図5に示した、バッファリングモードコマンドに対する応答であることを示すパケット種別が収納されたヘッダ情報96に続いて、応答コマンド毎に予め決まった位置のビットが立てられるリターンコマンドステータスブロック97が設けられている。そして、操作コマンドに対し応答コマンドがAckのときはビットを立てず、Ack応答が得られなかったとき、あるいはNackなどのエラーが発生したときに、リターンコマンドステータスブロック97のうち、図16に示したコマンドステータスブロック91の該当する操作コマンドのビットを立てて応答コマンドとしている。
このように、操作コマンドおよび応答コマンドをバッファリングすることにより、スキャナ2を操作するためにネットワーク22を介して授受されるデータ量を大幅に低減することが可能であり、ネットワーク負荷を軽減することができる。また、操作コマンドをパケットデータ90のコマンド毎に定まった位置にバッファリングすることにより、同一の操作コマンドが何らかの条件により複数回、操作部12から供給された場合であっても、バッファリングされたデータが上書きされるだけであり、ネットワークを経由して授受するデータ量を増やさずに済む。
図3に戻って、ステップ111で操作部12から供給された操作コマンドがスルー指定されている操作コマンドの場合は、ステップ123で、そのスルーコマンドが供給される以前の操作コマンドがバッファリングされたパケットデータ90を管理装置30宛てに送信する。
管理装置30においては、ステップ321でドライバ10からのパケットデータを受信すると、ステップ322において、応答部51の受信機能52がパケットデータのヘッダ情報からスルー指定された操作コマンドのパケットか、操作コマンドがバッファリングされたパケットかを判断する。バッファリングされたパケットであれば、ステップ323で受信機能52がパケットデータ90のコマンドステータスブロック91およびコマンドインフォメーションエリア92のデータをデコードし、所定の順番で、操作部12から供給されたESC/Iベースの操作コマンドを再現する。
一方、データを受信しない場合には、スタートボタンが押されたかを調べる(ステップ321a)。そして、押されていない場合には、ステップ321に戻る。また、押されている場合には、トリガ情報を生成して、図2のD(ステップ316)に進む。
バッファリングされている操作コマンドは、操作部12から供給された順番とスキャナ2に供給される順番とが一致する必要がないため、バッファリングされる際に生成された順番(時間情報)は削除されており、管理装置30の受信機能52においては、予め定められた順番で操作コマンドを再現し、ステップ324でスキャナ2にその操作コマンドを供給する。ステップ325で、供給した操作コマンドに対応する応答コマンドをスキャナ2から受け取ると、管理装置30の応答部51の送信機能53は、ステップ326で応答コマンドをパケットデータ95にバッファリングする。ステップ324および325を繰り返してパケットデータ90でバッファリングして送られた操作コマンドをすべてスキャナ2に提供し、その応答コマンドが得られると、それらの応答コマンドがステップ326でバッファリングされた状態でドライバ10に返送される。
ステップ124でドライバ10がバッファリングされた応答コマンドを受信すると、応答コマンドをデコードし操作部に提供する。そして、図2に示したように、その応答コマンドを解析してエラーの有無を判断する。エラーがないときは、ステップ125でスルー指定された操作コマンドを管理装置30宛てに発信する。このようにして、スルーコマンドが供給されると、それまでにバッファリングされていたコマンドが管理装置30宛てに送信され、スキャナ2がそれらの操作コマンドにしたがって設定される。したがって、それらの操作コマンドの設定状態に関わることが多いスルーコマンドが管理装置30を経由してスキャナ2に送られたときは、スキャナ2が所望の状態に設定されており、処理をスムーズに継続することができる。また、スルーコマンドの前に操作コマンドをバッファリングして一括送付することにより、ネットワーク上を流れるデータ量を大幅に低減できることは上述したとおりである。
スルー指定された操作コマンドのパケットが管理装置30に受信されると、ステップ322でスルーコマンドであることが判断され、ステップ327でコマンドが抽出されてスキャナ2に提供される。そして、スキャナ2からの応答コマンドがステップ329でパケット化されてドライバ10に送信される。ドライバ10は送信されたパケットから応答コマンドを抽出して操作部12に提供し、操作部12はその情報、例えばステータス情報、給紙あるいは排紙情報などに基づいて次の処理、あるいは操作コマンドを生成する。
スルー指定されたコマンドには、スキャナ2の設定を終了してイメージデータ(画像データ)の送信開始を指示する操作コマンドが含まれている。したがって、ステップ126でこのイメージデータ取得を指示する操作コマンドであることが判ると、操作コマンドによってスキャナ2を設定する処理110からステップ130のイメージデータを取得する処理に移行する。管理装置30においても、イメージデータの送信開始を指示するスルー指定の操作コマンドを受信すると、ステップ328でスキャナ2を設定する処理310からステップ330のイメージデータを送信する処理に移行する。
ステップ330のイメージデータを送信する処理においては、図5に示したイメージデータの転送パケットであることを示すパケット種別を含んだヘッダ情報61に続いて、実データ62としてイメージデータが続いたパケットデータがドライバ10宛てに送信される。1つのパケットで送信できるデータ量はかぎられている。このため、スキャナ2から供給されるイメージデータが1つのパケットで納まらない場合は、ステップ331で1サイクルのイメージデータが終了するまで複数のパケットデータに分解して送られる。ドライバ10においても、ネットワーク対応部14の受信部16がステップ130でパケット毎にイメージデータを受信し、そのパケットからイメージデータを抽出して画像データ取得部13に画像データを供給する処理をステップ131で画像データが終了したと判断されるまで繰り返す。
ステップ131において、データが終了していない場合において、ストップボタンが押されているかを調べる(ステップ332)。ここで、押されていなければ、ステップ330に戻る。一方、押されている場合には、トリガ情報を出力する(ステップ333)。
以上に説明したスキャナ制御システムは、従来のTWAINドライバでも用いられている操作コマンドおよび応答コマンドをパケット化して、ネットワーク上のスキャナとクライアントとを接続したシステムであり、ネットワーク上のスキャナをローカル接続されたスキャナと同様にアプリケーションから操作することができる。また、操作コマンドおよび応答コマンドの体系を変えていないので、ネットワークを介して送受信する際のデータ変換にかかるオーバーヘッドが少なくて済み、処理速度の速いスキャナ制御システムを実現できる。さらに、従来のTWAINドライバの資源を有効に活用してネットワーク対応のドライバを提供することができるので、開発にかかる時間およびコストも低くできる。また、ネットワークに接続されるスキャナにおいても、スキャナ本体を制御するコマンド体系は従来のローカル接続されるものと同じにできるので、スキャナ本体のオペレーティングシステムを変えずに、上述した管理装置としての機能を備えた端末を介して、あるいはその機能を内蔵したネットワークスキャナとすることによりネットワークに接続することが可能である。
また、上述したスキャナ制御システムにおいては、あるユーザにスキャナが使用されているときはロック状態として、他のユーザに対してはスキャナを開放しないようにしており、これによって、スキャナの操作および画像データの信頼性を確保できるようにしている。その一方で、使用中のユーザの情報を表示したり、ネットワーク経由で送信することにより、スキャナの使用状態が明確に判るようにしている。また、ストップボタンによる強制終了あるいは時間による強制終了するモードを設けて、スキャナの稼動効率を向上できるようにしている。
さらに、クライアントのドライバとスキャナとの間で多くのコマンドが授受されるので、これらのコマンドをそのままネットワークを介して授受したときにネットワークの性能に大きな影響が発生しないようにコマンドをバッファリングして授受するようにしている。その一方で、応答コマンドあるいはこれに付随するデータが処理をスムーズに進行するために必要な操作コマンドにおいては、バッファリングしないで授受できるようにしており、本例のスキャナ制御システムは、ネットワーク負荷を軽減すると共にスキャナをスムーズに、迅速に操作することができる。
なお、上記では、クライアント側の第2のスキャナ制御装置としてアプリケーションから操作できるTWAINドライバとしてインストールされる制御プログラムを例に説明しているが、もちろん、上述した機能を備えたアプリケーションなど、他の形態で実現することも可能である。また、スキャナ側の第1のスキャナ制御装置も管理装置というスタンドアロンの装置で説明しているが、スキャナ本体と一体としてネットワークスキャナとして実現したり、あるいは、他の機能と共に汎用的なネットワークサーバとして実現することなども可能である。また、コマンド体系としてESC/Iを例に説明しているが、他のコマンド体系であっても良いことはもちろんである。また、上記にて示した数値などは例示に過ぎず、発明がこれらによって限定されるないことはもちろんである。
次に、本発明の他の実施の形態について、図19、図20を参照して説明する。本実施の形態は、上述した周辺機器管理装置30に代えて、汎用のコンピュータシステム、例えば、パソコンを用いてスキャナを管理する例である。
図19は、本実施の形態で用いられる、一般的なコンピュータシステを構成するハードウエアシステムの構成図である。同図に示すように、コンピュータシステム1000は、プログラムを実行することで、各種の機能を実現する中央処理装置(CPU)1100と、プログラムおよび固定データを格納するROM1200と、ランダムアクセスメモリRAM1300と、インタフェース1400とを備える。インタフェース1400には、プリンタ35、スキャナ2、ディスプレイ8、入力用機器9、ハードディスク7およびCD−ROMリーダ200が接続される。本実施の形態で実行されるプログラムは、例えば、上述したパソコン1におけるTWAINドライブ10の場合と同様に、CD−ROM、インターネットにより提供される。前者の場合には、CD−ROMリーダ200により読み出され、ハードディスク7にインストールされる。そして、実行時に、ハードディスク7から読み出されて、RAM1300に展開される。また、ネットワーク22を介して他のコンピュータから取り込むこともできる。
図20は、上述したハードウエア資源を用いて実現される各種機能を示す。図20に示す機能は、実現するプログラムは異なるものの、果たすべき働きは、基本的には、図1に示す周辺機器管理装置30と同等のものを含む。すなわち、スキャナ制御用汎用コンピュータ100は、OS105と、その上で動作するアプリケーション106と、スキャナの動作を制御する制御部150と、ネットワークインタフェース119と、プリンタ35が接続されるセントロニクスインタフェース134と、スキャナ2が接続されるSCSIインタフェース133とを、実現すべき機能として有する。OS105は、ディスプレイ8、入力用機器9、ハードディスク7およびCD−ROM200を管理下に置き、それぞれの動作を制御するドライバと共に、これらの動作を制御する。
制御部150は、受信機能152および送信機能153を有する応答部151と、ロック機能154、スタート機能155、マンマシンインタフェース158を有する。ここで、マンマシンインタフェース158を除き、他の機能は、プログラムの構成上の差異があるとしても、実現すべき機能の内容としては、基本的には、図1に示した周辺機器管理装置30が搭載している機能と同様である。従って、それらについては、説明を繰り返さない。
マンマシンインタフェース158は、ディスプレイ8に、例えば、図10に示すような画面を表示する。図10の例では、スタートボタン36a、ストップボタン36bは、画像ではなく、実際の押しボタンスイッチが用いられている。しかし、本実施の形態では、それらも含めて、画像による表示を行う。そして、スタート、ストップの選択は、入力用機器9、例えば、マウスによって、ディスプレイ8の該当する個所をクリックすることにより行う。マンマシンインタフェース158は、マウスによるクリックを受け付けて、該当するボタンについての操作として処理する。
また、図20では、ネットワーク22に、クライアント側の装置として、図1に示すパソコン1と同じものが接続されている。もちろん、汎用コンピュータ10と同じ装置を接続し、それに、パソコン1で用いているTWAINドライバ10を搭載して、クライアントとして用いることができる。
さらに、図20に示すシステムでは、ユーザデータを管理するデータサーバ300を有する。このデータサーバ300は、ネットワークインタフェース319、制御部310およびIPアドレス/ユーザ名蓄積部320を有する。クライアントパソコン1からの問い合わせがあると、問い合わせに含まれるIPアドレスに対応する登録ユーザ名(パソコン名の場合もある)を検索し、その結果を問い合わせ元にパケットに乗せて返送する。これにより、問い合わせたパソコン1は、画面上に、例えば、図8(b)に示すように、IPアドレスと共に、ユーザ名を表示することができる。
本実施の形態では、スキャナの利用側については、前述した実施の形態と同じである。一方、スキャナが接続されるスキャナ制御用汎用コンピュータ100は、ネットワーク22を介してクライアントからの操作コマンドを取り出して、スキャナに伝達し、スキャナからの応答コマンド、データ等については、制御部150によって、要求元に送付する。
本実施の形態によれば、汎用のコンピュータにスキャナをローカル接続し、このコンピュータをネットワークに接続することで、他のコンピュータからスキャナを遠隔制御することが可能となる。