The Design and Implementation of an Automatic File-synchronization Tool Supporting Multiple Communication Interfaces

碩士 === 國立臺北科技大學 === 資訊工程系研究所 === 100 === As a person owns more and more digital devices (e.g., personal computers, notebooks, pads, and smart phones), the file synchronization between these devices is getting more and more important. Therefore, automatic file-synchronization tools have become popula...

Full description

Bibliographic Details
Main Authors: Ta-Lun Huang, 黃大倫
Other Authors: 陳偉凱
Format: Others
Language:zh-TW
Published: 2012
Online Access:http://ndltd.ncl.edu.tw/handle/yh4ja8
Description
Summary:碩士 === 國立臺北科技大學 === 資訊工程系研究所 === 100 === As a person owns more and more digital devices (e.g., personal computers, notebooks, pads, and smart phones), the file synchronization between these devices is getting more and more important. Therefore, automatic file-synchronization tools have become popular these days. When using such a tool, the user assigns a sync-folder for each device, and then all the changes in the sync-folder will be synchronized to the other devices automatically, maintaining the consistency of files in different devices. However, most of these tools need a central server during synchronization and only support a single communication interface (normally internet connection). If the central server is not available (e.g., the user is at a place that the internet connection is not available), file synchronization cannot be performed. This thesis proposes an automatic file-synchronization mechanism based on peer-to-peer architecture and supports multiple communication interfaces. The proposed mechanism monitors all file system changes and stores the changes as an Event History. When two devices are to be synchronized, the synchronization actions are derived by comparing the Event Histories of the two devices. An automatic file synchronization tool has been implemented based on the proposed mechanism. The tool can perform synchronization via Ethernet (TCP/IP) and Bluetooth interfaces, and supports Windows, Android, and Linux platforms.