Ця стаття потребує додаткових для поліпшення її . (березень 2017) |
Серіалізація (у програмуванні) — процес перетворення будь-якої структури даних у послідовність бітів. Зворотною до операції серіалізації є операція десеріалізації — відновлення початкового стану структури даних із бітової послідовності.
Серіалізація використовується для передавання об'єктів мережею й для збереження їх у файлах. Наприклад, потрібно створити розподілений застосунок, різні частини якого мають обмінюватися даними зі складною структурою. У такому випадку для типів даних, які передбачається передавати, пишеться код, який здійснює серіалізацію і десеріалізацію. Об'єкт заповнюється необхідними даними, потім викликається код серіалізації, в результаті виходить, наприклад, XML-документ. Результат серіалізації передається приймальній стороні, наприклад, електронною поштою або через HTTP. Програма-одержувач створює об'єкт того ж типу і викликає код десеріалізації, у результаті отримуючи об'єкт із тими ж даними, які були в об'єкті програми-відправника. За такою схемою працює, наприклад, серіалізація об'єктів через SOAP в Microsoft.NET.
Застосування
Серіалізація надає декілька корисних можливостей:
- метод реалізації зберігання об'єктів, який зручніший, ніж запис їх властивостей в текстовий файл на диск і повторна збірка об'єктів читанням файлів;
- метод здійснення викликів віддалених процедур, як, наприклад, у SOAP;
- метод розповсюдження об'єктів, особливо в технологіях компонентно-орієнтованого програмування, таких як COM і CORBA;
- метод виявлення змін у даних, що змінюються з часом.
Для найефективнішого використання даних можливостей необхідно підтримувати незалежність від архітектури. Наприклад, необхідно мати можливість надійно відтворювати серіалізований потік даних, незалежно від порядку байтів, що використовується в цій архітектурі. Це означає, що найбільш проста і швидка процедура прямого копіювання ділянки пам'яті, в якому розміщується структура даних, не може працювати надійно для всіх архітектур. Серіалізація структур даних в архітектурно-незалежний формат означає, що не повинно виникати проблем через різний порядок проходження байтів, механізмів розподілу пам'яті або відмінностей представлення структур даних в мовах програмування.
Будь-якій зі схем серіалізації властиво те, що кодування даних послідовно за визначенням, і вибірка будь-якої частини серіалізованої структури даних вимагає, щоб весь об'єкт був зчитаний від початку до кінця і був відновлений. У багатьох програмах така лінійність корисна, тому що дозволяє використовувати прості інтерфейси введення/виведення загального призначення для збереження і передачі стану об'єкта. У додатках, де важлива висока продуктивність, можливо буде доречніше використовувати складнішу, нелінійну організацію зберігання даних.
Серіалізація наукових даних
Для наукових наборів даних, що мають великий обсяг, таких як дані, одержувані від супутників, або чисельні моделі клімату, погоди і океанів, були розроблені спеціальні бінарні стандарти серіалізації, наприклад , і старіший .
Підтримка у мовах програмування
Деякі об'єктно орієнтовані мови надають безпосередню підтримку серіалізації об'єктів, через синтаксичний цукор або стандартний інтерфейс. Серед них Ruby, Smalltalk, Python, PHP,Objective-C, Java, і сімейство мов .NET. Також доступні бібліотеки, що додають серіалізацію в мови, які не мають вбудованої підтримки.
Джерела інформації
- Серіалізація даних в C++ (рос.).
- Серіалізація PHP-об'єктів очима хакера
Див. також
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno berezen 2017 Serializaciya u programuvanni proces peretvorennya bud yakoyi strukturi danih u poslidovnist bitiv Zvorotnoyu do operaciyi serializaciyi ye operaciya deserializaciyi vidnovlennya pochatkovogo stanu strukturi danih iz bitovoyi poslidovnosti Serializaciya vikoristovuyetsya dlya peredavannya ob yektiv merezheyu j dlya zberezhennya yih u fajlah Napriklad potribno stvoriti rozpodilenij zastosunok rizni chastini yakogo mayut obminyuvatisya danimi zi skladnoyu strukturoyu U takomu vipadku dlya tipiv danih yaki peredbachayetsya peredavati pishetsya kod yakij zdijsnyuye serializaciyu i deserializaciyu Ob yekt zapovnyuyetsya neobhidnimi danimi potim viklikayetsya kod serializaciyi v rezultati vihodit napriklad XML dokument Rezultat serializaciyi peredayetsya prijmalnij storoni napriklad elektronnoyu poshtoyu abo cherez HTTP Programa oderzhuvach stvoryuye ob yekt togo zh tipu i viklikaye kod deserializaciyi u rezultati otrimuyuchi ob yekt iz timi zh danimi yaki buli v ob yekti programi vidpravnika Za takoyu shemoyu pracyuye napriklad serializaciya ob yektiv cherez SOAP v Microsoft NET ZastosuvannyaSerializaciya nadaye dekilka korisnih mozhlivostej metod realizaciyi zberigannya ob yektiv yakij zruchnishij nizh zapis yih vlastivostej v tekstovij fajl na disk i povtorna zbirka ob yektiv chitannyam fajliv metod zdijsnennya viklikiv viddalenih procedur yak napriklad u SOAP metod rozpovsyudzhennya ob yektiv osoblivo v tehnologiyah komponentno oriyentovanogo programuvannya takih yak COM i CORBA metod viyavlennya zmin u danih sho zminyuyutsya z chasom Dlya najefektivnishogo vikoristannya danih mozhlivostej neobhidno pidtrimuvati nezalezhnist vid arhitekturi Napriklad neobhidno mati mozhlivist nadijno vidtvoryuvati serializovanij potik danih nezalezhno vid poryadku bajtiv sho vikoristovuyetsya v cij arhitekturi Ce oznachaye sho najbilsh prosta i shvidka procedura pryamogo kopiyuvannya dilyanki pam yati v yakomu rozmishuyetsya struktura danih ne mozhe pracyuvati nadijno dlya vsih arhitektur Serializaciya struktur danih v arhitekturno nezalezhnij format oznachaye sho ne povinno vinikati problem cherez riznij poryadok prohodzhennya bajtiv mehanizmiv rozpodilu pam yati abo vidminnostej predstavlennya struktur danih v movah programuvannya Bud yakij zi shem serializaciyi vlastivo te sho koduvannya danih poslidovno za viznachennyam i vibirka bud yakoyi chastini serializovanoyi strukturi danih vimagaye shob ves ob yekt buv zchitanij vid pochatku do kincya i buv vidnovlenij U bagatoh programah taka linijnist korisna tomu sho dozvolyaye vikoristovuvati prosti interfejsi vvedennya vivedennya zagalnogo priznachennya dlya zberezhennya i peredachi stanu ob yekta U dodatkah de vazhliva visoka produktivnist mozhlivo bude dorechnishe vikoristovuvati skladnishu nelinijnu organizaciyu zberigannya danih Serializaciya naukovih danihDlya naukovih naboriv danih sho mayut velikij obsyag takih yak dani oderzhuvani vid suputnikiv abo chiselni modeli klimatu pogodi i okeaniv buli rozrobleni specialni binarni standarti serializaciyi napriklad i starishij Pidtrimka u movah programuvannyaDeyaki ob yektno oriyentovani movi nadayut bezposerednyu pidtrimku serializaciyi ob yektiv cherez sintaksichnij cukor abo standartnij interfejs Sered nih Ruby Smalltalk Python PHP Objective C Java i simejstvo mov NET Takozh dostupni biblioteki sho dodayut serializaciyu v movi yaki ne mayut vbudovanoyi pidtrimki Dzherela informaciyiSerializaciya danih v C ros Serializaciya PHP ob yektiv ochima hakeraDiv takozhKomp yuterna terminologiya XML Distributed Component Object Model en SOAP Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi