Fast Infoset (o FI ) es un estándar internacional que especifica un formato de codificación binaria para el conjunto de información XML ( XML Infoset ) como alternativa al formato de documento XML . Su objetivo es proporcionar una serialización más eficiente que el formato XML basado en texto.
FI es efectivamente una compresión sin pérdida , análoga a gzip , para XML, excepto que, si bien se pierde el formato original, no se pierde información en la conversión de XML a FI y de vuelta a XML. Si bien el propósito de la compresión es reducir el tamaño físico de los datos, FI apunta a optimizar tanto el tamaño del documento como el rendimiento del procesamiento.
La especificación Fast Infoset está definida por los organismos de normalización de la UIT-T y la ISO / IEC . FI está definido oficialmente en la Rec. X.891 de la UIT-T y en la ISO/IEC 24824-1, y se titula Fast Infoset . La norma fue publicada por la UIT-T el 14 de mayo de 2005 y por la ISO el 4 de mayo de 2007. El documento de la norma Fast Infoset se puede descargar del sitio web de la UIT. Aunque el documento no afirma restricciones de propiedad intelectual (PI) sobre la implementación o el uso, la página ii advierte que ha recibido avisos y que el tema puede no estar completamente libre de afirmaciones de PI.
Un error muy común es creer que FI requiere la compatibilidad con herramientas ASN.1 . Aunque la especificación formal utiliza la notación ASN.1, el estándar incluye la notación de control de codificación (ECN) y las implementaciones no requieren herramientas ASN.1.
Una alternativa a FI es FleXPath. [1]
Estructura
El formato de archivo subyacente es ASN.1 , con bloques de etiqueta/longitud/valor. Los valores de texto de los atributos y elementos se almacenan con prefijos de longitud en lugar de delimitadores finales, y los segmentos de datos no requieren escape para caracteres especiales. El equivalente de las etiquetas finales ("terminadores") solo se necesita al final de una lista de elementos secundarios. Los datos binarios se transmiten en formato nativo y no es necesario convertirlos a un formato de transmisión como base64 .
Fast Infoset es un formato de nivel superior basado en formatos y notación ASN.1. Los nombres de elementos y atributos se almacenan dentro del flujo de octetos, a diferencia de los esquemas de codificación ASN.1 tradicionales. En consecuencia, el archivo XML convencional se puede recuperar del flujo binario sin hacer referencia al esquema XML, y el esquema XML no necesita expresarse como una definición ASN.1. (Las "etiquetas" ASN.1 son simplemente nombres de tipos, por ejemplo, cadena, entero o tipos complejos). ASN.1 junto con ECN se utilizan para definir el formato de archivo.
Para la mayoría de las cadenas se crea una tabla de índice que incluye los nombres de elementos y atributos y sus valores. Esto significa que el texto de las etiquetas y los valores repetidos solo aparece una vez por documento.
Implementaciones
Implementación de referencia
Una implementación en Java de la especificación FI está disponible como parte de la Implementación de JAXB en Eclipse. La biblioteca es de código abierto y se distribuye bajo los términos de la Licencia Apache 2.0. Varios proyectos utilizan esta implementación, incluida la implementación de referencia para JAX-WS utilizada en Eclipse Metro .
La implementación de QtitanFastInfoset para C++ está disponible bajo licencia comercial como un componente para el marco Qt .
Actuación
Debido a que los conjuntos de información rápidos se comprimen como parte del proceso de generación de XML, son mucho más rápidos que usar algoritmos de compresión de estilo Zip en una secuencia XML, aunque la salida no está tan bien comprimida.
El rendimiento del análisis de tipo SAX de Fast Infoset también es mucho más rápido que el rendimiento del análisis de XML 1.0, incluso sin ninguna compresión de estilo Zip. Los aumentos típicos en la velocidad de análisis observados para la implementación de Java de referencia son un factor de 10 sobre Java Xerces y un factor de 4 sobre el controlador Piccolo (uno de los analizadores XML basados en Java más rápidos). [2] [3] [4]
Aplicaciones típicas
Dispositivos portátiles: los dispositivos móviles suelen tener conexiones de datos de bajo ancho de banda y CPU más lentas. Fast Infoset utiliza menos ancho de banda que XML y se procesa más rápido, lo que lo convierte en una opción superior.
Almacenamiento de grandes volúmenes de datos: al almacenar XML en un archivo o en una base de datos, el volumen de datos que produce un sistema puede superar con frecuencia los límites razonables, con una serie de desventajas: los tiempos de acceso aumentan a medida que se leen más datos, la carga de la CPU aumenta porque los datos XML requieren más energía para procesarse y los costos de almacenamiento aumentan. Al almacenar datos XML en formato Fast Infoset, el volumen de datos puede reducirse hasta en un 80 por ciento.
Pasar XML a través de Internet – Cuando una aplicación pasa datos a través de Internet, el ancho de banda de la red puede ser un cuello de botella importante, degradando seriamente el rendimiento de las aplicaciones cliente y limitando la capacidad del servidor para procesar solicitudes. [ cita requerida ] Reducir el tamaño de los datos transferidos a través de Internet reduce el tiempo necesario para enviar o recibir el mensaje y aumenta la cantidad de transacciones que un servidor puede procesar por hora.
Véase también
Referencias
- ^ Amer-Yahia, Sihem, Laks VS Lakshmanan y Shashank Pandit. "FleXPath: estructura flexible y consulta de texto completo para XML". Actas de la conferencia internacional ACM SIGMOD de 2004 sobre gestión de datos. ACM, 2004.
- ^ "Informes de rendimiento de Fast Infoset". 6 de octubre de 2005. Archivado desde el original el 7 de agosto de 2011. Consultado el 11 de octubre de 2007 .
- ^ "Informe de Japex: Rendimiento del análisis". 10 de enero de 2005. Archivado desde el original el 7 de agosto de 2011. Consultado el 11 de octubre de 2007 .
- ^ "Informe de Japex: Rendimiento de tamaño". 10 de enero de 2005. Archivado desde el original el 7 de agosto de 2011. Consultado el 11 de octubre de 2007 .
Enlaces externos
- Una descripción técnica detallada sobre OTN
- Página de inicio de FastInfoset.NET
- Página de inicio del proyecto FI
- Página de información rápida en el sitio ASN.1
- Página de herramientas de Fast Infoset de OSS
- Descarga gratuita del estándar Fast Infoset (ITU-T Rec. X.891) desde el sitio web de la UIT
- Descarga gratuita del estándar Fast Infoset (ISO/IEC 24824-1:2007) desde la página de estándares ISO de libre acceso
- Liquid Fast Infoset .Net (una implementación de .Net de código abierto)