[go: up one dir, main page]

KR101524668B1 - Method And Apparatus for Data Synchronization - Google Patents

Method And Apparatus for Data Synchronization Download PDF

Info

Publication number
KR101524668B1
KR101524668B1 KR1020140018744A KR20140018744A KR101524668B1 KR 101524668 B1 KR101524668 B1 KR 101524668B1 KR 1020140018744 A KR1020140018744 A KR 1020140018744A KR 20140018744 A KR20140018744 A KR 20140018744A KR 101524668 B1 KR101524668 B1 KR 101524668B1
Authority
KR
South Korea
Prior art keywords
entity
field
database
synchronization
version information
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.)
Active
Application number
KR1020140018744A
Other languages
Korean (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 에스케이 텔레콤주식회사
Priority to KR1020140018744A priority Critical patent/KR101524668B1/en
Application granted granted Critical
Publication of KR101524668B1 publication Critical patent/KR101524668B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 동기화 방법 및 장치를 개시한다.
복수의 필드를 가지며 각 필드별로 버전 정보를 갖는 데이터베이스를 포함하되, 특정 필드값에 변경이 발생하는 경우, 관련된 필드의 버전 정보를 업데이트하고, 각 필드의 버전 정보를 기초로 관련된 필드의 전체 필드값만을 동기화시킴으로써 엔티티 간 동기화를 위한 데이터 비교를 빠르고 가볍게 진행하여 불필요한 동기화 수행시간을 감소시키고, 동기화의 효율성을 증가시킬 수 있는 데이터 동기화 방법 및 장치를 제공한다.
A data synchronization method and apparatus are disclosed.
And a database having a plurality of fields and having version information for each field. When a change occurs in a specific field value, the version information of the related field is updated, and based on the version information of each field, The present invention provides a method and apparatus for synchronizing data that can speed up and simplify data comparison for inter-entity synchronization to reduce unnecessary synchronization execution time and increase efficiency of synchronization.

Description

데이터 동기화 방법 및 장치{Method And Apparatus for Data Synchronization}METHOD AND APPARATUS FOR DATA SYNCHRONIZATION

본 실시예는 데이터 동기화 방법 및 장치에 관한 것이다.This embodiment relates to a data synchronization method and apparatus.

이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아님을 밝혀둔다.It should be noted that the following description merely provides background information related to the present embodiment and does not constitute the prior art.

각종 전자, 통신산업의 발달로 말미암아 이동 단말이 널리 보급되고 있으며, 사용자의 욕구에 부응하기 위하여 이동 단말의 기능은 다양화되고 있다. 이러한, 이동 단말의 기능 중 사용자가 자주 사용하고 있는 기능으로는 주소록 기능이 있다. 최근의 주소록에는 단순히 전화번호를 저장하는 기능에서 발전하여 이동 단말에 구비된 디지털 카메라로 촬영한 이미지 또는 MMS를 통해 타 단말로부터 수신한 이미지, 사진, 이모티콘, 동영상 등을 등록할 수 있게 되었다.Mobile terminals have become widespread due to the development of various electronic and communication industries, and the functions of mobile terminals have been diversified in order to meet users' needs. Among the functions of the mobile terminal, there is an address book function as a function frequently used by the user. In the recent address book, it has become possible to register images, photographs, emoticons, videos, and the like received from other terminals through an image captured by a digital camera provided in a mobile terminal or an MMS developed in a function of simply storing a telephone number.

한편, 근래에는 사용자가 보유하고 있는 이동 단말의 보유량이 증가함에 따라 각 이동 단말 간의 주소록 동기화 서비스가 널리 이용되고 있다. 즉, 이동 단말에서는 동기화 프로그램을 구동하여 주소록에 기록된 전화번호를 타 단말의 주소록에 전송하여 등록시키거나, 또는 타 단말의 주소록에 기록된 전화번호를 동기화 프로그램을 통해 가져와서 주소록에 등록할 수 있다. 이러한, 주소록 동기화 서비스는 주소록이 수정되는 경우, 타 단말의 주소록에서 이를 자동으로 반영할 수 있다는 장점이 존재한다.Meanwhile, in recent years, address book synchronization services among mobile terminals have been widely used as the amount of mobile terminals held by users increases. That is, the mobile terminal drives a synchronization program to transmit the telephone number recorded in the address book to the address book of the other terminal and register it, or to register the telephone number recorded in the address book of the other terminal through the synchronization program, have. The address book synchronization service has an advantage in that, when the address book is modified, the address book synchronization service can automatically reflect it in the address book of the other terminals.

한편, 종래의 주소록 동기화 서비스의 경우, 이동 단말은 타 단말과의 주소록 동기화를 위해, 실제 변경된 정보와 무관하게 주소록에 포함된 모든 정보를 타 단말로 전송하였으며, 타 단말은 이를 자신의 주소록에 포함된 정보와 일일이 비교하여 수정된 정보를 탐색 및 수정하는 과정을 수행하였다. 이 경우, 불필요한 동기화 수행시간이 야기됨으로써 동기화의 효율성이 떨어진다는 문제점이 존재한다.Meanwhile, in the conventional address book synchronization service, the mobile terminal transmits all the information included in the address book to the other terminals regardless of the actually changed information, in order to synchronize the address book with the other terminals. And then searching and correcting the modified information. In this case, unnecessary synchronization execution time is caused, and there is a problem that efficiency of synchronization is lowered.

본 실시예는 복수의 필드를 가지며 각 필드별로 버전 정보를 갖는 데이터베이스를 포함하되, 특정 필드값에 변경이 발생하는 경우, 관련된 필드의 버전 정보를 업데이트하고, 각 필드의 버전 정보를 기초로 관련된 필드의 전체 필드값만을 동기화시킴으로써 엔티티 간 동기화를 위한 데이터 비교를 빠르고 가볍게 진행하여 불필요한 동기화 수행시간을 감소시키고, 동기화의 효율성을 증가시킬 수 있는 데이터 동기화 방법 및 장치를 제공하고자 하는 데 주된 목적이 있다.The present embodiment includes a database having a plurality of fields and having version information for each field. When a change occurs in a specific field value, the version information of the related field is updated, and based on the version information of each field, The present invention is directed to a data synchronization method and apparatus capable of speeding up and shortening data comparison for inter-entity synchronization by only synchronizing the entire field values of a plurality of fields, thereby reducing unnecessary synchronization execution time and increasing efficiency of synchronization.

본 실시예는 복수의 필드를 갖는 데이터베이스에 저장된 데이터를 제2 엔티티와 동기화하는 제1 엔티티에 있어서, 상기 데이터베이스의 각 필드의 버전 정보를 관리하고, 특정 필드값에 변경이 발생하는 경우 관련된 필드의 버전 정보를 업데이트하는 필드 관리부; 및 상기 각 필드의 버전 정보를 기초로, 상기 관련된 필드의 전체 필드값을 상기 제2 엔티티와 동기화하는 동기화 수행부를 포함하는 것을 특징으로 하는 제1 엔티티를 제공한다.In this embodiment, a first entity that synchronizes data stored in a database having a plurality of fields with a second entity, manages version information of each field of the database, and when a change occurs in a specific field value, A field management unit for updating the version information; And a synchronization performing unit for synchronizing the total field value of the related field with the second entity based on version information of each field.

또한, 본 실시예의 다른 측면에 의하면 명령어들을 포함하는 하나 이상의 프로그램을 저장하는 비-임시적인 컴퓨터 판독가능 저장 매체(non-transitory computer readable storage medium)로서, 상기 명령어들은, 복수의 필드를 가지며 각 필드별로 버전 정보를 갖는 데이터베이스가 포함된 제1 엔티티에 의해 실행될 때, 상기 제1 엔티티가, 특정 필드값에 변경이 발생하는 경우 관련된 필드의 버전 정보를 업데이트하고, 각 필드의 버전 정보를 기초로, 상기 관련된 필드의 전체 필드값을 제2 엔티티와 동기화하는 컴퓨터 판독 가능 저장 매체를 제공한다.According to a further aspect of the present invention there is provided a non-transitory computer readable storage medium for storing one or more programs comprising instructions, said instructions having a plurality of fields, The first entity updates the version information of the related field when a change occurs in a specific field value and updates the version information of the related field based on the version information of each field, And synchronizes the entire field value of the associated field with a second entity.

본 실시예에 따르면, 복수의 필드를 가지며 각 필드별로 버전 정보를 갖는 데이터베이스를 포함하는 엔티티들이, 특정 필드값에 변경이 발생하는 경우, 관련된 필드의 버전 정보를 업데이트하고, 각 필드의 버전 정보를 기초로 관련된 필드의 전체 필드값만을 동기화시킴으로써 불필요한 동기화 수행시간을 감소시키고, 동기화의 효율성을 증가시킬 수 있는 효과가 있다.According to the present embodiment, when a change occurs in a specific field value, entities including a database having a plurality of fields and having version information for each field update the version information of the related field, By synchronizing only the entire field values of the related field on the basis, it is possible to reduce unnecessary synchronization execution time and increase the efficiency of synchronization.

또한, 본 실시예에 따르면, 엔티티들이 데이터베이스의 각 필드에 기 부여된 중요도 정보에 기초하여 변경이 발생한 필드에 대한 실시간 동기화 여부를 판단하고, 판단결과에 따라 변경이 발생한 필드의 전체 필드값만을 실시간으로 동기화시킴으로써 중요 수정 정보를 실시간으로 동기화하고, 불필요한 동기화 수행시간을 감소시킬 수 있는 효과가 있다.In addition, according to the present embodiment, the entities determine whether the field in which the change has occurred is synchronized in real time based on the importance information preliminarily assigned to each field of the database. Then, according to the determination result, , It is possible to synchronize important correction information in real time and to reduce unnecessary synchronization execution time.

도 1은 본 실시예에 따른 동기화 시스템을 개략적으로 나타낸 블럭 구성도이다.
도 2는 본 실시예에 따른 제1 엔티티 및 제3 엔티티를 개략적으로 나타낸 블럭 구성도이다.
도 3은 본 실시예에 따른 제2 엔티티를 개략적으로 나타낸 블럭 구성도이다.
도 4는 본 실시예에 따른 동기화 방법을 설명하기 위한 순서도이다.
도 5는 본 실시예에 따른 데이터베이스를 예시한 예시도이다.
1 is a block diagram schematically showing a synchronization system according to the present embodiment.
2 is a block diagram schematically showing a first entity and a third entity according to the present embodiment.
3 is a block diagram schematically showing a second entity according to the present embodiment.
4 is a flowchart illustrating a synchronization method according to an embodiment of the present invention.
5 is an exemplary diagram illustrating a database according to the present embodiment.

이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, the present embodiment will be described in detail with reference to the accompanying drawings.

본 실시예는 복수의 필드를 가지며 각 필드별로 버전 정보를 갖는 데이터베이스를 포함하는 엔티티들이, 특정 필드값에 변경이 발생하는 경우, 관련된 필드의 버전 정보를 업데이트하고, 이후, 각 필드의 버전 정보를 기초로 관련된 필드의 전체 필드값을 동기화시킴으로써 불필요한 동기화 수행시간을 감소시키고, 동기화의 효율성을 증가시킬 수 있는 방법을 제안한다.In this embodiment, when a change occurs in a specific field value, entities including a database having a plurality of fields and having version information for each field update the version information of the related field, As a basis, we propose a method that can reduce unnecessary synchronization execution time and increase synchronization efficiency by synchronizing the total field values of related fields.

도 1은 본 실시예에 따른 동기화 시스템을 개략적으로 나타낸 블럭 구성도이다.1 is a block diagram schematically showing a synchronization system according to the present embodiment.

본 실시예에 따른 동기화 시스템은 제1 엔티티(110), 제2 엔티티(120) 및 제2 엔티티(130)를 포함한다. 동기화 시스템에 포함된 구성요소는 반드시 이에 한정되는 것은 아니다.The synchronization system according to the present embodiment includes a first entity 110, a second entity 120, and a second entity 130. The components included in the synchronization system are not limited thereto.

제1 엔티티 내지 제3 엔티티(110, 120, 130)는 네트워크를 경유하여 각종 데이터를 송수신할 수 있는 장치로써, 태블릿 PC(Tablet PC), 랩톱(Laptop), 개인용 컴퓨터(PC: Personal Computer), 스마트폰(Smart Phone), 개인휴대용 정보단말기(PDA: Personal Digital Assistant), 이동통신 단말기(Mobile Communication Terminal) 및 서버 등 중 어느 하나일 수 있다. 한편, 도 1에서는 제1 엔티티(110)가 이동통신 단말기로, 제2 엔티티(120)가 서버로, 제3 엔티티(130)가 이동통신 단말기 또는 태블릿 PC로 구현된 경우를 예시하여 설명하나 반드시 이에 한정되는 것은 아니다.The first to third entities 110, 120 and 130 are apparatuses capable of transmitting and receiving various data via a network. The first to third entities 110, 120 and 130 may be a tablet PC, a laptop, a personal computer (PC) A smart phone, a personal digital assistant (PDA), a mobile communication terminal, a server, or the like. 1, the first entity 110 is a mobile communication terminal, the second entity 120 is a server, and the third entity 130 is a mobile communication terminal or a tablet PC. But is not limited thereto.

본 실시예에 따른 제1 엔티티 내지 제3 엔티티(110, 120, 130)는 일반적인 동기화 애플리케이션이 아닌, 데이터베이스 내 실제 변경이 발생한 특정 필드만을 선별하여 특정 필드의 전체 필드값만을 다른 엔티티와 동기화하는 동기화 애플리케이션(112)을 임베디드(Embedded) 형태로 탑재한 엔티티이다. 물론, 제1 엔티티 내지 제3 엔티티(110, 120, 130)는 동기화 애플리케이션(112)을 사용자의 조작 또는 명령에 의해 제1 엔티티 내지 제3 엔티티(110, 120, 130) 내의 OS에 인스톨되는 형태로 탑재할 수도 있다. 한편, 이러한, 동기화 애플리케이션(112)은 각각의 엔티티에 탑재된 특정 애플리케이션의 기능 모듈에 포함되는 형태로 구현되어 특정 애플리케이션의 데이터베이스를 관리하여 동기화할 수도 있으며, 별도로 구비되어 각각의 엔티티에 탑재된 모든 애플리케이션의 데이터베이스를 관리하여 동기화할 수도 있다.The first entity to the third entity 110, 120, and 130 according to the present embodiment are not a general synchronization application. Instead of selecting a general synchronization application, only a specific field in which a real change occurs in the database is selected, And is an entity in which the application 112 is mounted in an embedded form. Of course, the first to third entities 110, 120, and 130 may be configured to allow the synchronization application 112 to be installed in the OS in the first to third entities 110, 120, and 130 As shown in FIG. The synchronization application 112 may be implemented by being included in a function module of a specific application installed in each entity so as to manage and synchronize a database of a specific application. You can also manage and synchronize your application's database.

본 실시예에 따른 제1 엔티티(110)는 탑재된 동기화 애플리케이션(112)을 이용하여 제1 엔티티(110)에서 관리하는 소정 애플리케이션 예컨대, 주소록 애플리케이션의 데이터베이스에 저장된 데이터를 다른 엔티티와 동기화한다. 이하, 제1 엔티티(110)가 서버로 구현된 제2 엔티티(120)와 동기화를 수행하고, 이후, 제2 엔티티(120)가 제3 엔티티(130)와 동기화를 수행하는 것으로 설명하나 반드시 이에 한정되지는 않고 제1 엔티티(110) 및 제3 엔티티(130) 간 직접적으로 동기화가 수행할 수도 있다. 제1 엔티티(110)는 제1 엔티티(110)에 탑재된 각 애플리케이션의 데이터베이스를 관리한다. 이때, 데이터베이스는 복수의 필드를 가지며, 각 필드별로 버전 정보를 갖는 구조로 이루어지며, 해당 구조에 따라 데이터를 매칭시켜 저장한다. 제1 엔티티(110)는 데이터베이스의 각 필드의 버전 정보를 관리하고, 데이터베이스에 저장된 데이터 예컨대, 특정 필드값에 변경이 발생하는 경우, 관련된 필드(즉, 변경이 발생한 특정 필드값을 하위 정보로서 포함하고 있는 필드)의 버전 정보를 업데이트한다. 이후, 제1 엔티티(110)는 제2 엔티티(120)와의 동기화 수행 시 각 필드의 버전 정보를 기초로, 관련된 필드의 전체 필드값만을 제2 엔티티(120)로 동기화하며, 제2 엔티티(120)는 이를 수신하여 데이터베이스 내 관련된 필드와 대응되는 대응 필드의 필드값 및 버전 정보를 업데이트한다. 한편, 본 실시예에 따른 제1 엔티티(110)는 다른 엔티티와의 동기화 수행 시 변경이 발생한 데이터베이스의 모든 데이터를 동기화시키는 것이 아닌 실제 변경이 발생한 데이터베이스의 필드의 전체 필드값만을 동기화시킴으로써 불필요한 동기화 수행시간을 감소시키고, 동기화의 효율성을 증가시킬 수 있는 효과가 있다.The first entity 110 according to the present embodiment synchronizes the data stored in the database of the predetermined application, for example, the address book application managed by the first entity 110, with another entity using the installed synchronization application 112. [ Although the first entity 110 performs synchronization with the second entity 120 implemented as a server and the second entity 120 performs synchronization with the third entity 130 afterwards, The synchronization between the first entity 110 and the third entity 130 may be directly performed. The first entity 110 manages a database of each application installed in the first entity 110. At this time, the database has a plurality of fields, and has a structure having version information for each field, and stores and stores data according to the structure. The first entity 110 manages the version information of each field of the database, and when the data stored in the database, for example, a change occurs in a specific field value, the first entity 110 includes a related field (i.e., And updates the version information of the field. The first entity 110 synchronizes the entire field values of the related fields to the second entity 120 based on the version information of each field when the second entity 120 synchronizes with the second entity 120, ) Receives it and updates the field value and version information of the corresponding field corresponding to the related field in the database. Meanwhile, the first entity 110 according to this embodiment synchronizes only the entire field values of the field of the database in which the actual change has occurred, rather than synchronizing all the data of the database in which the change occurred, when performing synchronization with other entities. There is an effect that the time can be reduced and the efficiency of synchronization can be increased.

한편, 제1 엔티티(110)는 제2 엔티티(120)와의 동기화 수행 과정에서 제2 엔티티(120)로부터 제2 엔티티(120)의 데이터베이스 예컨대, 변경이 발생한 제1 엔티티(110)의 데이터베이스와 동일한 데이터를 저장하고 있는 데이터베이스의 각 필드의 버전 정보를 수신한다. 이후, 제1 엔티티(110)의 데이터베이스의 각 필드의 버전 정보와 제2 엔티티(120)의 데이터베이스의 각 필드의 버전 정보를 비교한 비교결과에 근거하여 관련된 필드를 선별하고, 관련된 필드의 전체 필드값을 제2 엔티티(120)와 동기화한다.Meanwhile, the first entity 110 receives the same data as the database of the second entity 120 from the second entity 120 during synchronization with the second entity 120, for example, the database of the first entity 110 in which the change occurs And receives the version information of each field of the database storing the data. Then, the related field is selected based on the comparison result of comparing the version information of each field of the database of the first entity 110 with the version information of each field of the database of the second entity 120, Value to the second entity (120).

한편, 데이터베이스의 각 필드에는 각 필드에 포함된 필드값의 중요도 여부에 따라 중요도 정보가 기 부여되어 있다. 이에, 제1 엔티티(110)는 각 필드에 기 부여된 중요도 정보에 기초하여 앞서 선별된 관련된 필드의 전체 필드값에 대한 실시간 동기화 여부를 판단하고, 실시간 동기화가 필요하다고 판단되는 경우 플래그 신호를 생성한다. 이때, 플래그 신호는 실시간 동기화를 수행하라는 약속된 신호로써 제1 엔티티(110)는 플래그 신호가 인지되는 경우, 제2 엔티티(120)와 실시간으로 동기화를 수행한다. 제1 엔티티(110)는 각 필드에 기 부여된 중요도 정보에 기초하여 앞서 선별된 관련된 필드의 필드값의 실시간 동기화가 불필요하다고 판단되는 경우, 플래그 신호를 미생성하며, 이후, 기 설정된 조건에 따라 제2 엔티티(120)와 동기화를 수행한다. 이때, 기 설정된 조건은 제1 엔티티(110)와 제2 엔티티(120)를 연결하는 네트워크의 상태가 될 수도 있으며, 기 설정된 제2 엔티티(120)와의 동기화 주기일 수도 있다.On the other hand, importance information is assigned to each field of the database according to the importance of the field value included in each field. Accordingly, the first entity 110 determines whether or not to synchronize the entire field value of the related field selected in advance based on the importance information preliminarily assigned to each field, and generates a flag signal when it is determined that real- do. At this time, the flag signal is a promised signal to perform real-time synchronization, and the first entity 110 performs real-time synchronization with the second entity 120 when the flag signal is recognized. The first entity 110 does not generate a flag signal if it is determined that real-time synchronization of field values of the related fields selected in advance is unnecessary based on the importance information preliminarily assigned to each field, And performs synchronization with the second entity 120. In this case, the predetermined condition may be a state of a network connecting the first entity 110 and the second entity 120, or may be a synchronization cycle with the second entity 120 set in advance.

제2 엔티티(120)는 제1 엔티티(110) 및 제3 엔티티(130)에 탑재된 애플리케이션의 데이터베이스를 관리하는 서버를 의미하며, 탑재된 동기화 애플리케이션(112)을 이용하여 제2 엔티티(120)에서 관리하는 애플리케이션의 데이터베이스에 저장된 데이터를 다른 엔티티와 동기화한다. 제2 엔티티(120)는 특정 애플리케이션에 대한 데이터베이스만을 관리할 수도 있으며, 복수의 애플리케이션에 대한 데이터베이스를 통합적으로 관리할 수도 있다. 이러한 데이터베이스의 구조는 앞서 제1 엔티티(110)의 데이터베이스와 동일한 구조를 갖는다. 이하, 제2 엔티티(120)가 제1 엔티티(110)와의 동기화를 통해 업데이트된 데이터를 제3 엔티티(130)로 동기화하는 경우를 예시하여 설명하도록 한다.The second entity 120 refers to a server that manages a database of an application installed in the first entity 110 and the third entity 130 and uses the installed synchronization application 112 to access the second entity 120, And synchronizes data stored in the database of the application managed by the other entity with each other. The second entity 120 may manage only a database for a specific application or may integrally manage a database for a plurality of applications. The structure of such a database has the same structure as the database of the first entity 110 previously. Hereinafter, a case where the second entity 120 synchronizes the updated data with the third entity 130 through synchronization with the first entity 110 will be described.

제2 엔티티(120)는 제2 엔티티(120)의 데이터베이스의 특정 필드값이 다른 엔티티와(이하, 제1 엔티티(110)로 예시하여 설명하도록 한다.)의 동기화를 통해 변경이 발생하는 경우, 관련된 필드의 버전 정보를 업데이트한다. 이후, 제2 엔티티(120)는 기 설정된 제1 엔티티(110)와 동기화가 필요한 상대 엔티티 예컨대, 제3 엔티티(130)와의 동기화를 진행하고, 동기화 수행 시 각 필드의 버전 정보를 기초로, 관련된 필드의 전체 필드값만을 선별하여 제3 엔티티(130)로 동기화한다. 제3 엔티티(130)는 이를 수신하여 데이터베이스 내 관련된 필드와 대응되는 대응 필드의 필드값 및 버전 정보를 업데이트한다. 마찬가지로, 본 실시예에 따른 제2 엔티티(120)는 다른 엔티티와의 동기화 수행 시 변경이 발생한 데이터베이스의 모든 데이터를 동기화시키는 것이 아닌 실제 변경이 발생한 데이터베이스의 필드의 전체 필드값만을 동기화시킴으로써 불필요한 동기화 수행시간을 감소시키고, 동기화의 효율성을 증가시킬 수 있는 효과가 있다. 한편, 제2 엔티티(120)는 앞서 명시된 제1 엔티티(110)가 수행하는 기능을 동일하게 수행할 수 있으며, 이에 자세한 설명은 생략하도록 한다. 즉, 제2 엔티티(120) 또한, 데이터베이스의 각 필드에 기 부여된 중요도 정보에 기초하여 앞서 선별된 관련된 필드의 전체 필드값에 대한 실시간 동기화 여부를 판단하고, 실시간 동기화가 필요하다고 판단되는 경우 플래그 신호를 생성함으로써, 제3 엔티티(130)와 실시간으로 동기화를 수행한다.The second entity 120 may be able to determine if a change occurs through synchronization of a particular field value in the database of the second entity 120 with another entity (hereinafter, illustrated by the first entity 110) Update the version information of the associated field. Then, the second entity 120 synchronizes with the third entity 130, which is a predetermined entity, such as the third entity 130, which is required to synchronize with the predetermined entity 110. Upon synchronization, Field to synchronize with the third entity 130. The third entity 130 receives this and updates the field value and version information of the corresponding field corresponding to the relevant field in the database. Similarly, the second entity 120 according to the present embodiment synchronizes only the entire field values of the field of the database in which the actual change occurred, instead of synchronizing all the data in the database in which the change occurred, when performing synchronization with another entity, There is an effect that the time can be reduced and the efficiency of synchronization can be increased. Meanwhile, the second entity 120 can perform the same function performed by the first entity 110 described above, and a detailed description thereof will be omitted. That is, the second entity 120 also determines whether or not to synchronize the entire field values of the related fields selected in advance based on the importance information preliminarily assigned to each field of the database, and if it is determined that real- Thereby synchronizing with the third entity 130 in real time.

제3 엔티티(130)는 기 설정된 제1 엔티티(110)와 동기화가 필요한 상대 엔티티로써 제2 엔티티(120)로부터 제1 엔티티(110)와의 동기화 수행을 통해 변경이 발생한 제2 엔티티(120)의 데이터베이스 내 특정 필드의 전체 필드값을 수신한다. 한편, 제3 엔티티(130)는 제2 엔티티(120)로부터 변경이 발생한 데이터베이스의 각 필드의 버전 정보를 수신하고, 수신된 각 필드의 버전 정보와 제3 엔티티(130)의 데이터베이스 중 변경이 발생한 제2 엔티티(120)의 데이터베이스와 동일한 데이터를 저장하고 있는 데이터베이스의 각 필드의 버전 정보를 비교하고, 비교결과에 근거하여 동기화되어야 할 필드를 선별한다. 이후, 선별된 필드의 전체 필드값을 앞서 수신한 변경이 발생한 특정 필드의 전체 필드값으로 변경하고, 기 설정된 버전 정보를 업데이트한다. 한편, 도 1에서는 제3 엔티티(130)가 제1 엔티티(110)와 동기화가 필요한 상태 엔티티로 구현된 것으로 예시하여 서버로 설정된 제2 엔티티(120)와의 동기화를 통해 최종적으로 제1 엔티티(110)의 데이터베이스를 동기화하는 것으로 명시하였지만 반드시 이에 한정되지는 않는다. 예컨대, 제3 엔티티(130) 또한, 제1 엔티티(110)가 수행하는 기능을 동일하게 수행할 수 있으며, 제3 엔티티(130)의 데이터베이스를 제2 엔티티(120)를 거쳐 또는 제1 엔티티(110)와의 직접적인 동기화 수행을 통해 제1 엔티티(110)와 동기화할 수 있다.The third entity 130 is a relative entity that needs synchronization with a predetermined first entity 110. The third entity 130 synchronizes with the first entity 110 from the second entity 120, And receives the entire field value of a specific field in the database. On the other hand, the third entity 130 receives the version information of each field of the database in which the change has occurred from the second entity 120, and updates the version information of each received field and the database of the third entity 130 Compares the version information of each field of the database storing the same data with the database of the second entity 120, and selects a field to be synchronized based on the comparison result. Thereafter, the entire field value of the selected field is changed to the total field value of the specific field in which the change is received, and the preset version information is updated. In FIG. 1, the third entity 130 is implemented as a state entity requiring synchronization with the first entity 110, and is finally synchronized with the second entity 120 set as the server. The first entity 110 ), But is not limited thereto. For example, the third entity 130 may perform the same functions performed by the first entity 110, and may perform the same function of the third entity 130 via the second entity 120 or the first entity 110 110 to synchronize with the first entity 110 through performing a direct synchronization with the first entity 110.

도 2는 본 실시예에 따른 제1 엔티티 및 제3 엔티티를 개략적으로 나타낸 블럭 구성도이다. 한편, 도 2에 도시된 제1 엔티티(110) 및 제3 엔티티(130)의 블럭 구성도는 제1 엔티티(110) 및 제3 엔티티(130)가 이동통신 단말기로 구현된 경우의 한 예이고, 제1 엔티티(110) 및 제3 엔티티(130)가 다른 장치로 구현되는 경우 도시한 것보다 많거나 적은 구성요소 또는 상이한 구성요소의 구성(Configuration)을 가질 수 있음을 인식하여야 한다.2 is a block diagram schematically showing a first entity and a third entity according to the present embodiment. The block diagram of the first entity 110 and the third entity 130 shown in FIG. 2 is an example of a case where the first entity 110 and the third entity 130 are implemented as mobile communication terminals , The first entity 110 and the third entity 130 may have more or fewer components or configurations of different components than those shown in the case where the third entity 130 is implemented in another device.

제1 엔티티(110) 및 제3 엔티티(130)(이하, 단말기로 통칭하여 설명하도록 한다.)는 메모리(202), 메모리 제어기(204), 프로세서(206), 주변 인터페이스(208), 통신 회로(212), 오디오 회로(214), 스피커(216), 마이크로폰(218), 입출력(I/O) 서브시스템(220), 터치 스크린(226), 기타 입력 또는 제어 장치(228) 및 외부 포트(248)를 포함한다. 이러한 구성요소는 하나 이상의 통신 버스 또는 신호선(210)을 통하여 통신한다. 도 2에 도시한 여러 구성요소는 하나 이상의 신호 처리 또는 애플리케이션 전용 집적 회로(Application Specific Integrated Circuit)를 포함하여, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.The first entity 110 and the third entity 130 (collectively referred to as terminals) may include a memory 202, a memory controller 204, a processor 206, a peripheral interface 208, An audio circuit 214, a speaker 216, a microphone 218, an input / output (I / O) subsystem 220, a touch screen 226, other input or control devices 228, 248). These components communicate through one or more communication buses or signal lines 210. The various components shown in FIG. 2 may be implemented in hardware, software, or a combination of hardware and software, including one or more signal processing or application specific integrated circuits.

메모리(202)는 고속 랜덤 액세스 메모리를 포함할 수 있다. 또한, 메모리(202)는 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 프로세서(206) 및 주변 인터페이스(208)와 같은 단말기의 다른 구성요소에 의한 메모리(202)로의 액세스는 메모리 제어기(204)에 의하여 제어될 수 있다.The memory 202 may comprise a high speed random access memory. The memory 202 may also include one or more magnetic disk storage devices, non-volatile memory such as flash memory devices, or other non-volatile semiconductor memory devices. Access to the memory 202 by other components of the terminal, such as the processor 206 and the peripheral interface 208, may be controlled by the memory controller 204.

주변 인터페이스(208)는 단말기의 입출력 주변 장치를 프로세서(206) 및 메모리(202)와 연결시킨다. 프로세서(206)는 다양한 소프트웨어 프로그램 또는 메모리(202)에 저장되어 있는 명령어 세트를 실행하여 단말기를 위한 다양한 기능을 수행하고 데이터를 처리한다.The peripheral interface 208 couples the input / output peripheral of the terminal with the processor 206 and the memory 202. The processor 206 executes various software programs or a set of instructions stored in the memory 202 to perform various functions and process data for the terminal.

일부 실시예에서, 주변 인터페이스(208), 프로세서(206) 및 메모리 제어기(204)는 칩(211)과 같은 단일 칩 상에서 구현될 수 있다.In some embodiments, peripheral interface 208, processor 206, and memory controller 204 may be implemented on a single chip, such as chip 211.

통신 회로(212)는 전자파를 송수신한다. 통신 회로(212)는 전기 신호를 전자파로 또는 그 반대로 변환하며 이 전자파를 통하여 통신 네트워크 및 다른 통신 장치와 통신한다. 통신 회로(212)는 월드 와이드 웹(World Wide Web, WWW)으로 불리는 인터넷, 인트라넷과 네트워크 또는, 셀룰러 전화 네트워크, 무선 LAN 또는 MAN(Metropolitan Area Network)와 같은 무선 네트워크 및 무선 통신에 의하여 다른 장치와 통신할 수 있다.The communication circuit 212 transmits and receives electromagnetic waves. The communication circuit 212 converts electrical signals to electromagnetic waves and vice versa and communicates with the communication network and other communication devices through the electromagnetic waves. The communication circuitry 212 may be implemented within a network, such as the Internet, an intranet and a network, referred to as the World Wide Web, or a wireless network, such as a cellular telephone network, a wireless LAN or a Metropolitan Area Network (MAN) Communication can be performed.

오디오 회로(214), 스피커(216) 및 마이크로폰(218)은 사용자와 단말기 사이에 오디오 인터페이스를 제공한다. 오디오 회로(214)는 주변 인터페이스(208)로부터 데이터를 수신하고 데이터를 전기 신호로 변환하며 전기 신호를 스피커(216)로 전송한다. 스피커(216)는 전기 신호를 사람이 들을 수 있는 음파로 변환한다. 오디오 회로(214)는 음파로부터 마이크로폰(116)에서 변환된 전기 신호를 수신한다. 오디오 회로(214)는 전기 신호를 오디오 데이터를 변환하고 이를 주변 인터페이스(208)로 전송하여 처리한다.Audio circuit 214, speaker 216 and microphone 218 provide an audio interface between the user and the terminal. The audio circuitry 214 receives data from the peripheral interface 208, converts the data into electrical signals, and transmits the electrical signals to the speaker 216. The speaker 216 converts the electrical signal into a sound wave that can be heard by a person. The audio circuit 214 receives the converted electrical signal from the microphone 116 from the sound wave. The audio circuit 214 converts the electrical signal into audio data and transmits it to the peripheral interface 208 for processing.

I/O 서브시스템(220)은 터치 스크린(226)과 기타 입력/제어 장치(228)와 같은 단말기의 입출력 주변장치와 주변 인터페이스(208) 사이에 인터페이스를 제공한다. I/O 서브시스템(220)은 터치 스크린 제어기(222)와 다른 입력 또는 제어 장치를 위한 하나 이상의 입력 제어기(224)를 포함한다. 하나 이상의 입력 제어기(224)는 전기 신호를 다른 입력 또는 제어 장치(228)와 송수신한다. 기타 입력/제어 장치(228)는 물리적인 버튼(예컨대, 푸쉬 버튼), 다이얼, 슬라이더 스위치, 스틱(Stick) 등을 포함할 수 있다.The I / O subsystem 220 provides an interface between the input / output peripherals of the terminal, such as the touch screen 226 and other input / control devices 228, and the peripheral interface 208. The I / O subsystem 220 includes one or more input controllers 224 for the touch screen controller 222 and other input or control devices. One or more input controllers 224 transmit and receive electrical signals to and / or from another input or control device 228. Other input / control devices 228 may include physical buttons (e.g., push buttons), dials, slider switches, sticks, and the like.

터치 스크린(226)은 장치와 사용자 사이에 출력 인터페이스 및 입력 인터페이스를 제공한다. 터치 스크린 제어기(222)는 전기 신호를 터치 스크린(226)과 송수신한다. 터치 스크린(226)은 사용자에게 시각적인 출력을 표시한다. 시각적 출력은 텍스트, 그래픽, 비디오와 이들의 조합을 포함할 수 있다.The touch screen 226 provides an output interface and an input interface between the device and the user. The touch screen controller 222 sends and receives electrical signals to and from the touch screen 226. The touch screen 226 displays a visual output to the user. The visual output may include text, graphics, video, and combinations thereof.

단말기는 다양한 구성요소에 전력을 공급하는 전원 시스템(230)을 또한 포함한다. 전원 시스템(230)은 전력 관리 시스템, 하나 이상의 전원(예컨대, 배터리, 교류 전원), 충전 시스템, 전력 오류 검출 회로, 전력 컨버터(Converter) 또는 인버터(Inverter), 전력 상태 표시기(예컨대, 발광 다이오드), 전력 생성, 전력 관리 및 전력 분배와 관련된 기타 구성요소를 포함할 수 있다.The terminal also includes a power system 230 that powers various components. The power system 230 may include a power management system, one or more power sources (e.g., battery, ac power), a charging system, a power failure detection circuit, a power converter or inverter, a power status indicator , Power generation, power management, and other components associated with power distribution.

일부 실시예에서, 소프트웨어 구성요소는 운영 체제(232), 통신 모듈(또는 명령어 세트)(234), 그래픽 모듈(또는 명령어 세트)(240), 텍스트 입력 모듈(242) 및 하나 이상의 애플리케이션(명령어 세트)(250)를 포함한다.In some embodiments, the software components include an operating system 232, a communication module (or instruction set) 234, a graphics module (or instruction set) 240, a text input module 242, and one or more applications ) ≪ / RTI >

운영 체제(232)(예컨대, 다윈(Darwin), RTXC, LINUX, UNIX, OS X, WINDOWS 또는 VxWorks와 같은 내장 운영체제)는 일반적인 시스템 태스크(Task)(예를 들어, 메모리 관리, 저장 장치 제어, 전력 관리 등)를 제어 및 관리하는 다양한 소프트웨어 구성요소 또는 장치를 포함하고, 다양한 하드웨어와 소프트웨어 구성요소 사이의 통신을 촉진시킨다.The operating system 232 (e.g., an embedded operating system such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS or VxWorks) provides general system tasks (e.g., memory management, storage control, Management, etc.), and facilitates communication between the various hardware and software components.

통신 모듈(234)은 하나 이상의 외부 포트(248)를 통하여 다른 장치와의 통신을 촉진시키고 통신 처리부(212)와 외부 포트(248)가 수신하는 데이터를 처리하기 위한 다양한 소프트웨어 구성요소를 또한 포함한다. 외부 포트(248)(예를 들어, USB, FIREWIRE 등)는 다른 장치로의 직접 연결이나 네트워크(예컨대, 인터넷, 무선 LAN 등)를 통한 간접 연결을 위해 사용된다.Communication module 234 also includes various software components for facilitating communication with other devices via one or more external ports 248 and for processing data received by communication processors 212 and external ports 248 . The external port 248 (e.g., USB, FIREWIRE, etc.) is used for direct connection to another device or for indirect connection via a network (e.g., Internet, wireless LAN, etc.).

그래픽 모듈(240)은 터치 스크린(226) 상에 그래픽을 제공하고 표시하기 위한 주지의 여러 소프트웨어 구성요소를 포함한다.Graphics module 240 includes a number of well known software components for providing and displaying graphics on touch screen 226.

텍스트 입력 모듈(234)은 (연락처, 이메일, IM, 블로깅, 브라우저 및 텍스트 입력을 필요로 하는 임의의 다른 애플리케이션 등의) 다양한 애플리케이션에 텍스트를 입력하기 위한 소프트 키보드를 제공한다.The text input module 234 provides a soft keyboard for entering text into various applications (such as contacts, email, IM, blogging, browsers, and any other applications that require text input).

하나 이상의 애플리케이션(250)은 브라우저, 어드레스 북(Address Book), 접촉 리스트, 이메일, 즉석 메시지, 워드 프로세싱(Word Processing), 키보드 에뮬레이션(Keyboard Emulation), 위젯(Widget), JAVA 인에이블 애플리케이션, 부호화, 디지털 저작권 관리, 음성 인식, 음성 복제, 위치 결정 기능(GPS에 의하여 제공되는 것과 같은), 음악 플레이어(MP3 또는 AAC 파일과 같은 하나 이상의 파일에 저장되어 기록된 음악을 재생하는)를 제한없이 포함하여 단말기에 설치된 임의의 애플리케이션을 포함할 수 있다.The one or more applications 250 may include a browser, an Address Book, a contact list, an email, an instant message, Word Processing, a Keyboard Emulation, a Widget, a JAVA enabled application, Including, without limitation, digital rights management, voice recognition, voice reproduction, positioning functions (such as those provided by GPS), music players (playing music recorded in one or more files such as MP3 or AAC files) And may include any application installed in the terminal.

애플리케이션(250)은 데이터베이스(251), 필드 관리부(252) 및 동기화 수행부(253)를 포함한다.The application 250 includes a database 251, a field management unit 252, and a synchronization performing unit 253.

데이터베이스(251)는 복수의 필드를 가지며, 각 필드별로 버전 정보를 갖는 구조로 이루어지며, 해당 구조에 따라 단말기에 설치된 애플리케이션의 데이터를 매칭시켜 저장한다. 이러한, 데이터베이스(251)는 복수 개가 구비되어 각각 특정 애플리케이션의 데이터만을 저장하고 있을 수도 있으며, 하나로 구현되어 모든 애플리케이션의 데이터를 구별하여 저장하고 있을 수도 있다. 예컨대, 본 실시예에 따른 동기화 애플리케이션(112)이 특정 애플리케이션의 기능 모듈에 포함되어 있는 경우는 특정 애플리케이션의 데이터만을 저장하여 관리하며, 별도로 구현되어 모든 애플리케이션의 데이터를 각각 구별하여 저장하고 있을 수도 있다. 이하, 주소록 애플리케이션의 데이터베이스를 예시하여 설명하자면, 데이터베이스는 각각 이름, 주소, 연락처, 사진, 메일 주소 등의 필드명을 가진 복수의 필드를 가지며, 각 필드의 필드값으로 사용자의 정보를 매칭시켜 저장하고 있다. 이에 대한 보다 자세한 예시는 도 5에서 설명하도록 한다.The database 251 has a plurality of fields, and has a structure having version information for each field, and matches and stores data of an application installed in the terminal according to the structure. The plurality of databases 251 may store only data of a specific application, or may store data of all applications separately. For example, when the synchronization application 112 according to the present embodiment is included in a function module of a specific application, only the data of a specific application is stored and managed, and data of all applications may be separately stored and stored . Hereinafter, the database of the address book application will be described as an example. The database has a plurality of fields each having a field name such as a name, an address, a contact, a photograph, and an e-mail address. . A more detailed example of this will be described in FIG.

필드 관리부(252)는 데이터베이스(251) 예컨대, 데이터베이스(251)의 각 필드의 필드값 및 버전 정보를 관리하고, 특정 필드값에 변경이 발생하는 경우 관련된 필드의 버전 정보를 업데이트한다. 즉, 필드 관리부(252)는 데이터베이스(251)의 특정 필드값이 사용자에 의해 변경되거나 또는 다른 엔티티와의 동기화를 통해 변경되는 경우 관련된 필드에 기 설정된 버전 정보를 업데이트한다. 이하, 주소록 애플리케이션의 데이터베이스를 예시하여 설명하자면, 필드 관리부(252)는 사용자 B에 대한 전화번호가 변경된 경우, 관련된 필드 예컨대, 데이터베이스의 각 필드 중 전화번호 필드에 기 설정된 버전 정보를 +1 시킨다.The field management unit 252 manages field values and version information of each field of the database 251, for example, the database 251, and updates the version information of a related field when a change occurs in a specific field value. That is, the field management unit 252 updates predetermined version information in the related field when the specific field value of the database 251 is changed by the user or through synchronization with another entity. Hereinafter, the database of the address book application will be described as an example. If the telephone number of the user B is changed, the field management unit 252 increments the version information preset in the telephone number field of the related field, for example, the database.

한편, 필드 관리부(252)는 다른 엔티티와의 동기화를 통해 다른 엔티티로부터 변경이 발생한 데이터베이스의 특정 필드의 전체 필드값을 수신하는 경우, 데이터베이스(251) 내 특정 필드와 대응되는 대응 필드의 필드값 및 버전 정보를 업데이트한다.On the other hand, when the field management unit 252 receives the entire field values of the specific fields of the database in which the change has occurred from other entities through synchronization with other entities, the field management unit 252 compares the field values of the corresponding fields corresponding to specific fields in the database 251, Update the version information.

또한, 필드 관리부(252)는 데이터베이스(251)의 각 필드에 기 부여된 중요도 정보에 기초하여 관련된 필드의 전체 필드값에 대한 실시간 동기화 여부를 판단하고, 실시간 동기화가 필요하다고 판단되는 경우 플래그 신호를 생성한다. 한편, 필드 관리부(252)는 관련된 필드의 전체 필드값에 대한 실시간 동기화가 불필요하다고 판단되는 경우, 플래그 신호를 미생성함으로써 이후, 동기화 수행부(253)가 플래그 신호의 생성 여부에 따라 실시간 또는 비실시간으로 기 설정된 다른 엔티티와 동기화를 수행하도록 동작시킨다.Also, the field management unit 252 determines whether the entire field values of the related fields are synchronized in real time based on the importance information pre-assigned to each field of the database 251. If it is determined that real-time synchronization is necessary, . On the other hand, if it is determined that the real-time synchronization of all the field values of the related field is unnecessary, the field management unit 252 generates a flag signal, and then the synchronization management unit 252 determines whether real- And to perform synchronization with another entity set in real time.

동기화 수행부(253)는 각 필드의 버전 정보를 기초로, 관련된 필드의 전체 필드값만을 기 설정된 다른 엔티티와 동기화한다. 한편, 동기화 수행부(253)는 동기화 수행 시 통신 모듈(234)을 이용하여 관련된 필드의 전체 필드값을 기 설정된 다른 엔티티로 업데이트하며, 이때, 기 설정된 다른 엔티티는 서버일 수도 있으며, 동기화가 필요한 상대 엔티티일 수도 있다. 한편, 동기화 수행부(253)는 다른 엔티티와의 동기화 수행 과정에서 다른 엔티티로부터 다른 엔티티의 데이터베이스 예컨대, 업데이트가 발생한 자신의 데이터베이스(251)와 동일한 데이터를 저장하고 있는 데이터베이스의 각 필드의 버전 정보를 수신한다. 이후, 동기화 수행부(253)는 데이터베이스(251)의 각 필드의 버전 정보와 다른 엔티티의 데이터베이스의 각 필드의 버전 정보를 비교한 비교결과에 근거하여 관련된 필드를 선별하고, 관련된 필드의 전체 필드값을 다른 엔티티와 동기화한다.The synchronization performing unit 253 synchronizes only the entire field values of the related field with other predetermined entities based on the version information of each field. Meanwhile, the synchronization performing unit 253 updates the entire field value of a related field with another predetermined entity by using the communication module 234 when performing the synchronization. At this time, another predetermined entity may be a server, It may be a relative entity. Meanwhile, in synchronization with other entities, the synchronization performing unit 253 obtains the version information of each field of the database storing the same data as the database of another entity from another entity, for example, the database 251 of the other entity . Then, the synchronization performing unit 253 selects the related field based on the comparison result of comparing the version information of each field of the database 251 with the version information of each field of the database of another entity, To another entity.

한편, 동기화 수행부(253)는 필드 관리부(252)로부터 생성된 플래그 신호가 인지되는 경우 다른 엔티티와 실시간으로 동기화를 수행하며, 플래그 신호가 인지되지 않은 경우에는 기 설정된 조건에 따라 다른 엔티티와 비실시간으로 동기화를 수행한다.Meanwhile, when the flag signal generated from the field management unit 252 is recognized, the synchronization performing unit 253 synchronizes with other entities in real time. If the flag signal is not recognized, the synchronization performing unit 253 synchronizes with other entities Perform synchronization in real time.

도 3은 본 실시예에 따른 제2 엔티티를 개략적으로 나타낸 블럭 구성도이다. 한편, 도 3에 도시된 제2 엔티티(120)의 블럭 구성도는 제2 엔티티(120)가 서버로 구현된 경우의 한 예이다. 즉, 제2 엔티티(120)가 다른 장치 예컨대, 이동통신 단말기로 구현되는 경우 도시한 것보다 많거나 적은 구성요소 또는 상이한 구성요소의 구성을 가질 수 있음을 인식하여야 한다. 3 is a block diagram schematically showing a second entity according to the present embodiment. Meanwhile, the block diagram of the second entity 120 shown in FIG. 3 is an example of a case where the second entity 120 is implemented as a server. That is, it should be appreciated that the second entity 120 may have more or fewer components or different component configurations than those shown when implemented in other devices, such as mobile communication terminals.

도 3의 제2 엔티티(120)는 실질적으로 동기화 애플리케이션(112)을 탑재한 서버의 내부 도면을 나타내고 있다. 본 실시예에 따른 제2 엔티티(120)는 데이터베이스(310), 필드 관리부(320) 및 동기화 수행부(330)를 포함한다. 한편, 제2 엔티티(120)는 다른 엔티티와의 통신을 위한 통신부(미도시)를 추가로 구비할 수 있다.The second entity 120 of FIG. 3 shows an internal view of a server with substantially the synchronization application 112 mounted thereon. The second entity 120 according to the present embodiment includes a database 310, a field management unit 320, and a synchronization performing unit 330. Meanwhile, the second entity 120 may further include a communication unit (not shown) for communication with another entity.

데이터베이스(310)는 복수의 필드를 가지며, 각 필드별로 버전 정보를 갖는 구조로 이루어지며, 해당 구조에 따라 애플리케이션의 데이터를 매칭시켜 저장한다. 한편, 본 실시예에 따른 제2 엔티티(120)의 데이터베이스(310)는 다른 엔티티 예컨대, 제1 엔티티(110) 및 제3 엔티티(130)에 탑재된 특정 애플리케이션에 대한 데이터만을 저장하고 있을 수도 있으며, 모든 애플리케이션에 대한 데이터를 각각 구별하여 저장하고 있을 수도 있다. 이러한, 데이터베이스(310)는 도 2에 명시된 데이터베이스(251)와 동일한 구조 및 동일한 기능을 수행하며 이에 자세한 설명은 생략하도록 한다.The database 310 has a plurality of fields, and has a structure having version information for each field. The database 310 stores matching data of the application according to the structure. Meanwhile, the database 310 of the second entity 120 according to the present embodiment may store only data for specific applications installed in other entities such as the first entity 110 and the third entity 130 , And data for all applications may be separately stored. The database 310 has the same structure and function as the database 251 shown in FIG. 2, and a detailed description thereof will be omitted.

필드 관리부(320)는 데이터베이스(310)의 특정 필드값이 다른 엔티티(제1 엔티티(110) 또는 제3 엔티티(130))와의 동기화를 통해 변경이 발생하는 경우, 관련된 필드의 버전 정보를 업데이트한다. 한편, 필드 관리부(320)는 도 2에 명시된 필드 관리부(252)가 수행하는 기능을 동일하게 수행할 수 있으며, 이에 자세한 설명은 생략하도록 한다.The field management unit 320 updates the version information of the related field when the specific field value of the database 310 is changed through synchronization with another entity (the first entity 110 or the third entity 130) . Meanwhile, the field management unit 320 may perform the same functions as the field management unit 252 shown in FIG. 2, and a detailed description thereof will be omitted.

동기화 수행부(330)는 기 설정된 제2 엔티티(120)와 동기화가 필요한 상대 엔티티 예컨대, 제1 엔티티(110) 또는 제3 엔티티(130)와의 동기화를 수행하며, 동기화 수행 시 각 필드의 버전 정보를 기초로, 데이터베이스(310) 내 변경이 발생한 필드의 전체 필드값만을 상대 엔티티로 동기화시킨다. 한편, 동기화 수행부(330)는 도 2에 명시된 동기화 수행부(253)가 수행하는 기능을 동일하게 수행할 수 있으며, 이에 자세한 설명은 생략하도록 한다.The synchronization performing unit 330 performs synchronization with a relative entity such as the first entity 110 or the third entity 130 that needs to be synchronized with the predetermined second entity 120. When synchronization is performed, Only the entire field value of the field in which the change occurred in the database 310 is synchronized to the partner entity. Meanwhile, the synchronization performing unit 330 may perform the same functions performed by the synchronization performing unit 253 shown in FIG. 2, and a detailed description thereof will be omitted.

도 4는 본 실시예에 따른 동기화 방법을 설명하기 위한 순서도이다. 한편, 본 실시예에 따른 동기화 방법은 복수의 필드를 가지며 각 필드별로 버전 정보를 갖는 데이터베이스를 포함한 모든 엔티티에 의해 실행될 수 있다. 이에, 이하 명시되는 엔티티는 서버(예컨대, 제2 엔티티)일 수도 있으며 단말장치(예컨대, 제1 엔티티 또는 제3 엔티티)일 수도 있다.4 is a flowchart illustrating a synchronization method according to an embodiment of the present invention. Meanwhile, the synchronization method according to the present embodiment can be executed by all entities including a database having a plurality of fields and version information for each field. Thus, the entity specified below may be a server (e.g., a second entity) or a terminal device (e.g., a first entity or a third entity).

엔티티는 각 엔티티가 관리하는 애플리케이션의 데이터베이스에 저장된 데이터 예컨대, 특정 필드값에 변경이 발생하는 경우, 관련된 필드(즉, 변경이 발생한 특정 필드값을 하위 정보로서 포함하고 있는 필드)의 버전 정보를 업데이트한다(S410). 한편, 데이터베이스는 복수의 필드를 가지며, 각 필드별로 버전 정보를 갖는 구조로 이루어지며, 해당 구조에 따라 애플리케이션의 데이터를 매칭시켜 저장한다. 또한, 특정 필드값에 변경이 발생하는 경우는 본 실시예에 따른 엔티티가 단말장치인 경우에는 사용자에 의해 입력된 수정정보에 의해 수정이 발생한 경우이며, 본 실시예에 따른 엔티티가 서버인 경우에는 다른 엔티티와의 동기화에 의해 변경이 발생한 경우이다. 단계 S410에서 엔티티는 관련된 필드에 기 설정된 버전 정보를 +1 시킴으로써 관련된 필드의 버전 정보를 업데이트한다.The entity updates data stored in the database of the application managed by each entity, for example, when a change occurs in a specific field value, the version information of the related field (that is, the field containing the specific field value in which the change occurs as the sub information) (S410). On the other hand, the database has a plurality of fields, and has a structure having version information for each field, and stores and stores application data according to the structure. When a change occurs in a specific field value, in the case where the entity according to the present embodiment is a terminal apparatus, the modification is performed by the modification information input by the user. If the entity according to this embodiment is a server This is the case when a change occurs due to synchronization with another entity. In step S410, the entity updates the version information of the related field by incrementing the version information preset in the related field.

엔티티는 각 필드에 기 부여된 중요도 정보에 기초하여 관련된 필드의 전체 필드값에 대한 중요도 여부를 판단하고(S420), 판단결과에 따라 관련된 필드의 전체 필드값이 주요 정보라고 판단되는 경우, 플래그 신호를 생성한다(S430). 이때, 플래그 신호는 실시간 동기화를 수행하라는 약속된 신호를 의미한다.If it is determined that the entire field value of the related field is the main information according to the determination result, the entity determines whether the flag signal (S430). At this time, the flag signal means a promised signal to perform real-time synchronization.

엔티티는 플래그 신호가 인지되는 경우, 각 필드의 버전 정보를 기초로 관련된 필드의 전체 필드값을 실시간으로 다른 엔티티와 동기화한다(S440). 한편, 단계 S440에서 엔티티는 다른 엔티티 예컨대, 기 설정된 엔티티와 동기화가 필요한 상대 엔티티로부터 상대 엔티티의 데이터베이스의 각 필드의 버전 정보를 수신한다. 이후, 엔티티는 엔티티의 데이터베이스의 각 필드의 버전 정보와 상대 엔티티의 데이터베이스의 각 필드의 버전 정보를 비교한 비교결과에 근거하여 관련된 필드를 선별하고, 관련된 필드의 전체 필드값을 상대 엔티티에 실시간으로 동기화한다. 이때, 상대 엔티티는 본 실시예에 따른 엔티티가 단말장치인 경우에는 서버를 의미하며, 엔티티가 서버인 경우에는 동기화 필요 단말장치를 의미한다.If the flag signal is recognized, the entity synchronizes the entire field value of the related field with another entity in real time based on the version information of each field (S440). On the other hand, in step S440, the entity receives the version information of each field of the database of the partner entity from another entity, for example, the partner entity that needs synchronization with the preset entity. Then, the entity selects relevant fields based on the comparison result of comparing the version information of each field of the database of the entity with the version information of each field of the database of the partner entity, and stores the entire field value of the related field in real time Synchronize. In this case, the partner entity means a server when the entity according to the present embodiment is a terminal device, and means a synchronization required terminal device when the entity is a server.

엔티티는 단계 S420의 판단결과에 근거하여 관련된 필드의 전체 필드값이 주요 정보가 아니라고 판단되는 경우, 관련된 필드의 전체 필드값을 비실시간으로 다른 엔티티와 동기화한다(S450). 한편, 단계 S450에서 엔티티는 기 설정된 조건에 따라 관련된 필드의 전체 필드값을 상대 엔티티와 동기화한다. 이때, 기 설정된 조건은 엔티티와 다른 엔티티를 연결하는 네트워크의 상태가 될 수도 있으며, 기 설정된 다른 엔티티와의 동기화 주기일 수도 있다.If it is determined that the total field value of the related field is not the main information based on the determination result of step S420, the entity synchronizes the entire field value of the related field with another entity in non-real time (S450). Meanwhile, in step S450, the entity synchronizes the entire field value of the related field with the partner entity according to a predetermined condition. At this time, the predetermined condition may be a state of a network connecting an entity and another entity, or may be a synchronization cycle with another predetermined entity.

도 5는 본 실시예에 따른 데이터베이스를 예시한 예시도이다. 이러한, 데이터베이스는 서버(예컨대, 제2 엔티티)에 구비된 데이터베이스일 수도 있으며, 단말장치(예컨대, 제1 엔티티 또는 제3 엔티티)에 구비된 데이터베이스일 수도 있다. 한편, 도 5에서는 본 실시예에 따른 데이터베이스가 주소록 애플리케이션의 데이터베이스인 경우를 예시하였다.5 is an exemplary diagram illustrating a database according to the present embodiment. The database may be a database provided in a server (e.g., a second entity) or a database provided in a terminal device (e.g., a first entity or a third entity). Meanwhile, FIG. 5 illustrates a case where the database according to the present embodiment is a database of an address book application.

도 5에 도시하듯이, 본 실시예에 따른 데이터베이스는 복수의 필드를 가지며, 각 필드별로 버전 정보를 갖는 구조로 이루어지며, 해당 구조에 따라 애플리케이션의 데이터를 매칭시켜 저장한다. 이러한, 데이터베이스는 복수 개가 구비되어 각각 특정 애플리케이션의 데이터만을 저장하고 있을 수도 있으며, 하나로 구현되어 모든 애플리케이션의 데이터를 구별하여 저장하고 있을 수도 있다.As shown in FIG. 5, the database according to the present embodiment has a plurality of fields, and has a structure having version information for each field, and stores and stores application data according to the structure. A plurality of databases may be provided and only data of a specific application may be stored, or data of all applications may be separately stored.

이하, 도 5에 도시된 주소록 애플리케이션의 데이터베이스를 예시하여 설명하자면, 데이터베이스는 각각 이름, 전화번호, 키번호, 주소, 이메일, 별명 등의 필드명을 가진 복수의 필드를 가지며, 각 필드의 필드값으로 사용자의 정보를 매칭시켜 저장하고 있다. 또한, 데이터베이스는 각 필드별로 버전 정보가 부여되어 있다. 한편, 데이터베이스 내 특정 필드값 예컨대, 사용자 B의 전화번호에 변경이 발생하는 경우, 관련된 필드 예컨대, 전화번호 필드의 버전 정보가 업데이트된다. 즉, 전화번호 필드에 기 설정된 버전 정보 1.00이 1.01로 업데이트된다. 이를 통해, 본 실시예에 따른 엔티티는 다른 엔티티와의 동기화 시 각 필드의 버전 정보를 기초로 관련된 필드의 전체 필드값을 다른 엔티티와 동기화할 수 있다. 예컨대, 도 5의 경우에는 전화번호 필드의 전체 필드값이 다른 엔티티로 동기화된다. 한편, 데이터베이스의 각 필드에는 각 필드에 포함된 필드값의 중요도 여부에 따라 중요도 정보가 기 부여되어 있으며, 엔티티는 중요도 정보에 기초하여 전화번호 필드의 전체 필드값을 실시간 또는 비실시간으로 다른 엔티티와 동기화한다.Hereinafter, the database of the address book application shown in FIG. 5 will be exemplified. The database has a plurality of fields each having a field name such as a name, a telephone number, a key number, an address, an e-mail, And stores the matching information of the user. In addition, the database is provided with version information for each field. On the other hand, when a change occurs in a specific field value in the database, for example, the telephone number of the user B, the version information of the related field, for example, the telephone number field, is updated. That is, the version information 1.00 preset in the telephone number field is updated to 1.01. Accordingly, the entity according to the present embodiment can synchronize the entire field value of the related field with another entity based on the version information of each field in synchronization with another entity. For example, in the case of FIG. 5, the entire field value of the telephone number field is synchronized to another entity. On the other hand, the importance information is assigned to each field of the database according to whether the field value included in each field is important. The entity can assign the entire field value of the telephone number field to another entity in real time or non- Synchronize.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present embodiment, and various modifications and changes may be made to those skilled in the art without departing from the essential characteristics of the embodiments. Therefore, the present embodiments are to be construed as illustrative rather than restrictive, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of the present embodiment should be construed according to the following claims, and all technical ideas within the scope of equivalents thereof should be construed as being included in the scope of the present invention.

110: 제1 엔티티 112: 동기화 애플리케이션
120: 제2 엔티티 130: 제3 엔티티
251: 데이터베이스 252: 필드 관리부
253: 동기화 수행부
110: first entity 112: synchronization application
120: second entity 130: third entity
251: Database 252: Field Manager
253: synchronization performing unit

Claims (8)

복수의 필드를 갖는 데이터베이스에 저장된 데이터를 제2 엔티티와 동기화하는 제1 엔티티에 있어서,
상기 데이터베이스의 각 필드의 버전 정보를 관리하고, 특정 필드값에 변경이 발생하는 경우 관련된 필드의 버전 정보를 업데이트하는 필드 관리부; 및
상기 각 필드의 버전 정보를 기초로, 상기 관련된 필드의 전체 필드값을 상기 제2 엔티티와 동기화하는 동기화 수행부
를 포함하는 것을 특징으로 하는 제1 엔티티.
CLAIMS What is claimed is: 1. A first entity for synchronizing data stored in a database having a plurality of fields with a second entity,
A field manager for managing version information of each field of the database and updating version information of a related field when a change occurs in a specific field value; And
Based on the version information of each of the fields, synchronizes the entire field value of the related field with the second entity,
And a second entity.
제 1항에 있어서,
상기 동기화 수행부는,
상기 각 필드의 버전 정보와 상기 제2 엔티티의 데이터베이스의 각 필드의 버전 정보를 비교하고, 비교결과에 근거하여 상기 관련된 필드를 선별하는 것을 특징으로 하는 제1 엔티티.
The method according to claim 1,
Wherein the synchronization performing unit comprises:
Compares version information of each field with version information of each field of the database of the second entity, and selects the related field based on the comparison result.
제 1항에 있어서,
상기 필드 관리부는 상기 각 필드에 기 부여된 중요도 정보에 기초하여 상기 관련된 필드의 전체 필드값의 실시간 동기화 여부를 판단하고, 실시간 동기화가 필요하다고 판단되는 경우 플래그 신호를 생성하며,
상기 동기화 수행부는 상기 플래그 신호가 인지되는 경우 상기 제2 엔티티와 실시간 동기화를 수행하는 것을 특징으로 하는 제1 엔티티.
The method according to claim 1,
Wherein the field management unit determines whether to synchronize all the field values of the related field in real time based on the importance information assigned to each field, generates a flag signal when it is determined that real-time synchronization is necessary,
Wherein the synchronization performing unit performs real-time synchronization with the second entity when the flag signal is recognized.
제 3항에 있어서,
상기 동기화 수행부는,
상기 플래그 신호가 미생성시, 기 설정된 조건에 따라 상기 제2 엔티티와 동기화를 수행하는 것을 특징으로 하는 제1 엔티티.
The method of claim 3,
Wherein the synchronization performing unit comprises:
And when the flag signal is not generated, synchronizes with the second entity according to a predetermined condition.
제 1항에 있어서,
상기 데이터는 주소록 정보인 것을 특징으로 하는 제1 엔티티.
The method according to claim 1,
Wherein the data is address book information.
제 1항에 있어서,
상기 제1 엔티티는 전자 장치이고, 상기 제2 엔티티는 서버 장치인 것을 특징으로 하는 제1 엔티티.
The method according to claim 1,
Wherein the first entity is an electronic device and the second entity is a server device.
제 1항에 있어서,
상기 제1 엔티티는 서버 장치이고, 상기 제2 엔티티는 전자 장치인 것을 특징으로 하는 제1 엔티티.
The method according to claim 1,
Wherein the first entity is a server device and the second entity is an electronic device.
명령어들을 포함하는 하나 이상의 프로그램을 저장하는 비-임시적인 컴퓨터 판독가능 저장 매체(non-transitory computer readable storage medium)로서,
상기 명령어들은, 복수의 필드를 가지며 각 필드별로 버전 정보를 갖는 데이터베이스가 포함된 제1 엔티티에 의해 실행될 때, 상기 제1 엔티티가,
특정 필드값에 변경이 발생하는 경우 관련된 필드의 버전 정보를 업데이트하고,
각 필드의 버전 정보를 기초로, 상기 관련된 필드의 전체 필드값을 제2 엔티티와 동기화하는 컴퓨터 판독 가능 저장 매체.
A non-transitory computer readable storage medium storing one or more programs including instructions,
Wherein the instructions, when executed by a first entity having a plurality of fields and comprising a database having version information for each field,
When a change occurs in a specific field value, the version information of the related field is updated,
And synchronize the full field value of the associated field with a second entity based on version information of each field.
KR1020140018744A 2014-02-18 2014-02-18 Method And Apparatus for Data Synchronization Active KR101524668B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140018744A KR101524668B1 (en) 2014-02-18 2014-02-18 Method And Apparatus for Data Synchronization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140018744A KR101524668B1 (en) 2014-02-18 2014-02-18 Method And Apparatus for Data Synchronization

Publications (1)

Publication Number Publication Date
KR101524668B1 true KR101524668B1 (en) 2015-06-01

Family

ID=53490750

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140018744A Active KR101524668B1 (en) 2014-02-18 2014-02-18 Method And Apparatus for Data Synchronization

Country Status (1)

Country Link
KR (1) KR101524668B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050059871A (en) * 2003-12-15 2005-06-21 한국전자통신연구원 Data synchronization method between terminals with a server
US20070180075A1 (en) * 2002-04-25 2007-08-02 Doug Chasman System and method for synchronization of version annotated objects
KR20090050627A (en) * 2007-11-16 2009-05-20 삼성전자주식회사 Security system and method in network
KR20110070012A (en) * 2009-12-18 2011-06-24 주식회사 안철수연구소 Signature database update system and method and database update device of client terminal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180075A1 (en) * 2002-04-25 2007-08-02 Doug Chasman System and method for synchronization of version annotated objects
KR20050059871A (en) * 2003-12-15 2005-06-21 한국전자통신연구원 Data synchronization method between terminals with a server
KR20090050627A (en) * 2007-11-16 2009-05-20 삼성전자주식회사 Security system and method in network
KR20110070012A (en) * 2009-12-18 2011-06-24 주식회사 안철수연구소 Signature database update system and method and database update device of client terminal

Similar Documents

Publication Publication Date Title
US10631361B2 (en) Method and apparatus for providing user with information received by electronic device
RU2689203C2 (en) Flexible circuit for adjusting language model
WO2015169188A1 (en) Method, apparatus, and system for loading webpage application program
CN108536416A (en) It handles electronic equipment input by user and handles method input by user
CN104869305B (en) Method and apparatus for processing image data
CN107924288A (en) Electronic equipment and its method for carrying out perform function using speech recognition
CN112955856A (en) Electronic device displaying a list of executable applications on a split screen and method of operating the same
CN105740263B (en) Page display method and device
EP3561643A1 (en) Method and terminal for implementing voice control
US10573317B2 (en) Speech recognition method and device
US20170286058A1 (en) Multimedia data processing method of electronic device and electronic device thereof
CN103702297A (en) Short message enhancement method, device and system
KR20150051816A (en) Method for operating message application and electronic device implementing the same
US20210026905A1 (en) Search Method, and Apparatus
KR102157858B1 (en) Apparatas and method for reducing a power consumption in an electronic device
CN108475272A (en) Content-aware device and method of operation thereof
CN103631580B (en) Method and device for generating theme icon
CN110837557B (en) Abstract generation method, device, equipment and medium
KR20150066876A (en) Method for controlling an user interface and an electronic device
CN108090233A (en) The autonomous management devices and methods therefor of application program
CN103607431B (en) Mobile terminal resource processing method, device and equipment
US20150356112A1 (en) Method and electronic device for processing data
CN105830421A (en) Electronic device and method of operation thereof
US20150112997A1 (en) Method for content control and electronic device thereof
KR101524668B1 (en) Method And Apparatus for Data Synchronization

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20140218

PA0201 Request for examination
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20150521

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20150526

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20150526

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20190502

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20190502

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20200330

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20210401

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20240321

Start annual number: 10

End annual number: 10

PR1001 Payment of annual fee

Payment date: 20250319

Start annual number: 11

End annual number: 11