KR20080071195A - 통신 시스템 내의 디바이스들에 소프트웨어 업그레이드통지의 전달 방법 - Google Patents

통신 시스템 내의 디바이스들에 소프트웨어 업그레이드통지의 전달 방법 Download PDF

Info

Publication number
KR20080071195A
KR20080071195A KR1020087015291A KR20087015291A KR20080071195A KR 20080071195 A KR20080071195 A KR 20080071195A KR 1020087015291 A KR1020087015291 A KR 1020087015291A KR 20087015291 A KR20087015291 A KR 20087015291A KR 20080071195 A KR20080071195 A KR 20080071195A
Authority
KR
South Korea
Prior art keywords
server
token value
protocol
client
check
Prior art date
Application number
KR1020087015291A
Other languages
English (en)
Other versions
KR100944143B1 (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 KR20080071195A publication Critical patent/KR20080071195A/ko
Application granted granted Critical
Publication of KR100944143B1 publication Critical patent/KR100944143B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/725Cordless telephones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

무선 통신 환경에서 유니캐스트 및 멀티캐스트 통신 기술들을 사용하는 사용자 디바이스들에게 소프트웨어 업그레이드 통지들을 제공하는 것을 용이하게 하는 시스템들 및 방법들이 설명된다. 다운로드를 시도하거나 그 통지를 수신하기 전에 주어진 소프트웨어 업데이트가 사용자 디바이스와 관련이 있는지 여부에 관한 결정이 행해지도록 함으로써 대역폭 및 전력 소비가 최소화된다. 또한, 버전 넘버 및 소프트웨어 ID 의 평가는 유니캐스트 소프트웨어 체크-업 프로토콜을 사용해야할지 멀티캐스트 소프트웨어 체크-업 프로토콜을 사용해야 할지를 결정하는 것을 용이하게 한다. 소프트웨어 업그레이드 정보가 또한 미리 결정된 시간 주기 동안 멀티캐스트 채널을 통해 송신될 수도 있고, 그 후, 사용자 디바이스는 소프트웨어 업그레이드 정보를 수신하기 위해 유니캐스트 체크-업 프로토콜을 개시할 수도 있다.
유니캐스트, 멀티캐스트, 소프트웨어 업그레이드 통지, 대역폭 소비, 전력 소비, 체크-업 프로토콜

Description

통신 시스템 내의 디바이스들에 소프트웨어 업그레이드 통지의 전달 방법{METHOD FOR DELIVERY OF SOFTWARE UPGRADE NOTIFICATION TO DEVICES IN COMMUNICATION SYSTEMS}
35 U.S.C.§119 에 따른 우선권 주장
본 출원은 "통신 시스템 내의 디바이스들에 소프트웨어 업그레이드 통지의 전달 방법 및 장치"의 명칭으로 2005년 11월 23일자로 출원된 미국 가출원 제60/739,873호를 우선권 주장하며, 이 출원은 본 명세서에 참조로 그 전체가 포함된다.
배경
I. 분야
다음의 설명은 일반적으로 무선 통신에 관한 것으로서, 특히 무선 통신 환경에서 유니캐스트 및 멀티캐스트 네트워크들을 사용하는 디바이스들에 대해 소프트웨어 업그레이드 통지를 용이하게 하는 것에 관한 것이다.
II . 배경
무선 통신 시스템은 전세계의 대다수의 사람들이 그것을 통해 통신하게 된 널리 보급된 수단이 되었다. 무선 통신 디바이스는 소비자의 필요를 충족시키고 휴대성 및 편리성을 개선하기 위해 더욱 소형이 되고 더욱 강력해졌다. 셀 룰러 전화와 같은 이동 디바이스들에서의 프로세싱 전력의 증가는 무선 네트워크 송신 시스템에 대한 수요의 증가를 초래했다. 그러한 시스템은 통상 그것을 통해 통신하는 셀룰러 디바이스들 처럼 쉽게 업데이트되지 않는다. 이동 디바이스 성능이 확장함에 따라, 새롭고 개선된 무선 디바이스 성능을 완전히 활용하는 것을 용이하게 하는 방식으로 예전의 무선 네트워크 시스템을 유지하는 것은 어려울 수 있다.
(예를 들어, 주파수, 시간, 및 코드 분할 기술들을 사용하는) 통상의 무선 통신 네트워크는 커버리지 영역을 제공하는 하나 이상의 기지국들 및 그 커버리지 영역 내에서 데이터를 송신 및 수신할 수 있는 하나 이상의 이동 (예를 들어, 무선) 단말기들을 포함한다. 통상적인 기지국은 브로드캐스트, 멀티캐스트 및/또는 유니캐스트 서비스들을 위해 다수의 데이터 스트림들을 동시에 송신할 수 있으며, 여기서 데이터 스트림은 이동 단말기에게 독립적인 수신의 관심이 있을 수 있는 데이터의 스트림이다. 그 기지국의 커버리지 영역 내의 이동 단말기는 복합적인 스트림에 의해 반송되는 하나, 하나 보다 많은, 또는 모든 데이터 스트림들을 수신하는데 관심이 있을 수 있다. 마찬가지로, 이동 단말기는 데이터를 기지국 또는 다른 이동 단말기로 송신할 수 있다. 기지국과 이동 단말기 간 또는 이동 단말기들 간의 그러한 통신은 채널 변동 및/또는 간섭 전력 변동에 기인하여 열화될 수 있다.
소프트웨어 업그레이드 체크는 예를 들어 소프트웨어 애플리케이션의 론치 (launch) 시에 유선 통신 환경에서 수행될 수도 있고, 또는 애플리케이션이 지정된 서버에 유니캐스트 접속을 확립하거나 이용가능한 임의의 소프트웨어 업그레이드가 존재하는지 여부를 체크할 때와 같이 사용자 개시에 의해 수행될 수도 있다. 그러나, 오늘날의 이동 디바이스들은 무선 네트워크를 통해 소프트웨어를 다운로드할 수 있으므로 소프트웨어 업그레이드 통지를 위해 시스템에 배선에 의해 접속될 필요가 없다. 따라서, 그러한 무선 네트워크 시스템에서의 처리량을 개선하는 시스템 및/또는 방법에 대한 필요가 본 기술분야에 존재한다.
요약
다음은 그러한 실시형태들에 대한 기본적인 이해를 제공하기 위해 하나 이상의 실시형태들의 단순화된 요약을 제공한다. 이러한 요약은 모든 고려된 실시형태들의 확장된 개관이 아니고, 모든 실시형태들의 핵심적이거나 중요한 요소들을 식별하지도, 임의의 또는 모든 실시형태들의 범위를 한정하지도 않는 것으로 의도된다. 그것의 유일한 목적은 이후에 제공되는 더욱 상세화된 설명에 대한 서문으로서 하나 이상의 실시형태들의 몇몇 개념들을 단순화된 형태로 제공하는 것이다.
여기에 제공된 다양한 양태들은 멀티캐스트 (브로드캐스트) 및 유니캐스트 네트워크들을 사용하는 디바이스 내의 애플리케이션에 소프트웨어 업그레이드 통지를 제공하는 것에 관한 것이다. 이들 2 개의 형태의 네트워크들 (멀티캐스트 및 유니캐스트) 은 유선이거나 무선일 수 있다. 그러한 애플리케이션의 예는 이용가능한 2 개의 형태의 네트워크들, 즉 (1) 멀티캐스트 (브로드캐스트) 네트워크로서의 FLO (Forward-Link-Only) 및 (2) 유니캐스트 네트워크로서의 CDMA 1x EV- DO 을 갖는 FLO 시스템이다. 통상, 소프트웨어 업그레이드는 자주 발생하지 않는다; 하지만, 디바이스들은 그럼에도 불구하고, 소프트웨어가 특징 보강 (feature enhancement), 버그 픽스, 보안 침해 등과 같이 중요한 이유들로 업그레이드될 수도 있기 때문에, 소프트웨어 업그레이드를 위해 최신의 상태로 유지될 필요가 있다. 여기에 제공된 양태들은 무선 네트워크 내의 디바이스들로의 빈번한, 빈번하지 않은, 및/또는 중요한 정보 전달 중 임의의 형태에 적용될 수도 있다. 다양한 양태들은 소비 자원 및 서버 부하를 최소화하여 디바이스들로의 소프트웨어 업그레이드 통지를 신속히 전달하는 것을 용이하게 하여, 디바이스가 네트워크에 접속될 때마다 디바이스가 소프트웨어 업그레이드 통지를 위해 최신의 상태에 있을 수 있도록 한다.
일 양태에 따르면, 무선 통신 환경에서 소프트웨어 업그레이드 통지를 제공하는 방법은 서버로부터 소프트웨어 버전 정보를 수신하는 단계, 소프트웨어 업그레이드가 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 체크-업 프로토콜을 수행하는 단계, 및 소프트웨어 업그레이드 통지를 수신하도록 액세스 프로토콜을 수행하는 단계를 포함할 수도 있다. 방법은 멀티캐스트 채널을 통해 소프트웨어 업그레이드 통지를 송신하는 단계를 추가적으로 포함할 수도 있다. 체크-업 프로토콜은 서버와 적어도 하나의 사용자 디바이스 간의 멀티캐스트 접속을 통해 수행되는 "푸시 (push)" 체크-업 프로토콜일 수도 있으며, 이것은 멀티캐스트 데이터 채널을 통해 소프트웨어 버전 정보를 수신하는 것 및 수신된 소프트웨어 버전 정보가 사용자 디바이스와 관련이 있는지 여부를 결정하기 위해 버전 정보 와 함께 수신된 소프트웨어 ID 가 사용자 디바이스에 대응하는지 여부를 평가하는 것을 포함할 수도 있다. 체크-업 프로토콜은 또한 사용자 디바이스와 서버 간에 점대점 접속을 생성하는 것, 서버로부터 소프트웨어 업그레이드 정보를 요청하는 것, 소트트웨어 버전 정보를 포함하는 서버 응답을 수신하는 것, 및 서버 응답 내의 버전 넘버가 사용자 디바이스에 저장된 소프트웨어와 연관된 버전 넘버보다 큰 경우 소프트웨어 업그레이드 통지를 수신하는 것을 포함하는 "풀 (pull)" 체크-업 프로토콜일 수도 있다. 방법은 또한 토큰-기반 액세스 프로토콜을 사용하고 클라이언트 토큰이 사용자 디바이스에서 유효한지 여부를 결정하는 것, 풀 체크-업 프로토콜을 수행하는 것, 클라이언트 토큰을 생성하는 것, 및 클라이언트 토큰 값이 유효하지 않은 경우 클라이언트 토큰 값을 서버 토큰 값과 동일하도록 설정하는 것, 및 클라이언트 토큰 값이 유효한 경우 클라이언트 토큰 값이 서버 토큰 값 (모듈로 n) 이상인지 여부를 결정하는 것을 포함한다. 또한, 방법은 클라이언트 토큰 값이 서버 토큰 값 (모듈로 n) 미만인 경우, 클라이언트 토큰 값이 서버 토큰 값 - m (모듈로 n) (여기서 서버는 m (양의 정수) 개의 가장 최근의 서버 토큰 값들과 연관된 소프트웨어 업그레이드 통지들을 송신한다) 과 서버 토큰 값 - 1 (모듈로 n) (여기서 n 은 최대 토큰 값) 사이에 있는지 여부를 결정하는 단계를 포함한다. 방법은 푸시 체크-업 프로토콜을 수행하고 만일 클라이언트 토큰 값이 서버 토큰 값 - m (모듈로 n) 과 서버 토큰 값 -1 (모듈로 n) 사이에 있는 경우 클라이언트 토큰 값을 서버 토큰 값과 동일하게 설정하는 단계, 및 풀 체크-업 프로토콜을 수행하고 만일 클라이언트 토큰 값이 서버 토큰 값 - m (모듈로 n) 과 서버 토큰 값 -1 (모듈로 n) 사이에 있지 않은 경우 클라이언트 토큰 값을 서버 토큰 값과 동일하게 설정하는 단계를 추가적으로 포함할 수도 있다.
또 다른 양태에 따르면, 무선 통신 환경에서 멀티캐스트 및 유니캐스트 접속을 통해 통신하는 사용자 디바이스들에 소프트웨어 업그레이드 통지를 제공하는 것을 용이하게 하는 장치는 소프트웨어 버전 정보를 수신하는 수신기, 및 소프트웨어 업그레이드 통지를 획득하기 위해 체크-업 프로토콜 및 액세스 프로토콜을 수행하는 프로세서를 포함할 수도 있다. 프로세서는 방법에 대해 상술된 바와 같이, 푸시 체크-업 프로토콜 및 풀 체크-업 프로토콜 중 어느 하나 또는 양쪽 모두를 수행할 수도 있다. 예를 들어, 프로세서는 어느 체크-업 프로토콜을 사용해야 할지를 결정하기 위해 클라이언트 토큰이 사용자 디바이스에서 유효한지를 결정할 수도 있고, 클라이언트 토큰 값을 서버 토큰 값과 비교할 수도 있다. 또한, 소프트웨어 업그레이드 통지는 푸시 체크-업 프로토콜이 후속하는, 미리 결정된 시간 주기 동안의 푸시 체크-업 프로토콜을 사용하여 수행될 수도 있다.
또 다른 양태에 따르면, 무선 통신 장치는 멀티캐스트 및 유니캐스트 접속 양쪽 모두를 통해 서버로부터 소프트웨어 버전 정보를 수신하는 수단, 소프트웨어 업그레이드가 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 체크-업 프로토콜을 수행하는 수단, 및 소프트웨어 업그레이드 통지를 수신하기 위해 액세스 프로토콜을 수행하는 수단을 포함할 수도 있다. 장치는 또한 토큰-기반 액세스 프로토콜을 사용하고 클라이언트 토큰이 사용자 디바이스에서 유효한지 여부를 결정하는 수단, 클라이언트 토큰 값이 유효하지 않은 경우, 유니캐스트 체크-업 프로토콜을 수행하는 수단, 및 클라이언트 토큰을 생성하는 수단, 및 클라이언트 토큰 값을 서버 토큰 값과 동일하도록 설정하는 수단을 포함할 수도 있다. 장치는 또한 클라이언트 토큰 값이 유효한 경우 클라이언트 토큰 값이 서버 토큰 값 (모듈로 n) 이상인지 여부를 결정하는 수단; 클라이언트 토큰 값이 서버 토큰 값 (모듈로 n) 미만인 경우, 클라이언트 토큰 값이 서버 토큰 값 - m (모듈로 n) (여기서 서버는 m (양의 정수) 개의 가장 최근의 서버 토큰 값들과 연관된 소프트웨어 업그레이드 통지들을 송신한다) 과 서버 토큰 값 - 1 (모듈로 n) (여기서 n 은 최대 토큰 값) 사이에 있는지 여부를 결정하는 수단; 멀티캐스트 체크-업 프로토콜을 수행하는 수단 및 만일 클라이언트 토큰 값이 서버 토큰 값 - m (모듈로 n) 과 서버 토큰 값 -1 (모듈로 n) 사이에 있는 경우 클라이언트 토큰 값을 서버 토큰 값과 동일하게 설정하는 수단; 및 유니캐스트 체크-업 프로토콜을 수행하는 수단 및 만일 클라이언트 토큰 값이 서버 토큰 값 - m (모듈로 n) 과 서버 토큰 값 -1 (모듈로 n) 사이에 있지 않은 경우 클라이언트 토큰 값을 서버 토큰 값과 동일하게 설정하는 수단을 포함할 수도 있다. 또한, 장치는 유니캐스트 체크-업 프로토콜을 실행하는 수단이 후속하는, 미리 결정된 시간 주기 동안의 멀티캐스트 체크-업 프로토콜을 수행하는 수단을 사용함으로써 소프트웨어 업그레이드 통지를 제공하는 수단을 포함할 수도 있다.
또 다른 양태는 서버로부터 소프트웨어 버전 정보를 포함하는 오버헤드 메시지를 수신하고; 소프트웨어 업그레이드가 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 체크-업 프로토콜을 수행하고, 소프트웨어 업그레이드 통지를 수신하기 위해 액세스 프로토콜을 수행하는 컴퓨터-실행가능 명령들을 포함하는 컴퓨터 프로그램을 갖는 컴퓨터-판독가능 매체에 관한 것이다. 체크-업 프로토콜은 멀티캐스트 체크-업 프로토콜 및/또는 유니캐스트 체크-업 프로토콜일 수도 있다. 컴퓨터-판독가능 매체는 또한 클라이언트 토큰 값을 분석하고 클라이언트 토큰 값을 서버 토큰 값과 비교하는 명령들을 포함하여, 어느 체크-업 프로토콜을 실행할지를 결정하는 명령들을 가질 수도 있다.
또 다른 양태는 무선 통신 환경에서 처리량을 증가시키는 명령들을 실행하는 프로세서에 관한 것으로서, 상기 명령들은 서버로부터 소프트웨어 버전 정보를 포함하는 오버헤드 메시지를 수신하는 것; 소프트웨어 업그레이드가 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 체크-업 프로토콜을 수행하는 것, 소프트웨어 업그레이드 통지를 수신하기 위해 액세스 프로토콜을 수행하는 것을 포함한다. 체크-업 프로토콜은 클라이언트 토큰 값 및 서버 토큰 값에 관한 일련의 결정들에 의해 결정되는, 멀티캐스트 체크-업 프로토콜 및 유니캐스트 체크-업 프로토콜 중 어느 하나 또는 양쪽 모두일 수도 있다. 또한, 소프트웨어 업그레이드 통지들은 미리 결정된 시간 주기 동안 멀티캐스트 프로토콜을 사용하여 사용자 디바이스로 제공될 수도 있고, 그 후에 사용자 디바이스는 유니캐스트 프로토콜을 개시하여 업그레이드 통지 정보를 획득할 수도 있다.
상술한 및 관련된 목적의 달성을 위해, 하나 이상의 실시형태들은 이하에 완전히 기술되고 특히 청구범위에서 지적된 특징들을 포함한다. 다음의 설명 및 첨부된 도면은 하나 이상의 실시형태들의 소정의 예시적인 양태들을 상세히 설명한 다. 그러나, 이들 양태들은 다양한 실시형태들의 원리들이 사용될 수도 있는 다양한 방법들 중 소수만을 나타내며 기술된 실시형태들은 모든 그러한 양태들 및 그들의 균등물들을 포함하는 것으로 의도된다.
도면의 간단한 설명
도 1은 여기에 제공된 다양한 양태들에 따른 무선 네트워크 통신 시스템을 도시한다.
도 2는 하나 이상의 양태들에 따라 소프트웨어 업그레이드가 무선 통신 환경 내의 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 "푸시" 체크-업 프로토콜을 수행하는 방법의 도면이다.
도 3은 하나 이상의 양태들에 따라 소프트웨어 업그레이드가 무선 통신 환경 내의 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 "풀" 체크-업 프로토콜을 수행하는 방법의 도면이다.
도 4는 하나 이상의 양태들에 따라 사용자 디바이스가 소프트웨어 업그레이드 통지를 수신하도록 허용하는 것을 용이하게 하는 방법의 도면이다.
도 5는 다양한 양태들에 따라 푸시 체크-업 프로토콜 및 풀 체크-업 프로토콜의 각각과 함께 토큰 액세스 프로토콜을 수행하는 것을 용이하게 하는 방법을 도시한다.
도 6은 다양한 양태들에 따라, 하나 이상의 체크-업 프로토콜들이 수행될 수도 있는 소프트웨어 업그레이드 통지 시나리오의 도면이다.
도 7은 토큰 액세스와 함께 푸시 방법, 풀 방법 및 하이브리드 체크-업 방법 의 개념적 개관의 시스템의 도면이다.
도 8은 여기에 기술된 다양한 시스템들 및 방법들과 함께 사용될 수 있는 무선 네트워크 환경의 도면이다.
도 9는 다양한 양태들에 따라 데이터 네트워크들을 통해 멀티미디어 콘텐츠 흐름들을 생성 및 전송하도록 동작하는 전송 시스템을 포함하는 통신 네트워크를 도시한다.
도 10은 콘텐츠 전달 시스템에서의 사용에 적합한 콘텐츠 제공자 서버의 다양한 양태들을 도시한다.
도 11은 하나 이상의 양태들에 따라 콘텐츠 전달 시스템에서의 사용에 적합한 서버 또는 디바이스를 도시한다.
도 12는 다양한 양태들에 따라 무선 통신 환경에서 체크-업 프로토콜 및 액세스 프로토콜을 수행하는 것을 용이하게 하는 장치의 도면이다.
상세한 설명
다양한 실시형태들이 이제 도면을 참조하여 기술되며, 여기서 동일한 참조 번호는 명세서 전체에 걸쳐 동일한 요소를 나타내는데 사용된다. 다음의 설명에서, 설명의 목적으로, 많은 특정의 상세가 하나 이상의 실시형태들의 철저한 이해를 제공하기 위하여 진술된다. 그러나, 그러한 실시형태(들) 은 이들 특정의 상세 없이도 실시될 수도 있다는 것이 명백하다. 다른 예들에서, 공지의 구조들 및 디바이스들은 하나 이상의 실시형태들을 기술하는 것을 용이하게 하기 위해 블록도 형태로 된다.
본 출원에서 사용되는 바와 같이, 용어 "컴포넌트", "시스템" 등은 하드웨어, 소프트웨어, 실행중인 소프트웨어, 펌웨어, 미들 웨어, 마이크로코드 및/또는 이들의 임의의 조합 등, 컴퓨터 관련 엔티티를 지칭하는 것으로 의도된다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 프로세스, 프로세서, 객체, 실행 화일, 일 쓰레드 (thread) 의 실행, 프로그램 및/또는 컴퓨터일 수도 있지만, 그것에 제한되지 않는다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행의 쓰레드 내에 상주할 수도 있고 하나의 컴포넌트가 하나의 컴퓨터상에 국부화될 수도 있고, 및/또는 둘 이상의 컴퓨터 사이에 분포될 수도 있다. 또한, 이들 컴포넌트는 그 위에 저장된 다양한 데이터 구조를 갖는 다양한 컴퓨터 판독가능 매체로부터 실행할 수 있다. 컴포넌트들은 하나 이상의 데이터 패킷들을 갖는 신호에 따르는 바와 같이, 국부 및/또는 원격 프로세스들을 통해 통신할 수 있다 (예를 들어, 하나의 컴포넌트로부터의 데이터는 국부 시스템, 분포 시스템에서 또 다른 컴포넌트와 상호작용하고 및/또는 인터넷 등의 네트워크를 가로질러 신호를 통해 다른 시스템과 상호작용한다). 또한, 여기에 기술된 시스템의 컴포넌트들은 부가적인 컴포넌트에 의해 재배열 및/또는 보충되어 그것에 관해 기술된, 다양한 양태, 목표, 이점 등을 달성하는 것을 용이하게 할 수도 있고, 본 기술분야의 당업자에 의해 이해될 수 있는 바와 같이, 주어진 도면에서 진술된 정밀한 구성에 제한되지 않는다.
더욱이, 다양한 실시형태들이 가입자국과 관련하여 여기에 기술된다. 가입자국은 또한 시스템, 가입자 유닛, 이동국, 이동전화, 원격국, 액세스 포인트, 원격 단말기, 액세스 단말기, 사용자 단말기, 사용자 에이전트, 사용자 디바이스, 또는 사용자 장비로 호칭될 수 있다. 가입자국은 셀룰러 전화, 코드리스 전화, 세션 개시 프로토콜 (SIP) 전화, 무선 로컬 루프 (WLL) 국, 휴대정보단말 (PDA), 무선 접속 능력을 갖는 소형 디바이스 또는 무선 모뎀에 접속된 다른 프로세싱 디바이스일 수 있다.
또한, 여기에 기술된 다양한 양태 또는 특징은 표준 프로그래밍 및/또는 엔지니어링 기술을 사용하는 방법, 장치 또는 제조의 물품으로서 구현될 수 있다. 여기서 사용된 용어 "제조의 물품" 은 임의의 컴퓨터 판독가능 디바이스, 캐리어, 또는 매체로부터 액세스가능한 컴퓨터 프로그램을 포함하도록 의도된다. 예를 들어, 컴퓨터 판독가능 매체는 자성 저장 디바이스 (예를 들어, 하드 디스크, 플로피 디스크, 마그네틱 스트립...), 광 디스크 (예를 들어, 컴팩트 디스크 (CD), DVD (digital versatile disk)...), 스마트 카드, 및 플래시 메모리 디바이스 (예를 들어, 카드, 스틱, 키 드라이브...) 를 포함할 수 있지만 이들에 제한되지 않는다. 또한, 여기에 기재된 다양한 저장 매체는 정보를 저장하는 하나 이상의 디바이스 및/또는 다른 기계 판독가능 매체를 나타낼 수 있다. 용어 "기계 판독가능 매체" 는 명령 및/또는 데이터를 저장, 포함 및/또는 반송할 수 있는 무선 채널 및 다양한 다른 매체를 포함할 수 있지만, 이들에 제한되지 않는다.
도 1을 참조하면, 무선 네트워크 통신 시스템 (100) 이 여기에 제공된 다양한 실시형태들에 따라 도시된다. 시스템 (100) 은 무선 통신 신호들을 서로 수신, 송신, 중계 등을 하는 하나 이상의 섹터들 내의 하나 이상의 기지국 (102) 및/또는 하나 이상의 이동 디바이스 (104) 를 포함한다. 각각의 기지국 (102) 은 송신기 체인 및 수신기 체인을 포함할 수 있고, 이들 각각은 당업자라면 이해할 수 있는 바와 같이, 신호 송신 및 수신과 연관된 복수의 컴포넌트들 (예를 들어, 프로세서, 변조기, 멀티플렉서, 복조기, 디멀티플렉서, 안테나 등) 을 포함할 수 있다. 이동 디바이스 (104) 는 예를 들어, 셀룰러 전화, 스마트폰, 랩탑, 소형 통신 디바이스, 소형 계산 디바이스, 위성 라디오, GPS (global positioning system), 개인 휴대정보단말 (PDA), 및/또는 무선 네트워크 (100) 를 통해 통신하기 위한 임의의 다른 적합한 디바이스일 수 있다. 시스템 (100) 은 후속하는 도면들에 관해 설명되는 바와 같이, 무선 통신 환경에서 사용자 디바이스들에 소프트웨어 업그레이드를 통시하는 것을 용이하게 하기 위하여 여기에 기술된 다양한 양태들과 함께 사용될 수 있다.
여기에 제공된 다양한 양태들에 따르면, 다음의 예는 다수의 사용자 디바이스들이 소프트웨어 업그레이드 통지 애플리케이션을 사용하고 다수의 소프트웨어 클래스들에 대한 업데이트 통지들을 희망하는 시나리오에 관한 것이다. 소프트웨어의 클래스가 SOFTWARE_ID (X) 로 기술되고 소프트웨어의 시퀀스 넘버가 (Y) 에 의해 정의되도록, 소프트웨어 버전이 2 개의 컴포넌트들 (X 및 Y) 을 포함한다. 상이한 운영체제 (OS) 형태, 상이한 네트워크 제공자, 및 상이한 디바이스 형태에 따라 애플리케이션의 소프트웨어의 다수의 클래스들이 존재할 수도 있다. 따라서, X 는 예를 들어 X = a.b.c 와 같이, 계층의 임의의 레벨을 포함할 수 있고, 여기서 "a" 는 OS 형태 ID, "b" 는 네트워크 제공자 ID, 및 "c" 는 디바이스 형태 ID 이다. 시퀀스 넘버 (Y) (예를 들어, 버전 3, 버전 5.2 등) 는 주어진 SOFTWARE_ID 에 대해 이용가능한 새로운 소프트웨어가 존재할 때마다 증가된다.
소프트웨어 업그레이드 통지에 대해, 2 개의 디자인 팩터들이 디바이스 관점으로부터 고려될 수도 있다, 즉: (1) 정보를 획득하는 방식 및 (2) 정보를 획득하는 시간. 업그레이드 정보가 획득되는 방식은 "체크-업" 프로토콜의 실행과 관련되고, 그 타이밍은 액세스 프로토콜의 실행과 관련된다. 여기서 기술된 바와 같이, 하나 이상의 체크-업 프로토콜들은 복수의 액세스 프로토콜 중 임의의 것과 결합될 수도 있다. 이러한 방식으로, 여기에 제공된 시스템들 및 방법들은 네트워크 상에서 사용자 디바이스들에게 소프트웨어 업그레이드를 제공하는 것을 용이하게 하면서, 긴-지속기간 대역폭-소비 소프트웨어 업그레이드 브로드캐스트들에 대한 필요를 감소시킴으로써 네트워크 자원을 보존할 수 있다.
도 2 내지 도 5 를 참조하면, 사용자 디바이스에게 소프트웨어 업그레이들를 통지하는 것에 관한 방법들이 도시된다. 여기에 기술된 방법들은 FDMA 환경, OFDMA 환경, CDMA 환경, WCDMA 환경, TDMA 환경, SDMA 환경, 또는 임의의 다른 적합한 무선 환경에서 수행될 수도 있다. 설명의 단순성의 목적으로 방법들은 일련의 작용들로서 도시 및 기술되지만, 하나 이상의 실시형태들에 따라 몇몇 작용들은 여기에 도시 및 기술된 것과 상이한 순서 및/또는 다른 작용들과 동시적으로 발생할 수도 있기 때문에, 방법들은 작용들의 순서에 의해 제한되지 않는다. 예를 들어, 당업자는 방법이 상태도에서와 같이 일련의 상호관련된 상태들 또는 이벤트들로서 대안적으로 표현될 수 있다는 것을 이해 및 인정할 것이다. 또한, 하나 이상의 양태들에 따른 방법을 구현 구현하는데 모든 도시된 작용들이 필요한 것 은 아니다.
도 2는 하나 이상의 양태들에 따라, 무선 통신 환경에서 소프트웨어 업그레이드가 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 "푸시" 체크-업 프로토콜을 수행하는 방법 (200) 의 도면이다. 여기서 사용된 바와 같이, "업그레이드" 및 "업데이트" 는 동의어인 것으로 의도되고 사용자 디바이스 상에 현재 상주하는 것보다 더욱 새로운 버전의 특정 피스 (piece) 의 소프트웨어를 나타내는 상호교환 가능한 용어들이다. "푸시" 는 "일-대-다 (one-to-many)" 또는 멀티캐스트 브로드캐스트 시스템을 기술하는 것으로 의도된다. 따라서, 푸시 메커니즘은 브로드캐스트 (멀티캐스트) 네트워크를 사용하며, 여기서 정보는 서버로부터 복수의 디바이스들로 푸시된다. (예를 들어, 도 3에 대하여 이하에 상세히 설명되는 것과 같은) "풀" 메커니즘에서, 디바이스는 서버와 점대점 통신을 개별적으로 개시하고, 서버는 유니캐스트 네트워크를 사용하여 그것에 응답한다 (예를 들어, 디바이스는 서버로부터 정보를 "풀 (pull) 한다).
방법 (200) 에 따르면, 202 에서 사용자 디바이스는 전용 멀티캐스트 데이터 채널을 통해 서버로부터 소프트웨어 버전 정보를 수신할 수도 있다. 서버는 데이터 채널을 통해 소프트웨어 클래스들의 전체에 대한 소프트웨어 버전에 대한 가장 최근의 시퀀스 넘버를 연속적으로 송신할 수도 있다. SOFTWARE_ID 는 다양한 양태들에 따라 시퀀스 및/또는 버전 정보의 범위를 한정하기 위해 사용될 수도 있다. 예를 들어, SOFTWARE_ID 는 메시지의 "어드레스"로서 사용될 수도 있고, 디바이스는 그것의 특정의 SOFTWARE_ID 로 "어드레스된" 메시지만을 수신한다. 따라서, 204 에서, 특정의 SOFTWARE_ID 를 갖는 디바이스는 데이터 채널로 튠인하고 그것이 그것의 SOFTWARE_ID 에 대응하는 최근의 시퀀스 넘버를 발견할 때까지 데이터 채널상의 신호를 평가한다. 206 에서, 데이터 채널 내에 공시된 최근의 시퀀스 넘버가 디바이스의 현재의 소프트웨어 시퀀스 넘버보다 큰지 여부에 관한 결정이 행해진다. 만일 그렇다면, 소프트웨어 업그레이드 통지가 사용자 디바이스에 전달되어야 한다. 208 에서, 사용자 디바이스는 소프트웨어 업그레이드를 획득하기 위해 액세스 프로토콜을 실행하도록 진행할 수도 있다.
도 3 은 하나 이상의 양태들에 따라, 무선 통신 환경에서 소프트웨어 업그레이드가 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 "풀" 체크-업 프로토콜을 수행하는 방법 (300) 의 도면이다. 풀 체크-업 프로토콜은 서버와 사용자 디바이스 간의 점대점 통신 링크를 포함한다. 302에서, 디바이스는 서버로의 점대점 (유니캐스트) 접속을 개별적으로 생성할 수도 있다. 304 에서, 디바이스는 서버로부터 그러한 정보를 "풀" 하기 위해 소프트웨어 업그레이드 정보를 위한 요청 메시지를 전송할 수도 있다. 요청 메시지는 디바이스의 SOFTWARE_ID 및 디바이스상의 가장 최근의 소프트웨어 버전을 나타내는 시퀀스 넘버를 포함할 수도 있다. 306 에서, 디바이스는 서버로부터 응답 메시지를 수신할 수도 있다. 일 양태에 따르면, 응답 메시지는 304 에서 디바이스에 의해 제공된 SOFTWARE_ID 에 대한 특정의 소프트웨어 애플리케이션과 연관된 최근의 시퀀스 넘버를 포함할 수도 있다. 그러한 경우에, 디바이스는 (응답 메시지에서 수신된 시퀀스 넘버가 디바이스의 현재 소프트웨어의 시퀀스 넘버보다 큰지 여부를 결정함으로써) 그것이 소프트웨어 업그레이드를 필요로 하는지 여부를 결정할 수도 있다. 또 다른 양태에 따르면, 서버는 최근의 소프트웨어 시퀀스 넘버가 디바이스의 표시된 시퀀스 넘버보다 큰지 여부를 결정할 수도 있고, 306 에서 응답 메시지 내에서 소프트웨어 업그레이드 통지 (예를 들어, "업그레이드 필요" 또는 "업그레이드 불필요" 등) 를 전송할 수도 있다. 어느 경우에나, 308 에서, 디바이스는 업그레이드 통지를 수신할 수도 있다.
방법 (200 및 300) 은 복수의 액세스 방법들 중 임의의 것과 결합될 수도 있다. 예를 들어, 주기적 액세스 방법이 사용될 수도 있으며, 여기서 디바이스는 소프트웨어 업그레이드가 이용가능한지 여부를 주기적으로 체크한다. 각각의 소프트웨어 클래스에 대해, 체크업 주기 (예를 들어, 1일, 5일, 7일, 30일 등) 가 관련될 것이며, 이것은 상이한 소프트웨어 클래스에 대해 상이할 수도 있다. 또 다른 액세스 방법에 따르면, 디바이스는 애플리케이션의 론치 때마다 업그레이드에 대해 체크할 수도 있다. 또 다른 양태에 따르면, 사용자는 소프트웨어 체크업을 개시하도록 허용될 수도 있다. 또 다른 양태는 트랜잭션-기반 액세스 프로토콜에 관한 것이고, 이것에 의해 다바이스는 디바이스와 서버 간의 트랜잭션시 체크-업 프로토콜을 수행한다. 또 다른 양태는 "토큰" 액세스 방법에 관한 것이며, 이것은 "오버헤드" 채널이라고 불리는 전용 멀티캐스트 채널을 사용하여, 도 4 에서 이하에 더욱 상세히 설명되는 최신 시스템 상태 정보를 전달한다.
도 4는 하나 이상의 양태들에 따라, 사용자가 소프트웨어 업그레이드 통지를 수신하도록 허용하는 것을 용이하게 하는 방법 (400) 의 도면이다. 방법 (400) 은 토큰-기반 접근법이며, 여기서 클라이언트 토큰 값은 멀티캐스트 채널에서 주기적으로 공시되는 서버 토큰 값과 비교된다. 402 에서, 디바이스는 서버가 최근의 소프트웨어 버전 또는 시퀀스 넘버, 디바이스 ID 정보 등을 포함할 수도 있는 오버헤드 정보를 연속적으로 송신하는 오버헤드 채널로 튠인하고 오버헤드 메시지를 수신할 수도 있다. 디바이스는 오버헤드 채널에 주기적으로 튠인할 수도 있다. 다른 데이터 채널과는 대조적으로, 오버헤드 채널은 애플리케이션의 동작을 위한 더 작은양의 그러나 중요한 정보를 포함한다. 따라서, 이러한 채널로 튠인하고 오버헤드 메시지를 판독하기 위해 사용자 디바이스에게 필요한 자원은 디바이스의 관점에서 상대적으로 적다. 404에서, 클라이언트 토큰 (CLI_TOKEN) 이 존재하는지 여부에 대한 결정이 행해질 수도 있다. 일 양태에 따르면, 디바이스는 정수 CLI_TOKEN 값 (예를 들어, 1 바이트 정수값 또는 몇몇의 다른 적합한 값) 을 국부적으로 유지한다. 초기에, CLI_TOKEN 은 존재하지 않는다: 그러나, 오버헤드 메시지 수신시에, 만일 CLI_TOKEN 이 404 에서 결정된 바와 같이 존재하지 않는다면, 406 에서 디바이스는 소프트웨어 업그레이드에 대한 체크-업을 수행한다. 또한, 406 에서, 디바이스는 CLI_TOKEN 을 생성할 수도 있고 그것을 오버헤드 채널 내의 SVR_TOKEN 과 동일하게 설정할 수도 있다.
서버는 정수 SVR_TOKEN 값 (예를 들어, 1 바이트, 또는 몇몇의 다른 적합한 값) 을 유지한다. 제한되는 것은 아니지만 1 바이트 예에 따르면, SVR_TOKEN 값은 새로운 소프트웨어 업그레이드의 릴리스 (release) 시에 0 부터 1 모듈로 256 만큼씩 인크리멘트될 수도 있다. SVR_TOKEN 값은 오버헤드 채널에서 연속적으 로 공시될 수도 있다. 만일 CLI_TOKEN 이 404 에서 존재한다면, 408 에서 CLI_TOKEN 이 SVR_TOKEN 과 동일한지 여부에 관한 결정이 행해질 수도 있다. 만일 CLI_TOKEN 값이 SVR_TOKEN 값 보다 작다면, 412 에서 디바이스는 소프트웨어 업그레이드에 대한 체크-업을 수행하고, CLI_TOKEN 값은 SVR_TOKEN 값으로 설정된다. 만일 CLI_TOKEN 값이 SVR_TOKEN 값 이상이라면, 410 에서 나타낸 바와 같이, 디바이스는 최근의 소프트웨어 버전을 가지고 있으며 업데이트는 필요하지 않다. 또한, SVR_TOKEN 은 256 인크리멘트들 후에 랩 어라운드 (wrap around) 할 수도 있다. 따라서, CLI_TOKEN 값은 디바이스가 오랜 시간 동안 아웃-오브-네트워크에 있어왔던 것 같이 랩 어라운드된 SVR_TOKEN 과 동일할 수도 있다. 이러한 시나리오를 다루기 위해, 만일 오버헤드 메시지가 몇몇의 소정의 시간 주기 (예를 들어, 30일, 45일, 90일 등) 동안 획득되지 않았다면 저장된 CLI_TOKEN 은 삭제될 수도 있다. 이러한 기간은 실질적으로 SVR_TOKEN 랩-어라운드에 필요한 추정된 기간보다 짧도록 설정될 수도 있다.
도 5 는 다양한 양태들에 따라, 푸시 체크-업 방법 및 풀 체크-업 프로토콜의 각각과 결합하여 토큰 액세스 프로토콜을 수행하는 것을 용이하게 하는 방법 (500) 을 도시한다. 방법 (400) 과 유사하게, 방법 (500) 은 또한 토큰-기반 프로토콜을 사용하며, 여기서 클라이언트 토큰 값은 멀티캐스트 채널에 주기적으로 공시되는 서버 토큰 값과 비교된다. 예를 들어, 상술된 바와 같이 전체 소프트웨어 클래스들에 대한 모든 최근의 시퀀스 넘버들을 전송하기 보다는, 서버는 데이터 채널 내의 2 개의 SVR_TOKEN 간의 점진적인 변경 정보 (incremetal change information) 를 전송할 수도 있다. 예를 들어, SVR_TOKEN = 3 을 갖는 소프트웨어 클래스 (A 및 B) 에 대한 2 개의 새로운 업그레이드들이 존재하는 경우, 서버는 (예를 들어, 4 까지) 그것의 SVR_TOKEN 을 인크리멘트할 수도 있고, (예를 들어, 도 3 에 대해 상술된 것과 유사한 방식으로) 오버헤드 채널에서 그 SVR_TOKEN 을 공시할 수도 있다. 그 후, 서버는 데이터 채널에서 2 개의 소프트웨어 업그레이드 통지 메시지들을 전송할 수도 있다. 그 메시지의 포맷은 복수의 필드들을 포함할 수도 있다. 예를 들어, "SVR_TOKEN" 은 소프트웨어 업그레이드와 연관된 값을 포함할 수도 있다. "NUM_RECORD" 는 주어진 SVR_TOKEN 에 부가된 소프트웨어 업그레이드 통지들의 수를 정의할 수도 있다. "RECORD_ID" 는 NUM_RECORD 의 소프트웨어 업그레이드 통지들 중에 고유하게 할당될 수도 있다. "SOFTWARE_ID" 는 상술된 것으로 정의될 수도 있다. "LATEST_SQN_NUM" 은 SOFTWARE_ID 에 대한 최근의 시퀀스 넘버를 정의할 수도 있다. 각각의 메시지의 NUM_RECORD 및 RECORD_ID 를 사용함으로써, 디바이스는 얼마나 많은 소프트웨어 업그레이드 통지들을 수집해야하고 언제 업그레이드 통지들을 찾기를 중단해야 하는 지를 결정할 수 있다.
따라서, 방법 (500) 은 502 에서 시작하고, 여기서 사용자 디바이스는 오버헤드 메시지를 수신할 수도 있다. 504 에서, CLI_TOKEN 이 존재하는지 여부에 관한 결정이 행해질 수도 있다. 만일 존재하지 않는다면, 506 에서 풀 체크-업 프로토콜이 수행될 수도 있고 CLI_TOKEN 이 생성되고 SVR_TOKEN 과 동일하게 설정될 수도 있다. 만일 클라이언트 토큰이 504 에서 유효하다면, 508 에서, 클라 이언트 토큰 값이 서버 토큰 값 (모듈로 n) 이상인지 여부에 관한 결정이 행해질 수도 있으며, 여기서 n 은 최대 토큰 값이다. 만일 클라이언트 토큰 값이 서버 토큰 값 이상이라면, 디바이스가 최신 상태이고 해당 소프트웨어의 최근 버전을 가지고 있으므로, 510 에서 나타낸 바와 같이, 어떠한 액션도 취해질 필요가 없다.
만일 클라이언트 토큰 값이 서버 토큰 값보다 작다면, (예를 들어, 서버 토큰 값이 최대값 (n) 으로부터 제로까지 랩 어라운드하는 시나리오를 다루기 위해) 만일 클라이언트 토큰 값이 서버 토큰 값 (모듈로 n) 미만인 경우, 512에서, 클라이언트 토큰 값이 서버 토큰 값 - m (모듈로 n) (여기서 서버는 m (양의 정수) 개의 가장 최근의 서버 토큰 값들과 연관된 소프트웨어 업그레이드 통지들을 송신한다) 과 서버 토큰 값 - 1 (모듈로 n) 사이에 있는지 여부에 관한 결정이 행해질 수도 있다. 예를 들어, 서버는 m 개의 가장 최근의 토큰 값들과 연관된 소프트웨어 업그레이드 통지들을 연속적으로 및/또는 주기적으로 송신할 수도 있다. 예를 들어, m 은 3 과 같이 미리 설정된 수일 수도 있어, 서버가 3 개의 가장 최근의 서버 토큰 값들과 연관된 소프트웨어 업그레이드 통지들을 연속적으로 및/또는 주기적으로 송신하도록 한다. 부가적으로 또는 대안적으로, m 은 동적으로 정의될 수도 있고 오버헤드 메시지 내에 포함될 수도 있다. 또 다른 예에 따르면, n 이 단일 바이트 (예를 들어, 8 비트 값) 로 표현된 정수값인 시나리오에서, n 은 255 의 최대값을 가질 수도 있고, 랩 어라운드 조건은 클라이언트 값이 255 에 도달하고 서버 토큰이 0 (또는 255 보다 작은 몇몇의 다른 값) 으로 랩 어라운드했을 때 발생할 수도 있다. 그러한 시나리오에서, 비록 클라이언트 디바이스가 소프 트웨어 업그레이드 통지에 적합할지라도, 클라이언트 토큰 값은 서버 토큰 값보다 큰 것으로 보일 수도 있다. 랩 어라운드 문제를 완화하기 위해, 만일 서버가 SVR_TOKEN - m (모듈로 255) 내지 SVR_TOKEN - 1 (모듈로 255) (예를 들어, 가장 최근의 서버 토큰) 의 범위의 다수의 업그레이드들과 연관된 멀티캐스트 소프트웨어 업그레이드 통지들을 송신한다면, 푸시 체크-업 프로토콜을 개시하기 이전에, 클라이언트 토큰 값이 "SVR_TOKEN - m (모듈로 255)" 과 "SVR_TOKEN - 1 (모듈로 255)" 사이에 있는 것을 보장하도록 기준이 부과될 수도 있다. 상술된 예는 본래 예시적이며 랩-어라운드 조건이 다루어지는 메커니즘에 대한 이해를 용이하게 하도록 의도되고, n 은 임의의 적합한 정수 (예를 들어, 512, 1000, 1024) 일 수도 있고 최대 단일-바이트 정수값과 연관된 255 값으로 제한되지 않는다.
만일 조건이 512에서 참이라면, 514 에서, 푸시 체크-업 프로토콜이 구현될 수도 있고, 그 후 클라이언트 토큰 값은 서버 토큰 값과 동일하게 설정될 수도 있다. 만일 조건이 512 에서 참이 아니라면, 516 에서, 풀 체크-업 프로토콜이 구현될 수도 있고, 그 후 클라이언트 토큰 값은 서버 토큰 값과 동일하게 설정될 수도 있다. 방법 (400) 에 의한 바와 같이, 만일 오버헤드 메시지들이 소정의 미리 정의된 시간 주기 (예를 들어, 15일, 31일, 60일 등) 동안 획득되지 않았다면저장된 클라이언트 토큰은 삭제될 수도 있다. 이러한 기간은 SVR_TOKEN 랩-어라운드에 필요한 추정된 기간보다 실질적으로 짧도록 설정될 수도 있다.
다음의 논의는 방법 (400) 및 방법 (500) 에 대한 수개의 변형예를 제공한다. 예를 들어, 서버는 미리 정의된 시간 주기 후에 데이터 채널에서 점진적인 소프트웨어 업그레이드 정보를 전송하는 것을 중지할 수도 있다. 이러한 경우, 디바이스는 만일 그것이 데이터 채널에서 소프트웨어 업그레이드 통지들을 수집할 수 없다면 풀 체크-업 방법을 사용할 수도 있다. 또 다른 예에 따르면, 최근의 SVR_TOKEN 과 SVR_TOKEN - 1 간의 점진적인 변경을 전송하기보다는, 서버는 SVR_TOKEN 과 SVR_TOKEN - M 간의 차이를 설명하는 변경값을 전송할 수도 있다. 이러한 경우에, M 회의 토큰 변이 있을 수도 있고, 대응하는 소프트웨어 업그레이드 정보는 데이터 채널을 통해 전송될 수도 있다. CLI_TOKEN 이 SVR_TOKEN -M 과 (랩 어라운드 경우를 포함하는) SVR_TOKEN 사이에 있는 경우에, 디바이스는 푸시 체크-업 프로토콜을 사용할 수도 있다. 그렇지 않으면, 디바이스는 풀 체크-업 프로토콜을 사용할 수도 있다.
또 다른 양태에 따르면, 소프트웨어 업그레이드를 다운로드하는 2개의 방식이 존재한다: (1) 점대점 (point-to-point) (2) 멀티캐스트. 점대점 구현에서, 사용자의 승인후에, 각각의 디바이스는 서버와의 점대점 접속을 생성하고 업데이트된 소프트웨어 애플리케이션을 다운로드할 수도 있다. 멀티캐스트 경우에, 서버는 주어진 시간 주기 (예를 들어, 1주, 30일,...) 동안 업그레이드된 애플리케이션을 멀티캐스트할 수도 있다. 따라서, 다운로드 프로토콜에 따라, 데이터 채널에서의 소프트웨어 업그레이드 통지 메시지는 추가적인 필드들을 가질 수도 있다. 예를 들어, "NOTIFICATION_DELAY" 필드는 점대점 다운로드 메커니즘이 사용되는 경우, 메시지에 부가될 수 있다. 디바이스는 0 과 NOTIFICATION_DELAY 의 값 간의 난수를 생성할 수도 있고, 선택된 램덤한 시간 후에 사용자에게 소프트 웨어 업그레이드의 필요를 통지할 수 있다. 이러한 파라미터는 업그레이드 통지 레코드들을 디바이스들에 동시에 전달하는 것을 용이하게 한다. 만일 자동 다운로드 메커니즘이 사용자의 허가 후에 사용된다면, 다운로드 요청들의 쇄도가 다운로드 사이트를 압도할 수도 있다. 또한, 멀티캐스트가 애플리케이션 업데이트 다운로드를 위해 사용되는 경우 "CONTACT_WINDOW" 필드가 메시지에 추가될 수도 있고, 이것은 업그레이드된 애플리케이션을 다운로드하기 위해 브로드캐스트 채널로 튠인할 시기를 가리킬 수도 있다.
도 6은 다양한 양태들에 따라, 하나 이상의 체크-업 프로토콜들이 수행될 수도 있는 소프트웨어 업그레이드 통지 사나리오 (600) 의 도면이다. 그 시나리오에 따르면, 서버 토큰은 도면의 3 에서 4 로의 화살표에 의해 나타낸 바와 같이, 3 에서 4 로 업그레이드되었다. 소프트웨어 클래스들 (A 및 B) 에 대한 2 개의 새로운 업그레이들이 존재하고, 서버는 오버헤드 채널 내에 SVR_TOKEN 을 공시할 수도 있다고 가정할 수 있다. 그 후, 서버는 클라이언트 토큰 값이 3과 동일한 경우 푸시 체크-업 프로토콜을 사용하여 데이터 채널에서 2 개의 소프트웨어 업그레이드 통지 메시지들을 전송할 수도 있다. 클라이언트는 클라이언트 토큰 값이 3과 동일하지 않은 경우 풀 체크-업 프로토콜을 사용하여 업그레이드 통지를 요청할 수도 있다.
도 7은 토큰 액세스를 갖는 푸시 방법 (702), 풀 방법 (704), 및 하이브리드 체크-업 방법 (706) 의 개념적 개관의 시스템 (700) 의 도면이다. 다양한 양태들에 따라, 푸시 및 풀 체크-업 프로토콜 양쪽 모두를 사용하는 하이브리드 접근법 이 설명된다. 소프트웨어 업그레이드 이벤트들이 빈번하게 발생하지 않는 경우, 가장 최근의 점진적인 변경 만에 관련된 브로드캐스트 데이터의 양은 상대적으로 작고, 이것은 브로드캐스트 자원을 보존할 수 있다. 또한, 하이브리드 프로토콜은 네트워크에 접속된 디바이스들에 순간적인 업그레이드 통지들을 전달한다. 또한, SVR_TOKEN 변경 간의 시간 주기는 크기 쉽다. 따라서, 대부분의 디바이스들은 SVR_TOKEN 값과 동기화될 수도 있고, 단지 소수만이 풀 메커니즘이 최신일 것을 요구할 수도 있고, 이것은 차례로 유니캐서트 자원을 보존한다.
이전의 업그레이드와 비교하여 업그레이드의 중요성에 따라, 각각의 소프트웨어 업그레이드와 연관된 다수의 레벨의 소프트웨어 업그레이드 긴급성 (URGENCY_LEVEL) 이 존재한다. 소프트웨어 업그레이드 긴급성의 레벨 정보는 또한 통지 메시지에 부가될 수도 있다. 예를 들어, 레벨 1 로부터 레벨 3 까지에서, 레벨 1은 중요할 수도 있고, 레벨 2 는 보통일 수 있고, 레벨 3은 선택적일 수도 있다. URGENCY_LEVEL 에 따라, 디바이스는 상이한 방식으로 행동할 수도 있다. 예를 들어, 애플리케이션이 레벨 1로 라벨링된 경우, 디바이스는 애플리케이션을 중단하고 디바이스를 해로부터 보호하기 위해 사용자에게 새로운 소프트웨어 업그레이드를 다운로드하도록 강제할 수도 있다.
도 8은 예시적인 무선 통신 시스템 (800) 을 도시한다. 무선 통신 시스템 (800) 은 간결성을 위해 하나의 기지국과 하나의 단말기를 도시한다. 그러나, 시스템은 하나 이상의 기지국 및/또는 하나 이상의 단말기를 포함할 수 있고, 여기서 추가적인 기지국들 및/또는 단말기들은 이하에 설명된 예시적인 기지국 및 단말기와 실질적으로 유사 또는 상이할 수 있다. 또한, 기지국 및/또는 단말기는 그들 사이의 무선 통신을 용이하게 하기 위해 여기서 설명된 시스템들 (도 1, 6, 7 및 9-12) 및/또는 방법들 (도 2 내지 도 5) 을 사용할 수 있다.
도 8 을 참조하면, 다운링크 상에서, 액세스 포인트 (805) 에서, 송신 (TX) 데이터 프로세서 (810) 는 트래픽 데이터를 수신, 포맷, 코딩, 인터리빙, 및 변조 (또는 심볼 매핑) 하고 변조 심볼들 ("데이터 심볼들") 을 제공한다. 심볼 변조기 (815) 는 데이터 심볼들 및 파일럿 심볼들을 수신 및 처리하고 심볼들의 스트림을 제공한다. 심볼 변조기 (815) 는 데이터 및 파일럿 심볼들을 멀티플레싱하고 그들을 송신기 유닛 (TMTR) (820) 에 제공한다. 각각의 송신 심볼은 데이터 심볼, 파일럿 심볼 또는 제로의 신호값일 수도 있다. 파일럿 심볼들은 각각의 심볼 주기에 연속적으로 전송될 수도 있다. 파일럿 심볼들은 주파수 분할 멀티플렉싱 (FDM), 직교 주파수 분할 멀티플렉싱 (OFDM), 시분할 멀티플렉싱 (TDM), 또는 코드 분할 멀티플레싱 (CDM) 될 수 있다.
TMTR (820) 은 심볼들의 스트림을 수신하여 하나 이상의 아날로그 신호들로 변환하고 또한 그 아날로그 신호들을 컨디셔닝 (예를 들어, 증폭, 필터링 및 주파수 업컨버팅) 하여 무선 채널을 통한 송신에 적합한 다운링크 신호를 생성한다. 다운링크 신호는 그 후 안테나 (825) 를 통해 단말기들로 송신된다. 단말기 (830) 에서, 안테나 (835) 는 다운링크 신호를 수신하고 수신된 신호를 수신기 유닛 (RCVR) (840) 으로 제공한다. 수신기 유닛 (840) 은 수신된 신호를 컨디셔닝 (예를 들어, 필터링, 증폭 및 주파수 다운컨버팅) 하고 컨디셔닝된 신호를 디지 털화하여 샘플들을 획득한다. 심볼 복조기 (845) 는 수신된 파일럿 심볼들을 복조하여 채널 추정을 위해 프로세서 (850) 으로 제공한다. 심볼 복조기 (845) 는 또한 프로세서 (850) 로부터 다운링크를 위한 주파수 응답 추정을 수신하고, 수신된 데이터 심볼들에 데이터 복조를 수행하여 (송신된 데이터 심볼들에 대한 추정인) 데이터 심볼 추정들을 획득하고, 그 데이터 심볼 추정들을 복조 (즉, 심볼 디맵핑), 디인터리빙, 및 디코딩하여 송신된 트래픽 데이터를 복구하는 RX 데이터 프로세서 (855) 로 그 데이터 심볼 추정들을 제공한다. 심볼 복조기 (845) 및 RX 데이터 프로세서 (855) 에 의한 처리는 액세스 포인트 (805) 에서, 각각 심볼 변조기 (815) 및 TX 데이터 프로세서 (810) 에 의한 처리에 상보적이다.
업링크 상에서, TX 데이터 프로세서 (860) 는 트래픽 데이터를 처리하고 데이터 심볼들을 제공한다. 심볼 변조기 (865) 는 데이터 심볼들을 수신하여 파일럿 심볼들과 멀티플렉싱하고, 변조를 수행하고, 심볼들의 스트림을 제공한다. 송신기 유닛 (870) 은 그 후 심볼들의 스트림을 수신 및 처리하여 안테나 (835) 에 의해 액세스 포인트 (805) 로 송신되는 업링크 신호를 생성한다.
액세스 포인트 (805) 에서, 단말기 (830) 로부터의 업링크 신호는 안테나 (825) 에 의해 수신되고 수신기 유닛 (875) 에 의해 처리되어 샘플들을 획득한다. 심볼 복조기 (880) 는 그 후 샘플들을 처리하고 수신된 파일럿 심볼들 및 업링크를 위한 데이터 심볼 추정들을 제공한다. RX 데이터 프로세서 (885) 는 데이터 심볼 추정들을 처리하여 단말기 (830) 에 의해 송신된 트래픽 데이터를 복구한다. 프로세서 (890) 는 업링크 상에서 송신하는 각각의 액티브 단말기에 대한 채널 추정을 수행한다. 다수의 단말기는 그들의 각각의 할당된 파일럿 서브밴드 세트 상의 업링크 상에서 동시에 파일럿을 송신할 수도 있으며, 여기서 파일럿 서브밴드 세트는 인터레이싱될 수도 있다.
프로세서 (890 및 850) 는 각각 액세스 포인트 (805) 및 단말기 (830) 에서의 동작을 지시 (예를 들어, 제어, 코오디네이팅, 관리 등) 한다. 각각의 프로세서 (890 및 850) 는 프로그램 코드 및 데이터를 저장하는 메모리 유닛 (도시하지 않음) 과 관련될 수 있다. 프로세서 (890 및 850) 는 또한 각각 업링크 및 다운링크를 위한 주파수 및 임펄스 응답 추정을 도출하기 위한 계산을 수행할 수 있다.
멀티-액세스 시스템 (예를 들어, FDMA, OFDMA, CDMA, TDMA 등) 에서, 다수의 단말기는 업링크상에서 동시에 송신할 수 있다. 그러한 시스템에서, 파일럿 서브밴드는 상이한 단말기들 중에 공유될 수도 있다. 채널 추정 기술은 각각의 단말기에 대한 파일럿 부대역들이 (어쩌면 대역 에지를 제외한) 전체 동작 대역에 걸치는 경우에 사용될 수도 있다. 그러한 파일럿 부대역 구조는 각각의 단말기에 대한 주파수 다이버시티를 획득하는데 바람직할 수 있을 것이다. 여기에 기재된 기술은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이들 기술은 하드웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 하드웨어 구현의 경우, 채널 추정을 위해 사용되는 처리 유닛은 하나 이상의 주문형반도체 (ASIC), 디지털 신호처리기 (DSP), 디지털 신호처리 디바이스 (DSPD), 프로그래머블 로직 디바이스 (PLD), 필드 프로그래머블 게이트 어레이 (FPGA), 프로세서, 컨 트롤러, 마이크로-컨트롤러, 마이크로프로세서, 여기에 기술된 기능을 수행하도록 설계된 다른 전자 유닛, 또는 이들의 조합 내에서 구현될 수도 있다. 소프트웨어로써, 여기에 기술된 기능을 수행하는 모듈 (예를 들어, 프로시져, 함수 등) 을 통한 구현이 있을 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되고 프로세스 (890 및 850) 에 의해 수행될 수도 있다.
도 9는 다양한 양태들에 따라 데이터 네트워크들을 통해 멀티미디어 콘텐츠 흐름들을 생성 및 전송하도록 동작하는 전송 시스템을 포함하는 통신 네트워크 (900) 를 도시한다. 예를 들어, 전송 시스템은 브로드캐스트 분배를 위해 서버 네트워크로부터 무선 액세스 네트워크로 콘텐츠 클립들을 전송하는 데 사용하기에 적합하다. 네트워크 (900) 는 서버 (902), 멀티캐스트 네트워크 (906), 및 무선 액세스 네트워크 (908) 를 포함한다. 네트워크 (900) 는 또한 이동 전화 (912), 개인 휴대정보단말 (PDA) (914) 및 노트북 컴퓨터 (916) 를 포함하는 디바이스 (910) 을 포함한다. 디바이스 (910) 은 전송 시스템의 하나 이상의 양태들에서의 사용에 적합한 단지 몇몇의 디바이스들만을 도시한다. 비록 3 개의 디바이스들이 도 9에서 도시되지만, 사실상 임의의 수의 디바이스들 또는 임의의 형태의 디바이스들이 전송 시스템에의 사용에 적합하다는 것을 알 수 있다.
서버 (902) 는 네트워크 (900) 내의 사용자들에게의 분배를 위한 콘텐츠를 제공하도록 동작한다. 콘텐츠는 비디오, 오디오, 멀티미디어 콘텐츠, 클립들, 실시간 및 비실시간 콘텐츠, 스크립트들, 프로그램들, 데이터 또는 다른 형태의 적합한 콘텐츠를 포함한다. 서버 (902) 는 분배를 위해 멀티캐스트 네트워크 (906) 및/또는 유니캐스트 네트워크 (908) 로 콘텐츠를 제공한다. 예를 들어, 서버 (902) 는 임의의 적합한 형태의 유선 및/또는 무선 통신 링크를 포함하는 통신 링크 (918) 를 통해 유니캐스트 네트워크 (908) 와 통신한다.
네트워크 (900) 는 사용자에게 전달을 위해 콘텐츠를 분배하도록 동작하는 유선 및 무선 네트워크들의 임의의 조합을 포함한다. 서버 (902) 는 링크 (920) 를 통해 멀티캐스트 네트워크 (906) 와 통신한다. 링크 (920) 는 임의의 적합한 형태의 유선 및/또는 무선 통신 링크를 포함한다. 멀티캐스트 네트워크 (906) 는 고품질 콘텐츠를 브로드캐스트하도록 설계된 유선 및 무선 네트워크들의 임의의 조합을 포함한다. 예를 들어, 멀티캐스트 네트워크 (906) 는 복수의 최적화된 통신 채널들을 통해 선택된 디바이스들로 고품질 콘텐츠를 전달하도록 최적화된 특정화된 전용 네트워크일 수도 있다.
하나 이상의 양태들에서, 전송 시스템은 서버 (902) 로부터 멀티캐스트 네트워크 (906) 및 유니캐스트 네트워크 (908) 를 통해 디바이스 (910) 로 콘텐츠를 전달하도록 동작한다. 예를 들어, 콘텐츠 흐름은 멀티캐스트 네트워크 (906) 를 사용하여 분배를 위해 서버 (902) 에 의해 제공되었던 비실시간 콘텐츠 클립을 포함할 수도 있다. 하나의 양태에서, 서버 (902) 는 콘텐츠 클립과 연관된 하나 이상의 파라미터들을 결정하기 위해 멀티캐스트 네트워크 (906) 와 협상하도록 동작한다. 일단 멀티캐스트 네트워크 (906) 가 콘텐츠 클립을 수신하면, 그것은 하나 이상의 디바이스 (910) 에 의한 수신을 위해 네트워크 (900) 통해 콘텐츠 클립을 브로드캐스트/멀티캐스트한다. 임의의 디바이스 (910) 은 콘텐츠 클립을 수신하도록 권한이 부여될 수도 있고 그것을 디바이스 사용자에 의해 추후에 관람하도록 캐시 (cache) 할 수도 있다.
예를 들어, 디바이스 (910) 는 네트워크 (900) 통한 브로드캐스트를 위해 스케쥴링된 콘텐츠의 리스팅을 디스플레이하는 프로그램 가이드를 제공하도록 동작하는 클라이언트 프로그램 (932) 을 포함한다. 디바이스 사용자는 그 후 실시간 렌더링을 위해 임의의 콘텐츠를 수신하거나 또는 추후의 관람을 위해 캐시 (934) 에 저장되도록 선택할 수도 있다. 예를 들어, 콘텐츠 클립은 밤 시간 동안의 브로드캐스트를 위해 스케쥴링될 수도 있고, 디바이스 (912) 는 그 브로드캐스트를 수신하고 콘텐트 클립을 캐시 (934) 에 캐시하도록 동작하여 디바이스가 다음날 그 클립을 관람할 수 있도록 한다. 통상적으로, 콘텐츠는 가입자 서비스의 일부로서의 브로드캐스트이고, 수신 디바이스는 그 브로드캐스트를 수신하기 위해 키 또는 인증 자체를 제공할 필요가 있을 수도 있다.
도 10 은 콘텐츠 전달 시스템에서의 사용에 적합한 콘텐츠 제공자 서버 (1000) 의 다양한 양태들을 도시한다. 예를 들어, 서버 (1000) 는 도 9 의 서버 (902) 로서 사용될 수도 있다. 서버 (1000) 는 프로세싱 로직 (1002), 자원 및 인터페이스 (1004) 및 송수신기 로직 (1010) 을 포함하며, 이들 모두는 내부 데이터 버스 (1012) 에 연결되어 있다. 서버 (1000) 는 또한 활성화 로직 (1014), PG (1006), 및 PG 레코드 로직 (1008) 을 포함하며, 이들 또한 데이터 버스 (1012) 에 연결되어 있다. 하나 이상의 양태들에서, 프로세싱 로직 (1002) 은 CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 요소, 가상 머신, 소프 트웨어, 및/또는 하드웨어 및 소프트웨어의 임의의 조합을 포함한다. 따라서, 프로세싱 로직 (1002) 은 일반적으로 머신-판독가능 명령들을 실행하고 내부 데이터 버스 (1012) 를 통해 서버 (1000) 의 하나 이상의 다른 기능적 요소를 제어하기 위한 로직을 포함한다.
자원 및 인터페이스 (1004) 는 서버 (1000) 가 내부 및 외부 시스템들과 통시하도록 허용하는 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 내부 시스템들은 대용량 기억 시스템, 메모리, 디스플레이 구동기, 모뎀 또는 다른 내부 디바이스 자원을 포함할 수도 있다. 외부 시스템들은 사용자 인터페이스 디바이스, 프린터, 디스크 드라이브, 또는 다른 로컬 디바이스들 또는 시스템들을 포함할 수도 있다. 송수신기 로직 (1010) 은 서버 (1000) 가 통신 채널 (1016) 을 사용하는 원격 디바이스 또는 시스템을 사용하여 데이터 및/또는 다른 정보를 송신 및 수신하는 것을 허용하도록 동작하는 하드웨어 로직 및/또는 소프트웨어를 포함한다. 예를 들어, 하나의 양태에서, 통신 채널 (1016) 은 서버 (1000) 가 데이터 네트워크와 통신하도록 허용하는 임의의 적합 형태의 통신 링크를 포함한다.
활성화 로직 (1014) 은 CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 요소, 가상 머신, 소프트웨어 및/또는 하드웨어 및 소프트웨어의 임의의 조합을 포함한다. 활성화 로직 (1014) 은 서버 및/또는 디바이스가 PG (1006) 에서 기술된 콘텐츠 및/또는 서비스를 선택 및 수신하도록 허용하도록 서버 및/또는 디바이스를 활성하도록 동작한다. 일 양태에서, 활성화 로직 (1014) 은 활성화 프로세스 동안 서버 및/또는 디바이스로 클라이언트 프로그램 (1020) 을 송신한다. 클라이언트 프로그램 (1020) 은 PG (1006) 를 수신하고 디바이스 사용자에게 이용가능한 콘텐츠 또는 서비스에 대한 정보를 디스플레이하도록 서버 및/또는 디바이스상에서 실행한다. 따라서, 활성화 로직 (1014) 은 서버 및/또는 디바이스를 인증하고, 클라이언트 프로그램 (1020) 을 다운로드하고, 클라이언트 프로그램 (1020) 에 의해 디바이스 상에 렌더링을 위해 PG (1006) 를 다운로드하도록 동작한다.
PG (1006) 는 수신할 디바이스를 위해 이용가능한 콘텐츠 및/또는 서비스를 기술하는 임의의 적합한 포맷의 정보를 포함한다. 예를 들어, PG (1006) 는 서버 (1000) 의 로컬 메모리 내에 저장될 수도 있고, 콘텐츠 또는 서비스 식별자와 같은 정보, 스케쥴링 정보, 프라이싱, 및/또는 임의의 다른 형태의 관련 정보를 포함할 수도 있다. 일 양태에 있어서, PG (1006) 는 이용가능한 콘텐츠 또는 서비스에 대한 변경이 행해짐에 따라 프로세싱 로직 (1002) 에 의해 업데이트되는 하나 이상의 식별가능한 섹션들을 포함한다.
PG 레코드 로직 (1008) 은 PG (1006) 에 대한 변경을 식별 및/또는 기술하는 통지 메시지를 생성하도록 동작하는 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 프로세싱 로직 (1002) 이 PG (1006) 를 업데이트하는 경우, PG 레코드 로직 (1008) 은 변경에 대해 통지받는다. PG 레코드 로직 (1008) 은 그 후 서버 (1000) 와 함께 활성화되었을 수도 있는 서버들로 송신되는 하나 이상의 통지 메시지들을 생성하여, 이들 서버들이 PG (1006) 에 대한 변경에 대해 즉시 통지받도록 한다.
다양한 양태들에서, 콘텐츠 전달 통지 메시지의 일부로서, 메시지에서 식별된 PG 의 섹션이 브로드캐스트될 시기를 나타내는 브로드캐스트 표시자 (broadcast indicator) 가 제공된다. 예를 들어, 일 양태에서, 브로드캐스트 표시자는 그 섹션이 브로드캐스트될 것을 나타내는 하나의 비트 및 브로드캐스트가 발생할 시기를 나타내는 시간 표시자를 포함한다. 따라서, PG 레코드들에 대한 그들의 로컬 복사를 업데이트하기 원하는 서버들 및/또는 디바이스들은 PG 레코드들의 업데이트된 섹션을 수신하기 위해 지정된 시간에 브로드캐스트에 귀를 기울일 수 있다. 일 양태에서, 콘텐츠 전달 통지 시스템은, 프로세서, 예를 들어 프로세싱 로직 (1002) 에 의해 실행될 때, 여기에 기술된 서버 (1000) 의 기능들을 제공하는 컴퓨터-판독가능 매체 상에 저장된 프로그램 명령들을 포함한다. 예를 들어, 프로그램 명령들은 플로피 디스크, CDROM, 메모리 카드, 플래시 메모리 디바이스, RAM, ROM 과 같은 컴퓨터-판독가능 매체 또는 자원 (1004) 을 통해 서버 (1000) 에 인터페이싱하는 임의의 다른 형태의 메모리 디바이스 또는 컴퓨터-판독가능 매체로부터 서버 (1000) 로 로드될 수도 있다. 또 다른 양태에서, 명령들은 송수신기 로직 (1010) 을 통해 서버 (1000) 에 인터페이싱하는 외부 디바이스 또는 네트워크 자원으로부터 서버 (1000) 로 다운로드될 수도 있다. 프로세싱 로직 (1002) 에 의해 실행될 때, 프로그램 명령들은 여기에 기술된 가이드 상태 통지 시스템의 하나 이상의 양태들을 제공한다.
도 11은 하나 이상의 양태들에 따라, 콘텐츠 전달 시스템에서의 사용에 적합한 서버 또는 디바이스 (1100) 를 도시한다. 예를 들어, 서버 (1100) 는 도 9 에 도시된 서버 (902) 또는 디바이스 (910) 이 수도 있다. 서버 (1100) 는 프로세싱 로직 (1102), 자원 및 인터페이스 (1104) 및 송수신기 로직 (1106) 을 포함하며, 이들 모두는 데이터 버스 (1108) 에 연결된다. 서버 (1100) 는 또한 클라이언트 (1110), 프로그램 로직 (1114) 및 PG 로직 (1112) 를 포함하며, 이들 역시 데이터 버스 (1108) 에 연결된다. 하나 이상의 양태들에서, 프로세싱 로직 (1102) 은 CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 요소, 가상 머신, 소프트웨어, 및/또는 하드웨어 및 소프트웨어의 임의의 조합을 포함한다. 따라서, 프로세싱 로직 (1102) 은 일반적으로 머신-판독가능 명령들을 실행하고 내부 데이터 버스 (1108) 를 통해 서버 (1100) 의 하나 이상의 다른 기능적 요소들을 제어하도록 구성된 로직을 포함한다.
자원 및 인터페이스 (1104) 는 서버 (1100) 가 내부 및 외부 시스템들과 통신하도록 허용하는 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 내부 시스템들은 대량 저장 시스템, 메모리, 디스플레이 구동기, 모뎀, 또는 다른 내부 디바이스 자원을 포함할 수도 있다. 외부 시스템들은 사용자 인터페이스 디바이스들, 프린터, 디스크 드라이브, 또는 다른 로컬 디바이스들 또는 시스템들을 포함할 수도 있다. 송수신기 로직 (1106) 은 서버 (1100) 가 통신 채널 (1114) 을 통해 외부 디바이스들 또는 시스템들과 데이터 및/또는 다른 정보를 송신 및 수신하는 것을 허용하도록 동작하는 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 통신 채널 (1114) 은 네트워크 통신 링크, 무선 통신 링크 또는 임의의 다른 형태의 통신 링크를 포함할 수도 있다.
동작 동안, 서버 및/또는 디바이스 (1100) 는 데이터 네트워크를 통해 이용가능한 콘텐츠 또는 서비스를 수신하도록 활성화된다. 예를 들어, 일 양태에서, 서버 및/또는 디바이스 (1100) 는 활성화 프로세서 동안 콘텐츠 제공자 서버에 관계한다. 활성화 프로세스의 일부로서, 서버 및/또는 디바이스 (1100) 는 PG 로직 (1112) 에 의해 PG 레코드들을 수신 및 저장한다. PG 로직 (1112) 은 수신할 서버 (1100) 를 위해 이용가능한 콘텐츠 또는 서비스를 식별하는 정보를 포함한다. 클라이언트 (1110) 는 자원 및 인터페이스 (1104) 를 사용하여 서버 및/또는 디바이스 (1100) 상의 PG 로직 (1112) 내의 정보를 렌더링하도록 동작한다. 예를 들어, 클라이언트 (1110) 는 디바이스의 일부인 디스플레이 스크린 상에 PG 로직 (1112) 내의 정보를 렌더링한다. 클라이언트 (1110) 는 또한 디바이스 사용자가 콘텐츠 또는 서비스를 선택할 수 있도록 자원 및 인터페이스를 통해 사용자 입력을 수신한다.
몇몇 양태들에서, 서버 (1100) 는 송수신기 로직 (1106) 을 통해 통지 메시지들을 수신한다. 예를 들어, 메시지들은 서버 (1100) 로 브로드캐스트 또는 유니캐스트될 수도 있고 송수신기 로직 (1106) 에 의해 수신될 수도 있다. PG 통지 메시지들은 PG 로직 (1112) 에서의 PG 레코드들에 대한 업그레이드를 식별한다. 일 양태에서, 클라이언트 (1110) 는 PG 로직 (1112) 에서의 로컬 복사가 업데이트될 필요가 있는지 여부를 결정하기 위해 PG 통지 메시지들을 프로세싱한다. 예를 들어, 일 양태에서, 통지 메시지들은 섹션 식별자, 시작 시간, 종료 시간, 및 버전 넘버를 포함한다. 서버 (1100) 는 PG 통지 메시지 내의 정보를 현재의 PG 로직 (1112) 의 국부적으로 저장된 정보와 비교하도록 동작한다. 만일 서버 (1100) 가 PG 통지 메시지로부터 PG 로직 (1112) 에서의 로컬 복사의 하나 이상의 섹션들이 업데이트될 필요가 있다고 결정하면, 서버 (1100) 는 수개의 방법들 중 하나의 방법으로 PG 의 업데이트된 섹션들을 수신하도록 동작한다. 예를 들어, PG 의 업데이트된 섹션들은 PG 통신 메시지에서 지시된 시간에 브로드캐스트될 수도 있어, 송수신기 로직 (1106) 이 그 브로드캐스트들을 수신하고 업데이트된 섹션들을 서버 (1100) 로 전달할 수 있도록 하며, 그것은 차례로 PG 로직 (1112) 에서의 로컬 복사를 업데이트한다.
다른 양태들에서, 서버 (1100) 는 수신된 PG 업데이트 통지 메시지에 기초하여 PG 의 어느 섹션들이 업데이트될 필요가 있는지를 결정하고, PG 의 원하는 업데이트된 섹션들을 획득하기 위한 요청을 CP 서버로 송신한다. 예를 들어, 그 요청은 임의의 적합한 포맷을 사용하여 포맷될 수도 있고 요청 서버 식별자, 섹션 식별자, 버전 넘버와 같은 정보 및/또는 임의의 다른 적합한 정보를 포함할 수도 있다. 일 양태에서, 서버 (1100) 는 PG 통신 시스템의 하나 이상의 양태들에서의 다음의 기능들 중 하나 이상을 수행한다. 다음의 기능들은 변경, 재배열, 수정, 부가, 삭제 또는 기타 양태들의 범위 내에서 조정될 수 있을 것이다. 서버는 콘텐츠 또는 서비스를 수신하기 위해 콘텐츠 제공자 시스템과 함께 동작을 위해 활성화될 수도 있다. 활성화 프로세스의 일부로서, 클라이언트 및 PG 는 서버로 송신된다. 하나 이상의 PG 통지 메시지들은 서버에 의해 수신되고 국부적으로 저장된 PG 의 하나 이상의 섹션들이 업데이트될 필요가 있는지를 결정하기 위 해 사용될 수도 있다. 일 양태에서, 만일 서버가 국부적으로 저장된 PG 의 하나 이상의 섹션들이 업데이트될 필요가 있다고 결정하면, 서버는 그것이 그의 로컬 복사를 업데이트하기 위해 필요로 하는 PG 의 업데이트된 섹션들을 획득하기 위해 분배 시스템으로부터의 브로드캐스트에 귀를 기울인다. 또 다른 양태에서, 서버는 그것이 필요로 하는 PG 의 업데이트된 섹션들을 획득하기 위해 CP 에 하나 이상의 요청 메시지들을 송신한다. 그 요청에 응답하여, CP 는 서버로 PG 의 업데이트된 섹션들을 송신한다. 서버는 PG 에 대한 그것의 로컬 복사를 업데이트하기 위해 PG 의 수신된 업데이트된 섹션들을 사용한다.
또 다른 양태들에 따르면, 콘텐츠 전달 시스템은, 프로세싱 로직 (1102) 과 같은 프로세서에 의해 실행될 때, 여기에 기술된 콘텐츠 전달 통지 시스템의 기능들을 제공하는 컴퓨터-판독가능 매체 상에 저장된 프로그램 명령들을 포함한다. 예를 들어, 명령들은 플로피 디스크, CDROM, 메모리 카드, 플래시 메모리 디바이스, RAM, ROM, 또는 자원 및 인터페이스 (1104) 를 통해 서버 (1100) 와 인터페이싱하는 임의의 다른 형태의 메모리 디바이스 또는 컴퓨터-판독가능 매체와 같은 컴퓨터-판독가능 매체로부터 서버 (1100) 로 로드될 수도 있다. 또 다른 양태에서, 명령들은 송수신기 로직 (1106) 을 통해 서버 (1100) 와 인터페이싱하는 네트워크 자원으로부터 서버 (1100) 로 다운로드될 수도 있다. 명령들은, 프로세싱 로직 (1102) 에 의해 실행될 때, 여기에 기술된 바와 같은 콘텐츠 전달 시스템의 하나 이상의 양태들을 제공한다. 서버 (1100) 는 단지 하나의 구현을 나타내고 다른 구현들이 양태들의 범위 내에서 가능하다.
도 12 는 다양한 양태들에 따라, 무선 통신 환경에서 체크-업 프로토콜 및 액세스 프로토콜을 수행하는 것을 용이하게 하는 장치 (1200) 의 도면이다. 장치 (1200) 는 소프트웨어의 클래스와 연관된 시퀀스 넘버 및/또는 소프트웨어 ID 와 같은 소프트웨어 버전 정보를 수신하는 수단 (1202) 을 포함할 수도 있다. 장치는 또한 (예를 들어, 도 2 및 도 3 에 대해 상술된 바와 같은) 소정의 조건들에 따라, 푸시 체크-업 프로토콜 또는 풀 체크-업 프로토콜 중 어느 하나 또는 양자 모두를 수행할 수도 있는 체크-업 프로토콜을 수행하는 수단 (1204) 을 포함한다. 장치 (1200) 는 또한 업그레이드 통지가 요청되는지 여부를 결정하는 것을 용이하게 하도록 액세스 프로토콜을 수행하는 수단을 포함한다. 액세스 프로토콜을 수행하는 수단 (1206) 은 미리 결정된 간격들로 실행되는 주기적 프로토콜, 소프트웨어가 론치할 때마다 실행되는 론치-개시 프로토콜, 사용자 명령시 실행되는 사용자-개시 프로토콜, 클라이언트와 서버 간의 트랜잭션시 개시되는 트랜잭션-기반 프로토콜 등을 수행할 수도 있다. 또한, 액세스 프로토콜을 수행하는 수단 (1206) 은 도 4 및 도 5 에 대해 상세히 설명된 바와 같이, 토큰 액세스 프로토콜을 수행할 수도 있다. 이러한 방식으로, 장치 (1200) 는 사용자 디바이스 상의 소프트웨어가 최신인지 여부 또는 소프트웨어 업그레이드 통지가 디바이스를 위해 필요한지 여부를 결정하는 것을 용이하게 한다.
소프트웨어 구현에서, 여기에 설명된 기술들은 여기에 기술된 기능들을 수행하는 모듈들 (예를 들어, 프로시져, 함수 등) 을 사용하여 구현될 수도 있다. 소프트웨어 코드는 메모리 유닛에 저장되고 프로세서에 의해 실행될 수도 있다. 메모리 유닛은 프로세서 내에 구현될 수도 있거나 프로세서 외부에 구현될 수도 있으며, 그 경우 그것은 당업자라면 알 수 있는 다양한 수단을 통해 프로세서에 통신가능하게 연결될 수 있다.
상술된 것은 하나 이상의 실시형태들의 예들을 포함한다. 물론, 상술된 실시형태들을 기술할 목적으로 컴포넌트들 또는 방법들의 모든 가능한 조합을 기술하는 것은 불가능하지만, 당업자라면 다양한 실시형태들의 많은 다른 조합들 및 치환들이 가능하다는 것을 인식할 수 있다. 따라서, 기술된 실시형태들은 첨부된 청구범위의 사상 및 범위 내에 있는 모든 그러한 변경, 수정 및 변형을 포함하도록 의도된다. 또한, 용어 "포함하다 (include)" 가 상세한 설명 또는 청구범위 중 어느 하나에서 사용되는 범위에서, 그러한 용어는 "포함하는 (comprising)" 이 청구범위에서의 전이적인 어구로서 사용될 때와 같이 그 용어 "포함하는 (comprising)" 과 유사한 방식으로 포괄적인 것으로 의도된다.

Claims (57)

  1. 무선 통신 환경에서 소프트웨어 업그레이드 통지를 제공하는 방법으로서,
    서버로부터 소프트웨어 버전 정보를 수신하는 단계;
    소프트웨어 업그레이드가 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 체크-업 프로토콜을 수행하는 단계; 및
    소프트웨어 업그레이드 통지를 수신하기 위해 액세스 프로토콜을 수행하는 단계를 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  2. 제 1 항에 있어서,
    상기 체크-업 프로토콜은 서버와 적어도 하나의 사용자 디바이스 간의 멀티캐스트 접속을 통해 수행된 푸시 (push) 체크-업 프로토콜인, 소프트웨어 업그레이드 통지 제공 방법.
  3. 제 2 항에 있어서,
    멀티캐스트 채널을 통해 소프트웨어 업그레이드 통지들을 송신하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  4. 제 2 항에 있어서,
    멀티캐스트 데이터 채널을 통해 상기 소프트웨어 버전 정보를 수신하는 단계 를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  5. 제 4 항에 있어서,
    상기 수신된 소프트웨어 버전 정보가 사용자 디바이스와 관련이 있는지 여부를 결정하기 위해, 상기 소프트웨어 업그레이드 통지에서 상기 소프트웨어 버전 정보와 함께 수신된 소프트웨어 ID 가 상기 사용자 디바이스에 대응하는지 여부를 평가하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  6. 제 1 항에 있어서,
    상기 사용자 디바이스와 상기 서버 간에 점대점 (point-to-point) 접속을 생성하고 풀 (pull) 체크-업 프로토콜을 수행하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  7. 제 6 항에 있어서,
    상기 서버로부터 소프트웨어 업그레이드 정보를 요청하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  8. 제 7 항에 있어서,
    상기 소프트웨어 버전 정보를 포함하는 서버 응답을 수신하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  9. 제 8 항에 있어서,
    상기 서버 응답 내의 버전 넘버가 상기 사용자 디바이스 상에 저장된 소프트웨어와 연관된 버전 넘버보다 큰 경우 소프트웨어 업그레이드 통지를 수신하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  10. 제 1 항에 있어서,
    상기 액세스 프로토콜은 주기적 액세스 프로토콜, 사용자-개시 (user-initiated) 액세스 프로토콜, 트랜잭션-기반 액세스 프로토콜, 및 론치-개시 (launch-initiated) 프로토콜 중 적어도 하나인, 소프트웨어 업그레이드 통지 제공 방법.
  11. 제 1 항에 있어서,
    상기 액세스 프로토콜은 클라이언트 토큰 값이 멀티캐스트 채널에서 주기적으로 공시되는 서버 토큰 값과 비교되는 토큰-기반 접근법을 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  12. 제 11 항에 있어서,
    상기 클라이언트 토큰 값이 유효하지 않은 경우, 풀 체크-업 프로토콜을 수행하는 단계, 클라이언트 토큰을 생성하는 단계, 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  13. 제 11 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 이상인지 여부를 결정하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  14. 제 13 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 이상인 경우 상기 클라이언트 디바이스가 최신의 소프트웨어를 가지고 있다는 것을 확인응답하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  15. 제 13 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 (모듈로 n) 미만인 경우, 상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있는지 여부를 결정하는 단계를 더 포함하고,
    여기서 서버는 m (양의 정수) 개의 가장 최근의 서버 토큰 값들과 연관된 소프트웨어 업그레이드 통지들을 송신하고, n 은 최대 토큰 값인, 소프트웨어 업그레이드 통지 제공 방법.
  16. 제 15 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있는 경우, 푸시 체크-업 프로토콜을 수행하고 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  17. 제 15 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있지 않은 경우, 풀 체크-업 프로토콜을 수행하고 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  18. 제 1 항에 있어서,
    풀 체크-업 프로토콜이 후속하는, 미리 결정된 시간 주기 동안의 푸시 체크-업 프로토콜을 수행함으로써 상기 소프트웨어 업그레이드 통지를 제공하는 단계를 더 포함하는, 소프트웨어 업그레이드 통지 제공 방법.
  19. 무선 통신 환경에서 멀티캐스트 및 유니캐스트 접속들을 통해 통신하는 사용자 디바이스들에 소프트웨어 업그레이드 통지들을 제공하는 것을 용이하게 하는 장치로서,
    소프트웨어 버전 정보를 수신하는 수신기; 및
    소프트웨어 업그레이드 통지를 획득하기 위해 체크-업 프로토콜 및 액세스 프로토콜을 수행하는 프로세서를 포함하는, 소프트웨어 업그레이드 통지 제공 장치.
  20. 제 19 항에 있어서,
    상기 프로세서는 클라이언트 토큰이 멀티캐스트 채널에서 주기적으로 공시되는 서버 토큰 값과 비교되는 토큰-기반 프로토콜을 사용하고, 상기 클라이언트 토큰이 상기 사용자 디바이스에서 유효한지 여부를 결정하는, 소프트웨어 업그레이드 통지 제공 장치.
  21. 제 20 항에 있어서,
    상기 프로세서는 상기 클라이언트 토큰 값이 유효하지 않은 경우, 풀 체크-업 프로토콜을 수행하고, 클라이언트 토큰을 생성하고, 상기 클라이언트 토큰 값을 상기 소프트웨어 버전 정보와 함께 수신된 상기 서버 토큰 값과 동일하게 설정하는, 소프트웨어 업그레이드 통지 제공 장치.
  22. 제 19 항에 있어서,
    상기 프로세서는 클라이언트 토큰 값이 서버 토큰 값 이상인지 여부를 결정하는, 소프트웨어 업그레이드 통지 제공 장치.
  23. 제 22 항에 있어서,
    상기 프로세서는, 상기 클라이언트 토큰 값이 상기 서버 토큰 값 (모듈로 n) 미만인 경우, 상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있는지 여부를 결정하고,
    여기서 서버는 m (양의 정수) 개의 가장 최근의 서버 토큰 값들과 연관된 소프트웨어 업그레이드 통지들을 송신하고, n 은 최대 토큰 값인, 소프트웨어 업그레이드 통지 제공 장치.
  24. 제 23 항에 있어서,
    상기 프로세서는, 상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있는 경우, 푸시 체크-업 프로토콜을 실행하고 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는, 소프트웨어 업그레이드 통지 제공 장치.
  25. 제 23 항에 있어서,
    상기 프로세서는, 상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있지 않은 경우, 풀 체크-업 프로토콜을 실행하고 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는, 소프트웨어 업그레이드 통지 제공 장치.
  26. 제 19 항에 있어서,
    풀 체크-업 프로토콜이 후속하는, 미리 결정된 시간 주기 동안의 푸시 체크-업 프로토콜을 수행함으로써 상기 소프트웨어 업그레이드 통지를 제공하는 것을 더 포함하는, 소프트웨어 업그레이드 통지 제공 장치.
  27. 무선 통신 장치로서,
    멀티캐스트 접속 및 유니캐스트 접속 양쪽 모두를 통해 서버로부터 소프트웨어 버전 정보를 수신하는 수단;
    소프트웨어 업그레이드가 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 체크-업 프로토콜을 수행하는 수단; 및
    소프트웨어 업그레이드 통지를 수신하기 위해 액세스 프로토콜을 수행하는 수단을 포함하는, 무선 통신 장치.
  28. 제 27 항에 있어서,
    상기 액세스 프로토콜은 주기적 액세스 프로토콜, 사용자-개시 (user-initiated) 액세스 프로토콜, 트랜잭션-기반 액세스 프로토콜, 및 론치-개시 (launch-initiated) 프로토콜 중 적어도 하나인, 무선 통신 장치.
  29. 제 27 항에 있어서,
    토큰-기반 액세스 프로토콜을 사용하고 클라이언트 토큰이 상기 사용자 디바이스에서 유효한지 여부를 결정하는 수단을 더 포함하는, 무선 통신 장치.
  30. 제 29 항에 있어서,
    상기 클라이언트 토큰이 존재하지 않는 경우, 유니캐스트 체크-업 프로토콜을 수행하는 수단, 클라이언트 토큰을 생성하는 수단, 및 상기 클라이언트 토큰 값을 서버 토큰 값과 동일하게 설정하는 수단을 더 포함하는, 무선 통신 장치.
  31. 제 29 항에 있어서,
    상기 클라이언트 토큰이 유효한 경우, 클라이언트 토큰 값이 서버 토큰 값 이상인지 여부를 결정하는 수단을 더 포함하는, 무선 통신 장치.
  32. 제 31 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 (모듈로 n) 미만인 경우, 상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있는지 여부를 결정하는 수단을 더 포함하고,
    여기서 서버는 m (양의 정수) 개의 가장 최근의 서버 토큰 값들과 연관된 소프트웨어 업그레이드 통지들을 송신하고, n 은 최대 토큰 값인, 무선 통신 장치.
  33. 제 32 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있는 경우, 멀티캐스트 체크-업 프로토콜을 수행하는 수단 및 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는 수단을 더 포함하는, 무선 통신 장치.
  34. 제 32 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있지 않은 경우, 유니캐스트 체크-업 프로토콜을 수행하는 수단 및 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는 수단을 더 포함하는, 무선 통신 장치.
  35. 제 27 항에 있어서,
    유니캐스트 체크-업 프로토콜을 실행하는 수단이 후속하는, 미리 결정된 시간 주기 동안의 멀티캐스트 체크-업 프로토콜을 수행하는 수단을 사용함으로써 상기 소프트웨어 업그레이드 통지를 제공하는 수단을 더 포함하는, 무선 통신 장치.
  36. 서버로부터 소프트웨어 버전 정보를 포함하는 오버헤드 메시지를 수신하고;
    소프트웨어 업그레이드가 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 체크-업 프로토콜을 수행하고;
    소프트웨어 업그레이드 통지를 수신하기 위해 액세스 프로토콜을 수행하는 컴퓨터-실행가능 명령들을 포함하는 컴퓨터 프로그램을 갖는 컴퓨터-판독가능 매체.
  37. 제 36 항에 있어서,
    상기 체크-업 프로토콜은 서버와 적어도 하나의 사용자 디바이스 간의 멀티캐스트 접속을 통해 수행된 푸시 체크-업 프로토콜인, 컴퓨터-판독가능 매체.
  38. 제 37 항에 있어서,
    멀티캐스트 데이터 채널을 통해 상기 소프트웨어 버전 정보를 수신하는 명령, 및 상기 소프트웨어 버전 정보와 함께 수신된 소프트웨어 ID 가 상기 사용자 디바이스와 관련이 있는지 여부를 결정하는 명령을 더 포함하는, 컴퓨터-판독가능 매체.
  39. 제 36 항에 있어서,
    상기 사용자 디바이스와 상기 서버 간에 점대점 접속을 생성하고 풀 체크-업 프로토콜을 수행하는 명령, 상기 서버로부터 소프트웨어 업그레이드 정보를 요청하는 명령, 상기 소프트웨어 버전 정보를 포함하는 서버 응답을 수신하는 명령, 및 상기 서버 응답 내의 버전 넘버가 상기 사용자 디바이스 상에 저장된 소프트웨어와 연관된 버전 넘버보다 큰 경우 소프트웨어 업그레이드 통지를 수신하는 명령을 더 포함하는, 컴퓨터-판독가능 매체.
  40. 제 36 항에 있어서,
    상기 액세스 프로토콜은 주기적 액세스 프로토콜, 사용자-개시 (user-initiated) 액세스 프로토콜, 트랜잭션-기반 액세스 프로토콜, 및 론치-개시 (launch-initiated) 프로토콜 중 적어도 하나인, 컴퓨터-판독가능 매체.
  41. 제 36 항에 있어서,
    토큰-기반 액세스 프로토콜을 사용하는 명령 및 클라이언트 토큰이 상기 사용자 디바이스에서 유효한지 여부를 결정하는 명령을 더 포함하는, 컴퓨터-판독가능 매체.
  42. 제 41 항에 있어서,
    상기 클라이언트 토큰이 유효하지 않은 경우, 풀 체크-업 프로토콜을 수행하는 명령, 클라이언트 토큰을 생성하는 명령, 및 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는 명령을 더 포함하는, 컴퓨터-판독가능 매체.
  43. 제 41 항에 있어서,
    상기 클라이언트 토큰이 유효한 경우, 클라이언트 토큰 값이 서버 토큰 값 이상인지 여부를 결정하는 명령을 더 포함하는, 컴퓨터-판독가능 매체.
  44. 제 43 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 (모듈로 n) 미만인 경우, 상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있는지 여부를 결정하는 명령을 더 포함하고,
    여기서 서버는 m (양의 정수) 개의 가장 최근의 서버 토큰 값들과 연관된 소프트웨어 업그레이드 통지들을 송신하고, n 은 최대 토큰 값인, 컴퓨터-판독가능 매체.
  45. 제 44 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있는 경우, 푸시 체크-업 프로토콜을 수행하고 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는 명령들을 더 포함하는, 컴퓨터-판독가능 매체.
  46. 제 44 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있지 않은 경우, 풀 체크-업 프로토콜을 수행하고 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는 명령들을 더 포함하는, 컴퓨터-판독가능 매체.
  47. 제 36 항에 있어서,
    풀 체크-업 프로토콜이 후속하는, 미리 결정된 시간 주기 동안의 푸시 체크-업 프로토콜을 수행함으로써 상기 소프트웨어 업그레이드 통지를 제공하는 명령을 더 포함하는, 컴퓨터-판독가능 매체.
  48. 무선 통신 환경에서 처리량을 증가시키기 위한 명령들을 실행하는 프로세서로서,
    상기 명령들은,
    서버로부터 소프트웨어 버전 정보를 갖는 오버헤드 메시지를 수신하는 명령;
    소프트웨어 업그레이드가 사용자 디바이스를 위해 이용가능한지 여부를 결정하기 위해 체크-업 프로토콜을 수행하는 명령; 및
    소프트웨어 업그레이드 통지를 수신하기 위해 액세스 프로토콜을 수행하는 명령을 포함하는, 프로세서.
  49. 제 48 항에 있어서,
    상기 체크-업 프로토콜은 서버와 적어도 하나의 사용자 디바이스 간의 멀티캐스트 채널을 통해 수행된 멀티캐스트 체크-업 프로토콜인, 프로세서.
  50. 제 48 항에 있어서,
    상기 명령들은 점대점 접속을 통해 유니캐스트 체크-업 프로토콜을 수행하는 명령, 상기 서버로부터 소프트웨어 버전 정보를 요청하는 명령, 상기 소프트웨어 버전 정보를 포함하는 서버 응답을 수신하는 명령, 및 상기 서버 응답 내의 버전 넘버가 상기 사용자 디바이스 상에 저장된 소프트웨어와 연관된 버전 넘버보다 큰 경우 소프트웨어 업그레이드 통지를 수신하는 명령을 더 포함하는, 프로세서.
  51. 제 48 항에 있어서,
    상기 명령들은 토큰-기반 액세스 프로토콜을 구현하는 명령 및 클라이언트 토큰이 상기 사용자 디바이스에서 유효한지 여부를 결정하는 명령을 더 포함하는, 프로세서.
  52. 제 51 항에 있어서,
    상기 명령들은, 클라이언트 토큰이 유효하지 않은 경우, 유니캐스트 체크-업 프로토콜을 수행하는 명령, 클라이언트 토큰을 생성하는 명령, 및 상기 클라이언트 토큰 값을 서버 토큰 값과 동일하게 설정하는 명령을 더 포함하는, 프로세서.
  53. 제 51 항에 있어서,
    상기 명령들은, 상기 클라이언트 토큰이 유효한 경우, 상기 클라이언트 토큰 값이 서버 토큰 값 이상인지 여부를 결정하는 명령을 더 포함하는, 프로세서.
  54. 제 53 항에 있어서,
    상기 클라이언트 토큰 값이 상기 서버 토큰 값 (모듈로 n) 미만인 경우, 상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있는지 여부를 결정하는 명령을 더 포함하고,
    여기서 서버는 m (양의 정수) 개의 가장 최근의 서버 토큰 값들과 연관된 소프트웨어 업그레이드 통지들을 송신하고, n 은 최대 토큰 값인, 프로세서.
  55. 제 54 항에 있어서,
    상기 명령들은 상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있는 경우, 멀티캐스트 체크-업 프로토콜을 수행하고 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는 명령들을 더 포함하는, 프로세서.
  56. 제 54 항에 있어서,
    상기 명령들은 상기 클라이언트 토큰 값이 상기 서버 토큰 값 - m (모듈로 n) 과 상기 서버 토큰 값 - 1 (모듈로 n) 사이에 있지 않은 경우, 유니캐스트 체크-업 프로토콜을 수행하고 상기 클라이언트 토큰 값을 상기 서버 토큰 값과 동일하게 설정하는 명령들을 더 포함하는, 프로세서.
  57. 제 48 항에 있어서,
    상기 명령들은 미리 결정된 시간 주기 동안 멀티캐스트 체크-업 프로토콜을 수행함으로써 소프트웨어 업그레이드 통지를 제공하는 명령 및 상기 미리 결정된 시간 주기가 만료된 후 상기 사용자 디바이스가 유니캐스트 체크-업 프로토콜을 개시하는 것을 허용하는 명령을 더 포함하는, 프로세서.
KR1020087015291A 2005-11-23 2006-11-22 통신 시스템 내의 디바이스들에 소프트웨어 업그레이드 통지를 제공하는 방법, 장치, 프로세서 및 컴퓨터-판독가능 매체 KR100944143B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US73987305P 2005-11-23 2005-11-23
US60/739,873 2005-11-23
US11/398,264 2006-04-04
US11/398,264 US7844721B2 (en) 2005-11-23 2006-04-04 Method for delivery of software upgrade notification to devices in communication systems

Publications (2)

Publication Number Publication Date
KR20080071195A true KR20080071195A (ko) 2008-08-01
KR100944143B1 KR100944143B1 (ko) 2010-02-24

Family

ID=38054765

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087015291A KR100944143B1 (ko) 2005-11-23 2006-11-22 통신 시스템 내의 디바이스들에 소프트웨어 업그레이드 통지를 제공하는 방법, 장치, 프로세서 및 컴퓨터-판독가능 매체

Country Status (9)

Country Link
US (3) US7844721B2 (ko)
EP (1) EP1952616A2 (ko)
JP (1) JP2009517926A (ko)
KR (1) KR100944143B1 (ko)
CN (1) CN101361354B (ko)
BR (1) BRPI0618917A2 (ko)
CA (1) CA2630851A1 (ko)
RU (1) RU2390963C2 (ko)
WO (1) WO2007120288A2 (ko)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100727993B1 (ko) * 2005-10-04 2007-06-14 삼성전자주식회사 데이터 풀 방식을 이용한 데이터 푸시 서비스 방법 및시스템
US7844721B2 (en) * 2005-11-23 2010-11-30 Qualcomm Incorporated Method for delivery of software upgrade notification to devices in communication systems
US20080101317A1 (en) * 2006-10-30 2008-05-01 Nokia Corporation System and method for providing advanced session control of a unicast session
US7925255B2 (en) * 2006-12-14 2011-04-12 General Motors Llc Satellite radio file broadcast method
WO2008114491A1 (ja) * 2007-03-20 2008-09-25 Access Co., Ltd. アプリケーション更新管理機能を備えた端末、アプリケーション更新管理プログラムおよびシステム
US8914786B2 (en) * 2007-03-23 2014-12-16 Zumobi, Inc. Systems and methods for controlling application updates across a wireless interface
KR100857705B1 (ko) * 2007-05-28 2008-09-08 (주)케이티에프테크놀로지스 프로그램 업그레이드 방법 및 이를 수행하기 위한 시스템
US20090048894A1 (en) * 2007-08-14 2009-02-19 Michel Shane Simpson Techniques for propagating changes in projects
US20090075641A1 (en) * 2007-09-18 2009-03-19 Metropcs Wireless, Inc. Automated over-the-air firmware update for a wireless phone
US20100262961A1 (en) * 2007-10-30 2010-10-14 Lg Electronics Inc. Method and system for downloading software
EP2206338A4 (en) * 2007-10-30 2012-02-08 Lg Electronics Inc METHOD AND SYSTEM FOR DOWNLOADING SOFTWARE
KR101518086B1 (ko) * 2007-11-01 2015-05-15 엘지전자 주식회사 데이터 처리 방법 및 iptv 수신 디바이스
CN101150460A (zh) * 2007-11-14 2008-03-26 华为技术有限公司 自动调测网络设备的方法及系统
US8726260B2 (en) * 2007-11-26 2014-05-13 Lenovo (Singapore) Pte Ltd Techniques for providing software patches to a computer system
US20090204946A1 (en) * 2008-02-12 2009-08-13 International Business Machines Corporation Intelligent software code updater
US8910197B2 (en) * 2008-08-25 2014-12-09 Alcatel Lucent Update process for interface device based targeted information insertion
KR101498054B1 (ko) * 2008-09-12 2015-03-03 엘지전자 주식회사 무선 네트워크에서의 통신 수행 방법
CN101686139B (zh) * 2008-09-22 2012-05-23 华为终端有限公司 一种组播升级的方法、装置和系统
US9306765B2 (en) * 2009-02-20 2016-04-05 Alcatel Lucent Access node based targeted information insertion
US20100229058A1 (en) 2009-03-04 2010-09-09 Suresh Goyal Method and apparatus for system testing using scan chain decomposition
US8489210B2 (en) 2009-03-24 2013-07-16 Rockwell Automation Technologies, Inc. Electronic operator interface based controller and device automatic downloads
US9185174B2 (en) * 2009-04-29 2015-11-10 Ianywhere Solutions, Inc. Maintaining mobile device operations
WO2010138130A1 (en) * 2009-05-29 2010-12-02 Hewlett-Packard Development Company, L.P. System and method for allocating resources of a server to a virtual machine
GB2470751A (en) * 2009-06-04 2010-12-08 Iq2 Ltd Delivering messages/content by determining if a target device is equipped with the appropriate application to enable the message/content to be conveyed.
CN101931942A (zh) * 2009-06-29 2010-12-29 广东天波信息技术有限公司 一种cdma终端通过互联网远程升级的方法
US9830243B1 (en) 2009-09-14 2017-11-28 The Directv Group, Inc. Method and system for rebooting a client device within a local area network from a central server
US9678736B2 (en) * 2009-09-14 2017-06-13 The Directv Group, Inc. Method and system for updating a software image at a client device
CN101710934B (zh) * 2009-11-25 2011-11-30 中兴通讯股份有限公司 一种机顶盒版本升级的方法及系统
US8769614B1 (en) * 2009-12-29 2014-07-01 Akamai Technologies, Inc. Security framework for HTTP streaming architecture
EP2360581A1 (en) * 2010-01-18 2011-08-24 Thomson Licensing Method, system and device for execution of a software application
CN101808009B (zh) * 2010-03-08 2014-01-01 中兴通讯股份有限公司 一种网络设备升级的方法和系统
CN102202384B (zh) * 2010-03-24 2014-01-01 电信科学技术研究院 一种空分干扰的控制方法及装置
EP2400389B1 (en) 2010-06-24 2016-05-25 Alcatel Lucent A method, a system, a server, a device, a computer program and a computer program product for transmitting data in a computer network
CN101895873B (zh) * 2010-07-14 2015-08-12 中兴通讯股份有限公司 移动终端的Java应用的更新方法、服务器和移动终端
DE102010045683A1 (de) * 2010-09-16 2012-03-22 Heidelberger Druckmaschinen Ag Kombinierte Unicast/Multicast Softwareübertragung
KR20120068573A (ko) * 2010-12-17 2012-06-27 삼성전자주식회사 심리스 애플리케이션 통합 장치 및 방법
CN102176695A (zh) * 2011-01-14 2011-09-07 北京格致璞科技有限公司 用于同步设备间软件环境的方法和装置
CN103136001B (zh) * 2011-11-25 2016-06-01 中国北车股份有限公司 车载设备程序更新装置以及程序更新的方法
US20130332522A1 (en) * 2012-06-08 2013-12-12 Microsoft Corporation Fast channel for system management
US8813061B2 (en) 2012-10-17 2014-08-19 Movimento Group Module updating device
US9128798B2 (en) 2012-10-17 2015-09-08 Movimento Group Module updating device
US9910659B2 (en) 2012-11-07 2018-03-06 Qualcomm Incorporated Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory
CN103853574B (zh) * 2012-12-06 2015-09-16 腾讯科技(深圳)有限公司 一种软件升级的方法及系统
KR101921636B1 (ko) * 2012-12-07 2018-11-26 인포뱅크 주식회사 세션 제어 장치 및 방법과 기록 매체
US20140279550A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Software Upgrades Using Tokens and Existing Licenses
WO2014147817A1 (ja) * 2013-03-22 2014-09-25 富士通株式会社 情報処理装置、プログラム更新方法、及びプログラム
JP6167736B2 (ja) * 2013-08-05 2017-07-26 ソニー株式会社 情報処理装置、サーバ装置、情報処理方法及びプログラム
CN103442063B (zh) * 2013-08-29 2017-05-24 贝壳网际(北京)安全技术有限公司 信息处理方法、客户端设备及服务器
CN104679541B (zh) * 2013-11-28 2018-05-29 中车大连电力牵引研发中心有限公司 列车网络控制系统和应用程序下载方法
US10866796B2 (en) * 2014-04-18 2020-12-15 Huawei Device Co., Ltd. Software upgrade method and apparatus, and device
CN105100021B (zh) * 2014-05-20 2021-03-16 西安中兴新软件有限责任公司 一种设备管理会话的触发方法、设备及系统
US10419291B2 (en) * 2014-07-23 2019-09-17 Huawei Technologies Co., Ltd. Terminal upgrade method and related device with multicast program
CN104503801B (zh) * 2014-12-30 2018-07-06 北京奇安信科技有限公司 软件升级指令分发方法、通信服务器及终端设备
CN104834537B (zh) 2014-12-30 2018-04-27 沈阳东软医疗系统有限公司 数据处理方法、服务器及客户端
US9864598B2 (en) * 2015-09-18 2018-01-09 ReactiveCore LLC System and method for providing supplemental functionalities to a computer program
US11157260B2 (en) 2015-09-18 2021-10-26 ReactiveCore LLC Efficient information storage and retrieval using subgraphs
US10309792B2 (en) 2016-06-14 2019-06-04 nuTonomy Inc. Route planning for an autonomous vehicle
US11092446B2 (en) 2016-06-14 2021-08-17 Motional Ad Llc Route planning for an autonomous vehicle
US10126136B2 (en) 2016-06-14 2018-11-13 nuTonomy Inc. Route planning for an autonomous vehicle
US10829116B2 (en) 2016-07-01 2020-11-10 nuTonomy Inc. Affecting functions of a vehicle based on function-related information about its environment
US10473470B2 (en) 2016-10-20 2019-11-12 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10331129B2 (en) 2016-10-20 2019-06-25 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10681513B2 (en) 2016-10-20 2020-06-09 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10857994B2 (en) 2016-10-20 2020-12-08 Motional Ad Llc Identifying a stopping place for an autonomous vehicle
US10051462B2 (en) * 2016-12-16 2018-08-14 T-Mobile Usa, Inc. Hybrid transport for installed service updates
CN109445810A (zh) * 2018-09-07 2019-03-08 百度在线网络技术(北京)有限公司 自动驾驶车辆的信息升级方法、装置及存储介质
CN109889579B (zh) * 2019-01-24 2021-01-26 江苏中云科技有限公司 云计算环境下的通用升级系统
CN111741363B (zh) * 2020-04-17 2024-03-12 视联动力信息技术股份有限公司 程序升级方法、装置及可读存储介质
CN112162769A (zh) * 2020-10-14 2021-01-01 广州欢网科技有限责任公司 针对应用软件限流升级的方法、服务器及客户端
US11935448B2 (en) 2022-02-11 2024-03-19 Haier Us Appliance Solutions, Inc. Performing system updates on an appliance having a limited user interface

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE515251C2 (sv) 1996-04-24 2001-07-02 Telia Ab Anpassningsbar multimediatjänst
DE19801576C2 (de) 1998-01-19 2002-04-11 Deutsche Telekom Mobil Verfahren zur endgeräteunterstützten Menüführung in Mobilkommunikationssystemen
EP0959635A1 (en) * 1998-05-20 1999-11-24 Alcatel Connectionless downloading of software to wireless terminals
US6269080B1 (en) * 1999-04-13 2001-07-31 Glenayre Electronics, Inc. Method of multicast file distribution and synchronization
KR20020030432A (ko) 2000-10-17 2002-04-25 지성재 이동통신기기의 소프트웨어 업그레이드방법
US20070169073A1 (en) * 2002-04-12 2007-07-19 O'neill Patrick Update package generation and distribution network
US20040117785A1 (en) * 2002-12-13 2004-06-17 Samsung Electronics Co., Ltd. Component download manager for a wireless mobile station and method of operation
US8250565B2 (en) 2003-06-27 2012-08-21 Hewlett-Packard Development Company, L.P. System and method for downloading update packages into a mobile handset in a carrier network
CN100484288C (zh) 2003-12-22 2009-04-29 艾利森电话股份有限公司 通过空中传送来下载和升级无线设备的终端软件
US7844721B2 (en) 2005-11-23 2010-11-30 Qualcomm Incorporated Method for delivery of software upgrade notification to devices in communication systems

Also Published As

Publication number Publication date
WO2007120288A3 (en) 2008-01-10
EP1952616A2 (en) 2008-08-06
BRPI0618917A2 (pt) 2011-09-13
CN101361354A (zh) 2009-02-04
KR100944143B1 (ko) 2010-02-24
RU2008125171A (ru) 2009-12-27
CA2630851A1 (en) 2007-10-25
US20110072146A1 (en) 2011-03-24
US8516142B2 (en) 2013-08-20
CN101361354B (zh) 2014-01-08
RU2390963C2 (ru) 2010-05-27
US8112538B2 (en) 2012-02-07
US20120084765A1 (en) 2012-04-05
US7844721B2 (en) 2010-11-30
WO2007120288A2 (en) 2007-10-25
JP2009517926A (ja) 2009-04-30
US20070118617A1 (en) 2007-05-24

Similar Documents

Publication Publication Date Title
KR100944143B1 (ko) 통신 시스템 내의 디바이스들에 소프트웨어 업그레이드 통지를 제공하는 방법, 장치, 프로세서 및 컴퓨터-판독가능 매체
US8284714B2 (en) Systems and methods for temporary media file storage on a wireless communication device
US8645948B2 (en) Apparatus and methods for client-driven server-side installation
US11075737B2 (en) Methods, apparatus, systems and procedures for supporting multicast transmission
WO2010035108A1 (en) Optimized polling in low resource devices
KR20070038157A (ko) 프로그램 가이드 상태 정보를 장치에 제공하기 위한 방법및 장치
JP5269842B2 (ja) エラーが起こりやすい無線ブロードキャストチャネルで多重化する方法
KR101276963B1 (ko) 무선 네트워크들을 통한 메시지 브로드캐스팅
JP2009532992A (ja) Flo波形上で受信されたftapデータパケットの正しさを検証するための方法および装置
JP4875056B2 (ja) 個別に復号化できるパケットで制御情報を送信することによって制御情報取得レイテンシーを改善する方法
US20060242222A1 (en) Method of improving control information acquisition latency by transmitting control information in individually decode-able packets
CA2600748A1 (en) Methods and apparatus for providing a control channel in a data network
US11956711B2 (en) Access point with limited flash memory

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
FPAY Annual fee payment

Payment date: 20130130

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee