Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5470518B2 - Device sharing system, device sharing client, and device sharing method - Google Patents
[go: Go Back, main page]

JP5470518B2 - Device sharing system, device sharing client, and device sharing method - Google Patents

Device sharing system, device sharing client, and device sharing method Download PDF

Info

Publication number
JP5470518B2
JP5470518B2 JP2008268916A JP2008268916A JP5470518B2 JP 5470518 B2 JP5470518 B2 JP 5470518B2 JP 2008268916 A JP2008268916 A JP 2008268916A JP 2008268916 A JP2008268916 A JP 2008268916A JP 5470518 B2 JP5470518 B2 JP 5470518B2
Authority
JP
Japan
Prior art keywords
session
control command
server
device server
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008268916A
Other languages
Japanese (ja)
Other versions
JP2010097492A (en
JP2010097492A5 (en
Inventor
泰 稲葉
秀典 谷井
隆 加藤
命 根岸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2008268916A priority Critical patent/JP5470518B2/en
Publication of JP2010097492A publication Critical patent/JP2010097492A/en
Publication of JP2010097492A5 publication Critical patent/JP2010097492A5/ja
Application granted granted Critical
Publication of JP5470518B2 publication Critical patent/JP5470518B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

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からデバイスサーバを介して共有ストレージとして利用可能とするための実現方法がいくつか提案されている。 Among them, several implementation methods for making a storage device usable as a shared storage 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 an OS) of a client PC is recognized as a storage connected to a network.

この方法では、SMB(Server Message Block)プロトコルを用いてデバイスサーバに排他制御やセッション管理の仕組みを備えることで、複数のクライアントPCから1台のストレージに対してファイルアクセスを可能としている。 In this method, the device server is provided with a mechanism for exclusive control and session management using the SMB (Server Message Block) protocol, thereby enabling file access to a single storage from a plurality of client PCs.

しかしながら、デバイスサーバにSMBプロトコルを実装する必要があるため、デバイスサーバ側の処理負荷が高くなり、高速なCPU(Central Processing Unit)や大容量のメモリが必要となり、デバイスサーバが高価となってしまう問題がある。 However, since it is necessary to implement the SMB protocol on the device server, the processing load on the device server side becomes high, a high-speed CPU (Central Processing Unit) and a large-capacity memory are required, and the device server becomes expensive. There's a problem.

また、別の実現方法として、クライアントPCのOSに対して、ローカル接続されているストレージとして仮想的に認識させる方法がある。 As another realization method, there is a method of virtually recognizing the OS of the client PC as a locally connected storage.

この方法では、クライアントPCに専用のアプリケーションソフトウェア(ユーティリティ)を導入しておき、ユーザがストレージにアクセスしようとするときにユーティリティを操作し、クライアントPCに対してローカル接続したストレージとして仮想的に認識させることで、ネットワーク上のクライアントPCから、ローカル接続した状態と同様にファイルアクセスできるようにしている。 In this method, dedicated application software (utility) is installed in the client PC, and when the user tries to access the storage, the utility is operated to virtually recognize the client PC as locally connected storage. As a result, the file can be accessed from the client PC on the network in the same manner as in the locally connected state.

図14は、クライアントPCに導入したユーティリティをユーザが操作し、ストレージとのセッション接続の開始・切断を行う場合の基本的な動作を示すフローチャートである。 FIG. 14 is a flowchart showing a basic operation when a user operates a utility installed in a client PC to start / disconnect a session connection with the storage.

まず、ストレージを使用するとき、クライアントPCとストレージは接続状態でないため、クライアントPCのユーティリティを起動する。ユーティリティが起動すると、ユーザ操作によるストレージの使用開始待ちの状態となる(ステップS1401)。 First, when the storage is used, since the client PC and the storage are not connected, the utility of the client PC is activated. When the utility is activated, it enters a state of waiting for the start of storage use by a user operation (step S1401).

そして、ユーザがクライアントPCのユーティリティを操作し、ストレージの接続操作を実行すると、クライアントPCからデバイスサーバに対してセッション開始要求が送られる(ステップS1402)。 When the user operates the utility of the client PC and executes the storage connection operation, a session start request is sent from the client PC to the device server (step S1402).

デバイスサーバとの間でセッションが開始されると(ステップS1403でYes)、ストレージへのアクセスが可能となり(ステップS1404、S1405)、ユーザによるストレージの切断操作が実行されない限り(ステップS1406でNo)、繰り返しストレージへのアクセスが行われる。 When a session is started with the device server (Yes in step S1403), the storage can be accessed (steps S1404 and S1405), and unless a storage disconnection operation is performed by the user (No in step S1406), The storage is repeatedly accessed.

一方、デバイスサーバとの間でセッションが開始できない場合(ステップS1403でNo)、ストレージにはアクセスできないことになる(ステップS1410)。 On the other hand, if the session cannot be started with the device server (No in step S1403), the storage cannot be accessed (step S1410).

ストレージに対するアクセスが終了すると、ユーザがクライアントPCのユーティリティを操作してストレージの切断操作を実行する。 When the access to the storage is completed, the user operates the utility of the client PC to execute the storage disconnection operation.

ストレージに対する切断操作が実行されると(ステップ1406でYes)、クライアントPCからデバイスサーバに対してセッション終了要求が送られ(ステップS1407)、デバイスサーバとの間のセッションが切断され、ストレージへのアクセスが終了となる(ステップS1408、S1409)。 When the disconnection operation for the storage is executed (Yes in step 1406), a session termination request is sent from the client PC to the device server (step S1407), the session with the device server is disconnected, and the storage is accessed. Is completed (steps S1408 and S1409).

図15は、図14のフローチャートに基づいて動作するクライアントPC(PC1,PC2)が複数台でストレージにアクセスするときの過程を示したタイミングチャートである。 FIG. 15 is a timing chart showing a process when a plurality of client PCs (PC1, PC2) operating based on the flowchart of FIG. 14 access the storage.

まず、PC1によってストレージにアクセスを開始するとき、ユーザは、PC1のユーティリティによりセッションの開始操作を行う。 First, when starting access to the storage by the PC 1, the user performs a session start operation using the utility of the PC 1.

セッションの開始操作が行われると、PC1は、デバイスサーバに対してセッション開始要求を送り、セッションが開始されると、デバイスサーバを介してストレージにアクセスすることが可能となる。 When a session start operation is performed, the PC 1 sends a session start request to the device server. When the session is started, the PC 1 can access the storage via the device server.

続いて、ストレージにアクセスするため、PC1からデバイスサーバに対して制御コマンドを送ると、デバイスサーバを介してストレージへのデータの読み書きを実行することができる。 Subsequently, when a control command is sent from the PC 1 to the device server to access the storage, data can be read from and written to the storage via the device server.

PC1とデバイスサーバがセッション接続中は、PC1にセッションが専有されているため、PC2からストレージにアクセスすることができない。 During the session connection between the PC 1 and the device server, the session is exclusively used by the PC 1, and therefore the storage cannot be accessed from the PC 2.

PC1によるアクセスが終了したら、ユーザは、PC1のユーティリティを操作してセッションの切断操作を実行する。 When the access by the PC 1 is completed, the user operates the utility of the PC 1 to execute a session disconnecting operation.

セッションの切断操作が実行されると、PC1からデバイスサーバに対してセッション終了要求が送られ、デバイスサーバとの間でセッションの切断処理を行い、ストレージへのアクセスが終了となる。 When a session disconnection operation is executed, a session end request is sent from the PC 1 to the device server, a session disconnection process is performed with the device server, and access to the storage ends.

ここで、ユーザがPC2のユーティリティによりセッションの開始操作を行うと、PC2からストレージへのアクセスが開始される。 Here, when the user performs a session start operation using the utility of the PC 2, access to the storage from the PC 2 is started.

このように、ユーティリティを使ってセッションの開始・切断を行うことによって、複数のクライアントPCからストレージを共有することができる。 In this way, storage can be shared from a plurality of client PCs by starting / disconnecting a session using a utility.

しかし、この方法では、ユーザによるセッションの開始・切断操作が必要であり、クライアントPCがストレージにデータを読み書きしていない間(実際にアクセスしていない間)もセッションが維持されているため、ユーザがセッションを切断しない限り、他のクライアントPCがストレージを使用することができないという問題が生じる。 However, this method requires the user to start and disconnect the session, and the session is maintained while the client PC is not reading or writing data to the storage (while it is not actually accessing). Unless the client disconnects the session, another client PC cannot use the storage.

かかる問題を解決するために、ブロックヘッダで特定されるデータ長のブロックデータが伝送される間だけ、特定のクライアント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, the data transmission between the client PC and the storage 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, storage can be shared from a plurality of client PCs without causing a useless blank time in which the storage is not used, but access from a plurality of client PCs is possible. There is a problem that the traffic volume increases as requests constantly move on the network.

しかも、多数のアクセス要求を処理し、特定のクライアントPCに対するデータ伝送専有状態の設定・解除を制御するために、デバイスサーバには高い処理性能が要求されるため、上述したSMBプロトコルを用いて実現する方法と同様、デバイスサーバの高価格化は避けられない。 In addition, since the device server is required to have a high processing performance in order to process a large number of access requests and to control the setting / release of the data transmission exclusive state for a specific client PC, it is realized using the SMB protocol described above. As with the method to do this, it is inevitable that the device server will be expensive.

上記問題に鑑みて、本発明は、ストレージなどのデバイス(周辺機器)をネットワーク上のクライアント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 is shared by a client PC on a network, and is necessary without forcing the user to perform a manual operation. It is an object to provide a means for controlling to access a device only when.

上記目的を達するために、請求項1に記載のクライアントは、ネットワークを介してサーバに接続されたデバイスとの間でデータの入出力を行うクライアントであって、
前記デバイスへのアクセスを指示する上位層と、前記上位層からの指示に応じて前記デバイスが利用可能か否かを確認する第一の制御コマンドを生成する制御コマンド生成手段と、前記制御コマンド生成手段によって前記第一の制御コマンドが生成されると前記サーバに対してセッション開始要求を送るセッション開始要求手段と、当該セッション開始要求に対する応答に基づき前記サーバとセッションを開始するセッション開始手段と、前記サーバとセッション接続中、前記第一の制御コマンドを前記サーバに対して定期的に送り当該セッションの接続状態および他のクライアントからのセッション開始要求の有無を確認するセッション接続状態確認手段と、擬似接続状態へ移行するための所定条件を当該セッション開始要求の有無に応じて変更する所定条件変更手段と、前記サーバから受信した当該第一の制御コマンドに対する応答が前記所定条件を満たすとき、当該セッションを切断するセッション切断手段と、当該セッションの切断後、前記制御コマンド生成手段で生成された前記第一の制御コマンドを前記サーバに対して送らず、当該第一の制御コマンドに対する応答を擬似生成して、前記上位層に通知する擬似応答手段と、から構成されることを特徴とする。
In order to achieve the above object, the client according to claim 1 is a client that inputs and outputs data with a device connected to a server via a network,
An upper layer that instructs access to the device, the control command generation means for the device to generate a first control command for confirming whether available in accordance with an instruction from the upper layer, the control command generation a session start request means for sending a session start request to the server and the first control command is generated by means, a session start means for starting the server and a session based on the response to the session start request, the during connection server session, said first control command regularly sends to the server, and the session connection status confirmation means for confirming the presence or absence of a session start request from the connected state and other clients of the session, the pseudo Predetermined conditions for transitioning to the connection state depend on the presence / absence of the session start request. A predetermined condition changing means for changing Te, response to the first control command received from the server when the predetermined condition is satisfied, the session disconnection means for cutting the session, after cleavage of the session, the control command generation instead of sending the first control commands generated by means to the server, that by pseudo generate a response to the first control command is constituted by a pseudo response means for notifying the upper layer It is characterized by.

上記目的を達するために、請求項6に記載のデバイス共有方法は、ネットワークを介してサーバに接続されたデバイスをクライアントによって共有するデバイス共有方法であって、制御コマンド生成手段が、前記デバイスへのアクセスを指示する上位層からの指示に応じて前記デバイスが利用可能か否かを確認する第一の制御コマンドを生成する制御コマンド生成ステップと、セッション開始要求手段が、前記制御コマンド生成ステップによって前記第一の制御コマンドが生成されると前記サーバに対してセッション開始要求を送るセッション開始要求ステップと、セッション開始手段が、当該セッション開始要求に対する応答に基づき前記サーバとセッションを開始するセッション開始ステップと、セッション接続状態確認手段が、前記サーバとセッション接続中、前記第一の制御コマンドを前記サーバに対して定期的に送り、当該セッションの接続状態および他のクライアントからのセッション開始要求の有無を確認するセッション接続状態確認ステップと、所定条件変更手段が、擬似接続状態へ移行するための所定条件を当該セッション開始要求の有無に応じて変更する所定条件変更ステップと、セッション接続手段が、前記サーバから受信した当該第一の制御コマンドに対する応答が前記所定条件を満たすとき、当該セッションを切断するセッション切断ステップと、擬似応答手段が、当該セッションの切断後、前記制御コマンド生成ステップで生成された前記第一の制御コマンドを前記サーバに対して送らず、当該第一の制御コマンドに対する応答を擬似生成して、前記上位層に通知する擬似応答ステップと、を実行することを特徴とする。 In order to achieve the above object, a device sharing method according to claim 6 is a device sharing method in which a device connected to a server via a network is shared by a client , wherein a control command generation unit is configured to send the device to the device. A control command generating step for generating a first control command for confirming whether or not the device can be used in response to an instruction from an upper layer instructing access; and a session start requesting means, wherein the control command generating step includes: A session start request step for sending a session start request to the server when the first control command is generated, and a session start step for the session start means to start a session with the server based on a response to the session start request; , session connection status confirmation means, said support During bus and session connection, wherein the first control command regularly sends to the server, and the session connection status confirmation step of confirming whether the session start request from the connected state and other clients of the session, a predetermined A condition changing means for changing a predetermined condition for shifting to the pseudo-connection state according to the presence or absence of the session start request; and a session connection means for the first control command received from the server. when the response is said predetermined condition is satisfied, the session disconnection step of cutting the session, the pseudo response means, after cleavage of the session, the generated by the control command generating step the first control commands to the server Te without sending, by a response to the first control command to the pseudo generate, the And executes a pseudo response notifying the position layer.

本発明によれば、クライアントPCに対して、ネットワーク上のデバイスサーバに接続されているデバイスをローカル接続したデバイスとして認識させるとともに、デバイスにアクセスするときだけ、クライアントPCとデバイスサーバ間のセッションを接続することができる。 According to the present invention, a client PC recognizes a device connected to a device server on the network as a locally connected device, and connects a session between the client PC and the device server only when accessing the device. can do.

これにより、ネットワーク上でデバイスを共有する際、SMBプロトコルや特許文献1に開示された処理機能をデバイスサーバへ組み込む必要が無くなるため、デバイスサーバの負荷が軽減され、安価なネットワークシステム構成で複数のクライアントPCからデバイスを共有することが可能となる。 This eliminates the need to incorporate the processing function disclosed in the SMB protocol and Patent Document 1 into the device server when sharing the device on the network, 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のユーティリティなどで手動操作して行っていたセッションの開始、切断の操作が不要となり、デバイスがネットワーク環境にあることを意識せずに使用することが可能となる。 In addition, by making the client PC recognize that the device is always connected, it is not necessary to start and disconnect the session that was manually operated by the utility of the client PC, and the device is in a network environment. It becomes possible to use without being aware of this.

以下、本発明の第一の実施の形態について図面を参照して詳細に説明する。 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, and a storage 300.

このネットワークシステムでは、デバイスサーバ200とストレージ300をUSB(Universal Serial Bus)やIEEE1394などのインターフェースに準拠した接続ケーブル400で接続する。また、デバイスサーバ200とPC100(PC100A,PC100B)は、有線または無線のネットワーク500で接続する。 In this network system, the device server 200 and the storage 300 are connected by a connection cable 400 conforming to an interface such as USB (Universal Serial Bus) or IEEE1394. 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 storage 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 storage 300.

なお、以降の説明においては、クライアントPCのオペレーティングシステム(Operating System;以下、OS)をWindows(登録商標)、デバイスをストレージ、デバイスサーバとデバイスの接続インターフェースをUSBとした場合の構成で説明するが、これらに限定されず、別のOSや接続インターフェースを使用しても良い。 In the following description, the client PC operating system (hereinafter referred to as OS) is Windows (registered trademark), the device is a storage, and the connection interface between the device server and the device is USB. However, the present invention is not limited to these, and another OS or 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, for example, a device such as a personal computer, and is configured to be connected to the network 500 and use the storage 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〜116(後述)など各種ソフトウェアが記録されている。ここで、アプリケーションプログラム111とは、ファイル管理ソフトウェアなど、ストレージ300へのアクセスを発生せしめるソフトウェアプログラムを指す。 The external storage unit 106 stores various software such as an OS 110, an application program 111, and software groups 112 to 116 (described later) for realizing the present invention. Here, the application program 111 refers to a software program that causes access to the storage 300, such as file management software.

外部記憶部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 storage 300 via the device server 200. Make it possible.

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

SCSIコマンド層112は、ストレージ300にアクセスする際に使用するドライバソフトウェア(例えば、disk.sysなど)である。 The SCSI command layer 112 is driver software (for example, disk.sys) used when accessing the storage 300.

PC100内において、上位層(OS110およびアプリケーションプログラム111)からの指示によりストレージ300へのアクセスが発生すると、制御コマンドであるSCSIコマンドの生成を行い、フィルタドライバ層113へ送出し、当該SCSIコマンドに対する応答情報を待つ。なお、これ以降の説明では、制御コマンドをSCSIコマンドとして説明するが、SCSIコマンドに限定するものではない。 When access to the storage 300 occurs in the PC 100 according to an instruction from the upper layer (the OS 110 and the application program 111), a SCSI command that is a control command is generated, sent to the filter driver layer 113, and a response to the SCSI command Wait for information. In the following description, the control command is described as a SCSI command, but is not limited to the SCSI command.

フィルタドライバ層113は、SCSIコマンド層112又はUSBドライバ層114から送られてくるSCSIコマンドの種類(内容)を解析するソフトウェアである。 The filter driver layer 113 is software that analyzes the type (contents) of the SCSI command sent from the SCSI command layer 112 or the USB driver layer 114.

また、SCSIコマンドの解析結果に基づいてSCSIコマンド層112を介して上位層に擬似応答情報を返すとともに、ネットワークプロトコル層115と連携してデバイスサーバ200との間のセッションを切断する機能を備えている。 In addition, the pseudo-response information is returned to the upper layer via the SCSI command layer 112 based on the analysis result of the SCSI command, and the session with the device server 200 is disconnected in cooperation with the network protocol layer 115. Yes.

USBドライバ層114は、接続対象となるUSBデバイス(本実施例では、ストレージ300)が持つ機能に合わせた制御を行うドライバソフトウェア(例えば、usbstor.sysなど)であり、また、SCSIコマンドとUSBデバイスが扱えるUSBパケットとの変換処理などを行うソフトウェアである。 The USB driver layer 114 is driver software (for example, usbstore.sys) that performs control in accordance with a function of a USB device to be connected (in this embodiment, the storage 300), and also includes a SCSI command and a USB device. Is a software that performs conversion processing with a USB packet that can be handled.

ネットワークプロトコル層115は、USBパケットに対してIP(Internet Protocol)ヘッダの付加、取り外しの処理を行い、ネットワーク500を介して接続されているデバイスサーバ200との間のデータ通信を制御するソフトウェアである。 The network protocol layer 115 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. .

ネットワークインターフェース層116は、Ethernet(登録商標)のような有線ネットワーク、若しくは、IEEE802.11aやIEEE802.11bのような無線ネットワークなどネットワーク500に対応したネットワークパケットによる送受信や通信制御を行うためのドライバソフトウェアである。 The network interface layer 116 is driver 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 or IEEE802.11b. It is.

なお、本実施例では、フィルタドライバ層113がSCSIコマンド層112とUSBドライバ層114との間に配置してあるが、この位置に限定されるものではない。例えば、USBドライバ層114の下に配置する構成や、ネットワークプロトコル層115のドライバソフトウェアの一部に組み込まれる構成であっても良い。 In this embodiment, the filter driver layer 113 is disposed between the SCSI command layer 112 and the USB driver layer 114, but the present invention is not limited to this position. For example, a configuration arranged below the USB driver layer 114 or a configuration incorporated in a part of the driver software of the network protocol layer 115 may be used.

次に、デバイスサーバ200について説明する。デバイスサーバ200は、PC100A,100Bとデバイスであるストレージ300と間の接続制御を行う装置である。 Next, the device server 200 will be described. The device server 200 is a device that controls connection between the PCs 100A and 100B and the storage 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インターフェース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 interface 207, and the like, which 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 making a local connection with the storage 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 communication with the PC 100 connected to the network 500 using a session or a network packet.

また、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 storage 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 storage 300. In addition, 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 (storage 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 device 300 side.

ここで、上述した図2及び図3で各ソフトウェア構成を説明したPC100とデバイスサーバ200間の通信に関して説明する。 Here, communication between the PC 100 and the device server 200 whose software configurations have been described with reference to FIGS. 2 and 3 will be described.

PC100のネットワークプロトコル層115は、ネットワークインターフェース層116を介して、デバイスサーバ200の通信層212とTCPプロトコル(Transmission Control Protocol)を用いて通信する。TCPプロトコルは、信頼性のある通信を保証するためのプロトコルであり、本実施例においては、ネットワーク500上に流れるストレージ300のデータの転送に用いている。 The network protocol layer 115 of the PC 100 communicates with the communication layer 212 of the device server 200 via the network interface layer 116 using the TCP protocol (Transmission Control Protocol). The TCP protocol is a protocol for guaranteeing reliable communication, and is used for transferring data of the storage 300 flowing on the network 500 in this embodiment.

ストレージ300は、例えば、HDD(Hard Disk Drive)のような装置であり、各種データの書き込み処理や読出し処理が可能な装置である。 The storage 300 is a device such as an HDD (Hard Disk Drive), and is a device capable of writing and reading various data.

なお、本実施例では、デバイスとしてストレージを例に説明しているが、例えば、プリンタやスキャナなど、別のデバイスであってもよい。 In this embodiment, storage is described as an example of a device, but another device such as a printer or a scanner may be used.

図4は、PC100からストレージ300へアクセスするときに使用する主なSCSIコマンドについて、CDB(Command Descriptor Block)の種類、オペレーションコード、サイズと意味を示した一覧リストであり、上述したPC100のSCSIコマンド層112(図2参照)で生成される制御コマンドである。本発明においては、これらのSCSIコマンドをセッション制御に利用する。 FIG. 4 is a list showing the types, operation codes, sizes, and meanings of the CDB (Command Descriptor Block) for the main SCSI commands used when accessing the storage 300 from the PC 100. The SCSI commands of the PC 100 described above are shown in FIG. This is a control command generated in the layer 112 (see FIG. 2). In the present invention, these SCSI commands are used for session control.

各CDBは、1バイトのオペレーションコードとそれに対応する構造体のサイズが定義されており、例えば、Test Unit ReadyのCDBでは、オペレーションコードは0x00であり、サイズは6バイトである。以下、本実施例の説明で使用するコマンドについて説明する。 Each CDB defines a 1-byte operation code and the size of a structure corresponding to the 1-byte operation code. For example, in a CDB of Test Unit Ready, the operation code is 0x00 and the size is 6 bytes. Hereinafter, commands used in the description of this embodiment will be described.

Test Unit Readyコマンド(以下、TURコマンド)は、ストレージ300へのアクセスがアイドル状態になった場合、PC100から定期的(例えば、一秒間隔)に送出され、ストレージの状態を確認するために用いられている制御コマンドである。 A Test Unit Ready command (hereinafter referred to as a TUR command) is sent from the PC 100 periodically (for example, at intervals of one second) when the access to the storage 300 is in an idle state, and is used to check the storage state. Control command.

READコマンドは、ストレージ300からデータを読み出すときに用いられるコマンドであり、WRITEコマンドは、ストレージ300へデータを書き込むときに用いられるコマンドである。なお、これ以降の説明では、TURコマンド以外の制御コマンドを「アクセス制御コマンド」として説明する。 The READ command is a command used when reading data from the storage 300, and the WRITE command is a command used when writing data into the storage 300. In the following description, control commands other than TUR commands will be described as “access control commands”.

図5は、図4に図示した各SCSIコマンドで共通に使用されるSRB(SCSI Request Block)のパケットフォーマットである。パケットは、SRBのサイズを示す2バイトのLengthと、機能を示す1バイトのFunctionのフィールドなどで構成される。 FIG. 5 shows a packet format of SRB (SCSI Request Block) that is commonly used in each SCSI command shown in FIG. The packet is composed of a 2-byte Length indicating the size of the SRB, a 1-byte Function field indicating the function, and the like.

SCSIコマンド層112からフィルタドライバ層113へ送信されるSRB構造体は、64バイトのサイズであり、Length=64が設定される。Functionは、SCSIコマンドの実行コードとして0x00、ストレージ300への要求コードとしての0x01、制御を行う0x02などの値が設定される。 The SRB structure transmitted from the SCSI command layer 112 to the filter driver layer 113 has a size of 64 bytes, and Length = 64 is set. In Function, a value such as 0x00 as an execution code of a SCSI command, 0x01 as a request code to the storage 300, 0x02 for performing control, or the like is set.

先頭からオフセット10バイト目にあたる1バイトのCdbLengthは、CDBの有効データサイズを示している。CDBは、SCSIデバイスの具体的なコマンドを示しており、オフセット48バイト目から、16バイト固定長のデータ領域が確保されている。 1-byte CdbLength corresponding to the 10th offset from the beginning indicates the effective data size of the CDB. CDB indicates a specific command of the SCSI device, and a data area having a fixed length of 16 bytes is secured from the 48th byte of the offset.

次に、PC100とストレージ300間のデータ通信の大まかな流れについて図6を参照しながら説明する。 Next, a general flow of data communication between the PC 100 and the storage 300 will be described with reference to FIG.

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

PC100においてストレージ300へのアクセス要求が発生すると、SCSIコマンド層112は、アクセス要求の内容に応じて図4で説明したSCSIコマンドのいずれかを生成し、図5で示したフォーマットでフィルタドライバ層113へ送る。 When an access request to the storage 300 is generated in the PC 100, the SCSI command layer 112 generates one of the SCSI commands described in FIG. 4 according to the content of the access request, and the filter driver layer 113 in the format shown in FIG. Send to.

フィルタドライバ層113は、SCSIコマンド層112で生成されたSCSIコマンドの解析を行い、どのような内容のアクセス要求なのかを判定する。 The filter driver layer 113 analyzes the SCSI command generated in the SCSI command layer 112 and determines what kind of access request it is.

USBドライバ層114は、フィルタドライバ層113で解析されたSCSIコマンドをUSBパケットに変換する(SCSIコマンドをUSBパケットのデータ層に格納する)。 The USB driver layer 114 converts the SCSI command analyzed by the filter driver layer 113 into a USB packet (stores the SCSI command in the data layer of the USB packet).

ネットワークプロトコル層115は、USBドライバ層114でSCSIコマンドから変換されたUSBパケットにIPヘッダを付加し、ネットワーク500に適した形式のデータであるネットワークパケットを作成する。 The network protocol layer 115 adds an IP header to the USB packet converted from the SCSI command in the USB driver layer 114, and creates 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からネットワーク500を介して送信されたネットワークパケットを受信し、ネットワークパケットからIPヘッダを取り外すことでUSBパケットに変換し、これをUSBコマンド層213へ送る。 In the device 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 converts this to the USB command layer 213. send.

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 storage 300 via the connection cable 400.

ストレージ300は、デバイスサーバ200から送られてきたUSBパケットに含まれるSCSIコマンドを解析し、その種類に応じた応答処理を行う。 The storage 300 analyzes the SCSI command included in the USB packet sent from the device server 200 and performs response processing according to the type.

SCSIコマンドがTURコマンドである場合は、ストレージ300を使用可能か否かの状態の確認処理を実行する。 If the SCSI command is a TUR command, a confirmation process of whether or not the storage 300 can be used is executed.

SCSIコマンドがREADコマンドである場合は、ストレージ300からの読み込み処理を実行する。 When the SCSI command is a READ command, a read process from the storage 300 is executed.

SCSIコマンドがWRITEコマンドである場合は、ストレージ300への書き込み処理を実行する。 When the SCSI command is a WRITE command, a write process to the storage 300 is executed.

SCSIコマンドが上述した以外のコマンドである場合は、該当するコマンドに応じた処理を実行する。 If the SCSI command is a command other than those described above, processing corresponding to the corresponding command is executed.

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

上述した応答処理を行ったストレージ300は、その結果をPC100に対する応答情報としてUSBパケットでデバイスサーバ200へ送る。 The storage 300 that has performed the above-described response processing sends the result as response information to the PC 100 to the device server 200 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 response information from the storage, 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 is sent to the PC 100 via the network 500.

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

次に、PC100(PC100A,PC100B)の基本制御について説明する。 Next, basic control of the PC 100 (PC 100A, PC 100B) will be described.

PC100では、デバイスサーバ200との接続が定常状態であるかどうかを判断して、定常状態に達した場合には、デバイスサーバ200とのセッションを切断し、PC100の上位層(OS110、アプリケーションプログラム111)およびSCSIコマンド層112からはストレージ300が接続されていると認識される、いわゆる「擬似接続状態」へ移行し、定常状態である期間は「擬似接続状態」を維持する制御を実行する。 The PC 100 determines whether or not the connection with the device server 200 is in a steady state. When the steady state is reached, the session with the device server 200 is disconnected and the upper layer (OS 110, application program 111) of the PC 100 is disconnected. ) And the SCSI command layer 112 shift to a so-called “pseudo-connected state” in which it is recognized that the storage 300 is connected, and control is performed to maintain the “pseudo-connected state” during a steady state.

なお、定常状態とは、PC100とストレージ300との接続が一定に保たれている状態をいい、定常状態であるかどうかの判断には、TURコマンドに対してストレージ300が連続して「SUCCESS」を応答した回数を用いるものとし、この回数(初期値0)をカウントするカウンタを、以降の説明ではSUCCESSカウンタと呼ぶものとする。 The steady state refers to a state in which the connection between the PC 100 and the storage 300 is kept constant. To determine whether or not the steady state is established, the storage 300 continuously “SUCCESS” in response to the TUR command. The counter that counts the number of times (initial value 0) is referred to as a SUCCESS counter in the following description.

図7は、PC100がデバイスサーバ200を介してストレージ300にアクセスするときの制御動作の手順を示すフローチャートである。 FIG. 7 is a flowchart illustrating a control operation procedure when the PC 100 accesses the storage 300 via the device server 200.

まず、PC100において、ストレージ300へのアクセスが発生した場合、SCSIコマンド層112がアクセス要求の内容に応じたSCSIコマンド(図4参照)の生成を行い、生成されたSCSIコマンドは、フィルタドライバ層113へ送信される(ステップS701)。 First, when an access to the storage 300 occurs in the PC 100, the SCSI command layer 112 generates a SCSI command (see FIG. 4) according to the content of the access request, and the generated SCSI command is sent to the filter driver layer 113. (Step S701).

次に、フィルタドライバ層113が、生成されたSCSIコマンドを解析する(ステップS702)。 Next, the filter driver layer 113 analyzes the generated SCSI command (step S702).

SCSIコマンドがTURコマンドである場合(ステップS702でYes)、フィルタドライバ層113では、SUCCESSカウンタの値を判定する(ステップS703)。この判定により、擬似接続状態であるか否かの判定が行われる。 If the SCSI command is a TUR command (Yes in step S702), the filter driver layer 113 determines the value of the SUCCESS counter (step S703). By this determination, it is determined whether or not the pseudo connection state is established.

SUCCESSカウンタの値が「5」未満の場合(ステップS703でNo)、次に、デバイスサーバ200との間のセッションの有無を判定する(ステップS705)。 If the value of the SUCCESS counter is less than “5” (No in step S703), it is next determined whether or not there is a session with the device server 200 (step S705).

デバイスサーバ200との間で「セッションなし」の場合(ステップS705でYes)、即ち、SUCCESSカウンタの値が「0」の場合は、デバイスサーバ200に対してセッション開始要求を送り、デバイスサーバ200とセッションを開始する(ステップS706)。 If “no session” with the device server 200 (Yes in step S705), that is, if the value of the SUCCESS counter is “0”, a session start request is sent to the device server 200, and the device server 200 A session is started (step S706).

デバイスサーバ200との間で「セッションあり」の場合(ステップS705でNo)、即ち、SUCCESSカウンタの値が「1」以上「5」未満の場合、ステップS706の処理はスキップされる。 In the case of “with session” with the device server 200 (No in step S705), that is, when the value of the SUCCESS counter is “1” or more and less than “5”, the processing in step S706 is skipped.

続いて、デバイスサーバ200に対してTURコマンドを送信する。デバイスサーバ200は、ストレージ300にTURコマンドを送り、ストレージ300で確認処理が実行され、その応答情報がデバイスサーバ200に返送される。デバイスサーバ200は、この応答情報をPC100に返送する(ステップS707)。 Subsequently, a TUR command is transmitted to the device server 200. The device server 200 sends a TUR command to the storage 300, the confirmation process is executed in the storage 300, and the response information is returned to the device server 200. The device server 200 returns this response information to the PC 100 (step S707).

PC100は、デバイスサーバ200から送られてくる応答情報を受信すると、応答内容を確認する(ステップS708) 。 When receiving the response information sent from the device server 200, the PC 100 confirms the response content (step S708).

応答内容が「FAIL」であった場合 (ステップS708でNo)、デバイスサーバ200との間のセッションを維持したまま、SUCCESSカウンタの値を「0」にリセットし(ステップS715)、次のSCSIコマンドの受信待機状態に移る。 If the response content is “FAIL” (No in step S708), the value of the SUCCESS counter is reset to “0” while maintaining the session with the device server 200 (step S715), and the next SCSI command Move to the reception standby state.

応答内容が「SUCCESS」であった場合(ステップS708でYes)、SUCCESSカウンタの値を1つインクリメントし(ステップS709)、続いて、SUCCESSカウンタの値が規定値「5」であるか否かを判定する(ステップS710)。 If the response content is “SUCCESS” (Yes in step S708), the value of the SUCCESS counter is incremented by 1 (step S709), and then whether or not the value of the SUCCESS counter is the specified value “5” is determined. Determination is made (step S710).

SUCCESSカウンタの値が規定値「5」未満の場合(ステップS710でNo)、デバイスサーバ200との間のセッションを維持したまま、次のSCSIコマンドの受信待機状態に移る。 When the value of the SUCCESS counter is less than the specified value “5” (No in step S710), the process shifts to a reception standby state for the next SCSI command while maintaining the session with the device server 200.

SUCCESSカウンタの値が規定値「5」を示す場合(ステップS710でYes)、デバイスサーバ200との接続が定常状態であると判断してセッションを終了し(ステップS711)、次のSCSIコマンドの受信待機状態に移る。 If the value of the SUCCESS counter indicates the prescribed value “5” (Yes in step S710), it is determined that the connection with the device server 200 is in a steady state, the session is terminated (step S711), and the next SCSI command is received. Move to standby state.

一方、上述したステップS703の処理において、SUCCESSカウンタの値が規定値「5」以上の場合は(ステップS703でYes)、セッションが終了した状態、すなわち定常状態であるため、実際のネットワーク接続によるストレージ300への問い合わせは行わず、フィルタドライバ層113で擬似応答情報を生成し、SCSIコマンド層112に「SUCCESS」を返す(ステップS704)。そして、SCSIコマンド層112から上位層に対して「SUCCESS」が通知され、次のSCSIコマンドの受信待機状態に移る。 On the other hand, if the value of the SUCCESS counter is equal to or greater than the specified value “5” in the process of step S703 described above (Yes in step S703), the session is terminated, that is, the steady state, and thus the storage by the actual network connection 300 is not inquired, the pseudo response information is generated in the filter driver layer 113, and "SUCCESS" is returned to the SCSI command layer 112 (step S704). Then, “SUCCESS” is notified from the SCSI command layer 112 to the upper layer, and the next SCSI command reception standby state is entered.

これ以降、フィルタドライバ層113がアクセス制御コマンドを受け取るまで、上述したステップS701〜S704が繰り返される。この間、PC100の上位層(OS110、アプリケーションプログラム111)およびSCSIコマンド層112では、ストレージ300が接続された状態と判断されているが、デバイスサーバ200とのセッションが切断されている状態、いわゆる「擬似接続状態」を維持することになる。 Thereafter, steps S701 to S704 described above are repeated until the filter driver layer 113 receives the access control command. During this time, the upper layer (OS 110, application program 111) and the SCSI command layer 112 of the PC 100 determine that the storage 300 is connected, but the session with the device server 200 is disconnected, so-called “pseudo”. The "connection state" will be maintained.

また、上述したステップS702の処理で、フィルタドライバ層113が解析したSCSIコマンドがアクセス制御コマンドである場合の処理について説明する。 In addition, the process when the SCSI command analyzed by the filter driver layer 113 in the process of step S702 described above is an access control command will be described.

SCSIコマンドがアクセス制御コマンドの場合(ステップS702でNo)、例えば、READコマンド/WRITEコマンドなどの場合、次に、デバイスサーバ200との間のセッションの有無を判定する(ステップS712)。 If the SCSI command is an access control command (No in step S702), for example, if it is a READ command / WRITE command or the like, it is next determined whether or not there is a session with the device server 200 (step S712).

デバイスサーバ200との間で「セッションなし」の場合(ステップS712でYes)、SUCCESSカウンタの値が「0」の場合は、デバイスサーバ200に対してセッション開始要求を送り、デバイスサーバ200とセッションを開始する(ステップS713)。 In the case of “no session” with the device server 200 (Yes in step S712), when the value of the SUCCESS counter is “0”, a session start request is sent to the device server 200, and a session with the device server 200 is established. Start (step S713).

デバイスサーバ200との間で「セッションあり」の場合(ステップS712でNo)、即ち、SUCCESSカウンタの値が「1」以上「5」未満の場合、ステップS713の処理はスキップされる。 In the case of “with session” with the device server 200 (No in step S712), that is, when the value of the SUCCESS counter is “1” or more and less than “5”, the process of step S713 is skipped.

続いて、デバイスサーバ200に対してREADコマンド/WRITEコマンドなどのSCSIコマンドを送信する。デバイスサーバ200は、ストレージ300に対しこのSCSIコマンドを送り、ストレージ300でREADコマンド/WRITEコマンドなどに応じた処理が実行され、その応答情報がデバイスサーバ200に返送される。デバイスサーバ200は、この応答情報をPC100に返送する(ステップS714)。 Subsequently, a SCSI command such as a READ command / WRITE command is transmitted to the device server 200. The device server 200 sends this SCSI command to the storage 300, processing corresponding to the READ command / WRITE command or the like is executed in the storage 300, and the response information is returned to the device server 200. The device server 200 returns this response information to the PC 100 (step S714).

PC100は、デバイスサーバ200から送られてくる応答情報を受信すると、デバイスサーバ200とのセッションを維持したまま、SUCCESSカウンタの値を「0」にリセットし(ステップS715)、次のSCSIコマンドの受信待機状態に移る。 Upon receiving the response information sent from the device server 200, the PC 100 resets the value of the SUCCESS counter to “0” while maintaining the session with the device server 200 (step S715), and receives the next SCSI command. Move to standby state.

上記のSUCCESSカウンタは、フィルタドライバ層113がその機能の一部として備えるものでもよく、また、別のソフトウェアとして外部記憶部106に記録され、ソフトウェア群112〜116同様、CPU101の制御に従い、メモリ104上に読み出されて実行されるものでもよい。 The SUCCESS counter may be included in the filter driver layer 113 as a part of its function, and is recorded in the external storage unit 106 as another software, and the memory 104 is controlled according to the control of the CPU 101 as in the software groups 112 to 116. It may be read out and executed.

上述したように、フィルタドライバ層113では、SUCCESSカウンタの値が規定値「5」となるまでの間にアクセス制御コマンドを受信した場合、又は、応答情報が「FAIL」である場合、SUCCESSカウンタの値を「0」にリセットする。 As described above, in the filter driver layer 113, when the access control command is received before the value of the SUCCESS counter reaches the specified value “5”, or when the response information is “FAIL”, the value of the SUCCESS counter Reset the value to “0”.

本実施の形態では、PC100とデバイスサーバ200との接続が定常状態であるかどうかの判断基準の一例として、SUCCESSカウンタの値を用いているが、規定値は「5」以外の値でも良く、ユーザが任意に設定できるようにしても良い。また、TURコマンドに対する応答が一定時間SUCCESSであることなどを条件にしても良い。 In the present embodiment, the value of the SUCCESS counter is used as an example of a criterion for determining whether or not the connection between the PC 100 and the device server 200 is in a steady state, but the specified value may be a value other than “5”. The user may arbitrarily set it. Alternatively, the response to the TUR command may be conditional on SUCCESS for a certain time.

図8は、図7の制御フローに基づいて動作するPC100の状態遷移を示した図である。 FIG. 8 is a diagram showing state transitions of the PC 100 that operates based on the control flow of FIG.

状態801は、電源投入直後などPC100の初期状態である。このとき、デバイスサーバ200との間は「セッションなし」で、SUCCESSカウンタの値は初期値「0」である。 A state 801 is an initial state of the PC 100 such as immediately after power-on. At this time, there is “no session” with the device server 200, and the value of the SUCCESS counter is the initial value “0”.

状態801において、ストレージ300に対するアクセスが発生すると、状態801から状態802に遷移する。 When an access to the storage 300 occurs in the state 801, the state 801 transits to the state 802.

状態802は、デバイスサーバ200との接続がまだ定常状態になっていない状態である。このとき、デバイスサーバ200との間は「セッションあり」で、SUCCESSカウンタの値は「5」未満である。 The state 802 is a state where the connection with the device server 200 is not yet in a steady state. At this time, there is a “session” with the device server 200, and the value of the SUCCESS counter is less than “5”.

状態802において、SCSIコマンドを生成してデバイスサーバ200に送出した後、デバイスサーバ200を介してストレージ300からの応答情報を受信すると、次の(a)、(b)、(c)の何れかの状態となる。 In the state 802, after generating a SCSI command and sending it to the device server 200, when response information is received from the storage 300 via the device server 200, one of the following (a), (b), and (c) It becomes the state of.

(a)TURコマンドの要求があり、これに対する応答が「SUCCESS」であり、SUCCESSカウンタの値が規定値「5」に達した場合、状態803に遷移する。 (A) When there is a request for a TUR command, the response to this is “SUCCESS”, and when the value of the SUCCESS counter reaches the specified value “5”, the state transitions to state 803.

(b)TURコマンドの要求があり、これに対する応答が「SUCCESS」であり、SUCCESSカウンタの値が規定値「5」未満の場合は、状態802を維持する。 (B) When there is a request for the TUR command, the response to this is “SUCCESS”, and the value of the SUCCESS counter is less than the prescribed value “5”, the state 802 is maintained.

(c)アクセス制御コマンドの要求があり、これに対する応答があった場合、SUCCESSカウンタの値を「0」にリセットし、状態802を維持する。 (C) When there is a request for an access control command and there is a response thereto, the value of the SUCCESS counter is reset to “0” and the state 802 is maintained.

このように、PC100は、上述した(a)の場合のみ、状態802から状態803に遷移する。 Thus, the PC 100 transitions from the state 802 to the state 803 only in the case of (a) described above.

状態803は、デバイスサーバ200との接続が定常状態に達した状態、即ち、擬似接続状態を示している。このとき、デバイスサーバ200との間は「セッションなし」で、SUCCESSカウンタの値は規定値「5」以上である。 A state 803 indicates a state where the connection with the device server 200 reaches a steady state, that is, a pseudo connection state. At this time, there is no session with the device server 200, and the value of the SUCCESS counter is equal to or greater than the specified value “5”.

状態803において、OS110およびアプリケーションプログラム111からの指示によりSCSIコマンド層112がSCSIコマンドを生成したとき、次の(d)、(e)の何れかの状態となる。 In the state 803, when the SCSI command layer 112 generates a SCSI command in accordance with an instruction from the OS 110 and the application program 111, one of the following states (d) and (e) is entered.

(d)SCSIコマンドがTURコマンドの場合、フィルタドライバ層113で擬似応答情報を生成し、SCSIコマンド層112に対しSUCCESSを応答し、状態803を維持する。 (D) When the SCSI command is a TUR command, the filter driver layer 113 generates pseudo response information, responds SUCCESS to the SCSI command layer 112, and maintains the state 803.

(e)SCSIコマンドがアクセス制御コマンドの場合、デバイスサーバ200との間のセッションを開始し、デバイスサーバ200に対して生成したSCSIコマンドを送る。そして、デバイスサーバ200を介してストレージ300からの応答情報を受信すると、SUCCESSカウンタの値を「0」にリセットし、状態802へ遷移する。 (E) When the SCSI command is an access control command, a session with the device server 200 is started, and the generated SCSI command is sent to the device server 200. When response information from the storage 300 is received via the device server 200, the value of the SUCCESS counter is reset to “0”, and the state transitions to the state 802.

このように、PC100は、ストレージ300にアクセスが必要なときだけ、デバイスサーバ200と間のセッションを開始してSCSIコマンドの送出を行うので、セッションの開始・切断を手動操作することなく、複数のクライアントPCによるストレージのアクセスを実現できる。また、クライアントPCからデバイスサーバ200に対して定期的に送出するTURコマンドを抑制し、ネットワーク上の通信量(トラフィック)を低減することができる。 As described above, the PC 100 starts a session with the device server 200 and sends out a SCSI command only when access to the storage 300 is necessary. Storage access by the client PC can be realized. In addition, it is possible to suppress a TUR command that is periodically transmitted from the client PC to the device server 200, thereby reducing the amount of traffic (traffic) on the network.

次に、デバイスサーバ200の制御動作について図9を参照しながら説明する。 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 a session start request or session end request from the PC 100.

セッション開始要求を受信した場合(ステップS901でYes)、他のPC100とセッション接続中か否かを確認する(ステップS902)。 If a session start request has been received (Yes in step S901), it is confirmed whether or not a session is being connected to another PC 100 (step S902).

既にセッションが開始されている場合(ステップS902でYes)、このPC100に対して「NG」を返す(ステップS903)。 If the session has already started (Yes in step S902), “NG” is returned to the PC 100 (step S903).

セッションが開始されていない場合(ステップS902でNo)、このPC100とセッションを開始し(ステップS904)、応答情報として「OK」を返す(ステップS905)。 If the session is not started (No in step S902), the session is started with this PC 100 (step S904), and “OK” is returned as response information (step S905).

上述したステップS901の処理において、セッション開始要求以外のパケットを受信した場合(ステップS901でNo)、セッション終了要求であれば(ステップS906でYes)、セッション接続中のPC100との間のセッションを切断し(ステップS907)、応答情報として「OK」を返す(ステップS908)。 If a packet other than the session start request is received in the process of step S901 described above (No in step S901), if it is a session end request (Yes in step S906), the session with the PC 100 being connected to the session is disconnected. Then, “OK” is returned as response information (step S908).

一方、上述したステップS906の処理において、セッション終了要求以外のパケットを受信した場合(ステップS906でNo)、そのパケットの種類に応じた応答処理を実行する(ステップS909)。 On the other hand, when a packet other than the session end request is received in the process of step S906 described above (No in step S906), a response process corresponding to the type of the packet is executed (step S909).

図10は、図9の制御フローに基づいて動作するデバイスサーバ200の状態遷移を示した図である。 FIG. 10 is a diagram showing state transition of the device server 200 that operates based on the control flow of FIG.

状態1001は、デバイスサーバ200の初期状態である。このとき、PC100との間は「セッションなし」である。UDP(User Datagram Protocol)プロトコルを用いた通信などによる外部からの要求に応答し、状態1001を維持する。 A state 1001 is an initial state of the device server 200. At this time, there is “no session” with the PC 100. The state 1001 is maintained in response to an external request through communication using a UDP (User Datagram Protocol) protocol.

ここで、PC100においてストレージ300に対するアクセスが発生すると、PC100からデバイスサーバ200に対してセッション開始要求が送られる。デバイスサーバ200は、セッション開始要求に応じてPC100との間のセッションを開始し、状態1002に遷移する(図10の(a))。 Here, when access to the storage 300 occurs in the PC 100, a session start request is sent from the PC 100 to the device server 200. The device server 200 starts a session with the PC 100 in response to the session start request, and transitions to the state 1002 ((a) of FIG. 10).

状態1002は、「セッションあり」の状態である。この状態では、次の(b)、(c)、(d)の処理を行い、状態1002を維持する。 The state 1002 is a “session present” state. In this state, the following processes (b), (c), and (d) are performed, and the state 1002 is maintained.

(b)セッション接続中のPC100からコマンドを受信して、それをストレージ300に送信し、ストレージ300から受信する当該コマンドに対する応答情報をPC100に返送する。 (B) A command is received from the PC 100 in session connection, is transmitted to the storage 300, and response information for the command received from the storage 300 is returned to the PC 100.

(c)セッション接続中ではない他のPC100からセッション開始要求があった場合、そのPC100に対して新たにセッションを開始することができないため、「NG」を応答する。 (C) When there is a session start request from another PC 100 that is not in session connection, a new session cannot be started for that PC 100, and “NG” is returned.

(d)UDPプロトコルを用いた通信などによる外部からの要求に応答する。 (D) Respond to a request from the outside by communication using the UDP protocol.

一方、状態1002において、セッション接続中のPC100からセッション終了要求があった場合、当該PC100とのセッションを切断し、状態1001へ遷移する(図10の(e))。 On the other hand, when there is a session end request from the PC 100 in session connection in the state 1002, the session with the PC 100 is disconnected and the state 1001 is entered ((e) of FIG. 10).

このように、デバイスサーバ200では、PC100の状態遷移に応じて、「セッションなし」の状態1001と「セッションあり」の状態1002との遷移を繰り返す。 As described above, the device server 200 repeats the transition between the “no session” state 1001 and the “session present” state 1002 in accordance with the state transition of the PC 100.

次に、上述したネットワークシステムにおいて、PC100Aからストレージ300へアクセスするときの具体的なタイミングチャートについて説明する。 Next, a specific timing chart when accessing the storage 300 from the PC 100A in the network system described above will be described.

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

ここでは、他のクライアント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においてストレージ300へのアクセスが発生した場合、ストレージドライバであるSCSIコマンド層112において、アクセスの種類に応じたSCSIコマンドが生成され、生成されたSCSIコマンドは、フィルタドライバ層113へ送信される(タイミングT1101)。 When access to the storage 300 occurs in the PC 100A, a SCSI command corresponding to the type of access is generated in the SCSI command layer 112 as a storage driver, and the generated SCSI command is transmitted to the filter driver layer 113 ( Timing T1101).

フィルタドライバ層113は、デバイスサーバ200に対してセッション開始要求を行う(タイミングT1102)。このとき、SUCCESSカウンタの値は初期値の「0」である。 The filter driver layer 113 makes a session start request to the device server 200 (timing T1102). At this time, the value of the SUCCESS counter is the initial value “0”.

デバイスサーバ200は、PC100Aに対して「OK」を応答して、PC100Aとの間のセッションを開始する(タイミングT1103)。 The device server 200 responds “OK” to the PC 100A and starts a session with the PC 100A (timing T1103).

フィルタドライバ層113は、デバイスサーバ200から「OK」の応答がありセッションが開始されると、ストレージ300の状態を確認するためのTURコマンドを送信する(タイミングT1104)。 When there is a response of “OK” from the device server 200 and the session is started, the filter driver layer 113 transmits a TUR command for confirming the state of the storage 300 (timing T1104).

デバイスサーバ200は、TURコマンドを受信すると、これをストレージ300に送信する(タイミングT1105)。ストレージ300は、TURコマンドに応じた処理を実行し、処理が完了すると応答情報をデバイスサーバ200に返す(タイミングT1106)。デバイスサーバ200はストレージ300からの応答情報をPC100Aに送る(タイミングT1107)。 Upon receiving the TUR command, the device server 200 transmits it to the storage 300 (timing T1105). The storage 300 executes processing according to the TUR command, and returns response information to the device server 200 when the processing is completed (timing T1106). The device server 200 sends response information from the storage 300 to the PC 100A (timing T1107).

フィルタドライバ層113は、デバイスサーバ200から応答情報を受信し、これが「SUCCESS」であれば、SUCCESSカウンタの値を1インクリメントするとともにSCSIコマンド層112へ応答を返す(タイミングT1108)。 The filter driver layer 113 receives the response information from the device server 200. If the response information is “SUCCESS”, the filter driver layer 113 increments the value of the SUCCESS counter by 1 and returns a response to the SCSI command layer 112 (timing T1108).

以後、規定値「5」になるまで定期的(例えば、1秒間隔)にTURコマンドを送出する(タイミングT1109)。そして、SUCCESSカウンタの値が規定値「5」になると、デバイスサーバ200に対してセッション終了要求を送り、デバイスサーバ200とのセッションを切断する(タイミングT1110)。 Thereafter, a TUR command is sent periodically (for example, at intervals of 1 second) until the specified value “5” is reached (timing T1109). When the value of the SUCCESS counter reaches the specified value “5”, a session end request is sent to the device server 200, and the session with the device server 200 is disconnected (timing T1110).

PC100Aでは、セッションが終了したあともSCSIコマンド層112が定期的にTURコマンドを送出するが(タイミングT1111)、フィルタドライバ層113はSUCCESSカウンタの値が規定値「5」以上となっているので、これ以降に送出するSCSIコマンドがTURコマンドである限り擬似応答情報をSCSIコマンド層112に返す(タイミングT1112)。 In the PC 100A, the SCSI command layer 112 periodically sends a TUR command even after the session ends (timing T1111), but the filter driver layer 113 has a SUCCESS counter value equal to or greater than the specified value “5”. As long as the SCSI command to be transmitted thereafter is a TUR command, pseudo response information is returned to the SCSI command layer 112 (timing T1112).

PC100Aの上位層(OS110、アプリケーションプログラム111)およびSCSIコマンド層112は、この擬似応答情報によってストレージ300とは接続状態であると認識する。この状態がいわゆる「擬似接続状態」である。 The upper layer (OS 110, application program 111) and the SCSI command layer 112 of the PC 100A recognize that it is connected to the storage 300 based on this pseudo response information. This state is a so-called “pseudo-connected state”.

次に、擬似接続状態のPC100Aからストレージ300に対してデータの書き込み/読み出しなどのアクセスを行う場合について説明する。 Next, a case where access such as data writing / reading is performed from the pseudo-connected PC 100A to the storage 300 will be described.

擬似接続状態のPC100Aからストレージ300に対してデータの書き込み/読み出しなどのアクセスを行うときは、アクセス制御コマンド(READコマンドやWRITEコマンドなど)の送信に先立って、まず、フィルタドライバ層113がデバイスサーバ200に対してセッション開始要求を送る(タイミングT1113)。 When accessing the storage 300 from the pseudo-connected PC 100A such as data writing / reading, the filter driver layer 113 first loads the device server before transmitting an access control command (READ command, WRITE command, etc.). A session start request is sent to 200 (timing T1113).

デバイスサーバ200は、PC100Aに対して「OK」を応答して、PC100Aとの間でセッションを開始する(タイミングT1114)。 The device server 200 responds “OK” to the PC 100A and starts a session with the PC 100A (timing T1114).

フィルタドライバ層113は、デバイスサーバ200から「OK」の応答がありセッションが開始されると、デバイスサーバ200に対してアクセス制御コマンドを送る(タイミングT1115)。 When there is a response of “OK” from the device server 200 and the session is started, the filter driver layer 113 sends an access control command to the device server 200 (timing T1115).

デバイスサーバ200は、PC100Aからアクセス制御コマンドを受信すると、USBパケットに変換してストレージ300へ送信する(タイミングT1116)。 Upon receiving the access control command from the PC 100A, the device server 200 converts it into a USB packet and transmits it to the storage 300 (timing T1116).

ストレージ300では、デバイスサーバ200から送られてきたアクセス制御コマンドに応じた処理を実行し(例えば、データの書き込み/読み出しなど)、処理が終了するとその結果を応答情報としてデバイスサーバ200に送信する(タイミングT1117)。 The storage 300 executes processing according to the access control command sent from the device server 200 (for example, data writing / reading), and when the processing is completed, the result is sent to the device server 200 as response information ( Timing T1117).

デバイスサーバ200は、ストレージ300からの応答情報を受信すると、この応答情報をPC100Aに対して送信する(タイミングT1118)。 Upon receiving the response information from the storage 300, the device server 200 transmits this response information to the PC 100A (timing T1118).

フィルタドライバ層113は、デバイスサーバ200から応答情報を受信すると、SUCCESSカウンタの値を「0」にリセットするとともにSCSIコマンド層112へ応答を返す(タイミングT1119)。 Upon receiving the response information from the device server 200, the filter driver layer 113 resets the value of the SUCCESS counter to “0” and returns a response to the SCSI command layer 112 (timing T1119).

その後は上述と同様に、フィルタドライバ層113からTURコマンドを定期的に送出し、SUCCESSカウンタの値が規定値「5」になると、デバイスサーバ200に対してセッション終了要求を送り、デバイスサーバ200との間のセッションを切断する(タイミングT1120)。そして、再度ストレージ300にアクセスするときまでの間、擬似接続状態を維持する。 Thereafter, similarly to the above, a TUR command is periodically sent from the filter driver layer 113, and when the value of the SUCCESS counter reaches the specified value “5”, a session end request is sent to the device server 200, and the device server 200 Is disconnected (timing T1120). The pseudo connection state is maintained until the storage 300 is accessed again.

次に、実際の運用により近いケースとして、複数台のPC100(PC100A,PC100B)がストレージ300にアクセスする場合(N対1で接続する場合)について、図12を参照しながら説明する。 Next, as a case closer to actual operation, a case where a plurality of PCs 100 (PC 100A, PC 100B) access the storage 300 (when connected in an N-to-1 manner) will be described with reference to FIG.

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

まず、PC100Aとデバイスサーバ200がセッション接続中のとき、PC100Bがストレージ300にアクセスしようとした場合について説明する。 First, a case where the PC 100B tries to access the storage 300 when the PC 100A and the device server 200 are in session connection will be described.

PC100Aとデバイスサーバ200との間でセッション接続中のとき、PC100Bがデバイスサーバ200にセッション開始要求を送る(タイミングT1201)。 When a session is being connected between the PC 100A and the device server 200, the PC 100B sends a session start request to the device server 200 (timing T1201).

デバイスサーバ200は、PC100Aとセッション接続中のため、PC100Aとの間のセッションが切断されるまで間、PC100Bに対して「NG」を返す(タイミングT1202)。 Since the device server 200 is in session connection with the PC 100A, the device server 200 returns “NG” to the PC 100B until the session with the PC 100A is disconnected (timing T1202).

PC100Bは、デバイスサーバ200から「NG」の応答があると、定期的にセッション開始要求を再送する。 When receiving a “NG” response from the device server 200, the PC 100B periodically resends the session start request.

デバイスサーバ200は、PC100Aとのセッションが切断され、「セッションなし」の状態(PC100Aが擬似接続状態)になったとき、PC100Bからの「セッション開始要求」を受信すると、PC100Bとの間でセッションを開始する(タイミングT1203)。 When the device server 200 receives a “session start request” from the PC 100B when the session with the PC 100A is disconnected and enters a “no session” state (the PC 100A is in a pseudo-connected state), the device server 200 establishes a session with the PC 100B. Start (timing T1203).

PC100Bは、デバイスサーバ200とセッションが開始されると、ストレージ300の状態を確認するためTURコマンドを送信する(タイミングT1204)。 When the session with the device server 200 is started, the PC 100B transmits a TUR command to confirm the state of the storage 300 (timing T1204).

デバイスサーバ200は、TURコマンドを受信すると、これをストレージ300に送信する(タイミングT1205)。ストレージ300は、TURコマンドに応じた処理を実行し、処理が完了すると応答情報をデバイスサーバ200に返す。デバイスサーバ200はストレージ300からの応答情報をPC100Bに送る(タイミングT1206)。 Upon receiving the TUR command, the device server 200 transmits it to the storage 300 (timing T1205). The storage 300 executes processing according to the TUR command, and returns response information to the device server 200 when the processing is completed. The device server 200 sends response information from the storage 300 to the PC 100B (timing T1206).

PC100Bは、デバイスサーバ200から応答情報を受信し、これが「SUCCESS」であれば、SUCCESSカウンタの規定値を判定し、規定値「5」になるまで定期的(例えば、1秒間隔)にTURコマンドを送出する(タイミングT1207)。そして、SUCCESSカウンタの規定値「5」になると、デバイスサーバ200に対してセッション終了要求を送り、デバイスサーバ200とのセッションを切断する(タイミングT1208)。 The PC 100B receives the response information from the device server 200. If the response information is “SUCCESS”, the PC 100B determines the specified value of the SUCCESS counter and periodically (for example, at intervals of 1 second) until the specified value is “5”. (Timing T1207). When the specified value of the SUCCESS counter reaches “5”, a session end request is sent to the device server 200, and the session with the device server 200 is disconnected (timing T1208).

この時点で、PC100A及びPC100Bは共に擬似接続状態であり、デバイスサーバ200は「セッションなし」の状態である(タイミングT1209)。 At this time, both the PC 100A and the PC 100B are in the pseudo connection state, and the device server 200 is in the “no session” state (timing T1209).

続いて、PC100Aがストレージ300にアクセス中(読出し中又は書き込み中など)に、PC100Bからストレージ300にアクセスしようとした場合について説明する。 Next, a case where the PC 100A attempts to access the storage 300 from the PC 100B while the PC 100A is accessing the storage 300 (during reading or writing) will be described.

上述したように、PC100AとPC100Bは共に擬似接続状態であり、デバイスサーバ200は「セッションなし」の状態であるとき、擬似接続状態のPC100Aからデバイスサーバ200にアクセスを開始すると、PC100Aからデバイスサーバ200に対してセッション開始要求が送られ、デバイスサーバ200との間のセッションが開始される。(タイミングT1210) As described above, when both the PC 100A and the PC 100B are in the pseudo connection state and the device server 200 is in the “no session” state, when the PC 100A in the pseudo connection state starts access to the device server 200, the PC 100A and the device server 200 A session start request is sent to the device server 200 and a session with the device server 200 is started. (Timing T1210)

セッションが開始されると、PC100Aがデバイスサーバ200に対してアクセス制御コマンド(READコマンドやWRITEコマンドなど)を送出し(タイミングT1211)、デバイスサーバ200がストレージ300に対してアクセス制御コマンドを送る(タイミングT1212)。 When the session is started, the PC 100A sends an access control command (READ command, WRITE command, etc.) to the device server 200 (timing T1211), and the device server 200 sends an access control command to the storage 300 (timing) T1212).

ストレージ300では、アクセス制御コマンドに応じた処理(例えば、データの書き込み/読出しなど)を実行し、その結果を応答情報としてデバイスサーバ200を介してPC100Aに返信する(タイミングT1213)。 The storage 300 executes processing (for example, data writing / reading) according to the access control command, and returns the result as response information to the PC 100A via the device server 200 (timing T1213).

その後は上述と同様に、フィルタドライバ層113からSUCCESSカウンタの値が規定値「5」になるまで定期的に、TURコマンドをデバイスサーバ200に対して送出する(タイミングT1214)。 Thereafter, similarly to the above, the TUR command is periodically sent from the filter driver layer 113 to the device server 200 until the value of the SUCCESS counter reaches the specified value “5” (timing T1214).

ここで、PC100Bがストレージ300へのアクセスを開始し、デバイスサーバ200にセッション開始要求を送ると、デバイスサーバ200は、PC100Bに対して「NG」を応答する(タイミングT1215)。 When the PC 100B starts access to the storage 300 and sends a session start request to the device server 200, the device server 200 responds “NG” to the PC 100B (timing T1215).

PC100Bは、デバイスサーバ200からの「NG」応答に対して、定期的にセッション開始要求を再送するが、PC100Aとデバイスサーバ200のセッションが切断されるまでは、デバイスサーバ200からは「NG」が応答される。 The PC 100B periodically resends the session start request in response to the “NG” response from the device server 200, but “NG” is received from the device server 200 until the session between the PC 100A and the device server 200 is disconnected. Responded.

デバイスサーバ200とPC100Aとの間のセッションが終了し、デバイスサーバ200がセッションなしの状態になると、PC100Bからのセッション開始要求により、PC100Bとの間でセッションを開始する(タイミングT1216)。このときPC100Aは擬似接続状態である。 When the session between the device server 200 and the PC 100A ends and the device server 200 enters a state in which there is no session, the session is started with the PC 100B by a session start request from the PC 100B (timing T1216). At this time, the PC 100A is in a pseudo-connected state.

これ以降のPC100Bの動作は、上述したPC100Aと同様であり、セッションが開始されると、PC100Bがデバイスサーバ200を介してストレージ300にアクセス可能になる。 The subsequent operations of the PC 100B are the same as those of the PC 100A described above. When the session is started, the PC 100B can access the storage 300 via the device server 200.

上述したように、第一の実施の形態におけるネットワークシステムでは、あるクライアントPCがストレージ300にアクセスするときだけ、クライアントPCとデバイスサーバ間のセッションを接続することにより、ネットワーク上の通信量(トラフィック)を低減することが可能となる。 As described above, in the network system according to the first embodiment, the communication volume (traffic) on the network is established by connecting the session between the client PC and the device server only when a certain client PC accesses the storage 300. Can be reduced.

また、高負荷な処理機能をデバイスサーバへ組み込む必要が無くなるため、安価なネットワークシステム構成で複数のクライアントPCからデバイスを共有することが可能となる。 Further, since it is not necessary to incorporate a high-load processing function into the device server, it becomes possible to share devices from a plurality of client PCs with an inexpensive network system configuration.

