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

PRINCIPALES FORMATOS DE

INTERCAMBIO DE INFORMACIÓN EN
SISTEMAS DISTRIBUIDOS MODERNOS

Actualmente, para que los sistemas distribuidos puedan darle


frente a los retos de escalabilidad, extensibilidad e
interoperabilidad, una de las principales decisiones a considerar
es la del formato de intercambio de información a utilizar en
cada caso.
La elección no es sencilla, pero explorando las
características de los principales formatos podremos
encontrar ventajas o desventajas ante determinadas
necesidades. También podremos evaluar otros
formatos disponibles y emergentes.
Veamos las principales características de XML
y JSON.
.................................................................................
Comparación de XML y JSON como formatos de intercambio de
información

XML JSON
(eXtensible Markup Language) VS (JavaScript Objet Notation)

Meta-lenguaje (especificación para crear Formato nacido de JavaScript que


...........

lenguajes de marcado) derivado de SGML ofrece una notación ligera basada en


para compartir información de forma texto para representar objetos como
interoperable entre sistemas juegos de llave-valor con tipos de datos
simples

Ejemplo Ejemplo

<?xml version="1.0" encoding="utf-8"?> {


<upc:asesor id="4099"xmlns:upc="http://www.upc.edu.pe"> "id" : 4099,
<dni>45678901</dni> "dni" : 45678901,
<nombre>Héctor</nombre> "nombre" : "Héctor",
<apellidoPaterno>Saira</apellidoPaterno> "apellidoPaterno" : "Saira",
<vigente>true</vigente> "vigente" : true,
<!--confirmar disponbilidad --> "sedes" : [
<sedes> {
<sede> "codigo" : 1,
<codigo>1</codigo> "nombre" : "Monterrico"
<nombre>Monterrico</nombre> },
</sede> {
<sede> "codigo" : 2,
<codigo>2</codigo> "nombre" : "Villa"
<nombre>Villa</nombre> }
</sede> ]
</sedes> }
</upc:asesor>

Facilidad y estructura Facilidad y estructura

1. Es legible por seres humanos 1. También es legible por seres humanos


2. Tiene sintáxis sencilla 2. También tiene sintáxis sencilla
3. Su estructura es jerárquica 3. También su estructura jerárquica
4. Es muy explicativo/verboso 4. Es menos explicativo/verboso
5. Soporta inclusión de comentarios (<!---->) 5. No soporta inclusión de comentarios
6. No existe el concepto de arreglos sino de 6. Sí maneja el concepto de arreglos ([ ])
elementos

Interoperabilidad Interoperabilidad

1. Está basado en texto 1. También está basado en texto


2. Es independiente del lenguaje de 2. También es independiente del lenguaje de
programación programación
3. Soporta juego de caracteres Unicode 3. También soporta juego de caracteres
Unicode

Eficiencia Eficiencia

1. Su modelo de datos no tiene una 1. Mejor equivalencia con estructuras de


equivalencia directa con los de la mayoría datos de objetos en lenguajes de
de lenguajes de programación programación modernos
2. Necesidad de mecanismos no tan 2. Interpretación sencilla con función
sencillos para interpretación Javascript eval ()
3. No tan ligero y consume usualmente más 3. Ligero y menos costoso en uso de red y
red y recursos de procesamiennto recursos de procesamiento

Flexibilidad Flexibilidad

1. Es extensible, permite añadir etiquetas 1. No es extensible, convención predefinida


personalizadas 2. No soporta métodos específicamente, sólo
2. Soporta el envío de métodos datos. Sin embargo, los métodos podrían ser
3. Permite tener estructuras enviados como textos que tendrían que
recursivas/cíclicas interpretarse en el destino
4. No hay limitación por palabras 3. No permite representar estructuras
reservadas recursivas
5. Se puede incluir namespaces 4. Las palabras reservadas de JavaScript
6. Soporta cualquier tipo de dato que se están restringidas
pueda incluir en su esquema (XSD) 5. No maneja el concepto de namespaces
6. Soporta tipos de datos primtivos y otros
que puedan ser tratados como objetos y
arreglos

Otras características Otras características

1. Es un estándar abierto gobernado por el 1. Se considera estándar de facto soportado


consorcio W3C por comunidades
2. Evoluciona a través de versiones 2. Es muy estable, no tiene versiones
3. Está orientado a documentos 3. Está orientado a intercambio de datos
autodescriptivos bien formados 4. No incluye mecanismo de validación; la
4. Se puede valir su estructura y contenido aplicación es responsable externamente
gracias a la utilización de esquema (XSD) 5. Preferido para clientes Web con AJAX y
5. Preferido para entornos empresariales móviles
6. Preferencia de desarrolladores en 6. Preferencia de desarrolladores en
decrecimiento crecimiento
7. Soporta mecanismos de seguridad a nivel 7. No ofrece mecanismo propio para cifrado
contenido como XML Encryption y XML o firma de contenido; la aplicación es
Signature resposable externamente

Extensiones
</> Extensiones

1. Otras especificaciones relacionadas a 1. Otras especificaciones relacionadas a


revisar: DTD, XSD, XSL, XLINK, XQuery, revisar: JSONT, JSONPath, JSON
Xpath, XSLT Referencing, JSON Schema, JSON-RPC,
JSPON, JSON-P

También existen otros formatos y tecnologías alternativos como YAML y Google


Protocol Buffers que conviene revisar, considerando las características revisadas para
XML y JSON. Intente identificar casos en los que sugeriría usar cada alternativa.

Material producido por la Universidad Peruana de Ciencias Aplicadas


Autor: Héctor Saira
COPYRIGHT © UPC 2016 - Todos los derechos reservados

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