The Syncables Framework

1,263 views

Published on

Manas Tungare, Pardha S. Pyla, Miten Sampat, Manuel Pérez-Quiñones; Syncables: A Framework to Support Seamless Data Migration Across Multiple Platforms; Proceedings of the IEEE International Conference on Portable Information Devices (IEEE Portable) 2007.

Published in: Economy & Finance, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,263
On SlideShare
0
From Embeds
0
Number of Embeds
64
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

The Syncables Framework

  1. 1. Syncables: A Framework to Support Seamless Data Migration Across Multiple Platforms Manas Tungare • Pardha Pyla • Miten Sampat Manuel Pérez Quiñones
  2. 2. Outline • Problems with Portable Information Devices • Information fragmentation • Inadequate support for task migration • Description of our Syncables framework • How the framework enables solving some of these problems
  3. 3. Problems with Multiple Portable Information Devices
  4. 4. Information is Fragmented Across Devices
  5. 5. Information is Fragmented Across Document types
  6. 6. Information is Fragmented Metadata is not preserved
  7. 7. No support for task migration
  8. 8. No support for task migration ?
  9. 9. Not all data is in files Contacts
  10. 10. Not all data is in files Calendar events
  11. 11. Not all data is in files Name of opened document Selected text Cursor position
  12. 12. The Syncables Framework
  13. 13. Syncable objects • Not necessarily files • Files are just a sub-type • Components • Name • InputStream • OutputStream • Extensible, defined by applications
  14. 14. Features • Information clusters • Devices that talk freely • Support for collections • Objects identified uniquely across devices
  15. 15. Naming scheme sync:// cluster-id / collection / type / path / object-name • URI – Uniform Resource Identifier • Some parts defined by framework • Other parts defined by application • sync:// protocol handler
  16. 16. Naming scheme sync:// cluster-id / collection / type / path / object-name • Cluster of devices • Devices that talk freely • Identified by a GUID • One device can belong to many clusters
  17. 17. Naming scheme sync:// cluster-id / collection / type / path / object-name • User-defined project-based collections • Emails, bookmarks, files, events, contacts can belong to the same collection • Reduces information fragmentation
  18. 18. Naming scheme sync:// cluster-id / collection / type / path / object-name • Object type: one of file, email, bookmark, event, contact, etc. • Each type is defined by a Syncable class • Version Tracker keeps track of objects
  19. 19. Naming scheme sync:// cluster-id / collection / type / path / object-name • Rest of the path defined by a specific implementation of a subclass of the Syncable class • Framework doesn’t care about semantics • Can be arbitrarily deep
  20. 20. Examples • sync://cluster-id/IEEE-Portable/File/Research/ Papers/Syncables.tex • sync://cluster-id/IEEE-Portable/Email/Perez/ Draft/3 • sync://cluster-id/IEEE-Portable/Calendar/ 2006/09/01/Meeting-With-Manuel • sync://cluster-id/IEEE-Portable/Note/Phone/ Reminders
  21. 21. Transcoding
  22. 22. Transcoding Plain text Accept: text/plain that can be read on a cell phone easily! PDF to TXT
  23. 23. Filtering
  24. 24. Filtering Today’s Events Where ______ ______ date = today ______
  25. 25. How it works
  26. 26. How it works GET sync://xyz/Vacation/
  27. 27. How it works GET sync://xyz/Vacation/
  28. 28. How it works GET sync://xyz/Vacation/ sync://xyz/Vacation/Calendar/2007-05-30 sync://xyz/Vacation/Email/Jane/Hotel-List sync://xyz/Vacation/Email/Jane/Air-Tickets sync://xyz/Vacation/ToDo/Book-Tickets sync://xyz/Vacation/Photos/Places-To-Visit sync://xyz/Vacation/Contacts/Adam-Smith ....
  29. 29. How it works GET sync://xyz/Vacation/ sync://xyz/Vacation/Calendar/2007-05-30 sync://xyz/Vacation/Email/Jane/Hotel-List sync://xyz/Vacation/Email/Jane/Air-Tickets sync://xyz/Vacation/ToDo/Book-Tickets sync://xyz/Vacation/Photos/Places-To-Visit sync://xyz/Vacation/Contacts/Adam-Smith .... { } GET sync://xyz/Vacation/Calendar/2007-05-30 Start: 2007-05-30T00:00:00Z End: 2007-06-15T00:00:00Z Title: Vacation
  30. 30. Grouped by Collection Vacation
  31. 31. Grouped by Collection Vacation
  32. 32. Versioning
  33. 33. Versioning GET sync://xyz/Vacation/?UpdatesSince=2007-02-01 sync://xyz/Vacation/Email/Jane/Hotel-List sync://xyz/Vacation/ToDo/Book-Tickets sync://xyz/Vacation/Contacts/Adam-Smith
  34. 34. Versioning GET sync://xyz/Vacation/?UpdatesSince=2007-02-01 sync://xyz/Vacation/Email/Jane/Hotel-List sync://xyz/Vacation/ToDo/Book-Tickets sync://xyz/Vacation/Contacts/Adam-Smith { } GET sync://xyz/Vacation/Email/Jane/Hotel-List From: Jane Doe <jane.doe@example.com> To: John Doe <john.doe@example.com> Subject: Hotel List
  35. 35. Ephemeral Data Request: GET sync://xyz/Context/Active-Application GET sync://xyz/Context/Opened-Document GET sync://xyz/Context/Cursor-Location GET sync://xyz/Context/Selected-Text Response: Apple Keynote ~/IEEE Portable Slides.key Slide=12,Paragraph=3,Line=1 “defined by application”
  36. 36. Summary of Features • On-demand migration of data across platforms • Support for data other than files, especially context information • Transcoding and filtering • Possibilities for collaboration and group sharing
  37. 37. Problems solved • Information fragmentation • Since information is grouped by collection • Eliminates the need to synchronize manually • Format independence: transcoding, filtering • Paving the way for seamless task migration
  38. 38. Future work • Use rsync • Peer-to-peer data migration • No master required • Evaluation in the field • Work towards migrating tasks
  39. 39. Questions ? ?

×