KR101740327B1 - 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법 - Google Patents

소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법 Download PDF

Info

Publication number
KR101740327B1
KR101740327B1 KR1020120132779A KR20120132779A KR101740327B1 KR 101740327 B1 KR101740327 B1 KR 101740327B1 KR 1020120132779 A KR1020120132779 A KR 1020120132779A KR 20120132779 A KR20120132779 A KR 20120132779A KR 101740327 B1 KR101740327 B1 KR 101740327B1
Authority
KR
South Korea
Prior art keywords
software
server module
graphic data
execution
file
Prior art date
Application number
KR1020120132779A
Other languages
English (en)
Other versions
KR20140065837A (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 한국전자통신연구원
Priority to KR1020120132779A priority Critical patent/KR101740327B1/ko
Priority to US13/845,886 priority patent/US20140143305A1/en
Publication of KR20140065837A publication Critical patent/KR20140065837A/ko
Application granted granted Critical
Publication of KR101740327B1 publication Critical patent/KR101740327B1/ko

Links

Images

Classifications

    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3273Display

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명에 의한 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법이 개시된다.
본 발명에 따른 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치는 사용자로부터 메뉴 또는 키 조작에 따른 정보를 입력 받는 입력 수단; 입력 받은 상기 정보에 따라 가상 실행 환경에서 소프트웨어를 실행하도록 구현된 서비스 서버에 연동하는 통신 수단; 연동되는 상기 서비스 서버에서 실행되는 상기 소프트웨어의 그래픽 데이터를 제공받아 제공받은 상기 그래픽 데이터를 자체의 그래픽 처리 장치를 이용하여 렌더링을 수행하고 그 렌더링을 수행한 결과로 영상을 생성하는 제어 수단; 및 생성된 상기 영상을 디스플레이하는 표시 수단을 포함한다.

Description

소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법{APPARATUS AND SYSTEM FOR PROVIDING SOFTWARE SERVICE USING SOFTWARE VIRTUALIZATION AND METHOD THEREOF}
본 발명은 소프트웨어 서비스 제공 방법에 관한 것으로, 특히, 서버에서 소프트웨어 가상화를 기반으로 다수의 클라이언트 단말이 요청한 다수의 소프트웨어를 실행하되 그 실행된 소프트웨어 각각의 그래픽 데이터를 추출하여 추출한 그래픽 데이터를 해당하는 클라이언트 단말 각각에 제공하도록 하는 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법에 관한 것이다.
최근 CPU 및 메모리 등의 하드웨어 제작 기술의 발전으로 인하여 저가의 고성능 PC가 급속도로 보급되고 있고 현재 PC의 컴퓨팅 능력은 초기의 슈퍼컴퓨터 수준으로 향상되었다. 데스크탑 SW들은 점점 더 화려한 사용자 인터페이스와 그래픽 집중적인 작업을 수용하도록 요구하고 있다. 또한 그래픽 하드웨어 기술은 2D/3D, 멀티미디어와 같은 기존의 그래픽 집중적인 작업에 적용될 뿐만 아니라 웹 브라우저 렌더링, 플래시, 윈도우 운영체제까지 확대 적용되고 있다.
서버 기반의 컴퓨팅 환경은 PC 기반의 컴퓨팅 환경에서 발생하는 데이터 보안, PC의 관리 비용 등의 문제를 해결하기 위한 방안이다. 서버 기반 컴퓨팅 환경을 지원하는 기술로는 Citrix의 XenDesktop, VMware의 View 그리고 Microsoft의 RemoteFX에 기반한 터미널 서비스 등이 있다.
의학, 생물정보학, 설계도면과 같은 복잡한 구조의 3D 모델과 같은 보안상 중요한 데이터를 다루는 작업환경에 서버 기반 컴퓨팅 기법에 기반한 데스크탑 가상화 기술들이 도입되고 있는 실정이다. 하지만 이러한 서버 기반 컴퓨팅은 서버에서 SW를 실행하고, 클라이언트 PC는 단순히 터미널 역할만을 수행함으로써 클라이언트 수가 늘어날수록 서버의 부하가 커지며 서버에서 실행되는 결과 이미지를 클라이언트에 전송하는 방식을 사용함으로써 3D 렌더링과 같은 고성능 그래픽 작업을 처리하는데 한계점을 가진다. 따라서 고사양 클라이언트 PC 자원의 낭비, 서버 부하에 따른 서비스 한계, 막대한 서버 구입 비용, 느린 서비스 성능 등의 단점을 가진다.
또한, 서버 기반 컴퓨팅에서는 OS에 종속적인 세션 관리 기술이나 데스크탑 서비스에서는 가상 머신을 통하여 하나의 서버에서 다수의 사용자를 지원한다. 이는 제공하는 서버의 OS 종속성이나, 가상 머신의 부하로 인하여 서버의 도입 비용 및 관리의 제약 사항을 가진다.
따라서 이러한 종래 기술의 문제점을 해결하기 위한 것으로, 본 발명의 목적은 서버에서 소프트웨어 가상화를 기반으로 다수의 클라이언트 단말이 요청한 다수의 소프트웨어를 실행하되 그 실행된 소프트웨어 각각의 그래픽 데이터를 추출하여 추출한 그래픽 데이터를 해당하는 클라이언트 단말 각각에 제공하도록 하는 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법을 제공하는데 있다.
그러나 본 발명의 목적은 상기에 언급된 사항으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적들을 달성하기 위하여, 본 발명의 한 관점에 따른 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치는 사용자로부터 메뉴 또는 키 조작에 따른 정보를 입력 받는 입력 수단; 입력 받은 상기 정보에 따라 가상 실행 환경에서 소프트웨어를 실행하도록 구현된 서비스 서버에 연동하는 통신 수단; 연동되는 상기 서비스 서버에서 실행되는 상기 소프트웨어의 그래픽 데이터를 제공받아 제공받은 상기 그래픽 데이터를 자체의 그래픽 처리 장치를 이용하여 렌더링을 수행하고 그 렌더링을 수행한 결과로 영상을 생성하는 제어 수단; 및 생성된 상기 영상을 디스플레이하는 표시 수단을 포함할 수 있다.
바람직하게, 상기 제어 수단은 상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출하였는지의 여부를 확인하고, 그 확인한 결과를 상기 표시 수단에 디스플레이하도록 제어하는 것을 특징으로 한다.
바람직하게, 상기 표시 수단은 상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출하였음을 사용자에게 알려주는 문구와 상기 문구의 일측에 다운로드 받음을 확인하는 확인 버튼을 디스플레이하는 것을 특징으로 한다.
바람직하게, 상기 제어 수단은 상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출할 것인지의 여부를 질의하고, 그 질의에 대한 응답 결과를 상기 표시 수단에 디스플레이하도록 제어하는 것을 특징으로 한다.
바람직하게, 상기 표시 수단은 상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출할 것인지를 사용자에게 질의하는 문구와 상기 문구의 일측에 3D API의 호출을 허락하는 승인 버튼과 3D API의 호출을 취소하는 취소 버튼을 디스플레이하는 것을 특징으로 한다.
바람직하게, 상기 그래픽 데이터는 그래픽 처리와 관련된 기하학, 시점, 텍스처의 매핑, 조명, 셰이딩 정보를 포함하는 것을 특징으로 한다.
본 발명의 다른 한 관점에 따른 소프트웨어 서비스를 제공하기 위한 시스템은 클라이언트 단말로부터 소프트웨어의 실행을 요청 받으면, 상기 소프트웨어를 실행 가능한 분할실행 서버들 중 어느 하나의 분할실행 서버모듈을 할당하는 연결분배 서버모듈; 가상 실행 환경 하에서 요청 받은 상기 소프트웨어를 실행하고 실행된 상기 소프트웨어의 그래픽 데이터를 추출하여 추출한 그래픽 데이터를 상기 클라이언트 단말에 전송하는 분할실행 서버모듈; 및 상기 분할실행 서버모듈의 요청에 따라 상기 소프트웨어를 제공하는 SW관리 서버모듈을 포함할 수 있다.
바람직하게, 상기 분할 실행 서버는 요청 받은 상기 소프트웨어에 대한 이전의 설정 정보가 있는지를 조회하여 그 조회한 결과에 따라 상기 이전의 설정 정보를 이용하여 가상 실행 환경 하에서 상기 소프트웨어를 실행하는 것을 특징으로 한다.
본 발명의 또 다른 한 관점에 따른 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 방법은 사용자로부터 메뉴 또는 키 조작에 따른 정보를 입력 받는 입력 단계; 입력 받은 상기 정보에 따라 가상 실행 환경에서 소프트웨어를 실행하도록 구현된 서비스 서버에 연동하는 통신 단계; 연동되는 상기 서비스 서버에서 실행되는 상기 소프트웨어의 그래픽 데이터를 제공받아 제공받은 상기 그래픽 데이터를 자체의 그래픽 처리 장치를 이용하여 렌더링을 수행하고 그 렌더링을 수행한 결과로 영상을 생성하는 제어 단계; 및 생성된 상기 영상을 디스플레이하는 표시 단계를 포함할 수 있다.
바람직하게, 상기 제어 단계는 상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출하였는지의 여부를 확인하고, 그 확인한 결과를 상기 표시 수단에 디스플레이하도록 제어하는 것을 특징으로 한다.
바람직하게, 상기 표시 단계는 상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출하였음을 사용자에게 알려주는 문구와 상기 문구의 일측에 다운로드 받음을 확인하는 확인 버튼을 디스플레이하는 것을 특징으로 한다.
바람직하게, 상기 제어 단계는 상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출할 것인지의 여부를 질의하고, 그 질의에 대한 응답 결과를 상기 표시 수단에 디스플레이하도록 제어하는 것을 특징으로 한다.
바람직하게, 상기 표시 단계는 상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출할 것인지를 사용자에게 질의하는 문구와 상기 문구의 일측에 3D API의 호출을 허락하는 승인 버튼과 3D API의 호출을 취소하는 취소 버튼을 디스플레이하는 것을 특징으로 한다.
바람직하게, 상기 그래픽 데이터는 그래픽 처리와 관련된 기하학, 시점, 텍스처의 매핑, 조명, 셰이딩 정보를 포함하는 것을 특징으로 한다.
이를 통해, 본 발명은 서버에서 소프트웨어 가상화를 기반으로 다수의 클라이언트 단말이 요청한 다수의 소프트웨어를 실행하되 그 실행된 소프트웨어 각각의 그래픽 데이터를 추출하여 추출한 그래픽 데이터를 해당하는 클라이언트 단말 각각에 제공하도록 함으로써, 더 많은 사용자에게 서비스를 제공할 수 있는 효과가 있다.
또한, 본 발명은 서비스하는 소프트웨어를 서버에 직접 설치하지 않고 소프트웨어 가상화 수준으로 관리하기 때문에 소프트웨어 관리를 용이할 수 있는 효과가 있다.
또한, 본 발명은 클라이언트 단말 내의 그래픽 처리 장치를 사용하기 때문에 그래픽 처리 장치를 공유하는 기존의 방식보다 빠르게 서비스를 제공할 수 있는 효과가 있다.
또한, 본 발명은 소프트웨어의 실행 결과로 생성된 이미지를 클라이언트에 전송하여 표시하는 서버 랜더링 방식에 비해 클라이언트 단말 내 그래픽 처리 장치를 사용하기 때문에 그래픽 처리 장치의 활용을 극대화할 수 있는 효과가 있다.
또한, 본 발명은 서버의 화면 전체를 클라이언트 단말에 표시하는 기존의 서버 기반 컴퓨팅에 비해 해당 분할 실행할 소프트웨어의 화면만을 표시할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 전체 시스템의 구성을 개략적으로 나타낸다.
도 2는 본 발명의 일 실시예에 따른 서비스 서버(120)의 상세한 구성을 나타낸다.
도 3은 도 2에 도시된 분할실행 서버모듈(123)의 동작 원리를 설명하기 위한 도면이다.
도 4는 가상화 실행 환경에서 프로세스가 구동 시 생성되는 파일의 I/O 처리를 나타낸다.
도 5는 본 발명의 일 실시예에 따른 클라이언트 단말(110)의 상세한 구성을 나타낸다.
도 6은 본 발명의 일 실시예에 따른 소프트웨어 서비스를 제공하기 위한 방법을 나타낸다.
도 7은 본 발명의 일 실시예에 따른 소프트웨어를 실행하기 위한 방법을 나타낸다.
도 8은 소프트웨어 실행 시 분할 실행을 질의하는 클라이언트 단말의 화면을 보여준다.
이하에서는, 본 발명의 실시예에 따른 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법을 첨부한 도 1 내지 도 8을 참조하여 설명한다. 본 발명에 따른 동작 및 작용을 이해하는데 필요한 부분을 중심으로 상세히 설명한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 동일한 명칭의 구성 요소에 대하여 도면에 따라 다른 참조부호를 부여할 수도 있으며, 서로 다른 도면임에도 불구하고 동일한 참조부호를 부여할 수도 있다. 그러나, 이와 같은 경우라 하더라도 해당 구성 요소가 실시예에 따라 서로 다른 기능을 갖는다는 것을 의미하거나, 서로 다른 실시예에서 동일한 기능을 갖는다는 것을 의미하는 것은 아니며, 각각의 구성 요소의 기능은 해당 실시예에서의 각각의 구성요소에 대한 설명에 기초하여 판단하여야 할 것이다.
특히, 본 발명에서는 서버에서 소프트웨어 가상화를 기반으로 다수의 클라이언트 단말이 요청한 다수의 소프트웨어를 실행하되 그 실행된 소프트웨어 각각의 그래픽 데이터를 추출하여 추출한 그래픽 데이터를 해당하는 클라이언트 단말 각각에 제공하도록 하는 새로운 소프트웨어 서비스를 제공하기 위한 방안을 제안한다.
도 1은 본 발명의 일 실시예에 따른 전체 시스템의 구성을 개략적으로 나타낸다.
도 1에 도시한 바와 같이, 본 발명에 따른 소프트웨어 서비스를 제공하기 위한 전체 시스템은 클라이언트 단말(110), 및 SW 서비스 서버(120) 등을 포함하여 구성될 수 있다.
클라이언트 단말(110)은 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공받을 수 있다. 클라이언트 단말(110)는 유선 또는 무선 통신이 가능한 사용자 단말기로서, 예컨대, PC(Personal Computer), 태블릿 PC, 노트북 등을 포괄하는 개념일 수 있다.
이때, 클라이언트 단말(110)은 서비스 서버에 소프트웨어의 실행을 요청하고, 요청한 소프트웨어가 실행되는 중에 서비스 서버로부터 소프트웨어의 그래픽 데이터를 제공받아 제공받은 그래픽 데이터를 기반으로 내장된 그래픽 처리 장치(graphic processing unit)를 통해 이미지를 형성화시키는 렌더링 작업을 수행할 수 있다.
또한, 클라이언트 단말(110)은 3D API(Application Programming Interface)를 호출하게 되는데,
SW 서비스 서버(120)는 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 다수의 클라이언트 단말에 제공할 수 있다.
이때, SW 서비스 서버(120)는 가상 실행 환경 하에서 소프트웨어를 실행하고 실행된 소프트웨어의 그래픽 데이터를 추출하여 그 추출된 그래픽 데이터를 클라이언트 단말에 전송하며 그래픽 데이터를 제외한 나머지 데이터를 처리하게 된다.
여기서, 그래픽 데이터는 이미지 형성화를 위한 그래픽 처리와 관련된 데이터로서 예컨대, 기하학, 시점, 텍스처의 매핑, 조명, 셰이딩 정보 등을 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 서비스 서버(120)의 상세한 구성을 나타낸다.
도 2에 도시한 바와 같이, 본 발명에 따른 서비스 서버(120)는 연결분배 서버모듈(121), SW관리 서버모듈(122), 분할실행 서버모듈(123), 정보관리 서버모듈(124), 및 파일관리 서버모듈(125) 등을 포함하여 구성될 수 있다.
연결분배 서버모듈(121)은 클라이언트 단말로부터 소프트웨어의 실행을 요청 받을 수 있다. 연결분배 서버모듈(121)은 실행 가능한 소프트웨어의 정보를 SW관리 서버모듈(122)로부터 제공 받을 수 있다. 연결분배 서버모듈(121)은 모든 분할실행 서버모듈의 상태를 조회하고 그 조회한 결과에 따라 실행에 적합한 어느 하나의 분할실행 서버모듈(123)을 할당할 수 있다.
SW관리 서버모듈(122)은 연결분배 서버모듈(121)로부터 실행 가능한 소프트웨어의 정보 조회를 요청받고 요청받은 소프트웨어의 정보를 조회하여 그 조회한 결과를 제공할 수 있다.
분할실행 서버모듈(123)은 실행 요청 받은 소프트웨어를 SW관리 서버모듈(122)로부터 복사할 수 있다. 분할실행 서버모듈(123)은 해당 사용자가 실행 요청한 소프트웨어에 대한 이전의 설정 정보가 있는지를 조회하여 그 조회한 설정 정보를 제공받을 수 있다.
여기서, 설정 정보는 예컨대, 화면 비율, 음향 크기 등의 소프트웨어를 사용하는데 필요한 속성 정보이다.
분할실행 서버모듈(123)은 제공받은 설정 정보를 이용하여 가상 실행 환경 하에서 소프트웨어를 실행할 수 있다. 분할실행 서버모듈(123)은 실행된 소프트웨어의 그래픽 데이터를 추출하고 추출한 그래픽 데이터를 클라이언트 단말에 전송할 수 있다.
도 3은 도 2에 도시된 분할실행 서버모듈(123)의 동작 원리를 설명하기 위한 도면이다.
도 3에 도시한 바와 같이, 분할실행 서버모듈(123)은 SW관리 서버모듈(122)로부터 제공받은 소프트웨어와 정보관리 서버모듈(124) 내 사용자 SW 설정 정보 저장소(124a)로부터 제공받은 사용자 SW 설정 정보(123b)를 기반으로 실행할 소프트웨어(S123a)를 구성하게 된다.
분할실행 서버모듈(123)은 가상화 실행 환경(123d)을 구축하기 위하여 가상 파일 시스템(123e)과 가상 레지스트리 시스템(123f)을 이용하여 리소스에 독립적인 프로세스를 구동하게 된다.
이러한 이유는 임의의 사용자가 하나의 소프트웨어를 동시에 구동하였을 경우 사용자 각각의 설정에 따라 소프트웨어 서비스를 제공하고 하나의 서버에서 이종 또는 동종의 소프트웨어가 구동하였을 경우 상호 분리된 가상화 실행 환경을 기반으로 프로세스를 수행시키기 위함인데, 프로세스 간의 간섭 효과가 발생되지 않는다.
분할실행 서버모듈(123)은 실행되는 소프트웨어를 이용하여 사용자가 작성한 콘텐츠 파일들을 사용자 파일 시스템(123c)을 통해 파일관리 서버모듈(125) 내 사용자 파일 저장소(125a)에 저장하게 된다. 이렇게 저장된 콘텐츠 파일들은 사용자에 의해 아무런 제약 없이 사용 가능하게 된다.
분할실행 서버모듈(123)은 프로세스가 생성하는 명령에 따라 소프트웨어의 그래픽 데이터를 추출(123g)하고 추출된 그래픽 데이터를 클라이언트 단말로 전송하게 된다(123h).
분할실행 서버모듈(123)은 클라이언트 단말로부터 제공받은 사용자의 입력 정보를 수신하고(123i) 수신된 사용자의 입력 정보를 실행 중인 프로세스에 전달하여 처리하게 된다. 예컨대, 분할실행 서버모듈(123)은 사용자의 입력 정보에 따라 콘텐츠 파일을 생성하게 된다.
정보관리 서버모듈(124)은 사용자별로 소프트웨어의 설정 정보를 사용자 SW 설정 정보 저장소(124a)에 저장할 수 있다. 정보관리 서버모듈(1240)은 분할실행 서버모듈(123)로부터 해당 사용자의 설정 정보의 조회를 요청받아 요청받은 사용자의 설정 정보를 조회하여 그 조회한 결과를 제공할 수 있다.
이때, 정보관리 서버모듈(124)은 소프트웨어의 실행 중 설정 정보가 변경되는 경우 해당 소프트웨어의 종료 시에 변경된 설정 정보를 저장하게 되고, 소프트웨어의 실행 시에 변경된 설정 정보를 분할실행 서버모듈(123)에 제공하게 된다.
파일관리 서버모듈(125)는 소프트웨어를 실행하는 중에 수신된 사용자의 입력 정보를 기반으로 작성된 콘텐츠 파일들을 사용자 파일 저장소(125a)에 저장할 수 있다.
도 4는 가상화 실행 환경에서 프로세스가 구동 시 생성되는 파일 I/O 처리를 나타낸다.
도 4에 도시한 바와 같이, 분할실행 서버모듈(123)은 파일 I/O(Input/Output)(411)가 발생하면, 파일 I/O의 대상이 분할 실행할 소프트웨어의 파일인지를 판별하게 된다(412).
분할실행 서버모듈(123)은 그 판별한 결과로 분할 실행할 소프트웨어의 파일이면, 파일 I/O의 종류가 생성/변경/삭제인지를 판별하게 된다(414).
분할실행 서버모듈(123)은 파일 I/O의 종류가 생성/변경/삭제이면, 설정 정보의 변경으로 판단하여 설정정보 저장영역(415)에 저장해 둔다. 그리고 나서 분할실행 서버모듈(123)은 해당 소프트웨어 종료 시에 정보관리 서버모듈(124)에 저장하게 된다.
반면, 분할실행 서버모듈(123)은 파일 I/O의 종류가 생성/변경/삭제가 아니면, 해당하는 디렉토리(416)로 경로 변경하여 그 경로 변경된 디렉토리 내에서 파일 I/O를 수행하게 된다.
한편, 분할실행 서버모듈(123)은 그 판별한 결과로 분할 실행할 소프트웨어의 파일이 아니면, 콘텐츠 파일 또는 데이터 파일인지를 판별하게 된다(413).
분할실행 서버모듈(123)은 콘텐츠 파일이면 파일관리 서버모듈의 사용자 파일 저장소(416)로 경로 변경하여 그 경로 변경된 사용자 파일 저장소에서 파일 I/O를 수행하게 된다.
반면, 분할실행 서버모듈(123)은 분할 실행할 소프트웨어의 파일이 아니면서 콘텐츠 파일이 아니면, 기본 경로에 해당하는 디렉토리(417) 내에서 파일 I/O를 수행하게 된다.
도 5는 본 발명의 일 실시예에 따른 클라이언트 단말(110)의 상세한 구성을 나타낸다.
도 5에 도시한 바와 같이, 본 발명에 따른 클라이언트 단말(110)은 통신 수단(111), 입력 수단(112), 제어 수단(113), 표시 수단(114), 및 저장 수단(115) 등을 포함할 수 있다.
통신 수단(111)은 유선 또는 무선으로 서비스 서버와 각종 데이터를 송수신할 수 있다.
입력 수단(112)은 사용자의 메뉴 또는 키 조작에 따른 정보를 입력 받을 수 있다.
제어 수단(113)은 사용자로부터 입력 받은 정보에 따라 서비스 서버에 소프트웨어의 실행을 요청하고, 요청한 소프트웨어의 실행에 따른 실행 데이터를 제공받아 처리할 수 있다. 예컨대, 제어 수단(113)은 실행 데이터로 오디오 데이터를 제공받으면 제공받은 오디오 데이터를 오디오 출력부를 통해 출력하게 된다.
제어 수단(113)은 소프트웨어 실행 중 서비스 서버로부터 그래픽 데이터를 제공받고, 제공받은 그래픽 데이터를 그래픽 처리 장치를 이용하여 렌더링을 수행할 수 있다.
이때, 제어 수단(113)은 그래픽 처리 장치를 물리적으로 결합되도록 내부에 구비할 수 있다.
표시 수단(114)은 그 렌더링을 수행한 그래픽 데이터를 디스플레이할 수 있다.
도 6은 본 발명의 일 실시예에 따른 소프트웨어 서비스를 제공하기 위한 방법을 나타낸다.
도 6에 도시한 바와 같이, 클라이언트 단말은 사용자로부터 정보를 입력 받으면 입력 받은 정보에 따라 소프트웨어의 실행을 서비스 서버에 요청할 수 있다(S601).
다음으로, 서비스 서버는 실행 가능한 소프트웨어의 정보를 조회하고(S602) 모든 분할실행 서버모듈의 상태를 조회하여(S603) 그 조회한 결과에 따라 실행에 적합한 어느 하나의 분할실행 서버모듈을 할당할 수 있다(S604).
다음으로, 서비스 서버는 할당된 분할실행 서버모듈에서 실행 가능한 소프트웨어를 복사하고(S605) 해당 사용자가 실행 요청한 소프트웨어의 설정 정보를 조회할 수 있다(S606).
다음으로, 서비스 서버는 복사한 소프트웨어와 그 소프트웨어의 설정 정보를 기반으로 가상 실행 환경 하에서 사용자가 실행 요청한 소프트웨어를 실행할 수 있다(S607).
다음으로, 서비스 서버는 소프트웨어를 실행하는 중에 소프트웨어의 그래픽 데이터를 추출하고(S608) 추출된 그래픽 데이터를 클라이언트 단말에 전송할 수 있다(S609).
다음으로, 클라이언트 단말은 그래픽 데이터를 수신하면, 수신된 그래픽 데이터를 자체의 그래픽 처리 장치를 이용하여 렌더링하여 디스플레이할 수 있다(S610).
도 7은 본 발명의 일 실시예에 따른 소프트웨어를 실행하기 위한 방법을 나타낸다.
도 7에 도시한 바와 같이, 클라이언트 단말은 사용자로부터 정보를 입력 받으면 입력 받은 정보에 따라 소프트웨어의 실행을 서비스 서버에 요청할 수 있다(S701).
다음으로, 클라이언트 단말은 그래픽 데이터가 수신되는지를 확인할 수 있다(S702).
다음으로, 클라이언트 단말은 그 확인한 결과로 그래픽 데이터가 수신되면, 수신된 그래픽 데이터를 자체의 그래픽 처리 장치를 이용하여 렌더링을 수행하고(S704) 그 랜더링 수행으로 생성되는 영상 또는 이미지 등을 디스플레이할 수 있다(S704).
도 8은 소프트웨어 실행 시 분할 실행을 질의하는 클라이언트 단말의 화면을 보여준다.
도 8에 도시한 바와 같이, 소프트웨어 실행 시 분할 실행 즉, 그래픽 데이터를 클라이언트 단말에서 실행하고 그래픽 데이터 이외의 데이터를 서버에서 실행해야 할 경우 클라이언트 단말은 3D API를 호출해야 한다. 따라서 (a)처럼 클라이언트 단말은 “요청하신 소프트웨어는 분할 실행을 위하여 3D API를 호출해야 합니다. 3D API를 호출하시겠습니까”라는 문구(810)와 그 문구(810)의 일측에 3D API의 호출을 허락하는 승인 버튼(820)과 3D API의 호출을 취소하는 취소 버튼(830)을 디스플레이할 수 있다.
예컨대, 사용자가 승인 버튼(820)을 누르게 되면 3D API를 호출하게 되고 취소 버튼(830)을 누르게 되면 3D API를 호출하지 않아 서비스를 중단하게 된다.
(b)처럼 클라이언트 단말은 “요청하신 소프트웨어는 분할 실행을 위하여 3D API를 호출해야 합니다. 3D API를 호출하였습니다”라는 문구(840)와 그 문구(840)의 일측에 3D API를 호출하였음을 확인하는 확인 버튼(850)을 디스플레이 한 후에 자동으로 3D API를 호출할 수 있다.
한편, 이상에서 설명한 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 또한, 이와 같은 컴퓨터 프로그램은 USB 메모리, CD 디스크, 플래쉬 메모리 등과 같은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
이상에서 설명한 실시예들은 그 일 예로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110: 클라이언트 단말
111: 통신 수단
112: 입력 수단
113: 제어 수단
114: 표시 수단
115: 저장 수단
120: SW 서비스 서버
121: 연결분배 서버모듈
122: SW관리 서버모듈
123: 분할실행 서버모듈
124: 정보관리 서버모듈
125: 파일관리 서버모듈

Claims (14)

  1. 사용자로부터 메뉴 또는 키 조작에 따른 정보를 입력받는 입력 수단;
    입력 받은 상기 정보에 따라 가상 실행 환경에서 소프트웨어를 실행하도록 구현된 서비스 서버에 연동하는 통신 수단;
    연동되는 상기 서비스 서버에서 실행되는 상기 소프트웨어의 그래픽 데이터를 제공받아 제공받은 상기 그래픽 데이터를 자체의 그래픽 처리 장치를 이용하여 렌더링을 수행하고 그 렌더링을 수행한 결과로 영상을 생성하는 제어 수단; 및
    생성된 상기 영상을 디스플레이하는 표시 수단;을 포함하는 클라이언트 단말을 포함하고,
    상기 서비스 서버는,
    클라이언트 단말로부터 소프트웨어의 실행을 요청 받으면, 상기 소프트웨어를 실행 가능한 분할실행 서버 모듈들 중 어느 하나의 분할실행 서버모듈을 할당하는 연결분배 서버모듈;
    가상 실행 환경 하에서 요청 받은 상기 소프트웨어를 실행하고 실행된 상기 소프트웨어의 그래픽 데이터를 추출하여 추출한 그래픽 데이터를 상기 클라이언트 단말에 전송하는 분할실행 서버모듈; 및
    상기 분할실행 서버모듈의 요청에 따라 상기 소프트웨어를 제공하는 SW관리 서버모듈;을 포함하며,
    상기 연결분배 서버모듈은,
    상기 분할실행서버 모듈들의 상태를 조회하고 그 조회결과에 따라 상기 분할실행 서버모듈을 할당하고,
    상기 소프트웨어에 대한 설정 정보를 기반으로 각각의 사용자에 따라 독립적인 가상화 환경을 기반으로 프로세스에서 상기 소프트웨어를 실행하고,
    상기 분할실행 서버모듈은
    상기 소프트웨어에 대한 설정 정보를 기반으로 각각의 사용자에 따라 독립적인 가상화 환경을 기반으로 프로세스에서 상기 소프트웨어를 실행하고,
    상기 소프트웨어의 실행에 따라 발생하는 파일 I/O(Input/Output)의 종류와 상기 파일 I/O의 대상이 되는 파일의 종류를 판별하고, 상기 파일 I/O의 종류와 상기 파일의 종류에 따라 저장 영역 및 디렉토리 경로 중 적어도 하나를 변경하여 상기 파일에 대한 상기 파일 I/O를 처리하는 것을 특징으로 하는 소프트웨어 서비스를 제공하기 위한 시스템.
  2. 제1 항에 있어서,
    상기 제어 수단은,
    상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출하였는지의 여부를 확인하고,
    그 확인한 결과를 상기 표시 수단에 디스플레이하도록 제어하는 것을 특징으로 하는 소프트웨어 서비스를 제공하기 위한 시스템.
  3. 제2 항에 있어서,
    상기 표시 수단은,
    상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출하였음을 사용자에게 알려주는 문구와 상기 문구의 일측에 다운로드 받음을 확인하는 확인 버튼을 디스플레이하는 것을 특징으로 하는 소프트웨어 서비스를 제공하기 위한 시스템.
  4. 제1 항에 있어서,
    상기 제어 수단은,
    상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출할 것인지의 여부를 질의하고,
    그 질의에 대한 응답 결과를 상기 표시 수단에 디스플레이하도록 제어하는 것을 특징으로 하는 소프트웨어 서비스를 제공하기 위한 시스템.
  5. 제4 항에 있어서,
    상기 표시 수단은,
    상기 그래픽 데이터의 렌더링을 수행하기 위한 3D API를 호출할 것인지를 사용자에게 질의하는 문구와 상기 문구의 일측에 3D API의 호출을 허락하는 승인 버튼과 3D API의 호출을 취소하는 취소 버튼을 디스플레이하는 것을 특징으로 하는 소프트웨어 서비스를 제공하기 위한 시스템.
  6. 제1 항에 있어서,
    상기 그래픽 데이터는,
    그래픽 처리와 관련된 기하학, 시점, 텍스처의 매핑, 조명, 셰이딩 정보를 포함하는 것을 특징으로 하는 소프트웨어 서비스를 제공하기 위한 시스템.
  7. 클라이언트 단말로부터 소프트웨어의 실행을 요청 받으면, 상기 소프트웨어를 실행 가능한 분할실행 서버 모듈들 중 어느 하나의 분할실행 서버모듈을 할당하는 연결분배 서버모듈;
    가상 실행 환경 하에서 요청 받은 상기 소프트웨어를 실행하고 실행된 상기 소프트웨어의 그래픽 데이터를 추출하여 추출한 그래픽 데이터를 상기 클라이언트 단말에 전송하는 분할실행 서버모듈; 및
    상기 분할실행 서버모듈의 요청에 따라 상기 소프트웨어를 제공하는 SW관리 서버모듈;을 포함하며,
    상기 연결분배 서버모듈은,
    상기 분할실행서버 모듈들의 상태를 조회하고 그 조회결과에 따라 상기 분할실행 서버모듈을 할당하고,
    상기 분할실행 서버모듈은
    상기 소프트웨어에 대한 설정 정보를 기반으로 각각의 사용자에 따라 독립적인 가상화 환경을 기반으로 프로세스에서 상기 소프트웨어를 실행하고,
    상기 소프트웨어의 실행에 따라 발생하는 파일 I/O(Input/Output)의 종류와 상기 파일 I/O의 대상이 되는 파일의 종류를 판별하고, 상기 파일 I/O의 종류와 상기 파일의 종류에 따라 저장 영역 및 디렉토리 경로 중 적어도 하나를 변경하여 상기 파일에 대한 상기 파일 I/O를 처리하는 것을 특징으로 하는 소프트웨어 서비스를 제공하기 위한 장치.
  8. 제7 항에 있어서,
    상기 분할 실행 서버 모듈은,
    요청 받은 상기 소프트웨어에 대한 이전의 설정 정보가 있는지를 조회하여 그 조회한 결과에 따라 상기 이전의 설정 정보를 이용하여 가상 실행 환경 하에서 상기 소프트웨어를 실행하는 것을 특징으로 하는 소프트웨어 서비스를 제공하기 위한 장치.

  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
KR1020120132779A 2012-11-22 2012-11-22 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법 KR101740327B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120132779A KR101740327B1 (ko) 2012-11-22 2012-11-22 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법
US13/845,886 US20140143305A1 (en) 2012-11-22 2013-03-18 Apparatus and system for providing software service using software virtualization and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120132779A KR101740327B1 (ko) 2012-11-22 2012-11-22 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20140065837A KR20140065837A (ko) 2014-05-30
KR101740327B1 true KR101740327B1 (ko) 2017-06-08

Family

ID=50728973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120132779A KR101740327B1 (ko) 2012-11-22 2012-11-22 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법

Country Status (2)

Country Link
US (1) US20140143305A1 (ko)
KR (1) KR101740327B1 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US20160186657A1 (en) * 2014-11-21 2016-06-30 General Electric Company Turbine engine assembly and method of manufacturing thereof
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
KR101672119B1 (ko) * 2015-02-16 2016-11-04 (주) 퓨전데이타 가상화 환경에서 고화질 영상 출력을 위한 서버장치 및 방법
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10616250B2 (en) 2016-10-05 2020-04-07 Amazon Technologies, Inc. Network addresses with encoded DNS-level information
US10831549B1 (en) * 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
CN107766054A (zh) * 2017-09-27 2018-03-06 郑州云海信息技术有限公司 一种自动安装虚拟机管理软件的方法及装置
CN110019520B (zh) * 2017-11-29 2022-09-23 财付通支付科技有限公司 业务执行方法、***及装置
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020130900A1 (en) * 2001-03-16 2002-09-19 Tomorrowsoft Corporation System for generating an interface for software applications in a client-server environment
US8719365B1 (en) * 2009-02-12 2014-05-06 Adobe Systems Incorporated Graphic output from remote execution of applications redirected with dynamically sized virtual screen
US20110154374A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Apparatus and method for managing customized application
US9244700B2 (en) * 2010-05-09 2016-01-26 Citrix Systems, Inc. Methods and systems for delivering applications from a desktop operating system
US9116728B2 (en) * 2010-12-21 2015-08-25 Microsoft Technology Licensing, Llc Providing a persona-based application experience
US8972485B1 (en) * 2011-03-22 2015-03-03 Cisco Technology, Inc. Distributing execution of applications between a local client system and a remote virtual environment
KR101467430B1 (ko) * 2011-12-12 2014-12-01 주식회사 케이티 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템
US9342329B2 (en) * 2011-12-20 2016-05-17 Blackberry Limited Method and system for cross-operating systems execution of software applications

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
가상 3D 콘텐츠의 실시간 방송 서비스를 위한 클라이언트 장치 및 소프트웨어 가상화 방법, 2012.06.*
최원혁 외 1명, 서버 기반 SW 서비스에서 API 리모팅 기반의 GPU 가상화를 이용한 그래픽 분할 실행의 구현, 한국인터넷정보학회 제12권 제6호, 2011.12.*

Also Published As

Publication number Publication date
US20140143305A1 (en) 2014-05-22
KR20140065837A (ko) 2014-05-30

Similar Documents

Publication Publication Date Title
KR101740327B1 (ko) 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법
US11494010B2 (en) Touch support for remoted applications
US10929344B2 (en) Trusted file indirection
US9367947B2 (en) Remote rendering of three-dimensional images using virtual machines
US20210224100A1 (en) Virtual machine migration using multiple, synchronized streams of state data
CN104536802A (zh) 一种实现应用调用的方法及虚拟机
US20120117611A1 (en) Controlling information disclosure during application streaming and publishing
MX2013003515A (es) Presentacion remota instantanea.
MX2013003427A (es) Redireccion de ambiente cruzado.
CN104704448A (zh) 本地和远程计算环境之间的反向无缝集成
KR102631745B1 (ko) 이종 운영체제의 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체
KR20140027741A (ko) 응용 서비스 제공 시스템 및 방법, 응용 서비스를 위한 서버 장치 및 클라이언트 장치
CN114860401B (zh) 异构云桌面调度***、方法、服务***、装置及介质
KR101430729B1 (ko) 소프트웨어 지원 서버 및 그 방법
US11487559B2 (en) Dynamically switching between pointer modes
KR102193040B1 (ko) Vdi 환경에서의 가상 데스크톱에 설치된 어플리케이션을 어플리케이션 가상화 형태로 실행하거나 가상 데스크톱 접속으로 전환하는 방법, 및 가상화 서버
KR20200118980A (ko) 이종 운영체제를 실행하는 전자 장치 및 그 방법
KR101709117B1 (ko) 그래픽 분할 실행을 위한 가상화 방법 및 그 장치
Carabas et al. Lightweight display virtualization for mobile devices
KR20220065727A (ko) 블록체인 시스템의 실행 방법, 장치, 설비 및 저장매체
CN118295760A (zh) 一种多皮肤客户端的显示方法、***和存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant