10
votes

Quelle est la différence entre Syncml et Caldav?

Je me demande quelle est la différence entre Syncml et Caldav en termes de fonctionnalités, de pros et de contre.

J'essaie de déterminer la technologie à utiliser afin de synchroniser des événements / calendriers entre une application Web et des appareils mobiles. J'ai besoin de gérer les conflits et la synchronisation bidirectionnelle.

À première vue, Caldav semble être le plus approprié pour mes besoins, mais je ne suis pas sûr de connaître les inconvénients de la possibilité. Syncml est une standard mais j'ai lu des messages sur le blog d'Oracle, ce qui a déclaré Caldav ...

Je sais que Google prend en charge les deux mais fournit également ActiveSync (Exchange) qui est une technologie Microsoft comme solution principale. Je ne suis pas intéressé par cette voie.

acclamations, William


0 commentaires

3 Réponses :


0
votes

Quelques questions pour mieux répondre à votre requête -

  1. Contrôle des clients de périphérique ou devez-vous compter sur des clients autochtones sur des périphériques déjà déployés?

  2. Contrôle du serveur de synchronisation?

  3. Esquissez-vous de synchroniser d'autres types de données en plus d'événements de calendrier? NB: Des choses comme les pièces jointes de calendrier (par exemple, les contacts ou les fichiers) comptent comme "autres types de données" aux fins de cette question.

  4. Quel niveau de complexité avez-vous besoin pour soutenir? Événements récurrents, exceptions aux événements récurrents, aux calendriers partagés ou collaboratifs, utilisateurs ayant plusieurs calendriers distincts (par exemple, calendrier de périphérique, calendrier Outlook, calendrier Gmail, etc.)

  5. existe des applications de bureau spécifiques que vous devez synchroniser avec (par exemple, Outlook / Exchange) ou ce dernier cloud <-> Uniquement?


1 commentaires

1. Clients autochtones 2. Oui, je dois l'écrire (en fait, je l'ai jamais écrit depuis que j'ai posé cette question) 3. Calendriers et contacts Données 4. Rien de tel que ça 5. Non, mais si c'est possible, ça va, je vais Demandera déjà un calendrier en tant qu'application Web BTW, je pense avoir répondu moi-même. Merci de votre attention :)



7
votes

Eh bien, je peux me répondre.

CalDAV

CalDAV est un protocole au-dessus de WebDAV qui est une extension de la HTTP protocole. CalDAV est décrit dans RFC 4791 . Il utilise comme format de données iCalendar . Il y a beaucoup de mises en œuvre.

A propos des conflits CalDAV utilise le 409 conflits Code d'état (HTTP 1.1). Le client doit faire face à ce code d'erreur, pour autant que je sache, iCal (le client Mac) revient tout simplement des changements locaux. Ensuite, il est assez facile de définir des règles dans le serveur pour savoir quoi faire en cas de conflit, si vous ne pouvez pas résoudre l'un d'eux, alors nous avons juste besoin d'envoyer un 409 code d'état.

En standard, CalDAV est dédié à la gestion des données de calendrier, et il y a beaucoup de clients.

Malheureusement, Android ne fournit aucune solution native d'utiliser ce protocole, en fait il ne prévoit rien d'autre que Exchange ActiveSync (utilisé par Google). Mais il y a des tonnes de clients CalDAV sur l'Android Market.

iOS a un support natif de CalDAV.

SyncML

Synchronisation Mrkup La langue est une langue de synchronisation plate-forme indépendante pour gérer les données, créé par les grandes entreprises comme Nokia, IBM, ... Il est un standard ouvert. Il utilise le protocole HTTP et XML comme le transport pour décrire l'information. Il a diverses implémentations de serveur, Funambol est un bien connu, par exemple.

SyncML décrit sept synchronisations:

  • Deux voies Sync : le serveur et le client partage d'informations sur les changements, mais le client est le premier qui envoient des changements;
  • Synchronisation lente : le client envoie toutes ses données. Le serveur détermine un delta entre ses données et les données du client, le serveur envoie ce delta. Il est souvent utilisé sur la première synchronisation;
  • Synchronisation à sens unique, client uniquement : le client envoie des modifications au serveur;
  • Synchronisation Refresh du client : le client envoie toutes ses données, le serveur envoie toutes ses données;
  • Synchronisation à sens unique, serveur uniquement : le serveur envoie des modifications au client;
  • Synchronisation Refresh du serveur : le serveur envoie toutes ses données, le client remplace ses données par les données du serveur;
  • Serveur de synchronisation alerté :. Le serveur demande au client de lancer une synchronisation donnée

    poignées SyncML conflicts sur le serveur avec un ensemble de règles prédéfinies comme Mises à jour mades sur le client gagne toujours , mades Mises à jour sur le client toujours gagner , ...

    SyncML est dédié aux données Synchronisez mais ni iOS ni Android soutenir. smartphones Nokia ou Samsung semblent soutenir ce protocole, ainsi que Windows Phone 6.

    Alors?

    Microsoft Exchange ActiveSync est le meilleur choix pour soutenir presque tous les smartphones et les clients lourds aussi. Mais, ce n'est pas un standard ouvert, et il est commercial, et je ne le décrire pour ces raisons, rappelez-vous juste.

    A propos de Systèmes d'exploitation mobiles:

    • Android ne supporte rien d'autre que ActiveSync, mais certains bons clients CalDAV existent;
    • iOS prend en charge CalDAV, mais ne prend pas en charge SyncML, et pour autant que je sache, il n'y a pas de client SyncML pour les données de calendrier (Funambol fournit un client pour les contacts);
    • Windows Phone 7 ne supporte rien d'autre que ActiveSync;
    • RIM (BlackBerry) ne semble pas soutenir CalDAV, mais il y a des clients SyncML;
    • Je ne suis pas sûr d'autres OS (comme Bada, ...).

      En France, iOS représente 60% du marché mobile et Android a 30% .

      La meilleure solution (au moins pour moi), est de commencer par la mise en œuvre d'un serveur CalDAV avec un ensemble de règles personnalisées aux conflits de poignée, puis de mettre en œuvre un serveur SyncML pour couvrir le reste du marché.


1 commentaires

Je ne vois pas comment vous pouvez gérer les conflits avec Caldav. Il n'y a jamais de 409 conflits de ce que j'ai vu. Au lieu de cela, les clients (iOS / DAVDROID) synchronisent ( Proprind / rapport ) avant de pousser ( mettre ). Donc, s'il y a un nouvel objet de calendrier sur le serveur, il écrase le changement local. Dans ce cas, le client n'informe jamais le serveur sur le changement local! Les changements tels que la participation des événements peuvent être complètement ignorés et il n'y a aucun moyen de le gérer sur le côté serveur ...