KR101909257B1 - 단말로부터 요청된 가상 어플리케이션을 실행하는 서버 및 방법, 그리고 단말 - Google Patents

단말로부터 요청된 가상 어플리케이션을 실행하는 서버 및 방법, 그리고 단말 Download PDF

Info

Publication number
KR101909257B1
KR101909257B1 KR1020110147163A KR20110147163A KR101909257B1 KR 101909257 B1 KR101909257 B1 KR 101909257B1 KR 1020110147163 A KR1020110147163 A KR 1020110147163A KR 20110147163 A KR20110147163 A KR 20110147163A KR 101909257 B1 KR101909257 B1 KR 101909257B1
Authority
KR
South Korea
Prior art keywords
application
terminal
server
data
control signal
Prior art date
Application number
KR1020110147163A
Other languages
English (en)
Other versions
KR20130078300A (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 KR1020110147163A priority Critical patent/KR101909257B1/ko
Publication of KR20130078300A publication Critical patent/KR20130078300A/ko
Application granted granted Critical
Publication of KR101909257B1 publication Critical patent/KR101909257B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)

Abstract

단말로부터 요청된 어플리케이션을 실행하는 서버 및 방법, 그리고 단말이 제공된다. 보다 상세하게는 단말과 연관된 적어도 하나 이상의 어플리케이션의 실행 데이터를 저장하고, 단말로부터 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 수신하고, 실행 데이터를 이용하여 어느 하나의 어플리케이션을 실행하고, 실행된 어플리케이션에 기초하여 단말로부터 수신된 제어 신호에 대응하는 결과 데이터를 생성하는 서버 및 방법, 그리고 단말이 제공된다.

Description

단말로부터 요청된 가상 어플리케이션을 실행하는 서버 및 방법, 그리고 단말{SERVER AND METHOD FOR EXECUTING VIRTUAL APPLICATION REQUESTED FROM DEVICE, AND THE DEVICE}
어플리케이션을 실행하는 서버 및 방법에 관한 것으로, 보다 상세하게는 단말로부터 요청된 가상 어플리케이션을 실행하는 서버 및 방법, 그리고 단말에 관한 것이다.
일반적으로 IPTV 서비스 플랫폼은 컨텐츠 공급자로부터 컨텐츠 및 메타데이터를 입수하여 단말로 제공하는 시스템, 프로그램 공급자가 제공하는 실시간 방송을 단말로 제공하고 시청이 가능하도록 방송 채널정보 및 각 채널 별 프로그램 편성정보를 제공하는 시스템, 그리고 어플리케이션 서비스가 가능한 시스템으로 구성될 수 있다. 또한, IPTV 서비스 단말(STB)는 다양한 제조사를 통해 공급되고, 단말 내에서 어플리케이션을 구동하기 위한 미들웨어를 포함한다. 그러나, 미들웨어는 미리 약속된 어플리케이션의 동작만을 보장하거나, 하나의 어플리케이션만을 동작만을 보장하기 때문에 다양한 응용 서비스를 제공하기에 부족하다.
한편, N 스크린(Screen) 서비스는 TV, PC, 태블릿 PC 또는 스마트폰 등의 다양한 기기에서 독립적으로 이용하던 서비스를 사용자 또는 컨텐츠를 중심으로 복합적으로 이용할 수 있게 해주는 서비스이다. 이러한 N 스크린 서비스가 제공됨에 있어서, 다양한 종류의 복수의 기기에서 동시에 동일한 컨텐츠를 재생시키는 기술 및 복수의 기기 중 어느 하나의 단말에서 재생하던 컨텐츠를 복수의 기기 중 다른 기기에서 끊임 없이(Seamless) 재생하는 기술 등이 요구된다. 이와 관련하여, 선행기술인 한국 특허공개번호 제2011-0009587에는 복수의 단말로 동용상 컨텐츠를 제공하는 컨텐츠 서버 간의 재생 이력 동기화를 구현하여 이 기종 단말간의 동영상 컨텐츠 이어보기를 제공하는 구성이 개시되어 있다.
단말을 대신하여 가상 어플리케이션을 실행함으로써, 다양한 응용 서비스를 제공할 수 있는 가상 어플리케이션 서버 및 방법을 제공할 수 있다. 클라우드 기술에 기반하여 웹, Java, Android 등 다양한 플랫폼의 어플리케이션이 멀티 태스킹 환경에서 구동될 수 있다. 어플리케이션들이 상호간에 연동되어 데이터를 송수신할 수 있다. 단말의 기능을 가볍게 구현함으로써, 웹 브라우져만을 탑재한 N-스크린 단말에서 IPTV 서비스를 이용할 수 있다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는 단말과 연관된 적어도 하나 이상의 어플리케이션의 실행 데이터를 저장하는 어플리케이션 실행 데이터 관리부, 상기 단말로부터 상기 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 수신하는 요청 신호 수신부, 상기 실행 데이터를 이용하여 상기 어느 하나의 어플리케이션을 실행하는 어플리케이션 실행부 및 상기 실행된 어플리케이션에 기초하여 상기 단말로부터 수신된 제어 신호에 대응하는 결과 데이터를 생성하는 어플리케이션 데이터 처리부를 포함하는 가상 어플리케이션 서버를 제공할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 어플리케이션 데이터 처리부는 상기 단말에서 인식 가능한 제 1 프로토콜을 이용하여 상기 제어 신호를 수신하고, 상기 단말에서 인식 가능하지 않은 제 2 프로토콜을 이용하여 상기 데이터를 수집하고, 상기 제 1 프로토콜을 이용하여 상기 생성된 결과 데이터를 상기 단말로 전송할 수 있다.
또한, 본 발명의 또 다른 실시예는 단말과 연관된 적어도 하나 이상의 어플리케이션의 실행 데이터를 저장하는 단계, 상기 단말로부터 상기 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 수신하는 단계, 상기 실행 데이터를 이용하여 상기 어느 하나의 어플리케이션을 실행하는 단계, 상기 실행된 어플리케이션에 기초하여 상기 단말로부터 제어 신호를 수신하는 단계, 상기 수신된 제어 신호에 대응하는 결과 데이터를 생성하는 단계 및 상기 생성된 결과 데이터를 상기 단말로 전송하는 단계를 포함하는 어플리케이션 실행 방법을 제공할 수 있다.
또한, 본 발명의 또 다른 실시예는 사용자 인터페이스로부터 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 신호를 입력받는 신호 입력부, 상기 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 생성하는 요청 신호 생성부, 상기 생성된 요청 신호를 가상 어플리케이션 서버로 전송하는 요청 신호 전송부, 상기 가상 어플리케이션 서버로부터 상기 가상 어플리케이션 서버에서 상기 어느 하나의 어플리케이션이 실행되고 있음을 알리는 응답 신호를 수신하는 응답 신호 수신부 및 상기 실행된 어플리케이션에 기초하여 상기 가상 어플리케이션 서버로 제어 신호를 전송하고, 전송된 제어 신호에 대응하는 결과 데이터를 수신하는 어플리케이션 데이터 처리부를 포함하는 단말을 제공할 수 있다.
단말로부터 요청된 어플리케이션을 실행하고, 단말로부터 수신된 제어 신호에 대응하는 결과 데이터를 단말로 제공함으로써, 단말을 대신하여 가상 어플리케이션을 실행하는 가상 어플리케이션 서버 및 방법을 제공할 수 있다. 단말에서 인식 가능한 제 1 프로토콜을 이용하여 제어 신호를 수신하고, 단말에서 인식 가능하지 않은 제 2 프로토콜을 이용하여 데이터를 수집함으로써, 클라우드 기술에 기반하여 웹, Java, Android 등 다양한 플랫폼의 어플리케이션이 멀티 태스킹 환경에서 구동될 수 있다. 어플리케이션들이 상호간에 연동되어 데이터를 송수신할 수 있다. 단말의 기능을 가볍게 구현함으로써, 웹 브라우져만을 탑재한 N-스크린 단말에서 IPTV 서비스를 이용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 스마트 클라우드 시스템의 구성도이다.
도 2는 도 1에 도시된 가상 어플리케이션 서버(10)의 구성도이다.
도 3은 도 2의 단말(20)에서 재생되는 컨텐츠와 연관된 어플리케이션 리스트의 일 예들을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 어플리케이션 실행부(13), 어플리케이션 데이터 처리부(14) 및 어플리케이션 데이터 송수신부(15)의 구성도이다.
도 5는 도 1에 도시된 가상 어플리케이션 서버(10)의 동작의 일 예를 나타낸 동작 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 단말(20)의 구성도이다.
도 7은 본 발명의 일 실시예에 따른 어플리케이션 실행 방법을 나타낸 동작 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 일 실시예에 따른 스마트 클라우드 시스템의 구성도이다. 도 1을 참조하면, 스마트 클라우드 시스템은 가상 어플리케이션 서버(10), 복수의 단말(21 내지 23), 컨텐츠 서버(30), 부가 정보 에이전트 서버(40), 홈포털 웹 서버(50), 서비스 브로커 서버(60), 가상화 세션 브로커 서버(70) 및 어플리케이션 관리 서버(80)를 포함한다. 다만, 이러한 도 1의 스마트 클라우드 시스템은 본 발명의 일 실시예에 불과하므로 도 1을 통해 본 발명이 한정 해석되는 것은 아니다. 예를 들어, 본 발명의 다양한 실시예에 따르면, 스마트 클라우드 시스템은 복수의 단말(21 내지 23)들간의 원격 제어 세션 연결을 관리하는 원격 제어 관리 서버를 더 포함할 수도 있다.
스마트 클라우드 시스템을 구성하는 구성하는 도 1의 각 구성요소들은 일반적으로 네트워크(network)를 통해 연결된다. 네트워크는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(network)의 일 예에는 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network) 등이 포함되나 이에 한정되지는 않는다.
복수의 단말(21 내지 23)은 컨텐츠를 소비한다. 또한, 복수의 단말(21 내지 23)은 어플리케이션을 기반으로 서비스를 제공한다. 일반적으로, 복수의 단말(21 내지 23)은 내부에 어플리케이션의 실행 데이터를 저장된 실행 데이터에 기초하여 어플리케이션을 실행할 수 있다.
종래 미들웨어 기반의 단말은 단말에 탑재된 미들웨어를 기반으로 어플리케이션을 실행하고, 미들웨어가 제어하는 방식에 종속되어 어플리케이션에 필요한 데이터를 획득했다. 따라서, 미들웨어 기반의 단말은 미들웨어가 제공하는 통신 프로토콜 또는 언어에 종속될 수 밖에 없었다. 예를 들어, 즉, ACAP-J(Advanced Common Application Protocol-Java) 미들웨어를 탑재한 단말은 java 언어로 개발된 어플리케이션만 구동이 가능하다.
이에 대한 해결책으로서, 본 발명의 스마트 클라우드 시스템은 미들웨어 및 단말 소프트웨어와 같은 단말에서 요구하는 다양한 어플리케이션을 가상화함으로써, 단말의 기능을 가볍게 구현할 수 있다. 또한, 본 발명의 스마트 클라우드 시스템은 가상 어플리케이션을 기반으로 단말로 컨텐츠 메뉴와 메타데이터를 제공하여 단말로 하여금 시청할 컨텐츠를 선택할 수 있게 하고, 방송 및 VOD 재생제어 기능을 제공하는 홈포털 서비스를 웹 기반으로 제공함으로써 단말로 다양한 응용 서비스를 제공할 수 있다.
가상 어플리케이션 서버(10)는 어플리케이션을 실행한다. 이와 같은, 가상 어플리케이션 서버(10)는 다양한 플랫폼의 어플리케이션을 수용하기 위하여 웹, ACAP, Java, Android, IOS 등 다양한 실행 환경에 구동 가능한 어플리케이션 실행 데이터를 저장할 수 있다. 또한, 가상 어플리케이션 서버(10)는 하나의 단말 또는 하나의 사용자에 대응하는 여러 어플리케이션을 동시에 실행하고, 어플리케이션간의 세션 전환을 기반으로 복수의 단말(21 내지 23)로 멀티태스킹 환경을 제공할 수 있다.
가상 어플리케이션 서버(10)는 실행된 어플리케이션에 기초하여 단말로부터 수신된 제어 신호에 대응하는 결과 데이터를 생성하고, 생성된 결과 데이터를 단말로 응답한다. 예를 들어, 가상 어플리케이션 서버(10)는 단일 OS를 기반으로 복수의 가상 어플리케이션들을 구동하고, 구동된 각각의 가상 어플리케이션을 기반으로 여러 사용자들의 단말들 각각으로부터 입력된 제어 신호에 대응하는 결과 데이터를 단말들 각각으로 응답할 수 있다.
가상 어플리케이션 서버(10)는 사용자 단말 별로 세션을 설정하고, 사용자 단말들의 복수의 어플리케이션들을 실행할 수 있다. 예를 들어, 가상 어플리케이션 서버(10)는 제 1 사용자의 단말과 세션을 연결하고 연결된 세션에 기초하여 제 1 어플리케이션에 대한 제어 신호 및 결과 데이터를 제 1 사용자의 단말과 송수신하고, 제 2 사용자의 단말과 세션을 연결하고 연결된 세션에 기초하여 제 2 어플리케이션에 대한 제어 신호 및 결과 데이터를 제 2 사용자의 단말과 송수신할 수 있다.
또한, 가상 어플리케이션 서버(10)는 복수의 플랫폼 별로 서로 다른 그룹을 설정하고 그룹 별로 어플리케이션을 실행할 수도 있다. 예를 들어, 가상 어플리케이션 서버(10)는 윈도우 기반의 어플리케이션들, 안드로이드 기반의 어플리케이션들, 자바 기반의 어플리케이션들을 각각 서로 다른 그룹으로 분류하고, 분류된 그룹 별로 어플리케이션을 실행할 수 있다.
또한, 가상 어플리케이션 서버(10) 내부의 적어도 하나의 어플리케이션과 단말들간의 세션 연결은 세션 브로커 서버(70)에 의하여 제어될 수 있다. 예를 들어, 가상 어플리케이션 서버(10)는 가상화 세션 브로커 서버(70)의 제어에 대응하여 단말과의 세션 연결을 수행하고, 수행된 세션 연결을 기반으로 가상 어플리케이션 서버(10)에서 실행되는 어플리케이션에 대한 제어 신호 및 결과 데이터를 단말과 송수신할 수 있다.
복수의 단말(21 내지 23)은 복수의 단말(21 내지 23) 각각에서 소비되는 컨텐츠와 연관된 어플리케이션의 실행을 가상 어플리케이션 서버(10)로 요청하고, 실행된 어플리케이션에 대한 제어신호 및 결과 데이터를 가상 어플리케이션 서버(10)와 송수신한다. 예를 들어, 복수의 단말(21 내지 23)은 디스플레이를 통해 표시되는 컨텐츠의 상단에 오버레이된 어플리케이션들 중 상품 구매 어플리케이션의 실행을 가상 어플리케이션 서버(10)로 요청하고, 실행된 상품 구매 어플리케이션에 대한 제어신호 및 결과 데이터를 가상 어플리케이션 서버(10)와 송수신한다.
컨텐츠 서버(30)는 복수의 단말(21 내지 23)로 컨텐츠를 제공한다. 예를 들어, 컨텐츠 서버(30)는 복수의 단말(21 내지 23)로 VoD(Video on Demand) 컨텐츠 또는 실시간 방송 컨텐츠를 제공할 수 있다. 또한, 컨텐츠 서버(30)는 복수의 단말(21 내지 23)로 컨텐츠에 대한 부가 정보를 제공할 수도 있다.
컨텐츠 서버(30)는 복수의 단말(21 내지 23)로 컨텐츠를 제공함과 동시에 제공된 컨텐츠에 대한 부가 정보를 가상 어플리케이션 서버(10)로 제공할 수 있다. 예를 들어, 컨텐츠 서버(30)는 복수의 단말(21 내지 23)로 컨텐츠를 제공함과 동시에, 가상 어플리케이션 서버(10)로부터의 요청에 대응하여 컨텐츠에 대한 상품 구매 정보 또는 EPG(Electronic Program Guide) 정보를 가상 어플리케이션 서버(10)로 전송할 수 있다. 이 경우, 부가 정보는 가상 어플리케이션 서버(10)에서 실행되는 어느 하나의 어플리케이션에서 요청한 부가 정보일 수 있다.
부가 정보 에이전트 서버(40)는 가상 어플리케이션 서버(10)로부터 수신된 요청에 대응하여 데이터를 수집하고 관리한다. 예를 들어, 부가 정보 에이전트 서버(40)는 가상 어플리케이션 서버(10)에서 요청한 부가 정보를 컨텐츠 서버(30)로부터 수집하여 가상 어플리케이션 서버(10)로 제공할 수 있다. 다른 예를 들어, 부가 정보 에이전트 서버(40)는 가상 어플리케이션 서버(10)에서 요청한 웹 컨텐츠를 웹 서버로부터 수집하여 가상 어플리케이션 서버(10)로 제공할 수도 있다. 이 때, 부가 정보는 가상 어플리케이션 서버(10)에서 실행되는 어플리케이션이 외부 연동형 어플리케이션인 경우 어플리케이션의 동작 또는 단말의 요청에 대응하는 부가 정보를 의미하는 것으로서, 부가 정보 에이전트 서버(40)는 어플리케이션의 동작 또는 단말의 요청에 대응하는 부가 정보를 가상 어플리케이션 서버(10)를 대신하여 수집할 수 있다.
홈포털 웹 서버(50)는 복수의 단말(21 내지 23)로 홈포털 서비스를 제공한다. 이 때, 홈포털 서비스는 방송 서비스의 기본 어플리케이션의 하나로서 리모콘과 같은 입력 장치를 통해 홈키를 누르면 바로 화면에 출력될 수 있도록 지속적으로 세션을 유지하여, 다른 어플리케이션으로 화면전환 후 홈포털을 다시 실행하면 기본 어플리케이션으로 화면이 전환되는 서비스를 의미할 수 있다.
홈포털 웹 서버(50)는 가상 어플리케이션 서버(10)와 홈포털 서비스와 관련된 데이터를 송수신한다. 이 때, 홈포털 서비스와 관련된 데이터는 가상 어플리케이션 서버(10)에서 실행되는 가상의 기본 어플리케이션 또는 기본 어플리케이션에 대한 UI(User Interface) 어플리케이션과 관련된 데이터를 의미할 수 있다. 예를 들어, 단말에서 기본 어플리케이션인 홈포털 어플리케이션이 실행되고, 가상 어플리케이션 서버(10)에서 홈포털 어플리케이션과 연관된 UI 어플리케이션이 실행되는 경우, 홈포털 웹 서버(50)는 가상 어플리케이션 서버(10)와 UI 어플리케이션과 관련된 데이터를 송수신할 수 있다. 다른 예를 들어, 단말에서 기본 어플리케이션인 홈포털 어플리케이션이 실행되는 경우, 홈포털 웹 서버(50)는 가상 어플리케이션 서버(10)와 홈포털 어플리케이션과 관련된 데이터를 송수신할 수 있다. 이 때, 홈포털 어플리케이션과 관련된 데이터의 일 예에는 메타데이터가 포함되고, 이 경우, 가상 어플리케이션 서버(10)는 단말을 대신하여 데이터베이스와 같은 리소스를 제공할 수 있다.
서비스 브로커 서버(60)는 복수의 단말(21 내지 23)간의 세션 연결을 관리할 수도 있다. 예를 들어, 서비스 브로커 서버(60)는 복수의 단말(21 내지 23) 중 단말(23)에서 수신된 단말(21)에 대한 원격 제어 요청에 기초하여, 단말(23)과 단말(21)간의 원격 제어를 위한 세션 연결을 수행할 수 있다.
가상화 세션 브로커 서버(70)는 복수의 단말(21 내지 23)과 가상 어플리케이션 서버(10)간의 세션 연결을 관리한다. 예를 들어, 가상화 세션 브로커 서버(70)는 가상 어플리케이션 서버(10)의 어플리케이션의 실행, 동작 또는 종료를 제어할 수 있다. 또한, 가상화 세션 브로커 서버(70)는 복수의 단말(21 내지 23) 각각의 세션 정보를 저장할 수 있다. 이러한 세션 정보의 일 예에는 복수의 단말(21 내지 23) 별 어플리케이션 이용 통계 정보, 인증 정보 등이 포함된다. 또한, 가상화 세션 브로커 서버(70)는 어플리케이션들간의 세션 연결을 관리한다. 예를 들어, 가상화 세션 브로커 서버(70)는 가상 어플리케이션 서버(10) 내부에서 실행되는 복수의 어플리케이션들간에 세션 연결을 관리할 수 있다. 다른 예를 들어, 가상화 세션 브로커 서버(70)는 단말(21)에서 실행되는 제 1 어플리케이션과 가상 어플리케이션 서버(10)에서 실행되는 제 2 어플리케이션간의 세션 연결을 관리할 수도 있다.
가상화 세션 브로커 서버(70)는 복수의 단말(21 내지 23)의 어플리케이션들간의 세션 연결을 관리할 수도 있다. 예를 들어, 가상화 세션 브로커 서버(70)는 복수의 단말(21 내지 23) 중 단말(23)에서 수신된 단말(21)에 대한 원격 제어 요청에 기초하여, 단말(23)의 제 1 어플리케이션과 단말(21)의 제 2 어플리케이션간의 원격 제어를 위한 세션 연결을 수행할 수 있다.
가상화 세션 브로커 서버(70)는 단말(21)과 가상 어플리케이션 서버(10)간의 세션 연결을 수행하고, 이러한 세션 연결을 기반으로 단말(21)과 가상 어플리케이션 서버(10)에서 실행된 어플리케이션간의 데이터 송수신을 관리할 수 있다. 또한, 가상화 세션 브로커 서버(70)는 단말(21)로 가상 어플리케이션 서버(10)의 접속정보를 전달해주고, 단말(21)과 가상 어플리케이션 서버(10)간의 가상 세션을 유도할 수도 있다. 또한, 가상화 세션 브로커 서버(70)는 복수의 단말(21 내지 23) 각각과 가상 어플리케이션 서버(10)와의 세션 연결 각각을 수행하고, 세션 연결간의 우선 순위를 관리할 수도 있고, 각각의 단말과 가상 어플리케이션 서버(10)의 복수의 어플리케이션 각각과의 데이터 송수신을 관리할 수도 있다.
어플리케이션 관리 서버(80)는 가상 어플리케이션 서버(10)로 어플리케이션 실행 데이터를 제공한다. 이 때, 어플리케이션 관리 서버(80)는 외부 어플리케이션 제공 시스템으로부터 어플리케이션의 실행 데이터를 수집하고, 수집된 실행 데이터를 가상 어플리케이션 서버(10)로 제공할 수 있다. 또한, 어플리케이션 관리 서버(80)는 복수의 단말(21 내지 23)로 제공되는 방송 채널 별 어플리케이션의 실행 데이터를 수집하여, 가상 어플리케이션 서버(10)로 제공할 수도 있다.
앞서 설명된 바와 같이, 복수의 단말(21 내지 23) 각각은 컨텐츠를 소비하고, 컨텐츠와 연관된 어플리케이션의 실행을 가상 어플리케이션 서버(10)로 요청한다. 이 때, 복수의 단말(21 내지 23)은 동일 사용자 정보에 등록된 N 스크린 단말들일 수 있다.
본 발명의 다양한 실시예들에 따르면 복수의 단말(21 내지 23) 각각은 다양한 형태의 단말이다. 예를 들어, 단말은 네트워크를 통해 원격지의 서버에 접속할 수 있는 TV 장치, 컴퓨터 또는 휴대용 단말일 수 있다. 여기서, TV 장치의 일 예에는 스마트 TV, IPTV 셋톱박스 등이 포함되고, 컴퓨터의 일 예에는 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등이 포함되고, 휴대용 단말의 일 예에는 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치가 포함될 수 있다.
이하에서는 도 1의 가상 어플리케이션 서버(10)의 동작에 대해서 보다 상세하게 설명한다.
도 2는 도 1에 도시된 가상 어플리케이션 서버(10)의 구성도이다. 도 2를 참조하면, 가상 어플리케이션 서버(10)는 요청 신호 수신부(11), 어플리케이션 실행 데이터 관리부(12), 어플리케이션 실행부(13), 어플리케이션 데이터 처리부(14), 어플리케이션 데이터 송수신부(15), 세션 연결 처리부(16) 및 데이터 베이스(17)를 포함한다.
다만, 도 2에 도시된 가상 어플리케이션 서버(10)는 본 발명의 하나의 구현 예에 불과하며, 도 2에 도시된 구성요소들을 기초로 하여 여러 가지 변형이 가능하다. 예를 들어, 가상 어플리케이션 서버(10)는 관리자로부터 어떤 명령 내지 정보를 입력받기 위한 관리자 인터페이스가 더 포함될 수 있다. 이 경우, 관리자 인터페이스는 일반적으로 키보드, 마우스 등과 같은 입력 장치가 될 수도 있으나, 영상 표시 장치에 표현되는 그래픽 유저 인터페이스(GUI, Graphical User interface)가 될 수도 있다.
어플리케이션 실행 데이터 관리부(11)는 단말(20)과 연관된 적어도 하나 이상의 어플리케이션의 실행 데이터를 저장한다. 이 때, 어플리케이션 실행 데이터 관리부(11)는 어플리케이션 관리 서버(80)로 실행 데이터를 요청하고, 요청에 대한 응답으로서 실행 데이터를 수신할 수 있다.
어플리케이션 실행 데이터 관리부(11)는 단말(20)로 제공되는 방송 채널과 연관된 적어도 하나 이상의 어플리케이션의 실행 데이터를 어플리케이션 관리 서버(80)로부터 수신할 수도 있다. 이 경우, 어플리케이션 관리 서버(80)는 컨텐츠 서버(30)에서 단말(20)로 전송되는 실시간 방송 스트림의 패킷을 모니터링 및 분석하여 단말(20)로 제공되는 방송 채널과 연관된 적어도 하나 이상의 어플리케이션의 실행 데이터를 획득할 수 있다.
요청 신호 수신부(12)는 단말(20)로부터 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 수신한다. 이 때, 어플리케이션은 단말(20)에서 재생 중인 컨텐츠와 연관된 어플리케이션이고, 요청 신호는 이러한 컨텐츠의 식별 정보를 포함할 수 있다. 또한, 컨텐츠의 일 예에는 단말(20)로 제공되는 방송 컨텐츠가 포함된다.
도 3은 도 2의 단말(20)에서 재생되는 컨텐츠와 연관된 어플리케이션 리스트의 일 예들을 나타낸 도면이다. 도 3을 참조하면, 단말(20)은 디스플레이를 통해 컨텐츠의 영상(81)을 재생한다. 도 3을 참조하면, 단말(20)은 컨텐츠의 재생 중에 사용자 인터페이스로부터 입력된 명령에 대응하여 컨텐츠와 연관된 어플리케이션의 리스트(82)를 표시한다. 이 때, 어플리케이션의 리스트(82)의 일 예는 도 3에 도시된 바와 같이 각각의 어플리케이션에 대응하는 아이콘의 그룹일 수 있다. 이러한 어플리케이션의 리스트(82)는 서비스 네비게이터로 표현될 수도 있으며, 일반적으로 어플리케이션의 리스트(82)는 단말(20) 또는 가상 어플리케이션 서버(20)에서 이전에 실행된 적이 있는 어플리케이션을 포함할 수 있다. 예를 들어, 서비스 네비게이터는 가상 어플리케이션 서버(10)에서 사용자의 계정으로 현재 실행되고 있거나, 과거에 실행된 적이 있는 어플리케이션의 리스트이며, 현재 시청 중인 컨텐츠와 연관된 어플리케이션 정보를 보여줄 수도 있다.
어플리케이션의 리스트(82)는 다양한 형태의 어플리케이션의 아이콘을 포함할 수 있다. 예를 들어, 어플리케이션의 리스트(82)는 뉴스 어플리케이션, 유투브 어플리케이션, 화상 회의 어플리케이션, 게임 어플리케이션, 소셜 TV 어플리케이션, 문서작성 어플리케이션의 아이콘을 포함할 수 있다. 도 3을 통해 예시하면, 어플리케이션의 리스트(82)는 웹 브라우져 어플리케이션의 아이콘(822), 게임 어플리케이션의 아이콘(823) 및 날씨 관련 어플리케이션의 아이콘 등을 포함할 수 있다.
단말(20)은 사용자 인터페이스로부터 어플리케이션의 리스트(82)에 포함된 어플리케이션 중 어느 하나를 실행을 요청하는 명령을 입력받는 경우, 해당 어플리케이션의 실행을 가상 어플리케이션 서버(10)로 요청할 수 있다. 이 경우, 단말(20)은 해당 어플리케이션과의 세션 연결이 필요한 경우, 먼저 해당 어플리케이션과의 세션 연결을 요청하기 위한 세션 연결 요청을 가상화 세션 브로커 서버(70)로 전송하고, 해당 어플리케이션과의 가상화 세션 연결을 기반으로 해당 어플리케이션의 실행을 가상 어플리케이션 서버(10)로 요청할 수 있다. 다만, 단말(20)은 해당 어플리케이션과의 세션 연결이 유지되고 있는 경우, 해당 어플리케이션과의 세션 연결을 기반으로 해당 어플리케이션의 실행을 가상 어플리케이션 서버(10)로 요청할 수 있다. 도 3의 도시된 아이콘(824)은 가상 어플리케이션 서버(10)와의 세션 연결이 끊긴 어플리케이션의 아이콘이고, 아이콘(821)은 포인팅 마우스가 위치함에 따라 어플리케이션을 리스트(82)에서 삭제하거나, 또는 세션 연결을 끊기 위한 부분 그래픽을 포함하는 아이콘일 수 있다.
어플리케이션 실행부(13)는 실행 데이터를 이용하여 어느 하나의 어플리케이션을 실행한다. 이 때, 실행 데이터는 어플리케이션의 실행시키기 위한 명령어를 포함한다. 어플리케이션 실행부(13)는 복수의 어플리케이션들을 동시에 실행할 수도 있다. 예를 들어, 어플리케이션 실행부(13)는 웹 어플리케이션과 게임 어플리케이션을 동시에 실행할 수도 있다. 이 경우, 요청 신호 수신부(12)는 단말(20)로부터 웹 어플리케이션과 게임 어플리케이션을 실행하는 요청 신호를 수신할 수 있다.
어플리케이션의 실행 데이터는 웹, ACAP, LUA 등 다양한 프로그램언어에 기초하여 생성될 수 있다. 앞서 설명된 바와 같이, 이러한 어플리케이션의 실행 데이터는 어플리케이션 관리 서버(80)로부터 수신된다. 다만, 웹 기반 어플리케이션의 경우 홈포털 웹 서버(50)에 의해 실시간으로 업데이트되고, 업데이트된 웹 기반 어플리케이션의 실행 데이터는 홈포털 웹 서버(50)로부터 수신될 수도 있다.
어플리케이션 데이터 처리부(14)는 실행된 어플리케이션에 기초하여 단말(20)로부터 수신된 제어 신호에 대응하는 결과 데이터를 생성한다. 이 때, 제어 신호는 실행된 어플리케이션에 소정 동작이 수행될 것을 요청하는 제어 신호를 포함한다. 또한, 결과 데이터는 소정 동작의 수행 결과 데이터를 포함한다. 예를 들어, 제어 신호는 실행된 구매 관련 어플리케이션의 구매 절차가 수행될 것을 요청하는 제어 신호이고, 결과 데이터는 구매 절차 개시 화면의 영상 데이터일 수 있다.
어플리케이션 데이터 처리부(14)는 수신된 제어 신호에 기초하여 소정 외부 서버로부터 데이터를 수집하고, 수집된 데이터에 기초하여 결과 데이터를 생성할 수 있다.
본 발명의 일 실시예에 따르면, 외부 서버는 컨텐츠 서버(30)일 수 있다. 이 경우, 단말(20)은 컨텐츠 서버로부터 컨텐츠를 수신하고, 어플리케이션 데이터 처리부(14)는 수신된 제어 신호에 기초하여 컨텐츠 서버(30)로부터 단말(20)에서 이용되는 컨텐츠에 대한 부가 정보를 수집하고, 수집된 부가 정보에 기초하여 결과 데이터를 생성할 수 있다. 이 때, 부가 정보의 일 예는 단말(20)에서 이용되는 컨텐츠에 대한 메타 데이터, 채널 정보 또는 EPG 정보를 포함한다.
본 발명의 다른 실시예에 따르면, 외부 서버는 부가 정보 에이전트 서버(40)일 수 있다. 이 경우, 부가 정보 에이전트 서버(40)는 단말(20)에서 이용되는 컨텐츠에 대한 부가 정보를 컨텐츠 서버(30)로 요청하고, 이러한 요청에 대한 응답으로서 부가 정보를 수신하고, 수신된 부가 정보를 저장한다. 또한, 부가 정보 에이전트 서버(40)는 부가 정보를 어플리케이션 데이터 처리부(14)의 요청에 대응하여 어플리케이션 데이터 처리부(14)로 전송할 수 있다.
본 발명의 또 다른 실시예에 따르면, 외부 서버는 홈포털 웹 서버(50)일 수 있다. 이 때, 실행된 어플리케이션은 웹 브라우져 어플리케이션일 수 있다. 또한, 어플리케이션 데이터 처리부(15)는 단말(20)로부터 수신된 제어 신호에 기초하여 홈포털 웹 서버(50)로부터 데이터를 수집하고, 수집된 데이터에 기초하여 결과 데이터를 생성할 수 있다. 이 경우, 홈포털 웹 서버(50)로부터 수집되는 데이터는 웹 데이터를 의미할 수 있다.
어플리케이션 데이터 처리부(14)는 단말(20)에서 인식 가능한 제 1 프로토콜을 이용하여 제어 신호를 수신하고, 단말(20)에서 인식 가능하지 않은 제 2 프로토콜을 이용하여 데이터를 수집하고, 제 1 프로토콜을 이용하여 생성된 결과 데이터를 단말(20)로 전송할 수 있다. 예를 들어, 어플리케이션 데이터 처리부(14)는 ACAP만을 지원하는 단말(20)로부터 ACAP에 기초하여 제어 신호를 수신하고, 단말(20)에서 지원하지 않는 웹 프로토콜을 이용하여 데이터를 수집하고, 수집된 데이터에 기초하여 결과 데이터를 생성하고, 생성된 결과 데이터를 ACAP에 기초하여 단말(20)로 전송할 수 있다. 이를 통해, 어플리케이션 데이터 처리부(14)는 단말(20)이 지원하지 않는 프로토콜 또는 프로그램 언어에 의해 동작하는 어플리케이션에 대한 데이터도 처리할 수 있다.
어플리케이션 데이터 송수신부(15)는 단말(20)로부터 제어 신호를 수신하고, 결과 데이터를 상기 단말로 전송한다. 이러한 제어 신호 및 결과 데이터는 단말(20)과 가상 어플리케이션 서버(10)간의 세션 연결을 통하여 송수신될 수 있다.
세션 연결 처리부(16)는 단말(20)과의 세션 연결을 수행한다. 이 때, 세션 연결 처리부(16)는 단말(20)과의 세션 연결을 관리하는 가상화 세션 브로커 서버(70) 와의 세션 연결 메시지를 송수신함으로써, 단말(20)과의 세션 연결을 수행할 수 있다. 일반적으로, 가상화 세션 브로커 서버(70)는 가상 어플리케이션 서버(10) 내부의 어플리케이션들의 시작, 종료 또는 데이터 연동을 관리한다. 또한, 가상화 세션 브로커 서버(70)는 단말(20)로부터 요청에 대응하여 개인 별로 가상 어플리케이션 서버(10)에서 실행되고 있는 어플리케이션의 목록 및 상태를 관리할 수 있다.
또한, 가상화 세션 브로커 서버(70)는 현재 가상 어플리케이션 서버에서 실행 중인 어플리케이션 정보를 단말(20)로 전송하고, 개인별 어플리케이션 최대 실행 개수, 세션 종료 시간, 사용자 아이디 등록 및 세션 아이디 매핑 관리 등 단말(20)과 가상 어플리케이션 서버(10) 또는 단말(20)과 어플리케이션과의 세션 관리를 수행할 수 있다.
일반적으로, 앞서 설명된 요청 신호 수신부(12)는 세션 연결을 통하여 단말(20)로부터 요청 신호를 수신하고, 어플리케이션 데이터 처리부(14)는 세션 연결을 통하여 제어 신호 및 결과 데이터를 단말(20)과 송수신할 수 있다.
본 발명의 일 실시예에 따르면, 세선 연결 처리부(16)는 단말(20)과의 복수의 세션 연결을 수행한다. 이 경우, 요청 신호 수신부(12)는 단말(20)과의 복수의 세션 연결 중 제 1 세션 연결을 통하여 제 1 요청 신호를 수신하고, 제 2 세션 연결을 통하여 제 2 요청 신호를 수신할 수 있고, 어플리케이션 실행부(13)는 제 1 요청 신호에 대응하는 제 1 어플리케이션을 실행하고, 제 2 요청 신호에 대응하는 제 2 어플리케이션을 실행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 어플리케이션 실행부(13), 어플리케이션 데이터 처리부(14) 및 어플리케이션 데이터 송수신부(15)의 구성도이다. 도 4를 참조하면, 어플리케이션 실행부(13)는 제 1 요청 신호에 대응하는 제 1 어플리케이션을 실행하고, 제 2 요청 신호에 대응하는 제 2 어플리케이션을 실행한다. 이 때, 제 1 어플리케이션의 일 예는 단말(20)에서 이용 중인 컨텐츠와 연관된 어플리케이션이고, 제 2 어플리케이션의 일 예는 웹 브라우져 어플리케이션이다.
도 4를 참조하면, 어플리케이션 데이터 송수신부(15)는 제 1 세션 연결에 기초하여 단말로부터 제어 신호를 수신하고, 어플리케이션 데이터 처리부(14)는 실행된 제 1 어플리케이션에 기초하여 단말(20)로부터 수신된 제어 신호에 대응하는 제 1 데이터를 생성한다. 이후, 어플리케이션 데이터 처리부(14)는 생성된 제 1 데이터를 이용하여 제 2 어플리케이션으로부터 제 2 데이터를 수신하고, 수신된 제 2 데이터에 기초하여 결과 데이터를 생성한다. 어플리케이션 데이터 송수신부(15)는 제 2 세션 연결을 기초하여 결과 데이터를 단말(20)로 전송한다. 이와 같이, 단말(20)과 각각의 어플리케이션간에 독립된 세션 연결을 기반으로 데이터가 송수신될 수 있다. 다만, 본 발명의 다른 실시예에 따르면, 세션연결 자체가 서버 리소스를 많이 차지하기 때문에 사용자별로 하나의 세션을 연결시키고 그 세션 내에서 여러 어플리케이션을 동시에 실행시키고 어플리케이션을 실행, 종료 또는 전환시키는 방식이 이용될 수도 있다.
본 발명의 일 실시예에 따르면, 단말(20)은 동일 사용자 정보에 등록된 복수의 단말 중 제 1 단말이고, 실행 요청 수신부(11)는 복수의 단말 중 제 2 단말로부터 제 1 단말과 연관된 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 수신하고, 어플리케이션 데이터 처리부(14)는 제 2 단말로부터 수신된 제어 신호에 대응하는 결과 데이터를 생성할 수 있다. 다시 말하면, 실행 요청 수신부(11)는 복수의 단말 중 제 2 단말로부터 수신된 요청 신호에 대응하여 제 1 단말에 대응하는 어플리케이션을 실행할 수 있다는 것이다.
이 경우, 세션 연결 처리부(16)는 제 1 단말과 제 2 단말간의 세션 연결을 수행한다. 일반적으로 단말들간의 세션 연결 역시 앞서 설명된 바와 같이, 서비스 브로커 서버(70)에 의하여 수행될 수 있으나, 본 발명의 다른 실시예에 따르면, 단말들간의 세션 연결은 원격재생 및 제어를 위한 별도의 세션 관리 서버(도시되지 않음)에 의하여 수행될 수도 있다. 또한, 단말들간의 세션 연결은 단말들 각각의 어플리케이션들간의 세션 연결을 의미할 수도 있다. 이 경우, 단말들 각각의 어플리케이션들 각각은 가상 어플리케이션 서버(10)에 의하여 가상 어플리케이션 서버(10)에서 실행될 수 있다.
본 발명의 일 실시예에 따르면, 제어 신호는 제 2 단말이 제 1 단말에 대한 원격 제어 또는 재생을 요청하는 원격 제어 신호일 수 있다. 또한, 제어 신호는 제 2 단말의 제 2 어플리케이션이 제 1 단말의 제 1 어플리케이션에 대한 원격 제어 또는 재생을 요청하는 원격 제어 신호일 수도 있다. 이 경우, 단말들 각각의 어플리케이션들 각각은 가상 어플리케이션 서버(10)에 의하여 가상 어플리케이션 서버(10)에서 실행될 수도 있다.
데이터 베이스(17)는 데이터를 저장한다. 이 때, 데이터는 가상 어플리케이션 서버(10) 내부의 각 구성요소들 간에 입력 및 출력되는 데이터를 포함하고, 가상 어플리케이션 서버(10)와 가상 어플리케이션 서버(10) 외부의 구성요소들간에 입력 및 출력되는 데이터를 포함한다. 예를 들어, 데이터베이스(17)는 단말(20)로부터 입력된 제어 신호를 저장할 수 있다. 이러한 데이터베이스(17)의 일 예에는 가상 어플리케이션 서버(10) 내부 또는 외부에 존재하는 하드디스크드라이브, ROM(Read Only Memory), RAM(Random Access Memory), 플래쉬메모리 및 메모리카드 등이 포함된다.
도 5는 도 1에 도시된 가상 어플리케이션 서버(10)의 동작의 일 예를 나타낸 동작 흐름도이다. 도 5를 참조하면, 가상화 서비스 브로커 서버(70)는 단말(20)로부터 인증 요청을 수신하고(S501), 단말(20)에 대한 인증을 수행한다(S502). 가상 어플리케이션 서버(10)는 가상화 서비스 브로커 서버(70)로부터 단말(20)과의 세션 연결을 요청하는 요청 신호를 수신하고(S503), 단말(20)과의 세션 연결을 수행한다. 다만, 본 발명의 다른 실시예에 따르면, 가상화 서비스 브로커 서버(70)는 로드 밸런싱을 고려하여 유휴한 가상 어플리케이션 서버의 접속 정보 또는 인증 정보를 단말(20)로 전송하고, 단말(20)이 직접 단계 S504를 통해 가상 어플리케이션 서버(10)와의 세션 연결을 수행할 수도 있다.
도 5를 참조하면, 가상 어플리케이션 서버(10)는 세션 연결을 기반으로 단말(20)로부터 어플리케이션의 실행을 요청하는 요청 신호를 수신하고(S505), 단말(20)과 연관된 어플리케이션을 실행한다(S506). 가상 어플리케이션 서버(10)는 실행된 어플리케이션에 기반하여 단말(20)로부터 제어 신호를 수신하는 경우, 수신된 제어 신호에 대응하는 데이터를 부가 정보 에이전트 서버(40)로 요청하고(S507), 부가 정보 에이전트 서버(40)로부터 데이터를 수신한다(S509). 가상 어플리케이션 서버(10)는 수신된 데이터를 처리하여 제어 신호에 대응하는 결과 데이터를 생성하고(S510), 생성된 결과 데이터를 단말(20)로 전송한다(S511). 이와 같은 도 5의 동작 흐름은 가상 어플리케이션 서버(10)의 일 실시예에 불과하므로, 본 발명이 도 5의 내용으로 한정 해석되는 것은 아니다.
도 6은 본 발명의 일 실시예에 따른 단말(20)의 구성도이다. 도 6을 참조하면, 단말(20)은 신호 입력부(201), 요청 신호 생성부(202), 요청 신호 전송부(203), 응답 신호 수신부(204), 어플리케이션 데이터 처리부(205), 데이터베이스(206)를 포함한다. 다만, 도 6에 도시된 단말(20)은 본 발명의 하나의 구현 예에 불과하며, 도 4에 도시된 구성요소들을 기초로 하여 여러 가지 변형이 가능하다. 예를 들어, 단말(20)은 사용자로부터 어떤 명령 내지 정보를 입력받기 위한 사용자 인터페이스가 더 포함할 수 있다. 다른 예를 들어, 단말(20)은 일반적인 단말에 포함된 영상 처리부, 음성 처리부 등을 더 포함할 수도 있다.
신호 입력부(201)는 사용자 인터페이스로부터 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 신호를 입력받는다. 이 때, 사용자 인터페이스는 신호 입출력을 위한 키보드 또는 마우스와 같은 제어 장치뿐 아니라, web camera, 마이크, 스피커 및 프린터 등 모든 형태의 주변 장치가 포함될 수 있으며, 이런 주변 장치를 통한 결과 데이터 출력을 위해 가상 어플리케이션 서버(10)는 출력실행을 서버에서 하고, 해당 출력물은 단말에 연결된 주변장치에서 실행되도록 처리될 수도 있다. 일반적으로, 이와 같이 가상 어플리케이션 상의 데이터 출력을 위해 단말의 장치인식 및 데이터 출력은 서버에서 이루어지고 실제 데이터 출력은 단말에 연결된 장치를 통해 이루어지는 방식을 device redirection이라고 한다.
요청 신호 생성부(202)는 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 생성한다. 요청 신호 전송부(203)는 생성된 요청 신호를 가상 어플리케이션 서버(10)로 전송한다. 응답 신호 수신부(204)는 가상 어플리케이션 서버(10)로부터 가상 어플리케이션 서버(10)에서 어느 하나의 어플리케이션이 실행되고 있음을 알리는 응답 신호를 수신한다. 어플리케이션 데이터 처리부(205)는 실행된 어플리케이션에 기초하여 가상 어플리케이션 서버(10)로 제어 신호를 전송하고, 전송된 제어 신호에 대응하는 결과 데이터를 수신한다.
데이터베이스(206)는 데이터를 저장한다. 이 때, 데이터는 단말(20) 내부의 각 구성요소들 간에 입력 및 출력되는 데이터를 포함하고, 단말(20)과 단말(20) 외부의 구성요소들간에 입력 및 출력되는 데이터를 포함한다. 이러한 데이터베이스(206)의 일 예에는 단말(20) 내부 또는 외부에 존재하는 하드디스크드라이브, ROM(Read Only Memory), RAM(Random Access Memory), 플래쉬메모리 및 메모리카드 등이 포함된다.
이와 같은 단말(20)은 앞서 설명된 단말(20)을 의미한다. 다시 말하면, 단말(20)은 도 1 내지 도 5를 통해 설명된 단말(20)의 동작을 모두 수행할 수 있는 형태의 단말을 의미한다. 따라서, 이하에서 단말(20)에 대해서 설명되지 아니한 사항은 앞서 도 1 내지 도 5를 통해서 설명된 단말(20) 에 대해서 설명된 내용을 준용한다. 즉, 이하에서 단말(20)에 대해서 설명되지 아니한 사항은 앞서 도 1 내지 도 5를 통해 설명된 내용과 동일하거나, 설명된 내용으로부터 당업자에 의하여 용이하게 유추 가능하므로 이하 설명을 생략한다.
도 7은 본 발명의 일 실시예에 따른 어플리케이션 실행 방법을 나타낸 동작 흐름도이다. 도 7에 도시된 실시예에 따른 어플리케이션 실행 방법은 도 2에 도시된 실시예에 따른 가상 어플리케이션 서버(10)에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라고 하더라도 도 2의 가상 어플리케이션 서버(10)에 관하여 이상에서 기술된 내용은 도 7에 도시된 실시예에 따른 어플리케이션 실행 방법에도 적용된다.
단계 S71에서 어플리케이션 실행 데이터 관리부(11)는 단말(20)과 연관된 적어도 하나 이상의 어플리케이션의 실행 데이터를 저장한다. 단계 S72에서 요청 신호 수신부(12)는 단말(20)로부터 상기 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 수신한다. 단계 S73에서 어플리케이션 실행부(13)는 실행 데이터를 이용하여 어느 하나의 어플리케이션을 실행한다. 단계 S74에서 어플리케이션 데이터 처리부(14)는 실행된 어플리케이션에 기초하여 단말(20)로부터 제어 신호를 수신한다. 단계 S75에서 어플리케이션 데이터 처리부(14)는 수신된 제어 신호에 대응하는 결과 데이터를 생성한다. 단계 S76에서 어플리케이션 데이터 송수신부(15)는 생성된 결과 데이터를 단말(20)로 전송한다.
도 7을 통해 설명된 실시예에 따른 어플리케이션 실행 방법은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 가상 어플리케이션 서버
11: 어플리케이션 실행 데이터 관리부
12: 요청 신호 수신부
13: 어플리케이션 실행부
14: 어플리케이션 데이터 처리부
16: 세션 연결 처리부
20: 단말

Claims (20)

  1. 단말로부터 요청된 어플리케이션을 실행하는 가상 어플리케이션 서버에 있어서,
    상기 단말과 연관된 적어도 하나 이상의 어플리케이션의 실행 데이터를 저장하는 어플리케이션 실행 데이터 관리부;
    상기 단말로부터 상기 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 수신하는 요청 신호 수신부;
    상기 실행 데이터를 이용하여 상기 어느 하나의 어플리케이션을 실행하는 어플리케이션 실행부; 및
    상기 실행된 어플리케이션에 기초하여 상기 단말로부터 수신된 제어 신호에 대응하는 결과 데이터를 생성하는 어플리케이션 데이터 처리부를 포함하되,
    상기 어플리케이션 데이터 처리부는 상기 가상 어플리케이션 서버와 상기 단말 간의 제 1 세션 연결을 통하여 상기 단말로부터 상기 제어 신호를 수신하고, 상기 가상 어플리케이션 서버와 상기 단말 간의 제 2 세션 연결을 통하여 상기 결과 데이터를 상기 단말로 전송하는 가상 어플리케이션 서버.
  2. 제 1 항에 있어서,
    상기 어플리케이션 데이터 처리부는 상기 수신된 제어 신호에 기초하여 소정 외부 서버로부터 데이터를 수집하고, 수집된 데이터에 기초하여 상기 결과 데이터를 생성하는 것인, 가상 어플리케이션 서버.
  3. 제 2 항에 있어서,
    상기 어플리케이션 데이터 처리부는 상기 단말에서 인식 가능한 제 1 프로토콜을 이용하여 상기 제어 신호를 수신하고, 상기 단말에서 인식 가능하지 않은 제 2 프로토콜을 이용하여 상기 데이터를 수집하고, 상기 제 1 프로토콜을 이용하여 상기 생성된 결과 데이터를 상기 단말로 전송하는 것인, 가상 어플리케이션 서버.
  4. 제 2 항에 있어서,
    상기 어느 하나의 어플리케이션은 상기 단말에서 재생 중인 컨텐츠와 연관된 어플리케이션이고,
    상기 요청 신호는 상기 컨텐츠의 식별정보를 포함하는 것인, 가상 어플리케이션 서버.
  5. 제 4 항에 있어서,
    상기 외부 서버는 컨텐츠 서버이고,
    상기 단말은 상기 컨텐츠 서버로부터 컨텐츠를 수신하고,
    상기 어플리케이션 데이터 처리부는 상기 수신된 제어 신호에 기초하여 상기 컨텐츠 서버로부터 상기 컨텐츠에 대한 부가 정보를 수집하고, 수집된 부가 정보에 기초하여 상기 결과 데이터를 생성하는 것인, 가상 어플리케이션 서버.
  6. 제 4 항에 있어서,
    상기 외부 서버는 부가 정보 에이전트 서버이고,
    상기 부가 정보 에이전트 서버는 상기 컨텐츠의 컨텐츠 서버로부터 상기 부가 정보를 수신하고, 수신된 부가 정보를 저장하는 것인, 가상 어플리케이션 서버.
  7. 제 2 항에 있어서,
    상기 어느 하나의 어플리케이션은 웹 브라우져 어플리케이션이고,
    상기 외부 서버는 홈포털 웹 서버이고,
    상기 어플리케이션 데이터 처리부는 상기 수신된 제어 신호에 기초하여 상기 홈포털 웹 서버로부터 데이터를 수집하고, 수집된 데이터에 기초하여 상기 결과 데이터를 생성하는 것인, 가상 어플리케이션 서버.
  8. 제 1 항에 있어서,
    상기 단말과의 세션 연결을 수행하는 세션 연결 처리부를 더 포함하고,
    상기 요청 신호 수신부는 상기 세션 연결을 통하여 상기 요청 신호를 수신하고,
    상기 어플리케이션 데이터 처리부는 상기 세션 연결을 통하여 상기 제어 신호를 수신하는 것인, 가상 어플리케이션 서버.
  9. 제 8 항에 있어서,
    상기 세션 연결 처리부는 단말과의 세션 연결을 관리하는 가상화 세션 브로커 서버와의 세션 연결 메시지를 송수신함으로써, 상기 단말과의 세션 연결을 수행하는 것인, 가상 어플리케이션 서버.
  10. 제 1 항에 있어서,
    상기 단말과의 복수의 세션 연결을 수행하는 세션 연결 처리부를 더 포함하고,
    상기 요청 신호 수신부는 상기 복수의 세션 연결 중 상기 제 1 세션 연결을 통하여 제 1 요청 신호를 수신하고, 상기 제 2 세션 연결을 통하여 제 2 요청 신호를 수신하고,
    상기 어플리케이션 실행부는 상기 제 1 요청 신호에 대응하는 제 1 어플리케이션을 실행하고, 상기 제 2 요청 신호에 대응하는 제 2 어플리케이션을 실행하는 것인, 가상 어플리케이션 서버.
  11. 제 10 항에 있어서,
    상기 제 1 어플리케이션은 상기 단말에서 이용 중인 컨텐츠와 연관된 어플리케이션이고, 상기 제 2 어플리케이션은 웹 브라우져 어플리케이션인 것인, 가상 어플리케이션 서버.
  12. 제 10 항에 있어서,
    상기 어플리케이션 데이터 처리부는 상기 실행된 제 1 어플리케이션에 기초하여 상기 단말로부터 수신된 제어 신호에 대응하는 제 1 데이터를 생성하고, 상기 생성된 제 1 데이터를 이용하여 상기 실행된 제 2 어플리케이션으로부터 제 2 데이터를 수신하고, 수신된 제 2 데이터에 기초하여 상기 결과 데이터를 생성하는 것인, 가상 어플리케이션 서버.
  13. 삭제
  14. 제 1 항에 있어서,
    상기 단말은 동일 사용자 정보에 등록된 복수의 단말 중 제 1 단말이고,
    상기 요청 신호 수신부는 상기 복수의 단말 중 제 2 단말로부터 상기 제 1 단말과 연관된 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 수신하고,
    상기 어플리케이션 데이터 처리부는 상기 제 2 단말로부터 수신된 제어 신호에 대응하는 결과 데이터를 생성하는 것인, 가상 어플리케이션 서버.
  15. 제 14 항에 있어서,
    상기 제어 신호는 상기 제 2 단말이 상기 제 1 단말에 대한 원격 제어 또는 재생을 요청하는 원격 제어 신호인 것인, 가상 어플리케이션 서버.
  16. 제 14 항에 있어서,
    상기 제 1 단말과 상기 제 2 단말간의 세션 연결을 수행하는 세션 연결 처리부를 더 포함하는 것인, 가상 어플리케이션 서버.
  17. 제 1 항에 있어서,
    상기 어플리케이션 실행 데이터 관리부는 상기 적어도 하나 이상의 어플리케이션의 실행 데이터를 어플리케이션 관리 서버로부터 수신하고,
    상기 적어도 하나 이상의 어플리케이션은 상기 단말로 제공되는 방송 컨텐츠와 연관된 어플리케이션인 것인, 가상 어플리케이션 서버.
  18. 제 1 항에 있어서,
    상기 단말로부터 상기 제어 신호를 수신하고, 상기 결과 데이터를 상기 단말로 전송하는 어플리케이션 데이터 송수신부를 더 포함하는 가상 어플리케이션 서버.
  19. 가상 어플리케이션 서버에 의하여 단말로부터 요청된 어플리케이션을 실행하는 방법에 있어서,
    단말과 연관된 적어도 하나 이상의 어플리케이션의 실행 데이터를 저장하는 단계;
    상기 단말로부터 상기 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 수신하는 단계;
    상기 실행 데이터를 이용하여 상기 어느 하나의 어플리케이션을 실행하는 단계;
    상기 실행된 어플리케이션에 기초하여 상기 단말로부터 제어 신호를 수신하는 단계;
    상기 수신된 제어 신호에 대응하는 결과 데이터를 생성하는 단계; 및
    상기 생성된 결과 데이터를 상기 단말로 전송하는 단계를 포함하되,
    상기 단말로부터 제어 신호를 수신하는 단계는
    상기 가상 어플리케이션 서버와 상기 단말 간의 제 1 세션 연결을 통하여 상기 단말로부터 상기 제어 신호를 수신하는 단계를 포함하고,
    상기 생성된 결과 데이터를 상기 단말로 전송하는 단계는
    상기 가상 어플리케이션 서버와 상기 단말 간의 제 2 세션 연결을 통하여 상기 결과 데이터를 상기 단말로 전송하는 단계를 포함하는 것인, 어플리케이션 실행 방법.
  20. 사용자 인터페이스로부터 적어도 하나 이상의 어플리케이션 중 어느 하나의 어플리케이션의 실행을 요청하는 신호를 입력받는 신호 입력부;
    상기 어느 하나의 어플리케이션의 실행을 요청하는 요청 신호를 생성하는 요청 신호 생성부;
    상기 생성된 요청 신호를 가상 어플리케이션 서버로 전송하는 요청 신호 전송부;
    상기 가상 어플리케이션 서버로부터 상기 가상 어플리케이션 서버에서 상기 어느 하나의 어플리케이션이 실행되고 있음을 알리는 응답 신호를 수신하는 응답 신호 수신부; 및
    상기 실행된 어플리케이션에 기초하여 상기 가상 어플리케이션 서버로 제어 신호를 전송하고, 전송된 제어 신호에 대응하는 결과 데이터를 수신하는 어플리케이션 데이터 처리부를 포함하되,
    상기 어플리케이션 데이터 처리부는
    상기 가상 어플리케이션 서버와 단말 간의 제 1 세션 연결을 통하여 상기 가상 어플리케이션 서버로 상기 제어 신호를 전송하고,
    상기 가상 어플리케이션 서버와 상기 단말 간의 제 2 세션 연결을 통하여 상기 결과 데이터를 수신하는 단말.
KR1020110147163A 2011-12-30 2011-12-30 단말로부터 요청된 가상 어플리케이션을 실행하는 서버 및 방법, 그리고 단말 KR101909257B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110147163A KR101909257B1 (ko) 2011-12-30 2011-12-30 단말로부터 요청된 가상 어플리케이션을 실행하는 서버 및 방법, 그리고 단말

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110147163A KR101909257B1 (ko) 2011-12-30 2011-12-30 단말로부터 요청된 가상 어플리케이션을 실행하는 서버 및 방법, 그리고 단말

Publications (2)

Publication Number Publication Date
KR20130078300A KR20130078300A (ko) 2013-07-10
KR101909257B1 true KR101909257B1 (ko) 2018-12-20

Family

ID=48991301

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110147163A KR101909257B1 (ko) 2011-12-30 2011-12-30 단말로부터 요청된 가상 어플리케이션을 실행하는 서버 및 방법, 그리고 단말

Country Status (1)

Country Link
KR (1) KR101909257B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102140497B1 (ko) * 2015-09-04 2020-08-03 주식회사 케이티 커맨드(Command) 방식의 클라우드 아이피티브이 서비스를 제공하는 클라우드 웹 서버, 셋톱 박스 및 시스템
KR102036984B1 (ko) * 2018-02-23 2019-10-25 조선대학교산학협력단 정보취약계층을 위한 정보 제공 방법
KR102585067B1 (ko) * 2018-05-15 2023-10-06 (주)엠아이웨어 컨텐츠 확보 어플리케이션을 포함하는 서버와 이의 구동 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010044552A (ja) * 2008-08-12 2010-02-25 Hitachi Ltd リクエスト処理方法及び計算機システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010044552A (ja) * 2008-08-12 2010-02-25 Hitachi Ltd リクエスト処理方法及び計算機システム

Also Published As

Publication number Publication date
KR20130078300A (ko) 2013-07-10

Similar Documents

Publication Publication Date Title
US10924561B2 (en) System and method for predictive delivery of prioritized content
EP3226569B1 (en) System for controlling device, digital device, and method for controlling same
US10986470B2 (en) Bi-directional integration and control of managed and unmanaged devices
US20100248698A1 (en) Mobile terminal device inlcuding mobile cloud platform
US20170332116A1 (en) Multimedia device and control method therefor
US9226021B2 (en) Method and system for realizing mutual control of multimedia terminals in the home
US20140298361A1 (en) Remote User Interface
US9971612B2 (en) Widget execution device and associated application for use therewith
US10063923B2 (en) Digital device and control method thereof
US10423139B2 (en) Device control method and apparatus, and device control system
US10289428B2 (en) Digital device and method of processing screensaver thereof
US9756393B2 (en) Recording option for advertised programs
US10945023B2 (en) Digital device and method of processing data in said digital device
KR20210058791A (ko) 클라우드 기반 유저 인터페이스 제공 시스템 및 그 방법
KR101909257B1 (ko) 단말로부터 요청된 가상 어플리케이션을 실행하는 서버 및 방법, 그리고 단말
KR100739794B1 (ko) UPnP 네트워크에서 방송 컨텐츠를 제공하는 방법 및장치
CN112004125A (zh) 媒体资源播放方法及显示设备
JP5780611B2 (ja) 画像表示方法、映像処理システム、携帯端末、及び携帯端末の操作プログラム
KR100666125B1 (ko) 하나 이상의 멀티미디어 단말을 구비하는 홈 네트워크상에서의 ip 스트리밍 관리 시스템
US20120117627A1 (en) Authority Control Systems and Methods
KR20130073742A (ko) 단말들의 어플리케이션들간의 세션 연결을 수행하는 세션 연결 서버 및 방법, 그리고 단말
KR101142850B1 (ko) Iptv 셋톱 박스 및 그 구현 방법
CN218387657U (zh) 一种基于云计算的多屏互动系统
US20130061274A1 (en) Apparatus and method for managing a plurality of services
KR101451399B1 (ko) 콘텐츠의 스크랩 정보를 관리하는 서버 및 방법, 그리고 스크랩 정보를 전송하는 단말

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant