protocol protobuf google buffers array xml json protocol-buffers data-serialization

protobuf - buffers de protocolo de google vs json vs XML



protocol buffers array (1)

Json

  • legible / editable por humanos
  • Se puede analizar sin conocer el esquema de antemano.
  • excelente soporte del navegador
  • menos detallado que XML

XML

  • legible / editable por humanos
  • Se puede analizar sin conocer el esquema de antemano.
  • estándar para jabón, etc.
  • buen soporte de herramientas (xsd, xslt, sax, dom, etc.)
  • bastante verboso

Protobuf

  • Datos muy densos (salida pequeña)
  • Es difícil de decodificar de manera robusta sin conocer el esquema (el formato de los datos es ambiguo internamente y necesita un esquema para aclararlo)
  • procesamiento muy rápido
  • no destinado a ojos humanos (binario denso)

Todos tienen un buen soporte en la mayoría de las plataformas.

Personalmente, rara vez uso XML en estos días. Si el consumidor es un navegador o una API pública, tiendo a usar json. Para las API internas, tiendo a usar protobuf para el rendimiento. La oferta tanto en la API pública (ya sea a través de encabezados o puntos finales separados) también funciona bien.

Me gustaría conocer los méritos y des-méritos de

  • Google Protocol Buffers
  • JSON
  • XML

Quiero implementar un marco común para dos aplicaciones, una en Perl y la segunda en Java. Por lo tanto, me gustaría crear un servicio común que pueda ser utilizado por ambas tecnologías, es decir, Perl y Java.

Ambas son aplicaciones web.

Por favor, compartan sus valiosos pensamientos y sugerencias sobre esto. He visto muchos enlaces en google pero todos tienen opiniones mezcladas.