KR20130073974A - 애플리케이션 서비스 확장 장치 및 방법 - Google Patents

애플리케이션 서비스 확장 장치 및 방법 Download PDF

Info

Publication number
KR20130073974A
KR20130073974A KR1020137010848A KR20137010848A KR20130073974A KR 20130073974 A KR20130073974 A KR 20130073974A KR 1020137010848 A KR1020137010848 A KR 1020137010848A KR 20137010848 A KR20137010848 A KR 20137010848A KR 20130073974 A KR20130073974 A KR 20130073974A
Authority
KR
South Korea
Prior art keywords
application
service
data type
user device
services
Prior art date
Application number
KR1020137010848A
Other languages
English (en)
Other versions
KR101503191B1 (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 KR20130073974A publication Critical patent/KR20130073974A/ko
Application granted granted Critical
Publication of KR101503191B1 publication Critical patent/KR101503191B1/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/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephone Function (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

사용자 디바이스의 서비스들을 확장하는 장치 및 방법들은 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별하는 것을 포함한다. 또한, 장치 및 방법들은 제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 하나의 제 2 애플리케이션을 식별하는 것을 포함한다. 또한, 장치 및 방법들은 제 1 애플리케이션의 제 1 서비스 또는 제 1 데이터 유형 중 선택된 하나의 호환성을 제 2 애플리케이션의 제 2 서비스 또는 제 2 데이터 유형의 각각의 하나와 매칭시키기 위한 수단을 포함한다.

Description

애플리케이션 서비스 확장 장치 및 방법{APPARATUS AND METHODS OF EXTENDING APPLICATION SERVICES}
35 U.S.C. §119 에 따른 우선권 주장
본 특허 출원은, 본원의 양도인에게 양도되었으며 본원의 참조로서 본원에 명확히 포함된, 2010년 9월 28일에 출원된 "FRAMEWORK FOR THIRD PARTY EXTENSION OF CORE APPLICATION USER FNTERFACES" 이라는 명칭의 가출원 제 61/387,451 호에 대한 우선권을 주장한다.
본 개시물은 모바일 동작 환경에 관한 것으로, 좀더 구체적으로, 사용자 디바이스들을 위한 통합된 모바일 애플리케이션들을 배포하는 개선된 장치들 및 방법들을 제공하는 것에 관한 것이다.
모바일 사업자들 또는 모바일 디바이스 회사들은 오늘날 통신 산업에서 중요한 역할을 한다. 처음에, 모바일 사업자들은 그들의 가입자 기반을 늘림으로써 수익을 발생키는데 그들의 노력들을 집중했다. 그러나, 몇몇 국가들에서, 시장이 포화점에 가깝게 도달했기 때문에, 가입자 기반을 증가시키기 위한 범위는 이제 매우 제한적으로 되었다는 것이 인식될 것이다. 그 결과, 모바일 사업자들은 그들의 수익을 증가시키기 위해 가입자들에게 부가가치 서비스들을 제공하는 것에 진출했다.
증가된 수익을 발생시키는 한 가지 방식은 사용자들에게 벨소리들, 바탕화면, 게임들 등과 같은 프리미엄 서비스들의 판매들을 통한 것이다. 이러하 서비스들은 모바일 사업자 자신들에 의해, 또는 그러한 서비스들을 제공하기 위해 모바일 사업자들과 협력하여 운영할 수도 있는 비지니스 개체들에 의해 제공될 수도 있다. 서비스들은 요금의 지불 시에 모바일 디바이스 또는 사용자 장비로 다운로드할 수도 있다.
사용자들에게 가장 관심이 있을 것 같은 컨텐츠 또는 서비스들을 사용자들에게 추천하고 홍보할 시에, 잠재적인 판매 수입들을 최대화하는 것과 같은 많은 이득들이 생긴다. 사용자들은 이러한 개별적으로 추천된 컨텐츠 및 서비스들을 고려하여 그들의 모바일 디바이스를 이용해 보다 나은 경험을 할 수 있다.
그러한 컨텐츠 및 서비스들의 급증하는 부문은 애플리케이션들과 관련된다. 예를 들어, 점점 더 많은 애플리케이션들이 온라인에 나옴에 따라, 디바이스 상의 모바일 애플리케이션 스토어는 붐비게 되며, 둘러보기 힘든 것을 경험하게 된다. 유사하게, 대부분의 모바일 컴퓨팅 플랫폼들의 일반적인 사용자 인터페이스 제약들을 고려해 볼 때, 설치된 애플리케이션들은 오직 한 번에 한 개씩만 이용될 수 있는 기능을 가질 수 있다. 각각의 애플리케이션은 일반적으로 독자적으로 구동한다. 종래에는, 일부 사례들에서 모바일 플랫폼들은 모바일 플랫폼에 걸쳐 데이터 (예를 들어, 접속 세부사항들) 의 공유를 허용한다. 그 기능은, 그러나, 제 3 자 및 코어 애플리케이션들 사이의 모든, 맞춤형 사용자 인터페이스 (user interface; UI) 확장들의 공유로 확장하지 않는다.
다음은 그러한 양상들의 기본적인 이해를 제공하기 위해 하나 이상의 양상들의 간소화된 요약을 제시한다. 이 요약은 모든 고려된 양상들의 광범위한 개관은 아니고, 모든 양상들의 핵심적이거나 주요한 요소들을 확인하거나 임의의 양상 또는 모든 양상들의 범위를 기술하려는 의도는 아니다. 그 요약의 유일한 목적은, 이후 제시되는 좀더 상세한 설명에 대한 서두로서, 간소화된 형태로 하나 이상의 양상들의 일부 개념들을 제시하는 것이다.
일 양상에서, 본 개시물은 사용자 디바이스의 서비스들을 확장하는 방법을 제공한다. 방법은 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별하는 단계를 포함한다. 방법은 제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별하는 단계를 더 포함한다. 방법은 제 1 애플리케이션의 제 1 서비스 또는 제 1 데이터 유형 중 선택된 하나의 호환성을 제 2 애플리케이션의 제 2 서비스 또는 제 2 데이터 유형의 각각의 하나와 매칭시키는 단계를 더 포함한다.
다른 양상에서, 본 개시물은 사용자의 디바이스의 서비스들을 확장하기 위한 적어도 하나의 프로세서를 제공한다. 제 1 모듈은 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별한다. 제 2 모듈은 제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별한다. 제 3 모듈은 제 1 애플리케이션의 제 1 서비스 또는 제 1 데이터 유형 중 선택된 하나의 호환성을 제 2 애플리케이션의 제 2 서비스 또는 제 2 데이터 유형의 각각의 하나와 매칭시킨다.
추가적인 양상에서, 본 개시물은 사용자 디바이스의 서비스들을 확장하기 위한 컴퓨터 프로그램 제품을 제공한다. 비일시적인 컴퓨터 판독가능 저장 매체가 명령들을 저장한다. 적어도 하나의 명령은 컴퓨터로 하여금 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별하도록 한다. 적어도 하나의 명령은 컴퓨터로 하여금 제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별하도록 한다. 적어도 하나의 명령은 컴퓨터로 하여금 제 1 애플리케이션의 제 1 서비스 또는 제 1 데이터 유형 중 선택된 하나의 호환성을 제 2 애플리케이션의 제 2 서비스 또는 제 2 데이터 유형의 각각의 하나와 매칭시키도록 한다.
다른 양상에서, 본 개시물은 사용자 디바이스의 서비스들을 확장하기 위한 장치를 제공한다. 장치는 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별하기 위한 수단을 포함한다. 장치는 제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별하기 위한 수단을 포함한다. 장치는 제 1 애플리케이션의 제 1 서비스 또는 제 1 데이터 유형 중 선택된 하나의 호환성을 제 2 애플리케이션의 제 2 서비스 또는 제 2 데이터 유형의 각각의 하나와 매칭시키기 위한 수단을 포함한다.
또 다른 양상에서, 본 개시물은 사용자 디바이스의 서비스들을 확장하기 위한 장치를 제공한다. 확장 관리자는 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별한다. 발견 에이전트는 제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별한다. 발견 에이전트는 제 1 애플리케이션의 제 1 서비스 또는 제 1 데이터 유형 중 선택된 하나의 호환성을 제 2 애플리케이션의 제 2 서비스 또는 제 2 데이터 유형의 각각의 하나와 매칭시킴으로써 제 2 애플리케이션을 식별한다.
앞서의 언급 및 관련된 결과들을 달성하기 위해, 하나 이상의 양상들은 이후에서 좀더 상세히 설명되고 특히 청구항들에서 언급된 특징들을 포함한다. 다음의 설명 및 첨부된 도면들은 하나 이상의 양상들의 특정 예시적이 특징들을 상세히 제시한다. 이러한 특징들은 그러나 다양한 양상들의 원리들이 이용될 수도 있는 다양한 방식들 중 일부만을 나타내고, 이러한 설명은 모든 그러한 양상들 및 그 등가물들을 포함하고자 한다.
개시된 양상들을 제한하는 것이 아니라 예시하기 위해 제공되는 첨부된 도면들과 함께 개시된 양상들이 이후에서 설명될 것이며, 여기서 유사한 명칭들은 유사한 요소들을 표시한다.
도 1 은, 일 양상에 따른, 사용자 디바이스의 서비스들을 확장하기 위한 장치에 대한 도식적 다이어그램을 도시한다.
도 2 는, 일 양상에 따른, 사용자 디바이스의 서비스들을 확장하기 위한 절차의 플로 다이어그램을 도시한다.
도 3 은, 일 양상에 따른, 컨텍스트적으로 통합된 애플리케이션들을 나타내는 모바일 컴퓨팅 플랫폼의 그래픽 사용자 인터페이스의 순차적 묘사들을 도시한다.
도 4 는, 일 양상에 따른, 설치될 수 있는 컨텍스트적으로 관련된 애플리케이션들을 나타내는 그래픽 사용자 인터페이스의 순차적 묘사들을 나타낸다.
도 5 는, 일 양상에 따른, 컨텍스트적으로 관련된 애플리케이션을 검토하여 설치하기 위한 동작들을 나타내는 그래픽 사용자 인터페이스의 순차적 묘사들을 나타낸다.
도 6 은, 일 양상에 따른, 컨텍스트적으로 관련된 애플리케이션을 설치한 후의 그래픽 사용자 인터페이스의 순차적 묘사들을 나타낸다.
도 7 은, 일 양상에 따른, 독자적인 방식으로 새롭게 설치된 애플리케이션과 상호작용하는 그래픽 사용자 인터페이스의 순차적 묘사들을 나타낸다.
도 8 은, 일 양상에 따른, 통합된 애플리케이션 서비스들에 의해 강화된 달력 애플리케이션과 상호작용하는 그래픽 사용자 인터페이스의 순차적 묘사들을 나타낸다.
도 9 는, 일 양상에 따른, 통합된 애플리케이션 서비스들에 의해 강화된 위치확인 애플리케이션과 상호작용하는 그래픽 사용자 인터페이스의 순차적 묘사들을 나타낸다.
도 10 은, 일 양상에 따른, 통합된 애플리케이션 서비스들에 의해 강화된 사진 애플리케이션과 상호작용하는 그래픽 사용자 인터페이스의 순차적 묘사들을 나타낸다.
도 11a - 도 11b 는, 일 양상에 따른, 증강 현실 애플리케이션의 예들을 나타낸다.
도 12 는, 일 양상에 따른, 모바일 컴퓨팅 플랫폼 상의 사용자 인터페이스 애플리케이션의 컨텍스트적 통합을 위한 통신 시스템을 도시한다.
도 13 은, 일 양상에 따른, 모바일 컴퓨팅 플랫폼 상의 애플리케이션들의 컨텍스트적 통합을 위한 절차의 플로 다이어그램을 도시한다.
도 14 는, 일 양상에 따른, 애플리케이션 서비스들을 확장하기 위한 사용자 디바이스의 예시적인 환경의 개략적 다이어그램을 도시한다.
도 15 는, 일 양상에 따른, 애플리케이션 서비스들을 확장하기 위한 네트워크 엔티티의 예시적인 환경의 개략적 다이어그램을 도시한다.
도 16 은, 일 양상에 따른, 사용자 디바이스의 서비스들을 확장하기 위한 전기적 컴포넌트들의 논리적 그룹핑의 개략적 다이어그램을 도시한다.
현재의 모바일 디바이스들은 연락처들, 달력들, 지도들, 사진들 등과 같은 코어 모바일 애플리케이션들이라는 것들로 제한되며, 확장될 수 있다. 일부 모바일 운영 체제들은 제 3 자 다운로드 가능한 애플리케이션들이 그것들의 데이터 중 일부를 공유하는 것을 허용하지만, 이는 그것들의 사용자 인터페이스들에는 적용되지는 않는다. 또한, 모바일 애플리케이션들이 다운로딩될 수 있는 가상 애플리케이션 스토어의 현재의 표준 모델은 애플리케이션 발견을 위한 단일 진입점 (보통, 모바일 디바이스의 홈 화면 상의 애플리케이션 스토어 아이콘) 을 제공한다.
본 개시물은, 하나 이상의 제 3 자 애플리케이션들과 같은 애플리케이션에 대한 매커니즘을 제공하도록 구조화되어, UI 및 데이터 확장들을 모바일 디바이스 상에 저장된 코어 애플리케이션들과 같은 하나 이상의 다른 애플리케이션들에 제공할 수 있는 모바일 플랫폼 사용자 인터페이스 (User Interface; UI) 를 제공한다. 본원에 설명된 원리들은 다른 애플리케이션의 기능에 기초하여 임의의 애플리케이션을 확장하는 것에 관한 것이나, 본원에서 사용된 바와 같이, 코어 애플리케이션은 모바일 디바이스 상에 사전에 구성된 임의의 애플리케이션을 포함하며, 반면 제 3 자 애플리케이션은 코어 애플리케이션이 아닌 임의의 애플리케이션을 포함한다. 또한, 제공된 UI 및 데이터 확장들은 다른 애플리케이션에 기초하여 하나의 애플리케이션에 추가될 수 있는 추가적인 서비스들을 지칭한다. 본원에서 사용된 바와 같이, 용어 서비스는 임의의 애플리케이션에 관련된 기능을 포함한다. 일부 양상들에서, 서비스의 확장은 다른 애플리케이션과 호환 가능한 서비스 또는 데이터 유형을 이용하는 하나의 애플리케이션에 기초하는데, 여기서 데이터 유형은 애플리케이션에 의해 이용된 데이터의 유형 또는 포맷과 관련된다. 본 개시물은, 코어 모바일 애플리케이션들과 같은 하나 이상의 다른 애플리케이션들의 UI 내로부터, 제 3 자 애플리케이션들과 같은 하나 이상의 애플리케이션들을 발견하여 다운로딩하기 위한 다수의 컨텍스트적 (contextual) 액세스 포인트들을 더 제공함으로써, 그 기능이 임의의 상주 애플리케이션으로 확장하는 하나 이상의 새로운 애플리케이션들을 사용자가 쉽게 발견하여 다운로딩하는 것을 허용한다.
다양한 양상들이 이제 도면들을 참조하여 설명된다. 설명을 위한 다음의 기술들에서, 하나 이상의 양상들의 완전한 이해를 제공하기 위해 다양한 구체적인 세부사항들이 제시된다. 그러나, 다양한 양상들은 이러한 구체적인 세부사항들이 없이 실시될 수도 있음이 자명할 수도 있다. 다른 사례들에서, 이러한 양상들을 설명하는 것을 용이하게 하기 위해 공지의 구조들 및 디바이스들은 블록 다이어그램 형태로 도시된다.
도 1 에서, 본 개시물은, 일 양상에 따라, 사용자 디바이스 (102) 의 서비스들을 확장하기 위한 장치 (100) 를 제공한다. 확장 관리자 (104) 는 제 1 데이터 유형 (110) 을 이용하는 제 1 서비스 (108) 를 갖는 사용자 디바이스 (102) 상에 상주하는 제 1 애플리케이션 (106) 을 식별한다. 발견 에이전트 (discovery agent) (112) 는 제 2 데이터 유형 (120) 을 이용하는 제 2 서비스 (118) 를 갖는 복수의 애플리케이션들 (116) 중, 예를 들어, 제 2 애플리케이션 (114) 을 식별한다. 발견 에이전트 (112) 는 제 1 애플리케이션 (106) 의 제 1 서비스 (108) 또는 제 1 데이터 유형 (110) 중 선택된 하나의 호환성을 제 2 애플리케이션 (114) 의 제 2 서비스 (118) 또는 제 2 데이터 유형 (120) 의 각각의 하나와 매칭시킴으로써 제 2 애플리케이션 (114) 을 식별한다.
예를 들어, 발견 에이전트 (112) 는, 122 에 도시된 바와 같이, 제 1 애플리케이션 (106) 의 제 1 서비스 (108) 의 호환성을 제 2 애플리케이션 (114) 의 제 2 데이터 유형 (120) 과 매칭시킬 수 있다. 예를 들어, 제 1 서비스 (108) 는 연락처 서비스를 포함할 수도 있고, 제 2 데이터 유형 (120) 은 온라인 게이머 연락처를 포함할 수도 있다. 다른 예에서, 제 1 서비스 (108) 는 연락처 서비스를 포함할 수도 있고, 제 2 데이터 유형 (120) 은 위치확인 서비스 (location service) 를 포함할 수도 있다.
대안으로 또는 추가로, 발견 에이전트 (112) 는, 124 에 도시된 바와 같이, 제 1 애플리케이션 (106) 의 제 1 데이터 유형 (110) 의 호환성을 제 2 애플리케이션 (114) 의 제 2 서비스 (118) 와 매칭시킬 수 있다. 예를 들어, 제 1 데이터 유형 (110) 은 미디어 포맷을 포함할 수도 있고, 제 2 서비스 (118) 는 미디어 뷰어를 포함할 수도 있다. 다른 예에서, 제 1 데이터 유형 (110) 은 미디어 포맷을 포함할 수도 있고, 제 2 서비스 (118) 는 서버로의 업 로더를 포함할 수도 있다. 추가적인 예로서, 제 1 데이터 유형 (110) 은 적어도 하나의 위치와 연관된 이미지 포맷을 포함할 수도 있고, 제 2 서비스 (118) 는 적어도 하나의 위치와 연관된 서비스를 포함할 수도 있다.
사용자 인터페이스 (126) 는, 제 2 애플리케이션 (114) 과 같은 호환 가능한 애플리케이션들의 식별을 작동시키기 위해, 예를 들어, 사용자 입력에 기초하여 선택될 수도 있는 발견 에이전트 (112) 의, 발견 아이콘 (128) 으로 도시된, 표현과 함께 제 1 애플리케이션 (106) 을 나타낸다.
일 양상에서, 제 1 애플리케이션 (106) 은 복수의 서비스들 (130) 또는 복수의 데이터 유형들 (132) 중 적어도 하나를 포함할 수도 있다. 사용자 인터페이스 (126) 는 제 1 서비스 (108) 및 제 1 데이터 유형 (110) 을 식별하는 현재 컨텍스트 (current context) (134) 를 나타낼 수 있다. 따라서, 복수의 서비스들 (130) 또는 복수의 데이터 유형들 (132) 의 모두를 고려하기 보다는, 일 양상에서, 발견 에이전트 (112) 는 현재 컨텍스트 (134) 를 식별할 수도 있고, 그 다음에 현재 컨텍스트 (134) 에 따라 제 2 애플리케이션 (114) 을 식별할 수도 있다.
일 양상에서, 애플리케이션 추가기 (136) 는, 예를 들어, 서버 (138) 로부터의, 사용자 디바이스 (102) 상에서의 제 2 애플리케이션 (114) 의 입수 및 저장을 관리한다. 예시적인 양상에서, 사용자 인터페이스 (126) 는, 제 2 애플리케이션 (114) 의, 입수 및 저장, 예를 들어, 다운로딩을 작동시키거나 개시하기 위한 애플리케이션 추가기 (136) 의, 다운로드 또는 "추가" 아이콘 (140) 으로 도시된, 표현과 함께 제 1 애플리케이션 (106) 을 나타낸다.
일 양상에서, 데이터 구조 (142) 는 복수의 애플리케이들 (116) 의 호환성들 중 하나 이상을 정의할 수도 있다. 예를 들어, 데이터 구조 (142) 는 각각의 애플리케이션의 서비스 유형들 및/또는 데이터 유형들, 각각의 애플리케이션과 작동하는 호환 가능한 서비스 유형들 및/또는 데이터 유형들, 및/또는 각각의 애플리케이션과 호환 가능한 다른 애플리케이션들을 식별할 수도 있다. 발견 에이전트 (112) 는 제 1 애플리케이션 (106) 의 호환성의 복수의 애플리케이션들 (116) 중 하나 이상의 애플리케이션과의 매칭, 예컨대 위에서 논의된 바와 같은 제 2 애플리케이션 (114) 과의 매칭을 결정할 시에 이용하기 위해 데이터 구조 (142) 에 액세스할 수도 있다. 예를 들어, 데이터 구조 (142) 는 복수의 애플리케이션들 (116) 의 모두를 위해 사용자 디바이스 (102) 상에 상주할 수 있다. 대안으로, 데이터 구조 (142) 는 사용자 디바이스 (102) 상에 상주하거나 저장되는 복수의 애플리케이션들 (116) 의 서브셋을 위해 사용자 디바이스 (102) 상에 상주할 수 있다. 대안으로 또는 추가로, 데이터 구조 (142) 는 복수의 애플리케이션들 (116) 의 모두를 위해 서버 (138) 상에 상주하고, 사용자 디바이스 (102) 와 같은 하나 이상의 사용자 디바이스들로의 다운로딩을 위해 애플리케이션 스토어 (144) 에 링크될 수 있다. 일 양상에서, 예를 들어, 사용자 디바이스 (102) 는 서버 (138) 의 네트워크 인터페이스 (148) 와 통신할 수 있는 사용자 디바이스 (102) 상의 네트워크 인터페이스 (146) 를 통해 데이터 구조 (142) 에 액세스할 수 있다.
따라서, 일 양상에서, 확장 관리자 (104) 는 사용자 선택에 응답하여 제 1 애플리케이션 (106) 의 제 1 서비스 (108) 또는 제 1 데이터 유형 (110) 중 선택된 하나에 의해 이용하기 위해 제 2 애플리케이션 (114) 의 제 2 데이터 유형 (120) 또는 제 2 서비스 (118) 의 각각의 하나를 획득하여 통합시킨다.
도 2 에서, 일 양상에서, 사용자 디바이스의 서비스들을 확장하는 방법 (200) 은 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별하는 단계 (블록 202) 를 포함한다. 예를 들어, 확장 관리자 (104) 는 제 1 데이터 유형 (110) 을 이용하는 제 1 서비스 (108) 를 갖는 사용자 디바이스 (102) 상의 제 1 애플리케이션 (106) (도 1) 을 식별한다. 방법 (200) 은 제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별하는 단계 (블록 204) 를 더 포함한다. 예를 들어, 발견 에이전트 (112) 는 제 2 데이터 유형 (120) 을 이용하는 제 2 서비스 (118) 를 갖는 복수의 애플리케이션들 (116) 중에서 제 2 애플리케이션 (114) (도 1) 을 식별한다. 방법 (200) 은 제 1 애플리케이션의 제 1 서비스 또는 제 1 데이터 유형 중 선택된 하나의 호환성을 제 2 애플리케이션의 제 2 서비스 유형 또는 제 2 데이터 유형의 각각의 하나와 매칭시키는 단계 (블록 206) 를 더 포함한다. 예를 들어, 발견 에이전트 (112) 는 제 1 애플리케이션 (106) 의 제 1 서비스 (108) 또는 제 1 데이터 유형 (110) 중 선택된 하나의 호환성을 제 2 애플리케이션 (114) 의 제 2 데이터 유형 (120) 또는 제 2 서비스 (118) 의 각각의 하나와 매칭시킴으로써 제 2 애플리케이션 (114) (도 1) 을 식별한다. 선택적으로, 예시적인 양상에서, 방법 (200) 은 제 2 애플리케이션의 식별을 작동시키기 위한 발견 에이전트의 표현과 함께 제 1 애플리케이션을 나타내는 단계 (블록 208) 를 더 포함한다. 예를 들어, 사용자 인터페이스 (126) 는 제 2 애플리케이션 (114) 의 식별을 작동시키기 위한 발견 에이전트 (112) 의, 발견 아이콘 (128) 으로 도시된, 표현과 함께 제 1 애플리케이션 (106) 을 나타낸다 (도 1).
일 양상에서, 제 1 애플리케이션 (106) 은 복수의 서비스들 또는 복수의 데이터 유형들 중 적어도 하나를 포함할 수도 있다. 이 경우에, 방법 (200) 은 제 1 서비스 및 제 1 데이터 유형에 의해 정의된 현재 컨텍스트를 식별하고, 현재 컨텍스트에 따라 제 2 애플리케이션을 식별하는 단계를 더 포함할 수 있다.
일 양상에서, 방법 (200) 은, 예를 들어, 서버로부터 다운로딩하여, 사용자 디바이스 상에 제 2 애플리케이션을 입수하여 저장하는 단계를 더 포함할 수 있다. 예시적인 양상에서, 방법 (200) 은 사용자 디바이스에 제 2 애플리케이션의 입수 및 저장을 작동시키기 위한 애플리케이션 추가기의 표현과 함께 제 1 애플리케이션을 사용자 인터페이스 상에 나타내는 단계를 더 포함할 수도 있다.
일 양상에서, 호환성을 매칭시키는 단계 (블록 206) 의 방법 (200) 은 제 1 애플리케이션의 제 1 서비스와 제 2 애플리케이션의 제 2 데이터 유형 사이의 매치를 식별할 수도 있다. 예를 들어, 제 1 서비스는 연락처 서비스를 포함할 수도 있고, 제 2 데이터 유형은 온라인 게이머 연락처를 포함한다. 다른 예에 있어서, 제 1 서비스는 연락처 서비스를 포함할 수도 있고, 제 2 데이터 유형은 위치확인 서비스를 포함한다.
일 양상에서, 호환성을 매칭시키는 단계 (블록 206) 의 방법 (200) 은 제 1 애플리케이션의 제 1 데이터 유형과 제 2 애플리케이션의 제 2 서비스 사이의 매치를 식별할 수도 있다. 예를 들어, 제 1 데이터 유형은 미디어 포맷을 포함할 수도 있고, 제 2 서비스는 미디어 뷰어를 포함한다. 다른 예에 있어서, 제 1 데이터 유형은 미디어 포맷을 포함할 수도 있고, 제 2 서비스는 서버로의 업로더를 포함한다. 다른 예에 있어서, 제 1 데이터 유형은 적어도 하나의 위치와 연관된 이미지 포맷을 포함할 수도 있고, 제 2 서비스는 적어도 하나의 위치와 연관된 서비스를 포함한다.
일 양상에서, 방법 (200) 은 복수의 애플리케이션들의 호환성들 중 하나 이상을 정의하는 데이터 구조를 획득하는 단계를 포함할 수도 있다. 예를 들어, 일 양상에서, 데이터 구조는 네트워크 인터페이스를 통해 데이터 구조에 액세스함으로써 획득될 수도 있다.
일 양상에서, 방법 (200) 은 사용자 선택에 응답하여 제 1 애플리케이션의 제 1 서비스 또는 제 1 데이터 유형 중 선택된 하나에 의해 이용하기 위해 제 2 애플리케이션의 제 2 데이터 유형 또는 제 2 서비스의 각각의 하나를 획득하여 통합시는 단계를 포함할 수도 있다.
이용의 예들로서, 도 3 - 도 10, 및 도 11a - 도 11b 에서, 예시적인 모바일 디바이스 (300) 는 본 개시물과 일관성 있는 일 양상에 따른 UI 애플리케이션 통합기와 상호작용하기 위한 그래픽 사용자 인터페이스 (GUI) (302) 를 나타낸다.
도 3 에서, 304 에 도시된 첫 번째 UI 상태는 복수의 애플리케이션들 (306) 로 채워진 (populated) 홈 화면을 나타내며, 복수의 애플리케이션들 (306) 중 하나는 People 애플리케이션 (308) 이다.
310 에 도시된 바와 같이, People 애플리케이션 (308) 을 선택한 후에, GUI (302) 는 연락처들 (312) 을 열거한다. 사전에, 관련 위치 애플리케이션 (예를 들어, Locate Person 애플리케이션) 이 통합되며, 이는 인식할 수 있는 경우 현재 위치를 나타냄으로써 연락처들 (312) 을 강화한다. 314 에 도시된 바와 같이, 특정 연락처를 선택할 시에, 위치 세부사항들 (318) 뿐만 아니라 연락처 세부사항들 (316) 이 디스플레이된다. 예를 들어, 애플리케이션 스토어로부터 다운로딩된 Locate Person 애플리케이션은 연락처에 대한 연락처 세부사항 사용자 인터페이스 내에 지도 UI 를 제공할 수 있으며, 그렇게 함으로써 연락처의 위치를 보여준다.
일 양상에서, 하나 이상의 애플리케이션들의 통합은 동적으로 수행될 수 있다. 그러므로, 애플리케이션 서비스들은 필요에 따라 쉽게 토글링, 추가, 또는 삭제될 수 있다.
예를 들어, 도 4 에 도시된 바와 같이, Locate Person 의 세부사항 사용자 인터페이스 (404) 는 UI (314) 에서 수신된 사용자 선택 (319) (도 3) 에 응답하여 생성될 수도 있다. 일 양상에서, 코어 애플리케이션으로부터 UI 애플리케이션 통합기 아이콘 (402) 이 액세스된다. 예를 들어, 이 경우에, UI 애플리케이션 통합기 아이콘 (402) 은 UI (404) 의 하위 부분에 위치된다. UI 애플리케이션 통합기 아이콘 (402) 의 사용자 선택에 응답하여, 컨텍스트적으로 관련 있는 현재 설치된 애플리케이션들의 리스트를 제공하는 사용자 인터페이스가 406 에 도시된다. 가상 키 (408) 에 도시된 바와 같이, 사용자는 애플리케이션 스토어 (412) 로부터 하나 이상의 추가적인 추천된 컨텍스트적으로 관련된 애플리케이션들 (410) 을 발견할 기회를 선택할 수 있다. "Gamer Net" 애플리케이션 (414) 과 같은 이러한 컨텍스트적으로 관련된 애플리케이션들 (410) 은, 예를 들어, 본원에 설명된 양상들에 따른 다수의 코어 애플리케이션들로 확장된 컨텍스트적으로 관련된 애플리케이션들 (410) 의 UI 를 가질 수 있다. 각각의 애플리케이션은 특정 목적을 위해 맞춰진 서비스를 제공하고, 그 고유의 방식으로 관련 있는 코어 애플리케이션에 영향을 미칠 것이다.
예를 들어, 도 5 에서, "Gamer Net" 애플리케이션 (414) (도 4) 에 대한 사용자 선택에 응답하여, Gamer Net 애플리케이션 (414) 에 대한 세부사항들 사용자 인터페이스 (502) 가 도시되는데, 이는 통합될 수 있는 Gamer Net 애플리케이션 (414) 에 의해 제공된 2 개의 서비스들을 포함한다. 이러한 경우에, Gamer Net 애플리케이션 (414) 은 People 애플리케이션 (501) 및 Events 애플리케이션 (503) 양자 모두로 확장할 수도 있다.
예를 들어, 504 에 도시된 바와 같이, Gamer Net 애플리케이션 (414) 의 서비스들이 어떻게 People 애플리케이션 (501) 을 강화할 수 있는지 보기 위해 사용자는 People 애플리케이션 (501) 을 선택한다. 504 에 도시된 바와 같이, Gamer Net 애플리케이션 (414) 이 어떻게 People 애플리케이션 (501) 에 대한 정보를 강화할 것인지에 대한 예들이 나타내어진다. 다시 UI (502) 로 가면, 사용자는 사용자 디바이스 상에 상주하는 애플리케이션들 또는 서비스들의 모음에 Gamer Net 애플리케이션 (414) 을 추가할 것을 선택할 수도 있으며, 이는 Gamer Net 애플리케이션 (414) 을 포함하는 UI (506) 에 도시된 바와 같은 설치된 애플리케이션들 또는 서비스들의 모음을 야기한다. 일단 설치되면, 새로운 애플리케이션들 또는 서비스들이 관련 있는 코어 애플리케이션 탭들에 나타난다. 일 양상에서, 예를 들어, 사용자 디바이스 상의 Contacts 애플리케이션은 Gamer Net 계정들을 갖는 연락처들을 열거하고, 예를 들어, 연락처 세부사항들 화면 내에 게이머 프로파일들을 디스플레이할 수도 있다. 예를 들어, 이 경우에, 연락처들은 People 애플리케이션 (501) 에 저장될 수도 있고, Gamer Net 애플리케이션 (414) 또는 서비스는 People 애플리케이션 (501) 내의 연락처에 대한 항목 (entry) 에 영향을 미칠 것이다. 사용자는 그 다음에 동작 시의 통합을 보기 위해 컨텍스트적으로 관련된 People 애플리케이션 (501) 을 선택할 수 있다.
예를 들어, 도 6 에서, 602 에 도시된 바와 같이, 사전에 선택된 연락처에 대한 강화된 People 애플리케이션이 보여지는데, 이는 이제 Gamer Net 에서의 개인에 대한 상태 (603) 를 보여준다. 연락처 리스트 UI 에서 되돌아 나와서 다시 People 애플리케이션 (501) 을 선택하면, 604 에 도시된 바와 같이, 위치 (605) 와 함께 게이머 상태 (603) 가 이제 덧붙여 설명된다 (annotate).
일 양상에서, UI 애플리케이션 통합기 응용 프로그램 인터페이스 (Application Programming Interface; API) 에 내재하는 융통성을 이용하여, 제 3 자 애플리케이션 개발자들에 의해, 서비스가 어떻게 코어 애플리케이션들에 영향을 미치는지가 결정될 수 있다.
도 7 에서, 702 에 도시된 바와 같은 서비스들의 모음은 Gamer Net 아이콘 (703) 을 보여준다. Gamer Net 도 독자적인 애플리케이션이므로, Gamer Net 도 홈 화면에서 액세스 가능하다. 704 에 도시된 바와 같이 독자적인 동작을 위해 선택된 경우, Gamer Net 에 의해 제공된 추가적인 서비스들이 나타내어진다.
도 8 을 처음으로 참조하면, 이러한 서비스들이 어떻게 코어 애플리케이션들 내로 포함될 수 있는지에 대한 일부 추가적인 예들이 도시된다. 802 에 도시된 바와 같은 달력 애플리케이션에서, 제 3 자 애플리케이션들로부터의 서비스들은 맞춤화된 컨텐츠를 바로 Week 뷰와 같은 달력 뷰에 추가하기 위해 코어 UI 를 변경할 수 있다. 예를 들어, 달력 이벤트 (803) 는 Sports 애플리케이션에 의해 강화된 UI 를 갖는다. 달력 이벤트 (803) 가 선택되는 경우에, 이러한 통합된 서비스의 기능의 예가 804 에 도시되는데, 여기서 추가적인 정보가 나타내어진다.
추가적인 예에서, 도 9 를 참조하면, 필요에 따라 추가적인 정보를 보여주기 위해 Maps 애플리케이션의 902 에, UI 레이어들, 예를 들어, 레이어 (903) 가 추가될 수 있다. 레이어 (903) 의 선택과 같이 레이어가 선택되어 UI (904) 를 야기하는 경우, 904 에서 Maps Location Synchronization 서비스로 도시된 다른 UI 애플리케이션으로부터의 하나 이상의 통합된 서비스들이 그러면 이용 가능할 수도 있다. 이 경우에, 예를 들어, 904 에서 Maps Location Synchronization 서비스는 사용자 디바이스로 바로 위치들 또는 길 (direction) 들이 전송되는 것을 가능하게 한다.
도 10 에서의 추가적인 예로서, 본 개시물은 사용자 사진들의 목록을 제공하는, 1002 에 도시된 바와 같은 Photos 애플리케이션에 통합될 수 있다. 1004 에 도시된 바와 같이 사진을 선택하는 경우, 다른 호환 가능한 애플리케이션들로부터의 하나 이상의 통합된 서비스들이 디스플레이된다. 예를 들어, 이 경우에, 통합된 서비스들은 별도의 애플리케이션을 시작하지 않으면서 코어 포토 애플리케이션 내로부터 바로 사진들이 프로세싱되는 것을 허용하는 프로세스 서비스를 포함할 수도 있다. 또한, 예를 들어, 다른 호환 가능한 애플리케이션들로부터 통합된 서비스들은 자동 보정 사진 서비스, 및 소셜 사이트 및/또는 사진 공유 사이트 업로드 서비스를 포함할 수도 있다.
도 11a - 도 11b 에서, 1102 및 1104 에 Augmented Reality 애플리케이션이 도시되는데, 여기서 레이어들 (1106 및 1108) 과 같은 UI 레이어들이 유사한 방식으로 추가될 수 있어, 1102 에서의 쇼핑을 위한 거리 뷰 및 1104 에서의 별자리 맵핑 서비스의 스카이 뷰와 같은 현실 세계 묘사에 추가적인 기능을 제공한다.
도 12 에서, 일 양상에서, 통신 시스템 (1200) 이 제공되는데, 여기서 핸드셋, 사용자 장비, 스마트폰, 액세스 단말, 사용자 디바이스 등과 같은 모바일 디바이스 (1202) 로 도시된 장치는 모바일 컴퓨팅 플랫폼 (1204) 상의 통합된 서비스들을 제공한다. 특히, 모바일 컴퓨팅 플랫폼 (1204) 은 사용자 인터페이스 (UI) (1208) 상의 제 1 애플리케이션 (1206) 을 실행한다. 사용자 인터페이스 (1208) 는 모바일 컴퓨팅 플랫폼 (1204) 이 제 1 애플리케이션 (1206) 과의 컨텍스트적 유사성을 결정하는 것에 응답하여 제 2 애플리케이션 (1212) 의 사용자 인터페이스 피쳐 (1210) 를 디스플레이한다.
일 양상에서, 제 2 애플리케이션 (1212) 은 모바일 디바이스 (1202) 상에 로컬 저장된다. 다른 양상에서, 제 2 애플리케이션 (1212) 은 코어 네트워크 (1214) 상에 원격으로 저장되고, 노드 (1216) 를 거쳐 WWAN (wireless wide area network) 을 통해 모바일 디바이스 (1202) 의 송수신기 (1218) 로 다운로딩된다. 대안으로 또는 추가로, 제 2 애플리케이션 (1212) 은 액세스 포인트 (1220) 를 거쳐 WLAN (wireless local access network) 을 통해 다운로딩된다.
예시적인 양상에서, 사용자 인터페이스는 (예를 들어, 사용자가 현재 이용하는 태스크 또는 애플리케이션에 관련되고, 현재 이용 중인 애플리케이션의 능력을 확장하기 위해 사용자가 입수하길 바라는 기능 및/또는 서비스들인) 사용자에게 유용한 컨텍스트에서 제 3 자 애플리케이션 발견을 증진하도록 설계된다. 따라서, 하나 이상의 구현들에서, 설명된 양상들은 애플리케이션 개발자들이 애플리케이션 개발자들의 자신의 애플리케이션에 대한 UI 를 모바일 디바이스의 코어 애플리케이션으로 확장하는 것을 허용하는 프레임워크 (framework) 를 제공한다.
본 개시물은 전체 모바일 UI 에 걸쳐 애플리케이션 기능 및/또는 서비스들의 깊은 통합을 더 허용하여, 애플리케이션 스토어 (1222) 가 새로운 애플리케이션 또는 서비스들 (예를 들어, 메시징, 이벤트들, 연락처들, 지도들, 브라우저들, 사진들 등) 의 발견을 위한 시작점이기 보다는 종료점이 되도록 한다. 본 개시물로, 제 3 자 애플리케이션들은 제 3 자 애플리케이션들의 UI 를 디바이스 상의 코어 애플리케이션들로 확장할 수 있어, 필요로 하는 경우 각각의 코어 애플리케이션들에 컨텍스트적으로 기능을 나타낸다. 이러한 UI 확장들은 서비스들이라고 지칭될 수도 있다.
일 양상에서, 이로 제한되지는 않으나 코어 애플리케이션과 같은 디바이스 상의 하나 이상의 애플리케이션들에 있어서, 단지, 각각의 애플리케이션들에 대해 관련된 서비스들, 예를 들어, 호환성 매칭을 갖는 애플리케이션들만을 열거하는 애플리케이션 스토어로의 직접적 액세스 포인트가 제공될 수도 있다.
다른 양상에서, 애플리케이션 세부사항들 화면은 하나 이상의 다른 애플리케이션들이 통합될 수 있는 디바이스 상의 애플리케이션을 식별할 수 있다. 또한, 이러한 통합에 관한 좀더 세부사항들을 보기 위해 다른 애플리케이션들에 대해 열거된 기능들 또는 서비스들 중 하나를 사용자가 선택하는 것을 허용하는 제어들이 제공될 수 있다. 예를 들어, 각각의 다른 애플리케이션이 어떻게 상주 애플리케이션과 통합하는지에 대한 묘사가 나타내어질 수 있으며, 이는 이러한 묘사와 함께 프리뷰 (preview) 이미지를 포함할 수도 있다.
도 13 에서, 모바일 플랫폼 상에서 서비스들을 통합하는 절차 (1300) 가 도시된다. 모바일 디바이스는 모바일 컴퓨팅 플랫폼 상의 제 1 애플리케이션을 실행한다 (블록 1302). 모바일 디바이스는 제 2 애플리케이션에 의해 제공된 제 2 애플리케이션 또는 서비스에 대한 제 1 애플리케이션의 컨텍스트적 유사성을 결정한다 (블록 1304). 모바일 디바이스는 제 1 애플리케이션과의 결정된 컨텍스트적 유사성에 응답하여 제 2 애플리케이션의 사용자 인터페이스 피쳐를 디스플레이한다 (블록 1306). 모바일 디바이스는 사용자 인터페이스 피쳐의 사용자 선택을 수신한다 (블록 1308). 제 2 애플리케이션이 설치되었는지 여부에 대한 결정이 이루어진다 (블록 1310). 제 2 애플리케이션이 설치되지 않은 경우, (예를 들어, WWAN 또는 WLAN 을 통해) 애플리케이션 스토어로부터 제 2 애플리케이션이 다운로딩되고 (블록 1312), 그 다음에 정의된 확장 ("서비스") 에 의해 참조된 제 2 애플리케이션의 서비스가 실행될 수도 있다 (블록 1314). 제 2 애플리케이션이 설치된 경우, 정의된 확장 ("서비스") 에 의해 참조된 제 2 애플리케이션의 서비스가 실행된다 (블록 1314).
도 14 를 참조하면, 일 양상에서, 사용자 디바이스 (102) (도 1) 는 본원에 설명된 컴포넌트들 및 기능들 중 하나 이상과 연관된 프로세싱 기능들을 수행하기 위한 프로세서 (1402) 를 포함할 수도 있다. 프로세서 (1402) 는, 일부로서, 단일 세트나 다수의 세트의 프로세서들, 또는 멀티 코어 프로세서들을 포함할 수 있다. 또한, 컴퓨팅 플랫폼 (1404) 으로 도시된 바와 같이, 프로세서 (1402) 는 통합된 프로세싱 시스템 및/또는 분산된 프로세싱 시스템으로 구현될 수 있다.
사용자 디바이스 (102) 는 프로세서 (1402) 에 의해 실행되는 애플리케이션들의 로컬 버전들을 저장하기 위한 것과 같은 메모리 (1408) 를 더 포함한다. 메모리 (1408) 는 컴퓨터에 의해 이용 가능한 임의의 유형의 메모리, 예컨대, 랜덤 액세스 메모리 (random access memory; RAM), 판독 전용 메모리 (read only memory; ROM), 테이프들, 자기 디스크들, 광 디스크들, 휘발성 메모리, 비휘발성 메모리, 및 그것들의 임의의 조합을 포함할 수 있다.
또한, 사용자 디바이스 (102) 는 본원에 설명된 바와 같은 하드웨어, 소프트웨어, 및 서비스들을 이용하는 하나 이상의 당사자들과의 통신들을 수립하고 유지하는 것을 제공하는 통신 컴포넌트 (1410) 를 포함한다. 통신 컴포넌트 (1410) 는 사용자 디바이스 (102) 상의 컴포넌트들 사이, 뿐만 아니라 사용자 디바이스 (102) 와 외부 디바이스들, 예컨대, 통신 네트워크에 걸쳐 위치된 디바이스들 및/또는 사용자 디바이스 (102) 에 직렬로 또는 로컬 연결된 디바이스들 사이의 통신들을 반송한다. 예를 들어, 통신 컴포넌트 (1410) 는 하나 이상의 버스들 (1412) 을 포함할 수도 있고, 외부 디바이스들과 인터페이싱하도록 동작 가능한, 각각 송신기 (1414) 및 수신기 (1416) 와 연관된 송신 체인 컴포넌트들 및 수신 체인 컴포넌트들을 더 포함할 수도 있다. 다른 예에서, 통신 컴포넌트 (1410) 는 네트워크 인터페이스 (146) 를 통해 외부 디바이스들과 통신할 수도 있다.
또한, 사용자 디바이스 (102) 는 하드웨어 및/또는 소프트웨어일 수 있고, 본원에 설명된 양상들과 관련하여 이용된 정보, 데이터베이스들, 및 프로그램들의 대량 저장을 제공하는 데이터 저장소 (1420) 를 더 포함할 수도 있다. 예를 들어, 데이터 저장소 (1420) 는 프로세서 (1402) 에 의해 현재 실행되지 않는 애플리케이션들에 대한 데이터 보관소일 수도 있다.
사용자 디바이스 (102) 는 사용자 디바이스 (102) 의 사용자로부터의 입력들을 수신하도록 동작 가능하고, 또한 사용자에게 나타내어주기 위한 출력들을 생성시키도록 동작 가능한 사용자 인터페이스 (126) 를 추가로 포함할 수도 있다. 사용자 인터페이스 (126) 는, 이로 제한되지는 않으나, 키보드, 숫자 패드, 마우스, 터치 감응 디스플레이, 네비게이션 키, 기능 키, 마이크, 음성 인식 컴포넌트, 사용자로부터의 입력을 수신할 수 있는 임의의 다른 매커니즘, 또는 그것들의 임의의 조합을 포함하는 하나 이상의 입력 디바이스들을 포함할 수도 있다. 또한, 사용자 인터페이스 (126) 는, 이로 제한되지는 않으나, 디스플레이, 스피커, 햅틱 피드백 매커니즘, 프린터, 사용자에게 출력을 나타낼 수 있는 임의의 다른 매커니즘, 또는 그것들의 임의의 조합을 포함하는 하나 이상의 출력 디바이스들을 포함할 수도 있다.
메모리 (1408), 데이터 저장소 (1420), 또는 양자 모두에 상주하는, 장치 (102) 의 양상들은, 확장 관리자 (104), 발견 에이전트 (112), 애플리케이션 추가기 (136), 데이터 구조 (142), 제 1 서비스 (108) 및 제 1 데이터 유형 (110) 을 갖는 제 1 애플리케이션 (106), 및 제 2 서비스 (118) 및 제 2 데이터 유형 (120) 을 갖는 제 2 애플리케이션 (114) 을 포함할 수 있다.
도 15 를 참조하면, 일 양상에서, 서버 (138) (도 1) 는 본원에 설명된 컴포넌트들 및 기능들 중 하나 이상과 연관된 프로세싱 기능들을 수행하기 위한 프로세서 (1502) 를 포함할 수도 있다. 프로세서 (1502) 는 단일 세트나 다수의 세트의 프로세서들, 또는 멀티 코어 프로세서들을 포함할 수 있다. 또한, 컴퓨팅 플랫폼 (1504) 으로 도시된 바와 같이, 프로세서 (1502) 는 통합된 프로세싱 시스템 및/또는 분산된 프로세싱 시스템으로 구현될 수 있다. 서버 (138) 는 위에서 설명된 바와 같이 사용자 디바이스 (102) (도 1) 를 지원할 수 있다. 대안으로, 서버 (138) 가 사용자 디바이스 (102) 상의 씬 클라이언트 (thin client) 에 대한 추가적 기능을 수행하는 것과 같이, 프로세싱 또는 저장의 양상들은 서버 (138) 와 사용자 디바이스 (102) 사이에 분산될 수도 있다.
서버 (138) 는 프로세서 (1502) 에 의해 실행되는 애플리케이션들의 로컬 버전들을 저장하기 위한 것과 같은 메모리 (1508) 를 더 포함한다. 메모리 (1508) 는 컴퓨터에 의해 이용 가능한 임의의 유형의 메모리, 예컨대, 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 테이프들, 자기 디스크들, 광 디스크들, 휘발성 메모리, 비휘발성 메모리, 및 그것들의 임의의 조합을 포함할 수 있다.
또한, 서버 (138) 는 본원에 설명된 바와 같은 하드웨어, 소프트웨어, 및 서비스들을 이용하는 하나 이상의 당사자들과의 통신들을 수립하고 유지하는 것을 제공하는 통신 컴포넌트 (1510) 를 포함한다. 통신 컴포넌트 (1510) 는 서버 (138) 상의 컴포넌트들 사이, 뿐만 아니라 서버 (138) 와 외부 디바이스들, 예컨대, 통신 네트워크에 걸쳐 위치된 사용자 디바이스들 (102) 및/또는 서버 (138) 에 직렬로 또는 로컬 연결된 디바이스들 사이의 통신들을 반송할 수도 있다. 예를 들어, 통신 컴포넌트 (1510) 는 하나 이상의 버스들 (1512) 을 포함할 수도 있고, 외부 디바이스들과 인터페이싱하도록 동작 가능한, 각각 송신기 (1514) 및 수신기 (1516) 와 연관된 송신 체인 컴포넌트들 및 수신 체인 컴포넌트들을 더 포함할 수도 있다. 다른 예에서, 통신 컴포넌트 (1510) 는 네트워크 인터페이스 (148) 를 통해 외부 디바이스들과 통신할 수도 있다.
또한, 서버 (138) 는, 본원에 설명된 양상들과 관련하여 이용된 정보, 데이터베이스들, 및 프로그램들의 대량 저장을 제공하는, 하드웨어 및/또는 소프트웨어의 임의의 적절한 조합일 수 있는 데이터 저장소 (1520) 를 더 포함할 수도 있다. 예를 들어, 데이터 저장소 (1520) 는 프로세서 (1502) 에 의해 현재 실행되지 않는 애플리케이션들에 대한 데이터 보관소일 수도 있다.
서버 (138) 는 사용자 디바이스 (102) (도 1) 의 사용자로부터의 입력들을 수신하도록 동작 가능하고, 또한 사용자에게 나타내기 위한 출력들을 생성시키도록 동작 가능한 사용자 인터페이스 (1522) 를 추가로 포함할 수도 있다. 사용자 인터페이스 (1522) 는, 이로 제한되지는 않으나, 키보드, 숫자 패드, 마우스, 터치 감응 디스플레이, 네비게이션 키, 기능 키, 마이크, 음성 인식 컴포넌트, 사용자로부터의 입력을 원격으로 수신할 수 있는 임의의 다른 매커니즘, 또는 그것들의 임의의 조합을 포함하는 하나 이상의 입력 디바이스들과 인터페이싱할 수도 있다. 또한, 사용자 인터페이스 (1522) 는, 이로 제한되지는 않으나, 디스플레이, 스피커, 햅틱 피드백 매커니즘, 프린터, 사용자에게 출력을 나타낼 수 있는 임의의 다른 매커니즘, 또는 그것들의 임의의 조합을 포함하는 하나 이상의 출력 디바이스들과 인터페이싱할 수도 있다.
메모리 (1508), 데이터 저장소 (1520), 또는 양자 모두가 상주하는, 서버 (138) 의 양상들은, 예를 들어, 사용자 디바이스 (102) (도 1) 와 같은 사용자 디바이스로 다운로딩을 하기 위해, 확장 관리자 (104), 발견 에이전트 (112), 및 애플리케이션 추가기 (136) 를 포함할 수 있다. 또한, 메모리 (1508), 데이터 저장소 (1520), 또는 양자 모두는 데이터 구조 (142), 및 복수의 애플리케이션들 (116) 이 들어 있는 애플리케이션 스토어 (144) 를 포함할 수도 있다.
도 16 을 참조하면, 도시된 것은 사용자 디바이스의 서비스들을 확장하기 위한 시스템 (1600) 이다. 예를 들어, 시스템 (1600) 은 사용자 장비 내에 적어도 부분적으로 상주할 수 있다. 시스템 (1600) 은 컴퓨팅 플랫폼, 프로세서, 소프트웨어, 또는 그것들의 조합 (예를 들어, 펌웨어) 에 의해 구현되는 기능들을 표현하는 기능 블록들일 수 있는 기능 블록들을 포함하는 것으로 표현된다는 것이 인식될 것이다. 시스템 (1600) 은 함께 작동할 수 있는 전기적 컴포넌트들의 논리적 그룹핑 (1602) 을 포함한다. 예를 들어, 논리적 그룹핑 (1602) 은 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별하기 위한 전기적 컴포넌트 (1604) 를 포함할 수 있다. 다른 예에서, 논리적 그룹핑 (1602) 은 제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별하기 위한 전기적 컴포넌트 (1606) 를 포함할 수 있다. 추가적인 예에서, 논리적 그룹핑 (1602) 은 제 1 애플리케이션의 제 1 서비스 또는 제 1 데이터 유형 중 선택된 하나를 제 2 애플리케이션의 제 2 서비스 또는 제 2 데이터 유형의 각각의 하나와 호환성 매칭시키기 위한 전기적 컴포넌트 (1608) 를 포함할 수 있다. 선택적으로, 파선들로 가리켜진 바와 같이, 논리적 그룹핑 (1602) 은 제 2 애플리케이션의 식별을 작동시키기 위한 발견 에이전트의 표현과 함께 제 1 애플리케이션을 사용자 인터페이스 상에 나타내기 위한 전기적 컴포넌트 (1610) 를 포함할 수 있다. 또한, 시스템 (1600) 은 전기적 컴포넌트 (1604 - 1610) 와 연관된 기능들을 실행하기 위한 명령들을 보관하는 메모리 (1620) 를 포함할 수 있다. 메모리 (1620) 의 외부에 있는 것으로 도시되었지만, 전기적 컴포넌트 (1604 - 1610) 의 하나 이상은 메모리 (1620) 내에 존재할 수 있음이 이해될 것이다.
본원에 설명된 양상들과 관련하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자적 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 당업자들은 더 이해할 것이다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확히 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 그 기능의 면에서 위에서 일반적으로 설명되었다. 그러한 기능이 하드웨어 또는 소프트웨어로 구현되는지 여부는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약들에 따라 달라진다. 당업자들은 각각 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현 결정들이 본 개시물의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.
본 출원에서 사용된 바와 같은 용어들 "컴포넌트", "모듈", "시스템 등은 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어인, 컴퓨터 관련 엔티티를 지칭하고자 한다. 예를 들어, 컴포넌트는, 이로 제한되지 않으나, 프로세서 상에서 구동하는 프로세스, 프로세서, 오브젝트, 실행물, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수도 있다. 예로서, 서버 상에서 구동하는 애플리케이션 및 서버 양자 모두는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들이 프로세스 및/또는 실행 스레드 내에 상주할 수도 있고, 컴포넌트는 1 대의 컴퓨터에 위치되고/되거나 2 대 이상의 컴퓨터들 사이에 분산될 수도 있다.
단어 "예시적인" 은 본원에서 예, 예시, 또는 실례의 역할을 하는 것으로 의미하도록 이용된다. 본원에서 "예시적인" 으로 설명된 임의의 양상 또는 설계는 반드시 다른 양상들 또는 설계들보다 바람직하거나 이로운 것으로 해석되는 것은 아니다.
다수의 컴포넌트들, 모듈들 등을 포함할 수도 있는 시스템들의 면에서 다양한 양상들이 제시될 것이다. 다양한 시스템들은, 도면들과 관련하여 논의된, 추가적인 컴포넌트들, 모듈들 등을 포함할 수도 있고/있거나, 컴포넌트, 모듈들 등의 모두를 포함하지는 않을 수도 있음이 이해되고 인식될 것이다. 이러한 접근법들의 조합이 또한 이용될 수도 있다. 본원에 개시된 다양한 양상들은 터치 스크린 디스플레이 기술들 및/또는 마우스-및-키보드 유형 인터페이스들을 이용하는 디바이스들을 포함하여 전기적 디바이스들 상에서 수행될 수 있다. 그러한 디바이스들의 예들은 (데스크탑 및 모바일) 컴퓨터들, 스마트폰들, PDA (personal digital assistant) 들, 및 유선과 무선 양자 모두인 다른 전자 디바이스들을 포함한다.
또한, 본원에 개시된 양상들과 관련하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 및 회로들은, 범용 프로세서, 디지털 신호 프로세서 (digital signal processor; DSP), ASIC (application specific integrated circuit), 필드 프로그램가능한 게이트 어레이 (field programmable gate array; FPGA) 나 다른 프로그램가능한 논리 디바이스, 이산 게이트나 트렌지스터 로직, 분산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하기 위해 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있으나, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이로제어기, 또는 상태 기계일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로 구현될 수도 있다.
또한, 개시된 양상들을 구현하도록 컴퓨터를 제어하기 위한 소프트웨어, 펌웨어, 하드웨어, 그 임의의 결합을 생산하기 위해 표준 프로그래밍 및/또는 엔지니어링 기술들을 이용하여, 제조 방법, 장치, 또는 물 (article) 로 하나 이상의 버전들이 구현될 수도 있다. 본원에서 사용된 바와 같은 용어 "제조물" (또는, 대안으로, "컴퓨터 프로그램 제품" 은 임의의 컴퓨터 판독가능 디바이스, 반송파, 또는 매체들로부터 액세스 가능한 컴퓨터 프로그램을 아우르고자 한다. 예를 들어, 컴퓨터 판독가능 매체들은, 이로 제한되지는 않으나, 자기적 저장 디바이스들 (예를 들어, 하드 디스크, 플로피 디스크, 자기 스트립들...), 광 디스크들 (예를 들어, 컴팩트 디스크 (compact disk; CD), DVD (digital versatile disk)...), 스마트 카드들, 및 플래시 메모리 디바이스들 (예를 들어, 카드, 스틱) 을 포함할 수 있다. 또한, 반송파는 전자 메일 송신 및 수신 시, 또는 인터넷 (Internet) 이나 근거리 통신망 (local area network; LAN) 과 같은 네트워크에 액세스할 시에 이용되는 것과 같은 컴퓨터 판독가능 전자 데이터를 반송하는데 이용될 수 있음이 인식되어야 한다. 물론, 개시된 양상들의 범위로부터 벗어나지 않으면서 이러한 구성에 많은 수정들이 이루어질 수도 있음을 당업자는 인지할 것이다.
본원에 개시된 양상들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 직접적으로 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 그 둘의 조합으로 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 저장 매체 내에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되어, 프로세서는 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있다. 대안으로, 저장 매체는 프로세서에 일체화될 수도 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수도 있다. ASIC 는 사용자 단말 내에 상주할 수도 있다. 대안으로, 프로세서 및 저장 매체는 사용자 단말 내에 이산 컴포넌트들로서 상주할 수도 있다.
개시된 양상들에 대한 앞서의 설명은 임의의 당업자가 본 개시물을 제작하거나 이용하는 것을 가능하게 하기 위해 제공된다. 이러한 양상들에 대한 다양한 수정들은 당업자에게 자명할 것이고, 본원에 정의된 포괄적인 원리들은 본 개시물의 사상 또는 범위로부터 벗어나지 않으면서 다른 실시형태들에 적용될 수도 있을 것이다. 그러므로, 본 개시물은 보여진 실시형태들로 제한하려는 것이 아니고, 본원에 개시된 원리들 및 새로운 특징들에 부합하는 가장 넓은 범위를 따르고자 한다.
앞에 설명된 예시적인 시스템들의 관점에서, 개시된 주제에 따라 구현될 수도 있는 절차들은 여러 플로 다이어그램들을 참조하여 설명되었다. 설명의 간단함을 위해 절차들은 일련의 블록들로 도시되고 설명되지만, 본원에 묘사되고 설명된 것으로부터 일부 블록들이 상이한 순서들 및/또는 다른 블록들과 동시에 일어날 수도 있기 때문에, 청구된 주재는 블록들의 순서에 의해 제한되지 않음이 이해되고 인식될 것이다. 또한, 본원에 설명된 절차들을 구현하기 위해 모든 도시된 블록들이 요구되지는 않을 수도 있다. 또한, 본원에 개시된 절차들은 컴퓨터들로 그러한 절차들을 전송 및 전달하는 것을 가능하게 하기 위한 제조물 상에 저장될 수 있음이 더 인식되어야 한다. 본원에 사용된 바와 같은 용어 제조물은 임의의 컴퓨터 판독가능 디바이스, 반송파, 또는 매체들로부터 액세스 가능한 컴퓨터 프로그램을 아우르고자 한다.
전체적으로 또는 부분적으로, 본원에 참조로서 포함될 것이라고 언급된, 임의의 특허, 공보, 또는 다른 개시물은, 오직 포함된 것들이 기존의 정의들, 선언문들, 또는 이 개시물에서 제시된 다른 개시물들와 상충하지 않는 정도까지만 본원에 포함된다는 것이 인식되어야 한다. 그와 같이, 그리고 필요하다면 확장하여, 본원에 명확히 제시된 바와 같은 개시물은 본원에 참조로서 포함된 임의의 상충하는 것들을 대체한다. 본원에 참조로서 포함된다고 언급되나, 기존의 정의들, 선언문들, 또는 본원에 제시된 다른 개시물들과 상충하는 임의의 것, 또는 그 부분은, 단지 포함된 것과 기존의 개시물 사이에 상충이 일어나지 않을 정도까지만 포함될 것이다.

Claims (33)

  1. 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별하는 단계;
    제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별하는 단계; 및
    상기 제 1 애플리케이션의 상기 제 1 서비스 또는 상기 제 1 데이터 유형 중 선택된 하나의 호환성을 상기 제 2 애플리케이션의 상기 제 2 서비스 또는 상기 제 2 데이터 유형의 각각의 하나와 매칭시키는 단계를 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  2. 제 1 항에 있어서,
    사용자 인터페이스 상에, 상기 제 2 애플리케이션의 식별을 작동시키기 위한 발견 에이전트 (discovery agent) 의 표현과 함께 상기 제 1 애플리케이션을 나타내는 단계를 더 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  3. 제 2 항에 있어서,
    상기 제 1 애플리케이션은 복수의 서비스들 또는 복수의 데이터 유형들 중 하나를 포함하며,
    상기 방법은,
    상기 사용자 인터페이스 상에, 상기 제 1 서비스 및 상기 제 1 데이터 유형을 포함하는 현재 컨텍스트를 나타내는 단계, 및
    상기 현재 컨텍스트에 따라 상기 제 2 애플리케이션을 식별하는 단계를 더 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  4. 제 1 항에 있어서,
    상기 사용자 디바이스 상에 상기 제 2 애플리케이션을 저장하는 단계를 더 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  5. 제 4 항에 있어서,
    사용자 인터페이스 상에, 상기 제 2 애플리케이션의 저장을 작동시키기 위한 애플리케이션 추가기의 표현과 함께 상기 제 1 애플리케이션을 나타내는 단계를 더 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  6. 제 1 항에 있어서,
    상기 호환성을 매칭시키는 단계는, 상기 제 1 애플리케이션의 상기 제 1 서비스를 상기 제 2 애플리케이션의 상기 제 2 데이터 유형과 매칭시키는 단계를 더 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  7. 제 6 항에 있어서,
    상기 제 1 서비스는 연락처 서비스를 포함하고, 상기 제 2 데이터 유형은 온라인 게이머 연락처를 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  8. 제 6 항에 있어서,
    상기 제 1 서비스는 연락처 서비스를 포함하고, 상기 제 2 데이터 유형은 위치확인 서비스를 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  9. 제 1 항에 있어서,
    상기 호환성을 매칭시키는 단계는, 상기 제 1 애플리케이션의 상기 제 1 데이터 유형을 상기 제 2 애플리케이션의 상기 제 2 서비스와 매칭시키는 단계를 더 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  10. 제 9 항에 있어서,
    상기 제 1 데이터 유형은 미디어 포맷을 포함하고, 상기 제 2 서비스는 미디어 뷰어를 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  11. 제 9 항에 있어서,
    상기 제 1 데이터 유형은 미디어 포맷을 포함하고, 상기 제 2 서비스는 서버로의 업로더를 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  12. 제 9 항에 있어서,
    상기 제 1 데이터 유형은 적어도 하나의 위치와 연관된 이미지 포맷을 포함하고, 상기 제 2 서비스는 상기 적어도 하나의 위치와 연관된 서비스를 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  13. 제 1 항에 있어서,
    상기 복수의 애플리케이션들 중 하나 이상의 애플리케이션들의 호환성을 정의하는 데이터 구조를 획득하는 단계를 더 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  14. 제 13 항에 있어서,
    네트워크 인터페이스를 통하여 상기 데이터 구조에 액세스하는 단계를 더 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  15. 제 1 항에 있어서,
    사용자 선택에 응답하여 상기 제 1 애플리케이션의 상기 제 1 서비스 또는 상기 제 1 데이터 유형 중 선택된 하나에 의해 이용하기 위해 상기 제 2 애플리케이션의 상기 제 2 데이터 유형 또는 상기 제 2 서비스의 각각의 하나를 획득하여 통합시키는 단계를 더 포함하는, 사용자 디바이스의 서비스들을 확장하는 방법.
  16. 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별하기 위한 제 1 모듈;
    제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별하기 위한 제 2 모듈; 및
    상기 제 1 애플리케이션의 상기 제 1 서비스 또는 상기 제 1 데이터 유형 중 선택된 하나의 호환성을 상기 제 2 애플리케이션의 상기 제 2 서비스의 유형 또는 상기 제 2 데이터 유형의 각각의 하나와 매칭시키기 위한 제 3 모듈을 포함하는, 사용자 디바이스의 서비스들을 확장시키기 위한 적어도 하나의 프로세서.
  17. 명령들을 저장하기 위한 비휘발성 컴퓨터 판독가능 저장 매체를 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 컴퓨터 프로그램 제품으로서,
    상기 비휘발성 컴퓨터 판독가능 저장 매체는,
    컴퓨터로 하여금 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별하도록 하기 위한 적어도 하나의 명령;
    상기 컴퓨터로 하여금 제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별하도록 하기 위한 적어도 하나의 명령; 및
    상기 컴퓨터로 하여금 상기 제 1 애플리케이션의 상기 제 1 서비스 또는 상기 제 1 데이터 유형 중 선택된 하나의 호환성을 상기 제 2 애플리케이션의 상기 제 2 서비스의 유형 또는 상기 제 2 데이터 유형의 각각의 하나와 매칭시키도록 하기 위한 적어도 하나의 명령을 포함하는, 비휘발성 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  18. 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별하기 위한 수단;
    제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별하기 위한 수단; 및
    상기 제 1 애플리케이션의 상기 제 1 서비스 또는 상기 제 1 데이터 유형 중 선택된 하나를 상기 제 2 애플리케이션의 상기 제 2 서비스의 유형 또는 상기 제 2 데이터 유형의 각각의 하나와 호환성 매칭시키기 위한 수단을 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  19. 제 1 데이터 유형을 이용하는 제 1 서비스를 갖는 사용자 디바이스 상에 상주하는 제 1 애플리케이션을 식별하기 위한 확장 관리자; 및
    제 2 데이터 유형을 이용하는 제 2 서비스를 갖는 복수의 애플리케이션들 중에서 제 2 애플리케이션을 식별하기 위한 발견 에이전트 (discovery agent) 로서, 상기 발견 에이전트는 상기 제 1 애플리케이션의 상기 제 1 서비스 또는 상기 제 1 데이터 유형 중 선택된 하나의 호환성을 상기 제 2 애플리케이션의 상기 제 2 서비스 또는 상기 제 2 데이터 유형의 각각의 하나와 매칭시킴으로써 상기 제 2 애플리케이션을 식별하는, 상기 발견 에이전트를 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  20. 제 19 항에 있어서,
    상기 제 2 애플리케이션의 식별을 작동시키기 위한 상기 발견 에이전트의 표현과 함께 상기 제 1 애플리케이션을 나타내기 위한 사용자 인터페이스를 더 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  21. 제 20 항에 있어서,
    상기 제 1 애플리케이션은 복수의 서비스들 또는 복수의 데이터 유형들 중 하나를 포함하며,
    상기 사용자 인터페이스는 또한 상기 제 1 서비스 및 상기 제 1 데이터 유형을 포함하는 현재 컨텍스트를 나타내기 위한 것이고,
    상기 발견 에이전트는 또한 상기 현재 컨텍스트에 따라 상기 제 2 애플리케이션을 식별하기 위한 것인, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  22. 제 19 항에 있어서,
    상기 사용자 디바이스 상에 상기 제 2 애플리케이션을 저장하기 위한 애플리케이션 추가기를 더 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  23. 제 22 항에 있어서,
    상기 제 2 애플리케이션의 저장을 작동시키기 위한 상기 애플리케이션 추가기의 표현과 함께 상기 제 1 애플리케이션을 나타내기 위한 사용자 인터페이스를 더 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  24. 제 19 항에 있어서,
    상기 발견 에이전트는 또한 상기 제 1 애플리케이션의 상기 제 1 서비스의 호환성을 상기 제 2 애플리케이션의 상기 제 2 데이터 유형과 매칭시키기 위한 것인, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  25. 제 24 항에 있어서,
    상기 제 1 서비스는 연락처 서비스를 포함하고, 상기 제 2 데이터 유형은 온라인 게이머 연락처를 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  26. 제 24 항에 있어서,
    상기 제 1 서비스는 연락처 서비스를 포함하고, 상기 제 2 데이터 유형은 위치확인 서비스를 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  27. 제 19 항에 있어서,
    상기 발견 에이전트는 또한 상기 제 1 애플리케이션의 상기 제 1 데이터 유형의 호환성을 상기 제 2 애플리케이션의 상기 제 2 서비스와 매칭시키기 위한 것인, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  28. 제 27 항에 있어서,
    상기 제 1 데이터 유형은 미디어 포맷을 포함하고, 상기 제 2 서비스는 미디어 뷰어를 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  29. 제 27 항에 있어서,
    상기 제 1 데이터 유형은 미디어 포맷을 포함하고, 상기 제 2 서비스는 서버로의 업로더를 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  30. 제 27 항에 있어서,
    상기 제 1 데이터 유형은 적어도 하나의 위치와 연관된 이미지 포맷을 포함하고, 상기 제 2 서비스는 상기 적어도 하나의 위치와 연관된 서비스를 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  31. 제 19 항에 있어서,
    상기 복수의 애플리케이션들의 호환성을 정의하는 데이터 구조를 더 포함하며, 상기 발견 에이전트는 상기 제 1 애플리케이션의 상기 제 2 애플리케이션에 대한 호환성의 매칭을 위해 상기 데이터 구조에 액세스하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  32. 제 31 항에 있어서,
    상기 데이터 구조에 액세스하기 위한 네트워크 인터페이스를 더 포함하는, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
  33. 제 19 항에 있어서,
    상기 확장 관리자는 또한, 사용자 선택에 응답하여 상기 제 1 애플리케이션의 상기 제 1 서비스 또는 상기 제 1 데이터 유형 중 선택된 하나에 의해 이용하기 위해, 상기 제 2 애플리케이션의 상기 제 2 데이터 유형 또는 제 2 서비스의 각각의 하나를 획득하여 통합시키기 위한 것인, 사용자 디바이스의 서비스들을 확장하기 위한 장치.
KR1020137010848A 2010-09-28 2011-09-27 애플리케이션 서비스 확장 장치 및 방법 KR101503191B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US38745110P 2010-09-28 2010-09-28
US61/387,451 2010-09-28
US13/216,006 2011-08-23
US13/216,006 US8615772B2 (en) 2010-09-28 2011-08-23 Apparatus and methods of extending application services
PCT/US2011/053428 WO2012047638A1 (en) 2010-09-28 2011-09-27 Apparatus and methods of extending application services

Publications (2)

Publication Number Publication Date
KR20130073974A true KR20130073974A (ko) 2013-07-03
KR101503191B1 KR101503191B1 (ko) 2015-03-16

Family

ID=44764233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137010848A KR101503191B1 (ko) 2010-09-28 2011-09-27 애플리케이션 서비스 확장 장치 및 방법

Country Status (13)

Country Link
US (1) US8615772B2 (ko)
EP (2) EP2622430B1 (ko)
JP (2) JP5845267B2 (ko)
KR (1) KR101503191B1 (ko)
CN (1) CN103119538B (ko)
DK (2) DK3644160T3 (ko)
ES (2) ES2934078T3 (ko)
FI (1) FI3644160T3 (ko)
HU (2) HUE049160T2 (ko)
PL (1) PL2622430T3 (ko)
PT (1) PT2622430T (ko)
SI (2) SI3644160T1 (ko)
WO (1) WO2012047638A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10409576B2 (en) * 2010-10-29 2019-09-10 Intuit, Inc. Chained data processing and application utilization
US20130198029A1 (en) * 2012-01-26 2013-08-01 Microsoft Corporation Application recommendation and substitution
WO2014144948A1 (en) 2013-03-15 2014-09-18 Stuart Micheal D Visible audiovisual annotation of infrared images using a separate wireless mobile device
US9739801B2 (en) * 2013-07-16 2017-08-22 Fluke Corporation Analytical gateway device for measurement devices
US20150046828A1 (en) * 2013-08-08 2015-02-12 Samsung Electronics Co., Ltd. Contextualizing sensor, service and device data with mobile devices
CN104468947B (zh) * 2013-09-16 2017-12-29 联想(北京)有限公司 一种信息处理方法及电子设备
JP6263919B2 (ja) * 2013-09-20 2018-01-24 カシオ計算機株式会社 情報表示制御装置、情報表示制御方法及び情報表示制御プログラム
CN103500102A (zh) * 2013-10-16 2014-01-08 迈普通信技术股份有限公司 一种服务调用方法和提供服务调用的装置
US20150234930A1 (en) * 2014-02-19 2015-08-20 Google Inc. Methods and systems for providing functional extensions with a landing page of a creative
GB2528635A (en) * 2014-05-16 2016-02-03 Red Ant Group Ltd Application coordination
US9692837B2 (en) * 2015-01-09 2017-06-27 Facebook, Inc. Federated application services
EP3093759B1 (en) * 2015-05-11 2019-12-04 Samsung Electronics Co., Ltd. Electronic device and method for managing applications on an electronic device
US20170024086A1 (en) * 2015-06-23 2017-01-26 Jamdeo Canada Ltd. System and methods for detection and handling of focus elements
CN112579191A (zh) * 2019-09-29 2021-03-30 华为终端有限公司 一种组件加载方法、装置及系统
CN112732384B (zh) * 2021-01-04 2024-03-26 联想(北京)有限公司 数据处理方法及装置
US11463309B1 (en) * 2021-08-06 2022-10-04 Sap Se Automated service integration in service meshes

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6008809A (en) 1997-09-22 1999-12-28 International Business Machines Corporation Apparatus and method for viewing multiple windows within a dynamic window
US6297823B1 (en) 1998-04-03 2001-10-02 Lucent Technologies Inc. Method and apparatus providing insertion of inlays in an application user interface
US6317143B1 (en) 1999-01-26 2001-11-13 Gateway, Inc. Programmable graphical user interface control system and method
JP2003022189A (ja) * 2001-07-06 2003-01-24 Mitsubishi Electric Corp 分散ネットワークコンピューティングシステム
US7263688B2 (en) * 2002-09-23 2007-08-28 Realnetworks, Inc. Method and apparatus for dynamic data-type management
US7370284B2 (en) 2003-11-18 2008-05-06 Laszlo Systems, Inc. User interface for displaying multiple applications
US7640546B2 (en) * 2004-01-16 2009-12-29 Barclays Capital Inc. Method and system for identifying active devices on network
EP1759289A4 (en) * 2004-04-28 2008-08-20 Fujitsu Ltd SEMANTIC TASK DATA PROCESSING
US20060089793A1 (en) * 2004-10-22 2006-04-27 Richard Rudow Systems, methods and devices for trip management functions
CN100588166C (zh) * 2004-11-25 2010-02-03 武汉大学 基于移动代理和gml的分布式gis空间信息集成装置
JP2006318286A (ja) * 2005-05-13 2006-11-24 Nippon Telegr & Teleph Corp <Ntt> アプリケーション検索方法、アプリケーション検索プログラム、データテーブル生成方法及びデータテーブル生成プログラム
US8756516B2 (en) 2006-10-31 2014-06-17 Scenera Technologies, Llc Methods, systems, and computer program products for interacting simultaneously with multiple application programs
US8307379B2 (en) * 2006-12-21 2012-11-06 International Business Machines Corporation Determining an extension to use to process an input object to a call in a program
US7860872B2 (en) * 2007-01-29 2010-12-28 Nikip Technology Ltd. Automated media analysis and document management system
JP2008287373A (ja) * 2007-05-15 2008-11-27 Sun Corp サーバ装置
CN101690141A (zh) * 2007-06-27 2010-03-31 汤姆森特许公司 经由位置检测进行的自动联系人信息输入
JP4500333B2 (ja) * 2007-07-19 2010-07-14 株式会社リコー 画像情報処理装置、インストール方法、プログラムおよび記録媒体
US20090193444A1 (en) * 2008-01-29 2009-07-30 Microsoft Corporation Techniques for creating and managing extensions
WO2009099637A2 (en) 2008-02-08 2009-08-13 Ecrio, Inc. System, method and apparatus for controlling multiple applications and services on a digital electronic device
JP2008301484A (ja) * 2008-05-19 2008-12-11 Canon Inc シンジケーションデータの構造
US8799451B2 (en) 2009-01-28 2014-08-05 Headwater Partners I Llc Verifiable service policy implementation for intermediate networking devices
EP2154891B1 (en) * 2008-08-11 2013-03-20 Research In Motion Limited Methods and systems for mapping subscription filters to advertisement applications
US8316387B2 (en) * 2008-08-28 2012-11-20 Microsoft Corporation Exposure of remotely invokable method through a webpage to an application outside web browser
JP5257311B2 (ja) * 2008-12-05 2013-08-07 ソニー株式会社 情報処理装置、および情報処理方法
US20100211960A1 (en) * 2009-02-17 2010-08-19 Google Inc. Characterizing User Information
JP5316363B2 (ja) * 2009-10-20 2013-10-16 ソニー株式会社 情報処理装置、機能管理方法、コンピュータプログラム及び情報処理システム

Also Published As

Publication number Publication date
US8615772B2 (en) 2013-12-24
HUE049160T2 (hu) 2020-09-28
EP2622430B1 (en) 2020-02-12
PT2622430T (pt) 2020-05-19
HUE060736T2 (hu) 2023-04-28
DK2622430T3 (da) 2020-03-30
SI3644160T1 (sl) 2023-01-31
WO2012047638A1 (en) 2012-04-12
SI2622430T1 (sl) 2020-07-31
EP3644160A1 (en) 2020-04-29
KR101503191B1 (ko) 2015-03-16
EP3644160B1 (en) 2022-12-07
EP2622430A4 (en) 2014-08-06
JP2015228242A (ja) 2015-12-17
JP5845267B2 (ja) 2016-01-20
ES2934078T3 (es) 2023-02-16
CN103119538B (zh) 2017-04-19
ES2791824T3 (es) 2020-11-06
CN103119538A (zh) 2013-05-22
FI3644160T3 (fi) 2023-01-13
PL2622430T3 (pl) 2020-08-10
US20120079504A1 (en) 2012-03-29
JP2013542503A (ja) 2013-11-21
DK3644160T3 (da) 2022-12-19
JP6224039B2 (ja) 2017-11-01
EP2622430A1 (en) 2013-08-07

Similar Documents

Publication Publication Date Title
EP3644160B1 (en) Apparatus and methods of extending application services
US11778430B2 (en) Layers in messaging applications
US10194288B2 (en) Sticker distribution system for messaging apps
US10852912B2 (en) Image creation app in messaging app
US10534533B2 (en) Messaging sticker applications
US10554599B2 (en) Conversion of detected URL in text message
US20200236513A1 (en) Message extension app store
EP3255909A1 (en) Messaging application interacting with one or more extension applications
US20170359283A1 (en) Music creation app in messaging app
US10637804B2 (en) User terminal apparatus, communication system, and method of controlling user terminal apparatus which support a messenger service with additional functionality
US10795633B2 (en) Desktop sharing method and mobile terminal
KR20170020366A (ko) 구독자 정의 동적 이벤팅 기법
AU2014202586A1 (en) Automatic website generation

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: 20171228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 5