Un estándar canónico

El enfoque XDR para estandarizar representaciones de datos es canónico.

Es decir, XDR define representaciones para un solo byte (el bit más significativo primero), una sola representación de coma flotante (IEEE), etc. Cualquier programa que se ejecute en cualquier máquina puede utilizar XDR para crear datos portátiles convirtiendo su representación local a los estándares XDR. Del mismo modo, cualquier programa que se ejecute en cualquier máquina puede leer datos portátiles convirtiendo las representaciones estándar XDR a sus equivalentes locales. El estándar canónico desacopla completamente los programas que crean o envían datos portátiles de aquellos que utilizan o reciben datos portátiles.

El advenimiento de una nueva máquina o un nuevo lenguaje no tiene ningún efecto sobre la comunidad de creadores y usuarios de datos portátiles existentes. Una nueva máquina puede ser programada para convertir tanto las representaciones estándar como sus representaciones locales independientemente de las representaciones locales de otras máquinas. Por el contrario, las representaciones locales de la nueva máquina también son irrelevantes para los programas existentes que se ejecutan en otras máquinas. Estos programas existentes pueden leer inmediatamente los datos portátiles producidos por la nueva máquina, ya que dichos datos se ajustan a los estándares canónicos.

Existen fuertes precedentes para el enfoque canónico de XDR. Todos los protocolos por debajo de la capa cinco del modelo ISO, incluidos Transmission Control Protocol (TCP), Internet Protocol (IP), User Datagram Protocol (UDP) y Ethernet, son protocolos canónicos. La ventaja de cualquier enfoque canónico es la simplicidad. XDR encaja en la capa de presentación ISO y tiene un propósito similar al X.409 de la Notación de Sintaxis Abstracta ISO. La principal diferencia aquí es que XDR utiliza tipado implícito, mientras que X.409 utiliza tipado explícito. Con XDR, sólo es necesario escribir un único conjunto de rutinas de conversión una vez.

El tiempo empleado en convertir a y desde una representación canónica es insignificante, especialmente en las aplicaciones de red. Al preparar una estructura de datos para la transferencia, atravesar los elementos de la estructura requiere más tiempo que convertir los datos. En las aplicaciones de red, se requiere tiempo adicional para mover los datos hacia abajo a través de las capas de protocolo del remitente, a través de la red y hacia arriba a través de las capas de protocolo del destinatario. Cada máquina debe atravesar y copiar estructuras de datos, independientemente de si es necesaria la conversión.