Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Data Synchronization with SyncML * and sync4j Sean C.

Slides:



Advertisements
Similar presentations
Chapter 6 Server-side Programming: Java Servlets
Advertisements

J0 1 Marco Ronchetti - Web architectures – Laurea Specialistica in Informatica – Università di Trento Java XML parsing.
SIP Servlets. SIP Summit SIP Servlets Problem Statement Want to enable construction of a wide variety of IP telephony.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
SOAP.
SOAP : Simple Object Access Protocol
SOAP: Simple Object Access Protocol CS 795/895. Reference links Video: 2-M.
Scale Up Access to your 4GL Application using Web Services
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
J2ME Web Services Specification.  With the promise to ease interoperability and allow for large scale software collaboration over the Internet by offering.
XML Technologies and Applications Rajshekhar Sunderraman Department of Computer Science Georgia State University Atlanta, GA 30302
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Copyright © 2002 Sean C. Sullivan XML case study: SyncML Sean C. Sullivan at.
SIP Programming : SIP has texture encoding feature. [1] SIP allows third parties or user to program SIP follows HTTP programming model.
Copyright, 1996 © Dale Carnegie & Associates, Inc. Digital Certificates Presented by Sunit Chauhan.
Chapter 10 Classes Continued
Web Services and OGSA Tal Lavian, Phil Wang. What Are Web Services? ● Conventions for program-to-program Communication ● Built on existing Web infrastructure.
1 Simple Object Access Protocol (SOAP) by Kazi Huque.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
Patrick Ohly © Copyright, 2009 Intel. Project Overview © Copyright, 2009 Intel2.
Patrick Ohly © Copyright, 2009 Intel SyncEvolution – The Missing Link.
SOA-12: Integrate over the Web with OpenEdge® Web Services
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Presentation: SOAP in a distributed object framework, Application Servers & AXIS SOAP.
OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2.
Xavier Lawrence March X. Lawrence - Synchronization of Calendars with a Calendar Server - 2 / 20 Presentation Overview Introduction Project Objectives.
Web Services An introduction for eWiSACWIS May 2008.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Open Data Protocol * Han Wang 11/30/2012 *
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
© 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice HP Library Encryption - LTO4 Key.
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
1 Web Service Description Language (WSDL) 大葉大學資工系.
1 Web Services Web and Database Management System.
XML and Web Services (II/2546)
Update on CORBA Support for Babel RMI Nanbor Wang and Roopa Pundaleeka Tech-X Corporation Boulder, CO Funded by DOE OASCR SBIR.
Server-side Programming The combination of –HTML –JavaScript –DOM is sometimes referred to as Dynamic HTML (DHTML) Web pages that include scripting are.
© 2009 Research In Motion Limited Advanced Java Application Development for the BlackBerry Smartphone Trainer name Date.
Presentation on MDAS API, WD1 ©2001 Farance Inc.1 MDAS API Presentation On WD1 Frank Farance, Farance Inc
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
1 Registry Services Overview J. Steven Hughes (Deputy Chair) Principal Computer Scientist NASA/JPL 17 December 2015.
FIPA Abstract Architecture London FIPA meeting January 24-29, 2000 from: TC-A members.
Presentation on xx WD3 ©2002 Farance Inc.1 MDAS API Presentation On xx WD3 Frank Farance, Farance Inc
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
Chapter 11: Advanced Inheritance Concepts. Objectives Create and use abstract classes Use dynamic method binding Create arrays of subclass objects Use.
HTTP protocol Java Servlets. HTTP protocol Web system communicates with end-user via HTTP protocol HTTP protocol methods: GET, POST, HEAD, PUT, OPTIONS,
1 WSDL Web Services Description Language. 2 Goals of WSDL Describes the formats and protocols of a Web Service in a standard way –The operations the service.
14 October 2002GGF6 / CGS-WG1 Working with CIM Ellen Stokes
Web Service Definition Language. Web Services: WSDL2 Web Service Definition Language ( WSDL ) What is a web service? [ F. Leymann 2003 ] A piece of code.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
SOAP, Web Service, WSDL Week 14 Web site:
Session # Copyright 2002 Sean C. Sullivan Data Synchronization with SyncML and Sync4j Sean C. Sullivan Software Architect Sync4j project.
Redmond Protocols Plugfest 2016 Andrew Davidoff Exchange 2016 Protocol Overview Senior Software Engineer.
1 Seminar: Pervasive Computing 2004 Automatic mobile device configuration: Status & open challenges Stefan Hoferer Supervisor: Andreas Fasbender.
Redmond Protocols Plugfest 2016 Jinghui Zhang Office Interoperability Test Tools (Test Suites and Open Source Projects) Software Engineer Microsoft Corporation.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Outline SOAP and Web Services in relation to Distributed Objects
Outline SOAP and Web Services in relation to Distributed Objects
Knowledge Byte In this section, you will learn about:
Presentation transcript:

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Data Synchronization with SyncML * and sync4j Sean C. Sullivan at

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Agenda l Data synchronization l SyncML l sync4j l Q & A

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners What is data synchronization? Data synchronization “is the process of making two sets of data look identical” (syncml.org whitepaper)

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Data Synchronization l Conflict resolution Datastore1 l Data modifications Datastore2 ACBCABACB

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners What is a “data synchronization protocol”? l Communication syntax and semantics for a data synchronization session l Protocol includes: –naming and identification of records –common protocol commands –identification and resolution of synchronization conflicts

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML defined… “SyncML is a new industry initiative to develop and promote a single, common data synchronization protocol that can be used industry-wide.” (syncml.org) “SyncML is a specification for a common data synchronization framework and XML-based format […] for synchronizing data on networked devices.” (syncml.org) “SyncML is a […] protocol for conveying data synchronization operations.” (syncml.org)

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML sponsors

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML: clients & servers SyncML server server modifications client modifications

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML data identification LUIDData 23A 382B 61C GUIDData 189A 3982B 89C Client Server GUIDLUID

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML Synchronization Types l Two-way sync l Slow sync l One-way sync from client only l Refresh sync from client only

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML Synchronization Types (cont.) l One-way sync from server only l Refresh sync from server only l Server alerted sync

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML features l Synchronize any type of data l Multiple protocol bindings –HTTP, WSP, OBEX l Security l Interoperability

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML terminology l Message l Package l Command l Status code l Datastore l Device Info l Meta Info l Capabilities exchange

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML and XML l Abbreviated naming convention –Ex: ”protocol version” is l XML prolog is not required l WBXML – WAP Binary XML

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML documents l DTD l Meta info DTD l Device info DTD

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners document … … l “A SyncML Message is a well-formed, but not necessarily valid, XML document.” (syncml.org) l Contains data synchronization commands (operations)

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners element 1.0 session41 msg80386 …

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners element cmd80486 …

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Meta Info document l Contains sync session parameters … 586 …

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Device Info document l Describes device capabilities l For both client and server … … pda …

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML commands l Add l Alert l Atomic l Copy l Delete l Exec l Get l Map l Put l Replace l Results l Search l Sequence l Status l Sync

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners sync4j l Java implementation of SyncML protocol l sync4j client & sync4j Server l open source l designed for J2SE platform l

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Open source licensing l Licensing options: –GPL? –LGPL? –BSD? –Apache Public License? –JDOM public license? –Mozilla Public License (MPL)? l sync4j license is virtually identical to JDOM license

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners sync4j audience l developers who know Java but don’t know SyncML l developers who know SyncML but may not know Java l commercial application developers & open source application developers

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners API design ideas l SAX API –standard set of interfaces –multiple implementations –usage model: callbacks l JDOM API –concrete classes; single implementation –root Document object contains Element objects

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners API design ideas (cont.) l Servlet API –usage model: developer builds a new servlet by subclassing HTTPServlet l Auto-generate classes from DTD using an XML data-binding tool?? –Sun’s JAXB –Enhydra’s Zeus

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Design goals l Hide complexity of the SyncML specification from Java programmers –XML documents, XML parsing –multiple transport protocols l A complete SyncML implementation l Interoperability –with existing SyncML clients & servers

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Design goals (cont.) l API should be natural and familiar to Java programmers –direct object instantiation –exceptions –use Collection API / arrays, where appropriate –event notification via event listeners –familiar naming conventions

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Design goals (cont.) l API must be familiar to developers who already know the SyncML DTD’s l API must enforce any restrictions that are defined in the SyncML specification l Target platform: J2SE

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Design goals (cont.) l Modular design: –“core” protocol support –transport protocol libraries –extensible client framework –extensible server framework –client application –server application

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners sync4j implementation l Immutable objects l Exception class for each SyncML “status code” l Declaration of constants –public final static variables l Command object hierarchy

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners sync4j command hierarchy AbstractCommand ResponseCommandRequestCommand AddCommand, DeleteCommand, ReplaceCommand, … ResultsCommand, StatusCommand,

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners sync4j toolset ToolURL Jakarta Antjakarta.apache.org JDOMwww.jdom.org Apache Xerces-Jxml.apache.org CVSwww.cygwin.com log4jwww.log4j.org JDK 1.3.1java.sun.com JUnitwww.junit.org SourceForgewww.sourceforge.net

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners sync4j packages l sync4j.core l sync4j.client l sync4j.server l sync4j.http l sync4j.wsp l sync4j.obex l sync4j.tests

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners sync4j key classes l SyncMLMessage l DeviceInfo l MetaInfo l Command classes: –AddCommand –DeleteCommand –ReplaceCommand

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners sync4j.core.SyncMLMessage l Two ways to construct: –from a String of XML –from more basic sync4j objects

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncMLMessage example 1 String strXML = “ … ”; SyncMLMessage msg; try { msg = new SyncMLMessage(strXML); } catch (InvalidSyncMLException ex) { } catch (XMLSyntaxException ex) { }

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncMLMessage example 2 SyncHeader header = new SyncHeader(...); SyncBody body = new SyncBody(...); SyncMLMessage msg; msg = new SyncMLMessage(header, body); String strXML = msg.toXML();

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Algorithms l Base64 –encode, decode l WBXML –encode, decode l MD5 –java.security.MessageDigest

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners sync4j future issues l Compliance testing, interoperability tests l move to JDK 1.4? –Assert facility –Java Logging API –New I/O classes: java.nio –SSL class library

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Summary l SyncML is both complex and powerful l sync4j hides the complexity of SyncML from Java programmers l The sync4j API is consistent with many familiar Java programming idioms l

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Data Synchronization with SyncML * and sync4j Sean C. Sullivan at

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners The following slides are miscellaneous material.

Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners SyncML authentication l l Authentication types: –basic –MD5