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 вказує представлення для більшості типів даних в C. Закодована інформація містить тільки дані, вона не містить інформації про тип даних. Наприклад, після кодування 32-бітного integer, результатом буде 32-бітний integer в XDR. Не буде інформації про те, що це integer. Клієнти і сервери, що використовують XDR, повинні погоджувати тип даних повідомлень, якими вони обмінюються.
Мотивація використання XDR
Різні комп'ютери можуть мати різне внутрішнє представлення інформації. Наприклад, 32-бітний Integer має 2 можливі форми подання:
- Порядок байтів від старшого до молодшого (Motorola 68000)
- Прямий порядок байтів (Intel 80x86)
Для деяких функцій WinSock, їхні аргументи (тобто параметри функцій), повинні зберігатися у зворотному порядку.
- Сервер і клієнт можуть обмінюватись різними типами даних.
- Якщо сервер і клієнт виконуються на двох відповідних машинах, використовуючи різне внутрішнє представлення даних, то вони повинні узгоджувати точне представлення всіх даних, що передаються між ними.
- Sun Microsystems розробила external data representation (XDR), який визначає представлення для різних типів даних (integer, enumeration)
- XDR став стандартом де-факто для більшості клієнт-серверних додатків:
- Програма перетворює повідомлення зі свого внутрішнього представлення до XDR для подальшої передачі. Це називається кодуванням.
- Одержувач перетворює отримане повідомлення з XDR у власне представлення. Це називається декодування.
Програмна підтримка використання XDR
- XDR визначає представлення для кожного типу даних.
- Наприклад, 32-бітний integer має порядок байтів від старшого до молодшого.
- Для сприяння програмістам, XDR забезпечує бібліотеку стандартних програм для конвертації представлення даних.
Здійснення повідомлення в XDR
- Відправлене повідомлення може складатися з кількох пунктів даних (items).
- Наприклад, повідомлення містить інформацію про студента. Воно складається з трьох пунктів:
- Ім'я (рядок символів) -ID (ціле) -Сукупний GPA (floating-point number)
- Перед посилкою повідомлення програма (клієнт або сервер) конвертує всю інформацію пунктів з внутрішнього представлення до XDR.
- Кроки конвертації
- Надання буфера для зберігання всієї інформації повідомлення, яка повинна бути надіслана.
- Виклик xdrmem_create () для ініціалізації потоку XDR.
Наприклад: xdrmem_create () повертає вказівник на порожній потік.
- Виклик стандартної програми в XDR для перетворення кожного пункту інформації. Вона буде дописувати закодовану інформацію в кінець потоку наступним чином:
- Поміщати закодовану інформацію в наступне доступне місце в буфері
- Оновлювати внутрішній вказівник на потік, поміщаючи його на нове доступне вільне місце
- Наприклад, конвертація 32-бітного цілого:
- Після кодування всіх пунктів сполучення, це повідомлення надсилається.
Стандартні програми перетворення в XDR
Одержання повідомлення в XDR
- Коли програма отримує повідомлення в XDR, вона конвертує кожен пункт даних у повідомленні з XDR у своє внутрішнє представлення.
- Кроки:
- Виклик xdrmem_create () для ініціалізації потоку XDR, вказавши XDR_DECODE, як четвертий аргумент.
- Приміщення отриманого повідомлення в буфер.
- Виклик підходящої стандартної програми перетворення для декодування кожного пункту даних отриманого повідомлення.
Посилання
- Http://docs.freebsd.org/44doc/psd/25.xdrrfc/paper.pdf [ 24 січня 2022 у Wayback Machine.]
- Http://www.comp.hkbu.edu.hk/ [ 6 липня 2008 у Wayback Machine.] ~ comp2650/lecture/notes/Chapter9.pdf
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U Vikipediyi ye statti pro inshi znachennya cogo termina XDR angl External Data Representation mizhnarodnij standart peredachi danih v Internet i vikoristovuyetsya v riznih RFC dlya opisu tipiv XDR dozvolyaye organizuvati ne zalezhnu vid platformi peredachu danih mizh komp yuterami v geterogennih merezhah External Data Representation XDR ce standart IETF z 1995 roku Vin dozvolyaye danim buti upakovanimi ne zalezhno vid arhitekturi takim chinom dani mozhut peredavatisya mizh geterogennimi komp yuternimi sistemami Peretvorennya z lokalnogo predstavlennya do XDR nazivayetsya koduvannyam Peretvorennya z XDR v lokalne predstavlennya nazivayetsya dekoduvannyam XDR vikonanij yak portativna perenosna biblioteka funkcij mizh riznimi operacijnimi sistemami i tak samo ne zalezhit vid transportnogo rivnya Sered program sho vikoristovuyut XDR mozhna nazvati nastupni Sun RPC Mova programuvannya R SpiderMonkeyTipi danih u XDRboolean Int 32 ve cile chislo Hyper 64 ve cile chislo float double enumeration Structure string Masivi fiksovanoyi dovzhini Masivi zminnoyi dovzhini Neformatovani siri dani XDR vkazuye predstavlennya dlya bilshosti tipiv danih v C Zakodovana informaciya mistit tilki dani vona ne mistit informaciyi pro tip danih Napriklad pislya koduvannya 32 bitnogo integer rezultatom bude 32 bitnij integer v XDR Ne bude informaciyi pro te sho ce integer Kliyenti i serveri sho vikoristovuyut XDR povinni pogodzhuvati tip danih povidomlen yakimi voni obminyuyutsya Motivaciya vikoristannya XDRRizni komp yuteri mozhut mati rizne vnutrishnye predstavlennya informaciyi Napriklad 32 bitnij Integer maye 2 mozhlivi formi podannya Poryadok bajtiv vid starshogo do molodshogo Motorola 68000 Pryamij poryadok bajtiv Intel 80x86 Dlya deyakih funkcij WinSock yihni argumenti tobto parametri funkcij povinni zberigatisya u zvorotnomu poryadku Server i kliyent mozhut obminyuvatis riznimi tipami danih Yaksho server i kliyent vikonuyutsya na dvoh vidpovidnih mashinah vikoristovuyuchi rizne vnutrishnye predstavlennya danih to voni povinni uzgodzhuvati tochne predstavlennya vsih danih sho peredayutsya mizh nimi Sun Microsystems rozrobila external data representation XDR yakij viznachaye predstavlennya dlya riznih tipiv danih integer enumeration XDR stav standartom de fakto dlya bilshosti kliyent servernih dodatkiv Programa peretvoryuye povidomlennya zi svogo vnutrishnogo predstavlennya do XDR dlya podalshoyi peredachi Ce nazivayetsya koduvannyam Oderzhuvach peretvoryuye otrimane povidomlennya z XDR u vlasne predstavlennya Ce nazivayetsya dekoduvannya Programna pidtrimka vikoristannya XDRXDR viznachaye predstavlennya dlya kozhnogo tipu danih Napriklad 32 bitnij integer maye poryadok bajtiv vid starshogo do molodshogo Dlya spriyannya programistam XDR zabezpechuye biblioteku standartnih program dlya konvertaciyi predstavlennya danih Zdijsnennya povidomlennya v XDRVidpravlene povidomlennya mozhe skladatisya z kilkoh punktiv danih items Napriklad povidomlennya mistit informaciyu pro studenta Vono skladayetsya z troh punktiv Im ya ryadok simvoliv ID cile Sukupnij GPA floating point number Pered posilkoyu povidomlennya programa kliyent abo server konvertuye vsyu informaciyu punktiv z vnutrishnogo predstavlennya do XDR Kroki konvertaciyi Nadannya bufera dlya zberigannya vsiyeyi informaciyi povidomlennya yaka povinna buti nadislana Viklik xdrmem create dlya inicializaciyi potoku XDR Napriklad xdrmem create povertaye vkazivnik na porozhnij potik Viklik standartnoyi programi v XDR dlya peretvorennya kozhnogo punktu informaciyi Vona bude dopisuvati zakodovanu informaciyu v kinec potoku nastupnim chinom Pomishati zakodovanu informaciyu v nastupne dostupne misce v buferi Onovlyuvati vnutrishnij vkazivnik na potik pomishayuchi jogo na nove dostupne vilne misce Napriklad konvertaciya 32 bitnogo cilogo Pislya koduvannya vsih punktiv spoluchennya ce povidomlennya nadsilayetsya Standartni programi peretvorennya v XDROderzhannya povidomlennya v XDRKoli programa otrimuye povidomlennya v XDR vona konvertuye kozhen punkt danih u povidomlenni z XDR u svoye vnutrishnye predstavlennya Kroki Viklik xdrmem create dlya inicializaciyi potoku XDR vkazavshi XDR DECODE yak chetvertij argument Primishennya otrimanogo povidomlennya v bufer Viklik pidhodyashoyi standartnoyi programi peretvorennya dlya dekoduvannya kozhnogo punktu danih otrimanogo povidomlennya PosilannyaHttp docs freebsd org 44doc psd 25 xdrrfc paper pdf 24 sichnya 2022 u Wayback Machine Http www comp hkbu edu hk 6 lipnya 2008 u Wayback Machine comp2650 lecture notes Chapter9 pdf