KR20120028274A - 다중 플랫폼 어플리케이션 플레이어 - Google Patents

다중 플랫폼 어플리케이션 플레이어 Download PDF

Info

Publication number
KR20120028274A
KR20120028274A KR1020110092230A KR20110092230A KR20120028274A KR 20120028274 A KR20120028274 A KR 20120028274A KR 1020110092230 A KR1020110092230 A KR 1020110092230A KR 20110092230 A KR20110092230 A KR 20110092230A KR 20120028274 A KR20120028274 A KR 20120028274A
Authority
KR
South Korea
Prior art keywords
application
player
platform
application player
execute
Prior art date
Application number
KR1020110092230A
Other languages
English (en)
Other versions
KR101850816B1 (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 KR20120028274A publication Critical patent/KR20120028274A/ko
Application granted granted Critical
Publication of KR101850816B1 publication Critical patent/KR101850816B1/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]
    • G06F3/0481Interaction 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
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • 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/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • 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/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Human Computer Interaction (AREA)

Abstract

본 발명의 첫 번째 실시 예 에서는, 다중 플랫폼 어플리케이션 플레이어를 디바이스에서 동작하는 방법이 제공되며, 제1 어플리케이션을 상기 디바이스에서 실행하는 명령을 수신하는 단계; 상기 제1 어플리케이션을 실행하는 데에 요구되는 플랫폼을 결정하는 단계; 상기 결정된 플랫폼과 호환되는 환경을 실행하는 데에 적합한 제1 어플리케이션 플레이어를 식별하는 단계; 상기 다중 플랫폼 어플리케이션 플레이어에서 상기 제1 어플리케이션 플레이어를 로딩하는 단계; 및 상기 디바이스의 상기 다중 플랫폼 어플리케이션 플레이어 내의 상기 제1 어플리케이션 플레이어에서 상기 제1 어플리케이션을 실행하는 단계를 포함하는 것을 특징으로 하며, 상기 제1 어플리케이션 플레이어는 상기 제1 어플리케이션뿐만 아니라 상기 결정된 플랫폼에 대해 생성된 하나 이상의 다른 어플리케이션 들도 실행할 수 있는 것을 특징으로 한다.

Description

다중 플랫폼 어플리케이션 플레이어 {MULTI-PLATFORM APPLICATION PLAYER}
본 발명은 컴퓨터 공학에 관련된다. 더 자세히는, 본 발명은 다른 어플리케이션 플레이어들을 자동적으로 로딩하고 실행할 수 있는 어플리케이션 플레이어에 관련된다.
최근 몇 년간, 종래와는 다른 컴퓨팅 디바이스의 인기가 인상적으로 증가해왔다. 구체적으로, 수 년간 "컴퓨터"라는 용어는 데스크탑 컴퓨터 또는 노트북 컴퓨터를 의미해왔다. 그러나, 배터리, 프로세서, 디스플레이 기술들의 발전에 따라서, 완전히 기능하는 컴퓨터를 휴대폰, TV, 냉장고 등과 같이 예전에는 단지 다른 목적으로서 사용하던 디바이스들에 내장시키는 것이 이제는 가능하다. 이 혁명의 일부분으로써 종래와는 다른 이러한 컴퓨팅 디바이스들을 인터넷에 접속이 가능하게 하는 것을 포함해왔다.
종래와는 다르게 이러한 인터넷 접속이 가능한 디바이스들 각각은 일반적으로, 다양한 어플리케이션들이 로딩되고 실행될 수 있는 운영 체제를 가진다. 그러한 운영 체제의 예시로는 안드로이드(캘리포니아 주, 마운틴 뷰 시에 위치한 구글에 의해서 설계된 운영체제이며, 다수의 제조업자들의 상품에 사용된다)를 들 수 있다.
어플리케이션 디자인을 돕기 위하여, 어플리케이션 플레이어(또는, 단순히 "앱 플레이어")의 개념이 소개되었다. 앱 플레이어는 운영체제에 의해서 실행될 수 있는 플랫폼이다. 그러나, 단일 어플리케이션을 실행하는 것 보다, 앱 플레이어는 개발자들에 의해서 앱 플레이어에 대해서 특별하게 설계된 서로 다른 어플리케이션들을 얼마든지 실행할 수 있다. 일반적으로 이 개발자들은 앱 플레이어 플랫폼과 호환되는 어플리케이션들을 쉽게 생성할 수 있게 하는 프로그래밍 환경을 어플리케이션 플레이어를 위해 활용한다. 앱 플레이어의 예시로 게임 앱 플레이어를 들 수 있는데, 서로 다른 개발자들로부터의 다양한 게임들이 단일 앱 플레이어에 의해 실행 가능하다. 개발자는 표준화된 그래픽 인터페이스 대상(버튼, 애니메이션 알고리즘 등)과 같은 요소를 포함할 수 있는 게임 프로그래밍 환경을 제공받을 수 있다. 이에 따라 개발자는, 어떤 사용자가 게임 앱 플레이어를 얻어서 실행하더라도 그들이 개발한 게임을 실행할 수 있다는 점을 보장받을 수 있다.
앱 플레이어는 플러그인과 비슷하나, 그것과는 구별된다. 플러그인은 어플리케이션의 기능을 확장하는 소프트웨어 요소이다. 그러나, 플러그인의 어떠한 부분도 그것이 설치된 어플리케이션으로부터 독립적으로 동작할 수는 없다. 반면에, 앱 플레이어는 독립적으로 실행될 수 있는 구성요소를 적어도 하나 가지고 있다. 일반적으로 이 구성요소는 인터프리터(interpreter)가 된다. 이러한 점에서, 앱 플레이어는 플러그인 보다는 독립형 어플리케이션과 더 유사하다.
일반적으로 특정한 어플리케이션들을 실행하고자 하는 사용자는 자신의 컴퓨팅 디바이스에 하나 이상의 선택한 앱 플레이어들을 다운로딩 하고 설치할 것이다. 이러한 종류의 패러다임은, 사용자가 종래와는 다른 컴퓨팅 디바이스(휴대폰과 같은)를 단지 하나만 가지는 경우와 같은 간단한 환경에서는 잘 작동하는 반면에, 사용자가 네트워크로 모두 연결되어 있는 종래와는 다른 다수의 컴퓨팅 디바이스를 가지는 것이 점점 더 흔한 일이 되어간다. 주요한 예로는, TV는 이제 웹 서핑 및 TV 자체에서 다른 어플리케이션들을 실행할 수 있게끔 하는 컴퓨팅 능력을 포함하여 출시된다. 예를 들어, 사용자는 TV에 현재 설치되어 있는 어플리케이션을 휴대폰에서 실행하기를 원할 수도 있다. 이것은 상기 어플리케이션 전체를 실행하는 것을 포함하거나, 또는 TV에서 실행되는 형태에 대해서 단지 부가적인 프로그램일 수 있다(예를 들어, TV의 어플리케이션에 대한 리모콘). 더 복잡한 경우를 상정해보면, TV가 휴대폰과 다른 운영 체제를 실행하고 있을 수 있는데, 어플리케이션을 실행하기 위해 요구되는 앱 플레이어가 사용자에게 있어서 쉽게 분명하지는 않을 수 있다. 더욱이, 종래의 컴퓨팅 디바이스 사용자 세련도(user sophistication)의 어느 정도는 종종 유추되는 반면에(많은 경우에 부정확 할지라도), 종래와는 다른 컴퓨팅 디바이스들의 사용자에 대한 사용자 세련도는 유추될 수가 없다. 휴대폰과 TV를 모두 사용하는 사용자는 데스크탑 컴퓨터의 사용자에 비해서 적절한 앱 플레이어를 찾아내는 데에 동일한 정도의 세련도나 참을성을 가지지는 않을 것이다.
사용자의 개입을 최소화 하는 것과 동시에 서로 다른 앱 플레이어들을 위해서 개발된 어플리케이션들 간의 상호 운용성(interoperability)을 가능하게 하는 해결책이 요구된다.
본 발명의 첫 번째 실시 예 에서는, 다중 플랫폼 어플리케이션 플레이어를 디바이스에서 동작하는 방법이 제공되며, 제1 어플리케이션을 상기 디바이스에서 실행하는 명령을 수신하는 단계; 상기 제1 어플리케이션을 실행하는 데에 요구되는 플랫폼을 결정하는 단계; 상기 결정된 플랫폼과 호환되는 환경을 실행하는 데에 적합한 제1 어플리케이션 플레이어를 식별하는 단계; 상기 다중 플랫폼 어플리케이션 플레이어에서 상기 제1 어플리케이션 플레이어를 로딩하는 단계; 및 상기 디바이스의 상기 다중 플랫폼 어플리케이션 플레이어 내의 상기 제1 어플리케이션 플레이어에서 상기 제1 어플리케이션을 실행하는 단계를 포함하는 것을 특징으로 하며, 상기 제1 어플리케이션 플레이어는 상기 제1 어플리케이션뿐만 아니라 상기 결정된 플랫폼에 대해 생성된 하나 이상의 다른 어플리케이션 들도 실행할 수 있는 것을 특징으로 하는 방법.
본 발명의 두 번째 실시 예 에서는, 장치가 제공되며, 디스플레이; 인터페이스; 메모리; 및 다중 플랫폼 어플리케이션 플레이어를 포함하는 것을 특징으로 하며, 상기 다중 플랫폼 어플리케이션 플레이어는: 어플리케이션 플레이어들 각각이 어플리케이션들이 실행될 수 있는 플랫폼을 동작시키는 실행이 가능하며, 복수 개의 설치된 상기 어플리케이션 플레이어들을 가지는 플레이어 호스트; 및 어플리케이션이 실행되면, 상기 다중 플랫폼 어플리케이션을 동작시킴으로써, 플레이어 소스를 쿼리하여 어플리케이션을 실행하는 데에 필요한 어플리케이션 플레이어를 결정하고, 만일 상기 결정된 어플리케이션 플레이어가 상기 다중 플랫폼 어플리케이션 플레이어에 이미 설치되지 않았다면, 상기 결정된 어플리케이션 플레이어를 어플리케이션 소스로부터 다운로딩 하고 설치하도록 조정된 프로세서를 포함하는 것을 특징으로 한다.
본 발명의 세 번째 실시 예 에서는, 다중 플랫폼 어플리케이션 플레이어가 제공되며, 제1 어플리케이션을 상기 다중 플랫폼 어플리케이션 플레이어에 설치하는 명령을 수신하는 수단; 상기 제1 어플리케이션을 실행하는 데에 요구되는 어플리케이션 플레이어를 결정하는 수단; 상기 제1 어플리케이션을 실행하는 데에 요구되는 상기 어플리케이션 플레이어가 상기 다중 플랫폼 어플리케이션 플레이어에 이미 설치되지 않았다면 자동적으로 다운로딩 하고 설치하는 수단; 및 상기 제1 어플리케이션을 실행하는 데에 요구되는 상기 어플리케이션 플레이어를 실행함으로써 생산된 가상 플랫폼을 사용하여 상기 제1 어플리케이션을 실행하기 위해서, 상기 제1 어플리케이션을 설치하는 수단을 포함하는 것을 특징으로 한다.
본 발명의 네 번째 실시 예 에서는, 디바이스에서 다중 플랫폼 어플리케이션 플레이어를 동작하는 방법을 수행하기 위해서, 기계에 의해 실행 가능한 명령을 유형의 프로그램으로 구현하는 상기 기계에 의해 판독 가능한 비일시적(non-transitory) 프로그램 저장 디바이스가 제공되며, 상기 방법은: 제1 어플리케이션을 상기 디바이스에서 실행하는 명령을 수신하는 단계; 상기 제1 어플리케이션을 실행하는 데에 요구되는 플랫폼을 결정하는 단계; 상기 제1 어플리케이션뿐만 아니라 상기 결정된 플랫폼에 대해 생성된 하나 이상의 다른 어플리케이션 들도 실행할 수 있으며, 어떠한 다른 프로그램으로부터 독립적으로 실행할 수 있는 어플리케이션 인터프리터를 포함하는 제1 어플리케이션 플레이어로서, 상기 결정된 플랫폼과 호환되는 환경을 실행하는 데에 적합한 상기 제1 어플리케이션 플레이어를 식별하는 단계; 및 상기 디바이스의 상기 다중 플랫폼 어플리케이션 플레이어 내의 상기 제1 어플리케이션 플레이어에서 상기 제1 어플리케이션을 실행하는 단계를 포함하는 것을 특징으로 한다.
본 발명은 다음의 자세한 설명과 그에 수반하는 도면들 과의 결합으로 쉽게 이해될 수 있으며, 참조 숫자(reference numerals)들이 구조적 구성요소들에 대해 지정되어 있다.
도 1은 본 발명의 일 실시 예에 따른 시스템을 도시하는 블록 다이어그램(block diagram)이다.
도 2는 본 발명의 일 실시 예에 따른 시스템을 도시하는 더 자세한 블록 다이어그램이다.
도 3은 본 발명의 일 실시 예에 따른, 플레이어 A를 호스트 플랫폼에 자동적으로 로딩하고, 어플리케이션 A를 플레이어 A에 로딩하는 결과를 도시한 블록 다이어그램이다.
도 4는 스마트폰, PDA(Personal Digital Assistant), 휴대용 미디어 디바이스등과 같은 전자 디바이스에 어플리케이션 목록을 제공하는, "앱채널(AppChannel)"시스템 방식으로 실행된 다중 플랫폼 어플리케이션 플레이어 (multi-platform application player)의 플랫폼의 예시를 도시한 다이어그램이다.
도 5는 본 발명의 일 실시 예에 따른, 지향성 네비게이션(directional nagivation)과 함께 리모콘 플레이어를 가지는 디바이스의 예시이다.
도 6 내지 9는 본 발명의 다중 플랫폼 어플리케이션 플레이어를 이용하여 다중 사용자 어플리케이션을 로딩하는 시퀀스의 예시이다.
도 10 내지 16은 본 발명의 또 다른 실시 예에 따른 다중 사용자 게임을 로딩하는 시퀀스의 예시이다.
도 17은 본 발명의 일 실시 예에 따른 다중 플랫폼 어플리케이션 플레이어를 디바이스에서 동작시키는 방법을 도시한 플로우 다이어그램(flow diagram)이다.
도 18은 본 발명의 일 실시 예에 따른 정보 처리 시스템을 보여주는 하이 레벨 블록 다이어그램이다.
본 발명을 실시하는 데에 있어서 발명자들에 의해 고안된 최적의 형태를 포함하는 구체적인 실시 예 들에 대해서 레퍼런스가 자세히 만들어 지게 될 것이다. 이러한 구체적인 실시 예 들은 첨부된 도면들에 도시되어 있다. 본 발명이 이러한 특정 실시 예 들과 결합되어 표현되어 있다 하더라도, 발명의 범위를 설명된 실시 예로 한정하기 위함이 아닌 것으로 이해되어야 할 것이다. 이와는 반대로, 첨부된 특허청구범위에 의해 정의된 것과 같이 본 발명의 목적과 범위 내에서 행해지는 대안, 수정, 균등물들(alternatives, modifications, equivalents)은 본 발명의 범위 내에 포함시키기 위함이다. 이어지는 설명에는, 본 발명에 대한 철저한 이해를 제공하기 위하여 구체적인 설명이 제시되어 있다. 본 발명은 이러한 설명들의 몇몇 또는 전부가 없더라도 실행될 수 있다. 또한, 잘 알려진 특징들에 대해서는 불필요하게 발명이 모호해지는 것을 피하기 위해 자세히 설명되지 않을 수도 있다.
본 발명에 따른 구성요소, 프로세스 단계, 및/또는 데이터 구조들은 다양한 형태의 운영체제, 프로그래밍 언어, 컴퓨팅 플랫폼, 컴퓨터 프로그램, 및/또는 범용 기기(general purpose machines)들을 이용하여 실행될 수 있다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면, 하드웨어에 내장된 장치(hardwired devices), FPGAs(field programmable gate arrays), ASICs(application specific integrated circuits) 등과 같은 덜 범용적인 목적의 디바이스들이 여기서 개시되는 독창적인 개념의 목적과 범위를 벗어나지 않은 채로 사용될 수 있음을 알 수 있다. 본 발명은 메모리 소자와 같이, 컴퓨터 판독 가능 매체(computer readable medium)에 저장된 컴퓨터 명령어 셋(computer instructions set)처럼 유형(tangibly)의 형태로 구현될 수도 있다.
본 발명의 일 실시 예는 다중 플랫폼 어플리케이션 플레이어를 제공한다. 이 다중 플랫폼 어플리케이션 플레이어는, 설치된 어플리케이션들을 실행하는 데에 필요한 다른 어플리케이션 플레이어들을 자동적이고 명백하게 로딩하는 능력을 가진다. 이것은, 실행하고자 하는 어플리케이션이 원하는 디바이스에서 실행되는 운영 체제에 의해서 기본적으로 지원되지 않는다는 사실에 대해서 사용자가 인식하는 것을 최소화하거나 심지어 없애버릴 수도 있다. 본질적으로, 사용자의 개입 필요성 없이도 다수의 어플리케이션 플레이어들을 로딩하고 실행하는 어플리케이션 플레이어의 플레이어(app-player player)가 제공된다.
어플리케이션 플레이어는 어플리케이션이 실행될 수 있는 플랫폼(혹은 가상 플랫폼)을 동작시키는 컴퓨터 프로그램 이라는 사실을 유의해야 한다. 어플리케이션 플레이어는 다른 프로그램과 독립적으로 실행 가능한 (즉, 독립형의) 적어도 몇 부분을 가진다. 많은 경우들에 있어서, 본 개시가 이러한 특징으로 제한하기 위한 목적이 아님에도 불구하고, 상기 부분은 어플리케이션 인터프리터(interpreter)가 될 것이다. 독립형인 부분을 적어도 몇몇 유지함으로써 어플리케이션 플레이어는, 특정한 플랫폼을 동작시키기 위해서 몇몇 다른 컴퓨터 프로그램의 능력을 단순히 변경하기만 하는 컴퓨터 프로그램들 또는 설정들로부터 구별 될 수 있다. 예를 들면, 웹브라우저의 플러그인은 특정한 종류의 어플리케이션들을 해석(interpret)할 수 있도록 웹브라우저를 수정한다. 그러나, 이러한 플러그인은 어플리케이션 플레이어로 고려되지 않는데, 플러그인은 독립적으로 실행 가능한 구성을 가지지 않기 때문이다.플러그인의 기능을 모두 수행하기 위해서는 웹브라우저가 동작할 필요가 있다.
도 1은 본 발명의 일 실시 예에 따른 시스템을 도시한 블록 다이어그램이다. 일반적으로, 다중 플랫폼 어플리케이션 플레이어(100)는 컴퓨터 시스템(102)에 로딩될 수 있다. 후술 하겠지만, 컴퓨터 시스템(102)는 정보 처리가 가능한 모든 종류의 컴퓨터 시스템 또는 전자 디바이스가 될 수 있다. 다중 플랫폼 어플리케이션 플레이어(100)은 다수의 어플리케이션 플레이어들(104a, 104b, 104c)을 로딩하고 실행할 수 있는데, 각각의 어플리케이션 플레이어들은 대응되는 어플리케이션 플레이어들(104a, 104b, 104c)과 호환되도록 디자인 된 어플리케이션들(106a, 106b, 106c, 106d)을 실행할 수 있다. 이 어플리케이션들(106a, 106b, 106c, 106d)은 다양한 서로 다른 정보 처리 환경들과 플랫폼들을 위해 디자인 될 수 있는데, 다중 플랫폼 어플리케이션 플레이어(100)는 컴퓨터 시스템(102)이 상기 어플리케이션을 기본적으로 지원하지 않을 수 있음에도 불구하고 상기 모든 어플리케이션들을 컴퓨터 시스템(102)에서 실행되도록 허용한다.
도 1에서 각각의 어플리케이션 플레이어(104a, 104b, 104c)는 적어도 하나의 어플리케이션을 가지는 것으로 묘사되어 있지만, 이 조건은 필수적이 아니라는 사실을 유의해야 한다. 실제로, 어플리케이션 플레이어가 설치되었고 실행할 준비가 되었으나, 어플리케이션 플레이어와 호환되는 설치된 어플리케이션이 없는(또는 이전에 이미 설치되었으나 지금은 삭제된)것 과 같은 다중 플랫폼 어플리케이션 플레이어(100)의 다양한 상태가 있을 수 있다. 더욱이, 호환되는 어플리케이션 플레이어가 아직 설치되지 않았음에도 불구하고 어플리케이션이 설치되는 것도 가능하다. 본 발명이 이러한 비관련된(unassociated) 어플리케이션들("고아" 라고도 불린다) 에 대해서 호환되는 어플리케이션 플레이어들을 자동적으로 식별하여 설치하도록 디자인 된 점에 비추어, 이러한 상태는 일시적일 가능성이 높다. 그러나, 이러한 호환되는 어플리케이션이 식별되고 설치될 때까지(또는 만일 그러한 호환되는 어플리케이션 플레이어가 발견될 수 없다면), 상기 비관련된 어플리케이션은 관련된 어플리케이션 플레이어 없이 다중 플랫폼 어플리케이션 플레이어 안에 포함되어 있을 수 있다.
도 2는 본 발명의 일 실시 예에 따른 시스템을 도시하는 더 자세한 블록 다이어그램이다. 도 2에 나타난 바와 같이, 다중 플랫폼 어플리케이션 플레이어(200)는 플레이어 호스트(202)를 포함할 수 있다. 플레이어 호스트(202)는, 플레이어들을 다양한 서로 다른 환경들과 플랫폼들에 대해 "호스트(host)" 할 수 있는 어플리케이션 혹은 어플리케이션 프레임이다. 플레이어 호스트(202)는 호스트 플랫폼(204)을 포함한다. 호스트 플랫폼(204)은 실제 플레이어들이 실행하는 환경이다.
어플리케이션이 설치되면, 목표는 어플리케이션을 호스트 플랫폼(204)에 관련된 어플리케이션 플레이어에 따라 로딩하는 것이다. 그래서, 어플리케이션을 로딩하는 첫 번째 단계는, 호환되는 어플리케이션 플레이어가 이미 설치되어 있는지 보기 위해서 현재의 호스트 플랫폼(204)을 체크하는 것이 될 수 있다. 예를 들면, 플레이어 B(206)는 호스트 플랫폼(204)에 이미 로딩되어 있다. 플레이어 B(206)는, 특정한 플랫폼 환경을 동작시키고, 플랫폼 B(208)로 나타난다. 함께 도시되어 있는 어플리케이션 D는, 플레이어 B와 호환되고 플랫폼 B에서 실행되도록 디자인 된다. 새로운 어플리케이션이 로딩될 때, 상기 새로운 어플리케이션이 이전에 로딩된 어플리케이션 플레이어들 중 하나와 호환된다면 새로운 어플리케이션을 실행하기 위해 어플리케이션 플레이어를 로딩할 필요는 없다. 따라서, 도2의 예에서 만일 새로운 어플리케이션이 플랫폼 B(208)와 호환된다면, 플레이어 B(206)로 상기 새로운 어플리케이션을 실행하기에 충분하고, 새로운 어플리케이션 플레이어가 로딩될 필요가 없다.
로딩될 어플리케이션은 다수의 서로 다른 소스들로부터 검색될 수 있다. 하나의 외부 어플리케이션 소스(212)는 어플리케이션들이 선택되는 리포지토리(a repository)일 수 있다. 상기 어플리케이션 소스(212)는 다중 플랫폼 어플리케이션 플레이어(200)의 외부에 존재할 수 있는 반면에, 어플리케이션 소스(212)가 서로 다른 물리적인 디바이스 또는 서로 다른 파일 시스템에 존재할 필요는 없다. 일반적으로, 어플리케이션 소스(212)는 클라우드 서비스, 네트워크 리소스, 파일 시스템의 위치, 컴퓨터 시스템에 내장된 구성요소, 또는 그 조합 또는 다른장소에도 존재할 수 있다. 어플리케이션 소스에 대한 유일하게 요구되는 것은, 사용자가 어플리케이션 소스로부터 어플리케이션을 선택할 수 있어야 하고 상기 어플리케이션이 다중 플랫폼 어플리케이션 플레이어(200)에 의해 검색되거나 로딩될 수 있도록 적어도 하나의 어플리케이션을 포함하는 것이다.
사용자가 어플리케이션 소스(212)로부터 어플리케이션을 선택하면, 어떠한 플랫폼이(궁극적으로는 어떠한 어플리케이션 플레이어가) 상기 어플리케이션에 대해서 적절한 플랫폼 또는 환경을 지원할 수 있는지 판단하기 위해 시스템은 플레이어 소스(214)를 쿼리한다. 이것은 다수의 상이한 방식으로 수행될 수 있다. 일 실시 예에 의하면 상기 어플리케이션에 포함된 메타데이터(metadata)가 호환되는 플랫폼들 또는 플레이어들을 식별한다. 이러한 메타데이터는 외부로 드러나거나(예를 들어, 메타데이터가 명백하게 "플랫폼 A를 필요로 함" 또는 "플레이어 A를 필요로 함" 이라고 이야기 하는 것처럼), 내재될 수(예를 들어, 메타데이터가 특정한 플랫폼 또는 플레이어와 호환되는 것으로 알려진 특정한 포맷 내부에 존재하는 것처럼) 있다. 후자의 경우에 있어서, 시스템은 로딩 할 정확한 플레이어를 유추(deduce)하는 데에 있어서 도움이 되도록 추가적인 구성요소들을 활용할 수 있다. 이러한 추가적인 구성요소들은 플레이어 소스(214) 자체에 포함되거나 혹은 다른 곳에 위치할 수 있다. 이러한 구성요소들의 위치는 플레이어 소스(214)의 아키텍쳐(architecture)와 위치에 크게 의존한다.
플레이어 소스(214)는 플레이어들의 레포지토리다. 이것은 다양한 장소에 위치할 수 있다. 플레이어 소스(214)는 네트워크 리소스, 클라우드 서비스, 파일 시스템의 디렉토리, 또는 다중 플랫폼 어플리케이션 플레이어 그 자체 내부의 구성요소(도 2에 도시된 것처럼), 혹은 그것들의 어떠한 조합에라도 위치할 수 있다. 플레이어 소스(214)는 단순히 플레이어들을 포함하고, 상기 플레이어들이 열거 되는 것을 필요로 한다. 특정한 어플리케이션들에 대해서 적절한 어플리케이션 플레이어들을 식별하는 데에 도움이 되도록 사용되는 몇몇 종류의 기능들 또한 존재해야 한다. 메타데이터와 그에 대응하는 어플리케이션 플레이어를 맵핑(mapping)하는 기능을 예로 들 수 있는데, 설치될(혹은 최근에 설치된) 어플리케이션의 메타데이터를 이용하여 플레이어 소스(214)를 쿼리하면, 플레이어 소스(214)는 이에 대응하는 어플리케이션 플레이어를 검색하기 위하여 이 메타데이터를 맵핑 기능의 메타데이터와 비교할 수 있게 된다. 그러나 특정 실시 예에서는, 상기 플레이어 소스는 어떠한 어플리케이션 플레이어가 필요한가에 대해서 더 복잡한 분석을 하게 하는 추가적인 기능을 포함한다. 더욱이, 플레이어 소스(214)로 하여금, 너무 복잡한 경우 혹은 상기 플레이어 소스가 설치되거나 마지막으로 업데이트된 시간 이후에 어플리케이션 및/또는 어플리케이션 플레이어가 생성되거나 대중화된 경우에, 그러한 유추(deduce)하는 능력을 넘어서는 플레이어들을 식별하는 데에 도움이 되도록 또 다른 외부 장소(인터넷의 서버와 같은)를 쿼리하는 추가적인 기능이 예견된다. 다시 말해서, 만일 플레이어 소스가 그 자체로 적절한 플레이어를 식별할 수 없다면, 추가적인 도움을 위하여 다른 장소를 쿼리할 수 있다.
사용자(216)가 어플리케이션 소스(212)로부터 어플리케이션을 선택하면, 다중 플랫폼 어플리케이션 플레이어(200)은 상기 어플리케이션을 검색할 수 있다. 이어서, 어플리케이션 소스에 의해 제공된 메타데이터에 기초하여, 어떠한 플레이어가 그 어플리케이션에 대해서 적절한 플랫폼 또는 환경을 제공하는지 판단하기 위하여 상기 시스템은 플레이어 소스(214)를 쿼리한다. 도 2에서, 사용자는 어플리케이션 A(220)를 선택했고, 어플리케이션 A에 관련된 메타데이터는 이 어플리케이션이 플랫폼 A를 요구한다는 것을 나타낸다. 이어서, 시스템은 플레이어 소스 A(218)가 플랫폼 A와 호환된다는 것을 식별하는 플레이어 소스(214)를 쿼리한다. 이 시점에서, 시스템은 플레이어 A(218)가 호스트 플랫폼(204)에 이미 로딩되어 있는지 판단하기 위해 체크할 수 있다. 이 예에서는 로딩되어 있지 않다. 그러므로, 시스템은 자동적으로 플레이어 A(218)를 호스트 플랫폼(204)에 로딩하고, 어플리케이션 A(220)을 플레이어 A(218)에 로딩하도록 진행한다. 이 동작의 결과가 도 3에 도시도어 있으며, 호스트 플랫폼(204)은 현재 어플리케이션 A(220)와 어플리케이션 D(210) 뿐만 아니라, 플레이어 A(218)와 플레이어 B(206)을 모두 포함하고 있다.
특히, 사용자(216)가 이 과정에서 수행한 유일한 상호작용은 어플리케이션 A(220)를 설치하고자 하는 어플리케이션으로 식별한 것이다. 이러한 선택에 이어서, 어플리케이션을 로딩하는 데에 관하여 사용자와의 추가적인 상호작용은 필요하지 않다. 이와 같이, 적절한 어플리케이션 플레이어들을 식별하고 로딩하는 전체 과정은 사용자가 전혀 알 수 없다(is completely transparent to the user). 플레이어는 어플리케이션이 기대하는 플랫폼과 환경 특징을 제공하며, 사용자가 무엇이 발생했는지 인식할 필요 없이도 플레이어 호스트에 의해 제공된 호스트 플랫폼에 기초하여 사용자에게 적절한 방식(experience)을 제공한다.
다중 플랫폼 어플리케이션 플레이어를 실행하는 디바이스의 사용자는 하나의 다중 플랫폼 어플리케이션 플레이어 이내로부터 다양한 상이한 플랫폼들에 대한 원하는 어플리케이션에 접속할 수 있다. 따라서, 사용자는 식별되고 로딩된 어플리케이션 플레이어들이 얼마나 호환이 되는지 알아야 할 필요가 없을 뿐만 아니라, 다른 어플리케이션 플레이어들이 사용자의 디바이스에 포함되어 있는지 알아야 할 필요도 없다. 사용자는 단순히 하나의 다중 플랫폼 어플리케이션 플레이어를 실행하고 원하는 어플리케이션을 실행하기만 하면 된다. 예를 들면, 어플리케이션 A를 실행하기에 앞서서 플레이어 A를 실행해야 한다거나, 혹은 어플리케이션 D를 실행하기에 앞서서 플레이어 B를 실행하는 대신에, 사용자는 단순히 다중 플랫폼 어플리케이션 플레이어를 실행하고 어플리케이션 A 또는 D를 실행하기만 하면 된다. 적절한 어플리케이션 플레이어가 시작되는 것은 사용자에게 전혀 나타나지 않는다.
일 실시 예에서는, 개시된 다중 플랫폼 어플리케이션 플레이어가 플러그인 시스템과 대응되면, 새로운 어플리케이션들을 설치함으로써 시간이 지남에 따라 지원되는 추가적인 종류들의 어플리케이션들을 제공할 수 있고, 따라서 하나의 다중 플랫폼 어플리케이션 플레이어에서 재생될 수 있는 어플리케이션들의 다양성이 증가하게 된다.
상기 다중 플랫폼 어플리케이션 플레이어는 어떠한 하나의 디바이스에서 로딩되는 유일한 다중 플랫폼 어플리케이션 플레이어 이어야 한다는 점에 유의해야 한다. 이것은, 다중 플랫폼 어플리케이션 플레이어의 동작이 다른 어떠한 다중 플랫폼 어플리케이션 플레이어들을 불필요하게 만든다는 점에 기인한다. 그러나, 다수의 다중 플랫폼 어플리케이션 플레이어가 하나의 디바이스에서 사용되는 것이 엄격히 금지 되는 것은 아니며, 여전히 본 발명과 일치한다.
도 4는 본 발명의 일 실시 예에 따라서 스마트폰, PDA, 휴대용 미디어 디바이스 등과 같은 전자 디바이스에 어플리케이션 목록을 제공하는 "앱채널(AppChannel)" 시스템 방식으로 실시 된 다중 플랫폼 어플리케이션 플레이어의 예시를 도시한 다이어그램이다. 도 4의 앱채널 시스템의 예시는 사용자 인터페이스(400)를 디바이스(402)의 디스플레이 스크린에 디스플레이 한다. 사용자 인터페이스(400)는 호스팅에 요구되는 플랫폼 또는 환경에 관계 없이, 모든 가능한 어플리케이션들(404a-404l)의 목록을 단순히 표시한다. 앱채널 내부의 어플리케이션들은, 예를 들면 디바이스의 내부 저장소, 또는 클라우드 서비스로부터 나올 수 있다. 상기 디바이스는, 다중 플랫폼 어플리케이션 플레이어를 통하여(미도시) 다수의 서로 다른 어플리케이션 플랫폼들(예를 들어, 삼성 앱(Samsung Apps), 어도비 플래쉬(Adobe Flash), 야후 위젯(Yahoo Widgets), 및 다른 플랫폼들)과 호환되는 어플리케이션들을 지원할 수 있다.
현재 사용자에 의해 사용되고 있는 디바이스에 저장된 어플리케이션들을 제시하는 것에 부가하여, 앱채널은 가정 네트워크의 공유 디바이스와 같은 원격 디바이스에서 실행될 수 있거나 혹은 그에 관련될 수 있는 어플리케이션들 또한 도시할 수 있다. 예를 들면, 공유 디바이스는 가정 네트워크의 TV셋이 될 수 있다. TV셋을 제어하는 어플리케이션은 사용자가 TV셋의 부근에 있으면 사용자의 스마트폰의 앱채널에 자동적으로 나타날 수 있다. 이러한 방법을 통해, 사용자들은 특정한 어플리케이션을 로딩하기 원하는 것을 적극적으로 나타낼 필요가 없으며, 어플리케이션들은 단순하게 특정한 환경 하에서 자동적으로 로딩될 수 있다. 어플리케이션 그 자체는 원격 디바이스에서 실행되거나(이 예에서는 채널, 볼륨, 및 공유 TV셋의 다른 설정들을 변경하는 리모콘 어플리케이션과 같은 스마트폰), 혹은 공유 디바이스에서 실행되는(예를 들어, TV 유닛에서 계속해서 실행되고, TV 디스플레이에 착신호의 발신자ID를 보여주는 발신자 ID어플리케이션) 것이 될 수 있다. 다수의 어플리케이션들이 단순히 사용자 인터페이스를 공유 디바이스 혹은 원격 디바이스에 표시하기 위해 설계되는 반면에, 다른 어플리케이션들은 사용자 인터페이스를 공유 디바이스와 원격 디바이스 모두에(혹은, 이 점에 대해서는 다수의 원격 디바이스들에) 표시하기 위해 설계된다. 예를 들면, 다중 사용자 게임은 공통의 게임 인터페이스를 공유 디바이스 스크린에 표시하며, 원격 디바이스에서 게임을 플레이 하는 각각의 사용자들에 대해서는 개인 화면을 표시할 수 있다.
일 실시 예 에서, 원격 디바이스의 앱채널 시스템은 시스템 내의 서로 다른 어플리케이션들을 지원하는 호스트 된 환경(hosted environment)을 제공한다. 입력 디바이스로써의 리모콘 디바이스와 함께 공유 디바이스에서 실행되도록 디자인 된 어플리케이션들에 대해서, 앱채널 시스템의 플레이어 소스는 특정한 어플리케이션의 요구에 기초하여 다양한 서로 다른 리모콘 스크린들을 제공하는 "리모콘 플레이어"를 포함할 수 있다.예를 들어, 특정한 어플리케이션들은 지향성 네비게이션과 문자 입력을 위해 설계될 수 있으며 지향성 스크린과 가상 키보드 인터페이스를 사용하는 반면에, 다른 어플리케이션들은 영상 플레이백과 '재생', '일시정지', 및 '중지'와 같은 명령어를 가지는 다수의 입력 인터페이스를 사용한다.
도 5는 본 발명의 일 실시 예에 따라 지향성 네비게이션과 함께 리모콘 플레이어를 가지는 디바이스의 예시이다. 리모콘을 사용하는 지향성 네비게이션으로 기대되는 어플리케이션이 로딩되면, 리모콘 플레이어는 사용자가 리모콘 플레이어가 시작된 것을 인식하지 못한 채로(존재하는 것 조차도), 지향성 네비게이션 사용자 인터페이스를 자동적으로 시작하고 제공할 수 있다. 일 실시 예에서는, 리모콘 플레이어에 보여지는 스크린들의 집합이 상기 어플리케이션(리모콘 플랫폼을 위해 설계된)을 포함한다.
다중 사용자 게임에 있어서, 앱채널 시스템은 플레이어 소스로부터 모바일 플레이어를 검색할 수 있으며, 게임 어플리케이션의 모바일 부분을 원래의 독립형 어플리케이션과 호환이 되는 방식으로 호스트 하고 실행할 수 있다. 다중 사용자 위젯에 있어서 앱채널 시스템은, 기본 플랫폼을 제공하고 이러한 다중 사용자 위젯 어플리케이션들에 있어서 요구되는 구체적인 실행 구조(execution framework)를 더 포함하는 플레이어 소스로부터, 특정 모바일 플레이어를 검색할 수 있다(예를 들어, 웹 서비스를 지원하고 다양한 소스로부터 자산들을 로딩하는 메커니즘과 같은 추가적인 기능).
일 실시 예로, 다중 사용자 게임 시스템에 있어서 서로 다른 3가지의 구성요소가 존재한다: 하나의 플랫폼과 호환이 되는 게임에 대한 모바일 플레이어, 또 다른 플랫폼과 호환이 되는 게임에 대한 모바일 플레이어, 및 리모콘 플레이어. 어플리케이션이 설치되거나 시작되면, 요구되는 플랫폼 또는 환경을 결정하는 플레이어 소스에 기초하여 적절한 플레이어가 자동적으로 결정되고 로딩될 수 있다.
일 실시 예 에서는, 다중 플랫폼 어플리케이션 플레이어를 선택하면, 사용자는 어플리케이션들을 호스트 하기 위하여 근본적으로 요구되는 플랫폼 또는 플레이어에 관계 없이 어플리케이션들의 목록으로 단순히 이동된다. 사용자가 원하는 어플리케이션을 선택하면, 사용자는 내부에서 그러한 경험을 제공하는 호스팅 레이어(hosting layer)에 대해서 인지하지 못한 채, 예상되는 사용자 인터페이스를 보게 된다. 결국, 사용자는 플랫폼, 플레이어, 또는 어플리케이션의 카테고리에 대해서 인지할 필요가 없고, 단지 어플리케이션의 실행 가능성에 대해서만 필요로 한다. 또한 사용자는, 어플리케이션이 사용자의 디바이스에서 실행이 가능하다고 보게 되기 이전에 어플리케이션이 존재하고 있다는 점을 알 필요가 없다.
일 실시 예에서는, 특정한 어플리케이션을 실행하기 위하여 어떠한 어플리케이션 플레이어가 실행 및/또는 로딩되는지 결정 하는 데에 있어서, 어플리케이션 그 자체에 관한 정보에 기초할 뿐만 아니라, 다중 플랫폼 어플리케이션 플레이어가 동작하는 디바이스에 관한 하드웨어 관련 정보 또는 다중 플랫폼 어플리케이션 플레이어가 동작하는 운영 체제에 관한 정보에도 기초한다. 이 정보는 하드웨어 및/또는 운영 체제로부터 자동적으로 검색될 수 있으며, 따라서 사용자가 인식할 수 없게 수행될 수 있다. 하드웨어 관련 정보는 다음의 하나 이상을 포함할 수 있지만, 이것으로 제한되지는 않는다: 프로세서, 프로세서의 규격(metrics), 메모리, 스크린 사이즈, 스크린 해상도, 업데이트 속도, 및 입력 방법. 나아가, 어떠한 어플리케이션 플레이어를 사용할 것인가에 관련될 수 있는 추가적인 정보 또한 어떠한 어플리케이션 플레이어를 설치 및/또는 실행할 것인가 결정하는 데에 의존될 수 있다. 예를 들어, 특정한 어플리케이션에 대해서 하나 이상의 호환되는 어플리케이션 플레이어가 존재할 수 있다. 이 경우에 있어서, 대응하는 어플리케이션 플레이어들의 메모리 사이즈, 프로세서 요구사항 등과 같이 차지하는 공간(footprint)이 비교될 수 있으며, 가장 작은 공간을 차지하는 호환되는 어플리케이션 플레이어를 선택함으로써 승부가 날 수 있다.
일 실시 예에 있어서, 본 발명은 인터넷 연결 TV와 상호작용하는 디바이스에서 실시된다. 이러한 인터넷 연결 TV들은 종래의 인터넷 연결 디바이스, 즉 PC와 스마트폰에 대해서 계속 경쟁력을 가지기 위하여, 소비자들이 종래의 디바이스에 대해서 가지는 경험과 유사하거나 이보다 나은 특징들을 자주 제공할 필요가 있다. 몇몇 TV 제조업자들이 보통, 주식 시세, 날씨, 뉴스, 및 소셜 네트워크와 같이 인기 있는 온라인 서비스에 대한 접근을 제공함으로써 PC 의 경험을 소비자들의 거실로 가져오려는 시도를 하기 위한 단계를 시도했으나, 이러한 인터넷 제공들이 단일 사용자만을 고려하는 반면에 TV는 시청하는 가족이나 그룹의 다수의 구성원들을 보통은 동시에 끌어들이는 공용 디바이스라는 사실로 인하여 이러한 접근은 어려움을 겪는다. 더욱이, TV의 리모콘은 PC, 노트북, 넷북, 및 스마트폰에서 사용되는 입력 디바이스(키보드, 마이크, 트랙패드, 터치스크린 등)에 비하면 사용자의 방식(experience)을 제한한다.
도 6-9는 본 발명의 다중 플랫폼 어플리케이션 플레이어를 이용하여 다중 사용자 어플리케이션을 로딩하는 시퀀스의 예시이다. 도 6에 따르면, 사용자가 TV(600)에서 TV를 실시간으로 시청하고 있다. 사용자는 모바일 디바이스(602)의 범위 내에 있는 다수의 TV(604a-604c)를 선택하는 모바일 디바이스(602) 또한 가지고 있다. 이어서, 사용자는 TV목록으로부터 적절한 TV(604a-604c)를 선택할 수 있다. 도 7에 의하면, 사용자는 모바일 디바이스(602) 내에서 TV의 인증을 받게 될 수 있다.
도 8에 의하면, 다중 플랫폼 어플리케이션 플레이어(여기에서는, 앱채널)가 모바일 디바이스(602)에서 시작된다. TV(600)은 여전히 라이브 영상을 보여주고 있다. 도 9에 의하면, 사용자가 어플리케이션을 선택하고, 그 어플리케이션은 TV(600)와 모바일 디바이스(602)에서 자동적으로 시작된다. 이러한 과정은 드러나지 않은 채로 수행되는 다양한 활동들을 포함할 수 있는데, 선택된 어플리케이션에 대해서 적절한 어플리케이션 플레이어를 식별하고, 다운로딩 하고 어플리케이션 플레이어를 모바일 디바이스(TV에도 마찬가지로)에 설치하는 활동 등이 그것이다. 어플리케이션 그 자체가 모바일 디바이스(602)에 다운로딩 되고 설치될 수 있다. 다른 사용자들도 유사한 과정을 통해서 진행 중인 어플리케이션에 참여할 수 있다. 이 경우에 있어서, 어플리케이션은 레스토랑 식사 주문 프로그램이며, 각 사용자들로 하여금 그들의 모바일 디바이스에서 메뉴를 볼 수 있게 하는 동시에 선택된 메뉴가 TV에 나타나게 할 수 있다. 이러한 방법을 통해서, 사용자들은 무엇을 주문할 것인지 같이 고를 수 있게 되고, 그들의 모바일 디바이스와 TV를 통해서 레스토랑에 쉽게 주문을 할 수 있게 된다.
도 10-16은 본 발명의 또 다른 실시 예에 따른, 다중 사용자 게임을 로딩하는 시퀀스의 예시이다. 도 10에 의하면, 사용자가 TV(1002)에서 생방송 TV(1000)를 시청하고 있다. 도 11에 의하면, 사용자가 TV 리모콘의 적당한 버튼을 눌러서 TV(1002)에 인터넷 관련 서비스를 나타나게 할 수 있고, 이 때 생방송 TV(1000)는 디스플레이의 구석으로 옮겨진다. 도 12에 의하면, 사용자가 리모콘(1200)을 이용하여 원하는 다중 사용자 게임을 탐색한다. 도 13을 참조하면, 사용자는 리모콘(1200)을 이용하여 게임을 시작하고, 다른 사용자들이 참가하기를 기다린다.
도 14에 따르면, 사용자가 모바일 디바이스(1400)로부터 적절한 TV를 선택할 수 있다. 도 15에 따르면, 게임 관련된 정보들이 TV(1002)로부터 모바일 디바이스(1400)에 다운로딩 될 수 있다. 도 16에 의하면, 다중 플랫폼 어플리케이션 플레이어가 게임을 시작하고, 각각의 사용자들은 그들의 모바일 디바이스(1400)를 이용하여 각자의 차례를 컨트롤 한다(또한, 스크래블 게임에서 사용자가 가지고 있는 타일의 정보와 같이, 다른 사용자들과 공유되지 않아야 할 정보들을 그들의 모바일 디바이스(1400)를 통해서 본다). 앞서 제공된 예시와 같이, 다중 플랫폼 어플리케이션 플레이어는 게임의 실행을 가능하게 하기 위해 다수의 드러나지 않는 활동들을 수행할 수 있으며, TV로부터 수신된 게임에 대한 메타데이터에 기초하여 로딩할 적절한 어플리케이션 플레이어를 결정하는 것과 사용자가 인식할 수 없는 방법으로 적절한 어플리케이션 플레이어를 로딩하는 것이 이 활동에 포함된다.
본 발명의 다중 플랫폼 어플리케이션 플레이어가 활용할 수 있는 하나의 추가적인 기술 트렌드는 다중 스크린 시스템에 있다. 비디오 게임의 영역에서, 다중 플레이어 방식은 꽤 오래되었다. 게임 콘솔이 일반적으로 다수의 유/무선 컨트롤러를 통해 다수의 사용자들이 하나의 게임을 할 수 있도록 했으나, 비디오 게임의 디스플레이는 단일 스크린이다. 상술한 예시와 같이, 모바일 디바이스들이 게임에 대한 부차적이고 사용자마다 구체적인 디스플레이를 제공하는 것과 함께, 많은 방에 있어서 주요한 중심점이 되는 TV가 "공용 디스플레이" 로써 좋은 후보가 된다. 그러나, 이러한 다중 스크린 게임들과 호환이 되는 디바이스들은 TV로 제한되지는 않는다. 예를 들면, TV가 없는 곳(다른 방이나, 커피숍과 같은)에서는 타블렛 컴퓨터를 TV대신 공용 디스플레이로써 사용하여 다중 플레이어 게임을 실행하는 것에 대해 상상해볼 수 있다.
추가적으로, 본 발명은 궁극적으로 하드웨어로부터 완전히 독립적인 플랫폼을 목표로 계속해서 발전할 수 있다. "컴퓨터" 가 과거에 데스크탑과 노트북으로만 제한되었던 것에 비해, 프로세서와 다른 구성요소의 계속된 발전으로 인해서 휴대전화로부터 TV, 냉장고까지 거의 모든 디바이스라도 컴퓨팅 디바이스로 사용될 수 있게 되었다. 이것은 단지 하드웨어 독립성에 대한 요구를 증가시킨다. 본 발명은 수 많은 서로 다른 플랫폼들과 그들 사이에서의 네트워크 표준에 대해서 유용할 수 있다. 최근 몇 년간 독립 플랫폼을 위한 수단으로써 브라우저 기반의 플랫폼들이 다수 등장했으나, 많은 어플리케이션들이 아직 브라우저에 특화되어 있으며 플러그인에 의존적이다. HTML5가 비디오 스트리밍과 같은 특징을 기본적으로 지원함으로써 이러한 의존성의 일부를 덜어내고자 하지만, 아직은 이 분야 전반에 걸쳐서 단일 표준이 활용되기 어려워 보이며, 따라서 여기서 개시되는 다중 플랫폼 어플리케이션 플레이어에 대한 필요성은 계속 될 것이다.
이 기술 분야에서 통상적인 수준을 가진 자라면, 전술한 예시뿐만 아니라 다중 플랫폼 어플리케이션 플레이어에 부합되는 어떠한 다른 구조들도, 예를 들어 프로세서에 의한 프로그램 실행 명령, 소프트웨어 모듈 혹은 마이크로 코드, 논리 회로, ASICs, 펌웨어, 가전 제품, 무선 디바이스 등과 같은 수 많은 서로 다른 방법을 통해서 실시 될 수 있다는 점을 알 것이다.
도 17은 본 발명의 일 실시 예에 따라, 다중 플랫폼 어플리케이션 플레이어를 디바이스에서 동작시키는 방법을 도시한 흐름도이다. 1700 단계 에서, 제1 어플리케이션을 디바이스에서 실행하라는 명령이 수신된다. 이 명령은 다양한 형태로 올 수 있다. 예를 들면, GUI(Graphical User Interface)가 사용자에게 제공되고, 사용자는 GUI의 목록으로부터 가능한 어플리케이션을 선택할 수 있다. 이러한 선택이 상기 제1 어플리케이션을 실행하라는 명령으로서 동작할 수 있다. 이와는 다르게, 상기 명령은 사용자가 아닌 다른 소스로부터 올 수도 있다. 예를 들면, 부모님의 디바이스와 같이 또 다른 디바이스가 상기 디바이스에 특정한 어플리케이션을 설치하거나 실행하라는 신호를 보낼 수 있다. 다른 예에 의하면, 상기 명령은 컴퓨터 시스템으로부터 자동적으로 올 수 있다. 예를 들어, 시스템은 사용자의 선호도, 사용자 프로필 정보(나이, 성별, 직업 등), 및 실제 프로그램 사용(사용자가 많은 음악 관련 어플리케이션을 동작시킨다면, 시스템은 음악 관련 어플리케이션을 자동적으로 설치할 가능성이 높다)을 포함하는 다수의 요소들에 기초하여 사용자가 즐길 만한 어플리케이션을 자동적으로 설치하도록 디자인 될 수 있다.
1702 단계 에서, 상기 제1 어플리케이션을 실행하는 데에 요구되는 플랫폼이 결정된다. 또다시, 이 과정도 다양한 서로 다른 방법으로 수행될 수 있다. 일 실시 예에서는, 제1 어플리케이션에 대한 메타데이터가 검사될 수 있다. 이 메타데이터는 요구되는 플랫폼의 시스템 외부 정보 이거나, 혹은 이러한 정보가 메타데이터로부터 얻어질 수도 있다. 1704 단계 에서는, 결정된 플랫폼과 호환되는 환경을 실행하기에 적합한 제1 어플리케이션 플레이어가 식별되며, 상기 제1 어플리케이션 플레이어는 제1 어플리케이션뿐만 아니라, 결정된 플랫폼에 대해 생성된 하나 이상의 다른 어플리케이션들도 실행할 수 있다. 몇몇 실시 예에 있어서, 1702 와 1704 단계는 순차적인 2 단계로 수행되기 보다는 단일한 단계로 수행된다는 점에 유의해야 한다. 예를 들면, 특정 어플리케이션에 대한 메타데이터는 그 어플리케이션을 실행하는 데에 이용될 필요가 있는 플레이어를 구체적으로 나열할 수 있으며, 이에 따라 어떠한 플랫폼을 실행할 것인지와 어떠한 플레이어를 사용할 것인지 결정하는 것이 동시에 일어날 수 있다. 더욱이, 이 단계 중 하나 또는 모두가 상기 제1 어플리케이션과 관련된 메타데이터를 플레이어 소스로 전송하고 제1 어플리케이션 플레이어의 식별(identification)을 플레이어 소스로부터 수신하는 단계를 포함한다. 이 플레이어 소스는 상기 디바이스 또는 네트워크를 통해 접속 될수 있는 또 다른 디바이스에 위치할 수 있다. 1706 단계 에서, 상기 제1 어플리케이션 플레이어가 다중 플랫폼 어플리케이션 플레이어에 로딩된다. 다중 플랫폼 어플리케이션 플레이어에 상기 제1 어플리케이션 플레이어가 이미 로딩되어 있다면 이 과정이 요구되지 않는다는 점에 유의해야 한다. 1708 단계 에서, 상기 디바이스의 상기 다중 플랫폼 어플리케이션 플레이어 내부의 상기 제1 어플리케이션 플레이어에서 상기 제1 어플리케이션이 실행된다.
1710 단계 에서, 상기 디바이스에서 제2 어플리케이션을 실행하라는 명령이 수신될 수 있으며, 상기 제2 어플리케이션은 상기 제1 어플리케이션을 실행하기 위해 요구되었던 상기 플랫폼과는 다른 플랫폼을 요구한다. 1712 단계 에서, 상기 제2 어플리케이션의 실행에 대해서 요구되는 플랫폼과 호환되는 환경을 실행하기에 적합한 제2 어플리케이션 플레이어가 식별될 수 있다. 1714 단계 에서, 상기 제2 어플리케이션 플레이어는 다중 플랫폼 어플리케이션 플레이어에 로딩될 수 있다. 1706 단계와 같이, 다중 플랫폼 어플리케이션 플레이어에 상기 제2 어플리케이션 플레이어가 이미 로딩되어 있다면, 이 단계는 필요하지 않을 수도 있다. 1716 단계 에서, 상기 디바이스의 상기 다중 플랫폼 어플리케이션 플레이어 내부의 상기 제2 어플리케이션 플레이어에서 상기 제2 어플리케이션이 실행된다.
다양한 실시 예 에서, 상술한 단계들은 사용자가 인식하지 못한 채로 수행될 수 있다.
도 18은 본 발명의 일 실시 예에 따른 정보 처리 시스템을 보여주는 하이 레벨 블록 다이어그램이다. 컴퓨터 시스템(1800)은 개시된 다중 플랫폼 어플리케이션 플레이어의 일 실시 예를 실행하는 데에 있어서 유용하다. 컴퓨터 시스템(1800)은 하나 이상의 프로세서(1802)를 포함하며, 추가적으로, 그래픽, 문자, 및 다른 데이터를 디스플레이 하기 위한 전자 디스플레이 디바이스(1804), RAM과 같은 메인 메모리(1806), 하드 디스크 드라이브와 같은 저장 디바이스(1808), 광 디스크 드라이브와 같은 제거 가능한 저장 디바이스(1810), 키보드, 터치 스크린, 키패드, 마이크 또는 다른 포인팅 디바이스들과 같은 사용자 인터페이스 디바이스(1812), 및 무선 네트워크 인터페이스와 같은 통신 인터페이스(1814)를 포함할 수 있다. 통신 인터페이스(1814)는 소프트웨어와 데이터를 컴퓨터 시스템(100)과 외부 디바이스 사이에서 연결을 통해 전송하도록 한다. 시스템은, 앞서 언급된 디바이스/모듈들의 연결에 통신 버스(communications bus), 크로스-오버 바(cross-over bar), 또는 네트워크와 같은 통신 인프라(1816) 또한 포함할 수 있다.
통신 인터페이스(1814)를 통해서 전송된 정보는 전자 신호, 전자기 신호, 광 신호의 형태가 될 수 있고, 또는 신호를 운반하는 통신 연결을 통해서 통신 인터페이스(1814)에 의해 수신될 수 있는 신호의 형태가 될 수 있으며, 도선이나 케이블, 광섬유, 전화 선, 휴대폰 연결, 라디오 주파수 연결, 및/또는 다른 통신 채널을 이용하여 시행될 수 있다. 본 발명의 다양한 방법들을 동작시키기 위한 실행 가능한 컴퓨터 코드를 포함하는 저장 디바이스를 기술하는데 사용될 수 있는 것과 같은 프로그램 저장 디바이스들은 캐리어 웨이브 혹은 신호들과 같은 일시적인 대상을 포함하지는 않는 것으로 이해되어야 한다는 점에 유의해야 한다. 프로그램 저장 디바이스들과 컴퓨터 판독 가능 매체들은 메인 메모리, 부차적 메모리, 제거 가능한 저장 디스크, 하드 디스크 드라이브, 및 다른 유형의 저장 디바이스 혹은 요소들을 언급하기 위해 일반적으로 사용되는 용어이다.
앞서 설명된 본 발명의 다양한 측면, 특징, 실시 예/ 또는 시행들은 단독적으로 혹은 다양한 조합들을 통해서 사용될 수 있다. 본 발명의 많은 특징과 장점들이 기재된 설명으로부터 분명하며, 따라서 본 발명의 그러한 모든 특징과 장점들을 포함하는 것이 첨부된 특허청구범위에 의해서 의도된다. 더욱이, 해당 기술 분야에 기술자들에 의해서 많은 수정과 변형들이 쉽게 이루어질 수 있으므로, 본 발명은 도시 및 기재된 구조와 동작만으로 제한되어서는 안 된다. 이런 이유로, 모든 적합한 수정과 균등물들은 본 발명의 범위 내에 포함될 수 있다.

Claims (23)

  1. 다중 플랫폼 어플리케이션 플레이어를 디바이스에서 동작하는 방법에 있어서,
    제1 어플리케이션을 상기 디바이스에서 실행하는 명령을 수신하는 단계;
    상기 제1 어플리케이션을 실행하는 데에 요구되는 플랫폼을 결정하는 단계;
    상기 결정된 플랫폼과 호환되는 환경을 실행하는 데에 알맞은 제1 어플리케이션 플레이어를 식별하는 단계;
    상기 다중 플랫폼 어플리케이션 플레이어에서 상기 제1 어플리케이션 플레이어를 로딩하는 단계; 및
    상기 디바이스의 상기 다중 플랫폼 어플리케이션 플레이어 내의 상기 제1 어플리케이션 플레이어에서 상기 제1 어플리케이션을 실행하는 단계를 포함하는 것을 특징으로 하며,
    상기 제1 어플리케이션 플레이어는 상기 제1 어플리케이션뿐만 아니라 상기 결정된 플랫폼에 대해 생성된 하나 이상의 다른 어플리케이션 들도 실행할 수 있는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 제1 어플리케이션을 실행하는 데에 요구 된 상기 플랫폼과는 다른 플랫폼을 요구하는 제2 어플리케이션을 상기 디바이스에서 실행하는 명령을 수신하는 단계;
    상기 제2 어플리케이션을 실행하는 데에 요구 된 플랫폼과 호환되는 환경을 실행하는 데에 알맞은 제2 어플리케이션 플레이어를 식별하는 단계;
    상기 다중 플랫폼 어플리케이션 플레이어에서 상기 제2 어플리케이션 플레이어를 로딩하는 단계; 및
    상기 디바이스의 상기 다중 플랫폼 어플리케이션 플레이어 내의 상기 제2 어플리케이션 플레이어에서 상기 제2 어플리케이션을 실행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 결정하는 단계, 식별하는 단계, 로딩하는 단계, 실행하는 단계는 사용자에게 인식되지 않도록 수행되는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 결정하는 단계 및 식별하는 단계는, 상기 제1 어플리케이션과 관련된 메타데이터를 플레이어 소스로 전송하는 단계 및 상기 제1 어플리케이션 플레이어의 식별을 상기 플레이어 소스로부터 수신하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 플레이어 소스는 상기 디바이스에 위치하는 것을 특징으로 하는 방법.
  6. 제4항에 있어서,
    상기 플레이어 소스는 네트워크를 통해 접속 가능한 디바이스에 위치하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 다중 플랫폼 플레이어에 상기 제1 어플리케이션 플레이어를 로딩하는 상기 단계는, 상기 제1 어플리케이션 플레이어를 네트워크 연결을 통해 다운로딩 하는 단계 및 상기 제1 어플리케이션 플레이어를 상기 디바이스에 설치하는 단계를 포함하고,
    제1 어플리케이션 플레이어를 식별하는 상기 단계는, 상기 디바이스의 사용자와는 독립적으로, 상기 제1 어플리케이션 플레이어를 위한 소스를 식별하는 단계 및 상기 제1 어플리케이션 플레이어를 다운로딩 하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 디바이스가 상기 제1 어플리케이션을 실행하는 상기 명령을 수신할 때, 상기 디바이스는 상기 제1 어플리케이션 플레이어에 대한 정확한 소스를 인식하지 못하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 디바이스가 상기 제1 어플리케이션을 실행하는 상기 명령을 수신할 때, 상기 디바이스는 상기 제1 어플리케이션 플레이어의 아이덴티티(identity)를 인식하지 못하는 것을 특징으로 하는 방법.
  10. 장치에 있어서,
    디스플레이;
    인터페이스;
    메모리;
    어플리케이션 플레이어들 각각은 어플리케이션들이 실행될 수 있는 플랫폼을 동작시키는 실행이 가능하며, 복수 개의 설치된 상기 어플리케이션 플레이어들을 가지는 플레이어 호스트를 포함하는 다중 플랫폼 어플리케이션 플레이어; 및
    어플리케이션이 실행되면, 상기 다중 플랫폼 어플리케이션을 동작시킴으로써, 플레이어 소스를 쿼리하여 어플리케이션을 실행하는 데에 필요한 어플리케이션 플레이어를 결정하고, 만일 상기 결정된 어플리케이션 플레이어가 상기 다중 플랫폼 어플리케이션 플레이어에 이미 설치되지 않았다면, 상기 결정된 어플리케이션 플레이어를 어플리케이션 소스로부터 다운로딩 하고 설치하도록 조정된 프로세서를 포함하는 것을 특징으로 하는 장치.
  11. 제10항에 있어서,
    상기 어플리케이션 소스는 서버에 존재하는 것을 특징으로 하는 장치.
  12. 제10항에 있어서,
    상기 플레이어 소스는 외부 디바이스에 존재하는 것을 특징으로 하는 장치.
  13. 제10항에 있어서,
    상기 장치는 모바일 디바이스이고, 상기 외부 디바이스는 TV인 것을 특징으로 하는 장치.
  14. 다중 플랫폼 어플리케이션 플레이어에 있어서,
    제1 어플리케이션을 상기 다중 플랫폼 어플리케이션 플레이어에 설치하는 명령을 수신하는 수단;
    상기 제1 어플리케이션을 실행하는 데에 요구되는 어플리케이션 플레이어를 결정하는 수단;
    상기 제1 어플리케이션을 실행하는 데에 요구되는 상기 어플리케이션 플레이어가 상기 다중 플랫폼 어플리케이션 플레이어에 이미 설치되지 않았다면 자동적으로 다운로딩 하고 설치하는 수단; 및
    상기 제1 어플리케이션을 실행하는 데에 요구되는 상기 어플리케이션 플레이어를 실행함으로써 생산된 가상 플랫폼을 사용하여 상기 제1 어플리케이션을 실행하기 위해서, 상기 제1 어플리케이션을 설치하는 수단을 포함하는 것을 특징으로 하는 다중 플랫폼 어플리케이션 플레이어.
  15. 제14항에 있어서,
    상기 명령을 수신하는 수단은, 설치할 어플리케이션의 사용자 선택을 수신하도록 설계된 그래픽 사용자 인터페이스(GUI)를 포함하는 것을 특징으로 하는 다중 플랫폼 어플리케이션 플레이어.
  16. 제14항에 있어서,
    상기 결정하는 수단은, 어플리케이션들 및 상기 어플리케이션들을 실행하는 데에 요구되는 대응 어플리케이션 플레이어들의 메타데이터의 다양한 부분들의 목록을 가지는 테이블에 접속하는 수단을 포함하는 것을 특징으로 하는 다중 플랫폼 어플리케이션 플레이어.
  17. 제16항에 있어서,
    상기 결정하는 수단은 인터넷을 통하여 서버와 통신하는 수단을 포함하는 것을 특징으로 하는 다중 플랫폼 어플리케이션 플레이어.
  18. 디바이스에서 다중 플랫폼 어플리케이션 플레이어 작동방법을 수행하기 위해 기계에 의해 실행 가능한 명령의 프로그램을 구현하는 상기 기계에 의해 판독 가능한 비일시적(non-transitory) 프로그램 저장 디바이스에 있어서, 상기 방법은:
    제1 어플리케이션을 상기 디바이스에서 실행하는 명령을 수신하는 단계;
    상기 제1 어플리케이션을 실행하는 데에 요구되는 플랫폼을 결정하는 단계;
    상기 제1 어플리케이션뿐만 아니라 상기 결정된 플랫폼에 대해 생성된 하나 이상의 다른 어플리케이션 들도 실행할 수 있으며, 어떠한 다른 프로그램으로부터 독립적으로 실행할 수 있는 어플리케이션 인터프리터를 포함하는 제1 어플리케이션 플레이어로서, 상기 결정된 플랫폼과 호환되는 환경을 실행하는 데에 알맞은 상기 제1 어플리케이션 플레이어를 식별하는 단계; 및
    상기 디바이스의 상기 다중 플랫폼 어플리케이션 플레이어 내의 상기 제1 어플리케이션 플레이어에서 상기 제1 어플리케이션을 실행하는 단계를 포함하는 것을 특징으로 하는 비일시적 프로그램 저장 디바이스.
  19. 제18항에 있어서, 상기 방법은,
    상기 제1 어플리케이션을 실행하는 데에 요구 된 상기 플랫폼과는 다른 플랫폼을 요구하는 제2 어플리케이션을 상기 디바이스에서 실행하는 명령을 수신하는 단계;
    상기 제2 어플리케이션을 실행하는 데에 요구 된 상기 플랫폼과 호환되는 환경을 실행하는 데에 적합하고, 어떠한 다른 프로그램으로부터 독립적으로 실행할 수 있는 어플리케이션 인터프리터를 포함하는 제2 어플리케이션 플레이어를 식별하는 단계; 및
    상기 디바이스의 상기 다중 플랫폼 어플리케이션 플레이어 내의 상기 제2 어플리케이션 플레이어에서 상기 제2 어플리케이션을 실행하는 단계를 더 포함하는 것을 특징으로 하는 비일시적 프로그램 저장 디바이스.
  20. 제18항에 있어서, 상기 방법은,
    상기 다중 플랫폼 어플리케이션 플레이어가 동작하고 있는 물리적 디바이스에 관한 하드웨어 관련 정보를 자동적으로 검색 하는 단계를 더 포함하고;
    상기 식별하는 단계는 상기 검색된 하드웨어 관련 정보에 적어도 부분적으로는 기초하는 것을 특징으로 하는 비일시적 프로그램 저장 디바이스.
  21. 제18항에 있어서, 상기 방법은,
    상기 다중 플랫폼 어플리케이션 플레이어가 동작하고 있는 물리적 디바이스에서 실행되는 운영 체제에 관한 정보를 자동적으로 검색하는 단계를 더 포함하고;
    상기 식별하는 단계는 상기 검색된 운영 체제에 관한 정보에 적어도 부분적으로는 기초하는 것을 특징으로 하는 비일시적 프로그램 저장 디바이스.
  22. 제18항에 있어서,
    상기 다중 플랫폼 어플리케이션 플레이어는 휴대폰에서 작동하는 것을 특징으로 하는 비일시적 프로그램 저장 디바이스.
  23. 제18항에 있어서,
    상기 다중 플랫폼 어플리케이션 플레이어는 TV에서 작동하는 것을 특징으로 하는 비일시적 프로그램 저장 디바이스.
