MultipleComputersSynchronization

Differences between revisions 3 and 13 (spanning 10 versions)
Revision 3 as of 2006-04-22 19:08:40
Size: 1531
Editor: 83
Comment:
Revision 13 as of 2007-03-15 08:43:18
Size: 6348
Editor: 102
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
 * '''Contributors''':
 * '''Packages affected''':
 * '''Contributors''': JackWasey, AdiRoiban
 * '''Packages affected''': unison, unison-gtk
Line 10: Line 10:
This spec discuss the inclusion and integration of a remote synchronization/storage/sharing solution in Edgy. The proposed solution is currently iFolder. This spec discuss the inclusion and integration of a remote synchronization/storage/sharing solution in Edgy. The proposed solution is currently based on unison.
Line 15: Line 15:
Keeping tracks of a given file or synchronisation is often a real pain.
Also, there's no easy way to share a file across the internet if you don't have webserver and the knowledge of ftp/sftp.
Keeping tracks of a given file or synchronization is often a real pain.
Also, there's no easy way to share a file across the Internet if you don't have webserver and the knowledge of ftp/sftp.
Line 19: Line 19:

 * Emma will soon fly to a conference in America with his whole new laptop. She want to be sure that she can access all the needed file that are on his home computer.
 * Joe want to share a 6 Mo file with Jack. Unfortunatly, his SMTP service only allow mail that are less than 5Mo.
 * William never remember if a given file is on his laptop or desktop. Sometimes, the file is on the desktop AND on the laptop but he want only the newest version.
 1. Emma will soon fly to a conference in America with her whole new laptop. She wants to be sure that she can access all the necessarg y files that are on her home computer.
 1. Joe wants to share a 6 MB file with Jack. Unfortunately, his SMTP service will only allow mail messages that are less than 5 MB.
 1. William can never remember if a given file is on his laptop or desktop. Sometimes the file is on the desktop AND on the laptop, but he only wants the newest version.
 1. Sally has three computers, and wants a common home directory, including her Firefox extensions, and mail setup.
Line 25: Line 25:
 * Decentralized model
 * 2 types of share public(no password)/private
   * A strong cryptography and security model - like SSH - for confidential data
   * A weak security model - read only - like anonymous ftp - for use case 2
 * Integration with the system file browser
 * On-demand file sharing and file synchronization
 * Display a list of available shares, their type and available actions
Line 28: Line 35:
A special location in the file browser will show all nodes from LAN having files for sharing. Selecting a node will show all it's shares and right clicking a share will display a context menu with available actions (open, sync to, sync from)

Extended attributes or nautilus emblems should be used to mark folders for syncing/not syncing, public or private share, instead of the clumsy and incomprehensible Unison configuration files.

A configuration dialog would allow a default set of sync targets would enable a user to easily configure home dir syncing of things like firefox bookmarks/extensions (whole profiles, extensions, without caches!!!).

A configuration dialog could allow check box selection of what to sync between home folders (see above), and choose whether to sync video, music, or other large files. This could be bandwidth dependent, something which can be tested.

A wizard will allow a fast service setup enabling a default public share folder and default application synchronization (gaim, Firefox, evolution)
Line 29: Line 46:
Existing solutions :
 - ["iFolder"] , an opensource solution from Novell would fit quite nicely.
=== Existing solutions ===
 * ["iFolder"] , an open source solution from Novell would fit quite nicely.
 * [http://www.cis.upenn.edu/~bcpierce/unison/ Unison] a command line program that can keep multiple directories in sync. (even if there are changes on both) Works great, but would need a good nautilus extension (with a real gtk/gnome front end) to really make it amazing.
Line 32: Line 50:
=== Code === iFolder has disadvantages compared to Unison: it is less conservative in wiping data instead of adding new files. However, it is supported albeit semi-commercial, whereas Unison appears to be stagnant.
Line 34: Line 52:
=== Data preservation and migration === iFolder had a great disadvantages compared to Unison: you need the server part! In many use cases Ubuntu Linux is used just on the client side and the server side is some other GNU/Linux based distribution. Having a static build of Unison (for Linux, FreeBSD, Solaris) we will only need a valid ssh account on another computer.
Line 36: Line 54:
== Outstanding issues == === Architecture ===
 * based on openSLP [http://www.openslp.org/doc/html/IntroductionToSLP/index.html info]
 * the "fshare" Service Agent will broadcast it's shares
 * the "fshare" User Agent will gather broadcasts from other "fshares".
 * the "fshare" application will make the information gathered by User Agent available at a "fshare://" location in the file browser.
 * Location "fshare://blinky" will display all shares provided by node "blinky". Depending of the share type opening a share will redirect the file browser to a scp:// or ftp:// location.
 * public file sharing is using ftp
 * private file sharing is using scp
 * File synchronization works on top of private file using unison

=== Architecture ===
 * based on openSLP [http://www.openslp.org/doc/html/IntroductionToSLP/index.html info]
 * the "fshare" Service Agent will broadcast it's shares
 * the "fshare" User Agent will gather broadcasts from other "fshares".
 * the "fshare" application will make the information gathered by User Agent available at a "fshare://" location in the file browser.
 * Location "fshare://blinky" will display all shares provided by node "blinky". Depending of the share type opening a share will redirect the file browser to a scp:// or ftp:// location.
 * public file sharing is using ftp
 * private file sharing is using scp
 * File synchronization works on top of private file using unison
Line 39: Line 75:
== BoF agenda and discussion ==  * Unison has a GUI, but not a great one. Unison is more ambivalent about filesystems than iFolder (which just takes charge in sometimes destructive ways).

 * Unison requires ssh login, and is relatively time consuming. iFolder syncs itself in the background with a saved login. Unison would need an unprivileged account with only access to the sync folder on the remote machine. iFolder watches the file system for changes and can sync more cleverly. A Unison daemon could run which watches inotify.

 * A lightweight http server could be use for file sharing instead of ftp allowing the use of webdav enabled applications http://www.webdav.org

 * A further use case requiring something similar to iFolder enterprise mode would be: At work Anna has two computer (one laptop, one desktop) and a ssh account on the company's central server running a Unix-Like OS.The company sysadmin will not install any other software on the server. She wants to have it's application settings and documents synchronized (the newest version on each computer).

Summary

This spec discuss the inclusion and integration of a remote synchronization/storage/sharing solution in Edgy. The proposed solution is currently based on unison.

Rationale

Having a multiple computers configuration is more and more common everyday : one desktop at work, one desktop at home, one laptop. Keeping tracks of a given file or synchronization is often a real pain. Also, there's no easy way to share a file across the Internet if you don't have webserver and the knowledge of ftp/sftp.

Use cases

  1. Emma will soon fly to a conference in America with her whole new laptop. She wants to be sure that she can access all the necessarg y files that are on her home computer.
  2. Joe wants to share a 6 MB file with Jack. Unfortunately, his SMTP service will only allow mail messages that are less than 5 MB.
  3. William can never remember if a given file is on his laptop or desktop. Sometimes the file is on the desktop AND on the laptop, but he only wants the newest version.
  4. Sally has three computers, and wants a common home directory, including her Firefox extensions, and mail setup.

Scope

  • Decentralized model
  • 2 types of share public(no password)/private
    • A strong cryptography and security model - like SSH - for confidential data
    • A weak security model - read only - like anonymous ftp - for use case 2
  • Integration with the system file browser
  • On-demand file sharing and file synchronization
  • Display a list of available shares, their type and available actions

Design

A special location in the file browser will show all nodes from LAN having files for sharing. Selecting a node will show all it's shares and right clicking a share will display a context menu with available actions (open, sync to, sync from)

Extended attributes or nautilus emblems should be used to mark folders for syncing/not syncing, public or private share, instead of the clumsy and incomprehensible Unison configuration files.

A configuration dialog would allow a default set of sync targets would enable a user to easily configure home dir syncing of things like firefox bookmarks/extensions (whole profiles, extensions, without caches!!!).

A configuration dialog could allow check box selection of what to sync between home folders (see above), and choose whether to sync video, music, or other large files. This could be bandwidth dependent, something which can be tested.

A wizard will allow a fast service setup enabling a default public share folder and default application synchronization (gaim, Firefox, evolution)

Implementation

Existing solutions

  • ["iFolder"] , an open source solution from Novell would fit quite nicely.
  • [http://www.cis.upenn.edu/~bcpierce/unison/ Unison] a command line program that can keep multiple directories in sync. (even if there are changes on both) Works great, but would need a good nautilus extension (with a real gtk/gnome front end) to really make it amazing.

iFolder has disadvantages compared to Unison: it is less conservative in wiping data instead of adding new files. However, it is supported albeit semi-commercial, whereas Unison appears to be stagnant.

iFolder had a great disadvantages compared to Unison: you need the server part! In many use cases Ubuntu Linux is used just on the client side and the server side is some other GNU/Linux based distribution. Having a static build of Unison (for Linux, FreeBSD, Solaris) we will only need a valid ssh account on another computer.

Architecture

  • based on openSLP [http://www.openslp.org/doc/html/IntroductionToSLP/index.html info]

  • the "fshare" Service Agent will broadcast it's shares
  • the "fshare" User Agent will gather broadcasts from other "fshares".
  • the "fshare" application will make the information gathered by User Agent available at a "fshare://" location in the file browser.
  • Location "fshare://blinky" will display all shares provided by node "blinky". Depending of the share type opening a share will redirect the file browser to a scp:// or ftp:// location.

  • public file sharing is using ftp
  • private file sharing is using scp
  • File synchronization works on top of private file using unison

Architecture

  • based on openSLP [http://www.openslp.org/doc/html/IntroductionToSLP/index.html info]

  • the "fshare" Service Agent will broadcast it's shares
  • the "fshare" User Agent will gather broadcasts from other "fshares".
  • the "fshare" application will make the information gathered by User Agent available at a "fshare://" location in the file browser.
  • Location "fshare://blinky" will display all shares provided by node "blinky". Depending of the share type opening a share will redirect the file browser to a scp:// or ftp:// location.

  • public file sharing is using ftp
  • private file sharing is using scp
  • File synchronization works on top of private file using unison
  • Unison has a GUI, but not a great one. Unison is more ambivalent about filesystems than iFolder (which just takes charge in sometimes destructive ways).
  • Unison requires ssh login, and is relatively time consuming. iFolder syncs itself in the background with a saved login. Unison would need an unprivileged account with only access to the sync folder on the remote machine. iFolder watches the file system for changes and can sync more cleverly. A Unison daemon could run which watches inotify.
  • A lightweight http server could be use for file sharing instead of ftp allowing the use of webdav enabled applications http://www.webdav.org

  • A further use case requiring something similar to iFolder enterprise mode would be: At work Anna has two computer (one laptop, one desktop) and a ssh account on the company's central server running a Unix-Like OS.The company sysadmin will not install any other software on the server. She wants to have it's application settings and documents synchronized (the newest version on each computer).


CategorySpec

MultipleComputersSynchronization (last edited 2008-08-06 16:26:19 by localhost)