1 / 20

Xavier Lawrence

Xavier Lawrence. March 2005. Presentation Overview. Introduction Project Objectives Standards & Specifications used Open-Source Components (UwCal & Sync4j) Data Synchronization in General Our Synchronization Framework. Presentation Overview (2). Architecture of the System Implementation

kineta
Download Presentation

Xavier Lawrence

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Xavier Lawrence March 2005

  2. PresentationOverview • Introduction • Project Objectives • Standards & Specifications used • Open-Source Components (UwCal & Sync4j) • Data Synchronization in General • Our Synchronization Framework

  3. PresentationOverview (2) • Architecture of the System • Implementation • Possible Improvements • Conclusion

  4. Introduction • Without a Calendar Server • Decentralized System • Calendars can be anywhere • User struggles to make his/her timetable Personal Calendar Sports Calendar Academic Calendar Conference Calendar

  5. Introduction (2) • With a Calendar Server • Centralized System • Distinction: Personal – Public Calendars • Need Synchronization Support Client Applications Calendar Server

  6. Project Objectives • Study and find an open-source calendar server that meets all requirements • Study data synchronization and existing synchronization frameworks • Design and implement a little framework defining how the calendar server and synchronization layer should communicate • Develop Portlets allowing the user to access his or her calendar from the web

  7. Standards & Specifications used • Internet Calendaring and Scheduling Core Object Specification or iCalendar (RFC-2445) • SyncML • Portlet API (JSR-168) • Apache Struts Framework • JMS

  8. ICalendar (RFC-2445) Sample BEGIN:VCALENDAR PRODID:-//Jahia Solutions//iCalendar SyncClient 1.0 MIMEDIR//EN VERSION:2.0 METHOD:PUBLISH BEGIN:VEVENT CATEGORIES:Sports CLASS:PUBLIC DESCRIPTION:Champions League 8th final Inter Milan – FC Porto DTEND:20050301T200000 DTSTART:20050301T230000 LOCATION:San Siro, Milan ORGANIZER:caladmin SUMMARY:CL Inter Milan – FC Porto UID:12-uwcal-myCalendar@jahia.org END:VEVENT END:VCALENDAR

  9. SyncML • The Synchronization Markup Language enables smooth, efficient synchronization of remote data and personal information across devices, platforms, and multiple networks. • Language and platform independent • Widely used in the industry

  10. Server Client SyncML Framework Sync Engine Sync Server Agent Client Agent SyncML I/F SyncML I/F SyncML XML Objects Adapter Adapter SyncML (2) HTTP / WSP / OBEX / SMTP WSP: Wireless Session Protocol OBEX: Bluetooth, IrDA

  11. SyncML (3) • Requires a change log • Security • Device capabilities detection <SyncML> <SyncHdr> <VerDTD>1.0</VerDTD> <VerProto>SyncML/1.0</VerProto> <SessionID>1</SessionID> <MsgID>2</MsgID> <Target> <LocURI>http://www.syncml.org/sync-server</LocURI> </Target> <Source> <LocURI>IMEI:493005100592800</LocURI> </Source> <Cred> <Meta> <Type xmlns='syncml:metinf'>syncml:auth-basic</Type> </Meta> <!—base64 formatting of "userid:password"--> <Data>QnJ1Y2UyOk9oQmVoYXZl</Data> </Cred> </SyncHdr> <SyncBody> ... </SyncBody> </SyncML>

  12. UwCal (http://www.washington.edu/ucal/) • Calendar server implementing RFC-2445 • Built around a service interface

  13. Sync4j (http://sync4j.funambol.com/) • Sync4j is a synchronization platform based on SyncML • It contains: • A Synchronization Server • An API for implementing SyncML synchronization clients • Synchronization clients for existing products such as MS-Outlook, Palms or Pocket PCs

  14. Data Synchronization • Process of putting 2 sets of data in the same state • Generally based on: • ID handling (GUID – LUID mapping) • A change detection mechanism (change log + item state) • A modification exchange protocol (Add, Modify & Delete command) • A conflict resolution policy (“Server wins”)

  15. Framework Calendar Server Sync Server Our Synchronization Framework • Make the calendar server and the synchronization engine independent: • Possible to re-use existing servers • Improve performance (minimize network latency, calendar cache) • Avoid incompatible license problems

  16. Calendar Server Sync Server Storable Transport Transport Transport Receiver Transport Sender Calendar Manager Network Sync Manager Our Synchronization Framework (2) • Framework architecture 1. Calendar Manager fetches the calendar to synchronize 2. SyncManager asks Storable instance to get the calendar 3. SyncManager locks all events of the calendar 4. SyncManager sends calendar 5. Sync Server uses Calendar copy of the Calendar 6. Calendar Manager sends back the updated calendar 7. Storable instance stores the modified calendar 8. SyncManager unlocks the events Connection to the Calendar Server Isolates events being synchronized (Transaction Manager) Behaves as a cache

  17. WEB Browser Client (MS-Outlook) Jetspeed2 Client (Palm) Calendar Server (uwCal) Sync Framework Synchronization Server (Sync4j) SyncML Client (PDA) Data Base Data Base Client (Cell phone) Architecture of the System Portlet Container

  18. Implementation • Implementation of the Synchronization Framework: • Calendar server & Synchronization server • Transport layer: JMS • Implementation of a synchronization client able to synchronize any iCalendar file • Parses the calendar file, extracts the events and synchronizes them

  19. Possible Improvements • No recurrence rule support • Support of more device applications • E-Mail/SMS notification • Produce a production release

  20. Conclusion • Objectives accomplished • Gained experience in data synchronization, calendar representation, Portlets & Java programming • Interesting and concrete project • Valuable work experience

More Related