KR20170037632A - 사용자 모바일 디바이스를 이용한 액세서리 디바이스 동작 - Google Patents

사용자 모바일 디바이스를 이용한 액세서리 디바이스 동작 Download PDF

Info

Publication number
KR20170037632A
KR20170037632A KR1020177004658A KR20177004658A KR20170037632A KR 20170037632 A KR20170037632 A KR 20170037632A KR 1020177004658 A KR1020177004658 A KR 1020177004658A KR 20177004658 A KR20177004658 A KR 20177004658A KR 20170037632 A KR20170037632 A KR 20170037632A
Authority
KR
South Korea
Prior art keywords
application
companion
accessory device
display
accessory
Prior art date
Application number
KR1020177004658A
Other languages
English (en)
Other versions
KR102033102B1 (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 KR20170037632A publication Critical patent/KR20170037632A/ko
Application granted granted Critical
Publication of KR102033102B1 publication Critical patent/KR102033102B1/ko

Links

Images

Classifications

    • G06F9/4445
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • 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
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/12Synchronisation between the display unit and other units, e.g. other display units, video-disc players
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/724094Interfacing with a device worn on the user's body to provide access to telephonic functionalities, e.g. accepting a call, reading or composing a message
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/16Use of wireless transmission of display information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72412User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories using two-way short-range wireless interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

액세서리 디바이스 애플리케이션은 제한된 자원의 액세서리 디바이스 상에서 실행된다. 액세서리 디바이스 애플리케이션은 액세서리 디바이스 스터브 애플리케이션 및 인터페이스 정의를 포함한다. 사용자가 액세서리 디바이스 애플리케이션과 상호작용할 때, 디스플레이 변화들이 이에 응답하여, 인터페이스 정의에 따라 생성되고, 연관된 컴패니언 디바이스의 컴패니언 확장으로 송신된다. 컴패니언 확장은 변화들을 수신하고, 액세서리 디바이스 디스플레이에 대한 업데이트된 디스플레이 값들을 생성한다. 업데이트된 디스플레이 값들은 컴패니언 디바이스 데몬으로부터 액세서리 디바이스의 데몬으로 송신되며, 액세서리 디바이스의 데몬은 업데이트된 디스플레이 값들을 액세서리 디바이스 디스플레이에서 표시한다. 액세서리 디바이스 애플리케이션의 기능 및 동작은 제한된 자원의 액세서리 디바이스가 컴패니언 디바이스의 데이터 처리 및 계산 능력을 활용하도록 하여, 액세서리 디바이스에서의 보다 흥미로운 사용자 경험을 제공할 수 있게 한다.

Description

사용자 모바일 디바이스를 이용한 액세서리 디바이스 동작{ACCESSORY DEVICE OPERATION WITH USER MOBILE DEVICE}
관련 출원에 대한 상호 참조
본 출원은 2014년 9월 2일자로 출원된 미국 가특허 출원 제62/044,797호의 우선권을 주장하는, 2015년 8월 27일자로 출원된 미국 정규 출원 제14/837,336호의 이익을 주장하며, 이는 본 명세서에서 모든 목적을 위해 참조로서 포함된다.
배경기술
본 개시내용은 일반적으로 무선 전자 디바이스에 관한 것으로, 특히, 사용자 모바일 디바이스로 액세서리 디바이스를 동작시키는 것에 관한 것이다.
무선 전화기, 휴대용 음악 재생기, 태블릿 컴퓨터 등과 같은 많은 무선 모바일 전자 디바이스들은 거의 개인용 컴패니언(personal companion)으로서 휴대된다. 사용자가 모바일 전자 디바이스로 동작시킬 수 있는 액세서리 디바이스를 획득하는 것이 바람직할 수 있다. 액세서리 디바이스는 예를 들어, 웨어러블 컴퓨터 디바이스를 포함할 수 있다. 사용자 액세서리 디바이스는 통상적으로 대부분의 모바일 전자 디바이스들과 비교해 감소된 자원 및 컴퓨팅 능력을 갖는다. 그럼에도 불구하고, 액세서리 디바이스를 이용해, 사용자들은, 액세서리 디바이스 상에서 동작하기 위해 선택된 애플리케이션들을 설치하는 것과 같은, 많은 모바일 디바이스들과 연관된 특징들을 즐기고 싶어한다. 사용자에 의한 증가된 편의성 및 즐거움은 모바일 디바이스로부터의 애플리케이션들의 설치 및 애플리케이션들의 동작에 의해 얻어질 수 있다.
개시된 실시예들에 따르면, 액세서리 디바이스 애플리케이션은 제한된 자원의 액세서리 디바이스 상에서 실행된다. 액세서리 디바이스 애플리케이션은 액세서리 디바이스에 설치되는 액세서리 디바이스 스터브 애플리케이션(stub application) 및 인터페이스 정의를 포함한다. 사용자가 액세서리 디바이스와 상호작용할 때, 인터페이스 정의에 따라, 이벤트들 및 사용자 명령들이 이에 응답하여 액세서리 디바이스 스터브 애플리케이션에 의해 생성되고 액세서리 디바이스 데몬에 제공되며, 연관된 컴패니언 디바이스의 컴패니언 확장(companion extension)으로 송신된다. 컴패니언 확장은 이벤트들 및 사용자 명령들을 수신하고, 액세서리 디바이스 디스플레이를 위한 업데이트된 디스플레이 값들을 생성한다. 업데이트된 디스플레이 값들은 컴패니언 디바이스로부터 액세서리 디바이스의 데몬으로 송신되며, 액세서리 디바이스의 데몬은 업데이트된 디스플레이 값들을 액세서리 디바이스 디스플레이에서 표시한다. 액세서리 디바이스 애플리케이션의 기능 및 동작은 제한된 자원의 액세서리 디바이스가 컴패니언 디바이스의 데이터 처리 및 계산 능력을 활용하도록 하여, 액세서리 디바이스에서의 보다 흥미로운 사용자 경험을 제공할 수 있게 한다.
다른 실시예들은 본 명세서에 기술된 방법들과 연관된 시스템들, 휴대용 소비자 디바이스들, 및 컴퓨터 판독가능 매체에 관한 것이다.
본 발명의 실시예들의 본질 및 이점들의 더 나은 이해가 하기의 상세한 설명 및 첨부 도면을 참조하여 얻어질 수 있다.
도 1은 본 발명의 실시예에 따른 컴퓨터 디바이스들의 블록도이다.
도 2는 도 1에 예시된 바와 같은 서버 컴퓨터 디바이스에 의해 수행되는 동작들의 흐름도이다.
도 3은 도 2에 예시된 동작들을 수행하는 디바이스들을 예시하는 블록도이다.
도 4는 도 1에 예시된 것과 같은 모바일 컴퓨터 디바이스에 애플리케이션 패키지를 설치하기 위한 동작들의 흐름도이다.
도 5는 도 4에 예시된 동작들을 수행하는 디바이스들을 예시하는 블록도이다.
도 6은 도 1에 예시된 것과 같은 액세서리 컴퓨터 디바이스에 액세서리 애플리케이션 파일을 설치하기 위한 동작들의 흐름도이다.
도 7은 도 6에 예시된 동작들을 수행하는 디바이스들을 예시하는 블록도이다.
도 8은 도 1에 예시된 바와 같은 액세서리 디바이스의 시작 시 초기 디스플레이를 결정하기 위한 동작들의 흐름도이다.
도 9는 도 1에 예시된 바와 같은 액세서리 디바이스의 디스플레이를 업데이트하기 위한 동작들의 흐름도이다.
도 10은 도 8 및 도 9에 예시된 동작들을 수행하는 디바이스들을 예시하는 블록도이다.
도 11은 도 1에 예시된 디바이스들에 대한, 컴패니언 디바이스가 액세서리 디바이스에 통지를 송신하는 것을 예시하는 블록도이다.
도 12a 및 12b는 도 11에 예시된 디바이스들에서와 같은, 커스텀 사용자 인터페이스를 갖는 액세서리 디바이스에서 표시하도록 의도된, 컴패니언 디바이스에서 수신된 통지들을 처리하기 위한 동작들의 흐름도를 포함한다.
도 13은 도 12a 및 도 12b에 예시된 동작들을 수행하는 디바이스들을 예시하는 블록도이다.
도 14는 도 12a 및 도 12b에 예시된 동작들을 수행하는 디바이스들을 예시하는 블록도이다.
도 15는 도 14에 예시된 액세서리 디바이스의 처리를 예시하는 블록도이다.
도 16은 본 발명의 실시예에 따른 컴퓨터 디바이스의 블록도이다.
정의
본 명세서에 사용되는 바와 같이, 액세서리 디바이스는, 일반적으로 제한된 자원을 가지며 컴패니언 모바일 컴퓨터 디바이스를 이용해 동작되는 컴퓨터 디바이스의 부류이다. 예를 들어, 액세서리 디바이스는 웨어러블 컴퓨터 디바이스, 예컨대 시계 또는 건강 신호 모니터 또는 감소된 크기의 유사한 디바이스(예를 들어, 손목, 손가락, 목, 귀 등의 주위에 착용될 수 있거나, 또는 그렇지 않으면 사람이나 사람의 의복에 부착될 수 있는 임의의 디바이스)를 포함할 수 있다. 그러한 액세서리 컴퓨팅 디바이스들은, 예를 들어, 스마트 전화 또는 태블릿 컴퓨터와 같은 모바일 컴퓨팅 디바이스들과 비교하여, 그것들이 상대적으로 더 적은 능력을 갖는 프로세서들을 갖거나, 또는 제한된 저장 용량을 갖는다는 점에서, 제한된 자원을 갖는다. 액세서리 컴퓨팅 디바이스의 제한된 자원은, 애플리케이션들을 설치하고 사용자에게 유용한 특징들을 제공하는 데 어려운 조건들을 초래할 수 있다.
실시예들에 따르면, 액세서리 컴퓨팅 디바이스 상에 설치하기 위한 애플리케이션들은, 컴패니언 디바이스로도 지칭되는 연관된 모바일 컴퓨팅 디바이스에 의해 수신되는 애플리케이션 패키지들로서 제공된다. 애플리케이션 패키지는 액세서리 디바이스 상에서 동작하기 위한 애플리케이션을 식별한다. 요청된 애플리케이션 패키지는 컴패니언 디바이스에서 수신되고, 컴패니언 디바이스의 운영 체제에 따라, 애플리케이션 패키지의 컴포넌트들이 자동으로 추출되도록 설치된다. 애플리케이션 패키지는 컴패니언 애플리케이션, 컴패니언 확장, 및 액세서리 디바이스 애플리케이션 파일을 포함한다. 액세서리 디바이스 애플리케이션 파일은 액세서리 디바이스 스터브 애플리케이션 및 인터페이스 정의를 포함한다. 컴패니언 애플리케이션, 컴패니언 확장, 액세서리 디바이스 스터브 애플리케이션, 및 인터페이스 정의를 포함하는 애플리케이션 패키지 컴포넌트들은 모든 컴포넌트들 및 각각의 개별 디바이스의 운영 체제(OS)에 포함되는 각각의 통신 데몬들 사이에서 상호 인식되는 애플리케이션 패키지 식별자에 따라 상호동작하도록 구성된다. 이러한 방식으로, 모바일 컴퓨팅 디바이스의 자원은 액세서리 컴퓨팅 디바이스 애플리케이션 및 연관된 컴포넌트들을 설치하는 데 이용된다.
본 문헌의 추가의 섹션들은, 액세서리 디바이스에 대한 통지들이 모바일 컴패니언 디바이스에서 수신되는 기술들을 논의한다. 통지들은 액세서리 디바이스 애플리케이션들에 대해 의도된 통지들을 처리하는 컴패니언 디바이스의 통지 처리 애플리케이션으로 보내진다. 통지 처리 애플리케이션은 통지가 의도되는 액세서리 애플리케이션의 식별자를 결정하고, 식별자를 액세서리 디바이스의 통지 디스플레이 애플리케이션에 제공하며, 이것은 통지에 대한 사용자 인터페이스 및 디스플레이 속성들을 결정한다. 액세서리 디바이스는 필요에 따라 컴패니언 디바이스로부터 외부(동적) 사용자 인터페이스 및 디스플레이 속성들을 요청하고, 수신 시 액세서리 디바이스에서 통지 디스플레이를 생성한다.
실시예들에 따라, 액세서리 디바이스는, 그 기능적 처리, 저장, 및 계산 동작들이 컴패니언 디바이스에 의해 수행되는 액세서리 디바이스 애플리케이션과 연계하여 동작된다. 이러한 방식으로, 액세서리 디바이스 애플리케이션은 제한된 자원의 액세서리 디바이스 상에서 실행된다. 액세서리 디바이스 애플리케이션은 액세서리 디바이스에 설치되는 액세서리 디바이스 스터브 애플리케이션 및 인터페이스 정의를 포함한다. 사용자가 액세서리 디바이스 애플리케이션과 상호작용할 때, 이벤트들 및 사용자 명령들이 이에 응답하여 액세서리 디바이스 스터브 애플리케이션에 의해, 인터페이스 정의에 따라 생성되고, 연관된 컴패니언 디바이스의 컴패니언 확장으로 송신된다. 컴패니언 확장은 이벤트들 및 사용자 명령들을 수신하고, 액세서리 디바이스 디스플레이를 위한 업데이트된 디스플레이 값들을 생성한다. 업데이트된 디스플레이 값들은 컴패니언 디바이스의 데몬으로부터 액세서리 디바이스의 대응하는 데몬으로 송신되며, 액세서리 디바이스의 대응하는 데몬은 업데이트된 디스플레이 값들을 액세서리 디바이스 디스플레이에서 표시한다. 이와 같이, 컴패니언 디바이스와 액세서리 디바이스 사이의 통신은, 통신의 적절한 라우팅을 위해 상호 인식되는 애플리케이션 이름들 또는 식별 코드들을 이용하여 각각의 디바이스 상의 대응하는 데몬들에 의해 핸들링된다.
I. 디바이스 구성
도 1은 본 발명의 실시예에 따른 다수의 컴퓨터 디바이스들의 블록도이다. 서로 통신하는 다수의 디바이스들(100) 중에서, 컴퓨팅 서버 디바이스(110)는 컴패니언 디바이스(120)로도 칭해지는 모바일 컴퓨팅 디바이스와 통신한다. 컴패니언 디바이스(120)는 컴퓨팅 능력 및 데이터 저장 용량의 관점에서 상대적으로 제한된 자원의 액세서리 컴퓨팅 디바이스(130)와 통신한다. 서버 디바이스(110)의 패키지 생성 애플리케이션(112)은 액세서리 디바이스에 대해 의도되는 애플리케이션 패키지를 생성하기 위한 요청들을 제3자 개발자들로부터 수신할 수 있고, 패키지 생성 애플리케이션은 연관된 파일들을 생성할 것이다. 보다 상세하게는, 제3자는 액세서리 디바이스 스터브 애플리케이션 및 인터페이스 정의를 포함하는 액세서리 애플리케이션 파일을 서버 디바이스(110)에 제공할 수 있고, 서버 디바이스는 액세서리 애플리케이션 파일과의 상호동작을 위해 구성되는 컴패니언 애플리케이션 및 컴패니언 확장을 자동으로 생성할 것이다. 생성된 컴패니언 애플리케이션 및 컴패니언 확장은, 액세서리 디바이스 스터브 애플리케이션 및 인터페이스 정의와 함께, 조합되어 액세서리 디바이스 애플리케이션 패키지를 제공한다. 즉, 패키지 생성 애플리케이션(112)은 예를 들어, 온라인 애플리케이션 스토어에서의 판매를 위해 개발자들로부터 수신된 모바일 디바이스 애플리케이션들을 구성하는 애플리케이션을 포함할 수 있다.
컴패니언 디바이스(120)에서, 액세서리 컴퓨팅 디바이스(130)를 위한 애플리케이션 패키지가 수신되고, 패키지 컴포넌트들은 액세서리 디바이스(130)에 설치하기 위해 수신된 애플리케이션 패키지로부터 자동으로 추출된다. 추출된 컴포넌트들은 도 3에서 액세서리 애플리케이션(132)으로서 예시된다. 액세서리 디바이스에 설치될, 애플리케이션 패키지의 인터페이스 정의는, 액세서리 디바이스의 디스플레이를 위한 디스플레이 값들을 정의한다. 애플리케이션 패키지의 스터브 애플리케이션은, 실행 시 디바이스 프레임워크를 로딩하는 스크립트와 같은 프로그래밍 코드를 포함하며, 이것은 액세서리 디바이스 애플리케이션 기능을 제공하기 위해 인터페이스 정의를 해석하고 디스플레이 인터페이스 요소들을 생성하는 코드를 포함한다. 액세서리 애플리케이션(132)의 이들 컴포넌트, 인터페이스 정의 및 스터브 애플리케이션은 이하에서 더 설명된다. 애플리케이션 패키지의 컴패니언 디바이스 확장은 인터페이스 요소들의 디스플레이 값들을 결정하도록 동작한다.
실시예들에 따라, 패키지 생성 애플리케이션(112)은 적절한 인터페이스 정의를 포함하는 제출물들과 같은, 액세서리 디바이스에서 동작하도록 의도되는 수신된 디바이스 애플리케이션들을 결정하고, 컴패니언 디바이스 애플리케이션 및 컴패니언 디바이스 확장과 같은 컴포넌트들을 포함하는 대응하는 애플리케이션 패키지를 자동으로 생성한다. 애플리케이션 패키지는 액세서리 디바이스 상에서 동작하기 위한 애플리케이션을 식별하여, 애플리케이션 패키지가 컴패니언 디바이스 애플리케이션, 컴패니언 디바이스 확장, 액세서리 디바이스 스터브 애플리케이션, 및 인터페이스 정의를 포함하는 컴포넌트들을 포함하도록 한다. 각각의 디바이스 데몬들은 그것들 각자의 디바이스의 운영 체제와 함께 포함되며, 액세서리 디바이스 애플리케이션 이름과 같은, 애플리케이션 패키지 내의 컴포넌트들과 연관된 상호 알려진 식별자에 기초하여 디바이스들 간의 통신을 지원한다.
컴패니언 디바이스(120)는 전술한 바와 같은 설치된 애플리케이션 패키지를 포함하는 컴패니언 디바이스 애플리케이션(122)을 포함한다. 보다 상세하게는, 컴패니언 디바이스(120)는 컴패니언 디바이스 애플리케이션, 컴패니언 디바이스 확장, 액세서리 디바이스 스터브 애플리케이션, 및 인터페이스 정의를 포함하는 컴포넌트들을 포함하는 애플리케이션 패키지를, 설치를 위해 수신한다. 언급된 바와 같이, 애플리케이션 패키지 컴포넌트들은 상호 알려진 식별자를 이용해 동작하도록 구성된다. 컴패니언 디바이스(120)가 애플리케이션 패키지를 설치하는 경우, 컴패니언 디바이스는, 애플리케이션 패키지가 컴패니언 디바이스 상에 설치되어, 액세서리 디바이스 스터브 애플리케이션 및 인터페이스 정의를 포함하는 컴포넌트들이 설치를 위해 액세서리 디바이스(130)로 송신되었다는 표시를, 서버 디바이스(110)로 송신한다. 이러한 방식으로, 컴패니언 디바이스 애플리케이션의 설치가 서버(110)에 등록된다.
도 1의 양방향 화살표들(150, 160)은 서버 디바이스(110)와 컴패니언 디바이스(120) 사이, 및 컴패니언 디바이스(120)와 액세서리 디바이스(130) 사이의 통신을 위한 네트워크 접속들을 나타낸다. 접속들은 유선 네트워크 접속, 또는 무선 네트워크 접속, 또는 두 유형의 접속의 조합을 포함할 수 있다.
액세서리 디바이스(130)는 예를 들어, 웨어러블 액세서리 디바이스일 수 있다. 웨어러블 액세서리 디바이스는 임의의 웨어러블 물품에서 구현될 수 있다. 예를 들어, 액세서리 디바이스(130)는 시계, 팔찌, 목걸이, 링, 벨트, 자켓, 안경, 고글, 헤드폰, 이어 버드(ear bud), 보청기 등으로서 또는 그 내에서 구현될 수 있거나, 또는 그러한 물품들 내부에 배치되거나 그에 부착될 수 있다. 컴패니언 디바이스(120) 및 액세서리 디바이스(130)는 예를 들어, 휴대용 음악 재생기, 디지털 카메라, 랩톱 컴퓨터, 태블릿 컴퓨터, 디지털 오디오 레코더, 증강 현실 고글, 헤드폰, 이어피스, 또는 스마트 폰과 같은 임의의 종류의 휴대용 전자 디바이스일 수 있다. 디바이스들(120, 130)은 동일하거나 상이한 종류의 디바이스들일 수 있다.
II. 애플리케이션 패키지 생성
도 2는 애플리케이션 패키지를 생성하기 위해, 도 1에 예시된 바와 같은 컴패니언 디바이스(120) 및 액세서리 디바이스(130)에 대하여 서버 컴퓨터 디바이스(110)에 의해 수행되는 동작들의 흐름도를 도시한다. 도 3은 제3자 개발자(310), 서버 컴퓨터 디바이스(110), 컴패니언 디바이스(120), 및 액세서리 디바이스(130)를 포함하는, 도 2 동작에 관련된 시스템들 및 구조들(300)을 예시한다.
도 2의 동작(210)에서, 서버 컴퓨터(110)는 액세서리 디바이스 스터브 애플리케이션(312) 및 액세서리 디바이스 인터페이스 정의(314)를 수신한다. 스터브 애플리케이션은 인터페이스 정의(314)에 따라, 통지들 및 디바이스와의 사용자 상호작용에 응답하여, 라이브러리의 프로그램 코드 또는 프레임워크를 참조, 호출, 또는 실행하는 것을 통해 이벤트들, 명령들, 및 디스플레이 값들을 생성한다. 스터브 애플리케이션(312)은 예를 들어, 액세서리 디바이스의 프로세서에 의해 실행될 수 있는 스크립트 또는 프로그램 호출로서 구현될 수 있다. 이벤트들 및 명령들 및 디스플레이 값들은 디바이스들의 각자의 통신 데몬들(320, 322)을 통해 액세서리 디바이스로부터, 연관된 컴패니언 디바이스의 컴패니언 확장으로 송신된다. 컴패니언 확장은 이벤트들 및 사용자 명령들을 수신하고, 액세서리 디바이스 디스플레이를 위한 업데이트된 디스플레이 값들을 생성한다. 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)를 수신하는 것에 응답하여, 서버 컴퓨터(110)는 액세서리 디바이스(130)에 대해 의도된 애플리케이션 패키지를 생성한다. 서버는, 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314) 외에도, 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)의 제3 자 개발자(310)로부터 애플리케이션 패키지를 생성하라는 요청을 수신할 수 있다. 요청은 서버 컴퓨터가 애플리케이션 패키지를 생성하기 위한 전제 조건은 아니다.
액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)는 액세서리 디바이스 애플리케이션 파일을 포함하며, 의도된 액세서리 디바이스에 저장하도록 의도된다. 액세서리 디바이스는 액세서리 디바이스(130)와, 연관된 컴패니언 디바이스(120) 사이의 무선 통신을 관리하는 액세서리 디바이스 데몬(320)과 함께 운영 체제를 포함한다. 제3자 개발자(310)에 의해 제공되는 스터브 애플리케이션(312)은 프로세서 동작들 및 데이터 저장소와 같은 액세서리 디바이스 자원에 대한 최소의 요구를 가지면서 액세서리 디바이스에 의해 실행되는 소량의 코드를 포함한다. 제3자 개발자에 의해 제공되는 인터페이스 정의(314)는 액세서리 디바이스(130)에 의해 사용되는 사용자 인터페이스의 양상들을 정의하는 데이터를 포함한다. 예를 들어, 데이터는 액세서리 디바이스의 디스플레이 상에 표시될 버튼들, 텍스트 필드들, 및 다른 사용자 상호작용 아티팩트들을 표시하는 데 사용되는 데이터 값들을 포함할 수 있다.
액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)를 제3자 개발자(310)로부터 수신하면, 서버 디바이스(110)는 그것들을 액세서리 디바이스 애플리케이션 파일(332)로서 저장한다. 액세서리 디바이스 애플리케이션 파일은 액세서리 디바이스 인터페이스 정의(314) 내의 식별 데이터에 의해 지시되는 바와 같은, 식별자를 포함한다. 예를 들어, 식별자는 액세서리 디바이스 애플리케이션 이름을 정의할 수 있다.
도 2의 동작(212)에서, 서버 디바이스(110)는 그것의 패키지 생성 애플리케이션(112)을 사용하여, 식별된 애플리케이션 이름에 대응하는 애플리케이션 코드를 생성한다. 생성되는 애플리케이션 코드는 컴패니언 애플리케이션(334) 및 컴패니언 확장(336)을 포함한다. 컴패니언 애플리케이션(334)은 컴패니언 디바이스(120)에서 액세서리 애플리케이션(312)을 지원하는 실행을 위한 것이며, 컴패니언 확장(336)은 액세서리 애플리케이션을 지원하는 컴패니언 디바이스(120)에서의 적절한 컴패니언 애플리케이션 및 프레임워크 요소들을 결정하기 위한 것이다.
애플리케이션 코드 및 액세서리 디바이스 애플리케이션 파일은 애플리케이션 패키지를 포함한다. 컴패니언 애플리케이션(334), 컴패니언 확장(336), 및 액세서리 디바이스 애플리케이션 파일(332)의 애플리케이션 패키지 컴포넌트들은, 애플리케이션 이름 또는 할당된 애플리케이션 번호를 포함하는 공통의 액세서리 애플리케이션 식별자, 또는 모든 패키지 컴포넌트들이 컴퓨팅 디바이스에 의해 동일한 액세서리 애플리케이션과 연관되는 것으로서 이해될 수 있는 다른 적합한 표시들을 공유한다. 애플리케이션 패키지 컴포넌트들은 상호 알려진 애플리케이션 식별자를 이용해 동작하도록 구성된다. 애플리케이션 패키지 컴포넌트들은 컴퓨터 환경에서 개별적으로 저장, 전송, 및 식별될 수 있는 다수의 파일들을 포함하지만, 애플리케이션 패키지 자체는 하나의 파일명 하에서 저장 및 전송 및 식별될 수 있는 단일 파일로서 생성된다.
애플리케이션 패키지가 생성된 후, 박스(212)에서, 애플리케이션 패키지는 컴패니언 디바이스들에서 다운로드 및 설치하기 위해 서버 컴퓨터(110)로부터 이용가능하다. 애플리케이션 식별자는 사용자들에게 공표되고 알려질 수 있으며, 사용자들은 식별된 애플리케이션을 그들의 액세서리 디바이스들 상에 설치하기 위해 그들의 컴패니언 디바이스로부터 획득하고 싶어할 수 있다. 즉, 애플리케이션 패키지는 액세서리 디바이스를 위한 것으로 판매 및 식별될 수 있지만, 컴패니언 디바이스 컴포넌트들을 갖는 애플리케이션 패키지는 컴패니언 디바이스들에 서비스를 제공하는(cater) 온라인 스토어를 통해 획득될 수 있다.
동작(214)에서, 서버 디바이스(110)는 액세서리 디바이스에 액세서리 애플리케이션을 설치하기를 원하는 사용자로부터 애플리케이션 패키지에 대한 요청을 수신할 수 있다. 요청은 예를 들어, 애플리케이션 다운로드 인터페이스를 갖는 온라인 스토어를 통한 사용자로부터의 다운로드 요청의 형태일 수 있다.
도 2의 동작 박스(216)에서, 서버 디바이스(110)는 식별된 액세서리 디바이스 애플리케이션 패키지(362)를 컴패니언 디바이스(120)에 송신함으로써 애플리케이션 패키지에 대한 수신된 요청에 응답할 수 있다.
액세서리 디바이스 애플리케이션 패키지(362)를 수신하면, 컴패니언 디바이스(120)는 그것의 운영 체제를 사용하여 컴포넌트들을 자동으로 추출한다. 추출된 컴포넌트들은 액세서리 디바이스 애플리케이션 파일(332), 컴패니언 애플리케이션(334), 및 컴패니언 확장(336)을 포함한다. 이들 컴포넌트가 추출되고 컴패니언 디바이스 상에 설치될 때, 컴패니언 디바이스는 애플리케이션이 수신되고 설치되었음을 서버 디바이스(110)에 통지하며, 이는 다운로드된 디바이스 애플리케이션의 설치에 통상적인 것과 같다.
동작(218)에서, 액세서리 디바이스 애플리케이션 패키지(362)가 컴패니언 디바이스(120)에 설치된 후, 그리고 컴패니언 디바이스가 액세서리 디바이스(130)와 통신하면, 컴패니언 디바이스는 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)를 포함하는 컴포넌트들을 설치를 위해 액세서리 디바이스(130)로 송신할 수 있다. 원한다면, 액세서리 디바이스 또는 컴패니언 디바이스는, 각자의 디바이스의 디스플레이 상의 적합한 질의에 의해, 설치가 바람직한지를 사용자에게 먼저 문의할 수 있다. 긍정 응답은 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)를 액세서리 디바이스에 저장하게 할 것이고, 부정 응답은 임의의 이러한 저장 활동을 중지시킨다. 저장이 요구되는 경우, 액세서리 디바이스(130)에서, 추출된 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)는 컴패니언 디바이스(120)로부터 수신되고 저장된다.
도 3의 양방향 화살표들(340, 350, 370)은 제3자 개발자(310)와 서버 디바이스(110) 사이, 서버 디바이스와 컴패니언 디바이스(120) 사이, 및 컴패니언 디바이스와 액세서리 디바이스(130) 사이의 통신을 위한 네트워크 접속들을 나타낸다. 접속들은 유선 네트워크 접속, 또는 무선 네트워크 접속, 또는 두 유형의 접속의 조합을 포함할 수 있다.
III. 컴패니언 애플리케이션 설치
도 4는 도 1에 예시된 것과 같은 모바일 컴퓨터 디바이스에 애플리케이션 패키지를 설치하기 위한 동작들의 흐름도이다. 도 5는 서버 컴퓨터 디바이스(110), 컴패니언 디바이스(120), 및 액세서리 디바이스(130)를 포함하는, 도 4 동작에 관련된 시스템들 및 구조들(500)을 예시한다.
박스(402)의 도 4 동작들에서, 컴패니언 디바이스(120)는 연관된 액세서리 디바이스(130)와 함께 사용하기 위한 액세서리 디바이스 애플리케이션 패키지(362)를 수신한다. 위에서 논의한 바와 같이, 액세서리 디바이스 애플리케이션 패키지 컴포넌트들은 액세서리 디바이스 애플리케이션 파일(332), 컴패니언 애플리케이션(334), 및 컴패니언 확장(336)을 포함한다. 컴패니언 디바이스(120)가 애플리케이션 파일을 수신하는 경우, 그것은 컴패니언 디바이스의 운영 체제에 따라, 애플리케이션 파일(332)에 포함된 코드를 자동으로 검사한다. 검사는, 애플리케이션 이름 식별자 또는 애플리케이션 파일 내의 유사한 정보에 의하여, 애플리케이션 파일(332)이 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)와 같은, 액세서리 디바이스에 대해 의도된 추가의 코드 및 데이터를 포함하는지 여부를 컴패니언 디바이스에 드러낼 것이다. 검증이 실패하면, 컴패니언 디바이스는 사용자에게 알리기 위한 시스템 메시지를 제공할 수 있고, 그리고/또는 통지 및 실패 처리가 컴패니언 디바이스에서 시작될 수 있다.
다음 동작(404)에서, 컴패니언 디바이스(120)는 액세서리 디바이스 애플리케이션 패키지 컴포넌트들을 추출한다. 추출 동작은 스터브 애플리케이션을 검증하는 검증 또는 인가 행위를 포함할 수 있다. 예를 들어, 컴패니언 디바이스는 적절한 애플리케이션 식별자에 대한 체크를 수행할 수 있다. 추출 동작, 및 컴포넌트들의 임의의 검증은 컴패니언 디바이스의 운영 체제에 의해 관리될 수 있다.
박스(406)의 동작에서, 검증 시, 컴패니언 디바이스(120)는 액세서리 디바이스 애플리케이션 패키지(362)를 설치한다. 설치는 컴패니언 디바이스 메모리의 적절한 저장 위치들에 컴포넌트들을 저장하는 것을 포함할 수 있다. 도 5는, 컴패니언 디바이스(120)에서 수신된 액세서리 디바이스 애플리케이션 패키지(362)의 컴포넌트들이 애플리케이션 파일(532), 컴패니언 디바이스 애플리케이션(534), 및 컴패니언 확장(536)을 포함하는 것을 도시한다. 애플리케이션 파일(532)은 또한 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)를 포함하며, 이들 둘 모두는 이하에서 더 설명되는 바와 같이, 연관된 액세서리 디바이스(130)에 저장된다.
동작(408)에서, 컴패니언 디바이스(120)는 액세서리 디바이스 애플리케이션 파일(532)을 설치를 위해 액세서리 디바이스(130)에 송신한다. 설치 동작(408) 이전에, 박스(406) 동작의 일부로서, 컴패니언 디바이스(120) 또는 액세서리 디바이스(130)는 액세서리 디바이스에서 파일 콘텐츠를 설치하기 전에 설치의 확인을 요청하는 질의 메시지를 표시할 수 있다. 컴패니언 디바이스 메모리에 저장된 프레임워크 데이터는 또한 컴패니언 디바이스 운영 체제 및 액세서리 디바이스 운영 체제에 따라 액세서리 디바이스에 저장될 수 있다. 대안적으로, 프레임워크 데이터는 컴패니언 디바이스에 저장될 수 있으며, 필요할 때만 액세서리 디바이스에 의해 호출될 수 있다. 이러한 방식으로, 액세서리 디바이스는 액세서리 디바이스 자원을 소비하지 않으면서 컴패니언 디바이스의 자원을 편리하게 이용할 수 있다.
도 5의 양방향 화살표들(550, 570)은 서버 디바이스(110)와 컴패니언 디바이스(120) 사이, 및 컴패니언 디바이스(120)와 액세서리 디바이스(130) 사이의 통신을 위한 네트워크 접속들을 나타낸다. 접속들은 유선 네트워크 접속, 또는 무선 네트워크 접속, 또는 두 유형의 접속의 조합을 포함할 수 있다.
IV. 액세서리 애플리케이션 파일 설치
도 6은 액세서리 애플리케이션을 설치하기 위한 도 1에 예시된 바와 같은 액세서리 컴퓨터 디바이스에 의해 수행되는 동작들의 흐름도이다. 도 7은 컴패니언 디바이스(120) 및 액세서리 디바이스(130)를 포함하는, 도 6 동작에 관련된 시스템들 및 구조들(700)을 예시한다.
동작(602)에서, 액세서리 디바이스는 연관된 컴패니언 디바이스(120)로부터 액세서리 디바이스 애플리케이션 파일(532)을 수신한다. 도 7에 예시되고 전술한 바와 같이, 액세서리 디바이스 애플리케이션 파일(532)은 액세서리 디바이스 스터브 애플리케이션(312) 및 원하는 방식으로 액세서리 디바이스를 동작시키기 위한 인터페이스 정의(314)를 포함한다. 위에서 언급한 바와 같이, 스터브 애플리케이션은, 예를 들어, 액세서리 디바이스의 프로세서에 의해 실행될 수 있는 스크립트를 포함하는 프로그램 코드를 포함하는 한편, 인터페이스 정의는 디스플레이 아티팩트들 및 그것들의 속성들을 정의하는 영숫자 데이터를 포함하고 액세서리 디바이스를 위한 디스플레이 스크린 또는 윈도우를 생성하기 위한 프레임워크를 포함한다. 액세서리 디바이스 애플리케이션 파일(532)은 또한, 언급한 바와 같이, 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)를 포함하고, 액세서리 디바이스 데몬(320)과 통신하는 "액세서리 애플리케이션"으로 지칭될 수 있다. 컴패니언 디바이스 확장 및 액세서리 디바이스 스터브 애플리케이션을 갖는 액세서리 디바이스 애플리케이션을 포함하는 실행 파일을 포함하는 액세서리 디바이스 애플리케이션 파일(532)은, 일단 설치되면, 인터페이스 정의(314)에 기초한 디스플레이 데이터 및 사용자 이벤트들을 수신하는 것에 관여된다.
동작(608)에서, 액세서리 디바이스(130)는 컴패니언 디바이스(120)로부터 수신된 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)를 설치한다. 설치는 액세서리 디바이스 메모리의 적절한 위치들에 이들 컴포넌트를 저장하는 것을 포함할 수 있다. 액세서리 디바이스로의 저장은 연관된 컴패니언 디바이스의 명령에 의해 개시 및 구현될 수 있거나, 또는 그것은 액세서리 디바이스에 의해 구현될 수 있으며, 이는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 알려진 바와 같다.
동작(612)에서, 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)의 설치 시, 액세서리 디바이스 스터브 애플리케이션은 자동으로 시작될 수 있다. 스터브 애플리케이션의 초기 시작의 일부로서, 설치가 완료되었음을 확인하기 위해 메시지가 액세서리 디바이스로부터 컴패니언 디바이스(120)로 송신될 수 있다. 컴패니언 디바이스는, 앞서 논의된 애플리케이션 패키지의 컴포넌트들 사이에서 공통인 애플리케이션 이름 식별자로 인해, 어느 액세서리 디바이스 애플리케이션이 설치되었는지를 알 것이다. 컴패니언 디바이스는, 결국, 액세서리 애플리케이션 설치의 확인을 서버 컴퓨터(110)에 등록할 수 있다. 박스(612)에서, 액세서리 디바이스 스터브 애플리케이션(312)이 시작되면, 그것은 인터페이스 정의를 판독한다.
위에서 언급한 바와 같이, 디바이스들(130, 120)의 각자의 데몬들(320, 322)은 다수의 애플리케이션들을 위한 통신들(즉, 라우트 메시지들)을 핸들링할 수 있다. 애플리케이션 식별자는 디바이스들 상에 설치되어 있을 수 있는 다수의 애플리케이션들 중 의도되고 적절한 애플리케이션으로 메시지들을 라우팅하기 위해 데몬들에 의해 사용된다. 예를 들어, 컴패니언 디바이스가 도 7에서 컴패니언 애플리케이션 B(702)로서 예시된 제2 애플리케이션을 포함하는 경우, 컴패니언 디바이스 데몬(322)은 애플리케이션 메시지들을 수신할 것이고, 각각의 애플리케이션 메시지들에 포함되는 애플리케이션 식별자에 따라, 컴패니언 디바이스 애플리케이션(534) 또는 컴패니언 애플리케이션 B(702)와 같은 적절한 애플리케이션으로, 애플리케이션 메시지들을 라우팅할 것이다. 이와 같이, 단독의 컴패니언 디바이스 데몬(322)은 컴패니언 디바이스(120)에 설치된 다수의 애플리케이션들에 대한 메시지들을 라우팅할 수 있다. 컴패니언 디바이스 데몬(322)은 통상적으로 OS에 포함되지만, 통상적으로, 액세서리 디바이스 애플리케이션(532)을 시작함으로써, 액세서리 디바이스가 컴패니언 디바이스와 페어링될 때까지는 인에이블되지 않는다. 유사한 동작이 액세서리 디바이스(130)에 대해 적용될 수 있다. 예를 들어, 액세서리 디바이스(130)가 도 7에서 액세서리 디바이스 애플리케이션 파일 B(710)로서 예시된 제2 애플리케이션을 포함하는 경우, 액세서리 디바이스 OS에 포함되는 액세서리 디바이스 데몬(320)은 애플리케이션 식별자를 사용하여 메시지들을 적절하게 라우팅할 것이다.
도 7의 양방향 화살표들(770)은 컴패니언 디바이스(120)와 액세서리 디바이스(130) 사이의 통신을 위한 네트워크 접속들을 나타낸다. 접속들은 유선 네트워크 접속, 또는 무선 네트워크 접속, 또는 두 유형의 접속의 조합을 포함할 수 있다. 전술한 다양한 컴포넌트들은 언급된 바와 같이, 이들 네트워크 접속을 통해 통신한다. 즉, 컴패니언 디바이스 애플리케이션(534)은 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)와 함께, 컴패니언 확장(536) 및 액세서리 애플리케이션(532)을 포함하고, 서버 디바이스(110) 및 컴패니언 디바이스(120)를 통해 설치되지만 컴패니언 애플리케이션의 실행 중에는 직접적으로 관여되지 않는다. 컴패니언 확장(536)은 컴패니언 디바이스 데몬(322)과 통신하며, 액세서리 디바이스에서 표시하기 위한 데이터를 생성하는 것 및 사용자 이벤트들에 응답하는 것에 관여된다. 컴패니언 확장(536)은 통상적으로 제3자에 의해 공급되며, 컴패니언 확장의 동작을 위해 제3자에 의해 공급된 코드를 포함한다. 컴패니언 디바이스 데몬(322)은 액세서리 디바이스 데몬(320)과 통신하고 액세서리 디바이스 애플리케이션(532)의 설치를 관리하면서, 액세서리 디바이스 데몬(320)으로부터의 요청에 따라 컴패니언 확장(536)을 시작하며, 컴패니언 확장(536)과 통신한다. 컴패니언 디바이스 데몬(322)은 통상적으로 원시(native)(설치된) 코드로서 컴패니언 디바이스(120)에 포함된다. 액세서리 디바이스 데몬(320)은 액세서리 디바이스 애플리케이션(532) 및 컴패니언 디바이스 데몬(322)과 통신하고, 통상적으로 원시(설치된) 코드로서 액세서리 디바이스(130)에 포함된다.
V. 액세서리 디바이스의 디스플레이 업데이트
도 8은 시작 디스플레이를 위한, 도 1에 예시된 바와 같은 액세서리 디바이스의 디스플레이를 업데이트하기 위한 동작들의 흐름도이다. 도 9는 시작 후, 도 1에 예시된 것과 같은 액세서리 디바이스의 디스플레이를 업데이트하기 위한 동작들의 흐름도이다. 도 10은 도 8 및 도 9에 예시된 동작들을 수행하는 디바이스들을 예시하는 블록도이다.
컴패니언 디바이스 애플리케이션(534)(도 10)은 컴패니언 확장(536)으로부터 정보 메시지들 및 통지들을 수신할 수 있다. 수신된 메시지들 및 통지들의 일부는 액세서리 디바이스에 대해 의도될 수 있다. 수신된 메시지들 및 통지들은 시스템 경보, 경고, 확인 응답, 및 다른 시스템-생성 메시지들을 포함할 수 있다. 수신된 메시지들 및 통지들은 컴패니언 디바이스 애플리케이션(534)의 프로그래밍에 의해 결정된 바와 같이, 액세서리 디바이스에서의 표시를 위해 또는 컴패니언 디바이스에서의 표시를 위해, 또는 둘 모두를 위해, 컴패니언 확장에 의해 준비될 수 있다.
컴패니언 확장(536)은, 컴패니언 디바이스(120)에 의해 실행될 때, 액세서리 디바이스(130)에서의 표시를 위한 디스플레이 값들을 결정하는 프로그래밍 코드를 포함한다. 컴패니언 확장(536)은 컴패니언 디바이스에 저장되는 프레임워크 데이터에 따라 디스플레이 값들을 결정하며, 확장은 컴패니언 디바이스의 운영 체제를 통해 자동으로 이에 액세스한다. 프레임워크 데이터는 애플리케이션 파일의 개발자에 의해 공급될 수 있거나, 서버 또는 기타 정보 소스에 의해 공급될 수 있거나, 컴패니언 디바이스의 운영 체제와 함께 포함되는 프레임워크 요소들을 포함할 수 있거나, 또는 그러한 소스들로부터의 컴포넌트들의 조합을 포함할 수 있다. 확장에 의해 액세스되는 애플리케이션 프레임워크 데이터는 예를 들어, 디스플레이 버튼, 윈도우, 텍스트 박스, 배경, 바탕화면 등과 같은 디스플레이 아티팩트들을 정의한다.
컴패니언 디바이스 데몬(538)은, 컴패니언 디바이스(130)의 프로세서에 의해 실행될 때, 컴패니언 디바이스 애플리케이션과 액세서리 디바이스 애플리케이션 사이의 통신을 위한 인터페이스를 제공하는 프로그래밍 코드를 포함한다. 즉, 컴패니언 디바이스 데몬은 액세서리 디바이스 데몬으로부터 메시지들을 수신하고, 수신된 메시지들을 컴패니언 디바이스의 적절한 컴포넌트들에 전달하고, 또한 컴패니언 디바이스의 컴포넌트들로부터 액세서리 디바이스에 대해 의도된 데이터를 수신하고, 액세서리 디바이스(130)에 송신하기 위한 데이터를 포함하는 대응하는 메시지들을 준비한다.
동작(802)에서, 설치된 액세서리 애플리케이션은, 액세서리 디바이스 애플리케이션 파일의 초기 설치 시 액세서리 디바이스에 의해 또는 사용자에 의해 시작되었다. 보다 상세하게는, 액세서리 애플리케이션은, 액세서리 디바이스에서 액세서리 디바이스 애플리케이션 파일의 설치가 완료되고, 섹션 IV에서 앞서 논의한 바와 같이, 액세서리 디바이스 스터브 애플리케이션(312) 및 인터페이스 정의(314)가 설치되고 동작할 준비가 된 후에, 자동으로 시작된다.
앞서 논의한 바와 같이, 액세서리 디바이스 애플리케이션 시작은 액세서리 디바이스 스터브 애플리케이션(312)의 실행을 포함하여, 디스플레이 아티팩트들의 프레임워크 및 연관된 애플리케이션 데이터가 필요에 따라 액세서리 디바이스에서 액세스되도록 한다. 액세서리 디바이스 인터페이스 정의(314) 또한 액세스될 수 있다. 박스(804)에서, 액세서리 디바이스 애플리케이션(312)과 액세서리 디바이스 데몬(320) 사이에 통신이 구축된다. 이와 같이, 액세서리 애플리케이션을 시작하는 것은, 액세서리 디바이스 스터브 애플리케이션(312)을 실행하고 연관된 프레임워크 및 인터페이스 정의(314)에 액세스한다. 액세서리 디바이스 스터브 애플리케이션은 또한 코드 체크 및 인가 작업들을 수행할 수 있다. 즉, 액세서리 디바이스 스터브 애플리케이션은 파일 내의 코드 정보를 검사함으로써 수신된 애플리케이션 파일을 검증할 수 있고, 그러한 정보는 해싱(hashing)되고, 서명되고, 검증될 수 있다. 이러한 방식으로, 애플리케이션 파일 및 연관된 정보는 액세서리 디바이스 애플리케이션의 각각의 시작에서 검증될 수 있다.
박스(806)에서, 액세서리 디바이스 스터브 애플리케이션(312)을 시작하는 것은 액세서리 디바이스 데몬(320)이 컴패니언 디바이스 데몬(538)과의 통신을 구축하게 한다. 액세서리 디바이스 데몬은 전술한 액세서리 애플리케이션 식별자를 컴패니언 데몬에 제공함으로써, 데이터 값들 및 액세서리 디바이스로부터의 다른 통신들이 컴패니언 데몬에 의해 적절한 컴패니언 애플리케이션으로 보내질 것을 보장할 것이다. 액세서리 디바이스 데몬(320)은 또한 디스플레이 값들, 및 컴패니언 디바이스가 액세서리 디바이스 디스플레이를 위한 디스플레이 값들을 결정하는 데 필요한 다른 정보를 컴패니언 디바이스(120)에 제공할 것이다.
박스(810)의 동작에서, 컴패니언 디바이스 데몬(538)은 컴패니언 확장(536)이, 액세서리 디바이스(130)와의 통신의 구축에 응답하여 시작되게 한다. 이것은 액세서리 디바이스에서의 초기 디스플레이를 위한 디스플레이 값들을 결정하기 위해 컴패니언 디바이스에서의 처리를 시작한다.
동작(814)에서, 초기 디스플레이 값들이 결정된다. 컴패니언 디바이스 애플리케이션(534) 및 컴패니언 확장(536)은 컴패니언 디바이스(120)의 자원을 이용하여, 컴패니언 데몬(538)을 통해 액세서리 디바이스로부터 수신된 정보, 및 컴패니언 운영 체제 및/또는 액세서리 디바이스 패키지의 설치의 일부로서 컴패니언 디바이스에 저장된 프레임워크 데이터에 기초하여, 초기 디스플레이 값들을 결정할 수 있다.
박스(818)에서, 결정된 초기 디스플레이 값들은 컴패니언 디바이스(120)로부터 액세서리 디바이스(130)로 송신된다. 보다 상세하게는, 컴패니언 애플리케이션(534) 및 컴패니언 확장(536)은 디스플레이 값들을 결정하고, 이어서 디스플레이 값들을 컴패니언 디바이스 데몬으로 전달한다. 초기 디스플레이 값들은 컴패니언 데몬으로부터 액세서리 디바이스 데몬으로 송신된다.
박스(822)에서, 액세서리 디바이스 데몬(320)은 초기 디스플레이 값들을 수신하고, 대응하는 디스플레이 스크린이 인터페이스 정의(314)에 따라 액세서리 디바이스(130)에서 생성되게 한다. 액세서리 디바이스는 수신된 값들을, 적절한 디스플레이를 생성하기 위해 액세서리 디스플레이 인터페이스(1010)에 적합한 디스플레이 메시지로 포맷할 수 있다. 초기 디스플레이 값들은 액세서리 디바이스 스터브 애플리케이션(312)에 의해, 인터페이스 정의(314)의 디스플레이 사양에 따라, 액세서리 디바이스 디스플레이 상에 보여주기 위한 디스플레이 아티팩트들을 생성하는 데 사용된다. 예를 들어, 액세서리 디바이스 디스플레이의 애플리케이션 스크린 또는 윈도우는 그룹화되거나 또는 그룹화되지 않을 수 있는 다양한 디스플레이 요소들을 포함할 수 있으며, 이것들은 버튼, 텍스트 박스, 윈도우, 링크 등을 포함할 수 있다. 이러한 디스플레이 요소들은 고정된 아티팩트들이거나, 애플리케이션의 실행 중에 즉석으로 변경 또는 조정되는 요소들일 수 있다. 인터페이스 정의는 예를 들어, 디스플레이 버튼들 및 그것들의 제목들, 위치들, 크기, 색상, 및 수를 특정할 수 있다. 컴패니언 애플리케이션 및/또는 확장은, 액세서리 디바이스로부터 수신된 정보에 따라 그리고 액세서리 애플리케이션 식별자에 따라, 이러한 속성들을 변경하는 것을 담당할 수 있다. 이와 같이, 컴패니언 디바이스 애플리케이션 및/또는 확장은 초기 디스플레이 값들을 생성하고 그것들을 액세서리 디바이스에 제공할 수 있다. 액세서리 디바이스의 인터페이스 정의는 업데이트된 값들이 스터브 애플리케이션 및 인터페이스 정의 데이터, 및 액세서리 애플리케이션 식별자에 따라 적절하게 표시될 것을 보장한다.
액세서리 디바이스(130)의 정상 동작 동안에, 초기 시작 후, 컴패니언 디바이스(120)는 통지들 및 메시지들을 계속해서 수신하고, 액세서리 디바이스를 위한 디스플레이 값들을 결정하는 것을 계속한다. 도 8에 대해 전술한 바와 같은 초기 시작 동안, 컴패니언 디바이스는 컴패니언 디바이스 운영 체제에 의해 개시된 통지들 및 메시지들에 응답할 수 있다. 초기 시작 후, 컴패니언 디바이스는 업데이트된 디스플레이 값들을 수신된 통지들 및 메시지들에 응답하여 생성할 수 있으며, 이것들은 액세서리 디바이스에서의 사용자 상호작용에 응답하여 생성되어 컴패니언 디바이스로 전달될 수 있거나, 또는 시스템-생성 또는 디바이스-생성 메시지들에 응답하여 생성될 수 있다. 이러한 업데이트된 디스플레이 값들은 액세서리 디바이스에서의 디스플레이 변화들을 초래할 수 있다. 이러한 시작-후(after-launch) 디스플레이 변화들의 핸들링은 도 9에 예시된다.
박스(902)의 동작에서, 사용자 상호작용 또는 업데이트 통지 또는 메시지로 인한, 액세서리 디바이스(130)에서의 디스플레이 변화는, 액세서리 디바이스에서 액세서리 디바이스 스터브 애플리케이션(312)에 의해 검출된다. 디스플레이 변화는 액세서리 디바이스의 디스플레이와의 사용자 상호작용에 응답하여 디스플레이 인터페이스(1010)로부터의 변화된 디스플레이 값들 또는 속성들을 포함할 수 있거나, 또는 센서 값에서의 활성화 또는 변화, 또는 액세서리 디바이스에서의 디스플레이 값들이 변화되게 하는 일부 다른 상황을 포함할 수 있다.
박스(906)에서, 액세서리 디바이스 스터브 애플리케이션(312)은 인터페이스 정의 및 액세서리 애플리케이션에 따라, 디스플레이 변화에 응답하여 디스플레이 메시지를 생성한다. 액세서리 디바이스 스터브 애플리케이션(312)은 또한 전술한 바와 같이, 액세서리 애플리케이션 식별자를 결정할 수 있다. 보다 상세하게는, 액세서리 디바이스 스터브 애플리케이션(312)이 시작될 때, 디스플레이 아티팩트들의 프레임워크 및 연관된 애플리케이션 데이터는 스터브 애플리케이션에 의해 액세스된다. 액세서리 디바이스 스터브 애플리케이션에 의해 액세스된 정보는 스터브 애플리케이션이 적절한 디스플레이 데이터를 생성할 수 있게 하고, 이것은 액세서리 디바이스 데몬(320)에 제공된다.
동작(910)에서, 액세서리 디바이스 데몬(320)에서 수신된 생성된 데이터는, 애플리케이션 식별자와 함께 데이터 메시지로 패키징되고, 액세서리 디바이스 데몬으로부터 컴패니언 디바이스 데몬(322)으로 송신된다.
동작(914)에서, 데이터 메시지는 컴패니언 디바이스 데몬(322)에서 수신되고, 애플리케이션 식별자에 따라, 컴패니언 데몬에 의해 컴패니언 디바이스 애플리케이션(534) 및 컴패니언 확장(536)에 제공된다. 컴패니언 애플리케이션 및 컴패니언 확장은 수신된 데이터 메시지에 응답하여, 업데이트된 디스플레이 값들을 결정한다. 업데이트된 디스플레이 값들은 네트워크를 통한 액세서리 디바이스로의 전송을 위해 컴패니언 데몬에 제공된다.
박스(918)에서, 업데이트된 디스플레이 값들은 컴패니언 디바이스 데몬(322)에 의해 액세서리 디바이스 데몬(320)으로 송신된다. 컴패니언 디바이스 데몬은 인입 데이터 메시지 내의 수신된 애플리케이션 식별자로 인해 목적지 액세서리 디바이스 데몬을 안다.
박스(922)에서, 액세서리 디바이스 데몬(320)은 업데이트된 디스플레이 값들을 컴패니언 데몬(322)으로부터 수신한다. 업데이트된 디스플레이 값들은 액세서리 디바이스 인터페이스 정의에 전달될 수 있고, 디스플레이 인터페이스(1010)에 의해 표시하기 위한 데이터가 그에 따라 생성된다. 데이터는 액세서리 디바이스(130)에 설치되는 액세서리 애플리케이션(132)의 개발자에 의해 결정된 처리에 따라 생성된다. 앞서 언급한 바와 같이, 액세서리 애플리케이션(132)은 액세서리 디바이스 스터브 애플리케이션(312) 및 액세서리 디바이스 인터페이스 정의(314)를 포함한다. 디스플레이 데이터는 예를 들어, 버튼 누르기와 같은 액세서리 디스플레이와의 사용자 상호작용으로부터 발생하거나, 경보와 같은 시스템 통지 또는 메시지로부터 발생하는 변화를 정의할 수 있다. 액세서리 디바이스 데몬은 디스플레이 메시지를 처리하는 데 있어서 액세서리 애플리케이션의 애플리케이션 식별자를 이용한다.
보다 상세하게는, 업데이트된 디스플레이 값들은 액세서리 디바이스 스터브 애플리케이션에 의해, 인터페이스 정의와 함께, 인터페이스 정의의 디스플레이 사양에 따라, 액세서리 디바이스 디스플레이 상에 보여주기 위한 디스플레이 아티팩트들을 생성하는 데 사용된다. 예를 들어, 액세서리 디바이스 디스플레이의 애플리케이션 스크린 또는 윈도우는 그룹화되거나 또는 그룹화되지 않을 수 있는 다양한 디스플레이 요소들을 포함할 수 있으며, 이는 버튼, 텍스트 박스, 윈도우, 링크 등을 포함할 수 있다. 이러한 디스플레이 요소들은 고정된 아티팩트들이거나, 애플리케이션의 실행 중에 즉석으로 변경 또는 조정되는 요소들일 수 있다. 인터페이스 정의는 예를 들어, 디스플레이 버튼들 및 그것들의 제목들, 위치들, 크기, 색상, 및 수를 특정할 수 있다. 컴패니언 애플리케이션 및/또는 확장은, 액세서리 디바이스로부터 수신된 정보에 따라 그리고 액세서리 애플리케이션 식별자에 따라, 이러한 속성들을 변경하는 것을 담당할 수 있다. 이와 같이, 컴패니언 디바이스 애플리케이션 및/또는 확장은 업데이트된 디스플레이 값들을 생성하고 그것들을 액세서리 디바이스에 제공할 수 있다. 액세서리 디바이스의 인터페이스 정의는 업데이트된 값들이 스터브 및 인터페이스 정의 데이터, 및 액세서리 애플리케이션 식별자에 따라 적절하게 표시될 것을 보장한다.
따라서, 업데이트된 디스플레이 값들은 액세서리 디바이스 데몬 및 컴패니언 디바이스 데몬을 통해 컴패니언 디바이스에 전달된 데이터에 따라 컴패니언 디바이스에서 계산된다. 계산된 업데이트된 디스플레이 값들은 컴패니언 데몬으로부터 액세서리 디바이스 데몬으로 다시 전달되며, 여기서 디스플레이 변화들은 디스플레이 인터페이스(1010)에 의해 적절한 디스플레이를 생성하는 데 사용된다. 이러한 방식으로, 액세서리 디바이스는 컴패니언 디바이스의 자원을 편리하게 이용하여 그것의 디스플레이를 업데이트할 수 있다.
VI. 커스텀 사용자 인터페이스를 이용한 액세서리 디바이스에서의 통지
도 11은 액세서리 디바이스(130)에 대해 의도된 통지(1101)를 수신하는 컴패니언 디바이스(120)를 예시하는 도 1 시스템(100)의 블록도이다. 컴패니언 디바이스(120)는 때때로, 액세서리 애플리케이션이 실행(구동)되고 있든지 아니든지, 액세서리 디바이스(130)에 설치된 애플리케이션(132)에 대해 의도되는 통지들(또한 게시(bulletin)들로 지칭됨)을 수신할 수 있다. 통지들 중 일부는 커스텀 사용자 인터페이스 외양을 제공할 수 있는 액세서리 애플리케이션들의 부류에 대해 의도될 수 있다. 이러한 통지들은 하기 설명에 따라 처리된다.
통지(1101)는 통지의 소스(서버 디바이스(110)로 표현됨)와 컴패니언 디바이스(120) 사이의 통신을 위한 네트워크 접속들을 통해 송신될 수 있다. 통지가 의도되는 액세서리 애플리케이션을 식별하기 위해, 통지(1101)로부터의 통지 식별자(1150) 및 애플리케이션 식별자(1155)를 포함하는 통지 정보가 검색된다. 통지 ID(1150) 및 애플리케이션 ID(1155)는 적절한 액세서리 디바이스 애플리케이션으로 보내진다. 액세서리 디바이스(130)는 통지에 대한 사용자 인터페이스 및 디스플레이 속성들을 결정하고, 액세서리 디바이스에서의 통지의 표시에 대한 필요에 따라, 컴패니언 디바이스로부터의 외부(동적) 사용자 인터페이스 및 디스플레이 속성들에 대한 요청(1160)을 송신한다. 컴패니언 디바이스로부터 다시 수신된 콘텐츠(1170)는 통지 ID(1150) 및 애플리케이션 ID(1155)와 조합되고, 통지 디스플레이가 액세서리 디바이스(130)에서 생성된다.
도 12a 및 12b는 도 1에 예시된 디바이스들에서와 같은, 커스텀 사용자 인터페이스를 갖는 액세서리 디바이스에서 표시하도록 의도된, 컴패니언 디바이스에서 수신된 통지들을 처리하기 위한 동작들의 흐름도를 포함한다. 특정 동작들은 컴패니언 디바이스에 의해 수행되고 특정 동작들은 액세서리 디바이스에 의해 수행된다. 각각의 디바이스에 의한 동작들은 달라질 수 있다.
박스(1202)에서, 컴패니언 디바이스에서 통지가 수신된다. 통지는 무선 네트워크 접속을 통해 컴패니언 디바이스와 통신하는 연관된 액세서리 디바이스 상에 표시하도록 의도된다. 액세서리 애플리케이션은 통지가 컴패니언 디바이스에서 수신될 때 실행될 수 있거나 실행되지 않을 수도 있다. 처리 후에, 통지는 액세서리 애플리케이션의 개발자에 의해 특정되는 통지 인터페이스에 따라 액세서리 디바이스 상에 표시되며, 이는 이하에서 더 설명된다. 통지는 적절한 분배를 위해 컴패니언 디바이스의 메시지 핸들링 데몬(message handling daemon)에서 수신된다.
박스(1204)의 동작에서, 통지는 메시지 데몬으로부터, 컴패니언 디바이스의 게시판 애플리케이션(Bulletin Board application)("BB 애플리케이션")과 같은 통지 처리 애플리케이션으로 송신된다. BB 애플리케이션은 통지를 처리하여, 그것이 적절하게 검사되고 그것의 콘텐츠가 핸들링을 위해 적절하게 보내지는 것을 보장한다. 통지는 특정 통지의 통지 식별자(예를 들어, 고유 ID일 수 있음)를 포함하는 데이터 필드, 및 통지에 대한 컨텍스트 데이터를 포함하는 데이터 필드를 포함하는 다수의 데이터 필드들을 포함한다. 컨텍스트 데이터는 이하에서 더 설명되는 바와 같이, 추후 검색을 위해 그리고 통지의 분배를 지시하기 위해 컴패니언 디바이스의 메모리에 저장된다. 이와 같이, 컴패니언 디바이스의 메시지 핸들링 데몬에서 통지를 수신한 후 - 통지는 액세서리 디바이스의 액세서리 애플리케이션에 대해 의도됨 -, 데몬은 수신된 통지를 컴패니언 디바이스 BB 애플리케이션으로 보내고, 이것은 통지의 통지 ID를 결정한다. BB 애플리케이션은 액세서리 디바이스에 대해 의도된 통지들을 수신하도록 구성된 임의의 애플리케이션일 수 있다. 일 실시예에서, BB 애플리케이션은 또한 컴패니언 디바이스에 대해 의도되는 통지들을 수신할 수 있다.
박스(1206)에서, 컴패니언 애플리케이션 데몬은 BB 애플리케이션으로부터 수신된 통지 게시의 통지를 얻는다. 컴패니언 애플리케이션 데몬은 이하에서 더 설명되는 바와 같이, 요청 시 외부 처리를 수행한다. 따라서, 컴패니언 애플리케이션 데몬은, 통지 처리의 이 단계에서, 컴패니언 애플리케이션 데몬이 동작을 취할 필요가 없더라도, 수신된 통지를 통지받는다.
박스(1208)에서의 동작에서, BB 애플리케이션은 어느 액세서리 애플리케이션이 처리를 위한 통지를 얻는지를 결정한다. BB 애플리케이션은 액세서리 디바이스의 애플리케이션에 대한 액세서리 애플리케이션 식별자(App ID)를 사용하여 애플리케이션을 결정할 수 있다. App ID는 통지의 데이터 필드에 포함되고, BB 애플리케이션에 의해 검색된다. 즉, BB 애플리케이션은 이하에서 더 설명되는 바와 같이, 통지 내의 App ID 데이터뿐만 아니라 다른 데이터를 인식하도록 구성된다. BB 애플리케이션은 이러한 종류의 ID 결정 처리를 위한 그 자신의 데몬을 가질 수 있다. 따라서, App ID는 통지가 의도되는 액세서리 애플리케이션을 결정한다. App ID는, 요청에 따라, 컴패니언 디바이스 및 액세서리 디바이스의 다른 처리 컴포넌트들로의 전달을 위해, BB 애플리케이션에 의해 컴패니언 디바이스에 저장된다. 예를 들어, 액세서리 디바이스는 App ID를 이용하여, 통지가 의도되는 애플리케이션이 커스텀 사용자 인터페이스 디스플레이를 갖는 제3자 애플리케이션인지, 또는 미리결정된 사용자 인터페이스 구성을 갖는 시스템 애플리케이션인지를 결정한다. 시스템 애플리케이션은 예를 들어, 메일 애플리케이션 또는 텍스트 메시징 애플리케이션을 포함할 수 있다. 제3자 애플리케이션은 예를 들어, 온라인 경매 서비스 또는 소셜 메시징 플랫폼과 연관된 애플리케이션을 포함할 수 있다. 통지의 App ID는 동일한 액세서리 애플리케이션에 대해 의도된 모든 통지들에 대한 동일한 ID 값을 가지며, 따라서 컴패니언 디바이스에 의해 쉽게 인식되고, 액세서리 디바이스로 전달된다.
박스(1210)에서, 액세서리 디바이스 상의 포워딩 애플리케이션은 통지의 통지 ID 및 액세서리 애플리케이션 식별자를 제공받는다. 이러한 식별 데이터는 액세서리 디바이스의 포워딩 애플리케이션에 의해 컴패니언 디바이스의 BB 애플리케이션으로부터 수신된다. 본 명세서에서 캐러셀 애플리케이션(carousel application)으로도 지칭되는 포워딩 애플리케이션은, 홈 스크린을 관리하고, 애플리케이션을 시작하며, 그리고/또는 다른 서비스들을 관리하는 애플리케이션일 수 있다. 포워딩 애플리케이션은 결정된 액세서리 애플리케이션 식별자에 따라, 액세서리 디바이스 상에서 실행되는 통지 디스플레이 애플리케이션을 결정하여, 결정된 통지 디스플레이 애플리케이션이 복수의 액세서리 애플리케이션 중 임의의 하나에 대해 의도된 통지들을 처리하도록 구성되도록 한다. 통지 디스플레이 애플리케이션은 본 명세서에서 게시 팩토리 애플리케이션(bulletin factory application)으로 지칭된다. 캐러셀 애플리케이션은, 통지 핸들링에 적합한 것으로 그것이 결정한 게시 팩토리 애플리케이션에 통지 정보를 포워드한다. 결정된 게시 팩토리 애플리케이션은, 복수의 액세서리 애플리케이션 중 단일의 지시된 액세서리 애플리케이션에 따라, 액세서리 디바이스에서 수신된 통지의 디스플레이를 생성하기 위한 사용자 인터페이스 및 디스플레이 속성들을 결정한다. 이와 같이, 캐러셀 애플리케이션은 통지의 추가 처리를 위한 적절한 게시 팩토리 애플리케이션을 결정하고, 그 애플리케이션에 통지 정보를 제공한다. 일부 구현들에서, 포워딩 애플리케이션은 미국 캘리포니아 주 쿠퍼티노 소재의 애플사(Apple Inc.)에서 입수가능한 "iOS" 운영 체제에서의 "스프링보드(Springboard)" 애플리케이션과 유사할 수 있다. 포워딩 애플리케이션의 동작들과 같은 동작들을 수행할 수 있는 애플리케이션의 다른 예는 미국 캘리포니아 주 쿠퍼티노 소재의 애플사로부터 "매킨토시" 운영 체제와 함께 입수가능한 "론치패드(Launchpad)" 애플리케이션과 같은 애플리케이션을 포함할 수 있다. 동작 처리들은 도 12b에 예시된 동작들로 계속된다.
도 12b의 박스(1222)에서, 게시 팩토리 애플리케이션은 수신된 통지에 대한 커스텀 통지 특징들의 표시를 위해 통지 인터페이스를 로딩한다. 통지 인터페이스는 액세서리 디바이스 상에 표시될 때 통지의 외양을 특정하는 인터페이스 데이터를, 통지의 고유 식별 데이터 및 컨텍스트 데이터에 따라 특정한다. 인터페이스 데이터의 일부는 액세서리 디바이스의 외부에 있을 수 있어서 검색될 필요가 있을 것이며, 따라서 컴패니언 애플리케이션은 검색된 인터페이스 데이터를 결정된 게시 팩토리 애플리케이션에 의한 처리를 위해 액세서리 디바이스에 제공한다.
따라서, 컴패니언 디바이스에서의 수신된 통지를 처리하는 동작은 결과적으로, 액세서리 디바이스의 게시 팩토리 애플리케이션이, 적절한 대응하는 액세서리 디바이스 애플리케이션(또한 위에서 액세서리 디바이스 "스터브" 애플리케이션으로 지칭됨) 및 대응하는 액세서리 디바이스 애플리케이션 데몬과의 통신을 개시하기 위해 게시 팩토리 애플리케이션에 의해 사용되는 통지 인터페이스 선호 리스트를 생성하게 한다. 액세서리 디바이스 애플리케이션 데몬은 통지 ID에 관하여 게시 팩토리 애플리케이션과 통신한다.
통지의 표시를 위한 모든 특정 정보를 얻도록 컴패니언 디바이스와 접촉할 수 있기 위해, 컴패니언 애플리케이션 데몬은 컴패니언 애플리케이션 확장과 통신할 것이며, 이것은 액세서리 디바이스에서 통지를 표시하기 위해 외부 소스들로부터 필요한 임의의 정보를 검색하기 위하여 컨텍스트 데이터를 검사한다. 이어서 검색된 정보는 액세서리 디바이스 애플리케이션에 제공될 수 있고, 이것은 이어서 게시 팩토리 애플리케이션과 통신한다. 이러한 방식으로, 액세서리 디바이스 애플리케이션은 액세서리 디바이스에서의 통지 표시를 위한 템플릿들을 제공할 수 있으며, 템플릿들은 이어서 게시 팩토리 애플리케이션으로 원하는 통지 디스플레이를 생성하는 데 사용될 수 있다.
박스(1224)의 동작에서, 액세서리 애플리케이션은 액세서리 디바이스에서 통지의 디스플레이를 생성하기 위한 사용자 인터페이스 및 디스플레이 속성들을 결정한다. 액세서리 애플리케이션은 결정된 사용자 인터페이스 및 디스플레이 속성들을 액세서리 애플리케이션 데몬에 제공한다.
박스(1226)에서, 액세서리 애플리케이션 데몬은 통지 ID 및 컨텍스트 데이터에 따라, 컴패니언 애플리케이션 데몬으로부터 콘텐츠를 요청한다. 컨텍스트 데이터는 비교적 많은 양의 데이터를 포함할 수 있고, 따라서 컴패니언 애플리케이션은 통상적으로 컨텍스트 데이터의 전체 세부 사항을 액세서리 디바이스에 제공하지 않으며, 이는 긴 네트워크 통신을 수반할 것이다. 대신에, 컴패니언 애플리케이션은, 액세서리 디바이스가 그것이 통지를 표시하는 데 필요한 외부 정보의 범위를 결정하기에 충분한, 감소된 양의 컨텍스트 데이터를 제공한다. 예를 들어, 감소된 컨텍스트 데이터를 포함하는 콘텐츠에 대한 요청은 이하에서 더 설명되는 바와 같이, 각 애플리케이션에 대해 액세서리 디바이스에 저장된 통지 인터페이스 선호 리스트(p-list)에 따라 액세서리 애플리케이션에 의해 결정될 수 있다.
보다 상세하게는, 통지는 웹 사이트 또는 제3자 애플리케이션 개발자와 같은 외부 소스로부터 검색될, 이미지 또는 디스플레이 범례(legend) 등과 같은 외부 컴포넌트들을 요구할 수 있다. 액세서리 디바이스는 자체적으로 그러한 외부 데이터를 획득하기에 불충분한 자원을 갖지만, 대신에 그것은 그러한 외부 컴포넌트들을 컴패니언 디바이스로부터 요청할 것이다. 이와 같이, 컴패니언 애플리케이션은 컨텍스트 데이터로부터의 감소된 양의 정보를 액세서리 디바이스에 제공하도록 구성되며, 이것은 액세서리 디바이스가 컴패니언 디바이스로부터 외부 컴포넌트들을 요청할 것인지 여부를 결정하기에 충분한 양이다. 이와 같이, 액세서리 애플리케이션은 그것이 수신하는 감소된 양의 컨텍스트 데이터를 사용하여, 컴패니언 애플리케이션 데몬으로부터 필요한 데이터를 요청할 수 있다. 컴패니언 애플리케이션은, 액세서리 디바이스 요청으로부터, 외부 컴포넌트들을 어디서 획득할지를 인식하도록 구성된다.
박스(1228)에서, 통지의 표시에 필요한 콘텐츠에 대한 액세서리 애플리케이션으로부터의 요청에 응답하여, 컴패니언 애플리케이션은 요청된 외부 컴포넌트들을 획득하였고, 요청된 외부 데이터 컴포넌트들을 액세서리 애플리케이션 데몬에 송신한다. 컴패니언 애플리케이션은 네트워크 저장소 위치들 또는 웹 사이트들에 저장된 데이터와 같이, 네트워크 소스들로부터 요청된 콘텐츠를 획득하는 것이 필요할 수 있다. 대안적으로, 요청된 외부 컴포넌트들은 컴패니언 디바이스 자체에 저장되어 있을 수 있다. 컴패니언 디바이스에 설치되는 컴패니언 애플리케이션은, 네트워크 소스 및/또는 자신의 로컬 저장소로부터 그러한 콘텐츠를 획득하는 데 쓸 수 있는 충분한 자원을 갖는다.
박스(1230)에서, 액세서리 애플리케이션 데몬은 액세서리 디바이스에서 통지의 디스플레이를 생성하기 위해 액세서리 애플리케이션에 콘텐츠를 제공한다. 이러한 방식으로, 획득된 콘텐츠는, 액세서리 디바이스에서 통지 디스플레이를 적절히 제공하기 위해 액세서리 애플리케이션에 의해, 사용자 인터페이스 및 디스플레이 속성들과 조합될 수 있다. 보다 상세하게는, 게시 팩토리 애플리케이션은 액세서리 디바이스에 저장된 통지 선호 리스트로부터 데이터를 판독함으로써 기본 통지 인터페이스를 포함하는 디스플레이 템플릿을 결정할 수 있다. 게시 팩토리는 액세서리 애플리케이션 데몬과 통신하며, 이것은 이어서 통지 ID 및 컨텍스트 데이터를 기초로 하여, 임의의 필요한 콘텐츠 또는 외부 디스플레이 컴포넌트들을 획득하기 위해 컴패니언 디바이스 애플리케이션 데몬과 접촉한다. 게시 팩토리 애플리케이션이 콘텐츠 및/또는 외부 디스플레이 컴포넌트들을 수신했으면, 그것은 콘텐츠 및/또는 외부 디스플레이 컴포넌트들을 통지 디스플레이 템플릿과 조합하고, 액세서리 디바이스를 위한 통지 디스플레이를 생성한다.
A. 카테고리
수신된 통지(도 12a의 박스(1204) 참조)는 적어도 하나의 카테고리를 포함할 수 있다. 즉, 결정된 게시 팩토리 애플리케이션으로 송신되는 통지는, 결정된 게시 팩토리 애플리케이션이, 검색된 인터페이스 데이터 및 결정된 사용자 인터페이스 및 디스플레이 속성들뿐만 아니라 카테고리에 따라, 액세서리 디바이스에서 수신된 통지의 디스플레이를 생성하도록 할 수 있다. 선택적 카테고리들에 관련된 데이터는 "카테고리" 데이터 필드의 일부로서, 통지의 컨텍스트 데이터에 저장된다. 따라서, 통지는 단일 액세서리 애플리케이션에 대해 다수의 통지 인터페이스들을 특정하는 파라미터를 제공하는 "카테고리"를 가질 수 있다. 이러한 방식으로, 다수의 통지 인터페이스들(디스플레이들)이 통지 카테고리들에 의해 조정될 수 있다. 예를 들어, 소셜 메시징 액세서리 애플리케이션의 경우, 포스트를 "좋아요(liking)" 표시하거나 다른 사용자를 "친구"로 요청하는 것과 같은 다수의 유형의 통지가 있을 수 있다. 이들 유형의 통지 각각은, 둘 모두 동일한 인터페이스 애플리케이션에 관련되지만, 상이한 인터페이스를 요구할 수 있다. 카테고리 옵션은 동일한 액세서리 애플리케이션에 대해 상이한 커스텀 사용자 인터페이스들을 특정하는 수단을 제공한다. 이러한 방식으로, 소셜 메시징 액세서리 애플리케이션은 포스트를 "좋아요" 표시하기 위한 통지 인터페이스 카테고리를 포함할 수 있고, "친구" 요청을 위한 상이한 통지 인터페이스 카테고리를 포함할 수 있다.
다수의 카테고리들은 일 실시예에서, 예를 들어, 통지에서의 가능성이 있는 각각의 상이한 카테고리에 대해, 디스플레이 속성들에 대한 상이한 인터페이스 선호 리스트들로 구현될 수 있다. 따라서, 통지 인터페이스 선호 리스트는, 인터페이스 카테고리가 특정될 수 있는 "카테고리"로 불리는 엔트리를 포함할 수 있다. 카테고리 특징의 구현은, 액세서리 애플리케이션이 다수의 카테고리들을 갖지 않는 경우를 수용하기 위해, 카테고리 데이터 필드 내에 "default"라는 이름의 적어도 하나의 카테고리를 제공함으로써 용이해질 수 있다. 보다 상세하게는, 카테고리 정보는 컴패니언 애플리케이션에 의해 액세서리 디바이스 애플리케이션 데몬에 제공될 수 있으며, 이것은 카테고리를 결정된 게시 팩토리 애플리케이션에 제공한다.
B. 커스텀 URL
통지는 액세서리 애플리케이션을 시작하고 애플리케이션에서 원하는 동작을 활성화하거나 애플리케이션의 미리결정된 위치로의 동작을 개시하는 능력을 갖는다. 예를 들어, 통지는 소셜 메시징을 위한 액세서리 애플리케이션을 시작하고 통지에서 식별된 사용자에 대해 "친구" 지정을 요청할 수 있거나, 또는 통지에서 식별된 URL 페이지에 대한 "좋아요" 응답을 요청할 수 있다. 이러한 애플리케이션의 특정 동작들은, 디스플레이 템플릿의 보다 일반적인 사양이 통지 데이터와 연계하여 통지 인터페이스 선호 리스트로 구현될 수 있는, 보다 일반적인 통지 디스플레이의 대안들이다. 예를 들어, 액세서리 애플리케이션에 대한 통지 인터페이스 선호 리스트는 통지 데이터 내의 정보에 의해 제공되는 디스플레이 범례들 또는 제목들과 함께, 디스플레이 버튼들 및 이미지들의 배열을 특정할 수 있다. 액세서리 애플리케이션에 대한 통지 인터페이스 선호 리스트는 통상적으로 액세서리 디바이스에서 애플리케이션 자체의 설치와 함께 설치된다.
애플리케이션을 시작하고 미리결정된 애플리케이션 위치로 진행하기 위한 통지를 처리하는 것과 관련하여, 본 명세서에 기술된 동작은 액세서리 애플리케이션과 연관된 URL을 특정하고 애플리케이션 또는 애플리케이션과 연관된 온라인 처리에 의해 이용될 수 있는 파라미터를 특정하는 커스텀 URL(uniform resource locator)을 이용한다. 예를 들어, 커스텀 URL은 제3자 소셜 메시징 애플리케이션 또는 온라인 경매 애플리케이션에 대한 참조를 포함할 수 있고, 또한 통지에서 식별된 사용자에 대한 "친구" 지정을 요청하는 것, 또는 통지에서 식별된 URL 페이지에 대한 "좋아요" 응답을 요청하는 것과 같은 애플리케이션 기능을 수행하기 위해 제3자 애플리케이션에 의해 소비될 수 있는 파라미터를 포함할 수 있다.
커스텀 URL 포맷의 예는 커스텀 URL이 따를 것임을 나타내는 "com" 식별자를 포함할 수 있고, 이어서 포맷은 액세서리 애플리케이션 이름의 식별자, 그 다음에 액세서리 애플리케이션에 의해 인식될 것이고 입력 파라미터에 따라 제3자 애플리케이션과의 통신을 지원할 수 있는 입력 파라미터를 포함할 수 있다. 예를 들어, 커스텀 URL은 "com.app_name://input_parameter"의 포맷일 수 있다. "app_name"은, 통상적으로 액세서리 애플리케이션과 연관된 온라인 도메인 이름의 관점에서, 액세서리 애플리케이션의 이름이다. "input_parameter"는 입력 파라미터에 따라 제3자 애플리케이션과의 통신을 지원하기 위해 액세서리 애플리케이션에서 인식될 입력 파라미터이다.
커스텀 URL 처리 특징이 액세서리 애플리케이션에 요구되는 경우, 그 액세서리 애플리케이션에 대한 선호 리스트는, 액세서리 디바이스 운영 체제가 커스텀 URL을 처리하는 능력을 나타내는 것으로서 인식할 데이터를 포함할 것이다. 액세서리 애플리케이션에 대한 선호 리스트는 액세서리 애플리케이션 자체가 디바이스 상에 설치될 때 설치된다. 액세서리 애플리케이션은, 액세서리 애플리케이션을 시작하고 원하는 미리결정된 동작 또는 액세서리 애플리케이션 위치로 진행하기 위해 커스텀 URL에 포함된 데이터를 정확하게 처리하도록 구성될 것이다. 따라서, 이 섹션에서 전술한 바와 같이, 개시된 구성은, 통지를 선택한 후에, 시작 시 커스터마이징된 데이터 페이로드를 컴패니언 확장에 제공할 수 있다.
C. 컴패니언 디바이스 및 액세서리 디바이스 내의 동작
도 13은 도 12a 및 도 12b에 예시된 동작들을 수행하는 디바이스들을 예시하는 블록도를 도시한다. 도 13에서, 유사한 컴포넌트들에 대한 도면 부호들은 전술한 도면들과 관련하여 유사한 부호들을 갖는다.
도 13은, 컴패니언 디바이스(120)가 처리를 위한 통지들을 수신하는 전술한 게시판 애플리케이션(1320)을 포함하는 것을 예시한다. 게시판 애플리케이션은 통지들을 수신하고, 전술한 바와 같이, 수신된 통지를 액세서리 디바이스(130)의 적절한 액세서리 애플리케이션으로 보낸다. 컴패니언 디바이스(120)의 다른 예시된 컴포넌트들은 컴패니언 디바이스 애플리케이션(534), 컴패니언 확장(536), 컴패니언 디바이스 데몬(538), 및 컴패니언 디바이스 애플리케이션(122)과 같은, 언급된 바와 같은, 전술한 컴포넌트들에 대응한다.
도 13은 또한 자신의 캐러셀 애플리케이션(1330)을 갖는 액세서리 디바이스(130)를 예시하며, 이는 앞서 언급한 바와 같이, 복수의 액세서리 디바이스 애플리케이션 중 임의의 하나에 대해 의도된 통지들을 처리하도록 구성되는, 적절한 게시 팩토리 애플리케이션(1332)을 결정한다. 도 13은 또한 통지의 표시를 위한 디스플레이 요소들 및 템플릿들의 적절한 조합을 보장하기 위해 사용되는 통지 인터페이스 선호 리스트(1334)를 도시하고, 또한 게시 팩토리 애플리케이션(1332)과 통신하는 액세서리 디바이스 애플리케이션 데몬(1336)을 도시한다. 도 13의 양방향 화살표들(1160)은 컴패니언 디바이스(120)와 액세서리 디바이스(130) 사이의 통신을 위한 네트워크 접속들을 나타낸다. 접속들은 유선 네트워크 접속, 또는 무선 접속, 또는 두 유형의 접속의 조합을 포함할 수 있다.
도 14는 도 12a 및 도 12b에 예시된 동작들을 수행하는 디바이스들을 예시하는 블록도이다. 컴패니언 디바이스(120)의 게시판 애플리케이션(1320)은 모든 인입 통지들을 수신한다. 게시판 애플리케이션은, 전술한 바와 같이 애플리케이션 ID 및 적절한 통지 데이터를 결정한 후에, 액세서리 애플리케이션 ID 및 통지 데이터(통지 ID를 포함함)를 컴패니언 애플리케이션 데몬(1422)에 제공한다. 통지 데이터는 컨텍스트 데이터를 포함할 수 있으며, 컨텍스트 데이터는 컴패니언 디바이스의 메모리에 저장되고 통지의 분배 및 핸들링을 지시하는 데 사용된다. 컴패니언 디바이스 애플리케이션 통지 확장(1420)은 컴패니언 애플리케이션 데몬(1422)으로부터 정보를 수신하고, 전술한 바와 같이, 액세서리 디바이스(130)와 협력하여, 핸들링을 위한 통지를 처리한다.
액세서리 디바이스(130)에서, 캐러셀 애플리케이션(1330)은 네트워크 접속(1160)을 통해 컴패니언 디바이스로부터 통지 데이터를 수신한다. 캐러셀 애플리케이션은 통지 인터페이스 선호 리스트(1334)(도 13)와 연계하여, 통지를 핸들링하기 위한 적절한 게시 팩토리 애플리케이션을 결정하고, 결정된 게시 팩토리 애플리케이션에 통지 데이터를 제공한다. 게시 팩토리 애플리케이션은 통지 인터페이스 디스플레이 정보를 포함하는 통지 정보를, 추가의 처리를 위해 액세서리 디바이스 애플리케이션(1338)에 제공한다. 게시 팩토리 애플리케이션은 액세서리 디바이스 애플리케이션의 컴포넌트로서 구현되거나, 또는 그것에 대한 서브세트로서 구현될 수 있다. 액세서리 디바이스 애플리케이션(1338)은 액세서리 디바이스 디스플레이에서 통지를 보여주기 위한 디스플레이 정보를 생성한다.
도 15는 도 14에 예시된 액세서리 디바이스(130)의 처리의 상세 사항을 예시하는 블록도이다. 캐러셀 애플리케이션(1330)은 위에서 언급한 바와 같이, 컴패니언 디바이스로부터 통지 데이터를 수신한다. 캐러셀 애플리케이션은 통지의 액세서리 애플리케이션 ID에 기초하여, 통지 데이터를 수신할 적절한 게시 팩토리 애플리케이션(1332)을 결정한다. 예를 들어, 액세서리 디바이스는 통상적으로 메일 애플리케이션에 대한 통지들을 처리하는 것과 연관된 메일 게시 팩토리를 가질 것이다. 유사하게, 대부분의 액세서리 디바이스들은 텍스트 메시징을 처리하기 위한 SMS 애플리케이션을 포함할 것이며, 액세서리 디바이스는 SMS 애플리케이션에 대한 통지들을 처리하는 것과 연관된 SMS 게시 팩토리를 포함할 것이다.
게시 팩토리 애플리케이션(1332)은 전술한 바와 같이, 커스텀 URL 처리와 같은, 처리 옵션들의 식별을 위해 액세서리 디바이스 애플리케이션(1338)에 인터페이스 선호 리스트(p-list)를 제공한다. 게시 팩토리 애플리케이션은 또한, 전술한 바와 같이, 액세서리 디바이스에서의 통지 디스플레이가 준비될 수 있는 템플릿에 대해, 액세서리 디바이스 애플리케이션에 통지 인터페이스 p-list를 제공한다. 카테고리 및 컨텍스트 정보는 또한 게시 팩토리 애플리케이션으로부터 액세서리 디바이스 애플리케이션으로 전달될 수 있다.
액세서리 디바이스 애플리케이션 데몬(1336)은 액세서리 디바이스 애플리케이션(1338)과 컴패니언 디바이스의 다양한 컴포넌트들 사이의 통신을 관리한다. 예를 들어, 애플리케이션 데몬(1336)은, 통지의 표시를 위해 컴패니언 디바이스로부터 요청되어야 하는 외부 데이터를 결정할 때 전술한 바와 같이 통지 데이터를 이용할 수 있다. 애플리케이션 데몬(1336)은 또한 컴패니언 디바이스로부터의 수신된 외부 데이터를 추가 처리를 위해 액세서리 디바이스 애플리케이션으로 전달할 수 있다.
VII. 컴퓨터 디바이스 구성
도 16은 본 발명의 실시예에 따른 컴퓨터 디바이스(1600)의 블록도이다. 컴퓨터 디바이스(1600)는 도 1에 예시된 디바이스들 중 임의의 것을 포함할 수 있지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는, 디바이스의 특성에 따라, 디바이스(1600)의 일부 컴포넌트들이 포함되지 않을 수 있음을 이해할 것이다. 예를 들어, 컴퓨터 디바이스가 데스크톱 컴퓨터 또는 액세서리 디바이스인 경우, 그것은, 데스크톱 컴퓨터의 경우 이동이 있을 것 같지 않으므로, GPS 유닛을 포함하지 않을 수 있으며, 액세서리 디바이스 상의 자원의 제한된 목록은 GPS 유닛을 포함하지 않을 것이다.
컴퓨터 디바이스(1600)는 일반적으로 컴퓨터 판독가능 매체(1602), 처리 시스템(1604), 입/출력(I/O) 서브시스템(1606), 무선 회로(1608), 및 스피커(1650)와 마이크로폰(1652)을 포함하는 오디오 회로(1610)를 포함한다. 이 컴포넌트들은 하나 이상의 통신 버스 또는 신호 라인(1613)에 의해 결합될 수 있다. 디바이스(1600)는 웨어러블 컴퓨터 디바이스, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 모바일 폰, 랩톱 컴퓨터, 태블릿 디바이스, 미디어 재생기, PDA(personal digital assistant), 전자 열쇠(key fob), 자동차 키, 액세스 카드, 다기능 디바이스, 모바일 폰, 휴대용 게임 디바이스 등을 포함하면서, 이들 품목 중 2개 이상의 조합을 포함하는, 임의의 전자 컴퓨터 디바이스일 수 있다. 예를 들어, 웨어러블 디바이스는 손목 착용 디바이스, 사용자의 의복에 클립으로 고정되거나 핀으로 고정되는 디바이스, 사용자 목 주위에 착용가능한 랜야드(lanyard) 또는 체인을 구비한 디바이스, 머리띠 디바이스, 안경, 또는 사용자의 신체 또는 의복에 고정될 수 있는 임의의 다른 디바이스를 포함할 수 있다.
도 16에 도시된 아키텍처는 컴퓨터 디바이스(1600)에 대한 아키텍처의 단지 하나의 예시일 뿐이고, 디바이스(1600)는 도시된 것보다 더 많거나 적은 컴포넌트들을 가질 수 있거나, 또는 컴포넌트들의 상이한 구성을 가질 수 있다는 것이 명백할 것이다. 도 16에 도시된 다양한 컴포넌트들은 하나 이상의 신호 처리 및/또는 주문형 집적 회로(application specific integrated circuit)를 비롯한, 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어 둘 모두의 조합으로 구현될 수 있다.
무선 회로(1608)는 무선 링크 또는 네트워크를 통해 안테나 시스템, RF 송수신기, 하나 이상의 증폭기, 튜너, 하나 이상의 발진기, 디지털 신호 프로세서, CODEC 칩셋, 메모리 등과 같은 하나 이상의 다른 디바이스의 종래 회로로 정보를 송신 및 수신하는 데 사용된다. 일부 실시예들에서, 무선 회로(1608)는, TDMA(time division multiple access), CDMA(code division multiple access), GSM(global system for mobile communications), EDGE(Enhanced Data GSM Environment), W-CDMA(wideband code division multiple access), LTE(Long Term Evolution), LTE-어드밴스드, Wi-Fi(예컨대, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g 및/또는 IEEE 802.11n), 블루투스, Wi-MAX, VoIP(voice over Internet Protocol), 근거리 통신 프로토콜(NFC), 이메일, 인스턴트 메시징, 및/또는 SMS(short message service)를 위한 프로토콜, 또는 본 문헌의 출원일 현재 아직 개발되지 않은 통신 프로토콜들을 포함한, 임의의 다른 적합한 통신 프로토콜을 포함하는 하나 이상의 통신 프로토콜을 이용하여, 다른 디바이스들과의 통신들을 구축 및 유지할 수 있다. 컴퓨터 디바이스는 통신에 요구되는 범위에 따라 여러 상이한 유형들의 무선 네트워크를 통해 통신할 수 있는 무선 회로를 포함할 수 있다. 예를 들어, 단거리 무선 송수신기(예를 들어, 블루투스), 중거리 무선 송수신기(예를 들어, WiFi), 및/또는 장거리 무선 송수신기(예를 들어, GSM/GPRS, UMTS, CDMA2000 1x/EV-DO 및 LTE/LTE-Advanced)가 통신 유형 또는 통신 범위에 따라 사용할 수 있다.
무선 회로(1608)는 주변기기 인터페이스(1616)를 통해 처리 시스템(1604)에 결합된다. 주변기기 인터페이스(1616)는 주변기기들과 처리 시스템(1604) 사이의 통신을 구축하고 유지하기 위한 종래의 컴포넌트들을 포함할 수 있다. (예를 들어, 음성 인식 또는 음성 명령 애플리케이션들에서) 무선 회로(1608)에 의해 수신된 음성 및 데이터 정보는 주변기기 인터페이스(1616)를 통해 하나 이상의 프로세서(1618)에 송신된다. 하나 이상의 프로세서(1618)는 매체(1602) 상에 저장된 하나 이상의 애플리케이션 프로그램(1634)을 위한 다양한 데이터 포맷들을 처리하도록 구성가능하다.
주변기기 인터페이스(1616)는 디바이스의 입력 및 출력 주변기기들을 프로세서(1618) 및 컴퓨터 판독가능 매체(1602)에 결합한다. 하나 이상의 프로세서(1618)는 제어기(1620)를 통해 컴퓨터 판독가능 매체(1602)와 통신한다. 컴퓨터 판독가능 매체(1602)는 하나 이상의 프로세서(1618)에 의한 사용을 위해 코드 및/또는 데이터를 저장할 수 있는 임의의 디바이스 또는 매체일 수 있다. 매체(1602)는 캐시, 메인 메모리 및 2차 메모리를 포함하는 메모리 계층을 포함할 수 있다. 메모리 계층은 RAM(예를 들어, SRAM, DRAM, DDRAM), ROM, FLASH, 자기 및/또는 광학 저장 디바이스, 예컨대 디스크 드라이브, 자기 테이프, CD(compact disc) 및 DVD(digital video disc)의 임의의 조합을 이용하여 구현될 수 있다. 일부 실시예들에서, 주변기기 인터페이스(1616), 하나 이상의 프로세서(1618), 및 메모리 제어기(1620)는 처리 시스템(1604)과 같은 단일 칩 상에서 구현될 수 있다. 일부 다른 실시예들에서, 이들은 별개의 칩들 상에서 구현될 수 있다.
컴퓨터 디바이스(1600)는 또한 다양한 하드웨어 컴포넌트들에 전력을 공급하기 위한 전력 시스템(1642)을 포함한다. 전력 시스템(1642)은 전력 관리 시스템, 하나 이상의 전원(예컨대, 배터리, 교류 전류(alternating current; AC)), 재충전 시스템, 전력 고장 검출 회로, 전력 변환기 또는 인버터, 전력 상태 표시기(예컨대, 발광 다이오드(LED)), 및 모바일 디바이스들 내에서의 전력의 생성, 관리 및 분배와 통상적으로 연관된 임의의 다른 컴포넌트들을 포함할 수 있다.
일부 실시예들에서, 컴퓨터 디바이스(1600)는 카메라(1644)를 포함한다. 일부 실시예들에서, 컴퓨터 디바이스(1600)는 센서들(1646)을 포함한다. 센서들은 가속도계, 나침반, 자이로미터, 압력 센서, 오디오 센서, 광 센서, 기압계 등을 포함할 수 있다. 센서들(1646)은 위치의 청각적 또는 광 시그니처들과 같은, 위치 양태들을 감지하는데 사용될 수 있다.
일부 실시예들에서, 컴퓨터 디바이스(1600)는, 때때로 GPS 유닛(1648)으로 지칭되는 GPS 수신기를 포함할 수 있다. 컴퓨터 디바이스는 위치 정보, 타이밍 정보, 고도, 또는 다른 내비게이션 정보를 획득하기 위해, GPS(Global Positioning System)와 같은 위성 내비게이션 시스템을 사용할 수 있다. 동작 동안, GPS 유닛은 지구 궤도를 도는 GPS 위성들로부터 신호들을 수신할 수 있다. GPS 유닛은 신호들을 분석하여 주행 시간 및 거리를 추정한다. GPS 유닛은 디바이스의 현재 위치(현재 장소)를 결정할 수 있다. 이들 추정에 기초하여, 디바이스는 위치 픽스(location fix), 고도 및/또는 현재 속도를 결정할 수 있다. 위치 픽스는 위도 및 경도 정보와 같은 지리적 좌표일 수 있다.
하나 이상의 프로세서(1618)는 디바이스(1600)를 위한 다양한 기능들을 수행하기 위해 매체(1602)에 저장된 다양한 소프트웨어 컴포넌트들을 실행한다. 일부 실시예들에서, 소프트웨어 컴포넌트들은 운영 체제(1622), 통신 모듈(또는 명령어들의 세트)(1624), 위치 모듈(또는 명령어들의 세트)(1626), 재생 앱(1628), 및 내비게이션 앱과 같은 기타 애플리케이션들(또는 명령어들의 세트)(1634)을 포함한다.
운영 체제(1622)는 iOS, Mac OS, 다윈(Darwin), RTXC, LINUX, UNIX, OS X, WINDOWS, 또는 VxWorks와 같은 임베디드 운영 체제를 포함하는 임의의 적합한 운영 체제일 수 있다. 운영 체제는 일반적인 시스템 태스크들(예컨대, 메모리 관리, 저장 디바이스 제어, 전력 관리 등)을 제어 및 관리하기 위한 다양한 절차들, 명령어들의 세트, 소프트웨어 컴포넌트들 및/또는 드라이버들을 포함할 수 있고, 다양한 하드웨어 및 소프트웨어 컴포넌트들 간의 통신을 용이하게 한다.
통신 모듈(1624)은 하나 이상의 외부 포트(1636)를 통해 또는 무선 회로(1608)를 통해 다른 디바이스들과의 통신을 용이하게 하고, 무선 회로(1608) 및/또는 외부 포트(1636)로부터 수신되는 데이터를 핸들링하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다. 외부 포트(1636)(예를 들어, USB, 파이어와이어(FireWire), 라이트닝(Lightning) 커넥터, 30-핀 커넥터 등)는 다른 디바이스들에 직접적으로 또는 네트워크(예를 들어, 인터넷, 무선 LAN 등)를 통해 간접적으로 결합하도록 구성된다.
컴퓨터 디바이스(1600) 상의 하나 이상의 애플리케이션(1634)은 브라우저, 주소록, 연락처 목록, 이메일, 인스턴트 메시징, 워드 프로세싱, 키보드 에뮬레이션, 위젯, JAVA 지원 애플리케이션, 암호화, 디지털 권한 관리, 음성 인식, 음성 복제, 음악 재생기(MP3 또는 AAC 파일과 같은 하나 이상의 파일에 저장된 녹음된 음악을 재생함) 등을 제한 없이 포함하는, 디바이스 상에 설치된 임의의 애플리케이션들을 포함할 수 있다. 하나 이상의 애플리케이션(1634)은 또한 콘텐츠 항목들의 재생을 제어하는 것, 콘텐츠 항목 데이터베이스를 업데이트하는 것, 또는 임의의 다른 적합한 애플리케이션을 위한 특정 앱을 포함할 수 있다.
그래픽 모듈, 시간 모듈 등과 같은 다른 모듈들 또는 명령어들의 세트(도시되지 않음)가 있을 수 있다. 예를 들어, 그래픽 모듈은 디스플레이 표면 상에 그래픽 객체들(텍스트, 웹 페이지, 아이콘, 디지털 이미지, 애니메이션 등을 제한 없이 포함함)을 렌더링, 애니메이팅 및 표시하기 위한 다양한 종래의 소프트웨어 컴포넌트들을 포함할 수 있다. 다른 예에서, 타이머 모듈은 소프트웨어 타이머일 수 있다. 타이머 모듈은 또한 하드웨어로 구현될 수 있다. 시간 모듈은 임의의 수의 이벤트들을 위한 다양한 타이머들을 유지할 수 있다.
I/O 서브시스템(1606)은 외부 디스플레이에 결합되는 것과 같은 디스플레이 시스템을 포함할 수 있거나, 또는 평판 디스플레이, 또는 터치 감응형 디스플레이와 같은 통합형 디스플레이를 포함할 수 있다. I/O 서브시스템(1606)의 디스플레이는 시각적 출력을 GUI 포맷으로 사용자에게 표시한다. 시각적 출력은 텍스트, 그래픽, 비디오, 및 이들의 임의의 조합을 포함할 수 있다. 시각적 출력의 일부 또는 전부가 사용자 인터페이스 객체들에 대응할 수 있다. 디스플레이는 LED(발광 다이오드), LCD(액정 디스플레이) 기술, 또는 LPD(발광 폴리머 디스플레이) 기술을 사용할 수 있지만, 다른 실시예들에서는 다른 디스플레이 기술들이 사용될 수 있다.
일부 실시예들에서, I/O 서브시스템(1606)은 디스플레이 및 키보드, 마우스, 및/또는 트랙패드와 같은 사용자 입력 디바이스들을 포함할 수 있다. 일부 실시예들에서, I/O 서브시스템(1606)은 터치 감응형 디스플레이를 포함할 수 있다. 터치 감응형 디스플레이는 또한 햅틱 및/또는 촉각적 접촉에 기초하여 사용자로부터의 입력을 수용할 수 있다. 일부 실시예들에서, 터치 감응형 디스플레이는 사용자 입력을 수용하는 터치 감응형 표면을 형성한다. 터치 감응형 디스플레이/표면은 (매체(1602) 내의 임의의 연관된 모듈들 및/또는 명령어들의 세트들과 함께) 터치 감응형 디스플레이 상의 접촉(및 접촉의 임의의 이동 또는 해제)을 검출하고, 검출된 접촉을 접촉이 발생할 때 터치 스크린 상에 표시되는 하나 이상의 소프트 키와 같은 사용자 인터페이스 객체들과의 상호작용으로 변환한다. 일부 실시예들에서, 터치 감응형 디스플레이와 사용자 사이의 접촉 지점은 사용자의 하나 이상의 손가락에 대응한다. 사용자는 스타일러스, 펜, 손가락 등과 같은 임의의 적합한 물체 또는 부속물을 이용하여 터치 감응형 디스플레이와 접촉할 수 있다. 터치 감응형 디스플레이 표면은 용량성, 저항성, 적외선, 및 표면 탄성파(surface acoustic wave) 기술뿐만 아니라 다른 근접 센서 어레이 또는 터치 감응형 디스플레이와의 하나 이상의 접촉 지점을 결정하기 위한 다른 요소들을 포함하는 임의의 적합한 터치 감응 기술들을 이용하여 접촉 및 그것의 임의의 이동 또는 해제를 검출할 수 있다.
또한, I/O 서브시스템은 전력 제어, 스피커 음량 제어, 벨소리 음량, 키보드 입력, 스크롤링, 홀드, 메뉴, 스크린 잠금, 클리어링(clearing) 및 통신의 종료 등과 같은 다양한 기능들을 제어하거나 수행하기 위해, 푸시버튼, 키, 스위치, 로커 버튼, 다이얼, 슬라이더 스위치, 스틱, LED 등과 같은 하나 이상의 다른 물리적 제어 디바이스(도시되지 않음)에 결합될 수 있다. 일부 실시예들에서, 터치 스크린 이외에, 컴퓨터 디바이스(1600)는 특정 기능들을 활성화 또는 비활성화하기 위한 터치 패드를 포함할 수 있다. 일부 실시예들에서, 터치 패드는, 터치 스크린과는 달리, 시각적 출력을 표시하지 않는 디바이스의 터치 감응형 영역이다. 터치패드는 터치 감응형 디스플레이로부터 분리된 터치 감응형 표면일 수 있거나 또는, 터치 감응형 디스플레이에 의해 형성된 터치 감응형 표면의 연장부일 수 있다.
일부 실시예들에서, 본 명세서에 기술된 동작들의 일부 또는 전부는 사용자의 모바일 디바이스 상에서 실행되는 애플리케이션을 사용하여 수행될 수 있다. 회로, 논리 모듈, 프로세서, 및/또는 다른 컴포넌트들이 본 명세서에 기술된 다양한 동작들을 수행하도록 구성될 수 있다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는, 구현에 따라, 이러한 구성이 특정 컴포넌트들의 설계, 설정, 상호연결, 및/또는 프로그래밍을 통해 달성될 수 있고, 다시 구현에 따라, 구성된 컴포넌트가 상이한 동작을 위해 재구성가능하거나 그렇지 않을 수도 있음을 인식할 것이다. 예를 들어, 프로그램가능 프로세서가 적합한 실행가능 코드를 제공함으로써 구성될 수 있고; 전용 논리 회로가 논리 게이트 및 다른 회로 요소들을 적합하게 연결함으로써 구성될 수 있는 등등이다.
본 발명의 다양한 특징들을 포함하는 컴퓨터 프로그램들은 다양한 컴퓨터 판독가능 저장 매체 상에 인코딩될 수 있으며; 적합한 매체는 자기 디스크 또는 테이프, CD(compact disk) 또는 DVD(digital versatile disk)와 같은 광학 저장 매체, 플래시 메모리 등을 포함한다. 프로그램 코드로 인코딩된 컴퓨터 판독가능 저장 매체는 호환가능한 디바이스로 패키징되거나 다른 디바이스들과 별개로 제공될 수 있다. 임의의 그러한 컴퓨터 판독가능 매체는 단일 컴퓨터 제품(예를 들어, 하드 드라이브, CD, 또는 전체 컴퓨터 시스템) 상에 또는 그 내에 존재할 수 있으며, 시스템 또는 네트워크 내의 상이한 컴퓨터 제품들 상에 또는 그 내에 존재할 수 있다. 컴퓨터 시스템은 모니터, 프린터, 또는 본 명세서에 언급된 결과들 중 임의의 것을 사용자에게 제공하기 위한 다른 적합한 디스플레이를 포함할 수 있다. 또한, 프로그램 코드는 인코딩되고, 인터넷을 포함하는 다양한 프로토콜들에 부합하는 유선 광, 및/또는 무선 네트워크들을 통해 전송될 수 있으며, 이에 의해 예를 들어, 인터넷 다운로드를 통해 분배를 가능하게 한다.
본 발명이 특정 실시예들에 대하여 기술되었지만, 본 발명은 하기의 청구범위의 범주 내의 모든 수정들 및 등가물들을 커버하도록 의도된다는 것이 이해될 것이다.

Claims (30)

  1. 무선 네트워크 접속을 통해 컴패니언 디바이스와 통신하는 액세서리 디바이스를 동작시키는 방법으로서,
    상기 액세서리 디바이스의 디스플레이에서 표시될 디스플레이 변화를 검출하는 단계;
    상기 검출된 디스플레이 변화에 응답하여, 상기 액세서리 디바이스에 설치되고 애플리케이션 식별자에 의해 식별되는 애플리케이션에 대한 디스플레이 메시지를 상기 액세서리 디바이스에서 생성하는 단계;
    상기 생성된 디스플레이 메시지를 상기 애플리케이션 식별자와 함께 상기 무선 네트워크 접속을 통해 액세서리 디바이스 데몬으로부터 컴패니언 디바이스 데몬으로 송신하는 단계;
    업데이트된 디스플레이 메시지를 상기 액세서리 디바이스 데몬에서 상기 컴패니언 디바이스 데몬으로부터 수신하는 단계;
    상기 애플리케이션 식별자에 의해 식별된 애플리케이션에 대한 하나 이상의 디스플레이 값을 상기 업데이트된 디스플레이 메시지로부터 결정하는 단계; 및
    상기 액세서리 디바이스에 대한 인터페이스 정의에 따라 상기 하나 이상의 디스플레이 값을 상기 액세서리 디바이스 디스플레이에서 표시하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 애플리케이션 식별자는 상기 디스플레이 메시지를 처리할 수 있는 상기 컴패니언 디바이스의 애플리케이션의 식별자에 대응하는, 방법.
  3. 제1항에 있어서, 상기 애플리케이션 식별자는 상기 컴패니언 디바이스 데몬에 의해, 상기 디스플레이 메시지를 처리할 수 있는 대응하는 컴패니언 디바이스 확장(companion device extension)으로 상기 디스플레이 메시지의 통신을 보내기 위해 이용되는, 방법.
  4. 제1항에 있어서, 디스플레이 변화를 검출하는 단계는 상기 액세서리 디바이스의 디스플레이와의 사용자 상호작용을 검출하는 단계를 포함하는, 방법.
  5. 제1항에 있어서, 디스플레이 변화를 검출하는 단계는 상기 액세서리 디바이스의 디스플레이에서 표시하기 위한 시스템 통지를 검출하는 단계를 포함하는, 방법.
  6. 제1항에 있어서, 상기 디스플레이 메시지를 생성하는 단계는 저장된 프레임워크 및 상기 인터페이스 정의에 의해 특정된 디스플레이 파라미터들에 따라 수행되는, 방법.
  7. 제1항에 있어서,
    상기 생성된 디스플레이 메시지를 수신하고 상기 컴패니언 디바이스에 설치되는 컴패니언 애플리케이션의 출력을 이용해, 상기 컴패니언 디바이스에 저장되고 상기 컴패니언 애플리케이션에 의해 액세스되는 프레임워크에 따라, 상기 업데이트된 디스플레이 메시지를 생성하는 단계를 더 포함하는, 방법.
  8. 제1항에 있어서, 상기 액세서리 디바이스 애플리케이션 및 인터페이스 정의를 상기 액세서리 디바이스에 설치 시, 확인 메시지를 상기 액세서리 디바이스로부터 상기 컴패니언 디바이스로 송신하는 단계를 더 포함하는, 방법.
  9. 제1항에 있어서, 상기 액세서리 디바이스는 웨어러블 컴퓨터 디바이스인, 방법.
  10. 제1항에 있어서,
    액세서리 디바이스 애플리케이션 패키지를 상기 컴패니언 디바이스로부터 상기 액세서리 디바이스로 송신하는 단계를 더 포함하며, 상기 액세서리 디바이스 애플리케이션 패키지는, 상기 액세서리 디바이스에 의해 실행될 때, 상기 액세서리 디바이스 애플리케이션 및 상기 인터페이스 정의를 제공하는 프로그래밍 코드를 포함하는, 방법.
  11. 무선 네트워크 접속을 통해 액세서리 디바이스와 통신하는 컴패니언 디바이스를 동작시키는 방법으로서,
    생성된 디스플레이 메시지를 무선 통신 접속을 통해 컴패니언 디바이스 데몬에서 상기 액세서리 디바이스에 설치된 액세서리 디바이스 데몬으로부터 수신하는 단계 - 상기 생성된 디스플레이 메시지는 상기 액세서리 디바이스에 설치되고 애플리케이션 식별자에 의해 식별되는 애플리케이션에 대한, 상기 액세서리 디바이스의 디스플레이에서 표시될 디스플레이 변화를 식별함 -;
    상기 생성된 디스플레이 메시지를 수신하고 상기 컴패니언 디바이스에 설치되는 컴패니언 애플리케이션의 출력을 이용해, 상기 컴패니언 디바이스에 저장되고 상기 컴패니언 애플리케이션에 의해 액세스되는 프레임워크에 따라, 업데이트된 디스플레이 메시지를 생성하는 단계; 및
    상기 생성된 업데이트된 디스플레이 메시지를 상기 무선 네트워크 접속을 통해 상기 컴패니언 디바이스 데몬으로부터 상기 액세서리 디바이스 데몬으로 송신하는 단계를 포함하는, 방법.
  12. 제11항에 있어서, 상기 애플리케이션 식별자는 상기 생성된 디스플레이 메시지를 처리할 수 있는 상기 컴패니언 디바이스의 애플리케이션의 식별자에 대응하는, 방법.
  13. 제11항에 있어서, 상기 애플리케이션 식별자는 상기 컴패니언 디바이스 데몬에 의해, 상기 디스플레이 메시지를 처리할 수 있는 대응하는 컴패니언 디바이스 확장으로 상기 디스플레이 메시지의 통신을 보내기 위해 이용되는, 방법.
  14. 제11항에 있어서, 상기 식별된 디스플레이 변화는 상기 액세서리 디바이스의 디스플레이와의 사용자 상호작용을 검출하는 것에 응답하여 식별되는, 방법.
  15. 제11항에 있어서, 상기 식별된 디스플레이 변화는 상기 액세서리 디바이스의 디스플레이에서 표시하기 위한 시스템 통지를 검출하는 것에 응답하여 식별되는, 방법.
  16. 제11항에 있어서, 상기 생성된 디스플레이 메시지는 저장된 프레임워크 및 상기 인터페이스 정의에 의해 특정된 디스플레이 파라미터들에 따라 생성되는, 방법.
  17. 제11항에 있어서,
    상기 생성된 디스플레이 메시지를 수신하고 상기 컴패니언 디바이스에 설치되는 컴패니언 애플리케이션의 출력을 이용해, 상기 컴패니언 디바이스에 저장되고 상기 컴패니언 애플리케이션에 의해 액세스되는 프레임워크에 따라, 상기 업데이트된 디스플레이 메시지를 생성하는 단계를 더 포함하는, 방법.
  18. 제11항에 있어서, 상기 액세서리 디바이스 애플리케이션 및 인터페이스 정의를 상기 액세서리 디바이스에 설치 시, 확인 메시지를 상기 액세서리 디바이스로부터 상기 컴패니언 디바이스로 송신하는 단계를 더 포함하는, 방법.
  19. 제11항에 있어서, 상기 액세서리 디바이스는 웨어러블 컴퓨터 디바이스인, 방법.
  20. 제11항에 있어서,
    액세서리 디바이스 애플리케이션 패키지를 상기 컴패니언 디바이스로부터 상기 액세서리 디바이스로 송신하는 단계를 더 포함하며, 상기 액세서리 디바이스 애플리케이션 패키지는, 상기 액세서리 디바이스에 의해 실행될 때, 상기 액세서리 디바이스 애플리케이션 및 상기 인터페이스 정의를 제공하는 프로그래밍 코드를 포함하는, 방법.
  21. 제11항에 있어서, 상기 디스플레이 메시지는, 상기 컴패니언 디바이스 데몬에 의해, 대응하는 컴패니언 디바이스 애플리케이션으로 상기 디스플레이 메시지의 통신을 보내기 위해 이용되는 액세서리 디바이스 애플리케이션 식별자를 포함하는, 방법.
  22. 제11항에 있어서,
    업데이트 디스플레이 메시지를 상기 액세서리 디바이스로부터 수신하는 단계 - 상기 업데이트 디스플레이 메시지는 상기 액세서리 디바이스에서의 사용자 상호작용 또는 시스템 통지에 따른 상기 액세서리 디바이스 디스플레이의 디스플레이 값들에 대한 변화를 포함하며, 상기 업데이트 디스플레이 메시지는 액세서리 디바이스 애플리케이션 식별자를 포함함 -;
    상기 액세서리 디바이스 디스플레이에서 표시하기 위한 업데이트된 디스플레이 값들을 생성하는 단계 - 상기 업데이트된 디스플레이 값들은 상기 컴패니언 디바이스의 상기 컴패니언 애플리케이션 및/또는 컴패니언 확장에 의해 상기 디스플레이 메시지의 상기 디스플레이 값들로부터 업데이트된 디스플레이 값들을 포함함 -; 및
    상기 업데이트된 디스플레이 값들 및 상기 액세서리 디바이스 애플리케이션 식별자를 포함하는 업데이트 디스플레이 메시지를 표시를 위해 상기 액세서리 디바이스에 송신하는 단계를 더 포함하는, 방법.
  23. 제11항에 있어서,
    상기 액세서리 디바이스 애플리케이션 파일을 지원하는 실행을 위한 컴패니언 디바이스 애플리케이션,
    상기 액세서리 디바이스 애플리케이션 파일의 지원에 이용될, 상기 컴패니언 디바이스에 저장된 컴패니언 디바이스 애플리케이션 및 프레임워크를 결정하는 컴패니언 디바이스 확장, 및
    상기 액세서리 디바이스 애플리케이션 패키지
    를 포함하는 컴패니언 디바이스 애플리케이션 패키지를 상기 컴패니언 디바이스에서 수신하는 단계; 및
    상기 컴패니언 디바이스 애플리케이션을 상기 컴패니언 디바이스에 설치하는 단계를 더 포함하는, 방법.
  24. 제23항에 있어서, 상기 컴패니언 디바이스 확장은, 상기 컴패니언 디바이스에 의해 실행될 때, 상기 액세서리 디바이스에서 표시하기 위한 디스플레이 값들을 결정하는 프로그래밍 코드를 포함하는, 방법.
  25. 제24항에 있어서, 상기 컴패니언 디바이스 확장은 프레임워크 데이터에 따라 상기 디스플레이 값들을 결정하는, 방법.
  26. 제23항에 있어서, 상기 컴패니언 디바이스 애플리케이션은 상기 컴패니언 디바이스 애플리케이션과 상기 액세서리 디바이스 애플리케이션 사이의 통신을 위한 컴패니언 디바이스 데몬을 더 포함하는, 방법.
  27. 제11항에 있어서, 상기 액세서리 디바이스는 웨어러블 컴퓨터 디바이스인, 방법.
  28. 동작을 수행하도록 컴퓨터 시스템을 제어하기 위한 복수의 명령어를 저장하는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 제품으로서, 상기 동작은,
    생성된 디스플레이 메시지를 무선 통신 접속을 통해 컴패니언 디바이스 데몬에서 액세서리 디바이스에 설치된 액세서리 디바이스 데몬으로부터 수신하는 것 - 상기 생성된 디스플레이 메시지는 상기 액세서리 디바이스에 설치되고 애플리케이션 식별자에 의해 식별되는 애플리케이션에 대한, 상기 액세서리 디바이스의 디스플레이에서 표시될 디스플레이 변화를 식별함 -;
    상기 생성된 디스플레이 메시지를 수신하고 상기 컴패니언 디바이스에 설치되는 컴패니언 애플리케이션의 출력을 이용해, 상기 컴패니언 디바이스에 저장되고 상기 컴패니언 애플리케이션에 의해 액세스되는 프레임워크에 따라, 업데이트된 디스플레이 메시지를 생성하는 것; 및
    상기 생성된 업데이트된 디스플레이 메시지를 상기 무선 네트워크 접속을 통해 상기 컴패니언 디바이스 데몬으로부터 상기 액세서리 디바이스 데몬으로 송신하는 것을 포함하는, 컴퓨터 제품.
  29. 디바이스로서,
    메모리;
    적어도 하나의 네트워크 인터페이스; 및
    상기 메모리 및 상기 적어도 하나의 네트워크 인터페이스에 결합된 프로세서를 포함하며, 상기 프로세서는,
    생성된 디스플레이 메시지를 무선 통신 접속을 통해 컴패니언 디바이스 데몬에서 액세서리 디바이스에 설치된 액세서리 디바이스 데몬으로부터 수신하는 단계 - 상기 생성된 디스플레이 메시지는 상기 액세서리 디바이스에 설치되고 애플리케이션 식별자에 의해 식별되는 애플리케이션에 대한, 상기 액세서리 디바이스의 디스플레이에서 표시될 디스플레이 변화를 식별함 -;
    상기 생성된 디스플레이 메시지를 수신하고 상기 컴패니언 디바이스에 설치되는 컴패니언 애플리케이션의 출력을 이용해, 상기 컴패니언 디바이스에 저장되고 상기 컴패니언 애플리케이션에 의해 액세스되는 프레임워크에 따라, 업데이트된 디스플레이 메시지를 생성하는 단계; 및
    상기 생성된 업데이트된 디스플레이 메시지를 상기 무선 네트워크 접속을 통해 상기 컴패니언 디바이스 데몬으로부터 상기 액세서리 디바이스 데몬으로 송신하는 단계를 포함하는 방법을 수행하는, 디바이스.
  30. 제29항에 있어서, 상기 프로세서 수행 방법은,
    상기 액세서리 디바이스 애플리케이션 파일을 지원하는 실행을 위한 컴패니언 디바이스 애플리케이션,
    상기 액세서리 디바이스 애플리케이션 파일의 지원에 이용될, 상기 컴패니언 디바이스에 저장된 컴패니언 디바이스 애플리케이션 및 프레임워크를 결정하는 컴패니언 디바이스 확장, 및
    상기 액세서리 디바이스 애플리케이션 패키지
    를 포함하는 컴패니언 디바이스 애플리케이션 패키지를 상기 컴패니언 디바이스에서 수신하는 단계; 및
    상기 컴패니언 디바이스 애플리케이션을 상기 컴패니언 디바이스에 설치하는 단계를 더 포함하는, 디바이스.
