KR101431398B1 - 자동 통지자 할당 - Google Patents

자동 통지자 할당 Download PDF

Info

Publication number
KR101431398B1
KR101431398B1 KR1020137002860A KR20137002860A KR101431398B1 KR 101431398 B1 KR101431398 B1 KR 101431398B1 KR 1020137002860 A KR1020137002860 A KR 1020137002860A KR 20137002860 A KR20137002860 A KR 20137002860A KR 101431398 B1 KR101431398 B1 KR 101431398B1
Authority
KR
South Korea
Prior art keywords
notification
notifier
notification request
response
notifiers
Prior art date
Application number
KR1020137002860A
Other languages
English (en)
Other versions
KR20130033443A (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 KR20130033443A publication Critical patent/KR20130033443A/ko
Application granted granted Critical
Publication of KR101431398B1 publication Critical patent/KR101431398B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

일반적으로, 여기에 기술된 기술들은, 컴퓨팅 디바이스에서 통지 요청들에 응답하여 통지들을 제공하기 위한 통지자들을 할당하는 것에 관한 것이다. 컴퓨팅 디바이스는, 통지들을 제공하도록 하는 통지 요청들을 애플리케이션들로부터 수신하도록 구성될 수도 있는 플랫폼 애플리케이션을 포함할 수도 있다. 플랫폼 애플리케이션은 적어도 하나의 통지를 제공하는 것이 가능한 통지자들을 발견할 수도 있다. 플랫폼 애플리케이션은, 발견된 통지자들 중 하나와 함께 통지 요청을 스케줄링할 수도 있고, 발견된 통지자 중 하나와 함께 통지 요청의 스케줄링시, 스케줄링된 통지자로 하여금, 통지 요청에 응답하여 통지를 제공하게 할 수도 있다. 여기에 제시된 기술들은, 컴퓨팅 디바이스의 주의력 한도 및 통지 요청의 우선순위화 레벨을 결정함으로써 사용자의 요구에 따라 통지자들을 할당할 수 있어서, 사용자에게 외래 통지들이 쇄도하는 일 없이 컴퓨팅 디바이스가 다수의 통지 요청들을 관리할 수 있도록 한다.

Description

자동 통지자 할당{AUTOMATIC ANNUNCIATOR ALLOCATION}
여기에 다르게 나타내지 않는다면, 이 섹션에서 기술되는 소재들은 본 출원의 청구범위에 대한 종래 기술이 아니며 이 섹션에의 포함에 의해 종래 기술인 것으로 인정되지 않는다.
최근, 사용자들은, 스마트폰들 또는 다른 모바일 디바이스들 상에 인스톨된 애플리케이션들을 통해 점점 더 많은 정보를 수신하고 있다. 통상적으로, 이들 애플리케이션들은 사용자에게, 통화들, 텍스트 메시지들, 및/또는 보이스 메일들과 같은 종래의 폰들에 의해 통상적으로 제공되는 기본 기능들 이외에도, 통지들 (annunciations), 이를테면, 기상 경보들, 주식 경보들, 뉴스 경보들, 및/또는 스포츠 스코어들을 제공할 수도 있다. 스마트폰들은 이들 통지들을 사용자들에게 통지자들 (annunciators), 이를테면, 시각적 그래픽들, 섬광들, 가청 사운드들, 진동들 등을 통해 제공할 수도 있다. 증가하는 수의 애플리케이션들이 스마트폰들 상에 인스톨됨에 따라, 사용자에게 제공되는 통지들의 개수가 사용자를 압도할 수도 있고, 특정 시간에 사용자와 관련성이 있거나 사용자가 관심이 있거나 사용자에게 중요한 것이 아닐 수도 있는 정보가 사용자에게 불필요하게 쇄도할 수도 있다. 시간이 지남에 따라, 이러한 불균형은 더욱 악화될 수도 있다.
본 개시물은, 컴퓨팅 디바이스에서 통지 요청들에 응답하여 통지들을 제공하기 위한 통지자들을 할당하는 것에 관한 다양한 기법들을 기술한 것이다. 일부 컴퓨팅 디바이스들, 이를테면, 여기에 기술된 스마트폰은, 플랫폼 애플리케이션을 저장한 메모리 및 프로세서를 포함한다. 플랫폼 애플리케이션은 프로세서에서 실행하도록 구성되고, 프로세서로 하여금 애플리케이션으로부터의 통지 요청을 수신하게 한다. 프로세서는 또한, 통지 요청에 응답하여 통지를 제공할 수 있는 통지자를 발견하도록 구성된다. 그 후에, 프로세서는 통지자와 함께 통지 요청을 스케줄링하고 통지자를 통해 통지 요청에 응답하여 통지를 제공할 수 있다.
또한, 본 개시물은, 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 통지 요청들에 응답하여 통지들을 제공하기 위한 통지자들을 할당하도록 구성되는 방법을 위해 저장된 컴퓨터 실행가능 명령들을 포함하는 컴퓨터 저장 매체를 기술한 것이다. 여기에 기술된 일부 예시적인 방법들에 의하면, 통지 요청은 애플리케이션으로부터 수신된다. 통지 요청에 응답하여 통지를 제공하기 위한 통지자가 발견된다. 그 후에, 통지 요청이 통지자와 함께 스케줄링된다. 그 후에, 통지자가 애플리케이션 요청에 응답하여 통지를 제공한다.
또한, 본 개시물은 통지 요청들에 응답하여 통지들을 제공하기 위한 통지자들을 할당하는 컴퓨터 구현 방법에 대한 다양한 기법들을 기술한 것이다. 일부 예시적인 방법들에 의하면, 컴퓨팅 디바이스는 애플리케이션으로부터 통지 요청을 수신한다. 컴퓨팅 디바이스는, 통지 요청에 응답하여 통지를 제공할 수 있는 통지자를 발견한다. 그 후에, 컴퓨팅 디바이스는 통지 요청을 통지자와 함께 스케줄링한다. 그 후에, 컴퓨팅 디바이스는 통지자를 통해 통지 요청에 응답하여 통지를 제공한다.
전술한 개요는 예시적인 것에 불과하며, 임의의 방식으로 한정하고자 하는 것이 아니다. 상술된 예시적인 양태들, 실시형태들, 및 특징들에 더하여, 추가의 양태들, 실시형태들, 및 특징들은 도면 및 다음의 상세한 설명을 참조하면 명백해질 것이다.
본 개시물의 전술한 특징 및 다른 특징은 첨부한 도면과 함께 취해진 다음의 상세한 설명 및 첨부된 청구범위로부터 더욱 명백해질 것이다. 이들 도면들이 본 개시물에 따른 단지 몇개의 실시형태들을 도시하며, 따라서 그것의 범위를 한정하는 것으로 고려되지 않아야 한다는 것을 이해하면서, 본 개시물은 첨부 도면의 사용을 통해 추가적으로 특정하게 그리고 상세하게 기술될 것이다.
도 1 은 애플리케이션들로부터의 통지 요청들을 수신하고 그 통지 요청들에 응답하여 통지들을 컴퓨팅 디바이스의 통지자들을 통해 제공할 수 있는 플랫폼 애플리케이션을 포함하는 컴퓨팅 환경을 예시한 블록도이다.
도 2 는 일 예시적인 플랫폼 애플리케이션을 예시한 블록도이다.
도 3 은 네트워크를 통해 플랫폼 애플리케이션과 통신할 수 있는 다수의 디바이스들을 예시한 블록도이다.
도 4 는 통지자들을 할당하기 위한 일 예시적인 프로세스를 예시한 흐름도이다.
도 5 는 통지자들을 할당하기 위한 일 예시적인 프로세스를 예시한 흐름도이다.
도 6 은 일 예시적인 컴퓨팅 디바이스를 예시한 블록도이다.
도 7 은 컴퓨팅 디바이스 상에서 컴퓨터 프로세스를 실행하기 위한 컴퓨터 프로그램을 포함하는 일 예시적인 컴퓨터 프로그램 제품의 부분도를 예시한 개략도이다.
모든 도면들은 여기에 제시된 적어도 일부의 실시형태들에 따라 배열된다.
다음의 상세한 설명에서는, 그의 일부를 형성하는 첨부한 도면이 참조된다. 도면에서, 콘텍스트가 다르게 나타내고 있지 않다면, 유사한 기호들은 일반적으로 유사한 컴포넌트들을 식별한다. 상세한 설명, 도면 및 청구범위에서 기술되는 예시적인 실시형태들은 한정하고자 하는 것이 아니다. 다른 실시형태들이 이용될 수도 있고, 여기에서 제시되는 요지의 사상 또는 범주로부터 일탈하는 일 없이 다른 변경들이 이루어질 수도 있다. 여기에서 일반적으로 기술되는 바와 같이, 그리고 도면에 예시된 바와 같이, 본 개시물의 양태들은, 매우 다양한 여러 가지 구성들로 배열되고, 치환되고, 결합되고, 분할되고, 설계될 수 있으며, 그러한 구성들 모두가 여기에서 명백히 고려된다는 것은 용이하게 이해될 것이다.
일반적으로, 본 개시물은, 그 중에서도, 스마트폰, 모바일 디바이스, 텔레비전, 데스크톱, 랩톱과 같은 컴퓨팅 디바이스, 및/또는 다른 컴퓨팅 디바이스에서 통지 요청들에 응답하여 통지들을 제공하기 위한 통지자들을 할당하는 것에 관한 방법들, 장치들, 시스템들, 및 컴퓨터 프로그램 제품들에 대해 도출된 것이다. 간단히 말하면, 여기에 기술된 기술들은 일반적으로, 일 예시적인 컴퓨팅 디바이스에서 통지 요청들에 응답하여 통지들을 제공하기 위한 통지자들을 할당하는 것에 관한 것이다. 컴퓨팅 디바이스는 플랫폼 애플리케이션을 포함할 수도 있다. 플랫폼 애플리케이션은 적어도 하나의 통지를 제공하기 위한 적어도 하나의 애플리케이션으로부터 적어도 하나의 통지 요청을 수신하도록 구성될 수도 있다. 플랫폼 애플리케이션은 또한, 통지를 제공하는 것이 가능한 통지자들을 발견하도록 구성될 수도 있다. 플랫폼 애플리케이션은 그 후에, 발견된 통지자들 중 하나의 통지자와 함께 통지 요청을 스케줄링할 수도 있고, 플랫폼 애플리케이션은 그 스케줄링된 통지자로 하여금 통지 요청에 응답하여 통지를 제공하게 할 수도 있다. 여기에 제시된 기술들은, 컴퓨팅 디바이스의 주의력 한도 및 통지 요청의 우선순위화 레벨을 결정함으로써 사용자의 요구에 따라 통지자들을 할당할 수 있어서, 사용자에게 외래 통지들이 쇄도하는 일 없이 컴퓨팅 디바이스가 다수의 통지 요청들을 관리할 수 있도록 한다.
도 1 은, 여기에 제시된 적어도 일부의 실시형태들에 따라, 애플리케이션들 (120A 내지 120N) 로부터 통지 요청들 (122A 내지 122N) 을 수신하고 컴퓨팅 디바이스 (110) 의 통지자들 (130A 내지 130N) 을 통해 통지 요청들 (122A 내지 122N) 에 응답하여 통지들 (132A 내지 132N) 을 제공할 수 있는 플랫폼 애플리케이션 (102) 을 포함하는 컴퓨팅 환경 (100) 을 예시한 블록도이다. 일부 실시형태들에 의하면, 컴퓨팅 디바이스 (110) 는 모바일 디바이스, 이를테면, 모바일폰, 스마트폰, 태블릿 컴퓨터, 휴대용 미디어 플레이어 등일 수도 있다. 또한, 컴퓨팅 디바이스 (110) 는 비-모바일 디바이스, 이를테면, 퍼스널 컴퓨터, 텔레비전, 모니터, 차량 스테레오 시스템 등일 수도 있다. 컴퓨팅 디바이스 (110) 는, 플랫폼 애플리케이션 (102) 을 저장할 수 있는 메모리 및 프로세서를 포함하는 임의의 디바이스일 수도 있다는 것을 인식해야 한다.
애플리케이션들 (120A 내지 120N) 은 일반적으로 여기에서 애플리케이션들 (120) 이라고 지칭될 수도 있다. 이들 애플리케이션들 (120) 은 컴퓨팅 디바이스 (110) 상에서 동작하는 것일 수도 있고 또는 일부 예시적인 실시형태들에 있어서는 컴퓨팅 디바이스 (110) 와 통신하는 원격 디바이스들 상에서 동작하는 것일 수도 있다. 일부 예시적인 실시형태들에 의하면, 애플리케이션들 (120) 은, 다른 것들 중에서도, 텍스트 메시징 애플리케이션, 캘린더 애플리케이션, 또는 기상 애플리케이션을 포함하는 임의의 타입의 컴퓨터 애플리케이션일 수도 있다. 애플리케이션들 (120) 의 일부 다른 예들은, 컴퓨팅 디바이스 (110) 에 의해 수신되는 셀룰러 신호의 세기를 디스플레이하도록 구성된 애플리케이션, 또는 컴퓨팅 디바이스 (110) 에 의해 신호가 수신되는 셀룰러 제공자의 명칭을 디스플레이하도록 구성된 애플리케이션을 포함할 수도 있다. 일부 예시적인 실시형태들에 있어서, 이들 애플리케이션들 (120) 중 하나 이상은 애플리케이션과 연관된 정보를 컴퓨팅 디바이스 (110) 의 사용자에게 제공하도록 구성될 수도 있다.
일부 실시형태들에 의하면, 애플리케이션들 (120) 은 통지 요청들 (122A 내지 122N) 을 플랫폼 애플리케이션 (102) 에 발행함으로써 특정 이벤트를 사용자에게 통보하도록 구성될 수도 있다. 통지 요청들 (122A 내지 122N) 은 일반적으로 여기에서 통지 요청들 (122) 이라고 지칭될 수도 있다. 통지 요청들 (122) 은, 일반적으로 여기에서 통지들 (132) 이라고 지칭될 수도 있는 하나 이상의 통지들, 이를테면, 통지들 (132A 내지 132N) 을 제공하도록 하는 요청들일 수도 있다. 통지, 이를테면, 통지들 (132) 중 임의의 통지는, 통지 요청 (122A) 과 같은 통지 요청에 응답하여 사용자에게 제공될 수도 있는 통보, 이를테면, 경보, 경고, 또는 리마인더라고 지칭할 수도 있다. 일부 예시적인 실시형태들에 의하면, 통지들 (132) 은 시각적 통지들, 가청 통지들 또는 진동 통지들일 수도 있다.
일부 예시적인 실시형태들에 따라 그리고 애플리케이션 (120A) 을 일 예로서 이용하면, 사용자의 주의를 끌어야 하는 이벤트가 발생하였다고 애플리케이션 (120) 이 결정한 후에, 애플리케이션 (120A) 은 통지 요청 (122A) 을 발행할 수도 있다. 이러한 이벤트의 몇몇 예들은, 착신 통화, 텍스트 메시지, 또는 이메일의 수신, 토네이도 경보의 발행, 소정의 임계 가격 미만의 주가의 하락, 소정 임계값 미만으로 떨어진 잔여 배터리 수명 등을 포함할 수도 있다. 통지가 제시될 수도 있는 지속기간은 변할 수도 있다. 일부의 경우들에 있어서, 통지는 실시간 정보 또는 거의 실시간 정보를 사용자에게 제공하도록 끊임없이 제시될 수도 있다. 예를 들어, 신호 세기 통지 (132A) 는 셀룰러 신호 세기를 사용자에게 연속적으로 제공할 수도 있고, 제공자 통지 (132B) 는 셀룰러 신호가 컴퓨팅 디바이스 (110) 에 의해 수신되고 있는 제공자의 명칭을 연속적으로 제공할 수도 있다. 이와 유사하게, 통지 (132C) 는 컴퓨팅 디바이스 (110) 의 잔여 배터리 수명을 연속적으로 제공할 수도 있다. 일부 예시적인 실시형태들에 의하면, 가청 통지는 컴퓨팅 디바이스가 텍스트 메시지 또는 착신 통화를 수신하는 경우 한 번 제시될 수도 있다. 그러나, 사용자가 텍스트 메시지 또는 착신 통화에 응답하지 않는 경우, 컴퓨팅 디바이스 (110) 는 사용자가 시각적 통지에 응답하여 액션을 취할 때까지 시각적 통지를 제시할 수도 있다. 일부 실시형태들에 의하면, 점선으로 둘러싸인 이미지로 나타낸 기상 통지 (132D) 는 현재 기상 조건들을 제공할 수도 있다. 기상 통지 (132D) 는 기상 애플리케이션에 액세스하는 것이 선택가능할 수도 있는 기상 그래픽 아이콘 (134A) 의 경계 내에 있을 수도 있다. 기상 통지 (132D) 와 마찬가지로, 다른 통지들은 특정 애플리케이션과 연관된 그래픽 아이콘의 경게 내에 제공될 수도 있다는 것을 인식해야 한다. 이러한 방법으로, 사용자는 통지가 특정 애플리케이션과 관련된 것을 알 수도 있다. 몇몇 예에 의하면, 읽지 않은 메일 통지 (132N) 가 읽지 않은 메일들의 개수를 나타낸다. 읽지 않은 메일 통지 (132N) 는, 메일 애플리케이션에 액세스하는 것이 선택가능할 수도 있는 메일 그래픽 아이콘 (134N) 상에 또는 메일 그래픽 아이콘 (134N) 에 아주 근접하게 디스플레이될 수도 있다. 도 1 에 도시된 통지들은 단지 예시적인 통지들일 뿐이며, 도시되지 않거나 언급되지 않은 다른 통지들도 또한 인스턴트 애플리케이션의 범위 내에 포함될 수도 있다는 것을 이해해야 한다.
일부 예시적인 실시형태들에서 그리고 애플리케이션 (120B) 을 일 예로서 이용하면, 애플리케이션 (120B) 은 이벤트가 발생하였다는 결정시에만 통지 요청 (122B) 을 발행할 수도 있다. 애플리케이션 (120B) 은 사용자에게 제시되어야 하는 콘텐츠의 종류를 특정할 수도 있다. 애플리케이션 (120B) 은 통지 요청 (122B) 을 플랫폼 애플리케이션 (102) 에게 발행함으로써 그와 같이 행할 수도 있다. 통지 요청 (122B) 은 애플리케이션 (120) 이 사용자에게 제시되기를 원하는 콘텐츠, 및 통지가 제공되어야 하는 지속기간을 포함할 수도 있다. 통지 요청 (122B) 은 제시되어야 하는 통지의 타입을 더 포함할 수도 있다. 플랫폼 애플리케이션 (102) 의 설명에 후속하여 통지들 및 통지들의 상이한 타입들의 상세한 설명을 아래에 제공한다.
통지 요청 (122B) 은 또한, 제시되는 데이터에 대한 콘텐츠의 관련 시간 값을 포함할 수도 있다. 제시되는 데이터에 대한 콘텐츠의 관련 시간 값은, 시간 경과에 따른 데이터의 측정 값이라고 지칭할 수도 있다. 즉, 더 높은 시간 값의 콘텐츠를 갖는 통지 요청은, 비교적 더 낮은 시간 값의 콘텐츠를 갖는 통지 요청에 비해 사용자에게 더 가치있는 데이터를 나타낼 수도 있다. 통상적으로, 특정 통지 요청과 연관된 콘텐츠의 시간 값은, 동일한 애플리케이션에 의해 발행된 다른 통지 요청들의 콘텐츠와 연관된 시간 값과 관련될 수도 있다. 이러한 방법으로, 애플리케이션으로부터의 관련된 데이터의 값이 결정될 수 있고, 플랫폼 애플리케이션 (102) 이 관련된 데이터의 값에 기초하여 펜딩 통지 요청 (pending annunciation request) 들을 우선순위화하는 것이 가능할 수도 있다. 일부 실시형태들에 의하면, 통지 요청들 (122) 은 제공되어야 하는 통지의 타입 또는 사용되어야 하는 통지자의 타입에 관한 정보를 제공하지 않을 수도 있다. 오히려, 통지 요청은 특정 이벤트의 발생에 관해 사용자에게 통보하기 위한 명령을 단순히 포함할 수도 있다.
일부 예시적인 실시형태들에 의하면, 애플리케이션들 (120) 은, 통지 요청들 (122) 이 자동적으로 발행될 수도 있는 이벤트들의 리스트를 가질 수도 있다. 애플리케이션들 (120) 은 또한, 다른 통지 요청들에 대한 특정 통지 요청의 상대적인 중요도를 나타내는 콘텐츠의 시간 값을 각 통지 요청에 할당할 수도 있다는 것을 인식해야 한다.
예시적인 실시형태들에 의하면, 사용자는, 애플리케이션들 (120) 이 통지 요청들 (122) 을 자동적으로 발행해야 하는 이벤트들을 부가하거나 또는 삭제하기 위해 애플리케이션들 (120) 중 하나 이상에 대한 설정들을 커스터마이징할 수도 있다. 또한, 사용자는 또한, 사용자에 대한 정보의 중요도에 대응하는 관련 시간 콘텐츠의 값을 특정 이벤트들에 할당하기 위해 하나 이상의 애플리케이션들 (120) 의 설정들을 커스터마이징할 수도 있다. 이러한 방법으로, 사용자에게 더 중요한 이벤트들과 연관된 통지 요청들은, 사용자에게 덜 중요한 이벤트들과 연관된 통지 요청들에 비해 더 높은 시간 값의 콘텐츠가 할당될 수 있다.
플랫폼 애플리케이션 (102) 은 애플리케이션들 (120) 로부터 통지 요청들 (122) 을 수신하도록 구성될 수도 있다. 플랫폼 애플리케이션 (102) 은 또한, 애플리케이션들 (120) 에 의해 수신된 통지 요청들 (122) 에 응답하여 통지들 (132) 을 제공하는 것이 가능한 하나 이상의 통지자들을 동시에 발견하도록 구성될 수도 있다. 또한, 플랫폼 애플리케이션 (102) 은 발견된 통지자들로부터 이용가능 통지자들을 결정하고 이용가능 통지자들과 함께 펜딩 통지 요청들을 스케줄링할 수도 있다. 통지자는, 컴퓨팅 디바이스 (110) 가 동작하고 있는 현재 동작 모드들 하에서 통지자가 통지를 제공하기 위해 이용가능하다면 이용가능한 것으로 고려될 수도 있다. 플랫폼 애플리케이션 (102) 은 또한, 이용가능 통지자들을 통해, 통지 요청들 (122) 에 응답하여 통지들 (132) 을 제공하도록 구성될 수도 있다. 통지자들의 발견, 통지자들의 가용성 결정, 및 이용가능 통지자들과 함께 통지 요청들의 스케줄링에 관한 상세를 도 2 를 참조하여 아래에 기술한다.
상술된 바와 같이, 통지, 이를테면, 통지들 (132) 은, 하나 이상의 통지 요청들 (122) 에 응답하여 사용자에게 제공될 수도 있는 통보, 이를테면, 경보, 경고, 또는 리마인더라고 지칭할 수도 있다. 통지는 시각적 통지, 가청 통지, 또는 진동 통지일 수도 있다. 시각적 통지들의 몇몇 예들은, 디스플레이 스크린의 일부, 디스플레이 스크린 상의 컬러 아이콘, 발광 다이오드 (LED) 에 의해 방출된 컬러 광, 점멸 광, 점멸 디스플레이 스크린 등에 "연결" 또는 "연결해제" 된 텍스트 라벨들을 갖는 불값 (Boolean value) 을 디스플레이하는 것을 포함할 수도 있다. 청각적 통지의 몇몇 예들은 링 톤, 비프음 (beep), 또는 "연결되었습니다" 또는 "연결해제되었습니다", "메일을 받았습니다", 또는 "좌측으로 회전하십시오" 와 같은 음성 통지를 포함할 수도 있다. 진동 통지의 몇몇 예들은 변하는 지속기간 및 강도의 진동들을 포함할 수도 있다. 진동은 또한, 일부 실시형태에서는 사운드를 생성할 수도 있어서 가청 통지인 것으로도 고려될 수도 있다는 것을 인식해야 한다.
통지자들 (130A 내지 130N) 은 일반적으로 여기에서 통지자들 (130) 이라고 지칭될 수도 있다. 통지자들 (130) 은 하나 이상의 통지들을 제공하는 것이 가능한 컴포넌트들일 수도 있다. 시각적 통지들을 제공하는 시각적 통지자들, 가청 통지들을 제공하는 청각적 통지자들, 및 진동 통지들을 제공하는 진동 통지자들과 같은 상이한 타입의 통지자들 (130) 이 존재한다. 시각적 통지자들의 몇몇 예들은 컴퓨팅 디바이스의 디스플레이 스크린 (130A) 과 같은 디스플레이 스크린, 디스플레이 스크린 (130A) 의 일부, LED, 또는 임의의 다른 광원을 포함할 수도 있다. 청각적 통지자들의 몇몇 예들은 스피커 (130N) 와 같은 스피커, 또는 임의의 다른 사운드 생성 컴포넌트를 포함할 수도 있다. 진동 통지자의 몇몇 예들은 임의의 타입의 진동 생성 컴포넌트를 포함할 수도 있다.
도 2 는, 여기에 제시된 적어도 일부의 실시형태들에 따라, 하나 이상의 통지자들 (130) 및 하나 이상의 애플리케이션들 (120) 과 통신하는 일 예시적인 플랫폼 애플리케이션 (102) 을 예시한 블록도이다. 상술된 바와 같이, 플랫폼 애플리케이션 (102) 은 애플리케이션들 (120) 로부터 통지 요청들 (122) 을 수신하고, 통지자들 (130) 로 하여금, 애플리케이션들 (120) 로부터 수신된 통지 요청들에 응답하여 통지들 (132) 을 제공하게 하도록 구성될 수도 있다.
플랫폼 애플리케이션 (102) 은 통지 요청 수집 모듈 (152), 통지 요청 우선순위화 모듈 (154), 통지자 발견 모듈 (162), 통지자 가용성 모듈 (164), 및 스케줄링 모듈 (170) 을 포함할 수도 있다. 또한, 플랫폼 애플리케이션 (102) 은, 하나 이상의 펜딩 통지 요청들을 포함하는 펜딩 통지 요청 리스트 (156), 및 하나 이상의 통지자들을 포함하는 통지자 리스트 (166) 를 포함할 수도 있다.
통지 요청 수집 모듈 (152) 은 하나 이상의 애플리케이션들 (120) 로부터 하나 이상의 통지 요청들 (122) 을 수신하도록 구성될 수도 있다. 통지 요청 수집 모듈 (152) 은 통지 요청들이 통지 요청 수집 모듈 (152) 에 의해 수신됨에 따라 펜딩 통지 요청 리스트 (156) 에 이들 통지 요청들을 저장할 수도 있다. 일부 예시적인 실시형태들에 의하면, 하나 이상의 통지 요청들 (122) 은, 다른 정보 중에서, 통지 요청이 발행된 애플리케이션을 식별하는 애플리케이션 식별자, 제공되어야 하는 통지의 타입, 콘텐츠의 관련 시간 값을 포함할 수도 있다.
통지 요청 우선순위화 모듈 (154) 은 펜딩 통지 요청 리스트 (156) 에 저장된 펜딩 통지 요청들을 동적으로 우선순위화하도록 구성될 수도 있다. 통지 요청 우선순위화 모듈 (154) 은 통지 요청 수집 모듈 (152) 에 의해 더 많은 통지 요청들 (122) 이 수신됨에 따라 펜딩 통지 요청들의 우선순위를 조정할 수도 있다.
하나 이상의 애플리케이션들 (120) 에 의해 발행된 통지 요청들 (122) 중 일부 또는 전부 중에서 우선순위를 확립하는 것은 사용자의 전체 경험을 개선시키는 것을 도울 수도 있다는 것을 인식해야 한다. 따라서, 일부 예시적인 실시형태들에 의하면, 통지 요청들을 우선순위화하기 위한 표준화된 기준이 확립될 수도 있다. 우선순위화 모듈 (154) 은, 적어도, 발행 애플리케이션에 의해 할당된 통지 요청의 우선순위화 레벨, 다른 애플리케이션들에 대한 애플리케이션의 우선순위 레벨, 사용자에 의해 수행되는 현재 활동, 사용자 선호도 등에 기초하여, 통지 요청들 (122) 각각의 우선순위화 레벨을 표준화함으로써 펜딩 통지 요청들을 우선순위화할 수도 있다.
일부 예시적인 실시형태들에 의하면, 애플리케이션, 이를테면, 통지 요청 (122A) 을 발행하는 애플리케이션 (120A) 은, 애플리케이션 (120) 이 발행한 통지 요청들 (122A) 각각에 대해 우선순위화 레벨을 할당하는 것이 가능할 수도 있다. 상술된 바와 같이, 통지 요청 (122A) 은 이벤트의 발생에 의해 트리거될 수도 있다. 애플리케이션 (120A) 은 특정 이벤트의 중요도를 결정하고, 그 이벤트와 연관된 통지 요청 (122A) 에 우선순위화 레벨을 할당하도록 구성될 수도 있다. 예를 들어, 주식 애플리케이션은, 사용자의 포트폴리오에서의 주식의 주가의 1% 이득에 의해 트리거되는 통지 요청보다 사용자의 포트폴리오에서의 주식의 주가의 10% 하락에 의해 트리거되는 통지 요청에 대해 더 높은 우선순위화 레벨을 할당할 수도 있다. 이와 유사하게, 기상 애플리케이션은, 사용자로부터 500 마일 떨어진 위치에서의 토네이도 경고의 발행에 의해 트리거되는 통지 요청에 비해 사용자의 현재 위치에서의 토네이도 경고의 발행에 의해 트리거되는 통지 요청에게 더 높은 우선순위화 레벨을 할당할 수도 있다.
일부 예시적인 실시형태들에 의하면, 다른 애플리케이션들에 대한 애플리케이션 (120A) 의 우선순위 레벨이 사용자에 의해 수동으로 또는 플랫폼 애플리케이션 (102) 에 의해 자동으로 할당될 수도 있다. 예를 들어, 일부 예시적인 실시형태들에 의하면, 전화 애플리케이션의 우선순위 레벨은 게임 애플리케이션의 우선순위 레벨보다 더 높을 수도 있다. 이에 따라, 전화 애플리케이션에 의해 발행된 임의의 통지 요청들은, 게임 애플리케이션에 의해 발행된 임의의 통지 요청들보다 더 높은 우선순위화 레벨이 할당된다.
또한, 사용자에 의해 수행되는 현재 활동은 또한, 다수의 애플리케이션들로부터 수신된 통지 요청들의 우선순위화 레벨들을 결정함에 있어서 관련될 수도 있다. 일부 예시적인 실시형태들에 의하면, 스케줄링된 미팅에 대한 리마인더를 수반하는 통지 요청은, 사용자가 일하고 있는 동안의 교통 지체를 수반하는 통지 요청보다 더 높은 우선순위화 레벨이 할당될 수도 있다. 그러나, 사용자가 운전 중인 경우, 교통 지체를 수반하는 통지 요청은, 스케줄링된 미팅에 대한 리마인더를 수반하는 통지 요청보다 더 높은 우선순위화 레벨이 할당될 수도 있다.
사용자 선호도의 예는 기상 업데이트들보다 금융 뉴스를 수신하는 것에 대한 사용자의 선호도를 포함할 수도 있다. 이에 따라, 통지 요청 우선순위화 모듈 (154) 은 기상 애플리케이션에 의해 발행된 통지 요청들보다 더 높은 우선순위화 레벨을 금융 뉴스 애플리케이션에 의해 발행된 통지 요청들에게 할당하도록 구성될 수도 있다. 이와 유사하게, 통지 요청 우선순위화 모듈 (154) 은 또한, 통지 요청들이 동일한 애플리케이션에 의해 발행되는 경우라도, 기상 업데이트와 연관된 통지 요청보다 금융 뉴스와 연관된 통지 요청에게 더 높은 우선순위화 레벨을 발행하도록 구성될 수도 있다.
통지 요청 우선순위화 모듈 (154) 은 또한, 사용자가 현재 관여하는 활동에 기초하여 통지 요청들을 할당하도록 구성될 수도 있다. 일 예시적인 시나리오에서, 컴퓨팅 디바이스의 사용자는 운전 중일 수도 있다. 사용자가 운전 중인 동안, 사용자는 교통 업데이트들 및 기상 업데이트들을 수신하는 것을 선호할 수도 있고, 금융 뉴스를 수신하는 것을 선호하지 않을 수도 있다. 이에 따라, 통지 요청 우선순위화 모듈 (154) 은 사용자가 현재 관여하는 활동을 결정하도록 구성될 수도 있고, 사용자가 현재 운전 중이라는 결정시, 통지 요청 우선순위화 모듈 (154) 은 금융 뉴스와 연관된 통지 요청들보다 더 높은 우선순위화 레벨을 교통 및 기상 업데이트들과 연관된 통지 요청들에게 할당할 수도 있다.
통지 요청 우선순위화 모듈 (154) 은 또한, 동일한 애플리케이션에 의해 발행된 통지 요청들의 우선순위화 레벨을 결정하기 위해 애플리케이션에 의해 제공된 콘텐츠의 관련 시간 값을 이용하도록 구성될 수도 있다. 그러나, 콘텐츠의 관련 시간 값이 독단적으로 각 애플리케이션에 의해 할당되고 상이한 애플리케이션들에 걸쳐 표준화된 것이 아니기 때문에, 상이한 애플리케이션들에 의해 발행된 통지 요청들과 연관된 콘텐츠의 관련 시간 값이, 콘텐츠의 관련 시간 값에 따라 우선순위화되도록 표준화될 필요는 없을 수도 있다. 상이한 애플리케이션들에 의해 발행된 통지 요청들 (122) 의 콘텐츠의 관련 시간 값 함수를 우선순위화하기 위한 값 조정 함수를 이용함으로써 표준화가 수행될 수도 있다. 따라서, 사용자가 운전 중인 예를 이용하면, 통지 요청 우선순위화 모듈 (154) 은 교통 또는 기상 업데이트들과 연관된 통지 요청의 콘텐츠의 관련 시간 값을 제 1 값 조정 함수로 승산하도록 구성될 수도 있지만, 통지 요청 우선순위화 모듈 (154) 은 금융 뉴스와 연관된 통지 요청의 콘텐츠의 관련 시간 값을 제 1 값 조정 함수보다 더 작은 값의 조정 함수 값으로 승산할 수도 있다. 이러한 방법으로, 통지 요청 우선순위화 모듈 (154) 은, 사용자의 선호도, 사용자가 현재 관여하는 활동 등을 고려할 수도 있는 콘텐츠의 표준화된 시간 값에 기초하여, 펜딩 통지 요청 리스트 (156) 내의 펜딩 통지 요청들 각각을 우선순위화할 수도 있다.
플랫폼 애플리케이션 (102) 은 통지들을 제공하는 것이 가능한 통지자들을 발견하기 위한 통지자 발견 모듈 (162) 을 이용할 수도 있다. 플랫폼 애플리케이션 (102) 은 동시에 통지자들을 발견하고 펜딩 통지 요청들을 우선순위화할 수도 있다. 통지자 발견 모듈 (162) 은 컴퓨팅 디바이스 (110) 의 하나 이상의 통지자들 (130), 및 컴퓨팅 디바이스 (110) 에 액세스가능한 하나 이상의 통지자들 (130) 을 발견할 수도 있다. 통지자 발견 모듈 (162) 은 또한, 신규 하드웨어가 컴퓨팅 디바이스 (110) 에 커플링됨에 따라 액세스가능하게 될 수도 있는 임의의 신규 통지자들을 발견할 수도 있다.
일부 예시적인 실시형태들에 의하면, 컴퓨팅 디바이스 (110) 는 하나 이상의 원격 디바이스들과 통신할 수도 있다. 원격 디바이스는 텔레비전, 랩톱, 데스크톱, 모바일 디바이스, 컴퓨팅 디바이스 (110) 와 유사한 또 다른 컴퓨팅 디바이스, 차량 스테레오 시스템, 또는 플랫폼 애플리케이션 (102) 과 통신하는 것이 가능한 하나 이상의 통지자들을 포함하는 임의의 다른 디바이스를 포함할 수도 있다. 통지자 발견 모듈 (162) 은 또한, 컴퓨팅 디바이스와 통신하는 하나 이상의 원격 디바이스들의 하나 이상의 통지자들을 발견하도록 구성될 수도 있다. 통지자 발견 모듈 (162) 은 원격 디바이스로부터 원격 디바이스가 임의의 통지자들을 갖고 있는지를 문의할 수도 있다. 원격 디바이스는 그 후에, 원격 디바이스의 일부가 아니라 원격 디바이스를 통해 액세스가능한 하나 이상의 통지자들을 포함하여, 원격 디바이스와 연관된 통지자들의 리스트를 통지자 발견 모듈 (162) 에게 제공할 수도 있다.
통지자 발견 모듈 (162) 은 통지자들의 리스트를 포함하는 통지자 리스트 (166) 를 업데이트하도록 구성될 수도 있다. 통지자 발견 모듈 (162) 은, 통지자들이 발견됨에 따라, 통지자 발견 모듈 (162) 에 의해 발견된 통지자들을 통지자 리스트 (166) 에 부가함으로써 통지자 리스트 (166) 를 업데이트할 수도 있다. 통지자 발견 모듈 (162) 은 또한, 통지자의 타입, 통지자와 연관된 디바이스, 통지자가 통지할 수 있는 데이터의 타입 (텍스트, 사운드, 진동), 통지자가 통지 요청들에 응답하여 통지를 제공할 수 있는 애플리케이션들, 통지자 비용 함수, 또는 통지자 주의력 함수 등을 포함하여, 통지자 리스트 (166) 내의 하나 이상의 통지자들과 연관된 부가 정보를 포함할 수도 있다.
통지자의 통지자 비용 함수는 통지자 이용의 지속기간들을 요약 비용 단위에 매핑할 수도 있고, 이 요약 비용 단위는 이용가능한 통지자들의 일부 또는 전부에 대해 표준화될 수 있다. 통지자의 통지자 주의력 함수는, 통지자 이용을, 통지자가 사로잡을 가능성이 있는 사용자의 주의력의 양을 나타내는 요약 단위에 매핑할 수도 있다. 이러한 방법으로, 사용자가 중단되기를 원할 수도 있는 통지 요청들은, 더 높은 통지자 주의력 함수를 갖는 통지자와 함께 스케줄링될 수도 있지만, 사용자가 중단되기를 원하지 않을 수도 있는 통지 요청들은, 더 낮은 통지자 주의력 함수를 갖는 통지자와 함께 스케줄링될 수도 있다. 일부 예시적인 실시형태들에 의하면, 모바일폰 상의 LED 는 모바일폰의 스피커 또는 모바일폰의 디스플레이 스크린보다 더 낮은 통지자 주의력 함수를 가질 수도 있다. 통지자 주의력 함수는 또한 컴퓨팅 디바이스의 환경들에 기초하여 조정될 수도 있다는 것을 인식해야 한다. 록 콘서트에서, 록 콘서트의 배경 음악은 사용자가 모바일폰의 스피커로부터 방출되는 링톤을 듣기에 너무 클 수도 있기 때문에, 모바일폰의 스피커는 모바일폰 상의 LED 보다 더 낮은 통지자 주의력 함수를 가질 수도 있다.
일부 예시적인 실시형태들에 의하면, 통지자 발견 모듈 (162) 은 또한, 특정 통지자가 통지를 제공하기 위해 소모하는 전력량을 나타내는 통지자 전력 소모 레벨을 포함할 수도 있다. 이러한 방법으로, 컴퓨팅 디바이스가 저전력 모드에서 동작하고 있는 경우, 임계 전력 레벨보다 더 많은 전력을 소모하는 통지자들은 통지들을 제공하기 위해 이용가능하지 않을 수도 있다. 통지자 전력 소모 레벨이 통지자의 통지자 비용 함수에 비례할 수도 있다는 것을 인식해야 한다. 이에 따라, 더 적은 전력을 소모하는 통지자들은 더 낮은 통지자 비용 함수들을 가질 수도 있다.
통지자 가용성 모듈 (164) 은 통지를 제공하기 위한 통지자 리스트 (166) 내의 통지자들의 가용성을 결정하도록 구성될 수도 있다. 컴퓨팅 디바이스 (110) 가 동작하고 있는 현재 동작 모드들 하에서 통지자가 통지를 제공하기 위해 이용가능하다면, 통지자는 이용가능한 것으로 고려될 수도 있다. 동작 모드들의 몇몇 예들은, 다른 것들 중에서도, 전력 소모 모드, 사용자 가용성 모드, 사용자 활동 모드를 포함한다.
전력 소모 모드는 컴퓨팅 디바이스 (110) 가 소모시킬 수 있는 전력량에 관한 것일 수도 있다. 일부 예시적인 실시형태들에 의하면, 컴퓨팅 디바이스 (110) 가 동작하고 있는 전력 모드는 하나 이상의 통지자들의 가용성을 변경할 수도 있다. 예를 들어, 컴퓨팅 디바이스 (110) 가 저전력 모드에서 동작하고 있는 경우, 임계 전력량보다 더 많이 소모하는 통지자들은 통지들을 제공하기 위해 이용가능하지 않을 수도 있다. 일 예로서, 제 1 진동 통지자, 이를테면, 일련의 4회 진동은, 저전력 모드에 의해 정의되는 임계 전력량보다 더 많은 전력을 소모할 수도 있다. 이에 따라, 통지자 가용성 모듈 (164) 은 제 1 진동 통지를 이용가능하지 않은 것으로 나타낼 수도 있다.
이와 유사하게, 컴퓨팅 디바이스 (110) 가 미팅 모드와 같은 사용자 가용성 모드에서 동작하고 있는 경우, 청각적 통지자들은 가청 통지들을 제공하기 위해 이용가능하지 않게 될 수도 있다. 이러한 방법으로, 사용자가 미팅 중인 경우, 미팅 중의 사용자 및 다른 자들이, 컴퓨팅 디바이스 (110) 에 의해 제공된 것일 수도 있는 가청 통지들에 의해 방해받지 않을 수도 있다. 사용자 가용성 모드들의 몇몇 다른 예들은, 청각적 통지자 및 진동 통지자에 의해 제공된 통지들이 어떤 가청 사운드를 생성하기 때문에 청각적 통지자 및 진동 통지자 모두가 이용가능하지 않게 될 수도 있는, 무음 모드를 포함할 수도 있다. 또한, 사용자가 시끄러운 환경에 있는 경우, 사용자는 컴퓨팅 디바이스 (110) 를 고음 모드로 설정할 수도 있다. 이러한 동작 모드에서, 청각적 통지자들은 사용자의 주의를 끌기 위해 더 높은 볼륨의 가청 통지들을 제공하는 것이 가능하다.
일부 예시적인 실시형태들에 의하면, 컴퓨팅 디바이스 (110) 가 동작하고 있는 사용자 가용성 모드는 또한 하나 이상의 통지자들의 가용성을 변경할 수도 있다. 예를 들어, 컴퓨팅 디바이스 (110) 가 "방해하지 마시오" 모드에서 동작하고 있는 경우, 통지자 가용성 모듈 (164) 는 통지자들의 일부 또는 전부가 이용가능하지 않다고 나타낼 수도 있다. 그러나, 컴퓨팅 디바이스 (110) 가 미팅 모드에서 동작하고 있다면, 통지자 가용성 모듈 (164) 는 시각적 통지자들 및 진동 통지자들만이 이용가능하지만 청각적 통지자들은 이용가능하지 않다고 나타낼 수도 있다.
일부 예시적인 실시형태들에 의하면, 통지자 발견 모듈 (162) 및 통지자 가용성 모듈 (164) 은 통지자 리스트 (166) 를 그리고 통지자 리스트 (166) 내의 통지자들의 가용성 상태를 연속적으로 그리고 주기적으로 업데이트할 수도 있다. 일부 예시적인 실시형태들에 있어서, 컴퓨팅 디바이스 (110) 가 저전력 모드에서 동작하고 있는 경우, 통지자 리스트 (166) 의 업데이트 빈도는 전력을 절약하려는 노력으로 감소될 수도 있다. 반대로, 컴퓨팅 디바이스 (110) 가 고전력 모드에서 동작하고 있는 경우, 통지자 리스트 (166) 의 업데이트 빈도는 어떠한 전력 소모 제약도 없기 때문에 증가될 수도 있다.
일부 예시적인 실시형태들에 의하면, 통지자 발견 모듈 (162) 및 통지자 가용성 모듈 (164) 은 서로 함께 동작할 수도 있다. 통지자 발견 모듈 (162) 은, 하나 이상의 통지자들을 발견하기 위해 컴퓨팅 디바이스 (110) 와 통신하는 액세스가능 원격 디바이스들 및 컴퓨팅 디바이스 (110) 를 연속적으로 또는 주기적으로 모니터링할 수도 있다. 통지자 발견 모듈 (162) 은 컴퓨팅 디바이스 (110) 및/또는 액세스가능 원격 디바이스들을 모니터링함에 따라, 통지자 발견 모듈 (162) 은 통지자 리스트 (166) 내에 있지 않은 원격 디바이스 중 하나의 원격 디바이스의 통지자 또는 컴퓨팅 디바이스의 통지자일 수 있는 후보 통지자를 식별할 수도 있다. 후보 통지자의 식별시, 통지자 발견 모듈 (162) 은 그 통지자를 통지자 리스트 (166) 에 부가할 수도 있다. 통지자 발견 모듈 (162) 은 또한, 컴퓨팅 디바이스 (110) 의 현재 동작 모드들 하에서 후보 통지자가 통지들을 제공하기 위해 이용가능한지를 결정하기 위해 통지자 가용성 모듈 (164) 의 서비스들을 이용할 수도 있다. 후보 통지자가 통지들을 제공하기 위해 이용가능한 경우, 후보 통지자는 이용가능한 것으로 식별될 수도 있다. 상술된 바와 같이, 통지자 가용성 모듈 (164) 은 통지자 리스트 (166) 내의 통지자들의 가용성을 연속적으로 또는 주기적으로 모니터링하고, 통지자 리스트 (166) 를 업데이트하여 통지자들의 가용성에 대한 어떠한 변경들도 반영하도록 할 수도 있다.
스케줄링 모듈 (170) 은 시간이 지남에 따라 통지자 리스트 (166) 내의 이용가능 통지자들과 함께 펜딩 통지 요청 리스트 (156) 내의 펜딩 통지 요청들 (122) 을 스케줄링하도록 구성될 수도 있다. 상술된 바와 같이, 각각의 통지자는 통지자 비용 함수 및 통지자 주의력 함수를 가질 수도 있다. 이와 유사하게, 각각의 통지 요청은 콘텐츠의 관련 시간 값 함수를 가질 수도 있다. 일부 예시적인 실시형태들에 의하면, 스케줄링 모듈 (170) 은 총 통지 표시를 최대화하면서 총 통지자 비용 함수를 최소화하도록 구성될 수도 있다.
총 통지자 비용 함수는, 통지 요청들에 응답하여 통지들을 제공하도록 통지자들을 이용하는 통지자 비용 함수들의 합계일 수도 있다. 총 통지 표시는, 통지자의 통지 주의력 함수와, 통지 요청의 콘텐츠의 관련 시간 값과의 함수일 수도 있다. 하나의 예에 있어서, 총 통지 표시는, 통지자의 통지 주의력 함수와, 통지 요청의 콘텐츠의 관련 시간 값과의 곱이다. 이러한 방법으로, 높은 시간 값의 콘텐츠를 갖는 통지 요청들은, 사용자의 주의력을 사로잡을 가능성이 더 많은 통지자의 사용을 정당화한다.
스케줄링 모듈 (170) 은 또한, 통지자들을 이중으로 예약하지 않고, 동적으로 변할 수 있는 컴퓨팅 디바이스 (110) 의 주의력 레이트 한도를 초과하지 않도록 구성될 수도 있다. 컴퓨팅 디바이스 (110) 의 주의력 레이트 한도는, 통지자들이 임의의 주어진 시간에 사용자에게 제공할 수 있는 주의력의 양에 대한 상한을 설정하는 양적 한도이다. 따라서, 컴퓨팅 디바이스 (110) 의 주의력 레이트 한도가 일단 도달된다면, 사용자에게 부가 통지들이 제공될 수 없다. 일 예로서, 컴퓨팅 디바이스의 주의력 레이트 한도가 10 단위로 설정되고, 제 1 통지를 제공하는 가청 통지자가 7 의 통지 주의력 인자를 가지며, 제 2 통지를 제공하는 시각적 통지자가 2 의 통지 주의력 인자를 갖는다면, 스케줄링 모듈 (170) 은 단지, 1 이하인 통지 주의력 인자를 갖는 통지자와 함께 또 다른 통지 요청을 스케줄링할 수 있다. 이러한 방법으로, 사용자가 기간 동안 수신하기를 원하는 정보의 양을 사용자가 한정할 수 있어서, 사용자가 통지들에 의해 압도되지 않도록 한다. 컴퓨팅 디바이스 (110) 가 전체 가용성 모드에서 동작하고 있는 경우에 비해 컴퓨팅 디바이스 (110) 가 한정된 가용성 모드에서 동작하고 있는 경우 주의력 레이트 한도가 더 낮다는 것을 당해 기술 분야의 숙련된 자들이 인식해야 한다. 예시적인 실시형태들에 의하면, 컴퓨팅 디바이스 (110) 는, 컴퓨팅 디바이스의 주의력 레이트 한도가, 컴퓨팅 디바이스 (110) 가 정상 모드에서 동작하고 있는 경우의 컴퓨팅 디바이스 (110) 의 주의력 레이트 한도보다 더 작은 디클러터 모드 (declutter mode) 에서 동작할 수도 있다. 이러한 방법으로, 컴퓨팅 디바이스 (110) 가 디클러터 모드에서 동작하고 있는 동안에는 사용자에게 보다 적은 통지들이 제공된다.
그러나, 스케줄링 모듈 (170) 은, 펜딩 통지 요청들의 통지 요건들에 대해, 존재하는 통지자들의 가용성과 밸런스를 맞춰야 한다. 컴퓨팅 디바이스 (110) 의 동작 모드들에 의존하여, 스케줄링 모듈 (170) 은, 하나 이상의 통지들이 특정 통지 요청에 대해 제공되어야 하는지 여부, 및 만약 제공되어야 한다면, 하나 이상의 통지들이 언제 제공되는지와 어떤 통지자들이 하나 이상의 통지들을 제공하는지를 결정하기 위해 다양한 알고리즘을 이용할 수도 있다. 그러나, 사용자의 전체 경험을 최적화하기 위해, 스케줄링 모듈 (170) 은, 통지 요청 내에 나타낸 선호도를 또한 만족시키려고 하면서, 사용자의 선호도에 기초하여 이들 결정들을 행할 수도 있다.
일부 예시적인 실시형태들에 의하면, 플랫폼 애플리케이션 (102) 은 또한, 사용자에게 제공된 통지들을 모니터링하고 또한 제공되는 통지들에 대한 사용자의 응답을 모니터링하도록 구성되는 학습 모듈 (180) 을 포함할 수도 있다. 학습 모듈 (180) 은 동작의 특정 모드들 동안 특정 타입의 통지에 대한 사용자의 선호도를 나타내는 경향들을 발견하는 것이 가능할 수도 있다. 이와 유사하게, 학습 모듈 (180) 은 또한, 사용자가 더 많이 반응하는 애플리케이션, 및 사용자가 덜 반응하는 애플리케이션들을 결정하도록 구성될 수도 있다. 이것은, 플랫폼 애플리케이션 (102) 의 다양한 모듈이 그 후에 이들 선호도를 이용하여, 특정 타입의 통지 요청들에 할당된 우선순위화 레벨들, 특정 타입의 애플리케이션들과 연관된 통지 요청들에 할당된 우선순위화 레벨들, 통지자들의 통지자 주의력 함수들, 통지자들의 통지자 비용 함수들 등을 조정하도록 할 수도 있기 때문에, 사용자의 전체 경험에 이익이 될 수도 있다. 학습 모듈은 또한, 다양한 사용자 활동 모드들 동안의 사용자 선호도, 다양한 전력 소모 모드들, 및 다양한 사용자 가용성 모드들을 포함한 컴퓨팅 디바이스의 동작 모드들에 기초하여 사용자 선호도를 결정하는 것이 가능할 수도 있다.
도 3 은, 여기에 제시된 적어도 일부의 실시형태들에 따라, 네트워크 (304) 를 통해 플랫폼 애플리케이션 (102) 과 통신할 수 있는 다수의 디바이스들 (302A 내지 302N) 을 예시한 블록도이다. 도 3 에 도시된 일부 예시적인 실시형태들에 의하면, 플랫폼 애플리케이션 (102) 은 컴퓨팅 디바이스 (110) 내에 상주하지 않을 수도 있다. 오히려, 플랫폼 애플리케이션 (102) 은 클라우드에서 실행하고, 네트워크 (304) 에 걸쳐, 일반적으로 여기에서 디바이스들 (302) 이라고 지칭되는 하나 이상의 디바이스들 (302A 내지 302N) 과 통신할 수도 있다. 디바이스들 (302) 은 컴퓨팅 디바이스 (110) 과 유사한 컴퓨팅 디바이스들일 수도 있다. 디바이스들 (302) 은 또한, 통지들을 발행하는 것이 가능한 하나 이상의 애플리케이션들을 포함할 수도 있는 임의의 다른 타입의 디바이스일 수도 있다. 또한, 디바이스들 (302) 은 통지 요청들에 응답하여 통지들을 제공하는 것이 가능한 하나 이상의 통지자들을 포함하는 임의의 타입의 디바이스일 수 있다.
디바이스들 (302) 은 네트워크 (304) 를 통해 또는 다른 근거리 또는 원거리 네트워크들에 걸쳐 서로 연결될 수도 있다. 네트워크 (304) 는, WI-FI 네트워크와 같은 WLAN (Wireless Local Area Network), WWAN (Wireless Wide Area Network), BLUETOOTH 와 같은 WPAN (Wireless Personal Area Network), WMAN (Wireless Metropolitan Area Network), 이를테면, WiMAX 네트워크, 셀룰러 네트워크, 또는 위성 네트워크와 같은 무선 네트워크를 포함할 수도 있지만 이에 한정되지 않는다. 대안적으로, 네트워크 (304) 는 유선 WAN (Wide Area Network), 이더넷과 같은 유선 LAN (Local Area Network), 유선 PAN (Personal Area Network), 또는 유선 MAN (Metropolitan Area Network) 과 같은 유선 네트워크일 수도 있지만 이에 한정되지 않는다. 네트워크 (304) 는 인터넷을 포함할 수도 있어서, 플랫폼 애플리케이션 (102) 이 인터넷으로의 무선 또는 유선 연결들을 통해 디바이스들 (302) 과 통신하도록 한다.
도 4 및 도 5 를 이하 참조하면, 컴퓨팅 디바이스에서 통지 요청들에 응답하여 통지들을 제공하기 위한 통지자들을 할당하기 위해 여기에 제시된 실시형태들에 관한 부가 상세를 제공한다. 특히, 도 4 는, 여기에 제시된 적어도 일부의 실시형태들에 따라, 통지자들을 할당하기 위한 일 예시적인 프로세스 (400) 를 예시한 흐름도이다. 프로세스 (400) 는 블록들 402, 404, 406, 408, 410, 412, 414, 416 및/또는 418 중 하나 이상에 의해 예시된 바와 같은 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수도 있다.
여기에 기술된 블록들은, 컴퓨팅 시스템 내의 상호연결된 머신 로직 회로들 또는 회로 모듈들, 또는 이들의 어떤 조합과 같이, 컴퓨팅 시스템 상에서 실행하는 일련의 컴퓨터 구현 명령들 또는 프로그램 모듈들로서 구현될 수도 있다는 것을 인식해야 한다. 이러한 구현은 다양한 실시형태들의 성능 또는 다른 요건들에 좌우되는 선택의 문제이다. 여기에 기술된 논리 동작들 중 몇몇은, 상태 동작들, 기능들, 구조적 디바이스들, 액션들, 또는 모듈들이라고 다양하게 지칭된다. 이들 동작들, 기능들, 구조적 디바이스들, 액션들 및 모듈들은 소프트웨어, 펌웨어, 특수 목적 디지털 로직, 및 이들의 임의의 조합으로 구현될 수도 있다. 또한, 일부 구현들에서, 예시된 블록들 중 하나 이상이 제거되거나, 결합되거나 또는 도면에 도시되고 여기에 기술된 것들보다 부가적인 블록들로 분리될 수도 있다는 것을 인식해야 한다. 또한, 이들 블록들은 순차적으로, 병렬로, 또는 여기에 기술된 것들과는 상이한 순서로 수행될 수도 있다.
프로세스 (400) 는 블록 402 에서 시작할 수도 있다 (통지를 제공하도록 하는 통지 요청을 수신). 블록 402 에 이어서 블록 404 가 후속할 수도 있다 (통지 요청에 응답하여 통지를 제공하는 것이 가능한 통지자들을 발견). 블록 404 에 이어서 블록 406 이 후속할 수도 있다 (발견된 통지자들로부터 이용가능 통지자들을 식별). 블록 406 에 이어서 블록 408 이 후속할 수도 있다 (이용가능 통지자들로부터 통지를 제공하기 위한 후보 통지자를 식별). 블록 408 에 이어서 블록 410 이 후속할 수도 있다 (통지를 제공하는 식별된 통지자와 함께 통지 요청을 스케줄링). 블록 410 에 이어서 블록 412 가 후속할 수도 있다 (통지 요청에 응답하여 식별된 통지자를 통해 통지를 제공). 블록 412 후에, 프로세싱이 종료할 수도 있다. 각 블록에 대한 추가 상세를 아래에 기술한다.
블록 402 (통지를 제공하도록 하는 통지 요청을 수신) 에서, 플랫폼 애플리케이션 (102) 은 통지 요청을 수신하도록 구성될 수도 있다. 애플리케이션 요청은 애플리케이션에 의해 발행될 수도 있다. 통상적으로, 애플리케이션 (120) 은 컴퓨팅 디바이스의 사용자가 통보받아야 하는 이벤트가 발생하였다는 결정시에 통지 요청을 발행할 수도 있다. 통지 요청은, 애플리케이션 (120) 이 사용자에게 제시되기를 원하는 콘텐츠를 포함할 수도 있다. 통지 요청 (122) 은 제시되어야 하는 통지의 타입, 및 콘텐츠의 관련 시간 값을 더 포함할 수도 있다. 실시형태들에 의하면, 통지 요청 수집 모듈 (152) 은 통지 요청들을 수신하고 그 통지 요청들을 펜딩 통지 요청 리스트 (156) 에 저장할 수도 있으며, 이 펜딩 통지 요청 리스트 (156) 는 통지 요청들과 연관된 정보 및 하나 이상의 펜딩 통지 요청들을 포함하고 있다. 일부 예시적인 실시형태들에 의하면, 통지 요청 우선순위화 모듈 (154) 은 펜딩 통지 요청 리스트에 저장된 펜딩 통지 요청들을 우선순위화할 수도 있다.
블록 404 (통지 요청에 응답하여 통지를 제공하는 것이 가능한 통지자들을 발견) 에서, 플랫폼 애플리케이션 (102) 은 컴퓨팅 디바이스의 하나 이상의 통지자들, 및 컴퓨팅 디바이스와 통신하는 원격 디바이스들의 통지자들을 발견하도록 구성될 수도 있다. 일부 예시적인 실시형태들에 의하면, 플랫폼 애플리케이션 (102) 의 통지자 발견 모듈 (162) 은 하나 이상의 통지자들을 발견하도록 구성될 수도 있다. 통지자 발견 모듈 (162) 은 발견 동작 동작 발견된 통지자들 중 하나 이상의 통지자들과 연관된 정보를 수집하도록 구성될 수도 있다. 통지자 발견 모듈 (162) 에 의해 수집된 정보의 예들은 통지자의 관련 전력 소모 레벨, 통지자의 타입, 및 통지자가 사로잡는 사용자의 주의력의 상대적인 양을 정량화한 통지자의 통지 주의력 함수를 포함할 수도 있다.
블록 406 (발견된 통지자들로부터 이용가능 통지자들을 식별) 에서, 플랫폼 애플리케이션 (102) 의 통지자 가용성 모듈 (164) 은 발견된 통지자들로부터 이용가능 통지자들을 식별하도록 구성될 수도 있다. 플랫폼 애플리케이션 (102) 에 의해 액세스가능한 몇몇 통지자들은 하나 이상의 통지 요청들을 제공하기 위해 이용가능할 수도 있다는 것을 인식해야 한다. 예를 들어, 청각적 통지자는 시각적 통지를 제공하는 것이 가능하지 않을 수도 있다. 또한, 특정 시간에 제 1 통지 요청에 대해 스케줄링되는 청각적 통지자는, 제 1 통지 요청과 동일한 시간에 통지를 요청하는 제 2 통지 요청에 대해 이용가능하지 않을 수도 있다. 일부 예시적인 실시형태들에 의하면, 통지자 발견 모듈 (162) 및 통지자 가용성 모듈 (164) 은, 발견된 통지자들 및 그들의 가용성에 관한 정보를 포함하는 통지자 리스트 (166) 를 유지하고 업데이트할 수도 있다.
블록 408 (발견된 통지자들로부터 통지 요청에 응답하여 통지를 제공하기 위한 후보 통지자를 식별) 에서, 플랫폼 애플리케이션 (102) 의 스케줄링 모듈 (170) 은, 이용가능 통지자들로부터, 통지 요청에 응답하여 통지를 제공하기 위한 후보 통지자를 식별하도록 구성될 수도 있다. 스케줄링 모듈 (170) 은 가장 높은 우선순위화 레벨을 갖는 통지 요청을 식별하도록 펜딩 통지 요청 리스트와 통신할 수도 있다. 가장 높은 우선순위화 레벨을 갖는 통지 요청의 식별시, 스케줄링 모듈 (170) 은 식별된 통지 요청에 응답하여 통지를 제공하는 것이 가능한 후보 통지자를 통지자 리스트 (166) 로부터 식별할 수도 있다. 스케줄링 모듈 (170) 은 펜딩 통지 요청들에 기초하여 후보 통지자를 식별하는 것을 고려할 수도 있어서, 스케줄링 모듈 (170) 이 총 통지자 비용 함수를 최소화하면서 통지 표시를 최대화하도록 한다.
블록 410 (통지를 제공하는 식별된 통지자와 함께 통지 요청을 스케줄링) 에서, 플랫폼 애플리케이션 (102) 의 스케줄링 모듈 (170) 은 식별된 통지자와 함께 식별된 통지 요청을 스케줄링하도록 구성될 수도 있다. 스케줄링 모듈 (170) 은 하나 이상의 통지 요청들을 하나 이상의 통지자들과 함께 동시에 스케줄링하도록 구성될 수도 있다. 예를 들어, 착신 통화가 수신되고 있다는 것을 나타내는 통지 요청에서, 플랫폼 애플리케이션 (102) 은 디스플레이 스크린, 스피커, 및 컴퓨팅 디바이스의 진동 생성 컴포넌트를 스케줄링하여 각각의 통지들을 동시에 제공하도록 할 수도 있다.
블록 412 (통지 요청에 응답하여 식별된 통지자를 통해 통지를 제공) 에서, 플랫폼 애플리케이션 (102) 은, 식별된 통지자로 하여금, 스케줄에 따라 식별된 통지 요청에 응답하여 통지를 제공하게 하도록 구성될 수도 있다. 다수의 통지들은 다수의 통지자들에 의해 동시에 제공될 수도 있다는 것을 인식해야 한다. 블록 412 후에, 프로세스 (400) 는 (예를 들어, 주기적으로, 연속적으로, 또는 필요시 요구에 따라) 반복하거나 종료될 수도 있다.
도 5 는, 여기에 제시된 적어도 일부의 실시형태들에 따라, 통지자들을 할당하기 위한 일 예시적인 프로세스를 예시한 흐름도이다. 프로세스 (500) 는 블록 502 에서 시작할 수도 있다 (통지 요청을 수신). 블록 502 에 이어서 블록 504 가 후속할 수도 있다 (통지 요청을 펜딩 통지 요청 리스트 (156) 에 부가). 블록 504 에 이어서 블록 506 이 후속할 수도 있다 (펜딩 통지 요청 리스트 (156) 를 우선순위화). 블록 506 에 이어서 블록 508 이 후속할 수도 있다 (가장 높은 우선순위화 레벨을 갖는 통지 요청을 식별). 블록 508 에 이어서 블록 510 이 후속할 수도 있다 (통지 요청이 전용 통지자를 나타내는가). 결정 블록 510 에 이어서 블록 512 (전용 통지자와 함께 통지 요청을 스케줄링) 또는 결정 블록 514 (통지 요청이 통지자 타입을 나타내는가) 가 후속할 수도 있다. 블록 512 에 이어서, 프로세스 (500) 로 하여금 블록 526 으로 이어지게 하는 연결부 A 가 후속할 수도 있다. 결정 블록 514 에 이어서 블록 516 (나타낸 타입의 통지자를 검색) 또는 블록 518 (일부 또는 전부의 통지자들을 검색) 이 후속할 수도 있다. 블록들 516 및 518 에 이어서 블록 520 이 후속할 수도 있다 (이용가능 통지자들을 식별). 블록 520 에 이어서 블록 522 가 후속할 수도 있다 (식별된 통지 요청을 스케줄링하도록 통지자를 식별). 블록 522 에 이어서 블록 524 가 후속할 수도 있다 (식별된 통지자와 함께 식별된 통지 요청을 스케줄링). 블록 524 에 이어서 블록 526 이 후속할 수도 있다 (식별된 통지 요청에 응답하여 식별된 통지자를 통해 통지를 제공). 블록 526 후에, 프로세싱이 종료할 수도 있다. 각 블록에 대한 추가 상세를 아래에 기술한다.
블록 502 (통지 요청을 수신) 에서, 플랫폼 애플리케이션 (102) 은 애플리케이션으로부터 통지 요청을 수신하도록 구성될 수도 있다. 통지 요청은, 애플리케이션 (120) 이 사용자에게 제시되기를 원하는 콘텐츠를 포함할 수도 있다. 통지 요청 (122) 은 제시되어야 하는 통지의 타입, 및 콘텐츠의 관련 시간 값을 더 포함할 수도 있다.
블록 504 (통지 요청을 펜딩 통지 요청 리스트 (156) 에 부가) 에서, 플랫폼 애플리케이션 (102) 의 통지 요청 수집 모듈 (152) 은 애플리케이션으로부터 수신된 통지 요청을 펜딩 통지 요청 리스트 (156) 에 부가하도록 구성될 수도 있다. 펜딩 통지 요청 리스트 (156) 는 통지 요청들과 연관된 정보 및 하나 이상의 부가 통지 요청들을 포함할 수도 있다.
블록 506 (펜딩 통지 요청 리스트 (156) 를 우선순위화) 에서, 통지 요청 우선순위화 모듈 (154) 은, 펜딩 통지 요청 리스트 (156) 내의 다른 통지 요청들에 대한 통지 요청의 우선순위를 나타내는 우선순위화 레벨을 각각의 통지 요청에 할당함으로써, 펜딩 통지 요청 리스트 (156) 내의 통지 요청들을 우선순위화하도록 구성될 수도 있다. 통지 요청 우선순위화 모듈 (154) 은, 요청을 발행한 애플리케이션의 우선순위 레벨, 요청을 발행한 애플리케이션에 의해 할당된 통지 요청의 우선순위화 레벨, 콘텐츠의 관련 시간 값, 통지를 제공하도록 요청된 통지자의 타입, 통지를 제공하는 것이 가능한 통지자의 가용성 등을 포함하는 하나 이상의 인자들에 기초하여 우선순위화 레벨들을 할당하도록 구성될 수도 있다.
블록 508 (가장 높은 우선순위화 레벨을 갖는 통지 요청을 식별) 에서, 스케줄링 모듈 (170) 은 펜딩 통지 요청에서 가장 높은 우선순위화 레벨을 갖는 통지 요청을 식별하도록 구성될 수도 있다. 이러한 방법으로, 스케줄링 모듈 (170) 은 사용자의 즉각적인 주의력을 요구하는 통지 요청에 관한 통지를 사용자에게 제공하도록 구성될 수도 있다.
결정 블록 510 (통지 요청이 전용 통지자를 나타내는가) 에서, 스케줄링 모듈 (170) 은 식별된 통지 요청이 통지를 제공하기 위한 전용 통지자를 나타내는지 여부를 결정하도록 구성될 수도 있다. 전용 통지자는, 하나의 특정 애플리케이션으로부터의 통지 요청들에 응답하여 통지들을 제공하는 것이 가능한 통지자이다. 통상적으로, 전용 통지자들은, 디스플레이 스크린 상의 특정 영역을 차지하는 시각적 통지자들을 포함할 수도 있다. 예를 들어, 전용 통지자는 통지들 (132A 내지 132C) 을 제공하는 통지자들을 포함할 수도 있다. 통지자들 (132D, 132N) 은 또한 전용될 수도 있지만, 특정 애플리케이션을 나타내는 그래픽 아이콘의 배치에 기초하여 디스플레이 스크린 상의 다양한 상이한 위치에 디스플레이되는 것이 가능할 수도 있다. 예를 들어, 기상 통지 (132D) 는, 시각적 기상 통지자에 의해 기상 애플리케이션을 나타내는 기상 그래픽 아이콘 (134A) 내에 디스플레이될 수도 있다. 시각적 기상 통지자는 디스플레이 스크린 (130A) 상의 특정 영역의 일부를 반드시 차지할 필요는 없지만, 기상 애플리케이션을 나타내는 기상 그래픽 아이콘 (134A) 에 의해 정의되는 디스플레이 스크린 (130A) 상의 영역과 연결된다.
결정 블록 510 에서, 스케줄링 모듈 (170) 이 통지 요청이 전용 통지자를 나타낸다고 결정하는 경우, 루틴 500 은 블록 512 로 진행하고 (전용 통지자와 함께 통지 요청을 스케줄링), 여기서 스케줄링 모듈 (170) 은 전용 통지자와 함께 통지 요청을 스케줄링하도록 구성될 수도 있다. 일부 예시적인 실시형태들에 의하면, 스케줄링 모듈 (170) 은 먼저, 전용 통지자가 이용가능한지를 결정할 수도 있다. 전용 통지자가 이용가능한 경우, 스케줄링 모듈 (170) 은 통지를 즉시 제공할 수도 있다. 그러나, 전용 통지자가 이용가능하지 않은 경우, 스케줄링 모듈 (170) 은 전용 통지자가 이용가능한 때에 대해 통지를 스케줄링할 수도 있다. 그러나, 전용 통지자가 통지 요청의 콘텐츠의 시간 값이 제로가 될 정도로 충분히 오랫동안 이용가능하지 않은 경우, 통지 요청은 실행되지 않을 수도 있다. 이와 유사하게, 스케줄링 모듈 (170) 은 또한 펜딩 통지 요청 리스트 (156) 를 연속적으로 모니터링할 수도 있고, 제 2 통지 요청이 전용 통지자를 이용하는 것을 나타내고 식별된 통지 요청보다 더 높은 콘텐츠의 시간 값을 갖는 경우에는 전용 통지자와 함께 제 2 통지 요청을 스케줄링할 수도 있다. 일부 대안적인 실시형태들에 의하면, 스케줄링 모듈 (170) 은, 제 2 통지 요청이 실행을 위해 스케줄링 모듈 (170) 에 의해 식별될 때까지, 식별된 통지 요청에 응답하여 통지를 제공할 수도 있다. 블록 512 로부터, 프로세스 (500) 는 블록 526 으로 진행한다.
결정 블록 510 에서, 스케줄링 모듈 (170) 이 통지 요청이 전용 통지자를 나타내지 않는다고 결정하는 경우, 루틴 500 은 결정 블록 514 (통지 요청이 통지자 타입을 나타내는가) 로 진행하고, 여기서 스케줄링 모듈 (170) 은 식별된 통지 요청이 통지자의 타입을 나타내는지를 결정하도록 구성될 수도 있다. 상술된 바와 같이, 통지자는 시각적 통지자, 청각적 통지자 및 진동 통지자 중 하나 또는 이들의 조합일 수도 있다. 이와 유사하게, 통지자들의 타입들은, 통지자가 사로잡을 가능성이 있는 사용자의 주의력의 양을 나타낼 수도 있는 통지자 주의력 함수, 또는 특정 통지자를 이용하는 비용을 나타낼 수도 있는 통지자 비용 함수에 기초하여, 상이하게 분류될 수도 있다. 더 높은 통지자 비용 함수들을 갖는 통지자들은, 더 낮은 통지자 비용 함수들을 갖는 통지자들에 비해 통지자들을 제공하도록 스케줄링될 가능성이 보다 적을 수도 있다.
결정 블록 514 에서, 스케줄링 모듈 (170) 이 통지 요청이 통지자 타입을 나타낸다고 결정하는 경우, 루틴 500 은 블록 516 (나타낸 타입의 통지자를 검색) 으로 진행하고, 여기서 스케줄링 모듈 (170) 은 나타낸 타입의 통지자들, 또는 일반적으로, 통지 요청의 기준에 맞는 통지자들을 검색하도록 구성될 수도 있다. 스케줄링 모듈 (170) 은 발견된 통지자들 중 일부 또는 전부를 포함하는 통지자 리스트 (166) 를 이용하여, 통지 요청의 기준에 맞는 후보 통지자들을 검색하도록 할 수도 있다.
결정 블록 514 에서, 스케줄링 모듈 (170) 이 통지 요청이 통지자 타입을 나타내지 않는다고 결정하는 경우, 루틴 500 은 블록 518 (일부 또는 전부의 통지자들을 검색) 로 진행하고, 여기서 스케줄링 모듈 (170) 은 통지자들 중 일부 또는 전부의 타입을 검색하도록 구성될 수도 있다.
블록 520 (이용가능 통지자들을 식별) 에서, 통지자 가용성 모듈 (164) 은 통지 요청에 나타낸 기준에 기초하여 식별된 통지자에 응답하여 통지를 제공하기 위해 이용가능한 후보 통지자들 중 일부 또는 전부를 식별하도록 구성될 수도 있다.
블록 522 (식별된 통지 요청을 스케줄링하도록 통지자를 식별) 에서, 스케줄링 모듈 (170) 은 식별된 통지 요청을 스케줄링하도록 통지자를 식별하도록 구성될 수도 있다. 스케줄링 모듈 (170) 은 통지자 비용 함수 및 통지자 주의력 함수에 기초하여 특정 통지자를 식별할 수도 있다. 일부 예시적인 실시형태들에 의하면, 특정 통지 요청에 대해, 통지자 주의력 함수와 콘텐츠의 총 값과의 곱인 통지 표시가 최대화될 수도 있지만, 통지자 비용 함수는 최소화될 수도 있다. 따라서, 다른 스케줄링 인자들을 제외한다면, 가장 높은 통지자 주의력 함수와 가장 낮은 통지자 비용 함수를 갖는 통지자가 펜딩 통지 요청과 함께 스케줄링되어야 한다. 그러나, 다른 펜딩 통지 요청들이 존재하는 경우, 스케줄링 모듈 (170) 은, 식별된 통지 요청의 요구에만 기초하여 선택한 통지자들의 관심대상을, 다른 펜딩 통지 요청들의 요구에 기초하여 선택한 통지자들과 밸런스를 맞출 수도 있다.
블록 524 (식별된 통지자와 함께 식별된 통지 요청을 스케줄링) 에서, 스케줄링 모듈 (170) 은 식별된 통지자와 함께 식별된 통지 요청을 스케줄링하도록 구성될 수도 있다. 이것은 특정 시간의 지속기간 동안 또는 사용자가 통지에 응답할 때까지 통지를 제공하는 것을 포함할 수도 있다. 스케줄링 모듈 (170) 또는 플랫폼 애플리케이션 (102) 은 사용자가 통지에 응답하는지 알지 못하기 때문에, 통지가 제공되는 최대 지속기간이 규정될 수도 있다.
예를 들어, 착신 통화가 수신되고 있는 경우, 스케줄링 모듈 (170) 은, 디스플레이 스크린으로 하여금, 발신자의 상세를 갖는 시각적 통지를 제공하게 할 수도 있고, 스피커로 하여금 가청 통지를 제공하게 할 수도 있으며, 진동 통지자로 하여금 진동을 제공하게 할 수도 있다. 이들 통지자들은 30초 동안까지 각각의 통지들을 제공할 수도 있지만, 사용자가 통화에 응답하거나 통화를 거부할 때 통지들을 제공하는 것을 중단할 수도 있다. 대안적으로, 사용자는 무음 입력 키를 누름으로써 액션을 취하도록 결정할 수도 있는데, 이를테면, 스피커 및 진동 통지자가 통지들을 제공하는 것을 중단하지만 디스플레이 스크린은 시각적 통지를 계속 제공한다. 이에 따라, 스케줄링 모듈 (170) 은 통상적으로 최대 지속기간 동안 통지자를 스케줄링할 수도 있지만, 사용자가 최대 지속기간 전에 액션을 취한다면 이용가능한 통지자를 구성하는 것이 가능하다.
블록 526 (식별된 통지 요청에 응답하여 식별된 통지자를 통해 통지를 제공) 에서, 스케줄링 모듈 (170) 은 식별된 통지 요청에 응답하여 식별된 통지자를 통해 통지를 제공하도록 구성될 수도 있다. 상술된 바와 같이, 사용자가 통지에 응답할 때까지 통지가 제공될 수도 있다. 또한, 스케줄링 모듈 (170) 에 의해 확립된 스케줄에 따라 통지가 제공될 수도 있어서, 소정의 지속기간 후에 통지를 제공하는 것을 중단할 수도 있다. 일부 예시적인 실시형태들에 있어서, 사용자가 통지에 응답할 때까지, 또는 실행된 통지 요청보다 더 높은 콘텐츠의 시간 값을 갖는 또 다른 통지 요청이, 이용될 통지자와 함께 스케줄링될 때까지, 특정 통지가 제공될 수도 있다. 블록 526 후에, 프로세스 (500) 는 (예를 들어, 주기적으로, 연속적으로, 또는 필요시 요구에 따라) 반복하거나 종료될 수도 있다.
도 6 을 참조하면, 여기에 제시된 다양한 실시형태들을 구현하기 위한 일 예시적인 컴퓨팅 디바이스를 설명한다. 컴퓨팅 디바이스 (110) 는 프로세서 (11), 메모리 (12) 및 하나 이상의 드라이브들 (13) 을 포함할 수도 있다. 드라이브들 (13) 및 그들의 관련 컴퓨터 저장 매체는 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들 (23) 및 컴퓨팅 디바이스 (110) 에 대한 다른 데이터의 저장을 제공할 수도 있다. 컴퓨팅 시스템은 통지 요청들에 응답하여 통지들을 제공하기 위한 통지자들을 할당하기 위한 실시형태들을 지원하도록 구성될 수도 있다. 예를 들어, 컴퓨팅 시스템은 여기에 상술된 플랫폼 애플리케이션 (102) 과 같은 프로그램 모듈들 (23) 을 포함할 수도 있다. 다양한 실시형태들은 컴퓨터들, 전용 하드웨어, 또는 임베디드 컴퓨팅 시스템들을 포함할 수도 있다.
컴퓨팅 디바이스 (110) 는 종래의 컴퓨터 시스템, 임베디드 제어 컴퓨터, 랩톱 또는 서버 컴퓨터, 모바일 디바이스, 셋톱 박스, 키오스크, 차량 정보 시스템, 모바일 텔레폰, 커스터마이징 머신, 또는 어떤 다른 하드웨어 플랫폼으로서 구현될 수도 있다. 프로세서 (11) 는 범용 프로세서, 프로세서 코어, 멀티프로세서, 멀티코어 프로세서, 그래픽 프로세서, 디지털 신호 프로세싱 (DSP) 프로세서, ASIC (application specific integrated circuit) 내에 구현된 커스터마이징 컴퓨팅 디바이스, FPGA (field programmable gate array) 내에 구현된 커스터마이징 컴퓨팅 디바이스, 임의의 타입의 프로그램가능 로직 내에 구현된 커스터마이징 컴퓨팅 디바이스, 상태 머신, 재구성가능 프로세서, 임의의 다른 프로세스싱 유닛, 또는 이들의 임의의 조합 또는 복합일 수도 있다. 프로세서 (11) 는 여기에 설명된 멀티코어 프로세서들에게 영향을 주는 병렬 동적 최적화를 지원할 수도 있다.
드라이브들 (13), 다른 저장 디바이스들, 또는 그들의 관련 컴퓨터 판독가능 저장 매체가 운용 시스템 (21), 애플리케이션 프로그램들 (22), 및 프로그램 모듈들 (23) 을 저장할 수도 있다. 컴퓨팅 디바이스 (110) 는 사용자가 커맨드들 및 데이터를 입력할 수도 있는 사용자 입력 디바이스들 (15) 을 포함할 수도 있다. 입력 디바이스들은 전자 디지타이저, 마이크로폰, 키보드, 포인팅 디바이스, 또는 이들의 임의의 조합을 포함할 수도 있다. 포인팅 디바이스들의 예들은 마우스, 트랙볼, 라이트 펜, 터치 스크린, 또는 터치 패드를 포함할 수도 있다. 컴퓨팅 디바이스 (110) 에 대한 다른 입력 디바이스들은 조이스틱, 게임 패드, 위성 안테나 (satellite dish), 스캐너 등을 포함할 수도 있다. 입력 디바이스들은 시스템 버스에 커플링되는 사용자 입력 인터페이스를 통해 프로세서 (11) 에 커플링될 수도 있다. 입력 디바이스들은 또한 다른 인터페이스 및 버스 구조들, 이를테면, 병렬 포트, 게임 포트 또는 USB (universal serial bus) 에 의해 커플링될 수도 있다. 또한, 컴퓨팅 디바이스 (110) 와 같은 컴퓨터들은 다른 주변 출력 디바이스들, 이를테면, 스피커, 디스플레이 스크린 (130A), 스피커 (130N), 및 출력 주변 인터페이스 (19) 또는 유사한 인터페이스를 통해 커플링될 수도 있는 진동 생성 디바이스 (116) 를 포함할 수도 있다.
컴퓨팅 디바이스 (110) 는, 모바일 디바이스, 텔레비전, 차량 사운드 시스템, 또는 네트워크 인터페이스 (16) 에 커플링된 원격 컴퓨터를 포함하지만 이에 한정되지 않는 하나 이상의 디바이스들에 대한 논리 연결들을 이용하는 네트워킹 환경 내에서 동작할 수도 있다. 원격 컴퓨터는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 디바이스, 또는 다른 공통 네트워크 노드일 수도 있다. 원격 컴퓨터는 컴퓨팅 디바이스 (110) 에 대해 여기에 기술된 다수 또는 전부의 엘리먼트들을 포함할 수도 있다. 네트워킹 환경들은 네트워크들 (WAN), LAN (local area networks), 인트라넷들, 인터넷, 또는 이들의 조합을 포함할 수도 있다.
LAN 또는 무선 LAN (WLAN) 네트워킹 환경에서 이용되는 경우, 컴퓨팅 디바이스 (110) 는 네트워크 인터페이스 (16) 또는 네트워크 어댑터를 통해 LAN 에 커플링될 수도 있다. WAN 네트워킹 환경에서 이용되는 경우, 컴퓨팅 디바이스 (110) 는 모뎀, 또는 WAN 에 걸친 통신들을 확립하기 위한 다른 메카니즘을 포함할 수도 있다. WAN 은 인터넷, 예시된 네트워크 (18), 다양한 다른 네트워크들, 또는 이들의 임의의 조합을 포함할 수도 있다. 컴퓨터들 간의 통신 링크, 링, 메시, 버스, 클라우드, 또는 네크워크를 확립하는 다른 메커니즘들이 이용될 수도 있다는 것을 인식해야 한다.
하나 이상의 실시형태들에 의하면, 컴퓨팅 디바이스 (110) 는 프로세서 (11) 및/또는 프로그램 모듈들 (23) 이 여기에 제시된 다양한 실시형태들에 따라 통지 요청들에 응답하여 통지를 제공하기 위한 통지자들을 할당할 수도 있도록 구성될 수도 있다. 컴퓨팅 디바이스 (110) 는 드라이브들 (13) 또는 다른 저장 디바이스들과 연관된 물리적 컴퓨터 판독가능 저장 매체 또는 매체들의 하나 이상의 인스턴스들을 포함할 수도 있다. 시스템 버스는 프로세서 (11) 가 코드 및/또는 데이터를 컴퓨터 판독가능 저장 매체로/로부터 판독할 수 있게 할 수도 있다. 매체는, 반도체들, 자기 재료들, 광학 매체, 전기 저장부, 전기화학 저장부, 또는 임의의 다른 이러한 저장 기술을 포함하지만 이에 한정되지 않는 임의의 적절한 기술을 이용하여 구현되는 저장 엘리먼트들의 형태로 장치를 나타낼 수도 있다. 매체는, RAM, ROM, 플래시, 또는 휘발성 또는 비휘발성 메모리 기술의 다른 타입들로 특성화되든지 간에, 메모리 (12) 와 연관된 컴포넌트들을 나타낼 수도 있다. 또한, 매체는, 저장 드라이브들 (13) 로 구현되든지 아니든지 간에, 2차 저장부를 나타낼 수도 있다. 하드 드라이브 구현들은 솔리드 스테이트로 특성화될 수도 있고, 또는 자기적으로 인코딩된 정보를 저장하는 회전 매체를 포함할 수도 있다.
저장 매체는 통지 요청들에 응답하여 통지들을 제공하기 위한 통지자들을 할당하기 위한 하나 이상의 프로그램 모듈들 (23) 을 포함할 수도 있다. 프로그램 모듈들 (23) 은, 프로세서 (11) 에 로딩되고 실행될 때, 범용 컴퓨팅 시스템을, 여기에 개시된 통지자 할당 기법들 전부 또는 일부를 용이하게 하도록 커스터마이징된 특수 목적 컴퓨팅 디바이스로 변환하는 소프트웨어 명령들을 포함할 수도 있다. 이 설명을 통해 상세히 나타낸 바와 같이, 프로그램 모듈들 (23) 은, 컴퓨팅 디바이스 (110) 가 여기에 설명된 컴포넌트들, 로직 플로우들, 및/또는 데이터 구조들을 이용하여 전체 시스템들 또는 동작 환경들 내에 관여할 수도 있는 다양한 툴 또는 기법을 제공할 수도 있다.
프로세서 (11) 는, 임의의 개수의 상태들을 개별적으로 또는 종합하여 가정할 수도 있는, 임의의 개수의 트랜지스터들 또는 다른 회로 엘리먼트들로 구성될 수도 있다. 더욱 상세하게는, 프로세서 (11) 는 상태 머신 또는 유한 상태 머신으로서 동작할 수도 있다. 이러한 머신은 프로그램 모듈들 (23) 내에 포함된 실행가능 명령들을 로딩함으로써 제 2 머신, 또는 특정 머신으로 변환될 수도 있다. 이들 컴퓨터 실행가능 명령들은 프로세서 (11) 가 상태들 간에 어떻게 전이하는지 특정함으로써 프로세서 (11) 를 변환하여, 프로세서 (11) 를 구성하는 트랜지스터들 또는 다른 회로 엘리먼트들을 제 1 머신으로부터 제 2 머신으로 변환할 수도 있고, 여기서 제 2 머신은 특히, 통지 요청들에 응답하여 통지들을 제공하기 위한 통지자들을 할당하는 것을 지원하도록 구성될 수도 있다. 또한, 하나 이상의 사용자 입력 디바이스들 (15), 네트워크 인터페이스들 (16), 다른 주변기기들, 다른 인터페이스들, 또는 하나 이상의 사용자들 또는 다른 액터들로부터의 입력을 수신함으로써 어느 한쪽의 머신의 상태들이 변환될 수도 있다. 어느 한쪽의 머신은 또한, 프린터들, 스피커들, 비디오 디스플레이들 등과 같은 다양한 출력 디바이스들의 상태들, 또는 다양한 물리적 특징들을 변환할 수도 있다.
프로그램 모듈들 (23) 을 인코딩하는 것은 또한, 저장 매체의 물리적 구조를 변환할 수도 있다. 물리적 구조의 특정 변환은 이 설명의 상이한 구현들에서 다양한 인자들에 좌우될 수도 있다. 이러한 인자들의 예들은, 저장 매체를 구현하도록 이용된 기술, 저장 매체가 주 저장부 또는 2차 저장부로 특성화되는지 여부 등을 포함할 수도 있지만 이에 한정되지 않는다. 예를 들어, 저장 매체가 반도체 기반 메모리로서 구현되는 경우, 프로그램 모듈들 (23) 은 소프트웨어가 그 내부에서 인코딩될 때 반도체 메모리 (12) 의 물리적 상태를 변환할 수도 있다. 예를 들어, 소프트웨어는 트랜지스터들, 커패시터들, 또는 반도체 메모리 (12) 를 구성하는 다른 개별 회로 엘리먼트들의 상태를 변환할 수도 있다.
또 다른 예로서, 저장 매체는 드라이브들 (13) 과 같은 자기 또는 광학 기술을 이용하여 구현될 수도 있다. 이러한 구현에서, 프로그램 모듈들 (23) 은, 소프트웨어가 그 내부에서 인코딩될 때, 자기 또는 광학 매체의 물리적 상태를 변환할 수도 있다. 이들 변환들은 소정의 자기 매체 내의 특정 위치들의 자기 특성들을 변경하는 것을 포함할 수도 있다. 또한, 이들 변환들은 소정의 광학 매체 내의 특정 위치들의 물리적 피처들 또는 특징들을 변경하여 이들 위치들의 광학 특징들을 변경하는 것을 포함할 수도 있다. 물리적 매체의 다양한 다른 변환들은 본 설명의 범위 및 사상으로부터 일탈함이 없이 가능하다는 것을 인식해야 한다.
이제 도 7 로 돌아가면, 개략도는, 여기에 제시된 적어도 일부의 실시형태들에 따라 배열된, 컴퓨팅 디바이스 상의 컴퓨터 프로세스를 실행하기 위한 컴퓨터 프로그램을 포함하는 일 예시적인 컴퓨터 프로그램 제품 (700) 의 부분도를 예시한 것이다. 예시적인 컴퓨터 프로그램 제품의 일 예시적인 실시형태는 신호 베어링 매체 (702) 를 이용하여 제공되고, 704: 통지를 제공하도록 하는 통지 요청을 수신하기 위한 하나 이상의 명령들; 컴퓨팅 디바이스를 통해, 통지 요청에 응답하여 통지를 제공하는 것이 가능한 통지자들을 발견하기 위한 하나 이상의 명령들; 컴퓨팅 디바이스를 통해, 통지를 제공하는 발견된 통지자들로부터의 통지자와 함께 통지 요청을 스케줄링하기 위한 하나 이상의 명령들; 또는 컴퓨팅 디바이스를 통해, 통지 요청에 응답하여 통지자를 통해 통지를 제공하기 위한 하나 이상의 명령들 중 적어도 하나의 명령을 포함할 수도 있다. 하나 이상의 명령들은, 예를 들어, 컴퓨터 실행가능 및/또는 로직 구현 명령들일 수도 있다. 일부 실시형태들에 있어서, 하나 이상의 컴퓨터 프로그램 제품들 (700) 의 신호 베어링 매체 (702) 는 컴퓨터 판독가능 매체 (706), 기록가능 매체 (708), 및/또는 통신 매체 (710) 를 포함한다.
일부 구현에서, 신호 베어링 매체 (702) 는 컴퓨터 판독가능 매체 (706), 이를테면 하드 디스크 드라이브, 컴팩트 디스크 (CD), 디지털 비디오 디스크 (DVD), 디지털 테이프, 메모리 등을 포함할 수도 있는데, 이에 한정되지는 않는다. 일부 구현들에서, 신호 베어링 매체 (702) 는 판독가능 매체 (708), 이를테면 메모리, 판독/기록 (R/W) CD, R/W DVD 등을 포함할 수도 있는데, 이에 한정되지는 않는다. 일부 구현들에서, 신호 베어링 매체 (702) 는 통신 매체 (710), 이를테면 디지털 및/또는 아날로그 통신 매체 (예를 들어, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 를 포함할 수도 있는데, 이에 한정되지는 않는다. 따라서, 예를 들어 컴퓨터 프로그램 제품 (700) 은 RF 신호 베어링 매체 (702) 에 의해 기술된 시스템 (100) 의 하나 이상의 모듈들로 전달될 수도 있고, 여기서 신호 베어링 매체 (702) 는 무선 통신 매체 (710) (예를 들어, IEEE 802.11 표준을 따르는 무선 통신 매체) 의 무선 형태로 전달된다.
본 개시물은 여러 양태들의 예시들로서 의도되는 본 출원에서 기술된 특정한 실시형태들의 관점에 한정되는 것이 아니다. 당해 기술 분야의 숙련된 자들에 자명하듯이 다수의 변경들 및 변형들이 그 사상 및 범위를 일탈함이 없이 이루어질 수 있다. 본 개시물의 범위 내에서 기능적으로 동등한 방법들 및 장치들은, 여기서 열거된 것들 외에도, 상술한 설명들로부터 당해 기술 분야의 숙련된 자들에게 자명할 것이다. 그러한 변경들 및 변형들은 첨부된 청구항들의 범위 내에 해당되는 것으로 의도된다. 본 개시물은 그러한 청구항들이 부여하는 균등물들의 완전한 범위와 함께, 첨부된 청구항의 관점에 의해서만 한정될 것이다. 이 개시물은 물론 변할 수 있는 특정한 방법들, 컴포넌트들, 엘리먼트들, 장치들, 또는 시스템들에 한정되는 것은 아니라는 것이 이해되어야 한다. 여기서 이용되는 기술들은 단지 특정한 실시형태들을 기술하는 목적이고, 한정하는 것으로 의도되지 않는다는 것이 또한 이해되어야 한다.
여기에서 실질적으로 임의의 복수 및/또는 단수의 용어들의 사용에 대해, 당해 기술 분야의 숙련된 자는, 콘텍스트 및/또는 애플리케이션에 따라 적절히, 복수로부터 단수로 및/또는 단수로부터 복수로 변환할 수 있다. 다양한 단수/복수 치환은 명료성을 위해 여기에서 명시적으로 설명될 수도 있다.
일반적으로, 여기에, 그리고 특히 첨부의 청구항들 (예를 들어, 첨부의 청구항들의 본문들) 에서 사용되는 용어들은 대체로 "개방형" 용어들로서 의도된다 (예를 들어, 용어 "포함하는" 은 "포함하지만 그에 한정되지 않는" 것으로서 해석되어야 하며, 용어 "갖는" 은 "적어도 갖는" 것으로서 해석되어야 하고, 용어 "포함한다" 는 "포함하지만 그에 한정되지 않는다" 로 해석되어야 하는 등이다) 는 것이 당해 기술 분야의 숙련된 자에게는 이해될 것이다.
도입 청구항 한정의 특정한 수가 의도된다면, 이러한 의도는 청구항에서 명시적으로 언급될 것이고, 그러한 한정이 없으면 그러한 의도는 없다는 것이 당해 기술 분야의 숙련된 자에게는 추가로 이해될 것이다. 예를 들어, 이해를 돕기 위한 것으로서, 다음의 첨부의 청구항들이 청구항 한정들을 도입하기 위해 도입 어구들인 "적어도 하나의" 및 "하나 이상의" 의 사용을 포함할 수도 있다. 그러나, 이러한 어구들의 사용은, 부정관사들인 "a" 또는 "an" 에 해당한다고 여겨질 국어 표현들에 의한 청구항 한정의 도입이, 동일한 청구항이 도입 어구들인 "하나 이상의" 또는 "적어도 하나의" 와 "a" 또는 "an" (예를 들어, "a" 및/또는 "an" 은 "적어도 하나의" 또는 "하나 이상의" 를 의미하는 것으로 의도되어야 한다) 과 같은 부정관사들에 해당한다고 여겨질 국어 표현들을 포함하는 경우에도, 하나의 그러한 한정만을 포함하고 있는 실시형태들에 대한 도입 청구항 한정을 포함하고 있는 임의의 특정한 청구항을 한정하는 것이라고 해석되지 않아야 하고; 동일한 것이 청구항 한정들을 도입하는데 사용되는 정관사들의 사용에 대해 참을 유지한다. 또한, 도입되는 청구항 한정의 구체적인 수가 명시적으로 언급되는 경우에도, 당해 기술 분야의 숙련된 자는 그러한 한정이 적어도 언급된 수를 의미하는 것으로 해석하여야 한다 (예를 들어, 다른 수식어 없이 가장 기본적인 것만 갖춘 "2 의 언급" 은, 적어도 2 개의 언급, 또는 둘 이상의 언급을 의미한다).
"A, B, 및 C 중 적어도 하나 등" 에 유사한 약속사항이 사용되는 경우들에서, 대체로 이러한 구조는 당해 기술 분야의 숙련된 자가 그 약속사항을 이해할 것이라는 뜻으로 의도된다 (예를 들어, "A, B, 및 C 중 적어도 하나를 갖는 시스템"은 A 단독, B 단독, C 단독, A 및 B 를 함께, A 및 C 를 함께, B 및 C 를 함께, 및/또는 A, B, 및 C 를 함께 등등을 가지는 시스템들을 포함하지만 그러한 시스템들에 한정되지는 않을 것이다). "A, B, 또는 C 중 적어도 하나 등" 에 유사한 약속사항이 사용되는 그런 경우들에서, 대체로 이러한 구조는 당해 기술 분야의 숙련된 자가 그 약속사항을 이해할 것이라는 뜻으로 의도된다 (예를 들어, "A, B, 또는 C 중 적어도 하나를 갖는 시스템" 은 A 단독, B 단독, C 단독, A 및 B 를 함께, A 및 C 를 함께, B 및 C 를 함께, 및/또는 A, B, 및 C 를 함께 등등을 가지는 시스템들을 포함하지만 그러한 시스템들로 한정되지는 않을 것이다). 둘 이상의 대체 용어들을 나타내는 가상의 임의의 선언적인 단어 및/또는 어구는, 상세한 설명, 청구범위, 또는 도면 중 어디에 있든, 용어들 중 하나, 용어들 중 어느 것이든, 또는 용어들 양쪽 모두를 포함할 가능성들을 생각하는 것으로 이해되어야 함을 당해 기술 분야의 숙련된 자에 의해 추가로 이해될 것이다. 예를 들어, 어구 "A 또는 B" 는 "A" 또는 "B" 또는 "A 및 B" 의 가능성들을 포함하는 것으로 이해될 것이다.
또한, 본 개시물의 특징들 또는 양태들이 마쿠쉬 그룹들의 용어로 기술되는 경우, 당해 기술 분야의 숙련된 자는 본 개시물이 또한 마쿠쉬 그룹의 구성원들로 된 서브그룹 또는 임의의 개개의 구성원의 관점에서도 기술된다는 것이 이해될 것이다.
당해 기술 분야의 숙련된 자에 의해 이해되는 바와 같이, 임의의 및 모든 목적들에 대해, 이를테면 기재된 설명을 제공하는 견지에서, 여기에 개시되는 모든 범위들 또한 임의의 및 모든 가능한 하위범위들 및 그 하위범위들의 조합들을 포괄한다. 임의의 열거된 범위는, 적어도 동일한 절반들, 1/3들, 1/4들, 1/5들, 1/10들 등으로 나누어지는, 충분히 설명되고 가능한 동일한 범위로서 쉽게 인식될 수 있다. 비한정적인 예로서, 여기에 설명되는 각각의 범위는 하부 1/3, 중간 1/3 및 상부 1/3 등으로 손쉽게 나누어질 수 있다. 당해 기술 분야의 숙련된 자에 의해 또한 이해되는 바와 같이, "까지", "적어도" "보다 큰," "미만" 등등과 같은 모든 표현들은 언급된 수를 포함하고 위에서 설명된 바와 같이 이후에 하위범위로 나누어질 수 있는 범위들을 지칭한다. 마지막으로, 당해 기술 분야의 숙련된 자에 의해 또한 이해되는 바와 같이, 범위는 각 개개의 구성원을 포함한다. 그래서, 예를 들어, 1개 내지 3개의 엘리먼트들을 갖는 그룹은 1개, 2개, 또는 3개의 엘리먼트들을 갖는 그룹들을 지칭한다. 이와 유사하게, 1개 내지 5개의 엘리먼트들을 갖는 그룹은 1개, 2개, 3개, 4개, 또는 5개의 엘리먼트들을 갖는 그룹들을 지칭하는 등등이다.
갖가지 양태들 및 실시예들이 본 개시물에서 개시되었지만, 다른 양태들 및 실시예들이 당해 기술 분야의 숙련된 자에게는 명백할 것이다. 본 개시물에 개시된 갖가지 양태들 및 실시예들은 예시의 목적을 위한 것이고 한정할 의도는 아니며, 진정한 범위 및 정신은 다음의 청구항들에 의해 나타내어진다.

Claims (25)

  1. 통지자들 (annunciators) 을 할당하는 컴퓨터 구현 방법으로서,
    프로세서 및 메모리를 갖는 컴퓨팅 디바이스를 통해 통지를 제공하도록 하는 통지 요청을 애플리케이션으로부터 수신함으로써, 상기 통지를 제공할 펜딩 통지 요청을 제공하는, 상기 통지를 제공하도록 하는 통지 요청을 수신하는 단계;
    상기 컴퓨팅 디바이스를 통해, 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능한 통지자들을 발견하는 단계;
    상기 컴퓨팅 디바이스를 통해, 상기 통지를 제공하기 위한 상기 발견된 통지자들로부터의 통지자로 상기 펜딩 통지 요청을 스케줄링하는 단계로서, 상기 펜딩 통지 요청을 스케줄링하는 것은,
    상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능한 통지자들을 이용하는 통지자 비용 함수들의 합을 최소화하는 것, 및
    상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능한 각각의 통지자들의 통지 주의력 함수와 상기 통지 요청의 콘텐츠의 관련 시간 값의 곱을 최대화하는 것에 기초하는, 상기 펜딩 통지 요청을 스케줄링하는 단계; 및
    상기 컴퓨팅 디바이스를 통해, 상기 펜딩 통지 요청에 응답하여 그리고 상기 스케줄링에 따라 상기 통지자를 통해 상기 통지를 제공하는 단계를 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능한 통지자들을 발견하는 단계는,
    상기 컴퓨팅 디바이스와 연관된 통지자들, 및 상기 컴퓨팅 디바이스와 통신하는 원격 디바이스들과 연관된 통지자들을 발견하는 단계를 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  3. 제 1 항에 있어서,
    상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능한 통지자들을 발견하는 단계는,
    상기 컴퓨팅 디바이스와 연관된 후보 통지자를 식별하는 단계;
    상기 컴퓨팅 디바이스와 연관된 상기 후보 통지자를 식별하는 것에 응답하여, 상기 후보 통지자가 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능한지를 결정하는 단계;
    상기 후보 통지자가 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능하다고 결정되는 것에 응답하여, 상기 후보 통지자를, 이용가능 통지자들의 리스트에 이용가능 통지자로서 부가하는 단계;
    상기 이용가능 통지자들의 리스트에서의 상기 이용가능 통지자들의 가용성을 모니터링하는 단계; 및
    상기 이용가능 통지자들의 리스트에서의 상기 이용가능 통지자들의 상기 가용성에 대한 변화들을 반영하도록 상기 이용가능 통지자들의 리스트를 업데이트하는 단계를 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  4. 제 1 항에 있어서,
    상기 통지를 제공하도록 하는 상기 통지 요청을 수신하는 단계는,
    상기 컴퓨팅 디바이스 상에서 동작하는 상기 애플리케이션으로부터 상기 통지 요청을 수신하는 단계를 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  5. 제 1 항에 있어서,
    상기 통지를 제공하도록 하는 상기 통지 요청을 수신하는 단계는,
    상기 컴퓨팅 디바이스에 커플링된 원격 디바이스 상에서 동작하는 상기 애플리케이션으로부터 상기 통지 요청을 수신하는 단계를 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  6. 제 1 항에 있어서,
    상기 통지를 제공하도록 하는 상기 통지 요청을 수신하는 단계는,
    상기 통지 요청을 발행한 애플리케이션을 나타내는 애플리케이션 식별자, 상기 통지를 제공하기를 원하는 통지자의 타입, 또는 상기 통지 요청의 우선순위화 레벨 중 적어도 하나를 수신하는 단계를 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  7. 제 1 항에 있어서,
    상기 컴퓨팅 디바이스가 동작하고 있는 전력 모드를 결정하는 단계를 더 포함하고,
    상기 통지를 제공하기 위한 상기 발견된 통지자들로부터의 통지자로 상기 펜딩 통지 요청을 스케줄링하는 단계는,
    상기 컴퓨팅 디바이스가 동작하고 있는 상기 전력 모드를 결정하는 것에 응답하여, 상기 발견된 통지자들로부터, 상기 컴퓨팅 디바이스가 동작하고 있는 상기 전력 모드에서 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하도록 구성되는 통지자를 선택하는 단계; 및
    상기 통지를 제공하기 위해 상기 선택된 통지자로 상기 펜딩 통지 요청을 스케줄링하는 단계를 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  8. 제 1 항에 있어서,
    상기 컴퓨팅 디바이스와 연관된 상기 애플리케이션으로부터 상기 통지 요청을 수신하는 단계는,
    상기 통지 요청을 발행한 애플리케이션으로부터, 특정 타입의 통지를 제공하도록 구성된 통지자의 타입을 수신하는 단계를 포함하고,
    상기 통지를 제공하기 위한 상기 발견된 통지자들로부터의 상기 통지자로 상기 펜딩 통지 요청을 스케줄링하는 단계는,
    상기 발견된 통지자들로부터, 상기 펜딩 통지 요청에 응답하여 상기 특정 타입의 통지를 제공하도록 구성되는 통지자를 선택하는 단계; 및
    상기 통지를 제공하기 위해 상기 선택된 통지자로 상기 펜딩 통지 요청을 스케줄링하는 단계를 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  9. 제 1 항에 있어서,
    상기 통지를 제공하기 위한 상기 발견된 통지자들로부터의 통지자로 상기 펜딩 통지 요청을 스케줄링하는 단계는,
    상기 통지가 앞으로 제공되어야 하는 펜딩 통지 요청 (pending annunciation request) 들을 식별하는 단계;
    상기 펜딩 통지 요청들을 식별하는 것에 응답하여, 상기 펜딩 통지 요청들 각각과 연관된 우선순위화 레벨을 결정하는 단계; 및
    상기 펜딩 통지 요청들 각각과 연관된 우선순위화 레벨을 결정하는 것에 응답하여, 상기 우선순위화 레벨이 더 높은 상기 펜딩 통지 요청들에 대한 통지들이 상기 우선순위화 레벨이 더 낮은 상기 펜딩 통지 요청들에 대한 통지들에 앞서 제공되도록 상기 펜딩 통지 요청들 각각의 상기 우선순위화 레벨에 따라 상기 펜딩 통지 요청들을 우선순위화하는 단계를 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  10. 제 9 항에 있어서,
    상기 펜딩 통지 요청들 각각과 연관된 상기 우선순위화 레벨을 결정하는 단계는,
    상기 펜딩 통지 요청을 발행한 애플리케이션을 식별하는 단계;
    상기 애플리케이션의 우선순위 레벨을 결정하는 단계; 및
    상기 우선순위화 레벨을 상기 펜딩 통지 요청에 할당하는 단계로서, 상기 우선순위화 레벨은 상기 애플리케이션의 상기 우선순위 레벨에 대응하는, 상기 우선순위화 레벨을 상기 펜딩 통지 요청에 할당하는 단계를 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  11. 제 1 항에 있어서,
    상기 컴퓨팅 디바이스가 디클러터 모드 (declutter mode) 에서 동작하고 있는지를 결정하는 단계;
    상기 컴퓨팅 디바이스가 상기 디클러터 모드에서 동작하고 있다고 결정하는 것에 응답하여, 상기 통지 요청의 우선순위화 레벨을 결정하는 단계;
    상기 통지 요청의 상기 우선순위화 레벨이 임계 우선순위화 레벨보다 더 높은지를 결정하는 단계;
    상기 통지 요청의 상기 우선순위화 레벨이 상기 임계 우선순위화 레벨보다 더 높다고 결정하는 것에 응답하여, 상기 통지 요청에 응답하여 상기 통지를 제공하는 단계; 및
    상기 통지 요청의 상기 우선순위화 레벨이 상기 임계 우선순위화 레벨보다 더 높지 않다고 결정하는 것에 응답하여, 상기 컴퓨팅 디바이스가 상기 디클러터 모드에서 더이상 동작하지 않을 때까지, 상기 통지 요청에 응답하여 상기 통지를 제공하는 것을 지연시키는 단계를 더 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  12. 제 1 항에 있어서,
    상기 펜딩 통지 요청에 응답하여 상기 통지자를 통해 상기 통지를 제공하는 단계는,
    상기 컴퓨팅 디바이스가 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하도록 구성되는 이용가능 모드에서 상기 컴퓨팅 디바이스가 동작하고 있는지를 결정하는 단계;
    상기 컴퓨팅 디바이스가 상기 이용가능 모드에서 동작하고 있다고 결정하는 것에 응답하여, 상기 펜딩 통지 요청에 응답하여 상기 통지를 즉시 제공하는 단계;
    상기 컴퓨팅 디바이스가 상기 이용가능 모드에서 동작하고 있지 않다고 결정하는 것에 응답하여, 상기 컴퓨팅 디바이스가 선택적 통지 요청들에 응답하여 상기 통지를 제공하도록 구성되는 감소된 가용성 모드에서 상기 컴퓨팅 디바이스가 동작하고 있는지를 결정하는 단계;
    상기 컴퓨팅 디바이스가 상기 감소된 가용성 모드에서 동작하고 있다고 결정하는 것에 응답하여, 상기 통지 요청의 우선순위화 레벨을 결정하는 단계;
    상기 통지 요청의 상기 우선순위화 레벨이 임계 우선순위화 레벨보다 더 높은지를 결정하는 단계;
    상기 통지 요청의 상기 우선순위화 레벨이 상기 임계 우선순위화 레벨보다 더 높다고 결정하는 것에 응답하여, 상기 통지 요청에 응답하여 상기 통지를 즉시 제공하는 단계; 및
    상기 통지 요청의 상기 우선순위화 레벨이 상기 임계 우선순위화 레벨보다 더 높지 않다고 결정하는 것에 응답하여, 상기 컴퓨팅 디바이스가 상기 감소된 가용성 모드에서 동작하는 것으로부터 상기 이용가능 모드로 전이할 때 상기 통지 요청에 응답하여 상기 통지를 제공하는 단계를 포함하는, 통지자들을 할당하는 컴퓨터 구현 방법.
  13. 제 1 항에 있어서,
    콘텐츠 함수의 관련 시간 값은 기간에 걸쳐 콘텐츠를 통지하는 것의 값을 나타내는, 통지자들을 할당하는 컴퓨터 구현 방법.
  14. 프로세서;
    상기 프로세서에 커플링된 메모리;
    통지들을 제공하기 위한 복수의 통지자들; 및
    상기 메모리로부터 상기 프로세서에서 실행하도록 구성된 플랫폼 애플리케이션을 포함하는 컴퓨팅 디바이스로서,
    상기 플랫폼 애플리케이션은,
    상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    상기 컴퓨팅 디바이스 상에서 동작하는 애플리케이션으로부터 통지 요청을 수신하게 함으로써, 상기 통지를 제공할 펜딩 통지 요청을 제공하게 하고,
    상기 복수의 통지자들로부터, 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하기 위한 통지자를 발견하게 하고,
    상기 통지를 제공하기 위한 상기 복수의 통지자들로부터의 상기 통지자로 상기 펜딩 통지 요청을 스케줄링하게 하되, 상기 펜딩 통지 요청을 스케줄링하는 것은, 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하도록 구성되는 통지자들을 이용하는 통지자 비용 함수들의 합을 최소화하는 것, 및 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능한 각각의 통지자들의 통지 주의력 함수와 상기 통지 요청의 콘텐츠의 관련 시간 값의 곱을 최대화하는 것에 기초하며,
    상기 통지자를 통해, 상기 펜딩 통지 요청에 응답하여 그리고 상기 스케줄링에 따라 상기 통지를 제공하게 하도록 구성되는, 컴퓨팅 디바이스.
  15. 제 14 항에 있어서,
    상기 통지자는 시각적 통지, 오디오 통지, 또는 진동 통지 중 적어도 하나를 제공하는, 컴퓨팅 디바이스.
  16. 제 14 항에 있어서,
    상기 통지자는, 발광 컴포넌트, 그래픽 아이콘, 오디오 방출 컴포넌트, 또는 진동 생성 컴포넌트 중 적어도 하나를 포함하는, 컴퓨팅 디바이스.
  17. 제 14 항에 있어서,
    상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하기 위한 상기 복수의 통지자들로부터 상기 통지자가 발견되는 경우, 상기 플랫폼 애플리케이션은 또한, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 상기 컴퓨팅 디바이스와 연관된 통지자들, 및 상기 컴퓨팅 디바이스와 통신하는 원격 디바이스들과 연관된 통지자들을 발견하게 하는, 컴퓨팅 디바이스.
  18. 제 14 항에 있어서,
    상기 프로세서가 상기 통지를 제공할 때, 응답의 입력을 허용하는 사용자 입력 컴포넌트를 더 포함하는, 컴퓨팅 디바이스.
  19. 제 14 항에 있어서,
    상기 통지 요청은, 상기 통지 요청을 발행한 애플리케이션을 나타내는 애플리케이션 식별자, 상기 통지를 제공하기를 원하는 통지자의 타입, 또는 상기 통지 요청의 우선순위화 레벨 중 적어도 하나를 포함하는, 컴퓨팅 디바이스.
  20. 제 14 항에 있어서,
    상기 통지들을 제공하기 위한 상기 복수의 통지자들은,
    상기 통지 요청이 2개 이상의 애플리케이션에 의해 발행될 때 상기 통지를 제공하도록 구성되는 제 1 통지자; 및
    상기 통지 요청이 단지 하나의 애플리케이션에 의해서만 발행될 때 상기 통지를 제공하도록 구성되는 제 2 통지자를 포함하는, 컴퓨팅 디바이스.
  21. 제 14 항에 있어서,
    상기 플랫폼 애플리케이션은 또한, 상기 프로세서에 의해 실행되는 것에 응답하여, 상기 프로세서로 하여금 상기 컴퓨팅 디바이스를, 제 1 우선순위화 레벨을 갖는 제 1 통지 요청에 응답하여 제 1 통지가 제공되고 제 2 우선순위화 레벨을 갖는 제 2 통지 요청에 응답하여 제 2 통지가 제공되지 않는, 디클러터 모드에서 동작하게 하는, 컴퓨팅 디바이스.
  22. 컴퓨터 실행가능 명령들이 저장된 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 판독가능 저장 매체는,
    컴퓨터에 의해 실행되는 것에 응답하여, 상기 컴퓨터로 하여금,
    프로세서 및 메모리를 갖는 컴퓨팅 디바이스를 통해 애플리케이션으로부터 통지를 제공하도록 하는 통지 요청을 수신하게 함으로써, 상기 통지를 제공할 펜딩 통지 요청을 제공하게 하고;
    상기 컴퓨팅 디바이스를 통해, 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능한 통지자들을 발견하게 하고;
    상기 컴퓨팅 디바이스를 통해, 상기 통지를 제공하기 위한 상기 발견된 통지자들로부터의 통지자로 상기 펜딩 통지 요청을 스케줄링하게 하되, 상기 펜딩 통지 요청을 스케줄링하는 것은,
    상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능한 통지자들을 이용하는 통지자 비용 함수들의 합을 최소화하는 것, 및
    상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능한 각각의 통지자들의 통지 주의력 함수와 상기 통지 요청의 콘텐츠의 관련 시간 값의 곱을 최대화하는 것에 기초하며; 그리고
    상기 컴퓨팅 디바이스를 통해, 상기 펜딩 통지 요청에 응답하여 그리고 상기 스케줄링에 따라 상기 통지자를 통해 상기 통지를 제공하게 하는, 컴퓨터 판독가능 저장 매체.
  23. 제 22 항에 있어서,
    상기 컴퓨터 판독가능 저장 매체는,
    상기 컴퓨터에 의해 실행되는 것에 응답하여, 상기 컴퓨터로 하여금,
    원격 디바이스가 상기 컴퓨터와 통신하는 것이 가능한지를 결정하게 하고;
    상기 원격 디바이스가 상기 컴퓨터와 통신하는 것이 가능하다는 결정에 응답하여, 상기 컴퓨터와 상기 원격 디바이스 사이의 통신들을 확립하게 하고;
    상기 원격 디바이스 상에서, 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능한 통지자들을 발견하게 하며;
    상기 원격 디바이스가 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하는 것이 가능하다는 결정에 응답하여, 상기 통지를 제공하는 상기 원격 디바이스 상의 상기 통지자와 함께 상기 펜딩 통지 요청을 스케줄링하게 하는, 추가의 컴퓨터 실행가능 명령들이 저장된, 컴퓨터 판독가능 저장 매체.
  24. 제 23 항에 있어서,
    상기 통지를 제공하도록 하는 상기 펜딩 통지 요청을 수신하기 위해, 상기 컴퓨터 판독가능 저장 매체는 또한, 상기 컴퓨터에 의해 실행되는 것에 응답하여, 상기 컴퓨터로 하여금, 상기 통지를 제공하는 통지자의 특정 타입을 이용하기 위한 요청을 수신하게 하고,
    상기 컴퓨터 판독가능 저장 매체는,
    상기 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금,
    상기 통지를 제공하는 상기 통지자의 상기 특정 타입을 이용하기 위한 상기 요청의 수신에 응답하여, 상기 통지를 제공하는 것이 가능한 상기 통지자의 상기 특정 타입의 통지자를 발견하게 하고;
    상기 통지자의 상기 특정 타입의 상기 통지자의 발견에 응답하여, 상기 특정 타입의 통지자로 상기 펜딩 통지 요청을 스케줄링하게 하며;
    상기 특정 타입의 통지자를 통해, 상기 펜딩 통지 요청에 응답하여 상기 통지를 제공하게 하는, 추가의 컴퓨터 실행가능 명령들이 저장된, 컴퓨터 판독가능 저장 매체.
  25. 제 22 항에 있어서,
    상기 컴퓨터 판독가능 저장 매체는,
    상기 컴퓨터에 의해 실행되는 것에 응답하여, 상기 컴퓨터로 하여금,
    상기 통지를 제공하는 것에 응답하여, 응답을 수신하게 하고;
    상기 응답을 수신하는 것에 응답하여, 상기 통지자를 제공하는 것을 중단시키는, 추가의 컴퓨터 실행가능 명령들이 저장된, 컴퓨터 판독가능 저장 매체.
KR1020137002860A 2010-11-15 2010-11-15 자동 통지자 할당 KR101431398B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2010/056661 WO2012067600A1 (en) 2010-11-15 2010-11-15 Automatic annunciator allocation

Publications (2)

Publication Number Publication Date
KR20130033443A KR20130033443A (ko) 2013-04-03
KR101431398B1 true KR101431398B1 (ko) 2014-08-19

Family

ID=46048206

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137002860A KR101431398B1 (ko) 2010-11-15 2010-11-15 자동 통지자 할당

Country Status (4)

Country Link
US (1) US8683493B2 (ko)
KR (1) KR101431398B1 (ko)
CN (1) CN103155510B (ko)
WO (1) WO2012067600A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7592912B2 (en) 2005-12-09 2009-09-22 Time Warner Cable Inc. Emergency alert data delivery apparatus and methods
US8095610B2 (en) 2008-03-28 2012-01-10 Time Warner Cable Inc. Methods and apparatus for centralized and decentralized emergency alert messaging
US8751615B2 (en) 2012-07-18 2014-06-10 Accedian Networks Inc. Systems and methods of discovering and controlling devices without explicit addressing
CN103139377A (zh) * 2012-12-26 2013-06-05 广东欧珀移动通信有限公司 用于移动通信终端的应用的消息预览方法及消息预览装置
US9472091B2 (en) 2013-10-21 2016-10-18 Time Warner Cable Enterprises Llc Systems and methods for providing emergency alerts
EP3146796B1 (en) * 2014-05-23 2021-10-27 Samsung Electronics Co., Ltd. Method and apparatus for providing notification
US10638452B2 (en) 2014-05-23 2020-04-28 Samsung Electronics Co., Ltd. Method and apparatus for providing notification
US9554355B2 (en) * 2014-07-29 2017-01-24 Ebay Inc. Methods and systems for providing notifications based on user activity data
US20160034424A1 (en) * 2014-07-30 2016-02-04 Microsoft Technology Licensing, Llc Adaptive Notifications on a Screen
US9591120B2 (en) 2014-08-15 2017-03-07 Xiaomi Inc. Method and device for adding application badge
US20160117202A1 (en) * 2014-10-28 2016-04-28 Kamal Zamer Prioritizing software applications to manage alerts
CN104853037A (zh) * 2015-04-23 2015-08-19 惠州Tcl移动通信有限公司 基于智能终端智能显示用户重要信息的穿戴设备及方法
US10086949B2 (en) * 2017-02-27 2018-10-02 Honeywell International Inc. Systems and methods for selective annunciation
US10966073B2 (en) 2017-11-22 2021-03-30 Charter Communications Operating, Llc Apparatus and methods for premises device existence and capability determination
CN108600911B (zh) 2018-03-30 2021-05-18 联想(北京)有限公司 一种输出方法及电子设备
US11374779B2 (en) 2019-06-30 2022-06-28 Charter Communications Operating, Llc Wireless enabled distributed data apparatus and methods
US11182222B2 (en) 2019-07-26 2021-11-23 Charter Communications Operating, Llc Methods and apparatus for multi-processor device software development and operation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
US20070220138A1 (en) 2006-03-20 2007-09-20 Microsoft Corporation Extensible alert types
US7448048B1 (en) * 2003-05-27 2008-11-04 International Business Machines Corporation Method for performing real-time analytics using a business rules engine on real-time heterogeneous materialized data views
US20090271792A1 (en) 2008-04-23 2009-10-29 Computer Associates Think, Inc. Method and apparatus for alert prioritization on high value end points

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020120702A1 (en) 2001-02-26 2002-08-29 Schiavone Vincent J. Method and apparatus for dynamic prioritization of electronic mail messages
US20020137552A1 (en) 2001-03-20 2002-09-26 Cannon Joseph M. Indication unit for a portable wireless device
US7119675B2 (en) * 2004-01-27 2006-10-10 Matsushita Electric Industrial Co., Ltd. Emergency alert service
JP2007304971A (ja) * 2006-05-12 2007-11-22 Nec Corp 移動通信システム、移動端末、メールサーバ及び電子メールの受信制限方法
KR101145923B1 (ko) * 2006-07-11 2012-05-15 엘지전자 주식회사 이동통신단말기의 스케쥴 관리 방법 및 이를 수행하기 위한이동통신단말기
CN101009887A (zh) * 2006-12-26 2007-08-01 华为技术有限公司 移动终端及其通信事件提示方法
US7982598B2 (en) * 2007-02-06 2011-07-19 Access Co., Ltd. Method for integrating user notifications and user alerts on an electronic device
US7774105B2 (en) 2007-10-29 2010-08-10 The Boeing Company System and method for aircraft interior annunciator
US20090197582A1 (en) 2008-02-01 2009-08-06 Lewis Robert C Platform for mobile advertising and microtargeting of promotions
FR2935506B1 (fr) * 2008-08-29 2011-10-14 Alcatel Lucent Procede et systeme de gestion automatique de notification de formats heterogenes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
US7448048B1 (en) * 2003-05-27 2008-11-04 International Business Machines Corporation Method for performing real-time analytics using a business rules engine on real-time heterogeneous materialized data views
US20070220138A1 (en) 2006-03-20 2007-09-20 Microsoft Corporation Extensible alert types
US20090271792A1 (en) 2008-04-23 2009-10-29 Computer Associates Think, Inc. Method and apparatus for alert prioritization on high value end points

Also Published As

Publication number Publication date
KR20130033443A (ko) 2013-04-03
CN103155510B (zh) 2016-08-24
CN103155510A (zh) 2013-06-12
US8683493B2 (en) 2014-03-25
WO2012067600A1 (en) 2012-05-24
US20120122428A1 (en) 2012-05-17

Similar Documents

Publication Publication Date Title
KR101431398B1 (ko) 자동 통지자 할당
US10871872B2 (en) Intelligent productivity monitoring with a digital assistant
US20220224664A1 (en) Network-based messaging system with database management for computer based inter-user communication
US10268826B2 (en) Privacy-based degradation of activity signals and automatic activation of privacy modes
US11303686B2 (en) Alarms for a system of smart media playback devices
US10210868B2 (en) Device designation for audio input monitoring
US8948821B2 (en) Notification based on user context
US8037421B2 (en) System and method for organizing application indicators on an electronic device
US8805690B1 (en) Audio notifications
US9454735B2 (en) Integrating data with a contact
EP1777611A1 (en) System and method for organizing application indicators on an electronic device
US11611844B2 (en) Systems and methods for users to receive and/or reply to information affiliated with communication attempts while remaining substantially disconnected from mobile electronic device(s) and/or networks
CN1551011A (zh) 用于指导警告定时的有限延迟策略,使用本地传感器信息的交互和通信
US20130241918A1 (en) Apparatus and method for centralized application notifications
US20140074921A1 (en) Mechanism for facilitating customized policy-based notifications for computing systems
KR20150040202A (ko) 통신 기록 관리 방법 및 그 전자 장치
US9398430B2 (en) Controlling communication arrival indicators
US8213875B1 (en) Learning and adaptive communication services
CN118034073A (zh) 一种智慧场景的处理方法及电子设备

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 5