KR20160000604A - PaaS 클라우드 시스템에서의 GPU 가상화 기법을 사용한 개발 툴 배포 방법 - Google Patents

PaaS 클라우드 시스템에서의 GPU 가상화 기법을 사용한 개발 툴 배포 방법 Download PDF

Info

Publication number
KR20160000604A
KR20160000604A KR1020140077840A KR20140077840A KR20160000604A KR 20160000604 A KR20160000604 A KR 20160000604A KR 1020140077840 A KR1020140077840 A KR 1020140077840A KR 20140077840 A KR20140077840 A KR 20140077840A KR 20160000604 A KR20160000604 A KR 20160000604A
Authority
KR
South Korea
Prior art keywords
development
user
tool
gpu
service
Prior art date
Application number
KR1020140077840A
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 KR1020140077840A priority Critical patent/KR20160000604A/ko
Publication of KR20160000604A publication Critical patent/KR20160000604A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Abstract

PaaS 사업자는 서비스를 이용하는 사용자에게 개발 환경 리소스와 툴, 매뉴얼 등을 제공하여 사용자로 하여금 개발 환경을 구성하고 어플리케이션을 개발 할 수 있도록 지원해야 한다. 이때 플랫폼은 사업자 마다 다르므로 여러 서비스를 이용하는 사용자는 이용하는 플랫폼에 맞는 환경을 각각 구성하여 어플리케이션을 개발해야 한다. 플랫폼이 많아지면 사용자의 개발 시스템은 높은 사양이 필요하게 될 수도 있고 각각의 설정들이 충돌할 가능성도 배제할 수 없다. 플랫폼의 개발 환경 설정이 복잡할 경우 사용자로 하여금 서비스 이용에 어려움을 주거나 사용자를 지원해야하는 사업자 또한 개발 환경 리소스와 매뉴얼 관리 및 사용자 응대를 위한 작업량이 늘어날 수 있다.
개발 환경이 구성된 개발 서버를 사업자가 제공한다면 사용자는 어플리케이션 개발을 위해 별도의 시스템을 구축할 필요가 없이 서비스를 이용할 수 있다. 또한 개발서버 1대에 개발 툴을 설치하고 사용자 접속 환경을 구성하여 운영한다면 사업자 입장에서도 개발 환경 관리와 사용자의 어플리케이션 개발 지원이 용이해질 뿐만 아니라 개발 툴의 화면을 사용자로 전송 시 개발 툴의 화면을 GPU에서 캡처하고 GPU 인코더로 캡처한 데이터를 인코딩하여 사용자에게 전달하게 되면 하나의 GPU를 여러 사용자가 공유하여 사용하게 되므로 GPU를 가상화 하는 기법을 통해 시스템 리소스를 효율적으로 사용할 수 있게 된다.

Description

PaaS 클라우드 시스템에서의 GPU 가상화 기법을 사용한 개발 툴 배포 방법{Deployment method for development tool using GPU virtualization at PaaS cloud system}
본 발명은 PaaS 형태의 클라우드 시스템에서 사용자의 어플리케이션 개발 지원을 위해 플랫폼에서 제공하는 개발 툴의 배포 방법에 관한 것으로 사용자가 직접 개발 시스템에 어플리케이션 개발 환경을 구성할 필요 없이 개발 툴이 설치된 시스템에 접속하여 개발 툴의 화면과 사용자의 디바이스 입력을 송수신 하는 것만으로 어플리케이션 개발이 가능하도록 개발 툴을 배포하는 방법에 관한 것이다.
클라우드 컴퓨팅은 프로그램이나 문서를 인터넷으로 접속할 수 있는 대형컴퓨터에 저장하고 각종 단말기로 원격에서 원하는 작업을 수행할 수 있는 사용 환경이라고도 할 수 있는데 프로그램이나 자료를 사용자의 PC가 아닌 인터넷으로 접속 가능한 대형 컴퓨터에 저장하고, PC 는 물론 휴대전화와 같은 다양한 단말기기를 이용하여 원하는 작업을 수행한다. 클라우드 컴퓨팅에서 제공하는 서비스는 SaaS(Software as a Service), PaaS(Platform as a Service), IaaS(Infrastructure as a Service) 세 가지가 가장 대표적이다. SaaS는 "on-demand software"로도 불리며, 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하는 형태의 소프트웨어 전달 모델이다. PaaS는 소프트웨어 개발에 필요한 개발 환경, 프레임워크 등의 개발 플랫폼을 제공하는 것으로 클라우드 서비스 사업자는 PaaS 를 통해 서비스 구성 컴포넌트 및 호환성 제공 서비스를 지원한다. IaaS는 서버 인프라를 서비스로 제공하는 것으로 클라우드를 통하여 저장 장치(storage) 또는 컴퓨팅능력(compute)을 인터넷을 통한 서비스 형태로 제공하는 서비스로 사용자에게 서버나 스토리지 같은 하드웨어 자체를 판매하는 것이 아니라 하드웨어가 지닌 ‘컴퓨팅 능력’만을 서비스하는 것이다.
PaaS 서비스 사용자는 개발, 테스트, 배포, 호스팅 플랫폼과 서비스를 제공받아 새로운 어플리케이션을 개발하고 배포하게 되는데 사용자가 PaaS 플랫폼에 배포할 어플리케이션 개발을 위해서는 플랫폼 상에서 지원하는 API 나 도구를 사용해 어플리케이션을 개발해야 하므로 플랫폼에서 제공하는 각종 자원과 SDK등을 이용하여 어플리케이션 개발 환경을 구성한 후 개발 작업을 진행하게 된다.
PaaS 서비스 사용자는 PaaS 사업자마다 서비스 플랫폼이 다르므로 플랫폼에 배포되는 어플리케이션 개발을 위해 각각에 맞는 개발 환경을 구성해야 한다. 이때 개발 환경 구성이 복잡한 경우 사업자의 입장에서는 사용자에게 제공해야하는 개발 리소스, 이용 매뉴얼 등에 대한 관리 작업이 복잡해질 수 있고 사용자의 서비스 접근 벽이 높아져 서비스 범용성에 영향을 줄 수 있으며 여러 PaaS 서비스를 이용하는 사용자의 경우에는 각 플랫폼 이용을 위해 해당 환경을 모두 갖추어 작업을 해야 하므로 개발 시스템 사양을 높여야 한다거나 플랫폼 별 개발 환경 설정들 간에 충돌이 발생할 수 있는 문제점이 있다.
상기의 문제점을 해결하기 위해 본 발명에서는 PaaS 사업자가 어플리케이션 개발 툴을 배포하는데 있어 사용자로 하여금 별도의 개발 환경 구성 작업 없이도 어플리케이션을 개발할 수 있도록 어플리케이션 개발 환경 구성이 완료된 서버에 GPU 가상화 기법을 이용하여 사용자 접속 시스템을 구성하는 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위해서 본 발명에서는 PaaS 사업자는 어플리케이션 개발 환경 구성이 완료된 서버에 개발 툴과 사용자가 접속 할 수 있도록 사용자 접속 관리 프로그램을 설치하여 시스템을 구성하고 서비스 사용자에게 어플리케이션 개발 서버에 접속할 수 있는 간단한 어플리케이션을 배포하여 사용자가 개발 서버에 접속 후 어플리케이션을 개발 할 수 있도록 한다.
PaaS 사업자는 가상화 기능을 지원하는 GPU가 설치된 개발 서버에 개발 환경을 구성하고 개발 툴과 단말 접속 관리 프로그램을 기동시킨다. PaaS 사용자가 서비스에 가입하고 개발 툴 지원을 사업자에게 요청하면 사업자는 사용자에게 개발 서버 접속 단말 프로그램을 전달한다. 사용자가 일반 PC에서 개발 서버 접속 단말 프로그램을 기동하면 개발 서버에서는 단말 즉 사용자가 실행한 개발 서버 접속 단말 프로그램과의 연결을 생성하고 개발 툴 프로세스를 하나 실행 시킨다. 개발 서버에서 실행된 개발 툴은 CPU를 통해 개발 툴 화면을 캡처하고 CPU 인코더로 처캡된 화면을 h.264 영상 포맷으로 압축한 후 단말에 전송한다. 이때 사용자 PC의 개발 서버 접속 단말 프로그램 화면에는 개발 서버에서 실행된 개발 툴의 화면이 디스플레이 되고 사용자의 키보드, 마우스 입력이 개발 서버로 전송되어 개발 툴에서 그대로 동작되는 것을 확인할 수 있게 된다. 이 후 사용자는 어플리케이션 개발 필요시 별도의 개발 시스템이 아니라 개발 서버 접속 단말 프로그램을 실행하여 필요한 작업을 수행하도록 한다.
본 발명에 의하면 PaaS 개발 서버 시스템을 구성하고 PaaS 사용자에게 개발 서버 접속 단말 프로그램을 제공함으로써 PaaS 사용자는 복잡한 개발 환경 설정이나 높은 사양의 개발 시스템 없이 어플리케이션을 개발 할 수 있고 PaaS 사업자는 개발 환경 리소스 관리, 사용자 매뉴얼 관리, 사용자 개발 지원 작업 등을 간소화 시킬 수 있다.
도 1은 개발 서버 접속 관리 프로그램(Dev Tool Server Manager의 블록도
도 2는 개발 서버에서 실행되는 개발 툴(Development Tool) 프로그램 블록도
도 3 은 개발 서버 접속 단말 프로그램(Dev Tool Client Program) 블록도
이하 본 발명의 구성과 실시예에 대해 설명한다.
PaaS 사업자는 서비스 제공을 위하여 어플리케이션 개발 서버를 준비하고 가상화 기능이 지원되는 GPU를 설치한다. 개발 서버에는 개발 서버 접속 관리 프로그램(100)과 개발 툴 프로그램(200)을 설치한다. PaaS 사업자가 개발 서버 시스템 구성이 완료하고 PaaS 사용자로부터 어플리케이션 개발 환경을 요청받으면 개발 서버 접속 단말 프로그램(300)을 전달하여 사용자로 하여금 개발 서버에 접속하여 어플리케이션을 개발할 수 있도록 지원한다.
개발 서버 접속 관리 프로그램(100)은 단말에서 사용할 개발 툴 프로세스를 기동하고 종료하는 개발 툴 프로세스 관리 기능 블록(110), 단말이 서버에 접속할 수 있도록 단말과의 연결을 설정하는 단말 연결 관리 기능 블록(120), 개발 툴이 실행 될 때 해당 사용자 정보를 알려주고 개발 툴의 프로세스 정보를 송수신하기 위한 연결을 관리하는 개발 툴 설정 연결 기능 블록(130), 개발 툴에 Graphic 전송 정보를 전달해 주기위한 개발 툴 Graphic 전송 설정 연결 기능 블록(140), 개발 툴에 Device Input 송수신을 위한 연결 정보를 전달해 주기위한 개발 툴 Device Input 송수신 설정 연결 기능 블록(150)으로 구성된다. 개발 툴 프로그램(200)은 개발 서버 접속 관리 프로그램으로부터 사용자 정보를 전달 받고 프로세스 정보를 송수신 하는 프로세스 설정 연결 기능 블록(210), Graphic 전송 정보를 전달 받기위한 연결을 관리하는 Graphic 전송 설정 연결 기능 블록(220), 단말에 Graphic 데이터 전송을 위한 연결을 처리하는 Graphic 데이터 전송 연결 기능 블록(230), Graphic 데이터 캡처와 캡처된 영상 데이터를 GPU를 이용하여 h.264 포맷으로 인코딩하는 Graphic 캡처 및 인코딩 기능 블록(240), Deivce Input 데이터를 수신하기 위한 연결 설정 정보를 전달받는 Device Input 설정 연결 기능 블록(250), Device Input 데이터를 단말로부터 수신하기 위한 Device Input 연결 기능 블록(260), 단말로부터 수신한 Device Input 데이터를 분석하여 키보드, 마우스 이벤트를 처리하는 Device Input 이벤트 처리 기능 블록(270)으로 구성된다. 개발 서버 접속 단말 프로그램(300)은 개발 서버 접속 관리 프로그램과 연결을 시작하는 개발 서버 연결 기능 블록(310), 개발 툴의 Graphic 데이터를 play 하는 영상 play 기능 블록(320), 사용자의 Device 입력을 캡처하는 Device Input 캡처 기능 블록(330), Graphic 데이터 수신을 위한 Graphic 데이터 연결 기능 블록(340), Device Input 전송을 위한 Device Input 연결 기능 블록(350) 으로 구성된다.
PaaS 사용자가 개발 서버 접속 단말 프로그램을 실행 시키면 개발서버 접속 관리 프로그램에 접속하여 개발 툴 프로세스 실행을 요청한다. 요청을 수신한 개발 서버 접속 관리 프로그램은 개발 툴 프로세스를 기동한다. 개발 툴 프로세스는 기동하면서 개발 서버 접속 관리 프로그램과 연결을 생성하여 사용자 정보와 프로세스 정보를 송수신하고 Graphic 데이터와 Device Input 데이터를 단말과 송수신 하기위한 설정 정보를 개발 서버 접속 관리 프로그램으로부터 전달 받아 단말과의 연결을 설정한다. 개발 툴은 실행되면 GPU로부터 개발 툴 화면을 캡처하고 GPU의 인코더를 이용하여 h.264 영상 포맷으로 압축한 후 단말로 전송한다. 개발 툴의 화면을 전송받은 개발 서버 접속 단말 프로그램은 개발 툴의 Graphic 데이터를 play 하여 사용자에게 보여주고 사용자의 Device 입력을 캡처하여 개발 툴로 전송한다. 사용자의 Device 입력 데이터를 수신한 개발 툴은 Device 입력 이벤트를 발생시켜 개발 툴 기능을 수행하게 된다.
PaaS의 개발 서버에 여러 사용자가 접속하는 경우 사용자가 접속할 때마다 개발 툴 프로세스가 각각 실행되고 개발 툴 화면 전송을 위해 사용되는 GPU의 인코더 또한 개발 툴 마다 할당되어 사용자들은 개발 서버의 GPU를 공유하여 사용하게 된다. 개발 서버에 접속하는 사용자 마다 개발 서버 시스템이 할당 되는 것이 아니라 위와 같은 절차로 서비스가 제공되어 하나의 시스템에서 여러 사용자의 요청을 동시에 처리하게 된다. 하나의 개발 서버에서 여러 사용자를 지원하므로 플랫폼이 변경되어 개발 환경의 변경이 필요한 경우 하나의 시스템만 변경하면 다수의 사용자 환경을 한꺼번에 업그레이드 해 줄 수 있다.
100 : 개발 서버 접속 관리 프로그램(Dev Tool Server Manager)
110 : 개발 툴 프로세스 관리 기능 블록(Tool process Management)
120 : 단말 연결 관리 기능 블록(TE Connection )
130 : 개발 툴 설정 연결 기능 블록(Tool Connection)
140 : Graphic 전송 설정 연결 기능 블록(Graphic Info Connection )
150 : Device Input 송수신 설정 연결 기능 블록(Device Input Info Connection)
200 : 개발 툴 프로그램(Development Tool)
210 : 프로세스 설정 연결 기능 블록(Config Connection)
220 : Graphic 전송 설정 연결 기능 블록(Graphic config Connection)
230 : Graphic 데이터 전송 연결 기능 블록(Graphic TE Connection)
240 : Graphic 캡처 및 인코딩 기능 블록(Graphic Capture & Encoding)
250 : Device Input 설정 연결 기능 블록(Device Input Config Connection)
260 : Device Input 연결 기능 블록(Device Input TE Connection)
270 : Device Input 이벤트 처리 기능 블록(Device Input Event Processor)
300 : 개발 서버 접속 단말 프로그램(Dev Tool Client Program)
310 : 개발 서버 연결 기능 블록(GD Connection)
320 : 영상 play 기능 블록(Video Player)
330 : Device Input 캡처 기능 블록(Device Input Capturing)
340 : Graphic 데이터 연결 기능 블록(Graphic Connection)
350 : Device Input 연결 기능 블록(Device Input Connection)

Claims (1)

  1. PaaS 시스템에서 사용자에게 어플리케이션 제작을 위해 개발 툴을 배포함에 있어서, 개발 툴 화면을 GPU에서 캡처하고 GPU 인코더로 압축 전송 하는 방법
KR1020140077840A 2014-06-25 2014-06-25 PaaS 클라우드 시스템에서의 GPU 가상화 기법을 사용한 개발 툴 배포 방법 KR20160000604A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140077840A KR20160000604A (ko) 2014-06-25 2014-06-25 PaaS 클라우드 시스템에서의 GPU 가상화 기법을 사용한 개발 툴 배포 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140077840A KR20160000604A (ko) 2014-06-25 2014-06-25 PaaS 클라우드 시스템에서의 GPU 가상화 기법을 사용한 개발 툴 배포 방법

Publications (1)

Publication Number Publication Date
KR20160000604A true KR20160000604A (ko) 2016-01-05

Family

ID=55164561

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140077840A KR20160000604A (ko) 2014-06-25 2014-06-25 PaaS 클라우드 시스템에서의 GPU 가상화 기법을 사용한 개발 툴 배포 방법

Country Status (1)

Country Link
KR (1) KR20160000604A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180096302A (ko) * 2017-02-21 2018-08-29 동아대학교 산학협력단 사용자 정의 서비스 플랫폼 제공방법
WO2018203634A1 (ko) * 2017-05-02 2018-11-08 나무기술 주식회사 클라우드 플랫폼 시스템

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180096302A (ko) * 2017-02-21 2018-08-29 동아대학교 산학협력단 사용자 정의 서비스 플랫폼 제공방법
WO2018203634A1 (ko) * 2017-05-02 2018-11-08 나무기술 주식회사 클라우드 플랫폼 시스템
JP2020518932A (ja) * 2017-05-02 2020-06-25 ナム テク カンパニー リミテッドNamu Tech Co., Ltd. クラウドプラットフォームシステム
US11385938B2 (en) 2017-05-02 2022-07-12 Namu Tech Co., Ltd. Cloud platform system

Similar Documents

Publication Publication Date Title
AU2019233201B2 (en) Resource configuration method and apparatus, terminal, and storage medium
CN108854055B (zh) 用于远程显示器的基于云的虚拟化图形处理系统和介质
US8959141B2 (en) System and method for pervasive computing
US20100058341A1 (en) Apparatus and method for setting input/output device in virtualization system
JP2016076216A (ja) アプリケーション試用システム、方法及びそのサーバとユーザデバイス
US20130055254A1 (en) Methods and apparatuses for providing a virtual machine with dynamic assignment of a physical hardware resource
US9990214B2 (en) Dynamic agent delivery
CN106557288B (zh) 一种获取打印数据的方法及装置
US10404568B2 (en) Agent manager for distributed transaction monitoring system
US9801146B2 (en) Terminal and synchronization control method among terminals
US10698705B2 (en) Method and device for managing virtual desktops virtualized by a host server and allocated to terminal users, and virtual desktop server
WO2014015732A1 (zh) 一种终端能力描述信息的生成方法及系统
EP2570920A1 (en) System and method for cross-platform application execution and display
US20160364261A1 (en) Apparatus and method for providing adaptive virtual desktop operating system service
CN112121411A (zh) 震动控制方法、装置、电子设备和计算机可读存储介质
CN103813202A (zh) 具有互动功能的智能电视和手持设备及其互动方法
US20130151672A1 (en) Cloud computing method, computing apparatus and server using the same
CN106027631B (zh) 一种数据传输方法及装置
KR102102169B1 (ko) 가상 데스크탑 서비스를 위한 장치 및 가상 데스크탑 서비스 방법
WO2021239073A1 (zh) 物联网操作系统构建方法、系统、云平台及物联网设备
KR20160000604A (ko) PaaS 클라우드 시스템에서의 GPU 가상화 기법을 사용한 개발 툴 배포 방법
US20130263126A1 (en) System and method for increasing the capabilities of a mobile device
CN111615171B (zh) 无线局域网的接入方法和装置
US20110131271A1 (en) Apparatus and method for allocating and releasing imaging device in virtualization system
CN113617020B (zh) 游戏控制方法、装置、存储介质、服务器以及终端

Legal Events

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