KR101832167B1 - Cloud streaming web server and client terminal using web protocol - Google Patents
Cloud streaming web server and client terminal using web protocol Download PDFInfo
- Publication number
- KR101832167B1 KR101832167B1 KR1020160103661A KR20160103661A KR101832167B1 KR 101832167 B1 KR101832167 B1 KR 101832167B1 KR 1020160103661 A KR1020160103661 A KR 1020160103661A KR 20160103661 A KR20160103661 A KR 20160103661A KR 101832167 B1 KR101832167 B1 KR 101832167B1
- Authority
- KR
- South Korea
- Prior art keywords
- web
- web server
- client terminal
- processor
- client
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H04L65/605—
-
- H04L65/608—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
본 발명은 클라우드 스트리밍 서비스 기술에 관한 것이다.The present invention relates to cloud streaming service technology.
이동통신망의 발달과 단말기 사양의 발전에 따라 단순한 통신장치 또는 정보 제공 장치의 범주를 벗어나 이동통신단말기와 같은 클라이언트 단말은 현대인의 필수 소지품이 되었고, 토탈 엔터테인먼트 기기로 진화해 가고 있는 추세다. 최근에는 성능이 낮은 클라이언트 단말이 대용량의 영상 등을 처리하는데 무리가 있으므로 원격지에 있는 클라우드 서버(Cloud Server)를 통해 해당 데이터를 처리하도록 하고, 그 처리된 결과 화면만을 클라이언트 단말에서 수신하여 디스플레이하는 클라우딩 컴퓨팅(Cloud Computing) 기술이 사용되고 있다.With the development of the mobile communication network and the development of the terminal specification, the client terminal such as the mobile communication terminal has become a necessity of the modern person and has evolved into the total entertainment device beyond the category of the simple communication device or the information providing device. In recent years, since a client terminal having a low performance is difficult to process a large-capacity image, it is necessary to process the corresponding data through a cloud server at a remote location, and to receive and display only the processed result screen on the client terminal, Cloud Computing technology is being used.
클라우드 컴퓨팅 환경에서는 개별 기술에 대한 전문성이 없이도 서비스를 이용하는 형태로 IT(Information Technology) 환경을 구축하고 이용할 수 있다. 클라우드 스트리밍 기술은 클라우드 컴퓨팅 기술에 데이터를 스트리밍 전송하는 방식이 적용된 것이다. 클라우드 스트리밍 기술은 네트워크 상태에 적응하는 스트리밍(adaptive streaming) 방식과 지연시간(latency)을 줄이는 입력 방식으로 인해 반드시 별도의 모바일 앱이나 동영상 플레이어와 같은 프로그램 등을 클라이언트 단말에 설치해야 하는 문제가 있다.In the cloud computing environment, information technology (IT) environment can be constructed and utilized in the form of using services without expertise in individual technologies. Cloud streaming technology is based on streaming data to cloud computing technology. The cloud streaming technology has a problem that a separate mobile application or a program such as a video player must be installed in the client terminal due to an adaptive streaming method adapted to the network state and an input method of reducing latency.
일 실시 예에 따라, 클라우드 스트리밍 전송 시에, 클라이언트 단말의 성능을 높이고 클라우드 스트리밍 서비스의 품질을 높이기 위해 웹 프로토콜을 사용하는 클라우드 스트리밍 웹 서버 및 클라이언트 단말을 제안한다.According to an exemplary embodiment, a cloud streaming web server and a client terminal using a web protocol are proposed to increase the performance of a client terminal and improve the quality of a cloud streaming service at the time of transmitting the cloud streaming.
일 실시 예에 따른 클라우드 스트리밍 웹 서버는 프로세서와, 프로세서를 통해 실행되는 명령을 포함한 데이터가 저장되는 메모리를 포함하며, 프로세서는 클라이언트 단말의 웹 클라이언트로부터 서버 접속을 위한 HTTP 요청을 수신하여 HTML 디폴트 파일을 포함한 HTTP 응답을 웹 클라이언트에 전송하는 HTTP 처리부와, 웹 클라이언트의 HTML 디폴트 파일의 요청에 따라 자바스크립트 파일을 전송하고, 웹 클라이언트에서 자바스크립트 파일을 실행하면 실행된 자바스크립트 파일로부터 웹 소켓을 통한 접속 요청을 수신하여 소프트웨어 실행 결과를 웹 소켓을 통해 웹 클라이언트에 스트리밍 전송하는 전송 처리부와, 실행된 자바스크립트 파일로부터 웹 소켓을 통해 사용자 입력을 수신하는 사용자 입력 수신 처리부와, 소프트웨어를 실행하고 소프트웨어 실행 결과를 전송 처리부에 전달하며 사용자 입력 수신 처리부로부터 사용자 입력을 전달받아 이를 실행 소프트웨어에 반영하는 소프트웨어 실행 처리부를 포함한다. 웹 클라이언트는 웹 브라우저 또는 하이브리드 앱일 수 있다.A cloud streaming web server according to an exemplary embodiment includes a processor and a memory in which data including instructions executed through a processor are stored. The processor receives an HTTP request for accessing a server from a client terminal's web client, And an HTTP processing unit for transmitting an HTTP response including the HTTP request to the web client. When a JavaScript file is transmitted according to a request of the HTML default file of the web client and a JavaScript file is executed by the web client, A transmission processing unit for receiving the connection request and streaming the software execution result to the web client through the web socket; a user input reception processing unit for receiving the user input through the web socket from the executed JavaScript file; And a software execution processing unit for transferring the execution result to the transmission processing unit and receiving the user input from the user input reception processing unit and reflecting it to the execution software. The web client may be a web browser or a hybrid application.
클라우드 스트리밍 웹 서버는, 클라이언트 단말로부터 디코딩 성능 정보를 수신하고 수신된 디코딩 성능 정보를 반영하여 서비스 품질을 조절하는 방식과, 클라이언트 단말에 서비스를 제공할 네트워크의 상태를 반영하여 서비스 품질을 조절하는 방식 중 적어도 하나를 통해 서비스 품질을 조절하는 서비스 품질 조절부를 더 포함할 수 있다.The cloud streaming web server includes a method of receiving decoding performance information from the client terminal and adjusting the service quality by reflecting the received decoding performance information and a method of adjusting the service quality by reflecting the state of the network to provide the client terminal with the service And a service quality control unit for controlling the quality of service through at least one of the service quality control unit and the service quality control unit.
이때, 프로세서는 실행 화면 및 오디오를 인코딩하는 인코딩부와, 인코딩된 실행 화면 및 오디오를 패킷 처리하는 패킷 처리부와, 패킷화된 실행 화면 및 오디오를 다중화하는 다중화부를 더 포함하며, 인코딩부는 클라이언트 단말과 통신하는 웹 소켓이 다수 개이면 실행 화면 및 오디오를 분리하여 각각 인코딩할 수 있다.The processor may further include an encoding unit for encoding an execution picture and audio, a packet processing unit for packet processing the encoded execution picture and audio, and a multiplexing unit for multiplexing the packetized execution picture and audio, If there are a number of web sockets to communicate, the execution screen and audio can be separately encoded.
다른 실시 예에 따른 클라이언트 단말은, 웹 클라이언트와, 웹 클라이언트를 실행하는 프로세서와, 프로세서를 통해 실행되는 명령을 포함한 데이터가 저장되는 메모리를 포함하며, 프로세서는 웹 클라이언트를 실행하고 클라우드 스트리밍 웹 서버에 웹 접속을 위한 HTTP 요청을 전송하여 클라우드 스트리밍 웹 서버로부터 HTML 디폴트 파일을 포함한 HTTP 응답을 수신하는 웹 클라이언트 실행부와, HTML 디폴트 파일에 의해 클라우드 스트리밍 웹 서버에 자바스크립트 파일을 요청하여 수신하고 수신한 자바스크립트 파일을 웹 클라이언트에서 실행하는 자바스크립트 실행부와, 실행된 자바스크립트 파일에 의해 웹 소켓을 이용하여 클라우드 스트리밍 웹 서버에 접속하여 소프트웨어 실행 결과를 스트리밍 수신하는 수신 처리부와, 실행된 자바스크립트 파일에 의해 사용자 입력을 클라우드 스트리밍 웹 서버에 전송하는 사용자 입력 전송 처리부를 포함한다.A client terminal according to another embodiment includes a web client, a processor that executes a web client, and a memory that stores data including instructions executed by the processor. The processor executes a web client and executes the web client to the cloud streaming web server A web client executing unit for receiving an HTTP response including an HTML default file from a cloud streaming web server by transmitting an HTTP request for accessing the web, and requesting a JavaScript file to the cloud streaming web server through an HTML default file, A reception processing unit for accessing a cloud streaming web server using a web socket by using the executed JavaScript file and streaming the result of the execution of the software by executing the JavaScript script in the web client; A user input in accordance with a user input and a transmission processing unit for transmitting to the cloud streaming web server.
이때, 프로세서는 클라우드 스트리밍 웹 서버로부터 수신된 화면 및 오디오를 디코딩하는 디코딩부와, 디코딩된 화면 및 오디오를 렌더링하는 렌더링부와, 렌더링된 화면 및 오디오를 역 다중화하는 역 다중화부와, 웹 소켓 처리를 위한 쓰레드 기능을 제공하는 웹 워커를 더 포함하며, 클라우드 스트리밍 웹 서버와 통신하는 웹 소켓이 다수 개이면, 디코딩부는 화면 및 오디오를 분리하여 각각 디코딩하고 렌더링부는 화면 및 오디오를 분리하여 각각 렌더링할 수 있다.At this time, the processor includes a decoding unit decoding the screen and audio received from the cloud streaming web server, a rendering unit rendering the decoded screen and audio, a demultiplexing unit demultiplexing the rendered screen and audio, If the number of web sockets communicating with the cloud streaming web server is large, the decoding unit decodes the screen and audio separately, and the rendering unit separates the screen and audio separately and renders them separately. .
일 실시 예에 따르면, 웹 프로토콜에 기반한 클라우드 스트리밍 기술을 통해 웹 브라우저 또는 하이브리드 앱이 기본 제공되거나 설치된 클라이언트 단말에서 클라우드 스트리밍 서비스를 이용함에 따라 클라이언트 단말에 별도의 모바일 앱이나 프로그램 등을 설치하지 않아도 된다.According to one embodiment, since a cloud streaming service is used in a client terminal in which a web browser or a hybrid application is provided or installed through a cloud streaming technology based on a web protocol, a separate mobile app or program is not installed in the client terminal .
또한, 단일의 웹 소켓을 이용하여 클라우드 스트리밍 웹 서버와 클라이언트 단말 간에 통신하면 클라이언트 단말의 성능을 향상시킬 수 있고, 다수 개의 웹 소켓을 이용하여 통신하는 경우에는 웹 브라우저 또는 하이브리드 앱이 실행하는 자바스크립트 구조를 단순화시킬 수 있다.In addition, when communication is performed between the cloud streaming web server and the client terminal using a single web socket, the performance of the client terminal can be improved. In the case of communication using a plurality of web sockets, The structure can be simplified.
나아가, 웹 브라우저 또는 하이브리드 앱이 사용하는 자바스크립트 구조를 워커로 사용함에 따라, 멀티 쓰레드를 사용하는 것과 같은 결과를 얻기 때문에 클라이언트 단말의 성능을 높이고, 클라이언트 단말이 전반적으로 더 매끄럽게 동작하게 할 수 있다.Furthermore, by using the JavaScript structure used by the web browser or the hybrid application as a worker, the same result as using the multi-thread can be obtained, thereby improving the performance of the client terminal and making the client terminal generally smoother .
도 1은 본 발명의 실시 예에 따른 클라우드 스트리밍 서비스 시스템의 구성도,
도 2는 본 발명의 일 실시 예에 따른 클라우드 스트리밍 웹 서버의 구성도,
도 3은 본 발명의 일 실시 예에 따른 도 2의 서버 프로세서의 세부 구성도,
도 4는 본 발명의 일 실시 예에 따른 클라이언트 단말의 구성도,
도 5는 본 발명의 일 실시 예에 따른 도 4의 단말 프로세서의 세부 구성도,
도 6은 본 발명의 일 실시 예에 따른 클라우드 스트리밍 웹 서버와 클라이언트 단말 간의 표준 웹 프로토콜 기반의 메시지 송수신 프로세스를 도시한 흐름도,
도 7은 본 발명의 일 실시 예에 따른 웹 소켓을 1개 사용하는 방식에서의 클라우드 스트리밍 웹 서버와 클라이언트 단말 간의 통신 프로세스를 도시한 흐름도,
도 8은 본 발명의 일 실시 예에 따른 웹 소켓을 다수 개 사용하는 방식에서의 클라우드 스트리밍 웹 서버와 클라이언트 단말 간의 통신 프로세스를 도시한 흐름도,
도 9는 본 발명의 일 실시 예에 따른 클라이언트 단말의 성능을 높이기 위해 워커 자바스크립트를 이용한 웹 소켓 처리 프로세스를 도시한 흐름도이다.1 is a configuration diagram of a cloud streaming service system according to an embodiment of the present invention;
2 is a configuration diagram of a cloud streaming web server according to an embodiment of the present invention;
FIG. 3 is a detailed configuration diagram of the server processor of FIG. 2 according to an embodiment of the present invention;
4 is a configuration diagram of a client terminal according to an embodiment of the present invention;
FIG. 5 is a detailed configuration diagram of the terminal processor of FIG. 4 according to an embodiment of the present invention;
FIG. 6 is a flowchart illustrating a standard Web protocol message transmission / reception process between a cloud streaming web server and a client terminal according to an exemplary embodiment of the present invention;
FIG. 7 is a flowchart illustrating a communication process between a cloud streaming web server and a client terminal in a method using one web socket according to an embodiment of the present invention; FIG.
FIG. 8 is a flowchart illustrating a communication process between a cloud streaming web server and a client terminal in a method using a plurality of web sockets according to an exemplary embodiment of the present invention;
FIG. 9 is a flowchart illustrating a web socket processing process using Walker JavaScript to increase the performance of a client terminal according to an exemplary embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이며, 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. , Which may vary depending on the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램인스트럭션들(실행 엔진)에 의해 수행될 수도 있으며, 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다.Each block of the accompanying block diagrams and combinations of steps of the flowcharts may be performed by computer program instructions (execution engines), which may be stored in a general-purpose computer, special purpose computer, or other processor of a programmable data processing apparatus The instructions that are executed through the processor of the computer or other programmable data processing equipment will generate means for performing the functions described in each block or flowchart of the block diagram.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.These computer program instructions may also be stored in a computer usable or computer readable memory capable of directing a computer or other programmable data processing apparatus to implement the functionality in a particular manner so that the computer usable or computer readable memory It is also possible for the instructions stored in the block diagram to produce an article of manufacture containing instruction means for performing the functions described in each block or flowchart of the flowchart.
그리고 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명되는 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.And computer program instructions may be loaded onto a computer or other programmable data processing equipment so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer- It is also possible that the instructions that perform the data processing equipment provide the steps for executing the functions described in each block of the block diagram and at each step of the flowchart.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능들을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있으며, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하며, 또한 그 블록들 또는 단계들이 필요에 따라 해당하는 기능의 역순으로 수행되는 것도 가능하다.Also, each block or step may represent a portion of a module, segment, or code that includes one or more executable instructions for executing the specified logical functions, and in some alternative embodiments, It should be noted that functions may occur out of order. For example, two successive blocks or steps may actually be performed substantially concurrently, and it is also possible that the blocks or steps are performed in the reverse order of the function as needed.
이하, 첨부 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다. 그러나 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다. 본 발명의 실시 예는 이 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공된다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the following embodiments of the present invention may be modified into various other forms, and the scope of the present invention is not limited to the embodiments described below. The embodiments of the present invention are provided to enable those skilled in the art to more fully understand the present invention.
도 1은 본 발명의 실시 예에 따른 클라우드 스트리밍 서비스 시스템의 구성도이다.1 is a configuration diagram of a cloud streaming service system according to an embodiment of the present invention.
도 1을 참조하면, 일 실시 예에 따른 클라우드 스트리밍 서비스 시스템은 네트워크(1), 클라우드 스트리밍 웹 서버(이하, '웹 서버'라 칭함)(2) 및 클라이언트 단말(3)을 포함한다.Referring to FIG. 1, a cloud streaming service system according to an embodiment includes a
웹 서버(2)는 클라이언트 단말(3)에 클라우드 스트리밍 서비스를 제공한다. 클라우드 스트리밍 서비스는 소프트웨어를 웹 서버(2)에서 실행하고, 실행 결과를 클라이언트 단말(3)에 전송하는 것을 의미한다. 이때, 클라이언트 단말(3)이 사용자 입력을 다시 웹 서버(2)에 전송하여 웹 서버(2)의 소프트웨어에 반영하는 과정을 포함한다. 소프트웨어는 예를 들어, 애플리케이션일 수 있는데, 동영상 플레이어와 같은 멀티미디어 재생 플레이어처럼 웹 서버(2)에서 실행 가능한 프로그램이면 어느 것이든 가능하다.The
웹 서버(2)는 네트워크(1)를 통해 클라이언트 단말(3)과 연결되어 클라우드 스트리밍 기반의 소프트웨어 실행을 위한 모든 데이터를 송수신한다. 웹 서버(2)는 클라이언트 단말(3)로부터 클라우드 스트리밍 기반의 소프트웨어 실행을 요청받는다. 그리고 클라이언트 단말(10)의 요청에 따라 해당하는 소프트웨어를 실행하며, 소프트웨어 실행 결과를 클라이언트 단말(3)에 전송한다. 실행 결과는 출력 화면을 캡쳐한 이미지일 수 있고, 오디오를 포함할 수도 있다.The
클라우드 스트리밍을 위한 웹 서버(2)는 표준 웹 서비스를 지원한다. 웹 서비스는 예를 들어, 애플리케이션의 작성 시 HTTP, XML, SOAP와 같은 표준화된 표준 웹 프로토콜과 데이터 형식을 사용함으로써 운영 체계(OS) 등 특정 플랫폼과 상관없이 모든 컴퓨터 간 원활한 데이터의 흐름을 보장해 준다. 웹 서버(2)는 표준 웹 프로토콜을 지원한다. 표준 웹 프로토콜은 예를 들어 하이퍼텍스트 전송 프로토콜(hypertext transfer protocol: HTTP, 이하 HTTP라 칭함), 웹 소켓(web socket) 등일 수 있다.The
웹 서버(2)는 소프트웨어를 실행하고, 실행 결과를 클라이언트 단말(3)에 전송한다. 이를 위해, 실행 소프트웨어로부터 출력을 캡쳐할 수 있다. 웹 서버(2)는 웹 소켓을 통해 실행 결과를 스트리밍 전송할 수 있다. 또한, 웹 소켓을 통해 클라이언트 단말(3)로부터 사용자 입력을 수신할 수 있다. 이 경우, 사용자 입력을 실행 소프트웨어에 반영할 수 있다.The
클라이언트 단말(3)은 네트워크(1)를 통해 웹 서버(2)와 연결되어 클라우드 스트리밍 기반의 소프트웨어 실행을 위한 데이터를 송수신한다. 클라이언트 단말(3)은 웹 서버(2)로 클라우드 스트리밍 기반의 소프트웨어에 대한 실행을 요청하여 그 실행 결과를 수신한다. 그리고 수신된 실행 결과를 출력할 수 있다.The
클라이언트 단말(3)은 웹 클라이언트가 설치 또는 다운로드 가능한 모든 사용자 단말을 포함한다. 웹 클라이언트는 웹 브라우저이거나 하이브리드 앱(hybrid app)일 수 있다. 하이브리드 앱은 인터넷 브라우저에서 실행되는 앱이다. 이하, 설명의 편의를 위해 웹 클라이언트를 웹 브라우저로 한정하여 설명하나, 이에 한정되는 것은 아니다. 클라이언트 단말(3)은 정보통신기기, 멀티미디어 단말기, 유선 단말기, 고정형 단말기 및 IP(Internet Protocol) 단말기 등의 다양한 단말기일 수 있다. 클라이언트 단말(3)은 휴대폰, PMP(Portable Multimedia Player), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net book) 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말기일 수 있다.The
네트워크(1)는 웹 서버(2) 및 클라이언트 단말(3) 간의 데이터 전송 및 정보 교환을 위한 송수신 동작을 수행한다. 네트워크(1)는 다양한 형태의 통신망이 이용될 수 있는데, 예를 들어, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신방식 또는 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coax), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신방식이 이용될 수 있다. 한편, 네트워크(1)는 전술한 통신방식에 한정되는 것은 아니며, 전술한 통신 방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.The
도 2는 본 발명의 일 실시 예에 따른 웹 서버의 구성도이다.2 is a configuration diagram of a web server according to an embodiment of the present invention.
도 2를 참조하면, 웹 서버(2)는 서버 프로세서(20)와 서버 메모리(22)를 포함한다.Referring to FIG. 2, the
서버 프로세서(20)는 프로그램 명령을 처리한다. 서버 메모리(22)에는 서버 프로세서(20)를 통해 실행되는 명령을 포함한 데이터가 저장된다. 특히, 서버 메모리(22)에는 웹 서버(2)를 통해 실행된 소프트웨어(220)와 소프트웨어 실행 결과가 저장될 수 있다.The
도 3은 본 발명의 일 실시 예에 따른 도 2의 서버 프로세서의 세부 구성도이다.3 is a detailed configuration diagram of the server processor of FIG. 2 according to an embodiment of the present invention.
도 1 내지 도 3을 참조하면, 서버 프로세서(20)는 HTTP 처리부(200), 전송 처리부(201), 사용자 입력 수신 처리부(202), 소프트웨어 실행 처리부(203), 인코딩부(205), 패킷 처리부(206), 다중화부(207) 및 서비스 품질 조절부(208)를 포함한다.1 to 3, the
HTTP 처리부(200)는 클라이언트 단말(3)의 웹 브라우저로부터 서버 접속을 위한 HTTP 요청을 수신하고, HTTP 요청에 따라 HTML 디폴트 파일을 포함한 HTTP 응답을 클라이언트 단말(3)에 전송한다. HTML 디폴트 파일은 예를 들어, index.html 파일이다.The
전송 처리부(201)는 웹 브라우저의 HTML 디폴트 파일에 자바스크립트 파일을 전송하고, 웹 브라우저가 자바스크립트 파일을 실행하면 실행된 자바스크립트 파일로부터 웹 소켓을 통한 접속 요청을 수신한다. 그러면, 웹 서버(2)에 실행된 소프트웨어 실행 결과를 웹 소켓을 통해 웹 브라우저의 자바스크립트 파일에 스트리밍 전송한다. 자바스크립트 파일은 예를 들어, cloud streaming client.js 이다.The
사용자 입력 수신 처리부(202)는 웹 브라우저에서 실행된 자바스크립트 파일로부터 웹 소켓을 통해 사용자 입력을 수신한다. 소프트웨어 실행 처리부(203)는 소프트웨어를 실행하고, 소프트웨어 실행 결과를 전송 처리부(201)에 전송하며 사용자 입력 수신 처리부(202)로부터 사용자 입력을 전달받아 이를 실행 소프트웨어에 반영한다.The user input
인코딩부(205)는 웹 서버(2)에서의 실행 화면 및 오디오를 인코딩한다. 패킷 처리부(206)는 인코딩부(205)에서 인코딩된 실행 화면 및 오디오를 패킷 처리한다. 다중화부(207)는 패킷 처리부(206)에서 패킷화된 실행 화면 및 오디오를 다중화한다. 이때, 인코딩부(205)는 스트리밍 전송을 위해 사용하는 웹 소켓이 다수 개인 경우, 실행 화면 및 오디오를 분리하여 각각 인코딩할 수 있다.The
도 4는 본 발명의 일 실시 예에 따른 클라이언트 단말의 구성도이다.4 is a configuration diagram of a client terminal according to an embodiment of the present invention.
도 1 및 도 4를 참조하면, 클라이언트 단말(3)은 단말 프로세서(30), 단말 메모리(32) 및 웹 클라이언트(34)를 포함한다.1 and 4, the
웹 클라이언트(34)는 웹 브라우저 또는 하이브리드 앱일 수 있다. 단말 프로세서(30)는 웹 클라이언트(34)를 실행한다. 단말 메모리(32)는 단말 프로세서(30)를 통해 실행되는 명령을 포함한 데이터가 저장된다. 단말 프로세서(30)는 웹 서버(2)에 의해 제공되는 웹 페이지를 조회 및 디스플레이하기 위해 HTTP 프로토콜을 사용하여 웹 서버(2)와 상호 통신할 수 있다. 또한, 단말 프로세서(30)는 웹 소켓을 통해 웹 서버(2)와 통신한다. 이때, 웹 서버(2)로부터 소프트웨어 실행 결과를 웹 소켓을 통해 스트리밍 수신할 수 있고, 사용자 입력을 웹 소켓을 통해 웹 서버(2)에 전송할 수 있다. 단말 프로세서(30)에 대한 세부 구성은 도 5를 참조로 하여 후술한다.The
단말 메모리(32)에는 코덱 자바스크립트(320), 렌더링 자바스크립트(322), 역 다중화 자바스크립트(324) 및 워커 자바스크립트(326)가 저장된다. 코덱 자바스크립트(320)는 웹 서버(2)로부터 수신된 화면 및 오디오를 디코딩하기 위한 자바스크립트 파일이다. 코덱 자바스크립트(320)는 SW 코덱 자바스크립트일 수 있다.렌더링 자바스크립트(322)는 디코딩된 화면 및 오디오를 렌더링하기 위한 자바스크립트 파일이다. 역 다중화 자바스크립트(324)는 렌더링된 화면 및 오디오를 역 다중화하기 위한 자바스크립트 파일이다. 워커 자바스크립트(326)는 웹 소켓 처리를 위한 쓰레드 기능을 제공하는 자바스크립트 파일이다.In the
도 5는 본 발명의 일 실시 예에 따른 도 4의 단말 프로세서의 세부 구성도이다.5 is a detailed configuration diagram of the terminal processor of FIG. 4 according to an embodiment of the present invention.
도 5를 참조하면, 단말 프로세서(30)는 웹 클라이언트 실행부(300), 자바스크립트 실행부(301), 수신 처리부(302), 사용자 입력 전송 처리부(303), 디코딩부(305), 렌더링부(306), 역 다중화부(307) 및 웹 워커(308)를 포함한다.5, the
웹 클라이언트 실행부(300)는 웹 브라우저를 실행하고 웹 서버(2)에 웹 접속을 위한 HTTP 요청을 전송하여 웹 서버(2)로부터 HTML 디폴트 파일을 포함한 HTTP 응답을 수신한다. 자바스크립트 실행부(301)는 웹 서버(2)로부터 수신한 HTML 디폴트 파일에 의해 웹 서버(2)에 자바스크립트 파일을 요청하여 수신하고 수신한 자바스크립트 파일을 웹 브라우저에서 실행한다. 수신 처리부(302)는 자바스크립트 실행부(301)에서 실행된 자바스크립트 파일에 의해 웹 소켓을 이용하여 웹 서버(2)에 접속하여 소프트웨어 실행 결과를 스트리밍 수신한다. 사용자 입력 전송 처리부(303)는 실행된 자바스크립트 파일에 의해 사용자 입력을 웹 서버(2)에 전송한다.The web
디코딩부(305)는 웹 서버(2)로부터 수신된 화면 및 오디오를 디코딩한다. 디코딩을 위해 SW 코덱을 이용하여 디코딩할 수 있고, 가능한 경우 HW 코덱을 사용하거나 HW 가속을 사용할 수 있다. 그리고 코덱이 화면 코덱과 오디오 코덱으로 분리되면, 화면 및 오디오를 각각 디코딩할 수 있다.The
렌더링부(306)는 디코딩부(305)에서 디코딩된 화면 및 오디오를 렌더링한다. 렌더링을 위해 렌더링 자바스크립트를 이용할 수 있다. 역 다중화부(307)는 렌더링부(306)에서 렌더링된 화면 및 오디오를 역 다중화한다. 역 다중화를 위해 역 다중화 자바스크립트를 이용할 수 있다. 다수 개의 웹 소켓을 이용하여 웹 서버(2)와 클라이언트 단말(3) 간 통신하는 경우, 디코딩부(305)는 화면 디코딩 및 오디오 디코딩을 분리하여 수행하고, 렌더링부(306) 역시 화면 렌더링 및 오디오 렌더링을 분리하여 수행할 수 있다. 웹 워커(308)는 웹 소켓 처리를 위한 쓰레드 기능을 제공한다. 이를 위해 워커 자바스크립트를 이용할 수 있다.The
도 6은 본 발명의 일 실시 예에 따른 웹 서버와 클라이언트 단말 간의 표준 웹 프로토콜 기반의 메시지 송수신 프로세스를 도시한 흐름도이다.6 is a flowchart illustrating a standard Web protocol message transmission / reception process between a web server and a client terminal according to an embodiment of the present invention.
도 6을 참조하면, 클라이언트 단말(3)의 웹 브라우저(610)가 웹 서버(2)에 서버 접속을 위한 HTTP 요청을 전송(630)하고, 웹 서버(2)로부터 HTML 디폴트 파일을 포함한 HTTP 응답을 수신한다(640). HTTP 요청 전송(630) 시에, 클라이언트 단말(3)은 사용자로부터 서버 주소 이름을 입력받아 전송하는데, 서버 주소 이름은 예를 들어, http//name:port/이다. HTML 디폴트 파일은 예를 들어, index.html 파일이다.6, the
이어서, 수신한 HTML 디폴트 파일(6100)은 웹 서버(2)에 자바스크립트 파일(6120)을 요청(650)하여 웹 서버(2)로부터 자바스크립트 파일(6120)을 수신한다(660). 자바스크립트 파일(6120)은 예를 들어, cloud streaming client.js 이다. 자바스크립트 파일(6120)을 수신한 웹 브라우저(610)는 자바스크립트 파일(6120)을 실행한다.Subsequently, the received
이어서, 웹 브라우저(610)는 자바스크립트 파일(6120)에 의해 웹 소켓(websocket)을 통해 웹 서버(2)에 접속한다(670). 웹 서버(2)는 웹 서버(2)에서 실행된 소프트웨어(220)를 대상으로 접속한 클라이언트 단말(3)의 자바스크립트 파일(6120)에 소프트웨어 실행 결과를 스트리밍 전송한다(680).Subsequently, the
이어서, 웹 브라우저(610)에서 실행된 자바스크립트 파일(6120)은 사용자 입력을 웹 소켓을 이용하여 웹 서버(2)의 소프트웨어(220)에 전송한다(690). 사용자 입력은 예를 들어, 마우스(mouse), 키보드(keyboard), 터치(touches), 제스처(gestures)일 수 있다. 사용자가 입력한 터치, 탭, 핀치, 줌, 스크롤, 틸트와 같은 제스처와 마우스, 키보드와 같은 입력 등은 클라이언트 단말(3)에 의해 웹 서버(2)에 전송되고 웹 서버(2)는 소프트웨어(220)에 사용자 입력을 반영한다. 사용자 입력 전송 시에, JSON 포맷을 사용하거나 16진수 값으로 변환하여 구조체에 넣어 웹 서버(2)로 전송할 수 있다. 키보드 입력은 type, state, key_code 구조로 down, up에 대해 웹 서버(2)에 전송한다. 마우스 입력은 type, state, x, y 구조로 down, move, up에 대해 웹 서버(2)로 전송한다. 터치 입력은 type, state, x, y 구조로 start, move, end에 대해 웹 서버(2)에 전송한다.Then, the
한편, 클라이언트 단말(3)의 성능을 고려하여 클라이언트 단말(3)에 제공하는 서비스의 품질을 개선한다. 예를 들어, 클라이언트 단말(3)이 디코딩 가능한 프레임 수를 웹 서버(2)에 전송하고 웹 서버(2)가 클라이언트 단말(3)의 디코딩 성능을 반영하는 방식을 통해 서비스 품질을 개선한다. 다른 예로, 네트워크 대역폭, 속도 등의 네트워크 상태를 실시간으로 측정하고 측정된 네트워크 상태에 적응적으로 스트리밍 전송하는 어댑티브 스트리밍(adaptive streaming)을 통해 서비스 품질을 개선한다. 예를 들어, 웹 서버(2)가 네트워크 상태에 따라 인코딩 비트율(bitrates), 프레임 수를 조절할 수 있다.On the other hand, considering the performance of the
웹 서버(2)의 실행 결과 스트리밍 전송 및 클라이언트 단말(3)의 사용자 입력 전송을 위한 웹 소켓은 단일 개일 수 있고, 다수 개일 수 있다. 이하, 도 7 및 도 8을 참조로 하여 웹 소켓을 통한 스트리밍 전송 및 사용자 입력 수신 프로세스에 대해 후술한다.The web socket for streaming the execution result of the
도 7은 본 발명의 일 실시 예에 따른 웹 소켓을 1개 사용하는 방식에서의 웹 서버와 클라이언트 단말 간의 통신 프로세스를 도시한 흐름도이다.7 is a flowchart illustrating a communication process between a web server and a client terminal in a method using one web socket according to an embodiment of the present invention.
도 7을 참조하면, 웹 소켓을 1개 연결하면, 클라이언트 단말(3)의 웹 브라우저(610)가 웹 서버(2)에 대한 최초 연결시간이 단축된다. 웹 브라우저(610)는 싱글 쓰레드(single thread)를 사용하는 이벤트 핸들링 방식이므로, 웹 소켓을 1개 사용하면 웹 소켓을 여러 개 사용하는 것에 비해 전체 이벤트 개수가 줄어들어 클라이언트 단말(3)의 성능을 높일 수 있다.Referring to FIG. 7, when one web socket is connected, the initial connection time of the
웹 브라우저(610)는 코덱 자바스크립트(320)를 사용하여 이미지를 디코딩한다. 코덱 자바스크립트(320)는 SW 코덱용일 수 있고, HW 코덱용일 수 있다. 나아가, HW 가속을 사용할 수도 있다. 그리고 웹 브라우저(610)는 디코딩된 이미지를 렌더링 자바스크립트(322)를 사용하여 렌더링한다. 예를 들어, 웹 브라우저(610)는 디코딩된 이미지를, 웹 브라우저(610)가 제공하는 HTML5 규격에서 CANVAS 요소를 사용하여 렌더링한다. 가능한 경우 HW 가속을 사용한다. 웹 브라우저(610)가 GetUserMedia 스펙을 지원하는 경우에는 디코딩된 오디오를 렌더링할 수 있다.The
일 실시 예에 따른 웹 서버(2)는 1개의 웹 소켓(760)을 사용하여 비디오, 오디오 데이터를 웹 브라우저(610)로 스트리밍 전송한다(710). 이때, 네트워크 상태에 적응하는 어댑티브 스트리밍(adaptive streaming) 전송을 할 수 있다. 이어서, 웹 브라우저(610)는 1개의 웹 소켓(760)을 사용하여 사용자 입력을 웹 서버(2)로 전송한다(720). 따라서 1개의 웹 소켓(760)을 사용하는 경우, 웹 서버(2)는 출력 화면 및 오디오를 인코딩(770)하고 비디오 및 오디오 데이터에 대한 패킷 처리(Packetize) 및 다중화(Mux)(780)를 수행할 수 있다. 웹 서버(2)는 GPU 사용 또는 HW 가속(700)을 통해 출력 화면 및 오디오 인코딩(770)과 비디오 및 오디오 데이터에 대한 패킷 처리 및 다중화(780)를 수행할 수 있다.The
웹 브라우저(610)는 역 다중화 자바스크립트(Demux javascript)(324)를 이용하여 역 다중화(Demux)를 통해 비디오 및 오디오 데이터를 분리한다.The
도 8은 본 발명의 일 실시 예에 따른 웹 소켓을 다수 개 사용하는 방식에서의 웹 서버와 클라이언트 단말 간의 통신 프로세스를 도시한 흐름도이다.FIG. 8 is a flowchart illustrating a communication process between a web server and a client terminal in a method using a plurality of web sockets according to an embodiment of the present invention.
도 8을 참조하면, 웹 소켓을 다수 개, 예를 들어 도 8에 도시된 바와 같이 2개(870-1, 870-2) 연결하는 것은 1개를 사용하는 것에 비해 전반적인 성능은 떨어지지만, 1개의 웹 소켓 #1(870-1)은 비디오 스트리밍 전송(850-1)을 수행하고 다른 1개의 웹 소켓 #2(870-2)은 오디오 스트리밍 전송(850-2)을 수행하면, 웹 브라우저(610)가 실행하는 자바스크립트 파일 구조를 단순화시킬 수 있다.Referring to FIG. 8, a plurality of web sockets, for example, two (870-1, 870-2) connections as shown in FIG. 8, When one
웹 서버(30)가 비디오를 인코딩(880)하여 웹 소켓 #1(870-1)을 통해 웹 브라우저(610)에 스트리밍 전송하면, 웹 브라우저(610)는 수신된 비디오를 코덱 자바스크립트 #1(320-1)를 이용하여 디코딩하고, 화면 렌더링 자바스크립트(322-1)를 이용하여 디코딩된 비디오를 렌더링한다. 마찬가지로 웹 서버(30)가 오디오를 인코딩(890)하여 웹 소켓 #2(870-2)을 통해 웹 브라우저(610)에 스트리밍 전송하면, 웹 브라우저(610)는 수신된 오디오를 코덱 자바스크립트 #2(320-2)를 이용하여 디코딩하고, 오디오 렌더링 자바스크립트(322-2)를 이용하여 디코딩된 오디오를 렌더링한다.When the
도 9는 본 발명의 일 실시 예에 따른 클라이언트 단말의 성능을 높이기 위해 워커 자바스크립트를 이용한 웹 소켓 처리 프로세스를 도시한 흐름도이다.FIG. 9 is a flowchart illustrating a web socket processing process using Walker JavaScript to increase the performance of a client terminal according to an exemplary embodiment of the present invention.
도 9를 참조하면, 웹 브라우저(610)가 실행하는 cloud streaming client.js 자바스크립트 파일은 HTML5가 제공하는 워커 자바스크립트(worker javascript)(326)를 사용한다. 워커 자바스크립트(326)는 웹 소켓 처리를 위한 쓰레드 기능을 제공하는데, 워커 자바스크립트(326)를 이용하여 프레임률(Framerates) 계산 및 타임아웃(Timeout) 처리가 가능하다. 이때, 웹 소켓(960) 연결마다 워커 자바스크립트(326)를 사용하여 웹 소켓 처리를 별개의 쓰레드로 분리하면. 클라이언트 단말(3)의 성능을 높일 수 있다. 또한, 웹 소켓(960)이 다수 개일 때 클라이언트 입력 이벤트로 인해 웹 소켓(960)이 비정상 종료하는 문제를 개선할 수 있다. 웹 브라우저(610)는 싱글 쓰레드를 사용하는 이벤트 핸들링 방식이므로, HTML5 규격에서 워커 자바스크립트(326)를 사용하면 멀티 쓰레드를 사용하는 것과 같은 결과를 얻기 때문에 클라이언트 단말(3)의 성능을 높일 수 있다. 또한, 클라이언트 단말(3)이 전반적으로 더 매끄럽게 동작하는 효과가 있다. 워커 자바스크립트(326)는 HTML5가 제공하는 것으로, 다른 표준 웹 프로토콜 또는 추후 등장하는 다른 표준 웹 프로토콜이라 할지라도 그 기능이 유사하면 대체 가능하다.Referring to FIG. 9, a cloud streaming client.js JavaScript file executed by the
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The embodiments of the present invention have been described above. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.
1: 네트워크 2: 클라우드 스트리밍 웹 서버
3: 클라이언트 단말 20: 서버 프로세서
22: 서버 메모리 30: 단말 프로세서
32: 단말 메모리 34: 웹 클라이언트
200: HTTP 처리부 201: 전송 처리부
202: 사용자 입력 수신 처리부 203: 소프트웨어 실행 처리부
205: 인코딩부 206: 패킷 처리부
207: 다중화부 208: 서비스 품질 조절부
220: 실행 소프트웨어 300: 웹 클라이언트 실행부
301: 자바스크립트 실행부 302: 수신 처리부
303: 사용자 입력 전송 처리부 305: 디코딩부
306: 렌더링부 307: 역 다중화부
308: 웹 워커 320: 코덱 자바스크립트
322: 렌더링 자바스크립트 324: 역 다중화 자바스크립트
326: 워커 자바스크립트1: Network 2: Cloud Streaming Web Server
3: client terminal 20: server processor
22: server memory 30: terminal processor
32: terminal memory 34: web client
200: HTTP processing unit 201:
202: user input reception processing section 203: software execution processing section
205: encoding unit 206: packet processing unit
207: multiplexer 208: service quality controller
220: Execution software 300: Web client execution part
301: JavaScript execution unit 302: Reception processing unit
303: User input transmission processing unit 305:
306: Rendering unit 307: Demultiplexing unit
308: Web Walker 320: Codec JavaScript
322: Rendering JavaScript 324: Demultiplexing JavaScript
326: Walker JavaScript
Claims (6)
상기 프로세서를 통해 실행되는 명령을 포함한 데이터가 저장되는 메모리; 를 포함하며,
상기 프로세서는
클라이언트 단말에 모바일 앱이나 프로그램을 별도로 설치할 필요가 없이, 클라이언트 단말에서 기본으로 제공되거나 설치된 웹 브라우저 또는 하이브리드 앱인 웹 클라이언트로부터 서버 접속을 위한 HTTP 요청을 수신하여 HTML 디폴트 파일을 포함한 HTTP 응답을 웹 클라이언트에 전송하는 HTTP 처리부;
웹 클라이언트의 HTML 디폴트 파일의 요청에 따라 멀티 쓰레드를 위한 워커 자바스크립트 파일을 전송하고, 웹 클라이언트에서 워커 자바스크립트 파일을 실행하면 실행된 워커 자바스크립트 파일로부터 웹 소켓을 통한 접속 요청을 수신하여 소프트웨어 실행 결과를 웹 소켓을 통해 웹 클라이언트에 스트리밍 전송하는 전송 처리부;
실행된 워커 자바스크립트 파일로부터 웹 소켓을 통해 사용자 입력을 수신하는 사용자 입력 수신 처리부;
소프트웨어를 실행하고 소프트웨어 실행 결과를 상기 전송 처리부에 전달하며 사용자 입력 수신 처리부로부터 사용자 입력을 전달받아 이를 실행 소프트웨어에 반영하는 소프트웨어 실행 처리부; 및
다수의 웹 소켓을 이용하여 클라이언트 단말과 통신하는 경우 실행 화면 및 오디오를 분리하여 각각 인코딩하는 인코딩부;
를 포함하는 것을 특징으로 하는 클라우드 스트리밍 웹 서버.A processor; And
A memory for storing data including instructions executed by the processor; / RTI >
The processor
It is not necessary to install a mobile application or program separately on the client terminal, but it receives an HTTP request for accessing the server from a client terminal, which is provided as a basic or installed web browser or a hybrid application, and transmits an HTTP response including the HTML default file to the web client An HTTP processing unit for transmitting;
It sends a worker JavaScript file for multithread according to the request of the HTML default file of the web client. When the web client executes the worker javascript file, it receives the connection request through the web socket from the executed worker javascript file and executes the software A transmission processing unit for streaming the result to the web client through the web socket;
A user input receiving processing unit for receiving user input from a executed Walker JavaScript file via a web socket;
A software execution processor for executing the software and transferring the result of executing the software to the transmission processor, receiving the user input from the user input reception processor, and reflecting the user input to the execution software; And
An encoding unit for separately encoding an execution screen and audio when communicating with a client terminal using a plurality of web sockets;
The web server comprising:
상기 클라이언트 단말로부터 디코딩 성능 정보를 수신하고 수신된 디코딩 성능 정보를 반영하여 서비스 품질을 조절하는 방식과, 상기 클라이언트 단말에 서비스를 제공할 네트워크의 상태를 반영하여 서비스 품질을 조절하는 방식 중 적어도 하나를 통해 서비스 품질을 조절하는 서비스 품질 조절부;
를 더 포함하는 것을 특징으로 하는 클라우드 스트리밍 웹 서버.The method of claim 1, wherein the cloud streaming web server
A method of receiving decoding performance information from the client terminal and adjusting a service quality by reflecting received decoding performance information and a method of adjusting a service quality by reflecting a state of a network for providing a service to the client terminal, A service quality control unit for controlling the quality of service through the service quality control unit;
Further comprising: means for receiving a request from the web server;
인코딩된 실행 화면 및 오디오를 패킷 처리하는 패킷 처리부; 및
패킷화된 실행 화면 및 오디오를 다중화하는 다중화부; 를 더 포함하는 것을 특징으로 하는 클라우드 스트리밍 웹 서버.2. The apparatus of claim 1, wherein the processor
A packet processing unit for packet-processing the encoded execution picture and audio; And
A multiplexer for multiplexing the packetized execution picture and audio; Further comprising: means for receiving a request from the web server;
상기 웹 클라이언트를 실행하는 프로세서; 및
상기 프로세서를 통해 실행되는 명령을 포함한 데이터가 저장되는 메모리; 를 포함하며,
상기 프로세서는
클라이언트 단말에 모바일 앱이나 프로그램을 별도로 설치할 필요가 없이, 상기 웹 클라이언트를 실행하고 클라우드 스트리밍 웹 서버에 웹 접속을 위한 HTTP 요청을 전송하여 상기 클라우드 스트리밍 웹 서버로부터 HTML 디폴트 파일을 포함한 HTTP 응답을 수신하는 웹 클라이언트 실행부;
HTML 디폴트 파일에 의해 클라우드 스트리밍 웹 서버에 멀티 쓰레드를 위한 워커 자바스크립트 파일을 요청하여 수신하고 수신한 워커 자바스크립트 파일을 웹 클라이언트에서 실행하는 자바스크립트 실행부;
실행된 워커 자바스크립트 파일에 의해 웹 소켓을 이용하여 클라우드 스트리밍 웹 서버에 접속하여 소프트웨어 실행 결과를 스트리밍 수신하는 수신 처리부;
실행된 워커 자바스크립트 파일에 의해 사용자 입력을 클라우드 스트리밍 웹 서버에 전송하는 사용자 입력 전송 처리부;
다수의 웹 소켓을 이용하여 클라우드 스트리밍 웹 서버와 통신하는 경우 클라우드 스트리밍 웹 서버로부터 수신된 실행 화면 및 오디오를 분리하여 각각 디코딩하는 디코딩부; 및
웹 소켓 처리를 위한 쓰레드 기능을 제공하는 웹 워커;
를 포함하는 것을 특징으로 하는 클라이언트 단말.A web client that is a web browser or hybrid application installed or installed as a base in a client terminal;
A processor executing the web client; And
A memory for storing data including instructions executed by the processor; / RTI >
The processor
It is unnecessary to separately install a mobile app or a program on a client terminal, and the web client is executed and an HTTP request for accessing the web is transmitted to the cloud streaming web server, and an HTTP response including an HTML default file is received from the cloud streaming web server A web client execution unit;
A JavaScript execution unit for requesting a web browser for a multi-threaded web server to the cloud streaming web server by an HTML default file and executing the received worker javascript file on the web client;
A reception processor for accessing a cloud streaming web server using a web socket by an executed Walker Javascript file to stream the received software execution result;
A user input transmission processing unit for transmitting user input to a cloud streaming web server by an executed Walker JavaScript file;
A decoder for separating and decoding execution pictures and audio received from a cloud streaming web server when communicating with a cloud streaming web server using a plurality of web sockets; And
A web worker that provides threads for processing web sockets;
And a client terminal.
디코딩된 화면 및 오디오를 렌더링하는 렌더링부; 및
렌더링된 화면 및 오디오를 역 다중화하는 역 다중화부; 를 더 포함하며,
클라우드 스트리밍 웹 서버와 통신하는 웹 소켓이 다수 개이면, 상기 렌더링부는 화면 및 오디오를 분리하여 각각 렌더링하는 것을 특징으로 하는 클라이언트 단말.6. The apparatus of claim 5, wherein the processor
A rendering unit for rendering a decoded picture and audio; And
A demultiplexer for demultiplexing the rendered picture and audio; Further comprising:
Wherein the rendering unit separately separates the screen and the audio when the plurality of web sockets communicating with the cloud streaming web server are present.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160103661A KR101832167B1 (en) | 2016-08-16 | 2016-08-16 | Cloud streaming web server and client terminal using web protocol |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160103661A KR101832167B1 (en) | 2016-08-16 | 2016-08-16 | Cloud streaming web server and client terminal using web protocol |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101832167B1 true KR101832167B1 (en) | 2018-02-26 |
Family
ID=61531353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160103661A KR101832167B1 (en) | 2016-08-16 | 2016-08-16 | Cloud streaming web server and client terminal using web protocol |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101832167B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102194513B1 (en) * | 2019-06-20 | 2020-12-23 | 배재대학교 산학협력단 | Web service system and method using gpgpu based task queue |
KR102310219B1 (en) * | 2021-04-06 | 2021-10-08 | 주식회사 위엔 | Apparatus for enhancementing personal information security and method thereof |
-
2016
- 2016-08-16 KR KR1020160103661A patent/KR101832167B1/en active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102194513B1 (en) * | 2019-06-20 | 2020-12-23 | 배재대학교 산학협력단 | Web service system and method using gpgpu based task queue |
KR102310219B1 (en) * | 2021-04-06 | 2021-10-08 | 주식회사 위엔 | Apparatus for enhancementing personal information security and method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6288594B2 (en) | Desktop cloud-based media control method and device | |
CN108076364B (en) | Adaptive media streaming apparatus and media service apparatus | |
US10165028B2 (en) | Context-aware streaming of digital content | |
US20160029002A1 (en) | Platform-agnostic Video Player For Mobile Computing Devices And Desktop Computers | |
US8656443B2 (en) | Method and system for providing dynamic time slice encoding for complete internet anywhere | |
US11089349B2 (en) | Apparatus and method for playing back and seeking media in web browser | |
US20140052846A1 (en) | Adaptive video streaming over a content delivery network | |
US20180213301A1 (en) | Media playback apparatus and method for synchronously reproducing video and audio on a web browser | |
US10791160B2 (en) | Method and apparatus for cloud streaming service | |
CN102761603A (en) | Webpage flash video redirection method in VDI environment | |
CA2843766A1 (en) | Script-based video rendering | |
JP2010508734A (en) | An architecture for delivering video content in response to remote interaction | |
CN104685873B (en) | Encoding controller and coding control method | |
CN110324721B (en) | Video data processing method and device and storage medium | |
WO2014139269A1 (en) | Method and apparatus for playing and processing videos based on a virtual desktop | |
US10534852B2 (en) | Display system and virtual web device in the cloud | |
WO2015176648A1 (en) | Method and device for transmitting data in intelligent terminal to television terminal | |
EP2804143A1 (en) | System and method for forwarding a graphics command stream | |
KR101931514B1 (en) | Apparatus and method for simultaneous playback and backup of media in a web browser | |
CN104349177A (en) | Method for turning to play multimedia file under desktop cloud, virtual machine and system | |
KR101832167B1 (en) | Cloud streaming web server and client terminal using web protocol | |
CN108337248B (en) | Media playback apparatus and media service apparatus | |
WO2017160404A1 (en) | User input based adaptive streaming | |
CN112350979B (en) | Data transmission method and device | |
WO2016107174A1 (en) | Method and system for processing multimedia file data, player and client |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |