JP2010113606A - System, client and method for sharing device - Google Patents
System, client and method for sharing device Download PDFInfo
- Publication number
- JP2010113606A JP2010113606A JP2008286855A JP2008286855A JP2010113606A JP 2010113606 A JP2010113606 A JP 2010113606A JP 2008286855 A JP2008286855 A JP 2008286855A JP 2008286855 A JP2008286855 A JP 2008286855A JP 2010113606 A JP2010113606 A JP 2010113606A
- Authority
- JP
- Japan
- Prior art keywords
- input
- connection
- session
- output port
- printer
- 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
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
本発明は、ネットワークを介してデバイスを共有する機能を備えたシステム、クライアント、及びその制御方法に関するものである。 The present invention relates to a system having a function of sharing a device via a network, a client, and a control method thereof.
ネットワークの普及により、従来、パーソナルコンピュータ(PC)などにローカル接続して利用していたデバイス(周辺機器)をネットワーク上のクライアントPCから利用できるように工夫したデバイスサーバが発表されている。 With the widespread use of networks, device servers that have been devised so that devices (peripheral devices) that are conventionally connected locally to personal computers (PCs) and the like can be used from client PCs on the network have been announced.
例えば、プリンタ、ストレージ、スキャナなどのデバイスを、ネットワーク上のクライアントPCからデバイスサーバを介して共有デバイスとして利用可能とするための実現方法がいくつか提案されている。 For example, several implementation methods for making devices such as printers, storages, and scanners available as shared devices from a client PC on a network via a device server have been proposed.
ひとつの実現方法として、クライアントPCのオペレーティングシステム(Operating System;以下、OS)に対して、ローカル接続されているデバイスとして仮想的に認識させる方法がある。 As one implementation method, there is a method in which an operating system (hereinafter referred to as OS) of a client PC is virtually recognized as a locally connected device.
この方法では、クライアントPCに専用のアプリケーションソフトウェア(以下、ユーティリティ)を導入しておき、ユーザがデバイスにアクセスしようとするときにユーティリティを操作し、クライアントPCに対してローカル接続したデバイスとして仮想的に認識させることで、ネットワーク上のクライアントPCから、ローカル接続した状態と同様にアクセスできるようにしている。 In this method, dedicated application software (hereinafter referred to as “utility”) is installed in the client PC, and the utility is operated when the user tries to access the device, and virtually as a device locally connected to the client PC. By recognizing, it is possible to access from the client PC on the network in the same manner as in the locally connected state.
図16は、クライアントPCに導入したユーティリティをユーザが操作し、デバイスを使用する場合の基本的な動作を示すフローチャートである。ここでは、デバイスとしてプリンタを使用するものとして説明する。 FIG. 16 is a flowchart showing a basic operation when a user operates a utility installed in a client PC and uses a device. Here, description will be made assuming that a printer is used as the device.
ユーザは、まず、プリンタを使用するためにクライアントPCのユーティリティを起動する。そして、ユーザがクライアントPCのユーティリティを操作すると、デバイスサーバとの間でUDP(User
Datagram Protocol)などを用いてデータ通信し、デバイスサーバを介して接続されているプリンタの状態を確認する(ステップS1601)。
The user first activates the utility of the client PC in order to use the printer. When the user operates the utility of the client PC, the UDP (User) is exchanged with the device server.
Data communication is performed using Datagram Protocol), and the state of the printer connected via the device server is confirmed (step S1601).
デバイスサーバは、自らに接続されたプリンタの状態に関する情報を、デバイスサーバが他のクライアントPCとの間でセッション接続中か否かの情報とともに応答情報としてクライアントPCへ返す。 The device server returns information on the status of the printer connected to itself to the client PC as response information together with information on whether the device server is in session connection with another client PC.
クライアントPCでは、ユーティリティがこの応答情報に基づきデバイスサーバがセッション接続中か否かを判断する(ステップS1602)。 In the client PC, the utility determines whether the device server is in session connection based on the response information (step S1602).
デバイスサーバがセッション接続中の場合、若しくはデバイスサーバから正常に応答がない場合(ステップS1602でNo)、セッション接続ができないため、ユーティリティを介してユーザにその旨を通知することで、本フローによる処理は終了となる。 If the device server is in session connection, or if the device server does not respond normally (No in step S1602), the session connection cannot be made, so that the process according to this flow is notified to the user via the utility. Ends.
デバイスサーバ及びプリンタが正常であり、他のクライアントPCとの間でセッション接続中でない場合(ステップS1602でYes)、ユーザがクライアントPCのユーティリティにより接続操作を行うと、ユーティリティから接続開始命令が発行され(ステップS1603)、デバイスサーバを介して接続されているプリンタの情報(以下、デバイス情報)を取得し、このデバイス情報に基づいて当該プリンタの使用に必要となるソフトウェア(以下、デバイスドライバ)をロードする(ステップS1604)。 When the device server and the printer are normal and the session connection with another client PC is not in progress (Yes in step S1602), when the user performs a connection operation with the utility of the client PC, a connection start command is issued from the utility. (Step S1603) Acquire information (hereinafter referred to as device information) of the printer connected via the device server, and load software (hereinafter referred to as device driver) necessary for using the printer based on the device information. (Step S1604).
クライアントPCのユーティリティは、デバイスドライバのロードが完了すると、デバイスドライバを介し、デバイスサーバに対してセッション開始要求を送る(ステップS1605)。 When the loading of the device driver is completed, the client PC utility sends a session start request to the device server via the device driver (step S1605).
デバイスサーバとの間でセッション接続が開始されると(ステップS1606でYes)、プリンタへのアクセスが可能となり、クライアントPCはデバイスサーバを介してプリンタとの間でデータやコマンドの送受信を行い、プリンタにおいて印刷処理が実行される(ステップS1607)。なお、セッション接続が開始できない場合(ステップS1606でNo)、本フローによる処理は終了となる。 When a session connection with the device server is started (Yes in step S1606), the printer can be accessed, and the client PC transmits / receives data and commands to / from the printer via the device server. In step S1607, the printing process is executed. If the session connection cannot be started (No in step S1606), the process according to this flow ends.
印刷処理が完了してプリンタのアクセスを終了するときは、ユーザがクライアントPCのユーティリティを操作してプリンタの終了操作を実行する(ステップS1608)。 When the printing process is completed and the printer access is terminated, the user operates the utility of the client PC to execute the printer termination operation (step S1608).
プリンタの終了操作が実行されると、クライアントPCのユーティリティはデバイスドライバを介し、デバイスサーバに対してセッション終了要求を送る(ステップS1609)。 When the printer termination operation is executed, the utility of the client PC sends a session termination request to the device server via the device driver (step S1609).
クライアントPCのユーティリティは、デバイスサーバからセッション終了の「OK」応答を受信するとセッション接続を終了し(ステップS1610)、プリンタのデバイスドライバをアンロードする(ステップS1611)。 When the utility of the client PC receives a “OK” response for session termination from the device server, the session connection is terminated (step S1610), and the printer device driver is unloaded (step S1611).
図17は、図16のフローチャートに基づいて動作する複数台のクライアントPC(PC1,PC2)がプリンタにアクセスするときの過程を示したタイミングチャートである。 FIG. 17 is a timing chart showing a process when a plurality of client PCs (PC1, PC2) operating based on the flowchart of FIG. 16 access the printer.
まず、PC1のユーザは、PC1のユーティリティを操作することにより、デバイスサーバを介してプリンタの状態を確認し、デバイスサーバが他のクライアントPC(ここではPC2)との間でセッション接続中か否かを確認する。 First, the user of PC1 checks the status of the printer through the device server by operating the utility of PC1, and whether the device server is in session connection with another client PC (PC2 in this case). Confirm.
デバイスサーバ及びプリンタが正常であり、他のクライアントPCとの間でセッション接続中でない場合に、PC1のユーザがユーティリティによりプリンタの接続操作を行うと、PC1から接続開始命が発行され、デバイスサーバを介してプリンタのデバイス情報を取得し、当該プリンタの使用に必要となるデバイスドライバをロードする。
When the device server and the printer are normal and the session connection with another client PC is not in progress, when the user of the PC 1 performs a printer connection operation with the utility, a connection start order is issued from the
PC1は、デバイスドライバのロードが完了すると、このデバイスドライバを介してデバイスサーバに対してセッション開始要求を送り、デバイスサーバとの間でセッション接続が開始されるとプリンタへのアクセスが可能となる。 When the loading of the device driver is completed, the PC 1 sends a session start request to the device server via the device driver. When the session connection with the device server is started, the PC 1 can access the printer.
そして、PC1はデバイスサーバを介してプリンタとの間でデータやコマンドの送受信を行い、プリンタにおいて印刷処理などが実行される。 The PC 1 transmits and receives data and commands to and from the printer via the device server, and print processing and the like are executed in the printer.
PC1とデバイスサーバがセッション接続中は、PC1によってデバイスサーバとのセッションが専有されているため、別のPC2からプリンタにアクセスすることができない。 During the session connection between the PC 1 and the device server, since the session with the device server is exclusively used by the PC 1, the printer cannot be accessed from another PC 2.
PC1によるプリンタへのアクセスが終了し、PC1のユーザがユーティリティによりプリンタの終了操作を実行すると、PC1のデバイスドライバから、デバイスサーバへセッション終了要求が送られる。そして、PC1は、デバイスサーバからセッション終了の「OK」応答を受信すると、プリンタのデバイスドライバをアンロードし、デバイスサーバとの間のセッション接続を終了する。
When access to the printer by the PC 1 is completed and the user of the
ここで、PC2のユーザがユーティリティによりプリンタの接続操作を行うと、他のクライアントPCによってデバイスサーバとのセッション接続が専有されていないので、PC2からプリンタへのアクセスが開始される。 Here, when the user of the PC 2 performs the printer connection operation using the utility, since the session connection with the device server is not exclusively used by another client PC, access to the printer from the PC 2 is started.
このように、ユーティリティを使ってセッション接続の開始・終了を行うことによって、複数のクライアントPCからプリンタを共有することができる。 In this way, by starting and ending session connection using a utility, printers can be shared from a plurality of client PCs.
しかし、この方法では、ユーザによるセッション接続の開始・終了操作が必要であり、ユーザがユーティリティを使ってプリンタの終了操作をしない限り、デバイスサーバとのセッションが専有されてしまうため、他のクライアントPCがプリンタを使用することができないという問題が生じる。 However, this method requires the user to start and end the session connection, and unless the user uses the utility to end the printer, the session with the device server is exclusively used. The problem arises that the printer cannot be used.
かかる問題を解決するために、ブロックヘッダで特定されるデータ長のブロックデータが伝送される間だけ、特定のクライアントPCによるデータ伝送専有状態として、当該クライアントPCとプリンタとの間のデータ伝送を許可するデバイスサーバを用いたネットワークファイル管理システムが開示されている(特許文献1参照)。 In order to solve such a problem, only when block data having a data length specified by the block header is transmitted, data transmission between the client PC and the printer is permitted as a data transmission exclusive state by the specific client PC. A network file management system using a device server is disclosed (see Patent Document 1).
しかし、特許文献1に開示されたネットワークファイル管理システムでは、複数のクライアントPCから手動操作を行うことなく、ストレージを共有することはできるものの、多数のアクセス要求を処理し、特定のクライアントPCに対するデータ伝送専有状態の設定・解除を制御するために、デバイスサーバには高い処理性能が要求されるので、デバイスサーバの高価格化は避けられない。
However, in the network file management system disclosed in
上記問題に鑑みて、本発明は、ストレージやプリンタなどのデバイス(周辺機器)をネットワーク上のクライアントPCで共用する場合、サーバ側の処理負荷を低減するとともに、ユーザに手動操作を強いることなく、必要なときだけデバイスにアクセスするように制御する手段を提供することを目的とする。 In view of the above problems, the present invention reduces the processing load on the server side when a device (peripheral device) such as a storage or a printer is shared by a client PC on the network, and without forcing the user to perform manual operation. It is an object of the present invention to provide a means for controlling access to a device only when necessary.
上記目的を達するために、請求項1に記載のクライアントは、ネットワークを介してサーバに接続されたデバイスとの間でデータの入出力を行うクライアントであって、前記デバイスへの入出力を指示するアプリケーション層と、前記ネットワークを介して前記デバイスの接続情報を取得するデバイス接続情報取得手段と、前記デバイスの接続情報をもとに当該デバイスが直接接続されているようにシミュレートする接続シミュレート手段と、
前記接続シミュレート手段により接続がシミュレートされたデバイスに対する制御コマンドの入出力ポートを生成する入出力ポート生成手段と、前記アプリケーション層からの入出力指示に応じて前記デバイスに対する制御コマンドを生成する制御コマンド生成手段と、当該デバイスに対する前記入出力ポートに当該制御コマンドを送信する制御コマンド送信手段と、前記入出力ポートを前記アプリケーション層からの入出力指示の発生によりオープンし、当該入出力指示の終了によりクローズする入出力ポート制御手段と、前記入出力ポート制御手段が前記入出力ポートをオープンしたとき、前記接続シミュレート手段に対して前記サーバとのセッション開始を指示するセッション開始手段と、前記入出力ポート制御手段が前記入出力ポートをクローズしたとき、前記接続シミュレート手段に対して前記サーバとのセッション終了を指示するセッション終了手段とを備えることを特徴とする。
In order to achieve the above object, the client according to
Input / output port generation means for generating an input / output port of a control command for a device whose connection is simulated by the connection simulation means, and control for generating a control command for the device in response to an input / output instruction from the application layer Command generation means, control command transmission means for transmitting the control command to the input / output port for the device, and opening the input / output port upon generation of an input / output instruction from the application layer, and ending the input / output instruction An input / output port control means that is closed by the input / output port, a session start means that instructs the connection simulating means to start a session with the server when the input / output port control means opens the input / output port; The output port control means includes the input / output port. When closing the, characterized in that it comprises a session termination means for instructing session end with the server to the connection simulating means.
また、上記目的を達するために、請求項7に記載のデバイス共有システムは、デバイスと、サーバと、ネットワークを介して前記サーバに接続された前記デバイスとの間でデータの入出力を行うクライアントから構成されるデバイス共有システムにおいて、前記クライアントは、前記デバイスへの入出力を指示するアプリケーション層と、前記ネットワークを介して前記デバイスの接続情報を取得するデバイス接続情報取得手段と、前記デバイスの接続情報をもとに当該デバイスが直接接続されているようにシミュレートする接続シミュレート手段と、前記接続シミュレート手段により接続がシミュレートされたデバイスに対する制御コマンドの入出力ポートを生成する入出力ポート生成手段と、前記アプリケーション層からの入出力指示に応じて前記デバイスに対する制御コマンドを生成する制御コマンド生成手段と、当該デバイスに対する前記入出力ポートに当該制御コマンドを送信する制御コマンド送信手段と、前記入出力ポートを前記アプリケーション層からの入出力指示の発生によりオープンし、当該入出力指示の終了によりクローズする入出力ポート制御手段と、前記入出力ポート制御手段が前記入出力ポートをオープンしたとき、前記接続シミュレート手段に対して前記サーバとのセッション開始を指示するセッション開始手段と、
前記入出力ポート制御手段が前記入出力ポートをクローズしたとき、前記接続シミュレート手段に対して前記サーバとのセッション終了を指示するセッション終了手段と、から構成されることを特徴とする。
In order to achieve the above object, the device sharing system according to claim 7 includes: a client that inputs and outputs data between a device, a server, and the device connected to the server via a network. In the device sharing system configured, the client includes an application layer that instructs input / output to the device, device connection information acquisition means for acquiring connection information of the device via the network, and connection information of the device Connection simulation means for simulating that the device is directly connected based on the above, and input / output port generation for generating control command input / output ports for the device whose connection is simulated by the connection simulation means And input / output instructions from the application layer A control command generating means for generating a control command for the device, a control command transmitting means for transmitting the control command to the input / output port for the device, and an input / output instruction from the application layer to the input / output port. I / O port control means that opens upon occurrence and closes upon completion of the I / O instruction, and when the I / O port control means opens the I / O port, a session with the server with respect to the connection simulation means Session start means for instructing start;
When the input / output port control means closes the input / output port, the connection simulation means comprises session end means for instructing the end of the session with the server.
また、上記目的を達するために、請求項13に記載のデバイス共有方法は、ネットワークを介してサーバに接続されたデバイスをクライアントによって共有するデバイス共有方法であって、前記ネットワークを介して前記デバイスの接続情報を取得するデバイス接続情報取得ステップと、前記デバイスの接続情報をもとに当該デバイスが直接接続されているようにシミュレートする接続シミュレートステップと、前記接続シミュレートステップにおいて接続がシミュレートされたデバイスに対する制御コマンドの入出力ポートを生成する入出力ポート生成ステップと、前記デバイスへの入出力を指示するアプリケーション層からの入出力指示に応じて前記デバイスに対する制御コマンドを生成する制御コマンド生成ステップと、当該デバイスに対する前記入出力ポートに当該制御コマンドを送信する制御コマンド送信ステップと、前記入出力ポートを前記アプリケーション層からの入出力指示の発生によりオープンし、当該入出力指示の終了によりクローズする入出力ポート制御ステップと、前記入出力ポート制御ステップにおいて前記入出力ポートがオープンされたとき、前記接続シミュレートステップにおいて前記サーバとのセッション開始を指示させるセッション開始ステップと、前記入出力ポート制御ステップにおいて前記入出力ポートがクローズされたとき、前記接続シミュレートステップにおいて前記サーバとのセッション終了を指示させるセッション終了ステップと、を実行することを特徴とする。 In order to achieve the above object, a device sharing method according to claim 13 is a device sharing method in which a device connected to a server via a network is shared by a client, the device sharing method via the network. Device connection information acquisition step for acquiring connection information, connection simulation step for simulating that the device is directly connected based on the connection information of the device, and connection simulation in the connection simulation step An input / output port generation step for generating an input / output port of a control command for the device that has been specified, and a control command generation for generating a control command for the device in response to an input / output instruction from an application layer that instructs input / output to the device Steps and the device A control command transmission step for transmitting the control command to the input / output port, and an input / output port control for opening the input / output port when an input / output instruction is generated from the application layer and closing the input / output instruction. A session start step for instructing a session start with the server in the connection simulation step when the input / output port is opened in the input / output port control step, and the input / output port in the input / output port control step. When the port is closed, a session ending step for instructing the end of the session with the server in the connection simulating step is executed.
本発明によれば、クライアントPCのユーティリティなどでユーザが手動操作して行っていたセッション接続の開始・終了の操作が不要となり、ユーザはデバイスがネットワーク共有されていることを意識せずに使用することが可能となる。 According to the present invention, there is no need to start / end the session connection that is manually performed by the user using a utility of the client PC, and the user can use the device without being aware that the device is shared over the network. It becomes possible.
また、ネットワーク上でデバイスを共有する際、特許文献1に開示されているような高い処理機能をデバイスサーバへ組み込む必要がなくなるため、デバイスサーバの負荷が軽減され、安価なネットワークシステム構成で複数のクライアントPCからデバイスを共有することが可能となる。
Further, when sharing a device on a network, it is not necessary to incorporate a high processing function as disclosed in
さらに、本発明によれば、クライアントPCは、デバイスドライバをロードするときのタイミングとデバイスにアクセスするときのセッション接続のタイミングを切り離して実行するので、必要なときだけデバイスサーバとの間でセッション接続が行われることになり、
一台のクライアントPCによるセッション接続の専有時間が短縮され、複数台のクライアントPCによってネットワーク共有されているデバイスを効率的に使用することができる。
Furthermore, according to the present invention, the client PC executes the timing of loading the device driver separately from the timing of session connection when accessing the device, so that the session connection with the device server is performed only when necessary. Will be done,
The exclusive time for session connection by one client PC is shortened, and a device shared by a network by a plurality of client PCs can be used efficiently.
以下、本発明の第1の実施の形態について図面を参照して詳細に説明する。 Hereinafter, a first embodiment of the present invention will be described in detail with reference to the drawings.
図1は、本発明を実現するためのネットワークシステムの概略構成であり、PC100A,PC100Bと、デバイスサーバ200と、プリンタ300(デバイス)などから構成されている。
FIG. 1 shows a schematic configuration of a network system for realizing the present invention, which includes a
このネットワークシステムでは、デバイスサーバ200とプリンタ300をUSB(Universal
Serial Bus)やIEEE1394などのインターフェースに準拠した接続ケーブル400でローカル接続する。また、デバイスサーバ200とPC100(PC100A,PC100B)は、有線又は無線のネットワーク500で接続する。
In this network system, the
(Serial Bus) and IEEE 1394, etc., are connected locally with a
また、図1のネットワークシステムでは、デバイスサーバ200、プリンタ300をそれぞれ別体の装置で構成しているが、この構成に限定されるものではなく、同等の機能を実現できる構成であれば種々の構成を採り得ることは勿論である。例えば、デバイスサーバ200をプリンタ300のケーシング内に収まるように一体構造としても良い。
In the network system of FIG. 1, the
なお、以降の説明においては、クライアントPCのOSをWindows(登録商標)、デバイスをプリンタ、デバイスサーバとデバイスの接続インターフェースをUSBとした場合の構成で説明するが、これらに限定されず、別のOSや接続インターフェースを使用しても良い。 In the following description, the client PC OS is Windows (registered trademark), the device is a printer, and the connection interface between the device server and the device is USB. However, the present invention is not limited to this. An OS or a connection interface may be used.
次に、図1のネットワークシステムを構成する各装置について順次説明してゆく。 Next, each device constituting the network system of FIG. 1 will be described sequentially.
まず、クライアントであるPC100について説明する。PC100(PC100A,PC100B)は、例えば、パーソナルコンピュータのような装置であり、ネットワーク500と接続し、デバイスサーバ200を介してプリンタ300を利用することが可能な構成となっている。
First, the
図2は、PC100(PC100A,PC100B)のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
FIG. 2 is a block diagram illustrating an example of a hardware configuration and a software configuration of the PC 100 (
PC100は、CPU101、入力部102、表示部103、メモリ104、通信部105、外部記憶部106などから構成されており、これらが内部バス107で接続されている。
The
外部記憶部106は、OS110、アプリケーションプログラム111、本発明を実現するためのソフトウェア群112〜118(後述)など各種ソフトウェアが記録されている。ここで、アプリケーションプログラム111とは、プリンタ300に対して印刷処理を実行させることができるソフトウェアプログラムを指す。
The
外部記憶部106に記憶されたこれらソフトウェアは、CPU101の制御に従い、メモリ104上に読み出されて実行される。
The software stored in the
通信部105は、ネットワーク500(有線又は無線ネットワーク)に接続するためのインターフェースであり、デバイスサーバ200との間でデータ通信を行うことで、PC100からデバイスサーバ200を介したプリンタ300へのアクセスを可能とする。
The
本発明を実現するためのソフトウェア群112〜118について説明する。
The
ネットワークインターフェース層112は、Ethernet(登録商標)のような有線ネットワーク、若しくは、IEEE802.11aやIEEE802.11bのような無線ネットワークなどネットワーク500に対応したネットワークパケットによる送受信や通信制御を行うためのソフトウェアである。
The
ネットワークプロトコル層113は、USBパケットに対してIP(Internet Protocol)ヘッダの付加、取り外しの処理を行い、ネットワーク500を介して接続されているデバイスサーバ200との間のデータ通信を制御するソフトウェアである。
The
常駐サービス114は、クライアントPC100が起動するとともに動作を開始してデバイスサーバ200を監視するソフトウェアである。また、後述するUSB仮想バスドライバ115をロードするソフトウェアである。
The
さらに、常駐サービス114は、ネットワークプロトコル層113とネットワークインターフェース層112を介してUDPなどを用いてデバイスサーバ200と通信し、デバイスサーバ200との接続状態及びプリンタ300との接続状態を定期的に確認する。
Furthermore, the
ここで、デバイスサーバ200との間の接続状態とは、ネットワーク500との物理的な接続状態及び他のクライアントPCとのセッションの有無などが含まれる。また、プリンタ300の接続状態とは、プリンタ300とでデバイスサーバ200をローカル接続している接続ケーブル400の接続状態及びプリンタ300の電源オン・オフなどの状態が含まれる。
Here, the connection state with the
USB仮想バスドライバ115は、クライアントPCに擬似的にプリンタ300(デバイス)が接続されたようにシミュレートし、OS110のモジュールであるUSBプリンタクラスドライバ116をロードするソフトウェアである。また、後述するUSBフィルタドライバ117からの通知に基づいてデバイスサーバ200との間のセッション制御を行うソフトウェアである。
The USB
USBプリンタクラスドライバ116は、プラグアンドプレイイベントを生成し、また、制御コマンドを送受信するためのUSBポートを作成するとともに、その上位にUSBフィルタドライバ117及びプリンタドライバ118をロードするソフトウェアである。さらに、後述するプリンタドライバ118で生成される制御コマンドをUSBパケットに変換し、USBパケットを制御コマンドに変換するソフトウェアである。
The USB
USBフィルタドライバ117は、USBポートの「オープン」、「クローズ」やUSBポートを通過する制御コマンドの送受信を監視するソフトウェアである。また、監視した情報(以下、監視結果)をもとに、USB仮想バスドライバ115と連携することで、セッション接続の開始、終了を制御するソフトウェアである。
The
なお、セッション接続の開始、終了は、USBポートの「オープン」、「クローズ」の監視結果をもとにして制御するが、さらにUSBポートを通過する制御コマンドの送受信の監視結果を組み合わせて制御することも可能である。本発明の実施の形態では、USBポートの「オープン」、「クローズ」の監視結果とUSBポートを通過する制御コマンドの送受信の監視結果を組み合わせて制御する場合を例にして説明する。 The start and end of the session connection is controlled based on the monitoring results of “open” and “closed” of the USB port, but is further controlled by combining the monitoring results of transmission and reception of control commands passing through the USB port. It is also possible. In the embodiment of the present invention, an example will be described in which control is performed by combining USB port “open” and “closed” monitoring results and control command transmission / reception monitoring results passing through the USB port.
プリンタドライバ118は、OS110やアプリケーションプログラム111など上位層のソフトウェア(以下、上位層のソフトウェア)の指示により、デバイスであるプリンタ300に対する制御コマンドを生成し、この制御コマンドに対する応答を待つソフトウェアである。また、上位層のソフトウェアの指示に応じてUSBポートの「オープン」、「クローズ」を制御するソフトウェアである。
The
次に、デバイスサーバ200について説明する。デバイスサーバ200は、PC100A,100Bとデバイスであるプリンタ300と間の接続制御を行う装置である。
Next, the
図3は、デバイスサーバ200のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
FIG. 3 is a block diagram illustrating an example of the hardware configuration and software configuration of the
デバイスサーバ200は、CPU201、入力部202、表示部203、ROM204、RAM205、通信部206、USB
I/F(インターフェース)207などから構成されており、これらが内部バス208で接続されている。
The
An I / F (interface) 207 is configured, and these are connected by an
ROM(Read Only Memory)204には、OS210、制御プログラム211、本発明を実現するためのソフトウェア群212〜213(後述)など各種ソフトウェアが記録されており、これらソフトウェアは、CPU201の制御に従い、RAM205上に読み出されて実行される。
A ROM (Read Only Memory) 204 stores various software such as an
USBインターフェース207は、接続ケーブル400を介してプリンタ300とローカル接続するためのインターフェースである。
The
通信部206は、ネットワーク500(有線又は無線ネットワーク)に接続してPC100との間でデータ通信するためのインターフェースである。
The
本発明を実現するためのソフトウェア群212〜213について説明する。
The
通信層212は、ネットワークに接続された通信部206の制御を行うとともに、ネットワーク500に接続されているPC100との間のセッション制御やネットワークパケットによる通信を行うソフトウェアである。
The
また、USBコマンド層213との間で通信するため、ネットワークパケットとUSBパケットとの変換を行う。ネットワークパケットはUSBパケットにIPヘッダを付加して作成するため、変換にはIPヘッダの取り付け及び取り外しを行う。
In addition, in order to communicate with the
USBコマンド層213は、USBパケットに基づいて、プリンタ300との間でデータ通信を行うソフトウェアである。
The
なお、通信層212、USBコマンド層213は、プリンタ300内に内蔵する構成であっても良い。また、通信層212の機能を備えたソフトウェアを別筐体内に設け、デバイス(プリンタ300)に接続可能なインターフェースを有した外付けアダプタの形態として構成してもよい。この場合は、USBコマンド層213の機能を持つソフトウェアは、プリンタ300側のRAMや外部記憶装置などに記録しておく構成とする。
Note that the
プリンタ300は、PC100で作成した文字データや画像データ、図形データなどを紙やシートなどの媒体に印刷する装置(デバイス)である。
The
なお、本発明の実施の形態は、デバイスとしてプリンタを例に説明しているが、例えば、ストレージやスキャナなど、別の機能を備えたデバイスであってもよく、更に、多機能周辺装置(MFP)のように複数の機能を備えたデバイスであってもよい。 In the embodiment of the present invention, a printer is described as an example of the device. However, for example, a device having another function such as a storage or a scanner may be used. And a device having a plurality of functions.
ここで、上述した図2及び図3で各ソフトウェア構成を説明したPC100とデバイスサーバ200間の通信、PC100とプリンタ300間の通信の大まかな流れについて図4を参照しながら説明する。
Here, the general flow of communication between the
まず、PC100からプリンタ300へデータ送信を行う場合について説明する。
First, a case where data transmission from the
PC100においてプリンタ300へのアクセス要求が発生すると、プリンタドライバ118は、アクセス要求の内容に応じて制御コマンドを生成し、USBポートを「オープン」させる。そして、生成した制御コマンドをUSBポートからUSBフィルタドライバ117を経由してUSBプリンタクラスドライバ116へ送る。
When an access request to the
USBフィルタドライバ117は、USBポートが「オープン」し、制御コマンドが当該USBポートを通過するとこれを検知してUSB仮想バスドライバ115に通知し、USB仮想バスドライバ115は、デバイスサーバ200との間でセッション接続が開始されていない場合、デバイスサーバ200に対してセッション開始要求を送る。
When the USB port is “open” and the control command passes through the USB port, the
USBプリンタクラスドライバ116は、USBフィルタドライバ117を経由して送られてきた制御コマンドをUSBパケットに変換し、USB仮想バスドライバ115へ送る。
The USB
USB仮想バスドライバ115では、デバイスサーバ200との間でセッション接続を開始すると、USBプリンタクラスドライバ116から送られてくるUSBパケットをネットワークプロトコル層113に送る。
When the USB
ネットワークプロトコル層113は、USB仮想バスドライバ115から送られてきたUSBパケットにIPヘッダを付加し、ネットワーク500に適した形式のデータであるネットワークパケットを作成する。
The
ネットワークインターフェース層116は、ネットワークプロトコル層115で作成されたネットワークパケットをネットワーク500を介してデバイスサーバ200に送出する。
The
このように、デバイスサーバ200の通信層212とPC100のUSB仮想バスドライバ115の間は、信頼性のあるTCPプロトコルを用いており、セッション接続の開始・終了は、PC100のUSBフィルタドライバ117がUSBポートの「オープン」、「クローズ」の状態やUSBポートにおけるコマンドデータの送受信状態を監視し、USB仮想バスドライバ115と連携することによって制御している。
As described above, the reliable TCP protocol is used between the
サーバ200では、まず、通信層212で、PC100からネットワーク500を介して送信されたネットワークパケットを受信し、ネットワークパケットからIPヘッダを取り外すことでUSBパケットに変換し、これをUSBコマンド層213へ送る。
In the
USBコマンド層213では、通信層212から送られたUSBパケットを、接続ケーブル400を介してプリンタ300へ送る。
In the
プリンタ300は、デバイスサーバ200から送られてきたUSBパケットを制御コマンドに変換して解析し、解析結果に応じた印刷処理を実行する。
The
次に、プリンタ300からPC100へデータ送信(応答)を行う場合について説明する。
Next, a case where data transmission (response) is performed from the
上述した印刷処理などを行ったプリンタ300は、その結果をPC100に対する応答コマンドとしてUSBパケットでデバイスサーバ200へ送る。
The
デバイスサーバ200では、USBコマンド層213がプリンタからの応答コマンドであるUSBパケットを受け取り、それを通信層212へ送る。
In the
通信層212では、USBコマンド層213からのUSBパケットにIPヘッダを付加し、ネットワーク500に適した形式のデータであるネットワークパケットを作成し、ネットワーク500を介してPC100に送出する。
In the
このようにして、PC100とプリンタ300との間でデバイスサーバ200を介したデータ通信が実行されることになる。
In this way, data communication is executed between the
次に、PC100(PC100A,PC100B)の基本制御フローについて、図5及び図6を参照しながら説明する。まず、図5は、PC100がプリンタ300にアクセスして印刷処理を実行するために必要なデバイスドライバをロードするまでの制御動作の手順を示すフローチャートである。
Next, a basic control flow of the PC 100 (
ユーザがPC100を起動すると、PC100内のソフトウェア群の中の常駐サービス114が動作し、UDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する。(ステップS501)。
When the user activates the
常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200が他のクライアントPCとセッション接続中か否か判断するとともに、プリンタ300との接続状態を判断する(ステップS502)。
Based on the response from the
プリンタ300との接続が正常な状態でない、又は、デバイスサーバ200が他のクライアントPCとセッション接続中の場合(ステップS502でNo)、再び、ステップS501の処理に戻り、定期的にデバイスサーバ200の状態及びプリンタ300の接続状態の確認を行う。
If the connection with the
プリンタ300との接続が正常であり、デバイスサーバ200が他のクライアントPCとセッション接続中でない場合(ステップS502でYes)、常駐サービス114はUSB仮想バスドライバ115をロードする(ステップS503)。
When the connection with the
常駐サービス114は、USB仮想バスドライバ115をロードが完了すると、デバイスドライバのマウント命令を発行する(ステップS504)。
When the loading of the USB
USB仮想バスドライバ115は、デバイスドライバのマウント命令が発行されると、デバイスサーバ200に対してセッション開始要求を送る(ステップS505)。
When the device virtual device driver mount command is issued, the USB
デバイスサーバ200との間でセッション接続が開始できなかった場合(ステップS506でNo)、常駐サービス114は、アンマウント命令を発行し(ステップS513)、USB仮想バスドライバ115をアンロードして(ステップS514)、再びステップS501の処理に戻る。
If the session connection cannot be started with the device server 200 (No in step S506), the
デバイスサーバ200との間のセッション接続が開始されると(ステップS506でYes)、USB仮想バスドライバ115は、デバイスサーバ200に対して、プリンタ300のデバイスドライバをロードするために必要となるデバイス情報を要求する(ステップS507)。
When the session connection with the
このとき、デバイスサーバ200は、PC100からのデバイス情報の要求をプリンタ300に送り、プリンタ300からデバイス情報の応答があると、このデバイス情報をPC100に返す。
At this time, the
PC100では、USB仮想バスドライバ115がデバイス情報の応答を受けて、プリンタ300が擬似的に接続されたようにシミュレートし、取得したデバイス情報に基づき、USBプリンタクラスドライバ116をロードする。(ステップS508)。
In the
USBプリンタクラスドライバ116は、USBポートを作成するとともに、その上位にUSBフィルタドライバ117及びプリンタドライバ118をロードする(ステップS509、ステップS510)。
The USB
プリンタドライバ118のロードが完了すると、USB仮想バスドライバ115は、デバイスサーバ200に対してセッション終了要求を送る(ステップS511)。そして、デバイスサーバ200との間のセッションの終了処理を行い、PC100とデバイスサーバ200との間のセッションを終了する(ステップS512)。
When the loading of the
セッションが終了すると、PC100には、プリンタ300にアクセスして印刷するために必要なデバイスドライバが全てロードされた状態となる。そして、上位層のソフトウェア)から実行指示(以下、印刷実行命令)が発行されるまでの間、待機状態となる。
When the session ends, the
次に、PC100(PC100A,PC100B)において、上位層のソフトウェアから印刷実行命令が発行されてプリンタ300に印刷処理を実行させるときの制御動作の手順を図6に示すフローチャートを参照しながら説明する。
Next, in the PC 100 (
なお、上述した図5で説明したように、PC100には、必要なデバイスドライバが全てロードされており、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態にあるものとして説明する。
Note that, as described with reference to FIG. 5 described above, it is assumed that all necessary device drivers are loaded in the
PC100によりプリンタ300で印刷処理を実行させるとき、上位層のソフトウェアから印刷実行命令が発行される(ステップS601)。
When the
上位層のソフトウェアから印刷実行命令が発行されると、PC100のプリンタドライバ118は、印刷実行命令に応じた制御コマンドを生成し、USBポートを「オープン」する(ステップS602)。
When a print execution command is issued from the upper layer software, the
そして、生成した制御コマンドをUSBポートからUSBフィルタドライバ117を経由してプリンタクラスドライバ116に送る。プリンタクラスドライバ116では、制御コマンドをUSBパケットに変換し、USB仮想バスドライバ115に送る(ステップS603)。
The generated control command is sent from the USB port to the
USBフィルタドライバ117は、USBポートが「オープン」し、制御コマンドが当該USBポートを通過するとこれを検知してUSB仮想バスドライバ115に通知し、USB仮想バスドライバ115は、セッションが接続されていない場合、デバイスサーバ200に対してセッション開始要求を送る(ステップ604)。
When the USB port is “open” and the control command passes through the USB port, the
このセッション開始要求に対し、デバイスサーバ200から「NG」応答があり、セッション接続を開始できない場合(ステップS605でNo)、ステップS604へ戻り、セッション接続が開始可能となるまで、デバイスサーバ200に対して定期的にセッション開始要求を送る。
If there is an “NG” response from the
一方、デバイスサーバ200から「OK」応答があると(ステップS605でYes)、PC100はデバイスサーバ200とのセッション接続を開始する(ステップS606)。これによって、PC100は、デバイスサーバ200を介してプリンタ300へアクセスして印刷処理が可能となる。
On the other hand, if there is an “OK” response from the device server 200 (Yes in step S605), the
PC100は、上位層のソフトウェアからの指示に応じた制御コマンドを生成してデバイスサーバ200に送り、プリンタ300は、デバイスサーバ200から受信した制御コマンドに応じた印刷処理を実行し、その結果などをデバイスサーバ200に応答する(ステップS607)。
The
そして、上位層のソフトウェアから終了指示(以下、印刷終了命令)が発行されるまでステップS607の処理が繰り返される(ステップS608でNo)。 Then, the process of step S607 is repeated until an end instruction (hereinafter referred to as a print end instruction) is issued from the upper layer software (No in step S608).
PC100の上位層のソフトウェアから印刷終了命令が発行されるとプリンタドライバ118は印刷終了命令に応じた制御コマンド(以下、終了コマンド)を生成し、USB仮想バスドライバ115を介して終了コマンドをデバイスサーバ200に送信する(ステップS608でYes)。
When a print end command is issued from the upper layer software of the
このとき、デバイスサーバ200では、PC100から受信した終了コマンドをプリンタ300に送信し、プリンタ300からの終了コマンドに対する応答を受信してPC100Aに送る処理を実行する。
At this time, the
PC100のプリンタドライバ118は、終了コマンドに対する応答を受信すると、USBポートを「クローズ」し、USBフィルタドライバ117は、USBポートの「クローズ」をUSB仮想バスドライバ115に通知する(ステップS609)。
Upon receiving a response to the end command, the
USB仮想バスドライバ115は、USBポート「クローズ」の通知を受けると、デバイスサーバ200に対してセッション終了要求を送る(ステップS610)。
Upon receiving the notification of the USB port “closed”, the USB
デバイスサーバ200からセッション終了「OK」の応答を受信すると、USB仮想バスドライバ115は、PC100Aとデバイスサーバ200との間のセッションを終了する(ステップS611)。そして、再び、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。
When receiving the session end “OK” response from the
なお、クライアントPCは、セッションが終了した後も常駐サービス114によって定期的に(例えば、1分間隔)デバイスサーバ200との間の接続状態を監視し、プリンタ300との接続状態を確認している。
Note that the client PC regularly monitors the connection state with the
従って、デバイスサーバ200との間のネットワーク500が終了、電源断、又は、プリンタ300の接続ケーブル断、電源断などの異常を検出した場合、常駐サービス114からアンマウント命令を発行し、ロードされているデバイスドライバ(プリンタドライバ118、USBフィルタドライバ117、USBプリンタクラスドライバ116、USB仮想デバイスドライバ115)をアンロードするようにしてもよい。
Therefore, when the
本実施の形態では、デバイスドライバのロードが完了した際にセッション接続を一旦終了させる(図5参照)。そして、クライアントPCにおけるUSBポートの「オープン」及び「クローズ」の状態と当該USBポートを通過する制御コマンドの送受信状態に基づいてセッション接続の開始、終了を行うことを特徴とする(図6参照)。 In this embodiment, the session connection is temporarily terminated when the device driver loading is completed (see FIG. 5). The session connection is started and ended based on the “open” and “closed” states of the USB port in the client PC and the transmission / reception state of the control command passing through the USB port (see FIG. 6). .
次に、デバイスサーバ200の制御動作について図7を参照しながら説明する。
Next, the control operation of the
デバイスサーバ200では、PC100からのパケットの受信を監視している。
The
セッション開始要求のパケットを受信した場合(ステップS701でYes)、他のPC100とセッション接続中であるか否かを確認する(ステップS702)。 When a session start request packet is received (Yes in step S701), it is confirmed whether or not a session connection is established with another PC 100 (step S702).
既にセッション接続が開始されている場合(ステップS702でYes)、このPC100に対して「NG」を返す(ステップS703)。 If the session connection has already been started (Yes in step S702), “NG” is returned to the PC 100 (step S703).
セッション接続が開始されていない場合(ステップS702でNo)、このPC100とセッション接続を開始し(ステップ704)、セッション接続が完了すると、応答コマンドとして「OK」を返す(ステップS705)。
If the session connection is not started (No in step S702), the session connection with the
一方、上述したステップS701の処理において、セッション開始終了要求以外のパケットを受信したが送られてきた場合(ステップS701でNo)、セッション終了要求であれば(ステップS706でYes)、セッション接続中のPC100との間のセッションを終了し(ステップS707)、応答コマンドとして「OK」を返す(ステップS708)。
On the other hand, if a packet other than the session start / end request is received but sent in the process of step S701 described above (No in step S701), if it is a session end request (Yes in step S706), the session is being connected. The session with the
一方、上述したステップS706の処理において、セッション終了要求以外のパケットを受信した場合(ステップS706でNo)、そのパケットの種類に応じた応答処理を実行する(ステップS709)。 On the other hand, when a packet other than the session end request is received in the process of step S706 described above (No in step S706), a response process corresponding to the type of the packet is executed (step S709).
次に、上述したネットワークシステムにおいて、PC100Aからプリンタ300にアクセスして印刷処理を実行させて終了するまでの具体的なタイミングチャートについて説明する。
Next, in the network system described above, a specific timing chart from when the
簡略化して分り易く説明するために、まず、PC100A一台だけがプリンタ300にアクセスする場合(1対1で接続する場合)について、図8を参照しながら説明する。
For the sake of simplification and easy-to-understand explanation, first, a case where only one
はじめに、図5で示したように、PC100において、プリンタ300のアクセスに必要なデバイスドライバが全てロードされ、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となるまでの過程を説明する。
First, as shown in FIG. 5, a process until all device drivers necessary for accessing the
ここでは、他のクライアントPCからのセッション開始要求の有無を考慮せず、PC100Aからのセッション開始要求に対して、デバイスサーバ200は常に「OK」を応答するものとする。
Here, it is assumed that the
ユーザがPC100Aを起動すると、PC100A内のソフトウェア群の中の常駐サービス114が動作する。そして、UDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する(タイミングT801)。
When the user activates the
PC100Aの常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200が他のクライアントPCとセッション接続中でなく、プリンタ300が正常に接続されていることを確認すると、USB仮想バスドライバ115をロードし、デバイスドライバのマウント命令を発行する(タイミングT802)。
When the
USB仮想バスドライバ115のロードが完了すると、USB仮想バスドライバ115は、デバイスサーバ200に対してセッション開始要求を送る(タイミングT803)。
When the loading of the USB
デバイスサーバ200が、PC100Aに対して「OK」を応答すると、PC100Aとデバイスサーバ200の間のセッション接続が開始される(タイミングT804)。
When the
セッション接続が開始され、デバイスサーバ200を介してプリンタ300へのアクセスが可能となると、PC100Aは、デバイスサーバ200に対してデバイス情報を要求する(タイミングT805)。
When the session connection is started and the
デバイスサーバ200は、PC100Aからのデバイス情報の要求をプリンタ300に送り(タイミングT806)、プリンタ300からデバイス情報の応答があると(タイミングT807)、このデバイス情報をPC100Aに返す(タイミングT808)。
The
PC100Aでは、取得したデバイス情報に基づき、USB仮想バスドライバ115によって擬似的にプリンタ300が接続されたようにシミュレートし、OS110のモジュールであるUSBプリンタクラスドライバ116をロードする。
In the
USBプリンタクラスドライバ116は、USBポートを作成するとともに、その上位にUSBフィルタドライバ117及びプリンタドライバ118をロードする(タイミングT809)。
The USB
プリンタドライバ118のロードが完了すると、USB仮想バスドライバ115は、デバイスサーバ200に対してセッション終了要求を送り、PC100Aとデバイスサーバ200との間のセッションを終了する(タイミングT810)。
When the loading of the
この時点で、PC100Aには、プリンタ300のアクセスに必要なデバイスドライバが全てロードされ、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。
At this time, all the device drivers necessary for accessing the
続いて、図6で示したように、待機状態のPC100Aがプリンタ300に印刷処理を実行させるまでの過程を説明する。
Next, as shown in FIG. 6, a process until the
プリンタ300に印刷処理を実行させるため、上位層のソフトウェアから印刷実行命令が発行されると(タイミングT811)、PC100Aのプリンタドライバ118は、印刷実行命令に応じた制御コマンドを生成し、USBポートを「オープン」する(タイミングT812)。
When a print execution command is issued from upper layer software to cause the
そして、生成した制御コマンドをUSBポートからUSBフィルタドライバ117を経由してUSBプリンタクラスドライバ116に送る。USBプリンタクラスドライバ116では、送られてきた制御コマンドをUSBコマンドに変換してUSB仮想バスドライバ115に送る(タイミングT813)。
The generated control command is sent from the USB port to the USB
USBフィルタドライバ117は、USBポートが「オープン」し、制御コマンドが当該USBポートを通過するとこれを検知してUSB仮想バスドライバ115に通知し、セッションが接続されていない場合、USB仮想バスドライバ115は、デバイスサーバ200に対してセッション開始要求を送る(タイミングT814)。
When the USB port is “open” and the control command passes through the USB port, the
デバイスサーバ200から、セッション開始要求に対する「OK」応答を受信すると、PC100Aはデバイスサーバ200との間のセッション接続を開始する(タイミングT815)。
When receiving an “OK” response to the session start request from the
PC100AのUSB仮想バスドライバ115では、デバイスサーバ200から「OK」応答があり、セッション接続が開始されると、プリンタ300に対する制御コマンドをデバイスサーバ200へ送信する(タイミングT816)。
When there is an “OK” response from the
デバイスサーバ200は、制御コマンドを受信すると、これをプリンタ300に送信する(タイミングT817)。プリンタ300は、この制御コマンドに応じて印刷処理を実行し、その実行結果の応答をデバイスサーバ200に返す(タイミングT818)。デバイスサーバ200はプリンタ300からの応答をPC100Aに送る(タイミングT819)。
Upon receiving the control command, the
この後、デバイスサーバ200を介してPC100Aとプリンタ300との間でデータ通信が行われ、印刷処理が実行される。
Thereafter, data communication is performed between the
PC100Aの上位層のソフトウェアから印刷終了命令が発行されると、プリンタドライバ118は、終了コマンドを生成し、USB仮想バスドライバ115を介してデバイスサーバ200に送信する(タイミングT820)。
When a print end command is issued from the upper layer software of the
デバイスサーバ200は、受信した終了コマンドをプリンタ300に送信し(タイミングT821)、プリンタ300から終了コマンドに対する応答を受信すると(タイミングT822)、この応答をPC100Aに送る(タイミングT823)。
The
PC100Aのプリンタドライバ118は、終了コマンドに対する応答を受信すると、USBポートを「クローズ」し、USBフィルタドライバ117は、USBポートの「クローズ」をUSB仮想バスドライバ115に通知する(タイミングT824)。
Upon receiving a response to the end command, the
USB仮想バスドライバ115は、USBポート「クローズ」の通知を受けると、デバイスサーバ200に対してセッション終了要求を送る(タイミングT825)。そして、デバイスサーバ200との間でセッション終了処理を実行し、セッション終了「OK」の応答を受信すると、PC100Aとデバイスサーバ200との間のセッションが終了する(タイミングT826)。
Upon receiving the notification of the USB port “closed”, the USB
次に、実際の運用により近いケースとして、前述のネットワークシステムにおいて、複数台のPC100(PC100A,PC100B)がプリンタ300にアクセスする場合(N対1で接続する場合)について、図9を参照しながら説明する。
Next, as a case closer to the actual operation, a case where a plurality of PCs 100 (
図9は、PC100Aがセッション接続中のとき、若しくは、プリンタ300にアクセス中のときに、別のPC100Bからプリンタ300にアクセスしたときのタイミングチャートを示した説明図である。なお、PC100Aについては、前述した図8と同じ動作であるため、詳細な説明は省略する。
FIG. 9 is an explanatory diagram showing a timing chart when the PC 300A accesses the
まず、PC100Aがデバイスドライバのロード中に、PC100Bからプリンタ300にアクセスしようとした場合について説明する。
First, a case where the
PC100Aは、常駐サービス114によりUDPなどでデータ通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する(タイミングT901)。
The
PC100Bも同様に、常駐サービス114によりUDPなどでデータ通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する(タイミングT902)。
Similarly, the
PC100Aの常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200が他のクライアントPCとセッション接続中でないことを確認すると、USB仮想バスドライバ115をロードし、デバイスドライバのマウント命令を発行する(タイミングT903)。
When the
ここまでは、PC100A、PC100Bはともに、常駐サービス114によりUDPなどでデバイスサーバ200とデータ通信するため、セッションを使用(専有)することはない。
Up to this point, both the
ここで、PC100Aにおいて、ロードが完了したUSB仮想バスドライバ115からデバイスサーバ200に対してセッション開始要求が送られ、デバイスサーバ200から「OK」の応答があると、PC100Aとデバイスサーバ200との間でセッション接続が開始される(タイミングT904)。
Here, in the
PC100Aとデバイスサーバ200との間でセッション接続を開始すると、PC100Aがデバイスドライバのロードを完了するまでの間、デバイスサーバ200と間のセッションの接続は継続される(タイミングT905)。
When the session connection is started between the
PC100Bが、USB仮想バスドライバ115をロードし、デバイスドライバのマウント命令を発行し(タイミングT906)、デバイスサーバ200に対してセッション開始要求を送った場合、既に、PC100Aとの間でセッション接続が開始されているため、PC100Aにおいてデバイスドライバのロードが完了するまでの間(セッションが終了されるまでの間)、デバイスサーバ200はPC100Bに対して「NG」応答を返す(タイミングT907)。
When the
PC100Bでは、「NG」応答を受信すると、常駐サービス114によりデバイスサーバ200のセッションの接続状態を定期的に確認する。
When the
デバイスサーバ200では、PC100Aにおいて必要なデバイスドライバのロードが完了し、セッション接続が終了した後(タイミングT908)、PC100Bからセッション開始要求を受信すると、PC100Bとの間でセッション接続を開始し(タイミングT909)、PC100Bがデバイスドライバのロードを完了するまでの間、PC100Bと間のセッション接続は継続される。
When the
デバイスサーバ200は、PC100Bとの間でセッション接続中は、上述と同様にPC100Aなど他のクライアントPCからのセッション開始要求に対して「NG」応答を返す。
During a session connection with the
上述したように、セッション接続中のクライアントPCに必要なデバイスドライバのロードが完了するまでの間、他のクライアントPCとの間でセッション接続を行わないため、デバイスドライバのロード中は排他制御される。また、セッション接続したときにデバイス情報を取得するので、プリンタ300の最新のデバイス情報を得ることが可能である。
As described above, since the session connection is not performed with another client PC until the loading of the device driver necessary for the client PC during the session connection is completed, the exclusive control is performed while the device driver is being loaded. . In addition, since device information is acquired when a session is connected, the latest device information of the
続いて、PC100Aがプリンタ300にアクセス中(印刷処理中)に、PC100Bからプリンタ300にアクセスしようとした場合について説明する。
Next, a case where the
この時点で、PC100A、PC100Bには、プリンタ300にアクセスして印刷するために必要なデバイスドライバが全てロードされた状態であるものとする。
At this point, it is assumed that all device drivers necessary for accessing the
まず、PC100Aでは、上位層のソフトウェアから印刷実行命令が発行され(タイミングT910)、デバイスサーバ200との間でセッション接続が開始されると(タイミングT911)、デバイスサーバ200を介してプリンタ300へのアクセスが可能となり、デバイスサーバ200に対して制御コマンドを送信し、プリンタ300で印刷処理が実行される(タイミングT912)。
First, in the
PC100Aがプリンタ300へアクセス中(印刷処理中)の間、デバイスサーバ200との間はセッション接続中のままである。
While the
このとき、PC100Bによって印刷実行命令が発行されると(タイミングT913)、PC100Aと同様に、PC100Bのプリンタドライバ118がプリンタ300に対する制御コマンドを生成し、USBポートを「オープン」する(タイミングT914)。
At this time, when a print execution command is issued by the
そして、PC100BのUSBフィルタドライバ117は、USBポートが「オープン」し、制御コマンドが当該USBポートを通過するとこれを検知して仮想バスドライバ115に通知し、仮想バスドライバ115がデバイスサーバ200に対してセッション開始要求を送る(タイミングT915)。
Then, the
しかし、既に、PC100Aがプリンタ300にアクセスし、印刷処理が実行中であるため、デバイスサーバ200は、PC100Aと間のセッション接続が終了されるまでの間、PC100Bのセッション開始要求に対して「NG」応答を返す(タイミングT916)。
However, since the
PC100Bでは、「NG」応答を受信すると、常駐サービス114によりデバイスサーバ200のセッション接続を定期的に確認する。
When the
デバイスサーバ200では、PC100Aとの間のセッション接続が終了された後(タイミングT917)、PC100Bからの「セッション開始要求」を受信すると、PC100Bとの間でセッション接続を開始する(タイミングT918)。そして、PC100Bによるプリンタ300へのアクセスが完了するまでの間、PC100Bとデバイスサーバ200との間のセッション接続は継続される。
When the
このように、第1の実施の形態におけるクライアントPCは、プリンタ300にアクセス可能な状態のときにユーザの手動操作に頼ることなく自動的にデバイスサーバ200とのセッション接続を開始してデバイス情報を取得し、デバイスドライバをロード後、セッション接続を終了して、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。
As described above, the client PC in the first embodiment automatically starts a session connection with the
そして、上位層のソフトウェアから印刷実行命令が発行されると、プリンタ300にアクセスが可能であれば、ユーザの手動操作に頼ることなく自動的にデバイスサーバ200とのセッション接続を開始してプリンタ300における印刷実行に必要なコマンドを送受信し、印刷が終了するとユーザの手動操作に頼ることなく自動的にセッション接続を終了する。これにより、ユーザがセッション接続の開始・終了を意識しなくても、複数台のクライアントPCでデバイスを共有することが可能となる。
When the print execution command is issued from the upper layer software, if the
次に、第2の実施の形態について説明する。本実施の形態は、デバイスドライバをロードするまでの過程において、セッション接続を必要としないUDPなどによりデバイスサーバ200とデータ通信してデバイス情報を取得する点が第1の実施の形態と異なる。
Next, a second embodiment will be described. The present embodiment is different from the first embodiment in that device information is acquired by performing data communication with the
図10は、第1の実施の形態で説明した図5と同様、PC100(PC100A,PC100B)の制御フローであり、PC100がプリンタ300にアクセスして印刷処理を実行するために必要なデバイスドライバをロードするまでの制御動作の手順を示すフローチャートである。
FIG. 10 is a control flow of the PC 100 (
ユーザがPC100を起動すると、PC100内のソフトウェア群の中の常駐サービス114が動作し、UDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する。(ステップS1001)。
When the user activates the
続いて、常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200との接続を確認する(ステップS1002)。
Subsequently, the
ここで、デバイスサーバ200又はプリンタ300との接続が正常でない場合(ステップS1002でNo)、再び、ステップS1001の処理に戻り、定期的にデバイスサーバ200の状態を確認する。
Here, when the connection with the
デバイスサーバ200からの応答により、デバイスサーバ200及びプリンタ300との接続が正常である場合(ステップS1002でYes)、常駐サービス114は、USB仮想バスドライバ115をロードする(ステップS1003)。
If the connection from the
USB仮想バスドライバ115をロードが完了すると、常駐サービス114は、デバイスドライバのマウント命令を発行する(ステップS1004)。
When the loading of the USB
マウント命令が発行されると、USB仮想ドライバ115は、デバイスサーバ200との間をセッション接続が必要ないUDPなどを用いてデータ通信する。そして、デバイスサーバ200に対して、プリンタ300のデバイスドライバをロードするために必要となるデバイス情報を要求する(ステップS1005)。
When the mount command is issued, the USB
このとき、デバイスサーバ200では、PC100から受信したデバイス情報の要求をプリンタ300に送信し、プリンタ300から応答情報としてデバイス情報を受信してPC100Aに送る処理を実行する。
At this time, the
PC100では、取得したデバイス情報に基づき、USB仮想バスドライバ115によって擬似的にプリンタ300が接続されたようにシミュレートし、USBプリンタクラスドライバ116をロードする(ステップS1006)。
In the
USBプリンタクラスドライバ116は、USBポートを作成するとともに、その上位にUSBフィルタドライバ117及びプリンタドライバ118をロードする(ステップS1007、ステップS1008)。
The USB
プリンタドライバ118のロードが完了すると、プリンタ300にアクセスして印刷するために必要なデバイスドライバがPC100に全てロードされた状態となる。そして、上位層のソフトウェアからの印刷実行命令が発行されるまでの間、待機状態となる。
When loading of the
本実施の形態において、PC100は、UDPなどを用いてデバイスサーバ200とデータ通信しているので、セッション接続せずに必要なデバイスドライバをロードすることができる。なお、データ通信はセッション接続を必要としないプロトコルであればよく、UDPに限定されるものではない。
In the present embodiment, since the
図9と同様に、前述のネットワークシステムにおいて、複数台のPC100(PC100A,PC100B)がプリンタ300にアクセスする場合(N対1で接続する場合)の実施の形態について、図11を参照しながら説明する。
As in FIG. 9, an embodiment in which a plurality of PCs 100 (
図11は、PC100Aがデバイスドライバのロード中に、別のPC100Bからプリンタ300にアクセスしたときのタイミングチャートを示した説明図である。なお、PC100A及びPC100Bにおいて、デバイスドライバがロードされた後の動作については、第1の実施の形態(図9)と同じであるため、説明は省略する。
FIG. 11 is an explanatory diagram showing a timing chart when the
PC100A、PC100Bはともに、常駐サービス114によってセッション接続が必要ないUDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する(タイミングT1101)。
Both the
次に、PC100A、PC100Bの常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200及びプリンタ300との接続が正常であることを確認すると、USB仮想バスドライバ115をロードし、デバイスドライバのマウント命令を発行する(タイミングT1102)。
Next, when the
そして、PC100A、PC100BのUSB仮想バスドライバ115は、UDPなどを用いてデバイスサーバ200と通信してデバイス情報を要求する(タイミングT1103)。
Then, the USB
デバイスサーバ200はPC100A、PC100Bからのデバイス情報の要求をプリンタ300に送り、プリンタ300からデバイス情報の応答があると、このデバイス情報をPC100A、PC100Bに対して返す(タイミングT1104)。
The
PC100A、PC100Bは、取得したデバイス情報に基づき、それぞれのUSB仮想バスドライバ115によって、USBプリンタクラスドライバ116、USBフィルタドライバ117、プリンタドライバ118を順にロードしてゆく(タイミングT1105)。
The
このように、第2の実施の形態におけるクライアントPCは、プリンタ300にアクセス可能な状態のときにユーザの手動操作に頼ることなく自動的にセッション接続が必要ないUDPでデバイスサーバ200と通信してデバイス情報を取得し、デバイスドライバをロード後、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。
As described above, the client PC according to the second embodiment communicates with the
そして、上位層のソフトウェアから印刷実行命令が発行されると、プリンタ300にアクセスが可能であれば、ユーザの手動操作に頼ることなく自動的にデバイスサーバ200とのセッション接続を開始してプリンタ300における印刷実行に必要なコマンドを送受信し、印刷が終了するとユーザの手動操作に頼ることなく自動的にセッション接続を終了する。これにより、ユーザがセッション接続の開始、終了を意識しなくても、複数台のクライアントPCでデバイスを共有することが可能となる。
When the print execution command is issued from the upper layer software, if the
次に、第3の実施の形態について説明する。本実施の形態は、PC100内にデバイスドライバのロードに必要な情報をキャッシュしている場合、このキャッシュされた情報に基づいて、デバイスサーバ200とデータ通信せずにデバイスドライバをロードする点が上述の実施の形態と異なる。
Next, a third embodiment will be described. In the present embodiment, when the information necessary for loading the device driver is cached in the
図12は、PC100がプリンタ300にアクセスして印刷処理を実行するために必要なデバイスドライバをロードするまでの制御動作の手順を示すフローチャートである。
FIG. 12 is a flowchart showing a control operation procedure until the
ユーザがPC100を起動すると、PC100内のソフトウェア群の中の常駐サービス114が動作し、UDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する。(ステップS1201)。
When the user activates the
常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200及びプリンタ300との接続状態を確認する(ステップS1202)。
The
デバイスサーバ200及びプリンタ300との接続状態が正常でない場合(ステップS1202でNo)、再び、ステップS1201の処理に戻り、定期的にデバイスサーバ200及びプリンタ300との接続状態の確認を行う。
If the connection state between the
デバイスサーバ200からの応答により、デバイスサーバ200及びプリンタ300との接続状態が正常である場合(ステップS1202でYes)、常駐サービス114は、USB仮想バスドライバ115をロードする(ステップS1203)。
If the connection state between the
常駐サービス114は、USB仮想バスドライバ115をロードが完了すると、デバイスドライバのマウント命令を発行する(ステップS1204)。
When the loading of the USB
マウント命令が発行されると、USB仮想ドライバ115は、プリンタ300のデバイスドライバのロードに必要となるデバイス情報をPC100内(自装置内)に既に保持(キャッシュ)しているかを確認する(ステップS1205)。
When the mount command is issued, the USB
PC100内(自装置内)にキャッシュされた情報(以下、キャッシュ情報)がない場合(ステップS1205でNo)、PC100は、UDPによりデバイスサーバ200とデータ通信して、デバイスドライバのロードに必要となるデバイス情報を取得する(ステップS1206)。
When there is no cached information (hereinafter, cache information) in the PC 100 (within its own device) (No in step S1205), the
PC100内(自装置内)にキャッシュ情報がある場合(ステップS1205でYes)、ステップS1207の処理はスキップし、次の処理ステップS1208に移る。 If there is cache information in the PC 100 (in the device itself) (Yes in step S1205), the process in step S1207 is skipped and the process proceeds to the next process step S1208.
USB仮想バスドライバ115は、キャッシュ情報若しくは、サーバ200を介して取得したデバイス情報に基づき、擬似的にプリンタ300が接続されたようにシミュレートし、OS110のモジュールであるUSBプリンタクラスドライバ116をロードする(ステップS1207)。
The USB
USBプリンタクラスドライバ116は、USBポートを作成するとともに、その上位にUSBフィルタドライバ117及びプリンタドライバ118をロードする(ステップS1208、ステップS1209)。
The USB
プリンタドライバ118のロードが完了すると、プリンタ300にアクセスして印刷するために必要なデバイスドライバがPC100に全てロードされた状態となる。そして、上位層のソフトウェアからの印刷実行命令が発行されるまでの間、待機状態となる。
When loading of the
第3の実施の形態において、PC100は、自装置内にキャッシュ情報がある場合、デバイスサーバ200との間でデータ通信を行うことなく、デバイスドライバをロードすることができる。
In the third embodiment, the
一方、自装置内にキャッシュ情報がない場合、上述した第2の実施の形態と同様、UDPによりデバイスサーバ200と通信してデバイス情報を取得するので、セッション接続する必要がない。なお、デバイスサーバ200との通信はUDPに限定されるものではない。
On the other hand, when there is no cache information in its own device, it communicates with the
PC100A及びPC100Bにおいて、キャッシュ情報に基づいてデバイスドライバをロードするときのタイミングチャートについて図13を用いて説明する。なお、PC100A及びPC100Bにおいて、デバイスドライバがロードされた後の動作については、前述した第1の実施の形態(図9)と同じであるため、説明は省略する。
A timing chart for loading a device driver based on cache information in the
また、自装置内にキャッシュ情報がなく、UDPなどを用いてデバイスサーバ200と通信してデバイス情報を取得する場合の動作については、前述した第2の実施の形態(図10、図11)と同じであるため説明及び図13中における図示は省略する。
Also, the operation when the device information is acquired by communicating with the
PC100A及びPC100Bは、プリンタ300のネットワーク共有を行うための初期設定や、常駐サービス114、プリンタドライバ118などのインストールを実行するとき、プリンタ300のネットワーク共有に必要なデバイス情報を、デバイスサーバ200を介してプリンタ300から予め取得して、これをPC100A及びPC100Bの外部記憶部106に格納している(タイミングT1301)。このとき格納されたデバイス情報が、キャッシュ情報としてデバイスドライバのロードの際に使用される。
When the
PC100A、PC100Bはともに、常駐サービス114によってセッション接続が必要ないUDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する(タイミングT1302)。
Both the
次に、PC100Aの常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200が他のクライアントPCとセッション接続中でないことを確認するとUSB仮想バスドライバ115をロードし、デバイスドライバのマウント命令を発行する(タイミングT1303)。
Next, when the
USB仮想バスドライバ115は、デバイスドライバのマウント命令が発行されると、PC100A内(自装置内)にキャッシュ情報を保持しているかを確認する。
When the device virtual device driver mount command is issued, the USB
PC100A内(自装置内)にキャッシュ情報を保持している場合、このキャッシュ情報に基づき、USBプリンタクラスドライバ116、USBフィルタドライバ117、プリンタドライバ118を順にロードしてゆく(タイミングT1304)。
When cache information is held in the
PC100Aでデバイスドライバのロード中、もう一方のクライアントPC100Bにおいて、デバイスドライバのマウント命令が発行された場合(タイミングT1305)、PC100Aと同様、まず、PC100B内(自装置内)にキャッシュ情報があるか否かを確認する。
When a device driver mount instruction is issued in the
PC100B内(自装置内)にキャッシュ情報がある場合、このキャッシュ情報に基づいて、USBプリンタクラスドライバ116、USBフィルタドライバ117、プリンタドライバ118を順にロードしてゆく(タイミングT1306)。
If there is cache information in the
このように、第3の実施の形態におけるクライアントPCは、自装置内に保持されたキャッシュ情報に基づいてデバイスドライバをロード後、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。一方、キャッシュ情報がなければ、プリンタ300にアクセス可能な状態のときにユーザの手動操作に頼ることなく自動的にセッション接続が必要ないUDPでデバイスサーバ200と通信してデバイス情報を取得し、デバイスドライバをロード後、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。
As described above, the client PC according to the third embodiment waits after the device driver is loaded based on the cache information held in the own apparatus until the print execution command is issued from the upper layer software. It becomes a state. On the other hand, if there is no cache information, the
そして、上位層のソフトウェアから印刷実行命令が発行されると、プリンタ300にアクセスが可能であれば、ユーザの手動操作に頼ることなく自動的にデバイスサーバ200とのセッション接続を開始してプリンタ300における印刷実行に必要なコマンドを送受信し、印刷が終了するとユーザの手動操作に頼ることなく自動的にセッション接続を終了する。これにより、ユーザがセッション接続の開始、終了を意識しなくても、複数台のクライアントPCでデバイスを共有することが可能となる。
When the print execution command is issued from the upper layer software, if the
また、キャッシュ情報を利用してデバイスドライバをロードするので、複数のクライアントPCがデバイスサーバ200からデバイス情報を取得しようとするアクセスが不要となるため、ネットワーク500のトラフィックを低減することができる。
In addition, since the device driver is loaded using the cache information, access for acquiring the device information from the
次に、第4の実施の形態として、PC100がプリンタ300にアクセスして印刷処理を実行するときの別の制御動作について、図14を参照しながら説明する。
Next, as a fourth embodiment, another control operation when the
本実施の形態は、USBポートが「クローズ」された後、すぐにデバイスサーバ200との間のセッション接続を終了せず、規定時間だけセッション接続の終了を遅らせる点に特徴がある。
The present embodiment is characterized in that the session connection with the
図14は、PC100(PC100A,PC100B)の制御フローにおいて、PC100がプリンタ300にアクセスして印刷処理を実行するときの制御動作の手順を示すフローチャートである。
FIG. 14 is a flowchart illustrating a control operation procedure when the
なお、上述した第1の実施の形態で説明した図6と同様、PC100には、必要なデバイスドライバが全てロードされており、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態にあるものとする。
Note that, as in FIG. 6 described in the first embodiment, all necessary device drivers are loaded on the
PC100によりプリンタ300で印刷処理を実行するとき、上位層のソフトウェアから印刷実行命令が発行される。
When print processing is executed by the
上位層のソフトウェアから印刷実行命令が発行されると、PC100のプリンタドライバ118は、印刷実行命令に応じた制御コマンドを生成し、USBポートを「オープン」する(ステップS1401、S1402)。
When a print execution command is issued from the upper layer software, the
そして、生成した制御コマンドをUSBポートからUSBフィルタドライバ117を経由してプリンタクラスドライバ116に送る。プリンタクラスドライバ116では、制御コマンドをUSBパケットに変換し、USB仮想バスドライバ115に送る(ステップS1403)。
The generated control command is sent from the USB port to the
USBフィルタドライバ117は、USBポートが「オープン」し、制御コマンドがUSBポートを通過するとこれを検知してUSB仮想バスドライバ115に通知し、USB仮想バスドライバ115は、セッション接続がされていない場合、デバイスサーバ200に対してセッション開始要求を送る(ステップS1404)。
When the USB port is “open” and the control command passes through the USB port, the
このセッション開始要求に対し、デバイスサーバ200から「NG」応答があり、セッション接続を開始できない場合(ステップS1405でNo)、ステップS1404へ戻り、セッション接続が開始可能となるまで、デバイスサーバ200に対して定期的にセッション開始要求を送る。
If there is an “NG” response from the
一方、デバイスサーバ200から「OK」応答があり(ステップS1405でYes)、セッション接続が開始されると、PC100は、デバイスサーバ200を介してプリンタ300へのアクセスが可能となる(ステップS1406)。
On the other hand, when there is an “OK” response from the device server 200 (Yes in step S1405) and the session connection is started, the
次に、PC100は、デバイスサーバ200を介し、プリンタ300に対して制御コマンドを送り、プリンタ300からの処理結果などを受信する(ステップS1407)。そして、PC100から印刷終了命令が発行されるまでステップS1407の処理が繰り返される(ステップS1408でNo)。
Next, the
上位層のソフトウェアから印刷終了命令が発行されると(ステップS1408でYes)、プリンタドライバ118は、終了コマンドを生成し、USB仮想バスドライバ115を介して終了コマンドをデバイスサーバ200に送信し、プリンタ300からの終了コマンドに対する応答をデバイスサーバ200から受信する。
When a print end command is issued from the upper layer software (Yes in step S1408), the
PC100のプリンタドライバ118は、終了コマンドに対する応答を受信すると、USBポートを「クローズ」し、USBフィルタドライバ117は、USBポートの「クローズ」をUSB仮想バスドライバ115に通知する。(ステップS1409)。
Upon receiving a response to the end command, the
USB仮想バスドライバ115は、USBポートが「クローズ」され、USBポート「クローズ」の通知を受けると、デバイスサーバ200との間のセッション接続をすぐに終了させず、上位層のソフトウェアから次の印刷実行命令が規定時間内に発行されるか否かを判定する(ステップS1410)。
When the USB
規定時間内に上位層のソフトウェアから印刷実行命令が発行されると(ステップS1410でYes)、プリンタドライバ118は、制御コマンドを生成して、USBポートを「オープン」し(ステップS1411)、生成した制御コマンドをUSBポートからUSBフィルタドライバ117を経由してプリンタクラスドライバ116に送る(ステップS1412)。
When a print execution command is issued from the upper layer software within the specified time (Yes in step S1410), the
そして、再び、ステップS1407の処理に戻り、デバイスサーバ200を介し、プリンタ300に対して制御コマンドを送り、プリンタ300からの処理結果などを受信し、プリンタ300による印刷処理が開始される。
Then, the process returns to step S1407 again, a control command is sent to the
一方、規定時間内に上位層のソフトウェアから印刷実行命令が発行されないと(ステップS1410でNo)、USB仮想バスドライバ115は、デバイスサーバ200に対しセッション終了要求を送る(ステップS1413)。
On the other hand, if the print execution command is not issued from the upper layer software within the specified time (No in step S1410), the USB
そして、デバイスサーバ200との間でセッション終了処理を実行し、セッション終了「OK」の応答を受信すると、PC100Aとデバイスサーバ200との間のセッション接続が終了となる(ステップS1414)。そして、再び、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。
Then, session termination processing is executed with the
このように、USBポートが「クローズ」された後、規定時間だけセッション接続の終了時間を遅らせることにより、上位層のソフトウェアから連続して印刷実行命令が出ている場合、一旦、セッション接続を終了し、再度、セッション接続するという処理が不要となる。 In this way, after the USB port is “closed”, the session connection is ended by delaying the specified time by a specified time, so that when the print execution command is issued continuously from the upper layer software, the session connection is once ended. Then, the process of connecting to the session again becomes unnecessary.
従って、セッション接続は維持されるので、例えば、PC100Aから連続印刷を行っている途中に、PC100Bの印刷処理が割り込むことを抑制することができる。
Accordingly, since the session connection is maintained, for example, it is possible to prevent the printing process of the
図15は、第4の実施の形態において、図14で説明した制御フローで動作するPC100(PC100A,PC100B)おいて、PC100Aが連続して印刷処理を実行するとき実施の形態である。
FIG. 15 is an embodiment in the case where the
ここで、簡略化して分り易く説明をするために、第4の実施の形態において、PC100A、PC100Bともに既にデバイスドライバがロードしてある状態として説明する。なお、デバイスドライバをロードするまでの制御動作は、上述の第1〜第3の実施の形態を全て適用することができる。
Here, for the sake of simplification and easy-to-understand explanation, in the fourth embodiment, it is assumed that both the
図15において、PC100Aの1回目の印刷処理(タイミングT1501)が終了し、PC100Aのプリンタドライバ118がUSBポートを「クローズ」させた状態から説明する(タイミングT1502)。
In FIG. 15, the first printing process (timing T1501) of the
PC100Aでは、プリンタドライバ118がUSBポートを「クローズ」させると、USBフィルタドライバ117がUSBポート「クローズ」をUSB仮想バスドライバ115に通知する。
In the
USB仮想バスドライバ115は、USBポート「クローズ」の通知を受けると、セッション接続をすぐに終了させず、規定時間が経過するまでの間はデバイスサーバ200に対してセッション終了要求を送信しない(タイミングT1503)。
Upon receiving the notification of the USB port “closed”, the USB
この規定時間内に、PC100Bの上位層のソフトウェアによって印刷実行命令が発行された場合(タイミングT1504)、PC100Bからデバイスサーバ200に対してセッション開始要求が送られるが、まだ、PC100Aとの間のセッション接続が終了していないため、デバイスサーバ200はPC100Bに対して「NG」応答を返す(タイミングT1505)。
If a print execution command is issued by the upper layer software of the
一方、この規定時間内に、再度、PC100Aの上位層のソフトウェアから印刷実行命令が発行されると(タイミングT1506)、プリンタドライバ118は、再びUSBポートを「オープン」させる(タイミングT1507)。
On the other hand, when a print execution command is issued again from the upper layer software of the
USBフィルタドライバ117では、USBポートを通過する制御コマンドを検知するが、デバイスサーバ200とは既にセッション接続中であり、セッション開始処理が不要である。従って、PC100Aのプリンタドライバ118がUSBポートを介してデバイスサーバ200に制御コマンドを送信することで、2回目の印刷処理が連続して実行される(タイミングT1508)。
The
PC100Aのプリンタドライバ118は、2回目の印刷処理が終了すると、1回目と同様、USBポートを「クローズ」させるが(タイミングT1509)、USB仮想バスドライバ115では、すぐにセッション接続を終了させず、規定時間が経過するまでデバイスサーバ200に対してセッション終了要求を送信しない(タイミングT1510)。
When the second printing process is completed, the
そして、この規定時間内にPC100Aの上位層のソフトウェアから印刷実行命令が発行されないと、USB仮想バスドライバ115は、デバイスサーバ200に対しセッション終了要求を送り、デバイスサーバ200との間のセッション接続を終了する(タイミングT1511)。
If a print execution command is not issued from the upper layer software of the
このように、第4の実施の形態におけるクライアントPCは、USBポートを「クローズ」させた後、すぐにデバイスサーバとのセッション接続を終了させず、セッション終了のタイミングを遅らせることによって、連続印刷処理中に他のクライアントPCに割り込まれることなく、一台のクライアントPCで連続印刷することが可能となる。 As described above, the client PC according to the fourth embodiment does not end the session connection with the device server immediately after the USB port is “closed”, but delays the timing of the end of the session. It is possible to perform continuous printing with one client PC without being interrupted by another client PC.
第4の実施の形態は、USBポート(入出力ポート)の「クローズ」と「オープン」の間隔が短いデバイスや一つの処理(ジョブ)が完了するまでの間に「オープン」、「クローズ」を頻繁に行うデバイスに適している。例えば、スキャナやストレージなどのデバイスがこれに該当する。 In the fourth embodiment, a device having a short interval between “close” and “open” of a USB port (input / output port) and “open” and “close” are completed until one process (job) is completed. Suitable for frequent devices. For example, a device such as a scanner or a storage corresponds to this.
なお、上述した「規定時間」は、デバイスの種類に応じて設定することも可能である。例えば、スキャナとストレージを共有デバイスとして使用する場合、「規定時間」をそれぞれ異なる値に設定してもよい。 The “specified time” described above can also be set according to the type of device. For example, when the scanner and the storage are used as a shared device, the “specified time” may be set to different values.
なお、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において適宜変更可能である。 Note that the present invention is not limited to the above-described embodiment, and can be appropriately changed without departing from the gist of the present invention.
上述した実施の形態では、一台のデバイスサーバが一台のプリンタ(デバイス)を管理する構成で説明したが、一台のデバイスサーバに複数のプリンタ(デバイス)を接続する構成としても良い。また、この場合はデバイス毎にセッションを用意し制御することで、別々のデバイスであれば、複数のクライアントPCから同時にアクセスすることが可能となる。 In the above-described embodiment, the configuration has been described in which one device server manages one printer (device). However, a configuration may be adopted in which a plurality of printers (devices) are connected to one device server. Further, in this case, by preparing and controlling a session for each device, it is possible to simultaneously access from a plurality of client PCs with different devices.
また、デバイスサーバとデバイスの接続インターフェースをUSBとした場合の構成で説明したが、これらに限定されず、別の接続インターフェースを使用しても良い。具体的には、IEEE1394に対応するためには、PC100が備えるUSBに関連するデバイスドライバ(USB仮想バスドライバ115、USBプリンタクラスドライバ116、USBフィルタドライバ117、プリンタドライバ118など)とデバイスサーバ200が備えるUSBコマンド層212が、それぞれIEEE1394に関連するデバイスドライバとIEEE1394コマンド層に置き換われば良い。
In addition, the configuration in which the connection interface between the device server and the device is USB has been described, but the present invention is not limited to this, and another connection interface may be used. Specifically, in order to support IEEE 1394, a device driver (USB
さらにはPC100が複数の異なる接続インターフェース用のドライバ層を持ち、デバイスサーバ200がそれに対応した複数の異なるコマンド層を備えるようにすれば、様々な接続インターフェースを備えたデバイスにも柔軟に対応できる。
Furthermore, if the
また、本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して処理を実行することによっても達成することができる。 Another object of the present invention is to supply a storage medium storing software program codes for realizing the functions of the above-described embodiments to a system or apparatus, and a computer (or CPU, MPU, etc.) of the system or apparatus. This can also be achieved by reading the program code stored in the storage medium and executing the processing.
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。 In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and a computer-readable storage medium storing the program code constitutes the present invention. .
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現されるように構成しても良い。 Further, an OS (operating system) or the like running on the computer performs part or all of the actual processing based on an instruction of the program code, and the functions of the above-described embodiments are realized by the processing. You may do it.
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。 Further, after the program code read from the storage medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. In some cases, the CPU or the like provided in the board or the function expansion unit executes part or all of the actual processing, and the above-described embodiment is realized according to the processing.
なお、プログラムコードを供給するため、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CDやDVDに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ROM等の記憶媒体を用いることができる。又は、プログラムコードは、ネットワークを介してダウンロードしてもよい。 In order to supply the program code, for example, a floppy (registered trademark) disk, a hard disk, a magneto-optical disk, an optical disk represented by CD or DVD, a magnetic tape, a nonvolatile memory card, a ROM, or the like is used. Can do. Alternatively, the program code may be downloaded via a network.
100A,100B:クライアントPC
101:CPU
102:入力部
103:表示部
104:メモリ
105:通信部
106:外部記憶部
107:内部バス
110:OS
111:アプリケーションプログラム
112:ネットワークインターフェース層
113:ネットワークプロトコル層
114:常駐サービス
115:USB仮想バスドライバ
116:USBプリンタクラスドライバ
117:USBフィルタドライバ
118:プリンタドライバ
200: デバイスサーバ
201:CPU
202:入力部
203:表示部
204:ROM
205:RAM
206:通信部
207:USBI/F(USBインターフェース)
208:内部バス
210:OS
211:制御プログラム
212:通信層
213:USBコマンド層
300:プリンタ(デバイス)
400:接続ケーブル
500:ネットワーク
100A, 100B: Client PC
101: CPU
102: Input unit 103: Display unit 104: Memory 105: Communication unit 106: External storage unit 107: Internal bus 110: OS
111: Application program 112: Network interface layer 113: Network protocol layer 114: Resident service 115: USB virtual bus driver 116: USB printer class driver 117: USB filter driver 118: Printer driver 200: Device server 201: CPU
202: Input unit 203: Display unit 204: ROM
205: RAM
206: Communication unit 207: USB I / F (USB interface)
208: Internal bus 210: OS
211: Control program 212: Communication layer 213: USB command layer 300: Printer (device)
400: Connection cable 500: Network
Claims (18)
前記デバイスへの入出力を指示するアプリケーション層と、
前記ネットワークを介して前記デバイスの接続情報を取得するデバイス接続情報取得手段と、
前記デバイスの接続情報をもとに当該デバイスが直接接続されているようにシミュレートする接続シミュレート手段と、
前記接続シミュレート手段により接続がシミュレートされたデバイスに対する制御コマンドの入出力ポートを生成する入出力ポート生成手段と、
前記アプリケーション層からの入出力指示に応じて前記デバイスに対する制御コマンドを生成する制御コマンド生成手段と、
当該デバイスに対する前記入出力ポートに当該制御コマンドを送信する制御コマンド送信手段と、
前記入出力ポートを前記アプリケーション層からの入出力指示の発生によりオープンし、当該入出力指示の終了によりクローズする入出力ポート制御手段と、
前記入出力ポート制御手段が前記入出力ポートをオープンしたとき、前記接続シミュレート手段に対して前記サーバとのセッション開始を指示するセッション開始手段と、
前記入出力ポート制御手段が前記入出力ポートをクローズしたとき、前記接続シミュレート手段に対して前記サーバとのセッション終了を指示するセッション終了手段と、
を備えることを特徴とするクライアント。 A client that inputs / outputs data to / from a device connected to a server via a network,
An application layer that directs input and output to the device;
Device connection information acquisition means for acquiring connection information of the device via the network;
Connection simulation means for simulating that the device is directly connected based on the connection information of the device;
An input / output port generating means for generating an input / output port of a control command for a device whose connection is simulated by the connection simulating means;
Control command generation means for generating a control command for the device in response to an input / output instruction from the application layer;
Control command transmission means for transmitting the control command to the input / output port for the device;
An input / output port control means for opening the input / output port upon generation of an input / output instruction from the application layer and closing the input / output instruction upon completion;
Session start means for instructing the connection simulation means to start a session with the server when the input / output port control means opens the input / output port;
Session termination means for instructing the connection simulating means to terminate the session with the server when the input / output port control means closes the input / output port;
A client characterized by comprising:
を特徴とする請求項1に記載のクライアント。 The session start means opens the input / output port by the input / output port control means, and when the control command transmitted by the control command transmission means passes through the input / output port, The client according to claim 1, wherein the client instructs to start a session with the server.
を特徴とする請求項1に記載のクライアント。 2. The client according to claim 1, wherein the connection simulating unit terminates the session after a specified time elapses when an instruction to terminate the session with the server is received from the session terminating unit.
を特徴とする請求項3に記載のクライアント。 If there is an input / output instruction from the application layer before the specified time has elapsed, the connection simulating means does not execute the session end instruction, and the input / output port control means opens the input / output port. 4. The client according to claim 3, wherein the control command transmission means starts transmission of a control command to the device.
前記接続シミュレート手段は、当該クライアント内に保持しているデバイスの接続情報をもとに、当該デバイスの接続をシミュレートすること
を特徴とする請求項1に記載のクライアント。 When the connection information of the device is held in the client, the device connection information acquisition unit does not acquire the connection information of the device via the network,
The client according to claim 1, wherein the connection simulating unit simulates connection of the device based on connection information of the device held in the client.
前記接続シミュレート手段は、該取得したデバイスの接続情報をもとに、当該デバイスの接続をシミュレートすること
を特徴とする請求項1に記載のクライアント。 When the connection information of the device is not held in the client, the device connection information acquisition unit acquires the connection information of the device via the network,
The client according to claim 1, wherein the connection simulation unit simulates the connection of the device based on the acquired connection information of the device.
前記クライアントは、
前記デバイスへの入出力を指示するアプリケーション層と、
前記ネットワークを介して前記デバイスの接続情報を取得するデバイス接続情報取得手段と、
前記デバイスの接続情報をもとに当該デバイスが直接接続されているようにシミュレートする接続シミュレート手段と、
前記接続シミュレート手段により接続がシミュレートされたデバイスに対する制御コマンドの入出力ポートを生成する入出力ポート生成手段と、
前記アプリケーション層からの入出力指示に応じて前記デバイスに対する制御コマンドを生成する制御コマンド生成手段と、
当該デバイスに対する前記入出力ポートに当該制御コマンドを送信する制御コマンド送信手段と、
前記入出力ポートを前記アプリケーション層からの入出力指示の発生によりオープンし、当該入出力指示の終了によりクローズする入出力ポート制御手段と、
前記入出力ポート制御手段が前記入出力ポートをオープンしたとき、前記接続シミュレート手段に対して前記サーバとのセッション開始を指示するセッション開始手段と、
前記入出力ポート制御手段が前記入出力ポートをクローズしたとき、前記接続シミュレート手段に対して前記サーバとのセッション終了を指示するセッション終了手段と、
から構成されることを特徴とするデバイス共有システム。 In a device sharing system comprising a device, a server, and a client that inputs and outputs data between the device connected to the server via a network,
The client
An application layer that directs input and output to the device;
Device connection information acquisition means for acquiring connection information of the device via the network;
Connection simulation means for simulating that the device is directly connected based on the connection information of the device;
An input / output port generating means for generating an input / output port of a control command for a device whose connection is simulated by the connection simulating means;
Control command generation means for generating a control command for the device in response to an input / output instruction from the application layer;
Control command transmission means for transmitting the control command to the input / output port for the device;
An input / output port control means for opening the input / output port upon generation of an input / output instruction from the application layer and closing the input / output instruction upon completion;
Session start means for instructing the connection simulation means to start a session with the server when the input / output port control means opens the input / output port;
Session termination means for instructing the connection simulating means to terminate the session with the server when the input / output port control means closes the input / output port;
A device sharing system comprising:
を特徴とする請求項7に記載のデバイス共有システム。 The session start means opens the input / output port by the input / output port control means, and when the control command transmitted by the control command transmission means passes through the input / output port, The device sharing system according to claim 7, wherein a session start with the server is instructed.
を特徴とする請求項7に記載のデバイス共有システム。 8. The device sharing system according to claim 7, wherein the connection simulating unit terminates the session after a specified time elapses when an instruction to terminate the session with the server is issued from the session terminating unit.
を特徴とする請求項9に記載のデバイス共有システム。 If there is an input / output instruction from the application layer before the specified time has elapsed, the connection simulating means does not execute the session end instruction, and the input / output port control means opens the input / output port. The device sharing system according to claim 9, wherein transmission of a control command to the device is started by the control command transmission unit.
前記接続シミュレート手段は、当該クライアント内に保持しているデバイスの接続情報をもとに、当該デバイスの接続をシミュレートすること
を特徴とする請求項7に記載のデバイス共有システム。 When the connection information of the device is held in the client, the device connection information acquisition unit does not acquire the connection information of the device via the network,
8. The device sharing system according to claim 7, wherein the connection simulating unit simulates the connection of the device based on the connection information of the device held in the client.
前記接続シミュレート手段は、該取得したデバイスの接続情報をもとに、当該デバイスの接続をシミュレートすること
を特徴とする請求項7に記載のデバイス共有システム。 When the connection information of the device is not held in the client, the device connection information acquisition unit acquires the connection information of the device via the network,
8. The device sharing system according to claim 7, wherein the connection simulation unit simulates connection of the device based on the acquired connection information of the device.
前記ネットワークを介して前記デバイスの接続情報を取得するデバイス接続情報取得ステップと、
前記デバイスの接続情報をもとに当該デバイスが直接接続されているようにシミュレートする接続シミュレートステップと、
前記接続シミュレートステップにおいて接続がシミュレートされたデバイスに対する制御コマンドの入出力ポートを生成する入出力ポート生成ステップと、
前記デバイスへの入出力を指示するアプリケーション層からの入出力指示に応じて前記デバイスに対する制御コマンドを生成する制御コマンド生成ステップと、
当該デバイスに対する前記入出力ポートに当該制御コマンドを送信する制御コマンド送信ステップと、
前記入出力ポートを前記アプリケーション層からの入出力指示の発生によりオープンし、当該入出力指示の終了によりクローズする入出力ポート制御ステップと、
前記入出力ポート制御ステップにおいて前記入出力ポートがオープンされたとき、前記接続シミュレートステップにおいて前記サーバとのセッション開始を指示させるセッション開始ステップと、
前記入出力ポート制御ステップにおいて前記入出力ポートがクローズされたとき、前記接続シミュレートステップにおいて前記サーバとのセッション終了を指示させるセッション終了ステップと、
を実行することを特徴とするデバイス共有方法。 A device sharing method in which a device connected to a server via a network is shared by a client,
A device connection information acquisition step of acquiring connection information of the device via the network;
A connection simulation step of simulating that the device is directly connected based on the connection information of the device;
An input / output port generation step of generating an input / output port of a control command for the device whose connection is simulated in the connection simulation step;
A control command generation step for generating a control command for the device in response to an input / output instruction from an application layer instructing input / output to the device;
A control command transmission step of transmitting the control command to the input / output port for the device;
An input / output port control step for opening the input / output port when an input / output instruction is generated from the application layer and closing the input / output instruction when the input / output instruction ends;
A session start step for instructing a session start with the server in the connection simulation step when the input / output port is opened in the input / output port control step;
A session end step for instructing the end of the session with the server in the connection simulation step when the input / output port is closed in the input / output port control step;
A device sharing method comprising:
を特徴とする請求項13に記載のデバイス共有方法。 In the session start step, when the input / output port is opened in the input / output port control step and the control command transmitted in the control command transmission step passes through the input / output port, the connection simulation step and the server The device sharing method according to claim 13, further comprising instructing start of a session.
を特徴とする請求項13に記載のデバイス共有方法。 14. The device sharing method according to claim 13, wherein in the connection simulating step, when a session end instruction with the server is given in the session end step, the session is ended after a predetermined time has elapsed.
を特徴とする請求項15に記載のデバイス共有方法。 If there is an input / output instruction from the application layer before the specified time elapses, the connection simulating step does not execute the session end instruction, and the input / output port control step opens the input / output port. 16. The device sharing method according to claim 15, wherein transmission of a control command to the device is started in the control command transmission step.
前記接続シミュレートステップにおいて、当該クライアント内に保持しているデバイスの接続情報をもとに、当該デバイスの接続をシミュレートすること
を特徴とする請求項13に記載のデバイス共有方法。 When the connection information of the device is held in the client, the device connection information acquisition step does not acquire the connection information of the device via the network,
14. The device sharing method according to claim 13, wherein in the connection simulating step, the connection of the device is simulated based on the connection information of the device held in the client.
前記接続シミュレートステップにおいて、該取得したデバイスの接続情報をもとに、当該デバイスの接続をシミュレートすること
を特徴とする請求項13に記載のデバイス共有方法。 When the connection information of the device is not held in the client, the device connection information acquisition step acquires the connection information of the device via the network,
14. The device sharing method according to claim 13, wherein in the connection simulation step, the connection of the device is simulated based on the acquired connection information of the device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008286855A JP5124779B2 (en) | 2008-11-07 | 2008-11-07 | Device sharing system, device sharing client, and device sharing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008286855A JP5124779B2 (en) | 2008-11-07 | 2008-11-07 | Device sharing system, device sharing client, and device sharing method |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012221946A Division JP5348576B2 (en) | 2012-10-04 | 2012-10-04 | Device sharing client and device sharing method |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2010113606A true JP2010113606A (en) | 2010-05-20 |
JP2010113606A5 JP2010113606A5 (en) | 2011-09-22 |
JP5124779B2 JP5124779B2 (en) | 2013-01-23 |
Family
ID=42302108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008286855A Expired - Fee Related JP5124779B2 (en) | 2008-11-07 | 2008-11-07 | Device sharing system, device sharing client, and device sharing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5124779B2 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012043116A (en) * | 2010-08-18 | 2012-03-01 | Buffalo Inc | Monitoring system, device server, host computer, monitoring method, and monitoring program |
JP2012138694A (en) * | 2010-12-24 | 2012-07-19 | Canon Imaging Systems Inc | Client device, device control method, and device control system |
JP2012137878A (en) * | 2010-12-24 | 2012-07-19 | Canon Imaging Systems Inc | Client device, device control device, control method thereof and device control system |
JP2012256256A (en) * | 2011-06-10 | 2012-12-27 | Silex Technology Inc | Device server simultaneously communicable with multiple clients |
JP2013089204A (en) * | 2011-10-21 | 2013-05-13 | Canon Imaging Systems Inc | Information processing device, control method thereof and device control system |
JP2014049022A (en) * | 2012-09-03 | 2014-03-17 | Brother Ind Ltd | Communication relay program and communication relay apparatus |
WO2014098260A1 (en) * | 2012-12-21 | 2014-06-26 | キヤノンイメージングシステムズ株式会社 | Information processing apparatus, device control apparatus, control methods therefor, and device control system |
WO2014106882A1 (en) * | 2013-01-02 | 2014-07-10 | セイコーエプソン株式会社 | Device control system, printer, and method for controlling device control system |
US9565053B2 (en) | 2012-10-31 | 2017-02-07 | Brother Kogyo Kabushiki Kaisha | Non-transitory computer-readable medium, communication relay apparatus, and image processing apparatus |
JP2018036810A (en) * | 2016-08-31 | 2018-03-08 | サイレックス・テクノロジー株式会社 | Device server |
US10324883B2 (en) | 2014-03-28 | 2019-06-18 | Nec Corporation | Computer system, data-processing apparatus, bus-data transferring method, and computer-readable recording medium for transferring data flowing through system bus |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006082782A1 (en) * | 2005-02-02 | 2006-08-10 | Silex Technology, Inc. | Peripheral device using method, and peripheral device server |
JP2007317067A (en) * | 2006-05-29 | 2007-12-06 | Silex Technology Inc | Network file management system, device server, and file transmission method |
JP2008067346A (en) * | 2006-08-11 | 2008-03-21 | Brother Ind Ltd | Communication device and program |
JP2011170839A (en) * | 2010-01-12 | 2011-09-01 | Kcodes Corp | Processing system and method for connecting to remote usb device automatically |
-
2008
- 2008-11-07 JP JP2008286855A patent/JP5124779B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006082782A1 (en) * | 2005-02-02 | 2006-08-10 | Silex Technology, Inc. | Peripheral device using method, and peripheral device server |
JP2007317067A (en) * | 2006-05-29 | 2007-12-06 | Silex Technology Inc | Network file management system, device server, and file transmission method |
JP2008067346A (en) * | 2006-08-11 | 2008-03-21 | Brother Ind Ltd | Communication device and program |
JP2011170839A (en) * | 2010-01-12 | 2011-09-01 | Kcodes Corp | Processing system and method for connecting to remote usb device automatically |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012043116A (en) * | 2010-08-18 | 2012-03-01 | Buffalo Inc | Monitoring system, device server, host computer, monitoring method, and monitoring program |
JP2012138694A (en) * | 2010-12-24 | 2012-07-19 | Canon Imaging Systems Inc | Client device, device control method, and device control system |
JP2012137878A (en) * | 2010-12-24 | 2012-07-19 | Canon Imaging Systems Inc | Client device, device control device, control method thereof and device control system |
JP2012256256A (en) * | 2011-06-10 | 2012-12-27 | Silex Technology Inc | Device server simultaneously communicable with multiple clients |
JP2013089204A (en) * | 2011-10-21 | 2013-05-13 | Canon Imaging Systems Inc | Information processing device, control method thereof and device control system |
JP2014049022A (en) * | 2012-09-03 | 2014-03-17 | Brother Ind Ltd | Communication relay program and communication relay apparatus |
US10091368B2 (en) | 2012-09-03 | 2018-10-02 | Brother Kogyo Kabushiki Kaisha | Non-transitory machine-readable medium and communication relay apparatus |
US9565053B2 (en) | 2012-10-31 | 2017-02-07 | Brother Kogyo Kabushiki Kaisha | Non-transitory computer-readable medium, communication relay apparatus, and image processing apparatus |
CN104885066B (en) * | 2012-12-21 | 2017-12-22 | 佳能成像系统株式会社 | Message processing device, control devices and control method and apparatus control system |
CN104885066A (en) * | 2012-12-21 | 2015-09-02 | 佳能成像系统株式会社 | Information processing apparatus, device control apparatus, control methods therefor, and device control system |
JP2014123265A (en) * | 2012-12-21 | 2014-07-03 | Canon Imaging Systems Inc | Information processing apparatus, device control apparatus, and control method thereof, and device control system |
WO2014098260A1 (en) * | 2012-12-21 | 2014-06-26 | キヤノンイメージングシステムズ株式会社 | Information processing apparatus, device control apparatus, control methods therefor, and device control system |
JPWO2014106882A1 (en) * | 2013-01-02 | 2017-01-19 | セイコーエプソン株式会社 | Device control system, printing apparatus, and device control system control method |
WO2014106882A1 (en) * | 2013-01-02 | 2014-07-10 | セイコーエプソン株式会社 | Device control system, printer, and method for controlling device control system |
US10324883B2 (en) | 2014-03-28 | 2019-06-18 | Nec Corporation | Computer system, data-processing apparatus, bus-data transferring method, and computer-readable recording medium for transferring data flowing through system bus |
JP2018036810A (en) * | 2016-08-31 | 2018-03-08 | サイレックス・テクノロジー株式会社 | Device server |
Also Published As
Publication number | Publication date |
---|---|
JP5124779B2 (en) | 2013-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5124779B2 (en) | Device sharing system, device sharing client, and device sharing method | |
EP2544426B1 (en) | Image forming apparatus communicating with external device through network, network system, method of controlling image forming apparatus, program, and storage medium | |
EP2667565B1 (en) | Network device, method, and storage medium | |
JP5995525B2 (en) | System, image forming apparatus, server, and control method thereof | |
JP5348576B2 (en) | Device sharing client and device sharing method | |
JP6184187B2 (en) | Information processing apparatus, information processing system, and information processing apparatus control method | |
US9264563B2 (en) | Communication system, management server, communication relay apparatus, and recording medium | |
US20070006020A1 (en) | Inter-host data transfer method, program, and system | |
JP2017033143A (en) | Image forming apparatus, control method, and program | |
JP2013168101A (en) | Print control device, printing system, control method of print control device, and program | |
US20070199065A1 (en) | Information processing system | |
US8259324B2 (en) | Printer/storage integrate system, controller, control method, and control program for automatic installation of control software | |
JP5031539B2 (en) | Printing system, printing apparatus and printing method | |
JP5890648B2 (en) | Information processing apparatus, control method therefor, and device control system | |
JP4826201B2 (en) | Relay device, storage device, and storage system | |
JP3782573B2 (en) | Printing system, printing apparatus, and data transfer method | |
JPWO2020137437A1 (en) | Communication device and communication method | |
JP6304695B2 (en) | Printing system | |
JP2006331088A (en) | Storage medium processor | |
JP5470518B2 (en) | Device sharing system, device sharing client, and device sharing method | |
JP6019586B2 (en) | Network communication equipment | |
EP3896552A1 (en) | Power-saving control apparatus , image processing apparatus, power-saving control method, and carrier means | |
JP2019020851A (en) | Device control apparatus and device control method and program | |
JP2003015846A (en) | Image printing system, printing control terminal, connected media converter, printing control method, printing control program and connected media conversion program | |
JP6482272B2 (en) | Device control apparatus, client, device control method, and device control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110804 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120823 |
|
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: 20120904 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121004 |
|
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: 20151109 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |