KR20130037025A - 디바이스, 서버, 시스템 및 그 제어 방법 - Google Patents

디바이스, 서버, 시스템 및 그 제어 방법 Download PDF

Info

Publication number
KR20130037025A
KR20130037025A KR1020110101341A KR20110101341A KR20130037025A KR 20130037025 A KR20130037025 A KR 20130037025A KR 1020110101341 A KR1020110101341 A KR 1020110101341A KR 20110101341 A KR20110101341 A KR 20110101341A KR 20130037025 A KR20130037025 A KR 20130037025A
Authority
KR
South Korea
Prior art keywords
application
emulation
server
operation source
external device
Prior art date
Application number
KR1020110101341A
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 KR1020110101341A priority Critical patent/KR20130037025A/ko
Priority to EP12162437.3A priority patent/EP2579154A1/en
Priority to US13/646,121 priority patent/US20130090912A1/en
Priority to CN2012103765970A priority patent/CN103218247A/zh
Publication of KR20130037025A publication Critical patent/KR20130037025A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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
    • 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/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

서버의 제어 방법이 개시된다. 어플리케이션 제작 툴을 이용하여 어플리케이션 제작을 수행하는 디바이스와 통신하는 서버의 제어 방법은, 디바이스로부터 제작된 어플리케이션에 대응되는 동작 소스를 수신하는 단계, 수신된 동작 소스를 이용하여 어플리케이션에 대한 에뮬레이션을 수행하는 단계 및 에뮬레이션 실행 결과를 외부 디바이스로 전송하는 단계를 포함한다.

Description

디바이스, 서버, 시스템 및 그 제어 방법 { Device, Server, System and control method }
본 발명은 디바이스, 서버, 시스템 및 그 제어 방법에 관한 것으로서, 보다 상세하게는, 어플리케이션 제작에 이용되는 디바이스, 서버, 시스템 및 그 제어 방법에 관한 것이다.
컴퓨터, 전자, 통신 기술이 비약적으로 발전함에 따라 무선 통신망을 이용한 다양한 무선 통신 서비스가 제공되고 있다.
무선 통신 서비스는 기존의 음성 통화 서비스를 너머 다양한 멀티 미디어 서비스를 제공하는 형식으로 확장되고 있다.
한편, 최근 무선 인터넷 서비스에서는 어플리케이션 프로그램을 다운로드 받아서 사용하는 무선 인터넷 플랫폼 방식을 채용하고 있다.
이러한 무선 인터넷 플랫폼에서 다양한 부가 서비스를 제공하기 위한 어플리케이션 프로그램을 개발시키기 위해, 플랫폼을 제공하는 이동 통신사 등에서는 해당 플랫폼에 맞는 프로그램 코드를 작성할 수 있는 SDK(Software Development Kit)를 여러 개발사들에 배포하게 되고 개발사에서는 이 SDK를 이용하여 플랫폼에 맞는 다양한 어플리케이션을 개발하게 된다.
하지만, 기존 SDK 상에서 지원하는 OS는 그 종류가 제한적이어서 해당 OS를 지원하지 않는 기기에서는 어플리케이션 개발이 용이하지 않다는 문제점이 있었다.
또한, 기존 SDK 상에 구비되어 어플리케이션에 대한 에뮬레이션을 수행하는 에뮬레이터는 스캐닝 엔진(Scanning Engine)이 어플리케이션을 검사할 때마다 모두 가상의 환경에서 실행을 하고 분석을 해야 된다는 점에서는 상당한 자원 소모를 요구한다는 문제점이 있다. 구체적으로, 개발 기기에서 상당한 용량을 차지하며, 전반적인 속도 저하를 일으킨다는 문제점이 있었다.
발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은 어플리케이션 제작 및 에뮬레이션을 분리된 객체에서 수행하는 디바이스, 서버, 시스템 및 그 제어 방법 디스플레이 장치 및 그 디스플레이 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 어플리케이션 제작 툴을 이용하여 어플리케이션 제작을 수행하는 디바이스와 통신하는 서버의 제어 방법은, 상기 디바이스로부터 제작된 어플리케이션에 대응되는 동작 소스를 수신하는 단계, 상기 수신된 동작 소스를 이용하여 상기 어플리케이션에 대한 에뮬레이션을 수행하는 단계 및 상기 에뮬레이션 실행 결과를 외부 디바이스로 전송한다.
또한, 상기 외부 디바이스로부터 상기 에뮬레이션 실행 결과에 대한 전송 요청을 수신하는 단계를 더 포함하며, 상기 에뮬레이션을 수행하는 단계는, 기저장된 적어도 하나 이상의 에뮬레이터 중 상기 전송 요청을 전송한 외부 디바이스의 기기 특성에 대응되는 에뮬레이터를 결정하고, 결정된 에뮬레이터를 이용하여 상기 에뮬레이션을 수행할 수 있다.
또한, 상기 전송 단계는, 상기 에뮬레이션 실행 영상을 실시간 캡쳐(capture)하는 단계 및 상기 실시간 캡쳐된 영상을 상기 외부 디바이스로 스트리밍하는 단계를 포함할 수 있다.
이 경우 상기 동작 소스를 수신하는 단계는, 복수의 디바이스 각각으로부터 제작된 어플리케이션에 대응되는 복수의 동작 소스를 수신하며, 상기 에뮬레이션을 수행하는 단계는, 상기 복수의 동작 소스 각각의 특성에 대응되는 에뮬레이터를 이용하여 상기 복수의 동작 소스 각각에 대한 에뮬레이션을 수행할 수 있다.
또한, 상기 전송 단계는, 상기 복수의 동작 소스 각각에 대한 에뮬레이션 실행 영상을 실시간 캡쳐하는 단계 및 상기 실시간 캡쳐된 영상을 대응되는 디바이스로 각각 스트리밍하는 단계를 포함할 수 있다.
이 경우, 상기 어플리케이션 제작 툴은 SDK(Software Development Kit)가 될 수 있다.
한편, 상기 외부 디바이스는, 상기 동작 소스를 전송한 디바이스 및 다른 외부 디바이스 중 적어도 하나가 될 수 있다.
또한, 어플리케이션에 대한 에뮬레이션을 수행하는 서버와 통신하는 디바이스의 제어 방법은, 어플리케이션 제작 툴을 이용하여 어플리케이션을 제작하는 단계, 상기 제작된 어플리케이션에 대응되는 동작 소스를 서버로 전송하는 단계 및 상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 결과를 수신하여 디스플레이하는 단계를 포함한다.
또한, 상기 디스플레이 단계는, 상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 영상을 실시간으로 캡쳐한 데이터를 스트리밍 받아 디스플레이할 수 있다.
한편, 본 발명의 일 실시 예에 따른 어플리케이션 제작 툴을 이용하여 어플리케이션 제작을 수행하는 디바이스와 통신하는 서버는, 상기 디바이스로부터 제작된 어플리케이션에 대응되는 동작 소스를 수신하는 통신부, 상기 수신된 동작 소스를 이용하여 상기 어플리케이션에 대한 에뮬레이션을 수행하는 에뮬레이션부 및 상기 에뮬레이션 실행 결과를 외부 디바이스로 전송하도록 제어하는 제어부를 포함한다.
또한, 상기 제어부는, 상기 외부 디바이스로부터 상기 에뮬레이션 실행 결과에 대한 전송 요청을 수신하는 경우, 기저장된 적어도 하나 이상의 에뮬레이터 중 상기 전송 요청을 전송한 외부 디바이스의 기기 특성에 대응되는 에뮬레이터를 결정하고, 결정된 에뮬레이터를 이용하여 상기 에뮬레이션을 수행할 수 있다.
또한, 상기 제어부는, 상기 에뮬레이션 실행 영상을 실시간 캡쳐(capture)하고, 상기 실시간 캡쳐된 영상을 상기 외부 디바이스로 스트리밍하도록 제어할 수 있다.
또한, 상기 제어부는, 복수의 디바이스 각각으로부터 제작된 어플리케이션에 대응되는 복수의 동작 소스를 수신하는 경우, 상기 복수의 동작 소스 각각의 특성에 대응되는 에뮬레이터를 이용하여 상기 복수의 동작 소스 각각에 대한 에뮬레이션을 수행할 수 있다.
또한, 상기 제어부는, 상기 복수의 동작 소스 각각에 대한 에뮬레이션 실행 영상을 실시간 캡쳐하고, 상기 실시간 캡쳐된 영상을 대응되는 디바이스로 각각 스트리밍할 수 있다.
여기서, 상기 어플리케이션 제작 툴은 SDK(Software Development Kit)가 될 수 있다.
한편, 상기 외부 디바이스는, 상기 동작 소스를 전송한 디바이스 및 다른 외부 디바이스 중 적어도 하나가 될 수 있다.
또한, 본 발명의 일 실시 예에 따른 어플리케이션에 대한 에뮬레이션을 수행하는 서버와 통신하는 디바이스는, 서버와 통신하는 통신부, 어플리케이션 제작 툴을 이용하여 어플리케이션을 제작하는 어플리케이션 생성부, 상기 제작된 어플리케이션에 대응되는 동작 소스를 상기 서버로 전송하고 상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 결과를 수신하도록 제어하는 제어부 및 상기 수신된 에뮬레이션 실행 결과를 디스플레이하는 디스플레이부를 포함한다.
또한, 상기 디스플레이부는, 상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 영상을 실시간으로 캡쳐한 데이터를 스트리밍 받아 디스플레이할 수 있다.
한편, 본 발명의 일 실시 예에 따른 어플리케이션 제작 툴을 이용하여 어플리케이션 제작을 수행하는 디바이스 및 상기 디바이스에서 제작된 어플리케이션에 대한 에뮬레이션을 수행하는 서버를 포함하는 시스템의 제어 방법은, 상기 디바이스가 어플리케이션 제작 툴을 이용하여 어플리케이션을 제작하고, 상기 제작된 어플리케이션에 대응되는 동작 소스를 서버로 전송하는 단계, 상기 서버가 상기 디바이스로부터 제작된 어플리케이션에 대응되는 동작 소스를 수신된 동작 소스를 이용하여 상기 어플리케이션에 대한 에뮬레이션을 수행하고, 상기 에뮬레이션 실행 결과를 상기 디바이스로 전송하는 단계 및 상기 디바이스가 상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 결과를 수신하여 디스플레이하는 단계를 포함한다.
또한, 본 발명의 일 실시 예에 따른 시스템은, 어플리케이션 제작 툴을 이용하여 제작된 어플리케이션에 대응되는 동작 소스를 상기 서버로 전송하고 상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 결과를 수신하여 디스플레이하는 디바이스 및 상기 디바이스로부터 제작된 어플리케이션에 대응되는 동작 소스를 수신하고, 상기 수신된 동작 소스를 이용하여 상기 어플리케이션에 대한 에뮬레이션을 수행하여, 상기 에뮬레이션 실행 결과를 외부 디바이스로 전송하는 서버를 포함한다.
도 1은 본 발명의 일 실시 예에 따른 어플리케이션 개발 시스템의 구성을 개략적으로 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 디바이스의 구성을 나타내는 블럭도이다.
도 3은 본 발명의 일 실시 예에 따른 서버의 구성을 나타내는 블럭도이다.
도 4는 본 발명의 다른 실시 예에 따른 서버 및 디바이스 간의 관계를 설명하기 위한 도면이다.
도 5는 본 발명의 다른 실시 예에 따른 서버 및 디바이스 간의 동작 관계를 개략적으로 도시화한 모식도이다.
도 6은 본 발명의 일 실시 예에 따른 디바이스의 제어 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 일 실시 예에 따른 서버의 제어 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 일 실시 예에 따른 디바이스 및 서버 간의 동작 관계를 설명하기 위한 시퀀스도이다.
도 1은 본 발명의 일 실시 예에 따른 어플리케이션 개발 시스템의 구성을 개략적으로 설명하기 위한 도면이다.
도 1에 따르면 어플리케이션 개발 시스템(1000)은 서버(100) 및 디바이스(200)를 포함한다.
어플리케이션 개발 시스템(1000)은 어플리케이션 제작 툴을 이용하여 플랫폼(Platform)이나, OS(Operating System)에서 작동하는 어플리케이션, 즉 실행 파일(Executable File)을 제작하고, 제작된 어플리케이션을 에뮬레이션하도록 동작할 수 있다. 여기서, 어플리케이션 제작 툴은 SDK(Software Development Kit)가 될 수 있다.
SDK는 일반적으로 소프트웨어 기술자가 특정한 소프트웨어 꾸러미, 소프트웨어 프레임 워크, 하드웨어 플랫폼, 컴퓨터 시스템, 게임기, 운영 체제 등을 위한 응용 프로그램을 만들 수 있게 하는 개발 도구의 집합이다. 이러한 SDK는 플랫폼 개발사나 OS 개발사가 어플리케이션 개발자들을 대상으로 배포하는 것으로, 예를 들어, 플랫폼 개발사나 OS 개발사의 해당 서버로부터 다운받을 수 있다. SDK 에는 예를 들어, 다이렉트X SDK, 자바 SDK, 안드로이드 SDK 등이 존재한다.
디바이스(100)는 어플리케이션 제작 툴, 즉 SDK를 이용하여 어플리케이션을 제작하는 기능을 한다. 즉, 디바이스(100)는 기존 SDK 상에서의 에디터(Editor) 모듈을 구비하여 어플케이션을 제작하는 기능을 한다.
또한, 디바이스(100)는 제작된 어플리케이션의 동작 소스를 서버(200)로 전송할 수 있으며, 서버(200)에서 해당 어플리케이션에 대한 에뮬레이션 결과를 전송받아 화면에 디스플레이할 수 있다.
서버(200)는 디바이스(100)로부터 제작된 어플리케이션에 대한 동작 소스를 제공받아 에뮬레이션을 수행하는 기능을 한다.
구체적으로, 서버(200)는 기존 SDK 상에서의 플랫폼이 탑재된 에뮬레이터(Emulator)를 구비하여 디바이스(100)로부터 제작된 어플리케이션에 대한 동작 소스를 제공받아 가상(Virtual)의 환경이나 가상의 하드웨어(Hardware) 이미지를 생성하여 해당 가상 하드웨어(Hardware)를 통하여 간접적으로 실행할 수 있다.
이에 따라 서버(200)는 어플리케이션을 실제 CPU를 이용한 연산과 동일하게 처리하기 위해 일반적인 모든 명령어를 처리할 수 있어야 하며, 어플리케이션이 실행되었을 때 변경하는 메모리 주소들에 대해 모두 기록하고 이를 추적할 수 있어야 하며 논리적인 메모리 주소와 물리적인 메모리 주소들을 모두 제공할 수 있도록 구현될 수 있다.
또한, 서버(200)는 디바이스(100)로부터의 요청 또는 기설정된 조건에 따라 에뮬레이션 결과를 디바이스(100)로 전송할 수 있다.
예를 들어, 서버(200)는 클라우드 컴퓨팅 기술을 이용하는 클라우드 서버로 구현될 수 있다. 여기서, 클라우드 컴퓨팅(cloud computing)은 인터넷 기반(cloud)의 컴퓨팅(computing) 기술을 의미하는 것으로, 인터넷 상의 유틸리티 데이터 서버에 프로그램을 두고 그때 그때 컴퓨터나 TV, 휴대폰 등에 불러와서 사용하는 웹에 기반한 소프트웨어 서비스이다. 즉, 서버(200)는 다양한 개발 기기에 적용될 수 있는 클라우드 에뮬레이터를 구비하도록 구현될 수 있다. 클라우드 컴퓨팅에 대한 자세한 설명은 생략하도록 한다.
도 2는 본 발명의 일 실시 예에 따른 디바이스(100)의 구성을 나타내는 블럭도이다.
도 2에 따르면, 디바이스(100)는 어플리케이션 생성부(110), 통신부(120), 디스플레이부(130), 저장부(140) 및 제어부(150)를 포함한다.
디바이스(100)는 대표적으로 PC로 구현될 수 있으나, 이에 한정되는 것은 아니며 스마트폰과 같이 어플리케이션 개발 툴을 다운로드받아 어플리케이션을 개발할 수 있는 다양한 기기로 구현가능하다.
어플리케이션 생성부(110)는 어플리케이션 소스를 이용하여 어플케이션을 제작하는 기능을 수행한다.
구체적으로, 어플리케이션 생성부(110)는 SDK(Software Development Kit)을 통해 제공되는 다양한 어플리케이션 소스를 통해 어플리케이션을 제작, 수정할 수 있다. 예를 들어, 어플리케이션 생성부(110)는 어플리케이션을 소스 코드 형태로 생성, 수정할 수 있다.
통신부(120)는 서버(200)와의 통신을 지원할 수 있다.
구체적으로, 통신부(120)는 서버(도 1, 200)에 어플리케이션 생성부(110)를 통해 생성된 어플리케이션의 동작 소스를 서버(200)로 전송할 수 있다. 이 경우, 서버(200)로 전송되는 어플리케이션의 동작 소스는 제작 중 또는 제작 완료된 어플리케이션에 대한 동작 소스가 될 수 있다.
또한, 통신부(120)는 서버(200)로 전송한 어플리케이션의 동작 소스에 대응되는 에뮬레이션 결과를 서버(200)로부터 수신할 수 있다.
구체적으로, 통신부(120)는 에뮬레이션 실행 영상을 실시간으로 캡쳐한 영상을 스트리밍 형태로 제공받을 수 있다. 여기서, 실행 영상을 캡쳐한다는 것은 실행 영상을 전송을 위해 인코딩한다는 것을 의미한다.
디스플레이부(130)는 서버(200)로부터 수신한 에뮬레이션 결과를 디스플레이하는 기능을 한다.
구체적으로 디스플레이부(130)는 서버(200)로부터 스트리밍 받은 어플리케이션에 대한 에뮬레이션 영상을 디스플레이할 수 있다.
저장부(140)는 어플리케이션 제작을 위한 다양한 소스를 저장할 수 있다. 예를 들어, 저장부(140)는 특정 플랫폼 개발사나 OS 개발사로부터 다운로드받은 SDK(Software Development Kit)를 저장할 수 있다. 특히, 저장부(140)는 SDK 기능 요소 중 에디터 기능과 관련된 프로그램을 저장할 수 있다.
또한, 저장부(140)는 디바이스(100)의 동작에 필요한 다양한 프로그램을 저장할 수 있다.
제어부(150)는 디바이스(100)의 전반적인 동작을 제어하는 기능을 한다.
특히, 제어부(150)는 기설정된 이벤트에 따라 어플리케이션 생성부(110)를 통해 생성되는 어플리케이션의 동작 소스를 서버(200)로 전송하도록 제어할 수 있다. 여기서, 기설정된 이벤트는 사용자 명령이 될 수 있으나, 이에 한정되는 것은 아니며, 미리 셋팅된 기설정된 주기에 도달한 경우 등도 될 수 있다.
도 3은 본 발명의 일 실시 예에 따른 서버의 구성을 나타내는 블럭도이다.
도 3에 따르면, 서버(200)는 통신부(210), 에뮬레이션부(220), 저장부(230) 및 제어부(240)를 포함한다.
통신부(210)는 외부 디바이스(100)로부터 개발 중 또는 개발 완료된 어플리케이션에 대응되는 동작 소스를 수신하는 기능을 한다.
또한, 통신부(210)는 기설정된 이벤트에 따라 수신된 동작 소스에 대한 에뮬레이션 결과를 해당 외부 디바이스(도 1, 100)로 전송하는 기능을 한다.
에뮬레이션부(220)는 통신부(210)를 통해 수신된 어플리케이션에 대한 동작 소스를 이용하여 어플리케이션에 대한 에뮬레이션을 수행하는 기능을 한다. 이에 따라 에뮬레이션부(220)는 플랫폼이 탑재된 에뮬레이터를 구비할 수 있다.
구체적으로, 에뮬레이션부(220)는 실제 하드웨어와 가상의 환경에서 에뮬레이션 기능을 수행하는 에뮬레이터를 구비하여 어플리케이션에 대한 에뮬레이션을 수행할 수 있다.
이 경우, 에뮬레이션부(220)는 다양한 플랫폼 또는 OS 등에 대응하는 다양한 종류의 에뮬레이터를 구비할 수 있다. 또한, 에뮬레이션부(220)는 동일한 플랫폼 또는 OS인 경우에도 다양한 버전에 따른 에뮬레이터를 구비할 수 있다.
이에 따라 에뮬레이션부(220)는 수신된 동작 소스에 대응되는 에뮬레이터를 이용하여 에뮬레이션을 수행할 수 있다.
저장부(230)는 상술한 다양한 에뮬레이터에 대응되는 프로그램들을 저장할 수 있다.
제어부(240)는 서버(200)의 전반적인 동작을 제어하는 기능을 한다.
특히, 제어부(240)는 기설정된 이벤트가 발생하면 통신부(210)를 통해 수신된 어플리케이션에 대한 동작 소스에 대응되는 에뮬레이터를 결정하고, 해당 에뮬레이터가 에뮬레이션을 수행하도록 에뮬레이터부(220)를 제어할 수 있다. 여기서, 기설정된 이벤트는 디바이스(100) 또는 다른 클라이언트 기기로부터 에뮬레이션 결과 요청 신호가 수신된 경우 등이 될 수 있다. 예를 들어, 제어부(240)는 디바이스(100) 또는 다른 클라이언트 기기로부터 에뮬레이션 결과 전송 요청이 있는 경우 인스턴스(Instance)를 생성하고, 이에 따른 실행 플랫폼을 결정하여 수신된 어플리케이션에 대한 에뮬레이션을 수행할 수 있다.
또한, 제어부(240)는 에뮬레이션부(220)를 통해 수행되는 어플리케이션의 에뮬레이션 실행 영상을 실시간으로 캡쳐하여 해당 디바이스(100) 또는 다른 클라이언트 기기로 전송하는 기능을 한다.
다만, 이에 한정되는 것은 아니며 기설정된 주기에 도달한 경우도 이에 해당할 수 있다.
또한, 제어부(240)는 실시간으로 캡쳐된 실행 영상을 디바이스(100)로 스트리밍하도록 제어할 수 있다.
또한, 제어부(240)는 복수의 디바이스 각각으로부터 제작된 어플리케이션에 대응되는 복수의 동작 소스를 수신하는 경우, 복수의 동작 소스 각각에 부합되는 에뮬레이터를 이용하여 복수의 동작 소스 각각에 대한 에뮬레이션을 수행할 수 있다.
도 4는 본 발명의 다른 실시 예에 따른 서버 및 디바이스 간의 관계를 설명하기 위한 도면이다.
도 1 내지 3에서는 특정 디바이스(100)에서 서버(200)로 어플리케이션이 동작 소스를 전송하고, 서버(200)에서 수신된 동작 소스에 대한 에뮬레이션 결과를 해당 디바이스(100)로 전송하는 경우에 대해 주로 설명하였다.
하지만, 본 발명의 다른 실시 예에 따르면, 서버(200)의 에뮬레이션 결과는 동작 소스를 전송한 디바이스(100)가 아닌 다른 디바이스(10)로 전송될 수도 있다.
즉, 사용자는 PC에서 어플리케이션 개발 작업을 진행한 경우라도 PC가 아닌 TV, 스마트 폰과 같은 다른 디바이스(10)에서 에뮬레이션 결과를 확인하는 것도 가능하다.
도 5는 본 발명의 다른 실시 예에 따른 서버 및 디바이스 간의 동작 관계를 개략적으로 도시화한 모식도이다.
도 5에 도시된 바와 같이 SDK가 지원하지 못하는 PC(100) 환경 하에서 어플리케이션을 개발하고자 하는 경우 PC(100) 상에서는 기본적인 개발 환경, 즉 에디터 기능 만을 제공하고, 어플리케이션에 대한 에뮬레이션은 서버 상에서 이루어지도록 구현할 수 있다. 이 경우 PC(100) 상에서는 에뮬레이션 영상을 스크린을 통해 확인할 수 있다. 이에 따라 PC(100)는 어플리케이션을 Server(200)로 전송 및 관리하는 모듈과 Server(200)로부터 스트리밍을 수신하는 모듈을 구비할 수 있다.
한편, 서버(200)에서는 에뮬레이션 환경을 실시간으로 캡쳐링(capturing)하고 이를 PC(100) 또는 TV(10)와 같은 다른 디바이스로 전송하는 기능을 수행하도록 구현될 수 있다.
도 6은 본 발명의 일 실시 예에 따른 디바이스의 제어 방법을 설명하기 위한 흐름도이다.
도 6에 도시된 어플리케이션에 대한 에뮬레이션을 수행하는 서버와 통신하는 디바이스의 제어 방법에 따르면, 우선 어플리케이션 제작 툴을 이용하여 어플리케이션을 제작한다(S610).
이어서, 제작된 어플리케이션에 대응되는 동작 소스를 서버로 전송한다(S620).
이 후, 서버로부터 전송한 동작 소스에 대한 에뮬레이션 실행 결과를 수신하여 디스플레이한다(S630).
한편, S630 단계에서는, 서버로부터 동작 소스에 대한 에뮬레이션 실행 영상을 실시간으로 캡쳐한 데이터를 스트리밍 받아 디스플레할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 서버의 제어 방법을 설명하기 위한 흐름도이다.
도 7에 도시된 어플리케이션 제작 툴을 이용하여 어플리케이션 제작을 수행하는 디바이스와 통신하는 서버의 제어 방법에 따르면, 우선 디바이스로부터 제작된 어플리케이션에 대응되는 동작 소스를 수신한다(S710). 여기서, 어플리케이션 제작 툴은 SDK(Software Development Kit)가 될 수 있다.
이어서, 수신된 동작 소스를 이용하여 어플리케이션에 대한 에뮬레이션을 수행한다(S720).
이후, 에뮬레이션 실행 결과를 외부 디바이스로 전송한다(S730). 여기서, 외부 디바이스는 동작 소스를 전송한 디바이스 및 다른 외부 디바이스 중 적어도 하나가 될 수 있다.
한편, S720 단계에서는, 외부 디바이스로부터 상기 에뮬레이션 실행 결과에 대한 전송 요청을 수신하면, 기저장된 적어도 하나 이상의 에뮬레이터 중 전송 요청을 전송한 외부 디바이스의 기기 특성에 대응되는 에뮬레이터를 결정하고, 결정된 에뮬레이터를 이용하여 에뮬레이션을 수행할 수 있다.
또한, S730 단계에서는, 에뮬레이션 실행 결과를 외부 디바이스로 전송할 수 있다.
구체적으로, S730 단계에서는, 에뮬레이션 실행 영상을 실시간 캡쳐(capture)하고,실시간 캡쳐된 영상을 외부 디바이스로 스트리밍할 수 있다.
한편, 복수의 디바이스 각각으로부터 제작된 어플리케이션에 대응되는 복수의 동작 소스를 수신하는 경우, 복수의 동작 소스 각각의 특성에 대응되는 에뮬레이터를 이용하여 복수의 동작 소스 각각에 대한 에뮬레이션을 수행할 수 있다.
이 경우, 복수의 동작 소스 각각에 대한 에뮬레이션 실행 영상을 실시간 캡쳐하고, 실시간 캡쳐된 영상을 대응되는 디바이스로 각각 스트리밍할 수 있다.
도 8은 본 발명의 일 실시 예에 따른 디바이스 및 서버 간의 동작 관계를 설명하기 위한 시퀀스도이다.
디바이스(100)는 어플리케이션 제작 툴, 즉 SDK를 이용하여 어플리케이션을 제작하고(S810), 제작된 어플리케이션에 대응되는 동작 소스를 서버(200)로 전송할 수 있다(S820).
이어서, 디바이스(100)가 서버(200)에 에뮬레이션 결과를 요청하면(S830), 서버(200)를 해당 어플리케이션에 대응되는 동작 소스에 대한 에뮬레이션을 수행하고 에뮬레이션 영상을 캡쳐할 수 있다(S840).
이어서, 서버(200)는 캡쳐된 영상을 디바이스(100)로 스트리밍할 수 있다(S850).
이 경우 디바이스(100)는 수신한 스트리밍 영상을 디스플레이할 수 있다(S860).
한편, 경우에 따라서는 S830 단계는 생략될 수 있으며, 서버(200)는 디바이스(100)로부터의 에뮬레이션 결과 요청이 없더라도 기설정된 이벤트가 발생하는 경우 에뮬레이션 결과를 전송할 수 있다.
이에 따라 어플리케이션 개발자는 특정 SDK(특히, 에뮬레이터)가 지원하지 못하는 OS 상에서 어플리케이션을 개발하더라도 해당 어플리케이션을 서버로 전송하여 에뮬레이하고 해당 에뮬레이 결과를 받아볼 수 있게 된다. 이에 따라 OS 종류와 상관없이 어플리케이션 실행 화면을 받아볼 수 있게 된다.
또한, 개발 기기 상에서는 에뮬레이터가 차지하는 용량을 줄일 수 있고, 에뮬레이로 인해 개발 기기의 성능이 저하되는 것을 방지할 수 있게 된다.
또한, 본 발명에서는, 상술한 것과 같은 상술한 디바이스, 서버 및 시스템의 제어 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독 기록매체를 포함할 수 있다. 컴퓨터 판독 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터 판독 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있으며, 또한 컴퓨터 판독 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안 될 것이다.
100: 디바이스 11O: 통신부
120: 에뮬레이션부 130: 저장부
140: 제어부 200: 서버
210: 통신부 220: 어플리케이션 생성부
230: 디스플레이부 240: 저장부
250: 제어부

Claims (20)

  1. 어플리케이션 제작 툴을 이용하여 어플리케이션 제작을 수행하는 디바이스와 통신하는 서버의 제어 방법에 있어서,
    상기 디바이스로부터 제작된 어플리케이션에 대응되는 동작 소스를 수신하는 단계;
    상기 수신된 동작 소스를 이용하여 상기 어플리케이션에 대한 에뮬레이션을 수행하는 단계; 및
    상기 에뮬레이션 실행 결과를 외부 디바이스로 전송하는 단계;를 포함하는 서버의 제어 방법.
  2. 제1항에 있어서,
    상기 외부 디바이스로부터 상기 에뮬레이션 실행 결과에 대한 전송 요청을 수신하는 단계;를 더 포함하며,
    상기 에뮬레이션을 수행하는 단계는,
    기저장된 적어도 하나 이상의 에뮬레이터 중 상기 전송 요청을 전송한 외부 디바이스의 기기 특성에 대응되는 에뮬레이터를 결정하고, 결정된 에뮬레이터를 이용하여 상기 에뮬레이션을 수행하는 것을 특징으로 하는 서버의 제어 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 전송 단계는,
    상기 에뮬레이션 실행 영상을 실시간 캡쳐(capture)하는 단계; 및
    상기 실시간 캡쳐된 영상을 상기 외부 디바이스로 스트리밍하는 단계;를 포함하는 것을 특징으로 하는 서버의 제어 방법.
  4. 제3항에 있어서,
    상기 동작 소스를 수신하는 단계는,
    복수의 디바이스 각각으로부터 제작된 어플리케이션에 대응되는 복수의 동작 소스를 수신하며,
    상기 에뮬레이션을 수행하는 단계는,
    상기 복수의 동작 소스 각각의 특성에 대응되는 에뮬레이터를 이용하여 상기 복수의 동작 소스 각각에 대한 에뮬레이션을 수행하는 것을 특징으로 하는 서버의 제어 방법.
  5. 제4항에 있어서,
    상기 전송 단계는,
    상기 복수의 동작 소스 각각에 대한 에뮬레이션 실행 영상을 실시간 캡쳐하는 단계; 및
    상기 실시간 캡쳐된 영상을 대응되는 디바이스로 각각 스트리밍하는 단계;를 포함하는 것을 특징으로 하는 서버의 제어 방법.
  6. 제1항에 있어서,
    상기 어플리케이션 제작 툴은 SDK(Software Development Kit)인 것을 특징으로 하는 서버의 제어 방법.
  7. 제1항에 있어서,
    상기 외부 디바이스는,
    상기 동작 소스를 전송한 디바이스 및 다른 외부 디바이스 중 적어도 하나인 것을 특징으로 하는 서버의 제어 방법.
  8. 어플리케이션에 대한 에뮬레이션을 수행하는 서버와 통신하는 디바이스의 제어 방법에 있어서,
    어플리케이션 제작 툴을 이용하여 어플리케이션을 제작하는 단계;
    상기 제작된 어플리케이션에 대응되는 동작 소스를 서버로 전송하는 단계; 및
    상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 결과를 수신하여 디스플레이하는 단계;를 포함하는 디바이스의 제어 방법.
  9. 제8항에 있어서,
    상기 디스플레이 단계는,
    상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 영상을 실시간으로 캡쳐한 데이터를 스트리밍 받아 디스플레이하는 것을 특징으로 하는 디바이스의 제어 방법.
  10. 어플리케이션 제작 툴을 이용하여 어플리케이션 제작을 수행하는 디바이스와 통신하는 서버에 있어서,
    상기 디바이스로부터 제작된 어플리케이션에 대응되는 동작 소스를 수신하는 통신부;
    상기 수신된 동작 소스를 이용하여 상기 어플리케이션에 대한 에뮬레이션을 수행하는 에뮬레이션부; 및
    상기 에뮬레이션 실행 결과를 외부 디바이스로 전송하도록 제어하는 제어부;를 포함하는 서버.
  11. 제10항에 있어서,
    상기 제어부는,
    상기 외부 디바이스로부터 상기 에뮬레이션 실행 결과에 대한 전송 요청을 수신하는 경우, 기저장된 적어도 하나 이상의 에뮬레이터 중 상기 전송 요청을 전송한 외부 디바이스의 기기 특성에 대응되는 에뮬레이터를 결정하고, 결정된 에뮬레이터를 이용하여 상기 에뮬레이션을 수행하는 것을 특징으로 하는 서버.
  12. 제10항 또는 제11항에 있어서,
    상기 제어부는,
    상기 에뮬레이션 실행 영상을 실시간 캡쳐(capture)하고, 상기 실시간 캡쳐된 영상을 상기 외부 디바이스로 스트리밍하도록 제어하는 것을 특징으로 하는 서버.
  13. 제12항에 있어서,
    상기 제어부는,
    복수의 디바이스 각각으로부터 제작된 어플리케이션에 대응되는 복수의 동작 소스를 수신하는 경우, 상기 복수의 동작 소스 각각의 특성에 대응되는 에뮬레이터를 이용하여 상기 복수의 동작 소스 각각에 대한 에뮬레이션을 수행하는 것을 특징으로 하는 서버.
  14. 제13항에 있어서,
    상기 제어부는,
    상기 복수의 동작 소스 각각에 대한 에뮬레이션 실행 영상을 실시간 캡쳐하고, 상기 실시간 캡쳐된 영상을 대응되는 디바이스로 각각 스트리밍하는 것을 특징으로 하는 서버.
  15. 제10항 또는 제11항에 있어서,
    상기 어플리케이션 제작 툴은 SDK(Software Development Kit)인 것을 특징으로 하는 서버.
  16. 제10항 또는 제11항에 있어서,
    상기 외부 디바이스는,
    상기 동작 소스를 전송한 디바이스 및 다른 외부 디바이스 중 적어도 하나인 것을 특징으로 하는 서버.
  17. 어플리케이션에 대한 에뮬레이션을 수행하는 서버와 통신하는 디바이스에 있어서,
    서버와 통신하는 통신부;
    어플리케이션 제작 툴을 이용하여 어플리케이션을 제작하는 어플리케이션 생성부;
    상기 제작된 어플리케이션에 대응되는 동작 소스를 상기 서버로 전송하고 상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 결과를 수신하도록 제어하는 제어부; 및
    상기 수신된 에뮬레이션 실행 결과를 디스플레이하는 디스플레이부;를 포함하는 디바이스.
  18. 제17항에 있어서,
    상기 디스플레이부는,
    상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 영상을 실시간으로 캡쳐한 데이터를 스트리밍 받아 디스플레이하는 것을 특징으로 하는 디바이스.
  19. 어플리케이션 제작 툴을 이용하여 어플리케이션 제작을 수행하는 디바이스 및 상기 디바이스에서 제작된 어플리케이션에 대한 에뮬레이션을 수행하는 서버를 포함하는 시스템의 제어 방법에 있어서,
    상기 디바이스가 어플리케이션 제작 툴을 이용하여 어플리케이션을 제작하고, 상기 제작된 어플리케이션에 대응되는 동작 소스를 서버로 전송하는 단계;
    상기 서버가 상기 디바이스로부터 제작된 어플리케이션에 대응되는 동작 소스를 수신된 동작 소스를 이용하여 상기 어플리케이션에 대한 에뮬레이션을 수행하고, 상기 에뮬레이션 실행 결과를 상기 디바이스로 전송하는 단계; 및
    상기 디바이스가 상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 결과를 수신하여 디스플레이하는 단계;를 포함하는 시스템의 제어 방법.
  20. 어플리케이션 제작 툴을 이용하여 제작된 어플리케이션에 대응되는 동작 소스를 상기 서버로 전송하고 상기 서버로부터 상기 동작 소스에 대한 에뮬레이션 실행 결과를 수신하여 디스플레이하는 디바이스; 및
    상기 디바이스로부터 제작된 어플리케이션에 대응되는 동작 소스를 수신하고, 상기 수신된 동작 소스를 이용하여 상기 어플리케이션에 대한 에뮬레이션을 수행하여, 상기 에뮬레이션 실행 결과를 외부 디바이스로 전송하는 서버;를 포함하는 시스템.











KR1020110101341A 2011-10-05 2011-10-05 디바이스, 서버, 시스템 및 그 제어 방법 KR20130037025A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020110101341A KR20130037025A (ko) 2011-10-05 2011-10-05 디바이스, 서버, 시스템 및 그 제어 방법
EP12162437.3A EP2579154A1 (en) 2011-10-05 2012-03-30 System and method for controlling a device which produces and executes an application
US13/646,121 US20130090912A1 (en) 2011-10-05 2012-10-05 System and method for controlling a device which produces and executes an application
CN2012103765970A CN103218247A (zh) 2011-10-05 2012-10-08 用于控制产生并执行应用的装置的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110101341A KR20130037025A (ko) 2011-10-05 2011-10-05 디바이스, 서버, 시스템 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20130037025A true KR20130037025A (ko) 2013-04-15

Family

ID=45977217

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110101341A KR20130037025A (ko) 2011-10-05 2011-10-05 디바이스, 서버, 시스템 및 그 제어 방법

Country Status (4)

Country Link
US (1) US20130090912A1 (ko)
EP (1) EP2579154A1 (ko)
KR (1) KR20130037025A (ko)
CN (1) CN103218247A (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008031070A2 (en) * 2006-09-08 2008-03-13 Jamba! Software development environment for platform-independent application programs
US8204734B2 (en) * 2008-12-29 2012-06-19 Verizon Patent And Licensing Inc. Multi-platform software application simulation systems and methods
JP4930562B2 (ja) * 2009-09-16 2012-05-16 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置の機能シミュレート用プログラム及び情報処理装置並びに記録媒体
US8799862B2 (en) * 2011-06-24 2014-08-05 Alcatel Lucent Application testing using sandboxes

Also Published As

Publication number Publication date
US20130090912A1 (en) 2013-04-11
EP2579154A1 (en) 2013-04-10
CN103218247A (zh) 2013-07-24

Similar Documents

Publication Publication Date Title
CN108762937B (zh) 配置信息发送方法、获取方法、装置及终端
US9311158B2 (en) Determining a work distribution model between a client device and a cloud for an application deployed on the cloud
US9536261B2 (en) Resolving conflicts within saved state data
US9451043B2 (en) Remote virtualization of mobile apps
CA2814420C (en) Load balancing between general purpose processors and graphics processors
US9740761B2 (en) Management of application state data
KR20180066897A (ko) 인터렉티브 스트리밍 미디어를 제공하는 시스템 및 방법
US20150082239A1 (en) Remote Virtualization of Mobile Apps with Transformed Ad Target Preview
WO2014048215A1 (zh) 一种应用的开发、编译和调试方法以及装置
EP2517101A1 (en) A method, apparatuses and a system for compilation
CN111494936A (zh) 画面渲染方法、设备、系统及存储介质
KR20140106838A (ko) 스트리밍 기반의 게임 플랫폼을 이용한 클라우드 서비스 제공 장치 및 방법
CN110968395B (zh) 一种在模拟器中处理渲染指令的方法及移动终端
CN113542757A (zh) 云应用的图像传输方法、装置、服务器及存储介质
Huang et al. GamingAnywhere: an open-source cloud gaming testbed
CN115065684B (zh) 数据处理方法、装置、设备以及介质
CN113079216A (zh) 一种云应用的实现方法、装置、电子设备及可读存储介质
US9392047B1 (en) Facilitating application compatibility across devices
CN112354176A (zh) 云游戏实现方法、云游戏实现装置、存储介质与电子设备
US10073688B2 (en) Method and apparatus for executing application
CN115278304A (zh) 云音视频处理方法、系统、电子设备及存储介质
CN110012003B (zh) 一种云应用抓屏方法和装置
KR20130037025A (ko) 디바이스, 서버, 시스템 및 그 제어 방법
Zhang et al. Towards a contextual and scalable automated-testing service for mobile apps
US9954718B1 (en) Remote execution of applications over a dispersed network

Legal Events

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