KR101082850B1 - Active Sync-based Mobile Device for data Synchronizing and Method at the same - Google Patents

Active Sync-based Mobile Device for data Synchronizing and Method at the same Download PDF

Info

Publication number
KR101082850B1
KR101082850B1 KR1020100016776A KR20100016776A KR101082850B1 KR 101082850 B1 KR101082850 B1 KR 101082850B1 KR 1020100016776 A KR1020100016776 A KR 1020100016776A KR 20100016776 A KR20100016776 A KR 20100016776A KR 101082850 B1 KR101082850 B1 KR 101082850B1
Authority
KR
South Korea
Prior art keywords
data
synchronization
luid
manager
hash value
Prior art date
Application number
KR1020100016776A
Other languages
Korean (ko)
Other versions
KR20110097117A (en
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 KR1020100016776A priority Critical patent/KR101082850B1/en
Publication of KR20110097117A publication Critical patent/KR20110097117A/en
Application granted granted Critical
Publication of KR101082850B1 publication Critical patent/KR101082850B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명에 따르는 서버와의 자료 동기화를 위한 모바일 단말기는, 상기 자료 동기화 서버와의 통신을 담당하는 프로토콜 매니저; 응용 프로그램에 의한 변경된 데이터에 대한 LUID 및 데이터를 제공받아 데이터를 해쉬값으로 변환하고, 상기 LUID에 대응되는 해쉬값을 체인지 로그 테이블로부터 제공받아 비교하고, 두 해쉬값이 상이하면 동기화 명령 및 LUID 및 해쉬값으로 구성되는 동기화 메시지를 상기 프로토콜 매니저를 통해 상기 자료 동기화 서버로 전송하고, 상기 자료 동기화 서버로부터 동기화 메시지가 수신되면, 그 동기화 메시지로부터 동기화 명령 및 LUID 및 데이터를 분석해내고, 상기 데이터를 해쉬값으로 변환한 후에, LUID 및 해쉬값을 상기 체인지 로그 테이블에 반영토록 출력하고, 상기 동기화 명령 및 LUID 및 데이터를 상기 응용 프로그램에 반영하는 동기화 매니저; 상기 체인지 로그 테이블로부터 LUID 및 해쉬값을 독출하여 상기 동기화 매니저에 제공하거나, 상기 LUID 및 해쉬값을 제공받아 상기 체인지 로그 테이블에 등록하는 데이터 스토어 매니저; 상기 체인지 로그 테이블 및 상기 응용 프로그램의 데이터 저장영역을 제공하는 데이터스토어; 를 구비함을 특징으로 한다. A mobile terminal for data synchronization with a server according to the present invention comprises: a protocol manager in charge of communication with the data synchronization server; Receives LUID and data for changed data by application program and converts data into hash value, compares hash value corresponding to the LUID from change log table, and if the two hash values are different, synchronize command and LUID and A synchronization message comprising a hash value is transmitted to the data synchronization server through the protocol manager. When a synchronization message is received from the data synchronization server, a synchronization command and LUID and data are analyzed from the synchronization message, and the data is hashed. A synchronization manager for converting the LUID and the hash value into the change log table after the conversion to the value, and reflecting the synchronization command and the LUID and data to the application program; A data store manager that reads an LUID and a hash value from the change log table and provides the LUID and a hash value to the synchronization manager, or receives the LUID and a hash value and registers the LUID and a hash value in the change log table; A datastore providing the change log table and a data storage area of the application program; Characterized in having a.

Description

자료 동기화를 위한 모바일 단말기 및 그 방법 {Active Sync-based Mobile Device for data Synchronizing and Method at the same}Mobile terminal for data synchronization and method thereof {Active Sync-based Mobile Device for data Synchronizing and Method at the same}

본 발명은 모바일 단말기를 위한 동기화 기술에 관한 것으로, 더욱 상세하게는 OMA(Open Mobile Alliance)에서 제시한 표준 동기화 방식인 SyncML 자료 동기화 방식을 이용하여, 각각의 단말기 회사에서 제공되는 자료 동기화 방식을 그대로 사용하면서 상호간에 동기화가 가능하도록 하는 모바일 단말기 및 방법에 관한 것이다.The present invention relates to a synchronization technology for a mobile terminal, and more particularly, by using the SyncML data synchronization method, which is a standard synchronization method proposed by the Open Mobile Alliance (OMA), the data synchronization method provided by each terminal company is used as it is. The present invention relates to a mobile terminal and a method for enabling mutual synchronization with each other.

최근 이동 컴퓨팅 기술과 하드웨어 기술의 발달로 인해 모바일 단말기가 매우 급속하게 보급되고 있다. 상기 모바일 단말기의 사용자가 시간이나 장소에 구애받지 않고 원하는 정보를 이용하기 위해서는 중앙 통합 서버의 자료와 모바일 단말기의 자료를 동기화시키는 자료 동기화(Data Synchronization)가 요구된다. Recently, due to the development of mobile computing technology and hardware technology, mobile terminals are spreading very rapidly. In order for a user of the mobile terminal to use desired information regardless of time or place, data synchronization is required to synchronize the data of the central integrated server and the data of the mobile terminal.

SyncML은 각 제조회사의 단말기가 가지고 있는 서로 다른 플랫폼, 통신 프로토콜, 자료 형태, 응용 서비스에 이용될 수 있는 자료 동기화 방식과 장치 관리에 대한 개방형 표준 인터페이스 개발을 목적으로 제안되었다. 또한 상기 SyncML은 개방형 표준과 다수의 구현 방식을 따르는 것을 채택함으로써 자료 동기화에 대한 사실상의 표준이 된다.SyncML is proposed to develop an open standard interface for data synchronization and device management that can be used for different platforms, communication protocols, data types, and application services of each manufacturer's terminal. The SyncML also becomes an de facto standard for data synchronization by adopting open standards and following a number of implementations.

상기 SyncML은 모바일 단말기와 서버간의 원격 동기화를 목표로 설계되었으나, 로컬 동기화와 유선 네트워크로 연결된 장치들 간의 동기화에도 사용될 수 있다. 상기 SyncML을 기반으로 하는 클라이언트와 서버간에 동기화가 수행되는 동안, 동기화 대상이 되는 객체는 논리적으로 패키지를 교환한다.The SyncML is designed for remote synchronization between a mobile terminal and a server, but may also be used for local synchronization and synchronization between devices connected to a wired network. While synchronization is performed between the client and server based on the SyncML, the object to be synchronized exchanges packages logically.

또한 각 패키지는 모바일 단말기의 제한된 자원과 무선 통신상의 낮은 대역폭으로 인해 다수의 메시지들로 분리되어 교환된다. 한 번의 완전한 자료 동기화를 위해 클라이언트와 서버 간에 주고받은 모든 패키지를 세션이라고 하며, 세션은 여러 개의 패키지를 포함하고 하나의 패키지는 여러 메시지를 포함한다.In addition, each package is separated and exchanged into multiple messages due to the limited resources of the mobile terminal and the low bandwidth in wireless communication. All packages sent and received between client and server for one complete data synchronization are called sessions. A session contains multiple packages, and one package contains multiple messages.

SyncML 자료 동기화 규격은 XML 기반의 SyncML 자료 표현(Data Representation) 프로토콜, SyncML 동기화(Synchronization) 프로토콜 그리고 SyncML 전송 바인딩(Transport Bindings) 프로토콜로 구성되어 있다. 상기 SyncML 자료 표현 프로토콜은 자료 동기화를 위해 교환되는 SyncML 메시지의 논리적인 구조와 형태를 XML 형식으로 정의하고 있다. 즉, 각각의 필드가 어떠한 정보를 담고 있으며 해당 정보가 어떤 의미를 내포하는 것인지에 대한 약속을 정의하고 있다. 상기 SyncML 동기화 프로토콜은 SyncML 클라이언트와 서버 간에 이루어지는 자료 표현 프로토콜 규격에 의해 생성된 자료의 추가, 삭제, 갱신과 같은 동기화 명령과 그 밖의 상태 정보에 대한 메시지가 교환되는 방법에 대해서 정의하고 있다. 마지막으로, SyncML 전송 바인딩 프로토콜은 SyncML이 동기화 메시지를 전송하기 위해서 사용하는 HTTP, WSP, OBEX 등과 같은 프로토콜인데, 상기 SyncML 규격에서는 SyncML 전송 바인딩 프로토콜에 대해서 새로운 프로토콜을 정의하는 것이 아니라, 전송 프로토콜과 바인딩 규칙만을 정의한다.SyncML data synchronization standard consists of XML-based SyncML Data Representation protocol, SyncML Synchronization protocol, and SyncML Transport Bindings protocol. The SyncML data representation protocol defines the logical structure and form of SyncML messages exchanged for data synchronization in XML format. That is, each field defines what information it contains and what promises that information has. The SyncML synchronization protocol defines a method of exchanging messages for synchronization commands and other status information such as addition, deletion, and update of data generated by a data representation protocol specification made between a SyncML client and a server. Finally, the SyncML transport binding protocol is a protocol such as HTTP, WSP, OBEX, etc. that SyncML uses to transmit synchronization messages. The SyncML specification does not define a new protocol for the SyncML transport binding protocol. Define only rules.

HotSync 프로토콜은 Palm OS를 기반으로 하는 단말기에서 동작하는 자료 동기화 방식이다. Conduit이라는 코드 모듈을 이용하여 Palm OS 기기와 데스크 탑 컴퓨터 간의 자료 동기화를 수행하는 방식이다. Palm OS 기반의 HotSync 프로토콜은 하위 Bearer에 대한 기술적인 규격에 대하여 공개하고 있지 않다. 따라서, Palm OS 기반의 응용 소프트웨어는 HotSync 솔루션을 가지고 있는 회사에서 개발 및 공급을 하고 있다. XcelleNet, Mobile Automation, Pumatech, AdantGo 등과 같은 회사가 HotSync에 대한 솔루션을 제공하고 있다. The HotSync protocol is a data synchronization method that works with Palm OS-based devices. It uses a code module called Conduit to synchronize data between Palm OS devices and desktop computers. The Palm OS-based HotSync protocol does not disclose the technical specifications for the lower bearer. Therefore, Palm OS-based application software is being developed and supplied by companies with HotSync solutions. Companies such as XcelleNet, Mobile Automation, Pumatech, AdantGo and others provide solutions for HotSync.

HotSync 클라이언트는 HotSync 매니저, Conduit 모듈, Notifier DLL 모듈, Handheld App. 모듈, Desktop App. 모듈, Sync 매니저 API와 같은 6개의 컴포넌트로 구성되어 있다. Hotsync 프로토콜은 SyncML 프로토콜의 Two-way와 유사한 Slow-sync와 Fast-sync 두 가지 자료 동기화 모드를 지원한다. Fast Sync가 Slow Sync보다 속도가 빠르기 때문에, Slow Sync보다 Fast Sync를 우선적으로 수행한다.HotSync client includes HotSync Manager, Conduit Module, Notifier DLL Module, Handheld App. Module, Desktop App. It consists of 6 components such as module and Sync Manager API. The Hotsync protocol supports two data synchronization modes, Slow-sync and Fast-sync, similar to the Two-way of SyncML protocol. Since Fast Sync is faster than Slow Sync, Fast Sync is given priority over Slow Sync.

현재 주요 단말기 제조 회사에서 제공하는 자료 동기화 솔루션이 존재하지만, 각각의 단말기와 응용 서비스 간의 호환성이 결여되어 있다. 따라서, 각 모바일 단말기 회사에서 제공되는 동기화 방식의 상호 운용성을 보장하기 위해서 2000년 2월 여러 단말기 회사들이 주축이 된 OMA(Open Mobile Alliance)에서 SyncML 방식을 제안하여 공개적인 표준화를 시도하고 있다. Data synchronization solutions currently offered by major handset manufacturers exist, but lack the compatibility between each handset and its application services. Therefore, in order to guarantee the interoperability of the synchronization method provided by each mobile terminal company, in February 2000, various mobile terminal companies proposed the SyncML method by the Open Mobile Alliance (OMA), which attempted to openly standardize.

하지만 각 단말기 제조회사들이 기술적인 경쟁을 통해서 시장점유율을 높이고 있기 때문에, 각각의 동기화 방식에 대한 기술적인 공개를 하지 않고 있다. 따라서, SyncML이 동기화 솔루션에 대한 표준화를 시도하고 있지만, 각각의 동기화 방식을 탑재한 모바일 단말기들이 모두 SyncML 방식을 동기화 표준화로 대체하기는 어려운 실정이다.However, since handset makers are increasing their market share through technical competition, they do not provide a technical disclosure of each synchronization method. Therefore, although SyncML tries to standardize the synchronization solution, it is difficult for all mobile terminals equipped with each synchronization method to replace the SyncML method with synchronization standardization.

본 발명은 OMA(Open Mobile Alliance)에서 제시한 표준 동기화 방식인 SyncML 자료 동기화 방식을 이용하여, 모바일 단말기 회사에서 제공되는 다양한 자료 동기화 방식을 그대로 사용하면서 상호간에 동기화를 가능하게 할 수 있는 모바일 단말기 및 방법을 제공하는 것을 그 목적으로 한다. The present invention provides a mobile terminal capable of synchronizing with each other while using various data synchronization methods provided by a mobile terminal company by using a SyncML data synchronization method, which is a standard synchronization method proposed by the Open Mobile Alliance (OMA). Its purpose is to provide a method.

상기한 목적을 달성하기 위한 본 발명에 따르는 모바일 단말기는, 자료 동기화 서버와의 통신을 담당하는 프로토콜 매니저; 응용 프로그램에 의한 변경된 데이터에 대한 LUID 및 데이터를 제공받아 데이터를 해쉬값으로 변환하고, 상기 LUID에 대응되는 해쉬값을 체인지 로그 테이블로부터 제공받아 비교하고, 두 해쉬값이 상이하면 동기화 명령 및 LUID 및 해쉬값으로 구성되는 동기화 메시지를 상기 프로토콜 매니저를 통해 상기 자료 동기화 서버로 전송하고, 상기 자료 동기화 서버로부터 동기화 메시지가 수신되면, 그 동기화 메시지로부터 동기화 명령 및 LUID 및 데이터를 분석해내고, 상기 데이터를 해쉬값으로 변환한 후에, LUID 및 해쉬값을 상기 체인지 로그 테이블에 반영토록 출력하고, 상기 동기화 명령 및 LUID 및 데이터를 상기 응용 프로그램에 반영하는 동기화 매니저; 상기 체인지 로그 테이블로부터 LUID 및 해쉬값을 독출하여 상기 동기화 매니저에 제공하거나, 상기 LUID 및 해쉬값을 제공받아 상기 체인지 로그 테이블에 등록하는 데이터 스토어 매니저; 상기 체인지 로그 테이블 및 상기 응용 프로그램의 데이터 저장영역을 제공하는 데이터스토어; 를 구비함을 특징으로 한다. A mobile terminal according to the present invention for achieving the above object, the protocol manager in charge of communication with the data synchronization server; Receives LUID and data for changed data by application program and converts data into hash value, compares hash value corresponding to the LUID from change log table, and if the two hash values are different, synchronize command and LUID and A synchronization message comprising a hash value is transmitted to the data synchronization server through the protocol manager. When a synchronization message is received from the data synchronization server, a synchronization command and LUID and data are analyzed from the synchronization message, and the data is hashed. A synchronization manager for converting the LUID and the hash value into the change log table after the conversion to the value, and reflecting the synchronization command and the LUID and data to the application program; A data store manager that reads an LUID and a hash value from the change log table and provides the LUID and a hash value to the synchronization manager, or receives the LUID and a hash value and registers the LUID and a hash value in the change log table; A datastore providing the change log table and a data storage area of the application program; Characterized in having a.

상기한 본 발명은 WinCE 또는 Window Mobile 기반의 모바일 단말기에 탑재된 ActiveSync 자료 동기화 개체들은 서로 다른 동기화 방식을 탑재하고 있는 모바일 단말기와는 상호 호환성이 결여되어 있다. 그러나 본 발명에서 개발한 임베디드 자료 동기화 에이전트는 서로 다른 동기화 방식들 간의 상호 호환성을 보장할 수 있다.According to the present invention, ActiveSync data synchronization objects mounted in WinCE or Window Mobile based mobile terminals lack mutual compatibility with mobile terminals equipped with different synchronization methods. However, the embedded data synchronization agent developed in the present invention can ensure mutual compatibility between different synchronization schemes.

또한 본 발명에서는 OMA에서 제시한 OMA DS SyncML 프로토콜 스펙을 기반으로 개발하였으므로, 국제 표준을 준수하고 있으며, 또한 향후 OMA DS SyncML 프로토콜이 자료 동기화 방식에서 세계적인 표준기술로 채택되는 점에 기여한 점이 있다.In addition, since the present invention was developed based on the OMA DS SyncML protocol specification proposed by OMA, it complies with international standards, and contributes to the future adoption of OMA DS SyncML protocol as a global standard technology in data synchronization.

또한 본 발명과 유사한 기술로는 특허등록 100844361호(2008.07.01)의 자료동기화 게이트웨이 시스템이 있지만 이 시스템은 여러 대의 단말기들로부터 수신한 동기화 요청에 의해 동시에 처리할 데이터의 양이 증가함으로, 게이트웨이에 병목 현상이 발생할 수 있다. 또한 게이트웨이 내부에서 각 단말기 또는 동기화 서버로부터 수신한 데이터를 변환하기 위해서는 암호화된 데이터를 복호화하는 과정이 필요하다. 만약 이 과정에서 보안 공격을 당한다면 민감한 개인 자료들이 외부에 노출될 수 있다. 본 발명의 에이전트는 이러한 단점을 보완하기 위해 임베디드 방식으로 개발되었으며 각 사용자의 모바일 단말기 내에 탑재되고, 단말기 내에서 자료를 추출하여 변환하므로, 보안상의 취약점과 병목현상을 완화할 수 있다.In addition, although the data synchronization gateway system of Patent Registration No. 100844361 (2008.07.01) is similar to the present invention, the system increases the amount of data to be processed simultaneously by the synchronization request received from several terminals. Bottlenecks can occur. In addition, in order to convert data received from each terminal or synchronization server in the gateway, a process of decrypting the encrypted data is required. If a security attack occurs during this process, sensitive personal data may be exposed to the outside world. The agent of the present invention has been developed in an embedded manner to compensate for these shortcomings, and is mounted in each user's mobile terminal, and extracts and converts data in the terminal, thereby alleviating security vulnerabilities and bottlenecks.

도 1은 본 발명에 따른 SyncML 기반의 자료 동기화 게이트웨이 시스템 구성도.
도 2는 본 발명에 따른 SyncML 클라이언트와 Sync. 프로토콜 매니저 간의 처리 흐름도.
도 3은 본 발명에 따른 자료 동기화 게이트웨이 시스템의 처리 흐름도.
도 4는 본 발명에 따른 SyncML 기반의 자료 동기화 게이트웨이 동작 메커니즘을 도시한 도면.
도 5는 본 발명에 따른 전체 동기화 시간과 변환 게이트웨이에서 소비 시간에 대한 그래프를 도시한 도면.
1 is a block diagram of a SyncML based data synchronization gateway system according to the present invention;
2 is a SyncML client and a Sync. Processing flow between protocol managers.
3 is a process flow diagram of a data synchronization gateway system in accordance with the present invention.
4 illustrates a mechanism of operation of a SyncML based data synchronization gateway in accordance with the present invention.
5 shows a graph of total synchronization time and time spent in a conversion gateway in accordance with the present invention.

본 발명은 OMA(Open Mobile Alliance)에서 제시한 표준 동기화 방식인 SyncML 자료 동기화 방식을 이용하여, 모바일 단말기 회사에서 제공되는 다양한 자료 동기화 방식을 그대로 사용하면서 상호간에 동기화를 가능하게 한다. The present invention enables synchronization between each other while using various data synchronization methods provided by a mobile terminal company by using SyncML data synchronization method, which is a standard synchronization method proposed by the Open Mobile Alliance (OMA).

도 1은 본 발명의 바람직한 실시예에 따른 임베디드 자료 동기화 에이전트 장치의 구성을 도시한 것이다. 1 illustrates a configuration of an embedded data synchronization agent device according to a preferred embodiment of the present invention.

상기 임베디드 자료 동기화 에이전트 장치는 자료 변환 방식을 가지고 있으며 모바일 단말기 내에 탑재된다. 상기 임베디드 자료 동기화 에이전트 장치는 ActiveSync 방식의 메시지를 OMA DS SyncML 기반의 메시지로 변환하거나, OMA DS SyncML 기반의 메시지를 ActiveSync 방식의 메시지로 변환한다. 상기 임베디드 자료 동기화 에이전트 장치는 프로토콜 매니저(100), 동기화 매니저(102), 데이터스토어 매니저(104) 그리고 데이터스토어(106)로 구성된다.The embedded data synchronization agent device has a data conversion method and is mounted in a mobile terminal. The embedded data synchronization agent device converts an ActiveSync type message into an OMA DS SyncML based message or converts an OMA DS SyncML based message into an ActiveSync type message. The embedded data synchronization agent device includes a protocol manager 100, a synchronization manager 102, a data store manager 104, and a data store 106.

상기 프로토콜 매니저(100)는 통신 모듈(108), 세션 모듈(110), 인증 모듈(112)로 구성된다. The protocol manager 100 includes a communication module 108, a session module 110, and an authentication module 112.

상기 통신 모듈(108)은 자료 동기화 에이전트와 미도시된 자료 동기화 서버간의 동기화 메시지 교환을 담당한다. The communication module 108 is responsible for exchanging synchronization messages between a data synchronization agent and a data synchronization server, not shown.

상기 세션 모듈(110)은 자료 동기화가 완전히 종료될 때까지 서버와의 세션을 유지하며, 동기화 메시지의 헤더(header) 부분을 해석하고 메시지의 적합성을 검증한다. 여기서, 자료 동기화가 시작되면 모바일 단말기와 자료 동기화 서버는 동기화 메시지를 교환하게 되는데, 한 번의 완전한 자료 동기화를 위해 모바일 단말기와 자료 동기화 서버 사이에 주고 받은 모든 패키지를 세션(Session)이라고 한다. The session module 110 maintains a session with the server until the data synchronization is completely terminated, interprets the header portion of the synchronization message and verifies the suitability of the message. In this case, when the data synchronization starts, the mobile terminal and the data synchronization server exchange synchronization messages, and all packages exchanged between the mobile terminal and the data synchronization server for one time data synchronization are called sessions.

상기 인증 모듈(112)은 자료 동기화를 수행하기에 앞서 권한이 있는 자료 동기화 서버로부터 온 동기화 요청인지 체크한다. 상기 인증 모듈(112)은 데이터스토어(106)의 인증 테이블(134)에 저장된 자료 동기화 서버 인증 정보를 가져와 동기화 시, 자료 동기화 서버가 전송한 인증 정보와 비교한다. 상기 인증 모듈(112)의 인증 방법으로는 OMA DS에서 사용하는 BASIC과 MD5 해쉬 알고리즘이 채용될 수 있다. The authentication module 112 checks whether the synchronization request is from an authorized data synchronization server before performing data synchronization. The authentication module 112 takes the data synchronization server authentication information stored in the authentication table 134 of the datastore 106 and compares it with the authentication information transmitted by the data synchronization server at the time of synchronization. As the authentication method of the authentication module 112, the BASIC and MD5 hash algorithms used in the OMA DS may be adopted.

상기 동기화 매니저(102)는 실제 자료 동기화를 수행하며, 동기화 엔진(114), 데이터 추출모듈(116), 동기화 타입 결정부(118), 단말기 정보 추출부(120)로 구성된다. The synchronization manager 102 performs actual data synchronization, and includes a synchronization engine 114, a data extraction module 116, a synchronization type determiner 118, and a terminal information extractor 120.

상기 동기화 엔진(114)은 자료 동기화 서버로부터 수신한 동기화 메시지를 해석하여 동기화 명령 및 동기화 자료를 추출하고, 데이터스토어 매니저(104)를 통해 데이터스토어(106)에 반영한다. 상기 동기화 엔진(114)에 의해 해석된 메시지 구성은 도 2와 같다.The synchronization engine 114 interprets the synchronization message received from the data synchronization server, extracts the synchronization command and the synchronization data, and reflects the data to the datastore 106 through the datastore manager 104. The message structure interpreted by the synchronization engine 114 is shown in FIG.

상기 동기화 메시지는 모바일 단말기 자료의 고유한 ID인 LUID, 추가(ADD), 삭제(DELETE), 수정(REPLACE)을 나타내는 동기화 명령, 그리고 연락처, 일정과 같은 실제 동기화 데이터로 구성된다. The synchronization message is composed of a unique ID of the mobile terminal material, a synchronization command indicating an LUID, an ADD, a DELETE, a REPLACE, and actual synchronization data such as a contact and a schedule.

그리고 모바일 단말기측 변경사항이 있을 때, 또는 자료 동기화 서버측 동기화 요청에 대한 응답 메시지를 송신할 때 동기화 엔진(114)은 동기화 메시지를 생성한다. 상기 동기화 메시지는 현재 널리 사용되고 있고, OMA DS에서도 사용하는 XML 형태로 생성한다. And when there is a mobile terminal side change or when sending a response message to the data synchronization server side synchronization request, the synchronization engine 114 generates a synchronization message. The synchronization message is currently widely used, and is generated in an XML format that is also used in OMA DS.

상기 데이터 추출모듈(116)은 변경사항 추출을 위해 체인지 로그 테이블을 사용한다. 상기 체인지 로그 테이블에는 각 자료의 상태 플래그, 변경 시각 등이 기록되어 있다. 상기 체인지 로그 테이블을 바탕으로, 마지막 동기화 이후 변경된 자료만을 추출하여 동기화 엔진(114)에게 전달한다. The data extraction module 116 uses a change log table for extracting changes. In the change log table, a status flag of each data, a change time, and the like are recorded. Based on the change log table, only data changed since the last synchronization is extracted and transmitted to the synchronization engine 114.

상기 동기화 타입 결정부(118)는 전체 자료를 전송(Slow Sync)할 것인지, 변경된 자료만을 전송(Fast Sync)할 것인지를 결정하기 위해 앵커 테이블을 사용한다. 상기 앵커 테이블에는 이전 동기화 시각이 저장되어 있다. 만약 자료 동기화 에이전트와 자료 동기화 서버의 앵커 정보가 다르다면 전체 자료를 전송하고, 같다면 변경된 자료만을 전송한다.The synchronization type determination unit 118 uses an anchor table to determine whether to transmit the entire data (Slow Sync) or only the changed data (Fast Sync). The previous synchronization time is stored in the anchor table. If the anchor information of the data synchronization agent and the data synchronization server is different, the entire data is transmitted. If the data is identical, only the changed data is transmitted.

상기 단말기 정보 추출부(120)는 모바일 단말기가 수용할 수 있는 동기화 타입, 단말기의 메모리 용량 등을 자료 동기화 서버에 알려주기 위한 단말기 설정 값을 추출한다. 상기 단말기 설정 값은 XML 문서로 저장되어 있다.The terminal information extracting unit 120 extracts a terminal setting value for informing the data synchronization server of a synchronization type that can be accommodated by the mobile terminal, a memory capacity of the terminal, and the like. The terminal setting value is stored as an XML document.

상기 데이터스토어 어댑터(104)는 POOM(Pocket Outlook Object Model) 매니저(122)와 DB 매니저(124)로 구성된다.The datastore adapter 104 includes a POOM (Pocket Outlook Object Model) manager 122 and a DB manager 124.

상기 POOM 매니저(122)는 응용 프로그램에서 사용하는 데이터를 추출 및 저장, 수정한다. 상기 POOM은 윈도우 모바일 또는 윈도우 CE 기반의 단말기 응용 프로그램의 PIMS(Personal Information Management System) 정보를 나타내는 클래스들의 집합이다. 상기 POOM 매니저(122)가 POOM 라이브러리를 사용하여 데이터를 추출, 저장, 삭제, 수정하는 과정은 다음과 같이 3단계로 구성된다.The POOM manager 122 extracts, stores and modifies data used in an application program. The POOM is a set of classes representing PIMS (Personal Information Management System) information of a Windows Mobile or Windows CE based terminal application. The POOM manager 122 extracts, stores, deletes, and modifies data using the POOM library in three steps.

1) OutlookSession 객체를 생성하여 POOM 세션 시작1) Create an OutlookSession object to start a POOM session

2) ItemID 객체를 사용하여 응용프로그램이 사용하는 데이터의 고유한 ID인 LUID 추출2) Using the ItemID object to extract the LUID, which is the unique ID of the data used by the application

3-1) 데이터 추가 시 데이터를 매개변수로 하는 Add() 메소드 호출, 새롭게 할당된 LUID를 반환3-1) When adding data, call Add () method with data as parameter and return newly allocated LUID

3-2) 데이터 삭제 시 LUID를 매개변수로 하는 Remove() 메소드 호출3-2) Calling Remove () method with LUID as parameter when deleting data

3-3) 데이터 수정 시 LUID와 데이터를 매개변수로 하는 Update() 메소드 호출3-3) Calling the Update () method with LUID and data as parameters when modifying data

상기 DB 매니저(124)는 체인지 로그, 앵커, 설정 값, 인증값을 추출 및 저장, 수정한다. 상기 DB 매니저(124)는 상기 POOM 매니저(122)가 추출한 데이터의 LUID를 참고하여 쿼리문을 사용하여 체인지 로그에 저장된 해쉬값을 추출한다. 상기 체인지 로그는 윈도우 모바일에서 제공하는 CEDB를 사용하며 응용 프로그램이 사용하는 데이터와 쌍을 이루는 LUID와 해쉬값을 가지고 있다. 상기 CEDB는 윈도우 모바일 기반의 단말기에서 사용하는 데이터베이스이다. 상기 DB 매니저(124)가 CEDB 쿼리를 사용하여 해쉬값을 추출, 저장, 삭제, 수정하는 과정은 다음과 같다.The DB manager 124 extracts, stores, and modifies change logs, anchors, setting values, and authentication values. The DB manager 124 extracts a hash value stored in the change log by using a query statement by referring to the LUID of the data extracted by the POOM manager 122. The change log uses CEDB provided by Windows Mobile and has a LUID and a hash value paired with data used by an application. The CEDB is a database used in the Windows Mobile terminal. The DB manager 124 extracts, stores, deletes, and modifies a hash value using a CEDB query as follows.

1) SqlCeConnection 객체를 생성하여 데이터베이스에 접속1) Create a SqlCeConnection object to connect to the database

2) POOM 매니저(122)가 추출한 데이터의 LUID와 동일한 레코드를 선택하기 위해 ExecuteReader() 메소드를 사용하여 SELECT 쿼리문을 실행 2) Execute the SELECT query statement using the ExecuteReader () method to select the same record as the LUID of the data extracted by the POOM manager 122.

3) ExecuteNonQuery() 메소드를 사용하여 INSERT, DELETE, UPDATE 쿼리문 실행3) Execute INSERT, DELETE, UPDATE query statement using ExecuteNonQuery () method

도 3은 데이터 추출 모듈(116)의 세부 구조도를 도시한 것이다. 상기 데이터 추출 모듈(116)은 POOM 매니저(122)와 DB 매니저(124)로부터 전달받은 한 쌍의 데이터를 비교하여 변경 상태(동기화 명령)와 LUID, 데이터를 동기화 엔진(114)에 전달한다. 예를 들어 LUID가 3인 데이터 ABC가 응용 프로그램에서 추가되었다면 데이터 추출 모듈(116)은 <ADD, LUID#3, ABC> 라는 메시지를 동기화 엔진에 전달한다. 또한 자료 동기화 서버로부터 동기화 대상 데이터와 동기화 명령을 수신하면 추가(ADD)/삭제(DELETE)/수정(REPLACE)과 같은 동기화 명령과 LUID, 데이터를 POOM 매니저(122)에게 전달한다. 또한 데이터의 해시값을 계산하여 LUID와 함께 DB 매니저(124)에게 전달한다.3 shows a detailed structural diagram of the data extraction module 116. The data extraction module 116 compares a pair of data received from the POOM manager 122 and the DB manager 124 and transfers the change state (synchronization command), LUID, and data to the synchronization engine 114. For example, if data ABC with LUID 3 is added in the application, the data extraction module 116 delivers the message < ADD, LUID # 3, ABC > to the synchronization engine. In addition, when the synchronization target data and the synchronization command is received from the data synchronization server, the synchronization command such as add (ADD) / delete (DELETE) / modify (REPLACE), LUID, and data is transmitted to the POOM manager 122. In addition, the hash value of the data is calculated and delivered to the DB manager 124 together with the LUID.

도 4는 본 발명에 따른 임베디드 자료동기화 에이전트의 흐름도를 도시한 것이다. 상기 도 4를 참조하여 본 발명에 따른 임베디드 자료 동기화 에이전트의 동작을 설명한다. 4 shows a flowchart of an embedded data synchronization agent in accordance with the present invention. The operation of the embedded data synchronization agent according to the present invention will be described with reference to FIG. 4.

POOM 매니저(122)는 응용 프로그램에서 변경된 데이터를 추출하여 데이터의 고유 ID인 LUID와 데이터를 결합하여 데이터 추출모듈(116)로 제공한다. 그리고 DB 매니저(124)는 POOM 매니저(122)가 추출한 데이터의 LUID를 참고하여 체인지 로그에 저장된 해쉬값을 추출하여, 상기 LUID와 해쉬값을 결합하여 데이터 추출모듈(116)로 제공한다. The POOM manager 122 extracts the changed data from the application program and combines the data with the LUID, which is a unique ID of the data, and provides the data to the data extraction module 116. The DB manager 124 extracts the hash value stored in the change log by referring to the LUID of the data extracted by the POOM manager 122, and combines the LUID and the hash value to provide the data to the data extraction module 116.

상기 데이터 추출모듈(116)은 상기 POOM 매니저(122)가 송신한 LUID와 데이터에 대해서는 상기 데이터를 해쉬값으로 변환한다. 이후 상기 데이터 추출모듈(116)은 상기 LUID와 해쉬값과 상기 DB 매니저(124)로부터의 LUID와 해쉬값을 비교하여, 두 값이 다르면 동기화 명령과 LUID와 해쉬값을 결합하여 메시지 생성모듈(136)로 제공한다. 상기 메시지 생성모듈(136)은 상기 동기화 명령과 LUID, 해쉬값을 결합하여 동기화 메시지를 생성하여 자료 동기화 서버로 전송한다. The data extraction module 116 converts the data into a hash value for the LUID and the data transmitted by the POOM manager 122. Thereafter, the data extraction module 116 compares the LUID and the hash value with the LUID and the hash value from the DB manager 124. If the two values are different, the data extraction module 116 combines the synchronization command with the LUID and the hash value. ) The message generation module 136 combines the synchronization command, LUID, and hash value to generate a synchronization message and transmits the synchronization message to the data synchronization server.

그리고 자료 동기화 서버로부터의 동기화 메시지가 수신되면, 메시지 분석 모듈(138)은 상기 동기화 메시지를 동기화 명령, LUID, 데이터로 분석한 후에 데이터 추출모듈(116)에 제공한다. When the synchronization message from the data synchronization server is received, the message analysis module 138 analyzes the synchronization message as a synchronization command, LUID, and data, and then provides the synchronization message to the data extraction module 116.

상기 데이터 추출모듈(116)은 상기 동기화 메시지로부터 분석해낸 데이터를 해쉬값으로 변환한 후에 DB 매니저(124)로 제공하며, 상기 DB 매니저(124)는 상기 동기화 메시지에 포함된 LIUD와 해쉬값을 체인지 로그에 저장한다. The data extraction module 116 converts the data analyzed from the synchronization message into a hash value and then provides the data to the DB manager 124. The DB manager 124 changes the hash value and the LIUD included in the synchronization message. Save to the log.

이후 상기 데이터 추출모듈(116)은 상기 동기화 메시지에 포함된 동기화 명령, LUID, 데이터를 POOM 매니저(122)에 제공한다. 상기 POOM 매니저(122)는 상기 동기화 명령, LUID, 데이터에 따라 데이터의 저장/삭제/수정 등의 동기화 동작을 이행한다. Thereafter, the data extraction module 116 provides the POOM manager 122 with the synchronization command, LUID, and data included in the synchronization message. The POOM manager 122 performs a synchronization operation such as storing / deleting / modifying data according to the synchronization command, LUID, and data.

100: 프로토콜 매니저
102 : 동기화 매니저
104 : 데이터스토어 매니저
106 : 데이터스토어
100: protocol manager
102: synchronization manager
104: datastore manager
106: datastore

Claims (4)

모바일 단말기와 자료 동기화 서버가 자료 동기화를 위해 네트워크로 연결된 시스템에 있어서, 상기 모바일 단말기는,
상기 자료 동기화 서버와의 통신을 담당하는 프로토콜 매니저;
체인지 로그 테이블, 앵커 테이블, 단말기 설정값 및 응용 프로그램의 데이터 저장영역을 제공하는 데이터스토어;
상기 응용 프로그램에서 사용하는 데이터를 추출, 저장 및 수정하는 POOM 매니저와, 상기 체인지 로그, 앵커 정보, 단말기 설정값을 추출, 저장 및 수정하는 DB 매니저를 포함하는 데이터스토어 매니저;
상기 POOM 매니저로부터 LUID 및 데이터를 제공받아 데이터를 해쉬값으로 변환하고, 상기 LUID와 해쉬값과 상기 DB 매니저로부터의 LUID와 해쉬값을 비교하여, 두 해쉬값이 상이하면 동기화 명령, LUID 및 해쉬값을 결합하는 데이터 추출 모듈과, 상기 데이터 추출 모듈에서의 동기화 명령, LUID 및 해쉬값을 결합하여 동기화 메시지를 생성하여 상기 프로토콜 매니저에 전송하거나, 상기 프로토콜 매니저로부터 수신된 동기화 메시지를 동기화 명령, LUID 및 데이터로 분석하여 상기 데이터 추출 모듈에 제공하는 동기화 엔진과, 상기 자료 동기화 서버의 앵커 정보와 상기 모바일 단말기의 앵커 정보를 비교하여 전체 데이터를 전송할지 아니면 변경된 데이터만을 전송할지 여부를 결정하는 동기화 타입 결정부와, 상기 DB 매니저와 연동하여 상기 자료 동기화 서버에 전송하기 위한 단말기 정보값을 추출하는 단말기 정보 추출부를 포함하는 동기화 매니저;를 포함하는 것을 구비함을 특징으로 하는 자료 동기화를 위한 모바일 단말기.
In a system in which a mobile terminal and a data synchronization server are networked for data synchronization, the mobile terminal includes:
A protocol manager in charge of communicating with the data synchronization server;
A datastore providing a change log table, an anchor table, a terminal setting value and a data storage area of an application program;
A data store manager including a POOM manager for extracting, storing, and modifying data used by the application, and a DB manager for extracting, storing, and modifying the change log, anchor information, and terminal setting values;
Receives LUID and data from POOM Manager, converts data into hash value, compares LUID and hash value with LUID and hash value from DB manager, and if two hash values are different, synchronize command, LUID and hash value. Combining the data extraction module to combine the synchronization command, LUID and hash value in the data extraction module to generate a synchronization message to send to the protocol manager, or the synchronization message received from the protocol manager, the synchronization command, LUID and The synchronization engine analyzes the data and provides the data extraction module to the data extraction module and the anchor information of the data synchronization server and the anchor information of the mobile terminal to determine whether to transmit the entire data or only the changed data. And the data synchronization server in association with the DB manager. And a synchronization manager including a terminal information extraction unit for extracting terminal information values for transmission to the mobile terminal.
제1항에 있어서,
상기 데이터 스토어는 인증 테이블을 더 포함하고,
상기 DB 매니저는 상기 인증 테이블에서 인증값을 추출, 저장 및 수정하고,
상기 프로토콜 매니저는, 상기 DB 매니저와 연동하여 상기 자료 동기화 서버에 대한 인증을 위한 인증 모듈을 더 포함하는 것을 특징으로 하는 자료 동기화를 위한 모바일 단말기.
The method of claim 1,
The data store further comprises an authentication table,
The DB manager extracts, stores and modifies the authentication value in the authentication table.
The protocol manager further comprises an authentication module for authenticating the data synchronization server in cooperation with the DB manager.
모바일 단말기와 자료 동기화 서버가 네트워크 연결된 시스템에서 상호간의 자료 동기화 방법에 있어서,
상기 모바일 단말기가,
응용 프로그램에 의한 변경된 데이터에 대한 LUID 및 데이터를 제공받아 데이터를 해쉬값으로 변환하고, 상기 LUID에 대응되는 해쉬값을 체인지 로그 테이블로부터 제공받아 비교하고, 두 해쉬값이 상이하면 동기화 명령 및 LUID 및 해쉬값으로 구성되는 동기화 메시지를 상기 자료 동기화 서버로 전송하는 단계;
상기 자료 동기화 서버로부터 동기화 메시지가 수신되면, 그 동기화 메시지로부터 동기화 명령 및 LUID 및 데이터를 분석해내고, 상기 데이터를 해쉬값으로 변환한 후에, LUID 및 해쉬값을 상기 체인지 로그 테이블에 반영토록 출력하고,
상기 동기화 명령 및 LUID 및 데이터를 상기 응용 프로그램에 반영하는 단계;
상기 자료 동기화 서버의 앵커 정보와 상기 모바일 단말기의 앵커 정보를 비교하여 전체 데이터를 전송할지 아니면 변경된 데이터만을 전송할지 여부를 결정하는 단계;
를 포함하는 것을 특징으로 하는 모바일 단말기의 자료 동기화 방법.
In a method of synchronizing data between a mobile terminal and a data synchronization server in a networked system,
The mobile terminal,
Receives LUID and data for changed data by application program and converts data into hash value, compares hash value corresponding to the LUID from change log table, and if the two hash values are different, synchronize command and LUID and Transmitting a synchronization message comprising a hash value to the data synchronization server;
When a synchronization message is received from the data synchronization server, the synchronization command and LUID and data are analyzed from the synchronization message, the data is converted into a hash value, and the LUID and hash value are output to be reflected in the change log table.
Reflecting the synchronization command and LUID and data to the application program;
Comparing anchor information of the data synchronization server with anchor information of the mobile terminal to determine whether to transmit entire data or only changed data;
Data synchronization method of a mobile terminal, comprising a.
제3항에 있어서,
상기 자료 동기화 서버에 대한 인증을 이행하는 단계를 더 포함하는 것을 특징으로 하는 모바일 단말기의 자료 동기화 방법.
The method of claim 3,
And performing the authentication on the data synchronization server.
KR1020100016776A 2010-02-24 2010-02-24 Active Sync-based Mobile Device for data Synchronizing and Method at the same KR101082850B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100016776A KR101082850B1 (en) 2010-02-24 2010-02-24 Active Sync-based Mobile Device for data Synchronizing and Method at the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100016776A KR101082850B1 (en) 2010-02-24 2010-02-24 Active Sync-based Mobile Device for data Synchronizing and Method at the same

Publications (2)

Publication Number Publication Date
KR20110097117A KR20110097117A (en) 2011-08-31
KR101082850B1 true KR101082850B1 (en) 2011-11-11

Family

ID=44932177

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100016776A KR101082850B1 (en) 2010-02-24 2010-02-24 Active Sync-based Mobile Device for data Synchronizing and Method at the same

Country Status (1)

Country Link
KR (1) KR101082850B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207781B (en) * 2013-03-23 2015-11-18 北京工业大学 A kind of WPRT of utilization component layer realizes the synchronous method of pim data
KR102121975B1 (en) * 2018-12-26 2020-06-11 주식회사 엘지씨엔에스 Method for providing actual data through synchronized table and data managing system
CN114338121A (en) * 2021-12-23 2022-04-12 奇安信科技集团股份有限公司 Firewall security prevention and control method, device, system, computing equipment and storage medium

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문1:한국정보과학회*
논문2:한국정보과학회*

Also Published As

Publication number Publication date
KR20110097117A (en) 2011-08-31

Similar Documents

Publication Publication Date Title
US8359358B2 (en) File folder transmission on network
US8996065B2 (en) Method for automatically transferring an application in a mobile communication terminal of telecommunication networks
EP1821555A1 (en) Method and system for sharing memory area of mobile terminal
JP2005505990A5 (en)
CN103064391B (en) Based on the long-range DNC control method of digital control system of ICP/IP protocol and Linux network programming
CN102111419B (en) Message middleware-based client automatic reconnection method
US20090030917A1 (en) Multimedia messaging service-based database synchronization
CN104486388A (en) Accessing method and device of cloud storage file
US20150127942A1 (en) Security key device for secure cloud service, and system and method for providing secure cloud service
CN108418903B (en) Remote access system and access method for embedded software log
De Biasio et al. A QUIC implementation for ns-3
CN103002049A (en) Network transmission system of large quantities of data
US9332405B2 (en) Short message backup method, mobile terminal, and server
CN100452656C (en) Arrangement for application message decompression
US7774423B2 (en) Remote start system, remote start server and communication terminal
KR101082850B1 (en) Active Sync-based Mobile Device for data Synchronizing and Method at the same
CN105165035A (en) Transmission of multimedia message doubled with transmission of text message
WO2014019470A1 (en) Method and system for updating user calling card
WO2014169589A1 (en) Intelligent terminal synchronous operation method and device
CN103068052A (en) Dynamic configuration method and system of resources and portal server
CN112105003A (en) Data synchronization system, method and device of intelligent door lock and readable storage medium
CN116055368A (en) Method and device for communication by using custom protocol
WO2010072082A1 (en) Set top box (stb) server, method and system for stp user accessing and maintaining in internet protocol television (iptv) value-added service
KR100844361B1 (en) Gateway system for data synchronization
CN109766347B (en) Data updating method, device, system, computer equipment and storage medium

Legal Events

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

Payment date: 20141107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151109

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161101

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181108

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191112

Year of fee payment: 9