KR101134214B1 - 무선 환경에서 데이터세트 동기화를 위한 방법들 및 장치 - Google Patents

무선 환경에서 데이터세트 동기화를 위한 방법들 및 장치 Download PDF

Info

Publication number
KR101134214B1
KR101134214B1 KR1020107001246A KR20107001246A KR101134214B1 KR 101134214 B1 KR101134214 B1 KR 101134214B1 KR 1020107001246 A KR1020107001246 A KR 1020107001246A KR 20107001246 A KR20107001246 A KR 20107001246A KR 101134214 B1 KR101134214 B1 KR 101134214B1
Authority
KR
South Korea
Prior art keywords
synchronization
network device
dataset
version number
wireless device
Prior art date
Application number
KR1020107001246A
Other languages
English (en)
Other versions
KR20100031623A (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 KR20100031623A publication Critical patent/KR20100031623A/ko
Application granted granted Critical
Publication of KR101134214B1 publication Critical patent/KR101134214B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Communication Control (AREA)

Abstract

방법들, 장치, 시스템들, 및 컴퓨터 프로그램 물건이 네트워크 서버 또는 데이터베이스와 같은, 무선 장치상에 그리고 네트워크 장치에 저장된 데이터세트들을 무선으로 동기화하기 위해 제공된다. 양상들은 간략화된 그리고 효율적인 동기화 프로세스를 제공하며, 그에 의해 동기화가 무선 장치 및 네트워크 장치 사이의 무선 통신의 싱글 라운드-트립에서 완성될 수 있다. 싱글 라운드-트립 동기화는 네트워크 리소스들의 더 적은 사용, 더 짧은 전체 동기화 사이클 시간들을 제공하며, 동기화를 실패하게 하는 호 드롭(drop)들 등과 같은, 무선 네트워크 실패들의 가능성을 줄인다. 추가적으로, 간략화 및 효율성이 네트워크 데이터세트가 무선 장치 데이터세트들에 독립적이도록 허용하는 동기화 프로세스를 생성함으로써 추가적으로 실현될 수 있으며, 즉 네트워크 서버가 전체 변화 히스토리를 요구하거나 무선 장치 데이터세트 버전을 알도록 요구되는 네트워크 서버가 아니다. 동기화는 네트워크-기반 게이밍(gaming) 애플리케이션들에 적용될 수 있다.

Description

무선 환경에서 데이터세트 동기화를 위한 방법들 및 장치{METHODS AND APPARATUS FOR DATASET SYNCHRONIZATION IN A WIRELESS ENVIRONMENT}
개시된 양상들은 무선 통신 장치들에 관한 것이고, 더욱 상세하게는 네트워크 사이트(site)에 저장된 대응하는 데이터세트들과 무선 통신 장치상에 저장된 데이터세트들을 무선으로 동기화하기 위한 시스템들, 방법들 및 장치에 관한 것이다.
본 출원은 출원일은 2007년 6월 19일이며, 발명의 명칭은 "METHODS AND APPARATUS FOR DATASET SYNCHRONIZATION IN A WIRELESS ENVIRONMENT"이고, 출원번호는 제60/945,088호인 미국 특허 가출원에 우선권의 이익을 주장하며, 양수인에게 양도되며, 여기서 전체적으로 참조로서 통합된다.
동기화는 둘 이상의 장치들 사이에서 동기화되는 단일 파일 ? 또는 데이터세트로도 지칭됨 ? 에 의한 프로세스이다. 프로세스는 데이터세트가 장치들 사이에서 일반적으로 동등해질 때까지 장치들 사이에서 앞 그리고 뒤의 변화들을 자동으로 카피(copy)함으로써 수행된다.
파일들 또는 데이터세트들의 동기화는 무선 환경에서 더욱 흔해지고 있다. 예를 들어, 하나의 무선 장치에 저장된 사용자의 콘택트(contact) 리스트는 다른 무선 장치들 또는 네트워킹 된 데이터베이스들과 동기화될 수 있다. 데이터세트들의 동기화는, 데이터 교환을 트리거(trigger) 하는 온-라인 모드로 이동하기 전에 오프-라인 모드에서 사용되는 애플리케이션들에서의 경우에 특별히 유익하다. 예시적인 애플리케이션은 전자 메일(이메일)을 포함하며, 여기서 사용자가 오프-라인 모드 동안 이메일을 입력하고, 장치가 온-라인 모드로 리턴하면 이메일이 네트워크 데이터베이스로 후속적으로 전송된다. 동기화 프로세스는 또한 커뮤니티(community)-타입 환경들에서 구현되고, 여기서 복수의 사용자들이 공유 네트워크 데이터베이스를 통해 상호작용한다. 예를 들어, 무선 환경에서, 사용자들이 실-시간 비디오 게임들에 참여하도록 허용하는, 게이밍 커뮤니티들은 또한 중앙 네트워크 데이터베이스에 저장되고 공유될 게이밍 정보를 제공한다. 이러한 커뮤니티 액티비티들은 또한 오프-라인 모드에서 사용하기 쉬우며, 여기서 사용자는 사용자의 내부에 저장된 데이터베이스를 변경할 수 있고, 변경들은 사용자가 온-라인 모드로 이동할 때 네트워크 데이터베이스와 동기화된다.
일 접근에서, 개인 휴대 단말(PDA) 등과 같은 무선 장치를 개인용 컴퓨터에 시리얼 접속을 가지는 도킹(dock) 장치에 도킹함으로써 동기화는 국부적으로(locally) 수행될 수 있다. 이러한 타입의 동기화는 서로 매우 근접하게 될 무선 장치 및 컴퓨터를 필요로 한다. 그러나 더욱 강력한 무선 장치들의 출현이 무선 네트워크를 통한 데이터세트들의 원격 동기화를 가능하게 한다.
데이터의 원격 동기화가 SyncML(Synchronization Markup Language)를 통해 수행되었고, 이는 무선 네트워크들에 대한 공통 데이터 동기화 프로토콜을 제공한다. SyncML은, 무선 동기화("sync") 세션 동안 일어나는(transpire) 모든 SyncML 통신들에 대한 기초의(underlying) 캐리어 프로토콜로서 XML(eXtensible Markup Language)에 의존한다. 복수의 메시지들이 임의의 하나의 sync 세션 동안 무선 장치 및 네트워크 서버 사이에서 전송된다. 추가적으로, 각각의 메시지의 데이터 구조는 메시지들을 교환하기 위해 높은 대역폭 요구사항을 초래한다. 따라서, SyncML은, 복수의 메시지들의 교환을 필요로 하는 상대적으로 복잡한 동기화 프로세스이며, 더 많은 양의 네트워크 대역폭을 요구하며, 그리고 완료를 위해 상대적으로 긴 시간의 양을 요구한다. 셀룰러 네트워크들의 제한사항들(예를 들어, 신호의 잠재적인 손실, 대역폭 제한들 등)과 연관된, SyncML 프로세스의 복잡도는 동기화 프로세스가 보다 신뢰적이지 않게 한다. 예를 들어, 동기화 프로세스 동안 연결의 실패 또는 연결의 단절은 종종 전체 동기화 프로세스를 수행하기 위한 필요를 초래한다. 변경들이 발생한 것과 대조적으로, 전체 동기화 프로세스 동안, 전체 데이터세트는 무선 장치 또는 네트워크로 전달된다.
따라서, 현재의 무선 솔루션들 보다 덜 복잡하고, 더욱 효율적이며, 그리고 더욱 견고한 무선 발전을 위한 동기화 프로세스를 개발할 요구가 존재한다.
이러한 점에서, 간략화가 본 양상들에 의해 실현될 수 있으며, 이는 네트워크 리소스들을 덜 사용하고 그리고 현재의 무선 sync 프로세스들과 다른 히스토리컬(historical) 데이터에 대해 요구한다. sync 사이클을 완료하는 시간이 줄어들 수 있으므로, 네트워크 리소스를 덜 사용하는 것은 더욱 효율적인 sync 프로세스를 발생할 수 있다. 또한, 설명되는 동기화 프로세스는 무선 네트워크 실패들이 서버와 무선 장치 사이의 데이터세트의 전체 동기화에 대한 필요를 요구하지 않고 발생하도록 허용한다.
특히, 본 양상들은 네트워크 서버 또는 데이터베이스와 같은, 무선 장치상에 그리고 네트워크 장치에 저장된 데이터세트들을 무선으로 동기화하기 위한 방법들, 장치들, 시스템들, 및 컴퓨터 프로그램 물건들을 제공한다. 본 양상들은 간략화되고 효율적인 동기화 프로세스를 제공하며, 그에 의해 동기화가 무선 장치 및 네트워크 장치 사이에서 무선 통신의 싱글 라운드-트립에서 완료될 수 있도록 한다. 싱글 라운드-트립 통신은 네트워크 리소스들의 더 적은 사용, 더 짧은 전체 동기화 사이클 시간들을 제공하며, 그리고 동기화 프로세스를 실행하는 것을 초래하는 호 드롭들 등과 같은 무선 네트워크 실패들의 가능성을 줄인다. 또한, 간략화 및 효율성이 네트워크 데이터세트가 무선 장치 데이터세트들에 독립적이도록 허용하는 동기화 프로세스를 생성함으로써 추가적으로 실현될 수 있으며, 즉 네트워크 서버가 전체 변화 히스토리를 요청할 수 없고 네트워크 서버가 무선 장치 데이터세트 버전을 알도록 요청할 수 없다. 본 양상은 또한 견고한 동기화 프로세스를 제공하여, 그 결과 통신 실패들이 데이터세트들의 전체 동기화를 구현하지 않고 동기화 프로세스의 재-적용(re-application)을 허용한다. 이러한 면에서, 본 발명의 양상들은 무선 게이밍 커뮤니티 등과 같은 무선 커뮤니티-타입 환경에서 또는 이메일, 게이밍 등과 같은 오프라인 모드 사용에 대해 제공하는 애플리케이션들에서 사용되는 데이터세트들의 동기화를 위해 적합하다.
일 양상에서, 무선 장치상의 데이터세트의 동기화를 위한 방법이 정의된다. 방법은 현재의 무선 장치 데이터세트 버전 번호를 포함하는 데이터세트에 대한 동기화 요청 메시지를 생성하는 단계; 네트워크 장치로 상기 동기화 요청 메시지를 무선으로 전달하는 단계; 상기 동기화 요청 메시지의 전달에 응답하여, 네트워크 장치 데이터세트 버전 번호를 포함하는 동기화 확인 메시지를 무선으로 수신하는 단계를 포함한다. 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 상기 무선 장치 및 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립(round-trip)에 기반하여 동기화를 제공하도록 동작가능하다. 몇몇 양상들에서, 만약 상기 확인 메시지에 있는 상기 네트워크 장치 데이터세트 버전 번호가 상기 현재의 무선 장치 버전 번호와 상이하다면 상기 현재의 무선 장치 버전 번호를 상기 네트워크 장치 데이터세트 버전 번호로 변경하는 단계를 포함할 수 있다. 또한, 상기 동기화 확인 메시지는 동기화 상태 표시자 및/또는 네트워크 장치 데이터세트에서 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 변경 리스트를 포함할 수 있고, 따라서 상기 방법은 네트워크 장치 변경 리스트에 따라 무선 장치 데이터세트를 변경하는 단계를 포함할 수 있다.
상기 방법의 몇몇 양상들에서, 상기 무선 장치 데이터세트에서 각각의 데이터 아이템에 대한 변경 표시자의 상태(status)를 검증(verify)하는 단계; 변경을 표시하는 하나 이상의 상기 아이템들에 대한 상기 변경 표시자에 기반하여 하나 이상의 변경된 데이터 아이템들을 포함하는 무선 장치 변경 리스트를 컴파일(compile)하는 단계; 및 상기 동기화 요청 메시지에 있는 상기 무선 장치 변경 리스트를 포함하는 단계를 더 포함할 수 있다.
몇몇 양상들에서, 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 JSON(JavaScript Object Notation) 프로토콜과 같은 라이트웨이트(lightweight) 데이터-상호교환 캐리어 프로토콜을 통해 전달된다.
몇몇 양상들에서, 만약 동기화 상태 표시자가 동기화 실패를 표시하면, 상기 방법은 동기화 실패 표시자에 기반하여 무선 장치 및 네트워크 장치 사이의 전체 동기화를 개시하는 단계를 더 포함할 수 있다. 다른 양상에서, 만약 무선 장치가 미리 결정된 시간 기간 후에 동기화 확인 메시지를 수신하는 것을 실패하면 새로운 동기화 세션이 동기화 요청 메시지를 생성하여 전달함으로써 개시될 수 있다.
더 관련된 양상이 적어도 하나의 프로세서에 의해 제공된다. 프로세서는 현재의 무선 장치 데이터세트 버전 번호를 포함하는 데이터세트에 대한 동기화 요청 메시지를 생성하기 위한 제 1 모듈; 네트워크 장치로 상기 동기화 요청 메시지를 무선으로 전달하기 위한 제 2 모듈; 상기 동기화 요청 메시지의 전달에 응답하여, 네트워크 장치 데이터세트 버전 번호를 포함하는 동기화 확인 메시지를 무선으로 수신하기 위한 제 3 모듈을 포함하도록 구성된다. 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 상기 무선 장치 및 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능하다.
다른 관련된 양상이 컴퓨터-판독가능 매체를 포함하는 컴퓨터 프로그램 물건에 의해 정의된다. 상기 매체는, 컴퓨터로 하여금 현재의 무선 장치 데이터세트 버전 번호를 포함하는 데이터세트에 대한 동기화 요청 메시지를 생성하도록 하기 위한 적어도 하나의 명령; 상기 컴퓨터로 하여금 네트워크 장치로 상기 동기화 요청 메시지를 무선으로 전달하도록 하기 위한 적어도 하나의 명령; 상기 컴퓨터로 하여금 상기 동기화 요청 메시지의 전달에 응답하여, 네트워크 장치 데이터세트 버전 번호를 포함하는 동기화 확인 메시지를 무선으로 수신하도록 하기 위한 적어도 하나의 명령을 포함한다. 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 상기 무선 장치 및 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능하다.
다른 관련된 양상은 장치에 의해 정의된다. 상기 장치는 현재의 무선 장치 데이터세트 버전 번호를 포함하는 데이터세트에 대한 동기화 요청 메시지를 생성하기 위한 수단; 네트워크 장치로 상기 동기화 요청 메시지를 무선으로 전달하기 위한 수단; 상기 동기화 요청 메시지의 전달에 응답하여, 네트워크 장치 데이터세트 버전 번호를 포함하는 동기화 확인 메시지를 무선으로 수신하기 위한 수단을 포함한다. 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 상기 무선 장치 및 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능하다.
추가적인 양상은 무선 통신 장치에 의해 제공된다. 상기 장치는 메모리 및 적어도 하나의 프로세서를 포함하는 컴퓨터 플랫폼, 상기 메모리에 저장되고, 복수의 데이터 아이템들을 포함하는 데이터세트 및 상기 메모리에 저장되고 상기 적어도 하나의 프로세서에 의해 실행가능한 동기화 모듈을 포함한다. 상기 동기화 모듈은 현재의 무선 장치 데이터세트 버전 번호를 포함하는 데이터세트에 대한 동기화 요청 메시지를 생성하고, 네트워크 장치로 상기 동기화 요청 메시지를 전달하며, 상기 동기화 요청 메시지의 전달에 응답하여, 네트워크 장치 데이터세트 버전 번호를 포함하는 동기화 확인 메시지를 수신하도록 동작가능하다. 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 상기 무선 장치 및 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능하다. 상기 동기화 모듈은 만약 상기 확인 메시지에 있는 상기 네트워크 장치 데이터세트 버전 번호가 상기 현재의 무선 장치 버전 번호와 상이하다면 상기 현재의 무선 장치 버전 번호를 상기 네트워크 장치 데이터세트 버전 번호로 변경하도록 추가적으로 동작가능할 수 있다. 상기 동기화 모듈은 동기화 상태 표시자 및/또는 네트워크 장치 데이터세트에서 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 변경 리스트를 포함하는 동기화 확인 메시지를 수신하도록 추가적으로 동작가능할 수 있고, 상기 장치는 무선 장치 데이터세트를 네트워크 장치 변경 리스트에 따라 변경하도록 동작가능할 수 있다.
다른 양상들에서, 동기화 모듈은 상기 무선 장치 데이터세트에서 각각의 데이터 아이템에 대한 변경 표시자의 상태를 검증하고, 변경을 표시하는 하나 이상의 상기 아이템들에 대한 상기 변경 표시자에 기반하여 하나 이상의 변경된 데이터 아이템들을 포함하는 무선 장치 변경 리스트를 컴파일하며, 그리고 상기 동기화 요청 메시지에 있는 상기 무선 장치 변경 리스트를 포함하도록 추가적으로 동작가능하다.
무선 장치의 몇몇 양상들에서, 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 JSON(JavaScript Object Notation) 프로토콜과 같은 라이트웨이트(lightweight) 데이터-상호교환 캐리어 프로토콜을 통해 전달된다.
무선 통신 장치의 몇몇 양상들에서, 상기 동기화 모듈은 동기화 실패 표시자를 포함하는 동기화 확인 메시지를 수신하도록 추가적으로 동작가능하며, 그리고 무선 장치 및 네트워크 장치 사이의 전체 동기화를 개시하도록 추가적으로 동작가능하다.
다른 양상은, 네트워크 장치상의 데이터세트의 동기화에 대한 방법에 의해 제공된다. 상기 방법은 무선 장치 데이터세트 버전 번호를 포함하는 동기화 요청 메시지를 네트워크 장치에서 무선으로 수신하는 단계; 현재의 네트워크 장치 데이터세트 버전 번호와 상기 무선 장치 데이터세트 버전 번호를 비교하는 단계; 만약 상기 비교가 상기 무선 장치 데이터세트 버전 번호가 상기 네트워크 장치 데이터세트 버전 번호와 상이하다고 표시하면, 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 데이터세트 변경 리스트를 컴파일하는 단계; 상기 현재의 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하는 단계; 및 상기 동기화 확인 메시지를 무선으로 전달하는 단계를 포함한다. 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 상기 무선 장치 및 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능하다.
상기 방법의 몇몇 양상들에서, 상기 동기화 요청 메시지를 수신하는 단계는, 하나 이상의 변경된 데이터 아이템들을 포함하는 무선 장치 데이터세트 변경 리스트를 수신하는 단계 및 상기 무선 장치 데이터세트 변경 리스트에 포함되는 상기 변경된 데이터 아이템들을 상기 네트워크 장치 데이터세트에서 변경하는 단계를 더 포함할 수 있다. 본 발명의 몇몇 양상들에서, 상기 변경된 데이터 아이템들을 상기 네트워크 장치 데이터세트에서 변경하는 단계는, 상기 네트워크 장치 데이터세트로부터 상기 데이터 아이템을 삭제하지 않고 상기 무선 장치 데이터세트 상에서 삭제된 데이터 아이템들에 대한 삭제 표시자를 제공하는 단계를 포함할 수 있다.
본 발명의 몇몇 양상들은 상기 데이터 아이템의 상기 변경에 기반하여 데이터 아이템 버전 번호를 업데이트하는 단계, 및 가장 높게 시퀀싱된 변경된 데이터 아이템의 상기 버전 번호를 반영하기 위해 상기 네트워크 장치 데이터세트 버전 번호를 업데이트하는 단계를 더 포함할 수 있다. 이러한 양상들에서, 상기 동기화 확인 메시지를 생성하는 단계는, 상기 업데이트된 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하는 단계를 포함할 수 있다.
본 발명의 몇몇 양상들에서, 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 JSON(JavaScript Object Notation) 프로토콜을 통해 전달된다.
추가적인 양상은 적어도 하나의 프로세서에 의해 제공된다. 상기 프로세서는 무선 장치 데이터세트 버전 번호를 포함하는 동기화 요청 메시지를 네트워크 장치에서 무선으로 수신하기 위한 제 1 모듈; 현재의 네트워크 장치 데이터세트 버전 번호와 상기 무선 장치 데이터세트 버전 번호를 비교하기 위한 제 2 모듈; 만약 상기 비교가 상기 무선 장치 데이터세트 버전 번호가 상기 네트워크 장치 데이터세트 버전 번호와 상이하다고 표시하면, 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 데이터세트 변경 리스트를 컴파일하기 위한 제 3 모듈; 상기 현재의 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하기 위한 제 4 모듈; 및 상기 동기화 확인 메시지를 무선으로 전달하기 위한 제 5 모듈을 포함한다. 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 상기 무선 장치 및 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능하다.
다른 연관된 양상은 컴퓨터-판독가능 매체를 포함하는 컴퓨터 프로그램 물건에 의해 정의된다. 상기 매체는, 컴퓨터로 하여금 무선 장치 데이터세트 버전 번호를 포함하는 동기화 요청 메시지를 네트워크 장치에서 무선으로 수신하도록 하기 위한 적어도 하나의 명령, 상기 컴퓨터로 하여금 현재의 네트워크 장치 데이터세트 버전 번호와 상기 무선 장치 데이터세트 버전 번호를 비교하도록 하기 위한 적어도 하나의 명령, 상기 컴퓨터로 하여금 만약 상기 비교가 상기 무선 장치 데이터세트 버전 번호가 상기 네트워크 장치 데이터세트 버전 번호와 상이하다고 표시하면, 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 데이터세트 변경 리스트를 컴파일하도록 하기 위한 적어도 하나의 명령을 포함한다. 상기 매체는 또한 상기 컴퓨터로 하여금 상기 현재의 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하도록 하기 위한 적어도 하나의 명령 및 상기 컴퓨터로 하여금 상기 동기화 확인 메시지를 무선으로 전달하도록 하기 위한 적어도 하나의 명령을 포함한다. 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 상기 무선 장치 및 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능하다.
다른 양상은 장치에 의해 제공된다. 상기 장치는, 무선 장치 데이터세트 버전 번호를 포함하는 동기화 요청 메시지를 네트워크 장치에서 무선으로 수신하기 위한 수단, 현재의 네트워크 장치 데이터세트 버전 번호와 상기 무선 장치 데이터세트 버전 번호를 비교하기 위한 수단, 및 만약 상기 비교가 상기 무선 장치 데이터세트 버전 번호가 상기 네트워크 장치 데이터세트 버전 번호와 상이하다고 표시하면, 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 데이터세트 변경 리스트를 컴파일하기 위한 수단을 포함한다. 상기 장치는 추가적으로 상기 현재의 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하기 위한 수단 및 상기 동기화 확인 메시지를 무선으로 전달하기 위한 수단을 포함한다. 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 상기 무선 장치 및 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능하다.
일 양상은 또한 네트워크 장치에 의해 제공된다. 상기 네트워크 장치는 메모리 및 적어도 하나의 프로세서를 포함하는 컴퓨터 플랫폼, 상기 메모리에 저장되고 복수의 데이터 아이템들을 포함하는 데이터세트, 상기 메모리에 저장되고 상기 적어도 하나의 프로세서에 의해 실행가능한 동기화 모듈을 포함한다. 상기 동기화 모듈은, 무선 장치 데이터세트 버전 번호를 포함하는 동기화 요청 메시지를 네트워크 장치에서 무선으로 수신하고, 현재의 네트워크 장치 데이터세트 버전 번호와 상기 무선 장치 데이터세트 버전 번호를 비교하고, 만약 상기 비교가 상기 무선 장치 데이터세트 버전 번호가 상기 네트워크 장치 데이터세트 버전 번호와 상이하다고 표시하면, 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 데이터세트 변경 리스트를 컴파일하고, 상기 현재의 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하고, 그리고 상기 동기화 확인 메시지를 무선으로 전달하도록 동작가능하다. 상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 상기 무선 장치 및 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능하다.
따라서, 본 발명의 하나 이상의 양상들이 네트워크 서버 또는 데이터베이스와 같이, 무선 장치상에 그리고 네트워크 장치에서 저장되는 무선으로 데이터세트를 동기화하기 위해 제공된다. 설명된 것처럼, 본 발명의 양상들은 간략화되고 효율적인 동기화 프로세스를 제공하며, 이에 의해 동기화가 무선 장치 및 네트워크 장치 사이의 무선 통신의 싱글 라운드-트립(single round-trip)에서 완료될 수 있다. 싱글 라운드-트립 통신은 네트워크 리소스들의 더 적은 사용, 더 짧은 전체 동기화 사이클 시간을 제공하며, 동기화 프로세스가 실패하도록 초래하는 호 단절들 등과 같은 무선 네트워크 실패의 가능성을 낮춘다. 추가적으로, 간략화 및 효율성이 네트워크 데이터세트가 무선 장치 데이터세트들에 독립적이도록 허용하는 동기화 프로세스를 생성함으로써 추가적으로 실현될 수 있으며, 즉 네트워크 서버가 전체 변화 히스토리를 요청할 수 없고 네트워크 서버가 무선 장치 데이터세트 버전을 알도록 요청할 수 없다. 본 발명의 양상은 또한, 견고한 동기화 프로세스를 제공하여, 그 결과 통신 실패들은 데이터세트들의 전체 동기화를 구현하지 않고 동기화 프로세스의 재-적용을 고려한다.
도 1은 일 양상에 따라, 하나 이상의 무선 장치들 상에 저장되는 데이터 세트 및 네트워크에서 저장되는 대응하는 데이터세트의 무선 동기화에 대해 시스템의 블록 다이어그램이다;
도 2는 일 양상에 따라, 동기화를 위한 무선 장치 데이터세트의 블록 다이어그램이다;
도 3은 일 양상에 따라, 동기화를 위한 네트워크 서비스 데이터세트의 블록 다이어그램이다;
도 4는 일 양상에 따라, 데이터세트 동기화에 대해 구성되는 무선 통신 장치의 블록 다이어그램이다;
도 5는 일 양상에 따라, 데이터세트 동기화에 대해 구성되는 네트워크 장치의 블록 다이어그램이다;
도 6은 일 양상에 따라, 무선 통신 네트워크의 블록 다이어그램이다;
도 7은 일 양상에 따라, 데이터세트 동기화의 일 예이다;
도 8은 다른 양상에 따라, 데이터세트 동기화의 다른 예이다;
도 9는 일 양상에 따라, 무선 통신 장치상의 데이터세트 동기화에 대한 방법의 플로우 다이어그램이다; 그리고
도 10은 일 양상에 따라, 네트워크 장치상의 데이터 세트 동기화에 대한 방법의 플로우 다이어그램이다.
본 디바이스들, 장치, 방법들, 컴퓨터-판독가능 매체, 및 프로세서들은 이제 본 발명의 양상들이 도시된 첨부되는 도면들을 참조하여 여기서 충분하게 설명될 것이다. 디바이스들, 장치, 방법들, 컴퓨터-판독가능 매체 및 프로세서들은 그러나, 많은 상이한 형태들로 구현될 수 있고, 여기서 설명되는 양상들로 제한되도록 해석되지 않으며; 그것보다는 이러한 양상들은 이 명세서가 완전하고 완벽하고, 당해 기술분야에 속한 통상의 지식을 가진 자에게 본 발명의 범위를 충분히 전달하도록 제공된다. 동일한 참조 번호들은 전체에 걸쳐 동일한 엘리먼트들을 지칭한다.
단어 "예시적인"은 예, 일례, 또는 설명으로서 제공되는 것을 의미하기 위해 여기서 사용된다. "예시적인"으로서 여기서 설명되는 임의의 양상은 다른 양상들을 통해 선호되거나 이익이 되는 것으로 반드시 해석되지 않는다.
여기서 설명되는 하나 이상의 양상들은 무선 통신 장치와 관련한다. 무선 통신 장치는 또한 가입자국, 가입자 유닛, 이동국, 모바일, 원격국, 액세스 포인트, 원격 단말, 액세스 단말, 사용자 단말, 사용자 에이전트, 사용자 장치, 또는 사용자 장비로 지칭될 수 있다. 가입자국은 셀룰러 전화, 코드리스 전화, 세션 개시 프로토콜(SIP) 전화, 무선 로컬 루프(WLL) 스테이션, 개인 휴대 단말기(PDA), 연결 능력을 구비한 핸드헬드 장치, 또는 무선 모뎀에 연결되는 다른 처리 장치일 수 있다.
본 양상들 중 하나 이상은 네트워크 서버 또는 데이터베이스와 같은, 무선 장치상에 그리고 네트워크 장치에 저장되는 데이터세트들을 무선으로 동기화하기 위한 방법들, 시스템들, 장치, 및 컴퓨터 프로그램 물건들에 대해 제공한다. 본 양상들 중 하나 이상은 간략화되고 효율적인 동기화 프로세스에 대해 제공하며, 이에 의해 동기화는 무선 장치 및 네트워크 장치 사이의 무선 통신의 싱글 라운드-트립에서 완료될 수 있다. 추가적으로, 간략화 및 효율성이 네트워크 데이터세트가 무선 장치 데이터세트들에 독립적이도록 허용하는 동기화 프로세스를 생성함으로써 추가적으로 실현될 수 있으며, 즉 네트워크 서버가 전체 변화 히스토리를 요청할 수 없고 네트워크 서버가 무선 장치 데이터세트 버전을 알도록 요청할 수 없다. 본 양상은 또한 견고한 동기화 프로세스를 제공하여, 그 결과 통신 실패들이 데이터세트들의 전체 동기화를 구현하지 않고 동기화 프로세스의 재-적용을 허용한다. 이러한 면에서, 본 양상들은 무선 게이밍 커뮤니티 등과 같은 무선 커뮤니티-타입 환경에서 또는 이메일, 게이밍 등과 같은 오프라인 모드 사용에 대해 제공하는 애플리케이션들에서 사용되는 데이터세트들의 동기화를 위해 적합하다.
도 1을 참조하면, 본 양상에 따라 무선 데이터세트 동기화를 위한 시스템의 블록 다이어그램 도시가 제공된다. 시스템(10)은 하나 이상의 무선 장치들(2), 및 대응하는 데이터베이스를 가지는 네트워크 서버와 같은 네트워크 장치(14)를 포함하고, 이들은 무선 네트워크(16)를 통해 무선 통신을 한다. 무선 장치들(12) 중 하나 이상 그리고 네트워크 장치(14)는 동기화를 요청하는 데이터 세트(18, 48)를 저장할 것이다. 몇몇 양상에서, 예를 들어, 무선 커뮤니티-타입 환경에서, 네트워크 장치(14)는 네트워크 장치 데이터세트(48)를 하나 이상의 무선 장치들(12)로 개시적으로 배포(distribute)할 수 있고, 하나 이상의 무선 장치들은 무선 장치 데이터세트(18)로서 수신된 데이터세트를 저장한다. 시간에 걸쳐, 네트워크 서버(14) 및 하나 이상의 무선 장치들(12) 중 하나 또는 둘 모두는 그들의 개별적인 데이터세트(48, 18)를 업데이트할 수 있다. 이렇게, 시스템(10)은 하나 이상의 무선 장치들(12) 및 네트워크 장치(14)가 무선 통신을 통해 그들의 개별적인 데이터세트들(18, 48)을 동기화하도록 허용하는 장치 및 방법들을 제공한다.
무선 장치(12)는 프로세서(22) 및 메모리(24)를 가지는 컴퓨터 플랫폼(20)을 포함한다. 무선 장치(12)의 메모리(24)는 데이터세트들(18, 48)을 동기화하도록 동작가능한 동기화 모듈(26)을 포함한다. 동기화 모듈(26)은, 동기화 프로세스를 무선 장치(12) 및 네트워크 장치(14) 사이의 무선 통신의 싱글 라운드-트립으로 제한하기 위해 캐리어 프로토콜로서 라이트웨이트(lightweight) 데이터-상호교환 프로토콜에 의존할 수 있다. 라이트웨이트 데이터-상호교환 프로토콜은 두 개의 구조들, 이름/페어 값들의 수집, 및 값들의 정렬된 리스트 상에서 특징적으로 건설될 수 있다. 이름/값 페어들은 객체, 레코드, 구조, 사전, 해시 테이블, 키(keyed) 리스트, 연관 어레이 등을 포함할 수 있다. 값들의 정렬된 리스트는 어레이, 벡터, 리스트, 시퀀스, 또는 리스트를 포함할 수 있다. 라이트웨이트 데이터-상호교환 프로토콜의 일 예는 JavaScript™ Object Notation(JSON)이다. JSON에서 객체는 이름/값 페어들의 정렬되지 않은 세트이며, 어레이는 값들의 정렬된 수집이며 그리고 값은 스트링, 수, 참/거짓/널 표시자, 오브젝트 또는 어레이일 수 있다. 다른 데이터-상호교환 프로토콜들과 달리, JSON은 어레이들을 지원하고, 그리고 더 단순한 신택스(syntax) 및 덜 마크업(markup)을 요청한다. 빌트-인(built-in) 수(numeric)로 결합된, JSON의 일반적인 그리고 단순한 신택스 구조는 및 어레이 지원은, 단순한 파싱(parsing), 더 근접한 데이터 구조들의 표시 및 더 작은 사이즈의 메시지에 대하여 다른 데이터-상호교환들 프로토콜들을 통해 더 양호한 이점들을 제공한다.
동기화 모듈(26)은, 네트워크 장치(14)로 전송되는 동기화 요청 메시지(30)를 생성하도록 동작가능하며, 네트워크 장치(14)와의 데이터세트 동기화에 대해 요청하도록 동작한다. 동기화 요청 메시지(30)는 싱글 라운드-트립 동기화 프로세스의 첫 번째 레그(leg)를 형성한다. 몇몇 양상들에서, 동기화 모듈(26)은 이전의 동기화 프로세스 이래로, 데이터세트(18)에 이루어진 변경들을 표시하는 무선 장치 변경 리스트(28)를 추가적으로 컴파일할 수 있다. 변경들은 데이터세트(18)로의 추가들, 삽입들, 및/또는 삭제들을 포함할 수 있다. 동기화 모듈(26)은 또한 예를 들어, 동기화 요청 메시지(30)에서, 네트워크 장치(14)로 무선 장치 변경 리스트(28)를 전달(communicate)하도록 동작가능하다. 동기화 모듈(26)은 또한 싱글 라운드-트립 동기화 프로세서의 두 번째 레그를 형성하는, 동기화 확인 메시지(32)를 수신하도록 동작가능하다. 동기화 확인 메시지(32)는 동기화 프로세스의 완료를 검증(verify)하도록 동작한다. 또한, 동기화 확인 메시지(32)는 이전의 동기화 프로세스 이래로, 대응하는 네트워크 데이터세트(48)에 이루어진 변경들을 표시하는 네트워크 장치 변경 리스트(34)를 포함할 수 있다. 따라서, 시스템(10)은 동기화 요청 메시지(30) 및 동기화 확인 메시지(32)를 통한 싱글 라운드-트립에서 무선 장치 데이터세트(18) 및 네트워크 장치 데이터세트(48) 사이의 동기화에 대해 유리하게 제공한다.
무선 장치 데이터세트(18)는 네트워크 데이터베이스와의 마지막 동기화로부터 네트워크 데이터베이스 버전에 대응하는 데이터세트 버전을 표시하는 버전 번호(19)를 특징적으로 가질 것이다. 또한, 각각의 무선 장치 데이터세트(18)는 하나 또는 복수의 데이터 아이템들(36)을 포함할 것이다. 데이터 아이템들(36)은 하나 이상의 데이터 필드들(38)을 포함할 수 있다. 설명된 데이터 아이템들(36)은 상이한 수의 데이터 필드들을 포함할 수 있고, 임의의 데이터 아이템(36)은 임의의 수의 데이터 필드들(38)을 포함할 수 있음을 주목해야 한다. 몇몇 양상들에 따라, 데이터세트에 대해 이루어진 변경들이 데이터 필드들(38)과 대조적으로 데이터 아이템들(36)에 대하여 반영되고, 예를 들어, 만약 개별적인 데이터 아이템의 임의의 필드가 변경되면, 개별적인 데이터 아이템은 변경되도록 고려된다. 따라서, 멱등적(idempotent) 특성을 가지는 동기화 프로세스를 제공하기 위해, 무선 장치 데이터세트에의 변경들을 의미하는 것은, 네트워크 데이터세트 및/또는 다른 무선 장치 데이터세트에의 동일한 변경을 초래하며, 무선 장치 변경 리스트(28)는 데이터 아이템들에 관련한 변경들을 포함한다. 따라서 무선 장치 변경 리스트(28)는 추가되거나 삭제되는 임의의 데이터 아이템의 전체를 포함하고, 또는 대응하는 데이터 필드들이 상기 리스트에 추가, 삭제, 또는 변경되었다.
네트워크 장치(14)는 프로세서(42) 및 메모리(44)를 가지는 컴퓨터 플랫폼(40)을 포함한다. 네트워크 장치(14)의 메모리(44)는 하나 이상의 무선 장치 데이터세트들(18)과 네트워크 장치 데이터세트(48)를 동기화하도록 동작가능한 동기화 모듈(46)을 포함한다. 무선 장치들(12) 상의 동기화 모듈(26)과 유사하게, 동기화 모듈(46)은 대역폭을 줄이고, 동기화 프로세스가 무선 장치(12) 및 네트워크 장치(14) 사이의 무선 통신의 싱글 라운드-트립에서 발생하도록 허용하기 위해, 캐리어 프로토콜로서 동일한 라이트웨이트 데이터-상호교환 프로토콜을 활용할 수 있다.
동기화 모듈(46)은 동기화 요청 메시지(30)를 수신하고, 요청 메시지(30)에 있는 임의의 무선 장치 변경 리스트(28)를 구현하도록 동작가능하다. 동기화 모듈(46)은 또한, 개별적인 무선 장치(12)에 의해 수행된 이전의 동기화 프로세스 이래로, 네트워크 데이터세트(48)에 이루어진 변경들을 표시하는 네트워크 변경 리스트(34)를 컴파일(compile)하도록 동작가능하다. 바꾸어 말하면, 네트워크 장치 변경 리스트(34)는 수신된 무선 장치 데이터세트 버전(19) 및 네트워크 데이터세트 버전(50) 사이의 차이에 기반하여 네트워크 데이터세트(48)에서 "델타(delta)" 또는 네트 변경들을 포함한다. 동기화 모듈(46)은 동기화 확인 메시지(32)에서 요청하는 무선 장치(12)로 네트워크 장치 변경 리스트(34)를 전달하기 위해 추가적으로 동작가능하다.
본 양상들에 따라, 네트워크 데이터세트(48)는 변경들이 어떻게 표시되는지에 대하여 대응하는 무선 장치 데이터세트(18)와 상이할 것이다. 네트워크 데이터세트(48)는 네트워크 데이터세트 버전을 표시하는 버전 번호(50)를 특징적으로 가질 것이다. 각각의 데이터세트(48)는 하나 또는 복수의 데이터 아이템들(52)을 포함할 것이다. 무선 장치 데이터세트들(18)을 형성하는 데이터 아이템들(36)과 유사하게, 각각의 데이터 아이템(520은 하나 이상의 데이터 필드들(54)을 포함할 수 있다. 본 양상들에 따라, 네트워크 데이터세트(48)에 대하여 이루어진 변경들은 데이터 아이템들(32)에 대하여 반영되며, 이는 하나 이상의 데이터 필드들(54)에의 변경을 표시한다.
네트워크 데이터세트(48)에서의 각각의 데이터 아이템(50)은 현재의 데이터 아이템 버전을 표시하는 대응하는 버전 번호(56)를 가질 것이다. 일 양상에서, 데이터 아이템 버전 번호(56)는 모든 데이터 아이템들 전체에 걸쳐 고유하며, 개별적인 데이터 아이템에 대하여 이루어진 변경들에 기반하여 업데이트된다. 예를 들어, 몇몇 양상들에서, 네트워크 데이터세트 버전 번호(50)는 가장 높게 넘버링된 데이터 아이템 버전 번호(56)를 반영한다. 이렇게, 일 양상에서, 네트워크 장치(14)가 현재의 무선 장치 데이터세트 버전 번호(19)를 표시하는, 동기화 요청 메시지(30)를 수신할 때, 그리고 임의의 무선 장치 변경 리스트(28)를 실행한 후에, 동기화 모듈(46)은 네트워크 장치 데이터세트 버전 번호(50)를 무선 장치 버전 번호(19)와 비교하며, 무선 장치 버전 번호(19)보다 큰 버전 번호(56)를 가지는 데이터 아이템들(52)을 포함하는 네트워크 장치 변경 리스트(34)를 컴파일한다(즉, 현재의 무선 장치 데이터세트 버전 번호(19) 및 현재의 네트워크 장치 데이터세트 버전 번호(50) 사이의 델타). 일 양상에서, 무선 장치 변경 리스트(28)를 실행하여 그에 의해 추가적으로 메시지의 사이즈를 감소시킨 후에 오직 네트(net) 변경들만을 가진 개별적인 무선 장치(12)를 제공하기 위해, 무선 장치 변경 리스트(28)에 기반하여 델타 내의 버전(56)을 가진 임의의 데이터 아이템(52)은 네트워크 장치 변경 리스트(54)에 포함되지 않을 것이다. 이러한 경우에, 개별적인 무선 장치(12)는 이미 무선 장치의 무선 장치 데이터세트(18)에 개별적인 데이터 아이템의 가장 최근의 값을 가진다. 또한, 데이터 아이템 버전 번호들(56)의 설명 및 그들이 어떻게 네트워크 장치 변경 리스트(34)를 컴파일하는데 사용되는지가 아래에서 논의될 것이다.
도 2는 본 양상에 따른, 무선 장치 데이터세트(18)의 블록 다이어그램 도시이다. 데이터세트(18)는 데이터세트 id/이름 및 현재의 데이터세트 버전 번호를 표시하는 데이터세트 버전 번호(19)를 표시하는 데이터세트 식별자(70)를 포함한다. 데이터세트 버전 번호(19)는 동기화 프로세스가 성공적으로 완료하면 업데이트될 수 있다. 데이터세트(18)는 또한 하나 또는 복수의 데이터 아이템들(36)을 포함하며, 각각은 하나 이상의 데이터 필드들(38)을 가진다. 앞서 언급한 것처럼, 데이터세트에 대하여 이루어진 변경들은 데이터 필드들(38)과 대조적으로 데이터 아이템들(36)에 대하여 반영될 수 있다. 따라서, 동기화 프로세스의 멱등적 특성을 확보하기 위해, 무선 장치 데이터세트에 대한 변경들이 네트워크 데이터세트 및/또는 다른 무선 장치 데이터세트들에의 동일한 변경을 초래하는 것을 의미하는, 무선 장치 변경 리스트는 데이터 아이템들의 형식으로 변경들을 포함한다. 데이터세트(18)는 또한, 이전의 동기화 프로세스 이래로, 데이터 아이템에서 발생한 변경인지 여부를 표시하는 각각의 데이터 아이템에 대한 변경 표시자(72)를 포함한다. 일 양상에서, 변경 표시자 필드(72)는 데이터 아이템에 대한 변경을 표시하기 위해 더티(dirty) 비트를 포함할 수 있다. 더티 비트는 대체(alternation) 또는 변경에 기반하여 마크되거나 플래그(flag) 될 데이터 아이템에 대해 제공한다.
예를 들어, 일 양상에서, 만약 연관된 데이터 아이템이 이전의 동기화 프로세스 이래로 임의의 변경들을 경험하지 않았다면, 변경 표시자(72)는 "0"의 값을 가질 수 있다. 또한, 만약 연관된 데이터 아이템이 업데이트 되었거나 (예를 들어, 데이터 아이템에 삽입, 삭제 또는 변경) 또는 개별적인 데이터 아이템이 새롭게 추가된 데이터 아이템이면, 변경 표시자(72)는 "1"의 값을 가질 수 있다. 추가적으로, 만약 개별적인 데이터 아이템이 삭제되었으면, 변경 표시자(72)는 "2"의 값을 가질 수 있다. 변경 표시자는 무선 장치 변경 리스트(28) (도 1에서 도시된 것처럼)를 컴파일링하는데 사용된다. 만약 변경 표시자(72)가 변경을 표시하면, 예를 들어, 만약 표시자가 "1" 또는 "2"로 설정되면, 대응하는 데이터 아이템은 무선 장치 변경 리스트(28)에서 포함될 것이다. 동기화 프로세스가 성공적으로 완료되면, 변경 표시자들의 모두는 변경이 일어나지 않았다고 표시하기 위해 리셋되며, 예를 들어 "0"으로 리셋된다.
일 양상에 따라, 변경 표시자(72)를 통해, 업데이트되었거나 추가된 데이터 아이템들 (예를 들어, "1"로 설정된 변경 표시자를 가지는 데이터 아이템들) 대 삭제되버린 데이터 아이템들 (예를 들어, "2"로 설정된 변경 표시자를 가지는 데이터 아이템) 사이에서 구분할 필요가 있을 수 있다. 이는 네트워크 데이터세트가 데이터 아이템들의 변경들 또는 추가들과 상이하게 데이터 아이템들의 삭제를 처리(treat)하기 때문이며, 결국 네트워크는 만약 데이터 아이템이 삭제되었다면, 변경 리스트(28)를 통해 보고될 필요가 있다.
도 3은 본 양상에 따라, 네트워크 장치 데이터세트(48)의 블록 다이어그램 도시이다. 네트워크 장치 데이터세트(48)는 데이터세트 id/이름 및 현재의 데이터세트 버전 번호를 표시하는 데이터세트 버전 번호(50)를 표시하는 네트워크 장치 데이터세트 식별자(80)를 포함한다. 네트워크 장치 데이터세트(48)는 또한 복수의 데이터 아이템들(52)을 포함하며, 각각은 하나 이상의 데이터 필드들(54)을 포함한다. 각각의 데이터 아이템은 대응하는 데이터 아이템 버전 번호(56)를 가진다.
데이터 아이템(52)에 할당된 가장 높은 버전 번호(56)를 반영하는, 데이터세트 버전 번호(50)는 변경된 데이터 아이템들의 버전 번호(56)를 리바이스(revise) 하는, 무선 장치 변경 리스트(28) (도 1에서 도시)를 구현하면 업데이트될 수 있다. 예를 들어, 만약 무선 장치 변경 리스트(28)가 세 개의 데이터 아이템들에 대한 변경들을 포함하고, 현재의 네트워크 장치 데이터세트 버전 번호(50)가 "16"이면, 변경들의 구현은 각각 "17", "18" 및 "19"의 데이터 아이템 버전 번호들(56)이 할당된 세 개의 데이터 아이템들(52)을 초래하며, 네트워크 데이터 세트 버전 번호는 "19" (즉, 네트워크 장치 데이터세트(48) 내의 데이터 아이템(52)에 할당된 가장 높은 버전 번호(56)) 로 업데이트될 것이다.
네트워크 장치 데이터세트(48)는 또한 삭제 표시자(82)를 포함할 수 있고, 일 예에서, 톰스톤(tombstone)으로서 지칭된다. 톰스톤 표시자(82)는 데이터 세트로부터 삭제된 연관된 데이터 아이템(52)을 표시하도록 설정될 것이다. 그러나 적어도 미리 결정된 시간 기간 동안에, 만약 애플리케이션이 그렇게 지시하면 네트워크 장치에서 데이터세트의 이전의 버전을 재생성(recreate)하는 수단을 제공하기 위하여, 삭제된 데이터 아이템(52)은 데이터세트(48)에서 일반적으로 유지될 것이다. 추가적으로, 데이터 아이템(52)이 삭제되었다고 표시하는 톰스톤(82)을 제공함으로써, 톰스토닝된 데이터 아이템(52)을 업데이트하거나 그렇지 않으면 변경하기 위한 연속하는 시도들은 무시된다.
도 4를 참조하면, 일 양상에 따라, 무선 장치(12)의 상세한 블록 다이어그램 도시가 묘사된다. 무선 장치(12)는 셀룰러 전화, 개인 휴대 단말(PDA), 양-방향 텍스트 페이저, 휴대용 컴퓨터, 및 무선 통신 포털을 가지는 개별적인 컴퓨터 플랫폼과 같은, 임의의 타입의 컴퓨터화된, 통신 장치를 포함할 수 있고, 이는 또한 네트워크 또는 인터넷에 유선 연결을 가질 수 있다. 무선 통신 장치는 원격-슬레이브(slave)일 수 있고, 또는 엔드-유저를 가지지 않는 다른 장치는 단순히 원격 센서들, 진단 도구들, 데이터 릴레이(relay)들 등과 같은 무선 네트워크를 거쳐 데이터를 통신한다. 데이터세트 동기화를 위한 본 장치 및 방법들은 무선 모델들, PCMCIA 카드들, 액세스 단말들, 데스크탑 컴퓨터들 또는 이들의 임의의 조합 또는 서브-조합을 포함하나 이에 제한되지 않는 무선 통신 포털을 포함하는, 무선 통신 장치 또는 무선 컴퓨터 모듈의 임의의 형태상에서 적절히 수행될 수 있다.
무선 장치(12)는 무선 네트워크를 거쳐 데이터를 전송할 수 있는 컴퓨터 플랫폼(20)을 포함하고, 그리고 루틴들 및 애플리케이션들을 수신하고 실행할 수 있다. 컴퓨터 플랫폼(20)은 판독-전용 그리고/또는 랜덤-액세스 메모리(RAM 및 ROM), EPROM, EEPROM, 플래시 카드들, 또는 컴퓨터 플랫폼들에 공통된 임의의 메모리와 같은 휘발성 및 비휘발성 메모리를 포함할 수 있는, 메모리(24)를 포함한다. 또한, 메모리(24)는 하나 이상의 플래시 메모리 셀들을 포함할 수 있고, 또는 자기 매체, 광학 매체, 테이프, 또는 소프트 또는 하드디스크와 같은 임의의 제 2 또는 제 3의 저장 장치일 수 있다.
추가적으로, 컴퓨터 플랫폼(20)은 또한 애플리케이션-특정 집적 회로("ASIC"), 또는 다른 칩셋, 프로세서, 로직 회로, 또는 다른 데이터 프로세싱 장치일 수 있는, 프로세서(22)를 포함한다. 프로세서(22) 또는 ASIC과 같은 다른 프로세서는 무선 장치(12)의 메모리(24)에 저장된 동기화 모듈(26)과 같이, 임의의 내장 프로그램들과 인터페이스 하는 애플리케이션 프로그래밍 인터페이스("API")를 실행할 수 있다. API(100)는 일반적으로 개별적인 무선 장치상에서 실행하는 런타임 환경이다. 하나의 이러한 런타임 환경은 캘리포니아, 샌디에이고의 QUALCOMM Incorporated에 의해 개발된 Binary Runtime Environment for Wireless (BREW)이다. 다른 런타임 환경들은 예를 들어, 무선 컴퓨팅 장치들 상에서 애플리케이션들의 실행을 제어하도록 동작하도록 이용될 수 있다.
프로세서(22)는 무선 네트워크상에서 통신 장치(12)의 기능성 및 통신 장치의 동작성을 인에이블하는, 하드웨어, 펌웨어, 소프트웨어, 및 이들의 조합으로 구현되는 다양한 프로세싱 서브시스템들(102)을 포함한다. 예를 들어, 프로세싱 서브시스템들(100)은 다른 네트워킹 된 장치들과 통신들을 개시하고 유지하며, 데이터를 교환하는 것을 허용한다. 통신 장치가 셀룰러 전화로서 정의되는 양상들에서, 통신 프로세서(22)는 사운드, 비-휘발성 메모리, 파일 시스템, 송신, 수신, 탐색기, 계층 1, 계층 2, 계층 3, 주 제어, 원격 절차, 핸드세트, 전력 관리, 디지털 신호 프로세서, 메시징, 콜 관리자, 블루투스 시스템, 블루투스 LPOS, 위치 엔진, 사용자 인터페이스, 슬립, 데이터 서비스들, 보안, 인증, USIM/SIM, 음성 서비스들, 그래픽들, USB, MPEG과 같은 멀티미디어, GPRS 등(이들 모두는 명확함을 위해 도 2에서 개별적으로 묘사되지 않음)과 같은: 프로세싱 서브시스템들(100) 중 하나 또는 조합을 추가적으로 포함할 수 있다. 개시된 양상에 대해, 프로세서(22)의 프로세싱 서브시스템(100)은 동기화 모듈(26)과 상호작용하는 임의의 서브시스템 컴포넌트들을 포함할 수 있다.
컴퓨터 플랫폼(20)은 통신 장치(12) 및 무선 네트워크(16) 사이뿐만 아니라, 무선 통신 장치(12)의 다양한 컴포넌트들 사이에서 통신들을 인에이블링하는, 하드웨어, 펌웨어, 소프트웨어, 및 이들의 조합으로 구현되는 통신 모듈(108)을 더 포함한다. 설명되는 양상들에서, 통신 모듈(108)은 무선 통신 장치(12) 및 네트워크 장치(14) 사이의 모든 동기화 교신(correspondence)의 통신을 인에이블한다. 통신 모듈(108)은 무선 네트워크 통신 연결을 설정하기 위해 필수의 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합을 포함할 수 있다.
추가적으로, 무선 통신 장치(12)는 통신 장치로의 입력들을 생성하기 위한 입력 메커니즘(118), 및 통신 장치의 사용자에 의한 소비를 위한 정보를 생성하기 위한 출력 메커니즘(120)을 가진다. 예를 들어, 입력 메커니즘(102)은 키 또는 키보드, 마우스, 터치-스크린 디스플레이, 마이크로폰 등과 같은 메커니즘을 포함할 수 있다. 특정 양상에서, 입력 메커니즘들(118)은 동기화 프로세스를 개시하기 위해 사용자 입력을 제공한다. 또한, 예를 들어, 출력 메커니즘(118)은 디스플레이, 오디오 스피커, 햅틱 피드백 메커니즘 등을 포함할 수 있다. 도시된 양사들에서, 출력 메커니즘(104)은 동기화가 개시되고, 진행중에, 성공적으로 완료되고, 그리고/또는 실패하는 등을 표시하는 메시지를 디스플레이하도록 동작가능한 디스플레이를 포함할 수 있다.
컴퓨터 플랫폼(20)의 메모리(24)는 데이터세트들(18)을 동기화하도록 동작가능한 동기화 모듈(26)을 포함한다. 동기화 모듈(26)은 미리 결정된 사용자 행동, 미리 결정된 장치 행동에 의해, 그리고/또는 미리 결정된 시간들에서 개시될 수 있다. 사용자 행동은 무선 장치상의 지정된 키패드 또는 버튼과 같은, 미리 결정된 사용자 인터페이스에 관여하는 것을 포함할 수 있다. 미리 결정된 장치 행동은 무선 네트워크 신호의 활성화를 포함할 수 있고, 그 결과 동기화는, 장치가 오프-라인 모드 동안 데이터세트에 대하여 이루어진 변경들을 조절(accommodate)하기 위해 온-라인 모드로 트리거링될 때마다 발생한다.
동기화 모듈(26)은 동기화 프로세스를 무선 장치(12)와 네트워크 장치(14) 사이의 무선 통신의 싱글 라운드-트립으로 제한하기 위해, 캐리어 프로토콜로서 라이트웨이트 데이터-상호교환 프로토콜에 의존할 수 있다. 라이트웨이트 데이터-상호교환 프로토콜은 이름/페어 값들의 수집, 및 값들의 정렬된 리스트 두 개의 구조들 상에 특징적으로 건설될 수 있다. 이름/값 페어들은 객체, 레코드, 구조, 사전, 해시 테이블, 키잉 리스트, 연관된 어레이 등을 포함할 수 있다. 값들의 정렬된 리스트는 어레이, 벡터, 리스트, 시퀀스 등을 포함할 수 있다. 라이트웨이트 데이터-상호교환 프로토콜의 일 예는 JavaScript™ Object Notation(JSON)이다. JSON에서 객체는 이름/값 페어들의 정렬되지 않은 세트이며, 어레이는 값들의 정렬된 수집 그리고 값은 스트링, 수, 참/거짓/널 표시자, 객체 또는 어레이일 수 있다.
동기화 모듈(26)은 동기화 요청 메시지(30)를 생성하고 통신하도록 동작가능한 동기화 요청 메시지 생성기(104)를 포함한다. 동기화 요청 메시지는 현재의 데이터세트 버전 번호(19) 및, 만약 이전의 동기화 세션 이래로, 데이터세트(18)에 임의의 변경이 발생하였다면, 무선 장치 변경 리스트(28)를 포함한다. 이렇게, 동기화 요청 메시지 생성기(104)는 이전의 동기화 세션 이래로 변경된 데이터세트(18)에서 데이터 아이템들(36)의 변경 리스트(28)를 컴파일하도록 동작가능한 변경 리스트 컴파일러(106)를 포함한다. 이러한 면에서, 컴파일러(106)는 변경이 발생했는지 여부를 검증하기 위해, 더티 비트 등과 같은, 변경 표시자(72)를 체크(check)한다. 만약 변경 표시자(72)가 변경을 표시하면, 데이터 아이템은 변경 리스트(28)에 추가된다. 앞서 언급한 것처럼, 몇몇 양상들에서, 동기화 프로세스는 (도 1에서 도시되는 바와 같은) 데이터 필드들(38)로 지칭되는, 데이터 아이템의 서브세트들과는 대조적으로, 데이터 아이템(36)을 지칭된다. 따라서, 변경되는 전체 데이터 아이템(36)은 변경 리스트(28)에 포함된다. 그러나 몇몇 양상들에서 오직 개별적인 데이터 필드(38) 및 대응하는 데이터 아이템(36)에의 참조가 변경 리스트(28)에 포함될 수 있음을 주목해야 한다.
앞서 언급한 것처럼 변경 표시자(72)는 추가된 데이터 아이템, 데이터 아이템에의 삽입, 데이터 아이템에의 삭제, 데이터 아이템에의 변경 또는 삭제된 데이터 아이템을 표시할 수 있다. 네트워크 장치(14)에서 변경의 적절한 통합을 확보하기 위해, 변경 표시자(72)는 추가된 또는 변경된 데이터 아이템 및 삭제된 데이터 아이템을 구별할 수 있다. 예를 들어, 추가된 또는 변경된 데이터 아이템들은 "1"의 비트 값을 할당받을 수 있고, 삭제된 데이터 아이템은 "2"의 값을 할당받을 수 있다.
동기화 요청 메시지 생성기(104)가 동기화 요청 메시지(30)를 생성하면, 무선 장치(12)는 동기화 요청 메시지(30)의 무선 통신을 용이하게 하기 위해 통신 모듈(108)을 구현한다. 동기화 요청 메시지의 통신은, 본 양상들에 따라, 동기화 프로세스를 완료하기 위해 필요한 통신의 싱글 라운드-트립의 첫 번째 레그를 형성한다.
동기화 모듈(26)은 네트워크 장치(14)로부터 동기화 확인 메시지(32)를 수신하고, 그리고 메시지를 적절히 프로세싱하도록 동작가능한 동기화 확인 메시지 구현기(110)를 더 포함한다. 동기화 확인 메시지(32)는 동기화 프로세스를 완료하기 위해 필요한 통신의 싱글 라운드-트립의 두 번째 레그를 형성한다. 몇몇 양상들에서, 동기화 확인 메시지(32)는 동기화 상태 표시자를 포함할 수 있고, 이는 동기화가 네트워크 장치 레벨에서 성공적이었는지 여부와 네트워크 장치 데이터세트 버전 번호(50)(도 1에 도시)를 표시한다. 다른 양상에서, 동기화 확인 메시지(32)는 성공적인 sync 세션의 표시자를 포함한다.
몇몇 애플리케이션들에서, 동기화 확인 메시지(32)는 변경된 대응하는 네트워크 장치 데이터세트(48)(도 1에 도시)에서 데이터 아이템들(52)에 대응하는 네트워크 장치 변경 리스트(34)를 포함하며, 무선 장치 데이터세트(18)로 통합을 요청할 수 있다. 이렇게, 동기화 확인 메시지 구현기(110)는 수신된 네트워크 장치 변경 리스트(34)에 따라 데이터세트(19)에서 데이터 아이템들(36)을 변경하도록 동작가능한 데이터세트 업데이터(112)를 포함한다. 추가적으로, 데이터세트 업데이터(112)는 동기화 확인 메시지(32)에서 표시된 것처럼 현재의 네트워크 장치 버전 번호(50)를 반영하기 위해 무선 장치 데이터세트(18)의 버전 번호(19)를 업데이트 하도록 동작가능한 버전 업데이터(116)를 포함한다. 동기화 프로세스의 성공적인 완료를 통지하면, 데이터세트 업데이터(112)는 "no change(변경 없음)" 상태를 표시하기 위해 변경 표시자들(72)의 전부를 재-설정하도록 동작가능한 재-설정기(116)를 포함한다.
도 5를 참조하면, 다른 양상에 따라, 블록 다이어그램이 네트워크 장치(14)에 대해 도시되고, 이는 데이터세트들을 동기화하도록 동작가능하다. 네트워크 장치(14)는 임의의 타입의 하드웨어, 서버, 개인용 컴퓨터, 미니 컴퓨터, 메인프레임 컴퓨터, 또는 임의의 컴퓨팅 장치, 특별한 용도 또는 범용 컴퓨팅 장치 중 적어도 하나를 포함할 수 있다. 또한, 네트워크 장치(14) 상에서 동작되거나 또는 네트워크 장치에 의해 실행되는 것처럼 여기서 설명된 모듈들 및 애플리케이션들은 네트워크 장치(14) 상에서 전체적으로 실행될 수 있고, 또는 대안적으로, 다른 양상들에서, 개별적인 서버들, 데이터베이스들 또는 컴퓨터 장치들은 이용가능한 포맷들의 데이터를 파티들에게 제공하기 위해 그리고/또는 무선 장치(12) 및 네트워크 장치(12)에 의해 실행되는 모듈들 및 애플리케이션들 사이의 데이터 플로우에서 제어의 개별적인 계층을 제공하기 위해 협력하여 동작할 수 있다.
네트워크 장치(14)는 무선 네트워크(16)(도 1에서 도시)에 걸쳐 데이터를 송신하고 수신할 수 있고, 그리고 루틴들 및 애플리케이션들을 실행할 수 있는 컴퓨터 플랫폼(40)을 포함한다. 컴퓨터 플랫폼(40)은 판독-전용 및/또는 랜덤-액세스 메모리(RAM 또는 ROM), EPROM, EEPROM, 플래시 카드들, 또는 컴퓨터 플랫폼들에 공통적인 임의의 메모리와 같은 휘발성 및 비휘발성 메모리를 포함할 수 있는, 메모리(42)를 포함한다. 또한, 메모리(42)는 하나 이상의 플래시 메모리 셀들을 포함할 수 있거나 자기 매체, 광학 매체, 테이프, 또는 소프트 또는 하드 디스크와 같은 임의의 제 2 또는 제 3 저장 매체일 수 있다.
또한, 컴퓨터 플랫폼(40)은 또한 애플리케이션-특정 집적 회로("ASIC"), 또는 다른 칩셋, 로직 회로, 또는 다른 데이터 프로세싱 장치일 수 있는, 프로세서(44)를 포함한다. 프로세서(44)는 네트워크 장치(14)의 기능성 및 무선 네트워크상에서 네트워크 장치의 동작성을 인에이블하는, 하드웨어, 펌웨어, 소프트웨어, 및 이들의 조합들에서 이용되는 다양한 프로세싱 서브시스템들(130)을 포함한다. 예를 들어, 프로세싱 서브시스템들(130)은 다른 네트워킹 된 장치들과 통신을 개시하고 유지하며, 그리고 데이터를 교환하도록 허용한다. 개시된 양상들에 대해, 프로세서(44)의 프로세싱 서브시스템들(130)은 동기화 모듈(46)과 상호작용하는 임의의 서브시스템 컴포넌트들을 포함할 수 있다.
컴퓨터 플랫폼(40)은 네트워크 장치(14) 및 무선 통신 장치들(12) 사이뿐만 아니라, 네트워크 장치(14)의 다양한 컴포넌트들 사이에서 통신들을 인에이블하는, 하드웨어, 펌웨어, 소프트웨어, 및 이들의 조합에서 이용되는 통신 모듈(132)을 더 포함한다. 통신 모듈(132)은 무선 통신 연결을 설정하기 위한 필수의 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들을 포함할 수 있다. 통신 모듈(132)은 무선 네트워크(16)에 걸쳐 전달되는 동기화 요청 메시지들(30)을 수신하고, 무선 네트워크(16)에 걸쳐 동기화 확인 메시지들(32)을 전달하도록 동작가능하다.
네트워크 장치(14)의 메모리는 동기화 요청 메시지들(30)을 수신하고 프로세싱하도록 동작가능한 동기화 모듈(46)을 포함하며, 상기 요청 메시지(30)에 응답하여, 동기화 확인 메시지들(32)을 생성하여 전달한다. 이렇게, 동기화 모듈(46)은 요청 메시지(30)를 수신하고 메시지를 적절하게 프로세싱하도록 동작가능한 동기화 요청 메시지 구현기(134)를 포함한다. 만약 무선 장치 데이터세트(18)(도 1 및 4에서 도시)가 이전의 동기화 세션 이래로 데이터 아이템(36)(도 1 및 4에서 도시) 변경들을 겪었다면, 동기화 요청 메시지(30)는 변경된 데이터 아이템들을 포함하는 무선 장치 변경 리스트(28)를 포함할 것이다.
동기화 요청 메시지 구현기(134)는 무선 장치 변경 리스트(28)에 따라 네트워크 장치상의 대응하는 데이터세트(48)를 업데이트하도록 동작가능한 데이터세트 업데이터(136)를 더 포함한다. 이렇게, 데이터세트 업데이터(136)는 무선 장치 변경 리스트(28)에서 변경된 데이터 아이템들에 따라, 데이터 아이템에 부가, 데이터 아이템으로부터 삭제, 데이터 아이템을 변경, 데이터 아이템을 추가, 또는 데이터 아이템을 삭제하는 것처럼, 데이터 아이템들(52)을 변경할 것이다. 데이터세트 업데이터(136)는 데이터 아이템에 대한 변경에 기반하여 데이터 아이템(52)의 버전 번호(56)를 업데이트 하도록 동작가능한 데이터 아이템 버전 업데이터(138)를 포함한다. 각각의 데이터 아이템(52)은 버전 번호(56)를 할당받고, 데이터 아이템(52)에 대한 임의의 변경은 새로운 버전 번호(56)를 지시(dictate)할 것이다. 버전 번호들(56)은 현재의 네트워크 장치 데이터세트 버전 번호(50) 이후의 다음 번호로 순차적으로 시작하도록 할당된다. 예를 들어, 만약 현재의 데이터세트 버전 번호(50)가 "20"이면, 무선 장치 변경 리스트(28)는 네 개의 데이터 아이템들에 대한 변경들을 포함하며, 데이터 아이템(52)은 "21", "22", "23", 및 "24"의 업데이트된 버전 번호들을 할당받을 수 있다. 데이터세트 업데이터(136)는 데이터세트(48)에 서 임의의 데이터 아이템(52)에 대한 변경에 기반하여 네트워크 장치 데이터세트(48)의 버전 번호(50)를 업데이트 하도록 동작가능한 데이터세트 버전 업데이터(140)를 더 포함한다. 일 예에서, 데이터세트 버전 번호(48)는 가장 높은 데이터 아이템 버전 번호(56)와 동일하다. 따라서, 네 개의 데이터 아이템들(52)이 변경된 예시에서 이전에 나타낸, "21", "22", "23", 및 "24"의 업데이트된 버전 번호들(56)이 할당되며, 네트워크 장치 데이터세트 버전 번호(50)가 "20"에서 "24"로 업데이트된다.
추가적으로, 데이터세트 업데이터(136)는 삭제 표시자(82)를 설정하도록 동작가능한 삭제 표시자 설정기(142)를 포함할 것이고, 그렇지 않으면 데이터세트(48)로부터 삭제된 임의의 데이터 아이템(52)에 대해 톰스톤(tombstone)으로서 지칭된다. 이러한 면에서, 삭제된 데이터 아이템(52)이 업데이트된 버전 번호(56)를 할당받고, 삭제 표시자(82)는 설정된다. 삭제 표시자(82)는 삭제된 것으로 마크될 삭제 아이템들(52)을 제공하며, 그렇지 않으면 데이터세트(48) 내에서 유지된다. 데이터세트(48)에서 삭제된 데이터 아이템들(52)을 유지함으로써, 만약 동기화 세션이 그렇게 보장하고, 개별적인 톰스토닝된 데이터 아이템(52)을 업데이트하기 위한 추가적인 시도들을 방지하면, 네트워크 장치는 데이터세트의 이전의 버전을 재생성할 수 있다.
동기화 모듈(46)은 동기화 상태 표시자(예를 들어, 동기화 성공, 동기화 실패 등) 및 네트워크 장치 데이터세트(48)의 업데이트된 그리고/또는 현재의 버전 번호(50)를 포함하는, 동기화 확인 메시지(32)를 생성하도록 동작가능한 동기화 확인 메시지 생성기(144)를 더 포함한다. 만약 네트워크 장치 데이터세트(48)가 요청하는 무선 장치(12)를 이용하여 이전의 동기화 세션 이래로 데이터 아이템(52) 변경들을 경험하였다면, 동기화 확인 메시지(32)는 네트워크 장치 변경 리스트(34)를 더 포함할 수 있다. 이렇게, 동기화 확인 메시지 생성기(144)는 네트워크 장치 변경 리스트(34)를 컴파일링하기 위해 변경 리스트 컴파일러(146)를 포함한다. 네트워크 장치 변경 리스트(34)는 동기화 요청 메시지(30)에서 표시된 무선 장치(12)의 버전 번호(19)보다 큰 버전 번호들(56)을 가지고, 네트워크 장치 데이터세트(48)의 업데이트 이전에 네트워크 장치 데이터세트(48)의 버전 번호(50)(즉, 동기화 요청 메시지(30)를 수신하면 네트워크 장치 데이터세트(48)의 버전 번호(50))보다 작거나 동일한 데이터 아이템들(52)을 포함할 것이다.
동기화 확인 메시지(32)를 생성하면, 메시지는 통신 모듈(132)을 통해 요청하는 무선 장치(12)로 전달된다. 동기화 요청 메시지(30)와 유사하게, 동기화 확인 메시지(32)는 JSON(JavaScript Object Notation) 프로토콜과 같은, 라이트웨이트 데이터-상호교환 캐리어 프로토콜을 통해 통신될 수 있다.
도 6은 셀룰러 네트워크의 블록 다이어그램을 도시한다. 무선 네트워크(16)는, 네트워크 장치(14)로 동기화 요청 메시지들(30)을 전달하고 네트워크 장치(14)로부터 동기화 확인 메시지들(32)을 수신하도록 구현될 수 있는 것처럼, 셀룰러 네트워크를 포함할 수 있다. 도 6을 참조하면, 일 양상에서, 무선 장치(12)는 셀룰러 전화와 같은 무선 통신 장치를 포함한다. 본 양상들에서, 무선 통신 장치들은 셀룰러 네트워크(150)를 통해 통신하도록 구성된다. 셀룰러 네트워크(150)는 각각 네트워크 장치(14)로 동기화 요청 메시지(30)를 전달하고 네트워크 장치(14)로부터 동기화 학인 메시지들(32)을 수신할 성능을 무선 통신 장치(12)에 제공한다. 셀룰러 전화 네트워크(150)는 캐리어 네트워크(154)를 통해 유선 네트워크(152)에 연결된 무선 네트워크(16)를 포함할 수 있다. 도 6은 무선 통신 네트워크의 컴포넌트들 및 본 시스템의 일 양상의 엘리먼트들의 상호관계를 더욱 충분하게 도시하는 대표적인 다이어그램이다. 셀룰러 전화 네트워크(150)는 단지 예시적이며, 임의의 시스템을 포함할 수 있고, 이에 의해 무선 통신 장치들(12)과 같은 원격 모듈들이 서로 그리고/또는 무서 네트워크 캐리어 및/또는 서버들을 포함하나 이에 제한되지 않는, 무선 네트워크(16)의 컴포넌트들 사이에서 무선으로 통신한다.
네트워크(150)에서, 네트워크 서버와 같은 네트워크 장치(14)는 데이터세트들(48)을 저장하기 위한 개별적인 네트워크 데이터베이스(156)와 유선 네트워크(152)(예를 들어, 로컬 영역 네트워크, LAN)를 통해 통신할 수 있다. 또한, 데이터 관리 서버(158)는 후-프로세싱 성능들, 데이터 플로우 제어 등을 제공하기 위해 네트워크 장치(14)와 통신할 수 있다. 네트워크 장치(14), 네트워크 데이터베이스(156) 및 데이터 관리 서버(158)는 셀룰러 원격통신 서비스들을 제공하는데 필요한 임의의 다른 네트워크 컴포넌트들과 함께 셀룰러 전화 네트워크(150) 상에 존재할 수 있다. 네트워크 장치(14), 및/또는 데이터 관리 서버(158)는 데이터 링크들(160, 162)을 통해 캐리어 네트워크(154)와 통신하며, 데이터 링크들은 인터넷, 보안 LAN, WAN, 또는 다른 네트워크와 같은 데이터 링크들일 수 있다. 캐리어 네트워크(154)는 모바일 스위칭 센터("MSC")(164)로 전송되는 메시지들(일반적으로 데이터 패킷들임)을 제어한다. 또한, 캐리어 네트워크(154)는 인터넷, 및/또는 POTS ("plain old telephone service")와 같은, 네트워크(162)에 의해 MSC(164)와 통신한다. 일반적으로, 네트워크(162)에서, 네트워크 또는 인터넷 부분은 데이터를 전달하고, 그리고 POTS 부분은 음성 정보를 전달한다. MSC(162)는 데이터 전달을 위한 데이터 네트워크 및/또는 인터넷 부분 및 음성 정보를 위한 POTS 부분과 같은, 다른 네트워크(168)에 의해 복수의 기지국들("BTS")에 연결될 수 있다. BTS(166)는 임의의 수용가능한 무선 방법들에 의해 결국 무선 통신 장치들(12)로 무선으로 메시지들을 브로드캐스트한다.
도 7 및 8은 본 양상들에 따라, 데이터세트 동기화의 예들을 제공한다. 도 7을 참조하면, 동기화 세션 이전에, 무선 장치 데이터세트(200)가 버전 "3"에 있고, 대응하는 네트워크 서버 데이터세트(300)는 버전 "4"에 있다. 무선 장치 데이터세트(200)의 버전 "3"은 "profile.im," "profile.tagline" 및 "profile avatar"로 명명된 세 개의 데이터 아이템들(210)을 포함한다. 각각의 데이터 아이템(210)은 대응하는 값(200)을 가지며; "profile.im" 값은 "PLAYER 45"이고, "profile.tagline"값은 "GO TIME!"이며 "profile avatar" 값은 "Abc.png"이다. 각각의 데이터 아이템(210)은 대응하는 변경 표시자 필드(230)를 가진다. 변경 표시자 필드(230)는 "profile.im" 및 "profile avatar"로 명명된 데이터 아이템들(210)이 이전의 동기화 세션 이래로 어떤 변경들도 경험하지 않았다고 표시하며, "profile.tagline"으로 명명된 데이터 아이템(210)은 이전의 동기화 세션 이래로 변경을 겪었다고 표시한다.
네트워크 서버 데이터세트(300)의 버전 "4"은 "profile.im," "profile.tagline," "profile.age" 및 "profile. avatar"로 명명된, 네 개의 데이터 아이템들(310)을 포함한다. 각각의 데이터 아이템(310)은 대응하는 값(320)을 가지며; "profile.im" 값은 "PLAYER 45"이고, "profile.tagline" 값은 "THE BEST!"이며, "profile.age" 값은 "22"이며, "profile. avatar" 값은 "Abc.png"이다. 각각의 데이터 아이템(310)은 대응하는 버전 번호(340)를 가지며; "profile.im"은 버전 "1"에 있고, "profile.tagline"은 버전 "3"이며, "profile.age"은 버전 "4"이고, "profile. avatar"는 버전 "2"이다. 또한, 각각의 데이터 아이템(310)은, 개별적인 데이터 아이템이 개별적인 데이터세트로부터 삭제되었다고 표시하기 위해, 다르게는 톰스톤으로 지칭되는, 대응하는 삭제 표시자(350)를 가질 수 있다. 데이터세트(300)에서, 데이터 아이템들(310) 중 어떠한 것도 삭제된 것은 없고, 따라서 삭제를 표시하도록 설정되는 톰스톤들은 없다.
무선 장치 데이터세트(200) 및 네트워크 서버 데이터세트(300) 사이의 동기화는 동기화 요청 메시지(30)에 기반하여 후속된다. 특히, 무선 장치(12)는 네트워크 장치(14)로 동기화 요청 메시지(30)를 생성하여 전송한다. 적용가능하다면, 무선 장치(12)는 변경 리스트(28)를 컴파일하고, 이는 이러한 경우에 "1"의 값을 가지는 변경 표시자(230)에 기반하여 데이터 아이템 "profile.tagline" 및 대응하는 값 "LET'S PLAY!"를 포함한다. 이렇게, 이러한 경우에서, 무선 장치 변경 리스트(28) 및 현재의 무선 장치 데이터세트 버전(19), 즉 버전 "3"은 네트워크 서버로 전달되는 동기화 요청 메시지(30)에 포함된다. 차례로, 이벤트(355)에서, 네트워크 서버(14)는 동기화 요청 메시지를 수신하고, 만약 적용가능하면, 변경 리스트(28)에서 변경들을 구현하고, 대응하는 변경된 데이터 아이템 버전 번호들(340)을 업데이트하며, 그리고 네트워크 서버 데이터세트 버전 번호(50)를 업데이트한다.
네트워크 서버 데이터세트(360)는 무선 장치 변경 리스트에서 변경들이 구현되고 난 후 데이터세트를 도시하고, 데이터 아이템 버전 번호들은 리바이스 되었으며, 네트워크 서버 데이터세트 버전 번호는 리바이스 되었다. 특히, "profile.tagline"으로 명명된, 데이터 아이템(310)은, 무선 장치 변경 리스트(28)에 기반하여 "GO TIME!"의 값을 반영하기 위해 변경되었다. 또한, "profile.tagline"으로 명명된 데이터 아이템(310)에 대한 데이터 아이템 버전 번호(340)는 버전 "3"에서 버전 "5"로 업데이트되었고, 네트워크 서버 데이터세트 버전 번호(50)는 버전 "4"에서 버전 "5"로 업데이트되었으며, 여기서 버전 "5"는 가장 높게 시퀀싱된 데이터 아이템 버전(340)에 대응한다.
또한, 동기화 요청 메시지(30)의 수신에 응답하여, 네트워크 서버(14)는 요청하는 무선 장치(12)로 동기화 확인 메시지(32)를 생성하여 송신한다. 동기화 확인 메시지(32)는 가장 최근의 무선 장치 데이터세트 버전(50)을 포함하고, 만약 가능하면, 개별적인 데이터세트의 가장 최근 버전을 가지는 요청하는 무선 장치를 동기화하기 위해 네트워크 장치 변경 리스트(34)를 포함할 수 있다. 이러한 경우에, 예를 들어, 무선 장치 변경들이 네트워크 서버에서 구현되었을 때, 네트워크 서버는 동기화 확인 메시지(32)를 포함하기 위한 네트워크 서버 변경 리스트(34)를 컴파일하고, 그리고 무선 장치로 확인 메시지를 전달한다. 네트워크 장치 변경 리스트(34)는 네트워크 서버 데이터세트의 현재의 버전 번호에서, 무선 장치 변경 리스트(28)에 의해 유발된 임의의 변경들, 예를 들어 가장 최근의 네트워크 장치 데이터세트 버전 및 현재의 무선 장치 데이터세트 버전 사이의 델타를 뺀 것까지 수신된 무선 장치 데이터세트 버전 번호보다 큰 버전 번호들을 가지는 모든 데이터 아이템들을 포함한다. 따라서, 도 7의 예에서, 네트워크 서버 변경 리스트(34)는, 대응하는 데이터 아이템 버전 번호가 무선 장치 버전 번호 "3"보다 큰, "4"이기 때문에, "22"의 값을 가지는 "profile.age"로 명명된, 데이터 아이템(310)을 포함하나, "profile.tagline"으로 명명된 데이터 아이템(310)의 값 "GO TIME!"을, 이 데이터 아이템 버전은 무선 장치 변경 리스트(28)에 기반했기 때문에, 포함하지 않는다. 또한, 몇몇 양상들에서, 동기화 확인 메시지(32)는 동기화 상태 표시자를 포함할 수 있다. 따라서, 도시된 예에서, 동기화 확인 메시지는 "5"의 네트워크 서버 데이터세트 버전 번호, 네트워크 장치 변경 리스트(34)를 포함하고, "동기화 성공" 표시자를 포함할 수 있다.
무선 장치 데이터세트(240)는 동기화 확인 메시지(32)가 수신된 후에 데이터세트를 도시하고, 네트워크 장치 변경 리스트(34)는 구현되었으며, 무선 장치 버전 번호(19)가 리바이스 되었다. 특히, "22"의 값을 가지는 "profile.age"로 명명된, 데이터 아이템(210)은 데이터세트(240)로 추가되었으며, 데이터세트 버전 번호(19)는 "3"에서 "5"로 업데이트되었다.
도 8을 참조하면, 이전의 예에 이어서, 무선 장치 데이터 세트(250)를 이용한 애플리케이션의 동작에 기반하여, "profile.tagline"으로 명명된 데이터 아이템(210)에 대응하는 값(220)이 클리어되거나 삭제되었다. 이렇게, 동기화 세션 이전에, 무선 장치 데이터세트(250)는 "5"의 값을 가진 버전(19)을 가지고, 대응하는 네트워크 서버 데이터세트(360)는 "5"의 값을 가진 버전(50)을 가진다. 무선 장치 데이터세트(250)의 버전 "5"는 "profile.im," "profile.tagline," "profile.age" 및 "profile. avatar"로 명명된, 네 개의 데이터 아이템들(310)을 포함한다. 각각의 데이터 아이템(210)은 대응하는 값(220)을 가지며; "profile.im" 값은 "PLAYER 45"이고, "profile.tagline" 값은 널 또는 삭제되었으며, "profile.age" 값은 "22"이며, "profile. avatar" 값은 "Abc.png"이다. 각각의 데이터 아이템(210)은 대응하는 변경 표시자 필드(230)를 가진다. 변경 표시자 필드(230)는 "profile.im," "profile.age" 및 "profile avatar"로 명명된 데이터 아이템들(210)이 이전의 동기화 세션 이래로 어떤 변경들도 경험하지 않았다고 표시하며, "profile.tagline"으로 명명된 데이터 아이템(210)은 이전의 동기화 세션 이래로 변경을 경험하였다고 표시한다. 이러한 경우에, 데이터 아이템(210)의 삭제는 변경 표시자(230)에 대응하는 비트를 "2"로 설정함으로써 표시된다.
네트워크 서버 데이터세트(370)의 버전 "5"는 "profile.im," "profile.tagline," "profile.age" 및 "profile. avatar"로 명명된, 네 개의 데이터 아이템들(310)을 포함한다. 각각의 데이터 아이템(310)은 대응하는 값(320)을 가지며; "profile.im" 값은 "PLAYER 45"이고, "profile.tagline" 값은 "GO TIME!"이며, "profile.age" 값은 "22"이며, "profile. avatar" 값은 "Abc.png"이다. 또한, 각각의 데이터 아이템(310)은 대응하는 버전 번호(340)를 가지며; "profile.im"은 버전 "1"에 있고, "profile.tagline"은 버전 "5"이며, "profile.age"은 버전 "4"이고, "profile. avatar"는 버전 "2"이다. 또한, 각각의 데이터 아이템(310)은, 개별적인 데이터 아이템이 데이터세트로부터 삭제되었다고 표시하기 위해, 다르게는 톰스톤(350)으로 지칭되는, 대응하는 삭제 표시자를 가질 수 있다. 네트워크 장치 데이터세트(370)에 대해, 데이터 아이템들(310) 중 어떠한 것도 삭제된 것은 없고, 따라서 삭제를 표시하도록 설정되는 톰스톤들(350)은 없다.
무선 장치 데이터세트(250) 및 네트워크 서버 데이터세트(370) 사이의 동기화가, 개별적인 무선 장치(12)에 의해 생성되고 개별적인 네트워크 장치(14)로 전송되는, 동기화 요청 메시지(30)에 기반하여 후속된다. 이러한 경우에, 무선 장치는 데이터 아이템 "profile.tagline" 및 대응하는 변경 표시자(230)에 대한 "2"의 값을 포함하는, 변경 리스트(28)를 컴파일하고, 이에 의해 무선 장치 데이터세트(250)로부터 개별적인 데이터 아이템의 삭제를 나타낸다.
무선 장치 변경 리스트(28) 및 무선 장치 데이터세트 버전(19)의 현재 값, 예를 들어 이 경우에 버전 "5"는, 대응하는 네트워크 장치 데이터세트를 가지는 네트워크 장치(14)로 전달되는 동기화 요청 메시지(30)에 포함된다. 차례로, 네트워크 장치는, 이벤트(375)에서, 동기화 요청 메시지(30)를 수신하고, 무선 장치 변경 리스트(28)에서 변경들을 구현하고, 개별적인 변경된 데이터 아이템 버전 번호들(340)을 업데이트하며, 그리고 네트워크 서버 데이터세트 버전 번호(50)를 업데이트한다.
네트워크 서버 데이터세트(380)는 무선 장치 변경 리스트(30)의 변경들이 구현되고 난 후의 데이터세트를 도시하며, 데이터 아이템 버전 번호들은 리바이스 되었으며, 네트워크 서버 데이터세트 버전 번호는 리바이스 되었다. 특히, "profile.tagline"으로 명명된, 데이터 아이템(310)은 값으로 업데이트된 톰스톤 표시자(350)를 가지며, 이 경우에서 "X", 이는 개별적인 데이터 아이템이 네트워크 장치 데이터세트로부터 삭제되었다고 나타낸다. 또한, "profile tagline"으로 명명된 데이터 아이템(310)에 대한 데이터 아이템 버전 번호(340)가 데이터 아이템에 대한 변경을 반영하기 위해 버전 "5"에서 "6"으로 업데이트되었으며, 네트워크 서버 데이터세트 버전 번호가 버전 "5"에서 "6"으로 업데이트되었으며, 여기서 버전 "6"은 가장 높게 시퀀싱된 데이터 아이템 버전(340)이다.
변경들이 구현되었으면, 네트워크 서버는 동기화 확인 메시지(32)를 생성하고 무선 장치로 확인 메시지를 전달한다. 이전의 동기화 세션 이래로 네트워크 장치 데이터세트(380)에 아무런 변경이 발생하지 않았기 때문에, 네트워크 서버 변경 리스트(34)는 컴파일되지 않고, 따라서 네트워크 서버 변경 리스트(34)는 동기화 확인 메시지에 포함되지 않는다. 이렇게, 도 8의 예에서, 동기화 확인 메시지(32)는 업데이트된 네트워크 서버 데이터세트 버전 번호(50)를 포함한다. 따라서, 도시된 예에서, 동기화 확인 메시지(32)는 "6"의 네트워크 서버 데이터세트 버전 번호를 포함한다.
무선 장치 데이터세트(260)는 동기화 확인 메시지(32)가 수신되고 무선 장치 버전 번호(19)가 리바이스되고 난 후의 데이터세트를 도시한다. 이러한 경우에, 무선 장치 데이터세트의 이전의 버전이 데이터 아이템이 삭제되었음을 표시하기 때문에, 동기화 확인 메시지(32)를 수신하면, 무선 장치(12)는 무선 장치 데이터세트로부터 개별적인 데이터 아이템을 삭제할 수 있다. 특히, "profile.tagline"으로 명명된, 데이터 아이템(210)은, 무선 장치 데이터세트(260)로부터 삭제되었으며, 데이터세트 버전 번호(19)는 "5"에서 "6"으로 업데이트되었다.
다른 방법들이 무선 장치 데이터세트로부터 데이터 아이템들을 삭제하기 위해 이용가능하다는 것을 주목해야 한다. 예를 들어, 데이터 아이템의 삭제가 업데이트 또는 변경의 중대한 타입으로 고려될 수 있기 때문에, 무선 장치 데이터세트로부터 개별적인 데이터 아이템을 삭제하는 것이 적절하다고 무선 장치에 확인하기 위해 네트워크 장치 변경 리스트(32)의 톰스톤 표시자(350)를 포함함으로써, 시스템은 네트워크 장치가 삭제를 확인하도록 허용할 수 있다.
도 9를 참조하면, 무선 장치에서의 데이터세트 동기화를 위한 방법의 플로우 다이어그램이 도시된다. 이벤트(400)에서, 동기화 세션이 무선 장치에서 개시된다. 동기화 세션의 개시는 미리 결정된 키패드를 관여시키는 것과 같은, 미리 결정된 사용자 행동, 온-라인 모드를 트리거링하는 것과 같은 미리 결정된 이벤트, 미리 결정된 시간 등에 의해 성취될 수 있다. 이벤트(410)에서, 동기화 모듈은 데이터 세트의 각각의 데이터 아이템에 대한 변경 표시자를 체크하고, 이벤트(420)에서, 임의의 변경 표시자들이 데이터 아이템에 대한 변경, 데이터 아이템에 대한 추가 또는 데이터 아이템의 삭제를 표시하도록 설정되었는지 여부에 대한 결정이 이루어진다.
만약 하나 이상의 변경 표시자들이 데이터 아이템에 대한 변경을 표시하도록 설정되는 것으로 결정되면, 이벤트(430)에서, 무선 장치 변경이 변경 표시자 설정들에 기반하여 컴파일된다. 예를 들어, 데이터 아이템에 대한 변경 또는 데이터 아이템에 대한 추가를 표시하는 변경 표시자들은 컴파일된 변경 리스트의 변경된 또는 추가된 데이터 아이템의 결합을 요청할 것이다. 또한, 데이터 아이템의 삭제를 표시하는 변경 표시자들은 데이터 아이템의 식별(identification) 및 컴파일된 변경 리스트에서 변경의 삭제 표시자를 요청할 것이다.
이벤트(440)에서, 현재의 무선 장치 데이터세트 버전 번호 및 적용 가능하다면, 무선 장치 변경 리스트를 포함하는 동기화 요청 메시지가 생성된다. 이벤트(450)에서, 동기화 요청 메시지가 네트워크 장치로 전달된다. 몇몇 양상들에서, 동기화 요청 메시지는 JavaScript Object Notation(JSON) 프로토콜 등과 같은, 라이트웨이트 데이터-상호교환 캐리어 프로토콜을 통해 전달된다.
이벤트(460)에서, 무선 장치는 미리 결정된 시간이 경과했는지 여부를 결정한다. 미리 결정된 시간은 일반적으로 동기화 확인 메시지를 수신하기 위한 허용가능한 시간에 대해 제공되도록 정의된다. 만약 미리 결정된 시간이 경과했으면, 세션은 동기화 요청 메시지를 포함한 통신이 실패했거나 동기화 확인 메시지를 포함한 통신이 실패하였다고 추측한다. 만약 미리 결정된 시간이 경과했으면, 방법은 이벤트(400)로 리턴하고 새로운 동기화 세션이 개시된다. 이렇게, 본 양상들은 견고한 동기화 방법을 허용하여, 이에 의해 통신 실패가 "전체(full)" 동기화 절차(즉, 무선 장치 또는 네트워크 장치에 저장되는 전체 데이터세트의 교환 및 대체)를 수행할 필요없이 개시될 새로운 "소프트(soft)" 동기화 세션을 대비한다. 그러나 "전체" 동기화가 예를 들어 미리 결정된 수의 "소프트" sync 실패들 이후에 그리고/또는 아래 설명될 것처럼 네트워크 장치로부터 에러 메시지를 수신한 것에 기반하여, 구현될 수 있음을 주목해야 한다.
이벤트(470)에서, 만약 미리 결정된 시간이 경과하지 않았으면, 동기화 세션이 여전히 이용가능한 시간 제한 내에 있다는 것을 의미하고, 무선 장치는 네트워크 장치, 다르게는 synch/동기화 서버로 지칭되는 것으로부터 동기화 확인 메시지를 수신한다. 동기화 확인 메시지는 현재의 네트워크 장치 데이터세트 버전 번호, 동기화 상태 표시자, 및 임의의 적용가능한 네트워크 장치 변경 리스트를 포함한다. 선택적으로, 이벤트(480)에서, 동기화 상태 표시자가 동기화가 네트워크 장치에서 성공적으로 수행되었는지 여부를 결정하도록 체크된다. 만약 동기화가 성공적이지 않으면, 이벤트(490)에서, 무선 장치는 "전체" 동기화 절차를 개시한다. 일 양상에서, 전체 동기화는 전체 동기화에 대하여 네트워크 장치로 전체 데이터세트를 전달하도록 무선 장치에 요청한다.
만약 동기화 상태 표시자가 동기화가 네트워크 장치에서 성공적이었다고 표시하면, 이벤트(500)에서, 무선 장치는 동기화 확인 메시지가 네트워크 장치 변경 리스트를 포함하는지 여부를 결정한다. 만약 변경 리스트가 확인 메시지에 포함되면, 이벤트(510)에서, 데이터 아이템들에 대한 변경들을 포함하고, 데이터 아이템들을 부가하고 그리고/또는 데이터세트로부터 데이터 아이템들을 삭제하는, 적절한 변경들이 데이터세트로 구현된다. 데이터세트에 대한 변경들이 구현되었으면, 이벤트(520)에서, 무선 장치 데이터세트 버전 번호가 확인 메시지에서 표시되는 것처럼, 네트워크 장치 데이터세트의 버전 번호를 반영하기 위해 업데이트된다. 이벤트(530)에서, 모든 데이터 아이템 변경 표시자들은 "변경 없음"을 표시하도록 재-설정되며, 무선 장치는 새로운 sync 세션이 이벤트(400)에서 개시될 때까지 대기한다.
만약, 이벤트(500)에서, 무선 장치가 동기화 확인 메시지에 변경리스트가 포함되지 않았다고 결정하면, 이벤트(540)에서, 현재의 무선 장치 데이터세트 버전 번호가 확인 메시지에서 표시된 것처럼, 네트워크 장치 데이터세트 리비젼(revision) 번호와 상이한지 여부에 대한 결정이 이루어진다. 만약 데이터세트 버전 번호들이 상이하면, 이벤트(520)에서, 무선 장치 데이터세트 버전 번호가 확인 메시지에서 표시되는 것처럼, 네트워크 장치 데이터세트의 버전 번호를 반영하기 위해 업데이트되고, 그리고 이벤트(530)에서, 모든 데이터 아이템 변경 표시자들은 "변경 없음"을 표시하기 위해 재-설정되며, 무선 장치는 이벤트(400)에서 새로운 sync 세션이 개시될 때까지 대기한다. 만약 데이터세트 버전 번호들이 상이하지 않으면, 이벤트(530)에서, 모든 데이터 아이템 변경 표시자들이 "변경 없음"으로 표시되도록 재-설정되며, 무선 장치는 이벤트(400)에서 새로운 sync 세션이 개시될 때까지 대기한다.
도 10을 참조하면, 네트워크 장치에서 데이터세트 동기화를 위한 방법의 플로우 다이어그램이 도시된다. 이벤트(600)에서, 네트워크 장치는 무선 장치로부터 동기화 요청 메시지를 수신한다. 이벤트(610)에서, 요청 메시지가 무선 장치 변경 리스트를 포함하는지 여부에 대한 결정이 이루어진다. 만약 변경리스트가 요청 메시지에 포함되면, 이벤트(620)에서, 리스트의 임의의 변경들이 데이터 아이템 삭제들에 대응하는지 여부에 대한 결정이 이루어진다. 만약 변경들이 삭제들에 대응하면, 이벤트(630)에서, 톰스톤/삭제 표시자가 삭제된 데이터 아이템에 대해 설정되며, 이벤트(640)에서, 삭제된 아이템에 대한 데이터 아이템 버전 번호가 업데이트된다. 업데이트된 데이터 아이템 버전 번호는 가장 높은 데이터 아이템 버전 번호 이후의 다음 시퀀싱된 번호를 반영한다.
이벤트(650)에서, 추가의 데이터 아이템 삭제들이 변경 리스트에 대해 제공되는지 여부에 대한 결정이 이루어진다. 만약 추가의 삭제들이 변경 리스트에 포함되면, 프로세스는 이벤트(630)로 되돌아가고, 톰스톤/삭제 표시자가 추가의 삭제된 데이터 아이템에 대해 제공되며, 이벤트(640)에서, 삭제된 아이템에 대한 데이터 아이템 버전 번호가 업데이트된다. 만약, 이벤트(650)에서, 변경 리스트에 추가의 삭제들이 포함되지 않는다고 결정되면, 이벤트(660)에서, 리스트의 임의의 변경들이 데이터 아이템 변경들 및/또는 데이터 아이템 추가들에 대응하는지 여부에 대한 결정이 이루어진다.
만약 변경들이 추가들/변경들에 대응하면, 이벤트(670)에서, 변경되는 데이터 아이템이 네트워크 장치 데이터세트에 톰스톤/삭제 표시자를 가지는지 여부에 대한 결정이 이루어지고, 그에 의해 추가적인 업데이트들이 개별적인 데이터 아이템에 대해 이루어질 수 없다. 만약 변경되는 데이터 아이템이 톰스톤/삭제 표시자를 가지면, 이벤트(680)에서, 프로세스는 위에서 설명한 것처럼, 업데이트들/추가들을 가지는 변경 리스트의 임의의 나머지 아이템들이 존재하는지 여부를 결정하기 위해 이벤트(710)로 포워딩하고, 그렇다면 이벤트(670)로 되돌아간다. 만약 변경되는 데이터 아이템이 톰스톤/삭제 표시자를 가지지 않다면, 이벤트(690)에서, 적용가능한 데이터 아이템 변경이 현재의 네트워크 장치 데이터세트의 데이터 아이템을 변경리스트의 데이터 아이템으로 대체함으로써 이루어지고, 적용가능한 데이터 아이템 추가가 데이터세트로 이루어진다. 이벤트(700)에서, 변경된 또는 추가된 데이터 아이템들에 대한 데이터 아이템 버전 번호가 업데이트된다. 업데이트된 데이터 아이템 버전 번호는 가장 높은 데이터 아이템 버전 번호 이후의 다음 시퀀싱된 번호를 반영한다.
이벤트(710)에서, 변경 리스트에 임의의 추가의 데이터 아이템들 변경들 또는 추가들이 남아있는지 여부에 대한 결정이 이루어진다. 만약 추가의 변경들/추가들이 변경 리스트에 존재하면, 프로세스는 이벤트(670)로 되돌아간다. 만약 추가의 변경들/추가들이 변경 리스트에 존재하지 않으면, 이벤트(720)에서, 네트워크 장치 데이터세트 버전 번호가 가장 높은 데이터 아이템 버전 번호로 설정된다. 추가적으로, 이벤트(660)에서, 만약 변경 리스트가 임의의 변경들/추가들을 포함하지 않으면, 이벤트(720)에서, 네트워크 장치 데이터세트 버전 번호가 가장 높은 데이터 아이템 버전 번호로 설정된다.
이벤트(730)에서, 무선 장치는 요청 메시지에서 표시된 것처럼, 무선 장치의 버전 번호보다 크고, 요청 메시지를 수신하기 바로 이전의 네트워크 장치 데이터세트 버전 번호까지인 버전 번호를 가지는 데이터 아이템들의 네트워크 장치 변경 리스트를 컴파일한다.
선택적으로, 이벤트(740)에서, 동기화 프로세스가 성공적이었는지에 대한 결정이 이루어진다. 일 예에서, 성공적이지 않은 동기화 프로세스는, 네트워크 장치에서의 데이터베이스 실패, 메모리 공간을 생성하기 위한 톰스토닝된 아이템들의 제거(purging) 또는 무선 장치가 긴 시간 기간 동안 무선 네트워크에 연결되지 않는 것과 같은, 무선 장치가 전체 동기화를 수행하도록 요청할 수 있는 다른 이유를 포함하나 이에 한정되지는 않는 다양한 이유들의 결과일 수 있다. 만약 동기화가 성공적이지 않으면, 이벤트(750)에서, 동기화 에러 메시지가 생성되며, 이벤트(760)에서, 동기화 에러 메시지가 요청하는 무선 장치로 전달된다.
만약 동기화 프로세스가 성공적이라고 결정되면, 이벤트(770)에서, 현재의 네트워크 장치 데이터세트 버전 번호, 동기화 상태 표시자, 및 만약 적용가능하면 네트워크 장치 변경 리스트를 포함하는, 동기화 확인 메시지가 생성된다. 이벤트(780)에서, 동기화 확인 메시지가 요청하는 무선 장치로 전달된다.
만약 이벤트(610)에서, 동기화 요청 메시지가 무선 장치 변경 리스트를 포함하지 않다는 결정이 이루어지면, 이벤트(790)에서, 무선 장치 데이터세트 버전 번호가 현재의 네트워크 장치 데이터세트 버전 번호와 상이하다는 것에 대한 결정이 이루어진다. 만약 무선 장치 데이터세트 버전 번호가 현재의 네트워크 장치 데이터세트 버전 번호와 상이하지 않으면, 이벤트(750)에서, 네트워크 장치는 현재의 네트워크 장치 데이터세트 버전 번호 및 동기화 상태 표시자를 포함하는 동기화 학인 메시지를 생성한다.
만약 무선 장치 데이터세트 버전 번호가 현재의 네트워크 장치 데이터세트 버전 번호와 상이하면, 이벤트(730)에서, 무선 정차는, 요청 메시지에서 표시되는 것처럼, 무선 장치의 버전 번호보다 크고, 요청 메시지를 수신하기 바로 이전에 네트워크 장치 데이터세트 버전 번호 까지인 버전 번호를 가지는 데이터 아이템들의 네트워크 장치 변경 리스트를 컴파일한다. 이벤트(740)에서, 동기화 프로세스가 성공적이었는지 여부에 대한 결정이 이루어진다. 만약 동기화가 성공적이지 않으면, 이벤트(750)에서, 동기화 에러 메시지는 생성되며, 그리고 이벤트(760)에서, 동기화 에러 메시지가 요청하는 무선 장치로 전달된다.
만약 동기화 프로세스가 성공적인 것으로 결정되면, 이벤트(770)에서, 현재의 네트워크 장치 데이터세트 버전 번호, 동기화 상태 표시자, 및 만약 적용가능하면 네트워크 장치 변경 리스트를 포함하는, 동기화 확인 메시지가 생성된다. 이벤트(780)에서, 동기화 확인 메시지가 요청하는 무선 장치로 전달된다.
여기서 설명된 실시예들과 연관되어 설명된 다양한 예시적인 로직들, 논리 블록들, 모듈들, 회로들은 범용 프로세서, 디지털 신호 처리기(DSP), 주문형 집적회로(ASIC), 필드 프로그래밍 가능한 게이트 어레이(FPGA), 또는 다른 프로그래밍 가능한 논리 장치, 이산 게이트 또는 트랜지스터 논리, 이산 하드웨어 컴포넌트들, 또는 여기서 설명된 기능들을 수행하기 위해 설계되는 이들의 임의의 조합으로 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적 실시예에서, 이러한 프로세서는 종래의 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수 있다. 프로세서는 또한 예를 들어, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서, 또는 이러한 구성들의 조합과 같은 계산 장치들의 조합으로서 구현될 수 있다. 추가적으로, 적어도 하나의 프로세서는 하나 이상의 위에서 설명된 단계들 및/또는 행동들을 수행하도록 구성가능한 하나 이상의 모듈들을 포함할 수 있다.
또한, 여기서 개시된 양상들 관련하여 설명된 방법 또는 알고리즘의 단계들 및/또는 행동들이 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들의 조합에 의해 직접 구현될 수 있다. 소프트웨어 모듈들은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드디스크, 휴대용 디스크, CD-ROM 또는 공지된 저장 매체의 임의의 형태로서 존재한다. 예시적인 저장 매체는 프로세서와 결합되어, 프로세서는 저장 매체로부터 정보를 판독하여 저장 매체에 정보를 기록한다. 대안적으로, 저장 매체는 프로세서의 구성요소일 수 있다. 또한, 이러한 프로세서 및 저장매체는 ASIC에 위치한다. 또한, ASIC은 사용자 단말에 위치할 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 단말에서 이산 컴포넌트로서 존재할 수 있다. 추가적으로, 몇몇 양상들에서, 방법 또는 알고리즘의 단계들 및/또는 행동들은 머신-판독가능 매체 및/또는 컴퓨터 판독가능 매체 상의 하나 또는 임의의 조합 또는 일 세트의 코드들 및/또는 명령들로서 존재할 수 있고, 이는 컴퓨터 프로그램 물건으로 통합될 수 있다.
앞서 설명된 설명들이 예시적인 양상들 및/또는 실시예들을 도시하지만, 첨부된 청구항들에 의해 정의되는 설명되는 양상들 및/또는 실시예들의 범위를 벗어나지 않고 다양한 변경들 및 변형들이 여기서 이루어질 수 있다. 또한, 설명된 실시예들의 엘리먼트들이 단수로서 설명되고 청구항으로 주장되더라도, 단수라고 명백하게 언급하는 제한이 없다면 복수로도 해석가능하다. 추가적으로, 임의의 양상 및/또는 실시예의 전부 또는 일부가 다르게 언급되지 않는다면, 임의의 다른 양상 및/또는 실시예의 전부 또는 일부를 이용하여 이용될 수 있다.
따라서, 네트워크 서버 또는 데이터베이스와 같은, 무선 장치상에서 그리고 네트워크 장치에서 저장되는 데이터세트들을 무선으로 동기화하기 위한 방법들, 장치들, 시스템들, 및 컴퓨터 프로그램 물건들에 대해 본 양상들이 제공된다. 설명한 것처럼, 본 양상들이 간략하고 효율적인 동기화 프로세스를 제공하고, 그에 의해 동기화가 무선 장치 및 네트워크 장치 사이의 무선 통신의 싱글 라운드-트립에서 완료될 수 있다. 싱글 라운드-트립 통신은 네트워크 리소스들의 적은 사용, 더 짧은 전체 동기화 사이클 시간들을 제공하고, 동기화 프로세스를 실패하게 하는 호 드롭들 등과 같은 무선 네트워크 실패들의 가능성을 줄인다. 추가적으로, 간략화 및 효율성이 네트워크 데이터세트가 무선 장치 데이터세트들에 독립적이도록 허용하는 동기화 프로세스를 생성함으로써 추가적으로 실현될 수 있으며, 즉 네트워크 서버가 전체 변화 히스토리를 요청할 수 없고 네트워크 서버가 무선 장치 데이터세트 버전을 알도록 요청할 수 없다. 본 양상은 또한 견고한 동기화 프로세스를 제공하여, 그 결과 통신 실패들이 데이터세트들의 전체 동기화를 구현하지 않고 동기화 프로세스의 재-적용을 허용한다.
많은 변형들 및 다른 양상들이 당해 기술분야에 속한 통상의 지식을 가진 자에게, 본 발명이 앞선 설명들 및 연관된 도면들에서 설명된 가르침들의 이익을 가지고 있음을 알릴 것이다. 따라서, 양상이 개시된 특정 양상들에 제한되지 않음을 이해해야 하면, 변형들 및 다른 양상들이 첨부되는 청구항들의 범위 내에서 포함되도록 의도된다. 특정 용어들이 여기서 사용되더라도, 그들은 원리적이고 설명적인 의도로 사용되었고, 제한하려는 목적으로 사용된 것은 아니다. 따라서, 설명된 양상들은 첨부되는 청구항들의 사상 및 범위 내에 속하는 모든 이러한 대체들, 변형들 및 수정들을 포함하도록 의도된다. 또한, 용어 "포함하다(include)"는 발명의 상세한 설명 또는 청구항들 중 어느 한곳에서 사용되고 있고, 이러한 용어는 "포함하다(comprising)"가 청구항에서 전이적인 단어로서 사용될 때 해석되는 것처럼 용어 "포함하다(comprising)"에 유사한 방식으로 포괄적으로 의도된다.

Claims (47)

  1. 무선 장치(device)상의 데이터세트의 동기화를 위한 방법으로서,
    현재의 무선 장치 데이터세트 버전 번호를 포함하는 데이터 아이템들의 데이터세트에 대한 동기화 요청 메시지를 생성하는 단계;
    네트워크 장치로 상기 동기화 요청 메시지를 무선으로 전달(communicate)하는 단계; 및
    상기 동기화 요청 메시지의 전달에 응답하여, 네트워크 장치 데이터세트 버전 번호를 포함하는 동기화 확인 메시지를 무선으로 수신하는 단계를 포함하며,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 상기 무선 장치와 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립(single round-trip)에 기반하여 동기화를 제공하도록 동작가능한,
    데이터세트의 동기화를 위한 방법.
  2. 제1항에 있어서,
    상기 동기화 요청 메시지를 생성하는 단계는:
    상기 무선 장치 데이터세트의 각각의 데이터 아이템에 대한 변경 표시자의 상태(status)를 검증(verify)하는 단계;
    변경을 표시하는 상기 아이템들 중 하나 이상의 데이터 아이템들에 대한 상기 변경 표시자에 기반하여 하나 이상의 변경된 데이터 아이템들을 포함하는 무선 장치 변경 리스트를 컴파일(compile)하는 단계; 및
    상기 동기화 요청 메시지에 상기 무선 장치 변경 리스트를 포함시키는 단계를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  3. 제1항에 있어서,
    만약 상기 확인 메시지에 있는 상기 네트워크 장치 데이터세트 버전 번호가 상기 현재의 무선 장치 버전 번호와 상이하다면, 상기 현재의 무선 장치 버전 번호를 상기 네트워크 장치 데이터세트 버전 번호로 변경하는 단계를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  4. 제1항에 있어서,
    상기 동기화 확인 메시지를 무선으로 수신하는 단계는,
    상기 네트워크 장치 데이터세트에 있는 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 변경 리스트를 수신하는 단계를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  5. 제4항에 있어서,
    상기 네트워크 장치 변경 리스트에 따라 상기 무선 장치 데이터세트를 변경하는 단계를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  6. 제1항에 있어서,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는, 라이트웨이트(lightweight), 어레이-지원(array-supporting), 데이터-상호교환 캐리어 프로토콜을 통해 전달되는,
    데이터세트의 동기화를 위한 방법.
  7. 제6항에 있어서,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 JSON(JavaScript Object Notation) 프로토콜을 통해 전달되는,
    데이터세트의 동기화를 위한 방법.
  8. 제1항에 있어서,
    상기 동기화 확인 메시지를 무선으로 수신하는 단계는,
    동기화 성공 표시자 및 동기화 실패 표시자를 포함하는 그룹으로부터 선택되는 동기화 상태 표시자를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  9. 제8항에 있어서,
    상기 동기화 실패 표시자를 포함하는 동기화 확인 메시지를 무선으로 수신하는 단계는,
    상기 동기화 실패 표시자에 기반하여 상기 무선 장치와 상기 네트워크 장치 사이의 풀(full) 동기화를 개시하는 단계를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  10. 제9항에 있어서,
    상기 현재의 무선 장치 데이터세트를 상기 네트워크 장치로 전달하는 단계, 상기 네트워크 장치 데이터세트를 수신하는 단계, 및 상기 현재의 무선 장치 데이터세트를 상기 네트워크 장치 데이터세트로 변경하는 단계를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  11. 데이터 아이템들의 데이터세트의 동기화를 위해 구성된 적어도 하나의 프로세서로서,
    현재의 무선 장치 데이터세트 버전 번호를 포함하는 데이터세트에 대한 동기화 요청 메시지를 생성하기 위한 제 1 모듈;
    네트워크 장치로 상기 동기화 요청 메시지를 무선으로 전달하기 위한 제 2 모듈;
    상기 동기화 요청 메시지의 전달에 응답하여, 네트워크 장치 데이터세트 버전 번호를 포함하는 동기화 확인 메시지를 무선으로 수신하기 위한 제 3 모듈을 포함하며,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 무선 장치와 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능한,
    데이터세트의 동기화를 위한 프로세서.
  12. 데이터 아이템들의 데이터세트의 동기화를 위한 컴퓨터-판독가능 매체로서,
    상기 컴퓨터-판독가능 매체는:
    컴퓨터로 하여금 현재의 무선 장치 데이터세트 버전 번호를 포함하는 데이터세트에 대한 동기화 요청 메시지를 생성하도록 하기 위한 적어도 하나의 명령;
    상기 컴퓨터로 하여금 네트워크 장치로 상기 동기화 요청 메시지를 무선으로 전달하도록 하기 위한 적어도 하나의 명령; 및
    상기 컴퓨터로 하여금, 상기 동기화 요청 메시지의 전달에 응답하여, 네트워크 장치 데이터세트 버전 번호를 포함하는 동기화 확인 메시지를 무선으로 수신하도록 하기 위한 적어도 하나의 명령을 포함하며,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 무선 장치와 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능한,
    컴퓨터-판독가능 매체.
  13. 장치로서,
    현재의 무선 장치 데이터세트 버전 번호를 포함하는 데이터 아이템들의 데이터세트에 대한 동기화 요청 메시지를 생성하기 위한 수단;
    네트워크 장치로 상기 동기화 요청 메시지를 무선으로 전달하기 위한 수단;
    상기 동기화 요청 메시지의 전달에 응답하여, 네트워크 장치 데이터세트 버전 번호를 포함하는 동기화 확인 메시지를 무선으로 수신하기 위한 수단을 포함하며,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 무선 장치와 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능한,
    장치.
  14. 무선 통신 장치로서,
    메모리 및 적어도 하나의 프로세서를 포함하는 컴퓨터 플랫폼;
    상기 메모리에 저장되고, 복수의 데이터 아이템들을 포함하는 데이터세트; 및
    상기 메모리에 저장되고, 상기 적어도 하나의 프로세서에 의해 실행가능하며, 그리고 현재의 무선 장치 데이터세트 버전 번호를 포함하는 데이터세트에 대한 동기화 요청 메시지를 생성하고, 네트워크 장치로 상기 동기화 요청 메시지를 전달하며, 상기 동기화 요청 메시지의 전달에 응답하여 네트워크 장치 데이터세트 버전 번호를 포함하는 동기화 확인 메시지를 수신하도록 동작가능한 동기화 모듈을 포함하며,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 무선 장치와 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능한,
    장치.
  15. 제14항에 있어서,
    상기 동기화 모듈은,
    상기 무선 장치 데이터세트의 각각의 데이터 아이템에 대한 변경 표시자의 상태를 검증하고, 상태 변경 표시자에 기반하여 하나 이상의 변경된 데이터 아이템들을 포함하는 무선 장치 변경 리스트를 컴파일하며, 그리고 상기 동기화 요청 메시지에 상기 무선 장치 변경 리스트를 포함시키도록 추가적으로 동작가능한,
    장치.
  16. 제14항에 있어서,
    상기 동기화 모듈은,
    만약 상기 확인 메시지에 있는 상기 네트워크 장치 데이터세트 버전 번호가 상기 현재의 무선 장치 버전 번호와 상이하다면, 상기 현재의 무선 장치 버전 번호를 상기 네트워크 장치 데이터세트 버전 번호로 변경하도록 추가적으로 동작가능한,
    장치.
  17. 제14항에 있어서,
    상기 동기화 모듈은,
    상기 네트워크 장치 데이터세트에 있는 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 변경 리스트를 포함하는 동기화 확인 메시지를 무선으로 수신하도록 추가적으로 동작가능한,
    장치.
  18. 제17항에 있어서,
    상기 동기화 모듈은,
    상기 네트워크 장치 변경 리스트에 따라 상기 무선 장치 데이터세트를 변경하도록 추가적으로 동작가능한,
    장치.
  19. 제14항에 있어서,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 라이트웨이트, 어레이-지원, 데이터-상호교환 캐리어 프로토콜을 통해 전달되는,
    장치.
  20. 제19항에 있어서,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 JSON 프로토콜을 통해 전달되는,
    장치.
  21. 제14항에 있어서,
    상기 동기화 확인 메시지는 동기화 성공 표시자 및 동기화 실패 표시자를 포함하는 그룹으로부터 선택되는 동기화 상태 표시자를 더 포함하는,
    장치.
  22. 제21항에 있어서,
    상기 동기화 상태 표시자를 포함하는 동기화 확인 메시지를 무선으로 수신하도록 동작가능한 상기 동기화 모듈은, 상기 동기화 실패 표시자에 기반하여 상기 무선 장치와 상기 네트워크 장치 사이의 풀 동기화를 개시하도록 추가적으로 동작가능한,
    장치.
  23. 제22항에 있어서,
    상기 동기화 모듈은,
    상기 현재의 무선 장치 데이터세트를 상기 네트워크 장치로 전달하고, 상기 현재의 무선 통신 데이터세트에 응답하여 상기 네트워크 장치 데이터세트를 수신하며, 그리고 상기 현재의 무선 장치 데이터세트를 상기 네트워크 장치 데이터세트로 변경하도록 추가적으로 동작가능한,
    장치.
  24. 네트워크 장치상의 데이터 아이템들의 데이터세트의 동기화를 위한 방법으로서,
    무선 장치 데이터세트 버전 번호를 포함하는 동기화 요청 메시지를 네트워크 장치에서 무선으로 수신하는 단계;
    현재의 네트워크 장치 데이터세트 버전 번호와 상기 무선 장치 데이터세트 버전 번호를 비교하는 단계;
    만약 상기 비교가 상기 무선 장치 데이터세트 버전 번호가 상기 네트워크 장치 데이터세트 버전 번호와 상이하다고 표시하면, 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 데이터세트 변경 리스트를 컴파일하는 단계;
    상기 현재의 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하는 단계; 및
    상기 동기화 확인 메시지를 무선으로 전달하는 단계를 포함하고,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 무선 장치와 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능한,
    데이터세트의 동기화를 위한 방법.
  25. 제24항에 있어서,
    상기 동기화 요청 메시지를 수신하는 단계는,
    하나 이상의 변경된 데이터 아이템들을 포함하는 무선 장치 데이터세트 변경 리스트를 수신하는 단계를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  26. 제25항에 있어서,
    상기 무선 장치 데이터세트 변경 리스트에 포함되는 상기 변경된 데이터 아이템들을 상기 네트워크 장치 데이터세트에서 변경하는 단계를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  27. 제25항에 있어서,
    상기 변경된 데이터 아이템들을 상기 네트워크 장치 데이터세트에서 변경하는 단계는,
    상기 네트워크 장치 데이터세트로부터 상기 데이터 아이템을 삭제하지 않고 상기 무선 장치 데이터세트 상에서 삭제된 데이터 아이템들에 대한 삭제 표시자를 제공하는 단계를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  28. 제26항에 있어서,
    상기 데이터 아이템의 상기 변경에 기반하여 데이터 아이템 버전 번호를 업데이트하는 단계, 및 가장 높게 시퀀싱되고 변경된 데이터 아이템의 상기 버전 번호를 반영하기 위해 상기 네트워크 장치 데이터세트 버전 번호를 업데이트하는 단계를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  29. 제28항에 있어서,
    상기 동기화 확인 메시지를 생성하는 단계는,
    상기 업데이트된 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하는 단계를 더 포함하는,
    데이터세트의 동기화를 위한 방법.
  30. 제24항에 있어서,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 라이트웨이트, 어레이-지원, 데이터-상호교환 캐리어 프로토콜을 통해 전달되는,
    데이터세트의 동기화를 위한 방법.
  31. 제30항에 있어서,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 JSON(JavaScript Object Notation) 프로토콜을 통해 전달되는,
    데이터세트의 동기화를 위한 방법.
  32. 제24항에 있어서,
    상기 네트워크 장치는 상기 동기화 요청 메시지를 수신하기 전에 상기 무선 장치 데이터세트 버전 번호를 알지 못하는,
    데이터세트의 동기화를 위한 방법.
  33. 데이터 아이템들의 데이터세트의 동기화를 위해 구성되는 적어도 하나의 프로세서로서,
    무선 장치 데이터세트 버전 번호를 포함하는 동기화 요청 메시지를 네트워크 장치에서 무선으로 수신하기 위한 제 1 모듈;
    현재의 네트워크 장치 데이터세트 버전 번호와 상기 무선 장치 데이터세트 버전 번호를 비교하기 위한 제 2 모듈;
    만약 상기 비교가 상기 무선 장치 데이터세트 버전 번호가 상기 네트워크 장치 데이터세트 버전 번호와 상이하다고 표시하면, 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 데이터세트 변경 리스트를 컴파일하기 위한 제 3 모듈;
    상기 현재의 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하기 위한 제 4 모듈; 및
    상기 동기화 확인 메시지를 무선으로 전달하기 위한 제 5 모듈을 포함하고,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 무선 장치와 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능한,
    데이터세트의 동기화를 위한 프로세서.
  34. 데이터 아이템들의 데이터세트의 동기화를 위한 컴퓨터-판독가능 매체로서,
    상기 컴퓨터-판독가능 매체는:
    컴퓨터로 하여금 무선 장치 데이터세트 버전 번호를 포함하는 동기화 요청 메시지를 네트워크 장치에서 무선으로 수신하도록 하기 위한 적어도 하나의 명령;
    상기 컴퓨터로 하여금 현재의 네트워크 장치 데이터세트 버전 번호와 상기 무선 장치 데이터세트 버전 번호를 비교하도록 하기 위한 적어도 하나의 명령;
    상기 컴퓨터로 하여금, 만약 상기 비교가 상기 무선 장치 데이터세트 버전 번호가 상기 네트워크 장치 데이터세트 버전 번호와 상이하다고 표시하면, 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 데이터세트 변경 리스트를 컴파일하도록 하기 위한 적어도 하나의 명령;
    상기 컴퓨터로 하여금 상기 현재의 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하도록 하기 위한 적어도 하나의 명령; 및
    상기 컴퓨터로 하여금 상기 동기화 확인 메시지를 무선으로 전달하도록 하기 위한 적어도 하나의 명령을 포함하고,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 무선 장치와 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능한,
    컴퓨터-판독가능 매체.
  35. 장치로서,
    무선 장치 데이터세트 버전 번호를 포함하는 동기화 요청 메시지를 네트워크 장치에서 무선으로 수신하기 위한 수단;
    현재의 네트워크 장치 데이터세트 버전 번호와 상기 무선 장치 데이터세트 버전 번호를 비교하기 위한 수단;
    만약 상기 비교가 상기 무선 장치 데이터세트 버전 번호가 상기 네트워크 장치 데이터세트 버전 번호와 상이하다고 표시하면, 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 데이터세트 변경 리스트를 컴파일하기 위한 수단;
    상기 현재의 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하기 위한 수단; 및
    상기 동기화 확인 메시지를 무선으로 전달하기 위한 수단을 포함하고,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 무선 장치와 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능한,
    장치.
  36. 네트워크 장치로서,
    메모리 및 적어도 하나의 프로세서를 포함하는 컴퓨터 플랫폼;
    상기 메모리에 저장되고, 복수의 데이터 아이템들을 포함하는 데이터세트; 및
    상기 메모리에 저장되고, 상기 적어도 하나의 프로세서에 의해 실행가능하며, 그리고 무선 장치 데이터세트 버전 번호를 포함하는 동기화 요청 메시지를 무선으로 수신하고, 현재의 네트워크 장치 데이터세트 버전 번호와 상기 무선 장치 데이터세트 버전 번호를 비교하고, 만약 상기 비교가 상기 무선 장치 데이터세트 버전 번호가 상기 네트워크 장치 데이터세트 버전 번호와 상이하다고 표시하면 하나 이상의 변경된 데이터 아이템들을 포함하는 네트워크 장치 데이터세트 변경 리스트를 컴파일하고, 상기 현재의 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하고, 그리고 상기 동기화 확인 메시지를 무선으로 전달하도록 동작가능한 동기화 모듈을 포함하며,
    상기 동기화 요청 메시지 및 상기 동기화 확인 메시지는 무선 장치와 상기 네트워크 장치 사이의 통신의 싱글 라운드-트립에 기반하여 동기화를 제공하도록 동작가능한,
    장치.
  37. 제36항에 있어서,
    상기 동기화 모듈은,
    하나 이상의 변경된 데이터 아이템들을 포함하는 무선 장치 데이터세트 변경 리스트를 포함하는 동기화 요청 메시지를 수신하도록 추가적으로 동작가능한,
    장치.
  38. 제37항에 있어서,
    상기 동기화 모듈은,
    상기 무선 장치 데이터세트 변경 리스트에 포함되는 상기 변경된 데이터 아이템들을 상기 네트워크 장치 데이터세트에서 변경하도록 추가적으로 동작가능한,
    장치.
  39. 제37항에 있어서,
    상기 동기화 모듈은,
    상기 네트워크 장치 데이터세트로부터 상기 데이터 아이템을 삭제하지 않고 상기 무선 장치 데이터세트 상에서 삭제된 데이터 아이템들에 대한 삭제 표시자를 제공하도록 추가적으로 동작가능한,
    장치.
  40. 제37항에 있어서,
    상기 동기화 모듈은,
    상기 데이터 아이템의 상기 변경에 기반하여 데이터 아이템 버전 번호를 업데이트하고, 그리고 가장 높게 시퀀싱되고 변경된 데이터 아이템의 상기 버전 번호를 반영하기 위해 상기 네트워크 장치 데이터세트 버전 번호를 업데이트하도록 추가적으로 동작가능한,
    장치.
  41. 제40항에 있어서,
    상기 동기화 모듈은,
    상기 업데이트된 네트워크 장치 데이터세트 버전 번호 및 임의의 컴파일된 네트워크 장치 데이터세트 변경 리스트를 포함하는 동기화 확인 메시지를 생성하도록 추가적으로 동작가능한,
    장치.
  42. 제36항에 있어서,
    상기 네트워크 장치는 상기 동기화 요청 메시지를 수신하기 전에 상기 무선 장치 데이터세트 버전 번호를 알지 못하는,
    장치.
  43. 제1항 또는 24항에 있어서,
    상기 네트워크 장치 데이터세트 버전 번호는 상기 네트워크 장치 데이터세트에 있는 데이터 아이템들의 가장 높은 데이터 아이템 버전 번호에 대응하고, 각각의 데이터 아이템 버전 번호는 고유하며, 상기 네트워크 장치에 순차적으로(sequentially) 할당되며, 그리고 상기 현재의 무선 장치 데이터세트 버전 번호는 상기 네트워크 장치와의 마지막 데이터 동기화로부터 상기 무선 장치에 의해 수신된 상기 네트워크 장치 데이터세트 버전 번호에 대응하는,
    데이터세트의 동기화를 위한 방법.
  44. 제11항 또는 제 33항에 있어서,
    상기 네트워크 장치 데이터세트 버전 번호는 상기 네트워크 장치 데이터세트에 있는 데이터 아이템들의 가장 높은 데이터 아이템 버전 번호에 대응하고, 각각의 데이터 아이템 버전 번호는 고유하며, 상기 네트워크 장치에 순차적으로 할당되며, 그리고 상기 현재의 무선 장치 데이터세트 버전 번호는 상기 네트워크 장치와의 마지막 데이터 동기화로부터 상기 무선 장치에 의해 수신된 상기 네트워크 장치 데이터세트 버전 번호에 대응하는,
    데이터세트의 동기화를 위한 프로세서.
  45. 제12항 또는 제34항에 있어서,
    상기 네트워크 장치 데이터세트 버전 번호는 상기 네트워크 장치 데이터세트에 있는 데이터 아이템들의 가장 높은 데이터 아이템 버전 번호에 대응하고, 각각의 데이터 아이템 버전 번호는 고유하며, 상기 네트워크 장치에 순차적으로 할당되며, 그리고 상기 현재의 무선 장치 데이터세트 버전 번호는 상기 네트워크 장치와의 마지막 데이터 동기화로부터 상기 무선 장치에 의해 수신된 상기 네트워크 장치 데이터세트 버전 번호에 대응하는,
    컴퓨터-판독가능 매체.
  46. 제13항 또는 제35항에 있어서,
    상기 네트워크 장치 데이터세트 버전 번호는 상기 네트워크 장치 데이터세트에 있는 데이터 아이템들의 가장 높은 데이터 아이템 버전 번호에 대응하고, 각각의 데이터 아이템 버전 번호는 고유하며, 상기 네트워크 장치에 순차적으로 할당되며, 그리고 상기 현재의 무선 장치 데이터세트 버전 번호는 상기 네트워크 장치와의 마지막 데이터 동기화로부터 상기 무선 장치에 의해 수신된 상기 네트워크 장치 데이터세트 버전 번호에 대응하는,
    장치.
  47. 제14항 또는 제36항에 있어서,
    상기 네트워크 장치 데이터세트 버전 번호는 상기 네트워크 장치 데이터세트에 있는 데이터 아이템들의 가장 높은 데이터 아이템 버전 번호에 대응하고, 각각의 데이터 아이템 버전 번호는 고유하며, 상기 네트워크 장치에 순차적으로 할당되며, 그리고 상기 현재의 무선 장치 데이터세트 버전 번호는 상기 네트워크 장치와의 마지막 데이터 동기화로부터 상기 무선 장치에 의해 수신된 상기 네트워크 장치 데이터세트 버전 번호에 대응하는,
    장치.
KR1020107001246A 2007-06-19 2008-06-19 무선 환경에서 데이터세트 동기화를 위한 방법들 및 장치 KR101134214B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US94508807P 2007-06-19 2007-06-19
US60/945,088 2007-06-19
PCT/US2008/067565 WO2008157735A2 (en) 2007-06-19 2008-06-19 Methods and apparatus for dataset synchronization in a wireless environment

Publications (2)

Publication Number Publication Date
KR20100031623A KR20100031623A (ko) 2010-03-23
KR101134214B1 true KR101134214B1 (ko) 2012-04-09

Family

ID=40045493

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107001246A KR101134214B1 (ko) 2007-06-19 2008-06-19 무선 환경에서 데이터세트 동기화를 위한 방법들 및 장치

Country Status (9)

Country Link
US (1) US9143560B2 (ko)
EP (1) EP2163075A2 (ko)
JP (1) JP5065482B2 (ko)
KR (1) KR101134214B1 (ko)
CN (1) CN101743736B (ko)
BR (1) BRPI0812543A2 (ko)
CA (1) CA2687883C (ko)
RU (1) RU2438263C2 (ko)
WO (1) WO2008157735A2 (ko)

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058879A1 (en) 2002-01-08 2003-07-17 Seven Networks, Inc. Secure transport for mobile communication network
US9134989B2 (en) 2002-01-31 2015-09-15 Qualcomm Incorporated System and method for updating dataset versions resident on a wireless device
US20040068724A1 (en) * 2002-08-30 2004-04-08 Gardner Richard Wayne Server processing for updating dataset versions resident on a wireless device
US9092286B2 (en) 2002-12-20 2015-07-28 Qualcomm Incorporated System to automatically process components on a device
US8468126B2 (en) * 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US7853563B2 (en) 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
US7917468B2 (en) 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
US8626146B2 (en) 2003-10-29 2014-01-07 Qualcomm Incorporated Method, software and apparatus for performing actions on a wireless device using action lists and versioning
US8010082B2 (en) * 2004-10-20 2011-08-30 Seven Networks, Inc. Flexible billing architecture
US7441271B2 (en) 2004-10-20 2008-10-21 Seven Networks Method and apparatus for intercepting events in a communication system
US7706781B2 (en) 2004-11-22 2010-04-27 Seven Networks International Oy Data security in a mobile e-mail service
FI117152B (fi) 2004-12-03 2006-06-30 Seven Networks Internat Oy Sähköpostiasetusten käyttöönotto matkaviestimelle
US7752633B1 (en) 2005-03-14 2010-07-06 Seven Networks, Inc. Cross-platform event engine
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US7769395B2 (en) 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8793305B2 (en) * 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
CN101516131B (zh) * 2008-02-18 2012-04-04 华为技术有限公司 一种数据同步的方法、系统和装置
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US8078645B2 (en) * 2008-07-09 2011-12-13 Yahoo! Inc. Operations on multi-level nested data structure
US8135670B2 (en) * 2008-07-22 2012-03-13 International Business Machines Corporation Embedded change logging for data synchronization
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US8832319B2 (en) 2008-11-18 2014-09-09 Amazon Technologies, Inc. Synchronization of digital content
US20100179980A1 (en) * 2009-01-14 2010-07-15 Movidilo S.L. Cache system for mobile communications devices
US8266102B2 (en) 2010-05-26 2012-09-11 International Business Machines Corporation Synchronization of sequential access storage components with backup catalog
US9043433B2 (en) 2010-07-26 2015-05-26 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
CA2857458A1 (en) 2010-07-26 2012-02-09 Michael Luna Mobile application traffic optimization
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
GB2495877B (en) 2010-07-26 2013-10-02 Seven Networks Inc Distributed implementation of dynamic wireless traffic policy
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
EP2635973A4 (en) 2010-11-01 2014-01-15 Seven Networks Inc TO THE BEHAVIOR OF A MOBILE APPLICATION AND INTERMEDIATE STORAGE TAILORED TO NETWORK CONDITIONS
WO2012060997A2 (en) 2010-11-01 2012-05-10 Michael Luna Application and network-based long poll request detection and cacheability assessment therefor
US8326985B2 (en) 2010-11-01 2012-12-04 Seven Networks, Inc. Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US8190701B2 (en) 2010-11-01 2012-05-29 Seven Networks, Inc. Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
CN103404193B (zh) 2010-11-22 2018-06-05 七网络有限责任公司 调校数据传输以优化为通过无线网络的传输建立的连接
EP2636268B1 (en) 2010-11-22 2019-02-27 Seven Networks, LLC Optimization of resource polling intervals to satisfy mobile device requests
US9325662B2 (en) 2011-01-07 2016-04-26 Seven Networks, Llc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
EP2700020A4 (en) 2011-04-19 2015-01-07 Seven Networks Inc SHARING DEVICE RESOURCES FOR NETWORK RESOURCE CONSERVATION
US8621075B2 (en) 2011-04-27 2013-12-31 Seven Metworks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
GB2504037B (en) 2011-04-27 2014-12-24 Seven Networks Inc Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources
US20120317234A1 (en) * 2011-06-09 2012-12-13 International Business Machines Corporation Managing data access in mobile devices
EP2737742A4 (en) 2011-07-27 2015-01-28 Seven Networks Inc AUTOMATIC PRODUCTION AND DISTRIBUTION OF GUIDELINES INFORMATION ON MOBILE MOBILE TRANSPORT IN A WIRELESS NETWORK
TWI439873B (zh) * 2011-08-08 2014-06-01 Dimerco Express Taiwan Corp Data synchronization method
CN102970314A (zh) * 2011-08-29 2013-03-13 中菲行航空货运承揽股份有限公司 数据同步方法
US20130097116A1 (en) * 2011-10-17 2013-04-18 Research In Motion Limited Synchronization method and associated apparatus
WO2013069946A1 (ko) * 2011-11-13 2013-05-16 엘지전자 주식회사 제어 장치, 제어 타겟 장치 및 이들의 컨텐트 정보 전송 방법
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
WO2013086214A1 (en) 2011-12-06 2013-06-13 Seven Networks, Inc. A system of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
GB2498064A (en) 2011-12-07 2013-07-03 Seven Networks Inc Distributed content caching mechanism using a network operator proxy
EP2792188B1 (en) 2011-12-14 2019-03-20 Seven Networks, LLC Mobile network reporting and usage analytics system and method using aggregation of data in a distributed traffic optimization system
US8861354B2 (en) 2011-12-14 2014-10-14 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US9832095B2 (en) 2011-12-14 2017-11-28 Seven Networks, Llc Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
EP2801236A4 (en) 2012-01-05 2015-10-21 Seven Networks Inc DETECTION AND MANAGEMENT OF USER INTERACTIONS WITH FRONT PANEL APPLICATIONS ON A MOBILE DEVICE IN DISTRIBUTED CACHE STORES
US9203864B2 (en) 2012-02-02 2015-12-01 Seven Networks, Llc Dynamic categorization of applications for network access in a mobile network
US9326189B2 (en) 2012-02-03 2016-04-26 Seven Networks, Llc User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US20130268656A1 (en) 2012-04-10 2013-10-10 Seven Networks, Inc. Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network
US9990378B2 (en) 2012-06-27 2018-06-05 Microsoft Technology Licensing, Llc Opportunistic clearing of sync states associated with a database
WO2014011216A1 (en) 2012-07-13 2014-01-16 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9542379B1 (en) 2012-09-19 2017-01-10 Amazon Technologies, Inc. Synchronizing electronic publications between user devices
US8635373B1 (en) * 2012-09-22 2014-01-21 Nest Labs, Inc. Subscription-Notification mechanisms for synchronization of distributed states
US10425471B2 (en) 2012-10-02 2019-09-24 Razer (Asia-Pacific) Pte. Ltd. Multi-tasker
US8977723B2 (en) 2012-10-02 2015-03-10 Nextbit Systems Inc. Cloud based application fragmentation
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9717985B2 (en) 2012-10-02 2017-08-01 Razer (Asia-Pacific) Pte. Ltd. Fragment-based mobile device application streaming utilizing crowd-sourcing
US9747000B2 (en) 2012-10-02 2017-08-29 Razer (Asia-Pacific) Pte. Ltd. Launching applications on an electronic device
US9776078B2 (en) 2012-10-02 2017-10-03 Razer (Asia-Pacific) Pte. Ltd. Application state backup and restoration across multiple devices
US9112885B2 (en) 2012-10-02 2015-08-18 Nextbit Systems Inc. Interactive multi-tasker
US8892693B2 (en) 2012-10-02 2014-11-18 Nextbit Systems Inc. Enabling fragment-based mobile device application streaming
US9600552B2 (en) 2012-10-02 2017-03-21 Nextbit Systems Inc. Proximity based application state synchronization
US9654556B2 (en) 2012-10-02 2017-05-16 Razer (Asia-Pacific) Pte. Ltd. Managing applications on an electronic device
US9268655B2 (en) 2012-10-02 2016-02-23 Nextbit Systems Inc. Interface for resolving synchronization conflicts of application states
US9210203B2 (en) 2012-10-02 2015-12-08 Nextbit Systems Inc. Resource based mobile device application streaming
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US20140177497A1 (en) 2012-12-20 2014-06-26 Seven Networks, Inc. Management of mobile device radio state promotion and demotion
US9424125B2 (en) 2013-01-16 2016-08-23 Google Inc. Consistent, disk-backed arrays
US9197700B2 (en) * 2013-01-18 2015-11-24 Apple Inc. Keychain syncing
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US8954611B2 (en) 2013-03-21 2015-02-10 Nextbit Systems Inc. Mechanism for sharing states of applications and devices across different user profiles
US10123189B2 (en) 2013-03-21 2018-11-06 Razer (Asia-Pacific) Pte. Ltd. Electronic device system restoration by tapping mechanism
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
USD768162S1 (en) 2013-09-30 2016-10-04 Nextbit Systems Inc. Display screen or portion thereof with graphical user interface
CN103873567B (zh) * 2014-03-03 2018-09-04 北京智谷睿拓技术服务有限公司 基于任务的数据传输方法及数据传输装置
RU2643429C2 (ru) * 2014-03-31 2018-02-01 Общество С Ограниченной Ответственностью "Яндекс" Способ управления синхронизацией файлов (варианты), электронное устройство (варианты) и машиночитаемый носитель
EP4057156A1 (en) * 2014-06-24 2022-09-14 Google LLC Processing mutations for a remote database
US20150379310A1 (en) * 2014-06-27 2015-12-31 Kabushiki Kaisha Toshiba Electronic Apparatus, Control Method and Storage Medium
US9742839B2 (en) * 2014-09-12 2017-08-22 Sonos, Inc. Cloud queue item removal
CN104394195B (zh) * 2014-10-31 2018-05-11 杭州华为企业通信技术有限公司 数据更新方法及装置
US10120765B1 (en) 2014-12-19 2018-11-06 EMC IP Holding Company LLC Restore process using incremental inversion
US10095710B1 (en) 2014-12-19 2018-10-09 EMC IP Holding Company LLC Presenting cloud based storage as a virtual synthetic
US10235463B1 (en) 2014-12-19 2019-03-19 EMC IP Holding Company LLC Restore request and data assembly processes
US9753814B1 (en) * 2014-12-19 2017-09-05 EMC IP Holding Company LLC Application level support for selectively accessing files in cloud-based storage
US10095707B1 (en) 2014-12-19 2018-10-09 EMC IP Holding Company LLC Nearline cloud storage based on FUSE framework
US9992258B2 (en) * 2015-01-13 2018-06-05 Whatsapp Inc. Techniques for managing a remote web client from an application on a mobile device
JP6748411B2 (ja) * 2015-08-31 2020-09-02 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
US10250437B2 (en) * 2015-10-29 2019-04-02 Arista Networks, Inc. Method and system for configuring network devices
US10740297B2 (en) * 2015-12-17 2020-08-11 Box, Inc. Adaptive tool selection for conflict resolution in a multi-session collaboration setting
CN106131137A (zh) * 2016-06-26 2016-11-16 乐视控股(北京)有限公司 数据同步方法、系统及用于数据同步的用户终端和服务端
CN106230927A (zh) * 2016-07-29 2016-12-14 努比亚技术有限公司 联系人同步方法、装置及系统
US10825266B2 (en) * 2017-01-10 2020-11-03 Cummins Inc. Wireless ECU configuration updating
CN110915223B (zh) * 2017-07-21 2022-10-21 索尼公司 发送设备、发送方法、接收设备、接收方法和程序
WO2019039958A1 (ru) * 2017-08-25 2019-02-28 Константин Андреевич МАЛЫШЕВ Способ описания составного типа данных
KR20210038207A (ko) * 2019-09-30 2021-04-07 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 로그인 기반 장치 데이터 동기화
US12007951B2 (en) * 2021-12-21 2024-06-11 Amadeus S.A.S., Sophia Antipolis Devices, system and method for synchronizing changes, deletions or additions to fields at databases

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010048728A1 (en) 2000-02-02 2001-12-06 Luosheng Peng Apparatus and methods for providing data synchronization by facilitating data synchronization system design
WO2003083667A1 (en) 2002-03-29 2003-10-09 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a data service

Family Cites Families (192)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155847A (en) 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5473772A (en) 1991-04-02 1995-12-05 International Business Machines Corporation Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
JPH03504175A (ja) 1989-08-03 1991-09-12 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン データ処理ネツトワーク
JPH08106393A (ja) 1994-10-06 1996-04-23 Matsushita Electric Ind Co Ltd 携帯端末システム
US5761618A (en) 1994-12-22 1998-06-02 Bell Atlantic Mobile Systems, Inc. Updating technique for downloading new system identification (SID) list into a handset
US5612961A (en) * 1995-04-27 1997-03-18 International Business Machines Corporation Method and system for verification of the baud rate for an asynchronous serial device residing within a data processing system
US5612682A (en) 1995-05-30 1997-03-18 Motorola, Inc. Method and apparatus for controlling utilization of a process added to a portable communication device
FI955188A (fi) 1995-10-30 1997-06-24 Nokia Telecommunications Oy Matkaviestimen ohjelmiston ylläpito
US6748209B2 (en) 1995-10-30 2004-06-08 At&T Wireless Services, Inc. Method and apparatus for storing activation data in a cellular telephone
DE19543843C2 (de) 1995-11-24 2001-02-08 Acer Peripherals Inc Verfahren zur Aktualisierung der Software in einem mikrocomputergestützten Telefon
US5845077A (en) 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US5920821A (en) 1995-12-04 1999-07-06 Bell Atlantic Network Services, Inc. Use of cellular digital packet data (CDPD) communications to convey system identification list data to roaming cellular subscriber stations
WO1997029606A1 (en) 1996-02-12 1997-08-14 British Telecommunications Public Limited Company Telephone system
US6074434A (en) 1996-06-07 2000-06-13 International Business Machines Corporation Selection of code updates, data updates or new data for client
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
JPH1021061A (ja) 1996-07-05 1998-01-23 Nec Corp クライアントソフトウェア自動バージョンアップシステム
JPH1049354A (ja) 1996-08-05 1998-02-20 Fuji Xerox Co Ltd 情報処理システム
US6643506B1 (en) 1996-08-07 2003-11-04 Telxon Corporation Wireless software upgrades with version control
US5848064A (en) 1996-08-07 1998-12-08 Telxon Corporation Wireless software upgrades with version control
US6308061B1 (en) 1996-08-07 2001-10-23 Telxon Corporation Wireless software upgrades with version control
US6006034A (en) 1996-09-05 1999-12-21 Open Software Associates, Ltd. Systems and methods for automatic application version upgrading and maintenance
US5926624A (en) 1996-09-12 1999-07-20 Audible, Inc. Digital information library and delivery system with logic for generating files targeted to the playback device
GB9623298D0 (en) 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US6799037B1 (en) 1996-12-12 2004-09-28 Verizon Airfone Inc. Method and apparatus for communication with a mobile unit
US6009274A (en) 1996-12-13 1999-12-28 3Com Corporation Method and apparatus for automatically updating software components on end systems over a network
US6564048B1 (en) 1996-12-18 2003-05-13 Sony Corporation Radio communication system and method and mobile communication terminal device
US5995756A (en) 1997-02-14 1999-11-30 Inprise Corporation System for internet-based delivery of computer applications
US6023620A (en) 1997-02-26 2000-02-08 Telefonaktiebolaget Lm Ecrisson Method for downloading control software to a cellular telephone
DE19708021C1 (de) * 1997-02-27 1998-08-13 Siemens Ag Verfahren zur Regelung eines Zugriffs von Rechnern auf Daten eines zentralen Rechners
US6314565B1 (en) 1997-05-19 2001-11-06 Intervu, Inc. System and method for automated identification, retrieval, and installation of multimedia software components
US5913213A (en) * 1997-06-16 1999-06-15 Telefonaktiebolaget L M Ericsson Lingering locks for replicated data objects
TW503368B (en) 1997-06-30 2002-09-21 Inst Information Industry Automatic software version updating method
EP0907285A1 (en) 1997-10-03 1999-04-07 CANAL+ Société Anonyme Downloading data
JPH11110197A (ja) 1997-10-06 1999-04-23 Sanyo Electric Co Ltd ソフトウェア管理装置
KR100258969B1 (ko) 1997-11-20 2000-06-15 윤종용 무선 통신기기의 펌웨어 업그레이드 방법 및 기지국에서의펌웨어 업그레이드 지원방법
US6151708A (en) 1997-12-19 2000-11-21 Microsoft Corporation Determining program update availability via set intersection over a sub-optical pathway
GB2333864B (en) 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
WO1999045465A1 (en) 1998-03-03 1999-09-10 Siebel Systems, Inc. Method, system, apparatus and program product for distribution and instantiation of software upgrades
US7080371B1 (en) 1998-03-03 2006-07-18 Siebel Systems, Inc. Method, system, apparatus and program product for distribution and instantiation of software upgrades
JPH11331937A (ja) 1998-03-09 1999-11-30 Sony Corp 情報システム
US6167567A (en) 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
EP0959635A1 (en) 1998-05-20 1999-11-24 Alcatel Connectionless downloading of software to wireless terminals
DE69931692T2 (de) 1998-05-27 2007-05-31 Nec Corp. Funkkommunikationsgerät mit Aktualisierungsmitteln eines Dienstenmenüs mit Wahlinformation
US6735625B1 (en) 1998-05-29 2004-05-11 Cisco Technology, Inc. System and method for automatically determining whether a product is compatible with a physical device in a network
US6272333B1 (en) 1998-06-12 2001-08-07 Motorola, Inc. Method and apparatus in a wireless communication system for controlling a delivery of data
US6381742B2 (en) 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6272677B1 (en) 1998-08-28 2001-08-07 International Business Machines Corporation Method and system for automatic detection and distribution of code version updates
US6418554B1 (en) 1998-09-21 2002-07-09 Microsoft Corporation Software implementation installer mechanism
JP2000132397A (ja) 1998-10-22 2000-05-12 Hitachi Ltd クライアントとサーバおよびそれらを用いたソフトウェア配布システム
JP2000132355A (ja) 1998-10-28 2000-05-12 Fujitsu Ltd 情報処理装置及び情報処理方法並びにコンピュータ読み取り可能な記録媒体
US6590881B1 (en) * 1998-12-04 2003-07-08 Qualcomm, Incorporated Method and apparatus for providing wireless communication system synchronization
AU763524B2 (en) 1999-03-02 2003-07-24 Flexera Software Llc Data file synchronisation
US6735766B1 (en) 1999-03-03 2004-05-11 Microsoft Corporation Method and computer-readable medium for installing an upgrade to an application program
JP2000276335A (ja) 1999-03-29 2000-10-06 Nec Soft Ltd プログラム自動更新システム
JP3254434B2 (ja) 1999-04-13 2002-02-04 三菱電機株式会社 データ通信装置
JP4159750B2 (ja) 1999-05-14 2008-10-01 富士通株式会社 分散計算機システム及びメンテナンスデータ適用方法
US6675382B1 (en) 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
US6381618B1 (en) 1999-06-17 2002-04-30 International Business Machines Corporation Method and apparatus for autosynchronizing distributed versions of documents
US6966060B1 (en) 1999-07-02 2005-11-15 Microsoft Corporation Method and system for remote client installation
JP2001043073A (ja) 1999-08-02 2001-02-16 Nippon Telegr & Teleph Corp <Ntt> 通信装置のソフトウェア変更方法及び通信装置
JP3562393B2 (ja) 1999-08-11 2004-09-08 日本電気株式会社 移動通信システム及びそれに用いるプログラムダウンロード方法
JP3669619B2 (ja) 1999-09-06 2005-07-13 富士通株式会社 無線端末装置のソフトウェア更新方法及びその装置
JP2001075785A (ja) 1999-09-09 2001-03-23 Nec Corp データ更新システム
US6493871B1 (en) 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
US6742025B2 (en) 1999-09-30 2004-05-25 International Business Machines Corp. System and method for server managed modification of operating system data stored within a network device
JP4501185B2 (ja) 1999-09-30 2010-07-14 セイコーエプソン株式会社 サーバシステムおよび端末
TW448404B (en) 1999-10-28 2001-08-01 Inventec Corp Intellectualized method for installing hardware
US6754894B1 (en) 1999-12-03 2004-06-22 Command Audio Corporation Wireless software and configuration parameter modification for mobile electronic devices
US6816944B2 (en) 2000-02-02 2004-11-09 Innopath Software Apparatus and methods for providing coordinated and personalized application and data management for resource-limited mobile devices
JP2001223799A (ja) 2000-02-10 2001-08-17 Nec Corp 移動体通信システムおよびプログラム伝送方法
JP4479040B2 (ja) 2000-03-07 2010-06-09 ソニー株式会社 通信装置及び通信方法
JP2001256053A (ja) 2000-03-09 2001-09-21 Toshiba Corp ソフトウェアモジュール転送方法、クライアントコンピュータ、及びクライアントサーバコンピュータシステム
US6560604B1 (en) 2000-03-10 2003-05-06 Aether Systems, Inc. System, method, and apparatus for automatically and dynamically updating options, features, and/or services available to a client device
JP2001268026A (ja) 2000-03-17 2001-09-28 Hitachi Ltd 情報送受信方法及びその装置
US6820088B1 (en) * 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
JP3833045B2 (ja) 2000-04-14 2006-10-11 シャープ株式会社 プログラムダウンロードシステム及びプログラムダウンロード方法
US6751794B1 (en) 2000-05-25 2004-06-15 Everdream Corporation Intelligent patch checker
JP2001337832A (ja) 2000-05-26 2001-12-07 Nec Corp 端末装置
US6725452B1 (en) 2000-06-01 2004-04-20 Aduoa, Inc. Method for resolving dependency conflicts among multiple operative entities within a computing environment
US7140013B2 (en) 2000-06-01 2006-11-21 Aduva, Inc. Component upgrading with dependency conflict resolution, knowledge based and rules
JP2003536292A (ja) 2000-06-09 2003-12-02 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 移動体通信ユニットへの支援を提供する方法及びシステム
JP2001356912A (ja) 2000-06-12 2001-12-26 Fujitsu Ltd ソフトウェアのインストール/アップデート/アンインストールシステム
GB2348721A (en) 2000-07-15 2000-10-11 Ideagen Software Limited Automated software or data updating in distributed computing system
KR20020009741A (ko) 2000-07-26 2002-02-02 황보영철 휴대전화단말기의 오퍼레이팅 기반환경 구축장치 및 이를이용한 응용프로그램의 무선 업그레이드 방법
US20040003266A1 (en) 2000-09-22 2004-01-01 Patchlink Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US6832373B2 (en) 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
AU2002232426A1 (en) * 2000-11-17 2002-05-27 Biftone Corporation System and method for updating and distributing information
US7149792B1 (en) 2000-11-20 2006-12-12 Axeda Corporation Device registration mechanism
WO2002044892A2 (en) 2000-11-28 2002-06-06 4Thpass Inc. Method and system for maintaining and distributing wireless applications
AU2002222461A1 (en) 2000-12-07 2002-06-18 Aduva Inc. Improved method for resolving dependency conflicts among multiple operative entities within a computing environment
US6959436B2 (en) 2000-12-15 2005-10-25 Innopath Software, Inc. Apparatus and methods for intelligently providing applications and data on a mobile device system
US7143406B2 (en) 2001-01-23 2006-11-28 Wildtangent, Inc. Asynchronous software update
JP2002215692A (ja) 2001-01-24 2002-08-02 Canon Inc 情報処理装置及び方法
US7127712B1 (en) 2001-02-14 2006-10-24 Oracle International Corporation System and method for providing a java code release infrastructure with granular code patching
JP2002278754A (ja) * 2001-03-15 2002-09-27 Toshiba Corp ソフトウェア部品ライブラリ管理システム、その方法およびソフトウェア部品ライブラリ管理プログラム
JP2002278767A (ja) 2001-03-16 2002-09-27 Kenwood Corp ネットワーク通信システム、サーバ装置、携帯端末、通信方法及びプログラム
US20040015953A1 (en) 2001-03-19 2004-01-22 Vincent Jonathan M. Automatically updating software components across network as needed
US8201162B2 (en) 2001-03-19 2012-06-12 Sony Corporation Software updating system, software updating method, and software updating program
US20020157090A1 (en) 2001-04-20 2002-10-24 Anton, Jr. Francis M. Automated updating of access points in a distributed network
US6957212B2 (en) 2001-04-24 2005-10-18 Innopath Software, Inc. Apparatus and methods for intelligently caching applications and data on a gateway
US20030023516A1 (en) 2001-05-17 2003-01-30 Sharrow Sherry L. Inventory management database
US20020177437A1 (en) 2001-05-23 2002-11-28 David Chesavage System and method for maintaining a distributed object system
US7178141B2 (en) 2001-07-30 2007-02-13 International Business Machines Corporation Method and system for identifying compatibility between firmware images
US7243163B1 (en) * 2001-08-07 2007-07-10 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a messaging system
US7962622B2 (en) 2001-08-07 2011-06-14 Motorola Mobility, Inc. System and method for providing provisioning and upgrade services for a wireless device
KR100557022B1 (ko) 2001-10-06 2006-03-03 주식회사 비즈모델라인 무선 바이러스 차단 방법 및 시스템
US20030078036A1 (en) 2001-10-19 2003-04-24 Yuan-Jung Chang Device and method for automatically installing software by wireless identification
KR20030033396A (ko) 2001-10-22 2003-05-01 주식회사 지트랜코리아 무선 단말기의 업그레이드 방법
US20030100297A1 (en) 2001-11-27 2003-05-29 Riordan Kenneth B. Method of software configuration assurance in programmable terminal devices
US20030145315A1 (en) 2002-01-23 2003-07-31 Tuomo Aro Exchange of data between components of distributed software having different versions of software
US9134989B2 (en) 2002-01-31 2015-09-15 Qualcomm Incorporated System and method for updating dataset versions resident on a wireless device
US20070169073A1 (en) 2002-04-12 2007-07-19 O'neill Patrick Update package generation and distribution network
US7281245B2 (en) 2002-06-05 2007-10-09 Microsoft Corporation Mechanism for downloading software components from a remote source for use by a local software application
US8233893B2 (en) 2002-08-22 2012-07-31 Hewlett-Packard Development Company, L.P. Mobile handset update package generator that employs nodes technique
US20040068724A1 (en) 2002-08-30 2004-04-08 Gardner Richard Wayne Server processing for updating dataset versions resident on a wireless device
US7669197B1 (en) 2002-09-12 2010-02-23 Hewlett-Packard Development Company, L.P. Embedded system employing component architecture platform
US10176476B2 (en) 2005-10-06 2019-01-08 Mastercard Mobile Transactions Solutions, Inc. Secure ecosystem infrastructure enabling multiple types of electronic wallets in an ecosystem of issuers, service providers, and acquires of instruments
WO2004049314A2 (en) 2002-11-21 2004-06-10 Bitfone Corporation Update network with support for lifecycle management of update packages and mobile handsets
US20040117785A1 (en) 2002-12-13 2004-06-17 Samsung Electronics Co., Ltd. Component download manager for a wireless mobile station and method of operation
US20040188510A1 (en) 2002-12-20 2004-09-30 Sprigg Stephen A. System for registry-based automatic installation and component handling on a device
US9092286B2 (en) 2002-12-20 2015-07-28 Qualcomm Incorporated System to automatically process components on a device
US7149508B2 (en) 2003-02-05 2006-12-12 Samsung Electronics Co., Ltd. System and method for delta-based over-the-air software upgrades for a wireless mobile station
US20040230965A1 (en) * 2003-02-28 2004-11-18 Harri Okkonen Mobile handset network that facilitates interaction between a generic intelligent responsive agent and a service broker server
US20040181790A1 (en) 2003-03-12 2004-09-16 Herrick Joseph W. System and method for maintaining installed software compliance with build standards
US20040224674A1 (en) 2003-04-07 2004-11-11 O'farrell Robert System and method for context sensitive mobile data and software update
JP3987460B2 (ja) 2003-04-22 2007-10-10 株式会社日立コミュニケーションテクノロジー 無線通信装置及び無線通信網
US7987449B1 (en) 2003-05-22 2011-07-26 Hewlett-Packard Development Company, L.P. Network for lifecycle management of firmware and software in electronic devices
US7974613B1 (en) * 2003-06-16 2011-07-05 Hewlett-Packard Development Company, L.P. Device capability determination for a mobile device
CA2476156A1 (en) * 2003-07-30 2005-01-30 J2X Technologies Inc. System, computer product and method for enabling wireless data synchronization
US7512638B2 (en) * 2003-08-21 2009-03-31 Microsoft Corporation Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system
US8555273B1 (en) * 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7752626B1 (en) * 2003-09-30 2010-07-06 Oracle America, Inc. System and method for RMI-IIOP request load balancing
US8626146B2 (en) 2003-10-29 2014-01-07 Qualcomm Incorporated Method, software and apparatus for performing actions on a wireless device using action lists and versioning
US7415706B1 (en) 2003-12-01 2008-08-19 Cisco Technology, Inc. Dynamic handling of multiple software component versions for device management
JP2005174048A (ja) 2003-12-12 2005-06-30 Internatl Business Mach Corp <Ibm> データセット更新装置、端末装置、データセット更新方法、およびプログラム
US20050132357A1 (en) 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
JP4916432B2 (ja) 2004-03-12 2012-04-11 マイクロソフト コーポレーション アップデートの配布システムにおいてソフトウェアアップデートの配布を管理するためのアプリケーションプログラミングインターフェース
US7971199B1 (en) * 2004-05-03 2011-06-28 Hewlett-Packard Development Company, L.P. Mobile device with a self-updating update agent in a wireless network
US7657886B1 (en) * 2004-06-03 2010-02-02 Hewlett-Packard Development Company, L.P. Mobile device with a MMU for faster firmware updates in a wireless network
US7788662B2 (en) 2004-07-28 2010-08-31 Microsoft Corporation Automatic upgrade of pluggable components
CA2533614C (en) * 2004-07-30 2011-05-03 Research In Motion Limited Method and system for coordinating device setting between a communications client and its host device
US7530065B1 (en) 2004-08-13 2009-05-05 Apple Inc. Mechanism for determining applicability of software packages for installation
US7516451B2 (en) * 2004-08-31 2009-04-07 Innopath Software, Inc. Maintaining mobile device electronic files including using difference files when upgrading
US7844964B2 (en) * 2004-09-23 2010-11-30 Hewlett Packard Development Company, L.P. Network for mass distribution of configuration, firmware and software updates
US7698698B2 (en) 2004-09-30 2010-04-13 Smith Micro Software, Inc. Method for over-the-air firmware update of NAND flash memory based mobile devices
CN1288199C (zh) 2004-12-08 2006-12-06 中国科学院长春应用化学研究所 催化成炭提高聚烯烃纳米复合材料的阻燃性能的方法
US7457826B2 (en) 2004-12-20 2008-11-25 Microsoft Corporation Systems and methods for synchronization of items without snapshots
EP1846846A2 (en) 2005-01-31 2007-10-24 Koninklijke Philips Electronics N.V. Method of automatically synchronizing data
WO2006094117A2 (en) * 2005-03-01 2006-09-08 Mfoundry Application program update deployment to a mobile device
US20060206888A1 (en) 2005-03-11 2006-09-14 Microsoft Corporation Checking for and accessing software component updates through a common content manager
US7970386B2 (en) * 2005-06-03 2011-06-28 Good Technology, Inc. System and method for monitoring and maintaining a wireless device
EP1739552A1 (en) * 2005-06-21 2007-01-03 Hewlett-Packard Development Company, L.P. Software installation method and computer system
US9332424B2 (en) 2005-08-05 2016-05-03 Qualcomm Incorporated Centrally managed solution for all device management activities
US7958502B2 (en) * 2005-08-05 2011-06-07 Hewlett-Packard Development Company, L.P. Efficient generator of update packages for mobile devices that uses non-ELF preprocessing
US7596720B2 (en) 2005-09-27 2009-09-29 Microsoft Corporation Application health checks
US7676806B2 (en) 2005-09-27 2010-03-09 Microsoft Corporation Deployment, maintenance and configuration of complex hardware and software systems
US20080148250A1 (en) * 2005-10-28 2008-06-19 Giovanni Motta Update package generation employing matching technique with controlled number of mismatches
CN1852309A (zh) 2005-11-16 2006-10-25 华为技术有限公司 数据同步处理方法及其客户端
US7529780B1 (en) * 2005-12-30 2009-05-05 Google Inc. Conflict management during data object synchronization between client and server
US7747567B2 (en) * 2005-12-30 2010-06-29 Microsoft Corporation Separation of conflict resolution from synchronization
JP4864557B2 (ja) 2006-06-15 2012-02-01 富士通株式会社 ソフトウェアの更新処理プログラム及び更新処理装置
WO2007147151A2 (en) * 2006-06-16 2007-12-21 Neltura Technology, Inc. Using online community identities of users to establish mobile communication sessions
US8707297B2 (en) 2006-07-26 2014-04-22 Dell Products L.P. Apparatus and methods for updating firmware
CN100461702C (zh) * 2006-08-29 2009-02-11 中国移动通信集团公司 网络社区好友同步管理方法
US20130047145A1 (en) 2006-08-29 2013-02-21 Quan-Jie Cui Match analysis for encoding optimized update packages
US7870412B2 (en) * 2006-09-28 2011-01-11 Oracle International Corporation Passing client or server instructions via synchronized data objects
US20100242034A1 (en) 2006-11-01 2010-09-23 Microsoft Corporation Distributing software products as an executable containing script logic with external resources
US7725456B2 (en) * 2007-04-27 2010-05-25 Microsoft Corporation Item management with data sharing and synchronization
US20080281828A1 (en) * 2007-05-11 2008-11-13 Daniel Swartz Variable Data Replacement Technique For An Electronic Communication System
US8635608B2 (en) 2007-09-04 2014-01-21 Teradata Us, Inc. Software update system and method
JP2009134589A (ja) 2007-11-30 2009-06-18 Toyota Motor Corp 運転支援装置
US8762977B2 (en) 2008-04-10 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Mobile device software management method and apparatus
US8612961B2 (en) 2008-12-31 2013-12-17 Motorola Mobility Llc System and method for downloading software upgrades
US8340635B2 (en) 2009-03-16 2012-12-25 Apple Inc. Capability model for mobile devices
US8495621B2 (en) 2009-06-15 2013-07-23 Microsoft Corporation Catalog-based software component management
US8522232B1 (en) 2009-07-06 2013-08-27 Arris Enterprises, Inc. Decoupling software loads for customer premise equipment
US8443361B2 (en) * 2009-08-31 2013-05-14 Red Hat, Inc. Systems and methods for tracking a history of changes associated with software packages in a computing system
US8316224B2 (en) * 2009-08-31 2012-11-20 Red Hat, Inc. Systems and methods for tracking a history of changes associated with software packages and configuration management in a computing system
US9003387B2 (en) 2009-09-25 2015-04-07 Fisher-Rosemount Systems, Inc. Automated deployment of computer-specific software updates
US20120280037A1 (en) * 2010-02-06 2012-11-08 Yang Pan Credit Card with E-paper Display for Advertisement and with Optical Communication and Power Transfer Modules
US8612398B2 (en) 2010-03-11 2013-12-17 Microsoft Corporation Clean store for operating system and software recovery
US8578366B2 (en) 2010-04-13 2013-11-05 Avaya Inc. Application store
JP5559001B2 (ja) 2010-10-15 2014-07-23 株式会社日立ソリューションズ 組込プログラム更新方法、組込プログラム更新プログラム、電子機器、ネットワークシステム
JP2012091840A (ja) 2010-10-28 2012-05-17 Matsuda Gijutsu Kenkyusho:Kk 断熱パネル及びこれを用いた輸送用コンテナ
US8595715B2 (en) 2010-12-31 2013-11-26 International Business Machines Corporation Dynamic software version selection
US8893109B2 (en) 2011-08-02 2014-11-18 Roche Diagnostics Operations, Inc. Software distribution amongst medical devices taking into account dependencies between devices
US20130139139A1 (en) 2011-11-28 2013-05-30 Wyse Technology Inc. Automatic updating of an application or a driver on a client device using a deployment configuration file
US8612516B2 (en) 2011-11-28 2013-12-17 Wyse Technology Inc. Deployment of a driver or an application on a client device having a write-filter
US9110754B2 (en) 2012-05-31 2015-08-18 Microsoft Technology Licensing, Llc Computing device update control
US9766873B2 (en) 2012-08-17 2017-09-19 Tripwire, Inc. Operating system patching and software update reconciliation
US20140208306A1 (en) 2013-01-23 2014-07-24 Caterpillar Inc. Control system having automatic component software management
US8918775B1 (en) 2013-07-12 2014-12-23 Ca, Inc. Dynamic release control of software application version changes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010048728A1 (en) 2000-02-02 2001-12-06 Luosheng Peng Apparatus and methods for providing data synchronization by facilitating data synchronization system design
WO2003083667A1 (en) 2002-03-29 2003-10-09 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a data service

Also Published As

Publication number Publication date
EP2163075A2 (en) 2010-03-17
CA2687883A1 (en) 2008-12-24
WO2008157735A3 (en) 2009-02-12
CN101743736B (zh) 2014-07-30
CN101743736A (zh) 2010-06-16
RU2438263C2 (ru) 2011-12-27
US9143560B2 (en) 2015-09-22
WO2008157735A2 (en) 2008-12-24
BRPI0812543A2 (pt) 2015-09-29
CA2687883C (en) 2014-07-08
RU2010101323A (ru) 2011-07-27
US20090077263A1 (en) 2009-03-19
JP5065482B2 (ja) 2012-10-31
JP2010533389A (ja) 2010-10-21
KR20100031623A (ko) 2010-03-23

Similar Documents

Publication Publication Date Title
KR101134214B1 (ko) 무선 환경에서 데이터세트 동기화를 위한 방법들 및 장치
US10693958B2 (en) System and method for adding node in blockchain network
US20200293516A1 (en) System and method for deleting node in blockchain network
KR100547896B1 (ko) 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법
EP2445149B1 (en) System and method for enabling applications to communicate using a peer-to-peer (P2P) system
US8600363B2 (en) Synchronization in unified messaging systems
CN102089760A (zh) 同步服务器处理
CN101329633A (zh) 一种软件升级的方法和软件升级装置
KR100728076B1 (ko) 인터럽트된 동기화 프로세스의 처리를 제공하는 데이터를동기화하는 방법, 장치 및 시스템
KR20150023425A (ko) 사용자 고유 로밍 설정 기법
CN104796312B (zh) 联系人信息处理方法、装置及系统
CA3065729A1 (en) Business rules processing framework
CN114130035A (zh) 一种用户匹配方法、装置、设备及存储介质
CN116974628A (zh) 信息获取方法、装置、电子设备及计算机可读存储介质
CN108337151A (zh) 实现即时通讯中用户消息多设备同步漫游的方法及系统
CN111282283B (zh) 一种游戏关系链的构建方法及装置、电子设备、存储介质
CN111209292B (zh) 一种仓位数据管理方法、装置及系统
CN114442947A (zh) 跨域桶删除方法、系统、终端及存储介质
CN117278536A (zh) 音频资源的处理方法、装置、可读存储介质和电子装置
KR20170007053A (ko) M2M/IoT 플랫폼에서 트랜잭션 방법 및 시스템
US9935903B2 (en) Duplicate-free item creation using EWS by a single client
JPWO2013187034A1 (ja) コンテンツ管理装置およびコンテンツ管理方法
CN117492813A (zh) 一种业务服务实现方法、系统、计算设备及存储介质
CN117135162A (zh) 一种键值数据库集群选举的方法、系统、设备和存储介质
KR20190067071A (ko) Mvc 패턴 기반의 실시간 데이터 갱신 장치 및 그 방법

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: 20150227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 8