KR101419635B1 - Iptv 단말에서의 방법과 배치 - Google Patents

Iptv 단말에서의 방법과 배치 Download PDF

Info

Publication number
KR101419635B1
KR101419635B1 KR1020127029359A KR20127029359A KR101419635B1 KR 101419635 B1 KR101419635 B1 KR 101419635B1 KR 1020127029359 A KR1020127029359 A KR 1020127029359A KR 20127029359 A KR20127029359 A KR 20127029359A KR 101419635 B1 KR101419635 B1 KR 101419635B1
Authority
KR
South Korea
Prior art keywords
application
event
applications
manager
target
Prior art date
Application number
KR1020127029359A
Other languages
English (en)
Other versions
KR20130001736A (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 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘)
Publication of KR20130001736A publication Critical patent/KR20130001736A/ko
Application granted granted Critical
Publication of KR101419635B1 publication Critical patent/KR101419635B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 방법 및 웹 엔진에 관련된다. 본 발명의 첫번째 면에 따르면 애플리케이션들의 표시를 가능하게 하는 API와 관련된 애플리케이션 프레임워크를 포함한 STB(셋톱박스)과 같은 ITF(IPTV 단말 기능)를 위해 구성된 웹 엔진이 제공된다. 애플리케이션 프레임워크는 적어도 두 개의 애플리케이션을 저장하기 위한 메모리를 포함하며, 애플리케이션들은 서로에 대하여 계층적 트리 구조로 배치된다. 애플리케이션 프레임워크는 예를 들어 키 누름과 같은 이벤트를 수신하기 위한 수신 유닛, 및 디스패치를 제어하기 위한 제어기를 추가로 포함한다. 제어기는 이벤트를 랩핑하고 랩핑 해제하기 위한 이벤트 랩퍼와 애플리케이션 수형도를 타고서 랩핑된 이벤트를 전달하기 위한 디스패처를 포함할 수 있다. 각각의 애플리케이션 노드(또한 루트 노드)을 위해 애플리케이션 관리자는 이벤트가 현재 애플리케이션에 의해 처리되어야 할지를 결정하도록 구성된다.

Description

IPTV 단말에서의 방법과 배치{METHOD AND ARRANGEMENT IN AN IPTV TERMINAL}
본 출원은 2010년 4월 9일 출원된 미국 임시 특허 출원 제61/322,444호의 혜택을 주장하는데, 이 출원은 여기에서 참조로서 통합된다.
본 발명의 실시예들은 IPTV(인터넷 프로토콜 TV) 단말의 이벤트 관리에 관한 것인데, 특히 IPTV 장치에서 이용할 수 있는 애플리케이션들에 의한 이벤트들의 처리에 관한 것이다.
최종 사용자들이 제한된 특징 세트(feature set)에 국한되지 않고 전통적 TV 서비스들과 관련하여 새로운 애플리케이션들을 다운로드하고 구동할 수 있는 경우에, IPTV 공급자들에 대해 확장가능한 솔루션을 제공하라는 요구들이 증가하고 있다.
IPTV 솔루션들에 사용되는 웹 애플리케이션들에 대해, 주요 기존 기술은 위젯(widget)들로도 알려진 웹 애플리케이션들을 위한 패키징 및 전달 방법을, 위젯들에 서명하기 위한 메커니즘과 함께 규정한 W3C 위젯이다.
애플리케이션 프레임워크는 클라이언트측상에서 돌아가는데, 위젯들을 로딩하고, 관리하고, 이를 레이아웃하는 것에 대한 책임이 있다. W3C(WWW 컨소시엄) 위젯 사양은 위젯들이 실행되는 애플리케이션/위젯 프레임워크를 규정하지 않는다. 그 대신에 다양한 시장 부문들이 그들의 특정 부문에 적합한 위젯 실행을 위한 그들 자신의 애플리케이션 관리자들을 규정했다.
전통적 애플리케이션 모델들에서, 디스플레이 스택의 상위에 있는 애플리케이션은 포커싱된 애플리케이션(focused application)이고 사용자로부터 입력 이벤트들을 수신한다. 이것은 예를 들어 윈도 기반 PC상에서 보일 수 있다. 애플리케이션들(프로그램들)은 PC 데스크톱상의 사각형 영역들로 사용자에게 표시된다. 상위에 표시된 애플리케이션은 포커싱된 애플리케이션이고, 그러므로 모든 입력 이벤트들, 예를 들어 키와 마우스 이벤트들을 수신한다.
IPTV에 맞춘 애플리케이션 모델에서는, 요구들이 약간 다르다. 애플리케이션들은 비슷한 방식으로 레이아웃될 것으로 예상되지만 최상위의 애플리케이션이 항상 모든 입력 이벤트들을 수신하는 것이 요망되지는 않는다. 예를 들어 TV상의 방송 TV 채널을 표시하는 애플리케이션이 전체 화면에 표시되는 것을 고려해 보자. 이런 애플리케이션의 상위에 스크린의 날씨 위젯이 작은 영역에 표시된다. 날씨 위젯은 포커싱된 경우 좌측/우측 키 누름에 반응하지만, 날씨 위젯이 포커싱된 경우에도 그 밑에 있는 방송 애플리케이션은 업/다운 키 누름에 응답할 수 있어야만 하는데, 그 이유는 업/다운 키들이 채널 재핑(channel zapping)을 위해 사용되고 또한 사용자가 채널 재핑이 항상 동작하기를 기대하기 때문이다.
그러므로, 포커싱된 애플리케이션 외의 다른 애플리케이션들이 이벤트를 인터셉트하는 것을 허용하는 것을 포함하는 IPTV 솔루션들에 적합한 이벤트 인터셉트(event intercept)를 달성하는 것이 바람직하다.
IPTV 솔루션들에 적합한 이벤트 인터셉트를 달성하기 위해, 본 발명의 실시예들은 포커싱된 애플리케이션 이외의 다른 애플리케이션들이 이벤트를 인터셉트하는 것을 허용하는 개념을 도입한다.
이벤트 인터셉트는 본 발명의 실시예들에 따른 이벤트 랩핑(event wrapping)에 의해 달성된다. 애플리케이션 프레임워크는 프레임워크에서 모든 애플리케이션들을 구조화시키는데 DOM 기반 모델을 사용할 수 있다. 이런 DOM 기반 모델은 이벤트 모델 전체에 걸쳐 이벤트들을 처리하기 위해 DOM 이벤트 기반 모델을 사용한다. 특정 이벤트, 예를 들어 키 누름 이벤트는 IPTV 솔루션에서 포커싱된 애플리케이션이 아닐 수 있는 특정 애플리케이션을 항상 목표로 할 수 있기 때문에, 특정 이벤트는 목표로 하는 특정 애플리케이션에 의해 인식가능해야만 되지만 여전히 정상 이벤트(normal event)로서 처리할 수 있어야 한다. 이것을 달성하기 위해, 본 발명의 실시예들에 따라 이벤트 랩핑(event wrapping)이 도입된다. 특정 애플리케이션을 목표로 하는 이벤트가 애플리케이션 모델에서 발생할 때, 애플리케이션 관리자는 이벤트를 eventWrapper 구조로 랩핑하고, 이벤트 모델을 통하여 이것을 디스패치(dispatch)한다. 이벤트가 목표로 하는 특정 애플리케이션에 도달할 때, 이벤트는 랩핑 해제되고(unwrapped) 원래의 이벤트가 추가로 설명하는 대로 타깃상에 디스패치된다.
특정 애플리케이션은 상기 특정 애플리케이션에 대해 의도된 이벤트들을 인식하고 그러므로 인식된 이벤트들은 종래 기술에서와 같이 포커싱된 애플리케이션으로 진행하지 않는다.
이벤트 랩핑을 도입함으로써, DOM 이벤트 모델은 다중 문서(즉, 다중 애플리케이션) 시나리오 하에서 동작하도록 확장된다. 이것은 DOM 이벤트들로부터의 모든 공통 실시(practice)들이 또한 다중 애플리케이션 환경에서 유용하게 되는 것을 의미한다. 이러한 실시들은 특징 측면(feature perspective)(애플리케이션들이 이들의 자식 애플리케이션들이 어떤 종류의 이벤트들을 처리할지 허용되는 것을 제어하기 위한 능력, 다중 애플리케이션들이 이벤트들을 공유하기 위한 능력, 기타 등등)으로부터 볼 때 그리고 구현 측면(implementation perspective)(브라우저들과 같은 웹 기술 사용자 에이전트들이 이미 DOM 이벤트들을 위한 지원을 포함하고, 애플케이션 프레임워크를 지원할 때 이것을 재사용할 수 있음)으로부터 볼 때 두 개의 측면 모두가 애플리케이션 환경에 매우 유용하다.
그러므로, 본 발명의 실시예들이 갖는 목적은 어떤 애플리케이션이 포커싱된 애플리케이션이 아닐지라도 이벤트가 그런 애플리케이션에 의해 처리될 수 있게 하는 것에 있다.
이것은 애플리케이션들의 표시를 가능하게 하는 API와 관련된 애플리케이션 프레임워크를 포함하는 ITF를 위해 구성된 웹 엔진에서의 방법에 의한 첫번째 양상이 제공됨에 따라 달성된다. 본 방법에서, 적어도 두 개의 애플리케이션이 저장되며, 여기서 애플리케이션들은 서로에 대하여 계층적 트리 구조(hierarchical tree structure)로 배치된다. 또한 타깃 애플리케이션(target application)으로서 언급된 적어도 하나의 애플리케이션을 목표로 하는 이벤트가 수신된다. 본 방법은 적어도 하나의 애플리케이션을 목표로 하는 수신된 이벤트의 디스패치의 제어를 추가로 포함한다. 이것은 포커싱된 애플리케이션이 아닌 애플리케이션들이 이벤트를 수신하고 처리할 수 있다는 것을 함의한다. 이런 제어는 수신된 이벤트를 타깃 애플리케이션에게 디스패치하고 또한 각각의 애플리케이션에 대해 이벤트가 현재 애플리케이션에 의해 처리되어야만 하는지를 결정하는 것을 추가로 포함하고, 이것이 처리되어야 한다면 이후 본 방법은 현재 애플리케이션에 대해 이벤트를 처리하는 것을 포함하고, 이것이 처리되지 말아야 한다면 이후 본 방법은 계층적 트리 구조에서 이벤트를 차순의 애플리케이션에게 디스패치하는 것을 포함한다.
일 실시예에 따르면, 이런 제어는 디스패치 전에 이벤트를 랩핑하는 것을 추가로 포함하고, 이벤트는 그리고 나서 처리 전에 랩핑 해제된다.
본 발명의 일 실시예에 따르면, 각각의 애플리케이션에 대해 랩핑된 이벤트가 현재 애플리케이션에 의해 처리되어야 하는지를 결정하는 것은 랩핑된 이벤트를 조사하고 이벤트가 현재 애플리케이션상에서 적용 가능하지를 확인하는 것에 의해 수행된다. 대안적으로, 결정하는 것은 애플리케이션 관리자에 의해 수행된다.
본 실시예들의 목적이 애플리케이션들의 표시를 가능하게 하는 API와 관련된 애플리케이션 프레임워크를 포함하는 ITF를 위해 구성된 웹 엔진에 의한 두번째 양상에 따라 추가로 달성된다. 애플리케이션 프레임워크는 적어도 두 개의 애플리케이션을 저장하기 위한 메모리를 포함하며, 여기서 애플리케이션들은 서로에 대하여 계층적 트리 구조로 배치된다. 애플리케이션 관리자는 적어도 하나의 애플리케이션을 목표로 하는 이벤트를 수신하기 위한 수신기, 및 적어도 하나의 애플리케이션을 목표로 하는 이벤트들의 디스패치를 제어하기 위한 제어기를 포함한다. 애플리케이션 관리자는 수신된 이벤트를 타깃 애플리케이션을 향하여 디스패치하기 위한 디스패처(dispatcher)를 추가로 포함하고, 제어기는 각각의 애플리케이션에 대해 수신된 이벤트가 현재 애플리케이션에 의해 처리되어야 하는지를 결정하기 위해 추가로 구성된다.
본 발명의 실시예에 따르면, 제어기는 수신된 이벤트를 랩핑하고 랩핑 해제하기 위한 이벤트 랩퍼(event wrapper)를 포함한다.
추가 실시예에 따르면, 제어기는 이벤트를 조사하고 또한 이벤트가 현재 애플리케이션에 의해 처리되어야 하는지를 결정하기 위해 이벤트가 현재 애플리케이션상에서 적용 가능하지를 확인하도록추가로 구성된다. 대안적으로, 애플리케이션 관리자는 이벤트들에 대한 타깃 애플리케이션인 애플리케이션의 정보를 저장하기 위해 추가로 구성된다.
또한, 실시예에 따라서, 애플리케이션 프레임워크는 애플리케이션들을 구조화시키는데 DOM(Document Object Model) 기반 모델을 사용하도록 구성되고, ITF는 셋톱박스, 이동 단말기 또는 PC중 임의의 것일 수 있다.
본 발명의 실시예들에 의한 장점은, 이것이 기존의 애플리케이션 프레임워크들에서 이용할 수 있었던 것보다 애플리케이션들 간의 공존에 있어서 더 큰 융통성을 허용한다는 것이다. 이 융통성은 IPTV 애플리케이션 환경에서 매우 중요하다.
도 1은 본 발명의 실시예들에 따라 애플리케이션 모델과 책임자 우선 순위들의 예를 도해한다.
도 2는 본 발명의 실시예들에 따른 애플리케이션 프레임워크를 도해한다.
도 3은 단일 파일/문서가 본 발명의 실시예들에 따라 애플리케이션 관리자에서 로딩될 때의 애플리케이션 모델을 도해한다.
도 4는 본 발명의 실시예들에 따라 우측에서의 다중 애플리케이션들이 애플리케이션 관리자에 로딩되는 경우의 애플리케이션 모델과 좌측에서의 애플리케이션 모델의 가능한 시각화를 도해한다.
도 5는 본 발명의 실시예들에 따른 애플리케이션 모델에서 DOM 캡처 버블 페이즈를 도해한다.
도 6은 방송 TV 채널을 표시하는 TV 애플리케이션을 도해한다.
도 7은 본 발명의 실시예들에 따른 이벤트 랩핑을 도해한다.
도 8 및 도 9는 본 발명의 실시예들에 따른 배치를 보여준다.
도 10은 본 발명의 실시예의 흐름도이다.
본 발명의 실시예들은 본 발명의 실시예들이 도해된 첨부 도면을 참조하여 이하에서 더 완전히 기술될 것이다. 그러나, 본 발명의 실시예들은 많은 상이한 형태들로 실시될 수 있고, 여기 제시된 실시예들에만 국한되는 것으로 해석하지 말아야 하고, 오히려 이러한 실시예들은 본 개시가 철저하고 완전한 것이 되고, 본 발명의 범위를 당업자에게 충분히 전달하기 위해 제공된 것이다. 도면에서, 유사 참조 부호들을 유사 요소들을 가리킨다.
 더욱이, 당업자는 이하에 설명되는 수단과 기능들이 프로그래밍된 마이크로프로세서 또는 범용 컴퓨터와 연계하여 동작하는 소프트웨어를 사용하여 및/또는 ASIC을 이용하여 구현될 수 있다는 것을 알 것이다. 현재 실시예들이 주로 방법들과 장치들의 형태로 기술되기는 하지만, 실시예들이 또한 컴퓨터프로그램 제품뿐만 아니라 컴퓨터 프로세서, 컴퓨터 프로세서에 결합된 메모리를 포함하는 시스템으로 구현될 수 있다는 - 메모리는 여기 개시된 기능들을 수행할 수 있는 하나 이상의 프로그램들로 인코딩됨- 것을 알 것이다.
