KR20120068573A - 심리스 애플리케이션 통합 장치 및 방법 - Google Patents

심리스 애플리케이션 통합 장치 및 방법 Download PDF

Info

Publication number
KR20120068573A
KR20120068573A KR1020100130255A KR20100130255A KR20120068573A KR 20120068573 A KR20120068573 A KR 20120068573A KR 1020100130255 A KR1020100130255 A KR 1020100130255A KR 20100130255 A KR20100130255 A KR 20100130255A KR 20120068573 A KR20120068573 A KR 20120068573A
Authority
KR
South Korea
Prior art keywords
seamless
virtual machine
client
integration
sai
Prior art date
Application number
KR1020100130255A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020100130255A priority Critical patent/KR20120068573A/ko
Priority to US13/155,120 priority patent/US9557980B2/en
Priority to CN201110159698.8A priority patent/CN102541620B/zh
Priority to EP11193902A priority patent/EP2466459A1/en
Publication of KR20120068573A publication Critical patent/KR20120068573A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 일 양상에 따른 장치는, 호스트 가상 머신 및 적어도 하나의 게스트 가상 머신을 포함하는 가상화 시스템에서 심리스 애플리케이션 통합(SAI, seamless application integration) 환경을 제공하기 위해 호스트 가상 머신에 설치되는 심리스 통합 서버, 및 심리스 통합 서버에 대응되는 심리스 통합 클라이언트가 게스트 가상 머신에 설치되어 있는지 여부를 판단하고, 판단 결과에 따라 심리스 통합 클라이언트를 게스트 가상 머신에 설치하는 동적 재구성부를 포함할 수 있다.

Description

심리스 애플리케이션 통합 장치 및 방법{Apparatus and method for seamless application integration}
가상화 기술을 활용한 시스템에서의 애플리케이션의 심리스한 통합 기술과 관련된다.
시스템 가상화 기술이란 물리적 장치의 하드웨어를 여러 개의 가상화된 하드웨어로 표현함으로써 하나의 물리적 장치에서 다양한 운영체제가 동작할 수 있도록 하는 기술을 말한다. 서로 다른 종류의 운영체제들은 시스템 가상화 기술이 제공하는 가상화 환경에서 독립적으로 동작할 수 있다. 따라서 사용자가 어떤 애플리케이션을 사용할 때, 그 애플리케이션이 어떤 운영체제에서 실행되는 애플리케이션인지 인식할 필요없이 심리스하게 애플리케이션을 사용할 수 있다.
가상화된 시스템은 각 운영체제에 대응되는 다수의 도메인을 포함한다. 도메인은 시스템 하드웨어에 접근할 수 있는 메인 도메인과 시스템 하드웨어에 접근할 수 없는 서브 도메인으로 구분할 수 있다. 사용자는 시스템 가상화 기술에 따라 서브 도메인의 애플리케이션이 메인 도메인에서 실행되는 것처럼 느낄 수 있다.
이와 같이 심리스한 애플리케이션 통합 환경을 제공하기 위하여 각 도메인에는 심리스 애플리케이션 통합 모듈이 설치된다. 그런데 서브 도메인의 운영체제가 외부로부터 이주해온 운영체제인 경우 그 서브 도메인에 필요한 심리스 애플리케이션 통합 모듈이 설치되어 있지 아니할 수 있다. 또한 각 도메인에 설치된 심리스 애플리케이션 통합 모듈이 서로 매칭되지 아니하거나 각 도메인의 실행 환경이 변경되면 적절하게 심리스 애플리케이션 통합 환경을 사용자에게 제공할 수가 없다.
사용자의 개입없이 자동으로 필요한 심리스 애플리케이션 통합 모듈을 동적으로 재구성할 수 있는 심리스 애플리케이션 통합 장치 및 방법이 제공된다.
본 발명의 일 양상에 따른 장치는, 호스트 가상 머신 및 적어도 하나의 게스트 가상 머신을 포함하는 가상화 시스템에서 심리스 애플리케이션 통합(SAI, seamless application integration) 환경을 제공하기 위해 호스트 가상 머신에 설치되는 심리스 통합 서버, 및 심리스 통합 서버에 대응되는 심리스 통합 클라이언트가 게스트 가상 머신에 설치되어 있는지 여부를 판단하고, 판단 결과에 따라 심리스 통합 클라이언트를 게스트 가상 머신에 설치하는 동적 재구성부를 포함할 수 있다.
본 발명의 다른 양상에 따른 장치는, 호스트 가상 머신 및 적어도 하나의 게스트 가상 머신을 포함하는 가상화 시스템에서 심리스 애플리케이션 통합(SAI, seamless application integration) 환경을 제공하기 위해 호스트 가상 머신에 설치되는 심리스 통합 서버, 심리스 통합 서버에 대응되고 게스트 가상 머신에 설치되는 심리스 통합 클라이언트, 및 심리스 통합 서버와 심리스 통합 클라이언트의 버전이 일치하는지 여부를 판단하고, 판단 결과에 따라 심리스 통합 클라이언트를 교체하는 동적 재구성부를 포함할 수 있다.
본 발명의 또 다른 양상에 따른 장치는, 호스트 가상 머신 및 적어도 하나의 게스트 가상 머신을 포함하는 가상화 시스템에서 심리스 애플리케이션 통합(SAI, seamless application integration) 환경을 제공하기 위해 호스트 가상 머신에 설치되는 심리스 통합 서버, 심리스 통합 서버에 대응되고 게스트 가상 머신에 설치되는 심리스 통합 클라이언트, 심리스 통합 서버의 각 컴포넌트가 게스트 가상 머신의 실행 환경을 지원하는지 여부를 판단하고, 판단 결과에 따라 심리스 통합 서버의 각 컴포넌트를 교체 또는 추가하는 동적 재구성 서버, 및 심리스 통합 클라이언트의 각 컴포넌트가 호스트 가상 머신의 실행 환경을 지원하는지 여부를 판단하고, 판단 결과에 따라 심리스 통합 클라이언트의 각 컴포넌트를 교체 또는 추가하는 동적 재구성 클라이언트를 포함할 수 있다.
본 발명의 일 양상에 따른 방법은, 호스트 가상 머신 및 적어도 하나의 게스트 가상 머신을 포함하는 가상화 시스템에서 심리스 애플리케이션 통합(SAI, seamless application integration) 환경을 제공하기 위해 호스트 가상 머신에 설치되는 심리스 통합 서버에 대응되는 심리스 통합 클라이언트가 게스트 가상 머신에 설치되어 있는지 여부를 판단하는 단계, 판단 결과에 따라 심리스 통합 클라이언트를 게스트 가상 머신에 설치하는 단계, 심리스 통합 서버와 심리스 통합 클라이언트의 버전이 일치하는지 여부를 판단하는 단계, 판단 결과에 따라 심리스 통합 클라이언트를 교체하는 단계, 심리스 통합 서버가 게스트 가상 머신의 실행 환경을 지원하는지 여부 또는 심리스 통합 클라이언트가 호스트 가상 머신의 실행 환경을 지원하는지 여부를 판단하는 단계, 및 판단 결과에 따라 심리스 통합 서버의 컴포넌트 또는 심리스 통합 클라이언트의 컴포넌트를 교체 또는 추가하는 단계를 포함할 수 있다.
개시된 내용에 의하면, 심리스 애플리케이션 통합 모듈이 설치되지 아니한 게스트 가상 머신의 런타임시에 동적으로 필요한 심리스 애플리케이션 통합 모듈이 설치되기 때문에 다양한 게스트 가상 머신에 대하여 심리스 애플리케이션 통합 환경을 제공할 수 있다. 또한, 심리스 애플리케이션 통합 모듈간의 버전이 일치하지 아니하거나 실행 환경이 변경되는 경우에도 동적으로 필요한 심리스 애플리케이션 통합 모듈을 교체, 추가, 또는 설치하기 때문에 보다 유연한 애플리케이션 통합 환경을 제공할 수가 있다.
도 1a 및 도 1b는 본 발명의 일 실시예에 따른 가상화 시스템을 도시한다.
도 2는 본 발명의 일 실시예에 따른 심리스 애플리케이션 통합 장치를 도시한다.
도 3a 내지 도 3d는 본 발명의 일 실시예에 따른 심리스 애플리케이션 통합 환경에 따른 가상화 시스템의 인터페이스 화면을 도시한다.
도 4는 본 발명의 다른 실시예에 따른 심리스 애플리케이션 통합 장치를 도시한다.
도 5는 본 발명의 일 실시예에 따른 심리스 애플리케이션 통합 방법을 도시한다.
도 6은 본 발명의 일 실시예에 따른 심리스 애플리케이션 통합 모듈의 설치 방법을 도시한다.
도 7은 본 발명의 다른 실시예에 따른 심리스 애플리케이션 통합 모듈의 설치 방법을 도시한다.
도 8은 본 발명의 일 실시예에 따른 버전 확인 방법을 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1a 및 도 1b는 본 발명의 일 실시예에 따른 가상화 시스템을 도시한다. 본 실시예에 따라 도 1a는 Type 1 가상화 시스템, 도 1b는 Type 2 가상화 시스템으로 부를 수 있다.
도 1a를 참조하면, Type 1 가상화 시스템(110)은 다수의 가상 머신(101), 가상 머신 모니터(102), 및 하드웨어(103)를 포함한다.
각각의 가상 머신(101)은 별도의 운영체제(OS)가 될 수 있다. 예컨대, 어떤 가상 머신은 윈도우즈가 될 수 있고, 다른 가상 머신은 리눅스가 될 수 있다. 서로 다른 종류의 운영체제는 가상 머신 모니터(102)를 통해 동일한 하드웨어(103) 상에서 동작할 수 있다.
가상 머신 모니터(102)는 서로 다른 종류의 가상 머신(101)이 동일한 하드웨어(103) 상에서 동작할 수 있도록 하는 실행 환경을 제공한다. 예컨대, 가상 머신 모니터(102)는 가상 머신들간의 통신 채널을 제공할 수 있다. 이러한 가상 머신 모니터(102)는 Xen, Hypervisor, L4 등의 소프트웨어를 포함할 수 있다.
각각의 가상 머신(101)은 컨트롤 가상 머신(이하, Control VM)과 게스트 가상 머신(이하, Guest VM)으로 분류될 수 있다. Control VM은 Guest VM의 생성, 시작, 종료, 삭제 등 Guest VM을 제어하는 가상 머신을 말하며, 가상 머신 모니터(102)가 주로 가장 먼저 생성하는 가상 머신이다. Guest VM은 Control VM을 통해 가상 머신 모니터에 의해 생성된 가상 머신을 말한다.
Control VM과 Guest VM은 처음부터 정해질 수도 있고 경우에 따라 Control VM이 Guest VM으로 또는 Guest VM이 Control VM으로 전환될 수도 있다.
도 1b를 참조하면, Type 2 가상화 시스템(120)은 다수의 가상 머신(101), 가상 머신 모니터(102), 및 하드웨어(103)를 포함한다.
Type 1 가상화 시스템(110)과 Type 2 가상화 시스템(120)의 차이는 가상 머신 모니터(102)의 위치에 있다. Type 1 가상화 시스템(110)에서는, 하드웨어(103) 계층위에 가상 머신 모니터(102) 계층이 있고, 가상 머신 모니터(102) 계층위에 가상 머신(101) 계층이 형성된다. Type 2 가상화 시스템(120)에서는, 하드웨어(103) 계층위에 Host OS 계층이 형성되고, Host OS(104) 계층위에 가상 머신 모니터(102) 계층이 형성된다.
Type 1 가상화 시스템(110)과 Type 2 가상화 시스템(120)에서, 각각의 가상 머신 모니터(102)의 기능은 동일하다. Type 1 가상화 시스템(110)과 Type 2 가상화 시스템(120)에서, Control VM과 Host OS은 서로 대응된다.
본 실시예에 따라, Contol VM 또는 Host OS는 호스트 가상 머신(이하, Host VM)으로 부를 수 있다.
도 2는 본 발명의 일 실시예에 따른 심리스 애플리케이션 통합(이하, SAI; Seamless Application Integration) 장치를 도시한다.
도 2를 참조하면, SAI 장치(200)는 SAI 서버(이하, SAI server)(210)와 SAI 클라이언트(이하, SAI client)(220)(230)를 포함할 수 있다. 예를 들어, SAI server(210)는 Host VM에서 동작하는 부분이고, SAI client(220)(230)는 Guest VM에서 동작하는 부분이 될 수 있다.
각각의 SAI server(210) 및 SAI client(220)(230)는 심리스 통합부(201) 및 동적 재구성부(202)를 포함할 수 있다. 심리스 통합부(201)는 가상화 시스템에서 심리스 애플리케이션 통합 환경을 제공해주는 부분이고, 동적 재구성부(202)는 심리스 통합부(201) 또는 심리스 통합부(201)의 컴포넌트를 동적으로 설치, 교체 또는 변경하는 부분이다. 편의상 SAI server(210)의 심리스 통합부(201)를 심리스 통합 서버라로 지칭하고, SAI client(220)(230)의 심리스 통합부(201)를 심리스 통합 클라이언트라고 지칭할 수 있다. 또한 마찬가지로 SAI server(210)의 동적 재구성부(202)를 동적 재구성 서버라 지칭하고, SAI client(220)(230)의 동적 재구성부(202)를 동적 재구성 클라이언트라 지칭할 수 있다.
심리스 통합부(201)는 가상화 시스템에서 심리스한 애플리케이션 통합 환경을 사용자에게 제공한다. 예를 들어, SAI server(210)의 심리스 통합 서버는 SAI client #1(220)의 심리스 통합 클라이언트 #1과 통신하여 Guest VM #1의 애플리케이션들을 Host VM의 애플리케이션과 동일하게 다룰 수 있도록 하는 인터페이스를 사용자에게 제공할 수 있다.
동적 재구성부(202)는 심리스 통합부(201)를 동적으로 재구성한다. 다시 말해, 동적 재구성부(202)는 SAI server(210)의 심리스 통합 서버 또는 SAI client(220)(230)의 심리스 통합 클라이언트를 구성하는 각 컴포넌트(또는 구성요소)를 Guest VM의 런타임시에 동적으로 설치, 교체 또는 변경할 수 있다.
일 예로써, 동적 재구성부(202)는 Guest VM #3에 SAI client가 설치되어 있지 아니한 경우, Guest VM #3에 SAI client를 설치할 수 있다.
다른 예로써, 동적 재구성부(202)는 Guest VM #2에 설치된 SAI client #2(230)의 버전과 Host VM에 설치된 SAI server(210)의 버전이 일치하지 않는 경우, SAI client #2(230)를 버전에 맞게 교체할 수 있다.
또 다른 예로써, 동적 재구성부(202)는 Guest VM #1에 설치된 SAI client #1(220)이 Host VM의 실행 환경을 지원하지 아니하는 경우, SAI client #1(220)을 구성하는 컴포넌트들의 전부 또는 일부를 Host VM의 실행 환경을 지원할 수 있는 것으로 변경할 수 있다. 또한 동적 재구성부(202)는 Host VM에 설치된 SAI server(210)가 Guest VM #1의 실행 환경을 지원하지 아니하는 경우, SAI server(210)를 구성하는 컴포넌트들의 전부 또는 일부를 Guest VM #1의 실행 환경을 지원할 수 있는 것으로 변경할 수 있다.
도 3a 내지 도 3d는 본 발명의 일 실시예에 따른 심리스 애플리케이션 통합 환경에 따른 가상화 시스템의 인터페이스 화면을 도시한다.
도 3a에서, Guest VM의 애플리케이션에 대한 아이콘(301)은 Host VM의 애플리케이션에 대한 아이콘(302)이 표시되는 방식과 동일한 방식으로 Host VM의 홈스크린(homescreen)에 표시될 수 있다. 통지창(303)은 Guset VM에서 발생한 이벤트 정보를 표시한다. 예컨대, 통지창(303)은 Host VM의 위젯형태로 존재할 수 있다. Guest VM의 상태 정보는 통지창(303) 또는 Host VM의 홈스크린이 제공하는 상태바(304)에 트레이 형태로 표시될 수도 있다.
사용자가 Guest VM의 애플리케이션에 대한 아이콘(302)을 선택하면, 도 3b와 같이 Guest VM의 애플리케이션에 대한 애플리케이션 실행창(window)이 표시될 수 있다.
도 3b에서, Guest VM 애플리케이션 실행창(305)은 Host VM 애플리케이션 실행창이 표시되는 방식과 동일한 방식으로 표시될 수 있다. 따라서 Guest VM 애플리케이션은 원래부터 Host VM을 기반으로 실행되는 애플리케이션인 것으로 사용자에게 인식되는 것이 가능하다.
본 실시예에 따라, 가상화 시스템은 foreground domain switching mode를 제공할 수 있다. Foregrond domain이란 human input device(HID) 및 display device를 배타적(exclusive)으로 사용하는 도메인으로 정의될 수 있다. 본 실시예에 따른 가상화 시스템은 Host VM 및 Guest VM 중에서 어느 하나를 foreground domain으로 선정하고, 선정된 VM의 표시화면을 메인화면으로 지정하는 것이 가능하다.
예컨대, 도 3c에서, Host VM이 foreground domain으로 지정된 경우, Host VM 애플리케이션 실행창이 full size로 표시될 수 있다. Guest VM의 이벤트 정보를 제공하는 통지창(303) 및 상태바(304)는 full size로 표시된 Host VM 애플리케이션 실행창의 일부 영역에 표시될 수 있다.
또한, 도 3d에서, Guest VM이 foreground domain으로 지정된 경우, Guest VM 애플리케이션 실행창이 full size로 표시될 수도 있다. 이때 통지창(306)은 Host VM에서 발생한 이벤트 정보를 제공할 수 있다. 또한 Guest VM이 상태바(307)를 제공하는 경우, Host VM의 이벤트 정보는 상태바(307)에 트레이 형태로 표시될 수도 있다.
도 4는 본 발명의 다른 실시예에 따른 심리스 애플리케이션 통합(이하, SAI; Seamless Application Integration) 장치를 도시한다.
도 4를 참조하면, SAI 장치(400)는 SAI server(410)와 SAI client(420)를 포함할 수 있다.
SAI server(410)는 심리스 통합 서버(431) 및 동적 재구성 서버(432)를 포함할 수 있다.
심리스 통합 서버(431)는 ALIS(Application Launch Integration Server)(451), AWIS(Application Window Integration Server)(452), ND(Notification Displayer)(453), 및 NI(Notification Integration)(454)를 포함할 수 있다.
ALIS(451)는 Host VM의 애플리케이션을 실행하기 위한 인터페이스와 동일한 형식의 인터페이스를 생성한다. 인터페이스 생성에 필요한 정보는 SAI client(420)의 ALIC(Application Launch Integration client)(461)로부터 제공받을 수 있다. 생성되는 인터페이스는 도 3a 내지 도 3d와 같이 실행 아이콘 및 정보창 등이 될 수 있다. 예컨대, ALIS(451)는 Guest VM 애플리케이션 실행을 위한 인터페이스로 아이콘을 생성할 때, SAI client(420)의 ALIC(461)로부터 받은 아이콘 이미지를 Host VM의 실행환경에 따라 변경할 수 있다.
ALIS(451)는 Host VM상에서 사용자가 Guest VM의 애플리케이션의 실행을 요청한 경우, 해당 Guest VM의 ALIC(461)로 애플리케이션 실행 요청을 전달한다.
ALIS(451)는 Guest VM의 애플리케이션의 실행이 종료되었을 때 해당 애플리케이션과 관련된 relay 프로그램을 종료시킨다.
AWIS(Application Window Integration Server)(452)는 Guest VM의 애플리케이션이 실행될 때의 실행창 표시를 제어한다. 예컨대, AWIS(452)는, foreground domain switching mode가 지원되지 않는 가상화 시스템에서, Guest VM의 애플리케이션 실행창을 Host VM의 스크린 디스플레이 영역에 표시할 수 있다. 또한, AWIS(452)는, foreground domain switching mode가 지원되는 가상화 시스템에서, 가상 머신 모니터(102, 도 1a 및 도 1b)에게 foreground domain의 전환을 요청하고, Guest VM의 애플리케이션 실행창을 Guest VM의 스크린 디스플레이 영역에 full size로 표시할 수도 있다.
ND(Notification Displayer)(453)는 SAI client(420)의 NI(Notification Integration)(464)와 통신하여 Guest VM에서 발생한 정보를 Host VM의 화면에 출력한다. ND(453)는 각 Guest VM마다 별도로 존재할 수도 있고 하나의 ND(453)가 다수의 Guest VM을 관리할 수도 있다.
NI(Notification Integration)(454)는 Host VM에서 발생한 이벤트를 SAI client(420)의 ND(Notification Displayer)(454)로 전달한다.
동적 재구성 서버(432)는 AIVM(Application Integration Version Manager)(455) 및 DCII(Dynamic Code Insertion Invocation)(456)를 포함할 수 있다.
AIVM(Application Integration Version Manager)(455)은 SAI client(420)의 AIVM(Application Integration Version Manager)(465)과 버전 확인 메시지를 주고 받으면서 SAI server(410)와 SAI client(420)의 버전을 일치시킨다.
DCII(Dynamic Code Insertion Invocation)(456)는 Guest VM에 SAI client(420)가 설치되지 아니한 경우, Guest VM에 SAI client(420)를 설치한다.
예컨대, migrated VM이 Guest VM으로 동작하고 그 Guest VM에 SAI client(420)가 설치되어 있지 아니한 경우, DCII(456)는 심리스 애플리케이션 통합 환경을 지원하기 위해 migrated VM에 SAI client(420)를 삽입하는 것이 가능하다. 또한, DCII(456)는 migrated VM 종료될 때, 설치되었던 SAI client(420)를 제거할 수도 있다.
SAI server(410)의 각 컴포넌트는 Guest VM의 심리스 애플리케이션 통합 환경을 지원하기 위하여 런타임시에 동적으로 재구성될 수 있다. 예컨대, SAI server(410)의 각 컴포넌트들은 plug-and-play를 통해 SAI client(420)를 지원할 수 있는 컴포넌트들로 재구성될 수 있다. 이때 SAI client(420)를 지원할 수 있는 컴포넌트들은 로컬 스토리지 또는 네트워크를 통해 외부로부터 제공받는 것이 가능하다. 또한 SAI client(420)의 설치 및 제거는 VM migration 기법을 이용하여 물리적으로 원격지에 있는 시스템에서 수행될 수도 있다.
SAI client(420)는 심리스 통합 클라이언트(441) 및 동적 재구성 클라이언트(442)를 포함할 수 있다.
심리스 통합 클라이언트(441)는 ALIC(Application Launch Integration Client)(461), AWIC(Application Window Integration Client)(462), NI(Notification Integration)(463), 및 ND(Notification Displayer)(464)를 포함할 수 있다.
ALIC(Application Launch Integration Client)(461)는 Guest VM에서 Host VM으로 접근할 애플리케이션을 정하고 인터페이스 구성에 필요한 아이콘 이미지, 애플리케이션의 식별자, 및 실행 경로 등을 포함하는 정보를 SAI server(410)의 ALIS(451)로 제공한다.
ALIC(461)는 SAI server(410)의 ALIS(451)로부터 실행을 요청받은 애플리케이션을 실행하고, 해당 애플리케이션의 실행이 종료되면 종료 정보를 SAI server(410)의 ALIS(451)로 제공한다.
AWIC(Application Window Integration Client)(462)는 Host VM으로부터 전달받은 사용자 입력을 Guest VM에 전달하고 애플리케이션의 실행에 따른 그래픽 또는 사운드 출력을 Host VM에 전달한다.
NI(Notification Integration)(463)과 ND(Notification Displayer)(464)는 SAI server(410)의 NI(454) 및 ND(453)와 동일하다.
동적 재구성 클라이언트(442)는 AIVM(Application Integration Version Manager)(465) 및 SAI bootstrap code(466)를 포함할 수 있다.
AIVM(Application Integration Version Manager)(465)는 SAI server(410)의 AIVM(455)과 버전 확인 메시지를 주고받으면서 SAI server(410)와 SAI client(420)의 버전을 일치시킨다.
SAI bootstrap code(466)는 Guest VM에 SAI client(420)가 설치되어 있지 않을 경우 SAI server(410)의 DCII(456)에 의해 삽입되는 코드로서, Guest VM에 SAI client(420)를 설치하고 실행시키는 역할을 수행한다.
또한 SAI client(420)의 각 컴포넌트 역시 SAI server(410)의 각 컴포넌트와 마찬가지로 심리스 애플리케이션 통합 환경을 지원하기 위하여 런타임시에 동적으로 재구성될 수 있다.
도 5는 본 발명의 일 실시예에 따른 심리스 애플리케이션 통합 방법을 도시한다.
도 5를 참조하면, Guest VM의 실행이 준비되면(501), SAI server는 Guest VM에 SAI client가 설치되어 있는지 여부를 판단한다(502). 예를 들어, 도 2에서, Guest VM #3가 실행 준비 중인 경우, SAI server(210)가 Guest VM #3에 SAI client 설치 여부를 조사하는 것이 가능하다. 만약, Guest VM #3에 SAI client가 설치되어 있지 아니한 경우, Guest VM #3에 적절한 SAI client를 설치한다(503). Guest VM #3에 SAI client 설치 여부에 대한 판단 방법 및 설치 방법의 예는 도 6 및 도 7과 같다.
도 6은 본 발명의 일 실시예에 따른 SAI client 설치 방법을 도시한다.
도 6을 참조하면, SAI server는 Guest VM #3에 SAI client 설치 여부를 판단한다(601). 예컨대, migrated VM의 경우, 처음부터 시스템에서 동작한 가상 머신이 아니고 외부 시스템에서부터 옮겨온 가상 머신이므로 SAI client가 설치되어 있지 아니할 수 있다.
예컨대, 도 2 및 도 6에서, SAI server(210)는 Guest VM #3의 프로세스 리스트 또는 파일 시스템을 조사해서 SAI client 설치 여부를 검출할 수 있다. 예를 들어, SAI server(210)의 동적 재구성 서버는 가상 머신 모니터(102, 도 1a)를 통해 Guest VM #3의 메모리 영역에 접근할 수 있다. Guest VM #3의 메모리 영역에 접근한 동적 재구성 서버는 VM introspection 기법을 이용하여 SAI identifier를 조사하고 조사 결과에 따라 SAI client 설치 여부를 검출할 수 있다.
또한 SAI server(210)의 동적 재구성 서버는 Guest VM #3의 커널에 유지되고 있는 프로세스 리스트 정보에서 SAI client instance가 있는지 여부를 검사할 수도 있다. 만약, 프로세스 리스트에 SAI client instance로 추정되는 프로세스가 없다면, 동적 재구성 서버는 추가적으로 Guest VM의 파일 시스템을 검색하여 SAI client 설치여부를 검출할 수도 있다.
Guest VM #3에 SAI client가 설치되어 있지 않다면, SAI server(201)는 Guest VM #3의 파일 시스템에 접근하여 SAI client 설치 파일을 저장한다(602).
그리고 SAI server(210)는 가상 머신 모니터(102)를 통해 Guest VM #3의 메모리 영역에 접근하여 SAI client를 구동시키는 부트스트랩 코드(bootstrap code)를 삽입한다(603).
그리고 SAI server(210)는 가상 머신 모니터(102)를 통해 동작중인 Guest VM을 정지시키고 Guest VM의 현재 레지스터들의 VCPU context를 저장한 후 프로그램 카운터의 위치를 부트스트랩 코드가 삽입된 위치로 변경한다(604).
프로그램 카운터의 지시 위치가 변경되면 부트스트랩 코드에 의해 SAI client가 설치 및 실행된다(605).
또한, SAI server(210)는 Guest VM에서의 SAI client bootstrapping이 완료되면, 저장해 놓은 Guest VM의 VCPU context를 복원하여 Guest VM이 bootstrap code가 삽입하기 이전에 수행하던 작업을 계속 진행할 수 있도록 한다(606). SAI server(210)는 SAI client 프로그램 코드의 삽입으로 인해 Guest VM #3의 메모리 영역과 CPU 캐쉬 및 메모리 변환 색인 버퍼(TLB, translation lookaside buffer)의 일관성이 유지되는지 판단 할 수 있다.
메모리 영역이 수정된 경우, 메모리 일관성을 위해 수정된 메모리 영역에 대한 변환 색인 버퍼(TLB, translation lookaside buffer)와 CPU 캐쉬에 대해 플러시를 수행할 수 있다(607). 또한, 메모리 영역이 수정되지 아니한 경우, CPU 캐쉬 플러시를 수행하고 VCPU context를 복원하여 프로그램 카운터의 위치를 원래의 위치로 복귀시킬 수 있다(608).
도 7은 본 발명의 다른 실시예에 따른 SAI client 설치 방법을 도시한다.
도 7을 참조하면, SAI client는 local machine(701)에서 설치될 수도 있고 remote machine(702)에서 설치될 수도 있다. Local machine(701)은 Host VM이 설치된 컴퓨팅 시스템이 될 수 있고, remote machine(702)은 local machine(701)과 물리적으로 분리된 컴퓨팅 시스템이 될 수 있다.
local machine(701)의 SAI server는 remote machine(702)에 있는 Guest VM에 필요한 SAI client를 설치하고 구동을 준비시킨 다음 SAI client가 설치된 Guest VM을 remote machine(702)으로부터 수신해서 Guest VM을 실행시킬 수 있다. 이 때 local machine(701)의 SAI server는 현재 local machine(701)에서 동작 중인 Guest VM의 런타임 환경 정보를 remote machine(702)으로 전송할 수 있다. 런타임 환경 정보를 수신한 remote machine(702)은 도 6과 같이 Guest VM에 SAI client를 설치하는 것이 가능하다.
마찬가지로, Guest VM 종료 시에 SAI client를 제거할 필요가 있는 경우, local machine(701)이 remote machine(702)으로 Guest VM의 런타임 환경 정보를 전송하고, remote machine(702)이 code cleanup을 실행할 수 있다.
예를 들어, 도 7에서, local machine(701)은 휴대 단말이 될 수 있고 remote machine(702)은 휴대 단말과 통신 가능하게 연결되는 퍼스널 컴퓨터가 될 수 있다. 휴대 단말에 SAI client가 설치되지 아니한 Guest VM이 존재하는 경우, VM migration을 이용하여 퍼스널 컴퓨터에서 SAI client를 설치한 후 SAI client가 설치된 Guest VM을 휴대 단말로 전송하는 것이 가능하다.
다시 도 5를 참조하면, 단계 502 및 단계 503을 통해 Guest VM에 필요한 SAI client가 설치되어 있는 경우, SAI server와 SAI client의 버전이 일치하는지 여부를 판단한다(504).
만약, SAI server와 SAI client의 버전이 일치하지 않는 경우, SAI client를 버전에 맞게 교체한다(505). 예컨대, 도 2에서, SAI server(210)의 심리스 통합 서버와 SAI client #2(230)의 심리스 통합 클라이언트 #2간의 버전이 서로 일치하지 않는 경우, SAI server(210)의 동적 재구성 서버와 SAI client #2(230)의 동적 재구성 클라이언트 #2가 통신을 수행하여 SAI client #2(230)의 심리스 통합 클라이언트 #2를 교체하는 것이 가능하다.
도 8은 본 발명의 일 실시예에 따른 SAI server/client의 버전 확인 및 교체의 방법을 도시한다.
도 8에서, 동적 재구성 서버(810)가 버전 확인 메시지를 동적 재구성 클라이언트(820)로 전송하는 것이 가능하다(801).
버전 확인 메시지를 수신한 동적 재구성 클라이언트(820)는 Guest VM의 심리스 통합 클라이언트가 Host VM의 심리스 통합 서버와 버전이 일치하는지 여부를 확인한다(802).
만약 버전이 일치하지 아니하면 동적 재구성 클라이언트(820)는 Guest VM의 심리스 통합 클라이언트를 Host VM의 심리스 통합 서버와 일치하는 버전의 심리스 통합 클라이언트로 교체한다(803).
버전에 맞는 심리스 통합 클라이언트를 교체한 동적 재구성 클라이언트(820)는 버전 확인 메시지에 대한 응답 메시지를 Host VM의 동적 재구성 서버(810)로 전송한다(804).
다시 도 5에서, 단계 504 및 단계 505를 통해 SAI server와 SAI client의 버전이 일치되면, SAI server가 Guest VM의 실행 환경을 지원하는지 여부 또는 SAI client가 Host VM의 실행 환경을 지원하는지 여부를 판단한다(506).
예컨대, 도 2에서, Host VM에 설치된 SAI server(210)와 Guest VM #1에 설치된 SAI client #1(220)이 상대방의 실행 환경을 지원할 수 있을 정도로 매칭이 되는지 여부를 판단할 수 있다. 만약, SAI server(210)가 Guest VM #1의 실행 환경을 지원하지 않거나 SAI client #1(220)이 Host VM의 실행 환경을 지원하는지 않는 경우, SAI server(210) 또는 SAI client #1(220)에 필요한 컴포넌트를 교체 또는 추가한다(507). 그리고 SAI 장치를 실행한다(508).
예를 들어, 심리스 통합 클라이언트의 컴포넌트 중에서 Host VM의 실행 환경에 의존적인 ND(Notification Displayer)(464)를 Host VM의 실행 환경에 맞는 것으로 교체될 수 있다.
이상에서 살펴본 것과 같이, 개시된 장치 및 방법에 의하면, SAI 모듈이 설치되지 아니한 Guest VM이 구동되는 경우에 SAI 모듈이 런타임에 설치되기 때문에 다양한 Guest VM에 대해 심리스한 애플리케이션 통합 환경을 제공할 수가 있다. 또한, SAI 모듈 또는 실행 환경이 변경되더라도 필요한 컴포넌트가 동적으로 구성되기 때문에 보다 유연한 심리스 애플리케이션 통합 환경을 구축할 수가 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.

Claims (11)

  1. 호스트 가상 머신 및 적어도 하나의 게스트 가상 머신을 포함하는 가상화 시스템에서 심리스 애플리케이션 통합(SAI, seamless application integration) 환경을 제공하기 위해 호스트 가상 머신에 설치되는 심리스 통합 서버; 및
    상기 심리스 통합 서버에 대응되는 심리스 통합 클라이언트가 게스트 가상 머신에 설치되어 있는지 여부를 판단하고, 판단 결과에 따라 심리스 통합 클라이언트를 게스트 가상 머신에 설치하는 동적 재구성부; 를 포함하는 심리스 애플리케이션 통합 장치.
  2. 제 1 항에 있어서, 상기 동적 재구성부는
    게스트 가상 머신의 프로세스 리스트 또는 파일 시스템을 조사하여 심리스 통합 클라이언트의 설치 여부를 검출하는 심리스 애플리케이션 통합 장치.
  3. 제 1 항에 있어서, 상기 동적 재구성부는
    게스트 가상 머신의 파일 시스템에 접근하여 심리스 통합 클라이언트의 설치 파일을 저장하고,
    게스트 가상 머신의 메모리 영역에 접근하여 심리스 통합 클라이언트를 구동하는 부트스트랩 코드(bootstrap code)를 삽입하고,
    게스트 가상 머신의 프로그램 카운터의 위치를 상기 부트스트랩 코드가 삽입된 위치로 변경하는 심리스 애플리케이션 통합 장치.
  4. 제 1 항에 있어서, 상기 동적 재구성부는
    설치된 심리스 통합 클라이언트의 실행에 따라 게스트 가상 머신의 메모리 영역이 수정되는지 여부를 판단하고,
    게스트 가상 머신의 메모리 영역이 수정되는 경우, 수정된 메모리 영역에 대한 변환 색인 버퍼(TLB, translation lookaside buffer)의 플러시를 수행하고,
    게스트 가상 머신의 메모리 영역이 수정되지 아니하는 경우, CPU 캐시를 플러시하고 VCPU 컨텍스트를 복원하여 상기 프로그램 카운터의 위치를 원래의 위치로 복귀시키는 심리스 애플리케이션 통합 장치.
  5. 제 1 항에 있어서, 상기 동적 재구성부는
    상기 가상화 시스템과 물리적으로 분리된 원격 시스템상에서 상기 심리스 통합 클라이언트의 설치를 수행하는 심리스 애플리케이션 통합 장치.
  6. 호스트 가상 머신 및 적어도 하나의 게스트 가상 머신을 포함하는 가상화 시스템에서 심리스 애플리케이션 통합(SAI, seamless application integration) 환경을 제공하기 위해 호스트 가상 머신에 설치되는 심리스 통합 서버;
    상기 심리스 통합 서버에 대응되고 게스트 가상 머신에 설치되는 심리스 통합 클라이언트;
    상기 심리스 통합 서버와 상기 심리스 통합 클라이언트의 버전이 일치하는지 여부를 판단하고, 판단 결과에 따라 상기 심리스 통합 클라이언트를 교체하는 동적 재구성부; 를 포함하는 심리스 애플리케이션 통합 장치.
  7. 제 6 항에 있어서, 상기 동적 재구성부는
    버전 확인 메시지를 전송하는 동적 재구성 서버; 및
    상기 버전 확인 메시지를 수신하고, 수신된 버전 확인 메시지에 따라 상기 심리스 통합 클라이언트의 버전이 상기 심리스 통합 서버의 버전과 일치하는지 여부를 판단하고, 판단 결과에 따라 상기 심리스 통합 클라이언트를 버전에 맞게 교체하고, 상기 버전 확인 메시지에 대해 응답하는 동적 재구성 클라이언트; 를 포함하는 심리스 애플리케이션 통합 장치.
  8. 호스트 가상 머신 및 적어도 하나의 게스트 가상 머신을 포함하는 가상화 시스템에서 심리스 애플리케이션 통합(SAI, seamless application integration) 환경을 제공하기 위해 호스트 가상 머신에 설치되는 심리스 통합 서버;
    상기 심리스 통합 서버에 대응되고 게스트 가상 머신에 설치되는 심리스 통합 클라이언트;
    상기 심리스 통합 서버의 각 컴포넌트가 게스트 가상 머신의 실행 환경을 지원하는지 여부를 판단하고, 판단 결과에 따라 상기 심리스 통합 서버의 각 컴포넌트를 교체 또는 추가하는 동적 재구성 서버; 및
    상기 심리스 통합 클라이언트의 각 컴포넌트가 호스트 가상 머신의 실행 환경을 지원하는지 여부를 판단하고, 판단 결과에 따라 상기 심리스 통합 클라이언트의 각 컴포넌트를 교체 또는 추가하는 동적 재구성 클라이언트; 를 포함하는 심리스 애플리케이션 통합 장치.
  9. 호스트 가상 머신 및 적어도 하나의 게스트 가상 머신을 포함하는 가상화 시스템에서 심리스 애플리케이션 통합(SAI, seamless application integration) 환경을 제공하기 위해 호스트 가상 머신에 설치되는 심리스 통합 서버에 대응되는 심리스 통합 클라이언트가 게스트 가상 머신에 설치되어 있는지 여부를 판단하는 단계; 및
    상기 판단 결과에 따라 심리스 통합 클라이언트를 게스트 가상 머신에 설치하는 단계; 를 포함하는 심리스 애플리케이션 통합 방법.
  10. 제 9 항에 있어서,
    상기 심리스 통합 서버와 상기 심리스 통합 클라이언트의 버전이 일치하는지 여부를 판단하는 단계; 및
    상기 판단 결과에 따라 상기 심리스 통합 클라이언트를 교체하는 단계; 를 더 포함하는 심리스 애플리케이션 통합 방법.
  11. 제 10 항에 있어서,
    상기 심리스 통합 서버가 게스트 가상 머신의 실행 환경을 지원하는지 여부 또는 상기 심리스 통합 클라이언트가 호스트 가상 머신의 실행 환경을 지원하는지 여부를 판단하는 단계; 및
    판단 결과에 따라 상기 심리스 통합 서버의 컴포넌트 또는 상기 심리스 통합 클라이언트의 컴포넌트를 교체 또는 추가하는 단계; 를 더 포함하는 심리스 애플리케이션 통합 방법.
KR1020100130255A 2010-12-17 2010-12-17 심리스 애플리케이션 통합 장치 및 방법 KR20120068573A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020100130255A KR20120068573A (ko) 2010-12-17 2010-12-17 심리스 애플리케이션 통합 장치 및 방법
US13/155,120 US9557980B2 (en) 2010-12-17 2011-06-07 Seamless application integration apparatus and method
CN201110159698.8A CN102541620B (zh) 2010-12-17 2011-06-08 无缝应用集成设备和方法
EP11193902A EP2466459A1 (en) 2010-12-17 2011-12-16 Seamless application integration apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100130255A KR20120068573A (ko) 2010-12-17 2010-12-17 심리스 애플리케이션 통합 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20120068573A true KR20120068573A (ko) 2012-06-27

Family

ID=45495639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100130255A KR20120068573A (ko) 2010-12-17 2010-12-17 심리스 애플리케이션 통합 장치 및 방법

Country Status (4)

Country Link
US (1) US9557980B2 (ko)
EP (1) EP2466459A1 (ko)
KR (1) KR20120068573A (ko)
CN (1) CN102541620B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8688734B1 (en) 2011-02-04 2014-04-01 hopTo Inc. System for and methods of controlling user access and/or visibility to directories and files of a computer
US8924970B2 (en) 2011-08-05 2014-12-30 Vmware, Inc. Sharing work environment information sources with personal environment applications
US9171139B2 (en) 2011-08-05 2015-10-27 Vmware, Inc. Lock screens to access work environments on a personal mobile device
TW201543363A (zh) * 2014-05-05 2015-11-16 Pegatron Corp 切換作業系統的方法及電子裝置
JP6530816B2 (ja) * 2016-03-25 2019-06-12 深▲せん▼前海達闥雲端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co., Ltd. アプリケーション起動方法及びその装置
US10599468B2 (en) * 2017-10-25 2020-03-24 Red Hat, Inc. Housekeeping virtual processor overcommit for real time virtualization
CN113722246B (zh) * 2021-11-02 2022-02-08 超验信息科技(长沙)有限公司 处理器中物理内存保护机制的实现方法及装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128277A (ja) 1995-10-27 1997-05-16 Nec Software Ltd 複数os搭載システムにおけるファイル管理方式
US7131122B1 (en) * 2000-08-24 2006-10-31 International Business Machines Corporation Apparatus, system and method for detecting old version of an applet in a client brower's JVM
US8122106B2 (en) * 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US8972977B2 (en) 2004-06-30 2015-03-03 Microsoft Technology Licensing, Llc Systems and methods for providing seamless software compatibility using virtual machines
US7562179B2 (en) * 2004-07-30 2009-07-14 Intel Corporation Maintaining processor resources during architectural events
US7950008B2 (en) * 2005-07-06 2011-05-24 International Business Machines Corporation Software installation in multiple operating systems
US7844721B2 (en) * 2005-11-23 2010-11-30 Qualcomm Incorporated Method for delivery of software upgrade notification to devices in communication systems
EP1977347B1 (en) 2006-01-17 2017-12-27 Microsoft Technology Licensing, LLC Seamless integration of multiple computing environments
US20070220511A1 (en) * 2006-03-15 2007-09-20 Clarke James C Ensuring a stable application debugging environment via a unique hashcode identifier
JP4842690B2 (ja) * 2006-04-14 2011-12-21 富士通株式会社 アプリケーション管理プログラム、アプリケーション管理方法およびアプリケーション管理装置
US7987432B1 (en) * 2006-04-25 2011-07-26 Parallels Holdings, Ltd. Seamless integration and installation of non-native application into native operating system
US7631147B2 (en) * 2006-12-06 2009-12-08 Microsoft Corporation Efficient flushing of translation lookaside buffers in a multiprocessor environment
JP4995015B2 (ja) 2007-09-13 2012-08-08 株式会社日立製作所 仮想計算機の実行可否検査方法
CN101216777B (zh) 2008-01-11 2010-11-03 华中科技大学 一种多虚拟机环境下的快速部署系统
US8612862B2 (en) * 2008-06-27 2013-12-17 Microsoft Corporation Integrated client for access to remote resources
KR101506683B1 (ko) 2008-08-06 2015-03-30 삼성전자 주식회사 다수개의 운영 시스템을 지원하는 장치 및 방법
JP5123800B2 (ja) * 2008-09-16 2013-01-23 株式会社リコー 情報処理装置、情報処理方法及びプログラム
CN101478837B (zh) 2009-01-14 2011-07-20 华为终端有限公司 移动终端的java应用平台及其扩展方法
WO2010100769A1 (ja) 2009-03-06 2010-09-10 株式会社日立製作所 セキュリティ管理装置及び方法
US8924963B2 (en) 2009-03-31 2014-12-30 Microsoft Corporation In-process intermediary to create virtual processes
US8225317B1 (en) * 2009-04-17 2012-07-17 Symantec Corporation Insertion and invocation of virtual appliance agents through exception handling regions of virtual machines
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US20110225513A1 (en) * 2010-03-09 2011-09-15 Avistar Communications Corporation Scalable high-performance interactive real-time media architectures for virtual desktop environments
US8910157B2 (en) * 2010-11-23 2014-12-09 International Business Machines Corporation Optimization of virtual appliance deployment

Also Published As

Publication number Publication date
EP2466459A1 (en) 2012-06-20
CN102541620A (zh) 2012-07-04
US20120159482A1 (en) 2012-06-21
CN102541620B (zh) 2017-03-01
US9557980B2 (en) 2017-01-31

Similar Documents

Publication Publication Date Title
CN113196237B (zh) 计算系统中的容器迁移
JP4921384B2 (ja) メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム
US8527679B2 (en) Apparatus and method for adaptation of input/output interface in virtualization environment
US8332848B2 (en) Mechanism for staged upgrades of a virtual machine system
US7979869B2 (en) Method and system for performing I/O operations using a hypervisor
US8671405B2 (en) Virtual machine crash file generation techniques
US9015705B2 (en) Computing device having a migrated virtual machine accessing physical storage space on another computing device
US12056513B2 (en) Virtual machine migration using multiple, synchronized streams of state data transferring via file descriptors
US20120054742A1 (en) State Separation Of User Data From Operating System In A Pooled VM Environment
US9286094B2 (en) Human interface device virtualization using paravirtual USB system
CN109168328B (zh) 虚拟机迁移的方法、装置和虚拟化系统
KR20120068573A (ko) 심리스 애플리케이션 통합 장치 및 방법
CN104536802A (zh) 一种实现应用调用的方法及虚拟机
KR20100057306A (ko) 가상화 환경에서 보안 정보를 제공하기 위한 장치 및 방법
CN110968392B (zh) 一种升级虚拟化模拟器的方法和装置
CN106796507A (zh) 无需内容转换支持计算设备中的多操作系统环境
JP5346405B2 (ja) ネットワークシステム
KR101665976B1 (ko) 운영 체제 커널의 자동 반가상화 장치 및 방법
WO2013145434A1 (ja) ネットワークシステム及びその制御方法
US10565355B2 (en) Techniques of managing licenses of virtual desktops
US11327779B2 (en) Parallelized virtual machine configuration
KR20220048311A (ko) 가상화 환경에서 사용자 가상머신의 화면을 미러링하는 방법
EP4321998A1 (en) Performance optimized task duplication and migration
CN113485790B (zh) 一种虚拟机的重启方法、迁移方法和相关设备
US11113087B2 (en) Techniques of discovering VDI systems and synchronizing operation information of VDI systems by sending discovery messages and information messages

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application