JP2010113606A - System, client and method for sharing device - Google Patents

System, client and method for sharing device Download PDF

Info

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
Application number
JP2008286855A
Other languages
Japanese (ja)
Other versions
JP5124779B2 (en
JP2010113606A5 (en
Inventor
Yasushi Inaba
泰 稲葉
Hidenori Tanii
秀典 谷井
Takashi Kato
隆 加藤
Inochi Negishi
命 根岸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Imaging Systems Inc
Original Assignee
Canon Imaging Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Imaging Systems Inc filed Critical Canon Imaging Systems Inc
Priority to JP2008286855A priority Critical patent/JP5124779B2/en
Publication of JP2010113606A publication Critical patent/JP2010113606A/en
Publication of JP2010113606A5 publication Critical patent/JP2010113606A5/ja
Application granted granted Critical
Publication of JP5124779B2 publication Critical patent/JP5124779B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a means to control a user to access devices only when necessary by reducing a processing load at a server side without forcing manual operation, when sharing the devices (peripheral device) such as a printer and a storage by a client PC (Personal Computer) on a network. <P>SOLUTION: A client PC performs simulation as if the device is directly connected by a connection simulation means based on the connection information of the device obtained through the network, generates a control command to the device if an I/O instruction is issued from an application layer, indicates the start of a session with a server to a connection simulation means if an input/output port of a control command is opened, performs the input/output of data between the devices through a server if session connection is started, indicates a session end with the server to the connection simulation means if the input/output port is closed, and terminates the session. <P>COPYRIGHT: (C)2010,JPO&INPIT

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 PC 1, and the device server is The device information of the printer is acquired via the printer driver, and a device driver necessary for using the printer is loaded.

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 PC 1 executes a printer termination operation using a utility, a session termination request is sent from the device driver of the PC 1 to the device server. When the PC 1 receives a “OK” response for session termination from the device server, the PC 1 unloads the printer device driver and terminates the session connection with the device server.

ここで、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).

特開2007−317067号公報JP 2007-317067 A

しかし、特許文献1に開示されたネットワークファイル管理システムでは、複数のクライアントPCから手動操作を行うことなく、ストレージを共有することはできるものの、多数のアクセス要求を処理し、特定のクライアントPCに対するデータ伝送専有状態の設定・解除を制御するために、デバイスサーバには高い処理性能が要求されるので、デバイスサーバの高価格化は避けられない。 However, in the network file management system disclosed in Patent Document 1, although it is possible to share storage without performing manual operation from a plurality of client PCs, a large number of access requests are processed and data for a specific client PC is processed. In order to control the setting / canceling of the transmission exclusive state, the device server is required to have high processing performance.

上記問題に鑑みて、本発明は、ストレージやプリンタなどのデバイス(周辺機器)をネットワーク上のクライアント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 claim 1 is a client that inputs / outputs data to / from a device connected to a server via a network, and instructs input / output to the device. Application layer, device connection information acquisition means for acquiring connection information of the device via the network, and connection simulation means for simulating that the device is directly connected based on the connection information of the device When,
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 Patent Document 1 into the device server, so that the load on the device server is reduced, and a plurality of network systems can be configured with an inexpensive network system configuration. It becomes possible to share the device from the client PC.

さらに、本発明によれば、クライアント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 PC 100A, a PC 100B, a device server 200, a printer 300 (device), and the like.

このネットワークシステムでは、デバイスサーバ200とプリンタ300をUSB(Universal
Serial Bus)やIEEE1394などのインターフェースに準拠した接続ケーブル400でローカル接続する。また、デバイスサーバ200とPC100(PC100A,PC100B)は、有線又は無線のネットワーク500で接続する。
In this network system, the device server 200 and the printer 300 are connected by USB (Universal
(Serial Bus) and IEEE 1394, etc., are connected locally with a connection cable 400 compliant with the interface. The device server 200 and the PC 100 (PC 100A, PC 100B) are connected by a wired or wireless network 500.

また、図1のネットワークシステムでは、デバイスサーバ200、プリンタ300をそれぞれ別体の装置で構成しているが、この構成に限定されるものではなく、同等の機能を実現できる構成であれば種々の構成を採り得ることは勿論である。例えば、デバイスサーバ200をプリンタ300のケーシング内に収まるように一体構造としても良い。 In the network system of FIG. 1, the device server 200 and the printer 300 are configured as separate devices. However, the present invention is not limited to this configuration, and various configurations are possible as long as an equivalent function can be realized. Of course, the configuration can be adopted. For example, the device server 200 may be integrated so as to fit in the casing of the printer 300.

なお、以降の説明においては、クライアント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 client PC 100 will be described. The PC 100 (PC 100A, PC 100B) is a device such as a personal computer, for example, and is configured to be connected to the network 500 and use the printer 300 via the device server 200.

図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 (PC 100A, PC 100B).

PC100は、CPU101、入力部102、表示部103、メモリ104、通信部105、外部記憶部106などから構成されており、これらが内部バス107で接続されている。 The PC 100 includes a CPU 101, an input unit 102, a display unit 103, a memory 104, a communication unit 105, an external storage unit 106, and the like, which are connected by an internal bus 107.

外部記憶部106は、OS110、アプリケーションプログラム111、本発明を実現するためのソフトウェア群112〜118(後述)など各種ソフトウェアが記録されている。ここで、アプリケーションプログラム111とは、プリンタ300に対して印刷処理を実行させることができるソフトウェアプログラムを指す。 The external storage unit 106 stores various software such as an OS 110, an application program 111, and software groups 112 to 118 (described later) for realizing the present invention. Here, the application program 111 refers to a software program that can cause the printer 300 to execute print processing.

外部記憶部106に記憶されたこれらソフトウェアは、CPU101の制御に従い、メモリ104上に読み出されて実行される。 The software stored in the external storage unit 106 is read out and executed on the memory 104 under the control of the CPU 101.

通信部105は、ネットワーク500(有線又は無線ネットワーク)に接続するためのインターフェースであり、デバイスサーバ200との間でデータ通信を行うことで、PC100からデバイスサーバ200を介したプリンタ300へのアクセスを可能とする。 The communication unit 105 is an interface for connecting to the network 500 (wired or wireless network). By performing data communication with the device server 200, the PC 100 can access the printer 300 via the device server 200. Make it possible.

本発明を実現するためのソフトウェア群112〜118について説明する。 The software groups 112 to 118 for realizing the present invention will be described.

ネットワークインターフェース層112は、Ethernet(登録商標)のような有線ネットワーク、若しくは、IEEE802.11aやIEEE802.11bのような無線ネットワークなどネットワーク500に対応したネットワークパケットによる送受信や通信制御を行うためのソフトウェアである。 The network interface layer 112 is software for performing transmission / reception and communication control by network packets corresponding to the network 500 such as a wired network such as Ethernet (registered trademark) or a wireless network such as IEEE802.11a and IEEE802.11b. is there.

ネットワークプロトコル層113は、USBパケットに対してIP(Internet Protocol)ヘッダの付加、取り外しの処理を行い、ネットワーク500を介して接続されているデバイスサーバ200との間のデータ通信を制御するソフトウェアである。 The network protocol layer 113 is software that performs addition / removal processing of an IP (Internet Protocol) header on a USB packet and controls data communication with the device server 200 connected via the network 500. .

常駐サービス114は、クライアントPC100が起動するとともに動作を開始してデバイスサーバ200を監視するソフトウェアである。また、後述するUSB仮想バスドライバ115をロードするソフトウェアである。 The resident service 114 is software that monitors the device server 200 by starting the operation when the client PC 100 is activated. Further, it is software for loading a USB virtual bus driver 115 described later.

さらに、常駐サービス114は、ネットワークプロトコル層113とネットワークインターフェース層112を介してUDPなどを用いてデバイスサーバ200と通信し、デバイスサーバ200との接続状態及びプリンタ300との接続状態を定期的に確認する。 Furthermore, the resident service 114 communicates with the device server 200 using UDP or the like via the network protocol layer 113 and the network interface layer 112, and periodically checks the connection state with the device server 200 and the connection state with the printer 300. To do.

ここで、デバイスサーバ200との間の接続状態とは、ネットワーク500との物理的な接続状態及び他のクライアントPCとのセッションの有無などが含まれる。また、プリンタ300の接続状態とは、プリンタ300とでデバイスサーバ200をローカル接続している接続ケーブル400の接続状態及びプリンタ300の電源オン・オフなどの状態が含まれる。 Here, the connection state with the device server 200 includes the physical connection state with the network 500 and the presence / absence of a session with another client PC. Further, the connection state of the printer 300 includes a connection state of the connection cable 400 that locally connects the device server 200 to the printer 300 and a state such as power on / off of the printer 300.

USB仮想バスドライバ115は、クライアントPCに擬似的にプリンタ300(デバイス)が接続されたようにシミュレートし、OS110のモジュールであるUSBプリンタクラスドライバ116をロードするソフトウェアである。また、後述するUSBフィルタドライバ117からの通知に基づいてデバイスサーバ200との間のセッション制御を行うソフトウェアである。 The USB virtual bus driver 115 is software that simulates a printer 300 (device) connected to a client PC in a pseudo manner and loads a USB printer class driver 116 that is a module of the OS 110. Further, it is software that performs session control with the device server 200 based on a notification from the USB filter driver 117 described later.

USBプリンタクラスドライバ116は、プラグアンドプレイイベントを生成し、また、制御コマンドを送受信するためのUSBポートを作成するとともに、その上位にUSBフィルタドライバ117及びプリンタドライバ118をロードするソフトウェアである。さらに、後述するプリンタドライバ118で生成される制御コマンドをUSBパケットに変換し、USBパケットを制御コマンドに変換するソフトウェアである。 The USB printer class driver 116 is software that generates a plug-and-play event, creates a USB port for transmitting and receiving control commands, and loads the USB filter driver 117 and the printer driver 118 on top of it. Furthermore, it is software that converts a control command generated by a printer driver 118, which will be described later, into a USB packet, and converts the USB packet into a control command.

USBフィルタドライバ117は、USBポートの「オープン」、「クローズ」やUSBポートを通過する制御コマンドの送受信を監視するソフトウェアである。また、監視した情報(以下、監視結果)をもとに、USB仮想バスドライバ115と連携することで、セッション接続の開始、終了を制御するソフトウェアである。 The USB filter driver 117 is software for monitoring “open” and “close” of a USB port and transmission / reception of a control command passing through the USB port. Also, software that controls the start and end of session connection by cooperating with the USB virtual bus driver 115 based on the monitored information (hereinafter, monitoring result).

なお、セッション接続の開始、終了は、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 printer driver 118 is software that generates a control command for the printer 300 as a device and waits for a response to the control command in accordance with an instruction from higher-layer software (hereinafter, upper-layer software) such as the OS 110 and the application program 111. The software also controls “open” and “close” of the USB port in accordance with an instruction from the upper layer software.

次に、デバイスサーバ200について説明する。デバイスサーバ200は、PC100A,100Bとデバイスであるプリンタ300と間の接続制御を行う装置である。 Next, the device server 200 will be described. The device server 200 is a device that performs connection control between the PCs 100A and 100B and the printer 300 that is a device.

図3は、デバイスサーバ200のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。 FIG. 3 is a block diagram illustrating an example of the hardware configuration and software configuration of the device server 200.

デバイスサーバ200は、CPU201、入力部202、表示部203、ROM204、RAM205、通信部206、USB
I/F(インターフェース)207などから構成されており、これらが内部バス208で接続されている。
The device server 200 includes a CPU 201, an input unit 202, a display unit 203, a ROM 204, a RAM 205, a communication unit 206, a USB
An I / F (interface) 207 is configured, and these are connected by an internal bus 208.

ROM(Read Only Memory)204には、OS210、制御プログラム211、本発明を実現するためのソフトウェア群212〜213(後述)など各種ソフトウェアが記録されており、これらソフトウェアは、CPU201の制御に従い、RAM205上に読み出されて実行される。 A ROM (Read Only Memory) 204 stores various software such as an OS 210, a control program 211, and software groups 212 to 213 (to be described later) for realizing the present invention. These software are stored in the RAM 205 according to the control of the CPU 201. It is read out and executed.

USBインターフェース207は、接続ケーブル400を介してプリンタ300とローカル接続するためのインターフェースである。 The USB interface 207 is an interface for local connection with the printer 300 via the connection cable 400.

通信部206は、ネットワーク500(有線又は無線ネットワーク)に接続してPC100との間でデータ通信するためのインターフェースである。 The communication unit 206 is an interface for data communication with the PC 100 by connecting to the network 500 (wired or wireless network).

本発明を実現するためのソフトウェア群212〜213について説明する。 The software groups 212 to 213 for realizing the present invention will be described.

通信層212は、ネットワークに接続された通信部206の制御を行うとともに、ネットワーク500に接続されているPC100との間のセッション制御やネットワークパケットによる通信を行うソフトウェアである。 The communication layer 212 is software that controls the communication unit 206 connected to the network, and performs session control and communication using network packets with the PC 100 connected to the network 500.

また、USBコマンド層213との間で通信するため、ネットワークパケットとUSBパケットとの変換を行う。ネットワークパケットはUSBパケットにIPヘッダを付加して作成するため、変換にはIPヘッダの取り付け及び取り外しを行う。 In addition, in order to communicate with the USB command layer 213, a network packet and a USB packet are converted. Since a network packet is created by adding an IP header to a USB packet, the IP header is attached and removed for conversion.

USBコマンド層213は、USBパケットに基づいて、プリンタ300との間でデータ通信を行うソフトウェアである。 The USB command layer 213 is software that performs data communication with the printer 300 based on the USB packet.

なお、通信層212、USBコマンド層213は、プリンタ300内に内蔵する構成であっても良い。また、通信層212の機能を備えたソフトウェアを別筐体内に設け、デバイス(プリンタ300)に接続可能なインターフェースを有した外付けアダプタの形態として構成してもよい。この場合は、USBコマンド層213の機能を持つソフトウェアは、プリンタ300側のRAMや外部記憶装置などに記録しておく構成とする。 Note that the communication layer 212 and the USB command layer 213 may be built in the printer 300. Further, software having the function of the communication layer 212 may be provided in a separate housing and configured as an external adapter having an interface that can be connected to the device (printer 300). In this case, software having the function of the USB command layer 213 is recorded in a RAM or an external storage device on the printer 300 side.

プリンタ300は、PC100で作成した文字データや画像データ、図形データなどを紙やシートなどの媒体に印刷する装置(デバイス)である。 The printer 300 is a device (device) that prints character data, image data, graphic data, and the like created by the PC 100 on a medium such as paper or sheet.

なお、本発明の実施の形態は、デバイスとしてプリンタを例に説明しているが、例えば、ストレージやスキャナなど、別の機能を備えたデバイスであってもよく、更に、多機能周辺装置(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 PC 100 and the device server 200 and the communication between the PC 100 and the printer 300 whose software configurations have been described with reference to FIGS. 2 and 3 will be described with reference to FIG.

まず、PC100からプリンタ300へデータ送信を行う場合について説明する。 First, a case where data transmission from the PC 100 to the printer 300 will be described.

PC100においてプリンタ300へのアクセス要求が発生すると、プリンタドライバ118は、アクセス要求の内容に応じて制御コマンドを生成し、USBポートを「オープン」させる。そして、生成した制御コマンドをUSBポートからUSBフィルタドライバ117を経由してUSBプリンタクラスドライバ116へ送る。 When an access request to the printer 300 is generated in the PC 100, the printer driver 118 generates a control command in accordance with the content of the access request and “opens” the USB port. The generated control command is sent from the USB port to the USB printer class driver 116 via the USB filter driver 117.

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 filter driver 117 detects this and notifies the USB virtual bus driver 115, and the USB virtual bus driver 115 communicates with the device server 200. If the session connection is not started, a session start request is sent to the device server 200.

USBプリンタクラスドライバ116は、USBフィルタドライバ117を経由して送られてきた制御コマンドをUSBパケットに変換し、USB仮想バスドライバ115へ送る。 The USB printer class driver 116 converts the control command sent via the USB filter driver 117 into a USB packet and sends it to the USB virtual bus driver 115.

USB仮想バスドライバ115では、デバイスサーバ200との間でセッション接続を開始すると、USBプリンタクラスドライバ116から送られてくるUSBパケットをネットワークプロトコル層113に送る。 When the USB virtual bus driver 115 starts a session connection with the device server 200, the USB virtual bus driver 115 sends the USB packet sent from the USB printer class driver 116 to the network protocol layer 113.

ネットワークプロトコル層113は、USB仮想バスドライバ115から送られてきたUSBパケットにIPヘッダを付加し、ネットワーク500に適した形式のデータであるネットワークパケットを作成する。 The network protocol layer 113 adds an IP header to the USB packet sent from the USB virtual bus driver 115 to create a network packet that is data in a format suitable for the network 500.

ネットワークインターフェース層116は、ネットワークプロトコル層115で作成されたネットワークパケットをネットワーク500を介してデバイスサーバ200に送出する。 The network interface layer 116 sends the network packet created in the network protocol layer 115 to the device server 200 via the network 500.

このように、デバイスサーバ200の通信層212とPC100のUSB仮想バスドライバ115の間は、信頼性のあるTCPプロトコルを用いており、セッション接続の開始・終了は、PC100のUSBフィルタドライバ117がUSBポートの「オープン」、「クローズ」の状態やUSBポートにおけるコマンドデータの送受信状態を監視し、USB仮想バスドライバ115と連携することによって制御している。 As described above, the reliable TCP protocol is used between the communication layer 212 of the device server 200 and the USB virtual bus driver 115 of the PC 100, and the USB filter driver 117 of the PC 100 starts and ends the session connection. The port “open” and “closed” states and the command data transmission / reception state of the USB port are monitored and controlled by cooperating with the USB virtual bus driver 115.

サーバ200では、まず、通信層212で、PC100からネットワーク500を介して送信されたネットワークパケットを受信し、ネットワークパケットからIPヘッダを取り外すことでUSBパケットに変換し、これをUSBコマンド層213へ送る。 In the server 200, first, the communication layer 212 receives a network packet transmitted from the PC 100 via the network 500, converts the IP packet from the network packet into a USB packet, and sends this to the USB command layer 213. .

USBコマンド層213では、通信層212から送られたUSBパケットを、接続ケーブル400を介してプリンタ300へ送る。 In the USB command layer 213, the USB packet sent from the communication layer 212 is sent to the printer 300 via the connection cable 400.

プリンタ300は、デバイスサーバ200から送られてきたUSBパケットを制御コマンドに変換して解析し、解析結果に応じた印刷処理を実行する。 The printer 300 converts the USB packet sent from the device server 200 into a control command and analyzes it, and executes a printing process according to the analysis result.

次に、プリンタ300からPC100へデータ送信(応答)を行う場合について説明する。 Next, a case where data transmission (response) is performed from the printer 300 to the PC 100 will be described.

上述した印刷処理などを行ったプリンタ300は、その結果をPC100に対する応答コマンドとしてUSBパケットでデバイスサーバ200へ送る。 The printer 300 that has performed the above-described print processing or the like sends the result to the device server 200 as a response command to the PC 100 using a USB packet.

デバイスサーバ200では、USBコマンド層213がプリンタからの応答コマンドであるUSBパケットを受け取り、それを通信層212へ送る。 In the device server 200, the USB command layer 213 receives a USB packet that is a response command from the printer, and sends it to the communication layer 212.

通信層212では、USBコマンド層213からのUSBパケットにIPヘッダを付加し、ネットワーク500に適した形式のデータであるネットワークパケットを作成し、ネットワーク500を介してPC100に送出する。 In the communication layer 212, an IP header is added to the USB packet from the USB command layer 213, a network packet that is data in a format suitable for the network 500 is created, and the network packet is sent to the PC 100 via the network 500.

このようにして、PC100とプリンタ300との間でデバイスサーバ200を介したデータ通信が実行されることになる。 In this way, data communication is executed between the PC 100 and the printer 300 via the device server 200.

次に、PC100(PC100A,PC100B)の基本制御フローについて、図5及び図6を参照しながら説明する。まず、図5は、PC100がプリンタ300にアクセスして印刷処理を実行するために必要なデバイスドライバをロードするまでの制御動作の手順を示すフローチャートである。 Next, a basic control flow of the PC 100 (PC 100A, PC 100B) will be described with reference to FIGS. First, FIG. 5 is a flowchart showing the procedure of the control operation until the PC 100 loads the device driver necessary for accessing the printer 300 and executing the printing process.

ユーザがPC100を起動すると、PC100内のソフトウェア群の中の常駐サービス114が動作し、UDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する。(ステップS501)。 When the user activates the PC 100, the resident service 114 in the software group in the PC 100 operates, communicates with the device server 200 using UDP or the like, and starts monitoring the connection state with the device server 200 and the like. At the same time, the connection state of the printer 300 connected to the device server 200 is confirmed. (Step S501).

常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200が他のクライアントPCとセッション接続中か否か判断するとともに、プリンタ300との接続状態を判断する(ステップS502)。 Based on the response from the device server 200, the resident service 114 determines whether or not the device server 200 is in session connection with another client PC and determines the connection state with the printer 300 (step S502).

プリンタ300との接続が正常な状態でない、又は、デバイスサーバ200が他のクライアントPCとセッション接続中の場合(ステップS502でNo)、再び、ステップS501の処理に戻り、定期的にデバイスサーバ200の状態及びプリンタ300の接続状態の確認を行う。 If the connection with the printer 300 is not normal or the device server 200 is in session connection with another client PC (No in step S502), the process returns to step S501 again, and the device server 200 periodically The status and the connection status of the printer 300 are checked.

プリンタ300との接続が正常であり、デバイスサーバ200が他のクライアントPCとセッション接続中でない場合(ステップS502でYes)、常駐サービス114はUSB仮想バスドライバ115をロードする(ステップS503)。 When the connection with the printer 300 is normal and the device server 200 is not in session connection with another client PC (Yes in step S502), the resident service 114 loads the USB virtual bus driver 115 (step S503).

常駐サービス114は、USB仮想バスドライバ115をロードが完了すると、デバイスドライバのマウント命令を発行する(ステップS504)。 When the loading of the USB virtual bus driver 115 is completed, the resident service 114 issues a device driver mount command (step S504).

USB仮想バスドライバ115は、デバイスドライバのマウント命令が発行されると、デバイスサーバ200に対してセッション開始要求を送る(ステップS505)。 When the device virtual device driver mount command is issued, the USB virtual bus driver 115 sends a session start request to the device server 200 (step S505).

デバイスサーバ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 resident service 114 issues an unmount command (step S513) and unloads the USB virtual bus driver 115 (step S514). ), The process returns to step S501 again.

デバイスサーバ200との間のセッション接続が開始されると(ステップS506でYes)、USB仮想バスドライバ115は、デバイスサーバ200に対して、プリンタ300のデバイスドライバをロードするために必要となるデバイス情報を要求する(ステップS507)。 When the session connection with the device server 200 is started (Yes in step S506), the USB virtual bus driver 115 is device information necessary for loading the device driver of the printer 300 to the device server 200. Is requested (step S507).

このとき、デバイスサーバ200は、PC100からのデバイス情報の要求をプリンタ300に送り、プリンタ300からデバイス情報の応答があると、このデバイス情報をPC100に返す。 At this time, the device server 200 sends a request for device information from the PC 100 to the printer 300, and returns the device information to the PC 100 when there is a device information response from the printer 300.

PC100では、USB仮想バスドライバ115がデバイス情報の応答を受けて、プリンタ300が擬似的に接続されたようにシミュレートし、取得したデバイス情報に基づき、USBプリンタクラスドライバ116をロードする。(ステップS508)。 In the PC 100, the USB virtual bus driver 115 receives the response of the device information, simulates that the printer 300 is connected in a pseudo manner, and loads the USB printer class driver 116 based on the acquired device information. (Step S508).

USBプリンタクラスドライバ116は、USBポートを作成するとともに、その上位にUSBフィルタドライバ117及びプリンタドライバ118をロードする(ステップS509、ステップS510)。 The USB printer class driver 116 creates a USB port and loads the USB filter driver 117 and the printer driver 118 on top of it (steps S509 and S510).

プリンタドライバ118のロードが完了すると、USB仮想バスドライバ115は、デバイスサーバ200に対してセッション終了要求を送る(ステップS511)。そして、デバイスサーバ200との間のセッションの終了処理を行い、PC100とデバイスサーバ200との間のセッションを終了する(ステップS512)。 When the loading of the printer driver 118 is completed, the USB virtual bus driver 115 sends a session end request to the device server 200 (step S511). Then, the session between the device server 200 is terminated, and the session between the PC 100 and the device server 200 is terminated (step S512).

セッションが終了すると、PC100には、プリンタ300にアクセスして印刷するために必要なデバイスドライバが全てロードされた状態となる。そして、上位層のソフトウェア)から実行指示(以下、印刷実行命令)が発行されるまでの間、待機状態となる。 When the session ends, the PC 100 is loaded with all the device drivers necessary for accessing the printer 300 and printing. A standby state is entered until an execution instruction (hereinafter referred to as a print execution instruction) is issued from the upper layer software.

次に、PC100(PC100A,PC100B)において、上位層のソフトウェアから印刷実行命令が発行されてプリンタ300に印刷処理を実行させるときの制御動作の手順を図6に示すフローチャートを参照しながら説明する。 Next, in the PC 100 (PC 100A, PC 100B), a control operation procedure when a print execution command is issued from higher-layer software and the printer 300 executes print processing will be described with reference to the flowchart shown in FIG.

なお、上述した図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 PC 100 and that the PC 100 is in a standby state until a print execution command is issued from the upper layer software. To do.

PC100によりプリンタ300で印刷処理を実行させるとき、上位層のソフトウェアから印刷実行命令が発行される(ステップS601)。 When the PC 300 causes the printer 300 to execute print processing, a print execution command is issued from the upper layer software (step S601).

上位層のソフトウェアから印刷実行命令が発行されると、PC100のプリンタドライバ118は、印刷実行命令に応じた制御コマンドを生成し、USBポートを「オープン」する(ステップS602)。 When a print execution command is issued from the upper layer software, the printer driver 118 of the PC 100 generates a control command corresponding to the print execution command, and “opens” the USB port (step S602).

そして、生成した制御コマンドをUSBポートからUSBフィルタドライバ117を経由してプリンタクラスドライバ116に送る。プリンタクラスドライバ116では、制御コマンドをUSBパケットに変換し、USB仮想バスドライバ115に送る(ステップS603)。 The generated control command is sent from the USB port to the printer class driver 116 via the USB filter driver 117. The printer class driver 116 converts the control command into a USB packet and sends it to the USB virtual bus driver 115 (step S603).

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 USB filter driver 117 detects this and notifies the USB virtual bus driver 115, and the USB virtual bus driver 115 is not connected to a session. If so, a session start request is sent to the device server 200 (step 604).

このセッション開始要求に対し、デバイスサーバ200から「NG」応答があり、セッション接続を開始できない場合(ステップS605でNo)、ステップS604へ戻り、セッション接続が開始可能となるまで、デバイスサーバ200に対して定期的にセッション開始要求を送る。 If there is an “NG” response from the device server 200 in response to this session start request and the session connection cannot be started (No in step S605), the process returns to step S604, and the device server 200 is instructed until the session connection can be started. Periodically send a session start request.

一方、デバイスサーバ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 PC 100 starts a session connection with the device server 200 (step S606). As a result, the PC 100 can access the printer 300 via the device server 200 and perform print processing.

PC100は、上位層のソフトウェアからの指示に応じた制御コマンドを生成してデバイスサーバ200に送り、プリンタ300は、デバイスサーバ200から受信した制御コマンドに応じた印刷処理を実行し、その結果などをデバイスサーバ200に応答する(ステップS607)。 The PC 100 generates a control command according to an instruction from the upper layer software and sends it to the device server 200. The printer 300 executes a printing process according to the control command received from the device server 200, and displays the result. It responds to the device server 200 (step S607).

そして、上位層のソフトウェアから終了指示(以下、印刷終了命令)が発行されるまでステップ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 PC 100, the printer driver 118 generates a control command corresponding to the print end command (hereinafter, “end command”), and sends the end command to the device server via the USB virtual bus driver 115. 200 (Yes in step S608).

このとき、デバイスサーバ200では、PC100から受信した終了コマンドをプリンタ300に送信し、プリンタ300からの終了コマンドに対する応答を受信してPC100Aに送る処理を実行する。 At this time, the device server 200 executes a process of transmitting the end command received from the PC 100 to the printer 300, receiving a response to the end command from the printer 300, and sending it to the PC 100A.

PC100のプリンタドライバ118は、終了コマンドに対する応答を受信すると、USBポートを「クローズ」し、USBフィルタドライバ117は、USBポートの「クローズ」をUSB仮想バスドライバ115に通知する(ステップS609)。 Upon receiving a response to the end command, the printer driver 118 of the PC 100 “closes” the USB port, and the USB filter driver 117 notifies the USB virtual bus driver 115 of “closed” of the USB port (step S609).

USB仮想バスドライバ115は、USBポート「クローズ」の通知を受けると、デバイスサーバ200に対してセッション終了要求を送る(ステップS610)。 Upon receiving the notification of the USB port “closed”, the USB virtual bus driver 115 sends a session end request to the device server 200 (step S610).

デバイスサーバ200からセッション終了「OK」の応答を受信すると、USB仮想バスドライバ115は、PC100Aとデバイスサーバ200との間のセッションを終了する(ステップS611)。そして、再び、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。 When receiving the session end “OK” response from the device server 200, the USB virtual bus driver 115 ends the session between the PC 100A and the device server 200 (step S611). Then, it again enters a standby state until a print execution command is issued from the upper layer software.

なお、クライアントPCは、セッションが終了した後も常駐サービス114によって定期的に(例えば、1分間隔)デバイスサーバ200との間の接続状態を監視し、プリンタ300との接続状態を確認している。 Note that the client PC regularly monitors the connection state with the device server 200 by the resident service 114 (for example, at an interval of 1 minute) and confirms the connection state with the printer 300 even after the session ends. .

従って、デバイスサーバ200との間のネットワーク500が終了、電源断、又は、プリンタ300の接続ケーブル断、電源断などの異常を検出した場合、常駐サービス114からアンマウント命令を発行し、ロードされているデバイスドライバ(プリンタドライバ118、USBフィルタドライバ117、USBプリンタクラスドライバ116、USB仮想デバイスドライバ115)をアンロードするようにしてもよい。 Therefore, when the network 500 with the device server 200 is terminated, the power supply is cut off, or an abnormality such as a cut off of the connection cable or the power supply of the printer 300 is detected, an unmount command is issued from the resident service 114 and loaded. The device drivers (printer driver 118, USB filter driver 117, USB printer class driver 116, USB virtual device driver 115) may be unloaded.

本実施の形態では、デバイスドライバのロードが完了した際にセッション接続を一旦終了させる(図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 device server 200 will be described with reference to FIG.

デバイスサーバ200では、PC100からのパケットの受信を監視している。 The device server 200 monitors reception of packets from the PC 100.

セッション開始要求のパケットを受信した場合(ステップ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 PC 100 is started (step 704). When the session connection is completed, “OK” is returned as a response command (step S705).

一方、上述したステップ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 PC 100 is terminated (step S707), and “OK” is returned as a response command (step S708).

一方、上述したステップ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 PC 100A accesses the printer 300 to execute the printing process until it is finished will be described.

簡略化して分り易く説明するために、まず、PC100A一台だけがプリンタ300にアクセスする場合(1対1で接続する場合)について、図8を参照しながら説明する。 For the sake of simplification and easy-to-understand explanation, first, a case where only one PC 100A accesses the printer 300 (in the case of one-to-one connection) will be described with reference to FIG.

はじめに、図5で示したように、PC100において、プリンタ300のアクセスに必要なデバイスドライバが全てロードされ、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となるまでの過程を説明する。 First, as shown in FIG. 5, a process until all device drivers necessary for accessing the printer 300 are loaded in the PC 100 and a print execution command is issued from the upper layer software until the printer 100 enters a standby state. Will be explained.

ここでは、他のクライアントPCからのセッション開始要求の有無を考慮せず、PC100Aからのセッション開始要求に対して、デバイスサーバ200は常に「OK」を応答するものとする。 Here, it is assumed that the device server 200 always responds “OK” to a session start request from the PC 100A without considering the presence or absence of a session start request from another client PC.

ユーザがPC100Aを起動すると、PC100A内のソフトウェア群の中の常駐サービス114が動作する。そして、UDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する(タイミングT801)。 When the user activates the PC 100A, the resident service 114 in the software group in the PC 100A operates. Then, communication with the device server 200 is performed using UDP or the like, and monitoring of the connection state with the device server 200 is started, and the connection state of the printer 300 connected to the device server 200 is confirmed (timing) T801).

PC100Aの常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200が他のクライアントPCとセッション接続中でなく、プリンタ300が正常に接続されていることを確認すると、USB仮想バスドライバ115をロードし、デバイスドライバのマウント命令を発行する(タイミングT802)。 When the resident service 114 of the PC 100A confirms from the response from the device server 200 that the device server 200 is not in session connection with another client PC and the printer 300 is normally connected, the USB virtual bus driver 115 is connected. Load and issue a device driver mount command (timing T802).

USB仮想バスドライバ115のロードが完了すると、USB仮想バスドライバ115は、デバイスサーバ200に対してセッション開始要求を送る(タイミングT803)。 When the loading of the USB virtual bus driver 115 is completed, the USB virtual bus driver 115 sends a session start request to the device server 200 (timing T803).

デバイスサーバ200が、PC100Aに対して「OK」を応答すると、PC100Aとデバイスサーバ200の間のセッション接続が開始される(タイミングT804)。 When the device server 200 responds “OK” to the PC 100A, the session connection between the PC 100A and the device server 200 is started (timing T804).

セッション接続が開始され、デバイスサーバ200を介してプリンタ300へのアクセスが可能となると、PC100Aは、デバイスサーバ200に対してデバイス情報を要求する(タイミングT805)。 When the session connection is started and the printer 300 can be accessed via the device server 200, the PC 100A requests device information from the device server 200 (timing T805).

デバイスサーバ200は、PC100Aからのデバイス情報の要求をプリンタ300に送り(タイミングT806)、プリンタ300からデバイス情報の応答があると(タイミングT807)、このデバイス情報をPC100Aに返す(タイミングT808)。 The device server 200 sends a device information request from the PC 100A to the printer 300 (timing T806). When there is a device information response from the printer 300 (timing T807), the device server 200 returns this device information to the PC 100A (timing T808).

PC100Aでは、取得したデバイス情報に基づき、USB仮想バスドライバ115によって擬似的にプリンタ300が接続されたようにシミュレートし、OS110のモジュールであるUSBプリンタクラスドライバ116をロードする。 In the PC 100A, the USB virtual bus driver 115 simulates the printer 300 based on the acquired device information, and loads the USB printer class driver 116, which is a module of the OS 110.

USBプリンタクラスドライバ116は、USBポートを作成するとともに、その上位にUSBフィルタドライバ117及びプリンタドライバ118をロードする(タイミングT809)。 The USB printer class driver 116 creates a USB port and loads the USB filter driver 117 and the printer driver 118 on top of it (timing T809).

プリンタドライバ118のロードが完了すると、USB仮想バスドライバ115は、デバイスサーバ200に対してセッション終了要求を送り、PC100Aとデバイスサーバ200との間のセッションを終了する(タイミングT810)。 When the loading of the printer driver 118 is completed, the USB virtual bus driver 115 sends a session end request to the device server 200 and ends the session between the PC 100A and the device server 200 (timing T810).

この時点で、PC100Aには、プリンタ300のアクセスに必要なデバイスドライバが全てロードされ、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。 At this time, all the device drivers necessary for accessing the printer 300 are loaded on the PC 100A, and the PC 100A is in a standby state until a print execution command is issued from the upper layer software.

続いて、図6で示したように、待機状態のPC100Aがプリンタ300に印刷処理を実行させるまでの過程を説明する。 Next, as shown in FIG. 6, a process until the PC 100A in the standby state causes the printer 300 to execute a printing process will be described.

プリンタ300に印刷処理を実行させるため、上位層のソフトウェアから印刷実行命令が発行されると(タイミングT811)、PC100Aのプリンタドライバ118は、印刷実行命令に応じた制御コマンドを生成し、USBポートを「オープン」する(タイミングT812)。 When a print execution command is issued from upper layer software to cause the printer 300 to execute print processing (timing T811), the printer driver 118 of the PC 100A generates a control command according to the print execution command, and sets the USB port. “Open” (timing T812).

そして、生成した制御コマンドをUSBポートからUSBフィルタドライバ117を経由してUSBプリンタクラスドライバ116に送る。USBプリンタクラスドライバ116では、送られてきた制御コマンドをUSBコマンドに変換してUSB仮想バスドライバ115に送る(タイミングT813)。 The generated control command is sent from the USB port to the USB printer class driver 116 via the USB filter driver 117. The USB printer class driver 116 converts the sent control command into a USB command and sends it to the USB virtual bus driver 115 (timing T813).

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 USB filter driver 117 detects this and notifies the USB virtual bus driver 115. If the session is not connected, the USB virtual bus driver 115 is detected. Sends a session start request to the device server 200 (timing T814).

デバイスサーバ200から、セッション開始要求に対する「OK」応答を受信すると、PC100Aはデバイスサーバ200との間のセッション接続を開始する(タイミングT815)。 When receiving an “OK” response to the session start request from the device server 200, the PC 100A starts a session connection with the device server 200 (timing T815).

PC100AのUSB仮想バスドライバ115では、デバイスサーバ200から「OK」応答があり、セッション接続が開始されると、プリンタ300に対する制御コマンドをデバイスサーバ200へ送信する(タイミングT816)。 When there is an “OK” response from the device server 200 and the session connection is started, the USB virtual bus driver 115 of the PC 100A transmits a control command for the printer 300 to the device server 200 (timing T816).

デバイスサーバ200は、制御コマンドを受信すると、これをプリンタ300に送信する(タイミングT817)。プリンタ300は、この制御コマンドに応じて印刷処理を実行し、その実行結果の応答をデバイスサーバ200に返す(タイミングT818)。デバイスサーバ200はプリンタ300からの応答をPC100Aに送る(タイミングT819)。 Upon receiving the control command, the device server 200 transmits it to the printer 300 (timing T817). The printer 300 executes the printing process in response to this control command, and returns a response of the execution result to the device server 200 (timing T818). The device server 200 sends a response from the printer 300 to the PC 100A (timing T819).

この後、デバイスサーバ200を介してPC100Aとプリンタ300との間でデータ通信が行われ、印刷処理が実行される。 Thereafter, data communication is performed between the PC 100A and the printer 300 via the device server 200, and print processing is executed.

PC100Aの上位層のソフトウェアから印刷終了命令が発行されると、プリンタドライバ118は、終了コマンドを生成し、USB仮想バスドライバ115を介してデバイスサーバ200に送信する(タイミングT820)。 When a print end command is issued from the upper layer software of the PC 100A, the printer driver 118 generates an end command and transmits it to the device server 200 via the USB virtual bus driver 115 (timing T820).

デバイスサーバ200は、受信した終了コマンドをプリンタ300に送信し(タイミングT821)、プリンタ300から終了コマンドに対する応答を受信すると(タイミングT822)、この応答をPC100Aに送る(タイミングT823)。 The device server 200 transmits the received end command to the printer 300 (timing T821), and when receiving a response to the end command from the printer 300 (timing T822), sends the response to the PC 100A (timing T823).

PC100Aのプリンタドライバ118は、終了コマンドに対する応答を受信すると、USBポートを「クローズ」し、USBフィルタドライバ117は、USBポートの「クローズ」をUSB仮想バスドライバ115に通知する(タイミングT824)。 Upon receiving a response to the end command, the printer driver 118 of the PC 100A “closes” the USB port, and the USB filter driver 117 notifies the USB virtual bus driver 115 of “closed” of the USB port (timing T824).

USB仮想バスドライバ115は、USBポート「クローズ」の通知を受けると、デバイスサーバ200に対してセッション終了要求を送る(タイミングT825)。そして、デバイスサーバ200との間でセッション終了処理を実行し、セッション終了「OK」の応答を受信すると、PC100Aとデバイスサーバ200との間のセッションが終了する(タイミングT826)。 Upon receiving the notification of the USB port “closed”, the USB virtual bus driver 115 sends a session end request to the device server 200 (timing T825). Then, a session end process is executed with the device server 200, and when a session end “OK” response is received, the session between the PC 100A and the device server 200 ends (timing T826).

次に、実際の運用により近いケースとして、前述のネットワークシステムにおいて、複数台のPC100(PC100A,PC100B)がプリンタ300にアクセスする場合(N対1で接続する場合)について、図9を参照しながら説明する。 Next, as a case closer to the actual operation, a case where a plurality of PCs 100 (PC 100A, PC 100B) access the printer 300 in the above-described network system (when N-to-1 connection is made) will be described with reference to FIG. explain.

図9は、PC100Aがセッション接続中のとき、若しくは、プリンタ300にアクセス中のときに、別のPC100Bからプリンタ300にアクセスしたときのタイミングチャートを示した説明図である。なお、PC100Aについては、前述した図8と同じ動作であるため、詳細な説明は省略する。 FIG. 9 is an explanatory diagram showing a timing chart when the PC 300A accesses the printer 300 from another PC 100B when the PC 100A is in session connection or is accessing the printer 300. The PC 100A has the same operation as that shown in FIG.

まず、PC100Aがデバイスドライバのロード中に、PC100Bからプリンタ300にアクセスしようとした場合について説明する。 First, a case where the PC 100A tries to access the printer 300 from the PC 100B while the device driver is being loaded will be described.

PC100Aは、常駐サービス114によりUDPなどでデータ通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する(タイミングT901)。 The PC 100A performs data communication by UDP or the like using the resident service 114, starts monitoring the connection state with the device server 200, and confirms the connection state of the printer 300 connected to the device server 200 (timing) T901).

PC100Bも同様に、常駐サービス114によりUDPなどでデータ通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する(タイミングT902)。 Similarly, the PC 100B performs data communication using the resident service 114 via UDP or the like, and starts monitoring the connection state with the device server 200 and confirms the connection state of the printer 300 connected to the device server 200. (Timing T902).

PC100Aの常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200が他のクライアントPCとセッション接続中でないことを確認すると、USB仮想バスドライバ115をロードし、デバイスドライバのマウント命令を発行する(タイミングT903)。 When the resident service 114 of the PC 100A confirms from the response from the device server 200 that the device server 200 is not in session connection with another client PC, it loads the USB virtual bus driver 115 and issues a device driver mount command. (Timing T903).

ここまでは、PC100A、PC100Bはともに、常駐サービス114によりUDPなどでデバイスサーバ200とデータ通信するため、セッションを使用(専有)することはない。 Up to this point, both the PC 100A and the PC 100B use the resident service 114 to perform data communication with the device server 200 using UDP or the like, and thus do not use (dedicated) the session.

ここで、PC100Aにおいて、ロードが完了したUSB仮想バスドライバ115からデバイスサーバ200に対してセッション開始要求が送られ、デバイスサーバ200から「OK」の応答があると、PC100Aとデバイスサーバ200との間でセッション接続が開始される(タイミングT904)。 Here, in the PC 100A, when a session start request is sent from the USB virtual bus driver 115 that has been loaded to the device server 200, and a response of “OK” is received from the device server 200, the connection between the PC 100A and the device server 200 occurs. The session connection is started (timing T904).

PC100Aとデバイスサーバ200との間でセッション接続を開始すると、PC100Aがデバイスドライバのロードを完了するまでの間、デバイスサーバ200と間のセッションの接続は継続される(タイミングT905)。 When the session connection is started between the PC 100A and the device server 200, the session connection with the device server 200 is continued until the PC 100A completes the loading of the device driver (timing T905).

PC100Bが、USB仮想バスドライバ115をロードし、デバイスドライバのマウント命令を発行し(タイミングT906)、デバイスサーバ200に対してセッション開始要求を送った場合、既に、PC100Aとの間でセッション接続が開始されているため、PC100Aにおいてデバイスドライバのロードが完了するまでの間(セッションが終了されるまでの間)、デバイスサーバ200はPC100Bに対して「NG」応答を返す(タイミングT907)。 When the PC 100B loads the USB virtual bus driver 115, issues a device driver mount command (timing T906), and sends a session start request to the device server 200, the session connection with the PC 100A has already started. Therefore, the device server 200 returns an “NG” response to the PC 100B until the loading of the device driver is completed in the PC 100A (until the session is ended) (timing T907).

PC100Bでは、「NG」応答を受信すると、常駐サービス114によりデバイスサーバ200のセッションの接続状態を定期的に確認する。 When the PC 100B receives the “NG” response, the resident service 114 periodically checks the connection state of the session of the device server 200.

デバイスサーバ200では、PC100Aにおいて必要なデバイスドライバのロードが完了し、セッション接続が終了した後(タイミングT908)、PC100Bからセッション開始要求を受信すると、PC100Bとの間でセッション接続を開始し(タイミングT909)、PC100Bがデバイスドライバのロードを完了するまでの間、PC100Bと間のセッション接続は継続される。 When the device server 200 receives the session start request from the PC 100B after the loading of the device driver necessary for the PC 100A is completed and the session connection ends (timing T908), the device server 200 starts the session connection with the PC 100B (timing T909). The session connection with the PC 100B is continued until the PC 100B completes the loading of the device driver.

デバイスサーバ200は、PC100Bとの間でセッション接続中は、上述と同様にPC100Aなど他のクライアントPCからのセッション開始要求に対して「NG」応答を返す。 During a session connection with the PC 100B, the device server 200 returns an “NG” response to a session start request from another client PC such as the PC 100A as described above.

上述したように、セッション接続中のクライアント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 printer 300 can be obtained.

続いて、PC100Aがプリンタ300にアクセス中(印刷処理中)に、PC100Bからプリンタ300にアクセスしようとした場合について説明する。 Next, a case where the PC 100A tries to access the printer 300 from the PC 100B while the PC 100A is accessing the printer 300 (during printing processing) will be described.

この時点で、PC100A、PC100Bには、プリンタ300にアクセスして印刷するために必要なデバイスドライバが全てロードされた状態であるものとする。 At this point, it is assumed that all device drivers necessary for accessing the printer 300 and printing are loaded in the PC 100A and PC 100B.

まず、PC100Aでは、上位層のソフトウェアから印刷実行命令が発行され(タイミングT910)、デバイスサーバ200との間でセッション接続が開始されると(タイミングT911)、デバイスサーバ200を介してプリンタ300へのアクセスが可能となり、デバイスサーバ200に対して制御コマンドを送信し、プリンタ300で印刷処理が実行される(タイミングT912)。 First, in the PC 100A, when a print execution command is issued from the upper layer software (timing T910) and a session connection is started with the device server 200 (timing T911), the PC 100A is connected to the printer 300 via the device server 200. Access is enabled, a control command is transmitted to the device server 200, and print processing is executed by the printer 300 (timing T912).

PC100Aがプリンタ300へアクセス中(印刷処理中)の間、デバイスサーバ200との間はセッション接続中のままである。 While the PC 100A is accessing the printer 300 (during printing processing), the session connection with the device server 200 remains in progress.

このとき、PC100Bによって印刷実行命令が発行されると(タイミングT913)、PC100Aと同様に、PC100Bのプリンタドライバ118がプリンタ300に対する制御コマンドを生成し、USBポートを「オープン」する(タイミングT914)。 At this time, when a print execution command is issued by the PC 100B (timing T913), similarly to the PC 100A, the printer driver 118 of the PC 100B generates a control command for the printer 300 and “opens” the USB port (timing T914).

そして、PC100BのUSBフィルタドライバ117は、USBポートが「オープン」し、制御コマンドが当該USBポートを通過するとこれを検知して仮想バスドライバ115に通知し、仮想バスドライバ115がデバイスサーバ200に対してセッション開始要求を送る(タイミングT915)。 Then, the USB filter driver 117 of the PC 100B detects when the USB port is “open” and the control command passes through the USB port, and notifies the virtual bus driver 115 that the virtual bus driver 115 notifies the device server 200. Then, a session start request is sent (timing T915).

しかし、既に、PC100Aがプリンタ300にアクセスし、印刷処理が実行中であるため、デバイスサーバ200は、PC100Aと間のセッション接続が終了されるまでの間、PC100Bのセッション開始要求に対して「NG」応答を返す(タイミングT916)。 However, since the PC 100A has already accessed the printer 300 and printing processing is being executed, the device server 200 responds to the session start request of the PC 100B with “NG” until the session connection with the PC 100A is terminated. "Response is returned (timing T916).

PC100Bでは、「NG」応答を受信すると、常駐サービス114によりデバイスサーバ200のセッション接続を定期的に確認する。 When the PC 100B receives the “NG” response, the resident service 114 periodically checks the session connection of the device server 200.

デバイスサーバ200では、PC100Aとの間のセッション接続が終了された後(タイミングT917)、PC100Bからの「セッション開始要求」を受信すると、PC100Bとの間でセッション接続を開始する(タイミングT918)。そして、PC100Bによるプリンタ300へのアクセスが完了するまでの間、PC100Bとデバイスサーバ200との間のセッション接続は継続される。 When the device server 200 receives the “session start request” from the PC 100B after the session connection with the PC 100A is terminated (timing T917), the device server 200 starts the session connection with the PC 100B (timing T918). The session connection between the PC 100B and the device server 200 is continued until the access to the printer 300 by the PC 100B is completed.

このように、第1の実施の形態におけるクライアントPCは、プリンタ300にアクセス可能な状態のときにユーザの手動操作に頼ることなく自動的にデバイスサーバ200とのセッション接続を開始してデバイス情報を取得し、デバイスドライバをロード後、セッション接続を終了して、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。 As described above, the client PC in the first embodiment automatically starts a session connection with the device server 200 without relying on the manual operation of the user when the printer 300 is accessible, and obtains device information. After acquiring and loading the device driver, the session connection is terminated, and the printer enters a standby state until a print execution command is issued from the upper layer software.

そして、上位層のソフトウェアから印刷実行命令が発行されると、プリンタ300にアクセスが可能であれば、ユーザの手動操作に頼ることなく自動的にデバイスサーバ200とのセッション接続を開始してプリンタ300における印刷実行に必要なコマンドを送受信し、印刷が終了するとユーザの手動操作に頼ることなく自動的にセッション接続を終了する。これにより、ユーザがセッション接続の開始・終了を意識しなくても、複数台のクライアントPCでデバイスを共有することが可能となる。 When the print execution command is issued from the upper layer software, if the printer 300 can be accessed, the session connection with the device server 200 is automatically started without depending on the manual operation of the user, and the printer 300 is started. A command necessary for execution of printing is transmitted / received, and when printing is completed, the session connection is automatically terminated without depending on the manual operation of the user. As a result, the device can be shared by a plurality of client PCs without the user being aware of the start / end of session connection.

次に、第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 device server 200 by UDP or the like that does not require session connection in the process until the device driver is loaded.

図10は、第1の実施の形態で説明した図5と同様、PC100(PC100A,PC100B)の制御フローであり、PC100がプリンタ300にアクセスして印刷処理を実行するために必要なデバイスドライバをロードするまでの制御動作の手順を示すフローチャートである。 FIG. 10 is a control flow of the PC 100 (PC 100A, PC 100B), similar to FIG. 5 described in the first embodiment. Device drivers necessary for the PC 100 to access the printer 300 and execute print processing are shown. It is a flowchart which shows the procedure of control operation | movement until it loads.

ユーザがPC100を起動すると、PC100内のソフトウェア群の中の常駐サービス114が動作し、UDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する。(ステップS1001)。 When the user activates the PC 100, the resident service 114 in the software group in the PC 100 operates, communicates with the device server 200 using UDP or the like, and starts monitoring the connection state with the device server 200 and the like. At the same time, the connection state of the printer 300 connected to the device server 200 is confirmed. (Step S1001).

続いて、常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200との接続を確認する(ステップS1002)。 Subsequently, the resident service 114 confirms the connection with the device server 200 based on a response from the device server 200 (step S1002).

ここで、デバイスサーバ200又はプリンタ300との接続が正常でない場合(ステップS1002でNo)、再び、ステップS1001の処理に戻り、定期的にデバイスサーバ200の状態を確認する。 Here, when the connection with the device server 200 or the printer 300 is not normal (No in step S1002), the process returns to the process of step S1001 again to periodically check the state of the device server 200.

デバイスサーバ200からの応答により、デバイスサーバ200及びプリンタ300との接続が正常である場合(ステップS1002でYes)、常駐サービス114は、USB仮想バスドライバ115をロードする(ステップS1003)。 If the connection from the device server 200 and the printer 300 is normal according to the response from the device server 200 (Yes in step S1002), the resident service 114 loads the USB virtual bus driver 115 (step S1003).

USB仮想バスドライバ115をロードが完了すると、常駐サービス114は、デバイスドライバのマウント命令を発行する(ステップS1004)。 When the loading of the USB virtual bus driver 115 is completed, the resident service 114 issues a device driver mount command (step S1004).

マウント命令が発行されると、USB仮想ドライバ115は、デバイスサーバ200との間をセッション接続が必要ないUDPなどを用いてデータ通信する。そして、デバイスサーバ200に対して、プリンタ300のデバイスドライバをロードするために必要となるデバイス情報を要求する(ステップS1005)。 When the mount command is issued, the USB virtual driver 115 performs data communication with the device server 200 using UDP or the like that does not require session connection. Then, the device server 200 requests device information necessary for loading the device driver of the printer 300 (step S1005).

このとき、デバイスサーバ200では、PC100から受信したデバイス情報の要求をプリンタ300に送信し、プリンタ300から応答情報としてデバイス情報を受信してPC100Aに送る処理を実行する。 At this time, the device server 200 transmits a request for device information received from the PC 100 to the printer 300, and receives the device information as response information from the printer 300 and sends it to the PC 100A.

PC100では、取得したデバイス情報に基づき、USB仮想バスドライバ115によって擬似的にプリンタ300が接続されたようにシミュレートし、USBプリンタクラスドライバ116をロードする(ステップS1006)。 In the PC 100, the USB virtual bus driver 115 simulates the printer 300 connected in a pseudo manner based on the acquired device information, and loads the USB printer class driver 116 (step S1006).

USBプリンタクラスドライバ116は、USBポートを作成するとともに、その上位にUSBフィルタドライバ117及びプリンタドライバ118をロードする(ステップS1007、ステップS1008)。 The USB printer class driver 116 creates a USB port and loads the USB filter driver 117 and the printer driver 118 on top of it (steps S1007 and S1008).

プリンタドライバ118のロードが完了すると、プリンタ300にアクセスして印刷するために必要なデバイスドライバがPC100に全てロードされた状態となる。そして、上位層のソフトウェアからの印刷実行命令が発行されるまでの間、待機状態となる。 When loading of the printer driver 118 is completed, all device drivers necessary for accessing the printer 300 and printing are loaded on the PC 100. Then, the printer enters a standby state until a print execution command is issued from the upper layer software.

本実施の形態において、PC100は、UDPなどを用いてデバイスサーバ200とデータ通信しているので、セッション接続せずに必要なデバイスドライバをロードすることができる。なお、データ通信はセッション接続を必要としないプロトコルであればよく、UDPに限定されるものではない。 In the present embodiment, since the PC 100 performs data communication with the device server 200 using UDP or the like, a necessary device driver can be loaded without a session connection. The data communication is not limited to UDP as long as it is a protocol that does not require session connection.

図9と同様に、前述のネットワークシステムにおいて、複数台のPC100(PC100A,PC100B)がプリンタ300にアクセスする場合(N対1で接続する場合)の実施の形態について、図11を参照しながら説明する。 As in FIG. 9, an embodiment in which a plurality of PCs 100 (PC 100 </ b> A, PC 100 </ b> B) access the printer 300 in the above-described network system (when connected N-to-1) will be described with reference to FIG. 11. To do.

図11は、PC100Aがデバイスドライバのロード中に、別のPC100Bからプリンタ300にアクセスしたときのタイミングチャートを示した説明図である。なお、PC100A及びPC100Bにおいて、デバイスドライバがロードされた後の動作については、第1の実施の形態(図9)と同じであるため、説明は省略する。 FIG. 11 is an explanatory diagram showing a timing chart when the PC 100A accesses the printer 300 from another PC 100B while the device driver is being loaded. In PC100A and PC100B, the operation after the device driver is loaded is the same as that in the first embodiment (FIG. 9), and thus the description thereof is omitted.

PC100A、PC100Bはともに、常駐サービス114によってセッション接続が必要ないUDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する(タイミングT1101)。 Both the PC 100A and the PC 100B communicate with the device server 200 using UDP or the like that does not require a session connection by the resident service 114, and start monitoring the connection state with the device server 200 and connect to the device server 200. The connection state of the printer 300 that has been checked is confirmed (timing T1101).

次に、PC100A、PC100Bの常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200及びプリンタ300との接続が正常であることを確認すると、USB仮想バスドライバ115をロードし、デバイスドライバのマウント命令を発行する(タイミングT1102)。 Next, when the resident service 114 of the PC 100A and the PC 100B confirms that the connection between the device server 200 and the printer 300 is normal based on the response from the device server 200, the USB virtual bus driver 115 is loaded, and the device driver A mount command is issued (timing T1102).

そして、PC100A、PC100BのUSB仮想バスドライバ115は、UDPなどを用いてデバイスサーバ200と通信してデバイス情報を要求する(タイミングT1103)。 Then, the USB virtual bus driver 115 of the PC 100A and PC 100B communicates with the device server 200 using UDP or the like to request device information (timing T1103).

デバイスサーバ200はPC100A、PC100Bからのデバイス情報の要求をプリンタ300に送り、プリンタ300からデバイス情報の応答があると、このデバイス情報をPC100A、PC100Bに対して返す(タイミングT1104)。 The device server 200 sends a request for device information from the PC 100A and PC 100B to the printer 300. When there is a device information response from the printer 300, the device server 200 returns this device information to the PC 100A and PC 100B (timing T1104).

PC100A、PC100Bは、取得したデバイス情報に基づき、それぞれのUSB仮想バスドライバ115によって、USBプリンタクラスドライバ116、USBフィルタドライバ117、プリンタドライバ118を順にロードしてゆく(タイミングT1105)。 The PC 100A and PC 100B load the USB printer class driver 116, the USB filter driver 117, and the printer driver 118 in order by the respective USB virtual bus drivers 115 based on the acquired device information (timing T1105).

このように、第2の実施の形態におけるクライアントPCは、プリンタ300にアクセス可能な状態のときにユーザの手動操作に頼ることなく自動的にセッション接続が必要ないUDPでデバイスサーバ200と通信してデバイス情報を取得し、デバイスドライバをロード後、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。 As described above, the client PC according to the second embodiment communicates with the device server 200 using the UDP that does not automatically require session connection without relying on the manual operation of the user when the printer 300 is accessible. After the device information is acquired and the device driver is loaded, the printer enters a standby state until a print execution command is issued from the upper layer software.

そして、上位層のソフトウェアから印刷実行命令が発行されると、プリンタ300にアクセスが可能であれば、ユーザの手動操作に頼ることなく自動的にデバイスサーバ200とのセッション接続を開始してプリンタ300における印刷実行に必要なコマンドを送受信し、印刷が終了するとユーザの手動操作に頼ることなく自動的にセッション接続を終了する。これにより、ユーザがセッション接続の開始、終了を意識しなくても、複数台のクライアントPCでデバイスを共有することが可能となる。 When the print execution command is issued from the upper layer software, if the printer 300 can be accessed, the session connection with the device server 200 is automatically started without depending on the manual operation of the user, and the printer 300 is started. A command necessary for execution of printing is transmitted / received, and when printing is completed, the session connection is automatically terminated without depending on the manual operation of the user. As a result, the device can be shared by a plurality of client PCs without the user being aware of the start and end of the session connection.

次に、第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 PC 100, the device driver is loaded without data communication with the device server 200 based on the cached information. This is different from the embodiment.

図12は、PC100がプリンタ300にアクセスして印刷処理を実行するために必要なデバイスドライバをロードするまでの制御動作の手順を示すフローチャートである。 FIG. 12 is a flowchart showing a control operation procedure until the PC 100 loads the device driver necessary for accessing the printer 300 and executing the printing process.

ユーザがPC100を起動すると、PC100内のソフトウェア群の中の常駐サービス114が動作し、UDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する。(ステップS1201)。 When the user activates the PC 100, the resident service 114 in the software group in the PC 100 operates, communicates with the device server 200 using UDP or the like, and starts monitoring the connection state with the device server 200 and the like. At the same time, the connection state of the printer 300 connected to the device server 200 is confirmed. (Step S1201).

常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200及びプリンタ300との接続状態を確認する(ステップS1202)。 The resident service 114 confirms the connection state between the device server 200 and the printer 300 based on the response from the device server 200 (step S1202).

デバイスサーバ200及びプリンタ300との接続状態が正常でない場合(ステップS1202でNo)、再び、ステップS1201の処理に戻り、定期的にデバイスサーバ200及びプリンタ300との接続状態の確認を行う。 If the connection state between the device server 200 and the printer 300 is not normal (No in step S1202), the process returns to step S1201 again to periodically check the connection state between the device server 200 and the printer 300.

デバイスサーバ200からの応答により、デバイスサーバ200及びプリンタ300との接続状態が正常である場合(ステップS1202でYes)、常駐サービス114は、USB仮想バスドライバ115をロードする(ステップS1203)。 If the connection state between the device server 200 and the printer 300 is normal as a result of the response from the device server 200 (Yes in step S1202), the resident service 114 loads the USB virtual bus driver 115 (step S1203).

常駐サービス114は、USB仮想バスドライバ115をロードが完了すると、デバイスドライバのマウント命令を発行する(ステップS1204)。 When the loading of the USB virtual bus driver 115 is completed, the resident service 114 issues a device driver mount command (step S1204).

マウント命令が発行されると、USB仮想ドライバ115は、プリンタ300のデバイスドライバのロードに必要となるデバイス情報をPC100内(自装置内)に既に保持(キャッシュ)しているかを確認する(ステップS1205)。 When the mount command is issued, the USB virtual driver 115 confirms whether the device information necessary for loading the device driver of the printer 300 is already held (cached) in the PC 100 (in its own device) (step S1205). ).

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 PC 100 performs data communication with the device server 200 via UDP and is necessary for loading the device driver. Device information is acquired (step S1206).

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 virtual bus driver 115 simulates the printer 300 being connected in a pseudo manner based on the cache information or device information acquired via the server 200, and loads the USB printer class driver 116, which is a module of the OS 110. (Step S1207).

