SyncML

SyncML es una abreviatura de Synchronization Mark-up Language y en realidad es una especificación para la sincronización de datos .

Los datos pueden estar en cualquier formato siempre que estén registrados o sean representables en MIME .

SyncML fue publicado por primera vez en diciembre de 2000 por SyncML Initiative , que se formó como una empresa conjunta sin fines de lucro en febrero de 2000, con patrocinadores originales como Ericsson , IBM , Lotus , Matsushita , Motorola , Nokia , Palm y Psion , y en noviembre de 2002 en la Open Mobile Alliance se levantó.

Una forma especial de SyncML es SyncML-DM ( SyncML para administración de dispositivos ), que define funciones de mantenimiento remoto para dispositivos móviles, con las cuales un servidor puede administrar configuraciones y actualizaciones de software.

Independencia de la plataforma

Cualquier dispositivo con un cliente compatible con SyncML puede sincronizar datos con un servidor compatible con SyncML, independientemente del sistema operativo y el fabricante. Los dispositivos finales típicos entre los que se pueden comparar datos son PC , teléfonos móviles y ordenadores de mano .

Sincronización de datos

La sincronización de datos es básicamente el proceso en el que dos dispositivos finales diferentes (independientemente de si, por ejemplo, teléfonos móviles, dispositivos portátiles o portátiles o PC) sincronizan los datos. Se reconoce qué dispositivo terminal tiene qué datos, y también se comprueba si el otro dispositivo terminal respectivo desea tener estos datos además de los suyos. En el caso de que ambos terminales tengan el mismo contenido de datos, solo en diferentes versiones (por ejemplo, si se ha cambiado una dirección en un lado), se puede definir qué cambio se retiene.

Mediante mensajes SyncML, los clientes intercambian datos para sincronizarlos con un servidor. Normalmente, el cliente siempre inicia el inicio de una sincronización. Solo una futura versión 1.3 debería permitir un empuje real desde el servidor al cliente. Los mensajes SyncML son muy similares en estructura a los mensajes de correo electrónico normales. Hay un encabezado con la información del receptor y el remitente y los ID de sincronización que son únicos para el servidor. A la cabecera le siguen los comandos de sincronización para agregar, eliminar y reemplazar datos.

ejemplo

Representación simbolizada de una sincronización

Alice y Bob tienen cada uno un teléfono móvil y trabajan como trabajadores de campo en la misma empresa. Esta empresa gestiona todos los datos de los clientes de forma centralizada en un servidor.

Alice ahora conoce a un cliente, Dave, y guarda su número de teléfono y su nombre en su teléfono celular. El teléfono móvil de Alice transmite automáticamente la nueva entrada al servidor central de la empresa, que ahora almacena el nuevo contacto de forma centralizada. Ahora el servidor envía la entrada al teléfono móvil de Bob inmediatamente después de que el teléfono móvil de Alice haya anunciado la entrada al servidor. De este modo, el servidor ha sincronizado el contenido de datos entre Alice y Bob. Esto también funciona con más de dos participantes.

Si el número de Dave cambia, Alice lo cambia en su teléfono móvil y, al sincronizar, también se cambia en el servidor central de la empresa, y luego también se transfiere al dispositivo de Bob durante las sincronizaciones posteriores.

Desafíos

Existen algunos problemas con el funcionamiento de SyncML:

  • ¿Cómo sabe realmente el servidor central al 100% qué contacto tiene que actualizar cuando Alice cambia el número de un contacto en su teléfono celular?
  • ¿Cómo puede estar seguro el servidor de que se ha realizado un cambio? Es decir, ¿qué datos se deben comparar?
  • ¿Qué pasa si Alice y Bob cambian el número de teléfono de Dave en un corto período de tiempo? ¿De quién se considera que el número es el "correcto" y está sincronizado entre todos los demás empleados?
  • ¿Qué debería suceder si un nuevo empleado ingresa varios números privados en su teléfono? ¿Deberían realmente cargarse en el servidor central y ser así accesibles para todos los demás?
  • En resumen: ¿Los datos de quién deben sincronizarse, cuándo y entre quién?

Para poder solucionar estos problemas, existen algunos conceptos avanzados para el proceso de sincronización.

Conceptos

Los siguientes conceptos deben implementarse con el propósito de la sincronización de datos funcionales:

  • Manejo de ID : sirve para la identificación única de un registro de datos (por ejemplo, entrada de contacto). Esto se implementa mediante una identificación única (datos de identificación, generalmente un número). De esta forma, los servidores y los dispositivos finales (teléfonos móviles, etc.) pueden reconocer si, por ejemplo, dos contactos en dos dispositivos son iguales o no.
  • Detección de cambios : ¿Cuándo se considera cambiado un registro de datos? ¿Es suficiente si el nombre se escribe de manera diferente o el número de teléfono completo tiene que ser nuevo? Esto define la detección de cambios, que generalmente también funciona con una marca de tiempo (punto específico en el tiempo, fecha incluida la hora) para definir el momento del cambio.
  • Intercambio de modificaciones : ¿Cómo se realiza un cambio? ¿Debería ser eliminado, reemplazado o recreado? Todo esto se define aquí.
  • Detección de conflictos : Este concepto se encarga de la detección de los casos descritos anteriormente, como el cambio simultáneo de varios datos o cuyos datos deben sincronizarse.
  • Resolución de conflictos : Aquí se decide cómo se va a resolver el conflicto identificado anteriormente, libremente de acuerdo con el principio: "Primero en llegar, primero en ser atendido" o "Último en ganar", es decir, cuyo registro de datos debe servir como referencia para la actualización.
  • Sincronización lenta y rápida : ¿Deberían compararse solo los datos que han cambiado desde el último proceso de sincronización completa, o todos?

Esta es solo una descripción general de los conceptos; se incluye en aras de la exhaustividad.

Esquema

Estructura del protocolo SyncML, fuente: www.tecchannel.de

Con SyncML, los dispositivos reciben un protocolo de intercambio uniforme. Esto funciona independientemente del tipo de dispositivo y la ruta de transmisión: para que diferentes tipos de dispositivos como PDA, dispositivos portátiles, teléfonos móviles, cámaras y PC puedan intercambiar sus datos con el protocolo de sincronización, SyncML admite protocolos establecidos como HTTP, WSP (Protocolo de sesión inalámbrica, parte del protocolo WAP). ) y OBEX para conexiones Bluetooth e IrDA.

comunicación

Procedimiento básico para una sincronización entre servidor y cliente, fuente: www.syncml.org

El siguiente gráfico está destinado a mostrar el proceso de sincronización entre un servidor y un cliente. Puede ver claramente que tanto el servidor como el cliente tienen una interfaz SyncML, que permite un intercambio de datos sin problemas.

Los datos convertidos en SyncML se transmiten desde el servidor al cliente y viceversa a través de cualquier protocolo, que puede ser HTTP (TCP / IP), WSP (WAP) u OBEX (Bluetooth, infrarrojos).

Sync Client Agent inicia un proceso de sincronización basado en el protocolo SyncML y gestiona los procesos de transmisión en el lado del cliente. En el otro lado del cliente, Sync Server Agent espera una solicitud de sincronización.

El motor de sincronización realiza un análisis y comprueba qué datos deben cambiarse. Para ello, abre y modifica bases de datos, reacciona a cambios en el calendario de citas o actualiza las carpetas en el programa de correo electrónico.

Utilizar

En el lado del cliente, eso básicamente significa el lado del usuario final, y por lo tanto la parte móvil, SyncML domina los tipos de datos que ocurren en el correo electrónico, entradas de calendario, directorios de direcciones y documentos. Al mismo tiempo, SyncML es tan flexible que se pueden integrar nuevos formatos con poco esfuerzo. En detalle, el protocolo hace lo siguiente:

  • Permite la comunicación de datos a través de redes cableadas, redes de radio y conexiones de infrarrojos.
  • Admite una amplia variedad de protocolos de transporte y formatos de datos.
  • Permite acceder a los datos desde muchos dispositivos diferentes.
  • Tiene en cuenta los recursos limitados de los sistemas móviles en términos de memoria y potencia de procesamiento.
  • Se basa en tecnologías de red probadas.
  • Es compatible con las funciones de sincronización que utilizan tantos sistemas como sea posible.

En la práctica

SyncML (OMA DS) se ha establecido como el estándar para la comparación de citas, contactos y otros datos de PIM , pero aún existen desafíos en la práctica:

  • A diferencia de las implementaciones de IMAP para correos electrónicos, relativamente pocas aplicaciones de escritorio han admitido hasta ahora SyncML. Microsoft Outlook o Mozilla Thunderbird , por ejemplo, necesitan complementos adicionales para sincronizar el calendario o los datos de contacto con un servidor de esta manera. La mayoría de los teléfonos móviles de los dispositivos móviles actuales son compatibles con este estándar; en los teléfonos inteligentes con los sistemas operativos Android, Windows Mobile, Blackberry o Apple iOS, debe actualizarse mediante una aplicación adicional.
  • Los programas de servidor y cliente existentes, especialmente de diferentes desarrolladores, no siempre se comunican sin problemas entre sí, lo que se debe en parte a implementaciones poco desarrolladas. Con algunas constelaciones, la sincronización no funciona en absoluto, solo después de una configuración compleja o incorrecta (entre otras cosas, se forman duplicados ).

Ahora existen soluciones que son capaces de realizar una comparación inteligente de datos con resolución de conflictos y duplicados y que alivian al usuario de la mayor parte del trabajo.

  • En Alemania, todos los principales proveedores de telefonía móvil e Internet ahora confían en los servicios de copia de seguridad y sincronización de datos basados ​​en SyncML, especialmente T-Mobile con MyPhonebook, Vodafone con MeinAdressbuch, o2 con Communication Center, Mobilcom con MSync Service o T-Home ( T-Online) con el servicio de sincronización de datos. Estos servicios ya están establecidos en otros países, por ejemplo, con la libreta de direcciones A1 en Mobilkom Austria o la libreta de direcciones Orange en Austria, así como la sincronización de la libreta de direcciones de mensajería en línea en O2 Irlanda.

Evidencia individual

  1. Definición de versión de Enabler para especificaciones comunes de SyncML. (PDF; 91 KB) Open Mobile Alliance, 24 de julio de 2009,
    consultado el 11 de febrero de 2018
    .
  2. SyncML WSP Binding, Version 1.1. (PDF; 97 KB) Open Mobile Alliance, 15 de febrero de 2002,
    consultado el 11 de febrero de 2018
    .
  3. Historial de cambios de estándares OMA DS. (PDF; 111 KB) Open Mobile Alliance, 31 de marzo de 2008,
    consultado el 11 de febrero de 2018
    .