KR20140122072A - 전자 장치에서 어플리케이션을 업데이트하기 위한 장치 및 방법 - Google Patents

전자 장치에서 어플리케이션을 업데이트하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20140122072A
KR20140122072A KR1020130038678A KR20130038678A KR20140122072A KR 20140122072 A KR20140122072 A KR 20140122072A KR 1020130038678 A KR1020130038678 A KR 1020130038678A KR 20130038678 A KR20130038678 A KR 20130038678A KR 20140122072 A KR20140122072 A KR 20140122072A
Authority
KR
South Korea
Prior art keywords
update
application
notification
electronic device
priority
Prior art date
Application number
KR1020130038678A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020130038678A priority Critical patent/KR20140122072A/ko
Priority to PCT/KR2014/002862 priority patent/WO2014168375A1/en
Priority to US14/249,200 priority patent/US20140304700A1/en
Publication of KR20140122072A publication Critical patent/KR20140122072A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 전자 장치에서 어플리케이션(application) 업데이트(update)에 대한 것으로, 상기 전자 장치에 설치된 어플리케이션을 업데이트하는 방법은, 어플리케이션에 대한 업데이트가 필요함을 알리는 업데이트 통지(update notification)를 차단(intercept)하는 과정과, 업데이트 정책에 따른 업데이트 조건이 만족되는지 여부를 판단하는 과정과, 상기 업데이트 조건이 만족되지 아니하면, 다음 판단 시점까지 상기 업데이트 통지의 전달을 지연시키는 과정을 포함한다.

Description

전자 장치에서 어플리케이션을 업데이트하기 위한 장치 및 방법{APPARATUS AND METHOD FOR UPDATING APPLICATION IN ELECTRONIC DEVICE}
본 발명은 전자 장치에서 설치된 어플리케이션의 업데이트에 관한 것이다.
최근 널리 보급되고 있는 스마트 폰(smart phone)과 같은 전자 장치의 경우, 사용자는 다양한 형태의 어플리케이션(application)을 설치할 수 있다. 일반적으로, 전자 장치에 상기 사용자가 어플리케이션을 쉽게 설치할 수 있도록, 사용자에게 어플리케이션 스토어(store)가 제공되고, 상기 어플리케이션 스토어를 접근하기 위한 별도의 마켓플레이스(market place) 어플리케이션도 제공된다. 이에 따라, 상기 전자 장치는 다수의 어플리케이션 스토어들에 접근할 수 있고, 각 어플리케이션 스토어를 위한 다수의 마켓플레이스 어플리케이션이 상기 전자 장치에 설치될 수 있다.
어플리케이션 설치 후, 해당 어플리케이션의 개발자 또는 공급자가 개선된 어플리케이션을 출시하면, 각 어플리케이션은 전자 장치에 무선으로 업데이트될 수 있다. 어플리케이션 업데이트는 사용자의 직접적인 명령에 의해 선택적으로 수행되거나, 또는, 설정에 따라서 자동으로 수행될 수 있다. 자동 어플리케이션 업데이트의 경우, 상기 개발자 또는 상기 공급자가 개선된 어플리케이션을 서버(server)에 업로드하면, 상기 서버는 어플리케이션이 업데이트되어야함을 상기 전자 장치에 설치된 상기 마켓플레이스 어플리케이션에게 푸시 통지(Push Notification)로 알리고, 상기 마켓플레이스 어플리케이션은 상기 서버에 접속하여 해당 어플리케이션을 업데이트한다. 수동 어플리케이션 업데이트의 경우, 상기 개발자 또는 상기 공급자가 개선된 어플리케이션을 상기 서버에 업로드하면, 상기 서버는 상기 어플리케이션이 업데이트 되어야함을 상기 전자 장치의 상기 마켓플레이스 어플리케이션에게 푸시 통지로 알리고, 사용자는 업데이트 여부를 판단한다. 상기 사용자가 업데이트를 수행함을 선택하면, 상기 마켓플레이스 어플리케이션은 상기 서버에 접속하여 해당 어플리케이션을 업데이트한다. 또는, 해당 어플리케이션이, 별도의 관리 어플리케이션을 통하지 않고, 직접 서버로부터의 푸시 통지을 수신한 후, 상기 서버에 접속하여 업데이트 할 수 있다.
사용자는 전자 장치의 사용 편의를 위해 다수의 어플리케이션들을 설치하여 있고, 상기 전자 장치에 설치된 어플리케이션의 개수가 증가함에 따라, 상기 전자 장치의 어플리케이션 업데이트 횟수도 증가는 추세이다. 일반적으로, 어플리케이션 업데이트는 많은 양의 무선 트래픽(traffic) 송수신을 필요로 한다. 따라서, 상기 전자 장치는 데이터 송수신을 위해 많은 양의 배터리를 소모하게 된다. 상기 전자 장치는 많은 시간 동안 배터리(battery)에서 전원을 공급받아서 동작하기 때문에, 상기 배터리를 이용해서 얼마나 오래 동작할 수 있는지는 전자 장치의 주요 성능 지표가 된다. 따라서, 상기 어플리케이션 업데이트를 위해 소비하는 배터리 소모를 최소화함으로써, 상기 전자 장치의 배터리 수명(Battery Lifetime)을 증가시키기 위한 대안이 제시되어야 한다.
따라서, 본 발명의 일 실시 예는 전자 장치에서 어플리케이션 업데이트로 인한 배터리 소모를 감소시키기 위한 장치 및 방법을 제공한다.
본 발명의 또 다른 실시 예는 전자 장치에서 상기 전자 장치의 상태를 고려하여 어플리케이션 업데이트를 수행하기 위한 장치 및 방법을 제공한다.
본 발명의 또 다른 실시 예는 전자 장치에서 미리 정의된 조건이 만족하는 경우에만 어플리케이션 업데이트를 수행하기 위한 장치 및 방법을 제공한다.
본 발명의 또 다른 실시 예는 전자 장치에서 어플리케이션 업데이트를 알리는 푸시 통지(Push Notification)를 지연시키기 위한 장치 및 방법을 제공한다.
본 발명의 실시 예에 따른 전자 장치에 설치된 어플리케이션(application)을 업데이트(update)하는 방법은, 어플리케이션에 대한 업데이트가 필요함을 알리는 업데이트 통지(update notification)를 차단(intercept)하는 과정과, 업데이트 정책에 따른 업데이트 조건이 만족되는지 여부를 판단하는 과정과, 상기 업데이트 조건이 만족되지 아니하면, 다음 판단 시점까지 상기 업데이트 통지의 전달을 지연시키는 과정을 포함하는 것을 특징으로 한다.
본 발명의 다른 실시 예에 따른 전자 장치에 설치된 어플리케이션(application)을 업데이트(update)하는 장치는, 어플리케이션의 업데이트 시점을 제어하기 위한 업데이트 정책을 저장하는 메모리와, 어플리케이션에 대한 업데이트가 필요함을 알리는 업데이트 통지(update notification)를 차단(intercept)하고, 업데이트 정책에 따른 업데이트 조건이 만족되는지 여부를 판단하고, 상기 업데이트 조건이 만족되지 아니하면, 다음 판단 시점까지 상기 업데이트 통지의 전달을 지연시키는 프로세서를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 실시 예에 따른 전자 장치는, 적어도 소프트웨어 모듈을 저장하는 메모리와, 상기 메모리에 저장된 상기 적어도 하나의 소프트웨어 모듈을 실행할 수 있는 프로세서를 포함하며, 상기 적어도 하나의 소프트웨어 모듈은, 어플리케이션에 대한 업데이트가 필요함을 알리는 업데이트 통지(update notification)를 차단(intercept)하고, 업데이트 정책에 따른 업데이트 조건이 만족되는지 여부를 판단하고, 상기 업데이트 조건이 만족되지 아니하면, 다음 판단 시점까지 상기 업데이트 통지의 전달을 지연시키는 적어도 하나의 명령어 집합을 포함하는 것을 특징으로 한다.
전자 장치에 설치된 어플리케이션을 업데이트하는 경우, 전자 장치의 플랫폼(platform), OS(Operating System) 또는 미들웨어(Middleware) 상에서 시스템 전체에서 어플리케이션 업데이트를 위한 기능을 제어함으로써, 효율적으로 어플리케이션 업데이트를 제어할 수 있고, 그 결과, 전자 장치의 배터리 수명(Battery Lifetime)을 증가시킬 수 있다. 나아가, 업데이트의 우선순위 및 어플리케이션의 우선순위에 따라 업데이트를 제공함으로써, 사용자 UX(User eXperience) 및 배터리 수명을 고려한 어플리케이션 업데이트가 가능하다.
도 1은 본 발명의 실시 예에 따른 전자 장치 및 어플리케이션을 제공하는 서버의 블록 구성을 도시하는 도면,
도 2는 본 발명의 실시 예에 따른 전자 장치의 업데이트 제어부의 블록 구성을 도시하는 도면,
도 3a 내지 도 3c는 본 발명의 실시 예에 따른 전자 장치에서 업데이트 정책 설정을 위한 UI(User Interface)들의 예들을 도시하는 도면,
도 4는 본 발명의 실시 예에 따른 전자 장치에서 마켓플레이스 어플리케이션들 및 푸시 클라이언트들과 업데이트 제어부의 관계를 도시하는 도면,
도 5는 본 발명의 다른 실시 예에 따른 전자 장치 및 어플리케이션을 제공하는 서버의 블록 구성을 도시하는 도면,
도 6은 본 발명의 실시 예에 따른 전자 장치에서 업데이트 정책 설정을 위한 UI의 예를 도시하는 도면,
도 7은 본 발명의 또 다른 실시 예에 따른 전자 장치 및 어플리케이션을 제공하는 서버의 블록 구성을 도시하는 도면,
도 8은 본 발명의 또 다른 실시 예에 따른 서버의 업데이트 제어부의 블록 구성을 도시하는 도면,
도 9는 본 발명의 또 다른 실시 예에 따른 전자 장치의 업데이트 제어 에이전트의 블록 구성을 도시하는 도면,
도 10은 본 발명의 실시 예에 따른 전자 장치 또는 서버에 포함되는 업데이트 제어부의 동작 절차를 도시하는 도면,
도 11은 본 발명의 실시 예에 따른 전자 장치에 포함되는 업데이트 제어 에이전트의 동작 절차를 도시하는 도면,
도 12는 본 발명의 실시 예에 따른 전자 장치의 블록 구성을 도시하는 도면,
도 13은 본 발명의 실시 예에 따른 서버의 블록 구성을 도시하는 도면.
이하 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하 본 발명은 전자 장치에서 어플리케이션(application) 업데이트(update)로 인한 배터리 소모를 감소시키기 위한 장치 및 방법을 제공한다.
본 발명에서, 상기 전자 장치는 휴대용 전자 장치(portable electronic device)일 수 있으며, 스마트폰(smart phone), 휴대용 단말기(portable terminal), 이동 전화(mobile phone), 이동 패드(mobile pad), 미디어 플레이어(media player), 태블릿 컴퓨터(tablet computer), 핸드헬드 컴퓨터(handheld computer) 또는 PDA(Personal Digital Assistant) 중 하나일 수 있다. 또한, 상기 전자 장치는 상술한 장치들 중 둘 이상의 기능들을 결합한 장치일 수 있다.
일반적으로, 어플리케이션 업데이트를 위한 데이터는 큰 크기를 가지지만, 긴급하지 않은, 즉, 지연에 민감하지 아니한(delay-tolerant) 트래픽이다. 따라서, 본 발명은, 전자 장치에서 어플리케이션 업데이트 시, 사용자의 UX(User eXperience)에 영향 없이, 지능적으로 어플리케이션 업데이트를 제어하는 기능을 제공함으로써, 상기 전자 장치의 배터리 수명(battery lifetime)을 늘이기 위한 기술을 제안한다.
나아가, 본 발명은, 상기 전자 장치가 배터리로 동작하더라도, 사용자가 자주 사용하거나, 혹은 사용자 설정에 의해서 어플리케이션 우선순위에 따라 업데이트를 제어하거나, 보안상의 이유 등으로 반드시 업데이트가 되어야하는 경우는 배터리 소모에 상관없이 업데이트를 수행하는 등 우선순위에 기반한 업데이트 기법을 제안한다.
또한, 본 발명은 전자 장치의 플랫폼(platform)에서 지능적 어플리케이션 업데이트 제어 기능을 제공하여, 전자 장치 전체에서 효율적인 배터리 소모 감소에 관한 방안을 제안한다.
상술한 바와 같은 어플리케이션 업데이트 제어 기능은, 사용자가 사용하는 전자 장치에 포함되거나, 어플리케이션을 제공하는 서버에 포함되거나, 상기 전자 장치 및 상기 서버 모두에 포함될 수 있다.
상기 어플리케이션 업데이트 제어 기능이 상기 전자 장치에 포함되는 경우, 상기 전자 장치 및 상기 서버는 하기 도 1과 같다. 도 1은 본 발명의 실시 예에 따른 전자 장치 및 어플리케이션을 제공하는 서버의 블록 구성을 도시하고 있다.
상기 도 1을 참고하면, 전자 장치(110) 및 서버(120)는 통신망(130)을 통해 데이터를 송수신한다. 상기 통신망(130)은 3G(3rd Generation) 망, LTE(Long Term Evolution) 망, WiFi(Wireless Fidelity) 등이 될 수 있다. 전자 장치(110)는 푸시 클라이언트(push client)(112), 업데이트 제어부(114), 마켓플레이스 어플리케이션(116)을 포함한다. 그리고, 상기 서버(120)는 마켓플레이스 서버(122), 푸시 서버(126)를 포함한다.
상기 마켓플레이스 서버(122)는 상기 전자 장치(110)로 제공될 어플리케이션들을 저장, 관리한다. 또한, 어플리케이션의 제공이 요청되면, 상기 마켓플레이스 서버(122)는 요청된 어플리케이션을 해당 전자 장치로 상기 통신망(130)을 통해 송신한다. 상기 푸시 서버(226)는 상기 마켓플레이스 서버(122)에 등록된 어플리케이션을 설치한 상기 전자 장치(110)로 업데이트를 알리는 업데이트 통지를 송신한다. 예를 들어, 상기 마켓플레이스 서버(122)에 등록된 어플리케이션의 개선된 어플리케이션이 새로이 등록되면, 상기 푸시 서버(126)는 상기 어플리케이션을 설치한 적어도 하나의 전자 장치로 상기 통신망(130)을 통해 상기 업데이트 통지를 송신한다.
상기 푸시 클라이언트(112)는 상기 푸시 서버(126)로부터 송신된 상기 업데이트 통지를 수신한다. 그리고, 상기 푸시 클라이언트(112)는 상기 업데이트 통지를 상기 업데이트 제어부(114)로 제공한다. 단, 구체적인 실시 예에 따라, 상기 푸시 클라이언트(112)는 상기 업데이트 통지를 상기 마켓플레이스 어플리케이션(116)으로 전달하는 것으로 인지할 수 있다. 즉, 상기 업데이트 제어부(114)는 상기 푸시 클라이언트(112)에서 상기 마켓플레이스 어플리케이션(116)으로 전달되는 상기 업데이트 통지를 차단(intercept)할 수 있다.
상기 업데이트 제어부(114)는 상기 푸시 클라이언트(112)에서 출력되는 상기 업데이트 통지를 확인하고, 상기 업데이트 통지가 상기 마켓플레이스 어플리케이션(116)으로 전달되는 것을 차단한다. 즉, 상기 업데이트 제어부(114)는 상기 업데이트 통지를 지연시킨다. 그리고, 상기 업데이트 제어부(114)는 미리 정의된 조건이 만족하는 때, 상기 업데이트 통지를 상기 상기 마켓플레이스 어플리케이션(116)으로 전달한다. 구체적으로, 상기 업데이트 제어부(114)는 어플리케이션 업데이트를 위해 상기 마켓플레이스 어플리케이션(116)으로 전달되는 상기 업데이트 통지를 푸시 통지의 우선순위, 어플리케이션의 우선순위, 상기 전자 장치(110)의 전력 상태, 전자 장치의 연결 상태 중 적어도 하나에 기초하여 제어함으로써, 업데이트가 수행되는 시점을 제어한다. 상기 업데이트 제어부(114)의 상세한 구성 및 동작은 이하 도 2를 참고하여 설명된다.
상기 마켓플레이스 어플리케이션(116)은 상기 업데이트 통지를 수신하고, 상기 업데이트 통지에 의해 식별되는 기 설치된 어플리케이션을 업데이트한다. 이를 위해, 상기 마켓플레이스 어플리케이션(116)은 상기 통신망(130)을 통해 상기 마켓플레이스 서버(122)로 개선된 어플리케이션을 요청하고, 상기 개선된 어플리케이션을 설치함으로서, 상기 어플리케이션을 업데이트한다. 이때, 본 발명의 실시 예에 따라, 상기 마켓플레이스 어플리케이션(116)은 다수의 통신 망들을 통한 다중 연결(예: LTE 및 WiFi)을 동시에 이용하여 상기 어플리케이션의 업데이트를 위한 데이터를 수신함으로서, 빠른 업데이트를 수행할 수 있다.
도 2는 본 발명의 실시 예에 따른 전자 장치의 업데이트 제어부의 블록 구성을 도시하고 있다.
상기 도 2를 참고하면, 상기 업데이트 제어부(114)는 업데이트 정책 관리자(202), 업데이트 정책 설정 UI(User Interface)(204), 전력 정보 관리자(206), 연결 정보 관리자(208), 업데이트 통지 인터셉터(210), 푸시 통지 큐(212), 지연 스케줄러(214)를 포함한다.
상기 업데이트 정책 관리자(202)는 상기 업데이트 정책 설정 UI(204)에서 입력된 업데이트 정책 관련 정보를 관리한다. 상기 업데이트 정책 관련 정보는 업데이트 정책 및 상기 업데이트 정책에 따른 조건 만족 여부를 판단하는 기초 정보를 포함한다. 상기 업데이트 정책은 상기 업데이트 수행 여부를 판단하는 조건들의 집합이며, 상기 기초 정보는 상기 조건의 평가 대상의 상태를 의미한다. 예를 들어, 상기 기초 정보는 어플리케이션 우선순위, 전력 상태, 연결 상태 중 적어도 하나를 포함할 수 있다. 또한, 상기 업데이트 정책은 업데이트가 허용되는 어플리케이션의 우선순위 범위, 업데이트가 허용되는 전원 종류(예: AC(Alternating Current) 충전, USB(Universal Serial Bus) 충전, 배터리), 업데이트가 허용되는 배터리 레벨(level), 업데이트가 허용되는 연결 종류, 업데이트가 허용되는 연결의 신호 품질 중 적어도 하나를 정의한다. 상기 어플리케이션 우선순위는 업데이트 해야 하는 어플리케이션의 우선순위를 의미한다. 예를 들어, 사용자가 자주 사용하는 어플리케이션이 높은 우선순위를 부여받을 수 있다. 다른 예로, 상기 어플리케이션의 우선순위는 사용자에 의해 직접 설정될 수 있다. 상기 전력 상태는 상기 전자 장치의 배터리 사용 여부, 배터리 사용시 레벨, AC 충전, USB 충전 등으로 분류될 수 있다. 상기 연결 상태는 상기 전자 장치가 접속한 연결의 종류(예: WiFi, 3G, LTE 등), 신호 세기 등을 의미한다.
상기 업데이트 정책 설정 UI(204)는 사용자가 업데이트 정책을 설정할 수 있는 UI를 제공하고, 상기 사용자에 의해 입력된 정보를 상기 업데이트 정책 관리자(202)에 전달한다.
예를 들어, 상기 업데이트 정책 설정 UI(204)는 어플리케이션의 우선순위에 기초한 업데이트 정책을 설정하기 위한 UI를 제공할 수 있다. 예를 들어, 상기 UI는, 도 3a에 도시된 바와 같이, 우선순위 자동 설정 여부를 선택하는 항목(311), 우선순위가 자동이 아닌 경우 우선순위에 따른 업데이트 여부를 직접 설정하는 항목(312), 어플리케이션 별 우선순위를 지정하는 항목(313)을 포함할 수 있다. 상기 UI를 통해, 사용자는 어플리케이션의 우선순위의 결정 방식을 자동 및 수동 중 하나로 설정할 수 있다. 상기 '자동'의 경우, 미리 정의된 규칙에 따라 어플리케이션의 우선순위가 결정된다. 예를 들어, 자주 사용하는 어플리케이션은 바로 업데이트되도록 높은 우선순위를 부여받을 수 있다. 상기 '수동'의 경우, 사용자의 지정에 의해 어플리케이션의 우선순위가 결정된다. 구체적으로, 우선순위가 수동으로 설정되고, "높음(High)"으로 설정되면, '높음'의 우선순위를 부여받은 어플리케이션은 다른 조건들에 무관하게 업데이트가 이루어질 수 있다. "중간(Middle)" 또는 "낮음(Low)"의 우선순위를 부여받은 어플리케이션은 다른 조건들이 만족될 때 업데이트가 이루어질 수 있다.
다른 예로, 상기 업데이트 정책 설정 UI(204)는 전력 상태에 기초한 업데이트 정책을 설정하기 위한 UI를 제공할 수 있다. 예를 들어, 상기 UI는, 도 3b에 도시된 바와 같이, 업데이트가 허용되는 전원 종류를 지정하는 항목(321), 업데이트가 수행되거나 금지되는 배터리 레벨을 지정하는 항목(322)을 포함할 수 있다. 상기 3b에 도시된 예시는 충전의 종류를 구분하지 아니하나, 본 발명의 다른 실시 예에 따라, 상기 UI는 충전의 종류(예: AC 충전, USB 충전)을 구분하여 보다 세밀한 설정을 제공할 수 있다. 상기 UI를 통해, 사용자는 배터리 레벨이 임계치 이상인 때 업데이트를 수행하도록, 또는, 상기 베터리 레빌이 임계치 미만인 때 업데이트를 금지하도록 설정할 수 있다. 또한, 상기 사용자는 AC 충전 또는 USB 충전 등 외부 전원에 의한 충전이 수행중인 경우에만 상기 업데이트를 수행하도록 설정할 수 있다.
또 다른 예로, 상기 업데이트 정책 설정 UI(204)는 연결 상태에 기초한 업데이트 정책을 설정하기 위한 UI를 제공할 수 있다. 예를 들어, 상기 UI는, 도 3c에 도시된 바와 같이, 업데이트가 허용되는 연결 종류를 지정하는 항목(331), 업데이트가 허용되는 신호 품질을 지정하는 항목(332)를 포함할 수 있다. 상기 3c의 (a)는 연결의 종류를 'Wi-Fi', 'Wi-Fi or LTE' 등 2가지로 구분하나, 본 발명의 다른 실시 예에 따라, 상기 UI는 상기 전자 장치(110)에서 지원되는 모든 연결 종류들에 대하여 각각 업데이트 수행 여부를 지정할 수 있는 보다 세밀한 설정을 제공할 수 있다. 상기 도 3c의 (b)는 (a)에 비하여 'Wi-Fi and LTE'가 더 포함된다. 상기 'Wi-Fi and LTE'는 Wi-Fi 및 LTE를 동시에 연결된 상태로서, 마켓플레이스 어플리케이션이 Wi-Fi 및 LTE를 통하여 동시에 마켓플레이스 서버에 접속함으로써, 빠르게 어플리케이션 업데이트를 수행할 수 있다. 상기 UI를 통해, 사용자는 특정 연결 종류인 경우에 한해, 그리고, 특정 신호 품질인 경우에 한해 업데이트를 수행하도록 설정할 수 있다.
상기 전력 정보 관리자(206)는 상기 전자 장치의 배터리 상태 정보, AC/USB 연결 여부에 대한 정보를 수집 및 제공한다. 상기 전자 장치의 전력 상태가 변경되면, 상기 전력 정보 관리자(206)는 상기 전력 상태의 변경을 상기 지연 스케줄러(214)에 알린다. 상기 전력 정보는 배터리 레벨, AC 충전 연결 여부, USB 연결 여부 등을 포함한다.
상기 연결 정보 관리자(208)는 상기 전자 장치가 연결되어 있는 연결(예: Wi-Fi, 3G, LTE 등)에 대한 정보를 수집 및 제공한다. 나아가, 상기 연결 정보 관리자(208)는 각 연결에 대한 인터넷 연결성 여부, 수신 신호 세기(RSSI: Received Signal Strength Indicator) 등의 값을 제공할 수 있다. 상기 전자 장치의 연결 상태가 변경되면, 상기 연결 정보 관리자(208)는 상기 연결 상태의 변경을 상기 지연 스케줄러(214)에 알린다.
상기 업데이트 통지 인터셉터(210)는 상기 푸시 클라이언트(112)에서 출력되는 업데이트 통지를 상기 마켓플레이스 어플리케이션(116) 대신 수신하거나, 상기 마켓플레이스 어플리케이션(116)으로 전달되는 업데이트 통지를 차단한다. 다시 말해, 상기 업데이트 통지 인터셉터(210)는, 상기 푸시 클라이언트(112)가 상기 업데이트 통지를 상기 마켓플레이스 어플리케이션(116)으로 전달할 때, 상기 업데이트 통지를 차단하고, 상기 푸시 통지 큐(212)에 저장한다. 이로 인해, 상기 업데이트 통지 인터셉터(210)에 의해 수신된 상기 업데이트 통지는 원래 목적지인 상기 마켓플레이스 어플리케이션(116)으로 전달되지 아니한다. 여기서, 상기 업데이트 통지 인터셉터(210)는 다음과 같은 방식으로 상기 업데이트 통지를 차단할 수 있다. 본 발명의 실시 예에 따라, 상기 업데이트 통지 인터셉터(210)는 IP(Internet Protocol)를 포함하는 네트워크 계층(network layer)에서 상기 업데이트 통지를 후킹(Hooking)할 수 있다. 이를 위해, 상기 업데이트 통지 인터셉터(210)는 상기 업데이트 통지를 식별해야 한다. 예를 들어, 상기 업데이트 통지 인터셉터(210)는 IP 패킷의 특정 비트 패턴을 이용하여 상기 업데이트 통지를 식별할 수 있다. 본 발명의 다른 실시 예에 따라, 상기 업데이트 통지 인터셉터(210)는 상기 전자 장치 또는 서버의 OS(Operating System) 또는 어플리케이션 프레임워크(Application Framework)에서 후킹(Hooking)할 수 있다. 본 발명의 또 다른 실시 예에 따라, 상기 업데이트 통지 인터셉터(210)는 상기 업데이트 제어부(114)에 설치된 별도의 API(Application Program Interface)를 이용하여 상기 푸시 클라이언트(112)가 명시적으로 상기 업데이트 통지를 전달하도록 할 수 있다.
상기 푸시 통지 큐(212)는 상기 업데이트 통지 인터셉터(210)를 통해 획득한 업데이트 통지를 일시적으로 저장한다. 상기 푸시 통지 큐(212)에 새로운 업데이트 통지가 저장되면, 상기 푸시 통지 큐(212)는 출력 수단을 통해 사용자에게 새로운 업데이트가 존재함을 알릴 수 있다. 여기서, 상기 새로운 업데이트가 존재함을 알리는 동작은 상기 지연 스케줄러(214)에 의해 수행될 수 있다. 예를 들어, 상기 새로운 업데이트가 존재함은 전자 장치의 상단 알림 바(bar)에 해당 아이콘을 표시함으로써 통해 통지될 수 있다. 이때, 사용자가 업데이트의 진행을 선택하는 경우(예: 아이콘 클릭), 업데이트 정책과 무관하게 즉시 업데이트가 수행될 수 있다. 반면, 업데이트 정책에 따라 업데이트를 지연시켜야 하는 경우, 업데이트가 지연됨이 사용자에게 통지될 수 있다.
상기 지연 스케줄러(214)는 상기 어플리케이션의 우선순위, 상기 전력 정보, 상기 연결 정보 등에 기초하여 상기 업데이트 통지를 상기 마켓플레이스 어플리케이션(116)으로 전달할 시점을 제어한다. 구체적으로, 상기 지연 스케줄러(214)는 상기 어플리케이션의 우선순위, 상기 전력 정보, 상기 연결 정보 등에 기초하여 상기 업데이트 통지를 전달할 조건이 만족되는지 여부를 판단하고, 상기 조건이 만족되면 상기 업데이트 통지를 상기 마켓플레이스 어플리케이션(116)으로 전달한다.
이를 위해, 상기 지연 스케줄러(214)는 주기적으로 상기 전자 장치의 전력 정보, 연결 정보를 상기 전원 정보 관리자(206), 상기 연결 정보 관리자(208)로부터 제공받는다. 이 경우, 상기 지연 스케줄러(214)는, 주기적으로 상기 업데이트 정책 관리자(202)에 설정된 업데이트 정책에 따른 업데이트 여부를 판단하고, 해당 업데이트 통지를 상기 마켓플레이스 어플리케이션(116)으로 전달한다. 다른 예로, 상기 지연 스케줄러(214)는 상기 전자 장치의 전력 정보, 연결 정보를 정보가 변경되는 경우에만 제공받을 수 있다. 이 경우, 상기 지연 스케줄러(214)는 정보 변경 이벤트(event)를 수신하면 상기 푸시 통지 큐(212)를 검사하고, 상기 푸시 통지 큐(212)에 저장된 업데이트 통지가 있으면, 상기 업데이트 정책 관리자(202)에 설정된 업데이트 정책에 따라, 해당 업데이트 통지를 상기 마켓플레이스 어플리케이션(116)으로 전달한다.
단, 사용자가 업데이트의 진행을 선택하는 경우(예: 아이콘 클릭), 업데이트 정책과 무관하게 즉시 업데이트가 수행될 수 있다. 다시 말해, 사용자가 즉각적인 업데이트를 요청할 경우 업데이트 정책을 무시하고 업데이트가 수행된다. 즉, 상기 사용자의 선택에 의해 업데이트가 진행되는 경우, 상기 지연 스케쥴러(214)는 업데이트 정책을 무시하고 업데이트 통지를 상기 마켓플레이스 어플리케이션(116)으로 전달한다.
도 4는 본 발명의 실시 예에 따른 전자 장치에서 마켓플레이스 어플리케이션들 및 푸시 클라이언트들과 업데이트 제어부의 관계를 도시하고 있다.
상기 도 4에 도시된 바와 같이, 상기 전자 장치는 다수의 마켓플레이스 어플리케이션들(416-1 내지 416-N) 및 다수의 푸시 클라이언트들(412-1 내지 412-N)을 포함할 수 있다. 일반적으로, 마켓플레이스 어플리케이션 및 푸시 클라이언트는 어플리케이션 스토어에 종속하므로, 다수의 어플리케이션 스토어들을 이용하는 경우, 다수의 마켓플레이스 어플리케이션들(416-1 내지 416-N) 및 다수의 푸시 클라이언트들(412-1 내지 412-N)이 설치된다. 이 경우, 상기 도 4와 같이, 상기 업데이트 제어부(414)는 다수의 마켓플레이스 어플리케이션들(416-1 내지 416-N) 및 다수의 푸시 클라이언트들(412-1 내지 412-N) 간에 전달되는 업데이트 통지들을 제어함으로써, 업데이트 수행 시점을 조절한다.
본 발명의 다른 실시 예에 따라, 업데이트 통지에 대한 우선순위에 기초한 업데이트 정책이 더 추가될 수 있다. 이 경우, 서버는 업데이트 통지에 대한 우선순위를 설정하는 기능을 더 구비한다. 본 발명의 다른 실시 예에 따른 전자 장치 및 서버는 하기 도 5와 같다. 도 5는 본 발명의 다른 실시 예에 따른 전자 장치 및 어플리케이션을 제공하는 서버의 블록 구성을 도시하고 있다.
상기 도 5를 참고하면, 전자 장치(510) 및 서버(520)는 통신망(530)을 통해 데이터를 송수신한다. 상기 통신망(530)은 3G 망, LTE 망, WiFi 등이 될 수 있다. 전자 장치(510)는 푸시 클라이언트(512), 업데이트 제어부(514), 마켓플레이스 어플리케이션(516)을 포함한다. 그리고, 상기 서버(520)는 마켓플레이스 서버(522), 푸시 서버(526)를 포함한다.
상기 마켓플레이스 서버(522)는 상기 전자 장치(510)로 제공될 어플리케이션들을 저장, 관리한다. 또한, 어플리케이션의 제공이 요청되면, 상기 마켓플레이스 서버(522)는 요청된 어플리케이션을 해당 전자 장치로 상기 통신망(530)을 통해 송신한다. 상기 푸시 서버(526)는 상기 마켓플레이스 서버(522)에 등록된 어플리케이션을 설치한 상기 전자 장치(510)로 업데이트를 알리는 업데이트 통지를 송신한다. 예를 들어, 상기 마켓플레이스 서버(522)에 등록된 어플리케이션의 개선된 어플리케이션이 새로이 등록되면, 상기 푸시 서버(526)는 상기 어플리케이션을 설치한 적어도 하나의 전자 장치로 상기 통신망(530)을 통해 상기 업데이트 통지를 송신한다.
여기서, 상기 도 1에 도시된 실시 예와 달리, 상기 푸시 서버(526)는 통지 우선 순위 설정 기능(528)을 가진다. 상기 통지 우선 순위 설정 기능(528)에 의해, 상기 푸시 서버(526)는 업데이트를 알리는 상기 업데이트 통지에 대한 우선순위를 설정하고, 상기 우선순위를 알리는 지시자를 포함시킬 수 있다. 상기 우선순위의 구체적은 결정은 구체적인 실시 예에 따라 달라질 수 있다. 예를 들어, 상기 우선순위는 업데이트되는 항목의 중요도에 따라 결정될 수 있다. 구체적으로, 업데이트되는 항목이 해당 어플리케이션의 목적한 기능 제공 여부에 영향을 주는 경우, 해당 업데이트를 알리는 업데이트 통지는 가장 높은 우선순위를 부여받을 수 있다. 또는, 업데이트되는 항목이 해당 어플리케이션의 정상 동작과 무관한 경우, 해당 업데이트를 알리는 업데이트 통지는 상대적을 낮은 우선순위를 부여받을 수 있다.
상기 푸시 클라이언트(512)는 상기 푸시 서버(526)로부터 송신된 상기 업데이트 통지를 수신한다. 그리고, 상기 푸시 클라이언트(512)는 상기 업데이트 통지를 상기 업데이트 제어부(514)로 제공한다. 단, 구체적인 실시 예에 따라, 상기 푸시 클라이언트(512)는 상기 업데이트 통지를 상기 마켓플레이스 어플리케이션(516)으로 전달하는 것으로 인지할 수 있다. 즉, 상기 업데이트 제어부(514)는 상기 푸시 클라이언트(512)에서 상기 마켓플레이스 어플리케이션(516)으로 전달되는 상기 업데이트 통지를 차단(intercept)할 수 있다.
상기 업데이트 제어부(514)는 상기 푸시 클라이언트(512)에서 출력되는 상기 업데이트 통지를 확인하고, 상기 업데이트 통지가 상기 마켓플레이스 어플리케이션(516)으로 전달되는 것을 차단한다. 즉, 상기 업데이트 제어부(514)는 상기 업데이트 통지를 지연시킨다. 그리고, 상기 업데이트 제어부(514)는 미리 정의된 조건이 만족하는 때, 상기 업데이트 통지를 상기 상기 마켓플레이스 어플리케이션(516)으로 전달한다. 구체적으로, 상기 업데이트 제어부(514)는 어플리케이션 업데이트를 위해 상기 마켓플레이스 어플리케이션(516)으로 전달되는 상기 업데이트 통지를 어플리케이션의 우선순위, 상기 전자 장치(510)의 전력 상태, 전자 장치의 연결 상태 중 적어도 하나에 기초하여 제어함으로써, 업데이트가 수행되는 시점을 제어한다.
특히, 상기 도 1에 도시된 실시 예와 달리, 상기 업데이트 제어부(514)는 어플리케이션 업데이트를 위해 상기 마켓플레이스 어플리케이션(516)으로 전달되는 상기 업데이트 통지를 푸시 통지의 우선순위에 기초하여 제어함으로써, 업데이트가 수행되는 시점을 제어한다. 상기 푸시 통지의 우선순위는 상기 푸시 서버(526)에서 결정된 업데이트 통지에 대한 우선순위를 의미한다.
구체적으로 설명하면, 상기 업데이트 제어부(514)는, 상기 도 2에 도시된 실시 예와 유사하게 구성될 수 있다. 이때, 상기 업데이트 제어부(514)의 구성 요소들은, 상기 도 2를 참고하여 설명한 기능들에 더하여, 아래와 같은 상기 푸시 통지의 우선순위에 기초한 동작들을 더 수행할 수 있다. 구체적으로, 업데이트 정책 설정 UI는 업데이트 통지의 우선순위에 기초한 업데이트 정책을 설정하기 위한 UI를 더 제공할 수 있다. 예를 들어, 상기 UI는 도 6에 도시된 바와 같이, 업데이트가 허용되는 푸시 통지의 우선순위를 지정하는 항목(611)을 포함할 수 있다. 상기 UI를 통해, 사용자는 상기 UI를 통해 업데이트 통지 우선순위에 따른 업데이트 수행 여부를 설정할 수 있다. 구체적으로, 상기 사용자는 푸시 통지의 우선순위의 특정 우선순위에 한해 업데이트가 다른 조건의 판단 없이 수행되도록 설정할 수 있다. 그리고, 지연 스케줄러는 상기 푸시 통지의 우선순위, 상기 어플리케이션의 우선순위, 상기 전력 정보, 상기 연결 정보 등에 기초하여 상기 업데이트 통지를 상기 마켓플레이스 어플리케이션으로 전달할 시점을 제어한다.
상기 마켓플레이스 어플리케이션(516)은 상기 업데이트 통지를 수신하고, 상기 업데이트 통지에 의해 식별되는 기 설치된 어플리케이션을 업데이트한다. 이를 위해, 상기 마켓플레이스 어플리케이션(516)은 상기 통신망(530)을 통해 상기 마켓플레이스 서버(522)로 개선된 어플리케이션을 요청하고, 상기 개선된 어플리케이션을 설치함으로서, 상기 어플리케이션을 업데이트한다. 이때, 본 발명의 실시 예에 따라, 상기 마켓플레이스 어플리케이션(516)은 연결 가능한 다수의 통신 망들을 통한 다중 연결(예: LTE 및 WiFi)을 이용하여 상기 어플리케이션의 업데이트를 위한 데이터를 수신함으로서, 빠른 업데이트를 수행할 수 있다.
본 발명의 또 다른 실시 예에 따라, 상기 업데이트 정책 기능이 서버에 포함될 수 있다. 본 발명의 또 다른 실시 예에 따른 전자 장치 및 서버는 하기 도 7과 같다. 도 7은 본 발명의 또 다른 실시 예에 따른 전자 장치 및 어플리케이션을 제공하는 서버의 블록 구성을 도시하고 있다.
상기 도 7을 참고하면, 전자 장치(710) 및 서버(720)는 통신망(730)을 통해 데이터를 송수신한다. 상기 통신망(730)은 3G 망, LTE 망, WiFi 등이 될 수 있다. 전자 장치(710)는 푸시 클라이언트(712), 업데이트 제어 에이전트(agent)(718), 마켓플레이스 어플리케이션(716)을 포함한다. 그리고, 상기 서버(720)는 마켓플레이스 서버(722), 업데이트 제어부(724), 푸시 서버(726)를 포함한다.
상기 마켓플레이스 서버(722)는 상기 전자 장치(710)로 제공될 어플리케이션들을 저장, 관리한다. 또한, 어플리케이션의 제공이 요청되면, 상기 마켓플레이스 서버(722)는 요청된 어플리케이션을 해당 전자 장치로 상기 통신망(730)을 통해 송신한다.
상기 업데이트 제어부(724)는 상기 업데이트 제어 에이전트(718)로부터 제공되는 상기 전자 장치(710)에 대한 정보에 기초하여, 상기 전자 장치(710)로 제공되는 업데이트 통지의 송신 시점을 제어한다. 상기 도 7의 경우, 상기 업데이트 제어부(724)는 상기 서버(720) 내부에 포함된다. 그러나, 본 발명의 다른 실시 예에 따라, 상기 업데이트 제어부(724)는 별도의 제3의 서버에 구현됨으로써, 프록시(Proxy) 서버 형태로 존재할 수 있다.
상기 업데이트 제어부(724)는 상기 마켓플레이스 서버(722)에서 출력되는 업데이트 통지를 확인하고, 상기 업데이트 통지가 상기 푸시 서버(726)으로 전달되는 것을 차단한다. 즉, 상기 업데이트 제어부(724)는 상기 업데이트 통지를 지연시킨다. 그리고, 상기 업데이트 제어부(724)는 미리 정의된 조건이 만족하는 때, 상기 업데이트 통지를 상기 푸시 서버(726)로 전달한다. 구체적으로, 상기 업데이트 제어부(724)는 어플리케이션 업데이트를 위해 상기 푸시 서버(726)로 전달되는 상기 업데이트 통지를 푸시 통지의 우선순위, 어플리케이션의 우선순위, 상기 전자 장치(710)의 전력 상태, 전자 장치의 연결 상태 중 적어도 하나에 기초하여 제어함으로써, 업데이트가 수행되는 시점을 제어한다. 상기 업데이트 제어부(724)의 구체적인 구성 및 기능은 이하 도 8을 참고하여 설명된다.
상기 푸시 서버(726)는 상기 마켓플레이스 서버(722)에 등록된 어플리케이션을 설치한 상기 전자 장치(710)로 업데이트를 알리는 업데이트 통지를 송신한다. 예를 들어, 상기 마켓플레이스 서버(722)에 등록된 어플리케이션의 개선된 어플리케이션이 새로이 등록되면, 상기 푸시 서버(726)는 상기 어플리케이션을 설치한 적어도 하나의 전자 장치로 상기 통신망(730)을 통해 상기 업데이트 통지를 송신한다.
상기 푸시 클라이언트(712)는 상기 푸시 서버(726)로부터 송신된 상기 업데이트 통지를 수신한다. 그리고, 상기 푸시 클라이언트(712)는 상기 업데이트 통지를 상기 마켓플레이스 어플리케이션(716)으로 제공한다. 상기 마켓플레이스 어플리케이션(716)은 상기 업데이트 통지를 수신하고, 상기 업데이트 통지에 의해 식별되는 기 설치된 어플리케이션을 업데이트한다. 이를 위해, 상기 마켓플레이스 어플리케이션(716)은 상기 통신망(730)을 통해 상기 마켓플레이스 서버(722)로 개선된 어플리케이션을 요청하고, 상기 개선된 어플리케이션을 설치함으로서, 상기 어플리케이션을 업데이트한다. 이때, 본 발명의 실시 예에 따라, 상기 마켓플레이스 어플리케이션(716)은 연결 가능한 다수의 통신 망들을 통한 다중 연결(예: LTE 및 WiFi)을 이용하여 상기 어플리케이션의 업데이트를 위한 데이터를 수신함으로서, 빠른 업데이트를 수행할 수 있다.
상기 업데이트 제어 에이전트(718)는 상기 전자 장치의 업데이트 정책 관련 정보를 수집하고, 상기 업데이트 정책 관련 정보를 상기 업데이트 제어부(724)로 제공한다. 상기 업데이트 정책 관련 정보는 업데이트 정책 및 상기 업데이트 정책에 따른 조건 만족 여부를 판단하는 기초 정보를 포함한다. 상기 업데이트 정책은 상기 업데이트 수행 여부를 판단하는 조건들의 집합이며, 상기 기초 정보는 상기 조건의 평가 대상의 상태를 의미한다. 예를 들어, 상기 기초 정보는 푸시 통지의 우선순위, 어플리케이션의 우선순위, 상기 전자 장치의 전력 상태(예: 전원 종류, 배터리 레벨), 상기 전자 장치의 연결 상태(예: 연결 종류, 신호 품질) 중 적어도 하나를 포함한다. 또한, 상기 업데이트 정책은 업데이트가 허용되는 어플리케이션의 우선순위 범위, 업데이트가 허용되는 어플리케이션의 푸시 통지의 우선순위 범위, 업데이트가 허용되는 전원 종류, 업데이트가 허용되는 배터리 레벨, 업데이트가 허용되는 연결 종류, 업데이트가 허용되는 연결의 신호 품질 중 적어도 하나를 정의한다.
도 8은 본 발명의 또 다른 실시 예에 따른 서버의 업데이트 제어부의 블록 구성을 도시하고 있다.
상기 도 8을 참고하면, 상기 업데이트 제어부(724)는 업데이트 통지 인터셉터(802), 푸시 통지 큐(804), 지연 스케줄러(806), 장치 정보 관리자(808)를 포함한다.
상기 업데이트 통지 인터셉터(802)는 상기 마켓플레이스 서버(722)에서 출력되는 업데이트 통지를 상기 푸시 서버(726) 대신 수신하거나, 상기 푸시 서버(726)로 전달되는 업데이트 통지를 차단한다. 다시 말해, 상기 업데이트 통지 인터셉터(802)는, 상기 마켓플레이스 서버(722)가 상기 업데이트 통지를 상기 푸시 서버(726)로 전달할 때, 상기 업데이트 통지를 차단하고, 상기 푸시 통지 큐(804)에 저장한다. 이로 인해, 상기 업데이트 통지 인터셉터(802)에 의해 수신된 상기 업데이트 통지는 원래 목적지인 상기 푸시 서버(726)로 전달되지 아니한다. 여기서, 상기 업데이트 통지 인터셉터(802)는 다음과 같은 방식으로 상기 업데이트 통지를 차단할 수 있다. 본 발명의 실시 예에 따라, 상기 업데이트 통지 인터셉터(802)는 IP를 포함하는 네트워크 계층에서 상기 업데이트 통지를 후킹할 수 있다. 이를 위해, 상기 업데이트 통지 인터셉터(802)는 상기 업데이트 통지를 식별해야 한다. 예를 들어, 상기 업데이트 통지 인터셉터(802)는 IP 패킷의 특정 비트 패턴을 이용하여 상기 업데이트 통지를 식별할 수 있다. 본 발명의 다른 실시 예에 따라, 상기 업데이트 통지 인터셉터(802)는 상기 전자 장치 또는 서버의 OS 또는 어플리케이션 프레임워크에서 후킹할 수 있다. 본 발명의 또 다른 실시 예에 따라, 상기 업데이트 통지 인터셉터(802)는 상기 업데이트 제어부(724)에 설치된 별도의 API를 이용하여 상기 마켓플레이스 서버(722)가 명시적으로 상기 업데이트 통지를 전달하도록 할 수 있다.
상기 푸시 통지 큐(804)는 상기 업데이트 통지 인터셉터(802)를 통해 획득한 업데이트 통지를 일시적으로 저장한다. 상기 지연 스케줄러(806)는 상기 장치 정보 관리자(808)로부터 제공되는 업데이트 정책 관련 정보에 기초하여 상기 업데이트 통지를 상기 푸시 서버(726)로 전달할 시점을 제어한다. 구체적으로, 상기 지연 스케줄러(806)는 상기 푸시 통지의 우선순위, 상기 어플리케이션의 우선순위, 상기 전력 정보, 상기 연결 정보 등에 기초하여 상기 업데이트 통지를 전달할 조건이 만족되는지 여부를 판단하고, 상기 조건이 만족되면 상기 업데이트 통지를 상기 푸시 서버(726)로 전달한다.
상기 장치 정보 관리자(808)는 상기 업데이트 제어 에이전트(718)로부터 상기 전자 장치(710)에 의해 결정된 업데이트 정책 관련 정보를 수신한다. 상기 업데이트 정책 관련 정보는 주기적으로 수신되거나, 또는, 변경이 있는 때에 수신될 수 있다. 상기 업데이트 정책 관련 정보는 업데이트 정책 및 상기 업데이트 정책에 따른 조건 만족 여부를 판단하는 기초 정보를 포함한다. 상기 업데이트 정책은 상기 업데이트 수행 여부를 판단하는 조건들의 집합이며, 상기 기초 정보는 상기 조건의 평가 대상의 상태를 의미한다. 예를 들어, 상기 기초 정보는 푸시 통지의 우선순위, 어플리케이션의 우선순위, 상기 전자 장치의 전력 상태(예: 전원 종류, 배터리 레벨), 상기 전자 장치의 연결 상태(예: 연결 종류, 신호 품질) 중 적어도 하나를 포함한다. 또한, 상기 업데이트 정책은 업데이트가 허용되는 어플리케이션의 우선순위 범위, 업데이트가 허용되는 어플리케이션의 푸시 통지의 우선순위 범위, 업데이트가 허용되는 전원 종류, 업데이트가 허용되는 배터리 레벨, 업데이트가 허용되는 연결 종류, 업데이트가 허용되는 연결의 신호 품질 중 적어도 하나를 정의한다.
도 9는 본 발명의 또 다른 실시 예에 따른 전자 장치의 업데이트 제어 에이전트의 블록 구성을 도시하고 있다.
상기 도 9를 참고하면, 상기 업데이트 제어 에이전트(718)는 업데이트 정책 관리자(902), 업데이트 정책 설정 UI(904), 전력 정보 관리자(906), 연결 정보 관리자(908), 장치 정보 업데이터(910)를 포함한다.
상기 업데이트 정책 관리자(902)는 상기 업데이트 정책 설정 UI(904)에서 입력된 업데이트 정책 관련 정보를 관리한다. 상기 업데이트 정책 관련 정보는 업데이트 정책 및 상기 업데이트 정책에 따른 조건 만족 여부를 판단하는 기초 정보를 포함한다. 상기 업데이트 정책은 상기 업데이트 수행 여부를 판단하는 조건들의 집합이며, 상기 기초 정보는 상기 조건의 평가 대상의 상태를 의미한다. 예를 들어, 상기 기초 정보는 푸시 통지의 우선순위, 어플리케이션의 우선순위, 상기 전자 장치의 전력 상태(예: 전원 종류, 배터리 레벨), 상기 전자 장치의 연결 상태(예: 연결 종류, 신호 품질) 중 적어도 하나를 포함한다. 또한, 상기 업데이트 정책은 업데이트가 허용되는 어플리케이션의 우선순위 범위, 업데이트가 허용되는 어플리케이션의 푸시 통지의 우선순위 범위, 업데이트가 허용되는 전원 종류, 업데이트가 허용되는 배터리 레벨, 업데이트가 허용되는 연결 종류, 업데이트가 허용되는 연결의 신호 품질 중 적어도 하나를 정의한다.
상기 업데이트 정책 설정 UI(904)는 사용자가 업데이트 정책을 설정할 수 있는 UI를 제공하고, 상기 사용자에 의해 입력된 정보를 상기 업데이트 정책 관리자(902)에 전달한다. 예를 들어, 상기 업데이트 정책 설정 UI(904)는 상기 도 3a와 같은 어플리케이션의 우선순위 설정을 위한 UI, 상기 도 3b와 같은 전력 상태에 기초한 업데이트 정책을 설정하기 위한 UI, 상기 도 3c와 같은 연결 상태에 기초한 업데이트 정책을 설정하기 위한 UI, 상기 도 6과 같은 업데이트 통지의 우선순위에 기초한 업데이트 정책을 설정하기 위한 UI를 제공할 수 있다.
상기 전력 정보 관리자(906)는 상기 전자 장치의 배터리 상태 정보, AC/USB 연결 여부에 대한 정보를 수집 및 제공한다. 상기 전자 장치의 전력 상태가 변경되면, 상기 전력 정보 관리자(906)는 상기 전력 상태의 변경을 상기 장치 정보 업데이터(910)에 알린다. 상기 전력 정보는 배터리 레벨, AC 충전 연결 여부, USB 연결 여부 등을 포함한다.
상기 연결 정보 관리자(908)는 상기 전자 장치가 연결되어 있는 연결(예: Wi-Fi, 3G, LTE 등)에 대한 정보를 수집 및 제공한다. 나아가, 상기 연결 정보 관리자(908)는 각 연결에 대한 인터넷 연결성 여부, 수신 신호 세기 등의 값을 제공할 수 있다. 상기 전자 장치의 연결 상태가 변경되면, 상기 연결 정보 관리자(908)는 상기 연결 상태의 변경을 상기 장치 정보 업데이터(910)에 알린다.
상기 장치 정보 업데이터(910)는 상기 전자 장치의 업데이트 정책 관련 정보를 수집하고, 상기 업데이트 정책 관련 정보를 상기 업데이트 제어부(724)로 제공한다. 즉, 상기 장치 정보 업데이터(910)는 상기 업데이트 정책 설정 UI(904), 상기 업데이트 정책 관리자(902), 상기 전력 정보 관리자(906), 상기 연결 정보 관리자(908)로부터 제공되는 정보를 상기 업데이트 제어부(724)로 제공한다. 상기 업데이트 정책 관련 정보는 주기적으로 제공되거나, 또는, 변경이 있는 때에 제공될 수 있다.
도 10은 본 발명의 실시 예에 따른 전자 장치 또는 서버에 포함되는 업데이트 제어부의 동작 절차를 도시하고 있다. 여기서, 상기 업데이트 제어부는 하드웨어 구성 요소 또는 소프트웨어 구성 요소일 수 있다. 상기 소프트웨어 구성 요소인 경우, 이하 도 10의 절차는 상기 소프트웨어 구성 요소를 실행하는 프로세서(processor)에 의해 수행된다. 그러나, 설명의 편의를 위해, 이하 본 발명은 이하 절차를 수행하는 주체를 '업데이트 제어부'로 지칭한다.
상기 도 10을 참고하면, 상기 업데이트 제어부는 1001단계에서 어플리케이션에 대한 업데이트 통지를 차단(intercept)한다. 즉, 상기 업데이트 제어부는 어플리케이션 업데이트에 관련된 기능을 처리하는 객체들 간 전달되는 상기 업데이트 통지를 인지하고, 상기 업데이트 통지를 전달되지 아니하도록 차단한다. 예를 들어, 상기 업데이트 제어부가 사용자 장치인 전자 장치에 포함된 경우, 상기 업데이트 제어부는 푸시 클라이언트에서 마켓플레이스 어플리케이션으로 전달되는 업데이트 통지를 차단한다. 다른 예로, 상기 업데이트 제어부가 어플리케이션을 제공하는 서버에 포함된 경우, 상기 업데이트 제어부는 마켓플레이스 서버에서에서 푸시 서버로 전달되는 업데이트 통지를 차단한다.
이후, 상기 업데이트 제어부는 1003단계로 진행하여 업데이트 정책에 따른 조건을 만족하는지 판단한다. 상기 업데이트 정책은 전자 장치에서 제공하는 규칙, 사용자에 의해 지정된 설정 중 적어도 하나에 기초로 결정된다. 그리고, 상기 업데이트 제어부는 푸시 통지의 우선순위, 어플리케이션의 우선순위, 상기 전자 장치의 상태 중 적어도 하나에 기초하여 상기 조건의 만족 여부를 판단하다. 단, 사용자의 업데이트 수행의 명령이 입력된 경우, 상기 업데이트 제어부는 상기 전자 장치의 상태, 상기 우선순위에 무관하게 상기 조건을 만족한다고 판단한다. 여기서, 상기 전자 장치의 상태는, 전원 종류, 배터리 레벨, 연결 종류, 연결 신호 품질 등을 포함할 수 있다. 또한, 상기 사용자에 의해 지정된 설정은 상기 전자 장치가 제공하는 UI를 통해 획득되며, 예를 들어, 상기 UI는 상기 도 3a, 상기 도 3b, 상기 도 3c, 상기 도 6과 같이 표현될 수 있다.
만일, 상기 업데이트 정책에 따른 조건을 만족하지 아니하면, 상기 업데이트 제어부는 1005단계로 진행하여 다음 조건 만족 여부의 판단 시점까지 대기한다. 다시 말해, 상기 업데이트 제어부는 상기 업데이트 통지를 상기 마켓플레이스 어플리케이션 또는 상기 푸시 서버로 전달하지 아니한다. 여기서, 상기 조건 만족 여부의 판단 시점은 주기적으로 도래하거나, 또는, 상기 전자 장치의 상태가 변경되는 때일 수 있다.
반면, 상기 업데이트 정책에 따른 조건을 만족하지 아니하면, 상기 업데이트 제어부는 1007단계로 진행하여 상기 업데이트 통지를 전달한다. 즉, 상기 업데이트 조건을 만족하면, 상기 업데이트 제어부는 상기 업데이트 통지를 상기 마켓플레이스 어플리케이션에 전달하여 업데이트가 진행되도록 하거나, 상기 업데이트 통지를 상기 푸시 서버로 전달하여 상기 업데이트 통지가 사용자 장치로 송신되도록 한다.
상기 도 10에 도시되지 아니하였으나, 상기 업데이트 제어부는 상기 업데이트 정책을 설정하는 단계를 더 수행할 수 있다. 예를 들어, 상기 업데이트 제어부가 사용자 장치인 전자 장치에 포함된 경우, 상기 업데이트 제어부는 상기 업데이트 정책 설정을 위한 UI들을 표시하고, 사용자에 의한 입력에 따라 상기 업데이트 정책을 설정한다. 다른 예로, 상기 업데이트 제어부가 어플리케이션을 제공하는 서버에 포함된 경우, 상기 업데이트 제어부는 상기 사용자 장치로부터 수신되는 업데이트 정책 관련 정보에 따라 상기 업데이트 정책을 설정한다. 즉, 상기 업데이트 제어부가 어플리케이션을 제공하는 서버에 포함된 경우, 상기 업데이트 제어부는 상기 사용자 장치로부터 업데이트 정책 관련 정보를 수신하는 단계를 더 수행한다. 이때, 상기 업데이트 정책 관련 정보는 업데이트 정책 뿐만 아니라, 상기 조건 만족 여부 판단의 기초가 되는 상기 전자 장치의 상태 정보도 포함할 수 있다. 또한, 상기 업데이트 정책은 업데이트가 허용되는 어플리케이션의 우선순위 범위, 업데이트가 허용되는 어플리케이션의 푸시 통지의 우선순위 범위, 업데이트가 허용되는 전원 종류, 업데이트가 허용되는 배터리 레벨, 업데이트가 허용되는 연결 종류, 업데이트가 허용되는 연결의 신호 품질 중 적어도 하나를 정의한다.
도 11은 본 발명의 실시 예에 따른 전자 장치에 포함되는 업데이트 제어 에이전트의 동작 절차를 도시하고 있다. 여기서, 상기 업데이트 제어 에이전트는 하드웨어 구성 요소 또는 소프트웨어 구성 요소일 수 있다. 상기 소프트웨어 구성 요소인 경우, 이하 도 11의 절차는 상기 소프트웨어 구성 요소를 실행하는 프로세서에 의해 수행된다. 그러나, 설명의 편의를 위해, 이하 본 발명은 이하 절차를 수행하는 주체를 '업데이트 제어 에이전트'로 지칭한다.
상기 도 11을 참고하면, 상기 업데이트 제어 에이전트는 1101단계에서 업데이트 정책 관련 정보를 수집한다. 상기 업데이트 정책 관련 정보는 업데이트 정책 및 상기 업데이트 정책에 따른 조건 만족 여부를 판단하는 기초 정보를 포함한다. 상기 업데이트 정책은 상기 업데이트 수행 여부를 판단하는 조건들의 집합이며, 상기 기초 정보는 상기 조건의 평가 대상의 상태를 의미한다. 예를 들어, 상기 기초 정보는 푸시 통지의 우선순위, 어플리케이션의 우선순위, 상기 전자 장치의 전력 상태(예: 전원 종류, 배터리 레벨), 상기 전자 장치의 연결 상태(예: 연결 종류, 신호 품질) 중 적어도 하나를 포함한다. 또한, 상기 업데이트 정책은 업데이트가 허용되는 어플리케이션의 우선순위 범위, 업데이트가 허용되는 어플리케이션의 푸시 통지의 우선순위 범위, 업데이트가 허용되는 전원 종류, 업데이트가 허용되는 배터리 레벨, 업데이트가 허용되는 연결 종류, 업데이트가 허용되는 연결의 신호 품질 중 적어도 하나를 정의한다. 상기 업데이트 정책을 수집하기 위해, 상기 업데이트 제어 에이전트는 상기 업데이트 정책 설정을 위한 UI들을 표시하고, 사용자에 의한 입력에 따라 상기 업데이트 정책을 설정한다.
이후, 상기 업데이트 제어 에이전트는 1103단계로 진행하여 상기 업데이트 정책 관련 정보를 업데이트를 제어하는 서버로 송신한다. 즉, 상기 업데이트 제어 에이전트는 상기 업데이트 정책 관련 정보를 제공함으로써, 상기 서버가 상기 업데이트 정책에 따라 업데이트 통지의 송신 시점을 제어할 수 있게 한다. 이때, 상기 업데이트 정책 관련 정보는 주기적으로 송신되거나, 또는, 정보가 변경되는 때에 송신될 수 있다.
도 12는 본 발명의 실시 예에 따른 전자 장치의 블록 구성을 도시하고 있다.
상기 도 12를 참고하면, 상기 전자 장치는 메모리(1210), 프로세서 유닛(processor unit)(1220), 무선 통신 서브 시스템(1230), 입출력(IO: Input Output) 시스템(1240)을 포함한다. 상기 메모리(1210)는 다수 개로 구성될 수 있다.
상기 메모리(1210)는 적어도 하나의 소프트웨어, 마이크로 코드, 설정 정보 등을 저장한다. 상기 메모리(1210)는 적어도 하나의 고속 랜덤 액세스 메모리, 비휘발성 메모리, 적어도 하나의 광 저장 장치, 플래시 메모리(예: NAND, NOR) 중 적어도 하나를 포함할 수 있다. 상기 메모리(1210)에 저장된 소프트웨어 구성 요소는 운영 체제(operating system) 모듈(1211), 통신 모듈(1212), 그래픽 모듈(1213), 사용자 인터페이스 모듈(1214)을 포함할 수 있다. 또한, 상기 메모리(1210)에 저장된 소프트웨어 구성 요소는 푸시클라이언트(1215), 마켓플레이스 어플리케이션(1216), 업데이트 제어 모듈(1217)을 포함할 수 있고, 상기 메모리(1210)에 저장된 설정 정보는 업데이트 정책 정보(1218)을 포함할 수 있다. 소프트웨어 구성 요소인 모듈은 명령어들의 집합으로 표현할 수 있고, 상기 모듈은 '명령어 집합(instruction set)' 또는 '프로그램'으로 지칭될 수 있다.
상기 운영 체제 모듈(1211)은 일반적인 시스템 작동(system operation)을 제어하는 적어도 하나의 소프트웨어 구성 요소를 포함한다. 예를 들어, 상기 운영 체제 모듈(1211)은 WINDOWS, LINUX, 다윈(Darwin), RTXC, UNIX, OS X, VxWorks, Android, iOS와 같은 내장 운영 체제일 수 있다. 예를 들어, 상기 운영 체제 모듈(1211)은 메모리 관리 및 제어, 저장 하드웨어 제어 및 관리, 전력 제어 및 관리 등의 일반적인 시스템 작동 제어를 담당한다. 상기 운영 체제 모듈(1211)은 적어도 하나의 하드웨어 요소 및 적어도 하나의 소프트웨어 구성 요소 간 통신이 원활하게 이루어지도록 제어한다.
상기 통신 모듈(1212)은 상기 무선 통신 서브 시스템(1230)를 통해 컴퓨터, 서버, 휴대용 단말기 등 다른 전자 장치와 통신을 수행하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 상기 그래픽 모듈(1213)은 상기 터치 스크린(1243) 상에 그래픽을 제공하고 표시하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 여기서, 그래픽은 텍스트(text), 웹 페이지(web page), 아이콘(icon), 디지털 이미지(digital image), 비디오(video), 애니메이션(animation) 등을 포함한다. 상기 사용자 인터페이스 모듈(1214)은 사용자 인터페이스를 제공하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 예컨데, 상기 사용자 인터페이스 모듈(1214)은 상기 사용자 인터페이스의 상태가 어떻게 변경되는지, 또는, 사용자 인터페이스 상태의 변경이 어떤 조건에서 이루어지는지 등을 제어한다.
상기 푸시클라이언트(1215)는 상기 어플리케이션의 업데이트를 알리는 푸시 서버로부터 송신된 상기 업데이트 통지를 수신하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 상기 마켓플레이스 어플리케이션(1216)은 상기 업데이트 통지를 수신하고, 상기 업데이트 통지에 의해 식별되는 기 설치된 어플리케이션을 업데이트하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 구체적으로, 상기 마켓플레이스 어플리케이션(1216)은 상기 통신망(130)을 통해 상기 마켓플레이스 서버(122)로 개선된 어플리케이션을 요청하고, 상기 개선된 어플리케이션을 설치하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함할 수 있다.
상기 업데이트 제어 모듈(1217)은 업데이트 정책을 설정하고, 상기 업데이트 정책에 따라 어플리케이션의 업데이트 시점을 제어하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 예를 들어, 상기 업데이트 제어 모듈(1217)은 상기 전자 장치가 상기 도 10 또는 상기 도 11과 같은 절차를 수행하도록 제어하는 적어도 하나의 소프트웨어 구성 요소를 포함한다. 구체적으로, 상기 업데이트 제어 모듈(1217)은 어플리케이션에 대한 업데이트가 필요함을 알리는 업데이트 통지를 차단(intercept)하고, 업데이트 정책에 따른 업데이트 조건이 만족되는지 여부를 판단하고, 상기 업데이트 조건이 만족되지 아니하면, 다음 판단 시점까지 상기 업데이트 통지의 전달을 지연시키는 적어도 하나의 소프트웨어 구성 요소를 포함할 수 있다.
상기 업데이트 정책 정보(1218)는 상기 업데이트 제어 모듈(1217)에 의해 생성된 업데이트 정책 관련 정보를 포함한다. 상기 업데이트 정책 관련 정보는 주기적으로 갱신되거나, 또는, 변경이 있는 때에 갱신될 수 있다. 예를 들어, 업데이트 정책 관련 정보는 푸시 통지 우선순위, 어플리케이션 우선순위, 전력 상태, 연결 상태, 사용자의 설정 정보 중 적어도 하나를 포함할 수 있다. 상기 어플리케이션 우선순위는 업데이트 해야 하는 어플리케이션의 우선순위를 의미한다. 예를 들어, 사용자가 자주 사용하는 어플리케이션이 높은 우선순위를 부여받을 수 있다. 다른 예로, 상기 어플리케이션의 우선순위는 사용자에 의해 직접 설정될 수 있다. 상기 전력 상태는 상기 전자 장치의 배터리 사용 여부, 배터리 사용시 레벨, AC, 충전, USB 충전 등으로 분류될 수 있다. 상기 연결 상태는 상기 전자 장치가 접속한 연결의 종류(예: WiFi, 3G, LTE 등), 신호 세기 등을 의미한다.
상기 메모리(1210)는 상술한 모듈들(1211 내지 1218) 외에 추가적인 모듈을 포함할 수 있다. 또는, 본 발명의 다른 실시 예에 따라, 상술한 모듈들(1211 내지 1218) 중 일부가 배제될 수 있다.
상기 프로세서 유닛(1220)은 메모리 인터페이스(1221), 프로세서(1222) 및 주변장치 인터페이스(peripheral interface)(1223)를 포함한다. 경우에 따라, 상기 프로세서 유닛(1220) 전체가 '프로세서'로 지칭될 수 있다. 상기 메모리 인터페이스(1221), 상기 프로세서(1222), 상기 주변장치 인터페이스(1223) 각각은 별개의 구성 요소이거나, 또는, 적어도 하나의 집적화된 회로에 포함될 수 있다.
상기 프로세서(1222)는 적어도 하나의 하드웨어 칩(chip)을 포함할 수 있다. 상기 프로세서(1222)는 소프트웨어 모듈을 실행함으로써 상기 전자 장치가 상기 소프트웨어 모듈에 의해 구현되는 기능을 수행하게 한다. 특히, 상기 프로세서(1222)는 상기 메모리(1210)에 저장된 소프트웨어 모듈들과 연동하여 본 발명의 실시 예를 실시한다. 또한, 상기 프로세서(1222)는 적어도 하나의 데이터 프로세서, 이미지 프로세서를 포함할 수 있다. 본 발명의 다른 실시 예에 따라, 상기 데이터 프로세서, 상기 이미지 프로세서는 별도의 하드웨어로 구성될 수 있다. 또한, 상기 프로세서(1222)는 서로 다른 기능을 수행하는 다수의 프로세서들로 구성될 수 있다.
상기 메모리 인터페이스(1221)는 상기 메모리(1210) 및 상기 프로세서(1222) 간 데이터 및 제어 신호의 이동 경로를 제공한다. 예컨데, 상기 메모리 인터페이스(1221)는 상기 메모리(1210)에 접근하기 위한 인터페이스를 제공한다. 상기 주변 장치 인터페이스(1223)는 상기 전자 장치의 상기 입출력 서브 시스템(1240) 및 적어도 하나의 주변 장치를 상기 프로세서(1221) 및 상기 메모리(1210)에 연결시킨다.
상기 무선 통신 서브 시스템(1230)은 무선 통신을 위한 인터페이스를 제공한다. 상기 무선 통신 서브 시스템(1230)은 RF(Radio Frequency) 수신기/송신기, 광(예: 적외선) 수신기/송신기 중 적어도 하나를 포함할 수 있다. 상기 무선 통신 서브 시스템(1230)은 서로 다른 규격에 따르는 통신 모뎀들을 포함할 수 있다. 상기 통신 모뎀들은 통신 망에 따라 구분될 수 있다. 예를 들어, 상기 통신 망은, 이에 한정되지 아니하나, GSM(Global System for Mobile Communication) 망, EDGE(Enhanced Data GSM Environment) 망, CDMA(Code Division Multiple Access) 망, W-CDMA(W-Code Division Multiple Access) 망, LTE(Long Term Evolution) 망, OFDMA(Orthogonal Frequency Division Multiple Access) 망, Wi-Fi(Wireless Fidelity) 망, WiMax 망, 블루투스(Bluetooth) 망 중 적어도 하나일 수 있다. 상기 통신 모뎀들은 하나의 칩셋(chipset)으로 구성될 수 있다.
상기 입출력 서브 시스템(1240)은 터치 스크린 제어기(1241), 기타 입력 제어기(1242), 터치 스크린(1243), 기타 입력/제어 장치(1244)를 포함할 수 있다.
상기 터치 스크린 제어기(1241)는 상기 터치 스크린(1243)에 결합될 수 있다. 상기 터치 스크린(1243) 및 상기 터치 스크린 제어기(1241)는, 이에 한정되지 아니하나, 상기 터치 스크린(1243) 상에서의 적어도 하나의 접촉점을 결정하기 위한 용량성, 저항성, 적외선 및 표면 음향파 기술들 뿐만 아니라 기타 근접 센서 배열 또는 기타 요소들을 포함하는 멀티 터치(multi-touch) 감지 기술을 이용하여 접촉, 움직임, 상기 접촉 또는 상기 움직임의 중단을 검출할 수 있다.
상기 기타 입력 제어기(1242)는 상기 기타 입력/제어 장치(1244)에 결합될 수 있다. 상기 기타 입력/제어 장치(1244)에 적어도 하나의 볼륨(volumn) 제어를 위한 업/다운(up/down) 버튼이 포함될 수 있다. 또한, 상기 버튼은 푸시 버튼(push button) 또는 로커 버튼(rocker button), 로커(rocker) 스위치, 썸-휠(thumb-wheel), 다이얼(dial), 스틱(stick), 스타일러스(stylus)와 같은 포인터 장치 등의 형태를 가질 수 있다.
상기 터치 스크린(1243)은 상기 전자 장치와 사용자 사이에 입력/출력 인터페이스를 제공한다. 예컨데, 상기 터치 스크린(1243)은 사용자의 터치 입력을 상기 전자 장치에 전달한다. 또한, 상기 터치 스크린(1243)은 상기 전자 장치로부터의 출력을 사용자에게 보여주는 수단이다. 예컨데, 상기 터치 스크린(1243)은 사용자에게 시각적 출력을 보여준다. 상기 시각적 출력(visual output)은 텍스트(text), 그래픽(graphic), 비디오(video), 이들의 조합의 형태로 표현된다. 예를 들어, 상기 터치 스크린(1243)은 상기 도 3a, 상기 도 3b, 상기 도 3c, 상기 도 6과 같은 UI 화면을 표시할 수 있다. 상기 터치 스크린(1243)을 위해 다양한 디스플레이 수단이 사용될 수 있다. 예를 들면, 이에 한정되지 아니하나, 상기 터치 스크린(1243)은 LCD(liquid crystal display), LED(Light Emitting Diode), LPD(light emitting polymer display), OLED(Organic Light Emitting Diode), AMOLED(Active Matrix Organic Light Emitting Diode), FLED(Flexible LED) 중 적어도 하나를 포함할 수 있다.
상기 도 12에 도시된 실시 예의 경우, 본 발명의 실시 예에 따른 업데이트 제어 기능이 소프트웨어 구성 요소로서 구현된다. 그러나, 본 발명의 다른 실시 예에 따라, 상기 업데이트 제어 기능은 하드웨어 구성 요소로 구현될 수 있다. 이 경우, 상기 업데이트 제어 모듈(1217)의 기능은 상기 프로세서 유닛(1220) 내에 적어도 하나의 프로세서로 구현될 수 있다.
도 13은 본 발명의 실시 예에 따른 서버의 블록 구성을 도시하고 있다.
상기 서버는 메모리(1310), 프로세서 유닛(1320), 통신 서브 시스템(1330)을 포함한다. 상기 메모리(1310)는 다수 개로 구성될 수 있다.
상기 메모리(1310)는 적어도 하나의 소프트웨어, 마이크로 코드, 설정 정보 등을 저장한다. 상기 메모리(1310)는 적어도 하나의 고속 랜덤 액세스 메모리, 비휘발성 메모리, 적어도 하나의 광 저장 장치, 플래시 메모리(예: NAND, NOR) 중 적어도 하나를 포함할 수 있다. 상기 메모리(1310)에 저장된 소프트웨어 구성 요소는 운영 체제 모듈(1311), 통신 모듈(1312)을 포함할 수 있다. 또한, 상기 메모리(1310)에 저장된 소프트웨어 구성 요소는 마켓플레이스 모듈(1313), 푸시 모듈(1314), 업데이트 제어 모듈(1315)을 포함할 수 있고, 상기 메모리(1310)에 저장된 설정 정보는 업데이트 정책 정보(1318)을 포함할 수 있다. 또한, 상기 메모리(1310)는 등록 어플리케이션(1317)을 저장할 수 있다. 상기 등록 어플리케이션(1317)는 사용자 장치로 제공될 어플리케이션으로서, 설치 파일의 형태로 저장될 수 있다. 소프트웨어 구성 요소인 모듈은 명령어들의 집합으로 표현할 수 있고, 상기 모듈은 '명령어 집합' 또는 '프로그램'으로 지칭될 수 있다.
상기 운영 체제 모듈(1311)은 일반적인 시스템 작동을 제어하는 적어도 하나의 소프트웨어 구성 요소를 포함한다. 예를 들어, 상기 운영 체제 모듈(1311)은 WINDOWS, LINUX, 다윈(Darwin), RTXC, UNIX, OS X, VxWorks, Android, iOS와 같은 내장 운영 체제일 수 있다. 예를 들어, 상기 운영 체제 모듈(1311)은 메모리 관리 및 제어, 저장 하드웨어 제어 및 관리, 전력 제어 및 관리 등의 일반적인 시스템 작동 제어를 담당한다. 상기 운영 체제 모듈(1311)은 적어도 하나의 하드웨어 요소 및 적어도 하나의 소프트웨어 구성 요소 간 통신이 원활하게 이루어지도록 제어한다. 상기 통신 모듈(1312)은 상기 통신 서브 시스템(1330)를 통해 컴퓨터, 서버, 휴대용 단말기 등 다른 서버와 통신을 수행하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다.
상기 마켓플레이스 모듈(1313)은 사용자 장치로 제공될 어플리케이션들을 저장, 관리하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 구체적으로, 상기 마켓플레이스 모듈(1313)은 상기 사용자 장치로부터 어플리케이션의 제공이 요청되면, 상기 통신 서브 시스템(1330)을 통해 요청된 어플리케이션을 해당 상요자 장치로 송신하는 적어도 하나의 소프트웨어 구성 요소를 포함할 수 있다.
상기 푸시 모듈(1314)은 상기 서버에 등록된 어플리케이션(예: 등록 어플리케이션(1317))을 설치한 상기 사용자 장치로 업데이트를 알리는 업데이트 통지를 송신하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 예를 들어, 상기 서버에 등록된 어플리케이션의 개선된 어플리케이션이 새로이 등록되면, 상기 푸시 모듈(1314)은 상기 어플리케이션을 설치한 적어도 하나의 사용자 장치로, 상기 통신 서브 시스템(1330)을 통해, 상기 업데이트 통지를 송신하는 적어도 하나의 소프트웨어 구성 요소를 포함할 수 있다.
상기 업데이트 제어 모듈(1315)은 업데이트 정책을 설정하고, 상기 업데이트 정책에 따라 어플리케이션의 업데이트 시점을 제어하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 예를 들어, 상기 업데이트 제어 모듈(1315)은 상기 서버가 상기 도 10과 같은 절차를 수행하도록 제어하는 적어도 하나의 소프트웨어 구성 요소를 포함한다. 구체적으로, 상기 업데이트 제어 모듈(1315)은 어플리케이션에 대한 업데이트가 필요함을 알리는 업데이트 통지를 차단(intercept)하고, 업데이트 정책에 따른 업데이트 조건이 만족되는지 여부를 판단하고, 상기 업데이트 조건이 만족되지 아니하면, 다음 판단 시점까지 상기 업데이트 통지의 전달을 지연시키는 적어도 하나의 소프트웨어 구성 요소를 포함할 수 있다.
상기 업데이트 정책 정보(1318)는 상기 업데이트 제어 모듈(1317)에 의해 수신된 업데이트 정책 관련 정보를 포함한다. 상기 업데이트 정책 관련 정보는 주기적으로 갱신되거나, 또는, 변경이 있는 때에 갱신될 수 있다. 예를 들어, 업데이트 정책 관련 정보는 푸시 통지 우선순위, 어플리케이션 우선순위, 전력 상태, 연결 상태, 사용자의 설정 정보 중 적어도 하나를 포함할 수 있다. 상기 어플리케이션 우선순위는 업데이트 해야 하는 어플리케이션의 우선순위를 의미한다. 예를 들어, 사용자가 자주 사용하는 어플리케이션이 높은 우선순위를 부여받을 수 있다. 다른 예로, 상기 어플리케이션의 우선순위는 사용자에 의해 직접 설정될 수 있다. 상기 전력 상태는 상기 서버의 배터리 사용 여부, 배터리 사용시 레벨, AC, 충전, USB 충전 등으로 분류될 수 있다. 상기 연결 상태는 상기 서버가 접속한 연결의 종류(예: WiFi, 3G, LTE 등), 신호 세기 등을 의미한다.
상기 메모리(1310)는 상술한 모듈들(1311 내지 1317) 외에 추가적인 모듈을 포함할 수 있다. 또는, 본 발명의 다른 실시 예에 따라, 상술한 모듈들(1311 내지 1318) 중 일부가 배제될 수 있다.
상기 프로세서 유닛(1320)은 메모리 인터페이스(1321), 프로세서(1322) 및 주변장치 인터페이스(1323)를 포함한다. 경우에 따라, 상기 프로세서 유닛(1320) 전체가 '프로세서'로 지칭될 수 있다. 상기 메모리 인터페이스(1321), 상기 프로세서(1322), 상기 주변장치 인터페이스(1323) 각각은 별개의 구성 요소이거나, 또는, 적어도 하나의 집적화된 회로에 포함될 수 있다.
상기 프로세서(1322)는 적어도 하나의 하드웨어 칩(chip)을 포함할 수 있다. 상기 프로세서(1322)는 소프트웨어 모듈을 실행함으로써 상기 서버가 상기 소프트웨어 모듈에 의해 구현되는 기능을 수행하게 한다. 특히, 상기 프로세서(1322)는 상기 메모리(1310)에 저장된 소프트웨어 모듈들과 연동하여 본 발명의 실시 예를 실시한다. 또한, 상기 프로세서(1322)는 적어도 하나의 데이터 프로세서, 이미지 프로세서를 포함할 수 있다. 본 발명의 다른 실시 예에 따라, 상기 데이터 프로세서, 상기 이미지 프로세서는 별도의 하드웨어로 구성될 수 있다. 또한, 상기 프로세서(1322)는 서로 다른 기능을 수행하는 다수의 프로세서들로 구성될 수 있다.
상기 메모리 인터페이스(1321)는 상기 메모리(1310) 및 상기 프로세서(1322) 간 데이터 및 제어 신호의 이동 경로를 제공한다. 예컨데, 상기 메모리 인터페이스(1321)는 상기 메모리(1310)에 접근하기 위한 인터페이스를 제공한다. 상기 주변 장치 인터페이스(1323)는 상기 서버의 적어도 하나의 주변 장치를 상기 프로세서(1321) 및 상기 메모리(1310)에 연결시킨다.
상기 통신 서브 시스템(1330)은 통신을 위한 인터페이스를 제공한다. 즉, 상기 통신 서브 시스템(1330)은 송수신 비트열 및 물리적 송신 신호 간 변환을 수행한다.
상기 도 13에 도시된 실시 예의 경우, 본 발명의 실시 예에 따른 업데이트 제어 기능이 소프트웨어 구성 요소로서 구현된다. 그러나, 본 발명의 다른 실시 예에 따라, 상기 업데이트 제어 기능은 하드웨어 구성 요소로 구현될 수 있다. 이 경우, 상기 업데이트 제어 모듈(1315)의 기능은 상기 프로세서 유닛(1320) 내에 적어도 하나의 프로세서로 구현될 수 있다.
상술한 본 발명의 실시 예에 따른 어플리케이션 업데이트 제어 방안은, 마켓플레이스 어플리케이션에서 어플리케이션 업데이트 뿐만 아니라, 일반적인 푸시(push) 기반의 전자 장치 및 서버 간의 통신에 적용 가능하다. 즉, 푸시 기반의 통신에서 어플리케이션과 관련되어 갱신되거나, 또는, 서버와 동기화되어야 하는 모든 종류의 업데이트에 본 발명이 적용될 수 있다.
본 발명의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 발명의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: Compact Disc-ROM), 디지털 다목적 디스크(DVDs: Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 상기 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 발명의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 발명의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 발명의 구체적인 실시 예들에서, 발명에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 발명이 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (33)

  1. 전자 장치에 설치된 어플리케이션(application)을 업데이트(update)하는 방법에 있어서,
    어플리케이션에 대한 업데이트가 필요함을 알리는 업데이트 통지(update notification)를 차단(intercept)하는 과정과,
    업데이트 정책에 따른 업데이트 조건이 만족되는지 여부를 판단하는 과정과,
    상기 업데이트 조건이 만족되지 아니하면, 다음 판단 시점까지 상기 업데이트 통지의 전달을 지연시키는 과정을 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 업데이트 정책은, 업데이트가 허용되는 어플리케이션의 우선순위 범위, 업데이트가 허용되는 어플리케이션의 푸시 통지(push notification)의 우선순위 범위, 업데이트가 허용되는 전원 종류, 업데이트가 허용되는 배터리(battery) 레벨, 업데이트가 허용되는 연결 종류, 업데이트가 허용되는 연결의 신호 품질 중 적어도 하나를 정의하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 업데이트 조건이 만족되는지 여부를 판단하는 과정은,
    상기 업데이트 조건의 만족 여부를 판단하기 위한 기초 정보를 수집하는 과정을 포함하며,
    상기 기초 정보는, 푸시 통지의 우선순위, 어플리케이션의 우선순위, 상기 전자 장치의 전원 종류, 상기 전자 장치의 배터리 레벨, 상기 전자 장치의 연결 종류, 상기 전자 장치의 신호 품질 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 업데이트 조건이 만족되는지 여부를 판단하는 과정은,
    상기 전자 장치로부터 상기 기초 정보를 수신하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 업데이트 조건이 만족되면, 상기 어플리케이션을 업데이트하는 어플리케이션으로 상기 업데이트 통지를 전달하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 업데이트 조건이 만족되면, 서로 다른 통신 망들을 통한 다중 연결을 통해 상기 업데이트를 위한 데이터를 수신하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 업데이트 조건이 만족되면, 상기 업데이트 통지를 상기 전자 장치로 송신하는 푸시 서버로 상기 업데이트 통지를 전달하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 업데이트 정책을 설정하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 업데이트 정책을 설정하는 과정은,
    상기 업데이트 정책을 설정하기 위한 UI(User Interface)를 표시하는 과정과,
    상기 UI를 통해 입력되는 정보에 따라 상기 업데이트 정책을 설정하는 과정을 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 업데이트 정책을 설정하기 위한 UI는, 어플리케이션의 우선순위 자동 설정 여부를 선택하는 항목, 어플리케이션의 우선순위에 따른 업데이트 여부를 직접 설정하는 항목, 어플리케이션의 우선순위를 지정하는 항목, 업데이트가 허용되는 전원 종류를 지정하는 항목, 업데이트가 허용되는 배터리 레벨을 지정하는 항목, 업데이트가 금지되는 배터리 레벨을 지정하는 항목, 업데이트가 허용되는 연결 종류를 지정하는 항목, 업데이트가 허용되는 신호 품질을 지정하는 항목, 업데이트가 허용되는 푸시 통지의 우선순위를 지정하는 항목 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  11. 제8항에 있어서,
    상기 업데이트 정책을 설정하는 과정은,
    상기 전자 장치로부터 상기 업데이트 정책을 수신하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    상기 차단된 업데이트 통지가 존재함을 알리는 UI를 표시하는 과정과,
    사용자에 의해 업데이트 진행이 선택되면, 상기 업데이트 정책과 무관하게 상기 업데이트 통지를 전달하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  13. 제1항에 있어서,
    상기 업데이트 통지는, 푸시 통지의 우선순위를 나타내는 지시자를 포함하는 것을 특징으로 하는 방법.
  14. 제1항에 있어서,
    상기 업데이트 통지를 차단하는 과정은,
    IP(Internet Protocol)를 포함하는 네트워크 계층(network layer)에서 상기 업데이트 통지를 후킹(Hooking)하는 과정을 포함하는 것을 특징으로 하는 방법.
  15. 제1항에 있어서,
    상기 업데이트 통지를 차단하는 과정은,
    상기 전자 장치 또는 서버의 OS(Operating System) 및 어플리케이션 프레임워크(Application Framework) 중 하나에서 상기 업데이트 통지를 후킹(Hooking)하는 과정을 포함하는 것을 특징으로 하는 방법.
  16. 제1항에 있어서,
    상기 업데이트 통지를 차단하는 과정은,
    상기 업데이트 통지 차단을 위한 API(Application Program Interface)를 이용하여 상기 업데이트 통지를 제공받는 과정을 포함하는 것을 특징으로 하는 방법.
  17. 전자 장치에 설치된 어플리케이션(application)을 업데이트(update)하는 장치에 있어서,
    어플리케이션의 업데이트 시점을 제어하기 위한 업데이트 정책을 저장하는 메모리와,
    어플리케이션에 대한 업데이트가 필요함을 알리는 업데이트 통지(update notification)를 차단(intercept)하고, 업데이트 정책에 따른 업데이트 조건이 만족되는지 여부를 판단하고, 상기 업데이트 조건이 만족되지 아니하면, 다음 판단 시점까지 상기 업데이트 통지의 전달을 지연시키는 프로세서를 포함하는 것을 특징으로 하는 장치.
  18. 제17항에 있어서,
    상기 업데이트 정책은, 업데이트가 허용되는 어플리케이션의 우선순위 범위, 업데이트가 허용되는 어플리케이션의 푸시 통지(push notification)의 우선순위 범위, 업데이트가 허용되는 전원 종류, 업데이트가 허용되는 배터리(battery) 레벨, 업데이트가 허용되는 연결 종류, 업데이트가 허용되는 연결의 신호 품질 중 적어도 하나를 정의하는 것을 특징으로 하는 장치.
  19. 제17항에 있어서,
    상기 프로세서는, 상기 업데이트 조건의 만족 여부를 판단하기 위한 기초 정보를 수집하며,
    상기 기초 정보는, 푸시 통지의 우선순위, 어플리케이션의 우선순위, 상기 전자 장치의 전원 종류, 상기 전자 장치의 배터리 레벨, 상기 전자 장치의 연결 종류, 상기 전자 장치의 신호 품질 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  20. 제19항에 있어서,
    상기 전자 장치로부터 상기 기초 정보를 수신하는 통신부를 더 포함하는 것을 특징으로 하는 장치.
  21. 제17항에 있어서,
    상기 프로세서는, 상기 업데이트 조건이 만족되면, 상기 어플리케이션을 업데이트하는 어플리케이션으로 상기 업데이트 통지를 전달하는 것을 특징으로 하는 장치.
  22. 제21항에 있어서,
    상기 프로세서는, 상기 업데이트 조건이 만족되면, 서로 다른 통신 망들을 통한 다중 연결을 통해 상기 업데이트를 위한 데이터를 수신하도록 제어하는 것을 특징으로 하는 장치.
  23. 제17항에 있어서,
    상기 프로세서는, 상기 업데이트 조건이 만족되면, 상기 업데이트 통지를 상기 전자 장치로 송신하는 푸시 서버로 상기 업데이트 통지를 전달하는 것을 특징으로 하는 장치.
  24. 제17항에 있어서,
    상기 프로세서는, 상기 업데이트 정책을 설정하는 것을 특징으로 하는 장치.
  25. 제24항에 있어서,
    상기 프로세서는, 상기 업데이트 정책을 설정하기 위해, 상기 업데이트 정책을 설정하기 위한 UI(User Interface)를 표시하고, 상기 UI를 통해 입력되는 정보에 따라 상기 업데이트 정책을 설정하는 것을 특징으로 하는 장치.
  26. 제25항에 있어서,
    상기 업데이트 정책을 설정하기 위한 UI는, 어플리케이션의 우선순위 자동 설정 여부를 선택하는 항목, 어플리케이션의 우선순위에 따른 업데이트 여부를 직접 설정하는 항목, 어플리케이션의 우선순위를 지정하는 항목, 업데이트가 허용되는 전원 종류를 지정하는 항목, 업데이트가 허용되는 배터리 레벨을 지정하는 항목, 업데이트가 금지되는 배터리 레벨을 지정하는 항목, 업데이트가 허용되는 연결 종류를 지정하는 항목, 업데이트가 허용되는 신호 품질을 지정하는 항목, 업데이트가 허용되는 푸시 통지의 우선순위를 지정하는 항목 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  27. 제25항에 있어서,
    상기 전자 장치로부터 상기 업데이트 정책을 수신하는 통신부를 더 포함하는 것을 특징으로 하는 장치.
  28. 제17항에 있어서,
    상기 프로세서는, 상기 차단된 업데이트 통지가 존재함을 알리는 UI를 표시하고, 사용자에 의해 업데이트 진행이 선택되면, 상기 업데이트 정책과 무관하게 상기 업데이트 통지를 전달하는 것을 특징으로 하는 장치.
  29. 제17항에 있어서,
    상기 업데이트 통지는, 푸시 통지의 우선순위를 나타내는 지시자를 포함하는 것을 특징으로 하는 장치.
  30. 제17항에 있어서,
    상기 프로세서는, 상기 업데이트 통지를 차단하기 위해, IP(Internet Protocol)를 포함하는 네트워크 계층(network layer)에서 상기 업데이트 통지를 후킹(Hooking)하는 것을 특징으로 하는 장치.
  31. 제17항에 있어서,
    상기 프로세서는, 상기 업데이트 통지를 차단하기 위해, 상기 전자 장치 또는 서버의 OS(Operating System) 및 어플리케이션 프레임워크(Application Framework) 중 하나에서 상기 업데이트 통지를 후킹(Hooking)하는 것을 특징으로 하는 장치.
  32. 제17항에 있어서,
    상기 프로세서는, 상기 업데이트 통지를 차단하기 위해, 상기 업데이트 통지 차단을 위한 API(Application Program Interface)를 이용하여 상기 업데이트 통지를 제공받는 것을 특징으로 하는 장치.
  33. 전자 장치에 있어서,
    적어도 소프트웨어 모듈을 저장하는 메모리와,
    상기 메모리에 저장된 상기 적어도 하나의 소프트웨어 모듈을 실행할 수 있는 프로세서를 포함하며,
    상기 적어도 하나의 소프트웨어 모듈은, 어플리케이션에 대한 업데이트가 필요함을 알리는 업데이트 통지(update notification)를 차단(intercept)하고, 업데이트 정책에 따른 업데이트 조건이 만족되는지 여부를 판단하고, 상기 업데이트 조건이 만족되지 아니하면, 다음 판단 시점까지 상기 업데이트 통지의 전달을 지연시키는 적어도 하나의 명령어 집합을 포함하는 것을 특징으로 하는 장치.
KR1020130038678A 2013-04-09 2013-04-09 전자 장치에서 어플리케이션을 업데이트하기 위한 장치 및 방법 KR20140122072A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130038678A KR20140122072A (ko) 2013-04-09 2013-04-09 전자 장치에서 어플리케이션을 업데이트하기 위한 장치 및 방법
PCT/KR2014/002862 WO2014168375A1 (en) 2013-04-09 2014-04-03 Method and apparatus for updating application in electronic device
US14/249,200 US20140304700A1 (en) 2013-04-09 2014-04-09 Method and apparatus for updating application in electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130038678A KR20140122072A (ko) 2013-04-09 2013-04-09 전자 장치에서 어플리케이션을 업데이트하기 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20140122072A true KR20140122072A (ko) 2014-10-17

Family

ID=51655427

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130038678A KR20140122072A (ko) 2013-04-09 2013-04-09 전자 장치에서 어플리케이션을 업데이트하기 위한 장치 및 방법

Country Status (3)

Country Link
US (1) US20140304700A1 (ko)
KR (1) KR20140122072A (ko)
WO (1) WO2014168375A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017069436A1 (ko) * 2015-10-23 2017-04-27 삼성전자 주식회사 전자 장치 및 그의 제어 방법
US9794881B2 (en) 2014-04-14 2017-10-17 Samsung Electronics Co., Ltd. Method and apparatus for controlling aperiodic traffic in electronic device
WO2022080539A1 (ko) * 2020-10-16 2022-04-21 엘지전자 주식회사 사물인터넷 기기의 소프트웨어를 업데이트하는 소프트웨어 업데이트 게이트웨이 및 그 방법

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014197521A1 (en) 2013-06-03 2014-12-11 Seven Networks, Inc. Blocking/unblocking algorithms for signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
WO2015126974A1 (en) * 2014-02-18 2015-08-27 Seven Networks, Inc. Policy management for signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9400643B2 (en) * 2014-03-03 2016-07-26 Google Inc. Methods and systems for updating components on a computing device
US10380488B2 (en) 2014-05-30 2019-08-13 Apple Inc. Methods and system for managing predictive models
CN104484378A (zh) * 2014-12-09 2015-04-01 深圳市中兴移动通信有限公司 一种通知消息推送方法、装置及终端
WO2016196106A1 (en) * 2015-05-29 2016-12-08 Nike, Inc. Athletic activity data device firmware update
CN112634643B (zh) * 2015-05-29 2022-06-14 荣耀终端有限公司 交通信息更新方法及装置
US10306687B2 (en) 2015-05-29 2019-05-28 Nike, Inc. Transmitting athletic data using non-connected state of discovery signal
US10045195B2 (en) 2015-05-29 2018-08-07 Nike, Inc. Athletic data aggregation and display system
US10721290B2 (en) 2015-06-05 2020-07-21 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment using executable containers and virtual machines
CN104881328B (zh) * 2015-06-24 2019-02-05 联想(北京)有限公司 数据处理方法和数据处理装置
US10963565B1 (en) * 2015-10-29 2021-03-30 Palo Alto Networks, Inc. Integrated application analysis and endpoint protection
KR101792046B1 (ko) * 2015-10-29 2017-11-20 현대자동차주식회사 단말기, 차량 및 그 제어 방법
JP6323480B2 (ja) * 2016-03-02 2018-05-16 住友電気工業株式会社 プログラム更新システム、プログラム更新方法及びコンピュータプログラム
US11422672B2 (en) 2016-04-11 2022-08-23 Samsung Electronics Co., Ltd. Managing updates in a computing system using multiple access methods
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US9781122B1 (en) 2016-05-11 2017-10-03 Oracle International Corporation Multi-tenant identity and data security management cloud service
US10581820B2 (en) 2016-05-11 2020-03-03 Oracle International Corporation Key generation and rollover
US9838376B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Microservices based multi-tenant identity and data security management cloud service
US9838377B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10454940B2 (en) 2016-05-11 2019-10-22 Oracle International Corporation Identity cloud service authorization model
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
CN106020427B (zh) * 2016-05-31 2018-09-21 广东欧珀移动通信有限公司 一种关联应用的处理方法、装置及移动终端
US10516672B2 (en) 2016-08-05 2019-12-24 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US10721237B2 (en) 2016-08-05 2020-07-21 Oracle International Corporation Hierarchical processing for a virtual directory system for LDAP to SCIM proxy service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10263947B2 (en) 2016-08-05 2019-04-16 Oracle International Corporation LDAP to SCIM proxy service
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US10530578B2 (en) 2016-08-05 2020-01-07 Oracle International Corporation Key store service
CN107704278A (zh) * 2016-08-08 2018-02-16 北京京东尚科信息技术有限公司 应用升级方法和装置
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10511589B2 (en) 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
US10484243B2 (en) 2016-09-16 2019-11-19 Oracle International Corporation Application management for a multi-tenant identity cloud service
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
WO2018053258A1 (en) 2016-09-16 2018-03-22 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10341354B2 (en) 2016-09-16 2019-07-02 Oracle International Corporation Distributed high availability agent architecture
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
US10649679B2 (en) 2016-11-23 2020-05-12 Nutanix, Inc. Containerized application extensions in distributed storage systems
US10761911B2 (en) * 2017-02-13 2020-09-01 Nutanix, Inc. Asynchronous application interactions in distributed systems
US10261836B2 (en) 2017-03-21 2019-04-16 Oracle International Corporation Dynamic dispatching of workloads spanning heterogeneous services
CN106973099B (zh) * 2017-03-28 2019-08-06 Oppo广东移动通信有限公司 一种数据更新方法、装置及系统
US10454915B2 (en) 2017-05-18 2019-10-22 Oracle International Corporation User authentication using kerberos with identity cloud service
KR102329770B1 (ko) * 2017-07-06 2021-11-22 삼성전자주식회사 푸시 알림을 제공하기 위한 방법 및 그 전자 장치
US9935984B1 (en) * 2017-07-31 2018-04-03 Malwarebytes Inc. Scalable cloud-based endpoint security system
CN108196960B (zh) * 2017-08-31 2023-08-04 中兴通讯股份有限公司 一种应用的管控方法、终端及存储介质
US10348858B2 (en) 2017-09-15 2019-07-09 Oracle International Corporation Dynamic message queues for a microservice based cloud service
US10831789B2 (en) 2017-09-27 2020-11-10 Oracle International Corporation Reference attribute query processing for a multi-tenant cloud service
US11271969B2 (en) 2017-09-28 2022-03-08 Oracle International Corporation Rest-based declarative policy management
US10834137B2 (en) 2017-09-28 2020-11-10 Oracle International Corporation Rest-based declarative policy management
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
US10652323B2 (en) 2017-11-30 2020-05-12 Facebook, Inc. Secure and seamless offline file transfer through peer to peer wireless communication
US10554747B2 (en) * 2017-11-30 2020-02-04 Facebook, Inc. Secure file transfer using peer to peer wireless communication with authentication through social network connections
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US11456920B2 (en) * 2018-02-23 2022-09-27 Ricoh Company, Ltd. Mechanisms for cloud-based configuration and management of network devices using network mediators implemented in the network devices
US11444830B2 (en) * 2018-02-23 2022-09-13 Ricoh Company, Ltd. Mechanisms for cloud-based configuration and management of network devices using network mediators implemented separately from the network devices
US10931656B2 (en) 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US11165634B2 (en) 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US10798165B2 (en) 2018-04-02 2020-10-06 Oracle International Corporation Tenant data comparison for a multi-tenant identity cloud service
US11258775B2 (en) 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
US10437581B1 (en) * 2018-04-20 2019-10-08 At&T Mobility Ii Llc Internet of things platform for handling firmware transfer on machine-to-machine devices
US11012444B2 (en) 2018-06-25 2021-05-18 Oracle International Corporation Declarative third party identity provider integration for a multi-tenant identity cloud service
US10764273B2 (en) 2018-06-28 2020-09-01 Oracle International Corporation Session synchronization across multiple devices in an identity cloud service
US11693835B2 (en) 2018-10-17 2023-07-04 Oracle International Corporation Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service
US11321187B2 (en) 2018-10-19 2022-05-03 Oracle International Corporation Assured lazy rollback for a multi-tenant identity cloud service
US11651357B2 (en) 2019-02-01 2023-05-16 Oracle International Corporation Multifactor authentication without a user footprint
US20200252267A1 (en) * 2019-02-04 2020-08-06 Hewlett Packard Enterprise Development Lp Priority-based decision making for network switch state change
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
US11321343B2 (en) 2019-02-19 2022-05-03 Oracle International Corporation Tenant replication bootstrap for a multi-tenant identity cloud service
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US11611548B2 (en) 2019-11-22 2023-03-21 Oracle International Corporation Bulk multifactor authentication enrollment
JPWO2021186204A1 (ko) * 2020-03-18 2021-09-23
US11983522B2 (en) * 2020-10-30 2024-05-14 Ayla Networks, Inc. Edge-based intelligence for over the air update
US11606242B1 (en) 2022-03-10 2023-03-14 Ricoh Company, Ltd. Coordinated monitoring of legacy output devices
US11894973B2 (en) 2022-03-10 2024-02-06 Ricoh Company, Ltd. Assigning and prioritizing mediation servers for monitoring legacy devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE29911462U1 (de) * 1999-07-02 1999-11-18 Akzenta Paneele & Profile Gmbh Befestigungssystem für Paneele
CA2357382A1 (en) * 2001-09-17 2003-03-17 Soma Networks, Inc. Software update method, apparatus and system
US20050002169A1 (en) * 2001-11-27 2005-01-06 Valter Drazic Polarization recycler
JP4602644B2 (ja) * 2003-03-28 2010-12-22 株式会社エヌ・ティ・ティ・ドコモ 通信端末装置およびアプリケーションプログラム
JP4392294B2 (ja) * 2004-06-15 2009-12-24 株式会社日立製作所 通信統計収集装置
US20080029340A1 (en) * 2006-08-04 2008-02-07 White Ronald E Security cone-door for a ladder
US20080113656A1 (en) * 2006-11-15 2008-05-15 Lg Telecom Ltd. System and method for updating contents
US20100019927A1 (en) * 2007-03-14 2010-01-28 Seth Cirker Privacy ensuring mobile awareness system
US8271969B2 (en) * 2007-08-09 2012-09-18 Research In Motion Limited Method and apparatus for determining the state of a computing device
JP5274284B2 (ja) * 2009-01-30 2013-08-28 キヤノン株式会社 電子機器、ソフトウェアのアップデート方法、及びコンピュータプログラム
US20120030399A1 (en) * 2010-05-31 2012-02-02 Almog Ben-Harosh Mobile phone device platform
US8671299B2 (en) * 2011-05-26 2014-03-11 Google Inc. Delaying the initiation of transitioning to a lower power mode by placing a computer system into an intermediate power mode between a normal power mode and the lower power mode
US9405526B2 (en) * 2012-08-07 2016-08-02 Microsoft Technology Licensing, Llc Initiating update operations
US9727326B2 (en) * 2013-03-15 2017-08-08 Apple Inc. Providing customized notifications for security software updates

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794881B2 (en) 2014-04-14 2017-10-17 Samsung Electronics Co., Ltd. Method and apparatus for controlling aperiodic traffic in electronic device
WO2017069436A1 (ko) * 2015-10-23 2017-04-27 삼성전자 주식회사 전자 장치 및 그의 제어 방법
WO2022080539A1 (ko) * 2020-10-16 2022-04-21 엘지전자 주식회사 사물인터넷 기기의 소프트웨어를 업데이트하는 소프트웨어 업데이트 게이트웨이 및 그 방법

Also Published As

Publication number Publication date
US20140304700A1 (en) 2014-10-09
WO2014168375A1 (en) 2014-10-16

Similar Documents

Publication Publication Date Title
KR20140122072A (ko) 전자 장치에서 어플리케이션을 업데이트하기 위한 장치 및 방법
CN109392034B (zh) 一种移动性管理方法、用户设备及网络侧设备
EP3496335B1 (en) Method and apparatus for managing broadcast message
CN107258092B (zh) 用于移动客户端设备的发现和数据传输的云支持
EP2649859B1 (en) Automatically enabling wireless communication
US20130339520A1 (en) Method and apparatus for performing capability discovery of rich communication suite in a portable terminal
US10608938B2 (en) Method and apparatus for controlling traffic quality
CA2933865A1 (en) A method of locating a mobile device and a cloud computer system employing same
US11096177B2 (en) Operation mode switching method and user equipment
CN109428839B (zh) 一种cdn调度方法、设备及系统
EP2658304A1 (en) Setting an Optimal Ping Interval
US10757692B2 (en) Method for determining network standard in wireless communications network, access point device, terminal device, and radio network controller
US10038987B2 (en) Reminders according to used/connected/nearby device capability
EP2907359B1 (en) Method for the reduction of signalling traffic on mobile devices
WO2016023201A1 (zh) 一种并发业务的处理方法及终端
US20200015159A1 (en) Access point connection method and terminal
JP5525644B1 (ja) 情報取得装置、および情報取得方法
CN108512864A (zh) 一种网络请求调度的方法及装置
JP2016162080A (ja) ネットワーク切替方法、ネットワーク切替プログラム、及び情報処理装置
US9167380B2 (en) Activating a mobile device based on location of mobile device in a sector of a cell
JP2019046301A (ja) 携帯型装置、制御装置、携帯型装置の制御方法、制御プログラム、および記録媒体
KR20150016733A (ko) 단말기의 이동성과 통신망 이용특성에 근거하여 무선 통신망에의 접속을 제어하는 방법과 장치
JP2013153378A (ja) 通信システム、通信方法、通信プログラムおよび通信装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application