Вы находитесь на странице: 1из 7

Comparación de formatos de intercambio de datos JSON y XML: un caso de estudio

Resumen 2. XML

En este trabajo se comparan dos formatos de El XML (Extensible Markup Language) [3] es un
intercambio de datos utilizados actualmente subconjunto del SGML (Standard Generalized
por las aplicaciones de la industria; XML y Markup Language) y evolucionado como
JSON. La elección de un formato adecuado de resultado de la complejidad de SGML. XML es
intercambio de datos puede tener considerado el "santo grial" de la informática
consecuencias significativas sobre las tasas de debido a su formato de representación de
datos universal [1]. La intención de un
transmisión de datos y el rendimiento.
documento XML es evidente por sí misma y
Describimos las especificaciones del lenguaje
está incrustada en su estructura. Las
y su respectiva configuración de uso. A consideraciones fundamentales de diseño de
continuación se realiza un estudio de caso XML incluyen la simplicidad y la legibilidad
para comparar la utilización de los recursos y humana. Entre los objetivos de diseño de XML,
el rendimiento relativo de las aplicaciones que el W3C especifica que "XML será directamente
utilizan los formatos de intercambio. utilizable a través de Internet" y que "los
Encontramos que JSON es significativamente documentos XML deben ser legibles por el
más rápido que XML y además registramos hombre y razonablemente claros". Los usos
otras métricas relacionadas con los recursos principales para XML son Remote Procedure
en nuestros resultados. Calls (RPC) [4] y la serialización de objetos para
la transferencia de datos entre aplicaciones.
1. Introducción. XML es un lenguaje utilizado para crear
marcados definidos por el usuario para
Los formatos de intercambio de datos documentos y esquemas de codificación. XML
evolucionaron de ser marcados y orientados a no tiene conjuntos de etiquetas predefinidos y
la visualización para apoyar aún más la cada etiqueta válida es definida por un usuario
codificación de metadatos que describe los oa través de otro esquema automatizado.
atributos estructurales de la información. Los Varios números de tutoriales y foros de
requisitos para apoyar el intercambio de datos usuarios ofrecen un amplio soporte para XML
de aplicaciones Java llevó al desarrollo de y han ayudado a crear una amplia base de
formatos de intercambio de datos estándar usuarios. XML es un formato de datos
[2]. JSON y XML son dos formatos de jerárquico definido por el usuario. Un ejemplo
intercambio de datos con propósitos únicos. de un objeto codificado en XML se
Las secciones dos y tres proporcionan proporciona en la figura 1.
antecedentes para JSON y XML. La sección
cuatro describe el estudio de caso y la
metodología utilizada para comparar la
velocidad y la utilización de los recursos. La
sección cinco describe los resultados y la
sección seis identifica las amenazas a la validez Figura 1. Una estructura jerárquica que
de este estudio. Concluimos en la sección siete describe la codificación de un nombre
y proporcionamos las direcciones para los
refinamientos posibles a este estudio.
3. JSON Este estudio de caso mide el tiempo de
transmisión y la utilización de los recursos. La
JSON [6] está diseñado para ser un lenguaje de
hipótesis nula establece que no hay diferencia
intercambio de datos que es legible por el
en los tiempos de transmisión y utilización de
hombre y fácil para las computadoras para
analizar y utilizar. JSON está directamente recursos entre JSON y XML. El entorno
soportado dentro de JavaScript [7] y es más operativo para este estudio de caso consiste
adecuado para aplicaciones JavaScript; Lo que en un programa cliente / servidor. El cliente se
proporciona ganancias de rendimiento configura de forma aislada y envía objetos
significativas sobre XML, lo que requiere JSON y XML al servidor para medir el
bibliotecas adicionales para recuperar datos rendimiento y la utilización de recursos.
de los objetos DOM (Document Object Model) Encontramos evidencia significativa para
[12]. Se estima que JSON analiza hasta cien apoyar el rechazo de la hipótesis nula.
veces más rápido que XML [6] en los
navegadores modernos, pero a pesar de sus 4.1. Programa Cliente / Servidor
afirmaciones de desempeño notable, los
argumentos contra JSON incluyen falta de
Nuestros casos de prueba utilizan un
soporte de espacio de nombres, falta de
programa cliente de red simple para transmitir
validación de entrada y inconvenientes de
objetos Java codificados en XML y codificados
extensibilidad. Crockford [6] aborda tales
en JSON a un servidor. El cliente y el servidor
argumentos alegando que "cada objeto es un
inician conexiones basadas en TCP / IP donde
espacio de nombres. Su conjunto de claves es
el servidor escucha en un puerto y el cliente se
independiente de todos los demás objetos,
conecta en ese puerto. El cliente y el servidor
incluso exclusivos de anidamiento. Además,
utilizan técnicas de codificación similares. Para
JSON utiliza el contexto para evitar la
simular servidores realistas y potencialmente
ambigüedad, al igual que los lenguajes de
ejecutar pruebas de estrés, el servidor es de
programación ", que la validación de los
múltiples hilos. El servidor descodifica el texto
insumos es responsabilidad de las aplicaciones
JSON o XML al recibirlo y luego descarta el
de dominio individuales, y que la falta de
texto.
extensibilidad de las reivindicaciones es
abordada por la flexibilidad de las
construcciones JSON. La sintaxis de JSON es 4.2. Ambiente
legible por el ser humano. La Figura 2 describe
un ejemplo en el que JSON se utiliza para El programa cliente envía datos codificados de
codificar un nombre y un apellido. JSON y XML en un entorno de workbench
aislado. El hardware consiste en dos
estaciones de trabajo interconectadas por un
conmutador. Los servicios de firewall de
software están deshabilitados. Dado que el
intercambio de datos no implica leer y escribir
en el almacenamiento secundario, la
Figura 2. Una construcción JSON simple que capacidad de lectura / escritura de disco no es
describe la codificación de un nombre importante para estas estaciones de trabajo.
Las estaciones de trabajo tienen una
instalación mínima de CentOS 5.2 [14] con
paquetes de software adicionales para
4. METODOLOGÍA registrar varias medidas del sistema. Las
estaciones de trabajo están conectadas a una inicio al servidor. Cuando el servidor recibe el
red de área local aislada. El switch soporta comando start, inicia un temporizador y envía
conexiones gigabit y las estaciones de trabajo un mensaje listo. El cliente recibe el mensaje
tienen tarjetas de interfaz de red de 10/100 listo y comienza la transmisión de objetos.
megabits. Los cables Cat5e funcionan entre las Cuando el cliente termina de transmitir sus
tarjetas de interfaz de red de las estaciones de objetos, envía una señal final al servidor y el
servidor apaga su temporizador y sus métricas
trabajo y el conmutador, y la topología
de registro. Las métricas se registran en un
completa está dispuesta a poca distancia
archivo con una marca de tiempo para indicar
(menos de 10 metros). De acuerdo con la cuándo finaliza la prueba.
herramienta de monitoreo de red, IPTraf [5],
nuestra red aislada no muestra tráfico
frecuente de red. 4.4. Diseño del estudio de caso

4.3. Mediciones
Los casos de prueba se diseñan e implementan
Elegimos medir las siguientes métricas: para comparar tiempos de transmisión y
número de objetos enviados, tiempo total utilización de recursos de JSON y XML. El
para enviar el número de objetos, tiempo primer escenario consiste en ejecutar una
promedio por transmisión de objetos, única transmisión que consume mucho
utilización de la CPU del usuario, utilización de tiempo de una gran cantidad de objetos con el
la CPU del sistema y utilización de la memoria. fin de lograr medidas medias precisas. El
El tiempo total por prueba nos indica cuánto segundo escenario consiste en ejecutar una
tarda el servidor en recibir cada objeto del serie de casos de prueba con un número cada
cliente. El tiempo promedio por objeto vez mayor de objetos. Su propósito es
describe cuánto tarda (en promedio) en que el determinar si JSON o XML difieren
servidor reciba un objeto del cliente. La estadísticamente a medida que aumenta el
utilización de la CPU del usuario es el número de objetos codificados enviados al
porcentaje de tiempo que se pasa realizando servidor. El número de objetos transmitidos al
los procesos del usuario y la utilización de la servidor se trata como una variable
CPU del sistema es el porcentaje de tiempo independiente. Al aumentar el número de
dedicado a realizar procesos del sistema. De objetos enviados al servidor a intervalos
acuerdo con RedHat [9], altos porcentajes de discretos igualmente espaciados, añadimos la
CPU de usuario tienden a ser favorable, varianza a las distribuciones de las mediciones
mientras que los altos porcentajes del sistema para la prueba t de comparación de la media.
tienden a apuntar hacia problemas que Además, comparamos el impacto de la
requieren más investigación [13]. La transmisión de un gran número de objetos con
utilización de la memoria mide el porcentaje el impacto de transmitir un número bajo de
de memoria disponible y libre en el sistema. objetos observando lo que sucede con las
Nuestras métricas se registran en archivos mediciones en grados variables de
utilizando software cliente / servidor granularidad. El primer escenario consiste en
desarrollado internamente y System Activity un cliente que envía un millón de objetos a un
Reporter (SAR), una utilidad de grabación servidor utilizando tanto la codificación JSON
métrica [11]. El programa cliente / servidor como la codificación XML. El segundo
mide el tiempo de transmisión por transmisión escenario consiste en un cliente que envía
de objetos. SAR mide la utilización de recursos cantidades menores de objetos a un servidor
por tiempo-duración. Las mediciones de en cinco intervalos separados. El cliente envía
tiempo se calculan de la siguiente manera. El 20.000, 40.000, 60.000, 80.000 y 100.000
cliente se conecta y envía un comando de objetos codificados al servidor. Nos referimos
a estos intervalos de transmisión como Trial 1, 5.2. Escenario 2
Trial 2, Trial 3, Trial 4 y Trial 5,
respectivamente. El escenario 2 se compone de una serie de
ensayos más pequeños que determinan si
JSON y XML son estadísticamente diferentes
5. RESULTADOS según cada una de nuestras medidas. Se utiliza
Los resultados ilustran las diferencias entre la la prueba t de comparación de la media.
codificación JSON y XML en diferentes Enviamos 20.000, 40.000, 60.000, 80.000 y
escenarios de transmisión. Esta sección 100.000 objetos codificados al servidor y
presenta las métricas obtenidas para las recopilamos métricas para cada caso. Las
mediciones medias, compara las métricas de tablas 3, 4 y 5 muestran las métricas obtenidas
transmisión de alto versus bajo número de de estos ensayos:
objetos codificados y determina si JSON y XML
son estadísticamente diferentes para cada una
de nuestras mediciones. Presentamos las Tabla 3. Escenario 2 JSON Vs XML Timing
mediciones de ambos escenarios y discutimos
sus implicaciones.

