Design and Implementation of SyncML Data Synchronization System based on Session Manager (Byung-Yun Lee) (Gil-Haeng Lee) (Jin-Hyun Cho) (Soo-Hee Ryu) (Hoon Choi) PDA,,, (synchronization) 2000 12,, IBM SyncML PIMS(Personal Information Management System), SyncML PIMS, :,,, Abstract : Synchronization is the process of making replicated data on multiple devices be consistent, ie, identical with each other In Dec 2000, major handheld computer manufacturers including Nokia, Ericsson, IBM published the SyncML protocol specification In this paper, we describe the CNU SyncML server for PIMS(Personal Information Management System) service that we developed based on the SyncML specification The server architecture and capabilities of the frames are presented along with the procedure of message processing by each frame We put the CNU SyncML server to the conformance tests and interoperability tests to confirm its functionality The session managing mechanism of the CNU SyncML server showed better performance than our previous implementations Key Words : SyncML(Synchronization Markup Language), PIMS, Data Synchronization Server, Session Manager 1 (Internet), (ISP, Internet Service Provider), (PIMS : Personal Information Management System),, 1 BK21 2 1
[ 1] SyncML, (synchronization), PDA(Personal Data Assistant) [1,2] [1] ( ) Palm Computing Compaq Starfish Synchrologic Hot Sync ActiveSync StarTAC Mobile Organizer 4 RealSync Server: PDA Email PIM imobile Data Synchronization : imobile Systems Management : imobile File Distribution : [1],, 2000 2 IBM, Lotus, Motorola, Nokia, Palm, Psion, Starfish Software SyncML(Synchronization Markup Language) [1] SyncML,,, 2000 12 SyncML 10 101 SyncML 600, SyncML 20 [2] SyncML 101 SyncML,,, 2
2 SyncML, 3 4 5 2 SyncML SyncML /, [3] SyncML (Representation) [4], (Synchronization) [5], [6] SyncML HTTP, WSP(Wireless Session Protocol), OBEX(OBject EXchange Protocol), SyncML SyncML (Data Representation Protocol),, XML(Extensible Markup Language)DTD(Document Type Definition) SyncML [4,7] XML WBXML(Wireless Binary XML) [ 2] SyncML SyncML [2] [8] (SyncHdr) (SyncBody), [2] 5 SyncML SyncML 3
[2] SyncML SyncML Archive, Chal, Cmd, Final, Lang, LocName, LocURI, MsgID, NoResp, NoResults, RespURI, SessionID, Source, Target SyncML SyncML, SyncHdr, SyncBody SyncML Data, Item, Meta Status Status SyncML Body Add, Alert, Atomic, Copy, Delete, Exec, Get, Map, MapItem, Put, Replace, Results, Search, Sequence, Sync SyncML,,, SyncML [5] SyncML, SyncML SyncML,,, DTD(Document Type Definition) SyncML, 7 Two-way Synchronization, SyncML Slow Sync, One-way Synchronization from Client Only SyncML SyncML, Refresh Sync from Client Only SyncML SyncML, One-way Synchronization from Server Only SyncML SyncML, Refresh Sync from Server Only SyncML SyncML, 4
Server Alerted Sync 6, 3 [ 3] SyncML, (Server Application), (Sync Adapter) SyncML (Toolkit), Sync Agent SyncML, Sync Engine Sync Agent Session Manager, Open DB Interface (DLL), HTTP, DLL JNI(Java Native Interface) [9,10] [ 3] Sync Agent, MIME, Sync Agent (parser), (Add), (Replace), (Delete) Sync Agent Sync Agent Command Handler, Command Builder, Message Handler 3 5
311 Command Handler Command Handler Sync Engine Open DB Interface, Session Manager Command Handler 312 Command Builder Command Builder, 313 Message Handler Message Handler, Add, Replace, Delete Sync, Atomic, Sequence Message Handler, Request Command Handler SyncML Message Handler, SyncBody Sync Engine Service Dependent Handler, Conflict Resolution, Authentication Handler, Utility 4 321 Service Dependent Handler SyncML,,, SyncML, SyncML, 322 Conflict Resolution,, (temporal conflict) (semantic conflict) [10],, 323 Authentication Handler SyncML SyncML Basic MD5, 324 Utility 6
, Utility SyncML DLL Session Manager,, Status, Results Session Manager DLL I/O Session Manager Session Manager, RPC(Remote Procedure Call) SyncML [11] [ 4]RPC SyncML [ 4] RPC SyncML, PIMS (Personal Information Management System) PIMS Open DB Interface (contents) SYNC, ADDRESSBOOK, CALENDAR MAPINFO CHANGELOG [3] PIMS ANCHOR SyncML USERINFO (URI, Credential, Nonce ) NONCEPERDB MimeType Nonce 7
SyncML Windows 2000, 8i Visual C++ 60, 5 DLL HTTP 1312, Tomcat 30 Java Class, Sync Agent JNI(Java Native Interface) [9] [ 5] SyncML SyncML, PIMS (1) / / (2) (2-way Sync) (3) DBAdapter / / (4) DBAdapter SyncML (5) (6), (7) Command Handler,, Session Manager, Sync EngineService Dependent Handler (8) Service Dependent Handler Open DB (conflict) (9) ChangeLog (10) Status (11) ChangeLog / / (12) Map, ChangeLog (13) SyncML (14) (15), ChangeLog 8
(16) SyncML Status, Map (17) Map, Map, ChangeLog Status [ 6] Change Log Information [ 6] USERINFO jylee 2, 2 GUID (R), [ 7]SyncML GUID LUID SyncML Anchor [3] Anchor ISO 8601 UTC (Universal Time, Coordinated) [5], Anchor, Anchor Anchor, (Slow Sync) 4 [ 7] (Conformance Test) (Interoperability Test) SyncML SIC(SyncML Interoperability Committee) [ 8] SyncML [1] SyncML SIC SICS(SyncML Implementation Conformance Statement) 12 SICS 9
[4] SyncML Two-way with Client & Empty Server Two-way with Client Add & Server Add Two-way with Client Replace & Server Replace Two-way with Client delete & Server Delete Two-way with Client Add (shows empty server sync data) Two-way with Server Add (shows empty client sync data) Two-way with Server with large amount of data (shows multiple message) Two-way with Client with large amount of data (shows multiple message) Two-way with Server responding busy Two-way with Server not responding Two-way with Communication broken during sync Two-way Slow Sync SyncML Vendor SICS Proforma SIC Legend Vendor SICS Return SICS SyncML Interoperability Testing Process SIC Static Conformance review review pass SyncML vendor Conformance Test Case /Test Tool report form SIC Review Passed "SyncML Conformant" SyncML Vendor Conformance SIC wwwsyncmlorg / SICS published [ 8] SyncML SyncML (Interoperability Test)SyncML Conformance SyncFest SyncML SyncFest, SyncFest 10
, 12 5 CNU SyncML Server [5] SyncML CNU SyncML Server 20, CNU SyncML Server 30, CNU SyncML Server 31 CNU SyncML Server 20 Session Manager, CNU SyncML Server 30 Session Manager,, CNU SyncML Server 31 Session Manager, ADD, REPLACE, DELETE, PUT, GET, [5] 10 2 Two-way Sync Slow Sync 500 One-way Sync from Client One-way Sync from Server Refresh Sync from Client only Refresh Sync from Server only [ 9]CNU SyncML Server CNU SyncML Server 31 Session Manager,,, Server 20 44%, CNU SyncML Server 30 31% 11
[ 9] CNU SyncML Server SyncML Server,,,, CNU SyncML Server 31 Session Manager, 6, SyncML SyncML SyncML 5 SyncML, Sync Agent Sync Engine, Sync Engine,, Session Manager,,, SyncML C++,, 12
[1] SyncML Initiative, http://wwwsyncmlorg [2] SyncML Initiative, Building an Industry-Wide Mobile Data Synchronization Protocol, SyncML White Paper, Mar 20, 2000 [3] SyncML Initiative, SyncML Architecture Version 02, May 10, 2000 [4] SyncML Initiative, SyncML Representation Protocol, version 101, June 15,2001 [5] SyncML Initiative, SyncML Synchronization Protocol, version 101, June 15,2001 [6] SyncML Initiative, SyncML HTTP Binding, version 101, June 15,2001 [7] Extensible Markup Language (XML) 10 Second Edition), http://wwww3org/tr/rec-xml [8],,, SyncML, 2001 7,pp324-336, July 2001 [9] SyncML Initiative, SDA2 Specification Version 02, Aug 21,2000 [10],,,, Technical Document,, Jan, 2002 [11] JiYeon Lee,ChangHoe Kim,Hoon Choi, Implementation of the Session Manager for a Stateful Server, IEEE TENCON, Beijing, China, Oct29, 2002 13
: 19902: 19922: 19922~ : 200012: :,, : 19842: 19862: 19962: 19862~ : :,,, : ( ) 19832: 199012: Duke University 19935: Duke University 1983~1996: 1996~ : 2000: NIST(National Institute of Standards and Technologies) :,, Fault-tolerant : 20002: 20022: 20022~ : :, : 20002: 20022: 20022~ : :, 14