JP5802049B2 - Device control apparatus and method, client apparatus, and device control system - Google Patents

Device control apparatus and method, client apparatus, and device control system Download PDF

Info

Publication number
JP5802049B2
JP5802049B2 JP2011103755A JP2011103755A JP5802049B2 JP 5802049 B2 JP5802049 B2 JP 5802049B2 JP 2011103755 A JP2011103755 A JP 2011103755A JP 2011103755 A JP2011103755 A JP 2011103755A JP 5802049 B2 JP5802049 B2 JP 5802049B2
Authority
JP
Japan
Prior art keywords
client
definition file
state
response information
session
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
JP2011103755A
Other languages
Japanese (ja)
Other versions
JP2012234444A (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 JP2011103755A priority Critical patent/JP5802049B2/en
Priority to US13/464,159 priority patent/US8849999B2/en
Publication of JP2012234444A publication Critical patent/JP2012234444A/en
Application granted granted Critical
Publication of JP5802049B2 publication Critical patent/JP5802049B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、デバイス制御装置及び方法、クライアント装置、並びにデバイス制御システムに関し、特に、ネットワークを介してデバイスを制御する機能を備えたデバイス制御装置及び方法、クライアント装置、並びにデバイス制御システムに関するものである。   The present invention relates to a device control apparatus and method, a client apparatus, and a device control system, and more particularly to a device control apparatus and method, a client apparatus, and a device control system having a function of controlling a device via a network. .

ネットワークの普及により、従来、パーソナルコンピュータ(PC)等にローカル接続して利用していたデバイス(周辺機器)をネットワーク上のクライアントPCから利用できるように構成されたデバイスサーバが発表されている。   With the widespread use of networks, a device server configured so that a device (peripheral device) that has been used by being locally connected to a personal computer (PC) or the like can be used from a client PC on the network has been announced.

例えば、プリンタ、ストレージ、スキャナ等のデバイスを、ネットワーク上のクライアントPCからデバイスサーバを介して共有デバイスとして利用する方法がいくつか提案されている。   For example, several methods for using devices such as printers, storages, and scanners as shared devices from a client PC on a network via a device server have been proposed.

ひとつの方法として、クライアントPCに専用のアプリケーションソフトウェア(以下、「ユーティリティ」という)を導入しておき、ユーザがデバイスにアクセスしようとするときに、導入されたユーティリティを操作して、クライアントPCに、アクセスすべきデバイスをローカル接続したデバイスとして仮想的に認識させることにより、ネットワーク上のクライアントPCから、アクセスすべきデバイスにローカル接続したデバイスとしてアクセスできるようにするものがある。   As one method, dedicated application software (hereinafter referred to as “utility”) is installed in the client PC, and when the user tries to access the device, the installed utility is operated to Some devices allow a client PC on a network to access a device to be accessed as a locally connected device by virtually recognizing the device to be accessed as a locally connected device.

この方法では、ユーザによるセッション(接続)の開始・終了操作が必要であり、ユーザがユーティリティを使ってデバイスの終了操作をしない限り、デバイスサーバとのセッションが専有されてしまうため、他のクライアントPCがデバイスを使用することができない。   In this method, the user needs to start / end the session (connection), and unless the user uses the utility to end the device, the session with the device server is exclusively used. Can not use the device.

かかる問題を解決するために、ブロックヘッダで特定されるデータ長を有するブロックデータが伝送される間だけ、デバイスサーバがデータ伝送専有状態にあるとして、特定のクライアントPCにデバイスとの間のデータ伝送を許可するネットワークファイル管理システムが開示されている(例えば、特許文献1参照)。   In order to solve such a problem, it is assumed that the device server is in a data transmission exclusive state only while block data having a data length specified by the block header is transmitted, and data transmission between the device and a specific client PC is performed. A network file management system that permits the above is disclosed (for example, see Patent Document 1).

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

確かに、特許文献1に開示されたネットワークファイル管理システムでは、複数のクライアントPCは手動操作を行うことなくデバイスを共有することはできる。   Certainly, in the network file management system disclosed in Patent Document 1, a plurality of client PCs can share a device without performing a manual operation.

しかしながら、クライアントPCがネットワーク経由で接続された1台のデバイスを専有している状態においては、当該クライアントPCが他のデバイスを使用することはできないという技術的な制限により、クライアントPCとの専有状態を高頻度で必要とするデバイスが接続された場合には、そのクライアントPCは他のデバイスとの同時使用が困難になってしまう。   However, in a state where the client PC occupies one device connected via the network, the client PC cannot occupy another device due to a technical limitation that other devices cannot be used. When a device requiring high frequency is connected, it becomes difficult for the client PC to use it simultaneously with other devices.

例えば、ICカードリーダのようなデバイスの場合、ICカードが検知されたか否かの問い合わせ(ポーリング)、すなわち、デバイス監視処理(状態変化検知処理)を周期的に行う必要があるが、このデバイス監視処理は、一般的に、クライアントPCにインストールされたデバイスドライバによって実行される。   For example, in the case of a device such as an IC card reader, it is necessary to periodically inquire (polling) whether or not an IC card has been detected, that is, to perform device monitoring processing (state change detection processing). The processing is generally executed by a device driver installed on the client PC.

このため、クライアントPCによるネットワークを介したデバイスの専有が頻繁に発生するとともに、当該デバイスの専有中はネットワーク上のトラフィックが著しく増加するので、このようなデバイスの専有は、必要最小限であることが望ましい。   For this reason, the exclusive use of the device via the network by the client PC frequently occurs, and the traffic on the network increases significantly during the exclusive use of the device, so the exclusive use of such a device must be the minimum necessary. Is desirable.

また、デバイスの専有が頻発し、常にネットワーク上にデータが伝送されている状態では、データがハッキングされやすく、セキュリティの面からも望ましくない。   Further, when the device is frequently occupied and data is always transmitted on the network, the data is easily hacked, which is not desirable from the viewpoint of security.

加えて、前述のデバイス監視処理(状態変化検知処理)は、デバイス毎に処理内容が異なる機種依存性をなくすようにするために、デバイスサーバに特定のデバイスに適合したトリガ検知アルゴリズムだけを保持させたときは、デバイスサーバの汎用性が損なわれるという問題がある。一方で、デバイスサーバにシステムに存在する様々なデバイスに適合したトリガ検知アルゴリズムをすべて保持させたときは、デバイスサーバの汎用性は確保できるものの、デバイスサーバは大容量の記憶領域を必要とし、コスト増を招くという問題がある。   In addition, the above-mentioned device monitoring process (state change detection process) causes the device server to retain only the trigger detection algorithm suitable for a specific device in order to eliminate the dependence on the model whose processing contents differ for each device. In such a case, there is a problem that the versatility of the device server is impaired. On the other hand, if the device server holds all trigger detection algorithms that are compatible with various devices in the system, the device server can ensure versatility, but the device server requires a large storage area and costs There is a problem of causing an increase.

本発明の第1の目的は、従来、クライアント装置に実装されていたデバイス監視処理(状態変化検知処理)をデバイス制御装置が備えることで、デバイス制御装置がクライアント装置との通信を伴わずに自立的にデバイスの状態変化を監視し、デバイスの状態変化を検知した時点でこれをクライアント装置へ通知することにより、クライアント装置によるデバイスの監視(ポーリング)を不要とし、ネットワーク上のトラフィックを低減することができるデバイス制御装置及び方法、クライアント装置、並びにデバイス制御システムを提供することにある。   The first object of the present invention is to provide the device control apparatus with a device monitoring process (state change detection process) that has been conventionally implemented in the client apparatus, so that the device control apparatus is independent without communication with the client apparatus. By monitoring device status changes and notifying client devices when device status changes are detected, device monitoring (polling) by client devices is unnecessary and traffic on the network is reduced. It is an object to provide a device control apparatus and method, a client apparatus, and a device control system.

本発明の第2の目的は、デバイスの状態変化を契機に、クライアント装置とデバイスが通信を行うことで、クライアント装置は必要なときだけデバイスを専有してセキュリティの脆弱性を低減するとともに、専有が頻繁に必要なデバイスであっても複数台数を同時に使用することができるデバイス制御装置及び方法、クライアント装置、並びにデバイス制御システムを提供することにある。   The second object of the present invention is that the client device communicates with the device in response to a change in the state of the device, so that the client device occupies the device only when necessary to reduce security vulnerabilities. It is an object of the present invention to provide a device control apparatus and method, a client apparatus, and a device control system that can simultaneously use a plurality of devices even if they are frequently required devices.

本発明の第3の目的は、監視対象となったデバイスに適合したトリガ検知アルゴリズムや定義ファイルをデバイスサーバへ動的にインストールまたはダウンロードすることにより、デバイスサーバは汎用性を確保しながらも様々なデバイスの検知処理を実行することができるデバイス制御装置及び方法、クライアント装置、並びにデバイス制御システムを提供することにある。   A third object of the present invention is to dynamically install or download a trigger detection algorithm and definition file suitable for a device to be monitored to the device server, so that the device server can be used in various ways while ensuring versatility. It is an object to provide a device control apparatus and method, a client apparatus, and a device control system capable of executing a device detection process.

上記目的を達成するために、本発明のデバイス制御装置は、ネットワークを介してクライアント装置に接続されていると共にデバイスがローカル接続されるべきデバイス制御装置であって、前記デバイスの状態を監視するための定義ファイル及びトリガ検知アルゴリズムを用いて当該デバイスの状態を監視し、当該デバイスの状態変化を検知する第1の検知手段と、前記デバイスの状態変化が検知されたときに、当該状態変化の検知を示すトリガ通知を前記クライアント装置に送信する送信手段と、前記トリガ通知を受信したクライアント装置とセッションを開始して、前記状態変化を検知したデバイスとのデータ通信を中継するデータ通信制御手段と、前記デバイスとのデータ通信が終了して当該クライアント装置とのセッションが切断されたことを検知する第2の検知手段と、前記クライアント装置とのセッションが切断されたとき、前記第1の検知手段に前記デバイスの状態の監視を再開させる再開手段とを備えることを特徴とする。   In order to achieve the above object, a device control apparatus of the present invention is a device control apparatus that is connected to a client apparatus via a network and to which a device is to be locally connected, and for monitoring the state of the device The first detection means for monitoring the status of the device using the definition file and the trigger detection algorithm, and detecting the status change of the device, and detecting the status change when the status change of the device is detected Transmitting means for transmitting a trigger notification indicating to the client device; data communication control means for starting a session with the client device that has received the trigger notification and relaying data communication with the device that has detected the state change; The data communication with the device is terminated and the session with the client device is disconnected. And a second detecting means for detecting that the first detecting means resumes monitoring of the state of the device when a session with the client device is disconnected. .

本発明のクライアント装置は、デバイスがローカル接続されるべきデバイス制御装置にネットワークを介して接続されているクライアント装置であって、当該デバイス制御装置にローカル接続されたデバイスの動作状態を確認するためのポーリングを行う際に蓄積された前記デバイスに対する要求情報及び前記デバイスからの応答情報を含む定義ファイルを作成する作成手段と、前記作成された定義ファイルを前記デバイス制御装置に送信する送信手段と、前記デバイスの状態変化を検知した前記デバイス制御装置から前記デバイスの状態変化の検知を示すトリガ通知を受信する受信手段と、前記受信手段によって受信された前記トリガ通知に応じて前記デバイス制御装置とのセッションを開始するセッション制御手段とを備えることを特徴とする。   A client apparatus according to the present invention is a client apparatus connected to a device control apparatus to which a device is to be locally connected via a network, and for confirming an operation state of the device locally connected to the device control apparatus. Creation means for creating a definition file including request information and response information from the device accumulated when polling, transmission means for sending the created definition file to the device control apparatus, and A receiving unit that receives a trigger notification indicating detection of a change in the state of the device from the device control unit that has detected a change in the state of the device, and a session with the device control unit in response to the trigger notification received by the receiving unit Session control means for starting To.

上記構成によれば、デバイスサーバが「トリガ検知アルゴリズム」/「定義ファイル」に基づき、該当デバイスを監視し、デバイスの状態変化を検知すると、トリガ通知する。トリガ通知を受けたクライアントPCは、デバイスサーバとセッションを開始し、クライアントPC及びデバイス間でデータ通信を実行する。データ通信が終了し、セッションが切断されると、デバイスサーバは、該当デバイスの監視を再開する。これにより、クライアントPC側で実装されていたデバイス監視処理を、デバイスサーバが実施するので、クライアントPC側での監視処理が不要となり、必要な時だけ、クライアントPC及びデバイス間でデータ通信し、通信終了すると、当該デバイスの監視を再開する。   According to the above configuration, the device server monitors the corresponding device based on the “trigger detection algorithm” / “definition file”, and when a change in the state of the device is detected, trigger notification is made. The client PC that has received the trigger notification starts a session with the device server and executes data communication between the client PC and the device. When the data communication ends and the session is disconnected, the device server resumes monitoring of the corresponding device. As a result, since the device monitoring process implemented on the client PC side is performed by the device server, the monitoring process on the client PC side becomes unnecessary, and data communication is performed between the client PC and the device only when necessary. When finished, the monitoring of the device is resumed.

また、クライアントPCは、デバイスの接続を検知すると、当該デバイスの動作状態を確認するためのポーリングを実行し、このときの送受信パケットを蓄積してデバイスサーバに送る。デバイスサーバは、この送受信パケットを定義ファイルとして用いることで、監視処理を実行することができるので、新たに接続が検知されたデバイスであっても、当該デバイスの監視処理が可能となる。   Further, when the client PC detects the connection of the device, the client PC executes polling for confirming the operation state of the device, accumulates transmission / reception packets at this time, and sends them to the device server. Since the device server can execute the monitoring process by using the transmission / reception packet as the definition file, the monitoring process of the device can be performed even for a device for which a connection is newly detected.

本発明の第1の実施の形態に係るデバイス制御システムの概略構成を示す図である。It is a figure which shows schematic structure of the device control system which concerns on the 1st Embodiment of this invention. 図1のデバイス制御システムの動作シーケンスを説明するのに用いられるシーケンス図である。It is a sequence diagram used for demonstrating the operation | movement sequence of the device control system of FIG. 図1におけるデータ記憶部に格納される定義ファイルのデータ構成を説明するのに用いられる図である。It is a figure used for demonstrating the data structure of the definition file stored in the data storage part in FIG. 図1におけるデバイスサーバによって実行されるトリガ検知処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the trigger detection process performed by the device server in FIG. 本発明の第2の実施の形態に係るデバイス制御システムの動作シーケンスを説明するのに用いられるシーケンス図である。It is a sequence diagram used for demonstrating the operation | movement sequence of the device control system which concerns on the 2nd Embodiment of this invention. 図5の動作シーケンスで送受信されるパケットの基本構成を説明するのに用いられる図である。FIG. 6 is a diagram used for explaining a basic configuration of a packet transmitted and received in the operation sequence of FIG. 5. 図5の動作シーケンスで送信される要求/応答パケットのデータ構造、及びこれらを蓄積して作成される定義ファイルを説明するのに用いられる図である。FIG. 6 is a diagram used to explain a data structure of a request / response packet transmitted in the operation sequence of FIG. 5 and a definition file created by accumulating these data structures.

以下、本発明を図面に示す実施の形態を参照しながら詳細に説明する。   Hereinafter, the present invention will be described in detail with reference to embodiments shown in the drawings.

<デバイス制御システムの構成>
図1は、本発明の第1の実施の形態に係るデバイス制御システムの概略構成を示す図である。
<Configuration of device control system>
FIG. 1 is a diagram showing a schematic configuration of a device control system according to the first embodiment of the present invention.

図1において、本発明の第1の実施の形態に係るデバイス制御システムは、クライアントPC100(クライアント装置)と、デバイス300(300A,300B)がローカル接続されるデバイスサーバ200(デバイス制御装置)とを備える。クライアントPC100とデバイスサーバ200は、互いにネットワーク500を介して接続されている。ネットワーク500は有線又は無線の通信回線で構成されてもよい。   1, the device control system according to the first embodiment of the present invention includes a client PC 100 (client device) and a device server 200 (device control device) to which a device 300 (300A, 300B) is locally connected. Prepare. The client PC 100 and the device server 200 are connected to each other via the network 500. The network 500 may be configured by a wired or wireless communication line.

デバイス300は、USB(Universal Serial Bus)インターフェースに準拠した接続ケーブル400でデバイスサーバ200に接続(ローカル接続)される。ただし、接続ケーブル400は、USBインターフェースに限定されるものではなく、IEEE1394等他のインターフェースに準拠したものであってもよい。   The device 300 is connected (locally connected) to the device server 200 by a connection cable 400 that conforms to a USB (Universal Serial Bus) interface. However, the connection cable 400 is not limited to the USB interface, and may be a cable that conforms to another interface such as IEEE1394.

次に、デバイス制御システムを構成する各装置の構成について順次説明する。   Next, the configuration of each device constituting the device control system will be described sequentially.

<クライアントPC100の構成>
クライアントPC100は、内部バスで互いに接続されたCPU、入力部、表示部、メモリ、通信部、外部記憶部で構成され、ネットワーク500を介してデバイスサーバ200と通信することができる。
<Configuration of client PC 100>
The client PC 100 includes a CPU, an input unit, a display unit, a memory, a communication unit, and an external storage unit that are connected to each other via an internal bus, and can communicate with the device server 200 via the network 500.

外部記憶部は、不図示のオペレーティングシステム(以下、OS)、アプリケーションプログラム101、常駐モジュール102、デバイスドライバ103、仮想化制御部104、通信制御部105等のソフトウェア部品に加えて、各種データを格納しているデータ記憶部106が記憶される。これらソフトウェア部品及び各種データは、CPUの制御に従い、メモリ上に読み出されて各種制御が実行される。   The external storage unit stores various data in addition to software components such as an operating system (hereinafter referred to as OS), an application program 101, a resident module 102, a device driver 103, a virtualization control unit 104, and a communication control unit 105 (not shown). The stored data storage unit 106 is stored. These software components and various data are read out on the memory and various controls are executed under the control of the CPU.

アプリケーションプログラム101は、常駐モジュール102やデバイスドライバ103に対してデータ入出力要求を指示することでデバイス300を制御するためのソフトウェアプログラムである。   The application program 101 is a software program for controlling the device 300 by instructing a data input / output request to the resident module 102 and the device driver 103.

常駐モジュール102は、(1)デバイスサーバ200にローカル接続されるデバイス300を個体別に識別するためのデバイス個体情報を取得する機能、(2)デバイス個体情報によってデバイスの機種等を個体ごとに識別する機能、(3)デバイス300との間のデータ送受信に必要となるデバイスドライバ103及び仮想化制御部104を一意に特定し、順次、それらのソフトウェア部品を動的に生成・起動する機能、(4)通信制御部105を介してデバイスサーバ200とのセッションの開始・切断を指示する機能、(5)デバイスサーバ200とのセッションが開始されると、デバイスドライバ103及び仮想化制御部104を用いて、デバイス300との間のデータ送受信を制御する機能を備えている。   The resident module 102 (1) a function of acquiring device individual information for identifying each device 300 locally connected to the device server 200, and (2) identifying a device model for each individual based on the device individual information. (3) a function for uniquely identifying the device driver 103 and the virtualization control unit 104 necessary for data transmission / reception with the device 300, and dynamically generating and starting those software components sequentially, (4 ) A function for instructing start / disconnection of a session with the device server 200 via the communication control unit 105. (5) When a session with the device server 200 is started, the device driver 103 and the virtualization control unit 104 are used. And a function of controlling data transmission / reception with the device 300.

デバイスドライバ103は、OS(不図示)やアプリケーションプログラム101(以下、「上位層のソフトウェアプログラム」という)からのデータ入出力要求を、デバイス300に応じたデータ形式のデータ(以下、「制御コマンド」という)に変換し、この制御コマンドを仮想化制御部104に送り、この制御コマンドに対する応答を上位層のソフトウェアプログラムへ通知するソフトウェア部品である。   The device driver 103 receives a data input / output request from an OS (not shown) or an application program 101 (hereinafter referred to as “upper layer software program”) in a data format corresponding to the device 300 (hereinafter referred to as “control command”). This is a software component that sends this control command to the virtualization control unit 104 and notifies the upper layer software program of a response to this control command.

仮想化制御部104は、デバイスドライバ103で制御コマンドに変換されたデータ入出力要求をUSBデータ形式に準拠したパケットデータ(以下、「USBデータ」という)に変換し、通信制御部105から送られてくるUSBデータを制御コマンドと同様のデータ形式に変換してデバイスドライバ103へ送るソフトウェア部品である。また、デバイス300に対するデータ送受信要求に対して、デバイス300がクライアントPC100に直接的に接続(ローカル接続)しているときと同様の振る舞いをシミュレートする機能(以下、「仮想化制御」という)を備えたソフトウェア部品である。この「仮想化制御」によって、デバイス300をローカル接続したときと同じ状態でデータ送受信することができるようになる。   The virtualization control unit 104 converts the data input / output request converted into the control command by the device driver 103 into packet data conforming to the USB data format (hereinafter referred to as “USB data”), and is sent from the communication control unit 105. It is a software component that converts incoming USB data into a data format similar to a control command and sends it to the device driver 103. Further, in response to a data transmission / reception request to the device 300, a function (hereinafter referred to as “virtualization control”) that simulates the same behavior as when the device 300 is directly connected to the client PC 100 (local connection). It is a software component provided. This “virtualization control” enables data transmission / reception in the same state as when the device 300 is locally connected.

通信制御部105は、仮想化制御部104を経由して送られてくる「USBデータ」とネットワーク500を介してデバイスサーバ200と通信するときの「ネットワークパケット」との変換処理を行い、デバイスサーバ200との間のデータ送受信を制御するソフトウェア部品である。また、仮想化制御部104を経由して送られてくる上位層のソフトウェアプログラムやデバイスドライバ103からのデータ送受信要求に応じて、デバイスサーバ200との間のセッションの開始・切断の制御を行う。   The communication control unit 105 performs conversion processing between “USB data” sent via the virtualization control unit 104 and “network packet” when communicating with the device server 200 via the network 500. 200 is a software component that controls data transmission / reception to / from 200. Further, in response to a data transmission / reception request from an upper layer software program or device driver 103 sent via the virtualization control unit 104, the session start / disconnection control with the device server 200 is performed.

また、データ記憶部106は、後述する図3の定義ファイル107、トリガ検知アルゴリズム108等の各種データが格納される。   The data storage unit 106 stores various data such as a definition file 107 and a trigger detection algorithm 108 in FIG. 3 to be described later.

定義ファイル107は、デバイスサーバ200がデバイス300を監視する際、トリガ検知アルゴリズム108に必要な命令・情報等を格納しているデータファイルである。   The definition file 107 is a data file that stores commands and information necessary for the trigger detection algorithm 108 when the device server 200 monitors the device 300.

トリガ検知アルゴリズム108は、デバイスサーバ200において、デバイス300を監視し、その状態変化を検知するための実行手順が記述されたプログラムコードであり、定義ファイル107を読み込むことで、本実行手順に従って、デバイス300の監視処理(以下、「トリガ検知処理」という)が行われる。このトリガ検知処理は図4を用いて後述する。   The trigger detection algorithm 108 is a program code in which an execution procedure for monitoring the device 300 in the device server 200 and detecting a change in the state thereof is described. By reading the definition file 107, the trigger detection algorithm 108 300 monitoring processes (hereinafter referred to as “trigger detection process”) are performed. This trigger detection process will be described later with reference to FIG.

定義ファイル107とトリガ検知アルゴリズム108は、デバイス300の監視を行うための1組の「監視情報」(監視プログラム)であり、デバイス300の機種ごとに異なる。   The definition file 107 and the trigger detection algorithm 108 are a set of “monitoring information” (monitoring program) for monitoring the device 300, and are different for each model of the device 300.

図3は、図1におけるデータ記憶部106に格納される定義ファイルのデータ構成を説明するのに用いられる図である。   FIG. 3 is a diagram used to explain the data structure of the definition file stored in the data storage unit 106 in FIG.

図3の定義ファイルは、デバイス300の機能(仕様)に基づいて作成され、ベンダーID(VID)、製品ID(PID)などのデバイス識別情報と、デバイス300に対して発行する要求パケットのデータパターンと、デバイス300の状態変化時の応答パケットのデータパターンを含む。応答パケットのデータパターンには、デバイス300の状態変化時にデバイス300から返送されてくる応答パケットのみが含まれている。   The definition file in FIG. 3 is created based on the function (specification) of the device 300, and includes device identification information such as a vendor ID (VID) and product ID (PID), and a data pattern of a request packet issued to the device 300. And the data pattern of the response packet when the state of the device 300 changes. The data pattern of the response packet includes only the response packet returned from the device 300 when the state of the device 300 changes.

<デバイスサーバ200の構成>
デバイスサーバ200は、内部バスで互いに接続されたCPU、メモリ、通信部、USBインターフェース、及び外部記憶部で構成されており、ネットワーク500を介してクライアントPC100と通信すると共に、ローカル接続されているデバイス300と接続ケーブル400を介してデータ送受信することができる。
<Configuration of Device Server 200>
The device server 200 includes a CPU, a memory, a communication unit, a USB interface, and an external storage unit that are connected to each other via an internal bus. The device server 200 communicates with the client PC 100 via the network 500 and is connected locally. Data can be transmitted / received via the connection cable 400 with 300.

外部記憶部は、OS(不図示)、通信制御部201、デバイス制御部202等のソフトウェア部品を格納する。これらのソフトウェア部品、及びデータ記憶部203に格納された各種データは、CPUの制御に従い、メモリ上に読み出されて各種制御が実行される。   The external storage unit stores software components such as an OS (not shown), a communication control unit 201, and a device control unit 202. These software components and various data stored in the data storage unit 203 are read out on the memory and various controls are executed under the control of the CPU.

通信制御部201は、OSの制御に従ってネットワーク500経由で接続されているクライアントPC100との間のセッションを制御(開始、切断)する機能を有する。   The communication control unit 201 has a function of controlling (starting and disconnecting) a session with the client PC 100 connected via the network 500 according to the control of the OS.

デバイス制御部202は、デバイス300を制御するための機能を有する。また、デバイス制御部202は、通信制御部201を介してデバイス個体情報204、定義ファイル205、トリガ検知アルゴリズム206を取得し、取得したこれらの情報(データ)に基づいて、以下で説明する処理を実行するための機能を備えている。   The device control unit 202 has a function for controlling the device 300. In addition, the device control unit 202 acquires the device individual information 204, the definition file 205, and the trigger detection algorithm 206 via the communication control unit 201, and performs processing described below based on the acquired information (data). It has a function to execute.

(1)クライアントPC100と通信するための「ネットワークパケット」とデバイス300との間で送受信する「USBデータ」との変換処理を行い、デバイス制御部202と連携してクライアントPC100とデバイス300間のデータ送受信を仲介(中継)する機能、(2)「デバイス」から取得したデバイス個体情報204をクライアントPC100に送信する機能、(3)クライアントPC100から定義ファイル107/トリガ検知アルゴリズム108を受信(取得)する機能、(4)定義ファイル205及びトリガ検知アルゴリズム206(後述)を用いてデバイス300を一定間隔で監視(ポーリング)する「トリガ検知処理」を実行し、状態変化を検知すると、当該検知を示す情報(以下、トリガ通知)をクライアントPC100へ送信する機能、(5)通信制御部201でクライアントPC100との間のセッションが切断されるとこれを検知して、(4)の「トリガ検知処理」を再開させる機能を備えている。   (1) Conversion processing between “network packet” for communicating with the client PC 100 and “USB data” transmitted and received between the device 300 and data between the client PC 100 and the device 300 in cooperation with the device control unit 202 Function to mediate (relay) transmission / reception, (2) Function to transmit device individual information 204 acquired from “device” to client PC 100, (3) Receive (acquire) definition file 107 / trigger detection algorithm 108 from client PC 100 Function, (4) “trigger detection process” for monitoring (polling) the device 300 at regular intervals using a definition file 205 and a trigger detection algorithm 206 (described later), and information indicating the detection when a state change is detected (Hereinafter referred to as trigger notification) to client P Function of transmitting to the 100, detects this when the session is disconnected between the client PC100 (5) Communication controller 201 has a function of resuming the "trigger detection processing" (4).

デバイス個体情報204は、「デバイス」を個体ごとに識別するための情報であって、メーカーを識別するために機器を製造したメーカーごとに割り当てられたベンダーID(VID)、機種を識別するために機種ごとに割り当てられた製品ID(PID)、機器の個体を識別するために個々の機器に割り当てられたシリアル番号等である。デバイス個体情報204は、デバイス300が接続されたとき等に、デバイス制御部202によってデバイス300から取得される。   The device individual information 204 is information for identifying the “device” for each individual, and for identifying the vendor ID (VID) and model assigned to each manufacturer that manufactured the device to identify the manufacturer. A product ID (PID) assigned for each model, a serial number assigned to each device in order to identify an individual device, and the like. The device individual information 204 is acquired from the device 300 by the device control unit 202 when the device 300 is connected.

定義ファイル205とトリガ検知アルゴリズム206は、デバイスサーバ200自身に接続されたデバイス300の監視(ポーリング)に必要な情報であり、デバイスサーバ200は、デバイス個体情報204に基づいてクライアントPC100から取得する。   The definition file 205 and the trigger detection algorithm 206 are information necessary for monitoring (polling) of the device 300 connected to the device server 200 itself, and the device server 200 acquires it from the client PC 100 based on the device individual information 204.

<デバイス300の構成>
デバイス300(300A、300B)は、USBインターフェースを持つ汎用的な入出力機器(デバイス)である。例えば、キーボード、マウス、カードリーダのような入力機器、ディスプレイ等の表示(出力)機器、プリンタ等の単機能周辺機器(SFP:Single Function Peripheral)、又は、プリント機能の他にスキャン機能やコピー機能、ストレージ機能等を兼ね備えた多機能周辺機器(MFP:Multi Function Peripheral)である。ただし、これらに限定されるものでなく、別のデバイスであってもよい。
<Configuration of Device 300>
The device 300 (300A, 300B) is a general-purpose input / output device (device) having a USB interface. For example, an input device such as a keyboard, a mouse, a card reader, a display (output) device such as a display, a single function peripheral device (SFP) such as a printer, or a scan function or a copy function in addition to a print function A multifunction peripheral device (MFP) having a storage function and the like. However, it is not limited to these, and another device may be used.

例えば、デバイス300がICカードリーダのような機器である場合、ICカードがかざされ、ICカードリーダがICカードの読み取り処理を実行すると、デバイスサーバ200は、この読み取り処理の動作をデバイス300の状態変化として検知し、クライアントPC100にトリガ通知を送信する。   For example, when the device 300 is a device such as an IC card reader, when the IC card is held over and the IC card reader executes an IC card reading process, the device server 200 changes the operation of the reading process to the state of the device 300. This is detected as a change, and a trigger notification is transmitted to the client PC 100.

ここで、デバイス300の状態変化とは、機器の動作状態の変化のことであり、例えば、ICカードリーダに対してICカードの読み取り操作(ユーザIDの取得)が行われたことや、操作ボタンが押下されたこと等によって生じるものであるが、これらに限定されるものではない。   Here, the change in the state of the device 300 is a change in the operation state of the device. For example, an IC card reading operation (acquisition of a user ID) is performed on the IC card reader, an operation button, or the like. However, the present invention is not limited to these.

なお、上述したデバイスサーバ200、デバイス300は、それぞれ別体の装置、機器として説明したが、これに限定されるものではなく、デバイスサーバ200をデバイス300と一体構造としてもよい。   The device server 200 and the device 300 described above have been described as separate apparatuses and devices, but the present invention is not limited thereto, and the device server 200 may be integrated with the device 300.

<予めデバイスに応じて作成された定義ファイルを用いる場合>
図2は、図1のデバイス制御システムの動作シーケンスを説明するのに用いられるシーケンス図である。
<When using a definition file created in advance for each device>
FIG. 2 is a sequence diagram used to explain an operation sequence of the device control system of FIG.

図2のシーケンス図は、クライアントPC100と、デバイスサーバ200に接続されたデバイス300Aとの間でデータ送受信する過程を示している。   The sequence diagram of FIG. 2 shows a process of transmitting and receiving data between the client PC 100 and the device 300A connected to the device server 200.

図2において、デバイスサーバ200は、デバイス300Aが接続されると、当該デバイス300Aのデバイス個体情報を取得し(ステップS201)、デバイス個体情報204としてデータ記憶部203に格納する(ステップS202)。   In FIG. 2, when the device 300A is connected, the device server 200 acquires device individual information of the device 300A (step S201), and stores it as the device individual information 204 in the data storage unit 203 (step S202).

このとき、デバイスサーバ200は、取得したデバイス個体情報204にシリアル番号が格納されているか否かを判断し、シリアル番号が格納されていない場合は、デバイスサーバ200の有する固有情報(例えば、MACアドレス等)及びデバイスが接続されているポートの固有情報(例えば、ポート番号等)からシリアル番号に相当する固有情報を生成し、デバイス個体情報204に追加する。これにより、シリアル番号が格納されていない同一機種が複数接続された場合でも識別可能となる。   At this time, the device server 200 determines whether or not a serial number is stored in the acquired device individual information 204. If the serial number is not stored, unique information (for example, a MAC address) of the device server 200 is stored. Etc.) and unique information corresponding to the serial number is generated from the unique information (for example, port number) of the port to which the device is connected, and added to the device individual information 204. This makes it possible to identify even when a plurality of the same models that do not store serial numbers are connected.

次いで、クライアントPC100の常駐モジュール102は、デバイスサーバ200にローカル接続されたデバイス300Aを確認するために、通信制御部105を介して、デバイスサーバ200に対して検索パケットを送信する。例えば、UDP(User Datagram Protocol)等のプロトコルを用いて、デバイスサーバ200に対する検索(問い合わせ)を行う。デバイスサーバ200は、検索パケットを受信すると、データ記憶部203に格納されているデバイス個体情報204をクライアントPC100に送信する(ステップS203)。   Next, the resident module 102 of the client PC 100 transmits a search packet to the device server 200 via the communication control unit 105 in order to confirm the device 300 </ b> A locally connected to the device server 200. For example, the device server 200 is searched (inquired) using a protocol such as UDP (User Datagram Protocol). Upon receiving the search packet, the device server 200 transmits the device individual information 204 stored in the data storage unit 203 to the client PC 100 (Step S203).

クライアントPC100の常駐モジュール102は、デバイスサーバ200からデバイス個体情報204を取得すると、デバイス個体情報204に含まれているベンダーID(VID)と製品ID(PID)、シリアル番号等により「デバイス」の識別処理を行い、当該デバイス個体情報204に含まれている個体を識別するための情報に基づいて、デバイスドライバ103、仮想化制御部104を一意に特定し、順次、これらのソフトウェア部品を動的に生成して起動する。これらのソフトウェア部品によって、デバイス300Aの仮想化制御が可能な状態となる(ステップS204)。   When the resident module 102 of the client PC 100 acquires the device individual information 204 from the device server 200, the “device” is identified by the vendor ID (VID), product ID (PID), serial number, etc. included in the device individual information 204. Based on the information for identifying the individual included in the device individual information 204, the device driver 103 and the virtualization control unit 104 are uniquely identified, and these software components are dynamically Generate and start. These software components enable the virtualization control of the device 300A (step S204).

次に、クライアントPC100は、データ記憶部106に格納している定義ファイル107、トリガ検知アルゴリズム108の中から、デバイス個体情報204に基づいて識別したデバイス300の機種に対応した定義ファイル107、トリガ検知アルゴリズム108を特定する。 Next, the client PC100 is the definition file 107 that is stored in the data storage unit 106, from the trigger detection algorithm 108, the definition file 107 corresponding to the model of the device 300 A which is identified based on the device identification information 204, the trigger The detection algorithm 108 is specified.

そして、クライアントPC100は、特定した定義ファイル107、トリガ検知アルゴリズム108を含んだインストール用パケットを生成し、通信制御部105によってデバイスサーバ200との間でセッションを開始て(ステップS205)、生成したインストール用パケットをデバイスサーバ200に対して送信する(ステップS206)。 Then, the client PC 100 generates an installation packet including the specified definition file 107 and trigger detection algorithm 108, starts a session with the device server 200 by the communication control unit 105 (step S205), and generates the packet. An installation packet is transmitted to the device server 200 (step S206).

なお、応答がない(タイムアウト)、接続拒否等、何らかの理由でセッションを開始することができない場合、デバイスサーバ200は、エラー処理(例えば、デバイス300Aに対してエラー通知する、自装置でアラーム報知する等)を実行し、本処理を終了させる。   If the session cannot be started for some reason such as no response (timeout), connection refusal, etc., the device server 200 notifies the device 300A of an error, for example, notifies the device 300A of an error, and notifies the device itself of an alarm. Etc.) to finish this processing.

デバイスサーバ200は、インストール用パケットを受信すると、このパケットに含まれる定義ファイル107とトリガ検知アルゴリズム108をインストールし、それぞれ定義ファイル205(第1の定義ファイル)とトリガ検知アルゴリズム206としてデータ記憶部203に格納する(ステップS207)。   Upon receiving the installation packet, the device server 200 installs the definition file 107 and the trigger detection algorithm 108 included in the packet, and the data storage unit 203 as the definition file 205 (first definition file) and the trigger detection algorithm 206, respectively. (Step S207).

なお、クライアントPC100のアプリケーションプログラム101は、デバイス個体情報204による識別処理の結果、デバイス300A以外の「デバイス」であると識別した場合、ソフトウェア部品の生成処理は実行しない。   Note that when the application program 101 of the client PC 100 identifies that the device is a “device” other than the device 300A as a result of the identification processing based on the device individual information 204, the software component generation processing is not executed.

<トリガ検知処理開始>
デバイスサーバ200のデバイス制御部202は、クライアントPC100とデバイスサーバ200との間でセッションが切断されると(ステップS208)、データ記憶部203に格納した定義ファイル205とトリガ検知アルゴリズム206を用いて、デバイス300Aの後述する図4のトリガ検知処理(監視処理)を開始する(ステップS209)。このトリガ検知処理の開始条件は、トリガ通知後、所定時間内にクライアントPC100からセッション開始がない場合も含む。
<Start trigger detection process>
When the session between the client PC 100 and the device server 200 is disconnected (step S208), the device control unit 202 of the device server 200 uses the definition file 205 and the trigger detection algorithm 206 stored in the data storage unit 203, The trigger detection process (monitoring process) of FIG. 4 to be described later of the device 300A is started (step S209). The trigger detection process start condition includes a case where no session starts from the client PC 100 within a predetermined time after the trigger notification.

<デバイス制御開始〜終了>
図4は、図1におけるデバイスサーバによって実行されるトリガ検知処理の手順を示すフローチャートである。
<Device control start to end>
FIG. 4 is a flowchart showing a procedure of trigger detection processing executed by the device server in FIG.

図4のトリガ検知処理(図2のステップS209〜S214)により、デバイス300Aの状態変化が監視される。また、図4のトリガ検知処理は、この処理の実行中にクライアントPC100からの割り込み処理が発生した場合は中断され、当該割り込み処理の終了により、再開される。   The state change of the device 300A is monitored by the trigger detection process of FIG. 4 (steps S209 to S214 of FIG. 2). Also, the trigger detection process of FIG. 4 is interrupted if an interrupt process from the client PC 100 occurs during the execution of this process, and resumed when the interrupt process ends.

図4において、まず、デバイスサーバ200とクライアントPC100とのセッションが切断されるか、トリガ通知後、所定時間内にクライアントPC100からセッション開始がないことにより、監視(ポーリング)が開始すると(ステップS401でYES)、定義ファイル205(図3)に含まれている要求データパターン(要求情報)に従い、要求パケットを通信制御部201を介してデバイス制御部202からデバイス300Aに対して送信する(ステップS402)。上記監視(ポーリング)の間隔は、定義ファイル205(図3)で設定することができる。この間隔は、デバイスサーバ200がトリガ検知処理で専有されることを回避し、他の機能(デバイス)を使用できるようにするためのものである。   In FIG. 4, first, monitoring (polling) starts when the session between the device server 200 and the client PC 100 is disconnected or the client PC 100 does not start a session within a predetermined time after the trigger notification (in step S401). YES), according to the request data pattern (request information) included in the definition file 205 (FIG. 3), the request packet is transmitted from the device control unit 202 to the device 300A via the communication control unit 201 (step S402). . The monitoring (polling) interval can be set in the definition file 205 (FIG. 3). This interval is for preventing the device server 200 from being exclusively used for the trigger detection process and allowing other functions (devices) to be used.

次いで、デバイス300Aからの応答パケットを受信したか否かを判別し(ステップS403)、応答パケットを受信したときは、応答パケットとしてエラー情報が返送されて来た(例えば、デバイス300Aと接続断となった場合等)か否かを判別する(ステップS405)。   Next, it is determined whether or not a response packet from the device 300A has been received (step S403). When the response packet is received, error information is returned as a response packet (for example, the connection with the device 300A is disconnected). Or the like) (step S405).

ステップS405の判別の結果、エラー情報が返送されて来たときは、直ちに本処理を終了し、応答パケットがエラーでなければ(ステップS405でNO)、デバイス制御部202は、デバイス300Aからの応答パケットと定義ファイル205に含まれている応答パケットのデータパターン(応答情報)を比較する(ステップS406(図2のステップS210))(第1の検知手段、第1の判別手段)。 If error information is returned as a result of the determination in step S405, the process immediately ends, and if the response packet is not an error (NO in step S405), the device control unit 202 returns a response from the device 300A. Each data pattern (response information) of the response packet included in the definition file 205 is compared with the packet (step S406 (step S210 in FIG. 2)) (first detection means, first determination means).

ステップS406の比較の結果、デバイス300Aからの応答パケットと定義ファイル205に含まれている応答パケットの各データパターンが一致したときは、デバイス300Aで状態変化があり(図2のステップS211)(第1の検知手段)、この状態変化を示すトリガ通知を送信すべきと判断して(ステップS407でYES)、通信制御部201を介してクライアントPC100にトリガ通知を送信して(ステップS409(図2のステップS213))(送信手段)、本処理を終了する(図2のステップS214)。   As a result of the comparison in step S406, when the data patterns of the response packet from the device 300A and the response packet included in the definition file 205 match, there is a state change in the device 300A (step S211 in FIG. 2). 1), it is determined that a trigger notification indicating this state change should be transmitted (YES in step S407), and the trigger notification is transmitted to the client PC 100 via the communication control unit 201 (step S409 (FIG. 2)). Step S213)) (transmitting means), this processing is terminated (Step S214 in FIG. 2).

一方、ステップS406の比較の結果、デバイス300Aからの応答パケットと定義ファイル205に含まれている応答パケットの各データパターンが一致していない(不一致)ときは、デバイス300Aで状態変化がなく、トリガ通知すべきでないとして(ステップS407でNO)、監視(ポーリング)が終了するまで(ステップS408でYES)、ステップS402以降の処理の処理を実行して、次の要求パケットをデバイス300Aに送信する。   On the other hand, as a result of the comparison in step S406, when the data patterns of the response packet from the device 300A and the response packet included in the definition file 205 do not match (mismatch), there is no state change in the device 300A, and the trigger Since it should not be notified (NO in step S407), until the monitoring (polling) ends (YES in step S408), the processing of step S402 and subsequent steps is executed, and the next request packet is transmitted to the device 300A.

ステップS403の判別の結果、要求パケットを送信した後、所定時間内にデバイスからの応答パケットが受信されなかった(タイムアウト)ときは(ステップS404でYES)、監視(ポーリング)が終了するまで(ステップS408でYES)、ステップS402以降の処理を実行して、次の要求パケットを送るようにする。   If the response packet from the device is not received within a predetermined time (timeout) after transmitting the request packet as a result of the determination in step S403 (YES in step S404), monitoring (polling) is completed (step S404). Step S402 and subsequent steps are executed to send the next request packet.

図2に戻り、クライアントPC100は、デバイスサーバ200からトリガ通知を受信すると、デバイスサーバ200との間でセッションを開始し(ステップS215)、デバイスサーバ200を介してデバイス300Aとの間でデータ送受信(データ通信の中継)を開始して(ステップS216)、データ送受信を実行する(ステップS217)(データ通信制御手段)。ステップS213において、デバイスサーバ200は、クライアントPC100にトリガ通知を送信すると共にセッション開始を要求してもよい。   Returning to FIG. 2, when the client PC 100 receives the trigger notification from the device server 200, the client PC 100 starts a session with the device server 200 (step S <b> 215), and transmits / receives data to / from the device 300 </ b> A via the device server 200 ( Data communication relay) is started (step S216), and data transmission / reception is executed (step S217) (data communication control means). In step S213, the device server 200 may transmit a trigger notification to the client PC 100 and request a session start.

<トリガ検知処理再開>
そして、クライアントPC100の通信制御部105によって、データ送受信(デバイス制御)の終了が検知される(例えば、ユーザの終了操作の検知等)(ステップS218)と、デバイスサーバ200とのセッションが切断される(ステップS219)。デバイスサーバ200は、当該セッションの切断が検知される(第2の検知手段)と、トリガ検知処理を開始(ステップS220)し、デバイス300Aの監視(ポーリング)を再開する(再開手段)。ステップS213において、トリガ通知後、所定時間内にクライアントPC100からセッション開始がない場合も、同様にトリガ検知処理を開始し(ステップS220)、デバイス300Aの監視(ポーリング)を再開する。
<Restart trigger detection process>
When the communication control unit 105 of the client PC 100 detects the end of data transmission / reception (device control) (for example, detection of the user's end operation) (step S218), the session with the device server 200 is disconnected. (Step S219). When the disconnection of the session is detected (second detection unit), the device server 200 starts trigger detection processing (step S220) and resumes monitoring (polling) of the device 300A (resumption unit). In step S213, even if there is no session start from the client PC 100 within a predetermined time after the trigger notification, the trigger detection process is similarly started (step S220), and the monitoring (polling) of the device 300A is resumed.

このように、本第1の実施の形態によれば、デバイス300Aに対する制御権(通信)が、トリガ通知によってデバイスサーバ200からクライアントPC100へ切り替わり、セッション切断を契機にクライアントPC100からデバイスサーバ200に再び切り替わることで、クライアントPC100とデバイス300Aは必要なときだけデータ通信を実施することが可能となり、データ通信が終了すると、デバイスサーバ200によるデバイス300Aの監視が再開される。   As described above, according to the first embodiment, the control right (communication) for the device 300A is switched from the device server 200 to the client PC 100 by the trigger notification, and the client PC 100 returns to the device server 200 again when the session is disconnected. By switching, it becomes possible for the client PC 100 and the device 300A to perform data communication only when necessary, and when the data communication is completed, the device server 200 resumes monitoring of the device 300A.

<クライアントPCが蓄積した要求/応答パケットを定義ファイルとする場合>
図5は、本発明の第2の実施の形態に係るデバイス制御システムの動作シーケンスを説明するのに用いられるシーケンス図であり、クライアントPC100と、デバイスサーバ200に接続されたデバイス300Bとの間でデータ送受信する過程を示している。
<When request / response packets stored by client PC are used as definition files>
FIG. 5 is a sequence diagram used to describe the operation sequence of the device control system according to the second embodiment of the present invention. Between the client PC 100 and the device 300B connected to the device server 200, FIG. The process of transmitting and receiving data is shown.

本発明の第2の実施の形態に係るデバイス制御システムは、システム構成は図1のものと同じであるが、先に説明した本発明の第1の実施の形態とは異なり、クライアントPC100が、接続を検知したデバイス300Bに対してポーリングを行い、その際の要求/応答パケットを蓄積しておき、これらを定義ファイルとしてデバイスサーバ200に送信する点に特徴がある。   The device control system according to the second embodiment of the present invention has the same system configuration as that of FIG. 1, but unlike the first embodiment of the present invention described above, the client PC 100 The device 300B that detects the connection is polled, the request / response packets at that time are accumulated, and these are transmitted to the device server 200 as definition files.

具体的には、クライアントPC100の仮想化制御部104が、アプリケーションプログラム101からの指示に従い、デバイス300Bにおいて状態変化していない時の応答、例えば、デバイス300Bが処理や制御を実行していない「実行待機状態」の応答を確認するため、通信制御部105を介してポーリングを行い、この際に送受信される要求/応答パケットをデータ記憶部106に記憶させる機能を備えることで実現される。   Specifically, the virtualization control unit 104 of the client PC 100 responds when the state does not change in the device 300B in accordance with an instruction from the application program 101, for example, “execution that the device 300B is not executing processing or control” In order to confirm the “standby state” response, polling is performed via the communication control unit 105, and the request / response packet transmitted and received at this time is stored in the data storage unit 106.

また、図5の動作シーケンスでは、図4のトリガ検知処理において、デバイス300Bからの応答パケットと定義ファイルに含まれている応答パケットのデータパターンを比較し、この比較の結果、デバイス300Bからの応答パケットと定義ファイルに含まれている応答パケットの各データパターンが一致していない(不一致)とき、クライアントPC100にトリガ通知を行う点が本発明の第1の実施の形態とは異なっている。 In the operation sequence of FIG. 5, in the trigger detection process of FIG. 4, each data pattern of the response packet from the device 300B and the response packet included in the definition file are compared. The difference from the first embodiment of the present invention is that a trigger notification is sent to the client PC 100 when the data patterns of the response packet and the response packet included in the definition file do not match (mismatch).

<シーケンス動作の説明>
図5において、クライアントPC100は主要な構成のみを図示しており、クライアントPC100がデバイスサーバ200とセッション開始までの動作シーケンス(ステップS501〜S505)は、図2のステップS201〜S205と同じ動作である。
<Description of sequence operation>
In FIG. 5, the client PC 100 shows only the main configuration, and the operation sequence (steps S501 to S505) until the client PC 100 starts a session with the device server 200 is the same as the steps S201 to S205 in FIG. .

次いで、クライアントPC100は、アプリケーションプログラム101によって、新たに接続が検知されたデバイス300Bに対するポーリングの開始が指示されると(ステップS511)、デバイスドライバ103を介して、ポーリングで送受信される後述する図6のパケットの蓄積開始(ステップS512)及びデバイス300Bの動作状態を確認するための要求パケットの送信(ステップS513)を仮想化制御部104に指示する。   Next, when the client PC 100 is instructed by the application program 101 to start polling for the device 300B for which connection is newly detected (step S511), the client PC 100 transmits and receives by polling via the device driver 103, which will be described later. The virtualization control unit 104 is instructed to start accumulation of packets (step S512) and to transmit a request packet for confirming the operation state of the device 300B (step S513).

仮想化制御部104は、デバイス300Bの動作状態(ここでは、「実行待機状態」)を確認するための要求パケットを、通信制御部105を介して順次送信させる(ステップS514)と共に、当該要求パケットをデータ記憶部106に蓄積させる(ステップS515)ように指示する。また、通信制御部105で受信した応答パケットをデータ記憶部106に蓄積させる(ステップS516)ように指示する。そして、一連のポーリングが終了するまでこれが繰り返される(ステップS517〜S519)(作成手段)。なお、これらパケットの送受信プロセス(順序等)の記録を指示するようにしてもよい。   The virtualization control unit 104 sequentially transmits request packets for confirming the operation state of the device 300B (here, “execution standby state”) via the communication control unit 105 (step S514), and the request packet Is stored in the data storage unit 106 (step S515). In addition, the control unit 105 instructs the data storage unit 106 to accumulate the response packet received by the communication control unit 105 (step S516). This is repeated until a series of polling ends (steps S517 to S519) (creating means). Note that recording of the transmission / reception process (order, etc.) of these packets may be instructed.

<パケットのデータ構成について>
図6は、図5の動作シーケンスで送受信される要求/応答パケットのデータ構成を説明するのに用いられる図である。
<About packet data structure>
FIG. 6 is a diagram used for explaining the data structure of a request / response packet transmitted and received in the operation sequence of FIG.

図6において、ヘッダ部には、本システムのプロトコルであることを識別するための「署名データ」、当該パケットのデータサイズを示す「電文サイズ」、パケットの種類を示す「コマンドID」、デバイスを識別するための「機器情報」(「ベンダーID」、「製品ID」、「シリアル番号」)が格納される。データ部には、パケットの種類(「コマンドID」)に応じたデータが格納される。「コマンドID」の違いによって、要求パケットか応答パケットかを判別している。   In FIG. 6, in the header part, “signature data” for identifying the protocol of this system, “message size” indicating the data size of the packet, “command ID” indicating the type of packet, device “Device information” (“vendor ID”, “product ID”, “serial number”) for identification is stored. Data corresponding to the type of packet (“command ID”) is stored in the data portion. Whether the packet is a request packet or a response packet is determined based on the difference in “command ID”.

図5に戻り、アプリケーションプログラム101から仮想化制御部104にポーリングの終了(ステップS520)が通知されると、デバイスドライバ103を介して、図6のパケット蓄積終了を仮想化制御部104に指示する。仮想化制御部104は、データ記憶部106に蓄積した要求パケット及び応答パケットを後述する図7の定義ファイル(第2の定義ファイル)としてデバイスサーバ200に送信する(ステップS521)(送信手段)。   Returning to FIG. 5, when the virtualization control unit 104 is notified of the end of polling (step S <b> 520) from the application program 101, the virtualization control unit 104 is instructed to end the packet accumulation of FIG. 6 via the device driver 103. . The virtualization control unit 104 transmits the request packet and the response packet stored in the data storage unit 106 to the device server 200 as a definition file (second definition file) in FIG. 7 to be described later (step S521) (transmission unit).

<蓄積した要求/応答パケットで作成した定義ファイル>
図7は、図5の動作シーケンスで送信される要求/応答パケットのデータ構造、及びこれらを蓄積して作成される定義ファイルを説明するのに用いられる図である。
<Definition file created with accumulated request / response packets>
FIG. 7 is a diagram used to explain the data structure of the request / response packet transmitted in the operation sequence of FIG. 5 and the definition file created by accumulating these data structures.

なお、要求パケット、応答パケットは、図6で説明した要求/応答パケットのデータ構成と同じであり、「コマンドID」の違いによって、要求パケットか応答パケットが判別され、データ部(USB転送データ)に要求または応答に応じたデータが格納されている。   The request packet and the response packet have the same data structure as the request / response packet described with reference to FIG. 6. The request packet or the response packet is discriminated based on the difference in “command ID”, and the data portion (USB transfer data). The data corresponding to the request or response is stored.

例えば、ポーリングでn個の要求パケットを用いる場合、データ記憶部106には、n個の要求パケット、n個の応答パケットが蓄積され、これらが定義ファイルとしてデバイスサーバ200に送信される。   For example, when n request packets are used in polling, n request packets and n response packets are stored in the data storage unit 106 and transmitted to the device server 200 as definition files.

<トリガ検知処理開始〜終了>
図5に戻り、デバイスサーバ200は、通信制御部201を介してクライアントPC100から定義ファイル(図7参照)を受信すると、これを定義ファイル205としてデータ記憶部106に格納する(ステップS522)。
<Trigger detection processing start to end>
Returning to FIG. 5, upon receiving the definition file (see FIG. 7) from the client PC 100 via the communication control unit 201, the device server 200 stores it in the data storage unit 106 as the definition file 205 (step S522).

定義ファイルの送信が完了すると、クライアントPC100とデバイスサーバ200の間のセッションは切断され(ステップS523)、図4のトリガ検知処理が実行される(ステップS524〜S530)。   When the transmission of the definition file is completed, the session between the client PC 100 and the device server 200 is disconnected (step S523), and the trigger detection process of FIG. 4 is executed (steps S524 to S530).

デバイスサーバ200のデバイス制御部202は、この定義ファイル205を用いて、クライアントPC100と同様のポーリングを開始する。即ち、デバイス300Bに対する図4のトリガ検知処理を開始する。   The device control unit 202 of the device server 200 starts polling similar to that of the client PC 100 using the definition file 205. That is, the trigger detection process of FIG. 4 for the device 300B is started.

図4は、図1におけるデバイスサーバ200によって実行されるトリガ検知処理の手順を示すフローチャートである。図4の処理は、先に本発明の第1の実施の形態として説明したもの基本的に同じであるが、下記の点が異なる。   FIG. 4 is a flowchart showing a procedure of trigger detection processing executed by the device server 200 in FIG. The processing of FIG. 4 is basically the same as that described above as the first embodiment of the present invention, but differs in the following points.

具体的には、定義ファイル205に含まれている要求データパターンに従い、要求パケットを順次通信制御部201を介してデバイス制御部202からデバイス300Bに対して送信し(ステップS525(図4のステップS402))、デバイス300Bからの応答パケットを受信する(ステップS526(図4のステップS403))。   Specifically, according to the request data pattern included in the definition file 205, request packets are sequentially transmitted from the device control unit 202 to the device 300B via the communication control unit 201 (step S525 (step S402 in FIG. 4). )), A response packet is received from the device 300B (step S526 (step S403 in FIG. 4)).

デバイス制御部202は、デバイス300Bからの応答パケットと定義ファイル205に含まれている応答パケットのデータパターンを比較し(図4のステップS406)、それらが一致するか否かの判定処理を行う(第1の検知手段、第2の判別手段)。 The device control unit 202 compares each data pattern of the response packet from the device 300B and the response packet included in the definition file 205 (step S406 in FIG. 4), and determines whether or not they match. (First detection means, second determination means).

デバイス300Bからの応答パケットと定義ファイル205に含まれている応答パケットの各データパターンが一致するか否かの判定処理は、例えば、しきい値を設定しておき、パケットの先頭からのバイト数を比較し、所定のバイト数以上(例えば、3バイト以上)異なっている場合を一致していないと判断する方法や、n個すべての応答パケットと比較して、何れの応答パケットとも異なるバイト数であった場合、一致していないと判断する等の方法で行う。   For example, the threshold value is set and the number of bytes from the head of the packet is set in the determination process of whether or not the response packet from the device 300B matches each data pattern of the response packet included in the definition file 205. , And a method that determines that they do not match when they differ by a predetermined number of bytes (for example, 3 bytes or more), or the number of bytes that is different from any response packet compared to all n response packets If it is, it is performed by a method such as judging that they do not match.

上記判定処理の結果、「一致」判定の場合は、状態変化がないと判断し、次の要求パケットをデバイス300Bに送信する。「一致」と判定されている間は、定義ファイル205に含まれている要求パケットを順次送信してゆく。   If the result of the determination process is “match” determination, it is determined that there is no state change, and the next request packet is transmitted to the device 300B. While it is determined as “match”, the request packets included in the definition file 205 are sequentially transmitted.

なお、要求パケットを送信した後、所定時間内にデバイスからの応答パケットが受信されなかった(タイムアウト)場合は、次の要求パケットを送るようにしてもよい。   If a response packet from the device is not received within a predetermined time after sending the request packet (timeout), the next request packet may be sent.

また、要求パケットに対して、デバイス300Bからエラー情報が返送されてきた場合(例えば、デバイス300Bと接続断となった場合等)、トリガ検知処理を終了する。トリガ検知処理が終了した後は、データ記憶部から定義ファイル205を削除するようにしてもよいし、データ記憶部203に保存しておき、デバイス300Bが改めて接続されたとき(PID、VIDの一致により判断する)に利用できるようにしておいてもよい。   In addition, when error information is returned from the device 300B in response to the request packet (for example, when the connection with the device 300B is disconnected), the trigger detection process is terminated. After the trigger detection process is completed, the definition file 205 may be deleted from the data storage unit, or stored in the data storage unit 203 and when the device 300B is connected again (matching between PID and VID) It is also possible to make it available for use.

一方、「不一致」判定の場合、デバイス300Bで状態変化があり、この状態変化(ステップS527)を検知したものと判断し、この検知を示すトリガ通知(ステップS528)を、通信制御部201を介してクライアントPC100に送信すると共にこのトリガ通知をクライアントPC100が受信する(ステップS529)(送信手段、受信手段)。   On the other hand, in the case of “mismatch” determination, it is determined that there is a state change in the device 300B and this state change (step S527) is detected, and a trigger notification (step S528) indicating this detection is sent via the communication control unit 201. The trigger information is transmitted to the client PC 100, and the trigger notification is received by the client PC 100 (step S529) (transmitting means, receiving means).

<デバイス制御開始〜終了>
クライアントPC100は、デバイスサーバ200からトリガ通知を受信すると、これを契機にデバイスサーバ200との間でセッションを開始する(ステップS531)(セッション制御手段)。これ以降の動作シーケンス(ステップS532〜S536)は、図2の動作シーケンス(ステップS216〜S220)と同じであるので、説明を省略する。
<Device control start to end>
Upon receiving the trigger notification from the device server 200, the client PC 100 starts a session with the device server 200 in response to the trigger notification (step S531) (session control means). The subsequent operation sequence (steps S532 to S536) is the same as the operation sequence (steps S216 to S220) of FIG.

このように、クライアントPC100からトリガ通知を送信しない状態のデバイス300Bに対してポーリングを行い、この際に送受信される要求/応答パケットを蓄積して、これを定義ファイルとしてデバイスサーバ200に送信することにより、デバイスの状態変化の監視(トリガ検知処理)を行うことができるようになる。   In this way, polling is performed on the device 300B in a state where no trigger notification is transmitted from the client PC 100, the request / response packets transmitted and received at this time are accumulated, and this is transmitted as a definition file to the device server 200. As a result, it becomes possible to monitor the change in state of the device (trigger detection processing).

<定義ファイル有無の判断>
本発明の第2の実施の形態において、さらに、クライアントPC100がデータ記憶部106に該当するデバイス300に適った定義ファイルを保持(記憶)しているか否かを判断する機能を備えるようにしてもよい。この場合、デバイス300の機能(仕様)に応じて予め作成した定義ファイル(図3:本発明の第1の実施の形態)、若しくは、該当デバイス300と同機種のデバイスとポーリングして作成した定義ファイル(図7参照)を既に保持しているときは、上述したようなポーリングによる定義ファイルの作成を実行せず、保持している定義ファイルをデバイスサーバ200に送信し、保持していないときのみ、ポーリングによる定義ファイルの作成を実行する。
<Determining whether a definition file exists>
In the second embodiment of the present invention, the client PC 100 may further include a function for determining whether or not the definition file suitable for the device 300 corresponding to the data storage unit 106 is held (stored). Good. In this case, a definition file created in advance according to the function (specification) of the device 300 (FIG. 3: the first embodiment of the present invention) or a definition created by polling a device of the same model as the corresponding device 300 When the file (see FIG. 7) is already held, the creation of the definition file by polling as described above is not executed, but the held definition file is transmitted to the device server 200 and is not held. Execute creation of definition file by polling.

なお、本発明は、上述した実施の形態に限定されるものではなく、以下に説明する実施の形態も可能であり、本発明の要旨を逸脱しない範囲内において適宜変更可能である。   Note that the present invention is not limited to the above-described embodiments, and the embodiments described below are also possible, and can be appropriately changed without departing from the gist of the present invention.

<シーケンス開始のタイミング>
図2及び図5の動作シーケンスでは、デバイスサーバ200にデバイス300が接続されたときにデバイス個体情報を取得してシーケンスを開始するものとして記載しているが、デバイスサーバ200は、これ以外にも、例えば、デバイスサーバ200やデバイス300の電源がオンになったとき、クライアントPC100のアプリケーションプログラムから指示されたとき、デバイスサーバ200とデバイス300の一方又は両方で所定の接続操作を実行したときにデバイス個体情報を取得し、このデバイス個体情報に基づいて図2又は図5と動作シーケンスを実行するようにしてもよい。
<Sequence start timing>
In the operation sequences of FIGS. 2 and 5, it is described that the device individual information is acquired and the sequence is started when the device 300 is connected to the device server 200. For example, when the power of the device server 200 or the device 300 is turned on, when instructed from an application program of the client PC 100, when a predetermined connection operation is executed on one or both of the device server 200 and the device 300, the device Individual information may be acquired, and the operation sequence shown in FIG. 2 or 5 may be executed based on the device individual information.

<定義ファイルの実行プログラム>
また、クライアントPC100は、定義ファイルとともにトリガ検知アルゴリズムの一部として動作する簡易プログラム(例えば、シェル、スクリプトなど)をデバイスサーバ200に送り、デバイスサーバ200は、この定義ファイルと簡易プログラムを用いてトリガ検知処理を実行するように構成してもよい。
<Execution program of definition file>
Further, the client PC 100 sends a simple program (for example, a shell, a script, etc.) that operates as a part of the trigger detection algorithm together with the definition file to the device server 200, and the device server 200 triggers using this definition file and the simple program. You may comprise so that a detection process may be performed.

この場合、トリガ検知アルゴリズムは、定義ファイルに基づいて、デバイス300とのポーリングの実行、クライアントPC100へのトリガ通知などトリガ検知処理の基本的な処理を実行するとともに、デバイスの機種に応じた固有(特有)の処理など一部の処理を簡易プログラムで実行させるように構成される。例えば、状態変化として判断(検知)する条件は、デバイスの機種ごとに異なっているので、この判断を簡易プログラムで実行させることができる。   In this case, the trigger detection algorithm executes basic processing of trigger detection processing such as polling with the device 300 and trigger notification to the client PC 100 based on the definition file, and is specific to the device model ( It is configured to execute a part of the processing such as (specific) processing by a simple program. For example, since the condition for determining (detecting) the state change differs for each device model, this determination can be executed by a simple program.

このように構成することで、トリガ検知アルゴリズムは、デバイスの機種に依存しないトリガ検知処理の基本的な実行手順だけを記述しておけばよく、デバイスの機種に応じた処理を実行する簡易プログラムを作成するだけで、多種多様なデバイスに対応することができる。   By configuring in this way, the trigger detection algorithm only needs to describe the basic execution procedure of the trigger detection process independent of the device model, and a simple program that executes the process according to the device model. It can be applied to a wide variety of devices just by creating.

<定義ファイル/アルゴリズムの別の取得(インストール)方法>
デバイスサーバ200は、定義ファイルとトリガ検知アルゴリズムをクライアントPC100からではなく、可搬型記憶媒体から取得するようにしてもよい。
<Another method for obtaining (installing) definition files / algorithms>
The device server 200 may acquire the definition file and the trigger detection algorithm not from the client PC 100 but from a portable storage medium.

<デバイスサーバが定義ファイル/アルゴリズムをすでに保持している場合>
また、デバイスサーバ200は、以前に同一機種のデバイス300が接続されたときに、該当する定義ファイルとトリガ検知アルゴリズムを取得、格納(インストール)している場合は、改めて取得・格納を行わなくてもよい。さらに、クライアントPC100に対して、定義ファイルとトリガ検知アルゴリズムの送信が不要である旨を通知してもよい。
<When the device server already holds the definition file / algorithm>
In addition, when the device server 200 has acquired and stored (installed) the corresponding definition file and the trigger detection algorithm when the device 300 of the same model was previously connected, the device server 200 does not perform acquisition and storage again. Also good. Further, the client PC 100 may be notified that the definition file and the trigger detection algorithm need not be transmitted.

<トリガ通知先が複数の場合>
また、複数台のクライアントPC100を配置するシステム構成も可能である。この場合、デバイスサーバ200は、複数のクライアントPC100に対してトリガ通知を送信し、最初にセッションの接続開始要求を送信してきたクライアントPC100に対して、デバイス300との接続(データ送受信)を許可すればよい。或いは、接続開始要求を送信した複数のクライアントPC100のうち、任意の台数のみ、デバイス300との接続を許可するように制御してもよい。また、特定の1台のクライアントPC100が、電源オフや故障等でトリガ通知の受信が不可能な場合には、別のクライアントPC100を代替の宛先としてトリガ通知を送信するように制御してもよい。
<When there are multiple trigger notification destinations>
A system configuration in which a plurality of client PCs 100 are arranged is also possible. In this case, the device server 200 transmits a trigger notification to the plurality of client PCs 100, and permits the client PC 100 that has transmitted the session connection start request first to connect to the device 300 (data transmission / reception). That's fine. Alternatively, control may be performed so that only an arbitrary number of the client PCs 100 that have transmitted the connection start request are permitted to be connected to the device 300. In addition, when a specific one client PC 100 cannot receive a trigger notification due to power-off, failure, or the like, it may be controlled to transmit the trigger notification using another client PC 100 as an alternative destination. .

<定義ファイルとトリガ検知アルゴリズムについて>
図1のクライアントPC100には、デバイス300に対応した定義ファイル107とトリガ検知アルゴリズム108が両方ともに格納されており、デバイスサーバ200がクライアントPC100から定義ファイル107とトリガ検知アルゴリズム108を受信する方法(構成)を説明したが、下記のような方法(構成)も可能である。
<About definition file and trigger detection algorithm>
The client PC 100 in FIG. 1 stores both the definition file 107 and the trigger detection algorithm 108 corresponding to the device 300, and the device server 200 receives the definition file 107 and the trigger detection algorithm 108 from the client PC 100 (configuration). However, the following method (configuration) is also possible.

(1)デバイスサーバ200に予め必要なトリガ検知アルゴリズム108を格納させておき、クライアントPC100には、定義ファイル107のみを格納させる。この場合、デバイスサーバ200は、クライアントPC100から、機器情報によって特定されるデバイス300の機種に対応した定義ファイル107のみを受信することになる。   (1) The necessary trigger detection algorithm 108 is stored in the device server 200 in advance, and only the definition file 107 is stored in the client PC 100. In this case, the device server 200 receives only the definition file 107 corresponding to the model of the device 300 specified by the device information from the client PC 100.

例えば、ソフトウェア・ハードウェアの仕様・設計に依拠する場合やシステムの運用・管理上の理由等から、デバイスサーバ200へのアクセスが制限されており、トリガ検知アルゴリズム(プログラムコード)を受信して実行(又はインストール)できない場合に適用できる構成である。本構成は、トリガ検知アルゴリズム(プログラムコード)がデバイスサーバに予め格納されているため、改竄が困難であるというメリットがある。   For example, access to the device server 200 is restricted due to software / hardware specifications / design, system operation / management reasons, etc., and trigger detection algorithm (program code) is received and executed This configuration can be applied when (or installation) is not possible. This configuration has an advantage that the trigger detection algorithm (program code) is stored in the device server in advance, so that tampering is difficult.

(2)デバイスサーバ200は、特定したデバイス300の機種に対応するトリガ検知アルゴリズムや定義ファイルを保持していない場合にのみ、クライアントPC100等から必要なトリガ検知アルゴリズムや定義ファイルを取得するようにしてもよい。   (2) The device server 200 acquires a necessary trigger detection algorithm or definition file from the client PC 100 or the like only when the trigger detection algorithm or definition file corresponding to the specified device 300 model is not held. Also good.

さらに、デバイスサーバ200又はクライアントPC100でトリガ検知アルゴリズムや定義ファイルを管理して、これらの追加・更新等が必要か否かを判断させるようにしてもよい。このような構成とすることで、デバイスサーバ200は、追加・更新等の必要性が生じたときだけ、トリガ検知アルゴリズムや定義ファイルの全部又は一部を取得できるようになる。   Further, the device server 200 or the client PC 100 may manage the trigger detection algorithm and the definition file to determine whether or not these additions / updates are necessary. With such a configuration, the device server 200 can acquire all or part of the trigger detection algorithm and the definition file only when the necessity for addition / update occurs.

また、上述した実施の形態のように、デバイスサーバ200がクライアントPC100からトリガ検知アルゴリズムや定義ファイルを受信するのではなく、デバイスサーバ200がクライアントPC100にアクセスしてダウンロード(取得)するように構成してもよい。この場合、クライアントPC100は、該当するトリガ検知アルゴリズムや定義ファイルを保持していることだけをデバイスサーバ200に通知すればよい。   Further, as in the above-described embodiment, the device server 200 does not receive a trigger detection algorithm or definition file from the client PC 100, but the device server 200 accesses the client PC 100 to download (acquire). May be. In this case, the client PC 100 only has to notify the device server 200 that the corresponding trigger detection algorithm and definition file are held.

上述したトリガ検知アルゴリズム1つに対して複数の定義ファイルを対応付けることで、複数のデバイス300を連携させて制御することも可能である。例えば、デバイスAとデバイスBを連携させて制御する場合、両方のデバイスからのトリガ通知を受信した後、デバイスAの動作を開始させる、というような制御を行うことができる。   By associating a plurality of definition files with one trigger detection algorithm described above, a plurality of devices 300 can be linked and controlled. For example, when the device A and the device B are controlled in cooperation, it is possible to perform control such that the operation of the device A is started after receiving the trigger notification from both devices.

なお、本発明は、デバイスサーバ200に対して機種の異なる複数のデバイス300が接続される場合にも適用可能である。この場合、デバイスサーバ200には、各デバイスに応じた定義ファイルとトリガ検知アルゴリズムが機種ごとに格納される(複数組が格納される)。そして、各デバイスに適ったトリガ検知アルゴリズムと定義ファイルの組み合わせに基づきトリガ検知処理が実行され、それぞれのデバイス300ごとの状態変化を検知することができる。   Note that the present invention is also applicable when a plurality of devices 300 of different models are connected to the device server 200. In this case, the device server 200 stores a definition file and a trigger detection algorithm corresponding to each device for each model (a plurality of sets are stored). Then, trigger detection processing is executed based on a combination of a trigger detection algorithm and a definition file suitable for each device, and a state change for each device 300 can be detected.

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

さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を実行し、その処理に応じて上述した実施形態が実現される場合も含む。   Further, after the program code read from the storage medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It includes the case where 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.

101 クライアントPC
102 常駐モジュール
103 デバイスドライバ
104 仮想化制御部
105 通信制御部
106 データ記憶部
107 定義ファイル
108 トリガ検知アルゴリズム
200 デバイスサーバ
201 通信制御部
202 デバイス制御部
203 データ記憶部
204 デバイス個体情報
205 定義ファイル
206 トリガ検知アルゴリズム
207 定義ファイル
300(300A,300B) デバイス
400 接続ケーブル
500 ネットワーク
101 Client PC
102 Resident Module 103 Device Driver 104 Virtualization Control Unit 105 Communication Control Unit 106 Data Storage Unit 107 Definition File 108 Trigger Detection Algorithm 200 Device Server 201 Communication Control Unit 202 Device Control Unit 203 Data Storage Unit 204 Device Individual Information 205 Definition File 206 Trigger Detection algorithm
207 Definition file 300 (300A, 300B) Device 400 Connection cable 500 Network

Claims (13)

ネットワークを介してクライアント装置に接続されていると共にデバイスがローカル接続されるべきデバイス制御装置であって、
前記デバイスの状態を監視するための定義ファイル及びトリガ検知アルゴリズムを用いて当該デバイスの状態を監視し、当該デバイスの状態変化を検知する第1の検知手段と、
前記デバイスの状態変化が検知されたときに、当該状態変化の検知を示すトリガ通知を前記クライアント装置に送信する送信手段と、
前記トリガ通知を受信したクライアント装置とセッションを開始して、前記状態変化を検知したデバイスとのデータ通信を中継するデータ通信制御手段と、
前記デバイスとのデータ通信が終了して当該クライアント装置とのセッションが切断されたことを検知する第2の検知手段と、
前記クライアント装置とのセッションが切断されたとき、前記第1の検知手段に前記デバイスの状態の監視を再開させる再開手段とを備えること
を特徴とするデバイス制御装置。
A device controller connected to a client device via a network and to which a device is to be locally connected,
First detection means for monitoring the state of the device using a definition file and a trigger detection algorithm for monitoring the state of the device, and detecting a change in the state of the device;
A transmission unit that transmits a trigger notification indicating detection of the state change to the client device when a state change of the device is detected;
Data communication control means for starting a session with the client device that has received the trigger notification and relaying data communication with the device that has detected the state change;
Second detection means for detecting that data communication with the device is terminated and the session with the client device is disconnected;
A device control apparatus comprising: a resuming unit that causes the first detection unit to resume monitoring of the state of the device when a session with the client device is disconnected.
前記定義ファイルは、前記デバイスの状態変化時における前記デバイスの応答情報を含む第1の定義ファイルからなり、
前記第1の検知手段は、前記デバイスの応答情報と前記第1の定義ファイルに含まれている応答情報が一致したか否かを判別する第1の判別手段を備え、
前記送信手段は、前記デバイスの応答情報と前記第1の定義ファイルに含まれている応答情報が一致したときに、前記トリガ通知を前記クライアント装置に送信すること
を特徴とする請求項1記載のデバイス制御装置。
The definition file includes a first definition file that includes response information of the device when the state of the device changes.
The first detection means includes first determination means for determining whether or not the response information of the device matches the response information included in the first definition file,
The said transmission means transmits the said trigger notification to the said client apparatus, when the response information of the said device and the response information contained in the said 1st definition file correspond. Device controller.
前記定義ファイルは、前記デバイスにおいて状態変化していない時の当該デバイスの応答情報を含む第2の定義ファイルからなり、
前記第1の検知手段は、前記デバイスの応答情報と前記第2の定義ファイルに含まれている応答情報が一致したか否かを判別する第2の判別手段を備え、
前記送信手段は、前記デバイスの応答情報と前記第2の定義ファイルに含まれている応答情報が一致しないときに、前記トリガ通知を前記クライアント装置に送信すること
を特徴とする請求項1記載のデバイス制御装置。
The definition file includes a second definition file including response information of the device when the state of the device has not changed,
The first detection means includes second determination means for determining whether or not the response information of the device matches the response information included in the second definition file,
The said transmission means transmits the said trigger notification to the said client apparatus, when the response information of the said device and the response information contained in the said 2nd definition file do not correspond. Device controller.
前記再開手段は、前記クライアント装置から応答がないとき、前記第1の検知手段に前記デバイスの状態の監視を再開させること
を特徴とする請求項1乃至3のいずれか1項に記載のデバイス制御装置。
4. The device control according to claim 1, wherein the resuming unit causes the first detection unit to resume monitoring the state of the device when there is no response from the client device. 5. apparatus.
前記第1の検知手段が前記デバイスの状態を監視している間に前記クライアント装置から前記デバイス制御装置とのセッションの要求があるとき、前記第1の検知手段は、前記デバイスの状態の監視を終了し、前記セッションが切断されると、前記再開手段は、前記デバイスの状態の監視を再開させること
を特徴とする請求項1乃至4のいずれか1項に記載のデバイス制御装置。
When there is a session request from the client device to the device control apparatus while the first detection means is monitoring the device status, the first detection means monitors the device status. 5. The device control apparatus according to claim 1, wherein when the session is terminated and the session is disconnected, the resuming unit resumes monitoring of the state of the device.
ネットワークを介してクライアント装置に接続されていると共にデバイスがローカル接続されるべきデバイス制御装置によって実行されるデバイス制御方法であって、
前記デバイスの状態を監視するための定義ファイル及びトリガ検知アルゴリズムを用いて前記デバイスの状態を監視し、当該デバイスの状態変化を検知する第1の検知ステップと、
前記デバイスの状態変化が検知されたときに、当該状態変化の検知を示すトリガ通知を前記クライアント装置に送信する送信ステップと、
前記トリガ通知を受信したクライアント装置とセッションを開始して、前記状態変化を検知したデバイスとのデータ通信を中継するデータ通信制御ステップと、
前記デバイスとのデータ通信が終了して当該クライアント装置とのセッションが切断されたことを検知する第2の検知ステップと、
前記クライアント装置とのセッションが切断されたとき、前記第1の検知手段に前記デバイスの状態の監視を再開させる再開ステップとを備えること
を特徴とするデバイス制御方法。
A device control method executed by a device control apparatus connected to a client apparatus via a network and to which a device is to be locally connected,
A first detection step of monitoring the state of the device using a definition file and a trigger detection algorithm for monitoring the state of the device and detecting a change in the state of the device;
A transmission step of transmitting a trigger notification indicating detection of the state change to the client device when the state change of the device is detected;
A data communication control step of starting a session with the client device that has received the trigger notification and relaying data communication with the device that has detected the state change;
A second detection step of detecting that data communication with the device is terminated and the session with the client device is disconnected;
A device control method comprising: a resumption step of causing the first detection unit to resume monitoring of the state of the device when a session with the client device is disconnected.
前記定義ファイルは、前記デバイスの状態変化時における前記デバイスの応答情報を含む第1の定義ファイルからなり、
前記第1の検知ステップは、前記デバイスの応答情報と前記第1の定義ファイルに含まれている応答情報が一致したか否かを判別する第1の判別ステップを備え、
前記送信ステップは、前記デバイスの応答情報と前記第1の定義ファイルに含まれている応答情報が一致したときに、前記トリガ通知を前記クライアント装置に送信すること
を特徴とする請求項6記載のデバイス制御方法。
The definition file includes a first definition file that includes response information of the device when the state of the device changes.
The first detection step includes a first determination step of determining whether or not the response information of the device matches the response information included in the first definition file,
The said transmission step transmits the said trigger notification to the said client apparatus, when the response information of the said device and the response information contained in the said 1st definition file correspond, The said client device is characterized by the above-mentioned. Device control method.
前記定義ファイルは、前記デバイスにおいて状態変化していない時の当該デバイスの応答情報を含む第2の定義ファイルからなり、
前記第1の検知ステップは、前記デバイスの応答情報と前記第2の定義ファイルに含まれている応答情報が一致したか否かを判別する第2の判別ステップを備え、
前記送信ステップは、前記デバイスの応答情報と前記第2の定義ファイルに含まれている応答情報が一致しないときに、前記トリガ通知を前記クライアント装置に送信すること
を特徴とする請求項6記載のデバイス制御方法。
The definition file includes a second definition file including response information of the device when the state of the device has not changed,
The first detection step includes a second determination step of determining whether or not the response information of the device matches the response information included in the second definition file,
The said transmission step transmits the said trigger notification to the said client apparatus, when the response information of the said device and the response information contained in the said 2nd definition file do not correspond. Device control method.
前記再開ステップは、前記クライアント装置から応答がないとき、前記第1の検知ステップに前記デバイスの状態の監視を再開させること
を特徴とする請求項6乃至8のいずれか1項に記載のデバイス制御方法。
9. The device control according to claim 6, wherein the restarting step causes the first detection step to restart monitoring of the state of the device when there is no response from the client device. 10. Method.
前記第1の検知ステップが前記デバイスの状態を監視している間に前記クライアント装置から前記デバイス制御装置とのセッションの要求があるときは、前記第1の検知ステップは、前記デバイスの状態の監視を終了し、前記セッションが切断されると、前記再開ステップは、前記デバイスの状態の監視を再開させること
を特徴とする請求項6乃至9のいずれか1項に記載のデバイス制御方法。
When there is a request for a session with the device control apparatus from the client device while the first detection step is monitoring the device state, the first detection step is to monitor the device state. The device control method according to claim 6, wherein when the session is disconnected and the session is disconnected, the restarting step restarts monitoring of the state of the device.
デバイスがローカル接続されるべきデバイス制御装置にネットワークを介して接続されているクライアント装置であって、
当該デバイス制御装置にローカル接続されたデバイスの動作状態を確認するためのポーリングを行う際に蓄積された前記デバイスに対する要求情報及び前記デバイスからの応答情報を含む定義ファイルを作成する作成手段と、
前記作成された定義ファイルを前記デバイス制御装置に送信する送信手段と、
前記デバイスの状態変化を検知した前記デバイス制御装置から前記デバイスの状態変化の検知を示すトリガ通知を受信する受信手段と、
前記受信手段によって受信された前記トリガ通知に応じて前記デバイス制御装置とのセッションを開始するセッション制御手段とを備えること
を特徴とするクライアント装置。
A client device in which a device is connected via a network to a device control device to be locally connected,
Creating means for creating a definition file including request information and response information from the device stored when polling for confirming an operation state of a device locally connected to the device control apparatus;
Transmitting means for transmitting the created definition file to the device control apparatus;
Receiving means for receiving a trigger notification indicating detection of a change in the state of the device from the device control apparatus that has detected a change in the state of the device;
A client apparatus comprising: session control means for starting a session with the device control apparatus in response to the trigger notification received by the receiving means.
前記デバイスに適った定義ファイルを自装置で保持しているか否かを判断する判断手段をさらに備え、
当該デバイスに適った定義ファイルを保持していると判断した場合、前記作成手段による定義ファイルの作成を行わず、前記送信手段によって当該保持している定義ファイルを送信すること
を特徴とする請求項11記載のクライアント装置。
A judgment unit for judging whether or not the device holds a definition file suitable for the device;
When it is determined that the definition file suitable for the device is held, the definition file is not created by the creation unit, and the held definition file is transmitted by the transmission unit. 11. The client device according to 11.
請求項1又は3に記載のデバイス制御装置と請求項11又は12に記載のクライアント装置とが互いにネットワークを介して接続されていることを特徴とするデバイス制御システム。   A device control system according to claim 1, wherein the device control apparatus according to claim 1 and the client apparatus according to claim 11 or 12 are connected to each other via a network.
JP2011103755A 2011-05-06 2011-05-06 Device control apparatus and method, client apparatus, and device control system Expired - Fee Related JP5802049B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011103755A JP5802049B2 (en) 2011-05-06 2011-05-06 Device control apparatus and method, client apparatus, and device control system
US13/464,159 US8849999B2 (en) 2011-05-06 2012-05-04 Device control apparatus and method for monitoring device, client apparatus, and device control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011103755A JP5802049B2 (en) 2011-05-06 2011-05-06 Device control apparatus and method, client apparatus, and device control system

Publications (2)

Publication Number Publication Date
JP2012234444A JP2012234444A (en) 2012-11-29
JP5802049B2 true JP5802049B2 (en) 2015-10-28

Family

ID=47091012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011103755A Expired - Fee Related JP5802049B2 (en) 2011-05-06 2011-05-06 Device control apparatus and method, client apparatus, and device control system

Country Status (2)

Country Link
US (1) US8849999B2 (en)
JP (1) JP5802049B2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016031456A1 (en) * 2014-08-28 2016-03-03 ソニー株式会社 Reader/writer device, information processing device, data transfer control method, and program
JP6399587B2 (en) * 2014-10-22 2018-10-03 シャープ株式会社 Information processing apparatus, information processing system, information processing method, and information processing program
JP6503988B2 (en) * 2015-09-02 2019-04-24 富士通株式会社 Session control method and session control program
CN106557399B (en) * 2015-09-25 2019-09-06 伊姆西公司 The method and apparatus of the state of storage cluster for rendering
US9898272B1 (en) * 2015-12-15 2018-02-20 Symantec Corporation Virtual layer rollback
KR102309110B1 (en) * 2017-03-24 2021-10-06 삼성전자 주식회사 Electronic device and method for controlling external electroinc device connected to usb type-c connector
JP7321746B2 (en) * 2019-04-11 2023-08-07 株式会社Ihiアグリテック General-purpose system for agricultural machinery automation
JP2022032183A (en) * 2020-08-11 2022-02-25 セイコーエプソン株式会社 Server and printing system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002169707A (en) * 2000-11-30 2002-06-14 Nri & Ncc Co Ltd System and method for computer operation management
US20020083143A1 (en) 2000-12-13 2002-06-27 Philips Electronics North America Corporation UPnP architecture for heterogeneous networks of slave devices
JP2003032381A (en) 2001-07-17 2003-01-31 Casio Comput Co Ltd Information communication terminal and program
WO2006112381A1 (en) 2005-04-14 2006-10-26 Matsushita Electric Industrial Co., Ltd. Server device, information report method, and information report system
JP4418920B2 (en) 2006-05-29 2010-02-24 サイレックス・テクノロジー株式会社 Network file management system, device server, and file transmission method
JP2008148106A (en) * 2006-12-12 2008-06-26 Murata Mach Ltd Monitoring device, and network management system
US8078688B2 (en) 2006-12-29 2011-12-13 Prodea Systems, Inc. File sharing through multi-services gateway device at user premises

Also Published As

Publication number Publication date
JP2012234444A (en) 2012-11-29
US8849999B2 (en) 2014-09-30
US20120284395A1 (en) 2012-11-08

Similar Documents

Publication Publication Date Title
JP5802049B2 (en) Device control apparatus and method, client apparatus, and device control system
JP6252172B2 (en) COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND INFORMATION PROCESSING PROGRAM
KR101637894B1 (en) Pull-print system, print job management method, print server, control method therefor and computer-readable medium
US10032013B2 (en) Image forming apparatus communicating with external device through network, network system, method of controlling image forming apparatus, program, and storage medium
JP5745424B2 (en) Device control apparatus, client apparatus, device control method, and device control system
US20070079006A1 (en) Image processing apparatus and method of acquiring information
JP4966753B2 (en) Information processing system and information processing method
US8180934B2 (en) Device monitoring apparatus, control method therefor, device monitoring system, and recording medium
US9086867B2 (en) Power control for an external device based on device identification information
JP2015106798A (en) Communication device, communication system, control method and program of communication device
JP2007088726A (en) Device, and wireless lan setting system and method therefor
JP2006260215A (en) Control system, control device, and control method of control system
CN110286861B (en) Information processing apparatus, device management apparatus, and recording medium
US9398184B2 (en) Image forming apparatus that maintains compatibility of response data in normal mode and standby mode, and network responding method
JP7107066B2 (en) Equipment management device, equipment management program and equipment management system
JP5702134B2 (en) Device control apparatus, information management apparatus, control method therefor, and device control system
US9350600B2 (en) Network responding method performed by an image forming apparatus that has a normal mode and a standby mode
JP2012137864A (en) Device control device, device control method and device control system
JP5712606B2 (en) Image processing apparatus, device management system, device management method, device management program, and recording medium recording the program
JP5901810B2 (en) Device control apparatus, information management apparatus, control method therefor, and device control system
CN104683628A (en) Responding device and responding method
JP2013251600A (en) Device management system and external device
JP2018206019A (en) Device control apparatus, device control method, and program
JP2019012464A (en) Image processing apparatus, control method thereof, printing system, and program
JP2006164092A (en) Display system and method of setting communication information

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140714

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20141210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150310

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150828

R150 Certificate of patent or registration of utility model

Ref document number: 5802049

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees