Por qué Data Transfer Project (DTP) es el futuro de la portabilidad de datos entre servicios online

Data Transfer Project (DTP) es el estándar de portabilidad de datos de código abierto que procura solventar uno de los grandes inconvenientes cuando deseamos migrar datos. Nos referimos al Data Lock-in, la imposibilidad de conseguir todos y cada uno de los datos que tenemos guardados en un servicio para irnos a otro. Últimamente, el proyecto apoyado por Google, Fb, Microsoft, Twitter presentó la especificación y la arquitectura que dejará llegar a una API común para la trasferencia de datos de usuario entre servicios. La clave es poder delimitar una comunicación directa y sin intercesores, y lo más importante: un formato común de datos.

Está la idea se remonta a dos mil siete cuando brotó, Data Liberation Front, un conjunto de ingenieros de Google que han promovido desde ese momento la liberación de los datos para eludir este género de inconvenientes con los servicios ofrecidos por la compañía. Gracias a ellos disponemos de Google Takeout, una herramienta para los usuarios que deja hacer copias de respaldo de tus ficheros en todos lo servicios de Google.

Usuarios should be able to control the data they store in any of Google's products. Our team's goal is to make it easier to move data in and out.

Ahora el proyecto entre manos es todavía más ambicioso y tiene como propósito crear un estándar común capaz de ser utilizado para transformar cualquier API dueña a un conjunto de formatos comunes creando de paso un ecosistema de herramientas en torno a ello.

El futuro de la portabilidad Service-to-Service

El propósito es que los usuarios habrían de ser capaces de trasferir sus datos desde un servicio a otro, sin la necesidad de respaldarse en un mediador (otro Software as a Service, por servirnos de un ejemplo) ni tener que descargar y regresar a mandar todos lo datos nuevamente. Existen multitud de servicio que base su modelo en migrar mails, contactos, etc de un distribuidor a otro. Por poner un ejemplo, cuando cambias de cuenta de Yahoo a Gmail.

Para facilitar el difícil planeta de la portabilidad de datos, Data Transfer Project define una serie de adapters para convertir los formatos dueños a una serie de Data Models comunes. Esto deja que la trasferencia de datos pueda hacerse desde el propio distribuidor del servicio a otro sosteniendo el control sobre la seguridad y también integridad de los datos.

Evidentemente, estos Data Models están limitados en lo que se refiere a la información que pueden ser compartidos de un servicio a otro, puesto que es imposible modelar toda la información mas con los diferentes casos de empleo ya creados como fotografías o bien contactos se cubre extensamente la funcionalidades aguardada. Todavía va a haber que proseguir utilizando algún mecanismo para añadir determinados metadata más concretos.

Cómo funciona: la arquitectura de Data Transfer Project

Existen tres componentes esenciales descritos en el white paper de Data Transfer Project:

Data Models que proveen un formato común para trasferir los datos.
Adapters que facilitan los métodos para transformar cada dato dueño y permitir la autentificación en el sistema.
Task Management que efectúan las labores en background para ejecutar la migración de datos.

A través de los Data Models podemos delimitar el formato de datos que deseamos intercambiar. En la actualidad se puede preguntar los existentes en el Github del proyecto: mails, contactos, fotografías, calendarios, labores, etcétera.

Con los Adapters podemos hacer la traducción entre los datos dados de un distribuidor específico (la API del servicio) a los Data Models de intercambio de DTP. Aparte de la transformación de datos, existe otro género de adapters que se encargan de la autentificación de los datos. OAuth ha sido el distribuidor más extendido, si bien DTP es agnóstico en el género de autentificación.

Finalmente, el conjunto de labores precisas para efectuar la carga de la portabilidad de datos radica en el otro gran componente de Tasks. Se hacen cargo de efectuar las llamadas entre los adapters, efectuar la lógica de reintentos, administrar los rate limits, paginación, notificaciones individuales, etcétera.

Arquitectura y flujo de trabajo de DTP

¿De qué forma podemos probarlo y participar los desarrolladores?

DTP está todavía en desarrollo y no está listo para ser utilizado en producción. No obstante existen diferentes casos de empleo que podemos probar migrando datos entre ciertas plataformas. Libre en el Github del proyecto.

Todo el código está escrito en Java y puede ser desplegado vía Docker. Ciertos de sus módulos desajustados pueden ser escritos en Python, C#/.NET, etcétera. La plataforma en cloud que se está utilizando para probarlo está libre tanto para Google Cloud, Microsoft Azure, Amazon AWS.

En el repositorio publicado tenemos la posibilidad de agregar nuevos Providers usando el conjunto de interfaces descritas en Github. Es preciso llenar cada una de las piezas descritas en la arquitectura DTP: Data Adapter, Auth Adapter y, potencialmente, un nuevo Data Model.

Asimismo se puede contribuir al Core Framework, el que implica ciertas piezas esenciales como las plataformas Host, el sistema de almacenaje.

Todo ello por medio de pull requests al proyecto en Github.

Más información | Data Transfer Project