(57)【要約】【課題】クライアント・サーバシステムで、周辺機器やその操作内容に変更が生じても、システム全体で効率的な操作が可能な周辺機器操作システム、周辺機器操作用制御プログラムおよび周辺機器操作方法を得る。【解決手段】クライアント２０１側に、プリンタ２０６等の周辺機器２０４を接続する情報処理装置２０３を配置する。情報処理装置２０３は、通信ケーブル２０２あるいは通信ネットワークを介して、その操作を行うサーバ２１２と通信する。サーバ２１２は、情報処理装置２０３内のデバイスコントローラ２２１を用いて操作のためのレジスタ情報を周辺機器２０４との間で交換する。従って、サーバ２１２が周辺機器２０４を操作することになって、クライアント２０１側のハードウェアの変更が不要である。【選択図】図１
2007299124.tif 000002
【特許請求の範囲】
【請求項１】
クライアントコンピュータと、
このクライアントコンピュータに追加的に接続された装置であって、それ自体が周辺機器を接続可能に配置すると共に、接続された周辺機器の操作を行うために周辺機器から得られる情報および周辺機器に操作のために与える情報としてのレジスタ情報を交換するレジスタ情報交換手段を備えた情報処理装置と、
ネットワークを介して前記情報処理装置と接続され、前記レジスタ情報交換手段を通じて前記周辺機器の操作のための必要な情報を受け取ると共に前記周辺機器に対して操作のための必要な情報を与える周辺機器操作用処理装置
とを具備することを特徴とする周辺機器操作システム。
【請求項２】
前記情報処理装置は、所定の制御線の論理レベルの変化を監視する監視手段と、この監視手段によって前記制御線の論理レベルが予め設定した内容に変化したことが検知されたときこれを前記周辺機器操作用処理装置に通知する通知手段を備え、
前記周辺機器操作用処理装置はこの通知手段の通知によってあらかじめ定めた処理を開始する処理開始手段を具備することを特徴とする請求項１記載の周辺機器操作システム。
【請求項３】
前記レジスタ情報交換手段は、レジスタ情報の交換のためのレジスタ情報格納手段を備え、このレジスタ情報格納手段は処理対象となる必要なデータ量のレジスタ情報を一度に入出力することを特徴とする請求項１記載の周辺機器操作システム。
【請求項４】
前記レジスタ情報格納手段は、所定の制御線の論理レベルの変化を示すレジスタ情報を前記周辺機器操作用処理装置への送信用に格納することを特徴とする請求項３記載の周辺機器操作システム。
【請求項５】
前記周辺機器操作用処理装置が適用可能な通信インタフェースで前記情報処理装置と周辺機器が接続されることを特徴とする請求項１記載の周辺機器操作システム。
【請求項６】
前記周辺機器操作用処理装置は、ネットワークを介して前記レジスタ情報および制御線の論理レベルの設定および取得を要求する設定・取得要求手段を備えることを特徴とする請求項２記載の周辺機器操作システム。
【請求項７】
前記周辺機器操作用処理装置は、所定のプログラムを実行する装置であり、上位プログラムに対する下位プログラムは、前記上位プログラムが動作しているコンピュータに周辺機器が接続されている環境と同等の周辺機器へのアクセスのためのプログラムであることを特徴とする請求項１記載の周辺機器操作システム。
【請求項８】
前記周辺機器操作用処理装置は、所定のプログラムを実行する装置であり、上位プログラムに対する下位プログラムは、明示的に要求を行う１または複数の前記上位プログラムに対してのみ前記情報処理装置に接続されている前記周辺機器を制御するアクセス手段を備えることを特徴とする請求項１記載の周辺機器操作システム。
【請求項９】
周辺機器を操作するための周辺機器操作用処理装置のコンピュータに、
クライアントコンピュータに追加的に接続された情報処理装置に接続された前記周辺機器からの所定のレジスタ情報の取得を要求するレジスタ情報要求処理と、
このレジスタ情報要求処理で要求したレジスタ情報をネットワークを介して前記情報処理装置から受信するレジスタ情報受信処理と、
このレジスタ情報受信処理で受信したレジスタ情報を処理して前記周辺機器を操作する操作用のレジスタ情報を前記情報処理装置に与えるレジスタ情報送信処理
とを実行させることを特徴とする周辺機器操作用制御プログラム。
【請求項１０】
クライアントコンピュータに追加的に接続された情報処理装置に接続された前記周辺機器からの所定のレジスタ情報の取得を要求するレジスタ情報要求ステップと、
このレジスタ情報要求ステップで要求したレジスタ情報をネットワークを介して前記情報処理装置から受信するレジスタ情報受信ステップと、
このレジスタ情報受信ステップで受信したレジスタ情報を処理して前記周辺機器を操作する操作用のレジスタ情報を前記情報処理装置に与えるレジスタ情報送信ステップ
とを具備することを特徴とする周辺機器操作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して周辺機器を操作する周辺機器操作システム、周辺機器操作用制御プログラムおよび周辺機器操作方法に係わり、特に周辺機器の増設や変更を簡易に行うことできる周辺機器操作システム、周辺機器操作用制御プログラムおよび周辺機器操作方法に関する。
【背景技術】
【０００２】
インターネットやイントラネットの普及に伴って、これらのネットワークに接続されたサーバに備えられている資源をネットワークを介してクライアントコンピュータが利用するクライアント・サーバ方式のコンピュータシステムが注目されている。このクライアント・サーバ方式のコンピュータシステムでは、クライアントコンピュータの周辺機器として、ディスプレイやキーボードあるいはポインティングデバイスとしてのマウスといった、ごく基本的な構成が標準的なものとして想定されている。
【０００３】
このようなクライアント・サーバ方式のコンピュータシステムで、クライアントコンピュータに標準的な周辺機器以外の周辺機器が接続される場合がある。たとえばスーパマーケットやコンビニエンスストアで在庫管理のために使用されるバーコードハンドスキャナについて考えてみる。バーコードハンドスキャナは標準的な周辺機器ではない。したがって、クライアントコンピュータにバーコードハンドスキャナを接続した場合、バーコードハンドスキャナによる読み取りを行わせるためにこのクライアントコンピュータに専用のソフトウェアを組み込む等の個別設計を行う必要がある。
【０００４】
更に、該当する周辺機器の更新が行われたり、他の同様の標準的な周辺機器以外の周辺機器に交換することで、クライアントコンピュータの制御手順に変更が生じる場合がある。また、クライアントコンピュータの使用目的の変化によって新たに周辺機器を増設するような場合もある。このような場合には、そのクライアントコンピュータが周辺機器を操作するために必要な機能をこれらと同時に変更する必要がある。
【０００５】
このように、従来のクライアント・サーバ方式のコンピュータシステムでは、クライアントコンピュータが標準的な周辺機器以外の周辺機器を接続したり周辺機器の更新や交換を行うと、そのクライアントコンピュータの周辺機器用の機能をこれと同時に変更する必要があり、煩雑になるという問題があった。
【０００６】
そこで、周辺機器とクライアントコンピュータの間に周辺機器制御装置を介在させ、この周辺機器制御装置で周辺機器の更新や交換に対応させることが提案されている（たとえば特許文献１参照）。
【０００７】
図８はこの提案の概要を表わしたものである。周辺機器操作システム１００は、プリンタ１０１やファクシミリ装置１０２といった標準的な周辺機器ではない周辺機器１０３を接続した周辺機器制御装置１０４と、周辺機器１０３を使用するクライアントコンピュータ１０５から構成されている。周辺機器制御装置１０４は、クライアントコンピュータ１０５からの要求を処理する要求処理部１１１と、周辺機器１０３を管理する周辺機器管理部１１２を備えている。周辺機器管理部１１２は周辺機器テーブル１１３を備えており、これを用いて処理要求を送信すべき周辺機器１０３を特定するようになっている。
【０００８】
要求処理部１１１は、クライアントコンピュータ１０５からの周辺機器１０３に関する種々の要求の処理を行うようになっている。周辺機器管理部１１２は、周辺機器に関する情報として、周辺機器１０３の種別を示す識別番号と周辺機器１０３を特定する識別番号との対応関係を示す周辺機器テーブル１１３を記憶保持している。周辺機器管理部１１２は、周辺機器テーブル１１３を管理すると共に、要求処理部１１１および各周辺機器１０３への処理要求の送信とそれらから出力される応答の転送を行うようになっている。
【０００９】
この提案の周辺機器操作システム１００で、周辺機器管理部１１２は、要求処理部１１１から処理要求レコードを受信すると、周辺機器の種別を示す識別番号を取得する。そして、この識別番号に基づいて周辺機器テーブル１１３を検索して、処理要求を送信すべき周辺機器１０３の識別番号を得る。周辺機器テーブル１１３は、周辺機器１０３の種別を示す識別番号と周辺機器１０３を特定する識別番号との対応関係を記述している。周辺機器管理部１１２は、この周辺機器テーブル１１３を用いて、処理要求レコード中に格納された周辺機器種別識別番号と同一エントリから、処理要求を送信すべき周辺機器１０３の識別番号を得る。
【００１０】
周辺機器管理部１１２は、次に、処理要求を送信すべき周辺機器１０３の情報が周辺機器テーブル１１３内に存在するか否かを判断し、存在する場合には、該当する周辺機器１０３との間で通信が可能な状態を確立する。具体的には、ネットワークにおけるアドレスを指定してコネクションを設定したり、あるいは該当する周辺機器のポート番号を指定して該当する周辺機器をアクセスできる状態に設定する。その後、周辺機器管理部１１２は、処理要求レコードからデータを取得し、それを該当する周辺機器１０３に送信する。
【００１１】
該当する周辺機器でデータの処理が行われると、所定の応答が周辺機器管理部１１２に対して返される。周辺機器管理部１１２は、その応答データから応答レコードを作成して、要求処理部１１１に送信する。この応答レコードは、応答であることを示す情報と、応答先クライアント識別番号と、周辺機器識別番号と、応答データを含んでいる。応答先クライアント識別番号には、処理要求レコード中の送信元クライアント識別番号に指定されていたものと同じ値が設定される。周辺機器識別番号には、実際に処理が行われた周辺機器を特定する識別番号が設定される。応答データには、周辺機器からの応答データが設定される。
【００１２】
要求処理部１１１は、周辺機器管理部１１２から応答レコードを受信すると、これから周辺機器識別番号と応答データを取得する。そして、応答先クライアント識別番号で示されるクライアントコンピュータ１０５にこれらを送信することになる。
【００１３】
【特許文献１】特開平７−１０５１１９（第００１８〜第００２２段落、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１４】
図８に示したこの提案では、プリンタ１０１やファクシミリ装置１０２といった標準的でない周辺機器１０３の交換や新たな周辺機器の追加が行われた場合、周辺機器テーブル１１３の内容をこれに応じて変更する必要がある。また、周辺機器の更新によってクライアントコンピュータの制御手順に変更が生じた場合には、要求処理部１１１や周辺機器管理部１１２をこの手順に対応するものに変更する必要がある。すなわち、クライアントコンピュータ１０５自体の変更は伴わないものの、周辺機器制御装置１０４をその都度変更する必要がある。
【００１５】
たとえば例として挙げたスーパマーケットやコンビニエンスストアで使用されるバーコードハンドスキャナについて考えてみる。従来では、バーコードハンドスキャナが変更されたとすると、それぞれのバーコードハンドスキャナを接続した周辺機器制御装置１０４の変更が必要になる。これらの店舗で使用されるバーコードハンドスキャナの総数は非常に多いのが通常である。したがって、これと同数の図８に示す周辺機器制御装置１０４の変更が必要になることになる。
【００１６】
そこで、本発明の目的は、クライアント・サーバシステムで、周辺機器の構成や周辺機器の操作内容に変更が生じても、システム全体で効率的な操作が可能な周辺機器操作システム、周辺機器操作用制御プログラムおよび周辺機器操作方法を提供することにある。
【課題を解決するための手段】
【００１７】
本発明では、（イ）クライアントコンピュータと、（ロ）このクライアントコンピュータに追加的に接続された装置であって、それ自体が周辺機器を接続可能に配置すると共に、接続された周辺機器の操作を行うために周辺機器から得られる情報および周辺機器に操作のために与える情報としてのレジスタ情報を交換するレジスタ情報交換手段を備えた情報処理装置と、（ハ）ネットワークを介して情報処理装置と接続され、レジスタ情報交換手段を通じて周辺機器の操作のための必要な情報を受け取ると共に周辺機器に対して操作のための必要な情報を与える周辺機器操作用処理装置とを周辺機器操作システムに具備させる。
【００１８】
すなわち本発明では、クライアントコンピュータに情報処理装置を追加的に接続して、この情報処理装置にプリンタのように標準的でない周辺機器を接続させるようにしている。そして周辺機器を周辺機器操作用処理装置で操作している。情報処理装置は周辺機器操作用処理装置との間で、情報処理装置内のレジスタ情報交換手段を通じて周辺機器の操作のために必要な情報を入出力するようにしている。これにより、あたかも周辺機器操作用処理装置が周辺機器と直接接続されているような制御が可能になる。したがって、周辺機器操作用処理装置側が周辺機器に対応していけばよく、周辺機器の構成や周辺機器の操作内容に変更が生じても、個々のクライアントコンピュータが個別に対応する必要がない。
【００１９】
このような周辺機器操作システムでは、情報処理装置が、所定の制御線の論理レベルの変化を監視する監視手段と、この監視手段によって制御線の論理レベルが予め設定した内容に変化したことを検知したときこれを周辺機器操作用処理装置に通知する通知手段を備え、周辺機器操作用処理装置はこの通知手段の通知によってあらかじめ定めた処理を開始する処理開始手段を具備するものであってもよい。周辺機器側の変化を捉え、これを周辺機器操作用処理装置側に伝達することで、必要な操作のための処理を開始させることができる。
【００２０】
また、このような周辺機器操作システムで、レジスタ情報交換手段は、レジスタの交換のためのレジスタ情報格納手段を備え、このレジスタ情報格納手段は処理対象となる必要なデータ量のレジスタ情報を一度に入出力するものであってもよい。すなわち、レジスタ情報格納手段は狭義のレジスタのように１バイト単位といったような少量ずつのデータの格納を行ってもよいが、「連続したデータ列」を用いて、十分な量のデータを一度に格納するものであってもよい。
【００２１】
また、このような周辺機器操作システムで、レジスタ情報格納手段は、所定の制御線の論理レベルの変化を示すレジスタ情報を周辺機器操作用処理装置への送信用に格納するものであってもよい。すなわち、レジスタ情報格納手段の格納するレジスタ情報は周辺機器操作用処理装置に送られる情報と周辺機器操作用処理装置から印字データの印字等の周辺機器の操作用の情報の双方が含まれるものであってもよい。周辺機器操作用処理装置に送られるレジスタ情報は、たとえば印字のために読み取った情報のようなものだけでなく、周辺機器が画像の読み取りを開始するといったような処理の変化を制御線の論理レベルで検知したものも含まれてよい。
【００２２】
また、このような周辺機器操作システムでは、周辺機器操作用処理装置が適用可能な通信インタフェースで情報処理装置と周辺機器が接続されるものであってもよい。たとえば、周辺機器操作用処理装置のオペレーティングシステムが認識できるＵＳＢ（Universal Serial Bus）等のポピュラな通信インタフェースで情報処理装置と周辺機器が接続されていれば、簡易なシステムを構築できる。
【００２３】
また、このような周辺機器操作システムで、周辺機器操作用処理装置は、ネットワークを介してレジスタ情報および制御線の論理レベルの設定および取得を要求する設定・取得要求手段を備えることも好ましい。これにより、周辺機器操作用処理装置は各種の周辺機器に柔軟に対応することができる。
【００２４】
また、このような周辺機器操作システムで、周辺機器操作用処理装置は、所定のプログラムを実行する装置であり、上位プログラムに対する下位プログラムは、上位プログラムが動作しているコンピュータに周辺機器が接続されている環境と同等の周辺機器へのアクセスのためのプログラムであってもよい。すなわち、周辺機器操作用処理装置はハードウェアで構成することもできるし、その一部または全部をソフトウェアで構成することも可能である。たとえば周辺機器操作用処理装置の一般的なオペレーティングシステムの場合、上位プログラムはアプリケーションプログラムがこれに相当し、下位プログラムは周辺機器用のデバイスドライバがこれに相当する。
【００２５】
また、このような周辺機器操作システムで、周辺機器操作用処理装置は、所定のプログラムを実行する装置であり、上位プログラムに対する下位プログラムは、明示的に要求を行う１または複数の上位プログラムに対してのみ情報処理装置に接続されている周辺機器を制御するアクセス手段を備えるものであってもよい。プログラムの実装方法の１つは、明示的に要求を行う１または複数の上位プログラムに対してのみ、情報処理装置に接続されている周辺機器へのアクセス手段を公開する方法である。
【００２６】
また、本発明の周辺機器操作用制御プログラムでは、（イ）周辺機器を操作するための周辺機器操作用処理装置のコンピュータに、（ロ）クライアントコンピュータに追加的に接続された情報処理装置に接続された周辺機器からの所定のレジスタ情報の取得を要求するレジスタ情報要求処理と、（ハ）このレジスタ情報要求処理で要求したレジスタ情報をネットワークを介して情報処理装置から受信するレジスタ情報受信処理と、（ニ）このレジスタ情報受信処理で受信したレジスタ情報を処理して周辺機器を操作する操作用のレジスタ情報を情報処理装置に与えるレジスタ情報送信処理とを実行させることを特徴としている。
【００２７】
すなわち本発明では、周辺機器を操作する形の周辺機器操作用処理装置のコンピュータに搭載する周辺機器操作用制御プログラムを扱っている。このような周辺機器操作用制御プログラムは、クライアントコンピュータに追加的に接続された情報処理装置に接続された周辺機器からの所定のレジスタ情報の取得をレジスタ情報要求処理で要求し、この要求したレジスタ情報をネットワークを介して情報処理装置からレジスタ情報受信処理で受信する。そして、レジスタ情報受信処理で受信したレジスタ情報を処理して周辺機器を操作する操作用のレジスタ情報を情報処理装置に与えるレジスタ情報送信処理を行うことで、クライアントコンピュータの周辺機器に対する操作を切り離している。
【００２８】
また、本発明の周辺機器操作方法では、（イ）クライアントコンピュータに追加的に接続された情報処理装置に接続された周辺機器からの所定のレジスタ情報の取得を要求するレジスタ情報要求ステップと、（ロ）このレジスタ情報要求ステップで要求したレジスタ情報をネットワークを介して情報処理装置から受信するレジスタ情報受信ステップと、（ハ）このレジスタ情報受信ステップで受信したレジスタ情報を処理して周辺機器を操作する操作用のレジスタ情報を情報処理装置に与えるレジスタ情報送信ステップとを具備することを特徴としている。
【００２９】
すなわち本発明では、クライアントコンピュータと別に設けられた周辺機器操作用処理装置が行う周辺機器操作方法を扱っている。この周辺機器操作方法では、クライアントコンピュータに追加的に接続された情報処理装置に接続された周辺機器から所定のレジスタ情報の取得を要求し、これを基にしてレジスタ情報をネットワークを介して情報処理装置から受信し、受信したレジスタ情報を処理して周辺機器を操作する操作用のレジスタ情報を情報処理装置に与えるようにしている。これにより、クライアントコンピュータの周辺機器に対する操作を切り離している。
【発明の効果】
【００３０】
以上説明したように、本発明によれば、クライアントコンピュータとは別に周辺機器操作用の情報処理装置を設けて、これに周辺機器を接続すると共にこの情報処理装置をサーバあるいは他のコンピュータからなる周辺機器操作用処理装置で制御する原理的な構成なので、周辺機器操作用の情報処理装置が数多く配置されるようなシステムでも個々のクライアントコンピュータが周辺機器の構成や周辺機器の操作内容の変更に対応する必要がない。したがって、特に規模の大きなシステムでは周辺機器の増設や交換を個々のクライアントコンピュータのハードウェアやソフトウェアに依存することなく一斉に行えるので、迅速、かつ確実であるという効果がある。
【発明を実施するための最良の形態】
【００３１】
以下実施例につき本発明を詳細に説明する。
【実施例１】
【００３２】
図１は、本発明の一実施例における周辺機器操作システムの要部を表わしたものである。この周辺機器操作システム２００は、クライアントコンピュータ（以下、クライアントと略称する。）２０１がＬＡＮ（Local Area Network）等の通信ネットワークを構成する通信ケーブル２０２を介して情報処理装置２０３に接続されている。この情報処理装置２０３には周辺機器２０４としてたとえばプリンタ２０６、バーコードハンドスキャナ（ＢＨＳ）２０７およびフレキシブルディスク（ＦＤ）ドライブ２０８が接続されている。また、通信ケーブル２０２は、ＶＰＮ（Virtual Private Network）ルータ２０９を介してインターネット２１１に接続されている。インターネット２１１には、周辺機器２０４を制御するためのサーバ２１２が接続されている。
【００３３】
なお、この図ではクライアント２０１と情報処理装置２０３を１組だけ示したが、これらが複数組配置されるものであってもよい。同様にクライアント２０１と情報処理装置２０３の組が複数のとき、それぞれの周辺機器２０４を制御するサーバ２１２も複数（クライアント２０１の数よりも少ない場合も含む）存在してもよい。また、インターネット２１１はイントラネットであってもよい。ここでは、説明を簡単にするために、図１のシンプルな構成で周辺機器操作システム２００の説明を行う。
【００３４】
クライアント２０１に付加された情報処理装置２０３は、図示しないＣＰＵ（Central Processing Unit）や制御プログラムを格納したハードディスクあるいはＲＯＭ（Read Only Memory）等の記憶媒体を備えている。情報処理装置２０３の一部または全部は、記憶媒体に格納された制御プログラムを前記したＣＰＵが実行することによって実現するソフトウェアによって構成されている。
【００３５】
図２は、情報処理装置の構成を表わしたものである。情報処理装置２０３は、図１に示した周辺機器２０４用の図示しないＵＳＢポートを備えたデバイスコントローラ２２１と、同じく図示しないＬＡＮケーブル挿入口を備えたネットワークコントローラ２２２と、これらデバイスコントローラ２２１およびネットワークコントローラ２２２と接続されたコントロール部２２３によって構成されている。デバイスコントローラ２２１のＵＳＢポートと図１に示した周辺機器２０４の間にはＵＳＢケーブル２２４が必要数配線されている。また、ネットワークコントローラ２２２のＬＡＮケーブル挿入口には通信ケーブル２０２が接続されている。コントロール部２２３は、前記したＣＰＵが制御プログラムを実行することによってその機能を実現してもよいし、特定用途向けの集積回路としてのＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）によってハードワイヤードロジックでこのような機能を実現してもよい。
【００３６】
ネットワークコントローラ２２２はこれに接続される通信ケーブル２０２を介して、図１に示すサーバ２１２と通信を行うようになっている。サーバ２１２との間の通信速度は、数Ｍｂｐｓ（メガビット／秒）以上であることが好ましい。この通信速度が速いほど、情報処理装置２０３は、サーバ２１２によって、これら周辺機器２０４の制御を高い操作性で実現することができる。
【００３７】
デバイスコントローラ２２１は必ずしもＵＳＢポートを備える必要はなく、一般的な通信ケーブルで周辺機器２０４と接続されるようになっていてもよい。ただし、デバイスコントローラ２２１と該当する周辺機器２０４との間でその通信を可能とするインタフェース回路がデバイスコントローラ２２１側に備わっていることが必要である。このようなインタフェース回路の例としては、ＵＳＢ、ＩＥＥＥ（The Institute of Electrical and Electronics Engineers, Inc.）１３９４、ＳＣＳＩ（Small Computer System Interface）、ＡＴＡ（AT Attachment）を代表的なものとして挙げることができる。
【００３８】
ところで、図８に示した従来の周辺機器制御装置１０４の場合には、その周辺機器管理部１１２がクライアント１０５の要求する周辺機器１０３に対する各種の処理を直接実行するようになっていた。このため、たとえば周辺機器１０３が新たなものに交換されると、周辺機器管理部１１２自体がこれに対応する機能となるように変更されることが必要であった。
【００３９】
本実施例の場合には、周辺機器２０４と接続されるデバイスコントローラ２２１が図１に示すサーバ２１２の中に実装されているような振る舞いを実現するようにしている。すなわち、サーバ２１２がデバイスコントローラ２２１の図示しないインタフェース回路を介して、周辺機器２０４としてのプリンタ２０６、バーコードハンドスキャナ２０７およびフレキシブルディスクドライブ２０８と通信を行う。そして、これにより、たとえば周辺機器２０４の構成が変更されても、サーバ２１２のみにこれに対応する変更を加えればよいことになる。また、スーパマーケット等の店舗で複数台の周辺機器２０４の構成が一斉に変更された場合でも、サーバ２１２のみがこれらの周辺機器２０４に対応する構成に変更されればよい。
【００４０】
ところで周辺機器２０４の制御のための機能をサーバ２１２が代行するためには、情報処理装置２０３に接続された周辺機器２０４の制御が必要とされたときに、サーバ２１２がこれを認識するような工夫が必要である。このため、デバイスコントローラ２２１にはレジスタ情報格納部２２６が配置されている。レジスタ情報格納部２２６には、情報処理装置２０３の固有識別情報および周辺機器２０４の制御の要請を示すレジスタ情報が格納されるようになっている。これらのレジスタ情報をサーバ２１２が取得することで、このサーバ２１２による周辺機器２０４の制御の開始が可能になる。
【００４１】
図３は、サーバの機能的な構成の概要を表わしたものである。図１に示したサーバ２１２は、図示しないがＣＰＵと制御プログラムを格納した磁気ディスク等の記憶媒体およびＲＡＭ（Random Access Memory）等の作業用メモリを備えている。そして、ウィンドウズ（登録商標）（Windows（登録商標））あるいはリナックス（登録商標）（Linux（登録商標））等のオペレーティングシステム（ＯＳ）の１つが稼動している。これらのオペレーティングシステムは、本実施例で活用する各種のインタフェースをサポートしている。具体的には、各種のデバイス用に用意されたデバイスドライバ２３１と、前記したＵＳＢに代表されるバス用共通ドライバ２３２は、オペレーティングシステム自体でサポートされており、これらは擬似カードドライバ２３３と共に情報処理装置２０３と接続されるようになっている。
【００４２】
周辺機器２０４の制御のための各種のドライバのすべてがオペレーティングシステムでサポートされるとは限らない。オペレーティングシステムでサポートされない各種のドライバは、周辺機器制御用のアプリケーションプログラムによって実現するアプリケーション機能部２３４としてサーバ２１２に追加されている。したがって、図１に示す情報処理装置２０３の周辺機器２０４を動作させることがオペレーティングシステムとアプリケーション機能部２３４で用意されるドライバによって可能になる。最新のドライバは、管理者がこれをサーバ２１２に定期的に追加してもよいし、サーバ２１２自体が各種のデバイスメーカのダウンロードサイトとリンクするようにしておき、最新のドライバが発行されたときこれらを自動的に取り込むようにしてもよい。
【００４３】
本実施例ではデバイスドライバ２３１とバス用共通ドライバ２３２の多くをオペレーティングシステムで処理するようにしており、クライアント２０１と接続されるアプリケーション機能部２３４との互換性が高くなっている。また、オペレーティングシステムがこれらのドライバ２３１、２３２の多くをサポートすることで、アプリケーション機能部２３４の開発の規模を比較的小さくすることができる。
【００４４】
擬似カードドライバ２３３は、情報処理装置２０３とのデバイス制御機能を有している。擬似カードドライバ２３３は、デバイスコントローラ２２１を個別に制御するコードをインターネット２１１（図１）を介して情報処理装置２０３のネットワークコントローラ２２２（図２）に送信するようになっている。具体的な制御手順はネットワークコントローラ２２２ごとの仕様に従う。
【００４５】
以上説明したような構成の周辺機器操作システム２００の動作の実際を次に説明する。説明する例では、図１に示した周辺機器操作システム２００がスーパマーケットに使用されているものとする。ＰＯＳ（Point Of Sales）端末（レジ）を構成するクライアント２０１を操作するオペレータとしてのレジ係は、周辺機器２０４におけるバーコードハンドスキャナ２０７を用いて顧客の購入する商品に付けられたバーコードの読み取りを行う。そして、個々の商品の名称、数量、価格や購入総額等の商品購入データを表わしたレシートをプリンタ２０６で印刷して顧客に手渡すことになる。
【００４６】
従来、このような作業を行う周辺機器操作システムでは、ＰＯＳ端末を構成するクライアントコンピュータがレジ係の操作したバーコードハンドスキャナ２０７から得られる情報を処理して、購入する各商品のレシートについての印字データを作成し、周辺機器としてのプリンタ２０６がこれをプリントアウトするようになっていた。
【００４７】
一方、本実施例の周辺機器操作システム２００では、図２に示す情報処理装置側のデバイスコントローラ２２１があたかもサーバ２１２側に実装されているような振る舞いをするようになっている。このような振る舞いを可能にするために、サーバ２１２と情報処理装置２０３内のデバイスコントローラ２２１（図２）は、レジスタ情報格納部２２６を中継基地として用いてレジスタ情報を交換するようになっている。
【００４８】
また、サーバ２１２とデバイスコントローラ２２１がレジスタ情報を交換するときに、不用意な者からのアクセスを防止するための配慮もされている。すなわち、図１に示したように情報処理装置２０３とサーバ２１２の間には、ＶＰＮルータ２０９が配置されている。これにより、仮想的なプライペートネットワークが構築されており、他のネットワークからの不正なアクセスを遮断することができる。もちろん、ＶＰＮルータ２０９を使用せずに、情報処理装置２０３とサーバ２１２に認証機構や暗号化プロトコルを実装することによっても、これら不用意な者からのレジスタ情報へのアクセスを防止することができる。
【００４９】
ところで本実施例の場合、プリンタ２０６やバーコードハンドスキャナ２０７は、図２に示したＵＳＢケーブル２２４でデバイスコントローラ２２１と接続されている。スーパマーケットのレジ係がバーコードハンドスキャナ２０７を用いて、顧客が購入しようとする商品のバーコードを読み取る場合を例に採る。デバイスコントローラ２２１は、そのクロック信号、ライト信号およびアドレス情報を用いてレジスタ情報格納部２２６に読み取ったバーコード情報をレジスタ情報として逐次格納するようになっている。
【００５０】
レジスタ情報格納部２２６に格納されたレジスタ情報は、情報処理装置２０３を順次、ポーリングすることによって、サーバ２１２側に伝えられる。たとえば、スーパマーケットのレジ係が図示しない買い物カゴから商品を取り出して、バーコードハンドスキャナ２０７で商品のバーコードをスキャンしたとする。すると、バーコードハンドスキャナ２０７の読取結果がレジスタ情報としてレジスタ情報格納部２２６に格納され、これをサーバ２１２が順次取得することになる。
【００５１】
周辺機器２０４がプリンタ２０６の場合には、その用紙切れ等の制御情報は、同様にレジスタ情報格納部２２６に格納され、これをサーバ２１２がポーリングによって取得する。また、バーコードハンドスキャナ２０７の読取結果を用いてアプリケーション機能部２３４が作成したレシート作成用の印字データは、サーバ２１２から情報処理装置２０３に送られてそのレジスタ情報格納部２２６に格納される。これを基にして、プリンタ２０６が顧客の購入した一連の商品についてのレシートを印字することになる。このようにレジスタ情報格納部２２６を中継基地として、情報処理装置２０３とサーバ２１２の間でレジスタ情報が交換される。
【００５２】
なお、レジスタ情報格納部２２６に一度に格納されるレジスタ情報あるいはレジスタ情報格納部２２６からポーリングによって一度に読み出されるレジスタ情報は、任意の量である。たとえば１バイト単位であってもよいし、数バイト単位から数キロバイト単位の一定量のデータが一度に処理されるものであってもよい。この意味で、デバイスコントローラ２２１と周辺機器２０４を制御するサーバ２１２の間には、レジスタ情報として「連続したデータ列」が通信され、これを基にした周辺機器２０４の制御が行われることになる。
【００５３】
図４は、アプリケーションプログラムによるサーバ側の制御の様子の一例を表わしたものである。図１〜図３とともに説明を行う。ここでは情報処理装置２０３と周辺機器２０４におけるプリンタ２０６との関係について説明を行う。この説明の前提として、図１に示したサーバ２１２は、ＰＯＳ端末の処理用のアプリケーション機能部２３４を使用して、またバーコードハンドスキャナ２０７等の周辺機器の入力データをレジスタ情報格納部２２６を介して逐次取得することで、前記したレシート用の印字データを作成するようになっている。
【００５４】
印字データを情報処理装置２０３のプリンタ２０６で印字させるタイミングになると、アプリケーション機能部２３４は周辺機器としてのプリンタ２０６に印字させるための動作要求を発生させる（ステップＳ３０１：Ｙ）。これに基づいて、アプリケーション機能部２３４は、オペレーティングシステムが管理するその周辺機器としてのプリンタ２０６に対してデータの入出力要求を行う（ステップＳ３０２）。入出力のフォーマットは、該当するオペレーティングシステムが提供する。
【００５５】
オペレーティングシステムのドライバレイヤとしてのデバイスドライバ２３１は、この要求をカードドライバに対する操作に変換し、擬似カードドライバ２３３に対してその操作の要求を行う（ステップＳ３０３）。擬似カードドライバ２３３は、この要求を実際のデバイスコントローラ２０１の行うレジスタ操作に変換し（ステップＳ３０４）、ネットワーク経由で情報処理装置２０３に送信して、要求を行う（ステップＳ３０５）。このように擬似カードドライバ２３３等のサーバ２１２側の各種手段が存在することで、情報処理装置２０３の存在は、プリンタ２０６等の周辺機器２０４からは見えなくなる。すなわち、あたかも周辺機器２０４がサーバ２１２に直接接続されているように見えることになる。
【００５６】
図５は、コントロール部の処理の様子を表わしたものである。図２に示した情報処理装置２０３内のコントロール部２２３は、ネットワークコントローラ２２２に、図４のステップＳ３０５の要求が来たことを検知すると（ステップＳ３２１：Ｙ）、その内容をレジスタ情報格納部２２６に格納する（ステップＳ３２２）。そして、デバイスコントローラ２２１に対して、要求された通りのレジスタ操作を実行する（ステップＳ３２３）。
【００５７】
要求されたレジスタ操作の実行期間中にコントロール部２２３は、デバイスコントローラ２２１の図示しない割込み線等の制御線を監視している（ステップＳ３２４）。そして、たとえば割込み線の論理レベルに変化があり、予め設定した内容と比較することで、他の処理のための割り込みが発生したことが判別されたら（Ｙ）、割り込まれた処理をネットワークコントローラ２２２から通信ケーブル２０２を経由して、サーバ２１２に通知する（ステップＳ３２５）。これにより、サーバ２１２は割り込まれた処理に対応することができる。
【００５８】
ステップＳ３２４の割込み処理の監視と共に、コントロール部２２３は、サーバ２１２からレジスタ情報格納部２２６に格納されたレジスタ情報の取得要求が来たかを監視している（ステップＳ３２６）。そして、レジスタ情報の取得要求が来た場合には（Ｙ）、レジスタ情報格納部２２６に格納された該当するレジスタ情報を、ネットワークコントローラ２２２から通信ケーブル２０２を経由して、サーバ２１２に送信する（ステップＳ３２７）。
【００５９】
ステップＳ３２５あるいはステップＳ３２７の処理が行われたら、プリント等の１つのジョブが完了したかどうかの判別が行われ（ステップＳ３２８）、完了するまではステップＳ３２１に戻って処理が繰り返される。このようにして１つのジョブが完了したら（ステップＳ３２８：Ｙ）、コントロール部２２３による処理が終了する（エンド）。
【００６０】
なお、割込み線等の制御線の論理レベルを比較するための事前の設定や、これらの制御線の論理レベルの変化の取得は、サーバ２１２側がデバイスコントローラ２２１側に要求することができる。制御線の論理レベルの変化の取得は、レジスタ情報格納部２２６に格納された該当するレジスタ情報を読み出してネットワークコントローラ２２２側にデバイスコントローラ２２１が送出することで行われる。このときのレジスタ情報として一度に扱うデータ量は、１バイト単位であってもよいし、数バイト単位から数キロバイト単位であってもよい。
【００６１】
以上説明したように、本実施例では図１に示すサーバ２１２がクライアント２０１に付加された情報処理装置２０３に接続されたプリンタ２０６等の周辺機器２０４を、レジスタ情報格納部２２６を介して直接制御する動作を行う。これにより、あたかも周辺機器２０４がサーバ２１２に直接接続されているような制御が可能になる。したがって、周辺機器２０４のドライバの更新や機器自体の交換に対しても、クライアント２０１が対処する必要がなく、サーバ２１２のみの対処で可能となる。
【００６２】
＜本発明の変形例＞
【００６３】
図６は、本発明の変形例におけるサーバの構成を表わしたものである。実施例のサーバ２１２の変形例としてのサーバ２１２Ａは、図示しないＣＰＵが実行するプログラムによって実現するようになっている。すなわち、サーバ２１２Ａは、クライアント２０１と通信を行うアプリケーションプログラム４０２と、周辺機器２０４を接続した情報処理装置２０３と通信を行う周辺機器専用プログラム４０３とから構成されている。
【００６４】
周辺機器専用プログラム４０３は、オペレーティングシステム自体が用意した周辺機器２０４用のドライバ等のプログラムではなく、図２に示したデバイスコントローラ２２１と通信を行うデバイスコントローラ通信用プログラム４０４を備えている。デバイスコントローラ通信用プログラム４０４は、図３に示すバス用共通ドライバ２３２に相当するバス用共通ドライバ相当機能４０５と、図３に示す擬似カードドライバ２３３のような情報処理装置２０３とのデバイス制御機能４０６とを機能的に備えている。このため、アプリケーションプログラム４０２は、実施例と異なり、周辺機器２０４の制御に関してオペレーティングシステムに対して入出力要求を行うのではなく、周辺機器専用プログラム４０３に対して入出力要求を行うようになっている。
【００６５】
周辺機器専用プログラム４０３の内部処理は、図１に示したプリンタ２０６やバーコードハンドスキャナ２０７等の個々の周辺機器２０４で使用するインタフェースおよびバスの仕様に従って実装される。そして、周辺機器専用プログラム４０３の処理結果は、情報処理装置２０３内のデバイスコントローラ２２１（図２）へネットワークを経由して送信されることになる。
【００６６】
図７は、この変形例のサーバによる制御の一例を表わしたものであり、先の実施例の図４に対応するものである。ここでは情報処理装置２０３と周辺機器２０４におけるプリンタ２０６との関係について説明を行う。図６と共に説明する。
【００６７】
印字データを情報処理装置２０３のプリンタ２０６で印字させるタイミングになると、アプリケーションプログラム４０２によって、周辺機器としてのプリンタ２０６に印字させるための動作要求が発生する（ステップＳ５０１：Ｙ）。続いて、アプリケーションプログラム４０２は、ユーザ空間のデバイスコントローラ通信用プログラム４０４に対して、データの入出力要求を行う（ステップＳ５０２）。入出力のフォーマットについては、動作対象となる周辺機器２０４（この場合にはプリンタ２０６）を動作させるために十分な内容となるように、アプリケーションプログラム４０２と周辺機器専用プログラム４０３の間で仕様化しておく。
【００６８】
アプリケーションプログラム４０２によるデータの入出力要求に基づいて、周辺機器専用プログラム４０３はこの要求を実際のデバイスコントローラ２２１（図２）のレジスタ情報格納部２２６に対するレジスタ情報の操作用の要求に変換し（ステップＳ５０３）、ネットワークを経由して情報処理装置２０３に送出する（ステップＳ５０４）。
【００６９】
このようなサーバ２１２Ａによる処理に対応する情報処理装置２０３（図２）側の処理は、先の実施例の図５とほぼ同様になる。そこで、この処理の説明は省略する。
【００７０】
以上説明した変形例では、サーバ２１２Ａを周辺機器２０４の操作用に使用したが、図１に示すクライアント２０１のように、インターネット２１１あるいはイントラネットを経由しない通信ネットワークに接続されたクライアントを周辺機器操作用処理装置として使用してもよい。この場合には、インターネット等の通信ネットワークを経由するよりもネットワーク的に近い場所に情報処理装置２０３と周辺機器操作用処理装置が配置される。したがって、広帯域で良好な応答性を確保することができることになる。
【００７１】
もちろん、周辺機器２０４の情報をこのようなクライアントだけに任せる必要はなく、クライアントの取得したデータをこのクライアントからサーバに送信することでサーバも含めた形で、周辺機器２０４の制御を行うようにしてもよい。
【００７２】
また、実施例および変形例ではプリンタ、バーコードハンドスキャナ、フレキシブルディスクドライバを周辺機器の例として示したが、周辺機器の種類はこれらに限定されないことは当然である。
【図面の簡単な説明】
【００７３】
【図１】本発明の一実施例における周辺機器操作システムの概要を表わしたシステム構成図である。
【図２】本実施例の情報処理装置の構成を表わしたブロック図である。
【図３】本実施例のサーバの機能的な構成の概要を表わしたブロック図である。
【図４】本実施例でアプリケーションプログラムによるサーバ側の制御の様子の一例を表わした流れ図である。
【図５】本実施例のコントロール部の処理の様子を表わした流れ図である。
【図６】本発明の変形例におけるサーバの機能的な構成を表わしたブロック図である。
【図７】この変形例のサーバによる制御の一例を表わした流れ図である。
【図８】従来提案された周辺機器操作システムのシステム構成図である。
【符号の説明】
【００７４】
２００  周辺機器操作システム
２０１  クライアント（クライアントコンピュータ）
２０３  情報処理装置
２０４  周辺機器
２０６  プリンタ
２０７  バーコードハンドスキャナ
２０９  ＶＰＮルータ
２１１  インターネット
２１２  サーバ
２２１  デバイスコントローラ
２２３  コントロール部
２２６  レジスタ情報格納部
２３１  デバイスドライバ
２３２  バス用共通ドライバ
２３３  擬似カードドライバ
２３４  アプリケーション機能部
４０２  アプリケーションプログラム
４０３  周辺機器専用プログラム
【図１】
2007299124.tif 000003
【図２】
2007299124.tif 000004
【図３】
2007299124.tif 000005
【図４】
2007299124.tif 000006
【図５】
2007299124.tif 000007
【図６】
2007299124.tif 000008
【図７】
2007299124.tif 000009
【図８】
2007299124.tif 000010