miércoles, 26 de agosto de 2009

Los problemas de XML en el manejo de grandes cantidades de datos.

No es el uso, es el abuso, que puede transformarse en delirio.

Mi opinión sobre el uso (resumen de los links anteriores) está muy bien condensada en uno de los puntos del artículo: XML es perfecto para para crear documentos estructurados que puedan ser manipulados “como cajas negras” por aplicaciones o, más apropiado todavía, interpretados fácilmente por seres humanos. Por ejemplo:

tatuaje-disenador-web xmlmodelo_2

…pero si tenemos que compartir una gran cantidad de datos entre aplicaciones con una estructura preestablecida… ¿Para qué especificarla junto a los datos mismos si está, justamente, preestablecida?

Tal el caso que se ilustra en how xml threatens big data, un artículo reciente de Dataspora Blog (en inglés) donde el autor comenta brevemente su fracasado intento (enderezado a tiempo) de usar XML como formato para compartir grandes cantidades (ahí el problema) de datos entre aplicaciones.

En resumen, tres razones para el fracaso:

  1. XML aumenta la burocracia: creación, parseo, tipado, conversión…

  2. El tamaño importa. XML encaja bien para documentos (cantidades de información manejable por seres humanos), pero no para datos (cantidades de información manejable por aplicaciones).

  3. La complejidad tiene su costo. XML es mucho más complejo que otros formatos (CSV, JSON).

… y una propuesta de tres reglas para “Rebeldes del XML”:

  1. ¡Basta de inventar nuevos formatos XML!

  2. Obedece la regla de los 50 15 minutos: no debería llevar más de 50 15 (¡ay! mi inglés) minutos aprender el formato.

  3. Adoptar modelado de datos tardío (Lazy Data Modeling), un concepto comparable a la “evaluación tardía”: grabar los datos como son y dejar su interpretación (tipado) para el momento en el que se los requiera, implementando esa interpretación de acuerdo a las necesidades del caso. Es un un punto que tal vez merece más reflexión y que da para mayor discusión.

Ése es el resumen, mucho más detalle por aquí, en el artículo original.

4 comentarios:

Improbable dijo...

Creo que lo leí en tu blog: "el XML es como la violencia: si no resuelve tus problemas, siempre podés usar un poco más".

El problema, emho, es poner el modelo de datos en XML. Está bien para transporte (está bien?), puede servir para guardar la configuración (seguro?, no es complicarsela al pedo?) pero no es la solución para persistir datos.

BlackTigerX dijo...

yo tambien creo que hay mucho mejores alternativas a XML, nunca me ha gustado

AcP dijo...

Yo no lo defenestro per sé. Más bien creo que es una de esas cosas de las que es, como dice Improbable, muy fácil abusar.

Por ejemplo, yo lo uso para configuración y me gusta, porque (y sólo si) los tags van documentando los seteos... pero, por ejemplo, el web.config de una de las aplicaciones con las que estoy trabajando, prolijito y todo, es un infierno.

¿Será el problema el que se haya puesto de moda ofuscando otras posibilidades menos "elegantes" pero muchas veces más racionales? Puede ser csv o el formato simple de los viejos .ini bien documentados, que en linux se suele usar tanto y tan bien.

AcP dijo...

Me olvidaba de decir que muchas veces, como en el caso de la foto de la derecha, los tags son redundantes (qué par de datos).