본 발명의 실시예들은 일반적으로 W3C 위젯들과 웹 애플리케이션들 모두에 대해 적용할 수 있는 애플리케이션 프레임워크를 규정한다. 또한, 본 발명의 실시예들은 미래 요구들을 위해 쉽게 확장가능하도록 설계되고, 또한 TV 환경 이외의 다른 환경들에 대해서도 사용될 수 있다.
OIPF(Open IPTV Forum) DAE(Declarative Application Environment) 사양의 v. 1.1 사양은 애플리케이션 관리자와 상응하는 애플리케이션 모델의 정의를 포함한다. DAE 애플리케이션 모델에 W3C 위젯 지원을 추가하기 위해 OIPF에서 진행중인 작업 항목이 또한 있다. 본 발명의 실시예들은 DAE 애플리케이션 모델과 부분적으로 보조를 맞춘다(align). 그러나, 주요 차이가 주목될 수 있다:
DAE에서의 애플리케이션 관리자는 단지 애플리케이션들의 플랫 리스트(flat list)를 노출시킬 뿐이다. 그러나, 본 발명의 실시예들에서, 애플리케이션들은 계층적 트리 모델로 배치되고 트리 모델은 직접적으로 애플리케이션들에게 노출된다. 이는 실시예들이 각각의 사용자 에이전트가 이미 지원하는 DOM 모델과 보조를 맞추고 또한 이것이 강력하면서도 기존 웹 표준들 호환 가능하기도 한 애플리케이션들에 대한 DOM 기반 이벤트 모델을 사용하는 것을 가능하게 하는 것을 뜻한다. DOM은 HTML, XHTML과 XML 문서들에서 객체들을 표현하고 이들과 상호작용하기 위한 플랫폼을 넘나드는(cross-platform) 언어 독립적 규약이다. (이것의 "엘리먼트들"과 같은) DOM의 특징들은 사용중인 프로그래밍 언어의 신택스(syntax) 내에서 다루어지고 조작된다. DOM의 공공 인터페이스는 그것의 API(Application Programming Interface)에 특정된다.
용어 및 정의:
API는 사용자 인터페이스가 인간들과 컴퓨터들 사이의 상호작용을 용이하게 하는 방식과 유사하게, 다른 소프트웨어와의 상호작용을 가능하게 하기 위해 소프트웨어 프로그램에 의해 구현되는 인터페이스이다. API들은 프로그래머가 그들의 서비스들을 사용하기 위해 채택해야 하는 어휘 및 호출 규칙들을 결정하기 위해 애플리케이션들, 라이브러리들 및 운영 체계들에 의해 구현된다. 이것은 루틴들, 데이터 구조들, 객체 클래스들, 웹 애플리케이션들이 플랫폼상의 본래적으로 구현된 기능성에 도달할 수 있게 하는 API 인터페이스들의 구현자(implementer)와 소비자 사이에서 통신하는 데에 사용되는 프로토콜들을 위한 사양들을 포함할 수 있다.
웹 엔진은 웹 애플리케이션들이 실행되는 원래적 컴포넌트이다. 웹 브라우저는 웹 엔진의 전형적 예이다.
애플리케이션 프레임워크는 웹 애플리케이션들과 위젯들을 관리하고 표시하기 위한 전부 클라이언트측 환경이다. 그러므로, 웹 애플리케이션은 브라우저 지원되는 언어와 조합된 DOM 기반 마크업 포맷, 전형적으로는 자바스크립트 코드와 함께 된 하나의 SVG 또는 HTML 문서/파일을 포함하는 것으로 전형적으로는 간주된다. 또한, 소프트웨어 공학에서, 웹 애플리케이션은 인터넷 또는 인트라넷과 같은 네트워크상에서 웹 브라우저를 통해 액세스되는 애플리케이션이다. 용어 웹 애플리케이션은 브라우저-제어된 환경(예를 들어 자바 애플릿)에서 호스팅되거나, (HTML과 같은 브라우저-렌더링된 마크업 언어와 조합되는 자바스크립트와 같은) 브라우저-지원된 언어로 코딩되고 또한 애플리케이션이 실행되도록 렌더링하기 위해 공통 웹 브라우저에 의존하는 컴퓨터 소프트웨어 애플리케이션을 의미할 수 있다.
위젯은 W3C 위젯 사양 패밀리에서 규정된다. 기본적으로 위젯은 클라이언트측에 다운로드되고 국소적으로 저장될 수 있는 정의된 패키징 방식을 가진 웹 애플리케이션으로 볼 수 있다. 따라서, 위젯들은 온라인과 오프라인 실행 모두에 적합하다. 본 설명의 범위에서 위젯의 정의는 위젯이 웹 애플리케이션의 특수화라고 진술하는 데까지 확장되는데, 즉, 위젯 정의는 W3C 정의된 위젯 거동과 관련된 웹 애플리케이션의 모든 속성을 가지고 있다. 그러나, 위젯은, 애플리케이션 프레임워크 내로 로딩되지 않고서 장치상에 설치될 수 있는 반면에 (국소적으로 저장됨), 애플리케이션은 원격 위치로부터 프레임워크 내로 직접적으로 로딩된다(국소적으로 애플리케이션을 저장하기 위한 어떤 방법도 없음).
위젯이, 이것의 속성을 고려하면, UA(사용자 에이전트)에서 국소 저장(설치)에 적합할지라도, 위젯이 반드시 설치되어야만 한다는 어떤 필수 요구사항도 없다는 것을 주목하라. 사용자 에이전트는 예를 들어 자신이 국소적으로 위젯들을 저장하지 못하게 막지만, 여전히 위젯들이 실행되는 것을 허용할 수 있는 저장 제한들을 가질 수 있다. 이러한 의미에서, 위젯들은 정확하게 웹 애플리케이션들처럼 행동하지만 여전히 위젯 특정적 속성들에 종속된다.
이 사양의 맥락 하에서, 애플리케이션은 애플리케이션 관리자에 의해 관리되고, 이 사양에서 규정된 인터페이스들과 메커니즘들을 준수하는 웹 애플리케이션 또는 위젯인 것으로 간주된다. 이런 사양이 웹 애플리케이션(예를 들어 기본 HTML 페이지) 또는 위젯이 웹 애플리케이션의/위젯의 마크업 또는 자바스크립트 코드에서의 어떠한 수정도 없이 애플리케이션으로서 기능할 수 있도록 하는 그러한 방법으로 작성된다는 것을 주목하시오.
그러므로, 이 명세서 전체에 걸쳐 용어 애플리케이션은 웹 애플리케이션들과 위젯들 모두에 대해 사용된다. 용어 위젯은 그것이 특히 논의된 애플리케이션의 위젯 특수화일 때에만 사용된다.
애플리케이션 관리자는 애플리케이션들의 레이아웃과 관리를 제어하기 위한 메커니즘이다. 애플리케이션 관리자는 플랫폼 공급자에 의해 제어된다.
사용자 에이전트(UA)는 본 명세서에 의해 적용 가능한 범위까지 위젯 사용자 에이전트로서 또한 언급될 수 있는 구현이다. IPTV 세그먼트에서의 에이전트들은 종종 ITF(IPTV 종단 기능들)로서 언급된다. 그러나, 더 일반적 용어 UA가 이 명세서 전반에 걸쳐 이용된다.
다양한 책임자(stakeholder)들이 이하에 규정되고, 본 발명의 실시예들에 따라 책임자 제어를 위한 모델이 규정된다. 책임자 제어를 위한 모델이 도 1에 도해된다.
플랫폼 책임자는 플랫폼의 공급자인데, 전형적으로 STB 또는 TV 장비의 공급자이다. 플랫폼 책임자는 애플리케이션 레이아웃을 플랫폼의 본래 사용자 경험(UX)과 맞추어주기 위해 애플리케이션들을 제어하는 데에 관심을 가지고 있다. 하나의 예로서, TV 장비 공급자 X는, 특정 시점에 진행될 수 있는 서비스와는 독립적으로, TV의 본래 외관과 느낌에 맞추어 메뉴에서 이용 가능 위젯들을 표시하기를 바랄 수 있다.
서비스 책임자는 서비스의 제공자인데, 전형적으로 TV 서비스들을 그것의 가입자들에게 제공하는 운영자이다. 운영자는 그 자신의 서비스들의 UX(사용자 경험)를 제공하고 가능한 대로 원래의 UX를 감추는 데에 관심을 가지고 있다. 이것은 애플리케이션 제어를 서비스 UX의 일체화된 부분으로서 제공하기 위한 능력을 포함한다. 예를 들면, TV 서비스 제공자 Y는 서비스 제공자의 포털에 통합된 메뉴에서 이용 가능한 위젯들을 표시하기를 바랄 수 있다.
애플리케이션 책임자는 특정 애플리케이션의 공급자이다. 애플리케이션 책임자는 예를 들면, 똑같은 애플리케이션 공급자로부터의 애플리케이션들의 리스트를 표시하기 위해, 자신 내로부터 다른 애플리케이션들을 제어하는 데에 관심을 가지고 있을 수 있다.
정의된 책임자들은 다음과 같이, 고위 수준에서 하위 수준까지의 순서로 우선순위화된다: 플랫폼 책임자 - 서비스 책임자 - 애플리케이션 책임자. 최상위 우선 순위자가 결정하면, 즉 플랫폼 책임자가 모든 애플리케이션들이 플랫폼 제어된 UI(사용자 인터페이스)를 통하여 제어될 것이라고 결정했다면 서비스 또는 애플리케이션 책임자가 이 결정을 번복하기 위한 어떤 방법도 없다.
책임자 우선 순위들을 제어하기 위한 기초적 메커니즘은 애플리케이션 관리자 및 이것이 제어하는 애플리케이션 모델을 통한다. 책임자들은 애플리케이션 관리자를 제어하고 애플리케이션 관리자는, 다음 차례로, 애플리케이션 속성들의 수정들 및 다른 애플리케이션들의 추가/인보킹(invoking)에 관하여 애플리케이션들로부터의 모든 요청들을 제어한다. 여기에서 플랫폼 책임자는 자신이 애플리케이션 관리자를 제어하기 때문에 다른 책임자들의 권한을 제한하기 위한 기회를 가지고 있다. 게다가, 애플리케이션 모델은 트리 구조를 가지고 있고 루트 노드는 플랫폼 책임자가, 예를 들면, 특정 이벤트들이 모델을 트래버스(traverse)하는 것을 중단시킴으로써, 다른 책임자들의 제어를 제한하기 위한 로직을 추가할 수 있는 플랫폼 제어된 노드이다. 유사하게, 루트 노드 아래에 있는 노드는 전형적으로는 서비스 책임자에 의해 제어되고, 따라서 애플리케이션 책임자 제어를 제한하기 위한 유사한 로직을 포함할 수 있다.
애플리케이션 관리자에 의해 제어되는 애플리케이션 모델은 모든 노드가 애플리케이션들인 경우의 정상 DOM 트리 모델일 수 있다. 이 경우에, 애플리케이션들은 DOM3(DOM 레벨 3 코어) 엘리먼트, ElementTraversal 및 애플리케이션 모델이 트래버스되고 또한 애플리케이션들이 추가되고 그로부터 제거되도록 하는 노드 인터페이스들의 부분집합을 물려받는다.
수형도에서의 루트 노드는 애플리케이션 관리자에 의해 제어되는 숨겨진 시스템 노드이다. 그것은 결코 제거되거나 수정되지 않고 모든 애플리케이션들은 숨겨진 노드에 대해 자식 노드들로서 추가된다. 루트 노드는 예를 들면 빌트인 원시적 위젯 바(built in, native, widget bar)일 수 있다. 또는 그것은 예를 들어, TV을 끄는 것과 같이, 특정 기능성이 모든 위젯들에 의해 사용되는 것을 차단하기 위해 특정 이벤트들이 모델에서 아래로 내려가는 것을 막는 비가시적 애플리케이션일 수 있다.
단일 웹 애플리케이션, 예를 들어 플레인 SVG 파일이 UA에 의해 표시되는 경우, 모델은 단일 파일/문서가 애플리케이션 관리자에서 로딩될 때 애플리케이션 모델을 보여주는 도 3에 도해된 것처럼 보일 것이다.
루트 애플리케이션을 제외하고 각각의 애플리케이션은 애플리케이션 프레임워크에서 결합된 문서 객체를 가진다. 문서는 특정한 애플리케이션의 DOM을 나타내고, 모델에서 임의의 다른 애플리케이션과 독립적인데, 즉, 애플리케이션들이 별개의 스크립트 문맥에서 실행하는 별개의 DOM을 가지고 있다.
더 큰 애플리케이션 수형도의 예가 다중 애플리케이션이 애플리케이션 관리자에서 로딩될 때 (우측에) 애플리케이션 모델을 보여주는 도 4에 도해된다. 도면은 좌측에 어떻게 애플리케이션들이 스크린상에 표시될 수 있는지 예시한다. 자식 노드들은 그 부모 노드로부터 속성들을 상속받을 수 있다. 예를 들면, 부모가 제거(remove)되면 자식이 제거되지만 다른 속성들, 예를 들어 투명성(transparency)과 같은 것은, 곧 나올 버전들을 위해 고려될 수 있다. 사용자가 애플리케이션이 반 투명(semi-transparent)일 것이라고 말할 수 있다면, 자식 애플리케이션들도 반투명이어야 한다.
본 발명의 실시예에 따른 애플리케이션 관리자는 DOM 2 이벤트 모델을 기반으로 한 이벤트 모델을 사용할 수 있다.
DOM 수형도에서의 유일한 노드는 특정한 시점에 입력 이벤트들(키 이벤트들, 마우스 이벤트들,...)의 타깃이다. 이는 키 입력과 같은 이벤트가 타깃 애플리케이션으로 갈 것이지만, 이를 하기 전에, 그것은 상위 노드로부터 타깃 애플리케이션까지 내려가면서 타깃 노드의 모든 부모들(조상들)을 통과할 것이다. 이것은 캡처 페이즈(capture phase)로 불린다. 본 발명의 실시예들에 따라서 각각의 통과 노드는 이벤트를 캡처할 수 있는데, 즉, 이벤트를 멈추게 할 수 있다. 일단 이벤트가 타깃 애플리케이션에 도달했다면, 타깃 애플리케이션은 이벤트를 캡처하고, 즉 이벤트를 멈추게 하고, 또는 다시 똑같은 노드들로 올라가 통과하도록 하는데, 이는 버블 페이즈(bubble phase)라고 불린다. 캡처링과 버블 페이즈는 DOM 이벤트 모델의 일부이다.
이벤트 타깃이 항상 현재 포커싱된 애플리케이션이 되는 종래 기술 솔루션과 달리, 본 발명의 실시예들은 타깃 애플리케이션이 현재 포커싱된 그런 애플리케이션과 독립적으로 임의의 애플리케이션일 수 있는 모델을 도입한다. 그러나, DOM2의 캡처와 버블 페이즈들 모두는 본 발명의 실시예들에 의해서 지원된다.
DOM2 이벤트 모델에 따르면 이벤트는 루트에서 시작하고, 캡처 페이즈 동안 타깃 애플리케이션을 향하여 수형도를 트래버스한다. 계층적 모델을 이용함으로써 각각의 통과 애플리케이션은 본 발명의 실시예들에 따라서 애플리케이션이 포커싱된 애플리케이션인지에 독립적으로 애플리케이션이 타깃 애플리케이션이라면 이벤트를 캡처할 수 있다. 이벤트가 타깃 애플리케이션에 도달할 때, 이것은 타깃 애플리케이션에 의해 처리된다. 타깃 애플리케이션이 이벤트를 캡처하지 않으면, 이벤트는 다시 루트까지 수형도를 따라 위로 트래버스하는데, 이는 버블 페이즈로서 지칭된다. 각각의 통과 애플리케이션은 추가적 버블로부터 이벤트를 차단(즉, 캡처)할 수 있다.
도 5는 이벤트가 이벤트 타깃으로서 지칭되는 타깃 애플리케이션을 향하여 트래버스하는 경우의 DOM2 캡처/버블 페이즈들을 예시한다.
임의의 애플리케이션이, 이 애플리케이션이 포커싱된 애플리케이션이라는 것과는 독립적으로, 타깃 애플리케이션이 되도록 하기 위해 계층적 애플리케이션 모델이 이벤트 랩퍼와 조합된다. 애플리케이션 관리자는 이벤트 랩퍼를 포함하고 이벤트 랩퍼는 타깃 애플리케이션을 향하여 트래버스되어야 하는 이벤트를 랩핑하기 위해 구성된다. 그러므로, 랩핑된 이벤트는 애플리케이션들의 수형도를 통하여 트래버스된다. 각각의 애플리케이션은 현재 애플리케이션이 이벤트를 처리하여야 하는지를 확인하기 위해 랩핑된 이벤트를 조사하도록 구성된다. 현재 애플리케이션이 자신이 타깃 애플리케이션이라고 결정하면, 애플리케이션 관리자는 이벤트를 랩핑 해제하고 현재 애플리케이션은 랩핑 해제된 이벤트를 수신하고, 정상 이벤트로서 랩핑 해제된 이벤트를 처리한다. 현재 애플리케이션이 자신이 타깃 애플리케이션이 아니라고 결정하면, 애플리케이션 관리자는 수형도에서 랩핑된 이벤트를 차순의 애플리케이션에게 디스패치한다. 도2는 본 발명의 실시예에 따른 애플리케이션 프레임워크(203)를 예시한다. 애플리케이션 프레임워크(203)는 애플리케이션 관리자(200) 및 계층적 순서로 배치된 애플리케이션들(202)을 저장하는 메모리(204)를 포함한다. 또한, 애플리케이션 관리자(200)는 이벤트를 수신하도록 구성된 수신기(205) 및 디스패치를 제어하도록 구성된 제어기(207)를 포함한다. 제어기(207)는 디스패처(206)에 의한 디스패치를 제어하고, 이벤트 랩퍼(201)를 추가로 포함한다. 애플리케이션 관리자가 애플리케이션들(202)을 제어하기 때문에, 애플리케이션 관리자(200)는 자신이 랩핑된 이벤트를 랩핑 해제해야 할지의 여부 또는 자신이 랩핑된 이벤트를 차순의 애플리케이션으로 디스패치해야 할지를 알 수 있다.
타깃 애플리케이션의 조상들인 모든 애플리케이션들은 eventWrapper 이벤트를 듣기(listen) 위해 애플리케이션의 문서 노드상에 이벤트 청취자(event listener)를 추가함으로써 이벤트를 듣도록 등록할 수 있다. 그러므로, 임의의 웹 애플리케이션이 이벤트를 수신하기 위해서는, 이것은 그 이벤트를 위한 청취자를 등록하여야만 한다. 사용자가 마우스로 애플리케이션을 클릭하지만 애플리케이션이 마우스 이벤트 청취자를 등록하지 않았으면, 아무것도 발생하지 않을 것이다. 동일한 사항이 eventWrapper 이벤트에 적용된다. eventWrapper 이벤트는 애플리케이션 수형도를 통한 도중에서 실제 이벤트를 랩핑하는 이벤트 랩퍼(201)에 의해 실행되는 특별한 이벤트다.
eventWrapper 이벤트가 타깃 애플리케이션에 도달할 때, 즉 이벤트가 랩핑 해제될 때, 랩핑된 이벤트는 그것이 단일-문서 환경에 있었던 것처럼 타깃 애플리케이션과 관련된 문서상에 디스패치된다. 랩핑 해제된 이벤트는 문서에 의해 정상 방식으로 처리된다. 문서를 떠날 때, 캡처되지 않으면, 그것은 다시 eventWrapper 이벤트에 랩핑되고, 애플리케이션 수형도를 따라 위로 버블하기를 시작한다.
이벤트 랩핑은 다음과 같은 예에 의해 예시된다:
1. 애플리케이션 관리자(200)는 시스템에 의해 수신기(205)를 통해 이벤트(e)(예를 들어 키 '1')를 수신한다. 이벤트는 프레임워크(203)에서 메모리(204)에 저장된 애플리케이션들(202) 중 하나를 목표로 삼는다.
2. 애플리케이션 관리자(200)의 이벤트 랩퍼(201)는 eventWrapper 이벤트(ew)를 생성하고, 이벤트를 랩핑한다.
3. 애플리케이션 관리자(200)는 타깃 애플리케이션을 향하여 랩핑된 이벤트를 모델 수형도의 아래로 통과시킨다. 랩핑된 이벤트는 랩핑된 이벤트가 현재 애플리케이션에 적용가능한지 확인하기 위해 그것이 통과하는 각각의 애플리케이션(202)에 의해 조사된다. 랩핑된 이벤트가 현재 애플리케이션에게 적용가능하면, 현재 애플리케이션이 타깃 애플리케이션이라는 것을 함의한다.
4. 랩핑된 이벤트가 타깃 애플리케이션에 도달할 때, 애플리케이션 관리자(200)는 이벤트를 랩핑 해제하고, 타깃 애플리케이션상으로 랩핑 해제된 이벤트를 디스패치한다.
5. 이벤트가 타깃 애플리케이션에 의해 캡처되지 않으면, 애플리케이션 관리자는 이벤트 랩퍼에 이벤트를 되돌려 놓고, 실제 이벤트를 포함하는 랩핑된 이벤트를 모델 위로 버블한다. 이것은 애플리케이션이 다른 애플리케이션들이 이벤트를 처리하는지에 아랑곳하지 않는 경우들에 적용가능하다. 그러므로, 애플리케이션이 다른 애플리케이션들이 이벤트를 이용하는 것에 아랑곳하지 않으면 이는 이벤트를 캡처해서는 안 된다.
이 거동은 추가로 도 6과 연계하여 이하에 예시된다.
방송 TV 채널을 표시하는 TV 애플리케이션(601)을 고려하시오. 날씨 위젯(602)은 TV 애플리케이션(601)의 상부에 표시되고 날씨 위젯(602)은 포커싱을 가진다. 날씨 위젯이 포커싱을 가지고 있을 때, 날씨 위젯은 여러 날들에서 날씨 전망들 간에 탐색하는데 사용되는 좌측/우측 키 누름들을 듣는다.
날씨 위젯이 포커싱을 가지고 있을지라도, TV 애플리케이션은 사용자가 정상적인 키 업/다운으로 채널을 변경하는 것을 허용하고 싶어한다. 애플리케이션들이 본 발명의 실시예들에 따라 계층적 모델로 배치되기 때문에, 포커싱된 애플리케이션이 아닌 다른 애플리케이션들이 이벤트를 처리할 수 있다. 이 경우에, 날씨 위젯은 TV 애플리케이션에 의해서 추가되고, TV 애플리케이션의 자식이다. 그러므로 TV 애플리케이션은 날씨 위젯의 부모이고, 모든 이벤트들은 날씨 위젯 쪽으로 아래로 가는 도중에서의 캡처 페이즈 동안 TV 애플리케이션을 통과하려고 할 것이다. 따라서, TV 애플리케이션은 이벤트가 업 또는 다운 키 누름인지를 확인할 것이다. 그것이 사실이라면, TV 애플리케이션은 이벤트를 처리할 것이고, 그렇지 않으면 애플리케이션 관리자는 이벤트를 날씨 위젯쪽으로 추가로 디스패치할 것이다.
상술한 바와 같이, 애플리케이션 관리자는 이벤트를 랩핑하고, 계층적 트리 모델을 통하여 이벤트를 디스패치한다. 랩핑된 이벤트는 타깃 애플리케이션의 정보를 포함한다. 랩핑된 이벤트가 통과하는 각각의 애플리케이션에서, 현재 애플리케이션은 이벤트가 현재 애플리케이션에 의해 처리되어야 할지를 결정하기 위해 랩핑된 이벤트를 조사한다. 현재 애플리케이션이 이벤트를 처리하여야 한다면, 즉 현재 애플리케이션이 타깃 애플리케이션임을 뜻하면, 애플리케이션 관리자는 통지를 받고 애플리케이션이 정상 이벤트로서 이벤트를 처리할 수 있도록 이벤트를 랩핑 해제한다. 애플리케이션에서, 어떻게 애플리케이션이 이벤트를 처리하여야 하는지가 규정된다. 이것은 아래 코드 예들에 의해 예시된다:
TV 애플리케이션 :
Figure 112012091888999-pct00001