USBプリンタクラスドライバ116は、USBポートを作成するとともに、その上位にUSBフィルタドライバ117及びプリンタドライバ118をロードする(ステップS1208、ステップS1209)。 The USB printer class driver 116 creates a USB port and loads the USB filter driver 117 and the printer driver 118 on top of it (steps S1208 and S1209).

プリンタドライバ118のロードが完了すると、プリンタ300にアクセスして印刷するために必要なデバイスドライバがPC100に全てロードされた状態となる。そして、上位層のソフトウェアからの印刷実行命令が発行されるまでの間、待機状態となる。 When loading of the printer driver 118 is completed, all device drivers necessary for accessing the printer 300 and printing are loaded on the PC 100. Then, the printer enters a standby state until a print execution command is issued from the upper layer software.

第3の実施の形態において、PC100は、自装置内にキャッシュ情報がある場合、デバイスサーバ200との間でデータ通信を行うことなく、デバイスドライバをロードすることができる。 In the third embodiment, the PC 100 can load the device driver without performing data communication with the device server 200 when there is cache information in the own device.

一方、自装置内にキャッシュ情報がない場合、上述した第2の実施の形態と同様、UDPによりデバイスサーバ200と通信してデバイス情報を取得するので、セッション接続する必要がない。なお、デバイスサーバ200との通信はUDPに限定されるものではない。 On the other hand, when there is no cache information in its own device, it communicates with the device server 200 via UDP to acquire device information as in the second embodiment described above, so there is no need for session connection. Note that communication with the device server 200 is not limited to UDP.

PC100A及びPC100Bにおいて、キャッシュ情報に基づいてデバイスドライバをロードするときのタイミングチャートについて図13を用いて説明する。なお、PC100A及びPC100Bにおいて、デバイスドライバがロードされた後の動作については、前述した第1の実施の形態(図9)と同じであるため、説明は省略する。 A timing chart for loading a device driver based on cache information in the PC 100A and the PC 100B will be described with reference to FIG. In PC 100A and PC 100B, the operation after the device driver is loaded is the same as that in the first embodiment (FIG. 9) described above, and thus the description thereof is omitted.

また、自装置内にキャッシュ情報がなく、UDPなどを用いてデバイスサーバ200と通信してデバイス情報を取得する場合の動作については、前述した第2の実施の形態(図10、図11)と同じであるため説明及び図13中における図示は省略する。 Also, the operation when the device information is acquired by communicating with the device server 200 using UDP or the like without cache information in the own apparatus is the same as that of the second embodiment (FIGS. 10 and 11) described above. Since it is the same, description and illustration in FIG. 13 are omitted.

PC100A及びPC100Bは、プリンタ300のネットワーク共有を行うための初期設定や、常駐サービス114、プリンタドライバ118などのインストールを実行するとき、プリンタ300のネットワーク共有に必要なデバイス情報を、デバイスサーバ200を介してプリンタ300から予め取得して、これをPC100A及びPC100Bの外部記憶部106に格納している(タイミングT1301)。このとき格納されたデバイス情報が、キャッシュ情報としてデバイスドライバのロードの際に使用される。 When the PC 100A and PC 100B execute initial settings for network sharing of the printer 300 and installation of the resident service 114, the printer driver 118, and the like, device information necessary for network sharing of the printer 300 is transmitted via the device server 200. Are obtained in advance from the printer 300 and stored in the external storage unit 106 of the PC 100A and PC 100B (timing T1301). The device information stored at this time is used as cache information when the device driver is loaded.

PC100A、PC100Bはともに、常駐サービス114によってセッション接続が必要ないUDPなどを用いてデバイスサーバ200と通信して、デバイスサーバ200との間の接続状態などの監視を開始するとともに、デバイスサーバ200に接続されているプリンタ300の接続状態を確認する(タイミングT1302)。 Both the PC 100A and the PC 100B communicate with the device server 200 using UDP or the like that does not require a session connection by the resident service 114, and start monitoring the connection state with the device server 200 and connect to the device server 200. The connection state of the printer 300 that has been checked is confirmed (timing T1302).

次に、PC100Aの常駐サービス114は、デバイスサーバ200からの応答により、デバイスサーバ200が他のクライアントPCとセッション接続中でないことを確認するとUSB仮想バスドライバ115をロードし、デバイスドライバのマウント命令を発行する(タイミングT1303)。 Next, when the resident service 114 of the PC 100A confirms from the response from the device server 200 that the device server 200 is not in session connection with another client PC, it loads the USB virtual bus driver 115 and issues a device driver mount command. Issued (timing T1303).

USB仮想バスドライバ115は、デバイスドライバのマウント命令が発行されると、PC100A内(自装置内)にキャッシュ情報を保持しているかを確認する。 When the device virtual device driver mount command is issued, the USB virtual bus driver 115 checks whether the cache information is held in the PC 100A (in its own device).

PC100A内(自装置内)にキャッシュ情報を保持している場合、このキャッシュ情報に基づき、USBプリンタクラスドライバ116、USBフィルタドライバ117、プリンタドライバ118を順にロードしてゆく(タイミングT1304)。 When cache information is held in the PC 100A (in the own apparatus), the USB printer class driver 116, the USB filter driver 117, and the printer driver 118 are loaded in order based on the cache information (timing T1304).

PC100Aでデバイスドライバのロード中、もう一方のクライアントPC100Bにおいて、デバイスドライバのマウント命令が発行された場合(タイミングT1305)、PC100Aと同様、まず、PC100B内(自装置内)にキャッシュ情報があるか否かを確認する。 When a device driver mount instruction is issued in the other client PC 100B while the device driver is being loaded in the PC 100A (timing T1305), first, similarly to the PC 100A, whether or not there is cache information in the PC 100B (in its own device). To check.

PC100B内(自装置内)にキャッシュ情報がある場合、このキャッシュ情報に基づいて、USBプリンタクラスドライバ116、USBフィルタドライバ117、プリンタドライバ118を順にロードしてゆく(タイミングT1306)。 If there is cache information in the PC 100B (in the own apparatus), the USB printer class driver 116, USB filter driver 117, and printer driver 118 are loaded in order based on the cache information (timing T1306).

このように、第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 device 300 can be automatically communicated with the device server 200 via UDP which does not require a session connection without relying on the user's manual operation when the printer 300 is accessible, and the device information is obtained. After loading the driver, it is in a standby state until a print execution command is issued from the upper layer software.

そして、上位層のソフトウェアから印刷実行命令が発行されると、プリンタ300にアクセスが可能であれば、ユーザの手動操作に頼ることなく自動的にデバイスサーバ200とのセッション接続を開始してプリンタ300における印刷実行に必要なコマンドを送受信し、印刷が終了するとユーザの手動操作に頼ることなく自動的にセッション接続を終了する。これにより、ユーザがセッション接続の開始、終了を意識しなくても、複数台のクライアントPCでデバイスを共有することが可能となる。 When the print execution command is issued from the upper layer software, if the printer 300 can be accessed, the session connection with the device server 200 is automatically started without depending on the manual operation of the user, and the printer 300 is started. A command necessary for execution of printing is transmitted / received, and when printing is completed, the session connection is automatically terminated without depending on the manual operation of the user. As a result, the device can be shared by a plurality of client PCs without the user being aware of the start and end of the session connection.

また、キャッシュ情報を利用してデバイスドライバをロードするので、複数のクライアントPCがデバイスサーバ200からデバイス情報を取得しようとするアクセスが不要となるため、ネットワーク500のトラフィックを低減することができる。 In addition, since the device driver is loaded using the cache information, access for acquiring the device information from the device server 200 by a plurality of client PCs becomes unnecessary, and the traffic of the network 500 can be reduced.

次に、第4の実施の形態として、PC100がプリンタ300にアクセスして印刷処理を実行するときの別の制御動作について、図14を参照しながら説明する。 Next, as a fourth embodiment, another control operation when the PC 100 accesses the printer 300 and executes print processing will be described with reference to FIG.

本実施の形態は、USBポートが「クローズ」された後、すぐにデバイスサーバ200との間のセッション接続を終了せず、規定時間だけセッション接続の終了を遅らせる点に特徴がある。 The present embodiment is characterized in that the session connection with the device server 200 is not terminated immediately after the USB port is “closed”, but the termination of the session connection is delayed for a specified time.

図14は、PC100(PC100A,PC100B)の制御フローにおいて、PC100がプリンタ300にアクセスして印刷処理を実行するときの制御動作の手順を示すフローチャートである。 FIG. 14 is a flowchart illustrating a control operation procedure when the PC 100 accesses the printer 300 and executes print processing in the control flow of the PC 100 (PC 100A, PC 100B).

なお、上述した第1の実施の形態で説明した図6と同様、PC100には、必要なデバイスドライバが全てロードされており、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態にあるものとする。 Note that, as in FIG. 6 described in the first embodiment, all necessary device drivers are loaded on the PC 100, and waiting until a print execution command is issued from higher-layer software. Suppose that it is in a state.

PC100によりプリンタ300で印刷処理を実行するとき、上位層のソフトウェアから印刷実行命令が発行される。 When print processing is executed by the printer 300 by the PC 100, a print execution command is issued from upper layer software.

上位層のソフトウェアから印刷実行命令が発行されると、PC100のプリンタドライバ118は、印刷実行命令に応じた制御コマンドを生成し、USBポートを「オープン」する(ステップS1401、S1402)。 When a print execution command is issued from the upper layer software, the printer driver 118 of the PC 100 generates a control command corresponding to the print execution command and “opens” the USB port (steps S1401 and S1402).

そして、生成した制御コマンドをUSBポートからUSBフィルタドライバ117を経由してプリンタクラスドライバ116に送る。プリンタクラスドライバ116では、制御コマンドをUSBパケットに変換し、USB仮想バスドライバ115に送る(ステップS1403)。 The generated control command is sent from the USB port to the printer class driver 116 via the USB filter driver 117. The printer class driver 116 converts the control command into a USB packet and sends it to the USB virtual bus driver 115 (step S1403).

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 USB filter driver 117 detects this and notifies the USB virtual bus driver 115, and the USB virtual bus driver 115 does not have a session connection. Then, a session start request is sent to the device server 200 (step S1404).

このセッション開始要求に対し、デバイスサーバ200から「NG」応答があり、セッション接続を開始できない場合(ステップS1405でNo)、ステップS1404へ戻り、セッション接続が開始可能となるまで、デバイスサーバ200に対して定期的にセッション開始要求を送る。 If there is an “NG” response from the device server 200 in response to this session start request and the session connection cannot be started (No in step S1405), the process returns to step S1404, and the device server 200 is instructed until the session connection can be started. Periodically send a session start request.

一方、デバイスサーバ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 PC 100 can access the printer 300 via the device server 200 (step S1406).

次に、PC100は、デバイスサーバ200を介し、プリンタ300に対して制御コマンドを送り、プリンタ300からの処理結果などを受信する(ステップS1407)。そして、PC100から印刷終了命令が発行されるまでステップS1407の処理が繰り返される(ステップS1408でNo)。 Next, the PC 100 sends a control command to the printer 300 via the device server 200 and receives a processing result from the printer 300 (step S1407). Then, the process of step S1407 is repeated until a print end command is issued from the PC 100 (No in step S1408).

