JP5470518B2 - Device sharing system, device sharing client, and device sharing method - Google Patents
Device sharing system, device sharing client, and device sharing method Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 45
- 230000004044 response Effects 0.000 claims description 89
- 238000012790 confirmation Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 description 149
- 238000004891 communication Methods 0.000 description 30
- RVSSFECMBRQIOD-UHFFFAOYSA-N 6-ethylsulfonyl-7h-purine Chemical compound CCS(=O)(=O)C1=NC=NC2=C1NC=N2 RVSSFECMBRQIOD-UHFFFAOYSA-N 0.000 description 29
- 230000008569 process Effects 0.000 description 26
- 238000012545 processing Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 10
- 230000007704 transition Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000003776 cleavage reaction Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000007017 scission Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- FTGYKWAHGPIJIT-UHFFFAOYSA-N hydron;1-[2-[(2-hydroxy-3-phenoxypropyl)-methylamino]ethyl-methylamino]-3-phenoxypropan-2-ol;dichloride Chemical compound Cl.Cl.C=1C=CC=CC=1OCC(O)CN(C)CCN(C)CC(O)COC1=CC=CC=C1 FTGYKWAHGPIJIT-UHFFFAOYSA-N 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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
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
ここで、ユーザが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)
しかし、特許文献1に開示されたネットワークファイル管理システムでは、ストレージが使用されない無駄な空白時間を発生させることなしに複数のクライアントPCからストレージを共有することはできるものの、複数のクライアントPCからのアクセス要求が常にネットワーク上を行き交うことでトラフィック量が増大化するという問題が発生する。
However, in the network file management system disclosed in
しかも、多数のアクセス要求を処理し、特定のクライアント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
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
本発明によれば、クライアント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
また、クライアント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
このネットワークシステムでは、デバイスサーバ200とストレージ300をUSB(Universal Serial Bus)やIEEE1394などのインターフェースに準拠した接続ケーブル400で接続する。また、デバイスサーバ200とPC100(PC100A,PC100B)は、有線または無線のネットワーク500で接続する。
In this network system, the
また、図1のネットワークシステムでは、デバイスサーバ200、ストレージ300をそれぞれ別体の装置で構成しているが、この構成に限定されるものではなく、同等の機能を実現できる構成であれば種々の構成を採り得ることは勿論である。例えば、デバイスサーバ200をストレージ300のケーシング内に収まるように一体構造としても良い。
In the network system of FIG. 1, the
なお、以降の説明においては、クライアント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 (
図2は、PC100(PC100A,PC100B)のハードウェア構成およびソフトウェア構成の一例を示すブロック図である。
FIG. 2 is a block diagram illustrating an example of a hardware configuration and a software configuration of the PC 100 (
PC100は、CPU101、入力部102、表示部103、メモリ104、通信部105、外部記憶部106などから構成されており、これらが内部バス107で接続されている。
The
外部記憶部106は、OS110、アプリケーションプログラム111、本発明を実現するためのソフトウェア群112〜116(後述)など各種ソフトウェアが記録されている。ここで、アプリケーションプログラム111とは、ファイル管理ソフトウェアなど、ストレージ300へのアクセスを発生せしめるソフトウェアプログラムを指す。
The
外部記憶部106に記憶されたこれらソフトウェアは、CPU101の制御に従い、メモリ104上に読み出されて実行される。
The software stored in the
通信部105は、ネットワーク500(有線又は無線ネットワーク)に接続するためのインターフェースであり、デバイスサーバ200との間でデータ通信を行うことで、PC100からデバイスサーバ200を介したストレージ300へのアクセスを可能とする。
The
本発明を実現するためのソフトウェア群112〜116について説明する。
The
SCSIコマンド層112は、ストレージ300にアクセスする際に使用するドライバソフトウェア(例えば、disk.sysなど)である。
The
PC100内において、上位層(OS110およびアプリケーションプログラム111)からの指示によりストレージ300へのアクセスが発生すると、制御コマンドであるSCSIコマンドの生成を行い、フィルタドライバ層113へ送出し、当該SCSIコマンドに対する応答情報を待つ。なお、これ以降の説明では、制御コマンドをSCSIコマンドとして説明するが、SCSIコマンドに限定するものではない。
When access to the
フィルタドライバ層113は、SCSIコマンド層112又はUSBドライバ層114から送られてくるSCSIコマンドの種類(内容)を解析するソフトウェアである。
The
また、SCSIコマンドの解析結果に基づいてSCSIコマンド層112を介して上位層に擬似応答情報を返すとともに、ネットワークプロトコル層115と連携してデバイスサーバ200との間のセッションを切断する機能を備えている。
In addition, the pseudo-response information is returned to the upper layer via the
USBドライバ層114は、接続対象となるUSBデバイス(本実施例では、ストレージ300)が持つ機能に合わせた制御を行うドライバソフトウェア(例えば、usbstor.sysなど)であり、また、SCSIコマンドとUSBデバイスが扱えるUSBパケットとの変換処理などを行うソフトウェアである。
The
ネットワークプロトコル層115は、USBパケットに対してIP(Internet Protocol)ヘッダの付加、取り外しの処理を行い、ネットワーク500を介して接続されているデバイスサーバ200との間のデータ通信を制御するソフトウェアである。
The
ネットワークインターフェース層116は、Ethernet(登録商標)のような有線ネットワーク、若しくは、IEEE802.11aやIEEE802.11bのような無線ネットワークなどネットワーク500に対応したネットワークパケットによる送受信や通信制御を行うためのドライバソフトウェアである。
The
なお、本実施例では、フィルタドライバ層113がSCSIコマンド層112とUSBドライバ層114との間に配置してあるが、この位置に限定されるものではない。例えば、USBドライバ層114の下に配置する構成や、ネットワークプロトコル層115のドライバソフトウェアの一部に組み込まれる構成であっても良い。
In this embodiment, the
次に、デバイスサーバ200について説明する。デバイスサーバ200は、PC100A,100Bとデバイスであるストレージ300と間の接続制御を行う装置である。
Next, the
図3は、デバイスサーバ200のハードウェア構成およびソフトウェア構成の一例を示すブロック図である。
FIG. 3 is a block diagram illustrating an example of the hardware configuration and software configuration of the
デバイスサーバ200は、CPU201、入力部202、表示部203、ROM204、RAM205、通信部206、USBインターフェース207などから構成されており、これらが内部バス208で接続されている。
The
ROM(Read Only Memory)204には、OS210、制御プログラム211、本発明を実現するためのソフトウェア群212〜213(後述)など各種ソフトウェアが記録されており、これらソフトウェアは、CPU201の制御に従い、RAM205上に読み出されて実行される。
A ROM (Read Only Memory) 204 stores various software such as an
USBインターフェース207は、接続ケーブル400を介してストレージ300とローカル接続するためのインターフェースである。
The
通信部206は、ネットワーク500(有線又は無線ネットワーク)に接続してPC100との間でデータ通信するためのインターフェースである。
The
本発明を実現するためのソフトウェア群212〜213について説明する。
The
通信層212は、ネットワークに接続された通信部206の制御を行うとともに、ネットワーク500に接続されているPC100との間のセッションやネットワークパケットによる通信を行うソフトウェアである。
The
また、USBコマンド層213との間で通信するため、ネットワークパケットとUSBパケットとの変換を行う。ネットワークパケットはUSBパケットにIPヘッダを付加して作成するため、変換にはIPヘッダの取り付け及び取り外しを行う。
In addition, in order to communicate with the
USBコマンド層213は、USBパケットに基づいて、ストレージ300との間でデータ通信を行うソフトウェアである。
The
なお、通信層212、USBコマンド層213は、ストレージ300内に内蔵する構成であっても良い。また、通信層212の機能を備えたソフトウェアを別筐体内に設け、デバイス(ストレージ300)に接続可能なインターフェースを有した外付けアダプタの形態として構成してもよい。この場合は、USBコマンド層213の機能を持つソフトウェアは、デバイス300側のRAMや外部記憶装置などに記録しておく構成とする。
Note that the
ここで、上述した図2及び図3で各ソフトウェア構成を説明したPC100とデバイスサーバ200間の通信に関して説明する。
Here, communication between the
PC100のネットワークプロトコル層115は、ネットワークインターフェース層116を介して、デバイスサーバ200の通信層212とTCPプロトコル(Transmission Control Protocol)を用いて通信する。TCPプロトコルは、信頼性のある通信を保証するためのプロトコルであり、本実施例においては、ネットワーク500上に流れるストレージ300のデータの転送に用いている。
The
ストレージ300は、例えば、HDD(Hard Disk Drive)のような装置であり、各種データの書き込み処理や読出し処理が可能な装置である。
The
なお、本実施例では、デバイスとしてストレージを例に説明しているが、例えば、プリンタやスキャナなど、別のデバイスであってもよい。 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
各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
READコマンドは、ストレージ300からデータを読み出すときに用いられるコマンドであり、WRITEコマンドは、ストレージ300へデータを書き込むときに用いられるコマンドである。なお、これ以降の説明では、TURコマンド以外の制御コマンドを「アクセス制御コマンド」として説明する。
The READ command is a command used when reading data from the
図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
先頭からオフセット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
まず、PC100からストレージ300へデータ送信を行う場合について説明する。
First, a case where data transmission from the
PC100においてストレージ300へのアクセス要求が発生すると、SCSIコマンド層112は、アクセス要求の内容に応じて図4で説明したSCSIコマンドのいずれかを生成し、図5で示したフォーマットでフィルタドライバ層113へ送る。
When an access request to the
フィルタドライバ層113は、SCSIコマンド層112で生成されたSCSIコマンドの解析を行い、どのような内容のアクセス要求なのかを判定する。
The
USBドライバ層114は、フィルタドライバ層113で解析されたSCSIコマンドをUSBパケットに変換する(SCSIコマンドをUSBパケットのデータ層に格納する)。
The
ネットワークプロトコル層115は、USBドライバ層114でSCSIコマンドから変換されたUSBパケットにIPヘッダを付加し、ネットワーク500に適した形式のデータであるネットワークパケットを作成する。
The
ネットワークインターフェース層116は、ネットワークプロトコル層115で作成されたネットワークパケットをネットワーク500を介してデバイスサーバ200に送出する。
The
デバイスサーバ200では、まず、通信層212で、PC100からネットワーク500を介して送信されたネットワークパケットを受信し、ネットワークパケットからIPヘッダを取り外すことでUSBパケットに変換し、これをUSBコマンド層213へ送る。
In the
USBコマンド層213では、通信層212から送られたUSBパケットを、接続ケーブル400を介してストレージ300へ送る。
In the
ストレージ300は、デバイスサーバ200から送られてきたUSBパケットに含まれるSCSIコマンドを解析し、その種類に応じた応答処理を行う。
The
SCSIコマンドがTURコマンドである場合は、ストレージ300を使用可能か否かの状態の確認処理を実行する。
If the SCSI command is a TUR command, a confirmation process of whether or not the
SCSIコマンドがREADコマンドである場合は、ストレージ300からの読み込み処理を実行する。
When the SCSI command is a READ command, a read process from the
SCSIコマンドがWRITEコマンドである場合は、ストレージ300への書き込み処理を実行する。
When the SCSI command is a WRITE command, a write process to the
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
上述した応答処理を行ったストレージ300は、その結果をPC100に対する応答情報としてUSBパケットでデバイスサーバ200へ送る。
The
デバイスサーバ200では、USBコマンド層213がストレージからの応答情報であるUSBパケットを受け取り、それを通信層212へ送る。
In the
通信層212では、USBコマンド層213からのUSBパケットにIPヘッダを付加し、ネットワーク500に適した形式のデータであるネットワークパケットを作成し、ネットワーク500を介してPC100に送出する。
In the
このようにして、PC100とストレージ300との間でデバイスサーバ200を介したデータ通信が実行されることになる。
In this way, data communication via the
次に、PC100(PC100A,PC100B)の基本制御について説明する。
Next, basic control of the PC 100 (
PC100では、デバイスサーバ200との接続が定常状態であるかどうかを判断して、定常状態に達した場合には、デバイスサーバ200とのセッションを切断し、PC100の上位層(OS110、アプリケーションプログラム111)およびSCSIコマンド層112からはストレージ300が接続されていると認識される、いわゆる「擬似接続状態」へ移行し、定常状態である期間は「擬似接続状態」を維持する制御を実行する。
The
なお、定常状態とは、PC100とストレージ300との接続が一定に保たれている状態をいい、定常状態であるかどうかの判断には、TURコマンドに対してストレージ300が連続して「SUCCESS」を応答した回数を用いるものとし、この回数(初期値0)をカウントするカウンタを、以降の説明ではSUCCESSカウンタと呼ぶものとする。
The steady state refers to a state in which the connection between the
図7は、PC100がデバイスサーバ200を介してストレージ300にアクセスするときの制御動作の手順を示すフローチャートである。
FIG. 7 is a flowchart illustrating a control operation procedure when the
まず、PC100において、ストレージ300へのアクセスが発生した場合、SCSIコマンド層112がアクセス要求の内容に応じたSCSIコマンド(図4参照)の生成を行い、生成されたSCSIコマンドは、フィルタドライバ層113へ送信される(ステップS701)。
First, when an access to the
次に、フィルタドライバ層113が、生成されたSCSIコマンドを解析する(ステップS702)。
Next, the
SCSIコマンドがTURコマンドである場合(ステップS702でYes)、フィルタドライバ層113では、SUCCESSカウンタの値を判定する(ステップS703)。この判定により、擬似接続状態であるか否かの判定が行われる。
If the SCSI command is a TUR command (Yes in step S702), the
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
デバイスサーバ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
PC100は、デバイスサーバ200から送られてくる応答情報を受信すると、応答内容を確認する(ステップS708) 。
When receiving the response information sent from the
応答内容が「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
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
一方、上述したステップ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
これ以降、フィルタドライバ層113がアクセス制御コマンドを受け取るまで、上述したステップS701〜S704が繰り返される。この間、PC100の上位層(OS110、アプリケーションプログラム111)およびSCSIコマンド層112では、ストレージ300が接続された状態と判断されているが、デバイスサーバ200とのセッションが切断されている状態、いわゆる「擬似接続状態」を維持することになる。
Thereafter, steps S701 to S704 described above are repeated until the
また、上述したステップS702の処理で、フィルタドライバ層113が解析したSCSIコマンドがアクセス制御コマンドである場合の処理について説明する。
In addition, the process when the SCSI command analyzed by the
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
デバイスサーバ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
PC100は、デバイスサーバ200から送られてくる応答情報を受信すると、デバイスサーバ200とのセッションを維持したまま、SUCCESSカウンタの値を「0」にリセットし(ステップS715)、次のSCSIコマンドの受信待機状態に移る。
Upon receiving the response information sent from the
上記のSUCCESSカウンタは、フィルタドライバ層113がその機能の一部として備えるものでもよく、また、別のソフトウェアとして外部記憶部106に記録され、ソフトウェア群112〜116同様、CPU101の制御に従い、メモリ104上に読み出されて実行されるものでもよい。
The SUCCESS counter may be included in the
上述したように、フィルタドライバ層113では、SUCCESSカウンタの値が規定値「5」となるまでの間にアクセス制御コマンドを受信した場合、又は、応答情報が「FAIL」である場合、SUCCESSカウンタの値を「0」にリセットする。
As described above, in the
本実施の形態では、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
図8は、図7の制御フローに基づいて動作するPC100の状態遷移を示した図である。
FIG. 8 is a diagram showing state transitions of the
状態801は、電源投入直後などPC100の初期状態である。このとき、デバイスサーバ200との間は「セッションなし」で、SUCCESSカウンタの値は初期値「0」である。
A
状態801において、ストレージ300に対するアクセスが発生すると、状態801から状態802に遷移する。
When an access to the
状態802は、デバイスサーバ200との接続がまだ定常状態になっていない状態である。このとき、デバイスサーバ200との間は「セッションあり」で、SUCCESSカウンタの値は「5」未満である。
The
状態802において、SCSIコマンドを生成してデバイスサーバ200に送出した後、デバイスサーバ200を介してストレージ300からの応答情報を受信すると、次の(a)、(b)、(c)の何れかの状態となる。
In the
(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
(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
(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
このように、PC100は、上述した(a)の場合のみ、状態802から状態803に遷移する。
Thus, the
状態803は、デバイスサーバ200との接続が定常状態に達した状態、即ち、擬似接続状態を示している。このとき、デバイスサーバ200との間は「セッションなし」で、SUCCESSカウンタの値は規定値「5」以上である。
A
状態803において、OS110およびアプリケーションプログラム111からの指示によりSCSIコマンド層112がSCSIコマンドを生成したとき、次の(d)、(e)の何れかの状態となる。
In the
(d)SCSIコマンドがTURコマンドの場合、フィルタドライバ層113で擬似応答情報を生成し、SCSIコマンド層112に対しSUCCESSを応答し、状態803を維持する。
(D) When the SCSI command is a TUR command, the
(e)SCSIコマンドがアクセス制御コマンドの場合、デバイスサーバ200との間のセッションを開始し、デバイスサーバ200に対して生成したSCSIコマンドを送る。そして、デバイスサーバ200を介してストレージ300からの応答情報を受信すると、SUCCESSカウンタの値を「0」にリセットし、状態802へ遷移する。
(E) When the SCSI command is an access control command, a session with the
このように、PC100は、ストレージ300にアクセスが必要なときだけ、デバイスサーバ200と間のセッションを開始してSCSIコマンドの送出を行うので、セッションの開始・切断を手動操作することなく、複数のクライアントPCによるストレージのアクセスを実現できる。また、クライアントPCからデバイスサーバ200に対して定期的に送出するTURコマンドを抑制し、ネットワーク上の通信量(トラフィック)を低減することができる。
As described above, the
次に、デバイスサーバ200の制御動作について図9を参照しながら説明する。
Next, the control operation of the
デバイスサーバ200では、PC100からのセッション開始要求又はセッション終了要求の受信を監視している。
The
セッション開始要求を受信した場合(ステップ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
一方、上述したステップ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
状態1001は、デバイスサーバ200の初期状態である。このとき、PC100との間は「セッションなし」である。UDP(User Datagram Protocol)プロトコルを用いた通信などによる外部からの要求に応答し、状態1001を維持する。
A
ここで、PC100においてストレージ300に対するアクセスが発生すると、PC100からデバイスサーバ200に対してセッション開始要求が送られる。デバイスサーバ200は、セッション開始要求に応じてPC100との間のセッションを開始し、状態1002に遷移する(図10の(a))。
Here, when access to the
状態1002は、「セッションあり」の状態である。この状態では、次の(b)、(c)、(d)の処理を行い、状態1002を維持する。
The
(b)セッション接続中のPC100からコマンドを受信して、それをストレージ300に送信し、ストレージ300から受信する当該コマンドに対する応答情報をPC100に返送する。
(B) A command is received from the
(c)セッション接続中ではない他のPC100からセッション開始要求があった場合、そのPC100に対して新たにセッションを開始することができないため、「NG」を応答する。
(C) When there is a session start request from another
(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
このように、デバイスサーバ200では、PC100の状態遷移に応じて、「セッションなし」の状態1001と「セッションあり」の状態1002との遷移を繰り返す。
As described above, the
次に、上述したネットワークシステムにおいて、PC100Aからストレージ300へアクセスするときの具体的なタイミングチャートについて説明する。
Next, a specific timing chart when accessing the
簡略化して分り易く説明をするために、まず、PC100A一台だけがストレージ300にアクセスする場合(1対1で接続する場合)について、図11を参照しながら説明する。
For the sake of simplification and easy-to-understand explanation, first, a case where only one
ここでは、他のクライアントPCからのセッション開始要求の有無を考慮せず、PC100Aからのセッション開始要求に対して、デバイスサーバ200は常に「OK」を応答するものとする。
Here, it is assumed that the
PC100Aにおいてストレージ300へのアクセスが発生した場合、ストレージドライバであるSCSIコマンド層112において、アクセスの種類に応じたSCSIコマンドが生成され、生成されたSCSIコマンドは、フィルタドライバ層113へ送信される(タイミングT1101)。
When access to the
フィルタドライバ層113は、デバイスサーバ200に対してセッション開始要求を行う(タイミングT1102)。このとき、SUCCESSカウンタの値は初期値の「0」である。
The
デバイスサーバ200は、PC100Aに対して「OK」を応答して、PC100Aとの間のセッションを開始する(タイミングT1103)。
The
フィルタドライバ層113は、デバイスサーバ200から「OK」の応答がありセッションが開始されると、ストレージ300の状態を確認するためのTURコマンドを送信する(タイミングT1104)。
When there is a response of “OK” from the
デバイスサーバ200は、TURコマンドを受信すると、これをストレージ300に送信する(タイミングT1105)。ストレージ300は、TURコマンドに応じた処理を実行し、処理が完了すると応答情報をデバイスサーバ200に返す(タイミングT1106)。デバイスサーバ200はストレージ300からの応答情報をPC100Aに送る(タイミングT1107)。
Upon receiving the TUR command, the
フィルタドライバ層113は、デバイスサーバ200から応答情報を受信し、これが「SUCCESS」であれば、SUCCESSカウンタの値を1インクリメントするとともにSCSIコマンド層112へ応答を返す(タイミングT1108)。
The
以後、規定値「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
PC100Aでは、セッションが終了したあともSCSIコマンド層112が定期的にTURコマンドを送出するが(タイミングT1111)、フィルタドライバ層113はSUCCESSカウンタの値が規定値「5」以上となっているので、これ以降に送出するSCSIコマンドがTURコマンドである限り擬似応答情報をSCSIコマンド層112に返す(タイミングT1112)。
In the
PC100Aの上位層(OS110、アプリケーションプログラム111)およびSCSIコマンド層112は、この擬似応答情報によってストレージ300とは接続状態であると認識する。この状態がいわゆる「擬似接続状態」である。
The upper layer (
次に、擬似接続状態のPC100Aからストレージ300に対してデータの書き込み/読み出しなどのアクセスを行う場合について説明する。
Next, a case where access such as data writing / reading is performed from the
擬似接続状態のPC100Aからストレージ300に対してデータの書き込み/読み出しなどのアクセスを行うときは、アクセス制御コマンド(READコマンドやWRITEコマンドなど)の送信に先立って、まず、フィルタドライバ層113がデバイスサーバ200に対してセッション開始要求を送る(タイミングT1113)。
When accessing the
デバイスサーバ200は、PC100Aに対して「OK」を応答して、PC100Aとの間でセッションを開始する(タイミングT1114)。
The
フィルタドライバ層113は、デバイスサーバ200から「OK」の応答がありセッションが開始されると、デバイスサーバ200に対してアクセス制御コマンドを送る(タイミングT1115)。
When there is a response of “OK” from the
デバイスサーバ200は、PC100Aからアクセス制御コマンドを受信すると、USBパケットに変換してストレージ300へ送信する(タイミングT1116)。
Upon receiving the access control command from the
ストレージ300では、デバイスサーバ200から送られてきたアクセス制御コマンドに応じた処理を実行し(例えば、データの書き込み/読み出しなど)、処理が終了するとその結果を応答情報としてデバイスサーバ200に送信する(タイミングT1117)。
The
デバイスサーバ200は、ストレージ300からの応答情報を受信すると、この応答情報をPC100Aに対して送信する(タイミングT1118)。
Upon receiving the response information from the
フィルタドライバ層113は、デバイスサーバ200から応答情報を受信すると、SUCCESSカウンタの値を「0」にリセットするとともにSCSIコマンド層112へ応答を返す(タイミングT1119)。
Upon receiving the response information from the
その後は上述と同様に、フィルタドライバ層113からTURコマンドを定期的に送出し、SUCCESSカウンタの値が規定値「5」になると、デバイスサーバ200に対してセッション終了要求を送り、デバイスサーバ200との間のセッションを切断する(タイミングT1120)。そして、再度ストレージ300にアクセスするときまでの間、擬似接続状態を維持する。
Thereafter, similarly to the above, a TUR command is periodically sent from the
次に、実際の運用により近いケースとして、複数台のPC100(PC100A,PC100B)がストレージ300にアクセスする場合(N対1で接続する場合)について、図12を参照しながら説明する。
Next, as a case closer to actual operation, a case where a plurality of PCs 100 (
図12は、PC100Aがセッション接続中、若しくは、ストレージ300にアクセス中に、別のPC100Bからストレージ300にアクセスしたときのタイミングチャートを示した説明図である。なお、PC100Aについては、前述した図11と同じ動作であるため、詳細な説明は省略する。
FIG. 12 is an explanatory diagram showing a timing chart when the
まず、PC100Aとデバイスサーバ200がセッション接続中のとき、PC100Bがストレージ300にアクセスしようとした場合について説明する。
First, a case where the
PC100Aとデバイスサーバ200との間でセッション接続中のとき、PC100Bがデバイスサーバ200にセッション開始要求を送る(タイミングT1201)。
When a session is being connected between the
デバイスサーバ200は、PC100Aとセッション接続中のため、PC100Aとの間のセッションが切断されるまで間、PC100Bに対して「NG」を返す(タイミングT1202)。
Since the
PC100Bは、デバイスサーバ200から「NG」の応答があると、定期的にセッション開始要求を再送する。
When receiving a “NG” response from the
デバイスサーバ200は、PC100Aとのセッションが切断され、「セッションなし」の状態(PC100Aが擬似接続状態)になったとき、PC100Bからの「セッション開始要求」を受信すると、PC100Bとの間でセッションを開始する(タイミングT1203)。
When the
PC100Bは、デバイスサーバ200とセッションが開始されると、ストレージ300の状態を確認するためTURコマンドを送信する(タイミングT1204)。
When the session with the
デバイスサーバ200は、TURコマンドを受信すると、これをストレージ300に送信する(タイミングT1205)。ストレージ300は、TURコマンドに応じた処理を実行し、処理が完了すると応答情報をデバイスサーバ200に返す。デバイスサーバ200はストレージ300からの応答情報をPC100Bに送る(タイミングT1206)。
Upon receiving the TUR command, the
PC100Bは、デバイスサーバ200から応答情報を受信し、これが「SUCCESS」であれば、SUCCESSカウンタの規定値を判定し、規定値「5」になるまで定期的(例えば、1秒間隔)にTURコマンドを送出する(タイミングT1207)。そして、SUCCESSカウンタの規定値「5」になると、デバイスサーバ200に対してセッション終了要求を送り、デバイスサーバ200とのセッションを切断する(タイミングT1208)。
The
この時点で、PC100A及びPC100Bは共に擬似接続状態であり、デバイスサーバ200は「セッションなし」の状態である(タイミングT1209)。
At this time, both the
続いて、PC100Aがストレージ300にアクセス中(読出し中又は書き込み中など)に、PC100Bからストレージ300にアクセスしようとした場合について説明する。
Next, a case where the
上述したように、PC100AとPC100Bは共に擬似接続状態であり、デバイスサーバ200は「セッションなし」の状態であるとき、擬似接続状態のPC100Aからデバイスサーバ200にアクセスを開始すると、PC100Aからデバイスサーバ200に対してセッション開始要求が送られ、デバイスサーバ200との間のセッションが開始される。(タイミングT1210)
As described above, when both the
セッションが開始されると、PC100Aがデバイスサーバ200に対してアクセス制御コマンド(READコマンドやWRITEコマンドなど)を送出し(タイミングT1211)、デバイスサーバ200がストレージ300に対してアクセス制御コマンドを送る(タイミングT1212)。
When the session is started, the
ストレージ300では、アクセス制御コマンドに応じた処理(例えば、データの書き込み/読出しなど)を実行し、その結果を応答情報としてデバイスサーバ200を介してPC100Aに返信する(タイミングT1213)。
The
その後は上述と同様に、フィルタドライバ層113からSUCCESSカウンタの値が規定値「5」になるまで定期的に、TURコマンドをデバイスサーバ200に対して送出する(タイミングT1214)。
Thereafter, similarly to the above, the TUR command is periodically sent from the
ここで、PC100Bがストレージ300へのアクセスを開始し、デバイスサーバ200にセッション開始要求を送ると、デバイスサーバ200は、PC100Bに対して「NG」を応答する(タイミングT1215)。
When the
PC100Bは、デバイスサーバ200からの「NG」応答に対して、定期的にセッション開始要求を再送するが、PC100Aとデバイスサーバ200のセッションが切断されるまでは、デバイスサーバ200からは「NG」が応答される。
The
デバイスサーバ200とPC100Aとの間のセッションが終了し、デバイスサーバ200がセッションなしの状態になると、PC100Bからのセッション開始要求により、PC100Bとの間でセッションを開始する(タイミングT1216)。このときPC100Aは擬似接続状態である。
When the session between the
これ以降のPC100Bの動作は、上述したPC100Aと同様であり、セッションが開始されると、PC100Bがデバイスサーバ200を介してストレージ300にアクセス可能になる。
The subsequent operations of the
上述したように、第一の実施の形態におけるネットワークシステムでは、あるクライアント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
また、高負荷な処理機能をデバイスサーバへ組み込む必要が無くなるため、安価なネットワークシステム構成で複数のクライアント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 (
PC100において、ストレージ300へのアクセスが発生した場合、SCSIコマンド層112がアクセス要求の内容に応じたSCSIコマンド(図4参照)の生成を行い、生成されたSCSIコマンドは、フィルタドライバ層113へ送信される(ステップS1301)。
In the
次に、フィルタドライバ層113が、生成されたSCSIコマンドを解析する(ステップS1302)。
Next, the
SCSIコマンドがTURコマンドである場合(ステップS1302でYes)、フィルタドライバ層113では次に、TURコマンドに対する応答が「SUCCESS」であるときの回数をカウントしているカウンタ(以降、SUCCESSカウンタ)の値を判定する(ステップS1303)。この判定により、擬似接続状態であるか否かの判定が行われる。
When the SCSI command is a TUR command (Yes in step S1302), the
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
デバイスサーバ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
ここでいう所定時間とは、セッション開始後の累計時間や、定期的に送出される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
応答内容が「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からのセッション開始要求が「あり」の場合(ステップ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
一方、上述したステップ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
これ以降、フィルタドライバ層113がアクセス制御コマンドを受け取るまで、上述したステップS1301〜S1304が繰り返される。この間、PC100の上位層(OS110、アプリケーションプログラム111)およびSCSIコマンド層112では、ストレージ300が接続された状態と判断されているが、デバイスサーバ200とのセッションが切断されている状態、いわゆる「擬似接続状態」を維持することになる。
Thereafter, steps S1301 to S1304 described above are repeated until the
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
また、上述したステップS1302の処理で、フィルタドライバ層113が解析したSCSIコマンドがアクセス制御コマンドである場合の処理について説明する。
In addition, a process when the SCSI command analyzed by the
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
デバイスサーバ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
PC100は、デバイスサーバ200から送られてくる応答情報を受信すると、デバイスサーバ200とのセッションを維持したまま、SUCCESSカウンタの値を「0」にリセットし(ステップS1317)、次のSCSIコマンドの受信待機状態に移る。
Upon receiving the response information sent from the
上述したように、フィルタドライバ層113では、SUCCESSカウンタの値が規定値となるまでの間にアクセス制御コマンドを受信した場合、又は、応答情報が「FAIL」である場合、SUCCESSカウンタの値を「0」にリセットする。
As described above, in the
上述したように、第二の実施の形態におけるネットワークシステムでは、デバイスサーバ200がPC100に対して、他のクライアントPCからのセッション開始要求の有無をあわせて通知することによって、PC100がより早く擬似接続状態に移行し、デバイスサーバ200とのセッションを開放することができる。
As described above, in the network system according to the second embodiment, the
なお、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において適宜変更可能である。 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
さらにはPC100が複数の異なるドライバ層を持ち、デバイスサーバ200がそれに対応した複数の異なるコマンド層を備えるようにすれば、様々な接続インターフェースを備えたデバイスにも柔軟に対応できる。
Further, if the
また、本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して処理を実行することによっても達成することができる。 Another object of the present invention is to supply a storage medium storing software program codes for realizing the functions of the above-described embodiments to a system or apparatus, and a computer (or CPU, MPU, etc.) of the system or apparatus. This can also be achieved by reading the program code stored in the storage medium and executing the processing.
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。 In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and a computer-readable storage medium storing the program code constitutes the present invention. .
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成しても良い。 Further, an OS (operating system) or the like running on the computer performs part or all of the actual processing based on an instruction of the program code, and the functions of the above-described embodiments are realized by the processing. You may do it.
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。 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.
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.
を特徴とする請求項1に記載のクライアント。The client according to claim 1.
前記セッション開始要求手段は、更に、前記セッションの切断後、前記制御コマンド生成手段によって前記第二の制御コマンドが生成されると、前記サーバに対してセッション開始要求を送ること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.
を特徴とする請求項4に記載のデバイス共有システム。The device sharing system according to claim 4.
制御コマンド生成手段が、前記デバイスへのアクセスを指示する上位層からの指示に応じて前記デバイスが利用可能か否かを確認する第一の制御コマンドを生成する制御コマンド生成ステップと、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:
を特徴とする請求項6に記載のデバイス共有方法。The device sharing method according to claim 6.
前記セッション開始要求ステップは、更に、前記セッションの切断後、前記制御コマンド生成ステップによって前記第二の制御コマンドが生成されると、前記サーバに対してセッション開始要求を送るステップを実行すること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.
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2685009B2 (en) * | 1995-01-23 | 1997-12-03 | 日本電気株式会社 | Communication device |
-
2008
- 2008-10-17 JP JP2008268916A patent/JP5470518B2/en not_active Expired - Fee Related
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 |