KR101201075B1 - Maintaining time-date information for syncing low fidelity devices - Google Patents
Maintaining time-date information for syncing low fidelity devices Download PDFInfo
- Publication number
- KR101201075B1 KR101201075B1 KR1020057008467A KR20057008467A KR101201075B1 KR 101201075 B1 KR101201075 B1 KR 101201075B1 KR 1020057008467 A KR1020057008467 A KR 1020057008467A KR 20057008467 A KR20057008467 A KR 20057008467A KR 101201075 B1 KR101201075 B1 KR 101201075B1
- Authority
- KR
- South Korea
- Prior art keywords
- time
- date information
- attribute values
- delete delete
- remote
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
시간-날짜 필드가 없는 저 충실도 장치에 대해, 본 발명은 원격 장치 상에서 표준 포맷(305)으로 원격 속성값에 대응하는 시간-날짜 정보(330)를 포맷팅, 식별 및 저장하도록 제공한다. 시간-날짜 정보는 몇가지 장치에 의해 구문 분석 가능하며 속성값 간의 충돌을 해결하는 데에 이용된다. 다른 실시예는 속성값(320)의 원격 표현을 동일한 속성값과 연관되는 로컬 표현과 비교함으로써 원격 장치의 속성값이 원격 장치와 로컬 머신 간의 마지막 동기화 이후에 변경되었는지를 판정하도록 제공한다. 또 다른 실시예는 동기화 값 간의 충돌을 해결하는 데에 이용되는 시간-날짜 정보가 할당되는 속성값을 선택함으로써 메모리 리소스를 보존하도록 제공한다. 속성값은 예를 들어, 원격 장치의 사용 가능 리소스에 기초하거나 기록 정보에 기초하여 선택될 수 있다.
시간-날짜 정보, 속성값, 속성 필드, 원격 장치, 로컬 머신, 분산 컴퓨팅 시스템
For low fidelity devices without time-date fields, the present invention provides for formatting, identifying, and storing time-date information 330 corresponding to remote attribute values in standard format 305 on the remote device. Time-date information can be parsed by several devices and used to resolve conflicts between attribute values. Another embodiment provides for determining whether an attribute value of the remote device has changed since the last synchronization between the remote device and the local machine by comparing the remote representation of the attribute value 320 with a local representation associated with the same attribute value. Yet another embodiment provides for conserving memory resources by selecting attribute values to which time-date information is used to resolve conflicts between synchronization values. The attribute value may be selected, for example, based on available resources of the remote device or based on historical information.
Time-Date Information, Attribute Values, Attribute Fields, Remote Devices, Local Machine, Distributed Computing Systems
Description
본 발명은 일반적으로 분산 컴퓨팅 시스템 내에서 데이터를 동기화하는 것에 관한 것이다. 더 상세하게는, 본 발명은 (1) 두 장치 간의 동기화 충돌을 해결할 때 속성의 시간-날짜 정보를 보유하고 (장치 중 하나는 데이터베이스에 이 속성에 대응하는 시간-날짜 필드를 제공하지 않음), (2) 원격 저 충실도 장치의 속성값이 로컬 머신과의 마지막 동기화 이후 변경되었는지를 판정하고, (3) 동기 값 간의 충돌을 해결하는 데에 이용되는 시간-날짜 정보를 속성의 서브세트로 제한하여 메모리 리소스를 보존하는 것에 관한 것이다.The present invention generally relates to synchronizing data within a distributed computing system. More specifically, the invention holds (1) the time-date information of an attribute when resolving a synchronization conflict between two devices (one of the devices does not provide a time-date field corresponding to this attribute in the database), (2) determine whether the attribute value of the remote low fidelity device has changed since the last synchronization with the local machine, and (3) limit the time-date information used to resolve conflicts between synchronization values to a subset of the attributes. It is about conserving memory resources.
랩톱, 핸드헬드 및 그 외 휴대용 컴퓨터나 컴퓨팅 장치들은 장치가 더욱 소형화되고 저렴하게 됨에 따라 대중성이 증가되었다. 부가하여, 휴대용 컴퓨터의 동작 속도와 처리 능력의 개선으로 대중성은 더욱 증가되었다. 많은 휴대용 컴퓨터는 주소록, 게임, 계산기 등과 같은 다수의 응용 프로그램을 저장할 수 있다. 응용 프로그램은 제작 동안 휴대용 컴퓨터에 (예를 들어, 판독 전용 메모리(ROM) 상에) 영구 설치될 수 있다. 다르게는, 하나 이상의 응용 프로그램은 휴대용 컴퓨터를 구매한 후에 사용자에 의해 설치될 수 있다.Laptops, handhelds, and other portable computers or computing devices have increased in popularity as devices become smaller and less expensive. In addition, the popularity has increased due to the improvement in the operating speed and processing power of the portable computer. Many portable computers can store multiple applications such as address books, games, calculators, and the like. Applications can be permanently installed on a portable computer (eg, on read-only memory (ROM)) during production. Alternatively, one or more applications may be installed by the user after purchasing the portable computer.
이러한 장치의 대중성과 컴퓨팅 능력의 증가로, 사람은 하나 이상의 컴퓨팅 장치를 이용하여 데이터 및 어플리케이션을 저장하기 시작하고 있다. 많은 사람들은 예를 들어, 그들의 일반 데스크톱 컴퓨터에 부가하여 랩톱 컴퓨터를 흔히 이용한다. 셀룰러 전화기, 개인용 정보 단말기(PDA), 인터넷 서비스 등과 같은 다른 장치가 또한 데이터 및 어플리케이션을 저장하는 데에 이용된다.With the increasing popularity and computing power of such devices, people are beginning to store data and applications using one or more computing devices. Many people commonly use laptop computers, for example in addition to their normal desktop computers. Other devices, such as cellular telephones, personal digital assistants (PDAs), Internet services, and the like, are also used to store data and applications.
이러한 컴퓨팅 장치들 각각은 분산 컴퓨팅 시스템의 일부일 수 있으며, 관련 정보는 이러한 다수의 장치 상에서 상관되어 저장될 수 있다. 예를 들어, 사용자는 자신의 작업용 데스크톱 컴퓨터, 자신의 PDA, 자신의 셀 폰, 인터넷 서비스 등에 디지털 주소록을 저장하고 있을 수 있다. 따라서, 직장에서, 사용자는 전화 번호 및 기타 일반 컨택트 정보를 포함할 수 있는 컨택트 정보를 편리하게 액세스할 수 있다. 그러나, 사용자가 직장에서 멀리 떨어져 있는 동안에는, 개인용 정보 단말기(PDA) 또는 기타 모바일 정보 저장 시스템 등과 같은 모바일 형태로 주소록을 이용할 수 있다. 이상적으로, PDA의 컨택트 정보는 작업용 데스크톱 컴퓨터에서의 컨택트 정보와 일치해야 한다. Each of these computing devices may be part of a distributed computing system, and relevant information may be correlated and stored on these multiple devices. For example, a user may be storing a digital address book on his work desktop computer, his PDA, his cell phone, an Internet service, or the like. Thus, at work, a user can conveniently access contact information, which can include phone numbers and other general contact information. However, while the user is far from the workplace, the address book may be available in mobile form, such as a personal digital assistant (PDA) or other mobile information storage system. Ideally, the contact information on the PDA should match the contact information on the work desktop computer.
동일하거나 관련된 정보가 두 위치에 저장되어 있을 때, 데이터는 한 위치에서 변경되고 다른 위치에서는 변경되지 않을 가능성이 있다. 이 문제는 분산 시스템 내의 각 장치가 가장 현재의 정보나 데이터를 갖는 것을 확실하게 하는 자동화 프로세스인 동기화로 해결될 수 있다. 그러나, 동기화는 그 자체가 문제를 갖는다. 예를 들어, 동기화가 두 장치 간에 초기화되면, 현재 시스템은 각 장치로부터의 대응하는 속성값을 비교하여 변경된 속성값을 검출하게 된다. 그러나, 이 비교 는 어느 장치에 변경이 행해졌는지에 대해서는 나타내지 않는다. 이와 같이, 속성 변경이 어느 한쪽의 장치에서 발생할 때, 충돌이 일어나므로 충돌 해결 프로세스가 실행되어야 한다.When the same or related information is stored in two locations, it is likely that the data will change in one location and not in another. This problem can be solved with synchronization, an automated process that ensures that each device in a distributed system has the most current information or data. However, synchronization has its own problems. For example, if synchronization is initiated between two devices, the current system compares corresponding attribute values from each device to detect changed attribute values. However, this comparison does not indicate which device has changed. As such, when an attribute change occurs on either device, a conflict occurs and a conflict resolution process must be executed.
다른 시스템은 변경된 속성을 변경이 발생한 것을 나타내는 태그, 예를 들어, "변경", "삭제", "추가" 또는 기타 태그로 마크한다. 그러나, 이 시스템에서, 두 장치가 동기화를 시작할 때, 로컬 장치는 적용될 필요가 있는 데이터를 비교한 후에 이들 마커를 메모리에 생성할 수 있다. 또한, 태그가 메모리에서만 추적되기 때문에, 이들 태그는 원격 데이터베이스에는 다른 장치와의 동기화 동안 이용되도록 저장되지 않는다. 다시 말해, 반드시 충돌이 먼저 조정되어야 하고, 그 다음에 속성이 로컬 메모리에서만 마크되어 추적될 수가 있다.Other systems mark the changed attribute with a tag indicating that the change occurred, for example, "change", "delete", "add" or other tag. However, in this system, when two devices start synchronization, the local device can create these markers in memory after comparing the data that needs to be applied. Also, because tags are only tracked in memory, these tags are not stored in the remote database for use during synchronization with other devices. In other words, the conflict must be reconciled first, then the attribute can only be marked and tracked in local memory.
통상, 충돌은 예를 들어 시간-날짜 정보를 제공하는 속성값과 관련되는 메타데이터를 비교하는 것으로 해결될 수 있다. 가장 최근의 시간-날짜 정보가 가장 최근의 정보로 생각되며 이에 따라 속성이 갱신될 수 있다. 시간-날짜 정보를 비교하여 충돌을 해결하는 것은 동기화되는 데이터가 시간-날짜 정보를 포함하지 않을 때 특히 문제가 되며, 이를 저 충실도 데이터로 언급한다. 예를 들어, 많은 소형 컴퓨팅 장치는 물리적 리소스가 제한되므로 데이터 구조 항목의 속성에 대해 시간-날짜 정보를 보유할 수가 없다. 이와 같이, 컴퓨터가 이러한 저 충실도 장치로부터의 데이터를 동기화할 때, 컴퓨터는 사용자가 그 속성을 원래 세트한 때를 알지 못한다. 이것은 컴퓨터가 다른 컴퓨팅 장치로부터의 속성에 동기화하는 것을 방해하고, 또한 "최종 작성자 승리(last-writer-wins)" 해결 논리를 이용해 가장 최근의 속성을 확신있게 고를 수 없게 된다. 또한, 충돌이 존재하지 않는 경우에도, 통상적으로 충돌 해결 프로세스 없이 수신 장치의 속성 변경에 동기화될 방법이 없다. Typically, conflicts can be resolved by comparing metadata associated with an attribute value, for example, providing time-date information. The most recent time-date information is considered to be the most recent information and the attribute can be updated accordingly. Resolving conflicts by comparing time-date information is particularly problematic when the data being synchronized does not contain time-date information, which is referred to as low fidelity data. For example, many small computing devices are limited in physical resources and thus cannot hold time-date information about the attributes of data structure items. As such, when a computer synchronizes data from such a low fidelity device, the computer does not know when the user originally set the attribute. This prevents the computer from synchronizing to attributes from other computing devices, and also makes it impossible to reliably pick the most recent attributes using "last-writer-wins" resolution logic. In addition, even when there is no conflict, there is typically no way to be synchronized to attribute changes of the receiving device without a conflict resolution process.
현재의 동기화 시스템의 상술한 결점은 본 발명에 의해 해결된다. 예를 들어, 장치 간의 데이터를 동기화할 수 있는 분산 컴퓨팅 시스템에서, 이 분산된 컴퓨팅 시스템이 대응하는 시간-날짜 필드가 없는 데이터베이스에 속성을 저장하는 장치를 가질 수 있다. 이러한 경우, 본 발명은 시간-날짜 정보를 데이터베이스의 속성값과 관련시킨다.The above mentioned drawbacks of the current synchronization system are solved by the present invention. For example, in a distributed computing system capable of synchronizing data between devices, this distributed computing system may have a device that stores attributes in a database that does not have a corresponding time-date field. In this case, the present invention associates time-date information with attribute values in a database.
실시예들은 대응하는 시간-날짜 필드 없이 속성을 저장하는 원격 데이터베이스의 원격 속성값에 대응하는 시간-날짜 정보를 식별하는 방법을 제공한다. 식별된 시간-날짜 정보는 분산된 컴퓨팅 시스템의 장치에 의해 구문 분석 가능한 표준 포맷으로 포맷된다. 포맷된 시간-날짜 정보는 원격 속성값과 관련되는 필드에 저장하기 위해 원격 데이터베이스에 송신된다.Embodiments provide a method of identifying time-date information corresponding to a remote attribute value of a remote database storing an attribute without a corresponding time-date field. The identified time-date information is formatted in a standard format that can be parsed by the devices of a distributed computing system. The formatted time-date information is sent to the remote database for storage in the field associated with the remote attribute value.
다른 실시예들은 대응하는 시간-날짜 필드 없이 데이터베이스에 속성을 저장하는 장치를 갖는 분산 컴퓨팅 시스템을 제공한다. 포맷된 시간-날짜 정보는 분산된 컴퓨팅 시스템의 장치에 의해 구문 분석 가능한 표준 포맷으로 수신되고, 이 포맷된 시간-날짜 정보는 속성값과 관련된다. 또한, 포맷된 시간-날짜 정보는 속성값과 관련되는 데이터베이스 필드에 저장되므로 포맷된 시간-날짜 정보는 속성값과 관련되는 데이터 충돌을 해결하는 데에 이용될 수 있다.Other embodiments provide a distributed computing system having an apparatus for storing attributes in a database without a corresponding time-date field. The formatted time-date information is received in a standard format that can be parsed by the devices of the distributed computing system, and the formatted time-date information is associated with an attribute value. In addition, since the formatted time-date information is stored in a database field associated with the attribute value, the formatted time-date information can be used to resolve data conflicts associated with the attribute value.
또 다른 실시예들은 분산된 컴퓨팅 시스템의 장치 간의 데이터 충돌을 해결하는 방법을 제공한다. 원격 속성값이 원격 속성에 대해 수신된다. 또한 대응하는 시간-날짜 필드가 없는 데이터베이스로부터 대응하는 원격 시간-날짜 정보가 수신된다. 원격 시간-날짜 정보는 분산 컴퓨팅 시스템의 장치에 의해 구문 분석 가능한 표준 포맷으로 포맷된다. 또한, 원격 값과 대응하는 로컬 속성값 간의 충돌이 검출된다. 원격 시간-날짜 정보는 표준 포맷에 따라 구문 분석되어 원격 속성값이 변경된 때를 나타내는 원격 시간 및 날짜를 식별한다. 또한, 원격 시간 및 날짜는 로컬 시간 및 날짜와 비교되고, 이 로컬 시간 및 날짜는 하나 이상의 로컬 속성값이 변경된 때를 나타낸다. 이 때 충돌은 비교의 결과에 기초하여 해결된다.Still other embodiments provide a method for resolving data conflicts between devices in a distributed computing system. The remote attribute value is received for the remote attribute. Corresponding remote time-date information is also received from a database that does not have a corresponding time-date field. Remote time-date information is formatted in a standard format that can be parsed by the devices of a distributed computing system. In addition, a collision between the remote value and the corresponding local attribute value is detected. The remote time-date information is parsed according to a standard format to identify the remote time and date indicating when the remote attribute value has changed. In addition, the remote time and date are compared with the local time and date, which indicates when one or more local attribute values have changed. The collision is then resolved based on the result of the comparison.
현재의 동기화 시스템의 다른 결점은 본 발명에 의해 해결된다. 예를 들어, 장치 간의 데이터를 동기화할 수 있는 분산 컴퓨팅 시스템에서, 실시예는 원격 장치와 로컬 머신 간의 마지막 속성의 동기화 이후 원격 장치에 대한 속성의 값이 변경되었는지를 판정한다.Another drawback of the current synchronization system is solved by the present invention. For example, in a distributed computing system capable of synchronizing data between devices, an embodiment determines whether the value of an attribute for a remote device has changed since the last attribute synchronization between the remote device and the local machine.
실시예에서, 원격 장치와 로컬 장치 간의 데이터의 동기화 동안, 원격 속성의 현재 값과 원격 속성의 이전값의 원격 표현이 수신된다. 다음에 원격 속성의 현재 값으로부터 원격 속성의 로컬 표현이 생성된다. 따라서, 원격 표현은 로컬 표현과 비교되고, 이 비교에 기초하여, 원격 표현이 생성된 후에 원격 속성의 이전값이 변경되었다고 판정되게 된다.In an embodiment, during the synchronization of data between the remote device and the local device, a remote representation of the current value of the remote attribute and the previous value of the remote attribute is received. Then a local representation of the remote attribute is generated from the current value of the remote attribute. Thus, the remote representation is compared with the local representation, and based on this comparison, it is determined that the previous value of the remote attribute has changed after the remote representation is generated.
다른 실시예에서는, 원격 장치와 로컬 장치 간의 데이터의 동기화 동안에, 원격 속성의 원격 값과 이 원격 속성의 원격 값의 원격 표현이 수신된다. 다음에 원격 속성의 로컬 표현이 원격 속성의 원격 값으로부터 생성된다. 따라서, 원격 표현은 로컬 표현과 비교되고, 이 비교에 기초하여, 원격 표현이 생성된 후에 원격 속성의 원격 값이 변경되지 않았다고 판정되게 된다.In another embodiment, during the synchronization of data between the remote device and the local device, a remote value of the remote attribute and a remote representation of the remote value of the remote attribute are received. Then a local representation of the remote attribute is generated from the remote value of the remote attribute. Thus, the remote representation is compared with the local representation, and based on this comparison, it is determined that the remote value of the remote attribute has not changed after the remote representation is generated.
현재의 동기화 시스템의 또 다른 결점이 본 발명에 의해 해결된다. 예를 들어, 실시예는, 동기 값 간의 충돌을 해결하는 데에 이용되는 시간-날짜 정보를 할당받은 속성값을 선택함으로써 메모리 리소스를 보존한다.Another drawback of the current synchronization system is solved by the present invention. For example, an embodiment conserves memory resources by selecting an attribute value assigned with time-date information used to resolve conflicts between sync values.
실시예는 원격 장치로부터 복수의 속성값을 수신한다. 수신된 복수의 속성값 중에서 제한된 세트의 속성값이 원격 장치의 사용 가능한 리소스에 기초하여 선택되게 된다. 또한, 복수의 속성값에 대응하는 복수의 시간-날짜 정보로부터 시간-날짜 정보의 세트가 식별된다. 제한된 세트의 각 속성값은 시간-날짜 정보의 세트의 다른 부분에 대응하며 제한된 세트 내의 각 속성값이 마지막으로 변경된 때를 나타낸다. 시간-날짜 정보의 다른 부분은 원격 장치의 원격 데이터베이스에 저장된다.An embodiment receives a plurality of attribute values from a remote device. A limited set of attribute values from among the plurality of received attribute values is selected based on available resources of the remote device. Also, a set of time-date information is identified from the plurality of time-date information corresponding to the plurality of attribute values. Each attribute value in the limited set corresponds to a different part of the set of time-date information and indicates when each attribute value in the limited set was last changed. Another part of the time-date information is stored in the remote database of the remote device.
다른 실시예는 제한된 세트의 속성값의 선택이 또한 복수의 속성값의 수정과 관련되는 기록 정보(historical information)에 근거한다. 예를 들어, 기록 정보는 복수의 속성값 각각이 수정되는 횟수일 수 있으며, 이 때 가장 자주 수정된 속성값이 선택될 수 있다. 다르게, 또는 결합하여, 기록 정보는 복수의 속성값에 대한 시간-날짜 정보일 수 있으며, 이 때 가장 최근에 수정된 속성값이 선택될 수 있다.Another embodiment is based on historical information wherein the selection of a limited set of attribute values is also related to the modification of the plurality of attribute values. For example, the record information may be the number of times each of the plurality of attribute values is modified, and the most frequently modified attribute values may be selected. Alternatively, or in combination, the record information may be time-date information for a plurality of attribute values, where the most recently modified attribute value may be selected.
또 다른 실시예는 제한된 세트의 속성값 내에 있지 않는 남은 속성값에 대한 상기한 복수의 시간-날짜 정보로부터의 시간-날짜 정보 부분을 식별하는 것을 제공한다. 이 시간-날짜 정보 부분은 남은 속성값 중 하나 이상이 사용자에 의해 수정된 때에 대응한다. 이 식별된 부분의 시간-날짜 정보는 원격 데이터베이스의 일 위치에 저장되어 이 식별된 부분의 시간-날짜 정보가 하나 이상의 남은 속성값 모두에 대응하게 된다.Yet another embodiment provides for identifying time-date information portions from the plurality of time-date information described above for remaining attribute values that are not within a limited set of attribute values. This time-date information portion corresponds to when one or more of the remaining attribute values have been modified by the user. The time-date information of this identified portion is stored at a location in the remote database such that the time-date information of this identified portion corresponds to all of one or more remaining attribute values.
본 발명의 부가의 특성 및 장점은 이하의 설명에서 기재되며, 일부는 이 설명으로부터 명백하게 되거나, 본 발명의 실행으로 습득될 수 있다. 본 발명의 특성 및 장점은 첨부한 청구범위에서 특정하게 지적된 기구와 조합을 이용하여 실현 및 취득될 수 있다. 본 발명의 이들 및 다른 특성은 이하 설명과 첨부한 청구범위로부터 더욱 완전히 명백하게 되거나, 이하 기술되는 본 발명의 실시에 의해 습득될 수 있다.Additional features and advantages of the invention will be set forth in the description which follows, and in part will be apparent from the description, or may be learned by practice of the invention. The features and advantages of the invention may be realized and obtained using combinations and instruments specifically pointed out in the appended claims. These and other features of the present invention will become more fully apparent from the following description and the appended claims, or may be learned by practice of the present invention described below.
본 발명의 상기 및 다른 장점 및 특성을 취득할 수 있는 방법을 기술하기 위해서, 위에서 간단히 설명한 본 발명을 첨부한 도면에서 도시되는 특정 실시예를 참조하여 더욱 특정하여 설명한다. 이들 도면들이 본 발명의 통상적인 실시예만을 도시할 뿐 그 영역을 제한하는 것으로 고려되어서는 안된다고 이해하고, 본 발명은 첨부한 도면을 이용하여 더욱 특정적으로 상세히 설명될 것이다.BRIEF DESCRIPTION OF THE DRAWINGS In order to describe the above and other advantages and features of the present invention, the present invention described above is described more specifically with reference to the specific embodiments shown in the accompanying drawings. It is understood that these drawings illustrate only typical embodiments of the invention and should not be considered as limiting its scope, and the invention will be described in more detail in detail using the accompanying drawings.
도 1A는 본 발명이 실현될 수 있는 고 충실도 및 저 충실도 장치를 갖는 분산 시스템을 도시한다.1A shows a distributed system having a high fidelity and low fidelity device in which the present invention can be realized.
도 1B는 본 발명의 실시예에 따른 분산 시스템 내의 두 장치 간의 충돌의 검 출을 도시한다.1B illustrates detection of a collision between two devices in a distributed system according to an embodiment of the present invention.
도 2는 본 발명의 실시예에 따라서 저 충실도 장치를 갖는 분산 시스템에서의 시간-날짜 정보의 갱신과 이용을 도시한다.2 illustrates the updating and use of time-date information in a distributed system with low fidelity devices in accordance with an embodiment of the present invention.
도 3은 본 발명의 실시예에 따라서 필드 내의 시간-날짜 정보의 예시적인 표준 포맷을 도시한다.3 illustrates an exemplary standard format of time-date information in a field in accordance with an embodiment of the invention.
도 4는 실시예에 따라서 시간-날짜 정보를 대응하는 시간-날짜 필드 없는 데이터베이스 내의 속성값과 관련시키는 방법의 플로우챠트를 도시한다.4 depicts a flowchart of a method for associating time-date information with attribute values in a database without corresponding time-date fields, in accordance with an embodiment.
도 5는 실시예에 따라서 시간-날짜 정보를 대응하는 시간-날짜 필드 없는 데이터베이스의 속성값으로 수신하여 저장하는 방법의 플로우챠트를 도시한다.FIG. 5 illustrates a flowchart of a method of receiving and storing time-date information as an attribute value of a database without a corresponding time-date field, in accordance with an embodiment.
도 6은 실시예에 따라서 대응하는 시간-날짜 필드 없는 데이터베이스로부터 수신된 시간-날짜 정보를 이용하여 분산 컴퓨팅 시스템의 장치 간의 데이터 충돌을 해결하는 방법의 플로우챠트를 도시한다.6 illustrates a flowchart of a method for resolving data conflicts between devices in a distributed computing system using time-date information received from a database without a corresponding time-date field, in accordance with an embodiment.
도 7은 실시예에 따라서 원격 속성값이 마지막 속성의 동기화 이후에 변경된 때를 판정하는 방법의 플로우챠트를 도시한다.7 illustrates a flowchart of a method for determining when a remote attribute value has changed since synchronization of a last attribute, in accordance with an embodiment.
도 8은 실시예에 따라서 시간-날짜 정보가 할당된 복수의 속성값 중에서 제한된 세트의 속성값을 선택하는 방법의 플로우챠트를 도시한다.8 illustrates a flowchart of a method for selecting a limited set of attribute values from among a plurality of attribute values to which time-date information is assigned according to an embodiment.
도 9는 본 발명에 적합한 운영 환경을 제공하는 예시적인 시스템을 도시한다.9 illustrates an exemplary system that provides an operating environment suitable for the present invention.
본 발명은 대응하는 시간-날짜 필드 없는 데이터베이스에 속성을 저장하는 장치에 대해 시간-날짜 정보를 저장 및 보유하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품으로 확장된다. 또한, 본 발명은 데이터가 원격 장치 상에서 변경될 때를 식별하도록 제공한다. 본 발명은 또한 제한되거나 한정된 메모리 리소스를 보존하기 위해 시간-날짜 정보를 할당받은 제한된 세트의 속성값을 선택하도록 제공한다. 본 발명의 실시예는 이하 더욱 상세히 설명하는 바와 같이, 여러 컴퓨터 하드웨어를 포함하는 특수 목적이나 범용의 컴퓨터를 포함할 수 있다. The invention extends to a method, system and computer program product for storing and retaining time-date information for an apparatus for storing attributes in a database without a corresponding time-date field. The invention also provides for identifying when data is changed on the remote device. The present invention also provides for selecting a limited set of attribute values assigned time-date information to conserve limited or limited memory resources. Embodiments of the present invention may include a general purpose or general purpose computer including various computer hardware, as described in more detail below.
일반적으로, 본 발명은 시간-날짜 정보를 데이터베이스의 속성값과 관련시킬 수 있는 분산 컴퓨팅 시스템을 제공한다. 분산 컴퓨팅 시스템은 대응하는 시간-날짜 필드 없이 데이터베이스에 속성을 저장하여, 이로써 저 충실도 또는 레가시 (legacy) 장치로 생각되는 장치를 갖는다. 예시적인 시스템은 원격 속성값에 대응하는 시간-날짜 정보가 분산 컴퓨팅 시스템의 하나 이상의 장치에 의해 구문 분석 가능한 표준 포맷으로 식별되어 포맷될 수 있도록 제공한다. 포맷된 시간-날짜 정보는 원격 속성값과 관련되는 필드에 저장하기 위해 원격 데이터베이스에 송신된다. 포맷된 시간-날짜 정보는 이어서 속성값 간의 충돌을 해결하는 데에 이용될 수 있다.In general, the present invention provides a distributed computing system capable of associating time-date information with attribute values in a database. Distributed computing systems store devices in a database without corresponding time-date fields, thereby having devices that are considered low fidelity or legacy devices. The example system provides that the time-date information corresponding to the remote attribute value can be identified and formatted in a standard format that can be parsed by one or more devices of the distributed computing system. The formatted time-date information is sent to the remote database for storage in the field associated with the remote attribute value. The formatted time-date information can then be used to resolve conflicts between attribute values.
다른 실시예는 원격 장치의 속성값이 원격 장치와 로컬 머신 간의 마지막 속성의 동기화 이후 변경된 때를 판정하도록 제공한다. 또한, 다른 실시예는 원격 장치의 사용 가능한 리소스에 기초하여 복수의 속성값 중에서 제한된 세트의 속성값을 선택하도록 제공한다.Another embodiment provides for determining when an attribute value of a remote device has changed since synchronization of the last attribute between the remote device and the local machine. Further, another embodiment provides for selecting a limited set of attribute values from among a plurality of attribute values based on the available resources of the remote device.
동일한 구조에는 유사하거나 동일한 참조 부호가 제공되어 있는 도면을 이하 참조한다. 도면은 본 발명의 실시예를 개략적으로 나타낸 예일 뿐, 본 발명의 영역을 제한하거나 좁히고자 함이 아니라는 것이 이해될 것이다.Reference is now made to the drawings wherein like structures are provided with similar or identical reference numerals. It is to be understood that the drawings are merely illustrative of the embodiments of the invention and are not intended to limit or narrow the scope of the invention.
도 1A는 분산 컴퓨팅 네트워크(100) 내의 몇개의 노드의 연결 및 시스템 내에서 각 노드가 다른 노드와 동기화되는 방법을 도시한다. 예를 들어, 분산 컴퓨팅 시스템(100)에서 나타낸 바와 같이, 작업 컴퓨터(105)는 이메일 서버(110), PDA(115), 이동 전화(120) 및 인스턴스 메시지 서버(125)와 같은 몇가지 여러 장치와 동기화될 수 있다. 이러한 분산 컴퓨팅 시스템(100) 내에서 데이터를 동기화하려는 목적은 가장 최근의 정보가 한명 이상의 사용자에 의해 이용되는 모든 장치에 제공되는 것을 확실히 하고자 하는 것이다.1A illustrates the connection of several nodes in distributed
동기화되는 데에 필요한 데이터는 예를 들어, 각 항목이 개별의 사람, 회사, 법인, 또는 기타 유사한 컨택트에 관한 정보에 대응하고 있는 컨택트 정보일 수 있다. 각 컨택트 항목과 관련되는 속성의 예로는 이름, 중간 이름, 성, 회사 이름, 주소, 전화 번호, 이메일 주소, 웹사이트 정보 등이다. 그러나, 로컬 데이터는 컨택트 정보 이외의 정보일 수 있다는 것이 인식될 것이다. 예를 들어, 로컬 데이터는 캘린더 및/또는 스케줄링 정보, 파일, 어플리케이션 또는 두 장치 간에서 동기화되는 데에 필요한 기타 정보일 수 있다. 따라서, 컨택트 정보의 참조는 오직 설명의 목적으로 이용되는 것이지, 명시적으로 청구된 것을 제외하고 본 발명의 영역을 제한하거나 좁히고자 하는 것이 아니다.The data needed to be synchronized may be, for example, contact information where each item corresponds to information about an individual person, company, corporation, or other similar contact. Examples of attributes associated with each contact item are first name, middle name, last name, company name, address, telephone number, email address, and website information. However, it will be appreciated that local data may be information other than contact information. For example, local data may be calendar and / or scheduling information, files, applications or other information needed to be synchronized between the two devices. Thus, the reference of contact information is used for illustrative purposes only, and is not intended to limit or narrow the scope of the invention except as expressly claimed.
작업 컴퓨터(105)와 유사하게, 가정용 랩톱(130)은 인스턴스 메시지 서버(125), 이동 전화(120), PDA(115), 및 이메일 서버(110) 사이에서 동기화될 수 있다. 분산 컴퓨팅 시스템(100)은 저 충실도의 장치 (예를 들어, 데이터베이스가 속성의 시간-날짜 정보를 저장할 수 없는 장치) 및 고 충실도의 장치로 이루어질 수 있다. 이것은 이상적으로 모든 데이터베이스가 사용자가 속성을 수정한 마지막 시간을 나타내기 위해서 항목의 각 속성에 대해 시간-날짜 정보를 가지고 있기 때문에 고려하는 것이 중요하다. 이러한 경우에는, 동기 어댑터가 "최종 작성자 승리" 규칙을 이용해 마지막 시간-날짜 정보가 승리자가 되게 할 수 있다. 이것은 루핑 문제를 해결하여 (분산된 컴퓨팅 시스템(100) 내에서 이용되는 클럭이 또한 동기화되어 있다면) 결과적으로 최상의 속성이 각 충돌에서 승리하게 한다. 많은 분산 컴퓨팅 시스템(100)이 이러한 시간-날짜 정보를 저장하기 위한 메모리 리소스가 제한된 최소한의 저 충실도 또는 레가시 클라이언트로 구성되기 때문에, 그리고 이러한 레가시 클라이언트를 지원하는 것을 원하고 있기 때문에, 무한한 동기 루프의 가능성을 방지하면서 장치 간의 충돌을 해결하는 다른 방법의 필요성이 대두되고 있다.Similar to the
도 1B는 원격 장치(116) (이동 전화(120) 또는 PDA(115) 등) 및 로컬 머신(132) (가정용 랩톱(130) 또는 작업 컴퓨터(105) 등)을 갖는 분산 컴퓨팅 네트워크(100)의 일부를 도시한다. 도시된 바와 같이, 원격 장치(116)는 원격 장치(116)와 로컬 머신(132) 간의 마지막 동기화 이후의 시점에서 속성값을 A에서 B로 변경한다. 유사하게, 로컬 머신(132)은 동일한 속성값을 두 장치(116, 132) 간의 마지막 동기화 이후에 A에서 C로 변경한다. 이와 같이, 원격 장치(116)는 속성의 B 값이 로컬 머신(132)으로 하향 동기화되어야 하는 것을 나타내는 요구 동기 화살표(135) 를 가진다. 유사하게, 로컬 머신(132)은 C 값이 원격 장치(115)로 상향 동기화되어야 한다는 것을 나타내는 요구 동기 화살표(140)를 갖는다. 두 장치(116, 132)가 각각 속성값을 하향 및 상향 동기화하는 요구 동기 화살표를 가지고 있기 때문에, 충돌이 초래될 수 있다.1B illustrates a distributed
상술된 바와 같이, 통상적으로 도 1B에서 나타낸 것과 같은 충돌은 속성값과 관련되는 시간-날짜 정보의 비교로 해결될 수 있다. 그러나, 시간-날짜 정보를 비교하는 것에 의해 충돌을 해결하는 것은 저 충실도 장치의 경우에서와 같이, 동기화된 데이터가 시간-날짜 정보를 포함하지 않을 때 특히 문제가 되게 된다. 이것은 컴퓨터가 다른 컴퓨팅 장치로부터의 속성과 동기화되지 못하게 하여 "최종 작성자 승리" 해결 논리를 이용해 가장 최근의 속성을 고를 수 없게 한다. 또한, 저 충실도 장치에 관한 다른 관련 문제는 속성이 변경된 때를 식별할 방법이 없다는 것이다. 따라서, 시간-날짜 정보가 저 충실도 데이터와 관련될 수 있다고 하더라도, 저 충실도 장치에서 속성이 변경되었을 수 있기 때문에, 이러한 정보나 시간-날짜 정보는 잠재적으로 신뢰할 수 없다.As mentioned above, a conflict, typically as shown in FIG. 1B, can be resolved by comparison of time-date information associated with the attribute value. However, resolving conflicts by comparing time-date information becomes particularly problematic when synchronized data does not contain time-date information, as in the case of low fidelity devices. This prevents the computer from synchronizing with attributes from other computing devices, making it impossible to select the most recent attributes using the "final writer win" resolution logic. In addition, another related problem with low fidelity devices is that there is no way to identify when an attribute has changed. Thus, even if time-date information may be associated with low fidelity data, such information or time-date information is potentially unreliable because the attribute may have changed in the low fidelity device.
현재의 분산 컴퓨팅 네트워크의 상술한 결점은 본 발명의 실시예로 해결된다. 예를 들어, 본 발명은 장치가 대응하는 시간-날짜 필드 없이 속성을 저장하는 경우 (즉, 저 충실도 장치), 시간-날짜 정보를 데이터베이스의 속성값과 관련시키도록 제공한다. 또한, 본 발명은 원격 장치가 저 충실도 장치인 경우에도, 원격 장치의 속성의 값이 마지막 속성의 동기화 이후에 변경된 때를 판정하도록 제공한다.The aforementioned drawbacks of current distributed computing networks are addressed with embodiments of the present invention. For example, the present invention provides for associating time-date information with attribute values in a database if the device stores the attribute without the corresponding time-date field (ie, low fidelity device). The present invention also provides for determining when the value of an attribute of the remote apparatus has changed since synchronization of the last attribute, even if the remote apparatus is a low fidelity apparatus.
도 2는 본 발명의 실시예에 따라서 저 충실도 장치의 시간-날짜 정보를 생성, 이용하여 갱신할 수 있는 시스템을 갖는 분산 컴퓨팅 네트워크(200)를 도시한다. 분산 컴퓨팅 시스템(200)은 두 개의 고 충실도 머신, 즉 로컬 머신(210) 및 원격 머신(220)을 포함한다. 또한 분산 컴퓨팅 시스템(200) 내에는 저 충실도 장치, 즉 원격 장치(205)가 포함되어 있다. 원격 장치(205)는 원격 장치(205)와 관련되는 데이터베이스가 각 속성에 시간-날짜 정보를 저장할 수 없다는 점에서 저 충실도이다. 즉, 원격 장치(205)는 대응하는 시간-날짜 필드가 없이 자신의 데이터베이스에 속성들을 저장한다.2 illustrates a distributed
원격 장치(205)는 그 데이터베이스에 속성에 대한 시간-날짜 필드를 가지지 않지만, 실시예는 원격 장치(205)에서 시간-날짜 정보를 속성값과 관련시키고, 원격 장치(205)가 시간-날짜 정보를 사용하지 않는 필드 내에서 표준 포맷으로 저장할 수 있도록 제공한다. 예를 들어, 로컬 머신(210)은 원격 장치(205)의 데이터베이스의 원격 속성값에 대응하는 시간-날짜 정보를 식별할 수 있다. 식별된 시간-날짜 정보는 다음에 분산 컴퓨팅 시스템(200) 내의 몇 장치에 의해 구문 분석 가능한 표준 포맷으로 포맷될 수 있다. 표준 포맷은 예를 들어, 유니폼 리소스 식별자(URI)일 수 있다. 예를 들어, URI는 속성을 식별하고 각 속성과 관련되는 식별된 시간-날짜 정보를 포함하는 동기 유니폼 리소스 로케이터(URL)의 형태일 수 있다. 도 3과 관련하여 이하 더욱 상세히 설명하는 바와 같이, 이 동기 URL 포맷은 많은 장치에 의해 용이하게 식별 가능하며 구문 분석 가능하기 때문에 바람직하여, 표준 포맷으로서 이상적이다.The
로컬 머신(210)은 포맷된 시간-날짜 정보를 원격 장치(205)에 송신하며, 이것은 원격 속성값과 관련되는 필드에 저장되게 된다. 예를 들어, 도 2에 나타낸 바와 같이, 로컬 머신(210)은 원격 장치(205)와 동기화될 때 시간-날짜 (T/D) 정보와 갱신된 속성을 갖는 항목 1(215)을 송신한다. 그러면, 원격 장치(205)는 시간-날짜 정보를 포함하는 항목 1(215)을 저장한다. 포맷된 시간-날짜 정보는 원격 장치(205) 상의 사용하지 않는 속성 필드에 저장된다. 예를 들어, 원격 장치(205)는 포맷된 시간-날짜 정보를 통상의 속성, 숨겨진 속성, 개인적 확장 속성, 또는 노트 필드(note field)의 말단에 첨부한 것에 저장할 수 있다. 다른 정보가 속성 필드 (예를 들어, 노트 필드의 텍스트)에 저장될 수는 있지만, 본 발명은 필드가 시간-날짜 정보를 저장하기 위해 보유된 것이 아니기 때문에 이 필드를 미사용으로 언급하는 것에 유의해야 한다. 따라서, 용어 "미사용" 속성 필드의 이용은 시간-날짜 정보를 저장하기 위해 보유되지 않은 속성 필드를 포괄하는 것으로 광범위하게 해석되어야 한다.The
실시예는 포맷된 시간-날짜 정보가 충돌을 해결하거나, 속성이 변경된 때를 식별하는 등과 같은 몇가지 다른 목적에 이용될 수 있도록 제공한다. 예를 들어, 동기화는 원격 장치(205)와 원격 머신(220) 사이에서 초기화된다. 따라서, 항목 1(215)은 속성과 포맷된 시간-날짜 정보를 가지고 원격 머신(220)에 송신될 수 있다. 시간-날짜 정보의 포맷팅은 표준 구문 분석 가능 포맷으로 되어 있기 때문에, 원격 머신(220)은 원격 시간-날짜 정보를 구문 분석하여 각 속성과 관련되는 원격 시간 및 날짜 정보를 식별할 수 있다. 이 원격 시간 및 날짜 정보는 속성값 간의 충돌을 해결할 때 원격 머신(220)의 시간-날짜 정보와 비교될 수 있다.Embodiments provide that the formatted time-date information can be used for several other purposes, such as resolving conflicts, identifying when an attribute has changed, and the like. For example, synchronization is initiated between
다른 실시예는 속성이 원격 머신(205)에서 변경된 때를 검출하도록 제공한다. 예를 들어, 항목 1(215) 내의 포맷된 시간-날짜 정보는 시간-날짜 정보의 각 세그먼트 내에서 로컬 머신(210)과 마지막으로 동기화된 속성값의 표현을 포함할 수 있다. 이 표현은 예를 들어, 시간-날짜 정보와 관련되는 마지막으로 동기화된 속성값의 해시(hash)인 해시의 형태로 되어 있다. 원격 머신(220)이 동기화를 위해 항목 1(215)을 수신하면, 수신된 항목 1(215) 내의 속성은 또한 마지막으로 동기화된 속성값을 해시하는 데에 이용되는 동일한 표준 해시 함수를 이용하여 해시될 수 있다. 이용될 수 있는 표준 해시 함수는 이에만 제한되는 것은 아니지만 SHA-1, MD5 또는 기타 유사한 해시 함수를 포함한다. Another embodiment provides for detecting when an attribute has changed at the
포맷된 시간-날짜 정보 내의 해시 값은 원격 머신(220)에 의해 생성된 해시 값과 비교된다. 이 값들이 일치하지 않으면, 시간-날짜 정보와 관련되는 속성값이 원격 장치(205)에서 변경되었다고 추론할 수 있다. 따라서, 시간-날짜 정보는 잠재적으로 신뢰할 수 없고, 따라서 원격 머신(220)에 의해 폐기될 수도 있다. 이 경우, 시간-날짜 정보를 잠재적으로 신뢰할 수 없기 때문에, 충돌을 해결하기 위해서 사용자에게 사용자 인터페이스가 제공될 수 있다. 물론, 충돌을 해결하는 다른 방법을 또한 이 산업 분야에서 잘 알려진 표준 실행으로 사용 가능할 수도 있다.The hash value in the formatted time-date information is compared with the hash value generated by the
변경이 원격 장치(205)에서 발생한 때를 판정하기 위해서 상기와 같은 속성값의 해시나 표현의 이용은 포맷된 시간-날짜 정보에 제한되지 않는다는 것에 주지해야 한다. 예를 들어, 속성값이 변경된 때를 판정하기 위한 속성 표현의 비교는 시간-날짜 정보 없이 이용될 수 있다. 이러한 경우는 원격 머신(220) 상에 저장된 속성의 값을 비교할 필요없이, 속성이 원격 장치(205)로부터 하향 동기화되어야 할 때를 결정할 때에 유용하다. 따라서, 동기 URL 또는 포맷된 시간-날짜 정보 내의 해시나 원격 속성 표현을 이용하는 것은 오직 설명의 목적을 위한 것이지, 명시적으로 청구되지 않는 한 본 발명의 영역을 제한하거나 좁히고자 하는 것은 아니다. Note that the use of such a hash or representation of attribute values to determine when the change occurred at the
도 3은 시간-날짜 정보가 원격 장치(205)에서 포맷되어 저장될 수 있는 방법을 도시한다. 도 3에 나타낸 바와 같이, 항목(355)은 컨택트의 여러 필드를 가지며, 이들은 속성에 대한 속성 식별자, 속성 이름 및 초기값을 포함한다. 물론, 보유된 시간-날짜 속성 필드를 제외하고, 기타 항목, 속성, 필드 등도 사용 가능하다. 따라서, 항목(355) 컨택트 정보 및 그 내의 필드의 언급은 오직 설명을 위한 것이지, 명시적으로 청구되고 있지 않는 한 본 발명의 영역을 제한하거나 좁히고자 하는 것은 아니다.3 illustrates how time-date information may be formatted and stored at the
또한 도 3에서 나타낸 바와 같이, 포맷된 시간-날짜 정보는 속성 필드(375)에 필드 값(350)으로서 저장될 수 있다. 실시예는 포맷팅이 필드(350)에서 나타낸 바와 같이 동기 URL의 형태로 되어 있는 것을 제공한다. 필드(350)의 구문 분석 부분의 확대도를 도 3에서 또한 나타낸다. 필드(350)의 제1 부분은 동기 URL(305)를 포함한다. 이 부분은 항목(355)을 스캐닝하고 있는 장치에게 동기 URL의 다음 세그먼트가 항목(355) 내의 여러 속성에 대한 시간-날짜 정보를 포함한다는 것을 식별해준다. 동기 URL(305)에 통상 로케이터 정보로 보유되는 위치 홀더(315)는 사용될 수도 있고 사용되지 않을 수도 있다.Also, as shown in FIG. 3, the formatted time-date information may be stored as
다음 세그먼트 각각은 앰퍼샌드(ampersand)(340)로 분리될 수 있으며 속성 ID, 예를 들어 속성값(310)으로 식별될 수 있다. 또한 필드(350) 내의 동기 URL(305)의 각 세그먼트 내에는 속성 ID와 관련되는 시간-날짜 정보가 포함되어 있다 (예를 들어, time_date_1(330)은 Prop ID_1)과 관련됨). 실시예에서, 메모리 리소스를 보존하기 위해 시간-날짜 정보의 간단한 표현이 이용될 수 있다. 예를 들어, 시간-날짜 정보는 16진수로 저장될 수 있다. 더욱 공간을 줄이기 위해서, 시간-날짜 정보는 또한 더 낮은 해상도로 저장될 수도 있다. 예를 들어, 시간-날짜 값은 통상 1/1000초까지 저장된다. 그러나, 실시예는 포맷된 시간-날짜 정보 또는 동기 URL을 시간-날짜 값이 초까지 또는 분까지 저장되게 생성하도록 제공한다. 부가하여, 실시예는 시간-날짜 정보가 시간대(time zone)에 상관없이 저장될 수 있다. 따라서, 이것은 동기 토폴로지(sync topology)의 노드들이 상이한 시간대에 있을 때 비교 가능한 시간을 허용할 것이다.Each of the following segments may be separated by an
또한 동기 URL(305)의 각 세그먼트 내에는 속성 표현, 예를 들어 속성 표현(320)이 제공된다. 실시예는 속성 표현(320)이 상술한 바와 같이, 속성값이 속성 표현(320)이 생성되고 나서 변경되었는지를 판정하는 데에 있어 이용될 수 있는 해시의 형태로 되어 있다. 이것은 시간-날짜 정보(330)가 잠재적으로 신뢰할 수 없는지 여부를 나타낸다.Also within each segment of the
노트 필드와 같은 몇몇 필드를 제외하고, 포맷된 시간-날짜 정보를 저장하는 데에 사용 가능한 메모리는 제한적이다. 이와 같이, 각각의 모든 속성에 대한 시간-날짜 정보를 저장하기 위한 메모리는 사용 불가능하거나 비실용적일 수 있다. 따라서, 본 발명은 항목(355) 내의 총 개수의 속성값 중에서 제한된 세트의 속성값을 결정하고 선택하는 것을 제공한다. 본 발명의 동기 URL(305) 내에서의 시간-날짜 정보를 포함하는 속성값은 여러 가지를 고려하여 선택될 수 있다. 예를 들어, 이 선택은 가장 최근에 변경된 속성값에 기초할 수 있다. 다르게, 동기 URL(305) 내에서의 관련 시간-날짜 정보 또는 포맷된 시간-날짜 정보를 갖도록 선택된 속성값은 특정 속성값의 변경 횟수와 같은 발견적 데이터에 근거할 수 있다. 물론, 시간-날짜 정보와 관련되도록 속성값을 선택하는 다른 여러 방법들이 또한 제공된다. 따라서, 속성이 선택되는 방법, 예를 들어, 가장 최근에 변경된 속성을 이용하는 것은 오직 설명의 목적을 위한 것이지, 명시적으로 청구되고 있는 것이 아니면 본 발명의 영역을 제한하거나 좁히고자 하는 것은 아니다.With the exception of some fields, such as note fields, the memory available for storing formatted time-date information is limited. As such, the memory for storing time-date information for each and every attribute may be unavailable or impractical. Accordingly, the present invention provides for determining and selecting a limited set of attribute values from the total number of attribute values in
공간을 고려하여, 통상적으로 시간-날짜 정보가 관련될 속성의 서브세트가 선택되는 것이 요구되기 때문에, 본 발명은 축소된 공간 내에서, 시간-날짜 정보를 속성에 관련시킬 뿐만 아니라, 마지막 동기화 이후 다른 속성들이 변경되었는지 여부를 판정한다. 예를 들어, 본 발명은 축소된 포맷으로 나머지 속성을 표현하고 이 표현에 대해 상한 및/또는 하한 시간-날짜 정보를 결합시키도록 제공한다. 예를 들어, 도 3에 나타낸 바와 같이, 필드(350)의 동기 URL(305)의 말단에 나머지 값(rest value)을 갖고 있는 속성 식별자(360)를 갖는 세그먼트가 첨부된다. 속성 식별자(360)는 동기 URL(305)을 스캐닝하고 있는 장치에게, 관련된 특정 시간-날짜 정보를 갖지 않는 속성이 이 세그먼트에서 제시된다는 것을 알려준다. 따라서, 남은 속성값의 속성 표현(365)을 이용할 수 있다.In view of space, the invention typically requires that a subset of the attributes to be associated with the time-date information is selected, so that the present invention not only relates the time-date information to the attributes within the reduced space, but also after the last synchronization. Determine whether other attributes have changed. For example, the present invention provides for representing the remaining attributes in a reduced format and combining upper and / or lower time-date information for this representation. For example, as shown in FIG. 3, a segment having an
상술한 다른 속성 표현, 예를 들어 속성 표현(320)과 같이, 나머지 속성값에 대한 속성 표현(365)도 모든 남은 속성값의 해시 형태로 되어 있다. 이와 같이, 이 속성 표현(365)은 남은 속성값 중 하나 이상이 원격 머신과 로컬 머신 간의 마지막 동기화 이후 변경된 때를 식별하기 위해 상술한 속성 표현과 유사한 방식으로 이용되게 된다. 다른 실시예는 또한 시간-날짜 정보(370)가 나머지 속성과 관련될 수 있어 남은 속성값이 변경된 때에 대해 상한 및/또는 하한을 부여하도록 제공한다.As with the other attribute representations described above, for
나머지 세그먼트가 동기 URL의 추가 세그먼트로 기술되어 있지만, 이 나머지 세그먼트는 그 자신의 필드에서 포맷될 수 있다는 것이 이해될 것이다. 예를 들어, 공간이나 메모리가 보존될 필요가 있는 경우, 나머지 세그먼트는 전체 항목(355) 내의 하나 이상의 속성이 변경된 때를 식별하는 데에 이용될 수 있다. 따라서, 동기 URL(305)의 말단에 첨부된 나머지 세그먼트의 이용은 오직 설명의 목적을 위한 것이지, 명시적으로 청구되고 있지 않는 한 본 발명의 영역을 제한하거나 좁히고자 하는 것은 아니다.Although the remaining segments are described as additional segments of the sync URL, it will be appreciated that these remaining segments can be formatted in their own field. For example, if space or memory needs to be preserved, the remaining segments may be used to identify when one or more attributes in the
본 발명은 또한 기능적 단계 및/또는 비기능적 동작을 포함하는 방법적인 면에서 기재되었다. 본 발명을 실행하는 데에 있어 실행될 수 있는 단계와 동작을 이하 설명한다. 통상, 기능적 단계는 달성되는 결과 면에서 본 발명을 설명하지만, 비기능적 동작은 특정 결과를 성취하기 위한 더욱 특정한 행동을 설명하는 것이다. 기능적 단계와 비기능적 동작이 특정 순서로 기재되거나 청구되고 있지만, 본 발명은 특정 순서나 조합의 동작 및/또는 단계로 반드시 제한될 필요는 없다. 또한, 청구범위 기재시 및 이하의 도 4 내지 도 8의 플로우챠트 설명에서 동작 및/또는 단계를 이용하는 것은 이러한 용어의 원하는 특정 이용을 나타내고자 하는 것이다.The invention has also been described in terms of methods, including functional steps and / or non-functional operations. The steps and operations that can be performed in practicing the present invention are described below. Typically, functional steps describe the invention in terms of the results achieved, but non-functional operations describe more specific actions to achieve a particular result. Although functional steps and non-functional actions are described or claimed in a particular order, the invention is not necessarily limited to the actions and / or steps of a particular order or combination. In addition, when describing the claims and using the operations and / or steps in the flow chart descriptions of FIGS. 4 to 8 below, it is intended to indicate the desired specific use of such terms.
도 4 내지 도 8은 본 발명의 여러 실시예의 플로우챠트를 설명한다. 도 4 내지 도 8의 예시적인 설명은 때로는 도 1B, 도 2 및 도 3의 대응 소자를 말하는 것이다. 이들 도면의 특정 소자를 언급하고 있지만, 이 소자는 오직 설명의 목적으로 이용되는 것이지, 명시적으로 청구되고 있지 않는 한 본 발명의 영역을 제한하거나 좁히고자 하는 것은 아니다.4-8 illustrate flowcharts of various embodiments of the present invention. The exemplary description of FIGS. 4-8 sometimes refers to the corresponding elements of FIGS. 1B, 2 and 3. Although specific elements in these figures are mentioned, these elements are used for descriptive purposes only and are not intended to limit or narrow the scope of the invention unless explicitly claimed.
도 4는 대응하는 시간-날짜 필드 없이 속성을 저장하는 원격 데이터베이스 내의 속성값과 시간-날짜 정보를 관련시키는 방법(400)의 예시적인 플로우챠트를 도시한다. 방법(400)은 시간-날짜 정보를 식별하는 동작(405)을 포함한다. 시간-날짜 정보는 원격 데이터베이스의 하나 이상의 속성값에 대응하게 된다. 방법(400)은 또한 식별된 시간-날짜 정보를 포맷팅하는 동작(410)을 포함한다. 시간-날짜 정보는 분산 컴퓨팅 시스템(200) 내에서 하나 이상의 장치(210, 220)에 의해 구문 분석 가능한 표준 포맷으로 포맷된다. 표준 포맷팅은 동기 URL(305)와 같은 URI일 수 있다. 동기 URL(305)는 앰퍼샌드(340)에 의해 분리된 세그먼트로 구문 분석된다. 각 세그먼트는 속성 식별자(310), 속성값(320)의 표현 및 속성값에 대응하는 시간-날짜 정보(330)의 표현을 포함한다. 실시예는 속성값(320)의 표현이 특정 속성값의 해시일 수 있도록 제공한다. 또한, 시간-날짜 정보의 표현은 16진수일 수 있고/있거나 초단위 또는 분단위까지 및/또는 시간대 독립 포맷(time zone independent format)으로 저장될 수 있다.4 shows an exemplary flowchart of a
방법(400)은 또한 포맷된 시간-날짜 정보를 송신하는 동작(420)을 포함한다. 예를 들어, 포맷된 시간-날짜 정보는 원격 속성값과 관련되는 필드(350)에 저장하기 위해 원격 데이터베이스에 송신될 수 있다. 필드(350)는 예를 들어, 노트 필드, 숨겨진 속성, 개인적 확장 속성, 또는 기타 유사한 미사용 필드일 수 있다.The
다른 실시예는 필드(305) 내에 관련되는 시간-날짜 정보를 갖는 속성값이 총 개수의 속성값의 서브세트이도록 제공한다. 서브세트는 시간-날짜 정보와 관련되는 값에 기초하여 선택된다. 예를 들어, 가장 최근의 시간-날짜 정보는 서브세트 내에 포함된 속성값을 선택하는 데에 이용될 수 있다. 다르게, 속성값이 변경되는 횟수를 서브세트를 선택하는 데에 이용할 수 있다.Another embodiment provides that attribute values with time-date information related within
또 다른 실시예에서, 총 개수의 속성값 중에서 남은 속성값 부분은 표현 값(365) 내에 조합되고 시간-날짜 정보(370)가 관련되게 할 수 있다. 예를 들어, 시간-날짜 정보(370)는 나머지 속성 내에서 총 개수의 속성에 대해 가장 최근에 변경된 값일 수 있다. 다르게, 남은 속성값 부분 내의 속성 중 하나는 시간적으로 가장 일찍 동기화된 때를 나타내는 하한 시간-날짜 정보(370)로 한계가 정해질 수 있다. 또한, 조합된 표현 값(365)은 속성값 중 남은 부분의 해시의 형태로 되어 있다.In yet another embodiment, the remaining portion of the attribute value remaining among the total number of attribute values may be combined within the
도 5는 시간-날짜 정보를 데이터베이스의 속성값으로 수신하여 저장하는 방법(500)을 설명하며, 이 때 데이터베이스의 속성은 대응하는 시간-날짜 필드 없이 저장되어 있다. 방법(500)은 포맷된 시간-날짜 정보를 수신하는 동작(505)을 포함한다. 시간-날짜 정보는 속성값과 관련되어 분산 컴퓨팅 시스템(200)의 하나 이상의 장치(210, 220)에 의해 구문 분석 가능한 표준 포맷으로 포맷되어 있다. 방법(500)은 또한 포맷된 시간-날짜 정보를 저장하는 동작(510)을 포함한다. 포맷된 시간-날짜 정보는 속성값과 관련되는 데이터베이스 필드(350)에 저장되어 이 포맷된 시간-날짜 정보가 속성값과 연관되는 데이터 충돌을 해결하도록 이용될 수가 있게 된다.FIG. 5 illustrates a
실시예는 또한 포맷된 시간-날짜 정보를 식별하고 갱신하는 것을 가능하게 한다. 예를 들어, 속성값이 변경된 때, 포맷된 시간-날짜 정보는 속성값과 관련되는 것으로 식별될 수 있다. 이때 포맷된 시간-날짜 정보는 변경된 속성값에 따라서 데이터베이스 필드에서 갱신될 수 있다. 실시예는 이것이 적당한 어플리케이션 소프트웨어로 원격 장치(205)에 의해 행해질 수 있도록 제공한다. 예를 들어, 포맷된 시간-날짜 정보는 원격 장치(205)에서 수신되어 저장될 수 있으며, 원격 장치의 사용자가 이 변경을 행할 수 있다. 다르게, 로컬 머신(210, 220)이 이 변경을 행할 수 있다. 데이터베이스의 하나 이상의 속성값과 관련되는 포맷되지 않은 속성의 시간-날짜 정보를 저장하는 로컬 머신(210, 220)은 이 정보를 대응하는 시간-날짜 필드 내에 저장한다. 다시 말해, 로컬 머신(210, 220)은 고 충실도 장치이다.The embodiment also makes it possible to identify and update the formatted time-date information. For example, when an attribute value is changed, the formatted time-date information may be identified as associated with the attribute value. At this time, the formatted time-date information may be updated in the database field according to the changed attribute value. Embodiments provide that this can be done by the
도 6은 분산 시스템의 장치 간의 데이터 충돌을 해결하는 방법(600)을 설명한다. 분산 컴퓨팅 시스템 내의 장치 중 하나는 대응하는 시간-날짜 필드 없이 데이터베이스에 속성을 저장한다. 방법(600)은 원격 속성값을 수신하는 동작(605)을 포함한다. 원격 속성에 대해 수신된 원격 속성값과 대응하는 원격 시간-날짜 정보가 또한 수신된다. 또한, 원격 시간-날짜 정보는 분산 컴퓨팅 시스템의 하나 이상의 장치에 의해 구문 분석 가능한 표준 포맷, 예를 들어, URI 또는 동기 URL 포맷으로 포맷된다. 충돌은 원격 속성값과 대응하는 로컬 속성값 간에 있게 된다.6 illustrates a
방법(600)은 또한 기능적 결과에 근거하는 원격 시간-날짜 정보를 이용하는 단계(620)를 포함한다. 시간-날짜 정보는 로컬 장치와 원격 장치 간에 동기화하는 데에 적합한 속성값을 선택하도록 이용된다. 단계(620)는 원격 시간-날짜 정보를 구문 분석하는 동작(622)을 포함한다. 원격 시간 및 날짜를 식별하기 위해 표준 포맷에 따라 구문 분석된 원격 시간 및 날짜 정보는 원격 속성값이 변경된 때를 나타낸다. 단계(620)는 또한 원격 시간 및 날짜를 로컬 시간 및 날짜와 비교하는 동작(624)을 포함한다. 로컬 시간 및 날짜는 로컬 속성값이 변경된 때를 나타낸다. 마지막으로, 단계(620)는 충돌을 해결하는 동작(626)을 포함한다. 충돌의 해결은 비교 결과에 기초한다.The
상술한 바와 같이, 표준 포맷은 URL의 형태로 되어 있다. 예를 들어, URI는 세그먼트로 구문 분석된 URL일 수 있다. 세그먼트는 원격 속성값에 대응하는 속성 ID, 원격 속성값의 표현 및 시간-날짜 정보의 표현을 포함한다. 또한, 원격 속성값의 표현은 해시일 수 있으며 시간-날짜 정보의 표현은 16진수일 수 있다.As mentioned above, the standard format is in the form of a URL. For example, the URI may be a URL parsed into segments. The segment includes an attribute ID corresponding to the remote attribute value, a representation of the remote attribute value, and a representation of time-date information. In addition, the representation of the remote attribute value may be a hash and the representation of the time-date information may be a hexadecimal number.
일 실시예는 원격 속성값으로부터 원격 속성의 로컬 표현을 생성하도록 제공한다. 로컬 표현은 상술한 원격 표현과 비교되어 원격 속성값이 변경되었는지를 판정한다.One embodiment provides for generating a local representation of a remote attribute from a remote attribute value. The local representation is compared with the remote representation described above to determine if the remote attribute value has changed.
도 7은 원격 장치와 로컬 머신 간의 속성의 마지막 동기화 이후에 속성값이 변경된 때를 판정하는 방법(700)을 설명한다. 방법(700)은 원격 속성의 현재 값을 수신하는 동작(705)을 포함한다. 또한, 원격 속성의 이전값의 원격 표현이 수신된다. 방법(700)은 또한 원격 속성의 로컬 표현을 생성하는 동작(710)을 포함한다. 로컬 표현은 원격 속성의 현재 값으로부터 생성된다. 방법(700)은 또한 원격 표현을 로컬 표현과 비교하는 동작(715)을 포함한다. 마지막으로, 방법(700)은 종래의 원격 속성이 변경되었는지를 판정하는 동작(720)을 포함한다. 이 판정은 원격 표현이 생성된 후에 속성값이 변경된 것을 나타낸다. 따라서, 시간-날짜 정보가 예를 들어, 동기 URL(305)에서 원격 속성과 관련되게 되면, 이 정보는 잠재적으로 신뢰할 수 없어서 폐기될 수도 있다.7 illustrates a
도 8은 복수의 속성값 중에서 제한된 세트의 속성값을 선택하는 방법(800)을 설명한다. 속성값은 대응하는 시간-날짜 필드 없이 데이터베이스에 속성을 저장하는 장치에 대해 시간-날짜 정보가 할당되게 된다. 방법(800)은 원격 장치로부터 속성값을 수신하는 동작(805)을 포함한다. 방법(800)은 또한 제한된 세트의 시간-날짜 정보를 선택하는 동작(810)을 포함한다. 제한된 세트의 속성값은 원격 장치의 사용 가능한 리소스에 기초하여 복수의 속성값으로부터 선택될 수 있다. 방법(800)은 또한 시간-날짜 정보의 세트를 식별하는 동작(815)을 포함한다. 제한된 세트의 속성값 각각은 시간-날짜 정보 세트의 다른 부분에 대응한다. 방법(800)은 또한 원격 데이터베이스에 시간-날짜 정보의 다른 부분을 저장하는 동작(820)을 포함한다.8 illustrates a
방법(800)은 또한 속성값의 남은 부분을 식별하고 이들을 표현 값으로 저장하여 이들과 시간-날짜 정보를 관련시키는 것을 포함한다. 예를 들어, 남은 속성값에 대한 시간-날짜 부분이 식별될 수 있다 (남은 속성값은 제한된 세트의 속성값에 있지 않음). 시간-날짜 정보의 식별 부분은 원격 데이터베이스의 일 위치에 저장되므로 시간-날짜 정보의 식별 부분이 남은 속성값 모두에 대응하게 된다.The
본 발명의 영역 내의 실시예는 컴퓨터 실행 가능 명령어나 데이터 구조를 운반하거나 저장하고 있는 컴퓨터 판독 가능 매체를 포함한다. 이러한 컴퓨터 판독 가능 매체는 범용이나 특수 목적의 컴퓨터에 의해 액세스될 수 있는 어떠한 사용 가능 매체라도 가능하다. 제한하고자 하는 것이 아니고 예시로서, 이러한 컴퓨터 판독 가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 저장소, 자기 디스크 저장소 또는 기타 자기 저장 장치 또는 컴퓨터 실행 가능 명령어나 데이터 구조의 형태로 원하는 프로그램 코드 수단을 운반하거나 저장하는 데에 이용되며 범용이나 특수 목적의 컴퓨터에 의해 액세스될 수 있는 다른 매체를 포함할 수 있다. 정보가 네트워크나 다른 통신 접속(유선, 무선, 또는 유무선의 조합)을 통해 컴퓨터에 전달되거나 제공된 때, 컴퓨터는 이 접속을 정당하게 컴퓨터 판독 가능 매체로서 보게 된다. 따라서, 이러한 접속을 정당하게 컴퓨터 판독 가능 매체로 부른다. 상기한 것의 조합이 또한 컴퓨터 판독 가능 매체의 영역 내에 포함된다. 컴퓨터 실행 가능 명령어는 예를 들어, 범용 컴퓨터, 특수 목적의 컴퓨터, 또는 특수 목적의 처리 장치가 특정 기능이나 기능들의 그룹을 실행하도록 하는 명령어 및 데이터를 포함한다.Embodiments within the scope of the present invention include computer readable media carrying or storing computer executable instructions or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer readable media may be RAM, ROM, EEPROM, CD-ROM, or other optical disk storage, magnetic disk storage, or other magnetic storage device, or desired program in the form of computer-executable instructions or data structures. It may include other media used for carrying or storing code means and accessible by a general purpose or special purpose computer. When information is delivered or provided to a computer via a network or other communication connection (wired, wireless, or a combination of wired and wireless), the computer sees this connection as a legible computer readable medium. Thus, such a connection is legitimately called a computer readable medium. Combinations of the above are also included within the scope of computer-readable media. Computer-executable instructions include, for example, instructions and data that cause a general purpose computer, special purpose computer, or special purpose processing device to execute a particular function or group of functions.
도 9 및 다음의 설명은 본 발명이 실현될 수 있는 적당한 컴퓨팅 환경을 간단하고 일반적으로 설명하기 위한 것이다. 반드시 필요한 것은 아니지만, 본 발명은 네트워크 환경에서 컴퓨터에 의해 실행되고 있는 프로그램 모듈과 같은 컴퓨터 실행 가능 명령어의 일반 컨텍스트에서 기재될 것이다. 일반적으로, 프로그램 모듈은 루틴, 프로그램, 개체, 구성 요소, 데이터 구조 등을 포함한다. 컴퓨터 실행 가능 명령어, 관련된 데이터 구조 및 프로그램 모듈은 여기에 기재된 방법의 단계를 실행하기 위한 프로그램 코드 수단의 예를 나타낸다. 이러한 실행 가능 명령어나 관련 데이터 구조의 특정 순서는 이 단계에 기재된 함수를 실현하기 위한 대응 동작의 예를 나타낸다. 9 and the following description are intended to provide a brief and general description of a suitable computing environment in which the present invention may be implemented. Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by a computer in a network environment. Generally, program modules include routines, programs, objects, components, data structures, and the like. Computer-executable instructions, associated data structures and program modules represent examples of program code means for carrying out the steps of the methods described herein. The specific order of such executable instructions or associated data structures represents examples of corresponding operations for implementing the functions described in this step.
당업자라면 개인용 컴퓨터, 핸드 헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 계통이나 프로그램 가전 기기, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 많은 유형의 컴퓨터 시스템 컨피규레이션을 갖는 네트워크 컴퓨팅 환경에서 실행될 수 있다. 본 발명은 또한 (유선 링크, 무선 링크, 또는 유선이나 무선 링크의 조합에 의해) 링크될 수 있는 로컬 및 원격 처리 장치에 의해 작업이 실행되는 분산 컴퓨팅 환경에서 실행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치에 위치될 수 있다.Those skilled in the art can run in a network computing environment having many types of computer system configurations, including personal computers, hand held devices, multiprocessor systems, microprocessor systems or program consumer electronics, network PCs, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that may be linked (by wired link, wireless link, or a combination of wired or wireless links). In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
도 9를 참조하여, 본 발명을 실현하는 예시적인 시스템은 처리 유닛(921), 시스템 메모리(922), 및 시스템 메모리(922)를 포함하는 여러 시스템 구성 요소를 처리 유닛(921)에 결합하는 시스템 버스(923)를 포함하는, 종래의 컴퓨터(920)의 형태인 범용의 컴퓨팅 장치를 포함한다. 시스템 버스(923)는 메모리 버스나 메모 리 컨트롤러, 주변 버스, 및 각종 버스 아키텍쳐를 이용하는 로컬 버스를 포함하는 몇가지 유형의 버스 구조 중 어느 것이나 가능하다. 시스템 메모리는 판독 전용 메모리(ROM; 924) 및 랜덤 액세스 메모리(RAM; 925)를 포함한다. 기동 동안과 같이, 컴퓨터(920) 내의 소자 간에 정보를 전달하는 것을 도와주는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS; 926)은 ROM(924)에 저장될 수 있다.With reference to FIG. 9, an exemplary system for realizing the present invention is a system that couples various system components, including
컴퓨터(920)는 자기 하드 디스크(939)를 판독하고 여기에 기록하기 위한 자기 하드 디스크 드라이브(927), 분리형 자기 디스크(929)를 판독하고 여기에 기록하기 위한 자기 디스크 드라이브(928), 및 CD-ROM 또는 기타 광 매체와 같은 분리형 광 디스크(931)를 판독하거나 기록하기 위한 광 디스크 드라이브(930)를 포함할 수 있다. 자기 하드 디스크 드라이브(927), 자기 디스크 드라이브(928), 및 광 디스크 드라이브(930)는 하드 디스크 드라이브 인터페이스(932), 자기 디스크 드라이브 인터페이스(933) 및 광 드라이브 인터페이스(934)에 의해 각각 시스템 버스(923)에 접속된다. 드라이브 및 이들과 관련되는 컴퓨터 판독 가능 매체는 컴퓨터 실행 가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 컴퓨터(920)에 제공한다. 여기에 기재된 예시적인 환경은 자기 하드 디스크(939), 분리형 자기 디스크(929), 및 분리형 광 디스크(931)를 이용하고 있지만, 기타 자기 카세트, 플래시 메모리 카드, 디지털 다기능 디스크, 베르누이 카트리지, RAM, ROM 등을 포함하는 다른 유형의 데이터 저장용 컴퓨터 판독 가능 매체를 이용할 수 있다.The
예시로 운영 체제(935), 하나 이상의 응용 프로그램(936), 기타 프로그램 모듈(937), 및 프로그램 데이터(938)를 포함하는, 하나 이상의 프로그램 모듈을 포함 하는 프로그램 코드 수단은, 하드 디스크(939), 자기 디스크(929), 광 디스크(931), ROM(924) 또는 RAM(925) 상에 저장될 수 있다. 사용자는 키보드(940), 포인팅 장치(942) 또는 기타 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너 등과 같은 다른 입력 장치 (도시 생략)를 통해 컴퓨터(920)에 명령어과 정보를 입력할 수 있다. 이들 및 기타 입력 장치는 흔히 시스템 버스(923)에 결합된 직렬 포트 인터페이스(946)를 통해 처리 유닛(921)에 접속된다. 다르게, 입력 장치는 병렬 포트, 게임 포트 또는 범용 직렬 버스 (USB)와 같은 다른 인터페이스에 의해 접속될 수 있다. 모니터(947) 또는 다른 디스플레이 장치는 또한 비디오 어댑터(948)와 같은 인터페이스를 통해 시스템 버스(923)에 접속된다. 모니터에 부가하여, 개인용 컴퓨터는 보통 스피커와 프린터와 같은 다른 주변 출력 장치 (도시 생략)를 포함한다.Program code means comprising one or more program modules, including, by way of example,
컴퓨터(920)는 원격 컴퓨터(949a 및 949b)와 같은 하나 이상의 원격 컴퓨터에의 논리 접속을 이용하여 네트워크 환경에서 동작한다. 원격 컴퓨터(949a 및 949b)는 각각 다른 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 공통 네트워크 노드일 수 있으며, 메모리 저장 장치(950a 및 950b) 및 이들의 관련 응용 프로그램(936a 및 936b)만이 도 9에 도시되어 있지만, 보통은 컴퓨터(920)에 관련하는 상술한 모든 소자를 포함할 수 있다. 도 9에 도시한 논리 접속은 제한하고자 하는 것이 아니고 여기에서 예시로서 제시된 근거리 통신망(LAN; 951) 및 원거리 통신망(WAN; 952)을 포함한다. 이러한 네트워킹 환경은 사무실이나 전사 차원의 컴퓨터 네트워크, 인트라넷 및 인터넷에서는 일반적인 것이다.
컴퓨터(920)는 LAN 네트워킹 환경에서 이용될 때, 네트워크 인터페이스나 어댑터(953)를 통해 근거리 통신망(951)에 접속된다. WAN 네트워킹 환경에서 이용될 때에, 컴퓨터(920)는 모뎀(954), 무선 링크 또는 기타 인터넷과 같은 원거리 통신망(952)을 통해 통신을 설정하기 위한 다른 수단을 포함할 수 있다. 내부 또는 외부적일 수 있는 모뎀(954)은 직렬 포트 인터페이스(946)를 통해 시스템 버스(923)에 접속된다. 네트워크 환경에서, 컴퓨터(920)와 관련하여 도시된 프로그램 모듈 또는 그 일부가 원격 메모리 저장 장치에 저장될 수 있다. 나타낸 네트워크 접속은 예시적인 것으로 원거리 통신망(952)을 통해 통신을 설정하기 위한 다른 수단을 이용할 수 있다는 것이 이해될 것이다.When used in a LAN networking environment, the
본 발명은 그 정신이나 필수 특성에서 벗어나지 않고 다른 특정 형태로 실현될 수 있다는 것이 이해될 것이다. 기재된 실시예는 모든 점에서 제한하고자 하는 것이 아니라 오직 설명을 위한 것으로 생각되어야 한다. 따라서, 본 발명의 영역은 상술한 설명에 의해서 보다는 첨부된 청구범위에 의해 암시된다. 청구범위의 의의와 등가물의 범위 내에 들어가는 모든 변형은 이들의 영역 내에 포괄되는 것이다.It is to be understood that the invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. Accordingly, the scope of the invention is implied by the appended claims rather than by the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims (100)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/835,830 | 2004-04-30 | ||
US10/878,095 | 2004-06-28 | ||
US10/878,717 | 2004-06-28 | ||
PCT/US2004/024708 WO2005111808A2 (en) | 2004-04-30 | 2004-07-30 | Maintaining time-date information for syncing low fidelity devices |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117030922A Division KR101224821B1 (en) | 2004-04-30 | 2004-07-30 | Maintaining time-date information for syncing low fidelity devices |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070018657A KR20070018657A (en) | 2007-02-14 |
KR101201075B1 true KR101201075B1 (en) | 2012-11-14 |
Family
ID=43651957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057008467A Expired - Fee Related KR101201075B1 (en) | 2004-04-30 | 2004-07-30 | Maintaining time-date information for syncing low fidelity devices |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101201075B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101654256B1 (en) * | 2012-06-29 | 2016-09-09 | 에스케이텔레콤 주식회사 | System and method for recommending contents on based passenger type for automobile |
-
2004
- 2004-07-30 KR KR1020057008467A patent/KR101201075B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR20070018657A (en) | 2007-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101224821B1 (en) | Maintaining time-date information for syncing low fidelity devices | |
US7333976B1 (en) | Methods and systems for processing contact information | |
US10592496B2 (en) | Automatic conflict resolution | |
KR101312810B1 (en) | Partial item change tracking and synchronization | |
US7895223B2 (en) | Generating search results based on determined relationships between data objects and user connections to identified destinations | |
US9430445B2 (en) | Document editor and method for editing document | |
US7284021B2 (en) | Determining when a low fidelity property value has changed during a SYNC | |
US7730167B2 (en) | Methods and systems for halting synchronization loops in a distributed system | |
RU2367008C2 (en) | Supporting time and date information for synchronisation of devices with low data integrity | |
US7269609B2 (en) | Preserving memory resources by limiting time-date information for a subset of properties | |
KR101201075B1 (en) | Maintaining time-date information for syncing low fidelity devices | |
CA2507424C (en) | Maintaining time-date information for syncing low fidelity devices | |
US20110016100A1 (en) | Multiple fidelity level item replication and integration | |
JP7270585B2 (en) | Information management system, information management program and information management method | |
AU2011202919B2 (en) | Partial item change tracking and synchronization | |
HK1162711B (en) | Partial item change tracking and synchronization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0105 | International application |
St.27 status event code: A-0-1-A10-A15-nap-PA0105 |
|
PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
A201 | Request for examination | ||
AMND | Amendment | ||
E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
AMND | Amendment | ||
P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
R17-X000 | Change to representative recorded |
St.27 status event code: A-3-3-R10-R17-oth-X000 |
|
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
St.27 status event code: N-2-6-B10-B15-exm-PE0601 |
|
T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
A107 | Divisional application of patent | ||
AMND | Amendment | ||
E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
J201 | Request for trial against refusal decision | ||
P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
PA0104 | Divisional application for international application |
St.27 status event code: A-0-1-A10-A18-div-PA0104 St.27 status event code: A-0-1-A10-A16-div-PA0104 |
|
PJ0201 | Trial against decision of rejection |
St.27 status event code: A-3-3-V10-V11-apl-PJ0201 |
|
PB0901 | Examination by re-examination before a trial |
St.27 status event code: A-6-3-E10-E12-rex-PB0901 |
|
PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
B701 | Decision to grant | ||
PB0701 | Decision of registration after re-examination before a trial |
St.27 status event code: A-3-4-F10-F13-rex-PB0701 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U12-oth-PR1002 Fee payment year number: 1 |
|
PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R14-asn-PN2301 |
|
FPAY | Annual fee payment |
Payment date: 20151016 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161019 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20171018 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
FPAY | Annual fee payment |
Payment date: 20181018 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 7 |
|
R17-X000 | Change to representative recorded |
St.27 status event code: A-5-5-R10-R17-oth-X000 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 8 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 9 |
|
PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20211108 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20211108 |