Presentation is loading. Please wait.

Presentation is loading. Please wait.

Xavier Lawrence March 2005. X. Lawrence - Synchronization of Calendars with a Calendar Server - 2 / 20 Presentation Overview Introduction Project Objectives.

Similar presentations


Presentation on theme: "Xavier Lawrence March 2005. X. Lawrence - Synchronization of Calendars with a Calendar Server - 2 / 20 Presentation Overview Introduction Project Objectives."— Presentation transcript:

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


Download ppt "Xavier Lawrence March 2005. X. Lawrence - Synchronization of Calendars with a Calendar Server - 2 / 20 Presentation Overview Introduction Project Objectives."

Similar presentations


Ads by Google