上位層のソフトウェアから印刷終了命令が発行されると(ステップ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 printer driver 118 generates an end command, transmits the end command to the device server 200 via the USB virtual bus driver 115, and the printer. A response to the end command from 300 is received from the device server 200.

PC100のプリンタドライバ118は、終了コマンドに対する応答を受信すると、USBポートを「クローズ」し、USBフィルタドライバ117は、USBポートの「クローズ」をUSB仮想バスドライバ115に通知する。(ステップS1409)。 Upon receiving a response to the end command, the printer driver 118 of the PC 100 “closes” the USB port, and the USB filter driver 117 notifies the USB virtual bus driver 115 of “closed” of the USB port. (Step S1409).

USB仮想バスドライバ115は、USBポートが「クローズ」され、USBポート「クローズ」の通知を受けると、デバイスサーバ200との間のセッション接続をすぐに終了させず、上位層のソフトウェアから次の印刷実行命令が規定時間内に発行されるか否かを判定する(ステップS1410)。 When the USB virtual bus driver 115 receives the notification of the USB port “closed” and the USB port “closed”, the USB virtual bus driver 115 does not immediately terminate the session connection with the device server 200, and the next printing is performed from the upper layer software. It is determined whether or not an execution command is issued within a specified time (step S1410).

規定時間内に上位層のソフトウェアから印刷実行命令が発行されると(ステップ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 printer driver 118 generates a control command, and “opens” the USB port (step S1411). A control command is sent from the USB port to the printer class driver 116 via the USB filter driver 117 (step S1412).

そして、再び、ステップS1407の処理に戻り、デバイスサーバ200を介し、プリンタ300に対して制御コマンドを送り、プリンタ300からの処理結果などを受信し、プリンタ300による印刷処理が開始される。 Then, the process returns to step S1407 again, a control command is sent to the printer 300 via the device server 200, a processing result from the printer 300 is received, and the printing process by the printer 300 is started.

一方、規定時間内に上位層のソフトウェアから印刷実行命令が発行されないと(ステップ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 virtual bus driver 115 sends a session end request to the device server 200 (step S1413).

そして、デバイスサーバ200との間でセッション終了処理を実行し、セッション終了「OK」の応答を受信すると、PC100Aとデバイスサーバ200との間のセッション接続が終了となる(ステップS1414)。そして、再び、上位層のソフトウェアから印刷実行命令が発行されるまでの間、待機状態となる。 Then, session termination processing is executed with the device server 200, and when a session termination “OK” response is received, the session connection between the PC 100A and the device server 200 is terminated (step S1414). Then, it again enters a standby state until a print execution command is issued from the upper layer software.

このように、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 PC 100B from interrupting during continuous printing from the PC 100A.

図15は、第4の実施の形態において、図14で説明した制御フローで動作するPC100(PC100A,PC100B)おいて、PC100Aが連続して印刷処理を実行するとき実施の形態である。 FIG. 15 is an embodiment in the case where the PC 100A continuously executes print processing in the PC 100 (PC 100A, PC 100B) operating in the control flow described in FIG. 14 in the fourth embodiment.

ここで、簡略化して分り易く説明をするために、第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 PC 100A and PC 100B are already loaded with device drivers. Note that all the first to third embodiments described above can be applied to the control operation until the device driver is loaded.

図15において、PC100Aの1回目の印刷処理(タイミングT1501)が終了し、PC100Aのプリンタドライバ118がUSBポートを「クローズ」させた状態から説明する(タイミングT1502)。 In FIG. 15, the first printing process (timing T1501) of the PC 100A is completed, and the printer driver 118 of the PC 100A “closes” the USB port (timing T1502).

PC100Aでは、プリンタドライバ118がUSBポートを「クローズ」させると、USBフィルタドライバ117がUSBポート「クローズ」をUSB仮想バスドライバ115に通知する。 In the PC 100A, when the printer driver 118 “closes” the USB port, the USB filter driver 117 notifies the USB virtual bus driver 115 of the USB port “closed”.

USB仮想バスドライバ115は、USBポート「クローズ」の通知を受けると、セッション接続をすぐに終了させず、規定時間が経過するまでの間はデバイスサーバ200に対してセッション終了要求を送信しない(タイミングT1503)。 Upon receiving the notification of the USB port “closed”, the USB virtual bus driver 115 does not immediately terminate the session connection and does not transmit a session termination request to the device server 200 until the specified time elapses (timing) T1503).

この規定時間内に、PC100Bの上位層のソフトウェアによって印刷実行命令が発行された場合(タイミングT1504)、PC100Bからデバイスサーバ200に対してセッション開始要求が送られるが、まだ、PC100Aとの間のセッション接続が終了していないため、デバイスサーバ200はPC100Bに対して「NG」応答を返す(タイミングT1505)。 If a print execution command is issued by the upper layer software of the PC 100B within this specified time (timing T1504), a session start request is sent from the PC 100B to the device server 200, but a session with the PC 100A is still in progress. Since the connection has not ended, the device server 200 returns an “NG” response to the PC 100B (timing T1505).

一方、この規定時間内に、再度、PC100Aの上位層のソフトウェアから印刷実行命令が発行されると(タイミングT1506)、プリンタドライバ118は、再びUSBポートを「オープン」させる(タイミングT1507)。 On the other hand, when a print execution command is issued again from the upper layer software of the PC 100A within this specified time (timing T1506), the printer driver 118 “opens” the USB port again (timing T1507).

USBフィルタドライバ117では、USBポートを通過する制御コマンドを検知するが、デバイスサーバ200とは既にセッション接続中であり、セッション開始処理が不要である。従って、PC100Aのプリンタドライバ118がUSBポートを介してデバイスサーバ200に制御コマンドを送信することで、2回目の印刷処理が連続して実行される(タイミングT1508)。 The USB filter driver 117 detects a control command passing through the USB port, but the session with the device server 200 has already been established, and session start processing is not necessary. Accordingly, the printer driver 118 of the PC 100A transmits a control command to the device server 200 via the USB port, so that the second printing process is continuously executed (timing T1508).

PC100Aのプリンタドライバ118は、2回目の印刷処理が終了すると、1回目と同様、USBポートを「クローズ」させるが(タイミングT1509)、USB仮想バスドライバ115では、すぐにセッション接続を終了させず、規定時間が経過するまでデバイスサーバ200に対してセッション終了要求を送信しない(タイミングT1510)。 When the second printing process is completed, the printer driver 118 of the PC 100A “closes” the USB port as in the first time (timing T1509), but the USB virtual bus driver 115 does not immediately terminate the session connection, A session end request is not transmitted to the device server 200 until the specified time has elapsed (timing T1510).

そして、この規定時間内にPC100Aの上位層のソフトウェアから印刷実行命令が発行されないと、USB仮想バスドライバ115は、デバイスサーバ200に対しセッション終了要求を送り、デバイスサーバ200との間のセッション接続を終了する(タイミングT1511)。 If a print execution command is not issued from the upper layer software of the PC 100A within the specified time, the USB virtual bus driver 115 sends a session end request to the device server 200 to establish a session connection with the device server 200. The process ends (timing T1511).

このように、第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 virtual bus driver 115, USB printer class driver 116, USB filter driver 117, printer driver 118, etc.) related to USB included in the PC 100 and the device server 200 are provided. The USB command layer 212 provided may be replaced with a device driver related to IEEE 1394 and an IEEE 1394 command layer, respectively.

さらにはPC100が複数の異なる接続インターフェース用のドライバ層を持ち、デバイスサーバ200がそれに対応した複数の異なるコマンド層を備えるようにすれば、様々な接続インターフェースを備えたデバイスにも柔軟に対応できる。 Furthermore, if the PC 100 has a plurality of driver layers for different connection interfaces and the device server 200 has a plurality of different command layers corresponding thereto, it is possible to flexibly support devices having various connection interfaces.

また、本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(または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.

本発明の実施形態に係るネットワークシステムの概略構成を示すブロック図である。1 is a block diagram showing a schematic configuration of a network system according to an embodiment of the present invention. 図1のPC100A,100Bのハードウェア及びハードウェアの概略構成を示すブロック図である。It is a block diagram which shows the hardware of PC100A of FIG. 1, and the schematic structure of hardware of 100B. 図1のデバイスサーバ200のハードウェア及びソフトウェアの概略構成を示すブロック図である。It is a block diagram which shows schematic structure of the hardware and software of the device server 200 of FIG. クライアントPCとプリンタ間のデータ通信の大まかな流れの説明図である。It is explanatory drawing of the rough flow of the data communication between client PC and a printer. 第1の実施の形態におけるクライアントPCの制御動作のうち、デバイスドライバをロードするまでの制御動作の一例を示すフローチャートである。It is a flowchart which shows an example of control operation until it loads a device driver among control operation of the client PC in 1st Embodiment. 第1の実施の形態におけるクライアントPCの制御動作のうち、プリンタにアクセスして印刷処理が終了するまでの制御動作を示すフローチャートである。4 is a flowchart illustrating a control operation from the access to the printer to the end of the printing process, out of the control operations of the client PC in the first embodiment. 第1の実施の形態におけるデバイスサーバのセッション接続の制御動作を示すフローチャートである。It is a flowchart which shows the control operation of the session connection of the device server in 1st Embodiment. 第1の実施の形態における一台のクライアントPCがプリンタにアクセスするときの過程を示したタイミングチャートである。3 is a timing chart illustrating a process when one client PC accesses a printer according to the first embodiment. 第1の実施の形態における複数台のクライアントPCがプリンタにアクセスするときの過程を示したタイミングチャートである。4 is a timing chart illustrating a process when a plurality of client PCs access a printer according to the first embodiment. 第2の実施の形態におけるクライアントPCの制御動作のうち、デバイスドライバをロードするまでの制御動作の一例を示すフローチャートである。It is a flowchart which shows an example of control operation until it loads a device driver among control operation of the client PC in 2nd Embodiment. 第2の実施の形態における複数台のクライアントPCがプリンタにアクセスするときの過程を示したタイミングチャートである。10 is a timing chart illustrating a process when a plurality of client PCs access a printer according to the second embodiment. 第3の実施の形態におけるクライアントPCの制御動作のうち、デバイスドライバをロードするまでの制御動作の一例を示すフローチャートである。It is a flowchart which shows an example of control operation until it loads a device driver among control operation of the client PC in 3rd Embodiment. 第3の実施の形態における複数台のクライアントPCがプリンタにアクセスするときの過程を示したタイミングチャートである。14 is a timing chart illustrating a process when a plurality of client PCs access a printer according to the third embodiment. 第4の実施の形態として、プリンタにアクセスして印刷処理が終了するまでのクライアントPCの制御動作を示すフローチャートである。FIG. 10 is a flowchart illustrating a control operation of a client PC from when a printer is accessed until print processing is completed, as a fourth embodiment. 第4の実施の形態におけるクライアントPCの制御動作により、一台のクライアントPCが連続印刷するときの過程を示したタイミングチャートである。14 is a timing chart showing a process when one client PC performs continuous printing by the control operation of the client PC in the fourth embodiment. 従来技術において、ネットワーク上のプリンタにアクセスするとき、クライアントPCのユーティリティを操作してセッション接続を制御するときの動作を示すフローチャートである。6 is a flowchart illustrating an operation when controlling a session connection by operating a utility of a client PC when accessing a printer on a network in the related art. 従来技術において、複数台のクライアントPCがプリンタにアクセスする場合の過程を示すタイミングチャートである。6 is a timing chart showing a process when a plurality of client PCs access a printer in the prior art.

符号の説明Explanation of symbols

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.
JP2008286855A 2008-11-07 2008-11-07 Device sharing system, device sharing client, and device sharing method Expired - Fee Related JP5124779B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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