次に、本発明の第二の実施の形態について図面を参照して詳細に説明する。本実施の形態は、図1〜図6、図8〜図12に図示した構成が、上記第一の実施の形態と同じであり、その説明を省略する。以下に、上記第一の実施の形態と異なる点のみを説明する。 Next, a second embodiment of the present invention will be described in detail with reference to the drawings. In the present embodiment, the configurations illustrated in FIGS. 1 to 6 and FIGS. 8 to 12 are the same as those in the first embodiment, and the description thereof is omitted. Only differences from the first embodiment will be described below.

第二の実施の形態におけるPC100(PC100A,PC100B)の基本制御フローについて、図13を参照しながら説明する。図13は第一の実施の形態における図7と同様、PC100がデバイスサーバ200を介してストレージ300にアクセスするときの制御動作の手順を示すフローチャートであるが、ステップS1310とステップS1311は、図7にはなかったステップである(詳細は後述)。 A basic control flow of the PC 100 (PC 100A, PC 100B) in the second embodiment will be described with reference to FIG. FIG. 13 is a flowchart showing the procedure of the control operation when the PC 100 accesses the storage 300 via the device server 200 as in FIG. 7 in the first embodiment, but steps S1310 and S1311 are shown in FIG. This is a step that was not included (details will be described later).

