KR20160002789A - 읽기 속도에 기반한 정보 전송 - Google Patents

읽기 속도에 기반한 정보 전송 Download PDF

Info

Publication number
KR20160002789A
KR20160002789A KR1020157030052A KR20157030052A KR20160002789A KR 20160002789 A KR20160002789 A KR 20160002789A KR 1020157030052 A KR1020157030052 A KR 1020157030052A KR 20157030052 A KR20157030052 A KR 20157030052A KR 20160002789 A KR20160002789 A KR 20160002789A
Authority
KR
South Korea
Prior art keywords
information
client device
user identifier
past
amount
Prior art date
Application number
KR1020157030052A
Other languages
English (en)
Other versions
KR101779791B1 (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 KR20160002789A publication Critical patent/KR20160002789A/ko
Application granted granted Critical
Publication of KR101779791B1 publication Critical patent/KR101779791B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • H04L67/327
    • G06F17/30867
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • H04L67/22
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

읽기 속도에 기반하여 정보를 전송하는 것이 개시되며, 상기 전송은: 클라이언트 디바이스로부터 정보 획득 요청을 수신하는 단계로서, 정보 획득 요청은 사용자 식별자를 포함하는 상기 수신 단계; 정보 획득 요청에 포함된 사용자 식별자를 결정하는 단계; 저장된 과거 기록들로부터 사용자 식별자에 대응하는 하나 이상의 과거 정보 전송 시간들과 하나 이상의 과거 전송 정보량들을 결정하는 단계; 사용자 식별자에 대응하는 하나 이상의 과거 정보 전송 시간들과 하나 이상의 과거 전송 정보량들에 적어도 부분적으로 기반하여, 사용자 식별자에 대응하는 읽기 속도를 결정하는 단계; 사용자 식별자에 대응하는 읽기 속도에 적어도 부분적으로 기반하여, 클라이언트 디바이스로 전송될 요청 정보량을 결정하는 단계; 및 요청 정보량을 클라이언트 디바이스로 전송하는 단계를 포함한다.

Description

읽기 속도에 기반한 정보 전송{TRANSMITTING INFORMATION BASED ON READING SPEED}
본 출원은 모든 목적들을 위해 여기에 참조로 포함되는, 2013년 5월 16일에 출원된, 발명의 명칭이 "A METHOD AND DEVICE FOR TRANSMITTING INFORMATION"인 중화인민공화국 특허 출원 번호 201310181926.0을 우선권으로 주장한다.
본 출원은 컴퓨터 기술의 분야에 관한 것이다. 특히, 이는 정보를 전송하는 기술들에 관한 것이다.
현재, 무선 네트워크들과 이동 단말들의 끊임없는 발전으로, 사용자들은 어떠한 시간에서든 어떠한 장소에서든 서버들로부터 그들이 필요한 정보를 획득할 수 있다.
현재, 서버로부터 클라이언트 디바이스로 정보를 전송하는 일반적인 기술은 다음과 같다: 클라이언트 디바이스가 사용자 또는 컴퓨터 프로그램으로부터 정보 획득 명령을 수신하면, 클라이언트 디바이스는 정보 획득 요청을 서버로 전송한다. 서버는 클라이언트 디바이스가 요청한 정보를 결정하고, 클라이언트 디바이스가 요청한 고정량(fixed quantity)의 정보를 클라이언트 디바이스로 다시 전송한다. 클라이언트 디바이스가 다른 정보 획득 명령(예를 들면, 다음 페이지 명령)을 수신하면, 클라이언트 디바이스는 다른 정보 획득 요청을 서버로 전송하고, 서버는 클라이언트 디바이스가 요청한 다른 고정량의 정보를 클라이언트 디바이스로 다시 전송한다.
예를 들어, 고정량이 10 조각들의 정보이고, 서비스 단이 클라이언트 디바이스가 100 조각들의 정보를 요청했다고 결정한다고 가정하자. 이러한 예시적인 시나리오에서, 서비스 단은 이들 100 조각들의 정보 중 처음 10 조각들을 디스플레이를 위해 클라이언트 디바이스로 다시 전송한다. 도 1은 클라이언트 디바이스의 디스플레이의 예를 도시한다. 디스플레이는 서비스 단에 의해 되돌려 보내진 요청 정보의 처음 10 조각들 중 7 조각들을 도시한다. 정보의 각 조각은 "Row"라는 라벨 및 "4" 내지 "10"의 대응 숫자와 연관된다. 이들 10 조각들의 정보를 훑어본(browsing) 후, 클라이언트 디바이스를 사용하는 사용자는 다음 정보를 훑어보길 원할 수 있다. 사용자는 이후 다음 페이지 명령을 행하기 위해 도 1의 예에서 도시된 "Load More" 버튼을 선택할 수 있다. 다른 예에서, 사용자는 정보의 마지막 조각(도 1에 도시된 "Row 10")까지 스크린을 밀어올리는 것에 의해 다음 페이지 명령을 행할 수 있다.
클라이언트 디바이스가 다음 페이지 명령을 수신한 후에, 클라이언트 디바이스는 정보 획득 요청을 서버로 전송한다. 이에 응답하여, 서버는 앞서 언급된 100 조각들의 정보로부터 11번째 내지 20번째 조각들의 정보를 디스플레이를 위해 클라이언트 디바이스로 다시 전송한다.
그러나, 실질적인 애플리케이션에서, 각각의 읽는 사람들의 읽기 속도는 다를 것이다. 이와 같이, 각 사용자에게 고정량의 정보를 전송하는 것은 각 사용자의 개별적인 필요들을 만족시키는데 실패할 수 있다. 또한, 매우 빨리 읽는 사용자들의 경우에, 이러한 사용자들은 서버에 의해 다시 전송된 고정량의 정보를 훑어보기를 매번 빠르게 끝낼 것이고 다른 고정량의 정보를 훑어보고자 요청할 것이다. 만일, 정보 훑어보기의 피크 타임(peak time)동안, 그들의 클라이언트 디바이스들에 부가적인 정보를 요청하는 빨리 읽는 사용자들(fast-reading users)이 상대적으로 많다면, 서버에는 요청들이 쇄도할 것이다. 대량의 요청들은 서버를 악화시킬 수 있다.
본 발명은 프로세스; 장치; 시스템; 물질의 조성물; 컴퓨터 판독가능한 저장 매체에 내장된 컴퓨터 프로그램 제품; 및/또는 프로세서에 결합된 메모리 상에 저장된 및/또는 프로세서에 결합된 메모리에 의해 제공된 지시들을 수행하도록 구성된 프로세서와 같은 프로세서를 포함하는, 다양한 방식들로 구현될 수 있다. 본 명세서에서, 이러한 구현들, 또는 발명이 가질 수 있는 임의의 다른 형태가 기술들로 참조될 수 있다. 일반적으로, 개시된 프로세스들의 단계들의 순서는 발명의 범위 안에서 변경될 수 있다. 다르게 서술되지 않는 한, 작업을 실행하도록 구성되는 것으로 설명된 프로세서 또는 메모리와 같은 구성성분은 주어진 시간에 작업을 실행하도록 일시적으로 구성되는 일반적인 구성성분, 또는 작업을 실행하도록 제조되는 특정 구성성분으로 구현될 수 있다. 여기서 사용되는, '프로세서(processor)'라는 용어는 하나 이상의 디바이스들, 회로들, 및/또는 컴퓨터 프로그램 지시들과 같은 데이터를 처리하도록 구성된 프로세싱 코어들(processing cores)을 나타낸다.
발명의 하나 이상의 실시예들의 세부사항들이 발명의 원리들을 예시하는 첨부 도면들을 따라 이하에서 제공된다. 발명은 이러한 실시예들과 함께 설명되나, 발명은 어떠한 실시예로도 제한되지 않는다. 발명의 범위는 청구항들에 의해서만 제한되며, 발명은 다양한 대안들, 변경들 및 동등물들을 포함한다. 발명의 완전한 이해를 제공하기 위하여 여러가지 특정의 세부사항들이 다음 설명에서 제시된다. 이러한 세부사항들은 예시의 목적으로 제공되며, 발명은 이러한 특정의 상세한 설명들의 일부 또는 전부 없이도 청구항들에 따라 실행될 수 있다. 명확성의 목적을 위해, 발명과 관련된 기술 분야들에 알려진 기술적 재료는 본 발명이 불필요하게 모호해지지 않도록 상세하게 설명되지 않았다.
읽기 속도에 기반하여 정보를 전송하는 실시예들이 여기서 설명된다. 일부 실시예들에서, 정보 획득 요청이 클라이언트 디바이스로부터 수신된다. 일부 실시예들에서, 정보 획득 요청에 포함된 사용자 식별자가 결정된다. 일부 실시예들에서, 사용자 식별자에 대응하는 하나 이상의 과거(historical) 정보 전송 시간들과 하나 이상의 과거 전송 정보량들이, 저장된 과거 기록들로부터 결정된다. 사용자 식별자에 대응하는 읽기 속도가 사용자 식별자에 대응하는 하나 이상의 과거 정보 전송 시간들과 하나 이상의 과거 전송 정보량들에 적어도 부분적으로 기반하여, 결정된다. 클라이언트 디바이스로 전송될 요청 정보량이 사용자 식별자에 대응하는 읽기 속도에 적어도 부분적으로 기반하여, 결정된다. 예를 들어, 읽기 속도가 빠를수록, 요청 정보량이 크게 결정된다. 요청 정보량은 클라이언트 디바이스로 전송된다.
서버는 더 적은 정보 획득 요청들을 수신하고 처리할 수 있으며, 이는 서버와 네트워크 상의 전체적인 압력을 감소시킬 수 있다.
본 발명의 다양한 실시예들이 다음의 상세한 설명과 첨부 도면들에서 개시된다.
도 1은 클라이언트 디바이스의 디스플레이를 예를 도시한 도면.
도 2는 서버로부터 클라이언트 디바이스로 정보를 전송하는 시스템의 실시예를 도시하는 도면.
도 3은 서버로부터 클라이언트 디바이스로 정보를 전송하는 프로세스의 실시예를 도시하는 흐름도.
도 4는 서버로부터 클라이언트 디바이스로 정보를 전송하는 프로세스의 실시예를 도시하는 흐름도.
도 5는 서버로부터 클라이언트 디바이스로 정보를 전송하는 프로세스의 실시예를 도시하는 흐름도.
도 6은 클라이언트 디바이스에 의해 정보를 요청하는 프로세스의 실시예를 도시하는 흐름도.
도 7은 서버를 구현하는 서버의 실시예를 도시하는 도면.
도 8은 서버와 연관된 애플리케이션을 수행하는 클라이언트 디바이스의 실시예를 도시하는 도면.
도 9는 읽기 속도에 기반하여 정보를 전송하는 서비스를 구현하도록 프로그램된 컴퓨터 시스템의 실시예를 도시하는 기능도.
도 2는 서버로부터 클라이언트 디바이스로 정보를 전송하는 시스템의 실시예를 도시하는 도면이다. 예에서, 시스템(200)은 클라이언트 디바이스(202), 네트워크(203), 서버(204), 및 데이터베이스(205)를 포함한다. 네트워크(203)는 고속 데이터 네트워크들 및/또는 텔레커뮤니케이션 네트워크들을 포함한다. 데이터베이스(205)는 하나 이상의 데이터베이스들에 의해 구현될 수 있다. 클라이언트 디바이스(202)가 도면에서는 스마트폰으로 도시되었으나, 클라이언트 디바이스(202)의 다른 예들은 랩탑 컴퓨터, 데스크탑 컴퓨터, 태블릿 디바이스, 이동형 디바이스 및/또는 임의의 다른 타입의 컴퓨팅 디바이스를 포함한다.
서버(204)는 클라이언트 디바이스로부터 수신된 정보 획득 요청에 응답하여, 요청 정보량을 클라이언트 디바이스(202)와 같은 클라이언트 디바이스로 전송하는 서비스를 구현하도록 구성된다. 서비스로부터 획득될 수 있는 정보의 예시적인 타입들은 포럼들, 뉴스, 리뷰들, 마이크로블로그들, 블로그들, 및 메시지 보드들을 포함한다. 다양한 실시예들에서, 서버(204)는 요청과 연관된 사용자 식별자에 대응하는 읽기 속도에 적어도 부분적으로 기반하여, 클라이언트 디바이스(202)로 전송하기 위한 요청 정보량을 결정하도록 구성된다. 일부 실시예들에서, 사용자 식별자에 대응하는 읽기 속도는 데이터베이스(205)에 저장된 과거 데이터에 적어도 부분적으로 기반하여, 결정된다. 데이터베이스(205)는 서버(204)에 의해 액세스가능하다. 예를 들어, 데이터베이스(205)는 클라이언트 디바이스(202)를 사용한 사용자에 대응하는 사용자 식별자에 의해 요청된 정보를 서버(204)가 전송한 과거 시간들(즉, 과거 정보 전송 시간들)과, 이러한 시간들에서 전송된 대응하는 요청 정보량들(즉, 과거 전송 정보량들)을 저장하도록 구성된다.
클라이언트 디바이스(202)는 정보 획득 요청들을 서버(204)에 의해 구현된 서비스로 전송하도록 구성된다. 일부 실시예들에서, 클라이언트 디바이스(202)는 서버로의 액세스를 제공하는 소프트웨어 애플리케이션을 수행하도록 구성된다. 일부 실시예들에서, 클라이언트 디바이스(202)는 (예를 들면, 애플리케이션에서의 사용자 선택을 통한) 정보 획득 명령의 수신에 응답하여 정보 획득 요청을 서버로 전송하도록 구성된다. 예를 들어, 서버로 전송된 정보 획득 요청이 요청 정보량을 포함하지 않는 경우에, 서버(204)는 아래에 설명된 바와 같이 이러한 양을 결정하도록 구성된다.
일부 실시예들에서, 클라이언트 디바이스(202)는 스스로 서버(204)로부터 요청될 요청 정보량을 결정하고, 이러한 양을 서버(204)로 전송하기 위한 정보 획득 요청에 포함하도록 구성된다. 일부 실시예들에서, 클라이언트 디바이스(202)는, 클라이언트 디바이스(202)를 사용한 사용자에 대응하는 사용자 식별자에 의해 요청된 정보를 클라이언트 디바이스(202)가 수신한 과거 시간들(즉, 과거 정보 수신 시간들)과, 이러한 시간들에서 수신된 대응하는 요청 정보량들(즉, 과거 수신 정보량들)과 같은 과거 데이터를 저장하도록 구성된다. 일부 실시예들에서, 클라이언트 디바이스(202)는, 클라이언트 디바이스(202)를 사용한 사용자에 대응하는 사용자 식별자에 대응하는 읽기 속도에 적어도 부분적으로 기반하여, 서버(204)로부터 획득하기 위한 요청 정보량을 결정하도록 구성된다. 일부 실시예들에서, 사용자 식별자에 대응하는 읽기 속도는 클라이언트 디바이스(202)에 의해 저장된 과거 데이터에 적어도 부분적으로 기반하여, 결정된다. 일부 실시예들에서, 클라이언트 디바이스(202)는, 클라이언트 디바이스(202)에 의해 결정된 요청 정보량을 포함하는 정보 획득 요청을 서버(204)로 전송하도록 구성된다. 클라이언트 디바이스(202)에 의해 결정된 요청 정보량을 포함하는 정보 획득 요청 수신에 응답하여, 서버(204)는 요청 정보량을 클라이언트 디바이스(202)로 다시 전송하도록 구성된다.
이하에서 더욱 상세히 설명될 바와 같이, 시스템(300)과 같은 시스템은 그 사용자의 읽기 속도에 적어도 부분적으로 기반하여, 정보에 대한 각 요청마다 사용자에게 전송하기 위한 요청 정보량을 조정하며, 따라서 사용자는 수신된 정보의 소비를 너무 빠르게 완료하지 않거나, 정보량을 너무 과다하게 수신하는 것에 의해 시스템 리소스들을 낭비하지 않을 것이다. 사용자에게 전송하기 위한 요청 정보량이 서버(204)와 같은 서버, 또는 클라이언트 디바이스(202)와 같은 사용자의 클라이언트 디바이스에 의해 결정될 수 있다.
도 3은 서버로부터 클라이언트 디바이스로 정보를 전송하는 프로세스의 실시예를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(300)는 도 2의 시스템(200)에서 구현된다. 특히, 일부 실시예들에서, 프로세스(300)는 도 2의 시스템(200)의 서버(204)에서 구현된다.
프로세스(300)는 클라이언트 디바이스에서 (예를 들면, 사용자 또는 컴퓨터 프로그램으로부터) 정보 획득 명령이 수신되는 매 시간 실행될 수 있다. 프로세스(300)는 클라이언트 디바이스로 전송될 요청 정보량을 결정하도록 구현될 수 있다.
단계(302)에서, 정보 획득 요청이 클라이언트 디바이스로부터 수신되는데, 정보 획득 요청은 사용자 식별자를 포함한다.
다양한 실시예들에서, 사용자가 그가 사용중인 클라이언트 디바이스를 통해 서버로부터 정보를 획득하길 원할 때, 사용자는 서버에 의해 구현된 서비스와 연관된 정보 획득 명령을 선택하기 위해 클라이언트 디바이스의 인터페이스(예를 들면, 키패드, 터치스크린)를 통해 입력 또는 선택할 수 있다. 예를 들어, 서버와 연관된 소프트웨어 애플리케이션이 클라이언트 디바이스에서 수행될 수 있다. 서버로부터 획득될 수 있는 정보의 예시적인 타입들은 포럼들, 뉴스, 리뷰들, 마이크로블로그들, 블로그들, 및 메시지 보드들을 포함한다. 요청 정보는 텍스트 및 이미지들, 오디오, 및/또는 비디오 파일들과 같은 멀티미디어 데이터를 포함할 수 있다. 클라이언트 디바이스가 사용자로부터 정보 획득 명령을 수신한 후, 클라이언트 디바이스는 대응하는 정보를 획득하기 위해 정보 획득 요청을 서버로 전송한다. 정보 획득 요청(예를 들면, HTTP GET 요청)은 어떤 정보가 요청되는지를 식별하는 데이터를 포함할 수 있다. 예를 들어, 어떤 정보가 요청되는지를 식별하는 데이터는, 메시지 보드의 특정 페이지의 특정 부분을 지시하는데 사용된 URL과 같은, 메시지 보드의 특정 페이지의 특정 부분을 식별할 수 있다.
다양한 실시예들에서, 정보 획득 요청은 또한 현재 클라이언트 디바이스 및/또는 서비스와 연관된 애플리케이션으로 로그인된 사용자의 사용자 식별자를 포함할 수 있다. 사용자 식별자는 영문숫자열을 포함할 수 있다.
클라이언트 디바이스로부터 수신된 정보 획득 요청에 응답하여, 서버는 요청 정보로부터 몇 조각들의 정보를 다시 보낼 것이며, 이는 이후 클라이언트 디바이스에 디스플레이된다. 사용자가 클라이언트 디바이스의 이러한 몇 조각들의 정보를 브라우징하는 것을 마친 후에, 사용자는 클라이언트 디바이스의 인터페이스를 통해 다른 정보 획득 명령(예를 들면, 다음 페이지 명령)을 선택할 수 있다. 클라이언트 디바이스가 다음 페이지 명령을 수신한 후에, 클라이언트 디바이스는 요청 정보로부터 부가적인 조각들의 정보를 획득하기 위해 다른 정보 획득 요청을 서버로 전송할 수 있다. 이러한 후속 정보 획득 요청은 또한 어떤 정보가 요청되는지를 식별하는 데이터(예를 들면, 메시지 보드의 후속 페이지와 연관된 URL)와, 현재 클라이언트 디바이스 및/또는 서버와 연관된 애플리케이션에 로그인된 사용자의 사용자 식별자를 포함할 수 있다.
단계(304)에서, 정보 획득 요청에 포함된 사용자 식별자가 결정된다.
일부 실시예들에서, 서버는 시간에 따라 다양한 사용자 식별들에 대응하는 정보 획득 요청들을 처리하고, 서비스를 구현하는 서버는 요청 정보가 각 요청 사용자 식별자에게 다시 전송된 시간들과 각 요청 사용자 식별자에게 다시 전송된 대응하는 요청 정보량들을 과거 기록들에 저장한다. 특히, 예를 들어, 정보 획득 요청에 응답하여 서버가 정보를 클라이언트 디바이스로 전송한 각 시간 다음에, 서버는 그러한 정보 획득 요청에 포함된 사용자 식별자에 대응하는 데이터를 과거 기록들에 저장할 수 있다. 저장된 데이터는 요청이 수신되었던 클라이언트 디바이스로 요청 정보가 전송된 시간(즉, 정보 전송 시간)과, 그 정보 전송 시간에서 전송되었던 정보량(즉, 전송 정보량)을 포함한다.
단계(306)에서, 저장된 과거 기록들로부터, 사용자 식별자에 대응하는 하나 이상의 과거 정보 전송 시간들 및 하나 이상의 과거 전송 정보량들이 결정된다.
정보 획득 요청을 수신한 후에, 서버는 정보 획득 요청에 포함된 사용자 식별자를 결정하고, 저장된 과거 기록들에서 그 사용자 식별자에 대응하는 과거 정보 전송 시간들과 과거 전송 정보량들을 검색할 수 있다.
단계(308)에서, 사용자 식별자에 대응하는 읽기 속도가 하나 이상의 과거 정보 전송 시간들과 하나 이상의 과거 전송 정보량들에 적어도 부분적으로 기반하여, 결정된다.
검색된 과거 정보 전송 시간들과 과거 전송 정보량들은 사용자 식별자에 대응하는 읽기 속도를 결정하는데 사용된다.
일부 실시예들에서, 서버는 사용자 식별자에 대응하는 읽기 속도를 결정한다. 일부 실시예들에서, 서버는 (예를 들면, 서버에 의해 유지되는 현재 시간으로부터의) 가장 최근의 정보 전송 시간을 T1으로, 모든 검색된 과거 정보 전송 시간들 중에서 가장 이른 정보 전송 시간을 T2로 식별할 수 있다. 또한, 서버는 가장 이른 정보 전송 시간, T2와, 가장 최근의 정보 전송 시간, T1의 사이의 시간 간격을 차이(T1 - T2)로 결정할 수 있다. 서버는 이후 모든 검색된 과거 전송 정보량들의 합, m을 결정할 수 있다. 예를 들어, m의 값은 사용자 식별자를 위해 전송되었던 정보의 총 조각들의 수 또는 총량을 나타낼 수 있다. 마지막으로, 서버는 모든 전송 정보량들의 합, m의, 가장 이른 정보 전송 시간과 가장 최근의 정보 전송 시간 사이의 시간 간격, T1 - T2에 대한 비율,
Figure pct00001
을 사용자 식별자에 대응하는 읽기 속도로 결정할 수 있다.
사용자 읽기 속도는 매우 시간에 민감하다고(time-sensitive) 고려될 수 있다. 따라서, 읽기 속도 결정의 정확성을 개선시키기 위하여, 일부 실시예들에서, 가장 최근의 미리 정해진 지정 시간 길이 내의 과거 정보 전송 시간들과 과거 전송 정보량들만이 사용자 식별자에 대응하는 읽기 속도를 결정하는데 사용된다. 지정 시간 길이는 시스템 관리자에 의해 미리 정해질 수 있다. 예를 들어, 일부 실시예들에서, 서버는 과거 기록들의 가장 최근의 미리 정해진 지정 시간 길이 내에 속하는 사용자 식별자에 대응하는 과거 정보 전송 시간들과, 가장 최근의 미리 정해진 지정 시간 길이 내에 속하는 사용자 식별자에 대응하는 모든 정보 전송 시간들에 대응하는 전송 정보량들 만을 검색할 수 있다. 이와 같이, 가장 최근의 미리 정해진 지정 시간 길이가 사용될 때, 사용자 식별자에 대응하는 읽기 속도는 지정 시간 길이에 대한 가장 최근의 미리 정해진 지정 시간 길이 내에 속하는 모든 정보 전송 시간들에 대응하는 검색된 과거 전송 정보량들의 합의 비율로 결정될 수 있다.
다음은 가장 최근의 미리 정해진 지정 시간 길이를 사용하여 사용자 식별자에 대응하는 읽기 속도를 결정하는 예이다: 지정 시간 길이가 1분이라고 가정하면, 이 경우 서버는 (예를 들면, 서버에 의해 유지되는) 현재의 시간으로부터 가장 최근의 1분 내의 사용자 식별자에 대응하는 과거 정보 전송 시간들을 과거 기록들에서 검색한다. 가장 최근의 1분 내의 검색된 정보 전송 시간들이 T1T2라고 가정한다. 서버는 이후 T1T2에 각각 대응하는 사용자 식별자에 대응하는 과거 전송 정보량들을 검색한다. 현재의 시간이 오후 12:00:00라고 가정한다. 사용자는 미리 오후 11:58:59, 오후 11:59:50, 및 오후 11:59:55에 서버로부터 데이터를 요청하였다. 지정 시간 길이가 1분이라면, 본 예에서, T1은 오후 11:59:50이고 T2는 오후 11:59:55이다. T1에 대응하는 검색된 과거 전송 정보량이 M1이고, T2에 대응하는 과거 전송 정보량이 M2라고 가정한다. 따라서, 서버는 M1M2의 합: M1 + M2를 결정한다. 마지막으로, 서버는 사용자 식별자에 대응하는 읽기 속도로서, 지정 시간 길이, 1분에 대한 M1 + M2의 비율을 결정한다. 다른 방식으로, 본 예에서 사용자 식별자에 대응하는 결정된 읽기 속도는 분당 M1 + M2 조각들의 정보이다.
부가적으로, 서버가 과거 기록들에서 가장 최근의 미리 정해진 지정 시간 길이 내의 사용자 식별자에 대응하는 어떠한 과거 정보 전송 시간들도 찾는데 실패하면(즉, 서버가 가장 최근의 미리 정해진 지정 시간 길이 내의 사용자 식별자에 대응하는 정보를 사용자에게 전송하지 않았다면), 이후 서버는 미리 정해진 디폴트(default) 읽기 속도를 사용자 식별자에 대응하는 읽기 속도로 결정할 것이다. 디폴트 읽기 속도는 시스템 관리자에 의해 미리 정해질 수 있다.
단계(310)에서, 클라이언트 디바이스로 전송될 요청 정보량이 사용자 식별자에 대응하는 읽기 속도에 적어도 부분적으로 기반하여, 결정된다.
다양한 실시예들에서, 클라이언트 디바이스로 전송될 요청 정보량은 사용자 식별자에 대응하는 결정된 읽기 속도에 적어도 부분적으로 기반하여, 결정된다. 다양한 실시예들에서, 읽기 속도가 클수록 클라이언트 디바이스로 전송된 요청 정보량도 커진다. 요청 정보량은 정보 획득 요청에 응답하여 클라이언트 디바이스로 전송될 정보 획득 요청에 의해 식별된 정보의 타입의 다수의 조각들 또는 다수의 유닛들을 말할 수 있다. 예를 들어, 메시지 보드로부터의 정보의 조각은 메시지를 포함할 수 있으며, 블로그로부터의 정보의 조각은 블로그 포스트를 포함할 수 있다.
일부 실시예들에서, 서버에 대하여 함수 관계, 예를 들면, N=F(v)가 미리 정해질 수 있는데, 여기서 N은 사용자 식별자에 대응하여 되돌아가게 될 요청 정보량이고, v는 사용자 식별자에 대응하는 읽기 속도이며, F(v)는 사용자 식별자에 대응하는 읽기 속도와 사용자 식별자에 대응하여 되돌아가게 될 정보량 사이의 함수 관계이다. 다양한 실시예들에서, F(v)는 임의의(예를 들면, 단조적(monotonically)) 증가 함수가 되도록 선택될 수 있으며, 따라서 v가 커질수록 N도 커질 것이다. 반대로, v가 작아질수록 N도 작아질 것이다. F(v)는 연속 함수 또는 이산 함수가 되도록 선택될 수 있다. 예를 들어, N = F(v) = 2v 이다.
단계(312)에서, 전송될 요청 정보량이 클라이언트 디바이스로 전송된다. 클라이언트 디바이스로 전송될 적절한 양이 일단 결정되면, 정보 획득 요청에서 요청된 정보의 적절한 양이 결정되고 클라이언트 디바이스로 전송된다. 예를 들어, 결정된 양이 15 조각들의 정보이고 요청 정보가 메시지 보드의 특정 페이지 내의 메시지들을 포함한다면, 메시지 보드의 그 페이지로부터 15개의 메시지들(예를 들면, 클라이언트 디바이스로 이전에 전송된 적이 없었던)이 클라이언트 디바이스에 전송되어 그에 의해 디스플레이될 수 있다.
일부 실시예들에서, 클라이언트 디바이스로부터 수신된 각각의 후속 정보 획득 요청에 응답하여, 이전에 클라이언트 디바이스로 전송된 적이 없는 요청 정보로부터의 정보만이 클라이언트 디바이스로 전송되도록 결정된다. 예를 들어, 클라이언트 디바이스로부터 수신된 사용자 식별자에 대응하는 제 1 정보 획득 요청에 응답하여, 단계(310)에서 결정된 적절한 양이 200 조각들의 정보의 요청 세트 중에서 12 조각들의 정보라면, 요청 정보의 1 부터 12까지의 조각들이 클라이언트 디바이스로 전송된다. 이후, 동일한 클라이언트 디바이스로부터 수신된 동일한 사용자 식별자에 대응하는 제 2 정보 획득 요청에 응답하여, 단계(310)에서 결정된 적절한 양이 이제 200 조각들의 정보의 요청 세트 중에서 14 조각들의 정보라면, 요청 정보의 13 부터 27까지의 조각들이 클라이언트 디바이스로 전송된다.
상기에서 프로세스(300)는, 각 사용자에게 고정량의 정보를 다시 전송하지 않으나, 사용자의 읽기 속도에 적어도 부분적으로 기반하여, 결정된 정보량을 사용자에게 보내는 서버를 설명한다. 이와 같이, 프로세스(300)는 각 사용자의 개별적인 필요들을 충족시킬 수 있다. 서버가 적절한 양의 요청 정보를 클라이언트 디바이스로 전송하기 때문에, 각 사용자는 아마도 정보 획득 요청들이 덜 자주 서버로 전송되도록 할 수 있다. 따라서, 서버는 더 적은 정보 획득 요청들을 수신하고 처리할 수 있으며, 이는 서버와 네트워크 상의 전체적인 압력을 감소시킬 수 있다.
도 4는 서버로부터 클라이언트 디바이스로 정보를 전송하는 프로세스의 실시예를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(400)는 도 2의 시스템(200)에서 구현된다. 특히, 일부 실시예들에서, 프로세스(400)는 도 2의 시스템(200)의 서버(204)에서 구현된다.
일부 실시예들에서, 사용자의 읽기 속도에 부가하여, 클라이언트 디바이스가 동작하는 네트워크와 연관된 요인들이 또한 정보 획득 요청에 응답하여 클라이언트 디바이스로 전송하기 위한 요청 정보량에 영향을 미칠 수 있다. 프로세스(400)는 사용자의 읽기 속도에 부가하여 클라이언트 디바이스와 연관된 네트워크 요인들에 기반하여 클라이언트 디바이스로 전송하기 위한 요청 정보량을 결정하는 예시적인 프로세스를 설명한다.
단계(402)에서, 정보 획득 요청이 클라이언트 디바이스로부터 수신되는데, 정보 획득 요청은 사용자 식별자를 포함한다. 단계(402)는 도 3의 프로세스(300)의 단계(302)가 어떻게 구현되는지와 유사한 방식으로 구현될 수 있다.
단계(404)에서, 네트워크 성능 가중치(network performance weight)와 네트워크 액세스 모드 정보 중 적어도 하나가 클라이언트 디바이스로부터 수신된다.
클라이언트 디바이스가 상대적으로 약한 네트워크 환경에 있거나, 또는 클라이언트 디바이스의 네트워크 액세스 모드에 대응하는 정보 전송 속도가 상대적으로 느리다면, 서버는 그가 클라이언트 디바이스로 전송하고자 계획하는 요청 정보의 특성을 조절할 필요가 있을 것이다. 따라서, 일부 실시예들에서, 서버가 클라이언트로 전송하기 위한 정보량을 결정하기 전에, 서버는 또한 클라이언트 디바이스에 의해 보고된 네트워크 성능 가중치, 네트워크 액세스 모드 정보, 또는 둘 다를 수신할 필요가 있다.
클라이언트 디바이스에 의해 보고된 네트워크 성능 가중치는 클라이언트 디바이스가 현재 위치하고 있는 네트워크 환경의 상태를 나타낸다. 더 큰 네트워크 성능 가중치는 클라이언트가 현재 위치하고 있는 네트워크 환경이 더 나음을 나타내며, 이에 대응하여, 더 크게 결정된 요청 정보량이 클라이언트 디바이스로 전송되어야 한다. 반대로, 더 작은 네트워크 성능 가중치는 클라이언트가 현재 위치하고 있는 네트워크 환경이 더 열악함을 나타내며, 이에 대응하여, 더 작게 결정된 요청 정보량이 클라이언트 디바이스로 전송되어야 한다.
일부 실시예들에서, 클라이언트 디바이스는 서버로 전송하기 위한 네트워크 성능 가중치를 결정할 수 있다. 다음은 클라이언트 디바이스가 네트워크 성능 가중치를 결정할 수 있는 예시적인 기술이다: 클라이언트 디바이스는 클라이언트 디바이스가 정보 획득 요청을 서버로 전송하는 각 시간에 대응하는 전송 시간과, 대응하는 요청 정보가 서버로부터 수신된 시간에 대응하는 수신 시간을 기록한다. 클라이언트 디바이스가 네트워크 성능 가중치를 결정할 때, 클라이언트 디바이스는 가장 최근의 기록된 전송 시간을 t1으로, 대응하는 수신 시간을 t2로 결정한다. 클라이언트 디바이스는 수신 시간(t2)으로부터 전송 시간(t1)을 빼는 것에 의해 송신 및 수신 시간들 사이의 시간 간격을 결정한다. 또한, 클라이언트 디바이스는 미리 정해진 유닛 시간(T)을 사용한다. 클라이언트 디바이스는 클라이언트 디바이스가 서버로 보고할 네트워크 성능 값을 나타내는
Figure pct00002
을 결정하기 위하여, 결정된 시간 간격, t2 - t1에 대한 유닛 시간(T)의 비율을 결정한다.
Figure pct00003
로부터 보여질 수 있는 바와 같이, 클라이언트 디바이스에 의해 전송된 정보 획득 요청에 대한 전송 시간과 서버에 의해 되돌려진 정보에 대한 수신 시간 사이의 시간 간격이 더 작을수록 클라이언트 디바이스에 대해 더 높은 대역폭 레이트(bandwidth rate)를 갖는 더 나은 네트워크 환경을 나타낸다.
일부 실시예들에서, 현재 시간(예를 들면, 클라이언트 디바이스에 의해 유지되는)과 가장 최근의 기록된 전송 시간 사이의 시간 간격과, 가장 최근의 기록된 전송 시간과 클라이언트 디바이스에 의해 결정된 대응하는 수신 시간 사이의 시간 간격이 설정된 임계값(예를 들면, 10분)을 초과하면, 클라이언트 디바이스는 서버로 보고하기 위한 네트워크 성능 가중치로서 미리 정해진 디폴트 네트워크 성능 가중치를 사용할 수 있다.
일부 실시예들에서, 클라이언트 디바이스는 현재 사용중인 네트워크 액세스 모드 정보를 결정하고, 네트워크 액세스 모드 정보를 서버로 전송한다. 예를 들어, 클라이언트 디바이스가 안드로이드(AndroidTM) 플랫폼을 구동하였다면, 이후 네트워크 액세스 모드는 플랫폼 특정 API 호출(예를 들면, ConnectivityManager class NetworkInfo 및 getType() method로 형성된 호출)에 의해 결정될 수 있다. 네트워크 액세스 모드의 예들은 2세대(2G) 이동 통신 기술 네트워크들, 3세대(3G) 이동 통신 기술 네트워크들, 롱텀 에볼루션 네트워크들(long-term evolution networks;4G LTE), 및 와이파이(wireless fidelity;Wi-Fi) 네트워크들을 포함한다. 2G 네트워크들, 3G 네트워크들, 롱텀 에볼루션 네트워크들(4G LTE), 및 와이파이(Wi-Fi) 네트워크들의 각각에 대응하는 정보 전송 속도, s가 서버에서 미리 정해질 수 있다. 예를 들어, 네트워크 액세스 모드가 2G 네트워크였다면, 대응하는 정보 전송 속도 s = 0.5이며; 네트워크 액세스 모드가 3G 네트워크였다면, 대응하는 정보 전송 속도 s = 1이고; 네트워크 액세스 모드가 와이파이 네트워크였다면, 대응하는 정보 전송 속도 s = 2이다. 클라이언트 디바이스에 의해 보고된 네트워크 액세스 모드 정보에 대응하는 정보 전송 속도가 더 크다는 것은 클라이언트 디바이스로 다시 전송되어야 하는 정보량이 이에 대응하여 더 커진다는 것과 관련된다. 반대로, 클라이언트에 의해 보고된 네트워크 액세스 모드 정보에 대응하는 정보 전송 속도가 더 낮다는 것은 클라이언트 디바이스로 다시 전송되어야 하는 정보량이 이에 대응하여 더 작아진다는 것과 관련된다.
단계(406)에서, 사용자 식별자에 대응하는 읽기 속도가 결정된다. 일부 실시예들에서, 사용자 식별자에 대응하는 읽기 속도는 도 3의 프로세스(300)의 단계들(304 내지 308)에 적어도 부분적으로 기반하여, 결정된다.
단계(408)에서, 클라이언트 디바이스로 전송될 요청 정보량이 사용자 식별자에 대응하는 읽기 속도, 네트워크 성능 가중치, 및 네트워크 액세스 모드 정보에 적어도 부분적으로 기반하여, 결정된다.
일부 실시예들에서, 클라이언트 디바이스로 전송될 요청 정보량은 정보 획득 요청에 연관된 사용자 식별자에 대응하는 읽기 속도에 부가하여, 네트워크 성능 가중치와, 클라이언트 디바이스로부터 수신된 네트워크 액세스 모드 정보에 대응하는 정보 전송 속도의 함수로 결정될 수 있다. 일부 실시예들에서, 다시 전송될 정보량(N)을 읽기 속도(v), 네트워크 성능 가중치(f), 및 네트워크 액세스 모드 정보(s)로 관계시키는 함수 관계, 예를 들면, N = F(v, f, s)가 서버에서 미리 정해질 수 있다. F(v, f, s)는 연속 함수 또는 이산 함수가 되도록 선택될 수 있다. 예를 들어, N = F(v, f, s) = 0.2*v*f*s이다.
단계(410)에서, 전송될 요청 정보량이 클라이언트 디바이스로 전송된다.
도 5는 서버로부터 클라이언트 디바이스로 정보를 전송하는 프로세스의 실시예를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(500)는 도 2의 시스템(200)에서 구현된다. 특히, 일부 실시예들에서, 프로세스(500)는 도 2의 시스템(200)의 서버(204)에서 구현된다.
일부 실시예들에서, 요청 정보는 예를 들면, 그래픽들, 오디오, 및 비디오와 같은 멀티미디어 데이터를 포함한다. 멀티미디어 데이터를 디스플레이하기 위한 각 클라이언트 디바이스의 능력은 클라이언트 디바이스와 연관되어 사용된 하드웨어에 의존하여 변화할 것이다. 이와 같이, 일부 실시예들에서, 클라이언트 디바이스로 전송될 요청 정보에 포함된 멀티미디어 데이터의 조각의 품질 등급이 클라이언트 디바이스와 연관된 하드웨어 성능 가중치로 적어도 일부 결정된다. 프로세스(500)는 클라이언트 디바이스로 전송될 요청 정보량에 포함되는 멀티미디어 데이터와 연관된 품질 등급을 결정하는 예시적인 프로세스를 설명한다.
단계(502)에서, 정보 획득 요청이 클라이언트 디바이스로부터 수신되는데, 정보 획득 요청은 사용자 식별자를 포함한다. 단계(502)는 도 3의 프로세스(300)의 단계(302)가 어떻게 구현되는지와 유사한 방식으로 구현될 수 있다.
단계(504)에서, 네트워크 성능 가중치와 네트워크 액세스 모드 정보 중 적어도 하나가 클라이언트 디바이스로부터 수신된다. 일부 실시예들에서, 네트워크 성능 가중치는 도 4의 프로세스(400)의 단계(404)에서 설명된 방식과 유사한 방식으로 클라이언트 디바이스에 의해 결정될 수 있다.
단계(506)에서, 클라이언트 디바이스로 전송될 요청 정보량이 결정된다. 일부 실시예들에서, 클라이언트 디바이스로 다시 전송될 요청 정보량은 도 3의 프로세스(300)의 단계들(304 내지 310)에 기반하여 결정될 수 있다. 일부 실시예들에서, 클라이언트 디바이스로 다시 전송될 요청 정보량은 도 4의 프로세스(400)의 단계들(404 내지 408)에 기반하여 결정될 수 있다.
예를 들어, 결정된 양이 15 조각들의 정보일 수 있으며 요청 정보가 메시지 보드의 특정 페이지 내의 메시지들을 포함한다. 이와 같이, 메시지 보드의 특정 페이지로부터 15 개의 메시지들이 클라이언트 디바이스로 전송될 것이다. 메시지 보드의 본 페이지로부터 클라이언트 디바이스로 앞서 전송되었던 메시지들이 없었기 때문에, 페이지와 연관된 100 개의 메시지들 중 1 내지 15 의 메시지들이 클라이언트 디바이스로 전송될 것이다.
단계(508)에서, 하드웨어 정보가 클라이언트 디바이스로부터 수신된다.
일부 실시예들에서, 서버가 요청 정보의 결정된 양을 클라이언트 디바이스로 전송하기 전에, 서버는 또한 클라이언트 디바이스에 의해 보고된 하드웨어 정보를 수신할 필요가 있다.
예로써, 그래픽 데이터인 멀티미디어 데이터를 사용하기 위하여, 더 높은 해상도들을 갖는 그래픽들이 그의 스크린 픽셀 밀도들이 상대적으로 높은 클라이언트 디바이스들에서 디스플레이되기에 더욱 적절할 수 있다. 클라이언트 디바이스로 전송하기 위한 요청 정보에 포함된 그래픽들의 해상도가 클라이언트 디바이스의 스크린 픽셀 밀도에 비해 너무 낮으면, 그래픽들은 클라이언트 디바이스에서 픽셀화되어(pixelated) 나타날 것이며, 이는 사용자 경험에 안좋은 영향을 끼칠 것이다. 반대로, 그의 스크린 픽셀 밀도가 상대적으로 낮은 클라이언트 디바이스는 그의 해상도가 높은 그래픽들을 디스플레이하기에 적절하지 않다. 클라이언트 디바이스로 전송하기 위한 요청 정보에 포함된 그래픽들의 해상도가 너무 높으면, 그래픽들의 고품질 특성이 클라이언트 디바이스의 디스플레이에서 명확하게 보이지 않을 것이며, 요청 정보의 더 큰 크기로 인하여 네트워크 리소스들이 낭비되는 결과를 가져올 것이다.
클라이언트 디바이스에 의해 보고된 하드웨어 정보의 파라미터들의 예들은 클라이언트 CPU 모델 번호, CPU 주파수, 총 메모리, 가용 메모리, 자유 메모리(free memory), 스크린 해상도, 및 스크린 픽셀 밀도를 포함하지만 이로 제한되지 않는다. 예를 들어, 클라이언트 CPU 모델 번호와 CPU 주파수는 proc 파일 시스템 내의 CPUinfo 파일을 파싱(parsing)하는 클라이언트 디바이스에 의해 얻어질 수 있다. 예를 들어, 총 메모리는 proc 파일 시스템 내의 meminfo 파일을 파싱하는 클라이언트 디바이스에 의해 얻어질 수 있다. 예를 들어, 가용 메모리와 자유 메모리는 ActivityMenager.MemoryInfo를 이용하여 API 호출을 형성하는 클라이언트 디바이스에 의해 얻어질 수 있다. 예를 들어, 스크린 해상도는 getWindowManager().GetDefaultDisplay()를 이용하여 API 호출을 형성하는 클라이언트 디바이스에 의해 얻어질 수 있다. 예를 들어, 스크린 밀도는 DisplayMetrics와 "Density"의 특성을 이용하여 API 호출을 형성하는 클라이언트 디바이스에 의해 얻어질 수 있다. 서버가 클라이언트에 의해 보고된 하드웨어 정보를 수신한 후에, 서버는 하드웨어 정보의 수신된 파라미터(들)과, 하드웨어 성능 가중치들을 미리 정하기 위하여 하드웨어 정보의 파라미터들의 미리 정해진 매핑에 적어도 부분적으로 기반하여, 클라이언트 디바이스에 대응하는 하드웨어 성능 가중치를 결정할 수 있다. 예를 들어, 하드웨어 성능 가중치, h = (CPU 주파수)*(가용 메모리의 크기)이다. 하드웨어 성능 가중치가 더 높다는 것은 클라이언트 디바이스의 하드웨어 성능이 더 낫다는 것과 클라이언트 디바이스로 전송될 멀티미디어 데이터에 대한 품질 등급이 더 높아야 한다는 것을 나타낸다. 반대로, 하드웨어 성능 가중치가 더 낮다는 것은 클라이언트 디바이스의 하드웨어 성능이 더 좋지않다는 것과 클라이언트 디바이스로 전송될 멀티미디어 데이터에 대한 품질 등급이 더 낮아야 한다는 것을 나타내다.
부가적으로, 클라이언트 디바이스가 현재 위치하고 있는 네트워크 성능 가중치가 상대적으로 열악하거나, 또는 클라이언트 디바이스에 의해 현재 사용된 네트워크 액세스 모드에 대응하는 정보 전송 속도가 상대적으로 낮다면, 서버는 더 낮은 품질의 멀티미디어 데이터를 클라이언트 디바이스로 다시 전송해야 한다.
단계(510)에서, 클라이언트 디바이스로 전송될 요청 정보량에 포함된 멀티미디어 데이터의 조각의 품질 등급은 하드웨어 정보, 네트워크 성능 가중치, 및 네트워크 액세스 모드 정보에 적어도 부분적으로 기반하여, 결정된다.
일부 실시예들에서, 클라이언트 디바이스로 전송될 요청 정보량이 멀티미디어 데이터의 적어도 한 조각을 포함한다고 결정된다. 요청 정보량이 멀티미디어 데이터의 적어도 한 조각을 포함하는 경우에, 서버는 또한 클라이언트 디바이스로 전송될 요청 정보량에 포함될 멀티미디어 데이터에 대한 특정 품질 등급을 결정하도록 구성된다. 예를 들어, 멀티미디어 데이터와 연관된 품질 등급은 데이터가 클라이언트 디바이스에서 다시 랜더링/디스플레이/재생될 수 있는 크기와 품질에 연관된다. 더 높은 품질 등급과 연관된 멀티미디어 데이터의 버전은 더 낮은 품질 등급과 연관된 동일한 멀티미디어 데이터의 버전보다 클라이언트 디바이스에서 더 높은 품질의 것이 되도록 랜더링될 수 있다. 그러나, 더 높은 품질 등급과 연관된 멀티미디어 데이터의 버전은 더 낮은 품질 등급과 연관된 동일한 멀티미디어 데이터의 버전보다 더 큰 파일 크기를 갖는다. 품질 등급의 타입은 멀티미디어 데이터의 타입에 의존할 수 있다. 예를 들어, 그래픽들/이미지들에 대하여, 품질 등급은 해상도와 관련될 수 있으며; 오디오에 대하여는, 품질 등급은 비트레이트(bitrate)와 관련될 수 있고; 비디오에 대하여는, 품질 등급은 선명도(sharpness) 또는 비트레이트와 관련될 수 있다.
서버는 클라이언트 디바이스에 의해 보고된, 수신된 하드웨어 정보, 네트워크 성능 가중치, 및 네트워크 액세스 모드 정보에 적어도 부분적으로 기반하여, 클라이언트 디바이스로 전송될 요청 정보에 포함된 멀티미디어 데이터의 적어도 한 조각과 연관된 품질 등급을 결정할 수 있다. 서버는 이후 결정된 품질 등급에 대응하는 멀티미디어 데이터의 버전을 포함하는 요청 정보의 결정된 양을 클라이언트 디바이스로 다시 전송할 것이다.
일부 실시예들에서, 클라이언트 디바이스에 의해 보고되는 하드웨어 정보에 기반하여 서버에 의해 결정되는 하드웨어 성능 가중치가 더 높을수록, 클라이언트 디바이스로 전송될 요청 정보에 포함될 멀티미디어 데이터에 대한 품질 등급이 더 높아질 것이다. 반대로, 결정된 하드웨어 성능 가중치가 더 낮을수록, 클라이언트 디바이스로 전송될 요청 정보에 포함될 멀티미디어 데이터에 대한 품질 등급이 더 낮아질 것이다.
일부 실시예들에서, 클라이언트 디바이스에 의해 보고되는 네트워크 성능 가중치가 높을수록, 서버로부터 다시 전송된 요청 정보에 포함될 멀티미디어 데이터에 대한 품질 등급이 더 높아질 것이다.
일부 실시예들에서, 클라이언트에 의해 보고되는 네트워크 액세스 모드 정보에 대응하는 전송 속도가 더 클수록, 클라이언트 디바이스로 전송될 요청 정보에 포함될 멀티미디어 데이터에 대한 품질 등급이 더 높아질 것이다.
일부 실시예들에서, 품질 등급(P)을 하드웨어 성능 가중치(h), 네트워크 성능 가중치(f), 및 네트워크 액세스 모드 정보(s)와 관련시키는 함수 관계, 예를 들면, P = G(h, f, s)가 서버에서 미리 정해질 수 있다. G(h, f, s)는 그가 h, fs 와 관련된 것과 같이 증가 함수가 되도록 선택될 수 있다. G(h, f, s)는 연속 함수 또는 이산 함수가 되도록 선택될 수 있다. 일부 실시예들에서, 함수 G(h, f, s)P의 다양한 미리 결정된 값들 중 하나를 산출할 수 있다. P = G(h, f, s) = 20*h*f*s이다.
일부 실시예들에서, 클라이언트 디바이스로 전송하기 위한 요청 정보에 포함될 멀티미디어 데이터의 품질 등급이 결정된 후에, 결정된 품질 등급에 연관된 멀티미디어 데이터의 버전이 얻어진다. 다음은 결정된 품질 등급과 연관된 멀티미디어 데이터의 버전이 얻어질 수 있는 두가지 예시적인 기술들이다.
A)제 1 기술: 프로세스(500)의 구현 전에, 서버는 멀티미디어 데이터의 각 조각의 여러가지 버전들을 생성하고 저장할 수 있는데, 각 버전은 상이한 미리 결정된 품질 등급에 대응한다. 멀티미디어 데이터의 품질 등급이 단계(510)를 이용하여 결정된 후, 서버는 멀티미디어 데이터의 상이한 저장된 버전들 중에서 멀티미디어 데이터에 대해 결정된 품질 등급에 대응하는 멀티미디어 데이터의 버전을 검색할 수 있다. 예를 들어, 프로세스(500)의 구현 전에, 서버는 일정한 그래프, 그래픽 A의 4개의 상이한 해상도들에 대응하는 4개의 버전들을 미리 생성할 수 있다. 예를 들어, 그래픽 A의 4가지 버전들은 다음 4개의 해상도들: 인치 당 128 픽셀(ppi), 256ppi, 512ppi, 및 1024ppi에 대응할 수 있다. 그래픽 A의 4가지 버전들은 각각 "A_128", "A_256", "A_512", 및 "A_1024"로 라벨링되어 저장될 수 있다. 예를 들어, 그래픽 A의 각 버전은 가장 높은 해상도와 연관되는 그래픽 A의 원래 버전으로부터 생성될 수 있다. 예를 들어, (사용자 보고된 하드웨어 정보, 네트워크 성능 가중치, 및 네트워크 액세스 모드 정보에 따라 서버에 의해 결정된) 요청 정보에 포함될 그래픽 A에 대한 품질 등급이 128ppi라고 가정하면, 서버는 "A_128"로 라벨링된 그래픽을 검색하고 이를 클라이언트 디바이스로 전송될 요청 정보에 포함시킬 수 있다. 다른 예에서, 클라이언트 디바이스로 전송할 요청 정보에 포함될 그래픽 A에 대한 결정된 품질 등급이 멀티미디어 데이터의 조각의 어떠한 미리 생성된 버전의 품질 등급과도 매치하지 않는 해상도라고 가정한다. 정확한 매치가 존재하지 않는 이러한 경우에, 결정된 품질 등급과 가장 가까운 품질 등급을 갖는 멀티미디어 데이터의 조각의 저장된 버전이 선택된다. 이와 같이, 제 1 기술은 결정된 품질 등급에 대응하는 멀티미디어 데이터의 조각의 적절한 버전이 다양한 미리 생성된 버전들로부터 멀티미디어 데이터의 조각의 적절한 미리 생성된 버전을 간단히 선택하는 것에 의해 효율적으로 얻어지도록 한다.
B)제 2 기술: 프로세스(500)의 구현 전에, 서버는 멀티미디어 데이터의 각 조각의 원래 버전을 저장할 수 있다. 예를 들어, 멀티미디어 데이터의 조각의 원래 버전은 높은 품질 등급에 대응하는 멀티미디어 데이터의 조각의 버전을 포함한다. 멀티미디어 데이터의 품질 등급이 단계(510)를 사용하여 결정된 후에, 서버는 결정된 품질 등급에 대응하는 멀티미디어 데이터의 조각의 버전을 동적으로 생성할 수 있다. 예를 들어, 서버는 멀티미디어 데이터의 조각의 원래 버전으로부터 결정된 품질 등급에 대응하는 멀티미디어 데이터의 조각의 버전을 생성할 수 있다(결정된 품질 등급은 멀티미디어 데이터의 조각의 원래 버전의 품질 등급보다 낮다고 가정한다). 이와 같이, 제 2 기술은 결정된 품질 등급에 대응하는 멀티미디어 데이터의 조각의 적절한 버전이 필요에 따라 동적으로 생성될 수 있으므로, 멀티미디어 데이터의 각 조각의 많은 버전들을 저장하기 위해 사용될 저장 공간을 필요로 하지 않는다.
결정된 품질 등급에 대응하는 멀티미디어 데이터의 조각의 적절한 버전을 얻기위해 상술된 두가지 기술들은 실질적인 애플리케이션 시나리오들에 따라 구현될 수 있다. 일부 실시예들에서, 두가지 기술들은 조합하여 사용될 수 있다. 예를 들어, 일정한 조각들의 멀티미디어 데이터가 더욱 자주 획득되면(예를 들어, 시간의 정해진 길이 내의 획득들의 숫자가 지정된 임계값을 초과하면), 멀티미디어 데이터의 이러한 조각들의 각각의 상이한 버전들이 미리 저장될 수 있다(즉, 상술된 제 1 기술을 이용하여). 일정한 조각들의 멀티미디어 데이터가 덜 자주 획득되면(예를 들어, 시간의 정해진 길이 내의 획득들의 숫자가 지정된 임계값을 초과하지 않으면), 이후 멀티미디어 데이터의 원래 버전이 저장된다(즉, 상술된 제 2 기술을 이용하여).
단계(512)에서, 품질 등급에 대응하는 멀티미디어 데이터의 조각의 버전을 포함하는 요청 정보량이 클라이언트 디바이스로 전송된다.
앞의 예로 돌아가면, 결정된 요청 정보량은 메시지 보드의 특정 페이지와 연관된 100개의 메시지들 중 1 내지 15의 메시지들을 포함한다. 적어도 메시지 3은 이미지, 이미지 ABC를 포함한다고 결정된다. 단계들(506 내지 510)을 적용하면, 이미지 ABC에 대해 128ppi의 해상도가 결정된다. 따라서, 이미지 ABC를 포함하는 메시지들 1 내지 15 중의 메시지에 대해, 이미지 ABC의 128ppi가 서버로부터 클라이언트 디바이스로 전송된다.
도 3의 프로세스(300), 도 4의 프로세스(400), 및 도 5의 프로세스(500)는 서비스를 구현하는 서버가 클라이언트 디바이스로 전송될 요청 정보의 적절한 양을 결정하고 및/또는 클라이언트 디바이스로 전송될 요청 정보량에 포함될 멀티미디어 데이터의 조각의 적절한 품질 등급을 결정하기 위한 로직을 저장하는 실시예들을 설명한다. 이와 같이, 이러한 양들 및/또는 품질 등급들의 결정과 연관된 로직이 변화하면, 서버에서만 중심적으로 변화들이 만들어질 필요가 있다.
일부 실시예들에서, 클라이언트 디바이스는, 클라이언트 디바이스로 전송될 요청 정보의 적절한 양을 결정하고 및/또는 클라이언트 디바이스로 전송될 요청 정보량에 포함될 멀티미디어 데이터의 적절한 품질 등급을 결정하기 위한 로직의 적어도 일부를 저장할 수 있다. 프로세스(600)는 클라이언트 디바이스가 이러한 결정들의 적어도 일부를 수행하는 프로세스의 예를 설명한다.
도 6은 클라이언트 디바이스에 의해 정보를 요청하는 프로세스의 실시예를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(600)는 도 2의 시스템(200)에서 구현된다. 특히, 일부 실시예들에서, 프로세스(600)는 도 2의 시스템(200)에서 구현된다.
프로세스(600)는 클라이언트 디바이스가 각 사용자 식별자에 대응하는 과거 정보 수신 시간들과 과거 수신 정보량들을 포함하는 과거 기록들을 저장하는 실시예를 설명한다. 프로세스(600)는 또한 클라이언트 디바이스가 사용자 식별자에 대응하는 읽기 속도를 결정하는 실시예를 설명한다. 일부 실시예들에서, 프로세스(600)는 서비스를 구현하는 서버에서 계산적인 작업량을 감소시키기에 바람직할 때 구현될 수 있다.
단계(602)에서, 정보 획득 명령이 클라이언트 디바이스에서 수신된다. 예를 들어, 정보 획득 명령은 소프트웨어 애플리케이션의 사용자 선택(예를 들어, "더 읽기(Load More)" 버튼 또는 "다음 페이지(Next Page)" 버튼의 사용자 선택)에 응답하여 생성된다. 일부 실시예들에서, 정보 획득 명령은 어떤 정보가 요청되는지를 식별하는 데이터에 연관된다.
단계(604)에서, 현재 로그인된 사용자와 연관된 사용자 식별자가 결정된다. 클라이언트 디바이스는 서비스와 연관된 실행 애플리케이션으로 현재 로그인된 사용자의 사용자 식별자를 결정할 수 있다.
단계(606)에서, 사용자 식별자에 대응하는 하나 이상의 과거 정보 수신 시간들과 하나 이상의 과거 수신 정보량들이 클라이언트 디바이스에 저장된 과거 기록들로부터 결정된다.
도 3의 프로세스(300)는 서비스를 구현하는 서버가 과거 정보 전송 시간들과 과거 수신 정보량들에 관한 과거 기록들을 저장하는 것을 설명한다. 프로세스(600)에서, 클라이언트 디바이스는 유사한 기록들을 유지할 수 있다. 프로세스(600)에서, 클라이언트 디바이스는 요청 정보가 클라이언트 디바이스에서 수신되는 매 시간 클라이언트 디바이스의 애플리케이션으로 로그인한 사용자에 대응하는 사용자 식별자에 대한 과거 데이터를 저장할 수 있다. 저장된 데이터는 요청 정보가 서버로부터 수신되었던 시간(즉, 정보 수신 시간)과 그 정보 수신 시간에서 수신되었던 정보의 전송량(즉, 수신된 정보량)을 포함한다.
단계(608)에서, 사용자 식별자에 대응하는 읽기 속도가, 하나 이상의 과거 정보 수신 시간들과 하나 이상의 저장된 과거 수신 정보량들에 적어도 부분적으로 기반하여, 클라이언트 디바이스에 의해 결정된다.
검색된 과거 정보 전송 시간들과 과거 전송 정보량들은 사용자 식별자에 대응하는 읽기 속도를 결정하는데 사용된다. 일부 실시예들에서, 단계(608)는 결정이 서버 대신 클라이언트 디바이스에서 실행된다는 점을 제외하고 도 3의 프로세스(300)의 단계(308)와 유사한 방식으로 구현될 수 있으며, "과거 정보 수신 시간들"이 단계(308)의 "과거 정보 전송 시간들"에 대체될 수 있고, "과거 수신 정보량들"이 단계(308)의 "과거 전송 정보량들"에 대체될 수 있다.
단계(610)에서, 서버로부터 획득될 요청 정보량은 사용자 식별자에 대응하는 읽기 속도에 적어도 부분적으로 기반하여, 결정된다.
클라이언트 디바이스는 원하는 정보 중 어떤 양이 서버로부터 요청될지를 결정할 수 있다. 일부 실시예들에서, 서버로부터 획득될 요청 정보량이 사용자 식별자에 대응하는 읽기 속도를 이용하여 결정된다. 이러한 실시예들에서, 단계(610)는 도 3의 프로세스(300)의 단계(310)와 유사한 방식으로 구현될 수 있으며, 결정은 클라이언트 디바이스에서 수행된다.
일부 실시예들에서, 서버로부터 획득될 요청 정보량이, 사용자 식별자에 대응하는 읽기 속도에 부가하여 네트워크 성능 가중치와 네트워크 액세스 모드 정보를 이용하여 결정된다. 예를 들어, 네트워크 성능 가중치와 네트워크 액세스 모드 정보는 클라이언트 디바이스에서 결정될 수 있다. 이러한 실시예들에서, 단계(610)는 결정이 서버 대신 클라이언트 디바이스에서 실행된다는 점을 제외하고, 도 4의 프로세스(400)의 단계(408)와 유사한 방식으로 구현될 수 있다.
단계(612)에서, 요청 정보량을 포함하는 정보 획득 요청이 서버로 전송된다. 서버는 요청으로부터 요청 정보량을 결정하여 클라이언트 디바이스로 이러한 정보를 전송할 수 있다.
일부 실시예들에서, 정보 획득 요청은 또한 어떤 타입의 데이터가 서버로부터 요청되는지를 식별하는 데이터를 포함한다. 일부 실시예들에서, 클라이언트 디바이스가 정보 획득 요청을 전송하기 전에, 클라이언트 디바이스는 부가적으로 요청 정보량에 포함될 수 있는 멀티미디어 데이터의 조각에 대응하는 품질 등급을 결정한다. 일부 실시예들에서, 요청 정보량에 포함될 수 있는 멀티미디어 데이터의 조각에 대응하는 품질 등급은 클라이언트 디바이스와 연관된 하드웨어 정보, 네트워크 성능 가중치, 및 네트워크 액세스 모드 정보를 이용하여 결정된다. 이러한 실시예들에서, 품질 등급은 결정이 서버 대신 클라이언트 디바이스에서 실행된다는 점만 제외하고, 도 5의 프로세스(500)의 단계(510)와 유사한 방식으로 결정될 수 있다. 이후, 멀티미디어 데이터의 조각에 대응하는 결정된 품질 등급은 또한 결정된 양에 부가하여 정보 획득 요청에 포함된다.
서버가 요청으로부터 요청 정보량(또한 일부 실시예들에서는, 멀티미디어 데이터의 조각에 대응하는 결정된 품질 등급)을 결정한 후에, 서버는 요청 정보량을 클라이언트 디바이스로 전송할 수 있다(또한 일부 실시예들에서는, 요청 정보는 품질 등급에 대응하는 적어도 한 조각의 멀티미디어 데이터를 포함한다).
도 7은 서비스를 구현하는 서버의 실시예를 도시하는 도면이다. 예에서, 시스템(700)은 전송 모듈(704), 속도 결정 모듈(703), 검색 모듈(702), 및 수신 모듈(701)을 포함한다.
모듈들은, 본 발명의 실시예들에서 설명된 방법들을 구현하는 컴퓨터 디바이스(개인용 컴퓨터들, 서버들, 네트워크 장비, 등)를 만들기 위한 다수의 지시들을 포함하여, 하나 이상의 프로세서들에서 동작하는 소프트웨어 구성성분들로서, 프로그램가능한 로직 디바이스들과 같은 하드웨어로서, 및/또는 비휘발성 저장 매체(광 디스크, 플래시 저장 디바이스, 이동식 하드 디스크, 등)에 저장될 수 있는 소프트웨어 제품들의 형태로 내장될 수 있는 소자들로 설계된 애플리케이션 특정 집적 회로들(Application Specific Integrated Circuits)로서 구현될 수 있다. 모듈들은 단일 디바이스 상에서 구현되거나 또는 다중 디바이스들에 걸쳐 분포될 수 있다.
수신 모듈(701)은 클라이언트 디바이스로부터 정보 획득 요청을 수신하도록 구성되는데, 정보 획득 요청은 사용자 식별자를 포함한다. 일부 실시예들에서, 수신 모듈(701)은 또한 클라이언트 디바이스에 의해 보고된 네트워크 성능 가중치와 네트워크 액세스 모드 정보 중 적어도 하나를 수신하도록 구성된다. 일부 실시예들에서, 수신 모듈(701)은 클라이언트 디바이스로부터 하드웨어 정보를 수신하도록 구성된다.
검색 모듈(702)은 정보 획득 요청에 포함된 사용자 식별자를 결정하도록 구성된다. 검색 모듈(702)은 또한 저장된 과거 기록들로부터 사용자 식별자에 대응하는 하나 이상의 과거 정보 전송 시간들과 하나 이상의 과거 전송 정보량들을 결정하도록 구성된다. 일부 실시예들에서, 검색 모듈(702)은 가장 최근의 미리 정해진 지정 시간 길이 내의 사용자 식별자에 대응하는 과거 정보 전송 시간들과 대응하는 과거 전송 정보량들을 검색하도록 구성된다.
속도 결정 모듈(703)은 사용자 식별자에 대응하는 하나 이상의 과거 정보 전송 시간들과 하나 이상의 과거 전송 정보량들에 적어도 부분적으로 기반하여, 사용자 식별자에 대응하는 읽기 속도를 결정하도록 구성된다. 예를 들어, 읽기 속도는 가장 이른 정보 전송 시간과 가장 최근의 정보 전송 시간 사이의 시간 간격에 대한 모든 전송 정보량들의 합의 비율로 결정될 수 있다. 일부 실시예들에서, 읽기 속도는 가장 최근의 미리 정해진 지정 시간 길이 내의 사용자 식별자에 대응하는 과거 정보 전송 시간들과 대응하는 과거 전송 정보량들에 적어도 부분적으로 기반하여, 결정된다. 예를 들어, 읽기 속도는 지정 시간 길이에 대한 가장 최근의 미리 정해진 지정 시간 길이 내의 전송 정보량들의 합의 비율로 결정될 수 있다.
전송 모듈(704)은 사용자 식별자에 대응하는 읽기 속도에 적어도 부분적으로 기반하여, 클라이언트 디바이스로 전송될 요청 정보량을 결정하도록 구성된다. 일부 실시예들에서, 읽기 속도가 클수록, 클라이언트 디바이스로 전송될 요청 정보량이 더 크게 결정된다. 일부 실시예들에서, 전송 모듈(704)은 대응하는 정보 전송 속도를 결정하기 위해 수신된 네트워크 액세스 모드 정보를 이용하도록 구성된다. 이후, 전송 모듈(704)은 클라이언트 디바이스로 전송될 요청 정보량을 결정하기 위해 읽기 속도에 부가하여 수신된 네트워크 성능 가중치와 대응하는 정보 전송 속도를 이용하도록 구성된다. 예를 들어, 네트워크 성능 가중치가 클수록 요청 정보의 결정된 양이 더 커질 것이며, 정보 전송 속도가 클수록 요청 정보의 결정된 양도 더 커질 것이다. 일부 실시예들에서, 전송 모듈(704)은 클라이언트 디바이스에 의해 보고된 하드웨어 정보, 네트워크 성능 가중치, 및 네트워크 액세스 모드 정보에 적어도 부분적으로 기반하여, 클라이언트 디바이스로 다시 전송될 요청 정보의 결정된 양에 포함된 멀티미디어 데이터의 조각의 품질을 결정하도록 구성된다. 일부 실시예들에서, 전송 모듈(704)은 대응하는 하드웨어 성능 가중치를 결정하기 위하여 수신된 하드웨어 정보를 사용하도록 구성된다. 예를 들어, 하드웨어 성능 가중치가 높으면 멀티미디어 데이터에 대한 품질 등급이 더욱 나아질 것이다.
도 8은 서버와 연관된 애플리케이션을 수행하는 클라이언트 디바이스의 실시예를 도시하는 도면이다. 예에서, 시스템(800)은 요청 모듈(801), 속도 결정 모듈(802), 검색 모듈(803), 수신 모듈(804), 및 상태 결정 모듈(805)을 포함한다.
수신 모듈(804)은 정보 획득 명령을 수신하도록 구성된다. 예를 들어, 수신 모듈(804)은 서버와 연관된 애플리케이션의 사용자 선택에 응답하여 정보 획득 명령을 수신한다.
검색 모듈(803)은 현재 로그인된 사용자에 연관된 사용자 식별자를 결정하도록 구성된다. 검색 모듈(803)은 또한 클라이언트 디바이스에 저장된 과거 기록들로부터 사용자 식별자에 대응하는 하나 이상의 과거 정보 수신 시간들과 하나 이상의 과거 수신 정보량들을 결정하도록 구성된다. 일부 실시예들에서, 검색 모듈(803)은 가장 최근의 미리 정해진 지정 시간 길이 내의 사용자 식별자에 대응하는 과거 정보 수신 시간들과 대응하는 과거 전송 정보량들을 검색하도록 구성된다.
속도 결정 모듈(802)은 사용자 식별자에 대응하는 하나 이상의 과거 정보 수신 시간들과 하나 이상의 과거 수신 정보량들에 적어도 부분적으로 기반하여, 사용자 식별자에 대응하는 읽기 속도를 결정하도록 구성된다. 예를 들어, 읽기 속도는 가장 이른 정보 수신 시간과 가장 최근의 정보 수신 시간 사이의 시간 간격에 대한 모든 수신 정보량들의 합의 비율로 결정될 수 있다. 일부 실시예들에서, 읽기 속도는 가장 최근의 미리 정해진 지정 시간 길이 내의 사용자 식별자에 대응하는 과거 정보 수신 시간들과 대응하는 과거 수신 정보량들에 적어도 부분적으로 기반하여, 결정된다. 예를 들어, 읽기 속도는 지정된 시간 길이에 대한 가장 최근의 미리 정해진 지정 시간 길이 내의 수신된 정보량들의 합의 비율로서 결정될 수 있다.
요청 모듈(801)은 사용자 식별자에 대응하는 읽기 속도에 적어도 부분적으로 기반하여, 서버로부터 획득될 요청 정보량을 결정하도록 구성된다. 일부 실시예들에서, 읽기 속도가 클수록 서버로부터 획득될 요청 정보량이 크게 결정된다. 요청 모듈(801)은 요청 정보의 결정된 양을 포함하는 정보 획득 요청을 서버로 전송하도록 구성된다. 일부 실시예들에서, 요청 모듈(801)은 대응하는 정보 전송 속도를 결정하기 위하여 상태 결정 모듈(805)에 의해 결정된 네트워크 액세스 모드 정보를 사용하도록 구성된다. 이후, 요청 모듈(801)은 서버로부터 획득될 요청 정보량을 결정하기 위하여 읽기 속도에 부가하여 상태 결정 모듈(805)에 의해 결정된 네트워크 성능 가중치와 대응하는 정보 전송 속도를 사용하도록 구성된다. 예를 들어, 네트워크 성능 가중치가 클수록 요청 정보의 결정된 양이 커질 것이며, 정보 전송 속도가 클수록 요청 정보의 결정된 양이 커질 것이다. 일부 실시예들에서, 요청 모듈(801)은 상태 결정 모듈(805)에 의해 결정된 하드웨어 정보, 네트워크 성능 가중치, 및 네트워크 액세스 모드 정보에 적어도 부분적으로 기반하여, 서버로부터 획득될 요청 정보의 결정된 양에 포함된 멀티미디어 데이터의 조각의 품질을 결정하도록 구성된다.
상태 결정 모듈(805)은 요청 모듈(801)이 서버로부터 획득될 요청 정보량을 결정하기 전에, 클라이언트 디바이스의 네트워크 성능 가중치와 네트워크 액세스 모드 정보 중 적어도 하나를 결정하도록 구성된다. 일부 실시예들에서, 상태 결정 모듈(805)은 또한 클라이언트 디바이스의 하드웨어 정보를 결정하도록 구성된다.
상술된 기술들을 통하여, 서버는 각 사용자의 읽기 속도에 따라 정보의 적절한 양을 다시 전송할 수 있다. 그 디바이스의 사용자의 개별화된 필요들에 기반하여 클라이언트 디바이스로 전송하기 위한 정보량을 조절하는 결과로, 서버는 더 적은 정보 획득 요청들을 수신하고 처리할 것이며, 이는 서비스를 구현하는 서버 상의 작업량을 감소시킬 수 있다.
도 9는 읽기 속도에 기반하여 정보를 전송하는 서비스를 구현하기 위한 프로그램화된 컴퓨터 시스템의 실시예를 도시하는 기능도이다. 명백하게 될 바와 같이, 다른 컴퓨터 시스템 아키텍처들 및 구성들이 읽기 속도에 기반하여 정보를 전송하는데 사용될 수 있다. 이하에서 설명되는 다양한 서브시스템들을 포함하는 컴퓨터 시스템(900)은 적어도 하나의 마이크로프로세서 서브시스템(또한 프로세서 또는 중앙 처리 유닛(CPU)(902)이라고도 불림)을 포함한다. 예를 들어, 프로세서(902)는 단일칩 프로세서 또는 다중 프로세서들에 의해 구현될 수 있다. 일부 실시예들에서, 프로세서(902)는 컴퓨터 시스템(900)의 동작을 제어하는 범용 디지털 프로세서이다. 메모리(910)로부터 검색된 지시들을 이용하여, 프로세서(902)는 입력 데이터의 수신과 조종, 및 출력 디바이스들(예를 들면, 디스플레이(918)) 상의 데이터의 출력과 디스플레이를 제어한다. 일부 실시예들에서, 프로세서(902)는 읽기 속도에 기반한 정보의 전송을 포함하고 및/또는 이를 제공하도록 사용된다.
프로세서(902)는 메모리(910)와 양방향으로 결합되는데, 전형적으로 랜덤 액세스 메모리(RAM)인 제 1 주 저장 영역과, 전형적으로 판독 전용 메모리(ROM)인 제 2 주 저장 영역을 포함할 수 있다. 업계에 잘 알려진 바와 같이, 주 저장장치는 일반적인 저장 영역으로, 그리고 스크래치-패드(scratch-pad) 메모리로 사용될 수 있으며, 또한 입력 데이터와 처리된 데이터를 저장하도록 사용될 수 있다. 주 저장장치는 또한 프로세서(902) 상에서 동작하는 프로세스들을 위한 다른 데이터와 지시들에 부가하여, 데이터 객체들과 텍스트 객체들의 형태로 프로그래밍 지시들과 데이터를 저장할 수 있다. 또한 업계에 잘 알려진 바와 같이, 주 저장장치는 전형적으로 그의 기능들(예를 들면, 프로그램화된 지시들)을 실행하도록 프로세서(102)에 의해 사용된 기본 동작 지시들, 프로그램 코드, 데이터 및 객체들을 포함한다. 예를 들어 메모리(910)는, 예를 들어 데이터 액세스가 양방향이 필요한지 또는 단방향이 필요한지에 의존하여, 이하에서 설명되는 임의의 적절한 컴퓨터 판독가능 저장 매체들을 포함할 수 있다. 예를 들어, 프로세서(902)는 또한 캐시 메모리(도시되지 않음)의 필요한 데이터를 직접 및 매우 빠르게 검색하고 주기적으로 저장할 수 있다.
착탈식(removavle) 대용량 저장 디바이스(912)는 컴퓨터 시스템(900)에 대하여 부가적인 데이터 저장 용량을 제공하며, 프로세서(902)에 양방향으로(판독/기록) 또는 단방향으로(판독 전용) 결합된다. 예를 들어, 저장장치(912)는 또한 자기 테이프, 플래시 메모리, PC-CARDS, 휴대용 대용량 저장 디바이스들, 홀로그래픽 저장 디바이스들, 및 다른 저장 디바이스들과 같은 컴퓨터 판독가능 매체들을 포함할 수 있다. 고정식 대용량 저장장치(920)는 또한, 예를 들면 부가적인 데이터 저장 용량을 제공할 수 있다. 고정식 대용량 저장장치(920)의 가장 일반적인 예는 하드 디스크 드라이브이다. 대용량 저장장치(912, 920)는 전형적으로 프로세서(902)에 의해 활발하게 사용되지 않는 부가적인 프로그래밍 지시들, 데이터, 등을 일반적으로 포함한다. 대용량 저장장치(912 및 920) 내에 저장된 정보는, 필요하다면, 메모리(910)의 일부(예를 들면, RAM)로서 가상 메모리로 표준 방식으로 통합될 수 있다는 것이 이해될 것이다.
프로세서(902)가 저장 서브시스템들로 액세스를 제공하는 것에 부가하여, 버스(914)는 또한 다른 서브시스템들과 디바이스들로 액세스를 제공하도록 사용될 수 있다. 도시된 바와 같이, 이들은 디스플레이(918), 네트워크 인터페이스(916), 키보드(904), 및 포인팅 디바이스(906) 뿐만 아니라, 필요에 따라 보조 입력/출력 디바이스 인터페이스, 사운드 카드, 스피커들, 및 다른 서브시스템들을 포함할 수 있다. 예를 들어, 포인팅 디바이스(906)는 마우스, 스틸러스(stylus), 트랙볼, 또는 태플릿일 수 있으며, 그래픽 사용자 인터페이스와 상호작용을 위해 유용하다.
네트워크 인터페이스(916)는 프로세서(902)가 도시된 바와 같은 네트워크 연결을 이용하여 다른 컴퓨터, 컴퓨터 네트워크, 또는 텔레커뮤니케이션 네트워크와 결합되는 것을 허용한다. 예를 들어, 네트워크 인터페이스(916)를 통해, 프로세서(902)는 다른 네트워크로부터 정보(예를 들면, 데이터 객체들 또는 프로그램 지시들)를 수신하거나, 또는 방법/프로세스 단계들을 실행하는 동안 다른 네트워크로 정보를 출력할 수 있다. 종종 프로세서 상에서 수행될 정보들의 시퀀스로 표현되는 정보는 다른 네트워크로부터 수신되고 다른 네트워크로 출력될 수 있다. 인터페이스 카드 또는 유사 디바이스와 프로세서(902)에 의해 구현된(예를 들면, 실행된/수행된) 적절한 소프트웨어는 컴퓨터 시스템(900)을 외부 네트워크로 연결하고 표준 프로토콜들에 따라 데이터를 전송하는데 사용될 수 있다. 예를 들어, 여기서 개시된 다양한 프로세스 실시예들이 프로세서(902) 상에서 수행될 수 있거나, 또는 처리의 일부를 공유하는 원격 프로세서와 함께, 인터넷, 인트라넷 네트워크들, 또는 로컬 영역 네트워크들과 같은 네트워크를 통해 실행될 수 있다. 부가적인 대용량 저장 디바이스들(도시되지 않음)이 또한 네트워크 인터페이스(916)를 통해 프로세서(102)와 연결될 수 있다.
보조 I/O 디바이스 인터페이스(도시되지 않음)가 컴퓨터 시스템(900)과 함께 사용될 수 있다. 보조 I/O 디바이스 인터페이스는 프로세서(902)가 마이크로폰들, 접촉 감지형 디스플레이들, 트랜스듀서(transducer) 카드 판독기들, 테이프 판독기들, 음성 또는 필체 인식기들, 생체(biometrics) 판독기들, 카메라들, 이동형 대용량 저장 디바이스들, 및 다른 컴퓨터들과 같은 다른 디바이스들로 데이터를 전송하고, 더욱 전형적으로는, 그로부터 데이터를 수신하는 것을 허용하는 일반 및 맞춤 인터페이스들을 포함할 수 있다.
부가적으로, 여기서 개시된 다양한 실시예들은 또한 다양한 컴퓨터 구현가능한 동작들을 실행하기 위한 프로그램 코드를 포함하는 비-일시적 컴퓨터 판독가능한 매체를 갖는 컴퓨터 저장장치 제품들에 관한 것이다. 컴퓨터 판독가능한 매체는 이후에 컴퓨터 시스템에 의해 판독될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 비-일시적 컴퓨터 판독가능한 매체들의 예들은 위에서 언급된 모든 매체들: 하드 디스크들, 플로피 디스크들, 및 자기 테이프와 같은 자기 매체들; CD-ROM 디스크들과 같은 광학 매체들; 광학 디스크들과 같은 자기-광 매체들; 및 애플리케이션 특정 집적 회로들(ASICs), 프로그램가능한 로직 디바이스들(PLDs), 및 ROM과 RAM 디바이스들과 같은 특별하게 구성된 하드웨어 디바이스들 등을 포함하지만, 이에 제한되지는 않는다. 프로그램 코드의 예들은 예를 들면, 컴파일러에 의해 생성된 머신 코드(machine code), 또는 해석기를 사용하여 수행될 수 있는 더 높은 레벨의 코드(예를 들면, 스크립트)를 포함하는 파일들 모두를 포함한다.
도 9에 도시된 컴퓨터 시스템은 여기서 개시된 다양한 실시예들에 사용하기 위해 적절한 컴퓨터 시스템의 예일 뿐이다. 이러한 사용을 위해 적절한 다른 컴퓨터 시스템들은 부가적인 또는 더 적은 서브시스템들을 포함할 수 있다. 부가적으로, 버스(914)가 서브시스템들을 링크하기 위해 동작하는 임의의 상호연결 스킴으로 예시된다. 서브시스템들의 상이한 구성들을 갖는 다른 컴퓨터 아키텍처들이 또한 사용될 수 있다.
당업자는 본 출원의 실시예가 방법들, 시스템들 또는 컴퓨터 소프트웨어 제품들로 제공될 수 있다는 것을 이해해야 한다. 따라서, 본 출원은 완전한 하드웨어 실시예들, 완전한 소프트웨어 실시예들, 또는 소프트웨어와 하드웨어를 조합한 실시예들의 형태를 가질 수 있다. 부가적으로, 본 출원은 컴퓨터 동작가능한 프로그램 코드들을 포함하여, 하나 이상의 컴퓨터 동작가능한 저장 매체들(자기 디스크 저장 디바이스들, CD-ROM들, 및 광 저장 디바이스들을 포함하지만 이에 제한되지는 않는) 상에서 구현된 컴퓨터 프로그램 제품들의 형태를 가질 수 있다.
본 출원은 방법들, 장비(시스템들) 및 컴퓨터 프로그램 제품들에 기반한 흐름도들 및/또는 블록도들을 참조하여 설명된다. 흐름도들 및/또는 블록도들 내의 각 흐름도 및/또는 블록도와, 흐름도들 및/또는 블록도들 내의 흐름도들 및/또는 블록도들의 조합들은 컴퓨터 명령들에 의해 실현될 수 있다는 것에 주의한다. 이러한 컴퓨터 명령들을 범용 컴퓨터, 특정 컴퓨터, 내장 프로세서 또는 다른 프로그램가능한 데이터 처리 장비의 프로세서에 제공하여 머신을 만들 수 있으며, 결과적으로 다른 프로그램가능한 데이터 처리 장비의 컴퓨터 또는 프로세서를 통해 수행된 명령들이 흐름도의 하나 이상의 프로세스들 및/또는 블록도의 하나 이상의 블록들에 의해 지정된 기능들을 실현하는데 사용되는 디바이스를 만들 수 있다.
이러한 컴퓨터 프로그램 명령들은 또한 컴퓨터들 또는 다른 프로그램가능한 데이터 처리 장비를 안내할 수 있는 특별하게 동작하는 컴퓨터 판독가능한 저장 디바이스들 상에 저장될 수 있으며, 결과적으로 이러한 컴퓨터 판독가능한 디바이스들 상에 저장된 명령들은 명령 디바이스들을 포함하는 장치들을 만든다. 이러한 명령 디바이스들은 흐름도의 하나 이상의 프로세스들 및/또는 블록도의 하나 이상의 블록들에서 지정된 기능들을 실현한다.
이러한 컴퓨터 프로그램 명령들은 또한 컴퓨터 또는 다른 프로그램가능한 데이터 처리 장비에 탑재될 수 있으며, 결과적으로 일련의 동작 단계들이 컴퓨터 또는 다른 프로그램가능한 장비 상에서 수행되어 컴퓨터 처리를 할 수 있게 한다. 이러한 방식으로, 컴퓨터 또는 다른 프로그램가능한 장비 상에서 수행된 명령들은 흐름도의 하나 이상의 프로세스들 및/또는 블록도의 하나 이상의 블록들에 의해 지정된 기능들을 실현하는 단계들을 제공한다.
상기 실시예들이 이해의 명확성의 목적들을 위해 다소 상세히 설명되었으나, 발명은 제공된 상세한 설명들로 제한되지 않는다. 발명을 구현하는 많은 대안의 방법들이 있다. 개시된 실시예들은 예시적인 것이며 제한적인 것이 아니다.
200: 시스템 202: 클라이언트 디바이스
203: 네트워크 204: 서버
205: 데이터베이스

Claims (22)

  1. 서버에 있어서:
    하나 이상의 프로세서들로서:
    클라이언트 디바이스로부터, 사용자 식별자를 포함하는 정보 획득 요청을 수신하고;
    상기 정보 획득 요청에 포함된 상기 사용자 식별자를 결정하고;
    저장된 과거 기록들(historical records)로부터 상기 사용자 식별자에 대응하는 하나 이상의 과거 정보 전송 시간들(historical information sent times)과 하나 이상의 과거 전송 정보량들(historical sent information quantities)을 결정하고;
    상기 사용자 식별자에 대응하는 상기 하나 이상의 과거 정보 전송 시간들과 상기 하나 이상의 과거 전송 정보량들에 적어도 부분적으로 기반하여, 상기 사용자 식별자에 대응하는 읽기 속도(reading speed)를 결정하고;
    상기 사용자 식별자에 대응하는 상기 읽기 속도에 적어도 부분적으로 기반하여, 상기 클라이언트 디바이스로 전송될 요청 정보량(a quantity of requested information)을 결정하고;
    상기 요청 정보량을 상기 클라이언트 디바이스로 전송하도록 구성된, 상기 하나 이상의 프로세서들과;
    상기 하나 이상의 프로세서들에 결합되고, 상기 하나 이상의 프로세서들로 지시들을 제공하도록 구성된, 하나 이상의 메모리들을 포함하는, 서버.
  2. 제 1 항에 있어서,
    상기 사용자 식별자에 대응하는 상기 읽기 속도를 결정하기 위하여, 상기 하나 이상의 프로세서들은:
    상기 저장된 과거 기록들 중에서, 상기 사용자 식별자에 대응하는 가장 최근의 정보 전송 시간을 T1으로, 상기 사용자 식별자에 대응하는 가장 이른 정보 전송 시간을 T2로 식별하고;
    상기 저장된 과거 기록들 중에서, 상기 사용자 식별자에 대응하는 과거 전송 정보량들의 합 m을 결정하고;
    Figure pct00004
    을 상기 사용자 식별자에 대응하는 상기 읽기 속도로 결정하도록 구성되는, 서버.
  3. 제 1 항에 있어서,
    상기 사용자 식별자에 대응하는 상기 읽기 속도를 결정하기 위하여, 상기 하나 이상의 프로세서들은:
    상기 저장된 과거 기록들 중에서, 가장 최근의 미리 정해진 지정 시간 길이 내의 상기 사용자 식별자에 대응하는 과거 정보 전송 시간(들)을 식별하고;
    상기 가장 최근의 미리 정해진 지정 시간 길이 내의 상기 과거 정보 전송 시간(들)에 대응하는 과거 전송 정보량들의 합을 결정하고;
    상기 미리 정해진 지정 시간 길이에 대한 상기 합의 비율을 상기 사용자 식별자에 대응하는 상기 읽기 속도로 결정하도록 구성되는, 서버.
  4. 제 1 항에 있어서,
    요청 정보량은 상기 읽기 속도의 단조 증가 함수(monotonically increasing function)가 되도록 결정되는, 서버.
  5. 제 1 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 클라이언트 디바이스로부터 네트워크 성능 가중치(network performance weight)와 네트워크 액세스 모드 정보 중 적어도 하나를 수신하도록 또한 구성되는, 서버.
  6. 제 5 항에 있어서,
    상기 사용자 식별자에 대응하는 상기 읽기 속도에 적어도 부분적으로 기반하여, 상기 클라이언트 디바이스로 전송될 상기 요청 정보량을 결정하는 것은, 상기 사용자 식별자에 대응하는 상기 읽기 속도, 상기 네트워크 성능 가중치, 및 상기 네트워크 액세스 모드 정보에 적어도 부분적으로 기반하여, 상기 클라이언트 디바이스로 전송될 상기 요청 정보량을 결정하는 것을 포함하는, 서버.
  7. 제 6 항에 있어서,
    상기 요청 정보량은 상기 네트워크 성능 가중치의 단조 증가 함수가 되도록 결정되는, 서버.
  8. 제 6 항에 있어서,
    상기 요청 정보량은 상기 네트워크 액세스 모드 정보에 대응하는 전송 속도의 단조 증가 함수가 되도록 결정되는, 서버.
  9. 제 5 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 요청 정보량이 멀티미디어 데이터의 적어도 한 조각(piece)을 포함한다고 결정하도록 또한 구성되는, 서버.
  10. 제 9 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 클라이언트 디바이스로부터 하드웨어 정보를 수신하도록 또한 구성되는, 서버.
  11. 제 10 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 하드웨어 정보, 상기 네트워크 성능 가중치, 및 상기 네트워크 액세스 모드 정보에 적어도 부분적으로 기반하여, 상기 멀티미디어 데이터의 적어도 한 조각에 대응하는 품질 등급(quality rating)를 결정하도록 또한 구성되는, 서버.
  12. 제 11 항에 있어서,
    상기 멀티미디어 데이터의 적어도 한 조각에 대응하는 상기 품질 등급은 상기 하드웨어 정보의 단조 증가 함수가 되도록 결정되는, 서버.
  13. 제 11 항에 있어서,
    상기 클라이언트 디바이스로 전송하기 위한 상기 요청 정보량은 상기 품질 등급에 대응하는 상기 멀티미디어 데이터의 적어도 한 조각의 버전을 포함하는, 서버.
  14. 방법에 있어서:
    클라이언트 디바이스로부터 정보 획득 요청을 수신하는 단계로서, 상기 정보 획득 요청은 사용자 식별자를 포함하는, 상기 수신 단계;
    상기 정보 획득 요청에 포함된 상기 사용자 식별자를 결정하는 단계;
    저장된 과거 기록들로부터 상기 사용자 식별자에 대응하는 하나 이상의 과거 정보 전송 시간들과 하나 이상의 과거 전송 정보량들을 결정하는 단계;
    하나 이상의 프로세서들을 이용하여, 상기 사용자 식별자에 대응하는 상기 하나 이상의 과거 정보 전송 시간들과 상기 하나 이상의 과거 전송 정보량들에 적어도 부분적으로 기반하여, 상기 사용자 식별자에 대응하는 읽기 속도를 결정하는 단계;
    상기 사용자 식별자에 대응하는 상기 읽기 속도에 적어도 부분적으로 기반하여, 상기 클라이언트 디바이스로 전송될 요청 정보량을 결정하는 단계; 및
    상기 요청 정보량을 상기 클라이언트 디바이스로 전송하는 단계를 포함하는, 방법.
  15. 제 14 항에 있어서,
    상기 클라이언트 디바이스로부터 네트워크 성능 가중치와 네트워크 액세스 모드 정보 중 적어도 하나를 더 포함하는, 방법.
  16. 제 15 항에 있어서,
    상기 사용자 식별자에 대응하는 상기 읽기 속도에 적어도 부분적으로 기반하여, 상기 클라이언트 디바이스로 전송될 상기 요청 정보량을 결정하는 단계는, 상기 사용자 식별자에 대응하는 상기 읽기 속도, 상기 네트워크 성능 가중치, 및 상기 네트워크 액세스 모드 정보에 적어도 부분적으로 기반하여, 상기 클라이언트 디바이스로 전송될 상기 요청 정보량을 결정하는 단계를 포함하는, 방법.
  17. 제 15 항에 있어서,
    상기 요청 정보량이 멀티미디어 데이터의 적어도 한 조각을 포함한다고 결정하는 단계를 더 포함하는, 방법.
  18. 제 17 항에 있어서,
    상기 클라이언트 디바이스로부터 하드웨어 정보를 수신하는 단계를 더 포함하는, 방법.
  19. 제 18 항에 있어서,
    상기 하드웨어 정보, 상기 네트워크 성능 가중치, 및 상기 네트워크 액세스 모드 정보에 적어도 부분적으로 기반하여, 상기 멀티미디어 데이터의 적어도 한 조각에 대응하는 품질 등급을 결정하는 단계를 더 포함하는, 방법.
  20. 제 18 항에 있어서,
    상기 클라이언트 디바이스로 전송하기 위한 상기 요청 정보량은 상기 품질 등급에 대응하는 상기 멀티미디어 데이터의 적어도 한 조각의 버전을 포함하는, 방법.
  21. 클라이언트 디바이스에 있어서:
    하나 이상의 프로세서들로서:
    정보 획득 명령(information acquisition command)을 수신하고;
    현재 로그인된 사용자와 연관된 사용자 식별자를 결정하고;
    저장된 과거 기록들로부터 상기 사용자 식별자에 대응하는 하나 이상의 과거 정보 수신 시간들과 하나 이상의 과거 수신 정보량들을 결정하고;
    상기 사용자 식별자에 대응하는 상기 하나 이상의 과거 정보 수신 시간들과 상기 하나 이상의 과거 수신 정보량들에 적어도 부분적으로 기반하여, 상기 사용자 식별자에 대응하는 읽기 속도를 결정하고;
    상기 사용자 식별자에 대응하는 상기 읽기 속도에 적어도 부분적으로 기반하여, 서버로부터 획득될 요청 정보량을 결정하고;
    상기 요청 정보량을 포함하는 정보 획득 요청을 상기 서버로 전송하도록 구성된, 상기 하나 이상의 프로세서들과;
    상기 하나 이상의 프로세서들에 결합되고, 상기 하나 이상의 프로세서들로 지시들을 제공하도록 구성된, 하나 이상의 메모리들을 포함하는, 클라이언트 디바이스.
  22. 방법에 있어서:
    정보 획득 명령을 수신하는 단계;
    현재 로그인된 사용자와 연관된 사용자 식별자를 결정하는 단계;
    저장된 과거 기록들로부터 상기 사용자 식별자에 대응하는 하나 이상의 과거 정보 수신 시간들과 하나 이상의 과거 수신 정보량들을 결정하는 단계;
    상기 사용자 식별자에 대응하는 상기 하나 이상의 과거 정보 수신 시간들과 상기 하나 이상의 과거 수신 정보량들에 적어도 부분적으로 기반하여, 상기 사용자 식별자에 대응하는 읽기 속도를 결정하는 단계;
    상기 사용자 식별자에 대응하는 상기 읽기 속도에 적어도 부분적으로 기반하여, 서버로부터 획득될 요청 정보량을 결정하는 단계; 및
    상기 요청 정보량을 포함하는 정보 획득 요청을 상기 서버로 전송하는 단계를 포함하는, 방법.
KR1020157030052A 2013-05-16 2014-05-15 읽기 속도에 기반한 정보 전송 KR101779791B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201310181926.0 2013-05-16
CN201310181926.0A CN104168174A (zh) 2013-05-16 2013-05-16 一种传输信息的方法及装置
US14/276,319 2014-05-13
US14/276,319 US9690859B2 (en) 2013-05-16 2014-05-13 Transmitting information based on reading speed
PCT/US2014/038185 WO2014186568A1 (en) 2013-05-16 2014-05-15 Transmitting information based on reading speed

Publications (2)

Publication Number Publication Date
KR20160002789A true KR20160002789A (ko) 2016-01-08
KR101779791B1 KR101779791B1 (ko) 2017-10-10

Family

ID=51896666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157030052A KR101779791B1 (ko) 2013-05-16 2014-05-15 읽기 속도에 기반한 정보 전송

Country Status (8)

Country Link
US (1) US9690859B2 (ko)
EP (1) EP2997715B1 (ko)
JP (1) JP6181291B2 (ko)
KR (1) KR101779791B1 (ko)
CN (1) CN104168174A (ko)
HK (1) HK1202723A1 (ko)
TW (1) TWI602431B (ko)
WO (1) WO2014186568A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105847168B (zh) * 2015-01-12 2020-01-31 华为技术有限公司 一种数据传输的方法、网络服务器、用户终端及系统
JP2017163287A (ja) * 2016-03-08 2017-09-14 富士ゼロックス株式会社 表示装置
CN110011907B (zh) * 2019-04-16 2021-05-07 腾讯科技(深圳)有限公司 一种消息展示的方法、消息处理的方法及装置
US11057454B2 (en) * 2019-12-02 2021-07-06 Walmart Apollo, Llc Methods and systems for identifying and remediating poor user experiences on computing devices
CN112685061B (zh) * 2020-12-28 2024-07-09 北京达佳互联信息技术有限公司 访问方法及装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4001561A (en) 1975-09-04 1977-01-04 Quaintance William J Device for measuring and indicating reading speed
GB9718905D0 (en) 1997-09-05 1997-11-12 Cambridge Consultants Data storage and retrieval
JP2001195412A (ja) 2000-01-12 2001-07-19 Hitachi Ltd 電子書籍システム及びそのコンテンツ表示方法
JP2002157267A (ja) 2000-11-21 2002-05-31 Nippon Telegr & Teleph Corp <Ntt> コンテンツ配信システムおよびコンテンツ配信方法ならびに記録媒体
EP1388791A4 (en) 2001-04-19 2005-09-21 Ibm SERVER, COMPUTER SYSTEM, OBJECT MANAGEMENT METHOD, SERVER CONTROL METHOD, COMPUTER PROGRAM
WO2003054708A1 (fr) 2001-12-12 2003-07-03 Nec Corporation Systeme et procede de lecture de document electronique
JP2004110413A (ja) 2002-09-18 2004-04-08 Toshiba Solutions Corp コンテンツ配信システム、サーバ
GB0328383D0 (en) * 2003-12-06 2004-01-14 Ibm Improved quality of service for network connected clients
JP4142669B2 (ja) 2004-05-11 2008-09-03 松下電器産業株式会社 電子書籍装置および電子書籍装置における表示方法
US20060078858A1 (en) 2004-09-27 2006-04-13 Vroman David T Device and method for evaluation of reading speed to determine vision problems
US20060248470A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation Variable-rate scrolling of media items
US8271865B1 (en) 2005-09-19 2012-09-18 Google Inc. Detection and utilization of document reading speed
US8234397B2 (en) * 2006-01-06 2012-07-31 Google Inc. Media article adaptation to client device
CN100504870C (zh) * 2006-09-05 2009-06-24 腾讯科技(深圳)有限公司 一种网页内容展现方法和一种客户端装置
US7917154B2 (en) * 2006-11-01 2011-03-29 Yahoo! Inc. Determining mobile content for a social network based on location and time
US9323426B2 (en) * 2009-10-05 2016-04-26 Google Inc. System and method for selecting information for display based on past user interactions
CN102687182A (zh) * 2009-11-10 2012-09-19 杜尔塞塔有限公司 用于电子视觉作品的配音的动态音频重放
US20130297599A1 (en) * 2009-11-10 2013-11-07 Dulcetta Inc. Music management for adaptive distraction reduction
JP2012027763A (ja) 2010-07-26 2012-02-09 Sharp Corp 電子書籍サーバ、情報処理方法、および電子書籍システム
TWI457762B (zh) * 2010-09-30 2014-10-21 Ibm 供閱讀電子書的電腦裝置與連結該電腦裝置之伺服器
CN102737037A (zh) * 2011-04-07 2012-10-17 北京搜狗科技发展有限公司 一种网页预读取的方法、装置及一种浏览器
US20130007609A1 (en) 2011-06-30 2013-01-03 International Business Machines Corporation Constraint based reading recommendation
US8782031B2 (en) * 2011-08-09 2014-07-15 Microsoft Corporation Optimizing web crawling with user history
US8612584B2 (en) * 2011-08-29 2013-12-17 Google Inc. Using eBook reading data to generate time-based information
US8874731B1 (en) * 2011-09-27 2014-10-28 Google Inc. Use of timing information for document understanding
CN102882936B (zh) * 2012-09-06 2015-11-25 百度在线网络技术(北京)有限公司 云推送的方法、系统和装置
CN103064600B (zh) * 2013-01-29 2015-11-25 北京奇虎科技有限公司 推送阅读内容的服务器、系统、方法和相应的终端

