PP16: Generic Synchronization
Lisa Dusseault <lisa@osafoundation.org> Sun, 27 January 2008 20:22 UTC
Return-path: <discuss-bounces@apps.ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com)
by megatron.ietf.org with esmtp (Exim 4.43)
id 1JJE1Y-0005tg-M6; Sun, 27 Jan 2008 15:22:40 -0500
Received: from discuss by megatron.ietf.org with local (Exim 4.43)
id 1JJE1X-0005tQ-0T for discuss-confirm+ok@megatron.ietf.org;
Sun, 27 Jan 2008 15:22:39 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org)
by megatron.ietf.org with esmtp (Exim 4.43) id 1JJE1W-0005tI-Mx
for discuss@apps.ietf.org; Sun, 27 Jan 2008 15:22:38 -0500
Received: from laweleka.osafoundation.org ([204.152.186.98])
by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1JJE1U-0004ob-IP
for discuss@apps.ietf.org; Sun, 27 Jan 2008 15:22:38 -0500
Received: from localhost (laweleka.osafoundation.org [127.0.0.1])
by laweleka.osafoundation.org (Postfix) with ESMTP id F25FB142245
for <discuss@apps.ietf.org>; Sun, 27 Jan 2008 12:22:38 -0800 (PST)
X-Virus-Scanned: by amavisd-new and clamav at osafoundation.org
Received: from laweleka.osafoundation.org ([127.0.0.1])
by localhost (laweleka.osafoundation.org [127.0.0.1]) (amavisd-new,
port 10024) with ESMTP id WBYxTRQw1IFl for <discuss@apps.ietf.org>;
Sun, 27 Jan 2008 12:22:32 -0800 (PST)
Received: from [192.168.1.101] (unknown [74.95.2.169])
(using TLSv1 with cipher AES128-SHA (128/128 bits))
(No client certificate requested)
by laweleka.osafoundation.org (Postfix) with ESMTP id 32512142217
for <discuss@apps.ietf.org>; Sun, 27 Jan 2008 12:22:32 -0800 (PST)
Mime-Version: 1.0 (Apple Message framework v752.3)
Content-Transfer-Encoding: 7bit
Message-Id: <CA2099FA-3445-4DA1-A982-AF626D9838B8@osafoundation.org>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
To: Apps Discuss <discuss@apps.ietf.org>
From: Lisa Dusseault <lisa@osafoundation.org>
Subject: PP16: Generic Synchronization
Date: Sun, 27 Jan 2008 12:22:25 -0800
X-Mailer: Apple Mail (2.752.3)
X-Spam-Score: -4.0 (----)
X-Scan-Signature: 1e467ff145ef391eb7b594ef62b8301f
X-BeenThere: discuss@apps.ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: general discussion of application-layer protocols
<discuss.apps.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/discuss>,
<mailto:discuss-request@apps.ietf.org?subject=unsubscribe>
List-Post: <mailto:discuss@apps.ietf.org>
List-Help: <mailto:discuss-request@apps.ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/discuss>,
<mailto:discuss-request@apps.ietf.org?subject=subscribe>
Errors-To: discuss-bounces@apps.ietf.org
Network Working Group C. Jennings Internet-Draft Cisco Intended status: Standards Track January 26, 2008 Expires: July 29, 2008 Generic Synchronization draft-jennings-apps-sync-00 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on July 29, 2008. Copyright Notice Copyright (C) The IETF Trust (2008). Abstract This brief note discusses the growing need for a standardized sync protocol for generic information and looks at one possibility for what such a protocol might look like. It lists some of the things people are syncing today, introduces a "ferry" concept of synchronization, and briefly sketches a possible synchronization scheme. Jennings Expires July 29, 2008 [Page 1] Internet-Draft SYNC January 2008 1. Introduction Synchronization is about keeping a set of data consistent between a set of devices. The classic example of this would be a user's Personal Address Book (PAB) but there are many other things that are becoming common to sync: media play lists, photo albums, missed call lists on phones or dialed call lists, task lists, gps location tracks, and many more. One way to deal with sync issues is to have a central server that is the master source of truth, with all the devices periodically connecting to that server and updating. However, in many situations having every device connect to a master source is impossible. This note is about synchronization in environments in which a centralized server architecture is impossible. This note looks at systems in which all the devices are equivalent and there is no master server that all devices can reach. This allows a device to act as ferry to bridge the synced information. As an example, I sync my PAB in my notebook computer to my phone using USB, and then I sync my phone to the navigation system in my car using bluetooth. In this case my phone has acted as a ferry to transfer the data from my PC to car. The car does not have internet connectivity and could not have contacted a central server. With the price of flash memory falling below $10 per gigabyte, phones, PDAs, and even just plain USB keys are rapidly becoming usable to synchronizing multiple gigabytes of data, making it practical to use a device like a phone as a ferry for music and video. The device that is acting as the ferry could easily synchronize information that it did not understand or use itself. The most critical functionality of any sync system is that a user never wants to see "you have 376 conflicts! how would you like to resolve them?" It is also important that any sync protocol be able to gracefully deal with syncs that have been brutally interrupted by events such as the plug being pulled out part way through the sync. It is also key that when the communication mechanism between the two devices is very slow, large chunks of data that do not need to be transferred should not be transferred. 2. Synchronization Approaches Data schemas that need to be synchronized need to be designed for this if you want them to have reasonable conflict resolution properties. This note uses two terms: record and fields. Records are just a collection of fields. Fields are an atomic piece of data from a synchronization point of view. A field can be more complex than a single data item. For example in a PAB, a telephone number Jennings Expires July 29, 2008 [Page 2] Internet-Draft SYNC January 2008 may contain an indication that it is a mobile, home or work number. This indication would likely be in the same field as the phone number since they need to handled as a single atomic unit when dealing with conflict resolution. However a PAB would not want the the email address and phone number in the same field because then you could not successfully synchronize in a situation in which one device has added a new phone number for a particular user and another device has added a new email address. The point of this is that the data schema needs to clearly outline what the atomic blocks are. The approach proposed here gives every record and field a UUID and fields have a time-stamp of when they were last modified. One can debate the issues with time synchronization but from a pragmatic point of view, just about every device today has a rough idea of time. The sync protocol starts with both sides exchanging their UUIDs and checking whether either device has any fields that are missing from the other and if so transferring them. For fields that have changed on both sides, the devices would compare the time-stamps and select the most recent one. It would be possible to query the users about resolving conflicts at this point but for many cases it would not be necessary. Deletion would be done by removing all the data from the field except the UUID and time-stamp, and marking a deleted flag on the field. Devices that were not capable of knowing the time could just slightly increment the time-stamp when they changed a field. Each device would also have a UUID; when a pair of devices had previously synced, they could optimize the sync by only exchanging records and fields that had changed since the previous sync. This type of sync protocol could be realized other ways. For example one could just have an XML file on a USB key that had all the records and fields in the file; the USB key would be used as a ferry between the devices to be synchronized. Author's Address Cullen Jennings Cisco 170 West Tasman Drive MS: SJC-21/2 San Jose, CA 95134 USA Phone: +1 408 421-9990 Email: fluffy@cisco.com Jennings Expires July 29, 2008 [Page 3] Internet-Draft SYNC January 2008 Full Copyright Statement Copyright (C) The IETF Trust (2008). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Jennings Expires July 29, 2008 [Page 4]
- PP16: Generic Synchronization Lisa Dusseault