PC100において、ストレージ300へのアクセスが発生した場合、SCSIコマンド層112がアクセス要求の内容に応じたSCSIコマンド(図4参照)の生成を行い、生成されたSCSIコマンドは、フィルタドライバ層113へ送信される(ステップS1301)。 In the PC 100, when an access to the storage 300 occurs, the SCSI command layer 112 generates a SCSI command (see FIG. 4) according to the content of the access request, and the generated SCSI command is transmitted to the filter driver layer 113. (Step S1301).

次に、フィルタドライバ層113が、生成されたSCSIコマンドを解析する(ステップS1302)。 Next, the filter driver layer 113 analyzes the generated SCSI command (step S1302).

SCSIコマンドがTURコマンドである場合(ステップS1302でYes)、フィルタドライバ層113では次に、TURコマンドに対する応答が「SUCCESS」であるときの回数をカウントしているカウンタ(以降、SUCCESSカウンタ)の値を判定する(ステップS1303)。この判定により、擬似接続状態であるか否かの判定が行われる。 When the SCSI command is a TUR command (Yes in step S1302), the filter driver layer 113 next counts the number of times when the response to the TUR command is “SUCCESS” (hereinafter, SUCCESS counter). Is determined (step S1303). By this determination, it is determined whether or not the pseudo connection state is established.

SUCCESSカウンタの値が「5」未満の場合(ステップS1303でNo)、次に、デバイスサーバ200との間のセッションの有無を判定する(ステップS1305)。 If the value of the SUCCESS counter is less than “5” (No in step S1303), it is next determined whether there is a session with the device server 200 (step S1305).

デバイスサーバ200との間で「セッションなし」の場合(ステップS1305でYes)、即ち、SUCCESSカウンタの値が「0」の場合は、デバイスサーバ200に対してセッション開始要求を送り、デバイスサーバ200とセッションを開始する(ステップS1306)。 If “no session” with the device server 200 (Yes in step S1305), that is, if the value of the SUCCESS counter is “0”, a session start request is sent to the device server 200, and the device server 200 A session is started (step S1306).

デバイスサーバ200との間で「セッションあり」の場合(ステップS1305でNo)、即ち、SUCCESSカウンタの値が規定値未満の場合、ステップS1306の処理はスキップされる。 In the case of “with session” with the device server 200 (No in step S1305), that is, if the value of the SUCCESS counter is less than the specified value, the process of step S1306 is skipped.

続いて、デバイスサーバ200に対してTURコマンドを送信する。デバイスサーバ200は、ストレージ300にTURコマンドを送り、ストレージ300で確認処理が実行され、その応答情報がデバイスサーバ200に返送される。デバイスサーバ200は、この応答情報をPC100に返送する。なお、このとき、デバイスサーバ200は、他のクライアントPC(例えば、PC100B)から所定時間内に受信したセッション開始要求の有無をあわせて通知する。(ステップS1307)。 Subsequently, a TUR command is transmitted to the device server 200. The device server 200 sends a TUR command to the storage 300, the confirmation process is executed in the storage 300, and the response information is returned to the device server 200. The device server 200 returns this response information to the PC 100. At this time, the device server 200 notifies the presence / absence of a session start request received from another client PC (for example, the PC 100B) within a predetermined time. (Step S1307).

ここでいう所定時間とは、セッション開始後の累計時間や、定期的に送出されるTURコマンドの送出間隔(例えば、1秒間隔)を指すが、これに限定されるものではない。 The predetermined time here refers to the accumulated time after the start of the session and the transmission interval (for example, one second interval) of the TUR command that is periodically transmitted, but is not limited thereto.

PC100Aは、デバイスサーバ200から送られてくる応答情報を受信すると、応答内容を確認する(ステップS1308) 。 When receiving the response information sent from the device server 200, the PC 100A confirms the response content (step S1308).

応答内容が「FAIL」であった場合 (ステップS1308でNo)、デバイスサーバ200との間のセッションを維持したまま、SUCCESSカウンタの値を「0」にリセットし(ステップS1317)、次のSCSIコマンドの受信待機状態に移る。 If the response content is “FAIL” (No in step S1308), the value of the SUCCESS counter is reset to “0” while maintaining the session with the device server 200 (step S1317), and the next SCSI command Move to the reception standby state.

応答内容が「SUCCESS」であった場合(ステップS1308でYes)、SUCCESSカウンタの値を1つインクリメントする(ステップS1309)。 If the response content is “SUCCESS” (Yes in step S1308), the value of the SUCCESS counter is incremented by 1 (step S1309).

次に、PC100Aは、デバイスサーバ200との接続を擬似接続状態に移行するかの基準となる規定値を変更するか否かを判定する(ステップS1310)。この判定には、ステップS1307において、デバイスサーバ200から通知された他のクライアントPCからのセッション開始要求の有無に関する情報が用いられる。 Next, the PC 100A determines whether or not to change a specified value that serves as a reference for determining whether or not to shift the connection with the device server 200 to the pseudo connection state (step S1310). For this determination, information regarding the presence or absence of a session start request from another client PC notified from the device server 200 in step S1307 is used.

他のクライアントPCからのセッション開始要求が「あり」の場合(ステップS1310でYes)、規定値を変更する(例えば、「5」から「3」に下げる)(ステップS1311)。 If the session start request from another client PC is “Yes” (Yes in Step S1310), the specified value is changed (for example, lowered from “5” to “3”) (Step S1311).

一方、他のクライアントPCからのセッション開始要求が「なし」の場合(ステップS1310でNo)、ステップS1311をスキップして規定値を変更しない。 On the other hand, if the session start request from another client PC is “none” (No in step S1310), step S1311 is skipped and the specified value is not changed.

続いて、SUCCESSカウンタの値が規定値であるか否かを判定する(ステップS1310)。ステップS1311で規定値を変更した場合には、変更後の規定値に基づいて判定される。 Subsequently, it is determined whether or not the value of the SUCCESS counter is a specified value (step S1310). When the specified value is changed in step S1311, the determination is made based on the changed specified value.

SUCCESSカウンタの値が規定値未満の場合(ステップS1310でNo)、デバイスサーバ200との間のセッションを維持したまま、次のSCSIコマンドの受信待機状態に移る。 When the value of the SUCCESS counter is less than the specified value (No in step S1310), the process shifts to a reception standby state for the next SCSI command while maintaining the session with the device server 200.

一方、上述したステップS1303の処理において、SUCCESSカウンタの値が規定値以上の場合は(ステップS1303でYes)、セッションが終了した状態、すなわち定常状態であるため、実際のネットワーク接続によるストレージ300への問い合わせは行わず、フィルタドライバ層113で擬似応答情報を生成し、SCSIコマンド層112に「SUCCESS」を返す(ステップS1304)。そして、SCSIコマンド層112から上位層に対して「SUCCESS」が通知され、次のSCSIコマンドの受信待機状態に移る。 On the other hand, if the value of the SUCCESS counter is equal to or greater than the specified value in the process of step S1303 described above (Yes in step S1303), the session is terminated, that is, in a steady state, so The inquiry is not performed, the pseudo response information is generated in the filter driver layer 113, and “SUCCESS” is returned to the SCSI command layer 112 (step S1304). Then, “SUCCESS” is notified from the SCSI command layer 112 to the upper layer, and the next SCSI command reception standby state is entered.

これ以降、フィルタドライバ層113がアクセス制御コマンドを受け取るまで、上述したステップS1301〜S1304が繰り返される。この間、PC100の上位層(OS110、アプリケーションプログラム111)およびSCSIコマンド層112では、ストレージ300が接続された状態と判断されているが、デバイスサーバ200とのセッションが切断されている状態、いわゆる「擬似接続状態」を維持することになる。 Thereafter, steps S1301 to S1304 described above are repeated until the filter driver layer 113 receives the access control command. During this time, the upper layer (OS 110, application program 111) and the SCSI command layer 112 of the PC 100 determine that the storage 300 is connected, but the session with the device server 200 is disconnected, so-called “pseudo”. The "connection state" will be maintained.

SUCCESSカウンタの値が規定値を示す場合(ステップS1310でYes)、デバイスサーバ200との接続が定常状態であると判断してセッションを切断し(ステップS1311)、次のSCSIコマンドの受信待機状態に移る。 If the value of the SUCCESS counter indicates a specified value (Yes in step S1310), it is determined that the connection with the device server 200 is in a steady state and the session is disconnected (step S1311), and the next SCSI command reception standby state is set. Move.

また、上述したステップS1302の処理で、フィルタドライバ層113が解析したSCSIコマンドがアクセス制御コマンドである場合の処理について説明する。 In addition, a process when the SCSI command analyzed by the filter driver layer 113 in the process of step S1302 described above is an access control command will be described.

SCSIコマンドがアクセス制御コマンドの場合(ステップS1302でNo)、例えば、READコマンド/WRITEコマンドなどの場合、次に、デバイスサーバ200との間のセッションの有無を判定する(ステップS1314)。 If the SCSI command is an access control command (No in step S1302), for example, if it is a READ command / WRITE command or the like, it is next determined whether or not there is a session with the device server 200 (step S1314).

デバイスサーバ200との間で「セッションなし」の場合(ステップS1314でYes)、SUCCESSカウンタの値が「0」の場合は、デバイスサーバ200に対してセッション開始要求を送り、デバイスサーバ200とセッションを開始する(ステップS1315)。 In the case of “no session” with the device server 200 (Yes in step S1314), when the value of the SUCCESS counter is “0”, a session start request is sent to the device server 200, and a session with the device server 200 is established. Start (step S1315).

デバイスサーバ200との間で「セッションあり」の場合(ステップS1314でNo)、即ち、SUCCESSカウンタの値が規定値未満の場合、ステップS1315の処理はスキップされる。 In the case of “with session” with the device server 200 (No in step S1314), that is, when the value of the SUCCESS counter is less than the specified value, the process of step S1315 is skipped.

続いて、デバイスサーバ200に対してREADコマンド/WRITEコマンドなどのSCSIコマンドを送信する。デバイスサーバ200は、ストレージ300に対しこのSCSIコマンドを送り、ストレージ300でREADコマンド/WRITEコマンドなどに応じた処理が実行され、その応答情報がデバイスサーバ200に返送される。デバイスサーバ200は、この応答情報をPC100に返送する(ステップS1316)。 Subsequently, a SCSI command such as a READ command / WRITE command is transmitted to the device server 200. The device server 200 sends this SCSI command to the storage 300, processing corresponding to the READ command / WRITE command or the like is executed in the storage 300, and the response information is returned to the device server 200. The device server 200 returns this response information to the PC 100 (step S1316).

PC100は、デバイスサーバ200から送られてくる応答情報を受信すると、デバイスサーバ200とのセッションを維持したまま、SUCCESSカウンタの値を「0」にリセットし(ステップS1317)、次のSCSIコマンドの受信待機状態に移る。 Upon receiving the response information sent from the device server 200, the PC 100 resets the value of the SUCCESS counter to “0” while maintaining the session with the device server 200 (step S1317), and receives the next SCSI command. Move to standby state.

上述したように、フィルタドライバ層113では、SUCCESSカウンタの値が規定値となるまでの間にアクセス制御コマンドを受信した場合、又は、応答情報が「FAIL」である場合、SUCCESSカウンタの値を「0」にリセットする。 As described above, in the filter driver layer 113, when the access control command is received before the value of the SUCCESS counter reaches the specified value, or when the response information is “FAIL”, the value of the SUCCESS counter is set to “ Reset to “0”.

上述したように、第二の実施の形態におけるネットワークシステムでは、デバイスサーバ200がPC100に対して、他のクライアントPCからのセッション開始要求の有無をあわせて通知することによって、PC100がより早く擬似接続状態に移行し、デバイスサーバ200とのセッションを開放することができる。 As described above, in the network system according to the second embodiment, the device server 200 notifies the PC 100 together with the presence / absence of a session start request from another client PC, so that the PC 100 can perform pseudo-connection earlier. The session can be released and the session with the device server 200 can be released.

なお、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において適宜変更可能である。 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.

上述した実施の形態では、1台のデバイスサーバが1台のストレージを管理する構成で説明したが、1台のサーバに複数のストレージを接続する構成としても良い。また、この場合はストレージ毎にセッションを用意し制御することで、複数のクライアントPCから、別々のストレージであれば、同時にアクセスが可能となる。 In the above-described embodiment, the configuration is described in which one device server manages one storage, but a configuration in which a plurality of storages are connected to one server may be employed. In this case, by preparing and controlling a session for each storage, a plurality of client PCs can simultaneously access different storages.

また、デバイスサーバとデバイスの接続インターフェースをUSBとした場合の構成で説明したが、これらに限定されず、別の接続インターフェースを使用しても良い。具体的には、IEEE1394に対応するためには、PC100が備えるUSBドライバ層114とデバイスサーバ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. However, the present invention is not limited to this, and another connection interface may be used. Specifically, in order to support IEEE 1394, the USB driver layer 114 included in the PC 100 and the USB command layer 212 included in the device server 200 may be replaced with the IEEE 1394 driver layer and the IEEE 1394 command layer, respectively.

さらにはPC100が複数の異なるドライバ層を持ち、デバイスサーバ200がそれに対応した複数の異なるコマンド層を備えるようにすれば、様々な接続インターフェースを備えたデバイスにも柔軟に対応できる。 Further, if the PC 100 has a plurality of different driver layers 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等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。 Furthermore, after the program code read from the storage medium is written in the memory of the function expansion board inserted into the computer or the 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 schematic structure of the hardware of PC100A, 100B of FIG. 1, and hardware. 図1のデバイスサーバ200のハードウェアおよびハードウェアの概略構成を示すブロック図である。It is a block diagram which shows the hardware of the device server 200 of FIG. 1, and schematic structure of hardware. 制御コマンドとして用いられる主なSCSIコマンドの一覧表である。It is a list of main SCSI commands used as control commands. 各SCSIコマンドで共通に使用されるSRB(SCSI Request Block)のパケットフォーマットの説明図である。It is explanatory drawing of the packet format of SRB (SCSI Request Block) used in common by each SCSI command. クライアントPCとストレージ間のデータ通信の大まかな流れの説明図である。It is explanatory drawing of the rough flow of the data communication between client PC and a storage. 第一の実施の形態におけるクライアントPCのセッションの制御動作を示すフローチャートである。It is a flowchart which shows the control operation of the session of the client PC in 1st embodiment. クライアントPCの状態遷移図である。It is a state transition diagram of a client PC. 第一の実施の形態におけるデバイスサーバのセッションの制御動作を示すフローチャートである。It is a flowchart which shows the control operation of the session of the device server in 1st embodiment. デバイスサーバの状態遷移図である。It is a state transition diagram of a device server. 第一の実施の形態における一台のクライアントPCがストレージにアクセスするときの過程を示したタイミングチャートである。6 is a timing chart showing a process when one client PC accesses the storage in the first embodiment. 第一の実施の形態における複数台のクライアントPCがストレージにアクセスするときの過程を示したタイミングチャートである。4 is a timing chart showing a process when a plurality of client PCs access a storage in the first embodiment. 第二の実施の形態におけるクライアントPCのセッションの制御動作を示すフローチャートである。It is a flowchart which shows the control operation of the session of the client PC in 2nd embodiment. 従来技術において、ネットワーク上のストレージにアクセスするとき、クライアントPCのユーティリティを操作してセッションを制御するときの動作を示すフローチャートである。6 is a flowchart illustrating an operation when a session is controlled by operating a utility of a client PC when accessing a storage on a network in the related art. 従来技術において、複数台のクライアントPCがストレージにアクセスする場合の過程を示すタイミングチャートである。10 is a timing chart showing a process when a plurality of client PCs access a storage in the prior art.

符号の説明Explanation of symbols

100A,100B:クライアントPC
101:CPU
102:入力部
103:表示部
104:メモリ
105:通信部
106:外部記憶部
107:内部バス
110:OS
111:アプリケーションプログラム
112:SCSIコマンド層
113:フィルタドライバ層
114:USBドライバ層
115:ネットワークプロトコル層
116:ネットワークインターフェース層
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: SCSI command layer 113: Filter driver layer 114: USB driver layer 115: Network protocol layer 116: Network interface layer 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: Storage 400: Connection cable 500: Network

Claims (8)

ネットワークを介してサーバに接続されたデバイスとの間でデータの入出力を行うクライアントであって、
前記デバイスへのアクセスを指示する上位層と、
前記上位層からの指示に応じて前記デバイスが利用可能か否かを確認する第一の制御コマンドを生成する制御コマンド生成手段と、
前記制御コマンド生成手段によって前記第一の制御コマンドが生成されると前記サーバに対してセッション開始要求を送るセッション開始要求手段と、
当該セッション開始要求に対する応答に基づき前記サーバとセッションを開始するセッション開始手段と、
前記サーバとセッション接続中、前記第一の制御コマンドを前記サーバに対して定期的に送り当該セッションの接続状態および他のクライアントからのセッション開始要求の有無を確認するセッション接続状態確認手段と、
擬似接続状態へ移行するための所定条件を当該セッション開始要求の有無に応じて変更する所定条件変更手段と、
前記サーバから受信した当該第一の制御コマンドに対する応答が前記所定条件を満たすとき、当該セッションを切断するセッション切断手段と、
当該セッションの切断後、前記制御コマンド生成手段で生成された前記第一の制御コマンドを前記サーバに対して送らず、当該第一の制御コマンドに対する応答を擬似生成して、前記上位層に通知する擬似応答手段と
から構成されることを特徴とするクライアント。
A client that inputs / outputs data to / from a device connected to a server via a network,
An upper layer that instructs access to the device,
Control command generating means for generating a first control command for confirming whether or not the device is available according to an instruction from the upper layer;
A session start request means for sending a session start request to the said first control command is generated by the control command generating unit server,
Session start means for starting a session with the server based on a response to the session start request;
Connecting said server and the session, sends periodically the first control command to the server, and the session connection status confirmation means for confirming the presence or absence of a session start request from the connected state and other clients for the session,
A predetermined condition changing means for changing a predetermined condition for shifting to the pseudo connection state according to the presence or absence of the session start request;
When the response to the first control command received from the server the predetermined condition is satisfied, the session disconnection means for cutting the session,
After the session is disconnected, the first control command generated by the control command generation means is not sent to the server, and a response to the first control command is pseudo-generated and notified to the upper layer A pseudo-response means ;
A client characterized by comprising.
前記所定条件とは、前記第一の制御コマンドに対する成功応答が規定回数、または規定時間連続したか否かであることThe predetermined condition is whether or not a successful response to the first control command has continued for a specified number of times or for a specified time.
を特徴とする請求項1に記載のクライアント。The client according to claim 1.
前記制御コマンド生成手段において、前記デバイスとの間でデータの入出力を行うための第二の制御コマンドを更に生成し、The control command generation means further generates a second control command for inputting / outputting data to / from the device,
前記セッション開始要求手段は、更に、前記セッションの切断後、前記制御コマンド生成手段によって前記第二の制御コマンドが生成されると、前記サーバに対してセッション開始要求を送ることThe session start request means further sends a session start request to the server when the second control command is generated by the control command generation means after the session is disconnected.
を特徴とする請求項1に記載のクライアント。The client according to claim 1.
前記デバイスと、前記サーバと、前記ネットワークを介して前記サーバに接続された請求項1乃至請求項3の何れかに記載のクライアントから構成されることを特徴とするデバイス共有システム。4. A device sharing system comprising the device, the server, and the client according to claim 1 connected to the server via the network. 前記サーバは、セッション接続中でないクライアントからの前記セッション開始要求の有無の情報を管理し、前記第一の制御コマンドに対する応答に当該セッション開始要求の有無の情報を付加してセッション接続中のクライアントに送ることThe server manages information on presence / absence of the session start request from a client not in session connection, and adds information on presence / absence of the session start request to a response to the first control command to a client in session connection. Sending
を特徴とする請求項4に記載のデバイス共有システム。The device sharing system according to claim 4.
ネットワークを介してサーバに接続されたデバイスをクライアントによって共有するデバイス共有方法であって、A device sharing method in which a device connected to a server via a network is shared by a client,
制御コマンド生成手段が、前記デバイスへのアクセスを指示する上位層からの指示に応じて前記デバイスが利用可能か否かを確認する第一の制御コマンドを生成する制御コマンド生成ステップと、A control command generating step for generating a first control command for confirming whether or not the device is available in response to an instruction from an upper layer instructing access to the device;
セッション開始要求手段が、前記制御コマンド生成ステップによって前記第一の制御コマンドが生成されると前記サーバに対してセッション開始要求を送るセッション開始要求ステップと、A session start requesting step for sending a session start request to the server when the first control command is generated by the control command generating step;
セッション開始手段が、当該セッション開始要求に対する応答に基づき前記サーバとセッションを開始するセッション開始ステップと、A session start step in which a session start means starts a session with the server based on a response to the session start request;
セッション接続状態確認手段が、前記サーバとセッション接続中、前記第一の制御コマンドを前記サーバに対して定期的に送り、当該セッションの接続状態および他のクライアントからのセッション開始要求の有無を確認するセッション接続状態確認ステップと、Session connection status confirmation means periodically sends the first control command to the server during session connection with the server, and confirms the connection status of the session and whether there is a session start request from another client. Session connection status confirmation step;
所定条件変更手段が、擬似接続状態へ移行するための所定条件を当該セッション開始要求の有無に応じて変更する所定条件変更ステップと、A predetermined condition changing step in which the predetermined condition changing means changes the predetermined condition for shifting to the pseudo connection state according to the presence or absence of the session start request;
セッション接続手段が、前記サーバから受信した当該第一の制御コマンドに対する応答が前記所定条件を満たすとき、当該セッションを切断するセッション切断ステップと、A session disconnecting step for disconnecting the session when the response to the first control command received from the server satisfies the predetermined condition by the session connecting means;
擬似応答手段が、当該セッションの切断後、前記制御コマンド生成ステップで生成された前記第一の制御コマンドを前記サーバに対して送らず、当該第一の制御コマンドに対する応答を擬似生成して、前記上位層に通知する擬似応答ステップと、The pseudo response means does not send the first control command generated in the control command generation step to the server after disconnecting the session, and generates a pseudo response to the first control command, A pseudo-response step to notify the upper layer;
を実行することを特徴とするデバイス共有方法。A device sharing method comprising:
前記所定条件とは、前記第一の制御コマンドに対する成功応答が規定回数、または規定時間連続したか否かであることThe predetermined condition is whether or not a successful response to the first control command has continued for a specified number of times or for a specified time.
を特徴とする請求項6に記載のデバイス共有方法。The device sharing method according to claim 6.
前記制御コマンド生成ステップにおいて、前記デバイスとの間でデータの入出力を行うための第二の制御コマンドを更に生成し、In the control command generation step, a second control command for inputting / outputting data to / from the device is further generated,
前記セッション開始要求ステップは、更に、前記セッションの切断後、前記制御コマンド生成ステップによって前記第二の制御コマンドが生成されると、前記サーバに対してセッション開始要求を送るステップを実行することThe session start request step further includes a step of sending a session start request to the server when the second control command is generated by the control command generation step after the session is disconnected.
を特徴とする請求項6に記載のデバイス共有方法。The device sharing method according to claim 6.
JP2008268916A 2008-10-17 2008-10-17 Device sharing system, device sharing client, and device sharing method Expired - Fee Related JP5470518B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008268916A JP5470518B2 (en) 2008-10-17 2008-10-17 Device sharing system, device sharing client, and device sharing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008268916A JP5470518B2 (en) 2008-10-17 2008-10-17 Device sharing system, device sharing client, and device sharing method

Publications (3)

Publication Number Publication Date
JP2010097492A JP2010097492A (en) 2010-04-30
JP2010097492A5 JP2010097492A5 (en) 2011-10-27
JP5470518B2 true JP5470518B2 (en) 2014-04-16

Family

ID=42259117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008268916A Expired - Fee Related JP5470518B2 (en) 2008-10-17 2008-10-17 Device sharing system, device sharing client, and device sharing method

Country Status (1)

Country Link
JP (1) JP5470518B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2685009B2 (en) * 1995-01-23 1997-12-03 日本電気株式会社 Communication device

Also Published As

Publication number Publication date
JP2010097492A (en) 2010-04-30

Similar Documents

Publication Publication Date Title
JP5424856B2 (en) Image forming apparatus and power saving control method and program thereof
US9596121B2 (en) Server apparatus communicating with a client apparatus via the internet, system, and control method thereof
JP6167502B2 (en) Communication relay program, communication relay apparatus, and image processing apparatus
JP6140937B2 (en) Network device, program, system and method
JP5124779B2 (en) Device sharing system, device sharing client, and device sharing method
CN104737150B (en) The system and method that disk mirroring file is accessed using the HTML5 KVM/vMEDIA clients run in Web-browser
JP5745424B2 (en) Device control apparatus, client apparatus, device control method, and device control system
JP2008017446A (en) Device and connection control method
JP2013168101A (en) Print control device, printing system, control method of print control device, and program
JP5833880B2 (en) Information processing apparatus, device control apparatus, device control system, and control method thereof
JP5348576B2 (en) Device sharing client and device sharing method
JP5470518B2 (en) Device sharing system, device sharing client, and device sharing method
CN109361746A (en) A kind of document transmission method of Internet of Things, work board and readable storage medium storing program for executing
WO2002039317A1 (en) Network attached tape storage system
JP6907365B2 (en) system
JP2014215896A (en) Access control device, access control method, and access control program
JP6019586B2 (en) Network communication equipment
JP2019162878A (en) Print control device, control method for print control device, and program
JP2018206019A (en) Device control apparatus, device control method, and program
JP2021170346A (en) system
JP2007317067A (en) Network file management system, device server, and file transmission method
JP2007172196A (en) Data management in network devices
JP2005216101A (en) Information system control method, information processing apparatus, storage medium, and program
JP2008015644A (en) File server and communication interface card and remote file access system
JP2017142631A (en) Device control apparatus, control method thereof, and device control system

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110913

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131007

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131210

R150 Certificate of patent or registration of utility model

Ref document number: 5470518

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees