Download presentation
Presentation is loading. Please wait.
Published byOctavia Carr Modified over 9 years ago
1
Xavier Lawrence March 2005
2
X. Lawrence - Synchronization of Calendars with a Calendar Server - 2 / 20 Presentation Overview Introduction Project Objectives Standards & Specifications used Open-Source Components (UwCal & Sync4j) Data Synchronization in General Our Synchronization Framework
3
X. Lawrence - Synchronization of Calendars with a Calendar Server - 3 / 20 Presentation Overview (2) Architecture of the System Implementation Possible Improvements Conclusion
4
X. Lawrence - Synchronization of Calendars with a Calendar Server - 4 / 20 Introduction Without a Calendar Server Decentralized System Calendars can be anywhere User struggles to make his/her timetable Personal CalendarSports CalendarAcademic CalendarConference Calendar
5
X. Lawrence - Synchronization of Calendars with a Calendar Server - 5 / 20 Introduction (2) With a Calendar Server Centralized System Distinction: Personal – Public Calendars Need Synchronization Support Calendar ServerClient Applications
6
X. Lawrence - Synchronization of Calendars with a Calendar Server - 6 / 20 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 webPortlets
7
X. Lawrence - Synchronization of Calendars with a Calendar Server - 7 / 20 Standards & Specifications used Internet Calendaring and Scheduling Core Object Specification or iCalendar (RFC- 2445) SyncML Portlet API (JSR-168) Apache Struts Framework JMS
8
X. Lawrence - Synchronization of Calendars with a Calendar Server - 8 / 20 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
X. Lawrence - Synchronization of Calendars with a Calendar Server - 9 / 20 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
X. Lawrence - Synchronization of Calendars with a Calendar Server - 10 / 20 SyncML (2) Server Sync Engine Sync Server Agent Client Agent SyncML I/F SyncML I/F Adapter SyncML Framework SyncML XML Objects HTTP / WSP / OBEX / SMTP WSP: Wireless Session Protocol OBEX: Bluetooth, IrDA
11
X. Lawrence - Synchronization of Calendars with a Calendar Server - 11 / 20 SyncML (3) Requires a change log Security Device capabilities detection 1.0 SyncML/1.0 1 2 http://www.syncml.org/sync-server IMEI:493005100592800 syncml:auth-basic QnJ1Y2UyOk9oQmVoYXZl...
12
X. Lawrence - Synchronization of Calendars with a Calendar Server - 12 / 20 UwCal (http://www.washington.edu/ucal/) Calendar server implementing RFC-2445 Built around a service interface
13
X. Lawrence - Synchronization of Calendars with a Calendar Server - 13 / 20 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
X. Lawrence - Synchronization of Calendars with a Calendar Server - 14 / 20 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
X. Lawrence - Synchronization of Calendars with a Calendar Server - 15 / 20 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 Framework Calendar Server Sync Server
16
X. Lawrence - Synchronization of Calendars with a Calendar Server - 16 / 20 Our Synchronization Framework (2) Framework architecture Storable Sync Manager Transport Receiver Calendar Manager Transport Sender Calendar Server Sync Server Network Behaves as a cache Connection to the Calendar Server Isolates events being synchronized (Transaction Manager) 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
17
X. Lawrence - Synchronization of Calendars with a Calendar Server - 17 / 20 Architecture of the System Calendar Server (uwCal) Client (MS- Outlook) Client (PDA) Client (Cell phone) Synchronization Server (Sync4j) Data Base Data Base WEB Browser Client (Palm) SyncML Sync Framework Jetspeed2 Portlet Container
18
X. Lawrence - Synchronization of Calendars with a Calendar Server - 18 / 20 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
X. Lawrence - Synchronization of Calendars with a Calendar Server - 19 / 20 Possible Improvements No recurrence rule support Support of more device applications E-Mail/SMS notification Produce a production release
20
X. Lawrence - Synchronization of Calendars with a Calendar Server - 20 / 20 Conclusion Objectives accomplished Gained experience in data synchronization, calendar representation, Portlets & Java programming Interesting and concrete project Valuable work experience
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.