KR102566263B1 - 화면 제공을 위한 서비스 서버 및 그 동작 방법 - Google Patents
화면 제공을 위한 서비스 서버 및 그 동작 방법 Download PDFInfo
- Publication number
- KR102566263B1 KR102566263B1 KR1020210057232A KR20210057232A KR102566263B1 KR 102566263 B1 KR102566263 B1 KR 102566263B1 KR 1020210057232 A KR1020210057232 A KR 1020210057232A KR 20210057232 A KR20210057232 A KR 20210057232A KR 102566263 B1 KR102566263 B1 KR 102566263B1
- Authority
- KR
- South Korea
- Prior art keywords
- display layer
- screen
- web app
- user terminal
- service server
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8173—End-user applications, e.g. Web browser, game
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
일 실시 예에 따른 서비스 서버는, 웹 앱(web app)을 실행하고 렌더링(rendering)하는 브라우저(browser); 컴퓨터로 실행 가능한 명령어들(computer-executable instructions)이 저장된 메모리; 및 메모리에 억세스(access)하여 명령어들을 실행하는 프로세서를 포함하고, 프로세서는 사용자 단말로부터 웹 앱(web app) 실행 요청을 수신하고, 브라우저로 웹 앱의 실행을 요청하고, 브라우저에서 렌더링된 이미지를 캡쳐(capture)하여 사용자 단말로 웹 앱에 대한 웹 앱 화면을 제공할 수 있다. 사용자 단말은 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어 위에 생성한 타겟 디스플레이 레이어에 서비스 서버로부터 수신한 웹 앱 화면을 디스플레이할 수 있다. 타겟 디스플레이 레이어는 사용자 단말에서 적어도 하나의 디스플레이 레이어 위에 중첩될 수 있다. 그 외에도 다양한 실시 예들이 가능할 수 있다.
Description
본 개시의 다양한 실시 예들은 서비스 서버 및 그의 동작 방법에 관한 것으로, 보다 상세하게는 사용자 단말로 화면을 제공하는 서비스 서버, 디스플레이 레이어를 통해 중첩하여 화면을 디스플레이하는 사용자 단말 및 그 동작 방법에 관한 것이다.
최근 클라우드 스트리밍(Cloud streaming) 기술의 발전으로 저사양의 사용자 단말로 고사양의 어플리케이션을 구동할 수 있는 가상화 기술이 게임 서비스를 중심으로 많이 제안되고 있다.
관련 선행기술로, 한국 등록특허공보 10-1795537호(발명의 명칭: 네트워크 환경 적응형 클라우드 스트리밍 서비스 제공 시스템 및 그 방법, 출원인: 경북대학교 산학협력단)가 있다. 해당 등록특허공보에는 클라우드 서버에서 비디오 서버와 클라우드 서버 간의 네트워크 상태 및 클라우드 서버와 사용자 단말 간의 네트워크 상태를 모두 고려하여 사용자 단말로 전송할 비디오 품질을 설정함으로써, 사용자 단말을 통해 출력되는 비디오의 재생 품질을 향상시키는 네트워크 환경 적응형 클라우드 스트리밍 시스템 및 그 방법이 개시된다.
클라우드 스트리밍 기반 서비스의 경우 다수의 사용자에게 서비스를 제공하므로, 접속하고 있는 사용자들의 세션(session)을 관리하는 것이 서비스 품질에 중요한 영향을 미칠 수 있다.
사용자가 클라우드 서버와 세션 연결을 유지할 필요가 없는 경우에도 연결이 유지된다면 서버에서 리소스의 낭비가 발생하고, 보다 많은 사람들에게 서비스가 제공되지 못할 수 있다.
웹 앱(web app)에 대한 클라우드 UI(user interface)가 전체 화면으로 제공되는 경우, 사용자 단말에서는 기존 화면이 가려질 수 있다.
다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.
일 실시 예에 따르면, 사용자 단말로 화면을 제공하는 서비스 서버는 웹 앱(web app)을 실행하고 렌더링(rendering)하는 브라우저(browser); 컴퓨터로 실행 가능한 명령어들(computer-executable instructions)이 저장된 메모리; 및 상기 메모리에 억세스(access)하여 상기 명령어들을 실행하는 프로세서를 포함할 수 있다.
일 실시 예에 따르면, 상기 프로세서는 상기 사용자 단말로부터 웹 앱(web app) 실행 요청을 수신하고, 상기 브라우저로 상기 웹 앱의 실행을 요청하고, 상기 브라우저에서 렌더링된 이미지를 캡쳐(capture)하여 상기 사용자 단말로 상기 웹 앱에 대한 웹 앱 화면을 제공할 수 있다.
일 실시 예에 따르면, 상기 사용자 단말은 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어 위에 생성한 타겟 디스플레이 레이어에 상기 서비스 서버로부터 수신한 상기 웹 앱 화면을 디스플레이할 수 있다.
일 실시 예에 따르면, 상기 타겟 디스플레이 레이어는 상기 사용자 단말에서 상기 적어도 하나의 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 상기 프로세서는, 상기 웹 앱 화면 중 이전 웹 앱 화면에서 변경된 영역의 이미지를 캡쳐(capture)하여 상기 사용자 단말로 제공할 수 있다.
일 실시 예에 따르면, 상기 사용자 단말에서 네이티브 앱(native app) 실행 중 상기 서비스 서버로부터 수신한 상기 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 상기 타겟 디스플레이 레이어는 상기 네이티브 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 상기 사용자 단말에서 상기 웹 앱과 다른 웹 앱 화면을 디스플레이 중 상기 서비스 서버로부터 수신한 상기 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 상기 타겟 디스플레이 레이어는 상기 다른 웹 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 상기 액세스 정보는 사용자 단말 정보, 상기 사용자 단말로 이전에 제공된 웹 앱(web app)에 대한 정보, 상기 사용자 단말로 제공된 상기 앱 각각의 최종 화면에 대한 화면 정보 및 상기 최종 화면 내 포인터의 위치에 대한 포커싱 정보를 포함하고, 상기 화면 정보는 초기 화면, 상기 초기 화면에서의 입력에 따른 1차 화면 및 상기 1차 화면에서의 입력에 따른 2차 화면 중 어느 하나에 대한 식별정보일 수 있다.
일 실시 예에 따르면, 사용자 단말은 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어를 포함하는 디스플레이 모듈; 웹 앱(web app)을 실행하고 상기 웹 앱 화면을 제공하는 서비스 서버와의 통신을 위한 통신 모듈; 컴퓨터로 실행 가능한 명령어들(computer-executable instructions)이 저장된 메모리; 및 상기 메모리에 억세스(access)하여 상기 명령어들을 실행하는 프로세서를 포함할 수 있다.
일 실시 예에 따르면, 상기 프로세서는 상기 서비스 서버로 웹 앱(web app) 실행 요청을 전송하고, 상기 서비스 서버로부터 상기 웹 앱에 대한 웹 앱 화면을 수신하고, 상기 적어도 하나의 디스플레이 레이어 위에 생성한 타겟 디스플레이 레이어에 상기 웹 앱 화면을 디스플레이하고, 상기 타겟 디스플레이 레이어는 상기 사용자 단말에서 상기 적어도 하나의 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 상기 웹 앱 화면은, 상기 서비스 서버에서 웹 앱 화면 중 이전 웹 앱 화면에서 변경된 영역의 이미지를 캡쳐(capture)하여 상기 사용자 단말로 제공된 것일 수 있다.
일 실시 예에 따르면, 상기 사용자 단말에서 네이티브 앱(native app) 실행 중 상기 서비스 서버로부터 수신한 상기 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 상기 타겟 디스플레이 레이어는 상기 네이티브 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 상기 사용자 단말에서 상기 웹 앱과 다른 웹 앱 화면을 디스플레이 중 상기 서비스 서버로부터 수신한 상기 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 상기 타겟 디스플레이 레이어는 상기 다른 웹 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 상기 액세스 정보는, 사용자 단말 정보, 상기 사용자 단말로 이전에 제공된 웹 앱(web app)에 대한 정보, 상기 사용자 단말로 제공된 상기 앱 각각의 최종 화면에 대한 화면 정보 및 상기 최종 화면 내 포인터의 위치에 대한 포커싱 정보를 포함하고, 상기 화면 정보는 초기 화면, 상기 초기 화면에서의 입력에 따른 1차 화면 및 상기 1차 화면에서의 입력에 따른 2차 화면 중 어느 하나에 대한 식별정보일 수 있다.
일 실시 예에 따르면, 화면 제공 방법은 사용자 단말로부터 웹 앱(web app)의 실행 요청을 수신하는 동작; 브라우저(browser)로 상기 웹 앱의 실행을 요청하는 동작; 및 상기 브라우저에서 렌더링된 이미지를 캡쳐(capture)하여 상기 사용자 단말로 상기 웹 앱에 대한 웹 앱 화면을 제공하는 동작을 포함할 수 있다.
일 실시 예에 따르면, 상기 사용자 단말은 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어 위에 생성한 타겟 디스플레이 레이어에 상기 웹 앱 화면을 디스플레이할 수 있다.
일 실시 예에 따르면, 상기 타겟 디스플레이 레이어는 상기 사용자 단말에서 상기 적어도 하나의 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 상기 브라우저에서 렌더링된 이미지를 캡쳐(capture)하여 상기 사용자 단말로 상기 웹 앱 화면을 제공하는 동작은, 상기 웹 앱 화면 중 이전 웹 앱 화면에서 변경된 영역의 이미지를 캡쳐(capture)하여 상기 사용자 단말로 제공하는 동작을 포함할 수 있다.
일 실시 예에 따르면, 상기 사용자 단말에서 네이티브 앱(native app) 실행 중 상기 서비스 서버로부터 수신한 상기 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 상기 타겟 디스플레이 레이어는 상기 네이티브 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 상기 사용자 단말에서 상기 웹 앱과 다른 웹 앱 화면을 디스플레이 중 상기 서비스 서버로부터 수신한 상기 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 상기 타겟 디스플레이 레이어는 상기 다른 웹 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 상기 액세스 정보는, 사용자 단말 정보, 상기 사용자 단말로 이전에 제공된 웹 앱(Web app)에 대한 정보, 상기 사용자 단말로 제공된 상기 앱 각각의 최종 화면에 대한 화면 정보 및 상기 최종 화면 내 포인터의 위치에 대한 포커싱 정보를 포함하고, 상기 화면 정보는 초기 화면, 상기 초기 화면에서의 입력에 따른 1차 화면 및 상기 1차 화면에서의 입력에 따른 2차 화면 중 어느 하나에 대한 식별정보일 수 있다.
일 실시 예에 따르면, 사용자 단말의 동작 방법은, 서비스 서버로 웹 앱(web app) 실행 요청을 전송하는 동작; 상기 서비스 서버로부터 상기 웹 앱에 대한 웹 앱 화면을 수신하는 동작; 및 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어 위에 생성한 타겟 디스플레이 레이어에 상기 웹 앱 화면을 디스플레이하는 동작을 포함할 수 있다.
일 실시 예에 따르면, 상기 타겟 디스플레이 레이어는 상기 사용자 단말에서 상기 적어도 하나의 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 상기 사용자 단말에서 네이티브 앱(native app) 실행 중 상기 서비스 서버로부터 수신한 상기 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 상기 타겟 디스플레이 레이어는 상기 네이티브 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 상기 사용자 단말에서 상기 웹 앱과 다른 웹 앱 화면을 디스플레이 중 상기 서비스 서버로부터 수신한 상기 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 상기 타겟 디스플레이 레이어는 상기 다른 웹 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩될 수 있다.
일 실시 예에 따르면, 화면 제공 시스템은, 사용자 단말로부터 웹 앱(web app) 실행 요청을 수신하고, 브라우저(browser)로 상기 웹 앱의 실행을 요청하고, 상기 브라우저에서 렌더링된 이미지를 캡쳐(capture)하여 상기 사용자 단말로 상기 웹 앱에 대한 웹 앱 화면을 제공하는 서비스 서버; 및 상기 서비스 서버로 상기 웹 앱 실행 요청을 전송하고, 상기 서비스 서버로부터 상기 웹 앱 화면을 수신하고, 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어 위에 생성한 타겟 디스플레이 레이어에 상기 웹 앱 화면을 디스플레이하는 사용자 단말을 포함할 수 있다.
일 실시 예에 따르면, 상기 타겟 디스플레이 레이어는 상기 사용자 단말에서 상기 적어도 하나의 디스플레이 레이어 위에 중첩될 수 있다.
다양한 실시 예에 따르면, 서비스 서버는 사용자 단말로 화면을 제공함에 있어 액세스(access) 정보를 활용하여 보다 빠르게 사용자 단말의 이전 접속 화면을 제공할 수 있다.
다양한 실시 예에 따르면, 서비스 서버는 화면 가상화를 통해 사용자 단말로 화면 제공 중 수신된 사용자의 키 입력 신호의 유형을 결정하고, 유형에 따라 사용자 단말과의 세션 연결을 유지할지 결정하여 다수 사용자의 동시 접속 환경을 고려한 서비스를 제공할 수 있다.
다양한 실시 예에 따르면, 서비스 서버는 투명화 처리된 부분이 적어도 일부 포함되는 웹 앱 화면을 사용자 단말로 전송하고, 사용자 단말에서는 투명화 처리된 부분이 적어도 일부 포함된 웹 앱 화면을 최상단 디스플레이 레이어에 디스플레이하여 기존 화면에 중첩된 UI가 제공될 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 다양한 실시 예들에 따른 서비스 서버의 구성도이다.
도 2는 다양한 실시 예들에 따른 사용자 단말의 구성도이다.
도 3은 다양한 실시 예들에 따른 세션 서버를 통해 사용자 단말과 서비스 서버 간 세션이 연결되는 동작을 설명하기 위한 도면이다.
도 4a 및 도 4b는 다양한 실시 예들에 따른 액세스 정보 데이터베이스에 포함된 화면 정보를 설명하기 위한 도면이다.
도 5는 다양한 실시 예들에 따른 웹 앱 화면을 설명하기 위한 도면이다.
도 6 및 도 7은 다양한 실시 예들에 따른 네이티브 앱(native app) 실행 중 웹 앱 화면이 제공되는 동작을 설명하기 위한 도면이다.
도 8 및 도 9는 다양한 실시 예들에 따른 웹 앱(web app) 화면 제공 중 다른 웹 앱 화면이 제공되는 동작을 설명하기 위한 도면이다.
도 10은 다양한 실시 예들에 따른 화면 제공 방법을 설명하기 위한 흐름도이다.
도 11은 다양한 실시 예들에 따른 사용자 단말의 동작 방법을 설명하기 위한 흐름도이다.
도 2는 다양한 실시 예들에 따른 사용자 단말의 구성도이다.
도 3은 다양한 실시 예들에 따른 세션 서버를 통해 사용자 단말과 서비스 서버 간 세션이 연결되는 동작을 설명하기 위한 도면이다.
도 4a 및 도 4b는 다양한 실시 예들에 따른 액세스 정보 데이터베이스에 포함된 화면 정보를 설명하기 위한 도면이다.
도 5는 다양한 실시 예들에 따른 웹 앱 화면을 설명하기 위한 도면이다.
도 6 및 도 7은 다양한 실시 예들에 따른 네이티브 앱(native app) 실행 중 웹 앱 화면이 제공되는 동작을 설명하기 위한 도면이다.
도 8 및 도 9는 다양한 실시 예들에 따른 웹 앱(web app) 화면 제공 중 다른 웹 앱 화면이 제공되는 동작을 설명하기 위한 도면이다.
도 10은 다양한 실시 예들에 따른 화면 제공 방법을 설명하기 위한 흐름도이다.
도 11은 다양한 실시 예들에 따른 사용자 단말의 동작 방법을 설명하기 위한 흐름도이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
<서비스 서버 및 사용자 단말>
도 1은 다양한 실시 예들에 따른 서비스 서버의 구성도이다.
도 1을 참조하면, 화면 제공 시스템(101) 내에서 네트워크를 통해 사용자 단말(200)로 서비스를 제공하는 서비스 서버(100)의 구성도가 도시된다. 일 실시 예에 따르면, 서비스 서버(100)는 네트워크를 통해 사용자 단말(200)로 사용자 인터페이스(UI: user interface)를 가상화한 화면을 제공할 수 있다. 일 실시 예에 따르면, 서비스 서버(100)는 사용자 단말 각각에 대한 액세스(access) 정보를 저장하는 액세스 정보 데이터베이스(130)와 컴퓨터로 실행가능한 명령어들(computer-executable instructions)이 저장된 메모리(140), 웹 앱(web app)을 실행하고 렌더링(rendering)하는 브라우저(browser)(150) 및 메모리(140)에 억세스하여 명령어들을 실행하는 프로세서(120)를 포함할 수 있다.
일 실시 예에 따르면, 서비스 서버(100)는 클라우드 스트리밍(cloud streaming) 방식으로 사용자 단말(200)로 화면을 제공하고, 사용자 단말(200)에서는 입력 및 출력만 이뤄지게 함으로써 사용자 단말(200)의 성능에 관계없이 고사양의 서비스를 제공할 수 있다. 구체적으로, 사용자 단말(200)과 네트워크를 통해 연결된 서비스 서버(100)에서 실행 화면을 구현하여 사용자 단말(200)에서 실행된 것과 같은 사용자 경험이 제공될 수 있다. 일 실시 예에 따르면, 서비스 서버(100)는 사용자 인터페이스(UI) 어플리케이션, 게임 어플리케이션 등 다양한 어플리케이션을 실행하고, 그 실행 화면을 캡쳐(capture)하여 캡쳐 이미지를 생성한 후, 이를 인코딩하여 스트리밍 방식으로 사용자 단말(200)로 전송할 수 있다. 서비스 서버(100)는 사용자 단말(200)로부터 전송되는 사용자 입력에 따라 어플리케이션을 구동시키며, 변경된 실행 화면을 캡쳐하여 스트리밍 방식으로 사용자 단말(200)로 전송할 수 있다.
도 1에 도시되지는 않았지만, 서비스 서버(100)는 미디어 플랫폼과 연동하여 사용자 단말(200)로 컨텐츠를 제공할 수 있다. 미디어 플랫폼은 서비스 서버(100)와는 별도로 소정의 컨텐츠를 스트리밍 방식으로 제공할 수 있다. 예를 들어, 실시간 방송 혹은 VOD와 같은 동영상으로 이루어진 컨텐츠가 제공될 수 있고, 이러한 미디어 플랫폼은 서비스 서버(100)와는 다른 서비스 제공자에 의해 운영될 수 있다.
다양한 실시 예들에 따르면, 사용자 단말(200)로부터 전송된 사용자 입력에 따라 서비스 서버(100)에서 구동되는 어플리케이션에는 웹 앱(web app) 및 네이티브 앱(native app)이 포함될 수 있다. 웹 앱(web app)은 브라우저(150)를 통해 실행되고, 네이티브 앱(native app)은 사용자 단말(200)에 최적화된 언어로 개발되어 사용자 단말(200)에서 실행된다는 점에 차이가 있을 수 있다.
일 실시 예에 따르면, 사용자 단말(200)로부터 웹 앱 실행 요청이 수신되는 경우 프로세서(120)는 브라우저(150)로 웹 앱 실행을 요청하고, 브라우저(150)에서 렌더링된 이미지에 대해 프로세서(120)가 캡쳐하고, 캡쳐 이미지를 사용자 단말(200)로 스트리밍 방식으로 제공할 수 있다.
일 실시 예에 따르면, 사용자 단말(200)로부터 네이티브 앱의 실행 요청이 수신되는 경우 프로세서(120)는 네이티브 앱 실행과 관련된 정보를 사용자 단말(200)로 전송하고, 사용자 단말(200)에서 네이티브 앱이 실행될 수 있다. 예를 들어, 사용자 단말(200)로부터 VOD 컨텐츠 재생 요청이 수신된 경우, 프로세서(120)는 해당 VOD 컨텐츠 정보를 미디어 플랫폼(미도시) 등으로부터 수신하여 사용자 단말(200)로 전송하고, 사용자 단말(200)에서 네이티브 앱인 VOD 플레이어를 통해 해당 VOD 컨텐츠가 재생될 수 있다.
일 실시 예에 따른 네트워크는 사용자 단말(200)과 서비스 서버(100) 간 연결하여 데이터를 전달하기 위한 구성으로, 다양한 형태의 통신망으로 구현될 수 있다. 예컨대, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신 방식 또는 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coaxial Cable), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신 방식이 이용될 수 있다. 또한, 상술한 통신 방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.
일 실시 예에 따르면, 사용자 단말(200)은 네트워크를 통해 서비스 서버(100)와 다양한 정보를 송수신할 수 있는 장치를 의미하며, 정보 송수신을 위한 클라우드 UI 클라이언트(cloud UI client), 프로그램 및 프로토콜을 저장하는 메모리(미도시), 프로그램을 실행하기 위한 프로세서(미도시) 등을 포함할 수 있다. 일 실시 예에 따르면, 사용자 단말(200)은 서비스 서버(100) 또는 미디어 플랫폼(미도시)와 통신하기 위한 통신 모듈, 사용자로부터 정보를 입력 받기 위한 입력 모듈, 서비스 서버(100) 또는 미디어 플랫폼으로부터 제공 받은 화면 또는 컨텐츠를 디스플레이하기 위한 디스플레이 모듈 등을 포함할 수 있다. 다양한 실시 예에 따른 사용자 단말(200)의 구성은 도 2에서 상세히 설명된다.
일 실시 예에 따르면, 프로세서(120)는 사용자 단말(200)로부터 수신한 요청에 기초하여 브라우저(150)로 웹 앱 실행을 요청할 수 있고, 브라우저(150)는 프로세서(120)로부터의 웹 앱(web app) 실행 요청에 따라 웹 앱을 실행할 수 있다. 일 실시 예에 따르면, 브라우저(150)는 웹 어플리케이션의 데이터, 예를 들어 HTML 기반의 웹 코드를 렌더링 및 파싱(parsing)할 수 있고, 프로세서(120)는 브라우저(150)가 렌더링한 이미지를 실시간으로 캡쳐(capture)하고, 캡쳐 이미지를 인코딩하여 스트리밍 방식으로 사용자 단말(200)로 제공할 수 있다.
일 실시 예에 따르면, 서비스 서버(100)는 메모리(140)에 프로세서(120)의 동작을 위한 명령어들뿐 아니라 사용자 단말(200) 각각에 대한 액세스(access) 정보를 저장하는 액세스 정보 데이터베이스(130)도 포함할 수 있다. 액세스 정보 데이터베이스(130)는 도 1에서 서비스 서버(100)에 포함되는 것으로 도시되었지만, 이에 제한되는 것은 아니며 서비스 서버(100)와 별도의 서버에 포함되도록 구현될 수 있다.
일 실시 예에 따르면, 프로세서(120)는 사용자 단말(200)로부터 웹 앱(web app) 실행 요청을 수신하는 경우 액세스 정보 데이터베이스(130)를 참조하여 사용자 단말(200)로 실행 요청에 대응하는 화면을 제공할 수 있다. 일 실시 예에 따르면, 액세스 정보 데이터베이스(130)에는 사용자 단말 정보(132), 사용자 단말로 이전에 제공되었던 웹 앱에 대한 정보(134), 사용자 단말로 제공되었던 앱 각각에서의 최종 화면에 대한 화면 정보(또는 ID)(136), 최종 화면 내 포인터의 위치에 대한 포커싱 정보(또는 ID)(138)가 포함될 수 있다. 다양한 실시 예에 따른 화면 정보(136)에 대해 도 4a 및 도 4b에서 상세히 설명된다.
일 실시 예에 따르면, 사용자 단말 정보(132), 앱 정보(134), 화면 정보(136) 및 포커싱 정보(138)는 각각에 대해 연동되어 저장될 수 있다. 즉, 사용자 단말 하나에 대해 이전에 접속했던 웹 앱 목록이 맵핑(mapping)되고, 각 웹 앱에 대한 최종 화면 정보가 맵핑되고, 각 최종 화면에 대한 포커싱 정보가 맵핑되어 저장될 수 있다.
예를 들어, 사용자 단말(200)로부터 홈 앱 실행 요청이 수신된 경우, 프로세서(120)는 사용자 단말 정보(132)를 참조하여 사용자 단말(200)로 이전에 제공되었던 앱 정보(134)를 확인할 수 있고, 사용자 단말(200)로 이전에 홈 앱이 제공된 바 있다면 홈 앱 내 화면 중 제공되었던 최종 화면(예: 홈 앱의 메인화면)에 대한 정보(136) 및 최종 화면 내 포인터의 위치(예: 홈 앱의 메인화면 내 화살표의 좌표)에 대한 포커싱 정보(138)를 확인할 수 있다. 프로세서(120)는 이에 기초하여 브라우저(150)로 홈 앱의 메인화면을 실행하라고 요청할 수 있고, 브라우저(150)에서 렌더링된 이미지를 캡쳐하여 사용자 단말(200)로 화면을 제공할 수 있다.
다양한 실시 예들에 따른 액세스 정보에 기초한 화면 제공으로 사용자는 보다 다이렉트하게 이전에 접속했던 화면에 액세스할 수 있고, 서비스 서버(100)는 리소스를 줄일 수 있다.
일 실시 예에 따르면, 프로세서(120)는 브라우저(150)에서 실행된 웹 앱의 렌더링된 이미지 전부가 아닌, 변경된 영역에 대해서만 캡쳐하여 전송할 수 있다. 구체적으로, 프로세서(120)는 브라우저(150)에서 렌더링된 이미지에 대해 이전 화면과 현재 화면을 분할(예를 들어, 40개의 타일로 분할)하여 비교하고, 변경된 영역의 이미지만 전송할 수 있다.
일 실시 예에 따르면, 프로세서(120)는 사용자 단말(200)로 가상화 화면 제공 중 사용자 단말(200)로부터 수신된 요청의 유형에 따라 다르게 동작할 수 있다. 예를 들어, 네이티브 앱 실행 요청 및 다른 웹 앱 실행 요청이 브라우저(150)에 의해 결정될 수 있다. 다양한 실시 예들에 따른 서비스 서버(100)는 실행 요청에 따라 사용자 단말(200)과의 세션 연결 유지 여부를 결정하여 다수 사용자의 동시 접속 환경을 고려한 서비스를 제공할 수 있다.
일 실시 예에 따르면, 네이티브 앱(native app) 실행 요청이 수신된 경우 프로세서(120)는 사용자 단말(200)에 대응하는 액세스(access) 정보를 액세스 정보 데이터베이스(130)에 저장하고, 사용자 단말로 네이티브 앱 실행 신호를 전송하고, 사용자 단말(200)과의 세션(session) 연결을 중단할 수 있다. 사용자 단말(200)에서 네이티브 앱 실행이 종료되고 다시 서비스 서버(100)로 세션 연결 요청이 전송되면, 프로세서(120)는 사용자 단말과 세션을 연결하고, 사용자 단말(200)에 대응하는 액세스 정보에 기초하여 사용자 단말(200)로 화면을 제공할 수 있다.
일 실시 예에 따르면, 서비스 서버(100)에서 사용자 단말(200)로 제공 중인 웹 앱과 다른 웹 앱(web app)에 대한 실행 요청이 수신된 경우 프로세서(120)는 사용자 단말(200)에 대응하는 액세스(access) 정보를 저장하고, 사용자 단말로 다른 웹 앱 실행 신호를 전송하고, 사용자 단말(200)과의 세션(session) 연결을 중단할 수 있다. 세션 연결 중단 후 사용자 단말(200)로부터 다시 서비스 서버(100)로 해당 다른 웹 앱의 실행 요청이 수신되면, 프로세서(120)는 사용자 단말과 세션을 연결하고, 사용자 단말(200)에 대응하는 액세스 정보에 기초하여 사용자 단말(200)로 화면을 제공할 수 있다.
도 2는 다양한 실시 예들에 따른 사용자 단말의 구성도이다.
도 2를 참조하면, 화면 제공 시스템(101) 내에서 네트워크를 통해 서비스 서버(100)로부터 서비스를 제공 받는 사용자 단말(200)의 구성도가 도시된다.
일 실시 예에 따르면, 사용자 단말(200)은 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어(예: 제1 디스플레이 레이어(251), 제2 디스플레이 레이어(252) 및 제3 디스플레이 레이어(253) 등)를 포함하는 디스플레이 모듈(250), 웹 앱(web app)을 실행하고 웹 앱 화면을 제공하는 서비스 서버(100)와의 통신을 위한 통신 모듈(210); 컴퓨터로 실행 가능한 명령어들(computer-executable instructions)이 저장된 메모리(240); 및 메모리에 억세스(access)하여 명령어들을 실행하는 프로세서(220)를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(220)는 서비스 서버(100)로 웹 앱(web app) 실행 요청을 전송하고, 도 1에서 설명한 바와 같이 서비스 서버에서 캡쳐(capture)된 웹 앱 화면을 수신할 수 있다.
일 실시 예에 따르면, 프로세서(220)는 웹 앱 화면을 수신하고 디스플레이 모듈(250)의 디스플레이 레이어들 위에 새로 타겟 디스플레이 레이어를 생성할 수 있다. 예를 들어, 제1 디스플레이 레이어(251)는 중첩된 제2 디스플레이 레이어(252) 및 제3 디스플레이 레이어(253) 위에 새로 생성된 타겟 디스플레이 레이어일 수 있다. 프로세서(220)는 디스플레이 레이어의 최상단에 생성된 타겟 디스플레이 레이어(예: 제1 디스플레이 레이어(251))에 웹 앱 화면을 디스플레이할 수 있다. 일 실시 예에 따르면, 타겟 디스플레이 레이어(예: 제1 디스플레이 레이어(251))는 사용자 단말(200)에서 디스플레이 레이어(예: 제2 디스플레이 레이어(252) 및 제3 디스플레이 레이어(253)) 위에 중첩되어 디스플레이될 수 있다.
일 실시 예에 따르면, 서비스 서버(100)로부터 수신한 웹 앱 화면에 투명화 처리된 부분이 포함될 수 있다. 예를 들어 '검색' 앱과 같이 전체 화면이 아닌 일부 화면에만 UI가 제공되는 경우, UI가 제공되지 않는 부분은 투명화 처리가 된 것일 수 있다. 투명화 처리가 된 웹 앱 화면이 사용자 단말(200)의 디스플레이 모듈(250)을 통해 출력중인 화면에 오버레이(overlay)되어 제공된다면 사용자 편의성이 향상될 수 있다. 다양한 실시 예에 따른 웹 앱 화면에 대해서 도 5에서 상세히 설명된다.
일 실시 예에 따르면, 사용자 단말(200)에서 네이티브 앱(native app) 실행 중 서비스 서버(100)로부터 수신한 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 타겟 디스플레이 레이어(예: 제1 디스플레이 레이어(251))는 네이티브 앱 화면이 디스플레이된 디스플레이 레이어(예: 제2 디스플레이 레이어(252)) 위에 중첩될 수 있다.
예를 들어, 사용자가 사용자 단말(200)로 VOD 플레이어를 실행하여 VOD 컨텐츠를 감상하다가 서비스 서버(100)로 검색 앱 실행을 요청(예: 사용자 단말(200)이 스마트 tv의 셋톱박스인 경우, 리모콘의 검색 버튼 클릭 등) 하고, 서비스 서버(100)로부터 수신한 검색 앱 화면에 적어도 일부 부분이 투명화 처리되어 있을 수 있다. 프로세서(220)는 VOD 컨텐츠 및 VOD 플레이어 UI가 디스플레이되는 제3 디스플레이 레이어(253) 및 제2 디스플레이 레이어(252) 위에 제1 디스플레이 레이어(251)를 생성하고, 제1 디스플레이 레이어(251)에 검색 앱 화면을 디스플레이할 수 있다. 디스플레이 레이어들(251, 252, 253)은 중첩되므로, 사용자에게 VOD 플레이어 UI 위에 검색 앱 UI가 중첩된 형태로 제공될 수 있다. 네이티브 앱 실행 중 투명화 처리된 웹 앱 화면이 제공되는 동작은 도 6 및 도 7에서 상세히 설명된다.
일 실시 예에 따르면, 사용자 단말(200)에서 웹 앱(web app) 화면을 제공 받던 중 서비스 서버(100)로부터 수신한 다른 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 타겟 디스플레이 레이어(예: 제1 디스플레이 레이어(251))는 기존 웹 앱 화면이 디스플레이된 디스플레이 레이어(예: 제2 디스플레이 레이어(252)) 위에 중첩될 수 있다.
예를 들어, 사용자가 사용자 단말(200)로 키즈 웹 앱을 실행하여 서비스 서버로부터 키즈 웹 앱 화면을 제공 받는 도중 서비스 서버(100)로 검색 앱 실행을 요청하는 경우, 사용자 단말(200)에는 서비스 서버(100)로부터 수신한 검색 앱 화면에 적어도 일부 부분이 투명화 처리되어 있을 수 있다. 프로세서(220)는 키즈 웹 앱 화면이 디스플레이되는 제2 디스플레이 레이어(252) 위에 제1 디스플레이 레이어(251)를 생성하고, 제1 디스플레이 레이어(251)에 검색 앱 화면을 디스플레이할 수 있다. 디스플레이 레이어들(251, 252)은 중첩되므로, 사용자에게 키즈 웹 앱 UI 위에 검색 앱 UI가 중첩된 형태로 디스플레이될 수 있다. 다른 웹 앱 화면이 디스플레이되고 있는 도중에 투명화 처리된 웹 앱 화면이 제공되는 동작은 도 8 및 도 9에서 상세히 설명된다.
일 실시 예에 따르면, 도 1에서 설명한 바와 같이 사용자 단말(200)은 네트워크를 통해 서비스 서버(100)와 다양한 정보를 송수신할 수 있는 장치를 의미하며, 정보 송수신을 위한 클라우드 UI 클라이언트(cloud UI client), 사용자로부터 정보를 입력 받기 위한 입력 모듈, 인코딩된 스트리밍 데이터를 수신하여 디코딩하기 위한 디코딩 모듈, 디코딩된 데이터를 렌더링하기 위한 렌더링 모듈 등을 더 포함할 수 있다.
일 실시 예에 따르면, 사용자 단말(200)이 스마트 tv의 셋톱박스인 경우, 리모콘을 통해 입력된 사용자 입력을 수신하여 서비스 서버(100)로 전송할 수 있다. 사용자 단말(200)은 사용자 입력을 통해 서비스 서버(100)로 요청을 전송하고, 이에 대응하여 서비스 서버(100)로부터 스트리밍 데이터를 수신하고 재생할 수 있다. 사용자 단말(200)은 다양한 형태로 구현될 수 있으며, 예를 들어 스마트폰(smart phone), 태블릿(tablet), PDA(personal digital assistants), PMP(portable multimedia player), 스마트 TV(smart tv)의 셋톱박스(set-top box), 데스크탑 컴퓨터, 랩탑 컴퓨터 등일 수 있다.
도 3은 다양한 실시 예들에 따른 세션 서버를 통해 사용자 단말(200)과 서비스 서버(100) 간 세션이 연결되는 동작을 설명하기 위한 도면이다.
도 3을 참조하면, 도 1에서 설명한 서비스 서버(100)가 사용자 단말(200)과 세션 서버(300)를 통해 연결될 수 있다. 일 실시 예에 따르면, 세션 서버(300)는 서비스 서버(100)에 대한 노드와 관련된 정책을 수시로 또는 주기적으로 업데이트할 수 있고, 정책에 기초하여 서비스 서버를 결정할 수 있다. 일 실시 예에 따르면, 사용자 단말(200)로부터 서버 할당 요청이 수신되면, 세션 서버(300)는 정책에 기초하여 결정된 서비스 서버(100)를 복수 개(예를 들어, 3개) 선정하고, 서비스 서버(100)의 IP를 사용자 단말(200)로 전송할 수 있다. 사용자 단말(200)은 수신한 복수 개의 서비스 서버(100) IP 중 하나의 서비스 서버(100)로 세션 연결을 요청할 수 있고, 연결된 서비스 서버(100)로부터 스트리밍 방식으로 화면을 제공 받을 수 있다.
다시 말하면, 도 3에서 서비스 서버들(100)은 세션 서버(300)와 연결되고, 세션 서버(300)는 사용자 단말(200)과 연결되는 것으로만 도시되었지만, 사용자 단말(200)이 세션 서버(300)로부터 서비스 서버들의 IP를 수신하고 하나의 서비스 서버로 세션 연결을 요청하면, 사용자 단말(200)과 해당 서비스 서버가 연결될 수 있다.
일 실시 예에 따르면, 복수의 서비스 서버(100)들은 각각 사용자 단말 각각에 대한 액세스 정보 데이터베이스(130)를 포함하거나, 액세스 정보 데이터베이스(130)가 포함된 별도의 서버를 통해 액세스 정보를 확인할 수 있다. 일 실시 예에 따르면, 액세스 정보는 복수의 서비스 서버들 간에 공통으로 업데이트되고 관리될 수 있다.
일 실시 예에 따르면, 사용자 단말(200)과 서비스 서버(100)와의 세션 연결이 중단된 후 다시 세션이 연결되는 경우, 세션 서버(300)에서 제공하는 서비스 서버의 IP가 정책에 따라 이전 서비스 서버의 IP와 달라질 수 있고, 사용자 단말(200)은 기존에 연결된 바 없는 서비스 서버와 연결될 수 있다. 기존에 연결된 바 없는 새로운 서비스 서버로 세션이 연결되어도, 모든 서비스 서버(100)는 공통으로 관리하는 사용자 단말 각각에 대한 액세스 정보를 확인할 수 있으므로 도 1에서 설명한 바와 같이 사용자 단말(200)은 액세스 정보에 기초하여 화면을 제공 받을 수 있다.
예를 들어, 사용자 단말(200)로부터 네이티브 앱 실행 요청 또는 제공 중인 웹 앱이 아닌 다른 웹 앱의 실행 요청이 수신된 경우, 서비스 서버(100)의 프로세서(120)는 사용자 단말(200)에 대응하는 액세스 정보를 저장하고 사용자 단말(200)과의 세션 연결을 중단할 수 있다. 사용자 단말(200)이 다시 서버 할당을 요청하여 세션 서버(300)로부터 기존 연결되었던 서비스 서버와 다른 서비스 서버의 IP를 수신해도, 다른 서비스 서버는 액세스 정보를 참조하여 사용자 단말(200)로 화면을 제공할 수 있다.
이하 설명되는 사용자 단말(200)과 서비스 서버(100)의 연결에는 간명한 설명을 위해 세션 서버(300)의 동작이 생략될 수 있으나, 사용자 단말(200)은 다시 서비스 서버와 연결되는 경우 세션 서버(300)의 노드 정책에 기초하여 기존 서비스 서버와 다른 서비스 서버로 연결될 수 있다.
도 4a 및 도 4b는 다양한 실시 예들에 따른 액세스 정보 데이터베이스에 포함된 화면 정보를 설명하기 위한 도면이다.
도 4a를 참조하면, 액세스 정보 데이터베이스(130)에 포함된 화면 정보(136)를 설명하기 위해, 화면 간 계층이 도시되어 있다. 일 실시 예에 따르면, 사용자 단말(200)로부터 웹 앱 실행 요청을 수신하여 브라우저(150)를 통해 실행된 웹 앱 어플리케이션에는 화면 간 계층이 구분될 수 있다.
일 실시 예에 따르면, 어플리케이션의 초기 화면(410)에서 다음 화면으로의 사용자 입력(예: 선택)에 의해 1차 화면(430)이 제공될 수 있다.
일 실시 예에 따르면, 1차 화면(430)에서 이전 화면으로 돌아가는 사용자 입력(예: 상위 화면으로, 뒤로, 이전 화면으로 등에 대한 입력)으로 초기 화면(410)이 제공될 수 있고, 다음 화면으로의 사용자 입력(예: 선택)에 의해 2차 화면이 제공될 수 있다.
일 실시 예에 따르면, 2차 화면(450)에서 이전 화면으로 돌아가는 사용자 입력(예: 상위 화면으로, 뒤로, 이전 화면으로 등에 대한 입력)으로 1차 화면(430)이 제공될 수 있고, 초기 화면으로 돌아가는 사용자 입력(예: 최상위 화면으로, 초기 화면으로, 처음으로 등에 대한 입력)으로 초기 화면(410)이 제공될 수 있다.
도 4b를 참조하면, 사용자 단말(200)을 통해 디스플레이되는 초기 화면, 1차 화면, 2차 화면이 도시되어 있다. 일 실시 예에 따르면, 사용자 단말(200)(예: 스마트 tv의 셋톱박스)로부터 홈 앱(home app) 실행 요청(예: 리모콘을 통한 홈 앱 실행 요청)이 수신된 경우, 서비스 서버(100)의 프로세서(120)는 사용자 단말(200)로 초기 화면(460)을 제공할 수 있다. 일 실시 예에 따르면, 초기 화면(460)에서 영화 탭(465)에 대한 사용자 입력이 수신된 경우, 프로세서(120)는 사용자 단말(200)로 1차 화면(470)을 제공할 수 있다. 일 실시 예에 따르면, 1차 화면(470)에서 특정 영화 컨텐츠(475)에 대한 사용자 입력이 수신된 경우, 프로세서(120)는 사용자 단말(200)로 2차 화면(480)을 제공할 수 있다.
일 실시 예에 따르면, 도 4a 및 도 4b에서 1차 화면 및 2차 화면까지 도시되었지만, 이에 제한되지 않고 더 많은 계층의 화면이 존재할 수 있다. 액세스 정보 데이터베이스(130)에 포함된 화면 정보(136)에는 각 계층의 화면들(도 4a의 410, 430, 450 또는 도 4b의 460, 470, 480)에 대한 식별 정보가 포함될 수 있고, 구체적으로 액세스 정보 데이터베이스(130)에는 사용자 단말(200) 각각에 대해 이전에 접속한 웹 앱에 대한 정보 및 해당 앱 내에서의 최종 화면에 대한 식별 정보가 맵핑되어 저장될 수 있다.
도 5는 다양한 실시 예들에 따른 웹 앱 화면을 설명하기 위한 도면이다.
도 5를 참조하면, 서비스 서버(100)의 브라우저(150)에서 렌더링되어 사용자 단말(200)로 제공되는 웹 앱 화면(510, 535)이 도시되어 있다.
일 실시 예에 따르면, 웹 앱에 따라 제공되는 UI의 화면이 다를 수 있다. 일 실시 예에 따르면, 참조번호 510과 같이 웹 앱 실행 화면이 화면 레이어에 전체 화면으로 디스플레이될 수 있고, 이처럼 전체 화면으로 UI가 제공되는 웹 앱을 전체 UI 웹 앱(Full UI web app)이라고 할 수 있다. 다수의 웹 앱, 예를 들어 키즈 앱, 홈 앱 등의 UI 가 사용자 단말(200)에서 전체 화면으로 디스플레이될 수 있다.
일 실시 예에 따르면, 참조번호 530과 같이 웹 앱 실행 화면이 화면 레이어에 전체 화면이 아닌 부분 화면으로 디스플레이될 수 있다. 예를 들어 검색 앱, 홈쇼핑 앱과 같은 웹 앱의 경우, 화면 전체가 아닌 상단 일부에만 UI가 노출되고, 나머지 영역(535)은 투명화 처리될 수 있다. 참조번호 530과 같이 투명화 처리된 부분(535)이 적어도 일부 포함되는 UI가 제공되는 웹 앱을 하프 UI 웹 앱(Half UI web app)이라고 할 수 있다.
일 실시 예에 따르면, 검색 앱, 홈쇼핑 앱과 같이 사용자가 임의의 서비스를 제공 받던 중 실행할 가능성이 높은 앱이 하프 UI 웹 앱으로 구현될 수 있다. 일 실시 예에 따르면, 사용자는 VOD 플레이어와 같은 네이티브 앱(native app) 실행 중 감상 중인 VOD 컨텐츠의 주연 배우에 대해 검색하기 위해 검색 앱을 실행할 수 있다. 일 실시 예에 따르면, 사용자는 키즈 앱과 같은 전체 UI 웹 앱 실행 중 키즈 용품을 구매하기 위해 홈쇼핑 앱을 실행할 수 있다.
도 6 내지 도 9에서 네이티브 앱 실행 중 또는 전체 UI 웹 앱 실행 중 하프 UI 웹 앱의 화면이 중첩되어 제공되는 다양한 실시 예들이 설명된다.
도 6 내지 도 9는 사용자 단말(200)의 디스플레이 모듈(250)을 통해 다른 앱(네이티브 앱 또는 웹 앱) 화면 제공 중 투명화 처리된 부분이 적어도 일부 포함되는 웹 앱 화면이 제공되는 다양한 실시 예들을 설명하기 위한 도면이다. 도 6 내지 도 9를 설명하기에 앞서, 사용자 단말에서 네이티브 앱이 실행되는 과정 및 사용자 단말로 웹 앱 화면이 제공되는 과정을 설명한다.
일 실시 예에 따르면, 서비스 서버(100)의 프로세서(120)는 사용자 단말(200)로부터 네이티브 앱(native app)에 대한 실행 요청을 수신할 수 있다. 일 실시 예에 따르면, 도 1에서 설명한 바와 같이, 서비스 서버(100)에서 전송된 컨텐츠 정보에 기초하여 사용자 단말(200)에서 네이티브 앱인 VOD 플레이어가 실행될 수 있다. 예를 들어 사용자 단말(200)이 스마트 tv의 셋톱박스인 경우, 영화 재생하기 버튼 위치에서 포인터를 통한 입력(예: '확인' 버튼 입력)이 수신되면 브라우저(150)는 네이티브 앱 실행 요청이라고 결정하고, 프로세서(120)는 사용자 단말(200)의 액세스 정보를 저장하고, 미디어 플랫폼으로부터 컨텐츠 정보를 수신하여 해당 컨텐츠 정보와 VOD 플레이어의 실행 요청을 사용자 단말(200)로 전송할 수 있다. 사용자 단말(200)에서는 해당 컨텐츠 정보에 기초하여 네이티브 앱인 VOD 플레이어가 실행될 수 있다.
예를 들어, 네이티브 앱 실행 요청이 도 4b의 2차화면(480)에서 홈 앱의 화면을 통한 컨텐츠 재생 요청인 경우, 프로세서(120)는 사용자 단말(200)에 대한 액세스 정보를 액세스 정보 데이터베이스(130)에 연동하여 저장할 수 있다. 구체적으로, 프로세서(120)는 사용자 단말(200)의 단말 식별 정보를 단말 정보(132)에, 사용자 단말(200)에 제공 중이던 웹 앱이 홈 앱이라는 정보를 앱 정보(134)에, 해당 홈 앱 내에서 제공하던 화면이 2차 화면(예: 도 4b의 2차화면(480))이라는 화면 식별 정보를 화면 정보(136)에, 그리고 2차 화면 내에서의 포인터의 위치를 포커싱 정보(138)에 연동하여 저장할 수 있다.
일 실시 예에 따르면, 서비스 서버(100)는 네이티브 앱 실행 요청을 사용자 단말(200)로 전송하고 사용자 단말(200)과의 세션 연결을 중단할 수 있고, 사용자 단말(200)에서 네이티브 앱이 실행되는 동안 서비스 서버(100)는 사용자 단말(200)이 점유하던 세션을 다수의 동시 접속 사용자들에게 제공할 수 있다. 네이티브 앱은 도 1에서 설명한 바와 같이 사용자 단말에서 실행되는 어플로 서비스 서버(100)에 연결되어 있을 필요가 없기 때문에, 서비스 서버(100)는 사용자 단말(200)에 일률적으로 세션을 연결하는 경우보다 동적으로 리소스를 할당할 수 있어 효율적인 다중 동시 접속 환경을 제공할 수 있다.
일 실시 예에 따르면, 서비스 서버(100)의 프로세서(120)는 사용자 단말(200)로부터 웹 앱(web app)에 대한 실행 요청을 수신할 수 있다. 일 실시 예에 따르면, 서비스 서버(100)의 프로세서(120)는 사용자 단말(200)로부터의 실행 요청과 사용자 단말(200)에 대응하는 액세스 정보에 기초하여 브라우저(150)로 웹 앱 실행을 요청할 수 있다. 예를 들어, 사용자 단말(200)이 스마트 tv의 셋톱박스인 경우, 홈 앱 화면 제공 중 리모콘을 통해 키즈 앱에 대한 바로가기 버튼 입력이 수신되거나, 키즈 앱 실행 위치에서 포인터를 통한 입력(예: '확인' 버튼 입력)이 수신되면 브라우저(150)는 키즈 앱에 대한 실행 요청이라고 결정하고, 키즈 앱을 실행하여 렌더링할 수 있다. 일 실시 예에 따르면, 프로세서(120)는 사용자 단말(200)에 대한 액세스 정보를 저장하고, 브라우저(150)에서 렌더링된 결과를 캡쳐하여 사용자 단말(200)로 웹 앱 화면을 제공할 수 있다.
예를 들어, 사용자 단말(200)로 홈 앱 화면 제공 중 사용자 단말(200)로부터 키즈 앱 실행 요청을 수신한 경우, 프로세서(120)는 사용자 단말(200)에 대한 액세스 정보를 액세스 정보 데이터베이스(130)에 저장할 수 있다. 구체적으로, 프로세서(120)는 사용자 단말(200)의 단말 식별 정보를 단말 정보(132)에, 사용자 단말(200)에 제공중이던 웹 앱이 홈 앱이라는 정보를 앱 정보(134)에, 해당 홈 앱 내에서 제공하던 화면이 초기 화면(예: 도 4b의 초기화면(460))이라는 화면 식별 정보를 화면 정보(136)에, 그리고 초기 화면 내에서의 포인터의 위치를 포커싱 정보(138)에 연동하여 저장할 수 있다.
일 실시 예에 따르면, 서비스 서버(100)에서 기존 웹 앱 실행 중 다른 웹 앱 실행 요청을 수신한 경우에는, 기존 웹 앱에 대한 액세스 정보를 저장한 후, 단말(200)과의 세션 연결을 중단했다가 다시 사용자 단말로부터 해당 다른 웹 앱 실행 요청을 수신하여 다른 웹 앱에 대한 화면을 제공할 수 있다. 다양한 실시 예들에 따른 웹 앱(web app) 화면 제공 중 다른 웹 앱 화면이 제공되는 동작은 도 8 및 도 9에서 상세히 설명된다.
도 6 및 도 7은 다양한 실시 예들에 따른 네이티브 앱(native app) 실행 중 웹 앱 화면이 제공되는 동작을 설명하기 위한 도면이다.
도 6을 참조하면, 사용자 단말(200)에서 VOD 플레이어와 같은 네이티브 앱 실행 중 웹 앱 화면이 제공되는 흐름도가 도시되어 있다. 도 1에서 설명한 바와 같이, 네이티브 앱은 사용자 단말(200)에서 실행되는 앱이고 서비스 서버(100)와 세션 연결이 유지되어 있을 필요가 없다. 따라서 네이티브 앱 실행 중 웹 앱 화면이 제공되는 과정은 일반적으로 사용자 단말(200)이 서비스 서버(100)와 연결되어 웹 앱 화면을 제공받는 과정과 동일할 수 있다.
일 실시 예에 따르면, 사용자가 사용자 단말(200)로 네이티브 앱 실행 중 웹 앱 실행 요청에 따라 서비스 서버(100)로부터 웹 앱 화면이 제공될 수 있다.
도 3에서 설명한 바와 같이, 사용자 단말(200)이 세션 서버(300)를 통해 서비스 서버(100)와 연결되는 동작이 참조번호 610에서 설명된다. 사용자 단말(200)은 세션 서버(300)로 서비스 서버 할당을 요청할 수 있고(615), 세션 서버(300)는 노드 정책에 기초하여 복수 개(예를 들어, 3개)의 서비스 서버를 선정(620)하여 사용자 단말(200)로 서버의 IP를 전송할 수 있다(625).
도 6을 참조하면, 참조번호 630 내지 670을 참조하여 도 1에서 설명한 바와 같이 서비스 서버(100)에서 사용자 단말(200)로 스트리밍 방식으로 이미지를 전송하는 동작이 설명된다.
일 실시 예에 따르면, 사용자 단말(200)은 수신한 서비스 서버의 IP를 기초로 서비스 서버(100)로 웹 앱(web app) 실행을 요청할 수 있다(630). 서비스 서버(100)의 프로세서(120)는 사용자 단말(200)에 대응하는 액세스 정보를 확인하고(635), 수신한 웹 앱 실행 요청 및 액세스 정보에 기초하여 브라우저(150)로 웹 앱 실행을 요청할 수 있다(640).
예를 들어, 사용자 단말(200)은 이전에 홈 앱(home app)의 초기 화면(예: 도 4b의 참조번호 460)에서 영화 탭(예: 도 4b의 참조번호 465)을 선택하여 홈 앱의 1차 화면(예: 도 4b의 참조번호 470)까지 제공 받던 중 세션 연결이 중단되었을 수 있다. 프로세서(120)는 참조번호 630에서 사용자 단말(200)로부터 홈 앱 실행 요청을 수신한 경우, 사용자 단말(200)에 대한 정보와 홈 앱에 대한 정보를 기초로 참조번호 635에서 액세스 정보를 확인할 수 있다. 액세스 정보 데이터베이스(130)와 관련하여 도 1에서 설명한 바와 같이, 프로세서(120)는 단말정보(132), 앱 정보(134), 화면 정보(136) 및 포커싱 정보(138)에 기초하여 사용자 단말(200)에 이전에 제공된 바 있는 홈 앱의 최종 화면인 1차 화면(예: 도 4b의 참조번호 470)을 실행할 것을 브라우저(150)로 요청할 수 있다.
도 3에서 세션 서버(300)의 동작에 대해 설명한 바와 같이, 사용자 단말(200)이 이전에 연결되었던 서비스 서버와 참조번호 630에서 실행 요청을 수신한 서비스 서버(100)의 IP는 다를 수 있으나, 액세스 정보 데이터베이스(130)는 복수의 서비스 서버들 간 공통으로 관리되기 때문에 새로 연결된 서비스 서버에서 이전에 연결되었던 서비스 서버에서 저장한 액세스 정보에 접근할 수 있다.
일 실시 예에 따르면 브라우저(150)는 액세스 정보에 기초하여 웹 앱을 실행하고, 이미지를 렌더링할 수 있고(650), 프로세서(120)는 브라우저(150)에서 렌더링한 결과를 캡쳐하여(660) 사용자 단말(200)로 이미지를 전송할 수 있다(670). 도 1에서 설명한 바와 같이, 프로세서(120)는 브라우저(150)에서 렌더링된 이미지에 대해 이전 화면과 현재 화면을 분할(예를 들어, 40개의 타일로 분할)하여 비교하고, 변경된 영역의 이미지만 전송할 수 있다. 다양한 실시 예들에 따른 액세스 정보에 기초한 화면 제공으로 사용자는 보다 다이렉트하게 이전 접속 화면에 액세스할 수 있고, 서비스 서버(100)는 리소스를 줄일 수 있다.
일 실시 예에 따르면, 서비스 서버(100)에서 사용자 단말(200)로 웹 앱 화면 제공(670) 중, 사용자 단말(200)로부터 다른 웹 앱 실행 요청이 수신될 수 있다. 다양한 실시 예들에 따른 웹 앱 화면 제공 중 다른 웹 앱 화면이 제공되는 동작은 도 8 및 도 9에서 상세히 설명된다.
일 실시 예에 따르면, 사용자 단말(200)에서 네이티브 앱 실행 중 서비스 서버(100)로부터 제공 받은(670) 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함될 수 있다. 사용자 단말(200)의 프로세서(220)는 네이티브 앱 화면을 디스플레이하는 디스플레이 레이어들(예: 제2 디스플레이 레이어(252), 제3 디스플레이 레이어(253)) 위에 타겟 디스플레이 레이어(예: 제1 디스플레이 레이어(251))를 생성하고, 타겟 디스플레이 레이어에 수신한 웹 앱 화면을 디스플레이할 수 있다. 다양한 실시 예들에 따른 사용자 단말(200)에서 타겟 디스플레이 레이어가 기존 디스플레이 레이어들과 중첩되어 디스플레이되는 동작은 도 7에서 상세히 설명된다.
도 7을 참조하면, 사용자 단말(200)에서 네이티브 앱 실행 중 검색 앱과 같이 투명화 처리된 부분이 포함된 웹 앱 화면이 중첩되어 디스플레이되는 실시 예가 도시되어 있다.
일 실시 예에 따르면, 서비스 서버(100)로부터 수신한 VOD 컨텐츠 정보에 기초하여 네이티브 앱인 VOD 플레이어가 실행 중일 수 있다. 예를 들어, 제3 디스플레이 레이어(730)(예: 도 2의 제3 디스플레이 레이어(253))에 VOD 컨텐츠가 디스플레이 되고, 제2 디스플레이 레이어(720)(예: 도 2의 제2 디스플레이 레이어(252))에 네이티브 앱인 VOD 플레이어의 UI가 디스플레이될 수 있다. 일 실시 예에 따르면, VOD 컨텐츠는 서비스 서버(100)와 별도의 미디어 플랫폼으로부터 수신한 것일 수 있다.
일 실시 예에 따르면, 도 6에서 설명한 바와 같이 사용자는 네이티브 앱 실행 중 서비스 서버(100)로 웹 앱 실행을 요청(630)하고 일련의 과정을 거쳐 서비스 서버(100)로부터 웹 앱 화면을 수신(670)할 수 있다.
일 실시 예에 따르면, 사용자 단말(200)의 프로세서(220)는 웹 앱 화면을 수신하면 서로 중첩하는 기존의 디스플레이어 레이어들(720, 730) 위에 타겟 디스플레이 레이어를 새로 생성할 수 있다. 예를 들어 도 7을 참조하면, 사용자가 VOD 플레이어 실행 중 검색 앱 실행을 요청(예: 사용자 단말(200)이 스마트 tv의 셋톱박스인 경우, 리모콘의 검색 버튼 클릭 등)하여 검색 앱 화면을 수신하면 사용자 단말(200)의 프로세서(220)가 제2 디스플레이 레이어(720) 및 제3 디스플레이 레이어(730) 위에 중첩하여 타겟 디스플레이 레이어인 제1 디스플레이 레이어(710)를 생성할 수 있다.
일 실시 예에 따르면, 사용자 단말(200)의 프로세서(220)는 기존의 디스플레이 레이어들(720, 730) 위에 생성한 타겟 디스플레이 레이어(710)에 수신한 웹 앱 화면을 디스플레이할 수 있다.
일 실시 예에 따르면, 검색 앱과 같이 수신한 웹 앱 화면에 투명화 처리된 부분(715)이 적어도 일부 포함되는 경우, 사용자 단말(200)의 최종 출력 화면(750)에서는 타겟 디스플레이 레이어(710)가 네이티브 앱 화면이 디스플레이된 디스플레이 레이어(720) 위에 중첩되어 출력될 수 있다.
일 실시 예에 따르면, 네이티브 앱 실행 중 웹 앱이 아닌, 다른 네이티브 앱이 실행되는 경우에도 동일한 방법으로 중첩된 화면이 제공될 수 있다. 예를 들어, 검색 앱은 웹 앱이 아니라 네이티브 앱으로 구현될 수 있고, 서비스 서버(100)로부터 제공받은 웹 앱 화면이 아니라 사용자 단말(예: 스마트 tv의 셋톱박스)에서 실행한 네이티브 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우에도 화면(750)과 같이 중첩된 화면이 제공될 수 있다.
도 8 및 도 9는 다양한 실시 예들에 따른 웹 앱(web app) 화면 제공 중 다른 웹 앱 화면이 제공되는 동작을 설명하기 위한 도면이다.
도 8을 참조하면, 도 6에서 설명한 바와 같이 사용자 단말(200)로 웹 앱 화면 제공 중 다른 웹 앱 화면이 제공되는 흐름도가 도시되어 있다. 일 실시 예에 따르면, 사용자 단말(200)로 웹 앱(예: 키즈 앱) 화면 제공 중 사용자 단말로부터 다른 웹 앱(예: 검색 앱) 실행 요청에 따라 서비스 서버(100)로부터 웹 앱 화면이 제공될 수 있다. 예를 들어, 사용자 단말(200)이 스마트 tv의 셋톱박스이고 리모콘의 검색 앱 버튼이 입력되면, 브라우저(150)는 검색 앱에 대한 실행 요청이라고 결정하고, 검색 앱을 실행하여 렌더링할 수 있다. 도 8에서는 간명한 설명을 위해 생략되었지만, 서비스 서버(100)로 다른 웹 앱 실행 요청이 수신되면(815) 브라우저(150)가 다른 웹 앱 실행 요청이라고 결정할 수 있다.
일 실시 예에 따르면, 프로세서(120)는 사용자 단말(200)에 대한 액세스 정보를 저장(820)할 수 있다. 예를 들어, 웹 앱 실행 요청이 검색 앱 실행 요청인 경우, 프로세서(120)는 사용자 단말(200)에 대한 액세스 정보를 액세스 정보 데이터베이스(130)에 저장할 수 있다. 구체적으로, 프로세서(120)는 사용자 단말(200)의 단말 식별 정보를 단말 정보(132)에, 사용자 단말(200)에 제공하던 웹 앱이 키즈 앱이라는 정보를 앱 정보(134)에, 해당 키즈 앱 내에서 제공하던 화면이 초기 화면이라는 화면 식별 정보를 화면 정보(136)에, 그리고 초기 화면 내에서의 포인터의 위치를 포커싱 정보(138)에 연동하여 저장할 수 있다.
일 실시 예에 따르면, 프로세서(120)는 사용자 단말(200)에 대한 액세스 정보를 저장하고(820), 사용자 단말(200)로 다른 웹 앱 실행 신호를 전송(825)한 후 사용자 단말(200)과의 세션 연결을 중단할 수 있다(830). 일 실시 예에 따르면, 사용자 단말(200)은 수신한 신호에 기초하여 다시 다른 웹 앱 실행을 요청할 수 있다(860). 예를 들어 사용자 단말(200)에서 검색 앱의 실행 신호를 요청(815)한 경우, 다시 서비스 서버(100)로 검색 앱 실행을 요청할 수 있다(860).
서비스 서버(100)에서 사용자 단말(200)로부터 다른 웹 앱 실행 요청을 수신하는 경우(815) 사용자 단말과의 세션 연결을 중단하고(830) 다시 사용자 단말(200)로부터 해당 다른 웹 앱 실행 요청을 수신하는 이유는, 서비스 서버(100)의 웹 앱을 실행하는 브라우저(150)에서 한 번에 하나의 웹 앱을 실행할 수 있기 때문이다. 또한, 일 실시 예에 따르면, 서비스 서버(100)는 사용자 단말(200)과의 세션을 중단(830)하고 다시 다른 웹 실행 요청을 수신함으로써 동일한 사용자 단말(200)이 여러 세션을 사용하는 것을 방지하여 리소스를 절약할 수 있고, 보다 많은 사람들의 다중 동시 접속 환경을 제공할 수 있다.
일 실시 예에 따르면, 사용자 단말(200)에서 서비스 서버(100)로 다시 다른 웹 앱 실행을 요청한 경우, 참조번호 840에서 세션 서버(300)의 동작으로 기존 서비스 서버와 다른 IP의 서비스 서버에 연결될 수 있다. 세션 서버(300)의 동작 및 다른 서비스 서버와의 연결에 대한 설명은 도 3 및 도 6의 참조번호 610에서 설명한 바와 중복되므로, 상세한 설명은 생략한다.
일 실시 예에 따르면, 사용자 단말(200)로부터 다른 웹 앱 실행 요청이 수신되고(860) 프로세서(120)는 액세스 정보를 확인(865)하여 이전 서비스 서버에서 액세스 정보를 저장했던 정보를 참조할 수 있고, 이에 기초하여 이전에 사용자 단말(200)로 제공되었던 해당 다른 웹 앱의 최종 화면을 전송할 수 있다(870).
일 실시 예에 따르면, 사용자 단말(200)에서 웹 앱 실행 중 서비스 서버(100)로부터 제공 받은(870) 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함될 수 있다. 사용자 단말(200)의 프로세서(220)는 서비스 서버(100)로부터 수신한 웹 앱 화면과 다른 웹 앱 화면을 디스플레이하는 디스플레이 레이어들(예: 제2 디스플레이 레이어(252), 제3 디스플레이 레이어(253)) 위에 타겟 디스플레이 레이어(예: 제1 디스플레이 레이어(251))를 생성하고, 타겟 디스플레이 레이어에 수신한 웹 앱 화면을 디스플레이할 수 있다. 다양한 실시 예들에 따른 사용자 단말(200)에서 타겟 디스플레이 레이어가 기존 디스플레이 레이어들과 중첩되어 디스플레이되는 동작은 도 9에서 상세히 설명된다.
도 9를 참조하면, 사용자 단말(200)에서 서비스 서버(100)로 투명화 처리된 부분이 포함된 웹 앱(예: 검색 앱) 실행을 요청하여, 다른 웹 앱(예: 키즈 앱) 실행 중 투명화 처리된 부분이 포함된 웹 앱 화면이 중첩되어 디스플레이되는 실시 예가 도시되어 있다.
일 실시 예에 따르면, 서비스 서버(100)로부터 수신한 웹 앱 화면이 출력 중일 수 있다. 예를 들어, 제2 디스플레이 레이어(920)(예: 도 2의 제2 디스플레이 레이어(252))에 키즈 앱 화면이 디스플레이 될 수 있다.
일 실시 예에 따르면, 도 8에서 설명한 바와 같이 사용자는 웹 앱 화면 제공 받던 중 서비스 서버(100)로 다른 웹 앱 실행을 요청(815)하고 일련의 과정을 거쳐 서비스 서버(100)로부터 웹 앱 화면을 수신(870)할 수 있다.
일 실시 예에 따르면, 사용자 단말(200)의 프로세서(220)는 웹 앱 화면을 수신하면 기존의 디스플레이 레이어(720) 위에 타겟 디스플레이 레이어를 새로 생성할 수 있다. 예를 들어 도 9 참조하면, 사용자가 키즈 앱 화면을 제공 받던 중 검색 앱 실행을 요청(예: 사용자 단말(200)이 스마트 tv의 셋톱박스인 경우, 리모콘의 검색 버튼 클릭 등)하여 검색 앱 화면을 수신하면 사용자 단말(200)의 프로세서(220)가 제2 디스플레이 레이어(920) 위에 중첩하여 타겟 디스플레이 레이어인 제1 디스플레이 레이어(910)를 생성할 수 있다.
일 실시 예에 따르면, 사용자 단말(200)의 프로세서(220)는 기존의 디스플레이 레이어(920) 위에 생성한 타겟 디스플레이 레이어(910)에 수신한 웹 앱 화면을 디스플레이할 수 있다.
일 실시 예에 따르면, 검색 앱과 같이 수신한 웹 앱 화면에 투명화 처리된 부분(915)이 적어도 일부 포함되는 경우, 사용자 단말(200)의 최종 출력 화면(950)에서는 타겟 디스플레이 레이어(910)가 기존 출력 중이던 웹 앱 화면이 디스플레이된 디스플레이 레이어(920) 위에 중첩되어 출력될 수 있다.
일 실시 예에 따르면, 웹 앱 화면 제공 중 다른 웹 앱이 아닌, 네이티브 앱이 실행되는 경우에도 동일한 방법으로 중첩된 화면이 제공될 수 있다. 예를 들어, 검색 앱은 웹 앱이 아니라 네이티브 앱으로 구현될 수 있고, 서비스 서버(100)로부터 제공받은 웹 앱 화면이 아니라 사용자 단말(예: 스마트 tv의 셋톱박스)에서 실행한 네이티브 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우에도 화면(950)과 같이 중첩된 화면이 제공될 수 있다.
<화면 제공 방법>
도 10 및 도 11은 다양한 실시 예들에 따른 화면 제공 방법 및 사용자 단말의 동작 방법을 설명하기 위한 흐름도로, 간명한 설명을 위해 도 1 내지 도 9에서 설명한 부분과 중복되는 부분은 생략한다.
도 10은 다양한 실시 예들에 따른 화면 제공 방법을 설명하기 위한 흐름도이다.
동작 1010 내지 1030은 도 1을 참조하여 전술된 서비스 서버(100)의 프로세서(120)에 의해, 동작 1040 및 동작 1050은 도 2를 참조하여 전술된 사용자 단말(200)의 프로세서(220)에 의해 수행될 수 있다.
도 10을 참조하면, 동작 1010에서 프로세서(120)는 사용자 단말(200)로부터 웹 앱의 실행 요청을 수신할 수 있다. 동작 1010 이전에 사용자 단말은 도 6의 참조번호 610에서 설명한 바와 같이 세션 서버(300)를 통해 서비스 서버의 IP를 전송 받아 서비스 서버(100)로 세션 연결을 요청함으로써 서비스 서버(100)와 연결된 것일 수 있다.
일 실시 예에 따르면, 도 6의 참조번호 630 내지 640에서 설명한 바와 같이, 동작 1020 프로세서(120)는 실행 요청 및 액세스 정보 데이터베이스(130)를 참조하여 브라우저(150)로 웹 앱의 실행을 요청할 수 있다.
일 실시 예에 따르면, 도 6의 참조번호 650 내지 670에서 설명한 바와 같이, 동작 1030에서 프로세서(120)는 사용자 단말(200)이 이전에 제공받았던 최종 웹 앱 화면을 사용자 단말(200)로 제공할 수 있다. 일 실시 예에 따르면, 서비스 서버(100)의 브라우저(150)는 액세스 정보에 기초하여 웹 앱을 실행하고, 이미지를 렌더링하고, 프로세서(120)가 렌더링 결과에 대해 이전 화면과 현재 화면을 분할(예를 들어, 40개의 타일로 분할)하여 비교하여 변경된 영역의 이미지를 전송할 수 있다. 동작 1020 및 동작 1030에서 액세스 정보에 기초한 화면 제공으로, 사용자는 보다 다이렉트하게 이전에 접속했던 화면에 액세스할 수 있고, 서비스 서버(100)는 리소스를 줄일 수 있다.
일 실시 예에 따르면 동작 1040에서, 사용자 단말(200)의 프로세서(220)는 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어(예: 도 2의 제2 디스플레이 레이어(252) 및 제3 디스플레이 레이어(253)) 위에 타겟 디스플레이 레이어(예: 도 2의 제1 디스플레이 레이어(251))를 생성할 수 있다. 일 실시 예에 따르면 동작 1050에서, 사용자 단말(200)의 프로세서(220)는 서비스 서버(100)로부터 수신한 웹 앱 화면을 타겟 디스플레이 레이어에 디스플레이할 수 있다.
일 실시 예에 따르면 사용자 단말(200)에서 네이티브 앱(native app) 실행 중 서비스 서버(100)로부터 수신한 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 프로세서(220)는 동작 1040에서 네이티브 앱 화면이 디스플레이된 디스플레이 레이어(예: 도 7의 제2 디스플레이 레이어(720)) 위에 타겟 디스플레이 레이어(예: 도 7의 제1 디스플레이 레이어(710))를 생성하고, 동작 1050에서 타겟 디스플레이 레이어에 수신한 웹 앱 화면을 디스플레이할 수 있다. 일 실시 예에 따르면, 사용자 단말(200)에서 타겟 디스플레이 레이어는 네이티브 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되어 출력될 수 있다.
일 실시 예에 따르면 사용자 단말(200)에서 다른 웹 앱 화면을 제공 받던 중 서비스 서버(100)로부터 수신한 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 프로세서(220)는 동작 1040에서 다른 웹 앱 화면이 디스플레이된 디스플레이 레이어(예: 도 9의 제2 디스플레이 레이어(920)) 위에 타겟 디스플레이 레이어(예: 도 9의 제1 디스플레이 레이어(910))를 생성하고, 동작 1050에서 타겟 디스플레이 레이어에 수신한 웹 앱 화면을 디스플레이할 수 있다. 일 실시 예에 따르면, 사용자 단말(200)에서 타겟 디스플레이 레이어는 다른 웹 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되어 출력될 수 있다.
도 11은 다양한 실시 예들에 따른 사용자 단말의 동작 방법을 설명하기 위한 흐름도이다.
동작 1110 내지 1140은 도 2를 참조하여 전술된 사용자 단말(200)의 프로세서(220)에 의해 수행될 수 있다.
도 11을 참조하면, 동작 1110에서 프로세서(220)는 서비스 서버(100)로 웹 앱의 실행을 요청할 수 있다. 일 실시 예에 따르면 도 1에서 설명한 바와 같이, 서비스 서버(100)는 실행 요청 및 사용자 단말(200)의 액세스 정보에 기초하여 브라우저에서 웹 앱을 실행 및 렌더링하고, 프로세서(120)가 이미지를 캡쳐할 수 있다.
일 실시 예에 따르면 동작 1120에서, 프로세서(220)는 서비스 서버(100)로부터 웹 앱 화면을 수신하고, 동작 1130에서 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어(예: 도 2의 제2 디스플레이 레이어(252) 및 제3 디스플레이 레이어(253)) 위에 타겟 디스플레이 레이어(예: 도 2의 제1 디스플레이 레이어(251))를 생성할 수 있다. 일 실시 예에 따르면 동작 1140에서, 프로세서(220)는 서비스 서버(100)로부터 수신한 웹 앱 화면을 타겟 디스플레이 레이어에 디스플레이할 수 있다.
일 실시 예에 따르면 사용자 단말(200)에서 네이티브 앱(native app) 실행 중 서비스 서버(100)로부터 수신한 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 프로세서(220)는 동작 1130에서 네이티브 앱 화면이 디스플레이된 디스플레이 레이어(예: 도 7의 제2 디스플레이 레이어(720)) 위에 타겟 디스플레이 레이어(예: 도 7의 제1 디스플레이 레이어(710))를 생성하고, 동작 1140에서 타겟 디스플레이 레이어에 수신한 웹 앱 화면을 디스플레이할 수 있다. 일 실시 예에 따르면, 사용자 단말(200)에서 타겟 디스플레이 레이어는 네이티브 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되어 출력될 수 있다.
일 실시 예에 따르면 사용자 단말(200)에서 다른 웹 앱 화면을 제공 받던 중 서비스 서버(100)로부터 수신한 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우, 프로세서(220)는 동작 1130에서 다른 웹 앱 화면이 디스플레이된 디스플레이 레이어(예: 도 9의 제2 디스플레이 레이어(920)) 위에 타겟 디스플레이 레이어(예: 도 9의 제1 디스플레이 레이어(910))를 생성하고, 동작 1140에서 타겟 디스플레이 레이어에 수신한 웹 앱 화면을 디스플레이할 수 있다. 일 실시 예에 따르면, 사용자 단말(200)에서 타겟 디스플레이 레이어는 다른 웹 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되어 출력될 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (14)
- 사용자 단말로 화면을 제공하는 서비스 서버에 있어서,
웹 앱(web app)을 실행하고 렌더링(rendering)하는 브라우저(browser);
컴퓨터로 실행 가능한 명령어들(computer-executable instructions)이 저장된 메모리; 및
상기 메모리에 액세스(access)하여 상기 명령어들을 실행하는 프로세서
를 포함하고,
상기 프로세서는 상기 사용자 단말로부터 웹 앱(web app) 실행 요청을 수신하고, 상기 브라우저로 상기 웹 앱의 실행을 요청하고, 상기 브라우저에서 렌더링된 이미지를 캡쳐(capture)하여 상기 사용자 단말로 상기 웹 앱에 대한 웹 앱 화면을 제공하고,
상기 사용자 단말은 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어 위에 생성한 타겟 디스플레이 레이어에 상기 서비스 서버로부터 수신한 제 1 웹 앱 화면을 디스플레이하고,
상기 타겟 디스플레이 레이어는 상기 사용자 단말에서 상기 적어도 하나의 디스플레이 레이어 위에 중첩되되,
상기 타겟 디스플레이 레이어 아래 중첩되는 상기 적어도 하나의 디스플레이 레이어에서의 제 2 웹 앱 화면의 렌더링 중에 상기 제 1 웹 앱의 실행이 요청됨에 반응하여 상기 타겟 디스플레이 레이어를 상기 적어도 하나의 디스플레이 레이어에 중첩되게 생성함에 따라, 상기 타겟 디스플레이 레이어 상에서 사용자 입력 기반의 동작이 상기 제 2 웹 앱 화면 상에서 이루어지도록 제어하는,
서비스 서버. - 제1항에 있어서,
상기 사용자 단말에서 네이티브 앱(native app) 실행 중 상기 서비스 서버로부터 수신한 상기 제 1 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우,
상기 타겟 디스플레이 레이어는 상기 네이티브 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되는,
서비스 서버. - 제1항에 있어서,
상기 사용자 단말에서 상기 제 2 웹 앱 화면을 디스플레이 중 상기 서비스 서버로부터 수신한 상기 제 1 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우,
상기 타겟 디스플레이 레이어는 상기 제 2 웹 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되는,
서비스 서버. - 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어를 포함하는 디스플레이 모듈;
웹 앱(web app)을 실행하고 상기 웹 앱 화면을 제공하는 서비스 서버와의 통신을 위한 통신 모듈;
컴퓨터로 실행 가능한 명령어들(computer-executable instructions)이 저장된 메모리; 및
상기 메모리에 액세스(access)하여 상기 명령어들을 실행하는 프로세서
를 포함하고,
상기 프로세서는 상기 서비스 서버로 웹 앱(web app) 실행 요청을 전송하고, 상기 서비스 서버로부터 사용자 단말에 대한 액세스 정보에 기초하여 상기 웹 앱에 대한 제 1 웹 앱 화면을 수신하고, 상기 적어도 하나의 디스플레이 레이어 위에 생성한 타겟 디스플레이 레이어에 상기 제 1 웹 앱 화면을 디스플레이하고,
상기 타겟 디스플레이 레이어는 상기 사용자 단말에서 상기 적어도 하나의 디스플레이 레이어 위에 중첩되되,
상기 타겟 디스플레이 레이어 아래 중첩되는 상기 적어도 하나의 디스플레이 레이어에서의 제 2 웹 앱 화면의 렌더링 중에 상기 제 1 웹 앱의 실행이 요청됨에 반응하여 상기 타겟 디스플레이 레이어를 상기 적어도 하나의 디스플레이 레이어에 중첩되게 생성함에 따라, 상기 타겟 디스플레이 레이어 상에서 사용자 입력 기반의 동작이 상기 제 2 웹 앱 화면 상에서 이루어지도록 제어하는,
사용자 단말. - 제4항에 있어서,
상기 사용자 단말에서 네이티브 앱(native app) 실행 중 상기 서비스 서버로부터 수신한 상기 제 1 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우,
상기 타겟 디스플레이 레이어는 상기 네이티브 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되는,
사용자 단말. - 제4항에 있어서,
상기 사용자 단말에서 상기 제 2 웹 앱 화면을 디스플레이 중 상기 서비스 서버로부터 수신한 상기 제 1 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우,
상기 타겟 디스플레이 레이어는 상기 제 2 웹 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되는,
사용자 단말. - 사용자 단말로부터 웹 앱(web app)의 실행 요청을 수신하는 동작;
상기 사용자 단말에 대한 액세스 정보에 기초하여 브라우저(browser)로 상기 웹 앱의 실행을 요청하는 동작; 및
상기 브라우저에서 렌더링된 이미지를 캡쳐(capture)하여 상기 사용자 단말로 상기 웹 앱에 대한 웹 앱 화면을 제공하는 동작
을 포함하고,
상기 사용자 단말은 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어 위에 생성한 타겟 디스플레이 레이어에 제 1 웹 앱 화면을 디스플레이하고,
상기 타겟 디스플레이 레이어는 상기 사용자 단말에서 상기 적어도 하나의 디스플레이 레이어 위에 중첩되되,
상기 타겟 디스플레이 레이어 아래 중첩되는 상기 적어도 하나의 디스플레이 레이어에서의 제 2 웹 앱 화면의 렌더링 중에 상기 제 1 웹 앱의 실행이 요청됨에 반응하여 상기 타겟 디스플레이 레이어를 상기 적어도 하나의 디스플레이 레이어에 중첩되게 생성함에 따라, 상기 타겟 디스플레이 레이어 상에서 사용자 입력 기반의 동작이 상기 제 2 웹 앱 화면 상에서 이루어지도록 제어하는,
화면 제공 방법. - 제7항에 있어서,
상기 사용자 단말에서 네이티브 앱(native app) 실행 중 서비스 서버로부터 수신한 상기 제 1 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우,
상기 타겟 디스플레이 레이어는 상기 네이티브 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되는,
화면 제공 방법. - 제7항에 있어서,
상기 사용자 단말에서 상기 제 2 웹 앱 화면을 디스플레이 중 서비스 서버로부터 수신한 상기 제 1 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우,
상기 타겟 디스플레이 레이어는 상기 제 2 웹 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되는,
화면 제공 방법. - 서비스 서버로 웹 앱(web app) 실행 요청을 전송하는 동작;
상기 서비스 서버로부터 사용자 단말에 대한 액세스 정보에 기초하여 상기 웹 앱에 대한 웹 앱 화면을 수신하는 동작; 및
순차적으로 중첩되는 적어도 하나의 디스플레이 레이어 위에 생성한 타겟 디스플레이 레이어에 제 1 웹 앱 화면을 디스플레이하는 동작
을 포함하고,
상기 타겟 디스플레이 레이어는 상기 사용자 단말에서 상기 적어도 하나의 디스플레이 레이어 위에 중첩되되,
상기 타겟 디스플레이 레이어 아래 중첩되는 상기 적어도 하나의 디스플레이 레이어에서의 제 2 웹 앱 화면의 렌더링 중에 상기 제 1 웹 앱의 실행이 요청됨에 반응하여 상기 타겟 디스플레이 레이어를 상기 적어도 하나의 디스플레이 레이어에 중첩되게 생성함에 따라, 상기 타겟 디스플레이 레이어 상에서 사용자 입력 기반의 동작이 상기 제 2 웹 앱 화면 상에서 이루어지도록 제어하는,
사용자 단말의 동작 방법. - 제10항에 있어서,
상기 사용자 단말에서 네이티브 앱(native app) 실행 중 상기 서비스 서버로부터 수신한 상기 제 1 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우,
상기 타겟 디스플레이 레이어는 상기 네이티브 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되는,
사용자 단말의 동작 방법. - 제10항에 있어서,
상기 사용자 단말에서 상기 제 2 웹 앱 화면을 디스플레이 중 상기 서비스 서버로부터 수신한 상기 제 1 웹 앱 화면에 투명화 처리된 부분이 적어도 일부 포함되는 경우,
상기 타겟 디스플레이 레이어는 상기 제 2 웹 앱 화면이 디스플레이된 디스플레이 레이어 위에 중첩되는,
사용자 단말의 동작 방법. - 화면 제공 시스템에 있어서,
사용자 단말로부터 웹 앱(web app) 실행 요청을 수신하고, 상기 사용자 단말에 대한 액세스 정보에 기초하여 브라우저(browser)로 상기 웹 앱의 실행을 요청하고, 상기 브라우저에서 렌더링된 이미지를 캡쳐(capture)하여 상기 사용자 단말에 상기 웹 앱에 대한 웹 앱 화면을 제공하는 서비스 서버; 및
상기 서비스 서버로 상기 웹 앱 실행 요청을 전송하고, 상기 서비스 서버로부터 상기 웹 앱 화면을 수신하고, 순차적으로 중첩되는 적어도 하나의 디스플레이 레이어 위에 생성한 타겟 디스플레이 레이어에 제 1 웹 앱 화면을 디스플레이하는 사용자 단말
을 포함하고,
상기 타겟 디스플레이 레이어는 상기 사용자 단말에서 상기 적어도 하나의 디스플레이 레이어 위에 중첩되되,
상기 타겟 디스플레이 레이어 아래 중첩되는 상기 적어도 하나의 디스플레이 레이어에서의 제 2 웹 앱 화면의 렌더링 중에 상기 제 1 웹 앱의 실행이 요청됨에 반응하여 상기 타겟 디스플레이 레이어를 상기 적어도 하나의 디스플레이 레이어에 중첩되게 생성함에 따라, 상기 타겟 디스플레이 레이어 상에서 사용자 입력 기반의 동작이 상기 제 2 웹 앱 화면 상에서 이루어지도록 제어하는,
화면 제공 시스템. - 하드웨어와 결합되어 제7항 내지 제12항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210057232A KR102566263B1 (ko) | 2021-05-03 | 2021-05-03 | 화면 제공을 위한 서비스 서버 및 그 동작 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210057232A KR102566263B1 (ko) | 2021-05-03 | 2021-05-03 | 화면 제공을 위한 서비스 서버 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220150038A KR20220150038A (ko) | 2022-11-10 |
KR102566263B1 true KR102566263B1 (ko) | 2023-08-11 |
Family
ID=84045463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210057232A KR102566263B1 (ko) | 2021-05-03 | 2021-05-03 | 화면 제공을 위한 서비스 서버 및 그 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102566263B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101535809B1 (ko) | 2014-01-24 | 2015-07-13 | 에스케이플래닛 주식회사 | 클라우드 스트리밍 서비스 제공 방법, 이를 위한 시스템 및 장치 |
KR101780782B1 (ko) | 2016-07-08 | 2017-09-21 | 엔트릭스 주식회사 | 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140100933A (ko) * | 2011-12-08 | 2014-08-18 | 엘지전자 주식회사 | 네트워크 tv 및 네트워크 tv 동작 방법 |
KR102284685B1 (ko) * | 2015-03-02 | 2021-08-02 | 에스케이플래닛 주식회사 | 클라우드 스트리밍 서비스 시스템, 단말의 성능에 기반한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
KR102346747B1 (ko) * | 2015-05-07 | 2022-01-04 | 에스케이플래닛 주식회사 | 클라우드 스트리밍 서비스 시스템, 리사이즈 기반의 멀티뷰 화면을 제공하는 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
KR102004970B1 (ko) * | 2016-11-17 | 2019-07-30 | 에스케이플래닛 주식회사 | 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치 |
WO2020197281A1 (ko) * | 2019-03-26 | 2020-10-01 | 에스케이플래닛 주식회사 | 클라우드 스트리밍 서비스에서의 사용자 인터페이스 세션 복구 방법 및 이를 위한 장치 |
-
2021
- 2021-05-03 KR KR1020210057232A patent/KR102566263B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101535809B1 (ko) | 2014-01-24 | 2015-07-13 | 에스케이플래닛 주식회사 | 클라우드 스트리밍 서비스 제공 방법, 이를 위한 시스템 및 장치 |
KR101780782B1 (ko) | 2016-07-08 | 2017-09-21 | 엔트릭스 주식회사 | 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20220150038A (ko) | 2022-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9532103B2 (en) | Multi-user support for set top boxes and game consoles | |
US10298721B2 (en) | Method and system to determine a work distribution model for an application deployed on a cloud | |
US9451043B2 (en) | Remote virtualization of mobile apps | |
US9167054B2 (en) | Remote browsing session management | |
US8621069B1 (en) | Provisioning a computing application executing on a cloud to a client device | |
US20150082239A1 (en) | Remote Virtualization of Mobile Apps with Transformed Ad Target Preview | |
US10715860B1 (en) | Video stream with additional content areas | |
US20140237119A1 (en) | Object migration system and method for web-based content service migration | |
US9166882B1 (en) | Remote browsing session management | |
US10531165B1 (en) | Embedded content synchronization | |
CN111478930B (zh) | Stb云化方法、***、瘦stb、虚拟stb及平台、存储介质 | |
US20230285854A1 (en) | Live video-based interaction method and apparatus, device and storage medium | |
KR101942269B1 (ko) | 웹 브라우저에서 미디어를 재생하고 탐색하는 장치 및 방법 | |
US20230050360A1 (en) | Procedures for providing ar/mr applications to 5g devices by running ar/mr processing on 5g edge servers/cloud including dynamic scene updates | |
US10412442B1 (en) | Embedded content input and timing | |
US20180352285A1 (en) | Method for providing a remote personal computer service to a digital device | |
KR102566263B1 (ko) | 화면 제공을 위한 서비스 서버 및 그 동작 방법 | |
US10862946B1 (en) | Media player supporting streaming protocol libraries for different media applications on a computer system | |
KR102566262B1 (ko) | 서비스 서버 및 그 동작 방법 | |
KR102570284B1 (ko) | 화면 제공을 위한 서비스 서버 및 그 동작 방법 | |
KR101909257B1 (ko) | 단말로부터 요청된 가상 어플리케이션을 실행하는 서버 및 방법, 그리고 단말 | |
US11212562B1 (en) | Targeted video streaming post-production effects | |
KR20160091622A (ko) | 클라우드 스트리밍 서비스 시스템, 변화 영역의 분할을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
CN103618968A (zh) | 一种面向云环境下的网络电视播放方法及*** | |
KR102063089B1 (ko) | 클라우드 스트리밍 서비스 시스템, 컨텐츠 화질 개선 방법 및 이를 위한 장치 |
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 |