KR101945840B1 - Server device connecting usb device, client device connecting server device, device driving method and device sharing method - Google Patents
Server device connecting usb device, client device connecting server device, device driving method and device sharing method Download PDFInfo
- Publication number
- KR101945840B1 KR101945840B1 KR1020110147706A KR20110147706A KR101945840B1 KR 101945840 B1 KR101945840 B1 KR 101945840B1 KR 1020110147706 A KR1020110147706 A KR 1020110147706A KR 20110147706 A KR20110147706 A KR 20110147706A KR 101945840 B1 KR101945840 B1 KR 101945840B1
- Authority
- KR
- South Korea
- Prior art keywords
- usb
- driver
- client
- client device
- server
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5038—Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Abstract
본 발명은 USB 디바이스가 연결되는 서버 디바이스, 서버 디바이스에 연결되는 클라이언트 디바이스, 디바이스 구동방법 및 디바이스 공유방법에 관한 것이다. 본 발명에 따른 네트워크를 통하여 클라이언트 디바이스와 연결되는 서버 디바이스는 USB 디바이스가 연결되는 USB 연결부와; 상기 USB 디바이스를 상기 클라이언트 디바이스와 공유하기 위한 USB over IP 드라이버와; 상기 USB 디바이스가 상기 클라이언트 디바이스에 연결되도록 상기 USB over IP를 제어하고, 상기 클라이언트 디바이스에 포함되어 있는 리소스를 이용하여 상기 USB 디바이스를 구동하는 가상 드라이버 모듈을 갖는 USB 디바이스 전용(redirection) 관리부를 포함한다. 이에 의해 USB 디바이스의 드라이버가 없는 상황에서도 USB 디바이스를 구동시킬 수 있는 USB 디바이스가 연결되는 서버 디바이스, 서버 디바이스에 연결되는 클라이언트 디바이스, 디바이스 구동방법 및 디바이스 공유방법이 제공된다.The present invention relates to a server device to which a USB device is connected, a client device connected to the server device, a device driving method, and a device sharing method. A server device connected to a client device through a network according to the present invention includes a USB connection unit to which a USB device is connected; A USB over IP driver for sharing the USB device with the client device; And a USB device redirection manager having a virtual driver module for controlling the USB over IP to connect the USB device to the client device and for driving the USB device using resources included in the client device . Thereby, a server device to which a USB device capable of driving the USB device is connected, a client device to be connected to the server device, a device driving method, and a device sharing method are provided even in the absence of a USB device driver.
Description
본 발명은 USB 디바이스가 연결되는 서버 디바이스, 서버 디바이스에 연결되는 클라이언트 디바이스, 디바이스 구동방법 및 디바이스 공유방법에 관한 것으로서, 보다 상세하게는 네트워크를 통하여 USB 디바이스를 클라이언트 디바이스와 공유할 수 있는 USB 디바이스가 연결되는 서버 디바이스, 서버 디바이스에 연결되는 클라이언트 디바이스, 디바이스 구동방법 및 디바이스 공유방법에 대한 것이다.The present invention relates to a server device to which a USB device is connected, a client device connected to the server device, a device driving method, and a device sharing method, and more particularly to a USB device capable of sharing a USB device with a client device via a network A server device to be connected, a client device connected to the server device, a device driving method, and a device sharing method.
USB(Universal Serial Bus) 디바이스는 마우스, 키보드, 프린터, 모뎀, 스피커 등과 같은 컴퓨터 주변기기와 컴퓨터를 연결하기 위한 인터페이스의 규격화하기 위해 개발된 직렬 포트의 일종으로, USB를 이용하면 디바이스의 설치와 제거를 쉽고, 빠르게 할 수 있어 현재 대부분의 PC 표준 장비로 채택되고 있다.USB (Universal Serial Bus) device is a kind of serial port developed to standardize the interface for connecting computer peripherals such as mouse, keyboard, printer, modem, speaker and so on. It is easy and fast, and it is being adopted as the most standard PC equipment at present.
최근에는, USB 디바이스가 물리적으로 연결되어 있는 호스트 디바이스뿐만 아니라 원격의 클라이언트 장치에서도 TCP/IP 네트워크를 통해 USB 디바이스를 사용할 수 있는 USB over IP 또는 USB over Network 기술이 사용되고 있다. 현재 USB over IP는 상용화 소프트웨어까지 개발되어 있다. In recent years, USB over IP or USB over Network technology has been used to allow USB devices to be used over TCP / IP networks in remote client devices as well as host devices to which USB devices are physically connected. Currently, USB over IP has been developed to commercialization software.
클라이언트 장치에 연결된 USB 디바이스는 클라이언트 장치에 직접 연결될 수 있는 USB 디바이스와 동일하게 작동하며, 클라이언트 장치의 드라이버 및 어플리케이션에 의하여 억세스 된다.The USB device connected to the client device operates in the same manner as the USB device which can be directly connected to the client device, and is accessed by the driver and application of the client device.
한편, 최근에는 컴퓨터, 가전 제품 및 모바일 기기를 포함하는 클라우드 환경이 조성되어 직접적으로 USB 디바이스가 연결되어 있지 않더라도 USB 디바이스에 대한 다양한 접근이 활발해 지고 있다.Meanwhile, recently, a cloud environment including computers, home appliances, and mobile devices has been created, and various approaches to USB devices are becoming active even if USB devices are not directly connected.
본 발명에 따른 일 실시예는 USB 디바이스의 드라이버가 없는 상황에서도 USB 디바이스를 구동시킬 수 있는 USB 디바이스가 연결되는 서버 디바이스, 서버 디바이스에 연결되는 클라이언트 디바이스, 디바이스 구동방법 및 디바이스 공유방법을 제공한다.One embodiment of the present invention provides a server device to which a USB device capable of driving a USB device is connected, a client device connected to the server device, a device driving method, and a device sharing method even in the absence of a USB device driver.
또한, 본 발명에 따른 일 실시예는 복수의 전자 디바이스를 포함하는 클라우드 환경에서 USB 디바이스에 대한 접근성을 향상시킨다.Further, an embodiment according to the present invention improves accessibility to USB devices in a cloud environment including a plurality of electronic devices.
또한, 본 빌명에 따른 실시예는 디바이스가 포함하고 있는 시스템의 제약, 구체적으로 플랫폼 또는 운영 체계와 무관하게 USB 디바이스의 활용을 가능하게 하는 USB 디바이스가 연결되는 서버 디바이스, 서버 디바이스에 연결되는 클라이언트 디바이스, 디바이스 구동방법 및 디바이스 공유방법을 제공한다.Embodiments according to the present invention may also be applied to a server device to which a USB device is connected that enables utilization of a USB device regardless of the constraints of the system, specifically a platform or an operating system, , A device driving method, and a device sharing method.
본 발명의 일 실시예에 따른 네트워크를 통하여 클라이언트 디바이스와 연결되는 서버 디바이스는 USB 디바이스가 연결되는 USB 연결부와; 상기 USB 디바이스를 상기 클라이언트 디바이스와 공유하기 위한 USB over IP 드라이버와; 상기 USB 디바이스가 상기 클라이언트 디바이스에 연결되도록 상기 USB over IP를 제어하고, 상기 클라이언트 디바이스에 포함되어 있는 리소스를 이용하여 상기 USB 디바이스를 구동하는 가상 드라이버 모듈을 갖는 USB 디바이스 전용(redirection) 관리부를 포함한다.A server device connected to a client device through a network according to an embodiment of the present invention includes a USB connection unit to which a USB device is connected; A USB over IP driver for sharing the USB device with the client device; And a USB device redirection manager having a virtual driver module for controlling the USB over IP to connect the USB device to the client device and for driving the USB device using resources included in the client device .
상기 가상 드라이버 모듈은 상기 클라이언트 디바이스에 포함되어 있는 USB 드라이버, 파일 시스템 드라이버 및 커널 디바이스 드라이버 중 적어도 하나를 이용하여 상기 USB 디바이스를 구동할 수 있다.The virtual driver module may drive the USB device using at least one of a USB driver, a file system driver, and a kernel device driver included in the client device.
상기 클라이언트 디바이스의 운영체계와 상이한 운영체계를 가질 수 있다 And may have an operating system different from the operating system of the client device
상기 USB 디바이스 전용 관리부는, 상기 리소스를 포함하는 상기 클라이언트 디바이스를 검색하고, 검색된 클라이언트 디바이스와의 연결을 제어하는 클라이언트 접속 모듈과; 상기 USB 디바이스를 이용하는 어플리케이션과 상기 가상 드라이버 모듈 간의 데이터 입출입을 제어하는 드라이버 인터페이스 모듈을 더 포함할 수 있다.Wherein the USB device dedicated management unit comprises: a client connection module for searching the client device including the resource and controlling a connection with the searched client device; And a driver interface module for controlling data input / output between the application using the USB device and the virtual driver module.
상기 가상 드라이버 모듈은 상기 클라이언트 디바이스가 제공하는 파워, RAM 중 적어도 하나를 이용하여 상기 USB 디바이스를 구동할 수 있다.The virtual driver module may drive the USB device using at least one of power and RAM provided by the client device.
한편, 본 발명의 다른 실시예에 따른 네트워크를 통하여 서버 디바이스에 연결되는 클라이언트 디바이스는 상기 서버 디바이스에 연결되어 있는 USB 디바이스를 상기 네트워크를 통하여 연결하기 위한 가상 USB 컨트롤러와; 상기 USB 디바이스를 구동시키기 위한 리소스와; 상기 서버 디바이스의 요청에 따라 상기 USB 디바이스를 연결하도록 상기 가상 USB 컨트롤러를 제어하고, 상기 리소스를 상기 서버 디바이스에 제공하는 USB 디바이스 전용(redirection) 관리부를 포함한다. Meanwhile, the client device connected to the server device through the network according to another embodiment of the present invention includes a virtual USB controller for connecting the USB device connected to the server device through the network; A resource for driving the USB device; And a USB device redirection manager for controlling the virtual USB controller to connect the USB device at the request of the server device and providing the resource to the server device.
한편, 본 발명의 다른 실시예에 따른 USB 디바이스가 연결되며, 네트워크를 통하여 클라이언트 디바이스와 연결되는 서버 디바이스의 디바이스 구동방법은 상기 USB 디바이스를 구동시키기 위한 리소스를 포함하는 클라이언트 디바이스를 검색하는 단계와; 상기 검색된 클라이언트 디바이스와 상기 USB 디바이스를 상기 네트워크를 통하여 연결시키는 단계와; 상기 클라이언트 디바이스에 포함되어 있는 리소스를 제공받는 단계와; 상기 리소스를 이용하여 상기 USB 디바이스를 구동하는 단계를 포함할 수 있다.In another aspect of the present invention, there is provided a method of operating a server device connected to a USB device according to another embodiment of the present invention, the method comprising: searching for a client device including a resource for driving the USB device; Connecting the searched client device and the USB device through the network; Receiving a resource included in the client device; And driving the USB device using the resource.
상기 리소스를 제공받는 단계는, 상기 클라이언트 디바이스에 포함되어 있는 USB 드라이버, 파일 시스템 드라이버 및 커널 디바이스 드라이버 중 적어도 하나를 제공받을 수 있다.The receiving of the resource may include receiving at least one of a USB driver, a file system driver, and a kernel device driver included in the client device.
또한, 본 발명의 다른 실시예에 따른 USB 디바이스가 연결되어 있는 서버 디바이스와 네트워크를 통하여 연결되는 클라이언트 디바이스의 디바이스 공유방법은 상기 서버 디바이스의 요청에 따라, USB 디바이스를 상기 네트워크를 통하여 연결하는 단계와; 상기 USB 디바이스를 구동시키기 위한 리소스를 상기 서버 디바이스에 제공하는 단계를 포함하는 단계를 포함할 수 있다.According to another aspect of the present invention, there is provided a method of sharing a device between a server device connected to a USB device and a client device connected through a network, the method comprising: connecting a USB device through the network, ; And providing resources to the server device for driving the USB device.
이상 설명한 바와 같이, 본 발명의 일 실시예에 따르면, USB 디바이스의 드라이버가 없는 상황에서도 USB 디바이스를 구동시킬 수 있는 USB 디바이스가 연결되는 서버 디바이스, 서버 디바이스에 연결되는 클라이언트 디바이스, 디바이스 구동방법 및 디바이스 공유방법이 제공된다.As described above, according to the embodiment of the present invention, even when there is no USB device driver, a server device to which a USB device capable of driving the USB device is connected, a client device connected to the server device, A sharing method is provided.
또한, 본 발명의 일 실시예에 따르면 복수의 전자 디바이스를 포함하는 클라우드 환경에서 USB 디바이스에 대한 접근성이 향상된다.Further, according to an embodiment of the present invention, accessibility to a USB device is improved in a cloud environment including a plurality of electronic devices.
또한, 본 발명의 일 실시예에 따르면 디바이스가 포함하고 있는 시스템의 제약, 구체적으로 플랫폼 또는 운영 체계와 무관하게 USB 디바이스의 활용을 가능하게 하는 USB 디바이스가 연결되는 서버 디바이스, 서버 디바이스에 연결되는 클라이언트 디바이스, 디바이스 구동방법 및 디바이스 공유방법이 제공된다.In addition, according to an embodiment of the present invention, there is provided a device, comprising: a server device to which a USB device enabling a USB device to utilize regardless of a constraint of a system, specifically a platform or an operating system, A device, a device driving method, and a device sharing method are provided.
도 1은 본 발명의 일 실시예예 따른 서버 디바이스 및 클라이언트 디바이스의 개략도이고,
도 2는 도 1에 따른 서버 디바이스 및 클라이언트 디바이스의 제어 블럭도이고,
도 3은 본 발명의 다른 실시예에 따른 서버 디바이스 및 클라이언트 디바이스의 제어블럭도이고,
도 4는 본 발명의 일 실시예에 따른 서버 디바이스 및 클라이언트 디바이스의 디바이스 공유 방법을 설명하기 위한 제어 흐름도이다.1 is a schematic diagram of a server device and a client device according to an embodiment of the present invention,
FIG. 2 is a control block diagram of a server device and a client device according to FIG. 1,
3 is a control block diagram of a server device and a client device according to another embodiment of the present invention,
4 is a control flowchart for explaining a device sharing method of a server device and a client device according to an embodiment of the present invention.
이하, 첨부한 도면을 참고로 하여 본 발명의 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예들에 한정되지 않는다. 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조부호를 붙이도록 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art to which the present invention pertains. The present invention may be embodied in many different forms and is not limited to the embodiments described herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and the same or similar components are denoted by the same reference numerals throughout the specification.
도 1은 본 발명의 일 실시예예 따른 서버 디바이스 및 클라이언트 디바이스의 개략도이다. 도시된 바와 같이, 서버 디바이스(100)는 USB 디바이스(300) 및 클라이언트 디바이스(200)와 연결될 수 있다. 1 is a schematic diagram of a server device and a client device according to one embodiment of the present invention. As shown, the
USB(Universal Serial Bus) 디바이스(300)는 USB 인터페이스를 가진 주변 기기로서, 프린터, 스캐너, 저장 매체, 키보드, 마우스, 키보드, 모뎀, 스피커, 캠코더, 카메라, 터치 패널 등을 포함할 수 있다.The USB (Universal Serial Bus)
서버 디바이스(100)는 USB 디바이스(300)가 연결될 수 있는 모든 전자장치를 포함할 수 있으며, 컴퓨터 시스템, 텔레비전, 휴대폰을 포함하는 각종 모바일 단말기, 전자액자 등으로 구현될 수 있다. 서버 디바이스(100)는 USB 디바이스(300)가 내부 또는 외부의 인터페이스를 통하여 직접 연결되어 있는 호스트 디바이스를 의미하며, 클라이언트 디바이스(300)는 서버 디바이스(100)를 통하여 USB 디바이스(300)에 연결될 수 있는 호스트 디바이스를 의미한다. USB 디바이스(300)는 USB 케이블(미도시) 또는 USB 접속단자(미도시)를 통하여 서버 디바이스(100)에 연결될 수 있다.The
도시된 바와 같이, 클라이언트 디바이스(200)는 네트워크를 통하여 서버 디바이스(100)에 연결될 수 있으며, 컴퓨터 시스템, 개인 모바일 단말기, 텔레비전 등으로 구현될 수 있다. 네트워크는 인터넷, 이더넷, 무선랜, 토큰링 중 하나를 포함할 수 있으며, 본 실시예에 따른 서버 디바이스(100)는 클라이언트 디바이스(200)와 TCP/IP 프로토콜을 통하여 연결되어 있다. 본 실시예는 USB 디바이스(300)가 물리적으로 연결되어 있는 호스트 디바이스(서버 디바이스(100))뿐만 아니라 원격의 클라이언트 장치(클라이언트 디바이스(300))에서도 TCP/IP 프로토콜을 통해 USB 디바이스(200)를 사용할 수 있는 USB over IP 또는 USB over Network 기술을 일례로 하여 설명된다. As shown, the
본 실시예예 따른 클라이언트 디바이스(200)는 USB 디바이스(300)를 구동시키기 위한 리소스(resource)를 포함하고 있으며, 네트워크를 통하여 리소스를 서버 디바이스(100)에게 제공한다. 클라이언트 디바이스(200)는 네트워크를 통하여 서버 디바이스(100)와 연결되면 USB 디바이스(300)의 USB 패킷을 서버 디바이스(100)와 공유하고, 리소스를 전용(redirection)하기 위하여 리소스 전용 패킷을 서버 디바이스(100)에 제공한다. 이하 도 2를 참조하여 구체적으로 설명한다. The
도 2는 도 1에 따른 서버 디바이스 및 클라이언트 디바이스의 제어 블록도이다. 도시된 바와 같이, 서버 디바이스(100)는 USB 디바이스(300)와 연결 되는 USB 연결부(110), 연결된 USB 디바이스(300)를 클라이언트 디바이스(200)와 가상으로 공유하기 위한 USB over IP 드라이버(120), 제1 USB 디바이스 전용(redirection) 관리부(130), 어플리케이션(140)를 포함한다. 클라이언트 디바이스(200)는 가상 USB 컨트롤러(210), 리소스(220), 제2 USB 디바이스 전용 관리부(230)를 포함한다. 2 is a control block diagram of a server device and a client device according to FIG. As shown, the
USB 연결부(110)를 통하여 USB 디바이스(300)가 서버 디바이스(100)에 연결되면, USB 컨트롤러(미도시)를 통하여 Enumeration과정이 진행된다. Enumeraion은 서버 디바이스(100)가 USB 디바이스(300)의 Endpoint type과 개수, 제품 종류 등을 결정하는 과정으로, 이 과정에서 서버 디바이스(100)는 USB 디바이스(300)에게 디바이스 어드레스를 할당하고, 디바이스 Descriptor 및 Configuration Descriptor와 같은 셋업 데이터, 즉 연결정보를 USB 디바이스(300)로부터 가져와서 설정함으로써 데이터를 송수신할 수 있도록 준비한다. 이러한 과정은 서버 디바이스(100)의 시스템 소프트웨어와 USB 디바이스(300)의 USB 논리 디바이스 간에 연결정보를 송수신함으로써 수행된다.When the
USB over IP 드라이버(120)는 클라이언트 디바이스(200)와 USB 디바이스(300)가 연결되도록 연결정보를 저장하고, 클라이언트 디바이스(200)를 USB 디바이스(300)에 연결시키기 위한 가상 접속 어드레스를 할당하고, 가상 접속 어드레스와 디바이스 어드레스를 맵핑시킴으로써 클라이언트 디바이스(200)를 USB 디바이스(300)에 연결한다. 또한, USB over IP 드라이버(120)는 클라이언트 디바이스(300)의 네트워크 주소, 즉 IP 어드레스를 저장하고, 맵핑된 가상 접속 어드레스를 통하여 저장되어 있던 연결정보를 클라이언트 디바이스(300)로 전송한다. The USB over
제1 USB 디바이스 전용 관리부(130)는 USB 디바이스(300)가 클라이언트 디바이스(200)에 연결되도록 USB over IP드라이버(120)를 제어하고, 클라이언트 디바이스(200)에 포함되어 있는 리소스(220)를 이용하여 USB 디바이스(300)를 구동하는 가상 드라이버 모듈(131)을 포함한다. 본 실시예에 따른 서버 디바이스(100)는 USB 디바이스(300)가 연결되는 USB 연결부(110)를 포함하고 있지만, USB 디바이스(300)를 구동시키거나 USB 디바이스(300)가 제공하는 컨텐츠를 실행 또는 재생시키기 위한 리소스를 포함하지 않을 수 있다. 예를 들어, USB 디바이스(300)를 제어하기 위한 USB 호스트 컨트롤러 및 컨트롤러 드라이버는 서버 디바이스(100)에 구비되어 있지만, USB 디바이스(300)의 구동을 지원하기 위한 USB 코어, USB 클래스 드라이버, USB 드라이버 등을 포함하지 않는 경우, 서버 디바이스(100)는 USB 디바이스(300)에 억세스 하는 것이 불가능 할 수 있다. 또한, 서버 디바이스(100)가 USB 디바이스(300)를 구동하기 위한 파워가 부족하거나 RAM의 용량이 부족할 수도 있다. 본 발명에서는 서버 디바이스(100)가 USB 디바이스(300)를 구동하기 위하여 필요한 이러한 요소들을 리소스로 정의한다. 만약 리소스가 부족하여 USB 디바이스(300)를 구동하지 못하는 경우, 서버 디바이스(100)는 클라이언트 디바이스(200)의 리소스(220)를 이용하여 USB 디바이스(300)를 구동시킬 수 있다. 제1 USB 디바이스 전용 관리부(130)는 이와 같이 클라이언트 디바이스(200)의 리소스(220)를 활용하여 USB 디바이스(300)를 구동시키고, 리소스(220)와 서버 디바이스(100)의 어플리케이션(140)의 중간 인터페이스를 담당한다.The first USB device
어플리케이션(140)은 USB 디바이스(300)에 억세스하여 실행되는 최상위 소프트웨어를 의미하며, 클라이언트 디바이스(200)의 리소스(220) 없이는 USB 디바이스(300)에 억세스하는 것이 불가능하다. 다시 말하면, 가상 드라이버 모듈(131)는 어플리케이션(140)이 USB 디바이스(300)에 억세스하는 것이 가능하도록 리소스(220)를 전용(redirection)하는 역할을 한다.The
클라이언트 디바이스(200)의 가상 USB 컨트롤러(210)는 USB over IP 드라이버(120)와 통신하면서 USB 디바이스(300)의 데이터 송수신을 제어한다. 즉, 가상 USB 컨트롤러(210)는 USB 패킹을 수신 및 파싱하여 마치 USB 디바이스(300)가 클라이언트 디바이스(200)에 직접적으로 연결되어 있는 것처럼 작동하도록 USB 디바이스(300)와 클라이언트 디바이스(200)의 중간 인터페이스 역할을 한다. The
리소스(220)는 상술한 바와 같이 USB 디바이스(300)를 구동시키기 위하여 필요한 소프트웨어적 또는 하드웨어적 구성을 의미하며, USB 드라이버, 파일 시스템 드라이버, 커널 디바이스 드라이버, 파워 및 RAM 중 적어도 하나를 포함할 수 있다.The
제2 USB 디바이스 전용 관리부(230)는 서버 디바이스(100)의 요청에 따라 USB 디바이스(300)를 연결하도록 가상 USB 컨트롤러(210)를 제어하고, 리소스(220)를 상기 서버 디바이스(100)에 제공한다. 제2 USB 디바이스 전용 관리부(230)는 제1 USB 디바이스 전용 관리부(130)에 대응하는 구성을 포함할 수 있으며, 클라이언트 디바이스(200)가 호스트 디바이스로 작동하는 경우, 다른 디바이스와 연결되어 리소스를 제공받을 수도 있다.The second USB device
도 3은 본 발명의 다른 실시예에 따른 서버 디바이스 및 클라이언트 디바이스의 제어블럭도이다. 도시된 바와 같이, 본 실시예에 따른 제1 USB 디바이스 전용 관리부(130)는 클라이언트 접속 모듈(133)과 드라이버 인터페이스 모듈(135)을 더 포함한다. 또한, 클라이언트 디바이스(200)는 USB 드라이버(221)와 파일 시스템 드라이버(223)를 포함한다. 본 실시예에 따른 USB 드라이버(221)와 파일 시스템 드라이버(223)는 USB 디바이스(300)를 구동하는데 필요한 리소스이며 서버 디바이스(100)에는 구비되어 있지 않다.3 is a control block diagram of a server device and a client device according to another embodiment of the present invention. As shown in the figure, the first USB device-dedicated
클라이언트 접속 모듈(133)은 리소스, 즉 서버 디바이스(100)가 USB 디바이스(300)를 구동시키기 위하여 필요한 USB 드라이버(221)와 파일 시스템 드라이버(223)를 포함하는 클라이언트 디바이스(200)를 검색하고, 검색된 클라이언트 디바이스와의 연결을 제어한다. 즉, 클라이언트 접속 모듈(133)은 USB 드라이버(221) 또는 파일 시스템 드라이버(223)와 같은 리소스 공유를 위하여 USB over IP드라이버(120)를 통하여 호스트 디바이스로서 USB 디바이스(300)와 가상 연결을 유지하고 이를 관리한다. 클라이언트 접속 모듈(133)은 검색된 클라이언트 디바이스의 리스트를 저장하고 있다가 향후 재 접속이 필요한 경우 저장된 리스트를 활용하여 클라이언트 디바이스에 접속을 요청할 수 있다. 이런 경우, 클라이언트 디바이스를 검색하여 가상으로 USB 디바이스를 연결하는 시간이 단축될 것이다. 또한, 클라이언트 접속 모듈(133)은 외부 서버와 같은 특정 정보 제공자로부터 리소스를 포함하는 클라이언트 디바이스의 정보를 수신할 수도 있다. The
드라이버 인터페이스 모듈(135)은 어플리케이션(140)과 가상 드라이버 모듈(131) 사이의 인터페이스이며, 가상 드라이버 모듈(131)을 통하여 입출력되는 데이터를 TCP/IP 페이로드로 변환한다. The
USB 드라이버(221)와 파일 시스템 드라이버(223)는 USB 디바이스(300)를 구동시켜 USB 디바이스(300)가 제공할 수 있는 컨텐츠를 재생시키고, 어플리케이션(140)의 억세스가 가능하도록 하는 리소스에 해당한다. USB 디바이스(300)와 파일 시스템 드라이버(223)는 모든 전자 디바이스에 존재하거나 필수적으로 구비되는 드라이버가 아닌 특정 디바이스에 포함되어 있거나 특정 플랫폼 또는 운영체계에서 지원되는 드라이버 중 하나의 예시에 해당한다.The
본 실시예에 따른 서버 디바이스(100)와 클라이언트 디바이스(200)는 상이한 운영체계를 가질 수 있다. 예를 들어, 서버 디바이스(100)의 운영체계 A에서 지원하는 파일 시스템은 USB 메모리의 컨텐츠를 리드하는 것을 제공하지만 라이트를 제공하지 않을 수 있다. 운영체계 A에서 컨텐츠의 라이트를 지원할 경우 이를 지원하는 다른 운영체계와 분쟁 또는 라이센스 문제가 발생할 소지가 존재할 수 있다. 본 실시예에 따를 경우, 서버 디바이스(100)에 컨텐츠의 라이트를 지원하는 드라이버가 포함되어 있지 않더라도 이를 지원하는 클라이언트 디바이스(200)의 드라이버를 이용하여 사용자는 컨텐츠의 라이트를 구현할 수 있다. 예컨대, 방송신호를 녹화하는 PVR(personal video recorder) 어플리케이션의 경우 특정 운영체계의 파일 시스템을 사용하고 있다. 하지만, 텔레비전에 존재하는 파일 시스템이 라이트를 지원하지 않는다면, 이를 지원하는 다른 운영체계의 파일 시스템을 가상으로 연결하여 사용할 수 있을 것이다. 이를 의해 특정 플랫폼 또는 운영체계에 종속된 디바이스 드라이버 또는 파일 시스템 드라이버를 다른 플랫폼 또는 운영체계로 포팅(porting) 없이 사용할 수 있다. 따라서, 본 실시예는 운영체계 간 포팅을 필요로 하는 파일 시스템과 드라이버에 활용될 것이다.The
정리하면, 클라이언트 디바이스(200)는 어플리케이션(140)이 USB 디바이스(300) 내의 컨텐츠, 즉 파일에 억세스할 수 있도록 디스크의 마운트 경로를 포함하는 파일 시스템 드라이버(223)의 리소스를 가상 드라이버 모듈(131)을 통하여 제공한다. 서버 디바이스(100)는 연결되어 있는 USB 디바이스(300)의 파일 시스템 드라이버를 지원하지 못하지만 클라이언트 디바이스(200)의 파일 시스템 드라이버(223)를 가상 드라이버로 제공받아 USB 디바이스(300)의 컨텐츠에 대한 파일 입출력을 수행한다.The
도 4는 본 발명의 일 실시예에 따른 서버 디바이스 및 클라이언트 디바이스의 디바이스 공유 방법을 설명하기 위한 제어 흐름도이다. 도 4를 참조하여 서버 디바이스(100)와 클라이언트 디바이스(200)의 디바이스 구동방법 및 디바이스 공유방법에 대하여 정리하면 다음과 같다.4 is a control flowchart for explaining a device sharing method of a server device and a client device according to an embodiment of the present invention. Referring to FIG. 4, a device driving method and a device sharing method of the
우선, USB 디바이스(300)가 연결되면, 클라이언트 접속 모듈(133)은 USB 디바이스(300)를 구동시키기 위한 리소스를 포함하는 클라이언트 디바이스를 검색한다(S10).First, when the
클라이언트 접속 모듈(133)은 USB over IP 드라이버(120)를 통하여 검색된 클라이언트 디바이스(200)와 USB 디바이스(300)를 네트워크를 통하여 가상으로 연결한다(S20).The
클라이언트 디바이스(200)는 USB 드라이버, 파일 시스템 드라이버 및 커널 디바이스 드라이버, 파워, RAM 등과 같이 USB 디바이스(300)를 구동시키기 위한 리소스를 서버 디바이스(100)에 제공한다(S30).The
가상 드라이버 모듈(131)은 클라이언트 디바이스(200)로부터 제공된 리소스를 이용하여 USB 디바이스(300)를 구동시키고(S40), 드라이버 인터페이스 모듈(135)은 어플리케이션(140)과 가상 드라이버 모듈(131) 간의 데이터 입출력을 제어하여 어플리케이션(140)의 USB 디바이스(300)로의 억세스를 제어한다.The
비록 본 발명의 몇몇 실시예들이 도시되고 설명되었지만, 본 발명이 속하는 기술분야의 통상의 지식을 가진 당업자라면 본 발명의 원칙이나 정신에서 벗어나지 않으면서 본 실시예를 변형할 수 있음을 알 수 있을 것이다. 발명의 범위는 첨부된 청구항과 그 균등물에 의해 정해질 것이다.Although several embodiments of the present invention have been shown and described, those skilled in the art will appreciate that various modifications may be made without departing from the principles and spirit of the invention . The scope of the invention will be determined by the appended claims and their equivalents.
100 : 서버 디바이스 110 : USB 연결부
120 : USB over IP 드라이버 130 : 제1 USB 디바이스 전용 관리부
131 : 가상 드라이버 모듈 133 : 클라이언트 접속 모듈
135 : 드라이버 인터페이스 모듈 140 : 어플리케이션
200 : 클라이언트 디바이스 210 : 가상 USB 컨트롤러
220 : 리소스 221 : USB 드라이버
223 : 파일 시스템 드라이버 230 : 제2 USB 디바이스 전용 관리부
300 : USB 디바이스
100: server device 110: USB connection part
120: USB over IP driver 130: First USB device dedicated management unit
131: virtual driver module 133: client connection module
135: Driver interface module 140: Application
200: client device 210: virtual USB controller
220: Resource 221: USB Driver
223: File system driver 230: Second USB device dedicated management unit
300: USB device
Claims (15)
USB 디바이스가 접속되는 USB 접속부와;
클라이언트 디바이스와 통신하는 통신부와;
복수의 클라이언트 디바이스에 관한 정보를 수신하고,
상기 수신된 복수의 클라이언트 디바이스의 리스트를 저장하고,
상기 저장된 리스트 중 상기 접속된 USB 디바이스에 대응하는 드라이버를 가진 클라이언트 디바이스를 식별하고,
상기 식별된 클라이언트 디바이스로 상기 USB 디바이스에 대응하는 드라이버를 요청하고,
상기 요청에 따라 상기 클라이언트 디바이스의 드라이버를 이용하여 상기 USB 디바이스에 액세스하고,
상기 서버 디바이스에서 실행되는 어플리케이션이 상기 액세스된 USB 디바이스와 데이터를 송수신하도록 제어하는 프로세서를 포함하는 것을 특징으로 하는 서버 디바이스.A server device comprising:
A USB connection unit to which the USB device is connected;
A communication unit for communicating with the client device;
Receiving information about a plurality of client devices,
Storing a list of the received plurality of client devices,
Identifying a client device having a driver corresponding to the connected USB device in the stored list,
Requesting a driver corresponding to the USB device to the identified client device,
Accessing the USB device using the driver of the client device according to the request,
And a processor for controlling the application executed in the server device to send and receive data to and from the accessed USB device.
상기 드라이버는 상기 클라이언트 디바이스에 포함되어 있는 USB 드라이버, 파일 시스템 드라이버 및 커널 디바이스 드라이버 중 적어도 하나를 포함하는 것을 특징으로 하는 서버 디바이스.The method according to claim 1,
Wherein the driver includes at least one of a USB driver, a file system driver, and a kernel device driver included in the client device.
상기 클라이언트 디바이스의 운영체계와 상이한 운영체계를 갖는 서버 디바이스.3. The method of claim 2,
A server device having an operating system different from the operating system of the client device.
상기 프로세서는, 상기 드라이버를 포함하는 상기 클라이언트 디바이스를 검색하고, 검색된 클라이언트 디바이스와의 연결을 제어하는 것을 특징으로 하는 서버 디바이스.The method according to claim 1,
Wherein the processor searches the client device including the driver and controls connection with the retrieved client device.
상기 프로세서는, 상기 클라이언트 디바이스가 제공하는 파워, RAM 중 적어도 하나를 이용하여 상기 USB 디바이스에 액세스하는 것을 특징으로 하는 서버 디바이스.The method according to claim 1,
Wherein the processor accesses the USB device using at least one of power and RAM provided by the client device.
서버 디바이스와 통신하는 통신부와;
상기 서버 디바이스로 상기 클라이언트 디바이스에 포함된 드라이버에 관한 정보를 전송하고,
상기 서버 디바이스의 요청에 따라 상기 서버 디바이스에 접속되어 있는 USB 디바이스에 대응하는 드라이버를 이용하여 상기 서버 디바이스가 상기 USB 디바이스에 액세스 가능하게 하는 프로세서를 포함하고,
상기 드라이버는, 상기 서버 디바이스에서 실행되는 어플이케이션이 상기 USB 디바이스와 데이터를 송수신 가능하게 하는 것을 특징으로 하는 클라이언트 디바이스.In a client device,
A communication unit for communicating with the server device;
Transmits information about the driver included in the client device to the server device,
And a processor for enabling the server device to access the USB device using a driver corresponding to the USB device connected to the server device at the request of the server device,
Wherein the driver enables the application running on the server device to transmit and receive data with the USB device.
상기 드라이버는 USB 드라이버, 파일 시스템 드라이버, 커널 디바이스 드라이버 중 적어도 하나를 포함하는 것을 특징으로 하는 클라이언트 디바이스.The method according to claim 6,
Wherein the driver comprises at least one of a USB driver, a file system driver, and a kernel device driver.
상기 서버 디바이스의 운영체계와 상이한 운영체계를 갖는 클라이언트 디바이스.The method according to claim 6,
The client device having an operating system different from the operating system of the server device.
서로 다른 드라이버를 포함하는 복수의 클라이언트 디바이스에 관한 정보를 수신하는 단계와;
상기 수신된 복수의 클라이언트 디바이스의 리스트를 저장하는 단계와;
상기 저장된 리스트 중 상기 접속된 USB 디바이스에 대응하는 드라이버를 가진 클라이언트 디바이스를 식별하는 단계와;
상기 식별된 클라이언트 디바이스로 상기 USB 디바이스에 대응하는 드라이버를 요청하는 단계와;
상기 요청에 따라 상기 클라이언트 디바이스의 드라이버를 이용하여 상기 USB 디바이스에 액세스하는 단계와;
상기 서버 디바이스에서 실행되는 어플리케이션이 상기 액세스된 USB 디바이스와 데이터를 송수신하도록 하는 단계를 포함하는 것을 특징으로 하는 서버 디바이스의 디바이스 구동방법.A device driver method of a server device to which a USB device is connected,
The method comprising: receiving information about a plurality of client devices including different drivers;
Storing a list of the received plurality of client devices;
Identifying a client device having a driver corresponding to the connected USB device in the stored list;
Requesting a driver corresponding to the USB device to the identified client device;
Accessing the USB device using the driver of the client device according to the request;
And causing the application executed by the server device to send and receive data to and from the accessed USB device.
상기 드라이버는, 상기 클라이언트 디바이스에 포함되어 있는 USB 드라이버, 파일 시스템 드라이버 및 커널 디바이스 드라이버 중 적어도 하나를 포함하는 것을 특징으로 하는 서버 디바이스의 디바이스 구동방법.10. The method of claim 9,
Wherein the driver includes at least one of a USB driver, a file system driver, and a kernel device driver included in the client device.
서버 디바이스와 통신하는 단계와;
상기 서버 디바이스로 상기 클라이언트 디바이스에 포함된 드라이버에 관한 정보를 전송하는 단계와;
상기 서버 디바이스의 요청에 따라 상기 서버 디바이스에 접속되어 있는 USB 디바이스에 대응하는 드라이버를 이용하여 상기 서버 디바이스가 상기 USB 디바이스에 액세스 가능하게 하는 단계를 포함하고,
상기 드라이버는 상기 서버 디바이스에서 실행되는 어플리케이션이 상기 USB 디바이스와 데이터를 송수신 가능하게 하는 것을 특징으로 하는 클라이언트 디바이스의 디바이스 공유방법.A device sharing method of a client device,
Communicating with a server device;
Transmitting information on a driver included in the client device to the server device;
Causing the server device to access the USB device using a driver corresponding to the USB device connected to the server device at the request of the server device,
Wherein the driver enables an application running on the server device to send and receive data with the USB device.
상기 프로세서는, 상기 클라이언트 디바이스로부터 상기 USB 디바이스에 대응하는 드라이버를 수신하고, 상기 수신된 드라이버에 기초하여 가상의 드라이버를 생성하는 서버 디바이스.The method according to claim 1,
Wherein the processor receives a driver corresponding to the USB device from the client device and generates a virtual driver based on the received driver.
상기 프로세서는, 상기 실행되는 어플리케이션의 상기 USB 디바이스에 대한 접속 요청을 상기 클라이언트 디바이스를 통해 상기 가상의 드라이버로 전송하고, 상기 가상의 드라이버를 통해 수신되는 상기 USB 디바이스의 출력 정보를 상기 클라이언트 디바이스를 통해 상기 어플리케이션으로 전송하는 서버 디바이스. 13. The method of claim 12,
Wherein the processor transmits a request for connection to the USB device of the executed application to the virtual driver through the client device and transmits output information of the USB device received through the virtual driver to the virtual device via the client device To the application.
상기 클라이언트 디바이스로부터 상기 USB 디바이스에 대응하는 드라이버를 수신하는 단계와;
상기 수신된 드라이버에 기초하여 가상의 드라이버를 생성하는 단계를 포함하는 서버 디바이스의 디바이스 구동방법.10. The method of claim 9,
Receiving a driver corresponding to the USB device from the client device;
And generating a virtual driver based on the received driver.
상기 실행되는 어플리케이션의 상기 USB 디바이스에 대한 접속 요청을 상기 클라이언트 디바이스를 통해 상기 가상의 드라이버로 전송하는 단계와;
상기 가상의 드라이버를 통해 수신되는 상기 USB 디바이스의 출력 정보를 상기 클라이언트 디바이스를 통해 상기 어플리케이션으로 전송하는 단계를 포함하는 서버 디바이스의 디바이스 구동방법.15. The method of claim 14,
Transmitting a connection request for the USB device of the executed application to the virtual driver through the client device;
And transmitting the output information of the USB device received through the virtual driver to the application via the client device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110147706A KR101945840B1 (en) | 2011-12-30 | 2011-12-30 | Server device connecting usb device, client device connecting server device, device driving method and device sharing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110147706A KR101945840B1 (en) | 2011-12-30 | 2011-12-30 | Server device connecting usb device, client device connecting server device, device driving method and device sharing method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130078645A KR20130078645A (en) | 2013-07-10 |
KR101945840B1 true KR101945840B1 (en) | 2019-02-12 |
Family
ID=48991549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110147706A KR101945840B1 (en) | 2011-12-30 | 2011-12-30 | Server device connecting usb device, client device connecting server device, device driving method and device sharing method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101945840B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060123166A1 (en) * | 2004-12-07 | 2006-06-08 | Cisco Technology, Inc., A Corporation Of California | Method and system for controlling transmission of USB messages over a data network between a USB device and a plurality of host computers |
JP2007272643A (en) * | 2006-03-31 | 2007-10-18 | Nec Corp | Usb (universal serial bus) device sharing system, interface unit of server used by it, and its action method |
-
2011
- 2011-12-30 KR KR1020110147706A patent/KR101945840B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060123166A1 (en) * | 2004-12-07 | 2006-06-08 | Cisco Technology, Inc., A Corporation Of California | Method and system for controlling transmission of USB messages over a data network between a USB device and a plurality of host computers |
JP2007272643A (en) * | 2006-03-31 | 2007-10-18 | Nec Corp | Usb (universal serial bus) device sharing system, interface unit of server used by it, and its action method |
Also Published As
Publication number | Publication date |
---|---|
KR20130078645A (en) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102763095B (en) | Portable storage interface | |
JP5753665B2 (en) | Client, mediation server and method for providing cloud storage | |
US20110087726A1 (en) | Cloud server, client terminal, device, and method of operating cloud server and client terminal | |
JP2019091494A (en) | Emulated endpoint configuration | |
KR101705596B1 (en) | Server device connecting usb device and device sharing method | |
US20060159110A1 (en) | Open service gateway initiative-based home gateway apparatus and device registration method thereof | |
US20070168046A1 (en) | Image information apparatus and module unit | |
JP2013512512A (en) | Method for interfacing with virtualized computing services over a network using lightweight clients | |
CN1617515A (en) | Simple and dynamic configuration of network devices | |
CA2841140C (en) | Rights control method and apparatus for digital living network alliance | |
JP2008210115A (en) | System for operating usb device of local terminal on remote computer, method therefor and program therefor | |
US20100146123A1 (en) | Resource allocation method of each terminal apparatus using resource management system and resource management server apparatus | |
US20090019192A1 (en) | Usb transmission system and related method for accessing data in a first usb specification with a speed of a second usb specification | |
CN105007329A (en) | PCIe-based network sharing storage system and storage method thereof | |
TW201327206A (en) | Remote management system, remote management apparatus, and remote management method | |
US9460030B2 (en) | Host device and slave device controlling method | |
US20120182981A1 (en) | Terminal and method for synchronization | |
US20060129700A1 (en) | Bridging a local bus with a data network | |
JP2013016166A (en) | System and method for providing remote device driver | |
WO2023246486A1 (en) | Method and apparatus for creating connector | |
RU2607274C2 (en) | Information processing device, information processing system and program | |
US10742776B1 (en) | Accelerating isochronous endpoints of redirected USB devices | |
US20070106743A1 (en) | Sharing disc changers among multiple user devices | |
KR101945840B1 (en) | Server device connecting usb device, client device connecting server device, device driving method and device sharing method | |
JP6086183B2 (en) | Information processing system, information processing method, server, control method thereof, and control program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |