KR101781339B1 - 클라이언트를 갱신하기 위한 방법 및 디바이스 - Google Patents

클라이언트를 갱신하기 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR101781339B1
KR101781339B1 KR1020157026179A KR20157026179A KR101781339B1 KR 101781339 B1 KR101781339 B1 KR 101781339B1 KR 1020157026179 A KR1020157026179 A KR 1020157026179A KR 20157026179 A KR20157026179 A KR 20157026179A KR 101781339 B1 KR101781339 B1 KR 101781339B1
Authority
KR
South Korea
Prior art keywords
client
packages
update
preferred
functions
Prior art date
Application number
KR1020157026179A
Other languages
English (en)
Other versions
KR20150119949A (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 KR20150119949A publication Critical patent/KR20150119949A/ko
Application granted granted Critical
Publication of KR101781339B1 publication Critical patent/KR101781339B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/42

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

본 출원의 실시예들은 클라이언트를 갱신하기 위한 방법, 클라이언트를 갱신하기 위한 디바이스, 및 클라이언트를 갱신하기 위한 컴퓨터 프로그램 제품에 관한 것이다. 방법은 클라이언트가 갱신될 경우 클라이언트가 갱신되는지의 여부를 결정하는 단계, 클라이언트에 대한 갱신 패키지들을 결정하는 단계, 클라이언트에 대응하는 사용자의 동작들의 저장된 기록에 기초하여 클라이언트에 의해 제안된 기능들 중에서 사용자의 선호된 기능들을 결정하는 단계, 및 선호된 패키지들의 역할을 하도록 사용자의 선호된 기능들에 의존하는 갱신 패키지들을 결정된 갱신 패키지들로부터 결정하는 단계를 포함한다.

Description

클라이언트를 갱신하기 위한 방법 및 디바이스{METHOD AND DEVICE FOR UPDATING CLIENT}
본 출원은 2013년 4월 22일에 출원된 발명의 명칭이 "A CLIENT UPDATE METHOD AND DEVICE"인 중화 인민 공화국 특허 출원 제 201310141479.6 호의 우선권을 청구하고, 이는 모든 목적들을 위해 참조로써 여기에 통합된다.
본 출원은 클라이언트를 갱신하기 위한 방법 및 디바이스를 포함한다.
현재, 무선 네트워크들 및 이동 디바이스들의 계속적인 개발에 의해, 무선 클라이언트 애플리케이션들은 점점 일반적이 되고, 이들 클라이언트 애플리케이션들은 일반적으로 빈번하게 갱신될 필요가 있다.
도 1은 클라이언트를 갱신하기 위한 종래의 프로세스를 도시하는 플로차트이다. 프로세스(100)는 서버에 의해 수행되고 다음을 포함한다:
110에서, 서버는 클라이언트로부터 갱신 검사를 수신한다. 갱신 검사는 클라이언트상에 로딩된 소프트웨어가 최신인지를 검증하기 위해 클라이언트에 의해 전송된다.
특히, 클라이언트의 스타트업 동안, 클라이언트는 갱신 검사를 개시하기 위해 클라이언트 애플리케이션들의 버전 번호를 서버에 송신한다.
120에서, 서버는 클라이언트가 갱신될지의 여부를 결정한다. 클라이언트가 갱신될 경우, 제어는 130으로 전달된다. 클라이언트가 갱신되지 않을 경우, 제어는 140으로 전달된다.
클라이언트에 의해 전송된 버전 번호의 수신시, 서버는 클라이언트 애플리케이션들의 수신된 버전 번호를 현재 이용가능한 클라이언트 애플리케이션들의 최신 버전 번호와 비교한다. 수신된 버전 번호가 최신 버전 번호와 일치할 경우, 클라이언트는 갱신될 필요가 없다. 수신된 버전 번호가 최신 버전 번호와 일치하지 않는 경우, 클라이언트는 갱신되어야 한다.
130에서, 수신된 버전 번호가 최신 버전 번호와 일치하지 않는 경우, 서버는 클라이언트를 갱신하기 위해 클라이언트 갱신 패키지를 릴리즈한다.
서버가 수신된 버전 번호 및 최신 버전 번호의 비교에 기초하여 수신된 버전 번호가 현재 이용가능한 최신 클라이언트 버전 번호와 상이하다는 것을 결정할 때, 서버는 클라이언트에 대한 모든 갱신 패키지들을 결정하고, 클라이언트를 갱신하기 위해 모든 갱신 패키지들을 릴리즈한다.
140에서, 수신된 버전 번호가 최신 버전 번호와 일치하는 경우, 서버는 클라이언트에 클라이언트가 갱신되지 않을 것을 통지한다.
그러나, 일반적으로 클라이언트는 각각의 기능이 특정 패키지 또는 특정 복수의 패키지들에 의존하는 많은 기능들을 제안할 수 있다. 사용자들이 상이한 사용 습관들을 가지기 때문에, 사용자는 일반적으로 단지 특정 기능 또는 특정 복수의 기능들만을 사용할 가능성이 있지만, 사용자가 모든 제안된 기능들을 사용할 가능성은 적다. 예를 들면, 클라이언트는 신용 카드 지불 및 공공 요금 지불 기능들을 제안하고, 사용자는 통상적으로 클라이언트의 신용 카드 지불 기능만을 사용하지만, 클라이언트의 공공 요금 지불 기능을 거의 사용하지 않거나 전혀 사용하지 않는다.
그러나, 종래의 프로세스(100)에서, 서버가 클라이언트가 갱신될 것을 결정하면, 클라이언트 갱신 패키지에 의해 지원된 기능이 정기적으로 사용되는지에 관계없이, 모든 갱신 패키지들은 클라이언트를 갱신하기 위해 반드시 릴리즈된다. 이러한 프로세스는 정기적으로 사용되지 않는 패키지들을 갱신함으로써 네트워크 자원들을 명백히 낭비하고, 클라이언트 갱신 효율을 감소시키고, 클라이언트 네트워크 환경의 상태들이 비교적 혼잡할 때, 클라이언트 갱신 시간을 상당히 길어지게 한다.
본 발명의 다수의 실시예들은 다음의 상세한 설명 및 첨부하는 도면들에서 개시된다.
본 발명은, 프로세스로서; 장치; 시스템; 물질의 조성; 컴퓨터 판독가능 저장 매체상에 구현된 컴퓨터 프로그램 제품; 및/또는 프로세서로서, 프로세서에 결합된 메모리에 저장되거나 이러한 메모리에 의해 제공된 명령들을 실행하도록 구성되는 프로세서를 포함하여, 다수의 방식들로 구현될 수 있다. 본 명세서에서, 이들 구현들, 또는 본 발명이 취하는 임의의 다른 형태는 기술들이라고 불릴 수 있다. 일반적으로, 개시된 프로세스들의 단계들의 순서는 본 발명의 범위 내에서 변경될 수 있다. 달리 언급되지 않으면, 태스크를 수행하도록 구성되는 것으로 기술된 프로세서 또는 메모리와 같은 구성 요소는 주어진 시간에 태스크를 수행하도록 일시적으로 구성된 범용 구성 요소 또는 태스크를 수행하도록 제작된 특수 구성 요소로서 구현될 수 있다. 여기에 사용된, 용어 '프로세서'는 컴퓨터 프로그램 명령들과 같은 데이터를 처리하도록 구성된 하나 이상의 디바이스들, 회로들, 및/또는 처리 코어들을 말한다.
본 발명의 하나 이상의 실시예들의 상세한 설명은 본 발명의 원리들을 도시하는 첨부하는 도면들과 함께 이하에 제공된다. 본 발명은 이러한 실시예들에 관하여 기술되지만, 본 발명은 어떤 실시예로 제한되지 않는다. 본 발명의 범위는 청구항들에 의해서만 제한되고 본 발명은 다수의 대안들, 변경들, 및 동등물들을 포함한다. 다수의 특정한 상세들은 본 발명의 철저한 이해를 제공하기 위해 다음 설명에 진술된다. 이들 상세들은 예의 목적을 위해 제공되고, 본 발명은 이들 특정한 상세들의 일부 또는 모두 없이 청구항들에 따라 실시될 수 있다. 명료성을 위해, 본 발명에 관련된 기술 분야들에서 알려진 기술적 사실은 본 발명을 불필요하게 불명료하게 하지 않도록 상세한 설명에 기술되지 않았다.
몇몇 실시예들에서, 사용자 선호에 기초하여 클라이언트에 포함된 패키지들의 일 부분만을 갱신하기 위해, 서버는 사용자의 선호된 기능들, 즉, 사용자의 동작들의 저장된 기록에 기초하여 사용자에 의해 일상적으로 사용된 기능들을 결정하고, 클라이언트에 포함된 패키지들의 단지 일부만이 갱신되기 때문에 사용자의 선호된 기능들이 의존하는 갱신 패키지들을 갱신될 클라이언트에 릴리즈한다. 패키지의 일부분만을 갱신하는 것은 네트워크 자원들을 효율적으로 보존하고 클라이언트 갱신들의 효율을 증가시킨다.
본 발명은 클라이언트에 포함된 패키지들의 일부분만을 갱신함으로써 네트워크 자원들을 효율적으로 보존하고 클라이언트 갱신들의 효율을 증가시키는 클라이언트 갱신 방법 및 디바이스를 제공한다.
도 1은 클라이언트를 갱신하기 위한 종래의 프로세스를 도시하는 플로차트.
도 2a는 클라이언트를 갱신하기 위한 프로세스의 일 실시예를 도시하는 플로차트.
도 2b는 버전 트리의 일 실시예를 도시하는 도면.
도 3은 클라이언트에 선호된 패키지를 릴리즈하기 위한 프로세스의 일 실시예를 도시하는 플로차트.
도 4는 클라이언트를 갱신하기 위한 디바이스의 일 실시예를 도시하는 도면.
도 5는 클라이언트를 갱신하기 위한 시스템의 일 실시예를 도시하는 도면.
도 2a는 클라이언트를 갱신하기 위한 프로세스의 일 실시예를 도시하는 플로차트이다. 몇몇 실시예들에서, 프로세스(200)는 도 5의 서버(520)에 의해 실행되고, 다음을 포함한다:
210에서, 서버는 클라이언트가 갱신될지의 여부를 결정한다.
260에서, 서버가 클라이언트가 갱신되지 않을 것을 결정하는 경우, 프로세스는 종료한다.
220에서, 서버가 클라이언트가 갱신될 것을 결정한 경우, 서버는 클라이언트에 대한 갱신 패키지들을 결정한다. 몇몇 실시예들에서, 갱신 패키지는 애플리케이션에 관련된 기능 또는 일 그룹의 기능들을 포함한다. 몇몇 실시예들에서, 갱신 패키지에 포함된 기능들은 애플리케이션의 일부분에 관한 것이고, 갱신 패키지에 포함되지 않은 추가의 기능들은 애플리케이션을 완전히 갱신하기 위해 요구된다.
몇몇 실시예들에서, 스타트업 동안, 클라이언트는 클라이언트 애플리케이션들의 클라이언트의 자신의 버전 번호를 서버에 송신함으로써 서버에 의해 갱신 검사를 개시한다. 일반적으로, 각각의 클라이언트 애플리케이션은 특정한 버전 번호를 갖는다. 몇몇 시나리오들에서, 클라이언트 애플리케이션을 갱신하기 위해, 더 새로운 기능들이 클라이언트에 다운로딩될 것이다. 클라이언트 애플리케이션들의 클라이언트의 버전 번호를 수신할 때, 서버는 클라이언트 애플리케이션들의 클라이언트의 버전 번호를 클라이언트 애플리케이션들의 현재 이용가능한 최신 버전 번호와 비교한다. 두 개의 버전 번호들이 상이한 경우, 서버는 클라이언트가 갱신될 것을 결정하고, 또는 두 개의 버전 번호들이 동일한 경우, 서버는 클라이언트가 갱신되지 않을 것을 결정한다.
서버가 클라이언트가 갱신될 것을 결정한 경우, 서버는 또한 두 개의 버전 번호들을 비교한 것에 기초하여 클라이언트에 대한 갱신 패키지들을 결정한다. 일 예로서, 서버는 클라이언트에 포함된 어느 패키지들이 갱신될지를 결정하기 위해 버전 트리 비교 기술을 사용하고, 갱신될 패키지들, 즉 클라이언트에 대한 갱신 패키지들에 대응하는 서버의 최신 패키지들을 결정한다. 예를 들면, 갱신될 클라이언트에 포함된 제 1 패키지를 결정한 후, 서버는 제 1 패키지에 대응하는 서버의 최신 패키지가 패키지(1')인 것을 결정하고, 이후 패키지(1')가 클라이언트에 대한 갱신 패키지인 것을 결정한다. 일 예로서, 패키지(1')는 일 세트의 기능들에 대한 새로운 버전 번호로서 보여진다. 기능이 이용가능한 새로운 버전을 가질 때, 클라이언트상의 기능은 갱신될 준비가 된다.
도 2b는 버전 트리의 일 실시예를 도시하는 도면이다. 몇몇 실시예들에서, 버전 트리 비교 기술은 도 2b에 도시된 버전 트리에서 수행된다. 버전 트리 비교 기술을 사용하여, 애플리케이션 및 그의 기능들의 각각은 버전 트리로 조직화되고, 각각의 기능은 그 자신의 버전을 갖고, 부모 노드의 버전은 도 2b에서 보여진 바와 같이 자식 노드들의 버전보다 새롭거나 또는 그와 동일하다. 갱신할 때, 어느 기능이 갱신될지를 찾기 위해 버전 트리를 검색한다. 예를 들면, 도 2b에서 보여진 바와 같이, 클라이언트상에서, 루트 노드(V2.0)의 자식 노드의 기능(V1.0)이 갱신될 것이다. 또한, 갱신될 기능의 두 개의 자식 노드의 기능들(V1.0)이 갱신될 것이다.
230에서, 서버는 사용자의 클라이언트의 동작들의 저장된 기록에 기초하여 사용자의 선호된 기능들을 결정한다.
몇몇 실시예들에서, 서버는 사용자가 사용자의 동작들의 저장된 기록에 기초하여 지정된 시간 범위 내 사용된 횟수들 중 가장 큰 수로부터 가장 작은 수로의 순서로 클라이언트에 의해 제안된 각각의 기능을 사용한 횟수들을 결정할 수 있다. 사용 정보에 기초하여, 서버는 사용자의 결정된 선호 기능들의 역할을 하도록 지정된 수의 기능들을 선택한다. 지정된 시간 범위의 예들은 지난 년도, 지난 달, 또는 임의의 다른 시간 기간을 포함한다.
몇몇 실시예들에서, 클라이언트에 대응하는 사용자는 클라이언트를 통해 로그 온되는 사용자 계정 번호를 말한다. 클라이언트가 서버에 의해 갱신 검사를 개시하는 경우, 클라이언트는 사용자에 대응하는 사용자 식별자(예컨대, 사용자 스크린 이름, 사용자 ID, 등)뿐만 아니라 클라이언트의 자신의 버전 번호를 서버에 동시에 송신한다.
몇몇 실시예들에서, 서버는 클라이언트에 의해 제안된 다수의 기능들에 대한 다수 형태들의 동작들의 대응들을 미리 저장하고, 사용자가 클라이언트에 대응하는 사용자의 기록된 동작들에 기초하여 지정된 시간 범위 내에 각각의 형태의 동작을 실행한 횟수를 결정한다. 몇몇 실시예들에서, 서버는 각각의 사용자에 대해 동작 로그를 생성하고, 사용자의 동작 로그에서 사용자의 각각의 동작 기록을 저장하고, 또한 사용자에 대한 동작 기록 테이블을 생성하고 동작 기록 테이블에 사용자의 각각의 동작 기록을 저장한다. 몇몇 실시예들에서, 동작 기록은 사용자 ID, 사용자에 의해 실행된 동작의 형태, 및 동작이 발생한 시간을 포함한다. 따라서, 서버는 동일한 형태의 동작을 포함하는 기록들의 수, 및 사용자가 지정된 시간 범위 내에서 동작의 형태를 실행한 횟수의 역할을 하도록 사용자의 동작 로그 또는 동작 기록 테이블에서 지정된 시간 범위 내에 있는 횟수를 카운트할 수 있다.
몇몇 실시예들에서, 동작의 형태에 관하여, 사용자가 지정된 시간 범위 내에 일 형태의 동작을 실행하는 횟수들이 이러한 형태의 동작에 대응하는 클라이언트의 기능이 사용된 횟수에 대응하기 때문에, 각각의 기능에 대하여, 서버는 사용자가 지정된 시간 범위 내에 기능을 사용한 결정된 횟수의 역할을 하기 위해 사용자가 지정된 시간 범위 내 기능에 대응하는 형태의 동작을 몇회 실행했는지를 결정한다.
예를 들면, 클라이언트가 신용 카드 지불 및 공공 요금 지불 기능들을 제안한다고 가정하자. 클라이언트에 의해 제안된 신용 카드 지불 기능에 대하여 이러한 기능에 대응하는 동작들은 신용 카드 지불 동작으로서 미리 설정된다. 동작 로그에 저장된 다수의 동작 기록들에 기초하여, 서버는 사용자가 신용 카드 지불 기능을 사용한 횟수의 역할을 하기 위해 사용자가 지정된 시간 범위(예를 들면, 지난해, 지난달, 또는 임의의 다른 시간 기간) 내에 신용 카드 지불 동작을 실행한 횟수를 결정한다. 유사하게, 서버는 사용자가 공공 요금 지불 및/또는 지정된 시간 범위 내 다른 기능들을 사용한 횟수를 결정할 수 있다.
후속하여, 선호된 기능들의 지정된 수는 1이고, 사용자가 신용 카드 지불 기능을 사용한 횟수는 20으로 결정되고, 사용자가 공공 요금 지불 기능을 사용한 횟수가 2로 결정된다고 가정하면, 사용된 횟수의 가장 높은 수로부터 가장 낮은 수로의 순서로, 서버는 사용자의 선호된 기능의 역할을 하기 위해 가장 높은 사용 횟수를 갖는 하나의 기능, 즉, 신용 카드 지불 기능을 선택한다. 다시 말해서, 기능들은 기능들의 사용들의 수에 기초하여 순서화될 수 있다.
240에서, 서버는 선호 패키지들의 역할을 하기 위해 결정된 갱신 패키지들 중으로부터 사용자의 선호된 기능이 의존하는 갱신 패키지들을 결정한다.
서버가 클라이언트에 대응하는 사용자의 선호된 기능들을 결정한 후, 서버는 이후 결정된 갱신 패키지들 중으로부터 클라이언트의 다수의 기능들과 미리 저장된 다수의 패키지들 사이의 종속 관계에 기초하여 사용자의 선호된 기능들이 의존하는 갱신 패키지들을 결정하고, 사용자의 선호된 기능들이 의존하는 갱신 패키지들을 선호된 패키지로서 사용한다. 일 예로서, 서버가 가장 많이 사용된 기능이 신용 카드 지불 기능이고, 다음으로 가장 많이 사용된 기능이 공공 요금 지불 기능이고, 나머지 기능들은 자주 사용되지는 않았다는 것을 결정할 때, 서버는 단지 신용 카드 지불 기능 및 공공 요금 지불 기능만이 갱신될 것을 결정한다. 이러한 예에서, 이들 두 개의 기능들을 포함하는 갱신 패키지들은 사용자에 대해 선호된 패키지들이다.
250에서, 서버는 클라이언트의 대응하는 패키지들을 갱신하기 위해 클라이언트에 결정된 선호 패키지들을 릴리즈한다.
몇몇 실시예들에서, 선호된 패키지들을 결정한 후, 서버는 클라이언트가 그 자신의 패키지를 갱신할 수 있도록 클라이언트에 선호된 패키지들을 릴리즈한다.
상기 프로세스를 사용하여, 서버는 사용자의 선호된 기능들이 의존하는 갱신 패키지들만을 릴리즈할 수 있고, 클라이언트에 모든 갱신 패키지들을 릴리즈할 필요가 없다. 따라서, 네트워크 자원들이 보존될 수 있다. 또한, 클라이언트가 또한 그의 패키지들의 모두를 갱신하는 것 대신 패키지들의 일부만을 갱신하기 때문에, 클라이언트 갱신들의 효율이 또한 증가된다.
실제 애플리케이션 시나리오들에서, 다수의 클라이언트들의 네트워크 환경들은 상이하고, 비교적 불량한 네트워크 환경들에서 동작하는 클라이언트들에 대하여, 갱신되는 패키지들의 수가 매우 큰 경우, 클라이언트 갱신 시간이 상당히 길 수 있고, 클라이언트 갱신 효율이 감소될 수 있다. 몇몇 실시예들에서, 클라이언트에 대응하는 사용자의 선호된 기능들을 결정하기 전에, 서버는 클라이언트에 의해 제출된 네트워크 환경 정보를 수신한다. 후속하여, 서버가 사용자의 선호된 기능들의 역할을 하기 위해 사용된 가장 큰 사용 횟수로부터 가장 적은 사용 횟수로의 순서로 지정된 번호의 기능들을 연속적으로 선택할 때, 서버는 클라이언트에 의해 제출된 네트워크 환경 정보에 기초하여 지정된 수 및 지정된 수들에 대해 네트워크 환경 정보의 미리 설정된 맵핑을 결정하고, 사용자들이 각각의 기능을 사용한 가장 큰 횟수로부터 가장 작은 횟수로의 순서로, 사용자의 결정된 선호 기능들의 역할을 하도록 결정된 지정된 수의 기능들을 연속적으로 선택할 수 있다. 몇몇 실시예들에서, 네트워크 환경이 더 불량할수록, 더 적은 수의 대응하는 지정된 수의 기능들이 사용자의 결정된 선호 기능들의 역할을 한다.
예를 들면, 네트워크 환경 정보는 2세대 이동 통신 기술(2G) 네트워크들, 3세대 이동 통신 기술(3G) 네트워크들, 무선 신뢰성(Wi-Fi) 네트워크들을 포함하고, 네트워크 환경 정보의 지정된 수들로의 미리 설정된 맵핑은 다음과 같다: 2G 네트워크들에 대응하는 지정된 수는 3이고, 3G 네트워크들에 대응하는 지정된 수는 6이고, Wi-Fi 네트워크들에 대응하는 지정된 수는 클라이언트에 포함된 모든 패키지들의 수이다. 클라이언트에 의해 제출된 네트워크 환경 정보가 2G 네트워크인 경우, 서버는 2G 네트워크들에 대응하는 지정된 수가 3인 것을 결정한다. 따라서, 각각의 기능이 사용자에 의해 사용된 최대 횟수로부터 최소 횟수로의 순서로, 서버는 사용자의 선호된 기능들의 역할을 하기 위한 세 개의 기능들을 연속적으로 선택한다. 그러나, 클라이언트에 의해 제출된 네트워크 환경 정보가 Wi-Fi 네트워크인 경우, 서버는 클라이언트의 모든 기능들을 사용자의 선호된 기능들로서 사용한다. Wi-Fi 네트워크상에서, 서버는 클라이언트의 갱신을 수행하기 위해 클라이언트에 모든 갱신 패키지들을 릴리즈한다.
몇몇 실시예들에서, 클라이언트에 의해 제출된 네트워크 환경 정보가 지정된 조건을 만족하는 경우, 서버는 또한 갱신될 클라이언트에 아직 릴리즈되지 않은 모든 갱신 패키지들을 클라이언트에 릴리즈한다. 상기 예에 계속하여, 클라이언트가 특정 시간에 갱신 검사를 개시한 후, 서버는 이 클라이언트에 대해 총 10 개의 갱신 패키지들이 존재하고, 클라이언트에 의해 제출된 네트워크 환경 정보는 2G 네트워크에 대응한다는 것을 결정한다. 따라서, 서버는 클라이언트에 세 개의 갱신 패키지들만을 릴리즈하고, 그 후에 클라이언트가 갱신 검사를 다시 개시하고 제출된 네트워크 환경 정보가 지정된 조건을 만족하는 Wi-Fi 네트워크에 대응한 후, 그 후 서버는 갱신을 수행하기 위해 클라이언트에 나머지 7 개의 갱신 패키지들 모두를 릴리즈한다. 다시 말해서, 지정된 조건들은 상이한 속도, 상이한 요금들, 등을 갖는 상이한 네트워킹 환경들에 관한 것이다. 상이한 네트워킹 환경들의 예들은: 1) 2G 환경의 속도가 다른 네트워크들에 비해 느리고 2G 환경의 요금이 다른 네트워크들의 요금들에 비해 높은 것, 2) 3G 환경의 속도가 다른 네트워크들에 비해 빠르고 3G 환경의 요금이 다른 네트워크들에 비해 높은 것, 및 3) Wi-Fi 환경의 속도가 다른 네트워크들에 비해 빠르고 Wi-Fi 환경의 요금이 일반적으로 무료이거나 다른 네트워크들에 비해 매우 낮은 것을 포함한다. 몇몇 실시예들에서, 갱신될 패키지들은 지정된 조건에 기초하여 결정된다.
상기 예는 네트워크 환경 정보 및 지정된 수들 사이의 맵핑을 예시하기 위해 단지 2G 네트워크들, 3G 네트워크들 및 Wi-Fi 네트워크들만을 채용한다. 몇몇 실시예들에서, 네트워크 환경 정보는 또한 다운로드 속도와 같은 다른 네트워크 품질 표시자들을 포함하고, 네트워크 환경 정보와 지정된 수들 사이의 맵핑들은, 선택될 사용자의 지정된 수의 선호된 기능들이 네트워크 환경 정보에 기초하여 결정되는 한, 연속적인 기능 또는 별개의 기능을 사용하여 미리 설정된다. 몇몇 실시예들에서, 연속적인 기능은 실제 조건들에 기초하여 결정된다. 예를 들면, 현재 네트워크 속도가 x k/s인 경우, 2G 환경에서 계수(K)는 1이고, 3G 환경에서 계수(K)는 3이고, Wi-Fi 환경에서 계수(K)는 20이고, 상한 함수는 전체 수를 취하고, 이후 선호된 기능들의 지정된 수(y)는 K*상한(x/100)이다. 몇몇 실시예들에서, 별개의 기능은 실제 조건들에 기초하여 결정된다. 별개의 기능의 일 예는 다음과 같다: 선호된 기능들의 지정된 수(y)는 1(2G 환경), 2(3G 환경), 3(4G 환경), 및 20(Wi-Fi 환경)이다.
250에서, 서버가 상기 프로세스를 사용하여 선호된 패키지들을 결정한 후, 서버는 갱신될 클라이언트에 결정된 선호 패키지들을 직접 릴리즈한다.
그러나, 서버에 의해 릴리즈된 선호된 패키지들의 수신이 네트워크 이유들(예컨대 갑작스러운 네트워크 접속 해제)에 의해 방해받는 경우, 서버는 선호된 패키지들의 송신의 재개를 위한 중단점을 알지 못한다. 따라서, 상기 갱신 검사의 개시는 반복되고, 클라이언트 갱신들의 효율은 크게 감소된다.
도 3은 클라이언트에 선호된 패키지를 릴리즈하기 위한 프로세스의 일 실시예를 도시하는 플로차트이다. 몇몇 실시예들에서, 프로세스(300)는 250의 구현이고, 다음을 포함한다:
310에서, 서버는 결정된 선호된 패키지들의 패키지 식별자들을 갱신 테이블에 추가하고 고유한 테이블 식별자를 갱신 테이블에 할당한다.
320에서, 서버는 클라이언트에 테이블 식별자를 릴리즈한다.
몇몇 실시예들에서, 서버가 선호된 패키지들을 결정한 후, 서버는 이후 결정된 선호된 패키지들 모두의 패키지 식별자들(예를 들면, 패키지 이름들, 패키지 번호들, 등)을 갱신 테이블에 추가하고, 고유한 테이블 식별자(예를 들면, 테이블 ID)를 갱신 테이블에 할당한다. 다음으로, 서버는 클라이언트에 테이블 식별자를 릴리즈한다. 갱신 테이블은 클라이언트의 갱신 플랜에 대응하고, 클라이언트 갱신 플랜은 현재 갱신에서 클라이언트에 의해 사용될 갱신 패키지들을 기록한다(즉, 선호된 패키지들). 서버는 갱신 테이블에 따라 선호된 패키지들을 릴리즈한다(전송한다). 서버가 클라이언트에 갱신된 테이블에 기록된 패키지 식별자에 대응하는 선호된 패키지를 릴리즈하고 클라이언트가 패키지의 성공적인 수신을 수신 확인할 때마다, 서버는 패키지가 성공적으로 전송되고 수신 확인되었는지를 나타내기 위해 릴리즈 태그를 갱신 테이블에 포함된 선호된 패키지의 대응하는 패키지 식별자에 추가한다.
330에서, 서버는 클라이언트에 의한 송신된 테이블 식별자에 대응하는 갱신 테이블에 포함된 패키지들을 요구하는 요청을 수신한다. 요청은 테이블 표시자를 포함한다.
클라이언트가 서버에 의해 송신된 테이블 식별자를 수신한 후, 클라이언트는 테이블 식별자를 저장하고, 서버로부터 테이블 식별자에 대응하는 갱신된 테이블에 포함된 패키지들을 요청하기 위해 이러한 테이블 식별자를 포함하는 요청을 서버로 송신한다.
340에서, 서버는 테이블 식별자에 대응하는 갱신 테이블을 검색한다.
350에서, 서버는 갱신될 클라이언트에 대해 릴리즈 태그가 추가되지 않은 갱신 테이블에 포함된 패키지 식별자들에 대응하는 패키지들을 릴리즈한다.
도 3의 상기 프로세스(300)를 사용하여, 서버가 다수의 선호된 패키지들의 패키지 식별자들을 고유한 테이블 식별자에 대응하는 갱신 테이블에 이미 추가했기 때문에, 선호된 패키지들의 수신이 클라이언트에 의해 방해받더라도, 도 2a의 전체 프로세스(200)는 반복될 필요가 없다. 클라이언트는 테이블 식별자에 대응하는 갱신 테이블의 패키지들을 요구하기 위해 단지 테이블 식별자만을 서버에 재전송한다. 또한, 서버는 이미 성공적으로 릴리즈된 패키지들에 대응하는 패키지 식별자들에 릴리즈 태그를 추가한다. 따라서, 선호된 패키지들의 수신이 클라이언트에 의해 방해받을 때, 서버는, 클라이언트 갱신 효율을 더욱 증가시키기 위해, 단지 릴리즈 태그가 추가된 패키지 식별자들에 대응하는 패키지만을 검색 및 릴리즈하고, 갱신 테이블에 포함된 모든 패키지 식별자들에 대응하는 패키지들을 릴리즈하는 것을 반복하지 않는다.
몇몇 실시예들에서, 클라이언트가 갱신 후 정상적으로 동작할 수 있는 것을 보장하기 위해, 서버는 또한, 결정된 갱신 패키지들 중에서, 종속 패키지들의 역할을 하기 위해 다수의 선호된 패키지들이 의존하는 갱신 패키지들을 결정하고 갱신될 클라이언트에 종속 패키지들을 릴리즈한다.
예를 들면, 서버에 의해 결정된 선호된 패키지들이 신용 카드 지불 패키지 및 공공 요금 지불 패키지이고, 이들 두 개의 패키지들 모두는 패스워드 입력 보안 패키지에 의존한다는 것을 가정하자. 신용 카드 지불 패키지 및 공공 요금 지불 패키지에 추가하여, 결정된 갱신 패키지들은 또한 패스워드 입력 보안 패키지를 포함한다. 예로서, 기능(A)이 기능(B)에 의존하는 경우, 기능(C)은 또한 기능(B)에 의존하고, 기능들(A, B)은 갱신될 것이고, 기능(C)은 또한 갱신될 것이다; 그와 다른 경우, 클라이언트의 소프트웨어가 정상적으로 동작할 수 없다. 몇몇 실시예들에서, 종속 관계는 서버상에 미리 구성된다. 따라서, 단지 신용 카드 지불 및 공공 요금 지불 패키지들이 갱신될 클라이언트에 릴리즈되고, 패스워드 입력 보안 패키지가 갱신될 클라이언트에 릴리즈되지 않는 경우, 클라이언트의 기능들은 갱신 후 정상적으로 동작할 수 없을 수 있다(또는 신용 카드 지불 및 공공 요금 지불 기능들을 정상적으로 제공할 수 없을 수 있다). 따라서, 서버는 또한, 결정된 갱신 패키지들 중에서, 신용 카드 지불 패키지 및 공공 요금 지불 패키지가 의존하는 갱신 패키지들(즉, 패스워드 입력 보안 패키지)을 결정하고, 클라이언트가 갱신 후 정상적으로 동작할 수 있는 것을 보장하게 위해 갱신될 클라이언트에 종속 패키지로서 패스워드 입력 보안 패키지를 릴리즈한다.
물론, 서버가 종속된 패키지를 결정한 후, 종속 패키지는 또한 다른 결정된 갱신 패키지들에 의존할 수 있고(예를 들면, 상기 예에서 패스워드 입력 패키지는 다른 갱신 패키지들에 또한 의존한다), 서버는 종속 패키지가 의존하는 다른 갱신 패키지들을 계속 결정하고, 이들 다른 갱신 패키지들을 종속 패키지들로서 사용하고, 모든 종속 패키지들을 결정하기 위해 동일한 기술을 반복적으로 계속 채용하고, 종속 패키지들을 릴리즈한다.
또한, 몇몇 실시예들에서, 클라이언트에 대해 갱신 패키지들은 특정한 주요 취약성 복구 갱신 패키지들을 포함한다. 이들 취약성 복구 갱신 패키지들은 클라이언트의 정상 동작에 관한 것이고, 따라서 중요도 가중치들이 클라이언트의 각각의 갱신 패키지에 미리 할당된다. 주요 취약성 복구 갱신 패키지들은 더 높은 중요도 가중치들이 할당되고, 반면에 특정 최적화 또는 갱신 패키지들은 더 낮은 중요도 가중치들이 할당된다. 따라서, 결정된 갱신 패키지들로부터, 서버는 또한 필수 갱신 패키지들의 역할을 하는 미리 규정된 임계값보다 큰 중요도 가중치들을 갖는 갱신 패키지들을 결정한다. 다시 말해서, 서버는 필수 갱신 패키지들로서 미리 규정된 임계값보다 큰 중요도 가중치들을 갖는 갱신 패키지들을 사용하고, 갱신될 클라이언트에 필수 갱신 패키지들을 릴리즈한다. 일 예로서, 미리 규정된 임계값은 5이고, 주요 취약성 복구 갱신 패키지에 할당된 특정된 가중치는 10(또는 5보다 큰 값)이고, 주요 최적화 또는 갱신 패키지에 할당된 특정된 가중치는 1(또는 5보다 작은 값)이다. 미리 규정된 임계값이 초과될 때마다, 주요 취약성 복구 갱신 패키지는 갱신될 것이다; 그렇지 않은 경우, 주요 취약성 복구 갱신 패키지는 갱신되지 않는다. 몇몇 실시예들에서, 기능들에 대한 필요한 조정들은 항상 갱신될 것이다.
따라서, 종속 패키지들 및 필수 갱신 패키지들의 릴리즈에 관하여, 서버는 또한 갱신 테이블 기술을 사용하여 종속 패키지들 및 필수 갱신 패키지들을 릴리즈한다. 즉, 서버는 선호된 패키지들, 종속 패키지들, 및 필수 갱신 패키지들의 패키지 식별자들을 갱신 테이블에 추가하고, 고유한 테이블 식별자를 이러한 갱신 테이블에 할당하고, 테이블 식별자를 클라이언트에 릴리즈한다. 몇몇 실시예들에서, 릴리즈 태그는 클라이언트에 대해 이미 릴리즈된 갱신 테이블의 패키지들에 대응하는 패키지 식별자들에 추가된다. 클라이언트에 의해 송신된 테이블 식별자의 수신시, 릴리즈 태그가 갱신된 테이블에 추가된 패키지 식별자들에 대응하는 패키지들이 갱신될 클라이언트에 릴리즈된다.
추가로, 몇몇 실시예들에서, 클라이언트에 대한 갱신 패키지들을 결정한 후, 서버는 또한 클라이언트에 대응하는 사용자가 각각의 기능을 사용한 횟수에 기초하여 각각의 기능이 의존하는 갱신 패키지들에 대해 선호도 가중치들을 결정한다. 기능이 사용된 횟수가 클수록, 기능이 의존하는 갱신 패키지의 선호도 가중치는 커진다. 후속하여, 각각의 갱신 패키지에 대하여, 갱신 패키지의 선호도 가중치 및 중요도 가중치의 총 가중치가 결정된다. 다음으로, 서버는 클라이언트에 의해 제출된 네트워크 환경 정보에 대응하는 지정된 수 및 지정된 수들에 대해 네트워크 환경 정보의 미리 설정된 대응들을 결정한다. 후속하여, 다수의 갱신 패키지들의 최대 총 가중치들로부터 최소 총 가중치들로의 순서로, 서버는 릴리즈될 갱신 패키지들에 포함을 위해 결정된 지정된 수의 갱신 패키지들을 연속적으로 선택하고, 그에 의해 릴리즈될 각각의 패키지가 의존하는 갱신 패키지들이 클라이언트에 대한 갱신 패키지들 중으로부터 반복적으로 결정된다. 종속 패키지들은 또한 릴리즈될 갱신 패키지들로서 포함되고, 릴리즈될 다수의 갱신 패키지들은 갱신될 클라이언트에 릴리즈된다.
상기에 기술된 프로세스들(200, 300)은 클라이언트 갱신 프로세스들이다. 상기 프로세스들(200, 300)에 기초하여, 클라이언트를 갱신하기 위한 디바이스가 도 4에 도시된다.
도 4는 클라이언트를 갱신하기 위한 디바이스의 일 실시예를 도시하는 도면이다. 몇몇 실시예들에서, 디바이스(400)는 프로세스들(200, 300)을 수행하고 갱신 패키지 결정 모듈(410), 선호 기능 결정 모듈(420), 선호 패키지 결정 모듈(430), 및 릴리즈 모듈(440)을 포함한다.
갱신 패키지 결정 모듈(410)은 클라이언트가 갱신되도록 결정이 행해질 때 클라이언트에 대한 갱신 패키지들을 결정한다.
선호 기능 결정 모듈(420)은 클라이언트에 대응하는 사용자의 동작들의 저장된 기록에 기초하여 클라이언트에 의해 제안된 기능들 중에서 사용자의 선호된 기능들을 결정한다.
선호 패키지 결정 모듈(430)은 결정된 갱신 패키지들 중에서 선호된 패키지들의 역할을 하기 위한 사용의 선호된 기능들이 의존하는 갱신 패키지들을 결정한다.
릴리즈 모듈(440)은 갱신될 클라이언트에 결정된 선호 패키지들을 릴리즈한다.
선호 기능 결정 모듈(420)은 클라이언트에 대응하는 사용자의 동작들의 저장된 기록에 기초하여 지정된 시간 범위 내에서 클라이언트에 의해 제안된 각각의 기능을 사용자가 사용한 횟수를 결정하고, 사용자에 대한 결정된 선호 기능들의 역할을 하기 위해 지정된 수의 기능들을 최대 사용 횟수로부터 최소 사용 횟수로의 순서로 연속적으로 선택한다.
몇몇 실시예에서, 디바이스(400)는 수신 모듈(450)을 추가로 포함한다.
선호 기능 결정 모듈(420)이 사용자의 선호 기능들을 결정하기 전에, 수신 모듈(450)은 클라이언트에 의해 제출된 네트워크 환경 정보를 수신한다.
선호 기능 결정 모듈(420)은 수신 모듈(450)에 의해 수신된 클라이언트에 의해 제출된 네트워크 환경 정보에 기초하여 클라이언트에 의해 제출된 네트워크 정보에 대응하는 지정된 수 및 지정된 수들에 대한 네트워크 환경 정보의 미리 설정된 맵핑을 결정하고, 최대 사용 횟수로부터 최소 사용 횟수로의 순서로, 사용자의 결정된 선호 기능들의 역할을 하기 위해 결정된 지정된 수의 기능들을 연속적으로 선택한다.
릴리즈 모듈(440)은 결정된 선호된 패키지들의 패키지 식별자들을 갱신 테이블로 추가하고, 고유한 테이블 식별자를 갱신 테이블에 할당하고, 클라이언트에 대해 테이블 식별자를 릴리즈한다. 몇몇 실시예들에서, 릴리즈 태그는 클라이언트에 대해 이미 릴리즈된 선호된 패키지들의 패키지 식별자들에 추가된다. 클라이언트에 의해 송신된 테이블 식별자의 수신시, 클라이언트에 의해 송신된 테이블 식별자에 대응하는 갱신 테이블이 검색되고, 릴리즈 태그가 추가되는 패키지 식별자들에 대응하는 갱신 테이블에서 발견된 패키지들은 갱신될 클라이언트에 릴리즈된다.
몇몇 실시예들에서, 디바이스는 종속 패키지 결정 모듈(460) 및 필수 패키지 결정 모듈(470)을 추가로 포함한다.
종속 패키지 결정 모듈(460)은, 갱신 패키지들 중에서, 클라이언트에 대한 종속 패키지들의 역할을 하기 위해 선호된 패키지들이 의존하는 갱신 패키지들을 결정한다.
필수 패키지 결정 모듈(470)은, 갱신 패키지들 중에서, 클라이언트에 대한 필수 갱신 패키지들의 역할을 하기 위해 미리 결정된 임계값보다 큰 중요도 가중치를 갖는 갱신 패키지들을 결정한다.
릴리즈 모듈(440)은 갱신될 클라이언트에 대해 결정된 종속 패키지들 및 필수 갱신 패키지들을 릴리즈한다.
몇몇 실시예들에서, 클라이언트를 갱신하기 위한 상기 디바이스는 서버상에 위치된다.
도 5는 클라이언트를 갱신하기 위한 시스템의 일 실시예를 도시하는 도면이다. 몇몇 실시예들에서, 시스템(500)은 네트워크(530)를 통해 클라이언트(510)에 접속된 서버(520)를 포함한다.
몇몇 실시예들에서, 클라이언트(510)는 네트워크(530)를 통해 갱신 검사를 서버(520)로 전송한다. 갱신 검사를 수신하면, 서버(520)는 클라이언트(510)가 갱신될지의 여부를 결정한다. 서버(520)가 클라이언트(510)가 갱신된 것을 결정하는 경우, 서버(520)는 사용자의 선호된 기능들에 기초하여 선호된 패키지들을 포함하는 갱신 패키지를 클라이언트(510)로 전송한다.
클라이언트를 갱신하기 위한 프로세스 및 디바이스가 제공된다. 프로세스는 클라이언트가 갱신되는 것을 결정할 때를 포함하고, 서버는 클라이언트에 대한 갱신 패키지들을 결정하고, 클라이언트에 대해 결정된 갱신 패키지들 중에서 사용자의 선호된 기능들이 의존하는 패키지들을 결정하고, 갱신될 클라이언트에 사용자의 선호된 기능들이 의존하는 패키지들을 릴리즈한다. 따라서, 서버는 클라이언트를 갱신하기 위해 모든 갱신 패키지들을 릴리즈할 것이 요구되지 않는다. 대신, 단지 사용자의 선호된 기능들이 의존하는 패키지들만이 갱신될 것이다. 따라서, 네트워크 자원들은 보존되고 클라이언트를 갱신하는 것의 효율이 증가된다.
상기에 기술된 유닛들은 하나 이상의 범용 프로세서들상에 실행하는 소프트웨어로서, 프로그램 가능한 로직 디바이스들과 같은 하드웨어 및/또는 특정 기능들 또는 그의 조합을 수행하도록 설계된 주문형 집적 회로들로서 구현될 수 있다. 몇몇 실시예들에서, 유닛들은 컴퓨터 디바이스(예컨대, 개인용 컴퓨터들, 서버들, 네트워크 장비, 등)가 본 발명의 실시예들에서 기술된 방법들을 수행하게 하기 위한 다수의 명령들을 포함하는 비휘발성 저장 매체(예컨대, 광 디스크, 플래시 저장 디바이스, 이동 하드 디스크, 등)에 저장될 수 있는 일 형태의 소프트웨어 제품들로서 구현될 수 있다. 유닛들은 단일 디바이스상에 구현될 수 있거나 다수의 디바이스들에 걸쳐 분산될 수 있다. 유닛들의 기능들은 서로 병합될 수 있거나, 또는 다수의 서브-유닛들로 더 분리될 수 있다.
여기에 개시된 실시예들을 고려하여 기술된 방법들 또는 알고리즘 단계들은 하드웨어, 프로세서-실행된 소프트웨어 모듈들, 및 그 둘의 조합들을 사용하여 수행될 수 있다. 소프트웨어 모듈들은 랜덤-액세스 메모리(RAM), 메모리, 판독 전용 메모리(ROM), 전기적으로 프로그램가능한 ROM, 전기적으로 소거가능한 프로그램가능한 ROM, 레지스터들, 하드 드라이브들, 탈착가능한 디스크들, CD-ROM, 또는 기술 분야에서 알려진 임의의 다른 형태들의 저장 매체에 설치될 수 있다.
전술한 실시예들이 이해의 명료성의 목적들을 위해 몇몇 상세로 기술되었지만, 본 발명은 제공된 상세들로 제한되지 않는다. 본 발명을 구현하기 위한 많은 대안적인 방식들이 존재한다. 개시된 실시예들은 예시적이고 제한적인 것이 아니다.
410 : 갱신 패키지 결정 모듈 420 : 선호 기능 결정 모듈
430 : 선호 패키지 결정 모듈 440 : 릴리즈 모듈
450 : 수신 모듈 460 : 종속 패키지 결정 모듈
470 : 필수 패키지 결정 모듈

