KR102189889B1 - Method and system for web browser based android application streaming service - Google Patents

Method and system for web browser based android application streaming service Download PDF

Info

Publication number
KR102189889B1
KR102189889B1 KR1020200115577A KR20200115577A KR102189889B1 KR 102189889 B1 KR102189889 B1 KR 102189889B1 KR 1020200115577 A KR1020200115577 A KR 1020200115577A KR 20200115577 A KR20200115577 A KR 20200115577A KR 102189889 B1 KR102189889 B1 KR 102189889B1
Authority
KR
South Korea
Prior art keywords
web browser
user terminal
web
emulator
sound data
Prior art date
Application number
KR1020200115577A
Other languages
Korean (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 KR1020200115577A priority Critical patent/KR102189889B1/en
Application granted granted Critical
Publication of KR102189889B1 publication Critical patent/KR102189889B1/en

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • H04L65/601
    • H04L65/607
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

According to the present invention, a system for providing an Android application streaming service based on a web browser comprises: a user terminal installed with a web browser; and a server configured to execute multiple emulators configured to run an application selected in the user terminal. The server has multiple applications already installed through the multiple emulators, and the multiple applications are based on an Android operating system.

Description

웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 서비스 제공 방법 및 이를 위한 시스템{METHOD AND SYSTEM FOR WEB BROWSER BASED ANDROID APPLICATION STREAMING SERVICE}Web browser-based Android application streaming service provision method and system therefor {METHOD AND SYSTEM FOR WEB BROWSER BASED ANDROID APPLICATION STREAMING SERVICE}

본 발명은 웹 브라우저를 이용하여 안드로이드 애플리케이션 스트리밍 서비스를 제공하는 방법 및 이를 위한 시스템에 관한 것이다. 보다 구체적으로, 서버에 설치된 안드로이드 애플리케이션을 웹 브라우저에 전송하고 사용자는 어떠한 소프트웨어나 애플리케이션의 설치 없이 안드로이드 애플리케이션을 스트리밍 방식으로 실행해주는 시스템 및 방법에 관한 것이다.The present invention relates to a method and a system for providing an Android application streaming service using a web browser. More specifically, it relates to a system and method for transmitting an Android application installed on a server to a web browser, and for a user to run an Android application in a streaming method without installing any software or application.

클라우드 게임 시장 점점 더 치열한 경쟁속에 성장하고 있다. 해외 시장에는 구글, MS, 페이스북, 엔비디아, 애플 등 글로벌 IT 기업들이 이 시장에 앞다투어 진출하였다. 국내 시장에는 이동통신사가 해외 IT기업들과 협업하는 방식으로 클라우드 게임 사업을 시작하였다. 시장 조사 업체에 따르면 전 세계 클라우드 게임 시장 규모를 2019년 1.6억 달러(약 1900억원)에서 2023년 50.5억 달러(약 61조원) 수준으로 30배 이상 성장할 것으로 전망하고 있다.The cloud game market is growing amid increasingly fierce competition. In the overseas market, global IT companies such as Google, Microsoft, Facebook, Nvidia, and Apple have entered the market. In the domestic market, mobile carriers have started cloud game business in a way that collaborates with foreign IT companies. According to market research firms, the global cloud game market is expected to grow more than 30 times from $160 million (about 190 billion won) in 2019 to $0.55 billion (about 61 trillion won) in 2023.

사용자는 클라우드에 접속한 뒤 스트리밍으로 게임을 즐길 수 있으며, 클라우드 서비스 전용 앱을 설치하면 모바일은 물론 윈도 PC에서도 이용 가능하다. 이와 같은 스트리밍 게임의 장점은 사용자의 클라이언트 기기에서 실행하기 어려운 고사양의 게임이나 타 플랫폼의 게임을 플레이할 수 있고, 사용자의 디바이스가 사양이 낮아 최신 게임을 실행하기 어려운 상태라고 해도 스트리밍 게임으로 고사양의 콘솔, PC, 모바일 게임을 플레이할 수 있다는 점이다.Users can enjoy streaming games after connecting to the cloud, and by installing a cloud service exclusive app, users can use it on mobile as well as Windows PC. The advantage of streaming games like this is that users can play high-end games that are difficult to run on their client devices or games of other platforms, and even if users' devices are in a state of being difficult to run the latest games due to low specifications Console, PC, and mobile games can be played.

하지만 이러한 장점에도 불구하고 클라우드 게임 서비스를 이용할 때의 문제점은 지속적으로 제기되고 있다. 클라우드 스트리밍 게임의 단점으로는 PC와 콘솔 게임 기반의 고 사양 게임을 스트리밍 하는 부분이다 보니 지연(latency)으로 인한 스트리밍의 끊김 현상이 발생하여 사용자 경험의 심각한 저하가 발생한다. 또한 고사양의 서버 인스턴스 비용과 네트워크 트래픽 비용이 발생하므로 사용자에게는 높은 사용 요금이 부과가 되는 점이 있다. 그리고 모든 클라우드 게임은 각 서비스 업체의 전용 앱이나 소프트웨어를 설치해야만 이용할 수 있다. However, despite these advantages, problems in using cloud game services are constantly being raised. The downside of cloud streaming games is that they are streaming high-end games based on PC and console games, so the streaming is interrupted due to latency, resulting in serious degradation of user experience. In addition, high-spec server instance costs and network traffic costs are incurred, so users are charged a high usage fee. And all cloud games can only be used by installing a dedicated app or software from each service provider.

보다 구체적으로 종래의 서비스들의 문제점을 살펴보면 아래와 같다.More specifically, the problems of conventional services are as follows.

앱 플레이어App player

앱 플레이어는 스마트폰의 어플리케이션을 PC에서 실행할 수 있도록 해 주는 프로그램이다. 일반적으로는 모바일 게임을 PC의 큰 화면에서 즐기기 위해 사용된다. 앱 플레이어는 기기 사양이 부족해 최신 게임을 실행하기 어렵거나 장시간 모바일로 게임을 하기에 배터리 용량 문제 및 발열에 부담감을 해소할 수 있다는 점에서 유저가 점점 늘어나고 있다. 또 갈수록 게임 규모가 대형화되는 것은 물론 고사양화가 이뤄지는 점에서 스마트폰 또는 PC의 성능과 상관없이 사용 가능한 앱 플레이어의 사용은 점점 늘어가고 있다. 하지만 앱 플레이어로 안드로이드 게임을 할 때 프로그램 설치와 게임 어플리케이션 설치를 요구하며 게임이 제대로 실행되지 않거나 앱 플레이어 프로그램 성능이 불안정한 문제가 지적되고 있다. The app player is a program that allows you to run applications on your smartphone on your PC. It is generally used to enjoy mobile games on the big screen of a PC. The number of users is increasing in that it is difficult to run the latest games due to lack of device specifications, or because they can relieve the burden of battery capacity problems and heat generation because they play games on mobile for a long time. In addition, as the scale of games increases as well as high specifications, the use of app players that can be used regardless of the performance of smartphones or PCs is increasing. However, when playing Android games as an app player, a program installation and a game application installation are required, and a problem has been pointed out that the game does not run properly or the app player program performance is unstable.

클라우드 게임 Cloud games

클라우드 게임의 장점은 사용자의 클라이언트 기기에서 실행하기 어려운 고사양의 게임이나 타 플랫폼의 게임을 플레이할 수 있고, 사용자의 디바이스는 사양이 낮아 최신 게임을 실행하기 어려운 상태라고 해도 스트리밍 방식으로 고사양의 콘솔, PC, 모바일 게임을 플레이할 수 있다. 반면 클라우드 게임의 단점으로는 높은 지연현상(Latency)으로 인한 스트리밍의 끊김 또는 깨짐 현상이 있을 수 있다는 것이다. 실시간으로 플레이가 되어야 하기에 게임의 모든 화면과 소리를 실시간으로 사용자의 기기로 전송해야 한다. 사용자가 실시간으로 게임을 플레이 하던 중 게임의 끊김 현상이 발생하면 게임의 특성상 사용자 경험의 심각한 저하가 발생한다. 또한, 스트리밍 게임을 운영하기 위해서는 고사양의 서버 비용과 네트워크 트래픽 비용이 발생하는데, 이 때문에 사용 요금이 많이 부과되어 사용자 입장에서는 많은 부담감으로 다가와서 구매력이 낮거나 무료이용을 원하는 사용자를 끌어들이기에는 큰 단점 중 하나이다. 그리고 모든 클라우드 게임은 각 서비스 업체의 전용 앱이나 소프트웨어를 설치해야만 이용할 수 있다. The advantage of cloud games is that users can play high-end games that are difficult to run on their client devices or games of other platforms, and users' devices have low specifications, so even though it is difficult to run the latest games, the streaming method provides high-end consoles, PC and mobile games can be played. On the other hand, the disadvantage of cloud games is that there may be interruptions or breaks in streaming due to high latency. Since it must be played in real time, all screens and sounds of the game must be transmitted to the user's device in real time. If the game is interrupted while the user is playing the game in real time, the user experience is severely deteriorated due to the nature of the game. In addition, high-spec server costs and network traffic costs are incurred in order to operate streaming games, which is a big disadvantage to attracting users who have low purchasing power or want to use free use, as the usage fee is charged a lot. Is one of them. And all cloud games can only be used by installing a dedicated app or software from each service provider.

HTML5 게임HTML5 games

기존의 게임은 플레이하기 위해서는 해당 플랫폼에 설치를 하거나, 혹은 게임이 저장된 외부 매체를 읽어 들이는 과정을 필히 거쳐야 했고 게임을 구동하는 데 있어서 플랫폼 간 제약도 있었다. 그러나 HTML5 기반의 게임은 이러한 제약에 구애받지 않는 특징을 갖췄다. HTML은 '하이퍼텍스트 마크업 언어'라는 뜻으로, 웹페이지를 구성하는 데 지배적인 역할을 하는 마크업 언어다. 최초에는 웹페이지 구성을 하는 정도에만 그쳤지만, 점차 버전이 업그레이드되면서 비디오, 오디오 등 다양한 부가기능과 최신 멀티미디어 콘텐츠를 ActiveX나 플러그인 없이 브라우저에서 쉽게 볼 수 있게 하도록 발전했다. 그 최신판인 HTML5는 2014년 10월 28일 웹 표준 국제 컨소시엄인 W3C에서 표준안이 마련됐으며, 그 뒤로 개선을 거쳐서 2017년 12월 14일 5.2 권고안이 발표되는 등 꾸준히 업데이트가 이루어지고 있다. HTML5 게임은 실시간 반응이 느리다는 단점을 가지고 있어 초를 다투는 대전 게임에 적합하지 않다. 또한, 모바일 게임을 HTML5 게임으로 출시하지는 않아서 모바일 게임을 플레이 할 수 없다.In order to play the existing game, it was necessary to install it on the platform or read the external medium in which the game was stored, and there were also restrictions between platforms in running the game. However, HTML5 based games have features that are not bound by these restrictions. HTML, which means'hypertext markup language', is a markup language that plays a dominant role in composing web pages. Initially, it only consisted of configuring web pages, but as the version was gradually upgraded, various additional functions such as video and audio and the latest multimedia contents were developed to make it easy to view in a browser without ActiveX or plug-ins. The latest version, HTML5, was prepared by the W3C, an international web standards consortium on October 28, 2014, and has been updated since then, with the 5.2 recommendation being released on December 14, 2017. HTML5 games have the disadvantage of slow real-time response, so they are not suitable for fighting games in which seconds are fought. Also, mobile games cannot be played because mobile games are not released as HTML5 games.

따라서, 종래의 클라우드 방식의 스트리밍 게임 및 다른 종류의 앱 제공 방식의 단점을 극복할 수 있는 새로운 방식의 웹 브라우저 기반의 스트리밍 애플리케이션 제공 방법이 필요하다.Accordingly, there is a need for a new method of providing a web browser-based streaming application that can overcome the drawbacks of the conventional cloud type streaming game and other types of app provision methods.

대한민국 공개특허공보 제10-2018-0115972호(2018.10.24)Republic of Korea Patent Publication No. 10-2018-0115972 (2018.10.24)

본 발명은 전술한 종래의 문제점을 해결하기 위한 것으로, 그 첫 번째 목적은 클라우드 게임을 하기 위한 소프트웨어나 게임 애플리케이션의 설치 없이 인터넷이 가능한 환경의 웹 브라우저에서 URL 주소로 접속하여 바로 사용자가 사용하고자 하는 애플리케이션을 실행할 수 있는 사용자 환경을 제공하는 것이다.The present invention is to solve the above-described conventional problem, the first object of which is to be used by a user by accessing a URL address from a web browser in an Internet-enabled environment without installing software or game applications for playing cloud games. It provides a user environment that can run applications.

또한, 본 발명은 편리한 사용자 경험과 안드로이드 모바일 게임에 최적화된 스트리밍 서버를 제공함으로써 종래의 스트리밍 게임보다 사용자의 경험에 있어서 최고의 만족감을 제공하는 것을 목적으로 한다.In addition, an object of the present invention is to provide a convenient user experience and a streaming server optimized for Android mobile games, thereby providing the best satisfaction in the user experience than a conventional streaming game.

또한, 본 발명은 서버에 설치된 다양한 종류의 안드로이드 애플리케이션을 웹 브라우저에 전송하고 사용자는 어떠한 소프트웨어 및 애플리케이션의 설치 없이 스트리밍으로 즉시 안드로이드 애플리케이션을 실행가능한 시스템 및 방법을 제공하는 것을 목적으로 한다.In addition, an object of the present invention is to provide a system and method capable of transmitting various types of Android applications installed on a server to a web browser, and allowing users to immediately execute Android applications through streaming without installing any software or applications.

또한, 본 발명은 다양한 형태의 웹 브라우저에서 적용가능한 안드로이드 애플리케이션 스트리밍 서비스 제공 방법 및 시스템을 제공하는 것을 목적으로 한다.In addition, an object of the present invention is to provide a method and system for providing an Android application streaming service applicable to various types of web browsers.

본 발명의 해결 과제들은 이상에서 언급한 내용들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved of the present invention are not limited to the contents mentioned above, and other technical problems that are not mentioned will be clearly understood by those skilled in the art from the following description.

본 발명의 일 실시예에 따르면, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공을 위한 시스템에 있어서,웹 브라우저가 설치된 사용자 단말; 및 상기 사용자 단말에서 선택된 애플리케이션을 실행하도록 구성된 복수의 에뮬레이터를 실행시키도록 구성된 서버를 포함하고, 상기 서버에는 상기 복수의 에뮬레이터를 통해 복수의 애플리케이션이 기 설치되어 있고, 상기 복수의 애플리케이션은 안드로이드 운영 체제 기반인 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공을 위한 시스템을 제공할 수 있다.According to an embodiment of the present invention, there is provided a system for providing a web browser-based application streaming service, comprising: a user terminal installed with a web browser; And a server configured to execute a plurality of emulators configured to execute a selected application in the user terminal, wherein a plurality of applications are pre-installed through the plurality of emulators, and the plurality of applications are Android operating system It is possible to provide a system for providing a web browser-based application streaming service that is the basis.

여기서, 상기 에뮬레이터는 상기 사용자 단말에서 선택된 애플리케이션을 실행시켜 영상 및 사운드를 인코딩하고, 상기 영상 및 사운드를 스트리밍 압축 전달 방식으로 상기 사용자 단말에 전달하도록 구성될 수 있다.Here, the emulator may be configured to execute an application selected in the user terminal to encode an image and sound, and to deliver the image and sound to the user terminal in a streaming compression delivery method.

또한, 상기 사용자 단말에서 발생하는 사용자 조작 관련 이벤트 정보를 실시간 상기 에뮬레이터로 전달하고, 상기 에뮬레이터는 상기 이벤트 정보를 반영한 영상 및 사운드를 상기 사용자 단말에 전달하도록 구성될 수 있다.In addition, event information related to user manipulation occurring in the user terminal may be transmitted to the emulator in real time, and the emulator may be configured to transmit an image and sound reflecting the event information to the user terminal.

또한, 상기 사용자 단말에서 선택된 애플리케이션은 게임 애플리케이션이고, 상기 에뮬레이터는 상기 사용자 단말에서 선택된 게임 애플리케이션의 특정 시점을 실행시켜 영상 및 사운드를 인코딩함으로써, 상기 사용자 단말에서 상기 특정 시점부터 게임을 플레이할 수 있도록 구성될 수 있다.In addition, the application selected in the user terminal is a game application, and the emulator executes a specific point in time of the game application selected in the user terminal to encode the image and sound, so that the user terminal can play the game from the specific point in time. Can be configured.

또한, 상기 사용자 단말의 웹 브라우저가 WebRTC(Web Real-Time Communication)를 지원하는 경우 상기 에뮬레이터는 상기 사용자 단말로부터 WebRTC 사용 요청을 수신하고, 상기 에뮬레이터는 데이터 채널 및 로컬 오퍼(offer)를 생성하여 웹 소켓을 통해 오퍼를 상기 사용자 단말에 전송하도록 구성될 수 있다.In addition, when the web browser of the user terminal supports Web Real-Time Communication (WebRTC), the emulator receives a request to use WebRTC from the user terminal, and the emulator generates a data channel and a local offer. It may be configured to transmit an offer to the user terminal through a socket.

또한, 상기 에뮬레이터는 프레임 버퍼를 하드웨어 인코딩하고, 상기 사용자 단말의 웹 브라우저가 WebRTC를 지원하는 경우 상기 프레임 버퍼를 데이터 채널을 통해 상기 사용자 단말의 웹 브라우저로 전송하고, 상기 웹 브라우저가 WebRTC를 지원하지 않는 경우 상기 프레임 버퍼를 웹 소켓을 통해 상기 사용자 단말의 웹 브라우저로 전송하도록 구성될 수 있다.In addition, the emulator hardware-encodes the frame buffer, and when the web browser of the user terminal supports WebRTC, transmits the frame buffer to the web browser of the user terminal through a data channel, and the web browser does not support WebRTC. If not, it may be configured to transmit the frame buffer to the web browser of the user terminal through a web socket.

또한, 상기 사용자 단말의 웹 브라우저가 WebRTC를 지원하지 않고 MSE(Media Source Extensions)를 지원하는 경우, MSE를 통해 상기 프레임 버퍼를 비디오에 추가하도록 구성될 수 있다.In addition, when the web browser of the user terminal does not support WebRTC and supports Media Source Extensions (MSE), it may be configured to add the frame buffer to the video through the MSE.

또한, 상기 사용자 단말의 웹 브라우저가 WebRTC 및 MSE를 지원하지 않고, WebAssembly(웹 어셈블리)를 지원하는 경우, WebAssembly를 로드하고 WebWorker 디코더를 실행하도록 구성될 수 있다.In addition, when the web browser of the user terminal does not support WebRTC and MSE, but supports WebAssembly (web assembly), it may be configured to load WebAssembly and execute the WebWorker decoder.

본 발명의 다른 실시예에 따르면, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공 방법에 있어서, 웹 브라우저가 설치된 사용자 단말에서 웹 브라우저를 통해 애플리케이션을 선택하는 단계; 및 서버에서 상기 사용자 단말에서 선택된 애플리케이션을 실행하도록 구성된 에뮬레이터를 실행시키는 단계를 포함하고, 상기 서버에는 복수의 에뮬레이터를 통해 복수의 애플리케이션이 기 설치되어 있고, 상기 복수의 애플리케이션은 안드로이드 운영 체제 기반인 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공 방법을 제공할 수 있다.According to another embodiment of the present invention, there is provided a method for providing a web browser-based application streaming service, the method comprising: selecting an application through a web browser in a user terminal installed with a web browser; And executing an emulator configured to execute an application selected from the user terminal in the server, wherein a plurality of applications are pre-installed through a plurality of emulators in the server, and the plurality of applications are based on the Android operating system. In addition, a web browser-based application streaming service can be provided.

여기서, 상기 에뮬레이터가 상기 사용자 단말에서 선택된 애플리케이션을 실행시켜 영상 및 사운드를 인코딩하는 단계; 및 상기 에뮬레이터가 상기 영상 및 사운드를 스트리밍 압축 전달 방식으로 상기 사용자 단말에 전달하는 단계를 더 포함할 수 있다.Here, the step of encoding the image and sound by the emulator executing the selected application in the user terminal; And transmitting, by the emulator, the image and sound to the user terminal through a streaming compression delivery method.

또한, 상기 사용자 단말에서 발생하는 사용자 조작 관련 이벤트 정보를 실시간 상기 에뮬레이터로 전달하는 단계; 및 상기 에뮬레이터가 상기 이벤트 정보를 반영한 영상 및 사운드를 상기 사용자 단말에 전달하는 단계를 더 포함할 수 있다.In addition, transmitting event information related to user manipulation occurring in the user terminal to the emulator in real time; And transmitting, by the emulator, the image and sound reflecting the event information to the user terminal.

또한, 상기 사용자 단말에서 선택된 애플리케이션은 게임 애플리케이션이고, 상기 에뮬레이터는 상기 사용자 단말에서 선택된 게임 애플리케이션의 특정 시점을 실행시켜 영상 및 사운드를 인코딩함으로써, 상기 사용자 단말에서 상기 특정 시점부터 게임을 플레이할 수 있도록 구성될 수 있다.In addition, the application selected in the user terminal is a game application, and the emulator executes a specific point in time of the game application selected in the user terminal to encode the image and sound, so that the user terminal can play the game from the specific point in time. Can be configured.

또한, 상기 사용자 단말의 웹 브라우저가 WebRTC(Web Real-Time Communication)를 지원하는 경우 상기 에뮬레이터가 상기 사용자 단말로부터 WebRTC 사용 요청을 수신하는 단계; 및 상기 에뮬레이터가 데이터 채널 및 로컬 오퍼(offer)를 생성하여 웹 소켓을 통해 오퍼를 상기 사용자 단말에 전송하는 단계를 더 포함할 수 있다.In addition, when the web browser of the user terminal supports Web Real-Time Communication (WebRTC), the emulator receiving a WebRTC usage request from the user terminal; And generating, by the emulator, a data channel and a local offer, and transmitting the offer to the user terminal through a web socket.

또한, 상기 에뮬레이터는 프레임 버퍼를 하드웨어 인코딩하고, 상기 사용자 단말의 웹 브라우저가 WebRTC를 지원하는 경우 상기 프레임 버퍼를 데이터 채널을 통해 상기 사용자 단말의 웹 브라우저로 전송하고, 상기 웹 브라우저가 WebRTC를 지원하지 않는 경우 상기 프레임 버퍼를 웹 소켓을 통해 상기 사용자 단말의 웹 브라우저로 전송하도록 단계를 더 포함할 수 있다.In addition, the emulator hardware-encodes the frame buffer, and when the web browser of the user terminal supports WebRTC, transmits the frame buffer to the web browser of the user terminal through a data channel, and the web browser does not support WebRTC. If not, the method may further include transmitting the frame buffer to a web browser of the user terminal through a web socket.

또한, 상기 사용자 단말의 웹 브라우저가 WebRTC를 지원하지 않고 MSE(Media Source Extensions)를 지원하는 경우, MSE를 통해 상기 프레임 버퍼를 비디오에 추가하는 단계를 더 포함할 수 있다.In addition, when the web browser of the user terminal does not support WebRTC and supports Media Source Extensions (MSE), the step of adding the frame buffer to the video through MSE may be further included.

또한, 상기 사용자 단말의 웹 브라우저가 WebRTC 및 MSE를 지원하지 않고, WebAssembly(웹 어셈블리)를 지원하는 경우, WebAssembly를 로드하고 WebWorker 디코더를 실행하는 단계를 더 포함할 수 있다.In addition, when the web browser of the user terminal does not support WebRTC and MSE and supports WebAssembly (web assembly), the step of loading WebAssembly and executing the WebWorker decoder may be further included.

본 발명에 의하면, 사용자 단말에서 사용하고자 하는 애플리케이션의 다운로드나 설치(install) 없이 바로 웹 브라우저에 접속하여 서버에 설치되어 있는 애플리케이션을 웹 브라우저에서 사용하도록 서비스할 수 있으므로 종래의 다른 서비스처럼 애플리케이션을 사용하기 위한 소프트웨어 설치 및 애플리케이션을 다운로드, 설치하지 않기에 다음과 같이 사용자 및 서비스 제공자 측면에서 효과를 얻을 수 있다.According to the present invention, it is possible to directly access a web browser without downloading or installing an application to be used in a user terminal, and to use the application installed on the server in the web browser, so that the application can be used like other conventional services. As the following, users and service providers do not install software and do not download and install applications.

본 발명에 따른 사용자 경험 및 단말에 의한 효과User experience and effects of the terminal according to the present invention

사용자가 애플리케이션 다운로드, 설치, 업데이트, 삭제 등 애플리케이션 관리에 대한 피로도를 줄여줄 수 있다.Users can reduce the fatigue of application management such as downloading, installing, updating, and deleting applications.

애플리케이션 설치에 따른 사용자 디바이스의 물리적인 용량을 차지하지 않는다.It does not take up the physical capacity of the user device according to the application installation.

사용자가 애플리케이션을 다운로드 및 업데이트에 따른 데이터에 대한 소비가 없다.There is no consumption of data as the user downloads and updates the application.

사용자가 사용하는 다양한 형태의 웹 브라우저를 지원함으로써 사용자 편의성을 높일 수 있다.User convenience can be improved by supporting various types of web browsers used by users.

사용자가 게임을 다운로드 설치 없이 미리 일정 부분 또는 특정 시점을 체험해볼 수 있는 프리뷰 기능을 제공할 수 있다.It is possible to provide a preview function that allows users to experience a certain part or a specific point in time without downloading and installing the game.

사용자가 애플리케이션의 보안 위협에 걱정하지 않아 앱 사용에 대한 신뢰성을 높일 수 있다.Users are not worried about the security threats of the application, which can increase the reliability of using the app.

사용자가 애플리케이션을 설치 시 마다 요구받는 사용자 정보(위치, 전화, 기록 등)에 동의가 필요 없다.Whenever a user installs an application, they do not need to consent to the user information (location, phone, records, etc.) requested.

사용자의 디바이스의 물리적인 사양이 관계없이 애플리케이션의 고품질 사용이 가능하다.High-quality use of applications is possible regardless of the physical specifications of the user's device.

사용자의 디바이스 OS에 따라 사용할 수 있는 애플리케이션 권한을 적용 받지 않아 사용할 수 없었던 타 OS의 애플리케이션 사용이 가능하다.Depending on the user's device OS, it is possible to use applications of other OS that could not be used because the application rights that can be used were not applied.

본 발명에 따른 서비스 프로바이더(퍼블리싱 업체) 효과Service provider (publishing company) effect according to the present invention

사용자에게 애플리케이션을 다운로드를 받기 위한 마케팅 비용이 감소한다.The marketing cost for downloading the application to the user is reduced.

독점적인 애플리케이션 마켓 플랫폼에 대한 의존도를 줄여줄 수 있다.It can reduce reliance on proprietary application market platforms.

애플리케이션의 개발자가 디바이스 OS에 종속되지 않고 애플리케이션을 개발, 공급, 서비스할 수 있다.Application developers can develop, supply, and service applications without being dependent on the device OS.

사용자 디바이스의 성능에 관계없이 저 사양에서도 고품질 애플리케이션을 서비스할 수 있어서 애플리케이션의 더 많은 사용자 확보가 가능하다.Regardless of the performance of the user device, it is possible to service high-quality applications even at low specifications, thus securing more users of the application.

애플리케이션의 다운로드, 설치 없는 쉬운 접근성으로 애플리케이션이 더 많은 사용자에게 사용할 수 있게 한다.Easy accessibility without downloading and installing the application makes the application available to more users.

유료 애플리케이션에 거부감이 많은 사용자에게 애플리케이션의 체험판을 사용할 수 있는 서비스를 제공할 수 있다.It is possible to provide a service that allows users to use the trial version of the application to users who have a lot of reluctance to pay applications.

본 발명의 효과들은 이상에서 언급한 내용들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the contents mentioned above, and other effects that are not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 본 발명의 일 실시예에 따른 웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 서비스를 제공하기 위한 시스템의 개념도이다.
도 2는 본 발명의 일 실시예에 따른 웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 서비스 제공 방법을 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 서비스 제공 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 서비스 제공하기 위해 웹 브라우저와 에뮬레이터 사이에 수행되는 구체적인 방법을 설명하기 위한 흐름도이다.
도 5a 및 도 5b는 본 발명의 일 실시예에 따른 웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 제공 서비스를 위한 사용자 화면을 설명하기 위한 예시도이다.
1 is a conceptual diagram of a system for providing a web browser-based Android application streaming service according to an embodiment of the present invention.
2 is a conceptual diagram illustrating a method of providing a web browser-based Android application streaming service according to an embodiment of the present invention.
3 is a flowchart illustrating a method of providing a web browser-based Android application streaming service according to an embodiment of the present invention.
4 is a flowchart illustrating a specific method performed between a web browser and an emulator to provide a web browser-based Android application streaming service according to an embodiment of the present invention.
5A and 5B are exemplary diagrams for explaining a user screen for a web browser-based Android application streaming service service according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art can easily implement the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.The terms used in the present specification are for describing exemplary embodiments and are not intended to limit the present invention. In this specification, the singular form also includes the plural form unless specifically stated in the phrase.

본 명세서에서 사용되는 "포함한다(comprises)", "포함하는(comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다. As used herein, "comprises", "comprising" refers to the recited component, step, operation, and/or element is the presence of one or more other elements, steps, operations and/or elements, or Does not rule out addition.

또한, 본 발명에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 이와 같은 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, terms including ordinal numbers such as first and second used in the present invention may be used to describe elements, but the elements should not be limited by terms. These terms are only used for the purpose of distinguishing one component from another. In addition, in describing the present invention, when it is determined that a detailed description of a related known technology may obscure the subject matter of the present invention, a detailed description thereof will be omitted.

또한, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.In addition, the components shown in the embodiments of the present invention are shown independently to represent different characteristic functions, and it does not mean that each component is formed of separate hardware or a single software component. That is, each constituent unit is described as being listed as a respective constituent unit for convenience of explanation, and at least two constituent units of each constituent unit are combined to form one constituent unit, or one constituent unit may be divided into a plurality of constituent units to perform a function. Integrated embodiments and separate embodiments of each of these components are also included in the scope of the present invention unless departing from the essence of the present invention.

이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다. 본 발명의 구성 및 그에 따른 작용 효과는 이하의 상세한 설명을 통해 명확하게 이해될 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The configuration of the present invention and its effect will be clearly understood through the detailed description below.

도 1은 본 발명의 일 실시예에 따른 웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 서비스를 제공하기 위한 시스템의 개념도이다. 1 is a conceptual diagram of a system for providing a web browser-based Android application streaming service according to an embodiment of the present invention.

도 1을 참조하면, 사용자 단말(100)은 유무선 통신망(300)을 통해 앱 스트리밍 서버(200)와 연결되어 있으며, 여기서 유무선 통신망(300)은 유선 또는 무선으로 연결되는 네트워크일 수 있다. 또한, 유무선 통신망(300)은 대용량, 장거리 음성 및 데이터 서비스가 가능한 대형 통신망의 고속 기간망인 통신망일 수 있으며, 인터넷(internet) 또는 고속의 멀티미디어 서비스를 제공하기 위한 차세대 유선 및 무선망일 수 있다. 유무선 통신망(300)이 무선 통신망일 경우, 셀룰러 통신 또는 근거리 통신을 포함할 수 있다. 예컨대, 셀룰러 통신은 LTE(Long-Term Evolution), LTE-A(LTE Advanced), 5G(5th Generation), CDMA(Code Division Multiple Access), WCDMA(Wideband CDMA), UMTS(Universal Mobile Telecommunications System), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 포함할 수 있다. 또한, 근거리 통신은 Wi-Fi(Wireless Fidelity), 블루투스(Bluetooth), 지그비(Zigbee) 또는 NFC(Near Field Communication) 등 적어도 하나를 포함할 수 있다. 그러나, 통신 방법은 이에 한정되는 것은 아니며 차후 개발되는 무선 통신의 기술도 포함될 수 있다.Referring to FIG. 1, the user terminal 100 is connected to the app streaming server 200 through a wired/wireless communication network 300, where the wired/wireless communication network 300 may be a wired or wirelessly connected network. In addition, the wired/wireless communication network 300 may be a communication network, which is a high-speed backbone network of a large communication network capable of large-capacity, long-distance voice and data services, and may be a next-generation wired or wireless network for providing Internet or high-speed multimedia services. When the wired/wireless communication network 300 is a wireless communication network, it may include cellular communication or short-range communication. For example, cellular communication is LTE (Long-Term Evolution), LTE-A (LTE Advanced), 5G (5th Generation), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), UMTS (Universal Mobile Telecommunications System), WiBro It may include at least one of (Wireless Broadband), or Global System for Mobile Communications (GSM). In addition, short-range communication may include at least one such as Wireless Fidelity (Wi-Fi), Bluetooth, Zigbee, or Near Field Communication (NFC). However, the communication method is not limited thereto, and a wireless communication technology to be developed later may be included.

사용자 단말(100)은 웹 브라우저가 설치되어 있어 사용자가 웹 브라우저(110)를 실행하고 앱을 선택하여 실행할 수 있도록 구성된 장치로서, 스마트폰(smart phone), 태블릿(tablet) 컴퓨터, 데스크탑(desktop) 컴퓨터, 랩탑(laptop) 컴퓨터, 노트북, 워크스테이션(workstation), 서버 컴퓨터, PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 무선 전화기(wireless phone), 모바일 폰(mobile phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 텔레비전(television), 웨어러블 디바이스(wearable device) 중 하나일 수 있으며, 이들에 제한되지 않는다. 또한, 사용자 단말(100)의 OS에 제약받지 않고, 윈도우 OS 계열의 PC, 태블릿, 노트북, 모바일 단말, 텔레비전, 애플사의 OS 계열의 PC, 태블릿, 노트북, 모바일 단말, 텔레비전, 안드로이드 OS의 모바일 단말, 텔레비전 등의 다양한 OS를 갖는 장치를 지원할 수 있다.The user terminal 100 is a device configured to allow a user to run the web browser 110 and select and execute an app because a web browser is installed, and includes a smart phone, a tablet computer, and a desktop. Computers, laptop computers, notebook computers, workstations, server computers, PDAs (Personal Digital Assistants), portable computers, wireless phones, mobile phones, e-books ( e-book), portable multimedia player (PMP), portable game console, navigation device, black box, digital camera, television, or wearable device And are not limited thereto. In addition, regardless of the OS of the user terminal 100, Windows OS-based PCs, tablets, notebooks, mobile terminals, televisions, Apple's OS-based PCs, tablets, notebooks, mobile terminals, televisions, Android OS mobile terminals , TV, and other devices having various OSs can be supported.

앱 스트리밍 서버(200)는 사용자 단말(100)에서 선택된 애플리케이션(application) 또는 앱(App)을 실행하도록 구성된 복수의 에뮬레이터(210)를 실행시키도록 구성되는 서버 컴퓨터들로 구성될 수 있으며, 예컨대 에뮬레이터(210)는 서버용 물리적 컴퓨터 내에 가상화된 OS(운영 체제)를 에뮬레이션하도록 구성된 소프트웨어일 수 있으며, 이와 같은 에뮬레이터(210)는 다수의 애플리케이션을 실행하기 위해 다수 개가 실행될 수 있다. 또한, 에뮬레이터(210)에 의해 실행되는 애플리케이션은 안드로이드(android) 운영 체제 기반의 애플리케이션일 수 있다.The app streaming server 200 may be composed of server computers configured to run a plurality of emulators 210 configured to run an application or an app selected from the user terminal 100, for example, an emulator. 210 may be software configured to emulate an OS (operating system) virtualized in a physical computer for a server, and a plurality of such emulators 210 may be executed to execute a plurality of applications. In addition, the application executed by the emulator 210 may be an application based on an Android operating system.

여기서, 복수의 에뮬레이터(210) 각각은 각 사용자 단말(100)의 웹 브라우저에 대응되어 사용자가 해당 웹 브라우저를 통해 선택한 앱을 실행하도록 구성될 수 있다.Here, each of the plurality of emulators 210 may correspond to a web browser of each user terminal 100 and may be configured to execute an app selected by the user through the corresponding web browser.

또한, 앱 스트리밍 서버(200)는 ARM 서버의 효율성과 x86 서버의 풍부한 리소스를 활용한 서버를 구성함으로써, x86과 어플리케이션 레이어(ARM)의 물리적 분리를 통하여 안정성을 향상시킬 수 있으며, ARM 서버와 x86 서버 간의 빠른 속도의 시리얼 통신을 구성하여 비디오 프레임 버퍼에 대한 정보를 주고받도록 구성될 수 있다.In addition, by configuring a server that utilizes the efficiency of the ARM server and the abundant resources of the x86 server, the app streaming server 200 can improve stability through physical separation between the x86 and the application layer (ARM). It can be configured to send and receive information about the video frame buffer by configuring high-speed serial communication between servers.

이와 같은 시스템을 통해, 앱 제공자는 ARM 서버를 기반으로 만들어진 전용 서버를 통해 안드로이드 모바일 게임, 쇼핑 또는 공공기관 앱 등을 포함하는 복수의 애플리케이션을 미리 설치하고, 해당 애플리케이션을 사용할 수 있는 별도의 웹사이트를 제작하여 사용자가 접속하도록 할 수 있다. 사용자는 사용자 단말(100)에서 웹 브라우저(110)를 실행하고, 서비스 제공 웹 사이트 주소에 접속하여 원하는 앱을 선택하여 실행함으로써, 앱 플레이어나 앱 관련 소프트웨어 프로그램을 설치할 필요 없이 바로 선택한 애플리케이션을 사용할 수 있다.Through such a system, the app provider pre-installs a plurality of applications including Android mobile games, shopping, or public institution apps through a dedicated server based on an ARM server, and a separate website that can use the application. You can make it so that users can access it. By running the web browser 110 on the user terminal 100, accessing the service providing website address, and selecting and executing the desired app, the user can use the selected application without having to install an app player or app-related software program. have.

앱 스트리밍 서버(200)는 사용자가 앱을 실행하여 사용하기 시작하면, 해당 앱을 위한 에뮬레이터(210)에서 작동되는 앱의 화면 및 동작을 실시간 스트리밍으로 웹 브라우저(110)를 통해 사용자 단말(100)에 전달해줄 수 있다.When the user starts to use the app by running the app, the app streaming server 200 provides real-time streaming of the screen and operation of the app operated by the emulator 210 for the app through the web browser 110 to the user terminal 100 Can be passed on.

도 2는 본 발명의 웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 서비스 제공 방법을 설명하기 위한 개념도이다.2 is a conceptual diagram illustrating a method of providing a web browser-based Android application streaming service according to the present invention.

예컨대, 사용자가 사용자 단말(100)인 스마트폰에서 웹 브라우저를 실행시켜 원하는 앱을 선택하고 해당 앱의 실행을 요청하는 경우, 앱 스트리밍 서버(200)는 선택된 앱을 실행하도록 구성된 에뮬레이터(210)를 통해 앱을 실행한 후에 앱의 영상 및 사운드를 사용자 단말(100)의 웹 브라우저를 통해 전달하고, 사용자 단말(100)에서는 앱의 다운로드 또는 설치 없이 실행한 앱의 영상 및 사운드가 재생됨으로써, 서버에서 실행되는 앱을 마치 자신의 단말에서 실행되는 앱같이 사용할 수 있다.For example, when a user selects a desired app by running a web browser on a smartphone, which is the user terminal 100, and requests execution of the app, the app streaming server 200 uses the emulator 210 configured to run the selected app. After running the app through the app, the video and sound of the app are transmitted through the web browser of the user terminal 100, and the video and sound of the executed app are played back in the user terminal 100 without downloading or installing the app. You can use the running app like an app running on your own device.

여기서, 제공되는 앱은 안드로이드 OS 기반 애플리케이션일 수 있으며, 게임, 쇼핑 또는 공공기관 앱 등 다양한 종류의 앱들을 포함할 수 있다.Here, the provided app may be an Android OS-based application, and may include various types of apps such as games, shopping, or public institution apps.

도 3은 본 발명의 일 실시예에 따른 웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 서비스 제공 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a method of providing a web browser-based Android application streaming service according to an embodiment of the present invention.

먼저, 서비스 제공자는 앱 스트리밍 서버(200)에 사용자에게 제공되는 복수의 앱 실행을 위한 복수의 에뮬레이터를 미리 설치한다.(S301)First, the service provider pre-installs a plurality of emulators for executing a plurality of apps provided to the user in the app streaming server 200 (S301).

사용자는 사용자 단말(100)을 통해 웹 브라우저를 실행할 수 있으며(S302), 여기서 웹 브라우저는 인터넷 익스플로러, 크롬, 애플사의 사파리, 파이어폭스 등 다양한 형태를 포함할 수 있다. 사용자 단말(100)에서 앱 제공을 위한 웹 사이트 주소로 접속하면 제공 가능한 앱 리스트가 디스플레이되고(S303), 사용자는 사용자 단말(100)을 통해 앱 리스트 중 실행 또는 체험을 원하는 앱을 선택할 수 있다.(S304)The user may execute a web browser through the user terminal 100 (S302), wherein the web browser may include various forms such as Internet Explorer, Chrome, Apple's Safari, and Firefox. When the user terminal 100 accesses a website address for providing an app, a list of available apps is displayed (S303), and the user can select an app to run or experience from the list of apps through the user terminal 100. (S304)

사용자 단말(100)에 의해 선택된 앱 선택 정보가 앱 스트리밍 서버(200)로 전송되고, 앱 스트리밍 서버(200)에서 선택된 앱을 위한 에뮬레이터(210)를 실행할 수 있다.(S306) 또한, 앱 스트리밍 서버(200)의 에뮬레이터(210)에 의해 실행된 앱의 영상 및 사운드가 사용자 단말(100)에 스트리밍으로 전송될 수 있다.(S307) 이때, 스트리밍 압축 전달 방식으로 데이터 사용을 낮추어 전달하고, 하드웨어 가속 스트리밍 방식으로 지연율을 최소화할 수 있다. 여기서, 복수의 에뮬레이터(210) 각각은 각각의 사용자 단말(100)의 웹 브라우저에 대응되어 사용자가 해당 웹 브라우저를 통해 선택한 앱을 실행하도록 구성될 수 있다.The app selection information selected by the user terminal 100 is transmitted to the app streaming server 200, and the emulator 210 for the selected app may be executed by the app streaming server 200 (S306). In addition, the app streaming server The image and sound of the app executed by the emulator 210 of 200 may be transmitted to the user terminal 100 by streaming. (S307) At this time, data usage is lowered and transmitted by a streaming compression delivery method, and hardware acceleration The delay rate can be minimized by streaming. Here, each of the plurality of emulators 210 may correspond to a web browser of each user terminal 100 and may be configured to execute an app selected by the user through the corresponding web browser.

또한, 사용자는 사용자 단말(100)을 통해 앱 관련 버튼의 입력 등 사용자 조작을 수행할 수 있다.(S308) 이때, 사용자 조작 관련 이벤트 정보를 앱 스트리밍 서버(200)로 실시간 전송하고(S309), 에뮬레이터(210)에 의해 사용자 조작이 반영된 앱 영상 및 사운드가 실시간으로 사용자 단말(100)에 전송될 수 있다. 예컨대, 사용자의 이벤트(조작)를 실시간 전송하고 커스터마이징 된 키 맵핑을 제공할 수 있으며, 인텔(Intel)사의 VT 가상화 기술과 리눅스(Linux)의 커널 기반 가상화(KVM)를 통해 베어메탈(Bare-metal) 수준의 가상화를 구현하고, 안드로이드에 최적화된 그래픽 파이프라인(Graphics Pipeline)을 구성하여서 차세대 게임들과 발 맞춰 오픈 그래픽 라이브러리 OpenGL ES 3.x 및 벌컨(Vulkan) API를 지원할 수 있다. In addition, the user may perform user manipulation, such as inputting an app-related button, through the user terminal 100 (S308). At this time, the event information related to the user manipulation is transmitted to the app streaming server 200 in real time (S309), The app image and sound reflecting the user manipulation by the emulator 210 may be transmitted to the user terminal 100 in real time. For example, users' events (operations) can be transmitted in real time and customized key mapping can be provided. Bare-metal through Intel's VT virtualization technology and Linux's kernel-based virtualization (KVM) ) Level of virtualization, and by configuring the Graphics Pipeline optimized for Android, the open graphics library OpenGL ES 3.x and Vulkan API can be supported in line with next-generation games.

도 4는 본 발명의 일 실시예에 따른 웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 서비스 제공하기 위해 웹 브라우저와 에뮬레이터 사이에 수행되는 구체적인 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a specific method performed between a web browser and an emulator to provide a web browser-based Android application streaming service according to an embodiment of the present invention.

앱 스트리밍 서버(200)에서 실행되는 에뮬레이터(210)가 웹 소켓(web socket) 서버를 실행하고 대기할 수 있다.(S401) 웹 소켓(web socket)은 웹 서버와 웹 브라우저 사이의 통신을 위한 양방향 통신 규격 중 하나로서, 웹 브라우저와 웹 서버 사이에서 전이중(full-duplex) 통신을 가능하게 하는 통신 프로토콜이다. The emulator 210 running in the app streaming server 200 can execute and wait for a web socket server. (S401) A web socket is a two-way for communication between a web server and a web browser. As one of the communication standards, it is a communication protocol that enables full-duplex communication between a web browser and a web server.

사용자 단말(100)에서 사용자는 웹 브라우저(110)를 통해 앱 제공 웹 사이트에 접속하여 실행을 원하는 앱을 선택하고 앱 실행 버튼을 클릭할 수 있다.(S402) 이때, 앱 실행에 응답하여 사용 가능한 서버를 요청하면 로드 밸런서(load balancer)를 통해 서버에 가해지는 로드를 분산 시킬 수 있으며, 사용 가능한 서버 중 하나를 반환하여 서버 정보를 웹 브라우저(110)에 전송할 수 있다.In the user terminal 100, the user accesses the app providing website through the web browser 110, selects an app to be executed, and clicks an app execution button (S402). When a server is requested, the load applied to the server can be distributed through a load balancer, and server information can be transmitted to the web browser 110 by returning one of the available servers.

웹 브라우저(110)는 사용 가능한 서버에 접속하고, 앱 정보를 전송할 수 있다.(S403) 이에 응답하여 에뮬레이터(210)는 웹 소켓 연결을 수행하고, 앱을 실행할 수 있다.(S404) 또한, 에뮬레이터(210)는 웹 브라우저(110)에 웹 소켓 연결 성공 신호를 전송하고,(S405) 웹 브라우저(110)로부터 에뮬레이터(210)에 적용될 화면 인코더 설정 정보를 수신할 수 있다.(S406) 여기서, 웹 소켓 연결 등을 통해 연결이 먼저 이루어져야만 앱 스트리밍 서버(200)에서 사용자 단말(100)의 웹 브라우저(110)가 WebRTC를 지원하는지 판단할 수 있기 때문에 웹 브라우저(110)와 에뮬레이터(210) 간의 웹 소켓 연결이 먼저 선행되는 것이며, 웹 소켓 연결이 아니더라도 다양한 통신 프로토콜을 사용하여 웹 브라우저(110)와 에뮬레이터(210)가 연결될 수 있을 것이다.The web browser 110 may connect to an available server and transmit app information (S403). In response to this, the emulator 210 may perform a web socket connection and execute the app. (S404) In addition, the emulator 210 may transmit a web socket connection success signal to the web browser 110 (S405), and receive screen encoder setting information to be applied to the emulator 210 from the web browser 110 (S406) Here, the web Since the app streaming server 200 can determine whether the web browser 110 of the user terminal 100 supports WebRTC only when a connection is first made through a socket connection, the web between the web browser 110 and the emulator 210 The socket connection precedes the connection, and the web browser 110 and the emulator 210 may be connected using various communication protocols even if the connection is not a web socket connection.

다음으로, 웹 브라우저(110)에서 WebRTC를 지원하는 브라우저라고 판단되는 경우, 에뮬레이터(210)에 WebRTC 사용 요청을 송신할 수 있다. 여기서, WebRTC(Web Real-Time Communication)는 웹 브라우저 간에 플러그인의 도움 없이 서로 통신할 수 있도록 설계된 API로서, 브라우저 내에서 실시간 통신 능력을 가능하게 해주는 웹을 위한 오픈 프레임워크로서, 음성 통화, 영상 통화, P2P 파일 공유 등에 활용되고 있다.Next, when it is determined that the web browser 110 is a browser that supports WebRTC, a WebRTC use request may be transmitted to the emulator 210. Here, WebRTC (Web Real-Time Communication) is a  API designed to communicate with each other without the help of a plug-in   between web browsers  , and as an open framework for the web that enables real-time communication capabilities within the browser, voice calls, video calls , P2P file sharing, etc.

도 4를 참조하면, 웹 브라우저(110)가 WebRTC를 지원하는 브라우저인 경우, 에뮬레이터(210)에 WebRTC 사용을 요청하고, WebRTC를 사용하는 경우 에뮬레이터(210)에서 데이터 채널 및 로컬 오퍼(offer)를 생성하여 웹 소켓을 통해 오퍼를 웹 브라우저(110)에 전송하고, 웹 브라우저(110)에서 오퍼(offer)를 수신하여 원격 오퍼를 등록하고 로컬 앤써(answer)를 생성하고, 웹 소켓을 통해 앤써를 에뮬레이터(210)에 전송하면, 에뮬레이터(210)에서 원격 앤써를 등록할 수 있다.(S407a, S407b) 이와 같이, WebRTC 클라이언트들은 해상도와 코덱 기능 같은 미디어 정보들을 서로 교환하고 확인해야 하며, 미디어 정보의 교환을 위한 시그널링(signaling)은 세션 디스크립션 프로토콜(Session Description Protocol, SDP)를 사용하는 오퍼와 앤써를 통해서 진행된다. 본 발명에 따르면 앱 스트리밍 서버(200)에서 가상화된 OS를 에뮬레이션하는 소프트웨어인 에뮬레이터(210)가 각각 웹 소켓 서버를 운영하며, WebRTC에 사용되는 P2P(피어투피어) 통신 중 한 쪽을 서버처럼 취급하여 운영하게 된다.Referring to FIG. 4, when the web browser 110 is a browser supporting WebRTC, a request to use WebRTC is requested from the emulator 210, and when using WebRTC, the emulator 210 provides a data channel and a local offer. Generates and transmits an offer to the web browser 110 through a web socket, receives an offer from the web browser 110, registers a remote offer, creates a local answer, and performs an answer through a web socket. When transmitted to the emulator 210, the emulator 210 can register a remote answer. (S407a, S407b) In this way, WebRTC clients must exchange and check media information such as resolution and codec function with each other. Signaling for the exchange is carried out through  Offers and  Answers using the Session Description Protocol (SDP). According to the present invention, the emulator 210, which is a software that emulates the virtualized OS in the app streaming server 200, operates a web socket server, and treats one of the P2P (peer-to-peer) communication used for WebRTC as a server. And run it.

한편, 웹 브라우저(110)가 WebRTC를 지원하지 않는 경우, MSE(Media Source Extensions)를 지원하는지 여부를 판단하고, MSE를 지원하지 않는 경우, WebAssembly(웹어셈블리)를 지원하는지 여부를 판단할 수 있다. 이때, 웹 프라우저(110)가 MSE를 지원하지 않고 WebAssembly를 지원하는 경우, WebAssembly 로드 및 WebWorker(웹워커) 디코더를 실행할 수 있다.(S408) On the other hand, when the web browser 110 does not support WebRTC, it may be determined whether it supports Media Source Extensions (MSE), and when it does not support MSE, it may be determined whether or not WebAssembly (web assembly) is supported. . In this case, when the web browser 110 does not support MSE and supports WebAssembly, it is possible to load WebAssembly and execute a WebWorker (webworker) decoder (S408).

다음으로, 에뮬레이터(210)에서 프레임 버퍼를 하드웨어 인코딩할 수 있다.(S409) 이때, WebRTC를 사용하는 경우 프레임 버퍼를 데이터 채널을 통해 웹 브라우저(110)로 전송할 수 있고(S410a), WebRTC를 사용하지 않는 경우 프레임 버퍼를 웹 소켓을 통해 웹 브라우저(110)로 전송할 수 있다.(S410b)Next, the frame buffer may be hardware encoded in the emulator 210 (S409). In this case, when using WebRTC, the frame buffer may be transmitted to the web browser 110 through the data channel (S410a), and WebRTC is used. If not, the frame buffer may be transmitted to the web browser 110 through the web socket (S410b).

다음으로, 웹 브라우저(110)에서 MSE를 지원하고 WebAssembly를 지원하지 않는 경우, MSE를 통해 프레임 버퍼를 비디오에 추가할 수 있다.(S411a) 한편, MSE를 지원하지 않고 WebAssembly를 지원하는 경우, WebWorker 디코더로 프레임 정보를 전송할 수 있다.(S411b) 이때, 디코드된 프레임을 웹GL(WebGL)을 이용하여 하드웨어 가속하여 캔버스에 그리기를 수행할 수 있다.Next, when the web browser 110 supports MSE and does not support WebAssembly, a frame buffer may be added to the video through the MSE (S411a). On the other hand, when not supporting MSE and supporting WebAssembly, WebWorker The frame information may be transmitted to the decoder (S411b). At this time, the decoded frame may be hardware accelerated using WebGL to perform drawing on the canvas.

마지막으로 앱이 종료되면 웹 브라우저(110) 및 에뮬레이터(210)에서 모두 웹 소켓 및 WebRTC 연결을 해제할 수 있다.(S412)Finally, when the app is terminated, both the web browser 110 and the emulator 210 may release the web socket and WebRTC connection (S412).

본 발명은 이와 같은 구성을 통해 인터넷이 가능한 환경의 웹 브라우저에서 웹 사이트 주소로 접속하여 앱의 다운로드 없이 바로 사용자가 사용하고자 하는 애플리케이션을 실행할 수 있는 사용자 환경을 제공가능하며, 다양한 웹 브라우저를 지원가능하다.The present invention is capable of providing a user environment in which an application to be used by the user can be executed directly without downloading the application by accessing a web site address from a web browser in an Internet-enabled environment, and various web browsers are supported. Do.

도 5a 및 도 5b는 본 발명의 일 실시예에 따른 웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 제공 서비스를 위한 사용자 화면을 설명하기 위한 예시도이다.5A and 5B are exemplary diagrams for explaining a user screen for a web browser-based Android application streaming service service according to an embodiment of the present invention.

도 5a를 참조하면, 사용자 단말(100)의 웹 브라우저(110)를 통해 사용자가 실행 가능한 앱 리스트를 디스플레이하고, 사용자가 선택한 앱을 바로 실행할 수 있는 버튼이 함께 디스플레이될 수 있으며, 종래의 다른 플랫폼과 차별화된 부분은 사용자 단말(100)에 다운로드 없이 해당 앱을 체험할 수 있는 기능(We App Play)을 제공가능하다는 것이다. 사용자가 앱 실행 버튼을 누르면 사용자 단말(100)에 어떠한 소프트웨어의 설치없이 가상 모바일 화면이 보여지고 그곳에 해당 앱의 실제 구동되는 모습이 보여질 수 있다. 또한, 단순히 앱의 화면이 보여지기만 하는 것이 아니라 사용자가 직접 작동해볼 수 있는 기능까지 갖춰져 있으며, 게임 앱 등을 체험한 뒤 마음에 들면 바로 옆의 다운로드 버튼을 눌러 해당 앱을 다운로드 받는 것도 가능하다.Referring to FIG. 5A, a list of apps that can be executed by the user is displayed through the web browser 110 of the user terminal 100, and a button for immediately executing an app selected by the user can be displayed together. The differentiated part is that it is possible to provide a function (We App Play) to experience the app without downloading to the user terminal 100. When the user presses the app execution button, a virtual mobile screen is displayed without installing any software on the user terminal 100, and the actual operation of the corresponding app may be shown there. In addition, it is also equipped with functions that allow users to directly operate the app, not just showing the screen of the app, and if you like it after experiencing the game app, you can download the app by clicking the download button next to it.

예컨대, 웹 사이트에서 제공되는 게임 앱은 서비스 제공자가 미리 만들어 놓은 기본 아이디로 접속이 될 수 있으며, 특정 시점부터 게임 플레이를 진행할 수 있도록 구성될 수 있다. 예를 들면, 기존의 모바일 게임은 앱스토어에서 다운로드 후 패치파일을 한번 더 다운 받은 뒤 본인 계정을 만들고 게임을 설명받는 튜토리얼부터 시작하지만, 본 발명에 따른 시스템에 따라 제공되는 게임은 앞의 모든 절차를 넘긴 뒤 사용자에게 가장 임팩트를 강하게 줄 수 있는 지점에서 미리 준비한 계정을 통해 체험이 가능하다. 즉, 에뮬레이터(210)에서 사용자 단말에서 선택된 게임 애플리케이션의 특정 시점을 실행시켜 영상 및 사운드를 인코딩함으로써, 사용자 단말(110)에서 특정 시점부터 게임을 플레이할 수 있도록 구성함으로써 짧은 시간 동안에 사용자의 체험 효과를 극대화할 수 있다.For example, a game app provided on a website may be accessed with a basic ID previously created by a service provider, and may be configured to allow game play to proceed from a specific point in time. For example, in existing mobile games, after downloading the patch file from the App Store, download the patch file once more, create your account, and start with a tutorial in which the game is explained, but the games provided according to the system according to the present invention are all the above procedures. After passing over, it is possible to experience through an account prepared in advance at a point that can give the user the most impact. That is, the emulator 210 executes a specific point in time of the game application selected in the user terminal and encodes the image and sound, so that the user terminal 110 can play the game from a specific point in time. Can be maximized.

또한, 도 5b를 참조하면, 사용자가 선택한 게임 앱이 사용자 단말(100)의 웹 브라우저(110)를 통해 화면 상에 디스플레이되고 실행되는 모습을 확인할 수 있다. 사용자 단말(100)의 웹 브라우저(110)에서 사용자 조작에 대한 정보를 앱 스트리밍 서버(200)로 전송하고, 앱이 설치되어 실행되는 서버(200)로부터 실제 애플리케이션의 조작이 반영된 영상 및 사운드가 실시간으로 웹 브라우저(110)로 전송될 수 있다.In addition, referring to FIG. 5B, it can be seen that the game app selected by the user is displayed and executed on the screen through the web browser 110 of the user terminal 100. The web browser 110 of the user terminal 100 transmits information on user manipulation to the app streaming server 200, and the video and sound reflecting the manipulation of the actual application from the server 200 where the app is installed and executed are displayed in real time. It may be transmitted to the web browser 110.

이상 본 발명의 실시예에 따른 웹 브라우저를 이용하여 안드로이드 애플리케이션 스트리밍 서비스를 제공하는 방법 및 이를 위한 시스템을 구체적인 다양한 실시 형태로서 설명하였으나, 이는 예시에 불과한 것으로서, 본 발명은 이에 한정되지 않는 것이며, 본 명세서에 개시된 기초 사상에 따르는 최광의 범위를 갖는 것으로 해석되어야 한다. 당업자는 개시된 실시형태들을 조합, 치환하여 적시되지 않은 형상의 패턴을 실시할 수 있으나, 이 역시 본 발명의 범위를 벗어나지 않는 것이다. 이외에도 당업자는 본 명세서에 기초하여 개시된 실시형태를 용이하게 변경 또는 변형할 수 있으며, 이러한 변경 또는 변형도 본 발명의 권리범위에 속함은 명백하다.In the above, a method and a system for providing an Android application streaming service using a web browser according to an embodiment of the present invention have been described as specific various embodiments, but this is only an example, and the present invention is not limited thereto. It is to be construed as having the widest scope in accordance with the basic ideas disclosed in the specification. A person skilled in the art may combine and replace the disclosed embodiments to implement a pattern of a shape not indicated, but this also does not depart from the scope of the present invention. In addition, those skilled in the art can easily change or modify the disclosed embodiments based on the present specification, and it is clear that such changes or modifications also belong to the scope of the present invention.

100: 사용자 단말 110: 웹 브라우저
200: 앱 스트리밍 서버 210: 에뮬레이터
300: 유무선 통신망
100: user terminal 110: web browser
200: app streaming server 210: emulator
300: wired and wireless communication network

Claims (16)

웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공을 위한 시스템에 있어서,
웹 브라우저가 설치된 사용자 단말; 및
상기 사용자 단말에서 선택된 애플리케이션을 실행하도록 구성된 복수의 에뮬레이터를 실행시키도록 구성된 서버
를 포함하고,
상기 서버에는 상기 복수의 에뮬레이터를 통해 복수의 애플리케이션이 기 설치되어 있고, 상기 복수의 애플리케이션은 안드로이드 운영 체제 기반인 것이며,
상기 사용자 단말의 웹 브라우저가 WebRTC(Web Real-Time Communication)를 지원하는지 여부를 판단하고, 상기 사용자 단말의 웹 브라우저가 WebRTC를 지원하는 경우 상기 에뮬레이터는 인코딩된 영상 및 사운드 데이터를 WebRTC의 데이터 채널을 통해 상기 사용자 단말의 웹 브라우저로 전송하도록 구성되는 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공을 위한 시스템.
In the system for providing a web browser-based application streaming service,
A user terminal installed with a web browser; And
Server configured to run a plurality of emulators configured to run selected applications in the user terminal
Including,
A plurality of applications are pre-installed on the server through the plurality of emulators, and the plurality of applications are based on the Android operating system,
It is determined whether the web browser of the user terminal supports WebRTC (Web Real-Time Communication), and when the web browser of the user terminal supports WebRTC, the emulator uses the encoded image and sound data to access the WebRTC data channel. The system for providing a web browser-based application streaming service is configured to be transmitted to the web browser of the user terminal through.
제1항에 있어서, 상기 에뮬레이터는 상기 영상 및 사운드 데이터를 스트리밍 압축 전달 방식으로 상기 사용자 단말에 전달하도록 구성되는 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공을 위한 시스템.The system of claim 1, wherein the emulator is configured to deliver the video and sound data to the user terminal in a streaming compression delivery method. 제1항에 있어서, 상기 사용자 단말에서 발생하는 사용자 조작 관련 이벤트 정보를 실시간 상기 에뮬레이터로 전달하고, 상기 에뮬레이터는 상기 이벤트 정보를 반영한 영상 및 사운드 데이터를 상기 사용자 단말에 전달하도록 구성되는 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공을 위한 시스템.The web of claim 1, wherein event information related to user manipulation occurring in the user terminal is transmitted to the emulator in real time, and the emulator is configured to deliver image and sound data reflecting the event information to the user terminal. A system for providing browser-based application streaming service. 제1항에 있어서, 상기 사용자 단말에서 선택된 애플리케이션은 게임 애플리케이션이고, 상기 에뮬레이터는 상기 사용자 단말에서 선택된 게임 애플리케이션의 특정 시점을 실행시켜 상기 영상 및 사운드 데이터를 인코딩함으로써, 상기 사용자 단말에서 상기 특정 시점부터 게임을 플레이할 수 있도록 구성되는 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공을 위한 시스템.The method of claim 1, wherein the application selected in the user terminal is a game application, and the emulator executes a specific time point of the game application selected in the user terminal and encodes the video and sound data from the specific time point in the user terminal. A system for providing a web browser-based application streaming service that is configured to play a game. 삭제delete 제1항에 있어서, 상기 웹 브라우저가 WebRTC를 지원하지 않는 경우, 상기 영상 및 사운드 데이터를 웹 소켓을 통해 상기 사용자 단말의 웹 브라우저로 전송하도록 구성되는 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공을 위한 시스템.The method of claim 1, wherein when the web browser does not support WebRTC, it is configured to transmit the video and sound data to the web browser of the user terminal through a web socket. system. 제6항에 있어서, 상기 사용자 단말의 웹 브라우저가 WebRTC를 지원하지 않고 MSE(Media Source Extensions)를 지원하는 경우, MSE를 통해 상기 영상 및 사운드 데이터를 디코딩하도록 구성되는 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공을 위한 시스템.The web browser-based application streaming according to claim 6, wherein when the web browser of the user terminal does not support WebRTC and supports Media Source Extensions (MSE), the video and sound data are decoded through MSE. System for service provision. 제6항에 있어서, 상기 사용자 단말의 웹 브라우저가 WebRTC 및 MSE를 지원하지 않고, WebAssembly(웹 어셈블리)를 지원하는 경우, WebAssembly를 로드하고 WebWorker(웹 워커) 디코더를 실행하도록 구성되는 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공을 위한 시스템.The web of claim 6, wherein when the web browser of the user terminal does not support WebRTC and MSE, and supports WebAssembly (web assembly), it is configured to load WebAssembly and execute a WebWorker (web worker) decoder. A system for providing browser-based application streaming service. 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공 방법에 있어서,
웹 브라우저가 설치된 사용자 단말에서 웹 브라우저를 통해 애플리케이션을 선택하는 단계;
서버에서 상기 사용자 단말에서 선택된 애플리케이션을 실행하도록 구성된 에뮬레이터를 실행시키는 단계;
상기 사용자 단말의 웹 브라우저가 WebRTC(Web Real-Time Communication)를 지원하는지 여부를 판단하는 단계;
상기 에뮬레이터가 상기 사용자 단말에서 선택된 애플리케이션을 실행시켜 영상 및 사운드 데이터를 인코딩하는 단계; 및
상기 사용자 단말의 웹 브라우저가 WebRTC를 지원하는 경우, 상기 에뮬레이터가 인코딩된 영상 및 사운드 데이터를 WebRTC의 데이터 채널을 통해 상기 사용자 단말의 웹 브라우저로 전송하도록 구성하는 단계
를 포함하고,
상기 서버에는 복수의 에뮬레이터를 통해 복수의 애플리케이션이 기 설치되어 있고, 상기 복수의 애플리케이션은 안드로이드 운영 체제 기반인 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공 방법.
In the method of providing a web browser-based application streaming service,
Selecting an application through a web browser in a user terminal having a web browser installed;
Executing an emulator configured to execute an application selected on the user terminal in a server;
Determining whether the web browser of the user terminal supports Web Real-Time Communication (WebRTC);
Encoding video and sound data by executing, by the emulator, a selected application in the user terminal; And
When the web browser of the user terminal supports WebRTC, configuring the emulator to transmit the encoded video and sound data to the web browser of the user terminal through a WebRTC data channel
Including,
In the server, a plurality of applications are pre-installed through a plurality of emulators, and the plurality of applications are based on an Android operating system.
제9항에 있어서, 상기 인코딩된 영상 및 사운드 데이터를 상기 사용자 단말의 웹 브라우저로 전송하는 단계에서, 상기 에뮬레이터가 상기 영상 및 사운드 데이터를 스트리밍 압축 전달 방식으로 상기 사용자 단말에 전달하는 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공 방법.The web of claim 9, wherein, in the step of transmitting the encoded image and sound data to a web browser of the user terminal, the emulator delivers the image and sound data to the user terminal in a streaming compression delivery method. How to provide browser-based application streaming service. 삭제delete 제9항에 있어서, 상기 사용자 단말에서 선택된 애플리케이션은 게임 애플리케이션이고, 상기 에뮬레이터는 상기 사용자 단말에서 선택된 게임 애플리케이션의 특정 시점을 실행시켜 상기 영상 및 사운드 데이터를 인코딩함으로써, 상기 사용자 단말에서 상기 특정 시점부터 게임을 플레이할 수 있도록 구성되는 것인, 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공 방법.The method of claim 9, wherein the application selected in the user terminal is a game application, and the emulator executes a specific time point of the game application selected in the user terminal and encodes the video and sound data from the specific time point in the user terminal. The method of providing a web browser-based application streaming service that is configured to play a game. 삭제delete 제9항에 있어서, 상기 웹 브라우저가 WebRTC를 지원하지 않는 경우, 상기 에뮬레이터는 상기 영상 및 사운드 데이터를 인코딩하는 단계 이후에 상기 영상 및 사운드 데이터를 웹 소켓을 통해 상기 사용자 단말의 웹 브라우저로 전송하도록 단계를 더 포함하는 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공 방법.The method of claim 9, wherein, when the web browser does not support WebRTC, the emulator transmits the image and sound data to the web browser of the user terminal through a web socket after encoding the image and sound data. Web browser-based application streaming service providing method further comprising the step. 제14항에 있어서, 상기 사용자 단말의 웹 브라우저가 WebRTC를 지원하지 않고 MSE(Media Source Extensions)를 지원하는 경우, 상기 영상 및 사운드 데이터를 웹 소켓을 통해 상기 사용자 단말의 웹 브라우저로 전송하는 단계 이후에, 상기 웹 브라우저에서 MSE를 통해 상기 영상 및 사운드 데이터를 디코딩하는 단계를 더 포함하는 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공 방법.The method of claim 14, wherein when the web browser of the user terminal does not support WebRTC and supports Media Source Extensions (MSE), after the step of transmitting the video and sound data to the web browser of the user terminal through a web socket In the web browser-based application streaming service providing method further comprising the step of decoding the video and sound data through the MSE in the web browser. 제14항에 있어서, 상기 사용자 단말의 웹 브라우저가 WebRTC 및 MSE를 지원하지 않고, WebAssembly(웹 어셈블리)를 지원하는 경우, 상기 영상 및 사운드 데이터를 웹 소켓을 통해 상기 사용자 단말의 웹 브라우저로 전송하는 단계 이후에, 상기 웹 브라우저에서 WebAssembly를 로드하고 WebWorker 디코더를 실행하는 단계를 더 포함하는 웹 브라우저 기반 애플리케이션 스트리밍 서비스 제공 방법.The method of claim 14, wherein when the web browser of the user terminal does not support WebRTC and MSE and supports WebAssembly (web assembly), the image and sound data is transmitted to the web browser of the user terminal through a web socket. After the step, the web browser-based application streaming service providing method further comprising the step of loading the WebAssembly in the web browser and executing the WebWorker decoder.
KR1020200115577A 2020-09-09 2020-09-09 Method and system for web browser based android application streaming service KR102189889B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200115577A KR102189889B1 (en) 2020-09-09 2020-09-09 Method and system for web browser based android application streaming service

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200115577A KR102189889B1 (en) 2020-09-09 2020-09-09 Method and system for web browser based android application streaming service

Publications (1)

Publication Number Publication Date
KR102189889B1 true KR102189889B1 (en) 2020-12-11

Family

ID=73786271

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200115577A KR102189889B1 (en) 2020-09-09 2020-09-09 Method and system for web browser based android application streaming service

Country Status (1)

Country Link
KR (1) KR102189889B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230012374A (en) 2021-07-15 2023-01-26 주식회사 케이티 Method and device for playing content in connection with cloud server, and cloud server for rendering content

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120002824A (en) * 2010-07-01 2012-01-09 이교석 Flash games integrated data system and provide method thereof
KR20120046807A (en) * 2010-10-27 2012-05-11 주식회사 엘지유플러스 Method and apparatus for providing virtual platform
KR20130062463A (en) * 2011-11-25 2013-06-13 한국전자통신연구원 Game streaming system and method of supporting the multiuser and multiplatform
US20160044071A1 (en) * 2013-04-02 2016-02-11 Hewlett-Packard Development Company, L.P. Sharing a web browser session between devices in a social group
KR20170006762A (en) * 2015-07-09 2017-01-18 주식회사 엔씨소프트 Apparatus and method for providing cloud game service
KR20180115972A (en) 2017-04-14 2018-10-24 정성채 An apparatus for cooperative developing mobile applications and the method by using the same

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120002824A (en) * 2010-07-01 2012-01-09 이교석 Flash games integrated data system and provide method thereof
KR20120046807A (en) * 2010-10-27 2012-05-11 주식회사 엘지유플러스 Method and apparatus for providing virtual platform
KR20130062463A (en) * 2011-11-25 2013-06-13 한국전자통신연구원 Game streaming system and method of supporting the multiuser and multiplatform
US20160044071A1 (en) * 2013-04-02 2016-02-11 Hewlett-Packard Development Company, L.P. Sharing a web browser session between devices in a social group
KR20170006762A (en) * 2015-07-09 2017-01-18 주식회사 엔씨소프트 Apparatus and method for providing cloud game service
KR20180115972A (en) 2017-04-14 2018-10-24 정성채 An apparatus for cooperative developing mobile applications and the method by using the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230012374A (en) 2021-07-15 2023-01-26 주식회사 케이티 Method and device for playing content in connection with cloud server, and cloud server for rendering content

Similar Documents

Publication Publication Date Title
US9451043B2 (en) Remote virtualization of mobile apps
US8213924B2 (en) Providing distributed online services for mobile devices
JP6253110B2 (en) Using the application cache to update installed application resources
US9042877B1 (en) System and method for retrofitting a branding framework into a mobile communication device
US9936335B2 (en) Mobile computing device application sharing
US8803916B1 (en) Methods and systems for an augmented reality service delivery platform
CN105487882A (en) Application software trial system, method, server and user device
US20070260702A1 (en) Web browser architecture for virtual machine access
KR20040004035A (en) Application catalog on an application server for wireless devices
CN105142011A (en) Web-based television terminal multi-screen interaction method and device
CN104965848A (en) Front-end resource loading method and apparatus
KR20120070650A (en) Method for playing and providing a video based on cloud computing
KR102112605B1 (en) Mobile device and Method for controlling network transfer of the mobile device
KR100749845B1 (en) Mobile system having features of mobile active page and method for mobile internet service thereof
CA2908087A1 (en) Systems and methods for providing an emulator
KR102189889B1 (en) Method and system for web browser based android application streaming service
US10073688B2 (en) Method and apparatus for executing application
CN106131614A (en) A kind of multimedia file playing processing method, device and server
US10805427B1 (en) Backup and restore of customer devices
US10643234B1 (en) Pre-loaded native application tracking service
KR101078603B1 (en) Platform, smart card and method for multimedia service
KR101437943B1 (en) Smart platform apparatus, system and contol method
US20180088930A1 (en) Updating code within an application
KR20140065502A (en) Method for providing application service, apparatus for providing application service and apparatus for executing application service
KR101800801B1 (en) API providing method for Social Network Service, terminal device and social network service system thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant