Академический Документы
Профессиональный Документы
Культура Документы
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
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.