KR1020177004658A 2014-09-02 2015-08-28 사용자 모바일 디바이스를 이용한 액세서리 디바이스 동작 KR102033102B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462044797P 2014-09-02 2014-09-02
US62/044,797 2014-09-02
US14/837,336 US10592187B2 (en) 2014-09-02 2015-08-27 Accessory device operation with user mobile device over network connection
US14/837,336 2015-08-27
PCT/US2015/047513 WO2016036605A1 (en) 2014-09-02 2015-08-28 Accessory device operation with user mobile device

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020197029765A Division KR102168013B1 (ko) 2014-09-02 2015-08-28 사용자 모바일 디바이스를 이용한 액세서리 디바이스 동작
KR1020197029766A Division KR102168011B1 (ko) 2014-09-02 2015-08-28 사용자 모바일 디바이스를 이용한 액세서리 디바이스 동작

Publications (2)

Publication Number Publication Date
KR20170037632A true KR20170037632A (ko) 2017-04-04
KR102033102B1 KR102033102B1 (ko) 2019-11-08

Family

ID=55402557

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020197029765A KR102168013B1 (ko) 2014-09-02 2015-08-28 사용자 모바일 디바이스를 이용한 액세서리 디바이스 동작
KR1020197029766A KR102168011B1 (ko) 2014-09-02 2015-08-28 사용자 모바일 디바이스를 이용한 액세서리 디바이스 동작
KR1020177004658A KR102033102B1 (ko) 2014-09-02 2015-08-28 사용자 모바일 디바이스를 이용한 액세서리 디바이스 동작

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020197029765A KR102168013B1 (ko) 2014-09-02 2015-08-28 사용자 모바일 디바이스를 이용한 액세서리 디바이스 동작
KR1020197029766A KR102168011B1 (ko) 2014-09-02 2015-08-28 사용자 모바일 디바이스를 이용한 액세서리 디바이스 동작

Country Status (5)

Country Link
US (2) US10592187B2 (ko)
EP (3) EP3654179B1 (ko)
KR (3) KR102168013B1 (ko)
CN (2) CN106796565B (ko)
WO (1) WO2016036605A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592187B2 (en) 2014-09-02 2020-03-17 Apple Inc. Accessory device operation with user mobile device over network connection
US9420087B2 (en) 2014-09-02 2016-08-16 Apple Inc. Notifications with custom user interface
WO2017177302A1 (en) 2016-04-15 2017-10-19 Light Wave Technology Inc. Automotive rear-view camera peripheral
WO2018010021A1 (en) 2016-07-11 2018-01-18 Light Wave Technology Inc. Pointer control in a handheld computer by way of hid commands
US10437586B2 (en) * 2017-01-03 2019-10-08 Infosys Limited Method and system for dynamic impact analysis of changes to functional components of computer application
WO2018128533A1 (en) * 2017-01-09 2018-07-12 Samsung Electronics Co., Ltd. Method and system for managing accessory application of accessory device by companion device
JP6812865B2 (ja) * 2017-03-21 2021-01-13 株式会社リコー 情報処理システム、サービス提供システムおよび情報処理方法
US10375191B2 (en) * 2017-11-29 2019-08-06 Microsoft Technology Licensing, Llc Notifications on an online social networking system
US10963347B1 (en) 2019-01-31 2021-03-30 Splunk Inc. Data snapshots for configurable screen on a wearable device
US11893296B1 (en) * 2019-01-31 2024-02-06 Splunk Inc. Notification interface on a wearable device for data alerts
US11449293B1 (en) 2019-01-31 2022-09-20 Splunk Inc. Interface for data visualizations on a wearable device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100235550A1 (en) * 2009-03-16 2010-09-16 Apple Inc. Mobile computing device capabilities for accessories
EP2230605A1 (en) * 2009-03-16 2010-09-22 Apple Inc. Accessory and mobile computing device communication using an application communication protocol
US20110246891A1 (en) * 2008-05-13 2011-10-06 Apple Inc. Pushing a Graphical User Interface to a Remote Device with Display Rules Provided by the Remote Device
US20130111463A1 (en) * 2011-10-31 2013-05-02 Nokia Corporation Method and apparatus for developing socially suitable applications and devices

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161134A (en) * 1998-10-30 2000-12-12 3Com Corporation Method, apparatus and communications system for companion information and network appliances
EP1212885B1 (en) 2000-06-21 2009-04-29 Seiko Epson Corporation Mobile telephone and radio communication device cooperatively processing incoming call
FI115281B (fi) * 2003-05-21 2005-03-31 Elcoteq Network Oyj Päätelaitteen, edullisesti datan lähettämiseen ja/tai vastaanottamiseen tarkoitettu viestintälaite, ja ainakin yhden erillisen lisälaitteen käsittävä kokoonpano
US7130664B1 (en) 2003-06-12 2006-10-31 Williams Daniel P User-based signal indicator for telecommunications device and method of remotely notifying a user of an incoming communications signal incorporating the same
US7434235B2 (en) * 2005-05-16 2008-10-07 Microsoft Corporation Type server caching the proxy/stub generation
US8126443B2 (en) 2006-06-13 2012-02-28 Microsoft Corporation Auxiliary output device
EP1892635A1 (en) * 2006-08-04 2008-02-27 Research In Motion Limited Method and system for retrieving a document associated with a message received on a mobile device
JP5109655B2 (ja) 2007-12-28 2012-12-26 カシオ計算機株式会社 携帯電話システムおよび腕装着型端末
JP2009164783A (ja) 2007-12-28 2009-07-23 Casio Comput Co Ltd 携帯電話システムおよび腕装着型端末
US8909803B2 (en) * 2009-03-16 2014-12-09 Apple Inc. Accessory identification for mobile computing devices
US20140317303A1 (en) 2009-03-16 2014-10-23 Apple Inc. Application launching in conjunction with an accessory
US20120081207A1 (en) 2010-09-30 2012-04-05 Apple Inc. Application launching in conjunction with an accessory
JP5187764B2 (ja) 2009-05-18 2013-04-24 Necカシオモバイルコミュニケーションズ株式会社 通信端末装置及びプログラム
KR101602461B1 (ko) * 2009-09-22 2016-03-15 삼성전자주식회사 디스플레이 장치 및 휴대폰의 제어방법
US8271033B2 (en) 2010-03-15 2012-09-18 Sony Ericsson Mobile Communications Ab Dedicated accessory devices for handheld communication devices and related methods
GB2479996A (en) * 2010-04-26 2011-11-02 Hu-Do Ltd Mobile computing device operating in conjunction with companion computing device to generate a user environment.
US20120089923A1 (en) * 2010-10-08 2012-04-12 Microsoft Corporation Dynamic companion device user interface
US8787006B2 (en) 2011-01-31 2014-07-22 Apple Inc. Wrist-worn electronic device and methods therefor
US8190749B1 (en) 2011-07-12 2012-05-29 Google Inc. Systems and methods for accessing an interaction state between multiple devices
US20140025537A1 (en) * 2012-07-23 2014-01-23 Cellco Partnership D/B/A Verizon Wireless Verifying accessory compatibility with a mobile device
US9729687B2 (en) 2012-08-10 2017-08-08 Silverplus, Inc. Wearable communication device
US11210076B2 (en) 2013-01-28 2021-12-28 Samsung Electronics Co., Ltd. Downloading and launching an app on a second device from a first device
US9730268B2 (en) 2013-06-07 2017-08-08 Apple Inc. Communication between host and accessory devices using accessory protocols via wireless transport
US9251109B2 (en) * 2013-12-20 2016-02-02 EXILANT Technologies Private Limited Communication with accessories
CN203775292U (zh) 2013-12-31 2014-08-13 上海闻泰电子科技有限公司 具有可穿戴设备的移动终端及其可穿戴设备
CN104007820B (zh) 2014-05-26 2017-09-29 联想(北京)有限公司 一种信息处理方法及电子设备
US10592187B2 (en) 2014-09-02 2020-03-17 Apple Inc. Accessory device operation with user mobile device over network connection
US9769301B2 (en) * 2014-09-02 2017-09-19 Apple Inc. Accessory device application bundling
US9420087B2 (en) * 2014-09-02 2016-08-16 Apple Inc. Notifications with custom user interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246891A1 (en) * 2008-05-13 2011-10-06 Apple Inc. Pushing a Graphical User Interface to a Remote Device with Display Rules Provided by the Remote Device
US20100235550A1 (en) * 2009-03-16 2010-09-16 Apple Inc. Mobile computing device capabilities for accessories
EP2230605A1 (en) * 2009-03-16 2010-09-22 Apple Inc. Accessory and mobile computing device communication using an application communication protocol
US20130111463A1 (en) * 2011-10-31 2013-05-02 Nokia Corporation Method and apparatus for developing socially suitable applications and devices

Also Published As

Publication number Publication date
KR102168011B1 (ko) 2020-10-20
KR20190119172A (ko) 2019-10-21
US11210047B2 (en) 2021-12-28
KR102168013B1 (ko) 2020-10-20
EP3189427A1 (en) 2017-07-12
CN106796565A (zh) 2017-05-31
CN111045969B (zh) 2023-08-11
CN106796565B (zh) 2019-12-17
KR20190119171A (ko) 2019-10-21
EP4145279A1 (en) 2023-03-08
EP3654179B1 (en) 2022-11-09
US10592187B2 (en) 2020-03-17
EP3189427B1 (en) 2020-02-19
KR102033102B1 (ko) 2019-11-08
WO2016036605A1 (en) 2016-03-10
US20200201588A1 (en) 2020-06-25
WO2016036605A9 (en) 2017-03-30
CN111045969A (zh) 2020-04-21
US20160062721A1 (en) 2016-03-03
EP3654179A1 (en) 2020-05-20

Similar Documents

Publication Publication Date Title
US11210047B2 (en) Accessory device operation with user mobile device over network connection
US10187508B2 (en) Notifications with custom user interface
US11386769B2 (en) Creation of reminders using activity state of an application
US11778430B2 (en) Layers in messaging applications
US9769301B2 (en) Accessory device application bundling
EP3627311B1 (en) Computer application promotion
US20170359283A1 (en) Music creation app in messaging app
KR20160031233A (ko) 날짜에 따른 특화 모드 제공 방법 및 이를 구현하는 전자 장치
US10348857B2 (en) Dynamic creation of subservices
JP5997848B2 (ja) 移動端末リソースの処理方法、装置、クライアント側のコンピュータ、サーバ、移動端末、プログラム、及び記録媒体
CN108604331B (zh) 一种信息提醒方法以及移动设备
US9946560B2 (en) Development environment for multiple electronic devices
US10356188B2 (en) Dynamic update of tips on a device
CN113608610B (zh) 交互控制方法、电子设备及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right