Connecting the Enterprise  Integrating Funambol with CalDAV and LDAP Roberto Polli - rpolli@babel.it
Overview <ul><li>Why Babel chose Funambol </li></ul><ul><li>Integrating LDAP and CalDAV </li></ul><ul><li>Insight CalDAV C...
Italians do it better ;) <ul><li>Babel mission:  </li></ul><ul><li>provide large mail infrastructure  entirely based on  i...
LDAP: just for Fun <ul><li>Babel authentication system is based on LDAP,  with user data on FedoraDS </li></ul><ul><li>Our...
<ul><li>CalDAV is a calendar access protocol based on webdav/http and iCalendar  (RFC2445) </li></ul><ul><li>defined by RF...
<ul><li>Internet grew with   email connecting people. </li></ul><ul><li>CalDAV  makes people   meet </li></ul><ul><li>shar...
<ul><li>Mobiles store events in vcal-1.0 (vcs) </li></ul><ul><li>vendor-specific attributes </li></ul><ul><li>limited inte...
<ul><li>BEGIN:VEVENT </li></ul><ul><li>SUMMARY:My Birthday </li></ul><ul><li>DTSTART:19771205 </li></ul><ul><li>AALARM;TYP...
<ul><li>BEGIN:VCALENDAR </li></ul><ul><li>VERSION:2.0 </li></ul><ul><li>BEGIN:VEVENT </li></ul><ul><li>UID: meeting@babel....
Connector Testing Framework <ul><li>FCTF enables round-trip event testing </li></ul><ul><li>no need to deploy </li></ul><u...
<ul><li>Writing CalDAVConnector  </li></ul><ul><li>lead us to: </li></ul><ul><li>improve and maintain CalDAV4j </li></ul><...
Conclusions <ul><li>Support for RFC2445 is a primary target for Funambol </li></ul><ul><li>achieve interoperability </li><...
Hope it helps  -  [email_address]
Upcoming SlideShare
Loading in …5
×

Integrating Funambol with CalDAV and LDAP

5,381 views

Published on

An opensource story: what happened when integrating Caldav and LDAP in Funambol

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
5,381
On SlideShare
0
From Embeds
0
Number of Embeds
64
Actions
Shares
0
Downloads
41
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Integrating Funambol with CalDAV and LDAP

  1. 1. Connecting the Enterprise Integrating Funambol with CalDAV and LDAP Roberto Polli - rpolli@babel.it
  2. 2. Overview <ul><li>Why Babel chose Funambol </li></ul><ul><li>Integrating LDAP and CalDAV </li></ul><ul><li>Insight CalDAV Connector: iCalendar and interoperability issues </li></ul><ul><li>Connector Testing Framework: speed up RFC compliance </li></ul><ul><li>Open issues </li></ul> - rpolli@babel.it
  3. 3. Italians do it better ;) <ul><li>Babel mission: </li></ul><ul><li>provide large mail infrastructure entirely based on independent RFC modules </li></ul><ul><li>SMTP, IMAP, LDAP, CalDAV (RFC4791), iCalendar(RFC2445) </li></ul><ul><li>SyncML </li></ul><ul><li>Why Funambol? </li></ul><ul><li>Italians do it opensource! </li></ul> - rpolli@babel.it
  4. 4. LDAP: just for Fun <ul><li>Babel authentication system is based on LDAP, with user data on FedoraDS </li></ul><ul><li>Our first experience was about writing: </li></ul><ul><li>LdapConnector support for FedoraDS </li></ul><ul><li>LdapUserProvisioningOfficer </li></ul><ul><li>..and it was fun :) </li></ul><ul><li>Then we needed to sync Calendar events </li></ul> - rpolli@babel.it
  5. 5. <ul><li>CalDAV is a calendar access protocol based on webdav/http and iCalendar (RFC2445) </li></ul><ul><li>defined by RFC4791 </li></ul><ul><li>one event – one .ics file </li></ul><ul><li>accessible by http </li></ul><ul><li>support queries (by time-range, location, etc.) </li></ul><ul><li>various implementations (Bedework, Google, Apple, OSAF, ...) </li></ul>CalDAV: open your agenda! - rpolli@babel.it
  6. 6. <ul><li>Internet grew with email connecting people. </li></ul><ul><li>CalDAV makes people meet </li></ul><ul><li>share freebusy times </li></ul><ul><li>organize meetings </li></ul><ul><li>schedule tasks </li></ul><ul><li>These flows need to be interoperable and mobilized , hopefully converging to iCalendar </li></ul>Why CalDAV Connector - rpolli@babel.it
  7. 7. <ul><li>Mobiles store events in vcal-1.0 (vcs) </li></ul><ul><li>vendor-specific attributes </li></ul><ul><li>limited interoperability </li></ul><ul><li>iCalendar (ics) attempts to unify these things </li></ul><ul><li>Converting ics to vcs and back is not easy </li></ul><ul><li>ics to vcs causes data loss </li></ul><ul><li>ics recurrence rules are complex to sync to vcs </li></ul><ul><li>round-trip item conversion </li></ul><ul><li>Funambol support of RFC2445 </li></ul>Open issues - rpolli@babel.it
  8. 8. <ul><li>BEGIN:VEVENT </li></ul><ul><li>SUMMARY:My Birthday </li></ul><ul><li>DTSTART:19771205 </li></ul><ul><li>AALARM;TYPE=X-EPOC </li></ul><ul><li>SOUND:20071205T12 </li></ul><ul><li>0000;;CalenAlarmS </li></ul><ul><li>ound </li></ul><ul><li>END:VEVENT </li></ul><ul><li>END:VCALENDAR </li></ul>Examples - I - rpolli@babel.it <ul><li>BEGIN:VALARM </li></ul><ul><li>ACTION:EMAIL </li></ul><ul><li>DESCRIPTION:This is an event reminder </li></ul><ul><li>SUMMARY:Alarm notification </li></ul><ul><li>ATTENDEE:mailto:robipolli@gmail.com </li></ul><ul><li>TRIGGER:-P0DT0H10M0S </li></ul><ul><li>END:VALARM </li></ul>Two different ALARMS a VCS on a mobile, an ICS on GCaldav
  9. 9. <ul><li>BEGIN:VCALENDAR </li></ul><ul><li>VERSION:2.0 </li></ul><ul><li>BEGIN:VEVENT </li></ul><ul><li>UID: meeting@babel.it </li></ul><ul><li>SUMMARY: Periodic meeting </li></ul><ul><li>DTSTART:20081205 </li></ul><ul><li>DTEND:20081206 </li></ul><ul><li>RRULE: FREQ=MONTHLY </li></ul><ul><li>EXDATE:20090105 </li></ul><ul><li>END:VEVENT </li></ul><ul><li>BEGIN:VEVENT </li></ul><ul><li>UID: meeting@babel.it </li></ul><ul><li>SUMMARY: Shifted 1 day </li></ul><ul><li>RECURRENCE-ID: 20090106 </li></ul><ul><li>DTSTART: 20090106 </li></ul><ul><li>DTEND: 20090107 </li></ul><ul><li>END:VEVENT </li></ul><ul><li>END:VCALENDAR </li></ul>Examples - II - rpolli@babel.it A recurring event.. <ul><li>BEGIN:VCALENDAR </li></ul><ul><li>VERSION:1.0 </li></ul><ul><li>BEGIN:VEVENT </li></ul><ul><li>UID: ??????????????? </li></ul><ul><li>SUMMARY: Periodic meeting </li></ul><ul><li>RRULE: FREQ=MONTHLY </li></ul><ul><li>EXDATE: 20090105 </li></ul><ul><li>END:VEVENT </li></ul><ul><li>END:VCALENDAR </li></ul><ul><li>BEGIN:VCALENDAR </li></ul><ul><li>VERSION:1.0 </li></ul><ul><li>BEGIN:VEVENT </li></ul><ul><li>UID: ??????????????? </li></ul><ul><li>SUMMARY: Shifted 1 day </li></ul><ul><li>DTSTART:20090106 </li></ul><ul><li>DTEND:20090107 </li></ul><ul><li>END:VEVENT </li></ul><ul><li>END:VCALENDAR </li></ul>
  10. 10. Connector Testing Framework <ul><li>FCTF enables round-trip event testing </li></ul><ul><li>no need to deploy </li></ul><ul><li>fast debugging </li></ul><ul><li>collect data from mobile (ics,vcs,..) </li></ul><ul><li>scripting use cases </li></ul><ul><li>Still to do </li></ul><ul><li>Pipelines – normalize item from/to mobiles </li></ul><ul><li>logging </li></ul><ul><li>Add on server, update on mobile </li></ul><ul><li>#!/bin/bash </li></ul><ul><li>first sync </li></ul><ul><li>add event on server </li></ul><ul><li>sync </li></ul><ul><li>modify event on client </li></ul><ul><li>sync </li></ul><ul><li>check event on server </li></ul> - rpolli@babel.it
  11. 11. <ul><li>Writing CalDAVConnector </li></ul><ul><li>lead us to: </li></ul><ul><li>improve and maintain CalDAV4j </li></ul><ul><li>bugfix Funambol & Bedework </li></ul><ul><li>Once more writing OSS is like sowing good seeds ;) </li></ul>Sowing the seeds of love DaPino - http://dapino-colada.nl - rpolli@babel.it
  12. 12. Conclusions <ul><li>Support for RFC2445 is a primary target for Funambol </li></ul><ul><li>achieve interoperability </li></ul><ul><li>offline sync solution for desktop </li></ul><ul><li>Improving FCTF is a great way to achieve it </li></ul> - rpolli@babel.it
  13. 13. Hope it helps - [email_address]

×