KR1020110092230A 2010-09-13 2011-09-09 다중 플랫폼 어플리케이션 플레이어 KR101850816B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US38244510P 2010-09-13 2010-09-13
US61/382,445 2010-09-13
US13/095,538 2011-04-27
US13/095,538 US9069584B2 (en) 2010-09-13 2011-04-27 Multi-platform application player

Publications (2)

Publication Number Publication Date
KR20120028274A true KR20120028274A (ko) 2012-03-22
KR101850816B1 KR101850816B1 (ko) 2018-04-20

Family

ID=45807929

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110092230A KR101850816B1 (ko) 2010-09-13 2011-09-09 다중 플랫폼 어플리케이션 플레이어

Country Status (2)

Country Link
US (1) US9069584B2 (ko)
KR (1) KR101850816B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140054685A (ko) * 2012-10-29 2014-05-09 엘지전자 주식회사 영상표시기기 및 그 제어 방법
WO2014142545A1 (ko) * 2013-03-12 2014-09-18 주식회사 포스코 디지털 노트 서비스 방법, 이 방법을 수행하는 프로그램을 기록한 기록매체, 이 방법을 수행하는 서버 및 모바일 장치
KR20210002394A (ko) * 2013-12-30 2021-01-08 삼성전자주식회사 응용 프로그램을 실행하는 전자 장치 및 방법
US11055107B2 (en) 2013-12-30 2021-07-06 Samsung Electronics Co., Ltd. Electronic apparatus and method of executing application program

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120089923A1 (en) * 2010-10-08 2012-04-12 Microsoft Corporation Dynamic companion device user interface
KR101790218B1 (ko) * 2010-12-30 2017-10-26 삼성전자주식회사 사용자 단말 장치 및 그 ui 제공 방법
US10089093B1 (en) 2011-05-24 2018-10-02 BlueStack Systems, Inc. Apparatuses, systems and methods of switching operating systems
US8924958B1 (en) 2011-05-24 2014-12-30 BlueStack Systems, Inc. Application player
US10791538B1 (en) * 2011-07-06 2020-09-29 BlueStack Systems, Inc. Cloud-based data synchronization
US9445392B1 (en) 2011-10-07 2016-09-13 BlueStack Systems, Inc. Method of providing non-native notifications and system thereof
US20140040772A1 (en) * 2011-12-12 2014-02-06 Adobe Systems Incorporated Highlighting graphical user interface components based on usage by other users
US20130198029A1 (en) * 2012-01-26 2013-08-01 Microsoft Corporation Application recommendation and substitution
US8781828B2 (en) * 2012-04-26 2014-07-15 Lg Electronics Inc. Electronic device and method of controlling the same
US20140040307A1 (en) * 2012-08-05 2014-02-06 Microsoft Corporation Software downloads from search results page
US9360997B2 (en) * 2012-08-29 2016-06-07 Apple Inc. Content presentation and interaction across multiple displays
EP2720146A1 (en) * 2012-10-11 2014-04-16 Thomson Licensing Distributed application life-cycle management
USD742418S1 (en) * 2012-11-13 2015-11-03 Wartsila Finland Oy Propulsion control system for ship with a display
WO2014165976A1 (en) * 2013-04-10 2014-10-16 Berryman Jeremy Multitasking and screen sharing on portable computing devices
USD857738S1 (en) 2013-09-03 2019-08-27 Samsung Electronics Co., Ltd. Display screen or portion thereof with transitional graphical user interface
USD767587S1 (en) * 2013-09-03 2016-09-27 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD817994S1 (en) 2013-09-03 2018-05-15 Samsung Electronics Co., Ltd. Display screen or portion thereof with transitional graphical user interface
USD785003S1 (en) * 2013-09-03 2017-04-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD752630S1 (en) * 2013-12-03 2016-03-29 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD754152S1 (en) * 2014-01-03 2016-04-19 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD766323S1 (en) * 2014-02-28 2016-09-13 Citibank, N.A. Touchscreen display or portion thereof with a graphical user interface
USD761310S1 (en) * 2014-03-13 2016-07-12 Htc Corporation Display screen with graphical user interface
USD785018S1 (en) * 2014-06-02 2017-04-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
KR102288726B1 (ko) 2014-06-09 2021-08-12 삼성전자주식회사 웨어러블 전자 장치, 메인 전자 장치, 시스템 및 그 제어 방법
USD798334S1 (en) * 2014-09-01 2017-09-26 Apple Inc. Display screen or portion thereof with animated graphical user interface
USD787553S1 (en) 2014-11-20 2017-05-23 General Electric Company Display screen or portion thereof with icon
USD764497S1 (en) * 2014-12-31 2016-08-23 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
US20160234320A1 (en) * 2015-02-10 2016-08-11 Mediatek Inc. System, device, and method for accessing cross-platform service
USD788166S1 (en) * 2016-03-07 2017-05-30 Facebook, Inc. Display screen with animated graphical user interface
US10387435B2 (en) 2016-07-27 2019-08-20 Microsoft Technology Licensing, Llc Computer application query suggestions
US10346457B2 (en) 2016-07-27 2019-07-09 Microsoft Technology Licensing, Llc Platform support clusters from computer application metadata
US10339148B2 (en) 2016-07-27 2019-07-02 Microsoft Technology Licensing, Llc Cross-platform computer application query categories
CN106598655B (zh) * 2016-12-05 2020-02-14 腾讯科技(深圳)有限公司 应用程序页面处理方法和装置
CN107193379B (zh) * 2017-05-23 2021-01-26 努比亚技术有限公司 应用程序启动方法、终端及计算机可读存储介质
USD841677S1 (en) * 2017-06-04 2019-02-26 Apple Inc. Display screen or portion thereof with graphical user interface
USD880495S1 (en) 2018-06-03 2020-04-07 Apple Inc. Electronic device with graphical user interface
US11474801B1 (en) * 2018-09-26 2022-10-18 Amazon Technologies, Inc. Automatic application installation based on proximity detection
USD916867S1 (en) 2019-02-15 2021-04-20 Apple Inc. Display screen or portion thereof with graphical user interface
USD948533S1 (en) * 2019-04-25 2022-04-12 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US11635881B2 (en) * 2020-09-22 2023-04-25 Microsoft Technology Licensing, Llc Cross-platform computing skill execution
CN112887752B (zh) * 2021-02-08 2023-02-28 北京安锐卓越信息技术股份有限公司 基于多直播平台的直播创建方法、装置以及存储介质
US11915010B2 (en) * 2022-03-28 2024-02-27 Microsoft Technology Licensing, Llc Cross-platform multi-transport remote code activation

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6578142B1 (en) * 1999-06-18 2003-06-10 Phoenix Technologies, Ltd. Method and apparatus for automatically installing and configuring software on a computer
US7194259B2 (en) * 2003-09-05 2007-03-20 Sony Ericsson Mobile Communications Ab Remote control device having wireless phone interface
US7523116B2 (en) * 2003-10-30 2009-04-21 International Business Machines Corporation Selection of optimal execution environment for software applications
CN101031882B (zh) * 2004-06-08 2010-09-08 达尔特设备互操作有限公司 用于通用设备互操作性平台的设备组招募和内容再现的体系结构、装置和方法
US7779409B2 (en) * 2004-08-24 2010-08-17 Nokia Corporation Device-to-device software distribution
US7895594B2 (en) * 2005-03-28 2011-02-22 Freescale Semiconductor, Inc. Virtual machine extended capabilities using application contexts in a resource-constrained device
US20070099658A1 (en) 2005-11-03 2007-05-03 Blue Label Interactive Systems and methods for developing, delivering and using video applications for a plurality of mobile platforms
EP1816562A1 (en) * 2006-02-03 2007-08-08 Research In Motion Limited System and method for extending a component-based application platform with custom services
EP2103089A2 (en) * 2006-12-11 2009-09-23 Hari Prasad Sampath A method and system for personalized content delivery for wireless devices
US8484728B2 (en) * 2009-06-03 2013-07-09 Apple Inc. Managing securely installed applications

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140054685A (ko) * 2012-10-29 2014-05-09 엘지전자 주식회사 영상표시기기 및 그 제어 방법
WO2014142545A1 (ko) * 2013-03-12 2014-09-18 주식회사 포스코 디지털 노트 서비스 방법, 이 방법을 수행하는 프로그램을 기록한 기록매체, 이 방법을 수행하는 서버 및 모바일 장치
KR20210002394A (ko) * 2013-12-30 2021-01-08 삼성전자주식회사 응용 프로그램을 실행하는 전자 장치 및 방법
US11055107B2 (en) 2013-12-30 2021-07-06 Samsung Electronics Co., Ltd. Electronic apparatus and method of executing application program
US11720370B2 (en) 2013-12-30 2023-08-08 Samsung Electronics Co., Ltd. Electronic apparatus and method of executing application program

Also Published As

Publication number Publication date
US20120066675A1 (en) 2012-03-15
US9069584B2 (en) 2015-06-30
KR101850816B1 (ko) 2018-04-20

Similar Documents

Publication Publication Date Title
KR101850816B1 (ko) 다중 플랫폼 어플리케이션 플레이어
US20160234075A1 (en) System and methods for settings cards
US9843458B2 (en) Transmitting appliance-specific content to a user device
US9936335B2 (en) Mobile computing device application sharing
RU2619889C2 (ru) Способ и устройство для совместного использования данных между различными сетевыми устройствами
KR101385364B1 (ko) 애플리케이션 인터페이스 부분들을 주변의 컴퓨터 디바이스들 상에 제공하기 위한 방법 및 장치
US8973014B2 (en) Inter-device communication transmission system and method thereof
KR102226782B1 (ko) 심리스 통화 전환
US20150169183A1 (en) Method for controlling a composition of a home screen and electronic device thereof
US20110191516A1 (en) Universal touch-screen remote controller
KR102488975B1 (ko) 콘텐츠 시청 장치 및 그 콘텐츠 시청 옵션을 디스플레이하는 방법
KR101633366B1 (ko) 앱스토어 서비스 제공 방법 및 시스템
CN107113468B (zh) 一种移动计算设备以及实现的方法、计算机存储介质
US10637804B2 (en) User terminal apparatus, communication system, and method of controlling user terminal apparatus which support a messenger service with additional functionality
US20130165180A1 (en) Integrating Operation Of Consumer Electronic Devices
EP2634682A2 (en) Apparatus and method for creating a shortcut menu
EP2767905A1 (en) Terminal apparatus, server, browser of terminal apparatus operating system and method of operating browser
CN106027631B (zh) 一种数据传输方法及装置
JP2011045085A (ja) コントロールウィジェット提供方法及びこれを適用したデバイス
CN103634674A (zh) 对智能电视中的资源进行推荐的方法和装置
US20170269916A1 (en) Selective Application Installation Or Application Running Without Installation
US20080092052A1 (en) Method and system for customizing multiple user interfaces mapped to functions
US9807151B2 (en) Method and electronic device for sending and receiving data
KR20140104773A (ko) 디스플레이장치 및 그 제어방법
CN111135557B (zh) 用于多屏的交互方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
GRNT Written decision to grant