Session # 1481 - Copyright 2002 Sean C. Sullivan Data Synchronization with SyncML and Sync4j Sean C. Sullivan Software Architect Sync4j project.

Slides:



Advertisements
Similar presentations
SIP Servlets. SIP Summit SIP Servlets Problem Statement Want to enable construction of a wide variety of IP telephony.
Advertisements

Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
WEB SERVICES. FIRST AND FOREMOST - LINKS Tomcat AXIS2 -
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
SOAP: Simple Object Access Protocol CS 795/895. Reference links Video: 2-M.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
1 CENTER FOR PARALLEL COMPUTERS An Introduction to Globus Toolkit® 3 -Developing Interoperable Grid services.
1 An Introduction to Web Services. 2 Outline What is a Web service Background Standards –XML & XML Namespaces, XML Schema,WSDL, SOAP Tools & APIs –DOM/SAX,JAX-RPC/JAX-M.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
Understand Web Services
The 21th Century Repairman Agenda Introduction J2EE - Interface Subcontractor Manager Subcontractor Demonstration.
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.
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.
Copyright © 2001 Sean C. Sullivan* Third party trademarks are property of their respective owners Data Synchronization with SyncML * and sync4j Sean C.
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.
Getting Started with JXTA for J2ME Advisor : Dr. Ching-Long Yeh Report : DI.2, 洪泰昌 ( ) Course: XML 文件管理.
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
SSC2: Web Services. Web Services Web Services offer interoperability using the web Web Services provide information on the operations they can perform.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Web services: Why and How OOPSLA 2001 F. Curbera, W.Nagy, S.Weerawarana Nclab, Jungsook Kim.
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.
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Lecture 15 Introduction to Web Services Web Service Applications.
Web Services Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Java, Web Applications, and OSS Experience Prakash Malani Copyright © 2003.
CIS 644 Aug. 25, 1999 tour of Java. First … about the media lectures… we are experimenting with the media format please give feedback.
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.
© 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice HP Library Encryption - LTO4 Key.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
 2001 Prentice Hall, Inc. All rights reserved. 1 Chapter 23 — Simple Object Access Protocol (SOAP) and Microsoft BizTalk™ Outline 23.1Introduction 23.2Simple.
1 Web Service Description Language (WSDL) 大葉大學資工系.
Chapter 10 Intro to SOAP and WSDL. Objectives By study in the chapter, you will be able to: Describe what is SOAP Exam the rules for creating a SOAP document.
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.
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.
Using Software Design Patterns Bill Anderson. About me Fox developer since 1987 Fox developer since 1987 Program Director, Los Angeles Visual Foxpro Developers.
Implementation of SCENS Yan Zhao. Current Status Current implementation is web-based –
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.
Java Programming, Second Edition Chapter Twelve Advanced Inheritance Concepts.
Chapter 11: Advanced Inheritance Concepts. Objectives Create and use abstract classes Use dynamic method binding Create arrays of subclass objects Use.
14 October 2002GGF6 / CGS-WG1 Working with CIM Ellen Stokes
INFSO-RI Enabling Grids for E-sciencE Web Services Mike Mineter National e-Science Centre, Edinburgh.
Web Service Definition Language. Web Services: WSDL2 Web Service Definition Language ( WSDL ) What is a web service? [ F. Leymann 2003 ] A piece of code.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
WP3 Implementing R-GMA grid services in GT3 Abdeslem Djaoui & WP3 Grid Services Task Force 7 th EU Datagrid meeting 26/09/2003
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
SOAP, Web Service, WSDL Week 14 Web site:
Java High level programming language ◦ Sun Microsystems ◦ ORACLE acquired Java Development Kit – JDK Java Runtime Environment – JRE Java Virtual Machine.
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.
Added Value to XForms by Web Services Supporting XML Protocols Elina Vartiainen Timo-Pekka Viljamaa T Research Seminar on Digital Media Autumn.
Bedework Communications & Middleware Technologies Rensselaer Polytechnic Institute October 26, 2005 Bedework 3.0 (a.k.a.UWCalendar) an institute-wide.
BOF-1147, JavaTM Technology and WebDAV: Standardizing Content Management Java and WebDAV Juergen Pill Team Leader Software AG Remy Maucherat Software Engineer.
More Sophisticated Behavior
Web Programming Developing Web Applications including Servlets, and Web Services using NetBeans 6.5 with GlassFish.V3.
WEB SERVICES.
Introducing Java.
Presentation transcript:

Session # Copyright 2002 Sean C. Sullivan Data Synchronization with SyncML and Sync4j Sean C. Sullivan Software Architect Sync4j project

Session # Copyright 2002 Sean C. Sullivan2 Overall Presentation Goal or Primary Purpose Beginning Learn about the SyncML data synchronization protocol and the Sync4j project

Session # Copyright 2002 Sean C. Sullivan3 Learning Objectives As a result of this presentation, you will: –Understand the SyncML communication protocol –Understand the format and structure of SyncML messages –Understand the goals and architecture of the Sync4j project Beginning

Session # Copyright 2002 Sean C. Sullivan4 Speaker’s Qualifications Sean C. Sullivan is the Software Architect for the Sync4j project Sean has been building Java applications since March 1996 Sean is the author of “Programming with the Java Media Framework” Beginning

Session # Copyright 2002 Sean C. Sullivan5 Bridging the gap The SyncML data synchronization protocol bridges the gap between mobile applications and J2EE-based server applications. Beginning

Session # Copyright 2002 Sean C. Sullivan6 Presentation Agenda Data synchronization SyncML Sync4j Q & A Beginning

Session # Copyright 2002 Sean C. Sullivan7 What is data synchronization? Data synchronization “is the process of making two sets of data look identical” (source: syncml.org white paper)

Session # Copyright 2002 Sean C. Sullivan8 Data Synchronization Datastore1 Datastore2 ACBCABACB l Exchange data modifications l Resolve conflicts

Session # Copyright 2002 Sean C. Sullivan9 What is a “data synchronization protocol”? Method of communication for a data synchronization session Protocol features: –naming and identification of records –common protocol commands –identification and resolution of synchronization conflicts

Session # Copyright 2002 Sean C. Sullivan10 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)

Session # Copyright 2002 Sean C. Sullivan11 SyncML sponsors

Session # Copyright 2002 Sean C. Sullivan12 SyncML features Synchronize any type of data Multiple protocol bindings –HTTP, WSP, OBEX Security Interoperability

Session # Copyright 2002 Sean C. Sullivan13 client modifications SyncML: clients & servers SyncML server server modifications

Session # Copyright 2002 Sean C. Sullivan14 SyncML synchronization types Two-way sync Slow sync One-way sync from client only Refresh sync from client only

Session # Copyright 2002 Sean C. Sullivan15 SyncML synchronization types (cont.) One-way sync from server only Refresh sync from server only Server alerted sync

Session # Copyright 2002 Sean C. Sullivan16 SyncML terminology Message Package Command Status code Datastore Device info Meta info Capabilities exchange

Session # Copyright 2002 Sean C. Sullivan17 SyncML and XML Abbreviated naming convention –Ex: ”protocol version” is XML prolog is not required WBXML – WAP Binary XML

Session # Copyright 2002 Sean C. Sullivan18 SyncML documents DTD Meta info DTD Device info DTD

Session # Copyright 2002 Sean C. Sullivan19 document … … “A SyncML Message is a well-formed, but not necessarily valid, XML document.” (syncml.org) Contains data synchronization commands (operations)

Session # Copyright 2002 Sean C. Sullivan20 element 1.0 SyncML/1.0 session41 msg80386 …

Session # Copyright 2002 Sean C. Sullivan21 element cmd80486 …

Session # Copyright 2002 Sean C. Sullivan22 SyncML commands

Session # Copyright 2002 Sean C. Sullivan23 Meta Info document Contains sync session parameters … 586 …

Session # Copyright 2002 Sean C. Sullivan24 Device Info document Describes device capabilities For both client and server … … pda …

Session # Copyright 2002 Sean C. Sullivan25 Sync4j project Java implementation of SyncML protocol Sync4j client Sync4j server open source

Session # Copyright 2002 Sean C. Sullivan26 Sync4j audience developers who: –know Java but don’t know SyncML –know SyncML but may not know Java commercial application developers open source application developers

Session # Copyright 2002 Sean C. Sullivan27 API design ideas SAX API –standard set of interfaces –multiple implementations –usage model: callbacks JDOM API –concrete classes; single implementation –root Document object contains Element objects

Session # Copyright 2002 Sean C. Sullivan28 API design ideas (cont.) Servlet API –usage model: developer builds a new servlet by subclassing HTTPServlet Auto-generate API classes from DTD using an XML data-binding tool - ?

Session # Copyright 2002 Sean C. Sullivan29 Sync4j design goals Hide complexity of the SyncML specification from Java programmers –XML documents, XML parsing –multiple transport protocols A complete SyncML implementation Interoperability –with existing SyncML clients & servers

Session # Copyright 2002 Sean C. Sullivan30 Sync4j design goals (cont.) 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

Session # Copyright 2002 Sean C. Sullivan31 Sync4j design goals (cont.) API must be familiar to developers who already know the SyncML DTD’s API must enforce any restrictions that are defined in the SyncML specification

Session # Copyright 2002 Sean C. Sullivan32 Sync4j’s modular design “core” protocol message library transport protocol libraries extensible client framework extensible server framework client application server application

Session # Copyright 2002 Sean C. Sullivan33 Sync4j implementation Immutable objects Exception class for each SyncML “status code” Declaration of constants –public final static variables Command object hierarchy

Session # Copyright 2002 Sean C. Sullivan34 Sync4j command hierarchy AbstractCommand ResponseCommandRequestCommand AddCommand, DeleteCommand, ReplaceCommand, … ResultsCommand, StatusCommand

Session # Copyright 2002 Sean C. Sullivan35 Sync4j toolset Jakarta Ant JDOM Apache Xerces-J CVS log4j Sun JDK Sun J2EE SDK JUnit Apache Tomcat Netbeans

Session # Copyright 2002 Sean C. Sullivan36 Sync4j packages sync4j.core sync4j.transport sync4j.framework sync4j.client sync4j.server sync4j.tests

Session # Copyright 2002 Sean C. Sullivan37 Sync4j core classes Message DeviceInfo MetaInfo Command classes: –AddCommand –DeleteCommand –ReplaceCommand

Session # Copyright 2002 Sean C. Sullivan38 sync4j.core.Message Two ways to construct a Message object: –from a String of XML –from more basic sync4j objects

Session # Copyright 2002 Sean C. Sullivan39 Sync4j Message example 1 String strXML = “ … ”; Message msg; try { msg = new Message(strXML); } catch (InvalidMarkupException ex) { } catch (XMLSyntaxException ex) { }

Session # Copyright 2002 Sean C. Sullivan40 Sync4j Message example 2 SyncHeader header = new SyncHeader(...); SyncBody body = new SyncBody(...); Message msg; msg = new Message(header, body); String strXML = msg.toXML();

Session # Copyright 2002 Sean C. Sullivan41 Summary Use SyncML to synchronize data between mobile applications and server applications SyncML is a complex and powerful data synchronization protocol Sync4j hides the complexity of SyncML from Java programmers End

Session # Copyright 2002 Sean C. Sullivan42 For more information… End Please visit

Session # Copyright 2002 Sean C. Sullivan