5.1. Escenario 1

El escenario 1 es una transmisión de mucho


tiempo de una gran cantidad de objetos. Se
usan grandes cantidades de objetos para
lograr medidas medias precisas. El cliente
envía un millón de objetos codificados al
servidor para JSON y XML. Medimos el tiempo
y la utilización de los recursos. En las Tablas 1
y 2 se enumeran las mediciones y los valores
respectivos obtenidos de este ensayo:

Tabla 1. Escenario 1 JSON vs. XML Timming

Tabla 4. Escenario 2 JSON CPU / Mem

Tabla 2. Escenario 1 JSON vs. XML CPU / Mem


Tabla 5. Escenario 2 XML CPU / Mem

La Figura 3 ilustra las utilidades promedio de


JSON para CPU y memoria por ensayo. La
Figura 4 ilustra la utilización promedio de la
CPU y la memoria de XML por ensayo. La Figura 4. Escenario 2 Utilización de recursos
Figura 5 ilustra las diferencias entre las XML
utilizaciones de recursos de JSON y las
utilizaciones de recursos de XML, trazando la
Figura 3 y la Figura 4 en el mismo gráfico.

Las figuras 3-5 indican que XML parece utilizar


menos la utilización de la CPU del usuario que
JSON. Las transmisiones codificadas JSON y
XML utilizan casi la misma cantidad de
memoria en el servidor.

Figura 5. Escenario 2, JSON Vs XML (Utilización


de recursos)

5.3. Discusión
Para analizar nuestros resultados hacemos
observaciones cualitativas de alto nivel y
analizamos cada vez más el significado de cada
medida mediante pruebas estadísticas. Esta
sección explica las diferencias observadas
Figura 3. Escenario 2 Utilización de recursos de usando una prueba t tradicional.
JSON Observaciones cualitativas de alto nivel entre
JSON y XML se observan en ambos escenarios
de prueba. El escenario 1 ilustra mediciones
medias precisas debido al gran número de
transmisiones de objetos codificados. El
Escenario 2 proporciona observaciones de
grano fino de los impactos de menos
transmisiones para cada medición. La Tabla 6
enumera las diferencias entre JSON y XML afectar a la medida de utilización de la CPU del
basadas en las observaciones y los resultados usuario cuando se compara con la transmisión
de cada escenario. Los valores medios de las de una cantidad mayor de objetos. La prueba
mediciones del escenario 1 indican que enviar t es una manera de comparar las medias de
datos en codificación JSON es en general más dos distribuciones y determinar si son
rápido que usar la codificación XML. Las estadísticamente diferentes. Ejecutamos una
mediciones de tiempo medio y tiempo total
ttest no apareada de dos caras sobre los
proporcionan una indicación de que la
resultados del escenario 2 para comparar
velocidad de JSON supera la velocidad de XML.
Además, JSON utiliza más recursos de CPU de JSON y XML con respecto a cada medida. El
usuario que XML en el escenario 1. La nivel de significación se establece en α = 0,05
memoria depende del estado de los sistemas [10]. La distribución de cada medida es el
antes de un escenario o ejecución de prueba; conjunto que comprende las cinco
Sin embargo, el uso es similar entre JSON y observaciones que vienen de cada uno de los
XML. De acuerdo con nuestras observaciones cinco ensayos en el escenario 2. Hacemos la
y las métricas obtenidas de ambos escenarios, suposición hipótesis nula de que JSON y XML
los tiempos de transmisión de XML son tienen los mismos medios para cada
menores cuando se transmiten menos objetos distribución de medida. Luego, usamos la
y los tiempos de transmisión de JSON son los prueba t para calcular la probabilidad que
mismos cuando se transmiten menos objetos.
proporcionaría evidencia para apoyar una
hipótesis alternativa. La Tabla 7 enumera las
Tabla 6. Resultados y observaciones de alto
distribuciones de muestras utilizadas en las
nivel
pruebas t para comparar cada medida. Los
valores de distribución provienen de las tablas
3, 4 y 5.

Tabla 7. Las poblaciones de muestras JSON y


XML utilizadas en la prueba t

La transmisión de una menor cantidad de


objetos codificados por JSON no parece
Tabla 8. JSON y XML t-test p-valores con α = caso. Es evidente que esto no es posible ya que
0,05 se necesitarían casos de prueba adicionales
para tener en cuenta los diferentes sistemas
operativos, el contenido de los datos, los
tamaños de los paquetes transmitidos a través
de la red, etc. Este estudio de caso sirve como
punto de datos único para demostrar las
diferencias de desempeño y utilización de
recursos entre JSON Y XML para los casos de
prueba específicos dados.
La tabla 8 enumera las probabilidades (p-
valores) que habríamos llegado a nuestros
resultados bajo la hipótesis de hipótesis nula. 7. CONCLUSIÓN
Los resultados de la prueba T muestran que
JSON y XML tienen tiempo total Este estudio de caso comparó las diferencias
estadísticamente diferente por ensayo, entre dos formatos de intercambio de datos
tiempo medio por ensayo y la utilización actuales. Los resultados indican que JSON es
promedio de la CPU del sistema por ensayo. 6. más rápido y utiliza menos recursos que su
AMENAZAS A LA VALIDEZ Los estudios de caso contraparte XML; Proporcionando así
están sujetos a amenazas de validez, evidencia significativa para refutar la hipótesis
específicamente, validez interna, validez nula. JSON y XML proporcionan fortalezas
externa, validez de constructo y validez de únicas, pero la importancia del rendimiento y
contenido. Utilizamos medidas que la utilización de los recursos debe entenderse
representan adecuadamente las nociones de
al tomar decisiones entre los formatos de
rendimiento y utilización de recursos como se
intercambio de datos. Este estudio de caso ha
describe en la sección 4.3, proporcionando así
métricas significativas de validez de proporcionado un punto de referencia claro
constructo. La configuración de nuestros que puede utilizarse para comparar estos
escenarios de prueba donde los programas formatos al seleccionar un mecanismo de
cliente y servidor están aislados del tráfico de transporte. Tenemos la intención de continuar
difusión en una red proporcionan confianza y mejorar nuestras investigaciones de la
adicional de que nuestras métricas no se siguiente manera: 1) eliminar el cuello de
confunden con variables adicionales. Se botella potencial en la red en nuestros
utilizan diversas medidas para entender las escenarios de prueba mediante el uso de
diferencias entre JSON y XML; Aumentando así tarjetas de red Gigabit. Las tarjetas de red
la validez del contenido del estudio. La validez Gigabit nos dan la capacidad de realizar casos
interna se refiere a la relación que existe entre basados en el estrés para ver qué formato de
variables independientes y dependientes. Las
intercambio de datos maneja conexiones
medidas descritas en la sección 4.3
múltiples de manera más efectiva. Las tarjetas
representan las variables dependientes de
nuestro estudio y las únicas variables de red Gigabit también nos dan la capacidad
independientes son los programas de casos de de obtener métricas de casos mientras el
prueba que se ejecutan en los escenarios 1 o servidor está bajo carga pesada, y 2) realizar
2. La homogeneidad y el aislamiento de los una encuesta para comparar los tiempos de
casos de prueba que corren bajo JSON o XML aprendizaje de JSON y XML para ver qué
aumenta la validez interna del estudio . La formato tiene una curva de aprendizaje más
validez externa se refiere a la capacidad de pronunciada.
generalizar los resultados de este estudio de

Вам также может понравиться