The Syncables Framework

39
Syncables: A Framework to Support Seamless Data Migration Across Multiple Platforms Manas Tungare Pardha Pyla Miten Sampat Manuel Pérez Quiñones

description

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.

Transcript of The Syncables Framework

Page 1: The Syncables Framework

Syncables: A Framework to Support Seamless Data Migration

Across Multiple Platforms

Manas Tungare • Pardha Pyla • Miten SampatManuel Pérez Quiñones

Page 2: The Syncables Framework

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

Page 3: The Syncables Framework

Problems with Multiple Portable Information

Devices

Page 4: The Syncables Framework

Information is FragmentedAcross Devices

Page 5: The Syncables Framework

Information is FragmentedAcross Document types

Page 6: The Syncables Framework

Information is FragmentedMetadata is not preserved

Page 7: The Syncables Framework

No support for task migration

Page 8: The Syncables Framework

No support for task migration

?

Page 9: The Syncables Framework

Not all data is in files

Contacts

Page 10: The Syncables Framework

Not all data is in files

Calendar events

Page 11: The Syncables Framework

Not all data is in files

Selected textCursor position

Name of opened document

Page 12: The Syncables Framework

The Syncables Framework

Page 13: The Syncables Framework

Syncable objects

• Not necessarily files

• Files are just a sub-type

• Components

• Name• InputStream• OutputStream

• Extensible, defined by applications

Page 14: The Syncables Framework

Features

• Information clusters

• Devices that talk freely

• Support for collections

• Objects identified uniquely across devices

Page 15: The Syncables Framework

Naming scheme

• URI – Uniform Resource Identifier

• Some parts defined by framework

• Other parts defined by application

• sync:// protocol handler

sync:// cluster-id / collection / type / path / object-name

Page 16: The Syncables Framework

Naming scheme

• Cluster of devices

• Devices that talk freely

• Identified by a GUID

• One device can belong to many clusters

sync:// cluster-id / collection / type / path / object-name

Page 17: The Syncables Framework

Naming scheme

• User-defined project-based collections

• Emails, bookmarks, files, events, contacts can belong to the same collection

• Reduces information fragmentation

sync:// cluster-id / collection / type / path / object-name

Page 18: The Syncables Framework

Naming scheme

• Object type: one of file, email, bookmark, event, contact, etc.

• Each type is defined by a Syncable class

• Version Tracker keeps track of objects

sync:// cluster-id / collection / type / path / object-name

Page 19: The Syncables Framework

Naming scheme

• 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

sync:// cluster-id / collection / type / path / object-name

Page 20: The Syncables Framework

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

Page 21: The Syncables Framework

Transcoding

Page 22: The Syncables Framework

Transcoding

Plain text that can be read on a cell phone

easily!

Accept: text/plain

PDF to TXT

Page 23: The Syncables Framework

Filtering

Page 24: The Syncables Framework

Filtering

Today’s Events

__________________

Wheredate = today

Page 25: The Syncables Framework

How it works

Page 26: The Syncables Framework

How it worksGET sync://xyz/Vacation/

Page 27: The Syncables Framework

How it worksGET sync://xyz/Vacation/

Page 28: The Syncables Framework

How it worksGET sync://xyz/Vacation/

sync://xyz/Vacation/Calendar/2007-05-30sync://xyz/Vacation/Email/Jane/Hotel-Listsync://xyz/Vacation/Email/Jane/Air-Ticketssync://xyz/Vacation/ToDo/Book-Ticketssync://xyz/Vacation/Photos/Places-To-Visitsync://xyz/Vacation/Contacts/Adam-Smith....

Page 29: The Syncables Framework

How it worksGET sync://xyz/Vacation/

sync://xyz/Vacation/Calendar/2007-05-30sync://xyz/Vacation/Email/Jane/Hotel-Listsync://xyz/Vacation/Email/Jane/Air-Ticketssync://xyz/Vacation/ToDo/Book-Ticketssync://xyz/Vacation/Photos/Places-To-Visitsync://xyz/Vacation/Contacts/Adam-Smith....

GET sync://xyz/Vacation/Calendar/2007-05-30

Start: 2007-05-30T00:00:00ZEnd: 2007-06-15T00:00:00ZTitle: Vacation{ }

Page 30: The Syncables Framework

Grouped by Collection

Vacation

Page 31: The Syncables Framework

Grouped by Collection

Vacation

Page 32: The Syncables Framework

Versioning

Page 33: The Syncables Framework

VersioningGET sync://xyz/Vacation/?UpdatesSince=2007-02-01

sync://xyz/Vacation/Email/Jane/Hotel-Listsync://xyz/Vacation/ToDo/Book-Ticketssync://xyz/Vacation/Contacts/Adam-Smith

Page 34: The Syncables Framework

VersioningGET sync://xyz/Vacation/?UpdatesSince=2007-02-01

sync://xyz/Vacation/Email/Jane/Hotel-Listsync://xyz/Vacation/ToDo/Book-Ticketssync://xyz/Vacation/Contacts/Adam-Smith

GET sync://xyz/Vacation/Email/Jane/Hotel-List

From: Jane Doe <[email protected]>To: John Doe <[email protected]>Subject: Hotel List{ }

Page 35: The Syncables Framework

Ephemeral Data

Request:

GET sync://xyz/Context/Active-ApplicationGET sync://xyz/Context/Opened-DocumentGET sync://xyz/Context/Cursor-LocationGET sync://xyz/Context/Selected-Text

Response:

Apple Keynote~/IEEE Portable Slides.keySlide=12,Paragraph=3,Line=1“defined by application”

Page 36: The Syncables Framework

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

Page 37: The Syncables Framework

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

Page 38: The Syncables Framework

Future work

• Use rsync

• Peer-to-peer data migration

• No master required

• Evaluation in the field

• Work towards migrating tasks

Page 39: The Syncables Framework

Questions

??