Also Published As

Publication number Publication date
US9690859B2 (en) 2017-06-27
TW201445987A (zh) 2014-12-01
US20140344338A1 (en) 2014-11-20
EP2997715B1 (en) 2017-11-08
TWI602431B (zh) 2017-10-11
EP2997715A1 (en) 2016-03-23
JP6181291B2 (ja) 2017-08-16
JP2016519380A (ja) 2016-06-30
CN104168174A (zh) 2014-11-26
WO2014186568A1 (en) 2014-11-20
HK1202723A1 (en) 2015-10-02
KR101779791B1 (ko) 2017-10-10

Similar Documents

Publication Publication Date Title
CN110096660B (zh) 用于加载页面图片的方法、装置和电子设备
KR101779791B1 (ko) 읽기 속도에 기반한 정보 전송
US11070611B1 (en) File download manager
US9785608B2 (en) Predictive, multi-layer caching architectures
US10650486B2 (en) Previewing dynamic images and expressions
CN109992406B (zh) 图片请求方法、响应图片请求的方法及客户端
US20190114989A1 (en) Systems and methods for image optimization
CN110020305B (zh) 网页加载方法、装置、计算机设备和存储介质
US20150271286A1 (en) Data Transmission
CN110249324B (zh) 在多个网页上维护会话标识符以进行内容选择
US10178431B2 (en) Hybrid stream delivery
US10178143B2 (en) Selecting bitrate to stream encoded media based on tagging of important media segments
CN111756847B (zh) 网站支持https协议的方法和装置
CN108334516B (zh) 信息推送方法和装置
EP3115899A1 (en) Attribute analyzer for data backup
US10887379B2 (en) Dynamically determining a content delivery network from which to receive content
US9454328B2 (en) Controlling hierarchical storage
US20160301736A1 (en) Systems and methods for providing remote access to an application
CN104253835A (zh) 用户行为数据采集方法及其系统
US20150248347A1 (en) Content providing apparatus and method, and computer program product
US11582502B2 (en) Method and system for uploading media objects unto a web platform
CN113849255B (zh) 一种数据处理方法、设备以及存储介质
CN116320616A (zh) 多媒体文件处理方法、装置、电子设备以及存储介质
CN116796096A (zh) 一种基于并行请求的移动端页面数据加载方法及系统
KR101892286B1 (ko) 물체 인식을 이용한 콘텐츠 제공 시스템 및 방법

Legal Events

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