KR20080027713A - 가상 기기 구성 방법 및 이를 이용한 가상 기기 구성시스템 - Google Patents

가상 기기 구성 방법 및 이를 이용한 가상 기기 구성시스템 Download PDF

Info

Publication number
KR20080027713A
KR20080027713A KR1020070033429A KR20070033429A KR20080027713A KR 20080027713 A KR20080027713 A KR 20080027713A KR 1020070033429 A KR1020070033429 A KR 1020070033429A KR 20070033429 A KR20070033429 A KR 20070033429A KR 20080027713 A KR20080027713 A KR 20080027713A
Authority
KR
South Korea
Prior art keywords
virtual device
virtual
drivers
driver
service
Prior art date
Application number
KR1020070033429A
Other languages
English (en)
Other versions
KR100878438B1 (ko
Inventor
김수면
임훈
이진욱
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20080027713A publication Critical patent/KR20080027713A/ko
Application granted granted Critical
Publication of KR100878438B1 publication Critical patent/KR100878438B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 가상 기기 구성 방법 및 이를 이용한 가상 기기 구성 시스템이 개시된다. 본 발명의 일실시예에 따른 가상 기기 구성 방법은 각각 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하는 단계; 제2 디바이스를 인식하는 단계; 각각 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하는 단계; 상기 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 및 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 중 서비스에 필요한 가상 디바이스 드라이버들을 선택하는 단계; 및 상기 서비스에 필요한 가상 디바이스 드라이버들로 가상 기기를 구성하는 단계를 포함하는 것을 특징으로 한다.
디바이스, 디바이스 드라이버, 가상 기기, 구성, 가상 기기 플랫폼

Description

가상 기기 구성 방법 및 이를 이용한 가상 기기 구성 시스템{METHOD OF COMPOSING VIRTUAL DEVICE AND VIRTUAL DEVICE COMPOSING SYSTEM USING THE SAME}
도 1은 종래 기술에 따른 디바이스 간 인터페이스의 구성도이다.
도 2는 본 발명의 일실시예에 따른 가상 기기 구성 방법을 도시한 흐름도이다.
도 3은 도 2에 도시된 가상 기기 구성 방법을 지원하기 위한 플랫폼 소프트웨어의 스택 구조도이다.
도 4는 도 2에 도시된 가상 기기 구성 방법을 지원하기 위한 플랫폼 소프트웨어의 스택 상세도이다.
도 5은 도 4에 도시된 VD 어댑터의 상세 구조도를 도시한 도면이다.
도 6은 도 4에 도시된 VD 매니저의 VD 컴포지션 모듈의 상세 구조도를 도시한 도면이다.
도 7은 도 2에 도시된 디바이스의 세부 기능에 상응하는 가상 디바이스 드라이버를 설명하기 위한 일례를 도시한 도면이다.
도 8은 도 2에 도시된 가상 기기 구성 방법을 이용한 일례를 도시한 도면이다.
도 9는 도 2에 도시된 서비스에 필요한 가상 디바이스 드라이버들을 선택하 는 방법의 일례를 도시한 도면이다.
도 10은 도 2에 도시된 가상 기기 구성 방법을 이용한 다른 예를 도시한 도면이다.
도 11은 도 2에 도시된 가상 기기 구성 방법을 이용한 또 다른 예를 도시한 도면이다.
도 12는 본 발명의 일실시예에 따른 가상 기기 구성 시스템을 도시한 블록도이다.
도 12는 도 11에 도시된 오류 검색부의 일례를 도시한 블록도이다.
<도면의 주요 부분에 대한 부호의 설명>
1100: 가상 기기 구성 시스템
1110: 제1 드라이버 인식부
1120: 디바이스 인식부
1130: 제2 드라이버 인식부
1140: 서비스 드라이버 선택부
115: 가상 기기 구성부
1160: 오류 검색부
본 발명은 가상 기기 구성 방법에 관한 것으로, 더욱 상세하게는 둘 이상의 디바이스 각각의 세부 기능 중 선택된 세부 기능들을 조합하여 가상 기기를 구성하는 가상 기기 구성 방법 및 이를 이용한 가상 기기 구성 시스템에 관한 것이다.
오늘날 정보 기술의 급격한 발달로 인해 다양한 전자 기기가 등장하였고, 이러한 전자 기기는 우리의 생활 패턴을 변화시키면서 일상생활의 필수품으로 자리잡고 있으며, 대부분의 사용자들은 이러한 전자 기기들을 적어도 하나 이상은 소지하게 되었다. 특히, 이러한 전자 기기들 중에 하나인 휴대형 기기는 휴대형 기기 시장의 성숙기 진입과 함께 기술의 범용화 등으로 다양한 기능이 탑재되면서 소비자의 니즈 역시 다양화되고 있으며, 더욱이 정보화에 대한 요구가 증대됨에 따라 휴대형 기기에서 더욱 다양한 기능을 이용할 수 있는 휴대형 기기의 출현을 재촉하고 있다. 휴대형 기기의 일례로는, 모바일 단말기, MP3 플레이어, Portable Multimedia Player(PMP), Ultra Mobile PC(UMPC), 또는 자동차 네비게이션 등이 있다.
둘 이상의 이러한 전자 기기를 보유한 사용자들이 전자 기기를 사용하는 경우에 발생하는 가장 큰 문제점 중의 하나는 리소스의 낭비라고 할 수 있다. 전자 기기들은 그 구성면에 있어서 유사성을 가진다. 예를 들어, 전자 기기는 사용자 입력을 수신하는 입력부, 수신된 입력을 처리하는 처리부, 또는 상기 처리된 결과를 사용자에게 제공하는 출력부 등과 같은 유사한 구성을 포함하고 있다. 그 중에서도 휴대형 기기에 해당하는 PMP, 모바일 단말기, 노트북 등에서 그 유사한 구성이 더욱 현저하게 나타난다. 예를 들어, 이러한 전자 기기들은 키패드, 키보드 또는 터치 패드 등을 포함하는 입력부, 음성/영상 등을 출력하는 스피커 또는 이어폰 과 디스플레이 등을 포함하는 출력부, 및 프로세서, 메모리, 또는 스토리지 등을 포함하는 처리부로 구성되어 있어 그 구성이 매우 유사하다는 점을 알 수 있다.
상기 기술한 바와 같이 유사성을 갖는 전자 기기들을 보유하고 있는 사용자가 사용하지 아니하는 전자 기기의 리소스는 낭비된다고 할 수 있다. 또한, 이러한 전자 기기들은 그 개방성의 한계에 따라 전자 기기의 본래의 용도에 따른 지원만이 가능하기 때문에 사용자가 분명 충분한 전자 기기들의 리소스를 갖고 있음에도 불구하고 사용자의 니즈를 만족시키지 못하는 경우가 발생하게 된다. 예를 들어, 모바일 단말기와 노트북을 소유하고 있는 사용자는 모바일 단말기에 내장된 디지털 카메라와 노트북을 이용하여 화상 회의를 할 수 있음에도 불구하고 현재 이러한 기기들을 통해 화상 회의를 할 수 있는 서비스가 지원되지 않고 있다. 또한, 사용자가 모바일 단말기의 디스플레이 수단을 통해 영상 컨텐츠를 출력하거나, 키패드를 이용하여 사용자 입력을 하는 경우, 사용자가 소유한 노트북의 넓은 디스플레이 화면을 두고도 모바일 단말기의 적은 디스플레이 수단을 통해 영상 컨텐츠를 출력해야 하고, 작은 키패드를 이용하여 사용자 입력을 해야 한다는 불편함이 있다.
종래에 전자 기기간의 연결을 지원하려는 표준기술인 UPnP(Universal Play and Plug)로 이러한 문제의 일부를 해결할 수 있다. UPnP 표준은 프린터, 스캐너, PDA 등의 전자 기기들이 네트워크에 연결되어 사용자의 설정 없이 사용할 수 있도록 한다. 그러나, 도 1에 도시된 바와 같이 상기 UPnP 표준 기술은 4개의 세부 기능을 포함하는 디바이스 A가 3개의 세부 기능을 포함하는 디바이스 B와 네트워크를 통해 연결될 때, 다바이스의 종류가 다른 경우 디바이스의 세부 기능이 유사하더라도 서로 다른 구조를 가지기 때문에 상호간 연결에 불편함이 있고, 새로 연결된 디바이스를 찾고, 디바이스에서 제공하는 세부 기능에 대한 프로 파일을 분석하는 매우 복잡한 과정이 필요하다는 문제점이 있다. 또한, 다른 형태로 PictBridge 표준이 제시되었지만 PictBridge 표준은 이미지를 생성하는 디바이스와 이미지를 사용하는 디바이스 간의 표준으로써 서로간의 이미지 이동할 수 있게 하는 것으로 이미지 관련 디바이스에만 적용될 수 있다는 한계점을 가진다.
본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서, 다양한 형태의 디바이스들을 조합하여 가상 기기로 구성하고 구성된 가상 기기를 이용하여 디바이스들의 리소스를 효과적으로 활용하는 것을 그 목적으로 한다.
또한, 본 발명은 다양한 형태의 디바이스들을 조합한 구성된 가상 기기를 이용하여 사용자가 보다 편리하게 디바이스를 사용할 수 있도록 하는 것을 그 목적으로 한다.
또한, 본 발명은 디바이스들의 세부 기능을 분리하여 다른 디바이스의 세부 기능과 조합함으로써 사용자가 사용자의 목적에 따라 편리하게 디바이스들을 이용하도록 하는 것을 그 목적으로 한다.
또한, 본 발명은 디바이스의 세부 기능을 수행하는데 사용되는 정보 포맷을 갖고 있어 디바이스 간 호환성을 향상시키는 것을 그 목적으로 한다.
또한, 본 발명은 사용자의 사용 패턴 기록을 이용하여 가상 기기를 구성함으로써 사용자가 보다 편리하게 가상 기기를 구성하도록 하는 것을 그 목적으로 한다.
상기의 목적을 달성하고 종래기술의 문제점을 해결하기 위하여, 본 발명의 일실시예에 따른 가상 기기 구성 방법은 각각 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하는 단계; 제2 디바이스를 인식하는 단계; 각각 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하는 단계; 상기 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 및 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 중 서비스에 필요한 가상 디바이스 드라이버들을 선택하는 단계; 및 상기 서비스에 필요한 가상 디바이스 드라이버들로 가상 기기를 구성하는 단계를 포함하는 것을 특징으로 한다.
이 때, 상기 가상 디바이스 드라이버들은 각각 상기 세부 기능을 수행하는 데 사용되는 적어도 하나 이상의 정보 포맷을 포함할 수 있다.
이 때, 기 가상 디바이스 드라이버들은 각각 소스 기능 타입 및 싱크 기능 타입 중 어느 하나 이상일 수 있다.
또한, 본 발명의 일실시예에 따른 가상 기기 구성 시스템은 각각 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하는 제1 드라이버 인식부; 제2 디바이스를 인식하는 디바이스 인식부; 각각 상기 제2 디바이스 의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하는 제2 드라이버 인식부; 상기 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 및 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 중 서비스에 필요한 가상 디바이스 드라이버들을 선택하는 서비스 드라이버 선택부; 및 상기 서비스에 필요한 가상 디바이스 드라이버들로 가상 기기를 구성하는 가상 기기 구성부를 포함하는 것을 특징으로 한다.
또한, 본 발명의 일실시예에 따른 가상 기기 플랫폼은 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 생성하고 상기 생성된 가상 디바이스 드라이버들에 대한 정보를 제공하는 가상 기기 어댑터 및 상기 가상 디바이스 드라이버들에 대한 정보 및 상기 디바이스에 대한 정보를 기초로 상기 디바이스의 세부 기능들에 대한 접근 및 가상 기기의 운영을 제어하는 가상 기기 미들웨어를 포함하는 것을 특징으로 한다.
도 2는 본 발명의 일실시예에 따른 가상 기기 구성 방법을 도시한 흐름도이다.
도 2를 참조하면, 가상 기기 구성 방법은 각각 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식한다(S210). 상기 각각 제1 디바이스의 세부 기능들은 디바이스에서 처리 가능한 컨텐츠의 타입에 따라 세부 기능들로 분할되는 것이다. 예를 들어, 상기 세부 기능은 비디오, 오디오, 텍스트, 포인팅, 스토리지, 또는 네트워크 등의 컨텐츠 타입으로 분할될 수 있다. 상기 가상 디바이스 드라이버는 상기 분할된 세부 기능들 각각에 상응하여 존재할 수 있 고, 디바이스의 세부 기능과의 인터페이스를 제공하는 것이다.
일례로, 상기 가상 디바이스 드라이버들은 각각 상기 세부 기능을 수행하는 데 사용되는 적어도 하나 이상의 정보 포맷을 포함할 수 있다. 예를 들면, 상기 세부 기능인 비디오를 수행하는데 사용되는 정보 포맷으로 BMP, JPG 등을, 오디오를 수행하는데 사용되는 정보 포맷으로 WAV, PCM 등을 포함할 수 있다. 즉, 이러한 정보 포맷을 이용함으로써 이하 구성되는 가상 기기에 수행에 따른 상기 디바이스의 세부 기능을 동작할 수 있다.
또한, 다른 예로, 상기 가상 디바이스 드라이버들은 각각 소스 기능 타입 및 싱크 기능 타입 중 어느 하나 이상일 수 있다.
또한, 상기 가상 기기 구성 방법은 제2 디바이스를 인식한다(S220). 본 발명의 상기 제1 디바이스와 제2 디바이스는 하나 이상의 통신 모듈을 포함할 수 있고, 상기 통신 모듈은 Zigbee, bluetooth, WLAN, WIBRO, 또는 CDMA 등과 같은 무선 통신 뿐 아니라 ETHERNET, IEEE 1394와 같은 유선 통신 중 어느 하나 이상을 포함할 수 있다. 일례로, 상기 가상 기기 구성 방법은 상기 통신 모듈을 통해 대상 공간에 위치한 모든 제2 디바이스를 인식하기 위해 브로드케스트 방식으로 상기 대상 공간에 디바이스 검색 쿼리를 전송하고, 상기 대상 공간에 위치한 제2 디바이스로부터 응답 신호를 수신하여 제2 디바이스를 인식할 수 있을 것이다.
또한, 상기 가상 기기 구성 방법은 각각 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식한다(S230). 상기 기술한 바와 같이 제1 디바이스의 세부 기능과 마찬가지로 제2 디바이스의 세부 기능도 상기 제 2 디바이스에서 처리 가능한 컨텐츠의 타입에 따라 세부 기능들로 분할되는 것이다.
또한, 상기 가상 기기 구성 방법은 상기 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 및 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 중 서비스에 필요한 가상 디바이스 드라이버들을 선택한다(S240). 일례로, 상기 가상 기기 구성 방법은 상기 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 및 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 중 상기 사용자로부터 사용자가 원하는 서비스에 필요한 가상 디바이스 드라이버들을 선택 입력 받을 수 있다. 또한, 다른 예로, 상기 사용자로부터 입력된 가상 디바이스 드라이버가 중복되는 경우 상기 사용자에게 중복 입력을 알리는 메시지를 제공할 수 있다.
단계(S240)의 다른 예로, 상기 가상 기기 구성 방법은 사용자의 사용 패턴 기록에 따라 상기 서비스에 필요한 가상 디바이스 드라이버들을 선택할 수 있다. 상기 사용 패턴 기록은 사용자가 이전에 서비스에 필요한 가상 기기를 선택하여 구성하였던 가상 기기에 대한 패턴 기록일 수 있다.
일례로, 상기 가상 기기 구성 방법은 상기 사용 패턴 기록에 따라 가장 많이 구성되었던 가상 기기에 상응하는 가상 디바이스 드라이버들을 선택할 수 있다.
또한, 다른 예로, 상기 가상 기기 구성 방법은 상기 사용 패턴 기록에 따른 패턴 리스트를 상기 사용자에게 제공하고, 상기 사용자로부터 패턴 리스트 중에 어느 하나를 선택 입력 받아 상기 가상 디바이스 드라이버들을 선택할 수도 있다.
또한, 상기 가상 기기 구성 방법은 상기 서비스에 필요한 가상 디바이스 드라이버들로 가상 기기를 구성한다(S250). 일례로, 상기 가상 기기 구성 방법은 상기 선택된 디바이스 드라이버에 상응하는 디바이스로 상기 가상 기기의 구성이 가능한 지 여부에 응답을 요청하는 쿼리를 전송하고, 상기 선택된 디바이스 드라이버에 상응하는 디바이스로부터 응답 메시지를 수신하여 상기 서비스에 필요한 가상 디바이스 드라이버들로 가상 기기를 구성할 수 있다.
본 발명의 실시예로, 상기 가상 기기 구성 방법은 상기 가상 기기를 이용한 상기 서비스 수행 중 오류가 발생하면 상기 오류가 발생한 가상 디바이스 드라이버를 찾아낼 수 있다. 일례로, 상기 가상 기기 구성 방법은 소정 주기마다 상기 가상 디바이스 드라이버들에 대한 상태 정보를 체크하고, 상기 상태 정보를 참조하여 상기 오류가 발생한 가상 디바이스 드라이버를 찾아낼 수 있다. 또한, 다른 예로, 상기 가상 기기 구성 방법은 소정 주기마다 상기 가상 디바이스 드라이버들 각각에 상응하는 디바이스로부터 상기 상태 정보를 수신하고, 상기 상태 정보를 참조하여 상기 오류가 발생한 가상 디바이스 드라이버를 찾아낼 수 있다. 이 때, 상기 가상 기기 구성 방법은 상기 상태 정보를 이용하여 상기 서비스 수행 중인 가상 기기에 대한 상태 정보를 상기 사용자에게 제공할 수도 있다.
또한, 상기 가상 기기 구성 방법은 상기 오류가 발생한 가상 디바이스 드라이버에 상응하는 세부 기능을 대체할 수 있는 다른 가상 디바이스 드라이버로 상기 가상 기기를 재구성할 수 있다. 예를 들면, 상기 오류가 발생한 가상 디바이스 드라이버에 상응하는 세부 기능이 노트북의 디스플레이 수단인 경우, 상기 가상 기기 구성 방법은 상기 노트북의 디스플레이 수단에 상응하는 가상 디바이스 드라이버를 디지털 TV의 디스플레이 수단에 상응하는 가상 디바이스 드라이버로 대체하여 상기 가상 기기를 재구성할 수 있도록 한다.
도 3은 도 2에 도시된 가상 기기 구성 방법을 지원하기 위한 플랫폼 소프트웨어의 스택 구조도이다.
도 3을 참조하면, 상기 가상 기기 구성 방법을 지원하기 위한 플랫폼 소프트웨어의 스택은 VD 어댑터(Virtual Device Adapter)(310), VD 미들웨어(Middleware)(320), VD 어플리케이션(VDapp)(330)의 3계층으로 이루어져 있다. VD 어댑터(310)는 하드웨어 및 O/S에 의존적인 모듈들로 구성될 수 있는데, VD 어댑터(310)는 이하 상세히 설명하기로 한다. VD 미들웨어(320)는 VD 어댑터(310) 위에서 실행되면서 디바이스의 세부 기능을 관리하는 역할을 수행하도록 한다. 여기서, VD 미들웨어(320)는 하드웨어 및 O/S에 독립적인 모듈들로 구성될 수 있다. VD 어플리케이션(330)은 각 디바이스들로부터 제공되는 세부 기능을 검색하고, 이를 이용하여 상기 가상 기기를 구성, 관리 또는 소멸 등의 동작을 수행하는 역할을 할 수 있다. 또한, VD 어플리케이션(330)은 필요에 따라 VD 매니저(Manager)와 VD 매니저(Manager) UI의 두 계층으로 분리될 수 있다. VD 매니저는 가상 기기의 생성, 운용, 또는 정지 등의 동작을 수행하고, VD 매니저 UI는 VD 매니저를 위한 사용자 인터페이스를 제공할 수 있다.
도 4는 도 2에 도시된 가상 기기 구성 방법을 지원하기 위한 플랫폼 소프트웨어의 스택 상세도이다.
도 4를 참조하면, 각 계층은 컴퍼넌트(component)들로 구성되고, 각 계층 사이의 통신은 인터페이스(interface)를 통하여 이루어진다. 특히, 단순한 인터페이스(interface)는 상위 계층이 하위 계층의 기능을 사용하도록 도와주는 인터페이스이다. 또, 컨피그레이션 인터페이스(configuration interface)는 상위 계층에 의한 하위 계층의 환경 설정을 위한 인터페이스이다. 상기의 두 인터페이스에 대하여 콜백 (callback)이라고 불리는 인터페이스는 하위계층이 상위 계층의 기능을 사용하기 위한 인터페이스를 지칭한다.
VD 어댑터 계층(310)은 H/W 모듈, O/S 모듈, VDA 컨트롤러(VDA controller), VDD 컨트롤러(VDD controller) 및 커뮤니케이션 모듈(communication module)을 포함할 수 있다. VDA 컨트롤러는 VD 어댑터 계층(310)의 각 모듈들을 제어하고, VDD 컨트롤러는 디바이스의 세부 기능에 접근하고 관리하는 모듈이고, 디바이스의 세부 기능에 상응하는 가상 디바이스 드라이버(VDD: Virtual Device Driver)를 포함하며, 상기 가상 디바이스 드라이버(VDD)는 상기 디바이스의 세부 기능과의 인터페이스를 제공하도록 한다. 상기 커뮤니케이션 모듈은 가상 기기의 동작에 필요한 정보를 주고받기 위한 디바이스 간의 통신을 수행하도록 한다. VD 어댑터 계층(310)은 VD 미들웨어 계층(320)으로 기기의 가상 디바이스 드라이버(VDD)들의 정보를 제공한다.
VD 미들웨어 계층(320)은 디바이스/서비스 디스크립션 모듈(Device/Service Description module), 컨피그레이션 모듈(configuration module), 디바이스 접근 제어 모듈(Device Access Control module), 디스커버리 및 어나운싱 모 듈(Discovery and Announcing module), 디바이스 간 연결 모듈(Device to Device connection module)을 포함할 수 있다.
VD 미들웨어 계층(320)은 디바이스의 세부 기능을 대표하는 가상 디바이스 드라이버를 발견하고 제어하는 계층으로, VD 어댑터 계층과 VD 매니저 계층 사이의 프락시(proxy)와 같은 기능을 수행하고, 디바이스간 연결을 관리하여 다른 가상 기기 플랫폼 인스턴스들간 통신을 수행할 수 있게 한다.
디바이스/세부기능 디스크립션 모듈은 VD 어댑터 계층(310)에서 제공되는 디바이스의 세부 기능 및 디바이스에 대한 정보를 저장 및 관리하도록 하는데, 디바이스/세부기능 디스크립션 모듈은 XML(extensible markup language)를 이용하여 명기되고 디바이스 및 세부기능에 대한 일반적인 메타 정보를 포함한다. 일반적인 메타 정보는 벤더(vendor), 디바이스 타입, O/S종류 등의 디바이스 수준의 정보와 세부 기능의 타입, 이름, 지원 데이터 포맷 등을 포함한다. 컨피그레이션 모듈은 VD 미들웨어의 환경 설정을 제공하도록 한다. 디바이스 접근 제어 모듈은 디바이스의 세부 기능에 대한 접근을 제어하고, 가상 기기의 서비스 정보에 따라 가상 기기의 운영을 제어하도록 한다. 예를 들어, 개인 디바이스의 경우 외부에서 접근하여 사용하는 것을 제어하고, 가상 기기가 동작하기 위해 필요한 접근을 제어하도록 한다. 디스커버리 및 어나운싱 모듈은 디바이스의 존재를 VD 매니저에게 주기적으로 체크하거나 VD 매니저의 요청에 따라 응답하도록 한다. 디바이스 간 연결 모듈은 가상 기기의 동작시 디바이스 간의 동작을 조율하도록 한다.
VD 매니저 계층은 VD 어플리케이션 계층(330)의 하위 서브 계층으로 VD 접근 제어 모듈(VD Access Control module), VD 컨피그레이션 모듈(VD configuration module), VD 디스크립션 모듈 (VD description module), VD 컴포지션 모듈(VD composition module), VDM 상호간 커뮤니케이션 모듈(VDM to VDM communication module), 및 VD 디스커버리 모듈(VD discovery module)을 포함할 수 있다. VD 매니저 계층은 모든 기기가 필수적으로 인스톨해야 하는 계층이 아닌 가상 기기를 생성하고 관리하는 역할을 수행하는 기기가 필요로하는 계층이다.
VD 접근 제어 모듈은 하위 계층의 접근 제어 모듈과 연관하여 접근 제어하는 기능을 수행하도록 한다. VD 컨피그레이션 모듈은 VD 매니저 계층의 환경 설정과 VD 미들웨어의 환경 설정을 대행하는 기능을 제공하도록 한다. VD 컨피그레이션 모듈은 VD 매니저 계층의 다른 속성들(attributes)을 관리하고, 컨피그레이션을 업데이트하는 적절한 인터페이스들을 제공한다. 즉, 사용자는 VD 컨피그레이션 모듈을 이용하여 VD 매니저 계층의 행동을 조정할 수 있다. VD 디스크립션 모듈은 자주 사용되는 가상 기기에 대한 정보 및 사용자의 편의를 위한 상황에 맞는 가상 기기의 추천 기능을 제공하도록 한다. VD 컴포지션 모듈은 접근 가능 디바이스, 디바이스의 세부 기능 그리고 사용자의 VD 사용자 패턴을 저장하는 역할을 수행하도록 한다. 더욱이, VD 컴포지션 모듈은 이러한 정보에 기초하여 새로운 가상 기기를 구성할 수 있다. VDM 상호간 커뮤니케이션 모듈은 다수의 VD 매니저가 존재할 때 다수의 VD 매니저 사이의 통신을 담당한다. VD 디스커버리 모듈은 대상 공간의 디바이스를 식별하고, 식별된 디바이스의 상태를 확인하도록 한다.
VD 매니저 UI 계층은 VD 매니저에 대한 사용자 인터페이스 계층이며, 사용자 통지 모듈(user notification module), 사용자 컨피그레이션 모듈(user configuration module), VD 브라우저 모듈(VD browser module)를 포함할 수 있다. 사용자 통지 모듈은 하위 계층들로부터 발생되는 이벤트를 사용자에게 통지하도록 한다. 이 때, 사용자 통지 모듈은 사용자에게 디스플레이, 소리, 진동 등의 다양한 출력 형태로 사용자 인터페이스를 제공할 수 있다. 사용자 컨피그레이션 모듈은 하위 계층들의 환경 설정을 위한 사용자 인터페이스를 사용자에게 제공하도록 한다. VD 브라우저 모듈은 VD 매니저가 디바이스들의 세부 기능들, 현재 동작 중인 가상 기기들에 대한 열람 또는 조작을 가능하게 하는 사용자 인터페이스를 사용자에게 제공하도록 한다. 그 밖에도 VD 어플리케이션 계층(330)은 자체적으로 가상 기기를 운영하는데 필요한 서비스 러너 컴포넌트(service runner component)를 포함할 수 있다.
도 5은 도 4에 도시된 VD 어댑터의 상세 구조도를 도시한 도면이다.
도 5를 참조하면, VD 어댑터(330)에 포함된 H/W 모듈, O/S 모듈은 편의상 도시되지 않았고, 가상 디바이스 드라이버(VDD)는 각각의 세부 기능에 상응하여 동작하고, 상기 세부 기능과의 인터페이스를 담당하고 있다. VDD 컨트롤러는 상기 가상 디바이스 드라이버(VDD)의 관리 모듈이다. VDA 컨트롤러는 상기 가상 디바이스 드라이버(VDD)에서 제공되는 이벤트들에 기초하여 전체 VD 어댑터의 동작을 조율하면서 동시에 다른 디바이스로부터 수신되는 이벤트 정보를 해석하여 해당 가상 디바이스 드라이버(VDD)로 전송하도록 한다.
VDA 컨트롤러는 이벤트 핸들러(handler) 및 이벤트 제너레이터(generator)를 포함할 수 있다. 이벤트 제너레이터는 하드웨어 컴포넌트를 관찰하여 하드웨어 컴포넌트가 이벤트를 발생할 때 소프트웨어 이벤트를 발생한다. 예컨대, 이벤트 제너레이터는 하드웨어 이벤트들을 발생하지 못하는 패시브 데이터 처리부들인 모니터 및 디스크 드라이브와 같은 하드웨어 컴포넌트들을 관찰하여 이벤트가 발생할 때 소프트웨어 이벤트를 발생시킨다.
이벤트 핸들러는 가상 디바이스 드라이브들로부터 출력된 이벤트 데이터 또는 이벤트 제너레이터로에 의해 발생된 소프트웨어 이벤트들을 수신하여 메시지 포맷터(formatter)로 출력한다. 여기서, 이벤트 데이터는 VDD에 의해 모니터된 하드웨어 이벤트가 VDD에 의해 변환된 것이다.
커뮤니케이션 모듈은 외부와의 커뮤니케이션을 위해 이벤트 정보를 메시지 형태로 변경하거나 수신된 메시지를 이벤트 정보로 변경하는 등의 작업을 수행하도록 한다. 커뮤니케이션 모듈은 메시지 포맷터, 메시지 제너레이터 및 메시지 핸들러를 포함할 수 있다. 메시지 포맷터는 이벤트 핸들러로부터 수신된 이벤트 데이터 또는 소프트웨어 이벤트를 외부 기기와의 커뮤니케이션을 수행할 수 있도록 메시지 포맷을 만들어 준다. 메시지 제너레이터는 메시지 포맷터에 의해 만들어진 메시지 포맷을 기초로 이벤트 메시지를 생성하여 외부 기기로 전송하는데, 네트워크 대역폭을 고려하여 이벤트 메시지를 전송한다. 메시지 핸들러는 외부 기기로부터 수신된 이벤트 메시지를 수신하고 이벤트 메시지의 이벤트를 해당 가상 디바이스 드라이브로 전달한다.
도 6은 도 4에 도시된 VD 매니저의 VD 컴포지션 모듈의 상세 구조도를 도시 한 도면이다.
도 6을 참조하면, VD 컴포지션 모듈은 VD 컴포지션 컨트롤러, 히스토리 리파지토리(repository), 캐퍼빌러티 어댑테이션 컨트롤러(capability adaptation controller), VD 리파지토리를 포함할 수 있다.
VD 컴포지션 컨트롤러는 존재하는 가상 기기들을 제어하는 기능을 제공한다. VD 컴포지션 컨트롤러는 가상 기기 컴포지션들을 활성화시키거나 비활성화시키기 위해 VD 미들웨어 계층에 의해 제공된 인터페이스들을 사용한다.
캐퍼빌러티 어댑테이션 컨트롤러는 가상 기기를 구성하기 위해 선택된 컴포지션의 적어도 둘 이상의 디바이스 기능들을 매치시킨다. 즉, 캐퍼빌러티 어댑테이션 컨트롤러는 선택된 디바이스 기능들의 캐퍼빌러티가 다른 경우 캐퍼빌러티를 조절하여 이에 대한 정보를 VD 컴포지션 컨트롤러로 제공한다.
VD 리파지토리는 VD 컴포지션 모듈에 포함된 데이터베이스로, 발견된 VD 디스크립션들의 리스트들을 저장하고, VD 컴포지션 컨트롤러는 VD 리파지토리에 저장된 VD 디스크립션들의 리스트들을 기초로 가상 기기를 구성할 수 있다.
히스토리 리파지토리는 VD 컴포지션 모듈에 포함된 다른 데이터베이스로, 사용자에 의해 기 구성된 가상 기기들에 대한 정보를 저장한다. VD 컴포지션 컨트롤러는 히스토리 리파지토리에 저장된 기 구성된 가상 기기들에 대한 정보를 기초로 새로운 가상 기기를 구성할 수 있다.
도 7은 도 2에 도시된 디바이스의 세부 기능에 상응하는 가상 디바이스 드라이버를 설명하기 위한 일례를 도시한 도면이다.
도 7을 참조하면, 디바이스의 세부 기능은 처리 가능한 컨텐츠 타입에 따라 분할되고, 비디오(video), 오디오(audio), 텍스트(text), 포인팅(pointing), 스토리지(storage), 및 네트워킹(networking)의 컨텐츠 타입으로 분할될 수 있다. 이러한 세부 기능의 상기 가상 디바이스 드라이버들은 각각 소스(source) 기능 타입, 싱크(sink) 기능 타입, 및 소스(source)/싱크(sink) 기능 타입 중 어느 하나 이상의 분류에 따라 다시 나뉘어 질 수도 있다. 예를 들어, 비디오(video)에 상응하는 소스(source) 기능 타입으로 카메라, 싱크(sink) 기능 타입으로 디스플레이 수단이 고려될 수 있다. 또한, 상기 가상 디바이스 드라이버들은 각각 상기 세부 기능을 수행하는 데 사용되는 적어도 하나 이상의 정보 포맷을 포함할 수 있다. 예를 들어, 비디오(video)는 BMP, JPG 등의 정보 포맷을 포함할 수 있고, 오디오(audio)는 WAV, PCM 등의 정보 포맷을 포함할 수 있다. 본 발명에서는 같은 정보 타입의 세부 기능들은 적어도 하나 이상의 공통된 정보 포맷을 지원함으로써 어떠한 상황에서라도 사용자가 쉽게 디바이스들의 세부 기능을 조합할 수 있도록 한다.
도 8은 도 2에 도시된 가상 기기 구성 방법을 이용한 일례를 도시한 도면이다.
도 8을 참조하면, 본 발명의 가상 기기 구성 방법에 따라 구성된 가상 기기를 이용하면 사용자의 디바이스인 모바일 단말기를 사용하여 컨텐츠를 동작시키거나 문자를 입력할 때 소형의 디스플레이 수단과 키패드를 사용함으로써 발생하는 불편함을 인근에 위치한 데스크 탑 컴퓨터에 포함된 대형의 디스플레이 수단과 키보드를 사용함으로써 이를 해결할 수 있다. 즉, 사용자는 모바일 단말기의 키패드 를 이용하여 SMS 메시지를 입력하거나, 주소록 입력하는 등의 사용자 입력을 데스크 탑 컴퓨터에 연결된 키보드를 이용하여 입력하여 보다 편리하게 작업할 수 있도록 한다. 또한, 사용자가 모바일 단말기에 포함된 소형의 디스플레이 수단을 통해 출력되는 영상 컨텐츠를 데스크탑에 포함된 대형 디스플레이 수단을 통해 출력함으로써 사용자의 니즈를 충족시키는 서비스의 제공이 가능하도록 하다. 또한, 일례로 사용자는 모바일 단말기가 가방, 의복 등에 위치하여 가시 공간에 존재하지 않는 경우에도 사용 중인 데스크 탑 컴퓨터의 디스플레이 수단 및 키보드를 이용하여 수신된 메시지를 확인하고, 수신 메시지에 대한 응답 메시지를 작성하여 전송할 수도 있다.
도 9는 도 2에 도시된 서비스에 필요한 가상 디바이스 드라이버들을 선택하는 방법의 일례를 도시한 도면이다.
도 9에 도시된 바와 같이, 상기 가상 기기 구성 방법은 서비스에 필요한 가상 디바이스 드라이버들을 선택하도록 하는 사용자 인터페이스 화면을 사용자에게 제공할 수 있다. 상기 가상 기기 구성 방법은 인근에 존재하는 모바일 단말기(910), 노트북(920), 디지털 TV(930)와 같은 디바이스들을 감지하고, 상기 감지된 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버를 아이콘 형태로 표시하도록 한다. 즉, 모바일 단말기(910)는 키보드, 스피커, 마이크로폰, 스토리지, 및 디스플레이 수단의 세부 기능을, 노트북(920)은 키보드, 스피커, 마우스, 스토리지, 및 디스플레이 수단의 세부 기능을, 마지막으로 디지털 TV(930)는 디스플레이 수단과 키보드의 세부 기능을 포함할 수 있다. 상기 가상 기기 구성 방법은 상기 사용자로부터 모바일 단말기(910)의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버와 노트북(920)의 키보드와 디스플레이 수단 각각에 상응하는 가상 디바이스 드라이버를 입력받아 상기 서비스에 필요한 가상 기기를 구성하는 가상 디바이스 드라이버들을 선택할 수 있다.
도 10은 도 2에 도시된 가상 기기 구성 방법을 이용한 다른 예를 도시한 도면이다.
도 10을 참조하면, 상기 가상 기기 구성 방법은 노트북(1010)과 모바일 단말기와 같이 항상 휴대하고 다니는 휴대형 기기의 내장 스토리지(1020)와 조합함으로써 새로운 가상 기기를 구성할 수 있도록 한다.
상기 가상 기기 구성 방법은 상기 제1 디바이스인 노트북(1010)의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하고, 제2 디바이스인 휴대형 기기를 인식하며, 각각 상기 휴대형 기기의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하고, 상기 가상 기기를 구성하기 위하여 상기 노트북의 세부 기능에 상응하는 가상 디바이스 드라이버들 및 상기 휴대형 기기의 스토리지(920)에 상응하는 가상 디바이스 드라이버를 선택하고, 상기 선택된 가상 디바이스 드라이버들로 상기 가상 기기를 구성할 수 있다. 즉, 상기 가상 기기는 사용자가 노트북(1010)의 세부 기능들과 휴대형 기기의 스토리지(1020)를 사용하도록 구성될 수 있다. 일례로, 상기 휴대형 기기의 스토리지(1020)는 상기 노트북의 탐색기(1030)에 새로운 하드 디스크 드라이브 또는 폴더로 표시(1040)될 수 있고, 사용자는 일반 스토리지 폴더와 동일하게 사용할 수 있게 된다. 다른 예로, 상기 휴대 형 기기의 스토리지를 노트북, 데스크 탑 컴퓨터, 디지털 TV, 및 프린터 중 어느 하나와 조합하여 가상 기기를 구성할 수 있고, 본 발명에 따르면 사용자는 자신의 휴대형 기기의 스토리지를 언제 어디서나 접근 가능한 디스크로 사용할 수 있도록 한다.
도 11은 도 2에 도시된 가상 기기 구성 방법을 이용한 또 다른 예를 도시한 도면이다.
도 11을 참조하면, 회의실, 또는 강당 등의 장소에서 발표자가 청취자를 대상으로 휴대 기기(1110)와 연결된 빔 프로젝터(1120)를 이용하여 프레젠테이션 청중 발표하는 경우에 구성되는 가상 기기의 일례를 설명하기로 한다. 이 때, 발표자는 자신의 휴대 기기(1110)와 빔 프로젝터(1120)를 이용하여 프레젠테이션 발표를 하고, 청취자는 빔 프로젝터를 통해 표시되는 대형 스크린(1121)을 통해 발표자의 발표 자료를 주목하게 되며, 청취자는 자신의 휴대 기기(1131, 1132)를 소지하여 발표되는 자료를 정리할 수도 있다. 이 때, 본 발명의 가상 기기 구성 방법을 이용하여 상기 발표자와 청취자의 휴대 기기들 간의 가상 기기를 구성함으로써 발표자 휴대 기기(1010)의 디스플레이 수단에 표시되는 발표 자료를 청취자 휴대 기기(1131, 1132)의 디스플레이 수단에 표시하도록 할 수 있고, 청취자 휴대 기기(1131, 1132)의 키보드로 발표자 휴대 기기(1110)의 입력 동작을 제어할 수 있게 한다. 이와 같이, 청취자가 발표자의 발표 자료를 청취자 휴대 기기(1131, 1132)를 통하여 확인함으로써 사각 지대에 위치한 청취자가 보다 편리하게 발표 자료를 확인할 수 있고, 청취자가 발표자에게 질문을 하기 위하여 발표 자료를 특정 페이 지로 이동시키거나, 발표 자료의 수정이 가능하도록 할 수 있다. 즉, 청취자 휴대 기기(1131, 1132)의 키보드로 발표자 휴대 기기(1110)의 입력 동작을 제어하는 경우 공동으로 문서 작업을 하는 경우 더욱 유용하게 사용될 수 있다.
도 12는 본 발명의 일실시예에 따른 가상 기기 구성 시스템을 도시한 블록도이다.
도 12를 참조하면, 가상 기기 구성 시스템(1200)은 제1 드라이버 인식부(1210), 디바이스 인식부(1220), 제2 드라이버 인식부(1230), 서비스 드라이버 선택부(1240), 가상 기기 구성부(1250) 및 오류 검색부(1260)를 포함한다.
제1 드라이버 인식부(1210)는 각각 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식한다. 상기 각각 제1 디바이스의 세부 기능들은 디바이스에서 처리 가능한 컨텐츠의 타입에 따라 세부 기능들로 분할되는 것이다. 예를 들어, 상기 세부 기능은 비디오, 오디오, 텍스트, 포인팅, 스토리지, 또는 네트워크 등의 컨텐츠 타입으로 분할될 수 있다. 상기 가상 디바이스 드라이버는 상기 분할된 세부 기능들 각각에 상응하여 존재할 수 있고, 디바이스의 세부 기능과의 인터페이스를 제공하는 것이다.
일례로, 상기 가상 디바이스 드라이버들은 각각 상기 세부 기능을 수행하는 데 사용되는 적어도 하나 이상의 정보 포맷을 포함할 수 있다. 예를 들면, 상기 세부 기능인 비디오를 수행하는데 사용되는 정보 포맷으로 BMP, JPG 등을, 오디오를 수행하는데 사용되는 정보 포맷으로 WAV, PCM 등을 포함할 수 있다.
또한, 다른 예로, 상기 가상 디바이스 드라이버들은 각각 소스 기능 타입 및 싱크 기능 타입 중 어느 하나 이상일 수 있다.
디바이스 인식부(1220)는 제2 디바이스를 인식한다. 본 발명의 상기 제1 디바이스와 제2 디바이스는 하나 이상의 통신 모듈을 포함할 수 있고, 상기 통신 모듈은 Zigbee, bluetooth, WLAN, WIBRO, 또는 CDMA 등과 같은 무선 통신 뿐 아니라 ETHERNET, IEEE 1394와 같은 유선 통신 중 어느 하나 이상을 포함할 수 있다. 일례로, 디바이스 인식부(1220)은 상기 통신 모듈을 통해 대상 공간에 위치한 모든 제2 디바이스를 인식하기 위해 브로드케스트 방식으로 상기 대상 공간에 디바이스 검색 쿼리를 전송하고, 상기 대상 공간에 위치한 제2 디바이스로부터 응답 신호를 수신하여 제2 디바이스를 인식할 수 있을 것이다.
제2 드라이버 인식부(1230)는 각각 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식한다.
서비스 드라이버 선택부(1240)는 상기 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 및 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 중 가상기기 생성 서비스에 필요한 가상 디바이스 드라이버들을 선택한다.
일례로, 서비스 드라이버 선택부(1240)는 상기 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 및 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 중 상기 사용자로부터 사용자가 원하는 서비스에 필요한 가상 디바이스 드라이버들을 선택 입력 받을 수 있다. 또한, 다른 예로, 서비스 드라이버 선택부(1240)는 상기 사용자로부터 입력된 가상 디바이 스 드라이버가 중복되는 경우 상기 사용자에게 중복 입력을 알리는 메시지를 제공할 수 있다.
또한, 또 다른 예로, 서비스 드라이버 선택부(1240)는 사용자의 사용 패턴 기록에 따라 상기 서비스에 필요한 가상 디바이스 드라이버들을 선택할 수 있다. 상기 사용 패턴 기록은 사용자가 이전에 서비스에 필요한 가상 기기를 선택하여 구성하였던 가상 기기에 대한 패턴 기록일 수 있다. 또한 다른 예로, 서비스 드라이버 선택부(1240)는 상기 사용 패턴 기록에 따라 가장 많이 구성되었던 가상 기기에 상응하는 가상 디바이스 드라이버들을 선택할 수 있다.
또한, 또 다른 예로, 서비스 드라이버 선택부(1240)는 상기 사용 패턴 기록에 따른 대한 패턴 리스트를 상기 사용자에게 제공하고, 상기 사용자로부터 패턴 리스트 중에 어느 하나를 선택 입력 받아 상기 가상 디바이스 드라이버들을 선택할 수도 있다.
가상 기기 구성부(1250)는 상기 서비스에 필요한 가상 디바이스 드라이버들로 가상 기기를 구성한다. 일례로, 가상 기기 구성부(1250)는 상기 선택된 디바이스 드라이버에 상응하는 디바이스로 상기 가상 기기의 구성이 가능한 지 여부에 응답을 요청하는 대한 쿼리를 전송하고, 상기 선택된 디바이스 드라이버에 상응하는 디바이스로부터 응답 메시지를 수신하여 상기 서비스에 필요한 가상 디바이스 드라이버들로 가상 기기를 구성할 수 있다.
오류 검색부(1260)는 상기 가상 기기를 이용한 상기 서비스 수행 중 오류가 발생하면 상기 오류가 발생한 가상 디바이스 드라이버를 찾아낼 수 있고, 가상 기 기 구성부(1250)는 상기 오류가 발생한 가상 디바이스 드라이버에 상응하는 세부 기능을 대체할 수 있는 다른 가상 디바이스 드라이버로 상기 가상 기기를 재구성할 수 있다. 예를 들면, 상기 오류가 발생한 가상 디바이스 드라이버에 상응하는 세부 기능이 노트북의 디스플레이 수단인 경우, 상기 가상 기기 구성 방법은 상기 노트북의 디스플레이 수단에 상응하는 가상 디바이스 드라이버를 디지털 TV의 디스플레이 수단에 상응하는 가상 디바이스 드라이버로 대체하여 상기 가상 기기를 재구성할 수 있도록 한다.
도 13은 도 12에 도시된 오류 검색부의 일례를 도시한 블록도이다.
도 13을 참조하면, 오류 검색부(1260)는 상태 정보 체크부(1310) 및 검색부(1320)를 포함한다.
상태 정보 체크부(1310)는 소정 주기마다 상기 가상 디바이스 드라이버들에 대한 상태 정보를 체크할 수 있다. 또한, 일례로 상태 정보 체크부(1310)는 소정 주기마다 상기 가상 디바이스 드라이버들 각각에 상응하는 디바이스로부터 상기 상태 정보를 수신할 수 있다.
검색부(1320)는 상기 상태 정보를 참조하여 상기 오류가 발생한 가상 디바이스 드라이버를 찾아낼 수 있다.
도 12에 도시된 장치에서 설명하지 아니한 내용은 도 1 내지 도 11을 통하여 이미 설명된 바와 같으므로 이하 생략한다.
본 발명에 따른 가상 기기 구성 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
본 발명에 따르면 다양한 형태의 디바이스들을 조합하여 가상 기기로 구성하고 구성된 가상 기기를 이용하여 디바이스들의 리소스를 효과적으로 활용할 수 있다.
또한, 본 발명에 따르면 다양한 형태의 디바이스들을 조합한 구성된 가상 기기를 이용하여 사용자가 보다 편리하게 디바이스를 사용할 수 있다.
또한, 본 발명에 따르면 디바이스들의 세부 기능을 분리하여 다른 디바이스의 세부 기능과 조합함으로써 사용자가 사용자의 목적에 따라 편리하게 디바이스들을 이용할 수 있다.
또한, 본 발명에 따르면 디바이스의 세부 기능을 수행하는데 사용되는 정보 포맷을 갖고 있어 디바이스 간 호환성을 향상시킬 수 있다.
또한, 본 발명에 따르면 사용자의 사용 패턴 기록을 이용하여 가상 기기를 구성함으로써 사용자가 보다 편리하게 가상 기기를 구성할 수 있다.

Claims (21)

  1. 각각 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하는 단계;
    제2 디바이스를 인식하는 단계;
    각각 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하는 단계;
    상기 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 및 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 중 서비스에 필요한 가상 디바이스 드라이버들을 선택하는 단계; 및
    상기 서비스에 필요한 가상 디바이스 드라이버들로 가상 기기를 구성하는 단계
    를 포함하는 것을 특징으로 하는 가상 기기 구성 방법.
  2. 제1항에 있어서,
    상기 가상 디바이스 드라이버들은 각각 상기 세부 기능을 수행하는 데 사용되는 적어도 하나 이상의 공통된 정보 포맷을 포함하는 것을 특징으로 하는 가상 기기 구성 방법.
  3. 제1항에 있어서,
    상기 가상 디바이스 드라이버들은 각각 소스 기능 타입 및 싱크 기능 타입 중 어느 하나 이상인 것을 특징으로 하는 가상 기기 구성 방법.
  4. 제1항에 있어서,
    상기 서비스에 필요한 가상 디바이스 드라이버들을 선택하는 단계는 사용자의 사용 패턴 기록에 따라 상기 서비스에 필요한 가상 디바이스 드라이버들을 선택하는 것을 특징으로 하는 가상 기기 구성 방법.
  5. 제1항에 있어서,
    상기 가상 기기 구성 방법은
    상기 가상 기기를 이용한 상기 서비스 수행 중 오류가 발생하면 상기 오류가 발생한 가상 디바이스 드라이버를 찾아내는 단계; 및
    상기 오류가 발생한 가상 디바이스 드라이버에 상응하는 세부 기능을 대체할 수 있는 다른 가상 디바이스 드라이버로 상기 가상 기기를 재구성하는 단계
    를 더 포함하는 것을 특징으로 하는 가상 기기 구성 방법.
  6. 제5항에 있어서,
    상기 오류가 발생한 가상 디바이스 드라이버를 찾아내는 단계는
    소정 주기마다 상기 가상 디바이스 드라이버들에 대한 상태 정보를 체크하는 단계; 및
    상기 상태 정보를 참조하여 상기 오류가 발생한 가상 디바이스 드라이버를 찾아내는 단계
    를 포함하는 것을 특징으로 하는 가상 기기 구성 방법.
  7. 제5항에 있어서,
    상기 오류가 발생한 가상 디바이스 드라이버를 찾아내는 단계는
    소정 주기마다 상기 가상 디바이스 드라이버들 각각에 상응하는 다바이스로부터 상태 정보를 수신하는 단계; 및
    상기 상태 정보를 참조하여 상기 오류가 발생한 가상 디바이스 드라이버를 찾아내는 단계
    를 포함하는 것을 특징으로 하는 가상 기기 구성 방법.
  8. 제1항 내지 제7항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  9. 각각 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하는 제1 드라이버 인식부;
    제2 디바이스를 인식하는 디바이스 인식부;
    각각 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 인식하는 제2 드라이버 인식부;
    상기 제1 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 및 상기 제2 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들 중 서비스에 필요한 가상 디바이스 드라이버들을 선택하는 서비스 드라이버 선택부; 및
    상기 서비스에 필요한 가상 디바이스 드라이버들로 가상 기기를 구성하는 가상 기기 구성부
    를 포함하는 것을 특징으로 하는 가상 기기 구성 시스템.
  10. 제9항에 있어서,
    상기 가상 디바이스 드라이버들은 각각 상기 세부 기능을 수행하는 데 사용되는 적어도 하나 이상의 공통된 정보 포맷을 포함하는 것을 특징으로 하는 가상 기기 구성 시스템.
  11. 제9항에 있어서,
    상기 가상 디바이스 드라이버들은 각각 소스 기능 타입 및 싱크 기능 타입 중 어느 하나 이상인 것을 특징으로 하는 가상 기기 구성 시스템.
  12. 제9항에 있어서,
    상기 서비스에 필요한 가상 디바이스 드라이버들을 선택하는 단계는 사용자의 사용 패턴 기록에 따라 상기 서비스에 필요한 가상 디바이스 드라이버들을 선택 하는 것을 특징으로 가상 기기 구성 시스템.
  13. 제9항에 있어서,
    상기 가상 기기 구성 시스템은
    상기 가상 기기를 이용한 상기 서비스 수행 중 오류가 발생하면 상기 오류가 발생한 가상 디바이스 드라이버를 찾아내는 오류 검색부
    를 포함하고,
    상기 가상 기기 구성부는 상기 오류가 발생한 가상 디바이스 드라이버에 상응하는 세부 기능을 대체할 수 있는 다른 가상 디바이스 드라이버로 상기 가상 기기를 재구성하는 것을 특징으로 하는 가상 기기 구성 시스템.
  14. 제13항에 있어서,
    상기 오류 검색부는
    소정 주기마다 상기 가상 디바이스 드라이버들에 대한 상태 정보를 체크하는 상태 정보 체크부; 및
    상기 상태 정보를 참조하여 상기 오류가 발생한 가상 디바이스 드라이버를 찾아내는 검색부
    를 포함하는 것을 특징으로 하는 가상 기기 구성 시스템.
  15. 제13항에 있어서,
    상기 오류 검색부는
    소정 주기마다 상기 가상 디바이스 드라이버들 각각에 상응하는 다바이스로부터 상태 정보를 수신하는 상태 정보 체크부; 및
    상기 상태 정보를 참조하여 상기 오류가 발생한 가상 디바이스 드라이버를 찾아내는 검색부
    를 포함하는 것을 특징으로 가상 기기 구성 시스템.
  16. 디바이스의 세부 기능들 각각에 상응하는 가상 디바이스 드라이버들을 생성하고 상기 생성된 가상 디바이스 드라이버들에 대한 정보를 제공하는 가상 기기 어댑터; 및
    상기 가상 디바이스 드라이버들에 대한 정보 및 상기 디바이스에 대한 정보를 기초로 상기 디바이스의 세부 기능들에 대한 접근 및 가상 기기의 운영을 제어하는 가상 기기 미들웨어
    를 포함하는 것을 특징으로 하는 가상 기기 플랫폼.
  17. 제16항에 있어서,
    상기 가상 기기 플랫폼은
    상기 디바이스 및 상기 디바이스의 대상 공간의 적어도 하나 이상의 디바이스들 각각으로부터 제공받은 정보를 기초로 가상 기기의 동작을 수행하는 가상 기기 매니저
    를 더 포함하는 것을 특징으로 하는 가상 기기 플랫폼.
  18. 제17항에 있어서,
    가상 기기 플랫폼은
    상기 가상 기기 매니저를 위한 사용자 인터페이스를 제공하는 가상 기기 매니저 사용자 인터페이스
    를 더 포함하는 것을 특징으로 하는 가상 기기 플랫폼.
  19. 제17항에 있어서,
    상기 가상 기기 매니저는
    기 생성된 가상 기기에 대한 정보를 저장하고, 상기 기 생성된 가상 기기에 대한 정보를 기초로 상기 가상 기기의 동작을 수행하는 것을 특징으로 하는 가상 기기 플랫폼.
  20. 제16항에 있어서,
    상기 가상 기기 어댑터는
    가상 기기의 동작에 필요한 정보를 주고받는 디바이스들 간 통신을 수행하는 것을 특징으로 하는 가상 기기 플랫폼.
  21. 제16항에 있어서,
    상기 가상 기기 미들웨어는
    가상 기기들을 발견하고 디바이스간 연결을 관리하는 것을 특징으로 하는 가상 기기 플랫폼.
KR1020070033429A 2006-09-25 2007-04-04 가상 기기 구성 방법 및 이를 이용한 가상 기기 구성시스템 KR100878438B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060092859 2006-09-25
KR20060092859 2006-09-25

Publications (2)

Publication Number Publication Date
KR20080027713A true KR20080027713A (ko) 2008-03-28
KR100878438B1 KR100878438B1 (ko) 2009-01-13

Family

ID=39226366

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070033429A KR100878438B1 (ko) 2006-09-25 2007-04-04 가상 기기 구성 방법 및 이를 이용한 가상 기기 구성시스템

Country Status (2)

Country Link
US (1) US8225336B2 (ko)
KR (1) KR100878438B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527679B2 (en) 2008-06-16 2013-09-03 Samsung Electronics Co., Ltd. Apparatus and method for adaptation of input/output interface in virtualization environment
KR20140033653A (ko) * 2012-09-10 2014-03-19 삼성전자주식회사 디바이스에서 어플리케이션을 실행하는 방법 및 그 장치
US8954487B2 (en) 2009-06-23 2015-02-10 Samsung Electronics Co., Ltd. Management server and method for providing cloud computing service

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051432B2 (en) 2008-11-14 2011-11-01 Novell, Inc. Techniques for establishing virtual devices
US8135434B2 (en) * 2009-03-31 2012-03-13 International Business Machines Corporation Integrating device functionality into a telecommunications service composition
KR101055255B1 (ko) * 2010-06-29 2011-08-09 김도현 미들웨어를 이용한 개선된 임베디드 시스템 및 그 구성 방법
US10467082B2 (en) * 2016-12-09 2019-11-05 Microsoft Technology Licensing, Llc Device driver verification
US20180331900A1 (en) * 2017-05-11 2018-11-15 Intel Corporation Reconfigurable device manager
CN109729146B (zh) * 2018-11-28 2021-10-22 国云科技股份有限公司 一种固定云教室桌面网络的方法
CN111885170B (zh) * 2020-07-23 2022-03-11 平安科技(深圳)有限公司 物联网控制系统的处理方法、系统、云端服务器及介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732282A (en) * 1995-06-30 1998-03-24 Sun Microsystems, Inc. Virtual device driver registry having a globally unique identifier supplying virtual driver call information to the requesting program
US5982614A (en) 1996-11-18 1999-11-09 Peripheral Vision, Inc. Docking station including a port replicator for sharing peripherals between a portable computer and desktop computer
US6233611B1 (en) * 1998-05-08 2001-05-15 Sony Corporation Media manager for controlling autonomous media devices within a network environment and managing the flow and format of data between the devices
KR20000030928A (ko) 1998-10-09 2000-06-05 허진호 이동통신 단말기의 문자 메시지 입력방법과표시방법
US6553223B1 (en) * 1999-12-30 2003-04-22 Qualcomm Incorporated Virtual device architecture for mobile telephones
KR20020074010A (ko) 2001-03-19 2002-09-28 이상열 휴대통신단말 접속구조를 갖는 키보드장치
JP2003284166A (ja) 2002-03-22 2003-10-03 Sony Corp 電子機器システム、電子機器の機能の共有方法、電子機器装置および電子機器、
KR20040013458A (ko) 2002-08-06 2004-02-14 엘지전자 주식회사 휴대폰을 이용한 홈 네트워킹 시스템
KR20040032241A (ko) 2002-10-08 2004-04-17 에스케이텔레텍주식회사 이동통신 단말기를 이용하여 문자를 입력하기 위한 컴퓨터및 방법
KR20040088862A (ko) 2003-04-14 2004-10-20 엘지전자 주식회사 이동 통신 단말기에서의 정보 표현 방법 및 장치
JP2005157419A (ja) 2003-11-20 2005-06-16 Sony Corp 情報処理システム、情報処理装置および方法、並びにプログラム
KR100605930B1 (ko) 2003-11-29 2006-08-01 삼성전자주식회사 이동통신 단말기를 이용한 입력장치 및 방법
US20050132366A1 (en) * 2003-12-16 2005-06-16 Weast John C. Creating virtual device for universal plug and play
KR100518125B1 (ko) 2003-12-18 2005-09-29 주식회사 씬멀티미디어 멀티미디어 재생 화면을 다양한 규격의 티브이로 감상하기위한 서비스 방법 및 그를 위한 이동 단말기
US20050281417A1 (en) 2004-06-18 2005-12-22 Gregory Toprover Media device
JP4741292B2 (ja) * 2005-06-09 2011-08-03 株式会社日立製作所 デバイス管理システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527679B2 (en) 2008-06-16 2013-09-03 Samsung Electronics Co., Ltd. Apparatus and method for adaptation of input/output interface in virtualization environment
US9046931B2 (en) 2008-06-16 2015-06-02 Samsung Electronics Co., Ltd. Apparatus and method for adaptation of input/output interface in virtualization environment
US8954487B2 (en) 2009-06-23 2015-02-10 Samsung Electronics Co., Ltd. Management server and method for providing cloud computing service
KR20140033653A (ko) * 2012-09-10 2014-03-19 삼성전자주식회사 디바이스에서 어플리케이션을 실행하는 방법 및 그 장치

Also Published As

Publication number Publication date
KR100878438B1 (ko) 2009-01-13
US20080077713A1 (en) 2008-03-27
US8225336B2 (en) 2012-07-17

Similar Documents

Publication Publication Date Title
KR100878438B1 (ko) 가상 기기 구성 방법 및 이를 이용한 가상 기기 구성시스템
CN107636613B (zh) 到第三方应用的数字助理可扩展性
US9578114B2 (en) External service application discovery method
JP6598848B2 (ja) 複数のデバイスにおけるコンピューティング環境の提示
US10798153B2 (en) Terminal apparatus and server and method of controlling the same
US9270738B2 (en) Processor sharing between in-range devices
US20090064202A1 (en) Support layer for enabling same accessory support across multiple platforms
JP2009528647A (ja) 配信コンテンツ用補助表示ガジェット
US11005945B2 (en) Profiled wireless docking system
JP2012243316A (ja) メディアファイルスプリッティング方法およびその装置
KR20140117447A (ko) 노트 작성 애플리케이션 특성의 로밍 기법
CN112335204A (zh) 由助理客户端设备本地控制和/或注册智能设备
US9081902B2 (en) Generalized architecture to support representation of multi-transport devices
JP2023547821A (ja) 制御方法及び装置、及び電子デバイス
CN102968437B (zh) 外部服务应用的发现方法
US20230139886A1 (en) Device control method and device
KR20130090923A (ko) 자동 매칭으로 실제 객체들의 세트상에 서비스들의 배치
KR102529345B1 (ko) 시스템들 및 디바이스들의 근접도 기반 공유 구성
JP2023537645A (ja) コンテンツボックス提供方法及びユーザ端末
WO2024066992A1 (zh) 一种多设备组网系统、方法及终端设备
US11573811B2 (en) Virtual desktop configuration system
KR20120129570A (ko) 음원 서비스를 제공하는 방법, 모바일 단말기 및 기록매체
CN116737404A (zh) 用于应用接续的方法及终端设备
CN114035939A (zh) 一种容器内进程的管理方法、平台和存储介质
JP2011022882A (ja) データ共有システム及びデータ共有方法

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
FPAY Annual fee payment

Payment date: 20121210

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131217

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141224

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20161219

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20181220

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 12