OpenSync (software)

From Wikipedia, the free encyclopedia

OpenSync
Developed by The OpenSync Project
Latest release 0.36 / 26 January 2008
OS Cross-platform
Genre Synchronization
License GNU Lesser General Public License
Website http://opensync.org/

OpenSync is a software library framework used for synchronization of PIM data (contacts, calendar, tasks and notes) between personal computers and mobile devices. OpenSync is plugin based and its product specific plugins allows support for wide variety of different synchronization endpoints (PIM applications, mobile phones, personal digital assistants, groupware servers, and LDAP directories). Its design and implementation would allow other synchronization uses as well.

OpenSync has been selected to be KDE's main synchronization framework. It is a cross platform software that can be run on Microsoft Windows and various Unix-like systems including Linux and Mac OS X.

Released under the terms of the GNU Lesser General Public License, OpenSync is free and open source software.

Contents

[edit] Features

OpenSync has ambitious goal to solve all possible PIM synchronization needs and regardless of its temporary shortcomings, its feature list is extensive:

  • cross platform software, implemented in C-language
  • plugin based
  • uses threads
  • two or more members in one synchronization (group)
  • capabilities detection
  • object merger
  • object type filtering
  • supported formats are defined in external XML file
  • multiple graphical user interfaces for different environments
  • command line user interface
  • bindings to other languages (python)
  • vcard 2.1, 3.0 support
  • vevent 1.0, 2.0 support
  • vnote 1.1 support
  • vtodo 1.0, 2.0 support
  • SyncML 1.1 and partial SyncML 1.2, WBXML support
  • IrMC support
  • Bluetooth support
  • USB support
  • HTTP support
  • LDAP support
  • only SyncML server support

vevent 1.0 is the same as vcalendar 1.0 and vevent 2.0 is the same as vcalendar 2.0 or icalendar - which all are supported as well.

OpenSync synchronization takes place in groups which can have two or more different type of members supporting different set of object attributes. Development version also has a sync-engine that is able to merge attributes from same object changed on different endpoints.

[edit] Architecture

[edit] Virtual Formats

Before synchronizing anything, OpenSync converts data coming from members into internal XML based formats, which are:

  • xmlformat-contact
  • xmlformat-event
  • xmlformat-note
  • xmlformat-todo

This conversion is implemented in VFormat plugin and format descriptions are in XML format allowing more frequent updates to those without modifying and recompiling the actual program code.

[edit] Capabilities

OpenSync is able to automatically configure some products for synchronized attribute settings (supported attributes and data formats).

[edit] Merger

OpenSync is able to merge different attribute changes of same object since last synchronization between different group members. This reduces significantly manual conflict resolutions and user attention to actual synchronization process.

[edit] Supported platforms

Since OpenSync is written in the C programming language and libraries it uses are openly available, it can be compiled to almost any platform where C compiler is available. Currently known working platforms are:

[edit] Supported Devices

Support is based on general features and may vary depending on features of particular device, OpenSync bugs or used connection method (Bluetooth, USB, IRDA).

[edit] Motorola

Motorola plugin is written with Python.

[edit] Nokia

Generally devices supporting SyncML 1.1 or 1.2 over Bluetooth, USB or IP-protocol are supported.

Nokia 770 and N800 Internet Tablets using GPE suite are supported .

[edit] Sony Ericsson

Sony Ericsson devices supporting SyncML or IrMC.

[edit] User Interfaces

[edit] Msynctool

Msynctool is the command line interface that comes along the Open Sync. Its name comes from Multisync and has already been decided to be changed to something close the project name. Msynctool supports all features that Open Sync itself supports and is thus considered to be the reference user interface.

[edit] Mototool

Mototool is command line interface for Motorola's devices and is also written in Python.

[edit] KitchenSync

KitchenSync is GUI frontend for K Desktop Environment and synchronizes KDE PIM suite applications Kaddressbook (contacts), KOrganizer (calendar), Knotes (notes). Mail synchronization is not supported. In future versions Kitchensync will be ported against KDE Akonadi.

KDE PIM applications can also be combined into Kontact framework where they appear as a single application with tighter integration. As applications are the same, Kontact is also supported application.

KitchenSync is written with C++-language, Qt- and KDE toolkits.

[edit] Gnome-Sync

Gnome-Sync is GUI frontend for GNOME desktop Environment.

Gnome-Sync is written with C-language and GTK toolkit.

[edit] Plugins

Brief description of each plugins and some of the links refer external resource.

[edit] Current Status

Latest stable release is 0.22 and as codebase it will be its last release (although since 0.22 release 0.2x branch has got some fixes) and main development efforts focus to the current versions. Development versions (0.31, 0.32) have gone through major architectural changes (capabilities, merger) and next stable release 0.40 is expected to be released at end of the year 2008[citation needed].

OpenSync is under active development.

[edit] Shortcomings

These are current challenges that developers are aware of and trying to address in the future releases[citation needed].

  • older versions do not work in many cases.
  • due recent heavy modifications and rare releases, compiling it manually currently is recommended.
  • most platforms ship the latest releases and it is laborious to compile manually.
  • configuration its current versions is difficult for normal user.
  • lack of Microsoft Windows PIM suite plugin (limits community).
  • for SyncML it only supports server peer.
  • architecture is not very suitable for binary data synchronization (music, pictures etc)

[edit] See also

[edit] External links

Languages