Patrick Ohly 04.07.2009 © Copyright, 2009 Intel SyncEvolution – The Missing Link.

Slides:



Advertisements
Similar presentations
PCT303 – Content Publishing in SharePoint Eugene Rosenfeld Black Blade Associates
Advertisements

RPC Robert Grimm New York University Remote Procedure Calls.
Socket Layer Security. In this Presentation: need for web security SSL/TLS transport layer security protocols HTTPS secure shell (SSH)
Module 5: TLS and SSL 1. Overview Transport Layer Security Overview Secure Socket Layer Overview SSL Termination SSL in the Hosted Environment Load Balanced.
Protocols and the TCP/IP Suite
1 The Cryptographic Token Key Initialization Protocol (CT-KIP) Web Service Description KEYPROV WG IETF-68 Prague March 2007 Andrea Doherty.
Client/Server Architecture
Patrick Ohly © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,
Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Data Synchronization with SyncML * and sync4j Sean C.
SP2 Mikael Nystrom. Agenda Översikt Installation.
Product Offering Overview CONFIDENTIAL AND PROPRIETARY Copyright ©2004 Universal Business Matrix, LLC All Rights Reserved The duplication in printed or.
Host Identity Protocol
Managing Client Access
Module 4 Managing Client Access. Module Overview Configuring the Client Access Server Role Configuring Client Access Services for Outlook Clients Configuring.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
VPresent Collaborative Presentation System on Mobile Devices.
Process-to-Process Delivery:
© 2009 IBM Corporation 1 RTC ClearQuest Importer and Synchronizer Lorelei Ngooi – RTC ClearQuest Synchronizer Lead.
Patrick Ohly © Copyright, 2009 Intel. Project Overview © Copyright, 2009 Intel2.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Patrick Ohly © Copyright, 2012 Intel. IVI Features: Unified address book © Copyright, 2012 Intel2 Configurable set of enabled address books.
Enabling Embedded Systems to access Internet Resources.
HTML+JavaScript M2M Applications Viewbiquity Public hybrid cloud platform for automating and visualizing everything.
Xavier Lawrence March X. Lawrence - Synchronization of Calendars with a Calendar Server - 2 / 20 Presentation Overview Introduction Project Objectives.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
William Stallings Data and Computer Communications 7 th Edition Data Communications and Networks Overview Protocols and Architecture.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
(Business) Process Centric Exchanges
© 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice HP Library Encryption - LTO4 Key.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 03_b Protocol Layering Instructor: Dr. Li-Chuan Chen Date: 09/15/2003 Based in part upon slides of Prof.
Microsoft ® Business Solutions–Navision ® 4.0 Development II - C/SIDE Solution Development Day 5.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
Chapter 2 Protocols and the TCP/IP Suite 1 Chapter 2 Protocols and the TCP/IP Suite.
Copyright © 2012 UNICOM Systems, Inc. Confidential Information z/Ware Product Overview illustro Systems International A Division of UNICOM Global.
Patrick Ohly © Copyright, 2010 Intel. SyncML – Freedom of Choice, No Vendor Lock-In Over the Air SyncML Server Google, ScheduleWorld, Funambol,
CHAPTER 4 PROTOCOLS AND THE TCP/IP SUITE Acknowledgement: The Slides Were Provided By Cory Beard, William Stallings For Their Textbook “Wireless Communication.
IS-907 Java EE World Wide Web - Overview. World Wide Web - History Tim Berners-Lee, CERN, 1990 Enable researchers to share information: Remote Access.
1 Chapters 2 & 3 Computer Networking Review – The TCP/IP Protocol Architecture.
Stanford GSB High Tech Club Tech 101 – Session 1 Introduction to Software, Distributed Architectures, and ASPs Presented by Shawn Carolan Former Manager.
FCM Workflow using GCM.
Web Technologies Lecture 1 The Internet and HTTP.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
Mapping Salutation to Bluetooth 4 Overview 4 Bluetooth Summary 4 Salutation Architecture Summary 4 Mapping Bluetooth SDP to Salutation APIs 4 Mapping Bluetooth.
Barnett Trzcinski September 13, Overview Stores a To-Do List Task, Due Date, Completed Persistent on Server Google App Engine.
Web Services An Introduction Copyright © Curt Hill.
IPS Infrastructure Technological Overview of Work Done.
AFS/OSD Project R.Belloni, L.Giammarino, A.Maslennikov, G.Palumbo, H.Reuter, R.Toebbicke.
DAT602 Database Application Development Lecture 1 Course Structure & Background knowledge.
Exploring Networked Data and Data Stores Lesson 3.
Session # Copyright 2002 Sean C. Sullivan Data Synchronization with SyncML and Sync4j Sean C. Sullivan Software Architect Sync4j project.
XML and Distributed Applications By Quddus Chong Presentation for CS551 – Fall 2001.
RTLAB Object Exchange Protocol OBEX Lee, Seungryun RTLAB.
Redmond Protocols Plugfest 2016 Andrew Davidoff Exchange 2016 Protocol Overview Senior Software Engineer.
Redmond Protocols Plugfest 2016 Jinghui Zhang Office Interoperability Test Tools (Test Suites and Open Source Projects) Software Engineer Microsoft Corporation.
BY : MS ARTI B BAVANE. INTRODUCTION Formed on February 15,2010. Jointly found by two pillars Intel and Nokia by joining their existing open source projects.
Computer Networking A Top-Down Approach Featuring the Internet Introduction Jaypee Institute of Information Technology.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Integrating ArcSight with Enterprise Ticketing Systems
Integrating ArcSight with Enterprise Ticketing Systems
The Client-Server Model
z/Ware 2.0 Technical Overview
Chapter 2: Operating-System Structures
Part I. Overview of Data Communications and Networking
CHAPTER 3 Architectures for Distributed Systems
Chapter 3: Windows7 Part 4.
Process-to-Process Delivery:
Computer Networking A Top-Down Approach Featuring the Internet
Computer Networks Protocols
Presentation transcript:

Patrick Ohly © Copyright, 2009 Intel SyncEvolution – The Missing Link

Project Overview © Copyright, 2009 Intel2

History: SyncEvolution more than Moblin © Copyright, 2009 Intel3 Patrick’s “coming out”: first talk at open source conference SyncEvolution: spare time project for >3 years, now full-time So far: SyncML client for Evolution, Maemo, iPhone+Mac OS X, KDE (?!), Moblin 2.0 More to come: direct synchronization

SyncML – Freedom of Choice, No Vendor Lock-In Over the Air SyncML Server Google, ScheduleWorld, OpenGroupware, Synthesis, ZYB,... SyncML Server Google, ScheduleWorld, OpenGroupware, Synthesis, ZYB,... Google Sync PIM: Contacts, Events, Tasks, Notes © Copyright, 2009 Intel< Over The Air Sync

© Copyright, 2009 Intel8 Swiss company with >10y experience with SyncML, owned by the two main developers Synthesis SyncML Engine: C++ implementation of client and server, data merging and conversion Stable C API+ABI LGPL Funambol: three different code bases, no stable ABI, AGPL v3 libsyncml: only lower protocol layers, lacks synchronization engine OpenSync/Conduit: no/limited (?) data conversion Synthesis

Components © Copyright, 2009 Intel9 SyncEvolution: User interface (command line, GTK GUI) Configuration handling Local data backends (Evolution Data Server, Mac OS X Address Book, files) Message transport (HTTP via libsoup/libcurl) Test suite libsynthesis: SyncML protocol (up to very complete) Data conversion, merging, database storage (ODBC) libsmltk (SyncML Toolkit): Message encoding/decoding (XML + WBXML)

D-Bus Evolution Backend D-Bus Server Command Line CPPUnit Testing SyncEvolution Core Synthesis Glue Synthesis Coretransport lib Synthesis Glue SyncML Server HTTP(S) GNOME Evolution Data Server libecal/ebook D-Bus libical GTK GUI

SyncML: Client/Server Architecture © Copyright, 2009 Intel11 PIM Sync Challenges: It can eat your data?!

PIM Sync + Interoperability Challenges © Copyright, 2009 Intel12 1.No globally unique ID. 2.Different representation of data. 3.Offline updates allowed: what is the most recent data? 4.Must support standard formats, including legacy ones (vCalendar). 5.Must work with limited knowledge about peers (capabilities, behavior).

SyncML as Protocol © Copyright, 2009 Intel13 “slow sync” - client sends all items, server compares, sends updates back “normal sync” - exchange of updates Resilient – suspend&resume (voluntarily or due to loss of connection), resend messages Avoid overloading peer: maximum message size, flow control Device Capability description

SyncML Client © Copyright, 2009 Intel14 Easy to implement, less complex side List items and changes since last sync session, using locally unique ID Import and export items, either in standard format or Synthesis representation Data merging optional (supported by Synthesis engine)

SyncML Server © Copyright, 2009 Intel15 Convert data between clients Map between local IDs Handle conflicts: – Fixed policy in HTTP servers – More flexible in desktop apps?! Merge incomplete updates received from dumb clients with complete item on server Synthesis: same datastore API as on client side

Synthesis Data Handling © Copyright, 2009 Intel16 Specified via XML config: new data formats can reuse existing mechanisms. Field list declares internal format and key properties for matching items. Conversion to and from external formats via one or more profiles; can be parameterized. Can use modification time stamps and different conflict resolution policies (duplicate, merge). Uses Device Capabilities: solves the “property removed or not supported?” problem.

Next Steps + Getting Involved © Copyright, 2009 Intel Confidential17

Next Steps © Copyright, 2009 Intel release Sync in background + recovery Support more local backends (need contributors!) Direct device-to-device sync

HTTP POST Reply OBEX GET OBEX PUT Server Stubs Sync Engine + UIs Data Storage Transports Evolution Data Server syncevo-dbus-server SyncML Client (Netbook) SyncML Server (Desktop) HTTP Daemon OBEXD libopenobex? libsoup Local Machine (Desktop, Netbook, Phone) SyncML Server (Internet) SyncML Client (Phone) Peers contacting us Peers contacted by us Panel Applet GUI: sync-ui CLI: syncevolution HTTP POST Reply OBEX PUT OBEX GET

Getting Involved © Copyright, 2009 Intel20 Mailing list, also on Gmane bugzilla.moblin.org with enhancement ideas “SyncML Client Do-it-yourself Style” LWN.net article, long version on moblin.org

© Copyright, 2009 Intel21