目的




對於需要在不同場合操作不同電腦的使用者而言,經常會發生弄不清楚某個最新版本的檔案位於何處,因而導致工作效率降低。因此,如何方便有效地保持不同電腦中的資料一致性,便成為有待解決的一個課題。
開發SyncFree的目的,即在於以自由軟體的精神實作一個免費、開放原始碼、容易使用、跟平台、跟網際網路且有擴充性的資料同步工具,以期有效解決個人資料同步的問題。
 同步畫面主視窗 




Context Diagram




 
SyncFree功能
同步策略: 同步通訊協定:

Simple copy (單向簡單複製)
Exact copy (單向完全複製)
Synchronize (雙向同步)
Move (單向移動複製)
Compress (單向壓縮複製)
Exact Compress (單向完全壓縮複製)

 

File
HTTP
FTP
SSH FTP (安全性FTP)
 

系統執行環境與操作介面
 

支援Windows、 Linux與Mac OS環境
支援GUI與Console操作介面
以Wizard(精靈)方式引導使用者逐步設定檔案同步之相關資料
 

SyncFree使用案例
  1. 使用者剛剛從公司回到家中,此時外接式硬碟中存有該日在公司中所增修之檔案資料,由於B只能以USB 1.x的介面(11 Mbps)與外接式硬碟連接,速度較慢,因此使用者選擇將檔案先行同步到B中,之後直接操作B硬碟中的資料,以獲得較快的檔案存取速度。

  2. 由於該使用者曾經發生過硬碟損毀的情況,因此他決定將B中的檔案,另行複製一份到桌上型電腦A的內接式硬碟中,以表示。

  3. 使用者隔天上班之前,會再手動執行一次,以便將異動的資料帶至公司。

  4. 資料同步的時間在中為使用者手動執行同步,在中為系統自動定時執行。


  1. 由於IEEE1394連線速度為400Mbps,因此使用者決定直接操作外接式硬碟中的資料,而不另行複製一份到C中。

  2. 使用者偶而會攜帶筆記型電腦D外出拜訪客戶,由於考慮移動性的因素,直接透過USB 2.0介面存取外接式硬碟中的資料並不方便。因此,他決定將外接式硬碟中的資料同步一份到D中(以表示),以便外出時使用。

  3. 資料同步的時間在中為手動執行同步,執行時間為使用D前與使用D之後。




SyncFree開發流程
在開發SyncFree的過程中,基於簡單設計的大前提下,SyncFree採用了Layered Architecture Pattern,分別負責呈現使用者界面、提供高階的檔案同步服務及執行基本IO動作。此外,為了提高SyncFree的擴充性,我們套用了Strategy與ObjectFactory樣式以支援多種資料同步演算法和資料傳輸協定,並引用持續整合技術以確保軟體開發品質。


 
系統架構圖




Layered Architecture Pattern



Design Pattern
Strategy與ObjectFactory支援多種資料同步演算法


Strategy與ObjectFactory支援多種資料傳輸協定

獲獎
本軟體獲得國科會評審為該年度(2004) 14 個優良作品之一,且被評為具有高度商業化價值。

詳細內容可參閱 自由軟體鑄造場 - NSC92SyncFreeNSC93SyncFree