External Data Representation

External Data Representation
XDR
Название:

External Data Representation

Уровень (по модели OSI):

Представления

Семейство:

TCP/IP, ONC

Назначение протокола:

Стандартизация формата данных

Спецификация:

RFC 4506 / STD 67

XDR (англ. External Data Representation - внешнее представление данных) — международный стандарт передачи данных в Интернете, используемый в различных RFC для описания типов. XDR позволяет организовать не зависящую от платформы передачу данных между компьютерами в гетерогенных сетях.

External Data Representation (XDR) — это стандарт IETF с 1995 года. Он позволяет данным быть упакованными не зависящим от архитектуры способом, таким образом, данные могут передаваться между гетерогенными компьютерными системами.

  • Преобразование из локального представления в XDR называется кодированием.
  • Преобразование из XDR в локальное представление называется декодированием.
  • XDR выполнен как портативная (переносная) библиотека функций между различными операционными системами и так же не зависит от транспортного уровня.

Среди использующих XDR программ можно назвать следующие:

Содержание

Типы данных в XDR

  • boolean
  • int (32-битное целое число)
  • hyper (64-битное целое число)
  • float
  • double
  • enumeration
  • structure
  • string
  • массивы фиксированной длины
  • массивы переменной длины
  • неформатированные («сырые») данные

Мотивация использования XDR

Разные компьютеры могут иметь разное внутреннее представление информации. Например, 32-битный Integer имеет 2 возможных формы представления:

  • Порядок байтов от старшего к младшему (Motorola 68000)
  • Прямой порядок байтов (Intel 80x86)


Для некоторых функций WinSock их аргументы (то есть, параметры функций) должны храниться в обратном порядке.

  • Сервер и клиент могут обмениваться разными типами данных.
  • Если сервер и клиент выполняются на двух соответствующих машинах, используя разное внутреннее представление данных, то они должны согласовывать точно представление всех данных, передаваемых между ними.
  • Sun Microsystems разработала external data representation (XDR), который определяет представление для различных типов данных (integer, enumeration….)
  • XDR стал стандартом де-факто для большинства клиент-серверных приложений:

— Программа преобразует сообщения из своего внутреннего представления в XDR для последующей передачи. Это называется кодированием. — Получатель преобразует полученное сообщение из XDR в собственное представление. Это называется декодированием.

Типы данных в XDR

XDR указывает представление для большинства типов данных в C:


Закодированная информация содержит только данные, она не содержит информации о типе данных. Например, после кодирования 32-битного integer результатом будет 32-битный integer в XDR. Не будет информации о том, что это integer. Клиенты и серверы, использующие XDR, должны согласовывать тип данных сообщений, которыми они обмениваются.

Программная поддержка использования XDR

  • XDR определяет представление для каждого типа данных.
  • Например, 32-битный integer имеет порядок байтов от старшего к младшему.
  • Для содействия программистам XDR обеспечивает библиотеку стандартных программ для конвертирования представления данных.

Посылка сообщения в XDR

  • Посылаемое сообщение может состоять из нескольких пунктов данных (items).
  • Например, сообщение содержит информацию о студенте. Оно состоит из трех пунктов:

— имя (строка символов) -ID (целое) -совокупный GPA (floating-point number)

  • Перед посылкой сообщения программа (клиент или сервер) конвертирует всю информацию пунктов из внутреннего представления в XDR.
  • Шаги конвертирования
    1. Предоставление буфера для хранения всей информации сообщения, которая должна быть послана.
    2. Вызов xdrmem_create() для инициализации потока XDR.

Например: xdrmem_create() возвращает указатель на пустой поток.

    1. Вызов стандартной программы в XDR для преобразования каждого пункта информации. Она будет дописывать закодированную информацию в конец потока следующим образом:
       *#* помещать закодированную информацию в следующее доступное место в буфере
       *#* обновлять внутренний указатель на поток, помещая его на новое доступное свободное место
      • Например, конвертирование 32-битного целого:


    1. После кодирования всех пунктов сообщения это сообщение посылается.

Стандартные программы преобразования в XDR

Получение сообщения в XDR

  • Когда программа получается сообщение в XDR, она конвертирует каждый пункт данных в сообщении из XDR в свое внутреннее представление.
  • Шаги:
    1. Вызов xdrmem_create() для инициализации потока XDR , указав XDR_DECODE, как четвертый аргумент.
    2. Помещение полученного сообщения в буфер.
    3. Вызов подходящей стандартной программы преобразования для декодирования каждого пункта данных полученного сообщения.

Например, декодирование 32-битного целого:



Ссылки




Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "External Data Representation" в других словарях:

  • External Data Representation — (XDR) Familia: Protocolo de descripción de datos Función: Codificación de datos. Ubicación en la pila de protocolos* Aplicación NFS, NIS …   Wikipedia Español

  • External Data Representation — (XDR) is an IETF standard from 1995 of the presentation layer in the OSI model. XDR allows data to be wrapped in an architecture independent manner so data can be transferred between heterogeneous computer systems. Converting from the local… …   Wikipedia

  • External Data Representation — Représentation externe des données eXternal Data Representation (XDR) est un standard IETF de la couche de présentation du modèle OSI. XDR permet d encoder les données de manière indépendante de l architecture, afin de pouvoir les transférer… …   Wikipédia en Français

  • External Data Representation — (kurz: XDR) ist ein abstrakter technischer Kommunikationsstandard, der von Sun Microsystems und anderen Unternehmen definiert wurde, um den Datenaustausch zwischen Servern und Clients hardwareunabhängig zu standardisieren. XDR ist eine… …   Deutsch Wikipedia

  • Common Data Representation — (CDR) is used to represent structured or primitive data types passed as arguments or results during remote invocations on Common Object Request Broker Architecture (CORBA) distributed objects. It enables clients and servers written in different… …   Wikipedia

  • Network Data Representation — (NDR) is an implementation of the presentation layer in the OSI model. External links NDR Specification Categories: Internet standardsInternet protocolsPresentation layer protocolsComputing stubs …   Wikipedia

  • Representation externe des donnees — Représentation externe des données eXternal Data Representation (XDR) est un standard IETF de la couche de présentation du modèle OSI. XDR permet d encoder les données de manière indépendante de l architecture, afin de pouvoir les transférer… …   Wikipédia en Français

  • Représentation externe des données — eXternal Data Representation (XDR) est un standard IETF de la couche de présentation du modèle OSI. XDR permet d encoder les données de manière indépendante de l architecture, afin de pouvoir les transférer entre systèmes hétérogènes. La… …   Wikipédia en Français

  • Data Format Description Language — (DFDL, often pronounced daff o dil) is a modeling language from the Open Grid Forum for describing general text and binary data. A DFDL model or schema allows any text or binary data to be read (or parsed ) from its native format and to be… …   Wikipedia

  • Data compression ratio — Data compression ratio, also known as compression power, is a computer science term used to quantify the reduction in data representation size produced by a data compression algorithm. The data compression ratio is analogous to the physical… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»