Claims (15)

  1. 클라이언트를 갱신하기 위한 방법에 있어서,
    상기 클라이언트가 갱신될지의 여부를 결정하는 단계;
    상기 클라이언트가 갱신될 경우, 상기 클라이언트에 대한 갱신 패키지들을 결정하는 단계;
    상기 클라이언트에 대응하는 사용자의 동작들의 저장된 기록에 기초하여 상기 클라이언트에 의해 제안된 기능들 중에서 사용자의 선호된 기능들을 결정하는 단계;
    상기 결정된 갱신 패키지들 중에서, 선호된 패키지들로서의 역할을 하기 위해 사용자의 선호된 기능들이 종속하는 선택적 갱신 패키지들을 결정하는 단계로서,
    상기 선호된 기능들 중 선호된 기능이 정상적으로 작동하기 위해 상기 갱신 패키지들 중 갱신 패키지가 필요한지 여부를 결정하는 단계; 및
    상기 선호된 기능이 정상적으로 작동하기 위해 상기 갱신 패키지가 필요하다고 결정된 경우, 상기 갱신 패키지를 상기 선호된 패키지들에 추가하는 단계;
    를 포함하는, 상기 선택적 갱신 패키지들을 결정하는 단계;
    갱신될 상기 클라이언트에 상기 선호된 패키지들을 릴리즈하는 단계를 포함하는, 클라이언트를 갱신하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 클라이언트에 의해 제안된 기능들 중에서 사용자의 선호된 기능들을 결정하는 단계는:
    상기 클라이언트에 대응하는 사용자의 동작들의 저장된 기록에 기초하여 지정된 시간 범위 내에 상기 클라이언트에 의해 제안된 각각의 기능을 사용자가 사용한 횟수를 결정하는 단계; 및
    사용자의 선호된 기능들의 역할을 하기 위해 최대 사용 횟수로부터 최소 사용 횟수로의 순서대로 지정된 수의 기능들을 연속적으로 선택하는 단계를 포함하는, 클라이언트를 갱신하기 위한 방법.
  3. 제 2 항에 있어서,
    상기 클라이언트에 의해 제안된 기능들 중에서 사용자의 선호된 기능들을 결정하는 단계 전에:
    상기 클라이언트로부터 네트워크 환경 정보를 수신하는 단계를 더 포함하고,
    상기 지정된 수의 기능들을 연속적으로 선택하는 단계는:
    상기 클라이언트로부터 상기 네트워크 환경 정보에 기초한 상기 지정된 수 및 상기 지정된 수들에 대해 네트워크 환경 정보의 미리 설정된 맵핑을 결정하는 단계를 포함하는, 클라이언트를 갱신하기 위한 방법.
  4. 제 1 항에 있어서,
    갱신될 상기 클라이언트에 대해 결정된 선호된 패키지들을 릴리즈하는 단계는:
    상기 결정된 선호된 패키지들의 패키지 식별자들을 갱신 테이블에 추가하는 단계;
    고유한 테이블 식별자를 상기 갱신 테이블에 할당하는 단계;
    상기 클라이언트에 상기 테이블 식별자를 릴리즈하는 단계;
    릴리즈된 태그를 상기 클라이언트에 이미 릴리즈된 상기 갱신 테이블의 상기 선호된 패키지들의 상기 패키지 식별자들에 추가하는 단계;
    상기 클라이언트에 의해 송신된 테이블 식별자가 수신되었는지의 여부를 결정하는 단계; 및
    상기 클라이언트에 의해 송신된 상기 테이블 식별자가 수신된 경우:
    상기 클라이언트에 의해 송신된 상기 테이블 식별자에 대응하는 상기 갱신 테이블을 검색하는 단계와,
    상기 릴리즈된 식별자가 추가되지 않은 패키지 식별자들에 대응하는 패키지들을 갱신될 클라이언트에 릴리즈하는 단계를 포함하는, 클라이언트를 갱신하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 클라이언트에 대해 결정된 갱신 패키지들 중에서, 종속 패키지들로서의 역할을 하기 위해 상기 선호된 패키지들이 종속하는 갱신 패키지들을 결정하는 단계는,
    필수 갱신 패키지들의 역할을 하기 위해 상기 클라이언트에 대해 상기 결정된 갱신 패키지들로부터 미리 결정된 임계값보다 큰 중요도 가중치들을 갖는 갱신 패키지들을 결정하는 단계; 및
    갱신될 상기 클라이언트에 상기 종속 패키지들 및 상기 필수 갱신 패키지들을 릴리즈하는 단계를 포함하는, 클라이언트를 갱신하기 위한 방법.
  6. 클라이언트를 갱신하기 위한 시스템에 있어서,
    적어도 하나의 프로세서로서,
    상기 클라이언트가 갱신될지의 여부를 결정하고;
    상기 클라이언트가 갱신되는 경우, 상기 클라이언트에 대한 갱신 패키지들을 결정하고;
    상기 클라이언트에 대응하는 사용자의 동작들의 저장된 기록에 기초하여 상기 클라이언트에 의해 제안된 기능들 중에서 사용자의 선호된 기능들을 결정하고;
    상기 결정된 갱신 패키지들 중에서, 선호된 패키지들로서의 역할을 하기 위해 사용자의 선호된 기능들이 종속하는 선택적 갱신 패키지들을 결정하는 것으로서,
    선호된 기능들 중 선호된 기능이 정상적으로 작동하기 위해 상기 갱신 패키지들 중 갱신 패키지가 필요한지 여부를 결정하고,
    상기 선호된 기능이 정상적으로 작동하기 위해 상기 갱신 패키지가 필요하다고 결정된 경우, 상기 갱신 패키지를 상기 선호된 패키지들에 추가하는 것을 포함하고;
    갱신될 상기 클라이언트에 상기 선호된 패키지들을 릴리즈하도록 구성된, 상기 적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합되고 상기 적어도 하나의 프로세서에 명령들을 제공하도록 구성된 메모리를 포함하는, 클라이언트를 갱신하기 위한 시스템.
  7. 제 6 항에 있어서,
    상기 클라이언트에 의해 제안된 기능들 중에서 사용자의 선호된 기능들을 결정하는 것은:
    상기 클라이언트에 대응하는 사용자의 동작들의 저장된 기록에 기초하여 지정된 시간 범위 내에서 상기 클라이언트에 의해 제안된 각각의 기능을 사용자가 사용한 횟수들을 결정하는 것, 및
    사용자의 선호된 기능들의 역할을 하기 위해 최대 사용 횟수로부터 최소 사용 횟수로의 순서로 지정된 수의 기능들을 연속적으로 선택하는 것을 포함하는, 클라이언트를 갱신하기 위한 시스템.
  8. 제 7 항에 있어서,
    상기 적어도 하나의 프로세서는 또한:
    상기 클라이언트에 의해 제안된 기능들 중에서 사용자의 선호된 기능을 결정하기 전에:
    상기 클라이언트로부터 네트워크 환경 정보를 수신하도록 구성되고,
    상기 지정된 수의 기능들을 연속적으로 선택하는 것은:
    상기 클라이언트로부터의 상기 네트워크 환경 정보에 기초하여 상기 지정된 수 및 상기 지정된 수들에 대한 상기 네트워크 환경 정보의 미리 설정된 맵핑을 결정하는 것을 포함하는, 클라이언트를 갱신하기 위한 시스템.
  9. 제 6 항에 있어서,
    갱신될 상기 클라이언트에 결정된 선호된 패키지들을 릴리즈하는 것은:
    상기 결정된 선호 패키지들의 패키지 식별자들을 갱신 테이블에 추가하는 것;
    고유한 테이블 식별자를 상기 갱신 테이블에 할당하는 것;
    상기 클라이언트에 상기 테이블 식별자를 릴리즈하는 것;
    상기 클라이언트에 이미 릴리즈된 상기 갱신 테이블의 상기 선호 패키지들의 상기 패키지 식별자들에 릴리즈 태그를 추가하는 것;
    상기 클라이언트에 의해 송신된 테이블 식별자가 수신되었는지의 여부를 결정하는 것; 및
    상기 클라이언트에 의해 송신된 테이블 식별자가 수신된 경우:
    상기 클라이언트에 의해 송신된 상기 테이블 식별자에 대응하는 상기 갱신 테이블을 검색하는 것; 및
    상기 릴리즈된 식별자가 추가되지 않은 패키지 식별자들에 대응하는 패키지들을 갱신될 상기 클라이언트에 릴리즈하는 것을 포함하는, 클라이언트를 갱신하기 위한 시스템.
  10. 제 6 항에 있어서,
    상기 클라이언트에 대해 상기 결정된 갱신 패키지들 중에서, 종속 패키지들의 역할을 하기 위해 상기 선호된 패키지가 종속하는 선택적 갱신 패키지들을 결정하는 것은,
    필수 갱신 패키지들의 역할을 하기 위해 상기 클라이언트에 대해 상기 결정된 갱신 패키지들 중에서 미리 결정된 임계값보다 큰 중요도 가중치들을 갖는 갱신 패키지들을 결정하고;
    갱신될 상기 클라이언트에 상기 종속 패키지들 및 상기 필수 갱신 패키지들을 릴리즈하는 것을 포함하는, 클라이언트를 갱신하기 위한 시스템.
  11. 유형의 비일시적인 컴퓨터 판독가능 저장 매체(tangible non-transitory computer readable storage medium)에서 구현되는 클라이언트를 갱신하기 위한 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 기록 매체에 있어서,
    상기 클라이언트가 갱신될지의 여부를 결정하고,
    상기 클라이언트가 갱신될 경우, 상기 클라이언트에 대한 갱신 패키지들을 결정하고;
    상기 클라이언트에 대응하는 사용자의 동작들의 저장된 기록에 기초하여 상기 클라이언트에 의해 제안된 기능들 중에서 사용자의 선호된 기능들을 결정하고;
    상기 결정된 갱신 패키지들 중에서, 선호된 패키지들로서의 역할을 하기 위해 사용자의 선호된 기능들이 종속하는 선택적 갱신 패키지들을 결정하는 것으로서,
    선호된 기능들 중 선호된 기능이 정상적으로 작동하기 위해 상기 갱신 패키지들 중 갱신 패키지가 필요한지 여부를 결정하고,
    상기 선호된 기능이 정상적으로 작동하기 위해 상기 갱신 패키지가 필요하다고 결정된 경우, 상기 갱신 패키지를 상기 선호된 패키지들에 추가하는 것을 포함하고;
    갱신될 상기 클라이언트에 상기 선호된 패키지들을 릴리즈하기 위한 컴퓨터 명령들을 포함하는, 클라이언트를 갱신하기 위한 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 기록 매체.
  12. 제 11 항에 있어서,
    상기 클라이언트에 의해 제안된 기능들 중에서 사용자의 선호된 기능들을 결정하는 것은:
    상기 클라이언트에 대응하는 사용자의 동작들의 저장된 기록에 기초하여 지정된 시간 범위 내에서 상기 클라이언트에 의해 제안된 각각의 기능을 사용자가 사용한 횟수를 결정하는 것; 및
    사용자의 선호된 기능들의 역할을 하기 위해, 최대 사용 횟수로부터 최소 사용 횟수로의 순서로 지정된 수의 기능들을 연속적으로 선택하는 것을 포함하는, 클라이언트를 갱신하기 위한 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 기록 매체.
  13. 제 12 항에 있어서,
    상기 클라이언트에 의해 제안된 상기 기능들 중에서 사용자의 선호된 기능들을 결정하기 전에:
    상기 클라이언트로부터 네트워크 환경 정보를 수신하는 것을 더 포함하고,
    상기 지정된 수의 기능들을 연속적으로 선택하는 것은:
    상기 클라이언트로부터의 상기 네트워크 환경 정보에 기초하여 상기 지정된 수 및 상기 네트워크 환경 정보의 지정된 수들로의 미리 설정된 맵핑을 결정하는 것을 포함하는, 클라이언트를 갱신하기 위한 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 기록 매체.
  14. 제 11 항에 있어서,
    갱신될 상기 클라이언트에 결정된 선호된 패키지들을 릴리즈하는 것은:
    상기 결정된 선호된 패키지들의 패키지 식별자들을 갱신 테이블에 추가하는 것;
    고유한 테이블 식별자를 상기 갱신 테이블에 할당하는 것;
    상기 클라이언트에 상기 테이블 식별자를 릴리즈하는 것;
    상기 클라이언트에 이미 릴리즈된 상기 갱신 테이블의 상기 선호된 패키지들의 상기 패키지 식별자들에 릴리즈된 태그를 추가하는 것;
    상기 클라이언트에 의해 송신된 테이블 식별자가 수신되었는지의 여부를 결정하는 것; 및
    상기 클라이언트에 의해 송신된 테이블 식별자가 수신된 경우:
    상기 클라이언트에 의해 송신된 상기 테이블 식별자에 대응하는 상기 갱신 테이블을 검색하는 것; 및
    상기 릴리즈된 식별자가 추가되지 않은 패키지 식별자들에 대응하는 패키지들을 갱신될 상기 클라이언트에 릴리즈하는 것을 포함하는, 클라이언트를 갱신하기 위한 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 기록 매체.
  15. 제 11 항에 있어서,
    상기 클라이언트에 대해 상기 결정된 갱신 패키지들 중에서, 종속 패키지들로서의 역할을 하기 위해 상기 선호된 패키지들이 종속하는 선택적 갱신 패키지들을 결정하는 것은,
    필수 갱신 패키지의 역할을 하기 위해 상기 클라이언트에 대해 상기 결정된 갱신 패키지들 중에서 미리 결정된 임계값보다 큰 중요도 가중치들을 갖는 갱신 패키지들을 결정하는 것; 및
    갱신될 상기 클라이언트에 상기 종속 패키지 및 상기 필수 갱신 패키지들을 릴리즈하는 것을 포함하는, 클라이언트를 갱신하기 위한 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 기록 매체.
KR1020157026179A 2013-04-22 2014-04-11 클라이언트를 갱신하기 위한 방법 및 디바이스 KR101781339B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201310141479.6A CN104113576A (zh) 2013-04-22 2013-04-22 一种客户端的更新方法及装置
CN201310141479.6 2013-04-22
US14/250,236 2014-04-10
US14/250,236 US9699028B2 (en) 2013-04-22 2014-04-10 Method and device for updating client
PCT/US2014/033809 WO2014176048A1 (en) 2013-04-22 2014-04-11 Method and device for updating client

Publications (2)

Publication Number Publication Date
KR20150119949A KR20150119949A (ko) 2015-10-26
KR101781339B1 true KR101781339B1 (ko) 2017-10-23

Family

ID=51710209

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157026179A KR101781339B1 (ko) 2013-04-22 2014-04-11 클라이언트를 갱신하기 위한 방법 및 디바이스

Country Status (8)

Country Link
US (2) US9699028B2 (ko)
EP (1) EP2989543B1 (ko)
JP (2) JP6132973B2 (ko)
KR (1) KR101781339B1 (ko)
CN (1) CN104113576A (ko)
HK (1) HK1201390A1 (ko)
TW (1) TWI622933B (ko)
WO (1) WO2014176048A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2875850C (en) * 2014-12-23 2022-07-05 Steve Cooper Version synchronization of dependent components
CN104579768B (zh) * 2014-12-29 2018-12-18 广州酷狗计算机科技有限公司 客户端升级方法和装置
CN105988841A (zh) * 2015-02-12 2016-10-05 广东欧珀移动通信有限公司 一种应用程序的更新方法及移动终端
US9792110B2 (en) * 2015-12-21 2017-10-17 International Business Machines Corporation Automatic online system upgrade
CN105843642A (zh) * 2016-03-21 2016-08-10 青岛海信移动通信技术股份有限公司 终端的升级方法、终端升级控制方法、终端及服务器
CN106445610A (zh) * 2016-10-08 2017-02-22 乐视控股(北京)有限公司 一种应用程序处理方法及装置
CN106959916B (zh) * 2017-02-28 2022-11-04 腾讯科技(深圳)有限公司 客户端留存影响检测方法和装置
CN108536694A (zh) * 2017-03-02 2018-09-14 广州市动景计算机科技有限公司 用户偏好的推测方法、装置和终端设备
CN106933630B (zh) * 2017-03-09 2020-07-31 百度在线网络技术(北京)有限公司 一种客户端升级方法、装置、设备及存储介质
CN109388423A (zh) * 2017-08-03 2019-02-26 合网络技术(北京)有限公司 软件升级方法及装置
CN107835301A (zh) * 2017-10-20 2018-03-23 上海青橙实业有限公司 一种添加辅助功能的方法和装置
CN108008966B (zh) * 2017-12-04 2020-11-03 浪潮通用软件有限公司 一种资源更新方法和***
JP7259432B2 (ja) * 2019-03-18 2023-04-18 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US11361354B2 (en) * 2020-04-27 2022-06-14 Swiftly Systems, Inc. Method, computer-readable non-transitory storage media, and system for distributing and updating product catalogs to wireless devices
CN115357280A (zh) * 2022-08-09 2022-11-18 湖南木屋网络科技有限公司 软件版本管理方法、装置、服务器及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271387A (ja) * 2002-03-12 2003-09-26 Mitsubishi Denki Information Technology Corp ダウンロード方法、ダウンロードシステム
JP2010079546A (ja) * 2008-09-25 2010-04-08 Hitachi Software Eng Co Ltd プログラム配信更新システム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370825B2 (en) * 2003-10-22 2013-02-05 Hewlett-Packard Development Company, L.P. Program-update prioritization according to program-usage tracking
JP2005157509A (ja) 2003-11-21 2005-06-16 Hitachi Ltd 通信端末
US7814473B2 (en) * 2004-10-27 2010-10-12 Oracle International Corporation Feature usage based target patching
JP4792744B2 (ja) 2004-12-24 2011-10-12 富士ゼロックス株式会社 画像処理装置
US20060168578A1 (en) 2005-01-21 2006-07-27 U-Turn Media Corporation Methods and systems for managing a mobile client in a client-server system connected via a public network
JP2006331394A (ja) * 2005-04-25 2006-12-07 Ricoh Co Ltd プログラムバージョン管理方法、プログラム及び印刷システム
US20080227440A1 (en) 2007-03-16 2008-09-18 Vinay Kumar Chowdary Settepalli Methods and apparatus for discovering and updating a mobile device via user behavior
US20100107150A1 (en) 2007-03-20 2010-04-29 Tomihisa Kamada Terminal having application update managing function, and application update managing program and system
JP5293595B2 (ja) * 2007-03-20 2013-09-18 富士通株式会社 コンピュータプログラム、更新システム、及びプログラム実行装置
JP2009193444A (ja) * 2008-02-15 2009-08-27 Fuji Xerox Co Ltd ソフトウェア更新システムおよび管理装置および端末
US9600261B2 (en) 2008-03-25 2017-03-21 Qualcomm Incorporated Apparatus and methods for widget update scheduling
CN102006449B (zh) * 2009-09-01 2013-01-30 株式会社理光 图像信息交互***及图像信息交互方法
JP5293522B2 (ja) * 2009-09-14 2013-09-18 株式会社リコー 管理システム、管理方法、及び管理プログラム
JP5295079B2 (ja) 2009-11-17 2013-09-18 三菱電機株式会社 プログラムダウンロード装置及びプログラムダウンロード方法
US20110289499A1 (en) 2010-05-19 2011-11-24 Microsoft Corporation Techniques to automatically update software applications
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
US9197720B2 (en) * 2011-12-07 2015-11-24 Yahoo! Inc. Deployment and hosting of platform independent applications
US9292299B2 (en) * 2012-10-16 2016-03-22 Yahoo! Inc. Methods and systems for package management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271387A (ja) * 2002-03-12 2003-09-26 Mitsubishi Denki Information Technology Corp ダウンロード方法、ダウンロードシステム
JP2010079546A (ja) * 2008-09-25 2010-04-08 Hitachi Software Eng Co Ltd プログラム配信更新システム

Also Published As

Publication number Publication date
JP2016515745A (ja) 2016-05-30
EP2989543A1 (en) 2016-03-02
US20170264482A1 (en) 2017-09-14
JP6441404B2 (ja) 2018-12-19
CN104113576A (zh) 2014-10-22
HK1201390A1 (en) 2015-08-28
KR20150119949A (ko) 2015-10-26
JP2017152026A (ja) 2017-08-31
US10225145B2 (en) 2019-03-05
TW201441934A (zh) 2014-11-01
JP6132973B2 (ja) 2017-05-24
WO2014176048A1 (en) 2014-10-30
US20140317174A1 (en) 2014-10-23
EP2989543B1 (en) 2023-06-07
US9699028B2 (en) 2017-07-04
TWI622933B (zh) 2018-05-01

Similar Documents

Publication Publication Date Title
KR101781339B1 (ko) 클라이언트를 갱신하기 위한 방법 및 디바이스
AU2014235793B2 (en) Automatic tuning of virtual data center resource utilization policies
CN107832329B (zh) 页面资源获取方法及终端设备
EP3554009A1 (en) Method and device for service deployment
CN108762911A (zh) 定时任务管理方法、装置、计算机设备及存储介质
US20160117211A1 (en) Error troubleshooting using a correlated knowledge base
US20170185454A1 (en) Method and Electronic Device for Determining Resource Consumption of Task
CN109327490B (zh) 一种部署云服务组件的方法和服务器
CN110149409B (zh) 云主机元数据服务管理方法、***、设备及存储介质
CN106775936B (zh) 一种虚拟机的管理方法及装置
CN104866339A (zh) Fota数据的分布式持久化管理方法、***和装置
CN105573733B (zh) 浏览器与web前端通信的方法、web前端及***
US10560385B2 (en) Method and system for controlling network data traffic in a hierarchical system
US10708378B2 (en) Data processing method and apparatus, server, and controller
US10642585B1 (en) Enhancing API service schemes
CN111641563B (zh) 基于分布式场景的流量自适应方法与***
US8584146B1 (en) Communications driver management
US9639398B1 (en) Burst throttling with sequential operation detection
CN111149325A (zh) 用于选择区块链事务的事务选择设备
US20100036892A1 (en) Determination of an updated data source from disparate data sources
CN102769625A (zh) 客户端Cookie信息获取方法和装置
CN105184559B (zh) 一种支付***及方法
US20170223136A1 (en) Any Web Page Reporting and Capture
JP6100384B2 (ja) 情報処理システム、サーバ装置、情報処理方法及びプログラム
CN114172998B (zh) 一种文件传输方法、装置、电子设备及存储介质

Legal Events

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