[go: up one dir, main page]

JP6281369B2 - Communication system and communication program - Google Patents

Communication system and communication program Download PDF

Info

Publication number
JP6281369B2
JP6281369B2 JP2014067744A JP2014067744A JP6281369B2 JP 6281369 B2 JP6281369 B2 JP 6281369B2 JP 2014067744 A JP2014067744 A JP 2014067744A JP 2014067744 A JP2014067744 A JP 2014067744A JP 6281369 B2 JP6281369 B2 JP 6281369B2
Authority
JP
Japan
Prior art keywords
communication
client
server
program
information
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.)
Active
Application number
JP2014067744A
Other languages
Japanese (ja)
Other versions
JP2015118684A (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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2014067744A priority Critical patent/JP6281369B2/en
Publication of JP2015118684A publication Critical patent/JP2015118684A/en
Application granted granted Critical
Publication of JP6281369B2 publication Critical patent/JP6281369B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Description

本発明は、通信システム及び通信プログラムに関する。   The present invention relates to a communication system and a communication program.

近年、インターネット環境の進歩やモバイル端末の普及等に伴い、クライアントからサーバ上のアプリケーションを遠隔操作するためのリモートアクセス環境に関する技術が注目されている。   In recent years, with the advancement of the Internet environment and the spread of mobile terminals, a technology related to a remote access environment for remotely operating an application on a server from a client has attracted attention.

このような技術のひとつとして、リモートデスクトップ接続が挙げられる。例えば、サーバとクライアントとがリモートデスクトップ接続により接続されると、クライアントは、サーバを直接操作しているかのようなデスクトップ画面を表示して、サーバ上のプログラムやファイルにアクセス可能となる。ここで、クライアントにUSB(Universal Serial Bus)メモリなどのローカルデバイスが接続される場合がある。このような場合に、あたかもサーバにそのローカルデバイスが接続されたかのような制御を行うための技術が開発されている。   One such technology is remote desktop connection. For example, when the server and the client are connected by remote desktop connection, the client can display a desktop screen as if the server is directly operated, and can access programs and files on the server. Here, a local device such as a USB (Universal Serial Bus) memory may be connected to the client. In such a case, a technique for performing control as if the local device was connected to the server has been developed.

例えば、下記特許文献1では、クライアントで用いられるデバイスドライバと同様の仮想デバイスドライバをサーバに導入し、サーバが仮想デバイスドライバを介してクライアントに接続されたローカルデバイスを制御する技術が開示されている。また、サーバとクライアントとの通信の確立に関して、下記特許文献3では、クライアントから接続された場合に、サーバ側でクライアントのIPアドレスを記憶し、必要に応じてサーバ側からクライアントにデータを送信する技術が開示されている。   For example, Patent Document 1 below discloses a technology in which a virtual device driver similar to a device driver used in a client is introduced into a server, and the server controls a local device connected to the client via the virtual device driver. . Regarding establishment of communication between a server and a client, in Patent Document 3 below, when a connection is made from a client, the IP address of the client is stored on the server side, and data is transmitted from the server side to the client as necessary. Technology is disclosed.

また、リモートアクセス環境とは異なる分野においても、端末装置に接続されたデバイスにアクセスするための技術が開発されている。例えば、下記特許文献2では、端末装置内のデバイスドライバを制御するためのデバイス制御実行基板を設け、上位層からのデバイスの呼び出し制御を抽象化する技術が開示されている。   In addition, a technology for accessing a device connected to a terminal device has been developed even in a field different from the remote access environment. For example, Patent Document 2 below discloses a technology that provides a device control execution board for controlling a device driver in a terminal device and abstracts device call control from an upper layer.

特表2009−508212号公報Special table 2009-508212 特開2007−316786号公報JP 2007-316786 A 特開2003−296270号公報JP 2003-296270 A

しかし、上記特許文献1に記載された技術は、サーバで用いられる仮想デバイスドライバとして、クライアントで用いられるデバイスドライバと同じものを使用可能であることを前提とした技術である。従って、同じものを使用することが困難な場合には、リモートアクセス環境の実現が困難になるという問題があった。   However, the technique described in Patent Document 1 is based on the premise that the same device driver used in the client can be used as the virtual device driver used in the server. Therefore, when it is difficult to use the same device, there is a problem that it is difficult to realize a remote access environment.

そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、仮想デバイスドライバを用いることなくリモートアクセス環境を実現することが可能な、新規かつ改良された通信システム及び通信プログラムを提供することにある。   The present invention has been made in view of the above problems, and an object of the present invention is to provide a new and improved communication capable of realizing a remote access environment without using a virtual device driver. To provide a system and a communication program.

上記課題を解決するために、本発明のある観点によれば、クライアント装置と前記クライアント装置の仮想化されたデスクトップ環境として機能するサーバ装置とを含む通信システムであって、前記サーバ装置は、アプリケーションの要求に応じて、前記クライアント装置に接続された外部装置への、前記外部装置を示す識別情報及び前記外部装置に係る第1の入出力制御情報を含む命令情報を前記クライアント装置に送信する第1の通信プログラムを有し、前記クライアント装置は、デバイスドライバと、前記サーバ装置から前記命令情報を受信し、受信された前記命令情報を前記クライアント装置における第2の入出力制御情報に変換して前記外部装置に対応する前記デバイスドライバに中継する第2の通信プログラムと、を有する、通信システムが提供される。
In order to solve the above problems, according to an aspect of the present invention, there is provided a communication system including a client device and a server device functioning as a virtual desktop environment of the client device, wherein the server device is an application. depending on the requirements, to the external device connected to the client device, the instruction information including the first input-output control information according to the identification information and the external device indicating the external device, and transmits to the client device A first communication program, wherein the client device receives the command information from the device driver and the server device, and converts the received command information into second input / output control information in the client device; A second communication program that relays to the device driver corresponding to the external device. Shin system is provided.

前記第2の通信プログラムは、前記クライアント装置に接続された前記外部装置を識別し、識別した前記外部装置を示す識別情報を前記サーバ装置に送信してもよい。   The second communication program may identify the external device connected to the client device and transmit identification information indicating the identified external device to the server device.

前記第2の通信プログラムは、前記識別情報が示す前記外部装置に対応する前記デバイスドライバに前記第2の入出力制御情報を中継してもよい。
The second communication program may relay the second input / output control information to the device driver corresponding to the external device indicated by the identification information.

前記第1の通信プログラムは、前記仮想化されたデスクトップ環境の接続元である前記クライアント装置を識別し、識別した前記クライアント装置に前記命令情報を送信してもよい。   The first communication program may identify the client device that is a connection source of the virtualized desktop environment and transmit the command information to the identified client device.

前記第2の通信プログラムは、前記第2の入出力制御情報に基づき前記外部装置から出力された出力情報を前記サーバ装置に送信し、前記第1の通信プログラムは、前記クライアント装置から受信された前記出力情報を前記アプリケーションに中継してもよい。
The second communication program transmits output information output from the external device based on the second input / output control information to the server device, and the first communication program is received from the client device. The output information may be relayed to the application.

前記第2の入出力制御情報は、IOCTL(I/O Control)であってもよい。
The second input / output control information may be IOCTL (I / O Control).

前記サーバ装置は、前記第2の通信プログラムとの間で通信を確立して前記第2の通信プログラムと前記第1の通信プログラムとの間の通信を中継する通信管理プログラムと、前記外部装置との通信を行うための接続情報を記憶する記憶部と、をさらに備え、前記通信管理プログラムは、前記第2の通信プログラムからの接続要求に応じて前記第2の通信プログラムとの通信を確立し、前記記憶部に記憶された前記接続情報を用いて前記第1の通信プログラムと前記第2の通信プログラムとの通信を中継してもよい。
The server device includes a communication management program that relays communication between said established communication with pre-Symbol second communication program with the second communication program first communication program, the external device A storage unit for storing connection information for communication with the communication management program, wherein the communication management program establishes communication with the second communication program in response to a connection request from the second communication program Then, communication between the first communication program and the second communication program may be relayed using the connection information stored in the storage unit.

前記接続情報は、前記クライアント装置の識別情報、前記外部装置の識別情報、および通信チャネル情報を含んでもよい。   The connection information may include identification information of the client device, identification information of the external device, and communication channel information.

前記通信管理プログラムは、前記クライアント装置の識別情報を検索キーとして前記記憶部から前記接続情報を検索してもよい。   The communication management program may search the connection information from the storage unit using the identification information of the client device as a search key.

また、上記課題を解決するために、本発明の別の観点によれば、クライアント装置と前記クライアント装置の仮想化されたデスクトップ環境として機能するサーバ装置のアプリケーションとの通信を制御する通信プログラムであって、第1の前記通信プログラムは、前記サーバ装置に含まれ、前記アプリケーションの要求に応じて、前記クライアント装置に接続された外部装置への、前記外部装置を示す識別情報及び前記外部装置に係る第1の入出力制御情報を含む命令情報を前記クライアント装置に送信し、第2の前記通信プログラムは、前記クライアント装置に含まれ、前記サーバ装置から前記命令情報を受信し、受信された前記命令情報を前記クライアント装置における第2の入出力制御情報に変換して前記外部装置に対応するデバイスドライバに中継する、通信プログラムが提供される。 In order to solve the above problem, according to another aspect of the present invention, there is provided a communication program for controlling communication between a client device and an application of a server device functioning as a virtual desktop environment of the client device. The first communication program is included in the server device and relates to identification information indicating the external device to the external device connected to the client device and the external device in response to a request from the application. instruction information including the first input-output control information, and transmitted to the client device, the second said communication program, the included in the client device, wherein the receiving the instruction information from the server device, is received the It converts the command information into the second output control information in the client device device corresponding to the external device Relaying to the scan driver, a communication program is provided.

以上説明したように本発明によれば、仮想デバイスドライバを用いることなくリモートアクセス環境を実現することが可能である。   As described above, according to the present invention, a remote access environment can be realized without using a virtual device driver.

本発明の一実施形態に係る通信システムの概要を示す図である。It is a figure which shows the outline | summary of the communication system which concerns on one Embodiment of this invention. 第1の実施形態に係る通信システムの構成を示すブロック図である。1 is a block diagram showing a configuration of a communication system according to a first embodiment. 第1の実施形態に係るクライアントの動作を示すフローチャートである。It is a flowchart which shows operation | movement of the client which concerns on 1st Embodiment. 第1の実施形態に係るサーバの動作を示すフローチャートである。It is a flowchart which shows operation | movement of the server which concerns on 1st Embodiment. 第1の実施形態に係る通信システムの動作を示すシーケンス図である。It is a sequence diagram which shows operation | movement of the communication system which concerns on 1st Embodiment. 第1の実施形態に係る通信システムの動作を示すシーケンス図である。It is a sequence diagram which shows operation | movement of the communication system which concerns on 1st Embodiment. 第2の実施形態に係る通信システムの概要を説明するための図である。It is a figure for demonstrating the outline | summary of the communication system which concerns on 2nd Embodiment. 第3の実施形態に係る通信システムの構成を示すブロック図であるIt is a block diagram which shows the structure of the communication system which concerns on 3rd Embodiment. 第3の実施形態に係る通信システムの概要を説明するための図である。It is a figure for demonstrating the outline | summary of the communication system which concerns on 3rd Embodiment. 第3の実施形態に係る通信システムの動作を示すシーケンス図である。It is a sequence diagram which shows operation | movement of the communication system which concerns on 3rd Embodiment. 第3の実施形態に係る通信システムの動作を示すシーケンス図である。It is a sequence diagram which shows operation | movement of the communication system which concerns on 3rd Embodiment. 第3の実施形態に係る通信システムの動作を示すシーケンス図である。It is a sequence diagram which shows operation | movement of the communication system which concerns on 3rd Embodiment.

以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。   Exemplary embodiments of the present invention will be described below in detail with reference to the accompanying drawings. In addition, in this specification and drawing, about the component which has the substantially same function structure, duplication description is abbreviate | omitted by attaching | subjecting the same code | symbol.

<1.本発明の一実施形態に係る通信システムの概要>
まず、図1を参照して、本発明の一実施形態に係る通信システムの概要を説明する。
<1. Overview of Communication System According to One Embodiment of the Present Invention>
First, an overview of a communication system according to an embodiment of the present invention will be described with reference to FIG.

図1は、本発明の一実施形態に係る通信システムの概要を示す図である。図1に示すように、本実施形態に係る通信システムは、ネットワーク4により接続されたサーバ1(サーバ装置)およびクライアント2(クライアント装置)から成る。クライアント2には、ローカルデバイス3A、3Bといった複数のローカルデバイス(外部装置)が接続され得る。以下では、ローカルデバイス3A、3Bをはじめとする複数のローカルデバイスを特に区別する必要がない場合、ローカルデバイス3と総称する。   FIG. 1 is a diagram showing an outline of a communication system according to an embodiment of the present invention. As shown in FIG. 1, the communication system according to this embodiment includes a server 1 (server device) and a client 2 (client device) connected by a network 4. A plurality of local devices (external devices) such as local devices 3A and 3B can be connected to the client 2. Hereinafter, a plurality of local devices including the local devices 3 </ b> A and 3 </ b> B are collectively referred to as a local device 3 when it is not necessary to distinguish them.

サーバ1およびクライアント2は、ネットワーク4を介したリモートデスクトップ接続により接続することが可能である。クライアント2は、サーバ1とのリモートデスクトップ接続により仮想のデスクトップ環境(以下、仮想環境とも称する)を構築する。サーバ1は、クライアント2の仮想環境として機能する。即ち、クライアント2は、サーバ1を直接操作しているかのようなデスクトップ画面を表示し、ユーザは、クライアント2に表示されたデスクトップ画面からサーバ1上のプログラムやファイルにアクセスすることができる。なお、リモートデスクトップ接続による仮想環境は、リモートアクセス環境の一例であり、本発明はかかる例に限定されない。   The server 1 and the client 2 can be connected by remote desktop connection via the network 4. The client 2 constructs a virtual desktop environment (hereinafter also referred to as a virtual environment) by remote desktop connection with the server 1. The server 1 functions as a virtual environment for the client 2. That is, the client 2 displays a desktop screen as if the server 1 is directly operated, and the user can access programs and files on the server 1 from the desktop screen displayed on the client 2. The virtual environment by remote desktop connection is an example of a remote access environment, and the present invention is not limited to such an example.

ネットワーク4は、ネットワーク4に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、ネットワーク4は、インターネットや専用線、IP−VPN(Internet Protocol−Virtual Private Network)等により構成される。他にも、ネットワーク4は、モデムを介した直接ダイアルアップ、企業LAN(Local Area Network)やWAN(Wide Area Network)により構成されてもよい。サーバ1は、ひとつ又は複数のクライアント2とネットワーク4を介して接続され、例えばTCP/IP等の伝送制御プロトコルにより相互に通信する。   The network 4 is a wired or wireless transmission path for information transmitted from a device connected to the network 4. For example, the network 4 is configured by the Internet, a dedicated line, an IP-VPN (Internet Protocol-Virtual Private Network), or the like. In addition, the network 4 may be configured by direct dial-up via a modem, a corporate LAN (Local Area Network), or a WAN (Wide Area Network). The server 1 is connected to one or a plurality of clients 2 via a network 4 and communicates with each other by a transmission control protocol such as TCP / IP.

図1に示すように、クライアント2にはローカルデバイス3が接続され得る。上述したように、上記特許文献1に開示された技術では、サーバで用いられる仮想デバイスドライバとして、クライアントで用いられるデバイスドライバと同じものを使用可能であることを前提としている。よって、同じものを使用することが困難な場合には、リモートアクセス環境の実現が困難になるという問題があった。   As shown in FIG. 1, a local device 3 can be connected to the client 2. As described above, the technique disclosed in Patent Document 1 is based on the premise that the same device driver used in the client can be used as the virtual device driver used in the server. Therefore, there is a problem that it is difficult to realize a remote access environment when it is difficult to use the same device.

まず、第1に、デバイスドライバが遠隔地で動作されることを想定された設計になっていないという問題がある。例えば、遠隔地にあるサーバ1の仮想デバイスドライバが、IOCTL(I/O Control)等の制御コードを送信する場合を考える。このような場合、IOCTLを発行する仮想デバイスドライバは短時間で応答が帰ってくることを期待しているため、ネットワーク4の遅延等によりIOCTLのタイムアウトエラー等が発生してしまう場合があった。また、接続されるローカルデバイスによっては、クライアント2からサーバ1へのリダイレクトが正常に動作せず、仮想デバイスドライバがサーバ1上に作成できない場合があった。   First, there is a problem that the device driver is not designed to be operated remotely. For example, consider a case where the virtual device driver of the server 1 at a remote location transmits a control code such as IOCTL (I / O Control). In such a case, since the virtual device driver that issues the IOCTL expects the response to be returned in a short time, an IOCTL timeout error may occur due to a delay of the network 4 or the like. Also, depending on the connected local device, redirection from the client 2 to the server 1 does not operate normally, and a virtual device driver may not be created on the server 1.

第2に、サーバ1とクライアント2とが異なるOS(Operating System)により動作する場合に対応していないという問題がある。詳しくは、ローカルデバイス3がクライアント2に接続されることを想定してデバイスメーカーが作成したデバイスドライバが、仮想デバイスドライバとして動作するため、サーバ1のOSをデバイスメーカーがサポートしていない場合は遠隔操作を実現できない。例えば、ローカルデバイス3が、WindowsXP(登録商標)(32bit)やWindows(登録商標)7(32bit)等のOSで動作するPC(Personal Computer)に接続されることが想定されている場合を考える。このような場合、サーバ1のOSがWindowsServer(登録商標)2008(64bit)等のサーバ用OSやLinux(登録商標)等のWindows(登録商標)OS以外のOSである場合、サーバ1上のアプリケーションはローカルデバイス3を遠隔制御できなかった。   Secondly, there is a problem that the server 1 and the client 2 are not compatible with the case where they operate by different OSs (Operating Systems). Specifically, since the device driver created by the device manufacturer assuming that the local device 3 is connected to the client 2 operates as a virtual device driver, it is remote if the OS of the server 1 does not support the OS. The operation cannot be realized. For example, consider a case where the local device 3 is assumed to be connected to a PC (Personal Computer) operating on an OS such as Windows XP (registered trademark) (32 bits) and Windows (registered trademark) 7 (32 bits). In such a case, if the OS of the server 1 is an OS for a server such as Windows Server (registered trademark) 2008 (64 bits) or an OS other than a Windows (registered trademark) OS such as Linux (registered trademark), an application on the server 1 is used. Could not remotely control the local device 3.

そこで、上記事情を一着眼点にして本発明の一実施形態に係る通信システムを創作するに至った。本発明の一実施形態に係る通信システムは、仮想デバイスドライバを用いることなくリモートアクセス環境を実現することができる。   In view of the above circumstances, a communication system according to an embodiment of the present invention has been created. The communication system according to an embodiment of the present invention can realize a remote access environment without using a virtual device driver.

具体的には、本実施形態に係るサーバ1は、仮想デバイスドライバではなく、サーバ用デバイス通信プログラム130(第1の通信プログラム)とクライアント用デバイス通信プログラム230(第2の通信プログラム)との通信を介してローカルデバイス3を制御する。サーバ用デバイス通信プログラム130は、サーバ1によるデバイス制御を中継する、サーバ1に格納されたプログラムである。クライアント用デバイス通信プログラム230は、サーバ用デバイス通信プログラム130から受信したデバイス制御のための情報をデバイスドライバに中継する、クライアント2に格納されたプログラムである。   Specifically, the server 1 according to the present embodiment is not a virtual device driver, but communication between the server device communication program 130 (first communication program) and the client device communication program 230 (second communication program). The local device 3 is controlled via The server device communication program 130 is a program stored in the server 1 that relays device control by the server 1. The client device communication program 230 is a program stored in the client 2 that relays the device control information received from the server device communication program 130 to the device driver.

本実施形態によれば、サーバ1で仮想デバイスドライバが動作することがなく、クライアント2内でのみデバイスドライバが動作するため、ネットワーク4の遅延等によるIOCTLのタイムアウトエラー等の発生を回避することができる。また、デバイスドライバは、クライアント2でのみ用いられ、サーバ1で用いられることがないため、サーバ1のOSがデバイスメーカーのサポート外であっても、リモートアクセス環境を実現することができる。   According to the present embodiment, since the virtual device driver does not operate on the server 1 and the device driver operates only on the client 2, it is possible to avoid occurrence of an IOCTL timeout error due to a delay of the network 4 or the like. it can. Further, since the device driver is used only by the client 2 and is not used by the server 1, a remote access environment can be realized even if the OS of the server 1 is not supported by the device manufacturer.

以上、本発明の一実施形態に係る通信システムの概要を説明した。続いて、本発明の各実施形態について詳細に説明する。   The outline of the communication system according to the embodiment of the present invention has been described above. Subsequently, each embodiment of the present invention will be described in detail.

<2.実施形態>
[2−1.第1の実施形態]
まず、図2を参照して、第1の実施形態に係る通信システムの構成を説明する。図2は、第1の実施形態に係る通信システムの構成を示すブロック図である。
<2. Embodiment>
[2-1. First Embodiment]
First, the configuration of the communication system according to the first embodiment will be described with reference to FIG. FIG. 2 is a block diagram illustrating a configuration of the communication system according to the first embodiment.

[2−1−1.サーバ1の構成]
図2に示すように、サーバ1は、プロセッサ101、メモリ102、リモート・サービス・サーバ・アプリケーション110、アプリケーション120、およびサーバ用デバイス通信プログラム130を有する。サーバ1は、WindowsServer(登録商標)2008や、Linux(登録商標)等のOSにより動作する。
[2-1-1. Configuration of server 1]
As illustrated in FIG. 2, the server 1 includes a processor 101, a memory 102, a remote service server application 110, an application 120, and a server device communication program 130. The server 1 is operated by an OS such as Windows Server (registered trademark) 2008 or Linux (registered trademark).

(プロセッサ101)
プロセッサ101は、演算処理装置および制御装置として機能し、各種プログラムに従ってサーバ1内の動作全般を制御する。プロセッサ101は、例えばCPU(Central Processing Unit)、マイクロプロセッサによって実現される。なお、プロセッサ101は、使用するプログラムや演算パラメータ等を記憶するROM(Read Only Memory)、および適宜変化するパラメータ等を一時記憶するRAM(Random Access Memory)を含んでいてもよい。
(Processor 101)
The processor 101 functions as an arithmetic processing device and a control device, and controls the overall operation in the server 1 according to various programs. The processor 101 is realized by, for example, a CPU (Central Processing Unit) or a microprocessor. The processor 101 may include a ROM (Read Only Memory) that stores programs to be used, calculation parameters, and the like, and a RAM (Random Access Memory) that temporarily stores parameters that change as appropriate.

(メモリ102)
メモリ102は、所定の記録媒体に対してデータの記録再生を行う部位である。メモリ102は、例えばHDD(Hard Disc Drive)として実現される。もちろん記録媒体としては、フラッシュメモリ等の固体メモリ、固定メモリを内蔵したメモリカード、光ディスク、光磁気ディスク、ホログラムメモリなど各種考えられ、メモリ102としては採用する記録媒体に応じて記録再生を実行できる構成とされればよい。なお、図2では、リモート・サービス・サーバ・アプリケーション110、アプリケーション120、およびサーバ用デバイス通信プログラム130といった構成要素がメモリ102から独立した要素として表現されているが、メモリ102に記憶されていてもよい。
(Memory 102)
The memory 102 is a part that records and reproduces data on a predetermined recording medium. The memory 102 is realized as an HDD (Hard Disc Drive), for example. Of course, various recording media such as a solid-state memory such as a flash memory, a memory card with a built-in fixed memory, an optical disk, a magneto-optical disk, and a hologram memory are conceivable, and the memory 102 can perform recording and reproduction according to the recording medium employed. What is necessary is just to be set as a structure. In FIG. 2, components such as the remote service server application 110, the application 120, and the server device communication program 130 are expressed as elements independent of the memory 102, but may be stored in the memory 102. Good.

(リモート・サービス・サーバ・アプリケーション110)
リモート・サービス・サーバ・アプリケーション110は、リモート・サービス・クライアント・アプリケーション210との通信により、サーバ1をクライアント2の仮想化されたデスクトップ環境として機能させるプログラムである。詳しくは、リモート・サービス・サーバ・アプリケーション110は、RDP(Remote Data Protocol)などの通信プロトコルにより、リモート・サービス・クライアント・アプリケーション210と通信する。このようなRDPによる通信は、ターミナルサービスシステム等のリモート・クライアント・アクセスシステムとして実装されてもよい。
(Remote service server application 110)
The remote service server application 110 is a program that causes the server 1 to function as a virtualized desktop environment of the client 2 through communication with the remote service client application 210. Specifically, the remote service server application 110 communicates with the remote service client application 210 using a communication protocol such as RDP (Remote Data Protocol). Such RDP communication may be implemented as a remote client access system such as a terminal service system.

リモート・サービス・サーバ・アプリケーション110は、仮想環境のデスクトップ画面の情報を、リモート・サービス・クライアント・アプリケーション210に送信する。他方、仮想環境におけるローカルデバイス3への入出力制御は、リモート・サービス・サーバ・アプリケーション110によるRDPを介した通信ではなく、後述するサーバ用デバイス通信プログラム130により行われる。   The remote service server application 110 transmits information on the desktop screen of the virtual environment to the remote service client application 210. On the other hand, the input / output control to the local device 3 in the virtual environment is performed not by communication via RDP by the remote service server application 110 but by a server device communication program 130 described later.

(アプリケーション120)
アプリケーション120は、マルチメディア処理、データベースアクセス等を行う各種アプリケーションである。アプリケーション120は、クライアント2による遠隔操作により動作する。この際、アプリケーション120は、リモート・サービス・サーバ・アプリケーション110を介して画面出力情報をクライアント2に送信する。他方、アプリケーション120は、サーバ用デバイス通信プログラム130を介してローカルデバイス3を制御するための情報をクライアント2に送信することで、ローカルデバイス3を制御する。ここで、アプリケーション120は、クライアント2に接続されたローカルデバイス3を、IOCTLコード内の物理デバイスオブジェクト(PDO:Physical Device Object)としては識別しない。アプリケーション120は、後述するサーバ用デバイス通信プログラム130により提供されるAPI(Application Programming Interface)を介して、ローカルデバイス3の制御を行う。そして、アプリケーション120は、サーバ用デバイス通信プログラム130を介して受信した、ローカルデバイス3からの応答に基づいて動作する。
(Application 120)
The application 120 is various applications that perform multimedia processing, database access, and the like. The application 120 operates by remote operation by the client 2. At this time, the application 120 transmits screen output information to the client 2 via the remote service server application 110. On the other hand, the application 120 controls the local device 3 by transmitting information for controlling the local device 3 to the client 2 via the server device communication program 130. Here, the application 120 does not identify the local device 3 connected to the client 2 as a physical device object (PDO: Physical Device Object) in the IOCTL code. The application 120 controls the local device 3 via an API (Application Programming Interface) provided by a server device communication program 130 described later. The application 120 operates based on a response from the local device 3 received via the server device communication program 130.

上述したように、仮想環境におけるローカルデバイス3への入出力制御は、リモート・サービス・サーバ・アプリケーション110によるRDPを介した通信ではなく、後述のサーバ用デバイス通信プログラム130により行われる。具体的には、アプリケーション120は、ローカルデバイス3の制御のために、上記特許文献1で開示された技術で用いられているような、RDPを介して通信する入出力要求パケット(IRP:I/O Request Packet)を使用しない。アプリケーション120は、独自プロトコルにより記述された入出力要求情報(命令情報)を使用して、ローカルデバイス3を制御する。   As described above, the input / output control to the local device 3 in the virtual environment is not performed by the remote service server application 110 via RDP but by the server device communication program 130 described later. Specifically, the application 120 uses an I / O request packet (IRP: I / O) that communicates via RDP as used in the technique disclosed in Patent Document 1 to control the local device 3. Do not use O Request Packet). The application 120 controls the local device 3 using input / output request information (command information) described by a unique protocol.

入出力要求情報は、クライアント2に接続された1つ以上のローカルデバイス3から特定のローカルデバイス3を識別するための識別情報、およびローカルデバイス3への出力命令や入力命令等の制御情報の組み合わせを、1つ以上含む情報である。入出力要求情報を記述するための独自プロトコルとしては、例えばXML(EXtensible Markup Language)やJSON(JavaScript(登録商標) Object Notation)等を用いてもよい。なお、入出力要求情報は、サーバ用デバイス通信プログラム130により中継され、クライアント用デバイス通信プログラム230によりIOCTL等の制御コードに変換される。入出力要求情報は、1つまたは複数のローカルデバイス3への要求を含んでいてもよい。   The input / output request information is a combination of identification information for identifying a specific local device 3 from one or more local devices 3 connected to the client 2, and control information such as an output command and an input command to the local device 3. Is information including one or more. As a unique protocol for describing input / output request information, for example, XML (Extensible Markup Language), JSON (JavaScript (registered trademark) Object Notification), or the like may be used. The input / output request information is relayed by the server device communication program 130 and converted into a control code such as IOCTL by the client device communication program 230. The input / output request information may include requests for one or more local devices 3.

(サーバ用デバイス通信プログラム130)
サーバ用デバイス通信プログラム130は、アプリケーション120からクライアント2に接続されたローカルデバイス3への入出力要求情報を、クライアント2に送信する機能を有する。サーバ用デバイス通信プログラム130は、クライアント用デバイス通信プログラム230を介して、クライアント2のドライバスタックと通信する。ここで、サーバ用デバイス通信プログラム130は、特定のローカルデバイス3に対して特有である。詳しくは、サーバ用デバイス通信プログラム130は、ローカルデバイス3のデバイスドライバで提供されるAPIと同じインターフェース仕様を提供する。このため、アプリケーション120は、リンク先を仮想デバイスドライバからサーバ用デバイス通信プログラム130に変更するだけで、既存の処理を変更することなく又は最小限の変更でローカルデバイス3を制御することができる。なお、サーバ用デバイス通信プログラム130は、アプリケーション120がローカルデバイス3を制御できるように常駐する。
(Server device communication program 130)
The server device communication program 130 has a function of transmitting input / output request information from the application 120 to the local device 3 connected to the client 2 to the client 2. The server device communication program 130 communicates with the driver stack of the client 2 via the client device communication program 230. Here, the server device communication program 130 is specific to a specific local device 3. Specifically, the server device communication program 130 provides the same interface specification as the API provided by the device driver of the local device 3. Therefore, the application 120 can control the local device 3 by changing the link destination from the virtual device driver to the server device communication program 130 without changing the existing process or with a minimum change. The server device communication program 130 resides so that the application 120 can control the local device 3.

ローカルデバイス3は、サーバ用デバイス通信プログラム130により送信された入出力要求情報に基づいて動作した結果である入出力応答情報(出力情報)を出力する。入出力応答情報とは、例えばIOCTL応答である。サーバ用デバイス通信プログラム130は、クライアント用デバイス通信プログラム230を介してローカルデバイス3から受信された入出力応答情報を、アプリケーション120に中継する。このように、サーバ用デバイス通信プログラム130は、アプリケーション120からローカルデバイス3への入出力要求情報、およびローカルデバイス3からアプリケーション120への入出力応答情報を中継する。このような中継を、以下ではデバイス中継通信とも称する。デバイス中継通信により、アプリケーション120によるローカルデバイス3の制御が可能となる。   The local device 3 outputs input / output response information (output information) that is a result of operation based on the input / output request information transmitted by the server device communication program 130. The input / output response information is, for example, an IOCTL response. The server device communication program 130 relays the input / output response information received from the local device 3 via the client device communication program 230 to the application 120. As described above, the server device communication program 130 relays the input / output request information from the application 120 to the local device 3 and the input / output response information from the local device 3 to the application 120. Hereinafter, such relay is also referred to as device relay communication. The device relay communication enables the application 120 to control the local device 3.

以上、サーバ1の構成を説明した。続いて、クライアント2の構成を説明する。   The configuration of the server 1 has been described above. Next, the configuration of the client 2 will be described.

[2−1−2.クライアント2の構成]
図2に示すように、クライアント2は、プロセッサ201、メモリ202、リモート・サービス・クライアント・アプリケーション210、クライアント用デバイス通信プログラム230、デバイスドライバ240、カーネルドライバ251、バスドライバ252、ホストコントローラドライバ253、およびホストコントローラ254を有する。クライアント2は、WindowsXP(登録商標)(32bit)やWindows(登録商標)7(32bit)等のOSで動作する、PCやノートPC、タブレット端末等のスタンドアローン型のコンピュータである。クライアント2は、ローカルに格納していないファイルやアプリケーションにアクセスするために、リモートアクセス環境によりサーバ1と通信する。
[2-1-2. Configuration of client 2]
As shown in FIG. 2, the client 2 includes a processor 201, a memory 202, a remote service client application 210, a client device communication program 230, a device driver 240, a kernel driver 251, a bus driver 252, a host controller driver 253, And a host controller 254. The client 2 is a stand-alone computer such as a PC, a notebook PC, or a tablet terminal that operates on an OS such as Windows XP (registered trademark) (32 bits) or Windows (registered trademark) 7 (32 bits). The client 2 communicates with the server 1 in a remote access environment in order to access files and applications that are not stored locally.

(プロセッサ201)
プロセッサ201は、演算処理装置および制御装置として機能し、各種プログラムに従ってクライアント2内の動作全般を制御する。プロセッサ201は、例えばCPU、マイクロプロセッサによって実現される。なお、プロセッサ201は、使用するプログラムや演算パラメータ等を記憶するROM、および適宜変化するパラメータ等を一時記憶するRAMを含んでいてもよい。
(Processor 201)
The processor 201 functions as an arithmetic processing unit and a control unit, and controls the overall operation in the client 2 according to various programs. The processor 201 is realized by, for example, a CPU or a microprocessor. The processor 201 may include a ROM that stores programs to be used, calculation parameters, and the like, and a RAM that temporarily stores parameters that change as appropriate.

(メモリ202)
メモリ202は、所定の記録媒体に対してデータの記録再生を行う部位である。メモリ202は、例えばHDDとして実現される。もちろん記録媒体としては、フラッシュメモリ等の固体メモリ、固定メモリを内蔵したメモリカード、光ディスク、光磁気ディスク、ホログラムメモリなど各種考えられ、メモリ202としては採用する記録媒体に応じて記録再生を実行できる構成とされればよい。なお、図2では、リモート・サービス・クライアント・アプリケーション210、およびクライアント用デバイス通信プログラム230等の構成要素がメモリ202から独立した要素として表現されているが、メモリ202に記憶されていてもよい。
(Memory 202)
The memory 202 is a part that records and reproduces data on a predetermined recording medium. The memory 202 is realized as an HDD, for example. Of course, various recording media such as a solid-state memory such as a flash memory, a memory card incorporating a fixed memory, an optical disk, a magneto-optical disk, and a hologram memory are conceivable. The memory 202 can perform recording and reproduction according to the recording medium employed. What is necessary is just to be set as a structure. In FIG. 2, components such as the remote service client application 210 and the client device communication program 230 are expressed as elements independent of the memory 202, but may be stored in the memory 202.

(リモート・サービス・クライアント・アプリケーション210)
リモート・サービス・クライアント・アプリケーション210は、リモート・サービス・サーバ・アプリケーション110との通信により、サーバ1をクライアント2の仮想化されたデスクトップ環境として機能させるプログラムである。詳しくは、リモート・サービス・クライアント・アプリケーション210は、RDPなどの通信プロトコルにより、リモート・サービス・サーバ・アプリケーション110と通信する。このようなRDPによる通信は、ターミナルサービスシステム等のリモート・クライアント・アクセスシステムとして実装されてもよい。リモート・サービス・クライアント・アプリケーション210は、仮想環境のデスクトップ画面の情報を、リモート・サービス・サーバ・アプリケーション110から受信する。
(Remote service client application 210)
The remote service client application 210 is a program that causes the server 1 to function as a virtualized desktop environment of the client 2 through communication with the remote service server application 110. Specifically, the remote service client application 210 communicates with the remote service server application 110 using a communication protocol such as RDP. Such RDP communication may be implemented as a remote client access system such as a terminal service system. The remote service client application 210 receives information on the desktop screen of the virtual environment from the remote service server application 110.

(クライアント用デバイス通信プログラム230)
クライアント用デバイス通信プログラム230は、サーバ1から入出力要求情報を受信し、受信された入出力要求情報を入出力制御情報に変換して、ローカルデバイス3に対応するデバイスドライバ240に中継する機能を有する。入出力制御情報とは、入出力要求パケット(IRP:I/O Request Packet)や、特に入出力制御コード(IOCTL:I/O Control)と呼ばれるIRPの特別なグループの命令である。クライアント用デバイス通信プログラム230は、独自プロトコルにより記述された入出力要求情報を、入出力制御情報に変換してデバイスドライバ240に中継することで、アプリケーション120からローカルデバイス3へのアクセスを実現する。クライアント用デバイス通信プログラム230は、サーバ1のアプリケーション120がローカルデバイス3を制御できるように常駐する。クライアント用デバイス通信プログラム230は、クライアント2のドライバスタックの最上位の要素または層として捉えることができる。
(Client device communication program 230)
The client device communication program 230 has a function of receiving input / output request information from the server 1, converting the received input / output request information into input / output control information, and relaying it to the device driver 240 corresponding to the local device 3. Have. The input / output control information is an IRP special group command called an input / output request packet (IRP: I / O Request Packet) or, particularly, an input / output control code (IOCTL: I / O Control). The client device communication program 230 realizes access from the application 120 to the local device 3 by converting input / output request information described by a unique protocol into input / output control information and relaying it to the device driver 240. The client device communication program 230 resides so that the application 120 of the server 1 can control the local device 3. The client device communication program 230 can be regarded as the highest element or layer of the driver stack of the client 2.

クライアント用デバイス通信プログラム230は、IOCTLコード内の物理デバイスオブジェクトとして、ローカルデバイス3を識別する。クライアント用デバイス通信プログラム230は、識別したローカルデバイス3を示す識別情報をサーバ1に送信する。サーバ用デバイス通信プログラム130から受信した入出力要求情報には、アプリケーション120がどのローカルデバイス3へのアクセスを行うかを示すため、この識別情報が含まれている。よって、クライアント用デバイス通信プログラム230は、この識別情報が示すローカルデバイス3に対応するデバイスドライバ240に、入出力制御情報を中継する。これにより、クライアント2に複数のローカルデバイス3が接続された場合であっても、アプリケーション120は、各ローカルデバイス3を混同することなく、それぞれを制御することができる。   The client device communication program 230 identifies the local device 3 as a physical device object in the IOCTL code. The client device communication program 230 transmits identification information indicating the identified local device 3 to the server 1. The input / output request information received from the server device communication program 130 includes this identification information to indicate which local device 3 the application 120 accesses. Therefore, the client device communication program 230 relays the input / output control information to the device driver 240 corresponding to the local device 3 indicated by the identification information. Thus, even when a plurality of local devices 3 are connected to the client 2, the application 120 can control each local device 3 without confusion.

ローカルデバイス3は、サーバ用デバイス通信プログラム130により送信された入出力要求情報に基づいて動作した結果である入出力応答情報を出力する。クライアント用デバイス通信プログラム230は、ローカルデバイス3から出力された入出力応答情報を、サーバ1に送信する。このように、クライアント用デバイス通信プログラム230は、アプリケーション120からローカルデバイス3への入出力要求情報、およびローカルデバイス3からアプリケーション120への入出力応答情報を中継する。   The local device 3 outputs input / output response information that is a result of operation based on the input / output request information transmitted by the server device communication program 130. The client device communication program 230 transmits the input / output response information output from the local device 3 to the server 1. As described above, the client device communication program 230 relays input / output request information from the application 120 to the local device 3 and input / output response information from the local device 3 to the application 120.

サーバ1からクライアント2への、アプリケーション120とデバイスドライバ240との間の通信は、リダイレクトされる。その結果、サーバ用デバイス通信プログラム130は、デバイスドライバ240の代理として、サーバ1内で動作する。一旦サーバ用デバイス通信プログラム130とアプリケーション120との間の関係が確立されると、サーバ用デバイス通信プログラム130とアプリケーション120との間の通信が、クライアント用デバイス通信プログラム230を介してデバイスドライバ240に転送される。ローカルデバイス3は、デバイスドライバ240に転送された通信に基づき、アプリケーション120の制御通りに動作することができる。   Communication between the application 120 and the device driver 240 from the server 1 to the client 2 is redirected. As a result, the server device communication program 130 operates in the server 1 as a proxy for the device driver 240. Once the relationship between the server device communication program 130 and the application 120 is established, the communication between the server device communication program 130 and the application 120 is transferred to the device driver 240 via the client device communication program 230. Transferred. The local device 3 can operate as controlled by the application 120 based on the communication transferred to the device driver 240.

(デバイスドライバ240)
デバイスドライバ240は、ローカルデバイス3を制御し、アプリケーションソフトウェアに対して抽象化したインターフェースを提供する。デバイスドライバ240は、クライアント用デバイス通信プログラム230およびカーネルドライバ251と通信する。
(Device driver 240)
The device driver 240 controls the local device 3 and provides an abstract interface for application software. The device driver 240 communicates with the client device communication program 230 and the kernel driver 251.

(カーネルドライバ251)
カーネルドライバ251は、プロセッサ201、メモリ202、入出力用ハードウェア等のハードウェアを抽象化し、ハードウェアとソフトウェアがやりとりできるようにするために、プロセスの抽象化、プロセス間通信、システムコール等を提供する。カーネルドライバ251は、デバイスドライバ240およびバスドライバ252と通信する。
(Kernel driver 251)
The kernel driver 251 abstracts hardware such as the processor 201, the memory 202, and input / output hardware, and performs process abstraction, inter-process communication, system calls, and the like so that the hardware and software can communicate with each other. provide. The kernel driver 251 communicates with the device driver 240 and the bus driver 252.

(バスドライバ252)
バスドライバ252は、バスコントローラ、バスアダプタ、バスブリッジ等を制御する。バスドライバ252は、カーネルドライバ251およびホストコントローラドライバ253と通信する。
(Bus driver 252)
The bus driver 252 controls a bus controller, a bus adapter, a bus bridge, and the like. The bus driver 252 communicates with the kernel driver 251 and the host controller driver 253.

(ホストコントローラドライバ253)
ホストコントローラドライバ253は、ホストコントローラ254のドライバ層であり、上位のバスドライバ252からハードウェアを抽象化する。例えば、ホストコントローラドライバ253は、ホストコントローラ254に対するI/O処理、割り込み処理、スケジューリング処理等を行う。ホストコントローラドライバ253は、バスドライバ252およびホストコントローラ254と通信する。
(Host controller driver 253)
The host controller driver 253 is a driver layer of the host controller 254 and abstracts hardware from the upper bus driver 252. For example, the host controller driver 253 performs I / O processing, interrupt processing, scheduling processing, and the like for the host controller 254. The host controller driver 253 communicates with the bus driver 252 and the host controller 254.

(ホストコントローラ254)
ホストコントローラ254は、クライアント2とローカルデバイス3とを接続するハードウェアである。ローカルデバイス3は、ホストコントローラ254のポートを通して、クライアント2に接続する。例えば、ホストコントローラ254は、USBポート、ファイアワイア(IEEE1394)ポート、RS−233cなどのデバイスポートを含む。クライアント2は、PNP(Plug and Play)をサポートしていてもよいが、デバイスポートはPNPに限定されない。
(Host controller 254)
The host controller 254 is hardware that connects the client 2 and the local device 3. The local device 3 connects to the client 2 through the port of the host controller 254. For example, the host controller 254 includes device ports such as a USB port, a firewire (IEEE 1394) port, and RS-233c. The client 2 may support PNP (Plug and Play), but the device port is not limited to PNP.

新たなローカルデバイス3がホストコントローラ254を介してクライアント2に接続またはプラグインされた場合、デバイスドライバ240などのデバイスドライバがインストールされる。クライアント用デバイス通信プログラム230は、インストールされたデバイスドライバ240を介して、ローカルデバイス3にアクセスし制御することができる。   When a new local device 3 is connected or plugged in to the client 2 via the host controller 254, a device driver such as the device driver 240 is installed. The client device communication program 230 can access and control the local device 3 via the installed device driver 240.

以上、クライアント2の構成を説明した。続いて、ローカルデバイス3の構成を説明する。   The configuration of the client 2 has been described above. Next, the configuration of the local device 3 will be described.

[2−1−3.ローカルデバイス3の構成]
ローカルデバイス3は、クライアント2に接続される外部装置である。クライアント2に接続されたローカルデバイス3のアクセスおよび制御は、サーバ1に直接リダイレクトされない。ローカルデバイス3は、サーバ用デバイス通信プログラム130およびクライアント用デバイス通信プログラム230を介して、サーバ1により選択的にアクセスおよび制御される。ローカルデバイス3は、例えば、デジタルカメラ、デジタルビデオカメラ、ハードディスク記憶デバイス、デジタルメディアレコーダ、プリンタ、スキャナ、ICカードリーダ、シリアルポート接続機器であってもよい。この中でも、特に制御機構を内蔵する機器は、仮想デバイスドライバを用いたアクセスが困難な場合が多い。
[2-1-3. Configuration of local device 3]
The local device 3 is an external device connected to the client 2. Access and control of the local device 3 connected to the client 2 is not directly redirected to the server 1. The local device 3 is selectively accessed and controlled by the server 1 via the server device communication program 130 and the client device communication program 230. The local device 3 may be, for example, a digital camera, a digital video camera, a hard disk storage device, a digital media recorder, a printer, a scanner, an IC card reader, or a serial port connection device. Among these, in particular, a device incorporating a control mechanism is often difficult to access using a virtual device driver.

以上、ローカルデバイス3の構成を説明した。続いて、図3〜図5Bを参照して、本実施形態に係る通信システムの動作を説明する。   The configuration of the local device 3 has been described above. Subsequently, the operation of the communication system according to the present embodiment will be described with reference to FIGS.

[2−1−4.動作処理]
(クライアント2の準備動作)
図3は、第1の実施形態に係るクライアント2の動作を示すフローチャートである。図3では、クライアント2が、サーバ1からローカルデバイス3へのアクセス中継を準備する動作処理を示した。図3で示した各ブロックは、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実行される。各ブロックは、1つまたは複数のプロセッサにより実行されるコンピュータ命令として捉えることも可能である。また、各ブロックは、図3で示した順序とは異なる順序により実行されてもよい。
[2-1-4. Operation processing]
(Preparation operation of client 2)
FIG. 3 is a flowchart showing the operation of the client 2 according to the first embodiment. FIG. 3 shows an operation process in which the client 2 prepares access relay from the server 1 to the local device 3. Each block shown in FIG. 3 is executed by hardware, software, firmware, or a combination thereof. Each block can also be viewed as computer instructions executed by one or more processors. Each block may be executed in an order different from the order shown in FIG.

図3に示すように、まず、ステップS102で、クライアント2は、ローカルデバイス3を検出する。詳しくは、クライアント2に常駐するクライアント用デバイス通信プログラム230が、クライアント2に新たに接続されたローカルデバイス3を検出する。他にも、クライアント用デバイス通信プログラム230が起動した際に、クライアント2に接続されているローカルデバイス3を検出してもよい。クライアント用デバイス通信プログラム230は、検出したローカルデバイス3をIOCTLコード内の物理デバイスオブジェクトとして識別する。   As shown in FIG. 3, first, in step S <b> 102, the client 2 detects the local device 3. Specifically, the client device communication program 230 resident in the client 2 detects the local device 3 newly connected to the client 2. In addition, the local device 3 connected to the client 2 may be detected when the client device communication program 230 is activated. The client device communication program 230 identifies the detected local device 3 as a physical device object in the IOCTL code.

次いで、ステップS104で、クライアント2は、デバイスドライバ(デバイスドライバ240、カーネルドライバ251、バスドライバ252)をロードする。詳しくは、クライアント2は、新たに検出されたローカルデバイス3をサポートするために必要なドライバまたはドライバスタックをロードまたはインストールする。上記ステップS102において、クライアント用デバイス通信プログラム230の起動によりローカルデバイス3が検出された場合には、ローカルデバイス3が接続された時点で既にインストール等が完了しているため、再度のインストール等は実施しない。インストール等は、PNP処理として実施されてもよい。クライアント2は、インストールが完了したことをクライアント用デバイス通信プログラム230に通知する。   Next, in step S104, the client 2 loads device drivers (device driver 240, kernel driver 251 and bus driver 252). Specifically, the client 2 loads or installs a driver or driver stack necessary to support the newly detected local device 3. In step S102, if the local device 3 is detected by starting the client device communication program 230, the installation has already been completed when the local device 3 is connected. do not do. Installation or the like may be performed as a PNP process. The client 2 notifies the client device communication program 230 that the installation has been completed.

そして、ステップS106で、クライアント2は、デバイス中継事前準備を行う。詳しくは、クライアント2は、クライアント用デバイス通信プログラム230がアプリケーション120からローカルデバイス3へのアクセスを中継するように、クライアント用デバイス通信プログラム230を構成する。クライアント用デバイス通信プログラム230は、新たに検出されたローカルデバイス3への入出力要求情報をサーバ用デバイス通信プログラム130から受信するために常駐し、待機する。これにより、クライアント2によるデバイス中継の準備が完了する。   In step S106, the client 2 performs device relay advance preparation. Specifically, the client 2 configures the client device communication program 230 so that the client device communication program 230 relays access from the application 120 to the local device 3. The client device communication program 230 resides and waits in order to receive the newly detected input / output request information for the local device 3 from the server device communication program 130. Thereby, preparation for device relay by the client 2 is completed.

以上、クライアント2の準備動作について説明した。続いて、図4を参照して、サーバ1によるローカルデバイス3の制御動作について説明する。   The preparation operation of the client 2 has been described above. Next, the control operation of the local device 3 by the server 1 will be described with reference to FIG.

(サーバ1によるローカルデバイス3の制御動作)
図4は、第1の実施形態に係るサーバ1の動作を示すフローチャートである。図4では、サーバ1がローカルデバイス3を制御する動作処理を示した。図4で示した各ブロックは、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実行される。各ブロックは、1つまたは複数のプロセッサにより実行されるコンピュータ命令として捉えることも可能である。また、各ブロックは、図4で示した順序とは異なる順序により実行されてもよい。
(Control operation of local device 3 by server 1)
FIG. 4 is a flowchart showing the operation of the server 1 according to the first embodiment. FIG. 4 shows an operation process in which the server 1 controls the local device 3. Each block shown in FIG. 4 is executed by hardware, software, firmware, or a combination thereof. Each block can also be viewed as computer instructions executed by one or more processors. Each block may be executed in an order different from the order shown in FIG.

図4に示すように、まず、ステップS202で、サーバ1は、リモートサービス通信を開始する。詳しくは、リモート・サービス・クライアント・アプリケーション210は、リモート・サービス・サーバ・アプリケーション110に対してリモート接続要求を行い、通信リンクを確立する。この処理は、一般的なターミナルサービス接続の開始と同様の処理として実装されてもよい。   As shown in FIG. 4, first, in step S202, the server 1 starts remote service communication. Specifically, the remote service client application 210 makes a remote connection request to the remote service server application 110 to establish a communication link. This process may be implemented as a process similar to the start of a general terminal service connection.

次いで、ステップS204で、サーバ1は、アプリケーション120を起動する。詳しくは、サーバ1は、上記ステップS202において確立されたリモート接続の通信リンクにおいてアプリケーション120を起動する。   Next, in step S204, the server 1 activates the application 120. Specifically, the server 1 activates the application 120 in the remote connection communication link established in step S202.

次に、ステップS206で、サーバ1は、アプリケーション120からのデバイス通信を確立する。詳しくは、サーバ1上のアプリケーション120は、クライアント2上のローカルデバイス3に入出力要求を発行するために、デバイス制御用のリンクを確立する。具体的には、アプリケーション120は、サーバ用デバイス通信プログラム130が提供するAPIを介し、クライアント用デバイス通信プログラム230との通信を確立する。クライアント用デバイス通信プログラム230は、サーバ用デバイス通信プログラム130からの接続要求を、図3を参照して上記説明した準備処理により待ち受けているため、サーバ1とクライアント2との間でデバイス制御用の通信が確立される。これにより、サーバ1はクライアント2とのデバイス中継通信が開始される。なお、クライアント用デバイス通信プログラム230は、デバイス制御用の通信が確立した際に、ローカルデバイス3を識別するための識別情報をサーバ1に送信する。デバイス中継通信中に新たなローカルデバイス3が接続された場合、クライアント用デバイス通信プログラム230は、その都度新たなローカルデバイス3を識別するための識別情報をサーバ1に送信してもよい。   Next, in step S <b> 206, the server 1 establishes device communication from the application 120. Specifically, the application 120 on the server 1 establishes a device control link in order to issue an input / output request to the local device 3 on the client 2. Specifically, the application 120 establishes communication with the client device communication program 230 via an API provided by the server device communication program 130. The client device communication program 230 waits for a connection request from the server device communication program 130 by the preparation process described above with reference to FIG. Communication is established. Thereby, the server 1 starts device relay communication with the client 2. The client device communication program 230 transmits identification information for identifying the local device 3 to the server 1 when communication for device control is established. When a new local device 3 is connected during device relay communication, the client device communication program 230 may transmit identification information for identifying the new local device 3 to the server 1 each time.

そして、ステップS208で、サーバ1は、アプリケーション120からローカルデバイス3への入出力を制御する。詳しくは、アプリケーション120は、サーバ用デバイス通信プログラム130を介して、入出力要求情報をローカルデバイス3に発行する。サーバ用デバイス通信プログラム130は、アプリケーション120から出力された入出力要求情報を、上記ステップS206において確立されたデバイス制御用の通信によりクライアント用デバイス通信プログラム230に送信する。クライアント用デバイス通信プログラム230は、受信した入出力要求情報を入出力制御情報に変換してデバイスドライバ240に中継し、デバイスドライバ240は、入出力制御情報をローカルデバイス3に中継する。ローカルデバイス3から出力された入出力応答情報は、デバイスドライバ240、クライアント用デバイス通信プログラム230、およびサーバ用デバイス通信プログラム130を介して、アプリケーション120に中継される。これにより、アプリケーション120によるローカルデバイス3の制御が実現される。   In step S208, the server 1 controls input / output from the application 120 to the local device 3. Specifically, the application 120 issues input / output request information to the local device 3 via the server device communication program 130. The server device communication program 130 transmits the input / output request information output from the application 120 to the client device communication program 230 by the device control communication established in step S206. The client device communication program 230 converts the received input / output request information into input / output control information and relays it to the device driver 240, and the device driver 240 relays the input / output control information to the local device 3. The input / output response information output from the local device 3 is relayed to the application 120 via the device driver 240, the client device communication program 230, and the server device communication program 130. Thereby, control of the local device 3 by the application 120 is implement | achieved.

以上、サーバ1によるローカルデバイス3の制御動作について説明した。続いて、図5A、図5Bを参照して、通信システムによる、上記説明した準備動作から制御動作までの一連の処理を説明する。   The control operation of the local device 3 by the server 1 has been described above. Next, a series of processes from the above-described preparation operation to control operation by the communication system will be described with reference to FIGS. 5A and 5B.

(通信システムの制御動作)
図5Aおよび図5Bは、第1の実施形態に係る通信システムの動作を示すシーケンス図である。図5Aおよび図5Bでは、クライアント2にローカルデバイス3が接続されてから、サーバ1がローカルデバイス3を制御するまでの一連の動作処理を示した。図5Aおよび図5Bで示した各ブロックは、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実行される。各ブロックは、1つまたは複数のプロセッサにより実行されるコンピュータ命令として捉えることも可能である。また、各ブロックは、図5Aおよび図5Bで示した順序とは異なる順序により実行されてもよい。
(Control operation of communication system)
5A and 5B are sequence diagrams illustrating the operation of the communication system according to the first embodiment. 5A and 5B show a series of operation processes from when the local device 3 is connected to the client 2 to when the server 1 controls the local device 3. Each block shown in FIGS. 5A and 5B is executed by hardware, software, firmware, or a combination thereof. Each block can also be viewed as computer instructions executed by one or more processors. Each block may be executed in an order different from the order shown in FIGS. 5A and 5B.

図5Aに示すように、まず、ステップS102で、クライアント用デバイス通信プログラム230は、ローカルデバイス3を検出する。次いで、ステップS104で、クライアント用デバイス通信プログラム230は、デバイスドライバ(デバイスドライバ240、カーネルドライバ251、バスドライバ252)をロードする。そして、ステップS106で、クライアント用デバイス通信プログラム230は、デバイス中継事前準備を行う。   As shown in FIG. 5A, first, in step S102, the client device communication program 230 detects the local device 3. Next, in step S104, the client device communication program 230 loads device drivers (device driver 240, kernel driver 251, bus driver 252). In step S106, the client device communication program 230 performs device relay advance preparation.

次いで、ステップS202で、リモート・サービス・クライアント・アプリケーション210は、リモート・サービス・サーバ・アプリケーション110とのリモートサービス通信を開始する。次に、ステップS204で、リモート・サービス・サーバ・アプリケーション110は、アプリケーション120を起動する。   Next, in step S202, the remote service client application 210 starts remote service communication with the remote service server application 110. Next, in step S204, the remote service server application 110 activates the application 120.

次いで、ステップS206−1で、アプリケーション120は、サーバ用デバイス通信プログラム130に、デバイス通信を開始するよう通知する。ステップS206−2で、サーバ用デバイス通信プログラム130は、この通知を受けて、クライアント用デバイス通信プログラム230とのデバイス制御用のリンクを確立して、デバイス中継通信を開始する。このように、アプリケーション120は、サーバ用デバイス通信プログラム130を介して、クライアント用デバイス通信プログラム230で準備されているローカルデバイス3へのアクセスを行う通信リンクを確立する。   Next, in step S206-1, the application 120 notifies the server device communication program 130 to start device communication. In step S206-2, the server device communication program 130 receives this notification, establishes a device control link with the client device communication program 230, and starts device relay communication. As described above, the application 120 establishes a communication link for accessing the local device 3 prepared by the client device communication program 230 via the server device communication program 130.

次いで、ステップS208−1で、アプリケーション120は、サーバ用デバイス通信プログラム130に、入出力要求情報を送信する。次に、ステップS208−2で、サーバ用デバイス通信プログラム130は、クライアント用デバイス通信プログラム230に、上記ステップS208−1で受信した入出力要求情報を中継する。次いで、図5Bに示すように、ステップS208−3で、クライアント用デバイス通信プログラム230は、受信した入出力要求情報を入出力制御情報に変換して、デバイスドライバ240に送信する。そして、ステップS208−4で、デバイスドライバ240は、受信した入出力制御情報に基づいて、ローカルデバイス3をIOCTLにより制御する。   Next, in step S <b> 208-1, the application 120 transmits input / output request information to the server device communication program 130. Next, in step S208-2, the server device communication program 130 relays the input / output request information received in step S208-1 to the client device communication program 230. Next, as illustrated in FIG. 5B, in step S <b> 208-3, the client device communication program 230 converts the received input / output request information into input / output control information and transmits it to the device driver 240. In step S208-4, the device driver 240 controls the local device 3 by IOCTL based on the received input / output control information.

ローカルデバイス3は、上記ステップS208−4において受けたIOCTLに基づき各種処理を行い、その応答(入出力応答情報)を、ステップS208−5でデバイスドライバ240に返信する。次いで、ステップS208−6で、デバイスドライバ240は、上記ステップS208−5で返信された入出力応答情報を、クライアント用デバイス通信プログラム230に送信する。次に、ステップS208−7で、クライアント用デバイス通信プログラム230は、サーバ用デバイス通信プログラム130に、上記ステップS208−6で受信した入出力応答情報を中継する。そして、ステップS208−8で、サーバ用デバイス通信プログラム130は、受信した入出力応答情報を、アプリケーション120に送信する。   The local device 3 performs various processes based on the IOCTL received in step S208-4, and returns a response (input / output response information) to the device driver 240 in step S208-5. Next, in step S208-6, the device driver 240 transmits the input / output response information returned in step S208-5 to the client device communication program 230. Next, in step S208-7, the client device communication program 230 relays the input / output response information received in step S208-6 to the server device communication program 130. In step S208-8, the server device communication program 130 transmits the received input / output response information to the application 120.

以上、クライアント2にローカルデバイス3が接続されてから、サーバ1がローカルデバイス3を制御するまでの一連の動作について説明した。   The series of operations from when the local device 3 is connected to the client 2 to when the server 1 controls the local device 3 has been described.

本実施形態によれば、クライアント2に接続されているローカルデバイス3に、リモート接続先のサーバ1からアクセスすることが可能となる。特に、本実施形態では、仮想デバイスドライバがサーバ1に作成されないため、サーバ1への仮想デバイスドライバの作成又は運用に失敗してしまうローカルデバイス3であっても、サーバ1上のアプリケーション120からアクセス可能となる。   According to the present embodiment, the local device 3 connected to the client 2 can be accessed from the remote connection destination server 1. In particular, in this embodiment, since the virtual device driver is not created in the server 1, even the local device 3 that fails to create or operate the virtual device driver in the server 1 is accessed from the application 120 on the server 1. It becomes possible.

以上、第1の実施形態について説明した。続いて、第2の実施形態について説明する。   The first embodiment has been described above. Next, the second embodiment will be described.

[2−2.第2の実施形態]
本実施形態は、サーバ1に複数のクライアント2が同時にアクセスした場合に、サーバ1が、接続元の各クライアント2を識別して、識別したクライアント2に接続されたローカルデバイス3を制御する形態である。図6を参照して、本実施形態に係る通信システムについて説明する。
[2-2. Second Embodiment]
In the present embodiment, when a plurality of clients 2 access the server 1 at the same time, the server 1 identifies each connection source client 2 and controls the local device 3 connected to the identified client 2. is there. A communication system according to the present embodiment will be described with reference to FIG.

図6は、第2の実施形態に係る通信システムの概要を説明するための図である。図6に示すように、サーバ1に、クライアント2A、2B、2Cといった複数のクライアント2が接続されている。また、クライアント2Aにはローカルデバイス3Aが接続され、クライアント2Bにはローカルデバイス3Bが接続され、クライアント2Cにはローカルデバイス3Cが接続されている。   FIG. 6 is a diagram for explaining the outline of the communication system according to the second embodiment. As shown in FIG. 6, a plurality of clients 2 such as clients 2 </ b> A, 2 </ b> B, and 2 </ b> C are connected to the server 1. The local device 3A is connected to the client 2A, the local device 3B is connected to the client 2B, and the local device 3C is connected to the client 2C.

図6に示すように、リモート・サービス・クライアント・アプリケーション210Aは、リモート・サービス・サーバ・アプリケーション110とリモート接続の通信リンクを確立している。リモート・サービス・サーバ・アプリケーション110は、リモート・サービス・クライアント・アプリケーション210Aとのリモート接続の通信リンクが確立されてから切断されるまでの一連の通信を、セッション140Aとして管理・識別する。また、リモート・サービス・サーバ・アプリケーション110は、クライアント用デバイス通信プログラム230Aとアプリケーション120Aとのサーバ用デバイス通信プログラム130Aを介した通信も、セッション140Aとして管理・識別する。   As shown in FIG. 6, the remote service client application 210 </ b> A has established a communication link for remote connection with the remote service server application 110. The remote service server application 110 manages and identifies a series of communications from the establishment of the remote connection communication link with the remote service client application 210A to the disconnection as the session 140A. The remote service server application 110 also manages and identifies communication between the client device communication program 230A and the application 120A via the server device communication program 130A as the session 140A.

詳しくは、サーバ用デバイス通信プログラム130Aは、リモート接続の接続元であるクライアント2Aを、セッション140Aを管理するリモート・サービス・サーバ・アプリケーション110との通信により識別する。そして、サーバ用デバイス通信プログラム130Aは、識別したクライアント2Aにアプリケーション120Aから中継した入出力要求情報を送信する。また、サーバ用デバイス通信プログラム130Aは、クライアント用デバイス通信プログラム230Aから受信した入出力応答情報を、アプリケーション120Aに送信する。   Specifically, the server device communication program 130A identifies the client 2A that is the connection source of the remote connection by communication with the remote service server application 110 that manages the session 140A. Then, the server device communication program 130A transmits the input / output request information relayed from the application 120A to the identified client 2A. Further, the server device communication program 130A transmits the input / output response information received from the client device communication program 230A to the application 120A.

このように、リモート・サービス・サーバ・アプリケーション110は、クライアント2Aとの通信を、セッション140Aとして管理・識別することで、クライアント2Aとの通信と他のクライアント2との通信とを区別する。クライアント2B、2Cについても同様である。   As described above, the remote service server application 110 manages and identifies the communication with the client 2A as the session 140A, thereby distinguishing the communication with the client 2A from the communication with the other clients 2. The same applies to the clients 2B and 2C.

本実施形態によれば、サーバ1に複数のクライアント2が同時にアクセスした場合であっても、サーバ1は、接続元の各クライアント2を識別して、識別したクライアント2に接続されたローカルデバイス3を制御することができる。   According to the present embodiment, even when a plurality of clients 2 access the server 1 at the same time, the server 1 identifies each connection source client 2 and the local device 3 connected to the identified client 2. Can be controlled.

以上、第2の実施形態について説明した。   The second embodiment has been described above.

[2−3.第3の実施形態]
本実施形態は、サーバ1とクライアント2との間にファイアウォール又はNAT(Network Address Translation)等の中継装置が介在する場合に、サーバ1が、中継装置の利点を生かしながらローカルデバイス3を制御する形態である。図7、図8を参照して、本実施形態に係る通信システムの構成を説明する。図7は、第3の実施形態に係る通信システムの構成を示すブロック図である。図8は、第3の実施形態に係る通信システムの概要を説明するための図である。
[2-3. Third Embodiment]
In the present embodiment, when a relay device such as a firewall or NAT (Network Address Translation) is interposed between the server 1 and the client 2, the server 1 controls the local device 3 while taking advantage of the relay device. It is. The configuration of the communication system according to the present embodiment will be described with reference to FIGS. FIG. 7 is a block diagram illustrating a configuration of a communication system according to the third embodiment. FIG. 8 is a diagram for explaining the outline of the communication system according to the third embodiment.

[2−3−1.中継装置5の構成]
図7に示すように、中継装置5は、ファイアウォールプログラム510、およびNATプログラム520を有する。また、図8に示すように、サーバ1は、複数のクライアント2から中継装置5を経由したアクセスを受けることができる。
[2-3-1. Configuration of Relay Device 5]
As illustrated in FIG. 7, the relay device 5 includes a firewall program 510 and a NAT program 520. Further, as shown in FIG. 8, the server 1 can receive access from a plurality of clients 2 via the relay device 5.

(ファイアウォールプログラム510)
ファイアウォールプログラム510は、サーバ1とクライアント2との通信の安全性を維持するためのプログラムである。例えば、ファイアウォールプログラム510は、送信先のIPアドレス、送信元のIPアドレス、ポート番号などを監視する。そして、ファイアウォールプログラム510は、例えば通過すべき送信先および送信元のIPアドレスおよびポート番号の組み合わせの設定に基づいて、パケットを通過させたり遮断したりする。
(Firewall program 510)
The firewall program 510 is a program for maintaining the safety of communication between the server 1 and the client 2. For example, the firewall program 510 monitors a destination IP address, a source IP address, a port number, and the like. Then, the firewall program 510 passes or blocks the packet based on, for example, the setting of the destination to be passed through and the combination of the IP address and port number of the sender.

(NATプログラム520)
NATプログラム520は、パケットヘッダに含まれるIPアドレスを、別のIPアドレスに変換するプログラムである。NATプログラム520は、NAT(Network Address Translation)を行ってもよいし、NAPT(Network Address Port Translation)を行ってもよい。
(NAT program 520)
The NAT program 520 is a program for converting an IP address included in the packet header into another IP address. The NAT program 520 may perform NAT (Network Address Translation) or NAPT (Network Address Port Translation).

[2−3−2.サーバ1の構成]
図7に示すように、本実施形態に係るサーバ1は、図2を参照して上記説明した第1の実施例に係るサーバ1の要素に加えて、デバイス通信管理プログラム132、および接続情報DB(Data Base)134を有する。
[2-3-2. Configuration of server 1]
As shown in FIG. 7, the server 1 according to the present embodiment includes a device communication management program 132 and a connection information DB in addition to the elements of the server 1 according to the first example described above with reference to FIG. (Data Base) 134.

(接続情報DB134)
接続情報DB134は、デバイス通信管理プログラム132がローカルデバイス3との通信を行うための接続情報を記憶する記憶部としての機能を有する。接続情報の一例を、下記の表1に示す。表1に示すように、接続情報は、クライアント2の識別情報である「クライアント名」、ローカルデバイス3を識別情報である「デバイス種別」および「デバイスID」、および通信チャネル情報である「通信チャネルID」を含む。「デバイス種別」は、ローカルデバイス3の種別を示す情報であり、アプリケーション120がローカルデバイス3を制御して実行可能なAPIを特定するための情報である。「デバイスID」は、「デバイス種別」が同一のローカルデバイス3を相互に識別するための識別情報である。なお、実行可能なAPIが特定可能であり、且つ、アプリケーション120が制御するローカルデバイス3が特定可能であれば、ローカルデバイス3を識別するための情報は、「デバイス種別」および「デバイスID」に分かれていなくても良い。「通信チャネルID」は、ローカルデバイス3と通信するための通信チャネル(ソケット)を識別するためのファイルディスクリプタ(識別子)である。なお、接続情報DB134は、データベースとしてではなく、メモリ上に記憶されてもよい。
(Connection information DB 134)
The connection information DB 134 has a function as a storage unit that stores connection information for the device communication management program 132 to communicate with the local device 3. An example of connection information is shown in Table 1 below. As shown in Table 1, the connection information includes “client name” that is identification information of the client 2, “device type” and “device ID” that are identification information of the local device 3, and “communication channel” that is communication channel information. ID ”. The “device type” is information indicating the type of the local device 3, and is information for specifying an API that can be executed by the application 120 controlling the local device 3. “Device ID” is identification information for mutually identifying local devices 3 having the same “device type”. If the executable API can be specified and the local device 3 controlled by the application 120 can be specified, the information for identifying the local device 3 is “device type” and “device ID”. It does not have to be divided. The “communication channel ID” is a file descriptor (identifier) for identifying a communication channel (socket) for communicating with the local device 3. The connection information DB 134 may be stored on a memory instead of as a database.

Figure 0006281369
Figure 0006281369

(デバイス通信管理プログラム132)
デバイス通信管理プログラム132は、クライアント用デバイス通信プログラム230との間で通信を確立して、クライアント用デバイス通信プログラム230とサーバ用デバイス通信プログラム130との間の通信を中継する機能を有する通信管理プログラムである。デバイス通信管理プログラム132は、リモートサービス通信が開始された後、クライアント用デバイス通信プログラム230からの接続要求を待って、サーバ用デバイス通信プログラム130とクライアント用デバイス通信プログラム230との通信を中継し、中継装置5を経由したデバイス中継通信を実現する。
(Device communication management program 132)
The device communication management program 132 has a function of establishing communication with the client device communication program 230 and relaying communication between the client device communication program 230 and the server device communication program 130. It is. After the remote service communication is started, the device communication management program 132 waits for a connection request from the client device communication program 230, relays communication between the server device communication program 130 and the client device communication program 230, Device relay communication via the relay device 5 is realized.

詳しくは、まず、デバイス通信管理プログラム132は、クライアント用デバイス通信プログラム230からの接続要求に応じてクライアント用デバイス通信プログラム230との通信を確立する。ここで、例えばサーバ1からクライアント2に接続要求を送信する場合、ファイアウォールプログラム510において、全てのクライアント2への接続を許可するポートを設けることが要され、セキュリティの低下が懸念される。そこで、本実施形態に係るデバイス通信管理プログラム132は、クライアント用デバイス通信プログラム230からの接続要求に応じて、デバイス制御用の通信を確立する。このため、ファイアウォールプログラム510では、サーバ1への接続要求を許可するポートをひとつ設ければよく、セキュリティの低下を抑止することが可能である。   Specifically, first, the device communication management program 132 establishes communication with the client device communication program 230 in response to a connection request from the client device communication program 230. Here, for example, when a connection request is transmitted from the server 1 to the client 2, it is necessary to provide a port permitting connection to all the clients 2 in the firewall program 510, and there is a concern about a decrease in security. Therefore, the device communication management program 132 according to the present embodiment establishes device control communication in response to a connection request from the client device communication program 230. For this reason, in the firewall program 510, it is sufficient to provide one port that permits a connection request to the server 1, and it is possible to suppress a decrease in security.

ここで、デバイス通信管理プログラム132は、クライアント用デバイス通信プログラム230との通信を確立すると、クライアント用デバイス通信プログラム230からローカルデバイス3にアクセスするための接続情報を受信する。そして、接続情報DB134は、デバイス通信管理プログラム132による通信の中継が行われている間、この接続情報を記憶する。通信が切断された場合、接続情報DB134は、切断された通信に関する接続情報を削除してもよい。他にも、接続/切断状態を示す接続フラグにより、接続情報に対応付けて接続/切断状態が一定期間キャッシュに記憶されてもよい。また、接続情報DB134は、全てのクライアント2の接続情報を接続フラグに対応付けて記憶しておき、デバイス通信管理プログラム132は、フラグを参照して通信が確立しているか否かを判定してもよい。   Here, when communication with the client device communication program 230 is established, the device communication management program 132 receives connection information for accessing the local device 3 from the client device communication program 230. The connection information DB 134 stores this connection information while the device communication management program 132 relays communication. When the communication is disconnected, the connection information DB 134 may delete the connection information regarding the disconnected communication. In addition, the connection / disconnection state may be stored in the cache for a certain period of time in association with the connection information by the connection flag indicating the connection / disconnection state. The connection information DB 134 stores connection information of all clients 2 in association with connection flags, and the device communication management program 132 determines whether communication is established with reference to the flags. Also good.

そして、デバイス通信管理プログラム132は、接続情報DB134に記憶された接続情報を用いて、サーバ用デバイス通信プログラム130とクライアント用デバイス通信プログラム230との通信を中継する。詳しくは、まず、デバイス通信管理プログラム132は、アプリケーション120がローカルデバイス3を制御する際に、制御する対象のローカルデバイス3に対応する接続情報を接続情報DB134から検索する。ここで、IPアドレスによってクライアントを識別する上記特許文献3を参考に、クライアント2のIPアドレスおよびポート番号を検索キーとして、制御対象のローカルデバイス3が接続されたクライアント2の接続情報を検索することが考えられる。しかし、NATプログラム520によりIPアドレスが1対多で変換された場合、IPアドレスおよびポート番号ではクライアント2を特定することが困難となる。そこで、デバイス通信管理プログラム132は、接続先のクライアント2のクライアント名を検索キーとして接続情報DB134から接続情報を検索する。検索キーが接続先のクライアント2のクライアント名であるため、NATプログラム520によりIPアドレスが1対多で変換される場合であっても、制御対象のローカルデバイス3が接続されたクライアント2の接続情報を特定することが可能となる。検索後、デバイス通信管理プログラム132は、検索した接続情報(接続状態のもの)に含まれる通信チャネルIDが示す通信チャネルを使用して、クライアント用デバイス通信プログラム230との通信を行う。   The device communication management program 132 relays communication between the server device communication program 130 and the client device communication program 230 using the connection information stored in the connection information DB 134. Specifically, first, when the application 120 controls the local device 3, the device communication management program 132 searches the connection information DB 134 for connection information corresponding to the local device 3 to be controlled. Here, referring to the above-mentioned Patent Document 3 for identifying a client by IP address, the connection information of the client 2 to which the local device 3 to be controlled is connected is searched using the IP address and port number of the client 2 as a search key. Can be considered. However, when the NAT address is converted by the NAT program 520 in a one-to-many manner, it is difficult to specify the client 2 with the IP address and the port number. Therefore, the device communication management program 132 searches for connection information from the connection information DB 134 using the client name of the connection destination client 2 as a search key. Since the search key is the client name of the connection destination client 2, even when the NAT address is converted by the NAT program 520 in a one-to-many manner, the connection information of the client 2 to which the local device 3 to be controlled is connected Can be specified. After the search, the device communication management program 132 communicates with the client device communication program 230 using the communication channel indicated by the communication channel ID included in the searched connection information (in the connection state).

以上、本実施形態に係る通信システムの構成を説明した。続いて、図9〜図11を参照して、本実施形態に係る通信システムによる動作処理の流れを説明する。   The configuration of the communication system according to the present embodiment has been described above. Subsequently, a flow of operation processing by the communication system according to the present embodiment will be described with reference to FIGS.

[2−3−3.動作処理]
図9〜図11は、第3の実施形態に係る通信システムの動作を示すシーケンス図である。図9に示すように、まず、ステップS102で、クライアント用デバイス通信プログラム230は、デバイス中継事前準備を行う。ここでの処理は、図5Aを参照して上記説明したステップS102〜S106における処理と同様である。なお、クライアント用デバイス通信プログラム230は、常駐型のサービスプロセスである。
[2-3-3. Operation processing]
9 to 11 are sequence diagrams showing the operation of the communication system according to the third embodiment. As shown in FIG. 9, first, in step S102, the client device communication program 230 performs device relay advance preparation. The processing here is the same as the processing in steps S102 to S106 described above with reference to FIG. 5A. The client device communication program 230 is a resident service process.

次いで、ステップS304−1、S304−2で、クライアント用デバイス通信プログラム230は、リモートサービス通信が行われているか否かをポーリングする。このポーリングは、リモートサービス通信が開始されたことが検出されるまで繰り返される。なお、符号S304の末尾の数字は、ポーリングの回数を指すものとする。   Next, in steps S304-1 and S304-2, the client device communication program 230 polls whether remote service communication is being performed. This polling is repeated until it is detected that remote service communication has started. Note that the number at the end of S304 indicates the number of times of polling.

次に、ステップS306で、リモート・サービス・クライアント・アプリケーション210は、リモートサービス通信を開始する。例えば、ユーザによる指示、又は自動的な起動設定等により、リモートサービス通信は開始され得る。なお、中継装置5は、クライアント2からサーバ1へのリモートサービス通信用のポートを開放しており、このリモートサービス通信は中継装置5を通過する。   Next, in step S306, the remote service client application 210 starts remote service communication. For example, the remote service communication can be started by an instruction from the user, an automatic activation setting, or the like. Note that the relay device 5 opens a port for remote service communication from the client 2 to the server 1, and this remote service communication passes through the relay device 5.

次いで、ステップS308で、リモート・サービス・サーバ・アプリケーション110は、アプリケーション120を起動する。詳しくは、リモート・サービス・サーバ・アプリケーション110は、上記ステップS306において確立されたリモート接続の通信リンクにおいて、ログイン処理が実行された後にアプリケーション120を起動する。   Next, in step S308, the remote service server application 110 activates the application 120. Specifically, the remote service server application 110 activates the application 120 after the login process is executed in the remote connection communication link established in step S306.

次に、ステップS310で、アプリケーション120は、デバイス通信をオープンする。詳しくは、アプリケーション120は、サーバ用デバイス通信プログラム130に、デバイス制御用のリンクを確立するためのオープン命令を呼び出す。   Next, in step S310, the application 120 opens device communication. Specifically, the application 120 calls an open command for establishing a device control link to the server device communication program 130.

次いで、ステップS312−1で、サーバ用デバイス通信プログラム130は、デバイス中継通信をオープンする。詳しくは、まず、サーバ用デバイス通信プログラム130は、環境変数又はレジストリを参照してリモート接続を行っているクライアント2の情報を取得する。そして、サーバ用デバイス通信プログラム130は、取得した接続先のクライアント情報に基づいて、デバイス通信管理プログラム132に対してデバイス中継通信のオープンをリクエストする。   Next, in step S312-1, the server device communication program 130 opens device relay communication. Specifically, first, the server device communication program 130 acquires information of the client 2 that is performing remote connection with reference to an environment variable or a registry. Then, the server device communication program 130 requests the device communication management program 132 to open device relay communication based on the acquired connection destination client information.

次に、ステップS314−1で、デバイス通信管理プログラム132は、接続情報DB134から使用可能な通信チャネルを検索する。詳しくは、デバイス通信管理プログラム132は、接続情報DB134から、接続先のクライアント2とのデバイス制御用の通信チャネルを検索する。クライアント2とのデバイス制御用の通信が確立している場合、後述のステップS322における処理において、指定されたクライアント2および制御対象のローカルデバイス3に関する上記表1に示した接続情報が接続情報DB134に登録される。このため、クライアント2とのデバイス制御用の通信が確立している場合には、デバイス通信管理プログラム132による通信チャネルの検索が成功する。   Next, in step S <b> 314-1, the device communication management program 132 searches for an available communication channel from the connection information DB 134. Specifically, the device communication management program 132 searches the connection information DB 134 for a communication channel for device control with the connection destination client 2. When communication for device control with the client 2 has been established, the connection information shown in Table 1 regarding the specified client 2 and the local device 3 to be controlled is stored in the connection information DB 134 in the process in step S322 described later. be registered. Therefore, when the device control communication with the client 2 is established, the communication channel search by the device communication management program 132 is successful.

通信チャネルの検索に失敗した場合、ステップS316−1で、デバイス通信管理プログラム132は、オープンに失敗した旨を示すオープンNG回答をサーバ用デバイス通信プログラム130に応答する。サーバ1は、上記ステップS312−1〜S316−1の処理を、タイムアウトするまで定期的にポーリングする。ポーリングを行うのは、サーバ用デバイス通信プログラム130でもよいし、デバイス通信管理プログラム132でもよい。なお、符号S312−1、314−1、316−1の末尾の数字は、ポーリングの回数を指すものとする。   If the communication channel search fails, in step S316-1, the device communication management program 132 responds to the server device communication program 130 with an open NG response indicating that the opening has failed. The server 1 periodically polls the processes in steps S312-1 to S316-1 until a timeout occurs. Polling may be performed by the server device communication program 130 or the device communication management program 132. The numbers at the end of the codes S312-1, 314-1, and 316-1 indicate the number of times of polling.

図10に示すように、ステップS304−Nのポーリングにおいて、リモートサービス通信中であることが確認された場合、ステップS318で、クライアント用デバイス通信プログラム230は、デバイス中継通信をオープンする。詳しくは、クライアント用デバイス通信プログラム230は、リモートサービス通信の接続先のサーバ1に対して、デバイス中継通信のオープンをリクエストする。これにより、クライアント2からサーバ1への通信チャネルが形成され、デバイス制御用の通信が確立される。なお、中継装置5は、クライアント2からサーバ1へのデバイス制御用の通信のためのポートを開放しており、この通信チャネルは中継装置5を通過する。なお、中継装置5が存在しない場合には、上記第1、第2の実施形態と同様に、サーバ1がクライアント2へのデバイス制御用の通信を確立してもよい。   As shown in FIG. 10, when it is confirmed that the remote service communication is being performed in the polling of step S304-N, the client device communication program 230 opens the device relay communication in step S318. Specifically, the client device communication program 230 requests the server 1 to which remote service communication is connected to open device relay communication. Thereby, a communication channel from the client 2 to the server 1 is formed, and communication for device control is established. The relay device 5 opens a port for device control communication from the client 2 to the server 1, and this communication channel passes through the relay device 5. When the relay device 5 does not exist, the server 1 may establish device control communication to the client 2 as in the first and second embodiments.

次いで、ステップS320で、クライアント用デバイス通信プログラム230は、デバイス通信管理プログラム132に初期データ送信する。例えば、クライアント用デバイス通信プログラム230は、接続しているローカルデバイス3ごとにデバイス種別、デバイスIDをペアとしたリストを、ステップS318において確立されたデバイス制御用の通信チャネルを用いて送信する。   In step S320, the client device communication program 230 transmits initial data to the device communication management program 132. For example, the client device communication program 230 transmits a list in which the device type and the device ID are paired for each connected local device 3 using the communication channel for device control established in step S318.

次に、ステップS322で、デバイス通信管理プログラム132は、受信した初期データを、接続情報として接続情報DB134に登録する。このとき、デバイス通信管理プログラム132は、IPアドレスではなくクライアント名を受信した初期データに対応付けて登録する。これにより、1対1のIPアドレス変換に加え、1対多のIPアドレス変換にも対応した、通信チャネルとクライアント2との紐付けが可能となる。なお、接続情報DB134に以前のデータが記憶されている場合、デバイス通信管理プログラム132は、新たに受信した初期データにより接続情報を更新してもよい。   Next, in step S322, the device communication management program 132 registers the received initial data in the connection information DB 134 as connection information. At this time, the device communication management program 132 registers not the IP address but the client name in association with the received initial data. As a result, in addition to the one-to-one IP address conversion, the communication channel and the client 2 can be associated with one-to-many IP address conversion. When previous data is stored in the connection information DB 134, the device communication management program 132 may update the connection information with newly received initial data.

S314−Nにおけるデバイス中継通信のオープンに係るポーリングにおいて、通信チャネルの検索に成功すると、デバイス通信管理プログラム132は、オープンに成功した旨を示すオープンOK回答をサーバ用デバイス通信プログラム130に応答する。   In the polling related to the opening of the device relay communication in S314-N, when the communication channel search is successful, the device communication management program 132 responds to the server device communication program 130 with an open OK response indicating that the opening was successful.

そして、ステップS324で、サーバ用デバイス通信プログラム130は、オープンOK回答の受信に応じて、デバイス通信のオープンが完了した旨を、アプリケーション120に通知する。   In step S324, the server device communication program 130 notifies the application 120 that the device communication has been opened in response to the reception of the open OK response.

以上説明した処理により、デバイス中継通信が開始され、アプリケーション120は、クライアント2に接続されているローカルデバイス3を制御することが可能となる。以下、図11を参照して、上記説明した処理により形成された通信チャネルを用いたデバイス制御処理の流れを説明する。   With the processing described above, device relay communication is started, and the application 120 can control the local device 3 connected to the client 2. Hereinafter, with reference to FIG. 11, the flow of device control processing using the communication channel formed by the above-described processing will be described.

図11に示すように、まず、ステップS402で、アプリケーション120は、入出力要求情報を、サーバ用デバイス通信プログラム130に送信する。   As shown in FIG. 11, first, in step S <b> 402, the application 120 transmits input / output request information to the server device communication program 130.

次いで、ステップS404で、サーバ用デバイス通信プログラム130は、受信した入出力要求情報を、デバイス通信管理プログラム132に中継する。   Next, in step S <b> 404, the server device communication program 130 relays the received input / output request information to the device communication management program 132.

次に、ステップS406で、デバイス通信管理プログラム132は、入出力要求情報を送信するために用いるべき通信チャネルを検索する。詳しくは、デバイス通信管理プログラム132は、リモート接続先のクライアント2のクライアント名を検索キーとして、接続情報DB134から通信チャネルIDを検索する。   Next, in step S406, the device communication management program 132 searches for a communication channel to be used for transmitting input / output request information. Specifically, the device communication management program 132 searches for a communication channel ID from the connection information DB 134 using the client name of the remote connection destination client 2 as a search key.

そして、ステップS408で、デバイス通信管理プログラム132は、入出力要求情報を、リモート接続先のクライアント2に中継する。詳しくは、デバイス通信管理プログラム132は、上記ステップS406で検索した通信チャネルIDに対応する通信チャネルを用いて、入出力要求情報を送信する。   In step S408, the device communication management program 132 relays the input / output request information to the remote connection destination client 2. Specifically, the device communication management program 132 transmits the input / output request information using the communication channel corresponding to the communication channel ID searched in step S406.

次いで、ステップS410で、クライアント用デバイス通信プログラム230は、デバイスドライバ240を介して、ローカルデバイス3をIOCTLにより制御する。   Next, in step S <b> 410, the client device communication program 230 controls the local device 3 using the IOCTL via the device driver 240.

次に、ステップS412で、ローカルデバイス3は、上記ステップS410において受けたIOCTLに基づき各種処理を行い、その応答(入出力応答情報)をクライアント用デバイス通信プログラム230に返信する。   Next, in step S412, the local device 3 performs various processes based on the IOCTL received in step S410, and returns a response (input / output response information) to the client device communication program 230.

次いで、ステップS414で、クライアント用デバイス通信プログラム230は、返信された入出力応答情報を、サーバ1に送信する。   Next, in step S 414, the client device communication program 230 transmits the returned input / output response information to the server 1.

次に、ステップS416で、デバイス通信管理プログラム132は、受信した入出力応答情報を、サーバ用デバイス通信プログラム130に中継する。   Next, in step S416, the device communication management program 132 relays the received input / output response information to the server device communication program 130.

そして、ステップS418で、サーバ用デバイス通信プログラム130は、受信した入出力応答情報を、アプリケーション120に中継する。   In step S418, the server device communication program 130 relays the received input / output response information to the application 120.

以上、本実施形態に係る通信システムによる動作処理の流れを説明した。本実施形態に係るサーバ1は、クライアント2からの接続要求に応じてデバイス制御用の通信を確立するため、ファイアウォールプログラム510では、サーバ1への接続要求を許可するポートをひとつ設ければよく、セキュリティの低下を抑止される。また、サーバ1は、デバイス制御用の通信をクライアント名で管理するため、NATプログラム520によりIPアドレスが1対多で変換される場合であっても、制御対象のローカルデバイス3に対応する通信チャネルを特定することができる。   The flow of operation processing by the communication system according to the present embodiment has been described above. Since the server 1 according to the present embodiment establishes communication for device control in response to a connection request from the client 2, the firewall program 510 only needs to provide one port that permits a connection request to the server 1, Security degradation is suppressed. Further, since the server 1 manages communication for device control by the client name, even when the NAT program 520 converts the IP address one-to-many, the communication channel corresponding to the local device 3 to be controlled Can be specified.

<3.まとめ>
以上説明したように、本発明の一実施形態に係る通信システムは、仮想デバイスドライバを用いることなくリモートアクセス環境を実現することが可能である。具体的には、本実施形態に係るサーバ1は、サーバ用デバイス通信プログラム130とクライアント用デバイス通信プログラム230との通信を介して、クライアント2に接続されたローカルデバイス3を制御する。これにより、サーバ1で仮想デバイスドライバが動作することがなく、クライアント2内でのみデバイスドライバが動作するため、ネットワーク4の遅延等によるIOCTLのタイムアウトエラー等の発生を回避することができる。また、デバイスドライバは、クライアント2でのみ用いられ、サーバ1で用いられることがないため、サーバ1のOSがデバイスメーカーのサポート外であっても、リモートアクセス環境を実現することができる。
<3. Summary>
As described above, the communication system according to an embodiment of the present invention can realize a remote access environment without using a virtual device driver. Specifically, the server 1 according to the present embodiment controls the local device 3 connected to the client 2 through communication between the server device communication program 130 and the client device communication program 230. As a result, the virtual device driver does not operate in the server 1 and the device driver operates only in the client 2. Therefore, it is possible to avoid occurrence of an IOCTL timeout error due to a delay of the network 4 or the like. Further, since the device driver is used only by the client 2 and is not used by the server 1, a remote access environment can be realized even if the OS of the server 1 is not supported by the device manufacturer.

以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。   The preferred embodiments of the present invention have been described in detail above with reference to the accompanying drawings, but the present invention is not limited to such examples. It is obvious that a person having ordinary knowledge in the technical field to which the present invention pertains can come up with various changes or modifications within the scope of the technical idea described in the claims. Of course, it is understood that these also belong to the technical scope of the present invention.

例えば、本開示の第1の実施形態および第2の実施形態は適宜組み合わせることが可能である。   For example, the first embodiment and the second embodiment of the present disclosure can be appropriately combined.

また、情報処理装置に内蔵されるCPU、ROM及びRAM等のハードウェアに、上記サーバ1またはクライアント2の各構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、当該コンピュータプログラムを記録した記録媒体も提供される。   Further, it is possible to create a computer program for causing hardware such as a CPU, a ROM, and a RAM built in the information processing apparatus to perform functions equivalent to the configurations of the server 1 or the client 2. A recording medium recording the computer program is also provided.

1 サーバ
101 プロセッサ
102 メモリ
110 リモート・サービス・サーバ・アプリケーション
120 アプリケーション
130 サーバ用デバイス通信プログラム
132 デバイス通信管理プログラム
134 接続情報DB
140 セッション
2 クライアント
201 プロセッサ
202 メモリ
210 リモート・サービス・クライアント・アプリケーション
230 クライアント用デバイス通信プログラム
240 デバイスドライバ
251 カーネルドライバ
252 バスドライバ
253 ホストコントローラドライバ
254 ホストコントローラ
3 ローカルデバイス
4 ネットワーク
5 中継装置
510 ファイアウォールプログラム
520 NATプログラム
DESCRIPTION OF SYMBOLS 1 Server 101 Processor 102 Memory 110 Remote service server application 120 Application 130 Device communication program for server 132 Device communication management program 134 Connection information DB
140 Session 2 Client 201 Processor 202 Memory 210 Remote service client application 230 Device communication program for client 240 Device driver 251 Kernel driver 252 Bus driver 253 Host controller driver 254 Host controller 3 Local device 4 Network 5 Relay device 510 Firewall program 520 NAT program

Claims (10)

クライアント装置と前記クライアント装置の仮想化されたデスクトップ環境として機能するサーバ装置とを含む通信システムであって、
前記サーバ装置は、
アプリケーションの要求に応じて、前記クライアント装置に接続された外部装置への、前記外部装置を示す識別情報及び前記外部装置に係る第1の入出力制御情報を含む命令情報を前記クライアント装置に送信する第1の通信プログラムを有し、
前記クライアント装置は、
デバイスドライバと、
前記サーバ装置から前記命令情報を受信し、受信された前記命令情報を前記クライアント装置における第2の入出力制御情報に変換して前記外部装置に対応する前記デバイスドライバに中継する第2の通信プログラムと、
を有する、通信システム。
A communication system including a client device and a server device functioning as a virtual desktop environment of the client device,
The server device
Depending on the application requirements, sending the to the connected external device to the client device, the instruction information including the first input-output control information according to the identification information and the external device indicates the external device, to the client device Having a first communication program
The client device is
A device driver,
A second communication program that receives the command information from the server device, converts the received command information into second input / output control information in the client device, and relays it to the device driver corresponding to the external device When,
A communication system.
前記第2の通信プログラムは、前記クライアント装置に接続された前記外部装置を識別し、識別した前記外部装置を示す識別情報を前記サーバ装置に送信する、請求項1に記載の通信システム。   The communication system according to claim 1, wherein the second communication program identifies the external device connected to the client device, and transmits identification information indicating the identified external device to the server device. 前記第2の通信プログラムは、前記識別情報が示す前記外部装置に対応する前記デバイスドライバに前記第2の入出力制御情報を中継する、請求項2に記載の通信システム。 The communication system according to claim 2, wherein the second communication program relays the second input / output control information to the device driver corresponding to the external device indicated by the identification information. 前記第1の通信プログラムは、前記仮想化されたデスクトップ環境の接続元である前記クライアント装置を識別し、識別した前記クライアント装置に前記命令情報を送信する、請求項1〜3のいずれか一項に記載の通信システム。   The first communication program identifies the client device that is a connection source of the virtualized desktop environment, and transmits the command information to the identified client device. The communication system according to 1. 前記第2の通信プログラムは、前記第2の入出力制御情報に基づき前記外部装置から出力された出力情報を前記サーバ装置に送信し、
前記第1の通信プログラムは、前記クライアント装置から受信された前記出力情報を前記アプリケーションに中継する、請求項1〜4のいずれか一項に記載の通信システム。
The second communication program transmits output information output from the external device to the server device based on the second input / output control information,
The communication system according to any one of claims 1 to 4, wherein the first communication program relays the output information received from the client device to the application.
前記第2の入出力制御情報は、IOCTL(I/O Control)である、請求項1〜5のいずれか一項に記載の通信システム。 The communication system according to claim 1, wherein the second input / output control information is IOCTL (I / O Control). 前記サーバ装置は、
前記第2の通信プログラムとの間で通信を確立して前記第2の通信プログラムと前記第1の通信プログラムとの間の通信を中継する通信管理プログラムと、
前記外部装置との通信を行うための接続情報を記憶する記憶部と、
をさらに備え、
前記通信管理プログラムは、前記第2の通信プログラムからの接続要求に応じて前記第2の通信プログラムとの通信を確立し、前記記憶部に記憶された前記接続情報を用いて前記第1の通信プログラムと前記第2の通信プログラムとの通信を中継する、請求項1〜6のいずれか一項に記載の通信システム。
The server device
And a communication management program that relays communication between said established communication with pre-Symbol second communication program with the second communication program first communication program,
A storage unit for storing connection information for communicating with the external device;
Further comprising
The communication management program establishes communication with the second communication program in response to a connection request from the second communication program, and uses the connection information stored in the storage unit to perform the first communication. The communication system according to any one of claims 1 to 6, wherein communication between the program and the second communication program is relayed.
前記接続情報は、前記クライアント装置の識別情報、前記外部装置の識別情報、および通信チャネル情報を含む、請求項7に記載の通信システム。   The communication system according to claim 7, wherein the connection information includes identification information of the client device, identification information of the external device, and communication channel information. 前記通信管理プログラムは、前記クライアント装置の識別情報を検索キーとして前記記憶部から前記接続情報を検索する、請求項8に記載の通信システム。   The communication system according to claim 8, wherein the communication management program searches for the connection information from the storage unit using the identification information of the client device as a search key. クライアント装置と前記クライアント装置の仮想化されたデスクトップ環境として機能するサーバ装置のアプリケーションとの通信を制御する通信プログラムであって、
第1の前記通信プログラムは、前記サーバ装置に含まれ、前記アプリケーションの要求に応じて、前記クライアント装置に接続された外部装置への、前記外部装置を示す識別情報及び前記外部装置に係る第1の入出力制御情報を含む命令情報を前記クライアント装置に送信し、
第2の前記通信プログラムは、前記クライアント装置に含まれ、前記サーバ装置から前記命令情報を受信し、受信された前記命令情報を前記クライアント装置における第2の入出力制御情報に変換して前記外部装置に対応するデバイスドライバに中継する、通信プログラム。
A communication program for controlling communication between a client device and an application of a server device functioning as a virtual desktop environment of the client device,
The first communication program is included in the server device, and in response to a request from the application , identification information indicating the external device to the external device connected to the client device and the first related to the external device instruction information for including output control information, and transmitted to the client device,
The second communication program is included in the client device, receives the command information from the server device, converts the received command information into second input / output control information in the client device, and converts the external information to the external device A communication program that relays to the device driver corresponding to the device.
JP2014067744A 2013-11-12 2014-03-28 Communication system and communication program Active JP6281369B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014067744A JP6281369B2 (en) 2013-11-12 2014-03-28 Communication system and communication program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013233876 2013-11-12
JP2013233876 2013-11-12
JP2014067744A JP6281369B2 (en) 2013-11-12 2014-03-28 Communication system and communication program

Publications (2)

Publication Number Publication Date
JP2015118684A JP2015118684A (en) 2015-06-25
JP6281369B2 true JP6281369B2 (en) 2018-02-21

Family

ID=53531307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014067744A Active JP6281369B2 (en) 2013-11-12 2014-03-28 Communication system and communication program

Country Status (1)

Country Link
JP (1) JP6281369B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7371784B2 (en) * 2020-07-13 2023-10-31 日本電信電話株式会社 Communication relay device, communication relay system, communication relay method, and program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8918530B2 (en) * 2005-09-09 2014-12-23 Microsoft Corporation Plug and play device redirection for remote systems
JP5166307B2 (en) * 2009-01-30 2013-03-21 株式会社立花エレテック Connection device utilization system and method

Also Published As

Publication number Publication date
JP2015118684A (en) 2015-06-25

Similar Documents

Publication Publication Date Title
JP5885834B2 (en) Method and apparatus for remotely delivering a managed USB service via a mobile computing device
CN105122931B (en) Electronic equipment and the method that personal cloud device is registered in its portal user server
US10148852B2 (en) Image processing system, control apparatus, image processing apparatus, and methods of controlling these
US20130346591A1 (en) Clientless Cloud Computing
US20090240785A1 (en) Information Processing Unit, Information Playback Unit, Information Processing Method, Information Playback Method, Information Processing System and Program
KR20130018708A (en) System and method for two way communication and controlling content in a web browser
JP5307276B2 (en) USB device remote control method and system for executing the same
TW200523741A (en) Simple and dynamic configuration of network devices
JP2008210115A (en) System for operating usb device of local terminal on remote computer, method therefor and program therefor
US20130201519A1 (en) Bridging Non-Network Interfaces and Network Interfaces
CN108206842B (en) Cloud desktop remote access method and system
TW201347475A (en) Memory device and wireless communication control method of the same
CN109309967A (en) Method, device and computer-readable storage medium for transferring files
CN105912952B (en) A kind of registration list service system, method and financial self-service equipment based on Linux
US11079983B2 (en) Information processing apparatus that saves, in a shared memory, information for accessing a device using a URL via a USB, and method of controlling same
US10367894B2 (en) Information processing apparatus, method for controlling the same, non-transitory computer-readable storage medium, and information processing system
US20170311224A1 (en) Method and apparatus for implementing network sharing
EP3748492B1 (en) Downloading and launching an app on a second device from a first device
JP6281369B2 (en) Communication system and communication program
JP6086183B2 (en) Information processing system, information processing method, server, control method thereof, and control program
JP2009098977A (en) Peripheral device connection system
JP4649584B2 (en) Peripheral device driver installation system
US11528762B2 (en) Information processing apparatus and control method of the same
US20190014011A1 (en) Information processing device and method for setting the environment of the device
JP6539497B2 (en) Communication relay system, device accommodation terminal, server side computer, program, and communication relay method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170822

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171020

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180108

R150 Certificate of patent or registration of utility model

Ref document number: 6281369

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150