날씨 애플리케이션 :
Figure 112012091888999-pct00002
상기에 언급된 것처럼, 키 이벤트와 같은 입력 이벤트가 UA에서 발생한 경우, 애플리케이션 관리자의 이벤트 랩퍼는 도 7a 및 도 7b에 도시된 것과 같이 eventWrapper 이벤트에 의해 이벤트를 랩핑하고, 애플리케이션 수형도를 따라 아래로 그것을 보낸다.
도 7a-7c에서 도시된 예에서, 첫번째 스톱(stop)은 도 7a에 나타난 바와 같이 애플리케이션 수형도의 숨겨진 루트 노드이다. 여기에서 플랫폼 책임자는 그가 그렇게 희망한다면 특정한 이벤트들을 처리하고 캡처하기 위한 기회를 갖는다. 예를 들면, 특정한 키는 항상 원시 플랫폼 메뉴와 관련될 수 있고, 그밖에 어떤 것을 위해서도 결코 사용되지 말아야 한다. 이 키는 루트 노드에서 캡처될 것이다.
루트 노드로부터 시작하여, 랩핑된 이벤트는 도 7b에 설명된 것과 같이 애플리케이션 관리자에 의해 제어되어 타깃을 향하여 수형도를 따라 아래로 옮겨간다. 다음 스톱은 TV 애플리케이션 노드이다. 여기에서 TV 애플리케이션은 상기에 코드 예에 따라 키 이벤트를 검사할 것이고 이벤트가 채널 변경 이벤트와 관련된다면 이벤트를 정지시킨다.
이벤트가 그 대신에 날씨 위젯의 관리와 관련된다면, TV 애플리케이션은 랩핑된 이벤트가 통과하는 것을 허용할 것이다. 그것의 다음 스톱은, 도 7c에 나타난 바와 같은 날씨 애플리케이션인 실제 이벤트 타깃이다.
타깃 애플리케이션에서, 애플리케이션 관리자는 이벤트를 랩핑 해제함으로써 랩핑 이벤트를 제거하고(remove), 적용 가능한 애플리케이션 문서상에 키 이벤트를 디스패치한다. 상기 코드 예에 따를 때, 날씨 애플리케이션은 좌측/우측 키들의 경우에 이벤트를 처리하고 정지시킨다. 다른 모든 경우들에서는, 이벤트는 정지되지 않을 것이다.
이벤트가 정지되지 않으면, 애플리케이션 관리자는 eventWrapper 이벤트의 이벤트를 랩핑 해제하고, 캡처/버블 페이즈를 완성하기 위해 이벤트가 수형도를 통하여 위로 버블하도록 한다. 이 마지막 단계가 우측으로 도면에 도해되지 않았다는 것을 주목하시오.
본 발명의 첫번째 실시예에 따르면, 웹 엔진은 STB(셋톱박스)와 같은 ITF(IPTV 단말 기능) (210)를 위해 구성되고, 애플리케이션들의 표시를 가능하게 하는 API와 관련된 애플리케이션 프레임워크(203)를 포함하는데, 도 8에 설명된 것과 같이 제공된다. 애플리케이션 프레임워크(203)는 적어도 두 개의 애플리케이션(202)을 저장하기 위한 메모리(204)를 포함하며, 여기서 애플리케이션들(202)은 서로에 대하여 계층적 트리 구조로 배치되고 적어도 두 개의 애플리케이션 중 하나는 포커싱된 애플리케이션일 수 있다. 애플리케이션 프레임워크(203)는, 예를 들어 키 누름과 같은 이벤트를 수신하기 위한 수신 유닛(205) 및 디스패치를 제어하기 위한 제어기(207)를 포함하는 애플리케이션 관리자(200)를 추가로 포함한다. 일 실시예에 따르면, 제어기(207)는 이벤트의 랩핑 및 랩핑 해제를 위한 이벤트 랩퍼(201) 및 애플리케이션 수형도를 통해 랩핑된 이벤트를 아래로 전달하기 위한 디스패처(207)를 포함한다. 각각의 애플리케이션 노드(또한 루트 노드)에 대해 애플리케이션 관리자(200)는 이벤트가 제어기(206)를 이용하여 현재 애플리케이션에 의해 처리되어야 하는지를 결정하도록 구성된다.
그러므로 애플리케이션 관리자(200)의 제어기(206)는 이벤트들의 디스패치를 제어한다. 실시예에 따라서, 애플리케이션 관리자(200) 랩들의 이벤트 랩퍼(201)는 이벤트를 랩핑하고 디스패처(207)는 랩핑된 이벤트를 타깃 애플리케이션쪽으로 디스패치한다. 각각의 애플리케이션에 대해, 현재 애플리케이션은 랩핑된 이벤트가 현재 애플리케이션에 의해 처리되어야 하는지에 관해 랩핑된 이벤트를 조사하도록 구성될 수 있고, 또는 대안적으로 애플리케이션 관리자는 정보를 이벤트들에 대한 타깃 애플리케이션인 애플리케이션의 메모리(212)에 저장하도록 구성될 수 있다. 랩핑된 이벤트가 현재 애플리케이션에 의해 처리되어야 한다면, 애플리케이션 관리자(200)의 이벤트 랩퍼(201)는 이벤트가 현재 애플리케이션에 의해 정상 이벤트로서 처리될 수 있도록 현재 애플리케이션을 위한 이벤트를 랩핑 해제한다. 이벤트가 현재 애플리케이션에 의해 처리되지 말아야 한다면, 애플리케이션 관리자(200)는 랩핑된 이벤트를 차순의 애플리케이션에게 디스패치한다.
ITF (210)은 서버(250)로부터 그리고 API(208)를 이용하여 애플리케이션들(202)을 검색할 수 있다. 애플리케이션은 도 9에 도해된 것과 같이 스크린(260)상에 표시될 수 있다. 전형적 웹 엔진이 HTML(HyperText Markup Language) 모델과 XML(eXtensible Markup Language) 파서와 같은 다른 컴포넌트들을 포함하지만 본 발명의 범위에 있지 않은 것을 또한 주목해야 한다.
애플리케이션 관리자는 애플리케이션 관리자와 수신기(205), 제어기(207), 디스패처(206) 및 이벤트 랩퍼(201)의 기능들을 수행하기 위한 소프트웨어 및/또는 하드웨어 부분들을 포함하는 하나 이상의 프로세서들에 의해 구현될 수 있다.
본 발명의 두번째 실시예에 따르면, 웹 엔진에서의 방법은 도 10에 도해된 것과 같이 제공된다. 웹 엔진은 애플리케이션들의 표시를 가능하게 하는 API와 관련된 애플리케이션 프레임워크를 포함하는 ITF를 위해 구성된다. 방법은 적어도 두 개의 애플리케이션을 저장 하는 단계 1000 - 애플리케이션들이 서로에 대하여 계층적 트리 구조로 배치되고 적어도 두 개의 애플리케이션 중 하나가 포커싱된 애플리케이션임 - 와, 이벤트를 수신하고 1001 포커싱된 애플리케이션이 아닌 애플리케이션들이 이벤트를 수신하고 처리할 수 있도록 적어도 하나의 애플리케이션을 목표로 하는 이벤트의 디스패치를 제어하는 단계 1002를 포함한다.
이벤트의 디스패치는 애플리케이션 관리자를 이용하여 제어되며, 여기에서 애플리케이션 관리자가 이벤트들을 랩핑하고 랩핑 해제하는 이벤트 랩퍼를 포함할 수 있다. 방법은 본 발명의 실시예에 따라 이벤트를 랩핑하고 1003, 타깃 애플리케이션에게 랩핑된 이벤트를 디스패치하는 1004 추가적 단계들을 포함한다. 각각의 애플리케이션에 대해, 현재 애플리케이션이 타깃 애플리케이션인지가 결정된다. 이것은 랩핑된 이벤트를 조사하기 위해 현재 애플리케이션을 구성함으로써 또는 특정 이벤트에 대한 타깃 애플리케이션인 애플리케이션의 메모리(212)에 애플리케이션 관리자가 정보를 저장하도록 허용함으로써 행해질 수 있다. 현재 애플리케이션이 타깃 애플리케이션이고 따라서 랩핑된 이벤트가 현재 애플리케이션에 의해 처리되어야 한다면 1005, 방법은 이벤트가 현재 애플리케이션에 의해 정상 이벤트로서 처리될 수 있도록 현재 애플리케이션에 대해 이벤트를 랩핑 해제하는 단계 1006를 포함한다. 이벤트가 현재 애플리케이션에 의해 처리되지 말아야 한다면, 애플리케이션 관리자는 차순의 애플리케이션에게 랩핑된 이벤트를 디스패치한다 1007.
본 발명의 계층적 애플리케이션 모델은 새로운 애플리케이션이 포함되도록 허용한다. 새로운 애플리케이션을 포함시키는 것은 다음과 같은 단계들에 의해 달성될 수 있다 :
1. 사용자는 위젯들을 위한 loadApplication 또는 installWidget + loadApplication을 호출함으로써, 새로운 애플리케이션을 요청한다.
2. 요청은 애플리케이션 관리자(200)의 API에 의해 다뤄진다.
3. 요청은 서비스 제공자 또는 또 다른 콘텐츠 공급자에 의해 관리되는 서버(250)에게 보내진다.
4. 서버는 정상 HTTP GET를 이용하여 애플리케이션을 웹 엔진(209)에게 보냄으로써 요청에 응답한다. 서버(250)가 애플리케이션을 제공할 수 없다면, 아무것도 검색되지 않을 것이다.
5. 애플리케이션 관리자(200)는 트리 구조 내로 새로운 애플리케이션을 포함시킨다. 새로운 애플리케이션이 수형도에 추가될 때 그것은 자동적으로 표시된다.
본 발명의 실시예들은 상기 기술된 양호한 실시예들에만 제한되지 않는다. 다양한 대체예들, 수정들과 균등물이 이용될 수 있다. 그러므로, 상기 실시예들은 계류중인 청구항들에 의해 규정된 본 발명의 범위를 제한하는 것으로서 여겨서는 안 된다.
본 발명은 물론, 본 발명의 범위 및 본질적 특징을 벗어나지 않고서 여기 제시된 것들과는 다른 특정한 방법들로 실시될 수 있다. 그러므로, 본 실시예들은 모든 면에서 예시적인 것으로서 제한적이지 않으며, 첨부된 청구항들의 의미와 동등 범위에 포함되는 모든 변화들은 그 가운데에 포괄되도록 의도된다.

Claims (11)

  1. 애플리케이션들의 표시를 가능하게 하는 애플리케이션 프로그래밍 인터페이스(API)와 관련된 애플리케이션 프레임워크를 포함하는 IPTV 단말 기능을 위해 구성된 웹 엔진에서의 방법으로서,
    적어도 두 개의 애플리케이션들을 저장하는 단계 - 상기 애플리케이션들은 서로에 대하여 계층적 DOM 트리 모델(hierarchical Document Object Model tree model)로 배치되고, 루트 노드 애플리케이션을 포함함 -;
    적어도 하나의 애플리케이션을 목표로 하는 이벤트를 수신하고, 상기 이벤트를, 상기 루트 노드 애플리케이션에서 시작해서 상기 목표로 하는 애플리케이션을 향해 상기 계층적 DOM 트리 모델을 통하여 송신함으로써, 상기 수신된 이벤트를 타깃 애플리케이션에게 디스패치하는 단계;
    상기 이벤트에 의해 트래버스(traverse)되는 각각의 현재 애플리케이션에 대해 상기 이벤트가 상기 현재 애플리케이션에 의해 처리되어야 하는지를 결정하는 단계;
    상기 이벤트가 상기 현재 애플리케이션에 의해 처리되어야 한다고 결정되면, 상기 현재 애플리케이션에 대해 상기 이벤트를 처리하고,
    상기 이벤트가 상기 현재 애플리케이션에 의해 처리되지 말아야 한다고 결정되면, 상기 이벤트를 상기 계층적 DOM 트리 모델 내의 차순(subsequent)의 애플리케이션에게 디스패치하는 단계;
    를 포함하는, 웹 엔진에서의 방법.
  2. 제1항에 있어서, 상기 디스패치 전에 이벤트를 랩핑(wrapping)하는 단계를 더 포함하고, 상기 이벤트가 상기 처리 전에 랩핑 해제되는, 웹 엔진에서의 방법.
  3. 제1항에 있어서, 상기 각각의 현재 애플리케이션에 대해 상기 이벤트가 상기 현재 애플리케이션에 의해 처리되어야 하는지를 결정하는 단계는, 상기 이벤트를 조사하고 상기 이벤트가 상기 현재 애플리케이션에 대해 적용 가능한지를 확인함으로써 수행되는, 웹 엔진에서의 방법.
  4. 제1항에 있어서, 상기 각각의 현재 애플리케이션에 대해 상기 이벤트가 상기 현재 애플리케이션에 의해 처리되어야 하는지를 결정하는 단계는 애플리케이션 관리자에 의해 수행되는, 웹 엔진에서의 방법.
  5. 제1항에 있어서, 상기 IPTV 단말 기능은 셋톱박스, 이동 단말기 또는 PC 중의 임의의 것인, 웹 엔진에서의 방법.
  6. 디스플레이 장치상에서 웹 애플리케이션들의 표시를 가능하게 하는 IPTV 시스템을 위한 애플리케이션 프레임워크를 구현하는 컴퓨팅 장치로서, 상기 컴퓨팅 장치는,
    계층적 DOM 트리 모델(hierarchical Document Object Model tree model)로 조직되고 루트 노드 애플리케이션을 포함하는 두 개 이상의 애플리케이션들을 갖는 메모리; 및
    상기 계층적 DOM 트리 모델 내의 상기 애플리케이션들 중 하나를 목표로 하는 이벤트를 수신하기 위한 애플리케이션 관리자
    를 포함하고,
    상기 애플리케이션 관리자는, 상기 수신된 이벤트를, 상기 루트 노드 애플리케이션에서 시작해서 상기 목표로 하는 애플리케이션을 향해 상기 계층적 DOM 트리 모델을 통하여 송신함으로써, 상기 수신된 이벤트를 디스패치하기 위한 제어기를 포함하고,
    상기 제어기는, 상기 수신된 이벤트에 의해서 트래버스(traverse)되는 상기 계층적 DOM 트리 모델 내의 제1 애플리케이션이 상기 목표로 하는 애플리케이션인지를 결정하고, 상기 제1 애플리케이션이 상기 목표로 하는 애플리케이션이 아니라면, 상기 수신된 이벤트를 상기 계층적 DOM 트리 모델 내의 제2 애플리케이션에게 디스패치하도록 구성되는,
    컴퓨팅 장치.
  7. 제6항에 있어서,
    상기 제어기는 이벤트들을 랩핑하고 랩핑 해제하기 위한 이벤트 랩퍼를 더 포함하는, 컴퓨팅 장치.
  8. 제6항에 있어서,
    상기 제어기는 상기 이벤트에 대한 타깃 애플리케이션을 지시하는 정보를 저장하는, 컴퓨팅 장치.
  9. 제6항에 있어서,
    상기 컴퓨팅 장치는 셋톱박스, 이동 단말기 또는 PC(Personal Computer)에 통합되는, 컴퓨팅 장치.
  10. 삭제
  11. 삭제
KR1020127029359A 2010-04-09 2011-02-02 Iptv 단말에서의 방법과 배치 KR101419635B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US32244410P 2010-04-09 2010-04-09
US61/322,444 2010-04-09
US12/878,434 US8528005B2 (en) 2010-04-09 2010-09-09 Method and arrangement in an IPTV terminal
US12/878,434 2010-09-09
PCT/SE2011/050109 WO2011126423A2 (en) 2010-04-09 2011-02-02 Method and arrangement in an iptv terminal

Publications (2)

Publication Number Publication Date
KR20130001736A KR20130001736A (ko) 2013-01-04
KR101419635B1 true KR101419635B1 (ko) 2014-07-15

Family

ID=44761866

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127029359A KR101419635B1 (ko) 2010-04-09 2011-02-02 Iptv 단말에서의 방법과 배치

Country Status (7)

Country Link
US (1) US8528005B2 (ko)
EP (1) EP2556678A4 (ko)
JP (1) JP5543013B2 (ko)
KR (1) KR101419635B1 (ko)
CN (1) CN102870428B (ko)
TW (1) TWI510074B (ko)
WO (1) WO2011126423A2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9680692B2 (en) * 2013-01-23 2017-06-13 Facebook, Inc. Method and system for using a recursive event listener on a node in hierarchical data structure
CN107094238B (zh) * 2017-04-13 2020-02-28 青岛海信电器股份有限公司 智能电视的按键分配处理方法及智能电视

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031918A1 (en) * 2000-10-20 2006-02-09 Karen Sarachik System and method for describing presentation and behavior information in an ITV application
US20090217187A1 (en) * 2005-02-12 2009-08-27 Next Device Ltd User Interfaces

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE503021C2 (sv) * 1994-06-13 1996-03-11 Ericsson Telefon Ab L M Driftstödsnät för ett telekommunikationsnät innefattande nätelement, telekommunikationsnät innefattande nätelement, nätelement samt sätt att strukturera programvara i ett nätelement
WO2001067245A2 (en) * 2000-03-08 2001-09-13 Marbles, Inc. Remote operation of real-time graphical applications
US7213048B1 (en) * 2000-04-05 2007-05-01 Microsoft Corporation Context aware computing devices and methods
US6654038B1 (en) 2000-06-02 2003-11-25 Sun Microsystems, Inc. Keyboard navigation of non-focusable components
US7028306B2 (en) * 2000-12-04 2006-04-11 International Business Machines Corporation Systems and methods for implementing modular DOM (Document Object Model)-based multi-modal browsers
US7219331B2 (en) 2001-03-14 2007-05-15 Sun Microsystems, Inc. Method and apparatus for lightweight support on set top box
US7962011B2 (en) * 2001-12-06 2011-06-14 Plourde Jr Harold J Controlling substantially constant buffer capacity for personal video recording with consistent user interface of available disk space
US20060225107A1 (en) 2005-04-01 2006-10-05 Microsoft Corporation System for running applications in a resource-constrained set-top box environment
US8510779B2 (en) 2005-09-15 2013-08-13 Fourthwall Media, Inc. Self-contained mini-applications system and method for digital television
US7614003B2 (en) * 2006-10-23 2009-11-03 Adobe Systems Incorporated Rendering hypertext markup language content
US20090265607A1 (en) * 2008-04-17 2009-10-22 Razoss Ltd. Method, system and computer readable product for management, personalization and sharing of web content
US9317856B2 (en) * 2009-01-19 2016-04-19 Alcatel Lucent System, method and computer readable medium for application placement
KR20100113995A (ko) * 2009-04-14 2010-10-22 한국전자통신연구원 LASeR에서의 사용자 인터랙션 제공 방법 및 장치
US8327385B2 (en) * 2009-05-05 2012-12-04 Suboti, Llc System and method for recording web page events
US20100325565A1 (en) 2009-06-17 2010-12-23 EchoStar Technologies, L.L.C. Apparatus and methods for generating graphical interfaces

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031918A1 (en) * 2000-10-20 2006-02-09 Karen Sarachik System and method for describing presentation and behavior information in an ITV application
US20090217187A1 (en) * 2005-02-12 2009-08-27 Next Device Ltd User Interfaces

Also Published As

Publication number Publication date
EP2556678A4 (en) 2013-11-20
US20110252431A1 (en) 2011-10-13
WO2011126423A2 (en) 2011-10-13
CN102870428B (zh) 2016-11-09
US8528005B2 (en) 2013-09-03
JP5543013B2 (ja) 2014-07-09
TWI510074B (zh) 2015-11-21
KR20130001736A (ko) 2013-01-04
CN102870428A (zh) 2013-01-09
TW201215115A (en) 2012-04-01
EP2556678A2 (en) 2013-02-13
JP2013524360A (ja) 2013-06-17
WO2011126423A3 (en) 2011-12-08

Similar Documents

Publication Publication Date Title
US11875140B2 (en) Application support for network devices
CN109597957B (zh) 第三方应用通信api
JP5846748B2 (ja) プロセスデータにアクセスするための方法及び装置、マシンでアクセス可能な媒体
US7216351B1 (en) Systems and methods for synchronizing multi-modal interactions
US9122848B2 (en) Authentication of user interface elements in a web 2.0 environment
KR101432319B1 (ko) 사용자 인터페이스를 제공하기 위한 컴퓨터 구현 방법 및 컴퓨터 판독가능 매체
EP2691871A1 (en) System and method for creating and delivering platform independent interactive applications on user devices
US20080222237A1 (en) Web services mashup component wrappers
WO2012144910A1 (en) Method and device for providing easy access in a user agent to data resources related to client-side web applications
CN108540434A (zh) 从跨源资源提供自动播放媒体内容元素
US8850339B2 (en) Secure content-specific application user interface components
US9354901B2 (en) Method and computer system for introducing client devices into a client-server network
US20130191726A1 (en) Automatic widget creation apparatus and method for invoking heterogeneous web services in a composite application
KR101419635B1 (ko) Iptv 단말에서의 방법과 배치
US20080244293A1 (en) Methods, Systems, And Computer Program Products For Providing For Automatically Closing Application Widgets Based On Markup Language Elements
CN110825383B (zh) 一种视频交互方法、装置及计算机可读存储介质
CN111880952A (zh) 应用程序跳转方法、装置、电子设备和存储介质
Lee et al. BPEL extensions to user-interactive service delivery.
Ghisi et al. An extensible architecture for DTV middleware
Lubiński Automatic Form-Factor Transformations of Web Pages and Web Services UIs
Sillberg et al. Flexibly managed user interfaces for mobile applications
JP2013143087A (ja) 画面設計レビューシステム、画面設計レビュー表示方法、およびプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170628

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180627

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190627

Year of fee payment: 6