Author(s) Politehnica University of Bucharest Automatic Control and Computers Faculty Computer Science Department SSH-Based Efficient File Synchronization Horațiu Popescu Bachelor Presentation Session - July 2011
Content Overview Background Implementation Testing Conclusions Questions Bachelor Presentation Session - July
Overview Java prototype SSH accounts Multi-platform Delta encoding Inotify Bachelor Presentation Session - July
Overview Bachelor Presentation Session - July Usage $ java Client c1_directory client1$ java Client c2_directory client2 SSH-Server
Intercepts file system events – FILE_CREATED – FILE_DELETED – FILE_MODIFIED – FILE_RENAMED All platforms supported Background Bachelor Presentation Session - July Inotify
Implementation Bachelor Presentation Session - July Architecture
The main module Reads changes Performs actions Marks the files Implementation Bachelor Presentation Session - July Synchronizer
Listens to a snapshot How it works: 1.Stores initial directory content 2.Makes directories identically 3.Propagates updated changes Implementation Bachelor Presentation Session - July Synchronizer
Test driven development approach JUnit test cases 12 analyzed categories Testing Bachelor Presentation Session - July
Testing Filenames on diff. OS Alteration storage Authentication SSH Conflict management User rights Delta encoding Timezone Exception management Change detection Bachelor Presentation Session - July Categories
Testing Runs correctly with two clients Minimal functionality Not all modules are connected Bachelor Presentation Session - July Application status
Implement GUI Extend architecture for a SERVER Allow selective synchronization Write more test cases Clean up the code Conclusions Bachelor Presentation Session - July Further development
Conclusions Bachelor Presentation Session - July OOP design Modularity Starting point for a release application Learning experience Team work
Inotify Multi-platform Real-time scenario Questions Bachelor Presentation Session - July and Answers