KR101991609B1 - 사용자 모바일 네트워크 및 데이터 플랜에 기초한 콘텐츠의 필터링 - Google Patents

사용자 모바일 네트워크 및 데이터 플랜에 기초한 콘텐츠의 필터링 Download PDF

Info

Publication number
KR101991609B1
KR101991609B1 KR1020177031634A KR20177031634A KR101991609B1 KR 101991609 B1 KR101991609 B1 KR 101991609B1 KR 1020177031634 A KR1020177031634 A KR 1020177031634A KR 20177031634 A KR20177031634 A KR 20177031634A KR 101991609 B1 KR101991609 B1 KR 101991609B1
Authority
KR
South Korea
Prior art keywords
user
content
filtering
item
items
Prior art date
Application number
KR1020177031634A
Other languages
English (en)
Other versions
KR20170133465A (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 KR20170133465A publication Critical patent/KR20170133465A/ko
Application granted granted Critical
Publication of KR101991609B1 publication Critical patent/KR101991609B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/805QOS or priority aware

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

프로세서 및 명령어들을 저장하는 메모리를 포함하는 시스템이 설명되고, 명령어들은, 실행될 때, 시스템으로 하여금, 사용자의 클라이언트 디바이스로부터 콘텐츠 요청을 수신하게 하고; 클라이언트 디바이스에 대한 네트워크 가용성의 레벨 및 사용자와 연관된 데이터 플랜 가용성을 결정하게 하고; 사용자에게 디스플레이를 위해 콘텐츠를 필터링하기 위한 하나 이상의 콘텐츠 필터링 인자들을 결정하게 하고; 하나 이상의 필터링 인자들, 네트워크 가용성의 레벨, 및 데이터 플랜 가용성에 기초하여 콘텐츠를 필터링하게 하고; 사용자의 클라이언트 디바이스 상의 디스플레이를 위해 필터링된 콘텐츠를 제공하게 한다.

Description

사용자 모바일 네트워크 및 데이터 플랜에 기초한 콘텐츠의 필터링
본 개시내용은 사용자 모바일 네트워크 및 데이터 플랜(data-plan)에 기초하여 콘텐츠를 필터링하는 것에 관한 것이다. 구체적으로, 본 개시내용은 사용자의 모바일 디바이스가 온(on)으로 있는 네트워크의 품질 및 사용자에게 남아있는 데이터 플랜의 양에 기초하여 사용자에게 디스플레이를 위해 콘텐츠를 필터링하는 것에 관한 것이다.
사용자가 모바일 애플리케이션(예컨대, 소셜 네트워크 애플리케이션)을 사용하고 있고 열악한 네트워크 커넥션(예컨대, 1바(bar) 에지 네트워크) 상에 있는 경우, 사용자에 의해 요청된 콘텐츠가 낮은 품질로 전달되거나 또는 관심있는 데이터가 아니면 그/그녀의 경험은 매우 불만족스러울 수 있다. 열악한 네트워크 커넥션과 연관된 문제들 중 일부는 1) 시작 시에 로드할 정상적인 수의 소셜 포스트들을 검색하는 데 오랜 시간이 걸릴 수 있고, 2) 일단 포스트들이 로드된다면, 콘텐츠가 관심없어져서, 그 결과 사용자가 로드를 위해 대기한 시간을 낭비하게 될 수 있고, 3) 콘텐츠가 관심있는 것이지만 이와 달리 다수의 미디어 아이템들(예컨대, 사진들, 비디오들 등)을 포함하더라도, 사용자가 그/그녀의 열악한 네트워크 커넥션 때문에 미디어 아이템들을 다운로드하는 것이 불만족스럽거나 불가능하다는 것을 발견하여, 다시 사용자의 시간을 낭비하게 될 수 있다는 것이다.
현재, 사용자가 사용자의 데이터 플랜을 사용할 때 충족되어야 하는 어떤 레벨의 콘텐츠 품질 또는 특성들에 대해 선호도들을 설정하거나 또는 콘텐츠 제공 서버가 디스플레이를 위해 사용자에게 콘텐츠를 다시 전송하기 전에 자동으로 그것을 고려하도록 하는 방법은 없다. 다시 말해, 사용자는 애플리케이션에 "데이터 및/또는 네트워크 대역폭이 타이트하다는 것 - 최상의 콘텐츠만을 부여한다는 것"을 알릴 수 없다. 사용자와의 고 관련성의 콘텐츠만이 열악한 네트워크 커넥션 및/또는 낮은 데이터 플랜 가용성(availability) 시에 렌더링되어야 하는지 그리고 그 나머지가 네트워크 및 데이터 플랜 제약들이 존재하지 않을 때의 다른 시간을 위해 큐잉되어야 하는지를 결정하기 위해 사용자의 네트워크 대역폭 가용성, 사용자의 데이터 플랜에 남아있는 데이터의 양, 및 콘텐츠의 품질을 결합하여 다루는 솔루션은 현재 없다.
본 개시내용에서의 청구물의 하나의 혁신적인 양태에 따르면, 프로세서 및 명령어들을 저장하는 메모리를 갖는 시스템으로서, 명령어들은, 실행될 때, 시스템으로 하여금, 사용자의 클라이언트 디바이스로부터 콘텐츠 요청을 수신하게 하고; 클라이언트 디바이스에 대한 네트워크 가용성의 레벨 및 사용자와 연관된 데이터 플랜 가용성을 결정하게 하고; 사용자에게 디스플레이를 위해 콘텐츠를 필터링하기 위한 하나 이상의 콘텐츠 필터링 인자들을 결정하게 하고; 하나 이상의 필터링 인자들, 네트워크 가용성의 레벨, 및 데이터 플랜 가용성에 기초하여 콘텐츠를 필터링하게 하고; 사용자의 클라이언트 디바이스 상의 디스플레이를 위해 필터링된 콘텐츠를 제공하게 한다.
일반적으로, 본 개시내용에 설명된 청구물의 다른 혁신적인 양태는, 하나 이상의 컴퓨팅 디바이스들을 사용하여, 사용자의 클라이언트 디바이스로부터 콘텐츠 요청을 수신하는 단계; 하나 이상의 컴퓨팅 디바이스들을 사용하여, 클라이언트 디바이스에 대한 네트워크 가용성의 레벨 및 사용자와 연관된 데이터 플랜 가용성을 결정하는 단계; 하나 이상의 컴퓨팅 디바이스들을 사용하여, 사용자에게 디스플레이를 위해 콘텐츠를 필터링하기 위한 하나 이상의 콘텐츠 필터링 인자들을 결정하는 단계; 하나 이상의 컴퓨팅 디바이스들을 사용하여, 하나 이상의 필터링 인자들, 네트워크 가용성의 레벨, 및 데이터 플랜 가용성에 기초하여 콘텐츠를 필터링하는 단계; 및 하나 이상의 컴퓨팅 디바이스들을 사용하여, 사용자의 클라이언트 디바이스 상의 디스플레이를 위해 필터링된 콘텐츠를 제공하는 단계를 포함하는 방법들로 구현될 수 있다.
이러한 양태들 중 하나 이상의 양태의 다른 구현들은, 컴퓨터 저장 디바이스들 상에서 인코딩되는, 방법들의 액션들을 수행하도록 구성된, 대응하는 시스템들, 장치, 및 컴퓨터 프로그램들을 포함한다.
이러한 그리고 다른 구현들은 각각 하기의 특징들 중 하나 이상을 임의로 포함할 수 있다.
예를 들어, 동작들은, 하나 이상의 컴퓨팅 디바이스들을 사용하여, 사용자의 클라이언트 디바이스에 통지를 전송하는 것을 더 포함하고, 통지는 네트워크 가용성의 레벨 및 데이터 플랜 가용성 중 하나 이상을 사용자에게 통지하고 콘텐츠를 필터링할지 여부를 사용자에게 문의한다. 동작들은, 하나 이상의 컴퓨팅 디바이스들을 사용하여, 사용자의 클라이언트 디바이스로부터 콘텐츠를 필터링하는 것에 대한 사용자의 승인을 수신하는 것; 및 하나 이상의 컴퓨팅 디바이스들을 사용하여, 콘텐츠를 필터링하는 것에 대한 사용자의 승인을 수신하는 것에 응답하여 콘텐츠를 필터링하는 것을 더 포함한다. 콘텐츠는 아이템들의 세트를 포함하고, 하나 이상의 필터링 인자들, 네트워크 가용성의 레벨, 및 데이터 플랜 가용성에 기초하여 콘텐츠를 필터링하는 것은, 하나 이상의 컴퓨팅 디바이스들을 사용하여, 하나 이상의 필터링 인자들에 기초하여 각각의 아이템의 관련성을 결정하는 것, 하나 이상의 컴퓨팅 디바이스들을 사용하여, 네트워크 가용성의 레벨 및 데이터 플랜 가용성 중 하나 이상과 아이템의 관련성에 기초하여 아이템에 대해 포함 스코어(inclusion score)를 할당하는 것, 하나 이상의 컴퓨팅 디바이스들을 사용하여, 아이템에 대한 포함 스코어가 특정 임계치보다 작다고 결정하는 것에 응답하여 콘텐츠로부터 아이템을 제거하는 것에 의해 콘텐츠를 필터링하는 것을 포함한다. 동작들은, 하나 이상의 컴퓨팅 디바이스들을 사용하여, 네트워크 가용성의 레벨을 열악한 것으로서 결정하는 것, 하나 이상의 컴퓨팅 디바이스들을 사용하여, 사용자에게 열악한 네트워크 가용성을 통지하고 열악한 네트워크 가용성에 기초하여 콘텐츠를 필터링할지 여부의 옵션을 사용자에게 제공하는 것을 더 포함한다. 동작들은, 하나 이상의 컴퓨팅 디바이스들을 사용하여, 콘텐츠를 필터링하는 것의 옵션에 대한 사용자의 승인을 수신하는 것; 하나 이상의 컴퓨팅 디바이스들을 사용하여, 콘텐츠로부터 고품질 멀티미디어 아이템들을 배제시키고 텍스트 기반이고 작은 사이즈의 이미지들을 포함하는 콘텐츠 내의 아이템들을 우선순위화하는 것에 의해 콘텐츠를 필터링하는 것; 하나 이상의 컴퓨팅 디바이스들을 사용하여, 네트워크 가용성의 레벨을 개선된 것으로서 결정하는 것에 응답하여 사용자에게 디스플레이를 위해 콘텐츠로부터 필터링된 고품질 멀티미디어 아이템들을 자동으로 제공하는 것을 더 포함하고; 콘텐츠를 필터링하는 것은, 콘텐츠로부터 하나 이상의 아이템들을 배제시키는 것 및 콘텐츠의 품질을 저하시키는 것 중 하나 이상을 포함한다.
예를 들어, 특징들은 하나 이상의 필터링 인자들이 사용자 관심사들, 사용자 콘텐츠 품질 선호도들, 사용자의 현재 위치 또는 콘텐츠 액세스의 환경, 콘텐츠에 관련된 다른 사용자들에 대한 사용자의 친화도, 콘텐츠의 타입 및 사이즈, 사용자의 콘텐츠에의 이전 관여 레벨, 특정 시간에 콘텐츠에 관련된 하나 이상의 이벤트들을 표시하는 사용자의 캘린더, 및 사용자의 데이터 플랜의 정상적 사용량을 포함하는 것; 그리고 콘텐츠가 소셜 네트워크 포스트들, 뉴스 기사들, 비디오들, 텍스트들, 오디오 클립들, 및 이미지들 중 하나 이상을 포함하는 것을 포함할 수 있다.
이러한 구현들은 다수의 측면들에서 특히 유리하다. 예를 들어, 본 명세서에 설명된 기술은 사용자들이 보다 고품질의 콘텐츠 및 사용자들이 소비하기가 보다 쉬운 콘텐츠에 대해 이들의 제한된 데이터 플랜을 사용하게 할 수 있다. 이는 사용자들이 데이터 플랜 사용량을 초과할까 봐 임의의 중요한 콘텐츠를 누락시킬 필요가 없거나 또는 이러한 사용자들에게 관심이 보다 적거나 없는 콘텐츠에 대해 이들의 시간 및 데이터 플랜을 낭비할 필요가 없을 것이기 때문에 유리하다. 이 기술은 추가로, 열악한 네트워크 또는 최소의 데이터 플랜 가용성일 때 필터링 또는 렌더링되어야 하는 콘텐츠에 대한 선호도들(예컨대, 가중치들, 설정들 등)을 사용자가 설정하게 한다. 또한, 열악한 네트워크 또는 최소의 데이터 플랜 가용성이 있을 때의 조건 동안, 이 기술은 사용자에게 품질이 높지 않을 수도 있음을 통지하는 통지를 사용자에게 제공하고, 상당히 더 많은 데이터를 낭비하기 전에 환경 조건들(예컨대, 네트워크 품질, 데이터 플랜 가용성)이 양호해질 때 고품질의 콘텐츠를 보게 하는 옵션을 사용자에게 부여한다.
본 개시내용에서 사용되는 언어는 본 명세서에 개시된 청구물의 범위를 제한하는 것이 아니라, 가독성 및 교수(instructional) 목적들을 위해 주로 선택되었다는 것을 이해해야 한다.
본 명세서는 동일한 참조 번호들이 유사한 요소들을 지칭하기 위해 사용되는 첨부 도면들의 도면들에서 제한으로서가 아니라 예로서 예시된다.
도 1은 네트워크 및 데이터 플랜 가용성에 기초하여 콘텐츠를 필터링하기 위한 예시적인 방법의 흐름도이다.
도 2a 내지 도 2c는 네트워크 및 데이터 플랜 가용성에 기초하여 콘텐츠를 필터링하기 위한 다른 예시적인 방법의 블록 다이어그램들이다.
도 3a 및 도 3b는 사용자에게 열악한 네트워크 품질을 통지하고 사용자에게 콘텐츠를 필터링하는 것 또는 콘텐츠를 대기 및 로드하는 것의 옵션들을 제공하기 위한 예시적인 방법의 블록 다이어그램들이다.
도 4는 네트워크 및 데이터 플랜 가용성에 기초하여 콘텐츠를 필터링하기 위한 예시적인 시스템을 예시하는 블록 다이어그램이다.
도 5는 예시적인 컴퓨팅 디바이스를 예시하는 블록 다이어그램이다.
도 6은 본 개시내용에서 저장되고 사용되는 상이한 타입들의 데이터를 도시한다.
본 개시내용은 네트워크 및 데이터 플랜 가용성의 레벨에 기초하여 사용자에게 디스플레이를 위해 콘텐츠를 필터링하기 위한 기술을 설명한다. 특히, 본 명세서에 설명된 기술은 1) 사용자가 온으로 있는 네트워크의 품질(예컨대, 1바 에지 네트워크 대 고품질 Wi-Fi), 2) 현재 지불 사이클에 대해 남아있는 데이터 플랜의 양(예컨대, 초과분 전에 남아있는 10MB 및 현재 사이클에 대해 남아있는 1일 대 초과분 전에 남아있는 10MB 및 현재 사이클에 대해 남아있는 10일), 3) 사용자의 정상적 데이터 플랜 사용량(예컨대, 사용자가 전형적으로 하루에 10MB를 사용하는 것 대 사용자가 전형적으로 일주일에 10MB를 사용하는 것), 4) 콘텐츠 내의 아이템의 타입(예컨대, 단문 텍스트 포스트, 장문 텍스트 포스트, 비디오만을 갖는 포스트, 비디오 및 일부 의미있는 텍스트를 갖는 포스트 등), 5) 사용자의 관심사, 위치, 및/또는 환경에 기초하는 콘텐츠의 품질, 6) 사용자의 소셜 그래프 및 그 소셜 그래프에서의 상이한 노드들 또는 사용자들에 대한 친화도에 기초하는 콘텐츠의 품질, 및 7) 시간 감도 또는 캘린더 적용성(예컨대, 특정 시간에 알게 하기 위한 누군가에게 유용한 콘텐츠가 있는가) 중 하나 이상의 것의 조합에 기초하여 콘텐츠를 필터링한다. 이 기술은 본 명세서에 리스팅된 단지 이러한 인자들 또는 기준들에 기초하여 콘텐츠를 필터링하는 것으로 제한되지 않는다는 것과 콘텐츠를 필터링하기 위한 수많은 다른 인자들이 또한 가능하고 고려된다는 것을 이해해야 한다.
도 1은 네트워크 및 데이터 플랜 가용성에 기초하여 콘텐츠를 필터링하기 위한 예시적인 방법(100)의 흐름도이다. 방법(100)은 사용자의 클라이언트 디바이스로부터 콘텐츠 요청을 수신(102)하는 것으로 시작한다. 예를 들어, 사용자 인터페이스 모듈(410)은 요청을 수신하고 그 요청을 프로세싱하기 위해 그것을 콘텐츠 필터링 엔진(436)으로 전송할 수 있다. 그 후에, 방법(100)은 클라이언트 디바이스에 대한 네트워크 가용성의 레벨 및 사용자와 연관된 데이터 플랜 가용성을 결정(104)할 수 있다. 예를 들어, 콘텐츠 필터링 엔진(436)의 네트워크 품질 및 데이터 플랜 모듈(504)은 네트워크 품질 상태(예컨대, 네트워크 품질이 양호한지/열악한지 여부) 및 데이터 플랜 사용량 통계들(예컨대, 사용자에게 남아있는 데이터 플랜의 양, 현재 빌링 사이클 주기가 종료되기 전에 남아있는 일수 등)을 결정하기 위해 클라이언트 애플리케이션(408)의 네트워크 품질 및 데이터 플랜 분석기(412)와 협력할 수 있다.
방법(100)은 클라이언트 디바이스 상의 사용자에게 디스플레이를 위해 콘텐츠를 필터링하기 위한 하나 이상의 콘텐츠 필터링 인자들을 결정(106)하는 것으로 계속된다. 하나 이상의 필터링 인자들은, 예를 들어 그리고 제한 없이, 사용자의 평균 데이터 플랜 사용량, 사용자의 소셜 그래프 및 사용자 관심사들에 기초하는 콘텐츠의 품질, 콘텐츠의 시간 감도, 콘텐츠에 대한 요청이 이루어진 클라이언트 디바이스의 위치 등을 포함할 수 있다. 일부 구현들에서, 하나 이상의 필터링 인자들의 결정은, 본 명세서의 다른 곳에서 논의되는 바와 같이, 콘텐츠 관련성 결정 및 스코어링 모듈(506)에 의해 수행될 수 있다.
일단 데이터 플랜 가용성, 네트워크 가용성의 레벨, 및 하나 이상의 필터링 인자들이 상기 논의된 바와 같이 결정된다면, 방법(100)은 데이터 플랜 가용성, 네트워크 가용성의 레벨, 및 하나 이상의 필터링 인자들에 기초하여 콘텐츠를 필터링(108)할 수 있다. 예를 들어, 필터링 모듈(508)은 하나 이상의 필터링 인자들 및 네트워크 및 데이터 플랜 가용성의 레벨에 기초하여 콘텐츠로부터 하나 이상의 아이템들을 배제시킴으로써 콘텐츠를 필터링할 수 있다. 블록 108에서 콘텐츠를 필터링하는 것에 응답하여, 방법(100)은 그 후에 사용자의 클라이언트 디바이스 상의 디스플레이를 위해 필터링된 콘텐츠를 제공(110)할 수 있다. 예를 들어, 필터링 모듈(508)은 필터링된 콘텐츠를 콘텐츠 제공 모듈(content provisioning module)(510)로 전송할 수 있고, 그 콘텐츠 제공 모듈(510)은 그 후에 필터링된 콘텐츠를 사용자의 클라이언트 디바이스 상에 디스플레이하기 위해 사용자 인터페이스 모듈(410)과 협력할 수 있다.
도 2a 내지 도 2c는 네트워크 및 데이터 플랜 가용성에 기초하여 콘텐츠를 필터링하기 위한 다른 예시적인 방법(200)의 블록 다이어그램들이다. 방법(200)은 사용자와 연관된 클라이언트 디바이스로부터 콘텐츠 요청을 수신(202)하는 것으로 시작한다. 방법(200)은 클라이언트 디바이스에 대한 네트워크의 품질을 결정(204)할 수 있다. 예를 들어, 네트워크 품질 및 데이터 플랜 분석기(412), 네트워크 품질 및 데이터 플랜 모듈(504), 및/또는 이 둘의 조합은 블록 204에서의 동작을 수행할 수 있다.
네트워크의 품질을 결정하는 것에 응답하여, 방법(200)은 블록 206에서 네트워크가 열악한 품질의 네트워크인지 여부를 결정할 수 있다. 블록 206에서의 결정 결과가 부정적인 경우, 방법(200)은 사용자에게 남아있는 데이터 플랜의 양을 결정(208)하고, 블록 210에서 데이터 플랜이 특정 임계치를 초과하여 사용되는지 여부를 결정하는 것으로 진행할 수 있다. 예를 들어, 사용자는 400MB가 사용된 500MB 데이터 플랜을 가질 수 있고, 데이터 플랜 가용성이 500MB로 재설정되기 전에 여전히 10일이 남아있다. 이 예에서 특정 임계치는 450MB일 수 있다.
블록 210에서의 결정 결과가 부정적인 경우, 그러면 방법(200)은 단순히 블록 236(도 2c 참조)으로 진행하여 사용자의 클라이언트 디바이스 상의 디스플레이를 위해 하나 이상의 아이템들을 포함하는 콘텐츠를 제공할 수 있다. 예를 들어, 네트워크 품질 및 데이터 플랜 모듈(504)이 네트워크 및 데이터 플랜 가용성의 레벨 중 어느 것도 낮거나 열악하지 않다고 결정하는 경우, 그것은 콘텐츠 제공 모듈(510)에게 요청된 콘텐츠를 검색하고 그것을 디스플레이를 위해 사용자 인터페이스 모듈(410)로 전송하도록 시그널링할 수 있다.
블록 206으로 다시 돌아가면, 네트워크 품질 및 데이터 플랜 모듈(504)이 네트워크 품질이 열악한 것으로서 결정하거나 또는 블록 210에서, 데이터 플랜 사용량이 특정 임계치를 초과하여 사용된 것으로 결정하는 경우, 그러면 방법(200)은 블록 212로 진행하여 네트워크 품질 및/또는 사용자에게 남아있는 데이터 플랜의 양을 사용자에게 통지하고 이에 기초하여 콘텐츠가 필터링되어야 하는지 여부를 사용자에게 문의할 수 있다. 다음으로, 방법(200)은 콘텐츠 필터링에 대한 사용자 응답을 수신(214)하고, 사용자 응답에 기초하여, 방법(200)은 블록 216(도 2b 참조)에서 콘텐츠를 필터링할지 여부를 결정할 수 있다. 예를 들어, 네트워크 품질 및 데이터 플랜 모듈(504)은, 제어기(502)를 통해, 본 명세서의 다른 곳에서 논의되는 바와 같이 사용자 인터페이스 모듈(410)로부터의 사용자 응답을 수신할 수 있다. 블록 216에서의 결정 결과가 부정적인 경우, 방법(200)은 단순히 블록 236(도 2c 참조)으로 진행하여 사용자의 클라이언트 디바이스 상의 디스플레이를 위해 하나 이상의 아이템들을 포함하는 콘텐츠를 제공할 수 있다.
다른 한편으로, 블록 216에서의 결정 결과가 긍정적인 경우, 방법(200)은 1) 사용자의 관심사, 2) 사용자의 현재 위치 또는 콘텐츠 액세스의 환경, 3) 아이템이 관련된 다른 하나 이상의 사용자들에 대한 사용자의 친화도, 4) 특정 시간에 아이템에 관련된 하나 이상의 이벤트들을 나타내는 사용자의 캘린더, 5) 아이템의 타입 및 사이즈(예컨대, 단문 또는 장문 텍스트, 비디오, 이미지, 오디오 등), 및 6) 사용자의 아이템에의 이전 관여 레벨에 기초하여 콘텐츠 내의 각각의 아이템의 관련성을 결정(218)할 수 있다. 아이템의 적합성을 결정하는 것이 이러한 인자들 또는 기준들에 기초하는 것으로 제한되지 않는다는 것과 다양한 다른 인자들이 또한 가능하고 고려된다는 것을 이해해야 한다.
다음으로, 방법(200)은 사용자의 정상적 데이터 플랜 사용량을 결정(220)할 수 있다. 블록 220은 점선들로 도시되어 블록 220에서 수행되는 동작이 임의적이고 방법(200)의 동작 동안 항상 수행되지 않을 수도 있음을 표시한다. 그 후에, 방법(200)은 블록 218에서 결정된 아이템의 관련성 및 (블록 204에서 결정된) 네트워크의 품질, (블록 208에서 결정된) 사용자에게 남아있는 데이터 플랜의 양, 및 (블록 220에서 결정된) 사용자의 정상적 데이터 플랜 사용량 중 하나 이상에 기초하여 콘텐츠 내의 각각의 아이템에 대한 포함 스코어를 계산(222)할 수 있다. 일부 구현들에서, 블록들 218 내지 222에서의 동작들은 본 명세서의 다른 곳에서 논의되는 바와 같이 콘텐츠 관련성 결정 및 스코어링 모듈(506)에 의해 수행된다.
각각의 아이템에 대한 포함 스코어를 계산하는 것에 응답하여, 방법(200)은 블록 224에서 아이템에 대한 스코어가 미리 결정된 임계치보다 낮은지 여부를 결정할 수 있다. 예를 들어, 필터링 모듈(508)은 콘텐츠 관련성 결정 및 스코어링 모듈(506)로부터 콘텐츠 내의 하나 이상의 아이템들과 연관된 포함 스코어들을 수신한 후에 각각의 아이템과 연관된 포함 스코어를 미리 결정된 임계치와 비교할 수 있다. 필터링 모듈(508)이 아이템에 대한 포함 스코어가 임계치보다 높다고 결정하는 경우, 방법(200)은 사용자에게의 제공을 위해 콘텐츠 내의 아이템을 유지(226)한 후에 블록 230(도 2c 참조)으로 진행하여 후속 동작들을 수행할 수 있다. 다른 한편으로, 필터링 모듈(508)이 아이템에 대한 포함이 미리 결정된 임계치보다 낮다고 결정하는 경우, 그러면 방법(400)은 블록 228(도 2c 참조)로 진행하여 콘텐츠로부터 그 아이템을 제거할 수 있다.
다음으로, 방법(200)은 블록 230에서 콘텐츠 내의 모든 아이템들이 프로세싱되는지 여부를 결정할 수 있다. 하나 이상의 아이템들이 필터링 모듈(508)에 의해 프로세싱되지 않는다고 결정되는 경우, 그러면 방법(200)은 블록 222(도 2b 참조)로 돌아가서, 상기 논의된 바와 같이, 하나 이상의 아이템들 각각에 대한 포함 스코어를 계산하고 후속 동작들을 수행할 수 있다. 다른 한편으로, 모든 아이템들이 필터링 모듈(508)에 의해 프로세싱되는 것으로 결정되는 경우, 방법(200)은 그 후에 네트워크의 품질이 마지막 품질 체크 이후로 개선되었는지 여부를 결정(232)할 수 있다.
블록 234에서 네트워크 품질이 개선된 것으로 결정되는 경우, 방법(200)은 블록 222(도 2b 참조)로 돌아가서, 상기 논의된 바와 같이, 콘텐츠 내의 각각의 아이템에 대한 포함 스코어를 다시 계산하고 후속 동작들을 수행할 수 있다. 네트워크 품질 체크를 다시 수행하는 것이 유리한데, 이는 그것이, 네트워크 품질 또는 조건들이 개선된 것으로 결정되는 경우, 하나 이상의 배제된 아이템들이 사용자에게의 콘텐츠 제공 시에 포함되게 할 수 있기 때문이다. 다른 한편으로, 블록 234에서의 결정 결과가 부정적인 경우, 그러면 방법(200)은 블록 236으로 진행하여 사용자의 클라이언트 디바이스 상의 디스플레이를 위해 하나 이상의 아이템들을 포함하는 콘텐츠를 제공할 수 있다. 예를 들어, 콘텐츠 제공 모듈(510)은, 제어기(502)를 통해, 콘텐츠에 대해 요청한 사용자의 클라이언트 디바이스 상의 렌더링 또는 디스플레이를 위해 하나 이상의 아이템들을 포함하는 콘텐츠를 사용자 인터페이스 모듈(410)로 전송할 수 있다.
도 3a 및 도 3b는 사용자에게 열악한 네트워크 품질을 통지하고 사용자에게 콘텐츠를 필터링하는 것 또는 콘텐츠를 대기 및 로드하는 것의 옵션들을 제공하기 위한 예시적인 방법(300)의 블록 다이어그램들이다. 방법(300)은 사용자의 클라이언트 디바이스로부터 콘텐츠 요청을 수신(302)하는 것으로 시작한다. 방법(300)은 클라이언트 디바이스가 온으로 있는 네트워크의 품질이 열악한 것으로서 결정(304)할 수 있다. 예를 들어, 콘텐츠 필터링 엔진(436)의 네트워크 품질 및 데이터 플랜 모듈(504)은 본 명세서의 다른 곳에서 논의되는 바와 같이 클라이언트 애플리케이션(408)의 네트워크 품질 및 데이터 플랜 분석기(412)와 협력하여 이 동작을 수행할 수 있다.
클라이언트 디바이스에 대한 네트워크의 품질이 열악한 것으로서 결정하는 것에 응답하여, 방법(300)은 사용자에게 열악한 네트워크 품질을 통지하고 콘텐츠를 필터링할지 또는 콘텐츠를 단지 대기 및 로드할지 여부를 표시하는 옵션들을 사용자에게 제공(306)할 수 있다. 예를 들어, 네트워크 품질 및 데이터 플랜 모듈(504)은, 제어기(502)를 통해, 통지를 사용자 인터페이스 모듈(410)로 전송할 수 있고, 그 사용자 인터페이스 모듈(410)은 그 후에 그것을 사용자의 클라이언트 디바이스 상에 디스플레이할 수 있다. 그 후에, 방법(300)은 블록 306에서 제공되는 옵션들에 대한 사용자 응답을 수신(308)할 수 있다.
일단 사용자 응답이 수신된다면, 방법(300)은 블록 310에서 사용자 응답이 콘텐츠를 필터링하는 것인지 여부를 결정할 수 있다. 결정 결과가 부정적인 경우, 방법(300)은 블록 312로 진행하여 사용자 응답이 전체 콘텐츠를 대기하고 단지 로드하는 것인지 여부를 결정한다. 결과가 부정적인 경우, 방법(300)은 사용자 응답에 기초하여 사용자에 의해 선택되는 옵션을 결정하는 것을 계속할 수 있다. 그렇지 않으면, 방법(300)은 현재 네트워크 대역폭에 기초하여 콘텐츠 내의 모든 아이템들이 로드될 때까지 특정 시간량 동안 대기(318)한 후에, 사용자의 클라이언트 상의 디스플레이를 위해 콘텐츠를 제공(320)할 수 있다. 예를 들어, 사용자는 사용자의 좋아하는 스포츠 팀에 대한 소셜 포스트들이 사용자의 친한 친구들에 의해 포스팅되는 것에 대해 얼마간의 시간 동안 기꺼이 대기할 수 있다.
블록 310으로 다시 돌아가면, 사용자 응답이 콘텐츠를 필터링하는 것인 경우, 방법(300)은 블록 314로 진행하여 텍스트 기반이거나 작은 이미지들을 갖는 콘텐츠 내의 아이템들을 우선순위화하는 것에 의해 그리고 네트워크 품질이 양호해질 때의 추후의 제공을 위해 고품질 멀티미디어 아이템들을 배제시키는 것에 의해 콘텐츠를 필터링할 수 있다. 예를 들어, 콘텐츠 관련성 결정 및 스코어링 모듈(506)은 콘텐츠 내의 아이템이 텍스트 또는 작은 이미지들만을 포함하고 고품질 또는 멀티미디어 오브젝트들(예컨대, 비디오, 오디오 등)을 포함하지 않는 경우 그 콘텐츠 내의 아이템에 보다 높은 스코어를 할당할 수 있고, 필터링 모듈(508)은 그의 필터링 프로세스 동안 콘텐츠 관련성 결정 및 스코어링 모듈(506)에 의해 보다 높은 스코어들이 할당되는 콘텐츠 제공 시의 포함을 위한 아이템들에 보다 높은 우선순위를 부여할 수 있다. 일부 구현들에서, 블록 314에서의 필터링 프로세스 동안 방법(300)은 고품질 멀티미디어 아이템들의 사이즈를 보다 작은 사이즈로 저하시켜서 그 아이템들의 품질이 손상되지 않고 여전히 사용자에게 고품질로 보이도록 하는 것에 의해 고품질 멀티미디어 아이템들을 포함하는 것이 여전히 가능할 수 있다. 예를 들어, 콘텐츠 관리 서버(434)는 6mb 고품질 이미지 또는 비디오를 그의 품질을 저하 또는 손상시키는 일 없이 500kb 사이즈로 변환하는 것이 가능할 수 있고, 블록 314에서 그의 필터링 프로세스 동안 방법(300)은 그에 따라 콘텐츠 또는 전체의 대응하는 콘텐츠 포스트로부터 그 고품질 이미지 또는 비디오를 배제시키지 않을 수도 있다. 일부 다른 구현들에서, 방법(300)이 비디오의 스트리밍 품질이 특정 네트워크 영역에 대해 열악할 것이라고 결정하는 경우, 그러면 방법(300)은 콘텐츠로부터 비디오를 필터링할 수 있다. 또 일부 다른 구현들에서, 방법(300)은 콘텐츠로부터 모든 비디오들을 단순히 필터링하거나 배제시킬 수 있고 단지 텍스트 또는 작은 이미지들을 포함할 수 있다. 콘텐츠를 필터링하기 위한 다양한 다른 방법들이 또한 가능하고 고려된다.
다음으로, 필터링 모듈(508)에 의해 콘텐츠를 필터링하는 것에 응답하여, 방법(300)은 사용자의 클라이언트 디바이스 상의 디스플레이를 위해 필터링된 콘텐츠를 제공(316)할 수 있다. 이제 도 3b를 참조하면, 방법(300)은 블록 314에서의 필터링 프로세스에서 콘텐츠로부터 배제된 아이템들을 큐에 저장(322)하는 것으로 계속된다. 배제된 아이템들을 큐에 저장하는 것이 유리한데, 이는 이들이 환경 조건들(예컨대, 네트워크 품질, 데이터 플랜 가용성)이 개선될 때 사용자에게 디스플레이를 위해 추후에 제공될 수 있기 때문이다. 다음으로, 방법(300)은 블록 324에서 마지막 품질 체크 이후로 네트워크 품질이 개선되었는지 여부를 결정하고, 개선되지 않은 경우, 그러면 방법(300)은 블록 324에서 네트워크 품질을 다시 체크하기 전에 미리 결정된 시간량 동안 대기(326)한다. 다른 한편으로, 방법(300)이 네트워크 품질이 개선된 것으로 결정하는 경우, 그러면 방법(300)은 큐로부터 이러한 아이템들을 검색하는 것에 의해 하나 이상의 배제된 아이템들로 콘텐츠를 업데이트(328)한 후에 사용자의 클라이언트 디바이스 상의 디스플레이를 위해 업데이트된 콘텐츠를 제공(330)할 수 있다. 예를 들어, 콘텐츠 제공 모듈(510)은 본 명세서의 다른 곳에서 논의되는 바와 같이 네트워크 품질 및 데이터 플랜 모듈(504) 및 필터링 모듈(508)과 협력하여 블록들 324 내지 330에서의 동작들을 수행할 수 있다.
도 4는 네트워크 및 데이터 플랜 가용성에 기초하여 콘텐츠를 필터링하기 위한 예시적인 시스템(400)을 예시하는 블록 다이어그램이다. 도시된 구현에서, 시스템(400)은 클라이언트 디바이스들(406a 내지 406n), 콘텐츠 관리 서버(434), 사용자 관리 서버(440), 및 제3자 서버(444)를 포함할 수 있다. 예시된 구현에서, 시스템(400)의 이러한 엔티티들은 네트워크(402)를 통해 통신가능하게 커플링된다. 그러나, 본 개시내용은 이러한 구성으로 제한되지 않고 여러 상이한 시스템 환경들 및 구성들이 채용될 수 있고 본 개시내용의 범위 내에 있다. 다른 구현들이 추가적이거나 보다 적은 컴퓨팅 디바이스들, 서비스들, 및/또는 네트워크들을 포함할 수 있다.
도 4뿐만 아니라 구현을 예시하는 데 사용되는 다른 도면들의, 참조 숫자 또는 번호 이후의 문자의 표시, 예를 들어, "406a"는 그 특정 참조 번호에 의해 지정되는 요소 또는 컴포넌트에 대한 특정 참조라는 것을 인식해야 한다. 예를 들어, 참조 번호가 그것에 후속하는 문자 없이, 예를 들어, "406"이 본문에 나타나는 경우에, 그것은 요소 또는 컴포넌트의 상이한 구현들에 대한 일반적인 참조여서 그 일반적인 참조 번호를 나타낸다는 것을 인식해야 한다.
일부 구현들에서, 시스템(400)의 엔티티(entity)들은 하나 이상의 컴퓨터 기능들 또는 루틴들이 로컬 컴퓨팅 디바이스의 요청 시에 원격 컴퓨팅 시스템들 및 디바이스들에 의해 수행되는 클라우드 기반 아키텍처를 사용할 수 있다. 예를 들어, 클라이언트 디바이스(406)는 하드웨어 및/또는 소프트웨어 리소스들을 갖는 컴퓨팅 디바이스일 수 있고, 예를 들어, 다른 클라이언트 디바이스들(406), 콘텐츠 관리 서버(434), 사용자 관리 서버(440), 및/또는 제3자 서버(444) 또는 시스템(400)의 임의의 다른 엔티티들을 포함하는, 다른 컴퓨팅 디바이스들 및 리소스들에 의해 네트워크(402)에 걸쳐 제공되는 하드웨어 및/또는 소프트웨어 리소스들에 액세스할 수 있다.
네트워크(402)는 종래의 타입, 즉, 유선 또는 무선일 수 있고, 성형(star) 구성, 토큰 링 구성, 또는 다른 구성들을 포함하는 수많은 상이한 구성들을 가질 수 있다. 게다가, 네트워크(402)는 로컬 영역 네트워크(LAN), 광역 네트워크(WAN)(예컨대, 인터넷), 및/또는 다수의 디바이스들이 통신할 수 있게 하는 다른 상호접속된 데이터 경로들을 포함할 수 있다. 일부 구현들에서, 네트워크(402)는 피어-투-피어(peer-to-peer) 네트워크일 수 있다. 네트워크(402)는 또한, 여러 상이한 통신 프로토콜들로 데이터를 전송하기 위한 전기통신 네트워크의 부분들에 커플링될 수 있거나 또는 이들을 포함한다. 일부 구현들에서, 네트워크(402)는, 단문 메시징 서비스(SMS), 멀티미디어 메시징 서비스(MMS), 하이퍼텍스트 전송 프로토콜(HTTP), 직접 데이터 커넥션, WAP, 이메일 등을 통한 것을 포함하는, 데이터의 전송 및 수신을 위한 셀룰러 통신 네트워크 또는 블루투스™ 통신 네트워크들을 포함한다. 추가적으로, 도 4가 예시되는 클라이언트 디바이스들(406), 콘텐츠 관리 서버(434), 사용자 관리 서버(440), 및 제3자 서버(444)에 커플링되는 단일 네트워크(402)를 예시하지만, 실제로는, 하나 이상의 네트워크들(402)이 이러한 엔티티들에 접속될 수 있다.
일부 구현들에서, 클라이언트 디바이스들(406)(406a 내지 406n 중 임의의 것 또는 전부)은 데이터 프로세싱 및 데이터 통신 능력들을 갖는 컴퓨팅 디바이스들이다. 예시된 구현에서, 사용자들(414a 내지 414n)은 각각 신호 라인들(412a 및 412n)을 통해 클라이언트 디바이스들(406a 및 406n)과 상호작용한다. 클라이언트 디바이스들(406a 내지 406n)은 각각 신호 라인들(404a 내지 404n)을 통해 네트워크(402)에 통신가능하게 커플링된다. 2개의 클라이언트 디바이스들(406)이 예시되지만, 본 개시내용은 임의의 수의 사용자들(414)에게 이용가능한 임의의 수의 클라이언트 디바이스들(406)을 갖는 시스템 아키텍처에 적용된다.
일부 구현들에서, 클라이언트 디바이스(406)는 워크스테이션 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 넷북 컴퓨터, 태블릿 컴퓨터, 스마트폰, 셋톱 박스/유닛, 시청자 입력을 수신하는 것, 컴퓨터 네트워크들(예컨대, 인터넷) 상의 비디오 콘텐츠에 액세스하는 것, 그리고 시청자들에게 향상된 기능 및 상호작용성을 제공하는 소프트웨어 루틴들을 실행하는 것이 가능한 컴퓨터 프로세서를 포함하는 인터넷 프로토콜 접속된 스마트 TV 등을 포함한다. 일부 구현들에서, 클라이언트 디바이스(406)는 음성 및/또는 데이터 통신들을 전송 및 수신하는 것이 가능할 수 있는 핸드헬드 무선 컴퓨팅 디바이스일 수 있다.
클라이언트 디바이스(406)는, 예를 들어, 무선 신호들을 통해 네트워크 데이터를 브로드캐스트 및 수신하기 위한 무선 트랜시버들을 포함하여, 네트워크(402)와 상호작용하기 위한 하나 이상의 네트워크 인터페이스들을 포함하는 통신 유닛, 전원, 메모리, 및 컴퓨터 프로세서를 포함할 수 있다. 클라이언트 디바이스(406)는 또한 그래픽 프로세서; 고해상도 터치스크린; 물리적 키보드; 전방 및 후방 대향 카메라들; 블루투스® 모듈; 적용가능한 펌웨어를 저장하는 메모리; 및 다양한 물리적 커넥션 인터페이스들(예컨대, USB, HDMI, 헤드셋 잭 등); 등 중의 하나 이상을 포함할 수 있다.
추가적으로, 클라이언트 디바이스(406)의 하드웨어 및 리소스들을 관리하기 위한 운영 체제, 하드웨어 및 리소스들로의 애플리케이션 액세스를 제공하기 위한 애플리케이션 프로그래밍 인터페이스(API)들, 사용자 상호작용 및 입력을 위한 인터페이스들을 생성 및 디스플레이하기 위한 사용자 인터페이스 모듈, 및, 예를 들어, 웹 브라우징, 인터넷 애플리케이션들을 통한 하나 이상의 다른 사용자들과의 인스턴트 메시징을 위한 애플리케이션들, 및/또는 실시간 비디오 통신 애플리케이션들을 포함하는 애플리케이션들 등이 클라이언트 디바이스(406) 상에 저장되고 동작가능할 수 있다. 도 4가 2개 이상의 클라이언트 디바이스들(406)을 예시하지만, 본 개시내용은 임의의 수의 클라이언트 디바이스들(406)을 갖는 임의의 시스템 아키텍처에 적용된다.
일부 구현들에서, 클라이언트 디바이스들(406a 내지 406n)은 클라이언트 디바이스(406)의 프로세서(516)(도 5 참조)에 의해 실행가능하여 사용자 상호작용을 제공하고 네트워크(402)를 통해 데이터를 전송 및 수신하는 클라이언트 애플리케이션들(408a 내지 408n)(본 명세서에서는 개별적으로 그리고 집합적으로 클라이언트 애플리케이션(408)이라고 지칭됨)을 각각 포함한다. 특히, 클라이언트 애플리케이션(408)은 클라이언트 디바이스(406)에게 사용자 인터페이스들을 렌더링하도록, 사용자 입력을 수신하도록, 그리고 콘텐츠 관리 서버(434), 사용자 관리 서버(440), 제3자 서버(444), 및 시스템(100)의 다른 엔티티들로 정보를 전송하고 이들로부터 정보를 수신하도록 명령하도록 동작가능할 수 있다. 이러한 구현들 또는 다른 구현들에서, 클라이언트 애플리케이션(408)은 클라이언트 디바이스(406)의 메모리(518)(도 5 참조)에 저장될 수 있고 프로세서(516)(도 5 참조)에 의해 액세스가능하고 실행가능하다.
콘텐츠 관리 서버(434)는 프로세서(도시되지 않음), 메모리(도시되지 않음), 및 네트워크 통신 능력들을 포함하는 하드웨어 서버일 수 있다. 콘텐츠 관리 서버(434)는 시스템(400)의 다른 컴포넌트들과의 통신 및 협력을 위해 신호 라인(432)을 통해 네트워크(402)에 커플링된다. 일부 구현들에서, 콘텐츠 관리 서버(434)는 네트워크(402)를 통해 클라이언트 디바이스들(406a 내지 406n), 사용자 관리 서버(440), 및/또는 제3자 서버(444) 중 하나 이상으로/으로부터 데이터를 전송 및 수신한다. 하나의 콘텐츠 관리 서버(434)가 도시되지만, 본 기술분야의 통상의 기술자는 분산 아키텍처에서 또는 다른 방법으로 다수의 서버들이 활용될 수 있다는 것을 인식할 것이다. 본 출원의 목적을 위해, 시스템에 의해 수행되는 시스템 구성 및 동작들은 단일의 콘텐츠 관리 서버(434)의 맥락에서 설명된다.
도시된 바와 같이, 콘텐츠 관리 서버(434)는 네트워크 및 데이터 플랜 가용성의 레벨에 기초하여 콘텐츠를 필터링하기 위한 콘텐츠 필터링 엔진(436)을 포함할 수 있다. 일부 구현들에서, 콘텐츠 필터링 엔진(436)은 클라이언트 디바이스(406)와 협력하여 본 명세서에 설명된 그의 동작들을 수행할 수 있다. 예를 들어, 콘텐츠 필터링 엔진(436)은 클라이언트 디바이스(406)로부터의 네트워크 및 데이터 플랜 가용성의 레벨을 입력으로서 수신한 후에 그의 필터링 동작들을 수행할 수 있다. 콘텐츠 필터링 엔진(436)은 사용자 관리 서버(440)와 협력하여 본 명세서에 설명된 그의 동작들을 추가로 수행할 수 있다. 예를 들어, 콘텐츠 필터링 엔진(436)은 사용자 관리 서버(440)로부터 사용자 데이터(예컨대, 사용자 콘텐츠 품질 선호도들, 사용자의 관심사들, 사용자의 소셜 그래프, 사용자의 캘린더, 사용자의 콘텐츠와의 이전 상호작용, 사용자 평균 데이터 플랜 사용량, 사용자의 위치 등)를 검색하고 사용자 데이터를 고려하여 그의 필터링을 수행할 수 있다. 콘텐츠 필터링 엔진(436)은 상기 언급된 서비스들을 제공하는 것으로 제한되지 않고 임의의 다른 클라이언트 또는 네트워크 기반 서비스를 제공할 수 있다는 것을 이해해야 한다.
사용자 관리 서버(440)는 프로세서(도시되지 않음), 메모리(도시되지 않음), 및 네트워크 통신 능력들을 포함하는 하드웨어 서버일 수 있다. 사용자 관리 서버(440)는 시스템(400)의 다른 컴포넌트들과의 통신 및 협력을 위해 신호 라인(438)을 통해 네트워크(402)에 커플링된다. 일부 구현들에서, 사용자 관리 서버(440)는 네트워크(402)를 통해 클라이언트 디바이스들(406a 내지 406n), 콘텐츠 관리 서버(434), 및/또는 제3자 서버(444) 중 하나 이상으로/으로부터 데이터를 전송 및 수신한다. 하나의 사용자 관리 서버(440)가 도시되지만, 본 기술분야의 통상의 기술자는 분산 아키텍처에서 또는 다른 방법으로 다수의 서버들이 활용될 수 있다는 것을 인식할 것이다. 본 출원의 목적을 위해, 시스템에 의해 수행되는 시스템 구성 및 동작들은 단일의 사용자 관리 서버(440)의 맥락에서 설명된다.
사용자 관리 서버(440)는 비일시적인 데이터 스토어(store), 예를 들어, 도 6에 도시된 바와 같은 사용자 데이터 스토어(524)에 사용자 데이터를 유지하도록 구성된다. 일부 구현들에서, 사용자 관리 서버(440)는 네트워크(402)를 통해 사용자에 의해 수행되는 하나 이상의 온라인 활동들을 자동으로 학습하는 것에 의해 사용자 데이터를 공식화할 수 있다. 일부 다른 구현들에서, 사용자 관리 서버(440)는 클라이언트 디바이스(406)를 통해 사용자에 의해 정의된 사용자 데이터를 명시적으로 수신한 후에 그 데이터를 사용자 데이터 스토어(524)에 저장할 수 있다. 예를 들어, 사용자 관리 서버(440)는 사용자 데이터 스토어(524)(도 6 참조)에 도시된 바와 같은 하나 이상의 아이템들에 대해 사용자에게 문의하라는 요청을 클라이언트 디바이스(406)로 전송할 수 있고, 하나 이상의 아이템들의 수신 시에, 이러한 아이템들을 사용자 데이터 스토어(524)에 저장할 수 있다.
사용자 데이터는 콘텐츠 관리 서버(434)에 의해 수행되는 콘텐츠 필터링 동안 사용될 수 있다. 사용자 관리 서버(440)는 콘텐츠 관리 서버(434)로/로부터 데이터를 전송 및 수신하기 위해 콘텐츠 관리 서버(434)에 통신가능하게 커플링될 수 있다. 예를 들어, 사용자 관리 서버(440)는 사용자 데이터 스토어(524)에 저장된 하나 이상의 아이템들에 대해 요청하는 요청을 콘텐츠 관리 서버(434)로부터 수신할 수 있고, 사용자 관리 서버(440)는 요청된 아이템들을 전송하여 그 요청을 이행할 수 있다. 사용자 관리 서버(440)는 상기 언급된 서비스들을 제공하는 것으로 제한되지 않고 임의의 다른 클라이언트 또는 네트워크 기반 서비스를 제공할 수 있다는 것을 이해해야 한다.
제3자 서버(444)는 다양한 컴퓨팅 기능들, 서비스들, 및/또는 리소스들을 시스템들(400)의 다른 엔티티들에 제공하기 위한 하나 이상의 컴퓨팅 디바이스들 또는 시스템들을 포함한다. 제3자 서버(444)는 시스템(400)의 다른 컴포넌트들과의 통신 및 협력을 위해 신호 라인(442)을 통해 네트워크(402)에 커플링된다. 일부 구현들에서, 제3자 서버(444)는 컴퓨팅 기능들, 서비스들 및/또는 리소스들 또는 기능들을 제공하도록, 그리고 시스템들(400)의 다른 엔티티들로 데이터를 전송하고 이들로부터 데이터를 수신하도록 동작가능한 네트워크 기반 소프트웨어 애플리케이션(예컨대, 제3자 애플리케이션(446))을 호스팅한다. 일부 구현들에서, 제3자 서버(444)는, 데이터 프로세싱, 저장 및 통신 능력들을 갖는, 서버, 서버 어레이 또는 임의의 다른 컴퓨팅 디바이스, 또는 컴퓨팅 디바이스들의 그룹이다. 제3자 애플리케이션(446)을 포함하는 제3자 서버(444)가 제공할 수 있는 소프트웨어 서비스들의 타입들의 예들은 제3자 온라인 게이밍 애플리케이션들; 인터넷 검색; 소셜 네트워킹; 웹 기반 이메일; 블로깅; 마이크로블로깅; 멀티미디어 호스팅, 배포, 및 공유; 비즈니스 서비스들; 뉴스 및 미디어 배포; 또는 전술한 서비스들의 임의의 조합을 포함하지만, 이들로 제한되지 않는다. 제3자 서버(444)는 상기 언급된 서비스들을 제공하는 것으로 제한되지 않고 임의의 다른 네트워크 기반 또는 클라우드 기반 서비스를 포함할 수 있다는 것을 이해해야 한다.
도 5는 콘텐츠 관리 서버(434), 사용자 관리 서버(440), 및/또는 클라이언트 디바이스(406)에 포함되는 컴퓨팅 디바이스를 대표할 수 있는 예시적인 컴퓨팅 디바이스(500)의 블록 다이어그램이다. 도시된 바와 같이, 컴퓨팅 디바이스(500)는 프로세서(516), 메모리(518), 통신 유닛(520), 콘텐츠 리포지토리(repository)(522), 사용자 데이터 스토어(524), 및 클라이언트 애플리케이션(408)과 콘텐츠 필터링 엔진(436) 중 하나 이상을 포함할 수 있고, 이들은 통신 버스(514)에 의해 통신가능하게 커플링될 수 있다.
구성에 따라, 컴퓨팅 디바이스(500)는 상이한 컴포넌트들을 포함할 수 있다. 예를 들어, 콘텐츠 관리 서버측 구현에서, 컴퓨팅 디바이스(500)는 프로세서(516), 메모리(518), 통신 유닛(520), 콘텐츠 필터링 엔진(436), 및 콘텐츠 리포지토리(522)를 포함할 수 있다. 예시적인 사용자 관리 서버측 구현에서, 컴퓨팅 디바이스(500)는 컴포넌트들(516, 518, 520), 및 사용자 데이터 스토어(524)를 포함할 수 있다. 예시적인 클라이언트측 구현에서, 컴퓨팅 디바이스(500)는 컴포넌트들(516, 518, 520), 및 클라이언트 애플리케이션(408)을 포함할 수 있다. 상기 구성들은 예로서 제공되고 수많은 추가의 구성들이 고려되고 가능하다는 것을 이해해야 한다.
프로세서(516)는 다양한 입력들, 논리적, 및/또는 수리적 동작들을 수행하는 것에 의해 소프트웨어 명령어들을 실행할 수 있다. 프로세서(516)는, 예를 들어, 복합 명령어 세트 컴퓨터(complex instruction set computer)(CISC) 아키텍처, 축소 명령어 세트 컴퓨터(reduced instruction set computer)(RISC) 아키텍처, 및/또는 명령어 세트들의 조합을 구현하는 아키텍처를 포함하는 방법 데이터 신호들에 대한 다양한 컴퓨팅 아키텍처들을 가질 수 있다. 프로세서(516)는 물리적 및/또는 가상적일 수 있고, 단일 코어 또는 복수의 프로세싱 유닛들 및/또는 코어들을 포함할 수 있다. 일부 구현들에서, 프로세서(516)는 전자 디스플레이 신호들을 생성하고 그 전자 디스플레이 신호들을 디스플레이 디바이스에 제공하는 것, 이미지들의 디스플레이를 지원하는 것, 이미지들을 캡처 및 송신하는 것, 다양한 타입들의 특징 추출 및 샘플링을 포함하는 복합 태스크들을 수행하는 것 등이 가능할 수 있다. 일부 구현들에서, 프로세서(516)는 버스(514)를 통해 메모리(518)에 커플링되어 그로부터의 데이터 및 명령어들에 액세스하고 거기에 데이터를 저장할 수 있다. 버스(514)는, 예를 들어, 클라이언트 애플리케이션(408), 콘텐츠 필터링 엔진(436), 메모리(518), 통신 유닛(520), 콘텐츠 리포지토리(522), 및/또는 사용자 데이터 스토어(524)를 포함하는, 컴퓨팅 디바이스(500)의 다른 컴포넌트들에 프로세서(516)를 커플링할 수 있다.
메모리(518)는 컴퓨팅 디바이스(500)의 다른 컴포넌트들에 데이터를 저장하고 그 데이터로의 액세스를 제공할 수 있다. 일부 구현들에서, 메모리(518)는 프로세서(516)에 의해 실행될 수 있는 명령어들 및/또는 데이터를 저장할 수 있다. 메모리(518)는 또한, 예를 들어, 운영 체제, 하드웨어 드라이버들, 다른 소프트웨어 애플리케이션들, 데이터베이스들 등을 포함하는, 다른 명령어들 및 데이터를 저장하는 것이 가능하다. 메모리(518)는 프로세서(516) 및 컴퓨팅 디바이스(500)의 다른 컴포넌트들과의 통신을 위해 버스(514)에 커플링될 수 있다.
메모리(518)는 프로세서(5216)에 의해 또는 그와 관련하여 프로세싱하기 위해 명령어들, 데이터, 컴퓨터 프로그램들, 소프트웨어, 코드, 루틴들 등을 포함, 저장, 통신, 전파 또는 전송할 수 있는 임의의 비일시적인 장치 또는 디바이스일 수 있는 비일시적인 컴퓨터 사용가능(예컨대, 판독가능, 기입가능 등) 매체를 포함할 수 있다. 일부 구현들에서, 메모리(518)는 휘발성 메모리 및 비휘발성 메모리(예컨대, RAM, ROM, 하드 디스크, 광학 디스크 등) 중 하나 이상을 포함할 수 있다. 메모리(518)는 단일 디바이스일 수 있거나 또는 다수의 타입들의 디바이스들 및 구성들을 포함할 수 있다는 것을 이해해야 한다.
버스(514)는 컴퓨팅 디바이스의 컴포넌트들 사이 또는 컴퓨팅 디바이스들 사이의 데이터 전송을 위한 통신 버스, 네트워크(402) 또는 그의 부분들을 포함하는 네트워크 버스 시스템, 프로세서 메시, 이들의 조합 등을 포함할 수 있다. 일부 구현들에서, 클라이언트 애플리케이션(408) 및 콘텐츠 필터링 엔진(436)은 버스(514)와 연관되어 구현되는 소프트웨어 통신 메커니즘을 통해 협력 및 통신할 수 있다. 소프트웨어 통신 메커니즘은, 예를 들어, 프로세스간 통신, 로컬 기능 또는 프로시저 호출들, 원격 프로시저 호출들, 네트워크 기반 통신, 보안 통신 등을 포함하거나 및/또는 용이하게 할 수 있다.
통신 유닛(520)은 네트워크(402) 및, 예를 들어, 클라이언트 디바이스들(406), 콘텐츠 관리 서버(434), 사용자 관리 서버(440), 콘텐츠 리포지토리(522), 및 사용자 데이터 스토어(524) 등을 포함하는, 시스템(400)의 다른 엔티티들 및/또는 컴포넌트들과의 유선 및 무선 접속을 위한 하나 이상의 인터페이스 디바이스들을 포함할 수 있다. 예를 들어, 통신 유닛(520)은 CAT 타입 인터페이스들; Wi-Fi™; 블루투스®, 셀룰러 통신들 등을 사용하여 신호들을 전송 및 수신하기 위한 무선 트랜시버들; USB 인터페이스들; 이들의 다양한 조합들; 등을 포함할 수 있지만, 이들로 제한되지 않는다. 통신 유닛(520)은 신호 라인들(404, 432, 및 438)을 통해 네트워크(402)에 커플링될 수 있다. 일부 구현들에서, 통신 유닛(520)은 프로세서(516)를 네트워크(402)에 링크시킬 수 있고, 그 네트워크(402)는 차례로 다른 프로세싱 시스템들에 커플링될 수 있다. 통신 유닛(520)은, 예를 들어, 본 명세서의 다른 곳에서 논의되는 것들을 포함하는, 다양한 표준 통신 프로토콜들을 사용하여 네트워크(402)로의 그리고 시스템(400)의 다른 엔티티들로의 다른 커넥션들을 제공할 수 있다.
콘텐츠 리포지토리(522) 및 사용자 데이터 스토어(524)는 데이터로의 액세스를 저장 및 제공하기 위한 정보 소스들이다. 일부 구현들에서, 콘텐츠 리포지토리(522) 및 사용자 데이터 스토어(524)는 버스(514)를 통해 컴퓨팅 디바이스(500)의 컴포넌트들(516, 518, 520, 408, 및/또는 436)에 커플링되어 데이터를 수신하고 그 데이터로의 액세스를 제공할 수 있다. 일부 구현들에서, 콘텐츠 리포지토리(522) 및 사용자 데이터(524)는 시스템(400)의 다른 엔티티들(406, 434, 및/또는 440)로부터 수신된 데이터를 저장하고 이러한 엔티티들로의 데이터 액세스를 제공할 수 있다. 콘텐츠 리포지토리(522) 및 사용자 데이터 스토어(524)는 각각 데이터를 저장하기 위한 하나 이상의 비일시적인 컴퓨터 판독가능 매체들을 포함할 수 있다. 일부 구현들에서, 콘텐츠 리포지토리(522) 및 사용자 데이터 스토어(524)는 메모리(518)와 통합될 수 있거나 또는 그와는 별개의 것일 수 있다. 일부 구현들에서, 콘텐츠 리포지토리(522) 및 사용자 데이터 스토어(524)는 데이터베이스 관리 시스템(DBMS)을 포함할 수 있다. 예를 들어, DBMS는 구조화 질의 언어(SQL) DBMS, NoSQL DMBS, 이들의 다양한 조합들 등을 포함할 수 있다. 일부 경우들에서, DBMS는 로우(row)들 및 컬럼(column)들로 구성되는 다차원 테이블들에 데이터를 저장할 수 있고, 프로그램적 동작들을 사용하여 데이터의 로우들을 조작, 예컨대, 삽입, 질의, 업데이트 및/또는 삭제할 수 있다.
이제 도 6을 참조하면, 콘텐츠 리포지토리(522)는, 예를 들어 그리고 제한 없이, 소셜 네트워크 포스트들(602), 웹/뉴스 피드들(604), 비디오 기반 포스트들(606), 텍스트 기반 포스트들(608), 오디오 클립들(610), 및/또는 이미지들(612)을 포함할 수 있다. 소셜 네트워크 포스트들(602)은 소셜 네트워크 상의 다양한 토픽들에 관하여 사용자에 의해 만들어진 포스트들을 포함한다. 웹/뉴스 피드들(604)은 뉴스 기사들, 저널들, 상태 업데이트들, 사진들, 비디오들, 웹 링크들, 및 사용자가 따르는 관심있는 사람들 및/또는 토픽들에 관한 지지들과 같은 데이터를 포함한다. 비디오 기반 포스트들(606)은 소셜 네트워크 상의 사용자에 의한 비디오들을 내장하는 포스트들을 포함한다. 텍스트 기반 포스트들(608)은, 텍스트들만을 포함하고 어떠한 멀티미디어(예컨대, 오디오, 비디오, 사진 등)도 포함하지 않는, 사용자에 의해 만들어진 포스트들이다. 오디오 클립들(610)은 인터넷 상에 존재하는 노래들, 라디오, 오디오 강의들, 키노트(keynote)들 등과 같은 오디오 콘텐츠를 포함한다. 이미지들(612)은 인터넷 상에 존재하는 그래픽 콘텐츠를 포함한다.
예를 들어 도 6에 도시된 바와 같이, 사용자 데이터 스토어(524)는, 제한 없이, 사용자 콘텐츠 품질 선호도들(622), 사용자 관심사들(624), 사용자의 소셜 그래프(626), 사용자의 캘린더(628), 사용자의 콘텐츠와의 이전 상호작용들(630), 사용자 데이터 플랜 사용량(632), 및/또는 사용자의 위치(634)를 포함할 수 있다. 사용자 콘텐츠 품질 선호도들(622)은 상이한 환경 조건들(예컨대, 양호한/열악한 네트워크 가용성, 고/저 데이터 플랜 가용성 등)에서의 콘텐츠 품질에 대한 사용자 선호도들을 포함한다. 예를 들어, 사용자 콘텐츠 품질 선호도들(622)은, 특정 사용자에 대해, 네트워크 조건이 열악할 때 사용자가 고품질 또는 저품질의 콘텐츠를 원하는지 여부를 설명할 수 있다. 사용자 관심사들(624)은 복수의 사용자들에 대해 다양한 활동들, 토픽들, 콘텐츠(예컨대, 영화들, 노래들 등), 음식, 및 다른 사람들에 있어서의 이들의 관심사들 또는 좋아하는 것들을 설명할 수 있다. 사용자의 소셜 그래프(626)는 특정 사용자가 소셜 네트워크 상에서 관계 또는 친화도를 공유하는 하나 이상의 사용자들을 정의한다. 하나 이상의 사용자들은 소셜 네트워크 상의 특정 사용자의 친구들일 수 있다. 사용자의 캘린더(628)는 특정 날짜/시간에 대한 설명으로서 또는 리마인더로서 사용자에 의해 마크업된 하나 이상의 이벤트들 또는 노트들을 포함한다. 사용자의 콘텐츠와의 이전 상호작용(630)은 비디오, 오디오, 이미지, 메시지, 소셜 네트워크 포스트 등과 같은 특정 콘텐츠와의 사용자 상호작용들의 날짜 및 시간 스탬프들을 포함한다. 사용자의 데이터 플랜 사용량(632)은 사용자와 연관된 데이터 플랜의 사용량 통계들을 설명한다. 예를 들어, 사용량 통계들은 사용자가 특정 달 동안 그/그녀의 데이터 플랜의 1.5GB를 사용하였지만 다음 달에는 단지 1GB만을 사용하였음을 표시할 수 있다. 사용자의 위치(634)는 콘텐츠가 요청 또는 액세스되었거나 또는 현재 요청 또는 액세스되고 있는 현재 또는 이전 위치들을 설명한다.
도 5로 다시 돌아가면, 도시된 바와 같이, 클라이언트 애플리케이션(408)은 사용자 인터페이스 모듈(410) 및 네트워크 품질 및 데이터 플랜 분석기(412)를 포함한다. 클라이언트 애플리케이션(408)의 컴포넌트들(410 및 412)은 서로와 그리고 컴퓨팅 디바이스(500)의 다른 컴포넌트들(502, 504, 506, 508, 510, 516, 518, 520, 522, 및 524)과의 통신을 위해 커플링된다. 컴포넌트들(410 및 412)은 또한 시스템(400)의 다른 엔티티들과의 통신을 위해 통신 유닛(520)을 통해 네트워크(402)에 커플링된다.
일부 구현들에서, 사용자 인터페이스 모듈(410) 및 네트워크 품질 및 데이터 플랜 분석기(412)는 이들의 각각의 동작(act)들 및/또는 기능을 제공하도록 프로세서(516)에 의해 실행가능한 명령어들의 세트들이다. 다른 구현들에서, 사용자 인터페이스 모듈(410) 및 네트워크 품질 및 데이터 플랜 분석기(412)는 컴퓨팅 디바이스(500)의 메모리(518)에 저장되고 이들의 각각의 동작들 및/또는 기능을 제공하도록 프로세서(516)에 의해 액세스가능하고 실행가능하다. 이러한 구현들 중 임의의 것에 있어서, 사용자 인터페이스 모듈(110) 및 네트워크 품질 및 데이터 플랜 분석기(412)는 프로세서(516), 및 컴퓨팅 디바이스(500)의 다른 컴포넌트들(502, 504, 506, 508, 510, 518, 520, 522, 및 524)과의 협력 및 통신을 위해 적응될 수 있다.
사용자 인터페이스 모듈(410)은 하나 이상의 사용자 입력들을 수신하는 것, 프로세싱을 위해 하나 이상의 사용자 입력들을 콘텐츠 필터링 엔진(436)으로 전송하는 것, 및 프로세싱 결과들을 사용자에게 디스플레이하는 것을 위한 루틴들을 포함하는 소프트웨어일 수 있다. 하나 이상의 사용자 입력들은 콘텐츠에 대한 요청, 네트워크 및 데이터 플랜 가용성의 레벨에 기초하여 콘텐츠를 필터링할지 또는 전체 콘텐츠를 단지 대기 및 로드할지 여부를 사용자에게 통지하는 통지에 대한 응답, 특정 네트워크 품질 및/또는 데이터 플랜 가용성에서 콘텐츠를 필터링하기 위한 사용자 선호도 등을 포함할 수 있다. 하나 이상의 입력들을 수신하는 것에 응답하여, 사용자 인터페이스 모듈(410)은 프로세싱을 위해 콘텐츠 필터링 엔진(436)의 적절한 컴포넌트로 하나 이상의 입력들을 전송할 수 있다. 예를 들어, 사용자 인터페이스 모듈(410)은 콘텐츠 필터링 엔진(436)의 제어기(502)에 통신가능하게 커플링되어 하나 이상의 입력들을 전송할 수 있고, 제어기(502)는 그 후에 추가의 프로세싱을 위해 이러한 입력들을 콘텐츠 필터링 엔진(436)의 적절한 컴포넌트에 전달할 수 있다. 일단 하나 이상의 입력들이 프로세싱된다면, 사용자 인터페이스 모듈(410)은 콘텐츠 필터링 엔진(436)으로부터 프로세싱 결과들을 수신할 수 있고, 그 후에 이러한 결과들을 클라이언트 디바이스(406)와 같은 클라이언트 디바이스 상의 사용자에게 디스플레이를 위해 제공할 수 있다.
네트워크 품질 및 데이터 플랜 분석기(412)는 사용자의 클라이언트 디바이스와 연관된 네트워크 품질 및 데이터 플랜 가용성을 분석하기 위한 루틴들을 포함하는 소프트웨어일 수 있다. 일부 구현들에서, 네트워크 품질을 분석하는 것은 사용자의 클라이언트 디바이스와 연관된 네트워크 가용성의 레벨을 결정하는 것을 포함한다. 네트워크 가용성의 레벨은 네트워크의 품질이 양호한지 또는 열악한지 여부의 표시이다. 예를 들어, 양호한 품질의 네트워크는 고품질의 Wi-Fi 네트워크일 수 있지만, 열악한 품질의 네트워크는 1바 에지 네트워크일 수 있다.
일부 구현들에서, 데이터 플랜 가용성을 분석하는 것은 현재 빌링 사이클 주기가 종료되기 전에 남아있는 시간 및 초과분 전에 사용자에게 남아있는 데이터 플랜의 양을 결정하는 것을 포함한다. 비제한적 예로서, 사용자는 31일을 포함하는 현재의 빌링 사이클 주기에서 25일 내에 1.5GB가 사용된 2GB 데이터 플랜에 가입될 수 있고, 그 후에 이 특정 예에서 데이터 플랜 가용성을 분석하는 것은 다음 6일의 사용량에 대해 사용자에게 500MB가 남아있다는 것을 결정하는 것을 포함한다.
일부 구현들에서, 네트워크 품질 및 데이터 플랜 분석기(412)는 콘텐츠 필터링 엔진(436)으로부터 요청을 수신하는 것에 응답하여 본 명세서에 설명된 그의 동작들을 수행할 수 있다. 예를 들어, 네트워크 품질 및 데이터 플랜 분석기(412)는 콘텐츠 렌더링 엔진(436)의 네트워크 품질 및 데이터 플랜 모듈(504)로부터 사용자의 클라이언트 디바이스와 연관된 네트워크 품질 및 데이터 플랜 가용성을 분석하라는 요청을 수신할 수 있다. 요청을 프로세싱하는 것에 응답하여, 네트워크 품질 및 데이터 플랜 분석기(412)는 분석 결과를 콘텐츠 필터링 엔진(436)으로 다시 전송하여 그의 추가의 동작들 및/또는 기능들을 수행할 수 있다. 다른 변형들이 또한 가능하고 고려된다.
도시된 바와 같이, 콘텐츠 필터링 엔진(436)은 제어기(502), 네트워크 품질 및 데이터 플랜 모듈(504), 콘텐츠 관련성 결정 및 스코어링 모듈(506), 필터링 모듈(508), 및 콘텐츠 제공 모듈(510)을 포함한다. 콘텐츠 필터링 엔진(436)의 컴포넌트들(502, 504, 506, 508, 및 510)은 서로와 그리고 컴퓨팅 디바이스(500)의 다른 컴포넌트들(408, 410, 412, 516, 518, 520, 522, 및 524)과의 통신을 위해 커플링된다. 컴포넌트들(502, 504, 506, 508, 및 510)은 또한 시스템(400)의 다른 엔티티들과의 통신을 위해 통신 유닛(520)을 통해 네트워크(402)에 커플링된다.
일부 구현들에서, 제어기(502), 네트워크 품질 및 데이터 플랜 모듈(504), 콘텐츠 관련성 결정 및 스코어링 모듈(506), 필터링 모듈(508), 및 콘텐츠 제공 모듈(510)은 이들의 각각의 동작들 및/또는 기능을 제공하도록 프로세서(516)에 의해 실행가능한 명령어들의 세트들이다. 다른 구현들에서, 제어기(502), 네트워크 품질 및 데이터 플랜 모듈(504), 콘텐츠 관련성 결정 및 스코어링 모듈(506), 필터링 모듈(508), 및 콘텐츠 제공 모듈(510)은 컴퓨팅 디바이스(500)의 메모리(518)에 저장되고 이들의 각각의 동작들 및/또는 기능을 제공하도록 프로세서(516)에 의해 액세스가능하고 실행가능하다. 이러한 구현들 중 임의의 것에 있어서, 제어기(502), 네트워크 품질 및 데이터 플랜 모듈(504), 콘텐츠 관련성 결정 및 스코어링 모듈(506), 필터링 모듈(508), 및 콘텐츠 제공 모듈(510)은 프로세서(516), 및 컴퓨팅 디바이스(500)의 다른 컴포넌트들(408, 410, 412, 518, 520, 522, 및 524)과의 협력 및 통신을 위해 적응될 수 있다.
제어기(502)는 콘텐츠 필터링 엔진(426)과 클라이언트 디바이스(408)의 하나 이상의 컴포넌트들 사이에서 데이터를 교환하기 위한 루틴들을 포함하는 소프트웨어일 수 있다. 예를 들어, 제어기(502)는 클라이언트 디바이스(408)의 컴포넌트(예컨대, 사용자 인터페이스 모듈(410))로부터 하나 이상의 입력들을 수신하는 것 그리고 프로세싱을 위해 하나 이상의 입력들을 콘텐츠 필터링 엔진(426)의 각각의 컴포넌트로 전송하는 것을 위한 매체로서 작용할 수 있다. 일부 구현들에서, 프로세싱에 응답하여, 제어기(502)는 클라이언트 디바이스(408)의 하나 이상의 컴포넌트들로 프로세싱 결과들을 다시 전송하여 이들의 동작들 및/또는 기능들을 수행하도록 추가로 구성된다. 예로서, 제어기(502)는, 사용자 인터페이스 모듈(410)로부터, 네트워크 및/또는 데이터 플랜 가용성의 레벨에 기초하여 콘텐츠의 필터링을 승인하는 사용자 입력을 수신하고, 사용자 입력을 네트워크 품질 및 데이터 플랜 모듈(504)로 전송하여 필터링 프로세스를 개시할 수 있다. 일단 콘텐츠가 필터링된다면, 제어기(502)는 사용자에게 디스플레이를 위해 필터링된 콘텐츠를 사용자 인터페이스 모듈(410)로 전송할 수 있다.
네트워크 품질 및 데이터 플랜 모듈(504)은 사용자와 연관된 네트워크 및 데이터 플랜 가용성의 레벨을 결정하기 위한 루틴들을 포함하는 소프트웨어일 수 있다. 일부 구현들에서, 네트워크 및 데이터 플랜 모듈(504)은 네트워크 품질 및 데이터 플랜 분석기(412)와 협력하여 네트워크 및 데이터 플랜 가용성의 레벨을 결정할 수 있다. 예를 들어, 네트워크 품질 및 데이터 플랜 모듈(504)은, 제어기(502)를 통해, 사용자의 클라이언트 디바이스와 연관된 네트워크 품질 및 사용자의 어카운트와 연관된 데이터 플랜 가용성을 분석하라는 요청을 클라이언트 애플리케이션(408)의 네트워크 품질 및 데이터 플랜 분석기(412)로 전송할 수 있고, 데이터 플랜 분석기(412)는 그 후에 그의 분석을 수행하여 네트워크 및 데이터 플랜 가용성의 레벨을 결정하고 그의 분석 결과들을 그 요청에 대한 응답으로서 네트워크 및 데이터 플랜 모듈(504)로 전송할 수 있다.
네트워크 품질 및 데이터 플랜 가용성의 레벨의 수신 시에, 네트워크 품질 및 데이터 플랜 모듈(504)은 네트워크 품질이 양호한지/열악한지 여부 그리고 데이터 플랜 사용량이 특정 임계치를 초과하는지 여부를 결정할 수 있다. 특정 임계치는 미리 결정된 사용량 값일 수 있거나 또는 사용자에게 남아있는 데이터 플랜의 양 및 현재 빌링 사이클 주기에 남아있는 일수에 기초하여 동적으로 결정될 수 있다. 네트워크 품질 및 데이터 플랜 모듈(504)이 네트워크 품질을 열악한 것으로서 결정하거나 및/또는 데이터 플랜 사용량이 특정 임계치를 초과한 것으로서 결정하는 경우, 그러면 네트워크 품질 및 데이터 플랜 모듈(504)은 네트워크 품질 및/또는 남아있는 데이터 플랜의 양에 따라 사용자에 의해 요청된 콘텐츠가 필터링되어야 하는지를 판정할 수 있다. 일부 구현들에서, 네트워크 품질 및 데이터 플랜 모듈(504)은, 제어기(504)를 통해, 이 콘텐츠 필터링의 통지를 사용자 인터페이스 모듈(410)로 전송하여 콘텐츠를 필터링하는 것에 대한 사용자의 승인을 문의할 수 있다. 사용자의 응답에 기초하여, 네트워크 품질 및 데이터 플랜 모듈(504)은 콘텐츠 필터링 엔진(436)의 적절한 컴포넌트에 동작들의 후속 세트를 수행하도록 시그널링할 수 있다. 예를 들어, 사용자의 응답이 콘텐츠 필터링에 대한 승인을 표시하는 경우, 그러면 네트워크 품질 및 데이터 플랜 모듈(504)은 콘텐츠 관련성 결정 및 스코어링 모듈(506)에 본 명세서에 설명된 그의 동작들 및/또는 기능들을 수행하도록 시그널링할 수 있다. 다른 한편으로, 사용자의 응답이 콘텐츠 필터링에 대한 거부를 표시하고 그 대신에 전체 콘텐츠를 대기 및 로드하기를 원할 경우, 그러면 네트워크 품질 및 데이터 플랜 모듈(504)은 콘텐츠 제공 모듈(510)에 어떠한 필터링도 없이 요청된 콘텐츠를 사용자에게 단순히 제공하도록 시그널링할 수 있다.
콘텐츠 관련성 결정 및 스코어링 모듈(506)은 사용자에 의해 요청된 콘텐츠의 관련성을 결정하기 위한 루틴들을 포함하는 소프트웨어일 수 있다. 콘텐츠는 하나 이상의 아이템들(예컨대, 텍스트 기반 포스트들, 비디오 기반 포스트들, 오디오 클립들, 사진들 등)을 포함할 수 있고, 콘텐츠의 관련성을 결정하는 것은, 일부 경우들에서, 하나 이상의 인자들에 기초하여 콘텐츠 내의 각각의 아이템의 관련성을 결정하는 것을 포함할 수 있다. 하나 이상의 인자들은, 예를 들어 그리고 제한 없이, 사용자 관심사들, 콘텐츠가 액세스되고 있는 사용자의 현재 위치 또는 환경, 콘텐츠 내의 아이템이 관련된 다른 사용자들에 대한 사용자의 친화도, 특정 시간에 콘텐츠 내의 아이템에 관련된 하나 이상의 이벤트들을 나타내는 사용자의 캘린더, 아이템의 타입 및 사이즈(예컨대, 아이템이 단문 텍스트 또는 장문 텍스트, 비디오, 이미지, 오디오 등을 포함하는지 여부), 사용자의 콘텐츠 내의 아이템에의 이전 관여 레벨, 및 요청한 사용자의 평균 데이터 플랜 사용량을 포함할 수 있다.
일부 구현들에서, 콘텐츠 관련성 결정 및 스코어링 모듈(506)은, 상기 논의된 바와 같이, 사용자 관리 서버(440)의 사용자 데이터 스토어(524)(도 6 참조)로부터 콘텐츠 관련성 결정을 위한 하나 이상의 인자들을 검색할 수 있다. 예를 들어, 사용자 데이터 스토어(524)는 사용자 콘텐츠 품질 선호도들(622), 사용자 관심사들(624), 사용자의 소셜 그래프(626), 사용자의 캘린더(628), 사용자의 콘텐츠와의 이전 상호작용들(630), 사용자의 데이터 플랜 사용량(632), 및 사용자의 위치(634)를 포함할 수 있고, 콘텐츠 관련성 결정 모듈(506)은 이들에 기초하여 콘텐츠의 관련성을 결정할 수 있다.
일단 콘텐츠 내의 각각의 아이템의 관련성이 결정된다면, 콘텐츠 관련성 결정 및 스코어링 모듈(506)은 그 후에 아이템과 연관된 관련성, 네트워크 품질의 레벨, 및/또는 데이터 플랜 가용성의 레벨에 기초하여 아이템에 대한 포함 스코어를 컴퓨팅할 수 있다. 아이템에 대한 포함 스코어는 콘텐츠 내의 아이템이 콘텐츠를 요청한 사용자에게 얼마나 중요하거나 관련있는지의 표시일 수 있다. 일부 경우들에서, 아이템에 대한 포함 스코어는 임의의 수치 값일 수 있고, 여기서 높은 수치의 포함 스코어 값은 사용자와 고도로 관련있는 아이템을 표시하지만, 낮은 수치의 포함 스코어 값은 사용자에 대한 관심이 보다 적거나 없는 아이템을 표시한다. 콘텐츠 내의 각각의 아이템에 포함 스코어를 할당하는 것에 응답하여, 콘텐츠 관련성 결정 및 스코어링 모듈(506)은 그 후에 포함 스코어들을 필터링 모듈(510)로 전송하여 그의 동작들 및/또는 기능들을 수행할 수 있다. 일부 구현들에서, 콘텐츠 관련성 결정 및 스코어링 모듈(506)은 또한 클라이언트 애플리케이션(408) 및/또는 콘텐츠 필터링 엔진(436)에 의한 추후 검색 및/또는 액세스를 위해 데이터 스토어에 포함 스코어들을 저장할 수 있다.
필터링 모듈(508)은 네트워크 품질 및 데이터 플랜 가용성의 레벨에 따라 콘텐츠를 필터링하기 위한 루틴들을 포함하는 소프트웨어일 수 있다. 일부 구현들에서, 콘텐츠를 필터링하는 것은 각각의 아이템과 연관된 포함 스코어에 기초하여 콘텐츠로부터 하나 이상의 아이템들을 필터링하거나 배제시키는 것을 포함한다. 필터링 모듈(508)은 본 명세서의 다른 곳에서 논의되는 바와 같이 콘텐츠 관련성 결정 및 스코어링 모듈(506)로부터 아이템에 대한 포함 스코어를 수신할 수 있다.
콘텐츠를 필터링하기 위해, 필터링 모듈(508)은 콘텐츠 내의 각각의 아이템에 대한 포함 스코어를 미리 결정된 임계 스코어와 비교할 수 있다. 예를 들어, 필터링 모듈(508)은 아이템에 대한 포함 스코어를 임계 스코어와 비교하여 사용자에게 제공하기 위해 콘텐츠로부터 아이템을 포함시킬지 또는 배제시킬지 여부를 판정할 수 있다. 아이템에 대한 포함 스코어가 임계 스코어보다 작은 경우, 필터링 모듈(508)은 아이템을 배제시킬 수 있다. 그렇지 않으면, 필터링 모듈(508)은 콘텐츠에 아이템을 유지 또는 포함시키는 것으로 판정할 수 있다.
일부 구현들에서, 필터링 모듈(508)은 상기 논의된 바와 같이 필터링 프로세스 동안 배제된 아이템들의 큐를 유지하도록 추가로 구성될 수 있다. 배제된 아이템들의 큐를 유지하는 것이 유리한데, 이는 네트워크 및/또는 데이터 플랜 조건들이 양호해질 때 이러한 아이템들이 사용자에게 디스플레이를 위해 추후에 제공될 수 있기 때문이다. 일단 콘텐츠 필터링 및 큐에서 배제된 아이템들의 큐를 유지하는 것이 필터링 모듈(508)에 의해 완료된다면, 필터링 모듈(508)은 그 후에 사용자에게 제공하기 위해 필터링된 콘텐츠 및 배제된 아이템들의 큐를 콘텐츠 제공 모듈(510)로 전송할 수 있다.
콘텐츠 제공 모듈(510)은 사용자에게 디스플레이를 위해 콘텐츠를 제공하기 위한 루틴들을 포함하는 소프트웨어일 수 있다. 디스플레이를 위해 제공되는 콘텐츠는 필터링된 콘텐츠이거나 또는 어떠한 필터링도 없이 사용자에 의해 요청된 콘텐츠일 수 있다. 일부 구현들에서, 콘텐츠 제공 모듈(510)은 필터링 모듈(508) 또는 네트워크 품질 및 데이터 플랜 모듈(504)로부터 신호를 수신하는 것에 응답하여 본 명세서에 설명된 그의 기능들을 수행할 수 있다. 예를 들어, 필터링 모듈(508)로부터 수신된 신호는, 콘텐츠를 요청하고 콘텐츠 필터링을 위해 승인한 사용자에게 디스플레이를 위해 필터링 모듈(508)에 의해 필터링된 콘텐츠를 제공하는 것을 표시할 수 있다. 네트워크 품질 및 데이터 플랜 모듈(504)로부터 수신된 신호는 본 명세서의 다른 곳에서 논의되는 바와 같이 요청한 사용자에게 디스플레이를 위해 어떠한 필터링도 없이 콘텐츠를 제공하는 것을 표시할 수 있다. 필터링 모듈(508) 또는 네트워크 품질 및 데이터 플랜 모듈(504)로부터 신호를 수신하는 것에 응답하여, 콘텐츠 제공 모듈(510)은 필터링된 콘텐츠 또는 필터링 없는 콘텐츠를 사용자 인터페이스 모듈(410)로 전송할 수 있고, 그 사용자 인터페이스 모듈(410)은 그 후에 사용자와 연관된 클라이언트 디바이스(406) 상에 콘텐츠를 디스플레이한다.
콘텐츠 제공 모듈(510)은 상기 논의된 바와 같이 신호들에 기초하여 콘텐츠를 제공하는 것으로 제한되지 않고 다른 변형들이 또한 가능하고 고려된다는 것을 이해해야 한다. 예를 들어, 콘텐츠 제공 모듈(510)은, 제어기(502)를 통해, 사용자 인터페이스 모듈(410)로부터 콘텐츠에 대한 사용자 요청을 직접적으로 수신할 수 있고, 요청을 수신하는 것에 응답하여, 콘텐츠 제공 모듈(510)은 콘텐츠 리포지토리(522)로부터 요청된 콘텐츠를 검색하고, 제어기(502)를 통해, 검색된 콘텐츠를 사용자 인터페이스 모듈(410)로 전송할 수 있고, 그 사용자 인터페이스 모듈(410)은 그 후에 사용자와 연관된 클라이언트 디바이스(406) 상에 콘텐츠를 디스플레이한다.
일부 구현들에서, 콘텐츠 제공 모듈(510)은 환경 조건들(예컨대, 네트워크 품질, 데이터 플랜 가용성)이 양호해질 때 필터링 모듈(508)에 의한 필터링 프로세스 동안 배제된 아이템들을 사용자에게 제공하도록 추가로 구성될 수 있다. 예를 들어, 디스플레이 목적들을 위해 사용자 인터페이스 모듈(410)에 필터링된 콘텐츠를 제공하는 동안, 콘텐츠 제공 모듈(510)은 또한 사용자에게 환경 조건들이 양호해질 때 그/그녀가 추후의 시간에 콘텐츠에서 배제된 아이템들을 검색하기를 원하는지 여부를 통지하는 통지를 전송할 수 있다. 통지에 대한 사용자의 승인에 기초하여, 콘텐츠 제공 모듈(510)은 환경 조건들을 결정하기 위해 네트워크 품질 및 데이터 플랜 모듈(504)로 주기적으로 체크할 수 있고, 일단 이들이 개선될 것으로 결정된다면, 제어기(502)를 통해, 배제된 아이템들을 사용자 인터페이스 모듈(410)로 전송하여 이들을 사용자의 클라이언트 디바이스(406) 상에 디스플레이할 수 있다.
사용자 인터페이스 모듈(410), 네트워크 품질 및 데이터 플랜 분석기(412), 제어기(502), 네트워크 품질 및 데이터 플랜 모듈(204), 콘텐츠 관련성 결정 및 스코어링 모듈(506), 필터링 모듈 508), 및 콘텐츠 제공 모듈(510)의 추가적인 구조체, 동작들, 및/또는 기능이 적어도 도 1, 도 2a 내지 도 2c, 그리고 도 3a 및 도 3b에 관련하여 추가로 상술된다.
상기 설명에서, 설명의 목적들을 위해, 수많은 특정 상세들이 제시되었다. 그러나, 개시된 기술들은 이러한 특정 상세들의 어떠한 주어진 서브세트 없이도 실행될 수 있다는 것이 명백할 것이다. 다른 경우들에서, 구조체들 및 디바이스들은 블록 다이어그램 형태로 도시된다. 예를 들어, 개시된 기술들은 사용자 인터페이스들 및 특정 하드웨어와 관련하여 상기의 일부 구현들에서 설명된다. 더욱이, 기술들은 주로 온라인 서비스들의 맥락에서 상기에 개시되었지만; 개시된 기술들은 다른 데이터 소스들 및 다른 데이터에 적용된다.
본 명세서에서 "일 구현" 또는 "구현"에 대한 언급은 구현과 관련하여 설명된 특정 특징, 구조체, 또는 특성이 개시된 기술들의 적어도 하나의 구현에 포함된다는 것을 의미한다. 본 명세서의 다양한 곳에서의 "일 구현에서"라는 어구의 출현들은 반드시 모두 동일 구현을 지칭하는 것은 아니다.
상기의 상세한 설명의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 상징적 표현들 및 프로세스들의 관점에서 제시되었다. 프로세스는 일반적으로 결과에 이르게 하는 일관성있는 시퀀스의 단계들로 간주될 수 있다. 단계들은 물리적인 양들의 물리적인 조작들을 수반할 수 있다. 이러한 양들은 저장, 전송, 결합, 비교, 그리고 이와 달리 조작되는 것이 가능한 전기적 또는 자기적 신호들의 형태를 취한다. 이러한 신호들은 비트들, 값들, 요소들, 심볼들, 문자들, 항들, 숫자들 등의 형태로 있는 것으로 지칭될 수 있다.
이러한 그리고 유사한 용어들은 적절한 물리적인 양들과 연관될 수 있고, 이러한 양들에 적용되는 라벨들로 간주될 수 있다. 이전 논의로부터 명백해지는 바와 같이 구체적으로 달리 언급되지 않는 한, 설명 전반에 걸쳐, 예를 들어 "프로세싱하는" 또는 "계산하는" 또는 "산출하는" 또는 "결정하는" 또는 "디스플레이하는" 등의 용어들을 활용하는 논의들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적인(전자) 양으로서 표현되는 데이터를, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장, 송신 또는 디스플레이 디바이스들 내의 물리적인 양으로서 유사하게 표현되는 다른 데이터로 조작 및 변환하는 컴퓨팅 시스템, 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스들을 지칭할 수 있다는 것을 이해한다.
개시된 기술들은 또한 본 명세서의 동작들을 수행하기 위한 장치에 관련될 수 있다. 이 장치는 요구된 목적들을 위해 특수하게 구성될 수 있거나, 또는 그것은 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 재구성되는 범용 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은, 플로피 디스크들, 광학 디스크들, CD-ROM들, 및 자기 디스크들을 포함하는 임의 타입의 디스크, 판독 전용 메모리(ROM)들, 랜덤 액세스 메모리(RAM)들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 비휘발성 메모리를 갖는 USB 키들을 포함하는 플래시 메모리들, 또는 전자 명령어들을 저장하기에 적합한 임의의 타입의 매체들과 같은, 그러나 이들로 제한되지 않는 컴퓨터 판독가능 저장 매체에 저장될 수 있고, 이들 각각은 컴퓨팅 시스템 버스에 커플링된다.
개시된 기술들은 전적으로 하드웨어 구현, 전적으로 소프트웨어 구현 또는 하드웨어 및 소프트웨어 요소들 양측 모두를 포함하는 구현의 형태를 취할 수 있다. 일부 구현들에서, 이 기술은 소프트웨어로 구현되는데, 그 소프트웨어는 펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함하지만 이들로 제한되지 않는다.
게다가, 개시된 기술들은 컴퓨터 또는 임의의 명령어 실행 시스템에 의해 또는 그와 관련하여 사용하기 위한 프로그램 코드를 제공하는 비일시적인 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체로부터 액세스가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 이 설명의 목적들을 위해, 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체는 명령어 실행 시스템, 장치, 또는 디바이스에 의해 또는 그와 관련하여 사용하기 위한 프로그램을 포함, 저장, 통신, 전파, 또는 전송할 수 있는 임의의 장치일 수 있다.
프로그램 코드를 저장 및/또는 실행하기에 적합한 컴퓨팅 시스템 또는 데이터 프로세싱 시스템은 시스템 버스를 통해 메모리 요소들에 직접적으로 또는 간접적으로 커플링되는 적어도 하나의 프로세서(예컨대, 하드웨어 프로세서)를 포함할 것이다. 메모리 요소들은 프로그램 코드의 실제 실행 동안 채용되는 로컬 메모리, 벌크 스토리지, 및 실행 동안 벌크 스토리지로부터 코드가 검색되어야 하는 횟수를 감소시키기 위해 적어도 일부의 프로그램 코드의 임시 저장을 제공하는 캐시 메모리들을 포함할 수 있다.
입/출력 또는 I/O 디바이스들(키보드들, 디스플레이들, 포인팅 디바이스들 등을 포함하지만 이들로 제한되지 않음)은 직접적으로 또는 개재하는 I/O 제어기들을 통해 시스템에 커플링될 수 있다.
네트워크 어댑터들은 또한 데이터 프로세싱 시스템이 개재하는 사설 또는 공용 네트워크들을 통해 다른 데이터 프로세싱 시스템들 또는 원격 프린터들 또는 저장 디바이스들에 커플링될 수 있게 하도록 시스템에 커플링될 수 있다. 모뎀들, 케이블 모뎀들, 및 이더넷 카드들은 현재 이용가능한 타입들의 네트워크 어댑터들 중 단지 일부에 불과하다.
최종적으로, 본 명세서에 제시된 프로세스들 및 디스플레이들은 본질적으로 임의의 특정 컴퓨터 또는 다른 장치에 관련되지 않을 수도 있다. 다양한 범용 시스템들은 본 명세서의 교시에 따라 프로그램들과 함께 사용될 수 있거나, 또는 그것은 요구된 방법 단계들을 수행하기 위해 더 특수화된 장치를 구성하는 것이 편리하다는 것을 입증할 수 있다. 다양한 이러한 시스템들에 대해 요구되는 구조체는 하기의 설명으로부터 나타날 것이다. 추가적으로, 개시된 기술들은 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않았다. 다양한 프로그래밍 언어들이 본 명세서에 설명된 바와 같은 기술들의 교시를 구현하는 데 사용될 수 있다는 것을 이해할 것이다.
본 기법들 및 기술들의 구현들의 전술한 설명은 예시 및 설명의 목적들을 위해 제시되었다. 그것은 본 기법들 및 기술들을 개시된 정밀한 형태로 제한하거나 총망라하도록 의도된 것이 아니다. 상기 교시에 비추어 많은 수정들 및 변형들이 가능하다. 본 기법들 및 기술들의 범위는 이 상세한 설명에 의해 제한되지 않는 것으로 의도된다. 본 기법들 및 기술들은 그의 사상 또는 본질적인 특성들로부터 벗어남이 없이 다른 특정 형태들로 구현될 수 있다. 마찬가지로, 모듈들, 루틴들, 특징들, 속성들, 방법론들 및 다른 양태들의 특정 명명 및 구분은 필수적이거나 유의미하지 않으며, 본 기법들 및 기술들 또는 그의 특징들을 구현하는 메커니즘들은 상이한 명칭들, 구분들 및/또는 포맷들을 가질 수 있다. 게다가, 본 기술의 모듈들, 루틴들, 특징들, 속성들, 방법론들 및 다른 양태들은 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합으로서 구현될 수 있다. 또한, 그 예가 모듈인 컴포넌트가 소프트웨어로서 구현되는 어디에서나, 컴포넌트는 독립형 프로그램으로서, 보다 큰 프로그램의 일부로서, 복수의 개별 프로그램들로서, 정적으로 또는 동적으로 링크된 라이브러리로서, 커널 로딩가능 모듈로서, 디바이스 드라이버로서, 및/또는 컴퓨터 프로그래밍에 있어서 현재 또는 장래에 공지되는 모든 그리고 임의의 다른 방식으로 구현될 수 있다. 추가적으로, 본 기법들 및 기술들은 임의의 특정 운영 체제 또는 환경에 대한, 또는 임의의 특정 프로그래밍 언어로의 구현으로 결코 제한되지 않는다. 따라서, 본 기법들 및 기술들의 개시내용은 제한하는 것이 아니라, 예시적인 것으로 의도된다.

Claims (20)

  1. 컴퓨터 구현 방법으로서,
    하나 이상의 컴퓨팅 디바이스를 사용하여, 사용자의 클라이언트 디바이스로부터 콘텐츠 요청을 수신하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 사용자와 연관된 데이터 플랜 가용성(data plan availability) 및 상기 클라이언트 디바이스에 대한 제1 네트워크 품질 상태를 결정하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 복수의 콘텐츠 아이템으로부터의 콘텐츠의 아이템과의 상기 사용자의 이전 상호작용 및 특정 시간에서 상기 아이템에 관련된 하나 이상의 이벤트를 표시하는 사용자 입력을 포함하는 하나 이상의 필터링 인자를 결정하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 필터링된 콘텐츠를 생성하기 위해, 상기 아이템과의 상기 사용자의 이전 상호작용, 특정 시간에서 상기 아이템에 관련된 하나 이상의 이벤트를 표시하는 상기 사용자 입력, 상기 제1 네트워크 품질 상태 및 상기 데이터 플랜 가용성에 기초하여 동적으로 결정되는 임계치를 데이터 플랜 사용량이 충족시키는지 여부에 기초하여 상기 복수의 콘텐츠 아이템을 필터링하는 단계;
    제2 네트워크 품질 상태를 결정하는 단계;
    상기 제1 네트워크 품질 상태 및 제2 네트워크 품질 상태 간의 차이에 응답하여, 상기 필터링된 콘텐츠를 상기 차이에 기초하여 수정하는 단계; 및
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 사용자의 상기 클라이언트 디바이스 상의 디스플레이를 위해 상기 수정된 콘텐츠를 제공하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 사용자의 상기 클라이언트 디바이스에 통지를 전송하는 단계 - 상기 통지는 상기 제1 네트워크 품질 상태 및 상기 데이터 플랜 가용성 중 하나 이상을 상기 사용자에게 통지하고, 상기 복수의 콘텐츠 아이템을 필터링할지를 상기 사용자에게 문의(asking)함 -;
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 사용자의 상기 클라이언트 디바이스로부터, 상기 복수의 콘텐츠 아이템을 필터링하는 것에 대한 사용자의 승인을 수신하는 단계; 및
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 사용자의 승인을 수신하는 것에 응답하여 상기 복수의 콘텐츠 아이템을 필터링하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 하나 이상의 필터링 인자에 기초하여 상기 아이템의 관련성(relevance)을 결정하는 단계; 및
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 제1 네트워크 품질 상태 및 상기 데이터 플랜 가용성 중 하나 이상과 상기 아이템의 상기 관련성에 기초하여, 상기 아이템에 대해 포함 스코어(inclusion score)를 할당하는 단계
    를 더 포함하고,
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 복수의 콘텐츠 아이템을 필터링하는 단계는 상기 아이템에 대한 상기 포함 스코어가 특정 임계치보다 작다고 결정하는 것에 응답하여 상기 필터링된 콘텐츠로부터 상기 아이템을 제거하는 단계를 포함하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 하나 이상의 필터링 인자는 사용자 관심사, 사용자 콘텐츠 품질 선호도, 상기 사용자의 현재 위치 또는 콘텐츠 액세스의 환경, 상기 콘텐츠의 아이템에 관련된 다른 사용자들에 대한 상기 사용자의 친화도, 상기 콘텐츠의 아이템의 타입 및 사이즈 및 상기 사용자의 데이터 플랜의 정상적 사용량(user's normal usage of data plan)을 포함하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 제1 네트워크 품질 상태를 열악한 것으로서 결정하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 열악한 제1 네트워크 품질 상태를 상기 사용자에게 통지하고, 상기 열악한 제1 네트워크 품질 상태에 기초하여 상기 복수의 콘텐츠 아이템을 필터링할지의 옵션을 상기 사용자에게 제공하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 복수의 콘텐츠 아이템을 필터링하는 것의 옵션에 대한 상기 사용자의 승인을 수신하는 단계; 및
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 필터링된 콘텐츠로부터 고품질 멀티미디어 아이템들을 배제시키고, 텍스트 기반이며 작은 사이즈의 이미지들을 포함하는 상기 복수의 콘텐츠 아이템을 우선순위화하는 것에 의해, 상기 복수의 콘텐츠 아이템을 필터링하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    디스플레이를 위해 상기 수정된 콘텐츠를 제공하는 단계는:
    상기 하나 이상의 컴퓨팅 디바이스를 사용하여, 상기 제2 네트워크 품질 상태가 상기 제1 네트워크 품질 상태로부터 개선된 것으로서 결정하는 것에 응답하여, 상기 사용자에게 디스플레이하기 위해 상기 필터링된 콘텐츠로부터 필터링되었던 상기 고품질 멀티미디어 아이템들을 자동으로 제공하는 단계
    를 포함하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 복수의 콘텐츠 아이템을 필터링하는 단계는, 상기 필터링된 콘텐츠로부터 하나 이상의 아이템을 배제시키는 단계 및 상기 필터링된 콘텐츠의 품질을 저하시키는 단계 중 하나 이상을 포함하는 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 필터링된 콘텐츠는, 소셜 네트워크 포스트들(social network posts), 뉴스 기사들, 비디오들, 텍스트들, 오디오 클립들 및 이미지들 중 하나 이상을 포함하는 컴퓨터 구현 방법.
  9. 컴퓨터 판독가능 프로그램을 포함하는 비-일시적 컴퓨터 판독가능 기록매체로서,
    상기 컴퓨터 판독가능 프로그램은, 컴퓨터 상에서 실행될 때, 상기 컴퓨터로 하여금,
    사용자의 클라이언트 디바이스로부터 콘텐츠 요청을 수신하게 하고;
    상기 사용자와 연관된 데이터 플랜 가용성 및 상기 클라이언트 디바이스에 대한 제1 네트워크 품질 상태를 결정하게 하고;
    복수의 콘텐츠 아이템으로부터의 콘텐츠의 아이템과의 상기 사용자의 이전 상호작용 및 특정 시간에서 상기 아이템에 관련된 하나 이상의 이벤트를 표시하는 사용자 입력을 포함하는 하나 이상의 필터링 인자를 결정하게 하고;
    필터링된 콘텐츠를 생성하기 위해, 상기 아이템과의 상기 사용자의 이전 상호작용, 특정 시간에서 상기 아이템에 관련된 하나 이상의 이벤트를 표시하는 상기 사용자 입력, 상기 제1 네트워크 품질 상태 및 상기 데이터 플랜 가용성에 기초하여 동적으로 결정되는 임계치를 데이터 플랜 사용량이 충족시키는지 여부에 기초하여 상기 복수의 콘텐츠 아이템을 필터링하게 하고;
    제2 네트워크 품질 상태를 결정하게 하고;
    상기 제1 네트워크 품질 상태 및 제2 네트워크 품질 상태 간의 차이에 응답하여, 상기 필터링된 콘텐츠를 상기 차이에 기초하여 수정하게 하며;
    상기 사용자의 상기 클라이언트 디바이스 상의 디스플레이를 위해 상기 수정된 콘텐츠를 제공
    하게 하는 비-일시적 컴퓨터 판독가능 기록매체.
  10. 제9항에 있어서,
    상기 컴퓨터 판독가능 프로그램은, 상기 컴퓨터 상에서 실행될 때, 또한 상기 컴퓨터로 하여금,
    상기 사용자의 상기 클라이언트 디바이스에 통지를 전송하게 하고 - 상기 통지는 상기 제1 네트워크 품질 상태 및 상기 데이터 플랜 가용성 중 하나 이상을 상기 사용자에게 통지하고, 상기 복수의 콘텐츠 아이템을 필터링할지를 상기 사용자에게 문의함 -;
    상기 사용자의 상기 클라이언트 디바이스로부터, 상기 복수의 콘텐츠 아이템을 필터링하는 것에 대한 사용자의 승인을 수신하게 하고;
    상기 사용자의 승인을 수신하는 것에 응답하여 상기 복수의 콘텐츠 아이템을 필터링하게 하는 비-일시적 컴퓨터 판독가능 기록매체.
  11. 제9항에 있어서,
    상기 컴퓨터 판독가능 프로그램은, 상기 컴퓨터 상에서 실행될 때, 또한 상기 컴퓨터로 하여금,
    상기 하나 이상의 필터링 인자에 기초하여 상기 아이템의 관련성을 결정하게 하고;
    상기 제1 네트워크 품질 상태 및 상기 데이터 플랜 가용성 중 하나 이상 및 상기 아이템의 상기 관련성에 기초하여, 상기 아이템에 대해 포함 스코어를 할당하게 하며,
    상기 복수의 콘텐츠 아이템을 필터링하는 것은, 상기 아이템에 대한 상기 포함 스코어가 특정 임계치보다 작다고 결정하는 것에 응답하여 상기 필터링된 콘텐츠로부터 상기 아이템을 제거하는 것을 포함하는, 비-일시적 컴퓨터 판독가능 기록매체.
  12. 제9항에 있어서,
    상기 하나 이상의 필터링 인자는 사용자 관심사, 사용자 콘텐츠 품질 선호도, 상기 사용자의 현재 위치 또는 콘텐츠 액세스의 환경, 상기 콘텐츠의 아이템에 관련된 다른 사용자들에 대한 상기 사용자의 친화도, 상기 콘텐츠의 아이템의 타입 및 사이즈 및 상기 사용자의 데이터 플랜의 정상적 사용량을 포함하는 비-일시적 컴퓨터 판독가능 기록매체.
  13. 제9항에 있어서,
    상기 컴퓨터 판독가능 프로그램은, 상기 컴퓨터 상에서 실행될 때, 또한 상기 컴퓨터로 하여금,
    상기 제1 네트워크 품질 상태를 열악한 것으로서 결정하게 하고;
    상기 열악한 제1 네트워크 품질 상태를 상기 사용자에게 통지하게 하고, 상기 열악한 제1 네트워크 품질 상태에 기초하여 상기 복수의 콘텐츠 아이템을 필터링할지의 옵션을 상기 사용자에게 제공하게 하고;
    상기 복수의 콘텐츠 아이템을 필터링하는 것의 옵션에 대한 상기 사용자의 승인을 수신하게 하고;
    상기 필터링된 콘텐츠로부터 고품질 멀티미디어 아이템들을 배제시키고, 텍스트 기반이며 작은 사이즈의 이미지들을 포함하는 상기 복수의 콘텐츠 아이템을 우선순위화하는 것에 의해, 상기 복수의 콘텐츠 아이템을 필터링
    하게 하는 비-일시적 컴퓨터 판독가능 기록매체.
  14. 제13항에 있어서,
    디스플레이를 위해 상기 수정된 콘텐츠를 제공하기 위해, 상기 컴퓨터 판독가능 프로그램은, 상기 컴퓨터 상에서 실행될 때, 또한 상기 컴퓨터로 하여금, 상기 제2 네트워크 품질 상태가 상기 제1 네트워크 품질 상태로부터 개선된 것으로서 결정하는 것에 응답하여, 상기 사용자에게 디스플레이하기 위해 상기 필터링된 콘텐츠로부터 필터링되었던 상기 고품질 멀티미디어 아이템들을 자동으로 제공하게 하는 비-일시적 컴퓨터 판독가능 기록매체.
  15. 제9항에 있어서,
    상기 복수의 콘텐츠 아이템을 필터링하기 위해, 상기 컴퓨터 판독가능 프로그램은, 상기 컴퓨터 상에서 실행될 때, 또한 상기 컴퓨터로 하여금, 상기 필터링된 콘텐츠로부터 하나 이상의 아이템을 배제시키는 것 및 상기 필터링된 콘텐츠의 품질을 저하시키는 것 중 하나 이상을 수행하게 하는 비-일시적 컴퓨터 판독가능 기록매체.
  16. 제9항에 있어서,
    상기 필터링된 콘텐츠는, 소셜 네트워크 포스트들, 뉴스 기사들, 비디오들, 텍스트들, 오디오 클립들 및 이미지들 중 하나 이상을 포함하는 비-일시적 컴퓨터 판독가능 기록매체.
  17. 시스템으로서,
    프로세서; 및
    명령어들을 저장하는 메모리
    를 포함하고,
    상기 명령어들은, 실행될 때, 상기 시스템으로 하여금,
    사용자의 클라이언트 디바이스로부터 콘텐츠 요청을 수신하게 하고;
    상기 사용자와 연관된 데이터 플랜 가용성 및 상기 클라이언트 디바이스에 대한 제1 네트워크 품질 상태를 결정하게 하고;
    복수의 콘텐츠 아이템으로부터의 콘텐츠의 아이템과의 상기 사용자의 이전 상호작용 및 특정 시간에서 상기 아이템에 관련된 하나 이상의 이벤트를 표시하는 사용자 입력을 포함하는 하나 이상의 필터링 인자를 결정하게 하고;
    필터링된 콘텐츠를 생성하기 위해, 상기 아이템과의 상기 사용자의 이전 상호작용, 특정 시간에서 상기 아이템에 관련된 하나 이상의 이벤트를 표시하는 상기 사용자 입력, 상기 제1 네트워크 품질 상태 및 상기 데이터 플랜 가용성에 기초하여 동적으로 결정되는 임계치를 데이터 플랜 사용량이 충족시키는지 여부에 기초하여 상기 복수의 콘텐츠 아이템을 필터링하게 하고;
    제2 네트워크 품질 상태를 결정하게 하고;
    상기 제1 네트워크 품질 상태 및 제2 네트워크 품질 상태 간의 차이에 응답하여, 상기 필터링된 콘텐츠를 상기 차이에 기초하여 수정하게 하며;
    상기 사용자의 상기 클라이언트 디바이스 상의 디스플레이를 위해 상기 수정된 콘텐츠를 제공하게 하는 시스템.
  18. 제17항에 있어서,
    상기 명령어들은, 실행될 때, 또한 상기 시스템으로 하여금,
    상기 사용자의 상기 클라이언트 디바이스에 통지를 전송하게 하고 - 상기 통지는 상기 제1 네트워크 품질 상태 및 상기 데이터 플랜 가용성 중 하나 이상을 상기 사용자에게 통지하고, 상기 복수의 콘텐츠 아이템을 필터링할지를 상기 사용자에게 문의함 -;
    상기 사용자의 상기 클라이언트 디바이스로부터, 상기 복수의 콘텐츠 아이템을 필터링하는 것에 대한 상기 사용자의 승인을 수신하게 하고;
    상기 사용자의 승인을 수신하는 것에 응답하여 상기 복수의 콘텐츠 아이템을 필터링하게 하는 시스템.
  19. 제17항에 있어서,
    상기 명령어들은, 실행될 때, 또한 상기 시스템으로 하여금,
    상기 하나 이상의 필터링 인자에 기초하여 상기 아이템의 관련성을 결정하게 하고;
    상기 제1 네트워크 품질 상태 및 상기 데이터 플랜 가용성 중 하나 이상 및 상기 아이템의 상기 관련성에 기초하여, 상기 아이템에 대해 포함 스코어를 할당하게 하며,
    상기 복수의 콘텐츠 아이템을 필터링하는 것은, 상기 아이템에 대한 상기 포함 스코어가 특정 임계치보다 작다고 결정하는 것에 응답하여 상기 필터링된 콘텐츠로부터 상기 아이템을 제거하는 것을 포함하는 시스템.
  20. 제17항에 있어서,
    상기 하나 이상의 필터링 인자는 사용자 관심사, 사용자 콘텐츠 품질 선호도, 상기 사용자의 현재 위치 또는 콘텐츠 액세스의 환경, 상기 콘텐츠의 아이템에 관련된 다른 사용자들에 대한 상기 사용자의 친화도, 상기 콘텐츠의 아이템의 타입 및 사이즈 및 상기 사용자의 데이터 플랜의 정상적 사용량을 포함하는 시스템.
KR1020177031634A 2015-08-19 2016-06-17 사용자 모바일 네트워크 및 데이터 플랜에 기초한 콘텐츠의 필터링 KR101991609B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/830,252 2015-08-19
US14/830,252 US10361936B2 (en) 2015-08-19 2015-08-19 Filtering content based on user mobile network and data-plan
PCT/US2016/038202 WO2017030650A1 (en) 2015-08-19 2016-06-17 Filtering content based on user mobile network and data-plan

Publications (2)

Publication Number Publication Date
KR20170133465A KR20170133465A (ko) 2017-12-05
KR101991609B1 true KR101991609B1 (ko) 2019-06-20

Family

ID=56373113

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031634A KR101991609B1 (ko) 2015-08-19 2016-06-17 사용자 모바일 네트워크 및 데이터 플랜에 기초한 콘텐츠의 필터링

Country Status (6)

Country Link
US (2) US10361936B2 (ko)
EP (1) EP3338235A1 (ko)
JP (1) JP6507263B2 (ko)
KR (1) KR101991609B1 (ko)
CN (1) CN108112282B (ko)
WO (1) WO2017030650A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109194571B (zh) * 2018-09-26 2020-11-13 深圳市云歌人工智能技术有限公司 基于优先级的发布信息的方法、设备以及存储介质
KR102613328B1 (ko) * 2019-01-17 2023-12-14 삼성전자주식회사 디스플레이장치 및 그 제어방법
KR20200090020A (ko) 2019-01-18 2020-07-28 한국전자통신연구원 IoT 단말 및 상기 IoT 단말에서 콘텐츠를 필터링 하는 방법
US11405477B1 (en) * 2019-07-10 2022-08-02 Meta Platforms, Inc. Systems and methods for providing updates in social networking systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050071757A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Providing scalable, alternative component-level views
US20070161382A1 (en) * 2006-01-09 2007-07-12 Melinger Daniel J System and method including asynchronous location-based messaging
JP2010055391A (ja) * 2008-08-28 2010-03-11 Fujifilm Corp 商品分析装置、商品提案装置、商品分析方法及びプログラム
US20140029615A1 (en) * 2012-07-26 2014-01-30 Christopher Baldwin Network-based content filtering utilizing user-specified parameters

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010056362A1 (en) * 1998-07-29 2001-12-27 Mike Hanagan Modular, convergent customer care and billing system
US6138156A (en) * 1998-10-05 2000-10-24 International Business Machines Corporation Selecting and applying content-reducing filters based on dynamic environmental factors
US8271336B2 (en) * 1999-11-22 2012-09-18 Accenture Global Services Gmbh Increased visibility during order management in a network-based supply chain environment
US20020099829A1 (en) * 2000-11-27 2002-07-25 Richards Kenneth W. Filter proxy system and method
US20020075844A1 (en) * 2000-12-15 2002-06-20 Hagen W. Alexander Integrating public and private network resources for optimized broadband wireless access and method
US20060235730A1 (en) * 2005-04-15 2006-10-19 Remo Politano Indicating a pending content change within a benefits content system
US6910033B2 (en) * 2001-08-15 2005-06-21 Precache Inc. Method for storing Boolean functions to enable evaluation, modification, reuse, and delivery over a network
US7545805B2 (en) * 2001-08-15 2009-06-09 Precache, Inc. Method and apparatus for content-based routing and filtering at routers using channels
EP1452023B1 (en) 2001-12-07 2008-07-16 Matsushita Electric Industrial Co., Ltd. Media contents distribution system and method
JP4532068B2 (ja) 2001-12-07 2010-08-25 パナソニック株式会社 コンテンツ配信システムおよび方法
US7551629B2 (en) * 2002-03-28 2009-06-23 Precache, Inc. Method and apparatus for propagating content filters for a publish-subscribe network
WO2003098464A1 (en) * 2002-05-14 2003-11-27 Akamai Technologies, Inc. Enterprise content delivery network having a central controller for coordinating a set of content servers
FI20021936A (fi) * 2002-10-31 2004-05-01 Nokia Corp Vaihtuvanopeuksinen puhekoodekki
US7069014B1 (en) 2003-12-22 2006-06-27 Sprint Spectrum L.P. Bandwidth-determined selection of interaction medium for wireless devices
WO2005062553A1 (en) * 2003-12-23 2005-07-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for routing traffic in ad hoc networks
US7698275B2 (en) * 2004-05-21 2010-04-13 Computer Associates Think, Inc. System and method for providing remediation management
US8347088B2 (en) * 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
US20060265489A1 (en) * 2005-02-01 2006-11-23 Moore James F Disaster management using an enhanced syndication platform
US8788311B2 (en) * 2005-04-15 2014-07-22 Fmr Llc Quality control of authoring work flow within a benefits content system
US8265942B2 (en) * 2005-04-15 2012-09-11 Fmr Llc Multi-authoring within benefits content system
US20060235731A1 (en) * 2005-04-15 2006-10-19 Anupam Gupta Content filtering within a benefits content system
US7229196B2 (en) 2005-06-10 2007-06-12 Ilight Technologies, Inc. Illumination device for simulating neon or similar lighting in the shape of a toroid
US7428647B2 (en) * 2005-10-14 2008-09-23 Dell Products L.P. System and method for managing information handling system display response time
US20070143153A1 (en) * 2005-12-20 2007-06-21 Unisys Corporation Demand tracking system and method for a transportation carrier
KR100812933B1 (ko) * 2006-06-29 2008-03-11 주식회사 하이닉스반도체 Sonos 구조를 갖는 반도체 메모리 소자 및 그것의제조 방법
US20100312464A1 (en) * 2007-05-01 2010-12-09 Chicke Fitzgerald Advice engine delivering personalized search results and customized roadtrip plans
FR2919778A1 (fr) * 2007-07-30 2009-02-06 Canon Kk Procede de transmission de paquets de donnees dans un tunnel, produit programme d'ordinateur, moyen de stockage et tete de tunnel correspondants
US20090163183A1 (en) * 2007-10-04 2009-06-25 O'donoghue Hugh Recommendation generation systems, apparatus and methods
US8023425B2 (en) * 2009-01-28 2011-09-20 Headwater Partners I Verifiable service billing for intermediate networking devices
EP2234024B1 (en) * 2009-03-24 2012-10-03 Sony Corporation Context based video finder
US8547941B2 (en) * 2009-04-16 2013-10-01 Qualcomm Incorporated Apparatus and method for improving WLAN spectrum efficiency and reducing interference by flow control
EP2252051B1 (en) * 2009-05-13 2014-06-11 Sony Europe Limited A method of content retrieval
US8473558B2 (en) * 2009-09-22 2013-06-25 Thwapr, Inc. Progressive registration for mobile media sharing
US8531979B2 (en) 2009-09-30 2013-09-10 Sony Corporation Wireless link quality monitoring in network-enabled TVs
JP4911211B2 (ja) 2009-09-30 2012-04-04 沖電気工業株式会社 サーバー、ネットワーク機器、クライアント及びこれらから構成されるネットワークシステム
EP2341680B1 (en) * 2009-12-30 2015-07-01 Nokia Solutions and Networks Oy Method and apparatus for adaptation of a multimedia content
CN102208086B (zh) * 2010-03-31 2014-05-14 北京邮电大学 面向领域的个性化智能推荐系统及实现方法
JP2012104003A (ja) * 2010-11-12 2012-05-31 Hitachi Ltd 調達品質改善システム
US20120209907A1 (en) * 2011-02-14 2012-08-16 Andrews Anton O A Providing contextual content based on another user
US9183259B1 (en) * 2012-01-13 2015-11-10 Google Inc. Selecting content based on social significance
US9455797B2 (en) * 2012-05-07 2016-09-27 Intel Corporation Network system configured for resolving forward error correction during a link training sequence
EP2850582A4 (en) * 2012-05-18 2015-12-16 Aquto Corp ADVERTISED BANDWIDTH PLATFORM
CN102685242B (zh) * 2012-05-22 2014-10-22 南京邮电大学 一种开放网络下服务间关联关系的建立方法
KR101636844B1 (ko) 2012-07-10 2016-07-20 인텔 코포레이션 데이터 모드 중 순방향 에러 정정을 결정하도록 구성된 네트워크 시스템
KR102182322B1 (ko) * 2012-07-31 2020-11-25 삼성전자주식회사 무선 통신 시스템에서 빔포밍을 이용한 통신 방법 및 장치
US20140074923A1 (en) * 2012-09-12 2014-03-13 General Instrument Corporation Selective content disclosure in an ad-hoc network based on social cohesion
TW201419846A (zh) * 2012-11-09 2014-05-16 Inst Information Industry 動態解析度調節方法系統與動態解析度調節方法
US9332291B1 (en) * 2012-12-27 2016-05-03 Google Inc. Enforcing publisher content item block requests
US20140244670A1 (en) * 2013-02-27 2014-08-28 Pavlov Media, Inc. Ontological evaluation and filtering of digital content
US9355223B2 (en) * 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
US20150170072A1 (en) * 2013-07-26 2015-06-18 Ad-Vantage Networks, Inc. Systems and methods for managing network resource requests
JP5933501B2 (ja) 2013-09-18 2016-06-08 シャープ株式会社 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム
US9467453B2 (en) * 2014-02-19 2016-10-11 Qualcomm Incorporated Network access and control for mobile devices
US20150339941A1 (en) * 2014-05-20 2015-11-26 Fan Lu System and method for autonomic social learning
US9344543B2 (en) * 2014-07-15 2016-05-17 Wistron Corporation Utilizing telecoil compatibility on a mobile device for improving frequency range of multimedia playback
US11049029B2 (en) * 2015-02-22 2021-06-29 Google Llc Identifying content appropriate for children algorithmically without human intervention
US10379802B2 (en) * 2015-06-16 2019-08-13 Verizon Patent And Licensing Inc. Dynamic user identification for network content filtering
US10361808B2 (en) * 2015-11-13 2019-07-23 Avago Technologies International Sales Pte. Limited System, device, and method for multi-mode communications
US10986000B2 (en) * 2017-05-07 2021-04-20 Qualcomm Incorporated Enabling new radio cellular quality of service for non-internet protocol data sessions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050071757A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Providing scalable, alternative component-level views
US20070161382A1 (en) * 2006-01-09 2007-07-12 Melinger Daniel J System and method including asynchronous location-based messaging
JP2010055391A (ja) * 2008-08-28 2010-03-11 Fujifilm Corp 商品分析装置、商品提案装置、商品分析方法及びプログラム
US20140029615A1 (en) * 2012-07-26 2014-01-30 Christopher Baldwin Network-based content filtering utilizing user-specified parameters

Also Published As

Publication number Publication date
EP3338235A1 (en) 2018-06-27
US20190327157A1 (en) 2019-10-24
CN108112282A (zh) 2018-06-01
US20170054614A1 (en) 2017-02-23
JP6507263B2 (ja) 2019-04-24
US10361936B2 (en) 2019-07-23
JP2018522314A (ja) 2018-08-09
WO2017030650A1 (en) 2017-02-23
US11218390B2 (en) 2022-01-04
CN108112282B (zh) 2021-06-29
KR20170133465A (ko) 2017-12-05

Similar Documents

Publication Publication Date Title
US20210360079A1 (en) Unified end user notification platform
US10326715B2 (en) System and method for updating information in an instant messaging application
US10104164B2 (en) Aggregating plug-in requests for improved client performance
US11218390B2 (en) Filtering content based on user mobile network and data-plan
CN108432200B (zh) 用于保护和控制对私密个人信息的访问的方法
US9537925B2 (en) Browser notifications
KR20150103179A (ko) 소식 컨텐츠의 재-순위화
US9900837B2 (en) Multi-channel communications for sending push notifications to mobile devices
EP2910028B1 (en) Filtering a stream of content
KR20150103180A (ko) 소셜 커버 피드 인터페이스
US11290551B1 (en) Method and system for implementing circle of trust in a social network
US20160239533A1 (en) Identity workflow that utilizes multiple storage engines to support various lifecycles
WO2014176896A1 (en) System and method for updating information in an instant messaging application
US11269845B1 (en) Techniques to configure media packages
US9256343B1 (en) Dynamically modifying an electronic article based on commentary
US9906485B1 (en) Apparatus and method for coordinating live computer network events
US10579714B1 (en) Dynamic page classifier for ranking content
US10645191B1 (en) User controlled composition of content
US20210377206A1 (en) End-to-end email tag prediction
US20160315885A1 (en) Activity beacon
US20170171688A1 (en) Mobile Phone Change Method and Electronic Device
US20160191449A1 (en) Random content messaging system and method

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