KR20000028677A - 클라이언트와 적응형 동기 및 변형 서버를 위한 방법,장치, 프로그램 저장장치 - Google Patents

클라이언트와 적응형 동기 및 변형 서버를 위한 방법,장치, 프로그램 저장장치 Download PDF

Info

Publication number
KR20000028677A
KR20000028677A KR1019990039476A KR19990039476A KR20000028677A KR 20000028677 A KR20000028677 A KR 20000028677A KR 1019990039476 A KR1019990039476 A KR 1019990039476A KR 19990039476 A KR19990039476 A KR 19990039476A KR 20000028677 A KR20000028677 A KR 20000028677A
Authority
KR
South Korea
Prior art keywords
client
server
logic
sync
data
Prior art date
Application number
KR1019990039476A
Other languages
English (en)
Other versions
KR100343823B1 (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 KR20000028677A publication Critical patent/KR20000028677A/ko
Application granted granted Critical
Publication of KR100343823B1 publication Critical patent/KR100343823B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Abstract

본 발명은 인터넷 애플리언스, 핸드 헬드 또는 팜톱 장치, 스마트폰 또는 인텔리전트 페이저와 같은 클라이언트와 이들의 원격 복제 소스간의 동기 확장성(scalability)을 증가시키고 관리 능력(manageability)을 개선하기 위해 네트워크에 배포된 동기 논리 및/또는 변형 코드들을 채택하는 동기 대리 또는 동기 서버 논리, 프로세스, 장치에 관한 것이다. 클라이언트와 상기 클라이언트 상의 데이터의 복제를 저장하는 원격 호스트 복제간의 데이터를 동기 하는 적응형 동기 서버의 일 예는, 상기 클라이언트와 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리와 복제 호스트를 식별하기 위한 동기 억셉터 논리와 - 여기서 상기 동기 논리는 동기 요청에 응답할 때 동기 서버와 원거리 호스트에서 떨어져 있는 네트워크 상의 어느 곳에서도 위치할 수 있으며- 네트워크로부터 원격 동기 논리를 검색하고, 원격 호스트에 접속하여, 검색된 동기 논리를 사용하는 원격 호스트와 클라이언트간의 데이터를 동기하기 위한, 상기 동기 억셉터 논리에 결합된 동기 핸들러 논리를 포함한다.
상기 동기 요청은 복제 호스트와 동기 논리를 명백하게(또는 디폴트에 의해) 식별할 수 있거나 또는 복제 호스트와 동기 논리를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함할 수 있다. 또 다르게는, 동기 요청은 동기 동안 클라이언트와 원격 호스트간의 데이터를 변환하기 위한 (근거리 또는 원격의)장치 특정의 변형 코드를 식별하기 위한 정보와; 상기 정보에 기초하여 변형 코드를 검색하고 장치 특정의 변형 코드에 기초하여 원격 호스트와 클라이언트간의 데이터를 변환하기 위한 수단을 포함할 수 있다.

Description

클라이언트와 적응형 동기 및 변형 서버를 위한 방법, 장치, 프로그램 저장장치{method, apparatus and program storage device for a client and adaptive synchronization and transformation server}
발명의 분야
본 발명은 일반적으로 클라이언트에서의 데이터와 정보 관리 시스템(information management system)들에서의 데이터 복제 사이에 일어나는 갱신 동기 및/또는 변형 프로세스에 관한 것이다.
발명의 배경
반도체, 저장장치, 디스플레이 기술의 빠른 진보에 따라서, 때때로 네트워크에만 접속될 수 있는 핸드 헬드(hand held) 또는 모빌 장치들이 점차 인기를 얻고 있다. 또, 3Com의 PALM PILOTTM과 같은 모빌 장치들을 사용하고 있는 방법들이 매우 다목적으로 되고 있다. 예를 들어, PALM PILOTTM사용자는 오피스 데스크탑의 로터스 NOTESTM이-메일 시스템과 동기 되어 지는 이-메일 애플리케이션을 가질 수 있다. 또, PALM PILOTTM에는 인터넷에 위치한 잘 알려진 주식 시세 사이트(stock quote site)와 동기 함으로써 갱신되는 주식 시세 애플리케이션이 있을 수 있다. 또한, 홈 PC 재정 소프트웨어와 동기 될 수 있는 PALM PILOTTM지출 애플리케이션도 있을 수 있다. 따라서, 어떤 장치 내에서 다양한 핸드 헬드 애플리케이션들이 네트워크형 컴퓨터들에서 실행되는 (로터스 NOTESTM, 마이크로소프트 EXCHANGETM, 파일 시스템들, 관련 데이터베이스들, 객체 지향 데이터베이스(object-oriented database)들과 같은) 다양한 정보 관리 시스템들 내의 다른 애플리케이션들과 동기 할 필요가 있을 것이다. 또한, (이-메일과 같은) 어떤 핸드 헬드 애플리케이션은 (PALM PILOTTM, 샤프의 ZAURUSTM, 프손 PLC의 PSIONTM, 그리고 마이크로소프트 WINDOWS CETM를 실행하는 다양한 다른 팜탑 장치들과 같은) 다른 핸드 헬드 장치들에 대해 다른 버전들을 가질 가능성도 있다.
PALM PILOTsTM과 같은 핸드 헬드 장치들이 대체로 단지 가끔 네트워크에 접속해서 단지 짧은 동안에만 지속이 유지되기 때문에, 핸드 헬드들의 애플리케이션들과 다양한 네트워크형 컴퓨터들 내의 상기 애플리케이션들의 상대방들 간의 동기 프로세스들이 (핸드 헬드들이 네트워크에 접속되어 있는 동안 동기 프로세스들이 성공적으로 완성될 수 있기 위해서) 매우 효과적이어야 한다는 점이 중요하다. 핸드 헬드 장치들이 대체로 낮은 CPU 파워와 적은 계산 메모리를 제공하기 때문에, 동기 프로세스들은 주로 핸드 헬드 장치들 내부에서는 처리되지 않는다.
여기서, 핸드 헬드 장치들로부터 데이터의 복제를 호스팅 하는 컴퓨터를 복제 호스트(replica host) 또는 복제 소스(replica source)라 한다. 핸드 헬드 장치들이 일반적으로 복제 호스트 보다 낮은 컴퓨팅 파워와 메모리를 지니기 때문에, 핸드 헬드 장치들은 대체로 그들의 복제 호스트들 내부에서 동기를 처리하며, 이런 것이 데스크탑 PC들이다. 보통, 동기는 먼저 (예를 들어, PALM PILOTTM내의 HotSync 버튼과 같은) 핸드 헬드 장치 버튼을 눌러써 시작된다. 이 버튼을 누른 후 즉시, (예를 들어, 데스크탑 퍼스널 컴퓨터(PC) 내의 PALM PILOTTM의 HotSync 매니저와 같은)복제 호스트 내의 동기 매니저 소프트웨어가 동기 프로세스를 수행한다. PALM PILOTTM의 경우에, HotSync 매니저는 애플리케이션-특정 논리를 통해서 PALM PILOTTM와 데스크탑 PC간의 이런 애플리케이션을 동기하는 (PALM PILOTTM에서 콘듀트(conduit)라 하는) 애플리케이션-특정 프로그램을 수행함으로써 PALM PILOTTM애플리케이션을 위한 동기를 처리한다. 만일 다중 애플리케이션들이 동기 될 필요가 있으면, HotSync 매니저는 해당하는 콘듀트들 각각을 일련의 순서로 실행한다. 이러한 기법에 기초해서, 동기는 하나의 PC와 하나의 핸드 헬드 장치 사이에서 항상 처리된다. 다중 핸드 헬드 장치들과 하나의 PC간의 자발적인 동기는 이용할 수 없다.
일반적으로, 복제 호스트에서 동기 프로세스를 직접적으로 처리하는 것은 매우 제한적이다. 그 이유는, (예를 들어, PALM PILOTTM, ZAURUSTM, PSIONTM와 같은) 많은 다른 핸드 헬드 장치들에 의해 각각 공유될 수 있는 (이-메일, 캘린더, 어드레스 북과 같은) 많은 애플리케이션들이 존재할 수 있기 때문이다. 각 애플리케이션은 각각의 다른 장치들에 대해 다른 동기 논리를 요구할 수 있다. 모든 애플리케이션들과 모든 장치들에 대한 동기를 적절하게 처리하기 위해, 복제 호스트는 설치되어서 다른 핸드 헬드 장치들을 조정하기 위해 동기 프로세스들의 많은 다른 버전들을 관리할 필요가 있을 것이다. 그래서, 복제 호스트들에서 동기 프로세스들을 처리하는 것은 다른 핸드 헬드 장치들과 그들의 동기 프로세스들의 관리에 무거운 부담을 안겨준다. 많은 복제 호스트들에 대해서, 그들의 가장 중요한 임무는 다양한 핸드 헬드들과 동기 하는 것이 아니라, 데이터베이스 서버, 그룹웨어 서버, 또는 퍼스널 데스크탑 컴퓨팅 장치와 같은 정보 서버로서 실행하는 것이다. 그래서, 복제 호스트들에서 동기를 실행하는 것은 복제 호스트들의 중요한 임무와는 거리가 멀다.
다중 핸드 헬드 장치들과 복제 호스트들 간의 관리 동기에 대한 보다 효율적인 기법은, 핸드 헬드들과 복제 호스트들 둘 다를 대신해서 동기를 수행하기 위해 영구적인 네트워크 접속을 유지하는 동기 대리(synchronization proxy)들 [또는 동기 (싱크) 서버들(synchronization(sync) servers), 또는 동기 대리 서버들(synchronization proxy servers) 또는 단순히 싱크 대리들(sync proxies)]를 배치하는 것이다(이런 복제들을 호스팅 하는 장치들도 또한 영구적인 네트워크 접속을 유지한다).
동기를 위해서, 핸드 헬드는 먼저 네트워크 접속을 설정한다. 일단 접속되면, 동기를 위한 타깃 복제 호스트에 대해 직접적으로 접속하는 대신, 동기 대리(sync proxy)에 대해 동기 요청(synchronization request)을 한다. 이러한 요청을 수용하자마자, 동기 대리는 타깃 복제 호스트에 대한 접속을 설정해서 핸드 헬드와 그것의 복제 호스트 둘 다에 대한 입/출력 요청들을 발행함으로써 동기 프로세스를 시작한다. 동기 대리의 간단한 디자인은, 대리가, 복제 호스트들에 의해 호스트 되는 모든 핸드 헬드 장치 타입들과 모든 정보 관리 시스템 타입들을 제어할 수 있는, 모든 장치-특정이고 애플리케이션-특정의 동기 프로그램들을 유지하는 것이다. 이것은 각각의 애플리케이션이, 핸드 헬드 데이터의 복제들을 호스팅 하는 모든 정보 관리 시스템들과 모든 핸드 헬드 장치 타입들간의 어떠한 조합에 대해서도 특정하게 기입되는 고유한 동기 프로그램을 가져야만 한다는 것을 의미한다. 예를 들어, 핸드 헬드 장치들에 기초한 PALM PILOTTM과 WINDOWS CETM둘 다와, PCs를 위한 마이크로소프트 EXCHANGETM과 로터스 NOTESTM이-메일 시스템들 둘 다를 지원하기 위해, 동기 대리는 이-메일 애플리케이션을 위한 4개의 다른 동기 프로그램들을 관리할 수 있다. 첫 번째 동기 프로그램은 PALM PILOTTM과 EXCHANGETM간의 동기를 위한 것이며, 두 번째 동기 프로그램은 PALM PILOTTM과 로터스 NOTESTM간의 동기를 위한 것이며, 세번째 동기 프로그램은 WINDOWS CETM와 EXCHANGETM간의 동기를 위한 것이며, 네번째 동기 프로그램은 로터스 WINDOWS CETM와 로터스 NOTESTM간의 동기를 위한 것이다. 동기 대리의 이러한 직선적인 설계(straightforward design)의 또 다른 측면이, 핸드 헬드 데이터의 복제들을 호스팅 하는 특정 정보 관리 시스템과 동기 대리간의 동기 입/출력 인터페이스가 다른 핸드 헬드 장치들에 대해서 동일하게 이루어지게 한다. 핸드 헬드 장치들간의 차이를 조절하는 것은 동기 대리이지 각각의 복제 호스트가 아니다. 실질적인 동기 프로세스들은 동기 대리들에 의해 실행된다. 동기 동안 핸드 헬드와 복제 호스트들 둘 다의 역할은 동기 대리에 의해 이루어진 동기 입/출력 호출에 간단히 응답하는 것이다. 이러한 호출들은 대개 부가, 검색, 삭제, 갱신 정보의 형태이다. 그래서, 핸드 헬드들과 복제 호스트들에 대한 계산의 부담과 동기 논리의 복잡성이 훨씬 줄어든다.
이러한 직선적인 동기 대리 기법의 중요한 특징은, 모든 장치 타입들을 위한 어떤 애플리케이션들과 모든 복제 호스트들을 위한 어떤 정보 관리 시스템들 사이에서 적절하게 동기하기 위해서는, 동기 태스크 동안, 동기 대리가 타깃 애플리케이션, 장치, 정보 관리 시스템에 기초한 특정한 동기 논리를 야기할 수 있어야만 한다는 것이다. 현재의 직선적인 동기 대리 기법은 먼저, 적절한 동기를 위해 요구되는 동기 논리 변화(synchronization logic variation)의 전체 수를 줄이기 위해, 자신들의 지원을 적은 수의 애플리케이션들, 장치들, 정보 관리 시스템들로 제한하고; (동기 실행시간 동안) 자신의 디스크 메모리에 저장된 동적으로 연결 가능한 코드들로서 동기 논리를 미리 구성함으로써 동기를 수행한다. 이러한 기법의 중요한 논점은 모든 다양한 동기 논리의 관리가 어렵다는 것이다. 더 많은 애플리케이션들, 장치들, 관리 정보 시스템들이 하나의 조직에 의해 지원된다면, 동기 논리 변화의 수는 대단히 증가한다. 그래서 각각의 동기 대리는 적절한 동기 논리를 연결할 수 있어야만 한다. 또한, 다중 동기 대리들이 배치된 조직에서는, 동기 논리에 대한 어떤 변화들과 갱신들이 모든 동기 대리들의 적절한 파일들로 이러한 변화들과 갱신들을 전파하는 어려운 소프트웨어 관리 태스크를 만든다. 이런 동기 논리의 관리 개선이 본 발명의 초점이다.
현재의 직선적인 동기 대리 기법의 또 다른 특징은, 다양한 동기 논리가 동기 대리들의 메이커들에 의해 미리 코드 되며, 또한 이들 동기 대리들 중 일부도 사용자들이 동기 논리를 증대하거나 또는 변경할 수 있는 개발 플랫폼을 제공한다는 것이다. 동기 대리 메이커들은 일반적으로 애플리케이션, 장치들, 또는 정보 관리 시스템들을 만들지는 않는다. 그래서, 이들은 이 소프트웨어 및 하드웨어의 숙달된 지식을 지니지 않으며 자신들의 지원의 범위를 제한해야만 한다. 더 많은 핸드 헬드 애플리케이션들, 더 많은 핸드 헬드 장치들, 더 많은 관리 정보 시스템들을 지원하는 관점에서, 현재의 동기 대리들의 범위는 매우 제한되어 있다. 본 발명은 이런 제한을 다룬다.
또한, 직선적인 동기 대리는 자발적인 동기 요청을 진행하는 점에서 자신의 범위가 동기 대리가 설치되어 있는 기기의 컴퓨팅 파워에 의해 제한되는 독립형 시스템이다. 적재 균형(load balancing)의 관점에서 동기 대리들간의 협동은 직선적인 동기 대리 기법에서는 전혀 이용할 수 없다. 동기 대리들간의 협동의 부족이 일부 동기 요청들이 연기되거나 또는 서비스되지 않게 하는 불균형 적재를 대리들 사이에서 잠재적으로 일어나게 할 수 있다. 본 발명은 이러한 필요성을 다루고 있다.
상기 필요에 따라서 본 발명은, 클라이언트들간의 갱신 동기를 수행할 때 계산 플랫폼과 매개물로서 작용하는 동기 대리(또는 싱크 대리 또는 싱크 서버)를 위한 개선된 방법, 장치, 프로그램 저장장치를 제공하며, 이러한 클라이언트의 예에는, 인터넷 애플리케이션; 핸드 헬드 또는 팜톱 장치; 스마트폰 또는 인텔리전트 페이저; 이들 장치들로부터 데이터의 복제를 호스트 하는 정보 관리 시스템들이 포함되나 이것으로 한정되지는 않는다. 정보 관리 시스템들이 거의 모든 시간에 접속되어 있는 반면에, 클라이언트들은 그 시간 중 일부 또는 대부분의 시간에 네트워크로부터 절단될 수 있다. 클라이언트 장치들 내의 데이터 및/또는 정보 관리 시스템들 내의 그들의 복제들은 서로 독립적으로 갱신될 수 있다.
도1은 동기 대리 기법(sync proxy approach)의 아키텍처의 일 예를 도시하는 도.
도2는 본 발명의 특징을 지니는 핸드 헬드 장치로서 구현된 클라이언트 아키텍처의 일 예를 도시하는 도.
도3은 본 발명의 동기 대리 아키텍처의 일 예를 도시하는 도.
도4는 본 발명의 복제 호스트(replica host) 형태의 아키텍처의 일 예를 도시하는 도.
도5는 본 발명의 핸드 헬드 동기 억셉터(handheld sync acceptor) 형태의 일 예를 도시하는 도.
도6은 본 발명의 대리 동기 억셉터(proxy sync acceptor) 형태의 일 예를 도시하는 도.
도7은 본 발명의 핸드 헬드 동기 핸들러(handheld sync handler) 형태의 일 예를 도시하는 도.
도8은 본 발명의 대리 동기 핸들러(proxy sync handler) 형태의 일 예를 도시하는 도.
도9는 본 발명의 대리 캐시 매니저(proxy cache manager) 형태의 일 예를 도시하는 도.
도10은 데이터 변형(data transformation)을 처리하는 대리 동기 핸들러의 일 예를 도시하는 도.
도11은 데이터 매니저 또는 복제 매니저의 일 예를 도시하는 도.
도12은 호스트 복제에서의 복제 매니저 또는 핸드 헬드 장치에서의 데이터 매니저의 일 예를 도시하는 도.
도13은 본 발명의 대리 적제 매니저(proxy load manager) 형태의 일 예를 도시하는 도.
본 발명에 따라서, 클라이언트가 동기 대리로부터 동기 서비스들을 요청하는 방법이 제공된다. 예를 들어, 핸드 헬드 장치는 이 대리로 동기 요청(또는 싱크 요청)을 발행한다. 동기 요청은 동기 될 하나 이상의 애플리케이션들을 포함할 수 있다. 동기 요청이 수락된 후, 동기 대리는 이러한 핸드 헬드 장치들에 대해서 동기될 것을 요청받은 모든 애플리케이션들에 대한 동기를 일련의 방식으로 처리한다. 동기 될 각각의 애플리케이션에 대해서, 핸드 헬드는 동기 될 애플리케이션의 이름을 포함할 수 있는 동기 식별자(sync identifier), 이러한 애플리케이션에 대한 복제 호스트의 ID, 이런 애플리케이션에 대한 애플리케이션 특정의 동기 논리(sync logic)를 가진 프로그램의 ID, 이런 핸드 헬드 장치를 위한 장치 특정의 데이터 변형 방법을 가진 프로그램의 ID(변형 코드(transformation code))를 제공할 수 있다. 이 ID들은 고유의 식별자(또는 고유 이름)와 이런 정보가 검색될 수 있는 네트워크 어드레스를 바람직하게 포함한다.
또 다르게는, 애플리케이션의 동기 프로세싱 동안, 핸드 헬드 장치가 정보를 동기 대리로 직접적으로 송신하는 대신에, 핸드 헬드 장치는 사용자, 핸드 헬드 장치, 동기 될 애플리케이션의 일부 식별 정보뿐 아니라 애플리케이션의 이름과 상기 세 가지의 정보(즉, 애플리케이션에 관한 복제 호스트의 ID, 애플리케이션의 동기 논리의 ID, 핸드 헬드 장치에 관한 변형 코드의 ID)가 저장되어 있는 디렉토리 서비스만을 포함할 수 있는 동기 식별자를 송신할 수 있다.
본 발명의 특징을 지니는, 클라이언트와 이 클라이언트 상의 데이터의 복제를 저장하는 원격 호스트 복제(remote host replica)간의 데이터를 동기하기 위한 적응형 동기 서버(adaptive sync server)의 일 예에는, 클라이언트와 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리와 복제 호스트를 식별하기 위한 동기 억셉터 논리(sync acceptor logic); -여기서, 동기 논리는 동기 요청에 응답할 때 동기 서버와 원격 호스트에서 떨어져 있는 네트워크 상의 어느 곳에서도 위치할 수 있음- ; 상기 네트워크로부터 원격 동기 논리를 검색하고, 상기 원격에 접속하여, 검색된 동기 논리를 사용하여 상기 원격 호스트와 클라이언트간의 데이터를 동기하기 위한, 상기 동기 억셉터 논리에 결합된 동기 핸들러 논리(sync handler logic)가 포함된다. 또, 상기 동기 요청은 동기 동안 클라이언트와 원격 호스트간의 데이터를 변환하기 위한 장치 특정의 변형 코드를 식별하기 위한 정보를 포함할 수 있으며; 여기서, 상기 동기 핸들러 논리는 정보에 기초하여 변형 코드를 검색하고 상기 장치 특정의 변형 코드에 기초하여 원격 호스트와 클라이언트 사이에서 데이터를 변환하기 위한 수단을 포함한다. 여기서, 장치 특정의 변형 코드(device specific transformation code)는 네트워크 상의 어느 곳에서도 국부적으로 또는 원격으로 위치될 수 있다.
본 발명의 특징을 포함하는, 클라이언트와 상기 클라이언트 상의 데이터 복제를 저장하는 원격 호스트 복제간의 데이터를 변형하기 위한 적응형 동기 서버의 또 다른 예에는, 상기 클라이언트와 연관된 장치 타입의 데이터로 상기 원격 호스트 상의 데이터를 변형하기 위한 장치 특정의 변형 코드와 원격 복제 호스트를 식별하기 위한 동기 억셉터 논리- 여기서 상기 변형 코드는 요청에 응답할 때 상기 동기 서버와 원격 호스트에서 떨어져 있는 네트워크 상의 어느 곳에서도 위치할 수 있음-; 원격 변형 코드를 검색하고 상기 장치 특정의 변형 코드에 기초하여 원격 호스트와 클라이언트 사이에서 데이터를 변형하기 위한, 상기 동기 억셉터 논리에 결합된 동기 핸들러 논리가 포함된다. 상기 요청은, 동기 요청에 응답할 때, 클라이언트와 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리를 식별하기 위한 동기 요청과; 상기 동기 논리를 검색하고, 상기 원격 호스트에 접속하여 상기 변형 동안 클라이언트와 원격 호스트 사이에서 데이터를 동기하기 위한 수단을 포함할 수 있다.
본 발명의 또 다른 특징에 따라서, 상기 동기 대리가 상기 핸드 헬드 장치들로부터 만들어진 동기 요청들을 수신, 수용, 처리하기 위한 방법이 제공된다. 본 발명에서, 동기 대리는 핸드 헬드 장치로부터 동기 요청을 수신할 때 하나 이상의 핸드 헬드 애플리케이션을 위한 동기 및/또는 변형을 처리한다. 각각의 핸드 헬드 애플리케이션에 대해서 대리는, 상기 요청하는 핸드 헬드 장치로부터 직접적으로 또는 요청하는 핸드 헬드 장치에 의해 특정화된 디렉토리 서비스로부터 간접적으로, 상술한 애플리케이션의 이름, 복제 호스트 ID, 동기 논리 ID, 변형 코드 ID를 수신할 수 있다. 애플리케이션을 동기하기 위해, 동기 대리는 요청하는 핸드 헬드 장치에 의해 송신된 이 애플리케이션에 대한 동기 논리 ID로 특정화된 네트워크 어드레스로부터 이 애플리케이션과 연관된 동기 논리를 검색할 수 있다. 다음으로, 동기 대리는 요청하는 핸드 헬드 장치로부터 검색된 자신의 복제 호스트 ID에 기초하여 이 애플리케이션과 연관된 복제 호스트와의 네트워크 접속을 설정한다.
본 발명의 또 다른 측면에 따라서, 이러한 애플리케이션에 대한 동기를 처리하기 위해, 동기 대리는 이 애플리케이션에 대해 검색된 동기 논리를 실행한다. 이 애플리케이션에 대한 동기 논리의 실행 동안, 데이터 변형이 요청되면, 동기 대리는 애플리케이션과 연관된 변형 코드의 네트워크 어드레스와 접속을 한다. 변형 코드의 네트워크 어드레스는 요청하는 핸드 헬드 장치에 의해 송신된 변형 코드 ID의 일 부분이다. 다음으로, 이 애플리케이션을 동기하면서 상기 동기 논리의 처리 동안 이 변형 코드를 실행할 필요가 있으면, 동기 대리는 데이터 변형을 진행한다. 본 발명이 동기 논리를 기입하는 프로그램 언어를 특정하지는 않지만, 동기 대리가 원격 호스트로부터 동기 논리를 검색하고 이 논리를 실행하는 본 발명의 특징은, 애플릿과 같은 자바 프로그램이 원격 호스트로부터 웹브라우저에 의해 다운적재 될 수 있고 웹 프로세싱 동안 국부적으로 웹 브라우저에 의해 실행될 수 있는, 웹 프로세싱이 가능한 기존의 자바 형식으로 생각할 수 있다.
본 발명의 일 실시예에서, 애플리케이션에 대한 동기 과정은 동기 논리와 변형 코드로 나누어진다. 동기 논리가 동기 태스크들의 애플리케이션 특정의 과정인 반면, 변형 코드는 두 타입의 장치들간의 장치 의존적인 변환 프로세스이다. 이러한 두 가지의 분리는, 애플리케이션에 대한 동기 논리가 이 애플리케이션의 메이커에 의해 제공되고 유지될 수 있는 반면, 변형 코드는 이 변형 코드가 적용하는 핸드 헬드 장치의 메이커에 의해 제공되고 유지될 수 있다는 것을 의미한다. 동기 대리들은 이들 동기 또는 변형 과정들을 더 이상 저장 및 유지하지 않는다. 이들이 해야 할 필요가 있는 모든 것은, 동기 동안 적절한 동기 논리 및/또는 변형 코드들을 검색하는 것이다. 이러한 기법은 동기 대리들에 의한 애플리케이션 의존적이고 장치 의존적인 동기 및/또는 변형 과정들의 관리 프로세스들을 대단히 개선한다.
또한, 이러한 기법은 동기 대리들의 메이커들이 애플리케이션과 장치들에 특정한 동기 과정들을 개발해야 하는 부담을 경감시킨다. 결과적으로, 애플리케이션과 장치 의존적인 동기 과정들이 적절하게 개발 및 유지되고 이들의 각각의 메이커들에 의해 검색될 수 있도록 만들어지는 한, 동기 대리들은 더 많은 애플리케이션들, 장치들, 관리정보시스템들을 지원하기 위해서 더 많이 확장될 수 있다.
본 발명의 또 다른 측면에 따라서, 동기 대리는 이들 실행 가능한 데이터가 가까운 미래에 이 동기 대리에 의해 사용될 수 있는 애플리케이션에 대해 미리 동기 논리 또는 변형 코드를 일시적으로 저장하기 위해 캐시를 배치할 수 있다. 본 발명의 캐시 형태의 일 예는 다음과 같다. 첫째, 동기 대리는 메모리 블록(주 메모리 또는 디스크 공간)을 캐시로서 준비한다. 동기 대리는 (예를 들어, 이들의 고유 수단에 기초한) 캐시된 동기 논리 또는 변형 코드를 조사하고 검색하기 위한 인텍싱 방법(indexing method)을 채택할 수 있다. 캐시된 정보(애플리케이션을 위한 동기 논리 또는 변형 코드)를 검색하기 위해, 이를 검색하기 위해 네트워크로 나가기 전에, 동기 논리는 자신의 캐시를 먼저 조사한다. 정보가 캐시에서 발견되지 않으면, 동기 대리는 캐시된 정보의 ID와 연관된 네트워크 어드레스로 가서, 이를 검색하고 이 정보로 대리 캐시를 갱신한다. 만일 캐시된 정보가 캐시에서 발견되면, 동기 대리는 네트워크를 대신해서 자신의 캐시로부터 이 정보를 검색한다. 다음으로, 동기 대리는 실행을 위해 캐시로부터 이 데이터를 적재함으로써 이 실행 가능한 데이터(애플리케이션을 위한 동기 논리 또는 변형 코드)를 실행한다.
본 발명의 또 다른 측면에 따라서, 동기 대리는 자신의 CPU 파워, RAM의 크기, 스토리지 메모리에 기초해서 정해진 자신의 계산 용량과 자신의 네트워크 대역폭 용량에 대한, (예를 들어 동시에 처리중인 동기 요청들의 수의 측면에서) 자신의 계산 적재(computation load)를 연속해서 모니터 할 수 있다. 동일한 네트워크 내의 모든 동기 대리들은 그들의 현재 계산 적재와 그들의 이전에 구성된 계산 용량이 다른 것과 서로 실시간 공유에 참여할 수 있다. 동기 요청을 수시하자마자, 동기 대리는 현재의 계산 적재에의 동기 태스크의 부가가 이 대리의 계산 용량을 초과하는지를 조사한다. 만일 초과 한다면, 대리는 그들의 계산 적재와 용량 정보에 관해서 동일한 네트워크의 다른 대리들에게 질의한다. 이 정보를 받은 후, 대리는 들어오는 동기 요청을 계산 적재가 적은 (동일 네트워크 내의) 다른 대리로 전환한다. 만일 동일 네트워크 상의 모든 대리들의 계산 적재가 찼다면, 동기 요청을 수신하는 대리는 모든 동기 대리들에 대해 용량이 찼다는 것을 가리키는 메시지를 요청한 핸드 헬드 장치로 되돌릴 수 있다. 또한, 이것은 요청하는 핸드 헬드 장치와의 접속을 끝낸다. 동기 프로세스들은 이 경우에 수행되지 않는다. 이런 특징에 의해, 본 발명은 직선적인 동기 대리 기법에서 이용할 수 없는 적재 균형 기능을 제공한다.
본 발명의 상술한 목적, 이점들, 특징들 등은, 첨부하는 도면들과 관련된 이하의 본 발명의 바람직한 실시예들의 상세한 설명에 의해 보다 분명히 이해될 것이다.
상세한 설명
도1은 본 발명의 특징들을 지니는 동기 서버 기법(synchronization server approach)을 배치하는 네트워크의 전체 아키텍처의 일 예를 도시한다. 이러한 클라이언트(101, 102)의 예에는, (핸드-헬드 단말기, 팜톱 컴퓨터, 인터넷 애플리언스라고도 하는) 핸드 헬드 또는 팜톱 장치들이 포함되나 이것으로 한정되지는 않는다. 일반적으로, 핸드 헬드 장치는 한 손으로 동작하면서 다른 한 손으로 쥘 만큼 충분히 작은 어떤 컴퓨터-기반의 장치를 말한다. 핸드 헬드 장치들이 하도록 계획된 본래의 작업은 많은 양의 정보가 한 번에 나타날 것을 요구하지 않기 때문에, 이들 장치들은 보다 작은 디스플레이들을 가질 수 있다. 핸드 헬드 장치들은 일반적으로 그들로 하여금 중앙 컴퓨터와 통신 및/또는 동기 하게 하는 통신설비를 포함한다. 핸드 헬드 장치들의 일 예에는, 3Com의 PALM PILOTTM, 샤프의 ZAURUSTM, 프손 PLC의 PSIONTM과 마이크로소프트 WINDOWS CETM, 스마트폰, 또는 인텔리전트 페이저 등을 실행하는 다양한 다른 "팜"타입 장치들이 포함되나, 이것으로 한정되는 것은 않는다. 그래서, 바람직한 실시예가 핸드 헬드 장치들을 언급하지만, 본 분야의 기술자들은 본 발명이 네트워크를 통해서 데이터를 동기 하는 어떤 클라이언트 장치들에 대해서도 유익하다는 것을 알 수 있을 것이다.
클라이언트들은 때때로 (동기 대리, 싱크 대리, 싱크 서버 또는 싱크 대리 서버라고도 하는)서버들(105-107)에게 접속될 수 있다. 이들 서버들(105, 106, 107)의 예에는, PC; (IBM RS6000TM과 같은) 워크스테이션; 또는 컴퓨터 본체가 포함되나 이것으로 한정되는 것은 아니다. 복제 호스트(109, 110, 111)는 핸드 헬드 장치들로부터 데이터의 복제를 유지하는 정보관리시스템을 실행하는 어떤 컴퓨터일 것이다. 복제 호스트는 PC, 워크스테이션, 또는 컴퓨터 본체 등일 것이다. 동기 대리(sync proxy)들은 네트워크(108)를 통해서 복제 호스트(replica host)들과 접속되어 있다. 핸드 헬드 장치들이 일부 또는 대부분의 시간에서 네트워크에 비접속될 수 있으나, 이들이 동기 태스크들을 수행하는 동안에는 접속(103, 104)되어 있어야만 한다. 본 분야의 기술자들은, 모뎀을 통해서 네트워크 원격 액세스 서버에게 전화를 하거나 또는 네트워크에 접속되어 있는 (데스크탑 PC와 같은) 컴퓨터로 (예를 들어 PALM PILOTTM크래들(cradle)을 사용하는) 직접적인 직렬-포트 접속(direct serial-port connection)을 지님으로써 (인터넷 또는 근거리 통신망과 같은) 네트워크에 접속할 수 있다는 것을 알 것이다. 종래와 같이, 디렉토리 서버(112)는 사용자들에 관한 정보를 미리 구성하고 저장하는 것을 포함하는 서비스들을 제공하고, 요청에 대해서 인터넷과 같은 네트워크를 통해서 정보를 동적으로 검색하는 서치 엔진(search engine)을 제공한다. 이들 서비스들의 예에는, 노벨의 노벨 디렉토리 서비스(Novell Directory Services: NDS)와 마이크로소프트의 액티브 디렉토리(Active Directory)를 포함하며, 이들 둘 다는 라이트웨이트 디렉토리 액세스 프로토콜(Lightweight Directory Access Protocol(LDAP)-디렉토리 정보를 액세스 하기 위한 인터넷 프로토콜)을 통해서 액세스 될 수 있는 디렉토리 정보를 제공한다.
본 발명에 따라서, 동기 논리(sync logic)(120) 및/또는 변형 코드(transformation code)(130)는 원격으로 저장된다. 클라이언트(101-102)와 이 클라이언트 상의 데이터 복제를 저장하는 원격 호스트 복제(remote host replica)(109-111)간의 데이터를 동기하기 위한 적응형 동기 서버의 일 예에는, 클라이언트와 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리(120)와 복제 호스트(109-111)를 식별하기 위한 동기 대리 논리(도3)가 포함된다. 동기 논리(120)는 동기 요청에 응답할 때 동기 서버(105-107)와 원격 호스트(109-111)에서 떨어져 있는 네트워크 상의 어떤 곳에도 위치할 수 있다. 동기 대리 논리는 네트워크(108)로부터 원격 동기 논리를 검색하고; 요청에 기초한 원격 호스트에 접속해서; 검색된 동기 논리를 이용하여 원격 호스트와 클라이언트간의 데이터를 동기하기 위해 적응된다. 또, 동기 요청(sync request)은 동기 동안 클라이언트와 원격 호스트 사이에서 데이터를 변환하기 위한 장치 특정의 변형 코드(130)를 식별하기 위한 정보를 포함하며, 상기 정보에 기초하여 변형 코드를 검색하고 상기 장치 특정의 변형 코드에 기초하여 원격 호스트와 클라이언트 사이에서 데이터를 변형하기 위한 수단을 포함할 수 있다. 여기서, 장치 특정의 변형 코드(device specific transformation code)는 네트워크 상의 어느 곳에서도 로칼 또는 원격으로 위치할 수 있다.
또 다르게, 서버는 클라이언트와, 이 클라이언트 상의 데이터의 복제를 저장하는 원격 호스트 복제(109-111)간에 데이터를 변형하기 위해 적응된다. 이 때, 요청은 적용 가능한 원격 복제 호스트와, 원격 호스트 상의 데이터를 클라이언트와 연관된 장치 타입의 데이터로 변형하기 위한 변형 코드(130)를 식별하기 위해 사용된다. 변형 코드는 동기 서버와 원격 호스트에서 떨어져 있는 네트워크 상의 어느 곳에서도 위치할 수 있다. 서버는 이 요청에 기초하여 원격 변형 코드(130)를 검색하고, 장치 특정의 변형 코드에 기초하여 원격 호스트와 클라이언트간의 데이터를 변형한다.
이 요청은, 동기 요청에 응답할 때, 클라이언트와 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리(120)를 식별하기 위한 정보를 가진 동기 요청을 포함할 수 있다. 서버는 이 동기 논리를 검색하고; 이 정보에 기초하여 원격 호스트에 접속해서; 변형 동안 클라이언트와 원격 호스트간의 데이터를 동기 한다.
도2는 본 발명에 따른 동기를 수행할 수 있는 핸드 헬드 장치로서 구현되는 클라이언트의 전체 아키텍처의 일 예를 도시한다. 도시하듯이, 핸드 헬드 장치는, CPU(201), 휘발성 RAM과 같은 주 메모리(main memory)(203), 예로서 (오퍼레이팅 시스템과 같은) 시스템들, (이-메일과 캘린더 소프트웨어와 같은) 애플리케이션들, (어드레스 북 또는 메모 패드의 내용과 같은)데이터를 저장하기 위한 비휘발성 RAM, ROM, 또는 디스크를 사용하는 스토리지 메모리(storage memory)(202)를 포함한다. 대부분의 핸드 헬드 장치들은 디스켓 없이도 RAM과 ROM에 모든 정보를 저장한다. 주 메모리(203)는, 스토리지 메모리(202)로부터 주 메모리(203) 내로 적재 될 수 있는 컴퓨터 실행 가능한 코드로서 바람직하게 구현되는 본 발명의 핸드 헬드 장치 논리(204)를 저장한다. 이 때, 본 발명의 핸드 헬드 논리(204)는 (도5에 도시된 설명과 같은) 동기 개시자(sync initiator)(205), (도7에 도시된 설명과 같은) 동기 핸들러(206), (도11에 도시된 설명과 같은) 데이터 매니저(207)를 포함한다. 본 발명의 핸드 헬드 논리(204)는 처음에는 스토리지 메모리(202)에 저장된다. 동기 태스크가 시작될 때, CPU(201)는 (전부 또는 일부가 요구인출 방식(on-demand fashion)으로) 동기 논리를 주 메모리(202) 내로 적재하고 동기를 위해 이 논리의 실행을 시작한다.
도3은 본 발명의 동기 대리로서 구성된 컴퓨팅 장치의 아키텍처의 예를 도시한다. 이러한 예들에는, PC; 워크스테이션; 서버; 또는 컴퓨터 본체가 포함되지만 이것에 한정되는 것은 아니다. 동기 대리는 CPU(301), 디스크와 같은 저장 장치들(302), RAM과 같은 주 메모리(303)가 포함될 수 있다. 이 때, 주 메모리(303)는 동기 대리 논리(304)를 저장하며, 이것은 디스크들(302)로부터 주 메모리(303) 내로 적재 될 수 있는 컴퓨터 실행 가능한 코드로서 바람직하게 구현된다. 이 예에서, 동기 대리 논리(304)는 (도6에 도시된 설명과 같은) 동기 억셉터(305) 논리, (도8에 도시된 설명과 같은) 동기 핸들러(306) 논리, (도9에 도시된 설명과 같은) 캐시 매니저(307), (도13에 도시된 설명과 같은) 적재 매니저(308)를 포함한다.
도4는 본 발명의 복제 호스트로서 구성된 컴퓨팅 장치의 아키텍처의 예를 도시한다. 복제 호스트의 예에는, PC; 워크스테이션; 서버; 또는 컴퓨터 본체가 포함되나 이것들로 한정되는 것은 아니다. 도시하듯이, 복제 호스트는 CPU(401), 디스크들과 같은 저장장치(402), RAM과 같은 주 메모리(403)를 포함할 수 있다. 주 메모리(403)는 복제 호스트 논리(404)를 저장하며, 이것은 디스크들(402)로부터 주 메모리(403) 내로 적재 될 수 있는 컴퓨터 실행 가능한 코드로서 바람직하게 구현된다. 이 복제 호스트 논리(404)는 (도12에 도시된 설명과 같은) 복제 억셉터(405)와 (도11에 도시된 설명과 같은) 복제 매니저(406)를 포함한다.
종래와 같이, 핸드 헬드 장치는 동기 태스크들이 수행 될 수 있기 전에 네트워크 접속을 먼저 설정할 필요가 있다. 인터넷 또는 근거리 통신망과 같은 네트워크로 핸드 헬드 장치를 접속할 때 이용할 수 있는 많은 기술들이 있다. 예를 들어, PALM PILOTTM은 이 장치에 부수되는 TCP/IP 소프트웨어를 가진다. PALM PILOTTM가 모뎀에 부착될 때, 이것은 인터넷에 접속하기 위해 전화선을 통해 인터넷 서비스 제공자(Internet Service Provider: ISP)에게 전화하기 위한 TCP/TP 소프트웨어를 실행할 수 있다. 또 다르게는, 이 장치는 직렬 포트를 통해서 네트워크에 접속되어 있는 데스크탑 PC로 접속될 수 있다. PC를 네트워크 액세스 서버로서 작용하게 하고 이 PC의 직렬 포트로 접속하는 어떤 장치에 네트워크의 접속을 제공하는 (마이크로소프트의 리모트 액세스 서비스(Remote Access Service) 또는 RAS와 같은) 이용 가능한 프로그램들이 있다. 클라이언트 장치의 네트워크 접속 프로세스는 본 발명의 일부는 아니지만, 본 발명에서 구현된 동기 방법들의 필요 조건이다.
상기 장치가 네트워크에 대한 접속을 설정한 후, 이 장치는 도2에서 동기 개시자(205)에 의해 도시되며, 도5에 보다 상세히 도시되어 있는, 동기 개시 프로세스를 시작함으로써 동기 태스크들을 수행할 수 있다. 동기 프로세스를 시작하기 위해, 동기 개시자는 먼저 동기 대리로 동기 요청을 송신한다(501). 본 분야의 기술자들은, 동기 대리들의 네트워크 어드레스들이 핸드 헬드 장치들에 의해 미리 알려질 수 있고, 하나의 동기 대리 어드레스가 핸드 헬드 장치들에 의해 디폴트로서 미리 구성될 수 있다는 것도 알 수 있다. 핸드 헬드 장치가 동기를 요청하기 위해 대리에게 송신하는 정보에는, (사용자 ID 및 인증 및 허가(authentication and authorization)를 위한 암호화된 패스워드 또는 공유 열쇠와 같은) 사용자와 핸드 헬드의 장치 및 시스템 타입에 관한 식별정보뿐 아니라 동기 요청인 것을 나타내는 상호간에 이해하는 코드를 포함할 수 있다. 인증 및 허가를 위한 방법이 본 발명의 일부가 아니라고 해도, 본 분야의 기술자들은, 네트워크를 통해 기존의 인증 및 허가 기술들이 핸드 헬드의 동기 개시자(도5의 501)와 동기 대리의 동기 억셉터(도3의 305)간의 협동적인 과정 내로 삽입될 수 있다는 것을 알 것이다.
만일 동기 요청이 거절되면, 동기 개시 프로세스는 동기 태스크를 종료한다(504). 그렇지 않으면, 동기 개시자는 동기 될 필요가 있는 애플리케이션들의 리스트들을 결정한다(502). 동기 될 애플리케이션들은 예를 들어 어드레스 북 애플리케이션, 메모 패드 애플리케이션, 캘린더 애플리케이션, 이-메일 애플리케이션, 또는 핸드 헬드 장치에서의 다른 애플리케이션들을 포함할 것이다. 본 분야의 기술자들은, 동기 될 애플리케이션들의 리스트를 결정하는 것이 (사용자 인터페이스로부터 동기 될 애플리케이션들을 체크하는 것과 같은) 사용자로부터의 스크린 입력, 애플리케이션들의 디폴트 세트의 검색, 또는 동기하기 위해 애플리케이션들을 동적으로 선택하는 소프트웨어를 포함할 수 있다는 것을 알 것이다. 일단 동기 될 애플리케이션들의 리스트가 결정되면, 동기 개시 프로세스는 리스트 상의 각 애플리케이션에 대한 (도7에 도시된 설명과 같은) 동기 핸들러 프로세스를 시작한다(503). 동기 대리의 첫 번째 태스크는 (도3의 305와 도6과 관련된 설명에서와 같은) 동기 억셉터를 시작하는 것이다.
도6은 본 발명의 대리 동기 억셉터 형태의 일 예를 도시한다. 도시하듯이, 동기 억셉터는 동기 대리가 핸드 헬드 장치들로부터 동기 요청들을 연속해서 수신하는 무한 루프(infinite loop)일 것이다(601). 동기 요청을 수신할 때, 동기 억셉터는 자신의 계산 적재가 자신의 용량에 도달하는지를 먼저 조사한다(602). 만일 자신의 계산 적재가 자신의 용량에 도달한다면, 동기 억셉터는 이 요청을 (도13에 도시된 설명과 같이) 동일 네트워크 상의 또 다른 동기 대리로 전송하기 위해 적재 매니저(603)를 시작한다. 만일 동기 대리가 과적재 되지 않으면, 동기 억셉터는 요청하는 핸드 헬드 장치들로부터 수신된 요청 메시지 내부의 식별 정보에 기초한 종래의 인증 및 허가 과정을 수행할 수 있다. 만일 (예를 들어 핸드 헬드 사용자가 인증 하는데 실패했거나 또는 이 동기 대리에 의한 동기에 대해 허가 되지 않는 것과 같은) 인증 및 허가 과정이 실패하면, 대리는 거절 메시지를 핸드 헬드로 되돌리며(605), 접속을 종료하고(606), 되돌아가서 다음 동기 요청을 기다린다(601). 만일 인증 및 허가 과정이 성공하면, 대리는 수락 메시지를 요청하는 핸드 헬드 장치로 되돌린다(607). 다음으로, 대리는 이 동기 태스크에 대한 동기를 위해 대리 동기 핸들러를 시작한다(608).
본 분야의 기술자들은, 동기 억셉터 프로세스가 현재의 소프트웨어 기술을 사용하는 멀티스레드 기법(multithread approach)으로 바람직하게 구현된다는 것을 알 것이다. 이것은, 핸드 헬드로부터 요청을 수신할 때(601), 동기 억셉터가 이 요청에 대한 나머지 단계들(602-608)을 진행하기 위해 새로운 스레드(thread)를 시작한다는 것을 의미한다. 603에서 601까지, 606에서 601까지, 608에서 601까지의 3가지 화살표 방향은 단순히 이 스레드의 종료를 나타낸다. 또, 본 분야의 기술자들은 멀티스레딩을 지원하지 않는 오퍼레이팅 시스템에서 새로운 스레드의 생성(601)이 새로운 프로세스의 생성으로 간주될 수 있다는 것을 알 것이다. 그래서, 스레드의 종료는 프로세스의 종료와 동일하다.
다음으로 다시 핸드 헬드 장치로 돌아가면, 도5에서 언급하듯이, 동기 될 각 애플리케이션에 대한 동기 핸들러는 수락 메시지가 대리로부터 수신된(605) 후 연속해서 시작된다(503). 도7은 (애플리케이션에 관한) 동기 핸들러 논리의 보다 상세한 예를 도시한다.
도7에 도시하듯이, 특정 애플리케이션에 대한 동기 핸들러는 먼저 이 애플리케이션과 연관된 정보를 검색한다(701). 이들은 복제 호스트의 ID, 동기 논리의 ID, 이 애플리케이션에 대한 변형 코드의 ID를 바람직하게 포함한다(701).
애플리케이션에 대한 복제 호스트는 이 애플리케이션의 복제를 저장하는 컴퓨터 장치이다. 이 장치는 PC, 워크스테이션, 서버 또는 컴퓨터 본체일 수 있으며, 접속된 네트워크여야만 한다. 복제 호스트의 ID는 복제 호스트의 네트워크 어드레스와 복제 호스트 내부에서의 애플리케이션의 복제 위치를 포함할 수 있다. 본 분야의 기술자들은, 현재 인터넷 기술에 기초한, URL(Universal Resource Locator)이 복제 호스트 ID를 구현하는 가능한 방법인 것을 알 것이다.
바람직하게 실행 가능한 코드로서 구현된 애플리케이션에 대한 동기 논리는, 충돌을 해결하고, 무효 방향(overriding direction)을 특정하고, 이 애플리케이션에 대한 특정한 필요를 이행하기 위한 어떤 행동들을 취하기 위해 사용될 수 있다. 예를 들어, 비용 유지 애플리케이션에 관한 동기 논리는, 핸드 헬드 레코드들이 실제 지불을 특정하는 반면, 핸드 헬드가 제시된 가격들을 표시하는 공동 레코드들로서 (호텔 비용과 같은) 어떤 레코드들에 대한 (공동 데이터베이스 서버와 같은) 복제 호스트를 항상 무효시킬 것을 특정할 수 있다. 동기 논리의 ID는 동기 논리의 고유한 이름, 네트워크 어드레스, 이 동기 논리가 저장되는 어드레스 내의 위치를 포함할 수 있다. 또, 본 분야의 기술자들은 기존의 현재 인터넷 기술을 이용하여 URL이 동기 논리 ID를 구현하는 합리적인 방법이라는 것을 재차 알 수 있을 것이다.
실행 가능한 코드로서 바람직하게 구현되는 특정 장치 및 애플리케이션 조합을 위한 변형 코드는, 다른 CP 파워, 메모리 용량, 물리적 구조를 지니는 컴퓨팅 장치들에서 어떤 정보가 알맞게 사용되고 처리될 수 있도록 데이터를 필터하고, 변형하고, 변경하기 위해 사용될 수 있다. 예를 들어, PC 복제 호스트로부터 클라이언트로 송신되고 있는 이미지들을 가진 웹 페이지는, 이 페이지가 지나치게 많은 메모리를 소비하는 일없이 클라이언트의 스크린에 나타날 수 있도록 하기 위해서, 모든 이미지들이 제거되거나(필터 기능) 또는 매우 낮은 해상도로 줄어들게 하기 위해(변형 기능) 변형 코드들을 실행할 수 있다. 애플리케이션을 위한 변형 코드의 ID는 변형 코드의 고유 이름, 네트워크 어드레스, 변형 코드가 저장되는 이 어드레스 내의 위치를 포함할 수 있다. 본 분야의 기술자들은 기존의 인터넷 기술을 사용하여 URL이 변형 코드 ID를 구현하기 위한 합리적인 방법이라는 것을 역시 알 것이다.
본 발명의 또 다른 특징에 따라서, 각 애플리케이션에 대한 상술한 3가지 ID들은 핸드 헬드 장치들 또는 이 핸드 헬드 장치의 사용자를 위한 디렉토리 서비스에서 미리 구성되어서 저장된다. 애플리케이션에 관한 이들 ID들이 핸드 헬드 장치에 저장되면, 동기 핸들러는 동기 식별자(sync identifier)를 송신하고, 이 동기 식별자는 동기 대리에 대한 3가지 ID들과 함께 동기 될 애플리케이션의 이름을 포함하며(701), 다음으로 루프로 들어간다(702). 이들 ID들이 디렉토리 서비스에 의해 저장되면, 동기 핸들러는 사용자, 장치, 애플리케이션, (동기 대리가 디렉토리 서비스를 액세스하기 위해 사용할) 디렉토리 서버의 어드레스를 포함하는 동기 식별자를 송신한다(701).
본 발명의 기술자들은, 3가지의 ID들 중 어느 것을 송신해야 할 필요성이 디폴트 설정을 사용함으로써 제거될 수 있다는 것을 알 수 있다. 예를 들어, 핸드 헬드 장치가 동기 될 디폴트 애플리케이션으로 동기 대리를 구성하면, 동기 대리는 이 핸드 헬드 장치에 대한 동기 프로세싱 동안 동기 될 애플리케이션의 이름을 검색할 필요가 없다. 이 경우 애플리케이션 이름의 부족이 동기 될 디폴트 애플리케이션을 가리킨다.
이와 비슷하게, 핸드 헬드 장치의 사용자는 동기 대리에 디폴트 복제 호스트 또는 장치를 구성할 수도 있다. 이들 경우에, 동기 대리는 핸드 헬드 장치 또는 디렉토리로부터 정보를 검색할 필요가 없다. 대신에, 동기 대리는 이런 정보를 얻기 위해 핸드 헬드 장치를 위해 설정되는 자신의 미리 구성된 디폴트를 이용할 수 있다.
복제 호스트, 동기 논리, 또는 변형 코드와 같은 정보의 ID가 네트워크 어드레스와 이들 각각의 어드레스를 가진 정확한 이름 및 위치들을 포함하는 것으로 이미 설명되었지만, ID에 대한 또 다른 구현은 자신의 해당 네트워크 어드레스의 특정을 요구하지 않는다. 이 때, 이 ID에 포함된 이름에 기초하여 특정 ID의 정확한 네트워크 어드레스를 찾는 것이 동기 대리의 책임이다. 일 예는, 변형 코드에 대한 ID가 핸드 헬드 장치에 대한 적절한 변형 코드의 네트워크 어드레스를 포함하지 않는 경우의 애플리케이션에 대한 동기 요청을 핸드 헬드 장치가 하는 것이다. 변형 코드의 ID를 수신할 때, 동기 대리는 동기 요청을 하는 장치의 타입에 기초하여 적절한 변형 코드가 존재하는 적절한 네트워크 위치를 결정한다.
도7을 다시 언급하면, 루프(702) 내에서, 동기 핸들러는 먼저 동기 대리로부터 API(애플리케이션 프로그램 인터페이스) 호출을 기다린다(702). 대리로부터의 호출이 이 애플리케이션에 대한 동기 프로세스가 완료되었다는 것을 가리키면, 동기 핸들러는 종료하고 동기 될 다음 애플리케이션을 처리하기 위해 동기 개시자로 되돌아간다. API 호출이 (데이터베이스의 개방, 레코드의 읽기와 같은) 데이터 관리 기능이라면, 동기 핸들러는 이 API를 처리하기 위해 데이터 매니저를 시작한다(703)(도11에 보다 상세히 논의함).
동기 대리에서의 동기 억셉터(도6)가-인증 및 허가 과정이 완성되고 동기 요청이 수락된 후- 요청하는 핸드 헬드로 수락 메시지를 송신해서(도6의 607), 동기를 처리하기 위해 대리 동기 핸들러를 시작할 것이다(도6의 608).
도8은 대리 동기 핸들러의 상세한 설명의 일 예를 도시한다. 도시하듯이, 대리 동기 핸들러는 먼저 요청하는 핸드 헬드 장치로부터 동기 될 애플리케이션의 이름과 복제 호스트, 동기 논리, 변형 코드에 대한 각각의 3가지 ID들를 수신할 것이다(801). 이 정보는 동기 요청을 하는 핸드 헬드 장치로부터 직접적으로 또는 상술한 디렉토리 서버를 통해서 수신될 수 있다. 동기할 애플리케이션들이 없다면, 핸드 헬드는 종료를 나타내는 종료 메시지를 송신할 것이다. 이러한 종료 메시지가 상술한 3가지 ID들을 대신해서 수신되면, 동기 핸들러는 동기 프로세스를 종료한다. 그렇지 않으면, 동기 핸들러는 동기 논리 ID에 기초하여 동기 논리를 검색하기 위해 캐시 매니저를 요청할 것이다(802). 캐시 관리의 일 예가 도9에서 설명된다. 동기 논리가 검색된 후, 동기 핸들러는 복제 호스트 ID에 기초하여 애플리케이션의 복제에 대한 접속을 설정할 것이다(803). 일단 접속이 설정되면, 동기 핸들러는 이 애플리케이션에 대한 동기 태스크를 수행하기 위해 동기 논리의 실행을 시작할 수 있다(804). 동기 논리 실행의 보다 상세한 예가 도10과 관련하여 설명된다.
도9는 핸드 헬드 애플리케이션들을 위한 동기 논리와 변형 코드들과 같은 객체들의 캐싱(caching)과 검색을 관리하기 위해 동기 대리에 의해 전개되는 캐시 매니저의 예를 도시한다. 객체에 대한 요구를 수신할 때(901), 캐시 매니저가 그 객체가 캐시 내에 있는지를 확인하기 위해 체크한다. 이 캐시는 주메모리(303) 내 또는 디스크들(302) 내에 있을 수 있다.
요구된 객체가 캐시 내에 없으면, 캐시 매니저는 이 객체의 ID에 기초하여 네트워크로부터 객체를 검색한다(902). 일단 객체가 네트워크로부터 검색되면, 객체는 캐시 내로 삽입되고(903) 요청자에게 되돌아간다(904). 만일 객체가 캐시 내에서 발견되면, 캐시 매니저가 캐시 내의 객체가 여전히 현재의 것인지를 확인하기 위해 체크한다. 만일 현재의 것이 아니면, 캐시 매니저는 이것의 ID를 사용하는 네트워크로부터 객체를 검색한다(902). 최근의 객체가 네트워크로부터 검색된 후, 이 객체는 캐시 내의 보다 오래된 객체를 대신해서(903) 요청자로 되돌아간다(904). 객체가 최근의 것이면, 그것이 요청자에게 되돌아간다(904).
캐시 객체의 현재 확인(cache object currency validation)이 본 발명의 특징은 아니지만, 본 분야의 기술자들은 이러한 기존의 기술들이 본 발명의 캐시 매니저 형태에 의해 적용될 수 있다는 것을 알 것이다. 예를 들어, 캐시 매니저는 고정된 시간 기간 동안 객체가 캐시 내에 있다면, 객체의 날짜를 고려하지 않는 정책을 적용할 수 있다. 또 다른 예는, 캐시 매니저가 원래의 객체 제공자로 등록해서, 원래의 객체가 갱신될 때 (또는 생성 또는 삭제될 때)마다, 이 제공자가 객체의 변화에 관해서 캐시 매니저에게 메시지를 송신할 수 있는 것이다. 캐시 매니저는, 이러한 메시지를 수신할 때, 캐시로부터 이 객체를 제거해서 이를 무효로 하거나, 또는 최근의 것을 검색해서 캐시 내의 오래된 객체를 대신할 수 있다.
본 발명의 대리 동기 핸들러(도8)에 의한 동기 논리(804) 실행의 예가 도10에 보다 상세히 도시되어 있다. 도시하듯이, 동기 논리는, 동기 요청을 하는 핸드 헬드 장치(1004)와 요청하는 핸드 헬드를 위한 이 동기 논리의 애플리케이션의 복제를 호스팅 하는 복제 호스트(1005) 둘 다로부터 데이터를 읽고 이 곳으로 데이터를 기입하는 것을 포함한다. 하나의 핸드 헬드 장치 내의 데이터 관리 시스템들과 이 (예를 들어 PALM PILOTTM이-메일 vs 로터스 NOTESTM이-메일과 같은) 핸드 헬드 장치의 복제 호스트 내에 전개된 정보 관리 시스템간에는 많은 차이가 있을 것이다. 예를 들어 데이터 포멧들이 다를 수 있다. 핸드 헬드 장치와 복제 호스트간의 저장 능력들은 다를 것이다(예를 들어 PALM PILOTTMvs 워크스테이션). 또한 이들간의 (예를 들어 흑-백 저해상도 PALM PILOTTMvs 고해상도 PC 모니터와 같이) 디스플레이 장치들도 다를 것이다. (예를 들어 워크스테이션 복제 호스트와 같은) 하나의 끝에서 (예를 들어 PALM PILOTTM와 같은) 다른 끝으로의 적절한 변형 정보에 대한 필요성이 변형 코드의 실행에 의해 본 발명에서 처리된다.
애플리케이션을 위한 동기 논리의 실행 동안(도10), 동기 논리는 핸드 헬드와 복제 호스트에서 애플리케이션의 각 데이터 항목에 대한 갱신 방향을 결정한다. 예를 들어, 핸드 헬드와 복제 호스트로부터의 동일한 고유 ID의 두 데이터 항목들 각각에 대해서, 동기 논리는 이 핸드헬드 데이터 항목이 복제 호스트의 데이터 항목을 무효로 하는지 또는 그 반대인지를 결정할 수 있다. 또, 동기 논리는 이들 두 데이터 항목들이 동일하고 어떠한 데이터 이동(movement)도 필요하지 않는지를 결정할 수 있다. 또, 이들 두 항목들이 (예를 들어 둘 다 독립적으로 갱신되어지는 것과 같이) 충돌해서 자신의 버전을 보유하면서 각 항목을 중복할 것을 결정하는 것을 발견하는 것도 가능하다.
본 발명의 대리 동기 핸들러 형태에 있어서, 데이터 항목이 (예를 들어 복제 호스트로부터 핸드 헬드 장치로, 또는 그 반대와 같이) 하나의 장치로부터 또 다른 장치로 기입되기 전에, 대리 동기 핸들러들은 데이터 변형이 적용 가능한지를 체크한다. 만일 가능하다면, 대리 동기 핸들러가 (동기 요청을 하는 핸드 헬드 장치로부터 송신된 ID에 의해 특정된) 변형 코드를 요청할 수 있다(1002). 이 요청된 객체를 이용하기 위해 캐시 매니저가 도9에 도시된 과정들을 진행할 것이다. 일단 동기 되고 있는 애플리케이션에 대한 변형 코드가 이용 가능하면, 대리 동기 핸들러는 장치로 기입될 데이터 항목에 대한 코드를 실행한다(1003).
도11은 데이터 매니저(207) 또는 복제 매니저(406)에 대한 논리의 예를 도시한다. 대리 동기 핸들러(306 및 도8)는 APIs를 통해서 핸드 헬드 장치들과 이들의 복제 호스트들 둘 다로부터 데이터를 읽고(1103) 이들로 데이터를 기입하기(1104) 위한 일반적인 기술들을 사용할 수 있다. 동기 대리로부터 수신된 API 호출들을 번역해서 적절한 데이터 또는 복제 관리 기능들을 수행하는 것은 데이터 매니저(207)와 복제매니저(406)에 달려 있다. 본 발명의 기술자들은 이들 API 호출들이 데이터 항목의 읽기(1103), 데이터 항목의 기입(1104), 데이터 항목의 갱신(1105), 데이터 항목의 삭제 등과 같은 보통의 데이터 관리 기능들 일 수 있다는 것을 알 것이다. 동기를 보다 효율적으로 처리하기 위해서, 애플리케이션에 대한 동기 논리가, 동기 프로세스를 신속히 처리하기 위해, 핸드 헬드들과 그들의 복제 호스트들로부터 이용 가능한 어떤 버전 및 갱신 히스토리 정보(version and update history information)의 이점을 가지도록 기입될 수 있다. 본 분야의 기술자들은 상술한 API들이 핸드 헬드들과 복제 호스트들로부터 버전 및 갱신 히스토리 정보를 검색(1106) 및/또는 설정(1106)하는 기능들을 포함할 수 있다는 것을 알 것이다.
도12는 본 발명의 복제 억셉터(405) 형태의 일 예를 도시한다. 복제 억셉터는 먼저 API 호출을 기다리는 루핑 프로세스(looping process) 일 수 있다(1201). API 호출이 동기 대리로부터 도달할 때, 복제 억셉터는 요청하는 동기 대리의 신분을 확인하기 위한 인증 및 허가 프로세스를 시작할 것이다(1202). 인증 및 허가 프로세스가 실패하면, 복제 억셉터는 API 호출을 거절한다(1203). 그렇지 않으면, 복제 억셉터는 적절한 복제 관리 기능을 처리하기 위해 복제 매니저를 시작한다(1204).
도13은 본 발명의 동기 대리(308)에서의 적재 매니저 형태의 일 예를 도시한다. 대리 동기 억셉터(도6)가 동기 요청을 수신해서 이 동기 대리가 과적재 되는지를 검출할 때, 상기 동기 요청을 또 다른 동기 대리로 전송하기 위해 적재 매니저를 시작할 수 있다(603). 동기 요청을 전송하기 위한 요구를 수신할 때(1301), 적재 매니저는 과적재 되지 않은 동일 네트워크 상의 또 다른 대리가 존재하는지를 결정한다(1302). 만일 이러한 대리가 발견되면, 적재 매니저는 이 동기 대리로 동기 요청을 전송한다(1304). 동일 네트워크 상의 모든 대리가 완전히 적재되면, 적재 매니저는 상기 동기 요청을 거절한다(1303). 본 분야의 기술자들은, 모든 동기 대리들로부터의 적재 매니저들이 또 다른 동기 대리로부터 적재 정보를 교환하기 위한 프로토콜에 참여할 수 있다는 것을 알 것이다. 동일 네트워크 상의 다른 대리들로부터의 이러한 적재 정보에 기초해서, 적재 매니저는 네트워크를 통해서 (현재 가장 낮은 계산 적재를 지니는 대리를 선택할 수 있는 것과 같이) 전체 적재 균형을 위해 전송할 대리를 선택하는 정책을 채택할 수도 있다.
대리 동기 핸들러는 602에 도시한 것과 같이 자신의 적재 조건에 기초하지 않고서 동기 요청을 전송할 것을 결정할 수 있다. 다중 동기 대리들을 전개하는 네트워크에서, 각 동기 대리가 특정 핸드 헬드 장치 또는 정보 관리 시스템에 대한 데이터 동기를 특정하는 것이 가능하다. 예를 들어, PALM PILOTTM와 WINDOWS CETM에 기초한 장치들을 포함하는 핸드 헬드 장치들에 대한 데이터 동기를 지원하는 네트워크에서, 두 개의 동기 대리들은 PALM PILOTTM를 위한 데이터 동기를 특정하는 대리1과 WINDOWS CETM에 대한 데이터 동기를 특정하는 대리2로 배치되어 있다. 그래서, 이러한 구조에 기초해서, 시간이 갈수록 PALM PILOTTM장치들과 연관된 동기 논리와 변형 코드들이 대리1에 의해 점점 캐시될 것이고, WINDOWS CETM장치들과 연관된 동기 논리 및 변형 코드들이 대리2에 의해 점점 캐시 될 것이다. 동기 요청을 수신하면(601), 단순히 적재를 검사(602)하는 대신에 동기 대리는 장치 타입을 체크하고, 만일 이것이 이 장치 타입으로 특정되지 않으면, 상기 요청을 이 장치 타입을 특정하는 대리로 전송할 것이다. 예를 들어, 대리1이 WINDOWS CETM장치로부터 동기 요청을 수신할 때, WINDOWS CETM에 대한 데이터 동기를 특정하는 대리2로 상기 요청을 전송해서, 이 동기 요청을 수행하기 위해 필요한 최신의 동기 논리 및 변형 코드들을 캐시 할 것이다.
상술한 것과 같은 미리 구성된 특정 분리구도 대신에, 동기 대리들은 그들 사이에서 그들이 서로 공유하는 적재 조건과 비슷하게, 그들의 캐싱 상태를 동적으로 방송할 수 있다. 이런 방식으로 각 동기 대리는, 캐싱 조건이 요청을 처리하는데 더욱 바람직한 또 다른 동기 대리로 상기 동기 요청을 동적으로 전송할 수 있다.
본 발명의 바람직한 실시예는, 클라이언트(101, 102)와 서버(105-107)에 제공되는 CPU(201, 301) 상에서의 실행을 위한 컴퓨터 프로그램 제품 또는 프로그램 저장장치 상에서 실체적으로 실시되는 소프트웨어로서 구현될 수 있는 특징들을 포함한다. 예를 들어, 선(Sun)의 JAVATM와 같은 인기 있는 객체지향 컴퓨터 실행 가능한 코드에서 구현되는 소프트웨어가 다른 플랫폼들을 통해서 이식성(portability)을 제공한다. 본 분야의 기술자는 C++와 스몰토크를 포함하나 이것으로 한정되지는 않는 다른 과정지향 및 객체지향(object-oriented:OO) 프로그래밍 환경들이 또한 채택될 수 있다는 것을 알 것이다.
또한, 본 분야의 기술자들은 본 발명의 방법들이 컴퓨터 또는 다른 프로세서에 기초한 장치 상에서의 실행을 위한 소프트웨어로서 구현될 수 있다는 것도 알 것이다. 소프트웨어는 자기, 전자, 광학, 또는 다른 영구 프로그램 및/또는 데이터 저장장치 상에서 구현될 수 있으며, 이러한 것에는 자기디스크들, DASD, 버블 메모리; 테이프; CD-ROMs과 DVD(디지털 비디오 디스크들)와 같은 광 디스크들; 코어, ROM, PROM, 플래시 메모리 또는 배터리 백트 RAM(battery backed RAM)과 같은 (비휘발성이라고도 하는) 다른 영구 저장장치들이 포함되나 이것으로 한정되는 것은 아니다. 본 분야의 기술자들은 본 발명의 사상 및 범위 내에서 클라이언트(101, 102) 또는 서버(105-107)의 메모리에서 설명된 하나 이상의 구성요소들이 디스크(302), 스토리지 메모리(202), 네트워크(108), 또 다른 서버를 통해 직접적으로 액세스되고 관리될 수 있으며, 또는 복수의 서버들을 통해서 분포될 수 있다는 것을 알 것이다.
본 발명이 바람직한 실시예들에 따라서 설명되었지만, 첨부된 청구범위들의 범위 내에 속하는 다양한 동등, 개량 및 개선들이 현재 및 미래에 본 분야의 기술자들에 의해 이해 될 수 있을 것이다. 따라서, 이들 청구범위들은 먼저 개시된 발명의 적절한 보호를 유지하도록 해석되어야 한다.
상술한 바와 같이, 본 발명에 의해 클라이언트들간의 갱신 동기를 수행할 때 계산 플랫폼과 매개물로서 작용하는 동기 대리(또는 싱크 대리 또는 싱크 서버)를 위한 개선된 방법, 장치, 프로그램 저장장치가 제공된다.

Claims (110)

  1. 클라이언트와 상기 클라이언트 상의 데이터의 복제를 저장하는 원격 호스트 복제(remote host replica) 사이에서 데이터를 동기하기 위한 적응형 동기 서버(adaptive sync server)에 있어서,
    복제 호스트(replica host)와 상기 클라이언트와 상기 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리(sync logic)를 식별하기 위한 동기 억셉터 논리(sync acceptor logic); 여기서, 상기 동기 논리는 동기 요청(sync request)에 응답할 때 상기 동기 서버와 상기 원격 호스트에서 떨어져 있는 네트워크 상의 어느 곳에서도 위치할 수 있음;
    상기 네트워크로부터 원격 동기 논리를 검색하고, 상기 원격 호스트에 접속하여, 상기 검색된 동기 논리를 이용하여 상기 클라이언트와 상기 원격 호스트간의 데이터를 동기하기 위한, 상기 동기 억셉터 논리에 결합되어 있는 동기 핸들러 논리(sync handler logic)를 포함하는
    적응형 동기 서버.
  2. 제 1 항에 있어서,
    상기 동기 억셉터 논리가,
    상기 복제 호스트와 상기 원격 동기 논리를 식별하기 위한 정보를 포함하는 상기 동기 요청을 상기 클라이언트로부터 수신하기 위한 수단을 더 포함하는
    적응형 동기 서버.
  3. 제 1 항에 있어서,
    상기 동기 논리가,
    충돌을 해소하고;
    무효 방향(overriding direction)을 특정하고;
    상기 애플리케이션의 특정 요구를 충족시키기 위한 어떤 동작들을 취하는 것 중 하나 이상을 위한 수단을 포함하는
    적응형 동기 서버.
  4. 제 1 항에 있어서,
    상기 동기 요청이, 상기 복제 호스트와 상기 동기 논리를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하며;
    상기 동기 핸들러 논리가, 상기 동기 요청에 응답할 때 상기 정보를 검색하기 위한 수단을 더 포함하는
    적응형 동기 서버.
  5. 제 1 항에 있어서,
    상기 동기 요청이, 동기 동안 상기 클라이언트와 상기 원격 호스트간의 데이터를 변환하기 위한 장치 특정의 변형 코드(device specific transformation)를 식별하기 위한 정보를 포함하며;
    상기 동기 핸들러 논리가, 상기 정보에 기초하여 변형 코드를 검색하여 상기 장치 특정의 변형 코드에 기초하여 상기 원격 호스트와 상기 클라이언트간의 데이터를 변환하기 위한 수단을 포함하는
    적응형 동기 서버.
  6. 제 5 항에 있어서,
    상기 장치 특정의 변형 코드가, 상기 네트워크 상의 어느 곳에서도 원격으로 위치할 수 있는
    적응형 동기 서버.
  7. 제 5 항에 있어서,
    상기 동기 요청이, 상기 클라이언트와 상기 원격 호스트간의 데이터를 변형하기 위한 상기 장치 특정의 변형 코드를 식별하기 위한 디렉토리 서비스 저장 정보(directory service storing information)의 어드레스를 포함하며;
    상기 동기 핸들러 논리가, 상기 정보에 기초하여 원격 변형 코드를 검색하고 상기 장치 특정의 변형 코드에 기초하여 상기 원격 호스트와 상기 클라이언트간의 데이터를 변환하기 위한 수단을 포함하는
    적응형 동기 서버.
  8. 제 5 항에 있어서,
    상기 변형 코드가,
    상기 데이터가 하나 이상의 다른 CPU 파워들, 메모리 용량들, 물리적 구성들을 가지는 다른 컴퓨팅 장치들에서 사용되고 처리될 수 있도록, 상기 데이터를 필터링 하고; 변형하며; 변경하는 것 중 하나 이상을 위한 수단을 포함하는
    적응형 동기 서버.
  9. 제 1 항에 있어서,
    서버 계산 적재(server computation load)와 서버 계산 용량(server computation capacity)을 모니터링 해서 상기 계산 적재 및 상기 계산 용량을 협동하는 동기 서버들(collaborating sync server)과 공유하기 위한, 상기 억셉터 논리에 결합된 적재 매니저(load manager)를 더 포함하며;
    상기 적재 매니저가, 상기 서버 계산 적재가 임계 치를 넘을 때, 상기 동기 요청을 적재가 적은 서버로 전환하기 위한 논리를 포함하는
    적응형 동기 서버.
  10. 제 9 항에 있어서,
    상기 네트워크가 하나 이상의 인터라넷과 인터넷을 포함하며.
    여기서 상기 변형 코드가, 상기 원격 호스트로부터 상기 핸드 헬드 장치로 송신된 웹페이지가 상기 핸드 헬드 장치의 메모리 제약들 내에서 상기 핸드 헬드 장치 상의 스크린 상에 나타날 수 있도록, 상기 웹페이지에 포함된 이미지의 해상도를 변형하거나 또는 상기 이미지를 필터링 하기 위한 수단을 더 포함하는
    적응형 동기 서버.
  11. 제 1 항에 있어서,
    캐시 메모리 내로 상기 동기 논리를 검색해서 저장하기 위한, 상기 동기 핸들러에 결합된 캐시 매니저 수단(cache manager means)을 더 포함하는
    적응형 동기 서버.
  12. 제 11 항에 있어서,
    상기 캐시 매니저 수단이,
    상기 캐시 메모리 내로 상기 동기 논리를 프리셋팅(presetting)해서 저장하기 위한 수단을 더 포함하는
    적응형 동기 서버.
  13. 제 1 항에 있어서,
    정보를 식별하는 것에 URL을 포함하는
    적응형 동기 서버.
  14. 클라이언트와 상기 클라이언트 상의 데이터의 복제를 저장하는 원격 호스트 복제 사이에서 데이터를 변형하기 위한 적응형 서버에 있어서,
    상기 클라이언트와 연관된 장치 타입의 데이터로 상기 원격 호스트 상의 데이터를 변형하기 위한 장치 특정한 변형 코드와 상기 원격 호스트를 식별하기 위한 동기 억셉터 논리- 여기서 상기 변형 코드는 동기 요청에 응답할 때 상기 동기 서버와 상기 원격 호스트에서 떨어져 있는 네트워크 상의 어느 곳에서도 위치할 수 있음- ;
    원격 변형 코드를 검색해서 상기 장치 특정의 변형 코드에 기초하여 상기 원격 호스트와 상기 클라이언트간의 데이터를 변형하기 위한, 상기 동기 억셉터 논리에 결합되어 있는 동기 핸들러 논리를 포함하는
    적응형 서버.
  15. 제 14 항에 있어서,
    상기 동기 억셉터 논리가,
    상기 복제 호스트와 상기 원격 변형 코드를 식별하기 위한 정보를 포함하는 상기 동기 요청을 상기 클라이언트로부터 수신하기 위한 수단을 더 포함하는
    적응형 서버.
  16. 제 14 항에 있어서,
    상기 동기 요청이, 상기 복제 호스트와 상기 변형 코드를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하며;
    상기 동기 핸들러 논리가, 상기 동기 요청에 응답할 때 상기 정보를 검색하기 위한 수단을 더 포함하는
    적응형 서버.
  17. 제 14 항에 있어서,
    상기 변형 코드가,
    상기 데이터가 하나 이상의 다른 CPU 파워들, 메모리 용량들, 물리적 구성들을 가지는 다른 컴퓨팅 장치들에서 사용되고 처리될 수 있도록, 상기 데이터를 필터링하고; 변형하고 ; 변경하는 것 중 하나 이상을 위한 수단을 포함하는
    적응형 서버.
  18. 제 14 항에 있어서,
    상기 변형 코드가,
    상기 원격 호스트로부터 상기 핸드 헬드 장치로 송신된 웹페이지가 상기 핸드 헬드 장치의 메모리 제약들 내에서 상기 핸드 헬드 장치 상의 스크린 상에 나타날 수 있도록, 상기 웹페이지에 포함된 이미지의 해상도를 변형하거나 또는 상기 이미지를 필터링 하기 위한 수단을 더 포함하는
    적응형 서버.
  19. 제 14 항에 있어서,
    상기 동기 요청이, 상기 동기 요청에 응답할 때 상기 클라이언트와 상기 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리를 식별하기 위한 정보를 포함하며;
    상기 동기 핸들러 논리가, 상기 동기 논리를 검색하고, 상기 정보에 기초하여 상기 원격 호스트에 접속하여, 상기 클라이언트와 상기 원격 호스트간의 데이터를 동기하기 위한 수단을 포함하는
    적응형 서버.
  20. 제 19 항에 있어서,
    상기 동기 논리가,
    충돌; 무효 방향을 특정; 상기 애플리케이션의 특정한 요구를 충족시키기 위한 어떤 행동들을 취하는 것들 중 하나 이상을 위한 수단을 포함하는
    적응형 서버.
  21. 제 19 항에 있어서,
    상기 동기 논리가, 상기 네트워크 상의 어느 곳에서도 원격으로 위치할 수 있는
    적응형 서버.
  22. 제 21 항에 있어서,
    상기 동기 요청이, 상기 동기 논리를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하며;
    상기 동기 핸들러 논리가, 상기 정보에 기초하여 원격 동기 논리를 검색하고 상기 동기 논리에 기초하여 원격 호스트와 상기 클라이언트간의 데이터를 동기하기 위한 수단을 포함하는
    적응형 서버.
  23. 제 14 항에 있어서,
    서버 계산 적재와 서버 계산 용량을 모니터링 해서 상기 계산 적재와 상기 계산 용량을 협동하는 동기 서버들과 공유하기 위한, 상기 억셉터 논리에 결합된 적재 매니저를 더 포함하며;
    상기 적재 매니저는, 상기 서버 계산 적재가 임계 치를 넘을 때, 상기 동기 요청을 적재가 적은 서버로 전환하기 위한 논리를 포함하는
    적응형 서버.
  24. 제 14 항에 있어서,
    캐시 메모리 내에서 상기 동기 논리를 검색하여 저장하기 위한, 상기 동기 핸들러에 결합된 캐시 매니저 수단을 더 포함하는
    적응형 서버.
  25. 제 24 항에 있어서,
    상기 캐시 매니저 수단이,
    상기 캐시 메모리 내로 상기 동기 논리를 프리셋팅 해서 저장하기 위한 수단을 더 포함하는
    적응형 서버.
  26. 제 14 항에 있어서,
    상기 정보를 식별하는 것이 URL을 포함하는
    적응형 서버.
  27. 제 26 항에 있어서,
    상기 네트워크가 월드와이드웹이고,
    상기 동기 서버가 대리 서버(proxy server)이고
    여기서, 상기 클라이언트가 핸드 헬드 장치; 스마트폰; 또는 인텔리전트 페이저로 구성되는 그룹에서 선택되는
    적응형 서버.
  28. 제 13 항에 있어서,
    상기 네트워크가 월드와이드웹이고,
    상기 동기 서버가 대리 서버(proxy server)이고,
    여기서, 상기 클라이언트가 핸드 헬드 장치(handheld device); 스마트폰; 또는 인텔리전트 페이저(intelligent pager)로 구성되는 그룹에서 선택되는
    적응형 동기 서버.
  29. 데이터의 동기가 클라이언트와 상기 클라이언트 상의 데이터의 복제를 저장하는 원격 호스트 복제 사이에서 수행되는, 동기 서버에 접속하기 위해 적응된 클라이언트 장치에 있어서,
    중앙처리장치(CPU);
    상기 CPU상에서 실행하기 위한 실행 가능한 코드를 저장하고, 상기 CPU에 결합되며, 상기 코드가,
    상기 클라이언트와 상기 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리와 상기 복제 호스트를 식별하기 위한 동기 요청을 동기 서버로 통신하기 위한 동기 개시자(sync initiator)- 여기서, 상기 동기 논리는 상기 동기 서버와 상기 원격 호스트에서 떨어져 있는 네트워크 상의 어느 곳에도 위치할 수 있음- 와;
    상기 동기 서버를 통해서 상기 원격 호스트와 동기 된 데이터를 통신하기 위한, 상기 동기 개시자 논리에 결합된 동기 핸들러 논리
    를 포함하는 메모리;
    하나 이상의 데이터 관리(data management)와 복제 관리(replica management) 기능들을 처리하기 위한, 상기 동기 핸들러에 결합된 데이터 매니저를 포함하는
    클라이언트 장치.
  30. 제 29 항에 있어서,
    상기 클라이언트가,
    핸드 헬드 컴퓨터; 스마트폰; 또는 인텔리전트 페이저로 구성되는 그룹에서 선택된 접속 절단 가능한(disconnectable) 핸드 헬드 장치이며,
    상기 네트워크에 접속을 설정하기 위한 수단을 포함하는
    클라이언트 장치.
  31. 제 29 항에 있어서,
    상기 데이터 관리가,
    데이터 항목의 읽기; 데이터 항목의 쓰기; 데이터 항목의 갱신; 데이터 항목의 삭제 중 하나 이상을 포함하는
    클라이언트 장치.
  32. 제 29 항에 있어서,
    상기 클라이언트와 상기 원격 복제 호스트간의 버전 및 갱신 히스토리 정보(version and update history information)를 통신하기 위한 수단을 더 포함하는
    클라이언트 장치.
  33. 제 29 항에 있어서,
    상기 동기 요청이,
    상기 복제 호스트와 상기 원격 동기 논리를 식별하기 위한 정보를 더 포함하는
    클라이언트 장치.
  34. 제 29 항에 있어서,
    상기 동기 요청이,
    상기 복제 호스트와 상기 동기 논리를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하는
    클라이언트 장치.
  35. 제 29 항에 있어서,
    상기 동기 요청이,
    상기 클라이언트와 상기 원격 호스트간의 데이터를 변형하기 위한 장치 특정의 변형 코드를 식별하기 위한 정보를 포함하는
    클라이언트 장치.
  36. 제 35 항에 있어서,
    상기 장치 특정의 변형 코드가, 상기 네트워크 상의 어느 곳에서도 원격으로 위치될 수 있는
    클라이언트 장치.
  37. 제 35 항에 있어서,
    상기 동기 요청이,
    상기 클라이언트와 상기 원격 호스트간의 데이터를 변형하기 위한 장치 특정의 변형 코드와 하나 이상의 동기 논리를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하는
    클라이언트 장치.
  38. 제 35 항에 있어서,
    상기 클라이언트가 하나 이상의 인터라넷과 인터넷에 접속 절단 가능하게 연결되어 있고,
    여기서, 상기 데이터가, 상기 원격 호스트로부터 상기 변형된 핸드 헬드 장치로 송신된 웹페이지가 상기 핸드 헬드 장치의 메모리 제약들 내에서 상기 핸드 헬드 장치의 스크린 상에 나타날 수 있도록, 상기 웹페이지에 포함된 이미지를 포함하는
    클라이언트 장치.
  39. 제 29 항에 있어서,
    상기 정보를 식별하는 것이 URL을 포함하는
    클라이언트 장치.
  40. 제 29 항에 있어서,
    상기 요청이, 상기 메모리 내에 저장된 상기 동기 서버의 하나 이상의 네트워크 어드레스들을 포함하며,
    여기서, 하나의 동기 서버 어드레스가 디폴트 동기 서버 어드레스로서 미리 구성되는
    클라이언트 장치.
  41. 제 29 항에 있어서,
    상기 요청이,
    사용자 ID; 암호화 패스워드; 인증 및 허가(authentication and authoriation)를 위한 공유 비밀 정보; 장치 타입; 또는 상기 클라이언트와 연관된 시스템 타입 중 하나 이상으로 구성된 그룹에서 선택된 상기 클라이언트 또는 사용자에 관한 식별 정보를 포함하는
    클라이언트 장치.
  42. 제 29 항에 있어서,
    상기 동기 개시자가, 동기 될 필요가 있는 애플리케이션들의 리스트를 결정하기 위해 적응되어 지고,
    상기 애플리케이션이, 어드레스 북 애플리케이션; 메모 패드 애플리케이션; 캘린더 애플리케이션; 이-메일 애플리케이션 중 하나 이상으로 구성되는 그룹에서 선택되는
    클라이언트 장치.
  43. 데이터의 변형이 클라이언트와 상기 클라이언트 상의 데이터의 복제를 저장하는 원격 호스트 복제 사이에서 수행되는 적응형 서버에 접속하기 위해 적응된 클라이언트 장치에 있어서,
    중앙처리장치(CPU);
    상기 CPU상에서 실행하기 위한 실행 가능한 코드를 저장하며, 상기 CPU에 결합되고, 상기 코드가,
    상기 클라이언트와 상기 원격 호스트간의 데이터를 변형하기 위한 장치 특정의 변형 코드와 상기 복제 호스트를 식별하기 위한 요청을 상기 서버로 통신하기 위한 동기 개시자- 여기서 상기 변형 코드는 상기 서버와 상기 원격 호스트에서 떨어져 있는 네트워크 상의 어느 곳에도 위치할 수 있음- 와;
    원격 서버를 통해서 상기 원격 호스트와 변형된 데이터를 통신하기 위한 상기 동기 개시자 논리에 결합된 동기 핸들러 논리
    를 포함하는 메모리;
    하나 이상의 데이터 관리와 복제 관리 기능들을 처리하기 위한, 상기 동기 핸들러에 결합된 동기 매니저를 포함하는
    클라이언트 장치.
  44. 제 43 항에 있어서,
    상기 클라이언트가,
    핸드 헬드 컴퓨터; 스마트폰 또는 인텔리전트 페이저로 구성되는 그룹에서 선택되는 접속 절단 가능한 핸드 헬드 장치이며,
    상기 네트워크에 접속을 설정하기 위한 수단을 포함하는
    클라이언트 장치.
  45. 제 43 항에 있어서,
    상기 동기 요청이,
    상기 복제 호스트와 상기 변형 코드를 식별하기 위한 정보를 더 포함하는
    클라이언트 장치.
  46. 제 43 항에 있어서,
    상기 동기 요청이,
    상기 복제 호스트와 상기 변형 코드를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하는
    클라이언트 장치.
  47. 제 43 항에 있어서,
    상기 요청이,
    상기 클라이언트와 상기 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리를 식별하기 위한 정보를 포함하는
    클라이언트 장치.
  48. 제 47 항에 있어서,
    상기 동기 논리가, 상기 서버와 상기 원격 호스트에서 떨어져 있는 네트워크 상의 어느 곳에서도 위치할 수 있는
    클라이언트 장치.
  49. 제 47 항에 있어서,
    상기 동기 요청이,
    하나 이상의 상기 동기 논리와 상기 장치 특정의 변형 코드를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하는
    클라이언트 장치.
  50. 제 47 항에 있어서,
    상기 클라이언트가 하나 이상의 인터라넷과 인터넷에 접속 절단 가능하게 연결되어 있고,
    여기서, 상기 데이터가, 상기 원격 호스트로부터 상기 변형된 핸드 헬드 장치로 송신된 웹페이지가 상기 핸드 헬드 장치의 메모리 제약들 내에서 상기 핸드 헬드 장치의 스크린 상에 나타날 수 있도록, 상기 페이지 내에 포함된 이미지를 포함하는
    클라이언트 장치.
  51. 제 43 항에 있어서,
    상기 정보를 식별하는 것이 URL을 포함하는
    클라이언트 장치.
  52. 제 43 항에 있어서,
    상기 요청이, 상기 메모리에 저장된 상기 서버의 하나 이상의 네트워크 어드레스들을 포함하며,
    여기서, 하나의 서버 어드레스가 디폴트 서버 어드레스로서 미리 구성되는
    클라이언트 장치.
  53. 제 43 항에 있어서,
    상기 요청이,
    사용자 ID; 암호화 패스워드; 인증 및 허가를 위한 공유 비밀 정보; 장치 타입; 또는 상기 핸드 헬드와 연관된 시스템 타입 중 하나 이상으로 구성된 그룹으로부터 선택된, 상기 클라이언트 또는 사용자에 관한 식별 정보를 포함하는
    클라이언트 장치.
  54. 제 47 항에 있어서,
    상기 동기 개시자가, 동기 될 필요가 있는 애플리케이션들의 리스트를 결정하기 위해 적응되어 지고,
    상기 애플리케이션이, 어드레스 북 애플리케이션; 메모 패드 애플리케이션; 캘린더 애플리케이션; 이-메일 애플리케이션 중 하나 이상으로 구성되는 그룹에서 선택되는
    클라이언트 장치.
  55. 적응형 동기 서버에서, 클라이언트와 상기 클라이언트 상의 데이터의 복제를 저장하는 원격 호스트 복제 사이에서 적응 적으로 데이터를 동기하기 위한 방법에 있어서,
    상기 클라이언트와 상기 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리와 복제 호스트를 식별하기 위한 단계- 여기서, 상기 동기 논리는 동기 요청에 응답할 때 상기 동기 서버와 상기 원격 호스트에서 떨어져 있는 네트워크 상의 어느 곳에서도 위치할 수 있음-;
    상기 요청에 기초하여 상기 네트워크로부터 원격 동기 논리를 검색하는 단계;
    상기 원격 호스트에 접속해서, 검색된 원격 동기 논리를 사용하여 상기 원격 호스트와 상기 클라이언트간의 데이터를 동기 하는 단계를 포함하는
    방법.
  56. 제 55 항에 있어서,
    상기 복제 호스트와 상기 원격 동기 논리를 식별하기 위한 정보를 포함하는 상기 동기 요청을 상기 클라이언트로부터 수신하는 단계를 더 포함하는
    방법.
  57. 제 55 항에 있어서,
    상기 동기 논리가,
    충돌을 해결하고; 무효 방향을 특정하고; 상기 애플리케이션의 특정한 필요를 충족시키시 위한 임의의 동작들을 취하는 것 중 하나 이상으로 구성되는 그룹에서 선택된 단계들을 더 포함하는
    방법.
  58. 제 55 항에 있어서,
    상기 동기 요청이, 상기 복제 호스트와 상기 동기 논리를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하고,
    상기 동기 요청에 응답할 때 상기 정보를 검색하기 위한 단계를 더 포함하는
    방법.
  59. 제 55 항에 있어서,
    상기 동기 요청이, 동기 동안 상기 클라이언트와 상기 원격 호스트간의 데이터를 변환하기 위한 장치 특정의 변형 코드를 식별하기 위한 정보를 포함하며,
    상기 정보에 기초하여 상기 변형 코드를 검색하는 단계와;
    상기 장치 특정의 변형 코드에 기초하여 상기 원격 호스트와 상기 클라이언트간의 데이터를 변환하기 위한 단계를 더 포함하는
    방법.
  60. 제 59 항에 있어서,
    상기 장치 특정의 변형 코드가, 상기 네트워크 상의 어느 곳에서도 원격으로 위치할 수 있는
    방법.
  61. 제 59 항에 있어서,
    상기 동기 요청이, 상기 클라이언트와 상기 원격 호스트간의 데이터를 변형하기 위한 장치 특정의 변형 코드를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하며,
    상기 정보에 기초하여 원격 변형 코드를 검색하는 단계와;
    상기 장치 특정의 변형 코드에 기초하여 상기 원격 호스트와 상기 클라이언트간의 데이터를 변환하기 위한 단계를 더 포함하는
    방법.
  62. 제 59 항에 있어서,
    상기 변형 코드가,
    하나 이상의 다른 CPU 파워들, 메모리 용량들, 물리적 구성들을 가지는 다른 컴퓨팅 장치들에서의 사용 및 프로세싱을 위한 데이터를 필터링하고; 변형하고; 변경하는 것 중 하나 이상으로 구성된 그룹에서 선택된 단계들을 더 포함하는
    방법.
  63. 제 55 항에 있어서,
    서버 계산 적재와 서버 계산 용량을 모니터링 하는 단계;
    상기 계산 적재와 계산 용량을 협동하는 동기 서버들과 공유하는 단계;
    상기 서버 계산 적재가 임계 치를 초과할 때, 상기 동기 요청을 적재가 적은 서버로 전환하는 단계를 더 포함하는
    방법.
  64. 제 63 항에 있어서,
    상기 네트워크가 하나 이상의 인터라넷과 인터넷을 포함하며,
    여기서 상기 변형 코드가,
    상기 원격 호스트로부터 상기 핸드 헬드 장치로 송신된 웹페이지가 상기 핸드 헬드 장치의 메모리 제약들 내에서 상기 핸드 헬드 장치 상의 스크린 상에 나타날 수 있도록 상기 웹페이지에 포함된 이미지의 해상도를 변형하거나 또는 상기 이미지를 필터링 하는 것 중 하나 이상으로 구성되는 그룹에서 선택된 단계들을 더 포함하는
    방법.
  65. 제 55 항에 있어서,
    상기 동기 논리를 검색하고 캐시 메모리 내로 저장하는 단계들을 더 포함하는
    방법.
  66. 제 65 항에 있어서,
    상기 동기 논리를 프리셋팅하고 상기 캐시 메모리 내로 저장하는 단계들을 더 포함하는
    방법.
  67. 제 55 항에 있어서,
    상기 정보를 식별하는 것이 URL을 포함하는
    방법.
  68. 적응형 서버에서, 클라이언트와 상기 클라이언트 상에 데이터의 복제를 저장하는 원격 호스트 복제 사이에서 데이터를 변형하기 위한 방법에 있어서,
    상기 클라이언트와 연관된 장치 타입의 데이터로 상기 원격 호스트 상의 데이터를 변형하기 위한 장치 특정의 변형 코드와 상기 원격 호스트 복제를 식별하기 위한 단계- 여기서 상기 변형 코드는 동기 요청에 응답할 때 상기 서버와 상기 원격 호스트에서 떨여져 있는 네트워크 상의 어느 곳에서도 위치할 수 있음-;
    상기 요청에 응답할 때 원격 변형 코드를 검색하는 단계;
    상기 장치 특정의 변형 코드에 기초하여 상기 원격 호스트와 상기 클라이언트간의 데이터를 변형하는 단계를 포함하는
    방법.
  69. 제 68 항에 있어서,
    상기 복제 호스트와 상기 원격 변형 코드를 식별하기 위한 정보를 포함하는 상기 요청을 상기 클라이언트로부터 수신하는 단계를 더 포함하는
    방법.
  70. 제 68 항에 있어서,
    상기 요청이, 상기 복제 호스트와 상기 변형 코드를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하며,
    상기 요청에 응답할 때 상기 정보를 검색하는 단계를 더 포함하는
    방법.
  71. 제 68 항에 있어서,
    상기 변형 코드가,
    하나 이상의 다른 CPU 파워들, 메모리 용량들, 물리적 구성들을 가지는 다른 컴퓨팅 장치들에서의 사용 및 프로세싱을 위하여 데이터를 필터링하고; 변형하고; 변경하는 것 중 하나 이상으로 구성되는 그룹에서 선택된 단계들을 더 포함하는
    방법.
  72. 제 68 항에 있어서,
    상기 변형 코드가,
    상기 원격 호스트로부터 상기 핸드 헬드 장치로 송신된 웹페이지가 상기 핸드 헬드 장치의 메모리 제약들 내에서 상기 핸드 헬드 장치의 스크린 상에 나타날 수 있도록 상기 웹페이지에 포함된 이미지의 해상도를 변형하거나 또는 상기 이미지를 필터링하는 것 중 하나 이상으로 구성되는 그룹에서 선택된 단계들을 더 포함하는
    방법.
  73. 제 68 항에 있어서,
    상기 요청이 동기 요청에 응답할 때, 상기 클라이언트와 상기 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리를 식별하기 위한 정보를 포함하며,
    상기 동기 논리를 검색하는 단계;
    상기 정보에 기초하여 상기 원격 호스트에 접속하는 단계;
    상기 클라이언트와 상기 원격 호스트간의 데이터를 동기 하는 단계를 더 포함하는
    방법.
  74. 제 73 항에 있어서,
    상기 동기 논리가,
    충돌을 해결하고; 무효 방향을 특정하고; 또는 상기 애플리케이션의 특정한 필요를 충족시키기 위해 어떤 행동들을 취하는 것 중 하나 이상으로 구성되는 그룹에서 선택된 단계들을 더 포함하는
    방법.
  75. 제 73 항에 있어서,
    상기 동기 논리가, 상기 네트워크 상의 어느 곳에서도 원격으로 위치할 수 있는
    방법.
  76. 제 75 항에 있어서,
    상기 요청이, 상기 동기 논리를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하며,
    상기 정보에 기초하여 원격 동기 논리를 검색하는 단계;
    상기 동기 논리에 기초하여 상기 원격 호스트와 상기 클라이언트간에 상기 데이터를 동기 하는 단계를 더 포함하는
    방법.
  77. 제 68 항에 있어서,
    서버 계산 적재와 서버 계산 용량을 모니터링 하는 단계;
    상기 계산 적재와 상기 계산 용량을 협동하는 동기 서버들과 공유하는 단계;
    상기 서버 계산 적재가 임계 치를 초과할 때, 상기 동기 요청을 적재가 적은 서버로 전환하는 단계를 더 포함하는
    방법.
  78. 제 68 항에 있어서,
    상기 동기 논리를 검색하고 캐시 메모리 내로 저장하는 단계들을 더 포함하는
    방법.
  79. 제 78 항에 있어서,
    상기 동기 논리를 프리셋팅 하고 상기 캐시 메모리 내로 저장하는 단계들을 더 포함하는
    방법.
  80. 제 68 항에 있어서,
    상기 정보를 식별하는 것이 URL을 포함하는
    방법.
  81. 제 80 항에 있어서,
    상기 네트워크가 월드와이드웹이고,
    상기 동기 서버가 대리 서버이며,
    여기서, 상기 클라이언트가 핸드 헬드 장치; 스마트폰; 또는 인텔리전트 페이저로 구성되는 그룹에서 선택되는
    방법.
  82. 제 68 항에 있어서,
    상기 네트워크가 월드와이드웹이며,
    상기 동기 서버가 대리 서버이고,
    여기서, 상기 클라이언트가, 핸드 헬드 장치; 스마트폰; 또는 인텔리전트 페이저로 구성되는 그룹에서 선택되는
    방법.
  83. 클라이언트와 상기 클라이언트 상에 데이터의 복제를 저장하는 원격 호스트 복제 사이에서 적응 적으로 데이터를 동기하기 위한 방법 단계들을 수행하기 위해 동기 서버에 의해 실행 가능한 명령어들의 프로그램을 실체적으로 구현하는, 기기에 의해 판독 가능한 프로그램 저장 장치에 있어서, 상기 방법이,
    상기 클라이언트와 상기 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리와 복제 호스트를 식별하기 위한 단계- 여기서 상기 동기 논리는 동기 요청에 응답할 때 상기 동기 서버와 상기 원격 호스트에서 떨어져 있는 네트워크 상의 어느 곳에서도 위치할 수 있음-;
    상기 네트워크로부터 원격 동기 논리를 검색하는 단계;
    상기 원격 호스트와 접속해서 상기 검색된 원격 동기 논리를 사용하여 상기 원격 호스트와 상기 클라이언트간의 데이터를 동기 하는 단계를 포함하는
    프로그램 저장장치.
  84. 제 83 항에 있어서,
    상기 복제 호스트와 상기 원격 동기 논리를 식별하기 위한 정보를 포함하는 상기 동기 요청을 상기 클라이언트로부터 수신하는 단계를 더 포함하는
    프로그램 저장장치.
  85. 제 83 항에 있어서,
    상기 동기 논리가,
    충돌을 해결하고; 무효 방향을 특정하고; 상기 애플리케이션의 특정한 필요를 충족시키기 위한 임의의 동작들을 취하는 것 중 하나 이상으로 구성되는 그룹에서 선택된 단계들을 더 포함하는
    프로그램 저장장치.
  86. 제 83 항에 있어서,
    상기 동기 요청이, 상기 복제 호스트와 상기 동기 논리를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하며,
    상기 동기 요청에 응답할 때 상기 정보를 검색하기 위한 단계를 더 포함하는
    프로그램 저장장치.
  87. 제 83 항에 있어서,
    상기 동기 요청이, 동기 동안 상기 클라이언트와 상기 원격 호스트간의 데이터를 변환하기 위한 장치 특정의 변형 코드를 식별하기 위한 정보를 포함하며,
    상기 정보에 기초하여 상기 변형 코드를 검색하는 단계와;
    상기 장치 특정의 변형 코드에 기초하여 상기 원격 호스트와 상기 클라이언트간의 데이터를 변환하기 위한 단계를 더 포함하는
    프로그램 저장장치.
  88. 제 87 항에 있어서,
    상기 장치 특정의 변형 코드가, 상기 네트워크 상의 어느 곳에서도 원격으로 위치할 수 있는
    프로그램 저장장치.
  89. 제 87 항에 있어서,
    상기 동기 요청이, 상기 클라이언트와 상기 원격 호스트간의 데이터를 변형하기 위한 장치 특정의 변형 코드를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하며,
    상기 정보에 기초하여 원격 변형 코드를 검색하는 단계와;
    상기 장치 특정의 변형 코드에 기초하여 상기 원격 호스트와 상기 클라이언트간의 데이터를 변환하기 위한 단계를 더 포함하는
    프로그램 저장장치.
  90. 제 87 항에 있어서,
    상기 변형 코드가,
    하나 이상의 다른 CPU 파워들, 메모리 용량들, 물리적 구성들을 가지는 다른 컴퓨팅 장치들에서의 사용 및 프로세싱을 위한 데이터를 필터링하고; 변형하고; 변경하는 것 중 하나 이상으로 구성되는 그룹에서 선택된 단계들을 더 포함하는
    프로그램 저장장치.
  91. 제 83 항에 있어서,
    서버 계산 적재와 서버 계산 용량을 모니터링 하는 단계;
    상기 계산 적재와 계산 용량을 협동하는 동기 서버들과 공유하는 단계;
    상기 서버 계산 적재가 임계 치를 초과할 때, 상기 동기 요청을 적재가 적은 서버로 전환하는 단계를 더 포함하는
    프로그램 저장장치.
  92. 제 91 항에 있어서,
    상기 네트워크가 하나 이상의 인터라넷과 인터넷을 포함하며,
    여기서 상기 변형 코드가,
    상기 원격 호스트로부터 상기 핸드 헬드 장치로 송신된 웹페이지가 상기 핸드 헬드 장치의 메모리 제약들 내에서 상기 핸드 헬드 장치 상의 스크린 상에 나타날 수 있도록 상기 페이지에 포함된 이미지의 해상도를 변형하거나 또는 상기 이미지를 필터링 하는 것 중 하나 이상으로 구성되는 그룹에서 선택된 단계들을 더 포함하는
    프로그램 저장장치.
  93. 제 83 항에 있어서,
    상기 동기 논리를 검색하고 캐시 메모리 내로 저장하는 단계들을 더 포함하는
    프로그램 저장장치.
  94. 제 93 항에 있어서,
    상기 동기 논리를 프리셋팅 하고 상기 캐시 메모리 내로 저장하는 단계들을 더 포함하는
    프로그램 저장장치.
  95. 제 83 항에 있어서,
    상기 정보를 식별하는 것이 URL을 포함하는
    프로그램 저장장치.
  96. 클라이언트와 상기 클라이언트 상에 데이터의 복제를 저장하는 원격 호스트 복제 사이에서 적응 적으로 데이터를 변형하기 위한 방법 단계들을 실행하기 위해 서버에 의해 실행 가능한 명령어들의 프로그램을 실체적으로 구현하는, 기기에 의해 판독 가능한 프로그램 저장 장치에 있어서, 상기 방법이,
    상기 클라이언트와 연관된 장치 타입의 데이터로 상기 원격 호스트 상의 데이터를 변형하기 위한 장치 특정의 변형 코드와 상기 원격 호스트 복제를 식별하기 위한 단계- 여기서 상기 변형 코드는 동기 요청에 응답할 때 상기 서버와 상기 원격 호스트에서 떨어져 있는 네트워크 상의 어느 곳에서도 위치할 수 있음-;
    원격 변형 코드를 검색하는 단계;
    상기 장치 특정의 변형 코드에 기초하여 상기 원격 호스트와 상기 클라이언트간에 데이터를 변형하는 단계를 포함하는
    프로그램 저장장치.
  97. 제 96 항에 있어서,
    상기 복제 호스트와 상기 원격 변형 코드를 식별하기 위한 정보를 포함하는 상기 요청을 상기 클라이언트로부터 수신하는 단계를 더 포함하는
    프로그램 저장장치.
  98. 제 96 항에 있어서,
    상기 요청이, 상기 복제 호스트와 상기 변형 코드를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하며,
    상기 요청에 응답할 때 상기 정보를 검색하는 단계를 더 포함하는
    프로그램 저장장치.
  99. 제 96 항에 있어서,
    상기 변형 코드가,
    하나 이상의 다른 CPU 파워들, 메모리 용량들, 물리적 구성들을 가지는 다른 컴퓨팅 장치들에서의 사용 및 프로세싱을 위한 데이터를 필터링하고; 변형하고; 변경하는 것 중 하나 이상으로 구성되는 그룹에서 선택된 단계들을 더 포함하는
    프로그램 저장장치.
  100. 제 96 항에 있어서,
    상기 변형 코드가,
    상기 원격 호스트로부터 상기 핸드 헬드 장치로 송신된 웹페이지가 상기 핸드 헬드 장치의 메모리 제약들 내에서 상기 핸드 헬드 장치의 스크린 상에 나타날 수 있도록 상기 페이지에 포함된 이미지의 해상도를 변형하거나 또는 상기 이미지를 필터링 하는 것 중 하나 이상으로 구성되는 그룹에서 선택된 단계들을 더 포함하는
    프로그램 저장장치.
  101. 제 96 항에 있어서,
    상기 요청이, 동기 요청에 응답할 때 상기 클라이언트와 상기 원격 호스트에 연관된 데이터 타입에 특정한 애플리케이션인 동기 논리를 식별하기 위한 정보를 포함하며,
    상기 동기 논리를 검색하는 단계;
    상기 원격 호스트에 접속하는 단계;
    상기 클라이언트와 상기 원격 호스트간의 데이터를 동기 하는 단계를 더 포함하는
    프로그램 저장장치.
  102. 제 101 항에 있어서,
    상기 동기 논리가,
    충돌을 해결하고; 무효 방향을 특정하고; 또는 상기 애플리케이션의 특정 필요를 충족시키기 위한 임의의 행동들을 취하는 것 중 하나 이상으로 구성되는 그룹에서 선택된 단계들을 더 포함하는
    프로그램 저장장치.
  103. 제 101 항에 있어서,
    상기 동기 논리가, 상기 네트워크 상의 어느 곳에서도 원격으로 위치할 수 있는
    프로그램 저장장치.
  104. 제 103 항에 있어서,
    상기 동기 요청이, 상기 동기 논리를 식별하기 위한 디렉토리 서비스 저장 정보의 어드레스를 포함하며,
    상기 정보에 기초하여 원격 동기 논리를 검색하는 단계;
    상기 동기 논리에 기초하여 상기 원격 호스트와 상기 클라이언트간에 상기 데이터를 동기 하는 단계를 더 포함하는
    프로그램 저장장치.
  105. 제 96 항에 있어서,
    서버 계산 적재와 서버 계산 용량을 모니터링 하는 단계;
    상기 계산 적재와 상기 계산 용량을 협동하는 동기 서버들과 공유하는 단계;
    상기 서버 계산 적재가 임계 치를 초과할 때, 상기 동기 요청을 적재가 적은 서버로 전환하는 단계를 더 포함하는
    프로그램 저장장치.
  106. 제 96 항에 있어서,
    상기 변형 코드를 검색하고 캐시 메모리 내로 저장하는 단계들을 더 포함하는
    프로그램 저장장치.
  107. 제 106 항에 있어서,
    상기 변형 코드를 프리셋팅 하고 상기 캐시 메모리 내로 저장하는 단계들을 더 포함하는
    프로그램 저장장치.
  108. 제 96 항에 있어서,
    상기 정보를 식별하는 것이 URL을 포함하는
    프로그램 저장장치.
  109. 제 108 항에 있어서,
    상기 네트워크가 월드와이드웹이며,
    상기 동기 서버가 대리 서버이고,
    여기서, 상기 클라이언트가 핸드 헬드 장치; 스마트폰; 또는 인텔리전트 페이저로 구성되는 그룹에서 선택되는
    프로그램 저장장치.
  110. 제 96 항에 있어서,
    상기 네트워크가 월드와이드웹이며,
    상기 동기 서버가 대리 서버이고,
    여기서, 상기 클라이언트가, 핸드 헬드 장치; 스마트폰; 또는 인텔리전트 페이저로 구성되는 그룹에서 선택되는
    프로그램 저장장치.
KR1019990039476A 1998-10-23 1999-09-15 클라이언트와 적응형 동기화 및 변환 서버를 위한 방법, 장치 및 프로그램 저장 장치 KR100343823B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/178,100 1998-10-23
US09/178,100 US6477543B1 (en) 1998-10-23 1998-10-23 Method, apparatus and program storage device for a client and adaptive synchronization and transformation server
US9/178,100 1998-10-23

Publications (2)

Publication Number Publication Date
KR20000028677A true KR20000028677A (ko) 2000-05-25
KR100343823B1 KR100343823B1 (ko) 2002-07-19

Family

ID=22651194

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990039476A KR100343823B1 (ko) 1998-10-23 1999-09-15 클라이언트와 적응형 동기화 및 변환 서버를 위한 방법, 장치 및 프로그램 저장 장치

Country Status (9)

Country Link
US (1) US6477543B1 (ko)
EP (1) EP1014266B1 (ko)
JP (1) JP3574017B2 (ko)
KR (1) KR100343823B1 (ko)
CN (1) CN1210656C (ko)
AT (1) ATE385330T1 (ko)
DE (1) DE69938077T2 (ko)
ES (1) ES2297914T3 (ko)
TW (1) TW474077B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012150744A1 (ko) * 2011-05-04 2012-11-08 주식회사 인프라웨어테크놀러지 어플리케이션 클론 실행 방법, 컴퓨터로 판독가능한 기록매체, 및 이를 지원하는 클론단말
KR101384387B1 (ko) * 2005-07-14 2014-04-10 야후! 인크. 사용자 디바이스를 프로비저닝하기 위한 시스템 및 방법

Families Citing this family (164)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078727B2 (en) 1998-10-09 2011-12-13 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7293107B1 (en) 1998-10-09 2007-11-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8060656B2 (en) 1998-10-09 2011-11-15 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7778260B2 (en) 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7673323B1 (en) 1998-10-28 2010-03-02 Bea Systems, Inc. System and method for maintaining security in a distributed computer network
US6678741B1 (en) * 1999-04-09 2004-01-13 Sun Microsystems, Inc. Method and apparatus for synchronizing firmware
AU4831500A (en) * 1999-05-10 2000-11-21 Andrew L. Di Rienzo Authentication
US7882247B2 (en) 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
JP3963417B2 (ja) * 1999-11-19 2007-08-22 株式会社東芝 データ同期処理のための通信方法および電子機器
US20060235945A1 (en) * 2000-01-14 2006-10-19 Frietas Nathaniel X Software architecture for wireless data and method of operation thereof
US6671715B1 (en) * 2000-01-21 2003-12-30 Microstrategy, Inc. System and method for automatic, real-time delivery of personalized informational and transactional data to users via high throughput content delivery device
US7003571B1 (en) 2000-01-31 2006-02-21 Telecommunication Systems Corporation Of Maryland System and method for re-directing requests from browsers for communication over non-IP based networks
US8370435B1 (en) 2000-01-31 2013-02-05 Telecommunication Systems, Inc. System and method for servers to send alerts to connectionless devices
US6435164B1 (en) 2000-12-07 2002-08-20 Ford Global Technologies, Inc. Fuel weathering method for vehicle evaporative emission system
US6738766B2 (en) * 2000-02-02 2004-05-18 Doongo Technologies, Inc. Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
US6842861B1 (en) * 2000-03-24 2005-01-11 Networks Associates Technology, Inc. Method and system for detecting viruses on handheld computers
US6671700B1 (en) * 2000-05-23 2003-12-30 Palm Source, Inc. Method and apparatus for parallel execution of conduits during simultaneous synchronization of databases
US6785868B1 (en) * 2000-05-31 2004-08-31 Palm Source, Inc. Method and apparatus for managing calendar information from a shared database and managing calendar information from multiple users
EP1350163B1 (en) * 2000-09-11 2017-05-03 iAnywhere Solutions, Inc. Method, system, and computer program product for synchronization of similar data objects with event information
ATE457570T1 (de) * 2000-09-12 2010-02-15 Motorola Inc Ad hoc telekommunikationsnetzwerkverwaltung und vermittlung
US7051069B2 (en) * 2000-09-28 2006-05-23 Bea Systems, Inc. System for managing logical process flow in an online environment
US6856999B2 (en) * 2000-10-02 2005-02-15 Microsoft Corporation Synchronizing a store with write generations
KR20020033275A (ko) * 2000-10-30 2002-05-06 정정호 로컬 단말기와 서버간에 데이터 파일을 동기화시키는동기화 푸시 서비스 방법 및 시스템
US7363388B2 (en) * 2001-03-28 2008-04-22 Siebel Systems, Inc. Method and system for direct server synchronization with a computing device
TWI220199B (en) * 2001-03-30 2004-08-11 Compal Electronics Inc Personal data assistant (PDA) using a remote server to process
US7613834B1 (en) * 2001-04-04 2009-11-03 Palmsource Inc. One-to-many device synchronization using downloaded/shared client software
US20030069848A1 (en) * 2001-04-06 2003-04-10 Larson Daniel S. A User interface for computer network management
WO2002082229A2 (en) * 2001-04-09 2002-10-17 America Online Incorporated Server-based browser system
US7499948B2 (en) 2001-04-16 2009-03-03 Bea Systems, Inc. System and method for web-based personalization and ecommerce management
DE10118827A1 (de) * 2001-04-17 2002-10-31 Bucko Software Gmbh Verfahren zum automatischen Abgleich einer Datenmenge sowie Versandlogistiksystem
US6981062B2 (en) * 2001-04-20 2005-12-27 Sbc Technology Resources, Inc. World wide web content synchronization between wireless devices
US20020169863A1 (en) * 2001-05-08 2002-11-14 Robert Beckwith Multi-client to multi-server simulation environment control system (JULEP)
US7392546B2 (en) 2001-06-11 2008-06-24 Bea Systems, Inc. System and method for server security and entitlement processing
US6883036B1 (en) * 2001-06-25 2005-04-19 Bellsouth Intellectual Property Corporation System and method for managing network directories
US7801941B2 (en) * 2001-07-09 2010-09-21 Palm, Inc. Apparatus and method for exchanging data between two devices
US7668535B2 (en) * 2001-07-09 2010-02-23 Palm, Inc. Notification infrastructure for sending device-specific wireless notifications
US20030014672A1 (en) * 2001-07-13 2003-01-16 Meera Desikamani Authentication protocol with dynamic secret
US7725584B1 (en) 2001-07-30 2010-05-25 Western Digital Ventures, Inc. Using multiple communication channels to synchronize a mobile terminal based on data type
US7275116B1 (en) 2001-07-30 2007-09-25 Western Digital Ventures, Inc. Mobile terminal synchronizing components of a document separately
US7962622B2 (en) 2001-08-07 2011-06-14 Motorola Mobility, Inc. System and method for providing provisioning and upgrade services for a wireless device
US7743119B2 (en) * 2001-08-07 2010-06-22 Motorola, Inc. System and method for mapping identification codes
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
US7596565B2 (en) * 2001-08-07 2009-09-29 Good Technology System and method for maintaining wireless file folders at a wireless device
US20030033351A1 (en) * 2001-08-10 2003-02-13 Aleta Ricciardi Group proxy and method for grouping services in a distributed computing application
US20030061106A1 (en) * 2001-09-21 2003-03-27 Sunday Orhomuru Data transfer or transfer of data using wireless mobile phone and any other wireless mobile devices
US7415539B2 (en) * 2001-09-28 2008-08-19 Siebel Systems, Inc. Method and apparatus for detecting insufficient memory for data extraction processes
US7526575B2 (en) * 2001-09-28 2009-04-28 Siebel Systems, Inc. Method and system for client-based operations in server synchronization with a computing device
US7761535B2 (en) * 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
US7257649B2 (en) * 2001-09-28 2007-08-14 Siebel Systems, Inc. Method and system for transferring information during server synchronization with a computing device
US8046343B2 (en) * 2001-09-29 2011-10-25 Siebel Systems, Inc. Computing system and method for automatic completion of pick field
US20030115292A1 (en) * 2001-10-24 2003-06-19 Griffin Philip B. System and method for delegated administration
US7149805B2 (en) * 2001-10-31 2006-12-12 Hewlett-Packard Development, L.P. Wireless trusted point of access to a computer network
FI112015B (fi) 2001-11-12 2003-10-15 Nokia Corp Datan synkronoinnin järjestäminen tietoliikennejärjestelmässä
US7350226B2 (en) 2001-12-13 2008-03-25 Bea Systems, Inc. System and method for analyzing security policies in a distributed computer network
US7054910B1 (en) * 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
US8799464B2 (en) * 2001-12-28 2014-08-05 Motorola Mobility Llc Multi-modal communication using a session specific proxy server
KR20030068624A (ko) * 2002-02-15 2003-08-25 홍정기 인터넷망을 기반으로 하는 클라이언트 정보 동기화 방법
JP3585468B2 (ja) * 2002-02-28 2004-11-04 株式会社コナミコンピュータエンタテインメント東京 ゲーム装置、プログラム及びゲーム装置の制御方法
US20080228904A1 (en) * 2002-03-20 2008-09-18 Daniel Crespo-Dubie Home Gateway Architecture and State Based Distributed System and Method
US20030191750A1 (en) * 2002-04-04 2003-10-09 Mayel Espino Method, system and computer program product for lightweight directory access protocol applications
US20030191748A1 (en) * 2002-04-04 2003-10-09 Mayel Espino Method, device and computer program product including a lightweight directory access protocol client architecture
US7783593B2 (en) * 2002-04-04 2010-08-24 Verizon Business Global Llc Method, device and computer program product including a lightweight directory access protocol client
EP2309411A3 (en) * 2002-04-23 2011-06-15 Panasonic Corporation Method and system for controlled distribution of software programs
US7447799B2 (en) 2002-04-24 2008-11-04 Good Technology, Inc. System and method for automatically updating a wireless device
US7725560B2 (en) * 2002-05-01 2010-05-25 Bea Systems Inc. Web service-enabled portlet wizard
US9813514B2 (en) 2002-06-12 2017-11-07 Good Technology Holdings Limited Information repository system including a wireless device and related method
US8516034B1 (en) 2002-07-08 2013-08-20 Good Technology Software, Inc System and method for modifying application behavior based on network bandwidth
US20040015537A1 (en) * 2002-07-15 2004-01-22 Richard Doerksen Handheld client framework system
GB2392800A (en) * 2002-09-04 2004-03-10 Matchtip Ltd Backup system for data stored in remote data storage systems
US20040230670A1 (en) * 2002-11-25 2004-11-18 Markus Schmidt-Karaca Method and system for representing, configuring and deploying distributed applications
DE60221673T2 (de) * 2002-11-25 2008-04-30 T-Mobile Deutschland Gmbh Verfahren und System zur Vereinfachung des Zugriffs auf ein Email-Konto über ein Mobilfunknetz
US7035879B2 (en) * 2002-12-26 2006-04-25 Hon Hai Precision Ind. Co., Ltd. System and method for synchronizing data of wireless devices
US7243158B1 (en) * 2003-01-28 2007-07-10 Thomas Gutchigian Method, system and computer program for identification of data and translation of data between storage locations
US20050021371A1 (en) * 2003-01-31 2005-01-27 Basone Michael A. System for facilitating weight control incorporating hand-held computing device
FR2850814A1 (fr) * 2003-02-03 2004-08-06 France Telecom Systeme et procede de synchronisation de donnees entre des portails de services et plate-forme d'acces a des services utilisant un tel systeme de synchronisation
US7653930B2 (en) 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US7591000B2 (en) 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US8831966B2 (en) 2003-02-14 2014-09-09 Oracle International Corporation Method for delegated administration
US7562298B2 (en) 2003-02-20 2009-07-14 Bea Systems, Inc. Virtual content repository browser
US7415478B2 (en) 2003-02-20 2008-08-19 Bea Systems, Inc. Virtual repository complex content model
US7293286B2 (en) 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
US7840614B2 (en) 2003-02-20 2010-11-23 Bea Systems, Inc. Virtual content repository application program interface
US20040167880A1 (en) * 2003-02-20 2004-08-26 Bea Systems, Inc. System and method for searching a virtual repository content
US7483904B2 (en) 2003-02-20 2009-01-27 Bea Systems, Inc. Virtual repository content model
US20040172622A1 (en) * 2003-02-28 2004-09-02 Nokia Inc. Systems, methods and computer program products for performing a task in a software application
US7810036B2 (en) 2003-02-28 2010-10-05 Bea Systems, Inc. Systems and methods for personalizing a portal
US7562353B2 (en) * 2003-05-16 2009-07-14 Hewlett-Packard Development Company, L.P. Methods and systems for transforming Java applications of behalf of another device
US8161116B2 (en) * 2003-05-23 2012-04-17 Kirusa, Inc. Method and system for communicating a data file over a network
US7370051B2 (en) * 2003-06-24 2008-05-06 Microsoft Corporation Database driven type extensibility
US20050010646A1 (en) * 2003-07-08 2005-01-13 Toshio Shiina E-mail management server, attachment file output system, attachment file output method, recording medium, and program data signal
US7636776B2 (en) * 2003-07-31 2009-12-22 Microsoft Corporation Systems and methods for synchronizing with multiple data stores
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8131739B2 (en) * 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US20050097186A1 (en) * 2003-10-08 2005-05-05 International Business Machines Corporation Method, system, and computer program product for managing interaction between remote devices and server resources
US20070180127A1 (en) * 2003-11-11 2007-08-02 Nokia Corporation Preconfigured syncml profile categories
JP2005157712A (ja) * 2003-11-26 2005-06-16 Hitachi Ltd リモートコピーネットワーク
US20050193326A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Tool for configuring available functions of an application
US20050192922A1 (en) * 2004-02-27 2005-09-01 Edlund Stefan B. Client-server computing system capable of validating cached data based on data transformation
US20060161778A1 (en) * 2004-03-29 2006-07-20 Nokia Corporation Distinguishing between devices of different types in a wireless local area network (WLAN)
US7774601B2 (en) * 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration
US20050251503A1 (en) * 2004-04-13 2005-11-10 Bea Systems, Inc. System and method for content and schema versioning
US20060041558A1 (en) * 2004-04-13 2006-02-23 Mccauley Rodney System and method for content versioning
US7236989B2 (en) * 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for providing lifecycles for custom content in a virtual content repository
US20050235279A1 (en) * 2004-04-14 2005-10-20 Heng-Chien Chen Method of updating software in a host-client network
US20050256899A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. System and method for representing hierarchical data structures
US20050256906A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. Interface for portal and webserver administration-efficient updates
US7761439B1 (en) * 2004-06-30 2010-07-20 Google Inc. Systems and methods for performing a directory search
US7506006B2 (en) 2004-09-03 2009-03-17 Microsoft Corporation Synchronization for smart clients
US7558783B2 (en) * 2004-09-03 2009-07-07 Microsoft Corporation Conversion between application objects and smart client objects
US20060075100A1 (en) * 2004-09-28 2006-04-06 Nokia Corporation System, device, software and method for providing enhanced UPnP support on devices
US7783670B2 (en) * 2004-11-18 2010-08-24 Bea Systems, Inc. Client server conversion for representing hierarchical data structures
EP1667021A1 (de) * 2004-12-03 2006-06-07 Jerry Muse Woldeab Datensicherungsverfahren für ein Kommunikationsgerät
US7587596B2 (en) * 2005-02-24 2009-09-08 International Business Machines Corporation Method and apparatus for updating information stored in multiple information handling systems
CN100352231C (zh) * 2005-04-11 2007-11-28 深圳市天路软件开发有限公司 异地数据同步的传输方法及系统
EP1889918B1 (en) * 2005-05-02 2011-04-06 Oji Paper Co., Ltd. Analysis apparatus and analysis method for glycosylated hemoglobin
US7493351B2 (en) * 2005-05-05 2009-02-17 International Business Machines Corporation Rapid integration mechanism for directory based applications
US20060277282A1 (en) * 2005-06-02 2006-12-07 International Business Machines Corporation Federated scheduling method and system
US20070033086A1 (en) * 2005-08-04 2007-02-08 International Business Machines Corporation System and method for interacting with participants of a future event
US8473971B2 (en) 2005-09-06 2013-06-25 Microsoft Corporation Type inference and type-directed late binding
US7818344B2 (en) 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US7752205B2 (en) 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US7917537B2 (en) 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
EP1770954A1 (en) * 2005-10-03 2007-04-04 Amadeus S.A.S. System and method to maintain coherence of cache contents in a multi-tier software system aimed at interfacing large databases
US7844251B2 (en) * 2005-10-12 2010-11-30 Qualcomm Incorporated Peer-to-peer distributed backup system for mobile devices
US20070100843A1 (en) * 2005-10-20 2007-05-03 Chen Daniel Q System and method for mapping between different information management systems
US8015319B2 (en) * 2005-10-27 2011-09-06 Huawei Technologies Co., Ltd. Method, system, client and server for implementing data sync
US7464117B2 (en) * 2006-01-20 2008-12-09 Microsoft Corporation Using directory historical data to facilitate automated file updates
US7620392B1 (en) 2006-02-27 2009-11-17 Good Technology, Inc. Method and system for distributing and updating software in wireless devices
US7890646B2 (en) * 2006-04-27 2011-02-15 Microsoft Corporation Synchronization orchestration
US7792792B2 (en) * 2006-05-22 2010-09-07 Microsoft Corporation Synchronizing structured web site contents
US8745106B2 (en) * 2006-08-30 2014-06-03 Red Hat, Inc. Numeric identifier assignment in a networked computer environment
US7861290B2 (en) * 2006-09-22 2010-12-28 Oracle International Corporation Non-invasive insertion of pagelets
US8463852B2 (en) 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
US7627595B2 (en) * 2006-12-06 2009-12-01 Verizon Data Services Inc. Apparatus, method, and computer program product for synchronizing data sources
US8005903B2 (en) * 2006-12-13 2011-08-23 International Business Machines Corporation Method and apparatus for managing locally stored E-mail messages
JP4789819B2 (ja) * 2007-01-31 2011-10-12 株式会社日立製作所 アプリケーションとデータの管理方法、管理システム、それに用いられるシンクライアント端末、管理サーバ、および、リモート計算機
ES2330816B1 (es) * 2007-04-18 2010-09-27 Comercial De Canalizaciones Y Maquinaria, S.L. Sistema de proteccion antifuego.
US8060653B2 (en) * 2007-04-23 2011-11-15 Ianywhere Solutions, Inc. Background synchronization
US20080320453A1 (en) * 2007-06-21 2008-12-25 Microsoft Corporation Type inference and late binding
US10671600B1 (en) 2007-07-24 2020-06-02 Avaya Inc. Communications-enabled dynamic social network routing utilizing presence
US8478880B2 (en) * 2007-08-31 2013-07-02 Palm, Inc. Device profile-based media management
US20090157615A1 (en) * 2007-12-18 2009-06-18 General Motors Corporation Synching online address book sources for a vehicle user
US8274935B2 (en) * 2008-02-11 2012-09-25 Amdocs Software Systems Limited Mobile communication device notifier
US7747784B2 (en) 2008-03-04 2010-06-29 Apple Inc. Data synchronization protocol
US7991740B2 (en) 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
US20090228542A1 (en) * 2008-03-06 2009-09-10 Microsoft Corporation Occasionally-connected support through off-line service-supplied proxies
US8112537B2 (en) 2008-09-29 2012-02-07 Apple Inc. Trickle sync protocol
US8572591B2 (en) * 2010-06-15 2013-10-29 Microsoft Corporation Dynamic adaptive programming
KR101824647B1 (ko) * 2010-10-12 2018-02-02 삼성전자주식회사 디바이스간 동기화 방법, 유저 디바이스, 및 컴퓨터로 읽을 수 있는 저장 매체
US9146936B2 (en) 2011-01-24 2015-09-29 Cox Communications, Inc. Systems and methods for automatically synchronizing data using a mobile communications device
US9256401B2 (en) 2011-05-31 2016-02-09 Microsoft Technology Licensing, Llc Editor visualization of symbolic relationships
JP5817348B2 (ja) 2011-08-31 2015-11-18 富士通株式会社 ファイル同期方法、ファイル同期サーバ装置及びファイル同期プログラム
CN102999491B (zh) * 2011-09-08 2018-02-23 百度在线网络技术(北京)有限公司 一种用于实现用户设备间浏览器操作同步的方法与设备
US9160697B2 (en) 2012-01-01 2015-10-13 Qualcomm Incorporated Data delivery optimization
EP3296868A1 (en) 2012-06-06 2018-03-21 Huawei Device (Dongguan) Co., Ltd. Application management method and terminal
CN103905498B (zh) * 2012-12-27 2018-05-18 鼎捷软件股份有限公司 服务信息管理方法及服务信息管理系统
CN103747008A (zh) * 2014-01-22 2014-04-23 李南南 一种具有加密功能的互联网存储设备及其技术
WO2016070374A1 (zh) * 2014-11-06 2016-05-12 北京安奇智联科技有限公司 移动终端和web终端之间互连及同步通讯信息的方法
WO2017105882A1 (en) * 2015-12-17 2017-06-22 SpringAhead, Inc. Dynamic data normalitzation and duplicate analysis
CA3159276A1 (en) * 2018-04-10 2019-10-17 Huawei Technologies Co., Ltd. Point-to-point database synchronization over a transport protocol
CN110413418B (zh) * 2019-06-25 2022-04-05 北京三快在线科技有限公司 缓存同步装置及方法,缓存同步系统、电子设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2048306A1 (en) * 1990-10-02 1992-04-03 Steven P. Miller Distributed configuration profile for computing system
US5434994A (en) * 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
US5729735A (en) * 1995-02-08 1998-03-17 Meyering; Samuel C. Remote database file synchronizer
US5757669A (en) * 1995-05-31 1998-05-26 Netscape Communications Corporation Method and apparatus for workgroup information replication
CA2227432C (en) * 1995-07-20 2001-05-22 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
US5884324A (en) * 1996-07-23 1999-03-16 International Business Machines Corporation Agent for replicating data based on a client defined replication period
US6044381A (en) * 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
US5943676A (en) * 1996-11-13 1999-08-24 Puma Technology, Inc. Synchronization of recurring records in incompatible databases
CN1141846C (zh) * 1997-05-09 2004-03-10 美国阿尔卡塔尔资源有限合伙公司 服务控制点的数据库迁移

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101384387B1 (ko) * 2005-07-14 2014-04-10 야후! 인크. 사용자 디바이스를 프로비저닝하기 위한 시스템 및 방법
WO2012150744A1 (ko) * 2011-05-04 2012-11-08 주식회사 인프라웨어테크놀러지 어플리케이션 클론 실행 방법, 컴퓨터로 판독가능한 기록매체, 및 이를 지원하는 클론단말
KR101249719B1 (ko) * 2011-05-04 2013-04-03 주식회사 인프라웨어테크놀러지 어플리케이션 클론 실행 방법, 컴퓨터로 판독가능한 기록매체, 및 이를 지원하는 클론단말

Also Published As

Publication number Publication date
EP1014266B1 (en) 2008-01-30
EP1014266A2 (en) 2000-06-28
ES2297914T3 (es) 2008-05-01
DE69938077T2 (de) 2009-01-22
ATE385330T1 (de) 2008-02-15
KR100343823B1 (ko) 2002-07-19
CN1210656C (zh) 2005-07-13
JP3574017B2 (ja) 2004-10-06
EP1014266A3 (en) 2007-04-11
TW474077B (en) 2002-01-21
DE69938077D1 (de) 2008-03-20
CN1252565A (zh) 2000-05-10
JP2000132444A (ja) 2000-05-12
US6477543B1 (en) 2002-11-05

Similar Documents

Publication Publication Date Title
KR100343823B1 (ko) 클라이언트와 적응형 동기화 및 변환 서버를 위한 방법, 장치 및 프로그램 저장 장치
JP3967806B2 (ja) リソースの位置を指名するためのコンピュータ化された方法及びリソース指名機構
US6237005B1 (en) Web server mechanism for processing multiple transactions in an interpreted language execution environment
US8069144B2 (en) System and methods for asynchronous synchronization
US11943291B2 (en) Hosted file sync with stateless sync nodes
US8620926B2 (en) Using a hashing mechanism to select data entries in a directory for use with requested operations
JPH04230567A (ja) 計算システムのための分散型構成プロフィル
WO2004066362A2 (en) System and method for sharing objects among two or more electronic devices
JP2011513863A (ja) 同期サーバープロセス
US6883020B1 (en) Apparatus and method for filtering downloaded network sites
US6058425A (en) Single server access in a multiple TCP/IP instance environment
US20060047718A1 (en) Method of and system for providing coherent cached data to independent distributed applications
US20030115243A1 (en) Distributed process execution system and method
US11138215B2 (en) Method and system for implementing parallel database queries
CN113168405A (zh) 数据库管理服务提供系统
US20020092012A1 (en) Smart-caching system and method
KR100556716B1 (ko) 네트워크를 통해 서로 연결된 복수개의 단말들 간의 분산정보 공유 방법 및 시스템
Yi et al. Extending the condor distributed systems for mobile clients
Wang et al. Rio: a personal storage system in multi-device and cloud
JP3807240B2 (ja) 電子メールシステム
JPH11134238A (ja) ソフトウェア分散開発環境におけるソフトウェア更新管理方式
JPH06259363A (ja) 処理実行システムおよび処理実行方法
JPH09244899A (ja) サーバ計算機、クライアント計算機およびプログラム取得システム
JP2002116919A (ja) ネットワークベースのアプリケーション、それを処理するためのアーキテクチャ及びシステム、ならびにそれを実行するための方法
KR19990031814A (ko) 웹을 통해 제품정보를 관리하는 제품정보관리시스템

Legal Events

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

Payment date: 20130524

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140603

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150601

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 18