KR101645620B1 - 모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘 - Google Patents

모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘 Download PDF

Info

Publication number
KR101645620B1
KR101645620B1 KR1020167001213A KR20167001213A KR101645620B1 KR 101645620 B1 KR101645620 B1 KR 101645620B1 KR 1020167001213 A KR1020167001213 A KR 1020167001213A KR 20167001213 A KR20167001213 A KR 20167001213A KR 101645620 B1 KR101645620 B1 KR 101645620B1
Authority
KR
South Korea
Prior art keywords
message
mobile device
user
outgoing message
outgoing
Prior art date
Application number
KR1020167001213A
Other languages
English (en)
Other versions
KR20160011238A (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 KR20160011238A publication Critical patent/KR20160011238A/ko
Application granted granted Critical
Publication of KR101645620B1 publication Critical patent/KR101645620B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • H04L51/32
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/226Delivery according to priorities
    • H04L51/26
    • H04L51/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/58Message adaptation for wireless communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Abstract

일실시예로, 모바일 장치는 모바일 장치의 사용자 인터페이스 모드에 기초한 알림 모드를 결정하고, 알림 모드를 포함하는 메시지를 서버로 전송하여, 서버가 알림 모드를 기초로 하나 이상의 메시지를 모바일 장치로 전송하게 한다.

Description

모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘{SERVER-SIDE RATE-LIMITING ALGORITHMS FOR PIGGYBACKING SOCIAL UPDATES FOR MOBILE DEVICES}
본 명세서는 일반적으로 데이터 통신에 관한 것이다.
2개의 컴퓨팅 장치가 네트워크로 연결될 때, 데이터는 하나 이상의 적절한 네트워크 프로토콜을 사용하는 네트워크를 통해 2개의 장치 사이에서 전송될 수 있다. 네트워크는 인터넷, 기업 인트라넷, 가상 사설 네트워크, 근거리 네트워크, 무선 근거리 네트워크, 셀룰러 네트워크, 광역 네트워크, 대도시 네트워크 또는 2 이상의 이런 네트워크의 조합일 수 있다.
소셜 네트워킹 웹사이트와 같은 소셜 네트워킹 시스템은 사용자들이 소셜 네트워킹 시스템과 상호작용하고, 소셜 네트워킹 시스템을 통해 서로 상호작용하도록 해준다. 소셜 네트워킹 시스템은 사용자와 관련하여 흔히 사용자 프로필이라 일컫는 레코드를 생성하고 저장할 수 있다. 사용자 프로필은 사용자의 인구학적 정보, 통신 채널 정보 및 개인 관심사를 포함할 수 있다. 또한, 소셜 네트워킹 시스템은 소셜 네트워킹 시스템에서 다른 사용자들과의 사용자의 관계(예컨대, 소셜 그래프)의 레코드를 생성하고 저장할 수 있을 뿐만 아니라 서비스(예컨대, 담벼락-게시물, 사진 공유, 이벤트 조직, 메시징, 게임 또는 광고)를 제공하여 소셜 네트워킹 시스템에서 사용자들 사이의 소셜 상호작용을 용이하게 할 수 있다. 소셜 네트워킹 시스템은 그 서비스에 관한 컨텐츠와 메시지를 네트워크를 통해 사용자의 클라이언트 장치로 전송할 수 있다.
본 명세서는 일반적으로 데이터 통신에 관한 것이다.
일실시예로, 모바일 장치는 모바일 장치의 사용자 인터페이스 모드에 기초한 알림 모드를 결정하고, 알림 모드를 포함하는 메시지를 서버로 전송하여, 서버가 알림 모드를 기초로 하나 이상의 메시지를 모바일 장치로 전송하게 한다.
본 발명의 설명 중에 포함되어 있다.
도 1은 예시적인 네트워크 환경을 도시한다.
도 2는 모바일 장치의 사용자 인터페이스 모드를 기초로 서버로부터 모바일 장치로의 메시지 전송을 관리하는 예시적인 방법을 도시한다.
도 3은 사용자 인터페이스 모드 및 알림 모드의 예를 도시한다.
도 3a는 예시적인 무선 연결 상태를 도시한다.
도 4는 서버로부터 모바일 장치로의 메시지 전송을 관리하는 예시적인 방법을 도시한다.
도 4a는 메시지 큐를 전송하는 예시적인 방법을 도시한다.
도 4b는 메시지 큐를 전송하는 또 다른 예시적인 방법을 도시한다.
도 5는 소셜 네트워킹 시스템에서 사용자들에 대한 친밀도를 계산하기 위한 예시적인 블록 다이어그램을 도시한다.
도 6은 예시적인 소셜 네트워킹 환경을 도시한다.
도 7은 요청을 기초로 사용자에 대한 친밀도를 계산하기 위한 예시적인 방법을 도시한다.
도 8은 예시적인 컴퓨터 시스템을 도시한다.
도 9는 예시적인 모바일 장치 플랫폼을 도시한다.
데이터 통신에서, 서버는 하나 이상의 메시지를 컴퓨터 네트워크를 통해 클라이언트 장치로 전송할 수 있다. 예컨대, 이메일 교환 소프트웨어를 실행하는 서버 시스템은 인터넷을 통해 이메일 메시지를 사용자의 클라이언트 장치(예컨대, 데스크톱 컴퓨터, 모바일폰, 태블릿 컴퓨터)로 전송할 수 있다. 사용자는 모바일 장치에서 실행하는 이메일 프로그램(예컨대, 마이크로소프트 아웃룩)을 사용하여 클라이언트 장치에서 수신된 이메일 메시지에 접속할 수 있다.
도 1은 하나 이상의 메시지가 서버에서 모바일 장치로 전송될 수 있는 예시적인 네트워크 환경을 도시한다. 특정 실시예로, 서버(120)는 모바일 장치(122)와 통신할 수 있고, 하나 이상의 메시지를 네트워크 클라우드(121)를 통해 모바일 장치(122)로 전송할 수 있다. 서버(120)는 하나 이상의 컴퓨터 또는 컴퓨팅 장치를 포함할 수 있다. 특정 실시예로, 서버(120)는 하나 이상의 메시지 서비스(112)로 동작가능하게 연결될 수 있다. 각각의 메시지 서비스(112)는 메시지를 하나 이상의 사용자에게 전송하도록 구성된 하나 이상의 컴퓨터 또는 컴퓨팅 장치일 수 있다. 예로서 제한 없이, 메시지는 이메일, 인스턴트 메시지(IM), 단문 메시지 서비스(SMS) 메시지, 멀티미디어 메시징 서비스(MMS) 메시지, 뉴스 아이템, 광고, 시스템 업데이트 메시지 또는 이들의 임의의 조합일 수 있다. 예컨대, 메시지는 실시간 통신 세션(예컨대, 전화 통화, 비디오 통화)을 확립하는 요청을 표시하는 알림일 수 있다. 예컨대, 서버(120)는 사용자에 대한 하나 이상의 발신 메시지를 위한 메시지 서비스(112)에 접속할 수 있고, 네트워크 클라우드(121)를 통해 하나 이상의 발신 메시지를 사용자의 모바일 장치(122)로 전송할 수 있다.
네트워크 클라우드(121)는 일반적으로 서버(120)가 모바일 장치(122)와 통신할 수 있는 네트워크 또는 네트워크들의 집합(가령 인터넷, 기업 인트라넷, 가상 사설 네트워크, 근거리 네트워크, 무선 근거리 네트워크, 셀룰러 네트워크, 광역 네트워크, 대도시 네트워크 또는 2 이상의 이런 네트워크의 조합)을 나타낸다.
모바일 장치(122)는 네트워크를 통해 (예컨대, 원격으로) 통신하기 위한 기능을 포함하는 휴대용 컴퓨터 또는 컴퓨팅 장치이다. 예컨대, 모바일 장치(122)는 모바일폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 휴대용 게임 콘솔, 전자식 책 리더기 또는 임의의 다른 적절한 휴대용 장치일 수 있다. 모바일 장치(122)는 가령 웹 브라우저(예컨대, 마이크로소프트 윈도우 인터넷 익스플로러, 모질라 파이어폭스, 애플 사파리, 구글 크롬 및 오페라 등)와 같은 하나 이상의 클라이언트 애플리케이션 또는 특수목적의 클라이언트 애플리케이션(예컨대, 마이크로소프트 아웃룩, 아이폰(iPhone)용 페이스북 등)을 실행하여 네트워크 클라우드(121)를 통해 서버(120)로부터 전송된 컨텐츠와 메시지에 접근 및 열람할 수 있다. 특정 실시예로, 모바일 장치(122)는 셀룰러 네트워크(예컨대, Global System for Mobile Communication 또는 GSM 셀룰러 네트워크, Long Term Evolution 또는 LTE 네트워크)의 기지국(131)을 통해 네트워크 클라우드(121)로 연결할 수 있다. 특정 실시예로, 모바일 장치(122)는 WI-FI 네트워크의 무선 접속점(132)을 통해 네트워크 클라우드(121)로 연결할 수 있다.
모바일 장치(예컨대, 모바일폰, 태블릿 컴퓨터)는 흔히 그 배터리와 단독으로 작동한다. 한편, 무선 네트워크를 통한 메시지의 수신은 (예컨대, 모바일 장치의 무선 송수신기 유닛에 의해) 모바일 장치의 배터리에 저장된 실질적인 에너지 양을 감소시킬 수 있다. (가령 상술한 바와 같이) 사용자가 사용자의 모바일 장치에서 소모하도록 이용가능한 많은 메시지에 대하여, 모바일 장치의 배터리 전력을 보존하기 위해 사용자의 모바일 장치로의 메시지 전송을 관리하는 것이 바람직하다. 본 명세서에서 특정 실시예는 사용자의 모바일 장치로의 메시지 전송을 관리하는 방법을 기술한다. 더 상세하게, 특정 실시예는 모바일 장치와의 사용자의 상호작용을 기초로 사용자의 모바일 장치로 메시지를 전송하는 것을 관리한다. 예컨대, 사용자가 모바일 장치와 활발히 상호작용중(예컨대, 사용자가 모바일 장치에서 실행하는 하나 이상의 애플리케이션에 접속중)이라면, 특정 실시예는 하나 이상의 메시지를 실시간으로 사용자의 모바일 장치로 전송할 수 있다. 예컨대, 사용자가 모바일 장치와 활발히 상호작용하지 않으면서 모바일 장치가 사용자의 근처에 있지 않다면(예컨대, 사용자는 수면중일 수 있다면), 특정 실시예는 사용자가 요청할 때에만 사용자의 모바일 장치로 하나 이상의 메시지를 전송할 수 있다.
도 2는 모바일 장치의 사용자 인터페이스 모드를 기초로 서버에서 모바일 장치로의 메시지 전송을 관리하는 예시적인 방법을 도시한다. 도 2의 예시적인 방법은 사용자의 모바일 장치의 하나 이상의 프로세서에서 실행하는 알림 모드 관리자 프로세스로 구현될 수 있다. 예컨대, 모바일 장치는 모바일폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 휴대용 게임 콘솔, 전자식 책 리더기 또는 임의의 다른 적절한 휴대용 장치일 수 있다. 특정 실시예로, 도 1에 도시된 바와 같이, 서버(120)는 네트워크 클라우드(121)(예컨대, 인터넷)를 통해 메시지를 통신하고 모바일 장치로 전송할 수 있다. 특정 실시예로, 도 1에 도시된 바와 같이, 모바일 장치는 셀룰러 네트워크의 기지국(131) 및/또는 WI-FI 네트워크의 접속점(122)을 통해 네트워크 클라우드(121)로 연결할 수 있다. 특정 실시예로, 알림 모드 관리자 프로세스는 모바일 장치의 사용자 인터페이스 모드(201)를 기초로 알림 모드를 결정할 수 있다. 특정 실시예로, 알림 모드 관리자 프로세스는 알림 모드를 포함하는 메시지를 하나 이상의 컴퓨팅 장치(예컨대, 서버(120))로 전송하여, 하나 이상의 컴퓨팅 장치가 알림 모드(202)를 기초로 하나 이상의 메시지를 모바일 장치로 전송하게 할 수 있다.
도 3은 도 2의 예시적인 방법에 대한 사용자 인터페이스 모드와 알림 모드의 예를 도시한다. 특정 실시예로, 알림 모드 관리자 프로세스는 사용자가 모바일 장치와 활발히 상호작용중임을 표시하는 현재 사용자 인터페이스 모드를 기초로 트리클 알림 모드(trickle notification mode)를 결정할 수 있다. 알림 모드 관리자는 사용자가 모바일 장치에서 실행하는 하나 이상의 애플리케이션과 상호작용중이라면 사용자가 모바일 장치와 활발히 상호작용중이라고 결정할 수 있다. 알림 모드 관리자 프로세스는 특정 애플리케이션의 사용자 인터페이스는 기결정된 지속시간 내(예컨대, 최근 20초 내)에서 사용자 입력을 수신하거나 사용자 인터페이스 포커스를 수신하는지를 결정하여 사용자가 특정 애플리케이션과 상호작용중인지를 결정할 수 있다. 예컨대, 알림 모드 관리자 프로세스는 모바일 장치의 운영 시스템에 접속하거나 특정 애플리케이션의 사용자 입력 이벤트를 리스너로서 구독하여, 특정 애플리케이션의 사용자 인터페이스가 기결정된 지속시간 내에서 사용자 입력을 수신(또는 사용자 인터페이스 포커스를 수신)하는지를 결정할 수 있다.
예컨대, 알림 모드 관리자 프로세스는 사용자가 모바일 장치에서 실행하는 메시지 리더 애플리케이션과 상호작용중인지를 결정할 수 있다. 예컨대, 알림 모드 관리자 프로세스는 사용자가 모바일 장치에서 메시지 리더 이외의 애플리케이션과 상호작용중인지를 결정할 수 있다. 메시지 리더는 특수-목적의 클라이언트 애플리케이션(예컨대, 마이크로소프트 아웃룩, 아이폰용 페이스북)일 수 있다. 또한, 메시지 리더는 하나 이상의 메시지(예컨대, 구글의 Gmail 웹 인터페이스, 페이스북 웹 사용자 인터페이스)에 접속하기 위한 하나 이상의 구조화된 문서(예컨대, 웹페이지, iFrame)를 디스플레이하는 웹 브라우저일 수 있다. 특정 실시예로, 도 3에 도시된 바와 같이, 현재 사용자 인터페이스 모드는 사용자가 모바일 장치(301)에서 실행하는 메시지 리더 애플리케이션과 상호작용중이거나 사용자가 모바일 장치(302)에서 메시지 리더 이외의 애플리케이션과 상호작용중이라면, 알림 모드 관리자 프로세스는 트리클 알림 모드(310)를 결정할 수 있다. 특정 실시예로, 알림 모드 관리자 프로세스는 트리클 알림 모드를 표시하는 메시지를 서버(120)로 전송하여, 서버(120)가 하나 이상의 메시지를 실시간으로 모바일 장치로 전송하게 할 수 있다. 예컨대, 트리클 알림 모드를 표시하는 메시지에 응답하여, 서버(120)에서 실행하는 서버-측 프로세스는 사용자에 대한 하나 이상의 발신 메시지를 위한 하나 이상의 메시지 서비스(112)에 접속할 수 있고, 하나 이상의 발신 메시지를 실시간으로(예컨대, 새로운 발신 메시지가 이용가능할 때마다) 사용자에게 전송할 수 있다.
특정 실시예로, 알림 모드 관리자 프로세스는 사용자가 모바일 장치와 활발히 상호작용하지 않으나 모바일 장치가 사용자의 근처에 있음, 예컨대, 사용자가 걷거나 자동차를 운전하면서 모바일 장치가 사용자의 주머니에 있을 수 있음을 표시하는 현재 사용자 인터페이스 모드를 기초로 냅 알림 모드(napping notification mode)를 결정할 수 있다. 알림 모드 관리자 프로세스는 모바일 장치에서 실행하는 애플리케이션이 기결정된 지속시간(예컨대, 최근 3분) 내에서 사용자 입력(또는 사용자 입력 포커스)을 수신하지 않는다면 사용자가 모바일 장치와 상호작용하고 있지 않다고 결정할 수 있다. 다른 실시예로, 알림 모드 관리자 프로세스는 모바일 장치의 디스플레이가 저전력 또는 저사용 상태(예컨대, 디스플레이의 전력차단중 또는 스크린 세이버나 스크린 잠금 프로그램의 활성화)에 있다면 사용자가 모바일 장치와 상호작용하고 있지 않다고 결정할 수 있다. 알림 모드 관리자는 모바일 장치가 동작중이라면(예컨대, 사용자가 모바일 장치를 실행중임을 표시하면) 모바일 장치가 사용자 근처에 있다고 결정할 수 있다. 알림 모드 관리자는 모바일 장치의 가속도계의 장치 드라이버에 접속하여 모바일 장치가 동작중인지를 결정할 수 있다.
특정 실시예로, 도 3에 도시된 바와 같이, 알림 모드 관리자 프로세스는 사용자가 모바일 장치와 상호작용하고 있지 않으나 모바일 장치가 동작중이라면(303), 냅 알림 모드(311)를 결정할 수 있다. 특정 실시예로, 알림 모드 관리자 프로세스는 냅 알림 모드를 표시하는 메시지를 서버(120)로 전송하여, 서버(120)가 기결정된 시간 구간(예컨대, 10분마다)에 하나 이상의 메시지를 모바일 장치로 전송하게 할 수 있다. 예컨대, 냅 알림 모드를 표시하는 메시지에 응답하여, 서버(120)에서 실행하는 서버-측 프로세스는 사용자에 대한 하나 이상의 발신 메시지를 위한 하나 이상의 메시지 서비스(112)에 접속할 수 있고, 10분마다 하나 이상의 발신 메시지를 모바일 장치로 전송할 수 있다.
특정 실시예로, 알림 모드 관리자 프로세스는 사용자가 모바일 장치와 활발히 상호작용하고 있지 않으면서 모바일 장치가 기결정된 지속시간 동안 정지(예컨대, 모바일 장치가 최근 15분 동안 정지)되어 있음을 표시하는 현재 사용자 인터페이스 모드를 기초로 슬립 알림 모드(sleep notification mode)를 결정할 수 있다. 예컨대, 사용자는 잠들어 있을 수 있다. 상술한 바와 같이, 알림 모드 관리자 프로세스는 모바일 장치에서 실행하는 애플리케이션이 기결정된 지속시간에 사용자 입력(또는 사용자 입력 포커스)을 수신하지 않는다면 사용자가 모바일 장치와 상호작용하고 있지 않다고 결정할 수 있다. 또한, 알림 모드 관리자 프로세스는 모바일 장치의 디스플레이가 저전력 상태나 저사용 상태에 있다면 사용자가 모바일 장치와 상호작용하고 있지 않다고 결정할 수 있다. 알림 모드 관리자 프로세스는 모바일 장치의 가속도계의 장치 드라이버에 접속하여 모바일 장치가 정지되거나 유휴상태에 있는지를 결정할 수 있다.
특정 실시예로, 도 3에 도시된 바와 같이, 알림 모드 관리자 프로세스는 사용자가 모바일 장치와 상호작용하고 있지 않으면서 모바일 장치가 정지되어 있다면(304), 슬립 알림 모드(312)를 결정할 수 있다. 특정 실시예로, 알림 모드 관리자 프로세스는 슬립 알림 모드를 표시하는 메시지를 서버(120)로 전송하여, 서버(120)가 사용자의 요청시 하나 이상의 메시지를 모바일 장치로 전송하게 할 수 있다. 즉, 서버(120)는 사용자가 메시지로의 접속을 요청하지 않으면 메시지를 모바일 장치로 전송하지 않는다. 예컨대, 사용자는 상술한 메시지 리더 애플리케이션에 접속하여, 알림 모드 관리자 프로세스가 상술한 바대로 트리클 알림 모드(310)를 표시하는 메시지를 서버(120)로 전송하게 할 수 있다. 트리클 알림 모드를 표시하는 메시지에 응답하여, 서버(120)에서 실행하는 서버-측 프로세스가 사용자에 대한 하나 이상의 발신 메시지를 위한 하나 이상의 메시지 서비스(112)에 접속할 수 있고, 하나 이상의 발신 메시지를 사용자에게 전송할 수 있다.
알림 모드 관리자 프로세스는 사용자 인터페이스 모드의 다른 조합들을 기초로 알림 모드를 결정할 수 있다. 예컨대, 알림 모드 관리자 프로세스는 사용자가 모바일 장치에서 메시지 리더 애플리케이션 이외의 애플리케이션과 상호작용중이라면(302) 또는 사용자가 모바일 장치와 상호작용하고 있지 않지만 모바일 장치가 동작중이라면(303), 냅 알림 모드를 결정할 수 있다. 알림 모드 관리자 프로세스는 사용자가 모바일 장치에서 실행하는 메시지 리더 애플리케이션과 상호작용중이라면(301), 트리클 알림 모드를 결정할 수 있다. 알림 모드 관리자 프로세스는 사용자가 모바일 장치와 상호작용하고 있지 않으면서 모바일 장치가 정지되어 있다면(304), 슬립 알림 모드를 결정할 수 있다.
게다가, 알림 모드 관리자 프로세스는 모바일 장치의 전력 상태를 기초로 알림 모드를 결정할 수 있다. 예컨대, 알림 모드 관리자 프로세스는 모바일 장치의 배터리에 대한 장치 드라이버에 접속할 수 있고 배터리 레벨이 낮다(예컨대, 20% 미만의 충전)고 결정할 수 있다. 배터리 에너지를 보존하기 위해, 알림 모드 관리자 프로세스는 도 3에 도시된 바와 같이 배터리 레벨이 낮다(305)면 슬립 알림 모드(312)를 결정할 수 있다. 다른 실시예로, 알림 모드 관리자 프로세스는 배터리가 거의 완전히 충전(예컨대, 90% 이상의 충전)되어 있다면 냅 알림 모드를 결정할 수 있다. 알림 모드는 배터리가 충전중이라면 트리클 알림 모드를 결정할 수 있다.
또한, 알림 모드 관리자 프로세스는 모바일 장치의 현재 무선 네트워크 상태를 기초로 알림 모드를 결정할 수 있다. 예컨대, 알림 모드 관리자 프로세스는 모바일 장치의 무선 통신 서브시스템의 장치 드라이버에 접속할 수 있고 현재 무선 네트워크 연결의 신호 강도(예컨대, 5bars 중에서 4)를 결정할 수 있다. 예컨대, 약한 신호 강도(예컨대, 5bars 중에서 1)를 가진 무선 네트워크 연결은 패킷 손실로 인해 데이터 통신에 효율적이지 않을 수 있다(따라서, 더 많은 에너지가 소모된다). 도 3에 도시된 바와 같이, 알림 모드 관리자 프로세스는 현재 무선 네트워크 연결의 신호 강도가 낮다(306)면 슬립 알림 모드(312)를 결정할 수 있다.
특정 실시예는 알림 모드를 기초로 모바일 장치의 무선 네트워크 상태를 또한 변경할 수 있다. 훈시적 목적상, 도 3a는 GSM용 RRC(Radio Resource Control) 연결 모드 및 발전된 UMTS(evolved Universal Mobile Telecommunication System) 지상 무선 접속 네트워크(E-UTRAN) 셀룰러 네트워크 연결을 도시한다. 본 명세서는 임의의 타입의 셀룰러 네트워크의 무선 네트워크 상태의 임의의 조합을 고려한다. 도 3a의 예에서, 전력공급 후, 모바일 장치가 DCH(Dedicated Channel) 연결 모드(351) 또는 FACH(Forward Access Channel) 연결 모드(353)로 전환하여 기지국과의 연결을 확립할 때까지, 모바일 장치는 유휴(IDLE) 상태에 머문다. DCH 연결 모드와 FACH 연결 모드 이외에, 모바일 장치는 또한 PCH(Paging Channel) 연결 모드(352)의 기지국으로 연결할 수 있다. 연결 모드들 중에서, DCH 연결 모드는 가장 높은 데이터 대역폭 및 가장 높은 에너지 소비를 가질 수 있다(예컨대, 2MB/sec, 200mA). FACH 연결 모드는 더 낮은 데이터 대역폭을 가지나 DCH 연결 모드의 에너지의 약 50%를 소비한다(예컨대, 4kB/sec, 100mA). PCH 연결 모드는 0의 데이터 대역폭을 가지나 DCH 연결 모드의 에너지의 약 1~2%를 소비한다(예컨대, 데이터 없음, 2mA). 모바일 장치는 더 높은 전력과 데이터 대역폭 연결 상태에서 더 낮은 전력과 데이터 대역폭 연결 상태로 전환(예컨대, 도 3a의 360, 361 및 362)하여 기지국과의 연결을 유지하면서 에너지 소비를 보전할 수 있다. 전환(360, 361, 362)은 타이머를 사용하여 유발(triggered)될 수 있다. 예컨대, 기지국은 모바일 장치가 데이터 전송 세션을 완료한 10초 후 모바일 장치와의 무선 연결을 더 높은 전력과 데이터 대역폭 연결 상태에서 더 낮은 전력과 데이터 대역폭 연결 상태로 전환할 수 있다. 또한, 모바일 장치는 더 낮은 전력과 대역폭 연결 상태로의 전환을 위한 요청(예컨대, 3GPP TS 25.331 Release 8의 CR3483R2에 기술된 빠른 휴면 요청(fast dormancy request))을 기지국으로 송신하여, 타이머가 만료하기를 기다릴 필요없이 기지국과의 무선 연결을 더 높은 전력과 데이터 대역폭 연결 상태에서 더 낮은 전력과 데이터 대역폭 연결 상태로 활발히 전송할 수 있다.
특정 실시예로, 알림 모드 관리자 프로세스는 알림 모드를 기초로 제2 무선 네트워크 상태를 결정할 수 있다. 특정 실시예로, 알림 모드 관리자 프로세스는 제2 무선 네트워크 상태에 대한 요청을 셀룰러 기지국으로 전송하여, 기지국이 모바일 장치와 셀룰러 기지국 사이의 연결을 제2 무선 네트워크 상태로 전환하게 할 수 있다. 예컨대, 알림 모드 관리자 프로세스는 도 3에 도시된 바와 같이 사용자 인터페이스 모드(304)를 기초로 슬립 알림 모드(312)를 결정할 수 있다. 슬립 알림 모드 동안 서버(120)는 사용자가 요청하지 않으면 모바일 장치로 메시지를 송신하지 않기 때문에, 모바일 장치의 배터리 수명을 보존하도록 낮은 전력과 데이터 대역폭 모드를 구비하는 것이 바람직하다. 예컨대, 알림 모드 관리자 프로세스는 IDLE 연결 모드에 대한 요청을 기지국(131)으로 전송하여, 기지국(131)이 모바일 장치와 기지국(131) 사이의 무선 연결을 IDLE 연결 모드로 전환(322)하게 할 수 있다. 마찬가지로, 예컨대, 알림 모드 관리자 프로세스는 도 3에 도시된 바와 같이 사용자 인터페이스 모드(303)를 기초로 냅 알림 모드(311)를 결정할 수 있다. 알림 모드 관리자 프로세스는 PCH 연결 모드에 대한 요청을 기지국(131)으로 전송하여, 기지국(131)이 모바일 장치와 기지국(131) 사이의 무선 연결을 PCH 연결 모드로 전환(321)하게 할 수 있다. 또 다른 예에서, 알림 모드 관리자 프로세스는 도 3에 도시된 바와 같이 사용자 인터페이스 모드(301 또는 302)를 기초로 트리클 알림 모드(310)를 결정할 수 있다. 알림 모드 관리자 프로세스는 FACH 연결 모드에 대한 요청을 기지국(131)으로 전송하여, 기지국(131)이 모바일 장치와 기지국(131) 사이의 무선 연결을 FACH 연결 모드로 전환(320)하게 할 수 있다.
상술한 바와 같이, 특정 실시예는 모바일 장치의 사용자 인터페이스 모드를 기초로 모바일 장치에 대한 알림 모드를 결정할 수 있다. 특정 실시예는 알림 모드를 표시하는 메시지를 서버로 전송하여, 서버가 알림 모드를 기초로 메시지를 모바일 장치로 전송하게 할 수 있다. 예컨대, 서버는 알림 모드가 트리클 알림 모드라면 메시지를 실시간으로 모바일 장치로 전송할 수 있다. 예컨대, 서버는 알림 모드가 냅 알림 모드라면 10분 마다 메시지를 모바일 장치로 전송할 수 있다. 알림 모드를 기초로 모바일 장치로 발신 메시지를 전송하는 것 이외에, 도 4에 도시된 바와 같이, 특정 실시예는 발신 메시지의 순위를 또한 기초로 발신 메시지를 모바일 장치로 전송할 수 있다.
특정 실시예로, 서버(120)는 모바일 장치(401)의 알림 모드(예컨대, 트리클 알림 모드, 냅 알림 모드)를 포함하는 메시지를 사용자의 모바일 장치로부터 수신할 수 있다. 특정 실시예로, 서버(120)는 가령 배터리 수명, 신호 강도, 무선 네트워크 가용성(WiFi 또는 3G/4G), 장치가 충전중인지 여부 등과 같은 모바일 장치의 안정상태(health)를 포함하는 메시지를 사용자의 모바일 장치로부터 수신할 수 있고, 서버(120)는 모바일 장치에 대한 알림 모드를 결정할 수 있다. 특정 실시예로, 모바일 장치는 모바일 장치의 알림 모드, 즉 변수들(301-306...)을 결정하는 요인들을 서버(120)로 전송할 수 있다. 특정 실시예로, 서버(120)는 모바일 장치의 알림 모드를 결정하고, 알림 모드를 조정하도록 모바일 장치로 명령어를 전송한다. 특정 실시예로, 모바일 장치는 그 자체의 알림 모드를 결정하나, 여전히 그 시스템 안정상태에 대한 정보를 서버(120)로 전송한다.
메시지는 사용자의 식별자(예컨대, 사용자 이름, 전화번호, 이메일 주소)를 더 포함할 수 있다. 메시지에 응답하여, 서버(120)를 실행하는 서버-측 프로세스는 사용자에 대한 하나 이상의 발신 메시지를 표시하는 하나 이상의 메시지 서비스(112)에 접속할 수 있다(402). 서버-측 프로세스는 하나 이상의 발신 메시지에 대한 정보를 위한 하나 이상의 메시지 서비스(112)에 접속할 수 있다. 예컨대, 발신 메시지에 대한 정보는 발신 메시지의 발신자의 하나 이상의 식별자(예컨대, 사용자 이름, 전화번호, 이메일 주소)를 포함할 수 있다.
특정 실시예로, 서버-측 프로세스는 각각의 하나 이상의 발신 메시지에 대한 값을 결정할 수 있다(403). 특정 실시예로, 서버-측 프로세스는 각각의 하나 이상의 발신 메시지와 사용자 사이의 친밀성이나 소셜 관련성, 즉 각각의 발신 메시지의 발신자와 사용자 사이의 친밀성을 기초로 각각의 하나 이상의 발신 메시지에 대한 값을 결정할 수 있다. 예컨대, 서버-측 프로세스는 각각의 하나 이상의 발신 메시지에 친밀성 점수를 할당할 수 있다. 예컨대, 서버-측 프로세스는 발신 메시지의 발신자가 사용자의 직접적인 가족 구성원(예컨대, 부모, 형제)이라면 1.0의 친밀성 점수를, 발신 메시지의 발신자가 사용자와 빈번히 통신한다면 0.9의 친밀성 계수를 또는 발신 메시지의 발신자가 소셜 네트워킹 시스템의 소셜 그래프에서 사용자의 일촌 소셜 컨택이라면 0.7의 친밀성 계수를 발신 메시지에 할당할 수 있다. 또한, 가령 채팅, 담벼락 게시물, 이메일 등과 같은 소셜 네트워킹 시스템상의 사용자 사이의 상호작용이 소셜 네트워킹 시스템의 사용자들 사이의 친밀성을 점수화하는데 사용될 수 있다. 친밀성 점수를 측정하는 방법은 하기에 기술된다.
특정 실시예는 사용자가 모바일 장치와 상호작용중이라면 모바일 장치로 더 많은 발신 메시지를 전송할 수 있는 반면, 사용자가 모바일 장치와 활발히 상호작용하고 있지 않다면 모바일 장치로 더 적은 발신 메시지를 전송할 수 있다. 특정 실시예로, 서버-측 프로세스는 알림 모드와 하나 이상의 발신 메시지의 각각의 값을 기초로 적어도 하나의 발신 메시지를 모바일 장치로 전송할 수 있다(404). 예컨대, 트리클 알림 모드(예컨대, 사용자가 모바일 장치와 상호작용중임)를 표시하는 모바일 장치로부터의 메시지에 응답하여, 서버-측 프로세스는 기결정된 임계치(예컨대, 0.4)보다 더 큰 친밀성 점수를 가진 발신 메시지들을 선택할 수 있고, 선택된 발신 메시지들을 모바일 장치로 전송할 수 있다. 반면에, 예컨대, 냅 알림 모드(예컨대, 사용자가 모바일 장치와 상호작용하고 있지 않지만 모바일 장치가 동작중임)를 표시하는 모바일 장치로부터의 메시지에 응답하여, 서버-측 프로세스는 더 높은 임계치(예컨대, 0.8)를 사용하여 높은 친밀성의 발신 메시지(예컨대, 사용자와 가장 관련 있는 메시지)만을 선택할 수 있고, 선택된 높은 친밀성의 발신 메시지를 모바일 장치로 전송할 수 있다.
가장 높은 친밀성 점수를 가진 발신 메시지를 모바일 장치로 전송하는 것 이외에, 특정 실시예는 큐에 하나 이상의 나머지 발신 메시지를 저장할 수 있고 후속시간에 모바일 장치로 전송할 수 있다. 특정 실시예로, 서버-측 프로세스는 하나 이상의 발신 메시지의 각각의 값과 알림 모드를 기초로 하나 이상의 발신 메시지 중 하나 이상을 선택하고 큐에 저장할 수 있다. 예컨대, 서버-측 프로세스는 0.4 미만의 친밀성 점수를 가진 발신 메시지를 선택할 수 있고, 알림 모드가 트리클 알림 모드라면 선택된 메시지를 큐에 저장할 수 있다. 예컨대, 서버-측 프로세스는 0.8 미만의 친밀성 점수를 가진 발신 메시지를 선택할 수 있고, 알림 모드가 냅 알림 모드라면 선택된 메시지를 큐에 저장할 수 있다.
서버-측 프로세스는 후속시간에 큐잉된 하나 이상의 발신 메시지 중 적어도 하나를 모바일 장치로 전송할 수 있다. 예컨대, 서버-측 프로세스는 기결정된 시간 구간에(예컨대, 30분 마다) 적어도 하나의 큐잉된 발신 메시지를 모바일 장치로 전송할 수 있다. 예컨대, 서버-측 프로세스는 큐의 크기가 기결정된 임계치보다 큰 경우(예컨대, 큐가 20 이상의 큐잉된 메시지를 가지는 경우) 적어도 하나의 큐잉된 발신 메시지를 모바일 장치로 전송할 수 있다. 예컨대, 서버-측 프로세스는 실시간 발신 메시지(예컨대, 전화통화)가 모바일 장치로 전송되는 경우 적어도 하나의 큐잉된 메시지를 모바일 장치로 전송할 수 있다. 예컨대, 서버-측 프로세스는 높은 친밀성의 발신 메시지(예컨대, 0.8 이상의 친밀성 점수를 가진 메시지)가 모바일 장치로 전송되는 경우 적어도 하나의 큐잉된 발신 메시지를 전송할 수 있다. 즉, 서버-측 프로세스는 또 다른 실시간의 적어도 하나의 큐잉된 발신 메시지 또는 높은 친밀성의 발신 메시지를 피기백(piggyback)할 수 있다.
도 4a는 모바일 장치의 보고된 알림 모드, 또는 대안으로 모바일 장치의 보고된 시스템 안정상태를 기초로 메시지를 모바일 장치로 큐잉하고 전송하는 예시적인 방법을 도시한다. 단계 405에서, 서버(120)상의 하나 이상의 서버-측 프로세스는 메시지 서비스(112)로부터 발신 메시지를 수신할 수 있다. 상술한 바와 같이, 메시지는 인스턴트 메시지, 친구 요청과 요청의 수락, 사용자의 담벼락에 기록하는 또 다른 사용자, 사용자의 사진을 태깅하는 또 다른 사용자, 인근 사용자들로부터의 체크인, 사용자의 친구들로부터의 상태 메시지 등을 포함하나 이에 국한되지 않는, 모바일 장치로 전송되는 임의의 타입의 알림이나 통신일 수 있다.
단계 406에서, 서버(120)상의 하나 이상의 서버-측 프로세스는 발신 메시지에 점수를 할당한다. 상술한 바와 같이, 점수는 친밀성 점수를 기초로 할당될 수 있다. 특정 실시예로, 친밀성 점수는 사용자가 그런 메시지에 가지는 상대적인 관심도의 예측자일 수 있다. 이런 실시예에서, 예측 함수(predictor function)는 동일한 타입의 메시지를 가지는 사용자의 이전 참여 이력에 기초한 기계 학습 알고리즘일 수 있다. 메시지 친밀성 점수는 도 5 및 7을 참조로 더 상세히 기술된다. 특정 실시예로, 메시지들은 메시지의 기결정된 카테고리화를 기초로 값들을 할당받을 수 있다. 예컨대, 가령 인스턴트 메시지, 담벼락 게시물 또는 친구 요청과 같은 특정 메시지는 모든 사용자에게 더 중요하다고 간주될 수 있는 반면, 다른 메시지들은 상당히 덜 중요할 수 있다. 특정 실시예로, 메시지들은 실시간 메시지와 비-실시간 메시지로 나뉜다. 본 명세서는 각각의 발신 메시지에 대한 메시지 점수를 계산하는 임의의 적절한 방법을 고려한다.
단계 407에서, 서버(120)상의 하나 이상의 서버-측 프로세스는 새롭게 점수화된 메시지를 발신 메시지 큐에 추가하고 메시지 큐의 모든 메시지 점수의 실행 합(running sum)에 그 점수를 추가한다. 따라서, 총 큐 점수는 단계 407에서 특정 메시지에 대해 계산된 점수만큼 증가한다.
단계 408에서, 서버(120)상의 하나 이상의 서버-측 프로세스는 발신 메시지 큐의 모든 메시지 점수의 합이 기결정된 임계치를 초과하는지를 결정한다. 임계치는 알림 모드 메시지, 또는 대안으로 모바일 장치로부터 수신된 시스템 안정상태의 표시를 기초로 하나 이상의 서버-측 프로세스에 의해 실시간으로 조정될 수 있다. 특정 실시예로, 더 높은 전력 소비 알림 모드는 "더 안정한" 장치로 해석될 수 있고, 임계값은 감소할 것이다. 예컨대, 모바일 장치가 풀 배터리를 가지고, 플러그인되며 WiFi 네트워크로 연결되어 있다고 보고한다면, 임계치가 0으로 설정될 수 있어서, 서버(120)상의 서버-측 프로세스는 실질적으로 실시간으로 메시지를 모바일 장치로 푸싱한다. 정반대로, 모바일 장치가 10% 배터리 수명 이하에 있고 3G 네트워크의 에지에 있다고 보고한다면, 서버(120)상의 서버-측 프로세스는 임계치를 매우 큰 수, 예컨대 100으로 증가시킬 수 있다. 특정 실시예로, 알림 모드 또는 모바일 장치 상태의 메시지의 수신은 임계치를 업데이트하고 도 4a의 프로세스를 단계 408로 점프하게 하는 인터럽트(interrupt)를 유발한다. 따라서, 이런 실시예에서, 장치가 예컨대 WiFi 접속을 가지는 영역으로의 3G 접속만을 가지는 영역으로부터 이동함으로써, 그 "안정상태"가 증가했다고 보고한다면, 서버(120)상의 서버-측 프로세스는 모바일 장치에 대한 임계값을 하향으로 조정하고, 큐가 전송되어야 하는지를 결정하는 체크를 수행한다. 따라서, 모바일 장치의 안정상태 또는 알림 모드의 변화는 심지어 새로운 메시지가 없더라도 큐의 전송을 유발할 수 있다.
서버(120)상의 하나 이상의 서버-측 프로세스가 발신 메시지 큐의 점수의 합이 임계값을 초과한다고 단계 408에서 결정한다면, 프로세스는 발신 메시지 큐의 모든 메시지를 모바일 장치로 전송하고, 그 큐를 비우며, 그 합을 소거한다. 발신 메시지 큐에서 메시지 점수의 합이 단계 408에서 임계치를 초과하지 못한다면, 프로세스는 단계 405로 돌아가는데, 여기서 모바일 장치로의 또 다른 발신 메시지의 수신을 기다린다.
도 4b는 덜 중요한 메시지 전송을 더 중요한 메시지의 전송과 함께 피기백하는 또 다른 예시적인 방법을 도시한다. 도 4a의 방법과 같이, 도 4b의 방법은 발신 메시지의 상대적인 중요성 및 알림 모드나 모바일 장치의 장치 안정상태를 기초로 발신 메시지의 전송을 조정한다.
단계 410에서, 서버(120)상의 하나 이상의 서버-측 프로세스는 모바일 장치로 향하는 발신 메시지를 수신한다. 단계 411에서, 서버(120)상의 서버-측 프로세스는 메시지에 대한 타임아웃을 계산한다. 특정 실시예로, 메시지의 타임아웃은 결정된 중요성과 반비례하며, 모바일 장치의 상대적인 안정상태나 알림 모드와 반비례 관계에 있다. 예컨대, 특정 메시지는 너무 중요하여 그 타임아웃 값이 0일 수 있다(즉, 이들은 사용자에게 직접 그리고 실질적으로 실시간으로 전송된다). 예컨대, "긴급"으로 표시된 인스턴트 메시지는 0의 타임아웃 값을 가질 수 있다. 정반대로, 먼 친구로부터의 매우 낮은 값의 상태 메시지는 무한 타임아웃 값을 가질 수 있다; 메시지는 절대 스스로 송신되지 않을 것이다. 특정 실시예로, 각각의 발신 메시지에 대한 타임아웃 값은 메시지의 친밀성과 반비례 관계에 있는 타임아웃과 함께 하기에 기술되는 대로 친밀성 점수에 의해 결정될 수 있다. 또한, 각각의 개별 메시지에 대한 타임아웃 값은 장치 안정상태 또는 알림 모드와 반비례 관계에 있다. 따라서, 장치가 DCH 모드와 같이 무작위(promiscuous)(높은 메시지) 알림 모드에 있다면, 개별 메시지에 대한 타임아웃 값은 기결정된 요인으로 단축된다. 반대로, 모바일 장치가 낮은 메시지 알림 모드에 있거나 열악한 안정상태(다시금, 훈시적 목적상, 저조한 배터리 수명 또는 저조한 네트워크 연결)를 보고한다면, 각각의 메시지에 대한 타임아웃 기간은 1보다 큰 기결정된 스케일 인자로 곱해질 수 있다. 본 명세서는 개별 발신 메시지에 대한 타임아웃을 계산하는 임의의 적절한 방법을 고려한다.
단계 412에서, 발신 메시지는 메시지 큐에 저장된다. 특정 실시예로, 서버(120)상의 하나 이상의 서버-측 프로세스는 발신 메시지 큐에서 각각의 발신 메시지에 대한 별도의 타이머를 관리한다. 특정 실시예로, 서버-측 프로세스는 단일의 시스템 타이머를 관리하며, 발신 메시지 큐에서 각각의 메시지에 대한 카운트다운 값 및 시작 시간을 저장한다. 본 명세서는 임의의 개별 발신 메시지가 타임아웃되었는지를 결정하는 임의의 적절한 방법을 고려한다.
단계 413에서, 서버(120)상의 하나 이상의 서버-측 프로세스는 발신 메시지 큐에서 임의의 메시지가 타임아웃되었는지를 결정한다. 특정 실시예로, 발신 메시지 큐에서 임의의 메시지의 타임아웃은 도 4b의 방법을 단계 414로 직접 잇는 인터럽트 프로세스를 유발한다. 어떤 메시지도 타임아웃되지 않았다면, 프로세스는 단계 410로 돌아가는데, 여기서 발신 장치로 전송되는 새로운 메시지의 수신을 기다린다.
단계 414에서, 발신 메시지 큐의 임의의 메시지가 타임아웃되면, 서버(120)상의 하나 이상의 서버-측 프로세스는 발신 메시지 큐의 모든 메시지를 모바일 장치로 전송하고 그 큐를 비운다. 이후, 프로세스는 모바일 장치로 향하는 다음 발신 메시지를 수신하면서 그 자체를 반복한다. 상술한 방법은 단지 2가지 예의 서버-측 메시지 전송 알고리즘을 도시한다. 본 명세서는 메시지 중요성, 메시지에 대한 사용자 친밀성, 장치 전송 모드 또는 장치 안정상태를 기초로 다른 방법을 고려한다. 일반적인 원칙으로서, 모바일 장치는 도 3을 참조로 기술된 다양한 인자(배터리 수명, 사용자 상호작용, 네트워크 연결 등)를 기초로 메시지를 수신하는 리소스 비용을 인지하는 반면, 서버는 (소셜 인자 및 실증적 참여(empirical engagement)를 기초로) 사용자에게 전송되는 정보나 메시지의 값을 인지한다. 모바일 장치에 의한 리소스 비용이 알려진 후, 그 값이 비용을 초과하면 서버는 메시지를 모바일 장치로 전송할지에 대한 결정에 기초로 할 수 있다. 본 명세서는 정보 조각의 수신과 관련된 리소스 비용을 계산하거나 그 계산을 분배하는 임의의 적절한 방법을 고려한다. 본 명세서는 특정 사용자에 대한 정보 조각의 주관적인 값 또는 모든 사용자에 대한 정보 조각의 객관적인 값을 계산하거나 그 계산을 분배하는 임의의 적절한 방법을 고려한다.
일실시예로, 소셜 네트워킹 환경에서 작동하는 프로세스는 친밀성 함수를 구현하는 모듈로부터 특정 사용자에 대한 친밀도를 요청한다. 하나의 구현으로, 그 모듈은 가중된 세트의 예측 함수(predictor functions)를 결합(예컨대, 합산)하여 요청된 친밀도를 계산하며, 각 예측 함수는 사용자가 다른 행위를 수행할 것인지를 예측한다. 요청하는 프로세스가 예측 함수들을 다르게 가중할 수 있도록, 가중치는 친밀도를 요청하는 프로세스에 의해 제공될 수 있다. 이런 의미에서, 친밀성 함수는 그 자체의 목적에 따라 요청하는 프로세스에 의해 조정될 수 있다. 하나의 구현으로, 친밀성은 의도된 수신자로의 발신 메시지의 친밀성 점수를 계산하기 위해 계산될 수 있다.
예측 함수는 사용자가 특정 행위 내의 사용자의 관심사를 기초로 그 행위를 수행할 것인지 여부를 예측할 수 있다. 예컨대, 예측 함수는 (가령 상술한 소셜 네트워킹 시스템 기능을 이용한 다른 사용자들과의 상호작용과 같이) 사용자의 활동 이력을 기초로 도출될 수 있다. 추가로, 예측 함수는 사용자의 활동 이력에 의해 제공된 신호의 강도가 시간에 따라 감쇠하게 하는 감쇠 인자를 포함할 수 있다. 예측 함수는 소셜 네트워킹 시스템의 내부 또는 외부에 있을 수 있는 임의의 수의 행위들을 예측할 수 있다. 예컨대, 이런 행위는 가령 메시지, 컨텐츠의 게시 및 컨텐츠에 대한 코멘트와 같은 다양한 타입의 사용자의 통신; 가령 다른 연결관계들의 프로필 열람 및 다른 연결관계들에 의해 게시된 사진과 컨텐츠 열람과 같은 다양한 타입의 사용자의 관찰 행위; 및 가령 동일한 사진에 태깅되고, 동일한 위치에 체크인하고, 동일한 이벤트에 참여하는 것과 같이 2 이상의 사용자들에 대하여 다양한 타입의 일치 정보를 포함할 수 있다. 예측 함수는 활동 이력과 과거 사용자 응답으로 훈련된 기계 학습 알고리즘 또는 다양한 선택사항을 사용자들에게 노출시켜 응답을 측정하여 사용자들로부터 얻어진 데이터를 사용하여 결정될 수 있다.
소정의 상황에서 사용자가 취할 수 있는 가능한 행위를 예측하기 위해, 소셜 네트워킹 시스템이나 외부의 임의의 프로세스가 한 세트의 가중치를 제공하여 사용자에 대한 친밀도를 요청할 수 있다. 친밀도는 소셜 네트워킹 시스템 내 다른 사용자들, 컨텐츠, 행위, 광고 또는 임의의 다른 객체에 대한 사용자의 관심을 반영할 수 있다. 가중치는 이진수일 수 있거나, 더 일반적으로는 임의의 실수일 수 있다. 하나의 구현으로, 예컨대 소셜 네트워킹 시스템에 의해 전송되거나 매개되는 대상 사용자의 통신 장치에 대해 의도된 메시지는 대상 사용자와 메시지 사이의 친밀성을 계산하도록 처리될 수 있다. 친밀성 값은 통신 장치로의 전송 이전에 그 메시지에 첨부될 수 있다. 다른 구현으로, 통신 장치에 호스팅되는 프로세스는 친밀성 모듈에 접속하여 친밀도를 요청할 수 있다. 일부의 구현으로, 통신 장치는 통신 장치의 대상 사용자와 (통신 장치에 로컬 저장되거나 소셜 네트워킹 시스템에 원격 저장되는) 대상 사용자의 컨택 데이터베이스에서 식별된 하나 이상의 다른 사용자들 사이의 친밀성을 요청할 수 있다. 수정된 친밀성 값들이 차후의 동기화 프로세스 동안 획득될 수 있다. 통신 장치는 개별 사용자로부터의 메시지에 대한 그 친밀성 값을 사용할 수 있다. 다른 구현으로, 통신 장치는 상호작용을 국부적으로 모니터하고 친밀성 값을 국부적으로 계산할 수 있다.
도 5는 소셜 네트워킹 시스템에서 사용자들에 대한 친밀도를 계산하기 위한 함수의 블록 다이어그램이다. 임의의 소정의 상황에서 사용자가 하고자 할 수 있는 가능한 행위들의 세트를 나타내는 친밀도(615)를 계산하기 위해, 가중치(605)가 예측 함수(610)로 인가된 후 친밀도(615)를 얻기 위해 결합된다. 도 5가 3개의 예측 함수(610)를 도시하지만, 임의의 수의 예측 함수가 다른 실시예들에서 이용될 수 있다. 추가로, 도 5의 실시예에서, 가중된 예측 함수(610)는 선형적으로 결합된다. 다른 실시예로, 조화 평균, 평균 제곱 및 기하 평균을 포함하는 다른 형태의 결합이 사용될 수 있다. 추가로, 가변하는 가중치(605)를 갖는 다수의 친밀도(615)가 사용자의 행위를 예측하기 전에 계산될 수 있다.
친밀성 함수의 가중치(605)는 친밀성 함수가 다른 목적으로 소셜 네트워킹 시스템 환경에서 다양한 프로세스에 의해 사용될 수 있도록 한다. 예컨대, 열람자의 친구들로부터 소셜 보증을 갖는 광고를 제공하는 프로세스에서, 광고 알고리즘은 친밀도(615) 함수를 사용하여 사용자의 연결관계 중 어느 것이 소셜 보증에서 언급하는지 또는 어느 타입의 행위가 소셜 보증에서 언급하는지를 결정할 수 있다. 이후, 친밀도(615)는 사용자가 다른 사용자에 의해 게시된 컨텐츠의 열람에 얼마나 관심이 있는지를 나타내는 예측 함수들(610)뿐만 아니라 사용자가 소셜 보증에서 언급될 수 있는 다양한 행위들에 얼마나 관심이 있는지를 나타내는 하나 이상의 예측 함수들(610)을 기초로 할 수 있다. 따라서, 생성된 친밀도가 열람중인 사용자에게 어느 소셜 보증이 더 관심을 받을지를 더 정확하게 결정할 수 있도록, 광고 알고리즘은 이런 예측 함수들(610)에 상대적으로 큰 가중치를 제공할 것이다. 이후, 광고 알고리즘은 친밀도의 결과를 사용하여 소셜 보증을 선택하고, 이로써 광고의 전환 가능성을 증가시킨다.
제2의 예로서, 사용자들 사이의 통신을 매개하는 메시징 애플리케이션에 대한 프로세스에서, 소셜 알고리즘은 친밀도(615) 함수를 사용하여 사용자가 특정 송신 사용자에 의해 송신된 메시지에 어느 정도의 관심을 가질 수 있는지를 결정한다. 이를 위해 친밀도(615)는 사용자가 사용자의 연결관계들에 의해 게시된 컨텐츠의 열람에 얼마나 관심이 있는지 및/또는 사용자들이 통상 얼마나 자주 서로 메시지를 송신하는지를 나타내는 예측 함수들(610)뿐만 아니라 사용자가 서로 다른 타입의 메시지를 게시하거나 이에 접속하는 것에 얼마나 관심이 있는지를 나타내는 하나 이상의 예측 함수들(610)을 기초로 할 수 있다. 따라서, 생성된 친밀도가 열람중인 사용자에게 어느 메시지가 더 관심을 받을지를 정확하게 결정할 수 있도록, 소셜 알고리즘은 이들 예측 함수(610)에 상대적으로 큰 가중치를 부여한다. 가중된 예측 함수(610)에 의해 가능해지는 친밀성 함수의 큰 조정가능성 때문에, 이런 함수는 다수의 다른 목적을 위해 사용될 수 있다.
도 6은 일실시예에 따른 소셜 네트워킹 시스템 환경의 상위계층 블록 다이어그램이다. 도 6은 소셜 네트워킹 시스템(700), 사용자 장치(702) 및 네트워크(708)에 의해 연결된 외부 서버(704)를 도시한다. 소셜 그래프(718)는 각 사용자가 소셜 네트워킹 시스템(700)의 다른 사용자들과 맺은 연결들을 저장한다. 또한, 소셜 그래프(718)는 일부의 실시예에서 2차 연결을 저장할 수 있다. 이와 같이, 연결은 직접적이거나 간접적일 수 있다. 예컨대, 사용자 A가 사용자 B의 1차 연결이나 사용자 C의 1차 연결이 아니고 B가 C의 1차 연결이라면, 소셜 그래프(718)에서 C는 A의 2차 연결이다.
행위 스토어(740)는 행위와 관련된 시간의 표시 및 행위에 관한 임의의 객체로의 레퍼런스에 따라 소셜 네트워킹 시스템(700)의 사용자들에 의해 수행되었던 행위들을 저장한다. 추가로, 행위 스토어(740)는 행위의 특화된 카테고리에 대한 통계를 저장할 수 있다. 예컨대, 소정의 사용자에 대해 행위 스토어(740)는 사용자에 의한 30일 내 담벼락 게시물의 수, 사용자에 의해 송신된 메시지, 30일 내 사용자에 의해 게시된 사진의 수 및 30일 내 사용자의 코멘트를 수신한 특정 사용자의 수를 포함할 수 있다. 사용자 A와 사용자 B인 2명의 사용자 사이의 소정의 연결에 대해, 행위 스토어(740)는 A에서 B로의 프로필 페이지 열람의 수, A에서 B로의 사진 페이지 열람의 수, A에서 B로의 메시지의 수 및 A와 B가 동일한 사진에 태깅되었던 횟수와 같은 행위들을 포함할 수 있으며, 이런 행위들은 타임스탬프와 관련될 수 있거나 컷오프(예컨대, 24시간, 90일 등)에 의해 필터링될 수 있다. 행위 스토어(740)에 기록된 행위들은 사용자에게 행위들의 제안된 선택을 제공하는 소셜 네트워킹 시스템(700)에 응답하여 사용자에 의해 수행되는 파밍된 행위들(farmed actions)일 수 있다.
예측 모듈(720)은 한 세트의 예측 함수(610)를 계산하는 역할을 하는데, 예측 함수는 사용자가 해당 행위들의 세트를 수행할 것인지 여부를 예측한다. 상술한 바와 같이, 각 예측 함수(610)는 예측 함수(610)와 관련되는 특정 행위에 대한 사용자의 관심을 나타낼 수 있다. 사용자의 활동 이력은 동일한 활동에 대한 사용자의 장래 관심의 신호로서 사용될 수 있다. 일부의 실시예로, 예측 함수(610)는 행위와 관련된 사용자의 활동 이력을 사용하여 훈련된 기계 학습 알고리즘을 사용해 생성된다. 따라서, 예측 모듈(720)은 각각의 행위 세트에 대한 예측 함수(610)를 제공하는데, 여기서 예측 함수(610)는 사용자의 활동 이력을 입력으로 간주할 수 있고, 이후 예측 모듈은 사용자가 해당 활동에 관여할 가능성의 정도를 출력한다.
일부의 실시예로, 하나 이상의 예측 함수(610)는 사용자의 활동 이력으로부터의 신호의 강도가 시간에 따라 감쇠하는 감쇠 인자를 사용할 수 있다. 게다가, 다른 예측 함수(610)가 다른 비율로 활동 이력을 감쇠시킬 수 있다. 예컨대, 새로운 연결을 추가하는 것과 같은 사용자 활동의 일부 타입은 다른 사용자의 상태에 코멘트하는 것과 같은 더 일시적인 관심을 나타내는 다른 활동 타입보다 더 지속적인 관심을 나타낸다. 따라서, 예측 함수(610)는 그 활동이 시간에 지남에 따라 어떻게 덜 관련되게 되는지에 대한 이해를 기초로 활동 이력의 영향을 감쇠시킬 수 있다. 다양한 감쇠 메커니즘이 이런 목적으로 사용될 수 있다. 예컨대, 예측 함수(610)는 지수형 감쇠(exponential decay)와 같은 수학적 함수를 사용하여 사용자 행동에 대한 통계를 감쇠시킬 수 있다. 또 다른 실시예로, 감쇠는 가령 24시간이나 30일과 같은 특정 시간 구간 내에서 발생한 사용자 행동에 대한 통계들만을 선택하여 구현된다.
일실시예로, 예측 함수(610)는 수식 (1)에 나타난 바와 같이 2개의 어파인 함수(affine functions)의 비로 달성된다. 분자 및 분모 어파인 함수는 사용자의 활동 이력의 통계를 입력으로 취한다.
Figure 112016004680605-pat00001
여기서,
P는 예측 함수(610)이고;
i = 0, 1, 2, ..., N에 대하여, ai는 분자 어파인 함수의 계수이며;
i = 0, 1, 2, ..., M에 대하여, bi는 분모 어파인 함수의 계수이고;
i = 1, 2, ..., N+M에 대하여, xi는 예측 함수(P)에 관한 사용자의 활동 이력에서의 통계이다.
분모 어파인 함수는 분자 어파인 함수의 정규화를 나타낼 수 있다. 예컨대, 사용자에 의해 행해진 코멘트의 수는 다른 통계들 가운데 사용자가 소셜 네트워킹 시스템(700)에서 활동적이었던 횟수에 의해 정규화될 수 있다. 특히, i = 0, 1, 2, ..., M에 대하여 bi가 변함에 따라, 정규화 패턴이 변경될 수 있다. 일부의 실시예로, i = 0, 1, 2, ..., N에 대한 ai 및 i = 0, 1, 2, ..., M에 대한 bi인 계수들의 일부 또는 전부가 예측 모듈(720)에 의해 구현될 수 있는 기계 학습을 통해 결정된다. 특정 실시예로, 감독형 기계 학습 알고리즘이 통계적으로 많은 수의 사용자들에게 여러 옵션을 제공하고 그들의 응답을 모니터하여, 파밍을 통해 획득된 훈련 데이터와 함께 사용된다. 또 다른 실시예로, 감독형 기계 학습 알고리즘은 사용자 활동 이력 및 행위의 선택에 대한 과거 반응을 기초로 하여 전체적으로 훈련된다. 또한, 예측 함수(610)는 비-선형일 수 있다. 예시적인 실시예는 가족에 대한 예측 함수(610)를 구현하는데, 이때 예측 함수(610)는 가족의 구성원에 대한 'if-then' 구성을 포함한다. 즉, 예측 함수(610)는 이 함수가 부모 또는 아이들에 대해 계산중인지 여부에 따라 다르게 계산된다.
소셜 네트워킹 시스템(700)에서 일부의 예측 함수(610)는 소셜 네트워킹 시스템(700)에서 사용자의 통신에 관한 행위들을 예측할 수 있다. 통신과 특히 관련된 통계는 방송 데이터와 통신 데이터를 포함할 수 있다. 방송 데이터는 예컨대 소정의 기간에 사용자에 의해 게시된 사진의 수, 소정의 기간에 사용자에 의한 애플리케이션을 통한 게시물의 수 및 사용자가 다른 사용자들 그룹에 게시하거나 기여한 임의의 다른 통신을 포함할 수 있다. 통신 데이터는 예컨대 소정의 기간에 사용자로부터의 좋아요의 수, 소정의 기간에 사용자에 의해 게시된 코멘트의 수 사용자의 통신 활동에 대한 임의의 다른 정보를 포함할 수 있다.
마찬가지로, 소셜 네트워킹 시스템(700)에서 몇몇 예측 함수(610)는 소셜 네트워킹 시스템(700)에서 사용자의 컨텐츠 관찰과 관련된 행위를 예측할 수 있다. 관찰과 특히 관련이 있는 통계는 예컨대 소정의 기간에 또 다른 사용자의 사용자에 의한 프로필 페이지 열람의 수, 소정의 기간에 사용자에 의한 사진의 열람 수, 소정의 기간에 소셜 보증을 포함하는 광고의 열람 수 및 사용자에 의한 컨텐츠의 열람을 포함하는 임의의 다른 활동을 포함할 수 있다.
마지막으로, 소셜 네트워킹 시스템(700)에서 몇몇 예측 함수(610)는 소셜 네트워킹 시스템의 하나 이상의 다른 사용자들과 사용자의 일치(coincidence)와 관련된 행위를 예측할 수 있다. 일치와 특히 관련이 있는 통계는 예컨대 2 이상의 사용자들이 동일한 사진에 태깅되었거나, 동일한 위치에 체크인했거나, 동일한 이벤트에 참여할 것임을 (예컨대, RSVP를 통해) 확인했던 비율(rate) 및 다수의 사용자에 관한 소셜 네트워킹 시스템에서의 행위 또는 객체를 포함하는 임의의 다른 활동을 포함할 수 있다.
친밀성 모듈(760)은 예측 함수(610)를 사용하여 소셜 네트워킹 시스템(700)에서의 사용자에 대한 입력 데이터를 기초로 친밀도(615)를 제공한다. 도 5의 실시예에서, 친밀성 모듈(760)은 수식 (2)에 나타난 바와 같이 선형적으로 예측 함수들을 합산한다. 그러나, 다른 구현이 동일하게 실현 가능하다.
Figure 112016004680605-pat00002
여기서, A는 요청된 친밀도(615)이며; i=0, 1, 2,..., s에 대하여, Pi는 소셜 네트워킹 시스템(700)에서 s 예측 함수들(610)이고; i=0, 1, 2,..., s에 대하여, βi는 소셜 네트워킹 시스템(700)에서 s 예측 함수들(610)로 할당된 가중치들(605)이다.
도 7은 요청을 기초로 사용자에 대한 친밀도(615)를 계산하는 방법의 한 실시예를 도시한다. 소셜 네트워킹 시스템(700)은 먼저 다양한 예측 함수(610)로 할당되는 가중치(605)와 함께 사용자에 대한 친밀도(615)용 프로세스로부터의 요청을 수신한다(771). 이 요청은 친밀성 점수가 요구되는 메시지 또는 메시지로부터 추출된 하나 이상의 속성을 포함할 수 있다. 이후, 소셜 네트워킹 시스템(700)은 예측 모듈(720)에서 사용자에 대한 예측 함수(610)를 계산한다(772). 미리 계산된 예측 함수(610)는 종합 친밀도(615)를 결정(773)하도록 결합되며, 이후 종합 친밀도는 요청중인 프로세스로 제공(774)된다.
도 8은 일부 실시예와 함께 사용될 수 있는 예시적인 컴퓨터 시스템(800)을 도시한다. 본 명세서는 임의의 적절한 수의 컴퓨터 시스템(800)을 고려한다. 본 명세서는 임의의 적절한 물리적 형태를 취하는 컴퓨터 시스템(800)을 고려한다. 예로서 제한 없이, 컴퓨터 시스템(800)은 임베디드 컴퓨터 시스템, 시스템-온-칩(SOC), 데스크톱 컴퓨터 시스템, 모바일 컴퓨터 시스템, 게임 콘솔, 메인 프레임, 컴퓨터 시스템 메쉬(mesh), 서버, 이들의 2 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(800)은 하나 이상의 컴퓨터 시스템(800)들을 포함할 수 있거나; 일체형 또는 분산형일 수 있거나; 다수의 위치에 걸쳐 있거나, 다수의 기계에 걸쳐 있거나; 하나 이상의 네트워크에 하나 이상의 클라우드 성분을 포함할 수 있는 클라우드에 상주할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(800)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실질적으로 공간적 또는 시간적 제한 없이 실행할 수 있다. 예로서 제한 없이, 하나 이상의 컴퓨터 시스템(800)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실시간으로 또는 일괄 모드로 실행할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(800)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 다른 시기에 또는 다른 위치에서 실행할 수 있다.
특정 실시예로, 컴퓨터 시스템(800)은 프로세서(802), 메모리(804), 저장소(806), 입력/출력(I/O) 인터페이스(808), 통신 인터페이스(810) 및 버스(812)를 포함한다. 특정 실시예로, 프로세서(802)는 가령 컴퓨터 프로그램을 구성하는 명령어와 같은 명령어를 실행하기 위한 하드웨어를 포함한다. 예로서 제한 없이, 명령어를 실행하기 위해, 프로세서(802)는 내부 레지스터, 내부 캐시, 메모리(804) 또는 저장소(806)로부터 명령어를 검색(또는 페치(fetch))할 수 있고; 명령어를 디코딩하고 실행한 후; 하나 이상의 결과를 내부 레지스터, 내부 캐시, 메모리(804) 또는 저장소(806)에 기록할 수 있다. 특정 실시예로, 프로세서(802)는 데이터용, 명령어용 또는 주소용 하나 이상의 내부 캐시를 포함할 수 있다. 특정 실시예로, 메모리(804)는 프로세서(802)가 실행하는 명령어 또는 프로세서(802)가 운영하는 데이터를 저장하기 위한 메인 메모리를 포함한다. 예로서 제한 없이, 컴퓨터 시스템(800)은 저장소(806)에서 메모리(804)로 명령어를 로딩할 수 있다. 이후, 프로세서(802)는 메모리(804)에서 내부 레지스터나 내부 캐시로 명령어를 로딩할 수 있다. 명령어를 실행하기 위해, 프로세서(802)는 내부 레지스터나 내부 캐시로부터 명령어를 검색하고 이들을 디코딩할 수 있다. 명령어의 실행 중 또는 실행 후, 프로세서(802)는 (중간 결과 또는 최종 결과일 수 있는) 하나 이상의 결과를 내부 레지스터나 내부 캐시로 기록할 수 있다. 이후, 프로세서(802)는 하나 이상의 이런 결과를 메모리(804)에 기록할 수 있다. (주소 버스 및 데이터 버스를 각각 포함할 수 있는) 하나 이상의 메모리 버스는 프로세서(802)를 메모리(804)로 연결할 수 있다. 하기에 기술되는 바와 같이, 버스(812)는 하나 이상의 메모리 버스를 포함할 수 있다. 특정 실시예로, 하나 이상의 메모리 관리 유닛(MMUs)은 프로세서(802)와 메모리(804) 사이에 상주하며, 프로세서(802)에 의해 요청되는 메모리(804)로의 접근을 용이하게 한다. 특정 실시예로, 메모리(804)는 랜덤 액세스 메모리(RAM)를 포함한다. 적절한 경우, 이런 RAM은 휘발성 메모리일 수 있다. 적절한 경우, 이런 RAM은 동적 RAM(DRAM) 또는 정적 RAM(SRAM)일 수 있다.
특정 실시예로, 저장소(806)는 데이터용 또는 명령어용 대용량 저장소를 포함한다. 예로서 제한 없이, 저장소(806)는 HDD, 플로피 디스크 드라이브, 플래시 메모리, 광디스크, 자기-광학 디스크, 자기 테이프, 범용 직렬 버스(USB) 드라이브 또는 이들의 2 이상의 조합을 포함할 수 있다. 적절한 경우, 저장소(806)는 착탈식 또는 비-착탈식(또는 고정) 매체를 포함할 수 있다. 적절한 경우, 저장소(806)는 컴퓨터 시스템(800)의 내부 또는 외부에 있을 수 있다. 특정 실시예로, 저장소(806)는 비휘발성, 고체-상태(solid-state) 메모리이다. 특정 실시예로, 저장소(806)는 읽기 전용 메모리(ROM)를 포함한다. 적절한 경우, 이런 ROM은 마스크-프로그램화된 ROM, 프로그램가능 ROM(PROM), 소거가능 PROM(EPROM), 플래시 메모리 또는 이들의 2 이상의 조합일 수 있다.
특정 실시예로, I/O 인터페이스(808)는 컴퓨터 시스템(800)과 하나 이상의 I/O 장치 사이의 통신을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 적절한 경우, 컴퓨터 시스템(800)은 하나 이상의 이들 I/O 장치를 포함할 수 있다. 하나 이상의 이들 I/O 장치는 사람과 컴퓨터 시스템(800) 사이의 통신을 가능하게 할 수 있다. 예로서 제한 없이, I/O 장치는 키보드, 마이크로폰, 디스플레이, 마우스, 스피커, 카메라, 또 다른 적절한 I/O 장치 또는 이들의 2 이상의 조합을 포함할 수 있다. I/O 장치는 하나 이상의 센서를 포함할 수 있다. 본 명세서는 임의의 적절한 I/O 장치 및 이에 대한 적절한 I/O 인터페이스(808)를 고려한다. 적절한 경우, I/O 인터페이스(808)는 프로세서(802)가 하나 이상의 이들 I/O 장치를 구동할 수 있도록 하는 하나 이상의 장치 또는 소프트웨어 드라이버를 포함할 수 있다. 적절한 경우, I/O 인터페이스(808)는 하나 이상의 I/O 인터페이스(808)를 포함할 수 있다. 본 명세서가 특정 I/O 인터페이스를 기술하고 도시하지만, 본 명세서는 임의의 적절한 I/O 인터페이스를 고려한다.
특정 실시예로, 통신 인터페이스(810)는 컴퓨터 시스템(800)과 하나 이상의 다른 컴퓨터 시스템(800)이나 하나 이상의 네트워크 사이의 통신(가령, 예컨대 패킷-기반 통신)을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 예로서 제한 없이, 통신 인터페이스(810)는 이더넷이나 다른 유선-기반 네트워크로 통신하기 위한 네트워크 인터페이스 제어장치(NIC)나 네트워크 어댑터 또는 가령 WI-FI 네트워크와 같이 무선 네트워크로 통신하기 위한 무선 NIC(WNIC)나 무선 어댑터를 포함할 수 있다. 본 명세서는 임의의 적절한 네트워크 및 이에 대한 임의의 적절한 통신 인터페이스(810)를 고려한다. 예로서 제한 없이, 컴퓨터 시스템(800)은 애드 혹 네트워크(ad hoc network), 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 광역 네트워크(WAN), 대도시 네트워크(MAN), 인터넷의 하나 이상의 부분 또는 2 이상의 이런 네트워크들의 조합으로 통신할 수 있다. 하나 이상의 이런 네트워크의 하나 이상의 부분은 유선 또는 무선일 수 있다. 예로서, 컴퓨터 시스템(800)은 무선 PAN(WPAN)(가령, 예컨대 BLUETOOTH WPAN), WI-FI 네트워크(가령, 예컨대 802.11a/b/g/n WI-FI 네트워크), WI-MAX 네트워크, 셀룰러폰 네트워크(가령, 예컨대 GSM(Global System for Mobile Communication) 네트워크, LTE(Long Term Evolution) 네트워크), 다른 적절한 무선 네트워크 또는 2 이상의 이런 네트워크들의 조합으로 통신할 수 있다.
특정 실시예로, 버스(812)는 컴퓨터 시스템(800)의 구성요소를 서로 연결하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 예로서 제한 없이, 버스(812)는 AGP(Accelerated Graphics Port)이나 다른 그래픽 버스, EISA(Enhanced Industry Standard Architecture) 버스, FSB(front-side bus), HT(HYPERTRANSPORT) 인터커넥트, INFINIBAND 인터커넥트, LPC(low-pin-count) 버스, 메모리 버스, Peripheral Component Interconnect Express 또는 PCI-Express 버스, SATA(serial advanced technology attachment) 버스, I2C(Inter-Integrated Circuit) 버스, SD(Secure Degital) 메모리 인터페이스, SDIO(Secure Digital Input Output) 인터페이스, USB(Universal Serial Bus) 버스, GPIO(General Purpose Input/Output) 버스, 또 다른 적절한 버스 또는 2 이상의 이런 버스의 조합을 포함할 수 있다. 적절한 경우, 버스(812)는 하나 이상의 버스(812)를 포함할 수 있다.
상술한 클라이언트측 기능은 실행시 프로그램가능한 프로세서가 상술한 동작을 구현하도록 하는 컴퓨터 판독가능한 저장매체에 저장된 일련의 명령어로 구현될 수 있다. 모바일 장치(122)가 다양한 다른 하드웨어 및 컴퓨팅 시스템으로 구현될 수 있는 한편, 도 9는 다양한 특정 실시예에 따라 클라이언트 또는 모바일 장치의 예시적인 컴퓨팅 플랫폼의 주요 구성요소의 개략도를 도시한다. 특정 실시예로, 컴퓨팅 플랫폼(902)은 제어장치(904), 메모리(906) 및 입출력 서브시스템(910)을 포함할 수 있다. 특정 실시예로, 제어장치(904)는 명령어를 실행하고 컴퓨팅 플랫폼과 관련된 동작을 수행하도록 구성된 하나 이상의 프로세서 및/또는 하나 이상의 마이크로컨트롤러를 포함할 수 있다. 다양한 실시예로, 제어장치(904)는 하나 이상의 집적회로 및 인쇄회로기판을 포함하는 단일-칩, 다중 칩 및/또는 다른 전기 부품으로 구현될 수 있다. 제어장치(904)는 명령어용, 데이터용 또는 컴퓨터 주소용 임시 로컬 저장을 위한 캐시 메모리 유닛을 선택적으로 포함할 수 있다. 예로서, 메모리로부터 검색된 명령어를 사용하여, 제어장치(904)는 컴퓨팅 플랫폼(902)의 구성요소들 사이의 입출력 데이터의 수신 및 조정을 제어할 수 있다. 예로서, 제어장치(904)는 예컨대 2D/3D 그래픽 프로세싱, 이미지 프로세싱 또는 비디오 프로세싱과 같은, 컴퓨팅 플랫폼(902)의 특정 처리작업 전용 하나 이상의 프로세서 또는 하나 이상의 제어장치를 포함할 수 있다.
적절한 운영 시스템과 함께 제어장치(904)는 컴퓨터 코드의 형태로 명령어를 실행하고 데이터를 생성 및 사용하도록 동작할 수 있다. 예로서 제한 없이, 운영 시스템은 윈도우 기반(Windows-based) 운영 시스템, 맥 기반(Mac-based) 운영 시스템, 유닉스나 리눅스 기반(Unix or Linux-based) 운영 시스템, 심비안 기반(Symbian-based) 운영 시스템 또는 다른 적절한 운영 시스템일 수 있다. 운영 시스템, 다른 컴퓨터 코드 및/또는 데이터는 제어장치(904)와 동작가능하게 연결되는 메모리(906) 내에 물리적으로 저장될 수 있다.
메모리(906)는 하나 이상의 저장매체를 포함할 수 있고, 일반적으로 컴퓨팅 플랫폼(902)에 의해 사용되는 컴퓨터 코드(예컨대, 소프트웨어 및/또는 펌웨어) 및 데이터를 저장할 장소를 제공할 수 있다. 예로서, 메모리(906)는 읽기 전용 메모리(ROM) 및/또는 랜덤 액세스 메모리(RAM)를 포함하는 다양한 유형의(tangible) 컴퓨터 판독가능한 저장매체를 포함할 수 있다. 본 기술분야에서 널리 공지된 바와 같이, ROM은 데이터 및 명령어를 단방향으로 제어장치(904)에 전달하도록 작동하며, RAM은 양방향 방식으로 데이터 및 명령어를 전달하는데 통상 사용된다. 또한, 메모리(906)는 예로서, 하드 디스크 드라이브(HDDs), 고체-상태 드라이브(SSDs), 플래시 메모리 카드(예컨대, Secured Digital 또는 SD 카드) 또는 제어장치(904)와 양방향으로 연결되는 다른 적절한 메모리 형식의 형태로 하나 이상의 고정식 저장장치를 포함할 수 있다. 또한, 정보는 필요한 경우 컴퓨팅 플랫폼(902)으로 로딩되거나 설치되는 하나 이상의 착탈식 저장매체에 상주할 수 있다. 예로서, 임의의 다수의 적절한 메모리 카드(예컨대, SD 카드)가 임시로 또는 영구적으로 컴퓨팅 플랫폼(902)에 로딩될 수 있다.
입출력 서브시스템(910)은 제어장치(904)와 동작가능하게 연결되는 하나 이상의 입출력 장치를 포함할 수 있다. 예컨대, 입출력 서브시스템은 키보드, 마우스, 하나 이상의 버튼 및/또는 디스플레이(예컨대, 액정 디스플레이(LCD) 또는 임의의 다른 적절한 디스플레이 기술)를 포함할 수 있다. 일반적으로, 입력 장치는 외부 세계로부터 컴퓨팅 플랫폼(902)으로 데이터, 명령어 및 응답을 전달하도록 구성된다. 디스플레이는 일반적으로 컴퓨팅 플랫폼(902)의 사용자와 모바일 장치를 실행하는 운영 시스템 또는 애플리케이션(들) 사이의 사용이 용이한 시각적 인터페이스를 제공하는 그래픽 사용자 인터페이스(GUI)를 디스플레이하도록 구성된다. 일반적으로, GUI는 프로그램, 파일 및 그래픽 이미지를 갖는 동작 옵션을 표시한다. 동작 중, 사용자는 관련 기능 및 작업을 개시하기 위해 디스플레이 상에 디스플레이되는 다양한 그래픽 이미지를 선택하고 활성화할 수 있다. 또한, 입출력 서브시스템(910)은 가령 터치 패드 및 터치 스크린과 같은 터치 기반 장치를 포함할 수 있다. 터치 패드는 사용자의 터치-기반 입력을 감지하는 표면을 포함하는 입력 장치이다. 마찬가지로, 터치 스크린은 사용자 터치 입력의 존재 및 위치를 감지하는 디스플레이이다. 또한, 입출력 시스템(910)은 가령 2개 또는 3개의 손가락 터치와 같은 하나 이상의 터치 입력의 존재, 위치 및 움직임을 식별할 수 있는 듀얼 터치나 멀티 터치 디스플레이 또는 터치 패드를 포함할 수 있다.
특정 실시예로, 컴퓨팅 플랫폼(902)은 컴퓨팅 플랫폼(902)의 다양한 기능을 용이하게 하도록 제어장치(904)와 동작가능하게 연결되는 오디오 서브시스템(912), 카메라 서브시스템(912), 무선 통신 서브시스템(916), 센서 서브시스템(918) 및/또는 유선 통신 서브시스템(920)을 추가로 포함할 수 있다. 예컨대, 오디오 신호를 처리하도록 구성된 스피커, 마이크로폰 및 코덱 모듈을 포함하는 오디오 서브시스템(912)은 가령 음성 인식, 음성 복제, 디지털 레코딩 및 전화 기능과 같은 음성-이용가능한 기능을 용이하게 하는데 이용될 수 있다. 예컨대, 광학 센서(예컨대, 전하 결합 소자(charged coupled device, CCD))를 포함하는 카메라 서브시스템(912)은 가령 레코딩 사진 및 비디오 클립과 같은 카메라 기능을 용이하게 하는데 이용될 수 있다. 예컨대, 유선 통신 서브시스템(920)은 파일 전송용 범용 직렬 버스(USB) 포트 또는 근거리 네트워크(LAN)로의 연결용 이더넷 포트를 포함할 수 있다. 추가로, 컴퓨팅 플랫폼(902)은 전원(932)에 의해 전력을 공급받을 수 있다.
무선 통신 서브시스템(916)은 예컨대 무선 PAN(WPAN)(예컨대 BLUETOOTH), WI-FI 네트워크(예컨대 802.11a/b/g/n 네트워크), WI-MAX 네트워크, 셀룰러폰 네트워크(가령, 예컨대 GSM(Global System for Mobile Communication) 네트워크, LTE(Long Term Evolution) 네트워크)와 같은, 하나 이상의 무선 네트워크상에서 동작하도록 설계될 수 있다. 추가로, 무선 통신 서브시스템(916)은 컴퓨팅 플랫폼(902)이 다른 무선 장치용 기지국(base station)으로서 구성될 수 있도록, 호스팅 프로토콜을 포함할 수 있다. 다른 입력/출력 장치는 그 장치의 방향을 감지하는데 사용될 수 있는 가속도계를 포함할 수 있다.
센서 서브시스템(918)은 추가 입력을 제공하고 컴퓨팅 플랫폼(902)의 다중 기능을 용이하게 하는 하나 이상의 센서 장치를 포함할 수 있다. 예컨대, 센서 서브시스템(918)은 위치 측정용 GPS 센서, 고도 측정용 고도계(altimeter), 모바일 장치의 방위결정용 모션 센서(motion sensor), 카메라 서브시스템(914)을 갖는 촬영기능용 광센서, 주변온도 측정용 온도 센서 및/또는 보안 애플리케이션용 생체인식 센서(예컨대, 지문인식장치)를 포함할 수 있다.
특정 실시예로, 컴퓨팅 플랫폼(902)의 다양한 구성요소는 (하드웨어 및/또는 소프트웨어를 포함하는) 하나 이상의 버스로 서로 동작가능하게 연결될 수 있다. 예로서 제한 없이, 하나 이상의 버스는 AGP(Accelerated Graphics Port)이나 다른 그래픽 버스, FSB(front-side bus), HT(HYPERTRANSPORT) 인터커넥트, ISA(Industry Standard Architecture) 버스, INFINIBAND 인터커넥트, LPC(low-pin-count) 버스, 메모리 버스, PCI(Peripheral Component Interconnect Express PCI-Express 버스, SATA(serial advanced technology attachment) 버스, I2C(Inter-Integrated Circuit) 버스, SD(Secure Degital) 메모리 인터페이스, SDIO(Secure Digital Input Output) 인터페이스, USB(Universal Serial Bus) 버스, GPIO(General Purpose Input/Output) 버스, AMBA(Advanced Microcontroller Bus Architecture) 버스, 또 다른 적절한 버스 또는 2 이상의 이런 버스의 조합을 포함할 수 있다.
본 명세서에서, 컴퓨터 판독가능한 저장매체에 대한 언급은 구조를 갖는 하나 이상의 비일시적, 유형의 컴퓨터 판독가능한 저장매체를 포함한다. 예로서 제한 없이, 컴퓨터 판독가능한 저장매체는 반도체 기반 또는 다른 집적회로(IC)(가령, 예컨대 FPGA(field-programmable gate array) 또는 ASIC(application-specific IC)), 하드 디스크, HDD, 하이브리드 하드 디스크(HHD), 광학 디스크, 광학 디스크 드라이브(ODD), 자기-광학 디스크, 자기-광학 드라이브, 플로피 디스크, 플로피 디스크 드라이브(FDD), 자기 테이프, 홀로그래픽 저장매체, 고체-상태 드라이브(SSD), RAM 드라이브, SECURE DIGITAL 카드, SECURE DIGITAL 드라이브, 또 다른 적절한 컴퓨터 판독가능한 저장매체 또는, 적절한 경우, 2 이상의 이들의 조합을 포함할 수 있다. 본 명세서에서, 컴퓨터 판독가능한 저장매체에 대한 언급은 미국연방법률(35 U.S.C.§101)하에 특허로 보호받을 수 없는 임의의 매체를 배제한다. 본 명세서에서, 컴퓨터 판독가능한 저장매체에 대한 언급은 미국연방법률(35 U.S.C.§101)하에 특허로 보호받을 수 없는 정도로의, (가령 전파하는 전기적 또는 전자기적 신호 그 자체와 같은) 신호 전송의 일시적 형태를 배제한다. 적절한 경우, 컴퓨터 판독가능한 비일시적 저장매체는 휘발성, 비휘발성 또는 휘발성과 비휘발성의 조합일 수 있다.
본 명세서에서, "또는"은 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, 포괄적인 것이며 배타적인 것이 아니다. 따라서, 본 명세서에서 "A 또는 B"는 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, "A, B 또는 둘 모두"를 의미한다. 게다가, "및"은 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, 공동 및 별개 모두이다. 따라서, 본 명세서에서 "A 및 B"는 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, "A 및 B가 공동이든 별개이든 상관없이 모두"를 의미한다.
본 명세서는 당업자가 이해할 수 있는 본 명세서의 예시적인 실시예들에 대한 모든 변화, 치환, 변형, 대체 및 변경을 포함한다. 게다가, 첨부된 청구범위에서 특정 기능을 수행하도록 설계되거나, 배치되거나, 할 수 있거나, 구성되거나, 할 수 있게 하거나, 동작할 수 있거나, 동작하는 장치나 시스템 또는 장치나 시스템의 구성요소에 대한 언급은 장치, 시스템 또는 구성요소가 그렇게 설계되거나, 배치되거나, 할 수 있거나, 구성되거나, 가능하거나, 동작할 수 있거나 동작하는 한, 장치, 시스템, 구성요소, 그 또는 그러한 특정 기능이 활성화되었는지, 턴온 되었는지, 잠금 해제되었는지 여부를 포함한다.

Claims (29)

  1. 하나 이상의 컴퓨팅 장치에 의해:
    제1 사용자의 모바일 장치로부터, 장치에 대한 전력에 관한 정보, 장치의 네트워크 연결에 관한 정보 또는 장치의 알림 모드로 구성된 그룹에서 선택된 장치 상태 정보를 수신하는 단계;
    제1 사용자에게 송신되는 하나 이상의 발신 메시지를 식별하는 단계;
    각각의 발신 메시지에 대한 값을 계산하는 단계;
    계산된 값에 기반하여, 발신 메시지 큐에 배치하기 위해 적어도 하나의 발신 메시지를 선택하는 단계; 및
    트리거 조건(triggering condition)의 감지시, 발신 메시지 큐 내 메시지를 모바일 장치로 송신하는 단계를 포함하며,
    계산된 값은 메시지의 발신자와 제1 사용자에 대해 결정되는 친밀성 점수에 기반하며, 트리거 조건은 장치 상태 정보 및 발신 메시지의 각각의 값에 기반하는 방법.
  2. 제 1 항에 있어서,
    친밀성 점수에 기반하여 발신 메시지 큐 내 선택된 메시지를 위치결정(positioning)하는 단계를 더 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 배치하는 것은 발신 메시지 큐 내 모든 메시지에 대한 값들의 총합의 계산하는 것을 포함하며, 트리거 조건은 기결정된 임계치를 초과하는 총합을 포함하는 방법.
  4. 제 3 항에 있어서,
    기결정된 임계치는 장치 상태 정보에 기반하는 방법.
  5. 제 1 항에 있어서,
    각각의 발신 메시지에 대한 값을 계산하는 단계는 타임아웃 지속시간을 각각의 발신 메시지에 할당하는 단계를 더 포함하는 방법.
  6. 제 5 항에 있어서,
    각각의 발신 메시지에 대한 타임아웃 지속시간은 친밀성 점수와 역으로 상관되는 방법.
  7. 제 6 항에 있어서,
    각각의 발신 메시지에 대한 타임아웃 지속시간은 장치 상태 정보에 기반하는 스케일링 인자에 의해 더 스케일링되는 방법.
  8. 제 5 항에 있어서,
    발신 메시지 큐 내 발신 메시지에 대한 타임아웃 지속시간 중 임의의 하나가 경과했다면 트리거 조건이 트리거링되는 방법.
  9. 제 1 항에 있어서,
    장치 상태 정보는 모바일 장치의 시스템 안정상태(system health)를 포함하는 방법.
  10. 제 9 항에 있어서,
    모바일 장치의 시스템 안정상태는 모바일 장치의 배터리 상태를 포함하는 방법.
  11. 제1 사용자의 모바일 장치로부터, 장치에 대한 전력에 관한 정보, 장치의 네트워크 연결에 관한 정보 또는 장치의 알림 모드로 구성된 그룹에서 선택된 장치 상태 정보를 수신하고;
    제1 사용자에게 송신되는 하나 이상의 발신 메시지를 식별하며;
    각각의 발신 메시지에 대한 값을 계산하고;
    계산된 값에 기반하여, 발신 메시지 큐에 배치하기 위해 적어도 하나의 발신 메시지를 선택하며;
    트리거 조건의 감지시, 발신 메시지 큐 내 메시지를 모바일 장치로 송신하도록 하나 이상의 컴퓨팅 장치에 의해 실행될 때 동작하는 명령어를 포함하는 비-일시적 컴퓨터-판독가능한 매체로서,
    계산된 값은 메시지의 발신자와 제1 사용자에 대해 결정되는 친밀성 점수에 기반하며, 트리거 조건은 장치 상태 정보 및 발신 메시지의 각각의 값에 기반하는 비-일시적 컴퓨터-판독가능한 매체.
  12. 제 11 항에 있어서,
    상기 명령어는 친밀성 점수에 기반하여 발신 메시지 큐 내 선택된 메시지를 위치결정하는 명령어를 더 포함하는 비-일시적 컴퓨터-판독가능한 매체.
  13. 제 11 항에 있어서,
    상기 배치하는 것은 발신 메시지 큐 내 모든 메시지에 대한 값들의 총합의 계산하는 것을 포함하며, 트리거 조건은 기결정된 임계치를 초과하는 총합을 포함하는 비-일시적 컴퓨터-판독가능한 매체.
  14. 제 13 항에 있어서,
    기결정된 임계치는 장치 상태 정보에 기반하는 비-일시적 컴퓨터-판독가능한 매체.
  15. 제 11 항에 있어서,
    각각의 발신 메시지에 대한 값을 계산하는 명령어는 타임아웃 지속시간을 각각의 발신 메시지에 할당하는 명령어를 더 포함하는 비-일시적 컴퓨터-판독가능한 매체.
  16. 제 15 항에 있어서,
    각각의 발신 메시지에 대한 타임아웃 지속시간은 친밀성 점수와 역으로 상관되는 비-일시적 컴퓨터-판독가능한 매체.
  17. 제 16 항에 있어서,
    각각의 발신 메시지에 대한 타임아웃 지속시간은 장치 상태 정보에 기반하는 스케일링 인자에 의해 더 스케일링되는 비-일시적 컴퓨터-판독가능한 매체.
  18. 제 15 항에 있어서,
    발신 메시지 큐 내 발신 메시지에 대한 타임아웃 지속시간 중 임의의 하나가 경과했다면 트리거 조건이 트리거링되는 비-일시적 컴퓨터-판독가능한 매체.
  19. 제 11 항에 있어서,
    장치 상태 정보는 모바일 장치의 시스템 안정상태를 포함하는 비-일시적 컴퓨터-판독가능한 매체.
  20. 하나 이상의 프로세서; 및
    프로세서와 연결되고 프로세서에 의해 실행가능한 명령어를 포함하는 메모리를 포함하는 시스템으로서,
    상기 프로세서는:
    제1 사용자의 모바일 장치로부터, 장치에 대한 전력에 관한 정보, 장치의 네트워크 연결에 관한 정보 또는 장치의 알림 모드로 구성된 그룹에서 선택된 장치 상태 정보를 수신하고;
    제1 사용자에게 송신되는 하나 이상의 발신 메시지를 식별하며;
    각각의 발신 메시지에 대한 값을 계산하고;
    계산된 값에 기반하여, 발신 메시지 큐에 배치하기 위해 적어도 하나의 발신 메시지를 선택하며;
    트리거 조건의 감지시, 발신 메시지 큐 내 메시지를 모바일 장치로 송신하는 명령어를 실행할 때 동작하며,
    계산된 값은 메시지의 발신자와 제1 사용자에 대해 결정되는 친밀성 점수에 기반하며, 트리거 조건은 장치 상태 정보 및 발신 메시지의 각각의 값에 기반하는 시스템.
  21. 제 19 항에 있어서,
    모바일 장치의 시스템 안정상태는 모바일 장치의 배터리 상태를 포함하는 비-일시적 컴퓨터-판독가능한 매체.
  22. 제 20 항에 있어서,
    상기 프로세서는:
    친밀성 점수에 기반하여 발신 메시지 큐 내 선택된 메시지를 위치결정하는 명령어를 실행할 때 또한 동작하는 시스템.
  23. 제 20 항에 있어서,
    상기 배치하는 것은 발신 메시지 큐 내 모든 메시지에 대한 값들의 총합의 계산하는 것을 포함하며, 트리거 조건은 기결정된 임계치를 초과하는 총합을 포함하는 시스템.
  24. 제 23 항에 있어서,
    기결정된 임계치는 장치 상태 정보에 기반하는 시스템.
  25. 제 20 항에 있어서,
    각각의 발신 메시지에 대한 값을 계산하는 명령어는 타임아웃 지속시간을 각각의 발신 메시지에 할당하는 명령어를 더 포함하는 시스템.
  26. 제 25 항에 있어서,
    각각의 발신 메시지에 대한 타임아웃 지속시간은 친밀성 점수와 역으로 상관되는 시스템.
  27. 제 26 항에 있어서,
    각각의 발신 메시지에 대한 타임아웃 지속시간은 장치 상태 정보에 기반하는 스케일링 인자에 의해 더 스케일링되는 시스템.
  28. 제 25 항에 있어서,
    발신 메시지 큐 내 발신 메시지에 대한 타임아웃 지속시간 중 임의의 하나가 경과했다면 트리거 조건이 트리거링되는 시스템.
  29. 제 20 항에 있어서,
    장치 상태 정보는 모바일 장치의 시스템 안정상태를 포함하는 시스템.
KR1020167001213A 2011-11-04 2012-10-15 모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘 KR101645620B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/290,000 US8954100B2 (en) 2011-11-04 2011-11-04 Server-side rate-limiting algorithms for piggybacking social updates for mobile devices
US13/290,000 2011-11-04
PCT/US2012/060229 WO2013066611A1 (en) 2011-11-04 2012-10-15 Server-side rate-limiting algorithms for piggybacking social updates for mobile devices

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020147015094A Division KR101590497B1 (ko) 2011-11-04 2012-10-15 모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020167020426A Division KR101806984B1 (ko) 2011-11-04 2012-10-15 모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘

Publications (2)

Publication Number Publication Date
KR20160011238A KR20160011238A (ko) 2016-01-29
KR101645620B1 true KR101645620B1 (ko) 2016-08-05

Family

ID=48192600

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020167001213A KR101645620B1 (ko) 2011-11-04 2012-10-15 모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘
KR1020167020426A KR101806984B1 (ko) 2011-11-04 2012-10-15 모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘
KR1020147015094A KR101590497B1 (ko) 2011-11-04 2012-10-15 모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020167020426A KR101806984B1 (ko) 2011-11-04 2012-10-15 모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘
KR1020147015094A KR101590497B1 (ko) 2011-11-04 2012-10-15 모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘

Country Status (12)

Country Link
US (4) US8954100B2 (ko)
EP (1) EP2774318B1 (ko)
JP (3) JP5864769B2 (ko)
KR (3) KR101645620B1 (ko)
CN (2) CN104040942B (ko)
AU (4) AU2012333039B2 (ko)
BR (1) BR112014012350A2 (ko)
CA (3) CA2854275C (ko)
IL (3) IL232430A (ko)
IN (1) IN2014CN03844A (ko)
MX (2) MX340567B (ko)
WO (1) WO2013066611A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2497076A (en) * 2011-11-23 2013-06-05 Skype Delivering only selected communication events to a user terminal or to a user
US9319373B1 (en) * 2012-03-15 2016-04-19 PlayStudios, Inc. Social networking game with prioritized message queue
KR101361265B1 (ko) * 2012-05-08 2014-02-12 (주)카카오 복수의 알림 모드들을 이용하는 이동 단말의 알림 방법 및 그 방법을 이용한 이동 단말
US9955286B2 (en) * 2013-05-08 2018-04-24 Natalya Segal Smart wearable devices and system therefor
CN105659639B (zh) * 2013-07-26 2019-09-06 艾纳高格有限公司 将外部设备关联到交通工具及所述关联的应用
US9442944B2 (en) 2013-11-12 2016-09-13 Dropbox, Inc. Content item purging
EP2882163A1 (en) * 2013-12-09 2015-06-10 Alcatel Lucent Method and system for scheduling a push data transmission
JP6696436B2 (ja) * 2015-01-13 2020-05-20 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
CN105024835B (zh) * 2015-07-23 2017-07-11 腾讯科技(深圳)有限公司 群组管理方法和装置
US10924815B2 (en) * 2015-12-31 2021-02-16 Idomoo Ltd System and method for generating and updating video news edition
JP6693817B2 (ja) * 2016-06-16 2020-05-13 株式会社三共 遊技機
US20180123986A1 (en) * 2016-11-01 2018-05-03 Microsoft Technology Licensing, Llc Notification of a Communication Session in a Different User Experience
US10198291B2 (en) 2017-03-07 2019-02-05 International Business Machines Corporation Runtime piggybacking of concurrent jobs in task-parallel machine learning programs
US10271185B1 (en) 2017-10-20 2019-04-23 Mediatek Singapore Pte. Ltd. Method and apparatus for short message service re-transmission in mobile communications
CN112206509A (zh) * 2020-10-12 2021-01-12 上海酷量信息技术有限公司 一种根据服务器状态动态发送通知的系统和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030006911A1 (en) 2000-12-22 2003-01-09 The Cadre Group Inc. Interactive advertising system and method
US20090327390A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Managing data delivery based on device state
US20100273486A1 (en) 2006-10-11 2010-10-28 Yash Kharia System and method for optimizing battery power
US8208946B2 (en) 2006-07-24 2012-06-26 Qualcomm Incorporated Method, apparatus, and system for transmitting messages

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6424841B1 (en) * 1999-02-18 2002-07-23 Openwave Systems Inc. Short message service with improved utilization of available bandwidth
ATE367611T1 (de) 2000-03-16 2007-08-15 Microsoft Corp Erzeugung und verwaltung von prioritäten
US7444383B2 (en) 2000-06-17 2008-10-28 Microsoft Corporation Bounded-deferral policies for guiding the timing of alerting, interaction and communications using local sensory information
EP1139679A1 (en) 2000-03-31 2001-10-04 BRITISH TELECOMMUNICATIONS public limited company Mobile telephone with pager mode
US20070037610A1 (en) * 2000-08-29 2007-02-15 Logan James D Methods and apparatus for conserving battery power in a cellular or portable telephone
JP3876687B2 (ja) 2001-10-30 2007-02-07 ソニー株式会社 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
CN1264306C (zh) * 2001-12-25 2006-07-12 中兴通讯股份有限公司 一种提高宽带接入服务器接入速率的方法
JP2004274297A (ja) 2003-03-07 2004-09-30 Nippon Telegr & Teleph Corp <Ntt> 通信制御方法、通信制御装置及び通信制御プログラム
EP1492279B1 (en) * 2003-06-24 2007-09-19 Research In Motion Limited Distributed router application serialisation
US8443049B1 (en) * 2004-08-20 2013-05-14 Sprint Spectrum L.P. Call processing using trust scores based on messaging patterns of message source
US7242920B2 (en) * 2005-05-31 2007-07-10 Scenera Technologies, Llc Methods, systems, and computer program products for controlling data transmission based on power cost
KR101405936B1 (ko) * 2007-02-02 2014-06-17 엘지전자 주식회사 광대역 무선 접속 시스템에서 수면 모드와 관련된 메시지를송수신하는 방법
EP1962473B1 (en) * 2007-02-21 2012-05-30 Research In Motion Limited Efficient transmission of presence update information to presence service clients
CN101136837A (zh) 2007-09-21 2008-03-05 华为技术有限公司 推送消息的控制方法、装置和系统
EP2051479A1 (en) 2007-10-18 2009-04-22 Nokia Siemens Networks Oy Control of push services
US20090182589A1 (en) 2007-11-05 2009-07-16 Kendall Timothy A Communicating Information in a Social Networking Website About Activities from Another Domain
US9705998B2 (en) 2007-11-14 2017-07-11 Qualcomm Incorporated Method and system using keyword vectors and associated metrics for learning and prediction of user correlation of targeted content messages in a mobile environment
KR101021763B1 (ko) 2008-01-11 2011-03-15 주식회사 케이티 Ims 기반의 유무선 복합망에서의 지능형 개인화 정보 생성 장치, 시스템 및 방법
US9402277B2 (en) * 2008-03-03 2016-07-26 Qualcomm Incorporated Proxy server for facilitating power conservation in wireless client terminals
US8626112B2 (en) * 2008-07-03 2014-01-07 Centurylink Intellectual Property Llc Multi-button emergency message generation
TW201008234A (en) * 2008-08-12 2010-02-16 Acer Inc Energy-saving method for handheld Internet accessing device, the handheld Internet accessing device, and the real-time message system
US8344852B2 (en) 2008-12-24 2013-01-01 Blackboard Connect Inc. Method and system for transmitting a plurality of notifications in a notification pool
JP2010198243A (ja) 2009-02-24 2010-09-09 Oki Electric Ind Co Ltd 行動予測装置および行動予測方法
US9075883B2 (en) * 2009-05-08 2015-07-07 The Nielsen Company (Us), Llc System and method for behavioural and contextual data analytics
US8930438B2 (en) 2009-06-17 2015-01-06 Apple Inc. Push-based location update
US9015597B2 (en) 2009-07-31 2015-04-21 At&T Intellectual Property I, L.P. Generation and implementation of a social utility grid
US8489557B2 (en) * 2010-03-22 2013-07-16 Research In Motion Limited Method, system and apparatus for archiving data
EP2586269B1 (en) * 2010-04-22 2019-05-15 Zipit Wireless, Inc. System and method for administration and operation of one or more mobile electronic communications devices
US8694313B2 (en) * 2010-05-19 2014-04-08 Google Inc. Disambiguation of contact information using historical data
US20130054706A1 (en) * 2011-08-29 2013-02-28 Mary Graham Modulation of Visual Notification Parameters Based on Message Activity and Notification Value

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030006911A1 (en) 2000-12-22 2003-01-09 The Cadre Group Inc. Interactive advertising system and method
US8208946B2 (en) 2006-07-24 2012-06-26 Qualcomm Incorporated Method, apparatus, and system for transmitting messages
US20100273486A1 (en) 2006-10-11 2010-10-28 Yash Kharia System and method for optimizing battery power
US20090327390A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Managing data delivery based on device state

Also Published As

Publication number Publication date
JP5965049B2 (ja) 2016-08-03
AU2016201197A1 (en) 2016-03-17
IL245521B (en) 2019-02-28
CN104040942B (zh) 2017-09-29
CA2964991A1 (en) 2013-05-10
US20130115981A1 (en) 2013-05-09
CN107547361A (zh) 2018-01-05
MX353415B (es) 2018-01-11
AU2016201197B2 (en) 2017-03-09
JP5864769B2 (ja) 2016-02-17
AU2012333039A1 (en) 2014-06-05
IL245521A0 (en) 2016-06-30
KR20140095532A (ko) 2014-08-01
CA2920651C (en) 2017-06-20
EP2774318A1 (en) 2014-09-10
US8954100B2 (en) 2015-02-10
BR112014012350A2 (pt) 2017-06-13
JP2016119674A (ja) 2016-06-30
AU2017201196B2 (en) 2019-03-07
KR20160011238A (ko) 2016-01-29
MX2014005395A (es) 2015-02-05
JP2014534773A (ja) 2014-12-18
WO2013066611A1 (en) 2013-05-10
AU2012333039B2 (en) 2016-04-14
US20150087345A1 (en) 2015-03-26
US20160100296A1 (en) 2016-04-07
US9232372B2 (en) 2016-01-05
US9801032B2 (en) 2017-10-24
EP2774318B1 (en) 2019-03-13
CN104040942A (zh) 2014-09-10
JP6352339B2 (ja) 2018-07-04
IL232430A0 (en) 2014-06-30
KR101806984B1 (ko) 2017-12-08
AU2019203407A1 (en) 2019-06-06
IN2014CN03844A (ko) 2015-09-04
CA2964991C (en) 2018-05-22
AU2017201196A1 (en) 2017-03-09
IL232430A (en) 2016-06-30
US10194285B2 (en) 2019-01-29
MX340567B (es) 2016-07-14
KR20160092058A (ko) 2016-08-03
IL243345A (en) 2016-09-29
CA2854275A1 (en) 2013-05-10
CN107547361B (zh) 2019-04-19
EP2774318A4 (en) 2015-06-10
US20180007522A1 (en) 2018-01-04
JP2016201118A (ja) 2016-12-01
CA2854275C (en) 2016-04-26
KR101590497B1 (ko) 2016-02-01
CA2920651A1 (en) 2013-05-10

Similar Documents

Publication Publication Date Title
KR101645620B1 (ko) 모바일 장치에 대한 소셜 업데이트를 피기백하기 위한 서버-측 레이트-제한 알고리즘
US10771932B1 (en) Device actions based on device power
US9819605B2 (en) Controlling notification based on power expense and social factors
US10070284B2 (en) Low power high frequency social updates for mobile devices

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent