KR102042230B1 - 로컬 데이터와 원격 데이터의 동기화 기법 - Google Patents

로컬 데이터와 원격 데이터의 동기화 기법 Download PDF

Info

Publication number
KR102042230B1
KR102042230B1 KR1020147025395A KR20147025395A KR102042230B1 KR 102042230 B1 KR102042230 B1 KR 102042230B1 KR 1020147025395 A KR1020147025395 A KR 1020147025395A KR 20147025395 A KR20147025395 A KR 20147025395A KR 102042230 B1 KR102042230 B1 KR 102042230B1
Authority
KR
South Korea
Prior art keywords
organization
services
schema
cloud
attributes
Prior art date
Application number
KR1020147025395A
Other languages
English (en)
Other versions
KR20140138712A (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 KR20140138712A publication Critical patent/KR20140138712A/ko
Application granted granted Critical
Publication of KR102042230B1 publication Critical patent/KR102042230B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본원에서 설명된 주제의 양태는 데이터 동기화에 관한 것이다. 양태에서, 속성은 오거나이제이션 속성 저장소(organization property store)에서 클라우드 속성 저장소(cloud property store)로 및/또는 그 반대로 동기화된다. 동기화할 속성의 리스트는, 오거나이제이션이 가입한 클라우드 서비스에 기초하여, 클라우드 서비스에 대한 변경에 기초하여, 또는 다른 이유 때문에 변경될 수도 있다. 또한, 동기화할 속성의 리스트는, 시간에 걸쳐 또한 변경될 수도 있는 오거나이제이션의 어떤 오브젝트에 제한될 수도 있다.

Description

로컬 데이터와 원격 데이터의 동기화 기법{SYNCHRONIZING LOCAL AND REMOTE DATA}
오거나이제이션(organization)용 어플리케이션 및 다른 컴퓨팅 리소스는 오거나이제이션의 구내에 및/또는 클라우드에 위치될 수도 있다. 클라우드는 인터넷에 대한 은유로서 종종 사용되는 용어이다. 클라우드는, 컴퓨테이션, 소프트웨어, 데이터 액세스, 스토리지, 및 다른 리소스가, 이들 리소스를 전달하는 컴퓨팅 인프라에 대한 로케이션 또는 다른 상세들을 유저가 알 필요 없이, 인터넷에 접속된 엔티티에 의해 제공될 수도 있다는 아이디어에 의존한다. 오거나이제이션용 몇몇 리소스가 클라우드로부터 제공되고 몇몇은 오거나이제이션의 구내에 위치된 서버에 의해 제공되는 환경에서 문제가 발생한다.
본원에서 청구되는 주제는, 임의의 단점을 해결하거나 또는 위에서 설명된 것들과 같은 환경에서만 동작하는 실시형태에 제한되지 않는다. 대신, 이 배경기술은 본원에서 설명된 몇몇 실시형태가 실시될 수도 있는 하나의 예시적인 기술 분야를 설명하기 위해서만 제공된다.
개요
간략하게, 본원에서 설명된 주제의 양태는 데이터 동기화에 관한 것이다. 양태에서, 속성은 오거나이제이션 속성 저장소(organization property store)에서 클라우드 속성 저장소(cloud property store)로 및/또는 그 반대로 동기화된다. 동기화할 속성의 리스트는, 오거나이제이션이 가입한 클라우드 서비스에 기초하여, 클라우드 서비스에 대한 변경에 기초하여, 또는 다른 이유 때문에 변경될 수도 있다. 또한, 동기화할 속성의 리스트는, 시간에 걸쳐 또한 변경될 수도 있는 오거나이제이션의 어떤 오브젝트에 제한될 수도 있다.
본 개요는 상세한 설명에서 하기에 더 설명되는 주제의 몇몇 양태를 간략히 식별하기 위해 제공된다. 본 개요는 청구항의 청구대상의 핵심적인 특징이나 필수적인 특징들을 밝히고자 함이 아니며, 청구항의 청구대상의 범위를 한정하는 데 이용하고자 하는 것도 아니다.
"본원에서 설명된 주제"라는 어구는, 문맥 상 명확하게 다르게 나타내어지지 않는 한, 상세한 설명에서 설명된 주제를 가리킨다. 용어 "양태"는 "적어도 하나의 양태"로 해석되어야 한다. 상세한 설명에서 설명된 주제의 양태를 식별하는 것은 청구항의 청구대상의 주요한 또는 본질적 특징을 식별하도록 의도된 것은 아니다.
위에서 설명된 양태 및 본원에서 설명된 주제의 다른 양태는 예를 통해 예시되며, 유사한 도면 부호가 유사한 엘리먼트를 나타내는 첨부의 도면들에 제한되지 않는다.
도 1은 본원에서 설명된 주제의 양태가 통합될 수도 있는 예시적인 범용 컴퓨팅 환경을 나타내는 블록도이다.
도 2는 본원에서 설명된 주제의 양태가 동작할 수도 있는 예시적인 환경을 나타내는 블록도이다.
도 3은 본원에서 설명된 주제의 양태에 따른 동기화 매니저의 몇몇 예시적인 컴포넌트를 나타내는 블록도이다.
도 4 및 도 5는 본원에서 설명된 주제의 양태에 따라 발생할 수도 있는 예시적인 액션들을 일반적으로 나타내는 흐름도이다.
상세한 설명
정의
본원에서 사용된 바와 같이, 용어 "포함한다" 및 그 변형들은, "포함한다"는 것을 의미하지만 그것에 제한되지 않는 개방된 용어로서 해석되어야 한다. 용어 "또는"은, 문맥 상 명확하게 다르게 지시하지 않는 한, "및/또는"으로 해석되어야 한다. 용어 "에 기초하는"은 "에 적어도 부분적으로 기초하는"으로 해석되어야 한다. 용어 "일 실시형태" 및 "한 실시형태"는 "적어도 하나의 실시형태"로 해석되어야 한다. 용어 "다른 실시형태"는 "적어도 하나의 다른 실시형태"로 해석되어야 한다.
본원에서 사용된 바와 같이, 단수형 표현은 하나 이상의 지시된 아이템 또는 액션을 포괄한다. 특히, 청구항에서, 한 아이템에 대한 참조는, 일반적으로, 적어도 하나의 그러한 아이템이 존재한다는 것을 의미하며 한 액션에 대한 참조는 그 액션의 적어도 하나의 인스턴스가 수행된다는 것을 의미한다.
가끔 본원에서 용어 "제 1의", "제 2의", "제 3의" 등등이 사용될 수도 있다. 추가적인 문맥이 없다면, 청구항에서의 이들 용어의 사용은 순서매김(ordering)을 의미하도록 의도된 것이 아니며 대신 식별 목적을 위해 사용된다. 예를 들면, "제 1의 버전" 및 "제 2의 버전"이라는 어구는, 제 1의 버전이 정말 첫 번째의 버전이거나 또는 제 2의 버전 이전에 생성되었다는 것 또는 심지어 제 1의 버전이 제 2의 버전 이전에 요구되거나 동작된다는 것을 반드시 의미하는 것은 아니다. 대신, 이들 어구는 상이한 버전을 식별하기 위해 사용된다.
표제(headings)는 편의만을 위한 것으로; 주어진 토픽에 대한 정보는, 표제가 그 토픽을 나타내는 섹션 밖에서 발견될 수도 있다.
다른 정의들이, 명시적으로 그리고 암시적으로, 하기에 포함될 수도 있다.
예시적인 동작 환경
도 1은 본원에서 설명된 주제의 양태가 구현될 수도 있는 적절한 컴퓨팅 시스템 환경(100)의 예를 예시한다. 컴퓨팅 시스템 환경(100)은 적절한 컴퓨팅 환경의 단지 일 예이며 본원에서 설명된 주제의 양태의 사용 또는 기능성의 범위에 관한 어떠한 제한을 제시하도록 의도된 것은 아니다. 또한, 컴퓨팅 환경(100)은, 예시적인 컴퓨팅 환경(100)에서 예시된 컴포넌트 중 임의의 하나 또는 컴포넌트의 조합과 관련하여 어떠한 의존성 또는 요건을 갖는 것으로 해석되지 않아야 한다.
본원에서 설명된 주제의 양태는 다양한 다른 범용의 또는 특별한 목적의 컴퓨팅 시스템 환경 또는 구성과 함께 동작 가능하다. 본원에서 설명된 주제의 양태와 함께 사용하는 데 적절할 수도 있는 구성, 환경 또는 널리 공지된 컴퓨팅 시스템의 예는, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 디바이스, 멀티프로세스 시스템, 마이크로컨트롤러 기반 시스템, 셋탑 박스, 프로그램 가능 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, PDA(personal digital assistant), 게임용 디바이스, 프린터, 셋탑을 포함하는 기기, 미디어 센터, 또는 다른 기기, 자동차 내장형 또는 부착형 컴퓨팅 디바이스, 다른 모바일 디바이스, 상기 시스템 또는 디바이스 중 임의의 것을 포함하는 분산형 컴퓨팅 환경 등을 포함한다.
본원에서 설명된 주제의 양태는, 컴퓨터에 의해 실행되고 있는, 프로그램 모듈과 같은, 컴퓨터 실행가능 명령의 일반적인 맥락에서 설명될 수도 있다. 일반적으로, 프로그램 모듈은, 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 본원에서 설명된 주제의 양태는, 통신 네트워크를 통해 연결된 원격 프로세싱 디바이스에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 또한 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 디바이스를 포함하는 로컬 및 원격 컴퓨터 저장 매체 양자에 위치될 수도 있다.
도 1을 참조하면, 본원에서 설명된 주제의 양태를 구현하기 위한 예시적인 시스템은 범용 컴퓨팅 디바이스를 컴퓨터(110)의 형태로 포함한다. 컴퓨터는 명령을 실행할 수 있는 임의의 전자 디바이스를 포함할 수도 있다. 컴퓨터(110)의 컴포넌트는 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(120)에 커플링하는 시스템 버스(121)를 포함할 수도 있다. 시스템 버스(121)는 다양한 버스 아키텍쳐 중 임의의 것을 사용하는 로컬 버스, 메모리 버스 또는 메모리 컨트롤러, 및 주변 버스를 포함하는 여러 타입의 버스 구조 중 임의의 것일 수도 있다. 비제한적인 예로서, 이러한 아키텍쳐는 ISA(Industry Standard Architecture) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 메자닌 버스로도 또한 알려진 PCI(Peripheral Component Interconnect) 버스, PCI-X( Peripheral Component Interconnect Extended) 버스, AGP(Advanced Graphics Port), 및 PCI 익스프레스(PCIe)를 포함한다.
프로세싱 유닛(120)은 하드웨어 보안 디바이스(122)에 연결될 수도 있다. 보안 디바이스(122)는 컴퓨터(110)의 다양한 양태를 안전하게 하기 위해 사용될 수도 있는 암호 키를 저장할 수도 있고 생성할 수도 있다. 일 실시형태에서, 보안 디바이스(122)는 TPM(Trusted Platform Module; 보안 플랫폼 모듈) 칩, TMP 보안 디바이스 등을 포함할 수도 있다.
컴퓨터(110)는, 일반적으로, 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는, 컴퓨터(110)에 의해 액세스될 수 있으며 휘발성 및 불휘발성 매체, 및 착탈식 및 비착탈식 매체 양자를 포함하는 가용 매체일 수 있다. 비제한적인 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수도 있다.
컴퓨터 저장 매체는, 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 불휘발성의 착탈식 및 비착탈식 매체 양자를 포함할 수도 있다. 컴퓨터 저장 매체는, RAM, ROM, EEPROM, 솔리드 스테이트 스토리지, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리 또는 다른 자기 스토리지 디바이스, 또는 소망의 정보를 저장하기 위해 사용될 수도 있고 컴퓨터(110)에 의해 액세스될 수 있는 임의의 다른 매체를 포함한다.
통신 매체는 일반적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호에서의 다른 데이터를 구체화하며 임의의 정보 전송 매체를 포함할 수도 있다. 용어 "변조된 데이터 신호"는 하나 이상의 자신의 속성 세트를 구비하거나 또는 신호에 정보를 인코딩하는 방식으로 변경된 신호를 의미한다. 비제한적인 예로서, 통신 매체는, 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 및 음파, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다. 상기의 임의의 조합도 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132)과 같은 휘발성 및/또는 불휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 예컨대 기동(start-up) 동안, 컴퓨터(110) 내의 엘리먼트 사이에서 정보를 전달하는 것을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(133)(BIOS)은, 일반적으로, ROM(131)에 저장된다. RAM(132)은, 일반적으로, 프로세싱 유닛(120)이 즉시 액세스할 수 있고 및/또는 프로세싱 유닛(120)에 의해 현재 동작되고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 비제한적인 예로서, 도 1은 오퍼레이팅 시스템(134), 어플리케이션 프로그램(135), 다른 프로그램 모듈(136), 및 프로그램 데이터(137)를 예시한다.
컴퓨터(110)는 다른 착탈식/비착탈식의 휘발성/불휘발성 컴퓨터 저장 매체를 또한 포함할 수도 있다. 단지 예로서, 도 1은, 비착탈식의 불휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(141), 착탈식의 불휘발성 자기 디스크(152)로부터 판독하거나 그 자기 디스크(152)에 기록하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 다른 광학 매체와 같은 착탈식의 불휘발성 광학 디스크(156)로부터 판독하고 그 광학 디스크(156)에 기록하는 광학 디스크 드라이브(155)를 예시한다. 예시적인 동작 환경에서 사용될 수 있는, 다른 착탈식/비착탈식의 휘발성/불휘발성 컴퓨터 저장 매체는, 자기 테이프 카세트, 플래시 메모리 카드 및 다른 솔리드 스테이트 저장 디바이스, 디저털 다기능 디스크, 다른 광학 디스크, 디지털 비디오 테이프, 솔리드 스테이트 RAM, 솔리드 스테이트 ROM 등을 포함한다. 하드 디스크 드라이브(141)는 인터페이스(140)를 통해 시스템 버스(121)에 연결될 수도 있고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는, 착탈식의 불휘발성 메모리에 대한 인터페이스, 예컨대 인터페이스(150)에 의해 시스템 버스(121)에 연결될 수도 있다.
위에서 논의되고 도 1에서 예시된 드라이브와 그들 관련 컴퓨터 저장 매체는, 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 및 컴퓨터(110)용의 다른 데이터의 스토리지를 제공한다. 도 1에서, 예를 들면, 하드 디스크 드라이브(141)는 오퍼레이팅 시스템(144), 어플리케이션 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 예시된다. 이들 컴포넌트는, 오퍼레이텅 시스템(134), 어플리케이션 프로그램(135), 다른 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 또는 상이할 수 있다. 오퍼레이팅 시스템(144), 어플리케이션 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)는, 적어도, 그들이 상이한 카피들(copies)임을 예시하기 위해 본원에서 상이한 번호들을 부여 받았다.
유저는, 마우스, 트랙볼, 또는 터치패드로 일반적으로 칭해지는 포인팅 디바이스(161) 및 키보드(162)와 같은 입력 디바이스를 통해 컴퓨터(110)에 커맨드 및 정보를 입력할 수도 있다. 다른 입력 디바이스(도시되지 않음)는, (예를 들면, 음성 또는 다른 오디오 입력하기 위한) 마이크, 조이스틱, 게임패드, 위성 접시, 스캐너, 터치감응형 화면, 필기용 태블릿(writing tablet), (예를 들면, 제스쳐 또는 다른 시각적 입력을 입력하기 위한) 카메라 등을 포함할 수도 있다. 이들 및 다른 입력 디바이스는, 시스템 버스에 커플링되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 버스 구조와 다른 인터페이스에 연결될 수도 있는 유저 입력 인터페이스(160)를 통해 프로세싱 유닛(120)에 종종 연결된다.
모니터(191) 또는 다른 타입의 디스플레이 디바이스는 인터페이스, 예컨대 비디오 인터페이스(190)를 통해 시스템 버스(121)에 또한 연결된다. 모니터에 더해, 컴퓨터는 스피커(197) 및 프린터(196)와 같은 다른 주변 출력 디바이스를 또한 포함할 수도 있는데, 이들은 출력 주변 인터페이스(195)를 통해 연결될 수도 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터에 대한 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수도 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 디바이스 또는 다른 공용 네트워크 노드일 수도 있고, 비록 도 1에서는 메모리 저장 디바이스(181)만이 예시되었지만, 통상적으로, 컴퓨터(110)에 대해 위에서 설명된 엘리먼트의 전체 또는 그 엘리먼트 중 많은 엘리먼트를 포함한다. 도 1에서 묘사된 논리적 접속들은 근거리 통신망(LAN; 171) 및 광역망(WAN; 173)을 포함하지만, 다른 네트워크를 또한 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 엔터프라이즈 기반의 컴퓨터 네트워크, 인트라넷, 및 인터넷에서는 흔한 것이다.
LAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(110)는, 모뎀(172) 또는 인터넷과 같은 WAN(173)을 통해 통신을 확립하기 위한 다른 수단을 포함할 수도 있다. 내장형 또는 외장형일 수도 있는 모뎀(172)은, 유저 입력 인터페이스(160) 또는 다른 적절한 메커니즘을 통해 시스템 버스(121)에 접속될 수도 있다. 네트워크화된 환경에서, 컴퓨터(110)에 대해 묘사된 프로그램 모듈, 또는 그 일부는 원격 메모리 저장 디바이스에 저장될 수도 있다. 비제한적인 예로서, 도 1은 원격 어플리케이션 프로그램(185)을 메모리 디바이스(181) 상에 상주하는 것으로 예시한다. 도시된 네트워크 접속은 예시이며 컴퓨터 사이에 통신 링크를 확립하는 다른 수단이 사용될 수도 있다.
동기화
이전에 언급된 바와 같이, 오거나이제이션용 컴퓨팅 리소스는 오거나이제이션의 구내에 및/또는 클라우드에 위치될 수도 있다. 오거나이제이션이 자기 자신의 컴퓨팅 서비스의 일부를 로컬하게 제공하고 다른 컴퓨팅 서비스를 클라우드로부터 획득할 것을 선택하는 하이브리드 모델에서, 적절히 기능하기 위해, 오거나이제이션의 컴퓨팅 리소스 내에 존재하는 데이터의 카피를 클라우드가 가지면, 클라우드는 더 효율적으로 필요되거나 동작할 수도 있다.
도 2는 본원에서 설명된 주제의 양태가 동작할 수도 있는 예시적인 환경을 나타내는 블록도이다. 도 2에서 예시된 엔티티는 예시이며 필요되거나 포함될 수도 있는 엔티티를 모두 포함하는 것으로 의도된 것은 아니다. 다른 실시형태에서, 도 2와 연계하여 설명된 엔티티 및/또는 기능은, 본원에서 설명된 주제의 양태의 취지 또는 범위를 벗어나지 않으면서, 다른 엔티티(도시되거나 또는 도시되지 않음)에 포함되거나 또는 서브 엔티티에 배치될 수도 있다. 몇몇 실시형태에서, 도 2와 연계하여 설명된 엔티티 및/또는 기능은 다수의 디바이스들에 걸쳐 분산될 수도 있다.
시스템(205)은 오거나이제이션 리소스(210), 클라우드 리소스(215), 동기화 매니저(220), 및 다른 엔티티(도시되지 않음)를 포함할 수도 있다. 본원에서 사용된 바와 같이, 용어 엔티티는, 하나 이상의 디바이스의 전체 또는 그 일부, 하나 이상의 소프트웨어 모듈의 콜렉션 또는 그 일부, 하나 이상의 소프트웨어 모듈의 몇몇 조합 또는 그 일부 및 하나 이상의 디바이스 또는 그 일부 등을 포함하는 것으로 해석되어야 한다.
오거나이제이션 리소스(210)는 오거나이제이션이 직접 제어하는 컴퓨팅 리소스를 포함할 수도 있다. 이들 리소스는, 예를 들면, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 디바이스, 멀티프로세서 시스템, 마이크로컨트롤러 기반 시스템, 셋탑 박스, 프로그램 가능한 가전, 네트워크 PC, 미니 컴퓨터, 메인 프레임 컴퓨터, 셀 폰, PDA(personal digital assistant), 게임용 디바이스, 프린터, 셋탑을 포함하는 기구, 미디어 센터, 또는 다른 기구, 자동차 내장형 또는 부착형 컴퓨팅 디바이스, 다른 모바일 디바이스, 상기 시스템 또는 디바이스의 임의의 것을 포함하는 분산형 컴퓨팅 환경 등을 포함할 수도 있다.
클라우드 리소스(215)는 클라우드를 통해 오거나이제이션에 이용 가능한 컴퓨팅 리소스를 포함할 수도 있다. 클라우드 리소스(215)는, 예를 들면, 하나 이상의 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 디바이스, 멀티프로세서 시스템, 마이크로컨트롤러 기반 시스템, 셋탑 박스, 프로그램 가능한 가전, 네트워크 PC, 미니 컴퓨터, 메인 프레임 컴퓨터, 셀 폰, PDA(personal digital assistant), 게임용 디바이스, 프린터, 셋탑을 포함하는 기구, 미디어 센터, 또는 다른 기구, 자동차 내장형 또는 부착형 컴퓨팅 디바이스, 다른 모바일 디바이스, 상기 시스템 또는 디바이스의 임의의 것을 포함하는 분산형 컴퓨팅 환경 등을 포함할 수도 있다.
클라우드 리소스(215)는 하나 이상의 서비스를 제공할 수도 있다. 서비스는, 전용 작업을 수행하는 하나 이상의 프로세스, 스레드, 컴포넌트, 라이브러리 등을 포함할 수도 있다. 몇몇 예시적인 서비스는 이메일, 문서 관리, 보고서 작성, 데이터베이스, 계산, 캘린더링(calendaring), 스케줄링, 인스턴트 메시징을 포함한다.
속성 저장소(225) 및 속성 저장소(226)는 데이터에 대한 액세스를 제공할 수 있는 임의의 스토리지를 포함할 수도 있다. 본원에서 사용된 바와 같은 액세스는, 데이터 판독, 데이터 기록, 데이터 삭제, 데이터 업데이트, 상기한 것 중 2개 이상을 포함하는 조합 등을 포함할 수도 있다. 저장소(225 및 226)는 하드 디스크 스토리지, 다른 불휘발성 스토리지, RAM과 같은 휘발성 메모리, 다른 스토리지, 상기한 것의 몇몇 조합 등을 포함할 수도 있고 다수의 디바이스에 걸쳐 분산될 수도 있다. 저장소(225 및 226)는 시스템(205)에 대해 외장형일 수도 있거나, 내장형일 수도 있거나, 또는 외장형과 내장형 양자인 컴포넌트를 포함할 수도 있다.
용어 데이터는, 하나 이상의 컴퓨터 저장 엘리먼트에 의해 표현될 수도 있는 임의의 것을 포함하도록 광의적으로 해석되어야 한다. 논리적으로, 데이터는 휘발성 또는 불휘발성 메모리에서 일련의 1들과 0들로서 표현될 수도 있다. 비-2진 저장 매체를 갖는 컴퓨터에서, 데이터는 저장 매체의 성능에 따라 표현될 수도 있다. 데이터는, 숫자, 문자 등과 같은 간단한 데이터 타입, 계층적이거나, 링크된, 또는 다른 관련된 데이터 타입, 다수의 다른 데이터 구조 또는 간단한 데이터 타입을 포함하는 데이터 구조 등을 포함하는 상이한 타입의 데이터 구조로 편제될 수도 있다. 데이터의 몇몇 예는, 정보, 프로그램 코드, 프로그램 상태, 프로그램 데이터, 다른 데이터 등을 포함한다. 일 구현예에서, 데이터는 구조화되고 이름이 부여된다.
속성은 오브젝트와 관련되거나 또는 오브젝트에 포함되는 데이터의 일부이다. 본원에서 사용된 바와 같은 오브젝트는 하나 이상의 데이터 엘리먼트를 포함할 수도 있다. 이들 데이터 엘리먼트는 가끔 속성으로 칭해진다. 예를 들면, 유저 오브젝트는 이름 속성, 주소 속성, 전화 속성, 이메일 주소 속성, 매니저 속성 등등을 구비할 수도 있다.
오브젝트는 오브젝트 클래스에 의해 정의될 수도 있다. 오브젝트 클래스는, 예를 들면, 오브젝트 이름 및 오브젝트 클래스의 하나 이상의 속성 타입을 나타낼 수도 있다. 오브젝트 클래스의 예시화된 오브젝트는 오브젝트 클래스의 하나 이상의 속성 타입의 속성을 포함하거나 그 속성과 관련될 수도 있다. 몇몇 예시적인 오브젝트 타입은 유저, 그룹, 연락처(contacts), 머신 등을 포함한다. 모든 또는 거의 모든 엔티티가 오브젝트 클래스에 의해 정의될 수도 있다는 것이 당업자에 의해 인식될 것이기 때문에, 이들 타입은 단지 예로서만 주어진다. 본원의 교시에 기초하여, 당업자는, 본원에서 설명된 주제의 양태의 취지 또는 범위를 벗어나지 않으면서, 본원의 교시가 적용될 수도 있는 많은 오브젝트 클래스를 인식할 것이다.
속성 저장소(225)는 오거나이제이션의 데이터를 포함할 수도 있다. 예를 들면, 속성 저장소(225)는 종업원 데이터, 급여 데이터, 지출 데이터, 이메일 데이터, 어카운팅 데이터, 오거나이제이션 계층 데이터, 감독 종료 데이터(supervisory sign off data), 종료 제한(sign off limits), 라이센싱 데이터, 메타데이터, 오거나이제이션이 유지관리(maintain)할 수도 있는 임의의 다른 데이터 등을 포함할 수도 있다. 이 데이터는 오거나이제이션 내의 다양한 장소들에 저장될 수도 있다. 속성 저장소(225)는 데이터를 포함하거나, 데이터를 참조하거나, 또는 오거나이제이션이 데이터를 저장하는 장소로부터 데이터를 획득할 수도 있다.
속성 저장소(226)는, 하나 이상의 오거나이제이션으로부터 클라우드 리소스(215)로 제공된 데이터를 포함할 수도 있다. 이 데이터는 오거나이제이션의 엔티티에게 소정의 서비스를 제공하기 위해 사용될 수도 있다. 예를 들면, 이메일 데이터는, 클라우드에서 호스팅되는 이메일 서비스를 사용하여 오거나이제이션의 한 멤버가 이메일을 작성하고, 전송하고, 그리고 수신하는 것을 허용하고 그리고 오거나이제이션에 대한 연락처를 룩업하는 것을 허용할 수도 있다. 다른 예로서, 원가 중심점 데이터(cost center data)는, 오거나이제이션의 다양한 지출에 대한 원가 중심점을 반영하는 지출 보고를 어카운팅 서비스가 제공하는 것을 허용할 수도 있다.
속성 저장소(225) 및 속성 저장소(226)는 동일한 속성을 상이한 방식으로 표현할 수도 있다. 예를 들면, 속성 저장소(225)는 속성을 파일의 데이터를 통해 표현할 수도 있는 한편, 속성 저장소(226)는 그들 동일한 속성을 데이터베이스의 테이블에서 표현할 수도 있다.
동기화 매니저(220)는, 속성 저장소(225)와 속성 저장소(226) 사이에서 데이터를 동기화시키는 엔티티이다. 일 실시형태에서, 동기화 매니저(220)는 오거나이제이션의 디바이스 상에서 호스팅될 수도 있다. 다른 실시형태에서, 동기화 매니저(220)는 클라우드의 컴퓨팅 리소스 상에서 호스팅될 수도 있다. 다른 실시형태에서, 동기화 매니저(220)는 오거나이제이션 리소스(210)를 호스팅하는 시스템 및 클라우드 리소스(215)를 호스팅하는 시스템의 양 시스템 외부의 디바이스 상에서 호스팅될 수도 있다. 다른 실시형태에서, 동기화 매니저(220)는, 동기화 매니저(220)가 오거나이제이션의 디바이스 상에서 실행하는 컴포넌트뿐만 아니라 클라우드의 디바이스 상에서 실행하는 컴포넌트를 포함하도록 분산될 수도 있다.
본원에서, 속성 저장소(225)로부터 특정 저장소(226)로 데이터를 전송하는 것에 의해 속성 동기화 매니저(220)가 속성 저장소(225) 및 특정 저장소(226) 사이에서 데이터를 동기화하는 것이 종종 언급되었지만, 다른 실시형태에서, 속성은 속성 저장소(226)에서 마스터링되어 속성 저장소(225)에 동기화될 수도 있다. 또 다른 구현예에서, 몇몇 속성은 속성 저장소(225)에서 마스터링되어 속성 저장소(226)에 동기화될 수도 있지만, 다른 속성은 속성 저장소(226)에서 마스터링되어 속성 저장소(225)에 동기화될 수도 있다.
주기적으로 또는 다른 시간들에서, 동기화 매니저(220)는 속성 저장소(225)와 속성 저장소(226) 사이에서 데이터를 동기화할 수도 있다. 동기화될 필요가 있는 데이터를 결정하기 위해, 동기화 매니저는 소정의 조건을 체크할 수도 있다. 예를 들면, 매 시간마다 한 번, 동기화 매니저(220)는:
1. 클라우드 리소스에 의해 필요되는 속성의 세트가 변경되었는지;
2. 속성이 필요되어지는 오브젝의 세트가 변경되었는지; 그리고
3. 속성을 표현하는 실제 데이터가 속성 저장소(225) 상에서 변경되었는지를 체크할 수도 있다.
상기 언급된 조건을 발견하는 것에 응답하여 동기화 매니저(220)가 취할 수도 있는 액션들은 다음과 같다:
1. 클라우드 리소스에 의해 필요되는 속성의 세트가 변경된 경우. 클라우드에 의해 오거나이제이션에 제공되는 각각의 서비스 하나 이상의 속성을 필요로 할 수도 있다. 예를 들면, 오거나이제이션의 종업원에게 적절하게 임금을 지불하기 위해, 급여 서비스는 이름, 주소, 정부 식별자(government identifier), 급여액, 및 다른 속성을 필요로 할 수도 있다. 이메일 서비스는 이름, 전화번호, 이메일 주소, 및 다른 속성을 필요로 할 수도 있다. 오거나이제이션이 클라우드를 통한 급여 및 이메일 서비스 둘 다를 가지면, 필요되어지는 속성의 세트는 각각의 서비스에 의해 필요되어지는 속성의 논리적 OR 연산자의 적용에 의해 결정될 수도 있다. 상기의 예에 의하면, 논리적 OR 연산자는 이름, 주소, 정부 식별자, 급여액, 전화번호, 이메일 주소, 및 두 서비스에 의해 필요되어지는 임의의 다른 속성을 포함할 것이다. 이 동일한 방법론을 사용하여, 필요되어지는 속성의 세트가 임의의 수의 서비스에 대해 결정될 수도 있다.
따라서, 오거나이제이션이 클라우드의 다른 서비스에 가입했고, 현재 필요되어지는 속성의 세트에 이미 포함되지 않은 속성을 그 서비스가 필요로 하면, 필요되어지는 속성의 세트에 그 속성이 추가된다.
마찬가지로, 오거나이제이션이 클라우드의 서비스에 가입하지 않았다면, 오거나이제이션이 가입한 임의의 다른 서비스에 의해 필요되어지지 않는, 가입되지 않은 서비스에 의해 필요되어지는 임의의 속성은 필요되어지는 속성의 세트로부터 제거될 수도 있다.
클라우드 리소스에 의해 필요되어지는 속성의 세트가 변경되었다면, 필요되어지는 속성의 세트로부터 속성이 추가되고 및/또는 제거될 수도 있었을 것이다. 제거된 속성에 대해, 동기화 매니저(220)는 클라우드 리소스(215)에게 세트로부터 제거된 속성의 이전에 획득된 데이터를 삭제할 것을 명령할 수도 있다.
추가된 속성에 대해, 동기화 매니저(220)는 속성 저장소(225)로부터 대응하는 데이터를 획득하고 이 데이터가 속성 저장소(226)에 저장되게 할 수도 있다.
일 실시형태에서, 동기화 매니저(220)는, 클라우드 리소스(215) 내의 컴포넌트와 통신하여 클라우드 리소스(215)에 의해 필요되어지는 속성의 세트를 획득하는 것에 의해, 클라우드 리소스(215)에 의해 필요되어지는 속성의 세트가 변경되었는지를 결정할 수도 있다. 그 다음, 동기화 매니저(220)는 이 속성의 세트를 필요되어지는 속성의 이전의 세트와 비교하여, 만약 속성 추가가 있다면, 어떤 속성이 추가되었는지, 그리고, 만약 속성 삭제가 있다면, 어떤 속성이 삭제되었는지를 결정할 수도 있다.
클라우드 리소스(215)는, 각각의 서비스에 대해 필요되어지는 속성을 나타내는 데이터베이스, 파일, 또는 다른 데이터 구조에 데이터를 저장할 수도 있다. 클라우드 리소스(215)는, 각각의 오거나이제이션이 가입한 서비스를 나타내는 데이터를 또한 저장할 수도 있다. 각각의 오거나이제이션으로부터 필요되어지는 속성을 결정하기 위해, 클라우드 리소스(215)의 컴포넌트는, 각각의 오거나이제이션이 가입한 서비스(들)를 나타내는 데이터를, 각각의 서비스에 대해 필요되어지는 속성을 나타내는 데이터에 결합시킬 수도 있다.
2. 속성이 필요되어지는 오브젝의 세트가 변경된 경우. 클라우드 리소스(215)는 속성 저장소(225)의 선택된 오브젝트에 대해서만 속성을 필요로 할 수도 있다. 예를 들면, 오거나이제이션은 캘린더 서비스를 이용하는 소정의 유저에 대한 라이센스를 구비할 수도 있다. 캘린더 서비스는, 캘린더 서비스에 가입된 유저에 대해서만, 이름, 전화번호, 사무소 위치, 및 다른 속성을 포함할 수도 있다. 오거나이제이션의 모든 유저의 속성을 동기화시키는 대신, 동기화 매니저(220)는 캘린더 서비스에 가입된 유저에 대한 속성만을 동기화시킬 수도 있다.
상기 예가 유저 오브젝트 클래스의 오브젝트를 설명하지만, 본원에서 설명된 주제의 양태를 유저 오브젝트 클래스로만 제한하려는 어떠한 의도도 없다. 실제, 본원의 교시에 기초하여, 당업자는, 본원에서 설명된 주제의 양태의 취지 또는 범위를 벗어나지 않으면서, 본원의 교시가 적용될 수도 있는 다른 타입의 오브젝트 클래스를 인식할 것이다.
필요되어지는 오브젝트의 세트는 다양한 이유로 인해 변경될 수도 있다. 예를 들면, 머신이 오거나이제이션에 추가되었다면, 머신 오브젝트의 속성은 속성 저장소(225)로부터 속성 저장소(226)로 동기화될 필요가 있을 수도 있다.
다른 예로서, 필요되는 오브젝트의 세트는 서비스에 대한 가입에서의 변경에 응답하여 변경될 수도 있다. 예를 들면, 오거나이제이션이 새로운 서비스에 가입했다면, 새로운 서비스는 오거나이제이션의 소정의 오브젝트 타입으로부터의 속성을 필요로 할 수도 있다. 클래스의 필요되어지는 오브젝트의 세트는, 클래스의 이용가능한 전체 예시화된 오브젝트의 서브셋으로 제한될 수도 있다. 예를 들면, 클라우드에서의 서비스는, 오거나이제이션에 대해 디렉토리 서버로서 역할을 하는 클래스 머신의 오브젝트의 속성만을 필요로 할 수도 있다. 다른 예로서, 클라우드에서의 서비스는 종업원 클래스의 소정의 오브젝트에 대한 속성만을 필요로 할 수도 있다.
오브젝트가 오브젝트의 세트에 추가되었다면, 추가된 오브젝트에 대한 속성은 속성 저장소(225)로부터 획득되어 속성 저장소(226)에 저장될 수도 있다. 오브젝트가 오브젝트의 세트로부터 제거되었다면, 오브젝트의 세트로부터 오브젝트가 제거된 속성 저장소(226)에 이미 저장된 속성도 속성 저장소(226)로부터 또한 제거될 수도 있다.
3. 속성을 표현하는 실제 데이터가 속성 저장소(225) 상에서 변경된 경우. 예를 들면, 종업원 전화 번호가 변경되고 주소가 변경되었다면, 동기화 매니저(220)는 이 변경을 속성 저장소(226)로 전파할 수도 있다. 대역폭을 절약하기 위해, 일 구현예에서, 매번 모든 데이터를 전송하는 대신, 동기화 매니저(220)는, 동기화 매니저(220)가 동기화를 마지막으로 수행한 이후 발생한 변경을 전송할 수도 있다.
속성 저장소(225)에 존재하지 않는 속성이 요구되면, 이것은 구현예에 따라 핸들링될 수도 있다. 예를 들면, 일 구현예에서, 동기화 매니저(220)는 오거나이제이션 리소스(210)의 컴포넌트에게 부족을 통지하고 그 컴포넌트가 누락 속성을 공급하는 것을 허용할 수도 있다. 다른 구현예에서, 동기화 매니저(220)는 속성에 대해 디폴트 데이터를 공급할 수도 있다. 다른 구현예에서, 클라우드 리소스(215)에서의 컴포넌트는 누락 속성을 공급하는 데 사용될 수도 있다. 또 다른 구현예에서, 동기화 매니저(220)는 동기화 수행을 실패하고 에러 메시지를 제공할 수도 있다.
상기 구현예는 누락 속성이 핸들링될 수도 있는 다양한 방식을 모두 포함하거나 포괄하도록 의도된 것은 아니다. 본원의 교시에 기초하여, 당업자는, 본원에서 설명된 주제의 양태의 취지와 범위를 벗어나지 않으면서 사용될 수도 있는 다른 구현예를 인식할 수도 있다.
도 3은 본원에서 설명된 주제의 양태에 따른 동기화 매니저의 몇몇 예시적인 컴포넌트를 예시하는 블록도이다. 동기화 매니저(220)는 델타 매니저(305), 오브젝트 선택기(310), 속성 선택기(312), 라이센싱 매니저(315), 및 다른 컴포넌트(도시되지 않음)를 포함할 수도 있다.
델타 매니저(305)는, 이전의 동기화 액티비티 이후 오거나이제이션의 속성 저장소에서 변경된 속성을 결정하도록 동작할 수도 있다. 예를 들면, 도 2 및 도 3을 참조하면, 델타 매니저(305)는, 동기화 매니저(220)가 속성을 속성 저장소(225)에서 속성 저장소(226)으로 마지막으로 동기화시킨 이후 속성 저장소(225) 상에서 변경된 속성을 검출할 수도 있다. 델타 매니저(305)는, 동기화가 나타내어진 그들 오브젝트와 속성에 대한 검출만으로 더 제한할 수도 있다.
오브젝트 선택기(310)는 동기화할 오브젝트를 제한하기 위해 사용할 오브젝트의 표시(indication)를 수신할 수도 있다. 오브젝트 선택기는 속성을 획득하기 위해 사용할 오브젝트를 결정하기 위해 표시를 사용할 수도 있다. 예를 들면, 오브젝트 선택기(310)는 오브젝트를 가리키는 하나 이상의 규칙을 수신할 수도 있다. 규칙은, 동기화에 대해 오브젝트가 포함되는 것을 허용하는 하나 이상의 조건을 나타낼 수도 있다. 예를 들면, 오브젝트 선택기(310)는, 미국에 집 주소를 갖는 오브젝트만이 동기화될 것이라고 나타내는 규칙을 수신할 수도 있다.
속성 선택기(312)는 동기화될 속성을 결정하도록 동작할 수도 있다. 일 구현예에서, 속성 선택기(312)는 오브젝트 클래스와 동기화될 필요가 있는 오브젝트 클래스의 속성의 리스트를 수신할 수도 있고, 그로부터 오브젝트 클래스의 적격 오브젝트에 대해, 동기화될 필요가 있는 속성의 세트를 구성할 수도 있다. 적격 오브젝트는 오브젝트 선택기(310)에 의해 제한되지 않는 오브젝트이다. 다른 구현예에서, 속성 선택기(312)는 동기화할 속성 및 그 속성과 관련된 오브젝트 클래스의 리스트를 수신할 수도 있다.
라이센싱 매니저(315)는 서비스에 대한 인가된 가입자를 추적할 수도 있고 서비스에 대한 인가된 가입자에 기초하여 동기화할 속성을 제한하는 데 사용할 오브젝트의 표시(예를 들면, 규칙, 리스트 등)를 생성할 수도 있다.
델타 매니저(305), 오브젝트 선택기(310), 속성 선택기(312), 및 라이센싱 매니저(315) 또는 그 일부는, 다양한 실시형태에서, 오거나이제이션의 리소스, 클라우드 리소스, 오거나이제이션의 리소스와 클라우드 리소스 외부의 리소스 및 상기한 것의 2개 이상의 조합 등 상에서 호스팅될 수도 있다. 또한, 몇몇 실시형태에서, 상기 엔티티의 기능은, 본원에서 설명된 주제의 양태의 취지와 범위로부터 벗어나지 않으면서, 하나 이상의 엔티티에서 결합되거나, 다른 엔티티(도시되거나 또는 도시되지 않음)에 포함되거나 또는 서브 엔티티에 놓일 수도 있다.
도 4 및 도 5는 본원에서 설명된 주제의 양태에 따라 발생할 수도 있는 예시적인 액션들을 일반적으로 나타내는 흐름도이다. 설명의 간략화를 위해, 도 4 및 도 5와 연계하여 설명된 방법론은 일련의 액트로서 묘사되고 설명된다. 본원에서 설명된 주제의 양태는 예시된 액트에 의해 및/또는 액트의 순서에 의해 제한되지 않는다는 것이 이해되고 인식되어야 한다. 일 실시형태에서, 액트는 하기에 설명된 바와 같은 순서로 발생한다. 그러나, 다른 실시형태에서 액트는 병렬로, 다른 순서로, 및/또는 본원에서 제시거나 설명되지 않은 다른 액트와 함께 발생할 수도 있다. 또한, 본원에서 설명된 주제의 양태에 따른 방법론을 구현하는 데 예시된 모든 액트가 필요하지 않을 수도 있다. 또한, 당업자는, 방법론이, 대안적으로, 상태도를 통한 일련의 서로 관련된 상태로서 또는 이벤트로서 표현될 수 있다는 것을 이해하고 알 것이다.
도 4로 돌아가서, 블록 405에서, 액션이 시작한다. 블록 410에서, 새로운 스키마가 획득된다. 본원에서 사용된 바와 같이, 스키마는 최소한 동기화할 속성을 나타낸다. 스키마는 속성과 관련된 오브젝트 클래스를 또한 나타낼 수도 있다. 스키마는 오브젝트 사이의 관계를 나타낼 수도 있고, 포함할 속성의 단조로운 표현을 포함할 수도 있다. 예를 들면, 도 2를 참조하면, 동기화 매니저(220)는 클라우드 리소스(215)의 컴포넌트로부터 동기화할 속성의 스키마를 획득할 수도 있다.
블록 415에서, 새로운 스키마는 이전의 동기화를 위해 동기화 매니저가 사용했던 예전(old) 스키마에 비교된다. 테스트는, 동기화할 동일한 세트의 속성을 새로운 또는 예전 스키마가 나타내는지를 결정할 것이다. 예를 들면, 도 2를 참조하면, 동기화 매니저(220)는, 동기화할 동일한 속성을 나타내는지의 관점에서 예전 스키마와 새로운 스키마가 동일한지를 결정하기 위해, 예전 스키마와 새로운 스키마를 비교한다.
블록 420에서, 동기화할 추가적인 속성을 새로운 스키마가 포함하면, 액션은 블록 425에서 계속하고; 그렇지 않으면, 액션은 블록 430에서 계속한다. 이들 추가적인 속성은, 새로운 스키마가 가리키는 기존 오브젝트의 추가적인 속성으로부터 유래할 수도 있고 및/또는 스키마가 가리키는 새로운 오브젝트의 속성이 동기화되어야하는 때로부터 유래할 수도 있다.
대안적으로, 새로운 스키마에 추가하여, 오거나이제이션 속성 저장소와 클라우드 속성 저장소 사이에서 동기화할 속성을 제한하기 위해 사용할 오브젝트를 나타내는 데이터가 획득될 수도 있다. 예를 들면, 동기화가 추구되는 오브젝트의 리스트가 획득될 수도 있다. 리스트에서 발견된 오브젝트에 대한 속성은 동기화될 수도 있는 한편, 리스트에서 발견되지 않은 오브젝트에 대한 속성은 동기화되지 않을 수도 있다. 리스트는, 각각의 오브젝트를 나타내는 것에 의해 또는, 오거나이제이션 속성 저장소에 적용될 때, 포함할 오브젝트를 결정하는 하나 이상의 규칙을 사용하는 것을 통해 특정될 수도 있다. 일 구현예에서, 오브젝트는 서비스의 인가된 가입자에 대응한다.
블록 425에서, 추가적인 속성이 동기화된다. 예를 들면, 도 2를 참조하면, 동기화 매니저(220)는 현재 동기화된 각각의 오브젝트에 대해 반복되고, 속성 저장소(225)로부터 추가적인 속성에 대응하는 데이터를 획득하고, 동기화를 위해 데이터를 속성 저장소(226)로 전송할 수도 있다. 다른 예로서, 동기화 매니저(220)는 동기화될 각각의 추가적인 오브젝트(예를 들면, 이전에 동기화되지 않은 오브젝트)에 대해 반복되고, 속성 저장소(225)로부터 오브젝트에 대한 동기화할 모든 속성에 대응하는 데이터를 획득하고, 속성 저장소(226)로 동기화될 데이터를 속성 저장소(226)로 전송할 수도 있다.
블록 430에서, 새로운 스키마가 예전 스키마의 속성/오브젝트를 포함하지 않으면, 액션은 블록 435에서 계속하고; 그렇지 않으면, 액션은 블록 440에서 계속한다.
블록 435에서, 예전 스키마에 포함되었지만 새로운 스키마에 포함되지 않은 속성은 더 이상 동기화되지 않는다. 예를 들면, 도 2를 참조하면, 유저 오브젝트의 속성 원가 중심점이 새로운 스키마에서 삭제되었다면, 이 속성은 속성 저장소(225)에서 속성 저장소(226)로 더 이상 동기화되지 않는다. 다른 예로서, 소정의 유저 오브젝트가 더 이상 동기화되지 않아야 한다는 것을 스키마가 나타내면, 이들 오브젝트의 속성은 속성 저장소(225)에서 속성 저장소(226)로 더 이상 동기화되지 않는다.
블록 440에서, 변경된 속성이 획득된다. 변경된 속성은, 마지막 동기화 이후 변경된 속성이다. 예를 들면, 유저 오브젝트의 어드레스가 변경되었고 어드레스가 여전히 동기화되어야 한다면, 새로운 어드레스가 획득된다. 예를 들면, 도 2를 참조하면, 새로운 스키마 하에서도 동기화되는 어드레스 속성이 변경되면, 동기화 매니저(220)는 속성 저장소(225)로부터 새로운 어드레스를 획득한다.
블록 445에서, 변경된 속성이 동기화된다. 예를 들면, 도 2를 참조하면, 동기화 매니저(220)는 블록 440에서 획득된 변경된 데이터에 대응하는 데이터를 전송하고 이 데이터를 속성 저장소(226)로 전송한다. 또한, 동기화와 연계하여, 소정의 오브젝트가 더 이상 동기화되고 있지 않으면, 이들 오브젝트에 대한 데이터가 클라우드 리소스로부터 삭제될 수도 있다는 것을 나타내는 메시지가 클라우드 리소스에 명시적으로 또는 암시적으로 전송될 수도 있다.
블록 450에서, 만약 있다면, 다른 액션들이 수행될 수도 있다. 예를 들면, 새로운 스키마가 동기화할 새로운 속성을 포함하면, 추가적인 속성은, 오거나이제이션 속성 저장소에서 클라우드 속성 저장소로 동기화할 변경을 주기적으로 체크하기 위해, 속성의 세트에 추가될 수도 있다. 다른 예로서, 새로운 스키마가 예전 스키마의 속성을 포함하지 않으면, 삭제된 속성은, 오거나이제이션 속성 저장소에서 제 2의 속성 저장소로 동기화할 변경을 주기적으로 체크하기 위해, 속성의 세트로부터 제거될 수도 있다.
도 5로 돌아가서, 블록 505에서, 액션이 시작한다. 블록 510에서, 클라우드로부터 이용 가능한 각각의 서비스에 대해 필요되어지는 속성이 유지관리된다. 예를 들면, 도 2를 참조하면, 시스템 관리자(도시되지 않음) 등은, 클라우드 리소스(215)로부터 이용 가능한 각각의 서비스에 대해 필요되어지는 속성을 입력하거나, 업데이트하거나, 또는 삭제한다.
블록 515에서, 서비스 속성 저장소가 유지관리된다. 유지관리는 발생하는 동기화 액티비티에 응답하여 클라우드 리소스의 속성 저장소 상에 포함된 속성을 저장 및/또는 업데이트하는 것을 가리킨다. 속성은, 서비스 가입자의 가입자 속성 저장소로부터 속성을 획득한 동기화 매니저에 의해 제공되었다. 예를 들면, 도 2를 참조하면, 클라우드 리소스(215)의 컴포넌트는 속성 저장소(226)를 유지관리한다.
블록 520에서, 서비스 가입자에 대한 서비스 가입에서의 변경의 표시가 수신된다. 서비스 가입자는 클라우드 리소스로부터의 서비스를 요청하는 엔티티이다. 예를 들면, 도 2를 참조하면, 클라우드 리소스(215)의 컴포넌트는, 클라우드 리소스(215)에 의해 호스팅되는 이메일 서비스에 오거나이제이션이 가입하기를 원한다는 표시를 수신할 수도 있다.
블록 525에서, 서비스에서의 변경을 위해 서비스 가입자로부터 필요되어지는 속성의 표시가 제공된다. 예를 들면, 도 2를 참조하면, 속성 저장소(226)는, 이메일 서비스의 추가를 위해 필요되어지는 추가적인 속성의 표시를 제공할 수도 있다.
블록 530에서, 만약 있다면, 다른 액션들이 수행될 수도 있다. 예를 들면, 도 2를 참조하면, 서비스 가입에서의 변경 이후, 클라우드 리소스(215)는, 서비스 가입에서의 변경을 위해 서비스 가입자로부터 필요되어지는 속성의 표시를 서비스 가입자가 수신했다는 것을 나타내는 메시지를 수신할 것을 대기하고, 메시지가 수신된 이후에만, 동기화에서 제거되었던 속성에 대응하는 데이터를 서비스 속성 저장소에서 제거할 수도 있다. 예를 들면, 서비스에 대한 가입이 취소되었다면, 클라우드 리소스(215)는, 서비스에 대한 속성을 제거하는 명령이 오거나이제이션 리소스(210)로부터 수신되고 이 명령의 수신을 나타내는 메시지가 리턴될 때까지 대기할 수도 있다. 메시지가 수신된 이후, 클라우드 리소스는, 더 이상 동기화되지 않아야 할 속성에 대응하는 데이터를 삭제할 수도 있다.
다른 예로서, 클라우드 리소스에 의해 호스팅되는 서비스의 버전이 변경되면, 몇몇 액션이 발생할 수도 있으며, 상기 액션은 다음을 포함할 수도 있다:
1. 클라우드 리소스(215)의 컴포넌트는 버전이 변경되었다는 표시를 (예를 들면, 유저 또는 다른 인터페이스를 통해) 수신할 수도 있다. 예를 들면, 써드파티 벤더는 버전이 변경되었다는 것을 나타낼 수도 있고 변경된 버전에 대해 필요되어지는 속성을 제공할 수도 있다;
2. 버전 변경에 응답하여 동기화하기 위해 추가, 삭제, 및/또는 변경된 속성을 나타내는 데이터가 획득될 수도 있다;
3. 서비스에 가입된 각각의 엔티티에 대해, 엔티티에 의해 제공되어야 할 필요가 있는 속성의 세트를 나타내는 업데이트된 데이터 구조(예를 들면, 테이블, 리스트, 또는 다른 데이터 구조)가 생성될 수도 있고, 이 데이터 구조 또는 이로부터 유도된 속성 데이터는 그 엔티티에 제공될 수도 있는데, 여기서 속성 데이터는 그 엔티티에 의해 제공되어야 할 필요가 있는 속성의 세트를 나타낸다.
상기 상세한 설명으로부터 알 수 있는 바와 같이, 데이터 동기화에 관련하는 양태가 설명되었다. 본원에서 설명된 주제의 양태에 대한 다양한 수정예 및 대안적인 구성이 쉽게 이루어지지만, 그 소정의 예시된 실시형태가 도면에 도시되고 위에서 상세히 설명되었다. 그러나, 청구된 주제의 양태를 개시된 특정 형태들로 제한하려는 의도는 없으며, 오히려, 본원에서 설명된 주제의 다양한 양태의 취지와 범위 내에 있는 모든 수정예, 대안적 구성, 및 등가예를 포괄하도록 의도된 것임이 이해되어야 한다.

Claims (20)

  1. 오거나이제이션(organization)과 클라우드에 접속된 컴퓨터 시스템 - 상기 오거나이제이션은 상기 클라우드의 복수의 서비스에 가입함 - 에서, 상기 오거나이제이션으로부터 상기 클라우드로 데이터를 동기화하는 방법으로서, 상기 방법은 적어도 부분적으로 상기 컴퓨터 시스템에 의해 구현되며,
    상기 방법은
    상기 오거나이제이션이 상기 클라우드의 이전의 상이한 복수의 서비스로부터 상기 복수의 서비스로 가입을 변경하는 것으로 인한 상기 오거나이제이션으로부터 상기 클라우드로의 데이터 동기화가 적절한지를 판정하는 단계를 포함하되,
    상기 판정하는 단계는
    상기 복수의 서비스에 대한 스키마(schema)를 획득하는 단계 - 상기 스키마는 상기 복수의 서비스와 관련된 속성의 세트를 정의하고, 상기 정의된 속성의 세트는 상기 복수의 서비스를 상기 오거나이제이션으로 제공하는 효율성을 증가시키도록 상기 오거나이제이션으로부터 상기 클라우드로 동기화될 것이며, 상기 스키마는 상기 복수의 서비스 내의 각 서비스와 관련된 하나 이상의 속성을 상기 정의된 속성의 세트로 결합함으로써 획득됨 - 와,
    상기 스키마를 이전에 획득된 이전 스키마(prior schema)와 비교하는 단계 - 상기 이전 스키마는 상기 이전의 상이한 복수의 서비스와 관련된 속성의 이전 세트를 정의하고, 상기 이전 스키마는 상기 이전의 복수의 서비스 내의 각 서비스와 관련된 하나 이상의 속성을 상기 정의된 속성의 이전 세트로 결합함으로써 획득됨 - 와,
    상기 스키마를 상기 이전 스키마와 비교하는 단계에 기초하여 상기 복수의 서비스와 상기 이전의 상이한 복수의 서비스 사이의 적어도 하나의 관련된 속성의 차이를 식별하는 단계를 포함하며,
    상기 방법은
    적어도 하나의 관련된 속성의 상기 식별된 차이를 처리하기 위한 액션의 세트를 수행함으로써 상기 오거나이제이션으로부터 상기 클라우드로 상기 정의된 속성의 세트에 대한 데이터를 동기화하는 단계를 포함하는
    방법.
  2. 제 1항에 있어서,
    상기 스키마를 획득하는 단계는 관련된 속성이 적격 오브젝트(eligible objects)의 제한된 세트에 대해 동기화될 것임을 나타내는 스키마를 획득하는 단계를 포함하고, 상기 적격 오브젝트의 제한된 세트는 상기 오거나이제이션의 오브젝트의 서브세트인
    방법.
  3. 제 2항에 있어서,
    상기 적격 오브젝트의 제한된 세트는 서비스에 대한 인가된 가입자를 포함하고, 상기 서비스는 상기 복수의 서비스로부터 선택되는
    방법.
  4. 제 2항에 있어서,
    상기 관련된 속성이 상기 적격 오브젝트의 제한된 세트에 대해 동기화될 것임을 나타내는 스키마를 획득하는 단계는 상기 적격 오브젝트의 제한된 세트를 정의하는 규칙을 획득하는 단계를 포함하고,
    상기 스키마를 상기 이전 스키마와 비교하는 단계는 상기 규칙을 상기 오거나이제이션의 복수의 오브젝트에 적용하여 상기 복수의 오브젝트 중 어느 것이 상기 규칙을 만족하는지 판정하는 단계를 포함하는
    방법.
  5. 제 2항에 있어서,
    상기 액션의 세트를 수행하는 단계는, 상기 적격 오브젝트의 제한된 세트에 포함된 각 오브젝트에 대해
    상기 오거나이제이션으로부터 상기 정의된 속성의 세트에 대응하는 데이터를 획득하는 단계와,
    상기 데이터를 상기 클라우드로 송신하는 단계를 포함하는
    방법.
  6. 제 1항에 있어서,
    상기 액션의 세트를 수행하는 단계는, 상기 오거나이제이션으로부터 상기 클라우드로 동기화될 추가적인 오브젝트에 대해
    상기 추가적인 오브젝트를 위한 상기 정의된 속성의 세트에 대한 데이터를 획득하는 단계와,
    상기 데이터를 상기 클라우드로 송신하는 단계를 포함하는
    방법.
  7. 제 1항에 있어서,
    상기 적어도 하나의 관련된 속성의 차이를 식별하는 단계는 상기 스키마에 포함된 적어도 하나의 속성이 상기 이전 스키마에 포함되지 않는다고 판정하는 단계를 포함하고,
    상기 적어도 하나의 속성을 상기 정의된 속성의 세트에 추가하여, 상기 오거나이제이션으로부터 상기 클라우드로 동기화할 변경을 주기적으로 체크하는 단계를 더 포함하는
    방법.
  8. 제 1항에 있어서,
    상기 적어도 하나의 관련된 속성의 차이를 식별하는 단계는 상기 이전 스키마에 포함된 적어도 하나의 속성이 상기 스키마에 포함되지 않는다고 판정하는 단계를 포함하고,
    상기 적어도 하나의 속성을 상기 정의된 속성의 세트로부터 제거하여, 상기 오거나이제이션을 상기 클라우드와 동기화하기 위한 변경을 주기적으로 체크하는 단계를 더 포함하는
    방법.
  9. 오거나이제이션과 클라우드에 접속된 컴퓨터 시스템으로서, 상기 오거나이제이션은 상기 클라우드에 대한 복수의 서비스에 가입하며,
    상기 컴퓨터 시스템은
    프로세서와,
    시스템 메모리와,
    동기화 매니저를 포함하되,
    상기 동기화 매니저는 데이터를 상기 오거나이제이션으로부터 상기 클라우드로 동기화하도록 구성되며, 상기 동기화하는 것은
    상기 오거나이제이션이 상기 클라우드의 이전의 상이한 복수의 서비스로부터 상기 복수의 서비스로 서비스 가입을 변경하는 것으로 인한 상기 오거나이제이션으로부터 상기 클라우드로의 데이터 동기화가 적절한지를 판정하는 것을 포함하되,
    상기 판정하는 것은
    상기 복수의 서비스에 대한 스키마를 획득하는 것 - 상기 스키마는 상기 복수의 서비스와 관련된 속성의 세트를 정의하고, 상기 정의된 속성의 세트는 상기 복수의 서비스를 상기 오거나이제이션으로 제공하는 효율성을 증가시키도록 상기 오거나이제이션으로부터 상기 클라우드로 동기화될 것이며, 상기 스키마는 상기 복수의 서비스 내의 각 서비스와 관련된 하나 이상의 속성을 상기 정의된 속성의 세트로 결합함으로써 획득됨 - 과,
    상기 스키마를 이전에 획득된 이전 스키마와 비교하는 것 - 상기 이전 스키마는 상기 이전의 상이한 복수의 서비스와 관련된 속성의 이전 세트를 정의하고, 상기 이전 스키마는 상기 이전의 복수의 서비스 내의 각 서비스와 관련된 하나 이상의 속성을 상기 정의된 속성의 이전 세트로 결합함으로써 획득됨 - 과,
    상기 스키마를 상기 이전 스키마와 비교하는 것에 기초하여 상기 복수의 서비스와 상기 이전의 상이한 복수의 서비스 사이의 적어도 하나의 관련된 속성의 차이를 식별하는 것을 포함하고,
    상기 동기화하는 것은
    적어도 하나의 관련된 속성의 상기 식별된 차이를 처리하기 위한 액션의 세트를 수행함으로써 상기 오거나이제이션으로부터 상기 클라우드로 상기 정의된 속성의 세트에 대한 데이터를 동기화하는 것 - 상기 정의된 속성의 세트에 대한 데이터를 동기화하는 것은 상기 오거나이제이션으로 상기 복수의 서비스를 제공하는 효율성을 증가시킴 - 을 포함하는
    컴퓨터 시스템.
  10. 제 9항에 있어서,
    상기 컴퓨터 시스템은 네트워크 상에 오거나이제이션 리소스를 호스팅하는
    컴퓨터 시스템.
  11. 제 9항에 있어서,
    상기 컴퓨터 시스템은 상기 복수의 서비스를 호스팅하는
    컴퓨터 시스템.
  12. 제 9항에 있어서,
    상기 컴퓨터 시스템은 상기 오거나이제이션과 상기 클라우드 모두의 외부에 존재하는
    컴퓨터 시스템.
  13. 제 9항에 있어서,
    상기 정의된 속성의 세트를 동기화하도록 구성된 상기 동기화 매니저는 상기 오거나이제이션과 상기 클라우드에서 서로 다른 저장 포맷 사이에서 변환하도록 구성된 동기화 매니저를 포함하는
    컴퓨터 시스템.
  14. 제 9항에 있어서,
    상기 동기화 매니저는 오브젝트 선택기를 포함하며,
    상기 오브젝트 선택기는 상기 오거나이제이션의 복수의 오브젝트 중에서 동기화를 위한 오브젝트의 제한된 세트를 선택하도록 구성되며, 상기 선택은 상기 오브젝트의 제한된 세트를 정의하는 규칙에 따른 것인
    컴퓨터 시스템.
  15. 제 14항에 있어서,
    상기 컴퓨터 시스템은 라이센싱 매니저를 더 포함하되,
    상기 라이센싱 매니저는
    상기 복수의 서비스에 대한 인가된 가입자를 추적하고,
    상기 복수의 서비스에 대한 상기 인가된 가입자에 기초하여 동기화할 상기 속성을 제한하도록 사용하는 오브젝트의 표시를 생성하도록 구성되는
    컴퓨터 시스템.
  16. 컴퓨터 시스템에서 사용되는 컴퓨터 실행가능 명령어를 저장하는 컴퓨터 판독가능 저장 디바이스로서, 상기 컴퓨터 시스템은 오거나이제이션과 클라우드에 접속되며, 상기 오거나이제이션은 상기 클라우드의 복수의 서비스에 가입하고, 상기 컴퓨터 실행가능 명령어는 상기 오거나이제이션으로부터 상기 클라우드로 데이터를 동기화하는 방법을 구현하기 위한 것이며, 상기 컴퓨터 실행가능 명령어는 프로세서에서 실행될 경우 상기 컴퓨터 시스템으로 하여금 방법을 수행하게 하고,
    상기 방법은
    상기 오거나이제이션이 상기 클라우드의 이전의 상이한 복수의 서비스로부터 상기 복수의 서비스로 서비스 가입을 변경하는 것으로 인한 상기 오거나이제이션으로부터 상기 클라우드로의 데이터 동기화가 적절한지를 판정하는 단계를 포함하되,
    상기 판정하는 단계는
    상기 복수의 서비스에 대한 스키마를 획득하는 단계 - 상기 스키마는 상기 복수의 서비스와 관련된 속성의 세트를 정의하고, 상기 정의된 속성의 세트는 상기 복수의 서비스를 상기 오거나이제이션으로 제공하는 효율성을 증가시키도록 상기 오거나이제이션으로부터 상기 클라우드로 동기화될 것이며, 상기 스키마는 상기 복수의 서비스 내의 각 서비스와 관련된 하나 이상의 속성을 상기 정의된 속성의 세트로 결합함으로써 획득됨 - 와,
    상기 스키마를 이전에 획득된 이전 스키마와 비교하는 단계 - 상기 이전 스키마는 상기 이전의 상이한 복수의 서비스와 관련된 속성의 이전 세트를 정의하고, 상기 이전 스키마는 상기 이전의 복수의 서비스 내의 각 서비스와 관련된 하나 이상의 속성을 상기 정의된 속성의 이전 세트로 결합함으로써 획득됨 - 와,
    상기 스키마를 상기 이전 스키마와 비교하는 것에 기초하여 상기 복수의 서비스와 상기 이전의 상이한 복수의 서비스 사이의 적어도 하나의 관련된 속성의 차이를 식별하는 단계를 포함하고,
    상기 방법은
    적어도 하나의 관련된 속성의 상기 식별된 차이를 처리하기 위한 액션의 세트를 수행함으로써 상기 오거나이제이션으로부터 상기 클라우드로 상기 정의된 속성의 세트에 대한 데이터를 동기화하는 단계 - 상기 정의된 속성의 세트에 대한 데이터를 동기화하는 단계는 상기 오거나이제이션으로 상기 복수의 서비스를 제공하는 효율성을 증가시킴 - 를 포함하는
    컴퓨터 판독가능 저장 디바이스.
  17. 제 16항에 있어서,
    실행될 경우 상기 컴퓨터 시스템으로 하여금 스키마를 획득하게 하는 상기 컴퓨터 실행가능 명령어는, 실행될 경우 상기 컴퓨터 시스템으로 하여금, 관련된 속성이 적격 오브젝트의 제한된 세트에 대해 동기화될 것임을 나타내는 스키마를 획득하게 하는 컴퓨터 실행가능 명령어를 포함하고, 상기 적격 오브젝트의 제한된 세트는 상기 오거나이제이션의 오브젝트의 서브세트인
    컴퓨터 판독가능 저장 디바이스.
  18. 제 17항에 있어서,
    상기 적격 오브젝트의 제한된 세트는 서비스에 대해 인가된 가입자를 포함하고, 상기 서비스는 상기 복수의 서비스로부터 선택되는
    컴퓨터 판독가능 저장 디바이스.
  19. 제 16항에 있어서,
    실행될 경우 상기 컴퓨터 시스템으로 하여금 상기 오거나이제이션으로부터 상기 클라우드로의 데이터 동기화가 적절한지를 판정하게 하는 상기 컴퓨터 실행가능 명령어는, 실행될 경우 상기 컴퓨터 시스템으로 하여금, 상기 오거나이제이션이 상기 복수의 서비스로부터의 서비스에 대해 변경된 가입을 갖는지를 검출함으로써 기 오거나이제이션으로부터 상기 클라우드로의 데이터 동기화가 적절한지를 판정하게 하는 컴퓨터 실행가능 명령어를 포함하는
    컴퓨터 판독가능 저장 디바이스.
  20. 제 16항에 있어서,
    상기 복수의 서비스는, 이메일, 문서 관리, 보고서 작성, 데이터베이스, 계산, 캘린더링(calendaring), 스케줄링, 및 인스턴트 메시징 중 하나 이상을 포함하는
    컴퓨터 판독가능 저장 디바이스.
KR1020147025395A 2012-03-13 2013-02-25 로컬 데이터와 원격 데이터의 동기화 기법 KR102042230B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/418,356 2012-03-13
US13/418,356 US9110892B2 (en) 2012-03-13 2012-03-13 Synchronizing local and remote data
PCT/US2013/027546 WO2013138051A1 (en) 2012-03-13 2013-02-25 Synchronizing local and remote data

Publications (2)

Publication Number Publication Date
KR20140138712A KR20140138712A (ko) 2014-12-04
KR102042230B1 true KR102042230B1 (ko) 2019-11-07

Family

ID=49158619

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147025395A KR102042230B1 (ko) 2012-03-13 2013-02-25 로컬 데이터와 원격 데이터의 동기화 기법

Country Status (6)

Country Link
US (3) US9110892B2 (ko)
EP (1) EP2825971A4 (ko)
JP (1) JP6266588B2 (ko)
KR (1) KR102042230B1 (ko)
CN (1) CN104169902B (ko)
WO (1) WO2013138051A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8635373B1 (en) 2012-09-22 2014-01-21 Nest Labs, Inc. Subscription-Notification mechanisms for synchronization of distributed states
CN104462274B (zh) * 2014-11-25 2019-03-26 北京国双科技有限公司 数据处理方法和装置
US10579601B2 (en) * 2014-12-12 2020-03-03 Aveva Software, Llc Data dictionary system in an event historian
US10769104B2 (en) 2014-12-12 2020-09-08 Aveva Software, Llc Block data storage system in an event historian
US10459944B2 (en) * 2016-04-14 2019-10-29 Microsoft Technology Licensing, Llc Synchronizing hierarchical information while preserving team structure
US20180335902A1 (en) * 2017-05-16 2018-11-22 Apple Inc. Techniques for dynamically displaying relevant files for selection
US11429633B2 (en) 2017-06-07 2022-08-30 Citrix Systems, Inc. Data processing system with synchronization of local directory information to cloud system
US11032367B2 (en) 2018-07-16 2021-06-08 Microsoft Technology Licensing, Llc Long upload time detection and management
CN110990466B (zh) * 2018-09-29 2023-04-07 北京国双科技有限公司 一种数据同步方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222552A (ja) 2004-02-04 2005-08-18 Microsoft Corp 複数の同期ソースのクロスポリネーション
US20060173850A1 (en) 2005-01-28 2006-08-03 Auer Wolfgang F Method and apparatus for collision resolution in an asynchronous database system
US20060277224A1 (en) 2005-06-07 2006-12-07 Microsoft Corporation Synchronizing arbitrary data using a flexible schema
US20110208695A1 (en) 2010-02-22 2011-08-25 Siddharth Anand Data synchronization between a data center environment and a cloud computing environment

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202085B1 (en) * 1996-12-06 2001-03-13 Microsoft Corportion System and method for incremental change synchronization between multiple copies of data
US6633924B1 (en) * 1997-10-02 2003-10-14 Charles Wu Object synchronization between objects stores on different computers
US6324544B1 (en) * 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
US6970876B2 (en) * 2001-05-08 2005-11-29 Solid Information Technology Method and arrangement for the management of database schemas
US20030032425A1 (en) * 2001-08-11 2003-02-13 Hong-Sik Kim Schema change method of dual system
US7373362B2 (en) * 2001-11-19 2008-05-13 Extended Systems, Inc. Coordinated synchronization
US20030217096A1 (en) 2001-12-14 2003-11-20 Mckelvie Samuel J. Agent based application using data synchronization
US20040068523A1 (en) * 2002-10-07 2004-04-08 Keith Robert Olan Method and system for full asynchronous master-to-master file synchronization
US7401104B2 (en) 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
CN101040280A (zh) * 2004-08-31 2007-09-19 国际商业机器公司 元数据管理
US7317907B2 (en) * 2005-01-31 2008-01-08 Research In Motion Limited Synchronizing server and device data using device data schema
US20060212489A1 (en) * 2005-03-15 2006-09-21 Eggers Michael R Technique for effectively synchronizing data through an information service
US7962585B2 (en) * 2005-08-15 2011-06-14 Microsoft Corporation Partial item change tracking and synchronization
JP2009003549A (ja) * 2007-06-19 2009-01-08 Japan Lucida Co Ltd データ管理装置およびデータ管理方法、データ管理プログラム、データ管理プログラム記憶媒体
US20090037452A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal System and Method for Synchronizing Applications
US8782637B2 (en) * 2007-11-03 2014-07-15 ATM Shafiqul Khalid Mini-cloud system for enabling user subscription to cloud service in residential environment
US9063993B2 (en) * 2008-01-31 2015-06-23 Microsoft Technology Licensing, Llc Coexistence tools for synchronizing properties between on-premises customer locations and remote hosting services
US20090300169A1 (en) 2008-06-03 2009-12-03 Microsoft Corporation Synchronization throttling based on user activity
US8612381B2 (en) * 2008-09-12 2013-12-17 International Business Machines Corporation Enhanced synchronization framework providing improved sync granularity
US20100269164A1 (en) * 2009-04-15 2010-10-21 Microsoft Corporation Online service data management
US8261269B2 (en) 2009-09-21 2012-09-04 Oracle International Corporation System and method for synchronizing transient resource usage between virtual machines in a hypervisor environment
US8503984B2 (en) * 2009-12-23 2013-08-06 Amos Winbush, III Mobile communication device user content synchronization with central web-based records and information sharing system
US8290900B2 (en) 2010-04-24 2012-10-16 Research In Motion Limited Apparatus, and associated method, for synchronizing directory services
US8938510B2 (en) * 2010-04-26 2015-01-20 Bittan Inc. On-demand mailbox synchronization and migration system
US8805783B2 (en) * 2010-05-27 2014-08-12 Microsoft Corporation Synchronization of subsets of data including support for varying set membership
US20120117026A1 (en) * 2010-06-10 2012-05-10 Cricket Communications, Inc. Play list management
JP4829368B1 (ja) * 2010-06-15 2011-12-07 株式会社東芝 ファイル処理プログラム、装置及び方法
US8606948B2 (en) * 2010-09-24 2013-12-10 Amazon Technologies, Inc. Cloud-based device interaction
US8838830B2 (en) * 2010-10-12 2014-09-16 Sap Portals Israel Ltd Optimizing distributed computer networks
US20120117271A1 (en) * 2010-11-05 2012-05-10 Sony Corporation Synchronization of Data in a Distributed Computing Environment
US8909784B2 (en) * 2010-11-23 2014-12-09 Red Hat, Inc. Migrating subscribed services from a set of clouds to a second set of clouds
KR20120060596A (ko) * 2010-12-02 2012-06-12 한국전자통신연구원 유비쿼터스 객체의 클라우드 기반 통신을 위한 자원관리 장치 및 방법
CN102014168A (zh) * 2010-12-17 2011-04-13 清华大学 一种基于云服务的互联互通通讯录的方法和装置
CN102638484A (zh) * 2011-02-15 2012-08-15 鸿富锦精密工业(深圳)有限公司 云端存取***及其根据社群网络显示数据对象的方法
US20120221454A1 (en) * 2011-02-28 2012-08-30 Morgan Christopher Edwin Systems and methods for generating marketplace brokerage exchange of excess subscribed resources using dynamic subscription periods
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US8849759B2 (en) * 2012-01-13 2014-09-30 Nexenta Systems, Inc. Unified local storage supporting file and cloud object access
US8942673B2 (en) * 2011-10-03 2015-01-27 At&T Intellectual Property I, L.P. Method and apparatus for providing cellphone service from any device
US8903819B2 (en) * 2011-12-28 2014-12-02 United Video Properties, Inc. Systems and methods for sharing profile information using user preference tag clouds

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222552A (ja) 2004-02-04 2005-08-18 Microsoft Corp 複数の同期ソースのクロスポリネーション
US20060173850A1 (en) 2005-01-28 2006-08-03 Auer Wolfgang F Method and apparatus for collision resolution in an asynchronous database system
US20060277224A1 (en) 2005-06-07 2006-12-07 Microsoft Corporation Synchronizing arbitrary data using a flexible schema
US20110208695A1 (en) 2010-02-22 2011-08-25 Siddharth Anand Data synchronization between a data center environment and a cloud computing environment

Also Published As

Publication number Publication date
CN104169902A (zh) 2014-11-26
JP2015511749A (ja) 2015-04-20
US9110892B2 (en) 2015-08-18
JP6266588B2 (ja) 2018-01-24
US20130246353A1 (en) 2013-09-19
US20170193071A1 (en) 2017-07-06
US10545991B2 (en) 2020-01-28
US9633068B2 (en) 2017-04-25
EP2825971A4 (en) 2015-11-11
EP2825971A1 (en) 2015-01-21
WO2013138051A1 (en) 2013-09-19
KR20140138712A (ko) 2014-12-04
US20150339342A1 (en) 2015-11-26
CN104169902B (zh) 2017-03-08

Similar Documents

Publication Publication Date Title
KR102042230B1 (ko) 로컬 데이터와 원격 데이터의 동기화 기법
US10922437B2 (en) Installation and management of client extensions
US11347855B2 (en) Data lineage management
KR102008037B1 (ko) 분산형 애플리케이션 객체에 대한 업데이트 통지를 제공하는 기법
US11977522B2 (en) File tracking on client machines synchronized with a content management system repository
US11687595B2 (en) System and method for searching backups
US10747643B2 (en) System for debugging a client synchronization service
US11544229B1 (en) Enhanced tracking of data flows
CN111209120A (zh) 微服务的数据同步方法、装置及计算机可读存储介质
CN106326129A (zh) 一种程序异常信息生成方法及装置
CN107409086B (zh) 通过多个邮箱在通信应用中进行海量数据管理
US20100293143A1 (en) Initialization of database for synchronization
US10313284B1 (en) Upload and share files to a sharing service using a messaging client
US20220337620A1 (en) System for collecting computer network entity information employing abstract models
US11675683B2 (en) Method, electronic device, and computer program product for monitoring storage system
US10015248B1 (en) Syncronizing changes to stored data among multiple client devices
WO2018200167A1 (en) Managing asynchronous analytics operation based on communication exchange
US7945598B2 (en) Methodology for the automatic capture of process information in federated knowledge systems
US20240248884A1 (en) Automated schema lifecycle management
US20080065742A1 (en) Contextually categorization of complex data repositories in an information architecture analysis
Yuan et al. Android STAR: An Efficient Interaction-Preserving Record-Replay System For Messenger App Usage Surveillance
US20180365197A1 (en) Automatic upload and instant preview generation of locally unsupported files
CN117395125A (zh) 用于处理用户互动数据的方法、装置及计算机可读介质
CN115757587A (zh) 一种异构数据源的整合方法、装置、电子设备及存储介质
US20130238666A1 (en) Merging and ignoring configuration items

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right